我们已经讨论了urdf软件包。在本节中,我们将进一步研究URDF XML标签,它有助于进行机器人建模。我们必须创建一个文件,并在其中编写机器人的每个连杆和关节之间的连接关系,并用.urdf扩展名保存文件。
URDF可以表示机器人的运动学和动力学描述、机器人的视觉以及机器人的碰撞模型。
下面介绍组成URDF机器人模型常用的URDF标签,包括link、joint、robot、gazebo。
link标签表示机器人的单个连杆。使用此标签,我们可以为机器人的一个连杆及其属性建模。该模型包括大小、形状和颜色,甚至可以导入一个3D网格来表示机器人的连杆。我们还可以提供连杆的动力学属性,如惯性矩阵和碰撞属性。
其语法如下:
如图3.1所示是单个连杆的可视化图。Visual区域代表机器人的真实连杆,将真实连杆包围的面积是碰撞区域。碰撞区域包围了真实连杆,可以在与真实连杆发生碰撞之前检测到碰撞。
joint标签表示机器人关节。我们可以指定关节的运动学和动力学属性,并设定关节运动和速度的限值。joint标签支持不同类型的关节,如旋转关节(revolute)、无限位旋转关节(continuous)、滑动关节(prismatic)、固定关节(fixed)、浮动关节(floating)和平面关节(planar)。
图3.1 URDF连杆的可视化图
其语法如下:
在两个连杆之间会形成一个URDF关节。第一个被称为父连杆(parent),第二个被称为子连杆(child)。注意,单个关节可以同时有一个父连杆和多个子连杆。如图3.2所示是一个关节及其连杆的可视化图。
robot标签封装用URDF表示的整个机器人模型。在robot标签内,我们可以定义机器人的名字、连杆,以及机器人的关节。
其语法如下:
机器人模型由连接的连杆和关节组成。如图3.3所示是一个机器人模型的可视化图。
图3.2 URDF关节及其连杆的可视化图
图3.3 由连杆和关节构成的机器人模型的可视化图
当我们在URDF中包含Gazebo仿真器的仿真参数时,使用gazebo标签。我们可以用这个标签包含gazebo插件、gazebo材料属性等。以下是一个使用gazebo标签的例子:
读者可以在http://wiki.ros.org/urdf/XML上找到更多的URDF标签。现在,我们可以使用前面列出的元素从零开始创建一个新的机器人。在下一节中,我们将创建一个新的ROS软件包,其中包含对不同机器人的描述。