注意:这是xdspacelab/openvslam的社区分支。它的创建是为了在 2021 年 1 月 31 日继续积极开发 OpenVSLAM。原始存储库不再可用。请在使用前仔细阅读并理解官方的终止声明。与原始版本中的 ORB_SLAM2 的相似之处已被#252删除。如果您发现许可证有任何其他问题,请指出。到目前为止的讨论请参见#37和#249 。
0.3 之前的版本已被弃用。如果您使用它们,请在 GPL 许可下将它们用作 ORB_SLAM2 的衍生版本。
stella_vslam 是一个单目、立体、RGBD 视觉 SLAM 系统。
显着的特点是:
- 它兼容各种类型的相机型号,并且可以轻松定制为其他相机型号。
- 创建的地图可以存储和加载,然后stella_vslam可以根据预先构建的地图本地化新图像。
- 该系统是完全模块化的。它的设计是通过使用易于理解的 API 将多个功能封装在单独的组件中。
- 我们提供了一些代码片段来了解该系统的核心功能。
stella_vslam 值得注意的功能之一是该系统可以处理各种类型的相机模型,例如透视、鱼眼和等距柱状相机。如果需要,用户可以轻松实现额外的相机模型(例如双鱼眼、折反射)。例如,使用等距柱状相机模型(例如RICOH THETA系列、insta360系列等)的视觉SLAM算法如上所示。
我们提供了安装文档和教程。ROS 包装器的存储库是stella_vslam_ros。
OpenVSLAM 基于具有稀疏特征的间接 SLAM 算法,例如ORB-SLAM / ORB-SLAM2、ProSLAM和UcoSLAM。核心架构基于ORB-SLAM/ORB-SLAM2,代码从头开始重新设计和编写,以提高可扩展性、可读性、性能等。UcoSLAM更早地实现了特征提取、地图存储和加载的并行化。ProSLAM较早实现了高度模块化且易于理解的系统。
提供了一些用于理解系统核心功能的代码片段。您可以在自己的程序中使用这些片段。请查看目录*.cc
中的文件./example
或查看简单教程和示例。
还提供了针对 Docker 用户的说明。
可以从此处下载示例 ORB 词汇表文件。此处还提供了示例数据集。
如果您想使用标准基准数据集(例如 KITTI Odometry 数据集)运行视觉 SLAM,请参阅文档中的使用标准数据集的 SLAM部分。
如果您有任何疑问或发现有关软件的任何错误,请通过GitHub 讨论联系我们。
- 重构
- 算法更改和参数添加以提高性能
- 添加测试
- 标记整合
- 额外相机模型的实现
- Python 绑定
- IMU集成
列表的位置越高,优先级越高。欢迎提供反馈、功能请求和贡献!
2 条款 BSD 许可证(请参阅许可证)
以下文件来自第三方库。
./3rd/json
:nlohmann/json [v3.6.1](MIT 许可证)./3rd/spdlog
:gabime/spdlog [v1.3.1](MIT 许可证)./3rd/tinycolormap
:yuki-koyama/tinycolormap(麻省理工学院许可证)./3rd/FBoW
:stella-cv/FBoW(MIT 许可证)(从rmsalinas/fbow分叉)./src/stella_vslam/solver/essential_5pt.h
: libmv/libmv的一部分(MIT 许可证)./src/stella_vslam/solver/pnp_solver.cc
:laurentkneip/opengv的一部分(3 条款 BSD 许可证)./src/stella_vslam/feature/orb_extractor.cc
:opencv/opencv的一部分(3 条款 BSD 许可证)./src/stella_vslam/feature/orb_point_pairs.h
:opencv/opencv的一部分(3 条款 BSD 许可证)
请使用g2o
动态链接库,因为csparse_extension
模块g2o
是LGPLv3+。
- Shinya Sumikura(@shinsumicco)
- 涩谷干也 ( @MikiyaShibuya )
- 樱田健(@kensakurada)
OpenVSLAM荣获ACM Multimedia 2019 开源软件大赛第一名。
如果 OpenVSLAM 对您的研究有帮助,请引用 OpenVSLAM 的论文。这是 BibTeX 条目:
@inproceedings{openvslam2019,
author = {Sumikura, Shinya and Shibuya, Mikiya and Sakurada, Ken},
title = {{OpenVSLAM: A Versatile Visual SLAM Framework}},
booktitle = {Proceedings of the 27th ACM International Conference on Multimedia},
series = {MM '19},
year = {2019},
isbn = {978-1-4503-6889-6},
location = {Nice, France},
pages = {2292--2295},
numpages = {4},
url = {http://doi.acm.org/10.1145/3343031.3350539},
doi = {10.1145/3343031.3350539},
acmid = {3350539},
publisher = {ACM},
address = {New York, NY, USA}
}
预印本可以在这里找到。
- 劳尔·穆尔-阿塔尔、JMM 蒙蒂尔和胡安·D·塔多斯。2015. ORB-SLAM:多功能且精确的单目 SLAM 系统。IEEE 机器人学报 31, 5 (2015), 1147–1163。
- 劳尔·穆尔-阿塔尔和胡安·D·塔多斯。2017. ORB-SLAM2:用于单目、立体和 RGB-D 相机的开源 SLAM 系统。IEEE 机器人学报 33, 5 (2017), 1255–1262。
- 多米尼克·施莱格尔、米尔科·科洛西和乔治·格里塞蒂。2018.ProSLAM:从程序员的角度看图 SLAM。IEEE 国际机器人与自动化会议 (ICRA) 论文集。1-9。
- 拉斐尔·穆尼奥斯·萨利纳斯和拉斐尔·梅迪纳·卡尼瑟。2019.UcoSLAM:通过融合关键点和平方平面标记进行同步定位和建图。arXiv:1902.03729。
- 梅皮拉里AB. 2019.OpenSfM。https://github.com/mapillary/OpenSfM。
- 乔治·格里塞蒂、赖纳·库梅尔、西里尔·斯塔尼斯和沃尔弗拉姆·布尔加德。2010.基于图的SLAM教程。IEEE 智能交通系统汇刊杂志 2, 4 (2010), 31–43。
- Rainer Kümmerle、Giorgio Grisetti、Hauke Strasdat、Kurt Konolige 和 Wolfram Burgard。2011. g2o:图优化的通用框架。IEEE 国际机器人与自动化会议 (ICRA) 论文集。3607–3613。