Browse Source

[add]:添加四元数

sangxin 3 years ago
parent
commit
3cae1f2fa8

+ 51 - 4
docs/chapt7/7.2.3姿态的多种表示.md

@@ -206,7 +206,7 @@ $$
 根据旋转顺序不同,固定角有12种旋转方式,这里我们给出了绕固定轴以XYZ顺序旋转欧拉角转旋转矩阵的等式,其他旋转顺序对应的旋转矩阵可以尝试自行推导.
 
 ### 2.2 非固定旋转轴的欧拉角
- 
+
 非固定旋转轴,即每次旋转是绕着自身的坐标轴进行旋转,其旋转动图如2.2.2节所示。
 
 非固定旋转的欧拉角转旋转矩阵推导也很简单,我们以旋转顺序ZYX为例子分析
@@ -272,7 +272,54 @@ $\theta$的符号由右手定则确定,右手大拇指指向矢量K的方向.
 
 ## 四元数
 
-除了轴角这种方式
+除了轴角可以使用一个表示角度和三个表示旋转轴,一共四个数字表示旋转外。还有另外一种方式可以表示旋转——四元数。
+
+四元数的四个数字由一个实部和三个虚部组成,是一个超复数形式
+
+$$
+q = w + x*i+ y*j + z*k
+$$
+
+
+关于四元数的由来有个小故事,小鱼分享一下:
+
+> 1843年10月16日的傍晚,英国数学家哈密顿和他的妻子一起步行去都柏林,途中经过布鲁哈姆桥时,他的脚步突然放慢了。妻子以为他要尽情欣赏周围的景色,于是也放慢了脚步。其实哈密顿此时正在思考他久久不能解决的问题。早在1828年,他就想发明一种新的代数,用来描述绕空间一定轴转动并同时进行伸缩的向量的运动。他设想这种新代数应包含四个分量:两个来固定转动轴,一个来规定转动角度,第四个来规定向量的伸缩。但是在构造新代数的过程中,由于他受传统观念的影响,不肯放弃乘法交换律,故屡受挫折。哈密顿盲目地相信,普通代数最重要的规律必定继续存在于他寻找的代数中。然而此刻,他的脑际突然产生了一个闪念:在所寻找的代数中,能否让交换律不成立呢?比方说,A×B不等于B×A而是等于负的B×A。这个想法太大胆了,他感到非常激动。哈密顿马上掏出笔记本,把他的思想火花记录下来。这一火花就是I,J,K之间的基本方程,即四元数乘法基本公式。哈密顿因此把1843年10月16日称为四元数的生日。此后,哈密顿一生的最后22年几乎完全致力于四元数的研究,成果发表在他去世后出版的《四元数基础》一书中。四元数的出现,推倒了传统代数的关卡,故有数学史上星程碑的美誉。后人为了纪念这一发明,特意在当年哈密顿刻划过的石头上镶嵌了一块水泥板,上面清楚地记载着1843年曾经发生的故事。
+
+
+
+四元数在机器人中使用的非常多,甚至在量子力学中都有使用,关于四元数旋转的本质,小鱼也学习了很久才搞清楚,B站上3B1B的视频非常经典,大家自行食用。
+
+
+
+> 在机器人学当中用到的四元数都是单位四元数(四维单位超球体在三维空间的投影),下文中提到的四元数默认指单位四元数
+
+
+
+<iframe height="400" width="600" src="//player.bilibili.com/player.html?aid=33385105&bvid=BV1SW411y7W1&cid=58437850&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
+
+接着我们来说说四元数常用的转换
+
+四元数转旋转矩阵
+
+![image-20211229184439675](7.2.3姿态的多种表示/imgs/image-20211229184439675.png)
+
+旋转矩阵转四元数
+
+![image-20211229184453523](7.2.3姿态的多种表示/imgs/image-20211229184453523.png)
+
+四元数转欧拉角
+
+![image-20211229184338075](7.2.3姿态的多种表示/imgs/image-20211229184338075.png)
+
+四元数转轴角
+
+轴:$^AK=[k_x,k_y,k_z]^T$ 角:$\theta$
+$$
+x= k_x\sin(\theta/2)\\
+y= k_y\sin(\theta/2) \\
+z= k_z\sin(\theta/2)\\
+w = \cos(\theta/2)
+$$
+
+>  小计算: $w^2+x^2+y^2+z^2=1$
 
-四元数是简单的超复数。 复数是由实数加上虚数单位 i 组成,其中i²= -1。 相似地,四元数都是由实数加上三个虚数单位 i、j和k 组成,而且它们有如下的关系: i² = j² = k² = -1, iº = jº = kº = 1 , 每个四元数都是 1、i、j 和 k 的线性组合,即是四元数一般可表示为a + bi+ cj + dk,其中a、b、c 、d是实数。
-对于i、j和k本身的几何意义可以理解为一种旋转,其中i旋转代表Z轴与Y轴相交平面中Z轴正向向Y轴正向的旋转,j旋转代表X轴与Z轴相交平面中X轴正向向Z轴正向的旋转,k旋转代表Y轴与X轴相交平面中Y轴正向向X轴正向的旋转,-i、-j、-k分别代表i、j、k旋转的反向旋转。

BIN
docs/chapt7/7.2.3姿态的多种表示/imgs/image-20211229182930886-16407737728992.png


BIN
docs/chapt7/7.2.3姿态的多种表示/imgs/image-20211229182930886.png


BIN
docs/chapt7/7.2.3姿态的多种表示/imgs/image-20211229183156235.png


BIN
docs/chapt7/7.2.3姿态的多种表示/imgs/image-20211229184338075.png


BIN
docs/chapt7/7.2.3姿态的多种表示/imgs/image-20211229184439675.png


BIN
docs/chapt7/7.2.3姿态的多种表示/imgs/image-20211229184453523.png


BIN
docs/chapt7/7.2.3姿态的多种表示/imgs/sqrt{w^2&plus;x^2&plus;y^2&plus;z^2}.gif