Skip to content

Visual SLAM 与视觉里程计

概念速览

  • Visual SLAM (vSLAM):仅用摄像头估计相机位姿并构建环境地图
  • Visual Odometry (VO):仅估计位姿,不维护全局地图
  • Visual-Inertial Odometry (VIO):摄像头 + IMU 紧耦合

主流方案

方案类型传感器前端后端适用
ORB-SLAM3特征点法单/双目/RGB-D + IMUORBDBoW2 + G2o研究基准
VINS-Fusion紧耦合 VIO单/双目 + IMUHarris + LK滑动窗口 + 回环无人机
DSO直接法单目梯度滑动窗口纹理丰富
SVO半直接单目FAST + LK滑动窗口嵌入式
OpenVSLAM特征点法单/双目/RGB-DORBDBoW2嵌入式
RTAB-Map特征点 + RGB-DRGB-D + LiDARSURF/FREAK全局回环大场景
NVIDIA Isaac ROS Visual SLAM特征点 + GPU双目 + IMUNV 自研cuVSLAMJetson

关键模块

前端 (Front-End)

  • 特征点法:ORB / SIFT / SuperPoint → 描述子匹配 → 2D-2D / 2D-3D 对应
  • 直接法:最小化光度误差 (photometric error)
  • 混合法:跟踪特征点 + 优化光度

后端 (Back-End)

  • 滤波器:EKF / UKF / MSCKF
  • 图优化:Bundle Adjustment (BA) + 位姿图
  • 滑动窗口:保留最近 N 帧的局部地图

回环检测 (Loop Closure)

  • 词袋模型 (BoW):DBoW2 / DBoW3
  • NetVLAD:深度学习全局描述子
  • 检测 + 验证:DBoW 检索 + RANSAC PnP 验证

选型建议

  • 室内移动底盘:RealSense + RTAB-Map (RGB-D + 回环)
  • 室内无人机:VINS-Fusion (单目 + IMU)
  • Jetson 嵌入式:Isaac ROS cuVSLAM (GPU 加速)
  • 大场景户外:ORB-SLAM3 + RTK GPS 融合

📋 复现条件

类别必备可选 / 备注
硬件USB 摄像头 / RealSense D435i / ZED 2i · 树莓派 5 / Jetson Orin多目 (双目 SLAM)
操作系统Ubuntu 22.04 / 24.04 · ROS 2 Humble / JazzymacOS 14 (开发)
软件版本ORB-SLAM3 (latest) / VINS-Fusion · OpenCV 4.8+ · Eigen 3.4+CUDA (GPU 加速)
网络摄像头驱动支持 (UVC)
时间编译 30 min · 跑通单目 1 h · 跑通双目 2 h调参 +1 天
难度⭐⭐⭐ 进阶标定需要耐心
前置知识ROS 2 基础 · C++ · 相机模型李群 / 李代数

⛔ 别这么做 (Anti-patterns)

经验证的坑 —— 跳过 = 至少浪费半天,严重的烧板 / 锁机。

❌ 错误做法💥 后果⚠️ 风险范围
不要在没装 NVIDIA 驱动 555+ 的情况下跑 Isaac Sim 4.2+驱动不匹配 = 启动黑屏。nvidia-smi 查驱动版本。🔴Isaac Sim / Isaac Lab
不要把 OpenVLA / Octo / Pi-0 在没 4-bit 量化的状态下塞进 24GB 40907B 模型 fp16 = 14GB+KV cache → OOM。先 bitsandbytes 4-bit 加载再 fine-tune。🟡OpenVLA / Octo / Pi-0
不要在 Isaac Sim 训练 RL 时不设 num_envs 上限贪心 8192 envs = 24GB 显存瞬间爆。RTX 4090 实测 4096 envs 是甜点。🟡Isaac Lab / RSL-RL / SkyRL
不要在真机部署 VLA 之前跳过仿真域随机化sim-to-real gap 不收敛 = 99% 仿真成功率 + 0% 真机。先 DR 20% (质量 / 摩擦 / 视觉)。🔴任何 VLA 真机部署
不要把 3DGS 训练数据直接用手机 4K 视频4K 60fps 1 小时 ≈ 100GB,且相机畸变 = 训练出来模糊。先 ffmpeg 1080p + 标定。🟡3D Gaussian Splatting
不要在没 GPU 的 Linux 容器里跑 VLA 微调CPU 跑 7B = 1 步 5 分钟,1 epoch = 3 天。最低 1×RTX 4090 或租云。🔴OpenVLA / VLA 微调
不要用 MuJoCo 默认 simulator 跑 Mobile ALOHA 仿真默认 scene 没有双臂 + 移动底盘。要用 aloha_sim 官方 scene 文件。🟡MuJoCo / ALOHA

🚨 风险总览 (Risk Matrix)

风险等级含义例子
🟢 低改错可回滚 / 几分钟恢复pip 全局装包、DHCP IP 写死
🟡 中需要重新刷机 / 重装 / 1-2 小时恢复装错 ROS 2 版本、没 OTA 升级看版本
🔴 高不可逆 / 烧板 / 安全风险电池反接、micro-ROS 没看门狗、刷机中途断电

参考资料