Doubt in Joint - Axis

In Unit 1 of URDF for Robot Modeling where Joints and Links were first introduced, the following definition is given for Joint-axis parameter:

Axis: Here you define around which Parent’s AXIS the Child link will revolve. This, of course,
depends on the type of joint; some of them don’t have axis tags because they are irrelevant, such as the fixed joint.

But in the ROS Wiki the following definition is given for Axis.

axis (optional: defaults to (1,0,0))

The joint axis specified in the joint frame. This is the axis of rotation for revolute joints, the axis of
translation for prismatic joints, and the surface normal for planar joints. The axis is specified in the
joint frame of reference. Fixed and floating joints do not use the axis field.

The ROS wiki also states that Joints Frame = Child's Frame.

The Axis definitions therefore seem to contradict each other. Any help on understanding this better would be highly appreciated.



Another vey good qustion. Let me show you here an example using box_bot, a very basic simulation that we use for testing:

So here you see that The Child-Link_Frames are the same as the the Joint-Axis. See the wheels? When we moved the wheels, you see that the joint-axis changes exactly in the same way?

So you are right, in the notebook we state that it revolves around the parent, which is wrong. We revolve around the Childs axis. What we define reffered to the Parent is the position of teh child frame respect the parent frame ( the xyzand rpy origin ). I’ll correct that right now and it will be updated in the next new updates.

Here you have the box_bot just in case you want to use it for testing and making experiments ;):

1 Like