(58)【調査した分野】(Int.Cl.,DB名)
前記位置推定手段は、更に、前記飛行制御手段にて前記自己位置探索制御処理が行われた後に前記水平自己位置を推定できたとき、水平自己位置を推定できなかった高度における前記距離検出センサの出力値を用いて前記障害物マップを更新するマップ更新処理を行う請求項2又は請求項3に記載の自律飛行ロボット
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の従来技術のように距離検出センサを用いて自己位置を推定する方法を用いた場合、例えば、トラックなどの大きめの障害物が出現することによって障害物の設置環境が大きく変化した場合、予め記憶した障害物マップと実際の障害物のレイアウトとが大きく乖離することになるため、適切に自己位置を推定できないことがある。しかしながら、上記の従来技術では、このような自己位置を推定できない場合について考慮されていないため、自己位置が推定できない場合に適切に自律移動することができない。ところで、近年、移動経路上に存在する物体や段差等の障害物に移動を制限されることなく空間内を自由に移動でき、侵入者等から攻撃され難い位置に移動できるといった面から、小型の飛行ロボットを自律的に移動させて侵入者を監視するといった自律飛行ロボットの利用が検討されている。このような自律飛行ロボットにおいては自律飛行が困難となった場合、侵入者に攻撃され易くなるだけでなく、建物や人物への衝突や墜落等による事故を発生させる恐れがあった。そこで、本発明は、自己位置を推定できなかった場合であっても、自己位置を推定できるよう自律飛行することにより、自律飛行ロボットが安定的に自律飛行できるようにすることを目的とする。
【課題を解決するための手段】
【0005】
かかる課題を解決するために、飛行空間の障害物マップを記憶した記憶部と、自律飛行ロボットの周囲に存在する障害物までの距離を測定する距離検出センサと、前記距離検出センサの出力及び前記障害物マップを用いて自律飛行ロボットの前記飛行空間における水平方向の自己位置である水平自己位置と高さ方向の自己位置である飛行高度とを推定する処理を行う位置推定手段と、前記位置推定手段にて前記水平自己位置を推定できるとき、前記自己位置から所定の移動目標位置に向かうよう移動制御する通常飛行制御処理と、前記位置推定手段にて前記水平自己位置を推定できないとき、前記飛行高度が高くなるよう移動制御する自己位置探索制御処理とを行う飛行制御手段と
、を有し、前記各処理を逐次繰り返すことによって自律的に飛行することを特徴とする自律飛行ロボットを提供する。
【0006】
かかる構成により、本発明の自律飛行ロボットは、位置推定手段にて水平自己位置を推定できなくなったとき、障害物の存在し易い低高度の位置から、比較的障害物の存在しない高高度の位置へと上昇することにより、水平自己位置を推定し易い位置へと自律飛行することができる。
【0007】
また、本発明の好ましい態様として、前記自己位置探索制御処理は、更に、水平方向へ移動しないよう移動制御するものとする。
【0008】
かかる構成により、水平自己位置が推定できなくなったとき、その位置から真上に向かって上昇することにより、周囲に存在する障害物や人物等への衝突の危険性を回避しつつ、水平自己位置を推定し易い位置へと自律飛行することができる。
【0009】
また、本発明の好ましい態様として、前記
飛行制御手段は、更に、前記位置推定手段にて前記水平自己位置を推定できないときであって、かつ、前記飛行高度が所定の閾値以上であれば、前記自己位置探索制御処理を行わずに前記飛行高度を徐々に下げるよう移動制御する着陸制御処理を行うものとする。
【0010】
かかる構成により、自己位置探索制御処理によって所定の閾値以上の位置に上昇しても、まだ水平自己位置を推定できない場合については、着陸制御処理によってその水平方向における位置で着陸するように移動制御することにより、水平自己位置が推定できないままの状態を不必要に継続しないようにして、より安全性を高めることが可能となる。
【0011】
また、本発明の好ましい態様として、前記位置推定手段は、更に、前記飛行制御手段にて前記自己位置探索制御処理が行われた後に前記水平自己位置を推定できたとき、水平自己位置を推定できなかった高度における前記距離検出センサの出力値を用いて前記障害物マップを更新するマップ更新処理を行うものとする。
【0012】
かかる構成により、水平自己位置を推定できなかった飛行空間における位置の周辺に、再び自律飛行した場合であっても、更新された障害物マップを用いて水平自己位置を推定することができると共に、更新された障害物マップにより新たな障害物の存在を認識することができるため当該障害物への衝突の危険性を低減することができる。
【発明の効果】
【0013】
上記のように、本発明の自律飛行ロボットは、自己位置(水平自己位置)を推定できなかった場合であっても、自己位置(水平自己位置)を推定できるよう飛行することにより、安定的に移動目標位置へ自律飛行できる。
【発明を実施するための形態】
【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として自律飛行ロボットの周囲の障害物との距離を測定可能なレーザセンサを用いている。なお、距離検出センサ4は、レーザスキャナから照射されるレーザの一部をミラー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が移動する目標となる飛行空間における位置情報であり、所定の位置(点)を示す座標情報として、予め管理者等によって設定され記憶部8に記憶される情報である。なお、本実施形態では、移動目標位置83として一つの座標情報を記憶していることを想定しているが、これに限らず、複数の座標情報を記憶して時刻や所定条件(例えば、図示しないセンサの感知状況)に応じて制御部7にて利用する移動目標位置83を切り替えるように利用してもよい。
【0023】
制御部7は、CPU等を備えたコンピュータで構成され、自己位置推定処理、速度推定処理、飛行制御処理を行う一連の処理として、位置推定手段71、速度推定手段72、飛行制御手段73を含んでいる。
【0024】
位置推定手段71は、距離検出センサ4及び撮像部3の出力に基づいて、飛行空間における自律飛行ロボット1の現在の飛行位置(自己位置)を推定する自己位置推定処理を行う。自己位置推定処理では、距離検出センサ4の出力と記憶部8に記憶された2Dポイント情報81とを用いて、自己位置として、飛行空間における水平方向(XY平面方向)の自己位置x,y(以下、「水平自己位置」という)と、高さ方向(Z軸方向)の自己位置である飛行高度zと、Z軸に対する回転角であるヨー角ψとを推定する処理を行う。
【0025】
自己位置推定処理では、まず、レーザスキャナから照射されるレーザ光の一部をミラー5で地面方向に反射させて計測された距離情報を利用して、自己位置の飛行高度zを算出する。レーザスキャナによって計測された距離情報は、地面には建造物以外の物体(例えば荷物や乗り物など)が存在するため、必ずしも地面までの距離として正確に計測されるとは限らない。したがって、本実施形態では、これらの建造物以外の障害物の影響を受け難いようレーザスキャナによって計測された距離情報に対して拡張カルマンフィルタを適用することにより飛行高度を推定する。
【0026】
次に、自己位置推定処理では、自己位置のx,y,ヨー角ψを推定する。自己位置のx,y,ヨー角ψを推定
するにあたり、まず、記憶部に記憶された2Dポイント情報81から飛行高度zに対応した飛行空間の二次元地図としての点集合を読み出す。そして、求めた点集合とレーザスキャナの出力とを用いて、ICP(Iterative Closest Point)アルゴリズムを利用した既知のスキャンマッチングにより自己位置のx,y,ヨー角ψを推定する。ICPアルゴリズムは、2つの点集合A,Bにおいてユークリッド距離が最小となる組合せを求めることによりマッチング処理するものである。すなわち、2Dポイント情報81の点集合と、自律飛行ロボット1に搭載されているレーザスキャナから取得した出力値(スキャンデータ)である入力点集合とをマッチングさせ位置誤差を修正することによって、グローバル座標における自己位置のx,y,ヨー角ψを推定することができる。
【0027】
速度推定手段72は、後述する飛行制御手段7
3における経路追従制御で利用するため、自律飛行ロボット1の現在の飛行速度(v
x,v
y,v
z,v
yaw)を推定する処理を行う。本実施形態では、位置推定手段71にて推定した自己位置(x,y,z,yaw)の時間変化から飛行速度を求めた。この際、測定誤差等の影響を考慮して拡張カルマンフィルタを利用して飛行速度を推定した。
【0028】
飛行制御手段73は、位置推定手段71にて推定した自己位置(水平自己位置、飛行高度)と速度推定手段72で推定した飛行速度とを用いて、各時刻での飛行制御値である速度指令値を求め、当該速度指令値に基づいてモータ6を制御し、ロータ2の回転数を制御することにより、自律飛行ロボット1が記憶部8に記憶した移動目標位置83へ向かって飛行させる飛行制御処理を行う。
図3は、本発明の要点を示した概略図であり、同図を用いて飛行制御処理の概要について概略説明する。
図3において、符号1a、1b、1cはそれぞれ時刻t、t+1、t+2における自律飛行ロボット1の位置に対応しており、符号A1、A2は飛行空間に存在する障害物である建造物に対応している。同図では、時刻t及び時刻t+2においては自律飛行ロボット1が水平自己位置を推定できており、この場合、飛行制御処理によって、建造物A1、A2に衝突しないよう符号Gで表す移動目標位置83に向かって移動制御されることを表している。その一方で、時刻t+1においては、本来、飛行空間内に存在しなかったはずのバスC
が存在していることに起因して、自律飛行ロボット1bが水平自己位置を推定できず、この場合、飛行制御処理によって飛行高度を上昇するよう移動制御されることを表している。
【0029】
図4(a)(b)は、それぞれ時刻t+1、t+2の位置における2Dポイント情報81と距離検出センサ4の出力値によって算出された障害物までの距離情報とを重畳表示した図である。
図4において、2Dポイント情報81の点集合の座標値を符号Pで示す“○印”で表し、距離検出センサ4のレーザ光を符号Rで示す点線で表し、距離検出センサ4の出力値によって算出された障害物までの距離情報(座標値)を符号P’で示す“×印”で表している。
図4(a)に表すように、時刻t+1では、レーザ光Rが一点鎖線で示す障害物のバスCによって遮られることから、自律飛行ロボット1bの飛行高度における2Dポイント情報Pと距離検出センサ4の出力値から算出された障害物までの距離情報P’とが適切にマッチングできないことから水平自己位置を推定することができない。しかし、飛行制御処理により、自律飛行ロボット1が、
図3の符号1bの位置から符号1cの位置へと飛行高度を上昇するよう移動制御されることによって、バスCの高さよりも高い位置に移動することができ、当該バスCによってレーザ光Rが遮られることがなくなる。したがって、
図4(b)に表すように、時刻t+2では、自律飛行ロボット1cの飛行高度における2Dポイント情報Pと距離検出センサ4の出力値から算出された障害物までの距離情報P’とが適切にマッチングでき、水平自己位置を推
定することができるようになる。
図5は、飛行制御処理を示すフローチャートであり、以下、同図を用いて飛行制御処理の詳細について説明する。
【0030】
飛行制御処理では、まず、記憶部8に各種パラメータ84として記憶された着陸フラグがONとなっているか否かを判定する(ST10)。着陸フラグは、後述する着陸制御処理が実施されたときにST18にてONとされるパラメータであり、デフォルト値はOFFとなっている。ST10にて着陸フラグがONとなっていない(OFF)と判定されたとき(ST10−No)、位置推定手段71における自己位置推定処理にて水平自己位置が推定できているか否かを判定する(ST11)。前述したように本実施形態における自己位置推定処理では、距離検出センサ4(レーザスキャナ)の出力である入力点集合と2Dポイント情報81の点集合とのマッチングによって水平自己位置を推定しているが、このマッチングの際に、2つの点集合間のユークリッド距離に応じたスコアを求め(点集合間の距離が大きくなるほど低スコアとなるように求める)、当該スコアが予め定めた閾値よりも小さいとき水平自己位置が推定できないとみなす。例えば、
図4(a)に表すように、自律飛行ロボット1bの飛行高度における2Dポイント情報Pの点集合と、距離検出センサ4の出力値から算出された障害物までの距離情報P’の入力点集合の間でユークリッド距離が大きい場合、低スコアとなって水平自己位置が推定できないとみなされる。なお、本実施形態では、スコアによって水平自己位置が推定できているか否かを判定しているが、これに限らない。例えば、2Dポイント情報81の点集合と大きく位置が異なる入力点集合の点を「外れ値」としてマッチング処理から除外しているが、この外れ値の数が予め定めた閾値以上であるとき水平自己位置が推定できないとみなす方法を用いてもよい。
【0031】
ST11にて水平自己位置が推定で
きていると判定されたとき(ST11−Yes)、飛行制御手段73は通常時(水平自己位置が推定できている時)における飛行制御処理として、通常飛行制御処理を行う(ST12〜ST14)。通常飛行制御処理では、まず、記憶部8に記憶されたボクセル情報82及び移動目標位置83と、位置推定手段71にて算出した自己位置とを用いて自律飛行ロボットの移動経路を算出する移動経路生成処理を行う(ST12)。具体的には、移動経路生成処理では、まず、記憶部からボクセル情報82を読出し、分割した移動可能な空間である自由ボクセル及び近接ボクセルの各ボクセルの中心をノードとし、当該ノードに隣接するノード間を連結した線分をエッジとしてグラフ構造を生成する。
図6はグラフ構造を説明する図であり、飛行空間における移動可能なボクセル(自由ボクセル又は近接ボクセル)の一部(27個)を切り欠いたものである。
図6において符号Bで表す個々の立方体は自由ボクセル又は近接ボクセルを表すものである。また、これらのボクセルBの中心にある黒又はハッチングにて塗りつぶした球はノードであり、ノード間を連結する点線で表示する線分はエッジである。このようにボクセル情報82に基づいて全ての移動可能なボクセルについてグラフ構造を生成した後、自律飛行ロボット1が存在しているボクセルのノードから移動目標位置
83が存在しているボクセルのノードまでの移動経路を生成する。移動経路の生成方法については、さまざまな経路生成方法が適用可能であるが、本実施形態ではA*(エースター)経路探索法を用いて移動経路を探索する。この際、ボクセル情報82として記憶されたボクセルコストをA*経路探索法における移動コストとして利用する。
飛行制御手段7
3で生成された生成された移動経路のデータは、経由点(x,y,z)の集合データであり、この情報は記憶部8に一時的に記憶される。
【0032】
次に、通常飛行制御処理として、現在時刻での自律飛行ロボットが目標とすべき直近の位置(以下、「ローカル目標」と呼ぶ)を算出する処理を行う(ST13)。
図7はローカル目標の算出を説明する図である。ローカル目標の算出にあたり、飛行制御手段73は、ST13にて生成された移動経路を記憶部8から読出し、自律飛行ロボット1が現在時刻で目指している経由点Wp1と前回通過済みである経由点Wp0との2点間を繋げた直線Wを求める。そして、飛行制御手段73は、求めた直線Wと自律飛行ロボット1の自己位置を中心とした球Sとの交点Lp’、Lpを算出し、目指している経由点Wp1に近い交点Lpをローカル目標として求める。このように、各時刻においてローカル目標を目指して自律飛行ロボット1が移動するよう飛行制御することで、常にローカル目標も移動経路上を移動目標位置83に向かって移動していき、自律飛行ロボット1は移動経路に沿って飛行していくことになる。
【0033】
次に、通常飛行制御処理として、算出したローカル目標に向かって飛行するようX、Y、Z、ヨー角ψの各方向毎に速度指令値u
x,u
y,u
z,u
ψを算出する処理を行う(ST14)。この際、現在の自己位置とローカル目標の位置との差異が小さくなるような速度指令値を求める。具体的には、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制御により求める。なお、本実施形態では、目標角度ψ'を移動目標位置83(G)の方向を向く角度とした。
【0034】
続いて、ST11にて水平自己位置が推定で
きていないと判定されたとき(ST11−No)、現在の飛行高度が予め記憶部8に記憶された閾値(本実施形態では8mとする)以下であるか否かを判定する(ST15)。ST15にて現在の飛行高度が8m以下であると判定されたとき(ST15−Yes)、飛行制御手段73は水平自己位置を推定するための飛行制御処理として、自己位置探索制御処理を行う(ST16)。自己位置探索制御処理では、飛行制御手段73は、自律飛行ロボット1の飛行高度を徐々に上げるような速度指令値u=(u
x,u
y,u
z)を求め、当該速度指令値uによりロータ2の回転数が制御される。本実施形態では、自律飛行ロボット1が水平方向へ移動しないように、X、Y軸方向の速度指令値u
x、u
yはそれぞれ0とし、Z軸方向の速度指令値uzを実験によって求めた所定値としている。
【0035】
続いて、ST15にて現在の飛行高度が8m以下ではない判定されたとき(ST15−No)、飛行制御手段73は着陸制御処理を行う(ST17)。着陸制御処理では、飛行制御手段73は、自律飛行ロボット1の飛行高度を徐々に下げるような速度指令値u=(u
x,u
y,u
z)を求め、当該速度指令値uによりロータ2の回転数が制御される。なお、本実施形態では、自律飛行ロボット1が水平方向へ移動しないように、X、Y軸方向の速度指令値u
x、u
yはそれぞれ0とし、Z軸方向の速度指令値u
zを実験によって求めた所定値としている。ST17の着陸制御処理が行われると、飛行制御手段73は、記憶部8の着陸フラグをONに変更する処理を行う(ST18)。このように、着陸フラグをONに変更することにより、ST10の判定にて、次回からの飛行制御処理において速度指令値が変更されること無く、飛行高度を下げ続けることができる。なお、本実施形態では、飛行制御処理は自律飛行ロボット1が地上に着陸するまで処理されることとし、また、自律飛行ロボット1が着陸した場合(飛行高度が0と推定された場合)、ロータ2の回転を停止するよう制御されることとする。
【0036】
このように、制御部7は、上述した位置推定手段71、速度推定手段72、飛行制御手段73における各処理を所定時間おきに逐次繰り返す。これにより、本実施形態の自律飛行ロボット1は、水平自己位置が推定できるときは、通常飛行制御によって移動制御することにより、移動目標位置83に向かって自律的に移動することができる。また、水平自己位置が推定できないときは、自己位置探索制御によって飛行高度を上げるよう移動制御することにより、障害物が存在し易い低高度の位置から、比較的障害物が存在し難い高高度の位置へと移動することができる。この際、水平方向へは移動せずに、水平自己位置から真上に上昇することにより、周囲に存在する障害物や人物等への衝突の危険性を回避することができる。このように、自律飛行ロボット1は、水平自己位置を推定できなくなった場合であっても、安全性を保ちつつ水平自己位置を推定し易い位置へと移動することが可能となる。
【0037】
また、自己位置探索制御処理によって、所定の閾値(例えば8m)以上の位置に上昇しても、まだ水平自己位置を推定できない場合については、着陸制御処理によってその水平方向における位置で着陸するように移動制御することにより、水平自己位置が推定できないままの状態を不必要に継続しないようにして、より安全性を高めることが可能となる。
【0038】
ところで、本発明は、上記実施形態に限定されるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施形態で実施されてもよいものである。また、実施形態に記載した効果は、これに限定されるものではない。
【0039】
上記実施形態では、自己位置探索制御処理によって自己位置が推定できたとき、通常飛行制御処理に移行することによって、再び移動目標位置83に向かって自律移動している。しかし、これだけに限らず、自己位置探索制御処理によって自己位置が推定できたとき、位置推定手段71は、水平自己位置を推定できなかった飛行高度における距離検出センサの出力値を用いて2Dポイント情報とボクセル情報82とを更新するマップ更新処理を行ってもよい。すなわち、水平自己位置を推定できなかったときの飛行高度と距離検出センサの出力値(入力点集合の座標値)とを対応付けて一時的に記憶部8に記憶しておき、自己位置探索制御処理によって真上に上昇して水平自己位置が推定できたとき、一時的に記憶した距離検出センサの出力値を真として、当該出力値を用いて記憶部8に記憶した2Dポイント情報81における対応する飛行高度(水平自己位置を推定できなかった飛行高度)の値を変更する。同じように、記憶部8に記憶されたボクセル情報82についても、水平自己位置を推定できなかった飛行高度のボクセルであって、占有ボクセルの位置とは水平位置が大きく異なる位置にある入力点集合を特定し、当該入力点集合と干渉するボクセルを占有ボクセルとして更新する。そして、当該占有ボクセルの近くに存在するボクセルを近接ボクセルとして更新する。これにより、再びこの周辺の位置に自律飛行した場合であっても、水平自己位置を推定することができると共に、更新した位置に存在する障害物への衝突の危険性を低減することができる。
【0040】
上記実施形態では、距離検出センサ4としてレーザスキャナを用いているが、これに限らず、例えば、赤外線距離センサ、ミリ波レーダ(マイクロ波レーダ)、超音波距離センサなどを用いてもよい。
【0041】
上記実施形態では、飛行制御手段7
3にて速度指令値を算出するために、速度推定手段72にて自己速度を算出している。しかし、これに限らず、速度推定手段72を省略して自己速度を算出せずに速度指令値を算出してもよい
。また、上記実施形態では、速度推定手段72にて自己位置に基づいて自己速度を算出している。しかし、これに限らず、IMU(Inertial Measurement Unit:慣性計測ユニット)などのセンサを利用したり、自律飛行ロボット1の真下方向を撮像するカメラを設置し、カメラからの撮像画像に基づいて既知のオプティカルフロー法を用いて自己速度を算出してもよい。
【0042】
上記実施形態では、制御部7において位置推定処理(自己位置推定処理、移動物体位置推定処理)、速度推定処理、経路探索処理、経路追従制御処理の一連の処理を行っている。しかし、これに限らず、図示しない制御用のPCを用意し、当該PCにこれらの一連の処理を実施させてもよい。すなわち、自律飛行ロボット1は、距離検出センサ4のレーザスキャナの出力及び撮像部3で取得した撮像画像を通信部9を介して無線通信により当該PCに送信する。そして、PCは、位置推定処理、速度推定処理、飛行制御処理を実施し、飛行制御処理にて求めた速度指令値を無線通信により自律飛行ロボット1に送信する。そして、自律飛行ロボット1は、通信部9を介して受信した速度指令値に基づいてモータ6の回転数を制御することにより、目的の位置に飛行する。このように、上記の一連の処理を外部PCを用いて分担することにより、自律飛行ロボット1のCPU処理負荷を低減することができ、ひいてはバッテリの消耗も抑えることができる。