ubuntu16.04 ROS 之 URDF (一)

1. URDF文件简介

1.1 简介

  • 全称: Unified Robot Description Format 即:统一机器人描述性格式

1.2 URDF描述规范

  • 用一个文件描述一个机器人模型
  • 文件的后缀为.urdf
  • 文件的内容格式为xml格式
  • xml根节点为robot

1.3 各个语句含义

  • inertial 定义惯性
  • geometry 用来描述模块的形状和大小
  • origin 用来描述模块的位置;
  • material 并且设置 color 上色
  • material 指定颜色rgb和透明度a. 它们取值范围都是[0,1] 区间

2. 建模

2.1 创建简单的机器人模型–四轮小车

  • 安装urdf_tutorial包
sudo apt-get install ros-kinetic-urdf-tutorial
  • 创建ros工作空间
mkdir myrobot/src -p
cd myrobot/src
catkin_init_workspace
cd ..
catkin_make
  • 创建存放小车模型的功能包
cd  ~/myrobot/src/
catkin_create_pkg smartcar std_msgs rospy roscpp urdf
cd smartcar
mkdir urdf&launch
cd urdf 
gedit myrobot.urdf
  • 在myboot.urdf文件里面填入以下代码
<robot name="test_robot">  
  <link name="base_link">  
    <visual>  
       <geometry>  
         <box size="0.2 .3 .1"/>  
       </geometry>  
       <origin rpy="0 0 0" xyz="0 0 0.05"/>  
       <material name="white">  
         <color rgba="1 1 1 1"/>  
       </material>  
    </visual>  
  </link>  
  
  <link name="wheel_1">  
    <visual>  
      <geometry>  
        <cylinder length="0.05" radius="0.05"/>  
      </geometry>  
      <origin rpy="0 1.5 0" xyz="0.1 0.1 0"/>  
      <material name="black">  
        <color rgba="0 0 0 1"/>  
      </material>  
    </visual>  
  </link>  
  
  <link name="wheel_2">  
    <visual>  
      <geometry>  
        <cylinder length="0.05" radius="0.05"/>  
      </geometry>  
      <origin rpy="0 1.5 0" xyz="-0.1 0.1 0"/>  
      <material name="black"/>  
    </visual>  
  </link>  
  
  <link name="wheel_3">  
    <visual>  
      <geometry>  
        <cylinder length="0.05" radius="0.05"/>  
      </geometry>  
      <origin rpy="0 1.5 0" xyz="0.1 -0.1 0"/>  
      <material name="black"/>  
    </visual>  
  </link>  
  
  <link name="wheel_4">  
    <visual>  
      <geometry>  
        <cylinder length="0.05" radius="0.05"/>  
      </geometry>  
      <origin rpy="0 1.5 0" xyz="-0.1 -0.1 0"/>  
      <material name="black"/>  
    </visual>  
  </link>  
  
  <joint name="joint_base_wheel1" type="fixed">  
    <parent link="base_link"/>  
    <child link="wheel_1"/>  
  </joint>  
  
  <joint name="joint_base_wheel2" type="fixed">  
    <parent link="base_link"/>  
    <child link="wheel_2"/>  
  </joint>  
  
  <joint name="joint_base_wheel3" type="fixed">  
    <parent link="base_link"/>  
    <child link="wheel_3"/>  
  </joint>  
  
  <joint name="joint_base_wheel4" type="fixed">  
    <parent link="base_link"/>  
    <child link="wheel_4"/>  
  </joint>  
</robot> 
  • 在当前目录终端下输入以下命令查看文件是否书写正确
check_urdf 01_skeleton.urdf  
  • 出现如下页面,说明文件语法没有错误
    ubuntu16.04 ROS 之 URDF (一)

3. 书写launch 文件

  • 在launch文件夹下建立car01.launch文件,里面输入以下代码
<!-- -->
<launch>
        <param name="robot_description"
        textfile="$(find little_car)/urdf/car01.urdf"/>   // 这一行需要更改为自己urdf文件所在位置
        
        <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"/>
        
		<node name="rviz" pkg="rviz" type="rviz" respawn="false" output="screen"/>
</launch>

4. 启动launch

roslaunch smartcar car01.launch

4.1 在rviz里面将Fixed Frame 改为: base_link

4.2 点击Add添加 Robotmodel 即可查看自己构建的模型

ubuntu16.04 ROS 之 URDF (一)

上一篇:6.3.2 URDF语法详解02_link


下一篇:longing加载中实例