运动旋量用于正向运动
假设{4}的原点,是最后的端点,那么先让机器人复位,回到最初始的位姿:
回顾:
https://www.cnblogs.com/pylblog/p/18085153
只需要知道{ω,q, θ},就可以获得一个转换:在b处的位姿,转换到c处的位姿,而且位姿都是相对于统一固定坐标系s的
那么,可以:
第一步:
1. 容易通过机械设计结构,得到 {4} 的初始位置,T04(0)
2. 假设只有 关节{3} 发生旋转,那么,容易得到:
那么,马上可以得到:
第二步:
那么,也容易得到:
那么,马上可以得到:
那么,经过类似的变化,就可以的到最终的结果:
其结果,等价于各个关节的位姿T相连:
区别:
1. 使用旋量计算,最后的T是相对于世界系的,从后往前;对于三维的计算,不需要考虑每个关节的坐标系相对于前一个关节是如何的。
2. 而后者是局部的位姿,从前往后;
使用运动旋量的方式计算位置,称为PoE(Product of Exponential)指数积公式
其关键是:将每个关节的螺旋运动施加给后面的干
首先,需要准确知道,末端关节的初始位姿M(是相对于{0}系的,不是相对于上一个的)
(M最简单的获取方式,就是将各个关节“归零”,然后根据机械图纸直接推得)
末端的前一个关节,假设为第N个关节,那么,如果有如下变量:
1. θn:第n关节的旋转量。(如果第n关机是移动关节,那么 θn是移动的距离)
2. Sn = [ ωn, vn] ,vn = -[ωn] qn , qn按照几何的定义,可以是沿转轴上的的任意一点 。
(所以q并不重要,它只是辅助用的,但是有的书,是要从原点出发,与旋转轴正交的点)
(如果第n关机是移动关节,ωn = 0, 而vn是沿关节正向运动的单位向量)
3. 以上vn,ωn都是相对于{0}系下的向量
运动旋量
(注意,v是总的线速度,q是原点出发,位于旋转轴上的点,与原点连线垂直于旋转轴)
(ωTv实际上,就是总速度在旋转方向上的分量)
那么,第N关节的运动,使得末端关节的位姿从M变换为位姿T(相对于{0}的位姿):
(注意:用于姿态正算时,不是用角速度,而是使用角度,只取旋量作为使用)
(从这个图可以看出,不在乎{0}系是否在底座的关节上,反正ω, v都是相对于{0}系的)
各个S,都是可以在归零位的时候就确定下来的,图纸上就可以直接得到
分析如下关节:
末端关节的位姿:
1. {0}系和{1}系,在开始时刻,是重合的
2. 末端关节和{3}系,在开始时刻,也是重合的
那么,末端关节位姿,有:
x 轴在{0}系的 [0,0,-1]方向。
y 轴在{0}系的 [0,1,0]方向。
z 轴在{0}系的 [1,0,0]方向。
原点在[L1,0,-L2]处
各个关节的螺旋轴:
i = 3:旋转轴ω,在{0}系下,ω = [1,0,0] ;
v = - [ω] q,q只需要沿ω轴上的任意一点,所以可以选择为,在{0}系下,q = [0,0,-L2]
所以,v = [0,L2,0]
i = 2:旋转轴ω,在{0}系下,ω = [0,-1,0] ; 在{0}系下,q = [L1,0,0],所以,v = [0,0,-L1]
i = 1:旋转轴ω,在{0}系下,ω = [0,0,1] ; 在{0}系下,q = [0,0,0],所以,v = [0,0,0]
(这种定义方式,确实要比D-H表方式更加简单)
注意到
i = 3时,是移动关节,所以:
ω = [0,0,0]
v = [0,1,0],是运动方向向量
θ为移动的距离。
基于此,尝试代入:
由此可见,这种方式“凑”的转换矩阵,就是平移用的
通用机器人描述格式URDF(Universal Robot Description Format ):
1. 关节(join)。包含 关节变量为0是,子杆相对于父杆的位姿(局部坐标系下的位姿),子杆原点在关节。
2. 杆(link)。包括:
(1)杆的质量。
(2)杆的质心,相对于关节坐标系的位姿(局部坐标系下的位姿)