[TOC]
1、李群李代数基础
2、指数与对数映射
3、李代数与对数映射
4、Sophus的基本使用方法
1、简介
Sophus 库是Strasdat 维护的 。Sophus 库支持SO(3) 和 SE(3),此外还含有二维运动 SO(2),SE(2) 以及相似变换 Sim(3) 的内容。它是直接在 Eigen 基础上开发的,不需要安装额外的依赖库。可以直接从 GitHub 上获取 Sophus,在代码目录 slambook/3rdparty 下也提供了 Sophus 源代码。
1 | Eigen::Matrix3d和Sophus::Matrix3d |
此外,为了方便说明SE(4)和se(4),Sophus库还typedef了Vector4d、Matrix4d、Vector6d和Matrix6d等,即:
1 | Sophus::Vector4d |
2、安装
1 | git clone https://github.com/strasdat/Sophus.git |
使用
李代数so(3):Sophus::Vector3d //因为so(3)仅仅只是一个普通的3维向量
李代数se(3):Sophus::Vector6d //因为se(3)仅仅只是一个普通的6维向量
SO3构造函数
1 | SO3 (); |
SE3的构造函数
1 | SE3 (); |
输出
尽管SO3对应于矩阵群,但是SO3在使用cout时是以so3形式输出的,输出的是一个3维向量
SE3在使用cout输出时输出的是一个6维向量,其中前3维为对应的so3的值,后3维为实际的平移向量t
se3在使用cout输出时输出的也是一个6维向量,但是其前3维为平移值ρ
(注意此时的ρ与SE3输出的t是不同的,t=Jρ,其中J是雅克比矩阵),后3维为其对应的so3.
SO3,so3,SE3,se3初始化和相互转化关系
1、转换关系图
关于旋转矩阵,旋转向量和四元数的初始化和相互转换关系可以参考另一篇博文:http://blog.csdn.net/u011092188/article/details/77430988