JP2024501885A - 現実ロボットのシミュレーション駆動型ロボット制御 - Google Patents

現実ロボットのシミュレーション駆動型ロボット制御 Download PDF

Info

Publication number
JP2024501885A
JP2024501885A JP2023540627A JP2023540627A JP2024501885A JP 2024501885 A JP2024501885 A JP 2024501885A JP 2023540627 A JP2023540627 A JP 2023540627A JP 2023540627 A JP2023540627 A JP 2023540627A JP 2024501885 A JP2024501885 A JP 2024501885A
Authority
JP
Japan
Prior art keywords
robot
real
state data
simulated
actions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023540627A
Other languages
English (en)
Inventor
ユンフェイ・バイ
ティグラン・ガスパリアン
ブレント・オースティン
アンドレアス・クリスチャンセン
マシュー・ベニス
ポール・ベシャール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/337,815 external-priority patent/US11938638B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of JP2024501885A publication Critical patent/JP2024501885A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32385What is simulated, manufacturing process and compare results with real process

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

1つまたは複数の現実世界ロボットの制御における、ロボットシミュレータのアクティブな利用である。ロボットシミュレータのシミュレートされた環境は、現実ロボットが現在配置されているまたは将来配置されることになる現実世界環境を反映するように、構成されることが可能である。ロボットシミュレータは、次に、ロボットタスクの少なくとも一部を実行する際に現実世界ロボットによって用いられる一連のロボットアクションを決定するのに用いられ得る。この一連のロボットアクションは、一連の予測されたシミュレートされた状態データインスタンスを生成するために、ロボットシミュレータのシミュレートされたロボットに適用され得る。現実ロボットは、この一連のロボットアクションを実装するように、制御され得る。ロボットアクションの1つまたは複数の実装は、予測されたシミュレートされた状態データインスタンスのうちの対応する1つへの閾値類似度を少なくとも有する現実状態データインスタンスに左右され得る。

Description

