这两年一直在作SLAM产品化的一些工做,有些感触,想和你们分享一下。不少想法只是我的浅见,不当之处还望你们指正。前端
我这两年分别作了AR眼镜和辅助驾驶方向的开发,说实话,挫折大于成果。SLAM产品化之难,超出了个人想象。
先说说我作项目的通常思路。算法
实际开发过程当中,有几个方面会特别影响SLAM的进程。这和SLAM技术的特色有关。架构
其一,SLAM是一个技术栈,而不是一个单一算法。不管在哪一个应用领域,开发者都会面临不少单一开源算法解决不了的实际问题。SLAM算法自己又有多种实现方式,滤波VS优化,稀疏VS稠密,松耦合VS紧耦合,里程计VS回环优化,人工特征VS语义特征,等等等等。所以,SLAM的架构设计既须要SLAM理论的深度和广度,又须要大量的实践经验,还须要对上下游的算法和硬件有比较充分的理解和认知。模块化
其二,SLAM强依赖于硬件。硬件不一样,算法大大不一样,整个系统的计算复杂度、鲁棒程度和可扩展性都会有差异。多传感器SLAM更是提升了系统设计的复杂度。测试
其三,SLAM的实用化还须要探索。SLAM算法的不一样模块耦合程度高,当算法不能知足要求时,不能简单经过调参或者增减模块控制精度,有可能须要调整整个算法架构或者传感器设计,所以老是属于系统中风险较高的部分,不可控性强。SLAM须要软硬件和计算平台强有力的支撑,但SLAM自己在项目中的地位常常没法达到如此的高度,所以会有些尴尬。优化
要解决以上几个问题并不容易,有几点意见仅供参考吧。架构设计
路漫漫其修远兮。设计