ROS中如何自定义URDF模型
URDF称为统一的机器人描述格式,是Unified Robot Description Format的缩写,在ROS中被广泛使用。
来简单介绍下我自己的URDF模型的创建过程:
首先你要在文档中创建一个文档将文档命名为某某.urdf 比如我的文档就叫做my.urdf
打开文档,在文档中输入
<?xml version="1.0" ?>
<robot name="my">
第一句表明该文件使用XML来描述,并使用< robot>来定义一个机器人的模型,并将该机器人取名为“my”。(我的机器人定义为了一个较为简单的车体形状,仅做初学的一个简单示例。)
接下来继续输入
<link name="base_link">
<visual>
<origin xyz=" 0 0 0.05" rpy="0 0 0" />
<geometry>
<box size="0.26 0.26 0.10"/>
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1"/>
</material>
</visual>
</link>
这几行定义了一个小车的车体,xyz分别表示车体的初始位置,rpy表示车体分别绕x、y、z轴所旋转的角度(弧度制)
box size定义的长方体的形状大小。
material name则定义的小车的车体颜色,rgba是颜色的具体数值,自己根据喜欢的颜色可以自行百度。
<link name="back_left_wheel_link">
<visual>
<origin xyz=" 0 0 0" rpy="1.5707 0 0" />
<geometry>
<cylinder length="0.02" radius="0.026" />
</geometry>
<material name="white">
<color rgba="1 1 1 0.9"/>
</material>
</visual>
</link>
<joint name="back_left_wheel_joint" type="continuous">
<origin xyz="0.10 0.13 0" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="back_left_wheel_link"/>
<axis xyz="0 1 0"/>
</joint>
在这里我们定义了左后方的车轮,由于车轮是圆柱状的我们通过cylinder length=“0.02” radius=“0.026”定义了圆柱的半径以及高度,其余的link部分内容同前面的解释。
解释一下joint部分,我将其理解为将两个link相互连接起来的类似胶水的东西他在urdf的模型里并没有具体的形状,只是确定了子部位相对于父部位的位置。type=“continuous”表示这个joint可以围绕一个轴进行旋转,另外axis标签定义了该轮子的旋转轴是正y轴,轮子在运动时围绕y轴进行旋转。
按照同样的方法对另外的三个轮子进行定义,那么我们的四轮模型就大功告成了。
小车的完整代码如下:
<?xml version="1.0" ?>
<robot name="my">
<link name=