ROS知识课堂-3.URDF

什么是URDF

    全称为 Unified Robot Description Format ,翻译为中文为 统一机器人描述性格式。那么这里我们可以确定,URDF是用来描述机器人的,通过一些特定的格式将机器人具体的描述出来,供计算机进行理解操作。


URDF是Unified Robot Description Format的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种XML的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度.....,该文件可以被C++ 内置的解释器转换成可视化的机器人模型,是ROS中实现机器人仿真的重要组件


URDF描述规范

用一个文件描述一个机器人模型

文件的后缀为.urdf

文件的内容格式为xml格式

xml根节点为robot

通过创建一个hello.urdf文件我们来认知一下URDF的基本规范:

<?xml version="1.0"?>
<robot name="hello">
  <link name="base_link">
    <visual>
      <geometry>
        <cylinder length="0.6" radius="0.2"/>
      </geometry>
    </visual>
  </link>
</robot>


连杆介绍

什么是link

link 我们称之为连杆。在官方介绍中,用a rigid body描述link。

a rigid body:僵硬的躯体。意思是不可移动的,固定的。

在URDF描述性语言中,link是用来描述物理特性的。

描述视觉显示

描述碰撞属性

描述物理惯性

我们用xml格式来表达连杆如下:

以通过可扩展标记语言(XML)很方便地创建一个统一机器人描述格 式(URDF19,Unified Robot Description Format)文件,该文件可以在ROS的机器人 建模可视化工具RViz(ROS Visualization)中加载并使用

sudo apt-get install ros-kinetic-ros-controllers ros-kinetic-gazebo* ros-kinetic-moveit* ros-kinetic-dynamixel-sdk ros-kinetic-dynamixel-workbench-toolbox ros-kinetic-robotis-math ros-kinetic-industrial-core
<link name=”base”/>
<joint name="fixed" type="fixed">
 <parent link="base"/>
 <child link="link1"/>
</joint>
<link name="link1">
 <collision>
 <origin xyz="0 0 0.25" rpy="0 0 0"/>
 <geometry>
 <box size="0.1 0.1 0.5"/>
 </geometry>
 </collision>
 <visual>
 <origin xyz="0 0 0.25" rpy="0 0 0"/>
 <geometry>
 <box size="0.1 0.1 0.5"/>
 </geometry>
 <material name="black"/>
 </visual>
 <inertial>
 <origin xyz="0 0 0.25" rpy="0 0 0"/>
 <mass value="1"/>
 <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
 </inertial>
</link>


    关键词:ROS知识课堂