ROS連携概要

My-IoTでは、GitHub, Inc.によって提供されているソフトウェア開発プラットフォームである GitHub や、ROS Buildfarmとの連携を実施し、ROSプログラムのビルドおよび配信を行います。
GitHubは、GitHub, Inc.によって提供されているソフトウェア開発プラットフォームです。My-IoTでは、ビルドするROSプログラムのソースコードをホスティングするために利用しています。
ROS Buildfarmは、ROSプログラムをビルド、およびリリースするためのインフラストラクチャで、 Open Robotics によって提供されています。ROS Buildfarmについての詳細は、 ROS 2 Documentation を参照してください。

My-IoTにおけるROS連携の流れを下記に示します。

ros01

  1. 開発者は、GitHubにソースリポジトリとリリースリポジトリを作成します。
    また、ROSプログラムのソースコードをソースリポジトリにpushします

  2. 開発者は、My-IoTにエッジプログラムとしてROSプログラム情報を登録します

  3. ROSプログラム情報の登録後、リリース準備のためソースリポジトリをcloneし、リリース準備が行われます。リリース準備が完了すると、自動的にリリースリポジトリへpushが行われます

  4. ROS Buildfarmへリリース情報を伝えるため、ROSプログラムの公開情報が記載されているROS distroリポジトリがforkされます。リリースするROSプログラムの情報を追加し、ROS distroリポジトリにPull Requestが送信されます

  5. ROSのメンテナーによってPull Requestが承認されると、ROS Buildfarmで自動的にROSプログラムのビルドが行われます。ビルドが完了すると、ROSのaptリポジトリへ反映されます

  6. My-IoTでは定期的にビルド状況の確認が行われます。ROS Buildfarmによるビルドの完了を確認すると、My-IoTに登録したROSプログラムの配信が可能になります

My-IoTエッジにROSプログラムをインストールする際は、My-IoTからROSプログラムのパッケージ情報が渡され、公開済みのaptリポジトリからインストールされます。