(57)【要約】【課題】移動体はリアルタイムに障害物を検出しポテンシャル関数による障害物の回避と移動方位の導出を行い、停留した場合、移動体に対して目標位置へ向かわせる度合いを表し目標位置に適用した連続微分可能な関数を偏微分した関数である目標位置導関数の重み係数の値を減じる変更を行うことにより停留状態から抜け出すことができる移動制御装置を提供する。【解決手段】目標位置へ向かう過程で障害物を検出し、全体導関数に基づいて、移動体の移動経路を決定し、自装置を搭載する移動体が停留しているか否かを判定する。停留判定部が停留していると判定した場合に、目標位置導関数の重み係数の値を減じ、重み係数変更後の全体導関数に基づいて、移動体の移動経路を決定する。【選択図】図１
2014130495.tif 000002
【特許請求の範囲】
【請求項１】
目標位置へ向かう過程で障害物を検出する障害物検出部と、
移動体に対して障害物位置から離れさせる度合いを表し前記障害物の位置それぞれに適用した連続微分可能な関数と、前記移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数と、を生成する関数生成部と、
前記障害物に対して適用した関数を偏微分した関数である障害物導関数と、前記目標位置の連続微分可能な関数を偏微分した関数であり重み係数を有する目標位置導関数と、前記障害物導関数と前記目標位置導関数とを合成した関数である全体導関数、を生成する導関数生成部と、
前記導関数生成部の生成する前記全体導関数に基づいて、自装置を搭載する移動体の移動経路を決定する経路決定部と、
前記移動体が停留しているか否かを判定する停留判定部と、
前記停留判定部が停留していると判定した場合に、前記目標位置導関数の重み係数の値を減じる変更する重み係数変更部と、
を備え、
前記経路決定部は、前記重み係数変更部が行う重み係数変更後の全体導関数に基づいて、前記移動体の移動経路を決定する
ことを特徴する移動制御装置。
【請求項２】
前記停留判定部は、前記導関数生成部の生成する前記全体導関数に基づいて、前記移動体が停留しているか否かを判定する
ことを特徴とする請求項１に記載の移動制御装置。
【請求項３】
前記導関数生成部は、前記移動体が前記経路決定部の決定した移動経路を移動中に全体導関数を生成し、
前記経路決定部は、前記移動体が移動中に生成した全体導関数に基づいて移動経路を決定する
ことを特徴とする請求項１または請求項２に記載の移動制御装置。
【請求項４】
前記重み係数変更部が行う重み係数変更後に停留状態から抜け出したか否かを判定する停留解除判定部
を備え、
前記重み係数変更部は、当該停留解除判定部が前記停留状態から抜け出したと判定した場合に、前記重み係数を初期値に戻す
ことを特徴とする請求項１から請求項３の何れかに記載の移動制御装置。
【請求項５】
前記停留解除判定部は、前記重み係数変更部が行う重み係数変更後に前記導関数生成部が生成する全体導関数に基づいて、前記停留状態から抜け出したか否かを判定する
ことを特徴とする請求項４に記載の移動制御装置。
【請求項６】
前記停留解除判定部は、前記重み係数変更部が行う重み係数変更を所定回数検出すると停留状態から抜け出したと判定する
ことを特徴とする請求項４または請求項５に記載の移動制御装置。
【請求項７】
目標位置へ向かう過程で障害物を検出し、
移動体に対して障害物位置から離れさせる度合いを表し前記障害物の位置それぞれに適用した連続微分可能な関数と、前記移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数と、を生成し、
前記障害物の連続微分可能な関数を偏微分した関数である障害物導関数と、前記目標位置の連続微分可能な関数を偏微分した関数である目標位置導関数と、前記障害物導関数と前記目標位置導関数とを合成した関数である全体導関数、を生成し、
前記生成する前記全体導関数に基づいて、自装置を搭載する移動体の移動経路を決定し、
前記移動体が停留しているか否かを判定し、
前記停留していると判定した場合に、前記目標位置導関数の重み係数の値を減じる変更を行い、
前記重み係数変更後の全体導関数に基づいて、前記移動体の移動経路を決定する
ことを特徴する移動制御方法。
【請求項８】
移動制御装置のコンピュータを、
目標位置へ向かう過程で障害物を検出する障害物検出手段、
移動体に対して障害物位置から離れさせる度合いを表し前記障害物の位置それぞれに適用した連続微分可能な関数と、前記移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数と、を生成する関数生成手段、
前記障害物の連続微分可能な関数を偏微分した関数である障害物導関数と、前記目標位置の連続微分可能な関数を偏微分した関数である目標位置導関数と、前記障害物導関数と前記目標位置導関数とを合成した関数である全体導関数、を生成する導関数生成手段、
前記導関数生成手段の生成する前記全体導関数に基づいて、自装置を搭載する移動体の移動経路を決定する経路決定手段、
前記移動体が停留しているか否かを判定する停留判定手段、
前記停留判定手段が停留していると判定した場合に、前記目標位置導関数の重み係数の値を減じる変更を行う重み係数変更手段、
を備え、
前記経路決定手段は、前記重み係数変更手段が行う重み係数変更後の全体導関数に基づいて、前記移動体の移動経路を決定する
として機能させることを特徴するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律移動のための移動制御装置、移動制御方法及びプログラムに関する。
【背景技術】
【０００２】
大規模災害における被害状況確認や資源探査等への応用を目的として、目標位置までの障害物が未知の場合にも自己判断により目標位置まで到達する自律ロボットなどの移動体の開発が盛んに行われている。
特許文献１に記載の技術は、ポテンシャル関数に基づいて移動体の移動領域をモデル化し、移動体が障害物の各測定点から受ける斥力を軸成分に分離し計算し、計算した各軸の正方向の最大値と負方向の最大値の和を各軸の成分とした障害物回避用斥力に基づいて障害物を回避する技術が記載されている。
また特許文献２には、Ｎｅｕｍａｎｎの境界条件あるいはＤｉｒｉｃｈｌｅｔの境界条件あるいは両者の混合境界条件を適用したラプラス調和関数を用いて経路を求め、障害物を回避する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５３３６１号公報
【特許文献２】特開２００７−１５５５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術は、移動体が障害物により停留することを考慮しておらず、停留した場合に停留状態から即座に抜け出す技術ではない。停留状態とは、障害物測距点による斥力と目標位置の引力が釣り合い、移動体がその場所に留まる状態のことである。
また、特許文献２の技術は、事前に目標位置までの全体経路を導出して移動体が移動する技術であり、移動体が障害物により停留した場合に停留状態から即座に抜け出すことのできる技術ではない。
【０００５】
そこでこの発明は、上記の課題を解決することのできる移動制御装置、移動制御方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、目標位置へ向かう過程で障害物を検出する障害物検出部と、移動体に対して障害物位置から離れさせる度合いを表し前記障害物の位置それぞれに適用した連続微分可能な関数と、前記移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数と、を生成する関数生成部と、前記障害物に対して適用した関数を偏微分した関数である障害物導関数と、前記目標位置の連続微分可能な関数を偏微分した関数であり重み係数を有する目標位置導関数と、前記障害物導関数と前記目標位置導関数とを合成した関数である全体導関数、を生成する導関数生成部と、前記導関数生成部の生成する前記全体導関数に基づいて、自装置を搭載する移動体の移動経路を決定する経路決定部と、前記移動体が停留しているか否かを判定する停留判定部と、前記停留判定部が停留していると判定した場合に、前記目標位置導関数の重み係数の値を減じる変更する重み係数変更部と、を備え、前記経路決定部は、前記重み係数変更部が行う重み係数変更後の全体導関数に基づいて、前記移動体の移動経路を決定することを特徴する移動制御装置である。
【０００７】
また本発明は、前記停留判定部は、前記導関数生成部の生成する前記全体導関数に基づいて、前記移動体が停留しているか否かを判定することを特徴とする移動制御装置である。
【０００８】
また本発明は、前記導関数生成部は、前記移動体が前記経路決定部の決定した移動経路を移動中に全体導関数を生成し、前記経路決定部は、前記移動体が移動中に生成した全体導関数に基づいて移動経路を決定することを特徴とする移動制御装置である。
【０００９】
また本発明は、前記重み係数変更部が行う重み係数変更後に停留状態から抜け出したか否かを判定する停留解除判定部を備え、前記重み係数変更部は、当該停留解除判定部が前記停留状態から抜け出したと判定した場合に、前記重み係数を初期値に戻すことを特徴とする移動制御装置である。
【００１０】
また本発明は、前記停留解除判定部は、前記重み係数変更部が行う重み係数変更後に前記導関数生成部が生成する全体導関数に基づいて、前記停留状態から抜け出したか否かを判定することを特徴とする移動制御装置である。
【００１１】
また本発明は、前記停留解除判定部は、前記重み係数変更部が行う重み係数変更を所定回数検出すると停留状態から抜け出したと判定することを特徴とする移動制御装置である。
【００１２】
また本発明は、目標位置へ向かう過程で障害物を検出し、移動体に対して障害物位置から離れさせる度合いを表し前記障害物の位置それぞれに適用した連続微分可能な関数と、前記移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数と、を生成し、前記障害物の連続微分可能な関数を偏微分した関数である障害物導関数と、前記目標位置の連続微分可能な関数を偏微分した関数である目標位置導関数と、前記障害物導関数と前記目標位置導関数とを合成した関数である全体導関数、を生成し、前記生成する前記全体導関数に基づいて、自装置を搭載する移動体の移動経路を決定し、前記移動体が停留しているか否かを判定し、前記停留していると判定した場合に、前記目標位置導関数の重み係数の値を減じる変更を行い、前記重み係数変更後の全体導関数に基づいて、前記移動体の移動経路を決定することを特徴する移動制御方法である。
【００１３】
また本発明は、移動制御装置のコンピュータを、目標位置へ向かう過程で障害物を検出する障害物検出手段、移動体に対して障害物位置から離れさせる度合いを表し前記障害物の位置それぞれに適用した連続微分可能な関数と、前記移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数と、を生成する関数生成手段、前記障害物の連続微分可能な関数を偏微分した関数である障害物導関数と、前記目標位置の連続微分可能な関数を偏微分した関数である目標位置導関数と、前記障害物導関数と前記目標位置導関数とを合成した関数である全体導関数、を生成する導関数生成手段、前記導関数生成手段の生成する前記全体導関数に基づいて、自装置を搭載する移動体の移動経路を決定する経路決定手段、前記移動体が停留しているか否かを判定する停留判定手段、前記停留判定手段が停留していると判定した場合に、前記目標位置導関数の重み係数の値を減じる変更を行う重み係数変更手段、を備え、前記経路決定手段は、前記重み係数変更手段が行う重み係数変更後の全体導関数に基づいて、前記移動体の移動経路を決定するとして機能させることを特徴するプログラムである。
【発明の効果】
【００１４】
本発明の実施形態による移動制御装置によれば、移動体はリアルタイムに障害物を検出しポテンシャル関数による障害物の回避と移動方位の導出を行い、停留した場合、移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数を偏微分した関数である目標位置導関数の重み係数の値を減じる変更を行うことにより停留状態から抜け出すことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態による移動制御装置１０の構成を示す図である。
【図２】本発明の一実施形態による記憶部１１１が記憶するデータテーブルの例を示す図である。
【図３】本発明の一実施形態による移動制御装置１０の算出する全体ポテンシャル関数のグラフ例を示す図である。
【図４】本発明の一実施形態による移動制御装置１０の全体ポテンシャル関数のグラフに対応する移動経路の例を示す図である。
【図５】本発明の一実施形態による移動制御装置１０の障害物の検出とそれに伴う導出経路の例を示す図である。
【図６】本発明の一実施形態による移動制御装置１０の障害物の検出とそれに伴う導出経路の例を示す図である。
【図７】本発明の一実施形態による移動制御装置１０の障害物の検出とそれに伴う導出経路の例を示す図である。
【図８】本発明の一実施形態による移動制御装置１０の処理フローを示す図である。
【図９】本発明の一実施形態による移動制御装置１０の停留と停留解除を説明する図である。
【図１０】本発明の一実施形態による移動制御装置１０の停留と停留解除を説明する図である。
【図１１】本発明の一実施形態による移動制御装置１０の停留と停留解除を説明する図である。
【図１２】本発明の一実施形態による移動制御装置１０の停留と停留解除を説明する図である。
【発明を実施するための形態】
【００１６】
＜実施形態＞
図１は、本発明の一実施形態による移動制御装置１０の構成を示す図である。
図１で示すように、本実施形態による移動制御装置１０は、障害物検出部１０１、関数生成部１０２、導関数生成部１０３、経路決定部１０４、停留判定部１０５、重み係数変更部１０６、停留解除判定部１０７、記憶部１１１で構成される。
【００１７】
障害物検出部１０１、関数生成部１０２、導関数生成部１０３、経路決定部１０４、停留判定部１０５、重み係数変更部１０６、停留解除判定部１０７は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの制御部がプログラムを実行することにより、移動制御装置１０に構成される。
【００１８】
ここで、障害物検出部１０１は、目標位置へ向かう過程で障害物を検出する機能部である。
また、関数生成部１０２は、移動体に対して障害物位置から離れさせる度合いを表し前記障害物の位置それぞれに適用した連続微分可能な関数と、移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数と、を生成する機能部である。
また、導関数生成部１０３は、障害物に対して適用した関数を偏微分した関数である障害物導関数と、目標位置の連続微分可能な関数を偏微分した関数であり重み係数を有する目標位置導関数と、障害物導関数と目標位置導関数とを合成した関数である全体導関数、を生成する機能部である。
また、経路決定部１０４は、導関数生成部１０３の生成する全体導関数に基づいて、自装置を搭載する移動体の移動経路を決定する機能部である。
また、停留判定部１０５は、自装置を搭載する移動体が停留しているか否かを判定する機能部である。
また、重み係数変更部１０６は、停留判定部１０５が停留していると判定した場合に、目標位置導関数の重み係数の値を減じる変更する機能部である。
また、停留解除判定部１０７は、重み係数変更部１０６が行う重み係数変更後に停留状態から解除されたか否かを判定する機能部である。
また、記憶部１１１は、プログラムや種々のデータを記憶する記憶部である。
【００１９】
図２は、本発明の一実施形態による記憶部１１１が記憶するデータテーブルの例を示す図である。
このデータテーブルは、目標位置や障害物位置などの座標に対してそれぞれ適用された連続微分可能な関数であるポテンシャル関数とその関数の導関数であるポテンシャル導関数とを対応付けて記憶している。
なお、目標位置のポテンシャル関数は、負の値で表される関数であり、移動体を目標位置へ向かわせる度合いを示す。また、障害物位置のポテンシャル関数は、正の値で表される関数であり、移動体を障害物位置から離れさせる度合いを示す。
また、ポテンシャル関数を偏微分した関数をここではポテンシャル導関数と呼ぶ。また、移動領域全体に対する全体ポテンシャル導関数は全体導関数の１つである。
【００２０】
図３は、本発明の一実施形態による移動制御装置１０の算出する全体ポテンシャル関数のグラフ例を示す図である。
図３は、移動体がスタート位置（点Ｓ）から目標位置（点Ｇ）まで移動する領域を目標位置と障害物に適用したポテンシャル関数によって表している。
全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）は、次の式（１）で表される。
【００２１】
【数１】
2014130495.tif 000003
【００２２】
ただし、この式（１）において、ωｐは重み係数である。また、Ｎは後述する停留状態から抜け出す際に移動体の回避する距離が長くなり過ぎるのを予防するための回数制限を表す係数である。そして移動体が停留状態から抜け出す際に、重み係数変更部１０６は０＜ωｐ＜１の範囲の値を用いて重み係数を減じて、経路決定部１０４は停留を抜け出すための経路決定処理を行う。
また、目標位置の点Ｇのポテンシャル関数ωｐNＰｄ（ｘ，ｙ）は、負のポテンシャル関数であり、次の式（２）で表される。
【００２３】
【数２】
2014130495.tif 000004
【００２４】
この式（２）は、移動体が座標（ｘ，ｙ）に存在し、目標位置が点Ｇの座標（ｘｄ，ｙｄ）に存在する場合のポテンシャル関数ωｐNＰｄ（ｘ，ｙ）を示している。
また、障害物位置のポテンシャル関数Ｐｏｋ（ｘ，ｙ）は、正のポテンシャル関数であり、次の式（３）で表される。
【００２５】
【数３】
2014130495.tif 000005
【００２６】
この式（３）は、移動体が座標（ｘ，ｙ）に存在し、障害物位置の座標（ｘｏ，ｙｏ）に存在する場合のポテンシャル関数Ｐｏｋ（ｘ，ｙ）を示している。
ただし、ｋ＝１、２、３，４、・・・である。
【００２７】
図３において、全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を表す垂直方向の基準点０に対して、目標位置はマイナス（−）で示し、障害物１と障害物２はプラスで示すこととする。
そして、移動体には、負のポテンシャル関数であるωｐNＰｄ（ｘ，ｙ）に基づく目標位置導関数によって目標位置へ向かうベクトルが働く。また、移動体には、正のポテンシャル関数であるＰｏ１（ｘ，ｙ）、Ｐｏ２（ｘ，ｙ）に基づく目標位置導関数によって障害物から遠ざかる向きのベクトルが働く。
ここで、目標位置導関数は、次の式（４−１）、式（４−２）で表される。
【００２８】
【数４】
2014130495.tif 000006
【００２９】
また、障害物導関数は、次の式（５−１）、式（５−２）で表される。
【００３０】
【数５】
2014130495.tif 000007
【００３１】
そして、目標位置導関数と障害物導関数とを合成した全体導関数は、次の式（６−１）、式（６−２）で表される。
【００３２】
【数６】
2014130495.tif 000008
【００３３】
それぞれのベクトルは目標位置と移動体との距離または障害物と移動体との距離が近い程大きく、それらのベクトルの合成ベクトルが、移動体の移動方向を示す。
移動体は、スタート位置から目標位置に移動する間、障害物を検出する度に正のポテンシャル関数を適用し、新たな移動経路を導出しながら目標位置に向かって移動する。
ここで、移動体が目標位置と障害物とから受けるベクトルは、次の式（７）で表すことができる。
【００３４】
【数７】
2014130495.tif 000009
【００３５】
ただし、この式（７）において、ｉはｘ軸方向の単位ベクトルであり、ｊはｙ軸方向の単位ベクトルである。
この式（７）は、全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を各座標軸の変数で偏微分した全体ポテンシャル導関数の各成分に、各座標軸方向の単位ベクトルを乗じたベクトルである。ここで、“ｇｒａｄ”は、座標（スカラ）から移動方向（ベクトル）を求める演算子である。
図３では、障害物１の一部である点Ａに連続微分可能な関数としてポテンシャル関数Ｐｏ１（ｘ，ｙ）を適用する。また図３では、障害物２の一部である点Ｂに連続微分可能な関数としてポテンシャル関数Ｐｏ２（ｘ，ｙ）を適用する。そして、図３は、それらを合計した関数は全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）のグラフを示している。
【００３６】
図４は、本発明の一実施形態による移動制御装置１０の全体ポテンシャル関数のグラフに対応する移動経路の例を示す図である。
図４は、移動体がスタート位置（点Ｓ）から目標位置（点Ｇ）まで移動するための、移動制御装置１０の導出経路ｃを示している。この導出経路ｃは、式（７）によって求められるベクトルの向きをつなげ合わせた線で表される。また、図４は、移動制御装置１０と目標位置Ｇとの間に存在する障害物１と障害物２を示している。また、図４は、移動体が障害物１の一部を検出し、検出した障害物１の一部をポテンシャル関数により障害物としてモデル化するための点Ａと、同様に、移動制御装置１０が障害物２の一部を検出し、検出した障害物２の一部をポテンシャル関数により障害物としてモデル化するための点Ｂとを示している。
【００３７】
図５〜図７は、本発明の一実施形態による移動制御装置１０の障害物の検出とそれに伴う導出経路の例を示す図である。
図８は、本発明の一実施形態による移動制御装置１０の処理フローを示す図である。
この図は、移動制御装置１０が図４で示した導出経路ｃをどのように導出するかを示している。ただし、図５〜図７には、図４で示した障害物１と障害物２に加え、障害物３が存在し、移動体はこの障害物３により停留する。
【００３８】
ここで、本実施形態による移動制御装置１０の障害物の検出とそれに伴う導出経路の例を説明しながら、本実施形態による移動制御装置１０の処理フローを説明する。この実施形態による移動制御装置１０の処理フローは、移動制御装置１０を搭載する移動体があるスタート位置から目標位置へ障害物を検出し回避しながら自律移動する場合の例である。
なお、本実施形態における移動体の目標位置や移動体の検出する障害物位置のモデル化に使用する関数は、連続微分可能な関数の１つであるポテンシャル関数である。
【００３９】
大規模災害における被害状況確認や資源探査等を行う際、自律ロボットなどの移動体は目標位置に到達するまでに存在する障害物が未知の場合にも移動経路が存在する限り目標位置まで到達する必要がある。
このような状況において、まず、移動体は、図５で示すスタート位置（点Ｓ）から目標位置に向かって自律移動を開始すると仮定する。
【００４０】
障害物を検出した移動制御装置１０は、自身の移動領域を連続微分可能な関数で表し、その関数をｇｒａｄ演算子により偏微分することによって座標（スカラ）から移動方向（ベクトル）を経路決定部１０４が求め、移動体はその求めた移動方向へ移動する。
障害物１と障害物２は、移動体がスタート位置に存在する時点で実在するが、障害物検出部１０１はその時点ではそれらの障害物を検出していないものとする。
そのため、移動制御装置１０の関数生成部１０２は、移動体の移動するポテンシャル場を表す全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を記憶部１１１から取得し目標位置のポテンシャル関数ωｐNＰｄ（ｘ，ｙ）を用いて生成する（ステップＳ１）。
【００４１】
関数生成部１０２がポテンシャル関数ωｐNＰｄ（ｘ，ｙ）を生成すると、導関数生成部１０３は、この関数生成部１０２の生成した式（１）で示す全体ポテンシャル関数を偏微分する（ステップＳ２）。
導関数生成部１０３の生成する全体ポテンシャル導関数は、経路決定部１０４により式（７）で表されるベクトルに変換される。
式（７）で表される全体ベクトルは、全体ポテンシャル関数で表される空間平面上の各点におけるベクトルを表している。そして、この全体ベクトルは、移動体が移動する向きを表している。
移動体は、現在位置に対応した座標における全体ベクトルの示す移動方向に移動する。そして移動体は、障害物検出部１０１が別の障害物を探知するまで現在のポテンシャル導関数に基づくベクトルの方向に移動する。
【００４２】
その後、移動体の移動中、移動制御装置１０の障害物検出部１０１は、レーダなどにより障害物（障害物１）を検出する（ステップＳ３）。
図６は、移動体がスタート位置を出発し、障害物（障害物１）を検出したこの状況を示している。
障害物検出部１０１は、障害物（障害物１）を検出すると、検出した障害物（障害物１）の表面を点の集合と捉え、その中の点例えば最も近い点Ａの座標を障害物の存在する位置情報として記憶部１１１に記録する（ステップＳ４）。
障害物として記憶部１１１に記録する位置情報は１点とは限らず、複数の点を障害物として登録してもよい。また、障害物検出部１０１は、障害物として記憶部１１１に記録された複数の点のうち座標が近く、その点間を移動体が通過できないと判断した場合は、その点間の座標も障害物として記憶部１１１に図２で示したデータテーブルのように記録する。
なお、記憶部１１１が記憶するデータが多く、記憶領域が不足する場合、移動体の現在座標とデータテーブルの座標とを比較し、現在座標から最も遠いデータを削除し、その領域に新たなデータを記録してもよい。また、記憶部１１１が記憶するデータが多く、記憶領域が不足する場合、最も古いデータを削除し、その領域に新たなデータを記録してもよい。
またステップＳ４の処理に続き、障害物検出部１０１は、点Ａの座標で障害物１を検出したことを通知する検出通知信号を関数生成部１０２へ送信する（ステップＳ５）。
【００４３】
関数生成部１０２は、障害物検出部１０１から検出通知信号を受信すると、記憶部１１１に記録している各座標に対してポテンシャル関数Ｐｏｋ（ｘ，ｙ）を適用する（ステップＳ６）。
そして、関数生成部１０２は、式（１）で示す一時刻前の全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）に検出した障害物に適用した各座標のポテンシャル関数を加えて、現在の全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を生成する（ステップＳ７）。すなわち、関数生成部１０２は、初回に全体ポテンシャル関数を算出し、その後は新たに検出した障害物に対するポテンシャル関数を加える。
関数生成部１０２は、新たに全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を生成すると、この全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を導関数生成部１０３に送信する。
【００４４】
導関数生成部１０３は、関数生成部１０２から全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を受信すると、その全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を偏微分して全体ポテンシャル導関数を生成する（ステップＳ８）。
そして、経路決定部１０４は、全体ポテンシャル導関数に基づいて式（７）で示す全体ベクトルを生成する（ステップＳ９）。
この式（７）で示すポテンシャル導関数は、ベクトルであり、移動体の存在する座標（ｘ，ｙ）における移動体の移動方向を示す。
移動体は、全体ベクトルの示すベクトル方向へ移動しながら、例えば０．１秒毎に移動後の座標におけるベクトル方向を演算し、演算したベクトルの示す方向へ移動する（ステップＳ１０）。
この移動体の移動は、移動体が次の障害物を検出するまで続く。
【００４５】
その後、移動体の移動中、移動制御装置１０の障害物検出部１０１は、レーダなどにより障害物２を検出する（ステップＳ３）。
図７は、移動体が障害物２を検出した状況を示している。以降、移動体が障害物を検出する度に処理フローのステップＳ３〜ステップＳ１０が行われる。
【００４６】
障害物検出部１０１は、障害物２を検出すると、検出した障害物２の表面を点の集合と捉え、その点の座標のうち記憶部１１１のデータテーブルに記憶されていない座標の点を障害物の存在する位置情報として記憶部１１１に記録する（ステップＳ４）。
障害物として記憶部１１１に記録する位置情報は１点とは限らず、複数の点を障害物として登録してもよい。また、障害物検出部１０１は、障害物として記憶部１１１に記録された複数の点のうち座標が近く、その点間を移動体が通過できないと判断した場合は、その点間の座標も障害物として記憶部１１１に記録する。
【００４７】
また、障害物検出部１０１は、点Ｂの座標で障害物２を検出したことを通知する検出通知信号を関数生成部１０２へ送信する（ステップＳ５）。
関数生成部１０２は、障害物検出部１０１から検出通知信号を受信すると、記憶部１１１に記録した各座標に対してポテンシャル関数ωｐNＰｄ（ｘ，ｙ）を導出する（ステップＳ６）。
そして、関数生成部１０２は、新たに検出し適用した各座標のポテンシャル関数を検出前のポテンシャル関数に加え、式（１）で示すポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を生成する（ステップＳ７）。
関数生成部１０２は、式（１）で示す全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を生成すると、この全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を導関数生成部１０３に送信する。
【００４８】
導関数生成部１０３は、関数生成部１０２から全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を受信すると、その全体ポテンシャル関数ＰＡＬＬ（ｘ，ｙ）を偏微分して全体ポテンシャル導関数を生成する（ステップＳ８）。
そして、経路決定部１０４は、全体ポテンシャル導関数に基づいて式（７）で示す全体ベクトルを生成する（ステップＳ９）。
この式（７）で示す全体ベクトルは移動体の存在する座標（ｘ，ｙ）における移動体の移動方向を示す。
移動体は、全体ベクトルの示すベクトル方向へ移動しながら、例えば０．１秒毎に移動後の座標におけるベクトル方向を演算し、演算したベクトルの示す方向へ移動する（ステップＳ１０）。
この移動体の移動中、経路に存在する障害物は、障害物１と障害物２と以外にも無数存在する可能性があり、ステップＳ３〜ステップＳ１０の処理を繰り返す。
【００４９】
図９〜図１２は、本発明の一実施形態による移動制御装置１０の停留と停留解除を説明する図である。
図９は、移動体が図７で示した導出経路ｃを移動中で、障害物検出部１０１は障害物を検出していない状態を示している。この状態で移動体は、目標位置のポテンシャル関数に基づくベクトルａ１によって目標位置に向かって移動している。
【００５０】
その後、障害物検出部１０１は、図１０で示すように、障害物３を検出し、検出した障害物の表面の複数の点（図１０では障害物から出ている矢印の付け根の点）のそれぞれに連続微分可能な関数としてポテンシャル関数を適用する。そして、関数生成部１０２は、全体ポテンシャル関数を算出する。
そして、導関数生成部１０３は、関数生成部１０２の算出したポテンシャル関数に基づいて、全体ポテンシャル導関数を算出する。
そして、経路決定部１０４は、導関数生成部１０３の算出したポテンシャル導関数に基づいて、式（７）より移動体の現在位置における移動方向を決定する。
【００５１】
障害物３を検出していない場合、図９で示したように、経路決定部１０４が決定する経路は、移動体から目標位置へ向かうベクトルのみにより決定される移動体から目標位置へ真っ直ぐ向かう経路である。
この状況で移動体の進行方向に図１０で示すような障害物が存在すると、目標位置のポテンシャル導関数と障害物のポテンシャル導関数から算出した全体ポテンシャル関数が０あるいは非常に小さい値となり移動方向が決定されず、移動体は壁同士が接続される隅に停留してしまう。このような状況が所定時間続くと、停留判定部１０５は、例えば絶対値としきい値による停留判定（｜−ｇｒａｄＰＡＬＬ（ｘ，ｙ）｜≦ＴＳＴＯＰ）に基づいて、あるしきい値ＴＳＴＯＰ以下のベクトル変化しか生じないと判定した場合、移動体自身が停留していると判定する（ステップＳ１１）。
また停留判定部１０５は、−ｇｒａｄＰＡＬＬ２（ｘ，ｙ）と−ｇｒａｄＰＡＬＬ１（ｘ，ｙ）の向きによる停留判定に基づいて、１つ前のベクトルの向きと今回のベクトルの向きとが異なる向きを所定回数繰り返すと移動体が同じ場所を行ったり来たりを繰り返していると判定し、移動体自身が停留していると判定してもよい。ただし、−ｇｒａｄＰＡＬＬ２（ｘ，ｙ）は１つ前に算出したベクトルであり、−ｇｒａｄＰＡＬＬ１（ｘ，ｙ）は今回算出したベクトルである（ステップＳ１１）。
また停留判定部１０５は、ＧＰＳなどからの位置情報に基づいて、自身の位置が所定時間変化しないと判定した場合、移動体自身が停留していると判定してもよいステップＳ１１）。
【００５２】
このように、移動体自身が停留していると停留判定部１０５が判定すると、図１１のベクトルａ３として示すように、重み係数変更部１０６は、目標位置導関数の重み係数ωｐの値を減じる（ステップＳ１２）。そして、経路決定部１０４は、目標位置導関数の重み係数ωｐの値を減じた全体導関数に基づいて式（７）より全体ベクトルを再度演算する。ここでの演算は、図１０で示す障害物３に基づくベクトルｂ１、ｂ２と、目標位置に基づくベクトルａ１に、目標位置と反対向きのベクトルを加算する演算であり、算出されたベクトルは、全体では戻る方向（障害物から離れる方向）となるベクトルである。
重み係数変更部１０６は、ステップＳ１２で目標位置導関数の重み係数ωｐの値を減じる処理を行う場合には、例えば、式（１）におけるωｐＮ（０＜ωｐ＜１）におけるＮを例えば０．１秒毎に１ずつ大きくする。移動体は、１ずつ大きくなったそれぞれのＮに対して経路決定部１０４が決定した移動方向に移動する。そして、停留解除判定部１０７は、その移動の度に移動体が停留から抜け出したかを判定すればよい。
また、重み係数が小さくなり過ぎて移動体が停留した際に移動体が障害物から離れ過ぎないように、すなわち、目標位置まで遠回りし過ぎないように、Ｎの大きさの増加に制限を与えてもよい。例えば、重み係数変更部１０６は、ωｐ＝０．５であるときＮの大きさの増加に５回の制限を与えると、０．５５＝０．０３１２５以下になることはない。
このように重み係数変更部１０６が所定回数の重み係数の変更を行った場合、停留解除判定部１０７は、所定回数の重み係数の変更を検出し移動体が停留状態から抜け出したと判定する（ステップＳ１３）。
【００５３】
また、停留解除判定部１０７は、例えば、｜−ｇｒａｄＰＡＬＬ（ｘ，ｙ）｜＜ＴＳＴＡＲＴの条件が成り立つか否かを判定し成り立つ場合には、あるしきい値ＴＳＴＡＲＴ以下の大きさのベクトルに変化したと判定し、停留状態から抜け出したと判定してもよい（ステップＳ１３）。
また、停留解除判定部１０７は、必要に応じてベクトルの向きを考慮して停留状態から抜け出したと判定してもよい（ステップＳ１３）。
また、停留解除判定部１０７は、ＧＰＳなどからの位置情報に基づいて、停留状態から抜け出したと判定してもよい（ステップＳ１３）。図１２は、停留状態から抜け出した状態を示している。
そして、停留解除判定部１０７が停留状態から抜け出したと判断した場合、停留解除判定部１０７は重み係数変更部１０６に停留状態から抜け出したことを報知する停留解除信号を送信する（ステップＳ１４）。
重み係数変更部１０６は、停留解除信号を受信すると、小さくした重み係数の値を初期値に戻す（ステップＳ１５）。
そして、移動体は障害物を検出するまたは目的位置に到達するまでステップＳ３〜ステップＳ１５の各ステップを繰り返す。
以上、本実施形態による移動制御装置１０の処理フローについて説明したが、上述の移動制御装置１０の処理によれば、移動体はリアルタイムに障害物を検出しポテンシャル関数による障害物の回避と移動方位の導出を行い、停留した場合、移動体に対して目標位置へ向かわせる度合いを表し当該度合いを調整する重み係数を有する連続微分可能な関数を偏微分した関数である目標位置導関数の重み係数の値を減じる変更を行うことにより停留状態から抜け出すことができる。
【００５４】
なお本発明の実施形態について説明したが、上述の移動制御装置１０は内部に、コンピュータシステムを有している。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００５５】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００５６】
１０・・・移動制御装置
１０１・・・障害物検出部
１０２・・・関数生成部
１０３・・・導関数生成部
１０４・・・経路決定部
１０５・・・停留判定部
１０６・・・重み係数変更部
１０７・・・停留解除判定部
１１１・・・記憶部
【図１】
2014130495.tif 000010
【図２】
2014130495.tif 000011
【図４】
2014130495.tif 000012
【図５】
2014130495.tif 000013
【図６】
2014130495.tif 000014
【図７】
2014130495.tif 000015
【図８】
2014130495.tif 000016
【図９】
2014130495.tif 000017
【図１０】
2014130495.tif 000018
【図１１】
2014130495.tif 000019
【図１２】
2014130495.tif 000020
【図３】
2014130495.tif 000021