UniflexAI/tinynav

TinyNav: A lightweight, hackable system to guide your robots anywhere.

해결하는 문제

TinyNav는 로봇을 환경 내에서 안내하도록 설계된 가볍고 해킹 가능한 내비게이션 시스템입니다. 다양한 로봇 플랫폼과 하드웨어 칩에 대해 견고한 실시간 내비게이션, 매핑 및 위치 추정을 제공하는 동시에, 프로토타이핑과 커뮤니티 기여를 쉽게 하기 위해 코드베이스를 컴팩트하게 유지하는 과제를 해결합니다.

작동 방식

시스템은 Python 및 C++ 컴포넌트로 구성된 모듈형 파이프라인으로 구성됩니다:

  • Perception Node: 센서 데이터(RealSense 또는 Looper와 같은 스테레오 카메라 데이터 등)를 처리하고 IMU-visual 융합을 통합하여 위치 추정 및 피치 각도 정확도를 향상시킵니다.
  • Map Node: 환경 지도를 구축하고 유지 관리하며, 고품질 시각화 및 정확한 POI 배치를 위한 3D Gaussian Splatting (3DGS)과 같은 표현을 지원합니다.
  • Planning Node: 지도 및 인식 데이터를 사용하여 최적의 경로와 궤적을 계산하며, ESDF 기반 장애물 회피를 사용하여 장애물로부터 안전한 거리를 유지합니다.
  • Control Node: 로봇을 구동하기 위한 최종 제어 명령을 전송합니다.

성능은 Jetson Nano와 같은 플랫폼에서 저지연 추론을 위한 CUDA Graph 최적화, 속도를 위한 Numba JIT, 그리고 동시 모델 추론을 위한 asyncio를 사용하여 최적화되었습니다.

대상

다양한 로봇 플랫폼(예: Unitree GO2, LeKiwi) 및 다양한 컴퓨팅 플랫폼(Jetson Orin, RK3588, 데스크톱)을 지원하는 유연한 내비게이션 스택이 필요한 로봇 개발자 및 연구자.

주요 특징

  • 컴팩트한 코드베이스: 명확성과 사용 편의성을 위해 약 2,000행의 Python 코드로 작성되었습니다.
  • 멀티 플랫폼 지원: Unitree GO2 및 LeKiwi 로봇을 즉시 지원합니다.
  • 고급 매핑: 지도 표현 및 편집을 위한 3D Gaussian Splatting 통합.
  • 하드웨어 최적화: CUDA Graphs를 통해 NVIDIA Jetson 및 기타 가성비 높은 칩에 최적화되었습니다.
  • C++ 백엔드: 성능이 중요한 작업은 바인딩이 포함된 C++ 백엔드에서 처리됩니다.
  • 시뮬레이션 지원: 테스트를 위한 Gazebo 시뮬레이션 환경이 포함되어 있습니다.

관련

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