(57)【要約】【課題】飛行体を適切に制御すること。【解決手段】一実施形態に係るコンピュータシステムは、少なくとも一つのプロセッサを備え、少なくとも一つのプロセッサが、飛行体の飛行経路に位置する第１情報点に対応して参照可能であり、且つ飛行経路において第１情報点よりも後に位置する第２情報点での飛行体の飛行を制御するための制御情報を含む制御データに基づいて、飛行経路上での飛行体を制御する。【選択図】図５
2020160634.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのプロセッサを備え、
前記少なくとも一つのプロセッサが、飛行体の飛行経路に位置する第１情報点に対応して参照可能であり、且つ前記飛行経路において前記第１情報点よりも後に位置する第２情報点での前記飛行体の飛行を制御するための制御情報を含む制御データに基づいて、前記飛行経路上での前記飛行体を制御する、
コンピュータシステム。
【請求項２】
前記少なくとも一つのプロセッサが、前記飛行経路上に位置するすべての情報点の前記制御情報を一度に取得することなく、前記制御データに基づいて前記飛行体を制御する、
請求項１に記載のコンピュータシステム。
【請求項３】
前記少なくとも一つのプロセッサが、前記飛行体が前記第２情報点に到達する前に、前記制御情報に基づいて前記飛行体を制御し始める、
請求項１または２に記載のコンピュータシステム。
【請求項４】
前記少なくとも一つのプロセッサが、前記飛行体が前記第１情報点に接近したことに応答して、前記制御データに基づいて前記飛行体を制御する、
請求項１〜３のいずれか一項に記載のコンピュータシステム。
【請求項５】
前記少なくとも一つのプロセッサが、
複数の情報点から、前記飛行体の位置に最も近い一つの情報点を前記第１情報点として選択し、
前記第１情報点と関連付けられた前記第２情報点の前記制御情報に基づいて前記飛行体を制御する、
請求項１〜４のいずれか一項に記載のコンピュータシステム。
【請求項６】
前記制御データでは、前記第１情報点と、前記飛行経路において前記第１情報点よりも前に位置するトリガー情報点とがさらに関連付けられ、
前記少なくとも一つのプロセッサが、
複数の情報点から、前記飛行体の位置に最も近い一つの情報点をトリガー情報点として選択し、
前記トリガー情報点に関連付けられた第１情報点を特定し、
前記飛行体が前記第１情報点に接近したことに応答して、前記第１情報点と関連付けられた前記第２情報点の前記制御情報に基づいて前記飛行体を制御する、
請求項１〜４のいずれか一項に記載のコンピュータシステム。
【請求項７】
飛行体の飛行経路に位置する第１情報点を一意に特定する第１情報点ＩＤと、
前記飛行経路において前記第１情報点よりも後に位置する第２情報点を一意に特定する第２情報点ＩＤと、
前記第２情報点での前記飛行体の飛行を制御するための制御情報と
を含み、
前記第１情報点ＩＤ、前記第２情報点ＩＤ、および前記制御情報が互いに関連付けられ、
プロセッサに、
前記第１情報点ＩＤを参照させ、
参照された前記第１情報点ＩＤに関連付けられた前記第２情報点ＩＤを参照させ、
参照された前記第２情報点ＩＤに関連付けられた前記制御情報を参照させ、
参照された前記制御情報に基づいて、前記飛行経路上での前記飛行体を制御させる、
データ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の一側面はコンピュータシステムおよび／またはデータ構造に関する。
【背景技術】
【０００２】
従来から、飛行体を制御するための技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１７４４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示の一側面は、飛行体を適切に制御することを目的とする。
【課題を解決するための手段】
【０００５】
本開示の一側面に係るコンピュータシステムは、少なくとも一つのプロセッサを備え、少なくとも一つのプロセッサが、飛行体の飛行経路に位置する第１情報点に対応して参照可能であり、且つ飛行経路において第１情報点よりも後に位置する第２情報点での飛行体の飛行を制御するための制御情報を含む制御データに基づいて、飛行経路上での飛行体を制御する。
【図面の簡単な説明】
【０００６】
【図１】制御領域の一例を示す図である。
【図２】先読み制御の一例を示す図である。
【図３】先読み制御の別の例を示す図である。
【図４】飛行経路の交差および重複の様々な例を示す図である。
【図５】実施形態に係る飛行制御システムの機能構成の一例を示す図である。
【図６】実施形態に係るサーバのハードウェア構成の一例を示す図である。
【図７】制御データの一例を示す図である。
【図８】制御データの別の例を示す図である。
【図９】制御データのさらに別の例を示す図である。
【図１０】制御データのさらに別の例を示す図である。
【図１１】制御データのさらに別の例を示す図である。
【図１２】制御データのさらに別の例を示す図である。
【図１３】実施形態に係る飛行制御システムの動作の一例を示すフローチャートである。
【図１４】実施形態に係る飛行制御システムの動作の別の例を示すフローチャートである。
【図１５】実施形態に係る飛行制御システムの動作のさらに別の例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【０００８】
［システムの概要］
実施形態に係る飛行制御システム１は飛行体を制御するコンピュータシステムである。飛行体とは、空中を移動することが可能な人工物のことをいう。飛行体の種類は限定されず、例えば有人航空機でもよいし無人航空機（ドローン）でもよい。飛行体の制御方法は限定されず、例えば、飛行制御システム１は飛行体の進行方向または速度を変更してもよいし、飛行体を離着陸させてもよいし、飛行体を空中で停止させてもよい。
【０００９】
飛行制御システム１はウェイポイント間に設定される制御領域に沿って飛行体を飛行させてもよい。ウェイポイント（ＷＰ）とは、飛行体の飛行経路を決定するために設定される位置のことをいい、飛行体が通過すべき位置（すなわち通過点）ともいうことができる。制御領域とは、飛行体を制御させるために設定される３次元空間の範囲のことをいう。制御領域の外縁（すなわち境界）は仮想的に設定される。制御領域は、隣り合う二つのウェイポイントの間に設定される。飛行経路は３以上のウェイポイントを含んで構成されてもよく、この場合には、二つのウェイポイント間の制御領域の組合せまたは連結により、飛行経路の全体に対応する制御領域が形成される。飛行体は制御領域に沿って複数のウェイポイントを順次経由する。
【００１０】
飛行体の特性、気象状況などの様々な要因で、飛行体にとっては、ウェイポイント間を結ぶ仮想線からずれることなく飛行することが難しい場合がある。常にその仮想線上を飛行するように飛行体を制御しようとすると、その制御のために飛行体の電力が著しく消費されてしまう。飛行体の電池を長持ちさせるためには、制御領域を設定することで飛行体にある程度の飛行の自由度を持たせた方が便宜である。
【００１１】
ウェイポイント間には少なくとも一つの情報点が設定され得る。情報点とは、二つのウェイポイント間を結ぶ仮想線上に設定される仮想点のことをいう。情報点は飛行体の飛行経路に位置するということもできる。情報点は飛行体を制御するために用いられる。例えば、情報点は飛行体の飛行（例えば、進行、空中での停止、飛行速度など）を制御するために用いられてもよいし、飛行体に搭載された機器を制御するために用いられてもよい。あるいは、情報点は制御領域を定義するために用いられてもよい。なお、ウェイポイント間を結ぶ仮想線の形状は直線でも曲線でもよく、あるいは、直線と曲線との組合せでもよい。情報点はウェイポイント上に設定されてもよい。隣り合う情報点の間隔は任意に設定されてよく、例えば、一定であってもよいし、場所に応じて異なってもよい。一例では、情報点間の間隔は、障害物が少なく飛行体が高速で移動可能な場所（例えば平原、山岳地帯など）であれば長く、障害物が多く飛行体が低速で移動すべき場所（例えば市街地）では短くてもよい。
【００１２】
図１は制御領域の一例を示す図であり、具体的には、飛行経路５０の少なくとも一部を構成する三つのウェイポイント５１，５２，５３に対応する二つの制御領域６１，６２を示す。制御領域６１はウェイポイント５１，５２間を結ぶように設定され、制御領域６２はウェイポイント５２，５３間を結ぶように設定される。飛行体３０は、ウェイポイント５１，５２，５３をこの順で通過したり、逆の順序でこれらのウェイポイントを通過したりすることができる。図１は、ウェイポイント５１，５２間に設定された複数の情報点７１と、ウェイポイント５２，５３間に設定された複数の情報点７２とをさらに示す。制御領域６１はそれぞれの情報点７１によって定義されてもよく、制御領域６２はそれぞれの情報点７２によって定義されてもよい。図１の例では、制御領域６１，６２の形状がいずれも六角柱であるが、その断面形状は限定されず、例えば円でもよいし楕円でもよい。
【００１３】
本実施形態では、少なくとも一部の情報点は、飛行体３０を制御するための制御情報と関連付けられる。制御情報を持たない情報点が存在してもよい。制御情報は、情報点での飛行体３０の制御に関する内容を示す情報またはデータ項目である。例えば、制御情報は、飛行体３０の飛行を制御するための情報、および飛行体３０に搭載された機器を制御するための情報の少なくとも一方を含んでもよい。
【００１４】
飛行体３０が或る情報点またはその付近まで到達したときに初めて該情報点の制御情報に基づいて該飛行体３０を制御しようとすると、その制御が間に合わない可能性がある。例えば、飛行体３０の速度を規定値まで増加または減少させる場合に、その速度制御が間に合わない可能性がある。あるいは、飛行体３０に搭載されているカメラの向きを変える場合に、その方向の制御が間に合わない可能性がある。飛行体３０が或る情報点に到達した時点では該飛行体３０が既に該情報点の制御情報に基づいて作動していることを目指して、飛行制御システム１は該情報点の制御情報を先読みし、その制御情報に基づいて飛行体３０を制御する。本開示ではこのような制御を「先読み制御」ともいう。「先読み」とは、或る情報点に関連付けられた制御情報を、飛行体３０が該情報点に到達する前に取得することをいう。なお、飛行体３０またはその周辺の状況によっては、該情報点に到達した時点で実際に該飛行体３０がその制御情報に完全に従っているとは限らないことに留意されたい。例えば、風などの影響によって、飛行速度が、指定された情報点において、該情報点の制御情報で示される制限速度をまだ上回っている可能性がある。
【００１５】
より具体的には、飛行制御システム１は、飛行体３０が飛行経路を飛行している間に、該飛行経路上に位置する情報点の制御情報を先読みし、その制御情報に基づいて該飛行体３０を制御する。したがって、飛行制御システム１は、飛行経路上に位置するすべての情報点の制御情報を一度に取得することなく、その先読み制御を実行する。言い換えると、飛行制御システム１は、飛行体３０が飛行経路を飛行している間に、必要な制御情報を随時取得しながら該飛行体３０を制御する。
【００１６】
図２は先読み制御の一例を示す図である。この例は、既にウェイポイント５１を通過した飛行体３０が時速６０ｋｍ／ｈでウェイポイント５２に向かっている状況を示す。ウェイポイント５１，５２の間には情報点７１ａ，７１ｂ，７１ｃが存在し、情報点７１ｃには４０ｋｍ／ｈの制限速度が制御情報として関連付けられているものとする。
【００１７】
この例では、飛行制御システム１は、飛行体３０が情報点７１ｃに到達する前に、その制御情報に基づいて飛行体３０を制御し始める。具体的には、飛行制御システム１は、飛行体３０が情報点７１ｃを通過する時点で飛行速度が４０ｋｍ／ｈになるように該飛行体３０を制御する。例えば、飛行制御システム１は、飛行経路において情報点７１ｃよりも前に位置する情報点７１ａまたは情報点７１ｂ（または情報点７１ａより前に位置する別の情報点）に飛行体３０が到達したタイミングで情報点７１ｃの制御情報を先読みし、飛行体３０が情報点７１ｃに到達する前の時点から飛行体３０を減速させ始める。
【００１８】
ここで、「飛行経路において情報点Ａが情報点Ｂよりも前に位置する」とは、飛行経路に沿って見た場合に、該飛行経路の始点から情報点Ａまでの距離が、該始点から情報点Ｂまでの距離よりも短いことをいう。「飛行経路において情報点Ｂが情報点Ａよりも後に位置する」も同じ状況を示す。
【００１９】
図３は先読み制御の別の例を示す図である。この例は、ウェイポイント５４とウェイポイント５５とを結ぶ飛行経路と、ウェイポイント５６とウェイポイント５７とを結ぶ飛行経路とが交差する状況を示す。飛行体３０１はウェイポイント５４からウェイポイント５５に向かっており、飛行体３０２はウェイポイント５６からウェイポイント５７に向かっているものとする。ウェイポイント５４，５５の間には情報点７３ａ，７３ｂ，７３ｃ，７３ｄが存在し、情報点７３ｂには一時停止を示す制御情報が関連付けられているものとする。ウェイポイント５６，５７の間には情報点７４ａ，７４ｂ，７４ｃが存在し、情報点７４ｂにはセンサの向きに関する制御情報が関連付けられているものとする。
【００２０】
この例では、飛行制御システム１は、飛行体３０１が情報点７３ｂに到達する前に情報点７３ｂの制御情報に基づいて飛行体３０を制御し始め、飛行体３０２が情報点７４ｂに到達する前に情報点７４ｂの制御情報に基づいて飛行体３０を制御し始める。具体的には、飛行制御システム１は、交差領域８１の近くに位置する情報点７３ｂで飛行体３０１が停止するように飛行体３０１を制御し、該交差領域８１の近くに位置する情報点７４ｂで飛行体３０２のセンサが指定の方向を向くように飛行体３０２を制御する。飛行制御システム１は、飛行経路において情報点７３ｂよりも前に位置する情報点７３ａ（または情報点７３ａより前に位置する別の情報点）に飛行体３０１が到達したタイミングで情報点７３ｂの制御情報を先読みし、飛行体３０１が情報点７３ｂに到達する前の時点から飛行体３０１を減速させ始める。また、飛行制御システム１は、飛行経路において情報点７４ｂよりも前に位置する情報点７４ａ（または情報点７４ａより前に位置する別の情報点）に飛行体３０２が到達したタイミングで情報点７４ｂの制御情報を先読みし、飛行体３０２が情報点７４ａに到達する前の時点から飛行体３０１のセンサの向きを制御し始める。
【００２１】
図４は飛行経路の交差または重複の様々な例を示す。図４の例（ａ）は、二つの飛行経路５０１，５０２の合流に対応する交差領域８２を示す。図４の例（ｂ）は、飛行体３０の飛行高度がＨａとＨｂとの間で変わる二つの飛行経路５０３，５０４の共通部分に対応する重複領域８３を示す。図４の例（ｃ）は、ラウンドアバウトのような共通部分に対応する重複領域８４を示す。これらの３例においても、「ＷＰ」はウェイポイントを示し、黒点は情報点を示す。このように、交差および重複の態様は様々であり、特定の態様に限定されるものではない。
【００２２】
［システムの構成］
図５は、飛行制御システム１の機能構成の一例を示す図である。図５に示すように、本実施形態では、飛行制御システム１はサーバ１０、データベース２０、および飛行体３０を備える。サーバ１０は、飛行体３０を制御するためのコンピュータである。より具体的には、サーバ１０は、飛行体３０に指示データを送信することで、飛行体３０が制御領域に基づいて飛行するように飛行体３０を先読み制御する。データベース２０はその先読み制御のために用いられる制御データ２１を記憶する装置である。制御データ２１および指示データのいずれも、コンピュータが読み取ることが可能な電子データであり、飛行体３０を制御するために必要なデジタル情報を含む。飛行体３０は、サーバ１０からの指示データに基づいて飛行することが可能である。サーバ１０、データベース２０、および飛行体３０は有線または無線の通信ネットワークを介してデータを送受信することができる。例えば、サーバ１０は通信ネットワークを介して、データベース２０から制御データ２１を読み出したり、飛行体３０に指示データを送信したりすることができる。
【００２３】
サーバ１０は機能モジュールとして位置取得部１１、制御決定部１２、および通信部１３を備える。位置取得部１１は飛行体３０の位置を示す位置情報を取得する機能要素である。制御決定部１２は先読み制御に関する処理を制御データ２１に基づいて実行し、飛行体３０を制御するための指示データを必要に応じて用意する機能モジュールである。この指示データは、飛行体３０を制御するために用いられる。通信部１３は、その指示データを出力する機能モジュールである。飛行体３０はその指示データに従って飛行することができる。
【００２４】
図６は、サーバ１０のハードウェア構成の一例を示す。例えば、サーバ１０は制御回路１００を有する。一例では、制御回路１００は、一つまたは複数のプロセッサ１０１と、メモリ１０２と、ストレージ１０３と、通信ポート１０４と、入出力ポート１０５とを有する。プロセッサ１０１はオペレーティングシステムおよびアプリケーションプログラムを実行する。ストレージ１０３はハードディスク、不揮発性の半導体メモリ、または取り出し可能な媒体（例えば、磁気ディスク、光ディスクなど）の記憶媒体で構成され、オペレーティングシステムおよびアプリケーションプログラムを記憶する。メモリ１０２は、ストレージ１０３からロードされたプログラム、またはプロセッサ１０１による演算結果を一時的に記憶する。一例では、プロセッサ１０１は、メモリ１０２と協働してプログラムを実行することで、上記の各機能モジュールとして機能する。通信ポート１０４は、プロセッサ１０１からの指令に従って、通信ネットワークＮＷを介して他の装置（例えばデータベース２０または飛行体３０）との間でデータ通信を行う。入出力ポート１０５は、プロセッサ１０１からの指令に従って、キーボード、マウス、モニタなどの入出力装置（ユーザインタフェース）との間で電気信号の入出力を実行する。
【００２５】
サーバ１０は一つまたは複数のコンピュータにより構成され得る。複数のコンピュータが用いられる場合には、通信ネットワークを介してこれらのコンピュータが互いに接続されることで論理的に一つのサーバ１０が構成される。
【００２６】
サーバ１０として機能するコンピュータは限定されない。例えば、サーバ１０は業務用サーバなどの大型のコンピュータで構成されてもよいし、パーソナルコンピュータや携帯端末（例えばスマートフォン、タブレット端末など）などの小型のコンピュータで構成されてもよい。
【００２７】
［制御データのデータ構造］
サーバ１０により参照される制御データ２１は、飛行体３０の飛行経路に位置する第１情報点に対応して参照可能であり、且つ該飛行経路において該第１情報点よりも後に位置する第２情報点での飛行体３０の飛行を制御するための制御情報を含む。より具体的には、制御データ２１は、飛行体３０の飛行経路に位置する第１情報点と、該飛行経路において該第１情報点よりも後に位置する第２情報点での飛行体３０の飛行を制御するための制御情報とが関連付けられたデータである。本開示では、「第２情報点での飛行体３０の飛行を制御するための制御情報」を単に「第２情報点の制御情報」ともいう。第２情報点の制御情報が第１情報点に対応して参照可能であるとは、第１情報点に関する情報を参照することで第２情報点の制御情報を参照できることをいう。
【００２８】
制御データ２１の具体的なデータ構造は限定されず、任意の手法で実装されてよい。一例では、隣接する二つのウェイポイント間の制御領域を示す制御データのデータ構造は、二つのウェイポイントのそれぞれのウェイポイントＩＤと、少なくとも一つの情報点に関する情報点データとを含む。ウェイポイントＩＤはウェイポイントを一意に特定する識別子である。一例では、一つの情報点に対応する情報点データは、情報点を一意に特定する識別子である情報点ＩＤと、該情報点の地理的位置を示す座標とを含む。一つの情報点（第１情報点）の情報点ＩＤは、飛行体３０の飛行経路において該情報点（第１情報点）よりも後に位置する別の情報点（第２情報点）の制御情報と関連付けられ得る。一部の情報点に関してこの関連付けが為されなくてもよい。
【００２９】
図７〜図１２はいずれも、隣接する二つのウェイポイント「ＷＰ０００」，「ＷＰ００１」間の１以上の情報点を示す制御データ２１の例を示す図である。これらの例ではいずれも、飛行経路において情報点「Ｉ００１」の後に情報点「Ｉ００２」が位置し、情報点「Ｉ００２」の後に情報点「Ｉ００３」が位置するものとする。したがって、情報点「Ｉ００１」を第１情報点とすると、情報点「Ｉ００２」，「Ｉ００３」が第２情報点になり得る。情報点「Ｉ００２」を第１情報点とすると、情報点「Ｉ００３」が第２情報点になり得る。図７〜図９に示す制御情報は制限速度に関する情報を含み、図１０〜図１２に示す制御情報は空中での停止（いわゆるホバリング）に関する情報を含む。
【００３０】
図７の例では、それぞれの情報点に関する情報点データは、情報点ＩＤと、情報点の座標と、目標情報点ＩＤと、制御情報とを含む。目標情報点ＩＤは飛行体３０の制御の目標として設定される情報点（第２情報点）のＩＤである。この例では、第１情報点「Ｉ００１」と第２情報点「Ｉ００３」の制御情報とが関連付けられ、第１情報点「Ｉ００２」と第２情報点「Ｉ００３」の制御情報とが関連付けられる。或る一つの情報点について、目標情報点ＩＤおよび制御情報の少なくとも一つが設定されないことがあり得る。その一方で、一つの情報点が第１情報点および第２情報点の双方の役割を持つこともあり得、この場合には、該情報点について目標情報点ＩＤおよび制御情報の双方が設定される。飛行体３０の属性、状況などに応じて、第２情報点の制御情報に基づく制御開始のタイミングが異なり得ることを考慮して、第２情報点の制御情報は複数の第１情報点に関連付けて定義されてもよい。図７の例は、その考慮に基づく制御データの一例である。
【００３１】
図８の例では、それぞれの情報点に関する情報点データは、情報点ＩＤと、情報点の座標と、読取り情報点ＩＤと、目標情報点ＩＤと、制御情報とを含む。読取り情報点ＩＤは第１情報点のＩＤを示す。本開示では、読取り情報点ＩＤを参照するために設定される情報点を「トリガー情報点」という。この例では、トリガー情報点「Ｉ００１」と第１情報点「Ｉ００２」が関連付けられ、第１情報点「Ｉ００２」と第２情報点「Ｉ００３」の制御情報とが関連付けられる。したがって、トリガー情報点「Ｉ００１」と第２情報点「Ｉ００３」とは第１情報点「Ｉ００２」を介して間接的に関連付けられる。或る一つの情報点について、読取り情報点ＩＤ、目標情報点ＩＤ、および制御情報の少なくとも一つが設定されないことがあり得る。その一方で、一つの情報点がトリガー情報点、第１情報点、および第２情報点のうちの少なくとも二つの役割を持つこともあり得、この場合には、該情報点について読取り情報点ＩＤ、目標情報点ＩＤ、および制御情報のうちの少なくとも二つが設定される。
【００３２】
図９の例では、それぞれの情報点に関する情報点データは、情報点ＩＤと、情報点の座標と、目標情報点（第２情報点）の情報である目標情報とを含む。目標情報は、目標情報点のＩＤと、該目標情報点の制御情報とを示すデータ項目である。この例では、第１情報点「Ｉ００２」と第２情報点「Ｉ００３」の制御情報とが関連付けられる。目標情報が設定されない情報点が存在し得る。
【００３３】
図１０、図１１、および図１２に示すデータ構造は、制御情報を除いて、それぞれ図７、図８、図９と同じである。図１０〜図１２の例では、制御情報は、飛行体３０の何らかの制御が必要な注意領域を一意に特定する注意領域ＩＤを含む。注意領域のデータ構造は、注意領域ＩＤと、注意領域の種別（必要な制御の種別）と、注意領域の地理的範囲を定義する複数の座標とを含む。図１０〜図１２では情報点および注意領域の関係が正規化されているが、この関係を非正規化して、情報点データに注意領域の詳細情報を含めてもよい。注意領域の地理的範囲の仮想的な形状は限定されず、例えば、２次元形状、３次元形状、線、または点であってもよい。
【００３４】
図７および図１０のデータ構造を用いる場合には、飛行制御システム１はまず第１情報点を参照し、次にその第１情報点に関連付けられた第２情報点の制御情報を参照する。本開示ではこの手法を便宜的に「１段階参照」という。図８および図１１のデータ構造を用いる場合には、飛行制御システム１はまずトリガー情報点を参照し、次にそのトリガー情報点に関連付けられた第１情報点を参照し、さらにその第１情報点に関連付けられた第２情報点の制御情報を参照する。本開示ではこの手法を便宜的に「２段階参照」という。図９および図１２のデータ構造を用いる場合には、飛行制御システム１は第１情報点のデータ内に記述された第２情報点の制御情報を参照する。本開示ではこの手法を便宜的に「直接参照」という。
【００３５】
トリガー情報点、第１情報点、および第２情報点の位置関係は限定されない。例えば、トリガー情報点と第１情報点との間に少なくとも一つの情報点が存在してもよく、第１情報点と第２情報点との間に少なくとも一つの情報点が存在してもよい。
【００３６】
上述したように飛行体の制御方法は限定されず、したがって、制御情報の具体的なデータ項目およびデータ構造は図７〜図１２の例に限定されず、任意の形式で定義されてよい。例えば、制御情報は複数種類の制御に関する情報（例えば、制限速度とセンサの向きとを示す情報）を含んでもよい。いずれにしても、制御データ２１は、飛行体３０の飛行経路に位置する第１情報点と、該飛行経路において該第１情報点よりも後に位置する第２情報点の制御情報とを関連付ける。飛行制御システム１はこの制御データ２１を参照することで、飛行体３０が第２情報点に到達する前から、第２情報点での要求に合わせて飛行体３０を制御し始めることができる。
【００３７】
制御データ２１内の制御情報は静的に設定されてもよいし、動的に設定されてもよい。「静的に設定される」とは、制御情報が予め設定され、人手の介入がない限りはその設定が変更されないことをいう。一方、「動的に設定される」とは、制御情報が任意の事象に応じて人手の介入無しに変更され得ることをいう。動的な設定は、制御情報を制御するプログラムが所定のコンピュータ上で実行されることで実現される。動的な設定は飛行制御システム１により実行されてもよいし、別のコンピュータシステムにより実行されてもよい。
【００３８】
［システムでの処理手順］
図１３〜図１５を参照しながら、飛行制御システム１の動作を説明するとともに本実施形態に係る飛行体の制御方法を説明する。図１３〜図１５はいずれも、飛行制御システム１の動作の一例を示すフローチャートである。図１３は１段階参照（図７および図１０）の場合の処理を処理フローＳ１として示す。図１４は２段階参照（図８および図１１）の場合の処理を処理フローＳ２として示す。図１５は直接参照（図９および図１２）の場合の処理を処理フローＳ３と示す。
【００３９】
図１３を参照しながら処理フローＳ１を説明する。ステップＳ１１では、位置取得部１１が飛行体３０の位置（典型的には、現在位置）を取得する。飛行体３０の位置を特定する手法は限定されない。例えば、位置取得部１１は飛行体３０から受信する位置情報に基づいて位置を特定してもよいし、飛行体３０を監視する任意の監視装置から受信する情報に基づいて飛行体３０の位置を特定してもよい。あるいは、位置取得部１１はユーザにより入力された飛行体３０の位置を受け付けてもよい。あるいは、位置取得部１１は、飛行体３０の位置を示す位置データを記録する任意の記憶装置からその位置データを読み出すことで位置を特定してもよい。
【００４０】
ステップＳ１２では、制御決定部１２が、取得された飛行体３０の位置に最も近い情報点を第１情報点として選択する。例えば、制御決定部１２は、二つのウェイポイントを結ぶ仮想線に飛行体３０の位置から垂線を下ろして双方の線の交点を求める。そして、制御決定部１２は、制御データに含まれる個々の情報点のうち該交点に最も近い情報点を第１情報点として選択する。このとき、飛行体３０は第１情報点に接近したということができる。「飛行体が第１情報点に接近する」とは、飛行体と第１情報点との距離が、飛行体と他の情報点との距離よりも短くなることをいい、飛行体が飛行経路において第１情報点より前に位置する場合と後ろに位置する場合との双方を含む概念である。典型的には、制御決定部１２は、飛行経路上で飛行体３０がまだ通過していない複数の情報点のうち該飛行体３０の位置に最も近い情報点（すなわち、飛行体３０が次に通過しようとする情報点）を第１情報点として選択する。しかし、制御決定部１２は、飛行経路上で飛行体３０が通過した１以上の情報点のうち該飛行体３０の位置に最も近い情報点（すなわち、飛行体３０が最後に通過した情報点）を第１情報点として選択してもよい。
【００４１】
ステップＳ１３では、制御決定部１２が、選択された第１情報点の目標情報点ＩＤを参照する。具体的には、制御決定部１２は該第１情報点の情報点データの一構成要素である目標情報点ＩＤを参照する。
【００４２】
ステップＳ１４において、目標情報点ＩＤが存在する場合には処理はステップＳ１５に進む。ステップＳ１５では、制御決定部１２が、その目標情報点ＩＤで示される第２情報点の情報点データを参照して飛行体３０の制御を決定する。制御決定部１２はその情報点データの制御情報を読み出し、この制御情報に基づいて飛行体３０の制御を決定する。制御決定部１２はその情報点データの座標（すなわち、第２情報点の位置）を読み出し、この座標も用いて制御を決定してもよい。一例として、図７に示すように制御情報が制限速度を示す場合には、制御決定部１２は第２情報点での飛行速度がその制限を満たすように飛行速度を増加、減少、または維持させると決定する。別の例として、制御情報が一時停止（ホバリング）を示すようであれば、制御決定部１２は第２情報点の付近で飛行体３０が停止するように飛行速度を減少させると決定する。制御決定部１２は、第２情報点の位置に基づいて、飛行体３０またはその装置をどの位置から制御させ始めるかを決定してもよい。あるいは、制御決定部１２は制御情報で示される制御を実行するか否かを決定してもよい。
【００４３】
ステップＳ１６では、制御決定部１２が、飛行体３０を制御するための指示データを用意する。制御決定部１２は、メモリに予め記憶されている指示データを読み出すことで指示データを用意してもよいし、指示データを動的に生成してもよい。指示データの具体的な内容およびデータ構造は何ら限定されないが、指示データは決定された制御を少なくとも示す。
【００４４】
ステップＳ１７では、通信部１３がその指示データを送信する。指示データの宛先は限定されない。例えば、通信部１３は指示データを、飛行体３０に直接に送信してもよいし、飛行体３０以外の任意のコンピュータを経由して飛行体３０に送信してもよい。飛行体３０の制御回路は、指示データを受信および処理することで飛行体３０の動力、舵、または搭載機器を制御してもよい。あるいは、飛行体３０以外のコンピュータ（例えばリモートコントローラ）が指示データに基づく信号を飛行体３０に送信し、飛行体３０の制御回路がその信号に基づいて飛行体３０の動力、舵、または搭載機器を制御してもよい。いずれにしても、飛行体３０は、サーバ１０から提供される指示データに基づいて飛行することができる。
【００４５】
ステップＳ１６，Ｓ１７の処理は必須ではなく、必要な場合に限って実行されてもよい。例えば、飛行体３０が今後の一定時間または一定距離内においてもそのまま飛行し続けることが好ましい場合には、指示データの生成および送信を省略することができる。
【００４６】
ステップＳ１４において、目標情報点ＩＤが存在しない（目標情報点ＩＤが空値である）場合には、飛行制御システム１は第２情報点の制御情報を取得することなく処理を終了する。
【００４７】
図１４を参照しながら処理フローＳ２を説明する。ステップＳ２１では、位置取得部１１が飛行体３０の位置を取得する。この処理はステップＳ１１と同様である。
【００４８】
ステップＳ２２では、制御決定部１２が、取得された飛行体３０の位置に最も近い情報点をトリガー情報点として選択する。情報点の具体的な選択方法はステップＳ１２と同様である。「飛行体がトリガー情報点に接近する」とは、飛行体とトリガー情報点との距離が、飛行体と他の情報点との距離よりも短くなることをいい、飛行体が飛行経路においてトリガー情報点より前に位置する場合と後ろに位置する場合との双方を含む概念である。
【００４９】
ステップＳ２３では、制御決定部１２が、選択されたトリガー情報点の読取り情報点ＩＤを参照する。具体的には、制御決定部１２は該トリガー情報点の情報点データの一構成要素である読取り情報点ＩＤを参照する。
【００５０】
ステップＳ２４において、読取り情報点ＩＤが存在する場合には処理はステップＳ２５に進む。ステップＳ２５では、制御決定部１２が、その読取り情報点ＩＤで示される第１情報点の情報点データを参照して該第１情報点の位置を特定する。この処理により、飛行制御システム１は、飛行体３０の位置と第１情報点の位置とに基づいて、飛行体３０が第１情報点に接近したか否かを判定することができる。
【００５１】
ステップＳ２６において、飛行体３０がその後に第１情報点に接近した場合には、処理はステップＳ２７に進む。ステップＳ２７では、制御決定部１２が、既に特定されている第１情報点の目標情報点ＩＤを参照する。この処理はステップＳ１３と同様である。
【００５２】
ステップＳ２８では、制御決定部１２が、その目標情報点ＩＤで示される第２情報点の情報点データを参照して飛行体３０の制御を決定する。この処理はステップＳ１５と同様である。
【００５３】
ステップＳ２９では、制御決定部１２が、飛行体３０を制御するための指示データを用意する。ステップＳ３０では、通信部１３がその指示データを送信する。ステップＳ２９，Ｓ３０はそれぞれステップＳ１６，Ｓ１７と同様である。したがって、ステップＳ２９，Ｓ３０の処理は必須ではない。
【００５４】
ステップＳ２４において、読取り情報点ＩＤが存在しない（読取り情報点ＩＤが空値である）場合には、飛行制御システム１は第１情報点の制御情報を取得することなく処理を終了する。
【００５５】
図１５を参照しながら処理フローＳ３を説明する。ステップＳ３１では、位置取得部１１が飛行体３０の位置を取得する。ステップＳ３２では、制御決定部１２が、取得された飛行体３０の位置に最も近い情報点を第１情報点として選択する。ステップＳ３１，Ｓ３２はそれぞれ、ステップＳ１１，Ｓ１２と同様である。
【００５６】
ステップＳ３３では、制御決定部１２が、選択された第１情報点の目標情報を参照する。具体的には、制御決定部１２は該第１情報点の情報点データの一構成要素である目標情報を参照する。
【００５７】
ステップＳ３４において、目標情報が存在する場合には処理はステップＳ３５に進む。ステップＳ３５では、制御決定部１２が、その目標情報（これは第２情報点の情報である。）を参照して飛行体３０の制御を決定する。制御決定部１２はその目標情報内で定義されている制御情報を読み出し、この制御情報に基づいて飛行体３０の制御を決定する。制御決定部１２は、目標情報で示される第２情報点の情報データを参照することで第２情報点の座標（位置）を読み出し、この座標も用いて制御を決定してもよい。制御情報が得られた後の制御の決定はステップＳ１５と同様である。
【００５８】
ステップＳ３６では、制御決定部１２が、飛行体３０を制御するための指示データを用意する。ステップＳ３７では、通信部１３がその指示データを送信する。ステップＳ３６，Ｓ３７はそれぞれステップＳ１６，Ｓ１７と同様である。したがって、ステップＳ３６，Ｓ３７の処理は必須ではない。
【００５９】
ステップＳ３４において、目標情報が存在しない（目標情報が空値である）場合には、飛行制御システム１は第２情報点の制御情報を取得することなく処理を終了する。
【００６０】
処理フローＳ１，Ｓ２，Ｓ３はいずれも、飛行制御システム１が、飛行体３０が第１情報点に接近したことに応答して、制御データ２１に基づいて飛行体３０を制御する例を示す。処理フローＳ１，Ｓ２，Ｓ３はいずれも、飛行体３０が目的地に到着するまで繰り返し実行され得る。例えば、その処理は、飛行体３０が情報点の付近に近づく度に実行されたり、定期的に実行されたりしてもよい。上述したように、飛行制御システム１は、飛行経路上に位置するすべての情報点の制御情報を一度に取得することなく、処理フローＳ１，Ｓ２，Ｓ３のいずれかを随時実行することで、飛行体３０を制御する。
【００６１】
このように、サーバ１０は、飛行体３０に最も近い第１情報点を選択し、その第１情報点に関連付けられた第２情報点を特定し、飛行体３０が第２情報点に到達する前に該第２情報点の制御情報に基づいて飛行体３０を制御し始めてもよい。あるいは、サーバ１０は、飛行体３０に最も近いトリガー情報点を選択し、そのトリガー情報点に関連付けられた第１情報点を特定し、その第１情報点に関連付けられた第２情報点を特定し、飛行体３０が第２情報点に到達する前に該第２情報点の制御情報に基づいて飛行体３０を制御し始めてもよい。これらのような一連の処理はプロセッサ１０１が制御データを参照することで実現される。処理フローＳ１，Ｓ２，Ｓ３のいずれについても、プロセッサ１０１は、第１情報点の情報点ＩＤ（第１情報点ＩＤ）を参照し、続いて、該第１情報点ＩＤに関連付けられた、第２情報点の情報点ＩＤ（第２情報点ＩＤ）を参照する。続いて、プロセッサ１０１は、その第２情報点ＩＤに関連付けられた制御情報を参照し、この制御情報に基づいて飛行経路上での飛行体３０を制御する。この結果、プロセッサ１０１は飛行体３０が第２情報点に到達する前に該飛行体３０を制御し始めることができる。
【００６２】
［プログラム］
コンピュータをサーバ１０として機能させるためのプログラムは、該コンピュータを位置取得部１１、制御決定部１２、および通信部１３として機能させるためのプログラムコードを含む。このプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。提供されたプログラムはストレージ１０３に記憶され、プロセッサ１０１がメモリ１０２と協働してそのプログラムを実行することで上記の各機能モジュールが実現する。
【００６３】
［効果］
以上説明したように、本開示の一側面に係るコンピュータシステムは、少なくとも一つのプロセッサを備え、少なくとも一つのプロセッサが、飛行体の飛行経路に位置する第１情報点に対応して参照可能であり、且つ飛行経路において第１情報点よりも後に位置する第２情報点での飛行体の飛行を制御するための制御情報を含む制御データに基づいて、飛行経路上での飛行体を制御する。
【００６４】
本開示の一側面に係るデータ構造は、飛行体の飛行経路に位置する第１情報点を一意に特定する第１情報点ＩＤと、飛行経路において第１情報点よりも後に位置する第２情報点を一意に特定する第２情報点ＩＤと、第２情報点での飛行体の飛行を制御するための制御情報とを含み、第１情報点ＩＤ、第２情報点ＩＤ、および制御情報が互いに関連付けられ、プロセッサに、第１情報点ＩＤを参照させ、参照された第１情報点ＩＤに関連付けられた第２情報点ＩＤを参照させ、参照された第２情報点ＩＤに関連付けられた制御情報を参照させ、参照された制御情報に基づいて、飛行経路上での飛行体を制御させる。
【００６５】
このような側面においては、第２情報点での飛行を制御するための制御情報が、飛行経路において該第２情報点よりも前に位置する第１情報点で参照可能なので、その制御情報を先読みして飛行体を制御することが可能になる。
【００６６】
他の側面に係るコンピュータシステムでは、少なくとも一つのプロセッサが、飛行経路上に位置するすべての情報点の制御情報を一度に取得することなく、制御データに基づいて飛行体を制御してもよい。飛行経路の限られた範囲において先読み制御を実行することで、コンピュータシステムまたは飛行体のハードウェア資源（例えばプロセッサまたはメモリ）の消費量を抑えながら、飛行体を柔軟に制御することができる。
【００６７】
他の側面に係るコンピュータシステムでは、少なくとも一つのプロセッサが、飛行体が第２情報点に到達する前に、制御情報に基づいて飛行体を制御し始めてもよい。制御情報に基づく制御のタイミングをこのように設定することで、第２情報点で規定された条件をより確実に満たすように飛行体を制御することが可能になる。
【００６８】
他の側面に係るコンピュータシステムでは、少なくとも一つのプロセッサが、飛行体が第１情報点に接近したことに応答して、制御データに基づいて飛行体を制御してもよい。このタイミングで制御情報に基づいて飛行体を制御することで、第２情報点で規定された条件をより確実に満たすように飛行体を制御することが可能になる。
【００６９】
他の側面に係るコンピュータシステムでは、少なくとも一つのプロセッサが、複数の情報点から、飛行体の位置に最も近い一つの情報点を第１情報点として選択し、第１情報点と関連付けられた第２情報点の制御情報に基づいて飛行体を制御してもよい。飛行体の位置に最も近い情報点を第１情報点として用いることで、適切なタイミングで制御情報を先読みすることができる。
【００７０】
他の側面に係るコンピュータシステムでは、制御データでは、第１情報点と、飛行経路において第１情報点よりも前に位置するトリガー情報点とがさらに関連付けられ、少なくとも一つのプロセッサが、複数の情報点から、飛行体の位置に最も近い一つの情報点をトリガー情報点として選択し、トリガー情報点に関連付けられた第１情報点を特定し、飛行体が第１情報点に接近したことに応答して、第１情報点と関連付けられた第２情報点の制御情報に基づいて飛行体を制御してもよい。第２情報点の制御情報と関連付けられる第１情報点の位置が、飛行体が該第１情報点に接近する前に取得されるので、第１情報点を探索する処理の負荷を低減することができる。
【００７１】
［変形例］
以上、本開示をその実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００７２】
飛行体を制御するためのシステム構成は限定されない。例えば、サーバ１０がデータベース２０を備えてもよい。あるいは、飛行体３０がサーバ１０の機能を備えてもよく、この場合には、飛行体３０は通信ネットワークを介してデータベース２０にアクセスすることで制御データを読み出す。あるいは、飛行体３０がサーバ１０およびデータベース２０の双方の機能を備えてもよく、この場合には、飛行体３０はあたかもスタンドアロンマシンのように、他の情報処理装置に頼ることなく飛行することができる。
【００７３】
少なくとも一つのプロセッサにより実行される飛行体の制御の手順は上記実施形態での例に限定されない。例えば、上述したステップ（処理）の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の２以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【００７４】
以上の実施形態の全部または一部に記載された態様は、飛行体の適切な制御、処理速度の向上、処理精度の向上、使い勝手の向上、データを利用した機能の向上または適切な機能の提供その他の機能向上または適切な機能の提供、データおよび／またはプログラムの容量の削減、装置および／またはシステムの小型化等の適切なデータ、プログラム、記録媒体、装置および／またはシステムの提供、並びにデータ、プログラム、装置またはシステムの制作・製造コストの削減、制作・製造の容易化、制作・製造時間の短縮等のデータ、プログラム、記録媒体、装置および／またはシステムの制作・製造の適切化のいずれか一つの課題を解決する。
【符号の説明】
【００７５】
１…飛行制御システム、１０…サーバ、１１…位置取得部、１２…制御決定部、１３…通信部、２０…データベース、２１…制御データ、３０，３０１，３０２…飛行体、５０，５０１〜５０４…飛行経路、５１〜５７…ウェイポイント、６１，６２…制御領域、７１，７１ａ，７１ｂ，７１ｃ，７２，７３ａ，７３ｂ，７３ｃ，７３ｄ，７４ａ，７４ｂ，７４ｃ…情報点。
【図１】
2020160634.tif 000003
【図２】
2020160634.tif 000004
【図３】
2020160634.tif 000005
【図４】
2020160634.tif 000006
【図５】
2020160634.tif 000007
【図６】
2020160634.tif 000008
【図７】
2020160634.tif 000009
【図８】
2020160634.tif 000010
【図９】
2020160634.tif 000011
【図１０】
2020160634.tif 000012
【図１１】
2020160634.tif 000013
【図１２】
2020160634.tif 000014
【図１３】
2020160634.tif 000015
【図１４】
2020160634.tif 000016
【図１５】
2020160634.tif 000017