Skip to content

Instantly share code, notes, and snippets.

@kor01
Last active October 25, 2017 01:29
Show Gist options
  • Save kor01/aac077c8ea81877cdba1070424d4ab09 to your computer and use it in GitHub Desktop.
Save kor01/aac077c8ea81877cdba1070424d4ab09 to your computer and use it in GitHub Desktop.
[ros urdf] urdf files #ros #urdf

Definition and Conventions:

  • kinmematics frame of each link is infered rather than defined in urdf

  • each joint position and orientation is defined relative to it's parents kinematics frame

  • the parent kinematics frame is defined as the frame of it's parent joint

  • the kinematics frame of root link is eye(4)

  • the inertia tag of each link is about it's dynamic property and is independent of kinematics

  • the visual tag of each link is about it's visual property and is independent of kinematics

  • the inertia and visual frame is defined relative to it's kinematics frame described above

Absolute Frames Algorithm:

  • start with frame eye(4) and succesively multiply the homogenuous transfrom constructed from origin:xyz-rpy of it's parent joint

  • joint absolute direction can be obtained by multiply joint axis: xyz with it's absolute orientation matrix

<origin> This is the transform from the parent link to the child link. The joint is located at the origin of the child link.
<parent> Name of the Parent link for the respective joint.
<child> Name of the child link for the respective joint.
<axis> Defines the axis of rotation for revolute joints, the axis of translation for prismatic joints, and the surface normal for planar joints. Fixed and floating joints do not use the axis field.
<joint name="joint_2" type="revolute">
<origin xyz="0.35 0 0.42" rpy="0 0 0"/>
<parent link="link_1"/>
<child link="link_2"/>
<axis xyz="0 1 0"/>
</joint>
Fixed Rigid joint with no degrees of freedom. Used to weld links together.
Revolute A range-limited joint that rotates about an axis.
Prismatic A range-limited joint that slides along an axis
Continuous Similar to Revolute joint but has no limits. It can rotate continuously about an axis.
Planar A 2D Prismatic joint that allows motion in a plane perpendicular to an axis.
Floating A joint with 6 degrees of freedom, generally used for Quadrotors and UAVs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment