运动旋量用于正向运动

 假设{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] qnqn按照几何的定义,可以是沿转轴上的的任意一点

(所以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)杆的质心,相对于关节坐标系的位姿(局部坐标系下的位姿)

posted on 2024-11-08 09:27  耀礼士多德  阅读(2)  评论(0编辑  收藏  举报