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

Revision history [back]

Yes, it's necessary to have a URDF. The parameters left_wheel and right_wheel need to be set to the joint names from the URDF.

In your URDF, you also need a transmission for that joint. If you want to look at an example, in my mir_robot stack I use the diff_drive_controller (but only in Gazebo, not on the real robot). I have converted the xacro to a URDF (using xacro --inorder mir.urdf.xacro > mir.urdf) and deleted a couple of things that are not relevant to your question. The result is here:

https://gist.github.com/mintar/5d8e60a145ec80643d3ea82544c2c233

You can see that there is one joint for each wheel and a transmission for both. There are also four caster wheels; you don't need them of course if your robot doesn't have them. Note that you need to run sudo apt install ros-kinetic-mir-description if you want to try the URDF.