上一节介绍了cartographer的到arm的交叉编译。
这节对脱离ros环境使用cartographer的系列文章和开发思路做一个简单小结。
1,实际意义
虽然cartographer可以使用ROS集成快速入门。
但是在实际应用中,特别是工业生产中,算到硬件资源的限制,需要更简单的使用cartographer。
故研究了脱离ros系统后,怎样使用cartographer进行开发,并交叉编译,移动到不同平台,如工业生产中常用的arm平台。
【cartographer without ros】一、不带Ros的快速安装
2,开发思路
当脱离ros系统时,同样可以根据cartographer_ros对cartographer的引用和封装,来开发自己的项目。
【cartographer without ros】二、使用cartographer的思路和大纲
3,数据处理
ros系统在我们使用的cartographer时候,很大的一个功能是能够发布和监听各类数据类型。
当脱离ros系统时,需要自己来处理cartographer所需要的传感器数据。
ToRosMsg();
ToCartoSensor();
【cartographer without ros】三、雷达scan数据转换
【cartographer without ros】四、里程计odom数据转换
【cartographer without ros】五、陀螺仪Imu数据转换
【cartographer without ros】六、路标landmark数据转换
4,引入rosbag
引入和使用Rosbag,以对外部数据进行存包读包,方便我们对cartographer的建图和定位做离线模拟和调试。
实际上,有时间的话,开发者可以自己实现数据包的定义和读写。
但是,rosbag包同样可以在ros系统中进行可视化的复现,能提高调试测试的效率,故直接引入。
【cartographer without ros】七、Rosbag的引入和使用
5,cartographer接口的使用
仿照cartographer_ros,通过使用MapBuilderInterface和TrajectoryBuilderInterface实现对应的建图,存储和定位或者更多功能。
【cartographer without ros】八、使用MapBuilder建图,存储,定位
6,cartographer的交叉编译
以arm平台为例,记录了cartographer的交叉编译流程。
【cartographer without ros】九、cartographer的交叉编译(Arm)
【完】