本発明の実施の形態における自律移動ロボット1は、図1の概観図に示すように、クアッドロータ型の小型無人ヘリコプタである。なお、本発明の適用範囲は、クアッドロータ型の小型無人ヘリコプタに限定されるものではなく、シングルロータ型の小型無人ヘリコプタや、自律移動する走行型のロボットについても同様に適用することができる。
自律移動ロボット1は、図2のシステム構成図に示すように、外部の警備センタ100や管理装置102と通信し、監視空間(移動空間)内に存在する所定の移動物体を目標対象物Mとして追跡し、当該目標対象物Mに対して所定の機能を発揮するように構成されている。目標対象物Mとなる移動物体は、例えば、監視領域内に侵入した人物(賊等)である。本実施の形態では、所定の機能として、目標対象物Mを撮像する機能を例に説明するが、特に限定されるものではなく、目標対象物Mに対して音を発したり、発光による警告を行ったりする等の機能であってもよい。
警備センタ100と管理装置102とはインターネット等の情報通信網110を介して情報伝達可能に接続される。また、自律移動ロボット1と管理装置102は、無線通信等によって情報伝達可能に接続される。
警備センタ100は、管理装置102を介して自律移動ロボット1と通信を行い、自律移動ロボット1によって撮像された目標対象物Mの撮像画像を受信する。警備センタ100は、撮像画像に対して画像処理を行い、警備センタ100にて異常監視している管理者等(図示しない)に警告を発するような機能を備えていてもよい。また、管理装置102から目標対象物Mの位置(座標)に関する情報を受信し、当該目標対象物Mと自律移動ロボット1によって撮像された撮像画像とを関連付けて管理するというような機能を備えてもよい。
管理装置102は、地面や壁面等に設置された固定型の目標対象物検出センサ104(104a,104b・・・)を備え、目標対象物Mの位置を検知する。目標対象物検出センサ104は、例えば、レーザセンサとすることができる。レーザセンサは、一定の角度サンプル間隔の角度毎にレーザを二次元的にスキャンすることによって、地面(又は床面)から一定の高さの水平面における検知範囲内に存在する物体(障害物)との距離情報を極座標値として取得する。レーザセンサは、放射状にレーザ光である探査信号を走査し、物体に反射して戻ってきた探査信号を受信して、送信と受信の時間差から物体までの距離を算出し、レーザセンサの設置位置の座標及び探査信号を送信した方向と算出した距離から当該物体の位置の極座標値を求め、当該極座標値から3次元の直交座標値(Xt,Yt,Zt)を求める。管理装置102は、目標対象物検出センサ104によって求められた物体の位置を目標対象物Mの位置として自律移動ロボット1へ送信する。自律移動ロボット1は、目標対象物Mの位置を受信すると、その位置に基づいて移動経路を推定し、当該移動経路に沿って移動する。なお、管理装置102は、レーザセンサの検知範囲が重複する領域に存在する目標対象物Mの同一性を検証することで複数のレーザセンサの検知範囲に渡る目標対象物Mの追跡を行う。すなわち、レーザセンサ104aの検知範囲に存在する目標対象物Mがレーザセンサ104bの検知範囲に移動したとしても、管理装置102は、当該目標対象物Mが同一の物体であると判定することができる。
以下、図1の概観図及び図3の機能ブロック図を参照して、自律移動ロボット1の構成及び機能について説明する。
自律移動ロボット1は、図1に示すように、4枚のロータ(プロペラ)2(2a〜2d)を一平面上に有する。各ロータ2は、バッテリ(二次電池:図示しない)により駆動されるモータ4(4a〜4d)を用いて回転させられる。一般的に、シングルロータ型のヘリコプタでは、メインロータによって発生する反トルクをテールロータが生み出すモーメントで相殺することによって方位角を保っている。一方、自律移動ロボット1のようなクアッドロータ型のヘリコプタでは、前後・左右で異なる方向に回転するロータ2を用いることで反トルクの相殺を行っている。そして、各ロータ2の回転数(fa〜fd)を制御することにより、様々な機体の移動や姿勢の調節を行うことができる。例えば、機体をヨー方向に回転させたいときは、前後のロータ2a、2cと左右ロータ2d、2bの回転数に差を与えればよい。
撮像部3は、例えばレンズなどの光学系および所定画素(例えば640×480画素)のCCDやCMOSなどの2次元アレイ素子を有する二次元イメージセンサで構成され、飛行空間の撮像画像を所定の時間間隔で取得するいわゆるカラーカメラである。本実施の形態では、撮像部3は、その光軸が自律移動ロボット1の正面方向を撮像するよう筐体部分に設置され、かつ、水平面(XY平面)から予め定めた俯角θにより斜め下方の空間を視野角φにおいて撮像するよう設置されている。取得した撮像画像は後述する制御部7に出力され、制御部7により記憶部8に記憶されたり、後述する通信部9を介して管理装置102に送信されたりする。
距離検出センサ5は、自律移動ロボット1の周囲に存在する障害物と自律移動ロボット1との間の距離を検出し、センサ検出範囲内に存在する障害物の相対的な位置を取得するセンサである。本実施の形態では、距離検出センサ5としてマイクロ波センサを備える。マイクロ波センサは、空間にマイクロ波を放出し、その反射波を検知することによって、自律移動ロボット1の周囲にある物体を探知し、その物体までの距離を求める。距離検出センサ5は、例えば、自律移動ロボット1の前方に向けて設け、目標対象物Mまでの距離を測定するために用いることができる。また、距離検出センサ5は、例えば、自律移動ロボット1の下部に下向きに設け、地面との距離(高度)を測定するために用いることもできる。また、距離検出センサ5は、例えば、撮像部3の画角方向に向けて設け、撮像部3の撮像対象物である目標対象物Mまでの距離を測定するために用いることができる。
位置検出センサ6は、自律移動ロボット1の現在位置を取得するためのセンサである。位置検出センサ6は、例えば、GNSS(Global Navigation Satellite System)等の航法衛星(人工衛星)から送信される電波(航法信号)を受信する。位置検出センサ6は、複数の航法衛星(人工衛星)から送信される航法信号を受信して制御部7へ入力する。
なお、位置検出センサ6は、レーザスキャナ、ジャイロセンサ、電子コンパス、気圧センサ等の他のセンサを用いて既知の従来技術により自己位置を得るための情報を取得するものとしてもよい。
通信部9は管理装置102との間で、例えば無線LANや携帯電話回線等により無線通信するための通信モジュールである。本実施の形態では、撮像部3によって取得した撮像画像を通信部9により管理装置102に送信し、当該撮像画像を管理装置102から警備センタ100に送信することにより、警備員等が遠隔から侵入者を監視することを可能にする。また、通信部9は、管理装置102から目標対象物Mの位置(座標:Xt,Yt,Zt)を受信することにより、後述するような移動経路の設定を可能にする。
記憶部8は、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等の情報記憶装置である。記憶部8は、各種プログラムや各種データを記憶し、制御部7との間でこれらの情報を入出力する。各種データには、移動履歴情報81、第1閾値82、第2閾値83、ボクセル情報84、移動空間グラフ情報85等の制御部7の各処理に用いられる各種パラメータ86、各センサ等の出力値及び撮像画像等が含まれる。
移動履歴情報81は、過去に自律移動ロボット1が移動した位置の履歴に関する情報である。移動履歴情報81には、図4に示すように、自律移動ロボット1が過去に移動した位置(座標:X,Y,Z)とその時刻及びその位置における推定精度が関連付けて登録される。自律移動ロボット1の位置は、後述の位置推定手段71にて位置検出センサ6において受信した緯度・経度の情報及び距離検出センサ5において測定された高度の情報に基づいて算出される。なお、位置検出センサ6にて受信された高度の情報を用いてもよい。推定精度は、当該位置における自己位置を推定する処理における確からしさを表わす指標である。推定精度は、例えば、位置検出センサ6において補足された衛星数、DOP値及び2drms値の少なくとも1つに基づいて算出される値を用いることが好適である。推定精度は、自己位置の推定の確度が高いほど高い値となるように設定される。また、位置検出センサ6をレーザスキャナ、ジャイロセンサ、電子コンパス、気圧センサ等の他のセンサとした場合、自己位置の推定精度は、位置検出センサ6の測定の精度と後述する位置推定手段71における推定処理の精度とを反映した値とすればよい。
第1閾値82は、自律移動ロボット1の移動制御を行う際に、位置推定手段71にて推定した自己位置が良好な推定精度とならない位置(以下、「推定困難位置」という)であるか否かを判定するための基準となる閾値である。また、第2閾値83は、自己位置が良好な推定精度とならない推定困難位置であった場合、自律移動ロボット1を推定精度が高い位置に戻す際の判定に用いるための閾値である。第1閾値82及び第2閾値83を用いた処理については後述する。
ボクセル情報84は、飛行空間をボクセル空間として複数のボクセルに分割して飛行空間の障害物の構造等を表した情報であり、予め管理者等によって設定され記憶部8に記憶される情報である。本実施の形態では、飛行空間を所定の大きさ(例えば15cm×15cm×15cm)のボクセルに等分割し、各ボクセルの識別子であるボクセルIDと、飛行空間におけるボクセルの位置(座標)と、ボクセル属性と、ボクセルコスト値とを対応付けてボクセル情報84として記憶する。ボクセル属性には、建造物等の障害物に位置するボクセルを「占有ボクセル」と定義して、自律移動ロボット1が移動できない空間とする。そして、占有ボクセルの近くに存在する空間に位置するボクセルを「近接ボクセル」、それ以外の自由に飛行可能なエリアに位置するボクセルを「自由ボクセル」として定義する。
各ボクセルには、後述する経路探索手段73にて移動経路を生成する際に利用できるよう、占有度を示すボクセルコスト値が関連付けて登録される。ボクセルコスト値は、占有ボクセルにおいて最大値をとり、占有ボクセルからの距離が大きくなるほど小さな値となるように設定される。例えば、ボクセルコスト値=exp{−λ・(占有ボクセルからの距離)}の計算式からボクセルコスト値を算出することが好適である。ここでλは実験によって求めたパラメータである。そして、予め定めた閾値以上のボクセルコスト値を有するボクセルを「近接ボクセル」とする。また、ボクセルコスト値が当該閾値よりも小さいボクセルを「自由ボクセル」とし、自由ボクセルとみなされたボクセルのボクセルコスト値を0と設定する。なお、自律移動ロボット1が移動空間における予め定めた移動可能空間の外に出ないようにするため、移動可能空間とその外部との境界となるボクセルを占有ボクセルと設定することが好適である。
移動空間グラフ情報85は、ボクセル情報84に基づいて作成された3次元グラフ情報である。具体的には、ボクセル情報84に基づいて、各ボクセルの中心位置をノードとし、当該ノードに隣接するノード間を連結した線分をエッジとしたグラフ構造からなる情報である。図5は移動空間グラフ情報85のグラフ構造を説明する図であり、飛行空間におけるボクセルの一部(27個)を切り欠いたものである。図5において符号Bで表す個々の立方体はボクセルを表すものである。また、これらのボクセルBの中心位置にある黒又はハッチングにて塗りつぶした球はノードであり、ノード間を連結する点線で表示する線分はエッジである。
また、記憶部8には、各種パラメータ86として離間距離や撮像条件情報等も記憶される。離間距離は、目標対象物Mに追従飛行するにあたって、自律移動ロボット1と目標対象物Mとの水平面における維持すべき相対距離である。離間距離は、自律移動ロボット1の管理者等によって予め設定される。自律移動ロボット1を用いて所定の目標対象物Mを監視する場合、目標対象物Mに近づき、より詳細な撮像画像を取得できる必要がある。しかし、侵入者などの敵対する目標対象物Mから攻撃を受けないようにするためには一定距離以上離間する必要がある。そのため、本実施の形態の自律移動ロボット1は、目標対象物Mの詳細な撮像画像を取得でき、かつ、当該目標対象物Mから攻撃を受け難い距離に離間距離を予め、当該離間距離を保ちつつ追従飛行するように制御される。離間距離は、例えば3mとして設定される。また、撮像条件情報は、撮像部3の視野を表す情報である。本実施の形態では、撮像部3の俯角θ及び視野角φが撮像条件情報として記憶される。撮像条件情報は、撮像部3の特性及び設置角度等に基づいて管理者等によって適宜設定される。なお、自律移動ロボット1に対して撮像部3の撮像方向を変更可能なカメラ制御装置を搭載した場合の他の実施形態においては、当該カメラ制御装置から撮像方向についての情報を取得するようにしてもよい。
制御部7は、CPU等を備えたコンピュータで構成され、位置推定処理、速度推定処理、経路探索処理、移動制御処理(経路追従制御及び復帰制御)を行う一連の処理として、位置推定手段71、速度推定手段72、経路探索手段73、移動制御手段74を含んでいる。
位置推定手段71は、位置検出センサ6の出力に基づいて、飛行空間における自律移動ロボット1の現在位置(自己位置)を推定する位置推定処理を行う。
具体的には、位置検出センサ6から得られた複数の航法衛星からの航法信号に基づいて既知の周知技術に基づいて推定した緯度・経度と、距離検出センサ5から得られた高度とから自己位置の座標(Xs,Ys,Zs)を計算する。なお、自己位置の推定方法はこれに限定されるものではなく、他の方法を用いて自律移動ロボット1の現在位置を推定してもよい。
位置推定手段71は、推定された自己位置(座標:Xs,Ys,Zs)と管理装置102から受信した目標対象物Mの位置(座標:Xt,Yt,Zt)を経路探索手段73へ出力する。
また、位置推定手段71は、推定された自己位置に関連付けて、自己位置を推定したときの時刻及び当該自己位置の推定精度を移動履歴情報81に追記する。
なお、位置推定手段71は、目標対象物Mの位置に基づいてボクセル情報84を更新する処理を行う。具体的には、記憶部8のボクセル情報84に基づいたボクセル空間に目標対象物Mの位置を中心として予め定めた目標対象物Mの大きさと略同じ大きさの円柱モデル(例えば、監視対象の目標対象物Mを侵入者であるとしたとき、底面の半径0.3m、高さ1.7mの円柱モデル)を配置し、当該円柱モデルと干渉するボクセルを占有ボクセルとして設定することによりボクセル情報84を更新する。後述するように、自律移動ロボット1は、占有ボクセルには移動しないように飛行制御されるが、上記のように目標対象物Mの位置に基づいてボクセル情報84を更新することにより、自律移動ロボット1と目標対象物Mとの接触を回避することができる。
速度推定手段72は、後述する移動制御手段74における移動制御で利用するため、自律移動ロボット1の現在の飛行速度(vx,vy,vz,vyaw)を推定する処理を行う。本実施の形態では、位置推定手段71にて推定した自己位置(Xs,Ys,Zs)の時間変化から飛行速度を求める。この際、測定誤差等の影響を考慮して拡張カルマンフィルタを利用して飛行速度を推定することが好適である。
経路探索手段73は、位置推定手段71で推定された自己位置及び目標対象物Mの位置と、記憶部8に記憶された各種情報とを用いて自律移動ロボット1の移動経路を算出する処理を行う。本実施の形態では、経路探索手段73は、自己位置から目標対象物Mの近傍に設定した移動目標位置に至る移動経路を生成する。
経路探索手段73は、目標対象物Mの位置に基づいて移動目標位置を設定する。本実施の形態では、(目標対象物Mの位置の時間変化により求めた)目標対象物Mの移動方向を目標対象物Mの正面方向として定め、当該正面方向に予め設定した離間距離(3m)だけ水平方向に離れた位置であって高度3mの位置を移動目標位置として設定する。そして設定された移動目標位置と、記憶部8に記憶されたボクセル情報84及び移動空間グラフ情報85と位置推定手段71にて算出された自己位置とを用いて自律移動ロボット1の移動経路を算出する経路生成処理を行う。
経路生成処理では、ボクセル情報84及び移動空間グラフ情報85を参照し、自己位置に対応するボクセルのノード(以下「スタートノード」という)から移動目標位置に対応するボクセルのノード(以下「ゴールノード」という)に至る総コスト値Cが最も小さくなる経路をA*経路探索法により探索する。
A*経路探索法では、ある評価ノードn(ノードIDがnのノード)における総コスト値C(n)を数式(1)で表わす。
ここで、g(n)は、評価ノードnについてのA*経路探索法におけるgコスト値であり、本実施の形態では、スタートノードから評価ノードnに至るまでの移動距離や障害物への接触危険性を考慮したコスト値として求める。すなわち、評価ノードnのgコスト値であるg(n)は、隣接ノードにおけるgコスト値であるg(n−1)と、当該隣接ノードから評価ノードに至る距離に基づいて設定された距離コストCM、評価ノードにおけるボクセルコストCv(n)との和とし、g(n)=g(n−1)+CM+Cv(n)により求める。また、h(n)は、評価ノードnについてのA*経路探索法におけるhコスト値であり、評価ノードnからゴールノードに至る距離の推定コスト値である。本実施形態では、評価ノードnからゴールノードに至る直線距離によりh(n)を求める。A*経路探索法では、スタートノードから順に隣接ノードの総コスト値C(n)を算出していくことを繰り返し、最終的にゴールノードに至る総コスト値C(n)が最も小さくなる経路を探索していく。
以下に、A*経路探索法による移動経路の生成について簡単に説明する。A*経路探索法では、まず、スタートノードに隣接する一又は複数のノード(隣接ノード)を評価ノードとして設定するところから開始する。そして、それぞれの評価ノードについて式(1)により総コスト値を求める。次に、評価ノードの中で最小の総コスト値となるノードを注目ノードと称したとき、当該注目ノードの(これまで評価ノードと設定されていない新たな)隣接ノードを新たに評価ノードとして追加し、新たに追加された評価ノードに対しても同様に総コスト値を求める。続いて、同様に全ての評価ノードの中で最小の総コスト値となる評価ノードを注目ノードに再設定する。このように、評価ノードの総コスト値に基づいた注目ノードの再設定と、当該再設定に伴う新たな評価ノードの追加及び総コスト値の計算を繰り返し、最終的にゴールノードが注目ノードとして設定されたとき、経路の探索は終了する。
このようにして、起点となるスタートノードから終点となるゴールノードに至る最良の移動経路が生成される。経路探索手段73で生成された移動経路のデータは、経由点となるノードの位置(x,y,z)の集合データであり、この情報は記憶部8に一時的に記憶される。
なお、経路の探索方法は、A*経路探索法に限定されるものでなく、ダイクストラ法等の他の経路探索方法を適用してもよい。
移動制御手段74は、経路探索手段73にて算出された移動経路と位置推定手段71にて推定された自己位置と速度推定手段72で推定された飛行速度とを用いて、自律移動ロボット1が経路探索手段73で算出された移動経路に沿って飛行するように経路追従制御を行う。具体的には、移動経路、自己位置及び飛行速度を用いて各時刻での飛行制御値である速度指令値を求め、当該速度指令値に基づいてモータ4を制御し、ロータ2の回転数を制御する。
経路追従制御では、まず、各時刻での自律移動ロボット1が目標とすべき直近の位置(以下、「ローカル目標」と呼ぶ)を算出する処理を行う。図6はローカル目標の算出を説明する図である。ローカル目標の算出にあたり、移動制御手段74は、経路探索手段73で生成された移動経路を記憶部8から読出し、自律移動ロボット1が現在時刻で目指している経由点Wp1と前回通過済みである経由点Wp0との2点間を繋げた直線Wを求める。そして、移動制御手段74は、求めた直線Wと自律移動ロボット1の自己位置を中心とした球Sとの交点Lp’、Lpを算出し、目指している経由点Wp1に近い交点Lpをローカル目標として求める。このように、各時刻においてローカル目標を目指して自律移動ロボット1が移動するよう飛行制御することで、常にローカル目標も移動経路上を移動目標位置Poに向かって移動していき、自律移動ロボット1は移動経路に沿って飛行していくことになる。
次に、経路追従制御では、算出したローカル目標に向かって飛行するようX、Y、Z、ヨー角の各方向毎に速度指令値ux,uy,uz,uψを算出する処理を行う。この際、現在の自己位置とローカル目標の位置との差異が小さくなるような速度指令値を求める。具体的には、XYZ軸方向の速度指令値u=(ux,uy,uz)は、位置推定手段71で求められた自己位置r=(Xs,Ys,Zs)と速度推定手段72で推定した速度v=(vx,vy,vz)とを利用し、PID制御により求める。XYZ軸方向の各速度指令値をu=(ux,uy,uz)、ローカル目標をr’=(x,y,z)としたとき、速度指令値は、u=Kp(r’−r)+Kd・v+Ki・eの式で算出される。ここで、Kp、Kd、KiはそれぞれPID制御のゲインのことであり、e=(ex,ey,ez)は誤差の積分値である。一方、ヨー角方向の速度指令値uψは、ψ'を目標角度、ψを位置推定手段71にて推定した自律移動ロボット1の姿勢(角度)、vyawを速度推定手段72で推定した角速度とすると、uψ=Kp(ψ’−ψ)+Kd・vψの式のようなPD制御により求める。なお、本実施の形態では、目標角度ψ'を目標対象物Mの方向、すなわち、目標対象物Mの位置の方向を向く角度とした。
このように、制御部7は、上述した位置推定手段71、速度推定手段72、経路探索手段73、移動制御手段74における各処理を逐次繰り返す。これにより、本実施の形態の自律移動ロボット1は、目標対象物Mから離間距離の位置に対して移動目標位置を逐次更新し、その都度移動経路についても逐次更新していくことによって、目標対象物Mを適切に追従することができる。
以上のように、自律移動ロボット1は、自己位置から移動目標位置までの経路を探索し、探索された経路に沿って自律的に移動する。しかしながら、位置推定手段71による移動経路の探索の起点となる自己位置の推定精度が低い場合、その起点を基準として探索された移動経路に沿って自律移動ロボット1が移動した場合に障害物等に衝突するおそれがある。また、経路追従制御においても自己位置を用いて飛行制御しているため、自己位置の推定精度が低い場合、移動経路に適切に追従できないばかりか、障害物等に衝突するおそれもある。
そこで、自律移動ロボット1では、自己位置の推定精度が低い場合には過去の移動履歴に基づいて推定精度が高い位置まで自律移動ロボット1を移動させる復帰制御を行う。以下、図7を参照しつつ、復帰制御について説明する。図7は、ボクセルで表示した飛行空間の一部を真上から見下ろしたときの図である。同図において、黒塗りされたボクセルは占有ボクセルであり、平行斜線(ハッチング)で塗られたボクセルは近接ボクセルであり、白色のボクセルは自由ボクセルである。図7に表すように、目標対象物Mから正面方向に離間距離(3m)だけ離れた位置Pを移動目標位置に設定されていることとする。
移動制御手段74は、位置推定手段71から推定された自己位置の入力を受けると共に、記憶部8に記憶されている移動履歴情報81から当該自己位置に関連付けて登録されている推定精度を読み出す。移動制御手段74は、読み出された推定精度が記憶部8に予め記憶されている第1閾値82と比較し、第1閾値82以下であれば当該自己位置は推定困難位置であるとして復帰制御を開始する。図7(a)では、自律移動ロボット1は、時刻t0における自己位置P0において生成した移動経路R1に沿って移動し、その移動中における時刻t1の自己位置にて当該位置が推定困難位置P1であると判定したことを表している。
復帰制御は、移動履歴情報81として記憶されている位置(座標)中で推定困難位置ではない所定の位置に自律移動ロボット1を移動させる制御とする。移動制御手段74は、自律移動ロボット1を移動制御する際に、位置推定手段71において現在の自己位置の推定に対する推定精度が第1閾値82以下であれば、移動履歴情報81から第1閾値82より大きい第2閾値83以上の推定精度を有する座標で表される位置(以下、臨時目標位置という)を読み出す。そして、移動制御手段74は、現在の自己位置から臨時目標位置に至る移動経路に沿って自律移動ロボット1を移動させるように復帰制御を行う。図7(b)では、復帰制御により、推定困難位置P1から臨時目標位置P2として設定された位置までの移動経路R2を求め、当該移動経路R2に沿うよう移動し、時刻t2において臨時目標位置P2まで移動したことを表している。
なお、現在の自己位置から臨時目標位置までの移動経路は、上記経路探索手段73による現在の自己位置から移動目標位置までの移動経路の経路探索処理と同様に行えばよい。すなわち、移動目標位置を臨時目標位置に置き換えて、上記経路探索処理を行うことにより現在の自己位置から臨時目標位置までの移動経路を定めることができる。
また、具体的な移動制御は、移動目標位置までの経路に沿った移動制御と同様にローカル目標を適宜定めながら経路追従制御を行えばよい。
このような構成とすることによって、自律移動ロボット1は、たとえ自己位置の推定精度が悪い位置(推定困難位置)に移動したとしても、過去に移動した位置であって推定精度が第1閾値82より大きい安全な位置(臨時目標位置)まで自動的に復帰することができる。
また、移動制御手段74は、移動履歴情報81として記憶されている位置のうちその推定精度が第1閾値82を超える第2閾値83以上となる位置のうち現在の自己位置の座標に最も近い座標の位置を臨時目標位置とすることが好適である。
これにより、自律移動ロボット1は、現在の推定困難位置から、過去に移動した位置の中で推定精度がより高い位置に向かって素早く復帰することができる。
また、移動制御手段74は、移動履歴情報81として記憶されている移動履歴を遡るように自律移動ロボット1を推定精度の高い位置に復帰させるように移動制御してもよい。この場合、移動制御手段74は、移動履歴情報81を参照して現在の自己位置から過去に遡る移動履歴を読み出す。このとき、移動制御手段74は、移動履歴を遡りつつ推定精度が初めて第1閾値82を超える第2閾値83以上となる臨時目標位置までの移動経路の履歴を読み出す。すなわち、現在の自己位置から過去に移動してきた経路を遡りつつ、移動履歴情報81として記憶されている座標群の中で第1閾値82より大きい第2閾値83以上の推定精度である最も近い座標を臨時目標位置として、現在の自己位置から臨時目標位置までの移動経路履歴を読み出す。そして、移動制御手段74は、読み出された現在の自己位置から臨時目標位置まで遡る移動経路履歴に沿って自律移動ロボット1を復帰させるように移動制御を行う。
これにより、自律移動ロボット1は、推定困難位置である現在の自己位置からこれまで移動してきた推定精度が第2閾値83以上の位置であって、安全な移動が確認できている経路に沿って臨時目標位置まで自動的に移動することができる。
また、経路探索手段73において移動履歴情報81として記憶されている過去に移動した位置の推定精度を考慮せずに経路探索を行ったが、推定精度を考慮して経路探索を行う構成としてもよい。この場合、移動制御手段74は、現在の自己位置の推定精度が第1閾値82以下であれば当該位置に対応するボクセルのボクセルコストを高くする処理を行う。
例えば、推定困難位置を含むボクセルにおける現在のボクセルコスト値にexp{−δ・(推定精度)}の計算式から算出した値を足すことにより、新たなボクセルコスト値を求めることが好適である。ここでδは実験によって求めたパラメータである。また、推定困難位置を含むボクセルにおける現在のボクセルコスト値を占有ボクセルと同じ最大値に変更してもよい。図7(c)では、自律移動ロボット1は、時刻t3において、推定困難位置P1を含むボクセルのボクセルコスト値を高め、自由ボクセルから近接ボクセルにボクセル属性を変更していることを表している。また、これにより、新たに生成された移動経路R3は、推定困難位置P1の近傍を含まない経路となっていることを表している。
このように、推定精度が低い位置(推定困難位置)におけるボクセルコスト値を高めることによって、経路探索手段73において移動履歴情報81に記憶されている座標群の中で推定困難位置である座標の近傍を含まない移動経路を生成することができる。
ところで、本発明は、上記実施形態に限定されるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施形態で実施されてもよいものである。また、実施形態に記載した効果は、これに限定されるものではない。
上記実施形態では、管理装置102に接続された目標対象物検出センサ104を用いて目標対象物Mを検出している。しかしながら、これに限定されるものではなく、撮像部3で取得した撮像画像を画像解析することにより、目標対象物Mの位置を推定してもよい。例えば、撮像画像の各フレームを画像処理して目標対象物の画像領域を抽出する処理を行う。この際、既知の従来技術(特開2006−146551号公報を参照)であるオプティカルフロー法、ブースティング学習(例えば、Haar−like特徴を用いているAdaBoostベース識別器による顔検出手法)による識別器等を用いて目標対象物の画像領域(人物領域)を抽出する。次に、当該抽出された画像領域の位置に基づいて目標対象物と自律移動ロボット1との距離を推定する。具体的には、抽出した目標対象物の画像領域の頭頂部の(撮像画像における)y座標位置と距離との対応表を予め飛行高度毎に作成しておき、現在の飛行高度及び目標対象物の頭頂部のy座標位置を当該対応表に照らし合わせて自律移動ロボット1との距離を推定する。しかし、これに限らず、抽出した目標対象物の頭部の大きさから距離を算出してもよい。すなわち、頭部の大きさと距離との対応表を予め作成しておき、抽出された目標対象物の頭部の大きさを当該対応表に照らし合わせて自律移動ロボット1との距離を推定してもよい。
また、自律移動ロボット1に撮像部3としてカラーカメラの代わりに距離画像センサを搭載して、当該距離画像センサから取得した距離画像を用いて、既知の移動物体抽出技術により目標対象物を抽出して、抽出した目標対象物と自律移動ロボット1との距離値と自己位置とから目標対象物の位置を推定してもよい。また、自律移動ロボット1にレーザスキャナを搭載し、当該レーザスキャナの出力値と自己位置とを用いて目標対象物の位置を推定してもよい。
また、上記実施形態では、制御部7において位置推定処理、速度推定処理、経路探索処理、移動制御処理(経路追従制御及び復帰制御)の一連の処理を行っている。しかし、これに限らず、図示しない制御用のPCを用意し、当該PCにこれらの一連の処理を実施させてもよい。すなわち、自律移動ロボット1は、PCによって行われた位置推定処理、速度推定処理、経路探索処理、移動制御処理によって得られた速度指令値を無線通信又は有線通信によりPCから受信し、当該速度指令値に基づいてモータ4の回転数を制御することにより、目的の位置に飛行するようにしてもよい。このように、外部PCを用いて上記の一連の処理を分担することにより、自律移動ロボット1のCPU処理負荷を低減することができ、ひいてはバッテリの消耗も抑えることができる。