空间数据的表达方式:点和向量两种形式。
向量的内积,也叫做点乘,是逐点相乘后累加,最终结果是一个标量,物理意义是一个向量在另一个向量上的投影。
![](https://img-blog.csdnimg.cn/427b29890e514f979b71f4077037c3ba.png)
外积,也叫做叉乘,两个向量拼起来成,结果是一个矩阵,物理意义是旋转。
![](https://img-blog.csdnimg.cn/c99ea07e839a470fafd9730ef0d63139.png)
向量旋转
向量旋转可以由旋转轴向量加角度表示,一般采用右手坐标系。
![](https://img-blog.csdnimg.cn/21e5faa7d3344d29a0334d4ec79cd097.png)
a到b的旋转可以由向量w来描述
坐标系的变换包括平移和旋转,平移是对原点的平移,旋转是绕着三个轴旋转。
![](https://img-blog.csdnimg.cn/70fa7fa1d4c841179683dbd667a1e329.png)
刚体运动:在三维空间中,把一个几何不变物体作旋转、平移的运动叫刚体运动。
刚体运动包括平移T和旋转R。
坐标系发生旋转,原坐标系下向量的值,按下面的方式进行变换。
![](https://img-blog.csdnimg.cn/696fcb0cfd7a4e72834a2eb439209762.png)
这个矩阵一般叫旋转矩阵R,其必要条件是行列式为1的正交矩阵。
![](https://img-blog.csdnimg.cn/e7a0137342524c3b9db78aab21e7a807.png)
SO(n)
是特殊正交群:Special Orthogonal Group
旋转矩阵为正交阵,它的逆(即转置)描述了一个相反的旋转
![](https://img-blog.csdnimg.cn/a151827445794136923a519566315447.png)
旋转平移矩阵
世界坐标系中的向量a,经过一次旋转(R)和平移(t)后,得到了a':
𝑎′= 𝑅𝑎 + 𝑡 这里的t为平移向量。
将平移向量放进 矩阵运算中,则原向量变成齐次向量,矩阵变成了变换矩阵。
![](https://img-blog.csdnimg.cn/632b753a791d4b03a063751e2f0f7872.png)
特殊欧式群:变换矩阵具有如下的特性。
![](https://img-blog.csdnimg.cn/914119c468c84d94ab5831e09cb5fe61.png)
罗德里格公式:
假设有一个旋转轴为n,角度为θ的旋转,显然,它对应的旋转向量为θn。
![](https://img-blog.csdnimg.cn/d5c80add170243bda512c5a09fd5b9da.png)
从一个旋转矩阵到旋转向量的转换。对于转角θ:
![](https://img-blog.csdnimg.cn/902ddef1e88242a8a207e4dc5181eda5.png)
欧拉角:
用三个角度描述一个刚体在三维空间中的姿态,偏航-俯仰-滚转: yaw-roll-pitch → z-x-y。
![](https://img-blog.csdnimg.cn/48140255a3d04f74b5cc9281790985fb.png)
欧拉角的缺点:万向锁。
![](https://img-blog.csdnimg.cn/2c15b7468a184007b7e134e41ecd2093.png)
当某一个轴旋转90°,有两个轴的对应平面重合,则此情况下两个旋转的效果是一样的,这种情况叫做万向锁。
为了避免万向锁对旋转计算的影响,SLAM中一般使用四元数来提起欧拉角描述旋转,当然本质是一样的。
一个四元数q 拥有一个实部和三个虚部:
![](https://img-blog.csdnimg.cn/b3a44cf1ef3a4f66933bfda8d331371c.png)
三个虚部之间的运算关系:
![](https://img-blog.csdnimg.cn/72578a399bcf46469fadb1be10c58e00.png)
也可以用一个标量和一个向量来表达四元数:
![](https://img-blog.csdnimg.cn/0ed49f538f2c4a8d949eb9f59e740a56.png)
四元数的四则运算:
设𝒒𝒂 = [𝑠𝑎, 𝑣𝑎] , 𝒒𝒃 = [𝑠𝑏, 𝑣𝑏],则
![](https://img-blog.csdnimg.cn/62cbc2fa36d04d5b83c34e7d0dadb733.png)
![](https://img-blog.csdnimg.cn/98d2d2b4a6494802872ba0dcb3994808.png)
四元数的共轭,
设𝒒𝒂 = [𝑠𝑎, 𝑣𝑎] 𝑞𝑎 = 𝑠𝑎 + 𝑥𝑎𝑖 + 𝑦𝑎𝑗 + 𝑧𝑎k,则
![](https://img-blog.csdnimg.cn/691308293e804a8d82285e48581fd767.png)
四元数的模长
![](https://img-blog.csdnimg.cn/4bc8c22703094650a7c7e6944f649b2a.png)
四元数的逆
![](https://img-blog.csdnimg.cn/9674f45d1a494bf89dd1df9b65f2a8e5.png)
四元数与旋转之间的计算关系:
三维空间的单位向量𝒏 = [𝑛𝑥, 𝑛𝑦, 𝑛𝑧]',某个旋转是绕单位向量𝒏进行了角度为𝜃的旋转,该旋转的四元数形式为:
![](https://img-blog.csdnimg.cn/d2adb78062e3440ca2df06e36be69449.png)
四元素如何用于计算旋转
![](https://img-blog.csdnimg.cn/7a7016124fda47209b0e661d0c0be55b.png)
![](https://img-blog.csdnimg.cn/8777a47ea3424096a28e4c2ddb61875d.png)