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シミュレーション環境が含まれています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト