运动控制理论(1)——刚体的运动

刚体运动本质

已知:

1. 质心位置X1,位置姿态C1

2. 质心位置X2,位置姿态C2

3. 点局部坐标Xb

求:【点】世界坐标

C1,理解为,世界坐标基 I (单位矩阵),旋转,得到位置1处各个箭头的向量。

C1 =  R1 * I

C2  = R2 * I

C1、C2可以看做是两个位置下,红、绿、蓝箭头,在世界坐标系下的向量

在位置1处,【点】的世界坐标  Xw1 =  C1 * Xb + X1

在位置2处,【点】的世界坐标  Xw2 =  C2 * Xb + X2

 AXB :X是世界坐标系A下的向量。

 也可以这样写。

(从列的角度看,第一列,是XB投影到A各轴上的分量,再组成一个向量,即:AXB

(从行的角度看,第一行,是XA投影到B各轴上的分量,再组成一个向量,即:BXA

(注意,凡是说到向量都是列向量)

 理解:

如果只考虑旋转,不考虑平移,那么:

 Xw1 =  C1 * Xb

 Xw2 =  C2 * Xb

Xb =  C1 -1 Xw1  = C1TXw1 (单位正交矩阵, 逆等于其转置)

Xw2 = C2 * C1Xw1

Xw2 就是刚体发生旋转之后,刚体上某点,在世界坐标系下的坐标。

C2 则是刚体发生旋转之后,主轴在世界坐标系下的向量,也就是 [XB, YB, ZB] 3*3

假设:C1 则是刚体旋转前,主轴和世界坐标重合,也就是   [XA, YA, ZA] 3*3  

因此,有: RAB =  [XB, YB, ZB]* [XA, YA, ZA]T

即:Xw2 = R Xw1

如果是有世界坐标,没有更大的坐标,那么:I =   [XA, YA, ZA] 3*3  , Xb = Xw1 ,因此有:Xw2 = RAB Xb =  C2Xb


 

 

选择具有 not Commutable (不可交换顺序)的性质


 旋转有两种方式:

1.  Fixed angles。( 旋转总是绕固定的 “ 世界坐标”下的轴 )

(注意,顺序是先绕X,再绕Y,再绕Z,矩阵的顺序,是从右到左,也就是向左乘)

(注意R的下标,对比欧拉转法)

(注意,先绕X轴转的,放到后面!!!)

 

 (之所以用Atan2,不用Atan,是因为 Atan输入一个数字,Atan(1) , 只能得到45度(0~180),而Atan2(-1,-1)和Atan2(1,1),结果是45度和135度)

(疑惑疑惑:Fixed Angle怎么和其他书上的欧拉角是一样的??)

(看下面,顺序不一样!)

2. Euler angles。(欧拉角) 旋转开始时,载体轴和世界轴重合,第一次旋转绕世界轴,载体轴都是一样的;之后的旋转,载体轴和世界轴不重合,然后都是绕载体轴来旋转了。

 (注意,顺序是先绕Z轴转,再绕Y’轴转,再绕X’轴转,但是矩阵的顺序,是从左到右,也就是向右成

 这里要和Xb 对 RAB进行线性组合的思维需要有区分。

BP 或 Xb,得看成是另一个坐标系下的坐标,而非想象为载体坐标系。

固定坐标系(Fixed angles)的左乘相当于给基准坐标系的向量进行齐次变换,坐标系没有发生变化,由当前向量经过运动后得到最终向量相对于基准坐标系的位置(已知向量相对于初始坐标系位置),数学表达符合左乘;

(向量动,世界坐标不动)

旋转(运动)(Euler angles)坐标系的右乘相当于将整个坐标系进行次变换,但是向量只有在空间相对于最终变换坐标系的位置已知(已知向量相对于最终坐标系的位置),需要得到向量相对于最初的基准坐标系的的位置,相当于求反解,符合数学表达右乘。

(向量不动,相当于载体坐标是固定的,只有世界坐标系动,所以要求反,就要右乘)

 结论:给的α,β,γ,用fix angle和 eular angle,算出的R是一样的!!!!但是顺序一定要对应!!!

 (可以看到,使用fix angle,先绕X60,再绕Y30   = eular angle 先绕Y30,再绕X60)

参考:https://blog.csdn.net/chen_mp/article/details/133365293

欧拉角 和 固定角,仅仅是理解角度不同,但是从公式入手,是完全相同的!欧拉角的ZXY(312)等价于固定角的 YXZ(213), 都是 T = Rz Rx Ry

(并且,再世界坐标系下,欧拉角按照312转,xyz对应载体坐标系的“右前上”,转换后的坐标为“ENZ”)

 


 

特殊的欧拉转发

使用ZYZ

  

 (任何的旋转矩阵,可以用任何的方式拆解!!)

 无论如何,反正下一次旋转绕的轴,和上一次不一样,那么就有 3 * 2 * 2  = 12 种!


 

大一统,旋转向量

绕某一个单位向量,转一个角度

 


 

旋转和移动

PA = RABPb + T

其中R 3*3,  T3*1

假设Pb是P点局部坐标系下的向量,并且局部坐标系与世界坐标系没有旋转关系。

所以Pb也是世界坐标系下的向量

 求P点在世界坐标系下的向量,根据向量相加法则,有如上公式。

RABPb 的作用,正是将向量Pb转换为世界坐标系下的向量 , 再与世界坐标系下的向量PBorg进行向量加运算

Pb是橙色坐标系下的坐标

RAB 既是旋转矩阵,也是世界坐标系下的单位正交向量组,只是旋转了不和世界坐标系的轴重合


 

 从Fixed  Angle旋转的角度来看,Pb一开始就不是局部坐标系下的坐标了,而是世界坐标系下的坐标。

 然而,Pb却是一样的,因此,从哪个角度看待Pb很重要!

一个是点不动,世界在动;一个是世界不动,点在动。

区别是:

1. 如果知道局部坐标轴向量,Pb就是局部坐标系下的坐标。(不会既知道坐标基向量,也知道P在世界坐标系下的坐标,不然就不用求了吧)。RPb 起到一个还原到世界坐标系下得向量作用,就是mapping思维。

2. 如果只知道动作(operate),旋转多少度,那么Pb就是世界坐标系下的向量。RP起到变换的作用,就是operate的意思。


 

将世界,起一个别名Frame

PA = RPb + T

如果使用Frame动,点不动,求点在Frame变成Frame2时,P在Frame2下的坐标。

 


 

 Pc在A系下的表达求解

可以看到,位移向量也是全部转到A系下的位移向量


 APBorg 是相对于A系下的向量。

BPAorg 是相对于B系下的向量。

 


 

左乘右乘

重点

1. 以Operate的角度理解:

类似于Fix Angle,一开始是,B系和A系重合,TAB = I , v是刚开始时A系下的一个向量

随后,B绕A进行旋转变换。

2. 以Mapping的角度来理解:

类似于Euler angles,一开始PB 就是最后一个载体坐标系下的坐标。

 所以,这里区分v和PB

总结:如果使用Euler angles, PB一开始是载体坐标;使用Fix Angle,PB一开始是世界坐标。

 

posted on 2024-01-11 15:23  耀礼士多德  阅读(5)  评论(0编辑  收藏  举报