Cartographer总结(2:cartographer的外部封装)
cartographer有两个interface接口,分别是TrajectoryBuilderInterface, MapBuilderInterface。
其中,TrajectoryBuilderInterface中的 LocalSlamResultCallback是对外输出的回调函数,代码中的定义为:当local SLAM计算accumulated 'sensor::Rangedata’时调用该回调函数,如果数据被插入到了submap中,报告相应的NodeId,如果数据被过滤掉报告为‘nullptr’。
using LocalSlamResultCallback =
std::function<void(int /* trajectory ID */, common::Time,
transform::Rigid3d /* local pose estimate */,
sensor::RangeData /* in local frame */,
std::unique_ptr<const InsertionResult>)>;
MapBuilderInterface中定义的为同一个LocalSlamResultCallback:
using LocalSlamResultCallback =
TrajectoryBuilderInterface::LocalSlamResultCallback;