内旋外旋万向锁

Sandals-little / 2023-08-18 / 原文

内旋(intrinsic rotations) = 旋转轴(rotated axis),右乘(R矩阵在右),应用于SLAM,机械臂运动学。

 

在新坐标系下,P点的坐标变为P′ 

外旋(extrinsic rotations) = 固定轴(static/fixed axis),左乘(R矩阵在左),应用于机器人的姿态估计。

P点旋转α,得到新的点 P 

内旋与外旋的区别

假设在世界坐标系中XYZ中存在物体,物体自身坐标系为xyz,假设初始状态物体相对XYZ的旋转为(0,0,0),即xyz与XYZ重合.我们定义旋转顺序为z->y->x,转角分别为γ,β,α。先绕z轴旋转γ,旋转过后,物体的x,y轴的坐标系发生了改变,z轴不变,得到新的物体自身坐标系x2y2z,此时的坐标轴x2,y2不再与世界坐标系的坐标轴XY重合。

内旋,外旋的区别在于:

在转β(第二个转角)时:内旋按照旋转后物体的坐标轴,也就是y2轴旋转,也就是说内旋按照动轴旋转。外旋按照世界坐标系中的Y轴旋转,外旋按照定轴旋转。旋转最后一个角度时亦然。

因此,我们描述一个能表示确定姿态/旋转的欧拉角,应该这样:

旋转角度(α,β,γ),旋转顺序(z->y->x),外旋。

或者:

旋转角度(α,β,γ),旋转顺序(x->y->z),内旋。

等等, 三个元素缺一不可。

其实一般我们用欧拉角是为了方便主观理解,最终我们一般还是要转换为旋转矩阵,或者四元数来参与计算。

欧拉角与旋转矩阵

旋转角度(α,β,γ),旋转顺序(z->y->x),外旋。

可以写为:

P'=RP

其中:

-----------------------------------------------------------------------------------

备注:

我们以外旋为例推导上述矩阵

旋转角的正方向由右手螺旋定则给定(z轴朝外),上述角适合于锐角也适合于钝角

-------------------------------------------------------------------------------------

而上述(α,β,γ),旋转顺序(x->y->z),内旋,可以写为:

P'=PR

每种特定顺序的外旋等价于其相反顺序的内旋,也就是说x->y->z内旋和z->y->x外旋的整体R矩阵是一样的。

万向锁

第二次旋转时旋转了90度或则-90度会发生万向锁问题:也就是第一次和第三次旋转都是绕同一的向量(世界坐标系的轴)在旋转(内旋)

由上图可知第一次和第二次同方向

参考文章:

欧拉角细节/旋转顺序/内旋外旋 - 知乎 (zhihu.com)