cartographer自动更新地图 初探

本文探讨了Cartographer中如何实现地图更新,强调在导航模式下保持老地图以避免定位问题。通过设置TrajectoryState::FROZEN状态加载旧地图,并在导航结束后自定义接口删除旧地图并保存新地图,解决了地图更新的问题。分享了TrimSubmapIdByManual和TrimBeforeUpdate两个关键函数的使用,以及在保存地图时的注意事项,使得SLAM系统具备了地图更新功能,减少了重复建图的需求。
摘要由CSDN通过智能技术生成

其实cartographer的地图更新,就是用新扫描的地图替换老地图,这里在加载老地图的时候,要加载TrajectoryState::FROZEN状态的地图,这样新地图就按照老地图为坐标系进行匹配和导航了。
cartographer里面自带的移除老地图的功能是考虑建图模式的情况,所以在导航模式时,我们不能任性移除老地图,因为这样会带来定位灾难(老地图可能因为移除局部而整体变形)
所以我们加载老地图的时候,加载模式为TrajectoryState::FROZEN状态,所以我们只要在结束导航的时候,自己写一个接口实现新老地图的比较然后移除老地图,保存新地图即可。(效果还可以哦)

talk is cheap , show my code

  bool MapBuilder::SerializeStateToFileAfterUpdate(
      bool include_unfinished_submaps,
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可峰科技

生活不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值