[1]実施例
図1は実施例に係るドローン運航管理システム1の全体構成を表す。ドローン運航管理システム1は、ドローンの運航を管理するシステムである。運航管理とは、ドローンのような飛行体の飛行計画に則った飛行を管理することをいう。ドローン運航管理システム1は、例えば、複数のドローンが飛行する環境において、ドローンに飛行空域を割り当て、ドローンに対して飛行に関する指示(飛行指示)を行い、ドローンの安全且つ円滑な飛行を支援する。
ドローンとは、飛行計画に則って飛行することが可能で且つ一般的には無人の飛行体であり、本発明の「飛行体」の一例である。ドローンは、例えば運搬、撮影及び監視等の事業を行っている事業者によって主に用いられる。なお、本実施例では、運航管理の対象は無人のドローンであるが、有人のドローンも存在するので、その有人のドローンを対象としてもよい。なお、ドローン運航管理システム1が有人の飛行体を対象とするか否かにかかわらず、飛行機等の有人機の飛行空域の把握及び飛行指示等を行う管制における管理範囲がドローン運航管理システム1による運航管理に含まれていてもよい。
ドローン運航管理システム1は、ネットワーク2と、サーバ装置10と、A事業者端末20a、B事業者端末20b及びC事業者端末20c(それぞれ区別しない場合は「事業者端末20」という)と、A事業者のドローン30a-1及び30a-2、B事業者のドローン30b-1及び30b-2、C事業者のドローン30c-1及び30c-2(それぞれ区別しない場合は「ドローン30」という)とを備える。
ネットワーク2は、移動体通信網及びインターネット等を含む通信システムであり、自システムにアクセスする装置同士のデータのやり取りを中継する。ネットワーク2には、サーバ装置10及び事業者端末20が有線通信で(無線通信でもよい)アクセスしており、ドローン30が無線通信でアクセスしている。
事業者端末20は、例えば各事業者においてドローン30の運用担当者が利用する端末である。事業者端末20は、運用担当者の操作によりドローン30が予定している飛行概要を示す飛行予定を生成し、生成した飛行予定をサーバ装置10に送信する。飛行予定は、例えば、出発地、(必要なら)経由地、目的地、出発予定時刻及び到着予定時刻等を示す情報である。
サーバ装置10は、上述した飛行指示に関する処理を行う情報処理装置である。サーバ装置10は、受け取った飛行予定に基づき、各ドローン30について飛行空域及び飛行許可期間を割り当てる。飛行空域は、ドローン30が出発地から目的地まで飛行する際に通過すべき空間を示す情報であり、飛行許可期間は、割り当てられた飛行空域における飛行が許可される期間を示す情報である。サーバ装置10は、割り当てた飛行空域を割り当てた飛行許可期間に飛行することを指示する飛行指示を作成し、作成した飛行指示を事業者端末20に送信する。
事業者端末20は、受け取った飛行指示に基づいて、ドローン30が自機の飛行を制御するためのパラメータ群である飛行制御情報を生成し、生成した飛行制御情報を対象となるドローン30に送信する。ドローン30が飛行制御に用いるパラメータはドローン30を制御するプログラムの仕様によって異なるが、例えば、飛行高度、飛行方向、飛行速度、到着地点の空間座標などが用いられる。
ドローン30は、自律的に又は飛行計画に従って飛行体であり、本実施例では、1以上の回転翼を備え、それらの回転翼を回転させて飛行する回転翼機型の飛行体である。どのドローン30も、自機の位置及び高度(つまり3次元空間上の空間座標)を測定する座標測定機能及び時刻を測定する時刻測定機能を有しており、空間座標及び時刻を測定しながら飛行速度及び飛行方向を制御することで、飛行指示により指定された飛行空域及び飛行許可期間を守りながら飛行することが可能である。
図2はサーバ装置10等のハードウェア構成を表す。サーバ装置10等(サーバ装置10及び事業者端末20)は、いずれも、プロセッサ11と、メモリ12と、ストレージ13と、通信装置14と、入力装置15と、出力装置16と、バス17という各装置を備えるコンピュータである。なお、ここでいう「装置」という文言は、回路、デバイス及びユニット等に読み替えることができる。また、各装置は、1つ又は複数含まれていてもよいし、一部の装置が含まれていなくてもよい。
プロセッサ11は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ11は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。また、プロセッサ11は、プログラム(プログラムコード)、ソフトウェアモジュール及びデータ等を、ストレージ13及び/又は通信装置14からメモリ12に読み出し、これらに従って各種の処理を実行する。
各種処理を実行するプロセッサ11は1つでもよいし、2以上であってもよく、2以上のプロセッサ11は、同時又は逐次に各種処理を実行してもよい。また、プロセッサ11は、1以上のチップで実装されてもよい。プログラムは、電気通信回線を介してネットワークから送信されてもよい。
メモリ12は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)及びRAM(Random Access Memory)等の少なくとも1つで構成されてもよい。メモリ12は、レジスタ、キャッシュ及びメインメモリ(主記憶装置)等と呼ばれてもよい。メモリ12は、前述したプログラム(プログラムコード)、ソフトウェアモジュール及びデータ等を保存することができる。
ストレージ13は、コンピュータが読み取り可能な記録媒体であり、例えば、CD-ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つで構成されてもよい。
ストレージ13は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ12及び/又はストレージ13を含むデータベース、サーバその他の適切な媒体であってもよい。通信装置14は、有線及び/又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。
入力装置15は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置16は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカなど)である。なお、入力装置15及び出力装置16は、一体となった構成(例えば、タッチスクリーン)であってもよい。また、プロセッサ11及びメモリ12等の各装置は、情報を通信するためのバス17を介して互いにアクセス可能となっている。バス17は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
図3はドローン30のハードウェア構成を表す。ドローン30は、プロセッサ31と、メモリ32と、ストレージ33と、通信装置34と、飛行装置35と、センサ装置36と、バス37という各装置を備えるコンピュータである。なお、ここでいう「装置」という文言は、回路、デバイス及びユニット等に読み替えることができる。また、各装置は、1つ又は複数含まれていてもよいし、一部の装置が含まれていなくてもよい。
プロセッサ31、メモリ32、ストレージ33、通信装置34及びバス37は図2に表す同名のハードウェアと同じである。通信装置34は、ネットワーク2との無線通信に加え、ドローン30同士の無線通信を行うこともできる。飛行装置35は、上述したローターと、ローターを回転させるモーター等の駆動手段とを備え、自機(ドローン30)を飛行させる装置である。飛行装置35は、空中において、あらゆる方向に自機を移動させたり、静止(ホバリング)させたりすることができる。
センサ装置36は、飛行制御に必要な情報を取得するセンサ群を有する装置である。センサ装置36は、自機の位置(緯度及び経度)を測定する位置センサと、自機が向いている方向(ドローン30には自機の正面方向が定められており、その正面方向が向いている方向)を測定する方向センサと、自機の高度を測定する高度センサとを備える。また、センサ装置36は、赤外線又はミリ波等を照射してその反射波を受信するまでの時間に基づいて物体との距離を測定する距離センサを有する。距離センサは、ドローン30が他のドローン30との距離を所定の範囲に収めながら編隊を組んで飛行する編隊飛行を行う際に用いられる。
なお、サーバ装置10及びドローン30等は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、及び、FPGA(Field Programmable Gate Array)等のハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ11は、これらのハードウェアの少なくとも1つで実装されてもよい。
ドローン運航管理システム1が備えるサーバ装置10、事業者端末20及びドローン30には、本システムで提供されるプログラムが記憶されており、各装置のプロセッサがプログラムを実行して各部を制御することで以下に述べる機能群が実現される。
図4はドローン運航管理システム1が実現する機能構成を表す。なお、図4では、事業者端末20及びドローン30が1つずつしか表されていないが、それぞれ複数の事業者端末20及び複数のドローン30が一部の機能を除き同じ機能構成を有するものとする。
サーバ装置10は、飛行予定取得部101と、空域・期間仮決部102と、編隊飛行判断部103と、飛行指示生成部104と、飛行指示送信部105とを備える。事業者端末20は、飛行予定生成部201と、飛行予定送信部202と、飛行指示取得部203と、飛行制御情報生成部204と、飛行制御情報送信部205とを備える。ドローン30は、飛行制御情報取得部301と、飛行部302と、飛行制御部303と、位置測定部304と、高度測定部305と、方向測定部306と、他機距離測定部307とを備える。
事業者端末20の飛行予定生成部201は、ドローン30の飛行予定を示す飛行予定情報を生成する。飛行予定生成部201は、例えば、上述した運用担当者が事業者端末20に、飛行予定を入力するドローン30を識別するドローンID(Identification)と、出発地、経由地及び到着地の名称と、出発予定時刻及び到着予定時刻とを入力することで、入力された各情報に基づいて飛行予定情報を生成する。なお、飛行予定情報は、あくまでも事業者が希望し又は要求する飛行予定を示す情報であり、確定した飛行計画を示すものではない。
図5は生成された飛行予定情報の一例を表す。図5の例では、図1に表すドローン30a-1を識別する「D001」というドローンIDに、「倉庫α1」、「交差点β1」、「店舗γ1」、「T1」、「T2」という出発地、経由地、目的地、出発予定時刻、到着予定時刻が対応付けられている。また、ドローン30b-1を識別する「D002」というドローンIDに、「港α2」、「交差点β2」、「ビルγ2」、「T3」、「T4」という出発地、経由地、目的地、出発予定時刻、到着予定時刻が対応付けられている。なお、この飛行予定情報はあくまで一例であり、例えば経由地及び出発予定時刻等は含まれない場合がある。
「T1」等の時刻は、実際には「9時00分」のように日時を1分単位まで表しているものとする。なお、時刻は、より細かく(例えば秒単位で)表されていてもよいし、より粗く(例えば5分単位で)表されていてもよい。また、飛行予定の日付が入力されてもよいが、本実施例では、説明を分かり易くするため、運用担当者は当日の飛行予定をその日の朝に入力する(つまり日付は不要である)ものとする。
また、図5の例では、各ドローン30の飛行速度を示す速度情報が飛行予定情報に含まれており、ドローン30a-1の通常速度はV11、最高速度がV12、ドローン30b-1の通常速度はV21、最高速度がV22となっている。なお、ドローン30は、最高速度以下の速度であれば飛行速度を調節して飛行することができるものとする。本実施例では、このように飛行予定情報によってサーバ装置10に各ドローン30の速度情報が知らされる。なお、この速度情報については、例えば各事業者が登録することでサーバ装置10が予めドローンIDに対応付けて記憶しておいてもよい。
ドローン30a-1の飛行予定情報はA事業者端末20aの飛行予定生成部201が生成し、ドローン30b-1の飛行予定情報はB事業者端末20bの飛行予定生成部201が生成する。飛行予定生成部201は、生成した飛行予定情報を飛行予定送信部202に供給する。飛行予定送信部202は、供給された飛行予定情報をサーバ装置10に送信する。サーバ装置10の飛行予定取得部101は、各事業者端末20から送信されてきた飛行予定情報を取得する。
飛行予定取得部101は、取得した飛行予定情報を空域・期間仮決部102に供給する。空域・期間仮決部102は、供給されたドローン30の飛行予定情報に基づいて、そのドローン30が飛行すべき飛行空域(ドローン30が出発地から目的地まで飛行する際に通過すべき空間)及び飛行許可期間(飛行空域の飛行が許可される期間)の割り当てを仮決めする。
ドローン運航管理システム1においては、ドローン30が飛行することができる飛行可能空域が道路網のように予め定められている。飛行可能空域は、当然ながら飛行のために必要な許可を受けた空域であり、場合によっては許可が不要な空域を含むこともある。本実施例では、飛行可能空域は、隙間なく敷き詰められた立方体の空間(以下「セル」という)によって表され、各セルには各々を識別するセルIDが付されている。
サーバ装置10は、各セルIDと、各セルの中心の座標と、立方体であるセルの一辺の長さと、飛行可否とを対応付けた飛行可能空域テーブルを記憶している。
図6は飛行可能空域テーブルの一例を表す。図6の例では、「C01_01」、「C02_01」、・・・、「C99_99」というセルIDと、「x1、y1、z1」、「x2、y1、z1」、・・・、「x99、y99、z99」という中心の座標とが対応付けられている。
本実施例では、説明を分かり易くするため、各セルの高度が一定であり、各セルのxy座標とセルIDとを対応させて表している(例えばxy座標が(x10、y15)のセルはC10_15というセルIDが付されている)。図6の例では、各セルの一辺の長さはいずれも「L1」である。また、飛行可否は「○」なら飛行可能、「×」なら飛行不可であることが表されている。
空域・期間仮決部102は、まず、飛行可能空域のセルの中から、飛行予定に含まれている出発地に最も近いセル(出発地セル)と、経由地に最も近いセル(経由地セル)と、目的地に最も近いセル(目的地セル)とを特定する。空域・期間仮決部102は、次に、飛行可能空域のセルの中から、特定した出発地セルから経由地セルを通って目的地セルに至り、且つ、例えば飛行距離が最短となる飛行空域を仮決めし、仮決めした飛行空域に含まれているセルのセルIDを抽出する。
図7は仮決めされた飛行空域の例を表す。図7では、セルC01_01(セルIDがC01_01のセル)の中心を原点とするx軸及びy軸が表されており、x軸の矢印方向をx軸正方向、その反対方向をx軸負方向、y軸の矢印方向をy軸正方向、その反対方向をy軸負方向といい、y軸負方向は北向きであるものとする。図7の例では、図5に表す飛行予定に含まれる「倉庫α1」から「交差点β1」を通って「店舗γ1」まで至る飛行空域R1が表されている。
飛行空域R1には、出発地セルであるセルC01_01からx軸正方向に隣接するセルを通ってセルC20_01に至る分割空域R11(飛行空域を分割した空域のこと)と、そこからy軸正方向に隣接するセルを通って経由地セルであるセルC20_20に至る分割空域R12と、そこからx軸正方向に隣接するセルを通って目的地セルであるセルC50_20に至る分割空域R13とが含まれている。
また、図7の例では、図5に表す飛行予定に含まれる「港α2」から「交差点β2」を通って「ビルγ2」まで至る飛行空域R2が表されている。飛行空域R2には、出発地セルであるセルC40_05からx軸負方向に隣接するセルを通ってセルC20_05に至る分割空域R21と、そこからy軸正方向に隣接するセルを通って経由地セルであるセルC20_15に至る分割空域R22と、そこからx軸負方向に隣接するセルを通ってセルC05_15に至る分割空域R23と、そこからy軸正方向に隣接するセルを通って目的地セルであるセルC05_30に至る分割空域R24とが含まれている。
空域・期間仮決部102は、本実施例では、各分割空域について飛行許可期間を仮決めする。空域・期間仮決部102は、例えば、飛行予定に含まれる出発予定時刻から到着予定時刻までの期間を、各分割空域の長さに応じた割合で分割した期間を、各分割空域を通過する際に要する空域通過期間として算出する。
空域・期間仮決部102は、例えば飛行空域R1における分割空域R11、R12、R13の長さの比が2:2:3であり、出発予定時刻から到着予定時刻までの期間が70分であれば、20分:20分:30分を各分割空域の空域通過期間として算出する。空域・期間仮決部102は、出発予定時刻からこれらの空域通過期間が順次経過した時刻(つまり20分経過後の時刻、40分経過後の時刻、70分経過後の時刻)の前後にマージン期間を加えた時刻を開始時刻又は終了時刻とする期間を各分割空域における飛行許可期間として仮決めする。
図8は仮決めされた飛行許可期間の一例を表す。空域・期間仮決部102は、例えばマージン期間を3分間とすると、分割空域R11に対しては、出発予定時刻T1の3分前を開始時刻T111とし、出発予定時刻T1から分割空域R11の空域通過期間(20分)が経過してからマージン期間の3分が経過した時刻(つまり出発予定時刻T1の23分後)を終了時刻T112とする期間K11を飛行許可期間として仮決めする。
また、空域・期間仮決部102は、分割空域R12に対しては、出発予定時刻T1から分割空域R11の空域通過期間である20分が経過した時刻からマージン期間の3分間遡った時刻(つまり出発予定時刻T1の17分後)を開始時刻T121とし、出発予定時刻T1に分割空域R11及びR12の空域通過期間を合わせた40分が経過してからマージン期間の3分が経過した時刻(つまり出発予定時刻T1の43分後)を終了時刻T122とする期間K12を飛行許可期間として仮決めする。
また、空域・期間仮決部102は、分割空域R13に対しては、出発予定時刻T1から分割空域R11及びR12の空域通過期間を合わせた40分が経過した時刻からマージン期間の3分間遡った時刻(つまり出発予定時刻T1の37分後)を開始時刻T131とし、出発予定時刻T1に分割空域R11、R12及びR13の空域通過期間を合わせた70分が経過してからマージン期間の3分が経過した時刻(つまり出発予定時刻T1の73分後又は到着予定時刻T2の3分後)を終了時刻T132とする期間K13を飛行許可期間として仮決めする。
なお、空域・期間仮決部102は、図5に表す飛行予定情報に経由地又は予定時刻が含まれていない場合に、あえて他のドローン30と編隊飛行を行わせるため、飛行空域及び飛行許可期間が重複するように経由地又は予定時刻を設定して仮決めしてもよい。また、空域・期間仮決部102は、割り当て可能な空域が不足している場合(例えば割り当てを仮決めしていないセルの個数が閾値以下になった場合)に、同じくあえて他のドローン30と編隊飛行を行わせるため、飛行空域及び飛行許可期間が重複するように経由地及び予定時刻等を変更して仮決めしてもよい。
空域・期間仮決部102は、以上のとおり仮決めした飛行空域及び飛行許可期間を示す仮決め情報を飛行予定情報とともに編隊飛行判断部103に供給する。
図9は仮決め情報の一例を表す。仮決め情報においては、飛行空域に含まれるセルのセルIDが分割空域毎にまとめられ、分割空域毎に対応する飛行許可期間が対応付けられ、それらの飛行空域及び飛行許可期間が仮決めされたドローン30のドローンID及び速度情報に対応付けられている。
例えば「D001」というドローンIDには、分割空域R11、R12、R13に含まれるセルID群と、飛行許可期間である期間K11、K12、K13の開始時刻及び終了時刻と、通常速度がV11で最高速度がV12であることを示す速度情報がそれぞれ対応付けられている。編隊飛行判断部103は、共通の飛行空域が仮決めされたドローン30同士の編隊飛行(編隊を組んでの飛行)に関する判断を行う。編隊飛行判断部103は、具体的には、編隊飛行を行う必要があるか否か(編隊飛行の要否)と、編隊飛行を行うべきドローン30の組合せ(編隊飛行の組合せ)と、編隊飛行を行う各ドローン30の配置(編隊飛行の配置)とを判断する。
編隊飛行判断部103は、共通の飛行空域を共通の方向に飛行するドローン30同士が所定の距離よりも接近すると見込まれる場合、それらのドローン30は編隊飛行を行う必要があると判断する。編隊飛行判断部103は、前述したドローン30同士の接近が見込まれるか否かを、空域・期間仮決部102により仮決めされた飛行空域及び飛行許可期間に基づいて判断する。
編隊飛行判断部103は、例えば、飛行空域全体を通過する際に要する空域通過期間を算出し、算出した空域通過期間を飛行空域に含まれるセルの数で分割する。分割された期間は、ドローン30が各セルの通過に要する期間を表す。編隊飛行判断部103は、出発予定時刻に分割した期間を順次加えた時刻を、ドローン30が各セルにおける飛行を開始することが見込まれる時刻及び終了することが見込まれる時刻として算出する。以下ではこれらの開始時刻及び終了時刻を「セル飛行時刻」という。
編隊飛行判断部103は、本実施例では、次の3つの条件が満たされた場合に、共通の飛行空域を共通の方向に飛行するドローン30同士が所定の距離よりも接近することが見込まれると判断する。
条件1:2以上のドローン30に対して割り当てが仮決めされた重複セルがある又は仮決めされたセル間の距離が閾値以内になっている。
条件2:2以上のドローン30の重複セルにおける飛行方向が一致している。
条件3:2以上のドローン30の重複セルにおけるセル飛行時刻の差が閾値未満である。
編隊飛行判断部103は、詳細には、セル飛行時刻のうちの開始時刻同士の差又は終了時刻同士の差のいずれかだけでも閾値未満である場合に条件3が満たされると判断する。例えば図7の例において、セルC20_05からセルC20_15までのセルは、ドローン30a-1及びドローン30b-1の両方に割り当てが仮決めされた重複セルであるから、条件1が満たされる。
ドローン30a-1及び30b-1は、これらの重複セルにおいてどちらもy軸正方向に移動するから、条件2が満たされる。編隊飛行判断部103は、これらの重複セルにおけるドローン30a-1及び30b-1のセル飛行時刻の差が閾値未満であれば、条件3も満たされるので、ドローン30a-1及び30b-1は編隊飛行を行うべきだと判断し、それらのドローン30の組合せを、編隊飛行を行うべきドローン30の組合せとして判断する。
続いて、編隊飛行判断部103は、編隊飛行を行う複数のドローン30の配置を決定する。編隊飛行判断部103は、本実施例では、複数のドローン30の編隊飛行時の配置として、各ドローン30を進行方向に沿って真っ直ぐ並べる配置であり且つ編隊飛行から離脱する順番に並べる配置を決定する。ここでいう順番は、先頭からの順番でもよいし、最後尾からの順番でもよい。
例えば3台のドローン30が互いに距離L11の間隔をあけて編隊飛行をする場合、2番目のドローン30が途中で離脱すると、離脱した瞬間は3番目のドローン30と先頭のドローン30との距離がL11×2だけあいてしまうので、3番目のドローン30は距離L11になるまで間隔を詰めなければならない。その際3番目のドローン30の飛行速度が不足していると間隔を詰めることができずに編隊飛行を継続することができなくなるおそれがある。
その場合先頭のドローン30が飛行速度を落としてもよいが、離脱のタイミングで飛行速度を落として間隔が詰まったら飛行速度を戻すという複雑な制御が必要になる。上記のとおり編隊飛行から離脱する順番に並べる配置にすれば、そのように途中のドローン30(前後を他のドローン30に挟まれたドローン30)が離脱することがないので、この配置にしない場合に比べて編隊飛行を安定して継続することができるし、編隊飛行の継続のための前述した複雑な制御を不要にすることができる。
なお、編隊飛行判断部103は、共通の飛行空域を共通の方向に飛行するドローン30同士が所定の距離よりも接近しないと見込まれる場合、つまり条件1~3が満たされない場合でも、例えば割り当て可能な空域が不足しているときに、条件1、3の閾値を大きな値に変更して、あえて編隊飛行を行うべきドローン30の組合せだと判断してもよい。
編隊飛行判断部103は、条件1、3が満たされたが条件2が満たされない場合は、ドローン30同士が近接しながらすれ違う異常接近(いわゆるニアミス)が生じる旨を、対象となるドローン30のドローンIDと共に空域・期間仮決部102に通知する(これを「ニアミスの通知」という)。
また、編隊飛行判断部103は、割り当て可能な空域が不足している場合(例えば割り当てが仮決めされていないセルの個数が閾値以下になった場合)に、多少離れているドローン30(条件1、3の閾値を大きくして判断)にまで編隊飛行の対象を拡大すべきである旨を、対象となるドローン30のドローンIDと共に空域・期間仮決部102に通知する。また、編隊飛行判断部103は、条件1~3を満たさないドローン30であっても、供給された飛行予定情報に経由地又は予定時刻の記載がなければ、条件1~3を満たすように経由地又は予定時刻を設定して仮決めを行う旨を、対象となるドローン30のドローンIDと共に空域・期間仮決部102に通知する(これはいずれも「対象拡大の通知」という)。
空域・期間仮決部102は、ニアミス又は対象拡大の通知を受け取ると、共に通知されたドローンIDのドローン30のうち、1台を除いた他のドローン30に仮決めした飛行空域及び飛行許可期間の一方又は両方を変更する。空域・期間仮決部102は、例えば、対象となるドローン30の出発予定時刻及び到着予定時刻を、飛行予定情報が示す時刻よりも所定の時間だけ遅くした上で再度上記と同じ方法で飛行許可期間を仮決めする。
なお、空域・期間仮決部102は、飛行距離が最短となる飛行空域を仮決めする代わりに、飛行距離が2番目又は3番目等に短い飛行空域を仮決めしてもよい。また、空域・期間仮決部102は、経由地を変更した上で飛行空域を仮決めしてもよい。それらの場合、空域・期間仮決部102は、仮決めをし直した飛行空域に対して飛行許可期間を上記と同じ方法で仮決めする。
空域・期間仮決部102は、いずれかの方法で仮決めをし直すと、その仮決めの結果を反映した仮決め情報を編隊飛行判断部103に供給する。編隊飛行判断部103は、変更された仮決め情報に基づいて上記のとおり編隊飛行について判断を行う。こうして空域・期間仮決部102及び編隊飛行判断部103は、ニアミスの通知及び対象拡大の通知のいずれもが行われなくなるまで(つまりニアミス及び対象拡大が生じなくなるまで)上記の動作を繰り返し行う。
空域・期間仮決部102は、上記通知が行われない状態になると、最後に仮決めした飛行許可期間の変更を行う。上記のとおり編隊飛行は通常速度が最も遅いドローン30に合わせた速度で行われるため、通常速度が速いドローン30の空域通過期間が、上記のとおり算出した期間よりも長くなり、仮決めした飛行許可期間だと短すぎるという事態が起こり得る。そこで、空域・期間仮決部102は、編隊飛行を行った場合の速度で飛行する前提で空域通過期間を算出し直して、その空域通過期間に基づいて図7で説明した方法で飛行許可期間を再度仮決めする。
編隊飛行判断部103は、ニアミス及び対象拡大が生じない状態になったときに最後に仮決めされた飛行空域と、上記のとおり調整された飛行許可期間とを、正式に割り当てられた飛行空域及び飛行許可期間として確定させる。空域・期間仮決部102及び編隊飛行判断部103は、こうして飛行予定取得部101により取得された飛行予定情報に基づいてドローン30に飛行空域及び飛行許可期間を割り当てる割当部106として機能する。
割当部106は、複数のドローン30の飛行空域及び飛行方向に所定の共通性がある場合には、それら複数のドローン30については互いの距離を制御する編隊飛行を行うことを条件にその飛行空域を共有させる。例えば、割当部106は、共通の飛行空域を共通の方向に飛行するドローン30同士が所定の距離よりも接近すると見込まれる場合に、所定の共通性がある場合と判断する。
また、割当部106は、事業者が定めた飛行予定からは、共通の飛行空域を共通の方向に飛行するとも、所定の距離まで接近するとも見込まれなくても、例えば上述した対象拡大の通知がされて出発地から目的地までの経路又は予定時刻を変更すれば共通の飛行空域を共通の方向に飛行して所定の距離まで接近するのであれば、それらのドローン30は飛行空域及び飛行方向に所定の共通性があると判断し、編隊飛行を行うことを条件にその飛行空域を共有させる。
また、割当部106は、上記のとおり、最も遅いドローン30の速度に合わせて編隊飛行を行う場合に、それよりも速い速度のドローン30に対して割り当てた飛行許可期間を、編隊飛行中の速度に応じて延長する。編隊飛行判断部103は、以上のとおり決定した編隊飛行を行うべきドローン30の組合せと、編隊飛行を行う際の並び順と、それらのドローン30が飛行する重複セルのセルIDと、この決定の際に算出したセル飛行時刻(ドローン30が予定通り飛行した場合に各セルを飛行する見込みの期間)とを示す編隊飛行情報を飛行指示生成部104に供給する。
また、編隊飛行判断部103は、編隊飛行情報が示す各情報の最終的な判断に用いた仮決め情報(速度情報を含む)を、上記のとおり確定させた正式な飛行空域及び飛行許可期間の割り当てを示す割当情報として、編隊飛行情報と共に飛行指示生成部104に供給する。飛行指示生成部104は、供給された編隊飛行情報及び割当情報に基づいて、飛行予定が送信されてきたドローン30に対する飛行指示を生成する。
図10は生成された飛行指示の一例を表す。図10では、上述したドローン30a-1、10b-1に加えて、図10(a)に表すようにセルC10_10からセルC20_10、セルC20_20、セルC30_20を経由してセルC30_30までの飛行空域が割り当てられたドローン30c-1が編隊飛行の対象となった例を説明する。飛行指示生成部104は、図10(b)に表すように、割当情報が示すドローンIDと、飛行空域と、飛行許可期間とに加えて、他のドローン30と合流する合流セルと、合流セルでの合流時刻と、編隊飛行での並び順とを示す飛行指示を生成している。
図10の例では、飛行空域のセルID及び飛行許可期間の開始時刻及び終了時刻を省略している。例えばドローン30a-1(ドローンID=D001)及びドローン30b-1(ドローンID=D002)は、合流セルであるセルC20_05において合流時刻TG1に合流し、その際の並び順が先頭からドローン30a-1、30b-1であることが示されている。
また、ドローン30a-1、30b-1、30c-1(ドローンID=D003)は、合流セルであるセルC20_10において合流時刻TG2に合流し、その際の並び順が先頭からドローン30a-1、30c-1、30b-1であることが示されている。なお、各ドローン30は、割り当てられた飛行空域を通って飛行することで、他のドローン30と飛行空域が分離する地点で自然と編隊飛行から離脱する。
図10の例では、合流セルであるセルC20_05から合流セルであるセルC20_10までの編隊飛行空域RH11ではドローン30a-1、30b-1の2台が編隊飛行を行う。次に、ドローン30c-1が合流する合流セルであるセルC20_10からドローン30b-1が離脱するセルC20_15までの編隊飛行空域RH12ではドローン30a-1、30c-1、30b-1の3台が編隊飛行を行う。
そして、セルC20_15からドローン30a-1、30c-1の飛行空域が分離するセルC30_30までの編隊飛行空域RH13ではドローン30a-1、30c-1の2台が編隊飛行を行う。飛行指示生成部104は、編隊飛行情報及び割当情報から、編隊飛行を行うべきドローン30に対応付けられた飛行空域に含まれる重複セルの先頭のセルIDを合流セルのセルIDとして抽出する。
また、飛行指示生成部104は、例えばその合流セルにおいて合流する各ドローン30の合流セルにおけるセル飛行時刻の開始時刻のうち最も遅い時刻(合流セルへの到着が最も遅いドローン30の到着時刻)に許容される遅れ(例えば編隊飛行を行うドローン30が通常よりも速度を上げて飛行すれば次の目的地点までにセル飛行時刻の遅れを取り戻せる程度の遅れ)を見込んだ時刻を合流時刻として抽出する。本実施例では、この合流時刻が合流位置への到着期限として用いられる。
また、飛行指示生成部104は、編隊飛行の対象となるドローン30について決定された編隊飛行での並び順を抽出する。飛行指示生成部104は、こうして抽出した合流セル、合流時刻及び合流後に行われる編隊飛行での並び順を含む飛行指示を生成する。飛行指示生成部104は、生成した飛行指示を飛行指示送信部105に供給する。飛行指示送信部105は、供給された飛行指示を、その飛行指示に含まれるドローンIDのドローン30の運用担当者が利用する事業者端末20に送信する。
事業者端末20の飛行指示取得部203は、送信されてきた飛行指示を取得して、飛行制御情報生成部204に供給する。飛行制御情報生成部204は、上述した飛行制御情報(ドローン30が自機の飛行を制御するためのパラメータ群)を生成する。
図11は生成された飛行制御情報の一例を表す。図11では、上述したドローン30a-1に対する飛行制御情報が表されている。
ドローン30a-1には、図11(a)に表すように、出発地セルであるセルC01_01からセルC20_01を通り、合流セルであるセルC20_05及びセルC20_10でそれぞれ合流を行い、セルC20_15でドローン30b-1が離脱し、経由地セルであるセルC20_20を通り、セルC30_20でドローン30c-1が離脱し、目的地セルであるセルC50_20に到達する飛行空域が割り当てられている。
飛行制御情報生成部204は、これらの8つのセルの中心点の座標P1、P2、P3、P4、P5、P6、P7、P8を目標地点座標(次に到達すべき目標となる地点の座標)として算出し、それらの座標を含む飛行制御情報をまずは生成する。ドローン運航管理システム1においては、目的地として指定される地点にはドローン30の着陸が可能なドローンポートが用意されており、事業者端末20は、各ドローンポートの座標を目的地の名称に対応付けて記憶している。飛行制御情報生成部204は、図11の例では、ドローン30a-1の目的地である「店舗γ1」に対応付けられているドローンポートの座標P9を目標地点座標として飛行制御情報に加える。
飛行制御情報生成部204は、各目標地点座標まで飛行する際の飛行高度、飛行方向、飛行速度、空間幅、到着目標時刻、並び順/編隊機数(編隊飛行を行うドローン30の台数)を飛行制御情報に加える。飛行制御情報生成部204は、例えば飛行高度として、座標P1までの飛行(離陸)には「0~A1」、それ以降の座標P8までの飛行(水平飛行)には「A1」、座標P9までの飛行(着陸)には「A1~0」を加える。
また、飛行制御情報生成部204は、飛行方向として、水平飛行が行われる座標P1から座標P2までは「東向き」、座標P2から座標P6までは「南向き」、座標P7から座標P8までは「東向き」を加える。また、飛行制御情報生成部204は、ドローン30a-1が単独で飛行する座標P1から座標P3までと座標P7から座標P8までの飛行速度としてドローン30a-1の通常速度である速度V11を加える。
また、飛行制御情報生成部204は、ドローン30a-1及び30b-1が編隊飛行を行う座標P3からP4までの飛行速度としてドローン30b-1の通常速度である速度V21(速度V21<V11とする)を加える。また、飛行制御情報生成部204は、ドローン30c-1が合流する座標P4から離脱するP7までの飛行速度としてドローン30c-1の通常速度である速度V31(速度V31<V21<V11とする)を加える。
また、飛行制御情報生成部204は、水平飛行が行われる座標P1から座標P8までの飛行空域の空間幅として、本実施例で定められているセルの一辺の長さL1を加える。図11に表す「L1、L1、L1」という3つの空間幅は、x軸方向、y軸方向、z軸方向の3方向の幅を意味している。なお、離陸時と着陸時には飛行方向、飛行速度、空間幅は不要なのでブランクになっている。
また、飛行制御情報生成部204は、各目標地点座標への到着目標時刻として、出発予定時刻T1及び到着予定時刻T2と、飛行許可期間の開始時刻及び終了時刻と、合流時刻とを用いた時刻を加えている。飛行制御情報生成部204は、例えば座標P1への到着目標時刻として、座標P1を含むセルC01_01から始まる分割空域R11の飛行許可期間である期間K11の開始時刻T111よりも所定の時間だけ後の時刻T111´以降の時刻と定めている。
開始時刻T111よりも前にセルC01_01に入ると飛行許可期間である期間K11になる前の侵入になるので、時刻T111´は、セルC01_01に進入してから座標P1に到達するまでに要する時間よりも長い時間だけ開始時刻T111から経過した時刻を表すものとする。この時刻T111´以降に到着するということは、飛行許可期間である期間K11になってから分割空域R11に進入したことになる。
また、飛行制御情報生成部204は、分割空域R11及びR12の境目である座標P2への到着目標時刻として、座標P2を含むセルC20_01から始まる分割空域R12の飛行許可期間の開始時刻T121よりも所定の時間だけ後の時刻T121´から、セルC20_01で終わる分割空域R11の飛行許可期間の終了時刻T112よりも所定の時間だけ前の時刻T112´までの間の時刻を定めている。
時刻T111´と同様に、時刻T121´以降に座標P2に到着するということは、飛行許可期間である期間K12になってから分割空域R12に進入したことになる。また、時刻T112´は、座標P2からセルC20_01を抜け出すまでに要する時間よりも長い時間だけ終了時刻T112から経過した時刻を表すものとする。この時刻T112´以前に座標P2に到着するということは、飛行を続ければ飛行許可期間である期間K11が終了する前に分割空域R11を抜け出せることになる。分割空域R12及びR13の境目である座標P6への到着目標時刻も同じ方法で定められている。
また、飛行制御情報生成部204は、座標P3への到着目標時刻として、座標P3を含む合流セルであるセルC20_05での合流時刻TG1以前の時刻を定めている。座標P4への到着目標時刻も同じ方法で合流時刻TG2以前の時刻が定められている。これらの合流セルの中心の座標P3、P4は、編隊を組むドローン30が合流する位置(合流位置)を示している。
また、飛行制御情報生成部204は、ドローン30b-1が離脱する座標P5への到着目標時刻として、座標P5を含むセルC20_15から始まる分割空域R23の飛行許可期間の開始時刻T231よりも所定の時間だけ後の時刻T231´以降の時刻と定めている。この時刻に到着すれば、飛行許可期間である期間K23になってからドローン30b-1が分割空域R23に進入することになるからである。ドローン30c-1が離脱する座標P7への到着目標時刻も同じ方法で定められている。
また、飛行制御情報生成部204は、座標P8への到着目標時刻として、座標P8を含むセルC50_20で終わる分割空域R13の飛行許可期間である期間K13の終了時刻T132よりも所定の時間だけ前の時刻T132´以前の時刻を定めている。この時刻T132´以前に座標P2に到着するということは、飛行を続ければ飛行許可期間である期間K13が終了する前に分割空域R13を抜け出せることになるからである。
また、飛行制御情報生成部204は、合流位置である座標P3から次の目標地点の座標P4に向かう際の並び順/編隊機数である「1/2」(2台のうちの先頭で編隊飛行を行うことを意味する)と、合流位置である座標P4から次の目標地点の座標P5に向かう際の並び順/編隊機数である「1/3」(3台のうちの先頭で編隊飛行を行うことを意味する)とを定めている。
また、飛行制御情報生成部204は、ドローン30b-1が離脱する座標P5からドローン30c-1が離脱する座標P7までの並び順/編隊機数である「1/2」を定めている。こうして飛行制御情報生成部204は、合流後の並び順を含む飛行制御情報を生成する。飛行制御情報生成部204は生成した飛行制御情報を飛行制御情報送信部205に供給する。
飛行制御情報送信部205は、供給された飛行制御情報を、対象となるドローン30に送信する。ドローン30の飛行制御情報取得部301は、送信されてきた飛行制御情報を取得して、取得した飛行制御情報を飛行制御部303に供給する。飛行部302は、自機(自ドローン)を飛行させる機能である。本実施例では、飛行部302は、飛行装置35が備えるローター及び駆動手段等によって自機を飛行させる。
飛行制御部303は、飛行制御情報取得部301から供給された飛行制御情報に基づいて飛行部302を制御し、自機の飛行を制御する飛行制御処理を行う。位置測定部304は、自機の位置を測定し、測定した位置を示す位置情報(例えば緯度・経度の情報)を飛行制御部303に供給する。高度測定部305は、自機の高度を測定し、測定した高度を示す高度情報(例えば高度をcm単位で示す情報)を飛行制御部303に供給する。
方向測定部306は、自機の正面が向いている方向を測定し、測定した方向を示す方向情報(例えば真北を0度とした場合に各方向を360度までの角度で示す情報)を飛行制御部303に供給する。他機距離測定部307は、自機の周辺に存在する他のドローン30と自機との距離を測定する。他機距離測定部307は、例えば、自機の進行方向に存在するドローン30との距離を測定し、測定した距離を示す距離情報を飛行制御部303に供給する。以上で述べた位置情報、高度情報、方向情報、距離情報は、飛行制御部303に所定の時間間隔(例えば1秒毎等)で繰り返し供給される。
飛行制御部303は、前述した飛行制御情報に加え、繰り返し供給されてくる位置情報、高度情報及び方向情報と、他機距離測定部307を備えるドローン30の場合は距離情報とに基づいて自機の飛行を制御する。飛行制御部303は、例えば測定される高度が飛行制御情報の示す飛行高度を維持するように自機の高度を制御する(高度制御)。また、飛行制御部303は、測定される位置の変化、すなわち速度が飛行制御情報の示す飛行速度を維持するように自機の飛行速度を制御する(速度制御)。
また、飛行制御部303は、前の目標地点座標と次の目標地点座標とを結ぶ線上の座標を中心とした矩形(本実施例では正方形)の範囲に自機が収まるように飛行高度及び飛行方向を制御する(空域通過制御)。この矩形は、飛行空域の境界を表しており、飛行空域を進行方向に直交する面で区切った場合の断面であり且つ一辺の長さが飛行空域の空間幅になっている。飛行制御部303は、測定された位置及び高度と、自機の寸法(縦の寸法、横の寸法)とに基づいて、自機がこの矩形の範囲に収まるように制御を行う。
また、飛行制御部303は、目標地点座標が近づいてくると、到着目標時刻よりも早く到着しそうな場合は飛行速度を遅くし、到着目標時刻に間に合わなそうな場合は飛行速度を速くするよう飛行速度を制御する(到着制御)。また、飛行制御部303は、目標地点が合流位置である場合、そこに到着すると、合流位置を含むセルの近辺の待機場所で待機する制御を行う(待機制御)。
待機場所としては、例えば合流位置を含むセルの端の方が用いられたり、そのセルの近辺にある飛行空域として用いられていないセルが用いられたりする。また、飛行制御部303は、待機場所で待機中に周囲のドローン30と無線通信を行って編隊飛行を行う予定の台数(飛行制御情報が示す編隊機数)が揃ったか否かを判断する。飛行制御部303は、合流時刻までに台数が揃ったと判断すると、合流位置から次の目的地点座標に向けた編隊飛行を行うために編隊を形成する制御を行う(編隊形成制御)。
編隊飛行では、他のドローン30を引率する役割を持った親機と、親機に引率されて飛行する役割の子機とが定められる。本実施例では、編隊飛行の配置が進行方向の1番前(先頭)のドローン30が親機で、2番手以降(後続)のドローン30が子機として定められる。飛行制御部303は、自機が親機として定められた場合、自機が出発する旨を他のドローン30(子機)に無線通信で通知してから飛行を開始する。
また、飛行制御部303は、自機が2番手である場合、先頭から出発の通知を受け取ると、それから所定の時間(前のドローン30との間隔が編隊飛行時の間隔まで開かないだけの時間)が経過したときに、自機が出発する旨を他のドローン30に無線通信で通知してから飛行を開始する。以降、各ドローン30の飛行制御部303が自機の順番に置いて同じ制御を行うことで、編隊飛行時の並び順に各ドローン30が飛行を開始して、その結果、各ドローン30が並び順のとおりに並んだ編隊が形成される。
飛行制御部303は、上述した高度制御、速度制御、空域通過制御、到着制御、待機制御及び編隊形成制御という基本的な飛行制御を用いて編隊飛行を行う他のドローン30との合流に関する制御を行う第1制御部331と、第2制御部332と、第3制御部333と、第4制御部334とを備える。そのうちの第1制御部331は、編隊飛行を行う前の合流位置までの飛行と編隊飛行を行った後の目的地までの飛行を制御する。
具体的には、第1制御部331は、目的地までの飛行空域を通過して飛行するよう飛行部302を制御する(目的地飛行制御)。また、第1制御部331は、目的地までの飛行空域を通過する他の飛行体との合流位置が指示された場合、その合流位置までその飛行空域を通過して飛行し、合流位置に到達するとそこで待機するよう飛行部302を制御する(合流飛行制御)。第1制御部331は本発明の「第1飛行制御部」の一例である。
第2制御部332及び第3制御部333は、合流位置からの編隊飛行を制御する。第2制御部332は前述した子機の飛行を制御し、第3制御部333は前述した親機の飛行を制御する。具体的には、第2制御部332は、編隊の引率を指示されなかった(つまり子機と定められた)場合に、合流位置から、他の飛行体との距離を所定の範囲に収めながらその他の飛行体とともに編隊を組んで飛行するよう飛行部302を制御する(追従飛行制御)。第2制御部332は本発明の「第2飛行制御部」の一例である。
この所定の範囲は、編隊飛行時のドローン30同士の間隔を表すので、以下では「編隊飛行間隔」という。編隊飛行間隔としては、例えば距離L1以上で距離L2以下という範囲が用いられる。距離L1としては、例えば前のドローン30が急に減速しても衝突が回避できるよう距離が用いられ、距離L2としては、例えば距離センサが前のドローン30との距離を確実に測定可能な距離が用いられる。この追従飛行制御が行われることで、前方のドローン30が減速した場合及び後続のドローン30の方が速く飛行可能な場合等においても、追従飛行制御が行われない場合に比べてドローン30の追突の可能性を減らすことができる。
第3制御部333は、編隊の引率を指示された(つまり親機と定められた)場合に、編隊を組むドローン30のうち最も遅いドローン30の速度で合流位置から飛行するよう飛行部302を制御する(引率飛行制御)。また、第3制御部333は、引率飛行制御を行っている際に、編隊から引率の対象であったドローン30が離脱した場合、残ったドローン30のうち最も遅いドローン30の速度で飛行するよう飛行部302を制御する。第3制御部333は本発明の「第3飛行制御部」の一例である。
例えば図11の例では、親機であるドローン30a-1の第3制御部333が、座標P3からP4までは、編隊を組んでいる遅い方のドローン30b-1の速度V21に合わせて飛行し、座標P4からP7までは、編隊を組んでいる最も遅いドローン30c-1の速度V31に合わせて飛行させている。このように引率飛行制御が行われることで、引率飛行制御が行われない場合に比べて、後続のドローン30が前方のドローン30についていけなくなることによる編隊の分断が起こりにくいようにすることができる。
第3制御部333は、本実施例では、事業者端末20から送信されてきた飛行制御情報が示す飛行速度に基づいて上記のとおり引率飛行制御を行う。なお、これ以外の方法で引率飛行制御が行われてもよい。例えば、各ドローン30が自機の通常速度を記憶しておき、親機の第3制御部333が、待機時に他のドローン30と無線通信を行って通常速度を示す速度情報を取得する。その場合、第3制御部333は、取得した速度情報が示す通常速度のうち最も遅い速度で飛行するよう飛行部302を制御する。
また、第3制御部333は、例えば風雨等の影響で遅れが生じて現在の飛行速度では飛行許可期間に飛行空域を通過できない場合には、飛行速度を速くするよう飛行部302を制御する。この制御は、上述した到着制御の一例である。これにより、この到着制御を行わない場合に比べて、飛行許可期間を徒過しにくいように(飛行許可期間が過ぎても飛行空域を飛行し続けることが起こりにくいように)することができる。
ただし、単に飛行速度を速くしては、編隊の分断が生じるおそれがある。そこで、第3制御部333は、例えば、後続のドローン30と無線通信を行い、各々が測定した前のドローン30との距離を取得する。第3制御部333は、取得した距離が上述した編隊飛行間隔に収まっている場合は速めた飛行速度を維持し、取得した距離が編隊飛行間隔に収まらなくなった場合は飛行速度を遅くするよう到達制御を行う。これにより、飛行速度を維持し続ける場合に比べて、編隊の分断が起こりにくいようにすることができる。
続いて、合流時刻までに合流位置に到着しないドローン30(これを「遅刻ドローン」という)が存在する場合の制御を説明する。例えば親機と定められたドローン30の第3制御部333は、合流時刻までに合流位置に到着しないドローン30があった場合、そのドローン30とは合流しないで先に出発するよう飛行部302を制御する(先発飛行制御)。この先発飛行制御が行われることにより、遅刻ドローンを待つ場合に比べて、親機である自機が飛行許可期間を徒過しにくいようにすることができる。この場合、合流時刻までに合流位置に到着している子機も合流を待たずに出発することになるので、それらの子機についても飛行許可期間を徒過しにくいようにすることができる。
また、子機と定められたドローン30の第3制御部333は、編隊の先頭となることを指示されていなくても、親機が合流時刻までに合流位置に到着しない場合、自機に編隊の先頭となることが指示されたものとして飛行部302を制御する(親機交代制御)。遅刻ドローンが親機である場合、待機中の子機が何もしなければ親機の到着を待ってからしか出発できないが、それに比べて、親機交代制御が行われることで、親機が合流に遅れた場合において飛行許可期間を徒過しにくいようにすることができる。
第4制御部334は、遅刻ドローンが自機である場合に飛行部302を制御する。第4制御部334は、合流時刻までに自機が合流位置に到着せず、且つ、その合流位置を含む飛行空域を飛行許可期間に通過可能でない場合、その飛行空域とは別の空域を通過して目的地まで飛行するよう飛行部302を制御する(別空域飛行制御)。第4制御部334は本発明の「第4飛行制御部」の一例である。
別の空域としては、例えば、どのドローン30でも自由に飛行してよい空域として定められている共有空域が用いられる。共有空域は、例えば図7等に表す飛行空域とは異なる高度に定められており、待機場所がどこであっても共有空域に移動することができ、目的地がどこであっても共有空域を通過して到達できるようになっている。なお、共有空域の設定はこれに限らず、他の特定のドローン30に割り当てられた飛行空域を含まない空域であれば、それらの飛行空域と同じ高度に定められていてもよい。
第4制御部334は、この別の空域を示す空域情報を予め記憶しておく。第4制御部334は、合流時刻を過ぎてから合流位置に到着した場合、その到着時刻から次の目標地点への到着目標時刻までの期間に現在位置からその目標地点までの距離を飛行可能か否かを、自機の最高速度に基づいて判断する。第4制御部334は、飛行可能でないと判断した場合に、記憶している空域情報が示す空域を経由して目的地に至る飛行を制御する。
この別空域飛行制御が行われることで、合流の遅れにより飛行許可期間を徒過することが確定的になったドローン30であっても、飛行許可期間が過ぎた後に飛行空域を通過して他のドローン30の邪魔になるということもなく、目的地に到達することができる。なお、合流時刻までに自機が合流位置に到着しない場合でも、その合流位置を含む飛行空域を飛行許可期間に通過可能である場合には、第1制御部331が、その飛行空域を通過して目的地まで飛行するよう飛行部302を制御する(後発飛行制御)。
後発飛行制御が行われると、上述した先発飛行制御により先に出発したドローン30に追いつく可能性が生じる。一方、本実施例では、先に出発したドローン30のうちの親機の第3制御部333が、上記の引率飛行制御において用いた最も遅いドローン30の速度としてそのドローン30の最高速度よりも遅い速度(本実施例では通常速度)を用いている。つまり、最も遅いドローン30の速度に合わせつつも、まだ速度を上げる余地が残されている。
この場合に、親機の第3制御部333は、上記のとおり遅刻ドローンと合流しないで出発して、且つ、編隊対象のうち最も遅いドローン30が現在ともに飛行中の編隊に含まれているときには、速度を速めて飛行する制御を引率飛行制御として行う(前述したとおり本実施例では最も遅いドローン30でもあくまで通常速度で飛行しているため速度を上げる余地があり、この制御が可能となっている)。これにより、速度を速めない場合に比べて、後発のドローン30が編隊に追いついて衝突する可能性を減らすことができる。
しかし、この引率飛行制御を行っても、後発のドローン30が編隊に追いつく場合がある。その場合、後発のドローン30の第2制御部332が、自機の第1制御部331の後発飛行制御により前方のドローン30(つまり編隊の最後尾)との距離が編隊飛行間隔まで近づくと、その最後尾との距離を編隊飛行間隔に収めながらその最後尾のドローン30とともに飛行するよう飛行部302を制御する(飛行合流制御)。
図4に表す他機距離測定部307は、前述したように自機の進行方向に存在するドローン30との距離を測定するので、最後尾のドローン30及び後発のドローン30がどちらも飛行空域の中心を飛行していれば、最後尾のドローン30との距離が測定され、飛行合流制御が行われることになる。この飛行合流制御が行われることで、飛行合流制御が行われない場合に比べて、後発のドローン30が編隊の最後尾のドローン30と衝突する可能性を減らすことができる。
図12は目的地及び合流位置までの飛行制御の一例を表す。図12(a)では、図10に表すドローン30a-1が行う飛行制御を表す。ドローン30a-1の第1制御部331は、出発地点の座標P1からドローン30b-1との合流位置の座標P3までとドローン30c-1との合流位置の座標P4までとで合流飛行制御を行う。ドローン30a-1の第3制御部333は、ドローン30b-1と合流した座標P3からドローン30c-1が離脱する座標P7までは、編隊飛行の親機を務めるので引率飛行制御を行う。
このように、ドローン30a-1は、座標P3からP4までの飛行空域で合流飛行制御及び引率飛行制御の両方を行う。これにより、親機であるドローン30a-1は、この飛行空域において子機であるドローン30b-1を引率しつつ、次の合流位置の座標P4に到達するとそこで待機することができる。ドローン30a-1の第1制御部331は、座標P7以降は目的地飛行制御を行う。
図12(b)では、図10に表すドローン30b-1が行う飛行制御を表す。ドローン30b-1の第1制御部331は、出発地点の座標P11からドローン30a-1と合流する座標P3までとドローン30c-1との合流位置の座標P4までとで合流飛行制御を行う。ドローン30b-1の第2制御部332は、座標P3から自機が離脱する座標P5まで追従飛行制御を行う。
このように、ドローン30b-1は、座標P3からP4までの飛行空域で合流飛行制御及び追従飛行制御の両方を行う。これにより、子機であるドローン30b-1は、この飛行空域において親機であるドローン30a-1に追従しつつ、次の合流位置の座標P4に到達するとそこで待機することができる。ドローン30b-1の第1制御部331は、座標P5から目的地の座標P12まで目的地飛行制御を行う。
図12(c)では、図10に表すドローン30c-1が行う飛行制御を表す。ドローン30c-1の第1制御部331は、出発地点の座標P13からドローン30a-1、10b-1との合流位置の座標P4まで合流飛行制御を行う。ドローン30c-1の第2制御部332は、座標P4から自機が離脱する座標P7まで追従飛行制御を行う。ドローン30c-1の第1制御部331は、座標P7から目的地の座標P14まで目的地飛行制御を行う。
ドローン運航管理システム1が備える各装置は、上記の構成に基づいて、ドローン30の飛行空域及び飛行許可期間を割り当てる割当処理を行う。
図13は割当処理における各装置の動作手順の一例を表す。この動作手順は、例えば、ドローン30の運用者が飛行予定を事業者端末20に入力することを契機に開始される。まず、事業者端末20(飛行予定生成部201)は、図5に表すような飛行予定情報を生成する(ステップS11)。
次に、事業者端末20(飛行予定送信部202)は、生成した飛行予定情報をサーバ装置10に送信する(ステップS12)。サーバ装置10(飛行予定取得部101)は、事業者端末20から送信されてきた飛行予定情報を取得する(ステップS13)。続いて、サーバ装置10(空域・期間仮決部102)は、取得された飛行予定情報に基づいて、飛行空域を仮決めし(ステップS21)、飛行許可期間を仮決めする(ステップS22)。
次に、サーバ装置10(編隊飛行判断部103)は、共通の飛行空域が割り当てられたドローン30について上述した編隊飛行に関する判断(編隊飛行の要否、編隊飛行の組合せ、編隊飛行の配置の判断)を行う(ステップS23)。続いて、サーバ装置10(編隊飛行判断部103)は、上述したニアミス・対象拡大が生じないか否かを判断し(ステップS24)、生じる(NO)と判断した場合はステップS21に戻って動作を行う。
ステップS24で生じない(YES)と判断した場合、サーバ装置10(編隊飛行判断部103)は、仮決めしていた飛行空域及び飛行許可期間を正式なものとして確定する(ステップS25)。続いて、サーバ装置10(飛行指示生成部104)は、図10に表すような飛行指示を生成する(ステップS31)。次に、サーバ装置10(飛行指示送信部105)は、生成された飛行指示を事業者端末20に送信する(ステップS32)。事業者端末20(飛行指示取得部203)は、送信されてきた飛行指示を取得する(ステップS33)。
続いて、事業者端末20(飛行制御情報生成部204)は、取得した飛行指示に基づいて、図11に表すような飛行制御情報を生成する(ステップS34)。そして、事業者端末20(飛行制御情報送信部205)は、生成された飛行制御情報を、対象となるドローン30に送信する(ステップS35)。ドローン30(飛行制御情報取得部301)は、送信されてきた飛行制御情報を取得する(ステップS36)。ドローン30は、取得した飛行制御情報に基づいて上述した飛行制御処理を行う(ステップS40)。
図14から図18までは飛行制御処理におけるドローン30の動作手順の一例を表す。まず、ドローン30(第1制御部331)は、次の目標地点が合流位置であれば合流飛行制御を行い、次の目標地点が合流位置以外であれば目的地飛行制御を行う(ステップS411)。次に、ドローン30(第1制御部331)は、目標地点に到着したか否かを判断し(ステップS412)、到着していない(NO)と判断するとステップS411に戻る。
ドローン30(飛行制御部303)は、目標地点に到着した(YES)と判断すると、目標地点が合流位置であるか否かを判断し(ステップS413)、合流位置である(YES)と判断した場合には近辺の待機場所で待機する待機制御を行う(ステップS414)。ドローン30(飛行制御部303)は、合流位置でない(NO)と判断した場合には、さらに、目標地点が最終目的地であるか否かを判断する(ステップS415)。
ドローン30(飛行制御部303)は、ステップS415において最終目的地でない(NO)と判断した場合には、次の目標地点への飛行を開始して(ステップS416)、ステップS411に戻って動作を継続する。また、ドローン30(飛行制御部303)は、ステップS415において最終目的地である(YES)と判断した場合には、飛行制御処理の動作手順を終了する。
ドローン30(飛行制御部303)は、ステップS414で待機制御を行うと、合流時刻になったか否かを判断し(ステップS421)、合流時刻になった(YES)と判断するまでステップS421の動作を繰り返す。ドローン30(飛行制御部303)は、合流時刻になった(YES)と判断すると、次に、合流時刻に自機は間に合ったか否かを判断し(ステップS422)、間に合った(YES)と判断すると、続いて合流時刻に他機は間に合ったか否かを判断する(ステップS423)。
ドローン30(飛行制御部303)は、ステップS422、S423ともYESと判断すると、今度は、自機が親機であるか否かを判断する(ステップS431)。ドローン30(第1制御部331)は、自機が親機である(YES)と判断した場合は、編隊形成制御を行い(ステップS432)、引率飛行制御を行う(ステップS433)。ドローン30(第2制御部332)は、自機が親機でない(NO)、つまり自機が子機と判断した場合は、編隊形成制御を行い(ステップS434)、追従飛行制御を行う(ステップS435)。
ドローン30(飛行制御部303)は、ステップS433又はS435の後は、目標地点に到着したか否かという判断(ステップS436)を到着した(YES)と判断するまで繰り返し行い、到着した(YES)と判断すると、図14のステップS413(合流位置か否かの判断)に戻って動作を行う。ドローン30(飛行制御部303)は、図15のステップS422において合流時刻に自機が間に合わなかった(NO)と判断した場合には、次に、これから割り当てられた飛行空域を飛行すると飛行許可期間を徒過するか否かを判断する(ステップS441)。
ドローン30(第4制御部334)は、図17のステップS441において徒過する(YES)と判断した場合には、別の空域を通過して目的地に向かう別空域飛行制御を行い(ステップS442)、目的地に到達したところでこの動作手順を終了する。ドローン30(第1制御部331)は、徒過しない(NO)と判断した場合には、合流時刻には遅れたが飛行空域を通過して目的地に向かう後発飛行制御を行う(ステップS443)。次に、ドローン30(飛行制御部303)は、前方を飛行するドローン30に追いついたか否かを判断する(ステップS444)。
ドローン30(第2制御部332)は、ステップS444において追いついた(YES)と判断した場合には、前方のドローン30と合流して編隊飛行に入る飛行合流制御を行う(ステップS445)。ドローン30(飛行制御部303)は、ステップS444において追いついていない(NO)と判断した場合と、ステップS445の動作を行った場合のいずれの場合も、目標地点に到着したか否かという判断(ステップS446)を到着した(YES)と判断するまで繰り返し行い、到着した(YES)と判断すると、図14のステップS413(合流位置か否かの判断)に戻って動作を行う。
ドローン30(飛行制御部303)は、図15のステップS423において合流時刻に他機が間に合わなかった(NO)と判断した場合には、次に、自機が親機であるか否かを判断する(ステップS451)。ドローン30(第3制御部333)は、自機が親機である(YES)と判断すると、遅れているドローン30を待たずに先に出発する先発飛行制御を行う(ステップS452)。ドローン30(飛行制御部303)は、図18のステップS451において自機が親機でない(NO)、すなわち自機が子機であると判断すると、さらに、遅れているドローン30が親機であるか否かを判断する(ステップS453)。
ドローン30(第3制御部333)は、遅れているドローン30が親機である(YES)と判断すると、子機である自機が親機と交代する親機交代制御を行う(ステップS454)。ドローン30(飛行制御部303)は、ステップS453において遅れているドローン30が親機でない(NO)と判断した場合と、ステップS452、S454の動作を行った場合のいずれの場合も、図16のステップS431(自機が親機か否かの判断)に戻って動作を行う。
[2]変形例
上述した実施例は本発明の実施の一例に過ぎず、以下のように変形させてもよい。
[2-1]飛行空域
割当部106は、実施例では、立方体のセルを用いて飛行空域を割り当てたが、これとは異なる方法で飛行空域を割り当ててもよい。割当部106は、例えば、立方体ではなく直方体のセルを用いてもよいし、円柱の形をしたセルの軸を進行方向に沿うように並べて飛行空域としてもよい。また、割当部106は、セルではなく、飛行空域の境界となる点、線、面を空間座標上の数式及び範囲で表すことで飛行空域を割り当ててもよい。
また、割当部106は、実施例では図6に表すように一定の高さのセルだけを含む飛行空域を割り当てたが、高さの異なるセルを含む飛行空域(鉛直方向の移動を含む飛行空域)を割り当ててもよい。また、割当部106は、実施例では東西南北を進行方向とする飛行空域を割り当てたが、その他の方向(北北東、西南西など)を進行方向とする飛行空域を割り当ててもよいし、斜めに上昇又は下降する飛行空域を割り当ててもよい。要するに、割当部106は、ドローン30が飛行可能な空域であればどのような空域を飛行空域として割り当ててもよい。
[2-2]他機の距離の測定方法
ドローン30の他機距離測定部307は、実施例と異なる方法で他のドローン30と自機との距離を測定してもよい。例えばドローン30が撮影装置を備えている場合に、そのドローン30の他機距離測定部307が、自機の前又は後ろを飛行するドローン30の寸法を示す寸法情報を予め記憶しておき、撮影した画像に写っているドローン30を認識して、画像内の寸法と実際の寸法との関係から距離を測定してもよい。
また、ドローン30が電波を受信してその受信強度を測定するセンサを備えている場合に、そのドローン30の他機距離測定部307が、他のドローン30が定期的に発信する電波(ビーコン)の受信強度に応じた距離をそのドローン30と自機との距離として測定してもよい。また、ドローン30同士が互いに通信可能な機能を有している場合に、他機距離測定部307が、他方のドローン30から位置情報を取得し、その位置情報が示す位置と自機の位置測定部304が測定した位置との距離をそのドローン30と自機との距離として測定してもよい。
[2-3]飛行体
実施例では、自律飛行を行う飛行体として回転翼機型の飛行体が用いられたが、これに限らない。例えば飛行機型の飛行体であってもよいし、ヘリコプター型の飛行体であってもよい。また、自律飛行の機能も必須ではなく、割り当てられた飛行空域を割り当てられた飛行許可期間に飛行することができるのであれば、例えば遠隔から操縦者によって操作されるラジオコントロール型(無線操縦型)の飛行体が用いられてもよい。
なお、編隊飛行機能については、実施例がそうであるように全ての飛行体が備えている必要はないが、少なくとも1以上の飛行体が備えている必要がある。例えば前述したラジオコントロール型の飛行体は通常は編隊飛行機能を有しないが、この飛行体を先頭で飛行させて後ろに編隊飛行機能を有するドローン30を配置することで編隊飛行を行うことができる。
[2-4]各部を実現する装置
図4に表す各機能を実現する装置が図4とは異なっていてもよい。例えばサーバ装置10が備える機能(例えば飛行指示生成部104)を事業者端末20が備えていてもよいし、事業者端末20が備える機能(例えば飛行予定生成部201)をサーバ装置10が備えていてもよい。また、サーバ装置10が備える各機能を2以上の装置がそれぞれ実現してもよい。要するに、ドローン運航管理システム全体としてこれらの機能が実現されていれば、ドローン運航管理システムが何台の装置を備えていてもよい。
[2-5]発明のカテゴリ
本発明は、サーバ装置10及び事業者端末20という情報処理装置と、ドローン30という飛行体の他、それらの装置及び飛行体を備えるドローン運航管理システムのような情報処理システムとしても捉えられる。また、本発明は、各装置が実施する処理を実現するための情報処理方法としても捉えられるし、各装置を制御するコンピュータを機能させるためのプログラムとしても捉えられる。このプログラムは、それを記憶させた光ディスク等の記録媒体の形態で提供されてもよいし、インターネット等のネットワークを介してコンピュータにダウンロードさせ、それをインストールして利用可能にするなどの形態で提供されてもよい。
[2-6]処理手順等
本明細書で説明した各実施例の処理手順、シーケンス、フローチャートなどは、矛盾がない限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
[2-7]入出力された情報等の扱い
入出力された情報等は特定の場所(例えばメモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
[2-8]ソフトウェア
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)などの有線技術及び/又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
[2-9]情報、信号
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
[2-10]システム、ネットワーク
本明細書で使用する「システム」及び「ネットワーク」という用語は、互換的に使用される。
[2-11]「に基づいて」の意味
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
[2-12]「及び」、「又は」
本明細書において、「A及びB」でも「A又はB」でも実施可能な構成については、一方の表現で記載された構成を、他方の表現で記載された構成として用いてもよい。例えば「A及びB」と記載されている場合、他の記載との不整合が生じず実施可能であれば、「A又はB」として用いてもよい。
[2-13]態様のバリエーション等
本明細書で説明した各実施例は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。従って、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。