現実ロボットのシミュレーション駆動型ロボット制御に関する。
機械学習モデルの訓練に利用されるシミュレートされた訓練データを生成するため、ロボットシミュレータの使用が提案されてきている。機械学習モデルは、シミュレートされた訓練データに基づいて訓練されると、現実ロボット(すなわち、シミュレートされていない物理的な現実世界ロボット)のロボット制御の知覚、計画、および/または動作の段階の間に、利用されることが可能である。しかし、ロボット制御における現実ロボットによる機械学習モデルの利用は、アクティブには、ロボットシミュレータに関与しない。むしろ、機械学習モデルは、ロボットシミュレータを用いて生成されるシミュレートされた訓練データに基づいて、単に訓練されるだけである。さらに、ロボットシミュレータの使用は、現実ロボット上での制御スタックの実装に先立ってロボット制御スタックをテスト/有効化するために、提案されてきた。しかし、ロボット制御スタックが現実ロボット上で実装されると、ロボットシミュレータは、もはやアクティブには利用されない。
本明細書において開示されている実装形態は、1つまたは複数の現実世界ロボットの制御における、ロボットシミュレータのアクティブな利用に向けられている。現実世界ロボット(本明細書では、「現実ロボット」とも称される)の制御に利用されるロボットシミュレータは、その現実ロボットにとってローカルなハードウェア(たとえば、プロセッサ、RAM、およびROM)を利用して実装されることが可能であり、および/または、その現実世界ロボットからリモートであるがネットワーク通信の関係にあるハードウェアを利用して実装されることが可能である。
様々な実装形態において、ロボットシミュレータのシミュレートされる環境は、現実ロボットが現在配置されているまたは将来配置されることになる現実世界環境(本明細書では、「現実環境」とも称される)を反映するように、構成されることが可能である。シミュレートされる環境は、環境のセンサベースの観測に基づく現実環境状態データに基づいて、構成されることが可能である。現実環境状態データは、現実環境におけるオブジェクトの識別子と、現実環境におけるそれらのポーズとを特定することが可能であり、および/または、オブジェクトとそれらのポーズとを識別するように処理されることが可能な、観測からの生のデータを含むことができる。シミュレートされる環境は、オブジェクトの識別子とそれらのポーズとに基づいて、構成されることが可能である。たとえば、オブジェクトの識別子は、オブジェクトの一致する3次元モデルと、それらの対応するポーズに従ってシミュレートされた環境に位置決めされるオブジェクトとを識別するのに、利用され得る。
センサベースの観測は、制御される現実ロボットと一体化されている視覚コンポーネントおよび/または他のセンサからのロボットセンサベースの観測を含み得る。それらの実装形態のいくつかでは、現実環境状態データは、知覚システムを用いて現実ロボットによって生成され現実ロボットによってロボットシミュレータに提供される現実環境状態データを、含む。現実環境状態データは、ロボットセンサベースの観測および/または環境センサベースの観測(後述)に基づいて、生成され得る。そのような知覚データは、たとえば、現実環境における複数のオブジェクトのそれぞれに対する、対応するポーズと対応するオブジェクト識別子とを含み得る。対応するオブジェクト識別子は、コーヒーマグ、カップ、もしくはボウルなど、より高レベルの分類であり得るし、または、特定のコーヒーマグもしくは特定のカップの識別子など、より細分性の高い識別子でもあり得る。オプションとして、オブジェクトのより細分性の高い識別子は、オブジェクト上に印刷されているもしくはオブジェクトに添付されているQRコード(登録商標)または他のコード化された識別子に基づいて、決定されることが可能である。センサベースの観測は、追加的にまたは代替的に、現実環境の中に存在するが制御される現実ロボットとは一体化されていない視覚コンポーネントおよび/または他のセンサからの環境センサベースの観測を、含み得る。たとえば、環境センサベースの観測は、スタンドアロンのステレオカメラまたは他の視覚コンポーネントからの観測を含み得る。
シミュレートされた環境が現実環境を反映するように構成されると、ロボットシミュレータは、ロボットタスクの少なくとも一部を実行する際に現実世界ロボットによって用いられる一連のロボットアクションを決定するのに、用いられることが可能である。ロボットタスクは、ロボットシミュレータのより高レベルの計画コンポーネントによって、もしくは現実世界ロボットによって特定されるものであり得るし、またはユーザインターフェース入力に基づいて特定されるものでもあり得る。非限定的な一例として、ロボットタスクは、オブジェクトを握持して、そのオブジェクトを容器の中に配置することを含み得るが、そのタスクの一部は、オブジェクトを握持することを含み得る。非限定的な他の例としては、ロボットタスクは、食洗機に装填することを含み得るが、ロボットタスクの一部は、オブジェクトを再位置決めすること、食洗機の中に配置されるオブジェクトを握持すること、または既に握持されているオブジェクトを食洗機の中に配置すること、を含み得る。
一連のロボットアクションを決定するときに、ロボットシミュレータは、ロボットシミュレータのシミュレートされた環境の観点から、ロボットシミュレータにアクセス可能な1つもしくは複数の機械学習モデルおよび/または規則を利用して、一連のロボットアクションを決定することができる。たとえば、シミュレートされた環境からのシミュレートされた状態データは、一連のロボットアクションが候補である一連のロボットアクションであることを決定するために、機械学習モデルおよび/または規則に適用されることが可能である。たとえば、適用されるシミュレートされた状態データは、ロボットシミュレータの(現実世界ロボットをシミュレートする)シミュレートされたロボットのシミュレートされた視覚コンポーネントの視点からレンダリングされるシミュレートされた画像など、シミュレートされた環境のシミュレートされた画像を含み得る。
いくつかの実装形態では、適用されるシミュレートされた状態データは、現実世界でのロボットセンサおよび/または環境センサのいずれによっても捕捉されることが全く可能でない現実状態データをシミュレートする、シミュレートされた状態データを含み得る。たとえば、シミュレートされた状態データは、特定の視点(たとえば、「頭上」)から捕捉された、シミュレートされた/合成の視覚データを含み得るが、手動での人間による介入が存在しない場合には、現実世界における対応する視点からの現実視覚データを捕捉することができる環境視覚コンポーネントまたはロボット視覚コンポーネントは、どのようなものも、存在しない場合がある。対応する視点から現実視覚データを捕捉することが可能な現実世界視覚コンポーネントが、たとえ存在しないとしても、シミュレートされた視覚データは、現実世界に基づき3次元オブジェクトモデルを利用して構成されているシミュレートされた環境から見た現実世界を、依然として反映することになる、ということに留意すべきである。さらに他の例として、シミュレートされた状態データは、シミュレートされたLIDARデータを含み得るが、現実世界には、いかなるLIDAR視覚コンポーネントも存在しない場合がある。これらのおよび他の様態で、ロボットシミュレータは、どのような現実世界の対応物も欠いているシミュレートされた状態データを生成して、一連のロボットアクションを決定する際にそのようなシミュレートされた状態データを利用するために、利用されることが可能である。そのようなシミュレートされた状態データを利用することの結果として、様々なシナリオにおける一連のロボットアクションの、より堅牢なおよび/またはより正確な決定が可能になる。一例として、それにより、そのようなシミュレートされた状態データに個別対応したものなど、追加的および/または代替的な機械学習モデルの利用が可能になる。他の例として、それにより、複数の異種のシミュレートされた状態データインスタンスに基づいて一連のアクションを集合的に決定することを可能にするため、機械学習モデルおよび/または規則に、複数の異種のシミュレートされた状態データインスタンスを適用することが可能になる。
いくつかの追加的なまたは代替的な実装形態では、適用されるシミュレートされた状態データは、現実世界でのロボットセンサおよび/または環境センサのうちの1つもしくは複数によって捕捉されることが可能であるが、それらの現実世界のセンサのポーズを横断するおよび/または環境オブジェクトを再位置決めする際に電力が消費される場合にのみ捕捉されることが可能なシミュレートされた状態データを含み得る。たとえば、適用されるシミュレートされた状態データは、オブジェクトのシミュレートされた3次元ポイントクラウドを含み得る。現実ロボットの視覚コンポーネントは、対応の現実3次元ポイントクラウドを生成するためにデータを捕捉可能な場合があり得るが、それは、現実ロボットが、オブジェクトの全周囲を横断するときおよび/またはオブジェクトを持ち上げて回転させるときに、著しい量の電力を消費する場合のみである。他方で、ロボットシミュレータは、より少ない電力消費で、オブジェクトのシミュレートされた3次元ポイントクラウドを生成することが可能である。他の例としては、適用されるシミュレートされた状態データインスタンスは、それぞれが異なる視点からである複数のシミュレートされた画像を含み得る。現実ロボットの視覚コンポーネントは、対応する異なる複数の視点から対応の現実画像を捕捉可能な場合があり得るが、それは、現実ロボットが、視覚コンポーネントを異なる視点に横断させるときに、著しい量の電力を消費する場合のみである。他方で、ロボットシミュレータは、より少ない電力消費で、異なる複数の視点からのシミュレートされた画像をレンダリングすることが可能である。
いくつかの実装形態では、候補である一連のロボットアクションが、ロボットシミュレータのシミュレートされたロボットに、そしてシミュレートされた環境において適用され得るが、この適用の間および/または後からのさらにシミュレートされた状態データは、これらの候補である一連のロボットアクションが、現実世界ロボットによって用いられるために提供される一連のロボットアクションとして決定されるべきかどうかを決定するのに用いられることが可能である。オプションとして、複数の候補である一連のロボットアクションが考慮されることが可能であり、それぞれがロボットシミュレータにおいて適用され、対応するさらなるシミュレートされたデータは、どれが現実世界ロボットによって用いられるために提供される決定された一連のロボットアクションであるかを決定する際にそれぞれが用いられる。
一例として、さらなるシミュレートされた状態データの1つまたは複数の特徴は、候補である一連のロボットアクションが、現実世界ロボットによって用いられるために提供される一連のロボットアクションとして決定されるべきかどうかを決定するために、解析されることが可能である。たとえば、この特徴は、タスクの一部が成功したか(たとえば、タスクの一部がオブジェクトの握持である場合に、シミュレートされた状態データが、オブジェクトのシミュレートされた表現が一連のロボットアクションを適用することによって握持されたことを示すか)どうかを示すタスク成功特徴(task success feature)を含み得る。そのような場合には、候補である一連のロボットアクションは、タスク成功特徴がそのタスクのその一部の成功を示す場合にのみ、使用のために提供される一連のロボットアクションとして、決定され得る。また、たとえば、この特徴は、その一連のロボットアクションにおけるロボットアクションの量および/またはその一連のロボットアクションを実行する際にロボットのコンポーネントによって横断される距離(たとえば、ジョイント空間においては、ロボットのジョイントによって横断された累積的な距離、および/または、タスク空間においては、ロボットのエンドエフェクタによって横断された距離)を示す効率性特徴などの効率性特徴(efficiency feature)を含み得る。そのような場合に、候補である一連のロボットアクションは、効率性特徴が、考慮されている別の候補である一連のアクションの効率性特徴に基づく相対閾値など、絶対および/または相対閾値を満足する場合にのみ、使用のために提供される一連のロボットアクションとして決定されることが可能である。いくつかの一連のロボットアクションに対して、効率性特徴は、それらをシミュレーションにおいて適用しなければ、知られることは不可能である、ということが注意されるべきである。たとえば、一連のロボットアクションは、機械学習モデルを用いて、決定されることが可能であるが、その一連のロボットアクションにおいて下流アクションを決定することは、その一連のロボットアクションにおける上流アクションの実行によって影響されるシミュレートされた状態データを処理することに依存し得る。
様々な技術的効果が、一連のロボットアクションをシミュレーションにおいて適用する間および/または適用する後からのさらなるシミュレートされた状態データを解析することによって、そして、その解析が特定の条件を満足する場合には、現実ロボットによる実装のためにその一連のロボットアクションを単に提供することによって、達成されることが可能である。一例として、タスク成功特徴が考慮されるときには、現実ロボットがそのタスクのその一部を成功裏に実行する蓋然性が、高くなる。これにより、そのタスクのその一部を成功裏に実行することに至ることのないアクションを実行するために現実世界ロボットを制御する際に、エネルギーの浪費を回避することが可能になり、および/または、そのタスクのその一部を成功裏に実行することに至ることのないアクションを実行することのそれ以外の結果である現実世界ロボット上の不必要な摩耗および断裂を回避することが可能になる。他の例として、効率性特徴が考慮されるときには、現実ロボットは、より短い継続時間でおよび/またはコンポーネントのより少ない移動で、そのタスクのその一部を実行することが可能である。さらに他の例として、ロボットシミュレータは、現実ロボットに可能であるよりもより短い実際の経過時間で、一連のロボットアクションをシミュレーションにおいて適用することが可能である。これにより、成功しないまたはそれ以外の理由で準最適な一連のロボットアクションを、現実ロボットがその代わりに準最適な一連のロボットアクションを実装するように制御される場合よりも、より短い継続時間で、より速く決定することが可能になり、結果的に、現実世界状態データが、その一連のロボットアクションは準最適であると決定するように、解析されることになる。
本明細書に記載されているロボットシミュレータを利用することがなければ、これらのおよび他の技術的効果が様々な実装形態において達成可能ではない可能性がある、ということが注意されるべきである。一例として、ある利用されている機械学習モデルが、第1の一連のロボットアクションを、タスクの一部を成功裏に達成する蓋然性が最も高いと示し、第2の一連のロボットアクションを、そのタスクのその一部を成功裏に達成する蓋然性が2番目に高いと示した、と想定してほしい。さらに、それらの第1および第2の一連のロボットアクションをシミュレーションにおいて適用し、対応するさらにシミュレートされた状態データを解析することによって、第2の一連のロボットアクションが結果的にはシミュレーションにおいてそのタスクのその一部を成功裏に実行させたのに対して、第1の一連のロボットアクションはそうではなかったと決定されたと、想定してほしい。結果として、第2の一連のロボットアクションが、現実ロボットによる実装のために提供されることが可能である。ロボットシミュレータの利用がなければ、成功しなかった第1の一連のロボットアクションが、機械学習モデルがそちらの方をより成功する蓋然性が高いと示していたことの結果として、選ばれ、実装されていた可能性がある。
ロボットシミュレータを用いて、一連のロボットアクションが決定された後では、その一連のロボットアクションを実装するように、現実ロボットが制御されることが可能である。たとえば、ロボットアクションのそれぞれは、直接的にまたは間接的に、対応する時間ステップにおいて実装される対応する制御コマンドを示すことができ、それらの対応する制御コマンドが、順に、対応する時間ステップにおいて、実装される。制御コマンドを実装することは、その制御コマンドを現実ロボットの対応するアクチュエータに送ることを含み得る。
上述されたように、いくつかの実装形態では、一連のロボットアクションが、現実ロボットによる一連のロボットアクションの実装に先立って、ロボットシミュレータにおいて適用される。それらの実装形態のいくつかでは、一連のロボットアクションが適用される間に、ロボットシミュレータからのシミュレートされたデータに基づいて、一連のシミュレートされた状態データインスタンスが生成される。シミュレートされた状態データインスタンスのそれぞれは、一連のロボットアクションにおける対応する点に対し、その対応する点のための対応する予測された環境状態データおよび/またはその対応する点のための対応する予測されたロボット状態データを定義する。それらの実装形態では、一連のシミュレートされた状態データインスタンスのそれぞれが、一連のロボットアクションが実装される間に、対応する現実状態データインスタンスと比較されることが可能である。現実状態データインスタンスのそれぞれは、一連のロボットアクションにおける対応する点に対し、現実環境の1つまたは複数の更新されたセンサベースの観測に基づく現実環境状態(たとえば、ロボットセンサベースおよび/もしくは環境センサベース)を、ならびに/または、現実ロボットの1つまたは複数のセンサベースの観測に基づく現実ロボット状態データを、定義する。シミュレートされた状態データインスタンスは、本明細書に記載されている比較を可能にするために、現実世界センサ(ロボットおよび/または環境)と対応するシミュレートされたセンサ(たとえば、シミュレートされた視覚コンポーネント)の観点から、それぞれが捕捉されることが可能である、ということが注意されるべきである。
シミュレートされた状態データインスタンスのそれぞれは、それらの間に閾値類似度が存在するかどうかを決定するために、対応する現実状態データインスタンスと比較されることが可能である。閾値類似度が存在する場合には、これは、現実ロボット上でのロボットアクションの実装が、シミュレーションにおいて実装されるときのシミュレートされた環境におけるその影響と矛盾のない様態で、現実環境に影響していることを示し得る。これは、追加的にまたは代替的に、現実環境が、シミュレートされた環境状態と対応する状態にあることを示し得る。たとえば、それは、予測されていないオブジェクトが環境に導入されていないこと、および/または、予測されたオブジェクトはどれも環境から除去されていないこと、を示し得る。またさらに、これは、追加的にまたは代替的に、現実ロボット上でのロボットアクションの実装が、シミュレーションにおいて実装されるときのシミュレートされたロボットに対するその影響と矛盾のない様態で、現実ロボットに影響していることを示し得る。
ある点に対するシミュレートされた状態データインスタンスは、その点に対する対応する現実状態データインスタンスと比較されることが可能であり、現実ロボット上で、その点に続くその一連のロボットアクションの実装に先立って、比較される。その点に続くロボットアクションの実装は、閾値類似度を示す比較に左右され得る。閾値類似度は存在しないと比較が示す場合には、一連のロボットアクションに基づく現実ロボットの制御は、停止されることがあり得る。これにより、現実ロボットが、環境条件が変更した状況において、その一連のロボットアクションを実装し続けることが回避される。したがって、現実ロボットを制御し続けることにおいて、エネルギーが浪費されることがなく、ならびに/または、現実ロボットおよび/もしくは環境オブジェクトに対する損害が、防止される。オプションとして、一連のロボットアクションに基づく現実ロボットの制御が停止されると、ロボットシミュレータのシミュレートされた環境を再構成するために、更新された現実環境状態データが利用され、ロボットシミュレータは、再構成されたシミュレートされた環境に基づいて、実装する更新された一連のロボットアクションを決定するのに、利用される。更新された一連のロボットアクションは、次に、現実ロボットを制御する際に利用されることが可能である。さらに、更新された一連のシミュレートされた状態データインスタンスは、更新された一連のロボットアクションと共に、更新された一連のロボットアクションを完全に実装する前にこれら2つの間の閾値類似度を保証するように、対応する現実状態データインスタンスとの比較を再び可能にするために、提供され得る。
ある特定の例として、シミュレートされた状態データインスタンスのそれぞれは、対応する予測された環境状態データを含み得るが、この対応する予測された環境状態データは、対応するレンダリングされた画像に基づいており、(現実ロボットの現実の視覚コンポーネントに対応する)シミュレートされたロボットのシミュレートされた視覚コンポーネントの視点からレンダリングされる。たとえば、シミュレートされた状態データインスタンスのための環境状態データは、対応するレンダリングされた画像のセグメンテーションマスクおよび/または対応するレンダリングされた画像の埋め込み(たとえば、レンダリングされた画像を、エンコーダを用いて処理することに基づいて生成された埋め込み)を含み得る。したがって、環境状態データは、一連のロボットアクションにおける対応する点における、予測された環境状態の指示を提供することができる。さらに、現実状態データインスタンスのそれぞれは、ロボットの現実の視覚コンポーネントからの対応する現実画像に基づく、対応する現実環境状態データを含み得る。たとえば、現実状態データインスタンスに対する現実環境状態データは、対応する現実画像のセグメンテーションマスクおよび/または対応する現実画像の埋め込み(たとえば、現実の画像を、エンコーダを用いて処理することに基づいて生成された埋め込み)を含み得る。引き続きこの例についてであるが、予測された環境状態データのインスタンスは、それらのインスタンスに対応する点に続くその一連のロボットアクションを実装することに先立って、現実環境状態データの対応するインスタンスと比較されることが可能である。たとえば、予測されたセグメンテーションマスクは、これら2つの間に閾値類似度が存在するかどうかを決定するために、(たとえば、セグメンテーションマスクのサイズおよび/または位置の差を決定することによって)現実のセグメンテーションマスクと比較されることが可能である。また、たとえば、予測された埋め込みは、これら2つの間に閾値類似度が存在するかどうかを決定するために、(たとえば、これら2つの間の埋め込み空間における距離を決定することによって)現実の埋め込みと比較されることが可能である。セグメンテーションマスク、埋め込み、および/または視覚データの非ピクセルレベルの抽象を利用することは、シミュレーションからのレンダリングされた視覚データと現実の視覚データとの間に存在し得る現実のギャップにとって、より堅牢であり得る。たとえば、そのような抽象の利用は、視覚データのピクセルを直接的に比較するよりも、現実のギャップに対して、より堅牢であり得る。
シミュレートされた状態データインスタンスと現実状態データインスタンスとの間の比較は、ロボットシミュレータによって(たとえば、現実ロボットによって提供された現実状態データインスタンスに基づいて)、および/または、現実ロボットによって(たとえば、ロボットシミュレータによって提供されたシミュレートされた状態データインスタンスに基づいて)、実行されることが可能である。
様々な実装形態において、与えられた時間においてロボットシミュレータによって決定されているおよび/または現実ロボットによって実装されている一連のロボットアクションは、現実ロボットによって実装されるタスクの一部のみに対するものである。それらの実装形態では、ロボットシミュレータは、そのタスクの他の一部を実行するために実装される次の一連のロボットアクションを決定するために利用されることが可能であり、その次の一連のロボットアクションは、一連のロボットアクションの実装に続いて、現実ロボットによって実装される。このプロセスは、そのタスクを完了するのに必要なすべての一連のロボットアクションが決定されて実装されるまで、継続し得る。したがって、ロボットシミュレータは、現実ロボットのための制御ループにおいて有効に存在し得るのであって、現実ロボットによって用いられるための更新された一連のロボットアクションを継続して提供する。
それらの実装形態のいくつかでは、次の一連のロボットアクションが、一連のロボットアクションが現実ロボットによって完全に実装されることに先立って、ロボットシミュレータによって、決定され得る。様々な状況において、次の一連のロボットアクションは、シミュレートされた環境に基づいて、それがロボットシミュレータにおいて進行するにつれて、決定され得る。たとえば、シミュレートされた環境は、それが進行するにつれて、シミュレートされた状態データインスタンスと現実状態データインスタンスとの間の比較が、それまでに実装されたロボットアクションに対して、閾値類似度を満足するときに、利用されることが可能である。様々な他の状況では、次の一連のロボットアクションは、更新された現実環境状態データに基づき再構成された、再構成されシミュレートされた環境に基づいて、決定され得る。たとえば、シミュレートされた環境は、上述されたように、閾値類似度が満足されていないとの決定に応答して、再構成されることが可能である。
以上では、本明細書に記載されている技法によって達成されることが可能な様々な技術的効果について、言及されてきた。それらの効果に加えて、またはそれらの代わりに、本明細書に記載されている技法によると、ロボットアクションのより堅牢な計画が、および/または、電力効率がより優れた現実ロボットの利用が、可能になる。たとえば、現実ロボットから離隔しているハードウェアによってロボットシミュレータが実装されるような実装形態においては、現実ロボット上で実装されるロボットアクションのための計画が、ロボットシミュレータによって、実行され得る。これにより、ハードウェア性能が限定されている現実ロボット上での、より堅牢な計画が可能になる。たとえば、ロボットシミュレータは、計画において、ロボットシミュレータには利用可能であり得るが現実ロボット上には存在していないGPUおよび/またはCPUを必要とする機械学習モデルを、利用することができる。リモートなロボットシミュレータ上で計画を実行することで、電池によって給電される現実ロボットにおける限定された電池寿命を追加的または代替的に保存することが可能になるが、この理由は、現実ロボットが、計画のために、プロセッササイクルおよび/または他の電力リソース集約的なリソースを利用する必要がないからである。
以上の説明は、本明細書に開示されている単にいくつかの実装形態の概観として提供されている。これらのおよび他の実装形態は、発明を実施するための形態、特許請求の範囲、および添付の文書を含めて、本明細書において、より詳細に説明される。
以上の概念と本明細書においてより詳細に説明される追加的な概念とのすべての組合せは、本明細書に開示されている主題の一部として考えられることが、理解されるべきである。たとえば、本開示の最後に記載されている特許請求された主題のすべての組合せは、本明細書に開示されている主題の一部であると考えられる。
本明細書に開示されている実装形態が実装されることが可能な例示的な環境の図解である。 本明細書に開示されている様々な実装形態による、現実ロボットのシミュレーション駆動型ロボット制御の例示的な方法を図解しているフローチャートである。 図1の様々なコンポーネントの例と、現実ロボットのシミュレーション駆動型ロボット制御において様々なコンポーネントの間で生じ得る相互作用との図解である。 ロボットシミュレータを利用して決定された一連のロボットアクションに基づいて現実ロボットの制御を継続すべきかどうかを決定する際に、現実状態データインスタンスとシミュレーション状態データインスタンスとを第1の頻度で比較する例の図解である。 ロボットシミュレータを利用して決定された一連のロボットアクションに基づいて現実ロボットの制御を継続すべきかどうかを決定する際に、現実状態データインスタンスとシミュレーション状態データインスタンスとを第2の頻度で比較する例の図解である。 ロボットの例示的なアーキテクチャの概略図である。 コンピュータシステムの例示的なアーキテクチャの概略図である。
図1は、本明細書に開示されている実装形態が実装され得る例示的な環境を、図解している。この例示的な環境は、ロボット110と食洗機195とを含む。この例示的な環境は、また、テーブル191の上にある、ボウル192と、カップ193と、コーヒーマグ194と、を含む。図1の例示的な環境は、オブジェクト191~195のうちの1つまたは複数を操作することを含むような様々なタスクを実行する際に、本明細書に記載されている技法をロボット110が利用可能な現実世界環境であり得る。たとえば、タスクは、オブジェクト191~195のうちの1つまたは複数を押すこと、握持すること、またはそれ以外の様態で操作することを含み得る。他の例として、タスクは、オブジェクト191~194のそれぞれを食洗機195の中に装填することなど、より複雑なタスクを含み得る。
図1に図解されているロボット110は、特定のモバイルロボットである。しかし、本明細書に開示されている技法を用いると、図1に図解されているロボット110とは1つまたは複数の点で異なる追加的なロボットなど、追加的なおよび/または代替的なロボットが利用され得る。たとえば、モバイルフォークリフトロボット、ロボットアーム、無人航空機(「UAV」)、および/もしくはヒューマノイドロボットが、本明細書に記載された技法において、ロボット110の代わりに、またはロボット110に加えて、利用されることが可能である。
ロボット110は、ロボット110の移動のために、その対向する両側に車輪が提供されているベース113を含む。ベース113は、たとえば、ロボット110の移動の所望の方向、速度、および/または加速度を達成するようにロボット110の車輪を駆動するための、1つまたは複数のモータを含み得る。
ロボット110は、また、視覚コンポーネント111Aの視線に存在するオブジェクトの形状、色、深度、および/または他の特徴と関係する画像を生成することができる視覚コンポーネント111も含む。視覚コンポーネント111は、たとえば、モノグラフィックカメラ(たとえば、2次元のRGB画像を生成する)、ステレオグラフィックカメラ(たとえば、2.5次元のRGB-D画像を生成する)、および/またはレーザスキャナ(たとえば、2.5次元深度(D)の画像またはポイントクラウドを生成するLIDAR)であり得る。ロボット110は、また、2つの対向する「フィンガ」または「ディジット」を備えたグリッパの形態を有するエンドエフェクタ115を備えた、ロボットアーム114も含む。
ロボット110は、また、たとえば、ロボットアクションを実装し(たとえば、対応する制御コマンドを、そのアクチュエータおよび/または他の動作コンポーネントに提供することによって)、視覚コンポーネントデータに基づいてオブジェクトのポーズおよび/または識別子を決定し、オプションとしてロボットシミュレータを実装する、1つまたは複数のプロセッサも含む。たとえば、ロボット110の1つまたは複数のプロセッサは、図2の方法200の全部または一部の態様を実装し得る。様々なロボットの構造および機能のいくつかの例に関する追加的な説明が、本明細書で提供されている。
図1の例示的な環境は、また、ロボット110に結合されておらず、またはそれ以外の様態でもロボット110と一体化されていない、1つまたは複数の環境視覚コンポーネント170も含む。さらに、この例示的な環境は、現実ロボットシステム120と、ロボットシミュレータ140と、オブジェクトモデルデータベース152と、1つまたは複数の機械学習(ML)モデル154とを含む。
現実ロボットシステム120は、ロボット110の1つまたは複数のプロセッサによって、実装される。図1では、現実ロボットシステム120は、現実状態データエンジン122と、制御エンジン124と、オプショナルの比較エンジン126とを有するように、図解されている。様々な実装形態では、追加的なエンジンが、現実ロボットシステム120に含まれ得る。
現実状態データエンジン122は、本明細書に記載されている現実環境状態データを生成するため、および/または本明細書に記載されている現実状態データインスタンスを生成するために、センサベースの観測を処理する。現実環境状態データおよび/または現実状態データインスタンスを生成する際には、現実状態データエンジン122は、1つまたは複数のローカルに記憶されている機械学習モデル(図解されていない)を利用して、センサベースの観測を処理することができる。
一例として、現実状態データエンジン122は、機械学習モデルを用いて、ロボット110の環境におけるオブジェクトのポーズおよび/または分類を含む現実環境状態データを生成するために、(視覚コンポーネント111からの、および/または視覚コンポーネント170からの)視覚データを処理することができる。他の例として、現実状態データエンジン122は、機械学習モデルを用いて、その環境におけるオブジェクトのためのポーズを生成するために、視覚データを処理することができ、オブジェクトに添付され視覚データに捕捉されているラベルに反映されている識別子など、オブジェクトのための細分性の高い識別子を決定するために、視覚データを別個に処理することができる。現実環境状態データは、現実ロボットシステム120によってロボットシミュレータ140に提供され、ロボットシミュレータ140のシミュレートされた環境を構成する(すなわち、最初に構成する、または再構成する)際にロボットシミュレータの構成エンジン142によって用いられ得る。
他の例として、現実状態データエンジン122は、対応するセグメンテーションマスクおよび/または視覚データ埋め込みをそれぞれが含む現実状態データインスタンスを生成するために、機械学習モデルを用いて、(視覚コンポーネント111からのおよび/または視覚コンポーネント170からの)視覚データを処理することができる。現実状態データインスタンスは、現実ロボットシステム120の比較エンジン126またはロボットシミュレータ140の比較エンジン150によって、現実状態データインスタンスとシミュレートされた状態データインスタンスとの間に閾値類似度が存在するかどうかを決定するために、現実状態データインスタンスと対応するシミュレートされた状態データインスタンスとを比較する際に、用いられ得る。現実状態データエンジン122は、様々な実装形態において、知覚システムを含み得る、および/または図2の方法200のブロック252Aを実装し得る。
制御エンジン124は、ロボットシミュレータ140のシミュレートされたアクションエンジン144によって決定されるロボットアクションを、実装する。ロボットアクションを実装することは、対応する制御コマンドを、ロボット110の対応するアクチュエータに送ることを含み得るが、その場合、制御コマンドは、ロボットアクションによって直接的または間接的に示される。
比較エンジン126は、制御エンジン124によって一連のロボットアクションが実装される間に、比較された現実状態データインスタンスとシミュレートされた状態データインスタンスとの間に閾値類似度が存在するかどうかを決定するために、実装の間に対応する点に対する(現実状態データエンジン122からの)現実状態データインスタンスと、(ロボットシミュレータ140のシミュレートされた状態データエンジン148からの)シミュレートされた状態データインスタンスとを比較することができる。比較エンジン126は、制御エンジン124と通信する関係にあり得、制御エンジン124に、比較が閾値類似度を示す限り、ロボットシミュレータによって提供されるロボットアクションの実装を継続させることが可能である。比較エンジン126は、追加的にまたは代替的に、1つまたは複数の比較が閾値類似度を示さないときには、制御エンジン124に、ロボットシミュレータによって提供されるロボットアクションの実装を停止させることが可能である。たとえば、比較エンジン126は、単一の比較が閾値類似度を示さないとき、またはNを1よりも大きな整数、Mを整数として、N回のシーケンシャルな比較または直近のN+M回の比較のうちのN回の比較など、2回以上の比較が閾値類似度を示さないときには、制御エンジン124に実装を停止させることができる。比較エンジン126は、様々な実装形態において、図2の方法200のブロック262および/またはブロック264を実装することができる。
ロボットシミュレータ140は、ロボット110の1つもしくは複数のハードウェアコンポーネント(たとえば、プロセッサ)によって実装されるか、または、ロボット110とは離隔しているがネットワーク通信関係にある、1つもしくは複数のコンピューティングデバイスによって実装される。たとえば、コンピューティングデバイスは、ローカルエリアネットワークおよび/またはワイドエリアネットワークを介して、ロボット110とネットワーク通信関係にあり得る。ロボットシミュレータ140は、対応する環境オブジェクトを含む環境をシミュレートし、シミュレートされた環境において動作するロボットをシミュレートし(たとえば、ロボット110および/または他のロボットをシミュレートする)、様々なシミュレートされたロボットアクションの仮想的な実装に応答して、シミュレートされたロボットの応答をシミュレートし、シミュレートされたロボットアクションに応答する、シミュレートされたロボットとシミュレートされた環境オブジェクトとの間の相互作用をシミュレートするのに、用いられる。衝突検出、軟体および剛体の力学などをシミュレートする物理エンジンなど、様々なシミュレータが、利用され得る。そのようなシミュレータの非限定的な例として、BULLET物理エンジンがある。
ロボットシミュレータ140は、構成エンジン121と、オプショナルな評価モジュール145を備えたシミュレートされたアクションエンジン144と、シミュレートされた適用エンジン146と、シミュレートされた状態データエンジン148と、比較エンジン150とを含む。
構成エンジン121は、ロボットシミュレータ140のシミュレートされた環境のための様々なパラメータを構成する、および/または、ロボットシミュレータ140のシミュレートされたロボットのための様々なパラメータを構成する。シミュレートされた環境を構成する際に、構成エンジン121は、現実環境状態データを利用する。いくつかの実装形態では、現実環境状態データは、現実ロボットシステム120の現実状態データエンジン122によっておよび/もしくはその環境における他のロボット(図解されていない)の現実状態データエンジンによって提供された、ポーズならびに/またはオブジェクト識別子を含み得る。いくつかの実装形態では、現実環境状態データは、追加的にまたは代替的に、ロボット110の視覚コンポーネント111からの視覚データおよび/または環境視覚コンポーネント170からの視覚データなど、生のセンサベースの観測を含む。それらの実装形態では、構成エンジン121は、知覚システムを含み得、たとえば、センサベースの観測に基づいて、オブジェクトのポーズおよび/またはオブジェクト識別子を生成することができる。
シミュレートされた環境を構成する際に、構成エンジン142は、シミュレートされた環境で利用するための3次元(3D)モデルを識別するために、オブジェクトモデルデータベース152にアクセスすることができる。たとえば、オブジェクトモデルデータベース152は、その環境における一部のまたはすべてのオブジェクトのための正確な3次元モデルを含み得、構成エンジン142は、たとえばオブジェクト識別子を用いて、3次元モデルを、対応するオブジェクトに一致させることができる。たとえば、ボウル192は、その上に識別子(たとえば、QRコード(登録商標)または他の識別子)を含み得るが、現実環境状態データは、その識別子とその識別子に対するポーズとを反映することが可能である。構成エンジン142は、オブジェクトモデルデータベース152からボウル192のための3次元モデルを検索するために、識別子を利用することが可能であり(たとえば、それは、識別子に基づいて、索引を付することが可能である)、その3次元モデルを、ポーズに基づいて、シミュレートされた環境に配置することができる。
いくつかの実装形態では、シミュレートされた環境を構成することは、また、ロボット110を反映するおよび/または現実環境におけるその現在の状態を反映するように、シミュレートされたロボットを構成することも含み得る。そのような実装形態において、現実状態データエンジン122は、ロボット110の識別子および/またはロボットのジョイントのそれぞれのための現在のポーズなどの現実環境におけるロボット110の現在の状態を含む、現実環境状態データを提供することができる。シミュレートされたロボットを構成する際には、構成エンジン142は、ロボットモデルを利用できる。ロボットモデルは、シミュレートされたロボットの物理的構成およびシミュレートされたロボットの制約条件、シミュレートされたロボットの動的モデル、ならびに/またはシミュレートされたロボットの他のパラメータを定義し得る。構成エンジン121は、様々な実装形態において、図2の方法200のブロック252および/またはブロック272の全部または一部の態様を、実装することができる。
シミュレートされたアクションエンジン144は、構成エンジン142によって構成されたシミュレートされた環境に基づいて、ロボットタスクの少なくとも一部を実行する際にロボット110(および/または他の図解されていないロボット)によって用いられる一連のロボットアクションを決定することができる。一連のロボットアクションを決定する際には、シミュレートされたアクションエンジン144は、シミュレートされた環境の視点から、1つまたは複数の機械学習モデル154および/またはロボットシミュレータにアクセス可能な規則を利用して、その一連のロボットアクションを決定することができる。一例として、機械学習モデル154は、強化または模倣学習を利用して訓練されるポリシモデルを含み得、シミュレートされたアクションエンジン144は、ロボットアクション上の確率分布を生成するためにシミュレートされたデータをポリシモデルに適用し、その確率分布に基づいて一連のロボットアクションを選択することによって、一連のロボットアクションを決定することができる。それぞれの次のロボットアクションを選択する際には、シミュレートされたデータは、シミュレートされた環境および/またはシミュレートされたロボットの新たな状態を反映できることが注意されるべきであり、その場合、新たな状態は、シミュレーションにおける先行のロボットアクションからロールアウトすること(たとえば、シミュレートされた適用エンジン146によるロールアウト)を反映する。他の例として、機械学習モデル154は、それぞれの時間ステップにおいて、現在のシミュレートされた視覚データと対応する候補であるロボットアクションとを処理し、候補であるロボットアクションを実装することの結果としてタスクの少なくとも一部が成功裏に実行される蓋然性を反映する値を生成するために、用いられることが可能な機械学習モデルを含み得る。複数の候補であるロボットアクションが、それぞれの時間ステップにおいて、シミュレートされたアクションエンジン144によって考慮されることが可能であり、生成された値に基づいて、一連のロボットアクションに含めるための1つが、選択される。それぞれの次のロボットアクションを選択する際には、シミュレートされたデータは、シミュレートされた環境および/またはシミュレートされたロボットの新たな状態を反映することができることが注意されるべきであり、その場合に、新たな状態は、シミュレーションにおける先行するロボットアクションのロールアウトを反映する。
いくつかの実装形態において、シミュレートされたアクションエンジン144は、複数の候補である一連のロボットアクションを生成し、どれが、ロボット110によって用いられるために提供される一連のロボットアクションとして決定されるのかを決定する。それらの実装形態のいくつかのバージョンでは、シミュレートされたアクションエンジン144の評価モジュール145が、候補である一連のロボットアクションを評価し、その評価に基づいて、それらの候補である一連のロボットアクションの中から、ロボット110によって用いられるために提供すべきただ1つを決定するのに、利用される。それらの実装形態のいくつかのバージョンでは、シミュレートされた適用エンジン146が、候補であるロボットアクションのそれぞれを、ロボットシミュレータのシミュレートされたロボットに、そしてシミュレートされた環境において、適用することができる。さらに、シミュレートされた状態データエンジン148は、適用の間からおよび/または適用の後に、シミュレートされた状態データを生成することが可能であり、評価モジュール145は、1つまたは複数の候補である一連のロボットアクションを評価する際に、シミュレートされた状態データを利用することが可能である。
一例として、評価モジュール145は、一連のロボットアクションによって実装されることが意図されているタスクの一部が成功したかどうかを示すタスク成功特徴を生成するために、その一連のロボットアクションに対するシミュレートされた状態データを利用することができる。たとえば、そのタスクのその一部がオブジェクトを握持することである場合には、評価モジュール145は、その一連のロボットアクションを適用することによってオブジェクトのシミュレートされた表現が握持されたことをシミュレートされた状態データが示すかどうかに基づいて、タスク成功特徴を生成することができる。そのような例では、評価モジュール145は、タスク成功特徴がそのタスクのその一部の成功を示す場合にのみ、その一連のロボットアクションがロボット110によって用いられるために提供されるものであると決定できる。
一例として、評価モジュール145は、一連のロボットアクションにおけるロボットアクションの量および/またはその一連のロボットアクションを実行する際にロボットのコンポーネントによって横断される距離を示す効率性特徴を追加的にまたは代替的に生成するために、一連のロボットアクションに対するシミュレートされた状態データを利用することができる。この距離は、たとえば、シミュレートされたロボットのジョイントによって横断されるジョイント空間における累積的な距離、および/または、シミュレートされたロボットのエンドエフェクタによって横断されたタスク空間における距離、であり得る。そのような例では、評価モジュール145は、効率性特徴が絶対および/または相対閾値を満足する場合にのみ、その一連のロボットアクションがロボット110によって用いられるために提供されるものであると決定できる。シミュレートされたアクションエンジン144は、様々な実装形態において、図2の方法200のブロック256の全部または一部の態様を実装することができる。
シミュレートされた適用エンジン146は、一連のロボットアクションを、シミュレートされたロボットに、そしてシミュレートされた環境において、適用することができる。これにより、シミュレートされたロボットは、それらのロボットアクションに従って移動させられ、シミュレートされた環境は、それらのロボットアクションの少なくとも一部によって影響を受ける。上述されたように、シミュレートされた適用エンジン146は、たとえば、複数の異なる候補である一連のロボットアクションを評価する際に評価モジュール145によって利用されるシミュレートされた状態データを生成するために、オプションとして、複数の異なる候補である一連のロボットアクションを適用することができる。そのような状況では、シミュレートされた適用エンジン146は、同じ開始時点での環境およびロボット状態を有する異なる候補である一連のロボットアクションのそれぞれを適用し得るが、それぞれに対して、そして、対応する適用されたロボットアクションに従って、別々にシミュレーションをロールアウトすることがあり得る。シミュレートされた適用エンジン146は、様々な実装形態において、図2の方法200のブロック256の全部または一部の態様を実装することが可能である。
シミュレートされた状態データエンジン148は、シミュレートされた適用エンジン146によるロボットアクションの適用のために、シミュレートされた状態データを、生成し得る。生成されたシミュレートされた状態データは、評価モジュール145によるデータ利用を含み得、ならびに/または、比較エンジン126によるおよび/もしくは比較エンジン150による利用のためのシミュレートされた状態データインスタンスを含み得る。たとえば、シミュレートされた適用エンジン146によって適用された一連のロボットアクションに対して、シミュレートされた状態データエンジン148は、その一連のロボットアクションの適用の間のロボットシミュレータからのシミュレートされたデータに基づいて、一連のシミュレートされた状態データインスタンスを生成することができる。たとえば、シミュレートされた状態データエンジン148は、一連のロボットアクションのどの適用よりも先に最初のシミュレートされた状態データインスタンスを生成し得るが、それぞれのロボットアクションの適用の後で、1つおきのロボットアクションの適用の後で、3つ目ごとのロボットアクションの適用の後で、または他の頻度で、シミュレートされた状態データインスタンスを生成し得る。シミュレートされた状態データインスタンスは、それぞれが、一連のロボットアクションにおける対応する点に対して、その対応する点に対する対応する予測された環境状態データを、および/またはその対応する点に対する対応する予測されたロボット状態データを、定義する。シミュレートされた状態データエンジン148は、様々な実装形態において、図2の方法200のブロック256Aおよび/またはブロック258の全部または一部の態様を実装することが可能である。
比較エンジン150は、上述された現実ロボットシステム120の比較エンジン126との間で、1つまたは複数の態様を共有し得る。様々な実装形態において、比較エンジン126と比較エンジン150との一方だけが提供され、他方は提供されない。比較エンジン150が含まれている実装形態では、それは、現実状態データエンジン122から現実状態データインスタンスを取得することができ、それらを、シミュレートされた状態データエンジン148によって生成されたシミュレートされた状態データインスタンスと比較することができる。比較エンジン126が含まれている実装形態では、それは、シミュレートされた状態データエンジン148からシミュレートされた状態データインスタンスを取得することができ、それらを、現実状態データエンジン122によって生成された現実状態データインスタンスと比較することができる。比較エンジン150は、様々な実装形態において、図2の方法200のブロック262および/またはブロック264の全部または一部の態様を実装することが可能である。
図1の様々なコンポーネントと、それらのコンポーネントの間で生じ得る相互作用とに関する追加的な説明が、図3および図4に関して、以下に記載される。しかし、最初に、図2の方法200が説明され、この図2は、本明細書に開示されている様々な実装形態による、現実ロボットのシミュレーション駆動型ロボット制御の例示的な方法を図解している。便宜上、フローチャートの動作が、それらの動作を実行するシステムを参照して、説明される。このシステムは、ロボットのおよび/またはロボットとネットワーク通信関係にあるコンピューティングデバイスの、1つもしくは複数のコンポーネント(たとえば、プロセッサ)を含み得る。さらに、方法200の動作は特定の順序で示されているが、限定的であることは意図されていない。1つまたは複数の動作が、順序を変更される、省略される、または追加されることがあり得る。
ブロック252では、システムが、現実環境状態データを識別する。現実環境状態データは、現実環境のセンサベースの観測に基づく。センサベースの観測は、現実環境における現実ロボットのセンサおよび/または現実環境の中ではあるが現実ロボットの一部ではないセンサなど、現実環境における現実センサからのものである。現実環境状態データは、たとえば、現実環境における現実オブジェクトのポーズ、現実オブジェクトのオブジェクト識別子、および/またはセンサベースの観測自体、を含み得る。
ブロック252は、オプションとして、現実環境のセンサベースの観測に基づいてシステムが現実環境状態データを生成するサブブロック252Aを、含むことがある。たとえば、システムは、センサベースの観測を処理することによって、現実環境における現実オブジェクトのポーズを、および/または現実オブジェクトのオブジェクト識別子を、生成することがあり得る。たとえば、オブジェクト識別子および/またはポーズを生成する際に、システムは、1つまたは複数の機械学習モデルを利用してセンサベースの観測を処理するための知覚システムを利用することがあり得る。
ブロック254では、システムは、ブロック252で識別された現実環境状態データに基づいて、ロボットシミュレータのシミュレートされた環境を構成する。システムは、現実環境状態データに基づき、可能な限り忠実に現実環境を反映するように、シミュレートされた環境を構成する。
ブロック256では、システムは、ロボットシミュレータを用いて、ロボットタスクのための一連のロボットアクションを決定する。ロボットタスクは、現実環境に現在存在する現実ロボットによって直ちに実行されるものであり得るし、または、現実ロボットが現実環境の中に存在する将来の時点(たとえば、5分後)で実行されるものであり得る。シミュレートされた環境で反映されている現実環境は、たとえば、部屋の一部、部屋全体、複数の部屋、建物全体、および/または世界の中における他の画定された空間であり得る。
ブロック256は、オプションとして、サブブロック256Aを含み得、サブブロック256Aでは、システムが、複数の異なる一連のロボットアクションを生成し、その複数の一連のロボットアクションのそれぞれをその現時点での構成(サブブロック256Aの最初の反復における最初の構成)でロボットシミュレータに別々に適用し、その適用からの1つまたは複数の特徴に基づいて一連のロボットアクションを決定する。ある一連のロボットアクションに対する特徴は、その一連のロボットアクションの適用からのシミュレートされたデータに基づいて決定され得、たとえば、タスク成功特徴および/または効率性特徴を含み得る。
ブロック258では、システムは、ブロック256で決定された一連のロボットアクションに対するシミュレートされた状態データインスタンスを生成する。シミュレートされた状態データインスタンスは、それぞれが、一連のロボットアクションにおける対応する点に対して、対応する予測された環境状態データおよび/またはロボット状態データを、定義する。システムは、その点からのシミュレートされた状態データに基づいて、その一連のロボットアクションにおける点に対するシミュレートされた状態データインスタンスを生成する。たとえば、一連の第2のロボットアクションの実装に続くシミュレートされた状態データインスタンスが与えられると、それは、第2のロボットアクションの実装に続く、シミュレートされた環境の状態および/またはシミュレートされたロボットの状態に基づき得る。いくつかの実装形態では、ブロック256がサブブロック256Aを含むときには、ブロック258は、決定された一連のロボットアクションに対するブロック256Aでの適用に基づいてシミュレートされた状態データインスタンスを生成することを含み得る。
ブロック260ではシステムは、ブロック256で決定された一連のロボットアクションにおける1つまたは複数の次のロボットアクションを実装するように、現実ロボットを制御する。一連のロボットアクションに対する最初の反復では、これは、最初のロボットアクションと、オプションとして1つまたは複数のそれに続くロボットアクションとを実装することを含み得る。図2には図解されていないが、いくつかの実装形態では、一連のロボットアクションに対する最初の反復の前に、システムは、現在の現実状態データインスタンスと、その一連のロボットアクションの実装の前の予測された環境および/またはロボット状態を反映するシミュレートされた状態データインスタンスとを、比較し得ることが注意されるべきである。これによって、その一連のロボットアクションがそれに基づき決定される、最初のシミュレートされたロボット状態および/または最初のシミュレートされた環境状態との比較で、現実ロボット状態および/または現実環境状態が著しく変更していないことが保証され得る。
ブロック262では、システムは、現実状態データインスタンスと、ブロック258で生成された対応するシミュレートされた状態データインスタンスと、を比較する。現実状態データインスタンスは、それぞれが、ブロック260の直近の反復におけるロボットアクションのうちの1つの実装の後またはその間の対応する点において、生成される。
ブロック264では、システムは、ブロック262の比較が、このブロック262で比較されている現実状態データインスタンスとシミュレートされた状態データインスタンスとの間の閾値類似度を示すかどうかを決定する。
ブロック264で、システムが、閾値類似度が示されていると決定する場合には、システムは、ブロック266に進む。ブロック266では、システムは、一連のロボットアクションに、1つまたは複数の残っているロボットアクションが存在するかどうかを決定する。残っている場合には、システムは、一連のロボットアクションにおける次のロボットアクションを実装するように現実ロボットを制御するために、ブロック260に戻る。ブロック266で、システムが、一連のロボットアクションに残っているロボットアクションは存在しないと決定する場合には、システムは、ブロック268に進む。
ブロック268では、システムは、現実ロボットによって実行されているタスクの完了のためにさらなるロボットアクションが存在するかどうかを決定する。存在しない場合には、システムはブロック270に進み、方法200は、そのタスクに関しては終了する(しかし、他のタスクのために再度開始されることはあり得る)。その場合には、システムは、ブロック256に戻り、ロボットシミュレータを用いて、そのロボットタスクのための次の一連のロボットアクションを決定する。いくつかの実装形態では、ブロック256の次の反復は、全体としてまたは部分的に、ブロック256の直前の反復の際に決定された一連のロボットアクションに基づいて、ブロック260の反復が依然として実行されている間に実行されることがあり得る、ということが注意されるべきである。また、実行の前にブロック272に遭遇することなくブロック256が再び実行されるようないくつかの実装形態では、ロボットシミュレータが、ロボットシミュレータにおける直近の一連のロボットアクションの適用の後でその状態に一致する状態にあり得る、ということも注意されるべきである。実行の前にブロック272に遭遇することなくブロック256が再び実行されるいくつかの他の実装形態では、ロボットシミュレータは、現実ロボットによる直近の一連のロボットアクションの適用の間からのまたはその後での更新された現実環境状態データに基づいて更新される状態にあり得る(たとえば、シミュレートされたオブジェクトのポーズが、更新された現実環境状態データからのポーズに僅かに基づいて、更新され得る)。
ブロック264において、システムが、閾値類似度が示されていないと決定する場合には、システムは、ブロック272に進む。ブロック272では、システムは、更新された現実環境状態データに基づいて、シミュレートされた環境を再構成する。更新された現実環境状態データは、ブロック260の直近の反復に続く現実環境のセンサベースの観測に基づき得る。ブロック272は、ブロック254との間で、1つまたは複数の態様を共有し得るが、更新された現実環境状態データに基づき得る。ブロック272を実行した後で、システムは、ブロック256に戻り、ロボットシミュレータと再構成されたシミュレートされた環境とを用いて、新たな一連のロボットアクションを決定することができる。
次に図3を参照すると、図1の様々なコンポーネントが、現実ロボットのシミュレーション駆動型ロボット制御において、それらの様々なコンポーネントの間で生じ得る例示的な相互作用と共に、図解されている。図3では、ロボット視覚コンポーネント111が、視覚データ112Aを生成し、その視覚データ112Aを、現実状態データエンジン122および/または構成エンジン142に提供する。さらに、環境視覚コンポーネント170が、視覚データ171Aを生成し、その視覚データ171Aを、構成エンジン142に提供する。現実状態データエンジン122は、現実ロボット110(図1)の現実環境におけるオブジェクトに関するポーズおよび/またはオブジェクト識別子を反映するポーズデータおよび/またはオブジェクト識別子データ112を生成するように、視覚データ112Aを処理することができる。ポーズデータおよび/またはオブジェクト識別子データ112は、構成エンジン142に提供される。
構成エンジン142は、視覚データ112A、視覚データ171A、ならびに/またはポーズデータおよび/もしくはオブジェクト識別子データ112を、構成されたシミュレートされた環境143を生成する際に、利用する。構成エンジン142は、また、構成されたシミュレートされた環境143を生成する際に、オブジェクトモデルデータベース152を利用することができる。たとえば、視覚データ112Aまたは117Aに基づいて決定されたポーズデータおよび/もしくはオブジェクト識別子データ112は、オブジェクトモデルデータベース152からオブジェクトの対応する3次元モデルを検索するのに、利用され得る。それらの3次元モデルは、構成されたシミュレートされた環境に含まれ得、視覚データ112Aまたは117Aに基づいて決定されたポーズデータおよび/もしくはオブジェクト識別子データ112からの対応するポーズにおいて、含まれ得る。
シミュレートされたアクションエンジン144は、1つまたは複数の候補である一連のロボットアクション144A~Nを決定するために、構成されたシミュレートされた環境143を利用する。シミュレートされたアクションエンジン144は、機械学習モデル154を利用してシミュレートされたデータを処理することに基づいて、候補である一連のロボットアクション144A~Nを決定することができる。さらに、シミュレートされたアクションエンジン144は、現実ロボットによって実行されるタスク101の観点から、候補である一連のロボットアクション144A~Nを決定することができる。タスク101は、たとえば、ユーザからのユーザインターフェース入力に、および/または、より高いレベルの計画システムに、基づき得る。
シミュレートされた適用エンジン146は、候補である一連のロボットアクション144A~Nのそれぞれに対し、ロボットシミュレータにおいて一連のロボットアクション147を適用することができる。いくつかの実装形態では、1つもしくは複数の一連のロボットアクション144A~Nの下流ロボットアクションの1つまたは複数が、シミュレートされた適用エンジン146がその一連の上流ロボットアクションを適用した後で、ロボットシミュレータからの更新されたシミュレーションデータを利用して、シミュレートされたアクションエンジン144によって、生成され得ることが注意されるべきである。
シミュレートされた状態データエンジン148は、候補である一連のロボットアクション144A~Nのそれぞれに対し、そして、シミュレートされた適用エンジンによる一連のロボットアクション147の適用に基づいて、シミュレートされた状態データを生成する。シミュレートされた状態データは、候補である一連のロボットアクション144A~Nのそれぞれに対して、対応する特徴112A~Nを生成するように、利用され得る。評価モジュール145は、(たとえば、複数の候補である一連のロボットアクション144A~Nの間から)実装するために制御エンジン124に提供する決定された一連のロボットアクション144Aを選択する際に、それらの特徴112A~Nを利用することができる。評価モジュール145は、また、既に評価された一連のロボットアクションの評価に関するフィードバックを、シミュレートされたアクションエンジン144に提供することができる。シミュレートされたアクションエンジン144は、そのフィードバックに基づいて、候補である一連のロボットアクション144A~Nの1つまたは複数を、生成することができる。たとえば、シミュレートされたアクションエンジン144は、最初は、単一の候補である一連のロボットアクションのみを生成することができるが、フィードバックが最初に生成された一連のロボットアクションが条件を満たしていないことを示す場合にのみ、追加的な一連のロボットアクションを生成することができる。
シミュレートされた状態データエンジン148は、また、決定された一連のロボットアクション144Aに対して、シミュレートされた状態データインスタンス149Aを生成し、そのシミュレートされた状態データインスタンス149Aを、比較エンジン126または150に提供する。
制御エンジン124は、決定された一連のロボットアクション144Aを、現実ロボット110において、実装する。比較エンジン126または150は、実装の間に、シミュレートされた状態データインスタンスと現実状態データインスタンスとを、比較する。現実状態データインスタンスは、ロボット視覚コンポーネント111からの更新された視覚データ、環境視覚コンポーネント170からの更新された視覚データ、および/または現実状態データエンジン122からの更新された現実状態データに、基づき得る。この比較が、閾値類似度を示す場合には、一連のロボットアクション144Aの実装は、継続し得る。他方で、1つまたは複数の比較が閾値類似度を示さない場合には、比較エンジン126または150が、制御エンジン124に、決定された一連のロボットアクション144Aの実装を停止させることができる。比較エンジン126は、さらに、シミュレートされた環境が本明細書に記載されているように再構成されるようにするため、再構成信号127を、再構成エンジン142に送ることができる。図3は、簡潔にするために、単一の一連のロボットアクションに関して説明されている。しかし、様々な実装形態では、タスクを実行する際に、ロボットシミュレータを利用して追加的な一連のロボットアクションが決定され、現実ロボットによる実装のために提供されることがあり得ることが注意されるべきである。それらの追加的な一連のロボットアクションは、図3に説明されているのと類似の様態で、また本明細書の他の箇所で説明されているように、決定され実装されることが可能である。
次に、図4Aおよび図4Bを参照すると、現実状態データインスタンスとシミュレートされた状態データインスタンスとの比較に関する2つの異なる例が図解されている。図4Aでは、3つのロボットアクション144A1、144A2、および144A3が図解されており、これらは、一連のロボットアクションの全部または一部であり得る。さらに、シミュレートされた状態データインスタンス149A0が提供され、一連のロボットアクションのいずれもが実装される前の予測された状態に対応する。シミュレートされた状態データインスタンス149A1が提供され、ロボットアクション144A1が実装された後での予測された状態に対応し、シミュレートされた状態データインスタンス149A2が提供され、ロボットアクション144A2が実装された後での予測された状態に対応し、シミュレートされた状態データインスタンス149A3が提供され、ロボットアクション144A3が実装された後での予測された状態に対応する。
図4Aでは、比較エンジン126または150は、一連のロボットアクションのいずれもが実装される前に、その時点での現実状態データインスタンス170A0とシミュレートされた状態データインスタンス149A0とを比較して、その比較が閾値類似度を示す場合には、単に、ロボットアクション144A1を実装することができる。ロボットアクション144A1の実装の後では、比較エンジン126または150は、ロボットアクション144A1の実装の後の点からの現実状態データインスタンス170A1と、シミュレートされた状態データインスタンス149A1とを比較することができる。ロボットアクション144A2の実装は、その比較が閾値類似度を示すことに左右され得、あるいは、ロボットアクション144A2は、比較の間に、部分的に(または全体的に)実装されることもあり得るが、その比較が閾値類似度を示さない場合には、その一連のロボットアクションに基づく現実ロボットの制御が停止される。ロボットアクション144A2の実装の後では、比較エンジン126または150は、ロボットアクション144A2の実装の後の点からの現実状態データインスタンス170A2と、シミュレートされた状態データインスタンス149A2とを比較することができる。ロボットアクション144A3の実装は、その比較が閾値類似度を示すことに左右され得、あるいは、ロボットアクション144A3は、比較の間に、部分的に(または全体的に)実装されることもあり得るが、その比較が閾値類似度を示さない場合には、その一連のロボットアクションに基づく現実ロボットの制御が停止される。さらに、ロボットアクション144A3の実装の後では、比較エンジン126または150は、ロボットアクション144A3の実装の後の点からの現実状態データインスタンス170A3と、シミュレートされた状態データインスタンス149A3とを比較することができる。(もしあるならば)一連のロボットアクションのさらなるロボットアクションの実装は、または(ロボットアクション144A3が一連のロボットアクションの終端のロボットアクションである場合には)次の一連のロボットアクションは、その比較が閾値類似度を示すことに左右され得、あるいは、ロボットアクション144A3は、比較の間に、部分的に(または全体的に)実装されることもあり得るが、その比較が閾値類似度を示さない場合には、その一連のロボットアクションに基づく現実ロボットの制御が停止される。
図4Bは、図4Aと類似しており、類似の参照番号は、類似のコンポーネントを指している。しかし、図4Aでは、シミュレートされた状態データインスタンスが、それぞれのアクションの後では、提供されていない。むしろ、単に、最初のシミュレートされた状態データインスタンス149A0とシミュレートされた状態データインスタンス149A3とが、提供されている。したがって、比較エンジン126または150は、現実状態データインスタンス170A0とシミュレートされた状態データインスタンス149A0との間での最初の比較を実行し、同様に、現実状態データインスタンス170A3とシミュレートされた状態データインスタンス149A3との比較も実行するが、ロボットアクション144A1および144A2の後での現実状態データに基づく比較は、実行しない。よって、図4Aおよび図4Bは、比較が比較エンジン126または150によって実行されることが可能な、2つの異なる非限定的で例示的な頻度を図解している。
いくつかの実装形態では、比較が実行される頻度は、あるロボットタスクの試みられた実行の継続時間を通じて固定されていることが可能であるし、オプションとして、複数の異なるロボットタスクのそれぞれに対して、固定されることもあり得る。いくつかの代替的な実装形態では、比較が実行される頻度は、あるロボットタスクの試みられた実行の継続時間を通じて適合させることが可能であるし、および/または、複数の異なるロボットタスクの間で、適合させることも可能である。それらの実装形態のいくつかでは、ある時点において比較が実行される頻度は、現実世界環境、実行されているロボットタスクの一部、および/もしくは実行されているロボットタスクの実際のまたは予測されたエントロピに応じて決定されることが可能である。たとえば、近づいているシミュレートされた状態データインスタンスが、(たとえば、現実ロボットと現実世界オブジェクトとの相互作用に起因して)現実世界環境が変化する蓋然性が高いことを示す場合には、頻度を増加させることが可能である。他方で、近づいているシミュレートされた状態データインスタンスが、現実世界環境が静的なまま留まる蓋然性が高いことを示す場合には、頻度を減少させる、またはより低い頻度が維持されることがあり得る。他の例としては、あるロボットタスク、またはあるロボットタスクの一部に関して、すなわち、何もない廊下を進む場合には、最初の頻度が利用されることが可能である。他方で、あるロボットタスク、またはあるロボットタスクの一部に関して、すなわち、オブジェクトを握持することを試みる場合に、最初の頻度よりも高い第2の頻度が利用されることも、可能である。これらのおよび他の様態で、比較の頻度は、現在もしくは予測されたロボットアクションおよび/または環境状態に応じて、動的に適合させることが可能である。これは、複雑なロボットアクション(たとえば、環境オブジェクトとの相互作用を含むようなもの)および/またはエントロピの高い環境に対しては頻度を増加させることを含み得、他方で、複雑性がより低いロボットアクション(たとえば、環境オブジェクトとの相互作用なしに進むもしくはコンポーネントを移動させる)および/またはエントロピの低い環境に対しては頻度を減少させることを含み得る。したがって、比較の頻度は、選択的に減少させることが可能であり、その結果として、現実世界ロボットの計算リソースおよび/または電力リソースの利用を低下させることが可能になる。さらに、いくつかの実装形態では、現実状態データインスタンスを生成する頻度を、比較の頻度を反映するように調整させることさえも、可能である。たとえば、それらの実装形態のいくつかでは、現実状態データインスタンスは、比較の頻度と一致する頻度でのみ、生成されることになる。これは、その頻度でセンサデータインスタンスを処理することのみ、および/または、その頻度に基づいて対応するセンサコンポーネントのセンシング頻度を適合させることさえも、含み得る。対応するセンサコンポーネントのセンシング頻度を適合させることは、(可能であれば)その頻度で、または、可能な限りその頻度に近接した対応する与えられた頻度で、オプションとしてその頻度よりも高い頻度で、センシングを行うようにそれらを適合させることを含み得る。対応するセンサコンポーネントのセンシング頻度を適合させることの結果として、現実世界ロボットの計算リソースおよび/または電力リソースの利用を低下させることが可能になる。
図5は、ロボット520の例示的なアーキテクチャを、概略的に示している。ロボット520は、ロボット制御システム560と、1つまたは複数の動作コンポーネント540a~540nと、1つまたは複数のセンサ542a~542mと、を含む。センサ542a~542mは、たとえば、視覚センサ、光センサ、圧力センサ、圧力波センサ(たとえば、マイクロフォン)、近接センサ、加速度計、ジャイロスコープ、温度計、気圧計、などを含み得る。センサ542a~mは、ロボット520と一体であるとして示されているが、これは、限定を意図されたものではない。いくつかの実装形態では、センサ542a~mは、たとえば、スタンドアロンのユニットとして、ロボット520の外部に配置される場合もあり得る。
動作コンポーネント540a~540nは、たとえば、1つもしくは複数のエンドエフェクタを含み得、および/または、ロボットの1つもしくは複数のコンポーネントの動きを実現させるための、1つもしくは複数のサーボモータもしくは他のアクチュエータを含み得る。たとえば、ロボット520は、複数の自由度を有する場合もあり得るし、アクチュエータのそれぞれが、制御コマンドに応答して自由度のうちの1つまたは複数の中でロボット520の作動を制御する場合もあり得る。本明細書で使用する、アクチュエータという用語は、そのアクチュエータと関連し得るいずれかのドライバであって、受け取った制御コマンドをそのアクチュエータを駆動するための1つまたは複数の信号に変換するいずれかのドライバだけではなく、動きを生じさせる機械的または電気的なデバイス(たとえば、モータ)を包含する。したがって、ある制御コマンドをアクチュエータに提供することは、その制御コマンドをドライバに提供することを含み得、このドライバは、その制御コマンドを、電気的または機械的なデバイスを駆動して所望の運動を生じさせる適切な信号に、変換する。
ロボット制御システム560は、ロボット520のCPU、GPU、および/または他のコントローラなど、1つまたは複数のプロセッサにおいて実装され得る。いくつかの実装形態では、ロボット520は、制御システム560の全部または一部の態様を含み得る「ブレインボックス」を備え得る。たとえば、このブレインボックスは、データのリアルタイムバーストを、動作コンポーネント540a~nに提供することができ、リアルタイムバーストは、それぞれが、とりわけ、動作コンポーネント540a~nの1つもしくは複数のそれぞれに対する動きのパラメータ(もしあれば)を命じる、1つまたは複数の制御コマンドのセットを含む。制御コマンドは、本明細書に記載されているロボットシミュレータを利用して決定されるロボットアクションに基づき得る。いくつかの実装形態では、ロボット制御システム560は、図2の方法200の特定のブロックを実行し得る。
図6は、本明細書に記載されている技法の1つまたは複数の態様を実行するためにオプションとして利用され得る例示的なコンピューティングデバイス610のブロック図である。たとえば、ロボットシミュレータは、コンピューティングデバイス610上に、または複数のコンピューティングデバイス610のクラスタにおいて、実装されることが可能である。コンピューティングデバイス610は、典型的には、いくつかの周辺デバイスとバスサブシステム612を介して通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえばメモリサブシステム625とファイルストレージサブシステム626とを含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616と、を含み得る。入力デバイスおよび出力デバイスにより、ユーザとコンピューティングデバイス610との対話が可能になる。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイスにおける対応するインターフェースデバイスに結合されている。
ユーザインターフェース入力デバイス622は、キーボード、ポインティングデバイス、たとえばマウス、トラックボール、タッチパッド、もしくはグラフィックスタブレット、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス610にまたは通信ネットワーク上に情報を入力するための、すべての可能性のあるタイプのデバイスおよび方法を含むことが意図されている。
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的なディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または、可視的な画像を作成するための何らかの他の機構を含み得る。ディスプレイサブシステムは、また、オーディオ出力デバイスを介してなど、非視覚的なディスプレイを提供する場合もあり得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス610からの情報をユーザにまたは他のマシンもしくはコンピューティングデバイスに出力するための、すべての可能性のあるタイプのデバイスおよび方法を含むことが意図されている。
ストレージサブシステム624は、本明細書に記載されているモジュールの一部または全部の機能を提供するプログラミングおよびデータ構成物を記憶する。たとえば、ストレージサブシステム624は、図2の方法の特定の態様を実行するためのロジックを含み得る。
これらのソフトウェアモジュールは、一般に、単独で、または他のプロセッサとの組合せにおいて、プロセッサ614によって実行される。ストレージサブシステム624において使用されるメモリ625は、いくつかのメモリを含み得るが、これには、プログラム実行の間の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)630と、固定された命令が記憶されているリードオンリメモリ(ROM)632と、が含まれる。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的なストレージを提供することが可能であって、ハードディスクドライブ、関連のリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装するモジュールは、ストレージサブシステム624の中のファイルストレージサブシステム626によって、またはプロセッサ614によってアクセス可能な他のマシンに、記憶され得る。
バスサブシステム612は、コンピューティングデバイス610の様々なコンポーネントおよびサブシステムを、意図されるように相互に通信させるための機構を提供する。バスサブシステム612は、概略的に単一のバスとして示されているが、このバスサブシステムの代替的な実装形態は、複数のバスを用いることもあり得る。
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、またはいずれかの他のデータ処理システムもしくはコンピューティングデバイスを含む、様々なタイプのものであり得る。コンピュータおよびネットワークの性質は絶えず変化するため、図6に示されているコンピューティングデバイス610に関する記載は、いくつかの実装形態を図解することを目的とする特定の例として意図されているに過ぎない。図6に示されているコンピューティングデバイスよりも多数または少数のコンポーネントを有する、コンピューティングデバイス610の多くの他の構成が可能である。
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が提供され、この方法は、現実環境状態データに基づいて、ロボットシミュレータのシミュレートされる環境を構成するステップを含む。現実環境状態データは、現実環境の1つまたは複数のセンサベースの観測に基づく。この方法は、さらに、現実環境において、ロボットタスクの少なくとも一部を実行する際に、現実ロボットの制御に用いる一連のロボットアクションを、ロボットシミュレータを用いて決定するステップを含む。この方法は、さらに、一連のシミュレートされた状態データインスタンスを生成するため、ロボットシミュレータのシミュレートされたロボットに、一連のロボットアクションを適用するステップを含む。シミュレートされた状態データインスタンスは、それぞれが、一連のロボットアクションにおける対応する点に対し、対応する点に対する対応する予測された環境状態データと、対応する点に対する対応する予測されたロボット状態データとの一方または両方を定義する。この方法は、さらに、一連のロボットアクションの第1の部分集合を実装するように、現実ロボットを制御するステップと、現実状態データインスタンスと、一連のロボットアクションにおける対応する点に対するシミュレートされた状態データインスタンスのうちの対応する1つとを比較するステップと、を含む。現実状態データインスタンスは、対応する点に対し、現実環境の1つまたは複数の更新されたセンサベースの観測に基づく、更新された現実環境状態データと、現実ロボットの1つまたは複数のセンサベースの観測に基づく、現実ロボット状態データとの一方または両方を、定義する。この方法は、さらに、比較するステップが、更新された現実状態データと対応する点に対する予測された状態データインスタンスのうちの対応する1つとの間の閾値類似度を示すことに応答して、一連のロボットアクションの第2の部分集合を実装するように、現実ロボットを制御するステップを含む。
本明細書に開示されている技術のこれらのおよび他の実装形態は、以下の特徴の1つまたは複数を含み得る。
いくつかの実装形態では、この方法は、比較するステップが、閾値類似度を示さないことに応答して、一連のロボットアクションに基づく現実ロボットの制御を停止するステップをさらに含む。それらの実装形態のいくつかのバージョンでは、この方法は、比較するステップが、閾値類似度を示さないことに応答して、更新された現実環境状態データに基づいて、シミュレートされた環境を再構成するステップと、ロボットタスクを実行する際に現実ロボットの制御に用いる更新された一連のロボットアクションを、ロボットシミュレータを用いて決定するステップと、更新された一連のシミュレートされた状態データインスタンスを生成するため、ロボットシミュレータのシミュレートされたロボットに、更新された一連のロボットアクションを適用するステップと、更新された一連のロボットアクションの第1の更新された部分集合を実装するように、現実ロボットを制御するステップと、更新された現実状態データインスタンスと、更新された一連のロボットアクションにおける対応する更新された点に対する更新されたシミュレートされた状態データインスタンスのうちの対応する更新された1つとを比較するステップと、更新された現実状態データインスタンスと更新されたシミュレートされた状態データインスタンスのうちの対応する更新された1つとを比較するステップが、閾値類似度を示すことに応答して、更新された一連のロボットアクションの更新された第2の部分集合を実装するように、現実ロボットを制御するステップと、をさらに含む。更新されたシミュレートされた状態データインスタンスは、それぞれが、更新された一連のロボットアクションにおける対応する更新された点に対して、対応する更新された点に対する、対応する更新された予測された環境状態データと、現実ロボットの1つまたは複数のセンサベースの観測に基づく現実ロボット状態データとの一方または両方を定義する。
いくつかの実装形態では、この方法は、一連のロボットアクションの第2の部分集合を実装し、一連のロボットアクションのいずれかの追加的な部分集合を実装するように、現実ロボットを制御するステップを含む。それらの実装形態のいくつかのバージョンでは、この方法は、さらに、一連のロボットアクションの完全な実装に先立って、ロボットシミュレータを用いて、ロボットタスクの他の一部を実行する際に現実ロボットの制御に用いる次の一連のロボットアクションを決定するステップと、ロボットシミュレータのシミュレートされたロボットに、シミュレートされた状態データインスタンスの終端の1つに対応するロボットシミュレータのシミュレートされたロボットと環境とを用いて、次の一連のシミュレートされた状態データインスタンスを生成するために、次の一連のロボットアクションを適用するステップと、を含む。それらのバージョンのいくつかでは、この方法は、さらに、一連のロボットアクションの完全な実装の後に、次の一連のロボットアクションを実装するように、現実ロボットを制御するステップを含む。次の一連のロボットアクションを実装するように現実ロボットを制御するステップは、次の一連のロボットアクションの第1の次の部分集合を実装するように現実ロボットを制御するステップと、次の現実状態データインスタンスを、次のシミュレートされた状態データインスタンスのうちの対応する1つと比較するステップと、比較するステップが閾値類似度を示すことに応答して、次の一連のロボットアクションの第2の次の部分集合を実装するように現実ロボットを制御するステップと、を含み得る。
いくつかの実装形態では、1つまたは複数のセンサベースの観測は、現実ロボットの1つまたは複数の現実センサに基づくロボットセンサベースの観測を含む。
いくつかの実装形態では、1つまたは複数のセンサベースの観測は、現実ロボットに結合されていないが現実環境に存在する1つまたは複数の現実センサに基づく環境センサベースの観測を含む。
いくつかの実装形態では、ロボットタスクの少なくとも一部を実行する際に現実ロボットの制御に用いる一連のロボットアクションを決定するステップは、別の一連のロボットアクションをロボットシミュレータに適用するステップと、別の一連のロボットアクションをロボットシミュレータに適用するステップからの1つまたは複数の別の特徴と、一連のロボットアクションをロボットシミュレータに適用するステップからの1つまたは複数の特徴とを比較するステップと、1つまたは複数の別の特徴と1つまたは複数の特徴とを比較するステップに基づいて、ロボットタスクの少なくとも一部を実行する際に現実ロボットの制御に用いるために、別の一連のロボットアクションの代わりに一連のロボットアクションを利用することを決定するステップと、を含む。それらの実装形態のいくつかのバージョンでは、1つまたは複数の特徴は、タスク成功特徴と効率性特徴との一方または両方を含んでおり、1つまたは複数の別の特徴は、別のタスク成功特徴と別の効率性特徴との一方または両方を含む。それらのバージョンのいくつかでは、1つまたは複数の特徴は、タスク成功特徴を含んでおり、この方法は、一連のロボットアクションを適用した後に、ロボットシミュレータの終端状態に基づいて、タスク成功特徴を生成するステップをさらに含む。さらに、それらのバージョンのいくつかでは、1つまたは複数の特徴は、追加的にまたは代替的に、効率性特徴を含んでおり、この方法は、さらに、一連のロボットアクションにおけるロボットアクションの量と、一連のロボットアクションを実行する際にシミュレートされたロボットの1つまたは複数のシミュレートされたコンポーネントによって横断される距離との一方または両方に基づいて、効率性特徴を生成するステップをさらに含む。
いくつかの実装形態では、現実状態データインスタンスと、対応する点に対するシミュレートされた状態データインスタンスのうちの対応する1つとを比較するステップは、現実ロボットの1つまたは複数のプロセッサによって実行される。
いくつかの実装形態において、ロボットシミュレータは、現実ロボットから離隔しているが現実ロボットとネットワーク通信関係にある1つまたは複数のリモートプロセッサ上で実装される。
いくつかの実装形態において、現実ロボットの1つまたは複数のプロセッサによって実装される方法が提供され、この方法は、一連のロボットアクションと一連のシミュレートされた状態データインスタンスとを受け取るステップを含む。シミュレートされた状態データインスタンスのそれぞれは、一連のロボットアクションにおける対応する点に対し、対応する点に対する対応する予測された環境状態データと、対応する点に対する対応する予測されたロボット状態データとの一方または両方を定義する。この方法は、さらに、一連のロボットアクションの第1の部分集合を実装するように、現実ロボットを制御するステップと、現実状態データインスタンスと、一連のロボットアクションにおける対応する点に対するシミュレートされた状態データインスタンスのうちの対応する1つとを比較するステップとを含む。現実状態データインスタンスは、対応する点に対して、現実環境の1つまたは複数の更新されたセンサベースの観測に基づく、更新された現実環境状態データと、現実ロボットの1つまたは複数のセンサベースの観測に基づく、現実ロボット状態データとの一方または両方を定義する。この方法は、さらに、比較するステップが、更新された現実状態データと、対応する点に対する予測された状態データインスタンスのうちの対応する1つとの間の閾値類似度を示すことに応答して、一連のロボットアクションの第2の部分集合を実装するように、現実ロボットを制御するステップを含む。
本明細書に開示されている技術のこれらのおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。
いくつかの実装形態では、この方法は、さらに、比較するステップが、閾値類似度を示さないことに応答して、一連のロボットアクションに基づいて、現実ロボットの制御を停止するステップを含む。
いくつかの実装形態では、この方法は、さらに、比較するステップが、閾値類似度を示さないことに応答して、ロボットシミュレータコンポーネントに、更新された現実環境状態データを送信するステップと、ロボットシミュレータコンポーネントから、更新された現実環境状態データと更新された一連のシミュレートされた状態データインスタンスとに基づいて生成される更新された一連のロボットアクションを、受信するステップと、更新された一連のロボットアクションの第1の更新された部分集合を実装するように、現実ロボットを制御するステップと、更新された現実状態データインスタンスと、更新された一連のロボットアクションにおける対応する更新された点に対する更新されたシミュレートされた状態データインスタンスのうちの対応する更新された1つとを比較するステップと、更新された現実状態データインスタンスと更新されたシミュレートされた状態データインスタンスのうちの対応する更新された1つとを比較するステップが、閾値類似度を示すことに応答して、更新された一連のロボットアクションの更新された第2の部分集合を実装するように、現実ロボットを制御するステップと、を含む。
いくつかの実装形態では、ロボットシミュレータは、現実ロボットから離隔しているが現実ロボットとネットワーク通信関係にある1つまたは複数のリモートプロセッサ上で実装される。
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が提供され、この方法は、現実環境の1つまたは複数のセンサベースの観測に基づく現実環境状態データに基づいて、ロボットシミュレータのシミュレートされた環境を構成するステップを含む。この方法は、さらに、現実環境においてロボットタスクの少なくとも一部を実行する際に現実ロボットの制御に用いる第1の候補である一連のロボットアクションと第2の候補である一連のロボットアクションとを、ロボットシミュレータを用いて決定するステップを含む。この方法は、さらに、ロボットシミュレータのシミュレートされたロボットに、構成するステップの後のシミュレートされた環境を用いて、第1のシミュレートされた状態データを生成するために、第1の候補である一連のロボットアクションを適用するステップと、ロボットシミュレータのシミュレートされたロボットに、構成するステップの後のシミュレートされた環境を用いて、第2のシミュレートされた状態データを生成するために、第2の候補である一連のロボットアクションを適用するステップと、を含む。この方法は、さらに、第1のシミュレートされた状態データと第2のシミュレートされた状態データとに基づき、ロボットタスクの少なくとも一部を実行する際に現実ロボットの制御に用いるため、第2の候補である一連のロボットアクションの代わりに、第1の候補である一連のロボットアクションを利用することを決定するステップを含む。この方法は、さらに、第1の候補である一連のロボットアクションを利用するとの決定に応答して、現実ロボットに、第1の候補である一連のロボットアクションを実装させるステップを含む。
本明細書に開示されている技術のこれらのおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。
いくつかの実装形態では、第1のシミュレートされた状態データと第2のシミュレートされた状態データとに基づき、第2の候補である一連のロボットアクションの代わりに、第1の候補である一連のロボットアクションを利用することを決定するステップは、第1のシミュレートされた状態データに基づき、1つまたは複数の第1の特徴を生成するステップと、第2のシミュレートされた状態データに基づき、1つまたは複数の第2の特徴を生成するステップと、第1の特徴と第2の特徴との比較に基づき、第1の候補である一連のロボットアクションを利用することを決定するステップと、を含む。それらの実装形態のいくつかのバージョンでは、1つまたは複数の第1の特徴は、第1のタスク成功特徴と第1の効率性特徴との一方または両方を含み、1つまたは複数の第2の特徴は、第2のタスク成功特徴と第2の効率性特徴との一方または両方を含む。
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が提供され、この方法は、現実環境の1つまたは複数のセンサベースの観測に基づく現実環境状態データに基づいて、ロボットシミュレータのシミュレートされた環境を構成するステップを含む。この方法は、さらに、ロボットタスクの少なくとも一部を実行する際に現実環境において現実ロボットの制御に用いる第1の候補である一連のロボットアクションと第2の候補である一連のロボットアクションとをロボットシミュレータを用いて決定するステップを含む。第1の候補である一連のロボットアクションを決定するステップは、現実環境におけるどのセンサを用いても全く生成することができない現実状態データをシミュレートするシミュレートされた状態データを利用するステップを含む。この方法は、さらに、現実ロボットに、第1の候補である一連のロボットアクションを実装させるステップを含む。
本明細書に開示されている技術のこれらのおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。
いくつかの実装形態では、シミュレートされた状態データは、シミュレートされた視点から生成されることにより、現実環境においてはどのセンサを用いても全く生成することができない現実状態データをシミュレートし、現実環境におけるどのセンサも、現実環境においては、人間による介入がなければ、対応する現実視点からの現実視覚データを捕捉することができない。
いくつかの実装形態では、シミュレートされた状態データは、特定のタイプのシミュレートされたセンサから生成されることにより、現実環境においてはどのセンサを用いても全く生成することができない現実状態データをシミュレートし、現実環境におけるどのセンサもその特定のタイプではない。
他の実装形態は、本明細書に記載されている方法のうちの1つもしくは複数などの方法を実行するように1つまたは複数のプロセッサ(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、および/またはテンソル処理装置(TPU))によって実行可能である命令を記憶している非一時的でコンピュータ可読なストレージ媒体を含み得る。さらに他の実装形態は、本明細書に記載されている方法のうちの1つまたは複数などの方法を遂行するように、記憶されている命令を実行するように動作可能な1つまたは複数のプロセッサを含む、1つもしくは複数のコンピュータおよび/または1つもしくは複数のロボットのシステムを含み得る。
101 タスク
110 ロボット
111 ロボット視覚コンポーネント
111A 視覚コンポーネント
112 ポーズデータおよび/またはオブジェクト識別子データ
112A 視覚データ
112A~N 特徴
113 ベース
114 ロボットアーム
115 エンドエフェクタ
117A 視覚データ
120 現実ロボットシステム
121 構成エンジン
122 現実状態データエンジン
124 制御エンジン
126 比較エンジン
127 再構成信号
140 ロボットシミュレータ
142 構成エンジン
143 構成されたシミュレートされた環境
144 シミュレートされたアクションエンジン
144A 決定された一連のロボットアクション
144A~N 候補である一連のロボットアクション
144A1 ロボットアクション1
144A2 ロボットアクション2
144A3 ロボットアクション3
145 評価モジュール
146 シミュレートされた適用エンジン
147 一連のロボットアクション
148 シミュレートされた状態データエンジン
149A シミュレートされた状態データインスタンス
149A0 シミュレートされた状態データインスタンス
149A1 シミュレートされた状態データインスタンス
149A2 シミュレートされた状態データインスタンス
149A3 シミュレートされた状態データインスタンス
150 比較エンジン
152 オブジェクトモデルデータベース
154 機械学習モデル
170 環境視覚コンポーネント
170A0 現実状態データインスタンス
170A1 現実状態データインスタンス
170A2 現実状態データインスタンス
170A3 現実状態データインスタンス
171A 視覚データ
191 テーブル
192 ボウル
193 カップ
194 コーヒーマグ
195 食洗機
200 方法
520 ロボット
540a~n 動作コンポーネント
542a~m センサ
560 ロボット制御システム
610 コンピューティングデバイス
612 バスサブシステム
614 プロセッサ
616 ネットワークインターフェースサブシステム
620 ユーザインターフェース出力デバイス
622 ユーザインターフェース入力デバイス
624 ストレージサブシステム
625 メモリサブシステム
626 ファイルストレージサブシステム
630 RAM
632 ROM

