视觉SLAM14讲第三章学习笔记

文章目录

刚体运动

一个物体,运动过后除位置与姿态外的自身条件不会变,变换后与变换前相差一个旋转和平移。

旋转矩阵

向量的内积: a ⋅ b = a T b = ∑ 1 3 a i b i = ∣ a ∣ ∣ b ∣ c o s ⟨ a , b ⟩ {a} \cdot b=a^Tb=\sum_{1}^{3} a_ib_i=|a||b|cos\langle a,b \rangle a⋅b=aTb=∑13​ai​bi​=∣a∣∣b∣cos⟨a,b⟩
内积可以描述向量间的投影。

向量的外积: a × b = ∥ e 1 e 2 e 3 a 1 a 2 a 3 b 1 b 2 b 3 ∥ = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] b = d e f a ∧ b a\times b=\begin{Vmatrix} e_1&e_2 &e_3 \\a_1&a_2 & a_3\\b_1&b_2 &b_3\end{Vmatrix}=\begin{bmatrix}a_2b_3-a_3b_2\\a_3b_1-a_1b_3\\a_1b_2-a_2b_1\end{bmatrix}=\begin{bmatrix}0& -a_3 &a_2 \\a_3&0 &-a_1 \\-a_2&a_1 &0\end{bmatrix}b \overset{def}{=}a^\wedge b a×b=∥∥∥∥∥∥​e1​a1​b1​​e2​a2​b2​​e3​a3​b3​​∥∥∥∥∥∥​=⎣⎡​a2​b3​−a3​b2​a3​b1​−a1​b3​a1​b2​−a2​b1​​⎦⎤​=⎣⎡​0a3​−a2​​−a3​0a1​​a2​−a1​0​⎦⎤​b=defa∧b

外积描述实际上就是 ∣ a ∣ ∣ b ∣ s i n ⟨ a , b ⟩ |a||b|sin\lang a,b \rang ∣a∣∣b∣sin⟨a,b⟩,是两个向量张开的四边形的面积。
a ∧ a^\wedge a∧表示 a a a的反对称矩阵
a ∧ = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] a^\wedge=\begin{bmatrix}0& -a_3 &a_2 \\a_3&0 &-a_1 \\-a_2&a_1 &0\end{bmatrix} a∧=⎣⎡​0a3​−a2​​−a3​0a1​​a2​−a1​0​⎦⎤​

任意向量 a a a都有唯一一个反对称矩阵,且 a ∧ + a ∧ T = 0 a^\wedge+a^{\wedge T}=0 a∧+a∧T=0。

设有一单位正交基 ( e 1 , e 2 , e 3 ) (e_1,e_2,e_3) (e1​,e2​,e3​)内有一向量坐标为 [ a 1 , a 2 , a 3 ] T [a_1,a_2,a_3]^T [a1​,a2​,a3​]T
另一单位正交基下 ( e 1 ′ , e 2 ′ , e 3 ′ ) (e_1{'},e_2{'},e_3') (e1​′,e2​′,e3′​)下,该向量坐标为 [ a 1 ′ , a 2 ′ , a 3 ′ ] T [a_1',a_2',a_3']^T [a1′​,a2′​,a3′​]T

由于向量还是那一个,只是在不同坐标系下的表示不一样,所以有
[ e 1 e 2 e 3 ] [ a 1 a 2 a 3 ] = [ e 1 ′ e 2 ′ e 3 ′ ] [ a 1 ′ a 2 ′ a 3 ′ ] \begin{bmatrix} e_1&e_2 &e_3\end{bmatrix}\begin{bmatrix}a_1 \\a_2\\a_3\end{bmatrix}=\begin{bmatrix} e_1'&e_2' &e_3'\end{bmatrix}\begin{bmatrix}a_1 '\\a_2'\\a_3'\end{bmatrix} [e1​​e2​​e3​​]⎣⎡​a1​a2​a3​​⎦⎤​=[e1′​​e2′​​e3′​​]⎣⎡​a1′​a2′​a3′​​⎦⎤​

