JP2022141580A - ユーザによる実証を通じた協働ロボットの訓練 - Google Patents

ユーザによる実証を通じた協働ロボットの訓練 Download PDF

Info

Publication number
JP2022141580A
JP2022141580A JP2022004072A JP2022004072A JP2022141580A JP 2022141580 A JP2022141580 A JP 2022141580A JP 2022004072 A JP2022004072 A JP 2022004072A JP 2022004072 A JP2022004072 A JP 2022004072A JP 2022141580 A JP2022141580 A JP 2022141580A
Authority
JP
Japan
Prior art keywords
markers
images
mapping
training
computer
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
JP2022004072A
Other languages
English (en)
Inventor
ナタラジャン ヴェンカタラマン
Natarajan Venkataraman
アチャリャ ガガン
Acharya Gagan
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.)
Intel Corp
Original Assignee
Intel Corp
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
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2022141580A publication Critical patent/JP2022141580A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • 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
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40116Learn by operator observation, symbiosis, show, watch
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40515Integration of simulation and planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Mechanical Engineering (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Abstract

【課題】協働タスクを実行するよう複数のロボットを訓練するコンピューティング装置及びコンピュータプログラムを提供する。【解決手段】機械学習(ML)モデル訓練システム400は、タスクを実行するために協働しているマルチロボットシステム内のロボットを制御するようMLモデルを訓練する。例えば、協働タスクを実行するための物体の操作に関連付けられた軌道を決定すると共に、協働してタスクを完了するマルチロボットシステム内のロボットの制御アクションを出力するよう、MLモデル500を訓練する。【選択図】図4

Description

本開示は、概して、ロボットの訓練に関し、より具体的には、協働タスクを実行するよう複数のロボットを訓練することに関する。
例えば製造、小売り、住宅供給等の現代の用途では、機械学習(ML)がますます用いられるようになっている。別の技術的な進歩は、複数のロボットシステムを用いることである。これらのロボットシステムでは、低レイテンシで実行され得ることが多い複雑または正確な動きを伴う複雑なタスクを多数のロボットが協働で実行する。例えば、複数のロボットが、協働して工場内の製品(例えば、電子デバイス、車両、航空機または家具等)を共同で組み立てるようにプログラムされ得る。別の例として、複数のロボットが、協働して、製品(例えば、データセンタ内のサーバ等)を共同で点検したり、食料品店の在庫を補充したりするようプログラムされ得る。
しかしながら、与えられたタスクが正常に実行され得るように効率的、容易かつ実用的な方式で協働するよう複数のロボットをプログラムするのは(または、MLの場合、訓練するのは)、些細なことではない。例えば、計画および制御ベースの方法など、従来のロボットプログラミング方法は、容易にスケーラブルなものではない。つまり、そのような方法は、うまくスケーリングしない。なぜなら、タスクについて協働するロボットの数が増えるからである。
任意の特定の要素または動作の説明を容易に識別できるよう、参照番号における最上位の1つまたは複数の桁は、その要素が最初に紹介される図番号を指す。
本開示の少なくとも1つの例によるマルチロボットシステム100を示す。
本開示の少なくとも1つの例によるマルチロボット訓練システム200を示す。
本開示の少なくとも1つの例によるデータ収集およびシミュレーションシステム300を示す。
本開示の少なくとも1つの例によるMLモデル訓練システム400を示す。
本開示の少なくとも1つの例によるMLモデル500を示す。
本開示の少なくとも1つの例による画像600aを示す。
本開示の少なくとも1つの例による画像600bを示す。
本開示の少なくとも1つの例による、訓練用にロボットの軌道を決定するためのルーチン700を示す。
本開示の少なくとも1つの例による、協働的挙動用にロボットを訓練するためのルーチン800を示す。
本開示の例によるコンピュータ可読記憶媒体900を示す。
本開示の例によるコンピューティングシステムを示す。
上で紹介したように、現代では、MLおよびマルチロボットシステムがますます用いられるようになっている。しかしながら、従来のロボットプログラミングおよび訓練方法論は、マルチロボットシステムの訓練に用いるには不十分である。例えば、模倣学習および挙動クローニングは、アクティビティを実証する人などの実証者によりモデル化されるタスクおよび挙動をロボットが学習することを可能にする技術である。しかしながら、現在のアプローチは、単一のロボットのみを伴うロボットタスクを訓練するために開発されている。これらの従来の学習方法論を協働ロボットタスクに適用するのは効率的ではない。なぜなら、従来の方法論は、一度に1つのロボットの訓練のみを可能にするからである。さらに、マルチロボットタスク(例えば、1つのロボットがレセプタクルを保持し、別のロボットが物体をそのレセプタクルに配置する等)の性質を仮定すると、タスクにおける個々の役割に応じて各ロボットを別個に訓練するのに多数の専門家実証者が必要となり、非効率的かつ煩雑である。このように、マルチロボットシステムにおけるロボットの訓練に対する従来のアプローチは、うまくスケーリングしない。なぜなら、各ロボットは、別個の訓練を必要とするからである。さらに、協働タスク用に複数のロボットを訓練することに対するこの総当たりアプローチは、協働しているロボット間のインタラクションをキャプチャおよび同期するには不十分である。
複数のロボットを協働用に訓練することに対する別の主要な課題は、専門家による実証(軌道)を収集することと、訓練されたポリシーを視覚的に検証してタスクを保証することとが配置時に期待通りに実行される複雑なロボットシミュレーション環境およびモデルの生成である。これらのマルチロボットシミュレーションモデルの生成は、関連するタスク、環境およびモデルの複雑さに起因して煩雑であると共に、高度な技術知識を必要とすることが多い。このことに起因して、典型的な工場労働者は、模倣学習を介してロボットアームを訓練またはプログラムすることができない。なぜなら、これには、シミュレーションツールおよび環境の生成と共に機能するMLの専門知識が必要とされるからである。つまり、実証の知識を有する専門家は、従来のロボット訓練システムと共に機能する知識を有していないことが多い。このように、マルチロボットシステムを従来のように訓練するのに、典型的には追加のリソースが必要とされる。
本開示は、複数のロボットを協働タスク(例えば、共同物体ハンドリング、共同組み立て、共同メンテナンス等)用に効果的かつ同時に訓練するための装置および模倣学習方法論を提供する。これらの装置および模倣学習方法では、ユーザによる実証の総数が低減され得るように、複数の協働しているロボットのための専門家による実証が同時に取得され、異なる役割を実行する複数のロボットが同時に訓練される。このように、本開示の装置および訓練方法論は、スケーリングされ得ると共に、従来の方法よりも必要な実証が少ない。なぜなら、訓練されるロボットの数が増えているからである。
概して、本開示は、単一のMLモデルが、協働しているロボットの全てについて訓練されるようにする。一方で、従来の方法は、グループ内の個々のロボットの各々について、異なるMLモデルを訓練する。追加的に、本開示は、視覚的分析および画像学習アルゴリズムを用いて訓練および可視化環境を生成することを可能にする。例えば、本開示は、カメラのアレイと、専門家実証者(例えば、実証者の手または同様のもの)および操作されている物体に取り付けられたマーカとを介して専門家による実証を収集することを提供する。カメラアレイにより追跡されるマーカは、部品の共同組み立てなどの協働タスクにおける異なる役割を実行する複数の別個のロボットアームを訓練するための基準軌道を同時に取得するために用いられる。上記とは異なるように、本開示は、全ての協働しているロボットの全ての基準軌道を(例えば、可能な限り少ない実証セッションで等)同時に取得することと、システム内で協働している全てのロボット用のアクションを出力するよう訓練される単一のポリシーMLモデルを訓練することとを提供する。
さらに、本開示は、カメラアレイにより撮像される画像に基づいてシミュレーション環境を生成することを提供する。例えば、画像を処理することで、協働タスクが実行される環境のレイアウトを識別でき、協働タスクの一部として操作される物体を識別できる。さらに、画像を処理することで、ロボットの数と、その開始位置とを識別できる。いくつかの例において、シミュレーション環境を用いることで、MLモデルを検証でき、および/またはMLモデルの訓練中にフィードバックを提供できる。
したがって、本開示は、協働タスクを「一度で」実行するためのマルチロボットシステム用の訓練を提供できる。専門家実証者は、マーカを装着し、現実世界(例えば、工場等)設定におけるタスクを実行する。このシステムは、実証に関連付けられた軌道を識別することと、シミュレーション環境を生成することと、ポリシーを学習してマルチロボットシステム内の全てのロボットを軌道とシミュレーション環境とに基づいて制御するよう単一のMLモデルを訓練することとを提供する。
図1は、本開示の非限定的な例によるマルチロボットシステム100を示す。マルチロボットシステム100は、例示の目的でのみ提供されており、限定的なものとして意図されていない。しかしながら、本開示がマルチロボットシステムの訓練を提供すると仮定して、マルチロボットシステム100の一例を示す。マルチロボットシステム100は、ロボット102、ロボット104および物体106を含む。概して、ロボット102および104は、物体106を操作するために配置される。本開示において想定されるように、ロボット102および104は、関節ジョイント108とグリッパ110とを有するロボットアーム(例えば、示されるようなもの)など、任意のタイプのロボットであり得る。ロボット102および104は、固定式または可動式であってよい。さらに、グリッパ110は、例えば、手、ピンチャまたは磁石等、様々なグリッパのいずれかであってよい。本開示は、ロボット102および104の制御において用いるためのMLモデルを訓練するための装置および方法論を提供する。概して、マルチロボットシステム100は、例えば、工業、小売り、製造、セキュリティまたは住宅供給等、様々な用途のいずれかで提供され得る。ロボット102および104により操作される物体106は、任意のタイプの物体であってよく、これらの可能な例の包括的な性質を考慮して、例を提供しない。
図2は、本開示の非限定的な例によるマルチロボット訓練システム200を示す。マルチロボット訓練システム200は、データ収集およびシミュレーションシステム300と、MLモデル訓練システム400とを含む。データ収集およびシミュレーションシステム300とMLモデル訓練システム400との個々のサブシステムを以下でより詳細に説明する。しかしながら、概して、マルチロボット訓練システム200は、単一のMLモデルを用いて複数のロボットのためのポリシー学習を同時に提供するために配置される。例えば、マルチロボット訓練システム200は、物体106を操作するために協働しているマルチロボットシステム100のロボット102および104を制御する際に用いるためのMLモデル(図5を参照されたい)を訓練するために提供され得る。
データ収集およびシミュレーションシステム300は、ロボットが訓練される協働タスクの軌道をインサイチュで収集することを提供する。さらに、データ収集およびシミュレーションシステム300には、模倣学習アルゴリズム(例えば、MLモデル訓練システム400により実装される)と組み合わされた場合、従来の学習方法論に対する訓練に必要とされる低減された軌道でポリシーを学習できるようにする、予測状態推定制約が設けられる。
さらに、データ収集およびシミュレーションシステム300は、特定のタスクおよびロボット構成のためのマルチロボットシミュレーションを提供する。具体的には、データ収集およびシミュレーションシステム300は、実証から取得された軌道に基づいてマルチロボットシミュレーションモデルを生成するために配置されるコンピュータビジョンシステムを提供する。
MLモデル訓練システム400は、データ収集およびシミュレーションシステム300を介して収集される軌道と、データ収集およびシミュレーションシステム300により生成されるシミュレーション環境とに基づいて、MLモデル(例えば、MLモデル500等)に関する訓練を提供する。
図3は、本開示の非限定的な例によるデータ収集およびシミュレーションシステム300を示す。概して、データ収集およびシミュレーションシステム300は、実証中に専門家実証者(例えば、人の実証者等)からロボット状態および/またはアクションを撮像するためのシステムである。データ収集およびシミュレーションシステム300は、コンピューティングデバイス302、カメラアレイ312およびマーカ314を含む。
概して、マーカ314は、実証中に軌道を識別するために用いられる様々なマーカのいずれかであり得る。例えば、マーカ314は、OpenCV ArUcoマーカであり得る。具体例として、専門家実証者は、それぞれの手にマーカ314を装着できる。各マーカ314は、協働ロボットシステム(例えば、マルチロボットシステム100)内の個々のロボットがマッピングされ得る固有識別子(ID)を有し得る。上記とは異なるように、マーカ314は、ロボットID322へマッピングされ得るマーカID320を有し得る。いくつかの例において、ロボットID322には、実証の前に、マーカID320が割り当てられる。なお、マーカは、複数の位置に取り付けられ得る。具体例として、マーカ314は、専門家実証者の複数の部位(例えば、右手、左手、腕、右足、左足、または指等)に取り付けられ得る。同様に、マーカ314は、固定位置または基準点および操作される物体に取り付けられ得る。例えば、固定位置に取り付けられたマーカ314は、実証中に記録されるカメラアレイ312の異なるカメラから取得されるマーカの位置の変換および組み合わせを行うために用いられ得る。
概して、マーカ314は、複数の方式で専門家実証者に取り付けられ得る。一例として、マーカ314は、専門家実証者の各部分(例えば、手、指、手首または腕等)に素早く取り付けられるために配置されたステッカーであり得る。別の例として、マーカ314は、グラフィカルマーカ(例えば、AcUcoマーカもしくは同様のもの)または電子マーカ(例えば、無線自動識別(RFID)エミッタもしくは赤外線(IR)エミッタ等)を有するグローブとして実装され得る。追加的に、グローブには、センサ(例えば、圧力センサまたは温度センサ等)が設けられ得る。さらに、マーカ314は、専門家実証者により操作される物体、および環境内の固定された物体(または基準点)に取り付けられ得る。
カメラアレイ312は、カメラアレイ312のカメラがマーカ314を読み取るように、スキャンするように、そうでなければ撮像するために配置されていることを条件として、様々なカメラ(例えば、ビデオカメラ、スチルカメラ、IRカメラ、ArUcoリーダカメラまたはRFIDリーダカメラ等)のいずれかを含み得る。カメラアレイ312内のカメラは、実証が行われる現実世界の環境内に配置され得る。さらに、カメラアレイ312内のカメラの配置は、実証されるタスクに基づき得る。例えば、協働ロボットシステム内のロボットが協働中に互いに近づくタスクでは、より多くのカメラを用いてもよく、カメラを環境の周囲の異なる位置および向きに配置して、専門家による実証中に発生し得るあらゆる遮蔽を軽減してもよい。
概して、コンピューティングデバイス302は、カメラアレイ312に結合されると共に、カメラアレイ312から情報データまたは画像318を受信するように、かつ、MLモデル(例えば、MLモデル500または同様のもの)を訓練できる模倣学習データセット324生成するために配置される。コンピューティングデバイス302は、プロセッサ304、メモリ306、入力および/または出力(I/O)デバイス308およびネットワークインタフェース310を含む。
プロセッサ304は、例えば、様々な商用プロセッサのいずれかなど、回路またはプロセッサロジックを含み得る。いくつかの例において、プロセッサ304は、複数のプロセッサ、マルチスレッドプロセッサ、マルチコアプロセッサ(複数のコアが同じまたは別個のダイ上に共存しているかどうかを問わない)、および/または複数の物理的に別個のプロセッサがある態様でリンクしているいくつかの他の様々なマルチプロセッサアーキテクチャを含み得る。追加的に、いくつかの例において。プロセッサ304は、グラフィック処理部を含んでよく、専用メモリ、マルチスレッド処理および/またはある他の並列処理機能を含んでよい。いくつかの例において、プロセッサ304は、特定用途向け集積回路(ASIC)またはフィールドプログラマブル集積回路(FPGA)であってよい。
メモリ306は、ロジックを含み得る。このロジックの一部分は、データを永続的に格納するための不揮発性メモリまたは不揮発性メモリと揮発性メモリとの組み合わせを形成する集積回路のアレイを含む。メモリ306は様々な技術のいずれかに基づき得ることが理解されよう。特に、メモリ120に含まれる集積回路のアレイは、例えば、ダイナミックランダムアクセスメモリ(DRAM)、NANDメモリまたはNORメモリなど、1つまたは複数のタイプのメモリを形成するために配置され得る。
I/Oデバイス308は、入力の受信および/または出力の提供のための様々なデバイスのいずれかであり得る。例えば、I/Oデバイス308は、キーボード、マウス、ジョイスティック、フットペダル、ディスプレイ、タッチ対応ディスプレイ、触覚フィードバックデバイスまたはLED等を含み得る。
ネットワークインタフェース310は、通信インタフェースをサポートするためのロジックおよび/または機能を含み得る。例えば、ネットワークインタフェース310は、直接リンクまたはネットワーク通信リンク上で通信するために様々な通信プロトコルまたは通信規格に従って動作する1つまたは複数のインタフェースを含み得る。直接通信は、1つまたは複数の業界標準において説明される通信プロトコルまたは通信規格(後継版および変形版を含む)の使用を介して行われ得る。例えば、ネットワークインタフェース310は、例えば、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)不揮発性メモリエクスプレス(NVMe)、ユニバーサルシリアルバス(USB)、システム管理バス(SMBus)、SAS(例えば、シリアルアタッチドスモールコンピュータシステムインタフェース(SCSI))インタフェースまたはシリアルATAアタッチメント(SATA)インタフェースなどのバスを介した通信を容易にし得る。追加的に、ネットワークインタフェース310は、様々な有線ネットワーク規格または無線ネットワーク規格(例えば、802(削除済み).11通信規格)を介した通信を可能にするためのロジックおよび/または機能を含み得る。例えば、ネットワークインタフェース310は、イーサネット(登録商標)または同様のものなど、有線通信プロトコルまたは有線通信規格をサポートするために配置され得る。別の例として、ネットワークインタフェース310は、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、LTEまたは5Gなど、無線通信プロトコルまたは無線通信規格をサポートするために配置され得る。
メモリ306は、命令316、画像318、マーカID320、ロボットID322、模倣学習データセット324、ロボットシミュレーションデータセット332、予測される物体状態338およびMLモデル500を含み得る。
模倣学習データセット324は、軌道326、物体状態328およびロボットパラメータ330を含む。一方、ロボットシミュレーションデータセット332は、環境レイアウト334および物体レイアウト336を含む。
動作中、プロセッサ304は、命令316を実行して、カメラアレイ312から画像318を受信できる。さらに、プロセッサ304は、命令316を実行することで、画像318を処理して画像318内のマーカ314を検出し、環境、固定点または物体等に対するマーカの位置を決定できる。例えば、命令316は、プロセッサ304により実行された場合にマーカID320と画像318の各々からの計算された位置とを発行できるROSノード(例えば、OpenCVライブラリまたは同様のものに基づく)を含み得る。計算された位置は、軌道326として保存され得る。同様に、マーカ314は、操作される物体(例えば、物体106または同様のもの)に取り付けられてよく、物体状態または位置が、上で示されたように導出されてよい。計算された物体状態は、物体状態328として保存され得る。
さらに、プロセッサ304は、命令316を実行して、画像認識技術を画像318に適用できる。具体例として、プロセッサ304は、命令316を実行して、顔の特徴(例えば、まばたき、口を開く、笑顔または相槌等)を検出し、マーカ314に基づいて、検出した表情を専門家実証者に関連付けることができる。いくつかの例では、表情を用いて、様々なロボットパラメータ(例えば、グリップアクチュエータまたは同様のもの)のインジケーションを提供できる。別の例では、I/Oデバイス308を用いて、実証に関連するアクションのインジケーションを提供できる。例えば、操作されている物体に専門家実証者が加える圧力が、(例えば、グローブ内のセンサまたは専門家実証者の表情等に基づいて)キャプチャされ得る。プロセッサ304は、命令316を実行して、識別されたアクションをロボットパラメータ330として保存できる。
これに応じて、データ収集およびシミュレーションシステム300が説明されている。ここでは、協働ロボット用のタスクに関連する軌道が撮像され得る。例えば、第1の専門家実証者が腕を上方へ上げた場合、軌道326により同じ動きが反映される。軌道326は、対応するアクションまたは動きを行うように第1のロボットを制御するようMLモデルを訓練するために用いられる。
データ収集およびシミュレーションシステム300は追加的に、視覚認知を活用してシミュレーション環境を生成することで、訓練プロセス全体についてのフィードバックを提供する際に用いるために、ロボットがタスクを協働で実行することをシミュレーションする。上記とは異なるように、プロセッサ304は、専門家実証者が協働タスクの実証を開始する前に、命令316を実行して、必要な物体および必要な数のロボットを用いて中間タスクシミュレーション環境を生成できる。
プロセッサ304は、命令316を実行して、環境レイアウト334(例えば、テーブル、物体、ロボットアームの数または初期ロボット位置等)を決定できる。いくつかの例では、プロセッサ304は、命令316を実行して、タスクを実現するために必要とされるロボットアームの数をマーカ314の数に基づいて決定できる。追加的に、プロセッサ304は、命令316を実行して、ロボットの初期姿勢を例えばマーカ314の初期向きに基づいて決定できる。
プロセッサ304はさらに、命令316を実行して、ロボット(例えば、ロボット102および104)により操作される物体のタイプおよび姿勢を含む物体レイアウト336を識別する。いくつかの例において、マーカ314は、マーカのサブセットまたは複数の異なるタイプのマーカを含み得る。例えば、1つのタイプのマーカ314を、ロボットをマーキングするために用いることができ、一方、別のタイプのマーカ314を、物体をマーキングするために用いることができ、さらに別のタイプのマーカ314を、固定された基準位置をマーキングするために用いることができる。
図4は、本開示の非限定的な例によるMLモデル訓練システム400を示す。いくつかの例では、MLモデル訓練システム400は、コンピューティングデバイス302などのコンピューティングデバイスにより実装され得る。例えば、MLモデル訓練システム400は、プロセッサ304により実行可能な命令316により実装され得る。概して、MLモデル訓練システム400は、模倣学習データセット324とロボットシミュレーションデータセット332とに基づいてMLモデル500を訓練するために配置され得る。
MLモデル訓練システム400は、ML訓練命令セット402およびロボットシミュレーション命令セット404を含み得る。ML訓練命令セット402は、1つまたは複数のMLモデル訓練アルゴリズム(例えば、バックプロパゲーション式、畳み込み式または敵対的式のもの等)を利用して、模倣学習データセット324およびロボットシミュレーションデータセット332からのMLモデル500を訓練し得る。MLモデル500を訓練することは、反復プロセスであることが多い。この反復プロセスでは、MLモデル500内の重みおよび接続が、MLモデル500について、満足できるレベルの推論へ収束するように調整される(例えば、ロボットアクションを出力すること、または同様のこと)。なお、様々なMLモデル訓練アルゴリズムが、本開示に従って提供され得る。しかしながら、MLモデル500および図5を参照して、1つの例示的な訓練方法論を以下で説明する。
ロボットシミュレーション命令セット404は、訓練されているロボットのシミュレーションを提供する。例えば、MLモデル500は、制御アクション(例えば、動き制御アクションまたはグリッパステータス制御アクション等)を出力するために配置され、ロボットシミュレーション命令セット404は、予測される物体状態338をこれらの出力に基づいてシミュレーションするために提供され得る。模倣学習データセット324とロボットシミュレーションデータセット332とに沿った予測される物体状態338は、MLモデル500を訓練および/または試験するために用いられ得る。
図5は、本開示の非限定的な例によるMLモデル500を示す。MLモデル500は、マルチレイヤニューラルネットワークとして示されている。しかしながら、実際には、MLモデル500は、例えば、ニューラルネットワーク(図示)、畳み込みニューラルネットワーク、ファジーロジックネットワークまたは決定木ネットワークなど、様々なMLモデルのいずれかであり得る。例は、この文脈において限定されない。MLモデル500は、入力層502、隠れ層504および出力層506を含む。概して、マルチロボット訓練システム200は、MLモデル500を訓練するために配置され得る。より具体的には、ML訓練命令セット402は、データ収集およびシミュレーションシステム300によりキャプチャされるデータ(例えば、軌道または同様のもの)に基づいてMLモデル500を訓練するために配置され得る。
入力層502は、入力状態508a、508b、508cおよび508dの入力を含む。概して、入力状態508a、508b、508cおよび508dは、システム内のロボット(例えば、ロボット102および104等)に関連付けられた状態(または入力)、および、ロボットにより操作される物体または部位(例えば、物体106または同様のもの)の状態、ならびに、MLモデル500が制御を行うよう訓練されるマルチロボットシステム100の目的に関連付けられた入力であり得る。隠れ層504は、複数のニューロンを含む。実際には、隠れ入力層502内のニューロンの各層は、多くのニューロン(例えば、64、128、256等)を有し得る。しかしながら、例示を簡潔にするために、隠れニューロン510a、510b、510c、510d、512a、512b、512cおよび512dが示されている。概して、隠れ層504内のニューロンは、完全に接続されてもよく(例えば、図示のように)、そうでなくてもよい。さらに、隠れ層504内のニューロンは、様々な活性化関数のいずれかを有し得る。具体例において、隠れ層504内のニューロンは、正規化線形ユニット(ReLu)活性化関数を有し得る。出力層506は、出力ニューロン514a、514b、514cおよび514dならびに出力状態516a、516b、516cおよび516dを含む。出力ニューロンは、隠れ層のニューロンと同じ活性化関数または異なる活性化関数(例えば、双曲線正接(Tanh)または同様のもの)を有し得る。出力状態516a、516b、516cおよび516dは、ロボット(例えば、ロボット102および104等)のアクション、および、操作される物体(例えば、物体106または同様のもの)の予測される将来の状態に対応し得る。
具体例として、入力状態は、連続する時間ステップ間のロボットのアクション(例えば、グリッパ変位、作動等)に対応し得る。いくつかの例では、ロボット状態および物体状態に対応するデータが収集される(以下でより詳細に説明する)。ロボット状態および/または物体状態に対応する入力データが正規化され得る。そのような入力データは、例えば、サンプル平均値または分散など、様々な技術を介して正規化され得る。正規化された入力データは、連結され、ニューラルネットワークへの入力として用いられる。
MLモデル500は、軌道と、グリッパ作動と、推定損失との重み付けされた組み合わせを用いて訓練される。例えば、軌道損失(Trajector_MSE)が、予測されるグリッパ状態と、専門家による実証中にそのステージで実行された実際のグリッパ状態との間の平均二乗誤差(MSE)として導出され得る。特に、MLモデル500の訓練中に用いられる訓練損失は、損失=Trajectory_MSE+α×Actuation_MSE+β×State_estimation_MSEであり得る。グリッパ作動損失(Actuation_MSE)は、予測されるグリッパ力とその実証との間のMSEであり得る。同様に、状態推定損失(State_estimation_MSE)は、予測される将来の物体状態と、タスクの実証中に観察される物体状態との間の損失であり得る。変数アルファ(α)およびベータ(β)は、訓練中のハイパーパラメータとして調整されてもよく、一定のままにされてもよいスカラである。なお、いくつかの例では、状態推定出力は、学習プロセスの訓練フェーズにおいて用いられ、関連する損失動作は、MLモデル500がより少ない数の専門家軌道を用いて訓練することを可能にする補助コスト機能として用いられる。
述べたように、データ収集およびシミュレーションシステム300は、専門家による実証中に複数の角度または視点から画像を撮像するために配置されたカメラアレイ312を含む。図6Aおよび図6Bは、画像600aおよび600bをそれぞれ示す。これらの画像は、実証中にカメラアレイ312により撮像される画像318に対応し得る。画像600aおよび600bは、マーカ602a、602bおよび602cを異なる角度から示している。なお、冗長性を生成するために、複数の視点または角度が撮像される。冗長性は、軌道326(例えば、上述した)が計算される位置推定をより正確なものにすると共に、遮蔽に起因していくつかのマーカ(例えば、マーカ314または同様のもの)が1つの画像から消え得る場合に特に有用である。例えば、画像600bからのマーカ602cは、画像600aにおけるよりも鮮明でも可視でもない。いくつかの実証において、専門家実証者または物体は、カメラアレイ312内のカメラのうちの1つまたは複数の視野からマーカ314を塞ぎ得る。
プロセッサ304は、命令316を実行することで、カメラアレイからのフレームまたは画像を並列に処理して模倣学習データセット324を生成できる。例えば、軌道326は、固定マーカ602cに対するマーカ602aおよび602bの位置に基づいて決定され得る。同様に、ロボットパラメータ330は、顔認証または他の受信される入力に基づいて決定され得る。例えば、マイクは、アクティブであってよく、口頭での命令(例えば、グリッパを開け、グリッパを閉じろ、軽いタッチ、しっかり握る等)を記録してよい。これらの命令は、ロボットパラメータ330として格納される。実証の前に撮像された画像318のフレームが、上述の環境レイアウト334および物体レイアウト336を決定するために、同様に並列に処理され得る。
さらに、プロセッサ304は、命令316を実行して、シミュレーション環境(例えば、ロボットシミュレーションデータセット332または同様のものにより反映される)を生成できる。シミュレーション環境は、データ収集(例えば、軌道326または同様のものの決定)および協働タスクを完了させる際に用いるためのロボット102および104の識別の両方に用いられる。例えば、プロセッサ304は、専門家が協働タスクの実証を開始する前に、命令316を実行して、必要な物体および必要な数のロボットを用いてタスクシミュレーション環境を生成できる。シミュレーション環境に関連付けられた環境パラメータは、タスク画像レイアウト(例えば、テーブル、物体、ロボットアームの数またはそれらの位置等)を用いて抽出され、環境レイアウト334および/または物体レイアウト336に格納され得る。いくつかの例では、初期動作が、タスクを実現するために必要とされるロボットアームの数を決定することであり得る。例えば、プロセッサ304は、命令316を実行して、画像318に反映された、専門家実証者により装着されているマーカ314の数に基づき、ロボットアームの必要数を決定できる。さらに、プロセッサ304は、命令316を実行して、シミュレーション内でのロボットの初期姿勢を決定できる。
その後、プロセッサ304は、命令316を実行して、操作される物体(例えば物体106または同様のもの)のタイプおよび姿勢を認識できる。例えば、プロセッサ304は、命令316を実行して、予め定義された規格ライブラリ(例えば、立方体または円筒等)上で訓練され得るYOLOv3などの物体認識パッケージに基づき、物体のタイプを識別できる。追加的に、プロセッサ304は、命令316を実行して、物体上に存在するマーカ314に基づき、物体の姿勢を識別できる。上述のように、異なるタイプ(例えば、色またはパターン等)のマーカ314を用いて、専門家実証者と物体とを区別できる。
図7は、本開示の非限定的な例によるルーチン700を示す。概して、ルーチン700は、コンピューティングデバイス302などのコンピューティングデバイスにより実装され得る。ルーチン700は、ロボットの訓練に関する技術的問題を解決することに関連し、具体的には、タスクの実行に際して協働するよう複数のロボットを訓練することに関連する。ルーチン700は、ブロック702、ブロック722およびブロック730において始まり得る。ブロック702「シミュレーションされたロボット旋回位置」において、ロボット102および104の旋回位置(例えば、姿勢または更新された姿勢等)が決定される。同様に、ブロック722「マーカおよびその位置を識別する」において、マーカ314およびそのそれぞれの位置が決定される。さらに、ブロック730「ロボット作動状態」において、ロボット102および104の作動状態(例えば、開/閉というグリッパ状態または同様のもの)が決定される。例えば、プロセッサ304は、命令316を実行することで、画像318を処理し、マーカ314および「てがかり」(例えば、顔の特徴または同様のもの)を識別して、シミュレーションされたロボット位置、初期マーカ位置およびロボット作動状態を決定できる。
ブロック722からブロック724、726および728へ続く。ブロック724「実証者マーカの位置」において、実証者に関連付けられたマーカの位置が決定され、一方、ブロック728「固定マーカの位置」において、固定マーカの位置が決定される。さらに、ブロック726「マーカをロボットへマッピングする」において、識別されたマーカが、例えば、教示ロボットまたは同様のものに関連付けられたマーカIDに基づいて、特定のロボットへマッピングされる。例えば、プロセッサ304は、命令316を実行して、マーカと特定のロボットとの間のマッピングを決定でき、かつ、実証者に固定されたマーカおよび取り付けられたマーカの両方の位置を決定できる。
ブロック702、724および728から、ロボットアーム(例えば、グリッパ110または同様のもの)の位置が決定されてよく、ブロック704において、当該位置が変換および/またはスケーリングされてよい。ルーチン700は、ブロック706および732において継続する。ブロック706「シミュレータにおけるロボットグリッパの位置を設定する」およびブロック732「シミュレータにおけるロボット作動状態を設定する」において、ロボット102および104のグリッパ110の位置および状態が、シミュレータにおいて設定され得る。ブロック708「ロボットアクションを導出する」へ続き、ロボット102および104のアクションが、グリッパ110の位置および状態から導出される。例えば、プロセッサ304は、命令316を実行して、グリッパ110の決定された位置および状態に基づき、ロボット102および104のアクションを導出できる。
ブロック708から、サブルーチンブロック710「マルチロボット環境シミュレータ」が、導出されたロボットアクションに基づいて、環境状態を決定する。例えば、プロセッサ304は、命令316を実行して、導出されたロボットアクションに基づき、環境の状態(例えば、環境レイアウト334、物体レイアウト336または予測される物体状態338等)を決定できる。
ブロック712「環境状態を取得する」およびブロック714「タスク完了ステータスを取得する」へ続き、現在の環境状態と、タスクの完了ステータスが、環境の決定された状態から識別され得る。決定ブロック716において、「タスクが実行された?」が、ブロック712および714において決定された環境状態とタスク完了ステータスとに基づいて決定される。決定ブロック716から、ルーチン700が完了し、ブロック718「軌道を保存する」において、ブロック708において決定されたロボットアクションに基づき、軌道326が保存され、または、ブロック708において決定されたロボットアクションが軌道として保存され、ルーチン700が、追加の軌道を決定するために続く。
図8は、本開示の非限定的な例によるルーチン800を示す。概して、ルーチン800は、コンピューティングデバイス302などのコンピューティングデバイスにより実装され得る。ルーチン800は、ロボットの訓練に関する技術的問題を解決することに関連し、具体的には、タスクの実行に際して協働するよう複数のロボットを訓練することに関連する。ルーチン800は、ブロック802において始まり得る。ブロック802「物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像された画像をコンピュータで受信する」において、協働タスクの専門家による実証中に撮像された画像が受信され得る。例えば、コンピューティングデバイス302のプロセッサ304は、命令316を実行して、カメラアレイ312から画像318を受信できる。
ブロック804「画像からマーカの数を識別する」へ続き、画像内のマーカが識別され得る。例えば、コンピューティングデバイス302のプロセッサ304は、命令316を実行して、ブロック802において受信した画像318からマーカ314を識別できる。例えば、プロセッサ304は、命令316を実行して、画像認識技術を介して、または別の方法(例えば、RFIDまたはIRセンシング技術等)を介して、画像318からマーカ314を識別できる。
ブロック806「画像とマーカの数とに基づいて物体の初期状態を識別する」へ続き、専門家による実証中に専門家により操作される物体の初期状態が識別され得る。例えば、コンピューティングデバイス302のプロセッサ304は、命令316を実行して、操作される物体(例えば、物体106または同様のもの)の初期状態を識別できる。いくつかの例において、物体106の初期状態は、物体に取り付けられたマーカ314と、固定された基準点または環境レイアウト334に取り付けられたマーカ314とに基づいて識別され得る。
ブロック808「協働タスクに関連付けられた軌道の数を画像とマーカの数とから決定する」へ続き、協働タスク(例えば、物体の操作または同様のこと)に関連付けられた軌道が決定される。例えば、コンピューティングデバイス302のプロセッサ304は、命令316を実行して、専門家実証者による物体106の操作などの協働タスクに関連付けられた軌道326を決定できる。
ブロック810「協働して物体を伴う協働タスクを軌道と物体の初期状態とに基づいて実行するための複数のロボットの制御状態を出力するよう、MLモデルを訓練する」へ続き、協働タスクを実行するためのマルチロボットシステム内のロボットの制御状態を出力するよう、MLモデルが訓練され得る。例えば、コンピューティングデバイス302のプロセッサ304は、命令316を実行することで、ロボット102および104の制御状態を出力し、軌道326と、初期物体状態および予測される物体状態338を含む物体状態328とに基づいて物体106を協働方式で操作するよう、MLモデル500を訓練できる。
図9は、コンピュータ可読記憶媒体900を示す。コンピュータ可読記憶媒体900は、光記憶媒体、磁気記憶媒体または半導体記憶媒体など、任意の非一時的コンピュータ可読記憶媒体または機械可読記憶媒体を含み得る。様々な実施形態において、コンピュータ可読記憶媒体900は、製造品を含み得る。いくつかの実施形態において、コンピュータ可読記憶媒体900は、回路(例えば、プロセッサ304または同様のもの)が実行できるコンピュータ実行可能命令902を格納し得る。例えば、コンピュータ実行可能命令902は、命令316、ルーチン700および/またはルーチン800に関連して説明される動作を実装するための命令を含み得る。コンピュータ可読記憶媒体900または機械可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、リムーバブルメモリまたは非リムーバブルメモリ、消去可能メモリまたは消去不可能メモリ、書き込み可能メモリまたは書き換え可能メモリ等を含む、電子データを格納することが可能な任意の有形の媒体を含み得る。コンピュータ実行可能命令902の例は、ソースコード、コンパイルされたコード、解釈されたコード、実行可能コード、スタティックコード、ダイナミックコード、物体指向コードおよび視覚的コードなど、任意の適切なタイプのコードを含み得る。
図10は、システム1000の実施形態を示す。システム1000は、分散コンピューティングシステム、スーパーコンピュータ、高性能コンピューティングシステム、コンピューティングクラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアントサーバシステム、パーソナルコンピュータ(PC)、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)などのハンドヘルドデバイス、または情報を処理、表示もしくは送信するための他のデバイスなど、複数のプロセッサコアを有するコンピュータシステムである。同様の実施形態が、例えば、ポータブル音楽プレーヤもしくはポータブルビデオプレーヤ、スマートフォンもしくは他の携帯電話、電話、デジタルビデオカメラ、デジタルスチルカメラまたは外部ストレージデバイスなど、エンタテインメントデバイスを含み得る。さらなる実施形態が、より大規模なサーバ構成を実装する。他の実施形態において、システム1000は、1つのコアを含む単一のプロセッサ、または1つよりも多くのプロセッサを有し得る。なお、「プロセッサ」という用語は、シングルコアを有するプロセッサ、または複数のプロセッサコアを有するプロセッサパッケージを指す。少なくとも1つの実施形態において、コンピューティングシステム1000は、マルチロボット訓練システム200のコンポーネントを表す。具体例として、システム1000は、コンピューティングデバイス302のコンポーネントを表す。より一般的には、コンピューティングシステム1000は、図1から図9を参照して本明細書において説明されたロジック、システム、ロジックフロー、方法、装置および機能の全てを実装するように構成される。
本願において用いられる場合、「システム」、「コンポーネント」および「モジュール」という用語は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェアまたは実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すよう意図されており、このコンピュータ関連エンティティの例が、例示的なシステム1000により提供されている。例えば、コンポーネントは、プロセッサ上で動作するプロセス、プロセッサ、ハードディスクドライブ、(光記憶媒体および/または磁気記憶媒体の)複数のストレージドライブ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであり得るが、これらに限定されない。例示として、サーバ上で動作するアプリケーションおよび当該サーバの両方が、コンポーネントであり得る。1つまたは複数のコンポーネントが、プロセスおよび/または実行スレッド内に存在してよく、1つのコンポーネントが、1つのコンピュータ上に局在してよく、および/または2つまたはそれより多くのコンピュータ間に分散されてよい。さらに、コンポーネントは、動作を調整するために、様々なタイプの通信媒体によって互いに通信可能に結合され得る。この調整は、情報の単方向または双方向の交換を伴い得る。例えば、コンポーネントは、通信媒体にわたって伝達される信号の形態で情報を伝達し得る。情報は、様々な信号線に割り当てられる信号として実装され得る。そのような割り当てにおいて、各メッセージが信号である。しかしながら、さらなる実施形態が代替的に、データメッセージを使用し得る。そのようなデータメッセージは、様々な接続にまたがって送信され得る。例示的な接続は、パラレルインターフェース、シリアルインタフェースおよびバスインタフェースを含む。
この図に示されるように、システム1000は、プラットフォームコンポーネントを搭載するためのマザーボードまたはシステムオンチップ(SoC)1002を備える。マザーボードまたはシステムオンチップ(SoC)1002は、Ultra Path Interconnect(UPI)などのポイントツーポイントインターコネクト1070を介して結合された第1のプロセッサ1004および第2のプロセッサ1006を含むポイントツーポイント(P2P)インターコネクトプラットフォームである。他の実施形態において、システム1000は、マルチドロップバスなど、別のバスアーキテクチャであってよい。さらに、プロセッサ1004およびプロセッサ1006の各々は、コア1008およびコア1010をそれぞれ含む複数のプロセッサコアと、レジスタ1012およびレジスタ1014などの複数のレジスタ、メモリまたはキャッシュをそれぞれ有するプロセッサパッケージであってよい。システム1000は、2ソケット(2S)プラットフォームの一例であるが、他の実施形態は、2つよりも多いソケットまたは1つのソケットを含み得る。例えば、いくつかの実施形態は、4ソケット(4S)プラットフォームまたは8ソケット(8S)プラットフォームを含み得る。各ソケットは、プロセッサ用のマウントであり、ソケット識別子を有し得る。なお、プラットフォームという用語は、プロセッサ1004およびチップセット1032などの搭載された特定のコンポーネントを有するマザーボードを指す。いくつかのプラットフォームは、追加のコンポーネントを含んでよく、いくつかのプラットフォームは、プロセッサおよび/またはチップセットを搭載するためのソケットのみを含んでよい。さらに、いくつかのプラットフォームは、ソケット(例えば、SoCまたは同様のもの)を有さなくてよい。
プロセッサ1004およびプロセッサ1006は、Intel(登録商標)のCeleron(登録商標)プロセッサ、Core(登録商標)プロセッサ、Core(2)Duo(登録商標)プロセッサ、Itanium(登録商標)プロセッサ、Pentium(登録商標)プロセッサ、Xeon(登録商標)プロセッサおよびXScale(登録商標)プロセッサ、AMD(登録商標)のAthlon(登録商標)プロセッサ、Duron(登録商標)プロセッサおよびOpteron(登録商標)プロセッサ、ARM(登録商標)のアプリケーション、埋め込み型のセキュアなプロセッサ、IBM(登録商標)およびMotorola(登録商標)のDragonBall(登録商標)プロセッサおよびPowerPC(登録商標)プロセッサ、IBMおよびSony(登録商標)のCellプロセッサならびに同様のプロセッサを限定されることなく含む様々な市販のプロセッサのいずれかであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサおよび他のマルチプロセッサアーキテクチャも、プロセッサ1004および/またはプロセッサ1006として使用され得る。追加的に、プロセッサ1004は、プロセッサ1006と同一である必要はない。
プロセッサ1004は、集積メモリコントローラ(IMC)1020ならびにポイントツーポイント(P2P)インタフェース1024およびP2Pインタフェース1028を含む。同様に、プロセッサ1006は、IMC1022ならびにP2Pインタフェース1026およびP2Pインタフェース1030を含む。IMC1020およびIMC1022は、プロセッサ1004およびプロセッサ1006というプロセッサをそれぞれ、それぞれのメモリ(例えば、メモリ1016およびメモリ1018)に結合する。メモリ1016およびメモリ1018は、ダブルデータレートタイプ3(DDR3)またはタイプ4(DDR4)シンクロナスDRAM(SDRAM)など、プラットフォーム用のメインメモリ(例えば、ダイナミックランダムアクセスメモリ(DRAM))の各部分であってよい。本実施形態において、メモリ1016およびメモリ1018というメモリは、それぞれのプロセッサ(すなわち、プロセッサ1004およびプロセッサ1006)に局所的に取り付けられる。他の実施形態において、メインメモリは、バスおよび共有メモリハブを介してプロセッサと結合し得る。
システム1000は、プロセッサ1004およびプロセッサ1006に結合されたチップセット1032を含む。さらに、チップセット1032は、例えば、インタフェース(I/F)1038を介して、ストレージデバイス1050に結合され得る。I/F1038は、例えば、ペリフェラルコンポーネントインターコネクトエンハンスト(PCI-e)であってよい。ストレージデバイス1050は、システム1000の回路(例えば、プロセッサ1004、プロセッサ1006、GPU1048、MLアクセラレータ1054または視覚処理ユニット1056等)により実行可能な命令を格納し得る。例えば、ストレージデバイス1050は、コンピュータ可読記憶媒体900、具体的には命令316、および/またはルーチン800用の命令等を格納できる。
プロセッサ1004は、P2Pインタフェース1028およびP2P1034を介してチップセット1032に結合し、一方、プロセッサ1006は、P2Pインタフェース1030およびP2P1036を介してチップセット1032に結合する。ダイレクトメディアインタフェース(DMI)1076およびDMI1078はそれぞれ、P2Pインタフェース1028およびP2P1034ならびにP2Pインタフェース1030およびP2P1036に結合し得る。DMI1076およびDMI1078は、例えば毎秒8ギガ(GT/s)の転送高速を容易にする、DMI3.0などのインターコネクトであってよい。他の実施形態において、プロセッサ1004およびプロセッサ1006は、バスを介して相互接続し得る。
チップセット1032は、プラットフォームコントローラハブ(PCH)などのコントローラハブを含み得る。チップセット1032は、クロッキング機能を実行するためのシステムクロックを含んでよく、プラットフォーム上の周辺デバイスの接続を容易にするために、I/Oバス用のインタフェースを含んでよい。これらのインタフェースは、例えば、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクト(PCI)、シリアルペリフェラルインターコネクト(SPI)および統合インターコネクト(I2C)等である。他の実施形態において、チップセット1032は、メモリコントローラハブと、グラフィックコントローラハブと、入力/出力(I/O)コントローラハブとを有するチップセットなど、1つよりも多くのコントローラハブを含み得る。
図示される例において、チップセット1032は、I/F1042を介して、トラステッドプラットフォームモジュール(TPM)1044およびUEFI、BIOS、フラッシュ回路1046と結合する。TPM1044は、暗号鍵をデバイスに統合することによりハードウェアをセキュリティ保護するように設計された専用マイクロコントローラである。UEFI、BIOS、フラッシュ回路1046は、プレブートコードを提供し得る。
さらに、チップセット1032は、グラフィック処理回路またはグラフィック処理ユニット(GPU)1048などの高性能グラフィックエンジンにチップセット1032を結合させるためのI/F1038を含む。他の実施形態において、システム1000は、プロセッサ1004および/またはプロセッサ1006とチップセット1032との間にフレキシブルディスプレイインタフェース(FDI)(不図示)を含み得る。FDIは、プロセッサ1004および/またはプロセッサ1006のうちの一方または両方におけるグラフィックプロセッサコアをチップセット1032と相互接続する。
追加的に、MLアクセラレータ1054および/または視覚処理ユニット1056は、I/F1038を介してチップセット1032に結合され得る。MLアクセラレータ1054は、MLモデル用のML関連動作(例えば、訓練、推論等)を実行するために配置された回路であり得る。同様に、視覚処理ユニット1056は、視覚処理の特定の動作または関連する動作を実行するために配置された回路であり得る。特に、MLアクセラレータ1054および/または視覚処理ユニット1056は、機械学習、ニューラルネットワーク処理、人工知能、視覚処理等に有用である数学的な演算および/またはオペランドを実行するために配置され得る。
様々なI/Oデバイス1060およびディスプレイ1052が、バスブリッジ1058に沿ってバス1072に結合し、バスブリッジ1058は、バス1072を第2のバス1074およびI/F1040に結合し、I/F1040は、バス1072をチップセット1032と接続する。一実施形態において、第2のバス1074は、ローピンカウント(LPC)バスであってよい。様々なデバイスが、例えば、キーボード1062と、マウス1064と、通信デバイス1066とを含む第2のバス1074に結合し得る。
さらに、オーディオI/O1068が、第2のバス1074に結合し得る。I/Oデバイス1060および通信デバイス1066のうちの多くがマザーボードまたはシステムオンチップ(SoC)1002上に存在し得るが、キーボード1062およびマウス1064はアドオン周辺機器であってよい。他の実施形態において、I/Oデバイス1060および通信デバイス1066のいくつかまたは全ては、アドオン周辺機器であり、マザーボードまたはシステムオンチップ(SoC)1002上に存在しない。
以下の例は、さらなる実施形態に関連しており、これらから、多数の変形および構成が明らかになるであろう。
(例1)
コンピューティング装置であって、
プロセッサと、
命令を格納したメモリと
を備え、
前記命令は、前記プロセッサにより実行された場合、
複数の画像のインジケーションを受信することであって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信することと、
前記複数の画像から複数のマーカを識別することと、
前記複数の画像および前記複数のマーカから前記物体の初期状態を識別することと、
前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定することと、
協働して前記物体を伴う前記協働タスクを前記軌道と前記物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練することと
を実行するように前記装置を構成する、
コンピューティング装置。
(例2)
前記命令は、前記プロセッサにより実行された場合、前記複数の画像および前記複数のマーカから、識別された前記マーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定することを実行するように前記装置をさらに構成する、例1に記載のコンピューティング装置。
(例3)
前記命令は、前記プロセッサにより実行された場合、
前記複数の画像から少なくとも1つの固定マーカを識別することと、
前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定することと
を実行するように前記装置をさらに構成する、例1に記載のコンピューティング装置。
(例4)
前記命令は、前記プロセッサにより実行された場合、
前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別することと、
前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別することと、
前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練することと
を実行するように前記装置をさらに構成する、例1に記載のコンピューティング装置。
(例5)
前記命令は、前記プロセッサにより実行された場合、前記複数の画像から前記環境のレイアウトを識別するように前記装置をさらに構成する、例4に記載のコンピューティング装置。
(例6)
前記命令は、前記プロセッサにより実行された場合、前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトとに基づいて前記MLモデルを訓練するように前記装置をさらに構成する、例5に記載のコンピューティング装置。
(例7)
前記命令は、前記プロセッサにより実行された場合、
前記初期物体状態と、前記レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションすることと、
前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練することと
を実行するように前記装置をさらに構成する、例6に記載のコンピューティング装置。
(例8)
命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、コンピュータにより実行された場合、
複数の画像をコンピュータにおいて受信する手順であって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信する手順と、
前記複数の画像から複数のマーカを識別する手順と、
前記複数の画像および前記複数のマーカから前記物体の初期状態を識別する手順と、
前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定する手順と、
協働して前記物体を伴う前記協働タスクを前記軌道と前記物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練する手順と
を前記コンピュータに実行させる、
コンピュータ可読記憶媒体。
(例9)
前記命令は、前記複数の画像および前記複数のマーカから、識別された前記マーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定する手順を前記コンピュータにさらに実行させる、例8に記載のコンピュータ可読記憶媒体。
(例10)
前記命令は、
前記複数の画像から少なくとも1つの固定マーカを識別する手順と、
前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定する手順と
を前記コンピュータにさらに実行させる、例8に記載のコンピュータ可読記憶媒体。
(例11)
前記命令は、
前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別することと、
前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別することと、
前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練することと
を前記コンピュータにさらに実行させる、例8に記載のコンピュータ可読記憶媒体。
(例12)
前記命令は、前記コンピュータの前記処理回路により前記複数の画像から前記環境のレイアウトを識別する手順を前記コンピュータにさらに実行させる、例11に記載のコンピュータ可読記憶媒体。
(例13)
前記命令は、前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトとに基づいて前記MLモデルを訓練する手順を前記コンピュータにさらに実行させる、例12に記載の非一時的コンピュータ可読記憶媒体。
(例14)
前記命令は、前記コンピュータの前記処理回路により、前記初期物体状態と、前記レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションする手順と、
前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練する手順と
を前記コンピュータにさらに実行させる、例13に記載のコンピュータ可読記憶媒体。
(例15)
複数の画像をコンピュータにおいて受信する段階であって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信する段階と、
前記コンピュータの処理回路により前記複数の画像から複数のマーカを識別する段階と、
前記コンピュータの前記処理回路により前記複数の画像および前記複数のマーカから前記物体の初期状態を識別する段階と、
前記コンピュータの前記処理回路により、前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定する段階と、
協働して前記物体を伴う前記協働タスクを前記軌道と前記物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練する段階と
を備える、協働的挙動用にロボットを訓練するための方法。
(例16)
前記コンピュータの前記処理回路により、前記複数の画像および前記複数のマーカから、識別された前記マーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定する段階を備える、例15に記載のロボットを訓練するための方法。
(例17)
前記コンピュータの前記処理回路により前記複数の画像から少なくとも1つの固定マーカを識別する段階と、
前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定する段階と
を備える、例15に記載のロボットを訓練するための方法。
(例18)
前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別する段階と、
前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別する段階と、
前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練する段階と
を備える、例15に記載のロボットを訓練するための方法。
(例19)
前記コンピュータの前記処理回路により前記複数の画像から前記環境のレイアウトを識別する段階を備える、例18に記載のロボットを訓練するための方法。
(例20)
前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトとに基づいて前記MLモデルを訓練する段階を備える、例19に記載のロボットを訓練するための方法。
(例21)
前記コンピュータの前記処理回路により、前記初期物体状態と、前記レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションする段階と、
前記軌道と、前記物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練する段階と
を備える、例20に記載のロボットを訓練するための方法。
(例22)
例15から21のいずれか1つに記載の機能を実装するために配置された手段を備える装置。
以下の図、説明および特許請求の範囲から、当業者には、他の技術的特徴が容易に明らかになり得る。
加えて、前述の図、説明および特許請求の範囲では、本開示を合理化するよう、様々な特徴が単一の例において共にグループ化されている。この開示の方法は、特許請求された例が、各請求項に明示的に記載されたものよりも多くの特徴を必要とするという意図を反映するものと解釈されるべきではない。むしろ、以下の特許請求の範囲が反映しているように、発明の主題は、単一の開示例の全ての特徴よりも少ないものにある。したがって、以下の特許請求の範囲は、本明細書により、発明を実施するための形態に組み込まれ、各請求項は、別個の例として独立している。添付の特許請求の範囲において、「including」および「in which」という用語はそれぞれ、「comprising」および「wherein」というそれぞれの用語の平易な英語での均等物として用いられている。さらに、「第1の」、「第2の」および「第3の」等の用語は、表示として用いられているに過ぎず、それらの対象に数値的要件を課すよう意図されてはいない。
構造的特徴および/または方法論的動作に固有の文言で主題を説明してきたが、添付の特許請求の範囲において定義されている主題が必ずしも上述の特定の特徴または動作に限定されないことを理解されたい。むしろ、上述の特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示されている。
プログラムコードの格納および/または実行に適したデータ処理システムは、メモリ素子直接、またはシステムバスを通じて間接的に結合された少なくとも1つのプロセッサを含む。メモリ素子は、プログラムコード、大容量記憶装置およびキャッシュメモリの実際の実行中に使用されるローカルメモリを含んでよい。これらのプログラムコード、大容量記憶装置およびキャッシュメモリは、実行中にコードが大容量記憶装置から取得される回数を低減するために、少なくともあるプログラムコードの一時記憶を提供する。「コード」という用語は、アプリケーション、ドライバ、プロセス、ルーチン、方法、モジュール、ファームウェア、マイクロコードおよびサブプログラムを含む、広範囲のソフトウェアコンポーネントおよび構築物を包含する。したがって、「コード」という用語は、処理システムにより実行された場合に所望の1つまたは複数の動作を実行するための命令のあらゆる収集を指すのに用いられ得る。
本明細書において説明されている論理回路、デバイスおよびインタフェースは、ハードウェアにおいて実装される機能と、1つまたは複数のプロセッサ上で実行されるコードを用いて実装される機能とを実行し得る。論理回路は、ハードウェア、または、ハードウェアと、1つまたは複数の論理機能を実装するコードとを指す。回路は、ハードウェアであり、1つまたは複数の回路を指し得る。各回路は、特定の機能を実行し得る。回路全体のうちのある回路は、1つまたは複数の導体と相互接続された個別の電気コンポーネント、集積回路、チップパッケージ、チップセットまたはメモリ等を含み得る。集積回路は、シリコンウェハなどの基板上に生成された回路を含み、コンポーネントを含み得る。また、集積回路、プロセッサパッケージ、チップパッケージおよびチップセットは、1つまたは複数のプロセッサを含み得る。
プロセッサは、命令および/またはデータなどの信号を入力において受信し、信号を処理して、少なくとも1つの出力を生成し得る。コードの実行中に、コードは、プロセッサパイプラインを構成するトランジスタの物理的な状態および特徴を変化させる。トランジスタの物理的な状態は、プロセッサ内のレジスタに格納される1および0の論理ビットに変換される。プロセッサは、トランジスタの物理的な状態をレジスタに転送でき、トランジスタの物理的な状態を別の記憶媒体に転送できる。
プロセッサは、プロセッサの全体的な機能を実行するために実装される1つまたは複数のサブ機能を実行するための回路を含み得る。プロセッサの1つの例が、少なくとも1つの入力と少なくとも1つの出力とを含むステートマシンまたは特定用途向け集積回路(ASIC)である。ステートマシンは、予め定められた一連の連続的および/または並列的な操作または変換を少なくとも1つの入力に対して実行することにより、少なくとも1つの入力を操作して、少なくとも1つの出力を生成し得る。
上述のロジックは、集積回路チップの設計の一部であってよい。チップ設計は、グラフィカルコンピュータプログラミング言語で生成され、コンピュータ記憶媒体またはデータ記憶媒体(例えば、ディスク、テープ、物理ハードドライブ、または、ストレージアクセスネットワーク内のものなどの仮想ハードドライブ)に格納される。チップ、またはチップを製造するために用いられるフォトリソグラフィマスクを設計者が製造していない場合、設計者は、結果として得られる設計を、物理的手段により(例えば、設計を格納した記憶媒体のコピーを提供することにより)、または電子的に(例えば、インターネットを通じて)、そのようなエンティティへ直接または間接的に送信する。次に、格納された設計は、製造のための適切なフォーマット(例えば、GDSII)に変換される。
結果として得られる集積回路チップは、ベアダイとして未処理のウェハの形態で(つまり、複数のパッケージ化されていないチップを有する単一のウェハとして)、またはパッケージ化された形態で、製造者により販売され得る。後者の場合、チップは、シングルチップパッケージ(マザーボードに取り付けられたリードを有するプラスチックキャリア、または他のより高レベルのキャリアなど)またはマルチチップパッケージ(表面相互接続または埋設型相互接続のいずれかまたは両方を有するセラミックキャリアなど)に搭載される。いずれの場合も、チップは次に、(a)プロセッサボード、サーバプラットフォームもしくはマザーボードなどの中間生成物または(b)最終製品のいずれかの一部として、他のチップ、個別の回路要素および/または他の信号処理デバイスと統合される。
例示的な実施形態の前述の説明は、例示および説明の目的で提示されている。包括的であることも、開示された正確な形態に本開示を限定することも、意図されていない。本開示に照らして、多くの修正および変形が可能である。本開示の範囲が、この詳細な説明ではなく、むしろ本明細書に添付された特許請求の範囲によって限定されることが意図されている。本願の優先権を主張する将来の出願は、開示された主題を異なる方式で主張してよく、概して、本明細書において様々に開示されているかそうでなければ実証されている1つまたは複数の限定の任意のセットを含み得る。
[他の考えられる項目]
(項目1)
コンピューティング装置であって、
プロセッサと、
命令を格納したメモリと
を備え、
前記命令は、前記プロセッサにより実行された場合、
複数の画像のインジケーションを受信することであって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信することと、
前記複数の画像から複数のマーカを識別することと、
前記複数の画像および前記複数のマーカから前記少なくとも1つの物体の初期状態を識別することと、
前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定することと、
協働して前記少なくとも1つの物体を伴う前記協働タスクを前記複数の軌道と前記少なくとも1つの物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練することと
を実行するように前記装置を構成する、
コンピューティング装置。
(項目2)
前記命令は、前記プロセッサにより実行された場合、前記複数の画像および前記複数のマーカから、識別された前記複数のマーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定することを実行するように前記装置をさらに構成する、項目1に記載のコンピューティング装置。
(項目3)
前記命令は、前記プロセッサにより実行された場合、
前記複数の画像から少なくとも1つの固定マーカを識別することと、
前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定することと
を実行するように前記装置をさらに構成する、項目1に記載のコンピューティング装置。
(項目4)
前記命令は、前記プロセッサにより実行された場合、
前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別することと、
前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別することと、
前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練することと
を実行するように前記装置をさらに構成する、項目1に記載のコンピューティング装置。
(項目5)
前記命令は、前記プロセッサにより実行された場合、前記複数の画像から前記環境のレイアウトを識別するように前記装置をさらに構成する、項目4に記載のコンピューティング装置。
(項目6)
前記命令は、前記プロセッサにより実行された場合、前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトとに基づいて前記MLモデルを訓練するように前記装置をさらに構成する、項目5に記載のコンピューティング装置。
(項目7)
前記命令は、前記プロセッサにより実行された場合、
前記初期物体状態と、前記レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションすることと、
前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練することと
を実行するように前記装置をさらに構成する、項目6に記載のコンピューティング装置。
(項目8)
命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、コンピュータにより実行された場合、
複数の画像をコンピュータにおいて受信する手順であって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信する手順と、
前記複数の画像から複数のマーカを識別する手順と、
前記複数の画像および前記複数のマーカから前記少なくとも1つの物体の初期状態を識別する手順と、
前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定する手順と、
協働して前記少なくとも1つの物体を伴う前記協働タスクを前記複数の軌道と前記少なくとも1つの物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練する手順と
を前記コンピュータに実行させる、
コンピュータ可読記憶媒体。
(項目9)
前記命令は、前記複数の画像および前記複数のマーカから、識別された前記複数のマーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定する手順を前記コンピュータにさらに実行させる、項目8に記載のコンピュータ可読記憶媒体。
(項目10)
前記命令は、
前記複数の画像から少なくとも1つの固定マーカを識別する手順と、
前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定する手順と
を前記コンピュータにさらに実行させる、項目8に記載のコンピュータ可読記憶媒体。
(項目11)
前記命令は、
前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別することと、
前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別することと、
前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練することと
を前記コンピュータにさらに実行させる、項目8に記載のコンピュータ可読記憶媒体。
(項目12)
前記命令は、前記コンピュータの前記処理回路により前記複数の画像から前記環境のレイアウトを識別する手順を前記コンピュータにさらに実行させる、項目11に記載のコンピュータ可読記憶媒体。
(項目13)
前記命令は、前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトとに基づいて前記MLモデルを訓練する手順を前記コンピュータにさらに実行させる、項目12に記載の非一時的コンピュータ可読記憶媒体。
(項目14)
前記命令は、前記コンピュータの前記処理回路により、前記初期物体状態と、前記レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションする手順と、
前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練する手順と
を前記コンピュータにさらに実行させる、項目13に記載のコンピュータ可読記憶媒体。
(項目15)
複数の画像をコンピュータにおいて受信するための手段であって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信するための手段と、
前記コンピュータの処理回路により前記複数の画像から複数のマーカを識別するための手段と、
前記コンピュータの前記処理回路により前記複数の画像および前記複数のマーカから前記少なくとも1つの物体の初期状態を識別するための手段と、
前記コンピュータの前記処理回路により、前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定するための手段と、
協働して前記少なくとも1つの物体を伴う前記協働タスクを前記複数の軌道と前記少なくとも1つの物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練するための手段と
を備える、ロボットを訓練するための装置。
(項目16)
前記コンピュータの前記処理回路により、前記複数の画像および前記複数のマーカから、識別された前記複数のマーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定するための手段を備える、項目15に記載のロボットを訓練するための装置。
(項目17)
前記コンピュータの前記処理回路により前記複数の画像から少なくとも1つの固定マーカを識別するための手段と、
前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定するための手段と
を備える、項目15に記載のロボットを訓練するための装置。
(項目18)
前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別するための手段と、
前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別するための手段と、
前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練するための手段と
を備える、項目15に記載のロボットを訓練するための装置。
(項目19)
前記コンピュータの前記処理回路により前記複数の画像から前記環境のレイアウトを識別するための手段を備える、項目18に記載のロボットを訓練するための装置。
(項目20)
前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトとに基づいて前記MLモデルを訓練するための手段を備える、項目19に記載のロボットを訓練するための装置。
(項目21)
前記コンピュータの前記処理回路により、前記初期物体状態と、前記レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションするための手段と、
前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練するための手段と
を備える、項目20に記載のロボットを訓練するための装置。

