【视觉SLAM】2-三维空间刚体运动的数学表示

读书笔记:学习空间变换的三种数学表达形式。

文章目录

  • [1. 旋转矩阵](#1. 旋转矩阵)
    • [1.1 向量运算](#1.1 向量运算)
    • [1.2 坐标系空间变换](#1.2 坐标系空间变换)
    • [1.3 变换矩阵与齐次坐标](#1.3 变换矩阵与齐次坐标)
  • [2. 旋转向量和欧拉角](#2. 旋转向量和欧拉角)
    • [2.1 旋转向量](#2.1 旋转向量)
    • [2.2 欧拉角](#2.2 欧拉角)
  • [3. 四元数](#3. 四元数)

1. 旋转矩阵

1.1 向量运算

对于三维空间中的两个向量 a , b ∈ R 3 a,b \in \R^3 a,b∈R3,其内积 可描述向量间的投影关系, c o s < a , b > cos<a,b> cos<a,b>表示两向量的夹角:

外积

外积运算结果为一个垂直于 a , b a,b a,b的向量,大小为 ∣ a ∣ ∣ b ∣ s i n < a , b > |a||b|sin<a,b> ∣a∣∣b∣sin<a,b>(两个向量组成的四边形的有向面积)。

对外积运算,引入符号^,把 a a a写成一个反对称矩阵(Skew-symmetric Matrix),这样就把外积变成线性运算。这是一个一一映射,即任意向量都对应唯一的一个反对称矩阵,反之亦然:

a ^ = 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 a\hat{}= \begin{bmatrix} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{bmatrix} a^= 0a3−a2−a30a1a2−a10

1.2 坐标系空间变换

包括旋转平移 两个过程,由矩阵 T T T 表示。

旋转过程由旋转矩阵(Rotation Matrix) 表示,它是一个 3 × 3 3 \times 3 3×3的矩阵,且是一个行列式为1的正交矩阵(反之行列式为1的正交矩阵是一个旋转矩阵)。将n维旋转矩阵集合定义如下(特殊正交群(Special Orthogonal Group),后面讲):

S O ( n ) = { R ∈ R n × n ∣ R R T = 1 , d e t ( R ) = 1 } SO(n)=\{R \in \R^{n \times n} | RR^T=1, det(R)=1 \} SO(n)={R∈Rn×n∣RRT=1,det(R)=1}

平移过程由平移向量 t表示。

1.3 变换矩阵与齐次坐标

变换矩阵T (Transform Matrix)是一个 4 × 4 4 \times 4 4×4矩阵,由旋转矩阵R平移向量t 组成。可由特殊欧氏群表示这一集合:
S E ( 3 ) = { T = R t 0 T 1 ∈ R 4 × 4 ∣ R ∈ S O ( 3 ) , t ∈ R 3 } SE(3)=\{ T= \begin{bmatrix} R & t \\ 0^T & 1 \end{bmatrix} \in \R^{4 \times 4} | R \in SO(3), t \in \R^3 \} SE(3)={T=R0Tt1∈R4×4∣R∈SO(3),t∈R3}

T − 1 = R T − R T t 0 T 1 T^{-1} = \begin{bmatrix} R^T & -R^Tt \\ 0^T & 1 \end{bmatrix} T−1=RT0T−RTt1

对三维向量进行空间变换运算时,在其末尾添加1变成四维向量,便于运算,称为齐次坐标

2. 旋转向量和欧拉角

利用矩阵表示旋转存在两个问题:

  • SO(3)用9个量表示3个自由度的旋转、SE(3)用16个量表示6自由度的变换,不够紧凑;
  • 旋转矩阵自身约束:必须正交、行列式为1,因此很难直接对其进行优化;

2.1 旋转向量

任意旋转都可以用一个旋转轴一个旋转角 来表示:具体可用一个向量来表示,其方向与旋转轴一致,而长度等于旋转角,这类向量称为旋转向量(或轴角/角轴,Axis-Angle) ,仅需一个三维向量即可描述旋转;

同样,可用一个旋转向量一个平移向量来表达一次变换;

旋转矩阵R旋转向量(旋转轴为单位向量n,角度为 θ \theta θ) 之间的转换过程由罗德里格斯公式 推导:

反之可由旋转向量推导出旋转矩阵,具体推导过程参考原书和链接

2.2 欧拉角

可由翻滚角Roll偏航角Yaw俯仰角Pitch表示。注意几个问题:

  • 绕不同轴的旋转顺序会影响最终结果;
  • 在很多工程应用领域,利用欧拉角表示旋转很容易碰到万向锁(Gimbal Lock) 问题;

3. 四元数

问题来源:

  • 旋转矩阵用9个量描述3自由度的旋转,具有冗余性;
  • 欧拉角和旋转向量时紧凑的,但具有奇异性(万向锁);

使用四元数可以很方便地对空间运动数据进行优化,一个四元数 q q q 由一个实部和三个虚部构成:
q = q 0 + q 1 i + q 2 j + q 3 k = s , v T s = q 0 ∈ R v = q 1 , q 2 , q 3 T ∈ R 3 q=q_0+q_1i+q_2j+q_3k=s,v^T \\ s=q_0 \in \R \\ v=q_1,q_2,q_3^T \in \R^3 q=q0+q1i+q2j+q3k=s,vTs=q0∈Rv=q1,q2,q3T∈R3

这部分推导直接看书吧,没什么好总结的:

  • 四元数的运算;
  • 四元数表示旋转;
  • 四元数转旋转矩阵、旋转向量;
相关推荐
行智科技8 小时前
FAST-LIVO2 源码精读(二):环境搭建与编译避坑
算法·ubuntu·自动驾驶·slam
大江东去浪淘尽千古风流人物2 天前
【PromptStereo】零样本立体匹配新范式:用结构与运动Prompt驱动迭代优化(CVPR 2026)
深度学习·3d·slam·视觉定位·dust3r·3d重建·mast3r
吾名招财2 天前
开源可SLAM的3D扫描仪硬件方案(成本低至6000元)
slam·3d扫描仪·mid360
暂未成功人士!3 天前
简单了解李群和李代数的相关概念以及典型应用
人工智能·机器人·slam·姿态·李群李代数
MIXLLRED5 天前
Ubuntu 22.04 + ROS2 Humble 上部署 ScaRF‑SLAM指南
ubuntu·slam·ros2·离线建图
大江东去浪淘尽千古风流人物6 天前
【VGGT-Ω】前馈式3D重建的规模化之路:Register Attention、自监督训练与10B参数Scaling Law深度解析
深度学习·计算机视觉·transformer·slam·vio·3d重建
大江东去浪淘尽千古风流人物6 天前
【VGGT】统一3D重建:单网络同时预测相机位姿、深度图、点云与3D轨迹的前馈Transformer架构深度解析
网络·数码相机·3d·transformer·slam·3d重建·cvpr2025
kobesdu10 天前
【ROS2实战笔记-24】ROS2 Launch 实用技巧:条件逻辑与节点动态生成
笔记·ros·slam
大江东去浪淘尽千古风流人物10 天前
【RADIO-ViPE】动态环境下的在线开放词汇语义SLAM:视觉-语言-几何紧耦合BA与自适应鲁棒核深度解析
slam·语义slam·vio·开放词汇·动态场景
大江东去浪淘尽千古风流人物11 天前
【KV-Tracker】Transformer 实时位姿跟踪:KV-Cache 加速多视图几何网络达 27FPS
网络·深度学习·transformer·slam·位姿估计·kv-cache