四元数简介
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 四元数都ຫໍສະໝຸດ 1、i、j 和 k 的线性组合,一般
可表示为 d + ai + bj + ck,a、b、c、d是 实数。 • 四元数的其它表示方法: 1、q=[w,v] 其中v=(x,y,z)是矢量,w是标量。 2、q=( cosθ/2 , (x ,y,z )sinθ/2) 3、q=[d,a,b,c]T
• • • • •
纠正陀螺仪积分得出的姿态。 长期融合用到的传感器是加速度计和电子罗盘 假设正确的姿态四元数为Q,那么可以利用四元数旋转将参考坐标系和 体坐标系下的向量互相转换,将Eh和Eg转换到体坐标系下 BEh=Q×Eh×Q* BEg=Q×Eg×Q * 理论上Bg=BEg,Bh=BEh 即 { Q×Eh×Q* - Bh = 0} , { Q×Eg×Q* - Bg = 0} 这两个方程成立,联立这两个方程就可以解得姿态四元数Q。但是,由 于各种误差的存在,这个方程组只能找到最优解,找最优解的问题有许 多方法可以采用,如[梯度下降][高斯牛顿]
• q1 q2=
w2 x 2 y2 z2
四元数在姿态运算上的应用
• 一个单位化的四元数可以描述一个三维旋转的过程。例如:
p0以原点为旋转中心,旋转的轴是(α, β, γ) ( α^2 + β^2 + γ^2 = 1), 转θ角的旋转,用四元数表示就是: p1= qp0q-1
四元数
齐朋冲
四元数的引入
• 复数的加、乘运算可以表示平面向量的合成、伸
缩和旋转变换,这些知识我们已经在中学课程中 学过了。 那么,很自然的问题就是,在三维,或更高维空 间中是否也有复数的类似物?其中的元素还可以 像复数域那样做加、减、乘、除运算,并满足通 常复数的那些运算律,包括加法和乘法的交换律 与结合律、乘法对加法的分配律等待?更进一步, 我们是否可以期望用这样的数来表示三维或更高 维空间中的伸缩和旋转,就像用复数表示平面向 量的伸缩旋转那样方便?
•
姿态处理
• λ为权值
四元数转欧拉角
• 转换公式
四元数作用过程
起飞前 起飞
姿态传递 初始姿态
姿态融合
长期融合
快速融合
谢谢!
• 根据四元数结合律有 • p = (qn−1 ...q3−1 q2−1 q2−1) p′(q1 q 2q 3...q n) • 故(q1 q 2q 3...q n)可表示四元数一系列旋转操
作,也可以表示一次四元数旋转操作,也可以表 示刚体相对于大地的姿态
姿态融合
长期融合
• 长期融合的作用有两个:一、得到初始姿态;二、用直接测量的姿态,
• 因为微分时间内yaw,pitch,roll都为非常小的角度,
所以可以有这样的小角近似:sin△=△,cos△=1, 上面作完近似后就出来了 q dt =(1,roll/2 ,pitch/2, yaw/2) =(1,gxT/2 ,gyT / 2, gzT/2) 把微分法证明完了以后你会发现,做完小角近似 后三个角 yaw,pitch,roll在里面地位是一样的, 这也刚好对应的它们是同时旋转的,而且还发现 了小角度情况下旋转是原来是可以合成的 。
四元数的运算
• 要把两个四元数相加只需将相类的系数加
起来就可以,就像复数一样。至于乘法则 可跟随以下的乘数表:
• 四元数乘法:
q1=(w1,x1,y1,z1) q2=(w2, x2,y2,z2)
w1 x1 y1 z1 x w z y 1 1 1 1 y1 z1 w1 x1 w1 z1 y1 x1
q = (cos(θ/2); α sin(θ/2), β sin(θ/2), γ sin(θ/2)) q-1=q*/||q||
• 四元数的乘法可以表示将多个旋转合并,例如:
• p = qn−1 ...q3−1 q2−1 q2−1 p′ q1 q 2q 3...q n
刚体沿着q1 q 2q 3...q n依次旋转后有
• 历史上有很多数学家试图寻找过三维的复数,但
后来证明这样的三维复数是不存在的。 知道了复数不能推广到三维,我们把目光移向四 维复数,即四元数。四元数是由爱尔兰数学家威 廉· 卢云· 哈密顿在1843年发现的。复数推广到四 元数,必须牺牲掉数域的某一条或几条性质,哈 密尔顿抛弃了乘法交换律。
四元数定义
快速融合
• 快速融合主要用到的传感器是陀螺仪 • Qdt=qxyz=qzqyqx =
cos(yaw/2)cos( pitch / 2)cos(roll / 2) sin( yaw / 2) sin( pitch / 2) sin( roll / 2) sin( yaw / 2) sin( pitch / 2) cos(roll / 2) cos( yaw / 2) cos( pitch / 2) sin( roll / 2) cos( yaw / 2) sin( pitch / 2) cos(roll / 2) sin( yaw / 2) cos( pitch / 2) sin( roll / 2) sin( yaw / 2 ) cos( pitch / 2 ) cos( roll / 2 ) cos( yaw / 2 ) sin( pitch / 2 ) sin( roll / 2 )
可表示为 d + ai + bj + ck,a、b、c、d是 实数。 • 四元数的其它表示方法: 1、q=[w,v] 其中v=(x,y,z)是矢量,w是标量。 2、q=( cosθ/2 , (x ,y,z )sinθ/2) 3、q=[d,a,b,c]T
• • • • •
纠正陀螺仪积分得出的姿态。 长期融合用到的传感器是加速度计和电子罗盘 假设正确的姿态四元数为Q,那么可以利用四元数旋转将参考坐标系和 体坐标系下的向量互相转换,将Eh和Eg转换到体坐标系下 BEh=Q×Eh×Q* BEg=Q×Eg×Q * 理论上Bg=BEg,Bh=BEh 即 { Q×Eh×Q* - Bh = 0} , { Q×Eg×Q* - Bg = 0} 这两个方程成立,联立这两个方程就可以解得姿态四元数Q。但是,由 于各种误差的存在,这个方程组只能找到最优解,找最优解的问题有许 多方法可以采用,如[梯度下降][高斯牛顿]
• q1 q2=
w2 x 2 y2 z2
四元数在姿态运算上的应用
• 一个单位化的四元数可以描述一个三维旋转的过程。例如:
p0以原点为旋转中心,旋转的轴是(α, β, γ) ( α^2 + β^2 + γ^2 = 1), 转θ角的旋转,用四元数表示就是: p1= qp0q-1
四元数
齐朋冲
四元数的引入
• 复数的加、乘运算可以表示平面向量的合成、伸
缩和旋转变换,这些知识我们已经在中学课程中 学过了。 那么,很自然的问题就是,在三维,或更高维空 间中是否也有复数的类似物?其中的元素还可以 像复数域那样做加、减、乘、除运算,并满足通 常复数的那些运算律,包括加法和乘法的交换律 与结合律、乘法对加法的分配律等待?更进一步, 我们是否可以期望用这样的数来表示三维或更高 维空间中的伸缩和旋转,就像用复数表示平面向 量的伸缩旋转那样方便?
•
姿态处理
• λ为权值
四元数转欧拉角
• 转换公式
四元数作用过程
起飞前 起飞
姿态传递 初始姿态
姿态融合
长期融合
快速融合
谢谢!
• 根据四元数结合律有 • p = (qn−1 ...q3−1 q2−1 q2−1) p′(q1 q 2q 3...q n) • 故(q1 q 2q 3...q n)可表示四元数一系列旋转操
作,也可以表示一次四元数旋转操作,也可以表 示刚体相对于大地的姿态
姿态融合
长期融合
• 长期融合的作用有两个:一、得到初始姿态;二、用直接测量的姿态,
• 因为微分时间内yaw,pitch,roll都为非常小的角度,
所以可以有这样的小角近似:sin△=△,cos△=1, 上面作完近似后就出来了 q dt =(1,roll/2 ,pitch/2, yaw/2) =(1,gxT/2 ,gyT / 2, gzT/2) 把微分法证明完了以后你会发现,做完小角近似 后三个角 yaw,pitch,roll在里面地位是一样的, 这也刚好对应的它们是同时旋转的,而且还发现 了小角度情况下旋转是原来是可以合成的 。
四元数的运算
• 要把两个四元数相加只需将相类的系数加
起来就可以,就像复数一样。至于乘法则 可跟随以下的乘数表:
• 四元数乘法:
q1=(w1,x1,y1,z1) q2=(w2, x2,y2,z2)
w1 x1 y1 z1 x w z y 1 1 1 1 y1 z1 w1 x1 w1 z1 y1 x1
q = (cos(θ/2); α sin(θ/2), β sin(θ/2), γ sin(θ/2)) q-1=q*/||q||
• 四元数的乘法可以表示将多个旋转合并,例如:
• p = qn−1 ...q3−1 q2−1 q2−1 p′ q1 q 2q 3...q n
刚体沿着q1 q 2q 3...q n依次旋转后有
• 历史上有很多数学家试图寻找过三维的复数,但
后来证明这样的三维复数是不存在的。 知道了复数不能推广到三维,我们把目光移向四 维复数,即四元数。四元数是由爱尔兰数学家威 廉· 卢云· 哈密顿在1843年发现的。复数推广到四 元数,必须牺牲掉数域的某一条或几条性质,哈 密尔顿抛弃了乘法交换律。
四元数定义
快速融合
• 快速融合主要用到的传感器是陀螺仪 • Qdt=qxyz=qzqyqx =
cos(yaw/2)cos( pitch / 2)cos(roll / 2) sin( yaw / 2) sin( pitch / 2) sin( roll / 2) sin( yaw / 2) sin( pitch / 2) cos(roll / 2) cos( yaw / 2) cos( pitch / 2) sin( roll / 2) cos( yaw / 2) sin( pitch / 2) cos(roll / 2) sin( yaw / 2) cos( pitch / 2) sin( roll / 2) sin( yaw / 2 ) cos( pitch / 2 ) cos( roll / 2 ) cos( yaw / 2 ) sin( pitch / 2 ) sin( roll / 2 )