LIO-SAM的全称是:Tightly-coupled Lidar Inertial Odometry via Smoothing and
Mapping,从全称上可以看出,该算法是一个紧耦合的雷达惯导里程计(Tightly-coupled Lidar Inertial Odometry),借助的手段就是利用GT-SAM库中的方法。
LIO-SAM提出了一个利用GT-SAM的紧耦合激光雷达惯导里程计的框架。实现了高精度、实时的移动机器人的轨迹估计和建图。在之前的博客讲解了imu如何进行预积分,最终以imu的频率发布了imu的预测位姿里程计。
本篇博客主要讲解,最终是如何进行位姿融合输出的
Eigen::Affine3f
其中功能的核心在于 位姿间的变换,所以要了解 Eigen::Affine3f 部分的内容,Affine3f 是eighen库的 仿射变换矩阵
实际上就是:平移向量+旋转变换组合而成,可以同时实现旋转,缩放,平移等空间变换。
Eigen库中,仿射变换矩阵的大致用法为:
创建Eigen::Affine3f 对象a。
创建类型为Eigen::Translation3f 对象b,用来存储平移向量;
创建类型为Eigen::Quaternionf 四元数对象c,用来存储旋转变换;
最后通过以下方式生成最终Affine3f变换矩阵:a=b*c.toRotationMatrix();
一个向量通过仿射变换时的方法是result_vector=test_affine*test_vector;
仿射变换包括:平移、旋转、放缩、剪切、反射
平移(translation)和旋转(rotation)顾名思义,两者的组合称之为欧式变换(Euclidean
transformation)或刚体变换(rigid transformation);
放缩(scaling)可进一步分为uniform scaling和non-uniform scaling,前者每个坐标轴放缩系数相同(各向同性),后者不同;
如果放缩系数为负,则会叠加上反射(reflection)——reflection可以看成是特殊的scaling;
刚体变换+uniform scaling 称之为,相似变换(similarity transformation),即平移+旋转+各向同性的放缩;
全部0条评论
快来发表一下你的评论吧 !