为了分析这个代码的运行原理,首先切到最初的版本,这样的简化代码有利于理解cartographer的运行基本方式。
如上是cartographer的调用入口。
Node 是一个类,run 函数调用了Node的三个接口:构造函数,以及SpinForever, Initialize.
可以看到仅开放了main函数调用的方法。
Initialize()方法:
1. subscribe to IMU
2. subscribe to laser: 3 types
const bool has_laser_scan_2d = node_handle_.hasParam(