nvidia-isaac/cuVSLAM
GitHub: nvidia-isaac/cuVSLAM
NVIDIA推出的CUDA加速视觉里程计与建图库,旨在为机器人和无人机提供高精度、计算高效的实时视觉定位与地图构建能力。
Stars: 1346 | Forks: 130
# cuVSLAM: CUDA 加速的视觉里程计与建图

### [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 实现了高精度、计算高效且实时的性能表现。

## 目录
- [使用 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, 多相机, 定位与建图, 实时性能, 数据擦除, 无后门, 机器人, 深度学习, 自动驾驶, 视觉追踪, 视觉里程计, 计算机视觉, 逆向工具