个人学习,水平不高,请指正
前言
最近在学平衡小车,学习卡尔曼滤波 ,加速度计解算姿态角时用到了旋转矩阵,所以有了这个文章
一、前置知识
线性代数矩阵相关知识:
矩阵运算、空间变换等
一些三角函数公式
二角和差公式:
cos(α+β)=cosα·cosβ-sinα·sinβ
cos(α-β)=cosα·cosβ+sinα·sinβ
sin(α±β)=sinα·cosβ±cosα·sinβ
二、二维平面旋转
OP旋转了β°变成OP‘ ,如何求出改变量x’与y‘呢?
根据三角形三个边关系可推出
x=r*cos(角度)
y=r*sin(角度)
求x’与y‘的话,在这里的r为模长 |op|,而角度为α+β
由二角和差公式可推得
由于
|OP|*cosα=x
|OP|*sinα=y
刚好等于是旋转前的量,用xy直接替换式子中的元素,最终得到
最后写成矩阵形式
xy前面的矩阵就是旋转矩阵
这代表x、y经过变换变成了x’、y‘,转了β角度
三、三维推广
1.右手坐标系
以下推导基于右手坐标系,拿出你的右手比个图中手型 坐标轴由图中所示
2.绕x轴旋转
由于x坐标轴不动,所以x’=x
我们从x轴看(x指向自己)然后把z轴和y轴转成一个向上是正方向,一个向右正方向,
把它看成二维坐标系,剩下计算与二维一样
由二角和差公式可推得
写成矩阵的形式
3.z轴与y轴
只需要注意轴的位置,推导与绕x轴一样
四、完整草稿
五总结
参考3维旋转矩阵推导与助记_二维坐标系旋转 三阶矩阵_码农爱学习的博客-CSDN博客
字丑,容易把阿尔法和贝塔写成ab,如有错误欢迎指正