在经历过官方数据集和自录数据集的验证后,我们可以清楚的看到cartographer的3D建图效果,下面一段时间我将开展3D SLAM源码部分的阅读和注释,在此做个记录,如果有小伙伴发现不对的地方,希望能够及时告知我,以便我及时改正。
以个人习惯而言,我阅读代码采用的策略是先看头文件,熟悉类内包括的函数及成员变量,然后对实现文件采用的是深度优先搜索+广度优先搜索的方式,深度优先搜索是指从主线程出发,对调用函数逐段深入;广度优先搜索主要指呈现形式,把深度优先搜索得到的调用放在该文件中以便后续查看方便,下面我将先从cartographer的上层ROS封装开始逐步深入阅读。
一.node_main.cc文件
该文件是cartographer_ros的主体文件,所以选择从该文件进行逐步深入阅读。
1.文件的一开始是调用Google 开源的命令行标记处理库gflags,gflags主要支持的参数类型包括bool, int32, int64, uint64, double, string等,定义参数通过DEFINE_type宏实现,参数分别为参数名,参数默认值以及提示信息,定义完成后即可通过FLAGS_name访问相应的参数,例如下面出现的“FLAGS_configuration_directory”和“FLAGS_configuration_basename”就对应此处的“configuration_directory”和“configuration_basename”。
DEFINE_bool(collect_met

本文将深入解析cartographer_ros的node_main.cc,从参数初始化到运行流程,重点讲解CreateMapBuilder、node构造和关键函数如StartTrajectory等,带你走进SLAM算法的底层实现。
最低0.47元/天 解锁文章
7902

被折叠的 条评论
为什么被折叠?



