自律移動ロボット (AMR) は、特に Analog Devices などのメーカーがロボットの移動を支援するインテリジェントなセンサーや制御システムを開発するにつれて、人気と機能がますます高まっています。この記事では、ROS2パッケージ、ADI ToFセンサー、ADI慣性測定ユニット、NVIDIA Jetson AGX Orin開発キットを使用して、ROS2搭載ロボットでAMRナビゲーションを実行する方法について詳しく説明します。
について
- このサイトは、ROS2パッケージ、 EVAL-ADTF3175D-NXZ Time of Flightセンサー、 ADIS16470慣性計測ユニット 、 NVIDIA Jetson AGX Orin開発キットを使用して、ROS2対応ロボットで自律移動ロボット ナビゲーションを実行したいロボット開発者を対象としています。
- ハードウェアとソフトウェアの要件に関する情報、個々のコンポーネントのセットアップ手順、AGX Orinキットとセンサーを接続する手順、 RTAB-Map と センサー フュージョンを使用したロボット ナビゲーションのチュートリアルが含まれています。
目次
- AMR システムの概要 には、さまざまな部分がどのように相互接続されているかを示すシステム ブロック図に関する簡単な詳細が含まれています。
- ナビゲーション パイプライン全体を実行する前に、AGX Orinキット、 EVAL-ADTF3175D-NXZ モジュール、およびADIS16470 IMUの前提条件を設定する必要があります。ROS2のセットアップと必要な依存ソフトウェア パッケージに関する情報は、 ソフトウェア要件 に記載されています。
- 将来ソフトウェアの依存関係エラーを回避するために、この手順を慎重に実行することをお勧めします。ToFのセットアップ は、 EVAL-ADTF3175D-NXZ の画像をフラッシュする標準的な方法を提供します。
- AGX OrinのUSB経由で慣性計測ユニット ADIS16470 を接続するには、追加の接続が必要です。IMUのセットアップでは、ADIS16470の具体的なセットアップ手順が説明されています。
- 「TofとAGX Orinのインターフェイス」の手順に従うには、AGX OrinでEVAL-ADTF3175D-NXZからのIRおよび深度データにアクセスできる必要があります。ROS2ソフトウェア スタックとの統合を簡単にするために、このデータはROS2トピックとして提示されます。
- 同様に、 「ImuとAGX Orinのインターフェイス」 の指示に従うことで、ADIS16470 IMUデータにROS2トピックでアクセスできます。
- AMRが自律航行を行うには、周囲の地図を作成することが重要です。私たちのケースでは、よく知られているRTAB-Mapアルゴリズムを使用して、Time-of-Flightセンサー データからマップを作成しました。RTAB-MapライブラリはROS2パッケージとして利用できます。RTAB-MapがEVAL-ADTF3175D-NXZセンサーでのみ動作するかどうかを確認するには、 TOFとRTABMAPのインターフェイス の手順に従ってください。
- AMRでのTOFを使用したナビゲーション チュートリアル と AMRでのTOFを使用したセンサー フュージョンとナビゲーション チュートリアル はどちらも、EICが開発したAMRで実行される自律ナビゲーションに関する包括的なチュートリアルを提供します。このAMRはAGX Orinによって制御されており、外部センサー EVAL-ADTF3175D-NXZ と ADIS16470 が接続されていました。
- 独自のカスタムAMRをお持ちのお客様は、 「NON-EIC AMRの操作」 に、このガイドに記載されているシステムとAMRを統合する方法に関する特別なガイドが記載されています。このセクションでは、このシステムをニーズに合わせてカスタマイズできるようにするためのソフトウェアの変更についても説明します。
概要システム
- 図1 は、ToFに基づくAMRナビゲーションシステムの高レベルシステムブロック図を示しています。ソフトウェア スタック全体は、Robot Operating System (ROS) を使用して設計されています。私たちのAMRでは、AGX Orinキットがコア プロセッサとして機能し、その上でDocker経由ですべてのROS2 Humbleノードが実行され、AMRの動作が制御されました。外部センサーとして、EVAL-ADTF3175D-NXZと ADIS16470 をAGX Orinに接続しました。EVAL-ADTF3175D-NXZ には、センサー ドライバーとROSノード パッケージを含むI.MX8組み込みボードが搭載されています。AGX OrinにUSB接続され、すべてのトピックをROS1形式で公開します。

AMRナビゲーションシステムブロック図
- このシステムはROS2で開発されたため、AGX Orin内のros1ブリッジ パッケージを使用して、ToFのROS1トピックをROS2に移植しました。ナビゲーションに使用されるその他のROS2 Humbleノードには、RTAB-Mapノード、ROBOT LOCALIZATIONノード、NAV2ノード、IMU Driverノードがあり、上図に示すようにROS2 Humble Dockerコンテナ内で実行されています。
- EICが開発したAMRでは、低レベルのモーター制御とホイール オドメトリがマイクロROSエージェントを使用して処理されました。Jetson AGX Orinでは、シリアル インターフェイスを介してマイクロコントローラと通信するmicro-ROSエージェントが実行されていました。さらに、マイクロコントローラはJetsonからの制御信号をモーター ドライバーに送信し、ホイール エンコーダのフィードバックをJetsonに提供します。この設定は、EICが開発したAMRにのみ適用されます。カスタムAMRの場合、低レベルのモーター制御とホイール エンコーダ フィードバック メカニズムを処理するためのセットアップが異なる場合があります。詳細についてはブログを参照してください: ここをクリック
注: RTAB-Mapは、SLAM (Simultaneous Localization and Mapping) アルゴリズムを利用するために、外部オドメトリを入力として受け取ります。EICが開発したAMRでは、外部走行距離測定ソースとしてホイール走行距離測定を使用しました。ROBOT_LOCALIZATION (EKF) パッケージを使用してIMUデータとホイール オドメトリを組み合わせることで、センサー フュージョンを使用してオドメトリを改善しました。