NVIDIA-ISAAC-ROS/isaac_ros_visual_slam

Visual SLAM/odometry package based on NVIDIA-accelerated cuVSLAM

NVIDIA‑ISAAC‑ROS / isaac_ros_visual_slam

무엇인가요 – Jetson 또는 호환 NVIDIA 하드웨어에서 NVIDIA 가속 시각-관성 SLAM(VSLAM)을 실행하는 ROS 2 패키지입니다. 스테레오 카메라 이미지(옵션으로 IMU 포함)를 입력으로 받아 고속 오도메트리와 로봇의 내비게이션 스택에서 사용할 수 있는 맵을 출력합니다.

왜 중요한가요 – 무거운 이미지 처리 및 키포인트 매칭을 GPU로 이관함으로써, 250fps 이상에서 수십만 개의 특징점을 추적할 수 있으며, 변환 오차는 1퍼센트 미만입니다. 이는 기존의 CPU 전용 SLAM(예: ORB‑SLAM2)보다 훨씬 빠르며, 전력과 지연이 중요한 임베디드 플랫폼에서 실시간 위치 추정을 가능하게 합니다.

핵심 구성 요소

  • isaac_ros_visual_slam – 주요 노드로 cuVSLAM 라이브러리를 실행하고 /odom/map 토픽을 게시하며 루프 클로저를 통합합니다.
  • isaac_ros_visual_slam_interfaces – 노드에서 사용하는 ROS 2 메시지 정의입니다.
  • GPU 가속 cuVSLAM 라이브러리 (x86_64 및 aarch64 모두 소스에서 빌드됨).

주요 기능

  • 스테레오 시각-관성 오도메트리 – 쌍의 카메라에서 얻은 시차와 IMU 데이터를 사용해 6-DoF 운동을 추정합니다.
  • GPU 가속 특징 검출 및 매칭 – CPU 전용 방법보다 훨씬 많은 키포인트를 실시간 처리할 수 있습니다.
  • 통계적 최적화를 통한 루프 클로저 – 로봇이 이전에 맵핑한 영역을 다시 방문할 때 드리프트를 줄입니다.
  • ROS 2 네이티브 – Nav2, TF2 및 기타 ROS 2 도구와 직접 통합됩니다.
  • 벤치마크 성능 – Jetson AGX Xavier에서 프레임당 0.007초, KITTI 오도메트리 벤치마크에서 0.94%의 변환 오차를 기록했으며, ORB‑SLAM2보다 우수합니다.

주요 사용 사례

  • GPS가 사용 불가능한 실내 이동 로봇.
  • 가벼운 비전 기반 오도메트리가 필요한 드론.
  • 여러 VSLAM 스트림을 융합해 중복성을 확보하는 멀티 카메라 레지.
  • NVIDIA Jetson에서 이미 작동 중인 ROS 2 기반 플랫폼에서 LiDAR 없이 고속 자세 추정이 필요한 모든 경우.

시작하기

  1. 사전 요구 사항 – ROS 2 (humble/iron), NVIDIA Jetson (또는 CUDA 호환 x86_64 시스템), 캘리브레이션된 스테레오 카메라 쌍, 옵션 IMU.
  2. 설치 – README의 Quickstart 링크를 따라 vcs 또는 apt로 패키지를 가져온 후 colcon build로 빌드합니다. 최신 커밋(2026‑08‑18)은 아키텍처에 따라 cuVSLAM 라이브러리를 자동으로 소스에서 빌드합니다.
  3. 데모 실행 – 카메라 토픽을 예상되는 ROS 토픽에 매핑하여 제공된 런치 파일(예: ros2 launch isaac_ros_visual_slam visual_slam.launch.py)을 실행합니다.
  4. 시각화rviz2를 사용해 오도메트리, 맵, 루프 클로저 마커를 확인합니다. README에는 실시간 출력을 보여주는 GIF가 포함되어 있습니다.

제한 사항 / 주의사항

  • 성능 벤치마크는 Nova Orin 호환 시스템에서만 보장됩니다. 다른 하드웨어에서는 프레임 속도가 느릴 수 있습니다.
  • VSLAM은 충분한 시각 텍스처에 의존합니다. 특징이 부족한 장면(흰 벽 등)에서는 IMU 전용 VIO로 전환되며, 정확도가 저하될 수 있습니다.
  • CUDA 호환 GPU가 필요합니다. 순수 CPU 시스템에서는 작동하지 않습니다.
  • 루프 클로저는 통계적 방식이며, 극단적인 장기 드리프트를 처리하려면 추가적인 맵 관리가 필요할 수 있습니다.

추가 리소스

  • 온디맨드 웨비나: Pinpoint, 250 fps, ROS 2 Localization with VSLAM on Jetson.
  • README에 링크된 상세 문서 및 API 참조.
  • ORB‑SLAM2와의 비교 및 KITTI 벤치마크 결과.

위 모든 정보는 리포지토리의 README에서 직접 가져온 것으로, 외부 가정은 전혀 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트