みなさんこんにちは。私達、九州工業大学 大学院 生命体工学研究科の脳型計算機システム研究室、および、ロボットプロジェクトチーム Hibikino-Musashi@Home では、普段、FPGA をニューラルネットワークに応用するための基礎研究から、ホームサービスロボットや自動運転車等の応用研究まで、幅広い研究分野に取り組んでいます。
本コースでは私達が取り組んでいるホームサービスロボットの事例を参考に、FPGA をロボットのような大規模なシステムの中でどのように活用できるか考えていきたいと思います。今回はその前提として、ホームサービスロボットとは何か、ロボットが抱える問題とはどのようなものかをご紹介します。
ホームサービスロボットと競技会
ホームサービスロボットとは、家庭や店舗など人間の生活空間で働き、人間の負担を減らすロボットのことです。これらのロボットは家庭で片付けをしたり、店舗でウエイターとして働くなど、人間と同じように幅広い仕事をすることが求められます。
下記の動画はその一例で、ロボットがレストランを模した環境でウエイターとして働く様子です。近年では少子高齢化社会の影響から、ホームサービスロボットをはじめとするロボットの需要が大きく伸びると予想されています。まだまだ研究段階ですが、まずは是非、下記動画をご覧ください。
ホームサービスロボットは人間と同じように仕事を行うため、人間の機能に対応したハードウェアを備えています。またロボットは家庭や店舗などの広い空間を縦横無尽に動く必要があるため、バッテリーで駆動します。そのためロボットはできる限り低消費電力で稼働できることが望ましいです。
このようなホームサービスロボットのベンチマークとなる競技会として、RoboCup@Home や World Robot Challenge があります。これらの競技会には棚の整理や人の案内などホームサービスロボットに求められるタスクが用意されており、タスクの達成度によりロボットの性能を評価します。
私たちのチーム Hibikino-Musashi@Home では オリジナルロボットの Exi@、標準ロボットである TOYOTA Human Support Robot (HSR) と呼ばれる2台のロボットを開発し、これらの競技会へ出場しています。 近年は、世界の強豪チームを相手に世界大会3度の優勝を含む好成績を残しています。
ホームサービスロボットの要素技術
ホームサービスロボットには様々な要素技術が実装されており、複数の要素技術の組み合わせでいくつものタスクを実現しています。
この節ではロボットに搭載されている、特にソフトウェア実装された要素技術の一部について紹介します。これらの処理はロボットに搭載されている、CPU や GPU を内蔵した PC で処理されています。
ステートマシン
ホームサービスロボットには、多様な機能が搭載されています。しかしロボットの計算リソースは限られているので、状況に応じてこれらの機能を開始・終了する必要があります。これを実現するのがステートマシンです。ステートマシンではロボットの状態を監視し、ロボットの現在の行動に応じて適宜機能を開始・終了します。
現状、ロボット搭載のコンピュータの計算リソースは限られており、全てのソフトウェアを並列に走らせることは不可能です。計算リソースの制限から、ある意味、仕方なくステートマシンで動作ノードを管理しつつ少ない計算リソースをやり繰りしている現状です。
物体検出・物体認識
物体を掴んだり置いたりするためには、まず物体がどこにあるかを知らなければなりません。これを実現するために、ロボットには物体検出機能や物体認識機能が搭載されています。物体検出機能では、いくつもの物体が同時に映っている画像 (シーン画像) から、物体が「どこ」にあるか調べます。また物体認識機能では、見つけた物体が「何」であるかを推定します。
近年これらの処理には深層ニューラルネットワークが良く使われており、ロボットに搭載されたコンピュータのリソースを多く消費してしまうため、これらに関わる処理負荷の削減が必要です。
人物検出・人物追従
人物を検出して、その人物を追いかける機能です。人を追いかけるためには、ロボットの制御に間に合うほど高速に人物を検出する必要があります。私たちの手法では、深度カメラと Laser Range Finder (LRF) スキャンデータを組み合わせて人物を検出し、ロボットを制御して人物を追従します。
音声認識・音源定位
音声認識とはロボットのマイクへ入力された「声」の音データを、ロボットが解析できるように「テキスト」のデータに変換する処理です。
私たちのチームでは、インターネット上のソフトウェアを用いて解析 (クラウドコンピューティング) しています。この手法には、インターネットの無い環境での動作に不具合が生じる問題があります。 音源定位とは、ロボットが声をかけられた際、ロボットから見てどの方向から声をかけられているのかを推定する機能です。
SLAM とナビゲーション
ロボットが店舗や家庭で動作をするためには、部屋の配置や家具等の障害物の情報 (環境地図) を事前に知っておく必要があります。 SLAM (Simultaneous Localization and Mapping) とは環境地図を生成し、ロボットが生成した環境地図中のどこにいるか推定する (自己位置推定する) 技術のことです。また、ナビゲーションとは SLAM で得た環境地図や自己位置情報を基に、自己位置から目的地までのルートを探索し、環境内を移動する技術です。
これらの技術はホームサービスロボットに限らず、近年実際に家庭で活躍するお掃除ロボット等にも搭載されています。一方で計算量が多い処理であることも知られており、これらの処理を高速化する手法が求められています。
ホームサービスロボットに搭載されている技術の問題点と FPGA の利点
これまで紹介してきた通り、ホームサービスロボットには様々な要素技術が搭載されています。しかし、現在のホームサービスロボットやその要素技術には下記のような問題点があります。
- バッテリー駆動であるため、出来る限り低消費電力であることが望ましい。
- 計算量が非常に多いため、ロボット上の計算リソースは常に不足している。
- ロボットの制御周期に間に合う高速処理が必要である。
- クラウドコンピューティングでは、インターネットの無い環境での動作に不具合を生じるため、ロボット側で処理を実施する必要がある (エッジコンピューティング)。
これらの問題点を解決するために、私たちは FPGA に着目して研究を進めています。ホームサービスロボットに搭載されている要素技術の一部を FPGA へ実装し、計算負荷をオフロードすることで、下記のような利点を実現できます。
- PC や GPU に比べて低消費電力で稼働可能である。
- 様々な知的処理を FPGA へオフロードすることで、ロボット上の計算リソースを開放することができる。
- CPU や GPU に比べて高速処理(低レイテンシ、高スループット)を実現可能である。
- 以上の利点を、クラウドコンピューティングに頼らずロボット側 (エッジ側) の処理として実現可能である。
まとめ
本コースでは、ホームサービスロボットでの FPGA の応用事例について紹介します。
今回はホームサービスロボットの紹介や、その問題点について紹介しました。次回からはホームサービスロボットのシステムと FPGA を接続する手法や、ここで紹介した要素技術の一部を FPGA へ実装する手法についてご紹介します。
九州工業大学大学院生命体工学研究科
准教授 田向 権 (Hakaru Tamukoh)、Hibikino-Musashi@Home