I am migrating from a differential drive design to a skid steering design for my robot, and I want to know how easy would it be to use the NavStack with skid steering. Would there be any problems in terms of localization and things like that?

If I let two wheels on the same side of my robot (two on left side and two on the right side) maintain same velocity and acceleration, would the unicycle model of a differential drive robot still apply for skid steering?


1 Answer 1


Yes and no. I think it depends on your needs, and what other sensors you have.

Remember that even diff drive robot wheels slip a little. And you can never measure the diameter of the wheel accurate enough. This is why dead-reckoning doesn't work well over long distances. And why you need other sensors to correct for these errors.

I haven't used the entire ROS Navigation Stack, but I have used parts of it with a skid steer robot. (In my case I used a Hokuyo, robot_pose_EKF, laser_scan_matcher, and costmap_2d nodes among other custom nodes.) My setup was enough for the robot to maintain a reasonable 2D location if it didn't drive too far. But after a long time of driving around, the location and orientation would be way off. I don't think doing any sort of SLAM mapping would have worked for me. I found that the ICP algorithm in the laser_scan_matcher was critical to correcting the odometry errors when the robot would turn.

I should mention that I did not have an IMU to feed into the EKF, but i think that would have improved results greatly. The diameter of my wheels was also way off. (I would drive a meter, but the robot would think it was only 0.8 or so.) So if you have better odometry, a laser, and an IMU, then you might be ok. But i don't know what your application is...


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.