JP7387920B2 - ロボットを制御するための方法及びロボットコントローラ - Google Patents

ロボットを制御するための方法及びロボットコントローラ Download PDF

Info

Publication number
JP7387920B2
JP7387920B2 JP2022574467A JP2022574467A JP7387920B2 JP 7387920 B2 JP7387920 B2 JP 7387920B2 JP 2022574467 A JP2022574467 A JP 2022574467A JP 2022574467 A JP2022574467 A JP 2022574467A JP 7387920 B2 JP7387920 B2 JP 7387920B2
Authority
JP
Japan
Prior art keywords
skill
model
robot
skills
task
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.)
Active
Application number
JP2022574467A
Other languages
English (en)
Other versions
JP2023529143A (ja
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2023529143A publication Critical patent/JP2023529143A/ja
Application granted granted Critical
Publication of JP7387920B2 publication Critical patent/JP7387920B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39205Markov model
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39244Generic motion control operations, primitive skills each for special task
    • 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/40391Human to robot skill transfer
    • 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/40429Stochastic, probabilistic generation of intermediate points
    • 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/40629Manipulation planning, consider manipulation task, path, grasping

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本開示は、ロボットを制御するための方法及びロボットコントローラに関する。
デモンストレーションに基づく学習(LfD)というアプローチを通して、ロボットのスキルをプログラミングすることができ、その際に、スキルの公称計画が、デモンストレーションに基づきロボットによって学習される。しかしながら、特定のタスクを実行するために適用されるべきスキルは、初期システム状態に応じて変化する可能性がある。例えば、タスクが、物体をピックアップすることを含む場合には、適用されるべきスキルは、その物体がどのような向きを向いているかに応じて「物体を側面からピックアップする」である場合、又は、「物体を頂部からピックアップする」である場合がある。さらに、物体が側面からピックアップされる場合には、タスクをさらに進めるために物体の向きを変える必要がある可能性がある。したがって、ロボットがいくつかのスキルを順番に並べて、変化する状況においてそれらを選択的に適用することを可能にするアプローチが望ましい。
L. Schwenkel、M. Guo及びM. Buerger著"Optimizing sequences of probabilistic manipulation skills learned from demonstration" in Conference on Robot Learning,2019年
L. Schwenkel、M. Guo及びM. Buerger著の“Optimizing sequences of probabilistic manipulation skills learned from demonstration” in Conference on Robot Learning,2019年(以下、参考文献[1]と称する)には、スキル中心のアプローチが記載されており、ここでは、それぞれのスキルが種々のシナリオ下で個別に学習されるが、特定のタスクにはアタッチされていない。
種々の実施形態によれば、ロボットを制御するための方法であって、当該方法は、
複数のスキルの各々を実行するためのデモンストレーションを提供することと、
デモンストレーションに基づき、それぞれのスキルごとにロボット軌道モデルをトレーニングすることであって、それぞれの軌道モデルは、1つ又は複数の初期状態と、1つ又は複数の最終状態とを有する隠れセミマルコフモデルである、ことと、
スキルのロボット軌道モデルのそれぞれの初期状態について、スキルを実行する前のロボットコンフィギュレーションの確率分布を含む、それぞれのスキルごとの前提条件モデルと、スキルのロボット軌道モデルのそれぞれの最終状態について、スキルを実行した後のロボットコンフィギュレーションの確率分布を含む、それぞれのスキルごとの最終状況モデルとを、デモンストレーションに基づきトレーニングすることと、
タスクの記述を受信することであって、当該タスクは、複数のスキルのうちのスキルを順番に及び/又は分岐で実行することを含む、ことと、
以下のことにより、合成されたロボット軌道モデルを生成することであって、即ち、
・タスクにおいて2つのスキルが順番に実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○2つのスキルのうちの第1のスキルの軌道モデルのそれぞれの最終状態と、2つのスキルのうちの第2のスキルの軌道モデルのそれぞれの初期状態との間の遷移確率を、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布との間の類似度の関数として計算する
ことによって、スキルのロボット軌道モデルをカスケードし、
・タスクにおいて2つのスキルが分岐で実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○第1のスキルの状態と第2のスキルの状態との間の遷移確率をゼロに設定する
ことによって、スキルのロボット軌道モデルを組み合わせる
ことにより、合成されたロボット軌道モデルを生成することと、
ロボットを、合成されたロボット軌道モデルに従ってタスクを実行するように制御することと、
を含む、方法が提供される。
さらなる実施形態によれば、上述の方法を実行するように構成された、ロボットコントローラが提供される。
ロボットを制御するための上記の方法及び上記のロボットコントローラにより、1つの指定された操作タスクを実行するための複数の操作スキルを自動的に合成することが可能となる。したがって、ユーザ又はオペレータは、タスクを実行するための種々のスキルの中から選択するための分岐条件を手動で定義する必要がなくなる。換言すれば、タスク図を指定した後、このタスク図が複数のスキルを分岐で含む場合であっても、即ち、現在のシステム状態(例えば、ロボット及び/又は物体のコンフィギュレーション)に応じてそれぞれ異なるスキルを選択する必要がある場合であっても、オペレータは、このタスク図を直接的に実行することができる。
ロボットのジョイントの状態、操作されている物体の姿勢のように、分岐条件を評価するためには種々のセンサに直接的にアクセスする必要があるので、これによって操作タスクを実行する際の労力が大幅に節約される。正しいデータの読み取り及び記録には、かなりの時間がかかる場合がある。さらに、そのようなデータは、ソースコードに直接的に書き込まれる必要があり、これにより、ソースコードに直接的にアクセスすることが必要となるであろう。さらに、分岐条件の組合せによって状態空間全体をカバーすることができず、その結果、条件が満たされない状況が発生して失敗をもたらすことがよくあるので、提供される本制御方法及び本ロボットコントローラは、タスク実行のロバスト性を高めるものである。
以下、種々の実施例が記載されている。
実施例1は、上述のようなロボットを制御するための方法である。
実施例2は、それぞれのスキルが、ロボットによる1つ又は複数の物体の操作を含み、それぞれのスキルの隠れセミマルコフモデルが、スキルが適用されるロボットコンフィギュレーション及び物体コンフィギュレーションに対応するタスクパラメータを含むタスクパラメータ化された隠れセミマルコフモデルである、実施例1に記載の方法である。
特に、種々の実施形態は、1つ又は複数の物体を取り扱うためのロボットの効率的なトレーニング及び制御を可能にする。
実施例3は、スキルのロボット軌道モデルのそれぞれの最終状態について、スキルを実行した後にロボットコンフィギュレーション及び/又は物体コンフィギュレーションが、スキルが適用される初期ロボットコンフィギュレーション及び/又は初期物体コンフィギュレーションに対してどのように変化するかの確率分布を含む効果モデルを、それぞれのスキルごとにトレーニングすることをさらに含み、タスクにおいて2つのスキルが順番に実行されるべき場合に、スキルのロボット軌道モデルをカスケードすることが、第2のスキルのタスクパラメータ化された隠れセミマルコフモデルを、そのタスクパラメータが、第1のスキルの効果モデルによって与えられるロボットコンフィギュレーション及び/又は物体コンフィギュレーションに対応するタスクパラメータになるように変換することを含む、実施例2に記載の方法である。
したがって、スキルのシーケンスにわたって制御軌道が正しく計算されることを保証することができる。例えば、モデルの変換により、第2のスキルの関連するグローバルガウス分布を、第1のスキルの初期状態に基づいて直接的に計算することができることが保証される。次に、グローバルガウス分布を使用して、例えばビタビアルゴリズムを適用するための観測確率を計算することができる。
実施例4は、第2のスキルの効果モデルを、そのタスクパラメータが、第1のスキルの効果モデルによって与えられるロボットコンフィギュレーション及び/又は物体コンフィギュレーションに対応するタスクパラメータになるようにアフィン変換することをさらに含む、実施例3に記載の方法である。
これにより、例えばロボットによって操作されるべき1つ又は複数の物体を用いるシナリオにおいて、スキルのシーケンスにわたって制御軌道を正しく計算することが可能となる。
実施例5は、タスクにおいて2つのスキルが順番に実行されるべき場合に、2つのスキルのスキルのカスケードされたロボット軌道モデルの前提条件モデルとして、第1のスキルの前提条件モデルを使用することと、スキルのカスケードされたロボット軌道モデルの最終状況モデルとして、第2のスキルの最終状況モデルを使用することとをさらに含む、実施例1から4までのいずれか1つに記載の方法である。
スキルのカスケードのための前提条件モデルを計算することにより、さらなるスキルを追加することができ、例えば、順番又は分岐での3つ以上のスキルのための1つの合成されたモデルを決定することができる。これにより、複雑なタスクのためのトレーニング及び制御が可能となる。
実施例6は、タスクにおいて2つのスキルが分岐で実行されるべき場合に、第1のスキルの前提条件モデルと、第2のスキルの前提条件モデルとを、スキルの合成されたロボット軌道モデルの前提条件モデルに含めることと、第1のスキルの最終状況モデルと、第2のスキルの最終状況モデルとを、スキルの合成されたロボット軌道モデルの最終状況モデルに含めることとをさらに含む、実施例1から5までのいずれか1つに記載の方法である。
スキルの分岐のための前提条件モデルを計算することにより、さらなるスキルを追加することができ、例えば、順番又は分岐での3つ以上のスキルのための1つの合成されたモデルを決定することができる。これにより、複雑なタスクのためのトレーニング及び制御が可能となる。
実施例7は、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布との間の類似度が、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布とのKLダイバージェンスである、実施例1から6までのいずれか1つに記載の方法である。
KLダイバージェンスを使用することにより、スキルのシーケンスのための軌道モデルを効率的に連結することが可能となる。
実施例8は、前提条件モデル及び最終状況モデルが、タスクパラメータ化されたガウス混合モデルである、実施例1から7までのいずれか1つに記載の方法である。
例えば、それぞれのタスクパラメータ値ごとにガウス分布が決定される。タスクパラメータ化により、トレーニングされたモデルを種々のシナリオ(即ち、種々の初期システム状態(コンフィギュレーション))に適用することが可能となる。
実施例9は、合成されたロボット軌道モデルを生成することが、ロボット軌道モデルがタスク全体のための軌道モデルとなるように、タスクに従って、ロボット軌道モデルと、カスケードされたロボット軌道モデルと、組み合わせられたロボット軌道モデルとを繰り返しカスケードすることと、ロボット軌道モデルと、カスケードされたロボット軌道モデルと、組み合わせられたロボット軌道モデルとを繰り返し組み合わせることとを含む、実施例1から8までのいずれか1つに記載の方法である。
したがって、複雑なタスクのための合成されたモデルを反復的に決定することができ、これにより、複雑なタスクのためのロバスト性が保証され、分岐条件の複雑な階層を定義する必要性からオペレータが解放される。
実施例10は、実施例1から9までのいずれか1つに記載の方法を実施するように構成されたロボットコントローラである。
実施例11は、プロセッサによって実行された場合に、実施例1から9までのいずれか1つに記載の方法をプロセッサに実施させるための命令を含むコンピュータプログラムである。
実施例12は、プロセッサによって実行された場合に、実施例1から9までのいずれか1つに記載の方法をプロセッサに実施させるための命令を格納しているコンピュータ可読媒体である。
図面においては、同様の参照符号は、全般的にそれぞれ異なる図面を通して同様の部分を指す。図面は、必ずしも縮尺通りではなく、その代わりに全般的に本発明の原理を説明することに重点が置かれている。以下の記載においては、以下の図面を参照しながら種々の態様について説明する。
ロボットを示す図である。 複数のスキルを順番にかつ分岐で含む1つの操作タスクを示すフロー図である。 1つの実施形態によるロボットを制御するための方法を示すフロー図である。 順番に実行されるべきスキルのロボット軌道モデルをカスケードして、1つの合成されたロボット軌道モデルにするためのカスケード動作を示す図である。 分岐で(即ち、択一的に)実行されるべきスキルのロボット軌道モデルを組み合わせて、1つの合成されたロボット軌道モデルにするための組合せ動作を示す図である。 図2のタスク図に対してカスケード動作を適用した後に結果的にもたらされるタスク図を示す図である。 図6のタスク図に対して組合せ動作を適用した後に結果的にもたらされるタスク図を示す図である。 図7のタスク図に対してカスケード動作を適用した後に結果的にもたらされるタスク図を示す図である。 図8のタスク図に対して組合せ動作を適用した後の結果的にもたらされるタスク図を示す図である。 1つの実施形態によるロボットを制御するための方法を示すフロー図である。
以下の詳細な説明は、添付の図面を参照し、それらの図面には、本発明を実施可能な本開示の具体的な詳細及び態様が例示として示されている。他の態様を使用するものとしてもよく、本発明の範囲から逸脱することなく、構造的、論理的又は電気的な変更を加えることができる。本開示のいくつかの態様を本開示の1つ又は複数の他の態様と組み合わせて、新しい態様を形成することができることから、本開示の種々の態様は、必ずしも相互に排他的なものではない。
以下、種々の実施例についてさらに詳しく説明する。
図1は、ロボット100を示す。
ロボット100は、ロボットアーム101を含み、例えば、ワークピース(又は、1つ又は複数の他の物体)を処理するための又は組み立てるための産業用ロボットアームを含む。ロボットアーム101は、マニピュレータ102、103、104及びこれらのマニピュレータ102、103、104を支持する基台(又は支持体)105を含む。「マニピュレータ」という用語は、ロボットアーム101の可動部材を指し、この可動部材を動作させることによって、例えばある1つのタスクを実行するために、環境との物理的インタラクションが可能となる。制御のために、ロボット100は、(ロボット)コントローラ106を含み、このコントローラ106は、制御プログラムに従って環境とのインタラクションを実施するように構成されている。マニピュレータ102、103、104のうち(支持体105から最も遠い)最後の部材104は、エンドエフェクタ104とも称され、溶接トーチ、把持器具、塗装設備等のような1つ又は複数のツールを含み得る。
(支持体105により近い)他のマニピュレータ102、103は、ポジショニング装置を構成することができ、これにより、エンドエフェクタ104と一緒に、このエンドエフェクタ104を端部に有するロボットアーム101が提供される。ロボットアーム101は、(場合によってはその端部にツールを有する)人間の腕と同様の機能を提供することができる機械式のアームである。
ロボットアーム101は、マニピュレータ102、103、104を互いにかつ支持体105と相互接続するジョイント部材107、108、109を含み得る。ジョイント部材107、108、109は、1つ又は複数のジョイントを有し得るものであり、それらのジョイントの各々によって、関連するマニピュレータに対して互いに相対的に回転可能な運動(即ち、回転運動)及び/又は並進運動(即ち、変位)をもたらすことができる。マニピュレータ102、103、104の運動を、コントローラ106により制御されるアクチュエータを用いて開始することができる。
「アクチュエータ」という用語は、駆動されたことに応答して、メカニズム又はプロセスに作用を及ぼすように適応化された構成要素であると解することができる。アクチュエータは、コントローラ106によって発せられた命令(いわゆるアクティベーション)を実施して、機械的運動を生じさせることができる。駆動に応答して電気エネルギを機械エネルギに変換するように、アクチュエータ、例えば電気機械変換器を構成することができる。
「コントローラ」という用語は、任意の種類のロジック実装エンティティとして理解可能であり、このロジック実装エンティティは、例えば、記憶媒体に格納されたソフトウェア、ファームウェア、又は、これらの組合せを実行可能な回路及び/又はプロセッサを含み得るものであり、例えば、本実施例においてはアクチュエータに命令を発することができる。例えばプログラムコード(例えば、ソフトウェア)によって、システムの、本実施例においてはロボットの動作を制御するように、コントローラを構成することができる。
本実施例によれば、コントローラ106は、1つ又は複数のプロセッサ110と、コード及びデータを格納するメモリ111とを含み、プロセッサ110は、このコード及びデータに基づいてロボットアーム101を制御する。種々の実施形態によれば、コントローラ106は、メモリ111に格納された統計モデル112に基づき、ロボットアーム101を制御する。
ロボット100は、デモンストレーションに基づく学習(LfD)というアプローチを活用して、ある1つのタスクの実行又は人間のパートナーとの協働を学習することができる。人間のデモンストレーションを、ロボットのためのタスクの公称計画を表している確率モデル(統計モデルとも称される)によって、符号化することができる。次いで、コントローラ106は、ロボット軌道モデルとも称される統計モデルを使用し、場合によっては人間のパートナーと環境との双方の状態の関数として、所望のロボット運動を生成することができる。
LfDの基本的な着想は、GMMのような指定されたスキルモデルを一握りのデモンストレーションにフィットさせることである。M個のデモンストレーションが行われるものとし、それらのデモンストレーションの各々は、N=Σ個の全ての観測のデータセット
Figure 0007387920000001
について、T個のデータ点を含み、ここで、
Figure 0007387920000002
である。また、(着目対象物体のローカル座標系又はローカル座標フレームのようなタスクパラメータによって定められた)それぞれ異なるP個の座標系の視点から、複数の同一のデモンストレーションが記録されることも前提とする。このようなデータを取得するための1つの一般的な方法は、デモンストレーションを静的なグローバルフレームから
Figure 0007387920000003
によってフレームpに変換することである。ここで、
Figure 0007387920000004
は、ワールド(即ち、グローバル)フレームに対する(ローカル)フレームpの並進及び回転である。次に、TP-GMMが、モデルパラメータ
Figure 0007387920000005
によって記述され、ここで、Kは、混合モデルにおけるガウス成分の個数を表し、πは、それぞれの成分の事前確率であり、
Figure 0007387920000006
は、フレームp内のk番目のガウス成分のパラメータである。
標準的なGMMとは異なり、上述の混合モデルを、それぞれのフレームごとに独立して学習させることができない。実際、混合係数πは、全てのフレームによって共有され、フレームp内のk番目の成分は、グローバルフレーム内の対応するk番目の成分にマッピングされなければならない。期待値最大化法(EM)は、そのようなモデルを学習するために十分に確立された方法である。
一旦学習されたならば、学習されたスキルについて軌道を再現するために、実行中、TP-GMMを使用することができる。即ち、観測されたフレーム
Figure 0007387920000007
が与えられた場合には、学習されたTP-GMMは、
Figure 0007387920000008
のように、複数の異なるフレームにわたってアフィン変換されたガウス成分を乗算することにより、パラメータ
Figure 0007387920000009
を有する単一のGMMに変換され、ここで、それぞれのフレームpにおける更新されたガウスのパラメータは、
Figure 0007387920000010
のように計算される。タスクのパラメータは、時間の経過と共に変化する可能性があるが、表記のために時間の添え字は省略されている。
隠れセミマルコフモデル(HSMM)は、基礎を成す確率過程の時間情報を埋め込むことによって、標準隠れマルコフモデル(HMM)を拡張する。即ち、HMMの場合には基礎を成す隠れ過程がマルコフであるとみなされ、即ち、次の状態への遷移の確率は現在の状態のみに依存するのに対し、HSMMの場合には状態過程がセミマルコフであるとみなされる。このことはつまり、次の状態への遷移が、現在の状態にも、その状態に入ってから経過した時間にも依存するということを意味する。それらのパラメータを、TP-GMMと組み合わせて、デモンストレーションの時空間特徴を学習するためのロボットスキル符号化に適用することができる。より具体的には、タスクパラメータ化されたHSMM(TP-HSMM)モデルは、
Figure 0007387920000011
のように定義され、ここで、ahkは、状態hからkへの遷移確率であり、
Figure 0007387920000012
は、状態kの継続についてのガウス分布、即ち、所定数の連続したステップの間に状態kに留まっている確率を表し、
Figure 0007387920000013
は、状態kに対応する観測確率を表す、先ほど紹介したTP-GMMに等しい。ここで、状態の個数が、「アタッチされた」TP-GMMにおけるガウス成分の個数に対応することに注意されたい。
観測されたデータ点
Figure 0007387920000014
の特定の(部分的な)シーケンスが与えられた場合に、
Figure 0007387920000015
内の関連する状態シーケンスが、
Figure 0007387920000016
によって与えられるということを仮定する。データ点
Figure 0007387920000017
が、状態k(即ち、s=k)に属する確率は、フォワード変数
Figure 0007387920000018
によって与えられ、即ち、
Figure 0007387920000019
であり、ここで、
Figure 0007387920000020
は、出力確率であり、
Figure 0007387920000021
は、タスクパラメータが与えられた場合の(1)から導出される。さらに、Tまでの将来のステップを予測するために、再生中に、同一のフォワード変数を使用することもできる。
しかしながら、このケースにおいては、将来の観測が利用できないので、遷移及び継続の情報のみが使用され、即ち、(2)において全てのk及びl>tについて
Figure 0007387920000022
を設定することによって使用される。最後に、最尤の状態のシーケンス
Figure 0007387920000023
が、
Figure 0007387920000024
を選択することよって決定される。
ここで、ロボット状態の所望の最終観測を、
Figure 0007387920000025
として与えるものとし、ここで、Tは、スキルの計画対象期間(例えば、デモンストレーションにわたる平均長さ)である。さらに、初期ロボット状態は、
Figure 0007387920000026
として観測される。学習されたモデル
Figure 0007387920000027
が与えられた場合のスキルの実行(即ち、スキルの再現)のために、
Figure 0007387920000028
のみが与えられた場合の最尤の状態シーケンス
Figure 0007387920000029
が構築される。
フォワード変数を使用した再現は、そのケースにおいては直接的には不可能である。なぜなら、方程式(2)におけるフォワード変数は、周辺確率が最も高い状態のシーケンスを計算するが、その一方で、所望されているのは、
Figure 0007387920000030
が与えられた場合の、結合確率が最も高い状態シーケンスであるからである。結果として、(2)を使用した場合に、返却されたシーケンス
Figure 0007387920000031
が、デモンストレーションの時空間パターンと、最終観測との両方に一致するという保証が存在しない。物体をピックアップするという例に関して言えば、エンドエフェクタが物体の頂部にあることが所望の最終コンフィギュレーションである場合であっても、「側面からのピッキング」に相当する最尤のシーケンスが返却されてしまう可能性がある。
この問題を克服するために、1つの実施形態によれば、ビタビアルゴリズムの修正が使用される。古典的なビタビアルゴリズムを使用して、観測されたイベントの所与のストリームを結果的もたらすHMMにおける最尤の状態シーケンス(ビタビパスとも称される)を見つけ出すことができる。1つの実施形態によれば、以下の2つの主な側面において、即ち、(a)HMMの代わりにHSMM上で動作する、さらに重要なことに、(b)最初と最後の観測以外のほとんどの観測が欠落している、という側面において、これとは異なるアプローチが使用される。具体的には、観測が欠如している場合には、ビタビアルゴリズムは、
Figure 0007387920000032
のようになり、ここで、
Figure 0007387920000033
は、状態jの継続確率であり、
δ(j)は、システムが時刻tでは状態jにあってかつt+1では状態jにないという尤度であり、そして、
Figure 0007387920000034
であり、ここで、
Figure 0007387920000035
は、
Figure 0007387920000036
が与えられた場合の(1)からの
Figure 0007387920000037
内のグローバルガウス成分jである。即ち、それぞれの時刻tおいて、それぞれの状態jごとに、方程式δ(j)を最大化する2つの引数が記録され、単純なバックトラッキング手順を使用して、最尤の状態シーケンス
Figure 0007387920000038
が見つけ出される。換言すれば、上記のアルゴリズムは、
Figure 0007387920000039
から開始して最終観測
Figure 0007387920000040
をもたらす、スキルaのための最尤のシーケンス
Figure 0007387920000041
を導出する。
ロボットのタスク空間は、時間の経過と共に変化するエンドエフェクタの姿勢によって(位置及び向きを用いて)表現されるので、従来のユークリッドに基づく方法は、このようなデータの処理のためには不十分である。したがって、種々の実施形態によれば、ロボットのタスク空間にリーマン多様体Mが与えられている。簡単に言えば、多様体M内のそれぞれの点xごとに、接空間TMが存在する。これにより、多様体の制約と幾何学的に一致しながら、ローカルでユークリッド動作を実施することが可能となる。
MとMとの間の点を写像するために、指数写像及び対数写像を使用することができる。指数写像Exp:TM→Mは、測地線距離を維持しながら点xの接空間内の点を多様体上の点に写像する。逆の演算は、対数写像Log:M→TMと称される。もう1つの有用な演算は、歪みを導入することなく接空間間で要素を移動させる平行移動
Figure 0007387920000042
である。前述の演算の正確な形式は、多様体に関連するリーマン計量に依存している。種々の実施形態によれば、観測された運動パターンを符号化するリーマン正規分布を使用して、Mに関する統計を適当に計算するために、かつ、リーマン最適コントローラを使用して、タスク計画(即ち、順番付けられたスキル)に対応する制御アクションを検索するために、リーマン多様体が使用される。
以下の説明においては、多自由度のロボットアーム101が例として検討され、このロボットアーム101のエンドエフェクタ104は、(デカルト位置、方向四元数及びグリッパ状態を記述する)状態
Figure 0007387920000043
を有し、既知の静的な作業空間内で動作する。また、アーム101が到達する範囲内には、O={o,o,・・・,o}によって表される着目対象物体が存在しており、これらの着目対象物体の各々は、状態
Figure 0007387920000044
を有する。簡単にするために、全体的なシステム状態は、
Figure 0007387920000045
によって表される。
このセットアップ内で、人間のユーザは、特定の操作スキルのために1つ又は複数の物体を操作するために、アーム上でのいくつかの運動感覚のデモンストレーションを実施する。デモンストレーションされたスキルのセットをA={a,a,・・・,a}によって表すこととする。さらに、スキルa∈Aの場合、関与している物体の集合は、Oによって与えられ、利用可能なデモンストレーションの集合は、Dによって表される。全てのデモンストレーションは、上で紹介した物体中心の構造に従っていることに注意すべきであり、即ち、全てのデモンストレーションは、一般的にO内の物体に関連付けられる複数のフレームから記録され、これらのフレームは、多くの場合、作業空間内の物体の姿勢を表現する。例えば、「ペグをシリンダに挿入する」というスキルには、「ペグ」及び「シリンダ」という物体が関与しており、関連するデモンストレーションは、ロボットと、「ペグ」及び「シリンダ」との両方のフレームから記録される。
以下において検討される(操作)タスクは、デモンストレーションされたスキルAから選択されたスキル
Figure 0007387920000046
のシーケンスから構成されている。例えば、挿入タスクには、「キャップをピッキングする、キャップの向きを変える、再びキャップをピッキングする、キャップを挿入する」が関与している。タスクの最後に、ロボットと物体とを含むシステムの所望の最終状態として、目標コンフィギュレーションGに到達する。
工場において操作タスクを整理する一般的な方法は、線図又はフローチャートを使用することである。これらは、通常、GUI(グラフィカルユーザインタフェース)でのドラッグアンドドロップによって定義される。このようなアプローチは、以下の2つの条件、即ち、(1)タスクが単純であり、スキルの線形のシーケンスとして指定される、(2)それぞれのスキルは、分岐を有しておらず単純である、が成り立っている場合には十分である。このようにして、それぞれのスキルを、指定されたように順番に起動して実行することができる。
しかしながら、多くの場合、上記の条件のいずれかが成り立たない。例えば、所望のタスクは、種々の作業空間の状況において複数の実行選択肢を有し、又は、内部のいくつかのスキルは、種々の状況において複数の実行選択肢を有する。
図2は、複数のスキルを順番に(in sequence)かつ分岐で(in branches)含む1つの操作タスクを示すフロー図(又はタスク図)200を示す。
例えば、操作タスクは、第1のジョブ201として、物体をピックアップすることを含む。このことはつまり、ロボットが、物体の初期コンフィギュレーション(即ち、状態)に応じて、202の「物体を頂部からピックアップする」というスキル、203の「物体を左からピックアップする」というスキル、又は、204の「物体を右からピックアップする」というスキルを実行しなければならないということを意味し得る。したがって、タスクは、これらのスキルの実行を分岐で含み、即ち、これらのスキルは、択一的に実行されるべきであり、つまり、これらのスキルのうちの1つだけが実行されるべきである。第1の動作201、即ち、202、203又は204のスキルのうちの1つの実行後には、1つ又は複数のスキルが順番に続く。例えば、202の「物体を頂部からピックアップする」というスキルが実行された場合には、この後に、205の「物体をアタッチする」というスキルが順番に続く。
203又は204のそれぞれのスキルが実行された場合には、この後に、向きを変えるジョブ206が続く必要があり、即ち、それぞれのケースにおいて207又は208の向きを変えるスキルが続く必要がある。これらの向きを変えるスキルは、向きを変える方向という点でそれぞれ異なることができる。次いで、向きを変える動作206の後に、209の「物体を頂部からピックアップする」というスキルの実行が続き、最後に、210の「物体をアタッチする」というスキルの実行が続く。
分岐作成は、一般的に「if」条件として、例えば、「物体が直立している場合」211、「物体が左に倒れている場合」212及び「物体が右に倒れている場合」213のような分岐条件211、212、213を手動で指定することによって対処可能である。このような条件を設計するために、システム状態の領域を、この条件が成り立つための有効性の領域として手動で測定することができる。
このことはつまり、ロボットは、事前にインストールされた(工場から事前にプログラミングされた、又は、デモンストレーションによって教示された)操作スキルの集合を有し得るものであり、特定の組み立てタスクに関しては、オペレータが、このタスクを指定する(例えば、図2のような)線図を手動で構築するということを意味し、この線図においては、構築ブロックは、学習されたスキルの集合である。(場合によってはタスクレベルとスキルレベルとの両方での)分岐に起因して、オペレータは、それぞれの分岐ごとに分岐条件を手動で定義することが必要である。
種々の実施形態によれば、特に分岐条件を手動で定義する必要性を回避することを可能にするアプローチが提供される。
図3は、1つの実施形態によるロボットを制御するための方法を示すフロー図を示す。
301においては、スキルのデモンストレーションが実施される。
スキルは、少なくとも、タスク図303によって与えられるタスクの実行のために必要とされるスキルを含む。
上記のような1つのデモンストレーションスキルa∈Aについて、利用可能なデモンストレーションの集合は、P個のフレームにおいて記録されて、
Figure 0007387920000047
によって与えられる。このようなフレームは、O内の物体に直接的にアタッチされていることに注意すべきである。
302においては、それぞれのスキルごとにロボット軌道モデル(「ロボット挙動モデル」とも称される)が学習される。
例えば、前述のように、適当に選択された個数の成分Kが与えられた場合には、スキルaに関連する軌道の時空間特徴を抽象化するTP-HSMMモデル
Figure 0007387920000048
を、EM(期待値最大化法)のようなアルゴリズムを使用して学習することができる。
304においては、302で学習されたロボット軌道モデルから、合成されたロボット軌道モデルが生成される。
このために、スキルモデルの学習はさらに、それぞれのスキルごとに前提条件モデルと、最終状況モデルと、効果モデルとを学習することを含む。304においては、これらのモデルを使用して、指定されたタスクの合成モデルが構築され、作業空間の状況に応じてタスクレベル及びスキルレベルでの選択を自動的に実施することができる。簡単に言えば、前提条件モデルは、スキルの実行前にシステムがどうあるべきかをカプセル化し、その一方で、効果モデル及び最終状況モデルは、スキルの実行後にシステムがどのように変更されるべきかをカプセル化する。これらのモデルは、スキル間の互換性を測定し、システム状態の進化を追跡するので、合成モデルを計算するための重要な部分である。「スキルモデル」という用語は、スキルのためのロボット軌道モデル、前提条件モデル、最終状況モデル及び効果モデルの全てを含むと理解可能であることに注意すべきである。
図2を参照して説明したように、1つのタスクは、複数のスキルを分岐で(即ち、択一的に)かつ順番に実行することを含み得る。
したがって、合成されたモデルを生成することは、複数のスキルを順番に組み合わせるための組合せ動作と、複数のスキルを並列に組み合わせるための動作とを再帰的に適用することを含む。
図4は、順番に実行されるべきスキル401、402、403のロボット軌道モデルをカスケードして、1つの合成されたロボット軌道モデル404にするためのカスケード動作を示す。
図5は、分岐で(即ち、択一的に)実行されるべきスキル501、502、503、504のロボット軌道モデルを組み合わせて、1つの合成されたロボット軌道モデル505にするための組合せ動作を示す。
図4に示されているスキルのシーケンスをカスケードする組合せ動作は、順番に実行されるべき2つのスキルをカスケードする動作の1つ又は複数の適用を含む。同様に、図5に示されているスキルのシーケンスを組み合わせる組合せ動作は、分岐で実行されるべき2つのスキルを組み合わせる動作の1つ又は複数の適用を含む。
順番に実行されるべき2つのスキルの組合せの場合には、2つのスキルの軌道モデルがカスケードされて、以下のような1つの合成された軌道モデルにされる。
順番の2つのスキルの2つのTP-HSMM
Figure 0007387920000049
を検討すると、それらをカスケードして、
Figure 0007387920000050
にするための動作が、アルゴリズム1にまとめられている。
Figure 0007387920000051
アルゴリズム1の3行目及び4行目の計算及び更新は、それぞれ以下に与えられている式(4)及び(5)に従って実施可能であることに注意すべきである。
鍵となる重要な洞察は、
Figure 0007387920000052
がカスケードされている
Figure 0007387920000053
の最終成分(即ち、HSMM状態)に応じて、同様のモデル
Figure 0007387920000054
がそれぞれ異なるように更新されているという点において見て取ることができる。なぜなら、それぞれの最終成分は、aの実行後に
Figure 0007387920000055
のタスクパラメータのそれぞれ異なる変換を符号化し、
その結果、今度は、
Figure 0007387920000056
内の成分を更新するためのそれぞれ異なる手法がもたらされるからである。その結果、合成されたモデル
Figure 0007387920000057
は、K+K1,f・Kのサイズを有することとなり、ここで、K及びKは、それぞれ
Figure 0007387920000058
の成分の個数であり、その一方で、K1,fは、
Figure 0007387920000059
内の最終成分の個数である。より具体的には、アルゴリズム2は、以下の2つの主要な動作から構成されており、即ち、(a)
Figure 0007387920000060
内のそれぞれの最終成分から
Figure 0007387920000061
内のそれぞれの初期成分への遷移確率を計算する、(b)
Figure 0007387920000062
がカスケードされている
Figure 0007387920000063
内のそれぞれの最終成分ごとに
Figure 0007387920000064
の全ての成分を変更する、から構成されている。
1つの実施形態によれば、参考文献[1]に記載されているような前提条件モデル及び効果モデルが使用される。特に、
Figure 0007387920000065
によって表される学習された前提条件モデルは、初期ロボット状態(即ち、ロボットの初期コンフィギュレーション(例えば、位置及び/又は姿勢))のためのTP-GMM、即ち、
Figure 0007387920000066
を含み、ここで、P1,aは、初期システム状態(即ち、ロボット及び/又は物体の初期コンフィギュレーション(例えば、位置及び/又は姿勢))から導出される、選択されたタスクパラメータの集合である。さらに、ここで、
Figure 0007387920000067
によって表される最終状況モデルが導入され、この最終状況モデルは、
Figure 0007387920000068
と同様の手法で学習されるが、最終ロボット状態、即ち、
Figure 0007387920000069
について学習され、ここで、PT,aは、最終システム状態から導出される、選択されたフレームの集合である。簡単に言えば、
Figure 0007387920000070
は、スキルaを実行する前の初期コンフィギュレーションをモデル化し、その一方で、
Figure 0007387920000071
は、その後の最終コンフィギュレーションをモデル化する。さらに、
Figure 0007387920000072
によって表される学習された効果モデルは、予測される最終システム状態のためのTP-GMM、即ち、
Figure 0007387920000073
を含み、ここで、P1,aは、
Figure 0007387920000074
において定義される。これら3つのモデル間の相違は、注目に値する。即ち、
Figure 0007387920000075
のためのタスクパラメータは、(aを実行した後の)最終システム状態から計算されるが、その一方で、
Figure 0007387920000076
のためのタスクパラメータは、(aを実行する前の)初期システム状態から抽出される。表記のために、
Figure 0007387920000077
とする。
その場合、
Figure 0007387920000078
の1つの最終成分kから
Figure 0007387920000079
の1つの初期成分kへの遷移確率は、
Figure 0007387920000080
となり、ここで、KL(・||・)は、KL(カルバック・ライブラー)ダイバージェンスであり、
Figure 0007387920000081
は、フレームpのための成分kに関連するGMMであり、
Figure 0007387920000082
は、フレームpのための成分kに関連するGMMであり、
Figure 0007387920000083
は、これら2つのモデルによって共有される共通フレームの集合であり、この集合は、グローバルフレームを常時追加することによって強制的に非空にすることができる。このプロセスは、
Figure 0007387920000084
内の最終成分と、
Figure 0007387920000085
内の初期成分との全てのペアに対して繰り返される。
Figure 0007387920000086
内のあらゆる最終成分の出力確率を正規化すべきであることに注意すべきである。
第二に、
Figure 0007387920000087
の1つの最終成分kが与えられた場合には、
Figure 0007387920000088
のそれぞれの成分kを、
Figure 0007387920000089
のようにアフィン変換すべきであり、ここで、演算
Figure 0007387920000090
は、(1)の同様の演算として定義され、
Figure 0007387920000091
は、
Figure 0007387920000092
の平均から計算されたタスクパラメータであり、ここで、
oは、
Figure 0007387920000093
内の旧フレームpに関連する物体であり、
Figure 0007387920000094
は、
Figure 0007387920000095
内の新フレームである。
Figure 0007387920000096
の初期システム状態が与えられた場合に、
Figure 0007387920000097
の全ての成分を直接的に計算するためにフレームの変更が重要であることに注意すべきである。
Figure 0007387920000098
に基づいてフレームを変更することにより、
Figure 0007387920000099
のそれぞれの成分にも同様のプロセスが適用される。
最後に、アルゴリズム1で述べたように、継続確率、初期分布及び最終分布のような
Figure 0007387920000100
の他のモデルパラメータは、
Figure 0007387920000101
からわずかな変更を加えて自明に設定される。例えば、
Figure 0007387920000102
の継続確率は、複数のk個のコピーに複製され、初期分布
Figure 0007387920000103
は、
Figure 0007387920000104
の初期状態が最初のモデル
Figure 0007387920000105
の初期状態に対応するのでゼロに設定され、
Figure 0007387920000106
の最終成分は削除される。なぜなら、
Figure 0007387920000107
の最終状態は、今や、複数のインスタンスに更新された
Figure 0007387920000108
の最終成分になっているからである。
並列に実行されるべき2つのスキルの組合せの場合には、2つのスキルの軌道モデルが組み合わせられて、以下のような1つの合成された軌道モデルにされる。
並列な2つのスキルの2つのTP-HSMM
Figure 0007387920000109
を検討すると、それらを組み合わせて、
Figure 0007387920000110
にするための動作が、アルゴリズム2にまとめられている。
Figure 0007387920000111
アルゴリズム2は、合成されたTP-HSMMモデル
Figure 0007387920000112
を計算するための一方の部分と、合成されたTPGMMモデル
Figure 0007387920000113
を計算するための他方の部分との2つの部分から構成されている。最初の最も重要なステップは、
Figure 0007387920000114
内の成分の総数によって
Figure 0007387920000115
の成分の添え字を更新することである。これは、複数の成分が同一の添え字を有するそれぞれ異なるスキルを形成することを回避するためである。この後には、関連する全てのTPGMMモデルと、継続モデルと、前提条件モデルと、効果モデルとが相応に更新されている。大事なことを言い忘れていたが、合成された遷移行列{akh}を計算する際に、残りのエントリをゼロで埋めながら、
Figure 0007387920000116
の{akh
Figure 0007387920000117
の{akhとを{akh}の中に対角線上に追加することが必要である。このことはつまり、
Figure 0007387920000118
から
Figure 0007387920000119
への追加的な遷移は、並列に(即ち、順番にではない)合成されているので追加されないということを意味する。
要約すると、304において合成されたモデルを生成することは、2つのスキルの以下の動作、即ち、
1)動作1(スキルを順番にカスケードする):「スキル#1」と「スキル#2」とが(図4に示されているように)順番に接続されている場合には、アルゴリズム1に従って合成されたスキルモデルを計算する、
2)動作2(スキルを分岐で組み合わせる):「スキル#1」と「スキル#2」とが(図5に示されているように)並列に接続されている場合には、アルゴリズム2に従って合成されたスキルモデルを計算する、
を繰り返し適用することを含む。
具体的には、これら2つの動作は、以下のようにして繰り返し実施される:
A)タスク図303内のそれぞれの分岐又はサブ分岐ごとに、動作1を再帰的に適用して、それぞれの分岐のための合成されたスキルを導出する。
B)全ての並列な分岐に対して、動作2を再帰的に適用して、全ての分岐のための合成されたスキルを導出する。Aの後には、それぞれの分岐がただ1つの合成されたスキルを有することとなることに注意されたい。
C)再帰的に、全ての順番に並んだスキルに対してAを適用し、全ての並列なスキルに対してBを適用する。
例えば、図4に示されているタスクの場合、合成されたモデルを生成するためのプロセスは、図6乃至図9に示されているように、Aの適用と、次いでBの適用と、次いで再びAの適用と、次いで再びBの適用とを含む。
図6は、図2のタスク図によって与えられたようなタスクに対するAの初回の適用の後の結果を示す。
スキルモデル201と205とが601に組み合わせられており、スキルモデル203と207とが602に組み合わせられており、スキルモデル204と208とがスキルモデル603に組み合わせられている。
図7は、Bの初回の適用の後の結果を示す。スキルモデル602と603とがスキルモデル701に組み合わせられている。
図8は、Aの2回目の適用の後の結果を示す。スキルモデル701と209と210とがスキルモデル801に組み合わせられている。
図9は、Bの2回目の適用の後の結果を示す。スキルモデル601と801とがスキルモデル901に組み合わせられている。
見て取れるように、図9においては、タスク全体が単一の合成されたスキルモデル901によって表現されている。「if」条件は、必要ない。
304において合成されたロボット軌道モデルが生成されると、所与の状況においてタスクを実行することができる。
このために、305において、所与の状況における初期システム状態(コンフィギュレーション)が観測され、例えば、合成されたロボット軌道モデルに式(3)を適用することにより、合成されたロボット軌道モデル内の成分の最尤のシーケンスが決定され、この最尤のシーケンスは、(ロボットと物体とを含む)システムを、最も高い確率で目標状態へと駆動するものである。
成分のシーケンスの決定は、所与の状況下で実行されなければならないスキルの実際のシーケンスも出力する。アルゴリズムによって異なる分岐が選択された場合にはスキルのシーケンスが異なるので、このことは重要である。
306においては、実行中に、この出力に含まれている最適なスキルのシーケンスが、最適な成分のシーケンスに従うことによって実行される。状態シーケンスが与えられた場合には、例えば、線形二次追跡(LQT)を使用して、最適な軌道を検索することができる。
要約すると、種々の実施形態によれば、図10に示されているような方法が提供される。
図10は、1つの実施形態によるロボットを制御するための方法を示すフロー図1000を示す。
1001においては、複数のスキルの各々を実行するためのデモンストレーションが提供される。
1002においては、デモンストレーションに基づき、それぞれのスキルごとにロボット軌道モデルがトレーニングされ、それぞれの軌道モデルは、1つ又は複数の初期状態と、1つ又は複数の最終状態とを有する隠れセミマルコフモデルである。
1003においては、スキルのロボット軌道モデルのそれぞれの初期状態について、スキルを実行する前のロボットコンフィギュレーションの確率分布を含む前提条件モデルと、スキルのロボット軌道モデルのそれぞれの最終状態について、スキルを実行した後のロボットコンフィギュレーションの確率分布を含む最終状況モデルとが、デモンストレーションに基づき、それぞれのスキルごとにトレーニングされる。
1004においては、タスクの記述が受信され、当該タスクは、複数のスキルのうちのスキルを順番に及び/又は分岐で実行することを含む。
1005においては、以下のことにより、合成されたロボット軌道モデルが生成され、即ち、
・タスクにおいて2つのスキルが順番に実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○2つのスキルのうちの第1のスキルの軌道モデルのそれぞれの最終状態と、2つのスキルのうちの第2のスキルの軌道モデルのそれぞれの初期状態との間の遷移確率を、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布との間の類似度の関数として計算する
ことによって、スキルのロボット軌道モデルをカスケードし、
・タスクにおいて2つのスキルが分岐で実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○第1のスキルの状態と第2のスキルの状態との間の遷移確率をゼロに設定する
ことによって、スキルのロボット軌道モデルを組み合わせる
ことにより、合成されたロボット軌道モデルが生成される。
1006においては、ロボットは、合成されたロボット軌道モデルに従ってタスクを実行するように制御される。
種々の実施形態によれば、換言すれば、ロボットのためのモデルが、複数のスキルについて訓練され、これらのスキルの複数の実行を分岐で又は順番に含むタスクが実行されるべき場合には、これらのモデルがカスケードされて及び/又は組み合わせられて、1つの合成されたモデルにされる。その後、この合成されたモデルを使用して、このモデルが単一のスキルの1つのモデルであるかのようにロボットを制御することができ、即ち、例えば、タスクのための最適な状態シーケンス(と、タスクが実行されるべきロボット及び物体の初期コンフィギュレーションと)を決定して、ロボットを相応に制御することによって、ロボットを制御することができる。
図10の方法は、1つ又は複数のデータ処理ユニットを含む1つ又は複数のコンピュータによって実施可能である。「データ処理ユニット」という用語は、データ又は信号の処理を可能にする任意の種類のエンティティとして理解可能である。例えば、データ又は信号は、データ処理ユニットによって実施される少なくとも1つの(即ち、1つ又は複数の)特定の機能に従って処理可能である。データ処理ユニットは、アナログ回路、デジタル回路、混合信号回路、論理回路、マイクロプロセッサ、マイクロコントローラ、中央処理装置(CPU)、グラフィック処理装置(GPU)、デジタル信号プロセッサ(DSP)、プログラマブルゲートアレイ(FPGA)、集積回路、又は、これらの任意の組合せを含み得るものであり若しくはこれらから構成することが可能である。より詳細に後述されるそれぞれの機能を実装するための任意の他の手法も、データ処理ユニット又は論理回路として理解可能である。本明細書において詳細に説明される方法ステップのうちの1つ又は複数は、データ処理ユニットにより、データ処理ユニットによって実施される1つ又は複数の特定の機能を介して実行(例えば、実装)可能であることが理解されよう。
「ロボット」という用語は、コンピュータ制御式の機械、車両、家庭用電化製品、電動工具、製造機械、パーソナルアシスタント又はアクセス制御システムのような(動きが制御される機械部品を有する)任意の物理的システムを指すと理解可能である。
種々の実施形態は、ビデオ、レーダ、LiDAR、超音波、モーション、サーマルイメージング等のような種々のセンサからのセンサ信号を受信及び使用して、例えば、デモンストレーション又はシステム(ロボット及び物体)の状態及びコンフィギュレーション及びシナリオに関するセンサデータを取得することができる。センサデータは、処理可能である。この処理は、例えば、(センサデータが取得された環境内の)物体の存在を検出するための、センサデータの分類、又は、センサデータのセマンティックセグメンテーションの実行を含み得る。各実施形態は、機械学習システムをトレーニングして、種々のシナリオ下で種々の操作タスクを達成するように、ロボット、例えばロボットのマニピュレータを自律的に制御するために使用可能である。特に、各実施形態は、例えば組立ラインにおける操作タスクの実行の制御及び監視に適用可能である。各実施形態は、例えば、制御プロセスのための従来のGUIとシームレスに統合可能である。
本明細書において特定の実施形態について例示及び説明してきたが、本発明の範囲から逸脱することなく、図示及び説明された特定の実施形態の代わりに種々の代替的及び/又は同等の実装形態を使用してよいことは、当業者によって認識されよう。本願は、本明細書において論じられた特定の実施形態の任意の適合又は変形を網羅することが意図されている。したがって、本発明は、特許請求の範囲及びそれらの均等物によってのみ限定されることが意図されている。

