四元数和旋转(Quaternions and rotations)

文章翻译自Quaternion and rotations,作者Yan-Bin Jia
译者刚入门,水平有限,仅供参考

1. Introduction

2. Quaternion Algebra

本节是四元数的基本性质,可以参考这个链接中的内容,讲的非常详细:https://www.qiujiawei.com/understanding-quaternions/

四元数集,再加上定义在其上的加法和乘法,共同形成了一个不可交换环(non-commutative ring)(这一部分并不需要特别的理解)。
R 3 R^3 R3空间中的标准正交基为:
在这里插入图片描述
四元数q,被定义成如下形式,由一个数 q 0 q_0 q0和一个向量 q \bold{q} q,组成:
在这里插入图片描述

2.1 加法和乘法

加法是逐项进行的,考虑有四元数p:
在这里插入图片描述
与上文四元数q相加,得到:
在这里插入图片描述
乘法要满足如下的性质:
在这里插入图片描述
两个四元数相乘可得:
在这里插入图片描述
利用向量点乘和向量叉乘的性质,可以化简得:
在这里插入图片描述
式中:
在这里插入图片描述
example 1:
假设有如下两个四元数:
在这里插入图片描述
取出向量如下:
在这里插入图片描述
计算向量的点乘和叉乘如下:
在这里插入图片描述
四元数乘积表达如下:
在这里插入图片描述
可以看到四元数集对加法和乘法是封闭的

2.2 complex conjugate,Norm and Inverse

假设一个四元数q:
在这里插入图片描述
其复共轭为q*:
在这里插入图片描述
根据上述定义可以得到如下性质:
在这里插入图片描述
以及性质:
在这里插入图片描述
一个四元数的模为:
在这里插入图片描述
模为1的四元数为单位四元数。模有如下性质:
在这里插入图片描述
四元数的逆为:
在这里插入图片描述
求逆过程证明:
在这里插入图片描述

3. Quaternion Rotation Operator

首先定义一个vector, v ∈ R 3 \bold{v} \in R^3 vR3,为实部是0的纯四元数。
紧接着定义一个单位四元数:
在这里插入图片描述
满足:
在这里插入图片描述
则一定有:
在这里插入图片描述
定义单位向量:
在这里插入图片描述
则有:
在这里插入图片描述

定义一个对于空间向量v的操作:

在这里插入图片描述
注意这里的证明,要用到如下性质:
在这里插入图片描述

证明:

L q ( v ) = q v q ∗ = ( q 0 + q ) v ( q 0 − q ) = ( q 0 v + q v ) ( q 0 − q ) = q 0 2 v + q 0 q v − q 0 v q − q v q = q 0 2 v + q 0 ( − q ⋅ v + q × v ) − q 0 ( − v ⋅ q + v × q ) − q v q = q 0 2 v + 2 q 0 ( q × v ) − ( − q ⋅ v + q × v ) q = q 0 2 v + 2 q 0 ( q × v ) − ( − q × v ⋅ q − ( q ⋅ v ) q + q × v × q ) = q 0 2 v + 2 q 0 ( q × v ) + 0 + ( q ⋅ v ) q + q ( q ⋅ v ) − v ( ∣ ∣ q ∣ ∣ 2 ) = ( q 0 2 − ∣ ∣ q ∣ ∣ 2 ) v + 2 ( q ⋅ v ) q + 2 q 0 ( q × v ) \begin{aligned} L_q (\pmb{v}) &=q \pmb{v} q^* \\ &= (q_0+\pmb{q}) \pmb{v} (q_0-\pmb{q}) \\ &= (q_0 \pmb{v} + \pmb{qv})(q_0-\pmb{q}) \\ &= q_0^2 \pmb{v}+q_0 \pmb{qv} - q_0 \pmb{vq} - \pmb{qvq} \\ &= q_0^2 \pmb{v} +q_0(-\pmb{q \cdot v} + \pmb{q \times v}) -q_0(-\pmb{v \cdot q} +\pmb{v \times q}) - \pmb{qvq} \\ &= q^2_0\pmb{v}+2q_0(\pmb{q\times v})-(-\pmb{q \cdot v} + \pmb{q \times v}) \pmb{q} \\ &=q^2_0\pmb{v}+2q_0(\pmb{q\times v})-( -\pmb{q \times v \cdot q}-(\pmb{q \cdot v})\pmb{q}+\pmb{q \times v \times q }) \\ &= q^2_0\pmb{v}+2q_0(\pmb{q\times v}) + 0 + (\pmb{q \cdot v})\pmb{q} + \pmb{q}(\pmb{q \cdot v}) - \pmb{v}(||\pmb{q}||^2) \\ &=(q^2_0-||\pmb{q}||^2)\pmb{v}+2(\pmb{q \cdot v})\pmb{q}+2q_0(\pmb{q \times v}) \end{aligned} Lq(vvv)=qvvvq=(q0+qqq)vvv(q0qqq)=(q0vvv+qvqvqv)(q0qqq)=q02vvv+q0qvqvqvq0vqvqvqqvqqvqqvq=q02vvv+q0(qvqvqv+q×vq×vq×v)q0(vqvqvq+v×qv×qv×q)qvqqvqqvq=q02vvv+2q0(q×vq×vq×v)(qvqvqv+q×vq×vq×v)qqq=q02vvv+2q0(q×vq×vq×v)(q×vqq×vqq×vq(qvqvqv)qqq+q×v×qq×v×qq×v×q)=q02vvv+2q0(q×vq×vq×v)+0+(qvqvqv)qqq+qqq(qvqvqv)vvv(qqq2)=(q02qqq2)vvv+2(qvqvqv)qqq+2q0(q×vq×vq×v)

旋转变换不会改变向量v的长度:
在这里插入图片描述
对于沿着旋转轴的向量v进行旋转不会改变方向:
在这里插入图片描述
旋转变换是个线性变换:
在这里插入图片描述

3.1 定理1

对于任意的单位四元数:
在这里插入图片描述
对于任意向量 v ∈ R 3 v \in R^3 vR3进行旋转变换:
在这里插入图片描述
相当于将向量v,绕u轴,旋转 θ \theta θ角度。
证明:TBDD

3.2 定理2

和上面定理1相反,对于任何一个单位四元数:
在这里插入图片描述
如下操作,是将向量v绕u轴旋转 − θ -\theta θ角度:
在这里插入图片描述

4. Quaternion operator sequence

四元数的序列化操作,也就是先绕一个轴旋转一定角度,再绕另一个轴旋转一定角度。

5. 应用

5.1 3D shape registration

已知一堆点 ( p 0 , p 1 , . . . , p n ) (\pmb{p_0,p_1,...,p_n}) (p0,p1,...,pnp0,p1,...,pnp0,p1,...,pn),另一堆点 ( q 0 , q 1 , . . . , q n ) (\pmb{q_0,q_1,...,q_n}) (q0,q1,...,qnq0,q1,...,qnq0,q1,...,qn),这里应该是知道了对应关系了,求一个变换R和b满足:
在这里插入图片描述
如下图所示:
在这里插入图片描述
首先计算点云的重心:
在这里插入图片描述
将重心归零:
在这里插入图片描述
显然有:
在这里插入图片描述
将目标函数重新表达:
在这里插入图片描述

上面将R和b进行了分离,可以分开求解,可见:
在这里插入图片描述
求R:
在这里插入图片描述
上目标函数重写:
在这里插入图片描述
上式可见,第一项与R无关,只考虑第二项:
在这里插入图片描述
用四元数表示:
在这里插入图片描述
应用四元数求积过程:
在这里插入图片描述
将点表达成矩阵形式:
在这里插入图片描述
进行改写:
在这里插入图片描述
在这里插入图片描述
中间部分的矩阵M是对称的:
在这里插入图片描述
利用特征值特征向量的关系,这里和之前一片文章推倒特征值特征向量及SVD的过程基本一致:
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值