カエデ自動機械

ちょっとしたものづくりや電子工作のメモなど。技術開発とは今は呼べないかな。

(論文メモ)Swarm Robotics : An Extensive Research Review

引き続き自宅で論文を読んだ時のメモ。

私はどちらかというと理論より実験、そしてそれ以前に研究よりものづくりが好きなので、論文を読んで面白いことはあまりなくて、むしろCADで次に作りたいロボットの形状を妄想している方が好きなのですが・・・

事情あって少し勉強(というのかな)をしています。

ものづくりが好きと言っても、あくまで趣味的な興味の話で特に専門性は無いので、選り好みせず色々やっていこうと思います。(機械工学修士とはいえ、お恥ずかしながら何も無い・・・)

前回に引き続き、群制御やマルチエージェントシステムのレビュー論文です。
マレーシアのMonash Universityから、Yogeswaran MらによるSwarm Robotics : An Extensive Research Reviewという論文を読んでいきます。

全く触れたことが無い分野ですので、2報くらいはレビュー論文を読んでみようと思っています。

原論文

元の論文はフリーアクセスで、以下から入手可能です。
www.intechopen.com


導入

群ロボット(分散制御型)のメリットは以下のようなものがある。

  • 並列性:複数のロボットによりタスクを分割し実行することで、単一ロボットより迅速にタスク達成が可能。
  • ロバスト性:いくつかのロボットに不具合が起こっても機能を損なわない。
  • 拡張性:ロボットの数が増えるほど、中央集中型制御に比べ有利。
  • 異種同居性:複数種類のロボットをグループに組みこみ、それぞれの長所を生かせる
  • 柔軟性:様々な任務に応じて求められる機能・性能を群により発現させることができる。
  • 複雑なタスク:単一のロボットで実施するには複雑すぎる任務をこなすことができる。
  • 安価な代替手段:単一の高価なロボットよりも複数の安価なロボットの方がトータルで低コストで済む

これまで様々なレビュー論文でこの分野に関する研究の概況が総括されてきたが、本稿ではParker(2003)に倣い、各論文における主要なトピック、すなわち研究の軸に応じて分類した。
研究の軸は、生物模倣、通信、制御、地図作成と自己位置推定、物体運搬、物体操作、自己再構築型ロボット、動作協調、学習、そしてタスク分担など。

研究の軸

生物模倣

群ロボットにおいて生物模倣という概念は重要で、アリ、動物、魚、人間等、様々な動物の群れとしての振る舞いが参考とされてきた。これらの群れはすべて局所的な通信とそれに基づく情報取得しかできないのにもかかわらず、群全体としては知性的な行動ができることで知られる。

特に、社会性を持つ昆虫の研究が盛んにおこなわれており、アリの行動を参考にした、フェロモンを用いた通信を実装した群ロボットの研究等がなされている。フェロモンを用いて環境を介した通信を行うことで、ロボット一機一機を(通信機が要らないから?)よりシンプルな構造にできる。

その他、ハイイロオオカミの社会行動を模した行動や学習が可能な群ロボットシミュレータ、人の行動を模擬した、洗練されたチームワーク構造を有するロボットシステムの研究も進められた。これらの高度な群の場合、アリの集団と異なり、各個間の関係性、各個の感情、認知状況、学習状況等が反映される。

そのような洗練されたチーム行動の例としてほかに、ロボカップ(サッカー?)の事例が挙げられる。これは自律エージェント、マルチエージェント協調、戦略獲得、リアルタイム推論、ロボティクス、センサフュージョン等の各種技術を育成するための試みである。

通信・コミュニケーション

移動ロボットにおいて通信やコミュニケーションといった問題は最も重要な問題の一つであり、何らかの協調によりタスクを遂行したいのならば、それに参加するエージェントは必ず何らかの通信を行う必要がある。

