前回は FPGA の応用先であるホームサービスロボットを紹介しました。また、FPGA を応用することによるメリットを述べました。
今回は、ロボットのシステムの核となる ROS と FPGA の統合方法について紹介します。
ロボットと FPGA の統合に対する要求
ロボットと FPGA の統合に対する要求を以下に挙げます。
- ロボットに既に搭載される計算機・ソフトウェアシステムと簡単に統合できること
- その計算機の負荷をオフロードできること
- その計算機より高効率 (高速処理・低消費電力) であること
1点目は、ロボットには既に CPU が搭載されており、その上に何かしらのソフトウェアシステムが構築されています。特にホームサービスロボットでは、一般的な PC の上に、OS として Ubuntu・ロボット向けのミドルウェアとして Robot Operating System (ROS) を基にしたソフトウェアシステムが構築されています。これらと簡単に統合出来なければ、ロボットエンジニアにとって FPGA に対する技術的障壁が高くなってしまいます。
2点目は、ロボットに FPGA を統合することで、ロボット上で常に不足している計算リソースを拡充し、負荷を分散できなければなりません。
3 点目は、ロボット上の計算リソースを拡充するにあたり、既に搭載されている計算機より効率が良くなければ意味がありません。
ROS と FPGA の統合その1
方法の紹介
今回は、上で述べた要求を考慮した ROS と FPGA の統合方法[1]について紹介します。以下に図示するこの方法は、ホームサービスロボットに搭載される PC (図左の青ブロック) に対して hw/sw 複合体 (hw: FPGA、sw: CPU 、図右の緑ブロック) を統合することを提案しています。
前回紹介した通り、ロボットの知的処理はセンサの情報を符号化し (認知)、それを基に次の行動を考え (判断) 、アクチュエータを操作 (制御) します。ロボットに FPGA 単体ではなく hw/sw 複合体を統合するメリットとして、sw (CPU) でデバイスをドライブし、hw (FPGA) で情報を処理出来ることが挙げられます。これにより、FPGA へ実装する処理を絞ることで開発工数が低減したり、知的処理の入力から出力まで全ての負荷をオフロードすることができます。
またこの方法では、hw/sw 複合体内の通信や ROS と hw/sw複合体の通信に対して、Object と呼ばれるモジュールを提供します。各種 Object がコントローラの指示により動的に組み込まれることで、ROS ユーザは hw/sw 複合体の内部動作を意識することなく、FPGA 内に構築された知的処理回路を自分のロボットシステムへと導入することが出来ます。
その効果
上で述べた方法で、前回紹介した人物検出・追従を実現した例とその効果を紹介します。
この例では、(1) RGB-D カメラから得た Depth 画像に対して、(2) 特徴抽出と機械学習による人物・非人物の判別を行い、その結果を基に (3) 移動台車の制御を行っています。 (1) (2) は hw/sw 複合体にオフロードされており、特に特徴抽出と機械学習は FPGA に実装されています。なお、hw/sw 複合体には Xilinx Zynq-7020 SoC を使用しています。
PC Core i5-5200U 2.2GHz | Proposed ARM Dual Core 667MHz + FPGA | |
Frame Rate [fps] | 29.06 | 17.25 |
Power [W] | 26 | 4.7 |
Efficiency [fps/W] | 1.12 | 3.69 |
表に PC と hw/sw 複合体による人物検出・追従の性能比較を示します。
この例では残念ながら hw/sw 複合体内の通信がボトルネックとなりフレームレートが低下していますが、単位電力当たりでの性能ではおよそ3倍効率が上がっています。また、人物検出・追従を行うにあたって PC の CPU 使用率を50%程度 hw/sw 複合体にオフロードできることを確認しました。
まとめ
今回は、ロボットと FPGA の統合方法の1つを紹介しました。これは、ロボットと FPGA の間の通信インタフェースを提供することで、簡単にシステム構築ができる方法でした。
次回は、今回の方法とは異なるロボットと FPGA の統合方法を紹介します。
九州工業大学大学院生命体工学研究科
准教授 田向 権 (Hakaru Tamukoh)、Hibikino-Musashi@Home
参考文献
[1] Yutaro Ishida, Takashi Morie and Hakaru Tamukoh, “A hardware intelligent processing accelerator for domestic service robots,” Advanced Robotics, Vol. 34, Issue 14, pp. 947-957, June 2020.