Note:ORB-SLAM2是2017年发布的,给的是GPLv3 license,禁止商业使用的;而OpenVSLAM2019年发布时给的是2-clause BSD licensed,允许商业使用,貌似高仙的VSLAM框架就是基于OpenVSLAM的;但后面ORB-SLAM作者举报OpenVSLAM代码侵权,OpenVSLAM官方下架了代码。现在Github上仍有一些fork的代码
Reference:MM2019,Citations:182;作者来自日本名古屋大学。
Overview:OpenVSLAM被设计成可以第三方的库,方便调用;对比ORB-SLAM2增加了透视相机、鱼眼和全景相机的输入功能(虽然ORB-SLAM3也增加了该功能),整理代码更加标准,相比ORB-SLAM系列的代码能快速上手。
Code:https://github.com/zm0612/openvslam-comments Fork的注释版本的代码
Introduction
**Motiviation:**ORB–SLAM系列、LSD–SLAM和DSO等VSLAM开源框架的可用性和可扩展性太差了,可视化部分做的也不好,即将这些开源SLAM框架部署应用时不太方便。
Contributions:
- 提供了各种的相机接口,与ORB-SLAM2相机增加了透视相机(正常是投影相机 )、鱼眼和全景相机,
- 地图可以存储和加载,OpenVSLAM也可以用构建好的地图运行,
- 提供了web浏览器上运行的可视化界面
- 将相关组件封装,提供清晰的接口,并且提供大量的文档和示例代码。
Implementation
实现:C++的代码,使用了eigen、OpenCV、g2o等库;
整个Pipeline如下所示,和ORB-SLAM2基本一致:
OpenVSLAM的地图使用MessagePack格式进行存储。
Experiment
OpenVSLAM的为什么
- 精度比ORB-SLAM2高?:部分原因是OpenVSLAM中额外实现了基于鲁棒匹配的帧跟踪方法。
- 时间比ORB-SLAM2少?:主要是因为OpenVSLAM中ORB提取的实现比ORB–SLAM中的更优化;另一方面OpenVSLAM防止tracking module中的本地地图随全局地图的扩大而扩大,所以其在序列后期的tracking时间比ORB-SLAM2少。
Conclusion
OpenVSLAM的优点在于高度的可用性和可扩展性,其被设计为易于用于可视SLAM的各种应用场景;