(57)【要約】  自律ナビゲーションにおける動的経路計画のためのシステムおよび方法が開示される。いくつかの例示的な実施態様では、ロボットは、環境内の１つ以上の物体上の検出点を含む環境に関するデータを収集するように構成された１つ以上のセンサを有することができる。その後、ロボットは環境内に経路を計画することができ、その経路は、１つ以上の経路姿勢を含むことができる。経路姿勢は、経路に沿ったロボットの姿勢、サイズ、および形状の少なくとも一部を示すフットプリントを含むことができる。各経路姿勢は、中に複数の点を有し得る。他の経路姿勢、環境内の物体などによって各経路姿勢の点に及ぼされる力に基づいて、各経路姿勢は、再配置することができる。経路姿勢（そのうちのいくつかは再配置され得る）に対して実行された補間に少なくとも部分的に基づいて、ロボットは動的に経路指定することができる。【選択図】図７
2020502630.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令が格納された非一時的なコンピュータ可読記憶装置であって、前記命令が、ロボットを動作させるために処理装置によって実行可能であり、前記命令が、前記処理装置によって実行されるとき、前記処理装置に、
１つ以上のセンサからのデータを使用して環境の地図を生成することと、
前記地図上の経路を決定することであって、前記経路が、１つ以上の経路姿勢を含み、各経路姿勢が、前記経路に沿った前記ロボットの姿勢および形状の少なくとも一部を示すフットプリントを含み、各経路姿勢には、複数の点が中に配置されている、決定することと、
前記環境内の物体上の点から前記１つ以上の経路姿勢のうちの第１の経路姿勢の前記複数の点への反発力を計算することと、を行なわせるように構成されている、非一時的なコンピュータ可読記憶装置。
【請求項２】
前記処理装置によって実行されるとき、前記処理装置に、前記１つ以上の経路姿勢のうちの別の経路姿勢上の点から、前記第１の経路姿勢の前記複数の点に及ぼされる引力をさらに決定させる、１つ以上の命令をさらに含む、請求項１に記載の非一時的なコンピュータ可読記憶装置。
【請求項３】
前記処理装置によって実行されるとき、前記処理装置に、前記１つ以上の経路姿勢のうちの別の経路姿勢上の点から、前記第１の経路姿勢の前記複数の点に及ぼされるトルク力をさらに決定させる、１つ以上の命令をさらに含む、請求項１に記載の非一時的なコンピュータ可読記憶装置。
【請求項４】
環境内のロボットの動的ナビゲーションのための方法であって、
１つ以上のセンサからのデータを使用して前記環境の地図を生成することと、
前記地図上の経路を決定することであって、前記経路が、１つ以上の経路姿勢を含み、各経路姿勢が、前記経路に沿った前記ロボットの姿勢および形状の少なくとも一部を示すフットプリントを含み、各経路姿勢には、複数の点が中に配置されている、決定することと、
前記環境内の物体上の点から前記１つ以上の経路姿勢のうちの第１の経路姿勢の前記複数の点への反発力を計算することと、
少なくとも前記反発力に応じて前記第１の経路姿勢を再配置することと、
前記再配置された第１の経路姿勢と、前記１つ以上の経路姿勢のうちの別の経路姿勢との間の補間を実行することと、を含む、方法。
【請求項５】
前記１つ以上の経路姿勢のうちの別の経路姿勢上の点から、前記第１の経路姿勢の前記複数の点に及ぼされる引力を決定することをさらに含む、請求項４に記載の方法。
【請求項６】
前記１つ以上のセンサを用いて前記環境内の複数の物体を検出することであって、前記複数の物体のそれぞれが、検出点を有する、前記環境内の複数の物体を検出することと、
力関数を定義することであって、前記力関数が、前記第１の経路姿勢の前記複数の点上に前記複数の物体の前記検出点のそれぞれによって及ぼされる反発力を計算し、各反発力はベクトルを含む、力関数を定義することと、をさらに含む、請求項４に記載の方法。
【請求項７】
前記第１の経路姿勢を再配置することが、前記力関数の最小値を計算することを含む、請求項６に記載の方法。
【請求項８】
前記第１の経路姿勢の前記再配置が、前記第１の経路姿勢を並進および回転させることを含む、請求項４に記載の方法。
【請求項９】
前記補間が、
前記ロボットの前記形状と実質的に同様のフットプリントを有する補間経路姿勢を生成することと、
並進および回転される前記第１の経路姿勢と、少なくとも前記１つ以上の経路姿勢の前記別の経路姿勢との間の衝突のないパスに基づいて、前記補間経路姿勢の前記並進および回転を決定することと、を含む、請求項４に記載の方法。
【請求項１０】
前記物体上の前記点が、前記第１の経路姿勢の前記フットプリントの外側にある場合、前記物体上の前記点と前記第１の経路姿勢の前記複数の点のそれぞれとの間の距離に比例するように、前記反発力の大きさを計算することをさらに含む、請求項４に記載の方法。
【請求項１１】
前記物体上の前記点が、前記第１の経路姿勢の前記フットプリントの内側にある場合、前記物体上の前記点と前記第１の経路姿勢の前記複数の点のそれぞれとの間の距離に反比例するように、前記反発力の大きさを計算することをさらに含む、請求項４に記載の方法。
【請求項１２】
前記反発力による前記第１の経路姿勢の前記複数の点への前記トルク力を計算することをさらに含む、請求項４に記載の方法。
【請求項１３】
ロボットであって、
環境内の１つ以上の物体上の検出点を含む前記環境に関するデータを収集するように構成された１つ以上のセンサと、
コントローラであって、
前記収集されたデータに少なくとも部分的に基づいて前記環境の地図を作成することと、
前記ロボットが移動する前記地図内の経路を決定することと、
前記経路上の１つ以上の経路姿勢を生成することであって、各経路姿勢が、前記経路に沿った前記ロボットの姿勢を示すフットプリントを含み、各経路姿勢には、複数の点が中に配置されている、生成することと、
各経路姿勢の前記複数の点のそれぞれにかかる力を決定することであって、前記力が、前記１つ以上の物体上の前記検出点のうちの１つ以上からの反発力と、前記１つ以上の経路姿勢の他の経路姿勢の前記複数の点のうちの１つ以上からの引力とを含む、決定することと、
前記１つ以上の経路姿勢の各点にかかる前記力に応じて、１つ以上の経路姿勢を再配置することと、
前記ロボットが移動するための１つ以上の経路姿勢の間の衝突のないパスを生成するために、前記１つ以上の経路姿勢間の補間を実行することと、を行うように構成された、コントローラと、を備える、ロボット。
【請求項１４】
前記１つ以上の経路姿勢が、前記ロボットが経路に沿って移動するシーケンスを形成し、
前記補間が、前記１つ以上の経路姿勢のうちの連続するものの間の線形補間を含む、請求項１３に記載のロボット。
【請求項１５】
前記補間が、各経路姿勢の前記フットプリントと実質的に同様のフットプリントを有する１つ以上の補間経路姿勢を生成する、請求項１３に記載のロボット。
【請求項１６】
前記１つ以上の経路姿勢の各点にかかる前記力の前記決定が、各経路姿勢の各点にかかる前記力を前記環境内の物体の１つ以上の特性に少なくとも部分的に関連付ける力関数の計算をさらに含む、請求項１３に記載のロボット。
【請求項１７】
前記１つ以上の特性が、距離、形状、材料、および色のうちの１つ以上を含む、請求項４に記載のロボット。
【請求項１８】
前記力関数が、第１の検出点と第１の経路姿勢の第２の点との間の距離が所定の距離閾値を超える、第１の物体上の前記第１の検出点によって及ぼされるゼロ反発力を関連付ける、請求項４に記載のロボット。
【請求項１９】
各経路姿勢の前記フットプリントが、前記ロボットの前記フットプリントと実質的に同様のサイズおよび形状を有する、請求項１３に記載のロボット。
【請求項２０】
前記ロボットは床清掃機を含む、請求項１３に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権
本出願は、同一表題の２０１６年１１月２日に出願された共同所有および同時係属中の米国特許出願第１５／３４１，６１２号に対する優先権の利益を主張し、それらの内容は参照によりその全体が本明細書に組み込まれる。
【０００２】
著作権
本特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権所有者は、特許商標庁の特許ファイルまたは記録に記載されているような特許文書または特許開示のいずれかによるファクシミリ複製には異論を唱えないが、それ以外の全ての著作権を留保する。
【０００３】
本出願は、一般に、ロボット工学に関し、より具体的には、自律ナビゲーションにおける動的経路計画のためのシステムおよび方法に関する。
【背景技術】
【０００４】
ロボットナビゲーションは複雑な問題であり得る。場合によっては、ロボットは、移動する経路を決定することができる。実例として、ロボットは、ユーザによって示された経路を学習することができる（例えば、ユーザは、経路に沿ってロボットを制御することができ、および／または経路を含む地図をアップロードすることができる）。別の例として、ロボットは、環境に関するその知識（例えば、地図）に基づいて、環境内のロボット自身の経路を計画することができる。しかしながら、生じ得る課題は、ロボットが経路を決定した後に、環境の特色が変わり得ることである。例えば、ものが経路のパスに入ることがあり、および／または環境の一部が変化することがある。現在のロボットは、これらの変化（例えば、障害物）に応じてその計画されたパスをリアルタイムで調整することができない可能性がある。そのような状況では、現在のロボットは停止し得、物体に衝突し得、および／またはその経路に次善の調整を加え得る。したがって、動的経路計画のためのシステムおよび方法を含む、自律ナビゲーションのための改善されたシステムおよび方法が必要とされている。
【発明の概要】
【０００５】
前述の必要性は、とりわけ、自律ナビゲーションにおける動的経路計画のための装置および方法を提供する本開示によって満たされる。本明細書に記載されている例示的な実施態様は、革新的な特色を有しており、そのうちの単一のものが、それらの望ましい属性に対して不可欠ではなく、または単独でその責を担うものでもない。特許請求の範囲の範囲を限定することなく、有利な特色のうちのいくつかをここで要約する。
【０００６】
第１の態様において、ロボットが開示される。１つの例示的な実施態様では、ロボットは、環境内の１つ以上の物体上の検出点を含む環境に関するデータを収集するように構成された１つ以上のセンサと、コントローラであって、収集されたデータに少なくとも部分的に基づいて環境の地図を作成し、ロボットが移動する地図内の経路を決定し、経路上の１つ以上の経路姿勢であって、各経路姿勢が、経路に沿ったロボットの姿勢を示すフットプリントを含み、各経路姿勢には、複数の点が中に配置されている、経路上の１つ以上の経路姿勢を生成し、各経路姿勢の複数の点のそれぞれにかかる力であって、その力は、１つ以上の物体上の検出点の１つ以上からの反発力と、１つ以上の経路姿勢の他の経路姿勢上の複数の点の１つ以上からの引力とを含む、各経路姿勢の複数の点のそれぞれにかかる力を決定し、１つ以上の経路姿勢の各点への力に応じて１つ以上の経路姿勢を再配置し、ロボットが移動するための１つ以上の経路姿勢間に衝突のないパスを生成するために、１つ以上の経路姿勢間の補間を実行するように構成されたコントローラと、を含む。
【０００７】
一変形態様では、１つ以上の経路姿勢は、ロボットが経路に沿って移動するシーケンスを形成する。補間は、１つ以上の経路姿勢のうちの連続するものの間の線形補間を含む。
【０００８】
別の変形態様では、補間は、各経路姿勢のフットプリントと実質的に同様のフットプリントを有する１つ以上の補間経路姿勢を生成する。別の変形態様では、１つ以上の経路姿勢の各点にかかる力の決定は、各経路姿勢の各点にかかる力を環境内の物体の１つ以上の特性に少なくとも部分的に関連付ける力関数を計算することをさらに含む。
【０００９】
別の変形態様では、１つ以上の特性は、距離、形状、材料、および色のうちの１つ以上を含む。別の変形態様では、力関数は、第１の経路姿勢の第１の点と第２の点との間の距離が所定の距離閾値を超える、第１の物体上の第１の検出点によって及ぼされるゼロ反発力を関連付ける。
【００１０】
別の変形態様では、各経路姿勢のフットプリントは、ロボットのフットプリントと実質的に同様のサイズおよび形状を有する。
【００１１】
別の変形態様では、ロボットは床清掃機を含む。
【００１２】
第２の態様では、ロボットの動的ナビゲーションのための方法が開示される。１つの例示的な実施態様では、本方法は、１つ以上のセンサからのデータを使用して環境の地図を生成することと、地図上の経路を決定することであって、経路が、１つ以上の経路姿勢を含み、各経路姿勢が、経路に沿ったロボットの姿勢および形状の少なくとも一部を示すフットプリントを含み、各経路姿勢には、複数の点が中に配置されている、決定することと、環境内の物体上の点から１つ以上の経路姿勢のうちの第１の経路姿勢の複数の点への反発力を計算することと、少なくとも反発力に応じて第１の経路姿勢を再配置することと、再配置された第１の経路姿勢と１つ以上の経路姿勢のうちの別の経路姿勢との間の補間を実行することと、を含む。
【００１３】
一変形態様では、１つ以上の経路姿勢のうちの別の経路姿勢上の点から第１の経路姿勢の複数の点に及ぼされる引力を決定する。別の変形では、１つ以上のセンサを用いて環境内の複数の物体を検出することであって、複数の物体のそれぞれが検出点を有する、環境内の複数の物体を検出することと、力関数を定義することであって、力関数は、第１の経路姿勢の複数の点上の複数の物体の検出点のそれぞれによって及ぼされる反発力を計算し、各反発力はベクトルである、力関数を定義することとを行う。
【００１４】
別の変形態様では、第１の経路姿勢を再配置することは、力関数の最小値を計算することを含む。
【００１５】
別の変形態様では、第１の経路姿勢を再配置することは、第１の経路姿勢を並進および回転させることを含む。
【００１６】
別の変形態様では、補間は、ロボットの形状と実質的に同様のフットプリントを有する補間経路姿勢を生成することと、並進および回転される第１の経路姿勢と１つ以上の経路姿勢のうちの別の経路姿勢との間の衝突のないパスに少なくとも基づいて、補間経路姿勢の並進および回転を決定することと、を含む。
【００１７】
別の変形態様では、方法は、物体上の点が第１の経路姿勢のフットプリントの外側にある場合、物体上の点と第１の経路姿勢の複数の点のそれぞれとの間の距離に比例するように反発力の大きさを計算することをさらに含む。
【００１８】
別の変形態様では、物体上の点が第１の経路姿勢のフットプリントの内側にある場合、物体上の点と第１の経路姿勢の複数の点のそれぞれとの間の距離に反比例するように反発力の大きさを計算する。
【００１９】
別の変形態様では、方法は、反発力による第１の経路姿勢の複数の点へのトルク力を計算することをさらに含む。
【００２０】
第３の態様では、非一時的なコンピュータ可読記憶装置が開示される。一実施形態では、非一時的なコンピュータ可読記憶装置には、ロボットを動作させるために処理装置によって実行可能な複数の命令が格納されている。命令は、処理装置によって実行されるとき、処理装置に以下のことを行わせるように構成される。すなわち、１つ以上のセンサからのデータを使用して環境の地図を生成することと、地図上の経路を決定することであって、経路が、１つ以上の経路姿勢を含み、各経路姿勢が、経路に沿ったロボットの姿勢および形状の少なくとも一部を示すフットプリントを含み、各経路姿勢には、複数の点が中に配置されている、前記決定することと、環境内の物体上の点から１つ以上の経路姿勢のうちの第１の経路姿勢の複数の点への反発力を計算することである。
【００２１】
一変形態様では、命令は、処理装置によって実行されるとき、処理装置に、１つ以上の経路姿勢のうちの別の経路姿勢上の点から第１の経路姿勢の複数の点に及ぼされる引力をさらに決定させる。
【００２２】
別の変形態様では、命令は、処理装置によって実行されるとき、処理装置に、１つ以上の経路姿勢のうちの別の経路姿勢上の点から第１の経路姿勢の複数の点に及ぼされるトルク力をさらに決定させる。
【００２３】
本開示のこれら、および他の目的、特色、および特性ならびに構造の関連要素の操作および機能の方法ならびに部品の組み合わせおよび製造の経済は、それらの全てが本明細書の一部分を形成し、同様の参照番号は様々な図における対応する部分を示す、添付の図面を参照し、次の説明および添付の特許請求の範囲を考慮することにより、より明らかになるであろう。しかしながら、図面は、例示および説明の目的のみのためであり、本開示の限界の画定を意図するものではないことは、明白に理解されるべきである。本明細書および特許請求の範囲で使用されているように、「ａ」、「ａｎ」および「ｔｈｅ」の単数形は、文脈上他に明確に指示されない限り、複数の指示対象を含む。
【図面の簡単な説明】
【００２４】
開示された態様は、添付の図面と併せて以下で説明され、開示される態様を例示するために提供され、限定するために提供されるものではなく、同様の名称は同様の要素を示す。
【００２５】
【図１】本開示の原理による、ロボットの例示的な本体形態の様々な側面図を示す。
【図２Ａ】本開示のいくつかの実施態様による、パスをナビゲートするロボットを示す俯瞰図である。
【図２Ｂ】ロボットが環境内で経路を自律的に移動する前の、ロボットへの経路を示すユーザの俯瞰図を示す。
【図３】本開示のいくつかの原理による、ロボットの機能ブロック図である。
【図４Ａ】本開示のいくつかの実施態様による、ロボットと障害物との間の相互作用を示す上面図である。
【図４Ｂ】本開示の実施態様による、グローバル層、中間層、およびローカル層の図である。
【図４Ｃ】本開示のいくつかの実施態様による、動的経路計画のための例示的な方法のプロセスフロー図である。
【図４Ｄ】本開示のいくつかの実施態様による、物体によって及ぼされる反発力と共に経路姿勢の俯瞰図を示す。
【図４Ｅ】本開示のいくつかの実施態様による、経路姿勢間の引力を示す俯瞰図を示す。
【図５】本開示のいくつかの実施態様による、経路姿勢間の補間を示す図の俯瞰図である。
【図６】本開示のいくつかの実施態様による、ロボットの動作についての例示的な方法のプロセスフロー図である。
【図７】本開示のいくつかの実施態様による、ロボットの動作についての例示的な方法のプロセスフロー図である。
【００２６】
本明細書に開示されている全ての図面は著作権により保護されている。（著作権）Ｃｏｐｙｒｉｇｈｔ  ２０１７  Ｂｒａｉｎ  Ｃｏｒｐｏｒａｔｉｏｎ。全著作権所有。
【発明を実施するための形態】
【００２７】
本明細書に開示された新規なシステム、装置、および方法の様々な態様は、添付の図面を参照して以下でより完全に記載される。しかしながら、本開示は、多くの異なる形態で具現化することができ、本開示全体を通して提示される具体的な構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であるように、また、本開示の範囲を当業者に十分に伝えるように提供される。本明細書における教示に基づいて、当業者は、本開示の範囲が、本開示の任意の他の態様とは独立して実装されるか、組み合わせられて実装されるかにかかわらず、本明細書に開示される新規のシステム、装置、および方法の任意の態様を包含することを意図していることを理解するはずである。例えば、本明細書に記載の任意の数の態様を使用して、装置を実装することができ、または方法を実施することができる。その上、本開示の範囲は、本明細書に記載された開示の様々な態様に加えて、あるいはそれ以外の他の構造、機能、または構造および機能を使用して実施されるような装置または方法を包含するように意図されている。本明細書に開示される任意の態様は、特許請求項の１つ以上の要素によって実装され得ることを理解されたい。
【００２８】
特定の態様が本明細書に記載されているが、これらの態様の多くの変形および置換が本開示の範囲内に含まれる。好ましい態様のいくつかの利点および利益が述べられているが、本開示の範囲は、特定の利点、用途、および／または目的に限定されることを意図しない。詳細な説明および図面は、限定ではなく本開示の単なる例示であり、開示の範囲は、添付の特許請求の範囲およびその同等物によって定義される。
【００２９】
本開示は、自律ナビゲーションにおける動的経路計画のための改善されたシステムおよび方法を提供する。本明細書で使用されるように、ロボットは、複雑な一連の動作を自動的に成し遂げるように構成された機械的または仮想的エンティティを含むことができる。場合によっては、ロボットは、コンピュータプログラムまたは電子回路によって誘導される機械であってもよい。場合によっては、ロボットは、ロボットがある場所から別の場所に移動できるナビゲーション用に構成された電子機械コンポーネントを含むことができる。そのようなナビゲートロボットは、自律型自動車、床清掃機、ローバー（ｒｏｖｅｒ）、ドローン、カートなどを含むことができる。
【００３０】
本明細書で言及されるように、床清掃機は、手動制御（例えば、駆動制御または遠隔制御）および／または自律（例えば、ユーザ制御をほとんどまたは全く用いない）床清掃機を含むことができる。例えば、床清掃機は、管理者、管理人、または他の人が操作する床洗浄機、および／または環境を自律的にナビゲートおよび／または清掃するロボット床洗浄機を含むことができる。同様に、床清掃機はまた、掃除機、スチーマ、バッファ、モップ、ポリッシャ、スイーパ、バニッシャなどを含み得る。
【００３１】
本開示のシステムおよび方法の様々な実施態様および変形例の詳細な説明がここで提供される。本明細書で考察される多くの実施例は、ロボット床清掃機の文脈にあるが、本明細書に含まれる記載されたシステムおよび方法は、他のロボットにおいて使用できることが理解されよう。本明細書に記載された技術の無数の他の例示的な実施態様または使用は、本開示の内容が与えられれば、当業者によって容易に想定されるであろう。
【００３２】
有利なことに、本開示のシステムおよび方法は、少なくとも、（ｉ）自律的にナビゲートするロボットにおいて動的経路計画を提供し、（ｉｉ）リソース（例えば、エネルギー、燃料、洗浄液など）の改善されたおよび／または効率的な利用を可能にすることができるナビゲーション環境における効率を高め、（ｉｉｉ）ロボットをナビゲートする際の処理電力、エネルギー、時間、および／または他のリソースの消費を減らすことができる計算効率を提供する。他の利点は、本開示の内容を与えられた当業者が容易に認識することができる。
【００３３】
例えば、自律的にナビゲートすることができる多くの現在のロボットは、目標への経路および／またはパスをナビゲートするようにプログラムされている。これらの経路をナビゲートするために、これらのロボットは、パス計画（例えば、グローバルソリューション）を作成することができる。また、これらのロボットは、その周囲の小さな範囲（例えば、数メートル程度）に局所的な計画を立てることができ、そこで、ロボットは、（典型的には、物体が検出されると方向転換する基本コマンドを用いて）ロボットのセンサによって検出された障害物の周りをどのようにナビゲートするかを決定することができる。ロボットはパターン内の空間をトラバースすることができ、例えば、停止、減速、左右への逸脱などによって、ロボットのセンサによって検出された障害物を回避することができる。しかしながら、多くの現在の適用では、そのようなトラバースおよび回避は複雑になり得、ロボットは、望ましくない結果（例えば、停止または衝突）を受け得るか、および／またはより複雑な状況によってナビゲートすることができない可能性がある。場合によっては、そのような現在の適用は、計算コストも高くなり得、および／または実行が遅くなり得、ロボットを不自然に行動させてしまう。
【００３４】
有利なことに、本明細書に開示されるシステムおよび方法を使用して、ロボットは、そのプログラミングから逸脱することができ、より効率的なパスに追従したり、および／または障害物を回避するためにより複雑な調整を行う。本明細書に記載のいくつかの実施態様では、そのような動きは、より効率的でより高速な手法で決定することができ、これはまた、ロボットがより複雑なパスを計画するにつれてより自然に見える。
【００３５】
当業者は、本明細書で言及されるように、ロボットが多くの異なる外観／形態を有し得ることを理解するであろう。図１は、本開示の原理による、ロボットの例示的な本体形態の様々な側面図を示す。これらは、様々な本体形態をさらに例示することを意味するが、本明細書に記載のロボットを任意の特定の本体形態に制限することを意味しない非限定的な例である。例えば、本体形態１００は、ロボットが直立型の店舗用掃除機である例を示す。本体形態１０２は、ロボットが人体に実質的に同様の外観を有する人型ロボットである例を示す。本体形態１０４は、ロボットがプロペラを有するドローンである例を示す。本体形態１０６は、ロボットが車輪および客室を有する車両外形を有する例を示す。本体形態１０８は、ロボットがローバーである例を示す。
【００３６】
本体形態１１０は、ロボットが電動式床洗浄機である例であり得る。本体形態１１２は、シート、ペダル、およびステアリングホイールを有する電動式床洗浄機であり得、この場合、ユーザは、本体形態１１２が掃除をするときに、車のように本体形態１１２を運転することができるが、本体形態１１２はまた、自律的に動作してもよい。例えば、フォークリフト、タグボート、ボート、飛行機などのようなロボット化することができる産業用機械を含む他の本体形態がさらに企図される。
【００３７】
図２Ａは、本開示のいくつかの実施態様による、パス２０６をナビゲートするロボット２０２の俯瞰図である。ロボット２０２は、様々な物体２０８、２１０、２１２、２１８を含み得る環境２００を通って自律的にナビゲートすることができる。ロボット２０２は、初期の場所から始まり、終了の場所で終わることができる。図示のように、初期位置と終了位置は実質的に同じであり、実質的に閉ループを示している。しかしながら、他の場合では、初期の場所と終了の場所は実質的に同じではなく、開ループを形成することがある。
【００３８】
実例として、いくつかの実施態様では、ロボット２０２は、例えば、ロボット式床洗浄機、真空掃除機、スチーマ、モップ、バニッシャ、スイーパ、および同様のものなどのロボット式床清掃機であり得る。環境２００は、清掃が望まれる床を有する空間とすることができる。例えば、環境２００は、店舗、倉庫、オフィスビル、家、貯蔵施設などであり得る。物体２０８、２１０、２１２、２１８のうちの１つ以上は、床の上にあり得るか、そうでなければロボットが環境２００を通ってナビゲートする能力を妨げ得る、棚、ディスプレイ、物体、物品、人、動物、または任意の実体もしくは物であってもよい。経路２０６は、自律的にロボット２０２によって移動される清掃パスであり得る。経路２０６は、経路２０６の例に示すように、物体２０８、２１０、２１２、２１８の間を進むパスを辿ることができる。例えば、物体２０８、２１０、２１２、２１８が店内の棚である場合、ロボット２０２は、店の通路に沿って動き得、通路の床を清掃することができる。しかしながら、限定はしないが、開放床領域に沿っておよび／または（例えば、ユーザが床清掃機を手動で操作している場合には）ユーザが床を清掃するために使用することができる任意の清掃パスに沿って、前後に進むことなどの他の経路もまた企図される。場合によっては、ロボット２０２は一部分の上を複数回通ることができる。したがって、経路は、それ自体の上に一部重なることがある。したがって、経路２０６は、単に例示的な例として意図されており、例示されているものとは異なって現れてもよい。また、図示のように、環境２００の一例が示されているが、環境２００は（例えば、部屋または建物の任意のサイズ、構成、およびレイアウトの）任意の数の形態および配置をとることができ、本開示の例示的な説明によって限定されない。
【００３９】
経路２０６において、ロボット２０２は、ロボット２０２の開始点であり得る、初期の場所から開始することができる。その後、ロボット２０２は、ロボットが清掃を停止することができる終了の場所に到達するまで、経路２０６に沿って自律的に（例えば、ユーザからの制御を殆どまたは全く伴わずに）清掃することができる。終了の場所は、ユーザによって指定されてもよく、および／またはロボット２０２によって決定されてもよい。場合によっては、終了の場所は、経路２０６内の場所であって、その後にロボット２０２が床の所望の範囲を清掃した経路２０６内の場所とすることができる。前述のように、経路２０６は、閉ループまたは開ループとすることができる。例示的な例として、終了の場所は、例えば、一時的な駐車場、保管室／クローゼット、および同様の場所などの、ロボット２０２用の保管のための場所とすることができる。場合によっては、終了の場所は、ロボット２０２のためのユーザトレーニングおよび／またはプログラミングタスクがトレーニングおよび／またはプログラミングを停止した点とすることができる。
【００４０】
床清掃機（例えば、床洗浄機、真空掃除機など）の文脈では、ロボット２０２は、経路２０６に沿ったあらゆる点で清掃してもよいし、または清掃しなくてもよい。実例として、ロボット２０２がロボット式床洗浄機である場合、ロボット２０２の清掃システム（例えば、水流、清掃ブラシなど）は、経路２０６の一部分でのみ動作し、他の部分では動作しないことがある。例えば、ロボット２０２は、特定の行動（例えば、方向転換、水のオン／オフ、水の噴霧、真空のオン／オフ、真空ホース位置の移動、アームの動き、リフトの上げ／下げ、センサの移動、センサのオン／オフ等）を示された経路に沿って（例えば、経路２０６に沿って一定の方向にまたは特定のシーケンスで移動しながら）特定の位置および／または軌跡と関連付けることができる。床清掃機の文脈では、そのような関連付けは、床の一部の領域だけが清掃されるが他の領域および／または一部の軌跡においては清掃されない場合、望ましいであろう。このような場合、ロボット２０２は、ユーザがロボット２０２に対して清掃をするように示した領域では清掃システムをオンにし、そうでなければ清掃システムをオフにすることができる。
【００４１】
図２Ｂは、ロボット２０２が環境２００内で経路２０６を自律的に移動する前の、ロボット２０２への経路２１６を示すユーザの俯瞰図を示す。経路２１６を示す際に、ユーザは、初期の場所でロボット２０２を始動させることができる。その後、ロボット２０２は、物体２０８、２１０、２１２、２１８の周りを進むことができる。ロボット２０２は、前述したように、終了の場所で停止することができる。場合によっては（図示されているように）、自律的にナビゲートされた経路２０６は、示された経路２１６と全く同じであり得る。場合によっては、経路２０６は、経路２１６と正確に同じではないかもしれないが、実質的に同様であり得る。例えば、ロボット２０２が経路２０６をナビゲートするときに、ロボット２０２は、ロボットのセンサを使用して、ロボットがその周囲のものとの関係においてどこにあるかを検知する。そのような検知は、場合によっては不正確であり得、それにより、ロボット２０２に、示されたおよびロボット２０２が従うようにトレーニングされた正確な経路をナビゲートさせない可能性がある。場合によっては、例えば、棚の移動および／または棚上の物品の変化などの環境２００への小さな変化によって、ロボット２０２が経路２０６を自律的にナビゲートするときにロボット２０２を経路２１６から逸脱させる可能性がある。別の例として、前述のように、ロボット２０２は、経路２０６を自律的にナビゲートするときに、物体の周りに方向転換したり、速度を落としたりすることによって、物体を回避することができる。これらの物体は、ユーザが経路２１６を示したときには存在しなかった（また、回避されなかった）かもしれない。例えば、物体は、一時的なおよび／または一過性のものでもよく、および／または環境２００に対する一過性のおよび／または動的な変化でもよい。別の例として、ユーザは、経路２１６を示す手際が悪かった可能性がある。例えば、ユーザは、壁、棚、物体、障害物などに衝突させたおよび／またはぶつけた可能性がある。別の例として、ユーザが経路２１６を示している間に障害物が存在したが、ロボット２０２が経路２０６を自律的にナビゲートするときには存在しなかった可能性がある。これらの場合、ロボット２０２は、壁、棚、物体、障害物などに衝突することおよび／またはぶつかることなどの、ロボットが修正することができる１つ以上の行動をメモリ（例えば、メモリ３０２）に記憶することができる。次いで、ロボット２０２が（例えば、経路２０６として）示された経路２１６を自律的にナビゲートするとき、ロボット２０２は、そのような行動を修正し得、ロボットが自律的にナビゲートしているときにそれらを実行しない（例えば、壁、棚、物体、障害物などに衝突しないおよび／またはぶつからない）ことができる。このようにして、ロボット２０２は、例えば、示された経路などのナビゲート可能な経路の少なくとも一部を自律的にナビゲートしないことを決定することができる。いくつかの実施態様では、ナビゲート可能な経路の少なくとも一部を自律的にナビゲートしないことの決定は、いつ障害物および／または物体を回避するかの決定を含む。
【００４２】
前述のように、ユーザが経路２１６を示すとき、ユーザは、経路２１６に沿って清掃するために（その後、ロボット２０２が経路２０６を自律的に清掃するときに）、ロボット２０２をどこで（例えば、どの位置で）、および／またはどの軌道に沿ってトレーニングするために、ロボット２０２の清掃システムをオン／オフにするか、または他の行動を実行することができる。ロボットはこれらの行動をメモリ３０２に記録し、後で自律的にナビゲートするときにそれらの行動を実行することができる。これらの行動は、ロボット２０２が実行し得る任意の行動、例えば、方向転換、水のオン／オフ、水の噴霧、真空のオン／オフ、真空ホース位置の移動、アームの動き、リフトの上げ／下げ、センサの移動、センサのオン／オフなどを含み得る。
【００４３】
図３は、本開示のいくつかの原理による、ロボット２０２の機能ブロック図である。図３に示されるように、ロボット２０２は、コントローラ３０４、メモリ３０２、ユーザインターフェースユニット３０８、外部受容センサユニット３０６、固有受容センサユニット３１０、および通信ユニット３１２、ならびに他の構成要素およびサブコンポーネント（例えば、それらのうちのいくつかは図示されてない可能性がある）を含み得る。特定の実施態様が図３に示されているが、本開示の内容が与えられれば当業者には容易に明らかであるように、アーキテクチャは特定の実施態様において変更され得ることが理解される。
【００４４】
コントローラ３０４は、ロボット２０２によって実行される様々な動作を制御することができる。コントローラ３０４は、１つ以上のプロセッサ（例えば、マイクロプロセッサ）および他の周辺機器を含むことができる。本明細書で使用されるように、プロセッサ、マイクロプロセッサ、および／またはデジタルプロセッサは、限定はしないが、デジタル信号プロセッサ（「ＤＳＰ」）、縮小命令セットコンピュータ（「ＲＩＳＣ」）、汎用（「ＣＩＳＣ」）プロセッサ、マイクロプロセッサ、ゲートアレイ（例えば、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」））、プログラマブルロジックデバイス（「ＰＬＤ」）、再構成可能コンピュータファブリック（「ＲＣＦ」）、アレイプロセッサ、セキュアマイクロプロセッサ、専用プロセッサ（例えば、ニューロモルフィック（ｎｅｕｒｏｍｏｒｐｈｉｃ）プロセッサ）、および特定用途向け集積回路（「ＡＳＩＣ」）などの任意の種類のデジタル処理装置を含むことができる。そのようなデジタルプロセッサは、単一の集積回路ダイに含まれてもよく、複数のコンポーネントにわたって分散されてもよい。
【００４５】
コントローラ３０４は、メモリ３０２に動作可能および／または通信可能に結合されてもよい。メモリ３０２は、読み取り専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、不揮発性ランダムアクセスメモリ（「ＮＶＲＡＭ」）、プログラム可能な読み取り専用メモリ（「ＰＲＯＭ」）、電気的消去可能でプログラム可能な読み取り専用メモリ（「ＥＥＰＲＯＭ」）、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）、モバイルＤＲＡＭ、シンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）、ダブルデータレートＳＤＲＡＭ（「ＤＤＲ／２  ＳＤＲＡＭ」）、拡張データ出力（「ＥＤＯ」）ＲＡＭ、高速ページモードＲＡＭ（「ＦＰＭ」）、低遅延ＤＲＡＭ（「ＲＬＤＲＡＭ」）、スタティックＲＡＭ（「ＳＲＡＭ」）、「フラッシュ」メモリ（例えば、ＮＡＮＤ／ＮＯＲ）、メモリスタメモリ、擬似スタティックＲＡＭ（「ＰＳＲＡＭ」）などを含むが、これらに限定されない、デジタルデータを格納するように構成された任意の種類の集積回路または他の記憶デバイスを含み得る。メモリ３０２は、コントローラ３０４に命令およびデータを提供することができる。例えば、メモリ３０２は、ロボット２０２を動作させるために処理装置（例えば、コントローラ３０４）によって実行可能な、複数の命令が格納された非一時的なコンピュータ可読記憶媒体であってもよい。場合によっては、命令は、処理装置によって実行されたときに、処理装置に本開示に記載の様々な方法、特色、および／または機能を行わせるように構成することができる。したがって、コントローラ３０４は、メモリ３０２内に格納されたプログラム命令に基づいて論理演算および算術演算を行うことができる。
【００４６】
いくつかの実施態様では、外部受容センサユニット３０６は、ロボット２０２内のおよび／またはロボット２０２の周囲の特性を検出し得るシステムおよび／または方法を含むことができる。外部受容センサユニット３０６は、複数のセンサおよび／またはセンサの組み合わせを含むことができる。外部受容センサユニット３０６は、ロボット２０２の内部または外部にあるセンサ、ならびに／あるいは部分的に内部にあるおよび／または部分的に外部にあるコンポーネントを有することができる。場合によっては、外部受容センサユニット３０６は、例えば、ソナー、ＬＩＤＡＲ、レーダ、レーザ、カメラ（ビデオカメラ、赤外線カメラ、３Ｄカメラなどを含む）、飛行時間（「ＴＯＦ」）カメラ、アンテナ、マイクロホン、および／または当技術分野で既知の任意の他のセンサなどの外部受容センサを含み得る。いくつかの実施態様では、外部受容センサユニット３０６は、生の測定値（例えば、電流、電圧、抵抗ゲートロジックなど）および／または変換された測定値（例えば、距離、角度、障害物における検出点など）を収集することができる。外部受容センサユニット３０６は、少なくとも部分的には測定値に基づいてデータを生成することができる。そのようなデータは、例えば、行列、アレイなどのデータ構造に格納することができる。いくつかの実施態様では、センサデータのデータ構造は、画像と呼ばれることがある。
【００４７】
いくつかの実施態様では、固有受容センサユニット３１０は、ロボット２０２の内部特性を測定することができるセンサを含むことができる。例えば、固有受容センサユニット３１０は、温度、電力レベル、状態、および／またはロボット２０２の任意の他の特性を測定することができる。場合によっては、固有受容センサユニット３１０は、ロボット２０２のオドメトリ（ｏｄｏｍｅｔｒｙ）を決定するように構成することができる。例えば、固有受容センサユニット３１０は、例えば、加速度計、慣性測定ユニット（「ＩＭＵ」）、オドメータ、ジャイロスコープ、スピードメータ、カメラ（例えば、視覚的なオドメトリを使用）、時計／タイマ、および同様のものなどのセンサを備え得る固有受容センサユニット３１０を含むことができる。ロボット２０２の自律ナビゲーションを容易にするオドメトリ。このオドメトリは、初期の場所に対するロボット２０２の位置を含み得る（例えば、位置がロボットの場所、変位、および／または向きを含み、時には本明細書で使用されるような姿勢という用語と交換可能であり得る場合）。いくつかの実施態様では、固有受容センサユニット３１０は、生の測定値（例えば、電流、電圧、抵抗ゲートロジックなど）および／または変換された測定値（例えば、距離、角度、障害物における検出点など）を収集することができる。そのようなデータは、例えば、行列、アレイなどのデータ構造に格納することができる。いくつかの実施態様では、センサデータのデータ構造は、画像と呼ばれることがある。
【００４８】
いくつかの実施態様において、ユーザインターフェースユニット３０８は、ユーザがロボット２０２と対話できるように構成することができる。例えば、ユーザインターフェース３０８は、タッチパネル、ボタン、キーパッド／キーボード、ポート（例えば、ユニバーサルシリアルバス（「ＵＳＢ」）、デジタルビジュアルインターフェース（「ＤＶＩ」）、ディスプレイポート、イーサーター（Ｅ−Ｓａｔａ）、ファイアワイヤ（Ｆｉｒｅｗｉｒｅ）、ピーエス２（ＰＳ／２）、シリアル（Ｓｅｒｉａｌ）、ブイジーエイ（ＶＧＡ）、スカジー（ＳＣＳＩ）、オーディオポート、高精細マルチメディアインターフェース（ＨＤＭＩ）、パーソナルコンピュータメモリカード国際協会（「ＰＣＭＣＩＡ」）ポート、メモリカードポート（例えば、セキュアデジタル（「ＳＤ」）およびミニＳＤ）、および／またはコンピュータ可読媒体用のポート）、マウス、ローラーボール、コンソール、バイブレータ、オーディオトランスデューサ、および／または、ワイヤレスでもしくはワイヤを通じて結合されていようとなかろうと、ユーザがデータおよび／またはコマンドを入力および／または受信するための任意のインターフェースを含むことができる。ユーザインターフェースユニット３０８は、限定ではないが、液晶ディスプレイ（「ＬＣＤ」）、発光ダイオード（「ＬＥＤ」）ディスプレイ、ＬＥＤ・ＬＣＤディスプレイ、面内スイッチング（「ＩＰＳ」）ディスプレイ、陰極線管、プラズマディスプレイ、高精細（「ＨＤ」）パネル、４Ｋディスプレイ、レティナ（ｒｅｔｉｎａ）ディスプレイ、有機ＬＥＤディスプレイ、タッチスクリーン、サーフェイス、キャンバス、ならびに／あるいは視覚的表現のための当技術分野において既知の任意のディスプレイ、テレビ、モニタ、パネル、および／またはデバイスを含むことができる。いくつかの実施態様では、ユーザインターフェースユニット３０８は、ロボット２０２の本体上に配置することができる。いくつかの実施態様において、ユーザインターフェースユニット３０８は、ロボット２０２の本体から離れて配置され得るが、（例えば、送信機、受信機、および／または送受信機を含む通信ユニットを介して）ロボット２０２に直接的に、または（ネットワーク、サーバ、および／またはクラウドを通じて）間接的に通信可能に結合され得る。
【００４９】
いくつかの実施態様では、通信ユニット３１２は、１つ以上の受信機、送信機、および／または送受信機を含むことができる。通信ユニット３１２は、例えば、ブルートゥース（ＢＬＵＥＴＯＯＴＨ（登録商標））、ジグビー（ＺＩＧＢＥＥ（登録商標））、ワイファイ（Ｗｉ−Ｆｉ）などの伝送プロトコル、誘導無線データ伝送、無線周波数、無線伝送、無線周波数識別（「ＲＦＩＤ」）、近距離通信（「ＮＦＣ」）、赤外線、ネットワークインターフェース、例えば、３Ｇ（３ＧＰＰ／３ＧＰＰ２）などのセルラ技術、高速ダウンリンクパケットアクセス（「ＨＳＤＰＡ」）、高速アップリンクパケットアクセス（「ＨＳＵＰＡ」）、時分割多重アクセス（「ＴＤＭＡ」）、符号分割多元接続（「ＣＤＭＡ」）（例えば、ＩＳ−９５Ａ、広帯域符号分割多元接続（「ＷＣＤＭＡ」）など）、周波数ホッピングスペクトラム拡散（「ＦＨＳＳ」）、直接シーケンス拡散スペクトル「ＤＳＳＳ」）、移動体通信のためのグローバルシステム（「ＧＳＭ」）、パーソナルエリアネットワーク（「ＰＡＮ」）（例えば、ＰＡＮ／８０２．１５）、マイクロ波アクセスの世界的な相互運用性（「ＷｉＭＡＸ」）、８０２．２０、ロングタームエボリューション（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ、「ＬＴＥ」）（例えば、ＬＴＥ／ＬＴＥ−Ａ）、時分割ＬＴＥ（「ＴＤ−ＬＴＥ」）、移動体通信のためのグローバルシステム（「ＧＳＭ」）、狭帯域／周波数分割多元接続（「ＦＤＭＡ」）、直交周波数分割多重（「ＯＦＤＭ」）、アナログセルラ、セルラデジタルパケットデータ（「ＣＤＰＤ」）、衛星システム、ミリ波もしくはマイクロ波システム、音響、赤外線（例えば、赤外線データ協会規格（「ＩｒＤＡ」））、および／または無線データ伝送の任意の他の形式などを送信／受信するように構成され得る。
【００５０】
本明細書で使用される際、ネットワークインターフェースは、限定しないが、ファイアワイヤ（ＦｉｒｅＷｉｒｅ）（例えば、ＦＷ４００、ＦＷ８００、ＦＷＳ８００Ｔ、ＦＷＳ１６００、ＦＷＳ３２００など）、ユニバーサルシリアルバス（「ＵＳＢ」）（例えば、ＵＳＢ１．Ｘ、ＵＳＢ２．０、ＵＳＢ３．０、ＵＳＢ  Ｔｙｐｅ−Ｃなど）、イーサネット（例えば、１０／１００、１０／１００／１０００（ギガビットイーサネット）、１０−Ｇｉｇ−Ｅなど）、同軸同盟技術によるマルチメディア（「ＭｏＣＡ」）、コアックスシーズ（Ｃｏａｘｓｙｓ）（例えば、ＴＶＮＥＴ（商標）、無線周波数チューナ（例えば、帯域内（ｉｎ−ｂａｎｄ）または帯域外（ＯＯＢ）、ケーブルモデムなど）、Ｗｉ−Ｆｉ（８０２．１１）、ＷｉＭＡＸ（例えば、ＷｉＭＡＸ（８０２．１６））、ＰＡＮ（例えば、ＰＡＮ／８０２．１５）、セルラ（例えば、３Ｇ、ＬＴＥ／ＬＴＥ−Ａ／ＴＤ−ＬＴＥ／ＴＤ−ＬＴＥ、ＧＳＭなど）、ＩｒＤＡファミリなどのものを含む、コンポーネント、ネットワーク、またはプロセスとの任意の信号、データ、またはソフトウェアインターフェースを含むことができる。本明細書で使用される際、Ｗｉ−Ｆｉは、ＩＥＥＥ  ８０２．１１規格、ＩＥＥＥ  ８０２．１１規格の変形、ＩＥＥＥ  ８０２．１１規格に関連する規格（例えば、８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ／ａｄ／ａｆ／ａｈ／ａｉ／ａｊ／ａｑ／ａｘ／ａｙ）、および／または他の無線規格のうちの１つ以上を含むことができる。
【００５１】
通信ユニット３１２はまた、例えば、信号線および接地を有する任意のケーブルなどの有線接続を介して伝送プロトコルを送受信するように構成することもできる。例えば、そのようなケーブルは、イーサネットケーブル、同軸ケーブル、ユニバーサルシリアルバス（「ＵＳＢ」）、ファイアワイヤ、および／または当技術分野において既知の任意の接続を含むことができる。そのようなプロトコルは、例えば、コンピュータ、スマートフォン、タブレット、データキャプチャシステム、移動体通信ネットワーク、クラウド、サーバ、および同様のものなどの外部システムと通信するために通信ユニット３１２によって使用され得る。通信ユニット３１２は、数字、文字、英数字、および／または記号を含む信号を送受信するように構成することができる。場合によっては、例えば、１２８ビットまたは２５６ビット鍵などのアルゴリズム、および／または例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、ＲＳＡ、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、トリプルＤＥＳなどの規格に準拠する他の暗号化アルゴリズムを使用して、信号を暗号化することができる。通信ユニット３１２は、ステータス、コマンド、および他のデータ／情報を送受信するように構成することができる。例えば、通信ユニット３１２は、ユーザオペレータと通信して、そのユーザがロボット２０２を制御することを可能にすることができる。通信ユニット３１２は、ロボット２０２がデータ、ステータス、コマンド、および他の通信をサーバに送信することを可能にするために、サーバ／ネットワークと通信することができる。サーバはまた、ロボット２０２を遠隔的に監視および／または制御するために使用することができるコンピュータ（複数可）および／または装置（複数可）に通信可能に結合することもできる。通信ユニット３１２はまた、ロボット２０２用のサーバから更新（例えば、ファームウェアまたはデータ更新）、データ、ステータス、コマンド、および他の通信を受信することもできる。
【００５２】
いくつかの実施態様では、１つもしくは複数のコンポーネントおよび／またはサブコンポーネントは、ロボット２０２から遠隔でインスタンス化することができる。例えば、マッピングおよび位置特定ユニット２６２は、クラウド内に配置されてもよく、および／または通信ユニット３１２を介してロボット２０２に接続されてもよい。接続は直接的でもよく、ならびに／あるいはサーバおよび／またはネットワークを介してもよい。したがって、本開示の機能の実施態様はまた、通信ユニット３１２を使用してデータを転送することができ、さらにプロセスの１つ以上の部分を遠隔で完了することができる遠隔対話を含むと理解されるべきである。
【００５３】
図４Ａは、本開示のいくつかの実施態様による、ロボット２０２と障害物４０２との間の相互作用を示す上面図である。経路２１６をナビゲートする際に、ロボット２０２は障害物４０２に遭遇する可能性がある。障害物４０２は、経路部分４０４として示されているロボット２０２のパスを妨げる可能性がある。ロボットが経路部分４０４を辿り続ける場合、ロボットは障害物４０２と衝突する可能性がある。しかしながら、状況によっては、外部受容センサユニット３０６および／または固有受容センサユニット３１０を使用して、ロボット２０２は、障害物４０２と衝突する前に停止することができる。
【００５４】
障害物４０２とのこの相互作用は、本開示による実施態様の利点を示す。図４Ｂは、本開示の実施態様による、グローバル層４０６、中間層４０８、およびローカル層４１０の図である。グローバル層４０６、中間層４０８、およびローカル層４１０は、メモリ３０２および／またはコントローラ３０４のうちの１つ以上においてインスタンス化されたハードウェア層および／またはソフトウェア層とすることができる。グローバル層４０６は、グローバルマッピングおよびルーティングを実施するソフトウェアおよび／またはハードウェアを含むことができる。例えば、高レベルマッピングは、環境２００の地図を含むことができる。地図は、経路２１６の表記も含むことができ、ロボット２０２が環境２００内の空間をナビゲートすることを可能にする。
【００５５】
いくつかの実施態様では、グローバル層４０６は、グローバルプランナを含むことができる。このようにして、グローバル層４０６は、（例えば、二次元座標、三次元座標、四次元座標などのグローバル座標における）ロボット２０２の場所、ロボット２０２がその目標に到達するために取るべきであるパス、および／または高レベル（例えば、長距離）計画のうちの１つ以上を決定することができる。このようにして、ロボット２０２は、ある場所から別の場所へ移動するためのその一般的なパスおよび／または方向を決定することができる。
【００５６】
ローカル層４１０は、局所的な計画を実施するソフトウェアおよび／またはハードウェアを含む。例えば、ローカル層４１０は、動きの局所的な制約の中で操縦するために構成された短距離計画を含むことができる。ローカル層４１０は、外部受容センサユニット３０６から受信したデータを処理し得、ロボット２０２の近くの障害物および／または物体の存在ならびに／あるいは位置決めを決定し得る。例えば、物体が外部受容センサユニット３０６（例えば、ライダ（ＬＩＤＡＲ）、ソナー、カメラなど）のセンサの範囲内にある場合、ロボット２０２は、その物体を検出することができる。ローカル層４１０は、回転、前進、後退等のためにアクチュエータを制御するようなことによって、物体の周りをナビゲートするためにモータ機能を計算および／または制御することができる。場合によっては、ローカル層４１０における処理は、計算集約的であり得る。例えば、ローカル層４１０は、外部受容センサユニット３０６および／または固有受容センサユニット３１０のセンサからデータを受信することができる。次いで、ローカル層４１０は、（例えば、ステアリングコラムを左右に回転させるためにモータを使用して、および／またはロボットを前方に押すためにモータを使用して）外部受容センサユニット３０６によって検出される物体を回避するためにモータ機能を決定することができる。ローカル層４１０とグローバル層４０６との相互作用により、ロボット２０２は、その目標への経路に概ね沿って移動しながら局所的な調整を行うことが可能になり得る。
【００５７】
しかしながら、状況によっては、ローカル層４１０の正確なモータ機能の計算集約的なレベルではなく、グローバル層４０６によって計算されるものよりも細かいレベルで調整を行うことが望ましい場合がある。したがって、中間層４０８は、ロボット２０２が物体の周りをナビゲートするときにロボット２０２の中間的な調整を決定することができるハードウェアおよび／またはソフトウェアを含むことができる。
【００５８】
中間層４０８において、ロボット２０２は、その環境内の物体および／または障害物をどのように回避するかを計画することができる。場合によっては、中間層４０８は、グローバル層４０６からのグローバルパスプランナからの少なくとも部分的なパスおよび／または経路を用いて初期化され得る。
【００５９】
物体（例えば、障害物、壁など）は、ロボット２０２が衝突する可能性があるものをもたらすので、物体および／または障害物は、ロボット２０２に反発力を及ぼし得る。場合によっては、ロボット２０２に反発する物体によって、ロボット２０２は、それらの物体および／または障害物の周りの衝突のないパスに沿ってナビゲートすることができる。
【００６０】
図４Ｃは、本開示のいくつかの実施態様による、動的経路計画のための例示的な方法４５０のプロセスフロー図である。いくつかの実施態様では、方法４５０は、中間層４０８によっておよび／またはコントローラ３０４によって実行され得る。ブロック４５２は、１つ以上の経路姿勢を含む経路を取得することを含み得る。場合によっては、この経路は、ロボット２０２によって作成されてもよく、および／またはロボット２０２にアップロードされてもよい。場合によっては、その経路は、グローバル層４０６から中間層４０８に渡され得る。ブロック４５４は、第１の経路姿勢を選択することを含み得る。ブロック４５６は、第１の経路姿勢について、環境内の物体からの反発力を決定することを含み得る。ブロック４５８は、第１の経路姿勢について、他の経路姿勢からの引力を決定することを含み得る。ブロック４６０は、反発力および引力による第１の経路姿勢の並進および／または回転を決定することを含み得る。ブロック４６２は、並進および／または回転した経路姿勢を考慮した補間を実行することを含み得る。このプロセスおよびその他は、本開示全体を通して説明される。
【００６１】
実例として、図４Ｄは、本開示のいくつかの実施態様による、物体によって及ぼされる反発力と共に経路姿勢４１４および４１６を示す。例えば、経路上の点は、例えば、経路姿勢などの、パスに沿った離散化された場所であり得、その経路全体にわたるロボット２０２の姿勢を示す。場合によっては、そのような離散化された場所は、例えば、粒子や気泡などの、関連する蓋然性も有し得る。経路姿勢は、ロボット２０２が経路上を移動するであろう位置および／または向きを識別することができる。平面的な適用では、経路姿勢は（ｘ、ｙ、θ）座標を含み得る。場合によっては、θは、平面におけるロボットの方位になり得る。経路姿勢は、ロボット２０２の経路上で規則的または不規則的に離間し得る。場合によっては、方法４５０のブロック４５２に記載されているように、中間層は、１つ以上の経路姿勢を含む経路をグローバル層４０６から取得することができる。いくつかの実施態様では、経路姿勢は、シーケンスを形成することができ、ロボット２０２は、経路上の連続する経路姿勢の間を移動する。例えば、経路姿勢４１４および４１６は、ロボット２０２が経路姿勢４１４に移動し、次いで経路姿勢４１６に移動する一連の経路姿勢であり得る。
【００６２】
例示的な例として、経路姿勢４１４および４１６は、経路部分４０４に沿った離散化された場所を示す。この例示的な例は、実質的に同様のフットプリントを有する、ロボット２０２のように形作られた経路姿勢４１４および４１６を示す。経路姿勢４１４および４１６のフットプリントは、ロボットの衝突に関してどれだけ保守的であることが望ましいかに応じてサイズを調整することができる。より小さいフットプリントは衝突のより高い可能性を示し得るが、そのようなより小さいフットプリントは、ロボット２０２が自律的にナビゲートするときに可能であるべきより多くの領域をクリアすることを可能にし得る。より大きなフットプリントは衝突の可能性を減少させるかもしれないが、ロボット２０２は、そうでなければそれが可能であるべきであるいくつかの場所を自律的に通過しないであろう。フットプリントは、経路姿勢（例えば、経路姿勢４１４および４１６）に示されるように、ロボット２０２のフットプリントのサイズ（例えば、スケール）を設定するフットプリントパラメータによって予め決定することができる。場合によっては、ロボット２０２の経路姿勢のサイズを非対称的に制御する複数のフットプリントパラメータがあり得る。
【００６３】
図４Ｄでは、経路姿勢４１４および４１６が図示され、説明されているが、経路全体を通して任意の数の経路姿勢があり得ることが当業者によって理解されるべきであり、本開示の実施態様の説明は、これらの経路姿勢に適用され得る。有利なことに、ロボット２０２のように形作られた経路姿勢４１４および４１６（例えば、ロボット２０２のフットプリント）を有することは、ロボット２０２が、移動中にロボット２０２が適合し得る場所を決定することを可能にし得る。フットプリントパラメータ（複数可）は、ロボット２０２がどのようにそれ自体を投影するかを調整するために使用することができる。例えば、経路姿勢４１４および／または４１６において使用されるより大きいフットプリントは、少なくとも部分的には、ロボット２０２を物体からさらに遠くに移動させることができるという点で、より保守的であり得る。対照的に、より小さいフットプリントは、少なくとも部分的には、ロボット２０２を物体の近くに移動させることができる。経路姿勢（例えば、経路姿勢４１４および４１６）は、互いに異なるサイズであってもよい。実例として、例えば、方向転換中などの特定のシナリオでは、ロボット２０２がより保守的であることが望ましい場合がある。したがって、この実例では、方向転換中の経路姿勢のフットプリントは、直線上の経路姿勢のフットプリントよりも大きくなり得る。経路姿勢のそのような動的再成形は、経路姿勢のサイズを他の経路姿勢に対する経路姿勢の回転、あるいは経路姿勢の並進および／または回転の変化に応じて設定することによって実行することができる。経路上の経路姿勢（例えば、経路姿勢４１４および／または４１６）のうちの１つ以上はまた、ロボット２０２の形状以外の異なる形状であってもよい。例えば、経路姿勢は、円形、正方形、三角形、および／または任意の他の形状であってもよい。
【００６４】
方法４５０からブロック４５４に記載されているように、第１の経路姿勢として経路姿勢４１４または４１６のいずれかを見ることができる。しかしながら、例示の目的のために、ならびに本開示の記載された実施態様の幅を例示するために、経路姿勢４１４および４１６は一緒に記載される。
【００６５】
物体に沿った点（例えば、マッピングによって決定された点、外部受容センサユニット３０６のセンサによって検出された点など）は、ロボット２０２の経路姿勢（例えば、経路姿勢４１４および４１６）に反発力を及ぼすことができる。このようにして、物体は、概念的には、ロボット２０２がそれらに衝突するのを防ぐことができる。場合によっては、これらの点は、少なくとも部分的には、姿勢および／または姿勢の組を表すことができる。例えば、矢印４１２は、物体２１０に沿った点からの反発力を示している。
【００６６】
いくつかの実施態様では、物体によって点によって及ぼされる力は、経路姿勢４１４および４１６上の各点がそれらに実質的に同様の力を及ぼし得るという点で均一であり得る。しかしながら、他の実施態様では、経路姿勢４１４および４１６上の物体の点によって及ぼされる力は均一ではなくてもよく、力関数に基づいて変化してもよい。
【００６７】
実例として、力関数（例えば、反発力関数）は、場合によっては、物体によって経路姿勢４１４または４１６上の点に及ぼされる反発力を少なくとも部分的に決定することができる。例えば、力関数を方法４５０のブロック４５６で使用して、第１の経路姿勢（例えば、経路姿勢４１４および４１６の第１の経路姿勢）に対する環境内の物体からの反発力を決定することができる。いくつかの実施態様では、力関数は、物体が経路姿勢４１４および４１６に対して現れる場所の特性に依存し得る。さらにまた、力関数は、経路姿勢４１４および４１６の点によって経験した力（例えば、経路姿勢４１４および４１６の表面上の１つ以上の点、経路姿勢４１４および４１６の中心、経路姿勢４１４および４１６の質量の中心、ならびに／あるいは経路姿勢４１４および４１６の任意の点および／またはその周辺）を表すことができる。力は、それらの方向および大きさに依存し得るので、反発力（および／または引力）はベクトルとすることができる。場合によっては、反発力が経路姿勢に回転力を及ぼすことがあり得、これは、トルク力に現れ得る。
【００６８】
例えば、反発力およびトルク力は、パスに沿うｎ個の異なる姿勢において計算することができる。場合によっては、これらのｎ個の異なる姿勢を経路姿勢と関連付けることができる。各姿勢は、フットプリント内のｍ個の点で構成することができる。場合によっては、これらのｍ個の点は、経路姿勢上の点であり得る。
【００６９】
場合によっては、複数の点が、経路姿勢４１４および４１６に反映されるようにロボット２０２の本体を画定し得、ロボット２０２の本体の一部および／またはロボット２０２の実質的に全てを代表的に網羅する。例えば、１５〜２０個の点をロボット２０２の表面および／または内部の全体にわたって分布させ、経路姿勢４１４および４１６に反映させることができる。ただし、場合によっては、点が少ないことがあり得る。図４Ｆは、点４１８などの経路姿勢４１４上の例示的な点を示す。各点は、少なくとも部分的には、経路姿勢４１４の周囲における物体によってそれにかかる力（例えば、反発力）を経験し得る。
【００７０】
有利なことに、力を経験し得る経路姿勢４１４および４１６の本体上の複数の点を有することによって、経路姿勢４１４および４１６の点は、互いに対して並進および／または回転することができ、少なくとも部分的には、経路姿勢４１４および４１６の再配置（例えば、並進および／または回転）を引き起こす。経路姿勢４１４および４１６のこれらの並進および／または回転は、ロボット２０２によってナビゲートされる経路の変形を引き起こし得る。
【００７１】
経路姿勢上の異なる点が力の異なる大きさおよび方向を経験すると、ねじり力が発生し得る。したがって、ねじり力は、経路姿勢を回転させ得る。場合によっては、所定のパラメータは、経路姿勢４１４および４１６が経験するねじれを少なくとも部分的に定義することができる。例えば、所定のねじれパラメータは、経路姿勢４１４または４１６上の点で経験する回転力についての乗数を含むことができる。この所定のねじれパラメータは、経路姿勢４１４または４１６とパスとの不整合に起因する力を示し得る。場合によっては、所定のねじれパラメータは、力が反発的であるかまたは凝集的であるかどうかに基づいて変化し得る。
【００７２】
図４Ｄに戻ると、力関数が部分的に依存する特性は、経路姿勢４１４および４１６に対する物体上の点の位置であり得る。距離は、少なくとも部分的には、外部受容センサユニット３０６のセンサに基づいて決定され得る。第１の実施例として、（例えば、図示のように障害物２１０および２１２上の点などのような経路姿勢４１４および４１６のフットプリント内にはない）ロボット２０２の外部の物体上の点から経路姿勢４１４および４１６に及ぼされる反発力は、関数ｒ（ｄ）∝１／ｄによって少なくとも部分的に特徴付けられ得る。式中、ｒは物体上の点の反発力であり、ｄは、物体上の点と経路姿勢４１４または経路姿勢４１６上の点との間の距離である。このように、物体上の点の反発力は、物体上の点と経路姿勢４１４または経路姿勢４１６上の点との間の距離に反比例する。有利なことに、そのような関数は、経路姿勢４１４および４１６に近い物体が、より多くの反発力を及ぼすことを可能にし、それによって、遠方の物体よりもロボット２０２の進路に潜在的にさらに強く影響を及ぼして、衝突を回避する。
【００７３】
場合によっては、所定の反発距離閾値を経路姿勢４１４および経路姿勢４１６上の点と物体上の点との間の距離に設定することができる。この所定の反発距離閾値は、経路姿勢４１４および経路姿勢４１６のいずれか上の点と、物体上の点が経路姿勢４１４および４１６のいずれか上の点に反発力（および／またはねじり力）を及ぼすことができるその物体上の点との間の最大距離の少なくとも一部を示すことができる。したがって、物体上の点が、超える（または閾値の定義に応じて、等しいおよび／または超える）（例えば、経路姿勢４１４および経路姿勢４１６のいずれか上の点からの）距離である場合、反発力および／またはねじり力は、ゼロまたは実質的にゼロであり得る。有利なことに、所定の反発距離閾値を有することにより、場合によっては、物体上のいくつかの点が経路姿勢４１４および４１６上の点に力を及ぼすのを防ぐことができる。このようにして、所定の反発距離があるとき、ロボット２０２は特定の物体に近づくことができ、および／または遠くの物体によって影響されないことができる。
【００７４】
第２の実施例として、反発力が、経路姿勢４１４および４１６の内側の（例えば、経路姿勢４１４および４１６のフットプリント内の）点から経路姿勢４１４および４１６に及ぼされる。例えば、物体４０２は、経路姿勢４１６の内側に現れる部分４２０を有する。これらの場合では、異なる力関数が、部分４２０内の物体４０２の点によって部分４２０内の経路姿勢４１６の点に及ぼされ得る。いくつかの実施態様では、この力は、関数ｒ（ｄ）∝ｄによって少なくとも部分的に特徴付けられ得、式中、変数は上記の通りである。有利なことに、内部物体に対して異なる力関数を定義することによって、経路姿勢４１６は非対称的に移動することができ、回転をもたらす。
【００７５】
いくつかの実施態様では、力関数は、例えば、物体の形状、材料、色、および／または任意の他の特性などの物体の他の特性にも依存し得る。これらの特性は、当技術分野において既知の方法に従って、外部受容センサ３０６のセンサのうちの１つ以上によって決定することができる。有利なことに、特性を考慮に入れることは、ロボット２０２が物体の周りをどのようにナビゲートすべきかについてさらに情報を与え得る。場合によっては、コストマップを使用して、これらの特性に基づいて追加の反発値を計算することができる。
【００７６】
例えば、物体の形状は、衝突の関連する反動の少なくとも一部を示し得る。実例として、人型形状は、人間を示すことができる。そのように、この形状で検出された物体は、パスを人型形状からさらに遠ざけるために、経路姿勢４１４および４１６により大きな反発力を加えることができる。別の実施例として、衝突が発生した場合、物体の形状は、（例えば、物体またはロボット２０２に対する）損傷の増大の一部を示すことができる。実例として、尖った物体、細い物体、不規則な物体、所定の形状（例えば、瓶、ランプ、ディスプレイなど）、および／または任意の他の形状は、損傷の増大の結果物の少なくとも一部を示すことができる。サイズは、考慮に入れられ得る形状の別の特性であり得る。例えば、衝突が発生した場合、より小さい物体は、より壊れやすいかもしれないが、より大きい物体は、ロボット２０２により大きな損傷をもたらす可能性がある。サイズについては、力関数は、物体のサイズを考慮に入れることができるので、それらの物体上の点は、経路姿勢４１４および４１６上の点を期待通りに比例的に反発する。実例として、経路姿勢４１４がより大きな物体とより小さな物体との間にある場合、より大きな物体の点が力関数に少なくとも部分的に定義されるように比較的大きな反発力を有するならば、経路姿勢４１４は、より小さな物体の比較的近くに押されることになる。より小さな物体の点が力関数に少なくとも部分的に定義されるように比較的大きな反発力を有するならば、経路姿勢４１４は、より大きな物体の比較的近くに押されることになる。したがって、経路姿勢４１４および４１６に対する反発力は、形状に少なくとも部分的に基づいて調整することができる。形状は、外部受容センサユニット３０６のセンサによって少なくとも部分的に検出することができる。別の例示的な実施例として、壁が、コストマップにおいて識別され得、反発力は、それらのサイズおよび形状に起因して壁と関連付けられ得る。
【００７７】
いくつかの実施態様では、力関数はまた、物体の材料にも依存し得る。例えば、衝突が発生した場合、特定の材料が、より多くの損傷の少なくとも一部を示すことができる。実例として、ガラス、磁器、鏡、および／または他の壊れやすい材料は、衝突が発生した場合においてより損傷を受けていることを実証し得る。鏡の場合など、いくつかの場合では、材料は、外部受容センサユニット３０６のセンサのエラーを引き起こすことがある。したがって、場合によっては、ロボット２０２がそのような物体からさらに離れてナビゲートすることが望ましいことがあり、それは力関数に反映され得る（例えば、いくつかの材料の物体上の点によって及ぼされる反発力を他の材料に対して増大させる）。
【００７８】
いくつかの実施態様では、色が、外部受容センサユニット３０６のセンサによって検出され得る。力関数は、物体および／または物体上の点の色に少なくとも部分的に依存し得る。例えば、環境内の特定の物体は、ロボット２０２（または場合によっては人間）がそれらの物体に注意を払うべきであることを少なくとも部分的に示すための特定の色（例えば、赤、黄色など）であってもよい。したがって、場合によっては、ロボット２０２がそのような物体からさらに離れてナビゲートすることが望ましい場合があり、それは力関数に反映され得る。
【００７９】
いくつかの実施態様では、力関数は、物体の場所などの他の要因に依存し得る。例えば、（例えば、グローバル層４０６から渡されるような）地図の特定の領域が、特性を有し得る。実例として、地図（例えば、コストマップ）のいくつかの領域は、ロボット２０２が通過すべきではない領域であり得る。また、ロボット２０２が（例えば物体の中などに）アクセスできないために入ることができない場所もあり得る。したがって、場合によっては、力関数は、そのような場所を考慮するように調整され得る。いくつかの実施態様では、力関数は、それらの場所内の点に対して、経路姿勢４１４および４１６上の点に力を加えない（または実質的に力を加えない）ようにさせることができる。有利なことに、力は、ロボット２０２が行かないであろう（例えば、物体の内部などの）領域を反映することはない。対照的に、いくつかの実施態様では、そのような場所は、障害物として扱うことができ、経路姿勢４１４および４１６に反発力を及ぼす。有利なことに、そのような反発力を有することにより、ロボット２０２がそのような領域に進入しようと試みるのを防ぐことができる。
【００８０】
いくつかの実施態様では、経路姿勢４１４および４１６への全ての力が反発的とは限らない。例えば、経路姿勢（例えば、経路姿勢４１４および４１６）上の点は、引力（例えば、凝集力）を及ぼすことができ、それは、経路姿勢を互いに向かって少なくとも部分的に引き寄せることができる。図４Ｅは、本開示のいくつかの実施態様による、経路姿勢４１４と４１６との間の引力を示す。矢印は、経路姿勢が経路部分４０４に沿って互いに向かって引っ張られることを少なくとも部分的に示す。有利なことに、経路姿勢間の凝集力は、少なくとも部分的には、グローバル層４０６によって計画されたパスと実質的に同様のパス（例えば、物体がない場合にロボット２０２がその周りをナビゲートするために追従すべきである元来示された経路などの、元の経路と実質的に同様の経路）の方へとロボット２０２を辿らせることができる。
【００８１】
凝集力は、例えば、経路姿勢／粒子間の間隔距離、パスの滑らかさ、ロボット２０２がパスを辿るのがどれほど望ましいかなどの、経路の特性に依存し得る力関数（例えば、凝集力関数）によって設定することができる。場合によっては、凝集力関数は、少なくとも部分的には、所定の凝集乗数に基づくことができ、その所定の凝集乗数は、少なくとも部分的には、経路姿勢を共に引っ張る力を決定することができる。所定の凝集乗数がより低いと、経路部分４０４の凝集強さ（例えば、それに向けての経路姿勢の引き付け）を減少させ得、場合によっては、ロボット２０２によって移動されるパスの滑らかさを損なう可能性がある。場合によっては、連続した経路姿勢のみが、互いの点に凝集力を及ぼす。他の場合には、全ての経路姿勢が、互いに凝集力を及ぼす。さらに他の場合では、一部の経路姿勢が、他の経路姿勢に凝集力を及ぼす。どの経路姿勢が互いに凝集力を及ぼすように構成されているかの決定は、ケースバイケースで変化し得るいくつかの要因に依存し得る。例えば、経路が円形の場合、全ての経路姿勢が、その円を締めるように互いに凝集力を及ぼすことが望ましい場合がある。別の実施例として、経路が複雑である場合には、特定の複雑な経路が、連続した経路姿勢のみに互いに凝集力を及ぼさせることが望ましい場合がある。この制限により、ロボット２０２がより多くの方向転換をすること、および／またはより予測可能な結果を得ることが可能になり得る。なぜなら、他の位置決めされた経路姿勢が過度にそれに影響を及ぼさないからである。上記実施例の間の複雑さにおいて、経路姿勢のうちの一部が凝集力を及ぼす場合がある。別の実施例として、経路姿勢の数もまた要因となり得る。経路上に多数の経路姿勢があると、それら全てが互いに凝集力を及ぼす場合、予期しない結果をもたらす可能性がある。経路姿勢がより少ない場合、これは問題にならないかもしれず、経路姿勢のうちの全てまたは一部が力を及ぼし得る。場合によっては、所定の凝集力距離閾値が存在してもよく、その場合、第１の経路姿勢上の点が、第２の経路姿勢上の点から所定の凝集力距離閾値よりも大きい（またはそれが定義される方法に応じて、より大きいもしくはそれに等しい）距離である場合、凝集力は、ゼロまたは実質的にゼロであり得る。
【００８２】
いくつかの実施態様では、凝集力関数と反発力関数は同じ力関数であり得る。他の実施態様では、凝集力関数と反発力関数は別個のものである。方法４５０からのブロック４５８に従って、凝集力関数を用いて他の経路姿勢からの引力を決定することができる。いくつかの実施態様では、凝集力と反発力の両方が、経路姿勢のねじれを結果として生じる（例えば、回転を引き起こす）ことができる。
【００８３】
中間層４０８を参照して説明されるように、経路姿勢４１４および４１６は、異なる引力および反発力を経験する可能性がある。いくつかの実施態様では、力は、配列で保存され得る。例えば、反発力、ねじり力、凝集力などを示す力の配列が存在し得る。
【００８４】
場合によっては、ある点からの個々の力および／または力の群をオンまたはオフにできるオン／オフパラメータを使用するなどして、力を切り替えることができる。例えば、オン／オフパラメータは、１つの値が力をオンにし、別の値が力をオフにする２値とすることができる。このようにして、例えば、経路姿勢からの物体の距離、点が物体の内部にあるかまたは立ち入り禁止区域にあるかどうか、経路姿勢間の距離などに基づいて、いくつかの力をオフにすることができる。
【００８５】
結局、経路姿勢４１４および４１６にかかる正味の力は、経路姿勢４１４および４１６のうちの１つ以上を再配置することができる。例えば、経路姿勢４１４および４１６は変位され得る。経路姿勢４１４および４１６は、任意の方向において、それらの正味の力が実質的にゼロおよび／または最小になるまで変位（例えば、並進および／または回転）し得る。このようにして、経路姿勢４１４および４１６は、ロボット２０２が物体（例えば、障害物４０２）を回避するために移動するように調整された経路を少なくとも部分的に示す場所に変位され得る。反発力および引力に起因する経路姿勢の並進および／または回転は、方法４５０のブロック４６０に従って決定することができる。
【００８６】
経路姿勢４１４および４１６の変位を決定するために行われる異なる調整があり得る。例えば、場合によっては、経路姿勢４１４および４１６上の全ての力を考慮する代わりに、引力のみが考慮されてもよい。有利なことに、そのようなシステムは、ロボット２０２が静的パスに固執することを可能にし得る。経路姿勢４１４および４１６の変位に少なくとも部分的に基づいて、ロボット２０２は、経路プランナ用に新しいパスを設定することができる。新しいパスでは、ロボット２０２がそのパスを移動するときの軌道は、ロボット２０２の中心などのロボット２０２上の点を表すことができる。
【００８７】
ロボット２０２が経路姿勢４１４および４１６の変位を決定した後、ロボット２０２は、移動するパスを決定することができる。例えば、経路姿勢４１４および４１６の位置（例えば、場所および／または向き）に基づいて、ロボット２０２は、経路姿勢４１４および４１６におよび／または経路姿勢４１４および４１６間に、ならびに／あるいはその現在の場所から任意の他の経路姿勢にナビゲートするためのパスを決定することができる。場合によっては、ロボット２０２は、少なくとも部分的にパスを画定しながら、継続的な（例えば、連続した）経路姿勢の間を順番に移動する。例えば、この決定は、ロボット２０２がそれらの点の間を移動することができるパスを考慮に入れた経路姿勢間の補間に少なくとも部分的に基づくことができる。多くの場合、線形補間が使用され得る。補間の実行を使用することによって、ロボット２０２は、方法４５０のブロック４６２に従って並進および／または回転した経路姿勢を考慮に入れることができる。
【００８８】
図５は、本開示のいくつかの実施態様による、経路姿勢４１４および４１６間の補間を示す図の俯瞰図である。本明細書で説明されるように、経路姿勢４１４および４１６にかかる力に基づいて、経路姿勢４１４および４１６は変位している。図示のように、経路姿勢４１４は、並進のみならず回転もしている。並進は、例えば、インチ、フィート、メートル、または任意の他の測定単位（例えば、メートル法、米国、または他の測定系での測定値）などの標準単位、ならびに／あるいは例えば、目盛り（ｔｉｃｋ）、ピクセル、センサの範囲のパーセンテージ、および同様のものなどの相対／非絶対単位で測定され得る。回転は、度数、ラジアンなどで測定することができる。同様に、経路姿勢４１６も並進および／または回転されている。特に、経路姿勢４１４および４１６の両者が、障害物４０２を通り抜ける。経路姿勢４１４および４１６は、ロボット２０２によって移動されるパスに沿った離散化された場所を表すので、ロボット２０２は、それらの間を補間して、ロボット２０２が取るべきパスを決定することができる。補間された姿勢５０２Ａ〜５０２Ｄは、経路姿勢４１４と経路姿勢４１６との間を移動したパスを示す。特に、ロボット２０２はまた、経路姿勢へおよび／または経路姿勢間で移動するために他のパス（図示せず）を補間してもよい。
【００８９】
補間された姿勢５０２Ａ〜５０２Ｄは、経路姿勢４１４および４１６のうちの１つ以上のフットプリントと実質的に同様の関連するフットプリントを有することができる。場合によっては、図５に示されるように、補間された姿勢５０２Ａ〜５０２Ｄは、補間された経路姿勢であり得る。したがって、補間された姿勢５０２Ａ〜５０２Ｄは、ロボット２０２が、ある経路に沿うであろう位置および／または向きを表すことができる。有利なことに、これにより、補間されたパスは、ロボット２０２が適合するであろう場所にロボット２０２を誘導することを可能にし得る。さらに、補間された姿勢５０２Ａ〜５０２Ｄのうちのいずれか１つのフットプリントと物体（例えば、障害物４０２、物体２１０、または物体２１２）との間に重なりがないように、補間された姿勢５０２〜５０２Ｄを決定することができ、それによって、衝突を回避する。
【００９０】
補間された姿勢５０２Ａ〜５０２Ｄはまた、経路姿勢４１４から経路姿勢４１６に到達するための回転および／または並進を考慮して決定され得る。例えば、ロボット２０２は、経路姿勢４１４の姿勢および経路姿勢４１６の姿勢を決定することができる。次いで、ロボット２０２は、経路姿勢４１４および経路姿勢４１６の姿勢間の差異を見つけることができ、次いで、経路姿勢４１４の姿勢から経路姿勢４１６の姿勢にどのように到達するかを決定することができる。例えば、ロボット２０２は、ロボット２０２が経路姿勢４１４から経路姿勢４１６へと回転および並進するように、補間された姿勢５０２Ａ〜５０２Ｄの間で回転および並進を分配することができる。場合によっては、ロボット２０２は、補間姿勢５０２Ａ〜５０２Ｄの間で回転および並進を実質的に等しく分配することができる。例えば、Ｎ個の補間位置がある場合、ロボット２０２は、経路姿勢４１４および４１６の姿勢の場所および回転の差異を、これらのＮ個の補間位置にわたって実質的に均等に分割することができる。あるいは、ロボット２０２は、経路姿勢４１４および４１６の姿勢の場所および／または回転の差異を、これらのＮ個の補間位置にわたって不均等に分割してもよい。有利なことに、均等な分割は、ロボット２０２が経路姿勢４１４から経路姿勢４１６へと円滑に移動することを可能し得る。しかしながら、不均等な分割は、いくつかの領域において他の領域と比較してより細かい動きを可能にすることによって、ロボット２０２が物体をより容易に考慮に入れて回避することを可能にし得る。例えば、補間された姿勢５０２Ａ〜５０２Ｄが接近する物体を回避するために、ロボット２０２は急な方向転換を行わなければならないであろう。したがって、その方向転換を考慮するためには、その方向転換の周りにより多く補間された姿勢が望ましいであろう。場合によっては、補間位置の数は動的にすることができ、必要に応じてＮ個より多いまたは少ない数の補間位置を使用することができる。
【００９１】
図６は、本開示のいくつかの実施態様による、ロボットの動作のための例示的な方法６００のプロセスフロー図である。ブロック６０２は、収集されたデータに少なくとも部分的に基づいて環境の地図を作成することを含む。ブロック６０４は、ロボットが移動する地図内の経路を決定することを含む。ブロック６０６は、経路上に１つ以上の経路姿勢を生成することを含み、各経路姿勢が、経路に沿ったロボットの姿勢を示すフットプリントを含み、各経路姿勢は、その中に複数の点を有する。ブロック６０８は、各経路姿勢の複数の点のそれぞれにかかる力を決定することを含み、その力は、１つ以上の物体上の検出点のうちの１つ以上からの反発力、および１つ以上の経路姿勢のうちの他の経路姿勢上の複数の点のうちの１つ以上からの引力を含む。ブロック６１０は、各経路姿勢の各点にかかる力に応じて各経路姿勢を再配置することを含む。ブロック６１２は、ロボットが移動するための１つ以上の経路姿勢間に衝突のないパスを生成するために１つ以上の再配置された経路姿勢間の補間を実行することを含む。
【００９２】
図７は、本開示のいくつかの実施態様による、ロボットの動作のための例示的な方法７００のプロセスフロー図である。ブロック７０２は、１つ以上のセンサからのデータを使用して環境の地図を生成することを含む。ブロック７０４は、地図上の経路を決定することを含み、その経路が、１つ以上の経路姿勢を含み、各経路姿勢が、経路に沿ったロボットの姿勢、サイズ、および形状の少なくとも一部を示すフットプリントを含み、各経路姿勢は、その中に複数の点を有する。ブロック７０６は、環境内の物体上の点から１つ以上の経路姿勢のうちの第１の経路姿勢の複数の点への反発力を計算することを含む。ブロック７０８は、少なくとも反発力に応じて第１の経路姿勢を再配置することを含む。ブロック７１０は、再配置された第１の経路姿勢と１つ以上の経路姿勢のうちの別の経路姿勢との間の補間を実行することを含む。
【００９３】
本明細書で使用されるように、コンピュータおよび／またはコンピューティングデバイスは、これらに限定されないが、パーソナルコンピュータ（「ＰＣ」）およびミニコンピュータか、デスクトップ、ラップトップ、もしくはそれ以外のどれか、メインフレームコンピュータ、ワークステーション、サーバ、携帯情報端末（「ＰＤＡ」）、携帯型コンピュータ、埋め込み式コンピュータ、プログラマブルロジックデバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、ポータブルナビゲーションエイド、Ｊ２ＭＥ搭載デバイス、携帯電話、スマートフォン、パーソナル統合通信もしくはエンターテインメントデバイス、および／または一組の命令を実行し、入力してくるデータ信号を処理することが可能である任意の他のデバイスを含むことができる。
【００９４】
本明細書で使用されるように、コンピュータプログラムおよび／またはソフトウェアは、機能を行う任意のシーケンスまたは人間もしくは機械認識ステップを含むことができる。このようなコンピュータプログラムおよび／またはソフトウェアは、例えば、Ｃ／Ｃ＋＋、Ｃ＃、Ｆｏｒｔｒａｎ、ＣＯＢＯＬ、ＭＡＴＬＡＢ（登録商標）、ＰＡＳＣＡＬ、Ｐｙｔｈｏｎ、アセンブリ言語、マークアップ言語（例えば、ＨＴＭＬ、ＳＧＭＬ、ＸＭＬ、ＶｏＸＭＬ）など、ならびにコモン・オブジェクト・リクエスト・ブローカ・アーキテクチャ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ：「ＣＯＲＢＡ」）、ＪＡＶＡ（登録商標）（Ｊ２ＭＥ、Ｊａｖａ  Ｂｅａｎｓなどを含む）、バイナリ・ランタイム環境（Ｂｉｎａｒｙ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ）（例えば、ＢＲＥＷ）などを含む任意のプログラミング言語または環境でレンダリングすることができる。
【００９５】
本明細書で使用されるように、接続、リンク、伝送チャネル、遅延線、および／またはワイヤレスは、エンティティ間の情報交換を可能にする、任意の２つ以上のエンティティ間の（物理的または論理的／仮想的）因果関係を含むことができる。
【００９６】
本開示のある特定の態様は、方法の具体的な一連のステップに関して記載されているが、これらの記載は、本開示の広範な方法の単なる例示であり、特定の用途によって要求されるように変更され得ることが認識されるであろう。ある特定の状況下では、ある特定のステップが不要またはオプションになることがあり得る。さらに、ある特定のステップまたは機能が、開示された実施態様に追加されてもよく、または２つ以上のステップの実行順序が、入れ替えられてもよい。そのような変形は全て、本明細書に開示および特許請求されている開示の範囲内に包含されると見なされる。
【００９７】
上記の詳細な説明は、様々な実施態様に適用される本開示の新規な特色を示し、記載し、指摘したが、例示されたデバイスまたはプロセスの形態および詳細における様々な省略、置換、および変更が、本開示から逸脱することなくなされ得ることは当業者により理解される。前述の説明は、本開示を実施することについて現在企図されている最良の様式である。この説明は、決して限定することを意味するものではなく、むしろ本開示の一般原理の例示として解釈されるべきである。本開示の範囲は、特許請求の範囲を参照して判定されるべきである。
【００９８】
本開示を図面および前述の説明において詳細に例示および記載してきたが、そのような例示および説明は説明的または例示的であり、限定的ではないと見なされるべきである。本開示は、開示された実施形態に限定されない。開示された実施形態に対する変形は、図面、本開示および添付の特許請求の範囲の検討から、特許請求された開示を実施する際に当業者によって理解され達成され得る。
【００９９】
本開示のある特定の特色または態様を説明するときに特定の用語を使用することは、その用語が関連付けられている、本開示の特色または態様の任意の具体的な特徴を含むよう限定されるように、その用語が本明細書において再定義されていることを意味すると解釈されるべきではない。本出願において使用される用語および語句、ならびにその変形は、とりわけ添付の特許請求の範囲において、他に明示的に述べられていない限り、限定とは対照的に無制限として解釈されるべきである。前記の例として、用語「含む」は、「非限定的に含む」または「含むがそれに限定されない」などを意味するものとして読まれるべきであり、本明細書で使用される場合、用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」は、「含む（ｉｎｃｌｕｄｉｎｇ、ｃｏｎｔａｉｎｉｎｇ）」または「を特徴とする（ｃｈａｒａｃｔｅｒｉｚｅｄ  ｂｙ）」と同義であり、包括的または無制限のものであり、追加の記載のない要素または方法ステップを排除するものではなく、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する」として解釈されるべきであり、用語「などの（ｓｕｃｈ  ａｓ）」は、「などの、これらに限定されない」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない」として解釈されるべきであり、用語「例（ｅｘａｍｐｌｅ）」は、議論の中の項目の例示的な実例を提供するために使用され、その包括的または限定的なリストではなく、「例であるが、限定されない」と解釈されるべきであり、「既知の（ｋｎｏｗｎ）」、「通常の（ｎｏｒｍａｌ）」、「標準的な（ｓｔａｎｄａｒｄ）」、および同様な意味の用語などの形容詞は、記載の項目を、所与の期間に、または所与の時間において利用可能な項目に限定するものとして解釈されるべきではなく、代わりに今または将来の任意の時間に利用可能または既知となり得る既知の、通常の、または標準的な技術を包含するものとして理解されるべきであり、「好ましくは（ｐｒｅｆｅｒａｂｌｙ）」、「好ましい（ｐｒｅｆｅｒｒｅｄ）」、「所望の（ｄｅｓｉｒｅｄ）」、または「望ましい（ｄｅｓｉｒａｂｌｅ）」などの用語、および同様な意味の語の使用は、本開示の構造または機能にとって特定の特徴が非常に重要である、不可欠である、またはさらには重要であることを示唆するものとして解釈されるべきではなく、代わりに特定の実施形態で使用され得るまたはされなくてもよい代替的または追加的な特徴を強調することを単に意図するに過ぎないと解釈されるべきである。同様に、接続詞「および（ａｎｄ）」に繋げられた項目の群は、それらの項目の各々および、１つ１つがその群内に存在することを要求するものとして読まれるべきではなく、むしろ、特に明記しない限り、「および／または」として読まれるべきである。同様に、接続詞「または（ｏｒ）」に繋げられた項目の群は、そのグループ間の相互排他性を必要とするものとして読まれるべきではなく、むしろ、特に明記しない限り、「および／または」として読まれるべきである。「約（ａｂｏｕｔ）」または「およそ（ａｐｐｒｏｘｉｍａｔｅ）」などの用語は同義語であり、その用語によって修飾された値がそれに関連する理解された範囲を有す��ことを示すために使用され、その範囲は±２０％、±１５％、±１０％、±５％、または±１％であり得る。「実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）」という用語は、結果（例えば、測定値）が目標値に近いことを示すために使用され、ここでは、近いとは、結果が、その値の８０％以内、その値の９０％以内、その値の９５％以内、またはその値の９９％以内であることを意味し得る。また、本明細書で使用されるとき、「定義された（ｄｅｆｉｎｅｄ）」または「決定された（ｄｅｔｅｒｍｉｎｅｄ）」は、「事前定義された（ｐｒｅｄｅｆｉｎｅｄ）」もしくは「所定の（ｐｒｅｄｅｔｅｒｍｉｎｅｄ）」、および／またはさもなければ決定された値、条件、閾値、測定値などを含み得る。
【図１】
2020502630.tif 000003
【図２Ａ】
2020502630.tif 000004
【図２Ｂ】
2020502630.tif 000005
【図３】
2020502630.tif 000006
【図４Ａ】
2020502630.tif 000007
【図４Ｂ】
2020502630.tif 000008
【図４Ｃ】
2020502630.tif 000009
【図４Ｄ】
2020502630.tif 000010
【図４Ｅ】
2020502630.tif 000011
【図４Ｆ】
2020502630.tif 000012
【図５】
2020502630.tif 000013
【図６】
2020502630.tif 000014
【図７】
2020502630.tif 000015
【国際調査報告】
2020502630.tif 000016