用ROS制作我们的机器人小车: URDF简介

URDF

为了制作模拟器,首先了解下什么是URDF

什么是URDF? Unified Robot Description Format——统一机器人描述格式。

参考文献

1. ROS urdf教程:http://wiki.ros.org/urdf/Tutorials

2. 《Learning ROS for Robostic Programming》



URDF基本语法

统一机器人描述格式URDF,其实就是为了能够抽象描述一个机器人的硬件。而且URDF是基于XML的,所以阅读起来应该非常容易。

(图一)



第一版

在URDF语言中,机器人都会由各个部件(Link)通过关节(Joint)连接而成。而这里的关键就是描述部件和关节之间的关系。

在这个简单的小车模型中,一共有5个部件: 车身 + 4个轮子。 4个关节: 每个轮子一个。

于是,我们得到了最初了URDF版本 01_car_skeleton.urdf

[html]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. <robot name="test_robot">  
  2.   <link name="base_link" />  
  3.   <link name="wheel_1" />  
  4.   <link name="wheel_2" />  
  5.   <link name="wheel_3" />  
  6.   <link name="wheel_4" />  
  7.   
  8.   
  9.   <joint name="joint_base_wheel1" type="fixed">  
  10.     <parent link="base_link"/>  
  11.     <child link="wheel_1"/>  
  12.   </joint>  
  13.   
  14.   
  15.   <joint name="joint_base_wheel2" type="fixed">  
  16.     <parent link="base_link"/>  
  17.     <child link="wheel_2"/>  
  18.   </joint>  
  19.   
  20.   
  21.   <joint name="joint_base_wheel3" type="fixed">  
  22.     <parent link="base_link"/>  
  23.     <child link="wheel_3"/>  
  24.   </joint>  
  25.   
  26.   
  27.   <joint name="joint_base_wheel4" type="fixed">  
  28.     <parent link="base_link"/>  
  29.     <child link="wheel_4"/>  
  30.   </joint>  
  31. </robot>  

用<link> tag描述各个部件,<joint> tag描述各个关节。用<parent>和<child>描述关节连接的部件。

只要描述了Link和Joint之间的关系,我们很容易就能构建机器人的框架。

我们可以用如下命令来检查urdf文件是否有语法问题。

[plain]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. check_urdf 01_skeleton.urdf  

只要得到如下结果就表明语法没问题。

[html]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. robot name is: test_robot  
  2. ---------- Successfully Parsed XML ---------------  
  3. root Link: base_link has 4 child(ren)  
  4.     child(1):  wheel_1  
  5.     child(2):  wheel_2  
  6.     child(3):  wheel_3  
  7.     child(4):  wheel_4  
但请注意这虽然描述了各个部件之间的关系,但仍是一个不完整的URDF,无法在模拟器中显示。


第二版

<visual>tag用来描述模块的视觉效果。

<geometry>tag 用来描述模块的形状和大小。

<origin>tag用来描述模块的位置。

加上模块大小之后的小车文件如下所示。02_visual.urdf

[html]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. <robot name="test_robot">  
  2.   <link name="base_link">  
  3.     <visual>  
  4.        <geometry>  
  5.          <box size="0.2 .3 .1"/>  
  6.        </geometry>  
  7.        <origin rpy="0 0 0" xyz="0 0 0.05"/>  
  8.     </visual>  
  9.   </link>  
  10.   
  11.   <
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值