【cartographer源码分析】系列的第二部分【transform源码分析】
现总结transform文件夹涉及到的主要功能:
【1】transform/rigid_transform.h:
rigid_transform.h主要定义了Rigid2 和Rigid3,并封装了2D变换和3D变换的相关函数。
Rigid2 封装了2D平面的旋转和平移操作,方便使用2D变换。
含有2个数据成员
- translation_代表平移向量[dx,dy]
- Rotation2D rotation_;即Eigen::Rotation2D,代表旋转的方向角 [θ]旋转变换
.
提供2个构造函数
- Rigid2();//平移向量为单位向量[1,0]^t,旋转角度为0,debugstring()输出:[1,0,0]
- Rigid2(const Vector& translation, const Rotation2D& rotation);//双参构造函数,给定平移向量[dx,dy]和旋转角度0
.
提供4个静态成员函数
- static Rigid2 Rotation(const double rotation) { //给定旋转角度θ,返回Rigid2,debugstring()是[0,0,θ ]
- static Rigid2 Rotation(const Rotation2D& rotation) {//角度为θ,返回Rigid2,debugstring()是[0,0,θ ]
- static Rigid2 Translation(const Vector& vecto