《视觉SLAM十四讲》学习笔记-四元数旋转后的点实部为0的证明

证明的过程会比较繁琐。

首先看定义。假设两个四元数:

q a = [ s a , v a ] = s a + x a i + y a j + z a k

q b = [ s b , v b ] = s b + x b i + y b j + z b k

乘法定义为:

q a q b = [ s a s b v a v b , s a v b + s b v b + v a × v b ]

其中, × 符号表示向量外积。

共轭

q a = [ s a , v a ] = s a ( x a i + y a j + z a k )

则:

q a q a = [ s a s b v a ( v a ) , s a ( v a ) + s a v a + v a × ( v a ) ] = [ s a 2 + v a v a , 0 ]

这是因为:

v a × ( v a ) = [ i j k x a y a z a x a y a z a ] = [ y a ( z a ) z a ( y a ) ] i + [ x a ( z a ) z a ( x a ) ] ( j ) + [ x a ( y a ) y a ( x a ) ] k = 0 i + 0 j + 0 k = 0

模长

q a = s a 2 + x a 2 + y a 2 + z a 2


q 1 = q / q 2

计算 q q 1

q q 1 = q q / q 2 = q q q 2 = [ s a , a ] [ s a , a ] q 2 = [ s a s a v a ( v a ) , s a v a + s a v a + v a × ( v a ) ] = s a s a + v a v a s a 2 + x a 2 + y a 2 + z a 2 = 1

假设点坐标为 p = [ 0 , x , y , z ] = [ 0 , v ] ( [ x , y , z ] R 3 ), 旋转轴及角度为 n , θ ,其中 n = [ n x , n y , n z ]

旋转用四元数表示 q = [ cos θ 2 , n sin θ 2 ] .
由上述定义,可知:

q 1 = q / q 2 q = [ cos θ 2 , n sin θ 2 ] q 2 = cos 2 θ 2 + sin 2 θ 2 ( n x 2 + n y 2 + n z 2 ) = 1

旋转后的点 p 可计算为:

p = q p q 1 = [ cos θ 2 , n sin θ 2 ] [ 0 , v ] q 1 = [ sin θ 2 n v , cos θ 2 v + sin θ 2 n × v ] [ cos θ 2 , n sin θ 2 ] = [ sin θ 2 cos θ 2 n v + [ cos θ 2 n × v ] n sin θ 2 , ] = [ sin θ 2 cos θ 2 n v + sin θ 2 cos θ 2 v n + ( sin θ 2 ) 2 ( n × v ) n , ] = [ ( sin θ 2 ) 2 ( n × v ) n , ]

因为:

( v × n ) n = [ i j k n x n y n z x y z ] n = [ ( n y z n z y ) i ( n x z n z x ) j + ( n x y n y x ) k ] . [ n x , n y , n z ] = [ ( n y z n z y ) , ( n x z n z x ) , ( n x y n y x ) ] . [ n x , n y , n z ] = n x n y z n x n z y n x n y z + n y n z x + n x n z y n z n y x = 0

所以 p = q p q 1 实部为0.

猜你喜欢

转载自blog.csdn.net/luohuiwu/article/details/80719002