工作环境:
ubuntu16.04+ROS(Kinetic)+Cartographer-1.0.0
地图文件
-
.pbstream
cartographer格式地图文件,本质上是一个压缩protobuf文件,内部包含轨迹等状态。运行时为了实时性,扔掉了大部分传感器数据,里面记录十分粗糙。
-
.bag
全部的传感器数据文件。
只有当算法完成,建好了最佳轨迹,再将.pbstream、.bag(全部传感器数据)、.urdf(传感器外参)、.lua(配置文件)结合起来创建高分辨率地图。
主要程序可以去阅读assets_writer
,进行点云的染色、滤波以及导出不同格式的点云,相关程序在cartographer/io路径下。简单介绍一下,io路径实现了点云的读取和存储,模块化程序,不同的头文件对应不同流水线的处理器,类似于链表,分阶段式执行。其中,points_processor.h
定义了基类PointsProcessor
,抽象了所有处理器的公有接口。
地图调参
配置文件: assets_writer_backpack_3d.lua,提供给cartographer/io路径下的程序使用;
-
color_points
根据frame_id给点云添加颜色;主要成员color、frame_id;
-
dump_num_points
记录输出处理的点数量;主要成员num_points;
-
fixed_ratio_sampler
采样过滤器,控制固定采样频率的点通过;主要成员sampling_ratio;
-
frame_id_filter
帧过滤器,控制黑名单或者白名单的帧点通过;主要成员keep_frames、drop_frames;
-
write_hybrid_grid
创建大尺寸体素混合网格,控制通过的光线;主要成员voxel_size、range_data_ins