その通信の作法には様々な議論があるが、よくあるのは暗黙的・間接的な通信方式と明示的・直接的な通信方式にカテゴリ分けするやり方である。前者は環境を介して通信を行うやり方で、スティグマジーなどとも呼ばれる。

間接的な通信方式、特に少ない通信量でも、効果的な分散協調を実現できる事例は報告されている。特にアリに着想を得たフェロモンを用いた通信方式に関する研究など。
フェロモンを用いた通信方式も間接型通信の一種で、通信ルートが定かになっていない中で送信者と受信者をつなぐ仕組みとして優れている。
更にこの発展形としてバーチャルフェロモン方式とでも言うべき方式も研究されており、シンプルな通信でありながら監視、偵察、ハザード検出、経路探索等の分野で著しい成果を上げている。

明示的通信は、ロボット間あるいはロボットと人間オペレータの間で直接的な通信パスが存在する方式であり、間接的通信と比較した研究も存在しており、たとえば単一のロボットよりもこの通信方式を用いた分散アルゴリズムの方がにおい発生源探索問題等においてより優れた結果を出すことがわかっている。

他にアドホックネットワークを用いた無線通信でも、中央集中的なアクセスポイント無しに相互通信が可能である。

このようにロボット間の通信によりシステムのタスク達成能力は飛躍的に向上し得る。その通信のあるべき通信量についても研究がされており、著しく少ない通信でもシステムの性能を大きく向上する事例もある。

間接/直接の通信、どちらが良いかについては明示的な結論は出ていないが、近年のほとんどの研究ではそのロバスト性を重んじ、間接型通信を採用していることが多い。

制御に関するアプローチ

大きく分けて中央集中型制御と分散協調型制御がある。長所短所は以下に示す。

結局のところ、それらを組み合わせたハイブリッド型システムをいかにデザインするかというのが重要になる。Steele JrらのDerected Stigmergy based Controlなどが例。大きなエリアを探索する惑星探査、都市探索、地雷除去等の任務では、やはり全体を俯瞰するリーダーエージェントの重要度は高い。

ただ、中央集中型と分散型はそれぞれ独立して成果を上げている。分散制御型ではバーチャルフォースを用いた制御方式など。
中央集中型では階層型プランニング、同時並列型プランニング、それらの実行と環境認識、環境の変化に対する適応、エラーからの復帰、複数タスクの同時協調的実施等の分野で成果を上げている。

方式 項目 説明
中央集中型 長所 リーダーエージェントがすべての情報を加味して最適な計画を生成できる
短所 通信に強く依存し、通信不可な環境では機能しない
リーダーエージェントの喪失に対して脆弱
リーダーがすべての情報を集めてから群の行動を決定するため、環境の変化に対して適応が遅い。
分散協調型 長所 個々のエージェントの喪失、不具合に対してロバスト
シンプルなシステム設計から複雑な結果が得られる。設計者は低レベルかつシンプルなエージェントの振る舞いを設計するだけでよい
短所 局所情報だけで動くため、局所最適に陥りやすい
システム構成要素が複数のタスクを独立にこなそうとすると、それらの調整がうまくいかず破綻しやすい
地図作成と自己位置推定

地図作成と自己位置推定については数十年にわたって様々な研究がされている。
地図作成は物理空間をセンサを使って空間モデルに起こしていく作業のことであり、自己位置推定はそのモデルの中で絶対的あるいは相対的な位置を見つけ出す作業に相当する。

よく言われるのはSLAM技術。これはセンサによって未知環境の地図を構築し、同時に地図内での相対的な自己位置推定を行っていく技術であり、ロボットが(GPSのような)絶対位置測定用のセンサを持たない時に役に立つ。
そのようなセンサの代わりにレーザスキャナ、ソーナー、画像等で地図を構築していくのがSLAMのやりかた。

地図には「位相的な」地図と「幾何学的な」地図があり、前者は環境の構造的な特徴を抽象化して抽出していくもので、例えば特徴的な個所を点で示し(ここに部屋がある、など)、それを線でつないでいくイメージ(意味不明)
それに対し幾何学的な地図とは環境の正確な幾何的特徴を再現し、フロアプランや路面状態、動的環境のマッピングに適している。

