ROS:URDF分析

1.所有的URDF/Xacro文件都会以以下两个标签作为开头。所有在< robot>标签后的内容都是在定义我们的组件,而整个文件会以< /robot>标签结束(注:robot中的name可以自己根据具体内容进行自命名,如下面的为base)。

<? xml version="1.0"? >
<robot name="base" xmlns:xacro="http://ros.org/wiki/xacro">
  • 1
  • 2

2.在URDF语言中,机器人都会由各个部件(Link)通过关节(Joint)连接而成。用< link> tag描述各个部件,< joint> tag描述各个关节。用< parent>和< child>描述关节连接的部件。

3.常用tag:

<visual>:用来描述模块的视觉效果
<geometry>:用来描述模块的形状和大小
<origin>:用来描述模块的位置
  • 1
  • 2
  • 3

4.在属性部分,我们通过property定义变量,包括变量名和值,如:

<property name="base_size_x" value="0.30"/>
  • 1

在给变量赋值时,请注意以下几点:

a.长度使用的单位是米
b.角度使用的单位是弧度
c.当指定x,y,z参数时,x轴指向的是机器人的正前方,y轴指向的是机器人的左方,z轴指向的是机器人的上方。
d.当给旋转变量r,p,y(roll,pitch,yaw)赋值时,参数roll表示的是围绕x轴旋转的角度,参数pitch表示的是围绕y轴旋转的角度,而参数yaw表示的是围绕z轴旋转的角度。
  • 1
  • 2
  • 3
  • 4
  • 5

5.Xacro:我们可以把Xacro理解成为针对URDF的扩展性和配置性而设计的宏语言。例如我们可以将轮子定义成一个宏,这样就可以用它来定义每一个轮子,而不需要重复写。

6.base_footprint的主要作用就是用来定义底座离地面的距离,机器底座一般用base_link表示。

7.robot_state_publisher节点:该节点会读入机器人模型里定义的几何形状信息,并发布一系列变换来建立起机器人的tf树。

8.joint_state_publisher节点:这个可选的节点经常被用于在rviz中测试URDF模型。注意:当机器人的关节处于真实的硬件驱动的控制之下时,joint_state_publisher实际上将不在被使用,因为它会和驱动发布的真实关节位置发生冲突。

猜你喜欢

转载自blog.csdn.net/qq_25241325/article/details/80950700