Claims (12)

  1. ロボットを制御するための方法であって、
    当該方法は、
    複数のスキルの各々を実行するためのデモンストレーションを提供することと、
    前記デモンストレーションに基づき、それぞれのスキルごとにロボット軌道モデルをトレーニングすることであって、それぞれの軌道モデルは、1つ又は複数の初期状態と、1つ又は複数の最終状態とを有する隠れセミマルコフモデルである、ことと、
    前記スキルの前記ロボット軌道モデルのそれぞれの初期状態について、前記スキルを実行する前のロボットコンフィギュレーションの確率分布を含む、それぞれのスキルごとの前提条件モデルと、前記スキルの前記ロボット軌道モデルのそれぞれの最終状態について、前記スキルを実行した後のロボットコンフィギュレーションの確率分布を含む、それぞれのスキルごとの最終状況モデルとを、前記デモンストレーションに基づきトレーニングすることと、
    タスクの記述を受信することであって、当該タスクは、前記複数のスキルのうちのスキルを順番に及び/又は分岐で実行することを含む、ことと、
    以下のことにより、合成されたロボット軌道モデルを生成することであって、即ち、
    ・前記タスクにおいて2つのスキルが順番に実行されるべき場合には、
    ○前記2つのスキルの軌道モデルの状態を、前記合成されたロボット軌道モデルに含め、
    ○前記2つのスキルのうちの第1のスキルの軌道モデルのそれぞれの最終状態と、前記2つのスキルのうちの第2のスキルの軌道モデルのそれぞれの初期状態との間の遷移確率を、前記第1のスキルの最終状態に対する前記第1のスキルの最終状況モデルの確率分布と、前記第2のスキル初期状態に対する前記第2のスキルの初期モデルの確率分布との間の類似度の関数として計算する
    ことによって、前記スキルのロボット軌道モデルをカスケードし、
    ・前記タスクにおいて2つのスキルが分岐で実行されるべき場合には、
    ○前記2つのスキルの軌道モデルの状態を、前記合成されたロボット軌道モデルに含め、
    ○前記第1のスキルの状態と前記第2のスキルの状態との間の遷移確率をゼロに設定する
    ことによって、前記スキルのロボット軌道モデルを組み合わせる
    ことにより、合成されたロボット軌道モデルを生成することと、
    前記ロボットを、前記合成されたロボット軌道モデルに従って前記タスクを実行するように制御することと、
    を含む、方法。
  2. それぞれのスキルは、前記ロボットによる1つ又は複数の物体の操作を含み、
    それぞれのスキルの前記隠れセミマルコフモデルは、前記スキルが適用されるロボットコンフィギュレーション及び物体コンフィギュレーションに対応するタスクパラメータを含むタスクパラメータ化された隠れセミマルコフモデルである、
    請求項1に記載の方法。
  3. 当該方法は、
    前記スキルの前記ロボット軌道モデルのそれぞれの最終状態について、前記スキルを実行した後に前記ロボットコンフィギュレーション及び/又は前記物体コンフィギュレーションが、前記スキルが適用される初期ロボットコンフィギュレーション及び/又は初期物体コンフィギュレーションに対してどのように変化するかの確率分布を含む効果モデルを、それぞれのスキルごとにトレーニングすること
    をさらに含み、
    前記タスクにおいて2つのスキルが順番に実行されるべき場合に、前記スキルの前記ロボット軌道モデルをカスケードすることは、
    前記第2のスキルの前記タスクパラメータ化された隠れセミマルコフモデルを、そのタスクパラメータが、前記第1のスキルの前記効果モデルによって与えられる前記ロボットコンフィギュレーション及び/又は物体コンフィギュレーションに対応するタスクパラメータになるように変換すること
    を含む、請求項2に記載の方法。
  4. 当該方法は、
    前記第2のスキルの前記効果モデルを、そのタスクパラメータが、前記第1のスキルの前記効果モデルによって与えられる前記ロボットコンフィギュレーション及び/又は前記物体コンフィギュレーションに対応するタスクパラメータになるようにアフィン変換すること
    をさらに含む、請求項3に記載の方法。
  5. 当該方法は、
    前記タスクにおいて2つのスキルが順番に実行されるべき場合に、
    前記2つのスキルの前記スキルのカスケードされたロボット軌道モデル前提条件モデルとして、前記第1のスキルの前記前提条件モデルを使用することと、
    前記スキルのカスケードされたロボット軌道モデル最終状況モデルとして、前記第2のスキルの前記最終状況モデルを使用することと、
    をさらに含む、請求項1乃至4のいずれか一項に記載の方法。
  6. 当該方法は、
    前記タスクにおいて2つのスキルが分岐で実行されるべき場合に、
    前記第1のスキル前記前提条件モデルと、前記第2のスキル前記前提条件モデルとを、前記スキルの前記合成されたロボット軌道モデルの前記前提条件モデルに含めることと、
    前記第1のスキル前記最終状況モデルと、前記第2のスキル前記最終状況モデルとを、前記スキルの前記合成されたロボット軌道モデルの前記最終状況モデルに含めることと、
    をさらに含む、請求項1乃至5のいずれか一項に記載の方法。
  7. 前記第1のスキルの最終状態に対する前記第1のスキルの最終状況モデルの確率分布と、前記第2のスキル初期状態に対する前記第2のスキルの初期モデルの確率分布との間の類似度は、前記第1のスキルの最終状態に対する前記第1のスキルの最終状況モデルの確率分布と、前記第2のスキル初期状態に対する前記第2のスキルの初期モデルの確率分布とのKLダイバージェンスである、
    請求項1乃至6のいずれか一項に記載の方法。
  8. 前記前提条件モデル及び前記最終状況モデルは、タスクパラメータ化されたガウス混合モデルである、
    請求項1乃至7のいずれか一項に記載の方法。
  9. 前記合成されたロボット軌道モデルを生成することは、前記ロボット軌道モデルがタスク全体のための軌道モデルとなるように、前記タスクに従って、
    ロボット軌道モデルと、カスケードされたロボット軌道モデルと、組み合わせられたロボット軌道モデルとを繰り返しカスケードすることと、
    ロボット軌道モデルと、カスケードされたロボット軌道モデルと、組み合わせられたロボット軌道モデルとを繰り返し組み合わせることと、
    を含む、請求項1乃至8のいずれか一項に記載の方法。
  10. 請求項1乃至9のいずれか一項に記載の方法を実施するように構成されたロボットコントローラ。
  11. プロセッサによって実行された場合に、請求項1乃至9のいずれか一項に記載の方法を前記プロセッサに実施させるための命令を含むコンピュータプログラム。
  12. プロセッサによって実行された場合に、請求項1乃至9のいずれか一項に記載の方法を前記プロセッサに実施させるための命令を格納しているコンピュータ可読媒体。
