本人才疏学浅,内容难免有疏漏与不足,敬请您谅解与指正.
向量空间
1、概念
对于向量空间\(\mathbb{V}\)一组向量\({\boldsymbol \alpha}_{1}, {\boldsymbol \alpha}_{2}…{\boldsymbol \alpha}_{r}\):- 取自\(\mathbb{V}\);
- 线性无关;
- \(\mathbb{V}\)内任意向量a均可由其线性表出.
2、过渡矩阵
\({\boldsymbol \alpha}_{1}, {\boldsymbol \alpha}_{2}…{\boldsymbol \alpha}_{n}\), \({\boldsymbol \beta}_{1}, {\boldsymbol \beta}_{2}…{\boldsymbol \beta}_{n}\)分别为\(\mathbb{R}^n\)的两组基,且 \([{\boldsymbol \alpha}_{1}, {\boldsymbol \alpha}_{2}…{\boldsymbol \alpha}_{n}]\) \({\boldsymbol C}\) = \([{\boldsymbol \beta}_{1}, {\boldsymbol \beta}_{2}…{\boldsymbol \beta}_{n}]\). 则 \({\boldsymbol C}\)(可逆)为 \([{\boldsymbol \alpha}_{1}, {\boldsymbol \alpha}_{2}…{\boldsymbol \alpha}_{n}]\)到\([{\boldsymbol \beta}_{1}, {\boldsymbol \beta}_{2}…{\boldsymbol \beta}_{n}]\)过渡矩阵. 需要注意的是,这里面存在一个默认的坐标系(可以是A,B之一)来表示\({\boldsymbol \alpha}_{1}, {\boldsymbol \alpha}_{2}…{\boldsymbol \alpha}_{n}\), \({\boldsymbol \beta}_{1}, {\boldsymbol \beta}_{2}…{\boldsymbol \beta}_{n}\).
例子: \({\boldsymbol \alpha}_{1}=\)\(\begin{bmatrix}1\\0\\1\\\end{bmatrix}\), \({\boldsymbol \alpha}_{2}=\)\(\begin{bmatrix}1\\1\\-1\\\end{bmatrix}\), \({\boldsymbol \alpha}_{3}=\)\(\begin{bmatrix}1\\-1\\1\\\end{bmatrix}\), \({\boldsymbol \beta}_{1}=\)\(\begin{bmatrix}3\\0\\1\\\end{bmatrix}\), \({\boldsymbol \beta}_{2}=\)\(\begin{bmatrix}2\\0\\0\\\end{bmatrix}\), \({\boldsymbol \beta}_{3}=\)\(\begin{bmatrix}0\\2\\-2\\\end{bmatrix}\)是\(\mathbb{R}^3\)的两个基.
问:已知 \({\boldsymbol \xi}\)在\({\boldsymbol \beta}_{1}, {\boldsymbol \beta}_{2},{\boldsymbol \beta}_{3}\)下的坐标为\((1,2,0)\),求 \({\boldsymbol \xi}\)在\({\boldsymbol \alpha}_{1}, {\boldsymbol \alpha}_{2},{\boldsymbol \alpha}_{3}\)下的坐标.
解:设 \({\boldsymbol \xi}=y_{1}{\boldsymbol \alpha}_{1}+y_{2}{\boldsymbol \alpha}_{2}+y_{3}{\boldsymbol \alpha}_{3}=1{\boldsymbol \beta}_{1}+2{\boldsymbol \beta}_{2}+0{\boldsymbol \beta}_{3}\) $$[{\boldsymbol \alpha}_{1}\;{\boldsymbol \alpha}_{2}\;{\boldsymbol \alpha}_{3}]\begin{bmatrix}y_{1}\\y_{2}\\y_{3}\\\end{bmatrix}=[{\boldsymbol \beta}_{1}\;{\boldsymbol \beta}_{2}\;{\boldsymbol \beta}_{3}]\begin{bmatrix}1\\2\\0\\\end{bmatrix}$$ $$\begin{bmatrix}y_{1}\\y_{2}\\y_{3}\\\end{bmatrix}=[{\boldsymbol \alpha}_{1}\;{\boldsymbol \alpha}_{2}\;{\boldsymbol \alpha}_{3}]^{-1}[{\boldsymbol \beta}_{1}\;{\boldsymbol \beta}_{2}\;{\boldsymbol \beta}_{3}]\begin{bmatrix}1\\2\\0\\\end{bmatrix}=\begin{bmatrix}1\\3\\3\\\end{bmatrix}$$
欧氏变换
1、坐标系
SLAM的两个坐标系:世界坐标系,相机坐标系。 世界坐标系的基(单位正交基):\({\boldsymbol e}_1=\begin{bmatrix}1\\0\\0\\\end{bmatrix}, {\boldsymbol e}_2=\begin{bmatrix}0\\1\\0\\\end{bmatrix}, {\boldsymbol e}_3=\begin{bmatrix}0\\0\\1\\\end{bmatrix}\). 相机坐标系的基(单位正交基):\({\boldsymbol e}_1', {\boldsymbol e}_2', {\boldsymbol e}_3'\)(其坐标值为在世界坐标系下的值,为动态量).2、旋转矩阵
在世界坐标系中的向量\({\boldsymbol a}\)(世界坐标系下的坐标值),到了相机坐标系中变成了\({\boldsymbol a}'\)(相机坐标系下的坐标值). 在已知\({\boldsymbol a}'\)的情况下 $${\boldsymbol a}=\begin{bmatrix}a_{1}\\a_{2}\\a_{3}\\\end{bmatrix}=[{\boldsymbol e}_{1}\;{\boldsymbol e}_{2}\;{\boldsymbol e}_{3}]^{-1}[{\boldsymbol e}'_{1}\;{\boldsymbol e}'_{2}\;{\boldsymbol e}'_{3}]\begin{bmatrix}a'_{1}\\a'_{2}\\a'_{3}\\\end{bmatrix}={\boldsymbol Ra'}.$$ 或$$\left({\boldsymbol a}=\begin{bmatrix}a_{1}\\a_{2}\\a_{3}\\\end{bmatrix}=[{\boldsymbol e}_{1}\;{\boldsymbol e}_{2}\;{\boldsymbol e}_{3}]^{T}[{\boldsymbol e}'_{1}\;{\boldsymbol e}'_{2}\;{\boldsymbol e}'_{3}]\begin{bmatrix}a'_{1}\\a'_{2}\\a'_{3}\\\end{bmatrix}={\boldsymbol Ra'}\right).$$ 这里的\(R\)即为旋转矩阵,旋转矩阵为正交矩阵,反之正交矩阵亦为旋转矩阵.它的行列式为1,且每个列向量都是单位向量且相互正交,它的逆等于它的转置,这样我们就能联想到,旋转矩阵描述的是相机的旋转,该旋转矩阵的逆矩阵描述的是相反的旋转.3、特殊正交群
特殊正交群是n维空间的旋转矩阵的集合:$$SO(n) = \left \{ {\boldsymbol R} \in {\mathbb R}^{n \times n} | {\boldsymbol R} {\boldsymbol R}^{T} = {\boldsymbol I}, det({\boldsymbol R}) = 1\right \}$$4、变换矩阵
变换矩阵与旋转矩阵类似,是坐标旋转与平移的结合:$${\boldsymbol a} = {\boldsymbol R} {\boldsymbol a'} + {\boldsymbol t}$$
上式对乘法不封闭,变为齐次坐标(升维):
$$\begin{bmatrix} {\boldsymbol a} \\1\\\end{bmatrix} =\begin{bmatrix} {\boldsymbol R} & {\boldsymbol t} \\0^{T}&1\\\end{bmatrix} \begin{bmatrix} {\boldsymbol a'} \\1\\\end{bmatrix} = {\boldsymbol T} \begin{bmatrix} {\boldsymbol a'} \\1\\ \end{bmatrix}$$
式中\( {\boldsymbol T} \)即为变换矩阵.
直观说明:
蓝色坐标系(B)为相机坐标系,青色坐标系为相机坐标系旋转之后的坐标系,红色坐标系为世界坐标系,被观察点为\(P\).\({\boldsymbol R} {\boldsymbol a'} \)里面\({\boldsymbol a'} \)是\(\vec {O_{1}P}\)在蓝色坐标系中的坐标向量,\({\boldsymbol t}\)是\(\vec {O_{1}O_{2}}\)在红色坐标系中的坐标,\({\boldsymbol R} {\boldsymbol a'} \)是\(\vec {O_{1}P}\)在青色坐标系中的坐标向量,从而有$${\boldsymbol a} (\vec {O_{2}P})= {\boldsymbol R} {\boldsymbol a'} + {\boldsymbol t}.$$
实际上这里面的\(R\)就是\([{\boldsymbol e}'_{1}\;{\boldsymbol e}'_{2}]\),因为\([{\boldsymbol e}_{1}\;{\boldsymbol e}_{2}]^T\)是单位阵.
5、特殊欧氏群
$$SE(3) = \left \{ {\boldsymbol T} =\begin{bmatrix}{\boldsymbol R} & {\boldsymbol t} \\0^{T}&1\\\end{bmatrix}\in {\mathbb R}^{4 \times 4} | {\boldsymbol R} \in SO(3), {\boldsymbol t} \in {\mathbb R}^{3} \right \}.$$旋转向量与欧拉角
1、旋转向量
$${\boldsymbol w} = \theta \; {\boldsymbol n}$$其中,\(\theta\)为旋转向量的长度,代表旋转的角度,\({\boldsymbol n}\)为旋转向量的方向向量(单位向量)代表旋转轴的方向.
2、罗德里格斯公式
旋转向量转换为旋转矩阵:$${\boldsymbol R} = cos\theta \cdot {\boldsymbol I} + (1 - cos\theta) {\boldsymbol n} {\boldsymbol n}^{T} + sin\theta \cdot {\boldsymbol n}^{\land}$$
\({\boldsymbol a}^{\land}\)定义为向量 \({\boldsymbol a}\) 的反对称矩阵:
$${\boldsymbol a} \times {\boldsymbol b} = \begin{vmatrix}{\boldsymbol i} & {\boldsymbol j} & {\boldsymbol k} \\ a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \\ \end{vmatrix} = \begin{bmatrix} a_{2} b_{3} - a_{3} b_{2} \\ a_{3} b_{1} - a_{1} b_{3} \\ a_{1} b_{2} - a_{2} b_{1} \\ \end{bmatrix} \\ = \begin{bmatrix} 0 & -a_{3} & a_{2} \\ a_{3} & 0 & -a_{1} \\ -a{2} & a_{1} & 0 \\ \end{bmatrix} {\boldsymbol b}= {\boldsymbol a}^{\land} {\boldsymbol b}$$
旋转矩阵转换为旋转向量:
$${\rm tr} ({\boldsymbol R}) = cos\theta \cdot {\rm tr}({\boldsymbol I}) + (1 - cos\theta) {\rm tr} ({\boldsymbol n} {\boldsymbol n}^{T}) + sin\theta \cdot {\rm tr} ({\boldsymbol n}^{\land})= 1 + 2cos\theta$$
进而:
$$\theta = arccos\left(\frac{ {\rm tr}({\boldsymbol R}) - 1 } { 2 }\right)$$
\({\boldsymbol R}\)作用于\({\boldsymbol n}\),\({\boldsymbol n}\)不变:
$${\boldsymbol R} {\boldsymbol n} = 1 \cdot {\boldsymbol n}$$
转轴\({\boldsymbol n}\)是矩阵\({\boldsymbol R}\)特征值 1 对应的特征向量,求解此方程,再归一化,即可得到旋转轴.