目的:
クラウド処理、エッジサーバ・エッジデバイス処理、CPU処理、FPGAやGPUなど異種の処理システムを統合的に取り扱い、適正な機能分割、性能シミュレーション、更にFPGAも含めた異種処理システムごとの実装コードを自動生成する異種処理システム統合モデルベース設計手法・環境を提案・構築すること。
内容:
モデルベース設計開発においては、モデルと実装の乖離(抽象度のギャップ)が問題である。これに対し本研究では、研究代表者の独自技術である「FPGAコンポーネント技術」(*1)をベースに、FPGAを再利用・相互運用可能なコンポーネント(部品)として扱うことにより、FPGAをモデル上の部品として利用とする。すなわち上流の設計段階におけるFPGAの「機能モデル」「性能モデル」に基づくシステム全体構成の検討を可能とし、知的なロボットのような性能・電力等の要求が厳しいシステムの設計生産性を大幅に向上する。
提案方式を図1に示す。図の上半分には抽象的な処理・通信モデルであり、知的ロボットシステムが多くの処理部品から構成され互いに通信して全体の機能を構成する様子を示した。ROS/ROS2に倣って、定常的なデータフローと制御フロー(散発的サービス呼び出し) からなるモデルを想定する。複雑なロボットシステムが安全・確実に動作するためにはロボットが置かれる実世界の時間制約が、画像・センサ入力とモータ駆動出力の間で満たされる事を検証する必要がある。すなわち脊髄反射的な制御(PID制御など)はマイクロ秒程度のオーダ、AI的な推論を含む高度な知的処理はミリ秒程度のオーダの最大遅延要求がある。これらの制約を抽象的なモデルの段階で指定し、制約を満たす具体的なモデル・実装を生成する。
更に、エッジデバイスだけでは計算能力が不足する場合は、エッジ・クラウドのサーバへ当該処理を配置する、もしくはエッジデバイスやエッジ・クラウドサーバにDSA/GPU/FPGAといった処理加速のハードウェアを導入した場合の性能・電力予測をすることで解決策を示す。このように、モデル駆動開発の中にFPGA等のハードウェア処理を含むことを可能とする事によって、従来のシステム設計・開発では困難な、広大な設計空間を探索しヘテロジニアスな処理システムの全体を見渡した上での最適な機能分割と処理配置が可能となる。
図1
*1 FPGAをROSベースであるPublish/Subscribe通信を用いた疎結合の処理システムノードとする「FPGAコンポーネント技術」
知的ロボットソフトウェアの高度化・複雑化に伴い、ロボット本体における高速・高度なエッジ処理と、クラウドにおける更に高次な認知判断を統合するためのシステム開発技術が求められている。高速・高度なエッジ処理の実現のためには、FPGA(Field Programmable Gate Array)を用いたハードウェアによる処理の高速化・低消費電力化が期待されている。 一方、ロボットソフトウェア開発の複雑さを緩和するため、エッジ・クラウドを含む抽象度の高い処理モデルからのシステム自動生成技術が必要とされている。
POINT: 本研究は、高性能なFPGA回路を部品化する独自のFPGAコンポーネント技術を用いることで、処理モデルからの高性能ロボットシステムのハードウェア・ソフトウェア処理システムの自動生成を可能とする。ひいては、知的ロボットシステムをモデル駆動で開発する環境を実現し知的ロボットの高度化に貢献する。
本研究では、具体的な技術課題として下記3項目の提案・評価を行う。
(A)ハードウェア・ソフトウェアを含む多くの異種の処理環境を適切にモデル化する方法
(B)上流設計における抽象度の高いモデルでの性能シミュレーション方法
(C)モデルから実装を生成することが可能な自動化設計手法
(A) モデル化の(A-1) 機能要件については、各ロボットソフトウェア部品の処理モデルに対して、入力・出力データのインターフェイス型と内容を定義する。また、(A-2) 非機能要件については、性能、消費電力に関するパラメータを定める。これらを (A-3) 異なる処理環境 (CPU, FPGA等)で処理した場合の性能情報、について定義し最適な処理配置を導出する。
(B) 性能シミュレーションについては、提案するモデルの機能・性能評価を行うために、(A)のモデルを対象としたシミュレータを開発する。一般に、精度とシミュレーション時間はトレードオフの関係であるため、まずは(B-1) 粗い精度での性能シミュレーションを可能とする。一方、実装コードをもとにした(B-2) 細かい粒度の機能・性能シミュレーションを、粗い粒度の場合と同様に行える様にする。
(C) 自動化設計手法については、まずは出力を(C-1) 通常のソフトウェアとしてモデルからの実装生成を行うシステムを開発する。次に、モデルから(C-2) FPGA回路の生成を行えるようにする。これは、これまでに開発してきたROS準拠FPGAコンポーネントのための自動生成ツールをベースとして、Xilinx社の高位合成 (HLS)ツールVivado HLSに入力可能なC/C++言語での実装を生成する事を第一の手段として検討する。最終的に、 (C-3) ヘテロジニアスなシステム全体の生成を行う。ソフトウェア単体もしくはFPGA単体の生成に加えて、ソフトウェアとFPGAの間の通信(メッセージ通信) を生成することでシステム全体の統合を自動化する。
各研究開発項目の評価においては、提案する方式やツールの機能・性能面での評価に加えて被験者実験による主観評価を併せて行い、実際に使用される技術となることを目指す。
研究体制:
(1) モデルベース(モデル駆動)設計、 (2) 知的ロボット応用、 (3) プログラミング言語・高位合成、 (4) 産業ロボット応用、 (5) 組込みシステム設計、については其々の分野のエキスパートに協力を仰ぎ、情報交換しつつ研究を進める。
研究代表(大川)のコメント
AI (Artificial Intelligence) の一般化にともない、クラウドと接続され全体として高度な処理を行う知的ロボットのソフトウェアの複雑度の増加に対し、モデルベース設計手法を使う事が、設計の明確化、デバッグや検証の容易化、コンポーネントの再利用のために必須である。
その流れの中で、近年ROS (Robot Operating System) や、ROSの次世代バージョンであるROS2といったロボットソフトウェア開発フレームワークの採用が盛んである。ROS/ROS2普及の本質は、AIソフトウェアを含むロボットソフトウェアをインターネット経由で入手し、自分の手元のPC環境ですぐに動かすことができるという、ソフトウェア部品のポータビリティ・再利用性向上である。すなわち、ROSはソフトウェアを部品化 (コンポーネント化) して通信により疎結合するPublish / Subscribe通信による処理モデルを採用することでシステムを構成する各部品の再利用性を向上し、ロボットソフトウェアシステムの開発の複雑度を緩和したことが、ソフトウェアシステムの観点における本質的な進歩であると考えられる。
一方、多様なアプリケーションにおける処理エネルギーの効率を向上するために、汎用マイクロプロセッサに加えてGPU (Graphics Processing Unit) や、ニューラルネットワーク処理加速のための専用ハードウェア・DSA (Domain Specific Architecture)・ FPGA (Field Programmable Gate Array) などを活用することが求められている。特に知的なロボットの実現が期待される組込みシステムの処理環境においては、性能・電力の要求は厳しい。
この要求を満たすべく、ソフトウェアと協調したFPGAを使ったシステムの最適設計手法を基本テーマとし、FPGAをROSのベースであるPublish / Subscribe通信を用いた疎結合の処理システムノードとする「FPGAコンポーネント技術」を確立してきた。
今後さらに、最初に記したように、知的ロボットのシステム設計者は、これらのヘテロジニアス(異種)な処理環境をクラウド処理も含めたシステム全体レベルの視点から見て、上流の設計段階でアプリケーションプログラムの要求に応じて最適な機能分割を行った上でシステムの構成や処理配置を決めることが求められる。
リンク: 「知的ロボットシステムのためのモデル駆動FPGA設計環境」(研究代表:大川猛)
参考文献:
[1] Takeshi Ohkawa, Takashi Yokota, Kanemitsu Ootsu, “A prototyping system for hardware distributed objects with diversity of programming languages design and preliminary evaluation,” 2013 International Conference on Field-Programmable Technology (FPT), pp.474-477, 2013.
[2] Kazushi Yamashina, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota, “Proposal of ROS-compliant FPGA Component for Low-Power Robotic Systems,” FPGA for Software Programmer (FSP) 2015 c/w FPL2015, CoRR abs/1508.07123, 2015.
[3] Yuhei Sugata, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota, “Acceleration of Publish/Subscribe Messaging in ROS-compliant FPGA Component,” Pro. of the 8th Intl. Symp. on Highly Efficient Accelerators and Reconfigurable Technologies (HEART 2017), pp.1-6, 2017.
[4] Takeshi Ohkawa, Kazushi Yamashina, Hitomi Kimura, Kanemitsu Ootsu, Takashi Yokota, "FPGA Component Technology for Easy Integration of FPGA into Robot Systems," IEICE Transactions on Information and Systems, Vol.E101-D, No.2, pp.363-375, Feb. 2018.
[5] Takeshi Ohkawa, Kazushi Yamashina, Takuya Matsumoto, Kanemitsu Ootsu, Takashi Yokota, “Automatic Generation Tool of FPGA Components for Robots,” IEICE Transactions on Information and Systems, Vol.E102-D, No. 5, pp.1012-1019, 2019.
[6] Takeshi Ohkawa, Yuhei Sugata, Harumi Watanabe, Nobuhiko Ogura, Kanemitsu Ootsu, Takashi Yokota, “High level synthesis of ROS protocol interpretation and communication circuit for FPGA,” Proceedings of the 2nd International Workshop on Robotics Software Engineering, RoSE@ICSE 2019, Montreal, QC, Canada, May 27, 2019, pp.33-36 2019
[7] Takeshi Ohkawa, “Component-based FPGA Development for Intelligent Robotics,” 2019 International Workshop on Smart Info-Media Systems in Asia (SISA2019), pp. 11-18, 2019.
[8] Takeshi Ohkawa, Ikuta Tanigawa, Mikiko Sato, Kenji Hisazumi, Nobuhiko Ogura, Harumi Watanabe, "Prototype of FPGA Dynamic Reconfiguration based-on Context-Oriented Programming," 13th IEEE International Symposium on Embedded Multicore/Many-core Systems-on-Chip, MCSoC 2019, Singapore, Oct. 1-4, 2019, pp.116-122, 2019.
[9] Daniel Pinheiro Leal, Midori Sugaya, Hideharu Amano, Takeshi Ohkawa, “FPGA Acceleration of ROS2-Based Reinforcement Learning Agents,” 8th International Workshop on Computer Systems and Architectures (CSA'20) held in CANDAR’20, Nov. 24-27, 2020, ONLINE), <<Accepted as Regular presentation>>, 2020.