物体の輸送と操作

群ロボットの物体操作手法は三つに分類できると考えられており、それぞれ

  • 把持する
  • 押す
  • 囲い込む

である。

把持には更にForceとFormというやり方があり、Forceによる把持は対象物に外力が加わっても耐えることができる。FormはForceの一種であるが、更にその把持力の発揮において摩擦力に頼らない(全方向からロボットが囲っていて、押す/引くだけで運べる?)

押す動作は重力や摩擦力を必要とする(?)が、把持ができないような形状の物体を運搬できるという点で優れるが、減速をしたいときや戻りたいときに引っ張ることができないのが難点。

囲い込みは・・・(? 説明が理解できず)


自己再構築ロボット

モジュール型の自己再構築型ロボット、自己再構成型モジュールロボットといった呼ばれ方をするロボットは、様々な形態をとる。古典的な、形態が定まったロボットと異なり、これらのロボットはパーツごとの接続諸元を変更することで意図的に形態を変更、再構成して新しい環境やタスクに適応する。

この技術は幾何的構成によっていくつかのカテゴリに分類されるとされており、

  1. 格子構造:四角形、あるいは六角形の三次元的パターンによって並べられた構造。制御およびそれに基づく動作は英列的に実施可能で、格子構造は、各モジュールは近くの別の構造に移動するだけのオープンループ型制御が可能であるため、アーキテクチャをシンプルにできるメリットがある。
  2. 鎖構造:ひもや木構造のように、本質的に直列に繋がれた構造。この構造は潜在的に空間のあらゆる場所に到達し得る構成であり、上手く制御すればより多用途である一方、解析・制御が難しい。
  3. 移動構造:環境の中を自由に動き回るモジュールを持ちつつも、必要に応じてそれらが結合することで複雑な鎖構造、格子構造を再現して複雑なタスクをこなすロボット。

これまでにも様々なシステムが提案されてきたので、その一覧は表3。自己再構築ロボットは様々なメリットがあり、ロボティクス分野をもう一歩先へ進め得るポテンシャルを秘めている。多用途性、ロバスト性、適応性、拡張性、自己修復性等を備えたこれらのシステムは、古典的な大量生産現場だけでなく、様々な実環境で使えるようになるかもしれない。

協調動作

この分野では経路計画に関する研究が長らく行われてきた。これは環境の中でロボットを2点間を特定の基準を満たし、障害物をよけて移動させるという問題であり、ローカル経路計画とグローバル経路計画に分けられる。

通常の経路計画問題は障害物が動かない静的環境において検討されるが、一部は障害物が移動する動的環境を前提とした研究もおこなわれている。この場合、移動障害物の動きは現在の当該障害物の速度から予測するしかないが、速度が変わればまた予測も変更しなければならず、環境は絶えず変化していくため予測演算が終わる前に予測を変更しなければならない状況も起こりうる。
この問題のために様々な経路計画アルゴリズムが考案されており、たとえばファジィ論理、粒子群最適化(PSO)、分散勾配、アリ塚最適化、遺伝的アルゴリズム、D*、K-Bugなど。。。ほとんどのアルゴリズムは最短経路を導くためのアルゴリズムで、大抵は2次元空間用に考えられているが、一部3次元も存在する。

非ホロノミック系経路計画もこのカテゴリに含まれる。非ホロノミック系とは系のパラメータ変数の時間微分に関する高速方程式を持つ系(どういうこと?)で、不可積分系であり、典型例としては自動車のように可制御変数(速度とステアリングの2種)に対してシステム変数(X、Yとヨー角)の方が多い系が挙げられる。

隊形制御もこのカテゴリに含まれる。これは線形、円形、その他の任意の隊形を形成・維持する技術で、捜索救助、地雷除去、遠隔地形探索、衛星やUAV群の位置制御等に用いられる。

