cuVSLAM
NVIDIA’s GPU-accelerated Visual SLAM in Isaac ROS. Supports multi-camera setups (up to 32 cameras) with IMU fusion. Best-in-class performance on KITTI benchmark.
SLAM (Simultaneous Localization and Mapping) is the computational problem of constructing a map of an unknown environment while simultaneously tracking the robot’s location within it. It’s fundamental to autonomous navigation.
┌─────────────┐ Sensors ───────►│ SLAM │───────► Map (camera, │ Algorithm │───────► Robot Pose (x, y, θ) LiDAR, └─────────────┘ IMU) ▲ │ Odometry (wheel encoders, IMU)Uses cameras as the primary sensor.
Approaches:
Pros: Rich information, low-cost sensors, works indoors/outdoors Cons: Sensitive to lighting, texture-poor environments
NVIDIA Solution: Isaac ROS Visual SLAM (cuVSLAM)
Uses laser scanners for precise 3D measurements.
Approaches:
Pros: Precise depth, works in darkness, large-scale mapping Cons: Expensive sensors, struggles with glass/reflective surfaces
NVIDIA Solution: nvblox for 3D reconstruction
Fuses camera with IMU for robust tracking.
Approaches:
Pros: Robust to fast motion, handles brief visual occlusion Cons: IMU bias drift, calibration required
NVIDIA Solution: cuVSLAM supports IMU fusion
| Type | Description | Use Case |
|---|---|---|
| Occupancy Grid | 2D/3D grid of occupied/free cells | Navigation, path planning |
| Point Cloud | Set of 3D points | 3D reconstruction, dense mapping |
| Feature Map | Sparse 3D landmarks | Visual localization |
| Mesh | Triangulated surface | Simulation, visualization |
| TSDF | Truncated Signed Distance Field | Real-time 3D fusion |
| Neural | Learned implicit representation | NeRF-based mapping |
┌─────────────────────────────────────────────────────────────────┐│ SLAM Pipeline │├─────────────────────────────────────────────────────────────────┤│ ││ 1. FRONTEND (Real-time) ││ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ││ │ Feature │──►│ Tracking │──►│ Local Map │ ││ │ Extraction │ │ (Frame-to- │ │ Update │ ││ │ │ │ Frame) │ │ │ ││ └──────────────┘ └──────────────┘ └──────────────┘ ││ ││ 2. BACKEND (Optimization) ││ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ││ │ Loop │──►│ Bundle │──►│ Global Map │ ││ │ Closure │ │ Adjustment │ │ Correction │ ││ │ Detection │ │ / Pose │ │ │ ││ │ │ │ Graph │ │ │ ││ └──────────────┘ └──────────────┘ └──────────────┘ ││ │└─────────────────────────────────────────────────────────────────┘The key to drift-free SLAM:
Start ──► ──► ──► ──► ──► ──► │ "I've been here!" │ ▼ ◄── ◄── ◄── ◄── Loop Closure ◄──When the robot recognizes a previously visited location, it can correct accumulated drift by adding a constraint in the pose graph.
cuVSLAM
NVIDIA’s GPU-accelerated Visual SLAM in Isaac ROS. Supports multi-camera setups (up to 32 cameras) with IMU fusion. Best-in-class performance on KITTI benchmark.
nvblox
Real-time 3D reconstruction using TSDF fusion. Supports multi-sensor input (3D LiDAR + up to 3 cameras). Builds meshes and occupancy grids for Nav2 integration.
# Launch cuVSLAM with RealSense cameraros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_realsense.launch.py
# Visualize in RVizros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_rviz.launch.pyOutput topics:
/visual_slam/tracking/odometry — Robot pose/visual_slam/vis/observations_cloud — Feature point cloud/visual_slam/vis/landmarks_cloud — Map landmarks| Metric | Description |
|---|---|
| ATE (Absolute Trajectory Error) | Global accuracy of estimated trajectory |
| RPE (Relative Pose Error) | Local drift over fixed intervals |
| Loop Closure Recall | % of true loops detected |
| Map Consistency | How well the map aligns with itself |