Claims (21)

  1. コンピューティング装置であって、
    プロセッサと、
    命令を格納したメモリと
    を備え、
    前記命令は、前記プロセッサにより実行された場合、
    複数の画像のインジケーションを受信することであって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信することと、
    前記複数の画像から複数のマーカを識別することと、
    前記複数の画像および前記複数のマーカから前記少なくとも1つの物体の初期状態を識別することと、
    前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定することと、
    協働して前記少なくとも1つの物体を伴う前記協働タスクを前記複数の軌道と前記少なくとも1つの物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練することと
    を実行するように前記コンピューティング装置を構成する、
    コンピューティング装置。
  2. 前記命令は、前記プロセッサにより実行された場合、前記複数の画像および前記複数のマーカから、識別された前記複数のマーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定することを実行するように前記コンピューティング装置をさらに構成する、請求項1に記載のコンピューティング装置。
  3. 前記命令は、前記プロセッサにより実行された場合、
    前記複数の画像から少なくとも1つの固定マーカを識別することと、
    前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定することと
    を実行するように前記コンピューティング装置をさらに構成する、請求項1または2に記載のコンピューティング装置。
  4. 前記命令は、前記プロセッサにより実行された場合、
    前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別することと、
    前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別することと、
    前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練することと
    を実行するように前記コンピューティング装置をさらに構成する、請求項1から3のいずれか一項に記載のコンピューティング装置。
  5. 前記命令は、前記プロセッサにより実行された場合、前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、レイアウトとに基づいて前記MLモデルを訓練するように前記コンピューティング装置をさらに構成する、請求項4に記載のコンピューティング装置。
  6. 前記命令は、前記プロセッサにより実行された場合、
    前記初期状態と、レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションすることと、
    前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練することと
    を実行するように前記コンピューティング装置をさらに構成する、請求項4または5に記載のコンピューティング装置。
  7. 前記命令は、前記プロセッサにより実行された場合、前記複数の画像から前記環境のレイアウトを識別するように前記コンピューティング装置をさらに構成する、請求項1から6のいずれか一項に記載のコンピューティング装置。
  8. 複数の画像をコンピュータにおいて受信する手順であって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信する手順と、
    前記複数の画像から複数のマーカを識別する手順と、
    前記複数の画像および前記複数のマーカから前記少なくとも1つの物体の初期状態を識別する手順と、
    前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定する手順と、
    協働して前記少なくとも1つの物体を伴う前記協働タスクを前記複数の軌道と前記少なくとも1つの物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練する手順と
    をコンピュータに実行させるコンピュータプログラム。
  9. 前記複数の画像および前記複数のマーカから、識別された前記複数のマーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定する手順を前記コンピュータにさらに実行させる、請求項8に記載のコンピュータプログラム。
  10. 前記複数の画像から少なくとも1つの固定マーカを識別する手順と、
    前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定する手順と
    を前記コンピュータにさらに実行させる、請求項8または9に記載のコンピュータプログラム。
  11. 前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別する手順と、
    前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別する手順と、
    前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練する手順と
    を前記コンピュータにさらに実行させる、請求項8から10のいずれか一項に記載のコンピュータプログラム。
  12. 前記コンピュータの処理回路により前記複数の画像から前記環境のレイアウトを識別する手順を前記コンピュータにさらに実行させる、請求項11に記載のコンピュータプログラム。
  13. 前記コンピュータの処理回路により、前記初期状態と、前記環境のレイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションする手順と、
    前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練する手順と
    を前記コンピュータにさらに実行させる、請求項11または12に記載のコンピュータプログラム。
  14. 前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記環境のレイアウトとに基づいて前記MLモデルを訓練する手順を前記コンピュータにさらに実行させる、請求項11から13のいずれか一項に記載のコンピュータプログラム。
  15. 複数の画像をコンピュータにおいて受信するための手段であって、前記複数の画像は、少なくとも1つの物体を伴う協働タスクを少なくとも2人の専門家実証者が実証する環境内に配置されたカメラのアレイにより撮像される、受信するための手段と、
    前記コンピュータの処理回路により前記複数の画像から複数のマーカを識別するための手段と、
    前記コンピュータの前記処理回路により前記複数の画像および前記複数のマーカから前記少なくとも1つの物体の初期状態を識別するための手段と、
    前記コンピュータの前記処理回路により、前記複数の画像および前記複数のマーカから、前記協働タスクに関連付けられた複数の軌道を決定するための手段と、
    協働して前記少なくとも1つの物体を伴う前記協働タスクを前記複数の軌道と前記少なくとも1つの物体の前記初期状態とに基づいて実行するための少なくとも2つのロボットの制御状態を出力するよう、機械学習(ML)モデルを訓練するための手段と
    を備える、ロボットを訓練するための装置。
  16. 前記コンピュータの前記処理回路により、前記複数の画像および前記複数のマーカから、識別された前記複数のマーカに基づいて前記少なくとも2人の専門家実証者の初期状態を決定するための手段を備える、請求項15に記載のロボットを訓練するための装置。
  17. 前記コンピュータの前記処理回路により前記複数の画像から少なくとも1つの固定マーカを識別するための手段と、
    前記固定マーカに対する前記複数のマーカの位置に基づいて前記複数の軌道を決定するための手段と
    を備える、請求項15または16に記載のロボットを訓練するための装置。
  18. 前記複数のマーカのうちの少なくとも最初のものと第1のロボットとの間の第1のマッピングを識別するための手段と、
    前記複数のマーカのうちの少なくとも2番目のものと第2のロボットとの間の第2のマッピングを識別するための手段と、
    前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングとに基づいて前記MLモデルを訓練するための手段と
    を備える、請求項15から17のいずれか一項に記載のロボットを訓練するための装置。
  19. 前記コンピュータの前記処理回路により前記複数の画像から前記環境のレイアウトを識別するための手段を備える、請求項18に記載のロボットを訓練するための装置。
  20. 前記コンピュータの前記処理回路により、前記初期状態と、前記レイアウトと、前記少なくとも2つのロボットの前記制御状態とから、更新された物体状態をシミュレーションするための手段と、
    前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記レイアウトと、前記更新された物体状態とに基づいて前記MLモデルを訓練するための手段と
    を備える、請求項19に記載のロボットを訓練するための装置。
  21. 前記複数の軌道と、前記少なくとも1つの物体の前記初期状態と、前記第1のマッピングと、前記第2のマッピングと、前記環境のレイアウトとに基づいて前記MLモデルを訓練するための手段を備える、請求項18から20のいずれか一項に記載のロボットを訓練するための装置。