两边同时左乘 [ e 1 T e 2 T e 3 T ] \begin{bmatrix}e_1 ^T\\e_2^T\\e_3^T\end{bmatrix} ⎣⎡​e1T​e2T​e3T​​⎦⎤​,左侧变为单位矩阵
[ a 1 a 2 a 3 ] = [ e 1 T e 1 ′ e 1 T e 2 ′ e 1 T e 3 ′ e 2 T e 1 ′ e 2 T e 2 ′ e 2 T e 3 ′ e 3 T e 1 ′ e 3 T e 2 ′ e 3 T e 3 ′ ] [ a 1 ′ a 2 ′ a 3 ′ ] = d e f R a ′ \begin{bmatrix}a_1 \\a_2\\a_3\end{bmatrix}=\begin{bmatrix}e_1 ^Te_1'&e_1^Te_2'&e_1^Te_3'\\e_2^Te_1'&e_2^Te_2'&e_2^Te_3'\\e_3^Te_1'&e_3^Te_2'&e_3^Te_3'\end{bmatrix}\begin{bmatrix}a_1 '\\a_2'\\a_3'\end{bmatrix}\overset{def}{=}Ra' ⎣⎡​a1​a2​a3​​⎦⎤​=⎣⎡​e1T​e1′​e2T​e1′​e3T​e1′​​e1T​e2′​e2T​e2′​e3T​e2′​​e1T​e3′​e2T​e3′​e3T​e3′​​⎦⎤​⎣⎡​a1′​a2′​a3′​​⎦⎤​=defRa′

其中 R R R称为旋转矩阵,可以看出 R R R是两组基之间的内积

旋转矩阵性质

  • 正交阵 R R T = I RR^T=I RRT=I 、 R T = R − 1 R^T=R^{-1} RT=R−1
  • 行列式为1,反之行列式为1的正交阵叫旋转矩阵
  • 若 R R R 为从 A A A 坐标系到 B B B坐标系的旋转矩阵,则 R − 1 R^{-1} R−1 表示从 B B B 坐标系到 A A A 坐标系的旋转矩阵。

变换矩阵

欧式变换中,除了旋转还有平移,表示为:
a 1 = R 12 a 2 + t 12 a_1=R_{12}a_2+t_{12} a1​=R12​a2​+t12​
其中 R 12 R_{12} R12​ 表示从2到1坐标系的旋转矩阵, t 12 t_{12} t12​ 所对应的是坐标系1原点指向坐标系2原点的向量并且是在坐标系1下取的坐标

反过来 R 21 R_{21} R21​ 表示从1到2坐标系的旋转矩阵, t 21 t_{21} t21​ 对应的是坐标系2原点指向坐标系1原点的向量并且是在坐标系2下取的坐标

b = R 1 a + t 1 c = R 2 b + t 2 b=R_1a+t_1\\ c=R_2b+t_2 b=R1​a+t1​c=R2​b+t2​
所以a到c可以写成
c = R 2 ( R 1 a + t 1 ) + t 2 c=R_2(R_1a+t_1)+t_2 c=R2​(R1​a+t1​)+t2​

该写法若是跨越多个坐标系进行变换写法会很麻烦,所以对 a ′ = R a + t a'=Ra+t a′=Ra+t 改写为
[ a ′ 1 ] = [ R t 0 T 1 ] [ a 1 ] = d e f T [ a 1 ] \begin{bmatrix}a' \\1\end{bmatrix}=\begin{bmatrix}R&t\\0^T&1\end{bmatrix}\begin{bmatrix}a\\1\end{bmatrix}\overset{def}{=}T\begin{bmatrix}a \\1\end{bmatrix} [a′1​]=[R0T​t1​][a1​]=defT[a1​]
令 a ~ \tilde{a} a~表示 a a a的齐次坐标,则
b ~ = T 1 a ~ , c ~ = T 2 b ~ c ~ = T 2 T 1 a ~ \tilde{b}=T_1\tilde{a},\tilde{c}=T_2\tilde{b}\\\tilde{c}=T_2T_1\tilde{a} b~=T1​a~,c~=T2​b~c~=T2​T1​a~

一个变换矩阵左上为旋转矩阵,右上为平移向量,左下为0向量,右下为1;它的逆表示一个相反的变换。
T = [ R t 0 T 1 ] T − 1 = [ R T − R T t 0 T 1 ] T=\begin{bmatrix}R&t \\0^T&1\end{bmatrix}\\T^{-1}=\begin{bmatrix}R^T&-R^Tt \\0^T&1\end{bmatrix} T=[R0T​t1​]T−1=[RT0T​−RTt1​]

未完。。。

上一篇:一阶差分如何还原


下一篇:excel常用