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シミュレーション環境が含まれています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト