(57)【要約】【課題】記憶領域と演算量を抑えつつ目的地まで滑らかに移動することが可能な自律移動体を提供する。【解決手段】ロボット１１は、サブゴール記憶部と、自機情報取得部と、最短サブゴール探索部と、サブゴール抽出部と、仮想移動目標演算部と、を備えている。サブゴール記憶部は、初期位置から目標位置９０に至るまでの経路に複数設定されたそれぞれのサブゴールの位置と、初期位置からのサブゴールの順序と、を記憶している。自機情報取得部は、自機の現在位置を取得する。最短サブゴール探索部は、サブゴール記憶部が記憶しているサブゴールの中で、現在位置から最短距離にあるサブゴールを探索する。サブゴール抽出部は、前記最短距離にあるサブゴール８２を含み、現在位置を中心とした領域円１００内に位置するサブゴールを抽出する。仮想移動目標演算部は、サブゴール抽出部によって抽出された各サブゴールの位置に基づいて仮想移動目標８８を演算する。【選択図】図１５
2010092279.tif 000002
【特許請求の範囲】
【請求項１】
第１地点から第２地点に至るまでの経路に複数設定されたそれぞれのサブゴールの位置と、前記第１地点又は前記第２地点からの前記サブゴールの順序と、を記憶したサブゴール記憶部と、
自機の現在位置を取得する現在位置取得部と、
前記サブゴール記憶部が記憶しているサブゴールの中で、前記現在位置から最短距離にあるサブゴールを探索する最短サブゴール探索部と、
前記最短距離にあるサブゴールを含み、前記現在位置を中心とした所定領域内に位置するサブゴールを抽出するサブゴール抽出部と、
前記サブゴール抽出部によって抽出された各サブゴールの位置に基づいて自機の仮想的な移動目標を演算する仮想移動目標演算部と、
を備えることを特徴とする自律移動体。
【請求項２】
請求項１に記載の自律移動体であって、
前記仮想移動目標演算部は、前記サブゴール抽出部によって抽出された前記各サブゴールの位置を、前記現在位置を原点とする相対座標に座標変換するとともに、当該相対座標における前記各サブゴールの位置ベクトルを合成した合成ベクトルの方向に基づいて前記仮想的な移動目標を演算することを特徴とする自律移動体。
【請求項３】
請求項２に記載の自律移動体であって、
前記サブゴール抽出部は、前記所定領域の外側近傍に位置するサブゴールがある場合は、当該サブゴールの位置を前記所定領域の境界上に置換して追加的に抽出することを特徴とする自律移動体。
【請求項４】
請求項１から３までの何れか一項に記載の自律移動体であって、
前記仮想移動目標演算部は、前記現在位置を中心とした所定領域内に位置するサブゴールのうち、前記最短距離にあるサブゴールよりも前記第１地点側であるサブゴールを除いた残りの各サブゴールの位置に基づいて、自機の仮想的な移動目標を演算することを特徴とする自律移動体。
【請求項５】
第１地点から第２地点に至るまでの経路に複数設定されたそれぞれのサブゴールの位置と、前記第１地点又は前記第２地点からの前記サブゴールの順序と、を記憶したサブゴール記憶部を備えた自律移動体の移動制御方法において、
自機の現在位置を取得する現在位置取得ステップと、
前記サブゴール記憶部が記憶しているサブゴールの中で、前記現在位置から最短距離にあるサブゴールを探索する最短サブゴール探索ステップと、
前記最短距離にあるサブゴールを含み、前記現在位置を中心とした所定領域内に位置するサブゴールを抽出するサブゴール抽出ステップと、
前記サブゴール抽出ステップで抽出された各サブゴールの位置に基づいて自機の仮想的な移動目標を演算する仮想移動目標演算ステップと、
を含むことを特徴とする自律移動体の移動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律移動体及び当該自律移動体の移動制御方法に関する。詳細には、ある地点から別の地点までの間に複数設定されたサブゴールを参照して移動する自律移動体に関する。
【背景技術】
【０００２】
近年、オフィス及び工場等、障害物の存在する実環境で様々なサービスを提供するロボットが提案され、開発が行われている。このようなロボットには種々の機能が要求されるが、中でも重要な機能の１つに、目的地への自律的な移動がある。
【０００３】
ロボットなどの自律移動体を或る地点から目的地へと移動させる制御方法としては、分岐点、曲がり角、固定障害物の設置状況などから、環境に応じた経由地点（サブゴール）を設定し、当該サブゴールを目標にして移動させる方法が知られている。実際には障害物を回避する行動を行うこと等があるので厳密にサブゴールを辿らない場合もあるが、目的地までの間に何らかの中間的な移動目標が設定されるのが一般的である。このような構成のロボットとしては、例えば特許文献１が開示する移動ロボットがある。特許文献１が開示するのは、サブゴール間を結ぶ線分に追従して移動するロボットである。
【特許文献１】特開２００７−２４９６３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記のようにサブゴールを目標として移動する構成のロボットにおいては、或るサブゴールに辿り着いて移動目標を次のサブゴールに切り替えるときに、移動方向が大きく変化し、滑らかな移動を実現することが困難であった。この点、上記特許文献１では、ロボットが追従する対象とする線分をサブゴールに到達するよりも前に切り替えることで、サブゴールの近くでもロボットを滑らかに移動させることができるとしている。しかし、上記特許文献１の構成であっても、線分同士の角度が急な場合には、追従する線分の切り替え時にロボットに急な方向転換が発生してしまう。このようにロボットに急な方向転換が必要とされると、アクチュエータ（例えばモータ）の容量を大きくせざるを得ず、コストが掛かるとともに消費電力の点でも改善の余地があった。
【０００５】
上記のような問題を解決するため、サブゴールの設置間隔を狭くすることが考えられる。これにより、サブゴールを切り替えるときの移動方向の変化が少なくなり、ロボットの滑らかな移動を実現することができる。しかしながら、サブゴールの間隔を狭くすることにより大量のサブゴール情報をロボットに保持させなければならず、メモリなどの記憶領域を圧迫してしまう。
【０００６】
また、上記のようにサブゴールを目標として移動させる方法に代えて、例えば人工ポテンシャル場を環境情報として保持させ、引力ポテンシャルと斥力ポテンシャルからロボットの移動方向を演算することによってロボットを移動させる構成も考えられる。しかし、この方法においても人工ポテンシャル場を保存するために大量の記憶領域が必要であり、またポテンシャル場からロボットの移動方向を計算する際の計算負荷も大きい。
【０００７】
また、特許文献１は、ロボットが追従する線分を切り替える条件として、以下の２つの条件を開示している。その条件の１つ目は、ロボットが現在向かっているサブゴールと、当該ロボットと、の距離が所定の閾値よりも小さい場合である。また２つ目の条件は、ロボットが現在追従している線分と当該ロボットの位置との誤差よりも、次の線分と当該ロボットとの誤差の方が小さい場合である。
【０００８】
しかし、上記の条件では、ロボットが現在向かっているサブゴール上に障害物があると、追従する対象とする線分を切り替えることができず、ロボットが先に進むことができない場合があるという問題があった。即ち、上記１つ目の条件では、半径が前記所定の閾値よりも大きい障害物がサブゴール上に存在していた場合は、当該サブゴールに前記所定の閾値よりも近づくことができないので、サブゴールを切り替えることができない。また、上記２つ目の条件では、前記障害物を小さく回避した場合は、現在追従している線分からロボットの位置が大きく外れることがないので、現在追従している線分との誤差が次の線分との誤差よりも大きくならず、サブゴールを切り替えることができない。
【０００９】
本願発明は以上の事情に鑑みてされたものであり、その主要な目的は、記憶領域と演算量を抑えつつ目的地まで滑らかに移動することが可能な自律移動体を提供することにある。
【課題を解決するための手段及び効果】
【００１０】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【００１１】
本発明の観点によれば、以下の構成の自律移動体が提供される。即ち、この自律移動体は、サブゴール記憶部と、現在位置取得部と、最短サブゴール探索部と、サブゴール抽出部と、仮想移動目標演算部と、を備える。前記サブゴール記憶部は、第１地点から第２地点に至るまでの経路に複数設定されたそれぞれのサブゴールの位置と、前記第１地点又は前記第２地点からの前記サブゴールの順序と、を記憶している。前記現在位置取得部は、自機の現在位置を取得する。前記最短サブゴール探索部は、前記サブゴール記憶部が記憶しているサブゴールの中で、前記現在位置から最短距離にあるサブゴールを探索する。前記サブゴール抽出部は、前記最短距離にあるサブゴールを含み、前記現在位置を中心とした所定領域内に位置するサブゴールを抽出する。前記仮想移動目標演算部は、前記サブゴール抽出部によって抽出された各サブゴールの位置に基づいて自機の仮想的な移動目標を演算する。
【００１２】
以上の構成で、移動体の近傍に複数のサブゴールがある場合、当該複数のサブゴールの位置を総合的に考慮して仮想的な移動目標を決定することができる。これにより、１つのサブゴールのみを移動目標として移動する構成と比べて、移動目標が大きく変化することがなくなり、円滑な移動を行うことができる。従って、サブゴールを切り替える際の急な方向転換が発生しにくくなるので、アクチュエータの負荷を抑えることが可能となり、省電力化及びコストダウンを実現することができる。また、移動を円滑にするためにサブゴールを細かい間隔で設定する必要が無いので、サブゴール記憶部の記憶容量等を抑えることができる。また、サブゴールへの到達を目標とするのではなく、サブゴールから求めた仮想的な移動目標に追従するように移動することで、サブゴールに到達することなく第２地点まで移動することが可能である。即ち、必ずしもサブゴールの近傍を経由する必要がないので、サブゴール上に障害物がある場合や、障害物回避により経路から外れた場合であっても、従来の構成のように先に進めなくなることが無く、第２地点に向かって効率的な移動が可能になる。
【００１３】
前記の自律移動体においては、以下のように構成されていることが好ましい。即ち、前記仮想移動目標演算部は、前記サブゴール抽出部によって抽出された前記各サブゴールの位置を、前記現在位置を原点とする相対座標に座標変換する。そして、前記仮想移動目標演算部は、当該相対座標における前記各サブゴールの位置ベクトルを合成した合成ベクトルの方向に基づいて前記仮想的な移動目標を演算する。
【００１４】
これにより、複数のサブゴールを考慮しつつ、ベクトルの合成という比較的簡単な演算によって移動体の仮想的な移動目標を決定することができる。
【００１５】
前記の自律移動体においては、前記サブゴール抽出部は、前記所定領域の外側近傍に位置するサブゴールがある場合は、当該サブゴールの位置を前記所定領域の境界上に置換して追加的に抽出することが好ましい。
【００１６】
これにより、遠い位置にあるサブゴールを予め考慮に入れておくことができるので、より滑らかに移動することができる。また、所定領域の境界上の位置に置換することにより、相対座標に座標変換したときの位置ベクトルの長さを制限できるので、遠い位置のサブゴールと近い位置のサブゴールをバランス良く考慮して移動することができる。
【００１７】
前記の自律移動体においては、前記仮想移動目標演算部は、前記現在位置を中心とした所定領域内に位置するサブゴールのうち、前記最短距離にあるサブゴールよりも前記第１地点側であるサブゴールを除いた残りの各サブゴールの位置に基づいて、自機の仮想的な移動目標を演算することが好ましい。
【００１８】
これにより、最短距離にあるサブゴールと、それより第２地点側のサブゴールのみを考慮して移動方向を決定できるので、第２地点に対してより効率良く移動することができる。
【００１９】
本発明の別の観点によれば、第１地点から第２地点に至るまでの経路に複数設定されたそれぞれのサブゴールの位置と、前記第１地点又は第２地点からの前記サブゴールの順序と、を記憶したサブゴール記憶部を備えた自律移動体の移動制御方法であって、以下のステップを含む移動制御方法が提供される。即ち、この自律移動体の移動制御方法は、現在位置取得ステップと、最短サブゴール探索ステップと、サブゴール抽出ステップと、仮想移動目標演算ステップと、を含んでいる。前記現在位置取得ステップでは、自機の現在位置を取得する。前記最短サブゴール探索ステップでは、前記サブゴール記憶部が記憶しているサブゴールの中で、前記現在位置から最短距離にあるサブゴールを探索する。前記サブゴール抽出ステップでは、前記最短距離にあるサブゴールを含み、前記現在位置を中心とした所定領域内に位置するサブゴールを抽出する。前記仮想移動目標演算ステップでは、前記サブゴール抽出ステップで抽出された各サブゴールの位置に基づいて自機の仮想的な移動目標を演算する。
【００２０】
以上の方法で、移動体の近傍に複数のサブゴールがある場合、当該複数のサブゴールの位置を総合的に考慮して仮想的な移動目標を決定することができる。これにより、１つのサブゴールのみを移動目標として移動する構成と比べて、移動目標が大きく変化することがなくなり、円滑な移動を行うことができる。従って、サブゴールを切り替える際の急な方向転換が発生しにくくなるので、アクチュエータの負荷を抑えることが可能となり、省電力化及びコストダウンを実現することができる。また、移動を円滑にするためにサブゴールを細かい間隔で設定する必要が無いので、サブゴール記憶部の記憶容量等を抑えることができる。また、サブゴールへの到達を目標とするのではなく、サブゴールから求めた仮想的な移動目標に追従するように移動することで、サブゴールに到達することなく第２地点まで移動することが可能である。即ち、必ずしもサブゴールの近傍を経由する必要がないので、サブゴール上に障害物がある場合や、障害物回避により経路から外れた場合であっても、従来の構成のように先に進めなくなることが無く、第２地点に向かって効率的な移動が可能になる。
【発明を実施するための最良の形態】
【００２１】
次に、発明の実施の形態を説明する。図１は本発明の一実施形態に係るロボット１１の全体的な構成を模式的に示した側面図である。
【００２２】
図１に示す自律移動体としてのロボット１１は、本体１２と、オムニホイール機構（移動部）１３と、レーザレンジファインダ（検知部）１４と、走行制御コントローラ（移動制御部）１５と、を備えている。
【００２３】
前記本体１２は縦方向に細長く形成されており、その下端部に、ロボットを自走させるためのオムニホイール機構１３が取り付けられている。オムニホイール機構１３は、周方向に９０°の間隔で並べて配置された４つのオムニホイール２１と、このオムニホイール２１に対応して設置される４つのモータ２２と、を備えている。
【００２４】
以下、図２を参照して、オムニホイール機構１３の構成を具体的に説明する。図２はオムニホイール機構１３を示す底面図である。
【００２５】
このオムニホイール機構１３は図２に示すように、前記本体１２の底面に配置された４つのホイール駆動ユニット２３を備えている。このホイール駆動ユニット２３は、枠組状に形成されたモータ支持フレーム２４と、このモータ支持フレーム２４に固定されたモータ２２と、を備えている。前記モータ支持フレーム２４の一端部は、本体１２の底面にブラケット２５を介して固定されている。
【００２６】
モータ２２は、図略のロータを回転可能に支持するハウジング２６を備え、このハウジング２６は前記モータ支持フレーム２４の内部に配置されている。モータ２２の出力軸２７はモータ支持フレーム２４から外側へ突出しており、この出力軸２７の端部に前記オムニホイール２１が取り付けられている。それぞれのホイール駆動ユニット２３におけるオムニホイール２１は、その回転軸がロボット１１の正面方向に対してなす角が４５°又は１３５°となるように配置されている。
【００２７】
それぞれのオムニホイール２１は、前記モータ２２の出力軸２７に固定されるローラ状の本体３１と、この本体３１の外周に並べて配置された複数のフリーローラ３２と、を備えている。フリーローラ３２は回転可能となるように本体３１に支持され、当該フリーローラ３２の外周面は床面に接触可能となっている。また、前記フリーローラ３２の回転軸は、本体３１の回転軸に対して垂直に向けられている。
【００２８】
この構成で、モータ２２が駆動されて本体３１が回転することにより、フリーローラ３２は本体３１と一体的に回転し、その駆動力を床面に伝達する。一方、接地しているフリーローラ３２が回転することにより、オムニホイール２１は、その本体３１の回転軸に平行な方向にも容易に移動することができる。以上の構成により、ロボット１１の全方位移動が実現される。
【００２９】
４つのホイール駆動ユニット２３が備えるモータ２２は、走行制御コントローラ１５からの走行指令（移動指令）に基づき、４つのオムニホイール２１の回転方向及び回転速度をそれぞれ独立して制御する。これにより、ロボット１１を任意の方向に移動させる制御（全方位移動制御）を実現している。
【００３０】
図１に示すレーザレンジファインダ１４は、図略のトランスミッタから照射したレーザを回転ミラーで反射させることで、ロボット１１の正面側を平面視で扇状に走査することができる。そして、照射されたレーザが物体で反射して戻ってくるまでの時間を計測することにより、物体までの距離を測定することができる。このレーザレンジファインダ１４はロボット１１の視覚を実現する手段として使用され、静止又は移動している物体（障害物）の検知等に用いられる。
【００３１】
次に、図３を参照して走行制御コントローラ１５について説明する。図３はロボット１１の移動制御のための電気的構成を示すブロック図である。
【００３２】
走行制御コントローラ１５はマイクロコンピュータとして構成されており、図示しないが、演算部としてのＣＰＵと、記憶部としてのＲＯＭ、ＲＡＭ等を備えている。また、前記ＲＯＭには、ロボット１１の自律的な移動を実現するための制御プログラムが記憶されている。
【００３３】
図３に示すように、走行制御コントローラ１５は、マップ記憶部５１と、目標位置記憶部５２と、自機情報取得部５３と、障害物情報取得部５４と、を備えている。また、走行制御コントローラ１５は、サブゴール演算部５５と、サブゴール記憶部５６と、最短サブゴール探索部５７と、サブゴール抽出部５８と、仮想移動目標演算部５９と、走行指令送信部６４と、を備えている。これらの各部は、上述したハードウェアとソフトウェアの組合せにより構築されている。
【００３４】
マップ記憶部５１は、ロボット１１の行動範囲における静的障害物を示すマップを記憶可能に構成されている。ここで静的障害物とは、消えたり位置が変化したりすることのない障害物をいい、具体的には壁、柱等の静的構造物及び重量物等である。このマップを作成するには、人間等の動的障害物を全て取り除いた状態で、当該ロボット１１を移動させつつ、レーザレンジファインダ１４で障害物を走査する。これにより、ロボット１１は静的障害物の位置及び形状を認識してマップを自動的に作成し、適宜のメモリに記憶することができる。
【００３５】
目標位置記憶部５２は、ロボット１１を移動させるべき目標位置の情報を記憶可能に構成されている。この目標位置は、オペレータがロボット１１を適宜操作することにより指定され、前記マップにおける座標の形で記憶される。
【００３６】
自機情報取得部５３は、自機の現在位置及び速度を計算して取得する。従って、この自機情報取得部５３は現在位置取得部であるといえる。この自機情報は、レーザレンジファインダ１４から得られた周囲の障害物の情報と前記マップとを照合した結果と、オムニホイール機構１３の各モータ２２の出力軸２７の回転角度の情報と、を総合的に考慮して決定される。なお、モータ２２の出力軸２７の回転角度は、当該出力軸２７に取り付けられた図略のエンコーダにより取得することができる。
【００３７】
障害物情報取得部５４は、レーザレンジファインダ１４から得られた、ロボット動作中にロボットが所有している環境地図上にない静止又は移動している障害物を検出し、その位置及び速度を取得する。
【００３８】
サブゴール演算部５５は、当該ロボット１１がセットされた初期位置（ロボット１１の現在位置を含む）と、目標位置記憶部５２に記憶された目標位置と、の間を移動するための経路を計画し、当該経路中に経過目標地点としてのサブゴールを複数設定する。なお、サブゴールの設定については後述する。
【００３９】
サブゴール記憶部５６は、サブゴール演算部５５が設定した各サブゴールの位置、及び初期位置から目標位置に至るまでの順番を記憶可能に構成されている。
【００４０】
最短サブゴール探索部５７は、サブゴール記憶部５６が記憶しているサブゴールの中で、自機情報取得部５３が取得した現在位置から最も近いサブゴールを探索するように構成されている。
【００４１】
サブゴール抽出部５８は、サブゴール記憶部５６が記憶しているサブゴールの中で、自機情報取得部５３が取得した現在位置から所定距離内に位置しているサブゴールを抽出するように構成されている。なお、サブゴールの抽出については後述する。
【００４２】
仮想移動目標演算部５９は、サブゴール抽出部５８の抽出結果に基づいて、当該ロボット１１の仮想的な移動目標（仮想移動目標）を演算するように構成されている。なお、仮想移動目標の演算については後述する。
【００４３】
走行指令送信部６４は、仮想移動目標演算部５９で得られた仮想移動目標に対してロボット１１を移動させるように走行指令を生成し、オムニホイール機構１３に対し送信することにより、ロボット１１を走行させる。
【００４４】
次に、以上のように構成されたロボット１１の自律移動の制御方法について、図４を参照して説明する。図４は、本実施形態のロボット１１の走行制御コントローラ１５が、当該ロボット１１の自律移動のために行う制御の流れを示したフローチャートである。なお、このフローの開始時点で、マップ記憶部５１にはマップが、目標位置記憶部５２には目標位置が、予め記憶されているものとする。
【００４５】
まず、オペレータはロボット１１を所望の初期位置に配置して所定の操作を行う（Ｓ１０１）。これにより、図５のフローが開始される。
【００４６】
次に、サブゴール演算部５５によってサブゴールの設定処理（目標位置までの経路計画）が行われる（Ｓ１０２）。以下、このサブゴールの設定処理について具体的に説明する。
【００４７】
一例として、図５に示すようなマップがマップ記憶部５１に記憶されている場合について説明する。図に示すように、このマップは障害物１６が存在する領域と存在しない領域を表した図であって、ロボット１１の移動平面における障害物１６の位置及びサイズが記憶されている。なお、参考のため、図５のマップの右側にはロボット１１の直径を表す円が図示されている。この図５に示すように、マップにおいてロボット１１を、その平面視での外形輪郭を含む適宜の大きさの円として表現することにより、制御を簡素化でき、演算負荷を減らすことができる。
【００４８】
まず、サブゴール演算部５５は、マップ記憶部５１から前記マップを読み込み、ロボット１１と障害物１６との領域の和（Ｍｉｎｋｏｗｓｋｉ和）を求める。このとき、ロボット１１の領域（形状）は、前述したように円形とすることができる。このようにＭｉｎｋｏｗｓｋｉ和を求めた結果の例が図６に示してある。この図６は、斜線のハッチングが施された領域にロボット１１の円の中心点が接触しないように制御する限り、ロボット１１が障害物１６に接触することを回避できることを表している。これにより、以降の処理ではロボット１１を点として取り扱うことができる。
【００４９】
次に、サブゴール演算部５５は、図６に示す斜線のハッチングが施されていない領域（即ち、ロボット１１が通過することができる領域）を、公知のＨｉｌｄｉｔｃｈの細線化条件によって細線化する。この細線化の結果の例を図７に示す。このとき細線化によって得られた線のそれぞれは、ロボット１１が採り得る大まかな経路として考えることができる。
【００５０】
次に、サブゴール演算部５５は、目標位置記憶部５２から目標位置の座標を読み込むとともに、自機情報取得部５３によってロボット１１の現在位置（前記マップ上の座標（絶対座標）で表した位置）の取得を行う。この時点においてはロボット１１は未だ移動を開始していないので、このとき取得した現在位置がロボット１１の初期位置（移動開始位置）となる。
【００５１】
更に、サブゴール演算部５５は、細線化によって得られた経路の各分岐点にサブゴールノード７２を配置する。このときの内部的な様子を概念的に例示すると、図８のようになる。例えば、図に示すように、サブゴール演算部５５の演算開始時点におけるロボット１１の現在位置が符号７０の位置であると、その位置が初期位置（第１地点）７０として設定される。また、図８には、目標位置記憶部５２に記憶されている目標位置（第２地点）７１も図示してある。そして、図に示すように、初期位置７０と目標位置７１との間の経路の各分岐点には、それぞれサブゴールノード７２が配置されている。
【００５２】
続いて、サブゴール演算部５５は、初期位置７０から目標位置７１までの最短経路を探索する。本実施形態では、公知のＡ＊アルゴリズムを用いて最短経路の探索を行う。このとき、或るサブゴールノード７２から目標位置７１までの移動コストを表すヒューリスティック関数として、当該サブゴールノード７２から目標位置７１までのユークリッド距離を用いることにより、演算量を削減することができる。上記の最短経路探索で決定された最短経路の例を、図９に太線で表す。
【００５３】
上記のようにして初期位置７０から目標位置７１までの最短経路を決定した後、サブゴール演算部５５は、障害物１６と干渉しない範囲で経路の直線化を行う。直線化を行った結果の例を図１０に示す。続いて、サブゴール演算部５５は、経路の平滑化（障害物１６と干渉しない範囲で経路の角を丸めること）を行う。平滑化を行った結果の例を図１１に示す。
【００５４】
以上のようにして、初期位置７０から目標位置７１までの間に複数のサブゴールノード７２が配置されて、ロボット１１の移動経路が確定する。最終的に得られた各サブゴールノード７２の位置を、ロボット１１の自律移動制御に実際に用いるサブゴールの位置とする。そして、上記のようにして得られた各サブゴールの順序と、当該サブゴールの位置（マップ上の絶対座標で表した座標）が、サブゴール記憶部５６に記憶される。なお、本実施形態においてサブゴールの順序は、初期位置７０に最も近いものが１番目、次に近いのが２番目、・・・というように定められ、この順序を表す数値データがサブゴール記憶部５６に記憶される。
【００５５】
サブゴールが設定されると、走行制御コントローラ１５は、ロボット１１の自律移動を開始する（図４のＳ１０３）。走行制御コントローラ１５は、以下に説明する自律制御ループ（図４のＳ１０４からＳ１１１）を繰り返し実行することにより、目標位置までロボット１１の自律移動制御を行う。以下、一例として、サブゴールが図１２のように設定されている場合について説明する。図１２には、サブゴール記憶部５６が記憶している複数のサブゴール８１，８２，８３，８４，８５の位置を絶対座標系（図中のｘｙ直交座標系）にプロットした様子を概念的に示してある。また、図１２には、目標位置記憶部５２が記憶している目標位置９０と、自機情報取得部５３が取得したロボット１１の現在位置もプロットして示してある。図に示すように、サブゴールが８１，８２，８３，８４，８５の順で設定され、最後に目標位置９０が設定されている。
【００５６】
まず、自機情報取得部５３が、ロボット１１の現在位置を取得する（現在位置取得ステップ、Ｓ１０４）。
【００５７】
そして、取得した現在位置が目標位置に到達していれば（Ｓ１０５の判断）、自律移動の目的を達成しているので、自律制御ループを抜けてフローを終了する。
【００５８】
ロボット１１が未だ目標位置に到達していない場合は、現在位置から直線距離で最短距離にあるサブゴールを探索する（最短サブゴール探索ステップ、Ｓ１０６）。図１２の場合においては、ロボット１１の現在位置から最短距離にあるのはサブゴール８２であるから、サブゴール８２が選択される。
【００５９】
続いて、サブゴール抽出部５８によって、最短距離にあるサブゴールを含む所定領域内のサブゴールの抽出が行われる（サブゴール抽出ステップ、Ｓ１０７）。以下、この点について具体的に説明する。
【００６０】
前記の所定領域としては、例えば図１３に示すように、ロボット１１を中心とした所定半径の領域円１００の内側の領域とすることができる。なお、最短距離のサブゴール８２を領域円１００内に含ませるために、前記領域円１００の半径としては、当該サブゴール８２とロボット１１との間の距離以上の値を設定するものとする。図１３の例では、領域円１００の内側にはサブゴール８１，８２，８３があるので、前記サブゴール８１，８２，８３が抽出される。
【００６１】
更に、サブゴール抽出部５８は、所定領域の外側に位置するものの前記所定領域に近いサブゴールを領域の外周上にあるものとみなして、サブゴールを追加的に抽出することができる。例えば図１３の例では、領域円１００の外側近傍にサブゴール８４が位置している。このサブゴール８４とロボット１１とを結んだ直線と前記領域円１００との交点（領域円１００の外周上）を求め、この交点上にサブゴール８４の位置を置き換える（置換サブゴール８６）。この置換サブゴール８６をロボット１１から見た方向は、元のサブゴール８４をロボット１１から見た方向と一致する。そして、この置換サブゴール８６をサブゴールの抽出結果に含めることで、遠い位置にあるサブゴールを予め考慮することにより滑らかな移動を実現することができる。また、遠い位置にあるサブゴールを領域の外周上に置換しているので、ベクトル合成（後述）の際に、遠い位置にある（即ちベクトルが大きい）サブゴールの影響が過大になってしまうことを回避することができる。
【００６２】
次に、サブゴール抽出部５８は、サブゴール記憶部５６に記憶されているサブゴールの順番を取得し、現在位置から最短距離にあるサブゴールよりも順序が前（即ち、初期位置７０側）のサブゴールを、前記抽出結果から取り除く。図１３の例では、抽出されたサブゴールの中で、最短距離のサブゴール８２よりも前のサブゴールはサブゴール８１であるので、このサブゴール８１を取り除く。即ち、ロボット１１はサブゴール８１を既に通り過ぎていると見なせるので、自律移動の考慮の対象から除外するのである。
【００６３】
なお、サブゴールの順序は当初から決まっているので、領域円１００の内側のサブゴールを抽出する段階で、最短距離のサブゴール８２よりも順序が前のサブゴール８１を除いた状態で抽出することもできる。このようにすれば、所定領域内にあるか否かをサブゴール抽出部５８で判断しなければならないサブゴールの数が減るので、演算量を削減できる点で有利である。要は、後述の仮想移動目標演算部５９による仮想移動目標８８の演算の際に、当該サブゴール８１の位置を考慮に入れずに計算することができれば良い。
【００６４】
次に、仮想移動目標演算部５９によって、ロボット１１の仮想的な移動目標が演算される（仮想移動目標演算ステップ、Ｓ１０８）。以下、この点について具体的に説明する。
【００６５】
まず、仮想移動目標演算部５９は、サブゴール抽出部５８によって抽出されたサブゴール（前記の例の場合は、サブゴール８２，８３及び置換サブゴール８６）の座標を、ロボット１１の相対座標系（ローカル座標系）に座標変換する。この相対座標系は任意の座標系とすることができるが、例えば図１３に示すｖ軸とｗ軸による直交座標系のようにロボット１１を座標中心（原点）とした直交座標系とすれば、後述のベクトル合成の演算が簡単になるため好適である。抽出されたサブゴールを相対座標系に座標変換してプロットした概念的な様子を図１４に示す。
【００６６】
続いて、仮想移動目標演算部５９は、前記相対座標系において、ロボット１１の現在位置から各サブゴールへ向かうベクトルを求め、それぞれのベクトルを合成した合成ベクトルを求める。図１４の例では、ロボット１１は相対座標系の原点に位置しているので、各サブゴール（サブゴール８２，８３及び置換サブゴール８６）の位置ベクトルを求め、各位置ベクトルを合成することで合成ベクトル８７を得る。
【００６７】
そして、仮想移動目標演算部５９は、合成ベクトル８７と領域円１００との交点に、仮想移動目標８８を配置する。なお、合成ベクトル８７の長さが領域円１００の半径よりも短い場合は、合成ベクトル８７の延長線と領域円１００との交点に仮想移動目標８８を配置すれば良い。
【００６８】
以上のようにして仮想移動目標８８が得られると、走行指令送信部６４は、仮想移動目標８８の位置を絶対座標系に座標変換する。図１５に、仮想移動目標８８を絶対座標系にプロットした様子を概念的に示す。そして、走行指令送信部６４は、この仮想移動目標８８に向かってロボット１１を移動するように、オムニホイール機構１３に対して走行指令を送信する（図４のＳ１０９）。なお、このときのロボット１１の移動速度は、前記合成ベクトル８７の大きさに関係した速度でも良いし、これとは全く別に決定されても良い。
【００６９】
ロボット１１の移動中においては、障害物情報取得部５４がレーザレンジファインダ１４から障害物に関する情報を取得する。そして、障害物があった場合（Ｓ１１０の判断）は、走行指令送信部６４は、オムニホイール機構１３を駆動して、ロボット１１を当該障害物から回避させるように移動させる（Ｓ１１１）。
【００７０】
以上の処理が終了した場合、走行制御コントローラ１５はＳ１０４のステップまで戻り、ロボット１１の制御周期毎に前記処理（Ｓ１０４からＳ１１１の処理）を繰り返し実行する。このループ処理により、仮想移動目標８８の位置は、ロボット１１の移動に伴って常に更新され続ける。従って、ロボット１１は、一定距離離れた仮想移動目標８８を常に追いかけるようにして移動することになる。これにより、サブゴールの絶対位置を目標として移動する構成に比べ、滑らかな移動目標を生成することが可能となり、ロボット１１の滑らかな移動制御を実現することができるのである。また、ロボット１１は仮想移動目標８８を目標として移動しているので、サブゴール上に障害物があった場合であっても、当該障害物によって進めなくなることがなく、目的地に向かって移動を続けることができる。
【００７１】
以上で説明したように、本実施形態のロボット１１は、サブゴール記憶部５６と、自機情報取得部５３と、最短サブゴール探索部５７と、サブゴール抽出部５８と、仮想移動目標演算部５９と、を備えている。サブゴール記憶部５６は、初期位置から目標位置に至るまでの経路に複数設定されたそれぞれのサブゴールの位置と、初期位置からの前記サブゴールの順序と、を記憶している。自機情報取得部５３は、自機の現在位置を取得する。最短サブゴール探索部５７は、サブゴール記憶部５６が記憶しているサブゴールの中で、現在位置から最短距離にあるサブゴールを探索する。サブゴール抽出部５８は、前記最短距離にあるサブゴールを含み、現在位置を中心とした所定領域内に位置するサブゴールを抽出する。仮想移動目標演算部５９は、サブゴール抽出部５８によって抽出された各サブゴールの位置に基づいて仮想移動目標８８を演算する。
【００７２】
以上の構成で、ロボット１１の近傍に複数のサブゴールがある場合、当該複数のサブゴールの位置を総合的に考慮して仮想移動目標８８を決定することができる。これにより、１つのサブゴールのみを移動目標として移動する構成と比べて、移動目標が大きく変化することがなくなり、円滑な移動を行うことができる。従って、サブゴールを切り替える際の急な方向転換が発生しにくくなるので、アクチュエータの負荷を抑えることが可能となり、省電力化及びコストダウンを実現することができる。また、移動を円滑にするためにサブゴールを細かい間隔で設定する必要が無いので、サブゴール記憶部５６の記憶容量等を抑えることができる。また、サブゴールへの到達を目標とするのではなく、サブゴールから求めた仮想的な移動目標に追従するように移動することで、サブゴールに到達することなく目標位置まで移動することが可能である。即ち、必ずしもサブゴールの近傍を経由する必要がないので、サブゴール上に障害物がある場合や、障害物回避により経路から外れた場合であっても、従来の構成のように先に進めなくなることが無く、目標位置に向かって効率的な移動が可能になる。
【００７３】
また、本実施形態のロボット１１は、以下のように構成されている。即ち、仮想移動目標演算部５９は、サブゴール抽出部５８によって抽出された各サブゴールの位置を、現在位置を原点とする相対座標に座標変換する。そして、仮想移動目標演算部５９は、相対座標における各サブゴールの位置ベクトルを合成した合成ベクトル８７の方向に基づいて仮想移動目標８８を演算する。
【００７４】
これにより、複数のサブゴールを考慮しつつ、ベクトルの合成という比較的簡単な演算によってロボット１１の仮想移動目標８８を決定することができる。
【００７５】
また、本実施形態のロボット１１において、サブゴール抽出部５８は、前記所定領域の外側近傍に位置するサブゴールがある場合は、当該サブゴールの位置を前記所定領域の境界上に置換して追加的に抽出している。
【００７６】
これにより、遠い位置にあるサブゴールを予め考慮に入れておくことができるので、より滑らかに移動することができる。また、所定領域の境界上の位置に置換することにより、相対座標に座標変換したときの位置ベクトルの長さを制限できるので、遠い位置のサブゴールと近い位置のサブゴールをバランス良く考慮して移動することができる。
【００７７】
また、本実施形態のロボット１１において、仮想移動目標演算部５９は、自機の現在位置を中心とした所定領域内に位置するサブゴールのうち、前記最短距離にあるサブゴールよりも初期位置側であるサブゴールを除いた残りの各サブゴールの位置に基づいて、仮想移動目標８８を演算している。
【００７８】
これにより、最短距離にあるサブゴールと、それより目標位置側のサブゴールのみを考慮して移動方向を決定できるので、目標位置に対してより効率良く移動することができる。
【００７９】
また、本実施形態のロボット１１の移動制御方法は、現在位置取得ステップ（Ｓ１０４）と、最短サブゴール探索ステップ（Ｓ１０６）と、サブゴール抽出ステップ（Ｓ１０７）と、仮想移動目標演算ステップ（Ｓ１０８）と、を含んでいる。現在位置取得ステップでは、自機の現在位置を取得する。最短サブゴール探索ステップでは、サブゴール記憶部５６が記憶しているサブゴールの中で、現在位置から最短距離にあるサブゴールを探索する。サブゴール抽出ステップでは、前記最短距離にあるサブゴールを含み、現在位置を中心とした所定領域内に位置するサブゴールを抽出する。仮想移動目標演算ステップでは、サブゴール抽出ステップで抽出された各サブゴールの位置に基づいて自機の仮想的な移動目標を演算する。
【００８０】
以上の方法で、ロボット１１の近傍に複数のサブゴールがある場合、当該複数のサブゴールの位置を総合的に考慮して仮想移動目標８８を決定することができる。これにより、１つのサブゴールのみを移動目標として移動する構成と比べて、移動目標が大きく変化することがなくなり、円滑な移動を行うことができる。従って、サブゴールを切り替える際の急な方向転換が発生しにくくなるので、アクチュエータの負荷を抑えることが可能となり、省電力化及びコストダウンを実現することができる。また、移動を円滑にするためにサブゴールを細かい間隔で設定する必要が無いので、サブゴール記憶部５６の記憶容量等を抑えることができる。また、サブゴールへの到達を目標とするのではなく、サブゴールから求めた仮想的な移動目標に追従するように移動することで、サブゴールに到達することなく目標位置まで移動することが可能である。即ち、必ずしもサブゴールの近傍を経由する必要がないので、サブゴール上に障害物がある場合や、障害物回避により経路から外れた場合であっても、従来の構成のように先に進めなくなることが無く、目標位置に向かって効率的な移動が可能になる。
【００８１】
以上に本発明の好適な実施の形態について説明したが、上記の構成は例えば以下のように変更することができる。
【００８２】
レーザレンジファインダ１４に代えて、又はそれに加えて、ステレオカメラ、単眼カメラ、超音波センサ、赤外線センサ等をロボット１１に備え、これらによって障害物を検知する構成に変更することができる。
【００８３】
サブゴールを設定する方法としては、上記の方法に限られず、適宜の方法を用いることができる。例えば、Ａ＊アルゴリズムの代りにダイクストラ法を用いて最短経路を探索しても良い。また例えば、平滑化を行った後で直線化を行っても良い。
【００８４】
また、経路の平滑化を行う際に、例えばカーブの急なところにはサブゴールを密に配置し、直線状の区間にはサブゴールを広い間隔で配置するように構成することができる。これによれば、カーブの急なところで、ロボット１１を更に滑らかに移動させることができる。
【００８５】
また、サブゴール抽出部５８によって所定領域内のサブゴールを抽出する際、当該所定領域の外側近傍にあるサブゴールは考慮しないように構成しても良い。
【００８６】
サブゴールの順序は、上記実施形態と逆に、目標位置９０に最も近いものが１番目、次に近いのが２番目、・・・というように定めてサブゴール記憶部５６に記憶することもできる。
【００８７】
サブゴール記憶部５６に記憶された各サブゴールには、速度に関する情報を関連付けて記憶しておいても良い。例えば、通路の狭い部分に配置されたサブゴールにはロボット１１をゆっくりと移動させるような情報を、広い部分に配置されたサブゴールには速度を上げる情報を関連付けるように構成する。この場合、ロボット１１の移動速度を決定する際には、例えば、最短サブゴール探索部５７によって選択された最短距離のサブゴールに関連付けられた速度でロボットを移動させるように構成することができる。
【００８８】
仮想移動目標演算部５９において、サブゴールを相対座標に座標変換する処理を省略し、絶対座標のままでベクトル演算を行ってもよい。
【００８９】
領域円１００の半径は、状況に応じて随時変更可能とすることができる。この場合、例えば、各サブゴールに通路の幅に関する情報を関連付けて記憶しておき、ロボット１１が移動している通路の幅に応じて領域円１００の半径を変更する構成とすることができる。即ち、狭い通路では領域円１００の半径を小さくすることで、サブゴール抽出部５８で抽出されるサブゴールの数を減らし、ロボット１１がサブゴール列で表される経路から大きく外れないように制御することができる。また、このように構成する場合は、ロボット１１の移動速度を領域円１００の半径に関連付けて制御するようにしても良い。
【００９０】
ロボット１１を移動させるためのオムニホイール機構１３は、オムニホイール２１が４つのものに代えて、例えば６つ又は３つ配置される構成に変更することができる。
【００９１】
また、オムニホイールを備えたロボット以外でも、例えば２足歩行ロボットや４輪の車両型ロボットなど、自律的に移動可能なロボットであれば本発明を適用できる。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施形態に係るサービスロボットの全体的な構成を模式的に示した側面図。
【図２】オムニホイール機構を示す底面図。
【図３】ロボットの移動制御のための電気的構成を示すブロック図。
【図４】ロボットの移動制御の流れを示すフローチャート。
【図５】マップの例を示した図。
【図６】Ｍｉｎｋｏｗｓｋｉ和をとった結果の例を示した図。
【図７】細線化を行った結果の例を示した図。
【図８】サブゴールノードを配置した例を示した図。
【図９】最短経路探索の結果の例を示した図。
【図１０】経路を直線化した結果の例を示した図。
【図１１】経路を平滑化した結果の例を示した図。
【図１２】絶対座標にプロットしたサブゴールの例を示した図。
【図１３】サブゴール抽出の様子を概念的に示した図。
【図１４】仮想移動目標演算の様子を概念的に示した図。
【図１５】ロボットが仮想移動目標に向かって移動する様子を示した図。
【符号の説明】
【００９３】
１１  ロボット（自律移動体）
１５  走行制御コントローラ
５１  マップ記憶部
５２  目標位置記憶部
５３  自機情報取得部（現在位置取得部）
５４  障害物情報取得部
５５  サブゴール演算部
５６  サブゴール記憶部
５７  最短サブゴール探索部
５８  サブゴール抽出部
５９  仮想移動目標演算部
６４  走行指令送信部
８１，８２，８３，８４，８５  サブゴール
８８  仮想移動目標（仮想的な移動目標）
９０  目標位置（第２地点）
１００  領域円（所定領域）
【図１】
2010092279.tif 000003
【図２】
2010092279.tif 000004
【図３】
2010092279.tif 000005
【図４】
2010092279.tif 000006
【図５】
2010092279.tif 000007
【図６】
2010092279.tif 000008
【図７】
2010092279.tif 000009
【図８】
2010092279.tif 000010
【図９】
2010092279.tif 000011
【図１０】
2010092279.tif 000012
【図１１】
2010092279.tif 000013
【図１２】
2010092279.tif 000014
【図１３】
2010092279.tif 000015
【図１４】
2010092279.tif 000016
【図１５】
2010092279.tif 000017