隊形制御はさらに中央制御型と分散制御型に分けられる。前者は中央のリーダーがメンバー全ての情報を把握し、個別に指示することでフォーメーションを形成するが、後者はそれぞれがローカルな情報を元に形成する。これにはBehaviorベース、ポテンシャル場、リーダ・フォロワ等のアルゴリズムがある。


学習

現状、ほとんどの機械学習アルゴリズムは教師アリと教師なしに分類できる。教師ありは外部に監督者が必要となるが、ロボット群はある場面における最適な出力を監督者から提供されて知っていることになる。

一方で教師無し学習は最適出力の情報を殆ど、あるいは全くフィードバックされないものであり、効率的でロバストなコントローラを自動的に設計できるほか、環境やタスクを事前に知れない場合、環境が常に変化する場合等に適応するのに有効である。

教師あり学習にもさまざまあるが、たとえば帰納的学習は教師あり学習の一種で、たくさんの教師データをもとに経験的にポジティブデータとネガティブデータを分類するシステムである。決定木学習、ニューラルネットワーク学習、帰納的論理プログラミングは帰納的学習の例である。

他の教師あり学習の例としてはExplanation-based learning(説明ベース学習?)があり、これは、事前に与えられた知識が、それぞれの教師データがなぜ(ポジティブの、あるいはネガティブの)条件を満たすのかの説明や分析に用いられるやりかたである。この説明がトレーニングデータセットのうち分類に役立つ部分とそうでない部分を区別し、論理的理由付けを可能にする。ほかにCase based learning、Memory-based learningなどがある。

教師無し学習はたとえば進化的学習や強化学習が例として挙げられ、近年様々な研究者によって注目されている。

遺伝的アルゴリズム遺伝的プログラミングは進化的学習の中でも最もポピュラーな例である。
進化的学習は様々なポリシーを持つ状態からスタートし、最適状態に至るまで、それらのポリシーを合成して新しいポリシーに改善していくやりかたを取る。

強化学習定量化可能な報酬を最大化するように環境に応じた行動を決める方式であり、ほかの大多数の機械学習事例と異なり学習者であるエージェントはどのような行動をとるべきかの規範を外部から与えられず、どのアクションが最も多くの報酬をもらえるか、自分自身で試行錯誤することによって行動方策を獲得していく。

時々刻々の行動は即時的に得られる報酬だけでなく、その更に後の報酬にも影響し売るため、それについても考慮する必要がある。そのようなトライ&エラーと、時間的に遅れて手に入る報酬の考慮の2点が強化学習の大きな特徴である。

強化学習の中でもQ学習が近年注目を集めている。これは状況とアクションに応じた強化値(報酬値?)をテーブルとしていくものである。(少し齧ったことがあるのだがすっかり忘れてしまい、この論文の説明を読んでも全く理解ができず・・・)

しかしながら、マルチエージェントシステムでは複数のロボットが存在しており、必然的に(各ロボット視点で見ると、ということ?)系が動的に変化するものになるため、従来の研究で通常のQ学習をマルチエージェントシステムに直接適用するのは困難であることがわかっており、様々な研究者が派生型のQ学習を考案している。

Minimax-Q学習、Nash-Q学習、Friend-or-foe Q学習、rQ学習、Fictitious Play、SARSA学習、Policy Hill Climbing等のアルゴリズムがある。
いずれにせよ群ロボット系に対する機械学習の適用はまだ発展途上の領域であり、機械学習分野における課題としてはかなり難しく、面白いものである。


タスク割り当て

タスク割り当てとは群に属するロボットに、生産的かつ効率的な行動ができるようにタスクをアサインしていくことであり、群としての大目標を達成するだけでなく、各ロボットに適切にタスクが分散するように設計されている必要がある。
効果的なタスク割り当ては、利用可能なリソース、何を最適化対象とするか、各ロボットの性能等を考慮して、それに応じた割り当てが為されるものである。

