机器人学关于SE(3)、se(3)、SO(3)、so(3)的理解

一、常用符号表

  • SE(3):特殊欧式群
  • se(3):特殊欧式群的李代数
  • SO(3): 三维特殊正交群
  • so(3): 三维特殊正交群的李代数
  • T(3):三维移动群
  • R: 旋转矩阵

二、关系

李代数:李群单位元处的切空间;

  • SO(3) 和T(3) 都是SE(3)的李子群
  • SO3——>log——>so3, 3×1 vector
  • SE3——>log——>se3, 6×1 vector
  • so3——>exp——>SO3, 3×3 matrix
  • se3——>exp——>SE3, 4×4 matrix

在刚体运动中:

  • SO(3)代表旋转运动( R ∈ S O ( 3 ) R\in SO(3) RSO(3)),齐次变换表示为: R 0 0 1 \begin{matrix} R&0\\ 0&1\\ \end{matrix} R001
  • T(3)代表平移运动,齐次变换表示为: E T 0 1 \begin{matrix} E&T\\ 0&1\\ \end{matrix} E0T1
  • SE3代表刚体变换运动(旋转+平移),齐次变换表示为: R T 0 1 \begin{matrix} R&T\\ 0&1\\ \end{matrix} R0T1
  • ξ ^ ∈ s e ( 3 ) \hat{\xi} \in se(3) ξ^se(3)是SE(3)的李代数表达,物理上表示刚体的广义顺时速度,其中 ξ ^ \hat{\xi} ξ^ ω ^ v 0 1 \begin{matrix} \hat{\omega} &v\\ 0&1\\ \end{matrix} ω^0v1

通过 ^ \hat{} ^ 算子可以将4*4矩阵映射为六维向量 ξ \xi ξ,即: ω v \begin{matrix} \omega\\ v\\ \end{matrix} ωv
亦即 运动旋量,其中 ω \omega ω为旋转角速度(瞬时转动), v v v为平移速度(瞬时移动)。

三、Sophus库

李群和李代数的库是Sophus,支持SO(3),so(3),SE(3)和se(3)的定义和运算,继承于Eigen,所以可以使用Eigen定义的类和函数。

三维旋转群SO3:Sophus::SO3
刚体变换群SE3:Sophus::SE3
李代数so(3):Sophus::Vector3d so3
李代数se(3):Sophus::Vector6d se3

需要注意的是:

  1. 尽管SO3对应于矩阵群,但是SO3在使用cout时是以so3形式输出的,输出的是一个3维向量;
  2. SE3在使用cout输出时输出的是一个6维向量,其中前3维为对应的so3的值,后3维为实际的平移向量T;
  3. se3在使用cout输出时输出的也是一个6维向量,但是其前3维为平移值T(注意此时的T与SE3输出的t是不同的,t=JT,其中J是雅可比矩阵),后3维为其对应的so3.

三、Sophus库转换关系图

机器人学关于SE(3)、se(3)、SO(3)、so(3)的理解_第1张图片

你可能感兴趣的:(机器人,线性代数,矩阵,几何学)