A Translation for Quaternion 一篇对四元数的翻译

参考论文 : http://www.cs.ucr.edu/~vbz/resources/quatut.pdf

四元数定义

四元数有好几种定义的方式,这些方式的形态也许有所不同,但实质却彼此等价。了解这些形态是必要的,因为每一种形态对我们都非常有用。历史上, Hamilton首次将四元数定义为形如广义复数的形式: w+ix+jy+kz , 其中,i2 = j2 = k2 = -1, ij = k = -ji ,并且,i,j,k为虚数,而w,x,y,z为实数,(数学家为了纪念Hamilton,用H表示四元数)。四元数的运算中有一个非常特例:乘法的不可交换性。其余的运算性质则与实数的大同小异。Hamilton就曾意识到可以用这种“相似性”来抽象四元数的特性,具体说就是将四元数简单地看作一个由四个实数组成的集合[x, y, z, w],并适当地为其定义加法和乘法。然而适逢当时复数的出现,Hamilton就将(x,y,z)“打包”成虚部(Imaginary part),并以术语“向量”(vector)称之,而实数部分(Real part)他就称为“标量”(scalar)。随后的研究者们(主要是Gibbs)直接借用了Hamilton发明的这些术语,并从四元数那脏兮兮、但却很常规的运算法则中提炼出一套更“干净”的法则(extracted from the clean operations of quaternion arithmetic the somewhat messierÑbut more generalÑoperations of vector arithmetic):即现在的教学课程里都会教授的点积(dot products)与叉积(cross products)运算。对今天的我们而言,我们可以很容易逆观历史,用现代的点积、叉积等概念来描述当时的四元数。

基于以上观点,我们现在来给出一些事实:首先我们一般会这样定义四元数:[v, w], 其中v是一个向量且等于(x, y, z),  而w是一个实数。假设一个实数s, 如果用四元数形式描述的话,它就等于[0, s],而一个纯向量v,如果用四元数描述的话,则是[v,0]。 接下来我们给出四元数的一些基本运算法则:


注意 N(q)是一个标量,所以q的倒数定义很清晰(so the description of q-1 is well-defined)。另外,乘法的不可交换性导致了一些运算需要换用更加清晰的形式来表达( Otherwise, the non-commutativity of multiplication requires explicit expressions),例如要用 pq-1 来代替  p/q。
 
上面列出的运算公式中,即有运算本身的定义,也有由定义推导得出的结论。试着将这些结论当作定理推导一番是很有用的,而且不难:每一个证明应该都可以直截了当地计算出来。

用四元数表示旋转

四元数和三维空间内的旋转关系可以用定理1进行阐述。

定理1:令p为三维(投影)空间内的一个点,用齐次坐标将其表示成四元数的形式即为: p = (x:y:z:w) = [(x, y, z), w] = [v, w] ; 令q为任一非零四元数。那么:

  • 结论1)  表达式 qpq-1的结果将使p=[v, w]变换到p`=[v`, w], 二者模长相等。
  • 结论2)  任何非零实数与q相乘,上式仍然成立。
  • 结论3)  如果上式中的q为N(q) = 1(即q为单位四元数),那么q = [ v sinΩ , cos Ω ] 表示一个旋转动作:将p沿着单位轴v 旋转2Ω即得到p'。 

证明:让我们先从结论2入手。这个结论很容易证明。由于sq的倒数(逆)是q-1s-1,且注意标量的乘法满足交换律,所以我们可以得到:

(sq)·p·(sq)-1 = sq·p·q-1s-1 = qpq-1ss-1 = qpq-1 

 

根据这条结论,我们就可以把这个q直接当作一个单位四元数来看,正如 结论3里所需要的那样,而又不失一般性。对于单位四元数q, 由于q-1 = q* ,所以我们可以将 qpq-1写作 qpq*

 

现在来证明结论1就简单多了。一般来说,对一个标量进行一些变换,其结果往往仍是一个标量;类似地,对一个向量[v, 0]进行一系列变换,其结果仍是一个向量。对于任何一个四元数q,其标量部分(即实部) S(q) 可以用公式2S(q) = q + q* ,(前面的公式,可以用加法公式算算就明白了)提取出来。于是我们可以得到这列等式:

2S(qpq*)= (qpq*) + (qpq*)* = qpq* + qp*q*  

