LOAM学习-代码解析(七)融合信息 transformMaintenance

本文详细解析LOAM算法中的transformMaintenance部分,包括初始化、位姿转换、信息处理和主函数。通过理解如何融合odometry和mapping信息,实现位姿更新。文章提供了带有中文注释的LOAM代码链接,以及相关流程和数学原理的解释。
摘要由CSDN通过智能技术生成

前言

一、初始化

二、位姿转换 transformAssociateToMap

三、接收信息 Handler

四、主函数 main

结语

一些碎碎念


前言

在进行完LOAM学习-代码解析(五)地图构建 laserMappingLOAM学习-代码解析(六)地图构建 laserMapping之后,终于到了LOAM代码解析的尾声,本文将进行最后的transformMaintenance的代码进行解析。

LOAM代码(带中文注释)的地址:https://github.com/cuitaixiang/LOAM_NOTED

LOAM代码(带中文注释)的百度网盘链接:https://pan.baidu.com/s/1tVSNBxNQrxKJyd5c9mWFWw 提取码: wwxr

LOAM论文的百度网盘链接: https://pan.baidu.com/s/10ahqg8O3G2-xOt9QZ1GuEQ 提取码: hnri

LOAM流程:

一、初始化

创建里程计计算的转移矩阵、平移增量、世界坐标系位姿、优化前位姿、优化后位姿态

//odometry计算的转移矩阵(实时高频量)
float transformSum[6] = {0};
//平移增量
float transformIncre[6] = {0};
//经过mapping矫正过后的最终的世界坐标系下的位姿
float transformMapped[6] = {0};
//mapping传递过来的优化前的位姿
float transformBefMapped[6] = {0};
//mapping传递过来的优化后的位姿
float transformAftMapped[6] = {0};

//ros发布、坐标系、里程计、位姿转换
ros::Publisher *pubLaserOdometry2Pointer = NULL;
tf::TransformBroadcaster *tfBroadcaster2Pointer = NULL;
nav_msgs::Odometry laserOdometry2;
tf::StampedTransform laserOdometryTrans2;

二、位姿转换 transformAssociateToMap

位姿转换主要是将odometry的运动估计和mapping矫正量融合,主要步骤如下

步骤1:计算两次激光里程计的平移增量transformIncre。由于是基于匀速运动模型的假设,所以运动增量为transformBefMapped[3] - transformSum[3]。由于这两个数组中的位姿态都是基于世界坐标系(/camera_init)下的,所以需要将点云从世界坐标系转换到当前时刻的imu坐标系下,变换矩阵为R^{T}=R(z)^{T}R(x)^{T}R(y)^{T}

\begin{bmatrix} \Delta x_{Inc} \\ \Delta y_{Inc} \\ \Delta z_{Inc} \end{bmatrix} = \begin{bmatrix} cos\gamma & sin\gamma & 0 \\ -sin\gamma & cos\gamma & 0\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & cos\alpha & sin\alpha\\ 0 & -sin\alpha & cos\alpha \end{bmatrix} \begin{bmatrix} cos\beta & 0 & -sin\beta \\ 0 & 1 & 0 \\ sin\beta & 0 & cos\beta \end{bmatrix} \begin{bmatrix} x_{bef}-x_{sum}\\ y_{bef}-y_{sum}\\ z_{bef}-z_{sum} \end{bmatrix}

步骤2:计算地图map与世界坐标系(/camera_init)的矩阵

(T_{k}^{m})_{w-BefMap}= (T_{k-1}^{m})_{w-AftMap} \cdot ((T_{k-1}^{o})_{w-Odom})^T \cdot (T_{k}^{o})_{w-Odom}

最终的旋转矩阵R=R(y)^{ }R(x)^{ }R(z)^{ }

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值