タスクとはすなわち群にとっての最終目標を構成する小目標であり、タスクは離散的でも連続的でもありうるほか、その他、時間スケール、複雑さ、特異性等によってさまざまな性質を持つ。

タスク割り当て問題においては、同質的システム、すなわち各ロボットがハード/ソフトともに同じものか、異質的システムすなわち各ロボットが異なるかによって比較されることが多い。

この問題は様々な手法が検討されており、Physical modeling、Distributed planning、Market-based techniques、Auction based Techniques、ALLIANCE等が挙げられる。マーケットベース手法の初期の手法はMURDOCHシステムで検討されている。これらの手法は群ロボットシステムがより効率的に動作するための設計ガイドラインとなりうる。


結論

様々な先進的な群ロボット研究について本稿で紹介した。9つのサブテーマについて紹介し、その利点と欠点を整理した。群ロボットシステムはその並列性、ロバスト性、拡張性および低コストにより複雑な問題を解決しうる高いポテンシャルを持っていると言える。

群ロボット研究の初期より、9つのサブテーマ、すなわち生物模倣、通信、制御、地図生成と自己位置推定、物体運搬と操作、自己再構築、協調動作、学習、タスク割り当ての分野について研究の進展があったことは言うまでもない。

殆どの研究はアリ、ハチ、鳥等の行動から着想を得て実施されている。

明示的(直接的)な通信は群ロボットの通信体系にロバスト性をもたらすと考えられる。

分散制御アルゴリズムは、そのロバスト性から中央制御アルゴリズムより好まれる傾向にある。

地図生成と自己位置推定の分野では研究はまだ発展途上である。

物体運搬と操作の分野では、囲い込みが、制限が少なく方式がシンプルであることから好まれている。

自己再構築型ロボットに関する研究はこの20年でよく進捗した。しかしながら、まだ発展途上の領域である。

経路計画と隊形生成はおおくの研究者によって研究がなされてきたメジャーなテーマであり、多くの経験則とアルゴリズムが考案されている。

学習分野では強化学習の導入が様々な研究者によって試みられている。

タスク割り当てでは同質的システムと異質的システムの比較が広く議論されており、様々な手法の考案に繋がっている。


まとめ

論文の内容に関するまとめは特にないけど、前回の論文メモとまあ概ね同じ内容だったと言えるのではないだろうか。

似たようなレビュー論文を2、3本読んでみようと思って、その中でも見た感じ読みやすそうなものを選んでしまったので、当然と言えば当然と言えるけれども。。。
なんとなく群ロボット分野の状況はわかった(気がする)ので、これらの論文で紹介されている個別のサブテーマに関する論文も読んでみようかと思う。

技術的には、強化学習の適用なんかが興味あるけれども・・・それ以前に普通の強化学習についてもう少しじっくり学んでみたいという思いが前々から強い。
それ以外だと、中央集中型制御と分散制御のちょうどいいマージの仕方とかだろうか。


そして論文メモだが、このレベルでメモを起こしていると一報読むのに本当に一週間かかってしまうことがわかった。
一週間かかると言っても、残業が常態化している仕事を終えて、夕飯を食べて、家族と話した後でのつかの間の時間で、更にその時間で論文を読むだけでなくて、ネットサーフィンもするし、次に作りたいロボットの構想も考えたりするし、やることが盛りだくさんだから仕方ないと言えばそうなのだけれども。

この分野の論文は定期的に読んでいきたいので、もう少し読み方も考えたいと思う。


自分でも群ロボットを作ってみたいという気がする。ただ、いくら単機あたりのコストが安いと言っても、そもそも個人で買えるロボットを複数、というのはそれなりに金がかかるから、難しいだろうか。

Turtlebot3とか、比較的よくできていて機能のわりに値段は安いのかもしれないけど、かといって個人で2台も3台も買うかと言われると・・・という感じである。