本文主要是介绍ROS建模:一起从零手写URDF模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、机器人的定义与组成
2、URDF建模方法
link的描述部分:
其中geometry中参数origin的xyz单位为: m,其描述的是相对于坐标系的平移变换;
rpy单位为:弧度,其描述的是相对于坐标系下的旋转偏移
collision是指碰撞属性,也有着几何参数,图中的绿色方框就是cylinder圆柱体,可设置长和半径,主要是描述的区域不同了,与mesh中的stl文件模型相比,这个定义可以减少计算量,因为碰撞检测的计算是十分耗时的,所以将实际模型用绿色方框代替,来做简化操作。
当然,也可以用实际模型来做计算,只要将cylinder换成mesh实际模型即可
惯性矩阵图中没有展示出来(省略了),如果实际模型的几何不规则,那么需要借助第三方的工具来进行输出,比如SW等等,可以帮助我们完成计算,后面会进行介绍。
joint的描述部分:
link1和link2两个连杆之间坐标系的运动关系就是靠joint关节来产生的运动类型
其中name可以自定义,type是指运动类型,下面注意:
在ROS中,一个joint必须只能连接2个连杆,不能连接3个及以上的连杆,也不能连接1个连杆。
在上图中,link1就是parent,而link2就是child,origin描述了2个连杆之间的坐标变换关系,axis描述了关节对于的旋转轴,limit是指限位,上下限为(-180°,180°),上限的速度设置的是1.0,因为revolute是含限位的。
robot的描述部分:
整个URDF模型的最顶层的标签叫做robot,其中name可以自定义,注意所有的连杆和关节标签必须在robot中进行描述,在别处描述是不行的。
3、从零手写移动机器人的URDF模型
下面开始在linux系统中进行操作:
这篇关于ROS建模:一起从零手写URDF模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!