(58)【調査した分野】(Int.Cl.,DB名)
前記移動目標位置設定手段は、他の連続領域との距離が小さい連続領域であるほど該連続領域内の位置に前記移動目標位置を設定し易いよう評価する請求項1又は請求項2に記載の自律移動ロボット。
【発明を実施するための形態】
【0015】
以下、移動物体である侵入者の画像を撮像して所定の相対距離を保ちながら追従飛行し、特に、侵入者が攻撃や捕獲等を意図して接近してきた場合であっても適切に回避するよう飛行可能な自律移動ロボット(以下、「自律飛行ロボット」という)についての実施形態について添付した図面を参照しながら詳細に説明する。なお、本発明でいう自律移動ロボットは、前記のような自律飛行ロボットに限らず、移動物体に対して追従走行する自律走行ロボットも含まれる。また、本発明の自律移動ロボットは、自動車等の人物以外の様々な移動物体についても同様に適用することができる。
【0016】
図1に本実施形態で利用する自律飛行ロボット1の概観図を表す。また、
図2に本実施形態で利用する自律飛行ロボット1の機能ブロック図を表す。
図1に表すように、本実施形態で利用する自律飛行ロボット1は、符号2a〜2dに示す4枚のロータ2(プロペラ)が一平面上に存在し、各ロータ2が図示しないバッテリ(二次電池)により駆動するモータ6によって回転することによって飛行するクアッドロータ型の小型無人ヘリコプタである。一般的に、シングルロータ型のヘリコプタでは、メインロータによって発生する反トルクをテールロータが生み出すモーメントで相殺することによって方位角を保っている。一方、本実施形態で利用する自律飛行ロボット1のようなクアッドロータ型のヘリコプタでは、前後・左右で異なる方向に回転するロータ2を用いることで反トルクの相殺を行っている。そして、例えば、機体をヨー方向に回転させたいときは、符号fa〜fdの矢印で示すように前後のロータ2a、2cと左右ロータ2d、2bの回転数に差を与える。このように、各ロータ2の回転数を制御することにより、様々な機体の移動や姿勢の調節を行うことができる。
【0017】
撮像部3は、例えばレンズなどの光学系および所定画素(例えば640×480画素)のCCDやCMOSなどの2次元アレイ素子を有する二次元イメージセンサで構成され、飛行空間の撮像画像を所定の時間間隔で取得するいわゆるカラーカメラである。本実施形態では、撮像部3は、その光軸が自律飛行ロボット1の正面方向を撮像するよう筐体部分に設置され、かつ、水平面(XY平面)から予め定めた俯角θにより斜め下方の空間を撮像するよう設置されている。取得した撮像画像は後述する制御部7に出力され、制御部7により記憶部8に記憶されたり、後述する通信部9を介して図示しない外部装置に送信されたりする。
通信部9は外部装置との間で、例えば無線LANや携帯電話回線等により無線通信するための通信モジュールである。本実施形態では、撮像部3によって取得した撮像画像を図示しない警備センタに設置されたPCに送信することにより、警備員等が遠隔から侵入者を監視することを可能にする。
【0018】
距離検出センサ4は、自律飛行ロボット1の周囲に存在する障害物と距離検出センサ4との間の距離を検出し、センサ検出範囲内に存在する障害物の相対的な位置を取得するセンサである。本実施形態では、距離検出センサ4としてレーザスキャナを備えている。レーザスキャナは、一定の角度サンプル間隔の角度毎に二次元スキャンすることによって、地面(又は床面)から一定の高さの水平面における周囲に存在する物体(障害物)との距離情報を極座標値として取得することができるものである。ここで、レーザスキャナにおける二次元スキャンとは、予め設定された検知エリアを走査するように、放射状にレーザ光である探査信号を送信し、検知エリア内の物体に反射して戻ってきた探査信号を受信して、送信と受信の時間差から物体までの距離を算出し、その探査信号を送信した方向と算出した距離を求めることをいう。本実施形態では、角度サンプル間隔を0.25°、検出角度範囲を360°、センサ検出範囲を30mとして自律飛行ロボットの周囲の障害物との距離を測定可能なレーザセンサを用いている。なお、レーザスキャナから照射されるレーザの一部をミラー5で地面方向に反射させて計測された距離情報を利用して飛行高度を推測することにも利用している。
【0019】
記憶部8は、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等の情報記憶装置である。記憶部8は、各種プログラムや各種データを記憶し、制御部との間でこれらの情報を入出力する。各種データには、本発明の「障害物マップ」に対応する2Dポイント情報81及びボクセル情報82、離間距離83の他、制御部7の各処理に用いられる設定値、閾値等の各種パラメータ84や、各センサ等からの出力値、撮像画像等が含まれる。
【0020】
2Dポイント情報81は、後述する位置推定手段71にて自律飛行ロボットの現在の飛行位置(以下、「自己位置」という)を推定するために利用する情報であり、グローバル座標と呼ばれる水平面における二次元の絶対座標上に表され、飛行空間における建造物等の障害物の外形を表す点集合の座標情報である。本実施形態では、飛行高度毎に設定された複数の点集合を2Dポイント情報として予め記憶部8に記憶していることとし、自律飛行ロボットの飛行高度によって対応する飛行高度の点集合を記憶部8から読み出して利用するものとする。
【0021】
ボクセル情報82は、飛行空間をボクセル空間として複数のボクセルに分割して飛行空間の障害物の構造等を表した情報であり、予め管理者等によって設定され記憶部8に記憶される情報である。本実施形態では、飛行空間を所定の大きさ(例えば15cm×15cm)に分割し、建造物等の障害物に位置するボクセルを「占有ボクセル」と定義して、自律飛行ロボット1が移動できない空間とした。そして、占有ボクセルの近くに存在する空間に位置するボクセルを「近接ボクセル」、それ以外の自由に飛行可能なエリアに位置するボクセルを「自由ボクセル」として定義した。そして、各ボクセルには、後述する移動経路生成手段にて移動経路を生成する際に利用できるよう、占有度を示すボクセルコスト値を持たせた。占有ボクセルのボクセルコスト値は最大値をとり、距離が大きくなるほどボクセルコスト値が小さくなるように、(ボクセルコスト値)=exp{−λ・(占有ボクセルからの距離)}の計算式からボクセルコスト値を算出した。ここでλは実験によって求めたパラメータである。そして、予め定めた閾値以上のボクセルコスト値を有するボクセルを「近接ボクセル」とした。また、ボクセルコスト値が当該閾値よりも小さいボクセルを「自由ボクセル」とし、自由ボクセルとみなされたボクセルのボクセルコスト値を0と再設定した。なお、自律飛行ロボット1が飛行空間における予め定めた移動可能空間の外に出ないようにするため、移動可能空間とその外部との境界となるボクセルを占有ボクセルと設定した。
【0022】
離間距離83は、移動物体を追従飛行するにあたって、自律飛行ロボット1と移動物体との水平面における維持すべき相対距離であり、自律飛行ロボット1の管理者等によって予め設定される値である。自律飛行ロボット1を用いて所定の移動物体を監視する場合、移動物体に近づき、より詳細な撮像画像を取得できる必要がある。しかし、侵入者などの敵対する移動物体から攻撃を受けないようにするためには一定距離以上離間する必要がある。そのため、本実施形態の自律飛行ロボット1は、移動物体の詳細な撮像画像を取得でき、かつ、当該移動物体から攻撃を受け難い距離に離間距離83を予め定めておき、当該離間距離を保ちつつ追従飛行するようにする。本実施形態では離間距離83を3mとして設定されているものとする。
【0023】
制御部7は、CPU等を備えたコンピュータで構成され、位置推定処理(自己位置推定処理、移動物体位置推定処理)、速度推定処理、経路探索処理、経路追従制御処理を行う一連の処理として、位置推定手段71、速度推定手段72、経路探索手段73、飛行制御手段74を含んでいる。
【0024】
位置推定手段71は、距離検出センサ4及び撮像部3の出力に基づいて、飛行空間における自律飛行ロボット1の現在位置(自己位置)を推定する自己位置推定処理と、移動物体の現在位置(以下、「移動物体位置」という)とを推定する移動物体位置推定処理とを行う。
【0025】
自己位置推定処理では、距離検出センサ4の出力と記憶部8に記憶された2Dポイント情報81とを用いて、自己位置として、水平面(XY平面)における位置x,yと、飛行高度zと、Z軸に対する回転角であるヨー角ψとを推定する処理を行う。
【0026】
自己位置推定処理では、まず、レーザスキャナから照射されるレーザの一部をミラー5で地面方向に反射させて計測された距離情報を利用して、自己位置の飛行高度zを算出する。レーザスキャナによって計測された距離情報は、地面には建造物以外の物体(例えば荷物や乗り物など)が存在するため、必ずしも地面までの距離として正確に計測されるとは限らない。したがって、本実施形態では、これらの建造物以外の障害物の影響を受け難いようレーザスキャナによって計測された距離情報に対して拡張カルマンフィルタを適用することにより飛行高度を推定する。
【0027】
次に、自己位置推定処理では、自己位置のx,y,ヨー角ψを推定する。自己位置のx,y,ヨー角ψを推定にあたり、まず、記憶部に記憶された2Dポイント情報81から飛行高度zに対応した飛行空間の二次元地図としての点集合を読み出す。そして、求めた点集合とレーザスキャナの出力とを用いて、ICP(Iterative Closest Point)アルゴリズムを利用した既知のスキャンマッチングにより自己位置のx,y,ヨー角ψを推定する。ICPアルゴリズムは、2つの点集合A,Bにおいてユークリッド距離が最小となる組合せを求めることによりマッチング処理するものである。すなわち、2Dポイント情報81の点集合と、自律飛行ロボット1に搭載されているレーザスキャナから取得したスキャンデータである入力点集合とをマッチングさせ位置誤差を修正することによって、グローバル座標における自己位置のx,y,ヨー角ψを推定することができる。
【0028】
移動物体位置推定処理では、撮像部3の出力である撮像画像を画像処理して、移動物体位置を推定する処理を行う。移動物体位置推定処理では、まず、撮像画像の各フレームを画像処理して移動物体の画像領域を抽出する処理を行う。本実施形態では、既知の従来技術(例えば、特開2006−146551号公報を参照)であるオプティカルフロー法を用いて移動物体の画像領域を抽出する。しかし、これに限らず、既知の従来技術であるブースティング学習(例えば、Haar−like特徴を用いているAdaBoostベース識別器による顔検出手法)による識別器を用いて、移動物体である人物領域が含まれるか否かを識別し、人物領域として識別された当該画像領域を抽出してもよい。また、上記の各技術を組み合わせて用いてもよい。次に、移動物体位置推定処理では、当該抽出された移動物体の画像領域の位置に基づいて移動物体と自律飛行ロボット1との距離を推定する。具体的には、抽出した移動物体の画像領域の頭頂部の(撮像画像における)y座標位置と距離との対応表を予め飛行高度毎に作成しておき、現在の飛行高度及び移動物体の頭頂部のy座標位置を当該対応表に照らし合わせて移動体との距離を推定する。しかし、これに限らず、抽出した移動物体の頭部の大きさから距離を算出してもよい。すなわち、頭部の大きさと距離との対応表を予め作成しておき、抽出された移動物体の頭部の大きさを当該対応表に照らし合わせて移動物体との距離を推定してもよい。なお、撮像画像から抽出した移動物体の画像領域は、時間的に画像追跡されていることとする。
【0029】
なお、位置推定手段71は、移動物体位置推定処理にて移動物体位置が算出すると、当該移動物体位置に基づいてボクセル情報82を更新する処理を行う。具体的には、記憶部8のボクセル情報82に基づいたボクセル空間に、算出された移動物体位置を中心として監視対象の移動物体として予め定めた移動物体の大きさと略同じ大きさの円柱モデル(例えば、監視対象の移動物体を侵入者であるとしたとき、底面の半径0.3m、高さ1.7mの円柱モデル)を配置し、当該円柱モデルと干渉するボクセルを占有ボクセルとして設定することによりボクセル情報82を更新する。後述するように、自律飛行ロボット1は、占有ボクセルには移動しないように飛行制御されるが、上記のように移動物体位置に基づいてボクセル情報82を更新することにより、自律飛行ロボット1と移動物体との接触を回避することができる。
【0030】
速度推定手段72は、後述する飛行制御手段74における経路追従制御で利用するため、自律飛行ロボット1の現在の飛行速度(v
x,v
y,v
z,v
yaw)を推定する処理を行う。本実施形態では、位置推定手段71にて推定した自己位置(x,y,z,yaw)の時間変化から飛行速度を求めた。この際、測定誤差等の影響を考慮して拡張カルマンフィルタを利用して飛行速度を推定した。
【0031】
経路探索手段73は、位置推定手段71で算出した自己位置及び移動物体位置と、記憶部8に記憶された各種情報とを用いて自律飛行ロボット1の移動経路を算出する処理を行う。
図3に経路探索手段73の機能ブロック図を表す。経路探索手段73は、
図3に表すように、移動候補位置を設定する移動候補位置設定手段731と、複数の移動候補位置を評価してその中から一つの移動目標位置を設定する移動目標位置設定手段732と、自己位置から移動目標位置に至る移動経路を生成する移動経路生成手段733とにより構成される。以下、経路探索手段73を構成する各手段における処理の詳細について説明する。
【0032】
移動候補位置設定手段731は、移動物体位置から離間距離83だけ離れた周囲の領域(本発明の「周辺領域」に対応する)に複数の移動候補位置を設定する処理を行う。本実施形態では、移動候補位置を、移動物体Mを中心とし記憶部8に記憶された離間距離83(=L)を半径とした円状の位置で、かつ、管理者等により予め定めた目標飛行高度(例えば2m)の領域に、それぞれ等間隔になるように設定する。
図4は移動候補位置の設定についての説明図であり、時刻tのときにボクセルで表示した飛行空間の一部を真上から見下ろしたときの図である。同図において、符号Boで表した黒塗りされたボクセルは占有ボクセルであり、符号Bnで表した平行斜線(ハッチング)で塗られたボクセルは近接ボクセルであり、符号Bfで表した白色のボクセルは自由ボクセルである。
図4に表すように、移動物体Mの重心位置Mgを中心として半径Lの円周上に複数個の移動候補位置Pcを等間隔に設置する。なお、本実施形態では、移動物体Mの周囲の位置に5°おきに72個の移動候補位置Pcを設置することとする。
【0033】
移動候補位置設定手段731にて移動候補位置Pcの設定を終えると、移動目標位置設定手段732は設定された複数の移動候補位置Pcを評価し、その中の一つを移動目標位置として設定する移動目標位置設定処理を行う。
図5は移動目標位置の設定についての説明図であり、
図4と同じように時刻tのときにおいてボクセルで表示した飛行空間の一部を真上から見下ろしたときの図である。
【0034】
移動目標位置設定処理では、まず、障害物の近傍に位置する移動候補位置Pcを評価対象から除外する処理を行う。すなわち、自律飛行ロボット1が障害物に接触することを防止するため障害物と干渉する位置にある移動候補位置Pcを除外し、また、障害物に接近するのも接触の危険性が増すことから障害物の近くに存在する移動候補位置Pcを除外する処理を行う。具体的には、
図5に表すように、自由ボクセルBf以外のボクセル(占有ボクセルBo、近接ボクセルBn)と干渉する位置にある移動候補位置Pcが移動目標位置として設定されないよう、以下で説明する評価の対象から除外する。
図5に表した移動候補位置Pcは、
図4で表した移動候補位置Pcから近接ボクセルBnと干渉している移動候補位置Pcを除外した後のものであり、評価対象となっている移動候補位置Pcとなるものである。なお、近接ボクセルBnは移動目標位置に設定できないものの移動経路とすることはできるものとする。一方、占有ボクセルBoは移動目標位置に設定することができないだけでなく移動経路とすることもできない。
【0035】
次に、移動目標位置設定処理では、評価対象から除外されていない各移動候補位置Pcにおいて、連続する一塊の移動候補位置Pcをクラスタリングし、一又は複数のクラスタを特定する。
図6は、クラスタリングを説明する図であり、
図4の後の時刻t+1の状態について表した図である。
図6に表す例では、移動物体Mは時刻tにおける移動物体M0から時刻t+1における移動物体M1に移動したことを表している。このとき、評価対象から除外されていない各移動候補位置Pcにおいて、連続する一塊の移動候補位置Pcは3つあり、それぞれ符号CL1〜CL3で示した3つのクラスタとして特定される。なお、本発明の「連続領域」は、本実施形態の「クラスタ」に対応する。このようにして、評価対象となっている移動候補位置Pcからクラスタ特定した後、移動目標位置設定処理では、各クラスタ毎にクラスタサイズを算出する処理を行う。本実施形態では、各クラスタを構成する移動候補位置Pcの数によって算出する。例えば、
図6の例では、クラスタCL1のクラスタサイズは7であり、クラスタCL2のクラスタサイズは34、クラスタCL3のクラスタサイズは7である。なお、本発明の「連続領域の大きさ」は、本実施形態の「クラスタサイズ」に対応する。
【0036】
次に移動目標位置設定処理では、評価対象から除外されていない各移動候補位置Pcを評価して移動目標位置を設定する処理を行う。本実施形態では、評価対象となっている各移動候補位置Pcの評価値を求め、当該評価値が最も大きい移動候補位置を移動目標位置として設定するように評価する。この際、まず、自律飛行ロボット1の現在位置から各移動候補位置までの距離が小さいほど評価値が大きくなるようにする。また、前回設定した移動目標位置からの移動候補位置までの距離が小さいほど評価値が大きくなるようにする。更に、各移動候補位置Pcが所属するクラスタのクラスタサイズが大きいほど評価値が大きくなるように評価する。本実施形態における評価値Vを求める具体的な評価式を数1で表す。
【数1】
ここで、r=(x,y,z)は自律飛行ロボット1の現在の自己位置、P
prev=(x
prev,y
prev,z
prev)は前回設定した移動目標位置を示し、α、β、σは距離に応じて減衰する値を調整するためのパラメータである。また、C
sizeは移動候補位置Pcの所属するクラスタのクラスタサイズであり、δはクラスタサイズに応じて増加する値を調整するためのパラメータである。
【0037】
以上のようにして、移動目標位置設定処理では評価値Vを求め、評価値Vが最大となる移動候補位置Pcを移動目標位置Poとして設定する。
図6の例では、点線で囲んだ移動候補位置Pcが移動目標位置Poとして設定されたことを表している。このように、移動目標位置Poが設定されると、後述するように設定された移動目標位置Poに向かうように移動経路が生成され、自律飛行ロボット1は当該移動目標位置Poに向かって移動していくこととなる。
【0038】
上述のように本実施形態では、各移動候補位置Pcの評価値Vを、当該移動候補位置Pcが属するクラスタのクラスタサイズが大きいほど大きくなるように評価している。そのため、自律飛行ロボット1はクラスタサイズが大きいクラスタ(連続領域)に属する移動候補位置Pcを移動目標位置Poとして設定し易くなる。言い換えるならば、自律飛行ロボット1は移動可能な領域がより大きい領域(移動自由度が高い領域)に向かって移動し易くなる。したがって、侵入者である移動物体Mが自律飛行ロボット1に攻撃等を行おうと接近してきた場合であっても、移動自由度の高い位置に移動するよう回避することによって、壁際等に追い詰められ難くすることができる。例えば、
図6の例では、自律飛行ロボット1はクラスタサイズの小さいクラスタCL1(及びCL3)に移動し難くなる一方で、クラスタサイズの大きいクラスタCL2に移動し易くなる。もし、自律飛行ロボット1がクラスタサイズの小さいCL1に移動してしまった場合、次第に壁の隅に追い詰められてしまい、最終的には攻撃又は捕獲され易い状況に陥ることになる。しかし、本実施形態のように、クラスタサイズの大きいCL2に移動することにより、その後の移動自由度が大きいことから、移動物体Mによる攻撃等からの回避するための余地(スペース)が大きいことことになる。このように、クラスタサイズ(連続領域の大きさ)が大きい位置に移動目標位置を設定し易くすることにより、移動物体Mからの攻撃等から適切に回避することができる。
【0039】
移動経路生成手段は、記憶部に記憶されたボクセル情報と、移動目標位置設定手段にて算出した移動目標位置と、位置推定手段にて算出した自己位置とを用いて自律飛行ロボットの移動経路を算出する移動経路生成処理を行う。具体的には、経路生成処理では、まず、記憶部からボクセル情報82を読出し、分割した移動可能な空間である自由ボクセルBf及び近接ボクセルBnの各ボクセルの中心をノードとし、当該ノードに隣接するノード間を連結した線分をエッジとしてグラフ構造を生成する。
図7はグラフ構造を説明する図であり、飛行空間における移動可能なボクセル(自由ボクセルBf又は近接ボクセルBn)の一部(27個)を切り欠いたものである。
図7において符号Bで表す個々の立方体は自由ボクセルBf又は近接ボクセルBnを表すものである。また、これらのボクセルBの中心にある黒又はハッチングにて塗りつぶした球はノードであり、ノード間を連結する点線で表示する線分はエッジである。このようにボクセル情報82に基づいて全ての移動可能なボクセルについてグラフ構造を生成した後、自律飛行ロボット1が存在しているボクセルのノードから移動目標位置Poが存在しているボクセルのノードまでの移動経路を生成する。移動経路の生成方法については、さまざまな経路生成方法が適用可能であるが、本実施形態ではA*(エースター)経路探索法を用いて移動経路を探索する。この際、ボクセル情報82として記憶されたボクセルコストをA*経路探索法における移動コストとして利用する。経路探索手段73で生成された生成された移動経路のデータは、経由点(x,y,z)の集合データであり、この情報は記憶部8に一時的に記憶される。
【0040】
飛行制御手段74は、経路探索手段73にて算出した移動経路情報と位置推定手段71にて推定した自己位置と速度推定手段72で推定した飛行速度とを用いて、各時刻での飛行制御値である速度指令値を求め、当該速度指令値に基づいてモータ6を制御し、ロータ2の回転数を制御することにより、自律飛行ロボット1が経路探索手段73で算出した移動経路に沿って飛行させる経路追従制御処理を行う。なお、本発明における「移動制御手段」は、本実施形態における移動経路生成手段733及び飛行制御手段74に対応する。
【0041】
経路追従制御処理では、まず、各時刻での自律飛行ロボットが目標とすべき直近の位置(以下、「ローカル目標」と呼ぶ)を算出する処理を行う。
図8はローカル目標の算出を説明する図である。ローカル目標の算出にあたり、飛行制御手段74は、経路探索手段73で生成された移動経路を記憶部8から読出し、自律飛行ロボットが現在時刻で目指している経由点Wp1と前回通過済みである経由点Wp0との2点間を繋げた直線Wを求める。そして、飛行制御手段は、求めた直線Wと自律飛行ロボット1の自己位置を中心とした球Sとの交点Lp’、Lpを算出し、目指している経由点Wp1に近い交点Lpをローカル目標として求める。このように、各時刻においてローカル目標を目指して自律飛行ロボット1が移動するよう飛行制御することで、常にローカル目標も移動経路上を移動目標位置Poに向かって移動していき、自律飛行ロボット1は移動経路に沿って飛行していくことになる。
【0042】
次に、経路追従制御処理では、算出したローカル目標に向かって飛行するようX、Y、Z、ヨー角ψの各方向毎に速度指令値u
x,u
y,u
z,u
ψを算出する処理を行う。この際、現在の自己位置とローカル目標の位置との差異が小さくなるような速度指令値を求める。具体的には、XYZ軸方向の速度指令値u=(u
x,u
y,u
z)は、位置推定手段で求めた自己位置r=(x,y,z)と速度推定手段で推定した速度v=(v
x,v
y,v
z)とを利用し、PID制御により求める。XYZ軸方向の各速度指令値をu=(u
x,u
y,u
z)、ローカル目標をr’=(x,y,z)としたとき、速度指令値は、u=K
p(r’−r)+K
d・v+K
i・eの式で算出される。ここで、K
p、K
d、K
iはそれぞれPID制御のゲインのことであり、e=(e
x,e
y,e
z)は誤差の積分値である。一方、ヨー角方向の速度指令値u
ψは、ψ'を目標角度、ψを位置推定手段71にて推定した自律飛行ロボット1の姿勢(角度)、v
yawを速度推定手段72で推定した角速度とすると、u
ψ=K
p(ψ’−ψ)+K
d・v
ψの式のようなPD制御により求める。なお、本実施形態では、目標角度ψ'を移動物体Mの方向、すなわち、移動物体位置の方向を向く角度とした。
【0043】
このように、制御部7は、上述した位置推定手段71、速度推定手段72、経路探索手段73、飛行制御手段74における各処理を逐次繰り返す。これにより、本実施形態の自律飛行ロボット1は、移動物体Mから離間距離だけ離れた位置に対して移動目標位置を逐次更新し、その都度移動経路についても逐次更新していくことによって、当該移動物体と所定の離間距離を保ちつつ追従飛行することができる。また、移動物体Mが自律飛行ロボット1に攻撃等を行おうと接近してきた場合であっても、移動自由度のより高い位置に移動するよう回避することから、壁等に追い詰められ難くすることができる。
【0044】
ところで、本発明は、上記実施形態に限定されるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施形態で実施されてもよいものである。また、実施形態に記載した効果は、これに限定されるものではない。
【0045】
上記実施形態では、移動目標位置設定手段732にて、連続する一塊の移動候補位置Pcをクラスタリングして全てのクラスタを特定し、各クラスタについてクラスタサイズを求め、各クラスタに属する移動候補位置Pcについて評価値Vを算出している。しかし、これに限らず、クラスタサイズが予め定めた閾値以下であるクラスタ(すなわち、連続領域の大きさが所定値以下の領域)に属する移動候補位置Pcについては、評価対象から除外することにより、移動目標位置Poとして設定されないようにしてもよい。移動物体Mと自律飛行ロボット1とが
図9に表すような位置関係になった場合、自律飛行ロボット1の自己位置とクラスタCL1に属する移動候補位置Pcとの距離が小さいため、CL1に属する移動候補位置Pcの評価値Vが大きく算出され、移動目標位置Poとして設定されることがありうる。しかし、
図9に表すような、極端に移動自由度が小さい連続領域(クラスタ)に移動した場合、移動物体Mに追い詰められて攻撃される危険性が高まることは自明である。したがって、予め最小クラスタサイズを定めて記憶部8に記憶しておき、当該最小クラスタサイズよりも小さいクラスタの移動候補位置Pcについては評価対象から除外することにより、極端に移動自由度が小さい連続領域(クラスタ)に移動しないようにすることができる。
【0046】
上記実施形態では、各クラスタのクラスタサイズに基づいて各移動候補位置Pcの評価値Vを算出している。しかし、これに限らず、さらにクラスタ間の距離(連続領域間の距離)に応じて各移動候補位置Pcの評価値Vを算出してもよい。すなわち、ある連続領域内に移動目標位置を設定するか否かを評価するにあたり、当該連続領域と他の連続領域との間の距離を考慮し、当該距離が小さいほど当該連続領域内に移動候補位置を設定し易いように評価する。具体的には、あるクラスタに属する移動候補位置Pcの評価値Vは、当該移動候補位置Pcの属するクラスタが他のクラスタと近いほど、高い評価値Vとなるように評価する。移動物体Mと自律飛行ロボット1とが
図10に表すような位置関係になった場合、クラスタCL1とCL2とのクラスタサイズが同じであって、自己位置から移動候補位置Pcに至る距離も略等しいため、上記実施形態における評価では、CL1に属する移動候補位置PcとCL2に属する移動候補位置Pcの評価値Vは略等しいことになる。しかし、CL1の領域からCL3の領域に移動する際の移動量と、CL2の領域からCL3の領域に移動する際の移動量とを比較した場合、CL1〜CL3の間の距離R31とCL2〜CL3の間の距離R23との比較により、前者の方が相対的に移動量が少ないことがわかる。したがって、自律飛行ロボット1は、CL2の領域よりもCL1の領域に移動した方が、CL3へ移動し易いため移動自由度が比較的高いといえる。処理を具体的に説明すると、まず、ある移動候補位置Pcの属するクラスタと他のクラスタとの間の距離を算出する。例えば、
図10の例では、評価値の算出対象の移動候補位置PcがCL1に属するものであるとき、他のクラスタとの距離をR31+R12によって算出する。同じように、評価対象の移動候補位置PcがCL2に属するものであるとき、他のクラスタとの距離をR12+R23によって算出する。そして、算出した他のクラスタとの距離に応じて評価値Vが大きくなるように算出する。これにより、自律飛行ロボット1は、CL2の移動候補位置Pcではなく、CL1の移動候補位置Pcを移動目標位置Poと設定し易くなり、
図10の矢印に示すようにCL1の領域に向かって移動し易くなる。このように、ある移動候補位置Pcの属するクラスタと他のクラスタとの距離が近いほど高い評価値Vとなるように評価することによって、より移動自由度の高い領域に移動することができ、移動物体からの攻撃等から更に好適に回避することができる。なお、クラスタ間の距離は、
図10(a)に表すように各クラスタの端部からの円周距離を用いてもよいし、同図(b)に表すように各クラスタの中心位置P1〜P3からの直線距離(R’12、R’23、R’31)を用いてもよい。
【0047】
上記実施形態では、移動候補位置設定手段731にて移動物体位置から離間距離83だけ離れた領域(周辺領域)に複数の移動候補位置Pcを設定し、移動目標位置設定手段732にて障害物の近傍(占有ボクセルBo及び近接ボクセルBn)に位置するものを除いた一塊の移動候補位置Pcをクラスタリングし、そのクラスタサイズから「連続領域の大きさ」を求めている。しかし、これに限らず、移動候補位置Pcを設定せずに連続領域の大きさを求めてもよい。
図11(a)に表すように移動目標位置設定手段732は、移動物体位置から離間距離83(=L)だけ離れた円周上の領域(周辺領域BA)から、同図(b)に表すように障害物の近傍(占有ボクセルBo及び近接ボクセルBn)に位置する領域を除いた領域を連続領域A1〜A3として特定する。そして、特定した連続領域A1〜A3の大きさ(例えば、連続領域の長さr1〜r3)を連続領域の大きさとして求める。そして、各連続領域毎に評価値を算出する。この際、自己位置から近い連続領域であるほど高い評価値が算出され、更に連続領域の大きさ(r1〜r3)が大きいほど高い評価値が算出されるように評価値を算出する。そして、評価値が最も大きい連続領域であって、自己位置から最も近い位置に移動目標位置Poを設定する。なお、
図11の例では、評価値が最も大きい連続領域がA2として算出され、A2において自己位置に最も近い位置であるPoに移動目標位置を設定している。しかし、評価値が最も大きい連続領域の中央の位置に移動目標位置Poを設定してもよい。
【0048】
上記実施形態では、飛行制御手段74にて速度指令値を算出するために、速度推定手段72にて自己速度を算出している。しかし、これに限らず、速度推定手段72を省略して自己速度を算出せずに速度指令値を算出してもよい。この場合、移動物体Mへの追従性能が劣るもの
の簡易的な処理で追従飛行することが可能となる。また、上記実施形態では、速度推定手段72にて自己位置に基づいて自己速度を算出している。しかし、これに限らず、IMU(Inertial Measurement Unit:慣性計測ユニット)などのセンサを利用したり、自律飛行ロボット1の真下方向を撮像するカメラを設置し、カメラからの撮像画像に基づいて既知のオプティカルフロー法を用いて自己速度を算出してもよい。
【0049】
上記実施形態では、距離検出センサ4としてレーザスキャナを用いて当該レーザセンサの出力から位置推定手段71にて自己位置を推定している。しかし、これに限らず、レーザスキャナの代わりとしてGPS、ジャイロセンサ、電子コンパス、気圧センサ等の他のセンサを用いて既知の従来技術により自己位置を推定してもよい。
【0050】
上記実施形態では、撮像部3で取得した撮像画像を画像解析することにより、移動物体位置を推定している。しかし、これに限らず、撮像部3に別途距離画像センサを搭載して、当該距離画像センサから取得した距離画像を用いて、既知の移動物体抽出技術により移動物体を抽出して、抽出した移動物体と自律飛行ロボット1との距離値から移動物体位置を推定してもよい。また、距離検出センサ4として搭載したレーザスキャナを用いて移動物体位置を推定してもよい。また、別途地面や壁面等に設置した固定型のレーザスキャナを用いて移動物体位置を検知し、通信部9を介して自律飛行ロボット1に対して移動物体位置を通知してもよい。
【0051】
上記実施形態では、制御部7において位置推定処理(自己位置推定処理、移動物体位置推定処理)、速度推定処理、経路探索処理、経路追従制御処理の一連の処理を行っている。しかし、これに限らず、図示しない制御用のPCを用意し、当該PCにこれらの一連の処理を実施させてもよい。すなわち、自律飛行ロボット1は、距離検出センサ4のレーザスキャナの出力及び撮像部3で取得した撮像画像を通信部9を介して無線通信により当該PCに送信する。そして、PCは、位置推定処理、速度推定処理、経路探索処理、経路追従制御処理を実施し、経路追従制御処理にて求めた速度指令値を無線通信により自律飛行ロボット1に送信する。そして、自律飛行ロボット1は、通信部9を介して受信した速度指令値に基づいてモータ6の回転数を制御することにより、目的の位置に飛行する。このように、上記の一連の処理を外部PCを用いて分担することにより、自律飛行ロボット1のCPU処理負荷を低減することができ、ひいてはバッテリの消耗も抑えることができる。