メインコンテンツまでスキップ

ROS 2 を Modalix SoM DevKit にインストールします。

このガイドを使用して、Robot Operating System 2 (ROS 2)をModalix SoM DevKitにインストールし、それが物理的なAIワークロードにどのように適合するかを理解してください。

ROS 2とは何ですか?

ROS 2は、第2世代のロボットオペレーティングシステムであり、ロボットおよび物理的なAIアプリケーションを構築するためのオープンソースのソフトウェアライブラリとツールのセットです。これは、単一のオペレーティングシステムではありません。Linux上で動作するミドルウェア層であり、センサー、アクチュエーター、知覚モデル、プランナー、コントローラーなどの独立したロボットプロセスが互いを見つけ、データを交換できるようにします。

主な機能は次のとおりです。

  • ノードベースのアーキテクチャ。 各機能(カメラドライバ、検出器、モーターコントローラ、SLAMスタックなど)は、独立したノードとして実行されます。ノードはランタイム時に構成されるため、同じ認識ノードを、非常に異なるロボット間で再利用できます。
  • DDSベースの通信。 ROS 2 は、リアルタイムのピアツーピアのパブリッシュ/サブスクライブメッセージングを実現するデータディストリビューションサービス(DDS)の標準を基盤としており、設定可能な品質(信頼性、持続性、期限、生存性)を備えています。これは、安全性が重要で時間的制約のあるロボット工学において不可欠な要件です。
  • 標準メッセージタイプ。 一般的なメッセージ定義をまとめた大規模なカタログ(sensor_msgsgeometry_msgsnav_msgsvision_msgsなど)により、異なるベンダーの知覚、計画、制御コンポーネントが、カスタムの連携コードなしで相互運用できるようになります。
  • クロスプラットフォームに対応し、リアルタイム処理に適している。 ROS 2 は Linux 上で動作し、ARM64 および x86_64 をサポートしており、リアルタイムカーネルやマイクロコントローラースタック(micro-ROS)と共存できるように設計されています。
  • 充実したツール群のエコシステム。 3D可視化のためのrviz2、システムの状態確認のためのrqt、センサーデータの記録と再生のためのrosbag2、そして宣言的なシステム起動のためのros2 launch

なぜ、ROS 2をModalix SoM上で実行するのでしょうか?

自律移動ロボット、ドローン、ロボットアーム、AMR(自律移動ロボット)、およびアクチュエーターを備えたスマートカメラなど、物理的なAIシステムは、センサー、制御、および安全のために、高い処理能力を持つニューラル推論決定的なソフトウェア基盤の両方を必要とします。Modalix SoMは、この組み合わせをサポートします。

  • 知覚処理をMLAにオフロードし、ROS 2はArmコア上で実行します。 知覚ノード(物体検出、セグメンテーション、深度、姿勢、BEVフュージョン)は、MLSoCのMLAを呼び出すことができ、ROS 2パブリッシャーは、結果を標準のvision_msgsまたはsensor_msgsとして転送します。独自のIPCは不要です。
  • 1枚のボードで、フルスタックを実現。 カメラからの画像入力、機械学習による推論、ROS 2ミドルウェア、計画、モーター制御など、すべての機能を同じModalix SoM上で実行できるため、別途のコンピューティングボードを用意する必要がなくなります。
  • 電力効率に優れたエッジ デプロイ。 Modalixのワットあたりの性能により、ドローン、AMR(自律移動ロボット)、および携帯型検査装置などのバッテリー駆動プラットフォームをサポートします。
  • eLxr Debian ベース。 Modalix SoM は、eLxr Debian をベースとしたランタイムを実行するため、標準の ROS 2 apt パッケージを問題なくインストールできます。一般的なケースでは、クロスコンパイルやカスタムの Yocto レイヤーは必要ありません。

前提条件

備考

Modalix SoM に ROS 2 をインストールするには、eLxr ランタイム上で動作する SDK リリース 2.1.0 以降が必要です。ランタイムの確認または変換については、eLxr への変換を参照してください。

また、以下のものも必要です。

  • Modalix SoM と DevKit を起動し、ネットワークまたはシリアルコンソール経由でアクセスできるようにします。
  • sima-cli が DevKit にインストールされました。
  • パッケージのダウンロードには、DevKit がインターネットに接続されている必要があります。

ROS 2 をインストールします。

sima-cli は、Modalix SoM に適切な ROS 2 ディストリビューションをダウンロードし、apt ソースを設定し、基本パッケージと標準ツールをインストールするインストーラーを提供します。

ステップ 1: sima-cli を使用して ROS 2 をインストールします。

Modalix シェルから、次のコマンドを実行します。

sima@modalix:~$ sima-cli install tools/ros2

インストーラー:

  • 必要な Debian bookworm および ROS 2 の apt リポジトリと、ROS の署名キーを追加してください。
  • SoM上でROS 2ノードをビルドおよび実行するために必要な、ビルド依存関係(cmakecolconvcstool)、QtおよびOpenCVの開発パッケージ、GStreamerプラグインセット、およびその他のライブラリをインストールします。
  • ros2colconのパッケージをインストールしてください。
  • source /usr/local/ros2/local_setup.bash/home/sima/.bash_profile に追加し、ログインするたびに ROS 2 環境が自動的に読み込まれるようにします。そして、現在のシェルでそれを実行します。
ステップ 2:インストールを確認する

sima-cli install tools/ros2の実行後、現在のシェルでROS 2環境が設定されます。ros2 CLIがパスに含まれていることを確認してください。

sima@modalix:~$ ros2

次に、2つのシェルにまたがって標準の「発信者/受信者」デモを実行し、DDSミドルウェアがエンドツーエンドで正常に機能することを確認します。

sima@modalix:~$ ros2 run demo_nodes_cpp talker

同じデバイス上で、別のシェルを起動します。

sima@modalix:~$ ros2 run demo_nodes_py listener

リスナーは、話者がメッセージを送信するたびに、I heard: [Hello World: N] メッセージを出力する必要があります。ROS 2 は、SiMa.ai の機械学習パイプラインと並行して、知覚、計画、制御ノードをホストする準備ができています。これらはすべて、Modalix SoM 上で実行されます。