Creating our first URDF model
After learning about URDF and its important tags, we can start some basic modeling using URDF. The first robot mechanism that we are going to design is a pan and tilt mechanism as shown in the following figure.
There are three links and two joints in this mechanism. The base link is static, in which all other links are mounted. The first joint can pan on its axis and the second link is mounted on the first link and it can tilt on its axis. The two joints in this system are of a revolute type.
Figure 4 : Visualization of a pan and tilt mechanism in RViz
Let's see the URDF code of this mechanism. Navigate to chapter_2_code/mastering_ros_robot_description_pkg/urdf
and open pan_tilt.urdf
. The code indentation in URDF is not mandatory for URDF but it keeping indentation can improve code readability:
<?xml version="1.0"?> <robot name="pan_tilt"> <link name="base_link"> <visual> <geometry> <cylinder length="0.01" radius="0.2"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0"/> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <joint name="pan_joint" type="revolute"> <parent link="base_link"/> <child link="pan_link"/> <origin xyz="0 0 0.1"/> <axis xyz="0 0 1" /> </joint> <link name="pan_link"> <visual> <geometry> <cylinder length="0.4" radius="0.04"/> </geometry> <origin rpy="0 0 0" xyz="0 0 0.09"/> <material name="red"> <color rgba="0 0 1 1"/> </material> </visual> </link> <joint name="tilt_joint" type="revolute"> <parent link="pan_link"/> <child link="tilt_link"/> <origin xyz="0 0 0.2"/> <axis xyz="0 1 0" /> </joint> <link name="tilt_link"> <visual> <geometry> <cylinder length="0.4" radius="0.04"/> </geometry> <origin rpy="0 1.5 0" xyz="0 0 0"/> <material name="green"> <color rgba="1 0 0 1"/> </material> </visual> </link> </robot>