JP2022004072A 2021-03-15 2022-01-14 ユーザによる実証を通じた協働ロボットの訓練 Pending JP2022141580A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/201,443 US20210201183A1 (en) 2021-03-15 2021-03-15 Training Collaborative Robots through User Demonstrations
US17/201,443 2021-03-15

Publications (1)

Publication Number Publication Date
JP2022141580A true JP2022141580A (ja) 2022-09-29

Family

ID=76547022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022004072A Pending JP2022141580A (ja) 2021-03-15 2022-01-14 ユーザによる実証を通じた協働ロボットの訓練

Country Status (3)

Country Link
US (1) US20210201183A1 (ja)
EP (1) EP4059671A1 (ja)
JP (1) JP2022141580A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11731271B2 (en) * 2020-06-30 2023-08-22 Microsoft Technology Licensing, Llc Verbal-based focus-of-attention task model encoder
US20220371186A1 (en) * 2021-05-19 2022-11-24 Guangzhou Institute of advanced technology Dual-robot position/force multivariate-data-driven method using reinforcement learning
US20220402123A1 (en) * 2021-06-21 2022-12-22 X Development Llc State estimation for a robot execution system
WO2024182908A1 (en) * 2023-03-08 2024-09-12 Ferme D'hiver Technologies Inc. Method of using augmented reality and in-situ camera for machine learning inside a plant environment