JP2022574467A 2020-06-05 2021-05-06 ロボットを制御するための方法及びロボットコントローラ Active JP7387920B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102020207085.7 2020-06-05
DE102020207085.7A DE102020207085A1 (de) 2020-06-05 2020-06-05 Verfahren zum steuern eines roboters und robotersteuereinheit
PCT/EP2021/062058 WO2021244819A1 (en) 2020-06-05 2021-05-06 Method for controlling a robot and robot controller

Publications (2)

Publication Number Publication Date
JP2023529143A JP2023529143A (ja) 2023-07-07
JP7387920B2 true JP7387920B2 (ja) 2023-11-28

Family

ID=75870639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022574467A Active JP7387920B2 (ja) 2020-06-05 2021-05-06 ロボットを制御するための方法及びロボットコントローラ

Country Status (5)

Country Link
US (1) US20230202034A1 (ja)
JP (1) JP7387920B2 (ja)
CN (1) CN115605326A (ja)
DE (1) DE102020207085A1 (ja)
WO (1) WO2021244819A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021204697B4 (de) 2021-05-10 2023-06-01 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
DE102021204961B4 (de) 2021-05-17 2023-06-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung einer Robotervorrichtung
DE102021212494B4 (de) 2021-11-05 2024-07-04 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung
DE102022201116B4 (de) 2022-02-02 2024-05-16 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
DE102022124832A1 (de) 2022-09-27 2024-03-28 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Roboterlernen von Fertigkeiten aus Benutzerdemonstration und Roboter, Datenstruktur und Computerprogramm zum autonomen Ausführen von Aufgaben
CN115816441B (zh) * 2022-10-31 2023-08-08 实时侠智能控制技术有限公司 基于任务描述的机器人控制方法、装置及可读介质
CN117444978B (zh) * 2023-11-30 2024-05-14 哈尔滨工业大学 一种气动软体机器人的位置控制方法及其***、设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151442A1 (en) 2011-12-13 2013-06-13 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Method for learning task skill and robot using thereof
US20200398427A1 (en) 2019-06-21 2020-12-24 Robert Bosch Gmbh Method and system for robot manipulation planning

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103249368B (zh) * 2010-11-11 2016-01-20 约翰霍普金斯大学 人机协作机器人***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151442A1 (en) 2011-12-13 2013-06-13 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Method for learning task skill and robot using thereof
US20200398427A1 (en) 2019-06-21 2020-12-24 Robert Bosch Gmbh Method and system for robot manipulation planning

