Cartographer总结(1:整体框架)

Cartographer框架解析与应用
本文介绍了Cartographer的工程结构,包括cartographer和cartographer_ros,以及它们在SLAM中的作用。Cartographer依赖于glog、ceres和Protobuf等库,支持2D和3D建图。文章详细阐述了Cartographer的类层次,强调了trajectory概念的重要性,并概述了全局和局部SLAM的角色。在ROS环境中,重点讲述了map_builder的创建、节点的启动、轨迹的加载和订阅过程。此外,还提到了时间处理的注意事项,Cartographer内部使用的是UTC时间,与ROS时间不完全相同,需要进行转换。

Cartographer总结(1:整体框架)

by 扛着相机的翻译官

  Git上开源的cartographer分为cartographer工程和其ros封装即cartographer_ros两部分。cartographer_ros部分只是对cartographer的封装应用,相当于一个example,可以用来理解cartographer的接口如何使用。

cartographer使用了goolge自带的一些库,如 ceres, glog 等,还有一些非google开发的依赖库,如 ProtobufLua 等。最新版本的cartographer使用了更多google开发的库。这些goolge的库使用起来方不方便因人而异,我个人的使用感觉还是很不方便的,尤其是在安装过程中,版本的要求较多,跨平台能力一般。

*Protobuf: 是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。
*Lua: 用来配置cartographer的各项参数。

cartographer的官网可以找到整体流程图:

在这里插入图片描述

 该流程图简单表示了算法内部的数据流程,实际使用的类要比流程图中多一些。
 根据我的总结,cartographer的类分层顺序为:map_builder->global_trajectory_builder->local_trajectory_builder
 这其中包含了2d和3d两种情况,分别实例化2d和3d的相关类。(todo: 列出相关类)
 为什么要有trajectory的概念呢?这正是cartographer的伟大之处,它支持多次建图,和純定位(pure localiza

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值