ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

writing a driver for 4-wheels differential drive robot

asked 2016-07-05 11:42:32 -0600

VEGETA gravatar image

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-...

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_contro...

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!

thanks!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2016-07-05 12:25:49 -0600

mcshicks gravatar image

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/kne...

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.

edit flag offensive delete link more

Comments

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.

thanks!

VEGETA gravatar image VEGETA  ( 2016-07-05 16:31:29 -0600 )edit

Look at this example: http://robotics.stackexchange.com/que... . You need a method (encoder) to measure the wheel rotation and the distance between the wheels

mcshicks gravatar image mcshicks  ( 2016-07-06 19:33:58 -0600 )edit

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?

VEGETA gravatar image VEGETA  ( 2016-07-19 18:46:21 -0600 )edit

My robot is not 2 wheels but it is 4 wheels... is that still diff drive or is it skid drive?

VEGETA gravatar image VEGETA  ( 2016-07-24 03:09:54 -0600 )edit

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.

https://goo.gl/9wknlr

https://goo.gl/JtEWFC

https://goo.gl/UUVdzA

tooght gravatar image tooght  ( 2018-01-21 12:49:20 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2016-07-05 11:42:32 -0600

Seen: 4,156 times

Last updated: Jul 05 '16