(57)【要約】【課題】飛行体群の飛行中に各飛行体の飛行を制御でき、各飛行体の飛行時の自由度を向上できることが望ましい。【解決手段】  情報処理装置は、複数の飛行体の飛行の制御を指示する情報処理装置であって、処理部を備え、処理部は、複数の飛行体の飛行を制御するための１つ以上の制御ノードの情報を取得し、１つ以上の制御ノードと複数の飛行体とを関連付け、１つ以上の制御ノードの移動に基づいて、移動した制御ノードに関連付けられた１つ以上の飛行体を移動させる。【選択図】図８
2019082837.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）を用いて構成され、端末制御部８１から出力された各種の情報やデータを表示する。表示部８８は、アプリケーションの実行に係る各種データや情報を表示してもよい。
【００７７】
ストレージ８９は、各種データ、情報を蓄積し、保持する。ストレージ８９は、ＨＤＤ、ＳＳＤ、ＳＤカード、ＵＳＢメモリ、等でよい。ストレージ８９は、端末８０の内部に設けられてもよい。ストレージ８９は、端末８０から取り外し可能に設けられてもよい。ストレージ８９は、無人航空機１００から取得された空撮画像や付加情報を保持してよい。付加情報は、メモリ８７に保持されてよい。
【００７８】
次に、複数の無人航空機１００を含む無人航空機群１００Ｇの飛行制御の指示に関する機能について説明する。ここでは、端末８０の端末制御部８１が無人航空機群１００Ｇの飛行制御の指示に関する機能を有することを主に説明するが、無人航空機１００が無人航空機群１００Ｇの飛行制御の指示に関する機能を有してよい。端末制御部８１は、処理部の一例である。端末制御部８１は、無人航空機群１００Ｇの飛行制御の指示に関する処理を行う。
【００７９】
飛行制御の対象となる無人航空機群１００Ｇは、互いに連携して飛行する複数の無人航空機１００であってもよいし、連携することなくある空間に群がって飛行する複数の無人航空機１００であってもよく、特に限定されない。
【００８０】
端末制御部８１は、無人航空機群１００Ｇの飛行を制御するための１つ以上の制御ノードＣの情報を取得する。制御ノードＣは、無人航空機群１００Ｇの飛行を制御するための仮想ノードである。制御ノードＣの情報は、制御ノードＣを識別するための識別情報、制御ノードＣの位置情報、複数の制御ノードＣの位置関係の情報、等を含んでよい。制御ノードＣの情報は、メモリ１６０やストレージ１７０に保持されてよいし、通信インタフェース１５０を介して外部装置から取得してよい。また、端末制御部８１は、操作部８３を介してユーザ操作を受けることで、制御ノードＣの情報を生成してよい。例えば、端末制御部８１は、操作部８３を介して、制御ノードＣの位置や制御ノードＣの数を入力してよい。
【００８１】
制御ノードＣの位置情報は、３次元空間上の位置の情報でよい。複数の制御ノードＣの位置関係の情報は、無人航空機群１００Ｇにおける複数の無人航空機１００が飛行時に形成する形状（飛行形状）でよい。飛行形状は、予め定められた形状パターン（例えば多角柱形状、多角錐形状、球形状、等）でもよいし、操作部８３を介したユーザ操作により生成された形状パターンでもよい。
【００８２】
端末制御部８１は、例えば通信部８５を介して、無人航空機群１００Ｇに含まれる複数の無人航空機１００の位置情報を取得する。無人航空機１００の位置情報は、例えば、無人航空機１００のＧＰＳ受信機２４０により取得された情報でもよいし、超音波センサ２８０により取得された情報でもよい。
【００８３】
図６は、制御ノードＣと無人航空機群１００Ｇとの位置関係を説明する図である。端末８０では、端末制御部８１は、通信部８５を介して各無人航空機１００から無人航空機１００の位置情報（例えばＧＰＳ位置情報）を受信し、無人航空機１００の位置情報を基に、表示部８８に無人航空機群１００Ｇを表示させる。端末制御部８１は、表示部８８に表示された無人航空機群１００Ｇに対し、操作部８３を介して、ユーザによって指示された位置に制御ノードＣを配置してよい。端末制御部８１は、制御ノードＣの配置決定時の無人航空機１００の位置に依存せずに、制御ノードＣを任意の位置に配置してよい。端末制御部８１は、制御ノードＣの配置を決定する際、無人航空機群１００Ｇの位置を基に、制御ノードＣを配置してもよい。端末制御部８１は、例えば、操作部８３を介して１つ以上の制御ノードを所望の位置に配置することで、複数の制御ノードＣの位置関係を設定してよい。
【００８４】
図６では、４つの制御ノードＣ１，Ｃ２，Ｃ３，Ｃ４は、放射状の形状パターンに則って、それぞれ位置ｐ１，ｐ２，ｐ３，ｐ４に配置される。言い換えると、制御ノードＣ１を中心や重心として、制御ノードＣ１の周囲に制御ノードＣ２，Ｃ３，Ｃ４が配置される。この形状パターンの形状に近似して、無人航空機群１００Ｇの飛行形態が形成されることになる。操作部８３を介して指示された位置に４つの制御ノードＣ１，Ｃ２，Ｃ３，Ｃ４が配置されると、端末制御部８１は、これらを結ぶ３つのボーン（骨格）ｂ１２，ｂ１３，ｂ１４を生成する。端末制御部８１は、操作部８３へのユーザ操作を介して、制御ノードＣ１，Ｃ２，Ｃ３，Ｃ４の位置の変更を受けることにより、無人航空機群１００Ｇの飛行形態を変化させてよい。端末制御部８１は、操作部８３を介して、制御ノードＣを直接移動させてもよいし、ボーンｂ１２，ｂ１３，ｂ１４を移動させることで、制御ノードＣを移動させてもよい。
【００８５】
制御ノードＣ１，Ｃ２，Ｃ３，Ｃ４の各位置ｐ１，ｐ２，ｐ３，ｐ４は、同一の面（２次元平面）に配置されてもよいし、異なる平面（３次元空間）に配置されてもよい。制御ノードＣの形状パターンは、事前に定められてもよい。この場合、メモリ８７又はストレージ８９に形状パターンの情報が保持され、端末制御部８１が形状パターンの情報を取得してよい。制御ノードＣの形状パターンは、新たに独自に生成されてもよい。この場合、端末制御部８１は、操作部８３を介して各制御ノードＣ１〜Ｃ４の配置の指示を受け、各制御ノードＣ１〜Ｃ４により形成される形状パターンを生成してよい。生成された形状パターンは、メモリ８７又はストレージ８９に保持されてよい。
【００８６】
このように、端末８０は、複数の制御ノードＣの形状パターンをユーザ所望の形状に決定できる。したがって、端末８０は、制御ノードＣの位置関係によって定まる無人航空機群１００Ｇの飛行形態を、ユーザ所望の形態に調整できる。
【００８７】
端末制御部８１は、１つ以上の制御ノードＣと複数の無人航空機１００とを関連付けてよい。端末制御部８１は、操作部８３を介してユーザ操作を受け、関連付けの対象となる無人航空機１００と１つ以上の制御ノードＣとの少なくとも１つを選択してよい。端末制御部８１は、操作部８３を介さずに、例えば所定の無人航空機１００と所定の制御ノードＣとの間の関連付けを行ってもよい。関連付けでは、無人航空機１００と制御ノードＣとの関連付けの強さを示す重み付けが行われる。関連付けの程度は、重みｗの大きさにより示されてよい。重みｗが大きい程、無人航空機１００と制御ノードＣとの関連性が高く、例えば制御ノードＣが移動した際に大きく影響を受け、制御ノードＣの移動に従って無人航空機１００が大きく移動する。重みｗが小さい程、無人航空機１００と制御ノードＣとの関連性が低く、例えば制御ノードＣが移動した際にあまり影響を受けず、制御ノードＣの移動に従って無人航空機１００が小さく移動する、又は移動しない。
【００８８】
端末制御部８１は、各無人航空機１００に対し、複数（例えば無人航空機１００からの距離が短い順に２つ（近傍の２つとも称する））の制御ノードＣの重みｗを設定する。重みｗは、制御ノードＣと無人航空機１００とを関連付ける値の一例であり、値０から値１の範囲に設定される係数でよい。重みｗが値１に近い程、対応する制御ノードＣとの関連付けが強くなる。重みｗが値０に近い程、対応する制御ノードＣとの関連付けが弱くなる。つまり、重みｗが値１に近い程、制御ノードＣの影響を強く受け、重みｗが値１に近い程、制御ノードＣの影響をあまり受けない。また、無人航空機１００の近傍に位置する２つの制御ノードＣは、無人航空機１００との間の距離が最も短い制御ノードＣと、２番目に短い制御ノードＣと、でよい。なお、重み付けの対象となる制御ノードＣの数は、２つ以外でもよく、少なくとも１つであり、３つ以上であってよい。
【００８９】
重み付けの方法について、以下に第１例〜第３例を示す。
【００９０】
第１例では、端末制御部８１は、操作部８３を介して、ユーザが任意の重みｗの値を入力する。例えば、端末制御部８１は、操作部８３を介して、無人航空機１００の近傍にある２つの制御ノードＣ１，Ｃ２（図６参照）を選択する。端末制御部８１は、操作部８３を介して、選択された２つの制御ノードＣ１，Ｃ２のうち、無人航空機１００に近い方の制御ノードＣの重みｗが大きくなるように設定する。図６では、位置ｐに位置する無人航空機１００に対し、制御ノードＣ２が最も近いので、制御ノードＣ２の重みｗ２が大きな値となるように設定される。制御ノードＣ２は、任意の無人航空機１００との距離が最も短い制御ノードの一例である。制御ノードＣ１は、任意の無人航空機１００との距離が２番目に短い制御ノードの一例である。
【００９１】
このように、ユーザは、操作部８３を介して端末８０に対して直接に重みｗを設定することで、ユーザ所望の制御ノードＣと無人航空機１００とを、無人航空機１００の移動に関して直感的に関連付けることができる。また、ユーザ操作により容易に関連付けできるため、端末８０は、関連付けを行う際の端末８０の処理負荷を低減できる。
【００９２】
第２例では、端末制御部８１は、無人航空機１００と制御ノードＣの距離に基づき、重みｗを算出する。例えば、無人航空機１００の近傍にある２つの制御ノードＣ１，Ｃ２の重みｗを決定する場合、端末制御部８１は、式（１）に従って、無人航空機１００に対する制御ノードＣ１の重みｗ１及び制御ノードＣ２の重みｗ２を算出してよい。なお、ｄ１は、無人航空機１００と制御ノードＣ１との距離である。ｄ２は、無人航空機１００と制御ノードＣ２との距離である。
ｗ１ ＝ ｄ２／（ｄ１＋ｄ２）
ｗ２ ＝ ｄ１／（ｄ１＋ｄ２） …… （１）
【００９３】
なお、第２例において、重みｗに対する閾値が設けられてよい。この場合、端末制御部８１は、例えば、重みｗが閾値ｔｈ１以上である場合、重みｗを値１に設定し、重みｗが閾値ｔｈ２未満である場合、重みｗを値０に設定してもよい。閾値ｔｈ１，ｔｈ２は、同じ値でも異なる値でもよい。
【００９４】
第３例では、端末制御部８１は、無人航空機１００と制御ノードＣの位置関係を基に、無人航空機１００に対する２つの制御ノードＣの重みｗを算出する。無人航空機１００と２つのうちいずれか１つの制御ノードＣとの間の距離における２つの制御ノードＣを結ぶ方向に沿う成分ｄｌｉは、式（２）によって決定される。
【００９５】
【数１】
2019082837.tif 000003
【００９６】
ここで、ｐｉは、制御ノードＣｉの位置を示す。ｐｊは、制御ノードＣｊの位置を示す。ｐは、無人航空機１００の位置を示す。式（２）における上部に付された矢印は、ベクトルを表す。ベクトルｐｉｐは、ｐｉからｐまでのベクトルを表す。ベクトルｐｉｐｊは、ｐｉからｐｊまでのベクトルを表す。ベクトルｉｐ ＊ ベクトルｐｉｐｊは、ベクトルｐｉｐｊの方向における、ベクトルｐｉｐの余弦、つまりベクトルｐｉｐとベクトルｐｉｐｊの内積を表す。
【００９７】
図６では、式（２）を参照すると、無人航空機１００と制御ノードＣ１との間の距離における制御ノードＣ１，Ｃ２を結ぶ方向に沿う成分ｄｌ１は、ベクトルｐ１ｐとベクトルｐ１ｐ２の内積が値０以上であるので、この内積の値となる。また、無人航空機１００と制御ノードＣ２との間の距離における制御ノードＣ１，Ｃ２を結ぶ方向に沿う成分ｄｌ２は、ベクトルｐ２ｐとベクトルｐ２ｐ１の内積が負であるので、値０となる。
【００９８】
そして、端末制御部８１は、ｄｌ１を式（１）のｄ１とし、ｄｌ１を式（１）のｄ２として、式（１）に従って、無人航空機１００に対する２つの制御ノードＣ１，Ｃ２の重みｗ１，ｗ２を算出する。
【００９９】
つまり、第３例では、図６の位置ｐに位置する無人航空機１００が２つの制御ノードＣ１，Ｃ２の間に位置する場合、２つの制御ノードＣ１，Ｃ２から無人航空機１００までの各距離の制御ノードＣ１，Ｃ２を結ぶ方向の成分ｄｌ１，ｄｌ２は、それぞれ式（２）に従った内積の値となる。一方、無人航空機１００が２つの制御ノードＣ１，Ｃ２の間から位置しない場合、２つの制御ノードＣ１，Ｃ２のうち、最も近い制御ノードＣ２から無人航空機１００までの距離に係る成分ｄ２は値０となり、２番目に近い制御ノードＣ１から無人航空機１００までの距離に係る成分ｄ１は、上記の内積の値となる。この場合、重みｗ１は値０となり、重みｗ２は値１となるので、位置ｐに位置する無人航空機１００の移動は、最も近い制御ノードＣ２の移動に支配される。
【０１００】
なお、ここでは、無人航空機１００の近傍に位置する２つの制御ノードＣ１，Ｃ２に対し、重みｗ１，ｗ２を算出しているが、無人航空機１００が３つ以上の制御ノードＣと関連付けられる場合、３つ以上の重みｗ（ｗ１，ｗ２，ｗ３，…）が算出される。
【０１０１】
なお、式（２）では、ベクトルｉｐ ＊ ベクトルｐｉｐｊ の内積の値が負の値である場合、値０として算出されたが、負の値のままとしてもよい。この場合、２つの制御ノードＣのうちの遠い方の制御ノードＣ（図６では制御ノードＣ１）の影響も含めて加味して、無人航空機１００が移動し得る。
【０１０２】
このように、第２例、第３例では、端末制御部８１は、複数の制御ノードＣの位置情報を取得し、制御ノードＣの位置情報と複数の無人航空機１００の位置情報（例えばＧＰＳ位置情報）とに基づいて、制御ノードＣと複数の無人航空機１００との関連付けの値（例えば重みｗ）を算出してよい。これにより、端末８０は、制御ノードＣと無人航空機１００の位置関係を基に、自動的に関連付けできる。また、端末８０は、関連付けを行う際のユーザ操作を不要にでき、煩雑性を低くできる。
【０１０３】
また、端末８０は、無人航空機１００に近い制御ノードＣとの間（例えば近傍の２つの制御ノードＣ１，Ｃ２）に限って関連付けできる。そのため、無人航空機１００は、自機に近い制御ノードＣが移動した場合には制御ノードＣの移動の影響を受けるが、無人航空機１００から遠い制御ノードＣが移動した場合には制御ノードＣの移動の影響を受けない。よって、端末８０は、制御ノードＣの移動による無人航空機１００の移動を少なくでき、多くの無人航空機１００が移動することを抑制できる。また、移動した制御ノードＣ周辺の無人航空機１００が主に移動することとなり、制御ノードＣの移動と無人航空機１００の移動との連動が、ユーザにとって直感的に分かり易くなる。なお、端末８０は、１つの無人航空機１００と関連付けする制御ノードＣの数を可変とすることで、制御ノードＣの移動に合わせた無人航空機１００の移動の仕方を調整でき、無人航空機１００の移動のバリエーションを増やすことができる。
【０１０４】
また、端末８０は、多くの制御ノードＣとの間で関連付けすると、多くの制御ノードＣの移動が無人航空機１００の移動に影響する。したがって、端末８０は、多くの制御ノードＣとの間で関連付けすることで、無人航空機１００の動きを複雑化でき、無人航空機１００に細かな飛行制御をさせることができる。
【０１０５】
端末制御部８１は、１つ以上の制御ノードＣの移動に基づいて、移動した制御ノードＣに関連付けられた１つ以上の無人航空機１００を移動させる。端末制御部８１は、操作部８３を介してユーザ操作を受け、ユーザ操作に基づき制御ノードＣを移動させてよい。端末制御部８１は、制御ノードＣの移動に基づいて、移動した制御ノードＣに関連付けられた１つ以上の無人航空機１００を移動させるための移動制御情報を生成してよい。端末制御部８１は、通信部８５を介して、移動制御情報を各無人航空機１００へ送信してよい。
【０１０６】
例えば、端末制御部８１は、各無人航空機１００の近傍に位置する２つの制御ノードＣの移動量を基に、各無人航空機１００の移動量を算出する。制御ノードＣの移動量は、制御ノードＣの移動方向及び移動距離が加味されたベクトル値として表現されてよい。無人航空機１００の移動量は、無人航空機１００の移動方向及び移動距離が加味されたベクトル値として表現されてよい。
【０１０７】
図７は、無人航空機群１００Ｇの移動操作を説明する図である。端末制御部８１は、操作部８３を介してユーザ操作を受け、制御ノードＣを移動させた場合、無人航空機群１００Ｇのうち、移動させた制御ノードＣに関連付けられた無人航空機１００が移動する。
【０１０８】
制御ノードＣｉの移動量をベクトルｍｉとし、無人航空機１００の移動量をベクトルｄｎｊとし、無人航空機１００の制御ノードＣｉに対する重みを重みｗｉとする。制御ノードＣｉの移動に伴う、無人航空機１００の移動量ｄｎｊは、式（３）で表される。
【０１０９】
【数２】
2019082837.tif 000004
【０１１０】
つまり、端末制御部８１は、式（３）に従って、無人航空機１００の制御ノードＣｉに対する重みを重みｗｉ及び制御ノードＣｉの移動量ｍｉを基に、無人航空機１００の移動量ｄｎｊを算出してよい。端末制御部８１は、無人航空機１００の移動量ｄｎｊを基に、無人航空機１００を移動させてよい。この場合、端末制御部８１は、通信部８５を介して、無人航空機１００の移動量ｄｎｊを含む移動制御情報を端末８０へ送信してよい。
【０１１１】
図７では、ユーザが指ｆｇを用いて、タッチパネルとしての表示部８８に表示された４つの制御ノードＣ１〜Ｃ４に対し、制御ノードＣ１と制御ノードＣ４を移動させる操作を行った場合が示されている。制御ノードＣ１，Ｃ４の移動に伴って移動する複数の無人航空機１００について、移動前の無人航空機１００の位置がそれぞれｕ１〜ｕ７で表され、移動後の位置がそれぞれｕ１１〜ｕ１７で表されている。
【０１１２】
図７では、端末制御部８１は、タッチパネルとしての操作部８３を介してユーザ操作を受け、制御ノードＣ１をベクトルｍ１で示すように僅かに左下方に移動させ、制御ノードＣ４をベクトルｍ４で示すように大きく下方に移動させている。これに伴い、ボーンｂ１２，ｂ１４が伸縮かつ移動する。端末制御部８１は、操作部８３を介して、制御ノードＣ１，Ｃ４を移動させる代わりに、ボーンｂ１４，ｂ１２を移動させることで、制御ノードＣ１，Ｃ４を移動させてもよい。
【０１１３】
制御ノードＣ１，Ｃ４の移動によって、移動前の位置ｕ１〜ｕ７に位置した無人航空機１００は、移動後の位置ｕ１１〜ｕ１７に移動する。例えば、制御ノードＣ１の移動によって、移動前の位置ｕ１にいた無人航空機１００は、式（３）に従って、移動後の位置ｕ１１に移動する。制御ノードＣ４の移動によって、移動前の位置ｕ３に位置した無人航空機１００は、式（３）によって導出された移動量ｄｎ３に従い、移動後の位置ｕ１３に大きく移動する。
【０１１４】
このように、ユーザは、操作部８３を介して制御ノードＣの移動操作を行うことで、所望に且つ直感的に制御ノードＣを移動させることができる。したがって、ユーザは、制御ノードＣの移動操作により、制御ノードＣに関連付けられた無人航空機１００を間接的に移動させることができる。
【０１１５】
端末制御部８１は、操作部８３を介した制御ノードＣの移動操作を受けずに、制御ノードＣを移動させてもよい。例えば、端末制御部８１は、予め定められた１つ以上の制御ノードＣが移動するための移動情報（所定の移動情報）を、メモリ１６０等から取得し、この移動情報に基づいて、該当する制御ノードＣを移動させてよい。端末制御部８１は、時間情報に基づいて、例えば所定時刻となった場合に、所定の移動情報に基づいて、該当する制御ノードＣを移動させてよい。端末制御部８１は、位置情報に基づいて、例えば無人航空機１００が所定の場所に到達した場合に、所定の移動情報に基づいて、該当する制御ノードＣを移動させてよい。
【０１１６】
端末制御部８１は、算出された各無人航空機１００の移動量ｄｎｊに従って、各無人航空機１００を移動させた場合、無人航空機１００同士が衝突する場合、無人航空機１００の移動を制限してよい。無人航空機１００同士が衝突するか否かの判断は、例えば、移動後における各無人航空機１００の位置を算出し、無人航空機１００同士の距離が閾値ｔｈ３以上であるか否かによって行われてよい。閾値ｔｈ３未満である場合、端末制御部８１は、無人航空機１００同士の衝突が起こると判断してよい。一方、閾値以上である場合、端末制御部８１は、無人航空機１００同士が衝突しないと判断してよい。閾値ｔｈ３は、例えば無人航空機１００間の安全距離（安全を確保するための距離）でよい。
【０１１７】
なお、制御ノードＣの移動と無人航空機１００の移動とが衝突を避けるために連動しない期間があっても、制御ノードＣの更なる移動により、計算上、複数の無人航空機１００の衝突の可能性が低くなった場合に、制御ノードＣの移動に伴って無人航空機１００が移動することで、再び制御ノードＣの移動と無人航空機１００の飛行とが連動した状態に復活できる。
【０１１８】
端末制御部８１は、無人航空機１００同士が衝突する場合、衝突すると判断された且つ移動した制御ノードＣに関連付けられた無人航空機１００に限って、無人航空機１００の移動を制限してよい。端末制御部８１は、無人航空機１００同士が衝突する場合、衝突すると判断されたか否かに関わらず、移動した制御ノードＣに関連付けられた全ての無人航空機１００の移動を制限してよい。
【０１１９】
端末制御部８１は、制御ノードＣ１が移動した場合、無人航空機１００を移動させないことによって、無人航空機１００の移動を制限してよい。端末制御部８１は、制御ノードＣ１が移動した場合、無人航空機１００同士が衝突しない範囲で無人航空機１００を移動可能とすることで、無人航空機１００の移動を制限してよい。
【０１２０】
端末制御部８１は、移動後における各無人航空機１００の位置を基に、衝突するか否かを判断するのではなく、移動前後において無人航空機１００が移動するための飛行経路を基に、衝突するか否かを判断してよい。例えば、端末制御部８１は、移動前後において複数の無人航空機１００が移動するための複数の飛行経路が衝突する場合、無人航空機１００同士が衝突すると判断してよい。複数の飛行経路が衝突するとは、複数の飛行経路が二次元平面（緯度・経度）又は３次元空間（緯度・経度・高度）において交わることを含んでよい。
【０１２１】
このように、端末８０は、制御ノードＣの移動に伴い無人航空機１００が移動する場合に、計算上、移動後に複数の無人航空機１００が同位置又は接触の可能性が低い場合に、無人航空機１００を移動させるように指示できる。言い換えると、計算上、移動後に複数の無人航空機１００が同位置又は接触の可能性がある位置に存在する場合、端末８０は、実空間上での無人航空機１００の移動を制限できる。この場合、端末８０は、実空間において複数の無人航空機１００が衝突することを抑制できる。
【０１２２】
端末制御部８１は、制御ノードＣの移動を制限するための移動制限情報に基づいて、制御ノードＣの移動を制限してよい。移動制限情報は、メモリ１６０やストレージ１７０に保持されていてよい。移動制限情報は、事前設定された情報でもよいし、操作部８３を介してユーザ操作を基に決定される情報でもよい。移動制限情報は、固定の情報でも可変の情報でもよい。
【０１２３】
移動制限情報は、制御ノードＣ毎に定められてよいし、複数の制御ノードＣ共通で定められてもよい。移動制限情報は、例えば、制御ノードＣの特定方向における移動を制限するための情報でよい。この特定方向は、例えば、Ｚ軸方向（実空間における重力方向）であってよい。制御制限情報は、例えば、制御ノードＣの閾値ｔｈ４以上の距離の移動を制限するための情報であってよい。
【０１２４】
このように、端末８０は、制御ノードＣの移動の自由度を制限することで、制御ノードＣの移動が少なくなるので、無人航空機１００の移動も間接的に制限できる。したがって、複数の無人航空機１００が移動することにより複数の無人航空機１００の位置が同一又は接触の可能性のある位置に移動する可能性を抑制できる。つまり、端末８０は、制御ノードの移動の自由度を制限することで、複数の無人航空機１００の衝突を抑制できる。
【０１２５】
なお、端末制御部８１は、上述の無人航空機１００の移動の制限と制御ノードＣの移動の制限とのいずれか一方のみを行ってもよいし、双方を行ってもよい。
【０１２６】
次に、飛行体群制御システム１０の動作例について説明する。
【０１２７】
図８は、端末８０及び各無人航空機１００の動作手順の第１例を示すフローチャートである。例えば無人航空機１００の飛行中、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して、ＧＰＳ受信機２４０で得られるＧＰＳ位置情報（緯度、経度、高度）を一定のタイミングで端末８０に繰り返し送信してよい。
【０１２８】
端末８０では、端末制御部８１は、通信部８５を介して、各無人航空機１００の位置情報を受信する（Ｓ１）。端末制御部８１は、各無人航空機１００の位置情報を基に、表示部８８に各無人航空機１００の位置を表示する。
【０１２９】
端末制御部８１は、操作部８３を介したユーザの操作に従って、１つ以上の制御ノードＣの情報を取得する（Ｓ２）。端末制御部８１は、操作部８３を介してユーザ操作を受け、予め用意された複数の制御ノードＣの形状パターンの情報を、メモリ８７等から取得してよい。端末制御部８１は、操作部８３を介してユーザ操作を受け、複数の制御ノードＣの位置や位置関係を指定して複数の制御ノードＣを生成することで、制御ノードＣの情報を取得してよい。端末制御部８１は、１つ以上の制御ノードＣを、表示部８８に表示させる。
【０１３０】
端末制御部８１は、各無人航空機１００と制御ノードＣとの関連付けを行う（Ｓ３）。端末制御部８１は、複数の無人航空機１００のうちのどの無人航空機１００と、１つ以上の制御ノードＣのうちのどの制御ノードＣと、を関連付けるかを、操作部８３を介して指定してよい。制御ノードＣと無人航空機１００とを関連付けるためのユーザ操作は、第１の操作情報の一例である。端末制御部８１は、無人航空機１００と制御ノードＣとの関連付けにおいて、重みｗを算出する。
【０１３１】
Ｓ１〜Ｓ３の処理は、無人航空機１００の飛行中に行われてもよいし、無人航空機１００の飛行前に行われてもよい。
【０１３２】
端末制御部８１は、操作部８３を介してドラッグ操作を受け、制御ノードＣの位置を移動させてよい。制御ノードＣの位置を移動させるためのユーザ操作（例えばドラッグ操作）は、第２の操作情報の一例である。端末制御部８１は、制御ノードＣの移動操作が行われたか否かを判別する（Ｓ４）。移動操作が行われていない場合、端末制御部８１は、Ｓ４の処理を繰り返す。一方、移動操作が行われた場合、端末制御部８１は、無人航空機１００の移動量ｄｎｊを算出する（Ｓ５）。無人航空機１００の移動量ｄｎｊの算出は、無人航空機群１００Ｇに含まれるそれぞれの無人航空機１００について行われる。
【０１３３】
端末制御部８１は、算出された無人航空機１００の移動量ｄｎｊに従って、無人航空機群１００Ｇを移動させた場合、無人航空機１００同士が衝突するか否かを判別する（Ｓ６）。
【０１３４】
無人航空機１００同士の衝突が起こると判断された場合、端末制御部８１は、表示部８８に、無人航空機１００同士が衝突する可能性がある旨の警告情報を表示させ（Ｓ７）、Ｓ４の処理に戻る。この場合、衝突を回避するために、端末制御部８１は、無人航空機１００の移動を制限する。なお、警告情報の表示とともに、又は警告情報の表示の代わりに、端末制御部８１は、音声や振動等により無人航空機１００同士の衝突の可能性がある旨を提示してよい。
【０１３５】
一方、Ｓ６で無人航空機１００同士が衝突しない場合、端末制御部８１は、通信部８５を介して、各無人航空機１００に移動量を含む移動制御情報を送信する（Ｓ８）。
【０１３６】
端末制御部８１は、移動後の各無人航空機１００の位置情報を基に、表示部８８に表示される各無人航空機１００の表示位置を更新する（Ｓ９）。この場合、端末制御部８１は、Ｓ５において算出された各無人航空機１００の移動量を基に、移動後の無人航空機１００の表示位置を更新してよい。この後、端末制御部８１は、Ｓ４の処理に戻る。
【０１３７】
無人航空機１００では、ＵＡＶ制御部１１０は、端末８０からの自機の移動制御情報を受信する（Ｓ１１）。移動制御情報に含まれる移動量に対応する位置に移動するように、飛行を制御する（Ｓ１２）。この後、ＵＡＶ制御部１１０は、Ｓ１１の処理に戻る。
【０１３８】
このように、飛行体群制御システム１０では、端末８０は、各無人航空機１００の飛行ルートや飛行位置が事前に設定されていない場合でも、制御ノードＣを設け、制御ノードＣと各無人航空機１００とを関連付けておくことで、制御ノードＣの移動に応じて各無人航空機１００を移動させることができる。よって、端末８０は、無人航空機１００の飛行中であってもリアルタイムに複数の無人航空機１００に対して飛行制御を指示でき、無人航空機１００の飛行時の自由度を高くできる。また、ユーザは、無人航空機１００に対して個別に飛行ルートや飛行位置の設定のための作業を行う必要がなく、容易に飛行制御を指示できる。端末８０は、制御ノードＣに対する移動により複数の無人航空機１００を移動させることが可能であるので、複数の無人航空機１００を操縦するために複数の操作装置を用意する必要がなく、複数の飛行体を連携させることを容易化できる。
【０１３９】
また、端末８０は、複数の無人航空機１００を移動させるための移動制御情報を一括して生成し、制御ノードＣの移動に伴う複数の無人航空機１００の移動を複数の無人航空機１００に指示できる。そのため、無人航空機１００は、自機により制御ノードＣの移動に対応する移動制御情報を生成しなくても、移動制御情報を取得できる。よって、端末８０は、制御ノードＣの移動に伴う複数の無人航空機１００の移動の制御に係る各無人航空機１００の処理負荷を低減できる。
【０１４０】
本実施形態の飛行制御指示は、無人航空機１００により実施されてもよい。この場合、無人航空機１００のＵＡＶ制御部１１０が、端末８０の端末制御部８１が有する飛行制御指示に関する機能と同様の機能を有する。ＵＡＶ制御部１１０は、処理部の一例である。ＵＡＶ制御部１１０は、飛行制御指示に関する処理を行う。なお、ＵＡＶ制御部１１０による飛行制御指示に関する処理において、端末制御部８１が行う飛行制御指示に関する処理と同様の処理については、その説明を省略又は簡略化する。
【０１４１】
飛行制御指示は、１つの無人航空機１００が全無人航空機の飛行制御を指示してもよいし、各無人航空機１００がそれぞれ自機の飛行制御を指示してもよい。飛行制御を指示する無人航空機１００を、特定の無人航空機１００とも称する。特定の無人航空機１００は情報処理装置の一例である。
【０１４２】
図９は、端末８０及び無人航空機１００の動作手順の第２例を示すフローチャートである。動作手順の第１例と同様、例えば無人航空機１００の飛行中、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して、ＧＰＳ受信機２４０で得られるＧＰＳ位置情報（緯度、経度、高度）を一定のタイミングで特定の無人航空機１００に繰り返し送信する。
【０１４３】
特定の無人航空機１００では、ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、各無人航空機１００の位置情報を受信する（Ｓ３１）。ＵＡＶ制御部１０１は、ＧＰＳ受信機２４０等を介して自機の位置情報も取得する（Ｓ３１）。
【０１４４】
ＵＡＶ制御部１０１は、操作部８３を介したユーザの操作に従って、１つ以上の制御ノードＣの情報を取得する（Ｓ３２）。この場合、ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、予め用意された複数の制御ノードＣの形状パターンの情報を、メモリ１６０等から取得してよい。ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、端末８０により生成された複数の制御ノードＣの位置関係に基づく制御ノードＣの位置情報を取得してよい。
【０１４５】
同様に、端末８０においても、端末制御部８１は、各無人航空機１００の位置情報を取得し、１つ以上の制御ノードＣ１の情報を取得する。端末制御部８１は、制御ノードＣ１及び無人航空機１００の位置を表示部８８に表示させる（Ｓ２１）。
【０１４６】
ＵＡＶ制御部１０１は、各無人航空機１００と制御ノードＣとの関連付けを行う（Ｓ３３）。この場合、端末８０では、端末制御部８１は、通信インタフェース１５０を介して、複数の無人航空機１００のうちのどの無人航空機１００と、１つ以上の制御ノードＣのうちのどの制御ノードＣと、を関連付けるかを、操作部８３を介して指定してよい。端末制御部８１は、通信部８５を介して、この関連付けに係る操作情報を特定の無人航空機１００へ送信する（Ｓ２２）。ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、関連付けに係る操作情報を取得してよい。関連付けに係る操作情報は、第１の操作情報の一例である。ＵＡＶ制御部１０１は、無人航空機１００と制御ノードＣとの関連付けにおいて、重みｗを算出する。
【０１４７】
Ｓ３１〜Ｓ３３の処理は、無人航空機１００の飛行中に行われてもよいし、無人航空機１００の飛行前に行われてもよい。
【０１４８】
ＵＡＶ制御部１０１は、制御ノードＣの移動情報を取得する（Ｓ３４）。この場合、端末８０では、端末制御部８１は、操作部８３を介してドラッグ操作を受け、制御ノードＣの位置を移動させてよい。端末制御部８１は、通信部８５を介して、この制御ノードＣの移動情報を特定の無人航空機１００へ送信する（Ｓ２３）。ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、制御ノードＣの移動に係る操作情報を、制御ノードＣの移動情報として取得してよい。制御ノードＣの移動に係る操作情報は、第２の操作情報の一例である。
【０１４９】
ＵＡＶ制御部１０１は、制御ノードＣの移動に係る操作情報に基づいて、無人航空機１００の移動量ｄｎｊを算出する（Ｓ３５）。この場合、ＵＡＶ制御部１０１は、例えば、制御ノードＣの移動に係る操作量と無人航空機１００の移動量ｄｎｊとの１対１に対応する対応情報（例えば式（３）の情報）を、メモリ１６０等に保持しておき、参照してよい。無人航空機１００の移動量ｄｎｊの算出は、無人航空機群１００Ｇに含まれるそれぞれの無人航空機１００について行われる。
【０１５０】
ＵＡＶ制御部１０１は、算出された無人航空機１００の移動量ｄｎｊに従って、無人航空機群１００Ｇを移動させた場合、無人航空機１００同士が衝突するか否かを判別する（Ｓ３６）。
【０１５１】
無人航空機１００同士の衝突が起こると判断された場合、ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、無人航空機１００同士が衝突する可能性がある旨の警告情報を送信してよい（Ｓ３７）。Ｓ３７の後、ＵＡＶ制御部１１０は、Ｓ３１の処理に戻る。端末８０では、端末制御部８１が、通信部８５を介して警告情報を取得し、表示部８８に警告情報を表示させてよい（Ｓ２４）。なお、警告情報の表示とともに、又は警告情報の表示の代わりに、端末制御部８１は、音声や振動等により無人航空機１００同士の衝突の可能性がある旨を提示してよい。
【０１５２】
一方、Ｓ３６で無人航空機１００同士が衝突しない場合、ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、他の無人航空機１００（特定の無人航空機１００以外の無人航空機１００）に、その無人航空機１００の移動量を含む移動制御情報を送信する（Ｓ３８）。
【０１５３】
ＵＡＶ制御部１０１は、通信インタフェース１５０を介して、移動後の各無人航空機１００の位置情報を端末８０へ送信してよい。端末８０では、端末制御部８１は、移動後の各無人航空機１００の位置情報を基に、表示部８８に表示される各無人航空機１００の表示位置を更新する（Ｓ２５）。この後、端末制御部８１は、Ｓ２３の処理に戻る。
【０１５４】
ＵＡＶ制御部１１０は、自機（特定の無人航空機１００）の移動量に対応する位置に自機が移動するように、自機の飛行を制御する（Ｓ３９）。この後、ＵＡＶ制御部１１０は、Ｓ３１の処理に戻る。
【０１５５】
このように、飛行体群制御システム１０では、無人航空機１００は、各無人航空機１００の飛行ルートや飛行位置が事前に設定されていない場合でも、制御ノードＣを設け、制御ノードＣと各無人航空機１００とを関連付けておくことで、制御ノードＣの移動に応じて各無人航空機１００を移動させることができる。よって、無人航空機１００は、リアルタイムに複数の無人航空機１００に対して飛行制御を指示でき、無人航空機１００の飛行時の自由度を高くできる。また、ユーザは、無人航空機１００に対して個別に飛行ルートや飛行位置の設定のための作業を行う必要がなく、容易に飛行制御を指示できる。無人航空機１００は、制御ノードＣに対する移動により複数の無人航空機１００を移動させることが可能であるので、複数の無人航空機１００を操縦するために複数の操作装置を用意する必要がなく、複数の飛行体を連携させることを容易化できる。
【０１５６】
また、無人航空機１００が、自機の移動制御情報の生成から移動制御情報に基づく飛行の制御までを、一括して行うことができる。よって、無人航空機１００は、制御ノードＣの移動に伴う複数の無人航空機１００の移動の制御に係る端末８０の処理負荷を低減できる。
【０１５７】
なお、飛行体群制御システム１０が送信機（プロポ）を備える場合、端末８０が実行する処理は、送信機が実行してもよい。送信機は、端末８０と同様の構成部を有するので、詳細な説明については省略する。送信機は、制御部、操作部、通信部、メモリ、等を有する。操作部は、例えば、無人航空機１００の飛行の制御を指示するためのコントロールスティックでよい。例えば、コントロールスティックは、ユーザによる制御ノードＣの移動操作を受け付けてよい。送信機は、表示部を有してもよい。
【０１５８】
以上、本開示を実施形態を用いて説明したが、本開示の技術的範囲は上述した実施形態に記載の範囲には限定されない。上述した実施形態に、多様な変更又は改良を加えることが当業者に明らかである。その様な変更又は改良を加えた形態も本開示の技術的範囲に含まれ得ることが、特許請求の範囲の記載からも明らかである。
【０１５９】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現可能である。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「先ず、」、「次に」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１６０】
１０  飛行体群制御システム
８０  端末
８１  端末制御部
８３  操作部
８５  通信部
８７  メモリ
８８  表示部
８９  ストレージ
１００  無人航空機
１００Ｇ  無人航空機群
１１０  ＵＡＶ制御部
１５０  通信インタフェース
１６０  メモリ
１７０  ストレージ
２００  ジンバル
２１０  回転翼機構
２２０，２３０  撮像部
２４０  ＧＰＳ受信機
２５０  慣性計測装置
２６０  磁気コンパス
２７０  気圧高度計
２８０  超音波センサ
２９０  レーザー測定器
ｂ１２，ｂ１３，ｂ１４  ボーン
Ｃ１，Ｃ２，Ｃ３，Ｃ４  制御ノード
ｐ１，ｐ２，ｐ３，ｐ４  位置
ＳＴＶ０ 移動方向
ｕ１〜ｕ７  移動前の位置
ｕ１１〜ｕ１７  移動後の位置
【図１】
2019082837.tif 000005
【図２】
2019082837.tif 000006
【図３】
2019082837.tif 000007
【図４】
2019082837.tif 000008
【図５】
2019082837.tif 000009
【図６】
2019082837.tif 000010
【図７】
2019082837.tif 000011
【図８】
2019082837.tif 000012
【図９】
2019082837.tif 000013