本開示は、無人航空機(UAV)など可動物体の制御および動作に関する複数のシステム、方法、およびデバイスを提供する。いくつかの実施形態において、本明細書に記載されている複数のシステム、方法、およびデバイスは、高められた正確性および柔軟性でUAVの動作に関連する情報を決定することを可能するセンサ融合を利用する。例えば、1または複数の慣性センサおよび1または複数の画像センサの融合が、初期化、エラー回復、パラメータ較正、および/または状態推定を向上させるのに用いられ得る。これらの手順から取得される情報は、UAVの動作、例えば、自律または半自律ナビゲーション、障害物回避、マッピング、およびその他を容易にするために用いられ得る。
一態様において、複数のセンサを用いて可動物体に関する初期化情報を決定するための方法が提供される。方法は、可動物体が動作を開始したことを1または複数のプロセッサの補助を受けて検出するステップと、可動物体により搭載される少なくとも1つの慣性センサから慣性データを1または複数のプロセッサにおいて受信するステップと、可動物体により搭載される少なくとも2つの画像センサから画像データを1または複数のプロセッサにおいて受信するステップと、慣性データおよび画像データに基づいて可動物体に関する初期化情報を1または複数のプロセッサの補助を受けて決定するステップとを備え、初期化情報は、可動物体が動作を開始したときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち1または複数を含む。
いくつかの実施形態において、可動物体は無人航空機(UAV)である。UAVが動作を開始したことを検出するステップは、UAVが飛行を開始したことを検出することを有し得る。UAVは、自由落下状態から、および/またはユーザにより投げられることにより飛行を開始し得る。UAVが動作を開始したことを検出するステップは、UAVが面から離陸したことを検出するステップを有し得、面は傾斜面または非傾斜面であり得る。
いくつかの実施形態において、慣性データは、可動物体の3次元加速度および3次元角速度を示す1または複数の測定値を含む。慣性データは、可動物体が動作を開始したときから開始する時間間隔に亘って少なくとも1つの慣性センサにより取得される1または複数の測定値を含み得る。
いくつかの実施形態において、画像データは、可動物体の周囲の環境の1または複数の画像を含む。画像データは、可動物体が動作を開始したときから開始する時間間隔に亘って少なくとも2つの画像センサのうちそれぞれにより取得される1または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて1または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも2つの画像センサのうち第1画像センサにより取得された1または複数の画像を、少なくとも2つの画像センサのうち第2画像センサにより取得された1または複数の画像と比較するステップを有し得る。
いくつかの実施形態において、少なくとも2つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも2つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも2つの画像センサは、切り替え機構を介して1または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを1または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第1画像センササブセットを1または複数のプロセッサに結合するステップと、第1画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第2画像センササブセットを1または複数のプロセッサに結合するステップと、第2画像センササブセットから画像データを受信するステップとを有し得る。
いくつかの実施形態において、初期化情報はさらに、可動物体が動作を開始したときの可動物体の位置および速度を含む。決定するステップは、慣性データを用いて初期化情報の第1推定値を生成するステップと、画像データを用いて初期化情報の第2推定値を生成するステップと、第1推定値および第2推定値を組み合わせて可動物体に関する初期化情報を取得するステップとを有し得る。初期化情報は、線形最適化アルゴリズムを用いて決定され得る。初期化情報は、慣性データおよび画像データのみに基づいて決定され得る。
いくつかの実施形態において、方法はさらに、重力方向に対する可動物体の向きを用いて、少なくとも1つの慣性センサから取得した続く慣性データを補正するステップを備える。
他の態様において、複数のセンサを用いて可動物体に関する初期化情報を決定するためのシステムが提供される。システムは、可動物体により搭載される少なくとも1つの慣性センサと、可動物体により搭載される少なくとも2つの画像センサと、1または複数のプロセッサとを備え得、1または複数のプロセッサは、個々に、または集合的に、可動物体が動作を開始したことを検出し、少なくとも1つの慣性センサから慣性データを受信し、少なくとも2つの画像センサから画像データを受信し、慣性データおよび画像データに基づいて可動物体に関する初期化情報を決定するよう構成され、初期化情報は、可動物体が動作を開始したときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち1または複数を含む。
他の態様において、1または複数の非一時的コンピュータ可読記憶媒体が提供される。1または複数の非一時的コンピュータ可読記憶媒体は複数の実行可能命令を格納し得、複数の実行可能命令は、可動物体に関する初期化情報を決定するためのコンピュータシステムの1または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、可動物体が動作を開始したことを検出させ、可動物体により搭載される少なくとも1つの慣性センサから慣性データを受信させ、可動物体により搭載される少なくとも2つの画像センサから画像データを受信させ、慣性データおよび画像データに基づいて可動物体に関する初期化情報を決定させ、初期化情報は、可動物体が動作を開始したときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち1または複数を含む。
他の態様において、複数のセンサを用いて可動物体に関するエラー回復を実行するための方法が提供される。方法は、可動物体の動作の間にエラーが生じたことを1または複数のプロセッサの補助を受けて検出するステップと、可動物体により搭載される少なくとも1つの慣性センサから慣性データを1または複数のプロセッサにおいて受信するステップと、可動物体により搭載される少なくとも2つの画像センサから画像データを1または複数のプロセッサにおいて受信するステップと、慣性データおよび画像データに基づいて可動物体に関する再初期化情報を1または複数のプロセッサの補助を受けて決定するステップとを備え得、再初期化情報は、エラーが生じたときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち1または複数を含む。
いくつかの実施形態において、可動物体は無人航空機(UAV)である。
いくつかの実施形態において、エラーは、少なくとも1つの慣性センサまたは少なくとも2つの画像センサのうち1または複数における機能不良を含む。エラーは、可動物体により用いられる状態推定モジュールにおける機能不良を含み得る。状態推定モジュールは反復状態推定アルゴリズムを用い得、機能不良は、反復状態推定アルゴリズムが解に収束し損ねることを含み得る。方法はさらに、再初期化情報を用いて反復状態推定アルゴリズムを再初期化するステップを備え得る。
いくつかの実施形態において、慣性データは、可動物体の3次元加速度および3次元角速度を示す1または複数の測定値を含む。慣性データは、エラーが生じたときから開始する時間間隔に亘って少なくとも1つの慣性センサにより取得される1または複数の測定値を含み得る。
いくつかの実施形態において、画像データは、可動物体の周囲の環境の1または複数の画像を含む。画像データは、エラーが生じたときから開始する時間間隔に亘って少なくとも2つの画像センサのうちそれぞれにより取得される1または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて1または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも2つの画像センサのうち第1画像センサにより取得された1または複数の画像を、少なくとも2つの画像センサのうち第2画像センサにより取得された1または複数の画像と比較するステップを有し得る。
いくつかの実施形態において、少なくとも2つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも2つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも2つの画像センサは、切り替え機構を介して1または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを1または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第1画像センササブセットを1または複数のプロセッサに結合するステップと、第1画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第2画像センササブセットを1または複数のプロセッサに結合するステップと、第2画像センササブセットから画像データを受信するステップとを有し得る。
いくつかの実施形態において、再初期化情報はさらに、エラーが生じたときの可動物体の位置および速度を含む。決定するステップは、慣性データを用いて再初期化情報の第1推定値を生成するステップと、画像データを用いて再初期化情報の第2推定値を生成するステップと、第1推定値および第2推定値を組み合わせて可動物体に関する再初期化情報を取得するステップとを有し得る。再初期化情報は、線形最適化アルゴリズムを用いて決定され得る。再初期化情報は、慣性データおよび画像データのみに基づいて決定され得る。
いくつかの実施形態において、方法はさらに、重力方向に対する可動物体の向きを用いて、少なくとも1つの慣性センサから取得した続く慣性データを補正するステップを備える。
他の態様において、複数のセンサを用いて可動物体に関するエラー回復を実行するためのシステムが提供される。システムは、可動物体により搭載される少なくとも1つの慣性センサと、可動物体により搭載される少なくとも2つの画像センサと、1または複数のプロセッサとを備え得、1または複数のプロセッサは、個々に、または集合的に、可動物体の動作の間にエラーが生じたことを検出し、少なくとも1つの慣性センサから慣性データを受信し、少なくとも2つの画像センサから画像データを受信し、慣性データおよび画像データに基づいて可動物体に関する再初期化情報を決定するよう構成され、再初期化情報は、エラーが生じたときの可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち1または複数を含む。
他の態様において、1または複数の非一時的コンピュータ可読記憶媒体が提供される。1または複数の非一時的コンピュータ可読記憶媒体は、複数の実行可能命令を格納し得、複数の実行可能命令は、可動物体に関するエラー回復を実行するためのコンピュータシステムの1または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、可動物体の動作の間にエラーが生じたことを検出させ、可動物体により搭載される少なくとも1つの慣性センサから慣性データを受信させ、可動物体により搭載される少なくとも2つの画像センサから画像データを受信させ、慣性データおよび画像データに基づいて可動物体に関する再初期化情報を決定させ、再初期化情報は、エラーが生じたときの、可動物体の位置、可動物体の速度、または重力方向に対する可動物体の向きのうち1または複数を含む。
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体の1または複数の外部パラメータを較正するための方法が提供される。方法は、1または複数の外部パラメータは、可動物体により搭載される少なくとも2つの画像センサ間の複数の空間的関係を含む1または複数の外部パラメータに関する複数の初期値を1または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に可動物体により搭載される少なくとも1つの慣性センサから慣性データを1または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に可動物体により搭載される少なくとも2つの画像センサから画像データを1または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に反復最適化アルゴリズムを用いて複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータに関する複数の推定値を1または複数のプロセッサの補助を受けて決定するステップとを備え得る。
いくつかの実施形態において、可動物体は無人航空機(UAV)である。UAVの動作は、UAVが飛行していること、および/または電力供給されていることを含み得る。
いくつかの実施形態において、複数の空間的関係は、少なくとも2つの画像センサの相対的な複数の位置および相対的な複数の向きを含む。少なくとも2つの画像センサの相対的な複数の位置および相対的な複数の向きは、少なくとも1つの慣性センサに関連して決定され得る。
いくつかの実施形態において、1または複数の外部パラメータに関する複数の初期値は、可動物体の動作の前に決定される。複数の初期値は、可動物体の動作の前に反復最適化アルゴリズムを用いて決定され得る。複数の初期値は、可動物体の動作の前にユーザにより測定され得る。1または複数の外部パラメータに関する複数の初期値は、可動物体に関連付けられたメモリデバイスから受信され得る。いくつかの実施形態において、少なくとも2つの画像センサは、1または複数の固定されたロケーションにおいて可動物体に結合され、1または複数の外部パラメータに関する複数の初期値は、1または複数の固定されたロケーションに基づいて決定される。1または複数の外部パラメータに関する複数の初期値は、1または複数の外部パラメータの複数の実際値からおよそ2cm以下だけ離れていてもよい。1または複数の外部パラメータに関する複数の初期値は、1または複数の外部パラメータの複数の実際値からおよそ2度以下離れていてもよい。
いくつかの実施形態において、慣性データは、可動物体の3次元加速度および3次元角速度を示す1または複数の測定値を含む。慣性データは、少なくとも2つの異なる時点に亘って少なくとも1つの慣性センサにより取得される1または複数の測定値を含み得る。
いくつかの実施形態において、画像データは、可動物体の周囲の環境の1または複数の画像を含む。画像データは、少なくとも2つの異なる時点に亘って少なくとも2つの画像センサのうちそれぞれにより取得される1または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて1または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも2つの画像センサのうち第1画像センサにより取得された1または複数の画像を、少なくとも2つの画像センサのうち第2画像センサにより取得された1または複数の画像と比較するステップを有し得る。
いくつかの実施形態において、少なくとも2つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも2つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも2つの画像センサは、切り替え機構を介して1または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを1または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第1画像センササブセットを1または複数のプロセッサに結合するステップと、第1画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第2画像センササブセットを1または複数のプロセッサに結合するステップと、第2画像センササブセットから画像データを受信するステップとを有し得る。
いくつかの実施形態において、反復最適化アルゴリズムは非線形最適化アルゴリズムである。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータの最大事後確率(MAP)推定値を算出することを含み得る。いくつかの実施形態において、慣性データおよび画像データは、1または複数の外部パラメータに関する複数の推定値を決定するのに用いられる唯一のセンサデータである。
いくつかの実施形態において、方法はさらに、1または複数の外部パラメータに関する複数の推定値に基づいて可動物体の状態を決定するステップを備える。状態は、可動物体の位置、向き、または速度のうち1または複数を含み得る。可動物体の状態は、可動物体の動作の間の前の時点における可動物体の前の状態に関連して決定され得る。前の時点は、初期化または再初期化が生じた時点であり得る。
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体の1または複数の外部パラメータを較正するためのシステムが提供される。システムは、可動物体により搭載される少なくとも1つの慣性センサと、可動物体により搭載される少なくとも2つの画像センサと、1または複数のプロセッサとを備え得、1または複数のプロセッサは、個々に、または集合的に、少なくとも2つの画像センサ間の複数の空間的関係を含む1または複数の外部パラメータに関する複数の初期値を受信し、可動物体の動作の間に少なくとも1つの慣性センサから慣性データを受信し、可動物体の動作の間に少なくとも2つの画像センサから画像データを受信し、可動物体の動作の間に反復最適化アルゴリズムを用いて複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータに関する複数の推定値を決定するよう構成され得る。
他の態様において、1または複数の非一時的コンピュータ可読記憶媒体が提供される。1または複数の非一時的コンピュータ可読記憶媒体は、複数の実行可能命令を格納し得、複数の実行可能命令は可動物体の1または複数の外部パラメータを較正するためのコンピュータシステムの1または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、可動物体により搭載される少なくとも2つの画像センサ間の複数の空間的関係を含む1または複数の外部パラメータに関する複数の初期値を受信させ、可動物体の動作の間に可動物体により搭載される少なくとも1つの慣性センサから慣性データを受信させ、可動物体の動作の間に少なくとも2つの画像センサから画像データを受信させ、可動物体の動作の間に反復最適化アルゴリズムを用いて複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータに関する複数の推定値を決定させる。
他の態様において、初期構成を有する複数のセンサを有する可動物体の1または複数の外部パラメータを較正するための方法が提供される。方法は、少なくとも1つの慣性センサと少なくとも2つの画像センサとを含む複数のセンサの初期構成が修正されたことを1または複数のプロセッサの補助を受けて検出するステップと、可動物体の動作の間に少なくとも1つの慣性センサから慣性データを1または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に少なくとも2つの画像センサから画像データを1または複数のプロセッサにおいて受信するステップと、初期構成が修正されたことの検出に応答して、慣性データおよび画像データに基づいて1または複数の外部パラメータを1または複数のプロセッサの補助を受けて推定するステップとを備え得、1または複数の外部パラメータは可動物体の動作の間に反復最適化アルゴリズムを用いて推定され、1または複数の外部パラメータは修正された構成を有する複数のセンサ間の複数の空間的関係を含む。
いくつかの実施形態において、可動物体は無人航空機(UAV)である。UAVの動作は、UAVが飛行していること、および/または電力供給されていることを含み得る。
いくつかの実施形態において、複数の空間的関係は、少なくとも2つの画像センサの相対的な複数の位置および相対的な複数の向きを含む。少なくとも2つの画像センサの相対的な複数の位置および相対的な複数の向きは、少なくとも1つの慣性センサに関連して決定され得る。
いくつかの実施形態において、1または複数の外部パラメータに関する複数の初期値は、可動物体の動作の前に決定される。複数の初期値は、可動物体の動作の前に反復最適化アルゴリズムを用いて決定され得る。複数の初期値は、可動物体の動作の前にユーザにより測定され得る。1または複数の外部パラメータに関する複数の初期値は、可動物体に関連付けられたメモリデバイスから受信され得る。いくつかの実施形態において、少なくとも2つの画像センサは、1または複数の固定されたロケーションにおいて可動物体に結合され、1または複数の外部パラメータに関する複数の初期値は、1または複数の固定されたロケーションに基づいて決定される。
いくつかの実施形態において、初期構成は、複数のセンサから少なくとも1つのセンサを除くことにより修正される。初期構成は、複数のセンサへ少なくとも1つのセンサを追加することにより修正され得る。初期構成は、複数のセンサのうち少なくとも1つのセンサの位置または向きのうち少なくとも1つを変化させることにより修正され得る。初期構成は、可動物体の動作の前に修正され得る。
いくつかの実施形態において、慣性データは、可動物体の3次元加速度および3次元角速度を示す1または複数の測定値を含む。慣性データは、少なくとも2つの異なる時点に亘って少なくとも1つの慣性センサにより取得された1または複数の測定値を含み得る。
いくつかの実施形態において、画像データは、可動物体の周囲の環境の1または複数の画像を含む。画像データは、少なくとも2つの異なる時点に亘って少なくとも2つの画像センサのうちそれぞれにより取得された1または複数の画像を含み得る。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて1または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも2つの画像センサのうち第1画像センサにより取得された1または複数の画像を、少なくとも2つの画像センサのうち第2画像センサにより取得された1または複数の画像と比較するステップを有し得る。
いくつかの実施形態において、少なくとも2つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも2つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも2つの画像センサは、切り替え機構を介して1または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを1または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第1画像センササブセットを1または複数のプロセッサに結合するステップと、第1画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第2画像センササブセットを1または複数のプロセッサに結合するステップと、第2画像センササブセットから画像データを受信するステップとを有し得る。
いくつかの実施形態において、反復最適化アルゴリズムは非線形最適化アルゴリズムである。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータの最大事後確率(MAP)推定値を算出することを含み得る。いくつかの実施形態において、慣性データおよび画像データは、1または複数の外部パラメータを推定するのに用いられる唯一のセンサデータである。
いくつかの実施形態において、方法はさらに、推定された1または複数の外部パラメータに基づいて可動物体の状態を決定するステップを備える。状態は、可動物体の位置、向き、または速度のうち1または複数を含み得る。
他の態様において、初期構成を有する複数のセンサを有する可動物体の1または複数の外部パラメータを較正するためのシステムが提供される。システムは、可動物体により運ばれ、少なくとも1つの慣性センサおよび少なくとも2つの画像センサを有する複数のセンサと、1または複数のプロセッサとを備え得、1または複数のプロセッサは、個々に、または集合的に、複数のセンサの初期構成が修正されたことを検出し、可動物体の動作の間に少なくとも1つの慣性センサから慣性データを受信し、可動物体の動作の間に少なくとも2つの画像センサから画像データを受信し、初期構成が修正されたことの検出に応答して、慣性データおよび画像データに基づいて1または複数の外部パラメータを推定するよう構成され、1または複数の外部パラメータは、可動物体の動作の間に反復最適化アルゴリズムを用いて推定され、1または複数の外部パラメータは、修正された構成を有する複数のセンサ間の複数の空間的関係を含む。
他の態様において、1または複数の非一時的コンピュータ可読記憶媒体が提供される。1または複数の非一時的コンピュータ可読記憶媒体は、複数の実行可能命令を格納し得、複数の実行可能命令は、初期構成を有する複数のセンサを有する可動物体の1または複数の外部パラメータを較正するためのコンピュータシステムの1または複数のプロセッサにより実行されたときにコンピュータシステムに少なくとも、少なくとも1つの慣性センサと少なくとも2つの画像センサとを含む複数のセンサの初期構成が修正されたことを検出させ、可動物体の動作の間に少なくとも1つの慣性センサから慣性データを受信させ、可動物体の動作の間に少なくとも2つの画像センサから画像データを受信させ、初期構成が修正されたことの検出に応答して、慣性データおよび画像データに基づいて1または複数の外部パラメータを推定させ、1または複数の外部パラメータは、可動物体の動作の間に反復最適化アルゴリズムを用いて推定され、1または複数の外部パラメータは、修正された構成を有する複数のセンサ間の複数の空間的関係を含む。
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体に関する状態情報を推定するための方法が提供される。方法は、可動物体に関する前の状態の情報を1または複数のプロセッサにおいて受信するステップと、可動物体により搭載される少なくとも1つの慣性センサから慣性データを1または複数のプロセッサにおいて受信するステップとを、可動物体により搭載される少なくとも2つの画像センサから画像データを1または複数のプロセッサにおいて受信するステップと、可動物体の動作の間に反復最適化アルゴリズムを用い、前の状態の情報、慣性データ、および画像データに基づいて可動物体に関する更新された状態情報を、1または複数のプロセッサの補助を受けて決定するステップとを備え得、慣性データは、可動物体の動作の間の少なくとも2つの異なる時点に亘って少なくとも1つの慣性センサにより取得される慣性測定データを含み、画像データは、可動物体の動作の間の少なくとも2つの異なる時点に亘って少なくとも2つの画像センサのうち各画像センサにより取得された複数の画像を含む。
いくつかの実施形態において、可動物体は無人航空機(UAV)である。UAVの動作は、UAVが飛行していること、および/または電力供給されていることを含み得る。
いくつかの実施形態において、前の状態の情報は、可動物体の動作の間の前の時点における可動物体の位置、向き、および速度を含む。前の状態の情報は、反復最適化アルゴリズムを用いて取得され得る。更新された状態情報は、可動物体の位置、速度、および向きを含み得る。
いくつかの実施形態において、慣性データは、可動物体の3次元加速度および3次元角速度を示す1または複数の測定値を含む。
いくつかの実施形態において、画像データは、可動物体の周囲の環境の1または複数の画像を含む。いくつかの実施形態において、決定するステップは、特徴点検出アルゴリズムを用いて1または複数の画像を処理するステップを有する。決定するステップは、オプティカルフローアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、特徴マッチングアルゴリズムを用いて1または複数の画像を処理するステップを有し得る。決定するステップは、少なくとも2つの画像センサのうち第1画像センサにより取得された1または複数の画像を、少なくとも2つの画像センサのうち第2画像センサにより取得された1または複数の画像と比較するステップを有し得る。
いくつかの実施形態において、少なくとも2つの画像センサは、複数の画像を同期的に取得するよう構成されている。代替的に、少なくとも2つの画像センサは、複数の画像を非同期的に取得するよう構成され得る。少なくとも2つの画像センサは、切り替え機構を介して1または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、切り替え機構は、一時に単一の画像センササブセットを1または複数のプロセッサへ結合するよう構成されている。画像データを受信するステップは、切り替え機構を介して第1画像センササブセットを1または複数のプロセッサに結合するステップと、第1画像センササブセットからの画像データを受信するステップと、切り替え機構を介して第2画像センササブセットを1または複数のプロセッサに結合するステップと、第2画像センササブセットから画像データを受信するステップとを有し得る。
いくつかの実施形態において、反復最適化アルゴリズムは非線形最適化アルゴリズムである。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて更新された状態情報の最大事後確率(MAP)推定値を算出することを含み得る。いくつかの実施形態において、慣性データおよび画像データは、更新された状態情報を決定するのに用いられる唯一のセンサデータである。
いくつかの実施形態において、方法はさらに、可動物体の動きを制御するために、更新された状態情報を制御モジュールへ出力するステップを備える。
他の態様において、可動物体の動作の間に複数のセンサを用いて可動物体に関する状態情報を推定するためのシステムが提供される。システムは、可動物体により搭載される少なくとも1つの慣性センサと、可動物体により搭載される少なくとも2つの画像センサと、1または複数のプロセッサとを備え得、1または複数のプロセッサは、個々に、または集合的に、可動物体に関する前の状態の情報を受信し、少なくとも1つの慣性センサから慣性データを受信し、少なくとも2つの画像センサから画像データを受信し、可動物体の動作の間に反復最適化アルゴリズムを用い、前の状態の情報、慣性データ、および画像データに基づいて可動物体に関する更新された状態情報を決定するよう構成され、慣性データは、可動物体の動作の間の少なくとも2つの異なる時点に亘って少なくとも1つの慣性センサにより取得された慣性測定データを含み、画像データは、可動物体の動作の間の少なくとも2つの異なる時点に亘って少なくとも2つの画像センサのうち各画像センサにより取得された複数の画像を含む。
他の態様において、1または複数の非一時的コンピュータ可読記憶媒体が提供される。1または複数の非一時的コンピュータ可読記憶媒体は複数の実行可能命令を格納し得、複数の実行可能命令は、可動物体に関する状態情報を推定するためのコンピュータシステムの1または複数のプロセッサにより実行されたときに、コンピュータシステムに少なくとも、可動物体に関する前の状態の情報を受信させ、可動物体により搭載される少なくとも1つの慣性センサから慣性データを受信させ、可動物体により搭載される少なくとも2つの画像センサから画像データを受信させ、可動物体の動作の間に反復最適化アルゴリズムを用い、前の状態の情報、慣性データ、および画像データに基づいて可動物体に関する更新された状態情報を決定させ、慣性データは、可動物体の動作の間の少なくとも2つの異なる時点に亘って少なくとも1つの慣性センサにより取得された慣性測定データを含み、画像データは、可動物体の動作の間の少なくとも2つの異なる時点に亘って少なくとも2つの画像センサのうち各画像センサにより取得された複数の画像を含む。
本願発明の異なる複数の態様が、個々に、集合的に、または互いに組み合わせて認識さ得ることが理解されよう。本明細書に記載されている本願発明の様々な態様は、以下に明らかにされる特定の複数の適用例のうち何れかに、または何らかの他の複数のタイプの複数の可動物体のために適用され得る。本明細書における航空機についてのいずれの記載も、何らかの輸送体など何らかの可動物体に当てはまり得、それらのために用いられ得る。追加的に、空中での動き(例えば、飛行)の文脈で本明細書に開示されている複数のシステム、デバイス、および方法は、地上または水上での動き、水面下での動き、または宇宙空間での動きなど他の複数のタイプの動きの文脈にも適用され得る。更に、本明細書におけるロータまたはロータ組立体についてのいずれの記載も、回転により推進力を生成するよう構成された何らかの推進システム、デバイス、または機構(例えば、プロペラ、車輪、車軸)に当てはまり得、それらのために用いられ得る。
本願発明の他の複数の目的および特徴は、明細書、複数の請求項、および添付の複数の図面を検討することにより明らかとなろう。
参照による組み込み
本明細書で言及される全ての出版物、特許、および特許出願は、個々の出版物、特許、または特許出願が具体的に、および個々に参照により組み込まれることが示されているのと同じ程度、参照により本明細書に組み込まれる。
本開示の複数のシステム、複数の方法、および複数のデバイスは、無人航空機(UAV)など複数の可動物体の動作に関連する情報の決定を可能とする。いくつかの実施形態において、本開示は、状態推定、初期化、エラー回復、および/またはパラメータ較正のための情報など、UAVの動作のために有用な様々なタイプの情報を決定するために、異なる複数のセンサタイプからのセンサデータを組み合わせる複数のセンサ融合技術を利用する。例えば、UAVは、少なくとも1つの慣性センサおよび少なくとも2つの画像センサを含み得る。異なる複数のタイプのセンサからのデータを組み合わせるのに反復最適化アルゴリズムなど様々な方法が用いられ得る。いくつかの実施形態において、反復最適化アルゴリズムは、反復して非線形関数(例えば、非線形目的関数)を線形化し解くことを伴う。本明細書に提示される複数のセンサ融合技術は、UAVの状態推定、初期化、エラー回復、および/またはパラメータ較正の正確性および堅牢性を向上させるのに用いられ得、したがって、「インテリジェント」な自律的または半自律的動作のための複数のUAVの複数の能力を拡張する。
いくつかの実施形態において、本開示は、複数の画像化センサ(例えば、複数のカメラ)を慣性センサと組み合わせて用いて初期化、エラー回復、パラメータ較正、および/または状態推定を実行することに関する複数のシステム、方法、およびデバイスを提供する。複数の画像化センサの使用は単一の画像センサを利用する複数のアプローチと比較して様々な利点を提供する。それら利点には、(例えば、より多くの画像データが推定のために利用可能であることによる)向上した正確性、および高められた安定性および堅牢性(例えば、複数の画像センサは、複数の画像センサのうち1つが機能不良に陥った際に冗長性を提供出来る)などがある。複数の画像センサからのデータを組み合わせるための複数のセンサ融合アルゴリズムは、単一の画像センサの複数のアプローチのための複数のアルゴリズムとは異なり得る。例として、複数の画像センサのための複数のアルゴリズムは、異なる複数の画像センサ間の複数の空間的関係(例えば、相対的な位置および/または向き)を考慮し得、そのような複数の空間的関係は、単一の画像センサの複数のアプローチには当てはまらないであろう。
本明細書におけるいくつかの実施形態は複数のUAVの文脈で提示されているが、本開示は地面用輸送体など他の複数のタイプの可動物体に適用され得ることが理解されよう。本明細書に提供される複数のシステム、方法、およびデバイスでの使用のために適切な複数の可動物体の複数の例は、より詳細に以下に記載されている。
本明細書に記載されている複数のUAVは、(例えば、搭載されたコントローラなど適切なコンピューテイングシステムにより)完全に自律的に、半自律的に、または手動で(例えば、人であるユーザにより)動作させられ得る。UAVは、適切な実存物(例えば、人であるユーザまたは自律制御システム)から複数のコマンドを受信し、1または複数のアクションを実行することによりそのような複数のコマンドに応じ得る。例えば、UAVは、地上から離陸し、(例えば、最大3つの並進自由度、および最大3つの回転自由度で)空中を動き、ターゲットロケーションまたは一連のターゲットロケーションへ動き、空中をホバリングし、地上に着陸するなどするよう制御され得る。他の例として、UAVは、特定された速度および/または加速度で(例えば、最大3つの並進自由度、および最大3つの回転自由度)または特定された動きの経路に沿って動くよう制御され得る。更に、複数のコマンドは、本明細書に記載された複数のコンポーネント(例えば、センサ、アクチュエータ、推進ユニット、積載物等)など1または複数のUAVコンポーネントを制御するのに用いられ得る。例として、いくつかコマンドが、カメラなどUAV積載物の位置、向きおよび/または動作を制御するのに用いられ得る。
いくつかの実施形態において、UAVは、より高い自律度を伴い得るより複雑な複数の機能を実行するよう、または、何らかのユーザ入力を要することなく全体的に自律的に実行するよう構成され得る。そのような複数の機能の複数の例は、特定の位置を維持すること(例えば、決まった位置でホバリングすること)、ナビゲーション(例えば、ターゲットである目的地に動くためのルートを計画すること、および/またはそれに沿うこと)、障害物回避、および環境マッピングを含むが、これらに限定されない。これらの機能の実装は、UAVおよび/または周囲環境についての情報に基づいてもよい。
例えば、いくつかの実施形態において、過去、現在、および/または予想される将来のUAVの状態を示す状態情報を決定することが有益である。状態情報は、UAVの空間的配置(例えば、経度、緯度、および/または高度などロケーションまたは位置情報;ロール、ピッチおよび/またはヨーなど向きまたは姿勢情報)についての情報を含み得る。状態情報は、UAVの動きについての情報(例えば、並進速度、並進加速度、角速度、角加速度等)も含み得る。状態情報は、最大6自由度(例えば、位置および/または並進3自由度、向きおよび/または回転3自由度)に関するUAVの空間的配置および/または動きについての情報を含み得る。状態情報は、全体座標系と相対的に、または局所座標系と相対的に(例えば、UAVとまたは他の実存物と相対的に)提供されてもよい。いくつかの実施形態において、状態情報は、動作を始めた(例えば、電力供給されている、離陸した、飛行を開始した)ときのUAVの空間的配置などUAVの前の状態と相対的に提供される。状態情報の決定は本明細書で「状態推定」と呼ばれ得る。オプションで、状態推定は、更新された状態情報を提供するようUAVの動作の全体に亘って(例えば、継続的に、または予め定められた複数の時間間隔で)実行され得る。
図1は、複数の実施形態に係る、UAV100に関する状態推定を示す。UAV100は図1において、第1時点kにおいて第1状態102にあり、続く第2時点k+1において第2状態104にあるものとして描写されている。UAV100の位置および向きを示す局所座標系または基準系106が、UAV100と相対的に定義され得る。UAV100は、第1状態102にあるときには第1位置および向きを、第2状態104にあるときには第2位置および向きを有し得る。状態の変化は、第1位置から第2位置への並進Tおよび/または第1向きから第2向きへの回転θとして表され得る。前の状態102にあるUAV100の位置および向きが知られているとき、Tおよびθが、続く状態104におけるUAV100の位置および向きを決定するのに用いられ得る。さらに、時間間隔の長さ[k,k+1]が知られている場合、第2状態104にあるUAV100の並進および角速度も、それぞれTおよびθに基づいて推定され得る。したがって、いくつかの実施形態において、状態推定は、状態の変化T、θを決定し、第2状態104を決定するために、その後、状態変化情報および第1状態102についての情報を用いることを伴う。
いくつかの実施形態において、状態推定は、1または複数のセンサにより取得されたセンサデータに基づいて実行される。本明細書に開示される複数の実施形態での使用のために適切な例示的な複数のセンサは、ロケーションセンサ(例えば、全地球測位システム(GPS)センサ、ロケーションの三角測量を可能とするモバイルデバイスの送信機)、イメージまたはビジョンセンサ(例えば、可視光、赤外線、または紫外線を検出することが可能なカメラなどの画像化デバイス)、近接または距離センサ(例えば、超音波センサ、ライダー、タイムオブフライト、または深度カメラ)、慣性センサ(例えば、加速度計、ジャイロスコープ、慣性測定ユニット(IMU))、高度センサ、姿勢センサ(例えば、コンパス)、圧力センサ(例えば、気圧計)、オーディオセンサ(例えば、マイク)、またはフィールドセンサ(例えば、磁力計、電磁センサ)を含む。1つ、2つ、3つ、4つ、5つ、またはそれらより多くのセンサなど任意の適切な数および組み合わせのセンサが用いられ得る。オプションで、データが、異なる複数のタイプの(例えば、2つ、3つ、4つ、5つ、またはそれらより多くのタイプの)センサから受信され得る。異なる複数のタイプのセンサは、異なる複数のタイプの信号または情報(例えば、位置、向き、速度、加速度、近接度、圧力等)を測定し得、および/または、データを取得するよう異なる複数のタイプの測定技術を利用し得る。例として、複数のセンサは、何らかの適切な組み合わせの能動型センサ(例えば、自身のエネルギー源からエネルギーを生成し測定するセンサ)および受動型センサ(例えば、利用可能なエネルギーを検出するセンサ)を含み得る。他の例として、いくつかのセンサは、全体座標系に関して提供される絶対的な測定データ(例えば、GPSセンサにより提供される位置データ、コンパスまたは磁力計により提供される姿勢データ)を生成し得、他方では、他の複数のセンサは、局所座標系に関して提供される相対的な測定データ(例えば、ジャイロスコープにより提供される相対的な角速度、加速度計により提供される相対的な並進加速度、画像センサにより提供される特定の周囲環境の投影図、超音波センサにより提供される相対的な距離情報、ライダー、またはタイムオブフライトカメラ)を生成し得る。いくつかの例において、局所座標系は、UAVと相対的に定義される本体座標系であり得る。
本明細書に記載されている複数のセンサは、UAVにより運ばれ得る。センサは、UAVの輸送体本体の上方、下方、わき、または内部などUAVの何らかの適切な部分に位置付けられ得る。いくつかの実施形態において、1または複数のセンサは、UAVの筐体内で囲まれ得、筐体の外部に位置付けられ得、筐体の面(例えば、内面または外面)に結合され得、または筐体の一部を形成し得る。いくつかのセンサは、UAVの空間的配置および/または動きが複数のセンサの空間的配置および/または動きに対応するようUAVに機械的に結合され得る。センサは、センサが取り付けられたUAVの一部と相対的に動かないように剛性の結合を介してUAVに結合され得る。代替的に、センサとUAVとの間の結合は、UAVと相対的なセンサの動きを可能とし得る。結合は、永久的な結合または非永久的な(例えば、解放可能な)結合であり得る。適切な複数の結合方法は、粘着、接着、溶接、および/または留め金具(例えば、ねじ、びょう、ピン等)を含み得る。いくつかの実施形態において、センサとUAVとの間の結合は、複数の振動、または所望されない機械的な他の複数の動きがUAV本体からセンサへ伝達されてしまうことを低減する複数の緩衝器またはダンパを備える。オプションで、センサは、UAVの一部と一体的に形成され得る。更に、センサは、本明細書で説明される複数の実施形態など、センサにより収集されたデータがUAVの様々な機能(例えば、ナビゲーション、制御、推進、ユーザまたは他のデバイスとの通信等)のために用いられることを可能とするようUAVの一部(例えば、プロセッシングユニット、制御システム、データストレージ)に電気的に結合され得る。
いくつかの実施形態において、複数の感知結果は、「センサ融合」としても知られる、複数のセンサにより取得されるセンサデータの組み合わせにより生成される。例として、センサ融合は、GPSセンサ、慣性センサ、画像センサ、ライダー、超音波センサ、およびその他を含む異なる複数のセンサタイプにより取得される感知データを組み合わせるのに用いられ得る。他の例として、センサ融合は、絶対測定データ(例えば、GPSデータなど全体座標系と相対的に提供されるデータ)および相対的な測定データ(例えば、ビジョン感知データ、ライダーデータ、または超音波感知データなど局所座標系と相対的に提供されるデータ)など異なる複数のタイプの感知データを組み合わせるのに用いられ得る。センサ融合は、個々の複数のセンサタイプに関連する限界または不正確性を補い、これにより最終的な感知結果の正確性および信頼性を向上させるために用いられ得る。
複数のセンサが用いられる複数の実施形態において、各センサは、それぞれの位置および向きでUAV上に位置付けられ得る。複数のセンサの互いに相対的な複数の空間的関係についての情報(例えば、相対的な位置および向き)は、複数のセンサからのデータを融合するための基準として用いられ得る。これらの空間的関係は本明細書において、複数のセンサの「外部パラメータ」と呼ばれ得、複数の空間的関係を決定する処理は本明細書で「外部パラメータ較正」と呼ばれ得る。いくつかの実施形態において、複数の外部パラメータに関する複数の初期値が知られるように、複数のセンサが、予め定められた複数のロケーションにおいてUAV上に設置される。さらに、複数の外部パラメータは、例えば、振動、衝突、または複数のセンサの相対的な位置および/または向きを変化させる他の出来事に起因してUAVの動作の間に変化し得る。したがって、複数のセンサ融合結果が正確かつ堅牢であることを確実にするために、更新されたパラメータ情報を提供するようUAVの動作の全体で(例えば、継続的に、または予め定められた複数の時間間隔で)外部パラメータ較正を実行するのが役立ち得る。
図2は、複数の実施形態に係る、UAVに関する外部パラメータ較正を示す。UAVは、基準センサ200、および複数の追加のセンサ202を含む。センサ200、202のうちそれぞれは、センサの位置および向きを示すそれぞれの局所座標系または基準系に関連付けられている。いくつかの実施形態において、各センサ202は、基準センサ200の座標系と相対的な、異なるそれぞれの位置および向きにある。各センサ202の複数の外部パラメータは、センサ202の座標系から基準センサ200の座標系へのうちそれぞれの並進Tおよび/またはそれぞれの回転θとして表され得る。したがって、外部パラメータ較正は、複数のセンサ202のうちそれぞれを基準センサ200に関連させる複数の外部パラメータからなるセット(T1,θ1)、(T1,θ1)、…、(Tm,θm)を決定することを伴い得る。代替的に、または加えて、外部パラメータ較正は、センサ202のうちそれぞれを、単一の基準センサ200の座標系とではなくむしろ互いに関連させる複数の外部パラメータからなるセットを決定することを伴い得る。当業者は、複数のセンサ202の基準センサ200に対する複数の空間的関係を決定することは、複数のセンサ202の互いに対する複数の空間的関係を決定することと同等であることを理解されよう。
本明細書に記載されている複数のUAVは、状態推定および外部パラメータ較正を実行するために様々なアルゴリズムを実装し得る。いくつかの実施形態において、同じアルゴリズムが、状態情報および複数の外部パラメータ値を同時に推定するのに用いられる。他の複数の実施形態において、異なる複数のアルゴリズムが、状態情報およびパラメータ値を別個に評価するために用いられる。そのような複数のアルゴリズムの複数の例は、本明細書にさらに記載される。いくつかの実施形態において、最初に状態推定および/またはパラメータ較正を実行する前に(例えば、UAVが電力供給されたとき、動作を開始したとき、または飛行を開始したとき)、これらのアルゴリズムを、特定の情報を用いて初期化することが必要または有益であり得る。本明細書で「初期化情報」と呼ばれ得るこの情報は、状態推定および/または複数のパラメータ較正アルゴリズムを初期化するのに用いられる、最初の時点における(例えば、UAVが電力供給されたとき、動作を開始したとき、または飛行を開始したときの)UAV状態および/または複数の外部パラメータに関する複数の初期値を含み得る。初期化情報の正確性は、続く状態推定および/またはパラメータ較正手順の正確性に影響し得る。UAVに関する初期化情報を決定する処理は本明細書で「初期化」と呼ばれ得る。
例えば、いくつかの実施形態において、初期化情報は、重力の方向と相対的なUAVの向きを示す情報を含む。この情報は、複数の慣性センサなど重力による影響を受ける複数のセンサからのデータを調節するのに特に役立ち得る。いくつかの実施形態において、結果として得られる慣性センサデータがUAVのみの加速度を示すよう、慣性センサにより取得された複数の加速度測定値から、重力による影響を差し引くことが有益または必要であり得る。したがって、初期化手順は、慣性センサデータの補正を可能とするよう重力の方向と相対的なUAVの初期の向きを決定することを伴い得る。代替的に、または組み合わせて、初期化情報は、UAVの動作の前、またはその間の最初の時点におけるUAVの位置、向き、速度、加速度、および/または複数の外部パラメータを含み得る。初期化情報は、UAVの局所座標系、全体座標系、および/または他の実存物(例えば、UAVのためのリモートコントローラ)の座標系と相対的に提供され得る。
図3および4は、複数の実施形態に係る、UAVの初期化を示す。図3は、水平な向きにあるUAV300の初期化を示す。「水平な向き」とは、UAV300が重力ベクトルgの方向と実質的に直交する水平軸302(例えば、UAVの対向する横方向側部を通る軸)を有することを意味し得る。UAV300は、例えば、水平面から離陸するとき、水平な向きにあり得る。図4は、傾けられた向きにあるUAV400の初期化を示す。「傾けられた向き」とは、UAV400が重力ベクトルgの方向と直交しない水平軸402(例えば、UAVの対向する横方向側部を通る軸)を有することを意味し得る。UAV400は、例えば、傾斜面から離陸するとき、または非静止状態から(例えば、空中から、またはユーザにより空中に投げられてから)発射されるとき傾けられた向きにあり得る。いくつかの実施形態において、本明細書に記載される複数の初期化方法は、UAVが最初に水平な向きにあるか、または傾けられた向きにあるかを、および/または、重力ベクトルと相対的なUAVの傾き度合いを決定するのに用いられ得る。
いくつかの実施形態において、状態推定および/または外部パラメータ較正アルゴリズムにエラーが生じた場合、アルゴリズムを再初期化し再開する必要があり得る。エラーは、1または複数のセンサが機能不良している(例えば、十分なデータを提供し損ねている)アルゴリズム、または、結果を生成し損ねている(例えば、特定された期間内に結果へと収束し損ねている)アルゴリズムに関するセンサデータを提供することを伴い得る。再初期化情報がUAVの動作の最初の時点ではなくむしろエラーが生じた時間における、またはその辺りの時点で取得されることを除いて、再初期化は、本明細書に記載されている初期化手順と実質的に同様であり得る。いくつかの実施形態において、再初期化は、エラーを検出した後に続いて実行され、エラーに続く再初期化の処理は、本明細書で「エラー回復」と呼ばれ得る。代替的に、または組み合わせて、再初期化は、所望されるように初期化に続く任意の時点で、例えば、予め定められた複数の時間間隔で実行され得る。
図5は、複数の実施形態に係る、UAVを動作させるための方法500を示す。ステップ502において、UAVが動作を開始する(例えば、電力供給される、離陸する等)。ステップ504において、UAVに関する初期化情報(例えば、上記にて説明したように重力の方向と相対的な向き)を決定するために初期化が実行される。ステップ506において、例えば、UAVの位置、向き、速度、複数のUAVセンサの相対的な位置および向き等を決定するよう、現時点に関する外部パラメータ較正および状態推定が実行される。上記にて説明したように、パラメータ較正および状態推定は、同時または別個に実行され得る。ステップ508において、例えば、センサの機能不良、またはパラメータ較正および/または状態推定手順における失敗などのエラーがUAVの動作間に生じたかが決定される。エラーが生じた場合、方法500はステップ504に戻ってエラー回復のためにUAVを再初期化する。エラーが生じていない場合、ステップ510において、パラメータ較正および状態推定の複数の結果が、例えば、飛行制御モジュール、遠隔端末、またはコントローラ等へ、続く格納および/または使用のために出力される。例えば、飛行制御モジュールは、UAVのナビゲーション、マッピング、障害物回避、およびその他を容易にするよう、決定された複数のパラメータ値および/または状態情報を用い得る。その後、方法500はステップ506に戻って、次の時点のためにパラメータ較正および状態推定手順を繰り返す。方法500は、UAVの動作の間に更新された状態情報およびパラメータ値を提供するよう、0.1秒毎に少なくとも1度など任意の割合で繰り返され得る。
いくつかの実施形態において、このアプローチはUAVの初期状態(例えば、位置、向き、速度、加速度等)についての仮定を何ら要さないので、本明細書に記載されているようにUAVの初期化および/またはエラー回復を実行することは有利である。例として、本明細書における複数のアプローチは、UAVが最初に静止している(例えば、速度および加速度がゼロに等しい)と仮定することなくUAVの初期化および/またはエラー回復を可能とし得る。この仮定は、特定の複数の状況(例えば、UAVが地上または他の平面から離陸しているとき)に関して適当であり得、そのような複数の実施形態において、重力ベクトルの方向は、慣性センサデータから直接的に取得され得る。しかし、この仮定は他の複数の状況(例えば、エラーが生じたときにUAVが最初に傾斜面を滑り降りている場合、UAVがユーザにより空中へ投げられる場合、UAVが空中にある場合等)に関して適当ではないかもしれない。そのような複数の実施形態において、センサの結果に影響を与えている他の複数の加速度値があるかもしれないので、慣性センサデータのみから重力ベクトルの方向を決定するのは可能ではないかもしれない。したがって、本明細書における複数の方法は、UAVの初期状態(例えば、UAVが静止しているか動いているか)に関わらず、重力ベクトルの決定を可能とし、したがって、初期化およびエラー回復の柔軟性および正確性を向上させる。
本明細書に記載されている複数のUAVは、本明細書に提供される初期化、状態推定、および外部パラメータ較正方法を実行するために複数のセンサからのデータを利用し得る。様々なタイプおよび組み合わせの複数のセンサが用いられ得る。いくつかの実施形態において、UAVは、少なくとも1つの慣性センサおよび少なくとも1つの画像センサを利用する。オプションで、UAVは少なくとも1つの慣性センサ、および、2またはそれより多くの、3またはそれより多くの、4またはそれより多くの、5またはそれより多くの、6またはそれより多くの、7またはそれより多くの、8またはそれより多くの、9またはそれより多くの、10またはそれより多くの画像センサなど複数の画像センサを利用し得る。
本明細書において、慣性センサとは動きセンサ(例えば、速度センサ、加速度計など加速度センサ)、方位センサ(例えば、ジャイロスコープ、傾斜計)、または、1または複数の統合された動きセンサおよび/または1または複数の統合された方位センサを有するIMUを指すのに用いられ得る。慣性センサは、単一の動きの軸と相対的な感知データを提供し得る。動きの軸は、慣性センサの軸(例えば、縦軸)に対応し得る。複数の慣性センサが用いられ得、各慣性センサは、異なる動きの軸に沿った複数の測定値を提供する。例えば、3つの加速度計が、3つの異なる動きの軸に沿った加速度データを提供するのに用いられ得る。3つの動き方向は複数の直交する軸であり得る。加速度計のうち1または複数は、並進軸に沿った加速度を測定するよう構成された複数の線形加速度計であり得る。逆に、加速度計のうち1または複数は、回転軸周りの角加速度を測定するよう構成された角度加速度計であり得る。他の例として、3つのジャイロスコープが、3つの異なる回転軸周りの向きデータを提供するのに用いられ得る。3つの回転軸は、複数の直交する軸(例えば、ロール軸、ピッチ軸、ヨー軸)であり得る。代替的に、複数の慣性センサのうち少なくともいくつかまたは全てが、複数の同じ動きの軸と相対的な測定値を提供し得る。そのような冗長性は、例として、測定の正確性を向上させるよう実装され得る。オプションで、単一の慣性センサが、複数の軸と相対的な感知データを提供することが可能であり得る。例えば、複数の統合された加速度計およびジャイロスコープを含むIMUが、最大6つの動きの軸に関する加速度データおよび向きデータを生成するのに用いられ得る。代替的に、単一の加速度計が、複数の軸に沿った加速度を検出するのに用いられ得、単一のジャイロスコープが、複数のの軸周りの回転を検出するのに用いられ得る。
画像センサは、電磁放射(例えば、可視光、赤外線、および/または紫外線)を検出し、検出された電磁放射に基づいて画像データを生成するよう構成された何らかのデバイスであり得る。画像センサにより生成された画像データは、複数の静止画(例えば、写真)、複数の動画(例えば、ビデオ)、またはこれらの適切な組み合わせであり得る1または複数の画像を含み得る。画像データは、多色(例えば、RGB、CMYK、HSV)、または単色(例えば、グレースケール、白黒、セピア)であり得る。いくつかの実施形態において、画像センサはカメラであり得る。本明細書に提供されている特定の複数の実施形態はカメラの文脈で記載されているが、本開示が何らかの適切な画像センサに適用され得ること、および、本明細書における複数のカメラに関連するいずれの記載も、他の複数のタイプの画像センサにも適用され得ることを理解されよう。カメラは、3Dシーンの複数の2D画像(例えば、環境、1または複数の物体等)を生成するのに用いられ得る。カメラにより生成される複数の画像は、2D像平面への3Dシーンの投射を表し得る。したがって、2D画像の各点は、シーンにおける3D空間座標に対応する。複数のカメラが、シーンの3D空間情報(例えば、シーン内の物体とUAVとの間の距離を示す深さ情報)が再構築されることを可能とするために、3Dシーンの複数の2D画像を撮像するのに用いられ得る。オプションで、単一の画像センサが、例えば、複数の動き技術からの構造を用いて3D空間情報を取得するのに用いられ得る。3D空間情報は、UAV状態(例えば、位置、向き、速度等)を決定するよう処理され得る。
複数の慣性センサおよび複数の画像センサの組み合わせは、UAVの動作に関して様々な利益を提供し得る。例として、複数のIMUなど複数の慣性センサからの慣性データの正確性はノイズおよびドリフトに起因して経時的に低下し得、重力に起因する加速度による影響を受け得る。この課題は、慣性データを、1または複数の画像センサからの画像データを用いて補正する、および/またはそれらと組み合わることにより緩和または克服され得る。他の例として、複数の画像センサを用いることにより、複数の画像センサのうちいくつかが妨害される、および/または機能不良に陥った場合でも、残りの複数の画像センサが依然としてデータを収集するのに利用可能であるので、UAVが動作を継続することが可能となり得る。したがって、1または複数の慣性センサからの慣性データおよび1または複数の画像センサからの画像データは、UAVの動作に関するより堅牢かつ正確な複数の感知結果を提供するために、センサ融合アルゴリズムを用いて処理され、組み合わせられ得る。
図6は、複数の実施形態に係る、慣性データおよび画像データを処理するためのシステム600を示す。いくつかの実施形態において、システム600は、データ収集モジュール610、画像処理モジュール620、センサ融合モジュール630、および飛行制御モジュール640を含む。システム600の様々なモジュールは、本明細書にさらに記載されているように、ハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを用いて実装され得る。例えば、各モジュールは、1または複数のプロセッサと、本明細書に記載される複数の機能を実行するよう1または複数のプロセッサにより実行可能な複数の命令を格納したメモリなど適切な複数のハードウェアコンポーネントとを含み得る。代替的に、または組み合わせて、2またはそれより多くのモジュールが、同じセットの複数のハードウェアコンポーネント、例えば、同じプロセッサを用いて実装され得る。
データ収集モジュール610は、1または複数の慣性センサおよび1または複数の画像センサから慣性データおよび画像データをそれぞれ取得するのに用いられ得る。いくつかの実施形態において、慣性データおよび画像データは、実質的に同じ頻度で収集される。他の複数の実施形態において、慣性データおよび画像データは異なる複数の頻度で収集される(例えば、慣性データは、画像データよりも高い頻度で収集され、またはその逆も当てはまる)。例えば、慣性センサは、およそ50Hz、100Hz、150Hz、200Hz、250Hz、300Hz、350Hz、400Hz、450Hz、500Hzよりも高い、またはそれらと等しい、もしくはさらに高い周波数で慣性データを出力し得る。画像センサは、およそ1Hz、5Hz、10Hz、15Hz、20Hz、25Hz、30Hz、40Hz、50Hz、または100Hzよりも高い、またはそれらと等しい頻度で画像データを出力し得る。複数の画像センサが用いられる複数の実施形態において、データ収集モジュール610は、同じ複数の時点において複数の画像センサのうちそれぞれから画像データを同期的に収集し得る。
画像処理モジュール620は、データ収集モジュール610から受信した画像データを処理するのに用いられ得る。いくつかの実施形態において、画像処理モジュール620は、1または複数の画像から1または複数の特徴点を検出および/または抽出する特徴点アルゴリズムを実装する。特徴点(本明細書で「特徴」とも呼ばれる)は、画像の残りの複数の部分から、および/または画像の他の複数の特徴点から一意に区別可能である画像の一部(例えば、エッジ、コーナー、対象の点、ブロブ、***等)であり得る。オプションで、特徴点は、画像化された物体の複数の変容(例えば、並進、回転、拡大縮小)、および/または画像の複数の特性の変化(例えば、輝度、露出)に対して比較的変わらないものであり得る。特徴点は、情報コンテンツの点で豊富である画像の複数の部分(例えば、大きな2Dテクスチャ、閾値を超えるテクスチャ)において検出され得る。特徴点は、複数の混乱の中(例えば、画像の照度および輝度が変化する場合)でも安定した画像の複数の部分において検出され得る。本明細書に記載されている特徴検出は、画像データから1または複数の特徴点を抽出し得る様々なアルゴリズムを用いて実現され得る。アルゴリズムは、エッジ検出アルゴリズム、コーナー検出アルゴリズム、ブロブ検出アルゴリズム、または***検出アルゴリズムであり得る。いくつかの実施形態において、コーナー検出アルゴリズムは、「Features from accelerated segment test」(FAST)であり得る。いくつかの実施形態において、特徴検出器は、複数の特徴点を抽出し、FASTを用いて複数の特徴点について複数の算出を行い得る。いくつかの実施形態において、特徴検出器は、Cannyエッジ検出器、Sobelオペレータ、Harris & Stephens/Plessy/Shi−Tomasiコーナー検出アルゴリズム、SUSANコーナー検出器、Level curve curvatureアプローチ、Laplacian of Gaussian、Difference of Gaussians、Determinant of Hessian、MSER、PCBR、またはGrey−level blobs、ORB、FREAK、またはこれらの何らかの適切な組み合わせであり得る。
オプションで、画像処理モジュール620は、異なる複数の画像に亘って同じ特徴点のマッチングを行い、したがって、複数のマッチングが行われた特徴点からなるセットを生成し得る。特徴点マッチングは、同じ画像センサにより撮像された複数の画像(例えば、連続する複数の時点など異なる複数の時点において撮像された複数の画像)間の、異なる複数の画像センサにより(例えば、同じ時点において、または異なる複数の時点において)撮像された複数の画像間の、またはこれらの組み合わせの複数の特徴点のマッチングを伴い得る。特徴点マッチングは、複数のコーナー検出アルゴリズム、複数のオプティカルフローアルゴリズム、および/または複数の特徴マッチングアルゴリズムを用いて実行され得る。例えば、オプティカルフローが、連続する複数の画像間の動きを決定し、これにより、続く画像における特徴点のロケーションを予測するのに用いられ得る。代替的に、または組み合わせて、複数の特徴点記述子(例えば、特徴点を一意に識別するのに用いられ得る複数の特性)が、他の複数の画像における同じ特徴点の位置特定を行うのに用いられ得る。本明細書における複数の実施形態での使用のために適切な例示的な複数のアルゴリズムは、本明細書により詳細に記載されている。
いくつかの実施形態において、画像処理モジュール620は、画像処理が十分に早い速度で、かつ十分な正確性で起こることを確実にするよう、特定の性能基準を満たすよう構成されている。例えば、画像処理モジュール620は、およそ20Hzであるリアルタイムの処理周波数で3またはそれより多くのデータチャネルを扱うよう構成され得る。他の例として、画像処理モジュール620は、例えば、再投影エラーが2であるときにRANSACアルゴリズムの内座層の数が70%よりも大きい、またはそれと等しいよう特徴トラッキングおよびマッチングを実行するよう構成され得る。
センサ融合モジュール630は、慣性データをデータ収集モジュール610から、処理済み画像データ(例えば、マッチングが行われた複数の特徴点)を画像処理モジュール620から取得し得る。いくつかの実施形態において、センサ融合モジュール630は、初期化情報、状態情報、または複数の外部パラメータなどUAVの動作に関連する情報を決定するために、慣性データおよび処理済み画像データを処理する1または複数のセンサ融合アルゴリズムを実装する。例えば、センサ融合アルゴリズムが、UAVの位置、姿勢、および/または速度などUAVの位置および/または動き情報を算出するのに用いられ得る。本明細書における複数の実施形態での使用のために適切な例示的な複数のセンサ融合アルゴリズムが、以下により詳細に記載されている。
飛行制御モジュール640は、UAVのための複数の制御信号を決定するために、センサ融合モジュール630により生成される複数のセンサ融合結果を用い得る。複数の制御信号が、1または複数の推進ユニット、1または複数のセンサ、1または複数の積載物、1または複数の通信モジュール、およびその他など1または複数のUAVコンポーネントの動作を制御するのに用いられ得る。いくつかの実施形態において、複数の制御信号が、自律的または半自律的なUAVの動作を有効化するよう、例えば、ナビゲーション、障害物回避、ルートプランニング、環境マッピング、およびその他のために用いられる。
図7は、複数の実施形態に係る、異なる複数の時点において単一の画像センサにより撮像された複数の画像間の特徴点マッチング(「単一チャネル処理」としても知られる)を実行するためのアルゴリズム700を示す。本明細書に記載されている他の全ての方法のように、方法700は、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。いくつかの実施形態において、方法700の1または複数のステップは、システム600の画像処理モジュール620に関連付けられた1または複数のプロセッサにより実行される。
アルゴリズム700への入力702は、複数の時点において単一の画像センサにより取得される一連の画像を含み得る。ステップ704において、一連の画像のうち1つ(「現在の画像」)が受信される。ステップ706において、1または複数の特徴点からなるセットが、例えば、コーナー検出アルゴリズムまたは他の何らかの適切な特徴点検出アルゴリズムを用いて現在の画像(「一時的な点」)から算出され得る。ステップ706は、現在の画像のみを用いて、他の画像を用いず複数の特徴点を算出することを伴い得る。
ステップ708において、現在の画像が一連の画像のうち第1画像(例えば、最も早い時点で撮像された画像)であるかが決定される。第1画像ではなく、より早い時点において撮像された少なくとも1つの前の画像がある場合、アルゴリズムはステップ710へ進む。ステップ710において、現在の画像は、オプティカルフローアルゴリズムを用いて1または複数の前の画像と比較される。いくつかの実施形態において、オプティカルフローアルゴリズムは、前の画像において検出された1または複数の特徴点(前の複数の点)のトラッキングを行って、前の複数の点の現在の画像における複数の特徴点とのマッチングを行う。代替的に、または組み合わせて、他の複数のタイプのトラッキングアルゴリズム、例えば、複数の特徴点記述子に基づいてマッチングを実行する複数のトラッキングアルゴリズムが、複数の特徴点のマッチングを行うのに用いられ得る。トラッキングエラーが前の点のトラッキングの間に生じた場合、例えば、トラッキングが不正確である、または実行され得ない場合、その点は、ステップ712における分析から破棄され得る。残りの時間的にマッチングが行われた複数の特徴点からなるセットは、分析に関して「現在の点」であると見なされる。
ステップ714において、一時的な複数の点が現在の複数の点からなるセットに追加され、アルゴリズムの出力718である特徴点の最終的なセットを生成するために、結果として得られる複数の特徴点からなるセットが(例えば、複数の外部パラメータを用いて)修正される。代替的に、ステップ708において現在の画像が第1画像ではないと決定された場合、ステップ710および712は省略され得、特徴点の最終的なセットはステップ706において決定された一時的な複数の点からのみ取得される。ステップ720において、現在の画像が前の画像にセットされ、現在の複数の点が前の複数の点としてセットされる。その後アルゴリズム700は、次の反復のためにステップ704へ戻り、一連の画像のうち次の画像が処理のために受信される。
図8は、複数の実施形態に係る、異なる複数の画像センサにより撮像された複数の画像間の特徴点マッチング(「マルチチャネル処理」としても知られる)を実行するためのアルゴリズム800を示す。いくつかの実施形態において、方法800の1または複数のステップは、システム600の画像処理モジュール620に関連付けられた1または複数のプロセッサにより実行される。
アルゴリズム800への入力802は、異なる複数の画像センサにより取得された複数の画像を含み得る。いくつかの実施形態において、各画像センサは、複数の時点に亘って取得される一連の画像を提供する。画像データ収集は、複数の画像センサが実質的に同じ複数の時点で複数の画像を取得しているように同期的であり得る。代替的に画像データ収集は、異なる複数の画像センサが異なる複数の時点において複数の画像を取得するように非同期的であり得る。非同期的画像データ収集の追加の複数の例は、本明細書にさらに記載されている。
アルゴリズム800は、本明細書に記載されている単一チャネル処理の複数の技術(例えば、アルゴリズム700)を用いて各画像センサからの各一連の画像からの時間的にマッチングが行われた複数の特徴点を取得し得る。例えば、複数の並列処理804a...804nが、対応する数の画像センサの複数の画像からの時間的にマッチングが行われた複数の特徴点を取得するのに用いられ得る。本明細書に記載されているアルゴリズム700の複数のステップと同様に、単一チャネル処理は、単一の画像センサにより生成された画像シーケンスから現在の画像を受信すること(ステップ806)と、現在の画像における複数の特徴点をトラッキングし、1または複数の前の画像における複数の特徴点とのマッチングを行うオプティカルフローアルゴリズムを用いること(ステップ808)と、トラッキングされ得なかった複数の特徴点を破棄することによりマッチングが行われた複数の特徴点からなるセットを取得すること(ステップ810)と、画像センサに関する複数の外部較正パラメータを用いて複数の特徴点を修正すること(ステップ812)とを伴い得る。結果として得られる複数の特徴点からなるセットはトラッキングされ、本明細書に記載されているように、続く複数の画像における複数の特徴点とマッチングが行われ得る。単一チャネルマッチング手順は、画像シーケンスにおける複数の画像のうち全てが処理されるまで繰り返され得る。
ステップ814において、一旦、時間的にマッチングが行われた複数の特徴点からなるセットが、各画像センサからの各画像シーケンスに関して取得されると、異なる複数の画像シーケンスからの複数の特徴点は、空間マッチングアルゴリズムを用いて互いに空間的にマッチングが行われ得る。異なる複数の画像センサは、異なる複数の視野で複数の画像を撮像するよう構成され得るので、シーンにおける同じ特徴点は、異なる複数のセンサからの複数の画像において異なる複数の空間的なロケーションに現われ得る。複数の画像センサのうち少なくともいくつかは、複数の特徴点のうち少なくともいくつかが1より多くの画像センサからの複数の画像シーケンスに存在することを確実にするために、重複する複数の視野を有し得る。いくつかの実施形態において、空間マッチングアルゴリズムは、異なる複数の画像シーケンスに亘る複数の特徴点を識別しマッチングするために、(例えば、同じ時点または異なる複数の時点において)異なる複数の画像センサにより取得された複数の画像を分析する。アルゴリズム800の最終的な出力816は、各画像センサにより生成された複数のそれぞれの画像シーケンス内の時間的にマッチングが行われた特徴点および異なる複数の画像シーケンスに亘る空間的にマッチングが行われた複数の特徴点を含む複数の特徴点からなるセットであり得る。
複数の画像センサが用いられる複数の実施形態において、複数の画像センサのうちそれぞれからの画像データの収集および/または処理は、同期的または非同期的に起こり得る。例えば、同期的画像データ収集スキームは、実質的に同じ時点において各画像センサが画像データを取得することを伴い得、画像データは、同時にプロセッサへ送信され得る。対照的に、非同期的画像データ収集スキームは、異なる複数の時点において異なる複数の画像センサが画像データを取得することを伴い得、画像データは、異なる複数の時間において(例えば、シーケンシャルに)プロセッサへ送信され得る。非同期的スキームにおいて、複数の画像センサのうちいくつかは、同じ複数の時点において複数の画像を取得し得、他の複数の画像センサは、異なる複数の時点において複数の画像を取得し得る。
図20は、複数の実施形態に係る同期的画像データ収集スキーム2000を示す。スキーム2000は、2、3、4、5、6、7、8、9、10、15、20、30、40、50、またはそれらより多くの画像センサなど任意の数の画像センサからのデータを取得し処理するのに用いられ得る。図20の描写において、画像データはn台の画像センサから同期的に受信される。例えば、第1時点kにおいて、複数の画像センサのうちそれぞれは、それぞれの画像データを生成する。複数のセンサのうちそれぞれからの画像データは、(例えば、画像処理モジュールの)1または複数のプロセッサへ同時に送信される。画像データは、データが生成された時点を示すタイムスタンプと共に送信され得る。同様に、第2時点k+1において、画像データが、各画像センサにより取得され、プロセッサへ同時に送信される。この処理は、UAVの動作の間、繰り返され得る。同期的画像データ収集は、異なる複数のセンサからの複数の画像に亘る特徴点マッチングの容易性と正確性を向上させるという点で有利である。例として、同じ時点において撮像された複数の画像は、露出時間、輝度、または特徴点マッチングの容易性に影響を与え得る他の複数の画像特性においてより少ないばらつきを呈し得る。
図21は、複数の実施形態に係る非同期的画像データ収集スキーム2100を示す。スキーム2100は、2、3、4、5、6、7、8、9、10、15、20、30、40、50、またはそれらより多くの画像センサなど任意の数の画像センサからのデータを取得し処理するのに用いられ得る。図21の描写において、画像データはn台の画像センサから非同期的に受信される。例えば、第1時点kにおいて、第1画像センサは、画像データを取得し、(例えば、画像処理モジュールの)1または複数のプロセッサへ送信する。第2時点k+1において、第2画像センサは、画像データを取得し、1または複数のプロセッサへ送信する。第3時点k+2において、n番目の画像センサは画像データを取得し、1または複数のプロセッサへ送信する。各画像データは、例えば、下流の画像処理を容易にするために、画像データが取得された時点を示すタイムスタンプと共に送信され得る。異なる複数の時点間の時間間隔は、一定または可変であり得る。いくつかの実施形態において、異なる複数の時点間の時間間隔は、およそ0.02秒、またはおよそ0.05秒からおよそ0.2秒の範囲内である。この処理は、画像データのうちそれぞれが複数の画像センサのうちそれぞれから受信されるまで、UAVの動作の間、繰り返され得る。画像データが取得され受信される順番は、所望されるように変更され得る。追加的に、図21は画像データが各時点において単一の画像センサから取得されることを示しており、他方、画像データが複数の時点のうちいくつかまたは全てにおいて複数のセンサから受信され得ることを認識されよう。いくつかの実施形態において、非同期的画像データ収集は、本明細書にさらに記載されているように、切り替え機構を介して、複数の画像センサからなる異なるサブセットを1または複数のプロセッサへ選択的に結合することにより実現される。非同期的画像データ収集は、実装の相対的な容易性、より広い範囲の複数のハードウェアプラットフォームとの互換性、およびコンピューティングロードの低減など様々な利点を提供し得る。
本明細書に記載されているように、本開示の複数のシステムおよび複数のデバイスは、状態情報、初期化情報、および/または複数の外部パラメータを取得するよう画像データおよび慣性データを処理するセンサ融合アルゴリズムを実装するよう構成されたセンサ融合モジュール(例えば、システム600のセンサ融合モジュール630)を含み得る。いくつかの実施形態において、センサ融合アルゴリズムは、リアルタイムの更新を提供するようUAVの動作全体で(例えば、継続的に、または予め定められた複数の時間間隔で)実行される。カルマンフィルタベースのアルゴリズムまたは最適化アルゴリズムなど様々なタイプセンサ融合アルゴリズムが、本明細書に提示される複数の実施形態での使用のために適切である。いくつかの実施形態において、本明細書に提示される複数の最適化方法が、あるタイプのバンドルベースのアルゴリズムと見なされ得る。カルマンフィルタベースのアルゴリズムも、特別な場合のバンドルベースのアルゴリズムと見なされ得る。いくつかの実施形態において、カルマンフィルタベースのアルゴリズムと本明細書に提示されているバンドルベースのアルゴリズムとの間の主な区別となる特徴は、最適化されることになる状態の数である。カルマンフィルタベースのアルゴリズムは、1または2つの状態を利用し得、他方、本明細書におけるバンドルベースのアルゴリズムは、3つより多くの状態(例えば、少なくとも5つの状態、少なくとも10の状態、少なくとも20の状態、少なくとも30の状態、少なくとも40の状態、または少なくとも50の状態)を利用し得る。いくつかの実施形態において、本明細書に提示されているバンドルベースのアルゴリズムは、最適化手順がより多くの情報を利用するので、より高い正確性を提供し得る。いくつかの実施形態において、カルマンフィルタベースのアルゴリズムは、より速いスピードおよびより高い安定性を提供し得る。
いくつかの実施形態において、センサ融合アルゴリズムは最適化アルゴリズムを伴う。最適化アルゴリズムは、目的関数の値を最小化または最大化する複数の解決パラメータからなるセットを決定するのに用いられ得る。いくつかの実施形態において、最適化アルゴリズムは、アルゴリズムが解に収束するまで、またはアルゴリズムが停止する(例えば、時間閾値を超えて)まで反復して複数の推定値を生成する反復最適化アルゴリズムである。いくつかの実施形態において、最適化アルゴリズムは線形であり、他方、他の複数の実施形態において、最適化アルゴリズムは非線形である。いくつかの実施形態において、最適化アルゴリズムは、非線形関数を反復して線形化し解くことを伴う。本明細書における複数の実施形態は、異なる複数のタイプのUAV情報を推定するために、単一の最適化アルゴリズムまたは異なる複数のタイプの最適化アルゴリズムを利用し得る。例えば、本明細書に記載されている複数の方法は、特定の複数の値を推定するのに線形最適化アルゴリズムを、および他の複数の値を推定するのに非線形最適化アルゴリズムを用いることを伴い得る。
いくつかの実施形態において、本開示は、UAVの動作の間の1または複数の時点においてUAV状態情報(例えば、位置、向き、速度)および/または複数の外部パラメータ(例えば、慣性センサおよび/または複数の画像センサ間の複数の空間的関係)を推定するよう少なくとも1つの慣性センサからの慣性データと少なくとも2つの画像センサからの画像データとを用いるための反復最適化アルゴリズムを提供する。オプションで、反復最適化アルゴリズムは、状態情報および/または複数の外部パラメータに関する複数の初期値に基づいて状態情報および/または複数の外部パラメータに関する複数の推定値も決定し得る。反復最適化アルゴリズムは、例えば、慣性データ、画像データおよび/または複数の初期値に基づいて状態情報および/または複数の外部パラメータの最大事後確率(MAP)の推定値を算出することを伴い得る。いくつかの実施形態において、反復最適化アルゴリズムのための目的関数は、状態情報、初期化情報および/または複数の外部パラメータの複数の実際値を、慣性データ、画像データおよび/または複数の初期値に基づいて計算された状態情報、初期化情報および/または複数の外部パラメータの複数の推定値に関連付ける。目的関数は、線形関数または非線形関数であり得る。複数の反復的な解法技術が、状態情報、初期化情報および/または複数の外部パラメータの複数の実際値の解を取得するために目的関数を最小化または最大化するのに用いら得る。例えば、本明細書にさらに説明されるように非線形目的関数は反復して線形化され、解かれ得る。
図9は、複数の実施形態に係る、複数のセンサを用いてUAV(または何らかの他の可動物体)に関する初期化情報を決定するための方法900を示す。方法900の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法900の複数のステップのうちいくつかまたは全ては、UAVにより搭載される1または複数のプロセッサを用いて実行され得る。方法900は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
本明細書に説明されているように、方法900を用いて決定されることになる初期化情報は、UAVの(例えば、重力方向に対する)向き、UAVの位置、またはUAVの速度のうち1または複数を含み得る。例えば、初期化情報は、UAVの(例えば、重力方向に対する)向き、UAVの位置、UAVの速度を含み得る。いくつかの実施形態において、初期化情報は、UAVが動作を開始するおよその時点に関して決定される。例えば、時点は、UAVが動作を開始してからおよそ50ミリ秒、100ミリ秒、200ミリ秒、300ミリ秒、400ミリ秒、500ミリ秒、600ミリ秒、700ミリ秒、800ミリ秒、900ミリ秒、1秒、2秒、3秒、4秒、5秒、6秒、7秒、8秒、9秒、10秒、30秒、60秒以下の時間だけ後でもよい。他の例として、時点は、UAVが動作を開始するおよそ50ミリ秒、100ミリ秒、200ミリ秒、300ミリ秒、400ミリ秒、500ミリ秒、600ミリ秒、700ミリ秒、800ミリ秒、900ミリ秒、1秒、2秒、3秒、4秒、5秒、6秒、7秒、8秒、9秒、10秒、30秒、60秒以下の時間だけ前でもよい。
ステップ910において、UAVが動作を開始したことが検出される。ステップ910は、UAVが電力供給されたこと、UAVが面から離陸したこと、またはUAVが飛行を開始したことのうち1または複数を検出することを伴い得る。UAVは、傾斜面または傾斜していない(非傾斜)面から離陸し得る。UAVは、面(例えば、地上)から、自由落下状態(例えば、空中)から、発射装置から発射された状態から、またはユーザにより空中へ投げられた状態から飛行を開始し得る。オプションで、ステップ910は、UAVの複数の推進ユニットが作動させられたこと、複数の推進ユニットの出力が閾値よりも大きい、またはそれと等しいこと、UAVの高度が閾値よりも高い、またはそれと等しいこと、UAVの速度が閾値よりも速い、またはそれと等しいこと、若しくはUAVの加速度が閾値よりも速い、またはそれと等しいことのうち1または複数を検出することを伴い得る。
ステップ920において、慣性データが、UAVにより搭載される少なくとも1つの慣性センサから受信される。慣性データは、UAVの3次元加速度および3次元角速度を示す1または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、UAVが動作を開始したときから、および/またはUAVが飛行しているときから開始する時間間隔に亘って少なくとも1つの慣性センサにより取得される1または複数の測定値を含む。
ステップ930において、画像データが、UAVにより搭載される少なくとも2つの画像センサから受信される。画像データは、UAVの周囲の環境の1または複数の画像を含み得る。いくつかの実施形態において、画像データは、UAVが動作を開始したときから、および/またはUAVが飛行しているときから開始する時間間隔に亘って少なくとも2つの画像センサのうちそれぞれから取得される1または複数の画像を含み得る。
ステップ940において、UAVに関する初期化情報が慣性データおよび画像データに基づいて決定される。初期化情報は、UAVが動作を開始したときの、UAVの位置、速度および/または重力方向に対する向きを含み得る。いくつかの実施形態において、ステップ940は、本明細書に記載されている複数の画像処理アルゴリズムに従って画像データを処理することを含む。例えば、画像データは、可動物体が動作を開始したときから開始する時間間隔に亘って少なくとも2つの画像センサのうちそれぞれにより取得された1または複数の画像を含み得、1または複数の画像は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および/または記述子アルゴリズムに基づく特徴マッチングを用いて処理され得る。本明細書に説明されているように、異なる複数の画像センサから取得される複数の画像は、例えば、特徴点マッチングを実行するために、互いに比較され得る。例えば、第1画像センサにより取得される1または複数の画像は、第2画像センサにより取得される1または複数の画像と比較され得る。オプションで、初期化情報は、他の複数のタイプのセンサからのセンサデータなど何らかの他のデータを要することなく、慣性データおよび画像データのみを用いて決定され得る。いくつかの実施形態において、初期化情報は、初期化情報に関する何らかの複数の初期推定値または初期値を要することなく慣性データおよび画像データから直接的に決定される。初期化情報は、UAVの動作の前(例えば、UAVが電力供給される、および/または飛行する前)に取得された何らかのデータに頼ることなく、UAVが動作中である間(例えば、UAVが電力供給された後、UAVの飛行中)に取得されたデータのみを用いて決定され得る。例として、初期化情報は、UAVが動作を開始する前に実行された事前の初期化を要することなくUAVの動作の間に決定され得る。
いくつかの実施形態において、ステップ940は、慣性データおよび画像データを用いて初期化情報の複数の推定値を生成することを伴う。例えば、ステップ940は、慣性データを用いて初期化情報の第1推定値を生成し、画像データを用いて初期化情報の第2推定値を生成することにより実行され得る。第1推定値および第2推定値は、UAVに関する初期化情報を取得するよう組み合わせられ得る。
いくつかの実施形態において、初期化情報は、線形最適化アルゴリズム、非線形最適化アルゴリズム、または反復非線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。本明細書における複数の実施形態での使用のために適切な例示的なアルゴリズムは、以下に提示される。
UAVは、m台のカメラ(または他の画像センサタイプ)、および1台のIMU(または他の慣性センサタイプ)を含む感知システムを有し得る。IMUは、3つの軸周りの角速度および3つの軸に沿った直線加速度値を出力するよう構成され得る。IMUの出力頻度は、複数のカメラの出力頻度より高くてもよい。例えば、複数のカメラに関するサンプルレートは、f
camHzおよびN=f
cam×Tであると仮定され得る。システムは、動作を開始した後(例えば、電力供給された後)時間間隔Tをおいて(N+1)×mの画像を受信し得る。時間間隔Tは、複数の時点t
0、t
1、t
2、t
3、t
4、t
5、...t
Nおよび複数のUAV状態
に対応し得る。
は、UAVの(動作が開始された時点であるt
0における位置と相対的な)現在位置を表し、
は、UAVの(UAVの本体座標系と相対的な)現在の速度を表し、g
kは、(UAVの本体座標系と相対的な)重力に起因する加速度を表す。初期状況は
であり得る。
受信した(N+1)×mの画像において観察される特徴点の数はM+1であり得る。i番目の特徴点が時間t
k(0≦k≦N)においてj番目のカメラにより最初に観察され、λ
iは、時間t
kにおけるj番目のカメラの平面と垂直な方向への特徴点の深さであると仮定され得る。全てのUAV状態
および特徴深さλ
0、λ
1、λ
2、λ
3、...λ
Mは、全体的な状態Xを形成し得る。
複数のIMUデータが、時間間隔tにそれぞえが対応する時間(t
k,t
k+1)において受信され得る。以下の複数の数式が定義され得る。
ここで、
は、時間tから時間kへの回転を表し、IMUからの角速度を積分することにより取得され、
は、時間tにおけるUAV本体座標系と相対的な加速度を表し、αおよびβは、生IMUデータの積分を表す。IMUデータからの推定値
は、以下のように決定され得、ここで、共分散行列
は、生IMUデータのノイズにより引き起こされるエラーを表している。
ここで、
は上記の数式の左側の行列であり、Xは、全体的な状態であり、
は相加性雑音である。
および
は、当業者に公知である複数の積分前の技術を用いて算出され得る。
複数のカメラに関して、特徴点lが時間t
iにおいてカメラc
nにより最初に観察され、時間t
jにおいてカメラc
mにより観察されると仮定した場合、以下の推定値
が取得され得る。
Xは全体的な状態であり、
および
は時間t
jにおいてi番目のカメラにより取得される画像における特徴点lに関する複数の画像座標であり、
は、IMUに関連するi番目のカメラの回転を表し、
は、IMUに関連するi番目のカメラの並進を表す。
は、IMUデータに関する
と同様に上記の数式から導き出され得る。
目的は、(1)IMUからの推定値および(2)複数の画像シーケンス間の幾何学的制約を用いてUAV状態の推定値を最適化することであり得る。目的方程式は、IMUからのエラーおよび複数の画像シーケンス間の幾何学的制約を最小化するものである。
さらに以下のことが定義され得る。
ここで、
はカメラ観察データの不確実性を測定する対角線行列である。
いくつかの実施形態において、解法手順は、ΛDにIMUからの推定値を格納すること、ΛCに複数の画像シーケンス間の幾何学的制約を格納すること、および以下の線形数式を解くことを含む。(ΛD+ΛC)X=(bD+bC)
方法900は、UAVの動作に関して様々な利点を提供し得る。例えば、方法900は、傾斜面からの離陸、空中からまたは自由落下状態からの離陸、手動で発射されることによる、またはユーザにより投げられることによる離陸など様々な離陸タイプに関する重力方向に対するUAVの向きを決定するのに用いられ得る。したがって、方法900はさらに、この向き情報を用いて慣性センサから取得される続く慣性データを補正するステップを備え得る。さらに、方法900は、初期UAV状態(例えば、位置、向き、速度等)が完全に未知である複数の状況においてさえ、UAVが動作を開始した後に自動的な初期化を提供するのに用いられ得る。
UAVの自動的な初期化を可能とすることに加えて、本開示の複数の方法は、エラーがUAVシステムに生じた後に再初期化またはエラー回復を実行するのにも用いられ得る。再初期化が、UAVが動作を開始した後ではなくむしろエラーが検出された後に実行されることを除いて、再初期化のための複数の方法は、本明細書に記載されている初期化のための複数の方法と実質的に同様である。
図10は、複数の実施形態に係る、複数のセンサを用いたUAV(または何らかの他の可動物体)に関するエラー回復のための方法1000を示す。方法1000の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法1000の複数のステップのうちいくつかまたは全ては、UAVにより搭載される1または複数のプロセッサを用いて実行され得る。方法1000は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
方法1000は、エラーが生じた後に通常の動作が再開されるようUAVを再初期化するのに用いられる再初期化情報を決定するために用いられ得る。本明細書に記載されている初期化情報と同様に、再初期化情報は、UAVの(例えば、重力方向に対する)向き、UAVの位置、またはUAVの速度のうち1または複数を含み得る。例えば、再初期化情報は、UAVの(例えば、重力方向に対する)向き、UAVの位置、UAVの速度を含み得る。いくつかの実施形態において、再初期化情報は、エラーが生じたおよその時点に関して決定される。例えば、時点は、エラーが生じたおよそ50ミリ秒、100ミリ秒、200ミリ秒、300ミリ秒、400ミリ秒、500ミリ秒、600ミリ秒、700ミリ秒、800ミリ秒、900ミリ秒、1秒、2秒、3秒、4秒、5秒、6秒、7秒、8秒、9秒、10秒、30秒、60秒以下の時間だけ後でもよい。他の例として、時点は、エラーが生じるおよそ50ミリ秒、100ミリ秒、200ミリ秒、300ミリ秒、400ミリ秒、500ミリ秒、600ミリ秒、700ミリ秒、800ミリ秒、900ミリ秒、1秒、2秒、3秒、4秒、5秒、6秒、7秒、8秒、9秒、10秒、30秒、60秒以下の時間だけ前でもよい。
ステップ1010において、UAVの動作の間にエラーが生じたことが検出される。UAVの動作は、UAVが電力供給されたこと、UAVが面から離陸したこと、UAVが飛行を開始したことを伴い得る。エラーは、少なくとも1つの慣性センサまたは少なくとも2つの画像センサのうち1または複数における機能不良など1または複数のセンサにおける機能不良を伴い得る。エラーは、データ収集モジュール、画像処理モジュール、センサ融合モジュール、または飛行制御モジュールなどUAVコンポーネントにおける機能不良を伴い得る。例えば、UAVは、反復最適化アルゴリズムを用いるセンサ融合モジュールを含み得、機能不良は、反復最適化推定アルゴリズムが解へ収束し損ねることを伴い得る。オプションで、UAVは、本明細書にさらに記載されているように状態推定モジュールを含み得、状態推定モジュールは、反復状態推定アルゴリズムを用い得る。機能不良は、反復状態推定アルゴリズムが解へ収束し損ねることを伴い得る。
ステップ1020において、慣性データが、UAVにより搭載される少なくとも1つの慣性センサから受信される。慣性データは、UAVの3次元加速度および3次元角速度を示す1または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、エラーが生じたときから開始する時間間隔に亘って少なくとも1つの慣性センサにより取得される1または複数の測定値を含む。
ステップ1030において、画像データが、UAVにより搭載される少なくとも2つの画像センサから受信される。画像データは、UAVの周囲の環境の1または複数の画像を含み得る。いくつかの実施形態において、画像データは、エラーが生じたときから開始する時間間隔に亘って少なくとも2つの画像センサのうちそれぞれにより取得される1または複数の画像を含み得る。
ステップ1040において、UAVに関する再初期化情報が慣性データおよび画像データに基づいて決定される。再初期化情報は、エラーが生じたときのUAVの位置、速度、および/または重力方向に対する向きを含み得る。いくつかの実施形態において、ステップ1040は、本明細書に記載されている複数の画像処理アルゴリズムに従って画像データを処理することを含む。例えば、画像データは、エラーが生じたときから開始する時間間隔に亘って少なくとも2つの画像センサのうちそれぞれにより取得される1または複数の画像を含み得、1または複数の画像は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および/または特徴マッチングアルゴリズムを用いて処理され得る。本明細書に説明されているように、異なる複数の画像センサから取得される複数の画像は、例えば、特徴点マッチングを実行するために、互いに比較され得る。例えば、第1画像センサにより取得される1または複数の画像は、第2画像センサにより取得される1または複数の画像と比較され得る。オプションで、再初期化情報は、他の複数のタイプのセンサからのセンサデータなど何らかの他のデータを要することなく、慣性データおよび画像データのみを用いて決定され得る。いくつかの実施形態において、再初期化情報は、再初期化情報に関する何らかの複数の初期推定値または初期値を要することなく慣性データおよび画像データから直接的に決定される。
いくつかの実施形態において、ステップ1040は、慣性データおよび画像データを用いて再初期化情報の複数の推定値を生成することを伴う。例えば、ステップ1040は、慣性データを用いて再初期化情報の第1推定値を生成し、画像データを用いて再初期化情報の第2推定値を生成することにより実行され得る。第1推定値および第2推定値は、UAVに関する再初期化情報を取得するよう組み合わせられ得る。
いくつかの実施形態において、再初期化情報は、線形最適化アルゴリズム、非線形最適化アルゴリズム、反復最適化アルゴリズム、反復線形最適化アルゴリズム、または反復非線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。再初期化情報を評価するために用いられる最適化アルゴリズムは、関連する複数の時点がUAVが動作を開始した後の時間間隔ではなくむしろ、エラーの発生に続く時間間隔に含まれることを除いて、初期化情報を評価するための本明細書に提示されているアルゴリズムと実質的に同様であり得る。
方法1000は、UAVの動作に関して様々な利点を提供し得る。例えば、方法1000は、UAVが飛行中に空中にあるときなどエラーが生じ得る様々な状況において重力方向に対するUAVの向きを決定するのに用いられ得る。したがって、方法1000は、この向き情報を用いて慣性センサから取得される続く慣性データを補正することを伴い得る。さらに、方法1000は、エラーが生じた後に初期UAV状態(例えば、位置、向き、速度等)が完全に未知である複数の状況においてさえ、UAVが動作を開始した後に自動的な再初期化を提供するのに用いられ得る。例えば、方法1000は、状態推定モジュールにより実装される反復状態推定アルゴリズムを再初期化するのに、決定された再初期化情報を用いることを伴い得る。有利には、本明細書に記載されている複数の再初期化技術は、UAVの動作の間にリアルタイムで複数のエラーを検出し、それらに対応するのに用いられ得、したがって、UAVの動作の信頼性を向上させる。
図11は、複数の実施形態に係る、UAV(または、何らかの他の可動物体)の動作の間に複数のセンサを用いてUAVの1または複数の外部パラメータを較正するための方法1100を示す。方法1100の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法1100の複数のステップのうちいくつかまたは全ては、UAVにより搭載される1または複数のプロセッサを用いて実行され得る。方法1100は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
方法1100は、本明細書で「オンライン」較正と呼ばれ得る、動作の間(例えば、UAVが電力供給されたとき、飛行しているとき等)UAVに関する複数の外部パラメータを決定するのに用いられ得る。いくつかの実施形態において、オンライン較正は、複数の外部パラメータのリアルタイム更新を可能とするようUAVの動作の間、継続的に、または予め定められた複数の時間間隔をおいて実行される。例えば、方法1100は、UAVの動作の間、0.1秒毎に1度実行され得る。
ステップ1110において、1または複数の外部パラメータに関する複数の初期値が受信される。いくつかの実施形態において、複数の外部パラメータは、UAVにより搭載される少なくとも2つの画像センサ間の複数の空間的関係を含む。例えば、複数の空間的関係は、複数の画像センサの相対的な複数の位置および相対的な複数の向きを含み得る。少なくとも2つの画像センサの相対的な複数の位置および相対的な複数の向きは、互いに相対的に、および/または、UAVにより搭載される少なくとも1つの慣性センサの位置および向きに関連して決定され得る。
複数の初期値を取得するのに様々な方法が用いられ得る。いくつかの実施形態において、複数の初期値は、UAVに関連付けられた(例えば、UAV上で搭載される)メモリデバイスから受信され得る。複数の初期値は、UAVの動作の前に決定され得る。例として、複数の初期値は、UAVの動作の前に、本明細書に記載されている複数の反復最適化アルゴリズムを用いて決定され得る。他の例として、複数の初期値は、動作の前にユーザにより測定され得る。オプションで、複数の初期値は、UAVが製造されるときに決定される複数の工場較正値であり得る。いくつかの実施形態において、複数の初期値は、UAVの構成についての知識に基づいて決定され得る。例えば、複数の画像センサおよび/または複数の慣性センサが、特定の固定された複数のロケーション(例えば、複数のセンサの搭載のために利用可能である選択されたロケーションセット)においてUAVに結合され得、複数の初期値は、複数の固定されたロケーションについての情報に基づいて決定され得る。
いくつかの実施形態において、複数の初期値は、複数の外部パラメータの複数の実際値の大まかな近似値を提供するよう意図されており、それ程正確であることは意図されていない。他の複数の較正方法とは対照的に、本明細書に提供されている複数の方法は、オンライン較正を実行するために、複数の外部パラメータに関する正確な複数の初期値を要さない。例えば、複数の外部パラメータ(例えば、複数の相対的な位置)に関する複数の初期値は、およそ0.1cm、0.25cm、0.5cm、0.75cm、1cm、1.25cm、1.5cm、1.75cm、2cm、2.25cm、2.5cm、2.75cm、3cm、または5cm以下だけ複数の外部パラメータの複数の実際値と離れていてもよい。代替的に、複数の外部パラメータ(例えば、複数の相対的な位置)に関する複数の初期値は、少なくともおよそ0.1cm、0.25cm、0.5cm、0.75cm、1cm、1.25cm、1.5cm、1.75cm、2cm、2.25cm、2.5cm、2.75cm、3cm、または5cmだけ複数の外部パラメータの複数の実際値と離れていてもよい。他の例として、複数の外部パラメータ(例えば、複数の相対的な向き)に関する複数の初期値は、およそ0.1度、0.25度、0.5度、0.75度、1度、1.25度、1.5度、1.75度、2度、2.25度、2.5度、2.75度、3度、または5度以下だけ、複数の外部パラメータの複数の実際値と離れていてもよい。代替的に、複数の外部パラメータ(例えば、相対的な複数の位置)に関する複数の初期値は、少なくともおよそ0.1度、0.25度、0.5度、0.75度、1度、1.25度、1.5度、1.75度、2度、2.25度、2.5度、2.75度、3度、または5度だけ、複数の外部パラメータの複数の実際値と離れていてもよい。
ステップ1120において、慣性データが、UAVの動作の間、UAVにより搭載される少なくとも1つの慣性センサから受信される。慣性データは、UAVの3次元加速度および3次元角速度を示す1または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、少なくとも2、3、4、5、6、7、8、9、10、20、30、40、または50の時点に亘って少なくとも1つの慣性センサにより取得された1または複数の測定値を含む。
ステップ1130において、画像データが、UAVの動作の間に、UAVにより搭載される少なくとも2つの画像センサから受信される。画像データは、可動物体の周囲の環境の1または複数の画像を含み得る。いくつかの実施形態において、画像データは、少なくとも2、3、4、5、6、7、8、9、10、20、30、40、または50の時点に亘って少なくとも2つの画像センサのうちそれぞれにより取得された1または複数の画像を含み得る。
ステップ1140において、1または複数の外部パラメータに関する複数の推定値が、複数の初期値、慣性データ、および画像データに基づいて決定される。複数の推定値は、UAVの動作の間に決定され得る。オプションで、慣性データおよび画像データは、複数の外部パラメータの複数の推定値を決定するのに用いられる唯一のセンサデータであり得る。ステップ1140は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および/または特徴マッチングアルゴリズムを用いて、複数の画像センサにより取得された1または複数の画像を処理することを伴い得る。オプションで、ステップ1140は、第1センサにより取得された1または複数の画像を、第2センサにより取得された1または複数の画像と比較することを伴い得る。
いくつかの実施形態において、複数の推定値は、非線形最適化アルゴリズム、線形最適化アルゴリズム、反復最適化アルゴリズム、または反復非線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータの最大事後確率(MAP)推定値を算出することを含み得る。本明細書における複数の実施形態での使用のために適切な例示的なアルゴリズムが以下に提示されている。
UAVは、m台のカメラ(または他の画像センサタイプ)、および1台のIMU(または他の慣性センサタイプ)を含む感知システムを有し得る。本明細書において前に記載されている表記と同様に、複数のカメラの複数の外部パラメータは
および
であり得、1≦i≦mであり得る。本明細書に提供されている他の複数の最適化アルゴリズムと同様に、IMUからの積分推定値および複数のカメラからの応答を含む最適化目的関数が成立し得る。
t
0からt
N([t
0,t
1,t
2,t
3,t
4,t
5,…t
N])までの期間に亘るUAV状態は、
であると仮定され得る。ここで、
は、(動作が開始した時点t
0における位置と相対的な)UAVの現在位置を表し、
は、時間kにおける(UAVの本体座標系と相対的な)UAVの現在の速度を表し、
は、時間kにおける(t
0における向きと相対的な)UAVの現在の向きを表す。初期状況は、
および
であり得る。時間t
k(0≦k≦N)においてi番目の特徴点がj番目のカメラにより最初に観察され、λ
iは、時間t
kにおけるj番目のカメラの平面と垂直な方向への特徴点の深さであると仮定され得る。推定されることになるカメラの複数のパラメータは、
である。ここで、
は、IMUに関連するi番目のカメラの回転を表し、
は、IMUに関連するi番目のカメラの並進を表し、1≦i≦mである。推定されることになる未知のものは、複数のUAV状態
、複数の外部較正パラメータ
、および特徴深さλ
0、λ
1、λ
2、λ
3...λ
Mである。それら全ての未知のものが、本明細書において全体的な状態と呼ばれるベクトルXを形成する。
いくつかの実施形態において、目的方程式は、
と定義される。ここで、
は全体的な状態XをIMUからの積分推定値
に関連付け、
は、全体的な状態Xを画像センサからの推定値
に関連付ける。
は、Xに関する前の情報を符号化する。
および
は、Xに関して非線形であり、したがって、解くのが難しくなり得るので、アルゴリズムは、エラー状態表現δXに対して処理を行い得、複数の関数が、1次のテイラー展開を通じて線形化され得る。
はいくつかのエラー項δX内の全体的な状態Xの推定値である。エラー状態表現δXにおける
は、
ではなく、
(最小表現)であり得ることに気づかれたい。
UAVの動力学の実際の物理的なモデルおよびカメラの幾何学の複数の原理を考慮すると、剰余
および
は、
と定義され得る。ここで、
は、姿勢情報を通じて推定されるフレームjにおける特徴lの座標である
の3つの要素である。複数の数式における他の複数の表記は上記で定義されている。
および
は、δXに関する
および
の導関数であり、以下に説明されるように2つの場合がある。
1つの場合において、特徴lが最初にカメラciにより時間iにおいて観察され、同じ時間においてカメラcjにより観察されたものと仮定する。
ここで、
は正規化された座標である。以下の複数の数式が得られ得る。
他の場合において、特徴lが最初にカメラciにより時間iにおいて観察され、続く時間jにおいてカメラcjにより観察されたものと仮定する。
上記の複数の数式を目的方程式へ代入することにより、以下の数式が得られ得る。
いくつかの実施形態において、初期値が提供され得、目的方程式が反復して解かれ得る。初期値は、本明細書に記載されているように初期化または再初期化アルゴリズムを用いて、IMUからの積分推定値を最後の時点からの最適化された推定値に加算することにより、または
として初期化することにより得られ得る。目的方程式は、δXを取得し、
まで
に従って
を更新するよう反復して解かれ得る。最後に、収束の後、
がシステムにより出力されるUAV状態である。
いくつかの実施形態において、δXが複数の反復を経てもゼロに近づかず、パラメータ較正アルゴリズムが解へ収束し損ねた場合、このことはシステムにおけるエラーとして見なされ得、本明細書に記載されるようにエラーから回復するよう再初期化が実行され得る。
工場での較正後の複数の外部パラメータおよび/または最後の時点からの複数のパラメータの最適な推定値が、UAV状態の一部として目的方程式へ入力され得、複数の外部パラメータの推定における何らかのエラーを補正し、目的方程式を最小化するために、数式が反復して解かれ更新され得る。システムは、リアルタイムで複数の外部パラメータにおけるエラーを検出し(δXを解き)得、エラーを補正し(
を更新し)得る。
オプションで、ステップ1140に続き、UAVの状態(例えば、位置、向き、および/または速度)が、複数の外部パラメータに関する複数の推定値に基づいて決定され得る。例えば、複数の外部パラメータは、状態情報を算出するために、複数の画像センサおよび複数の慣性センサからのセンサデータを融合するのに用いられ得る。いくつかの実施形態において、状態情報は、UAVの動作の間の前の時点における前のUAV状態に関連して決定される。前の時点は、状態情報が利用可能である第1時点、例えば、UAVが動作を開始した、初期化が起こった、または再初期化が起こった時点であり得る。代替的に状態情報は、前のUAV状態と相対的にではなくむしろ全体座標系に関連して決定され得る。
図12は、複数の実施形態に係る、初期構成を有する複数のセンサを有するUAV(または、何らかの他の可動物体)の1または複数の外部パラメータを較正するための方法1200を示す。方法1200の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法1200の複数のステップのうちいくつかまたは全ては、UAVにより搭載される1または複数のプロセッサを用いて実行され得る。方法1200は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。方法1100と同様に、方法1200は、UAVの動作の間にオンライン較正を実行するのに用いられ得る。
ステップ1210において、UAVにより搭載される複数のセンサの初期構成が修正されたことが検出される。複数のセンサは、少なくとも1つの慣性センサと、少なくとも2つの画像センサとを含み得る。初期構成は、複数のセンサのうち少なくとも1つのセンサを除く、複数のセンサに少なくとも1つのセンサを追加する、複数のセンサうち一のセンサの位置および/または向きを変化させる、またはこれらを組み合わせにより修正されたかもしれない。いくつかの実施形態において、初期構成は、UAVの動作の前に(例えば、UAVが飛行する、および/または電力供給される前に)修正され、修正はUAVの動作の間に検出される。他の複数の実施形態において、構成はUAVの動作の間に修正される。修正を検出するのに様々な方法が用いられ得る。例えば、本明細書に説明されている反復処理におけるδX内のδθおよびδTの値がゼロに近くなく、追加の更新が実行されなければならないことを意味している場合に、修正が検出され得る。
ステップ1220において、慣性データが、UAVの動作の間に、UAVにより搭載される少なくとも1つの慣性センサから受信される。慣性データは、UAVの3次元加速度および3次元角速度を示す1または複数の測定値を含み得る。いくつかの実施形態において、慣性データは、少なくとも2、3、4、5、6、7、8、9、10、20、30、40、または50の時点に亘って少なくとも1つの慣性センサにより取得された1または複数の測定値を含む。
ステップ1230において、画像データが、UAVの動作の間、UAVにより搭載される少なくとも2つの画像センサから受信される。画像データは、可動物体の周囲の環境の1または複数の画像を含み得る。いくつかの実施形態において、画像データは、少なくとも2、3、4、5、6、7、8、9、10、20、30、40、または50の時点に亘って少なくとも2つの画像センサのうちそれぞれにより取得された1または複数の画像を含み得る。
ステップ1240において、初期構成が修正されたことの検出に応答して、1または複数の外部パラメータが推定される。1または複数の外部パラメータは、修正された構成を有する複数のセンサ間の複数の空間的関係を含み得る。いくつかの実施形態において、複数の空間的関係は、互いに相対的に、および/または慣性センサに関連して決定され得る、複数の画像センサの相対的な複数の位置および相対的な複数の向きを含む。複数の外部パラメータは、様々なやり方で推定され得る。いくつかの実施形態において、1または複数の外部パラメータは、ステップ1220および1230において受信された慣性データおよび画像データに基づいて推定される。オプションで、慣性データおよび画像データは、複数の外部パラメータの複数の推定値を決定するのに用いられる唯一のセンサデータであり得る。ステップ1240は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および/または特徴マッチングアルゴリズムを用いて、複数の画像センサにより取得された1または複数の画像を処理することを伴い得る。オプションで、ステップ1240は、第1センサにより取得された1または複数の画像を、第2センサにより取得された1または複数の画像と比較することを伴い得る。
いくつかの実施形態において、複数の外部パラメータは、1または複数の外部パラメータに関する複数の初期値に基づいて推定される。 複数の初期値を取得するのに様々な方法が用いられ得る。いくつかの実施形態において、複数の初期値は、UAVに関連付けられた(例えば、UAV上で搭載される)メモリデバイスから受信され得る。複数の初期値は、UAVの動作の前に決定され得る。例として、複数の初期値は、UAVの動作の前に、本明細書に記載されている複数の反復最適化アルゴリズムを用いて決定され得る。他の例として、複数の初期値は、動作の前にユーザにより測定され得る。オプションで、複数の初期値は、UAVが製造されるときに決定される複数の工場較正値であり得る。いくつかの実施形態において、複数の初期値は、UAVの構成についての知識に基づいて決定され得る。例えば、複数の画像センサおよび/または複数の慣性センサが、特定の固定されたロケーション(例えば、複数のセンサの搭載のために利用可能である選択されたロケーションセット)においてUAVに結合され得、複数の初期値は、複数の固定されたロケーションについての情報に基づいて決定され得る。
いくつかの実施形態において、複数の外部パラメータは、非線形最適化アルゴリズム、線形最適化アルゴリズム、反復最適化アルゴリズム、反復非線形最適化アルゴリズム、または反復線形最適化アルゴリズムなど最適化アルゴリズムを用いて推定される。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータの最大事後確率(MAP)推定値を算出することを含み得る。反復最適化アルゴリズムは、方法1100に関して本明細書において前に記載された複数のアルゴリズムと同様であり得る。
オプションで、ステップ1240に続き、UAVの状態(例えば、位置、向き、および/または速度)が、複数の推定された外部パラメータに基づいて決定され得る。例えば、複数の外部パラメータは、状態情報を算出するために、複数の画像センサおよび複数の慣性センサからのセンサデータを融合するのに用いられ得る。いくつかの実施形態において、状態情報は、UAVの動作の間の前の時点における前のUAV状態に関連して決定される。前の時点は、状態情報が利用可能である第1時点、例えば、UAVが動作を開始した、初期化が起こった、または再初期化が起こった時点であり得る。代替的に状態情報は、前のUAV状態と相対的にではなくむしろ全体座標系に関連して決定され得る。
本明細書に記載されている自動的パラメータ較正方法(例えば、方法1100、1200)は、例えば、複数のセンサの互いに相対的な空間的関係を変化させ得る振動、衝突、または他の複数のイベントに起因して、複数の外部パラメータがUAVの動作の間に変化し得るので、UAVセンサデータ処理の正確性および信頼性を確実にするという点で有益であり得る。例えば、本明細書に記載されている複数の方法は、動作の間に複数の空間的関係の複数の推定値における複数のエラーを検出し補正するのと同じように、UAVの動作の間の複数の画像センサと複数の慣性センサとの間の複数の空間的関係(例えば、複数の相対的な位置および向き)を継続的に推定するのに用いられ得る。追加的に本明細書に記載されているオンライン較正の実装は、本明細書で「オフライン」較正と呼ばれ得るUAVの動作の前の正確な較正の必要性を有利に取り除き得る。このことは、UAVのセンサ構成が(例えば、1または複数のセンサを追加する、1または複数のセンサを除く、1または複数のセンサを動かすことにより)修正され得、センサ構成に関する新たな複数の外部パラメータを決定するために長々しいオフライン較正手順を要することなくUAVが修正の直後に動作させられ得る「プラグアンドプレイ」アプローチを可能とし得る。いくつかの実施形態において、本明細書に提供されている複数のパラメータ較正方法は、UAVの動作の前に何らかのパラメータ較正を実行することなく、UAVの動作の間に複数の外部パラメータが決定されることを可能とする。
図13は、複数の実施形態に係る、UAV(または、何らかの他の可動物体)の動作の間に複数のセンサを用いてUAVに関する状態情報を推定するための方法1300を示す。方法1300の複数のステップは、本明細書に記載されている複数のシステムおよび複数のデバイスのいずれかの実施形態を用いて実行され得る。例えば、方法1300の複数のステップのうちいくつかまたは全ては、UAVにより搭載される1または複数のプロセッサを用いて実行され得る。方法1300は、本明細書に記載されている様々な方法のいずれかの実施形態と組み合わせて実行され得る。
方法1300は、動作の間(例えば、UAVが電力供給されているとき、飛行しているとき等)のUAVの現在の状態を推定するのに用いられ得る。状態推定は、UAVの位置、向き、速度、および/または加速度など様々なタイプの状態情報を決定することを伴い得る。状態情報は、より早い時点におけるUAVの前の状態に関連して決定され得、または絶対的な点から(例えば、全体座標系と相対的に)決定され得る。いくつかの実施形態において、状態推定は、複数の外部パラメータのリアルタイム更新を可能とするよう、UAVの動作の間、継続的に、または予め定められた複数の時間間隔をおいて実行される。例えば、方法1300は、UAVの動作の間、0.1秒毎に1度実行され得る。
ステップ1310において、UAVに関する前の状態の情報が受信される。前の状態の情報は、UAVの動作の間の前の時点におけるUAVの位置、向き、速度、および/または加速度を含み得る。いくつかの実施形態において、前の状態の情報は、反復最適化アルゴリズム、例えば、方法1300のステップ1340において用いられたものと同じアルゴリズムを用いて取得される。1または複数の前の時点からの状態情報は、続く複数の時点に関する更新された状態情報の推定を容易にするために、UAVに関連付けられたメモリデバイスに格納され得る。
ステップ1320において、UAVにより搭載される少なくとも1つの慣性センサからの慣性データが受信される。慣性データは、UAVの動作の間の少なくとも2、3、4、5、6、7、8、9、10、20、30、40または50の時点に亘って慣性センサにより取得される慣性測定データを含み得る。慣性データは、UAVの3次元加速度および3次元角速度を示し得る。
ステップ1330において、UAVにより搭載される少なくとも2つの画像センサからの画像データが受信される。画像データは、UAVの動作の間の少なくとも2、3、4、5、6、7、8、9、10、20、30、40または50の時点に亘って各画像センサにより取得される複数の画像を含み得る。複数の画像は、UAVの周囲の環境のものであり得る。
ステップ1340において、UAVに関する更新された状態情報が、UAVの動作の間の前の状態の情報、慣性データおよび/または画像データに基づいて決定される。更新された状態情報は、UAVの位置、向き、速度、および/または加速度を含み得る。更新された状態情報は、現時点におけるUAVに関する現在の状態情報であり得る。オプションで、慣性データおよび画像データは、更新された状態情報を決定するのに用いられる唯一のセンサデータであり得る。ステップ1340は、特徴点検出アルゴリズム、オプティカルフローアルゴリズム、および/または特徴マッチングアルゴリズムを用いて、各画像センサにより取得された複数の画像を処理することを伴い得る。オプションで、ステップ1340は、第1センサにより取得された1または複数の画像を、第2センサにより取得された1または複数の画像と比較することを伴い得る。
いくつかの実施形態において、複数の推定値は、非線形最適化アルゴリズム、線形最適化アルゴリズム、反復最適化アルゴリズム、反復非線形最適化アルゴリズム、または反復線形最適化アルゴリズムなど最適化アルゴリズムを用いて決定される。反復最適化アルゴリズムは、複数の初期値、慣性データ、および画像データに基づいて1または複数の外部パラメータの最大事後確率(MAP)推定値を算出することを含み得る。本明細書における複数の実施形態での使用のために適切な例示的なアルゴリズムが以下に提示されている。
UAVは、m台のカメラ(または他の画像センサタイプ)、および1台のIMU(または他の慣性センサタイプ)を含む感知システムを有し得る。IMUの出力頻度は、複数のカメラの出力頻度より高くなり得る。複数のカメラの複数の外部パラメータは、
および
であり得る。ここで、
は、IMUに関連するi番目のカメラの回転を表し、
は、IMUに関連するi番目のカメラの並進を表し、1≦i≦mである。本明細書に提供されている他の複数の最適化アルゴリズムと同様に、IMUからの積分推定値および複数のカメラからの応答を含む最適化目的関数が成立し得る。
t
0からt
N([t
0,t
1,t
2,t
3,t
4,t
5,...t
N])までの期間に亘るUAV状態は、
であると仮定され得る。ここで、
は、(動作が開始した時点t
0における位置と相対的な)UAVの現在位置を表し、
は、時間kにおける(UAVの本体座標系と相対的な)UAVの現在の速度を表し、
は、時間kにおける(t
0における向きと相対的な)UAVの現在の向きを表す。初期状況は、
および
であり得る。(N+1)×mの画像において観察される特徴点の数はMであり得る。i番目の特徴点が時間t
k(0≦k≦N)においてj番目のカメラにより最初に観察され、λ
iは、時間t
kにおいてj番目のカメラの平面と垂直な方向への特徴点の深さであると仮定され得る。推定されることになる未知のものは、複数のUAV状態
、複数の外部較正パラメータ
、および特徴深さλ
0、λ
1、λ
2、λ
3...λ
Mである。それら全ての未知のものが、本明細書において全体的な状態と呼ばれるベクトルXを形成する。
いくつかの実施形態において、目的方程式は、
として定義される。ここで、
は、前の情報(Xに関する推定値を表す)を格納し、
は、全体的な状態XとIMUからの積分推定値
との間の関係であり、
は、全体的な状態Xと複数の画像センサ
からの推定値との間の関係である。数式
および
は、本明細書に説明されているように導き出され得る。
および
は非線形であるので、それらは、1次のテイラー展開により展開され
および
が取得され得る。
上記の2つの数式を目的方程式に代入することにより以下の数式が得られ得る。
いくつかの実施形態において、初期値が提供され得、目的方程式はガウス・ニュートンアルゴリズムを用いて反復して解かれ得る。初期値は、本明細書に記載されているように初期化または再初期化アルゴリズムを用いて、IMUからの積分推定値を最後の時点からの最適化された推定値に加算することにより、または
として初期化することにより取得され得る。目的方程式は、δXを取得し、目的方程式を最小化するよう
まで
に従って
を更新するよう反復して解かれ得る。したがって、
は、システムにより出力されるUAV状態である。
いくつかの実施形態において、δXが複数の反復を経てもゼロに近づかず、状態推定アルゴリズムが解へ収束し損ねた場合、このことはシステムにおけるエラーとして見なされ得、本明細書に記載されるようにエラーから回復するよう再初期化が実行され得る。
いくつかの実施形態において、1または複数の前の時点からのセンサデータが、現在の状態情報を推定するのに用いられ得る。例えば、少なくとも1、2、3、4、5、6、7、8、9、10、20、30、40または50の前の時点からの前の慣性データおよび/または画像データが、現在の状態情報を推定するのに用いられ得る。スライディングウィンドウフィルタなど、UAVの現在の状態を推定するのに用いられる前の状態の情報の量を決定するのに、様々な方法が用いられ得る。
図14は、複数の実施形態に係る、前の状態の情報を選択するためのスライディングウィンドウフィルタを示す。スライディングウィンドウのサイズは、Kの時点からのセンサデータ(例えば、慣性データおよび/または画像データ)が現在の状態を推定するのに用いられるようKであり得る。図14ではK=4であるが、Kは、20など何らかの適切な値であり得ることが理解されよう。Kの時点は、K−1の前の時点と現時点とを含み得る。新たなセンサデータが続く時点において取得されるとき、新たなデータがスライディングウィンドウに追加され得、前の時点からのデータは、一定のウィンドウサイズKを維持するためにスライディングウィンドウから除かれ得る。例えば、図14の描写において、第1スライディングウィンドウ1400aは、時点1―4からのデータを保持しており、第2スライディングウィンドウ1400aは、時点2―5からのデータを保持しており、第3スライディングウィンドウ1400cは、時点3―6からのデータを保持しており、第4スライディングウィンドウ1400dは、時点4―7からのデータを保持している。いくつかの実施形態において、破棄される時点は、スライディングウィンドウにおける最も早い時点である(例えば、先入れ先出し法(FIFO)。他の複数の実施形態において、破棄される時点は最も早い時点でなくてもよく、どの時点を維持して、どの時点を破棄するか決定するようFIFO以外の、先入れ後出し法(FILO)など他の複数のマージナリゼーションアプローチ、またはFIFOとFILOとを混合させた方法が用いられ得る。いくつかの実施形態において、複数の時点が、特定の時点とその周辺の複数の時点との間の視差をチェックすることに基づいて破棄される。視差が安定した算術の解のために十分に大きくない場合、例えば、シュール補行列マージナリゼーション方法を用いて時点はマージナライズされ、捨てられ得る。
いくつかの実施形態において、bpおよびΛpは、現在の状態を推定するのに用いられる前の複数の時点からの情報を格納し得る。例えば、bpおよびΛpは、UAVが動作を開始してから(またはエラーにより再初期化されてから)現時点までの複数の前の時点におけるセンサデータ(例えば、慣性データおよび/または画像データ)を格納し得る。オプションで、bpおよびΛpは、本明細書に記載されているスライディングウィンドウに既に含まれているKの時点からのデータを除外し得る。そのような複数の実施形態において、データがスライディングウィンドウから破棄されたとき、それはbpおよびΛpを更新するのに用いられ得る。
いくつかの実施形態において、アルゴリズムは、入力されたセンサデータのエラーをリアルタイムで検出するのに用いられ得る。例えば、エラーは、複数の画像センサのうち1つが機能不良に陥った、または妨害された場合に生じ得る。他の例として、エラーは、画像センサにより取得された画像データに過度のノイズが存在する場合に生じ得る。エラー検出は、δXを解き
を更新するときに、画像データおよび/または慣性データに対応するδXが収束しているか(例えば、δXが複数の反復に亘ってより小さくなっている、および/またはゼロに近づいているか)を検出することにより実行され得る。δXが収束している場合、センサデータにはエラーがないと見なされ得る。しかし、δXが収束しない場合、センサデータにはエラーがあると見なされ得、収束に関する問題を引き起こしているセンサデータは、最適化処理から除かれ得る。
オプションで、ステップ1340に続いて、更新された状態情報が、例えば、UAVの動きを制御するための制御モジュールへ出力され得る。例えば、制御モジュールは、UAVの1または複数の推進ユニットを制御するよう、例えば、自律または半自律ナビゲーション、障害物回避、ルートプランニング、環境マッピング、およびその他を有効化する、更新された状態情報を用い得る。
方法1300は、UAVの動作に関していくつかの利点を提供し得る。例えば、本明細書に記載されている複数の状態推定方法は、コンピューテイングリソースを節約しつつ、他の複数のタイプの状態推定方法よりも正確であり得る。推定された状態情報は、慣性データのみまたは画像データのみを用いて推定された状態情報よりも正確であり得る。いくつかの実施形態において、状態情報(例えば、位置情報)に関する複数の推定値は、およそ0.1cm、0.25cm、0.5cm、0.75cm、1cm、1.25cm、1.5cm、1.75cm、2cm、2.25cm、2.5cm、2.75cm、3cm、または5cm以下だけ状態情報の複数の実際値から離れている。正確性は、より多くの画像センサを用いることによりさらに高められ得る。追加的に、本明細書における複数の実施形態は、複数の画像センサでの使用のために適切であり、したがって、複数の画像センサのうち1または複数が機能不良に陥った、または妨害された場合であってもシステムが動作を継続することを可能とする。いくつかの実施形態において、状態推定方法はノイズを低減し、したがって、UAVシステムの堅牢性および安定性を向上させる。
図15は、複数の実施形態に係る、UAV(または、何らかの他の可動物体)に関する状態推定および/またはパラメータ較正を実行するための方法1500を示す。方法1500において、慣性データ1502および画像データ1504が、本明細書に記載されているように、UAVにより搭載される少なくとも1つの慣性センサおよび少なくとも2つの画像センサから受信される。慣性データ1502および画像データ1504は、線形スライディングウィンドウフィルタ1506および非線形スライディングウィドウフィルタ1508に入力され得る。線形スライディングウィンドウフィルタ1506は、新たなデータが受信されたときに、FIFOアプローチを利用して複数の前の時点からのデータを破棄し得る。非線形スライディングウィンドウフィルタ1508は、新たなデータが受信されたときに、マージナリゼーションアプローチを利用して複数の前の時点からのデータを破棄し得る。
いくつかの実施形態において、状態推定および/またはパラメータ較正は、非線形スライディングウィドウフィルタ1508により選択された慣性データおよび画像データを非線形ソルバー1510へ入力して、状態情報および/または複数の外部パラメータに関する複数の推定値を提供する解を生成することにより実行される。非線形ソルバー1510は、本明細書に記載されている複数の実施形態など非線形最適化アルゴリズムであり得る。方法1500は、解1512を生成するために非線形ソルバー1510が収束したかを検出することを含み得る。非線形ソルバー1510が収束し、解を生成した場合、解は、例えば、飛行制御モジュールなど他のUAVコンポーネントへ出力1514され得る。方法はその後、新たなセンサデータの受信へと進み、前のセンサデータを非線形スライディングウィドウフィルタ1508を介してマージナライズにより取り除き1516、処理は、更新された状態に関する複数の推定値の生成を継続するよう繰り返され得る。
非線形ソルバー1510が収束し損ねた場合、方法1500は、線形ソルバー1518の使用へと進み、状態情報に関する複数の推定値を提供する解を生成し、解1514を出力し得る。線形ソルバー1518は、本明細書に記載されている複数の実施形態など線形最適化アルゴリズムであり得る。いくつかの実施形態において、非線形ソルバー1510が収束し損ねたことはエラーとして見なされ、線形ソルバー1518は、エラーから回復するために再初期化アルゴリズムを実装し得る。線形ソルバー1518により提供される解(例えば、再初期化情報)は、非線形ソルバー1510により実行される続く状態に関する複数の推定値に関する複数の初期値として用いられ得る。
本明細書に記載されている様々な方法は、何らかの適切なシステムまたはデバイスにより実装され得る。いくつかの実施形態において、本明細書における複数の方法は、コンピューティングプラットホーム、飛行制御モジュール、センサモジュール、およびデータ取得サブシステムを含むハードウェアプラットフォームにより実行される。コンピューティングプラットホームは、本明細書に記載されている様々なセンサ融合アルゴリズムに従ってセンサデータを受信および処理するセンサ融合モジュールを含み得る。コンピューティングプラットホームは、ハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを用いて実装され得る。例えば、いくつかの実施形態において、コンピューティングプラットホームは、ARMアーキテクチャのCPUおよびGPUコンピューティングプラットホームを設計する基準としてNVIDIA Tegra K1を利用する。コンピューティングプラットホームは、安定性および拡張可能性など特定の性能に関する要件を満たすよう設計され得る。表1は、コンピューティングプラットホームに関するいくつか例示的な要件およびテスト方法を提供する。
飛行制御モジュールは、UAVの位置、向き、速度、および/または加速度を制御するための複数のコンポーネントなどUAVの動作を制御するためのハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを含み得る。いくつかの実施形態において、飛行制御モジュールは、例えば、所望される位置、向き、速度等を実現するために、UAVの複数の推進ユニットの作動を制御するための1または複数のコンポーネントを含み得る。飛行制御モジュールは、プラットフォームからデータ(例えば、状態情報)を受信し、同データを1または複数の飛行制御アルゴリズムへの入力として用いるために、コンピューティングプラットホームに通信可能に結合され得る。例えば、飛行制御モジュールは、コンピューティングプラットホームから、例えば、少なくとも50Hzの周波数でデータを受信するために、下位の複数のAPIを含み得る。
センサモジュールは、本明細書に記載されているような少なくとも1つの慣性センサおよび少なくとも2つの画像センサなど1または複数のセンサを含み得る。いくつかの実施形態において、センサモジュールは、前方に(例えば、UAVの動きの方向に沿って)面して双眼の構成で設定された2つのカメラと、下方に面して単眼の構成で設定された1つのカメラとを含む3つのグローバルシャッタカメラを含む。複数のカメラは、およそ20Hzのサンプリング周波数を有し得る。いくつかの実施形態において、センサモジュールは、少なくとも100Hzの周波数でUAVの角速度および直線加速度を取得するよう構成された1つのIMUを含む。IMUは、例えば、ジャイロスコープからの補正されていない積分を用いて角度値を提供するようにも構成され得る。オプションで、センサモジュールは、コンパス、気圧計、GPS、および/または超音波センサ(例えば、前方に向けられた、および下方に向けられた複数の超音波センサ)など他の複数のタイプのセンサも含み得る。センサモジュールのための複数のセンサは、UAV本体と相対的な複数のセンサの動きを制限する剛性の複数の接続部を用いて本体と結合され得る。オプションで、複数のセンサの所望されない複数の動きを低減するために、ダンパまたは緩衝器など複数の振動低減システムが複数のセンサとUAVモジュールとの間に設置され得る。
データ取得サブシステムは、様々なセンサからのセンサデータをコンピューティングプラットホームおよび/または飛行制御モジュールへ送信するために、センサモジュールに動作可能に結合され得る。データ取得システムは、USBインタフェース、シリアルポート、またはこれらの組み合わせなど何らかの適切なタイプの通信インタフェースを利用し得る。いくつかの実施形態において、複数の画像センサと複数の超音波センサとが複数のUSBインタフェースを介して結合され、IMUと他のセンサタイプが複数のシリアルポートを介して結合される。
図16は、複数の実施形態に係る、複数のセンサを用いてUAVを制御するためのシステム1600を示す。システム1600は、本明細書に記載されている複数の方法のうちいずれかの実施形態を実装するのに用いられ得る。システム1600の複数のコンポーネントのうち少なくともいくつかまたは全てがUAVにより運ばれ得る。システム1600は、センサ融合ユニット1601a(破線より上方の複数のコンポーネント)、および飛行制御ユニット1601b(破線より下方の複数のコンポーネント)の2つの異なる機能ユニットに分割されるものと見なされ得る。センサ融合ユニット1601aおよび飛行制御ユニット1601bは、データ、複数の制御信号、およびその他の交換のために互いに通信可能に結合され得る。いくつかの実施形態において、センサ融合ユニット1601aおよび飛行制御ユニット1601bは、一方のユニットが機能不良に陥った場合に他方が動作を継続出来るよう互いに独立して動作するよう構成されている。例えば、センサ融合ユニット1601aが機能不良を経験した場合に、飛行制御ユニット1601bは、例えば、緊急着陸動作を実行するために独立して機能を継続するよう構成され得る。
いくつかの実施形態において、システム1600は、飛行制御モジュール1604に動作可能に結合されたセンサ融合モジュール1602を含む。センサ融合モジュール1602は、1または複数の慣性センサ1606および1または複数の画像センサ1608など複数のセンサにも結合され得る。センサ融合モジュール1602は、本明細書に記載されている初期化、エラー回復、状態推定、および外部パラメータ較正方法を実行するために、慣性センサ1606および画像センサ1608からの慣性データおよび画像データを用いる1または複数のプロセッサを含み得る。オプションで、センサ融合モジュール1602は、上記および本明細書に記載されているように、画像データを処理するための画像処理モジュールに結合され、またはそれを含み得る。センサ融合モジュール1602により生成された複数の結果は、様々な飛行動作を容易にするために、飛行制御モジュール1604へ送信され得る。複数の飛行動作は、センサ融合モジュールからの複数の結果、遠隔端末1610から受信した複数のユーザコマンド、他の複数のセンサ1612(例えば、GPSセンサ、磁力計、超音波センサ)から受信したセンサデータ、またはこれらの組み合わせに基づいて実行され得る。例えば、飛行制御モジュール1604は、例えば、ナビゲーション、障害物回避、およびその他などUAVの動作のために、UAVの位置、向き、速度、および/または加速度を制御するために1または複数の推進ユニット1614(例えば、複数のロータ)へ送信される複数の制御信号を決定し得る。
システム1600の複数のコンポーネントは、様々なタイプおよび組み合わせのハードウェア要素を用いて実装され得る。例えば、センサ融合モジュール1602は、1または複数のプロセッサ、および1または複数のプロセッサにより実行可能な複数の命令を格納したメモリを含む何らかの適切なハードウェアプラットフォームを用いて実装され得る。システム1600の異なる複数のコンポーネント間の複数の接続は、様々なタイプの通信インタフェース、例えば、USBインタフェース、シリアルポート、パルス幅変調チャネル、またはこれらの複数の組み合わせなどアナログまたはデジタルインタフェースを用いて実装され得る。そのような複数のインタフェースは、複数の有線または無線通信方法を利用し得る。例えば、画像センサ1608は、複数のUSBインタフェースを介してセンサ融合モジュール1602に結合され得、慣性センサ1606は、複数のシリアルポートを介してセンサ融合モジュール1602に結合され得る。センサ融合モジュール1602は、複数のシリアルポートを介して飛行制御モジュール1604に結合され得る。飛行制御モジュール1604は、無線制御(RC)インタフェースなど無線通信インタフェースを介して遠隔端末1610に結合され得る。飛行制御モジュール1604は、パルス幅変調を介して推進ユニット1614へ複数のコマンドを送信し得る。
いくつかの実施形態において、センサ融合モジュール1602は、本明細書に記載されているように慣性センサ1606からの慣性データと画像センサ1608からの画像データを組み合わせるのに用いられる。オプションで、センサ融合モジュール1602は、UAVに関する状態情報(例えば、速度または加速度など動き情報)を推定するために、飛行制御モジュール1604からの内部データとセンサ1606、1608からのセンサデータとを組み合わせ得る。センサ融合モジュール1602は、Jetson TK1(TK1)プラットフォームなど何らかの適切なコンピューティングプラットホームを用い得る。画像センサ1608は、USBインタフェースを介してTK1プラットフォームと通信可能に結合され得る。TK1は、適切な複数のドライバを用いて、Ubuntu 14.04オペレーティングシステムなど何らかのオペレーティングシステムを実行し得る。いくつかの実施形態において、ロボットオペレーティングシステム(ROS)がデータ送信のために用いられ得る。表2は、センサ融合モジュール1602に関するいくつかの例示的なハードウェアおよびソフトウェアコンポーネントを提供する。
本明細書における複数のシステム、デバイス、および方法は、1、2、3、4、5、6、7、8、9、10、15、20、30、40、50、またはそれらより多くの画像センサなど任意の適切な数の画像センサを利用し得る。複数の画像センサは、例えば、対応する数の通信インタフェースを介して画像データを受信し分析するために(例えば、特徴点検出およびマッチングを実行するために)画像化処理モジュールの1または複数のプロセッサに同時に結合され得る。しかし、いくつかの実施形態において、特定のハードウェアプラットフォームは、多数の画像センサ(例えば、6より多くの画像センサ、10より多くの画像センサ)への同時の結合をサポートすることは可能でないかもしれない。例えば、いくつかの画像処理モジュールは、複数の画像センサのうち全てが同時に結合され得るのに十分な数の通信インタフェースを含まないかもしれない。そのような複数の実施形態において、複数の画像センサは全てが、同じ時間においてモジュールに同時に結合され得ないかもしれない。例として、異なる複数の時間において複数の画像センサからなる特定のサブセットをモジュールに選択的に結合するよう切り替え機構が用いられ得る。
図22は、複数の実施形態に係る、切り替え可能に結合された複数の画像センサを有するシステム2200を示す。システム2200の様々なコンポーネントは、本明細書に提示されている他の複数のシステムおよび複数のデバイスのいずれかの実施形態と組み合わせられ得、および/またはそれらと置き換えられ得る。システム2200は、本明細書に記載されている複数の方法のうち何れか、例えば、非同期データ収集スキーム2100と組み合わせて用いられ得る。システム2200は、複数の画像センササブセット2202(例えば、本明細書に描写されているようなnの異なるサブセット)を含み得る。2、3、4、5、6、7、8、9、10、15、20、30、40、50、またはそれらより多くのサブセットなど任意の数の画像センササブセットが用いられ得る。各画像センササブセットは、1、2、3、4、5、6、7、8、9、10、15、20、30、40、50、またはそれらより多くの画像センサなど任意の数の個々の画像センサを含み得る。各画像センササブセットは、同じ数の画像センサを含み得る。代替的に、複数の画像センササブセットのうちいくつかまたは全ては、異なる複数の数の画像センサを含み得る。各画像センササブセットは、画像処理モジュール2206に結合されている切り替え機構2204と結合され得る。切り替え機構2204は、センサの複数のサブセットをモジュール2206(例えば、スイッチ、中継装置等)に選択的に結合するためのハードウェアおよびソフトウェアコンポーネントの何らかの適切な組み合わせを含み得る。画像処理モジュール2206は、本明細書に説明されているように、特徴点検出および/またはマッチングを実行するために画像データを処理するために用いられ得る。いくつかの実施形態において、画像処理モジュール2206は、初期化、エラー回復、パラメータ較正、および/または状態推定を実行するためにセンサ融合モジュールのコンポーネントに結合され、および/またはそのコンポーネントである。
切り替え機構2204は、画像処理モジュール2206が単一サブセットから一時に画像データを受信および処理するよう、一時に画像処理モジュール2206へ単一の画像センササブセットのみを結合するよう構成され得る。システム2200の複数の画像センサのうち全てからデータを取得するために、切り替え機構2204は、画像処理モジュール2206に結合されるサブセットを交替させるよう制御され得る。例えば、画像データは、第1画像センササブセットをモジュール2206へ結合し、第1サブセットから画像データを受信し、第2画像センササブセットをモジュール2206へ結合し、第2サブセットから画像データを受信し、全てのサブセットからの複数の画像が受信されるまでこれを続けることにより受信され得る。切り替え機構2204が異なる複数のサブセット間で切り替えを行う順序および頻度は、所望されるように変更され得る。このアプローチは、画像処理モジュール2206が常に複数のセンサのうちそれぞれとの同時の複数の接続を維持することを要することなく、画像データが比較的多数の画像センサから受信されることを可能とする。このことは、多数のセンサからの画像データを一度に処理することに関連するコンピューティングロードを低減しつつ、(例えば、プラグアンドプレイのために)任意の数の画像センサに適応するようシステムの柔軟性を向上させるという点で有利であり得る。
本明細書に記載されている複数のシステム、デバイス、および方法は、多種多様な可動物体に適用され得る。前に言及したように、本明細書における航空機についてのいずれの記載も、何らかの可動物体に当てはまり得、およびそのために用いられ得る。本願発明の可動物体は、空中(例えば、固定翼航空機、回転翼航空機、または固定翼も回転翼も有さない航空機)、水中(例えば、船または潜水艦)、地上(例えば、車、トラック、バス、バン、バイクなどの自動車、棒、釣竿などの可動構造または枠体、または電車)、地下(例えば、地下鉄)、宇宙空間(例えば、宇宙飛行機、衛星、または宇宙探査用装置)、またはこれら環境の何らかの組み合わせなど何らかの適切な環境内を動くよう構成され得る。可動物体は、本明細書の他の箇所において記載されている輸送体などの輸送体であり得る。いくつかの実施形態において、可動物体は、人または動物など生体に搭載され得る。適切な複数の動物は、avines、イヌ科の動物、ネコ科の動物、ウマ科の動物、ウシ亜科の動物、羊、豚、イルカ、齧歯動物、または昆虫を含み得る。
可動物体は、環境内で、6自由度(例えば、並進3自由度、および回転3自由度)に関して自由に動くことが可能であり得る。代替的に、可動物体の動きは、予め定められた経路、軌道、または向きによってなど1または複数の自由度に関して制約を受け得る。動きは、エンジンまたはモータなどの何らかの適切な作動機構により作動させられ得る。可動物体の作動機構は、電気エネルギー、磁気エネルギー、太陽エネルギー、風力エネルギー、重力エネルギー、化学エネルギー、核エネルギー、またはこれらの何らかの適切な組み合わせなど何らかの適切なエネルギー源により電力供給され得る。可動物体は、本明細書の他の箇所において記載されているように、推進システムを介して自己推進し得る。オプションで、推進システムは、電気エネルギー、磁気エネルギー、太陽エネルギー、風力エネルギー、重力エネルギー、化学エネルギー、核エネルギー、またはこれらの何らかの適切な組み合わせなどエネルギー源で作動し得る。代替的に、可動物体は生き物により運ばれ得る。
いくつかの例において、可動物体は輸送体であり得る。適切な複数の輸送体は、水用輸送体、航空機、宇宙用輸送体、または地面用輸送体を含んでもよい。例えば、複数の航空機は、固定翼航空機(例えば、飛行機、グライダー)、回転翼航空機(例えば、ヘリコプター、ロータクラフト)、固定翼および回転翼の両方を有する航空機、またはいずれも有さない航空機(例えば、小型軟式飛行船、熱気球)であり得る。輸送体は、空中、水上、水中、宇宙空間、地上、または地下を自己推進するなど、自己推進し得る。自己推進型の輸送体は、1または複数のエンジン、モータ、車輪、車軸、磁石、ロータ、プロペラ、ブレード、ノズル、またはこれらの何らかの適切な組み合わせを含む推進システムなどの推進システムを利用し得る。いくつかの例において、可動物体が表面から離陸出来る、表面に着陸出来る、現在の位置および/または向きを維持出来る(例えば、ホバリングする)、向きを変化させられる、および/または位置を変化させられるよう推進システムが用いられ得る。
可動物体は、ユーザにより遠隔的に制御され得、若しくは、可動物体内、またはその上の乗員により近くで制御され得る。いくつかの実施形態において、可動物体は、UAVなど無人可動物体であり得る。UAVなどの無人可動物体は、可動物体に搭乗している乗員を有さなくてもよい。可動物体は、人または自律制御システム(例えば、コンピュータ制御システム)により、若しくはこれらの何らかの適切な組み合わせにより制御され得る。可動物体は、人工知能を用いて構成されたロボットなど自律的または半自律的ロボットであり得る。
可動物体は、何らかの適切なサイズおよび/または複数の寸法を有し得る。いくつかの実施形態において、可動物体は、輸送体内またはその上に人である乗員を有するためのサイズおよび/または複数の寸法のものであり得る。代替的に、可動物体は、輸送体内またはその上に人である乗員を有することが可能なサイズおよび/または複数の寸法より小さなものであり得る。可動物体は、人により持ち上げられる、または搭載されるのに適切なサイズおよび/または複数の寸法のものであり得る。代替的に、可動物体は、人により持ち上げられる、または搭載されるのに適切なサイズおよび/または複数の寸法より大きくてもよい。いくつかの例において、可動物体は、およそ2cm、5cm、10cm、50cm、1m、2m、5m、または10mより短い、またはそれらと等しい最大寸法(例えば、長さ、幅、高さ、直径、対角線)を有し得る。最大寸法は、およそ2cm、5cm、10cm、50cm、1m、2m、5m、または10mより長くてもよく、またはそれらと等しくてもよい。例えば、可動物体の、向かい合っている複数のロータの複数のシャフト間の距離は、およそ2cm、5cm、10cm、50cm、1m、2m、5m、または10mより短くてもよく、またはそれらと等しくてもよい。代替的に、向かい合っている複数のロータの複数のシャフト間の距離は、およそ2cm、5cm、10cm、50cm、1m、2m、5m、または10mより長くてもよく、またはそれらと等しくてもよい。
いくつかの実施形態において、可動物体は、100cm×100cm×100cm未満、50cm×50cm×30cm未満、または5cm×5cm×3cm未満の体積を有し得る。可動物体の総体積は、およそ1cm3、2cm3、5cm3、10cm3、20cm3、30cm3、40cm3、50cm3、60cm3、70cm3、80cm3、90cm3、100cm3、150cm3、200cm3、300cm3、500cm3、750cm3、1000cm3、5000cm3、10,000cm3、100,000cm3、1m3、または10m3より小さくてもよく、またはそれらと等しくてもよい。逆に、可動物体の総体積は、およそ1cm3、2cm3、5cm3、10cm3、20cm3、30cm3、40cm3、50cm3、60cm3、70cm3、80cm3、90cm3、100cm3、150cm3、200cm3、300cm3、500cm3、750cm3、1000cm3、5000cm3、10,000cm3、100,000cm3、1m3、または10m3より大きくてもよく、またはそれらと等しくてもよい。
いくつかの実施形態において、可動物体は、およそ32,000cm2、20,000cm2、10,000cm2、1,000cm2、500cm2、100cm2、50cm2、10cm2、または5cm2より小さい、またはそれらと等しい設置面積(可動物体により取り囲まれる横方向の断面積を指し得る)を有し得る。逆に、設置面積は、およそ32,000cm2、20,000cm2、10,000cm2、1,000cm2、500cm2、100cm2、50cm2、10cm2、または5cm2より大きくてもよく、またはそれらと等しくてもよい。
いくつかの例において、可動物体は1000kg以下の重量を有し得る。可動物体の重量は、およそ1000kg、750kg、500kg、200kg、150kg、100kg、80kg、70kg、60kg、50kg、45kg、40kg、35kg、30kg、25kg、20kg、15kg、12kg、10kg、9kg、8kg、7kg、6kg、5kg、4kg、3kg、2kg、1kg、0.5kg、0.1kg、0.05kg、または0.01kgより軽くてもよく、またはそれらと等しくてもよい。逆に、重量は、およそ1000kg、750kg、500kg、200kg、150kg、100kg、80kg、70kg、60kg、50kg、45kg、40kg、35kg、30kg、25kg、20kg、15kg、12kg、10kg、9kg、8kg、7kg、6kg、5kg、4kg、3kg、2kg、1kg、0.5kg、0.1kg、0.05kg、または0.01kgより重くてもよく、またはそれらと等しくてもよい。
いくつかの実施形態において、可動物体は、可動物体により搭載される搭載物と相対的に小さくてもよい。搭載物は、以下により詳細に記載されているような積載物および/または支持機構を含み得る。いくつかの例において、荷重に対する可動物体の重量の比は、およそ1:1よりも大きい、それよりも小さい、またはそれと等しくてもよい。いくつかの例において、荷重に対する可動物体の重量の比は、およそ1:1よりも大きい、それよりも小さい、またはそれと等しくてもよい。オプションで、荷重に対する支持機構の重量の比は、およそ1:1よりも大きい、それよりも小さい、またはそれと等しくてもよい。所望されるとき、荷重に対する可動物体の重量の比は、1:2、1:3、1:4、1:5、1:10より小さくてもよく、またはそれらと等しくてもよく、若しくはさらに小さくてもよい。逆に、荷重に対する可動物体の重量の比は、2:1、3:1、4:1、5:1、10:1より大きくてもよい、またはそれらと等しくてもよく、若しくはさらに大きいものでもあり得る。
いくつかの実施形態において、可動物体は低エネルギー消費のものであり得る。例えば、可動物体は、およそ5W/h、4W/h、3W/h、2W/h、1W/hより少量を、若しくはさらに少量を用い得る。いくつかの例において、可動物体の支持機構は低エネルギー消費のものであり得る。例えば、支持機構は、およそ5W/h、4W/h、3W/h、2W/h、1W/hより少量を、若しくはさらに少量を用い得る。オプションで、可動物体の積載物は、およそ5W/h、4W/h、3W/h、2W/h、1W/hより少量を、若しくはさらに少量など低エネルギー消費のものであり得る。
図17は、本願発明の複数の実施形態に係る無人航空機(UAV)1700を図示する。UAVは、本明細書に記載されているような可動物体の例であり得る。UAV1700は、4つのロータ1702、1704、1706および1708を有する推進システムを含み得る。任意の数の(例えば、1、2、3、4、5、6、またはそれらより多くの)ロータが設けられ得る。無人航空機の複数のロータ、ロータ組立体、または他の推進システムは、無人航空機が、ホバリングする/位置を維持する、向きを変化させる、および/またはロケーションを変化させることを可能とし得る。向かい合っている複数のロータの複数のシャフト間の距離は、何らかの適切な長さ1710であり得る。例えば、長さ1710は、2mより短くてもよく、またはそれと等しくてもよく、若しくは、5mより短くてもよく、またはそれと等しくてもよい。いくつかの実施形態において、長さ1710は、40cm〜1m、10cm〜2m、または5cm〜5mの範囲内であり得る。本明細書におけるUAVについてのいずれの記載も、異なるタイプの可動物体などの可動物体に当てはまり得、またその逆も当てはまる。
いくつかの実施形態において、可動物体は搭載物を運ぶよう構成され得る。搭載物は、乗客、貨物、器材、器具、およびその他のうち1または複数を含み得る。搭載物は筐体内に設けられ得る。筐体は、可動物体の筐体とは別個であり得、可動物体のための筐体の一部であり得る。代替的に、搭載物には筐体が設けられ得、他方、可動物体は筐体を有さない。代替的に、搭載物の複数の部分、または搭載物全体は筐体なしで設けられ得る。搭載物は、可動物体に対して強固に固定され得る。オプションで、搭載物は、可動物体と相対的に動くことが可能(例えば、可動物体と相対的に並進可能または回転可能)であり得る。
いくつかの実施形態において、搭載物は積載物を含む。積載物は、何ら動作または機能を実行しないように構成され得る。代替的に、積載物は、機能的な積載物としても知られる動作または機能を実行するよう構成された積載物であり得る。例えば、積載物は、1または複数のターゲットを調査するための1または複数のセンサを含み得る。撮像デバイス(例えば、カメラ)、オーディオ捕捉デバイス(例えば、パラボラマイク)、赤外線画像化デバイス、または紫外線画像化デバイスなど何らかの適切なセンサが、積載物に組み込まれ得る。センサは、静的な感知データ(例えば、写真)または動的な感知データ(例えば、ビデオ)を提供し得る。いくつかの実施形態において、センサは、積載物のターゲットに関する感知データを提供する。代替的に、または組み合わせて、積載物は、複数の信号を1または複数のターゲットへ提供するための1または複数のエミッタを含み得る。照明光源または音源など何らかの適切なエミッタが用いられ得る。いくつかの実施形態において、積載物は、可動物体とは遠隔であるモジュールとの通信などのための1または複数の送受信機を含む。オプションで、積載物は、環境またはターゲットとインタラクトするよう構成され得る。例えば、積載物は、複数の物体を操作可能なロボットアームなどツール、器具、または機構を含み得る。
オプションで、搭載物は支持機構を含み得る。支持機構は積載物に対して設けられ得、積載物は、直接的に(例えば、可動物体に直接的に接触して)または間接的に(例えば、可動物体に接触せず)支持機構を介して可動物体に結合され得る。逆に、積載物は支持機構を要することなく可動物体に搭載され得る。積載物は、支持機構と一体的に形成され得る。代替的に、積載物は支持機構と解放可能に結合され得る。いくつかの実施形態において、積載物は、1または複数の積載物要素を含み得、複数の積載物要素のうち1または複数は、上記に記載されているように可動物体および/または支持機構と相対的に動くことが可能であり得る。
支持機構は、可動物体と一体的に形成され得る。代替的に、支持機構は可動物体と解放可能に結合され得る。支持機構は、直接的または間接的に可動物体に結合され得る。支持機構は、積載物に対してサポートを提供し(例えば、積載物の重量の少なくとも一部を運び)得る。支持機構は、積載物の動きを安定化させ得る、および/または方向付け得ることが可能な適切な搭載構造(例えば、ジンバルプラットフォーム)を含み得る。いくつかの実施形態において、支持機構は、可動物体と相対的な積載物の状態(例えば、位置および/または向き)を制御するよう適合され得る。例えば、支持機構は、積載物が可動物体の動きに関わらず適切な基準系と相対的な位置および/または向きを維持するよう、可動物体と相対的に(例えば、1、2、または3つの並進度、および/または1、2、または3つの回転度に関して)に動くよう構成され得る。基準系は固定された基準系(例えば、周囲環境)であり得る。代替的に、基準系は動いている基準系(例えば、可動物体、積載物ターゲット)であり得る。
いくつかの実施形態において、支持機構は、支持機構および/または可動物体と相対的積載物の動きを可能するよう構成され得る。動きは、(例えば、1、2、または3つの軸に沿った)最大3自由度に関する並進、(例えば、1、2、または3つの軸周りの)最大3自由度に関する回転、またはこれらの何らかの適切な組み合わせであり得る。
いくつかの例において、支持機構は、支持機構フレーム組立体および支持機構作動組立体を含み得る。支持機構フレーム組立体は、積載物に対して構造的なサポートを提供し得る。支持機構フレーム組立体は、複数の個別の支持機構フレームコンポーネントを含み得、これらのうちいくつかは、互いに相対的に動くことが可能であり得る。支持機構作動組立体は、複数の個別の支持機構フレームコンポーネントの動きを作動させる1または複数のアクチュエータ(例えば、モータ)を含み得る。複数のアクチュエータは、複数の支持機構フレームコンポーネントの動きを同時に可能とし得、または、一時に単一の支持機構フレームコンポーネントの動きを可能するよう構成され得る。複数の支持機構フレームコンポーネントの動きは、積載物の対応する動きを生じさせ得る。例えば、支持機構作動組立体は、1または複数の回転軸(例えば、ロール軸、ピッチ軸、またはヨー軸)周りの1または複数の支持機構フレームコンポーネントの回転を作動させ得る。1または複数の支持機構フレームコンポーネントの回転は積載物を、可動物体と相対的に1または複数の回転軸周りで回転させ得る。代替的に、または組み合わせて、支持機構作動組立体は、1または複数の並進軸に沿った1または複数の支持機構フレームコンポーネントの並進を作動させ得、これにより、可動物体と相対的に1または複数の対応する軸に沿った積載物の並進を生じさせ得る。
いくつかの実施形態において、固定された基準系(例えば、周囲環境)と相対的な、および/または互いに相対的な可動物体、支持機構、および積載物の動きは、端末により制御され得る。端末は、可動物体、支持機構、および/または積載物から距離を置いたロケーションにおける遠隔制御デバイスであり得る。端末は、支持プラットフォーム上に配置され得、またはそれに貼り付けられ得る。代替的に、端末はハンドヘルドデバイスまたは着用可能なデバイスであり得る。例えば、端末は、スマートフォン、タブレット、ラップトップ、コンピュータ、眼鏡、手袋、ヘルメット、マイク、またはこれらの適切な複数の組み合わせを含み得る。端末は、キーボード、マウス、ジョイスティック、タッチスクリーン、またはディスプレイなどのユーザインタフェースを含み得る。手動で入力されたコマンド、音声制御、ジェスチャ制御、(例えば、端末の動き、ロケーション、または傾きを介した)位置制御など何らかの適切なユーザ入力が、端末とインタラクトするのに用いられ得る。
端末は、可動物体、支持機構、および/または積載物の何らかの適切な状態を制御するのに用いられ得る。例えば、端末は、可動物体、支持機構、および/または積載物の固定された基準系と相対的な、および/または互いに相対的な位置および/または向きを制御するのに用いられ得る。いくつかの実施形態において、端末は、可動物体、支持機構、および/または支持機構の作動組立体、積載物のセンサ、積載物のエミッタなどの積載物の複数の個々の要素を制御するのに用いられ得る。端末は、可動物体、支持機構、または積載物のうち1または複数と通信を行うよう適合させられた無線通信デバイスを含み得る。
端末は、可動物体、支持機構、および/または積載物の情報を見るための適切なディスプレイユニットを含み得る。例えば、端末は、位置、並進速度、並進加速度、向き、角速度、角加速度、またはこれらの何らかの適切な組み合わせに関する、可動物体、支持機構、および/または積載物の情報を表示するよう構成され得る。いくつかの実施形態において、端末は、機能的な積載物により提供されるデータ(例えば、カメラまたは他の撮像デバイスにより記録された複数の画像)など積載物により提供される情報を表示し得る。
オプションで、同じ端末が、可動物体、支持機構、および/または積載物、若しくは可動物体、支持機構、および/または積載物の状態を制御し、加えて、可動物体、支持機構、および/または積載物からの情報を受信および/または表示し得る。例えば、端末は、積載物により捕捉された画像データ、または積載物の位置についての情報を表示している間、環境と相対的な積載物の位置決めを制御し得る。代替的に、異なる複数の端末が異なる複数の機能のために用いられ得る。例えば、第1端末が可動物体、支持機構、および/または積載物の動きまたは状態を制御し得、他方、第2端末が可動物体、支持機構、および/または積載物からの情報を受信および/または表示し得る。例えば、第1端末が、環境と相対的な積載物の位置決めを制御するのに用いられ得、他方、第2端末が、積載物により撮像された画像データを表示し得る。可動物体と、可動物体の制御とデータの受信との両方を行う統合された端末との間で、または可動物体と、可動物体の制御とデータの受信との両方を行う複数の端末との間で、様々な通信モードが利用され得る。例えば、少なくとも2つの異なる通信モードが、可動物体と、可動物体の制御と可動物体からのデータの受信との両方を行う端末との間で形成され得る。
図18は、複数の実施形態に係る、支持機構1802および積載物1804を含む可動物体1800を例示する。可動物体1800は航空機として描写されているが、この描写は限定であることを意図されておらず、本明細書で前に記載されているように何らかの適切なタイプの可動物体が用いられ得る。複数の航空機システムの文脈で本明細書に記載されている複数の実施形態のうち何れかが、何らかの適切な可動物体(例えば、UAV)に適用され得ることを当業者は理解されよう。いくつかの例において、積載物1804は、支持機構1802を要することなく可動物体1800に設けられ得る。可動物体1800は、複数の推進機構1806、感知システム1808、および通信システム1810を含み得る。
複数の推進機構1806は、前に記載されているように複数のロータ、複数のプロペラ、複数のブレード、複数のエンジン、複数のモータ、複数の車輪、複数の車軸、複数の磁石、複数のノズルのうち1または複数を含み得る。例えば、複数の推進機構1806は、本明細書の他の箇所において開示されているように、複数の自動締めつけ式ロータ、複数のロータ組立体、または他の複数の回転式推進ユニットであり得る。可動物体は、1または複数の、2またはそれより多くの、3またはそれより多くの、4またはそれより多くの推進機構を有し得る。複数の推進機構は全て同じタイプのものであり得る。代替的に、1または複数の推進機構は、異なる複数のタイプの推進機構であり得る。複数の推進機構1806は、本明細書の他の箇所において記載されているような支持要素(例えば、駆動シャフト)など何らかの適切な手段を用いて可動物体1800に搭載され得る。複数の推進機構1806は、頂部、底部、前部、後部、複数の側部、またはこれらの何らかの適切な組み合わせなど可動物体1800の何らかの適切な部分に搭載され得る。
いくつかの実施形態において、複数の推進機構1806は、可動物体1800が可動物体1800の何らかの水平方向の動きを要することなく(例えば、滑走路を滑走することなく)表面から鉛直方向に離陸する、または表面に鉛直方向に着陸することを可能とし得る。オプションで、複数の推進機構1806は、可動物体1800が特定の位置および/または向きで空中でホバリングすることを可能とするよう動作可能であり得る。複数の推進機構1800のうち1または複数は、他の複数の推進機構とは独立して制御され得る。代替的に、複数の推進機構1800は、同時に制御されるよう構成され得る。例えば、可動物体1800は、揚力および/または推力を可動物体に対して提供し得る複数の水平方向に向けられたロータを有し得る。水平方向に向けられた複数のロータは、鉛直方向の離陸、鉛直方向の着陸、およびホバリング能力を可動物体1800に対して提供するよう作動させられ得る。いくつかの実施形態において、水平方向の複数のロータのうち1または複数が反時計回り方向に回転し得る間、水平方向に向けられた複数のロータのうち1または複数は時計回り方向に回転し得る。例えば、時計回りのロータの数は、反時計回りのロータの数と等しくてもよい。水平方向に向けられた複数のロータのうちそれぞれの回転速度は、各ロータにより生成される揚力および/または推力を制御するために、およびこれにより、(例えば、最大3つの並進度、および最大3つの回転度に関して)可動物体1800の空間的配置、速度、および/または加速度を調整するために独立して変化させられ得る。
感知システム1808は、(例えば、最大3つの並進度、および最大3つの回転度に関して)可動物体1800の空間的配置、速度および/または加速度を感知し得る1または複数のセンサを含み得る。1または複数のセンサは、全地球測位システム(GPS)センサ、動きセンサ、慣性センサ、近接センサ、または画像センサを含み得る。感知システム1808により提供される感知データは、(例えば、以下に記載されているように、適切なプロセッシングユニットおよび/または制御モジュールを用いて)可動物体1800の空間的配置、速度、および/または向きを制御するのに用いられ得る。代替的に、感知システム1808は、天候条件、可能性のある複数の障害物への近接、複数の地理的特徴のロケーション、複数の人工構造のロケーション、およびその他など、可動物体を取り囲む環境についてのデータを提供するのに用いられ得る。
通信システム1810は、通信システム1814を有する端末1812との複数の無線信号1816を介した通信を可能とする。通信システム1810、1814は、無線通信のために適切な任意の数の送信機、受信機、および/または送受信機を含み得る。通信は、データが1方向にのみ送信され得るように片方向通信であり得る。例えば、片方向通信は、可動物体1800のみがデータを端末1812へ送信することを伴い得、またはその逆も当てはまる。データは、通信システム1810の1または複数の送信機から通信システム1812の1または複数の受信機へ送信され得、またはその逆も当てはまる。代替的に、通信は、データが可動物体1800と端末1812との間を両方の方向に送信され得るよう双方向通信であり得る。双方向通信は、通信システム1810の1または複数の送信機から通信システム1814の1または複数の受信機へデータを送信することを伴い得、またその逆も当てはまる。
いくつかの実施形態において、端末1812は、可動物体1800、支持機構1802、および積載物1804のうち1または複数に対して制御データを提供し得、可動物体1800、支持機構1802、および積載物1804のうち1または複数から情報(例えば、可動物体、支持機構または積載物の位置および/または動き情報、積載物のカメラにより捕捉された画像データなど積載物により感知されたデータ)を受信し得る。いくつかの例において、端末からの制御データは、可動物体、支持機構、および/または積載物の複数の相対的な位置、複数の動き、複数の作動、または複数の制御のための複数の命令を含み得る。例えば、制御データにより可動物体のロケーションおよび/または向きが(例えば、複数の推進機構1806の制御を介して)修正されることになり得、または可動物体と相対的に積載物が(例えば、支持機構1802の制御を介して)動くことになり得る。端末からの制御データにより、カメラまたは他の撮像デバイスの動作の制御(例えば、静止画または動画の撮像、ズームインまたはアウト、電源のオンオフ、複数の撮像モードの切り替え、画像解像度の変更、焦点の変更、被写界深度の変更、露出時間の変更、視角または視界の変更)など積載物が制御されることになり得る。いくつかの例において、可動物体、支持機構、および/または積載物からの複数の通信は、(例えば、感知システム1808の、または積載物1804の)1または複数のセンサからの情報を含み得る。複数の通信は、1または複数の異なるタイプのセンサ(例えば、GPSセンサ、動きセンサ、慣性センサ、近接センサ、または画像センサ)からの感知された情報を含み得る。そのような情報は可動物体、支持機構、および/または積載物の位置(例えば、ロケーション、向き)、動き、または加速度に関し得る。積載物からのそのような情報は、積載物により捕捉されたデータ、または積載物の感知された状態を含み得る。端末1812により送信されて提供される制御データは、可動物体1800、支持機構1802、または積載物1804のうち1または複数の状態を制御するよう構成され得る。代替的に、または組み合わせて、支持機構1802および積載物1804はそれぞれ、端末1812が可動物体1800、支持機構1802、および積載物1804のうちそれぞれと独立して通信を行い得るよう、またそれぞれを制御出来るよう端末と通信を行うよう構成された通信モジュールを含み得る。
いくつかの実施形態において、可動物体1800は、端末1812に加えて、または端末1812の代わりに他の遠隔デバイスと通信を行うよう構成され得る。また端末1812は、可動物体1800のみならず他の遠隔デバイスとも通信を行うよう構成され得る。例えば、可動物体1800および/または端末1812は、他の可動物体、若しくは他の可動物体の支持機構または積載物と通信を行い得る。所望されるとき、遠隔デバイスは第2端末または他のコンピューティングデバイス(例えば、コンピュータ、ラップトップ、タブレット、スマートフォン、または他のモバイルデバイス)であり得る。遠隔デバイスは、可動物体1800へデータを送信し、可動物体1800からデータを受信し、端末1812へデータを送信し、および/または端末1812からデータを受信するよう構成され得る。オプションで、遠隔デバイスは、可動物体1800および/または端末1812から受信したデータがウェブサイトまたはサーバにアップロードされ得るようインターネットまたは他の遠距離通信ネットワークに接続され得る。
図19は、複数の実施形態に係る、可動物体を制御するためのシステム1900のブロック図を用いた概略図である。システム1900は、本明細書に開示される複数のシステム、デバイス、および方法の何らかの適切な実施形態と組み合わせて用いられ得る。システム1900は、感知モジュール1902、プロセッシングユニット1904、非一時的コンピュータ可読媒体1906、制御モジュール1908、および通信モジュール1910を含み得る。
感知モジュール1902は、異なる複数のやり方で複数の可動物体に関連する情報を収集する異なる複数のタイプのセンサを利用し得る。異なる複数のタイプのセンサが、異なる複数のタイプの信号、または異なる複数の発信源からの複数の信号を感知し得る。例えば、複数のセンサは、慣性センサ、GPSセンサ、近接センサ(例えば、ライダー)、またはビジョン/画像センサ(例えば、カメラ)を含み得る。感知モジュール1902は、複数のプロセッサを有するプロセッシングユニット1904に操作可能に結合され得る。いくつかの実施形態において、感知モジュールは、感知データを直接的に適切な外部デバイスまたはシステムへ送信するよう構成された送信モジュール1912(例えば、Wi−Fi(登録商標)画像送信モジュール)に操作可能に結合され得る。例えば、送信モジュール1912は、感知モジュール1902のカメラにより撮像された複数の画像を遠隔端末へ送信するのに用いられ得る。
プロセッシングユニット1904は、プログラマブルプロセッサ(例えば、中央演算処理装置(CPU)など1または複数のプロセッサを有し得る。プロセッシングユニット1904は、非一時的コンピュータ可読媒体1906に操作可能に結合され得る。非一時的コンピュータ可読媒体1906は、1または複数のステップを実行するためにプロセッシングユニット1904により実行可能であるロジック、コード、および/または複数のプログラム命令を格納し得る。非一時的コンピュータ可読媒体は、1または複数のメモリユニット(例えば、SDカードまたはランダムアクセスメモリ(RAM)など取り外し可能な媒体または外部ストレージ)を含み得る。いくつかの実施形態において、感知モジュール1902からのデータは、非一時的コンピュータ可読媒体1906の複数のメモリユニットへ直接的に伝達され、その中に格納され得る。非一時的コンピュータ可読媒体1906の複数のメモリユニットは、本明細書に記載されている複数の方法の何らかの適切な実施形態を実行するべくプロセッシングユニット1904により実行可能なロジック、コード、および/または複数のプログラム命令を格納し得る。例えば、プロセッシングユニット1904は、プロセッシングユニット1904の1または複数のプロセッサに、感知モジュールにより生成された感知データを分析させる複数の命令を実行するよう構成され得る。複数のメモリユニットは、プロセッシングユニット1904により処理されることになる感知モジュールからの感知データを格納し得る。いくつかの実施形態において、非一時的コンピュータ可読媒体1906の複数のメモリユニットは、プロセッシングユニット1904により生成される複数の処理結果を格納するのに用いられ得る。
いくつかの実施形態において、プロセッシングユニット1904は、可動物体の状態を制御するよう構成された制御モジュール1908に操作可能に結合され得る。例えば、制御モジュール1908は、6自由度に関して可動物体の空間的配置、速度、および/または加速度を調整するよう可動物体の複数の推進機構を制御するよう構成され得る。代替的に、または組み合わせて、制御モジュール1908は、支持機構、積載物、または感知モジュールの状態のうち1または複数を制御し得る。
プロセッシングユニット1904は、1または複数の外部デバイス(例えば、端末、ディスプレイデバイス、または他のリモートコントローラ)へデータを送信し、および/またはデータをそれらから受信するよう構成された通信モジュール1910に操作可能に結合され得る。有線通信または無線通信など何らかの適切な通信手段が用いられ得る。例えば、通信モジュール1910は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、赤外線、無線、WiFi(登録商標)、ポイントツーポイント(P2P)ネットワーク、遠距離通信ネットワーク、クラウド通信、およびその他のうち1または複数を利用し得る。オプションで、タワー、衛星、移動局などの複数の中継局が用いられ得る。複数の無線通信は近接性依存または近接性非依存であり得る。いくつかの実施形態において、複数の通信のために見通し線は要求されてもよくされなくてもよい。通信モジュール1910は、感知モジュール1902からの感知データ、プロセッシングユニット1904により生成された複数の処理結果、予め定められた制御データ、端末またはリモートコントローラからの複数のユーザコマンド、およびその他のうち1または複数を送信し得、および/またはそれらを受信し得る。
システム1900の複数のコンポーネントは、何らかの適切な構成で配置され得る。例えば、システム1900の複数のコンポーネントのうち1または複数は、可動物体、支持機構、積載物、端末、感知システム、または上記されたもののうち1または複数と通信を行っている追加の外部デバイスの上に配置され得る。追加的に、図19は単一のプロセッシングユニット1904および単一の非一時的コンピュータ可読媒体1906を描写しているが、このことは限定するよう意図されていないこと、およびシステム1900が複数のプロセッシングユニットおよび/または非一時的コンピュータ可読媒体を含み得ることを当業者は理解されよう。いくつかの実施形態において、複数のプロセッシングユニットおよび/または非一時的コンピュータ可読媒体のうち1または複数は、システム1900により実行される処理および/またはメモリ機能の何らかの適切な態様が、可動物体、支持機構、積載物、端末、感知モジュール、上記されたもののうち1または複数と通信を行っている追加の外部デバイス、またはこれらの適切な複数の組み合わせ上など異なる複数のロケーションのうち1または複数で起こり得るよう、上記で記載した複数のロケーションに位置付けられ得る。
本明細書で用いられているように、Aおよび/またはBとは、AまたはBのうち1または複数、AおよびBなどこれらの組み合わせを包含する。
本願発明の好ましい複数の実施形態が本明細書に示され記載されてきたが、当業者にとっては、そのような複数の実施形態が例のみによって提供されていることが明らかとなろう。当業者は、本願発明から逸脱することなく多数の変形例、変更例、および置換例が思いつかれよう。本明細書に記載されている本願発明の複数の実施形態の様々な代替例が本願発明を実施するにあたり採用されてもよいことが理解されるべきである。本明細書に記載されている複数の実施形態の多数の異なる組み合わせが可能であり、そのような組み合わせは、本開示の一部と見なされる。加えて、本明細書における何らかの一実施形態との関連で説明される全ての特徴は、本明細書における他の複数の実施形態での使用に容易に適合させられ得る。以下の請求項が本願発明の範囲を規定すること、これら請求項およびそれらの同等物の範囲内の複数の方法および構造が、それらにより網羅されることが意図されている。
(項目1)
可動物体の動作の間に複数のセンサを用いて上記可動物体の1または複数の外部パラメータを較正するための方法であり、
上記可動物体により搭載される少なくとも2つの画像センサ間の複数の空間的関係を含む上記1または複数の外部パラメータに関する複数の初期値を上記1または複数のプロセッサにおいて受信するステップと、
上記可動物体の上記動作の間に上記可動物体により搭載される少なくとも1つの慣性センサから慣性データを上記1または複数のプロセッサにおいて受信するステップと、
上記可動物体の上記動作の間に上記可動物体により搭載される少なくとも2つの画像センサから画像データを上記1または複数のプロセッサにおいて受信するステップと、
上記可動物体の上記動作の間に反復最適化アルゴリズムを用いて上記複数の初期値、上記慣性データ、および上記画像データに基づいて上記1または複数の外部パラメータに関する複数の推定値を上記1または複数のプロセッサの補助を受けて決定するステップと
を備える、方法。
(項目2)
上記可動物体は無人航空機(UAV)である、項目1に記載の方法。
(項目3)
上記UAVの上記動作は、上記UAVが飛行していることを含む、項目2に記載の方法。
(項目4)
上記UAVの上記動作は、上記UAVが電力供給されていることを含む、項目2に記載の方法。
(項目5)
上記複数の空間的関係は、上記少なくとも2つの画像センサの相対的な複数の位置および相対的な複数の向きを含む、項目1に記載の方法。
(項目6)
上記少なくとも2つの画像センサの上記相対的な複数の位置および上記相対的な複数の向きは、上記少なくとも1つの慣性センサに関連して決定される、項目5に記載の方法。
(項目7)
上記1または複数の外部パラメータに関する上記複数の初期値は、上記可動物体の上記動作の前に決定される、項目1に記載の方法。
(項目8)
上記複数の初期値は、上記可動物体の上記動作の前に上記反復最適化アルゴリズムを用いて決定される、項目7に記載の方法。
(項目9)
上記複数の初期値は、上記可動物体の動作の前にユーザにより測定される、項目7に記載の方法。
(項目10)
上記1または複数の外部パラメータに関する上記複数の初期値は、上記可動物体に関連付けられたメモリデバイスから受信される、項目1に記載の方法。
(項目11)
上記少なくとも2つの画像センサは、1または複数の固定されたロケーションにおいて上記可動物体に結合され、上記1または複数の外部パラメータに関する上記複数の初期値は、上記1または複数の固定されたロケーションに基づいて決定される、項目1に記載の方法。
(項目12)
上記1または複数の外部パラメータに関する上記複数の初期値は、上記1または複数の外部パラメータの複数の実際値からおよそ2cm以下だけ離れている、項目1に記載の方法。
(項目13)
上記1または複数の外部パラメータに関する上記複数の初期値は、上記1または複数の外部パラメータの複数の実際値からおよそ2度以下離れている、項目1に記載の方法。
(項目14)
上記慣性データは、上記可動物体の3次元加速度および3次元角速度を示す1または複数の測定値を含む、項目1に記載の方法。
(項目15)
上記慣性データは、少なくとも2つの異なる時点に亘って上記少なくとも1つの慣性センサにより取得される1または複数の測定値を含む、項目1に記載の方法。
(項目16)
上記画像データは、上記可動物体の周囲の環境の1または複数の画像を含む、項目1に記載の方法。
(項目17)
上記画像データは、少なくとも2つの異なる時点に亘って上記少なくとも2つの画像センサのうちそれぞれにより取得される1または複数の画像を含む、項目1に記載の方法。
(項目18)
上記決定する上記ステップは、特徴点検出アルゴリズムを用いて上記1または複数の画像を処理するステップを有する、項目17に記載の方法。
(項目19)
上記決定する上記ステップは、オプティカルフローアルゴリズムを用いて上記1または複数の画像を処理するステップを有する、項目17に記載の方法。
(項目20)
上記決定する上記ステップは、特徴マッチングアルゴリズムを用いて上記1または複数の画像を処理するステップを有する、項目17に記載の方法。
(項目21)
上記決定する上記ステップは、上記少なくとも2つの画像センサのうち第1画像センサにより取得された1または複数の画像を、上記少なくとも2つの画像センサのうち第2画像センサにより取得された1または複数の画像と比較するステップを有する、項目17に記載の方法。
(項目22)
上記少なくとも2つの画像センサは、複数の画像を同期的に取得するよう構成されている、項目1に記載の方法。
(項目23)
上記少なくとも2つの画像センサは、複数の画像を非同期的に取得するよう構成されている、項目1に記載の方法。
(項目24)
上記少なくとも2つの画像センサは、切り替え機構を介して上記1または複数のプロセッサに切り替え可能に結合された複数の画像センササブセットを含み、上記切り替え機構は、一時に単一の画像センササブセットを上記1または複数のプロセッサへ結合するよう構成されている、項目1に記載の方法。
(項目25)
上記画像データを受信する上記ステップは、
上記切り替え機構を介して第1画像センササブセットを上記1または複数のプロセッサに結合する段階と、
上記第1画像センササブセットからの画像データを受信するステップと、
上記切り替え機構を介して第2画像センササブセットを上記1または複数のプロセッサに結合する段階と、
上記第2画像センササブセットから画像データを受信するステップと
を有する、項目24に記載の方法。
(項目26)
上記反復最適化アルゴリズムは非線形最適化アルゴリズムである、項目1に記載の方法。
(項目27)
上記反復最適化アルゴリズムは、上記複数の初期値、上記慣性データ、および上記画像データに基づいて上記1または複数の外部パラメータの最大事後確率(MAP)推定値を算出することを含む、項目1に記載の方法。
(項目28)
上記慣性データおよび上記画像データは、上記1または複数の外部パラメータに関する上記複数の推定値を決定するのに用いられる唯一のセンサデータである、項目1に記載の方法。
(項目29)
上記1または複数の外部パラメータに関する上記複数の推定値に基づいて上記可動物体の状態を決定するステップをさらに備える、項目1に記載の方法。
(項目30)
上記状態は、上記可動物体の位置、向き、または速度のうち1または複数を含む、項目29に記載の方法。
(項目31)
上記可動物体の上記状態は、上記可動物体の上記動作の間の前の時点における上記可動物体の前の状態に関連して決定される、項目29に記載の方法。
(項目32)
上記前の時点は、初期化または再初期化が生じた時点である、項目31に記載の方法。
(項目33)
可動物体の上記動作の間に複数のセンサを用いて上記可動物体の1または複数の外部パラメータを較正するためのシステムであり、
上記可動物体により搭載される少なくとも1つの慣性センサと、
上記可動物体により搭載される少なくとも2つの画像センサと、
1または複数のプロセッサと
を備え、
上記1または複数のプロセッサは、個々に、または集合的に、
上記少なくとも2つの画像センサ間の複数の空間的関係を含む上記1または複数の外部パラメータに関する複数の初期値を受信し、
上記可動物体の上記動作の間に上記少なくとも1つの慣性センサから慣性データを受信し、
上記可動物体の上記動作の間に上記少なくとも2つの画像センサから画像データを受信し、
上記可動物体の上記動作の間に反復最適化アルゴリズムを用いて上記複数の初期値、上記慣性データ、および上記画像データに基づいて上記1または複数の外部パラメータに関する複数の推定値を決定する
よう構成されている、システム。
(項目34)
複数の実行可能命令を格納した1または複数の非一時的コンピュータ可読記憶媒体であり、
上記複数の実行可能命令は、可動物体の1または複数の外部パラメータを較正するためのコンピュータシステムの1または複数のプロセッサにより実行されたときに上記コンピュータシステムに少なくとも、
上記可動物体により搭載される少なくとも2つの画像センサ間の複数の空間的関係を含む上記1または複数の外部パラメータに関する複数の初期値を受信させ、
上記可動物体の動作の間に上記可動物体により搭載される少なくとも1つの慣性センサから慣性データを受信させ、
上記可動物体の上記動作の間に上記少なくとも2つの画像センサから画像データを受信させ、
上記可動物体の上記動作の間に反復最適化アルゴリズムを用いて上記複数の初期値、上記慣性データ、および上記画像データに基づいて上記1または複数の外部パラメータに関する複数の推定値を決定させる、1または複数の非一時的コンピュータ可読記憶媒体。