(57)【要約】【課題】より制約が少なく、自由な形状で飛行経路が設定可能となることが望ましい。【解決手段】飛行体が飛行するための飛行経路を生成する情報処理装置であって、処理部を備え、処理部は、第１の経路を示す入力線を取得し、入力線の始点を始点とし、入力線の終点を終点とする、出力曲線を生成し、入力線における各点と出力曲線との距離の積算値を算出し、出力曲線と距離の積算値とに基づいて、飛行経路を生成する。【選択図】図６
2020003428.tif 000002
【特許請求の範囲】
【請求項１】
飛行体が飛行するための飛行経路を生成する情報処理装置であって、
処理部を備え、
前記処理部は、
第１の経路を示す入力線を取得し、
前記入力線の始点を始点とし、前記入力線の終点を終点とする、出力曲線を生成し、
前記入力線における各点と前記出力曲線との距離の積算値を算出し、
前記出力曲線と前記距離の積算値とに基づいて、前記飛行経路を生成する、
情報処理装置。
【請求項２】
前記処理部は、
前記積算値が第１の閾値未満である場合、前記出力曲線で示された前記飛行経路を生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、
前記積算値が第１の閾値以上である場合、前記入力線における各点のうち、前記距離が最長となる第１の点を決定し、
前記入力線を前記第１の点で分割して、前記入力線において第１の入力線部分と第２の入力線部分とを生成し、
前記第１の入力線部分の始点を始点とし、前記第１の入力線部分の終点を終点とする、前記出力曲線における第１の出力曲線部分を生成し、
前記第２の入力線部分の始点を始点とし、前記第２の入力線部分の終点を終点とする、前記出力曲線における第２の出力曲線部分を生成する、
請求項１に記載の情報処理装置。
【請求項４】
前記処理部は、
前記第１の入力線部分における各点と前記第１の出力曲線部分との距離の積算値を算出し、
前記距離の積算値が前記第１の閾値未満となるまで、前記第１の入力線部分の分割及び分割された前記第１の入力線部分に対応する出力曲線部分の生成を反復する、
請求項３に記載の情報処理装置。
【請求項５】
前記処理部は、生成された複数の出力曲線部分を接続して、前記飛行経路を生成する、
請求項４に記載の情報処理装置。
【請求項６】
前記処理部は、
前記入力線の始点と、前記入力線の終点と、前記始点及び前記終点と等距離な点を結ぶ垂直二等分線上の点である等距離点と、に基づいて、前記入力線の始点と前記入力線の終点とを通り、前記垂直二等分線に対して対称である前記出力曲線を生成し、
前記距離の積算値を基に、前記垂直二等分線上において前記等距離点を移動させるための導関数を算出し、
前記導関数の算出値に基づいて、前記出力曲線の変形の有無を決定する、
請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記処理部は、前記導関数の算出値が第２の閾値未満である場合、前記出力曲線を不変とする、
請求項６に記載の情報処理装置。
【請求項８】
前記処理部は、前記導関数の算出値が第２の閾値以上である場合、前記導関数の算出値に基づいて、前記垂直二等分線上において前記等距離点を移動させ、
前記入力線の始点と、前記入力線の終点と、移動された前記等距離点と、に基づいて、前記出力曲線を変形する、
請求項６に記載の情報処理装置。
【請求項９】
前記処理部は、前記等距離点の移動及び前記出力曲線の変形を、前記導関数の算出値が前記第２の閾値未満となるまで反復する、
請求項８に記載の情報処理装置。
【請求項１０】
前記出力曲線は、前記入力線の始点と、前記入力線の終点と、前記等距離点と、を制御点とする２次ベジェ曲線である、
請求項６〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
通信部、を更に備え、
前記処理部は、前記通信部を介して、前記飛行経路の情報を、前記飛行体に送信する、
請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
通信部、を更に備え、
前記処理部は、前記通信部を介して、前記入力線の始点と前記入力線の終点と前記等距離点との情報を、前記飛行体に送信する、
請求項６〜１０のいずれか１項に記載の情報処理装置。
【請求項１３】
表示部、を更に備え、
前記処理部は、前記表示部を介して、前記飛行経路の情報を表示する、
請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１４】
表示部、を更に備え、
前記処理部は、前記表示部を介して、前記入力線の始点と前記入力線の終点と前記等距離点との情報を表示する、
請求項６〜１０のいずれか１項に記載の情報処理装置。
【請求項１５】
前記情報処理装置は、前記飛行体であり、
前記処理部は、前記飛行経路に従って、前記飛行体の飛行を制御する、
請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１６】
飛行体が飛行するための飛行経路を生成する情報処理装置における飛行経路生成方法であって、
第１の経路を示す入力線を取得するステップと、
前記入力線の始点を始点とし、前記入力線の終点を終点とする、出力曲線を生成するステップと、
前記入力線における各点と前記出力曲線との距離の積算値を算出するステップと、
前記出力曲線と前記距離の積算値とに基づいて、前記飛行経路を生成するステップと、
を有する飛行経路生成方法。
【請求項１７】
前記飛行経路を生成するステップは、前記積算値が第１の閾値未満である場合、前記出力曲線で示された前記飛行経路を生成するステップを含む、
請求項１６に記載の飛行経路生成方法。
【請求項１８】
前記飛行経路を生成するステップは、
前記積算値が第１の閾値以上である場合、前記入力線における各点のうち、前記距離が最長となる第１の点を決定するステップと、
前記入力線を前記第１の点で分割して、前記入力線において第１の入力線部分と第２の入力線部分とを生成するステップと、
前記第１の入力線部分の始点を始点とし、前記第１の入力線部分の終点を終点とする、前記出力曲線における第１の出力曲線部分を生成するステップと、
前記第２の入力線部分の始点を始点とし、前記第２の入力線部分の終点を終点とする、前記出力曲線における第２の出力曲線部分を生成するステップと、を含む、
請求項１６に記載の飛行経路生成方法。
【請求項１９】
前記距離の積算値を算出するステップは、前記第１の入力線部分における各点と前記第１の出力曲線部分との距離の積算値を算出するステップを含み、
前記飛行経路を生成するステップは、前記距離の積算値が前記第１の閾値未満となるまで、前記第１の入力線部分の分割及び分割された前記第１の入力線部分に対応する出力曲線部分の生成を反復するステップを含む、
請求項１８に記載の飛行経路生成方法。
【請求項２０】
前記飛行経路を生成するステップは、生成された複数の出力曲線部分を接続して、前記飛行経路を生成するステップを含む、
請求項１９に記載の飛行経路生成方法。
【請求項２１】
前記出力曲線を生成するステップは、
前記入力線の始点と、前記入力線の終点と、前記始点及び前記終点と等距離な点を結ぶ垂直二等分線上の点である等距離点と、に基づいて、前記入力線の始点と前記入力線の終点とを通り、前記垂直二等分線に対して対称である前記出力曲線を生成するステップと、
前記距離の積算値を基に、前記垂直二等分線上において前記等距離点を移動させるための導関数を算出するステップと、
前記導関数の算出値に基づいて、前記出力曲線の変形の有無を決定するステップと、を含む、
請求項１６〜２０のいずれか１項に記載の飛行経路生成方法。
【請求項２２】
前記出力曲線を生成するステップは、前記導関数の算出値が第２の閾値未満である場合、前記出力曲線を不変とするステップを含む、
請求項２１に記載の飛行経路生成方法。
【請求項２３】
前記出力曲線を生成するステップは、前記導関数の算出値が第２の閾値以上である場合、前記導関数の算出値に基づいて、前記垂直二等分線上において前記等距離点を移動させるステップと、
前記入力線の始点と、前記入力線の終点と、移動された前記等距離点と、に基づいて、前記出力曲線を変形するステップと、を含む、
請求項２１に記載の飛行経路生成方法。
【請求項２４】
前記出力曲線を生成するステップは、前記等距離点の移動及び前記出力曲線の変形を、前記導関数の算出値が前記第２の閾値未満となるまで反復するステップを含む、
請求項２３に記載の飛行経路生成方法。
【請求項２５】
前記出力曲線は、前記入力線の始点と、前記入力線の終点と、前記等距離点と、を制御点とする２次ベジェ曲線である、
請求項２１〜２４のいずれか１項に記載の飛行経路生成方法。
【請求項２６】
前記飛行経路の情報を、前記飛行体に送信するステップ、を更に含む、
請求項１６〜２５のいずれか１項に記載の飛行経路生成方法。
【請求項２７】
前記入力線の始点と前記入力線の終点と前記等距離点との情報を、前記飛行体に送信するステップ、を更に含む、
請求項２１〜２５のいずれか１項に記載の飛行経路生成方法。
【請求項２８】
前記飛行経路の情報を表示するステップ、を更に含む、
請求項１６〜２５のいずれか１項に記載の飛行経路生成方法。
【請求項２９】
前記入力線の始点と前記入力線の終点と前記等距離点との情報を表示するステップ、を更に含む、
請求項２１〜２５のいずれか１項に記載の飛行経路生成方法。
【請求項３０】
前記情報処理装置は、前記飛行体であり、
前記飛行経路に従って、前記飛行体の飛行を制御するステップ、を更に含む、
請求項１６〜２５のいずれか１項に記載の飛行経路生成方法。
【請求項３１】
飛行体が飛行するための飛行経路を生成する情報処理装置に、
第１の経路を示す入力線を取得するステップと、
前記入力線の始点を始点とし、前記入力線の終点を終点とする、出力曲線を生成するステップと、
前記入力線における各点と前記出力曲線との距離の積算値を算出するステップと、
前記出力曲線と前記距離の積算値とに基づいて、前記飛行経路を生成するステップと、
を実行させるための、プログラム。
【請求項３２】
飛行体が飛行するための飛行経路を生成する情報処理装置に、
第１の経路を示す入力線を取得するステップと、
前記入力線の始点を始点とし、前記入力線の終点を終点とする、出力曲線を生成するステップと、
前記入力線における各点と前記出力曲線との距離の積算値を算出するステップと、
前記出力曲線と前記距離の積算値とに基づいて、前記飛行経路を生成するステップと、
を実行させるための、プログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、飛行体が飛行するための飛行経路を生成する情報処理装置、飛行経路生成方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
無人機の飛行の制御を指示する方式として、リモートコントローラを用いて飛行方向を指示し、この指示に従って無人機が飛行する方式（手動式）、事前に設定された飛行経路に従って無人機が飛行する方式（自動式）、が考えられる。自動式を採用する無人機として、予め設定された固定経路を通りながら撮像を行うプラットフォーム（無人機）が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６１２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に示すように自動式で飛行経路が設定される場合、飛行経路には、直線的な経路及び曲線的な経路が含まれ得る。直線的な経路が設定される場合、例えば２つの点を通るように、直線的な経路が設定され得る。曲線的な経路が設定される場合、制約された二次ベジェ曲線となるように、曲線的な経路が設定され得る。制約された二次ベジェ曲線では、２つの点を通る二次ベジェ曲線は、この２つの点の垂直二等分線に対して対称性を有する必要があるということを意味する。例えば、複雑に曲がりくねった道路上を無人機が飛行する場合には、道路に沿って飛行させることが困難であり、複雑な曲線形状の飛行経路を設定して無人航空機が飛行することは困難である。したがって、より制約が少なく、自由な形状で飛行経路が設定可能となることが望ましい。
【課題を解決するための手段】
【０００５】
一態様において、情報処理装置は、飛行体が飛行するための飛行経路を生成する情報処理装置であって、処理部を備え、処理部は、第１の経路を示す入力線を取得し、入力線の始点を始点とし、入力線の終点を終点とする、出力曲線を生成し、入力線における各点と出力曲線との距離の積算値を算出し、出力曲線と距離の積算値とに基づいて、飛行経路を生成する。
【０００６】
処理部は、積算値が第１の閾値未満である場合、出力曲線で示された飛行経路を生成してよい。
【０００７】
処理部は、積算値が第１の閾値以上である場合、入力線における各点のうち、距離が最長となる第１の点を決定し、入力線を第１の点で分割して、入力線において第１の入力線部分と第２の入力線部分とを生成し、第１の入力線部分の始点を始点とし、第１の入力線部分の終点を終点とする、出力曲線における第１の出力曲線部分を生成し、第２の入力線部分の始点を始点とし、第２の入力線部分の終点を終点とする、出力曲線における第２の出力曲線部分を生成する。
【０００８】
処理部は、第１の入力線部分における各点と第１の出力曲線部分との距離の積算値を算出し、距離の積算値が第１の閾値未満となるまで、第１の入力線部分の分割及び分割された第１の入力線部分に対応する出力曲線部分の生成を反復してよい。
【０００９】
処理部は、生成された複数の出力曲線部分を接続して、飛行経路を生成してよい。
【００１０】
処理部は、入力線の始点と、入力線の終点と、始点及び終点と等距離な点を結ぶ垂直二等分線上の点である等距離点と、に基づいて、入力線の始点と入力線の終点とを通り、垂直二等分線に対して対称である出力曲線を生成し、距離の積算値を基に、垂直二等分線上において等距離点を移動させるための導関数を算出し、導関数の算出値に基づいて、出力曲線の変形の有無を決定してよい。
【００１１】
処理部は、導関数の算出値が第２の閾値未満である場合、出力曲線を不変としてよい。
【００１２】
処理部は、導関数の算出値が第２の閾値以上である場合、導関数の算出値に基づいて、垂直二等分線上において等距離点を移動させ、入力線の始点と、入力線の終点と、移動された等距離点と、に基づいて、出力曲線を変形してよい。
【００１３】
処理部は、等距離点の移動及び出力曲線の変形を、導関数の算出値が第２の閾値未満となるまで反復してよい。
【００１４】
出力曲線は、入力線の始点と、入力線の終点と、等距離点と、を制御点とする２次ベジェ曲線でよい。
【００１５】
情報処理装置は、通信部、を更に備えてよい。処理部は、通信部を介して、飛行経路の情報を、飛行体に送信してよい。
【００１６】
情報処理装置は、通信部、を更に備えてよい。処理部は、通信部を介して、入力線の始点と入力線の終点と等距離点との情報を、飛行体に送信してよい。
【００１７】
情報処理装置は、表示部、を更に備えてよい。処理部は、表示部を介して、飛行経路の情報を表示してよい。
【００１８】
情報処理装置は、表示部、を更に備えてよい。処理部は、表示部を介して、入力線の始点と入力線の終点と等距離点との情報を表示してよい。
【００１９】
情報処理装置は、飛行体でよい。処理部は、飛行経路に従って、飛行体の飛行を制御してよい。
【００２０】
一態様において、飛行経路生成方法は、飛行体が飛行するための飛行経路を生成する情報処理装置における飛行経路生成方法であって、第１の経路を示す入力線を取得するステップと、入力線の始点を始点とし、入力線の終点を終点とする、出力曲線を生成するステップと、入力線における各点と出力曲線との距離の積算値を算出するステップと、出力曲線と距離の積算値とに基づいて、飛行経路を生成するステップと、を有する。
【００２１】
飛行経路を生成するステップは、積算値が第１の閾値未満である場合、出力曲線で示された飛行経路を生成するステップを含んでよい。
【００２２】
飛行経路を生成するステップは、積算値が第１の閾値以上である場合、入力線における各点のうち、距離が最長となる第１の点を決定するステップと、入力線を第１の点で分割して、入力線において第１の入力線部分と第２の入力線部分とを生成するステップと、第１の入力線部分の始点を始点とし、第１の入力線部分の終点を終点とする、出力曲線における第１の出力曲線部分を生成するステップと、第２の入力線部分の始点を始点とし、第２の入力線部分の終点を終点とする、出力曲線における第２の出力曲線部分を生成するステップと、を含んでよい。
【００２３】
距離の積算値を算出するステップは、第１の入力線部分における各点と第１の出力曲線部分との距離の積算値を算出するステップを含んでよい。飛行経路を生成するステップは、距離の積算値が第１の閾値未満となるまで、第１の入力線部分の分割及び分割された第１の入力線部分に対応する出力曲線部分の生成を反復するステップを含んでよい。
【００２４】
飛行経路を生成するステップは、生成された複数の出力曲線部分を接続して、飛行経路を生成するステップを含んでよい。
【００２５】
出力曲線を生成するステップは、入力線の始点と、入力線の終点と、始点及び終点と等距離な点を結ぶ垂直二等分線上の点である等距離点と、に基づいて、入力線の始点と入力線の終点とを通り、垂直二等分線に対して対称である出力曲線を生成するステップと、距離の積算値を基に、垂直二等分線上において等距離点を移動させるための導関数を算出するステップと、導関数の算出値に基づいて、出力曲線の変形の有無を判定するステップと、を含んでよい。
【００２６】
出力曲線を生成するステップは、導関数の算出値が第２の閾値未満である場合、出力曲線を不変とするステップを含んでよい。
【００２７】
出力曲線を生成するステップは、導関数の算出値が第２の閾値以上である場合、導関数の算出値に基づいて、垂直二等分線上において等距離点を移動させるステップと、入力線の始点と、入力線の終点と、移動された等距離点と、に基づいて、出力曲線を変形するステップと、を含んでよい。
【００２８】
出力曲線を生成するステップは、等距離点の移動及び出力曲線の変形を、導関数の算出値が第２の閾値未満となるまで反復するステップを含んでよい。
【００２９】
出力曲線は、入力線の始点と、入力線の終点と、等距離点と、を制御点とする２次ベジェ曲線でよい。
【００３０】
飛行経路生成方法は、飛行経路の情報を、飛行体に送信するステップ、を更に含んでよい。
【００３１】
飛行経路生成方法は、入力線の始点と入力線の終点と等距離点との情報を、飛行体に送信するステップ、を更に含んでよい。
【００３２】
飛行経路生成方法は、飛行経路の情報を表示するステップ、を更に含んでよい。
【００３３】
飛行経路生成方法は、入力線の始点と入力線の終点と等距離点との情報を表示するステップ、を更に含んでよい。
【００３４】
情報処理装置は、飛行体でよい。飛行経路生成方法は、飛行経路に従って、飛行体の飛行を制御するステップ、を更に含んでよい。
【００３５】
一態様において、プログラムは、飛行体が飛行するための飛行経路を生成する情報処理装置に、第１の経路を示す入力線を取得するステップと、入力線の始点を始点とし、入力線の終点を終点とする、出力曲線を生成するステップと、入力線における各点と出力曲線との距離の積算値を算出するステップと、出力曲線と距離の積算値とに基づいて、飛行経路を生成するステップと、を実行させるための、プログラムである。
【００３６】
一態様において、記録媒体は、飛行体が飛行するための飛行経路を生成する情報処理装置に、第１の経路を示す入力線を取得するステップと、入力線の始点を始点とし、入力線の終点を終点とする、出力曲線を生成するステップと、入力線における各点と出力曲線との距離の積算値を算出するステップと、出力曲線と距離の積算値とに基づいて、飛行経路を生成するステップと、を実行させるための、プログラムを記録したコンピュータ読取り可能な記録媒体である。
【００３７】
なお、上記の発明の概要は、本開示の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００３８】
【図１】実施形態における飛行体システムの第１構成例を示す模式図
【図２】実施形態における飛行体システムの第２構成例を示す模式図
【図３】無人航空機の具体的な外観の一例を示す図
【図４】無人航空機のハードウェア構成の一例を示すブロック図
【図５】端末のハードウェア構成の一例を示すブロック図
【図６】端末により飛行経路生成する場合の動作例を示すフローチャート
【図７】飛行経路が生成される入力線Ｑの一例を示す図
【図８】初回の曲線フィッティングにより生成された出力曲線Ｃの一例を示す図
【図９】入力線Ｑと出力曲線Ｃとの誤差Ｅの一例を示す図
【図１０】入力線Ｑの分割点Ｋの一例を示す図
【図１１】分割点Ｋで分割されて得られた複数の入力線部分ｑ１，ｑ２の一例を示す図
【図１２】入力線部分ｑ１の曲線フィッティングにより生成された出力曲線部分ｃ１の一例を示す図
【図１３】入力線部分ｑ２の曲線フィッティングにより生成された出力曲線部分ｃ２の一例を示す図
【図１４】入力線部分ｑ２と出力曲線部分ｃ２との誤差Ｅ２の一例を示す図
【図１５】入力線部分ｑ２の分割点Ｋ２の一例を示す図
【図１６】分割点Ｋ２で分割されて得られた複数の入力線部分ｑ２＿１，ｑ２＿２の一例を示す図
【図１７】出力曲線部分を合成して形成された飛行経路と各出力曲線部分ｃの生成に用いられた制御点とを示す図
【図１８】端末により曲線フィッティングする場合の具体的な動作例を示すフローチャート
【図１９】入力線Ｑの始点Ｐ０と等距離点Ｐ１としての中点と終点Ｐ２との一例を示す図
【図２０】入力線Ｑ上の各点ｐと出力曲線Ｃとしての直線との距離の積算値Ｄの一例を示す図
【図２１】垂直二等分線Ｌ１に沿うＶ軸の設定例を示す図
【図２２】Ｖ軸上を移動する等距離点Ｐ１の移動距離ｄの一例を示す図
【図２３】Ｖ軸上を移動した等距離点Ｐ１と等距離点Ｐ１に基づいて変更された出力曲線Ｃと一例を示す図
【発明を実施するための形態】
【００３９】
以下、発明の実施形態を通じて本開示を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らない。
【００４０】
特許請求の範囲、明細書、図面、及び要約書には、著作権による保護の対象となる事項が含まれる。著作権者は、これらの書類の何人による複製に対しても、特許庁のファイル又はレコードに表示される通りであれば異議を唱えない。ただし、それ以外の場合、一切の著作権を留保する。
【００４１】
以下の実施形態では、飛行体として、無人航空機（ＵＡＶ：Unmanned Aerial Vehicle）を例示する。無人航空機は、空中を移動する航空機を含む。本明細書に添付する図面では、無人航空機を「ＵＡＶ」とも表記する。情報処理装置として、例えば端末を例示するが、他の装置（例えば送信機、サーバ、無人航空機）でもよい。飛行経路生成方法は、情報処理装置の動作が規定されたものである。また、記録媒体は、プログラム（例えば情報処理装置に各種の処理を実行させるプログラム）が記録されたものである。
【００４２】
図１は、実施形態における飛行体システム１０の第１構成例を示す模式図である。飛行体システム１０は、無人航空機１００及び端末８０を備える。無人航空機１００及び端末８０は、相互に有線通信又は無線通信（例えば無線ＬＡＮ（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）を用いて構成され、端末制御部８１から出力された各種の情報やデータを表示する。表示部８８は、アプリケーションの実行に係る各種データや情報を表示してもよい。
【００８７】
ストレージ８９は、各種データ、情報を蓄積し、保持する。ストレージ８９は、ＨＤＤ、ＳＳＤ、ＳＤカード、ＵＳＢメモリ、等でよい。ストレージ８９は、端末８０の内部に設けられてもよい。ストレージ８９は、端末８０から取り外し可能に設けられてもよい。ストレージ８９は、無人航空機１００から取得された空撮画像や付加情報を保持してよい。付加情報は、メモリ８７に保持されてもよい。
【００８８】
なお、飛行体システム１０が送信機（プロポ）を備える場合、端末８０が実行する処理は、送信機が実行してもよい。送信機は、端末８０と同様の構成部を有するので、詳細な説明については省略する。送信機は、制御部、操作部、通信部、表示部、メモリ、等を有する。飛行体システム１０が送信機を有する場合、端末８０が設けられなくてもよい。
【００８９】
次に、端末８０の端末制御部８１が有する飛行経路の生成に関する機能について説明する。端末制御部８１は、処理部の一例である。端末制御部８１は、飛行経路の生成に関する処理を行うことで、複雑な経路に対応した飛行経路を生成可能である。
【００９０】
端末制御部８１は、無人航空機１００の飛行を希望する経路ＦＲ１を取得する。経路ＦＲ１は、任意の形状の経路でよく、形状が複雑な経路であってよく、無人航空機１００の滑らかな飛行が困難な経路であってよい。端末制御部８１は、操作部８３を介してユーザ操作を受け、ユーザ操作を基に、経路ＦＲ１を生成して取得してよい。端末制御部８１は、メモリ８７等（メモリ８７やストレージ８９）から、予め保持された経路ＦＲ１の情報を取得してよい。端末制御部８１は、通信部８５を介して、地図情報を保持する外部の地図サーバにアクセスし、経路ＦＲ１を識別するための識別情報を送信し、経路ＦＲ１の情報を受信して取得してよい。経路ＦＲ１は、入力線Ｑで示されてよい。
【００９１】
端末制御部８１は、入力線Ｑの始点Ｐ０及び終点Ｐ２を、所定の形状を有する出力曲線Ｃの始点Ｐ０および終点Ｐ２として、出力曲線Ｃを生成する。出力曲線Ｃは、入力線Ｑ（経路ＦＲ１）よりも単純化された形状を有する曲線でよく、無人航空機１００の滑らかな飛行が可能な経路の少なくとも一部となり得る。出力曲線Ｃは、二次ベジェ曲線やその他の曲線でよい。ここでは、出力曲線Ｃは、二次ベジェ曲線であることを主に例示する。入力線Ｑを基に又は後述する入力線部分ｑを基に出力曲線Ｃを生成することを、曲線フィッティングとも称する。
【００９２】
二次ベジェ曲線は、例えば以下の式（０）で示されてよい。
【数１】
2020003428.tif 000003
【００９３】
なお、ｔは引数である。Ｂ（ｔ）は、二次ベジェ曲線上の点である。Ｐ０，Ｐ１，Ｐ２は、二次ベジェ曲線を生成するための制御点となる。式（０）のＰ０及びＰ２は、出力曲線Ｃの始点Ｐ０及び終点Ｐ２に相当する。式（０）のＰ１は、始点Ｐ０及び終点Ｐ２から等距離に位置する等距離点に相当する。
【００９４】
端末制御部８１は、入力線Ｑと出力曲線Ｃとの差分（誤差Ｅ）を算出する。誤差Ｅは、以下の式（１）で示されてよい。
【数２】
2020003428.tif 000004
なお、ｐは、入力線Ｑ上の点である。ｄｉｓｔ（ｐ，Ｃ）は、出力曲線Ｃと入力線Ｑ上の点ｐとの差分（距離）である。したがって、式（１）で示される誤差Ｅは、例えば図９の点線部分を含む面積で示されてよい。
【００９５】
端末制御部８１は、入力線Ｑにおいて、出力曲線Ｃとの距離が最も遠い（最長である）分割点Ｋを決定する。つまり、ｄｉｓｔ（ｐ，Ｃ）の値が最大となるｐの位置を算出してよい。なお、分割点Ｋは、距離が最長であることに限らず、距離が閾値ｔｈ４以上である複数の位置のうちのいずれかであってもよい。
【００９６】
端末制御部８１は、入力線Ｑを分割点Ｋの位置で２つの入力線部分ｑ１，ｑ２に分割する。分割点Ｋは、入力線Ｑを分割する基準となる点である。そして、端末制御部８１は、２つの入力線部分ｑ１，ｑ２に対して曲線フィッティングを行い、入力線部分ｑ１，ｑ２に基づく出力曲線部分ｃ１，ｃ２を生成してよい。また、端末制御部８１は、入力線部分ｑの分離や曲線フィッティングを反復して実施し、入力線部分ｑ３，ｑ４，ｑ５，・・・、出力曲線部分ｃ３，ｃ４，・・・、を生成してよい。
【００９７】
つまり、端末制御部８１は、入力線Ｑを１つ以上の分割点を用いて分割し、複数の入力線部分ｑを生成し、複数の入力線部分ｑに対応する複数の出力曲線部分ｃを生成してよい。複数の出力曲線部分ｃは、実際に無人航空機１００が飛行するための飛行経路ＦＲ２の基となる。出力曲線部分ｃは、部分的な出力曲線Ｃとも言える。
【００９８】
よって、入力線Ｑ及び出力曲線Ｃに適用されることは、入力線部分ｑ及び出力曲線部分ｃにも同様に適用され得る。例えば入力線部分ｑの始点Ｐ０及び終点Ｐ２を始点Ｐ０及び終点Ｐ２として、出力曲線部分ｃを生成してよい。入力線部分ｑが分割点Ｋで分割され、更に複数の入力線部分ｑが生成されてよい。
【００９９】
入力線部分ｑの分離や曲線フィッティングの回数が少ない程、飛行経路ＦＲ２が、曲線フィッティングを実施する前の元の入力線Ｑの形状から簡略化された経路となる。そのため、所望の経路ＦＲ１の形状が単純化された飛行経路ＦＲ２で、飛行方向の変更量を少なくして無人航空機１００が飛行できる。
【０１００】
また、入力線部分ｑの分離や曲線フィッティングの回数が多い程、飛行経路ＦＲ２が、曲線フィッティングを実施する前の元の入力線Ｑの形状に近くなる。そのため、所望の経路ＦＲ１に形状が近い飛行経路ＦＲ２で、無人航空機１００が飛行可能となる。
【０１０１】
端末制御部８１は、出力曲線Ｃや複数の出力曲線部分ｃに基づいて、飛行経路ＦＲ２を生成してよい。例えば、端末制御部８１は、出力曲線Ｃを飛行経路ＦＲ２としてよい。端末制御部８１は、複数の出力曲線部分ｃのうち、隣り合う出力曲線部分ｃ同士を接続して、飛行経路ＦＲ２を生成してよい。この場合、端末制御部８１は、隣り合う出力曲線部分ｃのそれぞれの始点Ｐ０及び終点Ｐ２を接続して、飛行経路ＦＲ２を生成する。無人航空機１００は、生成された飛行経路ＦＲ２に従って飛行する。よって、出力曲線Ｃや出力曲線部分ｃの始点Ｐ０及び終点Ｐ２は、無人航空機１００が飛行する際に通過する飛行位置となる。この飛行位置をウェイポイントとも称する。
【０１０２】
端末制御部８１は、曲線フィッティングのフィッティング結果をメモリ８７等に保存してよい。端末制御部８１は、表示部８８を介して、フィッティング結果を表示してよい。端末制御部８１は、通信部８５を介して、フィッティング結果を無人航空機１００へ送信してよい。フィッティング結果は、各ウェイポイントＷＰの情報、飛行経路ＦＲ２の情報を含んでよい。飛行経路ＦＲ２は、出力曲線Ｃや、複数の出力曲線部分ｃの組み合わせで示されてよい。また、フィッティング結果は、出力曲線Ｃや出力曲線部分ｃの生成の基となる制御点（始点Ｐ０、等距離点Ｐ１、終点Ｐ２）を含んでよい。
【０１０３】
端末８０は、フィッティング結果を表示することで、端末８０により導出された飛行経路ＦＲ２やウェイポイントＷＰの位置を確認できる。端末８０は、フィッティング結果を無人航空機１００に通知することで、無人航空機１００がフィッティングされた飛行経路ＦＰ２に従って飛行できる。
【０１０４】
次に、曲線フィッティングの具体例について説明する。
【０１０５】
端末制御部８１は、曲線フィッティングを行う場合、初期設定として、入力線Ｑの始点Ｐ０と終点Ｐ２とから等距離にある等距離点Ｐ１を設定する。等距離点Ｐ１は、初期値として、始点Ｐ０と終点Ｐ２との中心の点である中点でよい。これらの始点Ｐ０、等距離点Ｐ１、終点Ｐ２は、出力曲線Ｃとしての二次ベジェ曲線における３つの制御点となる。等距離点Ｐ１が始点Ｐ０と終点Ｐ２との中点である場合、二次ベジェ曲線は、直線となる。また、等距離点Ｐ１は、始点Ｐ０と終点Ｐ２とを結ぶ仮想線を二等分する垂直二等分線Ｌ１上に位置する。垂直二等分線Ｌ１に沿う軸を、Ｖ軸とする。この場合、等距離点Ｐ１は、Ｖ軸上を移動可能である。
【０１０６】
端末制御部８１は、入力線Ｑ上の点ｐと出力曲線Ｃとの距離の積算値Ｄを算出してよい。この積算値Ｄは、以下の式（２）で示されてよい。点Ｐは、入力線Ｑ上において任意に移動可能である。
【数３】
2020003428.tif 000005
なお、ｐは、入力線Ｑの点である。ｄｉｓｔ（ｐ，Ｃ）は、出力曲線Ｃと入力線Ｑ上の各点ｐとの距離である。したがって、式（２）で示される距離の積算値Ｄは、図２０の点線部分を含む面積で示されてよい。なお、式（１）、（２）を比較すると理解できるように、式（２）は、式（２）と同様の形式である。
【０１０７】
端末制御部８１は、距離の積算値Ｄについて、Ｖ軸上での等距離点Ｐ１の移動距離ｄを導出するための導関数σを算出する。導関数σは、以下の式（３）で示されてよい。式（３）の導関数σでは、ｖが引数となっている。導関数σの値（導関数の算出値）が、移動距離ｄとなる。
【数４】
2020003428.tif 000006
【０１０８】
なお、導関数σは、式（３）に示すように、距離の積算値Ｄの微分値を示し、Ｖ軸方向の微小移動に対する距離の積算値Ｄの変化量を示す。なお、等距離点ｐ１が初期値である始点Ｐ０及び終点Ｐ２の中点である場合、ｖ＝０である。導関数σは、距離の積算値Ｄを距離の積算値Ｄを変数ｖを用いて微分した値であるので、Ｖ軸上の位置によって導関数σの値が定まる。Ｖ軸上の位置が定まっているので、端末制御部８１は、Ｖ軸上の位置ｖでの導関数σの値を算出可能であり、等距離点Ｐ１における導関数σの値を算出可能である。
【０１０９】
導関数σの値が閾値ｔｈ１以上である場合、Ｖ軸上での微小移動に対する距離の積算値Ｄの変化が大きい。つまり、この時点での等距離点Ｐ１の位置では、等距離点Ｐ１を移動させると、距離の積算値Ｄが大きく変化する。そのため、この場合、端末制御部８１は、距離の積算値Ｄが小さくなるように（例えば最小化するように）、等距離点Ｐ１をＶ軸上で正方向又は負方向に移動距離ｄだけ移動させてよい。この場合、等距離点Ｐ１をＶ軸上で移動方向を含めて移動距離ｄだけ移動させてよい。ｄが、導関数σの値となり、正数はV軸の正方向、負数はV軸の負方向になる。閾値ｔｈ１は、指定変動値とも称される。
【０１１０】
そして、端末制御部８１は、始点Ｐ０、移動距離ｄだけ移動した後の等距離点Ｐ１、終点Ｐ２の３点を制御点とする二次ベジェ曲線としての出力曲線Ｃを算出してよい。この場合、今回の出力曲線Ｃは、前回の出力曲線Ｃよりも、元の入力線Ｑの形状に近くなる。よって、端末８０は、所望の経路ＦＲ１に一層近い形状の飛行経路ＦＲ２に沿って、無人航空機１００が飛行可能である。
【０１１１】
導関数σの値が閾値ｔｈ１未満である場合、Ｖ軸上での微小移動に対する距離の積算値Ｄの変化が小さい。つまり、この時点での等距離点Ｐ１の位置では、等距離点Ｐ１を移動させても、距離の積算値Ｄがあまり変化しない。そのため、等距離点Ｐ１を移動させなくても、所望の経路ＦＲ１と飛行経路ＦＲ２との差分はあまり変わらない。よって、端末制御部８１は、等距離点Ｐ１の移動を省略し、余剰な曲線フィッティングに係る計算を省略してよい。これにより、端末８０は、曲線フィッティングに要する時間を短縮でき、したがって飛行経路ＦＲ２の生成に要する時間を短縮できる。
【０１１２】
端末制御部８１は、導出された出力曲線Ｃに関連する曲線関連情報を、メモリ８７等に保存してよい。端末制御部８１は、表示部８８を介して、曲線関連情報を表示してよい。この曲線関連情報は、導出された出力曲線Ｃや出力曲線Ｃを導出するための３点の制御点（始点Ｐ０，等距離点Ｐ１，終点Ｐ２）を含んでよい。
【０１１３】
次に、飛行体システム１０の動作例について説明する。
【０１１４】
図６は、端末８０により飛行経路ＦＲ２を生成する場合の動作例を示すフローチャートである。
【０１１５】
まず、端末制御部８１は、無人航空機１００の飛行を希望する経路ＦＲ１を示す入力線Ｑを取得する（Ｓ１１）。図７は、飛行経路ＦＲ２が生成される入力線Ｑの一例を示す図である。
【０１１６】
端末制御部８１は、入力線Ｑの始点Ｐ０と終点Ｐ２とを、出力曲線Ｃの始点Ｐ０及び終点Ｐ２として、二次ベジェ曲線としての出力曲線Ｃを生成する（Ｓ１２）。つまり、端末制御部８１は、曲線フィッティングにより、入力線Ｑを基に出力曲線Ｃを生成する。図８は、初回の曲線フィッティングにより生成された出力曲線Ｃの一例を示す図である。
【０１１７】
端末制御部８１は、入力線Ｑと出力曲線Ｃとの差分としての誤差Ｅを算出する。誤差Ｅは、端末制御部８１は、誤差Ｅと比較される閾値ｔｈ２としての指定誤差Ｅｓを取得する。端末制御部８１は、誤差Ｅが指定誤差Ｅｓ未満であるか否かを判定する（Ｓ１３）。
【０１１８】
図９は、入力線Ｑと出力曲線Ｃとの誤差Ｅの一例を示す図である。誤差Ｅは、入力線Ｑの各点ｐと出力曲線Ｃとの距離の積算値で示されるので、図９の点線の斜線で示されたエリアが誤差Ｅとなる。
【０１１９】
なお、指定誤差Ｅｓは、例えば、メモリ８７等に保持されていてメモリ８７等から取得されてよいし、操作部８３を介してユーザ操作により入力されて取得されてよい。指定誤差Ｅｓは、固定値でもよいし、可変値でもよい。指定誤差Ｅｓは、出力曲線Ｃの形状を入力線Ｑの形状にどの程度近似させるかの指標となる。指定誤差Ｅｓは、例えば、出力曲線Ｃが示す飛行経路ＦＲ２の地理的な特性（例えば実際には地形や建物により飛行困難な区域、風力）や無人航空機１００の飛行予定の特性（例えば無人航空機１００の飛行予定速度）に基づいて、決定されてよい。
【０１２０】
誤差Ｅが指定誤差Ｅｓ未満である場合、端末制御部８１は、曲線フィッティングのフィッティング結果（例えば、飛行経路ＦＲ２、各ウェイポイントＷＰ、各制御点）をメモリ８７等に保存する（Ｓ１４）。
【０１２１】
つまり、誤差Ｅが指定誤差Ｅｓ未満である場合、端末制御部８１は、入力線Ｑの形状に出力曲線Ｃの形状に、無人航空機１００が飛行可能に十分に近似されていると判断可能である。例えば、出力曲線Ｃとしての二次ベジェ曲線と実曲線とが同一ではないが、許容範囲である。そのため、端末制御部８１は、出力曲線Ｃや出力曲線Ｃを生成するための各制御点（例えば始点Ｐ０、等距離点Ｐ１、終点Ｐ２）の情報を保存しておく。
【０１２２】
誤差Ｅが指定誤差Ｅｓ以上である場合、端末制御部８１は、入力線Ｑの各点のうち、出力曲線Ｃまでの距離が最も遠い最遠点を、分割点Ｋとして算出する（Ｓ１５）。言い換えると、複数算出された入力線Ｑの各点ｐと出力曲線Ｃとの距離のうち、最長距離となる入力線Ｑ上の点ｐが、分割点Ｋとなる。図１０は、出力曲線Ｃの分割点Ｋの一例を示す図である。
【０１２３】
つまり、誤差Ｅが指定誤差Ｅｓ以上である場合、端末制御部８１は、入力線Ｑの形状に出力曲線Ｃの形状に、十分に近似されていないと判断可能である。この場合、端末制御部８１は、誤差Ｅと指定誤差Ｅｓ未満となるように、出力曲線Ｃの形状が入力線Ｑの形状に一層近づくように、出力曲線Ｃを改善する。
【０１２４】
端末制御部８１は、入力線Ｑを分割点Ｋの位置で分割し、２つの曲線として入力線部分ｑ１，ｑ２を生成する（Ｓ１６）。図１１は、分割点Ｋで分割されて得られた複数の入力線部分ｑ１，ｑ２の一例を示す図である。
【０１２５】
端末制御部８１は、Ｓ１６の処理が終了すると、Ｓ１１の処理に進む。つまり、端末制御部８１は、Ｓ１６で生成された入力線部分ｑ（初回は入力線部分ｑ１，ｑ２）について、Ｓ１１の曲線フィッティングを行う。
【０１２６】
端末制御部８１は、２回目以降（つまり図６のフローチャートの２周目以降）の曲線フィッティングについて、初回と同様に、入力線部分ｑと出力曲線部分ｃとの誤差を誤差Ｅ２として算出し、指定誤差Ｅｓと比較する。指定誤差Ｅｓ未満に誤差Ｅ２が収まると、フィッティング結果を保存して図６の処理（つまり曲線フィッティング）を終了する。
【０１２７】
一方、端末制御部８１は、２回目以降の曲線フィッティングの結果、指定誤差Ｅｓ未満に誤差Ｅ２が収まらない場合、再度、入力線部分ｑにおける分割点として分割点Ｋ２を導出し、入力線部分ｑを更に分割し、分割された入力線部分ｑについて曲線フィッティングを継続してよい。
【０１２８】
図１２は、入力線部分ｑ１の曲線フィッティングにより生成された出力曲線部分ｃ１の一例を示す図である。この出力曲線部分ｃ１については、誤差Ｅ２が指定誤差Ｅｓ未満となる。そのため、出力曲線部分ｃ１は、更に分割点Ｋ２が導出されて曲線フィッティングが行われることがないので、この出力曲線部分ｃ１は、最終的な飛行経路ＦＲ２の一部分として採用される。なお、図１２では、入力線部分ｑ１を点線で示している。
【０１２９】
図１３は、入力線部分ｑ２の曲線フィッティングにより生成された出力曲線部分ｃ２の一例を示す図である。図１４は、入力線部分ｑ２と出力曲線部分ｃ２との誤差Ｅ２の一例を示す図である。誤差Ｅ２の導出方法は、初回の誤差Ｅの導出方法と同様でよい。この出力曲線部分ｃ２については、誤差Ｅ２としての誤差Ｅ２が指定誤差Ｅｓ以上となる。そのため、出力曲線部分ｃ２は、更に分割点Ｋ２が導出され、更に複数の入力線部分ｑ２＿１，ｑ２＿２が生成され、入力線部分ｑ２＿１，ｑ２＿２について曲線フィッティングが継続される。図１５は、入力線部分ｑ２の分割点Ｋ２の一例を示す図である。図１６は、分割点Ｋ２で分割されて得られた複数の入力線部分ｑ２＿１，ｑ２＿２の一例を示す図である。なお、図１３〜図１５では、入力線部分ｑ２を点線で示している。
【０１３０】
端末制御部８１は、この曲線フィッティングを、生成された出力曲線部分ｃの全てについて誤差Ｅが指定誤差Ｅｓ未満となるまで継続してよい。また、端末制御部８１は、生成された入力線部分ｑの数に対して、誤差Ｅが指定誤差Ｅｓ未満となった入力線部分ｑの数の割合が閾値ｔｈ３以上となった場合に、曲線フィッティングを終了してもよい。
【０１３１】
端末制御部８１は、各入力線部分ｑについて誤差Ｅが指定誤差Ｅｓ未満となった場合、生成された各出力曲線部分ｃを接続して、飛行経路ＦＲ２を生成する。なお、曲線フィッティングが１回であり、元の入力線Ｑから入力線部分ｑが生成されなかった場合、元の入力線Ｑから曲線フィッティングにより得られた出力曲線Ｃが、飛行経路ＦＲ２となる。
【０１３２】
図１７は、複数の出力曲線部分ｃを合成して形成された飛行経路ＦＲ２と、各出力曲線部分ｃの生成に用いられた各制御点とを示す図である。制御点は、始点Ｐ０、等距離点Ｐ１、終点Ｐ２を含む。図１７では、出力曲線部分ｃ１１〜ｃ１９を接続して飛行経路ＦＲ２を生成している。図１７では、出力曲線部分ｃ１２における始点Ｐ０、等距離点Ｐ１、終点Ｐ２を代表して示しているが、他の出力曲線部分ｃの始点Ｐ０、等距離点Ｐ１、終点Ｐ２も同様である。例えば、出力曲線部分ｃ１２における始点Ｐ０は、出力曲線部分ｃ１１における終点Ｐ２となる。例えば、出力曲線部分ｃ１２における終点Ｐ２は、出力曲線部分ｃ１３における始点Ｐ０となる。
【０１３３】
無人航空機１００が飛行する飛行位置（ウェイポイントＷＰ）は、出力曲線部分ｃの始点Ｐ０や終点Ｐ２である。よって、入力線Ｑから導出される出力曲線部分ｃの数によって、ウェイポイントＷＰの数が変化する。ウェイポイントＷＰの数が少ない程、無人航空機１００が通過すべき飛行位置の数が減り、飛行効率が向上する。ウェイポイントＷＰの数が多い程、１つの出力曲線部分ｃの長さが短くなり、誤差Ｅが小さくなる。
【０１３４】
このように、端末制御部８１（処理部の一例）は、経路ＦＲ１（第１の経路の一例）を示す入力線Ｑを取得する。端末制御部８１は、入力線Ｑの始点を始点Ｐ０とし、入力線Ｑの終点を終点Ｐ２とする、出力曲線Ｃを生成する。端末制御部８１は、入力線Ｑと出力曲線Ｃとの誤差Ｅ（入力線Ｑにおける各点ｐと出力曲線Ｃとの距離の積算値の一例）を算出する。端末制御部８１は、出力曲線Ｃと誤差Ｅとに基づいて、飛行経路ＦＲ２を生成する。
【０１３５】
これにより、端末８０は、経路ＦＲ１が複雑な曲線形状を有する経路であり、無人航空機１００が経路ＦＲ１に正確に沿って飛行することが困難な場合でも、経路ＦＲ１の形状に近く、無人航空機１００が飛行可能な飛行経路ＦＲ２を生成できる。また、端末８０は、入力線Ｑと出力曲線Ｃとの誤差Ｅを加味して飛行経路を生成するので、入力線Ｑと出力曲線Ｃとの近似具合を調整しながら、飛行経路ＦＲ２を生成できる。この場合、単純に１つの経路ＦＲ１を１つの二次ベジェ曲線に置換する場合と比較すると、必要に応じて出力曲線Ｃの形状を調整できる。よって、端末８０は、より制約が少なく、自由な形状で飛行経路ＦＲ２を生成可能である。
【０１３６】
また、端末制御部８１は、誤差Ｅが指定誤差Ｅｓ（第１の閾値の一例）未満である場合、出力曲線Ｃで示された飛行経路ＦＲ２を生成してよい。
【０１３７】
これにより、端末８０は、経路ＦＲ１と出力曲線Ｃとの形状が近い場合、出力曲線Ｃの形状を飛行経路ＦＲ２の形状に採用できる。よって、端末８０は、経路ＦＲ１から容易に飛行経路ＦＲ２を生成できる。
【０１３８】
また、端末制御部８１は、誤差Ｅが指定誤差Ｅｓ以上である場合、入力線Ｑにおける各点ｐのうち、距離が閾値ｔｈ４以上となる分割点Ｋ１（第１の点の一例）を決定してよい。端末制御部８１は、入力線Ｑを分割点Ｋで分割して、入力線Ｑにおいて入力線部分ｑ１（第１の入力線部分の一例）と入力線部分ｑ２（第２の入力線部分の一例）とを生成してよい。端末制御部８１は、入力線部分ｑ１の始点を始点Ｐ０とし、入力線部分ｑ１の終点を終点Ｐ２とする、出力曲線Ｃにおける出力曲線部分ｃ１（第１の出力曲線部分の一例）を生成してよい。端末制御部８１は、入力線部分ｑ２の始点を始点Ｐ０とし、入力線部分ｑ２の終点を終点Ｐ２とする、出力曲線Ｃにおける出力曲線部分ｃ２（第２の出力曲線部分の一例）を生成してよい。
【０１３９】
これにより、端末８０は、経路ＦＲ１と出力曲線Ｃとの形状が近似していない場合、分割点Ｋで入力線Ｑを分割できる。分割点Ｋは入力線Ｑからの距離が比較的遠い点である。また、分割点Ｋは、分割された入力線部分ｑ１，ｑ２の始点又は終点となり、対応する出力曲線部分ｃ１の始点Ｐ０又は終点Ｐ２となり、ウェイポイントとなる。よって、分割された入力線部分ｑ１，ｑ２を基に出力曲線部分ｃ１，ｃ２を生成することで、飛行経路あＦｒ２の形状が入力線Ｑの形状に近づき、誤差Ｅが小さくなる。よって、ユーザ所望の経路ＦＲ１に近い飛行経路ＦＲ２で、無人航空機１００が飛行可能となる。
【０１４０】
また、端末制御部８１は、入力線部分ｑと出力曲線部分ｃとの誤差Ｅ２（入力線部分ｑ１における各点ｐと出力曲線部分ｃ１との距離の積算値の一例）を算出してよい。端末制御部８１は、誤差Ｅ２が指定誤差Ｅｓ未満となるまで、入力線部分ｑの分割及び分割された入力線部分ｑに対応する出力曲線部分ｃの生成を反復してよい。
【０１４１】
これにより、端末８０は、誤差Ｅ２が指定誤差Ｅｓ未満となるまで、飛行経路ＦＲ２の形状をユーザ所望の経路ＦＲ１の形状に近づけることができる。また、端末８０は、ある程度飛行経路ＦＲ２の形状をユーザ所望の経路ＦＲ１の形状にある程度近づいた段階で、曲線フィッティングを終了することで、飛行経路の生成に要する時間を短縮できる。
【０１４２】
また、端末制御部８１は、生成された複数の出力曲線部分ｃを接続して、飛行経路ＦＲ２を生成してよい。
【０１４３】
これにより、端末８０は、入力線Ｑに対して分割点Ｋを利用して細かく調整して各出力曲線部分ｃを生成し、各出力曲線部分ｃを接続して、飛行経路ＦＲ２を生成できる。
【０１４４】
図１８は、端末８０により曲線フィッティングする場合の具体的な動作例を示すフローチャートである。曲線フィッティングは、図６のＳ１２で行われる曲線フィッティングでよい。
【０１４５】
端末制御部８１は、入力線Ｑの始点Ｐ０と終点Ｐ２とから等距離に位置する等距離点ｐ１のうち、始点Ｐ０と終点Ｐ２との中間に位置する中点を算出する（Ｓ２１）。図１９は、入力線Ｑの始点Ｐ０と等距離点Ｐ１としての中点と終点Ｐ２との一例を示す図である。
【０１４６】
端末制御部８１は、入力線Ｑ上の各点ｐと出力曲線Ｃとの距離の積算値Ｄを算出する（Ｓ２２）。図２０は、入力線Ｑ上の各点ｐと出力曲線Ｃとしての直線との距離の積算値Ｄの一例を示す図である。
【０１４７】
端末制御部８１は、入力線Ｑの始点Ｐ０と終点Ｐ２とを結ぶ線分を垂直に二等分する垂直二等分線Ｌ１を算出し、垂直二等分線Ｌ１をＶ軸として設定する。図２１は、垂直二等分線Ｌ１に沿うＶ軸の設定例を示す図である。
【０１４８】
端末制御部８１は、距離の積算値Ｄについて、Ｖ軸上での等距離点Ｐ１としての中点の移動距離ｄを導出するための導関数σを算出する（Ｓ２３）。端末制御部８１は、等距離点Ｐ１（例えば図１８のフローチャートの１周目では中点）における導関数σの値を算出する。導関数σの値は、移動距離ｄに相当する。
【０１４９】
端末制御部８１は、導関数σの値が、閾値ｔｈ１としての指定変動値未満であるか否かを判定する（Ｓ２４）。
【０１５０】
なお、指定変動値は、例えば、メモリ８７等に保持されていてメモリ８７等から取得されてよいし、操作部８３を介してユーザ操作により入力されて取得されてよい。指定変動値は、固定値でもよいし、可変値でもよい。指定変動値は、出力曲線Ｃの算出効率を加味して定められてよい。
【０１５１】
つまり、導関数σの値が小さいと、Ｖ軸上での等距離点Ｐ１の移動に対する距離の積算値Ｄの変化量が小さいので、等距離点Ｐ１を移動させる利点が小さく、出力曲線Ｃの算出効率が比較的低い。導関数σの値が大きいと、Ｖ軸上での等距離点Ｐ１の移動に対する距離の積算値Ｄの変化量が大きいので、等距離点Ｐ１を移動させる利点が大きく、出力曲線Ｃの算出効率が比較的高くなる。この算出効率を加味して、指定変動値が定められてよい。
【０１５２】
導関数σの値が指定変動値未満である場合、端末制御部８１は、生成された出力曲線Ｃ又は出力曲線部分ｃの曲線関連情報（例えば出力曲線Ｃ、出力曲線Ｃの各制御点としての始点Ｐ０、等距離点Ｐ１、終点Ｐ２）をメモリ８７等に保存する（Ｓ２５）。
【０１５３】
導関数σの値が指定変動値未満である場合、端末制御部８１は、Ｖ軸上での等距離点Ｐ１の移動に対する距離の積算値Ｄの変化量が小さく、時間をかけてＶ軸上での等距離点Ｐ１の移動を反復しても、入力線Ｑの形状に出力曲線Ｃの形状があまり近づかないと判断可能である。そのため、端末制御部８１は、出力曲線Ｃや出力曲線Ｃを生成するための二次ベジェ曲線の各制御点の情報を保存しておく。つまり、等距離点Ｐ１が移動されず、出力曲線Ｃ又は出力曲線部分ｃは変形されない。
【０１５４】
導関数σの値が指定変動値以上である場合、端末制御部８１は、等距離点Ｐ１を垂直二等分線Ｌ１つまりＶ軸に沿って移動させる。この場合、端末制御部８１は、算出された導関数σの値つまり移動距離ｄの分、等距離点Ｐ１を移動させる。つまり、出力曲線Ｃ又は出力曲線部分ｃが変形される。
【０１５５】
図２２は、Ｖ軸上を移動する等距離点Ｐ１の移動距離ｄの一例を示す図である。図２２では、等距離点Ｐ１は、最初の位置（始点Ｐ０及び終点Ｐ２との中点の位置）から点ｐ１’の位置に移動している。また、図２３は、Ｖ軸上を移動した等距離点Ｐ１’と等距離点Ｐ１に基づいて変更された出力曲線Ｃ’と一例を示す図である。端末制御部８１は、出力曲線Ｃ’を、始点Ｐ０、移動後の等距離点Ｐ１’、及び終点Ｐ２に基づいて生成する。
【０１５６】
このように、導関数σの値が指定変動値以上である場合、端末制御部８１は、Ｖ軸上での等距離点Ｐ１の移動に対する距離の積算値Ｄの変化量が大きく、入力線Ｑの形状に出力曲線Ｃの形状が近づくと判断可能である。この場合、端末制御部８１は、時間をかけてＶ軸上での等距離点Ｐ１の移動を反復することで、出力曲線Ｃの形状が入力線Ｑの形状に一層近づき、出力曲線Ｃを改善できる。
【０１５７】
等距離点Ｐ１の移動後、Ｓ２２の処理に進み、端末制御部８１は、曲線フィッティングの処理を反復する。この反復は、等距離点Ｐ１を移動するための導関数σの値が指定変動値未満となるまで継続されてよい。
【０１５８】
このように、端末制御部８１は、入力線Ｑの始点Ｐ０と、入力線Ｑの終点Ｐ２と、始点Ｐ０及び終点Ｐ２と等距離な点を結ぶ垂直二等分線Ｌ１上の点である等距離点Ｐ１と、に基づいて、入力線Ｑの始点Ｐ０と入力線Ｑの終点Ｐ２とを通り、垂直二等分線Ｌ１に対して対称である出力曲線Ｃを生成してよい。端末制御部８１は、距離の積算値Ｄを基に、垂直二等分線Ｌ１上において等距離点Ｐ１を移動させるための導関数σを算出してよい。端末制御部８１は、導関数σの算出値に基づいて、出力曲線Ｃの変形の有無を決定してよい。
【０１５９】
これにより、端末８０は、導関数σを算出することで、入力線Ｑと出力曲線Ｃとの差分（距離の積算値Ｄに相当）を縮小するための演算効率を加味して、出力曲線Ｃを変形するか否かを決定できる。よって、端末８０は、入力線Ｑと出力曲線Ｃとの差分の低減と出力曲線Ｃの変形効率との両立を図ることができる。
【０１６０】
また、端末制御部８１は、導関数σの算出値が指定変動値（第２の閾値の一例）未満である場合、出力曲線Ｃを不変としてよい。
【０１６１】
この場合、端末８０は、等距離点Ｐ１を移動させても、距離の積算値Ｄがあまり変化しないと判断でき、等距離点Ｐ１の移動を省略して出力曲線Ｃの変形を省略し、余剰な曲線フィッティングに係る計算を省略できる。これにより、端末８０は、曲線フィッティングに要する時間を短縮でき、したがって飛行経路ＦＲ２の生成に要する時間を短縮できる。
【０１６２】
また、端末制御部８１は、導関数σの算出値が指定変動値以上である場合、導関数σの算出値に基づいて、垂直二等分線Ｌ１上において等距離点Ｐ１を移動させ、入力線Ｑの始点Ｐ０と、入力線Ｑ０の終点Ｐ２と、移動された等距離点Ｐ１（Ｐ１’）と、に基づいて、出力曲線Ｃを変形してよい。変形の結果、例えば出力曲線Ｃ’となる。
【０１６３】
この場合、端末８０は、等距離点Ｐ１を移動させると、距離の積算値Ｄが大きく変化すると判断でき、出力曲線Ｃを変形することで、入力線Ｑと出力曲線Ｃとの差分を大幅に低減できる。
【０１６４】
また、端末制御部８１は、等距離点Ｐ１の移動及び出力曲線Ｃの変形を、導関数σの算出値が指定変動値以下となるまで反復してよい。
【０１６５】
これにより、端末８０は、入力線Ｑと出力曲線Ｃとの差分が小さくなるように（例えば最小化するように）、出力曲線の形状を最適化できる。
【０１６６】
また、出力曲線Ｃは、入力線Ｑの始点Ｐ０と、入力線Ｑの終点Ｐ２と、等距離点Ｐ１と、を制御点とする２次ベジェ曲線でよい。なお、出力曲線部分も同様に、入力線部分ｑの始点Ｐ０と、入力線部分ｑの終点Ｐ２と、等距離点Ｐ１と、を制御点とする２次ベジェ曲線でよい。
【０１６７】
これにより、端末８０は、公知の２次ベジェ曲線を部分的に用いて、出力曲線Ｃや出力曲線部分ｃに基づいて、飛行経路ＦＲ２を容易に生成できる。
【０１６８】
なお、出力曲線Ｃとして二次ベジェ曲線を例示したが、これに限られない。例えば、出力曲線Ｃは、３次以上のベジェ曲線であってもよいし、ベジェ曲線以外の曲線であってもよい。
【０１６９】
次に、無人航空機１００における飛行経路の設定について説明する。
【０１７０】
端末８０では、端末制御部８１は、通信部８５を介して、フィッティング結果を無人航空機１００へ送信してよい。無人航空機１００では、ＵＡＶ制御部１１０は、通信インタフェース１５０を介して、端末８０からフィッティング結果を取得してよい。フィッティング結果は、飛行経路ＦＲ２、ウェイポイントＷＰ、出力曲線Ｃや出力曲線部分ｃの生成の基となる制御点（始点Ｐ０、等距離点Ｐ１、終点Ｐ２）、等を含んでよい。
【０１７１】
ＵＡＶ制御部１１０は、飛行経路ＦＲ２の情報を取得した場合、飛行経路ＦＲ２に沿って、無人航空機１００が飛行するよう制御してよい。これにより、無人航空機１００は、無人航空機１００自身で飛行経路ＦＲ２を生成しなくて済み、無人航空機１００の飛行経路生成に係る処理負荷を低減して、より制約が少なく、自由な形状の飛行経路ＦＲ２に沿って飛行できる。
【０１７２】
ＵＡＶ制御部１１０は、出力曲線Ｃや出力曲線部分ｃの生成の基となる制御点の情報を取得した場合、制御点の情報に基づいて、飛行経路ＦＲ２を生成してよい。制御点に基づく飛行経路ＦＲ２の生成方法は、端末８０が生成する場合と同様でよい。ＵＡＶ制御部１１０は、生成された飛行経路ＦＲ２に沿って、無人航空機１００が飛行するよう制御してよい。これにより、無人航空機１００は、無人航空機１００自身で飛行経路ＦＲ２を生成するための制御点を導出しなくて済み、無人航空機１００の制御点の導出に係る処理負荷を低減して、より制約が少なく、自由な形状の飛行経路ＦＲ２に沿って飛行できる。
【０１７３】
ＵＡＶ制御部１１０は、ウェイポイントＷＰの情報を取得した場合、ウェイポイントＷＰの情報に基づいて、飛行経路ＦＲ２を生成してよい。ＵＡＶ制御部１１０は、ウェイポイントＷＰを通る飛行経路ＦＲ２に沿って、無人航空機１００が飛行するよう制御してよい。これにより、無人航空機１００は、無人航空機１００自身で飛行効率の良いウェイポイントＷＰを導出しなくて済み、ウェイポイントＷＰの導出に係る処理負荷を低減して、より制約が少なく、自由な形状の飛行経路ＦＲ２に沿って飛行できる。
【０１７４】
さらに、ＵＡＶ制御部１１０は、端末８０の代わりに、端末８０の端末制御部８１が有する飛行経路の生成に関する機能を有してもよい。この場合、上述した端末制御部８１の各動作が、ＵＡＶ制御部１１０により行われてよい。この場合、ＵＡＶ制御部１１０は、自ら生成した飛行経路ＦＲ２に沿って、無人航空機１００が飛行するよう制御してよい。
【０１７５】
これにより、無人航空機１００は、無人航空機１００自身で飛行経路ＦＲ２の生成から飛行経路ＦＲ２に沿った飛行まで完結でき、飛行体システム１０のシステム構成を単純化できる。つまり、端末８０が省略可能である。
【０１７６】
以上、本開示を実施形態を用いて説明したが、本開示の技術的範囲は上述した実施形態に記載の範囲には限定されない。上述した実施形態に、多様な変更又は改良を加えることが当業者に明らかである。その様な変更又は改良を加えた形態も本開示の技術的範囲に含まれ得ることが、特許請求の範囲の記載からも明らかである。
【０１７７】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現可能である。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「先ず、」、「次に」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【０１７８】
上記実施形態では、移動体として、無人航空機を示したが、本開示は、これに限らず、カメラを搭載した無人自動車、カメラを搭載した自転車、人が移動しながら把持するカメラ付きのジンバル装置等に適用することも可能である。
【符号の説明】
【０１７９】
１０  飛行体システム
８０  端末
８１  端末制御部
８３  操作部
８５  通信部
８７  メモリ
８８  表示部
８９  ストレージ
１００  無人航空機
１１０  ＵＡＶ制御部
１５０  通信インタフェース
１６０  メモリ
１７０  ストレージ
２００  ジンバル
２１０  回転翼機構
２２０，２３０  撮像部
２４０  ＧＰＳ受信機
２５０  慣性計測装置
２６０  磁気コンパス
２７０  気圧高度計
２８０  超音波センサ
２９０  レーザー測定器
Ｃ  出力曲線
ｃ１，ｃ２  出力曲線部分
ＦＲ１  経路
ＦＲ２  飛行経路
Ｋ  分割点
ｐ  入力線上の点
Ｐ０  始点
Ｐ１  等距離点
Ｐ２  終点
Ｑ  入力線
ｑ１，ｑ２  入力線部分
【図１】
2020003428.tif 000007
【図２】
2020003428.tif 000008
【図３】
2020003428.tif 000009
【図４】
2020003428.tif 000010
【図５】
2020003428.tif 000011
【図６】
2020003428.tif 000012
【図７】
2020003428.tif 000013
【図８】
2020003428.tif 000014
【図９】
2020003428.tif 000015
【図１０】
2020003428.tif 000016
【図１１】
2020003428.tif 000017
【図１２】
2020003428.tif 000018
【図１３】
2020003428.tif 000019
【図１４】
2020003428.tif 000020
【図１５】
2020003428.tif 000021
【図１６】
2020003428.tif 000022
【図１７】
2020003428.tif 000023
【図１８】
2020003428.tif 000024
【図１９】
2020003428.tif 000025
【図２０】
2020003428.tif 000026
【図２１】
2020003428.tif 000027
【図２２】
2020003428.tif 000028
【図２３】
2020003428.tif 000029