Also Published As

Publication number Publication date
EP4059671A1 (en) 2022-09-21
US20210201183A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
EP4059671A1 (en) Training collaborative robots through user demonstrations
US9811074B1 (en) Optimization of robot control programs in physics-based simulated environment
US9671777B1 (en) Training robots to execute actions in physics-based virtual environment
Zapata-Impata et al. Fast geometry-based computation of grasping points on three-dimensional point clouds
Li et al. Survey on mapping human hand motion to robotic hands for teleoperation
Lambrecht et al. Spatial programming for industrial robots through task demonstration
RU2700246C1 (ru) Способ и система захвата объекта с помощью роботизированного устройства
CN110914022B (zh) 直接教导机器人的系统和方法
CN110476168A (zh) 用于手部跟踪的方法和系统
EP3544773B1 (en) System and method for determining grasping positions for two-handed grasps of industrial objects
US11554482B2 (en) Self-learning industrial robotic system
JP2022176917A (ja) ロボットデバイスを制御するための方法
Ruppel et al. Learning object manipulation with dexterous hand-arm systems from human demonstration
Fang et al. Vision-based posture-consistent teleoperation of robotic arm using multi-stage deep neural network
Xu et al. Dexterous manipulation from images: Autonomous real-world rl via substep guidance
Dong et al. A review of robotic grasp detection technology
Gil et al. 3D visual sensing of the human hand for the remote operation of a robotic hand
CN113119104A (zh) 机械臂控制方法、机械臂控制装置、计算设备及系统
Aleotti et al. Grasp programming by demonstration in virtual reality with automatic environment reconstruction
WO2021195916A1 (zh) 动态手部仿真方法、装置和系统
Besnea et al. Experiments regarding implementation of a virtual training environment for automotive industry
Menegozzo et al. Automatic process modeling with time delay neural network based on low-level data.
RU2745380C1 (ru) Способ и система захвата объектов с помощью роботизированного устройства
CN115114683A (zh) 用于将自主技能执行中的约束反馈到设计中的系统与方法
Hou et al. Analysis of the multi-finger dynamics for robot hand system based on EtherCAT