Also Published As

Publication number Publication date
JP2023529143A (ja) 2023-07-07
DE102020207085A1 (de) 2021-12-09
US20230202034A1 (en) 2023-06-29
CN115605326A (zh) 2023-01-13
WO2021244819A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
JP7387920B2 (ja) ロボットを制御するための方法及びロボットコントローラ
Paul WAVE A model based language for manipulator control
Collins et al. Quantifying the reality gap in robotic manipulation tasks
US10279474B2 (en) Method for improving operation of a robot
JP2022078002A (ja) ロボットデバイスを制御するための方法及びロボット制御装置
US20220161424A1 (en) Device and method for controlling a robotic device
KR20220155921A (ko) 로봇 디바이스를 제어하기 위한 방법
JP7458741B2 (ja) ロボット制御装置及びその制御方法及びプログラム
CN112847355B (zh) 一种基于dmp的机器人螺栓旋拧方法及***
JP2021066010A (ja) ロボットシステムの操作スキルをトレーニングするための方法及び装置
CN115319734A (zh) 用于控制机器人设备的方法
CN114290323A (zh) 用于控制机器人装置的装置和方法
CN115816459A (zh) 机器人控制方法、装置、计算机设备、存储介质和产品
Brecher et al. Towards anthropomorphic movements for industrial robots
US11673271B2 (en) Trajectory generation apparatus, multi-link system, and trajectory generation method
Yu et al. Gamma: Generalizable articulation modeling and manipulation for articulated objects
CN113867137A (zh) 用于操作机器的方法和装置
JP2023113133A (ja) ロボット装置を制御する方法
Liu et al. Robotic manipulation skill acquisition via demonstration policy learning
CN112109079B (zh) 用于机器人操控规划的方法和***
US20230141855A1 (en) Device and method for controlling a robot device
Akbulut et al. Bimanual rope manipulation skill synthesis through context dependent correction policy learning from human demonstration
CN112109079A (zh) 用于机器人操控规划的方法和***
CN117260701A (zh) 训练机器学习模型以实现控制规则的方法
Sturm et al. Body scheme learning and life-long adaptation for robotic manipulation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230123

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221228

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231031

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231115

R150 Certificate of patent or registration of utility model

Ref document number: 7387920

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150