nvidia-isaac/cuVSLAM

GitHub: nvidia-isaac/cuVSLAM

NVIDIA推出的CUDA加速视觉里程计与建图库,旨在为机器人和无人机提供高精度、计算高效的实时视觉定位与地图构建能力。

Stars: 1346 | Forks: 130

# cuVSLAM: CUDA 加速的视觉里程计与建图 ![Demo](https://raw.githubusercontent.com/nvidia-isaac/cuVSLAM/main/examples/assets/tutorial_multicamera_edex.gif) ### [ArXiv 论文](https://www.arxiv.org/abs/2506.04359) | [Python API](https://nvidia-isaac.github.io/cuVSLAM/python/) | [C++ API](https://nvidia-isaac.github.io/cuVSLAM/cpp/) | [ROS2](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam) ## 概述 cuVSLAM 是由 NVIDIA 推出的库,提供多种视觉跟踪相机模式和同步定位与建图 (SLAM) 功能。利用 CUDA 加速和丰富的特性集,cuVSLAM 实现了高精度、计算高效且实时的性能表现。 ![Overview](https://raw.githubusercontent.com/nvidia-isaac/cuVSLAM/main/examples/assets/pycuvslam_overview.jpg) ## 目录 - [使用 cuVSLAM](#using-cuvslam) - [性能](#performance) - [安装 PyCuVSLAM](#install-pycuvslam) - [构建 cuVSLAM](#build-cuvslam) - [常见问题 (FAQ)](#faq) - [开发](#development) - [反馈](#feedback) - [许可证](#license) - [引用](#citation) # 使用 cuVSLAM 最快入门的方式是[从预构建的 wheel 安装 PyCuVSLAM](#install-from-wheels) 并探索[示例]( cuVSLAM 的准确性和鲁棒性可能会受到多种因素的影响。如果您遇到性能问题,请对照以下常见原因检查您的系统: - **硬件过载**:硬件过载会对视觉跟踪产生负面影响,导致掉帧或 cuVSLAM 计算资源不足。请禁用高强度的可视化或图像保存操作以提高性能。有关 Jetson 嵌入式平台上的预期性能指标,请参阅我们的[技术报告](https://arxiv.org/html/2506.04359v3#A1.F13) - **内参与外参标定**:准确的相机标定至关重要。请确保您的标定参数精确。有关更多详情,请参阅我们关于[图像去畸变]( pip install python/ ``` `CUVSLAM_BUILD_DIR` 是构建脚本查找 `libcuvslam.so` 所必需的。 **警告**:由于 scikit-build-core 的限制,在重新构建 libcuvslam 后必须重新安装绑定。 # 构建 cuVSLAM ## 预构建库 在 [发布页面](https://github.com/nvidia-isaac/cuVSLAM/releases) 上提供了适用于 Ubuntu 22.04/24.04 (x86_64) 和 Jetson (aarch64) 且基于 CUDA 12 和 CUDA 13 的预构建 C++ 库。 对于 Python 使用,[预构建的 wheel](#install-from-wheels) 是推荐的方式。 ## 从源码构建 ### 系统要求 * Ubuntu 22+ (测试过 22.04 & 24.04) x86_64/aarch64 (台式机/笔记本 & [Nvidia Jetson Orin/Thor](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/)) * [CUDA Toolkit 12 或 13](https://developer.nvidia.com/cuda/toolkit),[Jetpack 6.1/6.2/7.0/7.1](https://docs.nvidia.com/jetson/) * `apt update && apt install g++ cmake git git-lfs python3-dev` * git + git-lfs 用于克隆此仓库 * CMake 3.19+,gcc * Python 3.9+(用于 Python 绑定、示例和一些工具) ### 在本地 x86 上构建 在仓库根目录下,使用以下两种方式之一构建 C++ 代码: 1. 手动构建: ``` mkdir build cd build cmake .. make -j ``` 2. 为 `build_release.sh` 设置源码和构建路径并运行它。 **重要**:在运行 `build_release.sh` 之前,使用以下选项之一设置路径: 1. 在 `~/.bashrc`(或等效的 shell 登录脚本)中设置路径,这在切换 cuvslam 分支时会很有用: export CUVSLAM_SRC_DIR= export CUVSLAM_DST_DIR= 2. 更新 `build_release.sh` 中的 SRC 和 DST 路径 ### 在远程 ARM 上构建 需要 SSH 访问远程设备。 ``` ./copy_to_remote.sh ssh 'export CUVSLAM_SRC_DIR=~/cuvslam/src CUVSLAM_DST_DIR=~/cuvslam/build && ~/cuvslam/src/build_release.sh' ./copy_from_remote.sh ``` ### 为 C++ 代码启用 rerun 可视化工具 1. 创建虚拟环境并安装 rerun SDK: python3 -m venv .venv source .venv/bin/activate pip install rerun-sdk==0.22.1 2. 使用 `CUVSLAM_TOOLS_PYENV` 环境变量指定虚拟环境 (默认为仓库根目录下的 `.venv`)。 3. 更新 `build_release.sh` 并将 `USE_RERUN` 设置为 `ON` 4. 运行 tools 文件夹中的任何工具 # 常见问题 (FAQ) **Q**:PyCuVSLAM 支持哪些 Python 版本? **A**:预构建的 wheel 适用于 Python 3.10 (Ubuntu 22.04) 和 Python 3.12 或更高版本 (Ubuntu 24.04+)。 从源码构建时,PyCuVSLAM 支持 Python 3.9 及更高版本。 # 故障排除 参见 [TROUBLESHOOTING.md](TROUBLESHOOTING.md) # 反馈 您在运行 cuVSLAM 或 PyCuVSLAM 时遇到问题了吗?您有任何建议吗?我们很乐意在 [issues](https://github.com/nvidia-isaac/cuVSLAM/issues) 标签页中听取您的反馈。 # 许可证 本项目采用 NVIDIA Community License 许可,详情请参阅 [LICENSE](
标签:Bash脚本, C++, CUDA, Isaac ROS, Python, ROS2, SLAM, Vectored Exception Handling, VSLAM, 多相机, 定位与建图, 实时性能, 数据擦除, 无后门, 机器人, 深度学习, 自动驾驶, 视觉追踪, 视觉里程计, 计算机视觉, 逆向工具