Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

As explained in the Building a Movable Robot Model with URDF tutorial, revolute joints have strict motion limits. For something like a wheel, you probably want a continuous joint.

As explained in the Building a Movable Robot Model with URDF tutorial, revolute joints have strict motion limits. For something like a wheel, you probably want a continuous joint.


UPDATE

It's moving, so you almost got it! However, it appears your wheels operate on the wrong axis. When you give it a linear x motion, the wheels tumble (rotation about the wrong axis); when you give it a linear y, there's no motion (skid steer can't move sideways). If you give it an angular z, I expect the wheels to tumble in opposite directions (correct command, wrong axis). As suggested in this Gazebo answer, it may help to read the controller's source code and take an incremental approach to testing. In this case, the controller is actually behaving as expected.

The missing piece is that you can change the axis of rotation for a joint with the <axis> element as mentioned in the URDF/XML/joint documentation. The default is rotation about the x-axis, which you observed. What you want is rotation about the y-axis, so add <axis>0 1 0</axis> to your wheel joint definition.