ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I use the un-corrected (no tf) robot odometry as a baseline: if your robot is reasonably accurate, its basic odom reading (x,y,yaw) should be reasonably consistent (steady progress) at it moves.
You can then compare this to the odometry transformed into the SLAM frame (e.g. map): logging to a file (say at ~ 5Hz). Looking at the diference between these two sets, dx, dy, dyaw, you get a good idea of any extreme movement in the transform suggested by the SLAM process, and the degree of oscillation in the transform. You can additionally or alternatively log the transform topic directly (e.g. odom to map). Any extreme transform, outside of its normal standard deviation suggests "the localization is way off": or the robot's wheel are skidding excessively.
As a "batch" check, get your robot to perform a simple route (e.g. go in a square), and see how close it actually gets to a goal (measure with a ruler !): both with SLAM tf correction, and without. This real measure can be compared to the odometry the robot thinks it is at when it reaches the goal.