Claims (28)

1つまたは複数のプロセッサによって実装される方法であって、
現実環境の1つまたは複数のセンサベースの観測に基づく現実環境状態データに基づいて、ロボットシミュレータのシミュレートされた環境を構成するステップと、
ロボットタスクの少なくとも一部を実行する際に、前記現実環境における現実ロボットの制御に用いる一連のロボットアクションを、前記ロボットシミュレータを用いて、決定するステップと、
一連のシミュレートされた状態データインスタンスを生成するため、前記ロボットシミュレータのシミュレートされたロボットに、前記一連のロボットアクションを適用するステップであって、前記シミュレートされた状態データインスタンスのそれぞれは、前記一連のロボットアクションにおける対応する点に対して、
前記対応する点に対する、対応する予測された環境状態データと、
前記対応する点に対する、対応する予測されたロボット状態データと、
の一方または両方を定義する、ステップと、
前記一連のロボットアクションの第1の部分集合を実装するように、前記現実ロボットを制御するステップと、
現実状態データインスタンスと、前記一連のロボットアクションにおける前記対応する点に対する前記シミュレートされた状態データインスタンスのうちの対応する1つとを比較するステップであって、前記現実状態データインスタンスは、前記対応する点に対して、
前記現実環境の1つまたは複数の更新されたセンサベースの観測に基づく、更新された現実環境状態データと、
前記現実ロボットの1つまたは複数のセンサベースの観測に基づく、現実ロボット状態データと、
の一方または両方を定義する、ステップと、
前記比較するステップが、前記更新された現実状態データと、前記対応する点に対する前記予測された状態データインスタンスのうちの前記対応する1つとの間の閾値類似度を示すことに応答して、
前記一連のロボットアクションの第2の部分集合を実装するように、前記現実ロボットを制御するステップと、
を含む方法。
前記比較するステップが、前記閾値類似度を示さないことに応答して、
前記一連のロボットアクションに基づく前記現実ロボットの制御を停止するステップをさらに含む、請求項1に記載の方法。
前記比較するステップが、前記閾値類似度を示さないことに応答して、
更新された現実環境状態データに基づいて、前記シミュレートされた環境を再構成するステップと、
前記ロボットタスクを実行する際に前記現実ロボットの制御に用いる更新された一連のロボットアクションを、前記ロボットシミュレータを用いて決定するステップと、
更新された一連のシミュレートされた状態データインスタンスを生成するため、前記ロボットシミュレータの前記シミュレートされたロボットに、前記更新された一連のロボットアクションを適用するステップであって、前記更新されたシミュレートされた状態データインスタンスのそれぞれは、前記更新された一連のロボットアクションにおける対応する更新された点に対して、
前記対応する更新された点に対する、対応する更新された予測された環境状態データと、
前記現実ロボットの1つまたは複数のセンサベースの観測に基づく、現実ロボット状態データと、
の一方または両方を定義する、ステップと、
前記更新された一連のロボットアクションの第1の更新された部分集合を実装するように、前記現実ロボットを制御するステップと、
更新された現実状態データインスタンスと、前記更新された一連のロボットアクションにおける前記対応する更新された点に対する前記更新されたシミュレートされた状態データインスタンスのうちの対応する更新された1つとを比較するステップと、
前記更新された現実状態データインスタンスと前記更新されたシミュレートされた状態データインスタンスのうちの前記対応する更新された1つとを比較する前記ステップが、前記閾値類似度を示すことに応答して、
前記更新された一連のロボットアクションの更新された第2の部分集合を実装するように、前記現実ロボットを制御するステップと、
をさらに含む、請求項2に記載の方法。
前記一連のロボットアクションの前記第2の部分集合を実装し、前記一連のロボットアクションのいずれかの追加的な部分集合を実装するように、前記現実ロボットを制御するステップを含む、請求項1に記載の方法。
前記一連のロボットアクションの完全な実装に先立って、
前記ロボットシミュレータを用いて、前記ロボットタスクの他の一部を実行する際に前記現実ロボットの制御に用いる次の一連のロボットアクションを決定するステップと、
前記ロボットシミュレータのシミュレートされたロボットに、前記シミュレートされた状態データインスタンスの終端の1つに対応する前記ロボットシミュレータの前記シミュレートされたロボットと前記環境とを用いて、次の一連のシミュレートされた状態データインスタンスを生成するために、前記次の一連のロボットアクションを適用するステップと、
を含んでおり、前記一連のロボットアクションの完全な実装の後に、
前記次の一連のロボットアクションを実装するように、前記現実ロボットを制御するステップをさらに含む、請求項4に記載の方法。
前記次の一連のロボットアクションを実装するように前記現実ロボットを制御するステップは、
前記次の一連のロボットアクションの第1の次の部分集合を実装するように前記現実ロボットを制御するステップと、
次の現実状態データインスタンスを、前記次のシミュレートされた状態データインスタンスのうちの対応する1つと比較するステップと、
前記比較するステップが前記閾値類似度を示すことに応答して、前記次の一連のロボットアクションの第2の次の部分集合を実装するように前記現実ロボットを制御するステップと、
を含む、請求項5に記載の方法。
前記1つまたは複数のセンサベースの観測は、前記現実ロボットの1つまたは複数の現実センサに基づくロボットセンサベースの観測を含む、請求項1から6のいずれか一項に記載の方法。
前記1つまたは複数のセンサベースの観測は、前記現実ロボットに結合されていないが前記現実環境に存在する1つまたは複数の現実センサに基づく環境センサベースの観測を含む、請求項1から7のいずれか一項に記載の方法。
前記ロボットタスクの少なくとも一部を実行する際に前記現実ロボットの制御に用いる前記一連のロボットアクションを決定するステップは、
別の一連のロボットアクションを前記ロボットシミュレータに適用するステップと、
前記別の一連のロボットアクションを前記ロボットシミュレータに適用する前記ステップからの1つまたは複数の別の特徴と、前記一連のロボットアクションを前記ロボットシミュレータに適用する前記ステップからの1つまたは複数の特徴と、を比較するステップと、
前記1つまたは複数の別の特徴と前記1つまたは複数の特徴とを比較する前記ステップに基づいて、前記ロボットタスクの少なくとも一部を実行する際に前記現実ロボットの制御に用いるため、前記別の一連のロボットアクションの代わりに前記一連のロボットアクションを利用することを決定するステップと、
を含む、請求項1から8のいずれか一項に記載の方法。
前記1つまたは複数の特徴は、タスク成功特徴と効率性特徴との一方または両方を含んでおり、前記1つまたは複数の別の特徴は、別のタスク成功特徴と別の効率性特徴との一方または両方を含む、請求項9に記載の方法。
前記1つまたは複数の特徴は前記タスク成功特徴を含んでおり、前記方法は、前記一連のロボットアクションを適用した後に、前記ロボットシミュレータの終端状態に基づいて、前記タスク成功特徴を生成するステップをさらに含む、請求項10に記載の方法。
前記1つまたは複数の特徴は前記効率性特徴を含んでおり、前記方法は、
前記一連のロボットアクションにおけるロボットアクションの量と、
前記一連のロボットアクションを実行する際に前記シミュレートされたロボットの1つまたは複数のシミュレートされたコンポーネントによって横断される距離と、
の一方または両方に基づいて、前記効率性特徴を生成するステップをさらに含む、請求項10に記載の方法。
前記現実状態データインスタンスと、前記対応する点に対する前記シミュレートされた状態データインスタンスのうちの前記対応する1つとを比較するステップは、前記現実ロボットの1つまたは複数のプロセッサによって実行される、請求項1から12のいずれか一項に記載の方法。
前記ロボットシミュレータは、前記現実ロボットから離隔しているが前記現実ロボットとネットワーク通信関係にある1つまたは複数のリモートプロセッサ上で実装される、請求項1から13のいずれか一項に記載の方法。
現実ロボットの1つまたは複数のプロセッサによって実装される方法であって、
一連のロボットアクションと一連のシミュレートされた状態データインスタンスとを受け取るステップであって、前記シミュレートされた状態データインスタンスのそれぞれは、前記一連のロボットアクションにおける対応する点に対し、
前記対応する点に対する、対応する予測された環境状態データと、
前記対応する点に対する、対応する予測されたロボット状態データと、
の一方または両方を定義する、ステップと、
前記一連のロボットアクションの第1の部分集合を実装するように、前記現実ロボットを制御するステップと、
現実状態データインスタンスと、前記一連のロボットアクションにおける前記対応する点に対する前記シミュレートされた状態データインスタンスのうちの対応する1つとを比較するステップであって、前記現実状態データインスタンスは、前記対応する点に対して、
前記現実環境の1つまたは複数の更新されたセンサベースの観測に基づく、更新された現実環境状態データと、
前記現実ロボットの1つまたは複数のセンサベースの観測に基づく、現実ロボット状態データと、
の一方または両方を定義する、ステップと、
前記比較するステップが、前記更新された現実状態データと、前記対応する点に対する前記予測された状態データインスタンスのうちの前記対応する1つとの間の閾値類似度を示すことに応答して、
前記一連のロボットアクションの第2の部分集合を実装するように、前記現実ロボットを制御するステップと、
を含む方法。
前記比較するステップが、前記閾値類似度を示さないことに応答して、
前記一連のロボットアクションに基づいて、前記現実ロボットの制御を停止するステップをさらに含む、請求項15に記載の方法。
前記比較するステップが、前記閾値類似度を示さないことに応答して、
ロボットシミュレータコンポーネントに、前記更新された現実環境状態データを送信するステップと、
前記ロボットシミュレータコンポーネントから、前記更新された現実環境状態データと更新された一連のシミュレートされた状態データインスタンスとに基づいて生成される更新された一連のロボットアクションを、受信するステップであって、前記更新されたシミュレートされた状態データインスタンスのそれぞれは、前記更新された一連のロボットアクションにおける対応する更新された点に対して、
前記対応する更新された点に対する、対応する更新された予測された環境状態データと、
前記現実ロボットの1つまたは複数のセンサベースの観測に基づく現実ロボット状態データと、
の一方または両方を定義する、ステップと、
前記更新された一連のロボットアクションの第1の更新された部分集合を実装するように、前記現実ロボットを制御するステップと、
更新された現実状態データインスタンスと、前記更新された一連のロボットアクションにおける前記対応する更新された点に対する前記更新されたシミュレートされた状態データインスタンスのうちの対応する更新された1つとを比較するステップと、
前記更新された現実状態データインスタンスと前記更新されたシミュレートされた状態データインスタンスのうちの前記対応する更新された1つとを比較する前記ステップが、前記閾値類似度を示すことに応答して、
前記更新された一連のロボットアクションの更新された第2の部分集合を実装するように、前記現実ロボットを制御するステップと、
をさらに含む、請求項16に記載の方法。
前記ロボットシミュレータは、前記現実ロボットから離隔しているが前記現実ロボットとネットワーク通信関係にある1つまたは複数のリモートプロセッサ上で実装される、請求項17に記載の方法。
1つまたは複数のプロセッサによって実装される方法であって、
現実環境の1つまたは複数のセンサベースの観測に基づく現実環境状態データに基づいて、ロボットシミュレータのシミュレートされた環境を構成するステップと、
前記現実環境においてロボットタスクの少なくとも一部を実行する際に現実ロボットの制御に用いる第1の候補である一連のロボットアクションと第2の候補である一連のロボットアクションとを、前記ロボットシミュレータを用いて決定するステップと、
前記ロボットシミュレータのシミュレートされたロボットに、前記構成するステップの後の前記シミュレートされた環境を用いて、第1のシミュレートされた状態データを生成するために、前記第1の候補である一連のロボットアクションを適用するステップと、
前記ロボットシミュレータの前記シミュレートされたロボットに、前記構成するステップの後の前記シミュレートされた環境を用いて、第2のシミュレートされた状態データを生成するために、前記第2の候補である一連のロボットアクションを適用するステップと、
前記第1のシミュレートされた状態データと前記第2のシミュレートされた状態データとに基づき、前記ロボットタスクの少なくとも一部を実行する際に前記現実ロボットの制御に用いるため、前記第2の候補である一連のロボットアクションの代わりに、前記第1の候補である一連のロボットアクションを利用することを決定するステップと、
前記第1の候補である一連のロボットアクションを利用するとの決定に応答して、
前記現実ロボットに、前記第1の候補である一連のロボットアクションを実装させるステップと、
を含む方法。
前記第1のシミュレートされた状態データと前記第2のシミュレートされた状態データとに基づき、前記第2の候補である一連のロボットアクションの代わりに、前記第1の候補である一連のロボットアクションを利用することを決定するステップは、
前記第1のシミュレートされた状態データに基づき、1つまたは複数の第1の特徴を生成するステップと、
前記第2のシミュレートされた状態データに基づき、1つまたは複数の第2の特徴を生成するステップと、
前記第1の特徴と前記第2の特徴との比較に基づき、前記第1の候補である一連のロボットアクションを利用することを決定するステップと、
を含む、請求項19に記載の方法。
前記1つまたは複数の第1の特徴は、第1のタスク成功特徴および/または第1の効率性特徴を含み、前記1つまたは複数の第2の特徴は、第2のタスク成功特徴および/または第2の効率性特徴を含む、請求項20に記載の方法。
1つまたは複数のプロセッサによって実装される方法であって、
現実環境の1つまたは複数のセンサベースの観測に基づく現実環境状態データに基づいて、ロボットシミュレータのシミュレートされた環境を構成するステップと、
ロボットタスクの少なくとも一部を実行する際に前記現実環境において現実ロボットの制御に用いる第1の候補である一連のロボットアクションと第2の候補である一連のロボットアクションとをロボットシミュレータを用いて決定するステップであって、前記第1の候補である一連のロボットアクションを決定するステップは、前記現実環境におけるどのセンサを用いても全く生成することができない現実状態データをシミュレートするシミュレートされた状態データを利用するステップを含む、ステップと、
前記現実ロボットに、前記第1の候補である一連のロボットアクションを実装させるステップと、
を含む、方法。
前記シミュレートされた状態データは、シミュレートされた視点から生成されることにより、前記現実環境においてはどのセンサを用いても全く生成することができない前記現実状態データをシミュレートし、前記現実環境におけるどのセンサも、前記現実環境においては、人間による介入がなければ、対応する現実視点からの現実視覚データを捕捉することができない、請求項22に記載の方法。
前記シミュレートされた状態データは、特定のタイプのシミュレートされたセンサから生成されることにより、前記現実環境においてはどのセンサを用いても全く生成することができない前記現実状態データをシミュレートし、前記現実環境におけるどのセンサも前記特定のタイプではない、請求項22または請求項23に記載の方法。
請求項1から24のいずれか一項に記載の方法を遂行させる命令を実行するように構成された1つまたは複数のプロセッサを備えている、システム。
現実環境のセンサベースの観測を捕捉する1つまたは複数の環境センサをさらに備えている、請求項25に記載のシステム。
ロボットアクチュエータをさらに備えている、請求項25または請求項26に記載のシステム。
コンピューティングシステムの1つまたは複数のプロセッサによって実行されると、請求項1から24のいずれか一項に記載の方法を前記コンピューティングシステムに遂行させる命令を含む、コンピュータプログラム。
JP2023540627A 2020-12-31 2021-12-28 現実ロボットのシミュレーション駆動型ロボット制御 Pending JP2024501885A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063132582P 2020-12-31 2020-12-31
US63/132,582 2020-12-31
US17/337,815 US11938638B2 (en) 2020-12-31 2021-06-03 Simulation driven robotic control of real robot(s)
US17/337,815 2021-06-03
PCT/US2021/065353 WO2022147018A1 (en) 2020-12-31 2021-12-28 Simulation driven robotic control of real robot(s)

