低消費電力ロボット応用の為の FPGAコンポーネント化技術の研究開発(総務省SCOPE)プロジェクト

ROSxFPGA=OpenReroc Project

Japanese/ English

ROS準拠FPGAコンポーネントとは

ROS準拠FPGAコンポーネントとは

 近年、ロボットには自律性が求められ、制御ソフトウェアは高度化・複雑化している。こうしたロボットはバッテリー駆動が望ましく、高性能なマイクロプロセッサは搭載できないため処理性能が不足する問題がある。一方、FPGAを用いて特定のロボット向け処理専用のハードウェアを実現することで、ロボットシステムの性能向上を見込める。しかしソフトウェア開発に比べてFPGAの開発コストが高く、ロボットシステムへの導入は容易ではない。したがって本研究では、FPGAを容易にロボットシステムへ導入可能とするため、FPGAを用いたハードウェアのコンポーネント化を提案する。この際、ロボットシステムの開発支援のソフトウェアプラットフォームとして主流となりつつあるROSに準拠する。ここでは、プログラマブルSoCを用いたROS準拠コンポーネント化手法の検討を行う。そのケーススタディとしてラベリング処理をFPGAに実装したハードウェアを、ROSに準拠したコンポーネントとして扱う事例を示す。

ROS準拠コンポーネントの要求

 本研究におけるROS準拠とは、ROSにおけるPublish/Subscribe通信モデルのメッセージ形式に対応し、ほかのROSプロセスと相互に接続可能であるということと定義する。ROS準拠コンポーネントを実現する上で求められる要求を以下の2点にまとめた。

  • ROS準拠コンポーネントによる処理はROSプロセスのみで処理した場合と等しい処理結果であること
  • ROSで使用するメッセージ形式とFPGAで使用するデータ形式が統一されていること

 ROSで構成されたシステムにFPGAを導入するには、ソフトウェアのみで構成されたROSプロセスと交換した際に、機能的に等価であることが第一条件である。そのため、ROS準拠コンポーネントはROSプロセスとFPGA間の通信において、FPGAで使用するデータ形式とROSプロセスで使用しているメッセージにおけるデータ形式の統一を行う必要がある。これらの要求を満たしつつFPGAのハードウェア回路による処理性能の向上を満たすシステムを目指す。

ROS準拠コンポーネントの機能

 実現するROS準拠コンポーネントのモデルを図3に示す。上記で示した要求を元に実装すべき機能は以下の4点である。

  • FPGAを用いた処理
  • FPGAとROSプロセス間の通信を行うインターフェイスとなるROSプロセス
  • 入力データの用意を行うROSプロセス
  • 出力データの配信(他プロセスへ)を行うROSプロセス

 FPGAにおいてハードウェア化の対象となる処理は、たとえば知的画像処理などの大量の計算を必要とする処理である。コンポーネント化する上で実装するソフトウェアは大きく分けて2種類に分けられる。1種類目は、コンポーネントへの入力データを取得するプロセスと、コンポーネント外への処理結果の出力を行う2つの入出力用のプロセスである。2種類目は入出力プロセスとFPGAとのデータの整合と通信を担うインターフェイスとなるプロセスである。以上の構成にすることで、ハードウェア(HW)の処理とソフトウェア(SW)の処理が混在するHW/SW協調処理を行うシステムが構築可能となる。

図3 ROS準拠コンポーネントのモデル

出典:「プログラマブルSoCを用いた画像処理ハードウェアのROS準拠コンポーネント化」 信学技報IEICE Technical Report RECONF2015-8