(57)【特許請求の範囲】
【請求項１】
複数の移動型ロボットと、タッチスクリーンとを含むマルチロボットシステムであって、
前記タッチスクリーンは、当該タッチスクリーンへの接触に応じて経時的に変化する密度関数を出力し、当該タッチスクリーンへの接触の位置及び量に基づいて前記経時的に変化する密度関数を決定し、
前記タッチスクリーンは、対象範囲に対応しており、
前記複数の移動型ロボットは、前記対象範囲内において前記タッチスクリーンによって決定された重要領域を示す前記経時的に変化する密度関数に応じて移動するものであり、
各ロボットは、
隣接ロボットとの相対的な距離及び角度の測定値を検出するセンサと、
前記センサに接続されたプロセッサであって、
前記センサから、前記隣接ロボットとの前記相対的な距離及び角度の測定値を表すデータを受け取り、
前記センサによって検出された前記相対的な距離及び角度の測定値に基づいて、前記隣接ロボットに対する変位ベクトルを決定するように構成されたプロセッサと、を備えた、システム。
【請求項２】
前記複数の移動型ロボットは前記対象範囲を共に自律的に被覆し、
各ロボットは、前記対象範囲を表すデータを格納するメモリをさらに備え、
前記プロセッサはさらに、
前記対象範囲内の前記重要領域を示す前記経時的に変化する密度関数を表すデータを受け取り、
前記経時的に変化する密度関数及び前記隣接ロボットに対する前記変位ベクトルの両方に基づいて、速度ベクトルを計算し、
前記速度ベクトルに基づいて、前記対象範囲内の前記重要領域へと当該ロボットを移動させる出力を行うように構成された、請求項１記載のシステム。
【請求項３】
前記対象範囲は、ボロノイセル区画に基づいて分割され、各ロボットは、１つのボロノイセルを占める、請求項２記載のシステム。
【請求項４】
前記プロセッサはさらに、前記ロボットのボロノイセルにおける変化、及び前記隣接ロボットのボロノイセルにおける変化を算出するように構成された、請求項３記載のシステム。
【請求項５】
前記プロセッサはさらに、前記変化を補うように前記速度ベクトルを計算するように構成された、請求項４記載のシステム。
【請求項６】
複数のロボットを含むマルチロボットシステムの制御方法であって、
前記複数のロボットは、対象範囲内の重要領域を示す経時的に変化する密度関数に応じて自律的に移動するものであり、
各ロボットは、センサと、プロセッサとを備え、
各ロボットの前記プロセッサが、前記センサから、隣接ロボットとの相対的な距離及び角度の測定値を表すデータを受け取る工程と、
前記プロセッサが、前記センサによって検出された前記相対的な距離及び角度の測定値に基づいて、前記隣接ロボットに対する変位ベクトルを決定する工程と、
前記対象範囲に対応するタッチスクリーンを有するコンピューティングデバイスから、前記経時的に変化する密度関数を表すデータを受け取る工程と、
前記タッチスクリーンへの接触の位置及び量に基づいて前記経時的に変化する密度関数を決定する工程と、
前記経時的に変化する密度関数及び前記隣接ロボットに対する前記変位ベクトルの両方に基づいて、速度ベクトルを計算する工程と、
前記速度ベクトルに基づいて、前記対象範囲内の前記少なくとも１つの重要領域へと当該ロボットを移動させる出力を行う工程と、を備え、
前記複数のロボットは前記対象範囲を自律的に被覆するように構成されている、方法。
【請求項７】
複数の移動型ロボットを含むシステムであって、
前記複数のロボットは、対象範囲内の重要領域を示す密度関数に応じて自律的に移動するものであり、
前記複数の移動型ロボットは、一連のフォーメーションを分散してともに行うものであり、
各ロボットは、その動作の一部として軌道を模倣し、当該軌道の模倣は動作モード間で切替を行うことによって行われ、
各ロボットは、
隣接ロボットとの相対的な距離及び角度の測定値を検出するセンサと、
前記センサに接続されたプロセッサであって、前記プロセッサは、
前記センサから、前記隣接ロボットとの前記相対的な距離及び角度の測定値を表すデータを受け取り、
前記センサによって検出された前記相対的な距離及び角度の測定値に基づいて、前記隣接ロボットに対する変位ベクトルを決定し、
前記一連のフォーメーションを表すデータを受け取り、
前記変位ベクトルに基づいて、当該ロボットの次のモードに対する拡大縮小係数を決定し、
前記変位ベクトルに基づいて、当該ロボットの次のモードに対する回転係数を決定し、
前記変位ベクトルに基づいて、当該ロボットの次のモードに対する切替タイミングを決定し、
前記拡大縮小係数、前記回転係数、及び前記切替タイミングに基づいて、前記次のモードを実行する出力を行うように構成された、システム。
【請求項８】
前記プロセッサはさらに、最適性条件及び共状態方程式に基づいて、前記拡大縮小係数、前記回転係数、及び前記切替タイミングを最適化するように構成された、請求項７記載のシステム。
【請求項９】
前記プロセッサはさらに、最急降下アルゴリズムを実行することによって、前記拡大縮小係数、前記回転係数、及び前記切替タイミングを最適化するように構成された、請求項７記載のシステム。
【請求項１０】
前記拡大縮小係数は、２つの隣接ロボット間の相対的な距離の測定値と定数とを乗算することによって、前記変位ベクトルを拡大縮小する、請求項７記載のシステム。
【請求項１１】
前記回転係数は、相対的な角度の測定値に定数を加算することによって、前記変位ベクトルを回転させる、請求項７記載のシステム。
【請求項１２】
請求項７記載のマルチロボットシステムの制御方法であって、
各ロボットの前記プロセッサが、前記一連のフォーメーションを表す前記データを受け取る工程と、
前記プロセッサが、前記センサから、当該ロボットとその隣接ロボットとの間の相対的な距離及び角度の測定値を表すデータを受け取る工程と、
前記プロセッサが、前記相対的な距離及び角度の測定値に基づいて、前記隣接ロボットに対する前記変位ベクトルを決定する工程と、
前記変位ベクトルに基づいて、当該ロボットの次のモードに対する前記拡大縮小係数を決定する工程と、
前記変位ベクトルに基づいて、当該ロボットの次のモードに対する前記回転係数を決定する工程と、
前記変位ベクトルに基づいて、当該ロボットの次のモードに対する前記切替タイミングを決定する工程と、
前記拡大縮小係数、前記回転係数、及び前記切替タイミングに基づいて、前記次のモードを実行する出力を行う工程と、を備え、
前記複数のロボットは、前記一連のフォーメーションを分散して行う、方法。
【請求項１３】
最適性条件及び共状態方程式に基づいて、前記拡大縮小係数、前記回転係数、及び前記切替タイミングを最適化する工程をさらに備えた、請求項１２記載の方法。
【請求項１４】
最急降下アルゴリズムを実行することによって、前記拡大縮小係数、前記回転係数、及び前記切替タイミングを最適化する工程をさらに備えた、請求項１２記載の方法。
【請求項１５】
２つの隣接ロボット間の相対的な距離の測定値と定数とを乗算することによって、前記変位ベクトルを前記拡大縮小係数を用いて拡大縮小する工程をさらに備えた、請求項１２記載の方法。
【請求項１６】
相対的な角度の測定値に定数を加算することによって、前記変位ベクトルを前記回転係数を用いて回転させる工程をさらに備えた、請求項１２記載の方法。
【請求項１７】
前記プロセッサはさらに、コンピューティングデバイスから、前記経時的に変化する密度関数を表す前記データを受け取るように構成され、
前記コンピューティングデバイスは、
タッチスクリーンを有し、
当該スクリーンへの接触に応じて前記経時的に変化する密度関数を出力し、
当該スクリーンへの接触の位置及び量に基づいて前記経時的に変化する密度関数を決定する、請求項７記載のシステム。
【請求項１８】
タッチスクリーンを有するコンピューティングデバイスから前記経時的に変化する密度関数を表す前記データを受け取る工程をさらに含み、
前記経時的に変化する密度関数は、当該スクリーンへの接触の位置及び量に基づいて決定される、請求項１２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、２０１４年５月５日付で出願された「Density-Based Manipulation of Teams of Robots」という名称の米国仮特許出願第６１／９８８，３４５号、及び、２０１４年５月５日付で出願された「Adaptive Interactions for Swarming Robots」という名称の米国仮特許出願第６１／９８８，８１７号の優先権を主張する。これらに言及することにより、そのすべての内容は本出願に組み込まれるものである。
【０００２】
（技術分野）
開示技術の実施形態は、主としてマルチロボットまたはマルチエージェント制御に関する。より具体的に、開示技術は、経時的に変化する密度関数を用いる群ロボットの制御に関する。また、開示技術は、一連のフォーメーションを行う群ロボットの制御に関する。
【背景技術】
【０００３】
被覆制御は、非常に注目を集めているマルチロボットまたはマルチエージェント制御の一分野である。被覆制御は、対象範囲の「監視」が最大となるようにロボットを配置する方法であって、対象範囲内の重要領域が密度関数に対応付けられる方法に係る。従来の被覆アルゴリズムは、主として静的密度関数に焦点が合わせられており、例えば、対象範囲内の重要領域が変化する等の場合に動的に変化する環境への柔軟な解決法を提供するものではなかった。また、従来の被覆アルゴリズムにおいて、各ロボットは、マルチロボットシステムにおけるすべてのロボットの位置を把握している。その結果、従来のシステムは、多数のロボットを扱う場合に故障しやすい傾向にある。
【０００４】
これまで、経時的に変化する密度関数を用いる被覆に関する研究は、あまりなされてこなかった。「Coverage control for mobile sensing networks: Variations on a theme」（J. Cortes, S. Martinez, T. Karatas, and F. Bullo、Mediterranean Conference on Control and Automation、ポルトガル国リスボン、2002年、電子議事録）において、密度関数に対するいくつかの簡略化仮定のもとで、経時的に変化する場合についての考察が行われた。しかしながら、それらの仮定は、全体を通して成立するものではなく、その逸脱によってアルゴリズムを崩壊させる可能性さえある。この問題に対する別の考察は、「Simultaneous coverage and tracking (scat) of moving targets with robot networks」（L. C. A. Pimenta, M. Schwager, Q. Lindsey, V. Kumar, D. Rus, R. C. Mesquita, and G. A. S. Pereira、WAFR、Springer Tracts in Advanced Roboticsシリーズ、第５７巻、Springer社、2008年、85〜99頁）においてなされ、移動する対象物を追跡する手段として、経時的に変化する密度関数を用いることが示された。しかしながら、これら従来の試みは、被覆の達成を正式に保証するものではなかった。
【０００５】
人間のオペレータが、密度関数の動的な再形成を通じて、群ロボットとの最適な情報のやり取りを行いたい場合に、信頼性が高く、頑健かつ柔軟な、最適の被覆方法が求められている。また、マルチロボット切替式自律システムに対する最適の制御方法も求められている。
【発明の概要】
【０００６】
開示技術は、群ロボットの制御に関する。開示技術の一態様は、対象範囲を被覆するマルチロボットシステムに関する。システムは、対象範囲をともに被覆する複数の移動型ロボットを備えていてもよい。各ロボットは、対象範囲を表すデータを格納するメモリを備えていてもよい。各ロボットは、隣接ロボットとの相対的な距離及び角度の測定値を検出するセンサを備えていてもよい。各ロボットは、センサに接続されたプロセッサを備えていてもよい。プロセッサは、センサから、隣接ロボットとの相対的な距離及び角度の測定値を表すデータを受け取ってもよい。プロセッサは、センサによって検出された相対的な距離及び角度の測定値に基づいて、隣接ロボットに対する変位ベクトルを決定してもよい。プロセッサは、対象範囲内の少なくとも１つの重要領域を示す密度関数を表すデータを受け取ってもよい。プロセッサは、密度関数及び隣接ロボットに対する変位ベクトルに基づいて、速度ベクトルを計算してもよい。プロセッサは、速度ベクトルに基づいて、対象範囲内の少なくとも１つの重要領域へとロボットを移動させる出力を行ってもよい。
【０００７】
開示技術の別の態様は、マルチロボットシステムの制御方法に関する。システムは、対象範囲を被覆する複数の移動型ロボットを有していてもよい。各ロボットのプロセッサは、センサから、隣接ロボットとの相対的な距離及び角度の測定値を表すデータを受け取ってもよい。プロセッサは、センサによって検出された相対的な距離及び角度の測定値に基づいて、隣接ロボットに対する変位ベクトルを決定してもよい。プロセッサは、対象範囲内の少なくとも１つの重要領域を示す密度関数を表すデータを受け取ってもよい。プロセッサは、密度関数及び隣接ロボットに対する変位ベクトルに基づいて、速度ベクトルを計算してもよい。プロセッサは、速度ベクトルに基づいて、対象範囲内の少なくとも１つの重要領域へとロボットを移動させる出力を行ってもよい。
【０００８】
開示技術のさらに別の態様は、一連のフォーメーションを行うマルチロボットシステムに関する。システムは、一連のフォーメーションをともに行う複数の移動型ロボットを備えていてもよい。各ロボットは、その動作の一部として軌道を模倣してもよい。各ロボットによる当該軌道の模倣は複数の動作モード間で切替を行うことによって行われてもよい。各ロボットは、隣接ロボットとの相対的な距離及び角度の測定値を検出するセンサを備えていてもよい。各ロボットは、センサに接続されたプロセッサをさらに備えていてもよい。プロセッサは、一連のフォーメーションを表すデータを受け取るように構成されていてもよい。プロセッサは、センサによって検出された相対的な距離及び角度の測定値に基づいて、隣接ロボットに対する変位ベクトルを決定してもよい。プロセッサは、変位ベクトルに基づいて、ロボットの次のモードに対する拡大縮小係数を決定してもよい。プロセッサは、変位ベクトルに基づいて、ロボットの次のモードに対する回転係数を決定してもよい。プロセッサは、変位に基づいて、ロボットの次のモードに対する切替タイミングを決定してもよい。プロセッサは、拡大縮小係数、回転係数、及び切替タイミングに基づいて、次のモードを実行する出力を行ってもよい。
【０００９】
開示技術のさらなる態様は、マルチロボットシステムの制御方法に関する。マルチロボットシステムは、複数のロボットを有していてもよい。方法は、一連のフォーメーションを分散して行うようにロボットを制御してもよい。各ロボットは、その動作の一部として軌道を模倣してもよい。各ロボットによる当該軌道の模倣は複数の動作モード間で切替を行うことによって行われてもよい。各ロボットのプロセッサは、一連のフォーメーションを表すデータを受け取ってもよい。プロセッサは、センサから、ロボットとその隣接ロボットとの間の相対的な距離及び角度の測定値を表すデータを受け取ってもよい。プロセッサは、相対的な距離及び角度の測定値に基づいて、隣接ロボットに対する変位ベクトルを決定してもよい。プロセッサは、変位ベクトルに基づいて、ロボットの次のモードに対する拡大縮小係数を決定してもよい。プロセッサは、変位ベクトルに基づいて、ロボットの次のモードに対する回転係数を決定してもよい。プロセッサは、変位に基づいて、ロボットの次のモードに対する切替タイミングを決定してもよい。プロセッサは、拡大縮小係数、回転係数、及び切替タイミングに基づいて、次のモードを実行する出力を行ってもよい。
【００１０】
開示技術の上記及び他の態様を、以下に開示の「発明を実施するための形態」及び添付の図面で説明する。開示技術の実施形態についての他の態様及び特徴は、当業者であれば、開示技術の具体的かつ例示としての実施形態の以下の説明を、図面を参照しつつ読むことによって理解できよう。ある実施形態及び図面に関して開示技術の特徴が記載されることになるが、開示技術のすべての実施形態は、本明細書に記載の特徴のうち１以上を備えることができる。ある有利な特徴を有するものとして１以上の実施形態が記載されることになるが、そのような特徴のうち１以上は、本明細書に記載の開示技術の種々の実施形態とともに用いることもできる。同様に、システムまたは方法に関する実施形態として、例示としての実施形態が以下に記載されることになるが、そのような例示としての実施形態は、開示技術の様々なデバイス、システム、及び方法において実施されてもよいことが理解されよう。
【００１１】
以下の「発明を実施するための形態」に記載の技術は、添付の図面を参照しつつ読むことによってより理解される。説明のために、図面には例示としての実施形態を示すが、主題は、開示された具体的な構成要素及び手段に限定されるものではない。
【図面の簡単な説明】
【００１２】
【図１】開示技術の一態様に係るマルチロボットネットワークの模式図を示す。
【図２】開示技術の一態様に係るオペレータと群ロボットとの間の情報のやり取りの例示図を示す。
【図３】開示技術の一態様に係る、人間の接触に応じて光がタッチパネルに示されるタブレットの斜視図を示す。
【図４】開示技術の一態様に係る、タブレットのタッチパネル上で光を操作することによって群ロボットにコマンドを与える例を示す。
【図５】開示技術の一態様に係る、タブレットのタッチパネル上で光を操作することによって群ロボットにコマンドを与える例を示す。
【図６】開示技術の一態様に係る、複数の指接触に応じて複数の光がタッチパネルに示されるタブレットの斜視図を示す。
【図７（ａ）】開示技術の一態様に係る、ボロノイセルによって区画された対象範囲内での群ロボットの動きを示す。
【図７（ｂ）】開示技術の一態様に係る、ボロノイセルによって区画された対象範囲内での群ロボットの動きを示す。
【図７（ｃ）】開示技術の一態様に係る、ボロノイセルによって区画された対象範囲内での群ロボットの動きを示す。
【図７（ｄ）】開示技術の一態様に係る、ボロノイセルによって区画された対象範囲内での群ロボットの動きを示す。
【図７（ｅ）】開示技術の一態様に係る、ボロノイセルによって区画された対象範囲内での群ロボットの動きを示す。
【図７（ｆ）】開示技術の一態様に係る、ボロノイセルによって区画された対象範囲内での群ロボットの動きを示す。
【図８】開示技術の一態様に係る、密度関数下でＴＶＤ−Ｄ１を実行する際の瞬時位置コストを示す。
【図９】開示技術の一態様に係る、密度関数下でＴＶＤ−Ｄ１を実行する際の時間関数としてのλmaxの大きさを示す。
【図１０】開示技術の一態様に係る方法のフローチャートである。
【図１１】開示技術の別の態様に係る方法のフローチャートである。
【図１２】図１２（ａ）〜図１２（ｌ）は、開示技術の一態様に係る、複数のロボットによるドラムライン風ダンスの最適分散バージョンのシミュレーションを示す。
【図１３】開示技術の一態様に係る、最急降下を５０００回反復した後のコストＪの収束を示す。
【図１４】開示技術の一態様に係るスクリプト言語の画像による例示を示す。
【図１５】開示技術の一態様に係るスクリプト言語の可視化されたインターフェースを示す。
【図１６】開示技術の一態様に係る、３つのロボットを制御するグラフィック化されたユーザインターフェースを示す。
【発明を実施するための形態】
【００１３】
本発明の様々な実施形態の原理及び特徴の理解を促進するために、様々な例示としての実施形態を以下に説明する。本発明の例示としての実施形態を詳細に説明するが、他の実施形態も想定されていることが理解されよう。したがって、本発明は、その範囲が以下の記載または例に示される構成要素の構造及び配置の詳細に限定されるよう意図するものではない。本発明は、他の実施形態も可能であり、様々な方法で実行または実施することもできる。また、例示としての実施形態の記載において、明確にするために具体的な専門用語を用いることもある。
【００１４】
なお、明細書及び添付の特許請求の範囲で用いられるところの、単数形「a」、「an」、及び「the」は、文脈で特に明記しない限り、複数形の場合をも含む。例えば、構成要素（a component）への言及は、複数の構成要素（a plurality of components）の構成をも含むことが意図される。「ある」構成物（"a" constituent）を含む構成への言及は、指定されたものに加えて他の構成物をも含むことが意図される。
【００１５】
また、例示としての実施形態の記載において、明確にするために専門用語を用いることもある。各用語は、当業者に理解される最も広い意味を想定しており、同様の目的を達成するために同様に作用するすべての技術的均等物を含むことが意図される。
【００１６】
範囲は、「約」または「およそ」または「実質的に」ある特定の値から、かつ／あるいは、「約」または「およそ」または「実質的に」別の特定の値までとして本明細書に表記されることがある。そのような範囲が表記された場合、他の例示としての実施形態は、ある特定の値から、かつ／あるいは、他の特定の値までを含んでもよい。
【００１７】
同様に、本明細書に用いられるところの、何かを「実質的に含まない」または「実質的に純粋な」等の特徴は、何かを「少なくとも実質的に含まない」または「少なくとも実質的に純粋な」、及び何かを「まったく含まない」または「完全に純粋な」の両方を含むことができる。
【００１８】
「備える」または「含有する」または「含む」は、少なくとも指定された成形材料、構成要素、粒子、または方法ステップが、構成、物、または方法に存在することを意味するが、他の成形材料、物質、粒子、方法ステップが指定されたものと同一の機能を有していたとしても、それら他の成形材料、物質、粒子、方法ステップの存在を除外するものではない。
【００１９】
１以上の方法ステップへの言及は、さらなる方法ステップが存在することや、明確に特定されるステップ間に別の方法ステップを挿入することを阻むものではないことも理解されよう。同様に、構成における１以上の構成要素への言及が、明確に特定されるもの以外のさらなる構成要素が存在することを阻むものではないことも理解されよう。本明細書に記載されないそのような他の構成要素またはステップは、例えば、開示技術の発展後に発展する同様の構成要素またはステップを含むことができるがこれらに限定されない。
【００２０】
本発明の様々な構成要素を構成する物質は例示であり、これに限定されないことが意図される。本明細書に記載の物質と同一または同様に機能し得る多くの好適な物質が、本発明の範囲に包括される。本明細書に記載されないそのような他の物質は、例えば、本発明の発展後に発展する物質を含むことができるがこれらに限定されない。
【００２１】
１．  マルチロボットネットワーク
図１は、マルチロボットネットワーク１００を示す。ネットワーク１００は、空間的に分散した少なくとも２つのロボット１１０を備えていてもよい。各ロボット１１０は、エージェントとしても知られている。ネットワーク１００は、数百のまたは数千のロボット１１０を備えていてもよい。図１に示す例において、ネットワーク１００は、ロボット１１０ａ〜１１０ｅを備えていてもよい。各ロボットは、車輪付き陸上ロボット等の移動型ロボットあってもよい。例えば、各ロボットは、K-team社製ケペラスリー（Khepera III）差動駆動移動型ロボット等の差動駆動ロボットであってもよい。
【００２２】
ロボットは、相互に協働して、１以上のタスクを一括して完成させてもよい。各ロボットは、異なる能力を有していてもよい。ロボットは、相互に交渉してタスクを完成させてもよい。ロボットは、群として集められて、相互に最も効率的に配置されてもよい。各ロボットは、グループとして各ロボットが問題を定義し解決するのに用いる言語として、予めプログラムされたアルゴリズムを制御ソフトウェアに備えていてもよい。
【００２３】
一例において、プロセッサ及びメモリを備えたウブントゥ（Ubuntu）機上で動作するロボットオペレーティングシステム(Robot Operating System：ＲＯＳ）フレームワークを、アルゴリズム実施のために用いてもよい。Ubuntu機は、スマートフォン、タブレット、またはいかなるコンピューティングデバイスであってもよい。Ubuntu機は、バージョン１１．０４であってもよい。プロセッサは、インテルデュアルコアＣＰＵ２．１３ＧＨｚであってもよい。メモリは、４ＧＢであってもよい。ＲＯＳは、ダイアモンドバック（Diamondback）であってもよい。ＲＯＳは、制御信号を個々のロボットに無線ルータを介して送信してもよい。各ロボットは、プロセッサ、組み込みLinux、差動駆動輪、及び無線ルータを介して通信を行うための無線カードを有していてもよい。各ロボットのプロセッサは、１２８ＭｂＲＡＭを備えた６００ＭＨｚＡＲＭであってもよい。ロボットのプロセッサは、同期可能であり、その後も一定期間同期状態を継続可能なクロックを有していてもよい。ロボットは、内蔵センサを用いて相互に無線通信を行ってもよい。ソフトウェアに予めプログラムされたアルゴリズムを用いて、ロボットは、自らの役割を把握し、相互に無線通信を行ってもよい。
【００２４】
各ロボットは、ネットワーク１００におけるロボットの全体図を把握していなくてもよい。各ロボットは、全地球測位システム（ＧＰＳ）を有していなくてもよく、したがって、グローバル座標を保持または把握していなくてもよい。しかしながら、各ロボットは、センサを有していてもよい。センサは、リアルタイムで隣接ロボットとの相対変位を測定してもよい。ロボットのセンサは、極めて近接した範囲（近隣ともいわれる）の隣接ロボットを検出してもよい。ロボットは、その局所的な近隣域の中心へと移動してもよい。ロボットは、その局所的な近隣域に基づいて、自らの新しい位置を決定してもよい。例えば、ロボットの新しい位置は、隣接ロボット間の距離の関数として計算されてもよい。例えば、図１を参照して、ロボット１１０ａが隣接ロボット１１０ｂから遠すぎる場合、ロボット１１０ａは隣接ロボット１１０ｂに近づいてもよい。他方、ロボット１１０ａが隣接ロボット１１０ｂに近すぎるか隣接ロボット１１０ｂに衝突する場合、ロボット１１０ａはロボット１１０ｂから離れてもよい。
【００２５】
ロボットによって実施される検知技術は、ＬＩＤＡＲまたは視覚に基づいた検知であってもよい。例えば、各ロボットは、リアルタイムの位置及び向きデータをロボットに提供するモーションキャプチャカメラを少なくとも備えていてもよい。いくつかの例において、各ロボットは、２つのモーションキャプチャカメラを備えていてもよい。モーションキャプチャカメラは、ＯｐｔｉｔｒａｃｋＳ２５０ｅモーションキャプチャカメラであってもよい。
【００２６】
各ロボットは、当該ロボットとその各近隣ロボットとの間の相対的な距離及び角度に基づいて、それらのベクトルに拡大縮小及び回転等の単純な操作を行ってもよい。相対変位ベクトルを拡大縮小するとは、相対的な距離の測定値と定数とを乗算することであってもよい。相対変位ベクトルの回転は、相対的な角度の測定値に定数を加算することによって行われてもよい。拡大縮小及び回転された変位ベクトルを、ベクトル加算を用いて加算してもよい。
【００２７】
ネットワーク１００におけるロボットの制御は、制御信号におけるすべての方向概念がロボットとその近隣ロボットとの間の相対的な距離及び角度の測定値対から得られるという意味で、分散であってもよい。各ロボットの分散コントローラは、ロボットとその隣接ロボットとの間の相対的な距離及び角度のパラメータ化関数に限定されてもよい。
【００２８】
２．  人間−群の情報のやり取り
図２は、オペレータ１２０と群ロボット１１０との間の情報のやり取りの例を示す。オペレータ１２０は、群レベルで、例えば、ロボットに高次の指令を与えることによって、ロボットと情報をやり取りしてもよい。ロボットは、ロボット間及び人間のオペレータとの間で交渉してもよい。ロボットは、どのようにタスクを完成させるかを算定してもよい。各ロボットは、各自が決定を行うという意味で、自律式であってもよい。
【００２９】
一例において、オペレータ１２０は、対象範囲内の重要領域を被覆するように群ロボットに指示してもよい。対象範囲は、多数の重要領域を含んでいてもよい。オペレータ１２０は、スマートフォン、タブレット、ジョイスティック、または他のいかなるコンピューティングデバイスを用いて群ロボットを制御してもよい。図２の例において、オペレータ１２０は、１以上の指をタブレット１３０上に接触またはスワイプしてもよい。タブレット１３０のタッチスクリーンは、対象範囲に対応していてもよい。オペレータ１２０が指をタッチスクリーン上に接触または移動させると、図３に示すように、タッチスクリーン上の接触された領域が光ってもよい。接触された領域が接触されていない領域よりも明るくなるように、接触された領域から徐々に光１４０が弱まるようにしてもよい。タッチスクリーン上の指の位置は、群ロボットが移動する重要領域を示していてもよい。光が明るいほど、領域が重要であることを示す。同様に、指の位置は、群ロボットがどこに配置されるかを大まかに示していてもよい。
【００３０】
指を移動させることによって、オペレータ１２０は、タッチスクリーン上の異なる領域における光密度を変化させてもよい。図３〜図５に示すように、光密度を操作することによって、オペレータ１２０は群ロボット全体の全体移動方向を操作してもよい。タブレット１３０は、外的な、人手で作成した密度関数をロボットネットワークに入力として提供してもよい。密度関数は、ロボットがどこに配置されるかを大まかに示していてもよい。
【００３１】
タブレット１３０は、光密度を各ロボットに送信してもよい。各ロボットは、光密度によって示される重要領域に移動してもよい。例えば、タブレット１３０のスクリーン上の接触があるたびに、タブレット１３０のプロセッサは、接触位置、及び対象範囲内のその対応領域を認定してもよい。対象範囲内の対応領域は、重要領域として捉えられてもよい。タブレット１３０は、接触された領域の密度値を各ロボットに送信してもよい。図６に示すように、複数の接触１４０ａ及び１４０ｂが、同時に生じてもよい。タブレット１３０は、接触された各領域に対応する密度値をロボットに送信してもよい。光密度が変化するのに応じて、ロボットは、光で表される重要領域に向けて移動してもよい。密度関数は、ロボットの群サイズと無関係であってもよい。
【００３２】
一例において、オペレータ１２０は、経時的に変化する密度関数を介して群ロボットに外的影響を与えてもよい。連続時間アルゴリズムは、経時的に展開する密度関数が与えられた場合、最適の被覆を提供するようにロボットを移動させてもよい。本例において、群ロボットの各ロボットに、経時的に変化する密度関数に基づく被覆アルゴリズムが実装されてもよい。
【００３３】
各ロボットは、そのローカルメモリに、対象範囲の境界を格納していてもよい。一例において、各ロボットは、範囲が設定される場所以外のいかなるマップも有していなくてもよい。
【００３４】
数学的には、D⊂
0006700198.tif 000002
は、対象範囲を表す２次元凸範囲であってもよい。φ:Dx[0,∞)→(0,∞)は、有界かつ両方の引数で連続微分可能であってもよい密度の陪関数であり、φ(q,t)は、時間tにおけるポイントq∈Dの相対重要度を取り込んでもよい。以下は、密度関数φの２つの例である。
【数１】
0006700198.tif 000003
例えば、時間定数は、τ＝5であってもよい。例えば、(μx,l(t),μy,l(t))は、時間tにおけるタブレット上のＭ回の接触のうち、l番目の接触におけるＤの位置を表していてもよい。
【００３５】
各ロボットは、差動駆動ロボットであってもよく、一輪ロボットとしてモデル化されていてもよい。
【数２】
0006700198.tif 000004
ここで、(xi,yi)は、ロボットｉの位置を表していてもよく、θiは、ロボットｉの向きを表していてもよく、νi,ωiは、ロボットｉの並進速度及び角速度を表していてもよい。ｉ番目のロボットの位置は、pi∈D，i＝1,…,nとして表されてもよい。各ロボットｉの望ましい動作は、被覆アルゴリズムのために
0006700198.tif 000005
に関して表されてもよい。ここで、
0006700198.tif 000006
は、以下の式を通じて、νi,ωi上にマッピングされてもよい。
【数３】
0006700198.tif 000007
【００３６】
最小の位置コストでロボットによる対象範囲の最適の被覆を確実にするため、対象範囲の最適の区画は、以下のように表されてもよい。
【数４】
0006700198.tif 000008
このＤの区画は、ボロノイ分割として捉えられてもよい。Viは、領域を意味していてもよい。ボロノイの区画は、ロボットのモーションキャプチャカメラによって提供される位置及び向きデータに基づいて算出されてもよい。
【００３７】
φ≧0であるため、ｉ番目のボロノイセルViの質量mi及び重心ciは、以下のように定義されうる。
【数５】
0006700198.tif 000009
pは、いわゆる重心ボロノイ分割（ＣＶＴ）であってもよい。
【００３８】
ＣＶＴは、対象範囲のいわゆるボロノイ分割が与えられた場合、各ロボットの位置がボロノイセルの重心に一致する構造のことであってもよい。ＣＶＴにおいて、ロボットは、｛||pi−ci||2＝0，i＝1,…,n｝と数学的に表される構造、すなわちＣＶＴに到達してもよい。ボロノイセル区画は、密度と無関係であってもよい。図７（ａ）〜図７（ｆ）は、分散型被覆アルゴリズムの実装された５つの移動型ロボットの群を示す。図７（ａ）〜図７（ｆ）において、太線は、ボロノイセル１５０ａ〜１５０ｅの図形を示す。ボロノイセル１５０ａ〜１５０ｅの重心１６０ａ〜１６０ｅは、黒丸で表されている。各ボロノイセルは、ロボットに最も近い空間部分を表していてもよい。例えば、ボロノイセル１５０ａ〜１５０ｅのそれぞれは、ロボット１１０ａ〜１１０ｅのいずれかひとつに最も近い空間部分を表していてもよい。図７（ａ）〜図７（ｆ）に示すように、ボロノイセル区画は、ロボット１１０ａ〜１１０ｅが移動するのに応じて、絶えず変化していてもよい。ロボット１１０ａ〜１１０ｅは、それぞれの近隣ロボットの位置に基づいて、対応するボロノイセルを計算してもよい。受け取る密度情報に基づいて、各ロボットは、対応するボロノイセルがどのように変化するか及び近隣のボロノイセルがどのように変化するかの予想を、密度をよりよく被覆するように移動し、その移動において、この変化を補うのに応じて行ってもよい。
【００３９】
最適の被覆を実現するために、ロボットは当初、静的密度関数に対応付けられたＣＶＴに集められてもよい。例えば、初期化ステップにおいて、ＣＶＴは、初期時間t0において実現されてもよい。すなわち、p(t0)＝c(p(t0),t0))であってもよい。ここで、c＝[c1T,…,cnT]Tである。静的密度関数φは最初に選択されてもよい。ロボットがＣＶＴを実現するまで、以下に示すロイドアルゴリズム等の時不変アルゴリズムが展開されてもよい。本状況は漸近的に生じてもよい。
【数６】
0006700198.tif 000010
0006700198.tif 000011
は、個々のロボットが実行する最急降下動作を表していてもよい。ここで、ｋは、正のゲインであってもよい。(pi−ci)は、勾配方向(piに関して)を表していてもよい。
【００４０】
２．１  経時的に変化する密度関数
ロボットがＣＶＴに到達すると、初期化プロセスを終了してもよい。初期化に続いて、ロボットは、各ロボットに実装された経時的に変化する密度関数を実行することによって、ＣＶＴを維持してもよい。タイミング情報は、ロボットの動作に含まれていなくてはならない。ロボットは、グローバルフレームにおける方向の感覚を共有する必要がない場合もある。各ロボットは、隣接ロボットの情報に基づいて動作を決定してもよい。
【００４１】
例えば、各ロボットは、近隣ロボットに対する相対変位ベクトルに基づいて速度ベクトルを決定してもよい。速度ベクトルは、経時的に変化する密度関数によって算出されてもよい。数学的には、
0006700198.tif 000012
の更新ルールは、pi自体の他にはpj,j∈Nνiにのみ依存していてもよい。Nνiは、ボロノイセルｉに隣接する一群のボロノイセルを表していてもよい。境界を共有するのであれば、２つのボロノイセルは隣接しているとすることができる。
【００４２】
各ロボットは、その速度ベクトルを、密度を最もよく被覆するように決定してもよい。各ロボットは、その速度ベクトルを、経時的に変化する密度を補い、その近隣ロボットの動きを補うように決定してもよい。
【００４３】
経時的に変化する密度関数は、経時的に変化する集中関数の分散型を得るための機構として逆数の良設定ノイマン近似を用いて得られてもよい。
【００４４】
２．１．１  ＴＶＤ−Ｄ１
以下は、1ホップ隣接性情報で分散された、経時的に変化する密度(ＴＶＤ−Ｄ１)の例である。個々のロボットが実行する最急降下動作
0006700198.tif 000013
は、以下のように計算されてもよい。
【数７】
0006700198.tif 000014
ここで、(pi−ci)は、勾配方向(piに関して)を表していてもよい。
【００４５】
２．１．２  項∂c／∂pの算出
項∂c／∂pを算出するために、ライプニッツの法則を用いる必要がある。以下では、pj(b)は、ベクトルpjのｂ番目の成分を意味し得る。D⊂
0006700198.tif 000015
であれば、b＝1,2は、平面の場合を表す。ライプニッツの法則に基づいて、以下の式が得られることになる。
【数８】
0006700198.tif 000016
ここで、a＝1,2であり、i≠jである。
【００４６】
同様に、i＝jの場合、以下の式が得られることになる。
【数９】
0006700198.tif 000017
【００４７】
２．１．３  位置コスト
図８は、密度関数φ2下でＴＶＤ−Ｄ１を実行する際の瞬時位置コストを示す。位置コストは、各ロボットが駆動しなくてはならない最小距離を表していてもよい。位置コストは、所与の領域がいかによく被覆されるかを示していてもよい。位置コストは、達成した被覆において、所与のロボット構成がいかに効率的であるかを評価するものであってもよい。位置コストは、以下のように算出されてもよい。
【数１０】
0006700198.tif 000018
図８に示すように、最大固有値の大きさが、より長い間１付近であったとしても、ノイマン近似ＴＶＤ−Ｄ１は有効であり続け、アルゴリズムの性能に影響を与えない。図９は、密度関数φ2下でＴＶＤ−Ｄ１を実行する際の時間関数としてのλmaxの大きさを示す。ここで、λmaxは、行列∂c／∂pの最大大きさを有する固有値を示していてもよい。
【００４８】
２．１．４．  ＴＶＤ−Ｄk
高次項がノイマン級数で維持されている場合、dist(i,j)は、セルｉとセルｊとの間の距離を示していてもよい。一例において、dist(i,j)は、ボロノイ分割によってもたらされるドロネー図におけるｉとｊとの間の縁端距離を表していてもよい。∂c／∂pは、(ブロック）隣接行列を表していてもよく、以下が得られることになる。
【数１１】
0006700198.tif 000019
式中、[・]ijは、セルci及びロボット位置pjに対応するブロックを示していてもよい。
【００４９】
ＴＶＤ−Ｄ１のｋホップバージョンは、ＴＶＤ−Ｄｋとして表されてもよく、
0006700198.tif 000020
は、以下のように計算されてもよい。
【数１２】
0006700198.tif 000021
【００５０】
２．２  フローチャート例
開示技術の一態様によると、複数の移動型ロボットは、対象範囲をともに被覆してもよい。各ロボットは、プロセッサを備えていてもよい。図１０は、開示技術の例示としての実施形態に係る方法例のフローチャートである。ブロック２０２において、プロセッサは、センサから、隣接ロボットとの相対的な距離及び角度の測定値を表すデータを受け取ってもよい。ブロック２０４において、プロセッサは、センサによって検出された相対的な距離及び角度の測定値に基づいて、隣接ロボットに対する変位ベクトルを決定してもよい。ブロック２０６において、プロセッサは、対象範囲内の少なくとも１つの重要領域を示す密度関数を表すデータを受け取ってもよい。ブロック２０８において、プロセッサは、密度関数及び隣接ロボットに対する変位ベクトルに基づいて、速度ベクトルを計算してもよい。ブロック２１０において、プロセッサは、速度ベクトルに基づいて、対象範囲内の少なくとも１つの重要領域へとロボットを移動させる出力を行ってもよい。
【００５１】
一実施において、各ロボットのプロセッサは、すべての隣接ロボットに対する変位ベクトルに基づいて、速度ベクトルを計算してもよい。
【００５２】
一実施において、プロセッサは、経時的に変化する密度関数に基づいて、速度ベクトルを算出してもよい。
【００５３】
一実施において、対象範囲は、ボロノイセル区画に基づいて分割されてもよい。各ロボットは、１つのボロノイセルを占めていてもよい。プロセッサは、そのロボットのボロノイセルにおける変化、及び隣接ロボットのボロノイセルにおける変化を算出してもよい。プロセッサは、変化を補うように速度ベクトルを計算してもよい。
【００５４】
一実施において、プロセッサは、コンピューティングデバイスから、密度関数を表すデータを受け取ってもよい。コンピューティングデバイスは、タッチスクリーンを有していてもよい。コンピューティングデバイスは、スクリーンへの接触に応じて密度関数を出力してもよく、スクリーンへの接触の位置及び量に基づいて密度関数を決定してもよい。
【００５５】
３．  予定されたフォーメーション
本技術の別の態様によると、群ロボットは、一連の動作または一連のフォーメーションを行うように割り当てられてもよく、一連の動作は、個々のロボットの軌道に関して表されてもよい。群全体にタスクまたはミッションが割り当てられるが、各ロボットは、予め割り当てらた役割を有していなくてもよい。むしろ、群ロボット全体にタスクが割り当てられた後で、個々のロボットが自分の行動を調整することによって、上記一連の動作を実行または確立してもよい。
【００５６】
群ロボットは、ランダムな構成で開始されてもよい。群ロボットが一連の動作またはフォーメーションを実行するように指示されると、群ロボットは、いかなる位置かついかなるローテーションでフォーメーションを行ってもよい。各ロボットは、他のロボットに対する相対的な位置のみを把握していてもよい。各ロボットは、それぞれフォーメーション内での自らの役割と共に、適切なフォーメーション位置を認定してもよい。
【００５７】
どのようなフォーメーションも、新規のロボットが群に加えられる際、現在示されているロボットが群から外される際、または現在示されているロボットがオペレータ等の外的要因によって姿勢を解除される際に乱れてもよい。そのような乱れが生じると、群ロボットは、割り当てやフォーメーション姿勢を変更することによって反応してもよい。
【００５８】
ロボット間の情報フローは、所定の静的グラフトポロジーによって与えられてもよい。群ロボット間の情報フローは、予め規定されたネットワークトポロジーによって限定されていてもよい。各ロボットは、その近隣ロボットをそれぞれ識別してもよい。ロボットは、異なるコントローラ間でオープンループのクロックに基づく遷移の実行を可能にする同期クロックを有していてもよい。
【００５９】
任意の望ましい軌道のため、群ロボットは、切替式自律システムの形式で分散制御則を用いて最適に軌道を模倣してもよい。切替式自律システムにおいて、各ロボットは、近隣ロボットのそれぞれに対応付けられた拡大縮小係数及び回転係数によってパラメータ化された複数のモードを有していてもよい。例えば、各ロボットは、フォーメーション「形状」を受け取ってもよい。相対変位情報に基づいて、各ロボットは、当該形状をどのように実現するかを決定してもよい。例えば、各ロボットは、当該ロボットがどこに配置され回転されるか、及びどのように拡大縮小されるかを決定してもよい。
【００６０】
一連のフォーメーションを実行するために、各ロボットは、連続モード間で切替を行ってもよい。各ロボットは、最良のフォーメーション姿勢及び役割割り当てを継続的に再評価してもよい。各モードは、複数のパラメータによって規定されてもよい。パラメータは、フォーメーションの向き、並進、及び拡大縮小を含んでいてもよい。ロボットは、駆動する距離を最小にするパラメータを選択してもよい。最適のパラメータは、分散軌道によって、所望の軌道を最も良好に追跡するようなパラメータであってもよい。所望の軌道を模倣するために、モードパラメータ及び切替タイミングは、分散設定において最適化されてもよい。このために、最適性条件及び共状態方程式等の、ある関連結果を、一般の設定においてパラメータ化されたモードを最適化するために得た後に、分散設定へと発展させてもよい。同様の結果を、切替タイミングのために得てもよい。
【００６１】
実施に際して、望ましい軌道が与えられた場合、パラメータ及び切替タイミングは、上記の得られた結果に最急降下アルゴリズムを用いて最適化されてもよい。各ロボットは、最適化されたパラメータ及び切替タイミングによって示された動作を実行してもよい。
【００６２】
パラメータの最適性条件は、本明細書に記載のように得られてもよい。
【００６３】
３．１  システムダイナミクス
一実施形態において、群ロボットは、ミッション、例えば所望の一連の動作またはフォーメーションを完成させてもよい。各ロボットの軌道は、時間ｔ＝０に開始されて時間ｔ＝Ｔに終了されてもよい。各ロボットは、全体切替タイミングτ1,…,τKとして、次のように計Ｋ回モードを切替えてもよい。
【数１３】
0006700198.tif 000022
ここで、ｋ番目のモードは、[τｋ-1,τk)の期間に生じる。
【００６４】
グローバルクロックに基づいた切替のもと、各ロボットは、Ｋ＋１のモードを有していてもよく、各モードは、近隣ロボットのそれぞれに対応付けられた拡大縮小係数及び回転係数によってパラメータ化されていてもよい。ｋ番目のモードにおいて動作するｉ番目のロボットのダイナミクスは、以下のように表されてもよい。
【数１４】
0006700198.tif 000023
ここで、rijk,∈
0006700198.tif 000024
及びθijk∈[0,2π)は、自身とロボットｊとの間の変位ベクトルをそれぞれ拡大縮小し回転するのに用いる定数である。以下の行列
【数１５】
0006700198.tif 000025
は、ベクトルを反時計回りに回転させる２次元回転行列を定義するものであってもよい。
【００６５】
あるいは、式（１９）におけるダイナミクスは、以下のように書き換えられてもよい。
【数１６】
0006700198.tif 000026
【００６６】
システム全体のダイナミクスを行列の形式にまとめてもよい。χ∈
0006700198.tif 000027
を、
【数１７】
0006700198.tif 000028
とする。すなわち、χがＮ個のロボットの位置を含んでいるとする。ｋ番目のモードに対応付けられた（２Ｎ×２Ｎ）の隣接行列Ａｋは、（２×２）ブロックに関して以下のように定義されてもよい。
【数１８】
0006700198.tif 000029
【００６７】
ｋ番目のモードに対応付けられた次数（２Ｎ×２Ｎ）の行列Ｄｋは、（２×２）ブロックに関して定義され、以下のように与えられてもよい。
【数１９】
0006700198.tif 000030
【００６８】
ｋ番目のモードに対応付けられた重み付きラプラシアンLkは、以下のように定義されてもよい。
【数２０】
0006700198.tif 000031
【００６９】
Ｋ＋１のモードを有するＮ個のロボットによる切替式自律システムの展開は、以下のダイナミクスで記載されてもよい。
【数２１】
0006700198.tif 000032
ここで、モード指数ｋ＝１,…,Ｋ＋１である。
【００７０】
３．２  最適分散
位置χ(t)及び初期位置χ(0)＝χ0を有するＮ個のロボットのシステムに対して、所望の軌道の分散バージョンは、χd(t)と表されてもよい。マルチロボットシステムに対する望ましい軌道が与えられた場合、本技術の態様は、（１）式を満たしながら、Ｋ＋１のモード及びＫ回の全体切替タイミングτkのそれぞれに対してパラメータaijk及びbijkを最適化することによって、ダイナミクス（２６）を有する群ロボットに対して以下のコスト関数を最小にし、分散制御則のみを用いて行動を模倣してもよい。
【数２２】
0006700198.tif 000033
【００７１】
パラメータ化モードを最適化する共状態ダイナミクス及び最適性条件は、一般の設定において得られてもよい。結果は、分散システム（２６）に特化されてもよい。結果として得られた最適性条件及び共状態方程式は、最急降下アルゴリズムと併用されてもよい。さらに、Jを最小にするように分散システムのモード及び全体切替タイミングを最適化し、χd(t)を最適に分散させてもよい。
【００７２】
３．２．１  パラメータ化モードの最適化
ロボットの切替式自律システムは、時間ｔ＝０に開始されて時間ｔ＝Ｔに終了されてもよく、Ｋ＋１のモード及びＫ回の切替タイミングを有していてもよい。モードの各ダイナミクスは、関数fで与えられてもよいが、各モードkに対して異なるスカラーパラメータckでパラメータ化されてもよい。切替タイミングは、（１８）を満たすτ1,…,τKであって、ｋ番目のモードは、[τｋ-1,τk)の期間に生じてもよい。システムのダイナミクスは、以下のように表されてもよい。
【数２３】
0006700198.tif 000034
ここで、
【数２４】
0006700198.tif 000035
であり、また、ckは自由に選択可能であり、C＝[c1,…,cK+1]Tである。その目的は、以下の一般のコスト関数を最小にするようにCを選択することにある。
【数２５】
0006700198.tif 000036
【００７３】
コスト（３０）に対する（２９）の各ckの最適性条件は、以下のように表されてもよい。
【数２６】
0006700198.tif 000037
ここで、pは、ダイナミクス
【数２７】
0006700198.tif 000038
及び、境界条件
【数２８】
0006700198.tif 000039
を有する共状態を表していてもよい。
【００７４】
これらの結果を、最適の分散課題に適用するために、最適性条件及び共状態ダイナミクスは、分散システム（２６）及びコスト（２７）に特化されてもよい。Ｊを最小にするために、Ｋ＋１の各モードに対応付けられたパラメータaijk及びbijkが最適化されてもよい。グラフトポロジーに許容されるｉとｊとのすべての有効な組み合わせに対して、ak＝[…aijk,…]T及びbk＝[…bijk,…]Tを定義する。これらは、特定のモードｋに対するシステムダイナミクスに出現するすべてのパラメータを含有するベクトルを表していてもよい。
【００７５】
コスト（２７）に対するak及びbkの最適性条件は、以下のように算出されてもよい。
【数２９】
0006700198.tif 000040
【００７６】
行列∂f／∂ak及び∂f／∂bkは、以下に基づいて（２×１）のブロックを用いて要素決定されてもよい。
【数３０】
0006700198.tif 000041
ここで、fiは、エージェントiのダイナミクスに対応するfの（２×１）のブロックのであってもよい。
【００７７】
分散システムダイナミクス（２６）及びコスト関数（２７）は、共状態ダイナミクス（３２）に代入されてもよい。
【００７８】
（３４）式及び（３５）式におけるak及びbkの最適性条件を計算する共状態ダイナミクスは、以下のように表されてもよい。
【数３１】
0006700198.tif 000042
【００７９】
３．２．２  切替タイミングの最適化
モードｋがckでパラメータ化されるダイナミクスｆを有する切替式自律システムにおいて切替タイミングのコスト関数（３０）に対する最適性条件は、以下のように表されてもよい。
【数３２】
0006700198.tif 000043
【００８０】
共状態ダイナミクスは、（３２）式及び境界条件（３３）と同一であってもよい。コスト（２７）のシステム（２６）に特化された切替タイミング最適性条件は、以下のように与えられてもよい。
【数３３】
0006700198.tif 000044
ここで、共状態ダイナミクスは、（３８）と同一である。
【００８１】
３．３  フローチャート例
開示技術の一態様に応じて、複数の移動型ロボットは、一連のフォーメーションをともに行ってもよい。各ロボットは、その動作の一部として軌道を模倣してもよい。各ロボットによる当該軌道の模倣は、複数の動作モード間で切替を行うことによって行われてもよい。各ロボットは、センサ及びプロセッサを備えていてもよい。図１１は、開示技術の例示としての実施形態に係る方法例のフローチャートである。ブロック３０２において、プロセッサは、一連のフォーメーションを表すデータを受け取ってもよい。ブロック３０４において、プロセッサは、センサから、隣接ロボットとの相対的な距離及び角度の測定値を表すデータを受け取ってもよい。ブロック３０６において、プロセッサは、センサによって検出された相対的な距離及び角度の測定値に基づいて、隣接ロボットに対する変位ベクトルを決定してもよい。ブロック３０８において、プロセッサは、変位ベクトルに基づいて、ロボットの次のモードに対する拡大縮小係数を決定してもよい。ブロック３１０において、プロセッサは、変位ベクトルに基づいて、ロボットの次のモードに対する回転係数を決定してもよい。ブロック３１２において、プロセッサは、変位に基づいて、ロボットの次のモードに対する切替タイミングを決定してもよい。ブロック３１４において、プロセッサは、拡大縮小係数、回転係数、及び切替タイミングに基づいて、次のモードを実行する出力を行ってもよい。
【００８２】
一実施において、各ロボットのプロセッサは、そのすべての隣接ロボットに対する変位ベクトルを計算してもよい。プロセッサは、そのすべての隣接ロボットに対する変位ベクトルに基づいて、拡大縮小係数、回転係数、及び切替タイミングを含む、ロボットの次のモードに対するパラメータを決定してもよい。
【００８３】
一実施例において、プロセッサは、最適性条件及び共状態方程式に基づいて、拡大縮小係数、回転係数、及び切替タイミングを最適化してもよい。
【００８４】
一実施例において、プロセッサは、最急降下アルゴリズムを実行することによって、拡大縮小係数、回転係数、及び切替タイミングを最適化してもよい。
【００８５】
一実施例において、拡大縮小係数は、２つの隣接ロボット間の相対的な距離の測定値と定数とを乗算することによって、変位ベクトルを拡大縮小してもよい。
【００８６】
一実施例において、回転係数は、相対的な角度の測定値に定数を加算することによって、変位ベクトルを回転してもよい。
【００８７】
３．４  シミュレーション例
図１２（ａ）〜図１２（ｌ）は、複雑なドラムライン風マルチロボット軌道を辿る上記の最適の分散アルゴリズムのシミュレーションを示す。ドラムラインフォーメーションは、従来は振りつけ師によって設計されて集中的に実行されてきた。各瞬間に群メンバーによってとられる位置及び経路は、予め非常に詳細に決められている。その結果、群メンバーは、あらかじめ決められた経路を辿る練習に多くの時間を費やすことになる。しかしながら、そのような手法では、各群メンバーが、全体のダンスの流れを通じた経路を記憶し、自分が正しい位置にいるかどうかを把握するグローバルな知覚能力を有していることが必要となる。本明細書に記載の最適の分散では、分散制御則を用いて、非常に正確に本来のダンスの動きを模倣することができる。
【００８８】
図１２（ａ）〜図１２（ｌ）に示す例において、最適の分散アルゴリズムは、パラメータ化モードのそれぞれに任意に選択された初期値を有するＮ＝２１のロボットが関わるドラムライン風の軌道において用いられてもよい。計Ｋ＝２２回の全体切替タイミングは、開始時間ｔ＝０と終了時間ｔ＝Ｔ＝１０．７８との間に均一に配置されるように最初に入れられてもよい。ロボットのシステムは、２３までのモードを有していてもよい。
【００８９】
図１２（ａ)〜図１２（ｌ）は、上記最適化によって得られる、最適に分散された軌道結果を示す。図中、エージェントの実際の位置は○で示され、×で示された望ましい位置と線で結ばれている。シミュレーション結果から分かるように、結果として得られた分散制御則は、本来の軌道をうまく模倣することができる。
【００９０】
アルミホ（Armijo)ステップサイズアルゴリズムを用いた標準的な最急降下の一種を用いて、高確率のパラメータ化モードと低確率の切替タイミングとを確率論的に交互に最適化して駆動コストＪを局所的に最小化してもよい。図１３は、５０００回の反復を行った後のコストＪの収束を示す。
【００９１】
３．５  他の実施形態
図１４は、開示技術の一態様に係るスクリプト言語の画像による例示を示す。図１５は、開示技術の一態様に係るスクリプト言語の可視化されたインターフェースを示す。
【００９２】
図１６は、開示技術の一態様に係る、３つのロボットを制御するグラフィック化されたユーザインターフェースを示す。
【００９３】
４．  効果
本明細書に記載のマルチロボットシステムとその方法は、公知のシステム及び方法よりも性能が優れたものであり得る。一態様において、一般の経時的に変化する密度関数によって、マルチロボットによる最適の被覆がなされ、局所最小解への収束が実現し得る。本アルゴリズムは、良設定であり、分散型実施ができるため、公知のアルゴリズムよりも有利であり得る。
【００９４】
本技術は、捜索及び救助、監視、フロンティア開拓、農耕、災害フィールド、製造工場、脅威を検知して排除する防衛及び国家安全保障、並びにその他のいかなる軍事行動を含むがこれらに限定されない多くの用途に適用されてもよい。例えば、密度関数による最適の被覆は、マルチロボットを用いた捜索及び救助の状況に適用されてもよく、この場合、密度関数は、行方不明者が領域のある地点に存在する確率を表していてもよい。さらに、密度関数による最適の被覆は、マルチロボットを用いた監視及び調査に適用されてもよく、この場合、密度関数は、調査された「フロンティア」の関数となるようにモデル化されてもよい。
【００９５】
別の例として、密度関数による最適の被覆は、マルチロボットを用いた農業に適用されてもよい。より小型かつ機敏なロボットの群は、グループとしてまとまって多くの農業機能を実行でき、土壌を踏み固めてしまいガソリンを大量消費する大型トラクタの欠点を回避可能である。群ロボットは、ミクロレベルで農作物の世話をして個々の作物の水分や害虫をチェックし、チェック結果に基づいて水遣りや農薬使用等の決定を行ってもよい。農業従事者は、ｉＰａｄのアプリだけでロボットの制御及び通信が可能である。ロボットは、作物成長サイクル全体にわたって自律的かつ継続的に動作してもよい。
【００９６】
上記記載において、多くの特徴及び効果を、構造及び機能の詳細とともに示した。本発明をいくつかの形態で開示したが、特許請求の範囲に記載の本発明及びその均等物の精神及び範囲から逸脱することなしに、特に形状、寸法、及び部品配置において、多くの変形、追加、及び削除が可能であることが当業者には明白であろう。したがって、本明細書の教示によって示唆され得る他の変形例及び実施形態が、添付の特許請求の範囲の広がり及び範囲に包括されるものとして特に確保される。本明細書に用いられるところの用語「例」は、最良の形態というよりはむしろ例示を意味する。
【００９７】
それゆえに、本出願及び特許請求の範囲が基づく概念は、本出願において開示された実施形態及び特許請求の範囲のいくつかの目的を実現する他の構造、方法、及びシステムの設計の基礎として容易に用いられることが当業者には理解されよう。したがって、特許請求の範囲がそのような均等な構造を含むものとして捉えられることが重要である。
【００９８】
さらに、「要約書」の目的は、特許及び法律の用語または言い回しに詳しくない技術の専門家を特に含む一般公衆に、本出願の技術的開示の性質及び本質を一瞥して即座に理解せしめることにある。「要約書」は、本出願の特許請求の範囲を規定することが意図されておらず、特許請求の範囲の範囲をいかようにも限定することが意図されていない。
【図１】
0006700198.tif 000045
【図２】
0006700198.tif 000046
【図３】
0006700198.tif 000047
【図４】
0006700198.tif 000048
【図５】
0006700198.tif 000049
【図６】
0006700198.tif 000050
【図７（ａ）】
0006700198.tif 000051
【図７（ｂ）】
0006700198.tif 000052
【図７（ｃ）】
0006700198.tif 000053
【図７（ｄ）】
0006700198.tif 000054
【図７（ｅ）】
0006700198.tif 000055
【図７（ｆ）】
0006700198.tif 000056
【図８】
0006700198.tif 000057
【図９】
0006700198.tif 000058
【図１０】
0006700198.tif 000059
【図１１】
0006700198.tif 000060
【図１２】
0006700198.tif 000061
【図１３】
0006700198.tif 000062
【図１４】
0006700198.tif 000063
【図１５】
0006700198.tif 000064
【図１６】
0006700198.tif 000065