ROS之URDF模型

来源:互联网 发布:数据运营手册 pdf 编辑:程序博客网 时间:2024/04/30 12:34

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

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

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

3.常用tag:

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

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

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

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

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

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

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

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

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