cartographer算法流程

首先输入是激光,imu,odom数据,总体分为前端和后端

前端定位和建图流程如下

总的定位和建图从GlobalTrajectoryBuilder::AddHorizontalLaserFan开始运行

局部定位和建图从LocalTrajectoryBuilder::AddHorizontalLaserFan开始。

1.局部定位和建图

主要函数是ScanMatch

在ScanMatch主要流程

(1)pose_prediction作为初始位姿给real_time_scm进行解算

(2)用csm得到的姿态作为ceres_scanmatch的初始位姿,然后通过ceres-scan_matching来进行scan-to-map的结算来得到最终的位姿.

(3) 然后用这个最终的位姿来更新滤波器

1.1real_time_scm方法

real_time_scm使用的是Computing 2D Slices的方法。

具体待研究

1.2ceres_scanmatch

主要构造残差-栅格,平移,旋转的残差进行位姿解算

具体残差形式是什么待研究,特别是栅格的残差。

2.全局定位

主要函数是

sparse_pose_graph_->AddScan

主要调用ComputeConstraint

在其中调用FastCorrelativeScanMatcher进行匹配,然后再进行优化

cartographer源码文件目录介绍
https://blog.csdn.net/wen_lg/article/details/110368785

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