(理解,(qpq*)就是代表了p经过了q变换后的结果,那就是p' = (qpq*

 

由于四元数的乘法遵循线性规律,我们可以将公因式提出,得到:

q(p+p*)q* = q(2S(p))q* = 2S(p)[注1]  (根据前面 公式2S(q) = q + q*)=> 2S(p) = p + p*

(这里就是2S(qpq*) == 2S(p),那就是说明了,p'的w,与 p的w是一样的)

 

又由于四元数乘法也作用于模长(Because multiplication preserves norms,),得到N(p) = N(p')[注2]; 同时因为w没有改变,因此可得N(v) = N(v')。

(

注1:  由于2S(p)为标量,我们可以把它放到前面,得2S(p)qq*。又因为结论2已经告诉我们,在q[***]q*这种类型的式子中,q是不是单位四元数都是不影响结果的。因此我们可以将其视作一个单位四元数,这样便有q= q-1, 因此2S(p)qq2S(p)qq-1 = 2S(p) 。

注2:  所谓“Because multiplication preserves norms”,我想可以这样理解:因为p' = qpq*而因为乘法保留模长,同时我们已把q看作为单位四元数(意味着N(q)=N(q*)=1),因此有N(p') = N(p)。 再注意到上面刚刚证明了2S(p') = 2S(p),即意味着w部相同。两个四元数模长相等,其实部又相等,可以不难得到其虚部模长也相等,即N(v) = N(v')。

(N(p') = N(q) * N (p) * N(q*) = N (p) )

最后我们来证明结论3 —— 该定理最核心的部分。考虑下图中的情形,图中N(v0) = N(v1) = 1 。 我们定义一个四元数q = v1v0* = [v0 × v1v0 · v1][注3] 。我们再定义Ω为v0到v1之间的角度, 所以v0·v1 = cosΩ 。我们再在两向量的叉积方向上再设置一个单位向量 v = (v0 × v1/v0 × v1‖, 该单位向量同时垂直于v0 和v1。现在我们可以将q 写成 [ v sinΩ, cosΩ][注4] (我们应该假设v1 ≠ ±v0, 否则 q =+ 1, 如此这个旋转动作是无效的)(We shall assume v1 ± v0, else q = ±1, and the action is the identity)。

(为什么会无端端出现q = v1v0*, 是因为  qv0= v1 推导出q =v1v0, 那就是,v0 乘上q 可以变换到 v1)

(所以下面的v2v1*,其实可以理解为, p v1 = v2,  v1乘上p可以变换到v2 ,现在就是需要去推导四元数p出来, p = v2v1*)


(

注3:  这里解释一下为什么 v1v0* = [v0 × v1, v0 · v1]。 根据前面列出的关于四元数的basic facts,我们知道而v0*= [v0, 0]= [-v0, 0] = -v0 。同时还知道vv' = [v×v', -v·v'] (这里是根据乘法法则) ,这里令v = v1, v' = v0*  因此得到v1v0= (-1)v1v0  =  (-1[v1 × v0, -v1 · v0] = [v0 × v1, v0 · v1] 。v0= (-1)v0 用了共轭公式, v1v0 用了乘法公式

注4:  这里解释一下为什么q可以写成 [ v sinΩ, cosΩ]. 至此,我们已经知道q = v1v0*[v0 × v1, v0 · v1] 。 很明显v0 · v1 =  cosΩ 。 而又有  v0 × v1 =v · v0 × v1‖。 v0 × v1‖是向量积v0 × v1的模长,根据向量积的求模共识,我们有 v0 × v1‖ = ‖v0‖v1sinΩ,  因为v0、v1皆为单位向量,所以v0 × v1‖ =  

)

现在我们引入v2, 令v2 = qv0q*。 

我们可以推导出,v2v1* = (qv0q*v1* 拥有与v1v0*一样的结构(内积与外积都相等)(v1v0*是根据标量乘法可交换顺序来形成的);因此v2 = qv0q* 与v0v1都共同位于同一个平面内,且v2v1的夹角也为Ω。

 

下面是推导过程: 首先用q = v1v0* (qv0q*) v1* 中q*的替换,得到(qv0(v1v0*)*)v1*,进一步简化得到q(v0v0)(v1*v1*)(用了共轭公式(v1v0*)= (v0v1*))。因为v0v1是单位向量,所以它们的平方等于-1[注5],这样就只剩下了q。

(

注5解释下为什么 v0v0 = v1*v1* = -1 。假设v是单位向量,同时注意v叉乘自己的结果是0向量,所以vv = [v×v, -v·v] = [0, -1]。 

)

 

用等式可以描述为:

v2v1* = (qv0q*)v1*  =   (qv0(v1v0*)*)v1*     
                    =   
qv0(v0v1*)v1*
                    =   
q(v0v0)(v1*v1*)
                    =    
q(-1)(-1)
                    =   v1v0*

 

所以我们证明了v2v1* v1v0* 的确是相等的,也同时说明了上图中的描述也是准确的。我们还可以进一步证明,假如那里有个v3 = qv1q*的话,由于q = v1v0* =》v1 =qv0,我们可以推导出 ,q作用于v1 后得到的v3,也仍然与v0,v1,v2在同一个平面上,且据v2的夹角也为Ω。因为:
 

v3v2*  =  (qv1q*) (qv0q*)* 
            =  (
q(qv0)q*) (qv0q*)*
            =  
q(qv0q*)(qv0q*)*
            =  
q

 

联系到我们的定理,我们可以得知,作用在v0以及v1上的四元数q,都是将其绕轴v 旋转2Ω。事实上,这个四元数可以被应用到任意向量p中(而非仅仅v0或者v1),因为任意向量p都可以表示为s0v0+s1v1+s2v。四元数的线性性允许我们独立地检验v0v1 以及v 。(注:意思是只要它们分别成立了,其线性结合的结果也同样成立)。

 

当然,虽然我们已经证明了q作用于v0以及v1是成立的,但仍需证明对v也是成立的,这样才能证明对任意p有效。现在我们来思考对v的证明。通过观察我们得知,四元数的乘法之所以不满足交换律,就是因为叉积不满足交换律的原因。但在乘积qv = [v sinΩcosΩ][v,0]中,其叉乘的结果为0[注6],所以qv = vq,  进而有qvq* = vqq* = v, 这样也就证明了q对v的作用也是有效的。

(

注6联系到 注5我们不难理解为什么 v × v 的结果为0向量。 

)

因此,现在我们就可以理直气壮地说,四元数q= [v sinΩ , cosΩ] 对任意一个向量的作用就是绕着轴v 旋转2Ω了。这就是定理1中结论3的证明。

 

推论:任意一个在三维空间上的旋转,都是一些单位四元数相作用的结果。

证明:利用定理1结论3,我们可以扩展到任意轴和任意角度,从而得到该推论成立。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: i.MXRT1176是一款高性能的处理器,支持多种外设接口,其包括Mipi-CSI2接口和UVC功能。 Mipi-CSI2是一种用于传输摄像头数据的串行接口标准。它可以实现高速、低功耗的数据传输,广泛应用于移动设备和嵌入式系统。i.MXRT1176的Mipi-CSI2接口可以与兼容的摄像头模块进行连接,以便从摄像头获取图像数据。 UVC(USB Video Class)是一种用于通过USB接口传输视频数据的标准。它可以让USB设备(例如计算机或其他支持UVC的设备)直接识别和使用摄像头,简化了设备之间的连接和通信。i.MXRT1176的UVC功能可以将通过Mipi-CSI2接口获取的摄像头数据转换为符合UVC标准的视频流,以便被连接的设备进行识别和使用。 通过i.MXRT1176的Mipi-CSI2 to UVC功能,我们可以方便地将摄像头模块的图像数据转换为USB视频流,实现将摄像头接口扩展到支持UVC的设备,如计算机、智能电视等。这样,我们可以方便地将摄像头用于视频通信、图像采集和人机互动等应用领域。 总之,i.MXRT1176的Mipi-CSI2 to UVC功能提供了一种简单、高效的解决方案,使得摄像头数据可以通过USB接口直接传输给其他设备,为视频应用的开发和应用提供了更多的可能性。 ### 回答2: IMXRT1176 是恩智浦(NXP)公司推出的一款高性能 Arm Cortex-M7 微控制器。它具有丰富的外设接口和强大的计算能力,可广泛应用于各种嵌入式系统MIPI-CSI2 是一种通信接口标准,用于将摄像头传感器与处理器之间的数据传输。它通过传输高清视频和图像数据,实现了低功耗、高带宽、高质量的图像传输。 UVC(USB Video Class)是一种标准协议,用于视频设备与计算机之间的通信。它允许将视频设备连接到计算机,并以 USB 接口的形式传输图像或视频数据。 IMXRT1176 Mipi-CSI2 to UVC 是指将IMXRT1176微控制器与摄像头传感器之间的视频数据经过Mipi-CSI2接口传输,并通过UVC协议将视频数据传输到连接的计算机。 通过这种方式,我们可以在IMXRT1176微控制器上实现摄像头数据的采集和处理,然后将处理后的视频数据传输到计算机,并通过UVC协议对其进行解码和显示。这使得开发者可以方便地在嵌入式系统使用摄像头,并实现图像或视频的实时采集、处理和显示。 总之,IMXRT1176 Mipi-CSI2 to UVC 提供了一种方便高效的解决方案,使得在嵌入式系统使用摄像头变得更加容易和灵活。 ### 回答3: IMXRT1176是一款高性能的嵌入式处理器,而MIPI-CSI2和UVC是两种不同的图像传输接口。 MIPI-CSI2是一种用于连接图像传感器和图像处理器的接口标准。它使用串行传输协议,可以实现高速、低功耗的图像传输。MIPI-CSI2支持多通道数据传输,并且提供了丰富的控制和配置选项,以满足不同应用场景的要求。因此,IMXRT1176可以通过MIPI-CSI2接口与图像传感器进行通信,获取高质量的图像数据。 UVC是一种USB设备类别,它定义了一套用于视频采集和图像传输的标准协议。通过UVC协议,可以将图像数据通过USB接口传输到计算机上,同时还可以实现对图像的控制和配置。这样,计算机可以直接从IMXRT1176通过UVC接口获取图像数据,无需额外的驱动程序。 因此,IMXRT1176 MIPI-CSI2 to UVC的意思就是将IMXRT1176处理器与图像传感器通过MIPI-CSI2接口连接,然后将获取的图像数据通过UVC接口传输给计算机。这样一来,我们就可以在计算机上实时查看、录制和处理来自图像传感器的图像数据,为各种应用场景带来更便利和灵活的图像处理能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值