(57)【要約】【課題】飛行体群を飛行制御するための設定を容易化でき、各飛行体の飛行時の自由度を向上できることが望ましい。【解決手段】複数の飛行体の飛行の制御を指示する情報処理装置であって、処理部を備え、処理部は、複数の飛行体の飛行位置により形成するための飛行形状と、飛行形状が配置される位置と、の情報を取得し、飛行形状が形成される位置における複数の飛行体のそれぞれの位置へ誘導するためのパラメータを算出し、パラメータに基づいて、第１の時点に後続する第２の時点での複数の飛行体の飛行の制御を指示する、【選択図】図１５
2019101587.tif 000002
【特許請求の範囲】
【請求項１】
複数の飛行体の飛行の制御を指示する情報処理装置であって、
処理部を備え、
前記処理部は、
複数の前記飛行体の飛行位置により形成するための飛行形状と、前記飛行形状が配置される位置と、の情報を取得し、
第１の時点での複数の前記飛行体の位置情報を取得し、
前記飛行形状が配置される位置における複数の前記飛行体のそれぞれの位置へ誘導するためのパラメータを算出し、
前記パラメータに基づいて、前記第１の時点に後続する第２の時点での複数の前記飛行体の飛行の制御を指示する、
情報処理装置。
【請求項２】
前記処理部は、
前記パラメータとして、複数の前記飛行体を前記飛行形状の位置へ誘導するための第１のパラメータを取得し、前記第１の時点での複数の前記飛行体の位置及び前記飛行形状に基づいて、各飛行体が他の飛行体及び前記飛行形状の周端から離間するための第２のパラメータを算出し、
前記パラメータに基づいて、前記第２の時点での複数の前記飛行体の飛行の制御を指示する、
請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、
前記第１のパラメータ及び前記第２のパラメータに基づいて、前記第２の時点での前記飛行体の位置及び速度を算出し、
前記飛行体の位置及び速度に基づいて、前記飛行体の飛行の制御を指示する、
請求項２に記載の情報処理装置。
【請求項４】
前記処理部は、前記第２の時点での前記飛行体の位置及び速度を前記飛行体へ送信する、
請求項３に記載の情報処理装置。
【請求項５】
前記処理部は、
前記第２の時点での複数の前記飛行体の実測位置及び実測速度を取得し、
前記第２の時点での複数の前記飛行体の実測位置を、前記第１の時点での複数の前記飛行体の位置情報として設定する、
請求項４に記載の情報処理装置。
【請求項６】
前記処理部は、
前記第２の時点での複数の前記飛行体の算出位置及び算出速度を取得し、
前記第２の時点での複数の前記飛行体の算出位置を、前記第１の時点での複数の前記飛行体の位置情報として設定する、
請求項３に記載の情報処理装置。
【請求項７】
前記処理部は、前記第２の時点での前記飛行体の位置及び速度の算出を複数回反復して、前記飛行体が飛行する飛行経路を生成し、
前記飛行経路に基づいて、前記飛行体の飛行の制御を指示する、
請求項３に記載の情報処理装置。
【請求項８】
前記処理部は、前記各飛行体の速度が閾値以下となるまで、前記第１のパラメータ及び前記第２のパラメータに基づく前記飛行体の位置及び速度の算出を継続する、
請求項３〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記処理部は、前記各飛行体と各飛行体以外の他の飛行体との距離と、前記他の飛行体との衝突を回避するための安全距離と、に基づいて、各飛行体の前記第２のパラメータを算出する、
請求項２〜７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記処理部は、前記各飛行体と前記飛行形状の周端との距離に基づいて、各飛行体の前記第２のパラメータを算出する、
請求項２〜８のいずれか１項に記載の情報処理装置。
【請求項１１】
複数の飛行体の飛行の制御を指示する情報処理装置における飛行制御指示方法であって、
複数の前記飛行体の飛行位置により形成するための飛行形状と、前記飛行形状が配置される位置と、の情報を取得するステップと、
第１の時点での複数の前記飛行体の位置情報を取得するステップと、
前記飛行形状が配置される位置における複数の前記飛行体のそれぞれの位置へ誘導するためのパラメータを算出するステップと、
前記パラメータに基づいて、前記第１の時点に後続する第２の時点での複数の前記飛行体の飛行の制御を指示するステップと、
を有する飛行制御指示方法。
【請求項１２】
前記パラメータを算出するステップは、前記パラメータとして、複数の前記飛行体を前記飛行形状の位置へ誘導するための第１のパラメータを取得し、前記第１の時点での複数の前記飛行体の位置及び前記飛行形状に基づいて、各飛行体が他の飛行体及び前記飛行形状の周端から離間するための第２のパラメータを算出するステップを含み、
前記飛行の制御を指示するステップは、前記パラメータに基づいて、前記第２の時点での複数の前記飛行体の飛行の制御を指示するステップを含む、
請求項１１に記載の飛行制御指示方法。
【請求項１３】
前記飛行の制御を指示するステップは、
前記第１のパラメータ及び前記第２のパラメータに基づいて、前記第２の時点での前記飛行体の位置及び速度を算出するステップと、
前記飛行体の位置及び速度に基づいて、前記飛行体の飛行の制御を指示するステップと、を含む、
請求項１２に記載の飛行制御指示方法。
【請求項１４】
前記飛行の制御を指示するステップは、前記第２の時点での前記飛行体の位置及び速度を前記飛行体へ送信するステップ、を含む、
請求項１３に記載の飛行制御指示方法。
【請求項１５】
前記第２の時点での複数の前記飛行体の実測位置及び実測速度を取得するステップ、を更に含み、
前記飛行体の位置情報を取得するステップは、前記第２の時点での複数の前記飛行体の実測位置を、前記第１の時点での複数の前記飛行体の位置情報として設定するステップ、を含む、
請求項１４に記載の飛行制御指示方法。
【請求項１６】
前記第２の時点での複数の前記飛行体の算出位置及び算出速度を取得するステップ、を更に含み、
前記飛行体の位置情報を取得するステップは、前記第２の時点での複数の前記飛行体の算出位置を、前記第１の時点での複数の前記飛行体の位置情報として設定するステップ、を含む、
請求項１３に記載の飛行制御指示方法。
【請求項１７】
前記飛行の制御を指示するステップは、
前記第２の時点での前記飛行体の位置及び速度の算出を複数回反復して、前記飛行体が飛行する飛行経路を生成ステップと、
前記飛行経路に基づいて、前記飛行体の飛行の制御を指示するステップと、を含む、
請求項１３に記載の飛行制御指示方法。
【請求項１８】
前記飛行の制御を指示するステップは、前記各飛行体の速度が閾値以下となるまで、前記第１のパラメータ及び前記第２のパラメータに基づく前記飛行体の位置及び速度の算出を継続するステップ、を含む、
請求項１３〜１７のいずれか１項に記載の飛行制御指示方法。
【請求項１９】
前記パラメータを算出するステップは、前記各飛行体と各飛行体以外の他の飛行体との距離と、前記他の飛行体との衝突を回避するための安全距離と、に基づいて、前記各飛行体の前記第２のパラメータを算出するステップ、を含む、
請求項１２〜１８のいずれか１項に記載の飛行制御指示方法。
【請求項２０】
前記パラメータを算出するステップは、前記各飛行体と前記飛行形状の周端との距離に基づいて、前記各飛行体の前記第２のパラメータを算出するステップ、を含む、
請求項１２〜１９のいずれか１項に記載の飛行制御指示方法。
【請求項２１】
複数の飛行体の飛行の制御を指示する情報処理装置に、
複数の前記飛行体の飛行位置により形成するための飛行形状と、前記飛行形状が配置される位置と、の情報を取得するステップと、
第１の時点での複数の前記飛行体の位置情報を取得するステップと、
前記飛行形状が配置される位置における複数の前記飛行体のそれぞれの位置へ誘導するためのパラメータを算出するステップと、
前記パラメータに基づいて、前記第１の時点に後続する第２の時点での複数の前記飛行体の飛行の制御を指示するステップと、
を実行させるためのプログラム。
【請求項２２】
複数の飛行体の飛行の制御を指示する情報処理装置に、
複数の前記飛行体の飛行位置により形成するための飛行形状と、前記飛行形状が配置される位置と、の情報を取得するステップと、
第１の時点での複数の前記飛行体の位置情報を取得するステップと、
前記飛行形状が配置される位置における複数の前記飛行体のそれぞれの位置へ誘導するためのパラメータを算出するステップと、
前記パラメータに基づいて、前記第１の時点に後続する第２の時点での複数の前記飛行体の飛行の制御を指示するステップと、
を実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数の飛行体の飛行の制御を指示する情報処理装置、飛行制御指示方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
近年、複数の無人航空機が１つのエリアで連携して飛行することが知られている。複数の無人航空機を連携して飛行させるために、例えば、予め設定された飛行プログラムの実行により、複数の無人航空機が連携して飛行可能である（特許文献１参照）。特許文献１では、複数の無人航空機としての複数の飛翔体が、地上局からの指令により空中の指定された位置に移動停止し、発光する。これにより、観測者は、星座などを疑似的に観測できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２０６４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された飛翔体は、事前に設定された飛行ルートや飛行位置に従って飛行可能であるが、事前に設定されていない飛行ルートや飛行位置を考慮して飛行することは困難である。例えば、特許文献１に記載されたシステムは、リアルタイムに複数の飛翔体が形成する飛行形状を指定できず、無人航空機の飛行時の自由度が低い。また、飛行ルートや飛行位置の設定のための作業が煩雑であり、難しい。
【０００５】
また、操作装置（プロポ）を用いて無人航空機の飛行を撮像すると、リアルタイムに操縦者の意思を反映して無人航空機に対して飛行ルートや飛行位置を指示できる。しかし、複数の無人航空機を操縦するためには複数の操作装置が必要であり、複数の無人航空機を連携して操縦することは困難である。また、リアルタイムに複数の飛翔体が形成する飛行形状を指定することは困難である。
【課題を解決するための手段】
【０００６】
一態様において、情報処理装置は、複数の飛行体の飛行の制御を指示する情報処理装置であって、処理部を備え、処理部は、複数の飛行体の飛行位置により形成するための飛行形状と、飛行形状が配置される位置と、の情報を取得し、第１の時点での複数の飛行体の位置情報を取得し、飛行形状が配置される位置における複数の飛行体のそれぞれの位置へ誘導するためのパラメータを算出し、パラメータに基づいて、第１の時点に後続する第２の時点での複数の飛行体の飛行の制御を指示する。
【０００７】
処理部は、パラメータとして、複数の飛行体を飛行形状の位置へ誘導するための第１のパラメータを取得し、第１の時点での複数の飛行体の位置及び飛行形状に基づいて、各飛行体が他の飛行体及び飛行形状の周端から離間するための第２のパラメータを算出し、パラメータに基づいて、第２の時点での複数の飛行体の飛行の制御を指示してよい。
【０００８】
処理部は、第１のパラメータ及び第２のパラメータに基づいて、第２の時点での飛行体の位置及び速度を算出し、飛行体の位置及び速度に基づいて、飛行体の飛行の制御を指示してよい。
【０００９】
処理部は、第２の時点での飛行体の位置及び速度を飛行体へ送信してよい。
【００１０】
処理部は、第２の時点での複数の飛行体の実測位置及び実測速度を取得し、第２の時点での複数の飛行体の実測位置を、第１の時点での複数の飛行体の位置情報として設定してよい。
【００１１】
処理部は、第２の時点での複数の飛行体の算出位置及び算出速度を取得し、第２の時点での複数の飛行体の算出位置を、第１の時点での複数の飛行体の位置情報として設定してよい。
【００１２】
処理部は、第２の時点での飛行体の位置及び速度の算出を複数回反復して、飛行体が飛行する飛行経路を生成し、飛行経路に基づいて、飛行体の飛行の制御を指示してよい。
【００１３】
処理部は、各飛行体の速度が閾値以下となるまで、第１のパラメータ及び第２のパラメータに基づく飛行体の位置及び速度の算出を継続してよい。
【００１４】
処理部は、各飛行体と各飛行体以外の他の飛行体との距離と、他の飛行体との衝突を回避するための安全距離と、に基づいて、各飛行体の第２のパラメータを算出してよい。
【００１５】
処理部は、各飛行体と飛行形状の周端との距離に基づいて、各飛行体の第２のパラメータを算出してよい。
【００１６】
一態様において、飛行制御指示方法は、複数の飛行体の飛行の制御を指示する情報処理装置における飛行制御指示方法であって、複数の飛行体の飛行位置により形成するための飛行形状と、飛行形状が配置される位置と、の情報を取得するステップと、第１の時点での複数の飛行体の位置情報を取得するステップと、飛行形状が配置される位置における複数の飛行体のそれぞれの位置へ誘導するためのパラメータを算出するステップと、パラメータに基づいて、第１の時点に後続する第２の時点での複数の飛行体の飛行の制御を指示するステップと、を有する。
【００１７】
パラメータを算出するステップは、パラメータとして、複数の飛行体を飛行形状の位置へ誘導するための第１のパラメータを取得し、第１の時点での複数の飛行体の位置及び飛行形状に基づいて、各飛行体が他の飛行体及び飛行形状の周端から離間するための第２のパラメータを算出するステップを含んでよい。飛行の制御を指示するステップは、パラメータに基づいて、第２の時点での複数の飛行体の飛行の制御を指示するステップを含んでよい。
【００１８】
飛行の制御を指示するステップは、第１のパラメータ及び第２のパラメータに基づいて、第２の時点での飛行体の位置及び速度を算出するステップと、飛行体の位置及び速度に基づいて、飛行体の飛行の制御を指示するステップと、を含んでよい。
【００１９】
飛行の制御を指示するステップは、第２の時点での飛行体の位置及び速度を飛行体へ送信するステップ、を含んでよい。
【００２０】
飛行制御指示方法は、第２の時点での複数の飛行体の実測位置及び実測速度を取得するステップ、を更に含んでよい。飛行体の位置情報を取得するステップは、第２の時点での複数の飛行体の実測位置を、第１の時点での複数の飛行体の位置情報として設定するステップ、を含む、
【００２１】
飛行制御指示方法は、第２の時点での複数の飛行体の算出位置及び算出速度を取得するステップ、を更に含んでよい。飛行体の位置情報を取得するステップは、第２の時点での複数の飛行体の算出位置を、第１の時点での複数の飛行体の位置情報として設定するステップ、を含んでよい。
【００２２】
飛行の制御を指示するステップは、第２の時点での飛行体の位置及び速度の算出を複数回反復して、飛行体が飛行する飛行経路を生成ステップと、飛行経路に基づいて、飛行体の飛行の制御を指示するステップと、を含んでよい。
【００２３】
飛行の制御を指示するステップは、各飛行体の速度が閾値以下となるまで、第１のパラメータ及び第２のパラメータに基づく飛行体の位置及び速度の算出を継続するステップ、を含んでよい。
【００２４】
パラメータを算出するステップは、各飛行体と各飛行体以外の他の飛行体との距離と、他の飛行体との衝突を回避するための安全距離と、に基づいて、各飛行体の第２のパラメータを算出するステップ、を含んでよい。
【００２５】
パラメータを算出するステップは、各飛行体と飛行形状の周端との距離に基づいて、各飛行体の第２のパラメータを算出するステップ、を含んでよい。
【００２６】
一態様において、プログラムは、複数の飛行体の飛行の制御を指示する情報処理装置に、複数の飛行体の飛行位置により形成するための飛行形状と、飛行形状が配置される位置と、の情報を取得するステップと、第１の時点での複数の飛行体の位置情報を取得するステップと、前記飛行形状が配置される位置における複数の前記飛行体のそれぞれの位置へ誘導するためのパラメータを算出するステップと、前記パラメータに基づいて、前記第１の時点に後続する第２の時点での複数の前記飛行体の飛行の制御を指示するステップと、を実行させるためのプログラムである。
【００２７】
一態様において、記録媒体は、複数の飛行体の飛行の制御を指示する情報処理装置に、
複数の飛行体の飛行位置により形成するための飛行形状と、飛行形状が配置される位置と、の情報を取得するステップと、第１の時点での複数の飛行体の位置情報を取得するステップと、前記飛行形状が配置される位置における複数の前記飛行体のそれぞれの位置へ誘導するためのパラメータを算出するステップと、前記パラメータに基づいて、前記第１の時点に後続する第２の時点での複数の前記飛行体の飛行の制御を指示するステップと、を実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【００２８】
なお、上記の発明の概要は、本開示の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００２９】
【図１】第１の実施形態における飛行体群制御システムの第１構成例を示す模式図
【図２】第１の実施形態における飛行体群制御システムの第２構成例を示す模式図
【図３】無人航空機の具体的な外観の一例を示す図
【図４】無人航空機のハードウェア構成の一例を示すブロック図
【図５】端末のハードウェア構成の一例を示すブロック図
【図６】飛行中の複数の無人航空機の位置を示す図
【図７】飛行シミュレーションにおいて、複数の無人航空機が無人航空機群として連携して飛行するためのターゲットの形状及び位置を示す図
【図８】飛行シミュレーションにおいて、各無人航空機を目標位置に近づける引力を説明する図
【図９】飛行シミュレーションにおいて、無人航空機の衝突を回避する斥力を説明する図
【図１０】無人航空機に作用する合力及び加速度の算出を説明するための図
【図１１】各無人航空機に作用する加速度を示す図
【図１２】図１１の後の時点における各無人航空機に作用する加速度を示す図
【図１３】図１２の後の時点における各無人航空機に作用する加速度を示す図
【図１４】図１３の後の時点における、ターゲット内に収まった無人航空機群の各無人航空機の位置関係を示す図
【図１５】第１に実施形態における端末及び無人航空機の動作手順を示すシーケンス図
【図１６】Ｓ４等における飛行シミュレーションの動作手順の第１例を示すフローチャート
【図１７】第１の実施形態の変形例における端末及び無人航空機の動作手順の第２例を示すシーケンス図
【図１８】第２の実施形態における端末及び各無人航空機の動作手順の第１例を示すシーケンス図
【図１９】Ｓ５４等における飛行シミュレーション動作手順の一例を示すフローチャート
【図２０】第２の実施形態の変形例における端末及び無人航空機の動作手順の第２例を示すシーケンス図
【発明を実施するための形態】
【００３０】
以下、発明の実施形態を通じて本開示を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らない。
【００３１】
特許請求の範囲、明細書、図面、及び要約書には、著作権による保護の対象となる事項が含まれる。著作権者は、これらの書類の何人による複製に対しても、特許庁のファイル又はレコードに表示される通りであれば異議を唱えない。ただし、それ以外の場合、一切の著作権を留保する。
【００３２】
以下の実施形態では、飛行体として、無人航空機（ＵＡＶ：Unmanned Aerial Vehicle）を例示する。無人航空機は、空中を移動する航空機を含む。本明細書に添付する図面では、無人航空機を「ＵＡＶ」と表記する。また、情報処理装置として、無人航空機、端末及びＰＣ（Personal Computer）を例示する。なお、情報処理装置は、無人航空機、端末やＰＣ以外の装置、例えば送信機（プロポ（Propotional Controller））、その他の装置でもよい。飛行制御指示方法は、情報処理装置の動作が規定されたものである。また、記録媒体は、プログラム（例えば情報処理装置に各種の処理を実行させるプログラム）が記録されたものである。
【００３３】
（第１の実施形態）
図１は、第１の実施形態における飛行体群制御システム１０の第１構成例を示す模式図である。飛行体群制御システム１０は、無人航空機１００及び端末８０を備える。無人航空機１００及び端末８０は、相互に有線通信又は無線通信（例えば無線ＬＡＮ（Local Area Network））により通信可能である。図１では、端末８０が端末（例えばスマートフォン、タブレット端末）であることを例示している。端末８０は情報処理装置の一例である。
【００３４】
なお、飛行体群制御システム１０は、無人航空機１００、送信機、及び端末８０を備えた構成であってよい。送信機を備える場合、送信機の前面に配置された左右の制御棒を使って、ユーザは、無人航空機の飛行の制御を指示可能である。また、この場合、無人航空機１００、送信機、及び端末８０は、相互に有線通信又は無線通信により通信可能である。
【００３５】
図２は、第１の実施形態における飛行体群制御システム１０の第２構成例を示す模式図である。図２では、端末８０がＰＣであることを例示している。図１及び図２のいずれであっても、端末８０が有する機能は同じでよい。
【００３６】
図３は、無人航空機１００の具体的な外観の一例を示す図である。図３には、無人航空機１００が移動方向ＳＴＶ０に飛行する場合の斜視図が示される。無人航空機１００は飛行体の一例である。
【００３７】
図３に示すように、地面と平行であって移動方向ＳＴＶ０に沿う方向にロール軸（ｘ軸参照）が定義されたとする。この場合、地面と平行であってロール軸に垂直な方向にピッチ軸（ｙ軸参照）が定められ、更に、地面に垂直であってロール軸及びピッチ軸に垂直な方向にヨー軸（ｚ軸参照）が定められる。
【００３８】
無人航空機１００は、ＵＡＶ本体１０２と、ジンバル２００と、撮像部２２０と、複数の撮像部２３０とを含む構成である。
【００３９】
ＵＡＶ本体１０２は、複数の回転翼（プロペラ）を備える。ＵＡＶ本体１０２は、複数の回転翼の回転を制御することにより無人航空機１００を飛行させる。ＵＡＶ本体１０２は、例えば４つの回転翼を用いて無人航空機１００を飛行させる。回転翼の数は、４つに限定されない。また、無人航空機１００は、回転翼を有さない固定翼機でもよい。
【００４０】
撮像部２２０は、所望の撮像範囲に含まれる被写体（例えば、空撮対象となる上空の様子、山や川等の景色、地上の建物）を撮像する撮像用のカメラである。
【００４１】
複数の撮像部２３０は、無人航空機１００の飛行を制御するために無人航空機１００の周囲を撮像するセンシング用のカメラである。２つの撮像部２３０が、無人航空機１００の機首である正面に設けられてよい。さらに、他の２つの撮像部２３０が、無人航空機１００の底面に設けられてよい。正面側の２つの撮像部２３０はペアとなり、いわゆるステレオカメラとして機能してよい。底面側の２つの撮像部２３０もペアとなり、ステレオカメラとして機能してよい。複数の撮像部２３０により撮像された画像に基づいて、無人航空機１００の周囲の３次元空間データが生成されてよい。なお、無人航空機１００が備える撮像部２３０の数は４つに限定されない。無人航空機１００は、少なくとも１つの撮像部２３０を備えていればよい。無人航空機１００は、無人航空機１００の機首、機尾、側面、底面、及び天井面のそれぞれに少なくとも１つの撮像部２３０を備えてよい。撮像部２３０で設定できる画角は、撮像部２２０で設定できる画角より広くてよい。撮像部２３０は、単焦点レンズ又は魚眼レンズを有してよい。
【００４２】
図４は、無人航空機１００のハードウェア構成の一例を示すブロック図である。無人航空機１００は、ＵＡＶ制御部１１０と、通信インタフェース１５０と、メモリ１６０と、ストレージ１７０と、ジンバル２００と、回転翼機構２１０と、撮像部２２０と、撮像部２３０と、ＧＰＳ受信機２４０と、慣性計測装置（ＩＭＵ：Inertial Measurement Unit）２５０と、磁気コンパス２６０と、気圧高度計２７０と、超音波センサ２８０と、レーザー測定器２９０と、を含む構成である。
【００４３】
ＵＡＶ制御部１１０は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）又はＤＳＰ（Digital Signal Processor）を用いて構成される。ＵＡＶ制御部１１０は、無人航空機１００の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。
【００４４】
ＵＡＶ制御部１１０は、メモリ１６０に格納されたプログラムに従って無人航空機１００の飛行を制御する。ＵＡＶ制御部１１０は、送信機や端末８０による飛行の制御の指示に従って、飛行を制御してよい。ＵＡＶ制御部１１０は、撮像部２２０又は撮像部２３０に画像を空撮させてよい。
【００４５】
ＵＡＶ制御部１１０は、無人航空機１００の位置を示す位置情報を取得する。ＵＡＶ制御部１１０は、ＧＰＳ受信機２４０から、無人航空機１００が存在する緯度、経度及び高度を示す位置情報を取得してよい。ＵＡＶ制御部１１０は、ＧＰＳ受信機２４０から無人航空機１００が存在する緯度及び経度を示す緯度経度情報、並びに気圧高度計２７０から無人航空機１００が存在する高度を示す高度情報をそれぞれ位置情報として取得してよい。ＵＡＶ制御部１１０は、超音波センサ２８０による超音波の放射点と超音波の反射点との距離を高度情報として取得してよい。
【００４６】
ＵＡＶ制御部１１０は、磁気コンパス２６０から無人航空機１００の向きを示す向き情報を取得してよい。向き情報は、例えば無人航空機１００の機首の向きに対応する方位で示されてよい。
【００４７】
ＵＡＶ制御部１１０は、撮像部２２０が撮像すべき撮像範囲を撮像する時に無人航空機１００が存在すべき位置を示す位置情報を取得してよい。ＵＡＶ制御部１１０は、無人航空機１００が存在すべき位置を示す位置情報をメモリ１６０から取得してよい。ＵＡＶ制御部１１０は、無人航空機１００が存在すべき位置を示す位置情報を、通信インタフェース１５０を介して他の装置から取得してよい。ＵＡＶ制御部１１０は、３次元地図データベースを参照して、無人航空機１００が存在可能な位置を特定して、その位置を無人航空機１００が存在すべき位置を示す位置情報として取得してよい。
【００４８】
ＵＡＶ制御部１１０は、撮像部２２０及び撮像部２３０のそれぞれの撮像範囲を示す撮像範囲情報を取得してよい。ＵＡＶ制御部１１０は、撮像範囲を特定するためのパラメータとして、撮像部２２０及び撮像部２３０の画角を示す画角情報を撮像部２２０及び撮像部２３０から取得してよい。ＵＡＶ制御部１１０は、撮像範囲を特定するためのパラメータとして、撮像部２２０及び撮像部２３０の撮像方向を示す情報を取得してよい。ＵＡＶ制御部１１０は、例えば撮像部２２０の撮像方向を示す情報として、ジンバル２００から撮像部２２０の姿勢の状態を示す姿勢情報を取得してよい。撮像部２２０の姿勢情報は、ジンバル２００のピッチ軸及びヨー軸の基準回転角度からの回転角度を示してよい。
【００４９】
ＵＡＶ制御部１１０は、撮像範囲を特定するためのパラメータとして、無人航空機１００が存在する位置を示す位置情報を取得してよい。ＵＡＶ制御部１１０は、撮像部２２０及び撮像部２３０の画角及び撮像方向、並びに無人航空機１００が存在する位置に基づいて、撮像部２２０が撮像する地理的な範囲を示す撮像範囲を画定し、撮像範囲情報を生成することで、撮像範囲情報を取得してよい。
【００５０】
ＵＡＶ制御部１１０は、メモリ１６０から撮像範囲情報を取得してよい。ＵＡＶ制御部１１０は、通信インタフェース１５０を介して撮像範囲情報を取得してよい。
【００５１】
ＵＡＶ制御部１１０は、ジンバル２００、回転翼機構２１０、撮像部２２０及び撮像部２３０を制御する。ＵＡＶ制御部１１０は、撮像部２２０の撮像方向又は画角を変更することによって、撮像部２２０の撮像範囲を制御してよい。ＵＡＶ制御部１１０は、ジンバル２００の回転機構を制御することで、ジンバル２００に支持されている撮像部２２０の撮像範囲を制御してよい。
【００５２】
撮像範囲とは、撮像部２２０又は撮像部２３０により撮像される地理的な範囲をいう。撮像範囲は、緯度、経度、及び高度で定義される。撮像範囲は、緯度、経度、及び高度で定義される３次元空間データにおける範囲でよい。撮像範囲は、緯度及び経度で定義される２次元空間データにおける範囲でもよい。撮像範囲は、撮像部２２０又は撮像部２３０の画角及び撮像方向、並びに無人航空機１００が存在する位置に基づいて特定されてよい。撮像部２２０及び撮像部２３０の撮像方向は、撮像部２２０及び撮像部２３０の撮像レンズが設けられた正面が向く方位と俯角とから定義されてよい。撮像部２２０の撮像方向は、無人航空機１００の機首の方位と、ジンバル２００に対する撮像部２２０の姿勢の状態とから特定される方向でよい。撮像部２３０の撮像方向は、無人航空機１００の機首の方位と、撮像部２３０が設けられた位置とから特定される方向でよい。
【００５３】
ＵＡＶ制御部１１０は、複数の撮像部２３０により撮像された複数の画像を解析することで、無人航空機１００の周囲の環境を特定してよい。ＵＡＶ制御部１１０は、無人航空機１００の周囲の環境に基づいて、例えば障害物を回避して飛行を制御してよい。
【００５４】
ＵＡＶ制御部１１０は、無人航空機１００の周囲に存在するオブジェクトの立体形状（３次元形状）を示す立体情報（３次元情報）を取得してよい。オブジェクトは、例えば、建物、道路、車、木等の風景の一部でよい。立体情報は、例えば、３次元空間データである。ＵＡＶ制御部１１０は、複数の撮像部２３０から得られたそれぞれの画像から、無人航空機１００の周囲に存在するオブジェクトの立体形状を示す立体情報を生成することで、立体情報を取得してよい。ＵＡＶ制御部１１０は、メモリ１６０又はストレージ１７０に格納された３次元地図データベースを参照することにより、無人航空機１００の周囲に存在するオブジェクトの立体形状を示す立体情報を取得してよい。ＵＡＶ制御部１１０は、ネットワーク上に存在するサーバが管理する３次元地図データベースを参照することで、無人航空機１００の周囲に存在するオブジェクトの立体形状に関する立体情報を取得してよい。
【００５５】
ＵＡＶ制御部１１０は、回転翼機構２１０を制御することで、無人航空機１００の飛行を制御する。つまり、ＵＡＶ制御部１１０は、回転翼機構２１０を制御することにより、無人航空機１００の緯度、経度、及び高度を含む位置を制御する。ＵＡＶ制御部１１０は、無人航空機１００の飛行を制御することにより、撮像部２２０の撮像範囲を制御してよい。ＵＡＶ制御部１１０は、撮像部２２０が備えるズームレンズを制御することで、撮像部２２０の画角を制御してよい。ＵＡＶ制御部１１０は、撮像部２２０のデジタルズーム機能を利用して、デジタルズームにより、撮像部２２０の画角を制御してよい。
【００５６】
撮像部２２０が無人航空機１００に固定され、撮像部２２０を動かせない場合、ＵＡＶ制御部１１０は、特定の日時に特定の位置に無人航空機１００を移動させることにより、所望の環境下で所望の撮像範囲を撮像部２２０に撮像させてよい。あるいは撮像部２２０がズーム機能を有さず、撮像部２２０の画角を変更できない場合でも、ＵＡＶ制御部１１０は、特定された日時に、特定の位置に無人航空機１００を移動させることで、所望の環境下で所望の撮像範囲を撮像部２２０に撮像させてよい。
【００５７】
通信インタフェース１５０は、端末８０と通信する。通信インタフェース１５０は、任意の無線通信方式により無線通信してよい。通信インタフェース１５０は、任意の有線通信方式により有線通信してよい。通信インタフェース１５０は、空撮画像や空撮画像に関する付加情報（メタデータ）を、端末８０に送信してよい。
【００５８】
メモリ１６０は、ＵＡＶ制御部１１０がジンバル２００、回転翼機構２１０、撮像部２２０、撮像部２３０、ＧＰＳ受信機２４０、慣性計測装置２５０、磁気コンパス２６０、気圧高度計２７０、超音波センサ２８０、及びレーザー測定器２９０を制御するのに必要なプログラム等を格納する。メモリ１６０は、コンピュータ読み取り可能な記録媒体でよく、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、及びＵＳＢ（Universal Serial Bus）メモリ等のフラッシュメモリの少なくとも１つを含んでよい。メモリ１６０は、無人航空機１００から取り外し可能であってよい。メモリ１６０は、作業用メモリとして動作してよい。
【００５９】
ストレージ１７０は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、ＳＤカード、ＵＳＢメモリ、その他のストレージの少なくとも１つを含んでよい。ストレージ１７０は、各種情報、各種データを保持してよい。ストレージ１７０は、無人航空機１００から取り外し可能であってよい。ストレージ１７０は、空撮画像を記録してよい。
【００６０】
ジンバル２００は、ヨー軸、ピッチ軸、及びロール軸を中心に撮像部２２０を回転可能に支持してよい。ジンバル２００は、ヨー軸、ピッチ軸、及びロール軸の少なくとも１つを中心に撮像部２２０を回転させることで、撮像部２２０の撮像方向を変更してよい。
【００６１】
回転翼機構２１０は、複数の回転翼と、複数の回転翼を回転させる複数の駆動モータと、を有する。回転翼機構２１０は、ＵＡＶ制御部１１０により回転を制御されることにより、無人航空機１００を飛行させる。回転翼２１１の数は、例えば４つでもよいし、その他の数でもよい。また、無人航空機１００は、回転翼を有さない固定翼機でもよい。
【００６２】
撮像部２２０は、所望の撮像範囲の被写体を撮像して撮像画像のデータを生成する。撮像部２２０の撮像により得られた画像データ（例えば空撮画像）は、撮像部２２０が有するメモリ、又はストレージ１７０に格納されてよい。
【００６３】
撮像部２３０は、無人航空機１００の周囲を撮像して撮像画像のデータを生成する。撮像部２３０の画像データは、ストレージ１７０に格納されてよい。
【００６４】
ＧＰＳ受信機２４０は、複数の航法衛星（つまり、ＧＰＳ衛星）から発信された時刻及び各ＧＰＳ衛星の位置（座標）を示す複数の信号を受信する。ＧＰＳ受信機２４０は、受信された複数の信号に基づいて、ＧＰＳ受信機２４０の位置（つまり、無人航空機１００の位置）を算出する。ＧＰＳ受信機２４０は、無人航空機１００の位置情報をＵＡＶ制御部１１０に出力する。なお、ＧＰＳ受信機２４０の位置情報の算出は、ＧＰＳ受信機２４０の代わりにＵＡＶ制御部１１０により行われてよい。この場合、ＵＡＶ制御部１１０には、ＧＰＳ受信機２４０が受信した複数の信号に含まれる時刻及び各ＧＰＳ衛星の位置を示す情報が入力される。
【００６５】
慣性計測装置２５０は、無人航空機１００の姿勢を検出し、検出結果をＵＡＶ制御部１１０に出力する。慣性計測装置２５０は、無人航空機１００の姿勢として、無人航空機１００の前後、左右、及び上下の３軸方向の加速度と、ピッチ軸、ロール軸、及びヨー軸の３軸方向の角速度とを検出してよい。
【００６６】
磁気コンパス２６０は、無人航空機１００の機首の方位を検出し、検出結果をＵＡＶ制御部１１０に出力する。
【００６７】
気圧高度計２７０は、無人航空機１００が飛行する高度を検出し、検出結果をＵＡＶ制御部１１０に出力する。
【００６８】
超音波センサ２８０は、超音波を放射し、地面や物体により反射された超音波を検出し、検出結果をＵＡＶ制御部１１０に出力する。検出結果は、無人航空機１００から地面までの距離つまり高度を示してよい。検出結果は、無人航空機１００から物体（被写体）までの距離を示してよい。
【００６９】
レーザー測定器２９０は、物体にレーザー光を照射し、物体で反射された反射光を受光し、反射光により無人航空機１００と物体（被写体）との間の距離を測定する。レーザー光による距離の測定方式は、一例として、タイムオブフライト方式でよい。
【００７０】
図５は、端末８０のハードウェア構成の一例を示すブロック図である。端末８０は、端末制御部８１、操作部８３、通信部８５、メモリ８７、表示部８８、及びストレージ８９を備える。端末８０は、複数の無人航空機１００の飛行制御の指示を希望するユーザに所持され得る。
【００７１】
端末制御部８１は、例えばＣＰＵ、ＭＰＵ又はＤＳＰを用いて構成される。端末制御部８１は、端末８０の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。
【００７２】
端末制御部８１は、通信部８５を介して、無人航空機１００からのデータ（例えば、各種計測データ、空撮画像データ）や情報（例えば、無人航空機１００の位置情報、無人航空機同士が衝突する旨の情報）を取得してもよい。端末制御部８１は、操作部８３を介して入力されたデータや情報（例えば各種パラメータ）を取得してもよい。端末制御部８１は、メモリ８７に保持されたデータや情報を取得してもよい。端末制御部８１は、通信部８５を介して、無人航空機１００へ、データや情報（例えば無人航空機の位置、速度、飛行経路の情報）を送信させてもよい。端末制御部８１は、データや情報を表示部８８に送り、このデータや情報に基づく表示情報を表示部８８に表示させてもよい。
【００７３】
端末制御部８１は、複数の無人航空機１００（無人航空機群１００Ｇとも称する）の飛行制御を指示するためのアプリケーションを実行してもよい。端末制御部８１は、アプリケーションで用いられる各種のデータを生成してもよい。
【００７４】
操作部８３は、端末８０のユーザにより入力されるデータや情報を受け付けて取得する。操作部８３は、ボタン、キー、タッチスクリーン、マイクロホン、等の入力装置を含んでもよい。ここでは、主に、操作部８３と表示部８８とがタッチパネルにより構成されることを例示する。この場合、操作部８３は、タッチ操作、タップ操作、ドラック操作等を受付可能である。操作部８３は、各種パラメータの情報を受け付けてもよい。操作部８３により入力された情報は、無人航空機１００へ送信されてもよい。
【００７５】
通信部８５は、各種の無線通信方式により、無人航空機１００との間で無線通信する。この無線通信の無線通信方式は、例えば、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又は公衆無線回線を介した通信を含んでよい。通信部８５は、任意の有線通信方式により有線通信してよい。
【００７６】
メモリ８７は、例えば端末８０の動作を規定するプログラムや設定値のデータが格納されたＲＯＭと、端末制御部８１の処理時に使用される各種の情報やデータを一時的に保存するＲＡＭを有してもよい。メモリ８７は、ＲＯＭ及びＲＡＭ以外のメモリが含まれてよい。メモリ８７は、端末８０の内部に設けられてよい。メモリ８７は、端末８０から取り外し可能に設けられてよい。プログラムは、アプリケーションプログラムを含んでよい。
表示部８８は、例えばＬＣＤ（Liquid Crystal Display）を用いて構成され、端末制御部８１から出力された各種の情報やデータを表示する。表示部８８は、アプリケーションの実行に係る各種データや情報を表示してもよい。
【００７７】
ストレージ８９は、各種データ、情報を蓄積し、保持する。ストレージ８９は、ＨＤＤ、ＳＳＤ、ＳＤカード、ＵＳＢメモリ、等でよい。ストレージ８９は、端末８０の内部に設けられてもよい。ストレージ８９は、端末８０から取り外し可能に設けられてもよい。ストレージ８９は、無人航空機１００から取得された空撮画像や付加情報を保持してよい。付加情報は、メモリ８７に保持されてよい。
【００７８】
次に、複数の無人航空機１００を含む無人航空機群１００Ｇの飛行制御の指示に関する機能について説明する。ここでは、端末８０の端末制御部８１が無人航空機群１００Ｇの飛行制御の指示に関する機能を有することを主に説明するが、無人航空機１００が無人航空機群１００Ｇの飛行制御の指示に関する機能を有してよい。端末制御部８１は、処理部の一例である。端末制御部８１は、無人航空機群１００Ｇの飛行制御の指示に関する処理を行う。
【００７９】
飛行制御の対象となる無人航空機群１００Ｇは、互いに連携して飛行する複数の無人航空機１００であってもよいし、連携することなくある空間に群がって飛行する複数の無人航空機１００であってもよく、特に限定されない。
【００８０】
端末制御部８１は、無人航空機１００の飛行パラメータを取得する。端末制御部８１は、通信部８５を介して無人航空機１００の飛行パラメータを取得してよい。飛行パラメータは、無人航空機１００の位置、速度、加速度を含んでよい。端末制御部８１は、無人航空機１００の位置を、例えばＧＰＳ受信機２４０や超音波センサ２８０を介して取得してよい。端末制御部８１は、無人航空機１００の加速度を、慣性計測装置２５０を介して取得してよい。端末制御部８１は、無人航空機１００の速度を、無人航空機１００の位置を微分した微分値を基に取得してよいし、無人航空機１００の加速度を積分した積分値を基に取得してよい。
【００８１】
端末制御部８１は、無人航空機群１００Ｇの飛行位置により形成するための飛行形状を取得する。無人航空機群１００Ｇにおける複数の無人航空機１００は、取得された飛行形状となるように、飛行制御することになる。つまり、無人航空機群１００Ｇがこの飛行形状を形成することを目標として飛行することから、この取得された飛行形状をターゲット形状とも称する。端末制御部８１は、メモリ８７に保持されたターゲット形状の情報を取得してよい。端末制御部８１は、通信部８５を介して外部装置からターゲット形状の情報を取得してよい。
【００８２】
端末制御部８１は、操作部８３を介してユーザ操作を受け、ターゲット形状を生成してよい。つまり、端末８０は、ユーザ操作を基にターゲット形状を生成することで、ユーザ所望のターゲット形状を新たに生成できる。この場合、端末制御部８１は、取得された各無人航空機１００の位置を表示部８８に表示させてよい。端末制御部８１は、操作部８３を介してユーザ操作を受け、表示部８８に表示された無人航空機群１００Ｇの数及び位置を考慮して、ターゲット形状を生成することで、ターゲット形状を取得してよい。例えば、操作部８３を介して、ユーザが無人航空機群１００Ｇを表示するタッチパネルに対し所定の形状を描くようにユーザ入力することで、ターゲット形状が生成されてよい。
【００８３】
ターゲット形状は、平面的（二次元）に設定されてもよいし、立体的（三次元）に設定されてもよい。立体的に設定される場合、ターゲット形状は、三角形、四角形等の多角形、円形、楕円形、等の形状であってもよい。立体的に設定される場合、ターゲット形状は、三角錐、四角推等の多角推、三角柱や四角柱等の多角柱、円錐、円柱、楕円体、球等の形状であってもよい。
【００８４】
端末制御部８１は、ターゲット形状が配置される位置を取得する。無人航空機群１００Ｇにおける複数の無人航空機１００は、取得された位置においてターゲット形状となるように、飛行制御することになる。つまり、無人航空機群１００Ｇがこの位置を目標として飛行することから、この取得された位置をターゲット位置とも称する。端末制御部８１は、メモリ８７に保持されたターゲット位置の情報を取得してよい。端末制御部８１は、通信部８５を介して外部装置からターゲット位置の情報を取得してよい。端末制御部８１は、操作部８３を介してユーザ操作を受け、ターゲット位置を生成してよい。つまり、端末８０は、ユーザ操作を基にターゲット位置を決定することで、ユーザ所望のターゲット位置を新たに生成できる。ターゲット位置は、ターゲット形状全体の位置でもよいし、ターゲット形状の内部の任意の位置でもよい。ターゲット形状は、ターゲット形状における何らかの基準点、頂点、中心点、重心点、ターゲット形状の外縁、周端となる端辺の任意の点でよい。
【００８５】
端末制御部８１は、安全距離ｒｓを取得してよい。安全距離ｒｓは、例えば、他の無人航空機１００との衝突を回避するための距離でよい。端末制御部８１は、メモリ８７に保持された安全距離ｒｓの情報を取得してよい。端末制御部８１は、通信部８５を介して外部装置から安全距離ｒｓの情報を取得してよい。端末制御部８１は、操作部８３を介してユーザ操作を受け、安全距離ｒｓを生成してよい。つまり、端末８０は、ユーザ操作を基に安全距離ｒｓを決定することで、ユーザ所望の安全距離ｒｓを生成できる。
【００８６】
図６は、例えば飛行中の複数の無人航空機１００の位置を示す図である。図中、各無人航空機１００の位置を中心とする球面（３次元空間において等距離にある点の集合面）は、他の無人航空機１００との衝突を回避するための安全距離ｒｓの範囲を表す安全圏ｓｒを示す。小型の無人航空機１００の場合、安全距離ｒｓは短く、大型の無人航空機の場合、安全距離ｒｓは長く設定されてよい。安全距離として、例えば２〜３ｍが挙げられる。なお、安全距離ｒｓは、無人航空機１００のサイズに応じて可変でよい。
【００８７】
安全距離ｒｓは、無人航空機１００を中心とする周囲において等距離に設定されることを例示したが、無人航空機１００の飛行方向に応じて異なるように設定されてもよい。例えば、無人航空機１００の進行方向に対しては安全距離ｒｓが長く設定され、その反対方向に対しては安全距離ｒｓを短く設定されてもよい。
【００８８】
安全距離ｒｓは、無人航空機１００の速度に応じて異なるように設定されてもよい。例えば、無人航空機の速度が速い場合、安全距離ｒｓが長く設定され、無人航空機１００の速度が遅い場合、安全距離ｒｓが短く設定されてもよい。
【００８９】
安全距離ｒｓは、無人航空機１００の機種によって異なるように設定されてもよい。例えば、最高速度の遅い、サイズが小さい、小回りが利く等の仕様を有する無人航空機１００の安全距離ｒｓが短く設定され、最高速度の速い、サイズが大きい、小回りが利かない等の仕様を有する安全距離ｒｓが長く設定されてもよい。
【００９０】
図７は、飛行シミュレーションにおいて、複数の無人航空機１００が無人航空機群１００Ｇとして連携して飛行するためのターゲットＴＧの形状（ターゲット形状）及びターゲットＴＧの位置（ターゲット位置）を示す図である。図７では、ターゲットＴＧは、無人航空機群１００Ｇに含まれる複数の無人航空機１００を全て収容可能な大きさを有し、ターゲット形状は、三角形である。この三角形は、鉛直方向（重力方向）に設定されてもよいし、重力方向に対して垂直な水平方向あるいは所定の角度方向に設定されてもよい。ここでは、ターゲットＴＧの形状は、端末８０を所持するユーザが視覚的に分かり易い飛行隊形となるように、重力方向（図７の上下方向）に設定された三角形であるとする。
【００９１】
また、ターゲット位置は、無人航空機群１００Ｇが飛行する方向（進行方向）に設定される。ターゲットＴＧの位置は、固定された位置に設定されてもよいし、無人航空機群１００Ｇが飛行する位置に応じて、その進行方向に連動するように可変した位置に設定されてもよい。例えば、ターゲットＴＧは、無人航空機群１００Ｇから進行方向２００ｍ先の位置に設定される場合、無人航空機群１００Ｇがこの２００ｍ先の位置に設定されたターゲットＴＧに近づくと、次のターゲットＴＧが進行方向５０ｍ先の位置に設定されてもよい。
【００９２】
無人航空機群１００ＧがターゲットＴＧの内側に全て収容されると、端末制御部８１は、無人航空機群１００Ｇの飛行形状（隊形）を確定し、無人航空機群１００ＧがターゲットＴＧに向かうための飛行制御の指示を終了させてもよい。無人航空機群１００Ｇの飛行形状が崩れた場合には、端末制御部８１は、再度、この飛行制御の指示を再開してもよい。
【００９３】
端末制御部８１は、無人航空機群１００Ｇをターゲット位置においてターゲット形状となるように、飛行シミュレーションを行い、無人航空機群１００Ｇの飛行を制御するための飛行制御情報を生成する。飛行シミュレーションは、例えば、無人航空機群１００Ｇに作用させる引力Ｆａ、無人航空機群１００Ｇに作用させる斥力Ｆｒ、無人航空機群１００Ｇが飛行する際の加速度、速度、位置の算出を含んでよい。引力Ｆａ及び斥力Ｆｒは、各無人航空機１００に加速度が与え、つまり無人航空機１００が飛行するための動力を与える。引力Ｆａ及び斥力Ｆｒは、ターゲット位置における複数の無人航空機１００のそれぞれの位置へ誘導するためのパラメータの一例である。引力Ｆａは、第１のパラメータの一例である。斥力Ｆｒは、第２のパラメータの一例である。
【００９４】
端末制御部８１は、無人航空機群１００Ｇをターゲット位置へ誘導するための引力Ｆａを取得してよい。端末制御部８１は、複数の無人航空機１００のそれぞれの引力Ｆａを取得してよい。端末制御部８１は、操作部８３を介してユーザ操作を受け、引力Ｆａの値を取得してよい。
【００９５】
端末制御部８１は、無人航空機群１００Ｇがターゲット形状を保つための斥力Ｆｒを算出してよい。この場合、端末制御部８１は、無人航空機群１００Ｇに含まれる各無人航空機１００が他の無人航空機１００から離間するための斥力Ｆｒ１を加味した斥力Ｆｒを算出してよい。端末制御部８１は、ターゲット形状の端辺から離間するための斥力Ｆｒ２を加味した斥力Ｆｒを算出してよい。例えば、ターゲット形状の外縁となる端辺から力を受けるように、斥力Ｆｒを算出してよい。端末制御部８１は、斥力Ｆｒ１，Ｆｒ２を合成して斥力Ｆｒを算出してよい。端末制御部８１は、複数の無人航空機１００のそれぞれの斥力Ｆｒを算出してよい。
【００９６】
図８は、飛行シミュレーションにおいて、各無人航空機１００をターゲット位置に近づけるための引力Ｆａを説明する図である。端末８０は、飛行シミュレーションにおいて、各無人航空機１００に作用する引力Ｆａを決定する。引力Ｆａの決定例を以下に第１例及び第２例を示す。
【００９７】
第１例では、端末制御部８１は、ターゲットＴＧの重心ＧＰの位置を、ターゲット位置として決定する。この場合、各無人航空機１００に作用する引力Ｆａは、それぞれ各無人航空機１００からターゲットＴＧの重心ＧＰに向かう力であり、ベクトルで表される。ターゲット位置が重心ＧＰに決定された場合、ターゲット形状内に収容される無人航空機群１００Ｇをバランス良く配置可能である。
【００９８】
第２例では、端末制御部８１は、各無人航空機１００から最も遠い位置である、ターゲットＴＧの先端ｔｐの位置を、ターゲット位置として決定する。この場合、各無人航空機１００に作用する引力Ｆａは、それぞれ各無人航空機１００からターゲットＴＧの先端ｔｐに向かうベクトル力で表される。ターゲット位置が先端ｔｐに決定された場合、無人航空機群１００ＧがターゲットＴＧに収容されると、ターゲットＴＧの先端ｔｐ側に多くの無人航空機１００が集まり易くなる。よって、端末８０は、例えば無人航空機群１００Ｇを観察する者に対し、無人航空機群１００Ｇが突き進んでいくような飛行イメージを与えることができる。
【００９９】
なお、無人航空機群１００Ｇに含まれる複数の無人航空機１００がターゲットＴＧの内側に入った場合、無人航空機１００の位置によっては、先端ｔｐが各無人航空機１００から最も遠い位置とは限らない。したがって、複数の無人航空機１００がターゲットＴＧの外側にいる場合に限り、先端ｔｐが複数の無人航空機１００のターゲット位置として決定されてもよい。また、ターゲット位置がターゲットＴＧの先端ｔｐの位置とされた場合において、複数の無人航空機１００が飛行を継続することでターゲットＴＧの内側に入った場合でも、ターゲット位置が変わることなく、ターゲットＴＧの先端ｔｐの位置に固定されてもよい。
【０１００】
例えば、端末制御部８１は、操作部８３を介してユーザ操作を受け、引力Ｆａの値を任意に決定してよい。例えば、端末制御部８１は、操作部８３を介して、引力Ｆａを３Ｎ（ニュートン）に決定できる。引力Ｆａは、複数の無人航空機１００に対し、同一の値に決定されてよい。なお、引力Ｆａは、無人航空機１００毎に異なる値に決定されてもよい。例えば、引力Ｆａは、無人航空機１００の位置関係に応じて、無人航空機１００毎に異なる値に設定されてもよい。引力Ｆａが設定されることで、各無人航空機１００には、ターゲット位置に向かう力が作用する。
【０１０１】
図９は、飛行シミュレーションにおいて、無人航空機１００の衝突を回避するための斥力Ｆｒを説明する図である。端末８０は、飛行シミュレーションにおいて、各無人航空機１００に作用する斥力Ｆｒを決定する。斥力Ｆｒは、斥力Ｆｒ１及び斥力Ｆｒ２を含んでよい。斥力Ｆｒは、斥力Ｆｒ１及び斥力Ｆｒ２が合成（ベクトル合成）された力でよい。
【０１０２】
斥力Ｆｒ１は、無人航空機１００が近傍の無人航空機１００との衝突を回避するために、無人航空機１００に働く力であり、ベクトルで表される。図９では、位置ｐに位置する無人航空機１００が近傍の無人航空機１００との衝突を回避するために、端末制御部８１は、斥力Ｆｒ１（Ｆｒ１１，Ｆｒ１２，Ｆｒ１３）を発生させる。なお、斥力Ｆｒ１は、自機としての無人航空機１００が他機としての他の無人航空機１００から受ける力であり、自機としての無人航空機１００が他機に及ぼす押す力とは、方向が１８０度異なる（逆方向となる）。斥力Ｆｒ１により、自機と他機との衝突が回避される。
【０１０３】
端末制御部８１は、位置ｐに位置する無人航空機１００が近傍の無人航空機１００から受ける斥力Ｆｒ１を、式（１）に従って算出してよい。
【０１０４】
【数１】
2019101587.tif 000003
【０１０５】
式（１）において、ｄ１ｎは、注目の（任意の）無人航空機１００と他の無人航空機１００との間の距離を表す。ｒｓは、前述した安全距離である。ｎは、近傍の無人航空機１００の数（nearby）内の変数である。近傍の無人航空機１００は、注目の無人航空機１００に対し、周囲に位置する複数の無人航空機１００であり、無人航空機群１００Ｇに含まれる複数の無人航空機１００の全体又は一部でよい。図９では、近傍の無人航空機１００は６つでよい。
【０１０６】
式（１）では、無人航空機１００が安全距離ｒｓに近づく程、大きな斥力Ｆｒ１が発生する。そのため、注目の無人航空機１００が、近傍の無人航空機１００との衝突を避けることができる。
【０１０７】
このように、端末制御部８１は、各無人航空機１００について、無人航空機１００とこの無人航空機１００以外の他の無人航空機１００との間の距離ｄ１ｎと、他の無人航空機１００への衝突を回避するための安全距離ｒｓと、に基づいて、無人航空機１００の斥力Ｆｒ１を算出してよい。これにより、端末８０は、無人航空機１００間の距離とともに安全距離ｒｓを考慮して無人航空機１００間の距離を安全に確保できる。したがって、端末８０は、無人航空機群１００ＧがターゲットＴＧを実現するために無人航空機１００同士が衝突する事態を抑制できる。
【０１０８】
斥力Ｆｒ２は、ターゲットＴＧの端辺（周端、壁とも称する）から離間するために、無人航空機１００に働く力であり、ベクトルで表される。斥力Ｆｒ２は、無人航空機群１００Ｇの少なくとも一部がターゲットＴＧの内側に入った場合に存在するとされてよい。斥力Ｆｒ２は、無人航空機群１００ＧがターゲットＴＧの外側に位置する場合には、存在しないとされてもよい。
【０１０９】
端末制御部８１は、無人航空機１００がターゲットＴＧの端辺から受ける斥力Ｆｒ２を、式（２）に従って算出してよい。
【０１１０】
【数２】
2019101587.tif 000004
【０１１１】
式（２）において、ｄ２ｎは、無人航空機１００とターゲットＴＧの端辺との間の距離を表す。ｒｓは、式（１）と同様、安全距離である。ｎは、三角形の辺の数（値３）内の変数である。なお、ターゲット形状が三角形でない場合、ｎの値は変化する。
【０１１２】
式（２）では、無人航空機１００がターゲットＴＧの端辺に近づく程、大きな斥力Ｆｒ２が発生し、ターゲットＴＧの端辺との衝突を避けるように、つまり無人航空機群１００Ｇを形成する一番外側の無人航空機１００がターゲットＴＧの内側に位置し続けるように、作用する。
【０１１３】
このように、端末制御部８１は、各無人航空機１００とターゲットＴＧの端辺との間の距離ｄ２ｎに基づいて、各無人航空機１００の斥力Ｆｒ２を算出してよい。これにより、端末８０は、例えば無人航空機１００がターゲットＴＧに入った場合、無人航空機１００の周囲に存在するターゲットＴＧの端辺からの距離を確保できる。したがって、端末８０は、複数の無人航空機１００がターゲットＴＧの形状に対して過度に小さくなったり大きくなったりすることを抑制でき、適正に無人航空機群１００Ｇの飛行隊形を維持できる。
【０１１４】
端末制御部８１は、引力Ｆａ及び斥力Ｆｒに基づいて、無人航空機群１００Ｇの飛行の制御を指示する。この場合、端末制御部８１は、引力Ｆａ及び斥力Ｆｒに基づいて、飛行制御情報を生成する。飛行制御情報は、無人航空機群１００Ｇが飛行する際の飛行位置や飛行速度を指示するための情報でよい。
【０１１５】
端末制御部８１は、引力Ｆａ及び斥力ｆｒを合成（ベクトル合成）し、合力Ｆｗを算出してよい。端末制御部８１は、合力ｆｓを基に、第１の時点の一例としての時刻ｔ１での加速度、時刻ｔ１に後続する第２の時点の一例としての時刻ｔ２（例えば時刻ｔ１の微小時間後の時点）の速度及び位置を算出してよい。
【０１１６】
図１０は、無人航空機１００に作用する合力Ｆｗ及び加速度Ａｎの算出を説明するための図である。
【０１１７】
端末制御部８１は、引力Ｆａのベクトル（Ｆａベクトル）及び斥力Ｆｒのベクトル（Ｆｒベクトル）を合成し、合力Ｆｗのベクトル（Ｆｗベクトル）（＝Ｆａベクトル＋Ｆｒベクトル）を得る。端末制御部８１は、式（３）に従って、合力Ｆｗを無人航空機１００の質量Ｍｎで除することで、加速度Ａｎのベクトル（Ａｎベクトル）を算出する。Ａｎ，Ｍｎの「ｎ」は、個々の無人航空機１００を表す変数である。
【０１１８】
【数３】
2019101587.tif 000005
【０１１９】
端末制御部８１は、算出された時刻ｔ１での加速度Ａｎのベクトルを基に、式（４）に従って、時刻ｔ２における無人航空機１００の速度Ｖｎのベクトルを算出してよい。時刻ｔ２は、例えば、加速度Ａｎを算出する周期（例えば、０．１秒）に相当してよい。速度Ｖｎは、飛行シミュレーションを基に無人航空機１００が飛行する際の飛行速度の予定値であり、飛行制御情報の一例である。
【０１２０】
【数４】
2019101587.tif 000006
【０１２１】
端末制御部８１は、算出された速度Ｖｎのベクトルを基に、式（５）に従って、時刻ｔ２における無人航空機１００の位置Ｐｎを算出してよい。位置Ｐｎは、飛行シミュレーションを基に無人航空機１００が飛行する際の飛行位置の予定値であり、飛行制御情報の一例である。
【０１２２】
【数５】
2019101587.tif 000007
【０１２３】
このように、端末制御部８１は、引力Ｆａ及び斥力Ｆｒに基づいて、次の時点Δｔ（時刻ｔ１のΔｔ後の時刻ｔ２）における無人航空機１００の位置Ｐｎ及び速度Ｖｎを算出してよい。したがって、端末８０は、飛行シミュレーションによって無人航空機１００の位置Ｐｎ及び速度Ｖｎの予定値を得ることができる。無人航空機１００は、端末８０からこの無人航空機１００の位置Ｐｎ及び速度Ｖｎの予定値を得て、飛行制御することにより、実空間において、飛行シミュレーションにより得られた速度で飛行し、飛行シミュレーションにより得られた位置に飛行できる。飛行シミュレーションにより得られる時刻ｔ２の位置は、無人航空機１００毎に異なる。よって、無人航空機１００は、他の無人航空機１００と衝突することなく、また、ターゲットＴＧの端辺と衝突することなく、目標位置に向かって飛行できる。
【０１２４】
図１１は、無人航空機群１００Ｇに含まれる各無人航空機１００に作用する加速度Ａｎを示す図である。端末制御部８１は、無人航空機群１００Ｇの各無人航空機１００が、それぞれ合力Ｆｗに応じた加速度Ａｎで加速し、ターゲット位置に向かって飛行させるよう、無人航空機１００毎に飛行制御情報を生成する。図１１に示す時点（例えば時刻ｔ１）では、位置ｐ０に位置する無人航空機１００の安全圏ｓｒと、位置ｐ１，ｐ２に位置する無人航空機１００の安全圏ｓｒとが一部重複している。この場合、無人航空機１００同士の衝突を避けるために、例えば位置ｐ０に位置する無人航空機１００には、位置ｐ１，ｐ２に位置する無人航空機１００から斥力Ｆｒ１が働く。位置ｐ０に位置する無人航空機１００には、引力Ｆａも働く。この結果、位置ｐ０に位置する無人航空機１００に対し、図１１の矢印で示す方向に向かう加速度Ａｎが発生する。他の無人航空機１００についても同様に、引力Ｆａ及び斥力Ｆｒが作用し、合力Ｆｗに基づく加速度Ａｎが作用する。
【０１２５】
図１２は、図１１の時点から時間が経過した時点（例えば時刻ｔ２）において、無人航空機群１００Ｇに含まれる各無人航空機１００に作用する加速度Ａｎを示す図である。図１２に示す時点では、図１１の時点と比較すると、安全圏ｓｒ同士が重複することなく、ターゲットＴＧに近づくように、飛行制御情報を生成する。したがって、各無人航空機１００は、安全圏ｓｒ同士が重複することなく、ターゲットＴＧに向かって飛行可能となる。
【０１２６】
図１３は、図１２の時点から時間が経過し、無人航空機群１００Ｇに含まれる各無人航空機１００に作用する加速度Ａｎを示す図である。図１３に示す時点では、図１２の時点と比較すると、ターゲットＴＧに無人航空機群１００Ｇの一部の無人航空機１００が進入している。端末制御部８１は、無人航空機群１００Ｇの一部の無人航空機１００がターゲットＴＧに進入すると、ターゲットＴＧの端辺から斥力Ｆｒ２を受け、各無人航空機１００がターゲットＴＧ内に留まるように、飛行制御情報を生成する。したがって、各無人航空機１００は、各無人航空機１００がターゲットＴＧ内に留まって飛行可能である。
【０１２７】
図１４は、図１２の時点から時間が経過し、ターゲットＴＧ内に収まった無人航空機群１００Ｇの各無人航空機１００の位置関係を示す図である。図１４では、無人航空機群１００Ｇに含まれる全ての無人航空機１００がターゲットＴＧの内側に収まっている。図１４では、一部の無人航空機１００の安全圏ｓｒが重複している。無人航空機群１００ＧがターゲットＴＧの内側に収容された場合、無人航空機群１００ＧがターゲットＴＧに向かう飛行制御が終了してよい。つまり、端末制御部８１は、無人航空機群１００ＧがターゲットＴＧの内側に収容された場合、飛行シミュレーションを終了し、各無人航空機１００の加速度Ａｎ、速度Ｖｎ、位置Ｐｎの算出を終了する。
【０１２８】
なお、無人航空機群１００ＧがターゲットＴＧの内側に収容された場合、端末制御部８１は、安全圏ｓｒの範囲を狭めてもよい。つまり端末制御部８１は、安全距離ｒｓを短くしてもよい。これにより、端末８０は、各無人航空機１００の安全圏ｓｒが重複することを抑制できる。なお、ターゲットＴＧの形状が三角錐等の立体的な形状である場合、各無人航空機１００の安全圏ｓｒは、平面的（二次元的）に重複していても、立体的（三次元的）に重複していないこともある。
【０１２９】
端末制御部８１は、無人航空機群１００Ｇの停止条件を満たした場合、無人航空機群１００ＧがターゲットＴＧに向かう飛行制御を終了してよい。この場合、端末制御部８１は、飛行シミュレーションを終了してよく、つまり無人航空機群１００Ｇの各無人航空機１００の飛行を制御するための飛行制御情報の生成を終了してよく、各無人航空機１００の位置や速度の予定値の生成を終了してよい。無人航空機群１００Ｇの停止条件は、飛行シミュレーションにより算出された無人航空機群１００Ｇに含まれる各無人航空機１００の速度Ｖｎがいずれも閾値ｔｈ１以下となることを含んでよい。無人航空機１００の速度Ｖｎが閾値ｔｈ１以下となることには、例えば、無人航空機１００の着地、ホバリング、低速飛行（例えば１ｍ／ｓ以下）等が含まれてよい。
【０１３０】
端末制御部８１は、図６〜図１４に示された無人航空機群１００ＧやターゲットＴＧや飛行シミュレーションによる様々な導出結果（例えば引力Ｆａ、斥力Ｆｒ，合力Ｆｗ，加速度Ａｎ、速度Ｖｎ）の情報を、表示部８８に表示させてもよい。これにより、端末８０は、飛行シミュレーションにおける途中経過や結果を可視化でき、ユーザが直感的に理解し易くなるようにできる。
【０１３１】
次に、飛行体群制御システム１０の動作例について説明する。
【０１３２】
図１５は、端末８０及び無人航空機１００の動作手順の第１例を示すシーケンス図である。図１５の動作は、各無人航空機１００が飛行中に行われてよい。
【０１３３】
無人航空機１００（各無人航空機１００）では、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して、自機の位置及び速度の情報を端末８０に送信する（Ｓ１１）。なお、ＵＡＶ制御部１１０は、自機の速度を送信せずに、端末８０の端末制御部８１により算出されてもよい。
【０１３４】
端末８０では、端末制御部８１は、無人航空機群１００Ｇに含まれる各無人航空機１００のパラメータを取得する（Ｓ１）。無人航空機１００のパラメータは、無人航空機１００の位置、速度、安全距離ｒｓ、等の情報を含む。端末制御部８１は、通信部８５を介して無人航空機１００と通信を行い、無人航空機１００から各無人航空機１００の位置及び速度を受信してよい。端末８０は、通信部８５を介して各無人航空機１００の位置及び速度を各無人航空機１００から取得することで、飛行中の無人航空機１００のパラメータ（リアルタイムのパラメータ）を取得できる。ここで得られる無人航空機１００の位置及び速度は、飛行シミュレーション前（時刻ｔ１１）の値となる。時刻ｔ１１は、時刻ｔ１の一例である。
【０１３５】
端末制御部８１は、ターゲット形状及びターゲット位置の情報を取得する（Ｓ２）。端末制御部８１は、ターゲットＴＧの形状を用いて、飛行シミュレーションを実行する（Ｓ３）。
【０１３６】
端末制御部８１は、飛行シミュレーションの結果、無人航空機１００毎に得られた位置及び速度を含む飛行制御情報を、通信部８５を介して各無人航空機１００に送信する（Ｓ４）。
【０１３７】
無人航空機１００（各無人航空機１００）では、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して飛行制御情報を受信する（Ｓ１２）。ＵＡＶ制御部１１０は、飛行制御情報に従って無人航空機１００の飛行を制御する（Ｓ１３）。この場合、ＵＡＶ制御部１１０は、飛行制御情報に含まれる位置を飛行制御情報に含まれる速度で飛行するよう、無人航空機１００の飛行を制御してよい。
【０１３８】
ＵＡＶ制御部１１０は、通信部８５を介して、無人航空機１００の位置及び速度を端末８０へ送信する（Ｓ１４）。つまり、ＵＡＶ制御部１１０は、シミュレーション結果に基づいて飛行制御している無人航空機１００の位置及び速度の実測値を送信する。速度Ｖｎの実測値（実測速度の一例）は、無人航空機１００の位置や加速度の実測値を基に算出される速度でよい。速度Ｖｎの実測値は、無人航空機１００により算出されて端末８０へ送られてもよいし、無人航空機１００から端末８０へは送られずに、端末８０の端末制御部８１により算出されてもよい。
【０１３９】
端末８０では、端末制御部８１は、通信部８５を介して、各無人航空機１００の位置及び速度の実測値を取得する（Ｓ５）。ここで得られる無人航空機１００の位置及び速度は、シミュレーション後（時刻ｔ１１に後続する時刻ｔ１２）の値となる。また、時刻ｔ１２（時刻ｔ２の一例）の無人航空機１００の位置及び速度は、反復して実行される飛行シミュレーションの次回実行時における、飛行シミュレーション前（時刻ｔ１２に後続する時刻であるが、時刻ｔ１１に相当）の位置及び速度に相当してよい。また、端末制御部８１は、各無人航空機１００から時刻ｔ１２における位置及び速度の実測値を受信すると、受信した各位置を表示部８８に表示させてよい。
【０１４０】
端末制御部８１は、無人航空機群１００Ｇの停止条件を満たすか否かを判定する（Ｓ６）。停止条件を満たさない場合、端末制御部８１は、Ｓ３の処理に戻る。停止条件を満たす場合、端末制御部８１は、図１５の処理を終了する。
【０１４１】
なお、図１５の処理を終了する際に、停止条件を満たす場合には、無人航空機１００を停止するための指示情報を各無人航空機１００に送信しなくても、着地やホバリングにより無人航空機１００はほぼ停止したものと推定できる。この場合、無人航空機群１００Ｇは、ターゲット位置においてターゲット形状を維持できる。
【０１４２】
図１６は、Ｓ３における飛行シミュレーションの動作手順を示すフローチャートである。
【０１４３】
端末制御部８１は、各無人航空機１００に作用する引力Ｆａを算出する（Ｓ２１）。端末制御部８１は、各無人航空機１００に作用する斥力Ｆｒを算出する（Ｓ２２）。端末制御部８１は、引力Ｆａ及び斥力Ｆｒを基に、各無人航空機１００の加速度Ａｎを算出する（Ｓ２３）。端末制御部８１は、各無人航空機１００の加速度Ａｎのベクトルを基に、時刻ｔ１２における各無人航空機１００の位置Ｐｎ及び速度Ｖｎを算出する（Ｓ２４）。この後、端末制御部８１は本動作を終了する。
【０１４４】
このように、端末８０は、無人航空機群１００Ｇに含まれる各無人航空機１００の飛行ルートや飛行位置が事前に設定されていない場合でも、引力Ｆａと斥力Ｆｒとを想定することで、複数の無人航空機１００による飛行形状をターゲット形状となるよう飛行させることができる。また、ユーザは、無人航空機１００に対して個別に飛行ルートや飛行位置の設定のための作業を行う必要がなく、端末８０が容易に無人航空機群１００Ｇの飛行制御を指示できる。また、端末８０は、ターゲット形状に応じて複数の無人航空機１００を移動させることが可能であるので、複数の無人航空機１００を操縦するために複数の操作装置を用意する必要がなく、複数の無人航空機１００を連携させることを容易化できる。
【０１４５】
したがって、端末８０は、無人航空機群１００Ｇを飛行制御するための設定を容易化でき、各無人航空機１００の飛行時の自由度を向上できる。
【０１４６】
また、端末８０は、無人航空機１００の位置Ｐｎ及び速度Ｖｎが算出される度に、各無人航空機１００にそれぞれの位置及び速度を送信できる（反映できる）。したがって、無人航空機１００は、逐次算出された位置及び速度となるように、飛行を制御できる。
【０１４７】
また、端末８０は、飛行シミュレーションの算出結果が反映された無人航空機１００の実空間における位置や速度の実測値を取得する。よって、端末８０は、無人航空機１００の位置Ｐｎや速度Ｖｎが算出された直後に、リアルタイムに飛行シミュレーション結果と実際の無人航空機１００の飛行状態とに乖離がないかを確認できる。また、端末８０は、取得された実測位置を時刻ｔ１１における無人航空機１００の位置として、再度引力Ｆａや斥力Ｆｒを導出することで、実測値に基づく飛行シミュレーションを継続して行うことができる。よって、実測値を用いることから、端末８０は、実際の無人航空機１００の飛行状態との乖離を小さくしながら、無人航空機群１００Ｇが飛行形状を維持して飛行するよう支援できる。
【０１４８】
なお、無人航空機群１００Ｇの飛行形状がターゲット形状となった後には、無人航空機１００は、どのように飛行制御の指示を受けてもよい。例えば、各無人航空機１００では、ＵＡＶ制御部１１０は、予め定められた最終目的地や飛行経路に従って、無人航空機１００の飛行を制御してよい。この場合でも、各無人航空機１００は、各ＵＡＶ制御部１１０が同様の飛行経路（各無人航空機１００の飛行位置が一定量異なる飛行経路）で飛行することで、既に形成された無人航空機群１００Ｇの飛行形状が崩れないように飛行できる。また、ＵＡＶ制御部１１０は、端末８０や送信機に対して操作部を介してユーザが入力した操縦情報を受け、操縦情報に従って無人航空機１００の飛行を制御してよい。この場合でも、各無人航空機１００は、各ＵＡＶ制御部１１０が操縦情報に応じた無人航空機１００の移動量及び移動方向を同じにすることで、既に形成された無人航空機群１００Ｇの飛行形状が崩れないように飛行できる。
【０１４９】
本実施形態の飛行制御指示は、無人航空機１００により実施されてもよい。この場合、無人航空機１００のＵＡＶ制御部１１０が、端末８０の端末制御部８１が有する飛行制御指示に関する機能と同様の機能を有する。ＵＡＶ制御部１１０は、処理部の一例である。ＵＡＶ制御部１１０は、飛行制御指示に関する処理を行う。なお、ＵＡＶ制御部１１０による飛行制御指示に関する処理において、端末制御部８１が行う飛行制御指示に関する処理と同様の処理については、その説明を省略又は簡略化する。
【０１５０】
飛行制御指示は、１つの無人航空機１００が全無人航空機の飛行制御を指示してもよいし、各無人航空機１００がそれぞれ自機の飛行制御を指示してもよい。飛行制御を指示する無人航空機１００を、特定の無人航空機１００とも称する。特定の無人航空機１００は情報処理装置の一例である。
【０１５１】
図１７は、端末８０及び無人航空機１００の動作手順の第２例を示すシーケンス図である。なお、図１５，図１６に示した動作手順と同様の処理については、その説明を省略又は簡略化する。
【０１５２】
特定の無人航空機１００では、ＵＡＶ制御部１１０は、無人航空機群１００Ｇに含まれる各無人航空機１００のパラメータを取得する（Ｓ４１）。無人航空機１００のパラメータは、無人航空機１００の位置、速度、安全距離ｒｓ、等の情報を含む。ＵＡＶ制御部１１０は、通信インタフェース１５０を介して他の無人航空機１００と通信を行い、他の無人航空機１００の位置及び速度を受信してよい。端末８０は、通信部８５を介して各無人航空機１００の位置及び速度を各無人航空機１００から取得することで、飛行中の無人航空機１００のパラメータ（リアルタイムのパラメータ）を取得できる。ここで得られる無人航空機１００の位置及び速度は、飛行シミュレーション前（時刻ｔ１１）の値となる。ＵＡＶ制御部１１０は、ＧＰＳ受信機２４０等から自機の位置を取得してよい。各無人航空機１００の速度は、無人航空機１００の位置を基に算出されてよい。
【０１５３】
ＵＡＶ制御部１１０は、ターゲット形状及びターゲット位置の情報を取得する（Ｓ４２）。ＵＡＶ制御部１１０は、メモリ１６０に保持されたターゲット形状及びターゲット位置の情報を取得してよい。ＵＡＶ制御部１１０は、通信インタフェース１５０を介して外部装置からターゲット形状及びターゲット位置の情報を取得してよい。ＵＡＶ制御部１１０は、端末８０から操作部８３を介したユーザの操作情報を、通信インタフェース１５０を介して取得してよい。ＵＡＶ制御部１１０は、操作情報に基づいて、メモリ１６０に保持された複数のターゲット形状から、任意のターゲット形状を選択して取得してよい。ＵＡＶ制御部１１０は、通信インタフェース１５０を介して、端末８０により生成されたターゲット形状の情報を受信して取得してよい。
【０１５４】
ＵＡＶ制御部１１０は、飛行シミュレーションを実行する（Ｓ４３）。図１７の飛行シミュレーションは、図１５の飛行シミュレーションと比較すると、飛行シミュレーションの各ステップを実行する主体が端末８０の端末制御部８１から特定の無人航空機１００のＵＡＶ制御部１１０に変更となる。その他の点は、図１６に示した処理の通りであるので、詳細な説明を省略する。
【０１５５】
ＵＡＶ制御部１１０は、飛行シミュレーションの結果、無人航空機１００毎に得られた位置及び速度を含む飛行制御情報を、通信インタフェース１５０を介して他の無人航空機１００に送信する（Ｓ４４）。
【０１５６】
ＵＡＶ制御部１１０は、飛行シミュレーションにより得られた自機の飛行制御情報に従って、自機としての無人航空機１００の飛行を制御する（Ｓ４５）。この場合、ＵＡＶ制御部１１０は、飛行制御情報に含まれる位置を飛行制御情報に含まれる速度で飛行するよう、無人航空機１００の飛行を制御する。
【０１５７】
ＵＡＶ制御部１１０は、通信インタフェース１５０を介して、他の無人航空機１００の位置及び速度を、他の無人航空機１００から受信する（Ｓ４６）。つまり、ＵＡＶ制御部１１０は、シミュレーション結果に基づいて飛行制御している他の無人航空機１００の位置及び速度の実測値を取得する。速度の実測値は、他の無人航空機１００の位置や加速度の実測値を基に算出される速度でよい。速度の実測値は、他の無人航空機１００により算出されて特定の無人航空機１００（自機）へ送られてもよいし、他の無人航空機１００から特定の無人航空機１００へは送られずに、特定の無人航空機１００のＵＡＶ制御部１１０により算出されてもよい。ここで得られる各無人航空機１００の位置及び速度は、シミュレーション後（時刻ｔ１１に後続する時刻ｔ１２）の値となる。また、時刻ｔ１２の無人航空機１００の位置及び速度は、反復して実行される飛行シミュレーションの次回実行時における、飛行シミュレーション前（時刻ｔ１２に後続する時刻であるが、時刻ｔ１１に相当）の位置及び速度に相当してよい。
【０１５８】
ＵＡＶ制御部１１０は、無人航空機群１００Ｇの停止条件を満たすか否かを判定する（Ｓ４７）。停止条件を満たさない場合、ＵＡＶ制御部１１０は、Ｓ４３の処理に戻る。停止条件を満たす場合、ＵＡＶ制御部１１０は、図１７の処理を終了する。
【０１５９】
このように、無人航空機１００は、無人航空機群１００Ｇに含まれる各無人航空機１００の飛行ルートや飛行位置が事前に設定されていない場合でも、引力Ｆａと斥力Ｆｒとを想定することで、複数の無人航空機１００による飛行形状をターゲット形状となるよう飛行させることができる。また、ユーザは、無人航空機１００に対して個別に飛行ルートや飛行位置の設定のための作業を行う必要がなく、無人航空機１００が容易に無人航空機群１００Ｇの飛行制御を指示できる。また、無人航空機１００は、ターゲット形状に応じて複数の無人航空機１００を移動させることが可能であるので、複数の無人航空機１００を操縦するために複数の操作装置を用意する必要がなく、複数の無人航空機１００を連携させることを容易化できる。
【０１６０】
したがって、無人航空機１００は、無人航空機群１００Ｇを飛行制御するための設定を容易化でき、各無人航空機１００の飛行時の自由度を向上できる。
【０１６１】
また、無人航空機１００が飛行シミュレーションを行うことで、無人航空機１００は、実測値を用いた飛行シミュレーションを実施するための端末８０の処理負荷を軽減できる。なお、端末８０は、操作部８３を介した操作入力や表示部８８を介した表示を行ってもよいし、操作入力や表示を行わなくてもよい。つまり、無人航空機１００のみにより図１７の処理が実施されてよく、端末８０が設けられなくてもよい。
【０１６２】
（第２の実施形態）
第１の実施形態では、飛行シミュレーションの実行中に無人航空機群１００Ｇが飛行中である場合についての動作例を説明した。第２の実施形態では、飛行シミュレーションの実行中に無人航空機群１００Ｇが飛行していない場合（例えば飛行前）の動作を示す。
【０１６３】
第２の実施形態の飛行体群制御システム１０は、第１の実施形態とほぼ同一の構成を有する。第１の実施形態と同一の構成要素については同一の符号を用いることで、その説明を省略する。
【０１６４】
図１８は、第２の実施形態における端末８０及び各無人航空機１００の動作手順の第１例を示すシーケンス図である。なお、図１５〜図１７に示した動作手順と同様の処理については、その説明を省略又は簡略化する。
【０１６５】
無人航空機１００（各無人航空機１００）では、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して、自機の位置及び速度の情報を端末８０に送信する（Ｓ６１）。
【０１６６】
端末８０では、端末制御部８１は、無人航空機群１００Ｇに含まれる各無人航空機１００のパラメータを取得する（Ｓ５１）。無人航空機１００のパラメータは、無人航空機１００の位置、速度、安全距離ｒｓ、等の情報を含む。ここで得られる無人航空機１００の位置及び速度は、飛行シミュレーション前（時刻ｔ２１）の値となる。時刻ｔ２１は、時刻ｔ１の一例である。なお、端末制御部８１は、操作部８３を介してユーザ操作を受け、各無人航空機１００の位置（初期位置）及び速度を指定してもよい。
【０１６７】
端末制御部８１は、ターゲット形状及びターゲット位置の情報を取得する（Ｓ５２）。端末制御部８１は、ターゲット形状及びターゲット位置を基に、飛行シミュレーションを実行する（Ｓ５３）。端末制御部８１は、飛行シミュレーションの結果、無人航空機１００毎に得られた飛行制御情報を、通信部８５を介して各無人航空機１００に送信する（Ｓ５４）。
【０１６８】
無人航空機１００（各無人航空機１００）では、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して飛行制御情報を受信する（Ｓ６２）。ＵＡＶ制御部１１０は、飛行制御情報（例えば飛行経路の情報）に従って無人航空機１００の飛行の制御を開始する（Ｓ６３）。
【０１６９】
図１９は、Ｓ５３における飛行シミュレーションの動作手順を示すフローチャートである。
【０１７０】
端末制御部８１は、各無人航空機１００に作用する引力Ｆａを算出する（Ｓ７１）。端末制御部８１は、各無人航空機１００に作用する斥力Ｆｒを算出する（Ｓ７２）。端末制御部８１は、引力Ｆａ及び斥力Ｆｒを基に、各無人航空機１００の加速度Ａｎを算出する（Ｓ７３）。
【０１７１】
端末制御部８１は、各無人航空機１００の加速度Ａｎのベクトルを基に、時刻ｔ１２における各無人航空機１００の位置Ｐｎ及び速度Ｖｎを算出する（Ｓ７４）。ここで得られる無人航空機１００の位置及び速度（算出速度の一例）は、シミュレーション中（時刻ｔ２１に後続する時刻ｔ２２）の値となる。時刻ｔ２２は、時刻ｔ２の一例である。また、時刻ｔ２２の無人航空機１００の位置及び速度は、反復して実行される飛行シミュレーションの次回実行時における、飛行シミュレーション前（時刻ｔ２２に後続する時刻であるが、時刻ｔ２１に相当）の位置及び速度に相当してよい。また、端末制御部８１は、時刻ｔ２２における位置及び速度を、表示部８８に表示させてよい。
【０１７２】
端末制御部８１は、無人航空機群１００Ｇの停止条件を満たすか否かを判定する（Ｓ７５）。停止条件を満たさない場合、端末制御部８１は、Ｓ７１の処理に戻る。停止条件を満たす場合、端末制御部８１は、無人航空機１００毎に得られた位置及び速度を含む飛行制御情報を生成する（Ｓ７６）。Ｓ７６の後、図１９の処理を終了する。なお、この飛行制御情報は、位置及び速度の代わりに、飛行シミュレーションにより得られた各時点での位置を接続した飛行経路の情報を含んでもよい。飛行経路は、端末制御部８１により生成されてよい。
【０１７３】
したがって、本実施形態では、端末８０は、シミュレーション結果に基づいて飛行制御している無人航空機１００の位置及び速度の実測値を取得せずに、Ｓ７４において得られた位置Ｐｎ及び速度Ｖｎを、次回の飛行シミュレーション（Ｓ７１〜Ｓ７４）において用いる。よって、端末８０は、無人航空機１００の位置Ｐｎ及び速度Ｖｎを飛行シミュレーションの継続中において逐次更新していく。端末８０は、最終的に飛行シミュレーションが終了した段階で、飛行制御情報を各無人航空機１００に１回送信することになる。
【０１７４】
このように、端末８０は、飛行シミュレーションにより無人航空機１００の位置Ｐｎ及び速度Ｖｎを算出し、この算出位置を再び時刻ｔ２１における無人航空機１００の位置として、再度引力Ｆａや斥力Ｆｒを導出する。これにより、端末８０は、実測値を用いずに飛行シミュレーションを継続して行うことができる。また、実測値を用いなくて済み、各無人航空機１００への飛行制御情報の送信が１回で済むことから、端末８０は、無人航空機１００との間のデータ通信を少なくできる。
【０１７５】
また、端末８０は、飛行シミュレーションにより無人航空機１００の位置Ｐｎ及び速度Ｖｎの算出を反復し、無人航空機１００の位置を順次繋げることで、飛行経路を含む飛行制御情報を生成できる。無人航空機１００は、この飛行経路を含む飛行制御情報を取得することで、無人航空機１００の位置の算出に関与することなく、最終的に得られる無人航空機１００の位置の集合である飛行経路に従って、飛行できる。
【０１７６】
また、端末８０は、算出された各無人航空機１００の速度Ｖｎが閾値ｔｈ１以下となるまで飛行シミュレーションを継続し、速度Ｖｎが閾値ｔｈ１以下となった場合に飛行シミュレーションの継続を終了する。つまり、端末８０は、例えば無人航空機１００の飛行が終了したり、各無人航空機１００がホバリングの状態となったりするまで、無人航空機１００の位置Ｐｎや速度Ｖｎを順次算出できる。端末８０は、例えば、無人航空機群１００Ｇの飛行形状がターゲット形状となってホバリングする場合、ターゲット形状を達成した時点で飛行シミュレーションを終了できる。なお、無人航空機群１００Ｇの飛行形状がターゲット形状となった後は、例えば、事前に設定された目的地まで飛行形状を維持して無人航空機群１００Ｇが自動で飛行してもよいし、送信機（プロポ）を介して飛行形状を維持して複数の無人航空機１００を手動で飛行させてもよい。
【０１７７】
本実施形態の飛行制御指示は、無人航空機１００により実施されてもよい。この場合、無人航空機１００のＵＡＶ制御部１１０が、端末８０の端末制御部８１が有する飛行制御指示に関する機能と同様の機能を有する。ＵＡＶ制御部１１０は、飛行制御指示に関する処理を行う。なお、ＵＡＶ制御部１１０による飛行制御指示に関する処理において、端末制御部８１が行う飛行制御指示に関する処理と同様の処理については、その説明を省略又は簡略化する。
【０１７８】
飛行制御指示は、１つの無人航空機１００（特定の無人航空機）が全無人航空機の飛行制御を指示してもよいし、各無人航空機１００がそれぞれ自機の飛行制御を指示してもよい。
【０１７９】
図２０は、第２の実施形態における端末８０及び各無人航空機１００の動作手順の第２例を示すシーケンス図である。なお、図１５〜図１９に示した動作手順と同様の処理については、その説明を省略又は簡略化する。
【０１８０】
特定の無人航空機１００では、ＵＡＶ制御部１１０は、無人航空機群１００Ｇに含まれる各無人航空機１００のパラメータを取得する（Ｓ９１）。無人航空機１００のパラメータは、無人航空機１００の位置、速度、安全距離ｒｓ、等の情報を含む。ここで得られる無人航空機１００の位置及び速度は、飛行シミュレーション前（時刻ｔ２１）の値となる。ＵＡＶ制御部１１０は、ＧＰＳ受信機２４０等から自機の位置を取得してよい。各無人航空機１００の速度は、無人航空機１００の位置を基に算出されてよい。
【０１８１】
ＵＡＶ制御部１１０は、ターゲット形状及びターゲット位置の情報を取得する（Ｓ９２）。
【０１８２】
ＵＡＶ制御部１１０は、飛行シミュレーションを実行する（Ｓ９３）。図２０の飛行シミュレーションは、図１８の飛行シミュレーションと比較すると、飛行シミュレーションの各ステップを実行する主体が端末８０の端末制御部８１から特定の無人航空機１００のＵＡＶ制御部１１０に変更となる。その他の点は、図１９に示した処理の通りであるので、詳細な説明を省略する。
【０１８３】
ＵＡＶ制御部１１０は、飛行シミュレーションの結果、無人航空機１００毎に得られた位置及び速度を含む飛行制御情報を、通信インタフェース１５０を介して他の無人航空機１００に送信する（Ｓ９４）。
【０１８４】
ＵＡＶ制御部１１０は、飛行シミュレーションにより得られた自機の飛行制御情報（例えば飛行経路の情報）に従って、自機としての無人航空機１００の飛行の制御を開始する（Ｓ９５）。
【０１８５】
このように、無人航空機１００が飛行シミュレーションを行うことで、無人航空機１００は、実測値を用いない飛行シミュレーションを実施するための端末８０の処理負荷を軽減できる。なお、端末８０は、操作部８３を介した操作入力や表示部８８を介した表示を行ってもよいし、操作入力や表示を行わなくてもよい。つまり、無人航空機１００のみにより図２０の処理が実施されてよく、端末８０が設けられなくてもよい。
【０１８６】
以上、本開示を実施形態を用いて説明したが、本開示の技術的範囲は上述した実施形態に記載の範囲には限定されない。上述した実施形態に、多様な変更又は改良を加えることが当業者に明らかである。その様な変更又は改良を加えた形態も本開示の技術的範囲に含まれ得ることが、特許請求の範囲の記載からも明らかである。
【０１８７】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現可能である。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「先ず、」、「次に」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１８８】
１０  飛行体群制御システム
８０  端末
８１  端末制御部
８３  操作部
８５  通信部
８７  メモリ
８８  表示部
８９  ストレージ
１００  無人航空機
１００Ｇ  無人航空機群
１１０  ＵＡＶ制御部
１５０  通信インタフェース
１６０  メモリ
１７０  ストレージ
２００  ジンバル
２１０  回転翼機構
２２０，２３０  撮像部
２４０  ＧＰＳ受信機
２５０  慣性計測装置
２６０  磁気コンパス
２７０  気圧高度計
２８０  超音波センサ
２９０  レーザー測定器
Ａｎ  加速度
Ｆａ  引力
Ｆｒ１１、Ｆｒ１２、Ｆｒ１３、Ｆｒ２  斥力
ＧＰ  重心
ｒｓ  安全距離
ｓｒ  安全圏
ＴＧ  ターゲット
ｔｐ  先端
【図１】
2019101587.tif 000008
【図２】
2019101587.tif 000009
【図３】
2019101587.tif 000010
【図４】
2019101587.tif 000011
【図５】
2019101587.tif 000012
【図６】
2019101587.tif 000013
【図７】
2019101587.tif 000014
【図８】
2019101587.tif 000015
【図９】
2019101587.tif 000016
【図１０】
2019101587.tif 000017
【図１１】
2019101587.tif 000018
【図１２】
2019101587.tif 000019
【図１３】
2019101587.tif 000020
【図１４】
2019101587.tif 000021
【図１５】
2019101587.tif 000022
【図１６】
2019101587.tif 000023
【図１７】
2019101587.tif 000024
【図１８】
2019101587.tif 000025
【図１９】
2019101587.tif 000026
【図２０】
2019101587.tif 000027