クロス・エンボディメント ナビゲーションシステム

Library

概要

Cross-Embodiment-Navigation は、ROS Navigation スタックをベースにグローバル経路計画とローカル避障/追従制御の両方を提供する、クロスプラットフォーム向けナビゲーションソリューションの骨子を示すリポジトリです。主に ROS Noetic(Ubuntu 22.04)環境を想定し、C++14 で実装されたコンポーネントやサンプル設定を備えています。リポジトリはグローバル側とローカル側の分離されたディレクトリ構成により、異なる車体やセンサ構成(エンボディメント)に合わせたパラメータチューニングやプラグイン差し替えを容易にしています。ドキュメントや画像も含み、実機統合時の出発点として利用できます。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 2
  • ファイル数: 6
  • メインの言語: CMake

主な特徴

  • ROS Navigation フレームワークに基づくグローバル/ローカルナビゲーションの分離設計
  • 異なるロボットエンボディメント(車体・センサ構成)への適用を想定したパラメータ化
  • ROS Noetic / Ubuntu 22.04 / C++14 の組み合わせでの動作を想定
  • サンプル設定・画像を含み、実機統合のベースとして利用可能

技術的なポイント

本プロジェクトは、ROS Navigation の設計思想に沿って「経路計画(global)」と「局所制御(local)」を明確に分離している点が特徴です。グローバル側は地図(map)を用いた長距離経路生成を担い、ローカル側はセンサ情報(LIDAR/レーザースキャンやオドメトリ)に基づく障害物回避とコマンド生成を担当します。ROS の標準トピック(/map, /odom, /scan, /cmd_vel)やアクション(move_base 等)を前提に設計されており、プラグイン可能なプランナーやコントローラを差し替えて使える作りになっています。

「クロス・エンボディメント」とは、異なる物理的構成を持つロボット間で同一のソフトウェアスタックを再利用する考え方です。本リポジトリでは、フットプリント、センサ配置、速度制約、コストマップの解像度やインフレーションパラメータなどを設定ファイル化し、エンボディメントごとの設定差分を容易に管理できるようにしています。これにより、ホイールベースや旋回半径が異なる台車、センサ種別が異なるプラットフォーム間で最小限のチューニングで動作させやすくなります。

実装面では C++14 ベースのノードや CMake によるビルド構成が用意され、ROS Noetic(Python2→3 の移行や各種依存の整合)に対応する形でパッケージ化されています。加えて、go_ros_sdk といった名前のファイルが含まれていることから、Go 言語での ROS 連携や補助ツールを想定した SDK も併用の余地があることを示唆します。ドキュメントと画像はセットアップや挙動確認に便利で、実機へ組み込む際の参照資料として有用です。

全体的に、実装済みの「完成品」よりも、移植・統合のためのテンプレート/参照実装として位置づけられており、ロボット固有の制御ロジックやプランナー最適化はユーザ側で拡張・調整していく前提の構成です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • NavigationGlobal: dir
  • NavigationLocal: dir
  • README.md: file
  • go_ros_sdk: file
  • images: dir

…他 1 ファイル

まとめ

ROSベースの移植性重視ナビゲーションの参照実装として有用。

リポジトリ情報:

READMEの抜粋:

🤖 Cross-Embodiment Navigation System

A Cross-Embodiment navigation solution based on the ROS Navigation framework, featuring both global and local navigation options, designed for easy integration into your robot platform.

ROS Ubuntu C++