LIO-SAM框架梳理

LIO-SAM

LIO-SAM 是一款优秀的紧耦合SLAM方案,其性能比loam系列更优异。在这套方案中,topic 十分的繁多, ∴ \therefore 梳理该方案 topic 之间的逻辑,有助于理解整套方案.

(本文使用 sequence diagram 展示 LIO-SAM 框架,主要目的是把框架梳理清晰,很多表示方法不是很有道理,会结合文字作进一步说明)

> overall

先上整体框架

imageProjection featureExtraction imuPreintegration mapOptimization IMUPreintegration::/imu_incremental odomDeskewInfo -- /odometry/imu_incremental deskew pointcloud /deskew/cloud_info extract feature TransformFusion::/odometry/imu /mapping/odometry /odometry/imu transformedTobeMapped /mapping/odometry_incremental update & re-propagate /feature/cloud_info imageProjection featureExtraction imuPreintegration mapOptimization

/odometry/imu_incremental: 在 imuPreintegration 节点下 IMUPreintegration类, 基于gtsam 积分器(Integrator) 预测出的 imu 状态

/odometry/imu: /mapping/odometry + incremental IMU : 在 imuPreintegration 节点下 TransformFusion类,基于当前状态最佳估计,给出的全局一致下的 imu 状态

/mapping/odometry_incremental: 基于当前状态的最佳帧间估计,每优化出一帧,即进行累加

/mapping/odometry: 当前状态最佳估计

/odometry/imu(odomTopic): 在 imuPreintegration 节点下 TransformFusion类, 使用经优化后的帧间增量里程计信息,预测当前的imu状态

> /odometry/imu_incremental

分析:
  每来一帧imu数据,使用gtsam提供的积分器,预测当前imu时刻下的状态
⇒ \Rightarrow /odometry/imu_incremental 是整个系统 最早发出的 msg, ∴ \therefore 能为其他节点提供预测信息

应用:

  • 1 预测全局一致下的 imu 位姿((publish /odometry/imu in TransformFusion())
  • 2 在 imageProjection 节点中,为使用odometry 获取畸变矫正量提供预测 (odomDeskewInfo())

note: 在 imuPreintegration Node中,使用了两个积分器,其一为预测更前当前状态时使用,其二为根据最新的imu 状态进行传播时使用

  • gtsam::PreintegratedImuMeasurements *imuIntegratorOpt_;
  • gtsam::PreintegratedImuMeasurements *imuIntegratorImu_;,
> /odometry/imu

TranformFusion() in imuPreintegration Node)

分析:
mapOptimization 节点优化后的帧间里程计信息 (/mapping/odometry_incremental) 结合高频的 imu msg, 实现全局一致下的 imu 状态预测

latest lidarOdom / imuOdomFront imuOdomBack / latest odometry calc 'incremental pose' between imuOdom compensate publish imu odometry loop [new lidar frame] /mapping/odometry /odometry/imu latest lidarOdom / imuOdomFront imuOdomBack / latest odometry
> /mapping/odometry_incremental

main function: 计算出当前帧最优估计后,输出增量里程计信息

application: 为预积分节点中预测更新系统状态,提供先验位姿信息(IMUPreintegration()::odometryHandler())

last frame current frame next frame last transformTobeMapped transformTobeMapped predict pose calc 'incremental pose' of inter-frame publish '/mapping/odometry_incremental' loop [every frame] last frame current frame next frame
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值