1. 旋转矩阵中分解出欧拉角的意义
在机器人或者自动驾驶等领域,总是绕不开旋转这回事。旋转可以用几种表示方法,比如旋转矩阵,欧拉角,四元数等。其中欧拉角是一种非常直观的表达方式,但是由于它存在万向节死锁的问题,一般不会拿它来参与计算,所以我们经常拿它来“给人看”,roll-pitch-yaw这三个角度可以表示一个旋转动作,对于我们人类来说非常直观。
但是对于计算机而言,旋转矩阵和四元数更有利于计算。于是,我们需要欧拉角和旋转矩阵或者四元数的转换。这里讨论一下旋转矩阵和欧拉角之间的转换。
2. 旋转矩阵与欧拉角的关系
使用欧拉角来构造旋转矩阵可以有多种方法,同一个旋转矩阵可以根据不同轴的旋转顺序,分解成不同的欧拉角。本文默认大家了解这一点,本文只讨论我工作中常用的旋转顺序(ZYX)的欧拉角。
则按照ZYX顺序构建旋转矩阵结果就是:
按照上述定义,其中
ψ
\psi
ψ就是
r
o
l
l
roll
roll,
θ
\theta
θ就是
p
i
t
c
h
pitch
pitch,
ϕ
\phi
ϕ就是
y
a
w
yaw
yaw.
下面是一种推导方式,代入公式验证一下即可。
这里介绍另一种方式。
我们知道旋转矩阵有左乘和右乘之分,拿姿态的左乘和右乘来说,左乘代表着绕着参考坐标系的xyz轴旋转,也就是我们所谓的定轴转或者外旋;而右乘则是绕自身坐标系的xyz轴旋转,也叫内旋。这块不明白的要查资料搞明白,这是机器人学的基础。
3. 根据内旋原则反向分解欧拉角
这块打字比较麻烦,直接白板推导。
至此,三个角都计算出来了,大家可以验证下和前面的结果是否一样。
4. 老乡别走,大家来一起读书啊
微信公众号-“过千帆”,希望道友们捧个人场。