SLAM笔记(八)-再谈四元数

本文详细介绍了四元数在SLAM中的应用,包括四元数的起源、运算规则、与旋转矩阵、旋转向量、欧拉角的相互转换,以及在三维空间旋转表示中的优势。此外,还探讨了四元数插值在避免欧拉角插值问题中的作用。
摘要由CSDN通过智能技术生成

在二维空间中,我们用复数表示某点坐标,此时可以用加法表达点的移动,用乘法(乘以一个复数)表示点绕原点的旋转。

在三维空间中,我们无法无法用三维的“超级复合数”来表示点的移动和旋转。这也是四元数发明者汉姆尔顿(爱尔兰数学家)曾苦恼的地方。后来他想:为什么要坚持3位数表达,不用四位数来表达三维空间的移动和旋转呢?经过一系列证明,现在我们已经知道可以用四元数来表示三维空间的旋转,同理还存在八元数、十六元数等;但越往上就越会失去一些特性,比如四元数失去了交换律。

1.四元数简介

四元数分为向量和旋转角度 θ \theta θ。如果用三个数来表达,则不可避免会出现奇异情况(如欧拉角);而旋转矩阵有9个分量,浪费空间;四元数刚好无奇异表达,又节约空间。

四元数分为实部和虚部:
q = [ q 0 + q 1 i + q 2 j + q 3 k ] q = [q_0+q_1i+q_2j+q_3k] q=[q0+q1i+q2j+q3k] (2)
常写作: [ q 0 , q 1 , q 2 , q 3 ] [q_0,q_1,q_2,q_3] [q0,q1,q2,q3]
有时也将四元数用一个标量 q 0 q_0 q0,一个向量 [ q 1 , q 2 , q 3 ] [q_1,q_2,q_3] [q1,q2,q3] 来表示。

注: 高翔的博客中用实部在前、虚部在后的写法,而很多文章中采用虚部在前,实部在后的方式。但它们都对应于唯一的表达式(2),也就是这对四元数运算,如旋转公式 q p q − 1 qpq^{-1} qpq1无影响。

假设绕空间中某一向量 n = [ n x , n y , n z ] T n = [n_x,n_y,n_z]^T n=[nx,ny,nz]T 旋转 θ \theta θ,则四元数 q = [ q 0 , q 1 , q 2 , q 3 ] q = [q_0,q_1,q_2,q_3] q=[q0,q1,q2,q3]式子为:
q = [ c o s θ 2 , n x s i n θ 2 , n y s i n θ 2 , n z s i n θ 2 ] ( 1 ) q = [cos\frac{\theta}{2}, n_xsin\frac{\theta}{2}, n_ysin\frac{\theta}{2}, n_zsin \frac{\theta}{2}] (1) q=[cos2θ,nxsin2θ,n

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值