前言:建立一个简单的urdf模型
教程写的非常好,这里只做最终版解析部分。
查看是否安装了joint_state_publisher功能包:
rospack find joint_state_publisher
一、基本要素模型
建立一个半径是0.2米,高0.6米的圆柱体。
1.1 新建urdf_tutorial功能包
1.2 新建urdf文件
新建01-myfirst.urdf文件
<?xml version="1.0"?> <robot name="materials"> <material name="blue"> <color rgba="0 0 0.8 1"/> </material> <material name="white"> <color rgba="1 1 1 1"/> </material> <link name="base_link"> <visual> <geometry> <cylinder length="0.6" radius="0.2"/> </geometry> <material name="blue"/> </visual> </link> <link name="right_leg"> <visual> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> <material name="white"/> </visual> </link> <joint name="base_to_right_leg" type="fixed"> <parent link="base_link"/> <child link="right_leg"/> <origin xyz="0 -0.22 0.25"/> </joint> <link name="left_leg"> <visual> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> <material name="white"/> </visual> </link> <joint name="base_to_left_leg" type="fixed"> <parent link="base_link"/> <child link="left_leg"/> <origin xyz="0 0.22 0.25"/> </joint> </robot>
----------------------------------------------------------------------------------------------------------------------------
代码解释:
<robot name="materials">此文件的机器人名称 <material name="blue">定义材料属性名称为蓝色 <color rgba="0 0 0.8 1"/>材料属性为rgba值 </material> <link name="base_link">定义基本连杆 <visual>可视化属性 <geometry>几何形状 <cylinder length="0.6" radius="0.2"/>圆柱,半径0.2米,高0.6米 </geometry> <material name="blue"/>材料属性引用为蓝色 </visual> </link> <link name="right_leg">定义右腿连杆 <visual> <geometry> <box size="0.6 0.1 0.2"/>盒状,长宽高为0.6米,0.1米,0.2米 </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/>位置,位于关节点base_to_right_legz轴负方向0.3米,绕y轴旋转90°=π/2=1.57075 <material name="white"/> </visual> <joint name="base_to_right_leg" type="fixed">定义基本连杆和右腿之间的关节,属性为固定。其实就是新建了一个相对坐标系。 <parent link="base_link"/>父连杆为base_link <child link="right_leg"/>子连杆为right_leg <origin xyz="0 -0.22 0.25"/>关节位置,位于父连杆关节y轴负方向0.22米,z轴正方向0.25米 </joint>
----------------------------------------------------------------------------------------------------------------------------
1.3 新建launch文件
<launch> <arg name="model" default="$(find urdf_tutorial)/urdf/01-myfirst.urdf"/> <arg name="gui" default="true" /> <arg name="rvizconfig" default="$(find urdf_tutorial)/rviz/urdf.rviz" /> <param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" /> <param name="use_gui" value="$(arg gui)"/> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" /> <node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" /> </launch>
1.4 查看模型
roslaunch urdf_tutorial display.launch
二、进阶模型
-END-