ROS建模:一起从零手写URDF模型

1、机器人的定义与组成

ROS建模:一起从零手写URDF模型_第1张图片

ROS建模:一起从零手写URDF模型_第2张图片

2、URDF建模方法

ROS建模:一起从零手写URDF模型_第3张图片

ROS建模:一起从零手写URDF模型_第4张图片

link的描述部分:

其中geometry中参数origin的xyz单位为: m,其描述的是相对于坐标系的平移变换;

rpy单位为:弧度,其描述的是相对于坐标系下的旋转偏移

collision是指碰撞属性,也有着几何参数,图中的绿色方框就是cylinder圆柱体,可设置长和半径,主要是描述的区域不同了,与mesh中的stl文件模型相比,这个定义可以减少计算量,因为碰撞检测的计算是十分耗时的,所以将实际模型用绿色方框代替,来做简化操作。

当然,也可以用实际模型来做计算,只要将cylinder换成mesh实际模型即可

惯性矩阵图中没有展示出来(省略了),如果实际模型的几何不规则,那么需要借助第三方的工具来进行输出,比如SW等等,可以帮助我们完成计算,后面会进行介绍。

ROS建模:一起从零手写URDF模型_第5张图片

 joint的描述部分:

link1和link2两个连杆之间坐标系的运动关系就是靠joint关节来产生的运动类型

其中name可以自定义,type是指运动类型,下面注意:
在ROS中,一个joint必须只能连接2个连杆,不能连接3个及以上的连杆,也不能连接1个连杆。

在上图中,link1就是parent,而link2就是child,origin描述了2个连杆之间的坐标变换关系,axis描述了关节对于的旋转轴,limit是指限位,上下限为(-180°,180°),上限的速度设置的是1.0,因为revolute是含限位的。

ROS建模:一起从零手写URDF模型_第6张图片

 robot的描述部分:

整个URDF模型的最顶层的标签叫做robot,其中name可以自定义,注意所有的连杆和关节标签必须在robot中进行描述,在别处描述是不行的。

3、从零手写移动机器人的URDF模型

ROS建模:一起从零手写URDF模型_第7张图片

下面开始在linux系统中进行操作:

 

你可能感兴趣的:(ROS,Linux,机器人,学习,linux)