urdf的存在目的是仿真,也就是还没有机器人的时候,描述所设计机器人该有的样子。
ros的urdf软件包包含统一机器人描述格式 (URDF) 的 C++ 解析器。urdf是ROS用于描述机器人所有元素的模型文件,采用XML格式书写。
- urdf:统一机器人描述格式;
- xacro:升级版的urdf,简化了urdf模型,用于复杂机器人的建模。Xacro(XML 宏) Xacro 是一种 XML 宏语言。使用 xacro,您可以使用可扩展为更大 XML 表达式的宏来构造更短且更易读的 XML 文件。
- xacro语法请参考: xacro - ROS Wiki
- 使用前先下载软件包:
apt install liburdfdom-tools
二、外界和urdf 包的关系
下图试图解释这些组件之间的关系 (urdf parser-urdf解释器)
以上图表比较复杂,解释成ROS内部和ros外部的数据交流,如下列图:
三、urdf语法说明
3.1 urdf所有的标签:
- robot(总体名称):凡是urdf文件,必有一个robot说明。
- link(固体原件):所有刚体的说明,无论形状长短。
- joint(结合原件):凡是可活动的机械部件,如轴、铰链、滑道。
- transmission(传动元件):
- 是URDF机器人描述模型的扩展,该模型用于描述致动器和关节之间的关系。这使得人们可以对齿轮比和并联机构等概念进行建模。变速箱变换作用力/流量变量,使其产品功率保持不变。多个执行器可以通过复杂的传输连接到多个接头。
- gazebo是扩展
- 是将urdf转化成gazebo需要的追加部分。框架
- inertial(惯性,质量,转动惯量)
3.2 urdf包的其它生态圈
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.3 几个注意点
1 )质量
为了使gazebo物理引擎正常工作,必须提供<inertial>元素。为使连杆在gazebo中不被忽略,连杆的质量必须大于零。 另外,主惯性矩(ixx,iyy,izz)为零的连杆在任何有限转矩应用下都可能导致无限加速。
2 ) urdf和gazebo区别?
urdf是几何一级的观察,gazebo是物理层面的观察。
(未完待续)