以下、本発明の一実施形態に関わる無人航空機制御システムの例を説明する。
図1は、飛行ルート管理システム1の全体構成を示す図である。図1に示すように、飛行ルート管理システム1は、サーバ100、ユーザ端末200及び無人航空機300を含む。また、サーバ100、ユーザ端末200及び無人航空機300はネットワークNに接続されている。なお、図1では、サーバ100、ユーザ端末200及び無人航空機300の各々を1つずつ示しているが、これらは複数台あってもよい。
サーバ100は、複数の無人航空機が飛行する飛行ルートを管理する管理装置である。例えば、サーバ100はサーバコンピュータである。サーバ100は、制御部101、記憶部102及び通信部103を含む。
制御部101は、少なくとも1つのマイクロプロセッサを含み、記憶部102に記憶されたプログラムやデータに従って処理を実行する。記憶部102は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部103は、有線通信又は無線通信用の通信インタフェースであり、ネットワークNを介してデータ通信を行う。
評価部104は、制御部101における機能のうちの1つを示し、飛行ルートの評価を行う。具体的に、評価部104は、通信部103を介して無人飛行機300より取得した飛行ルートのルート情報に基づき、該当する飛行ルートの評価データの生成を行う。また、評価部104は、生成した当該飛行ルートの評価データに基づいて標準飛行ルートの設定及び更新も行う。飛行ルートの評価データの生成と標準飛行ルートの設定及び更新については、後述する。
選定部105は、制御部101における機能のうちの1つを示し、飛行ルートの飛行に使用することを推奨される無人航空機300の選定を行う。具体的に、選定部105は、評価部104が生成した飛行ルート(特に、標準飛行ルート)の評価データに基づいて、飛行に使用することが推奨される無人航空機300の選定を行う。無人航空機300の選定についても、後述する。
ユーザ端末200は、ユーザが操作するコンピュータである。例えば、ユーザ端末200は、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータを含む)又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末200は、制御部201、記憶部202、通信部203、操作部204及び表示部205を含む。制御部201、記憶部202及び通信部203は、それぞれ制御部101、記憶部102及び通信部103と同様のハードウェア構成であってよい。
操作部204は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部204は、ユーザによる操作内容を制御部201に伝達する。表示部205は、例えば、液晶表示部又は有機EL表示部等である。表示部205は、制御部201の指示に従って画像を表示する。
無人航空機300(第1の無人航空機)は、人が搭乗しない航空機であり、例えば、バッテリーで駆動する無人航空機(いわゆるドローン)やエンジンで駆動する無人航空機である。無人航空機300は、例えば、商品や郵便物などの荷物を搭載可能であってよい。無人航空機300は、例えば、配送先に飛行して荷物を配送したり、集荷先に飛行して荷物を集荷したりする目的で飛行する。
また、後述するように、無人航空機300は種々の目的で飛行してよく、荷物の運搬以外にも、例えば、撮影、気象情報の検出、警備、又は農薬散布等の目的で飛行してもよい。無人航空機300は、制御部301、記憶部302、通信部303、測位部304及びセンサ部305を含む。無人航空機300は、プロペラ、モータ、バッテリー、及びアンテナなども含むが、ここでは説明を省略する。
制御部301、記憶部302及び通信部303は、それぞれ制御部101、記憶部102及び通信部103と同様のハードウェア構成であってよい。なお、通信部303は、FASST、FHSS、DMSS、又はAFHSSといった特定機器(例えば、いわゆるラジコン)用の無線通信インタフェースを含んでいてもよく、通信部103を介して操縦機(いわゆるプロポ)と無線通信することによって、無人航空機300を操縦可能としてもよい。
測位部304は、少なくとも1つの位置測位センサを含み、例えば、GPSセンサを含む。GPSセンサは、衛星からの信号を受信する受信機を含み、例えば、受信機が受信した信号に基づいて位置情報を検出する。位置情報は、例えば、緯度経度情報又は座標情報であり、例えば、地上の2次元的な位置を示してもよいし、高度も含む3次元的な位置を示してもよい。なお、無人航空機300には、任意の位置測位センサが搭載されてよく、測位部304は、加速度センサ、ジャイロセンサ、風センサ、地磁気センサ、高度センサ、変位センサ、感圧センサ、赤外線センサ、レーザセンサ、超音波センサ、又は温度センサ等の任意のセンサを含むようにしてもよい。
無人航空機300は、測位部304が取得する位置情報と取得したルート情報とを照らし合わせながら飛行を行う。このように、位置情報とルート情報との照らし合わせを行いながら飛行を行うことで、無人航空機300がルート情報に含まれるルートレンジ内で飛行しているか否かを確認できる。そのため、例えば、一過性の強風に煽られて無人航空機300がルートレンジから外れそうになった場合も、位置情報に基づいて得られる軌跡などから設定されたルートレンジから外れないように自律制御を行うことが可能となる。
センサ部305は、少なくとも1台の物体検知センサ又は1台のカメラを含む。この物体検知センサは、出射された音波などの波の反射を検知することで、音波の出射方向に物体が存在していることを検知するものである。カメラは、CCDイメージセンサやCMOSイメージセンサなどの撮像素子を含み、当該撮像素子が撮影した画像をデジタルデータとして記録する。画像は、静止画であってもよいし、所定のフレームレートで連続的に撮影された動画であってもよい。カメラをセンサとして用いる場合は、撮影された画像において一般的に用いられる画像認識技術を用いることで、鳥やビル等の物体を検知する。なお、センサ部305は、物体検知センサとカメラの両方を備えていてもよい。
図2は、無人航空機300の障害物検知の様子の一例を示す。ここでは、動かない障害物(不動体)として、木Tを例に挙げる。無人航空機300の進行方向は矢印で示す方向である。図2では、無人航空機300の進行方向に木Tが存在している。この時、無人航空機300に含まれるセンサ部305は、センサ部305が進行方向に出射した波(例えば、レーダー波)のうち木Tから跳ね返ってきた反射波を検知する。そして、波を出射した時刻及び反射波を検知した時刻から、障害物である木Tの存在及び木Tまでの距離を割り出す。
なお、サーバ100、ユーザ端末200及び無人航空機300のハードウェア構成は、図1の例に限られず、種々のハードウェアを適用可能である。例えば、サーバ100、ユーザ端末200及び無人航空機300の各々は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロットや光ディスクドライブ)を含んでもよい。また、外部機器と通信するための入出力部(例えば、USBポート)を含んでいてもよい。各装置に記憶されるものとして説明するプログラム及びデータは、例えば読取部又は入出力部を介して供給されるようにしてもよいし、ネットワークNを介して供給されるようにしてもよい。
図3は、無人航空機制御システム1によって飛行を承認された飛行ルートを、無人航空機300が飛行する様子の一例を示す。なお、図3では、飛行ルート上に障害物である木T及びビルBが存在する場合を例として挙げている。図3における飛行ルートは、後述する飛行ルートID:1002(飛行パターンd及びe)と実質的に対応する。
図3に示すように、ユーザは、例えばタブレットコンピュータであるユーザ端末200を所持している。まず、ユーザは、ユーザ端末200により出発地DEPと目的地DESを表す発着座標情報及び出発時刻情報を含む飛行申請を入力する。ここで、出発地DEPは、無人航空機300が飛行を開始する地点であり、目的地DESは、無人航空機300が飛行を終了する地点である。また、出発時刻情報は、無人航空機300が飛行を開始する時刻を表す情報である。ユーザ端末200に入力された飛行申請は、通信部203によりネットワークNを介してサーバ100へ送信される。
ここで、サーバ100は、ユーザ端末200から取得した飛行申請等の要求に対して情報や処理結果を提供する情報処理装置として機能する。サーバ100の制御部101は、通信部103により受信した当該飛行申請に基づいて、既に記憶部102に記憶されている標準飛行ルートにおけるルート情報(飛行経路計画)を呼び出す。当該ルート情報には、記憶部102において標準飛行ルートとして記憶されている飛行ルートのルートIDが含まれる。そして、サーバ100は、通信部103によりネットワークNを介して記憶部102から呼び出したルート情報をユーザ端末200へ送信する。
ユーザは、サーバ100から送信されたルート情報をユーザ端末200の表示部205において確認する。ユーザがルート情報を参照して問題ないことを確認した旨の操作を行った場合、ユーザ端末200の通信部203は、ネットワークNを介してユーザによる確認操作が行われた旨の信号をサーバ100へ送信する。サーバ100の制御部101は、当該信号を通信部103が受信したことを以って、飛行申請に対する承認を行う。そして、飛行申請に含まれる出発時刻になると、無人航空機300は、出発地DEPから目的地DESにかけて、自律飛行によって飛行する。
図4は、無人航空機300がある2地点間を飛行する場合の飛行ルートの概略を示す。無人航空機300の測位部304は、飛行中、例えば自らの3次元座標情報をテレメトリデータとして生成する。そして、生成された無人航空機300のテレメトリデータは、通信部303によりネットワークNを介して逐次サーバ100へ送信される。そのため、無人航空機300の3次元座標情報は、テレメトリデータを生成した時点と対応して、それぞれ位置情報P1、P2、…Pt、…PNのように示される。
図4では、出発地DEPと目的地DESとの2地点間の飛行パターンとして、飛行パターンa乃至飛行パターンeの5パターンを示す。飛行パターンaは、無人航空機300が飛行申請の通りに標準飛行ルートを飛行した場合の飛行パターンを示す。飛行パターンbは、無人航空機300が飛行中、位置情報Pbにおいて飛行ルート上に鳥(移動体)が出現した場合の飛行パターンを示す。飛行パターンcは、2地点間において木Tが存在し、無人航空機300の飛行における動かない障害物(不動体)となっている場合の飛行パターンを示す。飛行パターンdは、2地点間において木Tに加えてビルBも存在している場合の飛行パターンを示す。飛行パターンeは、2地点間において木T及びビルBが存在しており、無人航空機300が飛行中、位置情報Pcにおいて飛行ルート上に鳥が出現した場合の飛行パターンを示す。このように、無人航空機300が飛行中に検知しうる障害物は、鳥やアドバルーンなどの移動体及び木やビルなどの不動体の2種類が存在する。なお、本実施形態では上記2種類の例を説明するが、障害物の種類はこれら2種類に限定されるものではない。また、飛行パターンa乃至飛行パターンeそれぞれには、対応するルートID:1000乃至1002が存在する。このルートIDの判定方法については、後述する。
なお、木Tは当初から地点Paに存在しており、経時による成長で無人航空機300の飛行に支障をきたす障害物となっている。また、ビルBについては、当初地点Pdには存在していなかったが、その後建設されたことで、無人航空機300の飛行に支障をきたす障害物となっている。そのため、飛行パターンaがこの2地点間での設定された最初の飛行パターンであると言える。つまり、飛行パターンaで飛行する場合の飛行ルートがルートID:1000となる。その後、木Tが成長すると、無人航空機300は飛行パターンcでの飛行を行う。つまり、飛行パターンcで飛行する場合の飛行ルートがルートID:1001となる。同様に、ビルBが建設された後の飛行パターンdで飛行する場合の飛行ルートがルートID:1002となる。
図5乃至図8は、各飛行パターンで飛行した無人航空機300の飛行ステータス情報を示す。以下、順を追って各図の記載について説明する。飛行ステータス情報は、ユーザが飛行申請を行った際に確認した標準飛行ルートのルートID、各位置情報、各位置情報におけるルートスコアを含む。飛行ステータス情報に含まれるルートスコアは、検知した障害物の種別(例えば、移動体であるか不動体であるか)に応じて異なった値となる。そして、障害物の検知結果を反映して、障害物の種別毎のルートスコアが各位置情報に紐付けられる。
まず図5は、飛行パターンbで飛行した無人航空機300の飛行ステータス情報を示す。なお、最初の位置情報P1におけるルートIDが1000であることから、標準飛行ルートのルートIDが1000であると判定してもよい。ここで、無人航空機300のセンサ部305が鳥を検知した位置情報Pbにおいて、移動体の検知を示すルートスコア「+1」が記録されている。しかし、標準飛行ルートからのルート変更は行われていないため、いずれの位置情報においてもルートIDの記録は行われない。
図6は、飛行パターンcで飛行した無人航空機300の飛行ステータス情報を示す。飛行パターンcにおいても、出発当初はルートID:1000での飛行を行う。しかし、位置情報Paで示される位置では、木Tを回避するための飛行ルート変更が行われる。そのため、木Tを検知した位置情報PaにおけるルートIDは、変更後の飛行ルートを示す1001を記録する。また、無人航空機300のセンサ部305が木Tを検知した位置情報Paには、不動体の検知を示すルートスコア「+10」が紐付けられる。このルート変更の方法については後述する。
図7は、飛行パターンdで飛行した無人航空機300の飛行ステータス情報を示す。飛行パターンdにおいても、出発当初はルートID:1000での飛行を行う。しかし、位置情報Paで示される位置では、木Tを回避するためのルート変更が行われる。そのため、木Tを検知した位置情報PaにおけるルートIDは、変更後の飛行ルートを示す1001を記録する。また、無人航空機300のセンサ部305が木Tを検知した位置情報Paには、不動体の検知を示すルートスコア「+10」が紐付けられる。
その後、位置情報Pdで示される位置では、ビルBを回避するためのルート変更が行われる。そのため、ビルBを検知した位置情報PdにおけるルートIDは、変更後の飛行ルートを示す1002を記録する。また、無人航空機300のセンサ部305がビルBを検知した位置情報Pdには、木Tを検知した位置情報Paと同様にルートスコア「+10」が紐付けられる。
図8も、飛行パターンdで飛行した無人航空機300の飛行ステータス情報を示す。但し図8は、出発当初はルートID:1001で飛行を行った飛行ステータス情報である。これは、最初の位置情報P1におけるルートIDが1001であることから判定することも可能である。つまり、飛行申請において、既に木Tを回避するように飛行するルートID:1001を標準飛行ルートとして設定していることを示す。
ゆえに、位置情報Paで示される位置では、木Tを回避するためのルート変更が行われない。しかし、位置情報Pdで示される位置では、ビルBを回避するための飛行ルート変更が行われる。そのため、ビルBを検知した位置情報PdにおけるルートIDは、変更後の飛行ルートを示す1002を記録する。また、無人航空機300のセンサ部305がビルBを検知した位置情報Pdには、ルートスコア「+10」が紐付けられる。
このように、無人航空機300が障害物を検知したか否かが、障害物が検知された位置情報Ptにルートスコアが紐付けられるか否かに対応している。また、無人航空機300が障害物を検知し、位置情報Ptにルートスコアが紐付けられる場合、検知した障害物の種別に応じて、位置情報Ptに紐付けられたルートスコアの値が異なる。よって、障害物の検知結果が飛行ルートの評価データにあたる。
図9は、無人航空機300が標準飛行ルート(第1の飛行ルート)からルート変更を行う方法を示すフローチャートである。まずユーザ端末200の通信部203は、飛行申請に対応する標準飛行ルートのルート情報をユーザが確認した旨をサーバ100へ送信する。サーバ100の通信部103は、ユーザによるルート情報の確認の旨を受信した後、無人航空機300へ標準飛行ルートのルート情報を送信する。そして、無人航空機300は、サーバ100より標準飛行ルートのルート情報を取得する(S101)。その後、無人航空機300は、S101で取得した標準飛行ルートのルート情報に従って、出発地DEPから離陸する(S102)。なお、出発地DEPを出発する出発時刻は、飛行申請の内容に従う。
出発地DEPを出発した無人航空機300は、測位部304が取得する位置情報と取得したルート情報とを照らし合わせながら飛行を行う。この飛行において、無人航空機300は同時に、センサ部305における障害物検知を行う(S103)。
この障害物検知において、センサ部305が障害物を検知しなかった場合(S103:No)、無人航空機300の制御部301は、自機が目的地DESの近辺に存在するか否かを判定する(S110)。このS110の判定は、例えば、測位部304が取得する位置情報と取得したルート情報とを照らし合わせに基づいて行ってもよい。また、目的地DESの近辺とする範囲は、ユーザが予め設定していてもよい。また目的地DESの近辺とする範囲は、一律に距離を設定してもよい。例えば、目的地DESの座標を中心とした半径50m以内の円を目的地DESの近辺とする範囲としてもよい。
無人航空機300が目的地DESの近辺に存在しないと判定された場合(S110:No)は、再度S103のステップに戻り、障害物の検知を繰り返し行う。対して、無人航空機300が目的地DESの近辺に存在すると判定された場合(S110:Yes)は、そのまま目的地DESへの着陸を行い、無人航空機300の飛行を終了する(S111)。
このように、無人航空機300は、出発地DEPからの離陸から目的地DESへの着陸までの飛行の間、繰り返し障害物が存在するかの検知を行い続ける。そして、障害物が存在しない場合は、前述のフローで無人航空機300の制御が行われる。以下は、障害物が存在する場合の無人航空機300の制御フローである。
S103の障害物検知において、センサ部305が障害物を検知した場合(S103:Yes)、無人航空機300は、障害物を検知した地点において、所定の時間をかけてホバリング(空中停止飛行)を行う(S104)。このホバリングを行う時間は、ユーザ又はサーバ100が無人航空機300に対して任意に設定すればよい。あるいは、ホバリングを行う時間に、無人航空機300において予め設定されたホバリング時間を適用してもよい。なお、このS104のホバリングの間に、センサ部305に含まれるカメラなどから取得した画像について、画像認識により障害物の種別を判定してもよい。つまり、障害物が鳥や風船などの移動体であるのか、又は木やビルなどの不動体であるのかについての判定をS104のホバリングの間に行ってもよい。
S104のホバリングの後、センサ部305は再度障害物検知を行う(S105)。S105において障害物を検知しなかった場合(S105:No)は、障害物を検知した地点の位置情報Ptにルートスコア「+1」が紐付けられる(S106)。このルートスコア「+1」は、一時的に標準飛行ルート上に障害物が存在したが、その障害物が無くなったことを意味する。なお、S106の後は前述のS110へ進むが、S110の説明は重複するため、ここでは省略する。
S105において依然として障害物を検知した場合(S105:Yes)、無人航空機300の制御部301は、予め設定された予備飛行ルートの中で、目的地へ着陸可能な予備飛行ルート(第2の飛行ルート)が存在するか否かを判定する(S107)。なお、この予備飛行ルートは、サーバ100が標準飛行ルートのルート情報に含めて無人航空機300へ送信し、取得した無人航空機300の記憶部302が飛行中に保持していてもよい。また、無人航空機300がサーバ100に対し、飛行中の標準飛行ルートにおける予備飛行ルートのルート情報の送信要求を送信するようにしてもよい。この場合、サーバ100は、無人航空機300からの送信要求を通信部103において受信すると、サーバ100の記憶部102に記憶されている予備飛行ルートのルート情報を、通信部103によりネットワークNを介して無人航空機300へ送信する。
S107において、目的地DESへ着陸可能な予備飛行ルートが存在すると判定する場合(S107:Yes)は、障害物を検知した地点の位置情報Ptに目的地DESへ着陸可能であると判定された予備飛行ルートのルートID及びルートスコア「+10」が紐付けられる(S108)。このルートスコア「+10」は、標準飛行ルート上に障害物が存在し、当該障害物を回避するためのルート変更が必要であったことを意味する。そして、無人航空機300は、標準飛行ルートから選択した予備飛行ルートに従って飛行するようにルート情報を変更する(S109)。
S109における予備飛行ルートへのルート変更後は、まず無人航空機300の制御部301が目的地DESの近辺に存在するか否かを判定する(S110)。無人航空機300が目的地の近辺に存在すると判定された場合(S110:Yes)は、そのまま目的地DESへの着陸を行い、無人航空機300の飛行を終了する(S111)。対して、無人航空機300が目的地DESの近辺に存在しないと判定された場合(S110:No)は、再度S103のステップに戻り、障害物の検知を繰り返し行う。このように、無人航空機300は、標準飛行ルートの飛行時と同様に、予備飛行ルートの飛行時においても繰り返し障害物が存在するかの検知を行い続ける。
S107において、目的地DESへ着陸可能な予備飛行ルートが存在しないと判定する場合(S107:No)は、無人航空機300のフライトスコアよりも大きくなるように標準飛行ルートのルートスコアを変更する。具体的に、制御部301は、障害物を検知した地点の位置情報Ptのルートスコアとして、現在飛行している無人航空機300に設定されているフライトスコアよりも大きい値が紐付けられる(S112)。そして、障害物を検知した地点から出発地DEPへ飛行し、出発地DEPへの帰還を行う(S113)。なお、フライトスコアについては後述する。
図9に示すフローチャートのように無人航空機300の制御を行うことで、ユーザが直接無人航空機300の操縦を行うことなく、2地点間のルート変更を行うことが可能となる。また、目的地DESへ着陸可能な予備飛行ルートがない場合は、出発地DEPへと帰還するため、バッテリー切れなどによる無人航空機300の墜落などを防ぐことができる。さらに、ユーザが目視などで確認することなく、飛行ルート上の障害物の種類から飛行ルートの危険度などの評価を自動的に実行することが可能となる。また飛行の都度、当該飛行ルートのルートスコアを取得するため、飛行ルートの評価データを飛行毎に更新することが可能となる。
なお、S104において鳥等の移動体が移動せず、S105において依然として障害物として検知された場合、S107で位置情報Ptに紐付けられるルートスコアは、標準飛行ルートに紐付けられるルートスコアよりも大きい値となるようにする。これは、S104におけるホバリングの時間をより長時間とすれば、本来は移動体が飛行ルートから居なくなるとの判断が妥当であるためである。また、次回の飛行において同一地点における移動体との遭遇がなかった場合に、標準飛行ルートでの飛行を可能とするためである。
前述の場合、無人航空機300は予備飛行ルートにルート変更するが、例えば、予備飛行ルートへはルートスコア「+5」が紐付けられ、標準飛行ルートへは「+1」が紐付けられるようにすればよい。また、次回の飛行において同一地点における移動体との遭遇がなかった場合は、後述のように標準飛行ルートに紐付けられるルートスコアをデクリメントすればよい。
但し、移動体が恒常的に同一の箇所に存在している場合(例えば鳥の群れが飛行ルート上で頻繁に滞留しているなど)は、移動体が恒常的な障害物となり、不動体とみなすことができる。そのため、このような例外については、後述の不動体の障害物が存在する場合の飛行ルートの評価データ生成と標準飛行ルートの更新の制御を採用することができる。
図10は、サーバ100の評価部104における飛行ルートの評価データ及び標準飛行ルートの更新の制御を示すフローチャートである。なお、後述する図11乃至図15は、図10に示すフローチャートに従って得られた結果の一例である。
まず、サーバ100は、飛行申請を承認した後に標準飛行ルートのルート情報を、通信部103により無人航空機300へ送信する(S201)。そして、無人航空機300が出発地DEPを離陸(S202A)し、目的地DESに着陸(S202B)する間、サーバ100の通信部103は、無人航空機300から位置情報Ptを所定の時間毎に逐次取得する(S203)。
サーバ100は、今回の飛行における飛行ステータス情報を、通信部103により着陸後の無人航空機300から取得する(S204)。そして、サーバ100の制御部101において、取得した飛行ステータス情報と記憶部102に記憶されている各ルート情報とが類似しているか否かが判定される(S205)。制御部101は、基本的には、飛行ステータス情報に含まれるルートIDと一致するルート情報を「類似するルート情報」と判定する。但し、飛行ステータス情報に含まれる位置情報Ptに紐付けられたルートIDが存在しない場合であっても、記憶部102に記憶されたルート情報と類似していると判定され得る。この場合は、飛行ステータス情報に含まれる位置情報Pt又は位置情報Ptから構築される飛行軌跡に基づいて、当該飛行ステータス情報と記憶部102に記憶されたルート情報とが類似しているか否かが判定されてもよい。
取得した飛行ステータス情報と記憶部102に記憶されている各ルート情報とが類似しないと判定される場合(S205:No)、取得した飛行ステータス情報から今回の飛行におけるルート情報を生成する。そして生成した新たな飛行ルートのルート情報を記憶部102に記憶する(S206)。
その上で、取得した飛行ステータス情報に含まれるルートスコアが記憶したルート情報に紐付けられる(S207)。また、今回の飛行における標準飛行ルートのルート情報について、ルート情報のルートスコアを取得した飛行ステータス情報に含まれるルートスコアに更新する(S208)。
取得した飛行ステータス情報と記憶部102に記憶されている各ルート情報とが類似すると判定される場合(S205:Yes)、制御部101は、取得した飛行ステータス情報に含まれる位置情報Ptにルートスコアが記録されているか否かについて確認する(S209)。
取得した飛行ステータス情報に含まれる位置情報Ptにルートスコアが記録されている場合(S209:Yes)、制御部101は、類似すると判定された飛行ルートのルート情報について、ルートスコアの更新を行う(S210)。具体的に、制御部101は、類似する飛行ルートのルート情報に紐付けられるルートスコアを、取得した飛行ステータス情報に含まれるルートスコアに更新する。その後、制御部101は、今回の飛行における標準飛行ルートのルート情報について、ルート情報のルートスコアを取得した飛行ステータス情報に含まれるルートスコアに更新する(S208)。
取得した飛行ステータス情報に含まれる位置情報Ptにルートスコアが記録されていない場合(S209:No)、制御部101は、今回の飛行における標準飛行ルートのルート情報に紐付けられるルートスコアをデクリメントする(S211)。これは、飛行ステータス情報に類似する飛行ルートが存在し位置情報Ptにルートスコアが記録されていないという事象が、標準飛行ルートを通常飛行した場合(図4に示す飛行パターンaに相当)にのみ出現するためである。なお、既に標準飛行ルートのルート情報に紐付けられるルートスコアが「0」である場合は、デクリメントを行っても引き続きルートスコアが「0」となるようにする。これは、デクリメントによりルートスコアがマイナスになることを避けるためである。
S208及びS211までにルート情報に紐付けられるルートスコアの更新が行われると、評価部104は、新たに標準飛行ルートを決定する(S212)。具体的に、評価部104は、同一2地点間における複数の飛行ルートの評価データを比較し、最もルート評価の高い飛行ルートを標準飛行ルートとする。なお、飛行ルートのルートスコアが最も低い飛行ルートが、前述の最もルート評価の高い飛行ルートに相当する。
例えば、前述の実施形態の場合、評価部104は、飛行ルートに紐付けられるそれぞれのルートスコアを比較し、最もルートスコアが低い飛行ルートを新たな標準飛行ルートとする。そのため、ルートスコアを更新してもなお従前の標準飛行ルートのルート情報に紐付けられるルートスコアが最も低い場合は、引き続き同じ飛行ルートが標準飛行ルートとして決定される。
このように、サーバ100は取得した飛行ステータス情報に基づいて、今回の飛行における飛行ルートの判別及び飛行ルートの評価を自動的に行うことができる。特に飛行ルートの評価においては、新たな飛行ルートのルート情報を生成した上で、標準飛行ルートの更新及び決定までをサーバ100が自動的に行うことが可能となる。
図11乃至図15は、2地点間を飛行する場合の飛行ルートの評価及び標準飛行ルートの更新の一例である。図11乃至図15は、図10に示すフローチャートに従って得られる。
まず、図11乃至図13は、標準飛行ルートがルートID:1000に設定されていた場合の飛行ルートの評価及び標準飛行ルートの更新の一例について示している。図11は、飛行パターンa及びbについての比較の例である。前述のように、飛行パターンaは標準飛行ルートがルートID:1000の場合の飛行パターンである。これに対して、飛行パターンbは、ルートID:1000の標準飛行ルートを飛行中、進行方向上に1回鳥(移動体)が存在した場合の飛行パターンである。
このように飛行パターンaと飛行パターンbとの相違点は、標準飛行ルート上に移動体の障害物が存在したか否かである。そのため、飛行パターンaにおいては、移動体の障害物の存在が想定されていないため、ルートスコア「+1」が付与される。しかし、あくまでルートID:1000の標準飛行ルート上には不動体の障害物は存在していない。そのため標準飛行ルートは変更されず、引き続きルートID:1000が標準飛行ルートとして設定されている。
図12は、飛行パターンa及びcについての比較の例である。飛行パターンcは、ルートID:1000の標準飛行ルートを飛行中、障害物である木Tを回避するために予備飛行ルートであるルートID:1001を選択して以後飛行を行った場合の飛行パターンである。
標準飛行ルートをルートID:1000として飛行パターンcに示す飛行をした場合、木TはルートID:1000の標準飛行ルートにおける不動体の障害物であると言える。そのため、飛行パターンaにおいては、障害物である木Tの存在が想定されておらず、回避の必要があったため、ルートスコア「+10」が付与される。これに対して、飛行パターンcは、結果的にルートID:1001で全区間を飛行したこととなる。これは、出発地から位置情報Paで示される地点までの飛行ルートがルートID:1000とルートID:1001とで重複しているためである。よって、ルートID:1001の飛行ルートは、木Tが存在していることを想定したルートであると言える。つまり、ルートID:1001の飛行ルートは、位置情報Paで示される地点において、木Tの存在に関わらず図4に示すような飛行ルートで飛行を行う。ゆえに、ルートID:1001のルートスコアは「0」となっている。
以上のように、従前標準飛行ルートとなっていたルートID:1000(飛行パターンa)では、飛行ルート上の障害物である木Tを回避する必要があるため、標準飛行ルートをルートID:1001に変更する、標準飛行ルートの設定更新が行われる。
図13は、飛行パターンa及びdについての比較の例である。飛行パターンdでは、まずルートID:1000の標準飛行ルートを飛行中、障害物である木Tを回避するために予備飛行ルートであるルートID:1001が選択されている。飛行パターンdは、その後、別の障害物であるビルBを回避するため、更なる予備飛行ルートであるルートID:1002が選択されて以後飛行が行われた場合の飛行パターンである。
図12における場合と同様、飛行パターンaにおいては、障害物である木T及びビルBの存在を想定しておらず、それぞれ回避の必要があったため、ルートスコア「+20」が付与される。これに対して、飛行パターンdは、結果的にルートID:1002で全区間を飛行したこととなる。このルートID:1002の飛行ルートは、木T及びビルBが存在していることを想定したルートで飛行していると言える。ゆえに、ルートID:1002のルートスコアは「0」となっている。
以上のことから、従前標準飛行ルートとなっていたルートID:1000(飛行パターンa)では、飛行ルート上の障害物である木T及びビルBに対する危険性があるため、標準飛行ルートをルートID:1002に変更する、標準飛行ルートの設定更新が行われる。
次に図14は、飛行パターンc及びdについての比較の例である。つまり、標準飛行ルートがルートID:1001に設定されていた場合における、飛行ルートの評価データの生成及び標準飛行ルートの更新の一例である。図12及び図13における場合と同様に考えると、飛行パターンcにおいては、障害物であるビルBの存在を想定しておらず、回避の必要があったため、ルートスコア「+10」が付与される。これに対して、飛行パターンdは、ルートID:1002で全区間を飛行したこととなり、ビルBが存在していることを想定したルートで飛行していると言える。ゆえに、ルートID:1002のルートスコアは「0」となっている。
以上のように、従前標準飛行ルートとなっていたルートID:1001(飛行パターンc)では、飛行ルート上の障害物であるビルBを回避する必要があるため、標準飛行ルートをルートID:1002に変更する、標準飛行ルートの設定更新が行われる。
最後に図15は、飛行パターンd及びeについての比較の例である。前述のように、飛行パターンdは標準飛行ルートがルートID:1002の場合の飛行パターンである。これに対して、飛行パターンeは、ルートID:1002の標準飛行ルートを飛行中、進行方向上に1回鳥(移動体)が存在した場合の飛行パターンである。
図11における場合と同様に考えると、飛行パターンdと飛行パターンeとの相違点は、標準飛行ルート上に移動体の障害物が存在したか否かである。そのため、飛行パターンdにおいては、移動体の障害物の存在を想定していないため、ルートスコア「+1」が付与される。しかし、あくまでルートID:1002の標準飛行ルート上には木T及びビルB以外の不動体の障害物は存在していない。そのため標準飛行ルートは変更されず、引き続きルートID:1002を標準飛行ルートとしている。
図16は、ある2地点間の飛行ルートとして生成された複数のルートIDにおけるルート情報の一例を示す。図16は、標準飛行ルートがルートID:1002に設定されている場合のルート情報である。ルートID:1000のルートスコアは、飛行パターンa乃至飛行パターンeそれぞれにおける飛行ステータス情報に基づいて更新された結果、2回の鳥(移動体)との遭遇及び木TとビルB(不動体)の回避を反映したルートスコア「+22」が紐付けられる。同様に、ルートID:1001のルートスコアは、飛行パターンa乃至飛行パターンeそれぞれにおける飛行ステータス情報に基づいて更新された結果、1回の鳥(移動体)との遭遇及びビルB(不動体)の回避を反映したルートスコア「+11」が紐付けられる。
なお、ここでの1回の鳥(移動体)との遭遇は、飛行パターンeにおいてみられる位置情報Pcにおける鳥との遭遇と対応する。また、飛行パターンaにおいてみられる位置情報Pbにおける鳥との遭遇は、飛行パターンc以降では確認されていないため、ルートID:1001及びルートID:1002ではデクリメントされている。
そして、ルートID:1000乃至1002のルートスコアを比較すると、ルートID:1002のルートスコアが最も小さい値となっている。以上のことから、最もルートスコアの小さいルートID:1002の飛行ルートが標準飛行ルートとして設定されている。
図17は、サーバに記憶されている無人航空機の機体情報の一例を示す。それぞれの無人航空機300には、機体を識別するための機体IDが付与されている。また、各機体には機体の性能、主に飛行可能距離に応じたフライトスコアが紐付けられている。このフライトスコアは、ルートスコアと対応するスコアである。つまり、大きい値のフライトスコアが紐付けられる機体は、移動体が多く出現すると考えられる飛行ルート及び不動体からの回避の可能性が高いと考えられる飛行ルートでも、目的地へ問題なく着陸可能な機体であると評価されていることを示す。
一方、小さい値のフライトスコアが紐付けられる機体は、フライトスコア以上のルートスコアが紐付けられた飛行ルートを飛行してしまうと、出発地DEPへ引き返したり、目的地DESへ到達できず墜落したりする可能性がある。そのため、サーバ100の選定部105は、標準飛行ルートのルート情報に紐付けられたルートスコアに基づいて、問題なく飛行が可能なフライトスコアが紐付けられた機体を選定する。
なお、フライトスコアは飛行可能距離以外にも、障害物を検知する範囲の広さや距離、障害物を検知するために搭載される機器の種別や有無に基づいて設定されてもよい。例えば、レーダー以外にカメラと画像認識装置を有する無人航空機Iとレーダー以外の装置を有さない無人航空機IIでは、無人航空機Iのフライトスコアが無人航空機IIのフライトスコアよりも大きい値となるよう設定されてもよい。
図18は、サーバ100が使用を推奨する無人航空機300を選定する方法を示すフローチャートである。まずサーバ100は、通信部103により、ユーザ端末200から出発地DEP及び目的地DESの情報を取得する(S301)。なお、出発地DEP及び目的地DESの情報は、ユーザからの飛行申請より取得してもよい。
次に、サーバ100の制御部101は、取得した2地点間の標準飛行ルートのルート情報を記憶部102から取得する(S302)。そして、サーバ100の評価部104は、取得したルート情報からルート距離を計算する(S303)。なお、取得したルート情報に予め計算されたルート距離が含まれている場合は、当該ルート距離の値を取得する。
また、サーバ100の評価部104は、S303におけるルート距離とは別に、標準飛行ルートのルート情報に紐付けられたルートスコアに基づいて、予備飛行距離を計算する(S304)。これは、標準飛行ルートを飛行する場合において、回避などで前述のルート距離以上の距離を飛行する可能性があるためである。予備飛行距離の計算の一例としては、ルートスコアに対する単位距離(予備飛行距離係数)をルートスコアに乗じる方法が挙げられる。例えば、予備飛行距離係数を2kmと設定した場合、ルートスコアが「+2」の飛行ルートの予備飛行距離は4kmとなり、ルートスコアが「+11」の飛行ルートの予備飛行距離は22kmとなる。
この例の他にも、移動体との遭遇におけるホバリングと、不動体の回避とで異なる予備飛行距離係数を設定してもよい。例えば、移動体との遭遇におけるホバリングで適用する場合の第1予備飛行距離係数を200m(0.2km)、不動体の回避で適用する場合の第2予備飛行距離係数を2kmとそれぞれ設定してもよい。この場合、ルートスコアが「+12」の飛行ルートにおける予備飛行距離は、0.2×2+2×10=20.4[km]と算出される。
その後、サーバ100の選定部105は、評価部104からS303において算出したルート距離とS304において算出した予備飛行距離とを取得する。そして、選定部105は、ルート距離と予備飛行距離との和以上の距離を飛行可能な無人航空機300の機体情報を、記憶部102より取得する(S305)。具体的に、選定部105は、図17に示すような無人航空機300の機体情報を参照して、飛行可能距離がルート距離と予備飛行距離との和以上である機体の機体情報を取得する。
取得した無人航空機300の機体情報は、標準飛行ルートのルート情報と共に通信部103によりユーザ端末200へ送信される(S306)。そして、送信されたルート情報と無人航空機300の機体情報は、ユーザ端末200の通信部203により受信され、表示部205に表示される。
図19は、使用が推奨される無人航空機300の機体情報をユーザ端末200の表示部205に表示した際の一例を示す。まず、ユーザがユーザ端末200を用い、「飛行申請」を行う際の画面にて出発地DEP及び目的地DESの情報を入力する。
図19の「飛行申請」画面では、入力の一例として、プルダウンメニューを利用し登録されている候補から出発地DEP及び目的地DESを選択する方法を示している。なお、プルダウンメニューを利用した入力以外にも、出発地DEP及び目的地DESを入力するテキストボックスをそれぞれ用意し、ユーザがユーザ端末200の操作部204により、出発地DEP及び目的地DESを入力するようにしてもよい。ユーザによって入力された出発地DEP及び目的地DESの情報は、ユーザ端末200の通信部203からネットワークNを介してサーバ100へ送信される。
その後、サーバ100の選定部105は、図18に示すフローチャートに基づいて、今回の飛行において使用を推奨する無人航空機300の機体情報を記憶部102より取得する。そして、ルート情報及び取得した無人航空機300の機体情報を、サーバ100の通信部103からユーザ端末200へ送信する。ユーザ端末200は、通信部203によりサーバ100から受信した標準飛行ルートのルート情報及び無人航空機300の機体情報を「飛行ルート・使用推奨機体情報」として表示部205に表示する。
図19の「飛行ルート・使用推奨機体情報」画面は、出発地に「X社A事業所」、目的地に「Y社B支店」を選択した場合を一例に示す。ユーザが選択した出発地及び目的地の表示の下には、選択した2地点間の標準飛行ルートのルート情報が表示される。ここでは、選択した2地点間の飛行ルートが前述のルートID:1000乃至1002である場合を示している。この場合、図16に示すようにルートID:1002が標準飛行ルートであるため、ルートID:1002のルート情報が標準飛行ルートとして表示されている。
また、標準飛行ルートでの飛行において使用が推奨される機体として、ここでは無人航空機300のうち3種類のドローン(ドローンC、ドローンD及びドローンE)を表示している。なお、図16にて示すように、本来ルートID:1002の飛行ルートにおける飛行距離は25kmであるが、ルートスコア「+1」が紐付けられている。そのため、図17にて示すように25kmが飛行可能距離であるドローンBは、目的地へ着陸できない可能性があるとして、図19の「飛行ルート・使用推奨機体情報」画面には表示されていない。
以上のように、ユーザは、サーバ100の評価部104により自動的に更新される、飛行ルートの評価データと標準飛行ルートの設定を利用することが可能となる。また、ユーザは、サーバ100の選定部105により使用が推奨される無人航空機300の機体情報を取得し参照することが可能となる。さらに参照した情報から、ユーザは、飛行ルート上及び飛行ルート周辺の環境変化に応じて適切な無人航空機300を飛行させることが可能となる。
なお本開示は、飛行ルートの評価を毎回の飛行において更新することから、飛行ルート上の環境によっては、多くの回数の飛行を重ねてもなおルートスコアが「0」であり続ける飛行ルートが存在しうる。このような場合は、飛行ルート上に障害物が存在する可能性は極めて低いと考えられる。そのためサーバ100の評価部104は、紐付けられたルートスコアが「0」である飛行ルートの飛行に、障害物検知機能(図1に示すセンサ部305)を有さない無人航空機300(第2の無人航空機)を使用することを許容する。このように、評価部104が障害物検知機能を有さない無人航空機300を使用することを許容した場合、選定部105は障害物検知機能の有無によらず、飛行ルートの距離に基づいて使用が推奨される無人航空機300の選定を行ってもよい。具体的には、図19に示す「飛行ルート・使用推奨機体情報」画面において、図17に示す機体ID:A(ドローンA)及びB乃至E(ドローンB乃至E)の機体情報が選定部105によって選定された機体情報として表示される。
また本開示は、無人航空機300がある2地点間の標準飛行ルートをある期間飛行しなかった場合においても、当該飛行ルートの評価が可能である。前述のように、ある期間無人航空機300が標準飛行ルートを飛行していなかった場合、サーバ100の評価部104は、飛行していない期間に応じて標準飛行ルートのルート情報に紐付けられるルートスコアを上げる。
ここでは例として、ある2地点間の飛行を26週間(つまり、6か月)行っていなかった場合を挙げる。この場合、当該2地点間の標準飛行ルートのルート情報に紐付けられるルートスコアのインクリメントを、例えば2週間毎に行うようにすればよい。そのため、評価部04は、従前の標準飛行ルートのルート情報に紐付けられるルートスコアに「+13」を加えた値を新たなルートスコアとする。その上で、選定部105は、新たなルートスコアに基づいて無人航空機300の選定を行う。そして、図19の「飛行ルート・使用推奨機体情報」画面に選定した無人航空機300の機体情報を表示する。
このように、飛行していない期間に応じてルートスコアを上げることで、新たな障害物(例えば、新築されたビル)が当該期間内に設けられるなどのリスクの可能性を、飛行再開前の標準飛行ルートに反映させることが可能となる。そして、飛行再開後最初の飛行においては、当該リスクが反映されたルートスコア以上のフライトスコアを紐付けられた無人航空機300が、標準飛行ルートを飛行させる無人航空機として選定される。これにより、十分な飛行可能距離を担保して目的地への着陸できる上、標準飛行ルートの自動的な再評価も可能となる。
上記実施形態では1つの装置(サーバ100)に評価部104の機能と選定部105の機能とが備えられる例を説明したが、本技術はかかる例に限定されない。例えば評価部104の機能と選定部105の機能とが別々の装置に備えられてもよい。かかる場合、評価部104の機能を備えた装置から選定部105の機能を備えた装置へ評価データが送信されることで、上述した実施形態と同等の機能が実現され得る。
また、飛行ルートを飛行させる無人航空機300の選定は、ユーザにより行われてもよい。例えば、評価部104により生成された評価データは、サーバ100からユーザ端末200へ送信される。そして、ユーザ端末200が受信した評価データは、表示部205において表示される。ユーザは、表示部205に表示された評価データを確認し、当該飛行ルートを飛行させる無人航空機300を選定することができる。なお、ユーザにより選定された無人航空機300の情報は、操作部204を介して入力されて、ユーザ端末200からサーバ100へ送信されてもよい。
なお、前述の具体的な文字列や数値及び図面中の具体的な文字列や数値はあくまで例示であって、これら文字列や数値に限定されるものではない。