ROS学习-URDF学习纪要

ROS的URDF间断的学习了,老是抓不住要领,现在又重新学习了一篇终于有点眉目,问题主要集中在的关系及其中的 标签的作用,现在记录下来,以防止再忘记。

1、总结归纳:

(1)默认就是所有link的初识joint的坐标系都在世界坐标系的原点坐标系,例如:坐标原点在圆柱的中心,长方体的中心等,坐标系满足右手法则,x轴指向屏幕左边、y轴从屏幕向外,Z轴指向上方, XYZ坐标轴,红色为X, 绿色为Y,蓝色为Z。

(2)link和joint定义robot骨架,如果我们仅仅添加更多的link元素到urdf中的话,解析器不知道该如何放置它们,所以,我们必须添加关节结点来制定link间的连接关系;

(3)link和joint中都有结点,其意义是不同的中表明了可视化link结点原点在关联的joint原点坐标系的位置和朝向;而结点中的结点表明了该joint原点在其父joint坐标系中的位置和方向;

(4)定义urdf文件时,一般有一个类似base_link的固定坐标系,其中没有任何参数,默认就在世界坐标系原点,此时也同时有一个默认的joint结点与世界坐标系的位置和方向相同,该joint坐标系 就是base_link结点关联的joint坐标系,而后添加l一个ink结点和joint结点后,首先用joint结点中的信息,先旋转后平移,确定新添加的link关联的joint的坐标系(此坐标系与参考坐标系就有了一定的位置和旋转关系),此时新添加的link的中心原点就移动到该joint坐标系原点所在位置(此时link中没有origin结点),而后在link结点中添加结点,此时的变换参考坐标系是新生成的joint坐标系(此时link中心和joint原点重合),而后在参考坐标系下利用origin参数完成旋转和平移,此时可以利用rviz中的可视化处理(xyz分别是不同的颜色,此时的变换不改变joint坐标系的位置和方向),如果在添加下一个link和joint的话,新的joint的位置是相对与父link关联的joint的坐标系的变换,然后用同样的方法添加link就可以了。(可以认为joint与joint结点中定义的子link关联)。

(5)关于joint间的相对位置和角度关系,一般不存在旋转默认就是一样的或者存在90度等特殊角度的选择,至于xyz由于是可变的,可以找一个容易计算的特殊角度,先确定xyz,完成urdf的定义,当机器人运动起来后可以通过tf发布实时的位置关系,也就是说urdf中定义的joint关系只是莫个瞬间的joint位置关系。

(6)所有变换都是先旋转再平移.

(7)urdf文件加载后通过tf发布的是joint之间的坐标关系和link没有关系。


详细信息可以学习:http://blog.csdn.net/dulaiduwangduxing/article/details/45395665 

Learning URDF Step by Step


你可能感兴趣的:(ros)