(57)【要約】  航空機による自律着陸の技術が提示される。いくつかの実施形態では、提示の技術は、複数のセルを含む地上マップを生成するために、搭載されたカメラによってキャプチャされた画像等のセンサデータを処理することを含む。１つ以上の着陸基準を満たす地上マップ内の複数のセルのサブセットを含む適切なフットプリントが選択されて、該フットプリントに対応する領域に航空機を自律的に着陸させるような制御コマンドが生成される。いくつかの実施形態では、提示の技術は、着陸のために地面上の比較的平坦な領域を選択するためのジオメトリ的スマート着陸プロセスに関与する。いくつかの実施形態では、提示の技術は、検出されたオブジェクトに関する意味情報が地面マップ内に組み込まれる意味論的スマート着陸プロセスを含む。  【選択図】図４
2021513714.tif 000002
【特許請求の範囲】
【請求項１】
無人航空機（ＵＡＶ）による自律着陸のための方法であって、
コンピュータシステムによって、前記ＵＡＶが物理環境中を飛行している間に、前記ＵＡＶに搭載されたセンサからセンサデータを受信するステップと、
前記コンピュータシステムによって、前記物理環境内の表面に沿った複数の点における高さ値を表す複数のデータ点を決定するように、前記センサデータを処理するステップと、
前記コンピュータシステムによって、決定された前記高さ値に基づいて前記表面の一部の地面マップを生成して継続的に更新するステップであって、前記地面マップは、複数のセルのグリッドを含み、前記セルのそれぞれは、該セルに関連付けられた決定された前記データ点に基づいて継続的に更新される高さ統計値を含む、ステップと、
前記コンピュータシステムによって、前記地面マップに基づいてフットプリントを識別するステップであって、前記フットプリントは、指示された基準を満たす高さ統計値を含む前記複数のセルのサブセットを含む、ステップと、
前記コンピュータシステムによって、識別された前記フットプリントに基づいて前記物理環境内の前記表面上の着陸エリアを指定するステップと、
前記コンピュータシステムによって、前記ＵＡＶを指定された前記着陸エリア上に着陸させるように自律的に操縦するよう構成された制御コマンドを生成するステップと
を含む、方法。
【請求項２】
前記制御コマンドを生成するステップは、
指定された前記着陸エリア上に着陸するための行動目標を生成するステップと、
生成された前記行動目標を、複数の行動目標を処理して計画軌道を生成するように構成されたモーションプランナへと入力するステップと
を含み、
前記制御コマンドは、前記モーションプランナによって生成された前記計画軌道に基づいて生成される、請求項１に記載の方法。
【請求項３】
前記センサは、前記ＵＡＶに取り付けられた画像キャプチャデバイスを含み、前記センサデータは、前記画像キャプチャデバイスによってキャプチャされた画像を含む、請求項１に記載の方法。
【請求項４】
前記複数のデータ点を決定するように、前記センサデータを処理するステップは、
視差画像を生成するように、前記画像キャプチャデバイスによってキャプチャされた画像を処理するステップと、
生成された前記視差画像のピクセルを、前記物理環境の前記表面に沿った点に対応する空間の３次元（３Ｄ）点にマッピングするステップであって、各３Ｄ点は、空間内における該３Ｄ点のそれぞれの位置に基づく高さ値を有している、ステップと
を含み、
前記データ点は、前記３Ｄ点の高さ値に基づいている、請求項３に記載の方法。
【請求項５】
前記地面マップを生成するステップは、
新しい画像が処理された際に、前記地面マップの１つ以上のセルにデータ点を継続的に追加するステップと、
データ点が追加された際に、前記１つ以上のセルの前記高さ統計値を更新するステップと
を含む、請求項４に記載の方法。
【請求項６】
前記１つ以上のセルの前記高さ統計値を更新するステップは、
より新しいデータ点が前記１つ以上のセルの特定のセルに追加された際に、より古いデータ点に関連付けられた高さ値のウェイトを下げるステップを含む、請求項５に記載の方法。
【請求項７】
特定のセルについて決定された前記データ点に基づく前記高さ統計値は、前記特定のセルに対応する前記表面の一部に沿った点における平均高さ、中央高さ、最小高さ又は最大高さのいずれかを含む、請求項１に記載の方法。
【請求項８】
前記複数のセルの前記サブセットに関連付けられた前記高さ統計値が閾値レベル未満の分散を有する場合に、前記指示された基準が満たされる、請求項１に記載の方法。
【請求項９】
前記物理環境内の物理オブジェクトを検出して、検出された前記物理オブジェクトに関連付けられた意味情報を抽出するように、前記センサデータを処理するステップと、
前記意味情報を、前記物理環境内の前記物理オブジェクトの位置に対応する前記地面マップの１つ以上のセルに追加するステップと
をさらに含み、
識別された前記フットプリントに含まれる前記複数のセルの前記サブセットは、前記指示された基準を満たす意味情報を含む、請求項１に記載の方法。
【請求項１０】
指定された前記着陸エリア上に着陸する前に：
前記ＵＡＶによる指定された前記着陸エリアへの自律着陸が可能かどうかを決定するように、前記センサから受信された新しいセンサデータの処理を続けるステップと、
指定された前記エリアへの自律着陸が可能でない場合、前記ＵＡＶに高度を降下させるように構成された制御コマンドを生成するステップと、
前記ＵＡＶによる降下中に：
前記地面マップに基づいて第２のフットプリントを識別するステップであって、前記第２のフットプリントは、前記指示された基準を満たす高さ統計値を含む前記複数のセルの第２サブセットを含み、前記複数のセルの前記第２のサブセットは、前記複数のセルの前記サブセットとは異なる、ステップと、
識別された前記第２のフットプリントに基づいて、前記物理環境内の前記表面上の第２の着陸エリアを指定するステップと、
前記ＵＡＶを指定された前記第２の着陸エリア上に着陸させるように自律的に操縦するよう構成された制御コマンドを生成するステップと
をさらに含む、請求項１に記載の方法。
【請求項１１】
識別された前記フットプリントのサイズ及び／又は形状が、前記ＵＡＶのサイズ若しくは形状、ユーザの嗜好又は前記ＵＡＶに近接する前記物理環境の一部の特性のいずれかに基づく、請求項１に記載の方法。
【請求項１２】
前記地面マップに含まれる前記複数のセルは、形状が長方形であり、前記ＵＡＶが飛行している間に、前記ＵＡＶの位置に実質的に中心を保つように継続的に更新される２次元（２Ｄ）長方形グリッドとして配置される、請求項１に記載の方法。
【請求項１３】
前記地面マップの前記２Ｄ長方形グリッドは、幅Ｍセル×長さＭセルであり、識別された前記フットプリントは、幅Ｎセル×長さＮセルの長方形に配置された前記複数のセルの前記サブセットを含み、ＮはＭ未満である、請求項１２に記載の方法。
【請求項１４】
前記フットプリントを識別するステップは、
複数のフットプリント候補の高さ統計値を、前記複数のフットプリント候補のそれぞれに含まれるセルの高さ統計値に基づいて決定するステップであって、前記複数のフットプリント候補のそれぞれは、前記地面マップの前記複数のセルのそれぞれ異なるサブセットを含み、少なくとも１つのセルによって互いにオフセットされている、ステップと、
前記複数のフットプリント候補から識別された前記フットプリントであって、最大閾値未満かつ他の前記フットプリント候補のいずれかの高さ統計値の分散よりも低い前記高さ統計値の分散を有する前記フットプリントを選択するステップと、
を含む、請求項１に記載の方法。
【請求項１５】
無人航空機（ＵＡＶ）を自律的に着陸させるための方法であって、前記ＵＡＶは、物理環境内の対象物を自律的に追跡するように構成されており、
コンピュータシステムによって、前記ＵＡＶが前記物理環境中を飛行している間に、前記ＵＡＶの運転状態を監視するステップと、
前記コンピュータシステムによって、前記監視に基づいて、前記ＵＡＶの前記運転状態が運転基準を満たしていないことを決定するステップと、
前記運転状態が前記運転基準を満たしていないことを決定するステップに応じて、自動的に：
前記コンピュータシステムによって、前記ＵＡＶに前記物理環境内における前記対象の追跡を停止させるステップと、
前記コンピュータシステムによって、前記ＵＡＶが、
着陸フットプリントを識別するように地面マップを処理することであって、前記地面マップは、前記ＵＡＶに結合された画像キャプチャデバイスによってキャプチャされた前記物理環境の画像に基づいて生成されて継続的に更新され、前記地面マップは複数のセルを含み、前記セルのそれぞれはキャプチャされた前記画像に基づいて継続的に更新される特性データを含み、前記着陸フットプリントは、指示された着陸基準を満たす特性データを含む前記地面マップ内の前記複数のセルのサブセットを含むことと、
識別された前記着陸フットプリントに基づいて前記物理環境内の表面上の着陸エリアを指定することと、
前記コンピュータシステムによって、前記ＵＡＶを指定された前記着陸エリア上に着陸させるように自律的に操縦するよう構成された制御コマンドを生成することと
によって自律着陸プロセスを実行するようにするステップと、
を含む、方法。
【請求項１６】
前記制御コマンドを生成するステップは、
指定された前記着陸エリア上に着陸するための行動目標を生成するステップと、
生成された前記行動目標を、複数の行動目標を処理して計画軌道を生成するように構成されたモーションプランナへと入力するステップと
を含み、
前記制御コマンドは、前記モーションプランナによって生成された前記計画軌道に基づいて生成される、請求項１５に記載の方法。
【請求項１７】
複数のデータ点を生成するように、前記画像キャプチャデバイスによってキャプチャされた前記画像を処理するステップと、
前記セルに対応する前記複数のデータ点の１つ以上に基づいて前記地面マップ内のセルについての特性データを更新することによって、前記地面マップを生成するステップと
をさらに含む、請求項１５に記載の方法。
【請求項１８】
前記複数のデータ点を生成するように、前記画像を処理するステップは、
視差画像を生成するように、前記画像を処理するステップと、
生成された前記視差画像のピクセルを、前記物理環境の前記表面に沿った点に対応する空間の３次元（３Ｄ）点にマッピングするステップであって、各３Ｄ点は、空間内における該３Ｄ点のそれぞれの位置に基づく高さ値を有している、ステップと
を含み、
前記複数のデータ点の１つ以上は、前記３Ｄ点の高さ値に基づいている、請求項１７に記載の方法。
【請求項１９】
特定のセルについての特性データが、前記特定のセルに対応する前記物理環境の前記表面の一部に沿った複数の３Ｄ点の統計値的高さ情報を含み、前記特定のセルについての前記特性データを更新することが、
前記特定のセルに対応するデータ点を処理して、前記特定のセルについての平均高さ値、又は、高さ値の差の２乗の合計のいずれかを計算することを含む、請求項１８に記載の方法。
【請求項２０】
前記複数のデータ点を生成するように、前記画像を処理するステップは、
前記物理環境内の物理オブジェクトを検出して、検出された前記物理オブジェクトに関連付けられた意味情報を抽出するように、前記センサデータを処理するステップを含み、
前記複数のデータ点の１つ以上は、抽出された前記意味情報に基づく、請求項１７に記載の方法。
【請求項２１】
特定のセルの特性データが、前記特定のセルに対応する前記物理環境の一部に位置する１つ以上の検出されたオブジェクトを示す、抽出された前記意味情報に基づく１つ以上のラベルを含む、請求項２０に記載の方法。
【請求項２２】
前記地面マップに含まれる前記複数のセルは、形状が長方形であり、前記ＵＡＶが飛行している間に、前記ＵＡＶの位置に実質的に中心を保つように継続的に更新される２次元（２Ｄ）長方形グリッドとして配置される、請求項１５に記載の方法。
【請求項２３】
前記地面マップの前記２Ｄ長方形グリッドは、幅Ｍセル×長さＭセルであり、識別された前記フットプリントは、幅Ｎセル×長さＮセルの長方形に配置された前記複数のセルの前記サブセットを含み、ＮはＭ未満である、請求項２２に記載の方法。
【請求項２４】
以下の条件のいずれかが存在する場合、前記ＵＡＶの前記運転状態が運転基準を満たさない、請求項１５に記載の方法。
・前記ＵＡＶに搭載された電源が閾値電力レベルを下回っている。
・前記ＵＡＶに搭載されているストレージデバイスが使用可能なストレージレベルを下回っている。
・前記ＵＡＶに搭載されているシステムが正常に働いていない。
・前記対象との視覚的接触が失われた。
【請求項２５】
前記自律着陸プロセス中に：
前記地面マップの更新に基づいて、指定された前記着陸エリアへの自律着陸が不可能であると決定するステップと、
前記物理環境内の前記表面上の特定の高さまで制御された降下を前記ＵＡＶに実行させるように構成された制御コマンドを生成するステップと、
前記制御された降下中に：
前記地面マップに基づいて第２のフットプリントを識別するステップであって、前記第２のフットプリントは、前記指示された基準を満たす特性データを含む前記複数のセルの第２サブセットを含み、前記複数のセルの前記第２のサブセットは、前記複数のセルの前記サブセットとは異なる、ステップと、
識別された前記第２のフットプリントに基づいて、前記物理環境内の前記表面上の第２の着陸エリアを指定するステップと、
前記ＵＡＶを指定された前記第２の着陸エリア上に着陸させるように自律的に操縦するよう構成された制御コマンドを生成するステップと
をさらに含む、請求項１５に記載の方法。
【請求項２６】
識別された前記フットプリントのサイズ及び／又は形状が、前記ＵＡＶのサイズ若しくは形状、ユーザの嗜好又は前記ＵＡＶに近接する前記物理環境の一部の特性のいずれかに基づく、請求項１５に記載の方法。
【請求項２７】
物理環境中を自律飛行するように構成された無人航空機（ＵＡＶ）であって、
前記物理環境の画像をキャプチャするように構成された画像キャプチャデバイスと、
着陸システムであって、
着陸の命令に応じて：
前記物理環境内の表面の一部の地面マップを生成して継続的に更新するように、前記画像キャプチャデバイスによってキャプチャされた前記画像を処理するステップであって、前記地面マップは、複数のセルを含み、前記複数のセルのそれぞれは、キャプチャされた前記画像に基づいて継続的に更新される特性データを含む、ステップと、
前記地面マップに基づいて着陸フットプリントを識別するステップであって、前記着陸フットプリントは、指示された着陸基準を満たす特性データを含む前記地面マップ内の前記複数のセルのサブセットを含む、ステップと、
識別された前記着陸フットプリントに基づいて前記物理環境内の表面上の着陸エリアを指定するステップと、
指定された前記着陸エリアに基づいて着陸目標を生成するステップと、
指定された前記着陸エリアに前記ＵＡＶを着陸させるための計画軌道の生成を容易にするために、前記着陸目標をモーションプランナに伝達するステップと
を行うように構成された、着陸システムと
を含む、ＵＡＶ。
【請求項２８】
前記地面マップを生成するステップは、
複数のデータ点を生成するように、前記画像を処理するステップと、
前記セルに対応する前記複数のデータ点の１つ以上に基づいて前記地面マップ内のセルについての前記特性データを更新するステップと
を含む、請求項２７に記載のＵＡＶ。
【請求項２９】
前記複数のデータ点を生成するように、前記画像を処理するステップは、
視差画像を生成するように、前記画像を処理するステップと、
生成された前記視差画像のピクセルを、前記物理環境の前記表面に沿った点に対応する空間の３次元（３Ｄ）点にマッピングするステップであって、各３Ｄ点は、空間内における該３Ｄ点のそれぞれの位置に基づく高さ値を有している、ステップと
を含み、
前記複数のデータ点の１つ以上は、前記３Ｄ点の高さ値に基づいている、請求項２８に記載のＵＡＶ。
【請求項３０】
特定のセルについての特性データが、前記特定のセルに対応する前記物理環境の前記表面の一部に沿った複数の３Ｄ点の統計値的高さ情報を含み、前記特定のセルについての前記特性データを更新することが、
前記特定のセルに対応するデータ点を処理して、前記特定のセルについての平均高さ値、又は、高さ値の差の２乗の合計のいずれかを計算することを含む、請求項２９に記載のＵＡＶ。
【請求項３１】
前記複数のデータ点を生成するように、前記画像を処理するステップは、
前記物理環境内の物理オブジェクトを検出して、検出された前記物理オブジェクトに関連付けられた意味情報を抽出するように、前記センサデータを処理するステップを含み、
前記複数のデータ点の１つ以上は、抽出された前記意味情報に基づく、請求項２８に記載のＵＡＶ。
【請求項３２】
特定のセルの特性データが、前記特定のセルに対応する前記物理環境の一部に位置する１つ以上の検出されたオブジェクトを示す、抽出された前記意味情報に基づく１つ以上のラベルを含む、請求項３１に記載のＵＡＶ。
【請求項３３】
前記地面マップに含まれる前記複数のセルは、形状が長方形であり、前記ＵＡＶが飛行している間に、前記ＵＡＶの位置に実質的に中心を保つように継続的に更新される２次元（２Ｄ）長方形グリッドとして配置される、請求項２７に記載のＵＡＶ。
【請求項３４】
前記地面マップの前記２Ｄ長方形グリッドは、幅Ｍセル×長さＭセルであり、識別された前記フットプリントは、幅Ｎセル×長さＮセルの長方形に配置された前記複数のセルの前記サブセットを含み、ＮはＭ未満である、請求項３３に記載のＵＡＶ。
【請求項３５】
前記着陸システムは、さらに、
前記ＵＡＶが前記物理環境中を飛行している間に、前記ＵＡＶの運転状態を監視し、
前記監視に基づいて、前記ＵＡＶの前記運転状態が運転基準を満たしていないことを決定し、
前記運転状態が前記運転基準を満たしていないことを決定するステップに応じて、前記着陸の命令を生成する
ように構成される、請求項２７に記載のＵＡＶ。
【請求項３６】
前記ＵＡＶに搭載された１つ以上のシステムに電力を供給するように構成された電源をさらに含み、
前記着陸システムは、さらに、
前記ＵＡＶが飛行している間に、前記電源の電力レベルを監視し、
前記監視に基づいて前記電力レベルが閾値電力レベル未満に低下していることを決定し、
前記電源の前記電力レベルが前記閾値電力レベル未満に低下したと決定したことに応答して、前記着陸の命令を生成する、
請求項２７に記載のＵＡＶ。
【請求項３７】
前記画像キャプチャデバイスによってキャプチャされた画像に基づいて画像データを格納するように構成されたストレージデバイスをさらに含み、
前記着陸システムは、さらに、
前記ＵＡＶが飛行している間に、前記ストレージデバイス内で利用可能なストレージのレベルを監視し、
前記監視に基づいて前記利用可能なストレージのレベルが前記利用可能なストレージレベル未満に低下していることを決定し、
前記利用可能なストレージのレベルが前記利用可能なストレージレベル未満に低下したと決定したことに応答して、前記着陸の命令を生成する、
請求項２７に記載のＵＡＶ。
【請求項３８】
前記物理環境内の対象を検出及び追跡するように、前記画像キャプチャデバイスによってキャプチャされた前記画像を処理し、
前記対象の追跡に基づいて追跡目標を生成し、
前記対象を追跡するための計画軌道の生成を容易にするために、前記追跡目標をモーションプランナに伝達する
ように構成された追跡システムをさらに含み、
前記着陸システムは、さらに、
前記追跡システムから前記対象との視覚的接触が失われたという指標を受信し、
前記指標の受信に応答して、前記着陸の命令を生成する、
請求項２７に記載のＵＡＶ。
【請求項３８】
前記モーションプランナと、
飛行コントローラと、
推進システムと
をさらに含み、
前記モーションプランナは
前記計画軌道を生成するように、前記着陸目標を処理し、
前記計画軌道を前記飛行コントローラに出力する
ように構成され、
前記飛行コントローラは、前記ＵＡＶが指定された前記着陸エリア上に着陸するよう前記計画軌道に沿って操縦されるように前記推進システムを制御するための制御コマンドを生成するように構成される、請求項２７に記載のＵＡＶ。
【請求項３９】
識別された前記フットプリントのサイズ及び／又は形状が、前記ＵＡＶのサイズ若しくは形状、ユーザの嗜好又は前記ＵＡＶに近接する前記物理環境の一部の特性のいずれかに基づく、請求項２７に記載のＵＡＶ。
【請求項４０】
有人航空機であって、
１つ以上の制御アクチュエータと、
前記有人航空機のパイロットから入力を受信して、前記パイロットからの入力に基づいて前記有人航空機を操縦するように前記１つ以上の制御アクチュエータを調整するための手動制御システムと、
前記有人航空機の周囲の物理環境の画像をキャプチャするように構成された画像キャプチャデバイスと、
自動着陸システムであって、
着陸の命令に応じて：
前記物理環境内の表面の一部の地面マップを生成して継続的に更新するように、前記画像キャプチャデバイスによってキャプチャされた前記画像を処理するステップであって、前記地面マップは、複数のセルを含み、前記複数のセルのそれぞれは、キャプチャされた前記画像に基づいて継続的に更新される特性データを含む、ステップと、
前記地面マップに基づいて着陸フットプリントを識別するステップであって、前記着陸フットプリントは、指示された着陸基準を満たす特性データを含む前記地面マップ内の前記複数のセルのサブセットを含む、ステップと、
識別された前記着陸フットプリントに基づいて前記物理環境内の前記表面上の着陸エリアを指定するステップと、
１つ以上の制御アクチュエータを自動的に調整して、有人航空機を指定された着陸エリアに自律的に着陸させるステップと
を行うように構成された、自動着陸システムと
を含む、有人航空機
【請求項４１】
前記１つ以上の制御アクチュエータは、推進システム及び／又は１つ以上の調整可能な操縦翼面のいずれかを含む、請求項４０に記載の有人航空機。
【請求項４２】
前記地面マップを生成するステップは、
複数のデータ点を生成するように、前記画像を処理するステップと、
前記セルに対応する前記複数のデータ点の１つ以上に基づいて前記地面マップ内のセルについての特性データを更新するステップと
を含む、請求項４０に記載の有人航空機。
【請求項４３】
前記複数のデータ点を生成するように、前記画像を処理するステップは、
視差画像を生成するように、前記画像を処理するステップと、
生成された前記視差画像のピクセルを、前記物理環境の前記表面に沿った点に対応する空間の３次元（３Ｄ）点にマッピングするステップであって、各３Ｄ点は、空間内における該３Ｄ点のそれぞれの位置に基づく高さ値を有している、ステップと
を含み、
前記複数のデータ点の１つ以上は、前記３Ｄ点の高さ値に基づいている、請求項４２に記載の有人航空機。
【請求項４４】
特定のセルについての特性データが、前記特定のセルに対応する前記物理環境の前記表面の一部に沿った複数の３Ｄ点の統計値的高さ情報を含み、前記特定のセルについての前記特性データを更新することが、
前記特定のセルに対応するデータ点を処理して、前記特定のセルについての平均高さ値、又は、高さ値の差の２乗の合計のいずれかを計算することを含む、請求項４３に記載の有人航空機。
【請求項４５】
前記自動着陸システムは、さらに、
前記有人航空機が前記物理環境中を飛行している間に、前記有人航空機の運転状態を監視し、
前記監視に基づいて前記有人航空機の前記運転状態が運転基準を満たしていないことを決定し、
前記運転状態が前記運転基準を満たしていないことを決定するステップに応じて、前記着陸の命令を生成する
ように構成される、請求項４０に記載の有人航空機。
【請求項４６】
前記着陸の命令は、前記パイロットによる入力に応答して受信される、請求項４０に記載の有人航空機。
【請求項４７】
前記自動着陸システムが
モーションプランナと、
飛行コントローラと、
を含み、
前記有人航空機を指定された前記着陸エリアに自律的に着陸させるように、前記１つ以上の制御アクチュエータを調整するステップは、指定された前記着陸エリア上に着陸するための行動目標を生成することを含み、
前記モーションプランナは
計画軌道を生成するように、前記行動目標を処理し、
前記計画軌道を前記飛行コントローラに出力する
ように構成され、
前記飛行コントローラは、前記有人飛行機が指定された前記着陸エリア上に着陸するよう前記計画軌道に沿って操縦されるように前記１つ以上の制御アクチュエータを制御するための制御コマンドを生成するように構成される、請求項４０に記載の有人航空機。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１８年２月９日に出願された「無人航空機スマート着陸」という題名の米国仮出願第６２／６２８，８７１号（代理人整理番号１１３３９１−８０１２．ＵＳ００）の利益及び／又は優先権を享受する権利を有し、その内容は全ての目的のためにその全体が参照により本明細書に組み込まれる。したがって、本出願は、２０１８年２月９日の優先日を享受する権利を有する。
【０００２】
技術分野
本開示は、概して、自律輸送機械技術に関する。
【背景技術】
【０００３】
輸送機械は、物理環境を自律的にナビゲートするように構成することができる。例えば、様々な車載センサを備えた自律輸送機械は、周囲の物理環境に基づいて知覚入力を生成し、それらの知覚入力を、物理環境内の自律輸送機械の位置及び／又は方向を推定するために使用するよう構成され得る。そして、自律型ナビゲーションシステムは、それらの位置及び／又は方向の推定値を利用して、自律輸送機械を物理環境中において案内することができる。
【発明の概要】
【０００４】
概観
無人航空機（ＵＡＶ）による継続的な飛行を安全でないか望ましくないものとしかねない、様々な状況が存在する。例えば、ＵＡＶに搭載されているバッテリの充電が低下している可能性や、特定のシステム（視覚ナビゲーション用のシステム等）が正しく動作していない可能性がある。名目上のユースケースであっても、ＵＡＶは、通常の飛行中において、電力がなくなる前に制御された降下及び着陸を完了するのがやっとの電荷しかバッテリ内に残っていないポイントに到達するかもしれない。どのような状況であっても、ＵＡＶによる自律着陸が必要になる可能性がある。
【０００５】
ＵＡＶによる自律スマート着陸を可能にする技術が提示される。いくつかの実施形態では、提示の技術は、ＵＡＶ（又は、関連する自律ナビゲーションシステム）が、利用可能な情報を利用して着陸のための安全な場所を選択することを可能にする。そのような着陸のための安全な場所は、１）人への接触及び／又は傷害を回避する、２）ＵＡＶ自体を含む全ての資産への接触や損傷を回避する、及び／又は、３）ユーザにとって便利又は望ましく、該ユーザの特定のユースケースである。いくつかの実施形態では、ＵＡＶは、着陸のためにＵＡＶにとって現在見えている地面の最も平坦な領域を選択する、ジオメトリ的スマート着陸を実行するように構成されてもよい。いくつかの実施形態は、上記の要件を満たす（可能な限り近くの）着陸地点を選択するために、周囲の物理環境の意味知識を組み込むことに関与していてもよい。いくつかの実施形態では、ＵＡＶは、着陸選択プロセスを訓練するために、ユーザに案内又は制御された着陸中に情報を収集するように構成されてもよい。
【図面の簡単な説明】
【０００６】
【図１】図１は、本明細書に記載の所定の技術が適用され得る、無人航空機（ＵＡＶ）の形態における自律輸送機械の例示的な構成を示す。
【０００７】
【図２】図２は、図１のＵＡＶによって実装され得る、例示的なナビゲーションシステムのブロック図を示す。
【０００８】
【図３Ａ】図３Ａは、図２のナビゲーションシステムの一部であり得る、例示的な運動計画システムのブロック図を示す。
【０００９】
【図３Ｂ】図３Ｂは、図３Ａに示される運動計画システムに組み込まれ得る、例示的な目標を表すブロック図を示す。
【００１０】
【図４】図４は、ＵＡＶによる自律着陸のための例示的なプロセスのフローチャートである。
【００１１】
【図５Ａ】図５Ａは、飛行中のＵＡＶによって生成された例示的な地面マップを示す。
【００１２】
【図５Ｂ】図５Ｂは、図５Ａの地面マップに含まれる例示的なフットプリントを示す。
【００１３】
【図６】図６は、地面の上方を飛行中のＵＡＶの立面図を示す。
【００１４】
【図７Ａ】図７Ａは、ジオメトリ的スマート着陸技術を使用したＵＡＶによる自律着陸のための例示的なプロセスのフローチャートである。
【００１５】
【図７Ｂ】図７Ｂは、新しい点に基づいて所与のセルの統計値を更新する際に、セル内の古い点をダウンウェイトするための例示的なプロセスのフローチャートである。
【００１６】
【図８Ａ】図８Ａは、様々なオブジェクトが配置された物理環境上を飛行中のＵＡＶを示す。
【００１７】
【図８Ｂ】図８Ｂは、図８Ａに示される様々なオブジェクトに基づいて追加された意味情報を有する例示的な地面マップを示す。
【００１８】
【図９】図９は、意味論的スマート着陸技術を使用したＵＡＶによる自律着陸のための例示的なプロセスのフローチャートである。
【００１９】
【図１０】図１０は、ＵＡＶの運転状態に基づいてＵＡＶを着陸させるための例示的なプロセスのフローチャートである。
【００２０】
【図１１Ａ】図１１Ａは、スマート着陸が不可能であるとの決定に応答して、制御された降下を開始するための例示的なプロセスのフローチャートである。
【図１１Ｂ】図１１Ｂは、スマート着陸が不可能であるとの決定に応答して、制御された降下を開始するための例示的なプロセスのフローチャートである。
【００２１】
【図１２】図１２は、本開示に記載の少なくともいくつかの操作が実装され得る、例示的な位置特定システムの図である。
【００２２】
【図１３】図１３は、キャプチャされた画像に基づく視覚オドメトリの概念を示す図である。
【００２３】
【図１４】図１４は、物理環境の三次元（３Ｄ）占有マップの例示的な図である。
【００２４】
【図１５】図１５は、キャプチャされた画像の処理に基づいて追跡されるオブジェクトに関するデータの関連付けられた視覚化を伴う、物理環境中を飛行中のＵＡＶによってキャプチャされた例示的な画像である。
【００２５】
【図１６】図１６は、ＵＡＶによってキャプチャされた複数の画像に基づいてオブジェクトの軌道を推定するための例示的なプロセスを示す図である。
【００２６】
【図１７】図１７は、例示的な時空間因子グラフの図表示である。
【００２７】
【図１８】図１８は、追跡されるオブジェクトが後にキャプチャされる画像のどこに現れるかについてのインテリジェントな初期推定を生成する例示的なプロセスを示す図である。
【００２８】
【図１９】図１９は、キャプチャされた画像の密なピクセル毎セグメンテーションを表す視覚化を示す。
【００２９】
【図２０】図２０は、キャプチャされた画像のインスタンスセグメンテーションを表す視覚化を示す。
【００３０】
【図２１】図２１は、本開示に記載の少なくともいくつかの動作が実装され得る様々な機能システムコンポーネントを含む、例示的なＵＡＶシステムのブロック図である。
【００３１】
【図２２】図２２は、本開示に記載の少なくともいくつかの動作が実装され得る、例示的な処理システムのブロック図である。
【発明を実施するための形態】
【００３２】
無人航空機の実装例
図１は、本明細書に記載の所定の技術が適用され得る、ＵＡＶ１００の例示的な構成を示す。図１に示すように、ＵＡＶ１００は、ロータベースの航空機（例えば、「クワッドコプター」）として構成されてもよいが、他の提示の技術は、固定翼航空機などの他のタイプのＵＡＶにおいて同様に適用され得る。例示的なＵＡＶ１００は、制御された飛行を維持するための制御アクチュエータ１１０を含む。制御アクチュエータ１１０は、ＵＡＶの構成に応じて、推進システム（例えば、ロータ）、及び／又は、１つ以上の操縦翼面（例えば、フラップ、補助翼、方向舵等）を含む又はそれらに関連し得る。図１に示される例示的なＵＡＶ１００は、電子ロータの形態である制御アクチュエータ１１０を含み、この制御アクチュエータ１１０は、ＵＡＶ１００の推進システムを含む。ＵＡＶ１００はまた、自動ナビゲーション及び飛行制御１１２のための様々なセンサと、飛行中に周囲の物理環境の画像をキャプチャするための１つ以上の画像キャプチャデバイス１１４及び１１５とを含む。この文脈における「画像」は、静止画像とキャプチャされたビデオとの両方を含む。図１には示されていないが、ＵＡＶ１００はまた、無線通信チャネル１１６を介して、モバイルデバイス１０４等の他のデバイスと通信するための他のセンサ（例えば、オーディオをキャプチャするためのセンサ）及びシステムを含んでいてもよい。
【００３３】
図１に示される例では、画像キャプチャデバイス１１４及び／又は１１５は、偶然人であった物理環境内のオブジェクト１０２をキャプチャするように示されている。いくつかの場合では、画像キャプチャデバイスは、ユーザに対して（例えば、空中ビデオプラットフォームとして）表示するための画像をキャプチャするように構成されてもよく、及び／又は、上述のように、自律ナビゲーションにおいて使用するための画像をキャプチャするように構成されてもよい。換言すれば、ＵＡＶ１００は、例えば、任意の１つ以上の画像キャプチャデバイスによってキャプチャされた画像を処理することによって、自律的に（すなわち、直接的な人間の制御なしで）物理環境をナビゲートしてもよい。自律飛行している間に、ＵＡＶ１００はまた、任意の１つ以上の画像キャプチャデバイスを使用して画像をキャプチャすることも可能であり、それらの画像は、リアルタイムで表示したり、後に他のデバイス（例えば、モバイルデバイス１０４）にて表示するために記録したりすることができる。
【００３４】
図１は、それぞれ異なる目的のために構成された複数の画像キャプチャデバイスを備えたＵＡＶ１００の例示的な構成を示す。図１に示す例示的な構成では、ＵＡＶ１００は、ＵＡＶ１００の周囲に配置された複数の画像キャプチャデバイス１１４を含む。画像キャプチャデバイス１１４は、ＵＡＶ１００による自律飛行の案内において視覚ナビゲーションシステムによって使用される、及び／又は、（例えば、図２に関して説明されるような）物理環境内の他のオブジェクトを追跡するための追跡システムによって使用される画像をキャプチャするように構成されてもよい。具体的には、図１に示すＵＡＶ１００の例示的な構成は、ＵＡＶ１００の周りに３６０度最大限の立体画像キャプチャを提供するようにＵＡＶ１００の周囲に配置された、複数の立体画像キャプチャデバイス１１４のアレイを含む。
【００３５】
画像キャプチャデバイス１１４のアレイに加えて、図１に示すＵＡＶ１００はまた、画像をキャプチャするように構成された別の画像キャプチャデバイス１１５を含む。この画像キャプチャデバイス１１５によってキャプチャされる画像は、ナビゲーションのために表示されるが、必ずしもナビゲーションのために使用される必要はない。いくつかの実施形態では、画像キャプチャデバイス１１５は、キャプチャされた画像の利用方法を除いて、画像キャプチャデバイス１１４と同様であってもよい。しかしながら、他の実施形態では、画像キャプチャデバイス１１５及び１１４は、それぞれの役割に適合するように、異なって構成されてもよい。
【００３６】
多くの場合では、所定のハードウェア及びソフトウェアの制約があるとすると、一般的に、見られることが意図された画像を可能な限り高い解像度でキャプチャすることが好ましい。一方で、視覚ナビゲーションやオブジェクト追跡に使用する場合、所定の状況では、処理負荷を軽減してより堅牢なモーションプランニング性能を提供するために、低解像度の画像が望ましい場合がある。したがって、いくつかの実施形態では、画像キャプチャデバイス１１５は、比較的高い解像度（例えば、３８４０×２１６０）のカラー画像をキャプチャするように構成されてもよく、一方で、画像キャプチャデバイス１１４は、比較的低い解像度（例えば、３２０×２４０）のグレースケール画像をキャプチャするように構成されてもよい。
【００３７】
ＵＡＶ１００は、画像キャプチャデバイス１１４及び／又は１１５を介して受信された画像に基づいて、人間の対象１０２等の１つ以上のオブジェクトを物理環境中で追跡するように構成され得る。さらに、ＵＡＶ１００は、そのようなオブジェクトの画像キャプチャを、例えば撮影の目的で追跡するように構成することができる。いくつかの実施形態では、画像キャプチャデバイス１１５は、ＵＡＶ１００の本体に対する運動の１つ以上の自由度を与える調整可能な機構を介して、ＵＡＶ１００の本体に結合される。ＵＡＶ１００は、ＵＡＶ１００及びオブジェクトの両方が物理環境中を動いている際に、画像キャプチャデバイス１１５の向きを、オブジェクト（例えば、人間の対象１０２）の画像キャプチャを追跡するように自動的に調整するよう構成されてもよい。いくつかの実施形態では、この調整可能な機構は、取り付けられた画像キャプチャデバイスを１つ以上の軸を中心に回転させる機械的ジンバル機構を含んでいてもよい。いくつかの実施形態では、ジンバル機構は、画像キャプチャデバイス１１５をＵＡＶ１００の本体に結合するハイブリッド機械的デジタルジンバルシステムとして構成されてもよい。ハイブリッド機械的デジタルジンバルシステムでは、画像キャプチャデバイス１１５の１つ以上の軸回りの向きが機械的手段によって調整されてもよく、一方で、他の軸回りの向きがデジタル手段によって調整されてもよい。例えば、機械的ジンバル機構は、画像キャプチャデバイス１１５のピッチにおける調整を取り扱ってもよく、一方で、ロール及びヨーの調整は、ＵＡＶ１００に対する画像キャプチャデバイス１１５の運動の少なくとも３自由度を効果的に提供するために、キャプチャされた画像を変換する（例えば、回転する、パンする等）ことによってデジタルで達成される。
【００３８】
モバイルデバイス１０４は、ラップトップコンピュータ、テーブルコンピュータ（例えば、Ａｐｐｌｅ  ｉＰａｄTM）、携帯電話、スマートフォン（例えば、Ａｐｐｌｅ  ｉＰｈｏｎｅTM）、手持ち式ゲームデバイス（例えば、Ｎｉｎｔｅｎｄｏ  ＳｗｉｔｃｈTM）、単機能リモートコントロールデバイス等の任意のタイプのモバイルデバイス、又は、ユーザ入力を受信し、（例えば、ユーザ入力に基づいて）伝送のための信号をＵＡＶ１００へと送信し、及び／若しくは、（例えば、ＵＡＶ１００によって収集されたセンサデータに基づいて）ユーザに対して情報を提示することが可能な任意の他のタイプのデバイスを含んでいてもよい。いくつかの実施形態では、モバイルデバイス１０４は、タッチスクリーンディスプレイと、ユーザ入力を受信して情報を提示するための関連するグラフィカルユーザインタフェース（ＧＵＩ）とを含んでいてもよい。いくつかの実施形態では、モバイルデバイス１０４は、センサデータを収集可能な様々なセンサ（例えば、画像キャプチャデバイス、加速度計、ジャイロスコープ、ＧＰＳ受信機等）を含んでいてもよい。いくつかの実施形態では、そのようなセンサデータは、例えばＵＡＶ１００の搭載ナビゲーションシステムによって使用されるために、ＵＡＶ１００に伝達され得る。
【００３９】
図２は、図１に関して記載された例示的なＵＡＶ１００の一部として実装され得る、例示的なナビゲーションシステム１２０を表すブロック図である。ナビゲーションシステム１２０は、任意の組み合わせのハードウェア及び／又はソフトウェアを含んでいてもよい。例えば、いくつかの実施形態では、ナビゲーションシステム１２０及び関連するサブシステムは、メモリに格納されて１つ以上のプロセッサによって実行可能な命令として実装されてもよい。
【００４０】
図２に示すように、例示的なナビゲーションシステム１２０は、ＵＡＶ１００を物理環境中において自律的に操縦するためのモーションプランナ１３０（本明細書では、「モーションプランニングシステム」とも称される）と、物理環境内の１つ以上のオブジェクトを追跡するための追跡システム１４０と、本明細書に記載のスマート着陸技術を実行するための着陸システム１５０とを含む。なお、図２に示したシステムの構成は、例示の目的で提供された例であり、限定するものとして解釈されるべきではない。例えば、いくつかの実施形態では、追跡システム１４０及び／又は着陸システム１５０は、ナビゲーションシステム１２０から分離されていてもよい。さらに、ナビゲーションシステム１２０を構成するサブシステムは、図２に示されるように論理的に分離されていなくてもよく、その代わりに単一の統合ナビゲーションシステムとして効果的に動作してもよい。
【００４１】
いくつかの実施形態では、モーションプランナ１３０は、別個に又は追跡システム１４０と連携して動作し、例えば、画像キャプチャデバイス１１４及び／若しくは１１５から受信された画像、他のセンサ１１２（例えば、ＩＭＵ、ＧＰＳ、近接センサ等）からのデータ並びに／又は１つ以上の制御入力１７０に基づいて、物理環境の３次元（３Ｄ）空間中に計画軌道を生成するように構成される。制御入力１７０は、ユーザによって操作されるモバイルデバイス等の外部ソースからのものであってもよく、ＵＡＶに搭載された他のシステムからのものであってもよい。
【００４２】
いくつかの実施形態では、ナビゲーションシステム１２０は、モーションプランナ１３０によって生成された計画軌道に沿ってＵＡＶ１００を操縦させるように構成された制御コマンドを生成してもよい。例えば、制御コマンドは、ＵＡＶ１００を計画された３Ｄ軌道に沿って操縦させるように１つ以上の制御アクチュエータ１１０（例えば、ロータ及び／又は操縦翼面）を制御するよう構成され得る。あるいは、モーションプランナ１３０によって生成された計画軌道は、軌道情報を処理して、１つ以上の制御アクチュエータ１１０を制御するように構成された適切な制御コマンドを生成するように構成された別個の飛行コントローラ１６０へと出力されてもよい。
【００４３】
追跡システム１４０は、別個に又はモーションプランナ１３０と連携して動作し、例えば、画像キャプチャデバイス１１４及び／若しくは１１５から受信された画像、他のセンサ１１２（例えば、ＩＭＵ、ＧＰＳ、近接センサ等）からのデータ、外部ソース（例えば、リモートユーザ、ナビゲーションアプリケーション等）からの１つ以上の制御入力１７０、並びに／又は、特定の１つ以上の指示された追跡目標に基づいて、物理環境内の１つ以上のオブジェクトを追跡するように構成されてもよい。追跡目標は、例えば、物理環境内において特定の検出されたオブジェクトを追跡するとのユーザによる指定、又は特定の分類のオブジェクト（例えば、人々）を追跡するとの持続的目標を含んでいてもよい。
【００４４】
上記にて言及したように、追跡システム１４０は、例えば、物理環境内のオブジェクトの測定、推定及び／又は予測された位置、向き及び／又は軌道に基づいてＵＡＶ１００を操縦するように、モーションプランナ１３０に伝達してもよい。例えば、追跡システム１４０は、運動中の追跡されるオブジェクトまでの特定の離隔距離を維持するように、ナビゲーション目標をモーションプランナ１３０に伝達してもよい。
【００４５】
いくつかの実施形態では、追跡システム１４０は、別個に又はモーションプランナ１３０と連携して動作し、さらに、ＵＡＶ１００の本体に対する任意の画像キャプチャデバイス１１４／１１５の向きを、１つ以上のオブジェクトの追跡に基づいて機構に調整させるよう構成された、制御コマンドを生成するように構成される。そのような機構は、前述のように、機械的ジンバル又はハイブリッドデジタル機械的ジンバルを含んでいてもよい。例えば、ＵＡＶ１００に対して相対的に運動中のオブジェクトを追跡している間に、追跡システム１４０は、画像キャプチャデバイス１１５の向きを、追跡されるオブジェクトをＵＡＶ１００が運動中に画像キャプチャデバイス１１５の視野（ＦＯＶ）の中心に保持するように調整するよう構成された、制御コマンドを生成してもよい。同様に、追跡システム１４０は、追跡されるオブジェクトをＵＡＶ１００が運動中の画像キャプチャデバイス１１５のＦＯＶの中心に保持するために画像キャプチャデバイス１１５によってキャプチャされた画像を変換するよう、デジタル画像プロセッサ（例えば、ハイブリッドデジタル機械的ジンバルの一部である）へのコマンド又は出力データを生成してもよい。
【００４６】
着陸システム１５０は、別個に又はモーションプランナ１３０と連携して動作し、着陸手順をいつ（例えば、ユーザコマンドに応答して、又は、低バッテリ等の検出されたイベントに応答して）開始するか、着陸場所をいつ（例えば、画像キャプチャデバイス１１４及び／又は１１５から受信した画像及び／又は他のセンサ１１２（例えば、ＩＭＵ、ＧＰＳ、近接センサなど）からのデータに基づいて）識別するか、及び、ＵＡＶに選択された場所にて着陸させるように構成された制御コマンドをいつ生成するかを決定するよう構成されもよい。なお、いくつかの実施形態では、着陸システム１５０は、出力を着陸目標の形態で生成して該着陸目標をモーションプランナ１３０へと入力するように構成されるが、モーションプランナ１３０では、該着陸目標は、ＵＡＶを自律的に着陸させるための他の目標（例えば、他のオブジェクトとの衝突を回避すること）と併せて利用されることに留意されたい。
【００４７】
いくつかの実施形態では、ナビゲーションシステム１２０（例えば、具体的には運動計画コンポーネント１３０）は、任意の所与の時間にて、ＵＡＶ１００の自律行動を案内するために使用可能な計画軌道等の出力を生成するための複数の目標を組み込むように構成される。例えば、障害物の回避や輸送機械動態の制限等の所定の組み込み済目標は、軌道生成プロセスの一部として他の入力目標（例えば、着陸目標）と組み合わせられ得る。いくつかの実施形態では、軌道生成プロセスは、勾配に基づく最適化、勾配なしの最適化、サンプリング、エンドツーエンド学習又はそれらの任意の組み合わせを含み得る。この軌道生成プロセスの出力は、ある時間軸（例えば、１０秒）にわたる計画軌道であることができ、該計画軌道に従ってＵＡＶ１００を操縦する制御コマンドを生成するために、飛行コントローラ１６０によって解釈及び利用されるように構成される。モーションプランナ１３０は、新しい知覚入力（例えば、画像又は他のセンサデータ）及び目標入力が受信された際に、軌跡生成プロセスを継続的に実行してもよい。したがって、計画軌道は、ある時間軸にわたって継続的に更新されてもよく、それによって、変化していく条件にＵＡＶ１００が動的かつ自律的に応答できるようになる。
【００４８】
図３Ａは、目標に基づく運動計画のための例示的なシステムを表すブロック図を示す。図３Ａに示すように、（例えば、図２に関して論じられるような）モーションプランナ１３０は、１つ以上の目標（例えば、前述のような目標）及び／又はより多くの知覚入力３０６に関与する軌道生成プロセスに基づいて、計画軌道３２０を生成して継続的に更新してもよい。知覚入力３０６は、１つ以上の画像キャプチャデバイス１１４／１１５から受信された画像、そのような画像（例えば、視差画像又は深度値）の処理結果、及び／又は、ＵＡＶ１００に搭載された若しくはＵＡＶ１００と通信する他のコンピューティングデバイス（例えば、モバイルデバイス１０４）に関連付けられた１つ以上の他のセンサ１１２からのセンサデータを含んでいてもよい。モーション計画プロセスにおいて利用される１つ以上の目標３０２は、高レベルの行動（例えば、他のオブジェクトとの衝突の回避、ここで説明するスマート着陸テクニックなど）を統御する組み込み済目標、及び、（ユーザから等の）（複数の）制御入力３０８に基づく目標を含んでいてもよい。目標３０２のそれぞれは、１つ以上の目標を満たすように計画軌道を生成する際にモーションプランナ１３０によって利用される１つ以上のモーション計画方程式内に組み込むための１つ以上の方程式としてエンコードされてもよい。制御入力３０８は、ユーザからの制御コマンドの形態であってもよく、追跡システム１４０及び／又はスマート着陸システム１５０等のナビゲーションシステム１２０の他のコンポーネントからの制御コマンドの形態であってもよい。いくつかの実施形態では、そのような入力は、ナビゲーションシステム１２０に関連付けられたアプリケーションプログラミングインタフェース（ＡＰＩ）への呼び出しの形態で受信される。いくつかの実施形態では、制御入力３０８は、追跡システム１４０又は着陸システム１５０等のナビゲーションシステム１２０の他のコンポーネントによって生成された所定の目標を含んでいてもよい。
【００４９】
モーション計画プロセスにおいて利用される１つ以上の目標３０２のセットにおける所与の目標のそれぞれは、ＡＰＩを通じて公開される１つ以上の定義されたパラメータ化を含んでいてもよい。例えば、図３Ｂは、例示的な目標３３２を示しており、例示的な目標３３２は、ターゲット３３４、デッドゾーン３３６、重み係数３３８及び他のパラメータ３４０を含む。
【００５０】
ターゲット３４４は、計画軌道３２０を生成する際にモーションプランナ１３０が満たそうと試みる特定の目標のゴールを定義する。例えば、所与の目標のターゲット３３４は、１つ以上の検出されたオブジェクトに視線を維持すること、又は、物理環境内の特定の位置へと飛行することであってもよい。
【００５１】
デッドゾーンは、モーションプランナ１３０が修正するための動作を行わなくてもよいターゲット３３４回りの領域を定義する。このデッドゾーン３３６は、所与のターゲット３３４を満たすための許容レベルと考えられてもよい。例えば、例示的な画像に対する目標におけるターゲットは、追跡されるオブジェクトがキャプチャされた画像の画像空間内の特定の位置（例えば、中心）に現れるように、追跡されるオブジェクトの画像キャプチャを維持することであってもよい。このターゲットからのわずかなずれに基づいて継続的に調整されることを回避するため、ある程度の許容差を許容するためのデッドゾーンが定義される。例えば、デッドゾーンは、画像空間のターゲット位置の周囲のｙ方向及びｘ方向に定義され得る。換言すれば、追跡されるオブジェクトが、画像におけるターゲットによって囲まれた領域内及びそれぞれのデッドゾーンに表示されている限り、目標は満たされているとみなされる。
【００５２】
重み係数３３６（「積極性」係数とも称される）は、特定の目標３３２がモーションプランナ１３０によって実行される全体的な軌道生成プロセスに及ぼすことになる影響の相対的なレベルを定義する。特定の目標３３２は、競合するターゲットを含み得るいくつかの目標３０２のうちの１つであり得ることを思い出されたい。理想的な状況では、モーションプランナ１３０は、任意の所与の瞬間にて、関連する目標の全てを完全に満たすプランナ軌道３２０を生成する。例えば、モーションプランナ１３０は、追跡されるオブジェクトを追跡し、追跡されるオブジェクトの画像をキャプチャし、追跡されるオブジェクトとの視線を維持し、他のオブジェクトとの衝突を回避しつつ、ＵＡＶ１００を特定のＧＰＳ座標に操縦する計画軌道を生成してもよい。実際には、そのような理想的な状況はまれであるかもしれない。したがって、モーションプランナシステム１３０は、（任意の数の理由で）両方を満たすことが不可能又は非実用的である際には、ある目標を別の目標よりも優先する必要があり得る。目標３０２のそれぞれの重み係数は、それらがモーションプランナ１３０によってどのように考慮されるかを定義する。
【００５３】
例示的な実施形態では、重み係数は、０．０〜１．０のスケールの数値である。特定の目標についての値０．０は、モーションプランナ１３０が（必要な場合に）目標を完全に無視できることを示し、値１．０は、モーションプランナ１３０が安全な飛行を維持しながら目標を満たすために最大限の取り組みをすることを示す。値０．０は、同様に、非アクティブな目標に関連付けられてもよく、例えば目標のアプリケーション１２１０によってアクティブ状態から非アクティブ状態へと切り替わることに応答して、ゼロに設定されてもよい。キャプチャされた画像の視覚的顕著性を維持する等の主観的又は審美的なターゲットに基づく所定の目標に対しては、低い重み係数値（例えば、０．０〜０．４）が設定されてもよい。逆に、別のオブジェクトとの衝突を回避する等のより重要な目標に対しては、より高い重み係数値（例えば、０．５〜１．０）が設定されてもよい。
【００５４】
いくつかの実施形態では、ＵＡＶ１００が飛行している間に計画軌道が継続的に更新されるため、重み係数値３３８は静的なままであってもよい。あるいは又はこれに加えて、所定の目標の重み係数は、ＵＡＶ１００が飛行している間に変化する条件に基づいて、動的に変化してもよい。例えば、キャプチャされた画像内における（例えば、光量が少ない条件であることに起因する）不確実な深度値の計算に関連付けられた領域を回避するための目標は、ＵＡＶ１００の安全な運転に対する他の知覚された脅威に基づいて増減する可変の重み係数を有していてもよい。いくつかの実施形態では、目標は、その目標がどのように適用されるかに応じて変化する複数の重み係数値に関連付けられてもよい。例えば、衝突回避目標は、回避されるべき検出されたオブジェクトのクラスに応じて、異なる重み係数を利用してもよい。図示の例として、システムは、建物又は木との衝突を回避することに対して、人又は動物との衝突を回避することをより重視するように構成されてもよい。
【００５５】
図１に示すＵＡＶ１００及び図２に示す関連するナビゲーションシステム１２０は、例示の目的で提供される例である。本教示に係るＵＡＶ１００は、示されたものよりも多い又は少ないコンポーネントを含んでいてもよい。さらに、図１に示すＵＡＶ１００及び図２に示す関連するナビゲーションシステム１２０の例は、図２１に関して説明される例示的なＵＡＶシステム２１００及び／又は図２２に関して説明される例示的なコンピュータ処理システム２２００の１つ以上のコンポーネントを含む又はその一部であり得る。例えば、前述のナビゲーションシステム１２０と、関連するモーションプランナ１３０、追跡システム１４０及び着陸システム１５０とは、ＵＡＶシステム２１００及び／又はコンピュータ処理システム２２００を含む又はその一部であり得る。
【００５６】
スマート着陸のために提示された技術は、例示を簡潔にするために、図１に示されるＵＡＶ１００のような無人航空機の文脈で記載しているが、提示の手法はこの文脈に限定されない。提示の技術は、ヘリコプターなどの有人ロータクラフトや、有人又は無人の固定翼航空機等、他のタイプの航空機の着陸を案内するために同様に適用されてもよい。例えば、有人航空機は、手動制御（直接又は間接的）のコンポーネントに加えて、自律ナビゲーションコンポーネント（例えば、ナビゲーションシステム１２０）を含んでいてもよい。着陸シーケンス中に、航空機の制御は、手動制御コンポーネントから自動制御コンポーネントへと切り替わってもよく、その際、提示のタッチダウン検出技術が実行される。手動制御から自動制御への切り替えは、パイロット入力に応答して、及び／又は、リモート信号、環境条件、航空機の運転状態等の検出されたイベントに自動的に応答して実行される。
【００５７】
スマート着陸プロセス
図４は、提示の技術に係る、ＵＡＶによる自律着陸のための例示的なプロセス４００のフローチャートを示す。この例示的なプロセスの１つ以上のステップは、図２に示す例示的なナビゲーションシステム１２０のコンポーネントのうちの任意の１つ以上によって実行されてもよい。例えば、プロセス４００は、ナビゲーションシステム１２０の着陸システム１５０コンポーネントによって実行されてもよい。さらに、プロセス４００の実行は、図２１又は２２の例示的なコンピュータシステムのコンピューティングコンポーネントのいずれかを含んでいてもよい。例えば、図４に示されるプロセス４００は、メモリ内に格納された命令において表され、それらの命令は、後に処理ユニットによって実行される。図４に関して説明されたプロセス４００は、例示の目的で提供される例であって、限定するものとして解釈されるべきではない。その他のプロセスは、本開示の範囲内であることを保ちつつ、示されるよりも多い又は少ないステップを含んでいてもよい。さらに、例示的なプロセスに示されるステップが、示されているものとは異なる順序で実行されてもよい。
【００５８】
例示的なプロセス４００はまず、ステップ４０２にて、ＵＡＶが物理環境中を飛行している間に、搭載又は他の方法でＵＡＶに関連付けられた１つ以上のセンサからセンサデータ（すなわち、知覚入力）を受信することによって始まる。前述のように、センサは、画像キャプチャデバイス１１４及び／又は１１５などの視覚センサ、並びに、物理環境内の所定の態様を認識するように構成された他のタイプのセンサ１１２を含んでいてもよい。
【００５９】
例示的なプロセス４００は続いて、ステップ４０４にて、受信されたセンサデータを、物理環境の「地面マップ」を生成するように処理する。多数の潜在的な着陸エリアを効果的に評価するために、着陸システム１５０は、本明細書で「セル」と称される地面マップのより小さいエリアに関する情報を保持してもよい。換言すれば、地面マップは、物理環境における表面の特定の部分を表す複数のセルの配置を含んでいてもよい。セルのそれぞれは、該セルに対応する物理環境の該セル部分における知覚された特性を示すデータ（「特性データ」とも称される）に関連付けられてもよい。例えば、後でより詳細に記載するように、所与のセルについての特性データは、該セルに対応するエリア内の表面に沿った様々な点の高さに関する統計値を含んでいてもよい。特性データはまた、該セルに対応する領域内において検出された物理オブジェクトに関連付けられた意味情報を含んでいてもよい。いずれの場合においても、特性データは、ステップ４０２にて受信された、ＵＡＶが飛行している間にＵＡＶによって収集されるセンサデータに主として基づいてもよいが、物理環境内のリモートセンサ、他のＵＡＶに搭載されたセンサ、モバイルデバイス１０４内のセンサ、事前決定された標高値のデータベース、オブジェクトの位置等の他のデータソースからの情報によって補足されてもよい。
【００６０】
図５Ａは、物理地表面５０２を含む物理環境５００中を飛行中の例示的なＵＡＶ１００を示す。図５Ａに示すように、ＵＡＶ１００に関連付けられた着陸システム１５０は、複数のセルを含む２次元（２Ｄ）地面マップ５１０を保持して継続的に更新してもよい。図５Ａに示す例では、地面マップ５１０のセルは、形状が長方形であり、幅Ｍセル×長さＭセルの長方形２Ｄグリッドに配置される。地面マップ５１０におけるセルのこの例示的な構成は、例示の目的で提供されており、限定するものとして解釈されるべきではない。例えば、地面マップのセルは、図５Ａに示されているものとは異なる形状であってもよい。さらに、地面マップ５１０のセルは、図５Ａに示されるものとは異なるように配置されてもよい。例えば、代替となる地面マップは、幅Ｍ１セル×長さＭ２セル（Ｍ１がＭ２と等しくない）であってもよい。
【００６１】
いくつかの実施形態では、ＵＡＶ１００が物理環境５０２上を飛行している際に、ステップ４０２及び４０４が継続的に実行される。換言すると、ＵＡＶの飛行中に新しいセンサデータが受信されると、地面マップ５１０のセルのそれぞれに関連付けられた特性データが、該セルに関連付けられた物理環境５０２の表面の一部の特性を反映するように継続的に更新される。この文脈において「継続的」とは、所与のステップをミリ秒毎等の短い間隔で実行することを示すことがある。利用される実際の間隔は、ＵＡＶ１００の動作要件及び／又は着陸システム１５０の計算能力に依存する。
【００６２】
いくつかの実施形態では、地面マップ５１０は、ＵＡＶを中心とするものである。換言すれば、ＵＡＶ１００が飛行している間、地面マップ５１０は、ＵＡＶ１００の位置を基準として中心に保っているか、そうでなければ静止状態を保っている。このことは、任意の所与の瞬間において、地面マップ５１０は、地面マップ５１０の寸法に基づくＵＡＶ１００の特定の範囲内の物理環境の一部に関連付けられた特性データのみを含んでいてもよいことを意味する。
【００６３】
特性データ（例えば、高さ統計値）を地面マップの一部（すなわち、セル）に関連付けると、後に着陸する表面上の適切な領域を選択するために必要な計算が簡略化され、それによって特性データを格納及び計算するために必要な計算リソースが削減され得ると共に、適切な着陸エリアを選択する際の待ち時間が短縮され得る。さらに、地面マップ５１０内のセルの配置は、利用可能なコンピューティングリソース、電力使用量等の特定の制約内に留まりつつ、ＵＡＶ１００の動作要件に適合するように調整され得る。例えば、値Ｍを増加させることによって地面マップ５１０の「解像度」を増加させることは、地面マップ５１０に対応する物理環境５０２の部分の特性のより正確な知覚を、着陸システム１５０に提供し得る。しかしながら、この解像度の増加は、セルに関連付けられた特性データを計算及び維持するために必要な計算リソースを増加させることとなり、それによって搭載システムの能力を超えたり、及び／又は、消費電力が増加したりする可能性がある。いずれの場合にも、地面マップ５１０の特定の構成は、動作要件と所与の制約とのバランスを取るように（設計中又はＵＡＶ１００が飛行している間のいずれかの際に）調整され得る。
【００６４】
図４に戻って参照すると、例示的なプロセス４００は続いて、ステップ４０６にて、１つ以上の指示された着陸基準を満たす特性データに関連付けられている地面マップ５１０内のセルのサブセットを含むフットプリントを識別する。本明細書で使用される場合、「フットプリント」とは、地面マップ５１０に含まれるセルの任意のサブセットの配置を示す。例えば、フットプリントは、地面マップ５１０内の単一のセルを含んでいてもよく、複数のセルの配置を含んでいてもよい。例えば、図５Ｂは、フットプリント５１２を表す強調表示されたセルのサブセットを備えた地面マップ５１０の図を示す。
【００６５】
図５Ｂに示される例示的なフットプリント５１２は、幅Ｎセル×長さＮセル（ＭはＮより大きい）の長方形のセル配置を含むが、フットプリントを含む実際のセルの配置は、いくつかの要因に応じて異なっていてもよい。例えば、ＵＡＶ１００のサイズ及び／又は形状は、そのナビゲーションシステムの精度と併せて、安全な着陸を実行するために地面の必要とされるエリアのタイプに影響を与えることになる。具体的な図示の例として、ＵＡＶ１００の寸法が幅２フィート×長さ２フィートの場合、地面の面積は、安全率により４平方フィートよりも大きくなければならないことになる。安全率は、例えば、着陸システム１５０の能力、気象条件、他のナビゲーション目標、ユーザの嗜好等に基づいて変化し得る。例えば、強風を感知したことに応答して、着陸システム１５０は、安全率を増加させてもよく、それによって、表面に安全に着陸するために必要なフットプリントのサイズを増加させてもよい。
【００６６】
さらに、例示的なフットプリント５１２を含むセルの配置は、長方形として示されているが、より高い解像度の地面マップを採用する他の実施形態は、ＵＡＶ１００の実際の形状により密に対応する、より不規則な形状を備えたフットプリントを識別してもよい。これにより、複数のフットプリント候補を評価するために要求されるコンピューティングリソースが増加する可能性があるが、狭いスペース又は不均一な地形における着陸が可能になることがある。
【００６７】
上述のように、フットプリントを識別するステップは、１つ以上の指示された着陸基準に対してそのフットプリントに関連付けられた特性データを評価することを含んでいてもよい。例えば、特性データが高さ統計値に関連付けられている場合、フットプリントを評価するステップは、地面マップ５１０の複数のセルの高さ値を集計して、分散（変化）のある閾値レベル内にある（例えば、比較的平坦な地面を示す）高さ統計値を有するセルの配置を識別することを含んでいてもよい。同様に、特性データが検出されたオブジェクトに関する意味情報に関連付けられている場合、フットプリントを評価するステップは、水域、木、岩等の危険なオブジェクトを示す意味情報を含まないセルの配置を識別することを含んでいてもよい。フットプリントを評価するステップはまた、指示された着陸パッド、舗装区域又は芝生等の安全な着陸場所を示す意味情報を含むセルの配置を識別することを含んでいてもよい。
【００６８】
いくつかの実施形態では、フットプリントを識別するステップは、複数のフットプリント候補を（例えば、並列で又は逐次的に）評価することと、複数のフットプリント候補から特定のフットプリント候補を選択することとを含んでいてもよく、ここで、複数のフットプリント候補のそれぞれは、地面マップ５１０内のセルのそれぞれ異なるサブセットを含み、少なくとも１つのセルによって（ｘ方向及び／又はｙ方向に）互いにオフセットされている。いくつかの実施形態では、選択されたフットプリントは、１つ以上の指示された着陸基準を満たす着陸システム１５０によって評価された第１のフットプリント候補であってもよい。あるいは、着陸システム１５０は、特定の数のフットプリント候補を評価し、それらの候補から最良のフットプリントを、それが１つ以上の指示された着陸基準を満たしている限りにおいて選択してもよい。例えば、高さ分散の場合、着陸システム１５０は、それら複数の候補の中から最も低い高さ分散を備えたフットプリント候補を、その高さ分散が閾値分散レベルを下回っている限りにおいて選択してもよい。
【００６９】
ステップ４０２及び４０４と同様に、ステップ４０６にてフットプリントを識別するプロセスは、ＵＡＶ１００が物理環境５０２上を飛行している際に、継続的に実行されてもよい。換言すると、ＵＡＶの飛行中に新しいセンサデータに基づいて地面マップが更新されると、着陸システム１５０は、指示された１つ以上の着陸基準に対して様々なフットプリント候補を継続的に評価及び再評価してもよい。この場合も、この文脈において「継続的」とは、所与のステップをミリ秒毎等の短い間隔で再実行することを示すことがある。
【００７０】
フットプリントが識別されると、例示的なプロセス４００は続いて、ステップ４０８にて、識別されたフットプリントに基づいて物理環境内の表面上の着陸エリアを指定し、ステップ４１０にて、ＵＡＶ１００を指定された着陸エリアに自律的に着陸させる。
【００７１】
ＵＡＶ１００を指定された着陸エリア上に着陸させることは、例えば、ＵＡＶ１００を指定された着陸エリアに自律的に着陸させるように操縦するよう構成された制御コマンドを生成することを含んでいてもよい。いくつかの実施形態では、このステップは、着陸システム１５０が、所定のパラメータ（例えば、着陸位置、降下速度等）を設定する着陸目標を生成し、生成された着陸目標をモーションプランナ１３０に入力する又はそうでなければ伝達することを含んでいてもよく、ここで、モーションプランナ１３０は、着陸目標を１つ以上の他の行動目標と併せて、計画軌道を生成するように処理し、この計画軌道は、その後に飛行コントローラ１６０によって制御コマンドを生成するように利用され得る。
【００７２】
ジオメトリ的スマート着陸
先に言及したように、所定の実施形態では、着陸システム１５０は、着陸が要求された又は必要であるとの決定に応答して、地面の最も平坦な領域を選択するように構成されてもよい。以下で説明する技術はジオメトリ的スマート着陸と称され、所与の領域において観測される全ての点についての高さ（ｚ）の分散が、その領域の平坦度に反比例するという前提に依拠している。例えば、図６は、地面６０２の上方を飛行中のＵＡＶ１００の立面図を示す。図６に示すように、エリアＡ内の地面に沿った様々な点の高さ（ｚ）の分散は、エリアＡ内の地面の傾斜のため、エリアＢ内の地面に沿った様々な点の高さ（ｚ）の分散よりも大きい。この観察に基づいて、エリアＢは、ＵＡＶ１００の着陸にはエリアＡよりも好ましいと推測され得る。以下に記載のジオメトリ的スマート着陸技術は、後に論じる意味論的スマート着陸技術の代わりに又はそれに加えて実行されてもよい。
【００７３】
ジオメトリ的スマート着陸−分散データの計算及び維持
先に論じたように、高さ統計値等の特性データは、例えば図５Ａ〜５Ｂに関して記載したように、１つ以上のセンサから受信されたセンサデータに基づいて継続的に更新される地面マップ内の複数のセルについて生成及び維持され得る。地面マップ内の様々なセルについての高さ統計値を使用して、着陸システム１５０は、ある指示された基準（例えば、閾値レベル未満）を満たす高さ分散を伴うフットプリントを識別してもよい。
【００７４】
図７Ａは、ジオメトリ的スマート着陸技術を使用したＵＡＶによる自律着陸のための例示的なプロセス７００ａのフローチャートを示す。図４の例示的なプロセス４００と同様に、例示的なプロセス７００ａの１つ以上のステップは、図２に示す例示的なナビゲーションシステム１２０のコンポーネントのうちの任意の１つ以上によって実行されてもよい。例えば、プロセス７００ａは、ナビゲーションシステム１２０の着陸システム１５０コンポーネントによって実行されてもよい。さらに、プロセス７００ａの実行は、図２１又は２２の例示的なコンピュータシステムのコンピューティングコンポーネントのいずれかを含んでいてもよい。例えば、プロセス７００ａは、メモリに格納された命令で表され、それらの命令は、後に処理ユニットによって実行される。図７Ａに関して説明されたプロセス７００ａは、例示の目的で提供された例であって、限定するものとして解釈されるべきではない。その他のプロセスは、本開示の範囲内であることを保ちつつ、示されるよりも多い又は少ないステップを含んでいてもよい。さらに、例示的なプロセスに示されるステップが、示されているものとは異なる順序で実行されてもよい。
【００７５】
例示的なプロセス７００ａはまず、例えば、例示的なプロセス４００のステップ４０２に記載されているように、ステップ７０２にて、ＵＡＶ１００に搭載されたセンサからセンサデータを受信することによって始まる。図示の例では、ＵＡＶ１００に搭載されたセンサは、ＵＡＶ１００が物理環境中を飛行している間に地面の画像をキャプチャするように構成された下向きの立体カメラを含む。この下向きの立体カメラは、例えば、前述の画像キャプチャデバイス１１４を含む立体ナビゲーションカメラのアレイの一部であってもよい。
【００７６】
ステップ７０４では、受信されたセンサデータは、物理環境内の表面（例えば、地面）に沿った複数の点における高さ値を示すデータ点を決定する（すなわち、生成する）ように処理される。この文脈において、高さ値とは、表面に沿った点とＵＡＶ１００の位置との間の相対的な垂直距離を示すことがある。高さ値はまた、該表面に沿った点の、海面等の他の基準フレームに対する垂直位置（すなわち、海抜）を示してもよい。
【００７７】
ステップ７０４ａ及び７０４ｂは、下向きの立体カメラからキャプチャされた画像に基づいてデータ点を決定するための例示的なサブプロセスを記載する。ステップ７０４にて、画像キャプチャデバイス（例えば、立体カメラ）によってキャプチャされた画像は、視差画像を生成するように処理される。本明細書で使用される場合、「視差画像」は、２つ以上の対応する画像間の視差を表す画像である。例えば、立体画像キャプチャデバイスによってキャプチャされた画像のステレオペア（例えば、左画像及び右画像）は、立体画像キャプチャデバイスに関連付けられた２つ以上のカメラの位置のわずかな違いによって、固有のオフセットを表すことになる。このオフセットにもかかわらず、１つの画像内に表示されるオブジェクトの少なくともいくつかは、他の画像にも現れる。しかしながら、そのようなオブジェクトに対応するピクセルの画像位置は、異なるものとなる。一方の画像のピクセルを他方の対応するピクセルと照合し、これらの対応するピクセル間の距離を計算することによって、距離計算に基づくピクセル値を備えた視差画像が生成され得る。換言すると、視差画像内の各ピクセルは、画像キャプチャデバイスから物理環境内の表面等のキャプチャされた物理オブジェクトまでの距離を示す値（例えば、高さ値）に関連付けられてもよい。
【００７８】
いくつかの実施形態では、サブプロセスは続いて、ステップ７０６ｂにて、生成された視差画像内のピクセルを、物理環境内の表面（例えば、地面）に沿った点に対応する空間内の３Ｄ点に、その点に関連付けられた高さ（ｚ）値を解決するようにマッピングしてもよい。好ましい実施形態は、立体カメラ等の視覚センサを使用して高さ情報をキャプチャすることに依拠しているが、他のタイプのセンサもまた同様にされてもよい。例えば、ＵＡＶ１００は、高さデータを収集するためにＵＡＶの下方の地面を継続的にスキャンするため、ＬＩＤＡＲ等の下向きの距離センサを装備していてもよい。
【００７９】
例示的なプロセス７００ａは続いて、例えば、プロセス４００のステップ４０４に関して記載したものと同様に、ステップ７０６にて、地面マップを生成する。ステップ７０６ａ及び７０６ｂは、ＵＡＶ１００が物理環境中を飛行中に、地面マップを生成して継続的に更新するために特定のセルに高さ値を追加するための例示的なサブプロセスを記載する。例えば、ステップ７０６ａでは、生成されたデータ点に基づく高さ値が、地面マップ内の対応するセルに「追加」される。いくつかの実施形態では、高さ値を追加するこのステップは、例えば、どのセルがデータ点に対応する空間内の３Ｄ点に重なるかを決定する（すなわち、ｘ及びｙ方向におけるデータのビニングを行う）ことによって、地面マップ内のどのセルに特定のデータ点が関連付けられているかを決定することを含んでいてもよい。
【００８０】
特定のセルが識別されると、特定の点の高さ値がそのセルに追加される。具体的には、いくつかの実施形態では、セルに高さデータを追加するこのプロセスは、ステップ７０６ｂにて、セルの高さ統計値を更新することを含んでいてもよく、該セルの高さ統計値は、例えば、収集されたデータ点の数、平均高さ値、中央高さ値、最小高さ値、最大高さ値、高さ値の差の２乗の合計、又は、特定のセルのデータ点の集計に基づく任意の他のタイプの統計値である。
【００８１】
着陸システム１５０は、収集された複数のデータ点のそれぞれについてのエントリの代わりに、維持された統計値に関する情報を格納することのみが要求されるため、この高さ統計値の更新を通じてのデータ点の集計は、全体的なメモリ使用量を削減し得る。いくつかの実施形態では、同様の高さ統計値は、フットプリントのそれぞれに含まれるセルについての高さ統計値に基づいて、複数のフットプリント候補のそれぞれについて継続的に更新されてもよい。あるいは、フットプリント候補のそれぞれについての高さ統計値は、フットプリント毎に含まれる個々の点に基づいて計算してもよいが、このことは計算コストが高くなる可能性がある。いずれの場合にも、所与のフットプリントにおける高さ値の分散は、いつでも、高さ値の差の２乗の合計をそのエリアのポイント数で割った値として計算され得る。
【００８２】
前述のように、ＵＡＶ１００の飛行中にセンサデータが受信されると、地面マップはセンサデータに基づいて継続的に更新されてもよい。換言すれば、少なくともステップ７０２，７０４及び７０６（関連するサブステップを含む）は、地面マップを生成して継続的に更新するように、継続的に実行されてもよい。この場合も、この文脈において「継続的」とは、所与のステップをミリ秒毎等の短い間隔で再実行することを示すことがある。
【００８３】
例示的なプロセス７００ａは続いて、例えば、例示的なプロセス４００のステップ４０６と同様に、ステップ７０８にて、１つ以上の指示された基準を満たすフットプリントを識別する。いくつかの実施形態では、フットプリント候補に関連付けられた高さ統計値が閾値分散レベルを下回る分散を有する場合、着陸基準が満たされる。この場合も、分散は、所与のフットプリント候補に含まれる１つ以上のセルについての高さ統計値に基づいて計算されてもよい。いくつかの実施形態では、特定のフットプリント候補に関連付けられた高さ統計値が他のフットプリント候補と比較して最も低い分散を有する場合、かつ、高さ統計値が閾値分散レベルを下回っている場合、着陸基準が満たされる。
【００８４】
フットプリントが識別されると、例示的なプロセス７００ａは続いて、例えば、プロセス４００のステップ４０８及び４１０と同様に、ステップ７１０にて、識別されたフットプリントに基づいて物理環境内の表面上の着陸エリアを指定し、ステップ７１２にて、ＵＡＶ１００を指定された着陸エリアに自律的に着陸させる。
【００８５】
ジオメトリ的スマート着陸−ステレオにおける不確実性の考慮
ステレオ視が適用される場合には、ジオメトリ的スマート着陸技術は、推定／測定された高さ値の不確実性を考慮するように構成され得る。ステレオ視では、視差が大きくなると、その点の範囲（カメラからの距離）の不確実性も大きくなる。予想される点の分散は、その点の範囲の４乗でスケーリングされる。これを考慮するために、着陸システム１５０は、所定の高さ値を適切な補正係数によって調整してもよい。例えば、いくつかの実施形態では、着陸システム１５０は、この所与の点の高さの差の２乗の合計の増分を、その点の範囲の４乗で除算してもよい。
【００８６】
ジオメトリ的スマート着陸−古い点のダウンウェイト
地面マップが動くオブジェクトに対してより応答できるようにするため、着陸システム１５０は、セルのそれぞれについての統計値に寄与するデータ点の数を制限するか、そうでなければ、より最近収集されたデータ点を重視するように構成されてもよい。例えば、特定の点で測定された高さに基づくデータ点が、既に最大数の点を有するセルに追加された場合、システムは、高さ値の差の２乗の合計の平均を計算した後、計算された平均値を、該セルについての統計値を更新する前の高さ値の差の２乗の合計から差し引くように構成されてもよい。この方法では、セルについて収集された点の数は増加しない。古いデータのダウンウェイトはまた、データ点の数を固定することによって、平均高さに基づいて行われ得る。例えば、一般的な平均高さの増分は、以下に基づいて計算され得る：mean[n+1] = (x−mean[n])/(n+1)（ここで、"n"は点の数及び更新の数の両方を表す）。これは、続いてmean[n+1] = (x−mean[n])/min(n+1, n_max)となり、ここでは所与のセルについて最大の点の数"n_max"が設定される。これは、古いデータをダウンウェイトすることと同様の効果を有する。
【００８７】
図７Ｂは、新しい点に基づいて所与のセルについての統計値を更新する際にセル内の古い点をダウンウェイトするための例示的なプロセス７００ｂのフローチャートを示す。ステップ７２０にて、高さ値を備えた（すなわち、プロセス７００ａのステップ７０４で生成された）所与のデータ点に対応する、地面マップ内のセルが識別される。前述のように、着陸システム１５０は、地面マップ内のセルのそれぞれについての統計値を保持する。これらの統計値の１つには、そのセルに追加されたデータ点の総数が含まれていてもよい。データ点の総数がまだ指示された最大閾値に達していない場合、プロセスはステップ７２４へと進み、データ点を該セルに追加して、そのセルについての高さ統計値を更新する。データ点の最大数が既にそのセルに追加されていた場合、プロセス７００ｂは代わりにステップ７２２へと進み、例えば前のパラグラフに記載したように、他の高さ値データをダウンウェイトしてから、ステップ７２４にて、セルの高さ統計値を更新する。
【００８８】
各セルのデータ点の最大数は、静的であってもよく、ＵＡＶ１００の動作要件、任意の所与の瞬間に利用可能なコンピューティングリソース、環境条件等の様々な要因に基づいて経時的に動的に変化してもよい。セルのそれぞれについての最大の点の数は、地面マップ全体で均一であってもよく、セル間で異なっていてもよい。いくつかの実施形態では、点の最大数は、ユーザに指示されるものであってもよい。
【００８９】
ジオメトリ的スマート着陸−着陸スポットの選択
ＵＡＶ１００が（ユーザコマンドに応答して、又は、低バッテリ等のイベントに応答して）着陸する必要があることを想定すると、着陸システム１５０は、着陸のための物理的な地面上のエリアを選択するために、地面マップ内のフットプリントのそれぞれについて計算された分散を、ある指示された基準を満たす（すなわち、プロセス７００ａのステップ７０８及び７１０に関して記載したような）フットプリントを識別するために利用することができる。この基準は、着陸用の地面マップ内において分散が最も低いフットプリントの選択を指示してもよい。あるいは又はこれに加えて、該基準は、いくつかの最大許容分散を指示することがある。いくつかの実施形態では、含まれるデータが少なすぎるフットプリントの高さ統計値は信頼できない可能性があるため、計算された高さの分散に関わらず、そのようなフットプリントのセルが回避されてもよい。そのような基準は、ユーザに指示されるものであってもよく、固定されていてもよく、所定の条件に応答して動的に変更されてもよい。例えば、ＵＡＶ１００のバッテリが低く、即時の着陸が必要な場合には、着陸システム１５０は、すぐ近くで高さ値の分散が最も低いフットプリントを単に選択してもよい。逆に、着陸がユーザコマンドの要求にあり、電力喪失の即時の危険がない場合には、着陸システム１５０は、フットプリントをより選択的にしても支障がないかもしれない。そのような状況では、ＵＡＶ１００は、高さの分散が最大限許容可能な分散よりも低くなるフットプリントが識別されるまで飛行を続けてもよい。
【００９０】
いくつかの実施形態では、ＵＡＶ１００は、着陸のためのフットプリントを選択する前に、ＵＡＶ１００自体をより効果的に配置するように構成され得る。例えば、一実施形態では、着陸する必要があるとの決定に応答して、着陸システム１５０は、着陸前の状況をよりよく評価するために、ＵＡＶ１００を地面からの指示された高さまで自律的に操縦させることができる。例えば、観測された最も低い点から少なくとも約２メートルかつ観測された最も高い点から最大で約４メートルの高さであれば、重要な地面のエリアを見ることができること、高すぎる上昇でのバッテリの浪費がないこと、比較的小さな障害物を検出可能な程度に十分に近いこととのバランスが効果的に取られることが判明している。
【００９１】
試験中に観察された１つの重要なエッジケースは、２つの同じように平坦なエリアの地面の高さが異なる場合である。例えば、ＵＡＶ１００が崖の近くを飛行している場合、崖の上及び下の両方が平坦である（すなわち、同じような高さの分散が見られる）可能性がある。しかしながら、少なくとも着陸後にユーザがＵＡＶ１００にアクセスするという観点から、一方の着陸エリアが他方の着陸エリアよりも好ましい場合が依然としてあり得る。これを考慮するため、着陸システム１５０は、あるオブジェクト（例えば、着陸用のフットプリントを選択した際のユーザ）の最後に知られた位置（例えば、高度）に最も近いフットプリントを選好するヒューリスティックにより構成されてもよい。例えば、上述の崖に関する状況では、着陸システム１５０は、追跡されたユーザの最後に知られた位置が、識別された崖の上のフットプリントと一致する高度にあると（例えば、追跡システム１４０からの情報に基づいて）決定し得る。したがって、着陸システム１５０は、着陸後のＵＡＶ１００を回収するためにユーザが崖を降りることを回避するために、ＵＡＶ１００を崖の下ではなく崖の上のフットプリントに着陸させてもよい。
【００９２】
他のヒューリスティックは、手動で追加されても、ユースケースに基づいて学習されてもよく、ＵＡＶ１００が最も直感的かつ便利な（すなわち、好ましい）位置に着陸するように構成されることを確保してもよい。例えば、ＵＡＶ１００は、屋根の検査を行う際に、ＵＡＶ１００の元の離陸高さで着陸することを選好するように構成され得る。別の例として、ＵＡＶ１００は、（近くの茂み又は木に着陸するのではなく）追跡された対象の経路上に着陸することを選好するように構成され得る。別の例として、ＵＡＶ１００は、不意の接触を回避するために、人や機械がほとんど横断しない地面のエリア内に着陸することを選好するように構成され得る。逆に、ＵＡＶ１００はまた、ユーザに対して遠すぎる又はアクセス不可能なエリアへの着陸を回避するために、より交通量の多いエリア内に着陸することを選好するようにも構成され得る。別の例として、ＵＡＶ１００は、農業／農作業の設定で動作している際に、（農場の真ん中に着陸するのではなく）建物又は他の構造物の近くに着陸することを選好するように構成され得る。これらは、適切な着陸エリアを選択する際に着陸システム１５０を案内するために実装可能なヒューリスティックのほんの数例である。他のヒューリスティックは、ＵＡＶ１００の具体的な使用要件に基づいて、同様に実装され得る。
【００９３】
意味論的スマート着陸
ジオメトリ的スマート着陸は、いくつかの状況で効果的であり得るが、その所定の現実世界の状況を見分ける能力には限界がある。例えば、ジオメトリ的スマート着陸技術を使用すると、着陸システム１５０は、水域の表面、木の平らな上面又は道路を、高さの分散が十分に低いため着陸に効果的であると識別することがある。そのような表面は、様々な理由で望ましい着陸エリアを表さない場合がある。さらに、いくつかの比較的小さな障害物（例えば、小さな茂み、細い木の枝、小さな岩等）は、所与のセルにおける高さ値の分散に対して、着陸システムがそのセルを含むフットプリントを選択することを防止するような影響を与えないことがある。全体として、これにより望ましくない着陸エリアが選択され得る。
【００９４】
このような状況を回避するために、いくつかの実施形態では、着陸プロセスを支援するために、周囲環境内のオブジェクトに関連付けられた意味情報が（例えば、周囲の物理環境のキャプチャ画像の分析に基づいて）抽出されて前述の地面マップに組み込まれ得る。例えば、図８Ａは、図５Ａ〜５Ｂに示されるものと同様の、物理環境上を飛行中のＵＡＶ１００を示す。図８Ａに示すように、環境５００は、人８０２、湖８０４、岩８０６及び木８０８等の様々なオブジェクトで占められている。いくつかの実施形態では、これらのオブジェクトの意味知識は、例えば画像キャプチャデバイス１１４／１１５によってキャプチャされた画像を処理することによって抽出され、地面マップ５１０の対応するセルに対し、例えば、ラベル若しくはタグとして、又は、該セルに関連付けられているコスト要因を更新することによって、追加され得る。例えば、湖８０４と重なる１つ以上のセルは、「水」とラベル付けされてもよい。いくつかの実施形態では、着陸システム１５０は、水ラベルを含むセル（又は、少なくとも所定の数のセル）を含む任意のフットプリントにて着陸することを回避するように構成されてもよい。同様に、セルは、歩行可能又は横断可能な地面等のより具体的な情報でラベル付けされ得る。以下に記載の意味論的スマート着陸テクニックは、前述のジオメトリ的スマート着陸テクニックの代わりに実行されてもよく、それに加えて実行されてもよい。例えば、高さ値及び／又は意味情報に関連付けられた特性データは、同じ地面マップに追加されてもよく、別個の重なり合う地面マップに追加されてもよい。いずれの場合にも、着陸システムは、ジオメトリ的及び意味論的スマート着陸技術の所定のステップを並列に実行し、それによってフットプリント候補を評価すると共に、高さ統計値と意味情報の両方に基づいて、指示された着陸基準を満たすフットプリントを識別してもよい。
【００９５】
図９は、オブジェクトに関する意味情報を抽出して該意味情報を地面マップに入力し、それによってＵＡＶ１００の着陸を案内するための例示的なプロセスのフローチャートを示す。この例示的なプロセス９００の１つ以上のステップは、図２に示す例示的なナビゲーションシステム１２０のコンポーネントのうちの任意の１つ以上によって実行されてもよい。例えば、プロセス９００は、ナビゲーションシステム１２０の着陸システム１５０コンポーネントによって実行されてもよい。さらに、プロセス９００の実行は、図２１又は２２の例示的なコンピュータシステムのコンピューティングコンポーネントのいずれかを含んでいてもよい。例えば、プロセス９００は、メモリ内に格納された命令において表され、それらの命令は、後に処理ユニットによって実行される。図９に関して説明されたプロセス９００は、例示の目的で提供される例であって、限定するものとして解釈されるべきではない。その他のプロセスは、本開示の範囲内であることを保ちつつ、示されるよりも多い又は少ないステップを含んでいてもよい。さらに、例示的なプロセスに示されるステップが、示されているものとは異なる順序で実行されてもよい。
【００９６】
例示的なプロセス９００はまず、例えば、例示的なプロセス４００のステップ４０２に記載されているように、ステップ９０２にて、ＵＡＶ１００に搭載されたセンサからセンサデータを受信することによって始まる。図示の例では、ＵＡＶ１００に搭載されたセンサは、ＵＡＶ１００が物理環境中を飛行している間に地面の画像をキャプチャするように構成された下向きの立体カメラを含む。この下向きの立体カメラは、例えば、前述の画像キャプチャデバイス１１４を含む立体ナビゲーションカメラのアレイの一部であってもよい。
【００９７】
ステップ９０４では、受信されたセンサデータは、物理環境内の１つ以上の物理オブジェクトを検出して、検出された１つ以上の物理オブジェクトに関連付けられた意味情報を抽出するように処理される。図示の例では、着陸システム１５０は、画像内のピクセルの分析に基づいて、画像内のキャプチャされた所定のオブジェクトに関する意味情報を抽出してもよい。キャプチャされたオブジェクトに関する意味情報には、オブジェクトのカテゴリ（すなわち、クラス）、場所、形状、サイズ、スケール、ピクセルセグメンテーション、向き、クラス間の外観、活動、ポーズ等の情報が含まれ得る。例えば、オブジェクトを検出し、検出されたオブジェクトに関連する意味情報を抽出するための技術は、「オブジェクト検出」というタイトルのセクションの下、図１５〜２０を参照して、後でより詳細に記載する。物理環境でオブジェクトを検出するプロセスは、対象の追跡を容易にするために別個の追跡システム１４０によって実行されるものとして、後のセクションにて記載する。しかしながら、そのようなプロセスは、同様に、着陸システム１５０によって、スマート着陸プロセスの一部として実行されてもよい。いくつかの実施形態では、着陸システム１５０は、追跡システム１４０によって検出されたオブジェクトに関する意味情報を受信するように、追跡システム１４０と通信してもよい。あるいは又はこれに加えて、着陸システム１５０は、追跡システム１４０とは独立かつ並列に、所定のプロセスを実行してもよい。
【００９８】
ステップ９０６にて、地面マップは、物理環境内において検出された物理オブジェクトに関する抽出された意味情報に基づいて更新される。前述のように、意味情報は、ラベル、タグ又は検出されたオブジェクトを示す任意の他のデータを含んでいてもよい。例えば、図８の岩８０６に関連する意味情報は、「岩」ラベルを含んでいてもよい。「岩」ラベルは、タイプ、形状、サイズ、向き、インスタンス識別子等の岩に関する追加情報を含んでいてもよい。人８０２等の移動体オブジェクトの場合、関連付けられたラベルは、現在の活動に関する情報（例えば、「走っている」、「歩いている」、「止まっている」）を含んでいてもよい。したがって、そのような実施形態では、ステップ９０６は、ラベルの形態のデータ点を、検出されたオブジェクトの場所に対応する地面マップの特定のセルに追加することを含んでいてもよい。例えば、図８Ｂは、岩８０６の場所に対応するセルに追加された意味ラベル「岩」を示す要素８２６等、セルに追加された意味ラベルを示す様々な要素を有する物理環境５００の別の図を示す。
【００９９】
いくつかの実施形態では、地面マップは、検出されたオブジェクトに関連付けられたコスト値を計算し、そのコスト値を検出されたオブジェクトの場所に対応するセルに追加することによって、意味情報に基づいて更新され得る。この文脈において「コスト値」とは、例えば、人又は財産への損傷、オブジェクトとの衝突、失敗した着陸等のリスクのレベルを示すことがある。木８０８及び／又は湖８０４等の所定のオブジェクトは、岩８０６などの他のオブジェクトよりも大きなリスクをもたらすため、より高いコスト値に関連付けられてもよい。いくつかの実施形態では、所与のセル内の複数の検出されたオブジェクトのコスト値が集計されて、例えば前述の高さ値と同様に、平均コスト値、中央コスト値、最小コスト値、最大コスト値などのコスト統計値を生成してもよい。そのようなコスト値は、意味ラベルに加えて又はそれに代えて、セルに追加され得る。
【０１００】
図９に戻ると、例示的なプロセス９００は続いて、例えば、例示的なプロセス４００のステップ４０６と同様に、ステップ９０８にて、１つ以上の指示された基準を満たすフットプリントを識別する。いくつかの実施形態では、フットプリント候補の１つ以上のセルが、木、水域、岩等の既知の危険物を示す意味ラベルを含まない場合、着陸基準が満たされる。図８Ｂは、指示された着陸基準を満たし得るフットプリント５１４を示し、このフットプリント５１４は、該フットプリント内におけるセルの配置が木、岩、人、水域等の所定の既知の危険物についての意味ラベルを含まないため、指示された着陸基準を満たし得る。
【０１０１】
いくつかの実施形態では、検出されたオブジェクトの所定の特性は、着陸基準に対するフットプリント候補の評価に影響を与えてもよい。例えば、フットプリントが所定の検出されたオブジェクトに関連付けられたセルを含んでいても、その検出されたオブジェクトが（例えば、サイズ、タイプ、運動などに基づく）所定のパラメータ閾値を満たす限り、該フットプリント候補は着陸基準を満たし得る。図示の例として、フットプリントが「岩」ラベルの付いたセルを含んでいても、検出された岩が閾値サイズを下回っている限り、該フットプリント候補は指示された着陸基準を満たし得る。この場合も、サイズ等の所定のパラメータがラベル内に示されていてもよい。
【０１０２】
いくつかの実施形態では、フットプリントについて計算されたコスト統計値が閾値コストレベルを下回る場合、及び／又は、他のフットプリント候補よりも低い場合、着陸基準は満たされる。この場合も、コスト統計値は、フットプリント内のセルに対応する場所にある検出されたオブジェクトに基づいて計算されてもよい。例えば、図８Ｂに示す意味ラベルのそれぞれは、対応するオブジェクトが位置するエリア内に着陸する相対的リスクに基づく、対応するコスト値に関連付けられてもよい。コスト値は、０〜１のスケールの数値であり、０はリスク無しを、１は最大のリスクを示す。図示の例として、「湖」についての意味ラベルは、水の中に着陸する場合はＵＡＶ１００への損傷のリスクが高くなるため、コスト値０．７に関連付けられてもよい。逆に、意味ラベル「岩」は、岩の近くに着陸する場合はＵＡＶ１００への損傷のリスクが比較的低くなるため、コスト値０．３（岩が比較的小さいと想定）に関連付けられてもよい。
【０１０３】
コスト統計値に基づいてフットプリント候補を評価するために利用される１つ以上の着陸基準は、静的のままであるか、又は例えば、ユーザ入力、変化する環境条件、ＵＡＶ１００の運転状態などに基づいて動的に変化することができる。例えば、ＵＡＶ１００が墜落する代わりに危険なオブジェクトがある可能性のあるエリア内に着陸できるように、バッテリがゼロ充電に近づくにつれて、閾値コストレベルが徐々に増加するか、オブジェクトコスト値が減少する。しかしながら、人との衝突を回避する等の所定の最重要な行動目標は、安全な着陸の実行よりも優先されることがある。
【０１０４】
フットプリントが識別されると、例示的なプロセス９００は続いて、例えば、プロセス４００のステップ４０８及び４１０と同様に、ステップ９１０にて、識別されたフットプリントに基づいて物理環境内の表面上の着陸エリアを指定し、ステップ９１２にて、ＵＡＶ１００を指定された着陸エリアに自律的に着陸させる。
【０１０５】
学習されたスマート着陸
いくつかの実施形態では、ＵＡＶ１００が着陸するための場所を選択するために、例えば、モバイルデバイス１０４に提示されるインタフェースを介して、ユーザにオプションが提供されてもよい。一実施形態では、ユーザは、ＵＡＶ１００によってキャプチャされてモバイルデバイス１０４のタッチスクリーンディスプレイを介して表示される物理環境のビューと対話してもよい。ユーザは、表示されたビューの、ＵＡＶが着陸する物理的な地面の場所に対応する部分に触れることによって、着陸する場所を選択することができる。ユーザによるこのタイプの選択、及び、着陸に関する他のタイプの命令又は案内（ユーザによって完全にリモート制御された着陸の監視を含む）は、着陸システム１５０によって、内部着陸選択及び運動計画プロセスを訓練する目的で監視され得る。ユーザには、そのような情報収集をオプトインするオプションが提供されてもよい。ユーザがオプトインする場合、情報は以下のいずれかで収集でされ得る：着陸のためにユーザによって選択されたビュー内のピクセル、ジンバルが地面を見るように下に向けられた対象カメラ１１５の画像、下に向けられたナビゲーションカメラ１１４又は任意の他のナビゲーションカメラ１１４、ＵＡＶ１００の位置、最新の追跡対象の位置、モバイルデバイス１０４の場所等。
【０１０６】
この収集された情報は、ユーザがＵＡＶを着陸することを選好する場所を学習し、それによって自律スマート着陸を特徴付けるように使用され得る。いくつかの実施形態では、スマート着陸アルゴリズムのコアアルゴリズムを訓練及び更新するために、複数のユーザＵＡＶからデータが収集される。次に、着陸アルゴリズムの更新は、例えばネットワークを介して、様々なＵＡＶにソフトウェア更新として送信されてもよい。あるいは、データ収集及び訓練は、特定のＵＡＶ１００に対してローカルであってもよい。所与のＵＡＶ１００内の着陸システム１５０は、着陸を監視して、この情報を中央データ収集設備と共有することなく特定のユーザの嗜好を識別してもよい。次に、ＵＡＶ１００の着陸システム１５０は、内部着陸アルゴリズムを訓練するために、収集された情報を使用することができる。
【０１０７】
エッジケースの取り扱い
自律スマート着陸（及びナビゲーション一般）は、特別な取り扱いを要求する様々なエッジケースを提示することがある。特別な取り扱いには、例えば、ユーザに対して発せられる警告及び／又は潜在的な危険を緩和するための具体的なアクションが含まれる。
【０１０８】
エッジケースの取り扱い−警告
所定の状態の検出に応答して生成された警告は、接続されたモバイルデバイス１０４を介して、ユーザに対して表示され得るか、そうでなければユーザに対して（例えば、可聴アラームを通じて）提示され得る。
【０１０９】
例示的なエッジケースでは、ＵＡＶ１００は、離陸の計画軌道を障害物マップ（例えば、ボクセルベースの占有マップ）に対してチェックすることによって、離陸の計画経路までの妨害を（例えば、地面又はユーザの手から）検出してもよい。離陸が妨害される可能性を検出したことに応答して、システムは、モバイルデバイス１０４を介して、妨害に関する警告がユーザに対して提示されるようにしてもよい。システムはさらに、検出された妨害が存在しなくなるまで離陸を制限するように構成されてもよい。
【０１１０】
別の例示的なエッジケースは、ＵＡＶ１００が狭いエリアを通って追跡対象を追いかけることに関与する。ある点にて、ＵＡＶ１００は、エリア内の限られた隙間が、追跡対象を追いかけるというＵＡＶ１００の目標の達成を妨げることになると決定することがある。この状況では、システムは、モバイルデバイス１０４を介して、潜在的な取得対象の損失に関する警告がユーザに対して提示されるようにしてもよい。この警告は、別の経路を移動するための命令、及び／又は、ＵＡＶを手動で制御するオプションを含んでいてもよい。
【０１１１】
別の例示的なエッジケースは、ＵＡＶ１００が低照明条件で動作していることに関与する。前述のように、ＵＡＶ１００は、所定の実施形態では、１つ以上の画像キャプチャデバイスによってキャプチャされた画像に依存して、自律飛行を誘導することがある。照明条件が所定の閾値レベルを下回る場合、システムは、モバイルデバイス１０４を介して、照明条件が不十分であることに関する警告がユーザに対して提示されるようにしてもよい。
【０１１２】
エッジケースの取り扱い−アクションの緩和
前述のように、ＵＡＶ１００は、Ｗｉ−Ｆｉ等の無線通信リンクを介して、ユーザのモバイルデバイス１０４と通信してもよい。距離が離れるにつれ、無線信号が弱まり、時に接続が失われる。いくつかの実施形態では、ナビゲーションシステム１２０は、無線通信信号が弱いこと又は無線通信リンクが完全に失われたことの検出に応答して、ＵＡＶ１００に、モバイルデバイス１０４の最後に知られた位置（例えば、ＧＰＳ位置）へと自動的かつ自律的に戻らせるように構成される。モバイルデバイス１０４の最後に知られた位置に戻る（又は、少なくともその方向に向かって移動する）ことによって、ＵＡＶ１００は、モバイルデバイス１０４との無線通信リンクをより容易に再確立することができる。あるいは又はこれに加えて、システムは、信号が失われた場合にＵＡＶが戻るための事前定義される位置を、ユーザが設定できるようにしてもよい。この場所は、軌道に沿った経由地点、仮想マップ上のピン、ＵＡＶの離陸位置、ユーザの家等である。残りのバッテリ寿命に関する情報もまた、ＵＡＶの応答を通知するのに役立ち得る。例えば、ＵＡＶは、残りのバッテリ寿命に基づいて、複数の所定の戻り位置（例えば、上記列挙のもの）の１つから選択し、その意図された戻り位置の指定を（例えば、モバイルデバイス１０４を介して）ユーザに送信してもよい。上記の特徴はまた、何らかの理由でＵＡＶ１００が対象の視覚的追跡を失った場合にも使用され得る。
【０１１３】
いくつかの状況では、ナビゲーションシステム１２０は、追跡対象を追い続けることがもはや安全ではないと決定することがある。特に、ＵＡＶ１００の１つ以上のコンポーネントの動作が損なわれる状況が発生することがある。例えば、画像キャプチャデバイス１１４のいずれかが画像のキャプチャを停止した場合、ナビゲーションシステム１２０は、障害物回避のための知覚入力をもはや信頼することができない。別の例として、処理コンポーネント（例えば、ＣＰＵ）が熱くなりすぎると、処理コンポーネントによるスロットルが発生し、処理パフォーマンスが低下する可能性がある。これは、ソフトウェアスタックの実行に大きな影響を及ぼし、自律ナビゲーションのエラー、特に、衝突につながる可能性がある。このような状況では、ナビゲーションシステム１２０は、衝突による任意の損傷を回避するために、追跡対象を追いかけることをＵＡＶ１００に停止させ、ＵＡＶ１００を自律的に着陸させてもよい。
【０１１４】
図１１は、ＵＡＶ１００の運転状態に基づいてＵＡＶ１００を着陸させるための例示的なプロセス１０００のフローチャートを示す。この例示的なプロセス１０００の１つ以上のステップは、図２に示す例示的なナビゲーションシステム１２０のコンポーネントのうちの任意の１つ以上によって実行されてもよい。例えば、プロセス１０００は、ナビゲーションシステム１２０の追跡システム１４０及び着陸システム１５０コンポーネントによって実行されてもよい。さらに、プロセス１０００の実行は、図２１又は２２の例示的なコンピュータシステムのコンピューティングコンポーネントのいずれかを含んでいてもよい。例えば、プロセス１０００は、メモリ内に格納された命令において表され、それらの命令は、後に処理ユニットによって実行される。図１０に関して説明されたプロセス１０００は、例示の目的で提供される例であって、限定するものとして解釈されるべきではない。その他のプロセスは、本開示の範囲内であることを保ちつつ、示されるよりも多い又は少ないステップを含んでいてもよい。さらに、例示的なプロセスに示されるステップが、示されているものとは異なる順序で実行されてもよい。
【０１１５】
例示的なプロセス１０００はまず、ステップ１００２にて、物理環境内の物理オブジェクトを検出及び追跡することによって開始し、ステップ１００４にて、追跡されるオブジェクトをＵＡＶ１００に自律的に追いかけさせる。ステップ１００２及び１００４は、追跡システム１４０によって、例えば１つ以上の画像キャプチャデバイス１１４／１１５からキャプチャされた画像に基づいて実行されてもよい。追跡システム１４０は、追跡目標を生成することによってＵＡＶ１００に追跡対象を自律的に追いかけさせてもよく、該追跡目標は、モーションプランナ１３０に入力されるか、そうでなければ他の方法でモーションプランナ１３０に伝達され、その後、モーションプランナ１３０は、該追跡目標を１つ以上の他の行動目標と併せて、ＵＡＶ１００のための計画軌道を生成するように処理する。
【０１１６】
ステップ１００６では、ＵＡＶの運転状態が監視される。いくつかの実施形態では、ＵＡＶ１００が飛行していて追跡されるオブジェクトを自律的に追いかけている間に、運転状態が継続的に監視される。いくつかの実施形態では、着陸システム１５０は、ＵＡＶ１００の運転状態を監視するためにステップ１００６を実行するが、このステップは、任意の他の搭載システムによって実行されてもよい。運転状態の監視は、例えば、ステータス更新について様々な搭載システムに能動的に問い合わせること、ステータス更新を伴う様々な搭載システムから通知を受動的に受信すること、又は、それらの任意の組み合わせを含んでいてもよい。
【０１１７】
ステップ１００６で運転状態を監視することの一部として、着陸システム１５０は、運転状態が１つ以上の運転基準を満たすかどうかを決定してもよい。ＵＡＶ１００の運転状態が１つ以上の運転基準を満たさない場合、着陸システム１５０は、ステップ１００８にて、ＵＡＶ１００に追跡されるオブジェクトを追いかけることを停止させ、例えば提示の技術に従って、自動スマート着陸を実行させる。
【０１１８】
運転状態が運転基準を満たさない状況の例は、ＵＡＶ１００に搭載された電源（例えば、バッテリ）が閾値電力レベルを下回っているとき、ＵＡＶ１００に搭載された（例えば、キャプチャされたビデオを格納するための）記憶装置が利用可能なストレージレベルの閾値を下回っているとき、ＵＡＶ１００に搭載されたシステムのいずれかが正常に働いていない又は過熱しているとき、モバイルデバイス１０４との無線通信リンクが失われたかその品質が悪いとき、又は、追跡対象との視覚的接触が失われた（追跡対象を見失った）ときが含まれる。他の運転基準も同様に、スマート着陸プロセスをいつ開始するかについての決定を導くために実装され得る。
【０１１９】
いくつかの実施形態では、ＵＡＶ１００に追跡対象を追いかけることを停止させることは、以前に生成された追跡目標をキャンセルするか、そうでなければ他の方法で該追跡目標を修正するために、着陸システム１５０が追跡システムと通信することを含んでいてもよい。あるいは又はこれに加えて、着陸システム１５０は、以前に入力された追跡目標をキャンセルするか、そうでなければ他の方法で該追跡目標を修正するように、モーションプランナ１３０に命令を伝達してもよい。いずれの場合にも、着陸システム１５０は、前述のように、着陸目標を生成して該着陸目標をモーションプランナ１３０に伝達することによって、ＵＡＶ１００にスマート着陸プロセスを実行させることができる。
【０１２０】
いくつかのレアケースでは、ＵＡＶ１００は、時間なしで着陸する必要があってもよく、前述の技術のいずれかを使用してスマート着陸を実行する能力が必要であってもよい。例えば、ナビゲーションシステム１２０による状態推定が失敗した場合、システムは、ホバリングを維持するために必要な程度までＵＡＶ１００の位置を制御できないことがある。このような状況での最善のアクションは、ＵＡＶ１００が安全に地面上に着陸するまでＵＡＶが着陸したかどうかを確認しながら、制御された降下をすぐに開始することであってもよい。
【０１２１】
図１１Ａ〜１１Ｂは、スマート着陸が不可能であるとの決定に応答して、制御された降下を開始するための例示的なプロセス１１００ａ〜ｂのフローチャートを示す。この例示的なプロセス１１００ａ〜ｂの１つ以上のステップは、図２に示す例示的なナビゲーションシステム１２０のコンポーネントのうちの任意の１つ以上によって実行されてもよい。例えば、プロセス１１００は、ナビゲーションシステム１２０の着陸システム１５０コンポーネントによって実行されてもよい。さらに、プロセス１１００の実行は、図２１又は２２の例示的なコンピュータシステムのコンピューティングコンポーネントのいずれかを含んでいてもよい。例えば、プロセス１１００は、メモリ内に格納された命令において表され、それらの命令は、後に処理ユニットによって実行される。図１１Ａ〜１１Ｂに関して説明されたプロセス１１００は、例示の目的で提供される例であって、限定するものとして解釈されるべきではない。その他のプロセスは、本開示の範囲内であることを保ちつつ、示されるよりも多い又は少ないステップを含んでいてもよい。さらに、例示的なプロセスに示されるステップが、示されているものとは異なる順序で実行されてもよい。
【０１２２】
例示的なプロセス１１００ａはまず、例えば、図４に関して記載された例示的なプロセス４００に従って、ステップ１１０２にて、スマート着陸プロセスを開始する。スマート着陸プロセスの間、着陸システム１５０は、ＵＡＶ１００の運転状態を継続的に監視して、スマート着陸が可能かどうかを判断する。スマート着陸が可能であると着陸システム１５０が決定した場合、ステップ１１０４にて、ＵＡＶ１００が安全に着陸するまでスマート着陸プロセスが継続することとなる。
【０１２３】
一方、スマート着陸プロセス中に、スマート着陸プロセスがもはや不可能であるとシステムが決定した場合、着陸システム１５０は、ステップ１１０６において、ＵＡＶ１００が地面と接触するまで、制御された降下をＵＡＶ１００に実行させることになる。制御された降下をＵＡＶ１００に実行させることは、制御された降下目標を生成して、該目標をモーションプランナ１３０へと伝達することを含んでいてもよい。あるいは、モーションプランナ１３０による軌道生成が作動しないか、そうでなければ妥協する場合、着陸システムは、飛行コントローラ１６０に対して、ＵＡＶ１００を制御された方法で降下させるように構成された制御コマンドを飛行コントローラに生成させる命令を送信し得る。このことは、ＵＡＶ１００が降下する際においてＵＡＶ１００を実質的に水平に保つように、ＵＡＶ１００の１つ以上のロータのそれぞれへの電力出力を、バランスを取りつつ徐々に減少させることを含み得る。利用可能な場合には、たとえＵＡＶ１００の実際の位置及び／又は向きが不明な場合であっても、（例えば、搭載されたジャイロスコープ及び／又は加速度計からの）所定のセンサデータが、飛行コントローラ１６０によって、制御された降下中における任意の回転及び／又は横加速度を無効にするようにロータへの電力を調整するために利用されてもよい。
【０１２４】
いくつかの実施形態では、着陸システム１５０は、初期着陸エリアでのスマート着陸が可能でない場合、代替着陸エリアを見つけることを試みてもよい。例えば、図１１Ｂに示すプロセス１１００ｂはまず、例えば、プロセス１１００ａのステップ１１０２と同様に、初期着陸エリア上に着陸するスマート着陸プロセスを開始することによって始まる。また、プロセス１１００ａと同様に、例示的なプロセス１１００ｂは、初期着陸エリアでのスマート着陸が可能であると着陸システム１５０が決定した場合、スマート着陸プロセスを継続するためにステップ１１２４へと進むこととなる。
【０１２５】
しかしながら、初期着陸エリアでのスマート着陸が不可能であると着陸システムが決定した場合、プロセス１１００ｂはステップ１１２６へと進み、着陸システム１５０は、制御された降下をＵＡＶ１００に開始させる。制御された降下中では、着陸システムは、代替着陸エリアを識別することを試みることとなる。この代替着陸エリアの識別は、例えば、ステップ１１２８にて代替フットプリントを識別し、ステップ１１３０にて代替フットプリントに基づいて代替着陸エリアを指定し、ステップ１１３２にてＵＡＶ１００を代替着陸エリアに自律的に着陸させることによって行われる。代替着陸エリアを探索するこのプロセスは、制御された降下中に、ＵＡＶ１００が着陸するまで継続的に実行されてもよい。
【０１２６】
図１１Ａ又は図１１Ｂには図示されないが、いくつかの実施形態では、着陸システム１５０は、地面からの特定の高さまでの制御された降下を、そのような操縦がＵＡＶ１００の現在の運転状態を考慮して可能である場合に、ＵＡＶ１００に行わせてもよい。着陸システム１５０は続いて、スマート着陸プロセスを、そのような着陸が可能である場合に開始することを再び試みてもよい。スマート着陸が依然として不可能な場合、着陸システム１５０は、ＵＡＶ１００が着陸完了するまで、ＵＡＶ１００は制御された降下を続けることとなる。
【０１２７】
位置特定
ＵＡＶ１００のナビゲーションシステム１２０は、位置特定のための任意の数のシステム及び技術を採用してもよい。図１２は、ＵＡＶ１００等の輸送機械の自律ナビゲーションを案内するために利用され得る例示的な位置特定システム１２００の図を示す。いくつかの実施形態では、物理環境内のＵＡＶ１００及び他の様々な物理的オブジェクトの位置及び／又は向きが、図１２に図示されるサブシステムの任意の１つ以上を使用して推定され得る。位置及び／又は向きの変化を経時的に（継続的に、又は、規則的若しくは不規則な時間間隔で（すなわち、繰り返し））追跡することによって、ＵＡＶ１００及び他のオブジェクトの運動（例えば、速度、加速度など）もまた、推定されてもよい。したがって、位置及び／又は向きを決定するための本明細書に記載される任意のシステムが同様に、運動を推定するために採用されてもよい。
【０１２８】
図１２に示すように、例示的な位置特定システム１２００は、ＵＡＶ１００、複数のＧＰＳ衛星１２０２を含む全地球測位システム（ＧＰＳ）、複数のセルラーアンテナ１２０４を含む（位置特定データ１２０６のソースへのアクセスを備えた）セルラーシステム、複数のＷｉ−Ｆｉアクセスポイント１２０８を含む（位置特定データのソース１２０６へのアクセスを備えた）Ｗｉ−Ｆｉシステム、及び／又は、ユーザ１０６に操作されるモバイルデバイス１０４を含んでいてもよい。
【０１２９】
ＧＰＳ等の衛星ベースの測位システムは、受信機を装備した任意のデバイスの（数メートル範囲の）効果的なグローバル位置推定を提供し得る。例えば、図１２に示すように、ＵＡＶ１００にてＧＰＳシステム１２０２の衛星から受信された信号が、ＵＡＶ１００の全地球位置を推定するために利用され得る。同様に、他のデバイス（例えば、モバイルデバイス１０４）に対する位置は、（例えば、無線通信リンク１１６を介して）通信し、該他のデバイスのグローバル位置を比較することにより決定され得る。
【０１３０】
位置特定技術はまた、無線で通信信号を送信するように構成された様々な通信システムの文脈でも適用され得る。例えば、ＵＡＶ１００とセルラーシステムのセルラーアンテナ１２０４又はＷｉ−ＦｉシステムのＷｉ−Ｆｉアクセスポイント１２０８，１２１０のいずれかとの間で送信される信号に基づいてＵＡＶ１００の位置を推定するために、様々な位置特定技術が適用され得る。実装可能な既知の測位技術には、例えば、到達時間（ＴｏＡ）、到達時間差（ＴＤｏＡ）、往復遅延時間（ＲＴＴ）、到達角度（ＡｏＡ）及び受信信号強度（ＲＳＳ）が含まれる。さらに、ＴＤｏＡ及びＡｏＡ、ＴｏＡ及びＲＳＳ、又は、ＴＤｏＡ及びＲＳＳ等の複数の技術を実装するハイブリッド測位システムが、精度を向上させるために使用され得る。
【０１３１】
８０２．１１ａｃ等のいくつかのＷｉ−Ｆｉ規格は、送信するＷｉ−ＦｉルータからのＲＦ信号ビームフォーミング（すなわち、位相シフトされたアンテナアレイを使用する指向性信号送信）を可能にする。ビームフォーミングは、空間的に分散されたアンテナ（「フェーズドアンテナアレイ」）から様々な位相でＲＦ信号を送信することで達成されてもよく、それによって、所定の角度では建設的干渉が発生することがあり、他の角度では破壊的干渉が発生することがあるため、結果としてターゲット指向性ＲＦ信号フィールドが生じる。そのようなターゲットフィールドは、図１２において、Ｗｉ−Ｆｉルータ１２１０から出ている点線１２１２により概念的に示されている。
【０１３２】
慣性測定ユニット（ＩＭＵ）は、デバイスの位置及び／又は向きを推定するために使用されてもよい。ＩＭＵは、輸送機械の角速度及び線形加速度を測定するデバイスである。これらの測定値は、速度、向き、及び、センサの較正を正確に推測するために、他の情報源（例えば、上記にて説明されたもの）と融合され得る。本明細書に記載のように、ＵＡＶ１００は、１つ以上のＩＭＵを含んでいてもよい。一般に「推測航法（dead reckoning）」と称される方法を使用して、ＩＭＵ（又は関連システム）は、測定された加速度を使用して以前に測定された位置と、以前に測定された位置からの経過時間とに基づいて、現在位置を推定してもよい。ある程度の効果はあるものの、ＩＭＵからの測定値に基づく推測航法によって達成される精度は、予測された現在位置のそれぞれにおける誤差の累積的な影響のため、急速に低下する。誤差は、予測位置のそれぞれが測定された速度の計算された積分に基づいている事実によって、さらに悪化する。そのような影響を打ち消すため、ＩＭＵを使用した位置特定を利用する実施形態は、オブジェクトの最後に知られた位置及び／又は向きを継続的に更新するための、他のソース（例えば、上述のＧＰＳ、Ｗｉ−Ｆｉ及びセルラーシステム）からの位置特定データを含んでいてもよい。さらに、非線形推定アルゴリズム（一実施形態は「拡張カルマンフィルタ」である）が、現在の位置及び／又は向きのリアルタイム最適化予測を観測データ内の想定される不確実性に基づいて生成するために、一連の測定された位置及び／又は向きに適用されてもよい。カルマンフィルタは、航空機のナビゲーション、案内及び制御の分野において一般的に適用されている。
【０１３３】
コンピュータビジョンは、キャプチャカメラ（及び、その延長線上として、カメラが結合されているデバイス）や、物理環境内の他のオブジェクトの位置及び／又は向きを推定するために使用されてもよい。この文脈において、用語「コンピュータビジョン」は、概して、キャプチャされた画像を取得、処理、分析及び「理解」する任意の方法を示すことがある。コンピュータビジョンは、いくつかの種々異なる方法を使用して、位置及び／又は向きを推定するために使用されてもよい。例えば、いくつかの実施形態では、（搭載された、又は、ＵＡＶ１００から離れた）１つ以上の画像キャプチャデバイスから受信した生の画像データを受信して、所定の変数（例えば、カメラの向きの違い、及び／又は、固有のパラメータ（例えば、レンズのバリエーション））について訂正するように処理してもよい。図１に関して前述したように、ＵＡＶ１００は、２つ以上の画像キャプチャデバイス１１４／１１５を含んでいてもよい。２つ以上の視点からキャプチャされた画像を比較することにより（例えば、運動している画像キャプチャデバイスからの異なるタイムステップで）、コンピュータビジョンを採用するシステムは、画像キャプチャデバイスが取り付けられている（ＵＡＶ１００など）輸送機械、及び／又は、物理環境内のキャプチャされたオブジェクト（例えば、木、建物など）の、位置及び／又は向きについての推定を計算してもよい。
【０１３４】
コンピュータビジョンは、「視覚オドメトリ」と呼ばれるプロセスを使用して位置及び／又は向きを推定するために適用され得る。図１３は、視覚オドメトリの背後にある作業概念を高レベルで示す。画像キャプチャデバイスが空間を移動する際に、複数の画像が逐次的にキャプチャされる。画像キャプチャデバイスの運動に起因して、周囲の物理環境のキャプチャされた画像がフレームからフレームへと変化していく。図１３では、このことは、画像キャプチャデバイスがある期間にわたって第１の位置から第２の位置へと移動した際にキャプチャされた、最初の画像キャプチャＦＯＶ１３５２及び後続の画像キャプチャＦＯＶ１３５４によって示される。両方の画像において、画像キャプチャデバイスは、現実世界の物理オブジェクト、例えば家１３８０及び／又は人物１３０２をキャプチャしてもよい。コンピュータビジョン技術は、画像キャプチャデバイスのＦＯＶにキャプチャされた物理オブジェクトの特徴を検出及び照合するために、一連の画像に対して適用される。例えば、コンピュータビジョンを採用するシステムは、重なり合うＦＯＶを有するデジタル画像のピクセル内における対応について探索してもよい。この対応は、相関に基づく方法及び特徴に基づく方法等、いくつかの種々異なる方法を使用して識別されてもよい。図１３に示すように、人の対象１３０２の頭又は家１３８０上の煙突の隅等の特徴が識別され、照合され、それによって追跡され得る。画像キャプチャデバイスに関連付けられたＩＭＵ（又は、（１つ以上の）加速度計若しくは（１つ以上の）ジャイロスコープ）からのセンサデータを画像キャプチャの追跡された特徴に組み込むことにより、画像にキャプチャされたオブジェクト１３８０，１３０２に対する位置及び／又は方向について、推定が行われてもよい。さらに、これらの推定は、例えばカメラの向き及び／又は固有のパラメータ（例えばレンズの変化）又はＩＭＵバイアス及び／又は向きの違いを推定することによって、様々な他のシステムを較正するために使用され得る。視覚オドメトリは、ＵＡＶ１００及びモバイルデバイス１０４などの他の任意のコンピューティングデバイスの両方において、ＵＡＶ１００及び／又は他のオブジェクトの位置及び／又は向きを推定するために適用されてもよい。さらに、これらの推定をシステム間で（例えば、無線通信リンク１１６を介して）通信することによって、互いに対するそれぞれの位置及び／又は向きについて推定が計算されてもよい。搭載されたＩＭＵからのセンサデータに部分的に基づく位置及び／又は方向の推定は、エラー伝播の問題を引き起こすことがある。前述のように、不確実性を打ち消すために、最適化手法がそのような推定に対して適用されてもよい。いくつかの実施形態では、非線形推定アルゴリズム（一実施形態は「拡張カルマンフィルタ」である）が、現在の位置及び／又は向きのリアルタイム最適化予測を観測データ内の想定される不確実性に基づいて生成するために、一連の測定された位置及び／又は向きに適用されてもよい。このような推定アルゴリズムは、同様に、スムーズな運動推定を生成するために適用され得る。
【０１３５】
いくつかの実施形態では、ＵＡＶ１００に搭載されたセンサから受信したデータは、物理環境内におけるＵＡＶ１００及び／又は他のオブジェクトの相対位置及び／又は向きを推定しつつ、周囲の物理環境の３Ｄマップを生成するように処理され得る。このプロセスは、同時の位置特定及びマッピング（ＳＬＡＭ）と称されることもある。そのような実施形態では、本教示によるシステムは、コンピュータビジョン処理を使用して、重なり合うＦＯＶを備えた画像（例えば、連続する時間ステップ中に取得された画像及び／又は同じ時間ステップ内に取得された立体画像）間の密な対応を探索し得る。次に、システムはこれらの密な対応を、それぞれの画像内に表される各ピクセルまでの深度又は距離を推定するために使用し得る。続いて、これらの深度の推定は、物理環境中の画像キャプチャデバイス（すなわち、ＵＡＶ１００）の運動推定を考慮して、物理環境の生成された３Ｄモデルを継続的に更新するために使用され得る。
【０１３６】
いくつかの実施形態では、周囲の物理環境の３Ｄモデルは、各ボクセルが物理オブジェクトによって少なくとも部分的に占有されている物理環境内の空間の３Ｄボリュームに対応する複数のボクセルを含む３Ｄ占有マップとして生成されてもよい。例えば、図１４は、複数の立方体ボクセルを含む物理環境の３Ｄ占有マップ１４０２の例示的な図を示す。３Ｄ占有マップ１４０２内のボクセルのそれぞれは、物理オブジェクトによって少なくとも部分的に占有されている物理環境内の空間に対応する。ＵＡＶ１００のナビゲーションシステム１２０は、ボクセルを回避する３Ｄ占有マップ１４０２を通して３Ｄ軌道１４２０を計画することによって、物理環境をナビゲートするように構成され得る。いくつかの実施形態では、３Ｄ占有マップ１４０２を使用する該３Ｄ軌道１４２０計画は、画像空間運動計画プロセスを適用することによって最適化され得る。そのような実施形態では、計画されたＵＡＶ１００の３Ｄ軌道１４２０は、所定の識別された高コスト領域（例えば、無効な深度推定を有する領域）に関する分析のために、キャプチャされた画像の画像空間内に投影される。
【０１３７】
コンピュータビジョンはまた、光の検出及び測距（ＬＩＤＡＲ）技術など、カメラ以外の感知技術を使用して適用されてもよい。例えば、ＬＩＤＡＲを装備したＵＡＶ１００は、スキャンにおいて、１つ以上のレーザビームを、ＵＡＶ１００周りの最大３６０度に放射してもよい。周囲の物理世界内の物理的オブジェクトでレーザビームが反射する際にＵＡＶ１００が受け取る光が、周囲の物理世界のリアルタイム３Ｄコンピュータモデルを構築するために分析され得る。ＬＩＤＡＲの使用による深度感知は、いくつかの実施形態では、前述のようにピクセル対応によって、深度感知を強化することができる。さらに、（例えば、前述のように）カメラによりキャプチャされた画像をレーザで構築された３Ｄモデルと組み合わせてテクスチャ処理された３Ｄモデルを形成してもよく、該３Ｄモデルは、物理オブジェクト認識について（例えば、コンピュータビジョンアルゴリズムを使用して）リアルタイム又はほぼリアルタイムで分析されてもよい。
【０１３８】
上述のコンピュータビジョン支援位置特定技術は、ＵＡＶ１００の位置及び／又は向きに加えて、物理世界におけるオブジェクトの位置及び／又は向きを計算してもよい。次に、これらのオブジェクトの推定される位置及び／又は向きは、ナビゲーションシステム１２０のモーションプランナ１３０へと供給され、（例えば、前述のように）所定の目的を満たしつつ障害物を回避する経路を計画してもよい。加えて、いくつかの実施形態では、ナビゲーションシステム１２０は、障害物の位置をより正確に推定するために、近接センサ（例えば、電磁気、音響、及び／又は光学ベース）からのデータを組み込んでもよい。さらなる改良は、前述のように複数のカメラで立体視コンピュータビジョンを使用することによよって可能となる。
【０１３９】
図１２の位置特定システム１２００（前述の関連するサブシステムの全てを含む）は、物理環境内のＵＡＶ１００及び他のオブジェクトの位置及び／又は向きを推定するように構成されたシステムの一例にすぎない。位置特定システム１２００は、示されているよりも多い又は少ないコンポーネントを含んでいてもよく、２つ以上のコンポーネントを組み合わせてもよく、コンポーネントの異なる構成又は配置を有していてもよい。図１２に示す様々なコンポーネントのいくつかは、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの両方の組み合わせで実装されてもよく、これらは１つ以上の信号処理及び／又は特定用途向け集積回路を含んでいてもよい。
【０１４０】
オブジェクト追跡
ＵＡＶ１００は、例えばインテリジェント自律飛行を可能にするために、１つ以上のオブジェクトを追跡するように構成され得る。この文脈において、用語「オブジェクト」は、物理的な世界で発生するあらゆるタイプの物理的なオブジェクトを含み得る。オブジェクトには、人、動物及び他の輸送機械等の動的オブジェクトが含まれ得る。オブジェクトにはまた、地形、建物、家具等の静的オブジェクトも含まれ得る。さらに、本明細書の所定の説明は、「対象」（例えば、人である対象１０２）を示すことがある。本開示で使用される用語「対象」は、任意の開示の技術を使用して追跡されているオブジェクトを単に示すことがある。したがって、用語「オブジェクト」及び「対象」は、交換可能に使用されてもよい。
【０１４１】
図２を参照すると、ＵＡＶ１００に関連付けられた追跡システム１４０は、ＵＡＶ１００に搭載された画像キャプチャデバイス（例えば、画像キャプチャデバイス１１４及び／又は１１５）によってキャプチャされたオブジェクトの画像に基づいて１つ以上の物理オブジェクトを追跡するように構成できる。追跡システム１４０は、画像キャプチャデバイスからの入力のみに基づいて動作するように構成され得る一方で、追跡システム１４０はまた、追跡を助けるために他のタイプの情報を組み込むようにも構成され得る。例えば、ＵＡＶ１００及び／又は他のオブジェクトの相対的な位置及び／又は向きを測定、推定及び／又は予測するための他の様々な技術が、図１２〜２０に関して説明される。
【０１４２】
いくつかの実施形態では、追跡システム１４０は、２つの主要なカテゴリ、すなわち、意味及び３Ｄジオメトリに関係する情報を融合するように構成され得る。画像が受信されると、追跡システム１４０は、画像内のピクセルの分析に基づいて、画像内にキャプチャされた所定のオブジェクトに関する意味情報を抽出してもよい。キャプチャされたオブジェクトに関する意味情報には、オブジェクトのカテゴリ（すなわち、クラス）、場所、形状、サイズ、スケール、ピクセルセグメンテーション、向き、クラス間の外観、活動、ポーズ等の情報が含まれ得る。例示的な実施形態では、追跡システム１４０は、キャプチャされた画像に基づいてオブジェクトの大まかな位置及びカテゴリを識別し、その後、さらなる処理に基づいてオブジェクトの個々のインスタンスに関する追加の詳細情報を決定又は推測してもよい。そのようなプロセスは、一連の個別の操作、一連の並列操作又は単一の操作として実行されてもよい。例えば、図１５は、物理環境中を飛行中のＵＡＶによってキャプチャされた例示的な画像１５２０を示す。図１５に示すように、例示的な画像１５２０は、２つの物理オブジェクトのキャプチャ、具体的には、物理環境内に存在する２人の人のキャプチャを含む。例示的な画像１５２０は、ＵＡＶによってキャプチャされたビデオの一連のフレーム内の単一のフレームを表してもよい。追跡システム１４０は、まず、画像１５２０内のキャプチャされたオブジェクトの大まかな位置を識別してもよい。例えば、ピクセルマップ１５３０は、画像内のキャプチャされたオブジェクトの大まかな位置に対応する２つのドットを示す。これらの大まかな位置は、画像座標として表されてもよい。追跡システム１４０はさらに、キャプチャされた画像１５２０を、キャプチャされたオブジェクトの個々のインスタンスに関する情報を決定するように処理してもよい。例えば、ピクセルマップ１５４０は、個々のオブジェクトインスタンス（すなわち、この場合では人々）に対応するピクセルを識別する画像１５２０の追加の処理の結果を示す。キャプチャされた画像内のオブジェクトを特定及び識別してもよく、複数の画像で発生した識別されたオブジェクトを関連付けるために、意味的手掛かり（semantic cue）が使用されてもよい。例えば、前述のように、図１５に示すキャプチャされた画像１５２０は、キャプチャされたビデオの一連のフレームにおける単一のフレームを表してもよい。意味的手がかりを使用して、追跡システム１４０は、複数の画像内にキャプチャされたピクセルの領域を、物理環境内で生じている同じ物理オブジェクトに対応するものとして関連付けてもよい。
【０１４３】
いくつかの実施形態では、追跡システム１４０は、識別されたオブジェクトの３Ｄジオメトリを、物理環境の複数のビューからキャプチャされた画像に基づいてオブジェクトに関する意味情報を関連付けるために利用するよう構成され得る。複数のビューからキャプチャされた画像は、複数の画像キャプチャデバイスによってキャプチャされた、単一の時刻にてそれぞれ異なる位置及び／又は向きを有する画像を含んでいてもよい。例えば、図１のＵＡＶ１００に取り付けられて示されるそれぞれの画像キャプチャデバイス１１４は、（立体的なキャプチャを達成するために）複数のカメラをわずかにオフセットされた位置に含んでいてもよい。さらに、立体画像キャプチャのために個別に構成されていない場合であっても、複数の画像キャプチャデバイス１１４は、例えば、図１に示されるように、ＵＡＶ１００に対してそれぞれ異なる位置に配置されてもよい。複数のビューからキャプチャされた画像には、画像キャプチャデバイスが物理環境中を移動する際に、複数の時刻にて画像キャプチャデバイスによってキャプチャされた画像も含まれ得る。例えば、ＵＡＶ１００が物理環境中を移動する際に、ＵＡＶ１００に取り付けられた画像キャプチャデバイス１１４及び／又は１１５のいずれかが、複数のビューから画像を個別にキャプチャする。
【０１４４】
オンライン視覚慣性状態推定システムを使用して、追跡システム１４０は、ＵＡＶ１００が物理環境中を移動する際のＵＡＶ１００の軌道を決定又は推定し得る。したがって、追跡システム１４０は、ＵＡＶ１００の既知の又は推定された３Ｄ軌道を使用して、検出されたオブジェクトの位置などのキャプチャされた画像内の意味情報をオブジェクトの３Ｄ軌道に関する情報に関連付けることができる。例えば、図１６は、物理環境中を移動するＵＡＶ１００の軌道１６１０を示す。ＵＡＶ１００が軌道１６１０に沿って移動する際に、１つ以上の画像キャプチャデバイス（例えば、デバイス１１４及び／又は１１５）が、複数のビュー１６１２ａ〜ｃにて物理環境の画像をキャプチャする。複数のビュー１６１２ａ〜ｃの画像内には、人である対象１０２等のオブジェクトのキャプチャが含まれる。キャプチャされた画像を複数のビュー１６１２ａ〜ｃで処理することによって、オブジェクトの軌跡１６２０もまた解決され得る。
【０１４５】
キャプチャされた画像におけるオブジェクト検出は、該オブジェクトが沿って存在する放射線を、キャプチャカメラの中心位置から該オブジェクトまで、ある程度の不確実性を伴って生成する。追跡システム１４０は、これらの検出のための深度測定値を計算して、カメラの焦点面に平行な、オブジェクトが沿って存在する面を、ある程度の不確実性を伴って作成し得る。これらの深度測定値は、異なるビューの２つ以上のカメラ画像間のオブジェクトに対応するピクセル上で動作するステレオビジョンアルゴリズムによって計算され得る。深度の計算は、特に、対象のオブジェクト（例えば、対象１０２）の一部であるとラベル付けされたピクセルを考慮し得る。これらの経時的な放射線及び面の組み合わせ
【０１４６】
追跡システム１４０が、ＵＡＶ１００に搭載された画像キャプチャデバイスからの視覚データのみに依存するように構成され得る一方で、他のセンサ（例えば、オブジェクト上のセンサ、ＵＡＶ１００上のセンサ又は環境内のセンサ）からのデータが、利用可能な場合、このフレームワーク内に組み込まれ得る。追加のセンサには、ＧＰＳ、ＩＭＵ、気圧計、磁力計及びカメラ、又は、モバイルデバイス１０４等の他のデバイスが含まれていてもよい。例えば、人が持つモバイルデバイス１０４からのＧＰＳ信号は、ＵＡＶ１００に搭載された画像キャプチャデバイスからの視覚情報と融合された、その人の大まかな位置測定を提供し得る。ＵＡＶ１００及び／又はモバイルデバイス１０４におけるＩＭＵセンサは、加速度及び角速度情報を提供することができ、気圧計は、相対高度を提供することができ、磁力計は、方位情報を提供することができる。人が持つモバイルデバイス１０４上のカメラによってキャプチャされた画像は、画像にキャプチャされた共通の特徴を識別することによってＵＡＶ１００と人との間の相対的なポーズを推定するために、ＵＡＶ１００に搭載されたカメラからの画像と融合され得る。ＵＡＶ１００及び／又は他のオブジェクトの相対的な位置及び／又は向きを測定、推定及び／又は予測するための様々な他の技術が、図１２〜２０に関して記載される。
【０１４７】
いくつかの実施形態では、様々なセンサからのデータが、非線形最適化を使用して総測定誤差を確率論的に最小化するために、時空間因子グラフ内に入力される。図１７は、（例えば、経時的なポーズ及び速度を含む）オブジェクトの３Ｄ軌道を推定するために使用可能な例示的な時空間因子グラフ１７００の図表示を示す。この例では、図１７に示す時空間因子グラフ１７００は、ポーズ及び速度（（それぞれ１７０２及び１７０４として表される）ノードとして表される）等の変数値は、１つ以上の運動モデルプロセスによって接続される（接続端に沿ったノード１７０６として表される）。例えば、時間ステップ１（すなわち、変数Ｘ（１））でのＵＡＶ１００及び／又は他のオブジェクトのポーズの推定又は予測は、前の時間ステップにて推定されたポーズ及び速度（すなわち、変数Ｘ（０）及びＶ（０）））を入力することによって計算されてもよく、１つ以上のモーションモデルを介してステレオ深度測定やカメラ画像測定等の様々な知覚入力を入力することによって計算されてもよい。時空間因子モデルは、推定された分布からの逸脱が大きすぎる測定値が破棄される外れ値除去メカニズムと組み合わせられ得る。複数の時刻における測定から３Ｄ軌跡を推定するために、１つ以上のモーションモデル（又はプロセスモデル）が、因子グラフの各タイムステップ間で推定変数を接続するように使用される。そのようなモーションモデルには、等速、ゼロ速度、減衰速度、減衰加速度のいずれかが含まれ得る。適用されるモーションモデルは、機械学習技術を使用して追跡及び／又は学習されているオブジェクトのタイプの分類に基づいてもよい。例えば、自転車に乗る者は、高速で大回りする可能性があるが、横に動くことは想定されない。逆に、犬などの小動物は、予測不可能な運動パターンを示すことがある。
【０１４８】
いくつかの実施形態では、追跡システム１４０は、オブジェクトの予測された３Ｄ軌道に基づいて、追跡されるオブジェクトが後にキャプチャされる画像のどこに現れるかについてのインテリジェントな初期推定を生成し得る。図１８は、この概念を図示する図を示す。図１８に示すように、ＵＡＶ１００は、人である対象１０２を含む周囲の物理環境の画像をキャプチャしつつ、軌道１８１０に沿って移動している。ＵＡＶ１００が軌道１８１０に沿って移動する際に、複数の画像（例えば、ビデオのフレーム）が、１つ以上の搭載された画像キャプチャデバイス１１４／１１５からキャプチャされる。図１８は、第１のポーズ１８４０における画像キャプチャデバイスの第１のＦＯＶと、第２のポーズ１８４２における画像キャプチャデバイスの第２のＦＯＶとを示す。この例では、第１のポーズ１８４０は、時刻ｔ（０）における画像キャプチャデバイスの以前のポーズを表してもよく、第２のポーズ１８４２は、時刻ｔ（１）における画像キャプチャデバイスの現在のポーズを表してもよい。時刻ｔ（０）において、画像キャプチャデバイスは、物理環境内の第１の３Ｄ位置１８６０にて、人である対象１０２の画像をキャプチャする。この第１の位置１８６０は、人である対象１０２の最後に知られた位置であってもよい。画像キャプチャデバイスの第１のポーズ１８４０が与えられると、第１の３Ｄ位置１８６０にいる間の人である対象１０２は、キャプチャ画像内の第１の画像位置１８５０に現れる。したがって、第２の（又は、現在の）画像位置１８５２の初期推定は、オブジェクトに関連付けられた１つ以上の運動モデルを使用して、人である対象１０２の最後に知られた３Ｄ軌跡１８２０ａの未来を投影することに基づいて行われ得る。例えば、図１８に示される予測された軌跡１８２０ｂは、この未来の３Ｄ軌道１８２０ａの投影を表す。次に、この予測軌道１８２０ｂに沿った人である対象１０２の（時間ｔ（１）における）第２の３Ｄ位置１８６２は、ｔ（０）からｔ（１）までの経過時間に基づいて計算され得る。続いて、この第２の３Ｄ位置１８６２は、第２のポーズ１８４２にて画像キャプチャデバイスの画像平面内に投影され、それによって、人である対象１０２に対応することになる第２の画像位置１８５２が推定され得る。このような新たにキャプチャされた画像内の追跡されるオブジェクトの位置についての初期推定を生成することによって、追跡のための探索空間が絞り込まれ、特に、位置及び／又は向きの急速な変化を示すＵＡＶ１００及び／又は追跡されるオブジェクトの場合において、より堅牢な追跡システムが可能になる。
【０１４９】
いくつかの実施形態では、追跡システム１４０は、ＵＡＶ１００に搭載された２つ以上のタイプの画像キャプチャデバイスを利用し得る。例えば、図１に関して前述したように、ＵＡＶ１００は、視覚的ナビゲーション用に構成された画像キャプチャデバイス１１４、及び、視認される画像をキャプチャするための画像キャプチャデバイス１１５を含んでいてもよい。画像キャプチャデバイス１１４は、低レイテンシ、低解像度かつ高ＦＯＶに構成されてもよく、画像キャプチャデバイス１１５は、高解像度に構成されてもよい。ＵＡＶ１００の周囲にある画像キャプチャデバイス１１４のアレイは、ＵＡＶ１００周りに最大３６０度のオブジェクトに関する低レイテンシ情報を提供し得ると共に、ステレオビジョンアルゴリズムを使用して深度を計算するために使用され得る。逆に、他の画像キャプチャデバイス１１５は、限られたＦＯＶにおいてより詳細な画像（例えば、高解像度、カラー等）を提供し得る。
【０１５０】
両方のタイプの画像キャプチャデバイス１１４及び１１５からの情報を組み合わせることは、いくつかの方法において、オブジェクト追跡目的のために有益であり得る。第１に、画像キャプチャデバイス１１５からの高解像度カラー情報は、追跡されるオブジェクトの３Ｄ表現を作成するために、画像キャプチャデバイス１１４からの深度情報と融合され得る。第２に、画像キャプチャデバイス１１４の低レイテンシは、オブジェクトのより正確な検出及びオブジェクトの軌跡の推定を可能にし得る。これらのような推定は、高レイテンシ、高解像度の画像キャプチャデバイス１１５から受信した画像に基づいて、さらに改善及び／又は修正され得る。画像キャプチャデバイス１１４からの画像データは、画像キャプチャデバイス１１５からの画像データと融合され得るか、純粋に初期推定として使用され得る。
【０１５１】
画像キャプチャデバイス１１４を使用することによって、追跡システム１４０は、オブジェクトのＵＡＶ１００周りに最大３６０度の追跡を達成し得る。追跡システム１４０は、画像キャプチャデバイス１１４及び１１５の位置及び向きが経時的に変化しているときに追跡されるオブジェクトの相対位置及び／又は向きを推定する際、画像キャプチャデバイス１１４又は１１５のいずれかからの測定値を融合し得る。追跡システム１４０はまた、画像キャプチャデバイス１１５を、関心のある特定のオブジェクトのより正確な追跡を取得するように配向して、両方の画像キャプチャ様式からの情報を流動的に組み込むこともできる。シーン内の全てのオブジェクトの位置に関する知識を使用して、ＵＡＶ１００は、よりインテリジェントな自律飛行を行い得る。
【０１５２】
前述のように、高解像度画像キャプチャデバイス１１５は、ＵＡＶ１００の本体に対する運動の１つ以上の自由度を与える、ジンバル等の調整可能な機構に取り付けられてもよい。このような構成は、画像キャプチャの安定化や、特に関心のあるオブジェクトの追跡に役立つ。物理環境内のオブジェクトの位置を追跡するように高解像度の画像キャプチャデバイス１１５のＵＡＶ１００に対する向きを調整するよう構成されたアクティブジンバル機構は、より低解像度の画像キャプチャデバイス１１４単独の使用によって可能となり得る視覚的追跡よりも長い距離での視覚的追跡を可能にしてもよい。アクティブジンバル機構の実装は、任意の所与の時点におけるジンバル機構の１つ以上のコンポーネントの向きを推定することに関与してもよい。そのような推定は、ジンバル機構（例えば、加速度計、ロータリエンコーダ等）に結合された任意のハードウェアセンサ、画像キャプチャデバイス１１４／１１５からの視覚情報、又は、それらの任意の組み合わせに基づく融合に基づいてもよい。
【０１５３】
追跡システム１４０は、様々なオブジェクトを検出及び追跡するためのオブジェクト検出システムを含んでいてもよい。１つ以上のクラスのオブジェクト（例えば、人、建物、車、動物等）が与えられると、オブジェクト検出システムは、物理環境のキャプチャされた画像において生じるオブジェクトの様々なクラスのインスタンスを識別してもよい。オブジェクト検出システムによる出力は、いくつかの異なる方法でパラメータ化され得る。いくつかの実施形態では、オブジェクト検出システムは、受信した画像を処理して、密なピクセル毎セグメンテーションを出力する。各ピクセルは、オブジェクトクラスラベル（例えば、人、建物、車、動物等）に対応する値、及び／又は、そのオブジェクトクラスに属する尤度のいずれかに関連付けられる。例えば、図１９は、キャプチャされた画像１９０２の密なピクセル毎セグメンテーションの視覚化１９０４を示し、このキャプチャされた画像１９０２では、人として分類された検出されたオブジェクト１９１０ａ〜ｂに対応するピクセルが、画像１９０２内の他の全ての他のピクセルから離れて設定されている。別のパラメータ化は、例えば受信された画像内のオブジェクトの表現の幾何中心に基づいて、（例えば、図１５のマップ１５３０に示されるように）特定の画像座標に検出されたオブジェクトの画像位置を解決することを含んでいてもよい。
【０１５４】
いくつかの実施形態では、オブジェクト検出システムは、オブジェクト検出のために深層畳み込みニューラルネットワークを利用し得る。例えば、入力はデジタル画像（例えば、画像１９０２）であってもよく、出力は同じ空間次元を備えたテンソルであってもよい。出力テンソルのスライスのそれぞれは、密なセグメンテーション予測を表してもよく、ここで、各ピクセルの値は、そのピクセルがスライスに対応するオブジェクトのクラスに属する尤度に比例する。例えば、図１９に示す視覚化１９０４は、前述のテンソルの特定のスライスを表してもよく、ここで、各ピクセルの値は、そのピクセルが人に対応する尤度に比例する。加えて、深層畳み込みニューラルネットワークはまた、次のセクションで説明するように、検出されたインスタンスのそれぞれの幾何中心位置も予測し得る。
【０１５５】
追跡システム１４０は、オブジェクト検出システムによって検出されたオブジェクトの個々のインスタンスを区別するためのインスタンスセグメンテーションシステムも含んでいてもよい。いくつかの実施形態では、検出されたオブジェクトの個々のインスタンスを区別するプロセスは、ＵＡＶ１００によってキャプチャされたデジタル画像を、物理環境内に存在し、デジタル画像内にキャプチャされた物理オブジェクトのクラスの複数のインスタンスの１つに属するピクセルを識別するように処理することを含んでいてもよい。図１９に関して前述したように、密なピクセル毎セグメンテーションアルゴリズムは、画像内の所定のピクセルを、オブジェクトの１つ以上のクラスに対応するものとして分類し得る。このセグメンテーションプロセスの出力によって、追跡システム１４０は、画像内に表されるオブジェクトと、画像の残りの部分（すなわち、背景）とを区別してもよい。例えば、視覚化１９０４は、（例えば、領域１９１２内に含まれる）人に対応するピクセルを、（例えば、領域１９３０内に含まれる）人に対応しないピクセルから区別する。しかしながら、このセグメンテーションプロセスは、必ずしも検出されたオブジェクトの個々のインスタンスを区別しない。視覚化１９０４を見ている人は、検出された画像内の人に対応するピクセルが実際には２人の別々の人に対応すると結論付けるかもしれないが、さらなる分析なしでは、追跡システム１４０はこの区別を行うことはできない可能性がある。
【０１５６】
効果的なオブジェクト追跡は、検出されたオブジェクトの別個のインスタンスに対応するピクセルを区別することを含んでいてもよい。このプロセスは「インスタンスセグメンテーション」として知られている。図２０は、キャプチャされた画像２００２に基づくインスタンスセグメンテーション出力の例示的な視覚化２００４を示す。図１９に関して説明した密なピクセル毎セグメンテーションプロセスと同様に、視覚化２００４によって表される出力は、特定のクラスのオブジェクト（この場合、人）の検出されたオブジェクト２０１０ａ〜ｃに対応するピクセル（例えば、領域２０１２ａ〜ｃに含まれるピクセル）を、そのようなオブジェクトに対応しないピクセル（例えば、領域２０３０に含まれるピクセル）から区別する。なお、インスタンスセグメンテーションプロセスは、検出されたオブジェクトの個々のインスタンスに対応するピクセルを互いに区別するよう、さらに一歩進んでいる。例えば、領域２０１２ａのピクセルは、人２０１０ａの検出されたインスタンスに対応し、領域２０１２ｂのピクセルは、人２０１０ｂの検出されたインスタンスに対応し、領域２０１２ｃのピクセルは、人２０１０ｃの検出されたインスタンスに対応する。
【０１５７】
検出されたオブジェクトのインスタンス間の区別は、検出されたオブジェクトに対応するピクセルの分析に基づいてもよい。例えば、グループ化方法は、オブジェクトの特定のクラスに対応するピクセルをそのクラスの特定のインスタンスに関連付けるために、追跡システム１４０によって適用されてもよい。そのような関連付けは、該インスタンスに対応する所定の他のピクセルに実質的に類似するピクセル、空間的にクラスタ化されたピクセル、オブジェクトクラス等についての外観ベースのモデルに適合するピクセルクラスタ等を選択することによって行われ得る。この場合も、このプロセスは、検出されたオブジェクトの個々のインスタンスを区別するために、深層畳み込みニューラルネットワークを適用することに関与してもよい。
【０１５８】
インスタンスセグメンテーションは、オブジェクトの特定のインスタンスに対応するピクセルを関連付けてもよいが、そのような関連付けは、時間的に一貫していないことがある。図２０に関して記載された例について、再度検討する。図２０に示すように、追跡システム１４０は、インスタンスセグメンテーションプロセスを物理環境のキャプチャされた画像２００２に適用することによって、所定のクラスのオブジェクト（すなわち、人）の３つのインスタンスを識別している。このキャプチャされた例示的な画像２００２は、キャプチャされたビデオの一連のフレームにおける１つのフレームのみを表してもよい。第２のフレームが受信された際、追跡システム１４０は、新たに識別されたオブジェクトインスタンスを、画像２００２でキャプチャされたものと同じ３人の人々２０１０ａ〜ｃに対応するものとして認識できない場合がある。
【０１５９】
この問題に対処するために、追跡システム１４０は、アイデンティティ認識システムを含み得る。アイデンティティ認識システムは、受信した入力（例えば、キャプチャした画像）を、所定のオブジェクト（例えば、特定の人々）のインスタンスの外観を学習するように処理してもよい。具体的には、アイデンティティ認識システムは、機械学習の外観ベースのモデルを、ＵＡＶ１００に関連付けられた１つ以上の画像キャプチャデバイス１１４／１１５によってキャプチャされたデジタル画像に適用してもよい。キャプチャされた画像の処理に基づいて識別されたインスタンスセグメンテーションは、その後、検出されたオブジェクトの１つ以上のユニークなアイデンティティを解決するために、そのような外観ベースのモデルと比較され得る。
【０１６０】
アイデンティティ認識は、オブジェクト追跡に関連する様々な異なるタスクに有用であり得る。先に言及したように、検出されたオブジェクトのユニークなアイデンティティを認識することで、時間的な一貫性が可能になる。さらに、アイデンティティ認識は、複数の種々異なるオブジェクトの追跡を可能にし得る（詳細については後述する）。アイデンティティ認識はまた、オブジェクトの永続性を促進してもよく、このオブジェクトの永続性によって、画像キャプチャデバイスのＦＯＶの制限、オブジェクトの運動及び／又は別のオブジェクトによる遮蔽のためにビューから外れた、以前に追跡されるオブジェクトの再取得が可能になる。アイデンティティ認識はまた、特定の人物が表示されている際にビデオを記録する等の、所定のアイデンティティ固有の行動又はアクションを実行するためにも適用され得る。
【０１６１】
いくつかの実施形態では、アイデンティティ認識プロセスは、所定のオブジェクトの１つ以上の効果的な外観ベースのモデルを学習するために、深層畳み込みニューラルネットワークを採用してもよい。いくつかの実施形態では、ニューラルネットワークは、オブジェクト（例えば、人）の同じインスタンスに属する画像クロップに対しては低い距離値を返し、それ以外には高い距離値を返す、距離メトリックを学習するように訓練され得る。
【０１６２】
いくつかの実施形態ではまた、アイデンティティ認識プロセスは、人等のオブジェクトの個々のインスタンスの外観を学習することを含んでいてもよい。人を追跡する際、追跡システム１４０は、ユーザ入力データ、又は、ソーシャルメディア上で利用可能な個人に関連する画像等の外部データソースのいずれかを通じて、人のアイデンティティを関連付けるように構成されてもよい。そのようなデータは、ＵＡＶ１００に搭載された１つ以上の画像キャプチャデバイス１１４／１１５のいずれかから受信された画像に基づく詳細な顔認識プロセスと組み合わせられ得る。いくつかの実施形態では、アイデンティティ認識プロセスは、１人以上の主要な個人に焦点を合わせてもよい。例えば、ＵＡＶ１００に関連付けられた追跡システム１４０は、ＵＡＶ１００の指定された所有者のアイデンティティの学習に特に焦点を合わせて、追跡、ナビゲーション及び／又は他の目的（例えば、アクセス制御）のために、その飛行間における知識を保持及び／又は改善してもよい。
【０１６３】
いくつかの実施形態では、追跡システム１４０は、キャプチャされた画像内に検出された特定のオブジェクトに追跡の焦点を合わせるように構成されてもよい。そのような単一オブジェクト追跡アプローチでは、識別されたオブジェクト（例えば、人）が追跡対象として指定され、一方で、他の全てのオブジェクト（例えば、他の人、木、建物、景観など）は眩惑させるもの（distractor）として扱われ、無視される。一部の文脈においては便利である一方、単一オブジェクト追跡アプローチは、いくつかのデメリットを有することがある。例えば、画像キャプチャデバイスの観点から、追跡されるオブジェクトと眩惑オブジェクトとの軌跡が重なっていると、追跡されているオブジェクトが不注意に切り替わる可能性があり、そのため、追跡システム１４０が代わりに眩惑させるものの追跡を開始することがある。同様に、オブジェクト検出器による空間的に近い誤検知も、追跡が不注意に切り替わることにつながる可能性がある。
【０１６４】
複数オブジェクト追跡アプローチは、これらの欠点に対処し、いくつかの追加の利点を提示する。いくつかの実施形態では、ユニークな追跡が、１つ以上の画像キャプチャデバイス１１４／１１５によってキャプチャされた画像内に検出された各オブジェクトに関連付けられる。いくつかの場合では、コンピューティングの観点から、画像内にキャプチャされた全ての単一のオブジェクトに対してユニークな追跡を関連付けることは現実的ではない。例えば、所与の画像は、岩や葉や木などの小さな特徴を含む、何百ものオブジェクトを含むことがある。代わりに、追跡の観点から、関心のある所定のクラスのオブジェクトに対してユニークな追跡を関連付けてもよい。例えば、追跡システム１４０は、一般的に移動可能であるクラス（例えば、人、動物、輸送機械等）に属する検出された全オブジェクトに対して、ユニークな追跡を関連付けるように構成されてもよい。
【０１６５】
ユニークな追跡のそれぞれは、（例えば、前述の時空間因子グラフを使用しての）追跡されているオブジェクトの空間的位置及び動きの推定、並びに、（例えば、識別認識機能を使用しての）該オブジェクトの外観の推定を含んでいてもよい。全ての他の眩惑させるものを一緒にプールする（すなわち、単一のオブジェクト追跡アプローチで実行され得るようにする）代わりに、追跡システム１４０は、複数の個々の追跡されるオブジェクトを区別することを学習し得る。そうすることにより、追跡システム１４０は、不注意なアイデンティティの切り替えをより起こりにくくしてもよい。同様に、オブジェクト検出器による誤検知は、何らかのユニークな追跡とは一致しない傾向があるため、より堅牢に拒否され得る。
【０１６６】
複数オブジェクト追跡を実行する際に考慮する態様には、関連付け問題が含まれる。換言すれば、キャプチャされた画像に基づくオブジェクト検出のセット（セグメンテーションに対応する画像内の３Ｄ位置及び領域によるパラメータ化を含む）が与えられると、オブジェクト検出のセットのそれぞれを対応する追跡にどのようにして関連付けるかに関し、問題が発生する。この関連付けの問題に対処するために、追跡システム１４０は、検出されたオブジェクトと推定されたオブジェクト追跡との間の関係に基づいて、複数の検出されたオブジェクトの１つを、複数の推定されたオブジェクト追跡の１つに関連付けるように構成され得る。具体的には、このプロセスには、オブジェクト検出の１つ以上のペアの「コスト」値の計算と、オブジェクト追跡の推定とが含まれていてもよい。計算されたコスト値は、例えば、所与のオブジェクト検出の（例えば、３Ｄ空間及び／又は画像空間内の）現在の位置と所与の追跡の（例えば、３Ｄ空間及び／又は画像空間内の）現在の推定との間の空間距離、所与の追跡の現在の推定の不確実性、所与の検出されたオブジェクトの外観と所与の追跡についての外観の推定の差、及び／又は、所与の検出されたオブジェクトと所与の追跡との間の関連付けを示唆する傾向があり得る任意の他の要因を考慮し得る。いくつかの実施形態では、複数のコスト値が様々な異なる要因に基づいて計算されて単一のスカラー値に融合され、この単一のスカラー値は、所与の検出されたオブジェクトが所与の追跡にどれだけよく適合するかの尺度として扱われる。次に、コスト定式化を最小コストの完全二部マッチング問題のインスタンスとして処理することによって、検出されたオブジェクトと対応する追跡との間の最適な関連付けを決定するために、前述のコスト定式化が使用され得る。この完全二部マッチング問題は、例えば、ハンガリアンアルゴリズムを使用して解決され得る。
【０１６７】
いくつかの実施形態では、追跡システム１４０による効果的なオブジェクト追跡は、オブジェクトの状態に関する情報を組み込むことによって改善されてもよい。例えば、人等の検出されたオブジェクトは、１つ以上の定義された状態に関連付けられてもよい。この文脈において、状態には、座っている、立っている、歩いている、走っている、ジャンプしている等のオブジェクトによる活動が含まれることがある。いくつかの実施形態では、１つ以上の知覚入力（例えば、画像キャプチャデバイス１１４／１１５からの視覚入力）が、検出されたオブジェクトに関連付けられた１つ以上のパラメータを推定するために使用されてもよい。この推定されたパラメータには、活動タイプ、運動能力、軌道の進行方向、文脈上の場所（例えば、屋内と屋外）、他の検出されたオブジェクトとの相互作用（例えば、一緒に歩く２人、人が持つ革紐に繋がれた犬、車に牽引されたトレーラ等）、及び、任意の他の意味属性が含まれていてもよい。
【０１６８】
概して、オブジェクト状態推定は、知覚入力（例えば、ＵＡＶ１００に搭載された１つ以上の画像キャプチャデバイス１１４／１１５によってキャプチャされた、検出されたオブジェクトの画像、又は、ＵＡＶ１００に搭載されている他のセンサからのセンサデータ）に基づいて、検出されたオブジェクトの状態に関連付けられた１つ以上のパラメータを推定するために適用されてもよい。次に、推定されたパラメータは、検出されたオブジェクトの運動の予測を支援し、それによって検出されたオブジェクトの追跡を支援するために適用されてもよい。例えば、検出された人間の未来の軌跡推定は、その検出された人が歩いているか、走っているか、ジャンプしているか、自転車に乗っているか、車に乗っているか等に応じて、異なることがある。いくつかの実施形態では、深層畳み込みニューラルネットワークは、複数のデータソース（例えば、知覚入力）に基づくパラメータ推定を生成して、未来の軌道推定の生成を支援し、それによって追跡を支援するために適用されてもよい。
【０１６９】
先に言及したように、追跡システム１４０は、過去の軌道測定及び／又は推定、現在の知覚入力、運動モデル並びに任意の他の情報（例えば、オブジェクトの状態の推定）に基づいて、検出されたオブジェクトの未来の軌道を推定（すなわち、予測）するように構成されてもよい。検出されたオブジェクトの未来の軌道を予測することは、ＵＡＶ１００による自律ナビゲーションに特に有用であり得る。ＵＡＶ１００による効果的な自律ナビゲーションは、物理環境内の現在の状態の予測と全く同じくらい、未来の状態の予測に依存する場合がある。運動計画プロセスを通じて、ＵＡＶ１００のナビゲーションシステムは、例えば、衝突を回避するように、運動中の追跡されるオブジェクトとの間隔を維持するように、及び／又は、任意の他のナビゲーション目標を満たすように、ＵＡＶ１００が操縦されるよう構成された、制御コマンドを生成してもよい。
【０１７０】
検出されたオブジェクトの未来の軌道を予測することは、一般に、解決が比較的難しい問題である。この問題は、既知の予測可能な運動モデルに従って動いているオブジェクトについては、簡略化され得る。例えば、自由落下中のオブジェクトは、既知の重力定数及び他の既知の要素（例えば、風の抵抗）に基づいた速度で加速しつつ、以前の軌道に沿って継続すると予想される。そのような場合、未来の軌道の予測を生成する問題は、オブジェクトに関連付けられた既知の又は予測可能な運動モデルに従って、単に過去及び現在の運動を伝播するように単純化され得る。勿論、オブジェクトは、いくつかの理由で（例えば、別のオブジェクトとの衝突によって）、そのような仮定に基づいて生成された予測軌道から逸脱することがある。しかしながら、予測された軌跡は、運動計画や追跡の目的で依然として役立つことがある。
【０１７１】
人々や動物等の動的オブジェクトは、そのようなオブジェクトの運動が一般に環境及びそれら自身の自由意志に基づくため、未来の軌道を予測する際により困難な課題をもたらす。そのような課題に対処するために、追跡システム１４０は、未来の短時間（例えば、数秒）の軌道を予測し、そのような予測を新しい測定値が取得された際に継続的に更新するために、オブジェクトの現在の位置及び運動の正確な測定を行うと共に微分された速度及び／又は加速度を使用ように構成されてもよい。さらに、追跡システム１４０はまた、予測された軌跡を生成するのを助けるために、キャプチャされた画像の分析から収集された意味情報を手掛かりとして使用してもよい。例えば、追跡システム１４０は、検出されたオブジェクトが、道路に沿って移動する自転車に乗っている人であると決定してもよい。この意味情報を用いて、追跡システム１４０は、追跡されるオブジェクトが道路の道とほぼ一致する軌道に沿って続く可能性が高いという仮定を形成してもよい。別の関連する例として、追跡システム１４０は、人が自転車のハンドルバーを左に曲げ始めたことを決定してもよい。この意味情報を用いて、追跡システム１４０は、追跡されるオブジェクトが左に曲がる可能性が高いという仮定を、この運動が露呈される何らかの位置測定値を受信する前に形成してもよい。人々や動物等の自律オブジェクトに特に関連する別の例としては、オブジェクトが他のオブジェクトとの衝突を回避する傾向があると仮定することが挙げられる。例えば、追跡システム１４０は、追跡されるオブジェクトが、電柱等の別のオブジェクトと衝突することになる軌道上に向かう人であると決定してもよい。この意味情報を用いて、追跡システム１４０は、追跡されるオブジェクトが、衝突が発生する前の何らかの時点で、該オブジェクトの現在の軌道を変える可能性が高いという仮定を形成してもよい。当業者は、これらが、意味情報を所定のオブジェクトの未来の軌跡の予測を導くための手掛かりとしてどのように利用し得るかについての単なる例であることを認識するであろう。
【０１７２】
１つ以上のキャプチャされた画像においてオブジェクト検出プロセスを時間フレーム毎に実行することに加えて、追跡システム１４０はまた、例えば、特定のセットの運動、又は、後続の時間フレーム（例えば、ビデオフレーム）における画像内のピクセル領域を検出するために、フレーム間追跡プロセスを実行するように構成されてもよい。そのようなプロセスは、平均値シフトアルゴリズム、相関フィルタ及び／又は深層ネットワークの適用に関与してもよい。いくつかの実施形態では、フレーム間追跡は、オブジェクト検出システムとは別のシステムによって適用されてもよく、ここで、フレーム間追跡からの結果は、時空間因子グラフ内に融合される。あるいは又はこれに加えて、オブジェクト検出システムは、例えば、システムが利用可能なコンピューティングリソース（例えば、メモリ）を十分に有する場合に、フレーム間追跡を実行してもよい。例えば、オブジェクト検出システムは、深層ネットワークでの反復を通じて、及び／又は一度に複数の画像を渡すことを通じて、フレーム間追跡を適用してもよい。フレーム間追跡プロセス及びオブジェクト検出プロセスはまた、障害が発生した際に一方が他方を復帰させることにより、互いに補完するように構成することもできる。
【０１７３】
前述のように、追跡システム１４０は、ＵＡＶ１００に搭載された１つ以上の画像キャプチャデバイス１１４／１１５から受信された画像（例えば、生のピクセルデータ）を処理するように構成されてもよい。あるいは又はこれに加えて、追跡システム１４０はまた、視差画像を処理することによって動作するように構成されてもよい。そのような視差画像は、空間内のオブジェクトの３Ｄ位置に起因してオブジェクトに対応するピクセルが同様の視差を持つため、物理環境内のオブジェクトに対応する画像の領域を強調する傾向がある。したがって、視差画像は、２つ以上の画像を別個のステレオアルゴリズムに従って処理することにより生成されたものであってもよく、物理環境内のオブジェクトの検出において追跡システム１４０を導くための有用な手掛かりを提供してもよい。多くの状況、特に、苛烈な照明が存在する状況では、視差画像は、実際には、オブジェクトの位置に関して、画像キャプチャデバイス１１４／１１５からキャプチャされた画像より強い手がかりを提供してもよい。前述のように、視差画像は、別のステレオアルゴリズムを用いて計算されてもよい。あるいは又はこれに加えて、視差画像は、追跡システム１４０によって適用される同じ深層ネットワークの一部として出力されてもよい。視差画像は、画像キャプチャデバイス１１４／１１５から受信された画像とは別個にオブジェクト検出に使用されてもよく、それらの画像が共同推定のために単一のネットワーク内へと組み合わされてもよい。
【０１７４】
概して、追跡システム１４０（例えば、オブジェクト検出システム及び／又は関連するインスタンスセグメンテーションシステムを含む）は、主として、所与の画像内のどのピクセルが各オブジェクトインスタンスに対応するかを決定することに関係し得る。しかしながら、これらのシステムは、所与のオブジェクトの、所与の画像内に実際にキャプチャされていない部分を考慮しないことがある。例えば、オブジェクトの遮蔽部分（例えば、木によって部分的に遮蔽された人）に遮蔽がなければ対応していたと考えられるピクセルは、オブジェクトに対応するものとしてラベル付けされない場合がある。これは、オブジェクトのサイズ及び形状が、遮蔽によってキャプチャされた画像内で歪んでいるように見える可能性があるため、オブジェクトの検出、インスタンスセグメンテーション、アイデンティティ認識について不利になり得る。この問題に対処するために、追跡システム１４０は、キャプチャされた画像内のオブジェクトインスタンスのセグメンテーションを、該オブジェクトインスタンスが他のオブジェクトインスタンスによって遮蔽されている場合であっても暗に行うように構成されてもよい。さらに、オブジェクト追跡システム１４０は、オブジェクトインスタンスに関連付けられたピクセルのどれが、該オブジェクトインスタンスの遮蔽部分に対応するかを決定するように構成されてもよい。このプロセスは、一般に「アモーダルセグメンテーション」と称され、（例えば、画像キャプチャデバイス１１４／１１５によってキャプチャされた受信画像に）物理オブジェクトの一部が必ずしも認識されない場合であっても、このセグメンテーションプロセスは、物理オブジェクトの全体を考慮する。アモーダルセグメンテーションは、アイデンティティ認識を実行する際に、及び、複数オブジェクト追跡のために構成された追跡システム１４０において、特に有利であり得る。
【０１７５】
物理環境中を運動中のオブジェクトを追跡する際、視覚的接触の喪失が予想される。主として視覚入力（例えば、画像キャプチャデバイス１１４／１１５によってキャプチャされた画像）に基づく追跡システム１４０は、（例えば、別のオブジェクトによって遮蔽される、又は、オブジェクトが画像キャプチャデバイスの１１４／１１５のＦＯＶを離れることに起因して）視覚的接触が失われると、オブジェクトについての追跡を喪失する可能性がある。そのような場合、追跡システム１４０は、オブジェクトの位置について不確実になることがあり、そのため、オブジェクトが喪失されたと宣言することがある。人のパイロットであれば、オブジェクトの永続性を理解しているため、特に一時的な遮蔽の場合には、通常この問題を抱えていない。オブジェクトの永続性は、所定の物理的制約があるとして、オブジェクトが突然消えたり、即座に別の場所にテレポートしたりできないことを前提としている。この仮定に基づけば、全ての脱出経路が明確に見えていることが明らかな場合、オブジェクトは遮蔽されたボリューム内に残っている可能性が高い。この状況は、単一の遮蔽オブジェクト（例えば、巨石）が全周に空きスペースがある平坦な地面上にある場合には、最も明らかである。キャプチャされた画像内において、運動中の追跡されるオブジェクトが別のオブジェクト（例えば、巨石）の位置で突然姿を消した場合、そのオブジェクトは他のオブジェクトによって遮蔽された位置に残されており、追跡されるオブジェクトは、１つ以上の可能な対比経路のうち１つに沿って出現することになるいくつかの実施形態では、追跡システム１４０は、この概念があるとして、追跡されるオブジェクトの位置の不確実性の増大を抑え込むアルゴリズムを実装するように構成されてもよい。換言すれば、追跡対象との視覚的接触が特定の位置で喪失された場合、追跡システム１４０は、対象の位置の不確実性を、最後に観察された位置と、最後に観察された軌道が与えられた１つ以上の可能な脱出経路とにまで抑え込むことができる。この概念の可能な実装には、追跡システム１４０によって、ステレオによって切り分けられた占有マップ、及び、可能な脱出経路上に粒子フィルタを用いたセグメンテーションを生成することが含まれていてもよい。
【０１７６】
無人航空機−システム例
本教示に係るＵＡＶ１００は、任意のタイプのＵＡＶとして実装されてもよい。ＵＡＶは、時にはドローンと称され、人のパイロットが搭乗していなくても操縦可能な航空機として一般に定義される。ＵＡＶは、搭載されたコンピュータプロセッサによって自律的に制御されてもよく、遠隔地に位置する人のパイロットによるリモートコントロールを介して制御されてもよい。飛行機と同様に、ＵＡＶは、揚力を得るために、推進システム（例えば、プロペラ、ジェットなど）と併せて固定された空気力学的表面を利用してもよい。あるいは、ヘリコプターと同様に、ＵＡＶは、重力を打ち消して揚力を得るために、推進システム（例えば、プロペラ、ジェットなど）を直接使用してもよい。（ヘリコプターの場合と同様の）推進力で駆動する揚力は、全ての軸に沿った制御された運動を可能にするために、例えばモバイル撮影プラットフォームとしての所定の実装において、大きな利点を提供する。
【０１７７】
マルチロータヘリコプター、特にクワッドコプターは、人気のＵＡＶ構成として現れている。クワッドコプター（クワッドロータヘリコプター又はクワッドロータとしても知られている）は、４つのロータによって浮上及び推進されるマルチロータヘリコプターである。大半のヘリコプターとは異なり、クワッドコプターは、２つの固定ピッチプロペラの２セットを使用する。第１のロータのセットは時計回りに回転し、第２のロータのセットは反時計回りに回転する。互いに反対方向に回転すると、第１のロータのセットは、他のセットの回転によって引き起こされる角トルクを打ち消すことができ、それによって飛行を安定させ得る。飛行制御は、４つの固定ピッチロータのそれぞれの角速度を変化させることによって達成される。各ロータの角速度を変化させることによって、クワッドコプターはその位置（例えば、高度、並びに、水平飛行の前後左右の調整）と向き（ピッチ（第１の横軸回りの回転）、ロール（第２の横軸回りの回転）及びヨー（縦軸回りの回転）を含む）を正確に調整し得る。例えば、４つのロータ全てが同じ角速度で回転（時計回りに２つ、反時計回りに２つ）している場合、垂直ヨー軸周りの正味の空力トルクはゼロである。４つのロータが十分な角速度で回転し、重力に等しい垂直推力を提供する場合、クワッドコプターはホバリングを維持できる。ヨーの調整は、４つのロータのサブセットの角速度を変化させ、それによって４つのロータの累積的な空気力学的トルクを不釣り合いにすることによって誘導されてもよい。同様に、ピッチ及び／又はロールの調整は、４つのロータのサブセットの角速度を変化させることによって誘導されるが、機体の一方側で揚力が増加し、機体の他方側で揚力が減少するようなバランスの取れた様式にて行われる。ホバーからの高度の調整は、４つのロータ全てにバランスの取れた変化を適用することによって誘導されてもよく、それによって垂直推力が増加又は減少され得る。前後左右の位置調整は、バランスの取れた垂直方向の推力を適用したピッチ／ロール操作の組み合わせによって誘導されてもよい。例えば、水平面上で前進するために、クワッドコプターは、ピッチ前進操縦を実行するために、４つのロータのサブセットの角速度を変化させることになる。ピッチ前進している間に、全てのロータの角速度を増加させることによって、総垂直推力が増加し得る。前方にピッチした向きのため、垂直推力操縦によって生じる加速度は、水平成分を有することとなり、それによって、機体を水平面上にて前方に加速することとなる。
【０１７８】
図２１は、いくつかの実施形態に係る、ＵＡＶ１００の一部であり得る様々な機能システムコンポーネントを含む、例示的なＵＡＶシステム２１００の図を示す。ＵＡＶシステム２１００は、１つ以上の推進システム（例えば、ロータ２１０２及び（１つ以上の）モータ２１０４）と、１つ以上の電子速度コントローラ２１０６と、飛行コントローラ２１０８と、周辺機器インタフェース２１１０と、（１つ以上の）プロセッサ２１１２と、メモリコントローラ２１１４と、メモリ２１１６（１つ以上のコンピュータ可読記憶媒体を含んでいてもよい）と、電力モジュール２１１８と、ＧＰＳモジュール２１２０と、通信インタフェース２１２２と、オーディオ回路２１２４と、加速度計２１２６（ジャイロスコープ等のサブコンポーネントを含む）と、ＩＭＵ２１２８と、近接センサ２１３０と、光学センサコントローラ２１３２及び（１つ以上の）関連する光学センサ２１３４と、モバイルデバイスインタフェースコントローラ２１３６及び（１つ以上の）関連するインタフェースデバイス２１３８と、任意の他の入力コントローラ２１４０及び（１つ以上の）入力デバイス２１４２（例えば、（１つ以上の）関連するディスプレイデバイスを備えたディスプレイコントローラ）とを含んでいてもよい。これらのコンポーネントは、図２１の矢印によって表されるように、１つ以上の通信バス又は信号線を介して通信してもよい。
【０１７９】
ＵＡＶシステム２１００は、ＵＡＶ１００の一部であり得るシステムの一例にすぎない。ＵＡＶ１００は、システム２１００に示されるよりも多い又は少ないコンポーネントを含んでいてもよく、機能ユニットとして２つ以上のコンポーネントを組み合わせてもよく、コンポーネントの異なる構成又は配置を有していてもよい。図２１に示されるシステム２１００の様々なコンポーネントのいくつかは、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの両方の組み合わせで実装されてもよく、これらは１つ以上の信号処理及び／又は特定用途向け集積回路を含んでいてもよい。また、ＵＡＶ１００には、本開示において記載される革新的な機能を実行するために、モジュール式アドオンデバイス（例えば、アウトライン２１９０内のコンポーネントを含むもの）と結合された既製のＵＡＶ（例えば、現在利用可能なリモート制御クワッドコプター）が含まれていてもよい。
【０１８０】
推進システム（例えば、コンポーネント２１０２〜２１０４を含む）は、固定ピッチロータを含んでいてもよい。推進システムはまた、可変ピッチロータ（例えば、ジンバル機構を使用する）、可変ピッチジェットエンジン、又は、力を提供する効果を有する任意の他の推進モードを含んでいてもよい。推進システムは、例えば、電子速度コントローラ２１０６を使用することによって、固定ピッチロータのそれぞれの速度を変化させるように、加えられる推力を変化させてもよい。
【０１８１】
飛行コントローラ２１０８は、入力データ（例えば、画像キャプチャデバイス２１３４からのセンサデータ、自律ナビゲーションシステム１２０からの生成された軌道、又は、任意の他の入力）を受信し、制御コマンドをＵＡＶ１００の推進システム２１０２〜２１０６及び／又は空力面（例えば、固定翼制御面）へと出力するようにデータを解釈するよう構成された、ハードウェア及び／又はソフトウェアの組み合わせを含んでいてもよい。あるいは又はこれに加えて、飛行コントローラ２１０８は、別のコンポーネント又はデバイス（例えば、プロセッサ２１１２及び／又は別個のコンピューティングデバイス）によって生成された制御コマンドを受信し、それらの制御コマンドを解釈し、制御信号を推進システム２１０２〜２１０６及び／又はＵＡＶ１００の空力面（例えば、固定翼操縦面）に対して生成するように構成されてもよい。いくつかの実施形態では、ＵＡＶ１００の前述のナビゲーションシステム１２０は、飛行コントローラ２１０８及び／又はシステム２１００の他のコンポーネントのうちの任意の１つ以上を含んでいてもよい。あるいは、図２１に示される飛行コントローラ２１０８は、例えば、図２に示す飛行コントローラ１６０と同様に、ナビゲーションシステム１２０とは別個のコンポーネントとして存在してもよい。
【０１８２】
メモリ２１１６は、高速ランダムアクセスメモリを含んでいてもよく、また、１つ以上の磁気ディスクストレージデバイス、フラッシュメモリデバイス、又は、他の不揮発性固体メモリデバイス等の不揮発性メモリも含んでいてもよい。システム２１００の他のコンポーネント（例えば、プロセッサ２１１２及び周辺機器インタフェース２１１０）によるメモリ２１１６へのアクセスは、メモリコントローラ２１１４によって制御されてもよい。
【０１８３】
周辺機器インタフェース２１１０は、システム２１００の入力及び出力周辺機器を、プロセッサ２１１２及びメモリ２１１６に結合してもよい。１つ以上のプロセッサ２１１２は、ＵＡＶ１００のための様々な機能を実施してデータを処理するために、メモリ２１１６内に格納された様々なソフトウェアプログラム及び／又は命令セットを実行又は遂行する。いくつかの実施形態では、プロセッサ２１１２は、一般的な中央処理装置（ＣＰＵ）、並列処理用途に特に適したグラフィックス処理装置（ＧＰＵ）などの特殊処理装置、又は、それらの任意の組み合わせを含んでいてもよい。いくつかの実施形態では、周辺機器インタフェース２１１０、プロセッサ２１１２及びメモリコントローラ２１１４は、単一の統合チップ上に実装されてもよい。他のいくつかの実施形態では、それらは別個のチップ上に実装されてもよい。
【０１８４】
ネットワーク通信インタフェース２１２２は、多くの場合に電磁信号の形態である通信信号の送信及び受信を促進してもよい。電磁通信信号の送信及び受信は、銅線ケーブル又は光ファイバーケーブル等の物理的媒体を介して実施されてもよく、例えば無線周波数（ＲＦ）トランシーバを介して無線で実施されてもよい。いくつかの実施形態では、ネットワーク通信インタフェースは、ＲＦ回路を含んでいてもよい。そのような実施形態では、ＲＦ回路は、電気信号を電磁信号に／から変換して、通信ネットワーク及び他の通信デバイスと電磁信号を介して通信してもよい。ＲＦ回路は、これらの機能を実行するための周知の回路を含んでいてもよく、そのような回路には、以下に限定されないが、アンテナシステム、ＲＦトランシーバ、１つ以上の増幅器、チューナー、１つ以上の発振器、デジタル信号プロセッサ、コーデックチップセット、加入者識別モジュール（ＳＩＭ）カード、メモリ等が含まれる。ＲＦ回路は、通信ネットワーク（パブリック、プライベート、ローカル及びワイドエリアを含む）を介してのデータの送受信を促進してもよい。例えば、通信は、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、又は、インターネット等のネットワークのネットワークを介して行われてもよい。通信は、有線の伝送媒体を介して（例えば、イーサネットを介して）促進されてもよく、無線で促進されてもよい。無線通信は、無線セルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）及び／又はメトロポリタンエリアネットワーク（ＭＡＮ）、並びに、他のモードの無線通信を介してもよい。無線通信は、複数の通信規格、プロトコル及び技術のうち任意のものを使用してもよく、そのような通信規格、プロトコル及び技術には、以下に限定されないが、グローバルシステムモバイルコミュニケーション（ＧＳＭ）、拡張データＧＳＭ環境（ＥＤＧＥ）、高速ダウンリンクパケットアクセス（ＨＳＤＰＡ）、広帯域符号分割多元接続（Ｗ−ＣＤＭＡ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、ワイヤレスフィデリティ（Ｗｉ−Ｆｉ）（ＩＥＥＥ  ８０２．１１ｎ及び／又はＩＥＥＥ  ８０２．１１ａｃ等）、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、又は、任意の他の適切な通信プロトコルが含まれる。
【０１８５】
スピーカ及びマイクロフォン２１５０を含むオーディオ回路２１２４は、周囲環境とＵＡＶ１００との間のオーディオインタフェースを提供してもよい。オーディオ回路２１２４は、周辺機器インタフェース２１１０からオーディオデータを受信し、オーディオデータを電気信号に変換し、電気信号をスピーカ２１５０へと送信してもよい。スピーカ２１５０は、電気信号を人が聞こえる音波へと変換してもよい。オーディオ回路２１２４はまた、マイクロ波２１５０によって音波から変換された電気信号を受信してもよい。オーディオ回路２１２４は、電気信号をオーディオデータに変換し、オーディオデータを処理のために周辺機器インタフェース２１１０へと送信してもよい。オーディオデータは、周辺機器インタフェース２１１０によって、メモリ２１１６及び／又はネットワーク通信インタフェース２１２２から引き出され及び／又は送信されてもよい。
【０１８６】
Ｉ／Ｏサブシステム２１６０は、光学センサシステム２１３４、モバイルデバイスインタフェース２１３８、及び、他の入力／制御デバイス２１４２等の、ＵＡＶ１００の入力／出力周辺機器を、周辺機器インタフェース２１１０に結合してもよい。Ｉ／Ｏサブシステム２１６０は、光センサコントローラ２１３２、モバイルデバイスインタフェースコントローラ２１３６、及び、他の入力又は制御デバイスのための（１つ以上の）他の入力コントローラ２１４０を含んでいてもよい。１つ以上の入力コントローラ２１４０は、電気信号を、他の入力又は制御デバイス２１４２から受信／へと送信する。
【０１８７】
他の入力／制御デバイス２１４２は、物理的なボタン（例えば、プッシュボタン、ロッカーボタンなど）、ダイヤル、タッチスクリーンディスプレイ、スライダースイッチ、ジョイスティック、クリックホイールなどを含んでいてもよい。仮想ボタン又はソフトボタンと、１つ以上のソフトキーボードとを実装するために、タッチスクリーンディスプレイが使用されてもよい。タッチ感応タッチスクリーンディスプレイは、ＵＡＶ１００とユーザとの間の入力インタフェース及び出力インタフェースを提供してもよい。ディスプレイコントローラは、電気信号をタッチスクリーンから受信及び／又はタッチスクリーンへと送信してもよい。タッチスクリーンは、視覚的出力をユーザに対して表示してもよい。視覚的出力は、グラフィックス、テキスト、アイコン、ビデオ及びそれらの任意の組み合わせ（まとめて「グラフィックス」と称される）を含んでいてもよい。いくつかの実施形態では、視覚的出力の一部又は全部は、ユーザインタフェースオブジェクトに対応してもよく、その詳細は以下にて記載する。
【０１８８】
タッチ感応ディスプレイシステムは、触覚及び／又は触知性接触に基づいてユーザからの入力を受容するタッチ感応表面、センサ又はセンサのセットを有していてもよい。タッチ感応ディスプレイシステム及びディスプレイコントローラ（併せて、メモリ２１１６内の任意の関連するモジュール及び／又は命令セット）は、タッチスクリーン上の接触（及び、接触についての任意の移動又は中断）を検出すると共に、検出された接触をタッチスクリーンに表示されるユーザインタフェースオブジェクト（１つ以上のソフトキー又は画像等）との対話へと変換してもよい。例示的な実施形態では、タッチスクリーンとユーザとの間の接触点は、ユーザの指に対応する。
【０１８９】
タッチスクリーンは、液晶ディスプレイ（ＬＣＤ）技術又は発光ポリマーディスプレイ（ＬＰＤ）技術を使用してもよいが、他の実施形態において、他のディスプレイ技術を使用してもよい。タッチスクリーン及びディスプレイコントローラは、現在知られている又は今後開発される複数のタッチ感知技術の任意のものを使用して、接触及びその動き又は中断を検出してもよく、そのようなタッチ感知技術には、以下に限定されないが、静電容量式、抵抗膜式、赤外線及び弾性表面波技術、並びに、タッチスクリーンとの１つ以上の接触点を決定するための他の近接センサアレイ又は他の要素が含まれる。
【０１９０】
モバイルデバイスインタフェースデバイス２１３８は、モバイルデバイスインタフェースコントローラ２１３６と併せて、ＵＡＶ１００とモバイルデバイス１０４等の他のコンピューティングデバイスとの間のデータの送信を促進してもよい。いくつかの実施形態によれば、通信インタフェース２１２２は、（例えば、データがＷｉ−Ｆｉネットワークを介して転送される場合）ＵＡＶ１００とモバイルデバイス１０４との間のデータの送信を促進してもよい。
【０１９１】
ＵＡＶシステム２１００はまた、様々なコンポーネントに電力を供給するための電力システム２１１８を含む。電力システム２１１８は、電力管理システム、１つ以上の電源（例えば、電池、交流（ＡＣ）等）、再充電システム、電力喪失検出回路、電力変換器又はインバータ、電力状態インジケータ（例えば、発光ダイオード（ＬＥＤ））、及び、コンピュータ化されたデバイスにおける電力の生成、管理及び配電に関連する任意の他のコンポーネントを含んでいてもよい。
【０１９２】
ＵＡＶシステム２１００はまた、１つ以上の画像キャプチャデバイス２１３４を含んでいてもよい。画像キャプチャデバイス２１３４は、図１に関して記載したＵＡＶ１００の画像キャプチャデバイス１１４／１１５と同じであってもよい。図２１は、Ｉ／Ｏサブシステム２１６０内の画像キャプチャコントローラ２１３２に結合された画像キャプチャデバイス２１３４を示す。画像キャプチャデバイス２１３４は、１つ以上の光学センサを含んでいてもよい。例えば、画像キャプチャデバイス２１３４は、電荷結合デバイス（ＣＣＤ）又は相補型金属酸化膜半導体（ＣＭＯＳ）フォトトランジスタを含んでいてもよい。画像キャプチャデバイス２１３４の光学センサは、１つ以上のレンズを通して投影される環境から光を受けて（光学センサとレンズとの組み合わせは、「カメラ」と称され得る）、その光を画像を表すデータへと変換する。メモリ２１１６内に配置されたイメージングモジュールと連携して、画像キャプチャデバイス２１３４は、画像（静止画像及び／又はビデオを含む）をキャプチャしてもよい。いくつかの実施形態では、画像キャプチャデバイス２１３４は、単一の固定カメラを含んでいてもよい。他の実施形態では、画像キャプチャデバイス２１４０は、単一の調整可能なカメラ（１つ以上の運動軸を備えたジンバル機構を使用して調整可能）を含んでいてもよい。いくつかの実施形態では、画像キャプチャデバイス２１３４は、より広いＦＯＶを提供する広角レンズを備えたカメラを含んでいてもよい。いくつかの実施形態では、画像キャプチャデバイス２１３４は、全方向に最大３６０度の視野を提供する複数のカメラのアレイを含んでいてもよい。いくつかの実施形態では、画像キャプチャデバイス２１３４は、立体視を提供するために互いに隣り合って配置された（本明細書に記載の任意のタイプの）２つ以上のカメラを含んでいてもよい。いくつかの実施形態では、画像キャプチャデバイス２１３４は、上述のような任意の組み合わせの複数のカメラを含んでいてもよい。いくつかの実施形態では、画像キャプチャデバイス２１３４のカメラは、少なくとも２つのカメラにＵＡＶ１００回りの複数の角度で重なり合うＦＯＶが提供され、それによってＵＡＶ１００回りの複数の角度での立体（すなわち、３Ｄ）画像／ビデオのキャプチャ及び深度回復を（例えば、コンピュータビジョンアルゴリズムを使用して）可能にするように配置されてもよい。例えば、ＵＡＶ１００は、ＵＡＶ１００回りの複数の角度にて立体視ビューを提供するようにそれぞれ配置された２つのカメラの４セットを含んでいてもよい。いくつかの実施形態では、ＵＡＶ１００は、対象の画像キャプチャ専用であるいくつかのカメラと、（例えば、視覚慣性オドメトリによる）視覚ナビゲーション用の画像キャプチャ専用である他のカメラとを含んでいてもよい。
【０１９３】
ＵＡＶシステム２１００はまた、１つ以上の近接センサ２１３０を含んでいてもよい。図２１は、周辺機器インタフェース２１１０に結合された近接センサ２１３０を示す。あるいは、近接センサ２１３０は、Ｉ／Ｏサブシステム２１６０内の入力コントローラ２１４０に結合されてもよい。近接センサ２１３０は、一般に、近接検出、距離測定、ターゲット識別等のためのリモートセンシング技術を含んでいてもよい。例えば、近接センサ２１３０は、レーダ、ソナー及びＬＩＤＡＲを含んでいてもよい。
【０１９４】
ＵＡＶシステム２１００はまた、１つ以上の加速度計２１２６を含んでいてもよい。図２１は、周辺機器インタフェース２１１０に結合された加速度計２１２６を示す。あるいは、加速度計２１２６は、Ｉ／Ｏサブシステム２１６０内の入力コントローラ２１４０に結合されてもよい。
【０１９５】
ＵＡＶシステム２１００は、１つ以上のＩＭＵ２１２８を含んでいてもよい。ＩＭＵ２１２８は、ジャイロスコープと加速度計（例えば、加速度計２１２６）との組み合わせを使用して、ＵＡＶの速度、加速度、向き及び重力を測定及び報告する。
【０１９６】
ＵＡＶシステム２１００は、全地球測位システム（ＧＰＳ）受信機２１２０を含んでいてもよい。図２１は、周辺機器インタフェース２１１０に結合されたＧＰＳ受信機２１２０を示す。あるいは、ＧＰＳ受信機２１２０は、Ｉ／Ｏサブシステム２１６０内の入力コントローラ２１４０に結合されてもよい。ＧＰＳ受信機２１２０は、地球の周りの軌道にあるＧＰＳ衛星から信号を受信し、（ＧＰＳソフトウェアの使用により）ＧＰＳ衛星のそれぞれまでの距離を計算して、それによりＵＡＶ１００の現在の全地球的位置を正確に示してもよい。
【０１９７】
いくつかの実施形態では、メモリ２１１６内に格納されたソフトウェアコンポーネントは、オペレーティングシステム、通信モジュール（又は命令のセット）、飛行制御モジュール（又は命令のセット）、位置特定モジュール（又は命令のセット）、コンピュータビジョンモジュール（又は命令のセット）、グラフィックスモジュール（又は命令のセット）及び他のアプリケーション（又は命令のセット）を含んでいてもよい。明確にするために、１つ以上のモジュール及び／又はアプリケーションは、図２１に示されていない場合がある。
【０１９８】
オペレーティングシステム（例えば、ＤａｒｗｉｎTM、ＲＴＸＣ、ＬｉｎｕｘTM、ＵｎｉｘTM、ＡｐｐｌｅTM  ＯＳ  Ｘ、Ｍｉｃｒｏｓｏｆｔ  ＷｉｎｄｏｗｓTM、又は、ＶｘＷｏｒｋｓTM等の組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、ストレージデバイス制御、電源管理等）を制御及び管理するための様々なソフトウェアコンポーネント及び／又はドライバを含んでおり、様々なハードウェアとソフトウェアコンポーネントとの間の通信を促進する。
【０１９９】
通信モジュールは、１つ以上の外部ポート２１４４を介して他のデバイスとの通信を促進してもよく、また、ネットワーク通信インタフェース２１２２を介してデータ送信を取り扱うための様々なソフトウェアコンポーネントを含んでいてもよい。外部ポート２１４４（例えば、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ等）は、他のデバイスに直接、又は、ネットワーク（例えば、インターネット、ワイヤレスＬＡＮ等）を介して間接的に結合するように適合されてもよい。
【０２００】
グラフィックスモジュールは、グラフィックスデータを処理、レンダリング及び表示するための様々なソフトウェアコンポーネントを含んでいてもよい。本明細書で使用される場合、用語「グラフィックス」は、ユーザに対して表示可能な任意のオブジェクトを含んでいてもよく、そのようなオブジェクトには、テキスト、静止画像、ビデオ、アニメーション、アイコン（例えば、ソフトキーを含むユーザインタフェースオブジェクト）及びそれらに類するものが含まれる。グラフィックスモジュールは、グラフィックス処理ユニット（ＧＰＵ）２１１２と連携して、リアルタイム又はほぼリアルタイムに、光学センサ２１３４及び／又は近接センサ２１３０によってキャプチャされたグラフィックスデータを処理してもよい。
【０２０１】
コンピュータビジョンモジュールは、グラフィックスモジュールのコンポーネントであってもよく、グラフィックスデータの分析及び認識を提供する。例えば、ＵＡＶ１００が飛行している間、コンピュータビジョンモジュールは、グラフィックスモジュール（別々である場合）、ＧＰＵ２１１２、画像キャプチャデバイス２１３４及び／又は近接センサ２１３０と併せて、地面上に位置するオブジェクトのキャプチャされた画像を認識及び追跡してもよい。コンピュータビジョンモジュールはさらに、ＵＡＶ１００の位置及び／又は方向を更新すると共にコース修正を行い、それによって計画軌道に沿って物理環境中を飛行するために、位置特定／ナビゲーションモジュール及び飛行制御モジュールと通信してもよい。
【０２０２】
位置特定／ナビゲーションモジュールは、ＵＡＶ１００の位置及び／又は向きを決定し、この情報を、様々なモジュール及びアプリケーションで使用するために（例えば、飛行コントローラ２１０８が使用するコマンドを生成するために、フライトコントロールモジュールへと）提供してもよい。
【０２０３】
画像キャプチャデバイス２１３４は、画像キャプチャデバイスコントローラ２１３２及びグラフィックスモジュールと連携して、画像（静止画像及びビデオを含む）をキャプチャしてそれらをメモリ２１１６内に格納するために使用されてもよい。
【０２０４】
上記で識別されたモジュール及びアプリケーションは、上述の１つ以上の機能を実行するための命令のセットにそれぞれ対応する。これらのモジュール（すなわち、命令のセット）は、別個のソフトウェアプログラム、手順又はモジュールとして実装する必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において組み合わせられもよく、別の方法で再構成されてもよい。いくつかの実施形態では、メモリ２１１６は、上記で識別されたモジュール及びデータ構造のサブセットを格納してもよい。さらに、メモリ２１１６は、上述されていない追加のモジュール及びデータ構造を格納してもよい。
【０２０５】
例示的なコンピュータ処理システム
図２２は、本開示に記載の少なくともいくつかの動作が実装され得る、例示的なコンピュータ処理システム２２００を示すブロック図である。例示的なコンピュータ処理システム２２００は、任意の前述のデバイスの一部であってもよく、そのようなデバイスには、以下に限定されないが、ＵＡＶ１００及びモバイルデバイス１０４が含まれる。処理システム２２００は、１つ以上の中央処理装置（「プロセッサ」）２２０２、メインメモリ２２０６、不揮発性メモリ２２１０、ネットワークアダプタ２２１２（例えば、ネットワークインタフェース）、ディスプレイ２２１８、入力／出力デバイス２２２０、制御デバイス２２２２（例えば、キーボード及びポインティングデバイス）、記憶媒体２２２６を含むドライブユニット２２２４、及び、バス２２１６に通信可能に接続された信号生成デバイス２２３０を含んでいてもよい。バス２２１６は、適切なブリッジ、アダプタ又はコントローラによって接続された、任意の１つ以上の別個の物理バス、ポイントツーポイント接続又はその両方を表す抽象概念として示されている。したがって、バス２２１６は、例えば、システムバス、周辺機器相互接続（ＰＣＩ）バス又はＰＣＩ−Ｅｘｐｒｅｓｓバス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ又は業界標準アーキテクチャ（ＩＳＡ）バス、小型コンピュータシステムインタフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ＩＩＣ（Ｉ２Ｃ）バス、又は、Institute of Electrical and Electronics Engineers（ＩＥＥＥ）標準１３９４バス（「Ｆｉｒｅｗｉｒｅ」とも称される）を含み得る。バスは、スイッチングファブリック、（１つ以上の）ネットワークポート、（１つ以上の）ツールポート等のネットワークアプライアンスのコンポーネント間で（全二重線又は半二重線を介して）データパケットを中継することもできる。
【０２０６】
メインメモリ２２０６、不揮発性メモリ２２１０、及び記憶媒体２２２６（「機械可読媒体」とも称される）は、単一の媒体として示されているが、用語「機械可読媒体」及び「記憶媒体」は、１つ以上のセットの命令２２２８を格納する単一の媒体又は複数の媒体（例えば、集中型若しくは分散型データベース、並びに／又は、関連するキャッシュ及びサーバ）を含むと解釈されるべきである。「機械可読媒体」及び「記憶媒体」という用語はまた、コンピューティングシステムによって実行されるための命令のセットを格納、符号化又は伝達可能であって、本明細書に開示の実施形態の方法論の任意の１つ以上をコンピューティングシステムに実行させる、任意の媒体を含むと解釈されるべきである。
【０２０７】
一般に、本開示の実施形態を実装するために実行されるルーチンは、オペレーティングシステムの一部として実装されてもよく、特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、又は、「コンピュータプログラム」と称される命令のシーケンスとして実装されてもよい。コンピュータプログラムは、典型的には、コンピュータの様々なメモリ及びストレージデバイス内に様々な時点にて設定された１つ以上の命令（例えば、命令２２０４，２２０８，２２２８）を含み、１つ以上の処理ユニット又はプロセッサ２２０２によって読み出されて実行された際に、本開示の様々な態様を含む要素を実行するための操作を処理システム２２００に実行させる。
【０２０８】
さらに、実施形態は、完全に機能するコンピュータ及びコンピュータシステムの文脈で記載されているが、当業者は、様々な実施形態がプログラム製品として様々な形態で配布可能であること、及び、実際に配布を行うために使用されるマシン又はコンピュータ可読媒体の特定のタイプに関わらず、本開示が等しく適用されることについて理解するであろう。
【０２０９】
機械可読記憶媒体、機械可読媒体又はコンピュータ可読（記憶）媒体のさらなる例としては、揮発性及び不揮発性メモリデバイス２２１０、フロッピー及び他のリムーバブルディスク、ハードディスクドライブ、光ディスク（例えば、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ））等の記録可能タイプの媒体、並びに、デジタル及びアナログ通信リンク等の伝送タイプの媒体が含まれる。
【０２１０】
ネットワークアダプタ２２１２は、コンピュータ処理システム２２００及び外部エンティティによってサポートされる任意の既知の及び／又は従来の通信プロトコルを介して、ネットワーク２２１４内のデータを、ネットワークアプライアンス等のコンピュータ処理システム２２００の外部にあるエンティティと仲介することを、コンピュータ処理システム２２００が行えるようにする。ネットワークアダプタ２２１２は、ネットワークアダプタカード、無線ネットワークインタフェースカード、ルータ、アクセスポイント、無線ルータ、スイッチ、マルチレイヤスイッチ、プロトコルコンバータ、ゲートウェイ、ブリッジ、ブリッジルータ、ハブ、デジタルメディアレシーバ、及び／又は、リピータの１つ以上を含んでいてもよい。
【０２１１】
ネットワークアダプタ２２１２は、ファイアウォールを含むことができ、いくつかの実施形態では、ファイアウォールは、コンピュータネットワーク内のデータへのアクセス／プロキシの許可を統御及び／又は管理すると共に、異なるマシン及び／又はアプリケーション間の信頼レベルの変化を追跡することが可能である。ファイアウォールは、特定のマシンとアプリケーションとのセット、マシンとマシンとのセット、及び／又は、アプリケーションとアプリケーションとのセットの間における、既定のアクセス権のセットを行使することが可能な（例えば、これらの様々なエンティティ間におけるトラフィック及びリソース共有のフローを調整することが可能な）、ハードウェア及び／又はソフトウェアコンポーネントの任意の組み合わせを有する任意の数のモジュールであり得る。ファイアウォールは、アクセス制御リストをさらに管理及び／又はアクセス制御リストにアクセスしてもよく、該アクセス制御リストには、例えば、個人、マシン及び／又はアプリケーションによるオブジェクトのアクセス権及び操作権、並びに、許可権が有効である状況を含む許可が詳述されている。
【０２１２】
上記のように、本明細書にて提示の技術は、例えば、ソフトウェア及び／又はファームウェアによってプログラムされたプログラマブル回路（例えば、１つ以上のマイクロプロセッサ）、完全に専用のハードワイヤード（すなわち、プログラム可能でない）回路、又は、それらの組み合わせ若しくはそのような形式によって実装されてもよい。専用の回路は、例えば、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の形式であり得る。
【０２１３】
なお、任意の上述の実施形態は、上記にて別段の記載がない限り、又は、任意のそのような実施形態が機能及び／又は構造において相互に排他的であると考えられるものでない限りにおいて、別の実施形態と組み合わせられ得ることに留意されたい。
【０２１４】
本発明は特定の例示的な実施形態を参照して記載されているが、本発明は記載の実施形態には限定されず、添付の特許請求の範囲の趣旨及び範囲内で修正及び変更を加えて実施され得ることが認識されよう。したがって、明細書及び図面は、限定的な意味ではなく、例示的な意味において考慮されるべきである。
【図１】
2021513714.tif 000003
【図２】
2021513714.tif 000004
【図３Ａ】
2021513714.tif 000005
【図３Ｂ】
2021513714.tif 000006
【図４】
2021513714.tif 000007
【図５Ａ】
2021513714.tif 000008
【図５Ｂ】
2021513714.tif 000009
【図６】
2021513714.tif 000010
【図７Ａ】
2021513714.tif 000011
【図７Ｂ】
2021513714.tif 000012
【図８Ａ】
2021513714.tif 000013
【図８Ｂ】
2021513714.tif 000014
【図９】
2021513714.tif 000015
【図１０】
2021513714.tif 000016
【図１１Ａ】
2021513714.tif 000017
【図１１Ｂ】
2021513714.tif 000018
【図１２】
2021513714.tif 000019
【図１３】
2021513714.tif 000020
【図１４】
2021513714.tif 000021
【図１５】
2021513714.tif 000022
2021513714.tif 000023
【図１６】
2021513714.tif 000024
【図１７】
2021513714.tif 000025
【図１８】
2021513714.tif 000026
【図１９】
2021513714.tif 000027
【図２０】
2021513714.tif 000028
【図２１】
2021513714.tif 000029
【図２２】
2021513714.tif 000030
【国際調査報告】
2021513714.tif 000031