0
点赞
收藏
分享

微信扫一扫

ROS探索:通过实战解读URDF[1]

witmy 2022-04-29 阅读 76
自动驾驶

        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包的其它生态圈

  • 在该包内,是否用c语言写节点
  • roscpp
  • 在该包内,是否用python语言写节点
  • rospy
  • 是否用urdf描述
  • urdf
  • 是否借助于rviz显示
  • rviz
  • 是否坐标变换?
  • tf
  • 是否发出或接收几何消息?
  • geometry_msgs
  • xxx?xxx?
  • geographic_msgs

3.3 几个注意点

1 )质量 

为了使gazebo物理引擎正常工作,必须提供<inertial>元素。为使连杆在gazebo中不被忽略,连杆的质量必须大于零。 另外,主惯性矩(ixx,iyy,izz)为零的连杆在任何有限转矩应用下都可能导致无限加速。

2 ) urdf和gazebo区别?

urdf是几何一级的观察,gazebo是物理层面的观察。

(未完待续)

举报

相关推荐

0 条评论