(57)【要約】      （修正有）【課題】無人航空機（ＵＡＶ）など可動物体の制御および動作に関する複数のシステム、方法、およびデバイスを提供する。【解決手段】複数のセンサを用いて可動物体に関するエラー回復を実行するための方法は、可動物体の動作の間にエラーが生じたことを１または複数のプロセッサの補助を受けて検出するステップと、可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信するステップと、可動物体により運ばれる少なくとも２つの画像センサから画像データを１または複数のプロセッサにおいて受信するステップと、慣性データおよび画像データに基づいて可動物体に関する再初期化情報を決定するステップとを含み、再初期化情報は、エラーが生じたときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち少なくとも１つを含む。【選択図】図１０
2019023865.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサを用いて可動物体に関するエラー回復を実行するための方法であり、
前記可動物体の動作の間にエラーが生じたことを１または複数のプロセッサの補助を受けて検出するステップと、
前記可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信するステップと、
前記可動物体により運ばれる少なくとも２つの画像センサから画像データを前記１または複数のプロセッサにおいて受信するステップと、
前記慣性データおよび前記画像データに基づいて前記可動物体に関する再初期化情報を決定するステップと
を含み、
前記再初期化情報は、前記エラーが生じたときの、前記可動物体の位置、前記可動物体の速度、または重力方向に対する前記可動物体の向きのうち少なくとも１つを含む、方法。
【請求項２】
前記可動物体は無人航空機（ＵＡＶ）である、請求項１に記載の方法。
【請求項３】
前記エラーは、前記少なくとも１つの慣性センサまたは前記少なくとも２つの慣性センサのうち１または複数における機能不良を含む、請求項１または２に記載の方法。
【請求項４】
前記エラーは、前記可動物体により用いられる状態推定モジュールにおける機能不良を含む、請求項１から３の何れか１つに記載の方法。
【請求項５】
前記状態推定モジュールは反復状態推定アルゴリズムを用い、前記機能不良は、前記反復状態推定アルゴリズムが解に収束し損ねることを含む、請求項４に記載の方法。
【請求項６】
前記再初期化情報を用いて前記反復状態推定アルゴリズムを再初期化するステップをさらに備える、請求項５に記載の方法。
【請求項７】
前記慣性データは、前記可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む、請求項１から６の何れか１つに記載の方法。
【請求項８】
前記慣性データは、前記エラーが生じたときから開始する時間間隔に亘って前記少なくとも１つの慣性センサにより取得される１または複数の測定値を含む、請求項１から７の何れか１つに記載の方法。
【請求項９】
前記画像データは、前記可動物体の周囲の環境の１または複数の画像を含む、請求項１から８の何れか１つに記載の方法。
【請求項１０】
前記画像データは、エラーが生じたときから開始する時間間隔に亘って前記少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含む、請求項１から９の何れか１つに記載の方法。
【請求項１１】
決定する前記ステップは、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、または特徴マッチングアルゴリズムを用いて前記１または複数の画像を処理するステップを有する、請求項１０に記載の方法。
【請求項１２】
決定する前記ステップは、前記少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、前記少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有する、請求項１０または１１に記載の方法。
【請求項１３】
前記画像データを受信する前記ステップは、
切り替え機構を介して第１画像センササブセットを前記１または複数のプロセッサに結合するステップと、
前記第１画像センササブセットからの画像データを受信するステップと、
前記切り替え機構を介して第２画像センササブセットを前記１または複数のプロセッサに結合するステップと、
前記第２画像センササブセットから画像データを受信するステップとを有する、
請求項１から１２の何れか１つに記載の方法。
【請求項１４】
前記再初期化情報はさらに、前記エラーが生じたときの前記可動物体の位置および速度を含む、請求項１から１３の何れか１つに記載の方法。
【請求項１５】
決定する前記ステップは、
前記慣性データを用いて前記再初期化情報の第１推定値を生成するステップと、
前記画像データを用いて前記再初期化情報の第２推定値を生成するステップと、
前記第１推定値および第２推定値を組み合わせて前記可動物体に関する前記再初期化情報を取得するステップと
を有する、請求項１から１４の何れか１つに記載の方法。
【請求項１６】
前記再初期化情報は、線形最適化アルゴリズムを用いて評価される、請求項１から１５の何れか１つに記載の方法。
【請求項１７】
前記再初期化情報は、前記慣性データおよび前記画像データのみに基づいて評価される、請求項１から１６の何れか１つに記載の方法。
【請求項１８】
前記重力方向に対する前記可動物体の前記向きを用いて、前記少なくとも１つの慣性センサから取得した続く慣性データを補正するステップをさらに備える、請求項１から１７の何れか１つに記載の方法。
【請求項１９】
複数のセンサを用いて可動物体に関するエラー回復を実行するためのシステムであり、
前記可動物体により運ばれる少なくとも１つの慣性センサと、
前記可動物体により運ばれる少なくとも２つの画像センサと、
１または複数のプロセッサと
を備え、
前記１または複数のプロセッサは、個々に、または集合的に、請求項１から１８の何れか１つに記載の方法を実行する、システム。
【請求項２０】
請求項１から１８の何れか１つに記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
無人航空機（ＵＡＶ）などの無人輸送体は、民間、商用、および軍事の多種多様な適用例のための監視、偵察、および探索タスクを実行するために用いられ得る。ＵＡＶは遠隔のユーザにより手動で制御され得、または半自律的な、または完全に自律的なやり方で動作し得る。そのようなＵＡＶは、状態情報などＵＡＶの動作の間に用いられ得るデータを収集するよう構成された複数のセンサを含み得る。
【０００２】
ＵＡＶの動作のためのデータ収集および処理に関する既存のアプローチは、いくつかの例において最適ではないかもしれない。例えば、ＵＡＶに関する状態情報を推定するためのいくつかの技術は、十分に正確ではないかもしれず、このことはＵＡＶの機能にとって有害であり得る。
【発明の概要】
【０００３】
本開示は、無人航空機（ＵＡＶ）など可動物体の制御および動作に関する複数のシステム、方法、およびデバイスを提供する。いくつかの実施形態において、本明細書に記載されている複数のシステム、方法、およびデバイスは、高められた正確性および柔軟性でＵＡＶの動作に関連する情報を決定することを可能するセンサ融合を利用する。例えば、１または複数の慣性センサおよび１または複数の画像センサの融合が、初期化、エラー回復、パラメータ較正、および／または状態推定を向上させるのに用いられ得る。これらの手順から取得される情報は、ＵＡＶの動作、例えば、自律または半自律ナビゲーション、障害物回避、マッピング、およびその他を容易にするために用いられ得る。
【０００４】
一態様において、複数のセンサを用いて可動物体に関する初期化情報を決定するための方法が提供される。方法は、可動物体が動作を開始したことを１または複数のプロセッサの補助を受けて検出するステップと、可動物体により搭載される少なくとも１つの慣性センサから慣性データを１または複数のプロセッサにおいて受信するステップと、可動物体により搭載される少なくとも２つの画像センサから画像データを１または複数のプロセッサにおいて受信するステップと、慣性データおよび画像データに基づいて可動物体に関する初期化情報を１または複数のプロセッサの補助を受けて決定するステップとを備え、初期化情報は、可動物体が動作を開始したときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち１または複数を含む。
【０００５】
いくつかの実施形態において、可動物体は無人航空機（ＵＡＶ）である。ＵＡＶが動作を開始したことを検出するステップは、ＵＡＶが飛行を開始したことを検出することを有し得る。ＵＡＶは、自由落下状態から、および／またはユーザにより投げられることにより飛行を開始し得る。ＵＡＶが動作を開始したことを検出するステップは、ＵＡＶが面から離陸したことを検出するステップを有し得、面は傾斜面または非傾斜面であり得る。
【０００６】
いくつかの実施形態において、慣性データは、可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む。慣性データは、可動物体が動作を開始したときから開始する時間間隔に亘って少なくとも１つの慣性センサにより取得される１または複数の測定値を含み得る。
【０００７】
いくつかの実施形態において、画像データは、可動物体の周囲の環境の１または複数の画像を含む。画像データは、可動物体が動作を開始したときから開始する時間間隔に亘って少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて１または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有し得る。
【０００８】
いくつかの実施形態において、少なくとも２つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも２つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも２つの画像センサは、切り替え機構を介して１または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを１または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第１画像センササブセットを１または複数のプロセッサに結合するステップと、第１画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第２画像センササブセットを１または複数のプロセッサに結合するステップと、第２画像センササブセットから画像データを受信するステップとを有し得る。
【０００９】
いくつかの実施形態において、初期化情報はさらに、可動物体が動作を開始したときの可動物体の位置および速度を含む。決定するステップは、慣性データを用いて初期化情報の第１推定値を生成するステップと、画像データを用いて初期化情報の第２推定値を生成するステップと、第１推定値および第２推定値を組み合わせて可動物体に関する初期化情報を取得するステップとを有し得る。初期化情報は、線形最適化アルゴリズムを用いて決定され得る。初期化情報は、慣性データおよび画像データのみに基づいて決定され得る。
【００１０】
いくつかの実施形態において、方法はさらに、重力方向に対する可動物体の向きを用いて、少なくとも１つの慣性センサから取得した続く慣性データを補正するステップを備える。
【００１１】
他の態様において、複数のセンサを用いて可動物体に関する初期化情報を決定するためのシステムが提供される。システムは、可動物体により搭載される少なくとも１つの慣性センサと、可動物体により搭載される少なくとも２つの画像センサと、１または複数のプロセッサとを備え得、１または複数のプロセッサは、個々に、または集合的に、可動物体が動作を開始したことを検出し、少なくとも１つの慣性センサから慣性データを受信し、少なくとも２つの画像センサから画像データを受信し、慣性データおよび画像データに基づいて可動物体に関する初期化情報を決定するよう構成され、初期化情報は、可動物体が動作を開始したときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち１または複数を含む。
【００１２】
他の態様において、１または複数の非一時的コンピュータ可読記憶媒体が提供される。１または複数の非一時的コンピュータ可読記憶媒体は複数の実行可能命令を格納し得、複数の実行可能命令は、可動物体に関する初期化情報を決定するためのコンピュータシステムの１または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、可動物体が動作を開始したことを検出させ、可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信させ、可動物体により搭載される少なくとも２つの画像センサから画像データを受信させ、慣性データおよび画像データに基づいて可動物体に関する初期化情報を決定させ、初期化情報は、可動物体が動作を開始したときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち１または複数を含む。
【００１３】
他の態様において、複数のセンサを用いて可動物体に関するエラー回復を実行するための方法が提供される。方法は、可動物体の動作の間にエラーが生じたことを１または複数のプロセッサの補助を受けて検出するステップと、可動物体により搭載される少なくとも１つの慣性センサから慣性データを１または複数のプロセッサにおいて受信するステップと、可動物体により搭載される少なくとも２つの画像センサから画像データを１または複数のプロセッサにおいて受信するステップと、慣性データおよび画像データに基づいて可動物体に関する再初期化情報を１または複数のプロセッサの補助を受けて決定するステップとを備え得、再初期化情報は、エラーが生じたときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち１または複数を含む。
【００１４】
いくつかの実施形態において、可動物体は無人航空機（ＵＡＶ）である。
【００１５】
いくつかの実施形態において、エラーは、少なくとも１つの慣性センサまたは少なくとも２つの画像センサのうち１または複数における機能不良を含む。エラーは、可動物体により用いられる状態推定モジュールにおける機能不良を含み得る。状態推定モジュールは反復状態推定アルゴリズムを用い得、機能不良は、反復状態推定アルゴリズムが解に収束し損ねることを含み得る。方法はさらに、再初期化情報を用いて反復状態推定アルゴリズムを再初期化するステップを備え得る。
【００１６】
いくつかの実施形態において、慣性データは、可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む。慣性データは、エラーが生じたときから開始する時間間隔に亘って少なくとも１つの慣性センサにより取得される１または複数の測定値を含み得る。
【００１７】
いくつかの実施形態において、画像データは、可動物体の周囲の環境の１または複数の画像を含む。画像データは、エラーが生じたときから開始する時間間隔に亘って少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて１または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有し得る。
【００１８】
いくつかの実施形態において、少なくとも２つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも２つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも２つの画像センサは、切り替え機構を介して１または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを１または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第１画像センササブセットを１または複数のプロセッサに結合するステップと、第１画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第２画像センササブセットを１または複数のプロセッサに結合するステップと、第２画像センササブセットから画像データを受信するステップとを有し得る。
【００１９】
いくつかの実施形態において、再初期化情報はさらに、エラーが生じたときの可動物体の位置および速度を含む。決定するステップは、慣性データを用いて再初期化情報の第１推定値を生成するステップと、画像データを用いて再初期化情報の第２推定値を生成するステップと、第１推定値および第２推定値を組み合わせて可動物体に関する再初期化情報を取得するステップとを有し得る。再初期化情報は、線形最適化アルゴリズムを用いて決定され得る。再初期化情報は、慣性データおよび画像データのみに基づいて決定され得る。
【００２０】
いくつかの実施形態において、方法はさらに、重力方向に対する可動物体の向きを用いて、少なくとも１つの慣性センサから取得した続く慣性データを補正するステップを備える。
【００２１】
他の態様において、複数のセンサを用いて可動物体に関するエラー回復を実行するためのシステムが提供される。システムは、可動物体により搭載される少なくとも１つの慣性センサと、可動物体により搭載される少なくとも２つの画像センサと、１または複数のプロセッサとを備え得、１または複数のプロセッサは、個々に、または集合的に、可動物体の動作の間にエラーが生じたことを検出し、少なくとも１つの慣性センサから慣性データを受信し、少なくとも２つの画像センサから画像データを受信し、慣性データおよび画像データに基づいて可動物体に関する再初期化情報を決定するよう構成され、再初期化情報は、エラーが生じたときの可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち１または複数を含む。
【００２２】
他の態様において、１または複数の非一時的コンピュータ可読記憶媒体が提供される。１または複数の非一時的コンピュータ可読記憶媒体は、複数の実行可能命令を格納し得、複数の実行可能命令は、可動物体に関するエラー回復を実行するためのコンピュータシステムの１または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、可動物体の動作の間にエラーが生じたことを検出させ、可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信させ、可動物体により搭載される少なくとも２つの画像センサから画像データを受信させ、慣性データおよび画像データに基づいて可動物体に関する再初期化情報を決定させ、再初期化情報は、エラーが生じたときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち１または複数を含む。
【００２３】
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体の１または複数の外部パラメータを較正するための方法が提供される。方法は、１または複数の外部パラメータは、可動物体により搭載される少なくとも２つの画像センサ間の複数の空間的関係を含む１または複数の外部パラメータに関する複数の初期値を１または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に可動物体により搭載される少なくとも１つの慣性センサから慣性データを１または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に可動物体により搭載される少なくとも２つの画像センサから画像データを１または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に反復最適化アルゴリズムを用いて複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータに関する複数の推定値を１または複数のプロセッサの補助を受けて決定するステップとを備え得る。
【００２４】
いくつかの実施形態において、可動物体は無人航空機（ＵＡＶ）である。ＵＡＶの動作は、ＵＡＶが飛行していること、および／または電力供給されていることを含み得る。
【００２５】
いくつかの実施形態において、複数の空間的関係は、少なくとも２つの画像センサの相対的な複数の位置および相対的な複数の向きを含む。少なくとも２つの画像センサの相対的な複数の位置および相対的な複数の向きは、少なくとも１つの慣性センサに関連して決定され得る。
【００２６】
いくつかの実施形態において、１または複数の外部パラメータに関する複数の初期値は、可動物体の動作の前に決定される。複数の初期値は、可動物体の動作の前に反復最適化アルゴリズムを用いて決定され得る。複数の初期値は、可動物体の動作の前にユーザにより測定され得る。１または複数の外部パラメータに関する複数の初期値は、可動物体に関連付けられたメモリデバイスから受信され得る。いくつかの実施形態において、少なくとも２つの画像センサは、１または複数の固定されたロケーションにおいて可動物体に結合され、１または複数の外部パラメータに関する複数の初期値は、１または複数の固定されたロケーションに基づいて決定される。１または複数の外部パラメータに関する複数の初期値は、１または複数の外部パラメータの複数の実際値からおよそ２ｃｍ以下だけ離れていてもよい。１または複数の外部パラメータに関する複数の初期値は、１または複数の外部パラメータの複数の実際値からおよそ２度以下離れていてもよい。
【００２７】
いくつかの実施形態において、慣性データは、可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む。慣性データは、少なくとも２つの異なる時点に亘って少なくとも１つの慣性センサにより取得される１または複数の測定値を含み得る。
【００２８】
いくつかの実施形態において、画像データは、可動物体の周囲の環境の１または複数の画像を含む。画像データは、少なくとも２つの異なる時点に亘って少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて１または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有し得る。
【００２９】
いくつかの実施形態において、少なくとも２つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも２つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも２つの画像センサは、切り替え機構を介して１または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを１または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第１画像センササブセットを１または複数のプロセッサに結合するステップと、第１画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第２画像センササブセットを１または複数のプロセッサに結合するステップと、第２画像センササブセットから画像データを受信するステップとを有し得る。
【００３０】
いくつかの実施形態において、反復最適化アルゴリズムは非線形最適化アルゴリズムである。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータの最大事後確率（ＭＡＰ）推定値を算出することを含み得る。いくつかの実施形態において、慣性データおよび画像データは、１または複数の外部パラメータに関する複数の推定値を決定するのに用いられる唯一のセンサデータである。
【００３１】
いくつかの実施形態において、方法はさらに、１または複数の外部パラメータに関する複数の推定値に基づいて可動物体の状態を決定するステップを備える。状態は、可動物体の位置、向き、または速度のうち１または複数を含み得る。可動物体の状態は、可動物体の動作の間の前の時点における可動物体の前の状態に関連して決定され得る。前の時点は、初期化または再初期化が生じた時点であり得る。
【００３２】
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体の１または複数の外部パラメータを較正するためのシステムが提供される。システムは、可動物体により搭載される少なくとも１つの慣性センサと、可動物体により搭載される少なくとも２つの画像センサと、１または複数のプロセッサとを備え得、１または複数のプロセッサは、個々に、または集合的に、少なくとも２つの画像センサ間の複数の空間的関係を含む１または複数の外部パラメータに関する複数の初期値を受信し、可動物体の動作の間に少なくとも１つの慣性センサから慣性データを受信し、可動物体の動作の間に少なくとも２つの画像センサから画像データを受信し、可動物体の動作の間に反復最適化アルゴリズムを用いて複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータに関する複数の推定値を決定するよう構成され得る。
【００３３】
他の態様において、１または複数の非一時的コンピュータ可読記憶媒体が提供される。１または複数の非一時的コンピュータ可読記憶媒体は、複数の実行可能命令を格納し得、複数の実行可能命令は可動物体の１または複数の外部パラメータを較正するためのコンピュータシステムの１または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、可動物体により搭載される少なくとも２つの画像センサ間の複数の空間的関係を含む１または複数の外部パラメータに関する複数の初期値を受信させ、可動物体の動作の間に可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信させ、可動物体の動作の間に少なくとも２つの画像センサから画像データを受信させ、可動物体の動作の間に反復最適化アルゴリズムを用いて複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータに関する複数の推定値を決定させる。
【００３４】
他の態様において、初期構成を有する複数のセンサを有する可動物体の１または複数の外部パラメータを較正するための方法が提供される。方法は、少なくとも１つの慣性センサと少なくとも２つの画像センサとを含む複数のセンサの初期構成が修正されたことを１または複数のプロセッサの補助を受けて検出するステップと、可動物体の動作の間に少なくとも１つの慣性センサから慣性データを１または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に少なくとも２つの画像センサから画像データを１または複数のプロセッサにおいて受信するステップと、初期構成が修正されたことの検出に応答して、慣性データおよび画像データに基づいて１または複数の外部パラメータを１または複数のプロセッサの補助を受けて推定するステップとを備え得、１または複数の外部パラメータは可動物体の動作の間に反復最適化アルゴリズムを用いて推定され、１または複数の外部パラメータは修正された構成を有する複数のセンサ間の複数の空間的関係を含む。
【００３５】
いくつかの実施形態において、可動物体は無人航空機（ＵＡＶ）である。ＵＡＶの動作は、ＵＡＶが飛行していること、および／または電力供給されていることを含み得る。
【００３６】
いくつかの実施形態において、複数の空間的関係は、少なくとも２つの画像センサの相対的な複数の位置および相対的な複数の向きを含む。少なくとも２つの画像センサの相対的な複数の位置および相対的な複数の向きは、少なくとも１つの慣性センサに関連して決定され得る。
【００３７】
いくつかの実施形態において、１または複数の外部パラメータに関する複数の初期値は、可動物体の動作の前に決定される。複数の初期値は、可動物体の動作の前に反復最適化アルゴリズムを用いて決定され得る。複数の初期値は、可動物体の動作の前にユーザにより測定され得る。１または複数の外部パラメータに関する複数の初期値は、可動物体に関連付けられたメモリデバイスから受信され得る。いくつかの実施形態において、少なくとも２つの画像センサは、１または複数の固定されたロケーションにおいて可動物体に結合され、１または複数の外部パラメータに関する複数の初期値は、１または複数の固定されたロケーションに基づいて決定される。
【００３８】
いくつかの実施形態において、初期構成は、複数のセンサから少なくとも１つのセンサを除くことにより修正される。初期構成は、複数のセンサへ少なくとも１つのセンサを追加することにより修正され得る。初期構成は、複数のセンサのうち少なくとも１つのセンサの位置または向きのうち少なくとも１つを変化させることにより修正され得る。初期構成は、可動物体の動作の前に修正され得る。
【００３９】
いくつかの実施形態において、慣性データは、可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む。慣性データは、少なくとも２つの異なる時点に亘って少なくとも１つの慣性センサにより取得された１または複数の測定値を含み得る。
【００４０】
いくつかの実施形態において、画像データは、可動物体の周囲の環境の１または複数の画像を含む。画像データは、少なくとも２つの異なる時点に亘って少なくとも２つの画像センサのうちそれぞれにより取得された１または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて１または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有し得る。
【００４１】
いくつかの実施形態において、少なくとも２つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも２つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも２つの画像センサは、切り替え機構を介して１または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを１または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第１画像センササブセットを１または複数のプロセッサに結合するステップと、第１画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第２画像センササブセットを１または複数のプロセッサに結合するステップと、第２画像センササブセットから画像データを受信するステップとを有し得る。
【００４２】
いくつかの実施形態において、反復最適化アルゴリズムは非線形最適化アルゴリズムである。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータの最大事後確率（ＭＡＰ）推定値を算出することを含み得る。いくつかの実施形態において、慣性データおよび画像データは、１または複数の外部パラメータを推定するのに用いられる唯一のセンサデータである。
【００４３】
いくつかの実施形態において、方法はさらに、推定された１または複数の外部パラメータに基づいて可動物体の状態を決定するステップを備える。状態は、可動物体の位置、向き、または速度のうち１または複数を含み得る。
【００４４】
他の態様において、初期構成を有する複数のセンサを有する可動物体の１または複数の外部パラメータを較正するためのシステムが提供される。システムは、可動物体により運ばれ、少なくとも１つの慣性センサおよび少なくとも２つの画像センサを有する複数のセンサと、１または複数のプロセッサとを備え得、１または複数のプロセッサは、個々に、または集合的に、複数のセンサの初期構成が修正されたことを検出し、可動物体の動作の間に少なくとも１つの慣性センサから慣性データを受信し、可動物体の動作の間に少なくとも２つの画像センサから画像データを受信し、初期構成が修正されたことの検出に応答して、慣性データおよび画像データに基づいて１または複数の外部パラメータを推定するよう構成され、１または複数の外部パラメータは、可動物体の動作の間に反復最適化アルゴリズムを用いて推定され、１または複数の外部パラメータは、修正された構成を有する複数のセンサ間の複数の空間的関係を含む。
【００４５】
他の態様において、１または複数の非一時的コンピュータ可読記憶媒体が提供される。１または複数の非一時的コンピュータ可読記憶媒体は、複数の実行可能命令を格納し得、複数の実行可能命令は、初期構成を有する複数のセンサを有する可動物体の１または複数の外部パラメータを較正するためのコンピュータシステムの１または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、少なくとも１つの慣性センサと少なくとも２つの画像センサとを含む複数のセンサの初期構成が修正されたことを検出させ、可動物体の動作の間に少なくとも１つの慣性センサから慣性データを受信させ、可動物体の動作の間に少なくとも２つの画像センサから画像データを受信させ、初期構成が修正されたことの検出に応答して、慣性データおよび画像データに基づいて１または複数の外部パラメータを推定させ、１または複数の外部パラメータは、可動物体の動作の間に反復最適化アルゴリズムを用いて推定され、１または複数の外部パラメータは、修正された構成を有する複数のセンサ間の複数の空間的関係を含む。
【００４６】
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体に関する状態情報を推定するための方法が提供される。方法は、可動物体に関する前の状態の情報を１または複数のプロセッサにおいて受信するステップと、可動物体により搭載される少なくとも１つの慣性センサから慣性データを１または複数のプロセッサにおいて受信するステップとを、可動物体により搭載される少なくとも２つの画像センサから画像データを１または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に反復最適化アルゴリズムを用い、前の状態の情報、慣性データ、および画像データに基づいて可動物体に関する更新された状態情報を、１または複数のプロセッサの補助を受けて決定するステップとを備え得、慣性データは、可動物体の動作の間の少なくとも２つの異なる時点に亘って少なくとも１つの慣性センサにより取得される慣性測定データを含み、画像データは、可動物体の動作の間の少なくとも２つの異なる時点に亘って少なくとも２つの画像センサのうち各画像センサにより取得された複数の画像を含む。
【００４７】
いくつかの実施形態において、可動物体は無人航空機（ＵＡＶ）である。ＵＡＶの動作は、ＵＡＶが飛行していること、および／または電力供給されていることを含み得る。
【００４８】
いくつかの実施形態において、前の状態の情報は、可動物体の動作の間の前の時点における可動物体の位置、向き、および速度を含む。前の状態の情報は、反復最適化アルゴリズムを用いて取得され得る。更新された状態情報は、可動物体の位置、速度、および向きを含み得る。
【００４９】
いくつかの実施形態において、慣性データは、可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む。
【００５０】
いくつかの実施形態において、画像データは、可動物体の周囲の環境の１または複数の画像を含む。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて１または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて１または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有し得る。
【００５１】
いくつかの実施形態において、少なくとも２つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも２つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも２つの画像センサは、切り替え機構を介して１または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを１または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第１画像センササブセットを１または複数のプロセッサに結合するステップと、第１画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第２画像センササブセットを１または複数のプロセッサに結合するステップと、第２画像センササブセットから画像データを受信するステップとを有し得る。
【００５２】
いくつかの実施形態において、反復最適化アルゴリズムは非線形最適化アルゴリズムである。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて更新された状態情報の最大事後確率（ＭＡＰ）推定値を算出することを含み得る。いくつかの実施形態において、慣性データおよび画像データは、更新された状態情報を決定するのに用いられる唯一のセンサデータである。
【００５３】
いくつかの実施形態において、方法はさらに、可動物体の動きを制御するために、更新された状態情報を制御モジュールへ出力するステップを備える。
【００５４】
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体に関する状態情報を推定するためのシステムが提供される。システムは、可動物体により搭載される少なくとも１つの慣性センサと、可動物体により搭載される少なくとも２つの画像センサと、１または複数のプロセッサとを備え得、１または複数のプロセッサは、個々に、または集合的に、可動物体に関する前の状態の情報を受信し、少なくとも１つの慣性センサから慣性データを受信し、少なくとも２つの画像センサから画像データを受信し、可動物体の動作の間に反復最適化アルゴリズムを用い、前の状態の情報、慣性データ、および画像データに基づいて可動物体に関する更新された状態情報を決定するよう構成され、慣性データは、可動物体の動作の間の少なくとも２つの異なる時点に亘って少なくとも１つの慣性センサにより取得された慣性測定データを含み、画像データは、可動物体の動作の間の少なくとも２つの異なる時点に亘って少なくとも２つの画像センサのうち各画像センサにより取得された複数の画像を含む。
【００５５】
他の態様において、１または複数の非一時的コンピュータ可読記憶媒体が提供される。１または複数の非一時的コンピュータ可読記憶媒体は複数の実行可能命令を格納し得、複数の実行可能命令は、可動物体に関する状態情報を推定するためのコンピュータシステムの１または複数のプロセッサにより実行されたときに、コンピュータシステムに少なくとも、可動物体に関する前の状態の情報を受信させ、可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信させ、可動物体により搭載される少なくとも２つの画像センサから画像データを受信させ、可動物体の動作の間に反復最適化アルゴリズムを用い、前の状態の情報、慣性データ、および画像データに基づいて可動物体に関する更新された状態情報を決定させ、慣性データは、可動物体の動作の間の少なくとも２つの異なる時点に亘って少なくとも１つの慣性センサにより取得された慣性測定データを含み、画像データは、可動物体の動作の間の少なくとも２つの異なる時点に亘って少なくとも２つの画像センサのうち各画像センサにより取得された複数の画像を含む。
【００５６】
本願発明の異なる複数の態様が、個々に、集合的に、または互いに組み合わせて認識さ得ることが理解されよう。本明細書に記載されている本願発明の様々な態様は、以下に明らかにされる特定の複数の適用例のうち何れかに、または何らかの他の複数のタイプの複数の可動物体のために適用され得る。本明細書における航空機についてのいずれの記載も、何らかの輸送体など何らかの可動物体に当てはまり得、それらのために用いられ得る。追加的に、空中での動き（例えば、飛行）の文脈で本明細書に開示されている複数のシステム、デバイス、および方法は、地上または水上での動き、水面下での動き、または宇宙空間での動きなど他の複数のタイプの動きの文脈にも適用され得る。更に、本明細書におけるロータまたはロータ組立体についてのいずれの記載も、回転により推進力を生成するよう構成された何らかの推進システム、デバイス、または機構（例えば、プロペラ、車輪、車軸）に当てはまり得、それらのために用いられ得る。
【００５７】
本願発明の他の複数の目的および特徴は、明細書、複数の請求項、および添付の複数の図面を検討することにより明らかとなろう。
参照による組み込み
【００５８】
本明細書で言及される全ての出版物、特許、および特許出願は、個々の出版物、特許、または特許出願が具体的に、および個々に参照により組み込まれることが示されているのと同じ程度、参照により本明細書に組み込まれる。
【図面の簡単な説明】
【００５９】
本願発明の新規性ある複数の特徴は、添付の複数の請求項において詳細に明らかにされる。本願発明の複数の特徴および利点のよりよい理解は、本願発明の複数の原理が利用されている例示的な複数の実施形態を明らかにする以下の詳細な説明および添付の複数の図面を参照することにより得られるであろう。
【００６０】
【図１】複数の実施形態に係る、ＵＡＶに関する状態推定を示す。
【００６１】
【図２】複数の実施形態に係る、ＵＡＶに関する外部パラメータ較正を示す。
【００６２】
【図３】複数の実施形態に係る、水平な向きにあるＵＡＶの初期化を示す。
【００６３】
【図４】複数の実施形態に係る、傾けられた向きあるＵＡＶの初期化を示す。
【００６４】
【図５】複数の実施形態に係る、ＵＡＶを動作させるための方法を示す。
【００６５】
【図６】複数の実施形態に係る、慣性データおよび画像データを処理するためのシステムを示す。
【００６６】
【図７】複数の実施形態に係る、異なる複数の時点において単一の画像センサにより撮像された複数の画像間の特徴点マッチングを実行するためのアルゴリズムを示す。
【００６７】
【図８】複数の実施形態に係る、異なる複数の画像センサにより撮像された複数の画像間の特徴点マッチングを実行するためのアルゴリズムを示す。
【００６８】
【図９】複数の実施形態に係る、複数のセンサを用いてＵＡＶに関する初期化情報を決定するための方法を示す。
【００６９】
【図１０】複数の実施形態に係る、複数のセンサを用いたＵＡＶに関するエラー回復のための方法を示す。
【００７０】
【図１１】複数の実施形態に係る，ＵＡＶの１または複数の外部パラメータを較正するための方法を示す。
【００７１】
【図１２】複数の実施形態に係る、初期構成を有する複数のセンサを有するＵＡＶの１または複数の外部パラメータを較正するための方法を示す。
【００７２】
【図１３】複数の実施形態に係る、ＵＡＶの動作の間に複数のセンサを用いてＵＡＶに関する状態情報を推定するための方法を示す。
【００７３】
【図１４】複数の実施形態に係る、前の状態の情報を選択するためのスライディングウィンドウフィルタを示す。
【００７４】
【図１５】複数の実施形態に係る、ＵＡＶに関する状態推定および／またはパラメータ較正を実行するための方法を示す。
【００７５】
【図１６】複数の実施形態に係る、複数のセンサを用いてＵＡＶを制御するためのシステムを示す。
【００７６】
【図１７】複数の実施形態に係るＵＡＶを示す。
【００７７】
【図１８】複数の実施形態に係る、支持機構および積載物を含む可動物体を示す。
【００７８】
【図１９】複数の実施形態に係る、可動物体を制御するためのシステムを示す。
【００７９】
【図２０】複数の実施形態に係る同期的画像データ収集スキームを示す。
【００８０】
【図２１】複数の実施形態に係る非同期的画像データ収集スキームを示す。
【００８１】
【図２２】複数の実施形態に係る、切り替え可能に結合された複数の画像センサを有するシステムを示す。
【発明を実施するための形態】
【００８２】
本開示の複数のシステム、複数の方法、および複数のデバイスは、無人航空機（ＵＡＶ）など複数の可動物体の動作に関連する情報の決定を可能とする。いくつかの実施形態において、本開示は、状態推定、初期化、エラー回復、および／またはパラメータ較正のための情報など、ＵＡＶの動作のために有用な様々なタイプの情報を決定するために、異なる複数のセンサタイプからのセンサデータを組み合わせる複数のセンサ融合技術を利用する。例えば、ＵＡＶは、少なくとも１つの慣性センサおよび少なくとも２つの画像センサを含み得る。異なる複数のタイプのセンサからのデータを組み合わせるのに反復最適化アルゴリズムなど様々な方法が用いられ得る。いくつかの実施形態において、反復最適化アルゴリズムは、反復して非線形関数（例えば、非線形目的関数）を線形化し解くことを伴う。本明細書に提示される複数のセンサ融合技術は、ＵＡＶの状態推定、初期化、エラー回復、および／またはパラメータ較正の正確性および堅牢性を向上させるのに用いられ得、したがって、「インテリジェント」な自律的または半自律的動作のための複数のＵＡＶの複数の能力を拡張する。
【００８３】
いくつかの実施形態において、本開示は、複数の画像化センサ（例えば、複数のカメラ）を慣性センサと組み合わせて用いて初期化、エラー回復、パラメータ較正、および／または状態推定を実行することに関する複数のシステム、方法、およびデバイスを提供する。複数の画像化センサの使用は単一の画像センサを利用する複数のアプローチと比較して様々な利点を提供する。それら利点には、（例えば、より多くの画像データが推定のために利用可能であることによる）向上した正確性、および高められた安定性および堅牢性（例えば、複数の画像センサは、複数の画像センサのうち１つが機能不良に陥った際に冗長性を提供出来る）などがある。複数の画像センサからのデータを組み合わせるための複数のセンサ融合アルゴリズムは、単一の画像センサの複数のアプローチのための複数のアルゴリズムとは異なり得る。例として、複数の画像センサのための複数のアルゴリズムは、異なる複数の画像センサ間の複数の空間的関係（例えば、相対的な位置および／または向き）を考慮し得、そのような複数の空間的関係は、単一の画像センサの複数のアプローチには当てはまらないであろう。
【００８４】
本明細書におけるいくつかの実施形態は複数のＵＡＶの文脈で提示されているが、本開示は地面用輸送体など他の複数のタイプの可動物体に適用され得ることが理解されよう。本明細書に提供される複数のシステム、方法、およびデバイスでの使用のために適切な複数の可動物体の複数の例は、より詳細に以下に記載されている。
【００８５】
本明細書に記載されている複数のＵＡＶは、（例えば、搭載されたコントローラなど適切なコンピューテイングシステムにより）完全に自律的に、半自律的に、または手動で（例えば、人であるユーザにより）動作させられ得る。ＵＡＶは、適切な実存物（例えば、人であるユーザまたは自律制御システム）から複数のコマンドを受信し、１または複数のアクションを実行することによりそのような複数のコマンドに応じ得る。例えば、ＵＡＶは、地上から離陸し、（例えば、最大３つの並進自由度、および最大３つの回転自由度で）空中を動き、ターゲットロケーションまたは一連のターゲットロケーションへ動き、空中をホバリングし、地上に着陸するなどするよう制御され得る。他の例として、ＵＡＶは、特定された速度および／または加速度で（例えば、最大３つの並進自由度、および最大３つの回転自由度）または特定された動きの経路に沿って動くよう制御され得る。更に、複数のコマンドは、本明細書に記載された複数のコンポーネント（例えば、センサ、アクチュエータ、推進ユニット、積載物等）など１または複数のＵＡＶコンポーネントを制御するのに用いられ得る。例として、いくつかコマンドが、カメラなどＵＡＶ積載物の位置、向きおよび／または動作を制御するのに用いられ得る。
【００８６】
いくつかの実施形態において、ＵＡＶは、より高い自律度を伴い得るより複雑な複数の機能を実行するよう、または、何らかのユーザ入力を要することなく全体的に自律的に実行するよう構成され得る。そのような複数の機能の複数の例は、特定の位置を維持すること（例えば、決まった位置でホバリングすること）、ナビゲーション（例えば、ターゲットである目的地に動くためのルートを計画すること、および／またはそれに沿うこと）、障害物回避、および環境マッピングを含むが、これらに限定されない。これらの機能の実装は、ＵＡＶおよび／または周囲環境についての情報に基づいてもよい。
【００８７】
例えば、いくつかの実施形態において、過去、現在、および／または予想される将来のＵＡＶの状態を示す状態情報を決定することが有益である。状態情報は、ＵＡＶの空間的配置（例えば、経度、緯度、および／または高度などロケーションまたは位置情報；ロール、ピッチおよび／またはヨーなど向きまたは姿勢情報）についての情報を含み得る。状態情報は、ＵＡＶの動きについての情報（例えば、並進速度、並進加速度、角速度、角加速度等）も含み得る。状態情報は、最大６自由度（例えば、位置および／または並進３自由度、向きおよび／または回転３自由度）に関するＵＡＶの空間的配置および／または動きについての情報を含み得る。状態情報は、全体座標系と相対的に、または局所座標系と相対的に（例えば、ＵＡＶとまたは他の実存物と相対的に）提供されてもよい。いくつかの実施形態において、状態情報は、動作を始めた（例えば、電力供給されている、離陸した、飛行を開始した）ときのＵＡＶの空間的配置などＵＡＶの前の状態と相対的に提供される。状態情報の決定は本明細書で「状態推定」と呼ばれ得る。オプションで、状態推定は、更新された状態情報を提供するようＵＡＶの動作の全体に亘って（例えば、継続的に、または予め定められた複数の時間間隔で）実行され得る。
【００８８】
図１は、複数の実施形態に係る、ＵＡＶ１００に関する状態推定を示す。ＵＡＶ１００は図１において、第１時点ｋにおいて第１状態１０２にあり、続く第２時点ｋ＋１において第２状態１０４にあるものとして描写されている。ＵＡＶ１００の位置および向きを示す局所座標系または基準系１０６が、ＵＡＶ１００と相対的に定義され得る。ＵＡＶ１００は、第１状態１０２にあるときには第１位置および向きを、第２状態１０４にあるときには第２位置および向きを有し得る。状態の変化は、第１位置から第２位置への並進Ｔおよび／または第１向きから第２向きへの回転θとして表され得る。前の状態１０２にあるＵＡＶ１００の位置および向きが知られているとき、Ｔおよびθが、続く状態１０４におけるＵＡＶ１００の位置および向きを決定するのに用いられ得る。さらに、時間間隔の長さ［ｋ，ｋ＋１］が知られている場合、第２状態１０４にあるＵＡＶ１００の並進および角速度も、それぞれＴおよびθに基づいて推定され得る。したがって、いくつかの実施形態において、状態推定は、状態の変化Ｔ、θを決定し、第２状態１０４を決定するために、その後、状態変化情報および第１状態１０２についての情報を用いることを伴う。
【００８９】
いくつかの実施形態において、状態推定は、１または複数のセンサにより取得されたセンサデータに基づいて実行される。本明細書に開示される複数の実施形態での使用のために適切な例示的な複数のセンサは、ロケーションセンサ（例えば、全地球測位システム（ＧＰＳ）センサ、ロケーションの三角測量を可能とするモバイルデバイスの送信機）、イメージまたはビジョンセンサ（例えば、可視光、赤外線、または紫外線を検出することが可能なカメラなどの画像化デバイス）、近接または距離センサ（例えば、超音波センサ、ライダー、タイムオブフライト、または深度カメラ）、慣性センサ（例えば、加速度計、ジャイロスコープ、慣性測定ユニット（ＩＭＵ））、高度センサ、姿勢センサ（例えば、コンパス）、圧力センサ（例えば、気圧計）、オーディオセンサ（例えば、マイク）、またはフィールドセンサ（例えば、磁力計、電磁センサ）を含む。１つ、２つ、３つ、４つ、５つ、またはそれらより多くのセンサなど任意の適切な数および組み合わせのセンサが用いられ得る。オプションで、データが、異なる複数のタイプの（例えば、２つ、３つ、４つ、５つ、またはそれらより多くのタイプの）センサから受信され得る。異なる複数のタイプのセンサは、異なる複数のタイプの信号または情報（例えば、位置、向き、速度、加速度、近接度、圧力等）を測定し得、および／または、データを取得するよう異なる複数のタイプの測定技術を利用し得る。例として、複数のセンサは、何らかの適切な組み合わせの能動型センサ（例えば、自身のエネルギー源からエネルギーを生成し測定するセンサ）および受動型センサ（例えば、利用可能なエネルギーを検出するセンサ）を含み得る。他の例として、いくつかのセンサは、全体座標系に関して提供される絶対的な測定データ（例えば、ＧＰＳセンサにより提供される位置データ、コンパスまたは磁力計により提供される姿勢データ）を生成し得、他方では、他の複数のセンサは、局所座標系に関して提供される相対的な測定データ（例えば、ジャイロスコープにより提供される相対的な角速度、加速度計により提供される相対的な並進加速度、画像センサにより提供される特定の周囲環境の投影図、超音波センサにより提供される相対的な距離情報、ライダー、またはタイムオブフライトカメラ）を生成し得る。いくつかの例において、局所座標系は、ＵＡＶと相対的に定義される本体座標系であり得る。
【００９０】
本明細書に記載されている複数のセンサは、ＵＡＶにより運ばれ得る。センサは、ＵＡＶの輸送体本体の上方、下方、わき、または内部などＵＡＶの何らかの適切な部分に位置付けられ得る。いくつかの実施形態において、１または複数のセンサは、ＵＡＶの筐体内で囲まれ得、筐体の外部に位置付けられ得、筐体の面（例えば、内面または外面）に結合され得、または筐体の一部を形成し得る。いくつかのセンサは、ＵＡＶの空間的配置および／または動きが複数のセンサの空間的配置および／または動きに対応するようＵＡＶに機械的に結合され得る。センサは、センサが取り付けられたＵＡＶの一部と相対的に動かないように剛性の結合を介してＵＡＶに結合され得る。代替的に、センサとＵＡＶとの間の結合は、ＵＡＶと相対的なセンサの動きを可能とし得る。結合は、永久的な結合または非永久的な（例えば、解放可能な）結合であり得る。適切な複数の結合方法は、粘着、接着、溶接、および／または留め金具（例えば、ねじ、びょう、ピン等）を含み得る。いくつかの実施形態において、センサとＵＡＶとの間の結合は、複数の振動、または所望されない機械的な他の複数の動きがＵＡＶ本体からセンサへ伝達されてしまうことを低減する複数の緩衝器またはダンパを備える。オプションで、センサは、ＵＡＶの一部と一体的に形成され得る。更に、センサは、本明細書で説明される複数の実施形態など、センサにより収集されたデータがＵＡＶの様々な機能（例えば、ナビゲーション、制御、推進、ユーザまたは他のデバイスとの通信等）のために用いられることを可能とするようＵＡＶの一部（例えば、プロセッシングユニット、制御システム、データストレージ）に電気的に結合され得る。
【００９１】
いくつかの実施形態において、複数の感知結果は、「センサ融合」としても知られる、複数のセンサにより取得されるセンサデータの組み合わせにより生成される。例として、センサ融合は、ＧＰＳセンサ、慣性センサ、画像センサ、ライダー、超音波センサ、およびその他を含む異なる複数のセンサタイプにより取得される感知データを組み合わせるのに用いられ得る。他の例として、センサ融合は、絶対測定データ（例えば、ＧＰＳデータなど全体座標系と相対的に提供されるデータ）および相対的な測定データ（例えば、ビジョン感知データ、ライダーデータ、または超音波感知データなど局所座標系と相対的に提供されるデータ）など異なる複数のタイプの感知データを組み合わせるのに用いられ得る。センサ融合は、個々の複数のセンサタイプに関連する限界または不正確性を補い、これにより最終的な感知結果の正確性および信頼性を向上させるために用いられ得る。
【００９２】
複数のセンサが用いられる複数の実施形態において、各センサは、それぞれの位置および向きでＵＡＶ上に位置付けられ得る。複数のセンサの互いに相対的な複数の空間的関係についての情報（例えば、相対的な位置および向き）は、複数のセンサからのデータを融合するための基準として用いられ得る。これらの空間的関係は本明細書において、複数のセンサの「外部パラメータ」と呼ばれ得、複数の空間的関係を決定する処理は本明細書で「外部パラメータ較正」と呼ばれ得る。いくつかの実施形態において、複数の外部パラメータに関する複数の初期値が知られるように、複数のセンサが、予め定められた複数のロケーションにおいてＵＡＶ上に設置される。さらに、複数の外部パラメータは、例えば、振動、衝突、または複数のセンサの相対的な位置および／または向きを変化させる他の出来事に起因してＵＡＶの動作の間に変化し得る。したがって、複数のセンサ融合結果が正確かつ堅牢であることを確実にするために、更新されたパラメータ情報を提供するようＵＡＶの動作の全体で（例えば、継続的に、または予め定められた複数の時間間隔で）外部パラメータ較正を実行するのが役立ち得る。
【００９３】
図２は、複数の実施形態に係る、ＵＡＶに関する外部パラメータ較正を示す。ＵＡＶは、基準センサ２００、および複数の追加のセンサ２０２を含む。センサ２００、２０２のうちそれぞれは、センサの位置および向きを示すそれぞれの局所座標系または基準系に関連付けられている。いくつかの実施形態において、各センサ２０２は、基準センサ２００の座標系と相対的な、異なるそれぞれの位置および向きにある。各センサ２０２の複数の外部パラメータは、センサ２０２の座標系から基準センサ２００の座標系へのうちそれぞれの並進Ｔおよび／またはそれぞれの回転θとして表され得る。したがって、外部パラメータ較正は、複数のセンサ２０２のうちそれぞれを基準センサ２００に関連させる複数の外部パラメータからなるセット（Ｔ１，θ１）、（Ｔ１，θ１）、…、（Ｔｍ，θｍ）を決定することを伴い得る。代替的に、または加えて、外部パラメータ較正は、センサ２０２のうちそれぞれを、単一の基準センサ２００の座標系とではなくむしろ互いに関連させる複数の外部パラメータからなるセットを決定することを伴い得る。当業者は、複数のセンサ２０２の基準センサ２００に対する複数の空間的関係を決定することは、複数のセンサ２０２の互いに対する複数の空間的関係を決定することと同等であることを理解されよう。
【００９４】
本明細書に記載されている複数のＵＡＶは、状態推定および外部パラメータ較正を実行するために様々なアルゴリズムを実装し得る。いくつかの実施形態において、同じアルゴリズムが、状態情報および複数の外部パラメータ値を同時に推定するのに用いられる。他の複数の実施形態において、異なる複数のアルゴリズムが、状態情報およびパラメータ値を別個に評価するために用いられる。そのような複数のアルゴリズムの複数の例は、本明細書にさらに記載される。いくつかの実施形態において、最初に状態推定および／またはパラメータ較正を実行する前に（例えば、ＵＡＶが電力供給されたとき、動作を開始したとき、または飛行を開始したとき）、これらのアルゴリズムを、特定の情報を用いて初期化することが必要または有益であり得る。本明細書で「初期化情報」と呼ばれ得るこの情報は、状態推定および／または複数のパラメータ較正アルゴリズムを初期化するのに用いられる、最初の時点における（例えば、ＵＡＶが電力供給されたとき、動作を開始したとき、または飛行を開始したときの）ＵＡＶ状態および／または複数の外部パラメータに関する複数の初期値を含み得る。初期化情報の正確性は、続く状態推定および／またはパラメータ較正手順の正確性に影響し得る。ＵＡＶに関する初期化情報を決定する処理は本明細書で「初期化」と呼ばれ得る。
【００９５】
例えば、いくつかの実施形態において、初期化情報は、重力の方向と相対的なＵＡＶの向きを示す情報を含む。この情報は、複数の慣性センサなど重力による影響を受ける複数のセンサからのデータを調節するのに特に役立ち得る。いくつかの実施形態において、結果として得られる慣性センサデータがＵＡＶのみの加速度を示すよう、慣性センサにより取得された複数の加速度測定値から、重力による影響を差し引くことが有益または必要であり得る。したがって、初期化手順は、慣性センサデータの補正を可能とするよう重力の方向と相対的なＵＡＶの初期の向きを決定することを伴い得る。代替的に、または組み合わせて、初期化情報は、ＵＡＶの動作の前、またはその間の最初の時点におけるＵＡＶの位置、向き、速度、加速度、および／または複数の外部パラメータを含み得る。初期化情報は、ＵＡＶの局所座標系、全体座標系、および／または他の実存物（例えば、ＵＡＶのためのリモートコントローラ）の座標系と相対的に提供され得る。
【００９６】
図３および４は、複数の実施形態に係る、ＵＡＶの初期化を示す。図３は、水平な向きにあるＵＡＶ３００の初期化を示す。「水平な向き」とは、ＵＡＶ３００が重力ベクトルｇの方向と実質的に直交する水平軸３０２（例えば、ＵＡＶの対向する横方向側部を通る軸）を有することを意味し得る。ＵＡＶ３００は、例えば、水平面から離陸するとき、水平な向きにあり得る。図４は、傾けられた向きにあるＵＡＶ４００の初期化を示す。「傾けられた向き」とは、ＵＡＶ４００が重力ベクトルｇの方向と直交しない水平軸４０２（例えば、ＵＡＶの対向する横方向側部を通る軸）を有することを意味し得る。ＵＡＶ４００は、例えば、傾斜面から離陸するとき、または非静止状態から（例えば、空中から、またはユーザにより空中に投げられてから）発射されるとき傾けられた向きにあり得る。いくつかの実施形態において、本明細書に記載される複数の初期化方法は、ＵＡＶが最初に水平な向きにあるか、または傾けられた向きにあるかを、および／または、重力ベクトルと相対的なＵＡＶの傾き度合いを決定するのに用いられ得る。
【００９７】
いくつかの実施形態において、状態推定および／または外部パラメータ較正アルゴリズムにエラーが生じた場合、アルゴリズムを再初期化し再開する必要があり得る。エラーは、１または複数のセンサが機能不良している（例えば、十分なデータを提供し損ねている）アルゴリズム、または、結果を生成し損ねている（例えば、特定された期間内に結果へと収束し損ねている）アルゴリズムに関するセンサデータを提供することを伴い得る。再初期化情報がＵＡＶの動作の最初の時点ではなくむしろエラーが生じた時間における、またはその辺りの時点で取得されることを除いて、再初期化は、本明細書に記載されている初期化手順と実質的に同様であり得る。いくつかの実施形態において、再初期化は、エラーを検出した後に続いて実行され、エラーに続く再初期化の処理は、本明細書で「エラー回復」と呼ばれ得る。代替的に、または組み合わせて、再初期化は、所望されるように初期化に続く任意の時点で、例えば、予め定められた複数の時間間隔で実行され得る。
【００９８】
図５は、複数の実施形態に係る、ＵＡＶを動作させるための方法５００を示す。ステップ５０２において、ＵＡＶが動作を開始する（例えば、電力供給される、離陸する等）。ステップ５０４において、ＵＡＶに関する初期化情報（例えば、上記にて説明したように重力の方向と相対的な向き）を決定するために初期化が実行される。ステップ５０６において、例えば、ＵＡＶの位置、向き、速度、複数のＵＡＶセンサの相対的な位置および向き等を決定するよう、現時点に関する外部パラメータ較正および状態推定が実行される。上記にて説明したように、パラメータ較正および状態推定は、同時または別個に実行され得る。ステップ５０８において、例えば、センサの機能不良、またはパラメータ較正および／または状態推定手順における失敗などのエラーがＵＡＶの動作間に生じたかが決定される。エラーが生じた場合、方法５００はステップ５０４に戻ってエラー回復のためにＵＡＶを再初期化する。エラーが生じていない場合、ステップ５１０において、パラメータ較正および状態推定の複数の結果が、例えば、飛行制御モジュール、遠隔端末、またはコントローラ等へ、続く格納および／または使用のために出力される。例えば、飛行制御モジュールは、ＵＡＶのナビゲーション、マッピング、障害物回避、およびその他を容易にするよう、決定された複数のパラメータ値および／または状態情報を用い得る。その後、方法５００はステップ５０６に戻って、次の時点のためにパラメータ較正および状態推定手順を繰り返す。方法５００は、ＵＡＶの動作の間に更新された状態情報およびパラメータ値を提供するよう、０．１秒毎に少なくとも１度など任意の割合で繰り返され得る。
【００９９】
いくつかの実施形態において、このアプローチはＵＡＶの初期状態（例えば、位置、向き、速度、加速度等）についての仮定を何ら要さないので、本明細書に記載されているようにＵＡＶの初期化および／またはエラー回復を実行することは有利である。例として、本明細書における複数のアプローチは、ＵＡＶが最初に静止している（例えば、速度および加速度がゼロに等しい）と仮定することなくＵＡＶの初期化および／またはエラー回復を可能とし得る。この仮定は、特定の複数の状況（例えば、ＵＡＶが地上または他の平面から離陸しているとき）に関して適当であり得、そのような複数の実施形態において、重力ベクトルの方向は、慣性センサデータから直接的に取得され得る。しかし、この仮定は他の複数の状況（例えば、エラーが生じたときにＵＡＶが最初に傾斜面を滑り降りている場合、ＵＡＶがユーザにより空中へ投げられる場合、ＵＡＶが空中にある場合等）に関して適当ではないかもしれない。そのような複数の実施形態において、センサの結果に影響を与えている他の複数の加速度値があるかもしれないので、慣性センサデータのみから重力ベクトルの方向を決定するのは可能ではないかもしれない。したがって、本明細書における複数の方法は、ＵＡＶの初期状態（例えば、ＵＡＶが静止しているか動いているか）に関わらず、重力ベクトルの決定を可能とし、したがって、初期化およびエラー回復の柔軟性および正確性を向上させる。
【０１００】
本明細書に記載されている複数のＵＡＶは、本明細書に提供される初期化、状態推定、および外部パラメータ較正方法を実行するために複数のセンサからのデータを利用し得る。様々なタイプおよび組み合わせの複数のセンサが用いられ得る。いくつかの実施形態において、ＵＡＶは、少なくとも１つの慣性センサおよび少なくとも１つの画像センサを利用する。オプションで、ＵＡＶは少なくとも１つの慣性センサ、および、２またはそれより多くの、３またはそれより多くの、４またはそれより多くの、５またはそれより多くの、６またはそれより多くの、７またはそれより多くの、８またはそれより多くの、９またはそれより多くの、１０またはそれより多くの画像センサなど複数の画像センサを利用し得る。
【０１０１】
本明細書において、慣性センサとは動きセンサ（例えば、速度センサ、加速度計など加速度センサ）、方位センサ（例えば、ジャイロスコープ、傾斜計）、または、１または複数の統合された動きセンサおよび／または１または複数の統合された方位センサを有するＩＭＵを指すのに用いられ得る。慣性センサは、単一の動きの軸と相対的な感知データを提供し得る。動きの軸は、慣性センサの軸（例えば、縦軸）に対応し得る。複数の慣性センサが用いられ得、各慣性センサは、異なる動きの軸に沿った複数の測定値を提供する。例えば、３つの加速度計が、３つの異なる動きの軸に沿った加速度データを提供するのに用いられ得る。３つの動き方向は複数の直交する軸であり得る。加速度計のうち１または複数は、並進軸に沿った加速度を測定するよう構成された複数の線形加速度計であり得る。逆に、加速度計のうち１または複数は、回転軸周りの角加速度を測定するよう構成された角度加速度計であり得る。他の例として、３つのジャイロスコープが、３つの異なる回転軸周りの向きデータを提供するのに用いられ得る。３つの回転軸は、複数の直交する軸（例えば、ロール軸、ピッチ軸、ヨー軸）であり得る。代替的に、複数の慣性センサのうち少なくともいくつかまたは全てが、複数の同じ動きの軸と相対的な測定値を提供し得る。そのような冗長性は、例として、測定の正確性を向上させるよう実装され得る。オプションで、単一の慣性センサが、複数の軸と相対的な感知データを提供することが可能であり得る。例えば、複数の統合された加速度計およびジャイロスコープを含むＩＭＵが、最大６つの動きの軸に関する加速度データおよび向きデータを生成するのに用いられ得る。代替的に、単一の加速度計が、複数の軸に沿った加速度を検出するのに用いられ得、単一のジャイロスコープが、複数の軸周りの回転を検出するのに用いられ得る。
【０１０２】
画像センサは、電磁放射（例えば、可視光、赤外線、および／または紫外線）を検出し、検出された電磁放射に基づいて画像データを生成するよう構成された何らかのデバイスであり得る。画像センサにより生成された画像データは、複数の静止画（例えば、写真）、複数の動画（例えば、ビデオ）、またはこれらの適切な組み合わせであり得る１または複数の画像を含み得る。画像データは、多色（例えば、ＲＧＢ、ＣＭＹＫ、ＨＳＶ）、または単色（例えば、グレースケール、白黒、セピア）であり得る。いくつかの実施形態において、画像センサはカメラであり得る。本明細書に提供されている特定の複数の実施形態はカメラの文脈で記載されているが、本開示が何らかの適切な画像センサに適用され得ること、および、本明細書における複数のカメラに関連するいずれの記載も、他の複数のタイプの画像センサにも適用され得ることを理解されよう。カメラは、３Ｄシーンの複数の２Ｄ画像（例えば、環境、１または複数の物体等）を生成するのに用いられ得る。カメラにより生成される複数の画像は、２Ｄ像平面への３Ｄシーンの投射を表し得る。したがって、２Ｄ画像の各点は、シーンにおける３Ｄ空間座標に対応する。複数のカメラが、シーンの３Ｄ空間情報（例えば、シーン内の物体とＵＡＶとの間の距離を示す深さ情報）が再構築されることを可能とするために、３Ｄシーンの複数の２Ｄ画像を撮像するのに用いられ得る。オプションで、単一の画像センサが、例えば、複数の動き技術からの構造を用いて３Ｄ空間情報を取得するのに用いられ得る。３Ｄ空間情報は、ＵＡＶ状態（例えば、位置、向き、速度等）を決定するよう処理され得る。
【０１０３】
複数の慣性センサおよび複数の画像センサの組み合わせは、ＵＡＶの動作に関して様々な利益を提供し得る。例として、複数のＩＭＵなど複数の慣性センサからの慣性データの正確性はノイズおよびドリフトに起因して経時的に低下し得、重力に起因する加速度による影響を受け得る。この課題は、慣性データを、１または複数の画像センサからの画像データを用いて補正する、および／またはそれらと組み合わることにより緩和または克服され得る。他の例として、複数の画像センサを用いることにより、複数の画像センサのうちいくつかが妨害される、および／または機能不良に陥った場合でも、残りの複数の画像センサが依然としてデータを収集するのに利用可能であるので、ＵＡＶが動作を継続することが可能となり得る。したがって、１または複数の慣性センサからの慣性データおよび１または複数の画像センサからの画像データは、ＵＡＶの動作に関するより堅牢かつ正確な複数の感知結果を提供するために、センサ融合アルゴリズムを用いて処理され、組み合わせられ得る。
【０１０４】
図６は、複数の実施形態に係る、慣性データおよび画像データを処理するためのシステム６００を示す。いくつかの実施形態において、システム６００は、データ収集モジュール６１０、画像処理モジュール６２０、センサ融合モジュール６３０、および飛行制御モジュール６４０を含む。システム６００の様々なモジュールは、本明細書にさらに記載されているように、ハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを用いて実装され得る。例えば、各モジュールは、１または複数のプロセッサと、本明細書に記載される複数の機能を実行するよう１または複数のプロセッサにより実行可能な複数の命令を格納したメモリなど適切な複数のハードウェアコンポーネントとを含み得る。代替的に、または組み合わせて、２またはそれより多くのモジュールが、同じセットの複数のハードウェアコンポーネント、例えば、同じプロセッサを用いて実装され得る。
【０１０５】
データ収集モジュール６１０は、１または複数の慣性センサおよび１または複数の画像センサから慣性データおよび画像データをそれぞれ取得するのに用いられ得る。いくつかの実施形態において、慣性データおよび画像データは、実質的に同じ頻度で収集される。他の複数の実施形態において、慣性データおよび画像データは異なる複数の頻度で収集される（例えば、慣性データは、画像データよりも高い頻度で収集され、またはその逆も当てはまる）。例えば、慣性センサは、およそ５０Ｈｚ、１００Ｈｚ、１５０Ｈｚ、２００Ｈｚ、２５０Ｈｚ、３００Ｈｚ、３５０Ｈｚ、４００Ｈｚ、４５０Ｈｚ、５００Ｈｚよりも高い、またはそれらと等しい、もしくはさらに高い周波数で慣性データを出力し得る。画像センサは、およそ１Ｈｚ、５Ｈｚ、１０Ｈｚ、１５Ｈｚ、２０Ｈｚ、２５Ｈｚ、３０Ｈｚ、４０Ｈｚ、５０Ｈｚ、または１００Ｈｚよりも高い、またはそれらと等しい頻度で画像データを出力し得る。複数の画像センサが用いられる複数の実施形態において、データ収集モジュール６１０は、同じ複数の時点において複数の画像センサのうちそれぞれから画像データを同期的に収集し得る。
【０１０６】
画像処理モジュール６２０は、データ収集モジュール６１０から受信した画像データを処理するのに用いられ得る。いくつかの実施形態において、画像処理モジュール６２０は、１または複数の画像から１または複数の特徴点を検出および／または抽出する特徴点アルゴリズムを実装する。特徴点（本明細書で「特徴」とも呼ばれる）は、画像の残りの複数の部分から、および／または画像の他の複数の特徴点から一意に区別可能である画像の一部（例えば、エッジ、コーナー、対象の点、ブロブ、隆起等）であり得る。オプションで、特徴点は、画像化された物体の複数の変容（例えば、並進、回転、拡大縮小）、および／または画像の複数の特性の変化（例えば、輝度、露出）に対して比較的変わらないものであり得る。特徴点は、情報コンテンツの点で豊富である画像の複数の部分（例えば、大きな２Ｄテクスチャ、閾値を超えるテクスチャ）において検出され得る。特徴点は、複数の混乱の中（例えば、画像の照度および輝度が変化する場合）でも安定した画像の複数の部分において検出され得る。本明細書に記載されている特徴検出は、画像データから１または複数の特徴点を抽出し得る様々なアルゴリズムを用いて実現され得る。アルゴリズムは、エッジ検出アルゴリズム、コーナー検出アルゴリズム、ブロブ検出アルゴリズム、または隆起検出アルゴリズムであり得る。いくつかの実施形態において、コーナー検出アルゴリズムは、「Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  ａｃｃｅｌｅｒａｔｅｄ  ｓｅｇｍｅｎｔ  ｔｅｓｔ」（ＦＡＳＴ）であり得る。いくつかの実施形態において、特徴検出器は、複数の特徴点を抽出し、ＦＡＳＴを用いて複数の特徴点について複数の算出を行い得る。いくつかの実施形態において、特徴検出器は、Ｃａｎｎｙエッジ検出器、Ｓｏｂｅｌオペレータ、Ｈａｒｒｉｓ  ＆  Ｓｔｅｐｈｅｎｓ／Ｐｌｅｓｓｙ／Ｓｈｉ−Ｔｏｍａｓｉコーナー検出アルゴリズム、ＳＵＳＡＮコーナー検出器、Ｌｅｖｅｌ  ｃｕｒｖｅ  ｃｕｒｖａｔｕｒｅアプローチ、Ｌａｐｌａｃｉａｎ  ｏｆ  Ｇａｕｓｓｉａｎ、Ｄｉｆｆｅｒｅｎｃｅ  ｏｆ  Ｇａｕｓｓｉａｎｓ、Ｄｅｔｅｒｍｉｎａｎｔ  ｏｆ  Ｈｅｓｓｉａｎ、ＭＳＥＲ、ＰＣＢＲ、またはＧｒｅｙ−ｌｅｖｅｌ  ｂｌｏｂｓ、ＯＲＢ、ＦＲＥＡＫ、またはこれらの何らかの適切な組み合わせであり得る。
【０１０７】
オプションで、画像処理モジュール６２０は、異なる複数の画像に亘って同じ特徴点のマッチングを行い、したがって、複数のマッチングが行われた特徴点からなるセットを生成し得る。特徴点マッチングは、同じ画像センサにより撮像された複数の画像（例えば、連続する複数の時点など異なる複数の時点において撮像された複数の画像）間の、異なる複数の画像センサにより（例えば、同じ時点において、または異なる複数の時点において）撮像された複数の画像間の、またはこれらの組み合わせの複数の特徴点のマッチングを伴い得る。特徴点マッチングは、複数のコーナー検出アルゴリズム、複数のオプティカルフローアルゴリズム、および／または複数の特徴マッチングアルゴリズムを用いて実行され得る。例えば、オプティカルフローが、連続する複数の画像間の動きを決定し、これにより、続く画像における特徴点のロケーションを予測するのに用いられ得る。代替的に、または組み合わせて、複数の特徴点記述子（例えば、特徴点を一意に識別するのに用いられ得る複数の特性）が、他の複数の画像における同じ特徴点の位置特定を行うのに用いられ得る。本明細書における複数の実施形態での使用のために適切な例示的な複数のアルゴリズムは、本明細書により詳細に記載されている。
【０１０８】
いくつかの実施形態において、画像処理モジュール６２０は、画像処理が十分に早い速度で、かつ十分な正確性で起こることを確実にするよう、特定の性能基準を満たすよう構成されている。例えば、画像処理モジュール６２０は、およそ２０Ｈｚであるリアルタイムの処理周波数で３またはそれより多くのデータチャネルを扱うよう構成され得る。他の例として、画像処理モジュール６２０は、例えば、再投影エラーが２であるときにＲＡＮＳＡＣアルゴリズムの内座層の数が７０％よりも大きい、またはそれと等しいよう特徴トラッキングおよびマッチングを実行するよう構成され得る。
【０１０９】
センサ融合モジュール６３０は、慣性データをデータ収集モジュール６１０から、処理済み画像データ（例えば、マッチングが行われた複数の特徴点）を画像処理モジュール６２０から取得し得る。いくつかの実施形態において、センサ融合モジュール６３０は、初期化情報、状態情報、または複数の外部パラメータなどＵＡＶの動作に関連する情報を決定するために、慣性データおよび処理済み画像データを処理する１または複数のセンサ融合アルゴリズムを実装する。例えば、センサ融合アルゴリズムが、ＵＡＶの位置、姿勢、および／または速度などＵＡＶの位置および／または動き情報を算出するのに用いられ得る。本明細書における複数の実施形態での使用のために適切な例示的な複数のセンサ融合アルゴリズムが、以下により詳細に記載されている。
【０１１０】
飛行制御モジュール６４０は、ＵＡＶのための複数の制御信号を決定するために、センサ融合モジュール６３０により生成される複数のセンサ融合結果を用い得る。複数の制御信号が、１または複数の推進ユニット、１または複数のセンサ、１または複数の積載物、１または複数の通信モジュール、およびその他など１または複数のＵＡＶコンポーネントの動作を制御するのに用いられ得る。いくつかの実施形態において、複数の制御信号が、自律的または半自律的なＵＡＶの動作を有効化するよう、例えば、ナビゲーション、障害物回避、ルートプランニング、環境マッピング、およびその他のために用いられる。
【０１１１】
図７は、複数の実施形態に係る、異なる複数の時点において単一の画像センサにより撮像された複数の画像間の特徴点マッチング（「単一チャネル処理」としても知られる）を実行するためのアルゴリズム７００を示す。本明細書に記載されている他の全ての方法のように、方法７００は、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。いくつかの実施形態において、方法７００の１または複数のステップは、システム６００の画像処理モジュール６２０に関連付けられた１または複数のプロセッサにより実行される。
【０１１２】
アルゴリズム７００への入力７０２は、複数の時点において単一の画像センサにより取得される一連の画像を含み得る。ステップ７０４において、一連の画像のうち１つ（「現在の画像」）が受信される。ステップ７０６において、１または複数の特徴点からなるセットが、例えば、コーナー検出アルゴリズムまたは他の何らかの適切な特徴点検出アルゴリズムを用いて現在の画像（「一時的な点」）から算出され得る。ステップ７０６は、現在の画像のみを用いて、他の画像を用いず複数の特徴点を算出することを伴い得る。
【０１１３】
ステップ７０８において、現在の画像が一連の画像のうち第１画像（例えば、最も早い時点で撮像された画像）であるかが決定される。第１画像ではなく、より早い時点において撮像された少なくとも１つの前の画像がある場合、アルゴリズムはステップ７１０へ進む。ステップ７１０において、現在の画像は、オプティカルフローアルゴリズムを用いて１または複数の前の画像と比較される。いくつかの実施形態において、オプティカルフローアルゴリズムは、前の画像において検出された１または複数の特徴点（前の複数の点）のトラッキングを行って、前の複数の点の現在の画像における複数の特徴点とのマッチングを行う。代替的に、または組み合わせて、他の複数のタイプのトラッキングアルゴリズム、例えば、複数の特徴点記述子に基づいてマッチングを実行する複数のトラッキングアルゴリズムが、複数の特徴点のマッチングを行うのに用いられ得る。トラッキングエラーが前の点のトラッキングの間に生じた場合、例えば、トラッキングが不正確である、または実行され得ない場合、その点は、ステップ７１２における分析から破棄され得る。残りの時間的にマッチングが行われた複数の特徴点からなるセットは、分析に関して「現在の点」であると見なされる。
【０１１４】
ステップ７１４において、一時的な複数の点が現在の複数の点からなるセットに追加され、アルゴリズムの出力７１８である特徴点の最終的なセットを生成するために、結果として得られる複数の特徴点からなるセットが（例えば、複数の外部パラメータを用いて）修正される。代替的に、ステップ７０８において現在の画像が第１画像ではないと決定された場合、ステップ７１０および７１２は省略され得、特徴点の最終的なセットはステップ７０６において決定された一時的な複数の点からのみ取得される。ステップ７２０において、現在の画像が前の画像にセットされ、現在の複数の点が前の複数の点としてセットされる。その後アルゴリズム７００は、次の反復のためにステップ７０４へ戻り、一連の画像のうち次の画像が処理のために受信される。
【０１１５】
図８は、複数の実施形態に係る、異なる複数の画像センサにより撮像された複数の画像間の特徴点マッチング（「マルチチャネル処理」としても知られる）を実行するためのアルゴリズム８００を示す。いくつかの実施形態において、方法８００の１または複数のステップは、システム６００の画像処理モジュール６２０に関連付けられた１または複数のプロセッサにより実行される。
【０１１６】
アルゴリズム８００への入力８０２は、異なる複数の画像センサにより取得された複数の画像を含み得る。いくつかの実施形態において、各画像センサは、複数の時点に亘って取得される一連の画像を提供する。画像データ収集は、複数の画像センサが実質的に同じ複数の時点で複数の画像を取得しているように同期的であり得る。代替的に画像データ収集は、異なる複数の画像センサが異なる複数の時点において複数の画像を取得するように非同期的であり得る。非同期的画像データ収集の追加の複数の例は、本明細書にさらに記載されている。
【０１１７】
アルゴリズム８００は、本明細書に記載されている単一チャネル処理の複数の技術（例えば、アルゴリズム７００）を用いて各画像センサからの各一連の画像からの時間的にマッチングが行われた複数の特徴点を取得し得る。例えば、複数の並列処理８０４ａ...８０４ｎが、対応する数の画像センサの複数の画像からの時間的にマッチングが行われた複数の特徴点を取得するのに用いられ得る。本明細書に記載されているアルゴリズム７００の複数のステップと同様に、単一チャネル処理は、単一の画像センサにより生成された画像シーケンスから現在の画像を受信すること（ステップ８０６）と、現在の画像における複数の特徴点をトラッキングし、１または複数の前の画像における複数の特徴点とのマッチングを行うオプティカルフローアルゴリズムを用いること（ステップ８０８）と、トラッキングされ得なかった複数の特徴点を破棄することによりマッチングが行われた複数の特徴点からなるセットを取得すること（ステップ８１０）と、画像センサに関する複数の外部較正パラメータを用いて複数の特徴点を修正すること（ステップ８１２）とを伴い得る。結果として得られる複数の特徴点からなるセットはトラッキングされ、本明細書に記載されているように、続く複数の画像における複数の特徴点とマッチングが行われ得る。単一チャネルマッチング手順は、画像シーケンスにおける複数の画像のうち全てが処理されるまで繰り返され得る。
【０１１８】
ステップ８１４において、一旦、時間的にマッチングが行われた複数の特徴点からなるセットが、各画像センサからの各画像シーケンスに関して取得されると、異なる複数の画像シーケンスからの複数の特徴点は、空間マッチングアルゴリズムを用いて互いに空間的にマッチングが行われ得る。異なる複数の画像センサは、異なる複数の視野で複数の画像を撮像するよう構成され得るので、シーンにおける同じ特徴点は、異なる複数のセンサからの複数の画像において異なる複数の空間的なロケーションに現われ得る。複数の画像センサのうち少なくともいくつかは、複数の特徴点のうち少なくともいくつかが１より多くの画像センサからの複数の画像シーケンスに存在することを確実にするために、重複する複数の視野を有し得る。いくつかの実施形態において、空間マッチングアルゴリズムは、異なる複数の画像シーケンスに亘る複数の特徴点を識別しマッチングするために、（例えば、同じ時点または異なる複数の時点において）異なる複数の画像センサにより取得された複数の画像を分析する。アルゴリズム８００の最終的な出力８１６は、各画像センサにより生成された複数のそれぞれの画像シーケンス内の時間的にマッチングが行われた特徴点および異なる複数の画像シーケンスに亘る空間的にマッチングが行われた複数の特徴点を含む複数の特徴点からなるセットであり得る。
【０１１９】
複数の画像センサが用いられる複数の実施形態において、複数の画像センサのうちそれぞれからの画像データの収集および／または処理は、同期的または非同期的に起こり得る。例えば、同期的画像データ収集スキームは、実質的に同じ時点において各画像センサが画像データを取得することを伴い得、画像データは、同時にプロセッサへ送信され得る。対照的に、非同期的画像データ収集スキームは、異なる複数の時点において異なる複数の画像センサが画像データを取得することを伴い得、画像データは、異なる複数の時間において（例えば、シーケンシャルに）プロセッサへ送信され得る。非同期的スキームにおいて、複数の画像センサのうちいくつかは、同じ複数の時点において複数の画像を取得し得、他の複数の画像センサは、異なる複数の時点において複数の画像を取得し得る。
【０１２０】
図２０は、複数の実施形態に係る同期的画像データ収集スキーム２０００を示す。スキーム２０００は、２、３、４、５、６、７、８、９、１０、１５、２０、３０、４０、５０、またはそれらより多くの画像センサなど任意の数の画像センサからのデータを取得し処理するのに用いられ得る。図２０の描写において、画像データはｎ台の画像センサから同期的に受信される。例えば、第１時点ｋにおいて、複数の画像センサのうちそれぞれは、それぞれの画像データを生成する。複数のセンサのうちそれぞれからの画像データは、（例えば、画像処理モジュールの）１または複数のプロセッサへ同時に送信される。画像データは、データが生成された時点を示すタイムスタンプと共に送信され得る。同様に、第２時点ｋ＋１において、画像データが、各画像センサにより取得され、プロセッサへ同時に送信される。この処理は、ＵＡＶの動作の間、繰り返され得る。同期的画像データ収集は、異なる複数のセンサからの複数の画像に亘る特徴点マッチングの容易性と正確性を向上させるという点で有利である。例として、同じ時点において撮像された複数の画像は、露出時間、輝度、または特徴点マッチングの容易性に影響を与え得る他の複数の画像特性においてより少ないばらつきを呈し得る。
【０１２１】
図２１は、複数の実施形態に係る非同期的画像データ収集スキーム２１００を示す。スキーム２１００は、２、３、４、５、６、７、８、９、１０、１５、２０、３０、４０、５０、またはそれらより多くの画像センサなど任意の数の画像センサからのデータを取得し処理するのに用いられ得る。図２１の描写において、画像データはｎ台の画像センサから非同期的に受信される。例えば、第１時点ｋにおいて、第１画像センサは、画像データを取得し、（例えば、画像処理モジュールの）１または複数のプロセッサへ送信する。第２時点ｋ＋１において、第２画像センサは、画像データを取得し、１または複数のプロセッサへ送信する。第３時点ｋ＋２において、ｎ番目の画像センサは画像データを取得し、１または複数のプロセッサへ送信する。各画像データは、例えば、下流の画像処理を容易にするために、画像データが取得された時点を示すタイムスタンプと共に送信され得る。異なる複数の時点間の時間間隔は、一定または可変であり得る。いくつかの実施形態において、異なる複数の時点間の時間間隔は、およそ０．０２秒、またはおよそ０．０５秒からおよそ０．２秒の範囲内である。この処理は、画像データのうちそれぞれが複数の画像センサのうちそれぞれから受信されるまで、ＵＡＶの動作の間、繰り返され得る。画像データが取得され受信される順番は、所望されるように変更され得る。追加的に、図２１は画像データが各時点において単一の画像センサから取得されることを示しており、他方、画像データが複数の時点のうちいくつかまたは全てにおいて複数のセンサから受信され得ることを認識されよう。いくつかの実施形態において、非同期的画像データ収集は、本明細書にさらに記載されているように、切り替え機構を介して、複数の画像センサからなる異なるサブセットを１または複数のプロセッサへ選択的に結合することにより実現される。非同期的画像データ収集は、実装の相対的な容易性、より広い範囲の複数のハードウェアプラットフォームとの互換性、およびコンピューティングロードの低減など様々な利点を提供し得る。
【０１２２】
本明細書に記載されているように、本開示の複数のシステムおよび複数のデバイスは、状態情報、初期化情報、および／または複数の外部パラメータを取得するよう画像データおよび慣性データを処理するセンサ融合アルゴリズムを実装するよう構成されたセンサ融合モジュール（例えば、システム６００のセンサ融合モジュール６３０）を含み得る。いくつかの実施形態において、センサ融合アルゴリズムは、リアルタイムの更新を提供するようＵＡＶの動作全体で（例えば、継続的に、または予め定められた複数の時間間隔で）実行される。カルマンフィルタベースのアルゴリズムまたは最適化アルゴリズムなど様々なタイプセンサ融合アルゴリズムが、本明細書に提示される複数の実施形態での使用のために適切である。いくつかの実施形態において、本明細書に提示される複数の最適化方法が、あるタイプのバンドルベースのアルゴリズムと見なされ得る。カルマンフィルタベースのアルゴリズムも、特別な場合のバンドルベースのアルゴリズムと見なされ得る。いくつかの実施形態において、カルマンフィルタベースのアルゴリズムと本明細書に提示されているバンドルベースのアルゴリズムとの間の主な区別となる特徴は、最適化されることになる状態の数である。カルマンフィルタベースのアルゴリズムは、１または２つの状態を利用し得、他方、本明細書におけるバンドルベースのアルゴリズムは、３つより多くの状態（例えば、少なくとも５つの状態、少なくとも１０の状態、少なくとも２０の状態、少なくとも３０の状態、少なくとも４０の状態、または少なくとも５０の状態）を利用し得る。いくつかの実施形態において、本明細書に提示されているバンドルベースのアルゴリズムは、最適化手順がより多くの情報を利用するので、より高い正確性を提供し得る。いくつかの実施形態において、カルマンフィルタベースのアルゴリズムは、より速いスピードおよびより高い安定性を提供し得る。
【０１２３】
いくつかの実施形態において、センサ融合アルゴリズムは最適化アルゴリズムを伴う。最適化アルゴリズムは、目的関数の値を最小化または最大化する複数の解決パラメータからなるセットを決定するのに用いられ得る。いくつかの実施形態において、最適化アルゴリズムは、アルゴリズムが解に収束するまで、またはアルゴリズムが停止する（例えば、時間閾値を超えて）まで反復して複数の推定値を生成する反復最適化アルゴリズムである。いくつかの実施形態において、最適化アルゴリズムは線形であり、他方、他の複数の実施形態において、最適化アルゴリズムは非線形である。いくつかの実施形態において、最適化アルゴリズムは、非線形関数を反復して線形化し解くことを伴う。本明細書における複数の実施形態は、異なる複数のタイプのＵＡＶ情報を推定するために、単一の最適化アルゴリズムまたは異なる複数のタイプの最適化アルゴリズムを利用し得る。例えば、本明細書に記載されている複数の方法は、特定の複数の値を推定するのに線形最適化アルゴリズムを、および他の複数の値を推定するのに非線形最適化アルゴリズムを用いることを伴い得る。
【０１２４】
いくつかの実施形態において、本開示は、ＵＡＶの動作の間の１または複数の時点においてＵＡＶ状態情報（例えば、位置、向き、速度）および／または複数の外部パラメータ（例えば、慣性センサおよび／または複数の画像センサ間の複数の空間的関係）を推定するよう少なくとも１つの慣性センサからの慣性データと少なくとも２つの画像センサからの画像データとを用いるための反復最適化アルゴリズムを提供する。オプションで、反復最適化アルゴリズムは、状態情報および／または複数の外部パラメータに関する複数の初期値に基づいて状態情報および／または複数の外部パラメータに関する複数の推定値も決定し得る。反復最適化アルゴリズムは、例えば、慣性データ、画像データおよび／または複数の初期値に基づいて状態情報および／または複数の外部パラメータの最大事後確率（ＭＡＰ）の推定値を算出することを伴い得る。いくつかの実施形態において、反復最適化アルゴリズムのための目的関数は、状態情報、初期化情報および／または複数の外部パラメータの複数の実際値を、慣性データ、画像データおよび／または複数の初期値に基づいて計算された状態情報、初期化情報および／または複数の外部パラメータの複数の推定値に関連付ける。目的関数は、線形関数または非線形関数であり得る。複数の反復的な解法技術が、状態情報、初期化情報および／または複数の外部パラメータの複数の実際値の解を取得するために目的関数を最小化または最大化するのに用いられ得る。例えば、本明細書にさらに説明されるように非線形目的関数は反復して線形化され、解かれ得る。
【０１２５】
図９は、複数の実施形態に係る、複数のセンサを用いてＵＡＶ（または何らかの他の可動物体）に関する初期化情報を決定するための方法９００を示す。方法９００の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法９００の複数のステップのうちいくつかまたは全ては、ＵＡＶにより搭載される１または複数のプロセッサを用いて実行され得る。方法９００は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
【０１２６】
本明細書に説明されているように、方法９００を用いて決定されることになる初期化情報は、ＵＡＶの（例えば、重力方向に対する）向き、ＵＡＶの位置、またはＵＡＶの速度のうち１または複数を含み得る。例えば、初期化情報は、ＵＡＶの（例えば、重力方向に対する）向き、ＵＡＶの位置、ＵＡＶの速度を含み得る。いくつかの実施形態において、初期化情報は、ＵＡＶが動作を開始するおよその時点に関して決定される。例えば、時点は、ＵＡＶが動作を開始してからおよそ５０ミリ秒、１００ミリ秒、２００ミリ秒、３００ミリ秒、４００ミリ秒、５００ミリ秒、６００ミリ秒、７００ミリ秒、８００ミリ秒、９００ミリ秒、１秒、２秒、３秒、４秒、５秒、６秒、７秒、８秒、９秒、１０秒、３０秒、６０秒以下の時間だけ後でもよい。他の例として、時点は、ＵＡＶが動作を開始するおよそ５０ミリ秒、１００ミリ秒、２００ミリ秒、３００ミリ秒、４００ミリ秒、５００ミリ秒、６００ミリ秒、７００ミリ秒、８００ミリ秒、９００ミリ秒、１秒、２秒、３秒、４秒、５秒、６秒、７秒、８秒、９秒、１０秒、３０秒、６０秒以下の時間だけ前でもよい。
【０１２７】
ステップ９１０において、ＵＡＶが動作を開始したことが検出される。ステップ９１０は、ＵＡＶが電力供給されたこと、ＵＡＶが面から離陸したこと、またはＵＡＶが飛行を開始したことのうち１または複数を検出することを伴い得る。ＵＡＶは、傾斜面または傾斜していない（非傾斜）面から離陸し得る。ＵＡＶは、面（例えば、地上）から、自由落下状態（例えば、空中）から、発射装置から発射された状態から、またはユーザにより空中へ投げられた状態から飛行を開始し得る。オプションで、ステップ９１０は、ＵＡＶの複数の推進ユニットが作動させられたこと、複数の推進ユニットの出力が閾値よりも大きい、またはそれと等しいこと、ＵＡＶの高度が閾値よりも高い、またはそれと等しいこと、ＵＡＶの速度が閾値よりも速い、またはそれと等しいこと、若しくはＵＡＶの加速度が閾値よりも速い、またはそれと等しいことのうち１または複数を検出することを伴い得る。
【０１２８】
ステップ９２０において、慣性データが、ＵＡＶにより搭載される少なくとも１つの慣性センサから受信される。慣性データは、ＵＡＶの３次元加速度および３次元角速度を示す１または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、ＵＡＶが動作を開始したときから、および／またはＵＡＶが飛行しているときから開始する時間間隔に亘って少なくとも１つの慣性センサにより取得される１または複数の測定値を含む。
【０１２９】
ステップ９３０において、画像データが、ＵＡＶにより搭載される少なくとも２つの画像センサから受信される。画像データは、ＵＡＶの周囲の環境の１または複数の画像を含み得る。いくつかの実施形態において、画像データは、ＵＡＶが動作を開始したときから、および／またはＵＡＶが飛行しているときから開始する時間間隔に亘って少なくとも２つの画像センサのうちそれぞれから取得される１または複数の画像を含み得る。
【０１３０】
ステップ９４０において、ＵＡＶに関する初期化情報が慣性データおよび画像データに基づいて決定される。初期化情報は、ＵＡＶが動作を開始したときの、ＵＡＶの位置、速度および／または重力方向に対する向きを含み得る。いくつかの実施形態において、ステップ９４０は、本明細書に記載されている複数の画像処理アルゴリズムに従って画像データを処理することを含む。例えば、画像データは、可動物体が動作を開始したときから開始する時間間隔に亘って少なくとも２つの画像センサのうちそれぞれにより取得された１または複数の画像を含み得、１または複数の画像は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および／または記述子アルゴリズムに基づく特徴マッチングを用いて処理され得る。本明細書に説明されているように、異なる複数の画像センサから取得される複数の画像は、例えば、特徴点マッチングを実行するために、互いに比較され得る。例えば、第１画像センサにより取得される１または複数の画像は、第２画像センサにより取得される１または複数の画像と比較され得る。オプションで、初期化情報は、他の複数のタイプのセンサからのセンサデータなど何らかの他のデータを要することなく、慣性データおよび画像データのみを用いて決定され得る。いくつかの実施形態において、初期化情報は、初期化情報に関する何らかの複数の初期推定値または初期値を要することなく慣性データおよび画像データから直接的に決定される。初期化情報は、ＵＡＶの動作の前（例えば、ＵＡＶが電力供給される、および／または飛行する前）に取得された何らかのデータに頼ることなく、ＵＡＶが動作中である間（例えば、ＵＡＶが電力供給された後、ＵＡＶの飛行中）に取得されたデータのみを用いて決定され得る。例として、初期化情報は、ＵＡＶが動作を開始する前に実行された事前の初期化を要することなくＵＡＶの動作の間に決定され得る。
【０１３１】
いくつかの実施形態において、ステップ９４０は、慣性データおよび画像データを用いて初期化情報の複数の推定値を生成することを伴う。例えば、ステップ９４０は、慣性データを用いて初期化情報の第１推定値を生成し、画像データを用いて初期化情報の第２推定値を生成することにより実行され得る。第１推定値および第２推定値は、ＵＡＶに関する初期化情報を取得するよう組み合わせられ得る。
【０１３２】
いくつかの実施形態において、初期化情報は、線形最適化アルゴリズム、非線形最適化アルゴリズム、または反復非線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。本明細書における複数の実施形態での使用のために適切な例示的なアルゴリズムは、以下に提示される。
【０１３３】
ＵＡＶは、ｍ台のカメラ（または他の画像センサタイプ）、および１台のＩＭＵ（または他の慣性センサタイプ）を含む感知システムを有し得る。ＩＭＵは、３つの軸周りの角速度および３つの軸に沿った直線加速度値を出力するよう構成され得る。ＩＭＵの出力頻度は、複数のカメラの出力頻度より高くてもよい。例えば、複数のカメラに関するサンプルレートは、ｆｃａｍＨｚおよびＮ＝ｆｃａｍ×Ｔであると仮定され得る。システムは、動作を開始した後（例えば、電力供給された後）時間間隔Ｔをおいて（Ｎ＋１）×ｍの画像を受信し得る。時間間隔Ｔは、複数の時点ｔ０、ｔ１、ｔ２、ｔ３、ｔ４、ｔ５、...ｔＮおよび複数のＵＡＶ状態
【数１】
2019023865.tif 000003
に対応し得る。
【数２】
2019023865.tif 000004
は、ＵＡＶの（動作が開始された時点であるｔ０における位置と相対的な）現在位置を表し、
【数３】
2019023865.tif 000005
は、ＵＡＶの（ＵＡＶの本体座標系と相対的な）現在の速度を表し、ｇｋは、（ＵＡＶの本体座標系と相対的な）重力に起因する加速度を表す。初期状況は
【数４】
2019023865.tif 000006
であり得る。
【０１３４】
受信した（Ｎ＋１）×ｍの画像において観察される特徴点の数はＭ＋１であり得る。ｉ番目の特徴点が時間ｔｋ（０≦ｋ≦Ｎ）においてｊ番目のカメラにより最初に観察され、λｉは、時間ｔｋにおけるｊ番目のカメラの平面と垂直な方向への特徴点の深さであると仮定され得る。全てのＵＡＶ状態
【数５】
2019023865.tif 000007
および特徴深さλ０、λ１、λ２、λ３、...λＭは、全体的な状態Ｘを形成し得る。
【０１３５】
複数のＩＭＵデータが、時間間隔ｔにそれぞえが対応する時間（ｔｋ，ｔｋ＋１）において受信され得る。以下の複数の数式が定義され得る。
【数６】
2019023865.tif 000008
ここで、
【数７】
2019023865.tif 000009
は、時間ｔから時間ｋへの回転を表し、ＩＭＵからの角速度を積分することにより取得され、
【数８】
2019023865.tif 000010
は、時間ｔにおけるＵＡＶ本体座標系と相対的な加速度を表し、αおよびβは、生ＩＭＵデータの積分を表す。ＩＭＵデータからの推定値
【数９】
2019023865.tif 000011
は、以下のように決定され得、ここで、共分散行列
【数１０】
2019023865.tif 000012
は、生ＩＭＵデータのノイズにより引き起こされるエラーを表している。
【数１１】
2019023865.tif 000013
ここで、
【数１２】
2019023865.tif 000014
は上記の数式の左側の行列であり、Ｘは、全体的な状態であり、
【数１３】
2019023865.tif 000015
は相加性雑音である。
【数１４】
2019023865.tif 000016
および
【数１５】
2019023865.tif 000017
は、当業者に公知である複数の積分前の技術を用いて算出され得る。
【０１３６】
複数のカメラに関して、特徴点ｌが時間ｔｉにおいてカメラｃｎにより最初に観察され、時間ｔｊにおいてカメラｃｍにより観察されると仮定した場合、以下の推定値
【数１６】
2019023865.tif 000018
が取得され得る。
【数１７】
2019023865.tif 000019
Ｘは全体的な状態であり、
【数１８】
2019023865.tif 000020
および
【数１９】
2019023865.tif 000021
は時間ｔｊにおいてｉ番目のカメラにより取得される画像における特徴点ｌに関する複数の画像座標であり、
【数２０】
2019023865.tif 000022
は、ＩＭＵに関連するｉ番目のカメラの回転を表し、
【数２１】
2019023865.tif 000023
は、ＩＭＵに関連するｉ番目のカメラの並進を表す。
【数２２】
2019023865.tif 000024
は、ＩＭＵデータに関する
【数２３】
2019023865.tif 000025
と同様に上記の数式から導き出され得る。
【数２４】
2019023865.tif 000026
【０１３７】
目的は、（１）ＩＭＵからの推定値および（２）複数の画像シーケンス間の幾何学的制約を用いてＵＡＶ状態の推定値を最適化することであり得る。目的方程式は、ＩＭＵからのエラーおよび複数の画像シーケンス間の幾何学的制約を最小化するものである。
【数２５】
2019023865.tif 000027
【０１３８】
さらに以下のことが定義され得る。
【数２６】
2019023865.tif 000028
ここで、
【数２７】
2019023865.tif 000029
はカメラ観察データの不確実性を測定する対角線行列である。
【０１３９】
いくつかの実施形態において、解法手順は、ΛＤにＩＭＵからの推定値を格納すること、ΛＣに複数の画像シーケンス間の幾何学的制約を格納すること、および以下の線形数式を解くことを含む。（ΛＤ＋ΛＣ）Ｘ＝（ｂＤ＋ｂＣ）
【０１４０】
方法９００は、ＵＡＶの動作に関して様々な利点を提供し得る。例えば、方法９００は、傾斜面からの離陸、空中からまたは自由落下状態からの離陸、手動で発射されることによる、またはユーザにより投げられることによる離陸など様々な離陸タイプに関する重力方向に対するＵＡＶの向きを決定するのに用いられ得る。したがって、方法９００はさらに、この向き情報を用いて慣性センサから取得される続く慣性データを補正するステップを備え得る。さらに、方法９００は、初期ＵＡＶ状態（例えば、位置、向き、速度等）が完全に未知である複数の状況においてさえ、ＵＡＶが動作を開始した後に自動的な初期化を提供するのに用いられ得る。
【０１４１】
ＵＡＶの自動的な初期化を可能とすることに加えて、本開示の複数の方法は、エラーがＵＡＶシステムに生じた後に再初期化またはエラー回復を実行するのにも用いられ得る。再初期化が、ＵＡＶが動作を開始した後ではなくむしろエラーが検出された後に実行されることを除いて、再初期化のための複数の方法は、本明細書に記載されている初期化のための複数の方法と実質的に同様である。
【０１４２】
図１０は、複数の実施形態に係る、複数のセンサを用いたＵＡＶ（または何らかの他の可動物体）に関するエラー回復のための方法１０００を示す。方法１０００の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法１０００の複数のステップのうちいくつかまたは全ては、ＵＡＶにより搭載される１または複数のプロセッサを用いて実行され得る。方法１０００は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
【０１４３】
方法１０００は、エラーが生じた後に通常の動作が再開されるようＵＡＶを再初期化するのに用いられる再初期化情報を決定するために用いられ得る。本明細書に記載されている初期化情報と同様に、再初期化情報は、ＵＡＶの（例えば、重力方向に対する）向き、ＵＡＶの位置、またはＵＡＶの速度のうち１または複数を含み得る。例えば、再初期化情報は、ＵＡＶの（例えば、重力方向に対する）向き、ＵＡＶの位置、ＵＡＶの速度を含み得る。いくつかの実施形態において、再初期化情報は、エラーが生じたおよその時点に関して決定される。例えば、時点は、エラーが生じたおよそ５０ミリ秒、１００ミリ秒、２００ミリ秒、３００ミリ秒、４００ミリ秒、５００ミリ秒、６００ミリ秒、７００ミリ秒、８００ミリ秒、９００ミリ秒、１秒、２秒、３秒、４秒、５秒、６秒、７秒、８秒、９秒、１０秒、３０秒、６０秒以下の時間だけ後でもよい。他の例として、時点は、エラーが生じるおよそ５０ミリ秒、１００ミリ秒、２００ミリ秒、３００ミリ秒、４００ミリ秒、５００ミリ秒、６００ミリ秒、７００ミリ秒、８００ミリ秒、９００ミリ秒、１秒、２秒、３秒、４秒、５秒、６秒、７秒、８秒、９秒、１０秒、３０秒、６０秒以下の時間だけ前でもよい。
【０１４４】
ステップ１０１０において、ＵＡＶの動作の間にエラーが生じたことが検出される。ＵＡＶの動作は、ＵＡＶが電力供給されたこと、ＵＡＶが面から離陸したこと、ＵＡＶが飛行を開始したことを伴い得る。エラーは、少なくとも１つの慣性センサまたは少なくとも２つの画像センサのうち１または複数における機能不良など１または複数のセンサにおける機能不良を伴い得る。エラーは、データ収集モジュール、画像処理モジュール、センサ融合モジュール、または飛行制御モジュールなどＵＡＶコンポーネントにおける機能不良を伴い得る。例えば、ＵＡＶは、反復最適化アルゴリズムを用いるセンサ融合モジュールを含み得、機能不良は、反復最適化推定アルゴリズムが解へ収束し損ねることを伴い得る。オプションで、ＵＡＶは、本明細書にさらに記載されているように状態推定モジュールを含み得、状態推定モジュールは、反復状態推定アルゴリズムを用い得る。機能不良は、反復状態推定アルゴリズムが解へ収束し損ねることを伴い得る。
【０１４５】
ステップ１０２０において、慣性データが、ＵＡＶにより搭載される少なくとも１つの慣性センサから受信される。慣性データは、ＵＡＶの３次元加速度および３次元角速度を示す１または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、エラーが生じたときから開始する時間間隔に亘って少なくとも１つの慣性センサにより取得される１または複数の測定値を含む。
【０１４６】
ステップ１０３０において、画像データが、ＵＡＶにより搭載される少なくとも２つの画像センサから受信される。画像データは、ＵＡＶの周囲の環境の１または複数の画像を含み得る。いくつかの実施形態において、画像データは、エラーが生じたときから開始する時間間隔に亘って少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含み得る。
【０１４７】
ステップ１０４０において、ＵＡＶに関する再初期化情報が慣性データおよび画像データに基づいて決定される。再初期化情報は、エラーが生じたときのＵＡＶの位置、速度、および／または重力方向に対する向きを含み得る。いくつかの実施形態において、ステップ１０４０は、本明細書に記載されている複数の画像処理アルゴリズムに従って画像データを処理することを含む。例えば、画像データは、エラーが生じたときから開始する時間間隔に亘って少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含み得、１または複数の画像は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および／または特徴マッチングアルゴリズムを用いて処理され得る。本明細書に説明されているように、異なる複数の画像センサから取得される複数の画像は、例えば、特徴点マッチングを実行するために、互いに比較され得る。例えば、第１画像センサにより取得される１または複数の画像は、第２画像センサにより取得される１または複数の画像と比較され得る。オプションで、再初期化情報は、他の複数のタイプのセンサからのセンサデータなど何らかの他のデータを要することなく、慣性データおよび画像データのみを用いて決定され得る。いくつかの実施形態において、再初期化情報は、再初期化情報に関する何らかの複数の初期推定値または初期値を要することなく慣性データおよび画像データから直接的に決定される。
【０１４８】
いくつかの実施形態において、ステップ１０４０は、慣性データおよび画像データを用いて再初期化情報の複数の推定値を生成することを伴う。例えば、ステップ１０４０は、慣性データを用いて再初期化情報の第１推定値を生成し、画像データを用いて再初期化情報の第２推定値を生成することにより実行され得る。第１推定値および第２推定値は、ＵＡＶに関する再初期化情報を取得するよう組み合わせられ得る。
【０１４９】
いくつかの実施形態において、再初期化情報は、線形最適化アルゴリズム、非線形最適化アルゴリズム、反復最適化アルゴリズム、反復線形最適化アルゴリズム、または反復非線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。再初期化情報を評価するために用いられる最適化アルゴリズムは、関連する複数の時点がＵＡＶが動作を開始した後の時間間隔ではなくむしろ、エラーの発生に続く時間間隔に含まれることを除いて、初期化情報を評価するための本明細書に提示されているアルゴリズムと実質的に同様であり得る。
【０１５０】
方法１０００は、ＵＡＶの動作に関して様々な利点を提供し得る。例えば、方法１０００は、ＵＡＶが飛行中に空中にあるときなどエラーが生じ得る様々な状況において重力方向に対するＵＡＶの向きを決定するのに用いられ得る。したがって、方法１０００は、この向き情報を用いて慣性センサから取得される続く慣性データを補正することを伴い得る。さらに、方法１０００は、エラーが生じた後に初期ＵＡＶ状態（例えば、位置、向き、速度等）が完全に未知である複数の状況においてさえ、ＵＡＶが動作を開始した後に自動的な再初期化を提供するのに用いられ得る。例えば、方法１０００は、状態推定モジュールにより実装される反復状態推定アルゴリズムを再初期化するのに、決定された再初期化情報を用いることを伴い得る。有利には、本明細書に記載されている複数の再初期化技術は、ＵＡＶの動作の間にリアルタイムで複数のエラーを検出し、それらに対応するのに用いられ得、したがって、ＵＡＶの動作の信頼性を向上させる。
【０１５１】
図１１は、複数の実施形態に係る、ＵＡＶ（または、何らかの他の可動物体）の動作の間に複数のセンサを用いてＵＡＶの１または複数の外部パラメータを較正するための方法１１００を示す。方法１１００の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法１１００の複数のステップのうちいくつかまたは全ては、ＵＡＶにより搭載される１または複数のプロセッサを用いて実行され得る。方法１１００は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
【０１５２】
方法１１００は、本明細書で「オンライン」較正と呼ばれ得る、動作の間（例えば、ＵＡＶが電力供給されたとき、飛行しているとき等）ＵＡＶに関する複数の外部パラメータを決定するのに用いられ得る。いくつかの実施形態において、オンライン較正は、複数の外部パラメータのリアルタイム更新を可能とするようＵＡＶの動作の間、継続的に、または予め定められた複数の時間間隔をおいて実行される。例えば、方法１１００は、ＵＡＶの動作の間、０．１秒毎に１度実行され得る。
【０１５３】
ステップ１１１０において、１または複数の外部パラメータに関する複数の初期値が受信される。いくつかの実施形態において、複数の外部パラメータは、ＵＡＶにより搭載される少なくとも２つの画像センサ間の複数の空間的関係を含む。例えば、複数の空間的関係は、複数の画像センサの相対的な複数の位置および相対的な複数の向きを含み得る。少なくとも２つの画像センサの相対的な複数の位置および相対的な複数の向きは、互いに相対的に、および／または、ＵＡＶにより搭載される少なくとも１つの慣性センサの位置および向きに関連して決定され得る。
【０１５４】
複数の初期値を取得するのに様々な方法が用いられ得る。いくつかの実施形態において、複数の初期値は、ＵＡＶに関連付けられた（例えば、ＵＡＶ上で搭載される）メモリデバイスから受信され得る。複数の初期値は、ＵＡＶの動作の前に決定され得る。例として、複数の初期値は、ＵＡＶの動作の前に、本明細書に記載されている複数の反復最適化アルゴリズムを用いて決定され得る。他の例として、複数の初期値は、動作の前にユーザにより測定され得る。オプションで、複数の初期値は、ＵＡＶが製造されるときに決定される複数の工場較正値であり得る。いくつかの実施形態において、複数の初期値は、ＵＡＶの構成についての知識に基づいて決定され得る。例えば、複数の画像センサおよび／または複数の慣性センサが、特定の固定された複数のロケーション（例えば、複数のセンサの搭載のために利用可能である選択されたロケーションセット）においてＵＡＶに結合され得、複数の初期値は、複数の固定されたロケーションについての情報に基づいて決定され得る。
【０１５５】
いくつかの実施形態において、複数の初期値は、複数の外部パラメータの複数の実際値の大まかな近似値を提供するよう意図されており、それ程正確であることは意図されていない。他の複数の較正方法とは対照的に、本明細書に提供されている複数の方法は、オンライン較正を実行するために、複数の外部パラメータに関する正確な複数の初期値を要さない。例えば、複数の外部パラメータ（例えば、複数の相対的な位置）に関する複数の初期値は、およそ０．１ｃｍ、０．２５ｃｍ、０．５ｃｍ、０．７５ｃｍ、１ｃｍ、１．２５ｃｍ、１．５ｃｍ、１．７５ｃｍ、２ｃｍ、２．２５ｃｍ、２．５ｃｍ、２．７５ｃｍ、３ｃｍ、または５ｃｍ以下だけ複数の外部パラメータの複数の実際値と離れていてもよい。代替的に、複数の外部パラメータ（例えば、複数の相対的な位置）に関する複数の初期値は、少なくともおよそ０．１ｃｍ、０．２５ｃｍ、０．５ｃｍ、０．７５ｃｍ、１ｃｍ、１．２５ｃｍ、１．５ｃｍ、１．７５ｃｍ、２ｃｍ、２．２５ｃｍ、２．５ｃｍ、２．７５ｃｍ、３ｃｍ、または５ｃｍだけ複数の外部パラメータの複数の実際値と離れていてもよい。他の例として、複数の外部パラメータ（例えば、複数の相対的な向き）に関する複数の初期値は、およそ０．１度、０．２５度、０．５度、０．７５度、１度、１．２５度、１．５度、１．７５度、２度、２．２５度、２．５度、２．７５度、３度、または５度以下だけ、複数の外部パラメータの複数の実際値と離れていてもよい。代替的に、複数の外部パラメータ（例えば、相対的な複数の位置）に関する複数の初期値は、少なくともおよそ０．１度、０．２５度、０．５度、０．７５度、１度、１．２５度、１．５度、１．７５度、２度、２．２５度、２．５度、２．７５度、３度、または５度だけ、複数の外部パラメータの複数の実際値と離れていてもよい。
【０１５６】
ステップ１１２０において、慣性データが、ＵＡＶの動作の間、ＵＡＶにより搭載される少なくとも１つの慣性センサから受信される。慣性データは、ＵＡＶの３次元加速度および３次元角速度を示す１または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、少なくとも２、３、４、５、６、７、８、９、１０、２０、３０、４０、または５０の時点に亘って少なくとも１つの慣性センサにより取得された１または複数の測定値を含む。
【０１５７】
ステップ１１３０において、画像データが、ＵＡＶの動作の間に、ＵＡＶにより搭載される少なくとも２つの画像センサから受信される。画像データは、可動物体の周囲の環境の１または複数の画像を含み得る。いくつかの実施形態において、画像データは、少なくとも２、３、４、５、６、７、８、９、１０、２０、３０、４０、または５０の時点に亘って少なくとも２つの画像センサのうちそれぞれにより取得された１または複数の画像を含み得る。
【０１５８】
ステップ１１４０において、１または複数の外部パラメータに関する複数の推定値が、複数の初期値、慣性データ、および画像データに基づいて決定される。複数の推定値は、ＵＡＶの動作の間に決定され得る。オプションで、慣性データおよび画像データは、複数の外部パラメータの複数の推定値を決定するのに用いられる唯一のセンサデータであり得る。ステップ１１４０は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および／または特徴マッチングアルゴリズムを用いて、複数の画像センサにより取得された１または複数の画像を処理することを伴い得る。オプションで、ステップ１１４０は、第１センサにより取得された１または複数の画像を、第２センサにより取得された１または複数の画像と比較することを伴い得る。
【０１５９】
いくつかの実施形態において、複数の推定値は、非線形最適化アルゴリズム、線形最適化アルゴリズム、反復最適化アルゴリズム、または反復非線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータの最大事後確率（ＭＡＰ）推定値を算出することを含み得る。本明細書における複数の実施形態での使用のために適切な例示的なアルゴリズムが以下に提示されている。
【０１６０】
ＵＡＶは、ｍ台のカメラ（または他の画像センサタイプ）、および１台のＩＭＵ（または他の慣性センサタイプ）を含む感知システムを有し得る。本明細書において前に記載されている表記と同様に、複数のカメラの複数の外部パラメータは
【数２８】
2019023865.tif 000030
および
【数２９】
2019023865.tif 000031
であり得、１≦ｉ≦ｍであり得る。本明細書に提供されている他の複数の最適化アルゴリズムと同様に、ＩＭＵからの積分推定値および複数のカメラからの応答を含む最適化目的関数が成立し得る。
【０１６１】
ｔ０からｔＮ（［ｔ０，ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，…ｔＮ］）までの期間に亘るＵＡＶ状態は、
【数３０】
2019023865.tif 000032
であると仮定され得る。ここで、
【数３１】
2019023865.tif 000033
は、（動作が開始した時点ｔ０における位置と相対的な）ＵＡＶの現在位置を表し、
【数３２】
2019023865.tif 000034
は、時間ｋにおける（ＵＡＶの本体座標系と相対的な）ＵＡＶの現在の速度を表し、
【数３３】
2019023865.tif 000035
は、時間ｋにおける（ｔ０における向きと相対的な）ＵＡＶの現在の向きを表す。初期状況は、
【数３４】
2019023865.tif 000036
および
【数３５】
2019023865.tif 000037
であり得る。時間ｔｋ（０≦ｋ≦Ｎ）においてｉ番目の特徴点がｊ番目のカメラにより最初に観察され、λｉは、時間ｔｋにおけるｊ番目のカメラの平面と垂直な方向への特徴点の深さであると仮定され得る。推定されることになるカメラの複数のパラメータは、
【数３６】
2019023865.tif 000038
である。ここで、
【数３７】
2019023865.tif 000039
は、ＩＭＵに関連するｉ番目のカメラの回転を表し、
【数３８】
2019023865.tif 000040
は、ＩＭＵに関連するｉ番目のカメラの並進を表し、１≦ｉ≦ｍである。推定されることになる未知のものは、複数のＵＡＶ状態
【数３９】
2019023865.tif 000041
、複数の外部較正パラメータ
【数４０】
2019023865.tif 000042
、および特徴深さλ０、λ１、λ２、λ３...λＭである。それら全ての未知のものが、本明細書において全体的な状態と呼ばれるベクトルＸを形成する。
【０１６２】
いくつかの実施形態において、目的方程式は、
【数４１】
2019023865.tif 000043
と定義される。ここで、
【数４２】
2019023865.tif 000044
は全体的な状態ＸをＩＭＵからの積分推定値
【数４３】
2019023865.tif 000045
に関連付け、
【数４４】
2019023865.tif 000046
は、全体的な状態Ｘを画像センサからの推定値
【数４５】
2019023865.tif 000047
に関連付ける。
【数４６】
2019023865.tif 000048
は、Ｘに関する前の情報を符号化する。
【数４７】
2019023865.tif 000049
および
【数４８】
2019023865.tif 000050
は、Ｘに関して非線形であり、したがって、解くのが難しくなり得るので、アルゴリズムは、エラー状態表現δＸに対して処理を行い得、複数の関数が、１次のテイラー展開を通じて線形化され得る。
【数４９】
2019023865.tif 000051
【数５０】
2019023865.tif 000052
はいくつかのエラー項δＸ内の全体的な状態Ｘの推定値である。エラー状態表現δＸにおける
【数５１】
2019023865.tif 000053
は、
【数５２】
2019023865.tif 000054
ではなく、
【数５３】
2019023865.tif 000055
（最小表現）であり得ることに気づかれたい。
【０１６３】
ＵＡＶの動力学の実際の物理的なモデルおよびカメラの幾何学の複数の原理を考慮すると、剰余
【数５４】
2019023865.tif 000056
および
【数５５】
2019023865.tif 000057
は、
【数５６】
2019023865.tif 000058
と定義され得る。ここで、
【数５７】
2019023865.tif 000059
は、姿勢情報を通じて推定されるフレームｊにおける特徴ｌの座標である
【数５８】
2019023865.tif 000060
の３つの要素である。複数の数式における他の複数の表記は上記で定義されている。
【０１６４】
【数５９】
2019023865.tif 000061
および
【数６０】
2019023865.tif 000062
は、δＸに関する
【数６１】
2019023865.tif 000063
および
【数６２】
2019023865.tif 000064
の導関数であり、以下に説明されるように２つの場合がある。
【０１６５】
１つの場合において、特徴ｌが最初にカメラｃｉにより時間ｉにおいて観察され、同じ時間においてカメラｃｊにより観察されたものと仮定する。
【数６３】
2019023865.tif 000065
ここで、
【数６４】
2019023865.tif 000066
は正規化された座標である。以下の複数の数式が得られ得る。
【数６５】
2019023865.tif 000067
【０１６６】
他の場合において、特徴ｌが最初にカメラｃｉにより時間ｉにおいて観察され、続く時間ｊにおいてカメラｃｊにより観察されたものと仮定する。
【数６６】
2019023865.tif 000068
【０１６７】
ｃｉ＝ｃｊの場合、以下の複数の数式が得られ得る。
【数６７】
2019023865.tif 000069
【０１６８】
ｃｉ≠ｃｊの場合、以下の複数の数式が得られ得る。
【数６８】
2019023865.tif 000070
【０１６９】
上記の複数の数式を目的方程式へ代入することにより、以下の数式が得られ得る。
【数６９】
2019023865.tif 000071
【０１７０】
いくつかの実施形態において、初期値が提供され得、目的方程式が反復して解かれ得る。初期値は、本明細書に記載されているように初期化または再初期化アルゴリズムを用いて、ＩＭＵからの積分推定値を最後の時点からの最適化された推定値に加算することにより、または
【数７０】
2019023865.tif 000072
として初期化することにより得られ得る。目的方程式は、δＸを取得し、
【数７１】
2019023865.tif 000073
まで
【数７２】
2019023865.tif 000074
に従って
【数７３】
2019023865.tif 000075
を更新するよう反復して解かれ得る。最後に、収束の後、
【数７４】
2019023865.tif 000076
がシステムにより出力されるＵＡＶ状態である。
【０１７１】
いくつかの実施形態において、δＸが複数の反復を経てもゼロに近づかず、パラメータ較正アルゴリズムが解へ収束し損ねた場合、このことはシステムにおけるエラーとして見なされ得、本明細書に記載されるようにエラーから回復するよう再初期化が実行され得る。
【０１７２】
工場での較正後の複数の外部パラメータおよび／または最後の時点からの複数のパラメータの最適な推定値が、ＵＡＶ状態の一部として目的方程式へ入力され得、複数の外部パラメータの推定における何らかのエラーを補正し、目的方程式を最小化するために、数式が反復して解かれ更新され得る。システムは、リアルタイムで複数の外部パラメータにおけるエラーを検出し（δＸを解き）得、エラーを補正し（
【数７５】
2019023865.tif 000077
を更新し）得る。
【０１７３】
オプションで、ステップ１１４０に続き、ＵＡＶの状態（例えば、位置、向き、および／または速度）が、複数の外部パラメータに関する複数の推定値に基づいて決定され得る。例えば、複数の外部パラメータは、状態情報を算出するために、複数の画像センサおよび複数の慣性センサからのセンサデータを融合するのに用いられ得る。いくつかの実施形態において、状態情報は、ＵＡＶの動作の間の前の時点における前のＵＡＶ状態に関連して決定される。前の時点は、状態情報が利用可能である第１時点、例えば、ＵＡＶが動作を開始した、初期化が起こった、または再初期化が起こった時点であり得る。代替的に状態情報は、前のＵＡＶ状態と相対的にではなくむしろ全体座標系に関連して決定され得る。
【０１７４】
図１２は、複数の実施形態に係る、初期構成を有する複数のセンサを有するＵＡＶ（または、何らかの他の可動物体）の１または複数の外部パラメータを較正するための方法１２００を示す。方法１２００の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法１２００の複数のステップのうちいくつかまたは全ては、ＵＡＶにより搭載される１または複数のプロセッサを用いて実行され得る。方法１２００は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。方法１１００と同様に、方法１２００は、ＵＡＶの動作の間にオンライン較正を実行するのに用いられ得る。
【０１７５】
ステップ１２１０において、ＵＡＶにより搭載される複数のセンサの初期構成が修正されたことが検出される。複数のセンサは、少なくとも１つの慣性センサと、少なくとも２つの画像センサとを含み得る。初期構成は、複数のセンサのうち少なくとも１つのセンサを除く、複数のセンサに少なくとも１つのセンサを追加する、複数のセンサうち一のセンサの位置および／または向きを変化させる、またはこれらを組み合わせにより修正されたかもしれない。いくつかの実施形態において、初期構成は、ＵＡＶの動作の前に（例えば、ＵＡＶが飛行する、および／または電力供給される前に）修正され、修正はＵＡＶの動作の間に検出される。他の複数の実施形態において、構成はＵＡＶの動作の間に修正される。修正を検出するのに様々な方法が用いられ得る。例えば、本明細書に説明されている反復処理におけるδＸ内のδθおよびδＴの値がゼロに近くなく、追加の更新が実行されなければならないことを意味している場合に、修正が検出され得る。
【０１７６】
ステップ１２２０において、慣性データが、ＵＡＶの動作の間に、ＵＡＶにより搭載される少なくとも１つの慣性センサから受信される。慣性データは、ＵＡＶの３次元加速度および３次元角速度を示す１または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、少なくとも２、３、４、５、６、７、８、９、１０、２０、３０、４０、または５０の時点に亘って少なくとも１つの慣性センサにより取得された１または複数の測定値を含む。
【０１７７】
ステップ１２３０において、画像データが、ＵＡＶの動作の間、ＵＡＶにより搭載される少なくとも２つの画像センサから受信される。画像データは、可動物体の周囲の環境の１または複数の画像を含み得る。いくつかの実施形態において、画像データは、少なくとも２、３、４、５、６、７、８、９、１０、２０、３０、４０、または５０の時点に亘って少なくとも２つの画像センサのうちそれぞれにより取得された１または複数の画像を含み得る。
【０１７８】
ステップ１２４０において、初期構成が修正されたことの検出に応答して、１または複数の外部パラメータが推定される。１または複数の外部パラメータは、修正された構成を有する複数のセンサ間の複数の空間的関係を含み得る。いくつかの実施形態において、複数の空間的関係は、互いに相対的に、および／または慣性センサに関連して決定され得る、複数の画像センサの相対的な複数の位置および相対的な複数の向きを含む。複数の外部パラメータは、様々なやり方で推定され得る。いくつかの実施形態において、１または複数の外部パラメータは、ステップ１２２０および１２３０において受信された慣性データおよび画像データに基づいて推定される。オプションで、慣性データおよび画像データは、複数の外部パラメータの複数の推定値を決定するのに用いられる唯一のセンサデータであり得る。ステップ１２４０は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および／または特徴マッチングアルゴリズムを用いて、複数の画像センサにより取得された１または複数の画像を処理することを伴い得る。オプションで、ステップ１２４０は、第１センサにより取得された１または複数の画像を、第２センサにより取得された１または複数の画像と比較することを伴い得る。
【０１７９】
いくつかの実施形態において、複数の外部パラメータは、１または複数の外部パラメータに関する複数の初期値に基づいて推定される。  複数の初期値を取得するのに様々な方法が用いられ得る。いくつかの実施形態において、複数の初期値は、ＵＡＶに関連付けられた（例えば、ＵＡＶ上で搭載される）メモリデバイスから受信され得る。複数の初期値は、ＵＡＶの動作の前に決定され得る。例として、複数の初期値は、ＵＡＶの動作の前に、本明細書に記載されている複数の反復最適化アルゴリズムを用いて決定され得る。他の例として、複数の初期値は、動作の前にユーザにより測定され得る。オプションで、複数の初期値は、ＵＡＶが製造されるときに決定される複数の工場較正値であり得る。いくつかの実施形態において、複数の初期値は、ＵＡＶの構成についての知識に基づいて決定され得る。例えば、複数の画像センサおよび／または複数の慣性センサが、特定の固定されたロケーション（例えば、複数のセンサの搭載のために利用可能である選択されたロケーションセット）においてＵＡＶに結合され得、複数の初期値は、複数の固定されたロケーションについての情報に基づいて決定され得る。
【０１８０】
いくつかの実施形態において、複数の外部パラメータは、非線形最適化アルゴリズム、線形最適化アルゴリズム、反復最適化アルゴリズム、反復非線形最適化アルゴリズム、または反復線形最適化アルゴリズムなど最適化アルゴリズムを用いて推定される。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータの最大事後確率（ＭＡＰ）推定値を算出することを含み得る。反復最適化アルゴリズムは、方法１１００に関して本明細書において前に記載された複数のアルゴリズムと同様であり得る。
【０１８１】
オプションで、ステップ１２４０に続き、ＵＡＶの状態（例えば、位置、向き、および／または速度）が、複数の推定された外部パラメータに基づいて決定され得る。例えば、複数の外部パラメータは、状態情報を算出するために、複数の画像センサおよび複数の慣性センサからのセンサデータを融合するのに用いられ得る。いくつかの実施形態において、状態情報は、ＵＡＶの動作の間の前の時点における前のＵＡＶ状態に関連して決定される。前の時点は、状態情報が利用可能である第１時点、例えば、ＵＡＶが動作を開始した、初期化が起こった、または再初期化が起こった時点であり得る。代替的に状態情報は、前のＵＡＶ状態と相対的にではなくむしろ全体座標系に関連して決定され得る。
【０１８２】
本明細書に記載されている自動的パラメータ較正方法（例えば、方法１１００、１２００）は、例えば、複数のセンサの互いに相対的な空間的関係を変化させ得る振動、衝突、または他の複数のイベントに起因して、複数の外部パラメータがＵＡＶの動作の間に変化し得るので、ＵＡＶセンサデータ処理の正確性および信頼性を確実にするという点で有益であり得る。例えば、本明細書に記載されている複数の方法は、動作の間に複数の空間的関係の複数の推定値における複数のエラーを検出し補正するのと同じように、ＵＡＶの動作の間の複数の画像センサと複数の慣性センサとの間の複数の空間的関係（例えば、複数の相対的な位置および向き）を継続的に推定するのに用いられ得る。追加的に本明細書に記載されているオンライン較正の実装は、本明細書で「オフライン」較正と呼ばれ得るＵＡＶの動作の前の正確な較正の必要性を有利に取り除き得る。このことは、ＵＡＶのセンサ構成が（例えば、１または複数のセンサを追加する、１または複数のセンサを除く、１または複数のセンサを動かすことにより）修正され得、センサ構成に関する新たな複数の外部パラメータを決定するために長々しいオフライン較正手順を要することなくＵＡＶが修正の直後に動作させられ得る「プラグアンドプレイ」アプローチを可能とし得る。いくつかの実施形態において、本明細書に提供されている複数のパラメータ較正方法は、ＵＡＶの動作の前に何らかのパラメータ較正を実行することなく、ＵＡＶの動作の間に複数の外部パラメータが決定されることを可能とする。
【０１８３】
図１３は、複数の実施形態に係る、ＵＡＶ（または、何らかの他の可動物体）の動作の間に複数のセンサを用いてＵＡＶに関する状態情報を推定するための方法１３００を示す。方法１３００の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法１３００の複数のステップのうちいくつかまたは全ては、ＵＡＶにより搭載される１または複数のプロセッサを用いて実行され得る。方法１３００は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
【０１８４】
方法１３００は、動作の間（例えば、ＵＡＶが電力供給されているとき、飛行しているとき等）のＵＡＶの現在の状態を推定するのに用いられ得る。状態推定は、ＵＡＶの位置、向き、速度、および／または加速度など様々なタイプの状態情報を決定することを伴い得る。状態情報は、より早い時点におけるＵＡＶの前の状態に関連して決定され得、または絶対的な点から（例えば、全体座標系と相対的に）決定され得る。いくつかの実施形態において、状態推定は、複数の外部パラメータのリアルタイム更新を可能とするよう、ＵＡＶの動作の間、継続的に、または予め定められた複数の時間間隔をおいて実行される。例えば、方法１３００は、ＵＡＶの動作の間、０．１秒毎に１度実行され得る。
【０１８５】
ステップ１３１０において、ＵＡＶに関する前の状態の情報が受信される。前の状態の情報は、ＵＡＶの動作の間の前の時点におけるＵＡＶの位置、向き、速度、および／または加速度を含み得る。いくつかの実施形態において、前の状態の情報は、反復最適化アルゴリズム、例えば、方法１３００のステップ１３４０において用いられたものと同じアルゴリズムを用いて取得される。１または複数の前の時点からの状態情報は、続く複数の時点に関する更新された状態情報の推定を容易にするために、ＵＡＶに関連付けられたメモリデバイスに格納され得る。
【０１８６】
ステップ１３２０において、ＵＡＶにより搭載される少なくとも１つの慣性センサからの慣性データが受信される。慣性データは、ＵＡＶの動作の間の少なくとも２、３、４、５、６、７、８、９、１０、２０、３０、４０または５０の時点に亘って慣性センサにより取得される慣性測定データを含み得る。慣性データは、ＵＡＶの３次元加速度および３次元角速度を示し得る。
【０１８７】
ステップ１３３０において、ＵＡＶにより搭載される少なくとも２つの画像センサからの画像データが受信される。画像データは、ＵＡＶの動作の間の少なくとも２、３、４、５、６、７、８、９、１０、２０、３０、４０または５０の時点に亘って各画像センサにより取得される複数の画像を含み得る。複数の画像は、ＵＡＶの周囲の環境のものであり得る。
【０１８８】
ステップ１３４０において、ＵＡＶに関する更新された状態情報が、ＵＡＶの動作の間の前の状態の情報、慣性データおよび／または画像データに基づいて決定される。更新された状態情報は、ＵＡＶの位置、向き、速度、および／または加速度を含み得る。更新された状態情報は、現時点におけるＵＡＶに関する現在の状態情報であり得る。オプションで、慣性データおよび画像データは、更新された状態情報を決定するのに用いられる唯一のセンサデータであり得る。ステップ１３４０は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および／または特徴マッチングアルゴリズムを用いて、各画像センサにより取得された複数の画像を処理することを伴い得る。オプションで、ステップ１３４０は、第１センサにより取得された１または複数の画像を、第２センサにより取得された１または複数の画像と比較することを伴い得る。
【０１８９】
いくつかの実施形態において、複数の推定値は、非線形最適化アルゴリズム、線形最適化アルゴリズム、反復最適化アルゴリズム、反復非線形最適化アルゴリズム、または反復線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて１または複数の外部パラメータの最大事後確率（ＭＡＰ）推定値を算出することを含み得る。本明細書における複数の実施形態での使用のために適切な例示的なアルゴリズムが以下に提示されている。
【０１９０】
ＵＡＶは、ｍ台のカメラ（または他の画像センサタイプ）、および１台のＩＭＵ（または他の慣性センサタイプ）を含む感知システムを有し得る。ＩＭＵの出力頻度は、複数のカメラの出力頻度より高くなり得る。複数のカメラの複数の外部パラメータは、
【数７６】
2019023865.tif 000078
および
【数７７】
2019023865.tif 000079
であり得る。ここで、
【数７８】
2019023865.tif 000080
は、ＩＭＵに関連するｉ番目のカメラの回転を表し、
【数７９】
2019023865.tif 000081
は、ＩＭＵに関連するｉ番目のカメラの並進を表し、１≦ｉ≦ｍである。本明細書に提供されている他の複数の最適化アルゴリズムと同様に、ＩＭＵからの積分推定値および複数のカメラからの応答を含む最適化目的関数が成立し得る。
【０１９１】
ｔ０からｔＮ（［ｔ０，ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，...ｔＮ］）までの期間に亘るＵＡＶ状態は、
【数８０】
2019023865.tif 000082
であると仮定され得る。ここで、
【数８１】
2019023865.tif 000083
は、（動作が開始した時点ｔ０における位置と相対的な）ＵＡＶの現在位置を表し、
【数８２】
2019023865.tif 000084
は、時間ｋにおける（ＵＡＶの本体座標系と相対的な）ＵＡＶの現在の速度を表し、
【数８３】
2019023865.tif 000085
は、時間ｋにおける（ｔ０における向きと相対的な）ＵＡＶの現在の向きを表す。初期状況は、
【数８４】
2019023865.tif 000086
および
【数８５】
2019023865.tif 000087
であり得る。（Ｎ＋１）×ｍの画像において観察される特徴点の数はＭであり得る。ｉ番目の特徴点が時間ｔｋ（０≦ｋ≦Ｎ）においてｊ番目のカメラにより最初に観察され、λｉは、時間ｔｋにおいてｊ番目のカメラの平面と垂直な方向への特徴点の深さであると仮定され得る。推定されることになる未知のものは、複数のＵＡＶ状態
【数８６】
2019023865.tif 000088
、複数の外部較正パラメータ
【数８７】
2019023865.tif 000089
、および特徴深さλ０、λ１、λ２、λ３...λＭである。それら全ての未知のものが、本明細書において全体的な状態と呼ばれるベクトルＸを形成する。
【０１９２】
いくつかの実施形態において、目的方程式は、
【数８８】
2019023865.tif 000090
として定義される。ここで、
【数８９】
2019023865.tif 000091
は、前の情報（Ｘに関する推定値を表す）を格納し、
【数９０】
2019023865.tif 000092
は、全体的な状態ＸとＩＭＵからの積分推定値
【数９１】
2019023865.tif 000093
との間の関係であり、
【数９２】
2019023865.tif 000094
は、全体的な状態Ｘと複数の画像センサ
【数９３】
2019023865.tif 000095
からの推定値との間の関係である。数式
【数９４】
2019023865.tif 000096
および
【数９５】
2019023865.tif 000097
は、本明細書に説明されているように導き出され得る。
【数９６】
2019023865.tif 000098
および
【数９７】
2019023865.tif 000099
は非線形であるので、それらは、１次のテイラー展開により展開され
【数９８】
2019023865.tif 000100
および
【数９９】
2019023865.tif 000101
が取得され得る。
【０１９３】
上記の２つの数式を目的方程式に代入することにより以下の数式が得られ得る。
【数１００】
2019023865.tif 000102
【０１９４】
いくつかの実施形態において、初期値が提供され得、目的方程式はガウス・ニュートンアルゴリズムを用いて反復して解かれ得る。初期値は、本明細書に記載されているように初期化または再初期化アルゴリズムを用いて、ＩＭＵからの積分推定値を最後の時点からの最適化された推定値に加算することにより、または
【数１０１】
2019023865.tif 000103
として初期化することにより取得され得る。目的方程式は、δＸを取得し、目的方程式を最小化するよう
【数１０２】
2019023865.tif 000104
まで
【数１０３】
2019023865.tif 000105
に従って
【数１０４】
2019023865.tif 000106
を更新するよう反復して解かれ得る。したがって、
【数１０５】
2019023865.tif 000107
は、システムにより出力されるＵＡＶ状態である。
【０１９５】
いくつかの実施形態において、δＸが複数の反復を経てもゼロに近づかず、状態推定アルゴリズムが解へ収束し損ねた場合、このことはシステムにおけるエラーとして見なされ得、本明細書に記載されるようにエラーから回復するよう再初期化が実行され得る。
【０１９６】
いくつかの実施形態において、１または複数の前の時点からのセンサデータが、現在の状態情報を推定するのに用いられ得る。例えば、少なくとも１、２、３、４、５、６、７、８、９、１０、２０、３０、４０または５０の前の時点からの前の慣性データおよび／または画像データが、現在の状態情報を推定するのに用いられ得る。スライディングウィンドウフィルタなど、ＵＡＶの現在の状態を推定するのに用いられる前の状態の情報の量を決定するのに、様々な方法が用いられ得る。
【０１９７】
図１４は、複数の実施形態に係る、前の状態の情報を選択するためのスライディングウィンドウフィルタを示す。スライディングウィンドウのサイズは、Ｋの時点からのセンサデータ（例えば、慣性データおよび／または画像データ）が現在の状態を推定するのに用いられるようＫであり得る。図１４ではＫ＝４であるが、Ｋは、２０など何らかの適切な値であり得ることが理解されよう。Ｋの時点は、Ｋ−１の前の時点と現時点とを含み得る。新たなセンサデータが続く時点において取得されるとき、新たなデータがスライディングウィンドウに追加され得、前の時点からのデータは、一定のウィンドウサイズＫを維持するためにスライディングウィンドウから除かれ得る。例えば、図１４の描写において、第１スライディングウィンドウ１４００ａは、時点１―４からのデータを保持しており、第２スライディングウィンドウ１４００ａは、時点２―５からのデータを保持しており、第３スライディングウィンドウ１４００ｃは、時点３―６からのデータを保持しており、第４スライディングウィンドウ１４００ｄは、時点４―７からのデータを保持している。いくつかの実施形態において、破棄される時点は、スライディングウィンドウにおける最も早い時点である（例えば、先入れ先出し法（ＦＩＦＯ）。他の複数の実施形態において、破棄される時点は最も早い時点でなくてもよく、どの時点を維持して、どの時点を破棄するか決定するようＦＩＦＯ以外の、先入れ後出し法（ＦＩＬＯ）など他の複数のマージナリゼーションアプローチ、またはＦＩＦＯとＦＩＬＯとを混合させた方法が用いられ得る。いくつかの実施形態において、複数の時点が、特定の時点とその周辺の複数の時点との間の視差をチェックすることに基づいて破棄される。視差が安定した算術の解のために十分に大きくない場合、例えば、シュール補行列マージナリゼーション方法を用いて時点はマージナライズされ、捨てられ得る。
【０１９８】
いくつかの実施形態において、ｂｐおよびΛｐは、現在の状態を推定するのに用いられる前の複数の時点からの情報を格納し得る。例えば、ｂｐおよびΛｐは、ＵＡＶが動作を開始してから（またはエラーにより再初期化されてから）現時点までの複数の前の時点におけるセンサデータ（例えば、慣性データおよび／または画像データ）を格納し得る。オプションで、ｂｐおよびΛｐは、本明細書に記載されているスライディングウィンドウに既に含まれているＫの時点からのデータを除外し得る。そのような複数の実施形態において、データがスライディングウィンドウから破棄されたとき、それはｂｐおよびΛｐを更新するのに用いられ得る。
【０１９９】
いくつかの実施形態において、アルゴリズムは、入力されたセンサデータのエラーをリアルタイムで検出するのに用いられ得る。例えば、エラーは、複数の画像センサのうち１つが機能不良に陥った、または妨害された場合に生じ得る。他の例として、エラーは、画像センサにより取得された画像データに過度のノイズが存在する場合に生じ得る。エラー検出は、δＸを解き
【数１０６】
2019023865.tif 000108
を更新するときに、画像データおよび／または慣性データに対応するδＸが収束しているか（例えば、δＸが複数の反復に亘ってより小さくなっている、および／またはゼロに近づいているか）を検出することにより実行され得る。δＸが収束している場合、センサデータにはエラーがないと見なされ得る。しかし、δＸが収束しない場合、センサデータにはエラーがあると見なされ得、収束に関する問題を引き起こしているセンサデータは、最適化処理から除かれ得る。
【０２００】
オプションで、ステップ１３４０に続いて、更新された状態情報が、例えば、ＵＡＶの動きを制御するための制御モジュールへ出力され得る。例えば、制御モジュールは、ＵＡＶの１または複数の推進ユニットを制御するよう、例えば、自律または半自律ナビゲーション、障害物回避、ルートプランニング、環境マッピング、およびその他を有効化する、更新された状態情報を用い得る。
【０２０１】
方法１３００は、ＵＡＶの動作に関していくつかの利点を提供し得る。例えば、本明細書に記載されている複数の状態推定方法は、コンピューテイングリソースを節約しつつ、他の複数のタイプの状態推定方法よりも正確であり得る。推定された状態情報は、慣性データのみまたは画像データのみを用いて推定された状態情報よりも正確であり得る。いくつかの実施形態において、状態情報（例えば、位置情報）に関する複数の推定値は、およそ０．１ｃｍ、０．２５ｃｍ、０．５ｃｍ、０．７５ｃｍ、１ｃｍ、１．２５ｃｍ、１．５ｃｍ、１．７５ｃｍ、２ｃｍ、２．２５ｃｍ、２．５ｃｍ、２．７５ｃｍ、３ｃｍ、または５ｃｍ以下だけ状態情報の複数の実際値から離れている。正確性は、より多くの画像センサを用いることによりさらに高められ得る。追加的に、本明細書における複数の実施形態は、複数の画像センサでの使用のために適切であり、したがって、複数の画像センサのうち１または複数が機能不良に陥った、または妨害された場合であってもシステムが動作を継続することを可能とする。いくつかの実施形態において、状態推定方法はノイズを低減し、したがって、ＵＡＶシステムの堅牢性および安定性を向上させる。
【０２０２】
図１５は、複数の実施形態に係る、ＵＡＶ（または、何らかの他の可動物体）に関する状態推定および／またはパラメータ較正を実行するための方法１５００を示す。方法１５００において、慣性データ１５０２および画像データ１５０４が、本明細書に記載されているように、ＵＡＶにより搭載される少なくとも１つの慣性センサおよび少なくとも２つの画像センサから受信される。慣性データ１５０２および画像データ１５０４は、線形スライディングウィンドウフィルタ１５０６および非線形スライディングウィドウフィルタ１５０８に入力され得る。線形スライディングウィンドウフィルタ１５０６は、新たなデータが受信されたときに、ＦＩＦＯアプローチを利用して複数の前の時点からのデータを破棄し得る。非線形スライディングウィンドウフィルタ１５０８は、新たなデータが受信されたときに、マージナリゼーションアプローチを利用して複数の前の時点からのデータを破棄し得る。
【０２０３】
いくつかの実施形態において、状態推定および／またはパラメータ較正は、非線形スライディングウィドウフィルタ１５０８により選択された慣性データおよび画像データを非線形ソルバー１５１０へ入力して、状態情報および／または複数の外部パラメータに関する複数の推定値を提供する解を生成することにより実行される。非線形ソルバー１５１０は、本明細書に記載されている複数の実施形態など非線形最適化アルゴリズムであり得る。方法１５００は、解１５１２を生成するために非線形ソルバー１５１０が収束したかを検出することを含み得る。非線形ソルバー１５１０が収束し、解を生成した場合、解は、例えば、飛行制御モジュールなど他のＵＡＶコンポーネントへ出力１５１４され得る。方法はその後、新たなセンサデータの受信へと進み、前のセンサデータを非線形スライディングウィドウフィルタ１５０８を介してマージナライズにより取り除き１５１６、処理は、更新された状態に関する複数の推定値の生成を継続するよう繰り返され得る。
【０２０４】
非線形ソルバー１５１０が収束し損ねた場合、方法１５００は、線形ソルバー１５１８の使用へと進み、状態情報に関する複数の推定値を提供する解を生成し、解１５１４を出力し得る。線形ソルバー１５１８は、本明細書に記載されている複数の実施形態など線形最適化アルゴリズムであり得る。いくつかの実施形態において、非線形ソルバー１５１０が収束し損ねたことはエラーとして見なされ、線形ソルバー１５１８は、エラーから回復するために再初期化アルゴリズムを実装し得る。線形ソルバー１５１８により提供される解（例えば、再初期化情報）は、非線形ソルバー１５１０により実行される続く状態に関する複数の推定値に関する複数の初期値として用いられ得る。
【０２０５】
本明細書に記載されている様々な方法は、何らかの適切なシステムまたはデバイスにより実装され得る。いくつかの実施形態において、本明細書における複数の方法は、コンピューティングプラットホーム、飛行制御モジュール、センサモジュール、およびデータ取得サブシステムを含むハードウェアプラットフォームにより実行される。コンピューティングプラットホームは、本明細書に記載されている様々なセンサ融合アルゴリズムに従ってセンサデータを受信および処理するセンサ融合モジュールを含み得る。コンピューティングプラットホームは、ハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを用いて実装され得る。例えば、いくつかの実施形態において、コンピューティングプラットホームは、ＡＲＭアーキテクチャのＣＰＵおよびＧＰＵコンピューティングプラットホームを設計する基準としてＮＶＩＤＩＡ  Ｔｅｇｒａ  Ｋ１を利用する。コンピューティングプラットホームは、安定性および拡張可能性など特定の性能に関する要件を満たすよう設計され得る。表１は、コンピューティングプラットホームに関するいくつか例示的な要件およびテスト方法を提供する。
【表１】
2019023865.tif 000109
【０２０６】
飛行制御モジュールは、ＵＡＶの位置、向き、速度、および／または加速度を制御するための複数のコンポーネントなどＵＡＶの動作を制御するためのハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを含み得る。いくつかの実施形態において、飛行制御モジュールは、例えば、所望される位置、向き、速度等を実現するために、ＵＡＶの複数の推進ユニットの作動を制御するための１または複数のコンポーネントを含み得る。飛行制御モジュールは、プラットフォームからデータ（例えば、状態情報）を受信し、同データを１または複数の飛行制御アルゴリズムへの入力として用いるために、コンピューティングプラットホームに通信可能に結合され得る。例えば、飛行制御モジュールは、コンピューティングプラットホームから、例えば、少なくとも５０Ｈｚの周波数でデータを受信するために、下位の複数のＡＰＩを含み得る。
【０２０７】
センサモジュールは、本明細書に記載されているような少なくとも１つの慣性センサおよび少なくとも２つの画像センサなど１または複数のセンサを含み得る。いくつかの実施形態において、センサモジュールは、前方に（例えば、ＵＡＶの動きの方向に沿って）面して双眼の構成で設定された２つのカメラと、下方に面して単眼の構成で設定された１つのカメラとを含む３つのグローバルシャッタカメラを含む。複数のカメラは、およそ２０Ｈｚのサンプリング周波数を有し得る。いくつかの実施形態において、センサモジュールは、少なくとも１００Ｈｚの周波数でＵＡＶの角速度および直線加速度を取得するよう構成された１つのＩＭＵを含む。ＩＭＵは、例えば、ジャイロスコープからの補正されていない積分を用いて角度値を提供するようにも構成され得る。オプションで、センサモジュールは、コンパス、気圧計、ＧＰＳ、および／または超音波センサ（例えば、前方に向けられた、および下方に向けられた複数の超音波センサ）など他の複数のタイプのセンサも含み得る。センサモジュールのための複数のセンサは、ＵＡＶ本体と相対的な複数のセンサの動きを制限する剛性の複数の接続部を用いて本体と結合され得る。オプションで、複数のセンサの所望されない複数の動きを低減するために、ダンパまたは緩衝器など複数の振動低減システムが複数のセンサとＵＡＶモジュールとの間に設置され得る。
【０２０８】
データ取得サブシステムは、様々なセンサからのセンサデータをコンピューティングプラットホームおよび／または飛行制御モジュールへ送信するために、センサモジュールに動作可能に結合され得る。データ取得システムは、ＵＳＢインタフェース、シリアルポート、またはこれらの組み合わせなど何らかの適切なタイプの通信インタフェースを利用し得る。いくつかの実施形態において、複数の画像センサと複数の超音波センサとが複数のＵＳＢインタフェースを介して結合され、ＩＭＵと他のセンサタイプが複数のシリアルポートを介して結合される。
【０２０９】
図１６は、複数の実施形態に係る、複数のセンサを用いてＵＡＶを制御するためのシステム１６００を示す。システム１６００は、本明細書に記載されている複数の方法のうちいずれかの実施形態を実装するのに用いられ得る。システム１６００の複数のコンポーネントのうち少なくともいくつかまたは全てがＵＡＶにより運ばれ得る。システム１６００は、センサ融合ユニット１６０１ａ（破線より上方の複数のコンポーネント）、および飛行制御ユニット１６０１ｂ（破線より下方の複数のコンポーネント）の２つの異なる機能ユニットに分割されるものと見なされ得る。センサ融合ユニット１６０１ａおよび飛行制御ユニット１６０１ｂは、データ、複数の制御信号、およびその他の交換のために互いに通信可能に結合され得る。いくつかの実施形態において、センサ融合ユニット１６０１ａおよび飛行制御ユニット１６０１ｂは、一方のユニットが機能不良に陥った場合に他方が動作を継続出来るよう互いに独立して動作するよう構成されている。例えば、センサ融合ユニット１６０１ａが機能不良を経験した場合に、飛行制御ユニット１６０１ｂは、例えば、緊急着陸動作を実行するために独立して機能を継続するよう構成され得る。
【０２１０】
いくつかの実施形態において、システム１６００は、飛行制御モジュール１６０４に動作可能に結合されたセンサ融合モジュール１６０２を含む。センサ融合モジュール１６０２は、１または複数の慣性センサ１６０６および１または複数の画像センサ１６０８など複数のセンサにも結合され得る。センサ融合モジュール１６０２は、本明細書に記載されている初期化、エラー回復、状態推定、および外部パラメータ較正方法を実行するために、慣性センサ１６０６および画像センサ１６０８からの慣性データおよび画像データを用いる１または複数のプロセッサを含み得る。オプションで、センサ融合モジュール１６０２は、上記および本明細書に記載されているように、画像データを処理するための画像処理モジュールに結合され、またはそれを含み得る。センサ融合モジュール１６０２により生成された複数の結果は、様々な飛行動作を容易にするために、飛行制御モジュール１６０４へ送信され得る。複数の飛行動作は、センサ融合モジュールからの複数の結果、遠隔端末１６１０から受信した複数のユーザコマンド、他の複数のセンサ１６１２（例えば、ＧＰＳセンサ、磁力計、超音波センサ）から受信したセンサデータ、またはこれらの組み合わせに基づいて実行され得る。例えば、飛行制御モジュール１６０４は、例えば、ナビゲーション、障害物回避、およびその他などＵＡＶの動作のために、ＵＡＶの位置、向き、速度、および／または加速度を制御するために１または複数の推進ユニット１６１４（例えば、複数のロータ）へ送信される複数の制御信号を決定し得る。
【０２１１】
システム１６００の複数のコンポーネントは、様々なタイプおよび組み合わせのハードウェア要素を用いて実装され得る。例えば、センサ融合モジュール１６０２は、１または複数のプロセッサ、および１または複数のプロセッサにより実行可能な複数の命令を格納したメモリを含む何らかの適切なハードウェアプラットフォームを用いて実装され得る。システム１６００の異なる複数のコンポーネント間の複数の接続は、様々なタイプの通信インタフェース、例えば、ＵＳＢインタフェース、シリアルポート、パルス幅変調チャネル、またはこれらの複数の組み合わせなどアナログまたはデジタルインタフェースを用いて実装され得る。そのような複数のインタフェースは、複数の有線または無線通信方法を利用し得る。例えば、画像センサ１６０８は、複数のＵＳＢインタフェースを介してセンサ融合モジュール１６０２に結合され得、慣性センサ１６０６は、複数のシリアルポートを介してセンサ融合モジュール１６０２に結合され得る。センサ融合モジュール１６０２は、複数のシリアルポートを介して飛行制御モジュール１６０４に結合され得る。飛行制御モジュール１６０４は、無線制御（ＲＣ）インタフェースなど無線通信インタフェースを介して遠隔端末１６１０に結合され得る。飛行制御モジュール１６０４は、パルス幅変調を介して推進ユニット１６１４へ複数のコマンドを送信し得る。
【０２１２】
いくつかの実施形態において、センサ融合モジュール１６０２は、本明細書に記載されているように慣性センサ１６０６からの慣性データと画像センサ１６０８からの画像データを組み合わせるのに用いられる。オプションで、センサ融合モジュール１６０２は、ＵＡＶに関する状態情報（例えば、速度または加速度など動き情報）を推定するために、飛行制御モジュール１６０４からの内部データとセンサ１６０６、１６０８からのセンサデータとを組み合わせ得る。センサ融合モジュール１６０２は、Ｊｅｔｓｏｎ  ＴＫ１（ＴＫ１）プラットフォームなど何らかの適切なコンピューティングプラットホームを用い得る。画像センサ１６０８は、ＵＳＢインタフェースを介してＴＫ１プラットフォームと通信可能に結合され得る。ＴＫ１は、適切な複数のドライバを用いて、Ｕｂｕｎｔｕ  １４．０４オペレーティングシステムなど何らかのオペレーティングシステムを実行し得る。いくつかの実施形態において、ロボットオペレーティングシステム（ＲＯＳ）がデータ送信のために用いられ得る。表２は、センサ融合モジュール１６０２に関するいくつかの例示的なハードウェアおよびソフトウェアコンポーネントを提供する。
【表２】
2019023865.tif 000110
【０２１３】
本明細書における複数のシステム、デバイス、および方法は、１、２、３、４、５、６、７、８、９、１０、１５、２０、３０、４０、５０、またはそれらより多くの画像センサなど任意の適切な数の画像センサを利用し得る。複数の画像センサは、例えば、対応する数の通信インタフェースを介して画像データを受信し分析するために（例えば、特徴点検出およびマッチングを実行するために）画像化処理モジュールの１または複数のプロセッサに同時に結合され得る。しかし、いくつかの実施形態において、特定のハードウェアプラットフォームは、多数の画像センサ（例えば、６より多くの画像センサ、１０より多くの画像センサ）への同時の結合をサポートすることは可能でないかもしれない。例えば、いくつかの画像処理モジュールは、複数の画像センサのうち全てが同時に結合され得るのに十分な数の通信インタフェースを含まないかもしれない。そのような複数の実施形態において、複数の画像センサは全てが、同じ時間においてモジュールに同時に結合され得ないかもしれない。例として、異なる複数の時間において複数の画像センサからなる特定のサブセットをモジュールに選択的に結合するよう切り替え機構が用いられ得る。
【０２１４】
図２２は、複数の実施形態に係る、切り替え可能に結合された複数の画像センサを有するシステム２２００を示す。システム２２００の様々なコンポーネントは、本明細書に提示されている他の複数のシステムおよび複数のデバイスのいずれかの実施形態と組み合わせられ得、および／またはそれらと置き換えられ得る。システム２２００は、本明細書に記載されている複数の方法のうち何れか、例えば、非同期データ収集スキーム２１００と組み合わせて用いられ得る。システム２２００は、複数の画像センササブセット２２０２（例えば、本明細書に描写されているようなｎの異なるサブセット）を含み得る。２、３、４、５、６、７、８、９、１０、１５、２０、３０、４０、５０、またはそれらより多くのサブセットなど任意の数の画像センササブセットが用いられ得る。各画像センササブセットは、１、２、３、４、５、６、７、８、９、１０、１５、２０、３０、４０、５０、またはそれらより多くの画像センサなど任意の数の個々の画像センサを含み得る。各画像センササブセットは、同じ数の画像センサを含み得る。代替的に、複数の画像センササブセットのうちいくつかまたは全ては、異なる複数の数の画像センサを含み得る。各画像センササブセットは、画像処理モジュール２２０６に結合されている切り替え機構２２０４と結合され得る。切り替え機構２２０４は、センサの複数のサブセットをモジュール２２０６（例えば、スイッチ、中継装置等）に選択的に結合するためのハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを含み得る。画像処理モジュール２２０６は、本明細書に説明されているように、特徴点検出および／またはマッチングを実行するために画像データを処理するために用いられ得る。いくつかの実施形態において、画像処理モジュール２２０６は、初期化、エラー回復、パラメータ較正、および／または状態推定を実行するためにセンサ融合モジュールのコンポーネントに結合され、および／またはそのコンポーネントである。
【０２１５】
切り替え機構２２０４は、画像処理モジュール２２０６が単一サブセットから一時に画像データを受信および処理するよう、一時に画像処理モジュール２２０６へ単一の画像センササブセットのみを結合するよう構成され得る。システム２２００の複数の画像センサのうち全てからデータを取得するために、切り替え機構２２０４は、画像処理モジュール２２０６に結合されるサブセットを交替させるよう制御され得る。例えば、画像データは、第１画像センササブセットをモジュール２２０６へ結合し、第１サブセットから画像データを受信し、第２画像センササブセットをモジュール２２０６へ結合し、第２サブセットから画像データを受信し、全てのサブセットからの複数の画像が受信されるまでこれを続けることにより受信され得る。切り替え機構２２０４が異なる複数のサブセット間で切り替えを行う順序および頻度は、所望されるように変更され得る。このアプローチは、画像処理モジュール２２０６が常に複数のセンサのうちそれぞれとの同時の複数の接続を維持することを要することなく、画像データが比較的多数の画像センサから受信されることを可能とする。このことは、多数のセンサからの画像データを一度に処理することに関連するコンピューティングロードを低減しつつ、（例えば、プラグアンドプレイのために）任意の数の画像センサに適応するようシステムの柔軟性を向上させるという点で有利であり得る。
【０２１６】
本明細書に記載されている複数のシステム、デバイス、および方法は、多種多様な可動物体に適用され得る。前に言及したように、本明細書における航空機についてのいずれの記載も、何らかの可動物体に当てはまり得、およびそのために用いられ得る。本願発明の可動物体は、空中（例えば、固定翼航空機、回転翼航空機、または固定翼も回転翼も有さない航空機）、水中（例えば、船または潜水艦）、地上（例えば、車、トラック、バス、バン、バイクなどの自動車、棒、釣竿などの可動構造または枠体、または電車）、地下（例えば、地下鉄）、宇宙空間（例えば、宇宙飛行機、衛星、または宇宙探査用装置）、またはこれら環境の何らかの組み合わせなど何らかの適切な環境内を動くよう構成され得る。可動物体は、本明細書の他の箇所において記載されている輸送体などの輸送体であり得る。いくつかの実施形態において、可動物体は、人または動物など生体に搭載され得る。適切な複数の動物は、ａｖｉｎｅｓ、イヌ科の動物、ネコ科の動物、ウマ科の動物、ウシ亜科の動物、羊、豚、イルカ、齧歯動物、または昆虫を含み得る。
【０２１７】
可動物体は、環境内で、６自由度（例えば、並進３自由度、および回転３自由度）に関して自由に動くことが可能であり得る。代替的に、可動物体の動きは、予め定められた経路、軌道、または向きによってなど１または複数の自由度に関して制約を受け得る。動きは、エンジンまたはモータなどの何らかの適切な作動機構により作動させられ得る。可動物体の作動機構は、電気エネルギー、磁気エネルギー、太陽エネルギー、風力エネルギー、重力エネルギー、化学エネルギー、核エネルギー、またはこれらの何らかの適切な組み合わせなど何らかの適切なエネルギー源により電力供給され得る。可動物体は、本明細書の他の箇所において記載されているように、推進システムを介して自己推進し得る。オプションで、推進システムは、電気エネルギー、磁気エネルギー、太陽エネルギー、風力エネルギー、重力エネルギー、化学エネルギー、核エネルギー、またはこれらの何らかの適切な組み合わせなどエネルギー源で作動し得る。代替的に、可動物体は生き物により運ばれ得る。
【０２１８】
いくつかの例において、可動物体は輸送体であり得る。適切な複数の輸送体は、水用輸送体、航空機、宇宙用輸送体、または地面用輸送体を含んでもよい。例えば、複数の航空機は、固定翼航空機（例えば、飛行機、グライダー）、回転翼航空機（例えば、ヘリコプター、ロータクラフト）、固定翼および回転翼の両方を有する航空機、またはいずれも有さない航空機（例えば、小型軟式飛行船、熱気球）であり得る。輸送体は、空中、水上、水中、宇宙空間、地上、または地下を自己推進するなど、自己推進し得る。自己推進型の輸送体は、１または複数のエンジン、モータ、車輪、車軸、磁石、ロータ、プロペラ、ブレード、ノズル、またはこれらの何らかの適切な組み合わせを含む推進システムなどの推進システムを利用し得る。いくつかの例において、可動物体が表面から離陸出来る、表面に着陸出来る、現在の位置および／または向きを維持出来る（例えば、ホバリングする）、向きを変化させられる、および／または位置を変化させられるよう推進システムが用いられ得る。
【０２１９】
可動物体は、ユーザにより遠隔的に制御され得、若しくは、可動物体内、またはその上の乗員により近くで制御され得る。いくつかの実施形態において、可動物体は、ＵＡＶなど無人可動物体であり得る。ＵＡＶなどの無人可動物体は、可動物体に搭乗している乗員を有さなくてもよい。可動物体は、人または自律制御システム（例えば、コンピュータ制御システム）により、若しくはこれらの何らかの適切な組み合わせにより制御され得る。可動物体は、人工知能を用いて構成されたロボットなど自律的または半自律的ロボットであり得る。
【０２２０】
可動物体は、何らかの適切なサイズおよび／または複数の寸法を有し得る。いくつかの実施形態において、可動物体は、輸送体内またはその上に人である乗員を有するためのサイズおよび／または複数の寸法のものであり得る。代替的に、可動物体は、輸送体内またはその上に人である乗員を有することが可能なサイズおよび／または複数の寸法より小さなものであり得る。可動物体は、人により持ち上げられる、または搭載されるのに適切なサイズおよび／または複数の寸法のものであり得る。代替的に、可動物体は、人により持ち上げられる、または搭載されるのに適切なサイズおよび／または複数の寸法より大きくてもよい。いくつかの例において、可動物体は、およそ２ｃｍ、５ｃｍ、１０ｃｍ、５０ｃｍ、１ｍ、２ｍ、５ｍ、または１０ｍより短い、またはそれらと等しい最大寸法（例えば、長さ、幅、高さ、直径、対角線）を有し得る。最大寸法は、およそ２ｃｍ、５ｃｍ、１０ｃｍ、５０ｃｍ、１ｍ、２ｍ、５ｍ、または１０ｍより長くてもよく、またはそれらと等しくてもよい。例えば、可動物体の、向かい合っている複数のロータの複数のシャフト間の距離は、およそ２ｃｍ、５ｃｍ、１０ｃｍ、５０ｃｍ、１ｍ、２ｍ、５ｍ、または１０ｍより短くてもよく、またはそれらと等しくてもよい。代替的に、向かい合っている複数のロータの複数のシャフト間の距離は、およそ２ｃｍ、５ｃｍ、１０ｃｍ、５０ｃｍ、１ｍ、２ｍ、５ｍ、または１０ｍより長くてもよく、またはそれらと等しくてもよい。
【０２２１】
いくつかの実施形態において、可動物体は、１００ｃｍ×１００ｃｍ×１００ｃｍ未満、５０ｃｍ×５０ｃｍ×３０ｃｍ未満、または５ｃｍ×５ｃｍ×３ｃｍ未満の体積を有し得る。可動物体の総体積は、およそ１ｃｍ３、２ｃｍ３、５ｃｍ３、１０ｃｍ３、２０ｃｍ３、３０ｃｍ３、４０ｃｍ３、５０ｃｍ３、６０ｃｍ３、７０ｃｍ３、８０ｃｍ３、９０ｃｍ３、１００ｃｍ３、１５０ｃｍ３、２００ｃｍ３、３００ｃｍ３、５００ｃｍ３、７５０ｃｍ３、１０００ｃｍ３、５０００ｃｍ３、１０，０００ｃｍ３、１００，０００ｃｍ３、１ｍ３、または１０ｍ３より小さくてもよく、またはそれらと等しくてもよい。逆に、可動物体の総体積は、およそ１ｃｍ３、２ｃｍ３、５ｃｍ３、１０ｃｍ３、２０ｃｍ３、３０ｃｍ３、４０ｃｍ３、５０ｃｍ３、６０ｃｍ３、７０ｃｍ３、８０ｃｍ３、９０ｃｍ３、１００ｃｍ３、１５０ｃｍ３、２００ｃｍ３、３００ｃｍ３、５００ｃｍ３、７５０ｃｍ３、１０００ｃｍ３、５０００ｃｍ３、１０，０００ｃｍ３、１００，０００ｃｍ３、１ｍ３、または１０ｍ３より大きくてもよく、またはそれらと等しくてもよい。
【０２２２】
いくつかの実施形態において、可動物体は、およそ３２，０００ｃｍ２、２０，０００ｃｍ２、１０，０００ｃｍ２、１，０００ｃｍ２、５００ｃｍ２、１００ｃｍ２、５０ｃｍ２、１０ｃｍ２、または５ｃｍ２より小さい、またはそれらと等しい設置面積（可動物体により取り囲まれる横方向の断面積を指し得る）を有し得る。逆に、設置面積は、およそ３２，０００ｃｍ２、２０，０００ｃｍ２、１０，０００ｃｍ２、１，０００ｃｍ２、５００ｃｍ２、１００ｃｍ２、５０ｃｍ２、１０ｃｍ２、または５ｃｍ２より大きくてもよく、またはそれらと等しくてもよい。
【０２２３】
いくつかの例において、可動物体は１０００ｋｇ以下の重量を有し得る。可動物体の重量は、およそ１０００ｋｇ、７５０ｋｇ、５００ｋｇ、２００ｋｇ、１５０ｋｇ、１００ｋｇ、８０ｋｇ、７０ｋｇ、６０ｋｇ、５０ｋｇ、４５ｋｇ、４０ｋｇ、３５ｋｇ、３０ｋｇ、２５ｋｇ、２０ｋｇ、１５ｋｇ、１２ｋｇ、１０ｋｇ、９ｋｇ、８ｋｇ、７ｋｇ、６ｋｇ、５ｋｇ、４ｋｇ、３ｋｇ、２ｋｇ、１ｋｇ、０．５ｋｇ、０．１ｋｇ、０．０５ｋｇ、または０．０１ｋｇより軽くてもよく、またはそれらと等しくてもよい。逆に、重量は、およそ１０００ｋｇ、７５０ｋｇ、５００ｋｇ、２００ｋｇ、１５０ｋｇ、１００ｋｇ、８０ｋｇ、７０ｋｇ、６０ｋｇ、５０ｋｇ、４５ｋｇ、４０ｋｇ、３５ｋｇ、３０ｋｇ、２５ｋｇ、２０ｋｇ、１５ｋｇ、１２ｋｇ、１０ｋｇ、９ｋｇ、８ｋｇ、７ｋｇ、６ｋｇ、５ｋｇ、４ｋｇ、３ｋｇ、２ｋｇ、１ｋｇ、０．５ｋｇ、０．１ｋｇ、０．０５ｋｇ、または０．０１ｋｇより重くてもよく、またはそれらと等しくてもよい。
【０２２４】
いくつかの実施形態において、可動物体は、可動物体により搭載される搭載物と相対的に小さくてもよい。搭載物は、以下により詳細に記載されているような積載物および／または支持機構を含み得る。いくつかの例において、荷重に対する可動物体の重量の比は、およそ１：１よりも大きい、それよりも小さい、またはそれと等しくてもよい。いくつかの例において、荷重に対する可動物体の重量の比は、およそ１：１よりも大きい、それよりも小さい、またはそれと等しくてもよい。オプションで、荷重に対する支持機構の重量の比は、およそ１：１よりも大きい、それよりも小さい、またはそれと等しくてもよい。所望されるとき、荷重に対する可動物体の重量の比は、１：２、１：３、１：４、１：５、１：１０より小さくてもよく、またはそれらと等しくてもよく、若しくはさらに小さくてもよい。逆に、荷重に対する可動物体の重量の比は、２：１、３：１、４：１、５：１、１０：１より大きくてもよい、またはそれらと等しくてもよく、若しくはさらに大きいものでもあり得る。
【０２２５】
いくつかの実施形態において、可動物体は低エネルギー消費のものであり得る。例えば、可動物体は、およそ５Ｗ／ｈ、４Ｗ／ｈ、３Ｗ／ｈ、２Ｗ／ｈ、１Ｗ／ｈより少量を、若しくはさらに少量を用い得る。いくつかの例において、可動物体の支持機構は低エネルギー消費のものであり得る。例えば、支持機構は、およそ５Ｗ／ｈ、４Ｗ／ｈ、３Ｗ／ｈ、２Ｗ／ｈ、１Ｗ／ｈより少量を、若しくはさらに少量を用い得る。オプションで、可動物体の積載物は、およそ５Ｗ／ｈ、４Ｗ／ｈ、３Ｗ／ｈ、２Ｗ／ｈ、１Ｗ／ｈより少量を、若しくはさらに少量など低エネルギー消費のものであり得る。
【０２２６】
図１７は、本願発明の複数の実施形態に係る無人航空機（ＵＡＶ）１７００を図示する。ＵＡＶは、本明細書に記載されているような可動物体の例であり得る。ＵＡＶ１７００は、４つのロータ１７０２、１７０４、１７０６および１７０８を有する推進システムを含み得る。任意の数の（例えば、１、２、３、４、５、６、またはそれらより多くの）ロータが設けられ得る。無人航空機の複数のロータ、ロータ組立体、または他の推進システムは、無人航空機が、ホバリングする／位置を維持する、向きを変化させる、および／またはロケーションを変化させることを可能とし得る。向かい合っている複数のロータの複数のシャフト間の距離は、何らかの適切な長さ１７１０であり得る。例えば、長さ１７１０は、２ｍより短くてもよく、またはそれと等しくてもよく、若しくは、５ｍより短くてもよく、またはそれと等しくてもよい。いくつかの実施形態において、長さ１７１０は、４０ｃｍ〜１ｍ、１０ｃｍ〜２ｍ、または５ｃｍ〜５ｍの範囲内であり得る。本明細書におけるＵＡＶについてのいずれの記載も、異なるタイプの可動物体などの可動物体に当てはまり得、またその逆も当てはまる。
【０２２７】
いくつかの実施形態において、可動物体は搭載物を運ぶよう構成され得る。搭載物は、乗客、貨物、器材、器具、およびその他のうち１または複数を含み得る。搭載物は筐体内に設けられ得る。筐体は、可動物体の筐体とは別個であり得、可動物体のための筐体の一部であり得る。代替的に、搭載物には筐体が設けられ得、他方、可動物体は筐体を有さない。代替的に、搭載物の複数の部分、または搭載物全体は筐体なしで設けられ得る。搭載物は、可動物体に対して強固に固定され得る。オプションで、搭載物は、可動物体と相対的に動くことが可能（例えば、可動物体と相対的に並進可能または回転可能）であり得る。
【０２２８】
いくつかの実施形態において、搭載物は積載物を含む。積載物は、何ら動作または機能を実行しないように構成され得る。代替的に、積載物は、機能的な積載物としても知られる動作または機能を実行するよう構成された積載物であり得る。例えば、積載物は、１または複数のターゲットを調査するための１または複数のセンサを含み得る。撮像デバイス（例えば、カメラ）、オーディオ捕捉デバイス（例えば、パラボラマイク）、赤外線画像化デバイス、または紫外線画像化デバイスなど何らかの適切なセンサが、積載物に組み込まれ得る。センサは、静的な感知データ（例えば、写真）または動的な感知データ（例えば、ビデオ）を提供し得る。いくつかの実施形態において、センサは、積載物のターゲットに関する感知データを提供する。代替的に、または組み合わせて、積載物は、複数の信号を１または複数のターゲットへ提供するための１または複数のエミッタを含み得る。照明光源または音源など何らかの適切なエミッタが用いられ得る。いくつかの実施形態において、積載物は、可動物体とは遠隔であるモジュールとの通信などのための１または複数の送受信機を含む。オプションで、積載物は、環境またはターゲットとインタラクトするよう構成され得る。例えば、積載物は、複数の物体を操作可能なロボットアームなどツール、器具、または機構を含み得る。
【０２２９】
オプションで、搭載物は支持機構を含み得る。支持機構は積載物に対して設けられ得、積載物は、直接的に（例えば、可動物体に直接的に接触して）または間接的に（例えば、可動物体に接触せず）支持機構を介して可動物体に結合され得る。逆に、積載物は支持機構を要することなく可動物体に搭載され得る。積載物は、支持機構と一体的に形成され得る。代替的に、積載物は支持機構と解放可能に結合され得る。いくつかの実施形態において、積載物は、１または複数の積載物要素を含み得、複数の積載物要素のうち１または複数は、上記に記載されているように可動物体および／または支持機構と相対的に動くことが可能であり得る。
【０２３０】
支持機構は、可動物体と一体的に形成され得る。代替的に、支持機構は可動物体と解放可能に結合され得る。支持機構は、直接的または間接的に可動物体に結合され得る。支持機構は、積載物に対してサポートを提供し（例えば、積載物の重量の少なくとも一部を運び）得る。支持機構は、積載物の動きを安定化させ得る、および／または方向付け得ることが可能な適切な搭載構造（例えば、ジンバルプラットフォーム）を含み得る。いくつかの実施形態において、支持機構は、可動物体と相対的な積載物の状態（例えば、位置および／または向き）を制御するよう適合され得る。例えば、支持機構は、積載物が可動物体の動きに関わらず適切な基準系と相対的な位置および／または向きを維持するよう、可動物体と相対的に（例えば、１、２、または３つの並進度、および／または１、２、または３つの回転度に関して）に動くよう構成され得る。基準系は固定された基準系（例えば、周囲環境）であり得る。代替的に、基準系は動いている基準系（例えば、可動物体、積載物ターゲット）であり得る。
【０２３１】
いくつかの実施形態において、支持機構は、支持機構および／または可動物体と相対的積載物の動きを可能するよう構成され得る。動きは、（例えば、１、２、または３つの軸に沿った）最大３自由度に関する並進、（例えば、１、２、または３つの軸周りの）最大３自由度に関する回転、またはこれらの何らかの適切な組み合わせであり得る。
【０２３２】
いくつかの例において、支持機構は、支持機構フレーム組立体および支持機構作動組立体を含み得る。支持機構フレーム組立体は、積載物に対して構造的なサポートを提供し得る。支持機構フレーム組立体は、複数の個別の支持機構フレームコンポーネントを含み得、これらのうちいくつかは、互いに相対的に動くことが可能であり得る。支持機構作動組立体は、複数の個別の支持機構フレームコンポーネントの動きを作動させる１または複数のアクチュエータ（例えば、モータ）を含み得る。複数のアクチュエータは、複数の支持機構フレームコンポーネントの動きを同時に可能とし得、または、一時に単一の支持機構フレームコンポーネントの動きを可能するよう構成され得る。複数の支持機構フレームコンポーネントの動きは、積載物の対応する動きを生じさせ得る。例えば、支持機構作動組立体は、１または複数の回転軸（例えば、ロール軸、ピッチ軸、またはヨー軸）周りの１または複数の支持機構フレームコンポーネントの回転を作動させ得る。１または複数の支持機構フレームコンポーネントの回転は積載物を、可動物体と相対的に１または複数の回転軸周りで回転させ得る。代替的に、または組み合わせて、支持機構作動組立体は、１または複数の並進軸に沿った１または複数の支持機構フレームコンポーネントの並進を作動させ得、これにより、可動物体と相対的に１または複数の対応する軸に沿った積載物の並進を生じさせ得る。
【０２３３】
いくつかの実施形態において、固定された基準系（例えば、周囲環境）と相対的な、および／または互いに相対的な可動物体、支持機構、および積載物の動きは、端末により制御され得る。端末は、可動物体、支持機構、および／または積載物から距離を置いたロケーションにおける遠隔制御デバイスであり得る。端末は、支持プラットフォーム上に配置され得、またはそれに貼り付けられ得る。代替的に、端末はハンドヘルドデバイスまたは着用可能なデバイスであり得る。例えば、端末は、スマートフォン、タブレット、ラップトップ、コンピュータ、眼鏡、手袋、ヘルメット、マイク、またはこれらの適切な複数の組み合わせを含み得る。端末は、キーボード、マウス、ジョイスティック、タッチスクリーン、またはディスプレイなどのユーザインタフェースを含み得る。手動で入力されたコマンド、音声制御、ジェスチャ制御、（例えば、端末の動き、ロケーション、または傾きを介した）位置制御など何らかの適切なユーザ入力が、端末とインタラクトするのに用いられ得る。
【０２３４】
端末は、可動物体、支持機構、および／または積載物の何らかの適切な状態を制御するのに用いられ得る。例えば、端末は、可動物体、支持機構、および／または積載物の固定された基準系と相対的な、および／または互いに相対的な位置および／または向きを制御するのに用いられ得る。いくつかの実施形態において、端末は、可動物体、支持機構、および／または支持機構の作動組立体、積載物のセンサ、積載物のエミッタなどの積載物の複数の個々の要素を制御するのに用いられ得る。端末は、可動物体、支持機構、または積載物のうち１または複数と通信を行うよう適合させられた無線通信デバイスを含み得る。
【０２３５】
端末は、可動物体、支持機構、および／または積載物の情報を見るための適切なディスプレイユニットを含み得る。例えば、端末は、位置、並進速度、並進加速度、向き、角速度、角加速度、またはこれらの何らかの適切な組み合わせに関する、可動物体、支持機構、および／または積載物の情報を表示するよう構成され得る。いくつかの実施形態において、端末は、機能的な積載物により提供されるデータ（例えば、カメラまたは他の撮像デバイスにより記録された複数の画像）など積載物により提供される情報を表示し得る。
【０２３６】
オプションで、同じ端末が、可動物体、支持機構、および／または積載物、若しくは可動物体、支持機構、および／または積載物の状態を制御し、加えて、可動物体、支持機構、および／または積載物からの情報を受信および／または表示し得る。例えば、端末は、積載物により捕捉された画像データ、または積載物の位置についての情報を表示している間、環境と相対的な積載物の位置決めを制御し得る。代替的に、異なる複数の端末が異なる複数の機能のために用いられ得る。例えば、第１端末が可動物体、支持機構、および／または積載物の動きまたは状態を制御し得、他方、第２端末が可動物体、支持機構、および／または積載物からの情報を受信および／または表示し得る。例えば、第１端末が、環境と相対的な積載物の位置決めを制御するのに用いられ得、他方、第２端末が、積載物により撮像された画像データを表示し得る。可動物体と、可動物体の制御とデータの受信との両方を行う統合された端末との間で、または可動物体と、可動物体の制御とデータの受信との両方を行う複数の端末との間で、様々な通信モードが利用され得る。例えば、少なくとも２つの異なる通信モードが、可動物体と、可動物体の制御と可動物体からのデータの受信との両方を行う端末との間で形成され得る。
【０２３７】
図１８は、複数の実施形態に係る、支持機構１８０２および積載物１８０４を含む可動物体１８００を例示する。可動物体１８００は航空機として描写されているが、この描写は限定であることを意図されておらず、本明細書で前に記載されているように何らかの適切なタイプの可動物体が用いられ得る。複数の航空機システムの文脈で本明細書に記載されている複数の実施形態のうち何れかが、何らかの適切な可動物体（例えば、ＵＡＶ）に適用され得ることを当業者は理解されよう。いくつかの例において、積載物１８０４は、支持機構１８０２を要することなく可動物体１８００に設けられ得る。可動物体１８００は、複数の推進機構１８０６、感知システム１８０８、および通信システム１８１０を含み得る。
【０２３８】
複数の推進機構１８０６は、前に記載されているように複数のロータ、複数のプロペラ、複数のブレード、複数のエンジン、複数のモータ、複数の車輪、複数の車軸、複数の磁石、複数のノズルのうち１または複数を含み得る。例えば、複数の推進機構１８０６は、本明細書の他の箇所において開示されているように、複数の自動締めつけ式ロータ、複数のロータ組立体、または他の複数の回転式推進ユニットであり得る。可動物体は、１または複数の、２またはそれより多くの、３またはそれより多くの、４またはそれより多くの推進機構を有し得る。複数の推進機構は全て同じタイプのものであり得る。代替的に、１または複数の推進機構は、異なる複数のタイプの推進機構であり得る。複数の推進機構１８０６は、本明細書の他の箇所において記載されているような支持要素（例えば、駆動シャフト）など何らかの適切な手段を用いて可動物体１８００に搭載され得る。複数の推進機構１８０６は、頂部、底部、前部、後部、複数の側部、またはこれらの何らかの適切な組み合わせなど可動物体１８００の何らかの適切な部分に搭載され得る。
【０２３９】
いくつかの実施形態において、複数の推進機構１８０６は、可動物体１８００が可動物体１８００の何らかの水平方向の動きを要することなく（例えば、滑走路を滑走することなく）表面から鉛直方向に離陸する、または表面に鉛直方向に着陸することを可能とし得る。オプションで、複数の推進機構１８０６は、可動物体１８００が特定の位置および／または向きで空中でホバリングすることを可能とするよう動作可能であり得る。複数の推進機構１８００のうち１または複数は、他の複数の推進機構とは独立して制御され得る。代替的に、複数の推進機構１８００は、同時に制御されるよう構成され得る。例えば、可動物体１８００は、揚力および／または推力を可動物体に対して提供し得る複数の水平方向に向けられたロータを有し得る。水平方向に向けられた複数のロータは、鉛直方向の離陸、鉛直方向の着陸、およびホバリング能力を可動物体１８００に対して提供するよう作動させられ得る。いくつかの実施形態において、水平方向の複数のロータのうち１または複数が反時計回り方向に回転し得る間、水平方向に向けられた複数のロータのうち１または複数は時計回り方向に回転し得る。例えば、時計回りのロータの数は、反時計回りのロータの数と等しくてもよい。水平方向に向けられた複数のロータのうちそれぞれの回転速度は、各ロータにより生成される揚力および／または推力を制御するために、およびこれにより、（例えば、最大３つの並進度、および最大３つの回転度に関して）可動物体１８００の空間的配置、速度、および／または加速度を調整するために独立して変化させられ得る。
【０２４０】
感知システム１８０８は、（例えば、最大３つの並進度、および最大３つの回転度に関して）可動物体１８００の空間的配置、速度および／または加速度を感知し得る１または複数のセンサを含み得る。１または複数のセンサは、全地球測位システム（ＧＰＳ）センサ、動きセンサ、慣性センサ、近接センサ、または画像センサを含み得る。感知システム１８０８により提供される感知データは、（例えば、以下に記載されているように、適切なプロセッシングユニットおよび／または制御モジュールを用いて）可動物体１８００の空間的配置、速度、および／または向きを制御するのに用いられ得る。代替的に、感知システム１８０８は、天候条件、可能性のある複数の障害物への近接、複数の地理的特徴のロケーション、複数の人工構造のロケーション、およびその他など、可動物体を取り囲む環境についてのデータを提供するのに用いられ得る。
【０２４１】
通信システム１８１０は、通信システム１８１４を有する端末１８１２との複数の無線信号１８１６を介した通信を可能とする。通信システム１８１０、１８１４は、無線通信のために適切な任意の数の送信機、受信機、および／または送受信機を含み得る。通信は、データが１方向にのみ送信され得るように片方向通信であり得る。例えば、片方向通信は、可動物体１８００のみがデータを端末１８１２へ送信することを伴い得、またはその逆も当てはまる。データは、通信システム１８１０の１または複数の送信機から通信システム１８１２の１または複数の受信機へ送信され得、またはその逆も当てはまる。代替的に、通信は、データが可動物体１８００と端末１８１２との間を両方の方向に送信され得るよう双方向通信であり得る。双方向通信は、通信システム１８１０の１または複数の送信機から通信システム１８１４の１または複数の受信機へデータを送信することを伴い得、またその逆も当てはまる。
【０２４２】
いくつかの実施形態において、端末１８１２は、可動物体１８００、支持機構１８０２、および積載物１８０４のうち１または複数に対して制御データを提供し得、可動物体１８００、支持機構１８０２、および積載物１８０４のうち１または複数から情報（例えば、可動物体、支持機構または積載物の位置および／または動き情報、積載物のカメラにより捕捉された画像データなど積載物により感知されたデータ）を受信し得る。いくつかの例において、端末からの制御データは、可動物体、支持機構、および／または積載物の複数の相対的な位置、複数の動き、複数の作動、または複数の制御のための複数の命令を含み得る。例えば、制御データにより可動物体のロケーションおよび／または向きが（例えば、複数の推進機構１８０６の制御を介して）修正されることになり得、または可動物体と相対的に積載物が（例えば、支持機構１８０２の制御を介して）動くことになり得る。端末からの制御データにより、カメラまたは他の撮像デバイスの動作の制御（例えば、静止画または動画の撮像、ズームインまたはアウト、電源のオンオフ、複数の撮像モードの切り替え、画像解像度の変更、焦点の変更、被写界深度の変更、露出時間の変更、視角または視界の変更）など積載物が制御されることになり得る。いくつかの例において、可動物体、支持機構、および／または積載物からの複数の通信は、（例えば、感知システム１８０８の、または積載物１８０４の）１または複数のセンサからの情報を含み得る。複数の通信は、１または複数の異なるタイプのセンサ（例えば、ＧＰＳセンサ、動きセンサ、慣性センサ、近接センサ、または画像センサ）からの感知された情報を含み得る。そのような情報は可動物体、支持機構、および／または積載物の位置（例えば、ロケーション、向き）、動き、または加速度に関し得る。積載物からのそのような情報は、積載物により捕捉されたデータ、または積載物の感知された状態を含み得る。端末１８１２により送信されて提供される制御データは、可動物体１８００、支持機構１８０２、または積載物１８０４のうち１または複数の状態を制御するよう構成され得る。代替的に、または組み合わせて、支持機構１８０２および積載物１８０４はそれぞれ、端末１８１２が可動物体１８００、支持機構１８０２、および積載物１８０４のうちそれぞれと独立して通信を行い得るよう、またそれぞれを制御出来るよう端末と通信を行うよう構成された通信モジュールを含み得る。
【０２４３】
いくつかの実施形態において、可動物体１８００は、端末１８１２に加えて、または端末１８１２の代わりに他の遠隔デバイスと通信を行うよう構成され得る。また端末１８１２は、可動物体１８００のみならず他の遠隔デバイスとも通信を行うよう構成され得る。例えば、可動物体１８００および／または端末１８１２は、他の可動物体、若しくは他の可動物体の支持機構または積載物と通信を行い得る。所望されるとき、遠隔デバイスは第２端末または他のコンピューティングデバイス（例えば、コンピュータ、ラップトップ、タブレット、スマートフォン、または他のモバイルデバイス）であり得る。遠隔デバイスは、可動物体１８００へデータを送信し、可動物体１８００からデータを受信し、端末１８１２へデータを送信し、および／または端末１８１２からデータを受信するよう構成され得る。オプションで、遠隔デバイスは、可動物体１８００および／または端末１８１２から受信したデータがウェブサイトまたはサーバにアップロードされ得るようインターネットまたは他の遠距離通信ネットワークに接続され得る。
【０２４４】
図１９は、複数の実施形態に係る、可動物体を制御するためのシステム１９００のブロック図を用いた概略図である。システム１９００は、本明細書に開示される複数のシステム、デバイス、および方法の何らかの適切な実施形態と組み合わせて用いられ得る。システム１９００は、感知モジュール１９０２、プロセッシングユニット１９０４、非一時的コンピュータ可読媒体１９０６、制御モジュール１９０８、および通信モジュール１９１０を含み得る。
【０２４５】
感知モジュール１９０２は、異なる複数のやり方で複数の可動物体に関連する情報を収集する異なる複数のタイプのセンサを利用し得る。異なる複数のタイプのセンサが、異なる複数のタイプの信号、または異なる複数の発信源からの複数の信号を感知し得る。例えば、複数のセンサは、慣性センサ、ＧＰＳセンサ、近接センサ（例えば、ライダー）、またはビジョン／画像センサ（例えば、カメラ）を含み得る。感知モジュール１９０２は、複数のプロセッサを有するプロセッシングユニット１９０４に操作可能に結合され得る。いくつかの実施形態において、感知モジュールは、感知データを直接的に適切な外部デバイスまたはシステムへ送信するよう構成された送信モジュール１９１２（例えば、Ｗｉ−Ｆｉ（登録商標）画像送信モジュール）に操作可能に結合され得る。例えば、送信モジュール１９１２は、感知モジュール１９０２のカメラにより撮像された複数の画像を遠隔端末へ送信するのに用いられ得る。
【０２４６】
プロセッシングユニット１９０４は、プログラマブルプロセッサ（例えば、中央演算処理装置（ＣＰＵ）など１または複数のプロセッサを有し得る。プロセッシングユニット１９０４は、非一時的コンピュータ可読媒体１９０６に操作可能に結合され得る。非一時的コンピュータ可読媒体１９０６は、１または複数のステップを実行するためにプロセッシングユニット１９０４により実行可能であるロジック、コード、および／または複数のプログラム命令を格納し得る。非一時的コンピュータ可読媒体は、１または複数のメモリユニット（例えば、ＳＤカードまたはランダムアクセスメモリ（ＲＡＭ）など取り外し可能な媒体または外部ストレージ）を含み得る。いくつかの実施形態において、感知モジュール１９０２からのデータは、非一時的コンピュータ可読媒体１９０６の複数のメモリユニットへ直接的に伝達され、その中に格納され得る。非一時的コンピュータ可読媒体１９０６の複数のメモリユニットは、本明細書に記載されている複数の方法の何らかの適切な実施形態を実行するべくプロセッシングユニット１９０４により実行可能なロジック、コード、および／または複数のプログラム命令を格納し得る。例えば、プロセッシングユニット１９０４は、プロセッシングユニット１９０４の１または複数のプロセッサに、感知モジュールにより生成された感知データを分析させる複数の命令を実行するよう構成され得る。複数のメモリユニットは、プロセッシングユニット１９０４により処理されることになる感知モジュールからの感知データを格納し得る。いくつかの実施形態において、非一時的コンピュータ可読媒体１９０６の複数のメモリユニットは、プロセッシングユニット１９０４により生成される複数の処理結果を格納するのに用いられ得る。
【０２４７】
いくつかの実施形態において、プロセッシングユニット１９０４は、可動物体の状態を制御するよう構成された制御モジュール１９０８に操作可能に結合され得る。例えば、制御モジュール１９０８は、６自由度に関して可動物体の空間的配置、速度、および／または加速度を調整するよう可動物体の複数の推進機構を制御するよう構成され得る。代替的に、または組み合わせて、制御モジュール１９０８は、支持機構、積載物、または感知モジュールの状態のうち１または複数を制御し得る。
【０２４８】
プロセッシングユニット１９０４は、１または複数の外部デバイス（例えば、端末、ディスプレイデバイス、または他のリモートコントローラ）へデータを送信し、および／またはデータをそれらから受信するよう構成された通信モジュール１９１０に操作可能に結合され得る。有線通信または無線通信など何らかの適切な通信手段が用いられ得る。例えば、通信モジュール１９１０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、赤外線、無線、ＷｉＦｉ（登録商標）、ポイントツーポイント（Ｐ２Ｐ）ネットワーク、遠距離通信ネットワーク、クラウド通信、およびその他のうち１または複数を利用し得る。オプションで、タワー、衛星、移動局などの複数の中継局が用いられ得る。複数の無線通信は近接性依存または近接性非依存であり得る。いくつかの実施形態において、複数の通信のために見通し線は要求されてもよくされなくてもよい。通信モジュール１９１０は、感知モジュール１９０２からの感知データ、プロセッシングユニット１９０４により生成された複数の処理結果、予め定められた制御データ、端末またはリモートコントローラからの複数のユーザコマンド、およびその他のうち１または複数を送信し得、および／またはそれらを受信し得る。
【０２４９】
システム１９００の複数のコンポーネントは、何らかの適切な構成で配置され得る。例えば、システム１９００の複数のコンポーネントのうち１または複数は、可動物体、支持機構、積載物、端末、感知システム、または上記されたもののうち１または複数と通信を行っている追加の外部デバイスの上に配置され得る。追加的に、図１９は単一のプロセッシングユニット１９０４および単一の非一時的コンピュータ可読媒体１９０６を描写しているが、このことは限定するよう意図されていないこと、およびシステム１９００が複数のプロセッシングユニットおよび／または非一時的コンピュータ可読媒体を含み得ることを当業者は理解されよう。いくつかの実施形態において、複数のプロセッシングユニットおよび／または非一時的コンピュータ可読媒体のうち１または複数は、システム１９００により実行される処理および／またはメモリ機能の何らかの適切な態様が、可動物体、支持機構、積載物、端末、感知モジュール、上記されたもののうち１または複数と通信を行っている追加の外部デバイス、またはこれらの適切な複数の組み合わせ上など異なる複数のロケーションのうち１または複数で起こり得るよう、上記で記載した複数のロケーションに位置付けられ得る。
【０２５０】
本明細書で用いられているように、Ａおよび／またはＢとは、ＡまたはＢのうち１または複数、ＡおよびＢなどこれらの組み合わせを包含する。
【０２５１】
本願発明の好ましい複数の実施形態が本明細書に示され記載されてきたが、当業者にとっては、そのような複数の実施形態が例のみによって提供されていることが明らかとなろう。当業者は、本願発明から逸脱することなく多数の変形例、変更例、および置換例が思いつかれよう。本明細書に記載されている本願発明の複数の実施形態の様々な代替例が本願発明を実施するにあたり採用されてもよいことが理解されるべきである。本明細書に記載されている複数の実施形態の多数の異なる組み合わせが可能であり、そのような組み合わせは、本開示の一部と見なされる。加えて、本明細書における何らかの一実施形態との関連で説明される全ての特徴は、本明細書における他の複数の実施形態での使用に容易に適合させられ得る。以下の請求項が本願発明の範囲を規定すること、これら請求項およびそれらの同等物の範囲内の複数の方法および構造が、それらにより網羅されることが意図されている。
（項目１）
複数のセンサを用いて可動物体に関する初期化情報を決定するための方法であり、
上記可動物体が動作を開始したことを１または複数のプロセッサの補助を受けて検出するステップと、
上記可動物体により搭載される少なくとも１つの慣性センサから慣性データを上記１または複数のプロセッサにおいて受信するステップと、
上記可動物体により搭載される少なくとも２つの画像センサから画像データを上記１または複数のプロセッサにおいて受信するステップと、
上記慣性データおよび上記画像データに基づいて上記可動物体に関する上記初期化情報を上記１または複数のプロセッサの補助を受けて決定するステップとを備え、
上記初期化情報は、上記可動物体が動作を開始したときの、上記可動物体の位置、上記可動物体の速度、または重力方向に対する上記可動物体の向きのうち１または複数を含む、方法。
（項目２）
上記可動物体は無人航空機（ＵＡＶ）である、項目１に記載の方法。
（項目３）
上記ＵＡＶが動作を開始したことを検出する上記ステップは、上記ＵＡＶが飛行を開始したことを検出することを有する、項目２に記載の方法。
（項目４）
上記ＵＡＶは、自由落下状態から飛行を開始する、項目３に記載の方法。
（項目５）
上記ＵＡＶは、ユーザにより投げられることにより飛行を開始する、項目３に記載の方法。
（項目６）
上記ＵＡＶが動作を開始したことを検出する上記ステップは、上記ＵＡＶが面から離陸したことを検出するステップを有する、項目２に記載の方法。
（項目７）
上記面は傾斜面である、項目６に記載の方法。
（項目８）
上記面は非傾斜面である、項目６に記載の方法。
（項目９）
上記慣性データは、上記可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む、項目１に記載の方法。
（項目１０）
上記慣性データは、上記可動物体が動作を開始したときから開始する時間間隔に亘って上記少なくとも１つの慣性センサにより取得される１または複数の測定値を含む、項目１に記載の方法。
（項目１１）
上記画像データは、上記可動物体の周囲の環境の１または複数の画像を含む、項目１に記載の方法。
（項目１２）
上記画像データは、上記可動物体が動作を開始したときから開始する時間間隔に亘って上記少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含む、項目１に記載の方法。
（項目１３）
決定する上記ステップは、特徴点検出アルゴリズムを用いて上記１または複数の画像を処理するステップを有する、項目１２に記載の方法。
（項目１４）
決定する上記ステップは、オプティカルフローアルゴリズムを用いて上記１または複数の画像を処理するステップを有する、項目１２に記載の方法。
（項目１５）
決定する上記ステップは、特徴マッチングアルゴリズムを用いて上記１または複数の画像を処理するステップを有する、項目１２に記載の方法。
（項目１６）
決定する上記ステップは、上記少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、上記少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有する、項目１２に記載の方法。
（項目１７）
上記少なくとも２つの画像センサは、複数の画像を同期的に取得するよう構成されている、項目１に記載の方法。
（項目１８）
上記少なくとも２つの画像センサは、複数の画像を非同期的に取得するよう構成されている、項目１に記載の方法。
（項目１９）
上記少なくとも２つの画像センサは、切り替え機構を介して上記１または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、上記切り替え機構は、一時に単一の画像センササブセットを上記１または複数のプロセッサへ結合するよう構成されている、項目１に記載の方法。
（項目２０）
上記画像データを受信する上記ステップは、
上記切り替え機構を介して第１画像センササブセットを上記１または複数のプロセッサに結合するステップと、
上記第１画像センササブセットからの画像データを受信するステップと、
上記切り替え機構を介して第２画像センササブセットを上記１または複数のプロセッサに結合するステップと、
上記第２画像センササブセットから画像データを受信するステップと
を有する、項目１９に記載の方法。
（項目２１）
上記初期化情報はさらに、上記可動物体が動作を開始したときの上記可動物体の位置および速度を含む、項目１に記載の方法。
（項目２２）
決定する上記ステップは、
上記慣性データを用いて上記初期化情報の第１推定値を生成するステップと、
上記画像データを用いて上記初期化情報の第２推定値を生成するステップと、
上記第１および第２推定値を組み合わせて上記可動物体に関する上記初期化情報を取得するステップと
を有する、項目１に記載の方法。
（項目２３）
上記初期化情報は、線形最適化アルゴリズムを用いて決定される、項目１に記載の方法。
（項目２４）
上記初期化情報は、上記慣性データおよび上記画像データのみに基づいて決定される、項目１に記載の方法。
（項目２５）
上記重力方向に対する上記可動物体の上記向きを用いて、上記少なくとも１つの慣性センサから取得した続く慣性データを補正するステップをさらに備える、項目１に記載の方法。
（項目２６）
複数のセンサを用いて可動物体に関する初期化情報を決定するためのシステムであり、
上記可動物体により搭載される少なくとも１つの慣性センサと、
上記可動物体により搭載される少なくとも２つの画像センサと、
上記１または複数のプロセッサと
を備え、
上記１または複数のプロセッサは、個々に、または集合的に、
上記可動物体が動作を開始したことを検出し、
上記少なくとも１つの慣性センサから慣性データを受信し、
上記少なくとも２つの画像センサから画像データを受信し、
上記慣性データおよび上記画像データに基づいて上記可動物体に関する上記初期化情報を決定する
よう構成され、
上記初期化情報は、上記可動物体が動作を開始したときの、上記可動物体の位置、上記可動物体の速度、または重力方向に対する上記可動物体の向きのうち１または複数を含む、システム。
（項目２７）
複数の実行可能命令を格納した１または複数の非一時的コンピュータ可読記憶媒体であり、
上記複数の実行可能命令は、可動物体に関する初期化情報を決定するためのコンピュータシステムの上記１または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、
上記可動物体が動作を開始したことを検出させ、
上記可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信させ、
上記可動物体により搭載される少なくとも２つの画像センサから画像データを受信させ、
上記慣性データおよび上記画像データに基づいて上記可動物体に関する上記初期化情報を決定させ、
上記初期化情報は、上記可動物体が動作を開始したときの、上記可動物体の位置、上記可動物体の速度、または重力方向に対する上記可動物体の向きのうち１または複数を含む、１または複数の非一時的コンピュータ可読記憶媒体。
（項目２８）
複数のセンサを用いて可動物体に関するエラー回復を実行するための方法であり、
上記可動物体の動作の間にエラーが生じたことを１または複数のプロセッサの補助を受けて検出するステップと、
上記可動物体により搭載される少なくとも１つの慣性センサから慣性データを上記１または複数のプロセッサにおいて受信するステップと、
上記可動物体により搭載される少なくとも２つの画像センサから画像データを上記１または複数のプロセッサにおいて受信するステップと、
上記慣性データおよび上記画像データに基づいて上記可動物体に関する再初期化情報を上記１または複数のプロセッサの補助を受けて決定するステップと
を備え、
上記再初期化情報は、上記エラーが生じたときの、上記可動物体の位置、上記可動物体の速度、または重力方向に対する上記可動物体の向きのうち１または複数を含む、方法。
（項目２９）
上記可動物体は無人航空機（ＵＡＶ）である、項目２８に記載の方法。
（項目３０）
上記エラーは、上記少なくとも１つの慣性センサまたは上記少なくとも２つの画像センサのうち１または複数における機能不良を含む、項目２８に記載の方法。
（項目３１）
上記エラーは、上記可動物体により用いられる状態推定モジュールにおける機能不良を含む、項目２８に記載の方法。
（項目３２）
上記状態推定モジュールは反復状態推定アルゴリズムを用い、上記機能不良は、上記反復状態推定アルゴリズムが解に収束し損ねることを含む、項目３１に記載の方法。
（項目３３）
上記再初期化情報を用いて上記反復状態推定アルゴリズムを再初期化するステップをさらに備える、項目３２に記載の方法。
（項目３４）
上記慣性データは、上記可動物体の３次元加速度および３次元角速度を示す１または複数の測定値を含む、項目２８に記載の方法。
（項目３５）
上記慣性データは、上記エラーが生じたときから開始する時間間隔に亘って上記少なくとも１つの慣性センサにより取得される１または複数の測定値を含む、項目２８に記載の方法。
（項目３６）
上記画像データは、上記可動物体の周囲の環境の１または複数の画像を含む、項目２８に記載の方法。
（項目３７）
上記画像データは、エラーが生じたときから開始する時間間隔に亘って上記少なくとも２つの画像センサのうちそれぞれにより取得される１または複数の画像を含む、項目２８に記載の方法。
（項目３８）
決定する上記ステップは、特徴点検出アルゴリズムを用いて上記１または複数の画像を処理するステップを有する、項目３７に記載の方法。
（項目３９）
決定する上記ステップは、オプティカルフローアルゴリズムを用いて上記１または複数の画像を処理するステップを有する、項目３７に記載の方法。
（項目４０）
決定する上記ステップは、特徴マッチングアルゴリズムを用いて上記１または複数の画像を処理するステップを有する、項目３７に記載の方法。
（項目４１）
決定する上記ステップは、上記少なくとも２つの画像センサのうち第１画像センサにより取得された１または複数の画像を、上記少なくとも２つの画像センサのうち第２画像センサにより取得された１または複数の画像と比較するステップを有する、項目３７に記載の方法。
（項目４２）
上記少なくとも２つの画像センサは、複数の画像を同期的に取得するよう構成されている、項目２８に記載の方法。
（項目４３）
上記少なくとも２つの画像センサは、複数の画像を非同期的に取得するよう構成されている、項目２８に記載の方法。
（項目４４）
上記少なくとも２つの画像センサは、切り替え機構を介して上記１または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、上記切り替え機構は、一時に単一の画像センササブセットを上記１または複数のプロセッサへ結合するよう構成されている、項目２８に記載の方法。
（項目４５）
上記画像データを受信する上記ステップは、
上記切り替え機構を介して第１画像センササブセットを上記１または複数のプロセッサに結合するステップと、
上記第１画像センササブセットからの画像データを受信するステップと、
上記切り替え機構を介して第２画像センササブセットを上記１または複数のプロセッサに結合するステップと、
上記第２画像センササブセットから画像データを受信するステップとを有する、
項目４４に記載の方法。
（項目４６）
上記再初期化情報はさらに、上記エラーが生じたときの上記可動物体の位置および速度を含む、項目２８に記載の方法。
（項目４７）
決定する上記ステップは、
上記慣性データを用いて上記再初期化情報の第１推定値を生成するステップと、
上記画像データを用いて上記再初期化情報の第２推定値を生成するステップと、
上記第１および第２推定値を組み合わせて上記可動物体に関する上記再初期化情報を取得するステップと
を有する、項目２８に記載の方法。
（項目４８）
上記再初期化情報は、線形最適化アルゴリズムを用いて評価される、項目２８に記載の方法。
（項目４９）
上記再初期化情報は、上記慣性データおよび上記画像データのみに基づいて評価される、項目２８に記載の方法。
（項目５０）
上記重力方向に対する上記可動物体の上記向きを用いて、上記少なくとも１つの慣性センサから取得した続く慣性データを補正するステップをさらに備える、項目２８に記載の方法。
（項目５１）
複数のセンサを用いて可動物体に関するエラー回復を実行するためのシステムであり、
上記可動物体により搭載される少なくとも１つの慣性センサと、
上記可動物体により搭載される少なくとも２つの画像センサと、
１または複数のプロセッサと
を備え、
上記１または複数のプロセッサは、個々に、または集合的に、
上記可動物体の動作の間にエラーが生じたことを検出し、
上記少なくとも１つの慣性センサから慣性データを受信し、
上記少なくとも２つの画像センサから画像データを受信し、
上記慣性データおよび上記画像データに基づいて上記可動物体に関する再初期化情報を決定する
よう構成され、
上記再初期化情報は、エラーが生じたときの、上記可動物体の位置、上記可動物体の速度、または重力方向に対する上記可動物体の向きのうち１または複数を含む、システム。
（項目５２）
複数の実行可能命令を格納した１または複数の非一時的コンピュータ可読記憶媒体であり、
上記複数の実行可能命令は、可動物体に関するエラー回復を実行するためのコンピュータシステムの上記１または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、
上記可動物体の動作の間にエラーが生じたことを検出させ、
上記可動物体により搭載される少なくとも１つの慣性センサから慣性データを受信させ、
上記可動物体により搭載される少なくとも２つの画像センサから画像データを受信させ、
上記慣性データおよび上記画像データに基づいて上記可動物体に関する再初期化情報を決定させ、
上記再初期化情報は、上記エラーが生じたときの、上記可動物体の位置、上記可動物体の速度、または重力方向に対する上記可動物体の向きのうち１または複数を含む、１または複数の非一時的コンピュータ可読記憶媒体。
【図１】
2019023865.tif 000111
【図２】
2019023865.tif 000112
【図３】
2019023865.tif 000113
【図４】
2019023865.tif 000114
【図５】
2019023865.tif 000115
【図６】
2019023865.tif 000116
【図７】
2019023865.tif 000117
【図８】
2019023865.tif 000118
【図９】
2019023865.tif 000119
【図１０】
2019023865.tif 000120
【図１１】
2019023865.tif 000121
【図１２】
2019023865.tif 000122
【図１３】
2019023865.tif 000123
【図１４】
2019023865.tif 000124
【図１５】
2019023865.tif 000125
【図１６】
2019023865.tif 000126
【図１７】
2019023865.tif 000127
【図１８】
2019023865.tif 000128
【図１９】
2019023865.tif 000129
【図２０】
2019023865.tif 000130
【図２１】
2019023865.tif 000131
【図２２】
2019023865.tif 000132