This package contains a C++ parser for the Unified Robot Description Format (URDF), which is an XML format for representing a robot model. The parser reads a URDF XML robot description, and creates a C++ URDF model. Although it is possible to directly use this parser when working with URDF robot descriptions, the preferred user API is found in the urdf package.
urdf::Model is a class containing robot model data structure. Every Robot Description File (URDF) can be described as a list of Links (urdf::Model::links_) and Joints (urdf::Model::joints_). The connection between links(nodes) and joints(edges) should define a tree (i.e. 1 parent link, 0+ children links).
<joint name="J" type="revolute"> <dynamics damping="1" friction="0"/> <limit lower="0.9" upper="2.1" effort="1000" velocity="1"/> <safety_controller soft_lower_limit="0.7" soft_upper_limit="2.1" k_position="1" k_velocity="1" /> <calibration reference_position="0.7" /> <mimic joint="J100" offset="0" multiplier="0.7" /> <!-- origin: origin of the joint in the parent frame --> <!-- child link frame is the joint frame --> <!-- axis is in the joint frame --> <origin xyz="0 0 0" rpy="0 0 0"/> <axis xyz="0 1 0"/> <parent link="P"/> <child link="C"/> </joint> <link name="C"> <inertial> <mass value="10"/> <origin xyz="0 0 0" rpy="0 0 0"/> <inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/> </inertial> <visual> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <box size="1 1 1"/> </geometry> <material name="Green"/> </visual> <collision> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <box size="1.01 1.01 1.01"/> </geometry> <contact_coefficient mu="0" resitution="0" k_p="0" k_d="0" /> </collision> </link> <material name="Green"> <texture filename="...texture file..." /> <!--color rgb="255 255 255" /--> </material>
The URDF parser API contains the following methods: