(57)【要約】  ロボットのための視覚ナビゲーションの方法は、３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合することを含む。本方法は、また、３Ｄマップ、位置推定情報、および／またはユーザ入力に基づいて、運動計画を行うことも含む。運動計画は、ユーザ入力を介して受信された軌跡および／または速度が衝突を引き起こすと予測されるとき、ユーザ入力を無効にする。
2019500693.tif 000002
【特許請求の範囲】
【請求項１】
ロボットのための視覚ナビゲーションの方法であって、
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合することと、
前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をすることと、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を備える、方法。
【請求項２】
複数のカメラから前記深度マップを決定することと、
複数のセンサから前記位置推定情報を取得することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記位置推定情報は、画像情報（image information）、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項２に記載の方法。
【請求項４】
ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得することをさらに備える、請求項３に記載の方法。
【請求項５】
ステレオカメラから取得された測定値に基づいて前記深度マップを生成することをさらに備える、請求項１に記載の方法。
【請求項６】
前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択することをさらに備える、請求項１に記載の方法。
【請求項７】
前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にすることをさらに備える、請求項１に記載の方法。
【請求項８】
前記運動計画をすることは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択することと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定することと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定することと
を備える、請求項１に記載の方法。
【請求項９】
前記運動計画をすることは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更することをさらに備える、請求項８に記載の方法。
【請求項１０】
前記運動計画をすることは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択することと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定することと
をさらに備える、請求項８に記載の方法。
【請求項１１】
メモリと、
前記メモリに結合された少なくとも１つのプロセッサと
を備え、前記少なくとも１つのプロセッサが、
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合することと、
前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をすることと、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を行うように構成された、装置。
【請求項１２】
前記少なくとも１つのプロセッサは、
複数のカメラから前記深度マップを決定することと、
複数のセンサから前記位置推定情報を取得することと
をさらに行うように構成された、請求項１１に記載の装置。
【請求項１３】
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項１２に記載の装置。
【請求項１４】
前記少なくとも１つのプロセッサは、ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するようにさらに構成された、請求項１３に記載の装置。
【請求項１５】
前記少なくとも１つのプロセッサは、ステレオカメラから取得された測定値に基づいて前記深度マップを生成するようにさらに構成された、請求項１１に記載の装置。
【請求項１６】
前記少なくとも１つのプロセッサは、前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するようにさらに構成された、請求項１１に記載の装置。
【請求項１７】
前記少なくとも１つのプロセッサは、前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にするようにさらに構成された、請求項１１に記載の装置。
【請求項１８】
前記少なくとも１つのプロセッサは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択することと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定することと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定することと
を行うようにさらに構成された、請求項１１に記載の装置。
【請求項１９】
前記少なくとも１つのプロセッサは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するようにさらに構成された、請求項１８に記載の装置。
【請求項２０】
前記少なくとも１つのプロセッサは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択することと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定することと
を行うようにさらに構成された、請求項１８に記載の装置。
【請求項２１】
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合するための手段と、
前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をするための手段と、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を備える、装置。
【請求項２２】
複数のカメラから前記深度マップを決定するための手段と、
複数のセンサから前記位置推定情報を取得するための手段と
をさらに備える、請求項２１に記載の装置。
【請求項２３】
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項２２に記載の装置。
【請求項２４】
ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するための手段をさらに備える、請求項２３に記載の装置。
【請求項２５】
ステレオカメラから取得された測定値に基づいて前記深度マップを生成するための手段をさらに備える、請求項２１に記載の装置。
【請求項２６】
前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するための手段をさらに備える、請求項２１に記載の装置。
【請求項２７】
前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にするための手段をさらに備える、請求項２１に記載の装置。
【請求項２８】
前記運動計画をするための手段は、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択するための手段と、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定するための手段と、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定するための手段と
をさらに備える、請求項２１に記載の装置。
【請求項２９】
前記運動計画をするための手段は、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するための手段をさらに備える、請求項２８に記載の装置。
【請求項３０】
前記運動計画をするための手段は、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択するための手段と、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定するための手段と
をさらに備える、請求項２８に記載の装置。
【請求項３１】
ロボットに視覚ナビゲーションを提供するためのプログラムコードを記録した非一時的なコンピュータ可読媒体であって、前記プログラムコードは、プロセッサによって実行され、
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合するためのプログラムコードと、
前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をするためのプログラムコードと、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を備える、非一時的なコンピュータ可読媒体。
【請求項３２】
前記プログラムコードは、
複数のカメラから前記深度マップを決定するためのプログラムコードと、
複数のセンサから前記位置推定情報を取得するためのプログラムコードと
をさらに備える、請求項３１に記載の非一時的なコンピュータ可読媒体。
【請求項３３】
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項３２に記載の非一時的なコンピュータ可読媒体。
【請求項３４】
前記プログラムコードは、ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するためのプログラムコードをさらに備える、請求項３３に記載の非一時的なコンピュータ可読媒体。
【請求項３５】
前記プログラムコードは、ステレオカメラから取得された測定値に基づいて前記深度マップを生成するためのプログラムコードをさらに備える、請求項３１に記載の非一時的なコンピュータ可読媒体。
【請求項３６】
前記プログラムコードは、前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するためのプログラムコードをさらに備える、請求項３１に記載の非一時的なコンピュータ可読媒体。
【請求項３７】
前記運動計画をするためのプログラムコードは、前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されると、前記ユーザ入力を無効にするためのプログラムコードをさらに備える、請求項３１に記載の非一時的なコンピュータ可読媒体。
【請求項３８】
前記運動計画をするためのプログラムコードは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択するためのプログラムコードと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定するためのプログラムコードと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定するためのプログラムコードと
をさらに備える、請求項３１に記載の非一時的なコンピュータ可読媒体。
【請求項３９】
前記運動計画をするためのプログラムコードは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するためのプログラムコードをさらに備える、請求項３８に記載の非一時的なコンピュータ可読媒体。
【請求項４０】
前記運動計画をするためのプログラムコードは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択するためのプログラムコードと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定するためのプログラムコードと
をさらに備える、請求項３８に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]  本願は、米国特許法第１１９条（ｅ）項に基づいて、２０１５年１２月１５日出願の「AUTONOMOUS VISUAL NAVIGATION」と題する米国仮特許出願第６２／２６７，８８６号の利益を主張し、その開示は、その全体が参照によって本明細書に明確に組み込まれている。
【技術分野】
【０００２】
[0002]  本開示のある特定の態様は、概して、ロボット工学（robotics）に関し、より具体的には、組み込まれた視覚ベース（vision-based）の位置推定（localization）、マッピング（mapping）、および計画（planning）に関する。
【背景技術】
【０００３】
[0003]  ロボット（robot）は、高い自律度（high degree of autonomy）で挙動（behavior）またはタスク（task）を行うように設計され得る。ロボットは、様々なタスクを行うための異なるモジュールおよびコンポーネントを使用し得る。例えば、ロボットは、位置推定、マッピング、および計画のための異なるコンポーネントを有し得る。位置推定は、ロボットがどこに位置するかを決定するという課題を解決することに向けられている。ロボットがその環境内のどこに位置しているかを理解するために、ロボットは、そのセンサ（sensor）から入力を受信する。
【０００４】
[0004]  マッピングは、環境（environment）の表現を構築することに向けられている。例えば、マッピングは、環境のどの部分が占有されており、どの部分がフリースペースであるかを決定するために使用される。さらに、マッピングは、ロボットが障害物（obstacle）と衝突するのを防ぎ得る。
【０００５】
[0005]  計画は、ロボットが環境のレイアウトを知った後にどのようにタスクを行うべきか、およびそれが地点（point）Ａから地点Ｂにどのように移動することになるか、を決定することに向けられている。すなわち、いくつかのケースでは、現在位置から目標（target）に動くより前に、計画段階中に評価された複数の候補軌跡（candidate trajectory）から最低コストでの目標までの軌跡（trajectory）（例えば、経路（path））を決定することが望ましい。
【発明の概要】
【０００６】
[0006]  本開示の１つの態様において、ロボットのための視覚ナビゲーション（visual navigation）の方法が開示される。本方法は、３次元（３Ｄ）マップ（three-dimensional (3D) map）を生成するように深度マップ（depth map）を位置推定情報（localization information）と統合すること（integrating）を含む。本方法はまた、前記３Ｄマップ、前記位置推定情報、またはユーザ入力（user input）に基づいて、運動計画（motion planning）を行うことを含む。前記運動計画は、前記ユーザ入力が衝突(collision)を引き起こすと予測されるとき、前記ユーザ入力を無効にする（override）。
【０００７】
[0007]  本開示の別の態様は、３次元マップを生成するように深度マップを位置推定情報と統合するための手段を含む装置（apparatus）に向けられている。本装置はまた、前記３Ｄマップ、前記位置推定情報、またはユーザ入力に基づいて、運動計画をするための手段を含む。前記運動計画は、前記ユーザ入力が衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にする。
【０００８】
[0008]  本開示の別の態様において、非一時的プログラムコードを記録した非一時的コンピュータ可読媒体が開示される。ロボットのための視覚ナビゲーションのためのプログラムコード（program code）がプロセッサ（processor）によって実行され、３次元マップを生成するように深度マップを位置推定情報と統合するためのプログラムコードを含む。前記プログラムコードはまた、前記３Ｄマップ、前記位置推定情報、またはユーザ入力に基づいて、運動計画をするためのプログラムコードを含む。前記運動計画は、前記ユーザ入力が衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にする。
【０００９】
[0009]  本開示の別の態様は、メモリユニット（memory unit）と、前記メモリユニットに結合された１つまたは複数のプロセッサとを有する装置に向けられている。前記プロセッサ（単数または複数）は、３次元マップを生成するように深度マップを位置推定情報と統合するように構成される。前記プロセッサ（単数または複数）はまた、前記３Ｄマップ、前記位置推定情報、またはユーザ入力に基づいて、運動計画をするように構成される。前記運動計画は、前記ユーザ入力が衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にする。
【００１０】
[0010]  本開示の追加の特徴および利点が以下に説明される。本開示が、本開示と同様の目的を遂行するための他の構成を修正または設計するための基礎として容易に利用され得ることが、当業者によって認識されるべきである。そのような同等の構成が、添付された特許請求の範囲に記載されている本開示の教示から逸脱しないこともまた、当業者によって理解されるべきである。本開示の特徴であると考えられる新規の特徴は、その編成（organization）および動作（operation）の方法の両方について、さらなる目的および利点と共に、添付の図面と関連して考慮されると、以下の説明からより良く理解されるであろう。しかしながら、図面の各々は例示および説明の目的のためだけに提供されており、本開示の限定の定義として意図されたものではないことが明確に理解されるべきである。
【００１１】
[0011]  同様の参照文字が全体を通して対応して同一である図面と併せて考慮されると、本開示の特徴、性質、および利点は、以下に記載されている詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]  本開示のある特定の態様にしたがった、汎用プロセッサを含む、システムオンチップ（ＳＯＣ）を使用する自律視覚ナビゲーション（autonomous visual navigation）の例となるインプリメンテーションを例示する図。
【図２】[0013]  本開示の態様にしたがった、システムの例となるインプリメンテーションを例示する図。
【図３】[0014]  実例的な装置における異なるモジュール／手段／コンポーネントを例示するブロック図。
【図４】[0015]  本開示の態様による、ロケーションモジュール（location module）を例示するブロック図。
【図５】[0016]  本開示の態様による、ステレオビジョンカメラ（stereo-vision cameras）の例を例示する図。
【図６Ａ】[0017]  本開示の態様による、ある環境におけるロボットの一例を例示する図。
【図６Ｂ】本開示の態様による、ある環境におけるロボットの一例を例示する図。
【図６Ｃ】本開示の態様による、ある環境におけるロボットの一例を例示する図。
【図６Ｄ】本開示の態様による、ある環境におけるロボットの一例を例示する図。
【図６Ｅ】本開示の態様による、ある環境におけるロボットの一例を例示する図。
【図７】本開示の態様による、ある環境におけるロボットの一例を例示する図。
【図８】[0018]  実例的な装置における個別のモジュール／手段／コンポーネントを例示するブロック図。
【図９】[0019]  本開示の態様による、ロボットによる自律視覚ナビゲーションのための方法についてのフロー図を例示する図。
【図１０】[0020]  本開示の態様による、運動計画のための方法についてのフロー図を例示する図。
【詳細な説明】
【００１３】
[0021]  添付図面に関連して以下に述べられている詳細な説明は、様々な構成の説明として意図されており、本明細書で説明されている概念が実施されることができるのがこれら構成のみであることを表すように意図されたものではない。詳細な説明は、様々な概念の完全な理解を提供する目的で特定の詳細を含む。しかしながら、これらの概念がこれらの特定の詳細なしに実施され得ることが当業者には明らかになるであろう。いくつかの事例では、周知の構造およびコンポーネントが、そのような概念を不明瞭にすることを避けるためにブロック図の形態で示されている。
【００１４】
[0022]  本教示に基づいて、当業者は、本開示の範囲が、本開示の他の任意の態様から独立してインプリメントされようと組み合わされようと、本開示の任意の態様をカバーするように意図されていることを認識するべきである。例えば、述べられている任意の数の態様を使用して、装置がインプリメントされることができる、または方法が実施されることができる。加えて、本開示の範囲は、述べられている本開示の様々な態様に加えた、他の構造物、機能性、またはそれら態様以外の構造物および機能性を使用して実施される、そのような装置または方法をカバーするように意図されている。開示されている本開示の任意の態様が、請求項の１つまたは複数の要素によって具現化され得ることが理解されるべきである。
【００１５】
[0023]  「実例的な（exemplary）」という用語は、本明細書では、「例、事例、または例示としての役割を果たす」という意味で使用されている。「実例的な」ものとして、本明細書で説明されている任意の態様は、必ずしも他の態様に対して好ましいまたは有利なものとして解釈されるべきではない。
【００１６】
[0024]  特定の態様が本明細書で説明されているが、これらの態様の多くの変形および交換が、本開示の範囲内に入る。好ましい態様のいくつかの恩恵および利点が記述されているが、本開示の範囲は、特定の恩恵、使用法、または目的に限定されるように意図されたものではない。むしろ、本開示の態様は、異なる技術、システム構成、ネットワーク、およびプロトコルに幅広く適用可能であることが意図されており、そのうちのいくつかは、図面において、および好ましい態様の下記の説明において例として例示されている。詳細な説明および図面は、限定ではなくむしろ単に本開示を例示するものであり、本開示の範囲は、添付の特許請求の範囲およびその同等物によって定義されている。
【００１７】
[0025]  本開示の態様は、位置推定マッピングと運動計画を組み合わせる統合的解決法（integrated solution）に向けられている。統合的解決法は、深度マップおよび位置推定情報に基づいて運動計画を達成する。視覚慣性オドメータ（visual-inertial odometer）のような位置推定モジュール（localization module）が位置推定のために使用され得る。障害物のマッピングは、連続的なマルチビュー深度測定（successive, multi-view depth measurements）のボリュメトリック統合（volumetric integration）によって達成され得る。計画は、高速の再計画（re-planning）と組み合わされたサンプリングベースの幾何学的な計画によって達成され得る。
【００１８】
[0026]  手動または自律のいずれかで制御され得る、ロボットのようなシステムの場合、統合された深度マップに基づいてロボットの運動を計画することが望ましい。さらに、運動計画は、ユーザ入力を無効にすることを含み得る。
【００１９】
[0027]  追加的に、ロボットを、手動（例えば、スティック制御（stick control））および自律（例えば、ウェイポイント（waypoint）制御）の両方で安全に操縦（pilot）することが望ましい。操作者はさらに、手動動作（manual operation）中に収集された情報を自律動作（autonomous operation）に適用すること、およびその逆も同様に行うことを望む。さらに、計画は、手動モード（manual mode）および自律モード（autonomous mode）の両方で、ロボットが障害物へと衝突するのを防ぐように指定され得る。計画はまた、ロボットが、手動モードまたは自律モードのいずれかで動作（operate）しているときに、最低コストのルート（lowest cost route）を計画するようにも指定され得る。
【００２０】
[0028]  さらに、ロボットは、それ自身の位置推定をし得、その結果、ロボットは位置推定のために外部システムまたは信号（例えば、グローバル測位システム（global positioning system）およびビーコン）に頼らない。１つの構成において、ロボットは、光およびエネルギー使用を向上させるセンサを含む。
【００２１】
[0029]  本開示の態様は、組み込まれた視覚ベースの位置推定、マッピング、および計画を有するロボットに向けられており、その結果、ロボットは、目標ロケーションまで運動計画をすることができる。１つの構成において、運動計画は、ユーザ入力を無効にする。
【００２２】
[0030]  図１は、本開示のある特定の態様にしたがった、汎用プロセッサ（ＣＰＵ）またはマルチコア汎用プロセッサ（ＣＰＵ）１０２を含み得る、システムオンチップ（ＳＯＣ）１００を使用する、ロボットによる前述の運動計画の方法の例となるインプリメンテーションを例示している。変数（例えば、ニューラル信号（neural signal）およびシナプス荷重（synaptic weight））、計算デバイス（例えば、重みを有するニューラルネットワーク）に関連付けられたシステムパラメータ、遅延、周波数ビン情報（frequency bin information）、およびタスク情報が、ニューラル処理ユニット（ＮＰＵ：neural processing unit)１０８に関連付けられたメモリブロックに、ＣＰＵ１０２に関連付けられたメモリブロックに、グラフィック処理ユニット（ＧＰＵ：graphics processing unit)１０４に関連付けられたメモリブロックに、デジタルシグナルプロセッサ（ＤＳＰ：digital signal processor）１０６に関連付けられたメモリブロックに、専用のメモリブロック１１８に、記憶され得るか、または複数のブロックにまたがって分散し得る。汎用プロセッサ１０２において実行される命令は、ＣＰＵ１０２に関連付けられたプログラムメモリからロードされ得るか、または専用のメモリブロック１１８からロードされ得る。
【００２３】
[0031]  ＳＯＣ１００はまた、ＧＰＵ１０４と、ＤＳＰ１０６と、第４世代ロングタームエボリューション（４Ｇ ＬＴＥ（登録商標））接続性、アンライセンスＷｉ−Ｆｉ接続性、ＵＳＢ接続性、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続性、および同様のものを含み得る接続性ブロック（connectivity block）１１０と、例えば、ジェスチャを検出および認識し得るマルチメディアプロセッサ（multimedia processor）１１２とのような、特定の機能に合うようにされた追加の処理ブロックを含み得る。１つのインプリメンテーションにおいて、ＮＰＵは、ＣＰＵ、ＤＳＰ、および／またはＧＰＵにおいてインプリメントされる。ＳＯＣ１００はまた、センサプロセッサ１１４、画像信号プロセッサ（ＩＳＰ：image signal processor）、および／またはグローバル測位システムを含み得るナビゲーション（navigation）１２０も含み得る。
【００２４】
[0032]  ＳＯＣ１００は、ＡＲＭ命令セットに基づき得る。本開示の一態様において、汎用プロセッサ１０２へとロードされる命令は、ロケーションについての占有レベルの確率分布関数（ＰＤＦ：probability distribution function）を決定するためのコードを備え得る。汎用プロセッサ１０２へとロードされる命令はまた、３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合するためのコードも備え得る。汎用プロセッサ１０２へとロードされる命令はまた、３Ｄマップ、位置推定情報、および／またはユーザ入力に基づいて運動（motion）を計画するためのコードも備え得る。１つの構成において、運動計画は、ユーザ入力が衝突を引き起こすと予測されるときは、ユーザ入力を無効にする。
【００２５】
[0033]  図２は、本開示のある特定の態様にしたがった、システム２００の例となるインプリメンテーションを例示している。図２に例示されているように、システム２００は、本明細書で説明されている方法の様々な動作（operation）を行うことができる複数のローカル処理ユニット（local processing units）２０２を有し得る。各ローカル処理ユニット２０２は、ニューラルネットワーク（neural network）のパラメータを記憶することができるローカルパラメータメモリ（local parameter memory）２０６およびローカル状態メモリ（local state memory）２０４を備え得る。加えて、ローカル処理ユニット２０２は、ローカルモデルプログラムを記憶するためのローカル（ニューロン）モデルプログラム（ＬＭＰ：local (neuron) model program）メモリ２０８と、ローカル学習プログラム（ＬＬＰ：local learning program）を記憶するためのローカル学習プログラムメモリ２１０と、ローカル接続メモリ（local connection memory）２１２とを有し得る。さらに、図２に例示されているように、各ローカル処理ユニット２０２は、ローカル処理ユニットのローカルメモリのための構成を提供するための構成プロセッサユニット２１４、およびローカル処理ユニット２０２間のルーティングを提供するルーティング接続処理ユニット（routing connection processing unit）２１６と、インターフェースをとり得る。
【００２６】
[0034]  １つの構成において、ナビゲーションモデルは、３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合することと、３Ｄマップ、位置推定情報、および／またはユーザ入力に基づいて運動計画をすることとを行うために構成される。１つの態様において、前述の手段は、記載された機能を行うように構成された、汎用プロセッサ１０２、汎用プロセッサ１０２に関連付けられたプログラムメモリ、メモリブロック１１８、ローカル処理ユニット２０２、およびまたはルーティング接続処理ユニット２１６であり得る。別の構成では、前述の手段は、これら前述の手段によって記載された機能を行うように構成された任意のモジュールまたは任意の装置であり得る。
【００２７】
[0035]  本開示のある特定の態様によると、各ローカル処理ユニット２０２は、モデルの１つまたは複数の所望の機能的特徴に基づいてモデルのパラメータを決定することと、決定されたパラメータがさらに適応、調整、および更新されるにつれて、１つまたは複数の機能的特徴を所望の機能的特徴に向けて発展させることと、を行うように構成され得る。
【００２８】
自律視覚ナビゲーション（AUTONOMOUS VISUAL NAVIGATION）
[0036]  従来のシステムでは、手動動作（manual operation）中、ロボットは、ロボットと障害物との間の範囲が、ある閾値よりも少ない場合、ロボットを一時停止（halt）させるために、ソナー（sonar）または超音波（ultrasound）のような、リアクティブ（reactive）（例えば、メモリレス（memoryless））システムに基づく仮想バンパーシステム（virtual bumper system）を使用することもある。仮想バンパーシステム（virtual bumper system）がメモリレスであるので、仮想バンパーは自律動作（autonomous operation）中に有用でないこともある。それゆえ、自律ロボットは、以前の測定値（measurement）に基づいて計画できない。さらに、仮想バンパーシステムは時間および姿勢（pose）にまたがってセンサ読取り値を統合しない。よって、このシステムは増加したノイズを有する。さらに、仮想バンパーシステムはリアクティブであるので、仮想バンパーシステムは、衝突を回避するために新たな軌跡（trajectory）および／または速度（velocity）を計画できない。むしろ、ロボットは衝突を回避するために動作（operation）を一時停止させ、障害物を迂回して方向転換（redirected around）されない。
【００２９】
[0037]  追加的に、自律動作（autonomous operation）のための従来のシステムでは、ナビゲーションのために、ＧＰＳウェイポイントのようなロケーションベースのウェイポイントをユーザが指定することを可能にするようにウェイポイントベースの方式が指定される。このシステムでは、ロボットは１つのウェイポイントから別のウェイポイントに動くように指定される。依然として、ウェイポイントベースの方式は、ＧＰＳのようなロケーションシステムを使用し、これは、屋内ロケーションまたは都市ロケーションのようないくつかのロケーションでは信頼できないこともある。さらに、ウェイポイントベースの方式は、障害物を迂回してロボットを方向転換させない。
【００３０】
[0038]  したがって、ロボットの環境の理解およびナビゲーションを向上させるために、異なるコンポーネントを１つのロボットへと組み合わせることが望ましい。異なるコンポーネントは、ある環境内のロボットのロケーションを決定するための、視覚慣性オドメータのような位置推定モジュールと、マルチビュー深度測定値を取得するためのマッピングモジュールと、再計画と組み合わされたサンプリングベースの幾何学的な計画のための計画モジュール（planning module）とを含み得る。すなわち、前述されたように、本開示の態様は、位置推定マッピングと運動計画を組み合わせるロボットに向けられている。より具体的には、運動計画は、深度マップおよび位置推定情報を使用し得る。
【００３１】
[0039]  本開示の態様によると、組み合わされたコンポーネントは、マッピングモジュールから生成される障害物マップ、位置推定モジュールから取得される位置推定情報、およびユーザ入力および／または計画モジュールに基づく計画に基づいて、運動計画のために使用され得る。１つの構成において、ロボットは、軌跡および／または速度についてのユーザ入力を受信する。この構成では、ロボットは、マッピングモジュールから決定された障害物に基づいて、衝突を回避するためにユーザ入力を無効にし得る。ロボットはまた、より少ない燃料を使用するルートを選択し、および／または距離ならびに／あるいは時間が短いルートを選択するなど、ルートを改善するためにユーザ入力を無効にし得る。
【００３２】
[0040]  ロボットは、ビジョンセンサおよび位置推定センサのような、複数のセンサモダリティ（sensor modality）を含み得る。マッピングモジュールは、深度マップを取得するために、複数の前向きカメラ（forward facing cameras）のような、ステレオビジョンセンサ（stereo-vision sensor）を使用し得る。深度測定は、ロボットからの複数地点の距離を決定する時間ステップごとに行われ得る。さらに、マッピングモジュールは、連続的な深度測定（例えば、マルチビュー深度測定）のボリュメトリック統合のために指定され得る。ロボットは、加速度計（accelerometer）および／またはジャイロスコープ（gyroscope）のような、慣性測定ユニット（inertial measurement unit）から位置推定情報を取得し得る。位置推定情報はまた、下向きセンサ（downward facing sensors）のようなセンサからも取得され得る。位置推定は、ある環境内のロボットのロケーションを指す。１つの構成において、下向きセンサは、ソナーセンサ（sonar sensor）および／またはカメラ（camera）である。
【００３３】
[0041]  本開示の１つの態様において、ロボットは、３次元（３Ｄ）マップのようなマップ中の適切な位置へと深度測定値を配置するために、受信された各深度測定値を、位置推定モジュールの測定値と統合する。例えば、ロボットは、第１のロケーションにおいて深度測定値を取得し得、ロボットは、それら測定値をロボットの第１のロケーションと関連付ける。追加的に、ロボットは、第１のロケーションから第２のロケーションに動き、新たな深度測定値を取得し得る。さらに、ロボットは、新たな深度測定値を第２のロケーションと関連付け得る。したがって、ロボットが環境を動き進むにつれて、深度測定値および位置推定測定値に基づいて３次元マップのようなマップが生成される。
【００３４】
[0042]  計画段階中、ロボットは、手動モードまたは自律モードのような動作のモード（mode of operation）に基づく運動制御（motion control）を提供し得る。例えば、手動動作のモード（manual mode of operation）では、自律システムは、速度および／または軌跡についての操縦者のコマンド（例えば、ユーザ入力）を３次元マップへと外挿（extrapolate）し、衝突についてチェックする。さらに、ロボットは、衝突を回避するため、または改善したルート（例えば、より速いルート）を計画するために、ユーザ入力を無効にし得る。自律動作モード（autonomous mode of operation）では、ロボットは、保存されたゴールまでの衝突のない経路（collision-free path）を計画するために累積マップ（accumulated map）を使用する。さらに、自律システムは、マップの更新が計画を安全でないようにする場合、ルートに沿って再計画し得る。
【００３５】
[0043]  図３は、本開示の一態様によるロボット３００のブロック図である。図３に示されているように、ロボット３００は、マッピングモジュール（mapping module）３０２を含み、これは、深度センサから深度測定値を受信する。深度測定は、障害物からのロボットの距離を測定する。１つの構成において、深度センサは、カメラのような、複数の前向きビジョンセンサを含む。マッピングモジュール３０２は、深度測定値に基づいて深度マップを生成し得る。さらに、深度マップは、３Ｄ障害物マッピングモジュール３０４に入力され得る。深度マップの入力は、実質的に瞬時であり得る。
【００３６】
[0044]  図３に示されているように、ロケーションモジュール３０８は、位置推定測定値および／または慣性測定値（inertial measurement）を受信する。位置推定測定値は、下向きカメラのような下向きセンサから取得され得る。さらに、慣性測定値は、加速度計および／またはジャイロスコープのような、慣性測定ユニットから取得され得る。受信された位置推定測定値および／または慣性測定値に基づいて、ロケーションモジュール３０８は、ロボットのロケーションを決定し、３Ｄ障害物マッピングモジュール（3D obstacle mapping module）３０４にそのロケーションを出力する。ロケーション情報（location information）の入力は、実質的に瞬時であり得る。
【００３７】
[0045]  ３Ｄ障害物マッピングモジュール３０４は、ロボットの現在ロケーションの３Ｄマップを生成するように、受信されたロケーション情報を受信された深度マップと関連付ける。３Ｄマップは、統合された深度マップと称されることもある。時間にわたって、ロボット３００が異なるロケーションに動き、異なるロケーションから深度測定値を取得するにつれて、訪れたロケーションの３Ｄマップが生成される。３Ｄマップが計画モジュール３０６に出力される。１つの構成において、ロボット３００は、特定の速度および／または軌跡でロボット３００を動かすためのユーザ入力を受信する。追加的に、ユーザ入力は、ロボット３００が到達するためのゴールを設定し得る。ユーザ入力は、コンピュータまたは遠隔コントローラのような遠隔デバイスから受信され得る。
【００３８】
[0046]  １つの構成において、ユーザ入力がロボット３００のためのゴールを設定すると、計画モジュール３０６が、ロボットの現在位置からゴールまでのルートを計画する。所望の経路が運動制御モジュール（motion control module）３１０に出力され、これは、所望の軌跡および／または速度で、計画されたルートに沿って動くようにロボットのモータを制御する。モータは、エンジン、回転ブレード（rotary blades）、および／または車輪のような、ロコモーション（locomotion）コンポーネントを制御し得る。さらに、図３に示されているように、ロケーションモジュール３０８は、取得されたロケーションを計画モジュール３０６と運動制御モジュール（motion control module）３１０との両方に送信し、その結果、両方のモジュールがロボットの現在ロケーションを知る。追加的に、ロボット３００のロケーションが変わると、３Ｄ障害物マッピングモジュール３０４から生成された３Ｄマップが更新され得る。よって、計画モジュールは、３Ｄマップに対する更新に基づいて所望の経路を更新し得る。
【００３９】
[0047]  別の構成では、上述されたように、ロボット３００は、特定の速度および／または軌跡でロボット３００を動かすためのユーザ入力を受信する。この構成では、計画モジュール３０６は、３Ｄマップ中の現在ロケーションに基づいて、衝突を回避するため、または指定された速度および／または軌跡を改善するために、ユーザ入力を無効にする。無効化情報は、無効化情報に基づいてロボットのモータを制御するために運動制御モジュール３１０に出力され得る。当然ながら、いくつかのケースでは、計画モジュールはユーザ入力を無効にしないこともある。よって、ユーザ入力は、所望の経路として、計画モジュール３０６から運動制御モジュール３１０に出力される。
【００４０】
[0048]  図４は、本開示の一態様によるロケーションモジュール４００の例を例示している。ロケーションモジュール４００は、グローバル／ワールド座標フレーム（global/world coordinate frame）におけるロボットの姿勢を算出するために慣性測定ユニット（ＩＭＵ：inertial measurement unit）データとセンサデータとを組み合わせるセンサフュージョンモジュール（sensor fusion module）であり得る。１つの構成では、ロケーションモジュールのためのセンサは下向きセンサである。依然として、本開示の態様は、下向きセンサに限定されるものではない。図４に示されているように、ロケーションモジュール４００は、特徴検出器（feature detector）４０２、トラッカ（tracker）４０６、およびフィルタ（filter）４０４を含み得る。１つの構成では、フィルタ４０４は、拡張カルマンフィルタ（extended Kalman filter）である。本開示の一態様によると、特徴検出器は、カメラのような、下向きセンサからフレームを受信する。１つの構成では、カメラは、単眼カメラ（monocular camera）である。
【００４１】
[0049]  特徴検出器４０２は、受信されたフレームの特徴を検出するように構成され得る。さらに、トラッカ４０６は、ロボットの移動を推定するために、受信されたフレームにわたる特徴の位置における検出された変化を追跡し得る。例えば、特徴検出器４０２は、第１のフレーム中に１０個の特徴を検出し得る。追加的に、この例では、トラッカ４０６は、後続のフレームにおいてそれら検出された１０個の特徴を追跡し得る。よって、特徴検出器４０２において第２のフレームが受信されると、特徴検出器４０２は、第１のフレームの１０個の特徴を第２のフレームから検出しようと試み、トラッカ４０６は、第２のフレームの１０個の特徴からの第１のフレームの１０個の特徴の位置の変化を決定する。位置の変化は、ロボットの移動の推定値（例えば、どのくらい遠くにロボットが動いたか）を提供する。当然ながら、１０個の特徴は一例であり、本開示の態様は、特定数の特徴の検出に限定されるものではない。
【００４２】
[0050]  追加的に、図４に示されているように、フィルタ４０４は、第１のセンサおよび第２のセンサから入力を受信し得る。第１のセンサは、自己運動（self-motion）および重力による、直線的な加速度を感知する加速度計であり得る。第２のセンサは、３次元グローバルロケーション（（three-dimensional global location））の方位（例えば、角度）を取得するジャイロスコープであり得る。視覚慣性オドメトリ（visual-inertial odometry）の場合、ワールドフレーム（world frame）は、第１のキャプチャされた画像のロケーションの中心に置かれ得る。よって、ロボットの開始位置に関連して、視覚慣性オドメトリは、３次元グローバルロケーションおよび対応する方位の推定値を提供する。例えば、３次元グローバルロケーションおよび対応する方位情報（orientation information）は、ウェイポイントナビゲーションまたは速度制御のために軌跡コントローラ（trajectory controller）に入力され得る。３次元グローバルロケーションおよび対応する方位情報はまた、ボクセルマップ（voxel map）統合のためのサブシステムのマッピングにも入力され得る。
【００４３】
[0051]  １つの構成では、フィルタは、ロボットのロケーションを出力するために、第１のセンサ、第２のセンサの入力と、特徴検出器４０２およびトラッカ４０６からの特徴情報を組み合わせる。ロボットのロケーションは、６自由度（６ＤＯＦ：six-degree of freedom）姿勢として出力され得る。６自由度姿勢は、前／後、上／下、左／右、ピッチ（pitch）、ヨー（yaw）、およびロール（roll）を指し得る。１つの構成では、ロボットは飛行するように構成される。当然ながら、本開示の態様は、飛行ロボットに限定されるものではなく、陸上および／または海上ベースであり得るロボットについて企図されている。
【００４４】
[0052]  図５は、本開示の一態様による深度センサ５００の例を例示している。図５に示されているように、深度センサ５００は、既知の距離５０６間隔を空けた第１のカメラ５０２と第２のカメラ５０４とを含む。図５に示されているように、両方のカメラ５０２、５０４は、オブジェクト（object）５１４の特定点５１２に焦点が合わせられている。さらに、第１のカメラ５０２について第１の画像５１６中の特定点５１２に対応する第１のピクセル５０８のロケーションが決定され、第２のカメラ５０４について第２の画像５１８中の特定点５１２に対応する第２のピクセル５１０のロケーションが決定される。第１のピクセル５０８および第２のピクセル５１０のロケーションに基づいて、三角測量（triangulation）を使用して、ロボットは、カメラ５０２、５０４からのオブジェクト５１４の特定点５１２の深度（depth）を決定し得る。深度を決定するプロセスは、ロボットの現在ロケーションの深度マップを作成するために、カメラによって取得された画像の複数のピクセル（例えば、各ピクセル）について繰り返され得る。
【００４５】
[0053]  図５には図示されていないが、カメラ５０２、５０４は、ロボットの鼻（例えば、前面）に装着され得る。３次元再構成は、ステレオ深度の知覚（stereo depth perception）に基づいて発展され得る。１つの構成では、プロセスは、ワールド（the world）を３次元グリッド（three-dimensional grid）へと離散化する（discretize）。グリッドにおける各ロケーションはボクセル（voxel）と称され得る。ステレオカメラ(stereo camera)からの深度画像および位置推定プロセスからの６自由度姿勢は、ロボットが環境中をナビゲートして回り、障害物を観測するにつれて、３次元ボクセルマップへと組み合わされ得る。１つの構成では、ボクセルマップは、観測に基づいて生成される。追加的に、マッピングプロセスは、ステレオカメラのフレームレートで稼働し得、その結果、カメラによって新たな情報が観測されるにつれてマップが更新される。更新は、実質的に瞬時であり得る。さらに、ボクセルマップは、安全かつ信用できる経路をリアルタイムで計画するために運動計画者（motion planner）によって使用され得る。
【００４６】
[0054]  視覚慣性オドメトリ（visual-inertial odometry）は、計画者に位置推定情報を提供し得、それは、リアルタイムに更新され得る。１つの構成では、ロボットについて目標が指定されると、計画者は、ゴールに到達するための計画を生成するために、最新の状態推定値（state estimate）を開始状態として使用し、目標をゴールとして使用する。ロボットは、閉ループ方式（closed-loop manner）で、算出された軌跡にしたがうことによってその計画を実行し得る。計画が実行されるにつれて、計画を無効にし得る（invalidate）新たな情報が観測され、このケースでは計画者が新たな計画を採用する。
【００４７】
[0055]  図６Ａは、マッピングされたエリア（mapped area）６０２およびマッピングされていないエリア（un-mapped area）６０４を含む環境６００の例を例示している。マッピングされたエリア６０２は、深度測定（depth measurement）および位置推定に基づく、３Ｄマッピングされたエリアであり得る。すなわち、前述されたように、３Ｄマップは、深度マップを位置推定情報と統合することによって生成され得る。深度マップおよび位置推定情報は、ロボットが、（例えば、ユーザ入力を介した）手動モードまたは自律モードで動作（operate）される間に取得され得る。図６Ａに示されているように、深度測定値に基づいて、ロボットは、ある特定のボクセルがオブジェクト６０８によって占有されていることを決定し得る。よって、計画モジュールは、ロボットが手動モードまたは自律モードでナビゲートされているときにオブジェクト６０８を回避するように指定される。マッピングされていないエリア６０４は、ロボットによってまだ踏査されていないエリアであり得る。
【００４８】
[0056]  １つの構成では、ロボットは、第１のロケーション６０６にあり得、目標ロケーション６１０まで自律的にナビゲートするためのユーザ入力を受信し得る。図６Ａに示されているように、目標ロケーション６１０は、マッピングされていないエリア６０４にあり得る。ユーザ入力に応答して、ロボットは、マッピングされたエリア６０２の占有されていないエリアにおける候補地点（candidate points）６１２を選択する。候補地点６１２は、マッピングされたエリア６０２の占有されていないエリアから無作為に（randomly）選択され得る。候補地点６１２は、移動に安全であると考えられるマッピングされたエリア６０２上の地点であり得る。よって、候補地点６１２は、第１のロケーション６０６から目標ロケーション６１０までの衝突のない軌跡を選択するために計画モジュールによって使用され得る。すなわち、ロボットは、候補地点６１２の各々間の軌跡６１４（例えば、エッジ）を計画する。図６Ａに示されているように、ロボットは、マッピングされていないエリア６０４中の候補地点６１２と軌跡６１４とを選択し得る。依然として、マッピングされていないエリア６０４はまだ踏査されていないので、候補地点６１２および軌跡６１４は、予測される候補地点６１２および予測される軌跡６１４である。
【００４９】
[0057]  図６Ｂは、本開示の一態様による、第１のロケーション６０６と目標ロケーション６１０との間の選択された経路６２０の例を例示している。図６Ｂに示されているように、候補地点６１２および軌跡６１４を決定した後、計画モジュールは、決定された候補地点６１２および軌跡６１４に基づいて、第１のロケーション６０６と目標ロケーション６１０との間の利用可能な様々な経路を探索し得る。探索は、ダイクストラ探索（Dykstra search）であり得る。異なる経路の探索に基づいて、計画モジュールは、ロボットが移動するための経路６２０を選択する。選択された経路は、衝突のない経路である。さらに、選択された経路６２０は、他の経路と比較して、時間、および／または、ガソリンのようなリソースをより少なく使用し得る。選択された経路６２０は、最小コスト経路（minimum cost path）と称され得る。
【００５０】
[0058]  図６Ｃは、本開示の一態様による、選択された経路６２０に沿って動くロボットの例を例示している。図６Ｃに示されているように、選択された経路６２０に基づいて、ロボットは、経路６２０に沿って第１のロケーション６０６から第２のロケーション６２２に動く。第２のロケーション６２２は、計画段階中に選択された候補地点６１２のうちの１つである。追加的に、図６Ｃに示されているように、ロボットが経路６２０に沿って動くにつれて、マッピングされていないエリア６０４の一部分は、そのエリアがロボットのセンサの視野に入るので、マッピングされるようになる。すなわち、一例として、図６Ｃに示されているように、エリア６２４は、これはマッピングされていないエリア６０４に以前は含まれていたが、ロボットの移動に基づいて、マッピングされたエリア６０２に含まれるようになる。よって、ロボットが経路６２０に沿って動くにつれて、ロボットは、更新された深度マップおよびロケーション情報に基づいて、選択された経路を変更し得る。
【００５１】
[0059]  図６Ｄは、本開示の一態様による、選択された経路６２０に沿って動くロボットの例を例示している。図６Ｄに示されているように、選択された経路６２０に基づいて、ロボットは、経路６２０に沿って第２のロケーション６２２から第３のロケーション６２６に動く。第３のロケーション６２６は、計画段階中に選択された候補地点６１２のうちの１つである。追加的に、図６Ｄに示されているように、ロボットが経路６２０に沿って動くにつれて、マッピングされていないエリア６０４の一部分は、そのエリアがロボットのセンサの視野に入るので、マッピングされたエリアになる。この例では、深度測定値に基づいて、ロボットは、オブジェクト６２８が、計画された経路６２０に沿うボクセルを占有することを決定する。よって、ロボットが計画された経路６２０に沿って進み続けたら、衝突が起こることになる。したがって、オブジェクト６２８が計画された経路６２０とオーバーラップすると想定して、ロボットの計画モジュールは、更新された深度測定値およびロケーション情報に基づいて新たな経路を選択する。
【００５２】
[0060]  図６Ｅは、更新された３Ｄマップに基づいて新たな経路６３０を選択するロボットの一例を例示している。前述されたように、ロボットの計画モジュールは、更新された深度測定値およびロケーション情報（例えば、更新された３Ｄマップ）に基づいて、新たな経路を選択する。図６Ｅに示されているように、ロボットが第３のロケーション６２６にいるとき、オブジェクト６２８の知識（knowledge）が与えられると、計画モジュールは、第３のロケーション６２６と目標ロケーション６１０との間の新たな経路について探索する。すなわち、ロボットは、オブジェクト６２８のような障害物が視野に入ると、新たな経路を選択する。異なる経路の探索に基づいて、計画モジュールは、ロボットが移動するための新たな経路６３０を選択する。前述されたように、選択された経路６３０は、最小コスト経路と称され得る。簡潔さのために、図６Ｅは、マッピングされていないエリア６０４を例示していない。依然として、この例では、ロボットが第３のロケーション６２６にいるとき、環境６００の一部分が依然としてマッピングされていないこともある。さらに、新たな経路６３０は、ロボットが経路６３０の異なる地点に沿って動くにつれて、ロボットが動き、更新された深度マップとロケーション情報とを受信するので、再度更新され得る。
【００５３】
[0061]  図７は、本開示の一態様によるマッピングされた環境７００におけるロボット７０２の例を例示している。マッピングされた環境７００は、深度測定および位置推定に基づく、３Ｄマッピングされたエリアであり得る。すなわち、前述されたように、３Ｄマップは、深度マップを位置推定情報と統合することによって生成され得る。深度マップおよび位置推定情報は、ロボットが、（例えば、ユーザ入力を介した）手動モードまたは自律モードで動作（operate）される間に取得され得る。図７に示されているように、深度測定値に基づいて、ロボット７０２は、ある特定のボクセルが第１のオブジェクト７０６および第２のオブジェクト７０４によって占有されていることを決定し得る。よって、計画モジュールは、ロボットが手動モードまたは自律モードでナビゲートされるときに第１のオブジェクト７０６および第２のオブジェクト７０４を回避するように指定される。
【００５４】
[0062]  １つの構成では、ロボット７０２は、第１の軌跡７０８に沿って動くためのユーザ入力を受信する。第１の軌跡７０８は、目標７２０に到達するように指定され得る。代替的に、第１の軌跡７０８は、目標に方向付けられていない（not be target oriented）こともあり得る。追加的または代替的に、ユーザ入力は速度を指定し得る。生成された３Ｄマップに基づいて、ロボット７０２は、ユーザ入力を介して受信された第１の軌跡７０８が第２のオブジェクト７０４との衝突を引き起こすことになることであろうという知識を有する。
【００５５】
[0063]  １つの構成では、計画モジュールはユーザ入力を無効にし、第２のオブジェクト７０４を回避する第２の軌跡７２２を計画する。第２の軌跡７２２は、障害物を回避するために無作為に選択され得る。さらに、第２の軌跡７２２は、目標に方向付けられていないこともあり得る。さらに、第２の軌跡７２２は、ロボット７０２のモータに、第１の軌跡７０８ではなく第２の軌跡７２２上をナビゲートさせ得る。追加的または代替的に、無効化はロボット７０２の速度を調整し得る。環境が３Ｄ環境である場合、計画モジュールは、依然として第１の軌跡７０８を維持し得る。しかしながら、計画モジュールは、可能な場合、ロボット７０２が第１のオブジェクトの上を越えて、または下をくぐって移動するように、計画された高度を無効にし得る。
【００５６】
[0064]  別の構成では、ロボットは、衝突を回避するために運動計画を行う。運動計画は、マッピングされたエリア７００（例えば、３Ｄマップ）中の安全な地点を無作為に選択することを含み得る。例えば、ロボットは、代替的なナビゲーション地点として候補地点７１０を無作為に選択し得る。無作為に選択された候補地点７１０は、移動するのに安全であると考えられるマップ上の地点（例えば、マップの衝突のないエリア）であり得る。無作為に選択された候補地点７１０は、ユーザが指定した経路（例えば、第１の軌跡７０８）の所定の近接内の候補地点であり得る。当然ながら、ユーザが指定した経路の所定の近接外の地点もまた選択され得るので、本開示の態様は、所定の近接内の候補地点を選択することに限定されるものではない。
【００５７】
[0065]  追加的に、図７に示されているように、衝突を回避するようにユーザ入力を無効にするために、ロボットは、無作為に選択された候補地点７１０間の１つまたは複数の衝突のない経路７１２を決定し得る。衝突を回避するために、ロボットは、ロボット７０２の初期位置から、無作為に選択された候補地点７１０のうちの１つまでの衝突のない経路のうちの１つに沿って移動し得る。追加的に、無作為に選択された候補地点７１０のうちの１つに到達した後、ロボット７０２が目標７２０に到達するまで、またはロボット７０２が新たなユーザ入力を受信するまで、ロボットは、他の無作為に選択された候補地点７１０までの別の経路を選択し得る。
【００５８】
[0066]  さらに、１つの構成では、１つまたは複数の衝突のない経路７１２を決定した後、ロボットは、初期位置と目標７２０との間の最小コスト経路を決定し得る。最小コスト経路は、他の経路と比較して、時間、および／または、ガソリンのようなリソースをより少なく使用し得る。図７の例において、ロボットは、第１の軌跡７０８から予測された衝突を回避するために最小コスト経路７１４を選択する。最後に、図７には示されていないが、最小コスト経路７１４のような、衝突のない経路７１２のうちの１つに沿ってロボットが移動しているときに新たな障害物が現われた場合、ロボットは、選択された経路を変え得る。
【００５９】
[0067]  図８は、処理システム８２０を用いる、ロボットのような、装置８００のためのハードウェアインプリメンテーションの例を例示する図である。処理システム８２０は、バス８２４によって概して表されているバスアーキテクチャでインプリメントされ得る。バス８２４は、処理システム８２０の特定用途と全体的な設計制約に依存して、任意の数の相互接続バスおよびブリッジを含み得る。バス８２４は、プロセッサ８０４、通信モジュール８０８、ロケーションモジュール８０６、センサモジュール（sensor module）８０２、ロコモーションモジュール（locomotion module）８１０、およびコンピュータ可読媒体（computer-readable medium）８１４によって表されている、１つまたは複数のプロセッサおよび／またはハードウェアモジュールを含む様々な回路をリンクさせる。バス８２４はまた、タイミングソース、周辺機器、電圧レギュレータ、および電力管理回路のような他の様々な回路もリンクさせ得るが、これらは、当該技術では周知であるので、これ以上説明されることはない。
【００６０】
[0068]  装置８００は、トランシーバ８１６に結合された処理システム８２０を含む。トランシーバ８１６は、１つまたは複数のアンテナ８１８に結合される。トランシーバ８１６は、伝送媒体を介して他の様々な装置と通信することを可能にする。例えば、トランシーバ８１６は、ユーザからの送信を介してユーザ入力を受信し得る。処理システム８２０は、コンピュータ可読媒体８１４に結合されたプロセッサ８０４を含む。プロセッサ８０４は、コンピュータ可読媒体８１４に記憶されたソフトウェアの実行を含む、汎用処理を担っている。このソフトウェアは、プロセッサ８０４によって実行されると、処理システム８２０に、任意の特定の装置に関して説明された様々な機能を行わせる。コンピュータ可読媒体８１４はまた、ソフトウェアを実行するときにプロセッサ８０４によって操作されるデータを記憶するために使用され得る。
【００６１】
[0069]  センサモジュール８０２は、第１のセンサ８２８および第２のセンサ８２６を介して測定値を取得するために使用され得る。第１のセンサ８２８は、立体カメラ（stereoscopic camera）のような、測定を行うためのステレオビジョンセンサであり得る。第２のセンサ８２６は、カメラおよび／または慣性測定ユニットであり得る。当然ながら、本開示の態様は、例えば、レーダ、熱、ソナー、および／またはレーザーのような他のタイプのセンサもまた測定を行うために企図されているので、ステレオビジョンセンサに限定されるものではない。第１のセンサ８２８および第２のセンサ８２６の測定値は、プロセッサ８０４、通信モジュール８０８、ロケーションモジュール８０６、ロコモーションモジュール８１０、コンピュータ可読媒体８１４、および他のモジュール８３２、８３４のうちの１つまたは複数によって処理され得る。前述されたように、第１のセンサ８２８からの測定値は、深度測定値を取得するために使用され得る。さらに、第２のセンサ８２６からの測定値は、位置推定のために使用され得る。例えば、第２のセンサ８２６からの測定値は、装置８００のロケーションを決定するためにロケーションモジュール８０６へによって使用され得る。さらに、第１のセンサ８２８および第２のセンサ８２６の測定値は、トランシーバ８１６によって外部デバイスに送信され得る。第１のセンサ８２８および第２のセンサ８２６は、図８に示されているように、装置８００の外部と定義されるように限定されるものではなく、第１のセンサ８２８および第２のセンサ８２６は、装置８００内とも定義され得る。
【００６２】
[0070]  ロケーションモジュール８０６は、装置８００のロケーションを決定するために使用され得る。通信モジュール８０８は、外部デバイスに、装置８００のロケーションのような情報を、送信および受信するためにトランシーバ８１６を使用し得る。ロコモーションモジュール８１０は、装置８００にロコモーションを提供するために使用され得る。例として、ロコモーションは、回転ブレード（rotary blades）８１２を介して提供され得る。当然ながら、本開示の態様は、回転ブレード８１２を介してロコモーションを提供することに限定されるものではなく、プロペラ、車輪、トレッド、フィン、および／またはジェットエンジンのような、ロコモーションを提供するための他の任意のタイプのコンポーネントについて企図されている。
【００６３】
[0071]  処理システム８２０は、３次元（３Ｄ)マップを生成するように深度マップを位置推定情報と統合するための統合モジュール（integrating module）８３２を含む。処理システム８２０はまた、３Ｄマップ、位置推定情報、および／またはユーザ入力に少なくとも部分的に基づいて運動（motion）を計画するための計画モジュール８３４も含む。１つの構成では、運動計画は、ユーザ入力が衝突を引き起こすと予期（例えば、予測）されると、ユーザ入力を無効にする。これらモジュールは、プロセッサ８０４において稼働し、コンピュータ可読媒体８１４に存在／記憶されるソフトウェアモジュール、プロセッサ８０４に結合された１つまたは複数のハードウェアモジュール、またはこれらの何らかの組合せであり得る。
【００６４】
[0072]  図９は、ロボットのための視覚ナビゲーションのための方法９００を例示している。ブロック９０２において、オプションの構成では、ロボットは、複数のカメラから深度マップを決定し、複数のセンサから位置推定情報を取得する。すなわち、ロボットは、複数のセンサモダリティを含み得る。深度測定は、ロボットからの複数地点の距離を決定する時間ステップごとに行われ得る。マッピングモジュールは、深度マップを取得するために、ステレオビジョンセンサのような、センサを使用し得る。よって、１つのオプションの構成では、ブロック９０４において、ロボットは、ステレオカメラから取得された測定値に基づいて深度マップを生成する。
【００６５】
[0073]  さらに、ロボットは、慣性センサ情報（inertial sensor information）から位置推定情報を取得し得る。よって、１つのオプションの構成では、ブロック９０６において、ロボットは、ジャイロスコープおよび／または加速度計ユニットから慣性センサ情報を取得する。位置推定情報はまた、下向きセンサのようなセンサからも取得され得る。位置推定は、環境内のロボットのロケーションを指す。１つの構成において、下向きセンサは、ソナーセンサおよび／またはカメラである。
【００６６】
[0074]  追加的に、ブロック９０８において、ロボットは、３Ｄマップを生成するように深度マップを位置推定情報と統合する。例えば、ロボットは、第１のロケーションにおいて深度測定値を取得し得、ロボットは、それら測定値をロボットの第１のロケーションと関連付ける。追加的に、ロボットは、第１のロケーションから第２のロケーションに動き、新たな深度測定値を取得し得る。さらに、ロボットは、新たな深度測定値を第２のロケーションと関連付け得る。したがって、ロボットが環境を進むにつれて、３Ｄマップのようなマップが深度測定値および位置推定測定値に基づいて生成される。
【００６７】
[0075]  さらに、ブロック９１０において、ロボットは、３Ｄマップ、位置推定情報、および／またはユーザ入力に基づいて運動（motion）を計画する。１つの構成では、ロボットのための目標が指定されると、ロボットの運動計画者は、ゴールに到達するための計画を生成するために、最新の状態推定値を開始状態として使用し、目標をゴールとして使用する。ロボットは、閉ループ方式で、算出された軌跡にしたがうことによってその計画を実行し得る。計画が実行されるにつれて、計画を無効にし得る新たな情報が観測され、このケースでは、計画者が新たな計画を採用する。追加的または代替的に、運動計画は、ユーザ入力が衝突を引き起こすと予測されると、ユーザ入力を無効にし得る。さらに、運動計画は、ユーザ入力を介して受信された軌跡および／または速度が衝突を引き起こすと予測されると、ユーザ入力を無効にし得る。
【００６８】
[0076]  オプションの構成では、ブロック９１２において、ロボットは、ユーザ入力を無効にするときに新たな軌跡（trajectory）および／または新たな速度（velocity）を選択する。例えば、ユーザ入力は、速度および／または軌跡を指定し得る。生成された３Ｄマップに基づいて、ロボットは、ユーザが選択した速度および／または軌跡がオブジェクトとの衝突を引き起こすことになるであろうという知識を有する。よって、この構成では、計画モジュールはユーザ入力を無効にし、第２のオブジェクトを回避するために新たな軌跡および／または速度を計画する。
【００６９】
[0077]  図１０は、運動計画のためのより詳細な方法１０００を例示している。図９のブロック９１０と同様である、ブロック１００２において、ロボットは、３Ｄマップ、位置推定情報、および／またはユーザ入力に基づいて運動を計画する。ブロック１００４において、運動計画は、ユーザ入力が衝突を引き起こすと予測されると、ユーザ入力を無効にする。追加的に、オプションの構成では、ブロック１００６において、運動計画は、ユーザ入力を介して受信された軌跡および／または速度が衝突を引き起こすと予測されると、ユーザ入力を無効にする。
【００７０】
[0078]  別のオプションの構成では、ブロック１００８において、運動計画は、３Ｄマップ中の複数の衝突のない地点（collision-free point）を無作為に選択し、複数の衝突のない地点のうちの２つ以上の間の１つまたは複数の衝突のない経路を決定する。追加的に、オプションの構成では、ブロック１０１０において、運動計画はさらに、１つまたは複数の衝突のない経路に基づいて目標までの最小コスト経路を決定する。さらに、最小コスト経路を決定した後、ブロック１０１２において、運動計画はさらに、最小コスト経路に沿って障害物が見られると最小コスト経路を変更し得る。
【００７１】
[0079]  さらに別のオプションの構成では、ブロック１０１４において、運動計画は、マッピングされていないエリアにおける複数の予測される衝突のない地点を無作為に選択し、複数の予測される衝突のない地点のうちの２つ以上の間の１つまたは複数の予測される衝突のない経路を決定する。
【００７２】
[0080]  いくつかの態様では、方法９００および１０００は、ＳＯＣ１００（図１）、システム２００（図２）、または装置８００（図８）によって行われ得る。すなわち、方法９００および１０００の要素の各々は、例えば、限定するわけではないが、ＳＯＣ１００、システム２００、装置８００、または１つまたは複数のプロセッサ（例えば、ＣＰＵ１０２、ローカル処理ユニット２０２、プロセッサ８０４）および／またはそれに含まれる他のコンポーネントによって行われ得る。
【００７３】
[0081]  上述された方法の様々な動作（operation）は、対応する機能を実行することが可能な任意の好適な手段によって実行され得る。これら手段は、それらに限定されるわけではないが、回路、特定用途向け集積回路（ＡＳＩＣ）、またはプロセッサを含む、様々なハードウェアおよび／またはソフトウェアコンポーネント（単数または複数）ならびに／あるいはモジュール（単数または複数）を含み得る。概して、図に例示されている動作がある場合、それらの動作は、同様の番号付けを有する対応する対をなすミーンズ・プラス・ファンクション・コンポーネントを有し得る。
【００７４】
[0082]  本明細書で使用される場合、「決定すること（determining）」という用語は、幅広いアクションを包含する。例えば、「決定すること」は、計算すること、算出すること、処理すること、導出すること、調査すること、ルックアップすること（例えば、テーブル、データベース、または別のデータ構造内をルックアップすること）、確かめること、および同様のことを含み得る。追加的に、「決定すること」は、受信すること（例えば、情報を受信すること）、アクセスすること（例えば、メモリ内のデータにアクセスすること）、および同様のことを含み得る。さらに、「決定すること」は、解決すること、選択すること、選ぶこと、確立すること、および同様のことを含み得る。
【００７５】
[0083]  本明細書で使用される場合、項目のリスト「のうちの少なくとも１つ」を指すフレーズは、単一のメンバを含む、それらの項目の任意の組合せを指す。例として、「ａ、ｂ、またはｃのうちの少なくとも１つ」は、ａ、ｂ、ｃ、ａ−ｂ、ａ−ｃ、ｂ−ｃ、およびａ−ｂ−ｃをカバーするように意図されている。
【００７６】
[0084]  本開示に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、本明細書で説明された機能を実行するように設計された、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ信号（ＦＰＧＡ）、または他のプログラマブル論理デバイス（ＰＬＤ）、ディスクリートゲートまたはトランジスタ論理回路、ディスクリートハードウェアコンポーネント、あるいはそれらの任意の組合せを用いて、インプリメントまたは実行され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つまたは複数のマイクロプロセッサ、または他の任意のそのような構成としてインプリメントされ得る。
【００７７】
[0085]  本開示に関連して説明されたアルゴリズムまたは方法のステップは、ハードウェアにおいて直接的に、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその２つの組合せで、具現化され得る。ソフトウェアモジュールは、当該技術で知られている任意の形態の記憶媒体に存在し得る。使用され得る記憶媒体のいくつかの例は、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、フラッシュメモリ、消去可能なプログラマブル読取専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブル読取専用メモリ（ＥＥＰＲＯＭ（登録商標））、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、等を含む。ソフトウェアモジュールは、単一の命令または多くの命令を備え得、いくつかの異なるコードセグメントにわたって、異なるプログラム間で、および複数の記憶媒体にわたって、分散し得る。記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体であり得る。
【００７８】
[0086]  本明細書に開示された方法は、説明された方法を達成するための１つまたは複数のステップまたはアクションを備える。方法のステップおよび／またはアクションは、特許請求の範囲から逸脱することなく、互いに置き換えられ得る。言い換えると、ステップまたはアクションの特定の順序が指定されていない限り、特定のステップおよび／またはアクションの順序および／または使用は、特許請求の範囲から逸脱することなく修正され得る。
【００７９】
[0087]  説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せにおいてインプリメントされ得る。ハードウェアにおいてインプリメントされる場合、例となるハードウェア構成は、デバイス内に処理システムを備え得る。処理システムは、バスアーキテクチャでインプリメントされ得る。バスは、処理システムの特定用途および全体的な設計制約に依存して、任意の数の相互接続バスおよびブリッジを含み得る。バスは、プロセッサ、機械可読媒体、およびバスインターフェースを含む様々な回路を共にリンクさせ得る。バスインターフェースは、ネットワークアダプタを、バスを介して、特に処理システムに接続するために使用され得る。ネットワークアダプタは、信号処理機能をインプリメントするために使用され得る。ある特定の態様については、ユーザインターフェース（例えば、キーパッド、ディスプレイ、マウス、ジョイスティック、等）もまた、バスに接続され得る。バスはまた、タイミングソース、周辺機器、電圧レギュレータ、電力管理回路、および同様のもののような、様々な他の回路をリンクさせ得るが、これらは、当該技術において周知であるので、これ以上説明されることはない。
【００８０】
[0088]  プロセッサは、機械可読媒体上に記憶されたソフトウェアの実行を含む、汎用処理およびバスの管理を担い得る。プロセッサは、１つまたは複数の汎用および／または専用プロセッサを用いてインプリメントされ得る。例は、マイクロプロセッサ、マイクロコントローラ、ＤＳＰプロセッサ、およびソフトウェアを実行することができる他の回路を含む。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と称されようと、または別の名称であろうと、命令、データ、またはこれらの任意の組合せを意味するように広く解釈されるものとする。機械可読媒体は、例として、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読取専用メモリ（ＲＯＭ）、プログラマブル読取専用メモリ（ＰＲＯＭ）、消去可能なプログラマブル読取専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、レジスタ、磁気ディスク、光ディスク、ハードドライブ、または他の任意の好適な記憶媒体、あるいはそれらの任意の組合せを含み得る。機械可読媒体は、コンピュータプログラム製品において具現化され得る。コンピュータプログラム製品は、パッケージング材料を備え得る。
【００８１】
[0089]  ハードウェアインプリメンテーションでは、機械可読媒体は、プロセッサとは別個の処理システムの一部であり得る。しかしながら、当業者が容易に認識することになるように、機械可読媒体またはその任意の部分は、処理システムの外部にあり得る。例として、機械可読媒体は、伝送路、データによって変調される搬送波、および／またはデバイスとは別個のコンピュータ製品を含み得、そのすべてはバスインターフェースを通してプロセッサによってアクセスされ得る。代替的に、またはそれに加えて、機械可読媒体、またはその任意の部分は、キャッシュおよび／または汎用レジスタファイルを有し得る場合のように、プロセッサへと一体化され得る。説明された様々なコンポーネントは、ローカルコンポーネントのように、特定のロケーションを有するものとして説明され得るが、それらはまた、ある特定のコンポーネントが分散コンピューティングシステムの一部として構成されるなど、様々な方法で構成され得る。
【００８２】
[0090]  処理システムは、プロセッサ機能を提供する１つまたは複数のマイクロプロセッサを有する汎用処理システム、および機械可読媒体の少なくとも一部分を提供する外部メモリとして構成され得、すべてが外部バスアーキテクチャを通して他のサポート回路と共にリンクされる。代替的に、処理システムは、本明細書で説明されているニューロンモデルおよびニューラルシステムのモデルをインプリメントするための１つまたは複数の神経形態学的プロセッサ（neuromorphic processor）を備え得る。別の代替として、処理システムは、プロセッサ、バスインターフェース、ユーザインターフェース、サポート回路、および単一のチップへと一体化された機械可読媒体の少なくとも一部を有する特定用途向け集積回路（ＡＳＩＣ）で、または、１つまたは複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理デバイス（ＰＬＤ）、コントローラ、ステートマシン、ゲートロジック、ディスクリートハードウェアコンポーネント、あるいは他の任意の好適な回路、あるいは本開示全体を通して説明されている様々な機能を行うことができる回路の任意の組合せで、インプリメントされ得る。当業者は、システム全体に課せられた全体的な設計制約および特定用途に依存して、処理システムについての説明された機能をいかに最良にインプリメントするかを認識するであろう。
【００８３】
[0091]  機械可読媒体は、複数のソフトウェアモジュールを備え得る。ソフトウェアモジュールは、プロセッサによって実行されると、処理システムに様々な機能を行わせる命令を含む。ソフトウェアモジュールは、送信モジュールおよび受信モジュールを含み得る。各ソフトウェアモジュールは、単一の記憶デバイスに存在し得るか、または複数の記憶デバイスにわたって分散し得る。例として、ソフトウェアモジュールは、トリガイベントが生じると、ハードドライブからＲＡＭへとロードされ得る。ソフトウェアモジュールの実行中、プロセッサは、アクセススピードを増加させるために、命令のうちのいくつかをキャッシュへとロードし得る。１つまたは複数のキャッシュラインは、次いで、プロセッサによる実行のために汎用レジスタファイルへとロードされ得る。下記においてソフトウェアモジュールの機能に言及するとき、そのような機能は、そのソフトウェアモジュールからの命令を実行するときにプロセッサによってインプリメントされることが理解されるであろう。さらに、本開示の態様が、プロセッサ、コンピュータ、機械、またはこのような態様をインプリメントする他のシステムの機能への改良をもたらすことが認識されるべきである。
【００８４】
[0092]  ソフトウェアにおいてインプリメントされる場合、それら機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体およびコンピュータ記憶媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされることができる任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、命令またはデータ構造の形態で所望のプログラムコードを記憶または搬送するために使用されることができ、またコンピュータによってアクセスされることができる、他の任意の媒体を備えることができる。追加的に、任意の接続は、コンピュータ可読媒体と厳密には称される。例えば、ソフトウェアが同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、あるいは赤外線（ＩＲ）、無線、およびマイクロ波のようなワイヤレス技術を使用して、ウェブサイト、サーバ、または他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波のようなワイヤレス技術は媒体の定義に含まれる。ディスク（disk）およびディスク（disc）は、本明細書で使用されるとき、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタルバーサタイルディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、およびＢｌｕ−ｒａｙ（登録商標）ディスクを含み、ここで、ディスク（disk）は通常、磁気的にデータを再生するが、ディスク（disc）は、レーザーを用いて光学的にデータを再生する。よって、いくつかの態様では、コンピュータ可読媒体は、非一時的なコンピュータ可読媒体（non-transitory computer-readable medium）（例えば、有形媒体）を備え得る。加えて、他の態様については、コンピュータ可読媒体は、一時的なコンピュータ可読媒体（例えば、信号）を備え得る。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【００８５】
[0093]  よって、ある特定の態様は、本明細書で提示された動作を行うためのコンピュータプログラム製品を備え得る。例えば、そのようなコンピュータプログラム製品は、命令を記憶した（および／または符号化した）コンピュータ可読媒体を備え得、それら命令は、本明細書で説明された動作を行うように１つまたは複数のプロセッサによって実行可能である。ある特定の態様については、コンピュータプログラム製品は、パッケージング材料を含み得る。
【００８６】
[0094]  さらに、本明細書で説明された方法および技法を行うためのモジュールおよび／または他の適切な手段が、適宜ユーザ端末および／または基地局によって、ダウンロードされ得ること、および／または別の方法で取得され得ることが認識されるべきである。例えば、そのようなデバイスは、本明細書で説明された方法を行うための手段の転送を容易にするために、サーバに結合されることができる。代替的に、本明細書に説明されている様々な方法は、ユーザ端末および／または基地局が、記憶手段をデバイスに結合または提供すると様々な方法を取得することができるように、記憶手段（例えば、ＲＡＭ、ＲＯＭ、コンパクトディスク（ＣＤ）またはフロッピーディスクのような物理記憶媒体、等）を介して提供されることができる。さらに、本明細書で説明された方法および技法をデバイスに提供するための他の任意の好適な技法が利用されることができる。
【００８７】
[0095]  特許請求の範囲が、上に例示されたまさにその構成およびコンポーネントに限定されないことが理解されるべきである。様々な修正、変更、および変形が、特許請求の範囲から逸脱することなく、上述された装置および方法の配列、動作、および詳細においてなされ得る。
【図１】
2019500693.tif 000003
【図２】
2019500693.tif 000004
【図３】
2019500693.tif 000005
【図４】
2019500693.tif 000006
【図５】
2019500693.tif 000007
【図６Ａ】
2019500693.tif 000008
【図６Ｂ】
2019500693.tif 000009
【図６Ｃ】
2019500693.tif 000010
【図６Ｄ】
2019500693.tif 000011
【図６Ｅ】
2019500693.tif 000012
【図７】
2019500693.tif 000013
【図８】
2019500693.tif 000014
【図９】
2019500693.tif 000015
【図１０】
2019500693.tif 000016
【手続補正書】
【提出日】平成30年8月24日(2018.8.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボットのための視覚ナビゲーションの方法であって、
ステレオカメラモジュールから取得された測定値に少なくとも部分的に基づいて深度マップを生成することと、
３次元（３Ｄ）マップを生成するように前記深度マップを位置推定情報と統合することと、
前記ロボットをナビゲートするためのユーザ入力を受信することと、
前記ユーザ入力が衝突を引き起こすと予測されることを決定することと、
前記ユーザ入力が前記衝突を引き起こすと予測されるとき前記ユーザ入力を無効にするように、前記３Ｄマップおよび前記位置推定情報に少なくとも部分的に基づいて運動計画をすることと、
を備える、方法。
【請求項２】
複数のセンサから前記位置推定情報を取得すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記位置推定情報は、画像情報（image information）、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項２に記載の方法。
【請求項４】
ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得することをさらに備える、請求項３に記載の方法。
【請求項５】
前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択することをさらに備える、請求項１に記載の方法。
【請求項６】
前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にすることをさらに備える、請求項１に記載の方法。
【請求項７】
前記運動計画をすることは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択することと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定することと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定することと
を備える、請求項１に記載の方法。
【請求項８】
前記運動計画をすることは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更することをさらに備える、請求項７に記載の方法。
【請求項９】
前記運動計画をすることは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択することと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定することと
をさらに備える、請求項７に記載の方法。
【請求項１０】
メモリと、
前記メモリに結合された少なくとも１つのプロセッサと
を備え、前記少なくとも１つのプロセッサが、
ステレオカメラモジュールから取得された測定値に少なくとも部分的に基づいて深度マップを生成することと、
３次元（３Ｄ）マップを生成するように前記深度マップを位置推定情報と統合することと、
ロボットをナビゲートするためのユーザ入力を受信することと、
前記ユーザ入力が衝突を引き起こすと予測されることを決定することと、
前記ユーザ入力が前記衝突を引き起こすと予測されるとき前記ユーザ入力を無効にするように、前記３Ｄマップおよび前記位置推定情報に少なくとも部分的に基づいて運動計画をすることと、
を行うように構成された、装置。
【請求項１１】
前記少なくとも１つのプロセッサは、
複数のセンサから前記位置推定情報を取得すること
を行うようにさらに構成された、請求項１０に記載の装置。
【請求項１２】
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項１１に記載の装置。
【請求項１３】
前記少なくとも１つのプロセッサは、ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するようにさらに構成された、請求項１２に記載の装置。
【請求項１４】
前記少なくとも１つのプロセッサは、前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するようにさらに構成された、請求項１０に記載の装置。
【請求項１５】
前記少なくとも１つのプロセッサは、前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にするようにさらに構成された、請求項１０に記載の装置。
【請求項１６】
前記少なくとも１つのプロセッサは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択することと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定することと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定することと
を行うようにさらに構成された、請求項１０に記載の装置。
【請求項１７】
前記少なくとも１つのプロセッサは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するようにさらに構成された、請求項１６に記載の装置。
【請求項１８】
前記少なくとも１つのプロセッサは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択することと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定することと
を行うようにさらに構成された、請求項１６に記載の装置。
【請求項１９】
ステレオカメラモジュールから取得された測定値に少なくとも部分的に基づいて深度マップを生成するための手段と、
３次元（３Ｄ）マップを生成するように前記深度マップを位置推定情報と統合するための手段と、
ロボットをナビゲートするためのユーザ入力を受信するための手段と、
前記ユーザ入力が衝突を引き起こすと予測されることを決定するための手段と、
前記ユーザ入力が前記衝突を引き起こすと予測されるとき前記ユーザ入力を無効にするように、前記３Ｄマップおよび前記位置推定情報に少なくとも部分的に基づいて運動計画をするための手段と、
を備える、装置。
【請求項２０】
複数のセンサから前記位置推定情報を取得するための手段
をさらに備える、請求項１９に記載の装置。
【請求項２１】
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項２０に記載の装置。
【請求項２２】
ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するための手段をさらに備える、請求項２１に記載の装置。
【請求項２３】
前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するための手段をさらに備える、請求項１９に記載の装置。
【請求項２４】
前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にするための手段をさらに備える、請求項１９に記載の装置。
【請求項２５】
前記運動計画をするための手段は、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択するための手段と、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定するための手段と、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定するための手段と
をさらに備える、請求項１９に記載の装置。
【請求項２６】
前記運動計画をするための手段は、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するための手段をさらに備える、請求項２５に記載の装置。
【請求項２７】
前記運動計画をするための手段は、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択するための手段と、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定するための手段と
をさらに備える、請求項２５に記載の装置。
【請求項２８】
ロボットに視覚ナビゲーションを提供するためのプログラムコードを記録した非一時的なコンピュータ可読媒体であって、前記プログラムコードは、プロセッサによって実行され、
ステレオカメラモジュールから取得された測定値に少なくとも部分的に基づいて深度マップを生成するためのプログラムコードと、
３次元（３Ｄ）マップを生成するように前記深度マップを位置推定情報と統合するためのプログラムコードと、
前記ロボットをナビゲートするためのユーザ入力を受信するためのプログラムコードと、
前記ユーザ入力が衝突を引き起こすと予測されると決定するためのプログラムコードと、
前記ユーザ入力が前記衝突を引き起こすと予測されるとき前記ユーザ入力を無効にするように、前記３Ｄマップおよび前記位置推定情報に少なくとも部分的に基づいて運動計画をするためのプログラムコードと、
を備える、非一時的なコンピュータ可読媒体。
【請求項２９】
前記プログラムコードは、
複数のセンサから前記位置推定情報を取得するためのプログラムコード
をさらに備える、請求項２８に記載の非一時的なコンピュータ可読媒体。
【請求項３０】
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、請求項２９に記載の非一時的なコンピュータ可読媒体。
【請求項３１】
前記プログラムコードは、ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するためのプログラムコードをさらに備える、請求項３０に記載の非一時的なコンピュータ可読媒体。
【請求項３２】
前記プログラムコードは、前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するためのプログラムコードをさらに備える、請求項２８に記載の非一時的なコンピュータ可読媒体。
【請求項３３】
前記運動計画をするためのプログラムコードは、前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されると、前記ユーザ入力を無効にするためのプログラムコードをさらに備える、請求項２８に記載の非一時的なコンピュータ可読媒体。
【請求項３４】
前記運動計画をするためのプログラムコードは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択するためのプログラムコードと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定するためのプログラムコードと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定するためのプログラムコードと
をさらに備える、請求項２８に記載の非一時的なコンピュータ可読媒体。
【請求項３５】
前記運動計画をするためのプログラムコードは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するためのプログラムコードをさらに備える、請求項３４に記載の非一時的なコンピュータ可読媒体。
【請求項３６】
前記運動計画をするためのプログラムコードは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択するためのプログラムコードと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定するためのプログラムコードと
をさらに備える、請求項３４に記載の非一時的なコンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
[0095]  特許請求の範囲が、上に例示されたまさにその構成およびコンポーネントに限定されないことが理解されるべきである。様々な修正、変更、および変形が、特許請求の範囲から逸脱することなく、上述された装置および方法の配列、動作、および詳細においてなされ得る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ロボットのための視覚ナビゲーションの方法であって、
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合することと、  前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をすることと、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を備える、方法。
［Ｃ２］
複数のカメラから前記深度マップを決定することと、
複数のセンサから前記位置推定情報を取得することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記位置推定情報は、画像情報（image information）、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、Ｃ２に記載の方法。
［Ｃ４］
ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得することをさらに備える、Ｃ３に記載の方法。
［Ｃ５］
ステレオカメラから取得された測定値に基づいて前記深度マップを生成することをさらに備える、Ｃ１に記載の方法。
［Ｃ６］
前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択することをさらに備える、Ｃ１に記載の方法。
［Ｃ７］
前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にすることをさらに備える、Ｃ１に記載の方法。
［Ｃ８］
前記運動計画をすることは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択することと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定することと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定することと
を備える、Ｃ１に記載の方法。
［Ｃ９］
前記運動計画をすることは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更することをさらに備える、Ｃ８に記載の方法。
［Ｃ１０］
前記運動計画をすることは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択することと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定することと
をさらに備える、Ｃ８に記載の方法。
［Ｃ１１］
メモリと、
前記メモリに結合された少なくとも１つのプロセッサと
を備え、前記少なくとも１つのプロセッサが、
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合することと、  前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をすることと、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を行うように構成された、装置。
［Ｃ１２］
前記少なくとも１つのプロセッサは、
複数のカメラから前記深度マップを決定することと、
複数のセンサから前記位置推定情報を取得することと
をさらに行うように構成された、Ｃ１１に記載の装置。
［Ｃ１３］
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、Ｃ１２に記載の装置。
［Ｃ１４］
前記少なくとも１つのプロセッサは、ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するようにさらに構成された、Ｃ１３に記載の装置。
［Ｃ１５］
前記少なくとも１つのプロセッサは、ステレオカメラから取得された測定値に基づいて前記深度マップを生成するようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１６］
前記少なくとも１つのプロセッサは、前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１７］
前記少なくとも１つのプロセッサは、前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にするようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１８］
前記少なくとも１つのプロセッサは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択することと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定することと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定することと
を行うようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１９］
前記少なくとも１つのプロセッサは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するようにさらに構成された、Ｃ１８に記載の装置。
［Ｃ２０］
前記少なくとも１つのプロセッサは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択することと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定することと
を行うようにさらに構成された、Ｃ１８に記載の装置。
［Ｃ２１］
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合するための手段と、
前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をするための手段と、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を備える、装置。
［Ｃ２２］
複数のカメラから前記深度マップを決定するための手段と、
複数のセンサから前記位置推定情報を取得するための手段と
をさらに備える、Ｃ２１に記載の装置。
［Ｃ２３］
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、Ｃ２２に記載の装置。
［Ｃ２４］
ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するための手段をさらに備える、Ｃ２３に記載の装置。
［Ｃ２５］
ステレオカメラから取得された測定値に基づいて前記深度マップを生成するための手段をさらに備える、Ｃ２１に記載の装置。
［Ｃ２６］
前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するための手段をさらに備える、Ｃ２１に記載の装置。
［Ｃ２７］
前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されるとき、前記ユーザ入力を無効にするための手段をさらに備える、Ｃ２１に記載の装置。
［Ｃ２８］
前記運動計画をするための手段は、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択するための手段と、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定するための手段と、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定するための手段と
をさらに備える、Ｃ２１に記載の装置。
［Ｃ２９］
前記運動計画をするための手段は、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するための手段をさらに備える、Ｃ２８に記載の装置。
［Ｃ３０］
前記運動計画をするための手段は、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択するための手段と、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定するための手段と
をさらに備える、Ｃ２８に記載の装置。
［Ｃ３１］
ロボットに視覚ナビゲーションを提供するためのプログラムコードを記録した非一時的なコンピュータ可読媒体であって、前記プログラムコードは、プロセッサによって実行され、
３次元（３Ｄ）マップを生成するように深度マップを位置推定情報と統合するためのプログラムコードと、
前記３Ｄマップ、前記位置推定情報、またはユーザ入力に少なくとも部分的に基づいて運動計画をするためのプログラムコードと、前記運動計画をすることは、前記ユーザ入力が衝突を引き起こすと予測されるとき前記ユーザ入力を無効にする、
を備える、非一時的なコンピュータ可読媒体。
［Ｃ３２］
前記プログラムコードは、
複数のカメラから前記深度マップを決定するためのプログラムコードと、
複数のセンサから前記位置推定情報を取得するためのプログラムコードと
をさらに備える、Ｃ３１に記載の非一時的なコンピュータ可読媒体。
［Ｃ３３］
前記位置推定情報は、画像情報、慣性センサ情報、またはこれらの組合せのうちの少なくとも１つを備える、Ｃ３２に記載の非一時的なコンピュータ可読媒体。
［Ｃ３４］
前記プログラムコードは、ジャイロスコープ、加速度計、またはこれらの組合せのうちの少なくとも１つから前記慣性センサ情報を取得するためのプログラムコードをさらに備える、Ｃ３３に記載の非一時的なコンピュータ可読媒体。
［Ｃ３５］
前記プログラムコードは、ステレオカメラから取得された測定値に基づいて前記深度マップを生成するためのプログラムコードをさらに備える、Ｃ３１に記載の非一時的なコンピュータ可読媒体。
［Ｃ３６］
前記プログラムコードは、前記ユーザ入力を無効にするときに、新たな軌跡、新たな速度、またはこれらの組合せのうちの少なくとも１つを選択するためのプログラムコードをさらに備える、Ｃ３１に記載の非一時的なコンピュータ可読媒体。
［Ｃ３７］
前記運動計画をするためのプログラムコードは、前記ユーザ入力を介して受信された軌跡、速度、またはこれらの組合せのうちの少なくとも１つが前記衝突を引き起こすと予測されると、前記ユーザ入力を無効にするためのプログラムコードをさらに備える、Ｃ３１に記載の非一時的なコンピュータ可読媒体。
［Ｃ３８］
前記運動計画をするためのプログラムコードは、
前記３Ｄマップ中の複数の衝突のない地点を無作為に選択するためのプログラムコードと、
前記複数の衝突のない地点のうちの少なくとも２つの間の少なくとも１つの衝突のない経路を決定するためのプログラムコードと、
前記少なくとも１つの衝突のない経路に少なくとも部分的に基づいて目標までの最小コスト経路を決定するためのプログラムコードと
をさらに備える、Ｃ３１に記載の非一時的なコンピュータ可読媒体。
［Ｃ３９］
前記運動計画をするためのプログラムコードは、前記最小コスト経路に沿って障害物が見られるとき前記最小コスト経路を変更するためのプログラムコードをさらに備える、Ｃ３８に記載の非一時的なコンピュータ可読媒体。
［Ｃ４０］
前記運動計画をするためのプログラムコードは、
マッピングされていないエリア中の複数の予測される衝突のない地点を無作為に選択するためのプログラムコードと、
前記複数の予測される衝突のない地点のうちの少なくとも２つの間の少なくとも１つの予測される衝突のない経路を決定するためのプログラムコードと
をさらに備える、Ｃ３８に記載の非一時的なコンピュータ可読媒体。
【国際調査報告】
2019500693.tif 000017
2019500693.tif 000018