(58)【調査した分野】(Int.Cl.,DB名)
前記自己位置推定部は、レーザを用いて取得された点群データに基づいて前記無人航空機の相対位置を推定し、該推定の尤度に基づいて該推定された相対位置が有効であると判定された場合に前記無人航空機の相対位置を出力する、請求項1又は2に記載の位置推定装置。
前記自己位置推定部は、SLAM技術を利用してマップを作成し、作成されたマップと取得された点群データとの一致度に基づいて前記推定された相対位置が有効であるか否かを判定する、請求項4に記載の位置推定装置。
第1の推定器は、前記自己位置推定部により前記無人航空機の相対位置が出力された場合に、該相対位置を観測値として用いて、前記無人航空機の速度及び加速度バイアス値を推定して出力するカルマンフィルタである、請求項1から7のいずれか1項に記載の位置推定装置。
前記第1の推定器は、前記速度、前記位置、及び前記加速度バイアス値を成分として含む現在の状態ベクトル及び過去の状態ベクトルの関係を表す状態方程式と、前記観測値及び該状態ベクトルの関係を表す観測方程式とに基づいて、前記無人航空機の速度及び加速度バイアス値を推定する、請求項8に記載の位置推定装置。
前記第2の推定器は、前記速度及び前記加速度バイアス値が出力された場合は該出力された速度及び加速度バイアス値を観測値として用い、かつ前記環境取得部により前記位置が取得された場合は該位置を観測値として用いて、前記無人航空機の位置及び速度を推定して出力するカルマンフィルタである、請求項1から9のいずれか1項に記載の位置推定装置。
前記第2の推定器は、前記速度、前記位置、及び前記加速度バイアス値を成分として含む現在の状態ベクトル及び過去の状態ベクトルの関係を表す状態方程式と、前記観測値及び該状態ベクトルの関係を表す観測方程式とに基づいて、前記無人航空機の位置及び速度を推定する、請求項10に記載の位置推定装置。
前記第2の推定器は、前記第1の推定器から出力される前記速度及び前記加速度バイアス値の尤度を、前記環境取得部により取得された前記位置の尤度よりも大きく設定して、前記無人航空機の位置及び速度を推定して出力する、請求項1から11のいずれか1項に記載の位置推定装置。
前記無人航空機が架設部を有する構造物の該架設部下方を飛行する場合、前記推定器により推定された前記無人航空機の位置及び速度を用いて、該架設部の下面との距離を一定に保持するように前記無人航空機の飛行を制御する、請求項15に記載の飛行制御装置。
前記第1の推定ステップは、前記無人航空機の相対位置が出力された場合に、該相対位置を観測値として用いて、カルマンフィルタ処理を実行することにより、前記無人航空機の速度及び加速度バイアス値を推定して出力する、請求項18に記載の方法。
前記第2の推定ステップは、前記速度及び前記加速度バイアス値が出力された場合は該出力された速度及び加速度バイアス値を観測値として用い、かつ前記環境取得部により前記位置が取得された場合は該位置を観測値として用いて、カルマンフィルタ処理を実行することにより、前記無人航空機の位置及び速度を推定して出力する、請求項18又は19に記載の方法。
前記第2の推定ステップは、前記第1の推定ステップから出力される前記速度及び前記加速度バイアス値の尤度を、前記環境取得部により取得された前記位置の尤度よりも大きく設定して、前記無人航空機の位置及び速度を推定して出力する、請求項18から20のいずれか1項に記載の方法。
【発明の概要】
【発明が解決しようとする課題】
【0005】
無人航空機は、位置情報を取得するGPSセンサ、及び高度情報を取得する気圧センサを備える。しかし無人航空機が橋梁の下方などの架設部を有する構造物の該架設部下方を飛行する場合、GPSが取得する位置精度は十分ではなく、橋梁下部に河川がある場合などは、気圧センサが取得する高度の精度も十分ではない。特に無人航空機を用いて橋梁の下面の点検を行う場合などは、橋梁の下面と一定の距離を保持して無人航空機の飛行を制御することが難しいという問題がある。外部から制御情報を送信することにより無人航空機を制御することは可能であるが、無人航空機の飛行は最終的には自律制御されることが望ましい。また、橋梁の下方などの構造物の内側において目視で確認して操縦することは、それ自体が難しいという問題がある。
【0006】
そこで、本出願人は、橋梁の下方などでの無人航空機の飛行を制御するにあたって、レーザを用いたSLAM(Simultaneous Localization And Mapping)技術を利用して無人航空機の位置(高度)を推定する技術を考えた。しかし、地上からの反射を用いた場合、河川からの反射を用いると正しい測定が困難であり、橋梁の下面からの反射を用いた場合、橋梁の下面から逸脱したときに急上昇してしまったり飛行が不安定になってしまったりするという問題があった。
【0007】
本発明は、このような課題を解決するためになされたものであり、橋梁の下方などの架設部を有する構造物の該架設部下方において無人航空機の飛行を制御するために無人航空機の位置を推定することが可能な装置等を提供することを主目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するために、本発明の一態様としての位置推定装置は、無人航空機の絶対位置を計測するためのグローバルセンサを用いて上記無人航空機の位置を取得する環境取得部と、上記無人航空機の相対位置を計測するためのローカルセンサを用いて上記無人航空機の周囲にある障害物に対する上記無人航空機の相対位置を推定し、該推定の尤度に基づいて該推定された相対位置が有効であると判定された場合に上記無人航空機の相対位置を出力する、自己位置推定部と、上記自己位置推定部により上記無人航空機の相対位置が出力された場合は該相対位置に基づいて、かつ上記環境取得部により上記位置が取得された場合は該位置に基づいて、上記無人航空機の位置及び速度を推定する推定器と、を備えることを特徴とする。
【0009】
また、本発明において好ましくは、上記自己位置推定部は、上記ローカルセンサによる測距距離が所定の距離内であった場合に、上記無人航空機の相対位置を出力する。
【0010】
また、本発明において好ましくは、上記自己位置推定部は、レーザを用いて取得された点群データに基づいて上記無人航空機の相対位置を推定し、該推定の尤度に基づいて該推定された相対位置が有効であると判定された場合に上記無人航空機の相対位置を出力する。
【0011】
また、本発明において好ましくは、上記自己位置推定部は、SLAM技術を利用して上記無人航空機の相対位置を推定する。
【0012】
また、本発明において好ましくは、上記自己位置推定部は、SLAM技術を利用してマップを作成し、作成されたマップと取得された点群データとの一致度に基づいて上記推定された相対位置が有効であるか否かを判定する。
【0013】
また、本発明において好ましくは、上記環境取得部は気圧センサを用いて高度を取得する。
【0014】
また、本発明において好ましくは、上記位置は高度であり、上記速度は鉛直方向速度である。
【0015】
また、本発明において好ましくは、上記推定器は、上記自己位置推定部により上記無人航空機の相対位置が出力された場合、該相対位置に基づいて、上記無人航空機の速度及び該速度を補正するための加速度バイアス値を推定して出力する第1の推定器と、上記速度及び上記加速度バイアス値が出力された場合は該出力された速度及び加速度バイアス値に基づいて、かつ上記環境取得部により上記位置が取得された場合は該位置に基づいて、上記無人航空機の位置及び速度を推定して出力する第2の推定器と、を含み、上記推定器により推定された上記無人航空機の位置及び速度は、上記第2の推定器により出力された位置及び速度である。
【0016】
また、本発明において好ましくは、第1の推定器は、上記自己位置推定部により上記無人航空機の相対位置が出力された場合に、該相対位置を観測値として用いて、上記無人航空機の速度及び加速度バイアス値を推定して出力するカルマンフィルタである。
【0017】
また、本発明において好ましくは、上記第1の推定器は、上記速度、上記位置、及び上記加速度バイアス値を成分として含む現在の状態ベクトル及び過去の状態ベクトルの関係を表す状態方程式と、上記観測値及び該状態ベクトルの関係を表す観測方程式とに基づいて、上記無人航空機の速度及び加速度バイアス値を推定する。
【0018】
また、本発明において好ましくは、上記第2の推定器は、上記速度及び上記加速度バイアス値が出力された場合は該出力された速度及び加速度バイアス値を観測値として用い、かつ上記環境取得部により上記位置が取得された場合は該位置を観測値として用いて、上記無人航空機の位置及び速度を推定して出力するカルマンフィルタである。
【0019】
また、本発明において好ましくは、上記第2の推定器は、上記速度、上記位置、及び上記加速度バイアス値を成分として含む現在の状態ベクトル及び過去の状態ベクトルの関係を表す状態方程式と、上記観測値及び該状態ベクトルの関係を表す観測方程式とに基づいて、上記無人航空機の位置及び速度を推定する。
【0020】
上記第2の推定器は、上記第1の推定器から出力される上記速度及び上記加速度バイアス値の尤度を、上記環境取得部により取得された上記位置の尤度よりも大きく設定して、上記無人航空機の位置及び速度を推定して出力する。
【0021】
また、本発明において好ましくは、上記環境取得部は加速度センサを用いて加速度を更に取得し、上記第1の推定器及び上記第2の推定器は、上記環境取得部から取得された加速度を制御入力として用いる。
【0022】
また、上記の目的を達成するために、本発明の一態様としての飛行制御装置は、上記の位置推定装置を備える、無人航空機の飛行を制御する飛行制御装置であって、上記推定器により推定された上記無人航空機の位置及び速度を用いて上記無人航空機の飛行を制御することを特徴とする。
【0023】
また、本発明において好ましくは、上記自己位置推定部により推定された相対位置を用いて上記障害物との距離を決定し、上記推定器により推定された上記無人航空機の位置及び速度を用いて、該決定された距離を一定以上に保持して衝突を回避するように上記無人航空機の飛行を制御する。
【0024】
また、本発明において好ましくは、上記無人航空機が架設部を有する構造物の該架設部下方を飛行する場合、上記推定器により推定された上記無人航空機の位置及び速度を用いて、該架設部の下面との距離を一定に保持するように上記無人航空機の飛行を制御する。
【0025】
また、上記の目的を達成するために、本発明の一態様としての無人航空機は、上記の飛行制御装置を備えることを特徴とする。
【0026】
また、上記の目的を達成するために、本発明の一態様としての位置推定方法は、無人航空機の位置を推定する方法であって、上記無人航空機の絶対位置を計測するためのセンサを用いて上記無人航空機の位置を取得するステップと、上記無人航空機の相対位置を計測するためのセンサを用いて上記無人航空機の相対位置を推定するステップであって、該推定の尤度に基づいて該推定された相対位置が有効であると判定された場合に上記無人航空機の相対位置を推定するステップと、上記無人航空機の相対位置が推定された場合は該相対位置に基づいて、かつ上記位置が取得された場合は該位置に基づいて、上記無人航空機の位置及び速度を推定するステップと、を含むことを特徴とする。
【0027】
また、本発明において好ましくは、上記無人航空機の位置及び速度を推定するステップは、上記無人航空機の相対位置が出力された場合、該相対位置に基づいて、上記無人航空機の速度及び該速度を補正するための加速度バイアス値を推定して出力する第1の推定ステップと、上記速度及び上記加速度バイアス値が出力された場合は該出力された速度及び加速度バイアス値に基づいて、かつ上記環境取得部により上記位置が取得された場合は該位置に基づいて、上記無人航空機の位置及び速度を推定して出力する第2の推定ステップと、を含み、上記推定するステップにより推定された上記無人航空機の位置及び速度は、上記第2の推定ステップにより出力された位置及び速度である。
【0028】
また、本発明において好ましくは、上記第1の推定ステップは、上記無人航空機の相対位置が出力された場合に、該相対位置を観測値として用いて、カルマンフィルタ処理を実行することにより、上記無人航空機の速度及び加速度バイアス値を推定して出力する。
【0029】
また、本発明において好ましくは、上記第2の推定ステップは、上記速度及び上記加速度バイアス値が出力された場合は該出力された速度及び加速度バイアス値を観測値として用い、かつ上記環境取得部により上記位置が取得された場合は該位置を観測値として用いて、カルマンフィルタ処理を実行することにより、上記無人航空機の位置及び速度を推定して出力する。
【0030】
上記第2の推定ステップは、上記第1の推定ステップから出力される上記速度及び上記加速度バイアス値の尤度を、上記環境取得部により取得された上記位置の尤度よりも大きく設定して、上記無人航空機の位置及び速度を推定して出力する。
【0031】
また、上記の目的を達成するために、本発明の一態様としての位置推定プログラムは、無人航空機の位置を推定するプログラムであって、上記の位置推定方法の各ステップをコンピュータに実行させることを特徴とする。
【0032】
また、上記の目的を達成するために、本発明の一態様としての制御方法は、無人航空機の位置を推定する方法を有する、無人航空機の飛行を制御する方法であって、上記推定するステップにより推定された上記無人航空機の位置及び速度を用いて上記無人航空機の飛行を制御するステップを含むことを特徴とする。
【0033】
また、上記の目的を達成するために、本発明の一態様としての制御プログラムは、無人航空機の飛行を制御するプログラムであって、上記の制御方法の各ステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【0034】
本発明によれば、橋梁の下方などの架設部を有する構造物の該架設部下方において無人航空機の飛行を制御するために無人航空機の位置を推定することができる。
【発明を実施するための形態】
【0036】
図1は、本発明の一実施形態による無人航空機(マルチコプタ)1の外観図である。無人航空機1は、本体部2と、6つのモータ3と、6つのロータ(回転翼)4と、本体部2及び各々のモータ3を接続する6つのアーム5と、着陸脚6と、ローカルセンサ7と、を備える。
【0037】
6つのロータ4は、各々のモータ3の駆動により回転して揚力を発生させる。本体部2が6つのモータ3の駆動を制御して6つのロータ4各々の回転数、回転方向を制御することにより、上昇、下降、前後左右への飛行、旋回等、無人航空機1の飛行が制御される。着陸脚6は、離着陸時の無人航空機1の転倒防止などに寄与し、無人航空機1の本体部2モータ3、及びロータ4などを保護する。
【0038】
ローカルセンサ7は、レーザを用いて無人航空機1の周囲の状況を計測するレーザスキャナ(レーザレンジファインダ)である。レーザスキャナは、前方及び上方に扇状にレーザを照射し、反射して得られた情報を用いて、無人航空機1の周囲にある物体(例えば構造物などの障害物)との距離を測定するとともに、周囲にある物体の形状を作成することを可能とする。レーザを照射する方向は一例であるが、少なくとも上方を含むことが好ましい。このように本実施形態では、ローカルセンサ7としてレーザスキャナを用いるが、ローカルセンサ7は、無人航空機1の周囲にある物体に対する無人航空機1の相対位置を計測するために用いられるセンサであり、無人航空機1と周囲にある物体との位置関係を計測できるものであればよい。したがって、例えばレーザスキャナに用いるレーザは1つであってもよいし、複数であってもよい。また例えばローカルセンサ7は、超音波センサとすることもできるし、画像センサとすることもできる。上記ローカルセンサ7は、好ましくは、SLAM技術を利用する際に用いられる。
【0039】
例えばローカルセンサ7が画像センサである場合、無人航空機1は撮像装置を含む。撮像装置は、イメージセンサなどから構成される単眼カメラ又はステレオカメラを含み、無人航空機1の周囲を撮像することにより、無人航空機1周囲の映像や画像を取得する。この場合、好ましくは、無人航空機1は、カメラの向きを変更可能なモータを備え、飛行制御装置11は、カメラ及び該モータの動作を制御する。例えば無人航空機1は単眼カメラを用いて連続して画像を取得し、又はステレオカメラを用いて画像を取得するなどし、取得された画像を解析することにより、周囲にある物体との距離や該物体の形状の情報を取得する。撮像装置は、赤外線投影により形状データを取得可能な赤外線デプスセンサであってもよい。
【0040】
ローカルセンサ7は、本体部2の外部に取り付けられたものとして説明するが、無人航空機1と周囲環境との位置関係を計測できるものであれば本体部2の内部に取り付けられてもよい。
【0041】
図2は、
図1の無人航空機1のハードウェア構成図である。無人航空機1の本体部2は、飛行制御装置(フライトコントローラ)11と、送受信機12と、センサ13と、スピードコントローラ(ESC:Electric Speed Controller)14と、バッテリ電源(図示せず)と、を備える。
【0042】
送受信機12は、外部との各種データ信号の送受信を行うものであり、アンテナを含む。説明の便宜上、送受信機12は1つの装置として説明するが、送信機と受信機が別々に設置されていても構わない。
【0043】
センサ13は、無人航空機1の絶対位置を計測するために用いられるグローバルセンサを含む。グローバルセンサは、位置情報を取得するGPSセンサ、加速度を取得する加速度センサ、姿勢を検出するジャイロセンサ、高度を取得する気圧センサ、及び方位を取得する地磁気センサなどの各種センサを含む。このように、グローバルセンサは、周囲にある物体との位置関係により無人航空機1の相対位置を計測するために用いられるセンサではない。無人航空機1は、これらのセンサ13やローカルセンサ7から取得される情報により、機体の傾きや回転、飛行中の緯度経度、高度、及び機体の方向を含む無人航空機の位置情報を取得可能に構成される。ただし、説明の便宜上、センサ13は本体部2の内部にあるものとして説明したが、センサ13が含む一部又は全部のセンサは、本体部2の外に取り付けられてもよい。
【0044】
飛行制御装置11は、各種情報に基づいて演算処理を行い、無人航空機1を制御する。飛行制御装置11は、プロセッサ21と、記憶装置22と、通信用IF23と、センサ用IF24と、信号変換回路25と、を備える。これらはバス26を介して接続される。
【0045】
プロセッサ21は、飛行制御装置11全体の動作を制御するものであり、例えばCPUである。なお、プロセッサとしては、MPU等の電子回路が用いられてもよい。プロセッサ21は、記憶装置22に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。
【0046】
記憶装置22は、主記憶装置22a及び補助記憶装置22bを含む。主記憶装置22aは、例えばRAMのような半導体メモリである。RAMは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサが情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置22aは、読み出し専用の不揮発性記憶媒体であるROMを含んでいてもよい。この場合、ROMはファームウェア等のプログラムを格納する。補助記憶装置22bは、様々なプログラムや、各プログラムの実行に際してプロセッサ21が使用するデータを格納する。補助記憶装置22bは、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置22bは、例えば、オペレーティングシステム(OS)、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【0047】
通信用IF23は、送受信機12と接続するためのインタフェースである。センサ用IF24は、各種センサ13又はローカルセンサ7により取得されたデータを入力するためのインタフェースである。説明の便宜上、各IFは1つのものとして説明するが、各装置やセンサごとに異なるIFを備えることができることは理解される。
【0048】
信号変換回路25は、例えばPWM信号などのパルス信号を生成し、ESC14へ送る。ESC14は、信号変換回路25により生成されたパルス信号をモータ3への駆動電流へと変換し、該電流をモータ3へ供給する。
【0049】
バッテリ電源は、リチウムポリマーバッテリやリチウムイオンバッテリ等のバッテリデバイスであり、各構成要素に電力を供給する。なおモータ3を動作させるためには大きな電源が必要となるため、好ましくは、ESC14は、直接バッテリ電源と接続され、バッテリ電源の電圧や電流を調整して駆動電流をモータ3へ供給する。
【0050】
好ましくは、記憶装置22は、無人航空機1の飛行時における姿勢や基本的な飛行動作を制御する飛行制御アルゴリズムが実装された飛行制御プログラムを記憶する。プロセッサ21が飛行制御プログラムを実行することにより、飛行制御装置11は、設定された目標高度及び目標速度となるように演算処理を行い、各モータ3の回転数や回転速度を計算して制御指令値データを算出する。このとき飛行制御装置11は、飛行中の無人航空機1の姿勢などの様々な情報を各種センサ13から取得し、取得したデータと設定された目標高度及び目標速度とに基づいて演算処理を行う。
【0051】
飛行制御装置11の信号変換回路25は、上記のとおり算出された制御指令値データをPWM信号へ変換し、ESC14へ送る。ESC14は、信号変換回路25から受け付けた信号をモータ3への駆動電流へと変換してモータ3へ供給することによりモータ3を回転させる。このようにして、飛行制御装置11を含む本体部2は、ロータ4の回転速度を制御し、無人航空機1の飛行を制御する。
【0052】
このような無人航空機1の飛行を制御するにあたって、飛行制御装置11は無人航空機1の高度(又は位置)及び速度を決定する必要がある。ただし、各種センサ13等から取得した情報をそのまま用いると誤差が大きくなる恐れがある。本実施形態では、飛行制御装置11は、各種センサ13等から取得した情報に基づいて無人航空機1の高度(又は位置)及び速度を決定(推定)する。
【0053】
1つの例では、飛行制御プログラムは、緯度経度や高度を含む飛行ルートや飛行速度などのパラメータを含み、飛行制御装置11は、目標高度及び目標速度を逐次決定して上記演算処理を行うことにより、無人航空機1を自律的に飛行させる。
【0054】
1つの例では、飛行制御装置11は、送受信機12を介して外部の送信機から上昇下降・前進後退などの指示を受信することで、目標高度及び目標速度を決定して上記演算処理を行うことにより、無人航空機1の飛行を制御する。
【0055】
1つの例では、無人航空機1は、無人航空機1が実際に飛行した位置情報の時系列データや各位置において取得した画像データを補助記憶装置22bに記憶する。
【0056】
1つの例では、無人航空機1は自立飛行型無人航空機である。例えば、無人航空機1は、市販されているミニサーベイヤーMS−06LA(株式会社自律制御システム研究所)、Snap(Vantage Robotics社)、AR.Drone2.0(Parrot社)、Bebop Drone(Parrot社)とすることができる。
【0057】
以下、架設部を有する構造物の該架設部下方、例えば橋梁の下方、において無人航空機1を飛行させる場合において、飛行制御装置11が橋梁の下面と一定以上の距離を保持して無人航空機1を飛行させるための制御を行う実施形態について説明する。本実施形態では、飛行制御装置11は、高さ方向(鉛直方向)の位置及び速度を制御するものとし、当該制御にあたって飛行制御装置11は、第1の推定器と第2の推定器を用いて推定高度及び推定鉛直方向速度(以下、単に「推定速度」という)を算出する。なお本実施形態では、説明の便宜上、鉛直方向(高さ方向)について説明するが、本実施形態による飛行制御装置11の制御は水平方向にも応用することができることは理解される。また本実施形態では、第1の推定器として第1のカルマンフィルタ(第1のKF)33を用い、第2の推定器として第2のカルマンフィルタ(第2のKF)34を用いるが、推定器はこれらに限定されない。
【0058】
図3は、本発明の一実施形態による飛行制御装置11の機能ブロック図である。飛行制御装置11は、環境取得部31と、自己位置推定部32と、第1の33と、第2のKF34と、を備える。本実施形態においては、プロセッサ21によりプログラムが実行されることにより、これらの機能が実現される。このように、各種機能がプログラム読み込みにより実現されるため、1つのパート(機能)の一部を他のパートが有していてもよい。図中の矢印は、各部間の主な情報のやりとりを示すが、本発明の実施形態による動作を実現できるものであれば、これらに限定されない。好ましくは、飛行制御装置11は、例えば読み込むプログラムにより定められた周期に従って演算を行い、データのやりとりを当該周期ごとに行う。ただし、上記の各機能は、電子回路等を構成することによりハードウェアによって実現してもよい。また本実施形態において、上記の機能は飛行制御装置11の機能として説明するが、当該機能は無人航空機1の飛行を制御するために必要な無人航空機1の位置を推定する機能である。したがって、1つの例では、飛行制御装置11は位置推定装置を備え、位置推定装置が、環境取得部31と、自己位置推定部32と、第1の33と、第2のKF34と、を備える。
【0059】
環境取得部31は、グローバルセンサを用いて無人航空機1の位置を取得する。本実施形態では、グローバルセンサは気圧センサ及び加速度センサを含み、環境取得部31は気圧センサを用いて絶対高度を取得し、加速度センサを用いて加速度を取得する。環境取得部31は、第1のKF33に取得した加速度データを出力し、第2のKF34に取得した加速度データ及び絶対高度データを出力する。なお本明細書において、データの出力とは、各機能部(例えば各プログラム)間でのデータの受け渡しを意味する。例えば、環境取得部31は、気圧センサを用いて取得した絶対高度を記憶装置22の所定のメモリ領域に記憶し更新し続ける。この場合、第1のKF33は、演算を行う周期ごとに、絶対高度が更新(記憶)される当該メモリ領域を参照し、更新された場合に当該データを使用する。
【0060】
自己位置推定部32は、レーザスキャナ(ローカルセンサ7)を用いて取得された障害物などの無人航空機1の周囲にある物体の点群データに基づいて無人航空機1の自己位置を推定する。障害物は、例えば架設部を有する構造物である。自己位置推定部32が推定する自己位置は、無人航空機1周囲の物体に対する無人航空機1の相対位置である。本実施形態では、自己位置推定部32は、SLAM技術を利用して無人航空機1の自己位置を推定する。SLAM技術は、既知の技術であるため説明は省略するが、レーザスキャナなどのローカルセンサ7を用いて周囲にある物体認識を行い、該物体認識結果に基づいて自己位置推定と地図作成とを同時に行うものである。本実施形態では、飛行制御装置11は橋梁の下面と一定以上の距離を保持して無人航空機1を飛行させるための制御を行うため、前述のとおり、SLAM技術を利用する際に用いるレーザスキャナは、少なくとも上方向にレーザを照射してスキャンできるように本体部2に取り付けられる。
【0061】
自己位置推定部32は、自己位置推定の尤度に基づいて推定された位置が有効であると判定された場合に無人航空機1の位置を出力する。本実施形態では、自己位置推定部32は、SLAM技術を利用して無人航空機1の相対高度を推定して出力する。
【0062】
1つの例では、自己位置推定部32は、レーザスキャナを用いて無人航空機1の周囲の点群データを取得する。自己位置推定部32は、レーザによる測距距離が所定距離範囲(例えば0.1〜20m)内の点群データを取得できた場合に推定の演算を開始し、その点群データを取得し始めたタイミングにいた自己位置を基準座標と定める。それから自己位置推定部32は、取得した点群データを用いて、マップを作成しつつ自己位置を推定する。自己位置推定部32は、作成されたマップとレーザを用いて取得された点群データとの一致度を自己位置推定の尤度として算出する。自己位置推定部32は、算出された自己位置推定の尤度が予め設定した基準値以上であるか否かを判定し、基準値以上であれば有効、基準値未満であれば有効でないと判定する。例えば障害物が所定の距離内に存在しない場合、自己位置推定部32は自己位置推定の尤度は基準値未満となり、有効な自己位置推定を行うことができない。このようにして、自己位置推定部32は、無人航空機1が障害物に所定距離以内に近づいた場合かつ自己位置推定を行うにあたって十分な点群データが収集された場合に、無人航空機1の相対高度を推定して出力するように構成される。
【0063】
ただし、自己位置推定部32の構成は上記に限定されない。例えば、自己位置推定部32は、加速度センサやジャイロセンサを用いて取得したオドメトリ情報を自己位置推定に用いることができる。また自己位置推定部32は、撮像装置を用いて画像を取得し、取得した画像における物体の位置又は表面上の点を特徴点して抽出し、抽出したパターンと作成されたマップ(又は取得した点群)のパターンをマッチングさせることもできる。また自己位置推定の尤度についても、上記の例示に限定されない。
【0064】
第1のKF33は、自己位置推定部32により出力された無人航空機1の相対高度(相対位置)を観測値として用いて、無人航空機1の速度及び該速度を補正するための加速度バイアス値を推定する。第1のKF33は、本実施形態では無人航空機1の相対高度を観測値として用いる。第1のKF33は、推定された速度及び加速度バイアス値を、第2のKF34に出力する。好ましくは、第1のKF33は、自己位置推定部32により無人航空機1の相対高度が出力された場合に、該相対高度を観測値として用いて、無人航空機1の速度及び加速度バイアス値を推定し、第2のKF34に出力する。また第1のKF33は、環境取得部31から取得された加速度を制御入力として用いる。
【0065】
第2のKF34は、第1のKF33が速度及び加速度バイアス値を出力した場合は該出力された速度及び加速度バイアス値を観測値として用いて、環境取得部31により絶対高度(絶対位置)が取得(出力)された場合は該絶対高度を観測値として用いて、無人航空機1の絶対高度及び速度を推定する。第2のKF34は、推定された絶対高度及び速度を、例えば飛行制御プログラムが推定高度(推定位置)及び推定速度として参照するメモリ領域に記憶し更新する。また第2のKF34は、環境取得部31から取得された加速度を制御入力として用いる。
【0066】
上記のとおり、飛行制御装置11は、2段構成のカルマンフィルタを利用して、第2のKF34により推定された位置及び速度を、無人航空機1の推定位置及び推定速度として用いて無人航空機1の飛行を制御する。1つの例では、自己位置推定部32が推定する相対位置を用いて、飛行制御装置11は、無人航空機1と障害物との距離を決定する。飛行制御装置11は、無人航空機1の推定位置及び推定速度を用いて、該決定された無人航空機1と障害物との距離を一定以上に保持して衝突を回避するように無人航空機1の飛行を制御する。この場合、例えば、飛行制御装置11は、決定された無人航空機1と障害物との距離に応じて、該距離が小さくなる場合は目標速度を減衰させることにより、該距離を一定以上に保持する。また、1つの例では、飛行制御装置11は、無人航空機1の推定位置及び推定速度を用いて、橋梁の下面と一定の距離を保持するように無人航空機1の飛行を制御する。
【0067】
以下、第1のKF33及び第2のKF34の動作の詳細について、本実施形態において想定する状態空間モデルを用いて、説明する。一般的なカルマンフィルタの動作原理は公知であるため、詳細な説明は省略するが、カルマンフィルタは、時系列のモデルに基づいた状態推定である。このような状態空間モデルを構築することにより、観測された時系列データと、該時系列データの背後に含まれている状態変数を推定することが可能となる。
【0068】
本実施形態の第1のKF33の状態空間モデル(プロセスモデル)を以下に記す。式(1)は状態方程式であり、式(2)は観測方程式を示す。
図4は、第1のKF33のブロック線図である。
【0069】
ここで、kは時系列データにおける時間を表すものであり、整数で表される。x
1(k)は、時刻kにおける状態変数(状態ベクトル)、A
1はシステム行列(状態遷移行列)、B
1は駆動行列、u
1(k)は制御入力、Nv(k)はシステム雑音(プロセスノイズ)である(一般的にはv(k)で表されるが、後述の速度v(k)と識別するため本明細書ではNv(k)と表記する)。式(1)から理解されるように、状態方程式は、時刻kにおける状態ベクトルと、1ステップ前の時刻k−1における状態ベクトルとの関係を示すものである。y
1(k)は、時刻kにおいて入力される観測量、c
1は観測行列、w(k)は観測雑音を示すものである。システム雑音と観測雑音は、平均値が0、分散値が設計値のガウス分布に基づくものであり、カルマンフィルタを適用する場合の前提条件となるものである。y
1(k)は、自己位置推定部32から相対高度のデータが出力(更新)されたときの観測値である。これらの値は、具体的には以下のとおりである。
【0070】
式(3)〜式(7)から、式(1)は、以下の式(9)〜(11)を表していることが理解される。
【0071】
ここで、v(k)は無人航空機1の速度、Z
rel(k)は無人航空機1の相対高度、a
bias(k)はv(k)を補正するための加速度バイアス値であり、それぞれ時刻kにおける値を示す。aは加速度であり、制御入力u
1(k)には、加速度センサにより取得された加速度が入力される。また飛行制御装置11は、飛行制御プログラムなどのプログラムにより定められた周期に従って演算を行うものであるが、dtは、時刻kから時刻k+1までの1ステップの微小時間を示すものである。例えば、第1のKF33を50Hzループで動作させた場合、dt=0.02(s)となる。この場合好ましくは第2のKF34も50Hzループで動作させる。
【0072】
次に、第1のKF33における予測ステップ及びフィルタリングステップの処理について説明し、各値の尤度について説明する。
【0073】
予測ステップは、時刻k−1までに利用可能なデータに基づいた時刻kにおける、
【0074】
フィルタリングステップは、観測値
を用いて、事前推定値
を修正して事後推定値
を推定し、事後誤差共分散行列
を推定する処理であり、以下の式(14)〜(16)で表される。
【0075】
はカルマンゲインである。Qはシステム雑音の分散行列であり、空間状態モデルの尤度を示す。Rは観測ノイズの分散行列であり、観測値の尤度を示すものである。
は推定値の分散行列であり、推定値の尤度を示すものである。
【0076】
上記より、第1のKF33が、プログラムの演算周期に従って予測ステップのみを実行し続けると、
の値が増加し続け、推定値の尤度が低下する。第1のKF33は、観測値が得られたタイミングで、
が小さい大きさとなる
演算され、推定誤差
が減少し、推定値の尤度が増加する。
【0077】
第1のKF33は、自己位置推定部32から相対高度が出力されるとき、フィルタリングステップの処理を行い、無人航空機1の速度及び加速度バイアス値を推定してKF2に出力する。第1のKF33は、自己位置推定部32から相対高度が出力され続けるとき、プログラムの演算周期に従って、フィルタリングステップの処理を継続し、無人航空機1の速度及び加速度バイアス値を推定してKF2に出力し続ける。
【0078】
一方、第1のKF33は、自己位置推定部32から相対高度が出力されないとき、予測ステップの処理のみ行い、推定する無人航空機1の速度及び加速度バイアス値をKF2に出力しない。ただし、自己位置推定部32から相対高度が出力されなくなったとき、状態ベクトルはフィルタリングステップの処理を行ったときの速度及び加速度バイアス値を保持しているため、推定する無人航空機1の速度及び加速度バイアス値の精度劣化を防ぐことができる。
【0079】
このようにして、第1のKF33は、推定誤差
が比較的小さい推定値に限定して、第2のKF34に出力することができ、第2のKF34は、比較的信頼度が高い推定値を観測値として用いることができる。
【0080】
次に本実施形態の第2のKF34の状態空間モデルを以下に記す。式(17)は状態方程式であり、式(18)及び式(19)は観測方程式を示す。
図5は、第2のKF34のブロック線図である。
【0081】
x
2(k)は、時刻kにおける状態変数(状態ベクトル)、A
2はシステム行列(状態遷移行列)、B
2は駆動行列、u
2(k)は制御入力、Nv(k)はシステム雑音(プロセスノイズ)である。y
2a(k)及びy
2b(k)は、時刻kにおいて入力される観測量、c
2a及びc
2bは観測行列、w(k)は観測雑音を示すものである。y
2a(k)は、第1のKF33から推定速度及び推定加速度バイアス値のデータが出力(更新)されたときの観測値であり、y
2b(k)は、環境取得部31から絶対高度が出力されたときの観測値である。同様に、c
2aは、第1のKF33から推定速度及び推定加速度バイアス値のデータが出力されたときの観測行列であり、c
2bは環境取得部31から絶対高度が出力されたときの観測行列である。これらの値は、具体的には以下のとおり定義される。
【0082】
式(20)〜式(25)から、式(17)は、以下の式(28)〜(32)を表していることが理解される。
【0083】
ここで、Z
pres(k)は無人航空機1の絶対高度、v
bias(k)は速度バイアス値、Z
bias(k)は高度バイアス値であり、各々時刻kにおける値を示す。
【0084】
次に、第2のKF34における予測ステップ及びフィルタリングステップの処理について説明し、各値の尤度について説明する。
【0085】
予測ステップは、以下の式(33)、(34)で表される。
【0086】
フィルタリングステップは、(a)第1のKF33から推定速度及び推定加速度バイアス値が出力されたときと、(b)環境取得部31から絶対高度が出力されたときの2つの場合がある。
【0087】
(a)第1のKF33から推定速度及び推定加速度バイアス値が出力されたときは、以下の式(35)〜(37)で表される。
【0088】
(b)環境取得部31から絶対高度が出力されたときは、以下の式(38)〜(40)で表される。
【0089】
ここで、R
2aとR
2bは観測ノイズの分散行列であり、以下の式(41)、(42)で表される。
【0090】
r
velは、第1のKF33から得られた速度の分散値(尤度)であり、r
abiasは第1のKF33から得られた加速度バイアス値の分散値(尤度)であり、r
presは環境取得部31から得られた絶対高度の分散値(尤度)である。
【0091】
上記より、第2のKF34が、プログラムの演算周期に従って予測ステップのみを実行し続けると、
値が増加し続け、推定値の尤度が低下する。第2のKF34は、観測値が得られたタイミングで、
小さい大きさとなる
演算され、推定誤差
減少し、推定値の尤度が増加する。ただし第1のKF33からの推定値の出力及び環境取得部31からの絶対高度の出力は非同期的に発生するため、第2のKF34は、それぞれが出力されるタイミングで、それぞれのフィルタリングステップを実行する。このようにして、第2のKF34は、無人航空機1の高度及び速度を推定し続ける。また前述のとおり、第1のKF33から出力される推定値の信頼度は比較的高いため、r
velとr
abiasの大きさは、r
presと比較して小さく設定する。これにより、第1のKF33から推定値が出力される場合は、環境取得部31から得られる絶対高度より強力に更新処理を行うことが可能となる。
【0092】
第1のKF33から推定値が出力されないとき、第2のKF34は、予測ステップと(b)のフィルタリングステップの処理のみを行うが、無人航空機1の高度及び速度を推定し続ける。第2のKF34は、第1のKF33から推定値が出力されなくなったとき、その直前の比較的尤度が高い速度及び加速度バイアス値を保持しているため、算出する推定高度及び推定速度の精度劣化を防ぐことができる。例えば式(30)は、第1のKF33から推定値が出力されなくなったとき、環境取得部31から得られる絶対高度が各バイアス値にフィードバックされて生じうるドリフトを抑え、時間の経過と共にバイアス値を劣化させることを表す。
【0093】
このような構成とすることにより、自己位置推定部32から相対高度が出力されなくなったとき、例えばSLAMが無効化されたとき、第2のKF34は推定高度及び推定速度を安定化させ、無人航空機1の急な上昇や不安定化を防止することができる。
【0094】
図6は、無人航空機1が橋梁41の下方を飛行する様子を示す図である。橋梁41は、橋桁部42と、橋脚部43とを有し、橋脚部43は、梁部43aと、柱部43bとを有する。ここでは、撮像装置を備える無人航空機1が、橋梁41の下面を撮像するために該下面と一定の距離(例えば2m)を保持するように領域Aから領域Fまで飛行するときの飛行制御装置11の制御について説明する。このとき、飛行制御装置11は、上記のとおり第1のKF33と第2のKF34を用いて推定高度及び推定速度を算出し、該推定高度及び推定速度を用いて無人航空機1の飛行を制御する。
【0095】
無人航空機1が領域Aを飛行する場合について説明する。領域Aは、橋梁41と所定距離(例えば20m)を超えて離れている領域であるものとする。この場合、自己位置推定部32は、自己位置推定の尤度に基づいて推定された位置が有効でないと判定し、第1のKF33は観測値として相対高度を用いることができない。したがって、第2のKF34は、環境取得部31により取得される絶対高度に依存して無人航空機1の高度及び速度を推定することとなり、推定値の精度は比較的悪くなると考えられる。ただし領域Aにおいては、無人航空機1は橋梁41に衝突する可能性は低い。1つの例では、領域Aにおいては、飛行制御装置11は、無人航空機1の推定位置及び推定速度を用いて、予め設定された高度となるように無人航空機1の飛行を制御する。
【0096】
無人航空機1が領域Aから領域Bへ飛行する場合について説明する。領域Bは橋桁部42の凹部の先端面の下方の領域であるものとする。この場合、自己位置推定部32は、レーザによる測距距離が所定距離以内の点群データを取得できたときに推定の演算を開始し、その点群データを取得し始めたタイミングにいた自己位置を基準座標と定める。領域Bにおいては、一定の距離を保持するように飛行する無人航空機1に対して、障害物は所定距離内に存在し続けることが考えられる。そのため自己位置推定部32は、自己位置推定の尤度に基づいて推定された位置が有効であると判定され続ける限り、無人航空機1の位置を第1のKF33に出力する。この場合、第1のKF33は推定速度及び推定加速度バイアス値を第2のKF34に出力し、第2のKF34は該推定速度及び推定加速度バイアス値と環境取得部31により出力された絶対高度とを観測値として用いて、無人航空機1の高度及び速度を推定する。領域Bにおいては、飛行制御装置11は、無人航空機1の推定位置及び推定速度を用いて、領域Bにある橋桁部42の凹部の先端面から一定の距離を保持するように無人航空機1の飛行を制御する。
【0097】
無人航空機1が領域Bから領域Dまで飛行する場合について説明する。領域Cは橋桁部42の凹部の窪んだ領域の下方の領域であるものとし、領域Dは橋桁部42の凹部の先端面の下方の領域であるものとする。無人航空機1が領域Bから領域Dへ飛行する場合も、無人航空機1が領域Bにおいて飛行する場合と同じである。ただし無人航空機1が領域Bから領域Cへ飛行する場合、飛行制御装置11は、無人航空機1を凹部の突出した長さの分だけ上昇させる。また無人航空機1が領域Cから領域Dへ飛行する場合、飛行制御装置11は、無人航空機1を凹部の突出した長さの分だけ下降させる。なお、領域Bから領域Dまで飛行する場合に、飛行制御装置11は、領域Bにおける高さを保持して飛行するように、すなわち領域Bから領域Dまで実質的に高度一定で飛行するように無人航空機1を制御することもできる。
【0098】
無人航空機1が領域Dから領域Eへ飛行する場合について説明する。領域Eは、橋梁41と所定距離(例えば20m)を超えて離れている領域であるものとする。この場合、自己位置推定部32は、自己位置推定の尤度に基づいて推定された位置が有効でないと判定し、第1のKF33は観測値として相対高度を用いることができない。したがって、第2のKF34は、環境取得部31により取得される絶対高度に依存して無人航空機1の高度及び速度を推定することとなる。ただし前述のとおり、第2のKF34は、第1のKF33からの推定値が出力されなくなったとき、そのときの比較的尤度が高い速度及び加速度バイアス値を保持しているため、算出する推定高度及び推定速度の精度劣化を防ぐことができる。1つの例では、領域Eにおいては、飛行制御装置11は、無人航空機1の推定位置及び推定速度を用いて、領域Dにおける高度を保持するように無人航空機1の飛行を制御する。
【0099】
例えば、本発明と近い高度制御の方式としては、自己位置推定部32が利用可能な場所では自己位置推定32から得られる高度情報を用い、自己位置推定部32が利用不可能な場所は環境取得部31から得られる高度情報を用いるという方式が考えられる。しかし当該方式は、自己位置推定部32の情報、例えばレーザから取得される情報、を直接用いるため、自己位置推定部32が利用不可となった場合に急な上昇などの動作の不安定が生じやすいという問題がある。
【0100】
本実施形態のような構成とすることにより、自己位置推定部32から相対高度が出力されなくなったとき、第2のKF34は推定高度及び推定速度を安定化させることが可能となる。飛行制御装置11はこのような推定高度及び推定速度を用いて無人航空機1の飛行を制御することができるため、無人航空機1の急な上昇や動作の不安定化を防止することが可能となる。
【0101】
無人航空機1が領域Eから領域Fへ飛行する場合について説明する。領域Fは、領域BからDの上方の橋梁41に隣接する橋梁41における橋桁部42の凹部の先端面の下方の領域であるものとする。無人航空機1が領域Eから領域Fへ飛行する場合も、無人航空機1が領域Aから領域Bへ飛行する場合と同じである。ただし、無人航空機1が領域Dから領域Fへ比較的短時間で飛行する場合、領域Eにおいて第2のKF34が算出する推定高度及び推定速度の精度劣化は比較的小さいと考えられるため、飛行制御装置11は無人航空機1をより滑らかに飛行させることができる。
【0102】
次に、本発明の実施形態による飛行制御装置11の主な作用効果について説明する。本実施形態では、自己位置推定部32は、自己位置推定の尤度が基準値以上である場合に無人航空機1の相対高度を推定して第1のKF33に出力する。第1のKF33は、出力された相対高度を観測値として、無人航空機1の速度と加速度バイアス値を推定して第2のKF34に出力する。第2のKF34は、第1のKF33から推定値が出力されたときに該推定値を観測値として用いるとともに、環境取得部31から絶対高度が取得されたときに該絶対高度を観測値として用いて無人航空機1の高度と速度を推定する。
【0103】
ここで、橋梁下部に河川がある場合などは、気圧センサが取得する高度の精度も十分ではないと考えられる。そのため本実施形態の飛行制御装置11は、自己位置推定部32により推定される相対高度の信頼度を環境取得部31により取得される絶対高度の信頼度よりも高く設定している。すなわち、第2のKF34においては、第1のKF33から得られた速度の分散値及び加速度バイアス値の分散値を環境取得部31から得られた絶対高度の分散値よりも小さく設定する(尤度は大きく設定する)。
【0104】
このような構成とすることにより、第2のKF34は、第1のKF33から推定値が出力される場合は、環境取得部31から得られる絶対高度より強力に更新処理を行うことが可能となる。また第2のKF34は、第1のKF33から推定値が出力されなくなったとき、その直前の比較的尤度が高い速度及び加速度バイアス値を保持しているため、算出する推定高度及び推定速度の精度劣化を防ぐことが可能となる。これにより、自己位置推定部32から相対高度が出力されなくなったとき、飛行制御装置11は無人航空機1の急な上昇や不安定化を防止することが可能となる。
【0105】
他の実施形態では、上記で説明した本発明の実施形態の機能ブロック図などに示す情報処理を実現する制御方法やプログラムとすることができるし、当該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。
【0106】
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。例えば上記実施例において、無人航空機1は自律飛行型の無人航空機である必要はなく、無人航空機1の機能構成も
図1に示されるものに限らず同様の動作が可能であれば構わない。無人航空機1を浮揚させるための回転翼も、上昇、下降、前後左右への飛行の制御が可能であれば、
図1で示されるような6つのロータ4に限らず任意の回転翼であってよい。無人航空機1の機体サイズも任意である。各実施例は、矛盾が生じない限りにおいて、適宜組み合わせて本発明の任意の実施形態に適用することができる。すなわち本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。