URDF文件

  这个urdf文件,URDF(Unified Robot Description Format), 是一种特殊的xml文件格式, 作为机器人的一种描述文件, 在ROS里面大量使用. 在仿真中用的很多,用于创建机器人的仿真模型

1.URDF文件描述

  1.1link与joint

URDF文件中, 第一个出现的就是下图, 很形象的将URDF要定义的主要内容给展现了出来. 一般, 机器人都是由link和joint进行描述. 都会呈现为树状(想象数据结构里面的树), 如图1, 由一个根link(link1)向上, 分别出现了两个分支–link2和link3, 分别由joint连接link. link4就可以类似的理解. 
URDF文件_第1张图片

了解机器人的一般描述方式之后, 我们来看一下下图中这个形状的机器人该怎么来描述它.

//命名

//父节点

//子节点

//关节

 

而现在,你们肯定想要问,link是怎么放得呢,还有他的形状是什么样的呢?请往下看。

1.2 位置

  为了能够确定位置,我们可以使用origin子标签进行定义link所应该在的位置. 但是有一点应该注意到, link和link之间是使用joint进行连接, 那么link的位置, 就由连接他的joint确定. 所以, 该子标签是定义在joint内.

而且link不是个质点,而是个刚体所以光有描述点的x,y,z是不够用的, 还需要使用rpy. rpy角是描述船舶在海中航行时姿态的一种方法. 将船的行驶方向取为z轴, 绕z轴旋转称为滚动(Roll), 绕y轴旋转称为俯仰(Pitch), 绕x轴旋转称为偏转(Yaw). 这种描述方式大量运用于各个领域.(z是指机器人的上方,y是指机器人的左侧,x是指右侧,rpy中第一个参数是x轴转的角度,第二个为y,第三个是z,注意这里的角度是弧度值

下面为代码块

rpy="0 0 0" />

下面为我写的代码块的具体实现

link_graph

1.3形状

在解决了每个link的相对位置之后, 还有一个很关键的问题, 就是每个link长什么样子呢? 圆的? 扁的? 还是奇形怪状的? 下面示例了一些常用的形状, 其中box表示长方体,cylinder是圆柱,sphere球

但可以导入stl格式的文件, 还可以导入dae格式.下述示例中导入了一个小刀.

origin rpy="0 -1.57 0" xyz="0 0 0"/>

1.4 Collision 和 joint限制

当然, 每个link一般是不会产生重合的, 在运动规划的时候, 也会去避免碰撞到自己, 所以针对于每一个link, 还有一个collision标签, 和visual标签内容完全一样.

前面内容可以看到, 每个link可以看作是一个刚体, 刚体和刚体之间是通过joint进行连接, 那么, 问题就来了. 这个joint是固定的? 还是可以任意的动? 如果可以动, 那么, 问题又来了, 极限位置是多少? 等等等等…

比如, 我们限定joint2只能沿着y轴旋转, 则需要添加, 类似的, 可以指定其他关节的转动轴, 例如.

比如, 我们要限定joint2的移动范围, 则需要添加, 从标签中可以看到, 上下限以及速度, 力矩等都是可以指定的.

下附一篇注释比较详细的代码

 

 

 

 

 

 

你可能感兴趣的:(URDF文件)