graphpad如何做x轴在上方的图_做控制要知道的刚体旋转知识(四)旋转矩阵/方向余弦矩阵...

3056509e7ea0117499ea913b05715544.png

旋转矩阵/方向余弦矩阵

上一篇是与本篇紧密联系的欧拉角:

FrancisZhao:做控制要知道的刚体旋转知识(三)欧拉角​zhuanlan.zhihu.com
d883b9f8087dd6a94d509ec77400d11d.png

正如四元数之于轴角法一样,旋转矩阵之于欧拉角也是不可或缺的。

旋转矩阵为欧拉角提供了数学方法,使其能够相加相减,便于运算。

欧拉角为旋转矩阵提供了直观的理解方式。

先简单过一下rotation matrix,之后再讲一下哪些是使用中需要注意的。

旋转矩阵(rotation matrix)记作R,R是一个标准正交矩阵。从线性代数的角度,这种矩阵有什么性质呢?

1 三个行向量的模均为1,且相互正交。
2 三个列向量的模均为1,且相互正交。
3 行列式的值为1.(非标准正交矩阵的行列式值为-1)
4 RR’=I,乘其转置矩阵为单位阵,
5 自由度为3.(根据正交矩阵的凯莱公式可得)

标准正交矩阵的优点太多了,简直为旋转而生啊!!!

我们从两个角度去理解:欧拉角和方向余弦矩阵。

旋转矩阵

先看看如何从欧拉角推到出旋转矩阵。

先从二维简化来看。

一个点被旋转一个角度。

0a4f489bc32a830951d7df5539c78c3e.png

通过三角函数,我们很容易得出以下的公式:

cd20ffa1ea51af6b82745697a5a4c4e4.png

d30265f6a1a36688c29e1a7903279eed.png

我们可以把其中的2×2的矩阵定义为R,这就是一个在二维平面的旋转矩阵。这种二维的旋转的旋转轴是垂直于纸面的,因此相当于绕虚拟的Z轴旋转

637b0eb4096eba5f9971dcab52abcc08.png

我们在回归三维,还是以小飞机为例子,转序为ZYX。当我们仅仅绕着Z轴旋转的时候,这和上图中的旋转相同,z的值没有变化,只是x和y的值发生了变化。

ea73fc8d769a866c1ba0fadb14e02191.png

5465d64d6503f384887eebd79e46d920.png

接着,绕y轴的旋转

8d7d6041742599df9cbec7d07fe14426.png

绕y轴的旋转可以表示为:

45dcfa14ffd3125a0e0387d94d74ea99.png

最后,绕X轴旋转:

6467de399264e56fbc9c9a773c995b54.png

绕x轴的旋转可以表示为:

0974d31984b21ceef854164415a99b06.png

将旋转叠加,也就是旋转矩阵分别的右乘,得到了表示最终姿态的旋转矩阵。

13b1b079b0926acb5b1837b90ca7f4c5.png

c5121440405ff0afc5acbe52df8c4a08.png

旋转矩阵不仅可以从欧拉角的旋转推到出来,作为欧拉角的数学工具,还可以直接从坐标系之间关系推导出来,这时候R又可以叫做方向余弦矩阵:direction cosine matrix(DCM)。这个在解决某些问题中非常实用:

方向余弦矩阵

dc121f51c43ef53981228647ca16a34f.png

单位向量 I, J, K 表示为世界坐标系(global)的XYZ轴,可以写成:

b0f7f91e85e192baabd36a11fbc92f68.png

这三个小写的向量 i, j, k是本体坐标系的三个单位向量.其中i向量在世界坐标系下可以表示为:

53ccfc124b7b2be7a9112d5fa2dc679f.png

其中的ix就是向量i在向量I上的投影长度,可表示为I点乘i。

d56d06260761a575abc80b80d663891f.png

同理可以得出

9e5ce7846cbfdfe6be630757570679af.png

发现i在世界坐标系下的坐标表示就向量i点乘世界坐标系的三个轴的基准向量。

同理可以推导出ijk,因为ijk和IJK都是单位向量,所以可表示如下:

7e15cdb300470645953e54a11deb8bf9.png

所以,DCM的第一列就是本体坐标系的i向量(x轴)在世界坐标系下的坐标,同理,y轴和z轴就是第二列和第三列。

第一行呢?就是世界坐标系的的I向量(x轴)在本体坐标系下的坐标,同理,y轴和z轴就是第二行和第三行。

通过这种方式我们可以轻松找出某一条轴的姿态坐标,非常方便。

因此我们可以理解为旋转矩阵和方向余弦矩阵是等价的,二者从不同的角度出发,得出了相同的姿态表示方法。

归一化:

旋转矩阵在计算中可能由于数值误差等等,不符合正交矩阵的需求,因此要经常归一化使其保持正交。mahony 在论文中给出了一种归一化的方式;

取出旋转矩阵的第列和第二列,也就是本体坐标系的x和y轴。

364d28c3fbae9c87b8bd16e02ca103ec.png

X和Y轴做点乘(如果正交,则点乘应该为0),作为二者之间的误差,再重新计算X和Y

293348fb0745a3c7288a59e4353c8f58.png

再重新计算Z,因为Z垂直与X和Y,因此取叉乘。

cac5c9d400dd63d43ceccb79fb4d2d5f.png

旋转矩阵的优缺点:

优点:

1 相比于欧拉角的多样性,同一个姿态的旋转矩阵是唯一的
2 可以直接做旋转的叠加运算
3 相比于四元数,对坐标转化更加友好。

缺点:

1 用9个量表示三个自由度,冗余度太大了。

前两篇

FrancisZhao:做控制要知道的刚体旋转知识(一)轴角法​zhuanlan.zhihu.com
306bbe148da846933ba668a3c84c472b.png
FrancisZhao:做控制要知道的刚体旋转知识(二)四元数​zhuanlan.zhihu.com
306bbe148da846933ba668a3c84c472b.png

专栏里每一篇都是我一个字一个字打的,都是我认为的原创干货。

欢迎指正讨论,转载请注明,认同请点赞。

这个系列的文章很容易出错,希望大佬们多多指正补充。

仅仅收藏是学不会的,还得点赞。

104c52cc983a1c0e8ff5550cdd247e59.png
FrancisZhao:专栏文章列表以及一些说明​zhuanlan.zhihu.com
9f91da1eadfe49355f0dd7e6bba1a07a.png

参考文献

https://www. youtube.com/watch? v=lVjFhNv2N8o http://www. chrobotics.com/library/ understanding-euler-angles http://www. starlino.com/dcm_tutori al.html https:// en.wikipedia.org/wiki/R otation_matrix
DCM 1 Draft: 5/17/2009 Direction Cosine Matrix IMU: Theory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值