Publications (1)

Publication Number Publication Date
JP2024501885A true JP2024501885A (ja) 2024-01-16

Family

ID=80113398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023540627A Pending JP2024501885A (ja) 2020-12-31 2021-12-28 現実ロボットのシミュレーション駆動型ロボット制御

Country Status (4)

Country Link
US (1) US20240190004A1 (ja)
EP (1) EP4256408A1 (ja)
JP (1) JP2024501885A (ja)
WO (1) WO2022147018A1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10792810B1 (en) * 2017-12-14 2020-10-06 Amazon Technologies, Inc. Artificial intelligence system for learning robotic control policies
GB2584608B (en) * 2019-05-01 2021-09-15 Arrival Ltd Robot motion optimization system and method

Also Published As

Publication number Publication date
US20240190004A1 (en) 2024-06-13
EP4256408A1 (en) 2023-10-11
WO2022147018A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
US20200361082A1 (en) Machine learning methods and apparatus for robotic manipulation and that utilize multi-task domain adaptation
US20240017405A1 (en) Viewpoint invariant visual servoing of robot end effector using recurrent neural network
US11724398B2 (en) Efficient robot control based on inputs from remote client devices
US11607807B2 (en) Machine learning methods and apparatus for automated robotic placement of secured object in appropriate location
US11823048B1 (en) Generating simulated training examples for training of machine learning model used for robot control
US20200376675A1 (en) Robotic control based on 3d bounding shape, for an object, generated using edge-depth values for the object
KR20190108191A (ko) 로봇 파지용 심층 기계 학습 방법 및 장치
WO2019006091A2 (en) METHODS AND APPARATUS FOR MACHINE LEARNING FOR SEMANTIC ROBOTIC SEIZURE
EP3793784A1 (en) Data-efficient hierarchical reinforcement learning
EP3853765A1 (en) Training a deep neural network model to generate rich object-centric embeddings of robotic vision data
US11790042B1 (en) Mitigating reality gap through modification of simulated state data of robotic simulator
CN112512755A (zh) 使用从2.5d视觉数据预测的域不变3d表示的机器人操纵
WO2022081454A1 (en) Simulating multiple robots in virtual environments
JP2024501885A (ja) 現実ロボットのシミュレーション駆動型ロボット制御
US11938638B2 (en) Simulation driven robotic control of real robot(s)
US20220245503A1 (en) Training a policy model for a robotic task, using reinforcement learning and utilizing data that is based on episodes, of the robotic task, guided by an engineered policy
CN116887956A (zh) 真实机器人的模拟驱动机器人控制
US11610153B1 (en) Generating reinforcement learning data that is compatible with reinforcement learning for a robotic task
US11654550B1 (en) Single iteration, multiple permutation robot simulation
US20240094736A1 (en) Robot navigation in dependence on gesture(s) of human(s) in environment with robot
US20230154160A1 (en) Mitigating reality gap through feature-level domain adaptation in training of vision-based robot action model

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230830

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230830