Rosanswers logo

I want to make a custom robot and my problem is publishing odometry values. I have and Ackermann steering car robot, but I read that it is hard to integrate that in ROS.

Thus, I switched to this one: http://mikroelectron.com/Product/4WD-Drive-Aluminum-Mobile-Car-Robot/

As you see, it is a 4WD differential drive robot chassis with wheel encoders. I've read about this package here: http://wiki.ros.org/diff_drive_controller

but I don't know if it is a "driver" or not. Can you help me in this? I just want to integrate such a robot with ROS in order to do other stuff that I want which will include using Kinect and stuff... so getting accurate poses are essential.

I looked for ready solutions like Jakal but their price is simply insane!


Originally posted by VEGETA on ROS Answers with karma: 11 on 2016-07-05

Post score: 0


1 Answer 1


Rosanswers logo

You might be better off looking at this package to start

http://wiki.ros.org/differential_drive and this related page https://code.google.com/archive/p/knex-ros/wikis/ProjectOverview.wiki

I looked briefly at the web page and I didn't see where the encoders were included. Anyway if you have the encoder input you either do the odometty on the arduino or use rosserial to send the values to your PC and to it there. In either case you will have to use rosserial to send the topics to your computer you are running ROS on.

Originally posted by mcshicks with karma: 51 on 2016-07-05

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by VEGETA on 2016-07-05:
nice help there, I thought of using Arduino but I guess Raspberry Pi 3 is going to be used as main controller with ROS so why not just use it directly?

my question is how to calculate odometry? what are the required values and so on?

it is better if there is an example.


Comment by mcshicks on 2016-07-06:
Look at this example: How to perform odometry on an arduino for a differential wheeled robot?. You need a method (encoder) to measure the wheel rotation and the distance between the wheels

Comment by VEGETA on 2016-07-19:
so just this short amount of code is necessary? then use rosserial to send it to navigation packages?

I read somewhere here that there is a ready-to-use differential drive driver software... do you know about it?

Comment by VEGETA on 2016-07-24:
My robot is not 2 wheels but it is 4 wheels... is that still diff drive or is it skid drive?

Comment by tooght on 2018-01-21:
hi @VEGETA did you find the answer to this question? I have found some examples for this problem. However, they are all made using 2 wheels. And I think it's very difficult to make a 4-wheel robot using these examples.





Your Answer

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