Catalogue
1. Cartographer-[1]概述
2. 整体架构
Cartographer可以看作是两个独立的,但相互关联的子系统。
3. 数据结构
整个库采用protobuf数据格式,可参见configuration
- cartographer.common.proto.CeresSolverOptions
- cartographer.mapping.pose_graph.proto.ConstraintBuilderOptions
- cartographer.mapping.pose_graph.proto.OptimizationProblemOptions
- cartographer.mapping.proto.MapBuilderOptions
- cartographer.mapping.proto.MotionFilterOptions
- cartographer.mapping.proto.PoseGraphOptions
- cartographer.mapping.proto.TrajectoryBuilderOptions
- cartographer.mapping_2d.proto.LocalTrajectoryBuilderOptions
- cartographer.mapping_2d.proto.RangeDataInserterOptions
- cartographer.mapping_2d.proto.SubmapsOptions
- cartographer.mapping_2d.scan_matching.proto.CeresScanMatcherOptions
- cartographer.mapping_2d.scan_matching.proto.FastCorrelativeScanMatcherOptions
- cartographer.mapping_2d.scan_matching.proto.RealTimeCorrelativeScanMatcherOptions
- cartographer.mapping_3d.proto.LocalTrajectoryBuilderOptions
- cartographer.mapping_3d.proto.RangeDataInserterOptions
- cartographer.mapping_3d.proto.SubmapsOptions
- cartographer.mapping_3d.scan_matching.proto.CeresScanMatcherOptions
- cartographer.mapping_3d.scan_matching.proto.FastCorrelativeScanMatcherOptions
- cartographer.sensor.proto.AdaptiveVoxelFilterOptions
4. 标准定义
4.1. Frames(坐标系)
global map frame
这是表示全局 SLAM 结果的坐标系。 它是包含所有闭环和优化结果的固定地图坐标系。 当新的优化结果出现时,该帧与其他帧之间的转换可以跳转。 它的 z 轴指向上方,也就是重力加速度矢量指向-z 方向,也就是说加速计测量的重力分量是 + z 方向
local map frame
局部SLAM结果的坐标系,不包括闭环以及位姿BA优化,对于给定某个时间点,该帧与全局地图之间的变换可能会发生变化,但是该帧和其他帧的变换不会发生变化。
submap frame
每个子图都有一个单独的坐标系
tracking frame(跟踪坐标系)
传感器数据表示的坐标系,不固定
gravity-aligned frame
重力对准坐标系,只在2D中使用,与跟踪坐标系有相同位置,但是坐标系方向不一致,类似于导航坐标系
4.2. Transforms (变换)
local_pose(局部姿态)
将数据从跟踪坐标系(Tracking frame)或者子图坐标系转换到local map frame的变换
global_pose(全局位姿)
将数据从跟踪坐标系(Tracking frame)或者子图坐标系转换到全局坐标系的变换
local_submap_pose(局部子图位姿)
将子图坐标系中的数据转换到local map 坐标系的变换
global_submap_pose(全局子图位姿)
将子图坐标系中的数据转换到全局地图坐标系
5. 文件目录结构
整个cartographer_ros
工程目录
1 | . |
5.1. cartographer
核心库
1 | . |