今天完成了约束计算,整个cartographer移植工作也快完成了,这是我的文件目录,只是一部分哈,公司源码不能漏,目录当时随便加的,方便隔开:
很多基础类用的都是公司原来的,比如地图、位姿之类的不是他的不好,就是节省开发时间还有兼容原来的平台方便测试,位姿加了一个rigid2d到自己位姿数据的接口,不然移植代码时候太麻烦了。ceres_match简单测试过是稳定的,没衡量误差,后面还要调试提高精度,后端部分,把cartographer原来的线程全部去掉了,只保留算法部分,后面新产品可能太需要实时优化,离线调试就行,有意向试试的可以这样,大大减少移植时间。
后面还要交叉编译一下suitesparse,开始卡了下就没把稀疏矩阵优化库编译进。
完成这部分后,感觉对整个cartographer理解更清楚了点,开始把问题想复杂了,cartographer工程上优化很好,算法部分现在看来相对简单一些,有点失落,感觉自己理解新知识有点慢,想问题也不够清楚。
移植过程中认识最深刻是自己C++还有很多要学,特别是关于内存部分,cartographer用的是智能指针,由于我们公司嵌入式平台建议用C++11,就删掉了原来的智能指针,用普通delete、new代替了,他的线程管理压根没看,直接全丢了,搞完了试试在线的可以回来再看看,挖坑一个月才写了点感想,要抓紧呀。