Using the ros_controllers package to get odometry from ackermann drive simulation model

asked 2020-02-17 21:55:13 -0500

KaranManghi gravatar image

Hi, I am currently working with a simulation of an ackermann drive vehicle which I got from : My question is, how do I integrate the simulation with the ros_controller package from to get the odometry.


Regards, Karan Manghi

edit retag flag offensive close merge delete




The description is already loading all controllers for each of the joints implemented in the model and the package already provide the ackermann controller as a python node.

From here you have multiple possibilities to provide the odometry you want.

  1. You can change the implementation of the controller node and calculate your own controller odometry using the kinematics equations of the ackermann geometry, do a quick search and you will find plenty of literature addressing this kinematic model.
  2. You can implement a Gazebo model plugin to publish the odometry of the model, or just use the plugin libgazebo_ros_p3d.
  3. Or the most complete one, use a fusion of different odometry msgs with a localization node such us robot_localization
Weasfas gravatar image Weasfas  ( 2020-02-20 09:23:50 -0500 )edit

Apart from that you can provide a sort of odometry performing SLAM or using AMCL if you are able to add some sensors to the robot base with a laser scan and a map.

Weasfas gravatar image Weasfas  ( 2020-02-20 09:25:39 -0500 )edit

Pretty dope explanation! "Just Google It" How do you think we end up here. I guess the search continues..

CoachAllen gravatar image CoachAllen  ( 2020-03-13 23:17:40 -0500 )edit

Hi @CoachAllen,

First of all, I only said "google it" in the first part where you may find better explanations about the ackermann kinematics in the academic literature spread on the internet, Besides that I am encouraging you to read a small part of the state of the art in order to know the basics of your problem.

Second, I provided you several alternatives, the thing I am not going to do is implementing the solution for your problem, that is your work not mines, besides it is not the purpose of this forum. I provided several sources in which you can learn an practise all these aproachs so I do not consider that comment as bad as you think. If you really want someone to provide you with all problems solved, definitely this is not the right place.

Weasfas gravatar image Weasfas  ( 2020-03-14 07:29:48 -0500 )edit

I provided you several alternatives - this is not my original question. . My general tone here is everywhere you look for help with ROS it's generally a dead end. The Wiki Pages are pretty decent for the first few tutorials. . Sharing a GitHub code base hardly constitutes good documentation. This is how most of the Akermann Steering is documented with ROS. "Here's a package, some cool PNGs and a link to GitHub where you won't make any sense of how to implement". . @Weasfas - not attacking you just try to get to the bottom of a topic that is poorly documented.


CoachAllen gravatar image CoachAllen  ( 2020-03-14 12:15:34 -0500 )edit

I hope you do realise that with your "general tone" you're not really motivating people to start helping you.

And not an excuse for poor documentation, but:

Sharing a GitHub code base hardly constitutes good documentation

In my personal opinion, ROS is still very much targetted at programmers/roboticists with a good programming background. Sharing a link to a repository is something I actually very much appreciate, as it's the easiest way for me to figure out how something works. That may not work for everyone, I appreciate that.

Secondly: many people share what they have, but they are not in the market to make a product. They've solved their own problem and then, in the hope it could help someone else, share their solution. There is no requirement for them to write any documentation, nor to assist anyone else.

That may not be very nice from ...(more)

gvdhoorn gravatar image gvdhoorn  ( 2020-03-14 13:05:26 -0500 )edit