机器人学关于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∈SO(3)R\in SO(3)R∈SO(3)),齐次变换表示为: R001\begin{matrix} R&0\\ 0&1\\ \end{matrix}R001
- T(3)代表平移运动,齐次变换表示为: ET01\begin{matrix} E&T\\ 0&1\\ \end{matrix}E0T1
- SE3代表刚体变换运动(旋转+平移),齐次变换表示为: RT01\begin{matrix} R&T\\ 0&1\\ \end{matrix}R0T1
- ξ^∈se(3)\hat{\xi} \in se(3)ξ^∈se(3)是SE(3)的李代数表达,物理上表示刚体的广义顺时速度,其中 ξ^\hat{\xi}ξ^ ω^v01\begin{matrix} \hat{\omega} &v\\ 0&1\\ \end{matrix}ω^0v1
通过 ^\hat{}^ 算子可以将4*4矩阵映射为六维向量ξ\xiξ,即:ωv\begin{matrix} \omega\\ v\\ \end{matrix}ωv
亦即 运动旋量,其中ω\omegaω为旋转角速度(瞬时转动),vvv为平移速度(瞬时移动)。
三、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
需要注意的是:
- 尽管SO3对应于矩阵群,但是SO3在使用cout时是以so3形式输出的,输出的是一个3维向量;
- SE3在使用cout输出时输出的是一个6维向量,其中前3维为对应的so3的值,后3维为实际的平移向量T;
- se3在使用cout输出时输出的也是一个6维向量,但是其前3维为平移值T(注意此时的T与SE3输出的t是不同的,t=JT,其中J是雅可比矩阵),后3维为其对应的so3.
三、Sophus库转换关系图

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)