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 模擬環境。
相關
- 專案
- 專案
- 專案
- 專案
- 專案