(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-17
(45)【発行日】2023-11-28
(54)【発明の名称】ロボットを制御するための方法及びロボットコントローラ
(51)【国際特許分類】
B25J 9/22 20060101AFI20231120BHJP
G05B 19/42 20060101ALI20231120BHJP
【FI】
B25J9/22 Z
G05B19/42 D
(21)【出願番号】P 2022574467
(86)(22)【出願日】2021-05-06
(86)【国際出願番号】 EP2021062058
(87)【国際公開番号】W WO2021244819
(87)【国際公開日】2021-12-09
【審査請求日】2022-12-28
(31)【優先権主張番号】102020207085.7
(32)【優先日】2020-06-05
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】マティアス ビュアガー
(72)【発明者】
【氏名】メン グオ
【審査官】牧 初
(56)【参考文献】
【文献】特開2009-66692(JP,A)
【文献】米国特許出願公開第2013/0151442(US,A1)
【文献】米国特許出願公開第2020/0398427(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項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のいずれか一項に記載の方法を前記プロセッサに実施させるための命令を格納しているコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットを制御するための方法及びロボットコントローラに関する。
【背景技術】
【0002】
デモンストレーションに基づく学習(LfD)というアプローチを通して、ロボットのスキルをプログラミングすることができ、その際に、スキルの公称計画が、デモンストレーションに基づきロボットによって学習される。しかしながら、特定のタスクを実行するために適用されるべきスキルは、初期システム状態に応じて変化する可能性がある。例えば、タスクが、物体をピックアップすることを含む場合には、適用されるべきスキルは、その物体がどのような向きを向いているかに応じて「物体を側面からピックアップする」である場合、又は、「物体を頂部からピックアップする」である場合がある。さらに、物体が側面からピックアップされる場合には、タスクをさらに進めるために物体の向きを変える必要がある可能性がある。したがって、ロボットがいくつかのスキルを順番に並べて、変化する状況においてそれらを選択的に適用することを可能にするアプローチが望ましい。
【先行技術文献】
【非特許文献】
【0003】
【文献】L. Schwenkel、M. Guo及びM. Buerger著“Optimizing sequences of probabilistic manipulation skills learned from demonstration” in Conference on Robot Learning,2019年
【発明の概要】
【発明が解決しようとする課題】
【0004】
L. Schwenkel、M. Guo及びM. Buerger著の“Optimizing sequences of probabilistic manipulation skills learned from demonstration” in Conference on Robot Learning,2019年(以下、参考文献[1]と称する)には、スキル中心のアプローチが記載されており、ここでは、それぞれのスキルが種々のシナリオ下で個別に学習されるが、特定のタスクにはアタッチされていない。
【課題を解決するための手段】
【0005】
種々の実施形態によれば、ロボットを制御するための方法であって、当該方法は、
複数のスキルの各々を実行するためのデモンストレーションを提供することと、
デモンストレーションに基づき、それぞれのスキルごとにロボット軌道モデルをトレーニングすることであって、それぞれの軌道モデルは、1つ又は複数の初期状態と、1つ又は複数の最終状態とを有する隠れセミマルコフモデルである、ことと、
スキルのロボット軌道モデルのそれぞれの初期状態について、スキルを実行する前のロボットコンフィギュレーションの確率分布を含む、それぞれのスキルごとの前提条件モデルと、スキルのロボット軌道モデルのそれぞれの最終状態について、スキルを実行した後のロボットコンフィギュレーションの確率分布を含む、それぞれのスキルごとの最終状況モデルとを、デモンストレーションに基づきトレーニングすることと、
タスクの記述を受信することであって、当該タスクは、複数のスキルのうちのスキルを順番に及び/又は分岐で実行することを含む、ことと、
以下のことにより、合成されたロボット軌道モデルを生成することであって、即ち、
・タスクにおいて2つのスキルが順番に実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○2つのスキルのうちの第1のスキルの軌道モデルのそれぞれの最終状態と、2つのスキルのうちの第2のスキルの軌道モデルのそれぞれの初期状態との間の遷移確率を、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布との間の類似度の関数として計算する
ことによって、スキルのロボット軌道モデルをカスケードし、
・タスクにおいて2つのスキルが分岐で実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○第1のスキルの状態と第2のスキルの状態との間の遷移確率をゼロに設定する
ことによって、スキルのロボット軌道モデルを組み合わせる
ことにより、合成されたロボット軌道モデルを生成することと、
ロボットを、合成されたロボット軌道モデルに従ってタスクを実行するように制御することと、
を含む、方法が提供される。
【0006】
さらなる実施形態によれば、上述の方法を実行するように構成された、ロボットコントローラが提供される。
【0007】
ロボットを制御するための上記の方法及び上記のロボットコントローラにより、1つの指定された操作タスクを実行するための複数の操作スキルを自動的に合成することが可能となる。したがって、ユーザ又はオペレータは、タスクを実行するための種々のスキルの中から選択するための分岐条件を手動で定義する必要がなくなる。換言すれば、タスク図を指定した後、このタスク図が複数のスキルを分岐で含む場合であっても、即ち、現在のシステム状態(例えば、ロボット及び/又は物体のコンフィギュレーション)に応じてそれぞれ異なるスキルを選択する必要がある場合であっても、オペレータは、このタスク図を直接的に実行することができる。
【0008】
ロボットのジョイントの状態、操作されている物体の姿勢のように、分岐条件を評価するためには種々のセンサに直接的にアクセスする必要があるので、これによって操作タスクを実行する際の労力が大幅に節約される。正しいデータの読み取り及び記録には、かなりの時間がかかる場合がある。さらに、そのようなデータは、ソースコードに直接的に書き込まれる必要があり、これにより、ソースコードに直接的にアクセスすることが必要となるであろう。さらに、分岐条件の組合せによって状態空間全体をカバーすることができず、その結果、条件が満たされない状況が発生して失敗をもたらすことがよくあるので、提供される本制御方法及び本ロボットコントローラは、タスク実行のロバスト性を高めるものである。
【0009】
以下、種々の実施例が記載されている。
【0010】
実施例1は、上述のようなロボットを制御するための方法である。
【0011】
実施例2は、それぞれのスキルが、ロボットによる1つ又は複数の物体の操作を含み、それぞれのスキルの隠れセミマルコフモデルが、スキルが適用されるロボットコンフィギュレーション及び物体コンフィギュレーションに対応するタスクパラメータを含むタスクパラメータ化された隠れセミマルコフモデルである、実施例1に記載の方法である。
【0012】
特に、種々の実施形態は、1つ又は複数の物体を取り扱うためのロボットの効率的なトレーニング及び制御を可能にする。
【0013】
実施例3は、スキルのロボット軌道モデルのそれぞれの最終状態について、スキルを実行した後にロボットコンフィギュレーション及び/又は物体コンフィギュレーションが、スキルが適用される初期ロボットコンフィギュレーション及び/又は初期物体コンフィギュレーションに対してどのように変化するかの確率分布を含む効果モデルを、それぞれのスキルごとにトレーニングすることをさらに含み、タスクにおいて2つのスキルが順番に実行されるべき場合に、スキルのロボット軌道モデルをカスケードすることが、第2のスキルのタスクパラメータ化された隠れセミマルコフモデルを、そのタスクパラメータが、第1のスキルの効果モデルによって与えられるロボットコンフィギュレーション及び/又は物体コンフィギュレーションに対応するタスクパラメータになるように変換することを含む、実施例2に記載の方法である。
【0014】
したがって、スキルのシーケンスにわたって制御軌道が正しく計算されることを保証することができる。例えば、モデルの変換により、第2のスキルの関連するグローバルガウス分布を、第1のスキルの初期状態に基づいて直接的に計算することができることが保証される。次に、グローバルガウス分布を使用して、例えばビタビアルゴリズムを適用するための観測確率を計算することができる。
【0015】
実施例4は、第2のスキルの効果モデルを、そのタスクパラメータが、第1のスキルの効果モデルによって与えられるロボットコンフィギュレーション及び/又は物体コンフィギュレーションに対応するタスクパラメータになるようにアフィン変換することをさらに含む、実施例3に記載の方法である。
【0016】
これにより、例えばロボットによって操作されるべき1つ又は複数の物体を用いるシナリオにおいて、スキルのシーケンスにわたって制御軌道を正しく計算することが可能となる。
【0017】
実施例5は、タスクにおいて2つのスキルが順番に実行されるべき場合に、2つのスキルのスキルのカスケードされたロボット軌道モデルの前提条件モデルとして、第1のスキルの前提条件モデルを使用することと、スキルのカスケードされたロボット軌道モデルの最終状況モデルとして、第2のスキルの最終状況モデルを使用することとをさらに含む、実施例1から4までのいずれか1つに記載の方法である。
【0018】
スキルのカスケードのための前提条件モデルを計算することにより、さらなるスキルを追加することができ、例えば、順番又は分岐での3つ以上のスキルのための1つの合成されたモデルを決定することができる。これにより、複雑なタスクのためのトレーニング及び制御が可能となる。
【0019】
実施例6は、タスクにおいて2つのスキルが分岐で実行されるべき場合に、第1のスキルの前提条件モデルと、第2のスキルの前提条件モデルとを、スキルの合成されたロボット軌道モデルの前提条件モデルに含めることと、第1のスキルの最終状況モデルと、第2のスキルの最終状況モデルとを、スキルの合成されたロボット軌道モデルの最終状況モデルに含めることとをさらに含む、実施例1から5までのいずれか1つに記載の方法である。
【0020】
スキルの分岐のための前提条件モデルを計算することにより、さらなるスキルを追加することができ、例えば、順番又は分岐での3つ以上のスキルのための1つの合成されたモデルを決定することができる。これにより、複雑なタスクのためのトレーニング及び制御が可能となる。
【0021】
実施例7は、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布との間の類似度が、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布とのKLダイバージェンスである、実施例1から6までのいずれか1つに記載の方法である。
【0022】
KLダイバージェンスを使用することにより、スキルのシーケンスのための軌道モデルを効率的に連結することが可能となる。
【0023】
実施例8は、前提条件モデル及び最終状況モデルが、タスクパラメータ化されたガウス混合モデルである、実施例1から7までのいずれか1つに記載の方法である。
【0024】
例えば、それぞれのタスクパラメータ値ごとにガウス分布が決定される。タスクパラメータ化により、トレーニングされたモデルを種々のシナリオ(即ち、種々の初期システム状態(コンフィギュレーション))に適用することが可能となる。
【0025】
実施例9は、合成されたロボット軌道モデルを生成することが、ロボット軌道モデルがタスク全体のための軌道モデルとなるように、タスクに従って、ロボット軌道モデルと、カスケードされたロボット軌道モデルと、組み合わせられたロボット軌道モデルとを繰り返しカスケードすることと、ロボット軌道モデルと、カスケードされたロボット軌道モデルと、組み合わせられたロボット軌道モデルとを繰り返し組み合わせることとを含む、実施例1から8までのいずれか1つに記載の方法である。
【0026】
したがって、複雑なタスクのための合成されたモデルを反復的に決定することができ、これにより、複雑なタスクのためのロバスト性が保証され、分岐条件の複雑な階層を定義する必要性からオペレータが解放される。
【0027】
実施例10は、実施例1から9までのいずれか1つに記載の方法を実施するように構成されたロボットコントローラである。
【0028】
実施例11は、プロセッサによって実行された場合に、実施例1から9までのいずれか1つに記載の方法をプロセッサに実施させるための命令を含むコンピュータプログラムである。
【0029】
実施例12は、プロセッサによって実行された場合に、実施例1から9までのいずれか1つに記載の方法をプロセッサに実施させるための命令を格納しているコンピュータ可読媒体である。
【0030】
図面においては、同様の参照符号は、全般的にそれぞれ異なる図面を通して同様の部分を指す。図面は、必ずしも縮尺通りではなく、その代わりに全般的に本発明の原理を説明することに重点が置かれている。以下の記載においては、以下の図面を参照しながら種々の態様について説明する。
【図面の簡単な説明】
【0031】
【
図2】複数のスキルを順番にかつ分岐で含む1つの操作タスクを示すフロー図である。
【
図3】1つの実施形態によるロボットを制御するための方法を示すフロー図である。
【
図4】順番に実行されるべきスキルのロボット軌道モデルをカスケードして、1つの合成されたロボット軌道モデルにするためのカスケード動作を示す図である。
【
図5】分岐で(即ち、択一的に)実行されるべきスキルのロボット軌道モデルを組み合わせて、1つの合成されたロボット軌道モデルにするための組合せ動作を示す図である。
【
図6】
図2のタスク図に対してカスケード動作を適用した後に結果的にもたらされるタスク図を示す図である。
【
図7】
図6のタスク図に対して組合せ動作を適用した後に結果的にもたらされるタスク図を示す図である。
【
図8】
図7のタスク図に対してカスケード動作を適用した後に結果的にもたらされるタスク図を示す図である。
【
図9】
図8のタスク図に対して組合せ動作を適用した後の結果的にもたらされるタスク図を示す図である。
【
図10】1つの実施形態によるロボットを制御するための方法を示すフロー図である。
【発明を実施するための形態】
【0032】
以下の詳細な説明は、添付の図面を参照し、それらの図面には、本発明を実施可能な本開示の具体的な詳細及び態様が例示として示されている。他の態様を使用するものとしてもよく、本発明の範囲から逸脱することなく、構造的、論理的又は電気的な変更を加えることができる。本開示のいくつかの態様を本開示の1つ又は複数の他の態様と組み合わせて、新しい態様を形成することができることから、本開示の種々の態様は、必ずしも相互に排他的なものではない。
【0033】
以下、種々の実施例についてさらに詳しく説明する。
【0034】
【0035】
ロボット100は、ロボットアーム101を含み、例えば、ワークピース(又は、1つ又は複数の他の物体)を処理するための又は組み立てるための産業用ロボットアームを含む。ロボットアーム101は、マニピュレータ102、103、104及びこれらのマニピュレータ102、103、104を支持する基台(又は支持体)105を含む。「マニピュレータ」という用語は、ロボットアーム101の可動部材を指し、この可動部材を動作させることによって、例えばある1つのタスクを実行するために、環境との物理的インタラクションが可能となる。制御のために、ロボット100は、(ロボット)コントローラ106を含み、このコントローラ106は、制御プログラムに従って環境とのインタラクションを実施するように構成されている。マニピュレータ102、103、104のうち(支持体105から最も遠い)最後の部材104は、エンドエフェクタ104とも称され、溶接トーチ、把持器具、塗装設備等のような1つ又は複数のツールを含み得る。
【0036】
(支持体105により近い)他のマニピュレータ102、103は、ポジショニング装置を構成することができ、これにより、エンドエフェクタ104と一緒に、このエンドエフェクタ104を端部に有するロボットアーム101が提供される。ロボットアーム101は、(場合によってはその端部にツールを有する)人間の腕と同様の機能を提供することができる機械式のアームである。
【0037】
ロボットアーム101は、マニピュレータ102、103、104を互いにかつ支持体105と相互接続するジョイント部材107、108、109を含み得る。ジョイント部材107、108、109は、1つ又は複数のジョイントを有し得るものであり、それらのジョイントの各々によって、関連するマニピュレータに対して互いに相対的に回転可能な運動(即ち、回転運動)及び/又は並進運動(即ち、変位)をもたらすことができる。マニピュレータ102、103、104の運動を、コントローラ106により制御されるアクチュエータを用いて開始することができる。
【0038】
「アクチュエータ」という用語は、駆動されたことに応答して、メカニズム又はプロセスに作用を及ぼすように適応化された構成要素であると解することができる。アクチュエータは、コントローラ106によって発せられた命令(いわゆるアクティベーション)を実施して、機械的運動を生じさせることができる。駆動に応答して電気エネルギを機械エネルギに変換するように、アクチュエータ、例えば電気機械変換器を構成することができる。
【0039】
「コントローラ」という用語は、任意の種類のロジック実装エンティティとして理解可能であり、このロジック実装エンティティは、例えば、記憶媒体に格納されたソフトウェア、ファームウェア、又は、これらの組合せを実行可能な回路及び/又はプロセッサを含み得るものであり、例えば、本実施例においてはアクチュエータに命令を発することができる。例えばプログラムコード(例えば、ソフトウェア)によって、システムの、本実施例においてはロボットの動作を制御するように、コントローラを構成することができる。
【0040】
本実施例によれば、コントローラ106は、1つ又は複数のプロセッサ110と、コード及びデータを格納するメモリ111とを含み、プロセッサ110は、このコード及びデータに基づいてロボットアーム101を制御する。種々の実施形態によれば、コントローラ106は、メモリ111に格納された統計モデル112に基づき、ロボットアーム101を制御する。
【0041】
ロボット100は、デモンストレーションに基づく学習(LfD)というアプローチを活用して、ある1つのタスクの実行又は人間のパートナーとの協働を学習することができる。人間のデモンストレーションを、ロボットのためのタスクの公称計画を表している確率モデル(統計モデルとも称される)によって、符号化することができる。次いで、コントローラ106は、ロボット軌道モデルとも称される統計モデルを使用し、場合によっては人間のパートナーと環境との双方の状態の関数として、所望のロボット運動を生成することができる。
【0042】
LfDの基本的な着想は、GMMのような指定されたスキルモデルを一握りのデモンストレーションにフィットさせることである。M個のデモンストレーションが行われるものとし、それらのデモンストレーションの各々は、N=Σ
mT
m個の全ての観測のデータセット
【数1】
について、T
m個のデータ点を含み、ここで、
【数2】
である。また、(着目対象物体のローカル座標系又はローカル座標フレームのようなタスクパラメータによって定められた)それぞれ異なるP個の座標系の視点から、複数の同一のデモンストレーションが記録されることも前提とする。このようなデータを取得するための1つの一般的な方法は、デモンストレーションを静的なグローバルフレームから
【数3】
によってフレームpに変換することである。ここで、
【数4】
は、ワールド(即ち、グローバル)フレームに対する(ローカル)フレームpの並進及び回転である。次に、TP-GMMが、モデルパラメータ
【数5】
によって記述され、ここで、Kは、混合モデルにおけるガウス成分の個数を表し、π
kは、それぞれの成分の事前確率であり、
【数6】
は、フレームp内のk番目のガウス成分のパラメータである。
【0043】
標準的なGMMとは異なり、上述の混合モデルを、それぞれのフレームごとに独立して学習させることができない。実際、混合係数πkは、全てのフレームによって共有され、フレームp内のk番目の成分は、グローバルフレーム内の対応するk番目の成分にマッピングされなければならない。期待値最大化法(EM)は、そのようなモデルを学習するために十分に確立された方法である。
【0044】
一旦学習されたならば、学習されたスキルについて軌道を再現するために、実行中、TP-GMMを使用することができる。即ち、観測されたフレーム
【数7】
が与えられた場合には、学習されたTP-GMMは、
【数8】
のように、複数の異なるフレームにわたってアフィン変換されたガウス成分を乗算することにより、パラメータ
【数9】
を有する単一のGMMに変換され、ここで、それぞれのフレームpにおける更新されたガウスのパラメータは、
【数10】
のように計算される。タスクのパラメータは、時間の経過と共に変化する可能性があるが、表記のために時間の添え字は省略されている。
【0045】
隠れセミマルコフモデル(HSMM)は、基礎を成す確率過程の時間情報を埋め込むことによって、標準隠れマルコフモデル(HMM)を拡張する。即ち、HMMの場合には基礎を成す隠れ過程がマルコフであるとみなされ、即ち、次の状態への遷移の確率は現在の状態のみに依存するのに対し、HSMMの場合には状態過程がセミマルコフであるとみなされる。このことはつまり、次の状態への遷移が、現在の状態にも、その状態に入ってから経過した時間にも依存するということを意味する。それらのパラメータを、TP-GMMと組み合わせて、デモンストレーションの時空間特徴を学習するためのロボットスキル符号化に適用することができる。より具体的には、タスクパラメータ化されたHSMM(TP-HSMM)モデルは、
【数11】
のように定義され、ここで、a
hkは、状態hからkへの遷移確率であり、
【数12】
は、状態kの継続についてのガウス分布、即ち、所定数の連続したステップの間に状態kに留まっている確率を表し、
【数13】
は、状態kに対応する観測確率を表す、先ほど紹介したTP-GMMに等しい。ここで、状態の個数が、「アタッチされた」TP-GMMにおけるガウス成分の個数に対応することに注意されたい。
【0046】
観測されたデータ点
【数14】
の特定の(部分的な)シーケンスが与えられた場合に、
【数15】
内の関連する状態シーケンスが、
【数16】
によって与えられるということを仮定する。データ点
【数17】
が、状態k(即ち、s
t=k)に属する確率は、フォワード変数
【数18】
によって与えられ、即ち、
【数19】
であり、ここで、
【数20】
は、出力確率であり、
【数21】
は、タスクパラメータが与えられた場合の(1)から導出される。さらに、T
mまでの将来のステップを予測するために、再生中に、同一のフォワード変数を使用することもできる。
【0047】
しかしながら、このケースにおいては、将来の観測が利用できないので、遷移及び継続の情報のみが使用され、即ち、(2)において全てのk及びl>tについて
【数22】
を設定することによって使用される。最後に、最尤の状態のシーケンス
【数23】
が、
【数24】
を選択することよって決定される。
【0048】
ここで、ロボット状態の所望の最終観測を、
【数25】
として与えるものとし、ここで、Tは、スキルの計画対象期間(例えば、デモンストレーションにわたる平均長さ)である。さらに、初期ロボット状態は、
【数26】
として観測される。学習されたモデル
【数27】
が与えられた場合のスキルの実行(即ち、スキルの再現)のために、
【数28】
のみが与えられた場合の最尤の状態シーケンス
【数29】
が構築される。
【0049】
フォワード変数を使用した再現は、そのケースにおいては直接的には不可能である。なぜなら、方程式(2)におけるフォワード変数は、周辺確率が最も高い状態のシーケンスを計算するが、その一方で、所望されているのは、
【数30】
が与えられた場合の、結合確率が最も高い状態シーケンスであるからである。結果として、(2)を使用した場合に、返却されたシーケンス
【数31】
が、デモンストレーションの時空間パターンと、最終観測との両方に一致するという保証が存在しない。物体をピックアップするという例に関して言えば、エンドエフェクタが物体の頂部にあることが所望の最終コンフィギュレーションである場合であっても、「側面からのピッキング」に相当する最尤のシーケンスが返却されてしまう可能性がある。
【0050】
この問題を克服するために、1つの実施形態によれば、ビタビアルゴリズムの修正が使用される。古典的なビタビアルゴリズムを使用して、観測されたイベントの所与のストリームを結果的もたらすHMMにおける最尤の状態シーケンス(ビタビパスとも称される)を見つけ出すことができる。1つの実施形態によれば、以下の2つの主な側面において、即ち、(a)HMMの代わりにHSMM上で動作する、さらに重要なことに、(b)最初と最後の観測以外のほとんどの観測が欠落している、という側面において、これとは異なるアプローチが使用される。具体的には、観測が欠如している場合には、ビタビアルゴリズムは、
【数32】
のようになり、ここで、
【数33】
は、状態jの継続確率であり、
δ
t(j)は、システムが時刻tでは状態jにあってかつt+1では状態jにないという尤度であり、そして、
【数34】
であり、ここで、
【数35】
は、
【数36】
が与えられた場合の(1)からの
【数37】
内のグローバルガウス成分jである。即ち、それぞれの時刻tおいて、それぞれの状態jごとに、方程式δ
t(j)を最大化する2つの引数が記録され、単純なバックトラッキング手順を使用して、最尤の状態シーケンス
【数38】
が見つけ出される。換言すれば、上記のアルゴリズムは、
【数39】
から開始して最終観測
【数40】
をもたらす、スキルaのための最尤のシーケンス
【数41】
を導出する。
【0051】
ロボットのタスク空間は、時間の経過と共に変化するエンドエフェクタの姿勢によって(位置及び向きを用いて)表現されるので、従来のユークリッドに基づく方法は、このようなデータの処理のためには不十分である。したがって、種々の実施形態によれば、ロボットのタスク空間にリーマン多様体Mが与えられている。簡単に言えば、多様体M内のそれぞれの点xごとに、接空間TxMが存在する。これにより、多様体の制約と幾何学的に一致しながら、ローカルでユークリッド動作を実施することが可能となる。
【0052】
T
xMとMとの間の点を写像するために、指数写像及び対数写像を使用することができる。指数写像Exp
x:T
xM→Mは、測地線距離を維持しながら点xの接空間内の点を多様体上の点に写像する。逆の演算は、対数写像Log
x:M→T
xMと称される。もう1つの有用な演算は、歪みを導入することなく接空間間で要素を移動させる平行移動
【数42】
である。前述の演算の正確な形式は、多様体に関連するリーマン計量に依存している。種々の実施形態によれば、観測された運動パターンを符号化するリーマン正規分布を使用して、Mに関する統計を適当に計算するために、かつ、リーマン最適コントローラを使用して、タスク計画(即ち、順番付けられたスキル)に対応する制御アクションを検索するために、リーマン多様体が使用される。
【0053】
以下の説明においては、多自由度のロボットアーム101が例として検討され、このロボットアーム101のエンドエフェクタ104は、(デカルト位置、方向四元数及びグリッパ状態を記述する)状態
【数43】
を有し、既知の静的な作業空間内で動作する。また、アーム101が到達する範囲内には、O={o
1,o
2,・・・,o
J}によって表される着目対象物体が存在しており、これらの着目対象物体の各々は、状態
【数44】
を有する。簡単にするために、全体的なシステム状態は、
【数45】
によって表される。
【0054】
このセットアップ内で、人間のユーザは、特定の操作スキルのために1つ又は複数の物体を操作するために、アーム上でのいくつかの運動感覚のデモンストレーションを実施する。デモンストレーションされたスキルのセットをA={a1,a2,・・・,aH}によって表すこととする。さらに、スキルa∈Aの場合、関与している物体の集合は、Oaによって与えられ、利用可能なデモンストレーションの集合は、Daによって表される。全てのデモンストレーションは、上で紹介した物体中心の構造に従っていることに注意すべきであり、即ち、全てのデモンストレーションは、一般的にOa内の物体に関連付けられる複数のフレームから記録され、これらのフレームは、多くの場合、作業空間内の物体の姿勢を表現する。例えば、「ペグをシリンダに挿入する」というスキルには、「ペグ」及び「シリンダ」という物体が関与しており、関連するデモンストレーションは、ロボットと、「ペグ」及び「シリンダ」との両方のフレームから記録される。
【0055】
以下において検討される(操作)タスクは、デモンストレーションされたスキルAから選択されたスキル
【数46】
のシーケンスから構成されている。例えば、挿入タスクには、「キャップをピッキングする、キャップの向きを変える、再びキャップをピッキングする、キャップを挿入する」が関与している。タスクの最後に、ロボットと物体とを含むシステムの所望の最終状態として、目標コンフィギュレーションGに到達する。
【0056】
工場において操作タスクを整理する一般的な方法は、線図又はフローチャートを使用することである。これらは、通常、GUI(グラフィカルユーザインタフェース)でのドラッグアンドドロップによって定義される。このようなアプローチは、以下の2つの条件、即ち、(1)タスクが単純であり、スキルの線形のシーケンスとして指定される、(2)それぞれのスキルは、分岐を有しておらず単純である、が成り立っている場合には十分である。このようにして、それぞれのスキルを、指定されたように順番に起動して実行することができる。
【0057】
しかしながら、多くの場合、上記の条件のいずれかが成り立たない。例えば、所望のタスクは、種々の作業空間の状況において複数の実行選択肢を有し、又は、内部のいくつかのスキルは、種々の状況において複数の実行選択肢を有する。
【0058】
図2は、複数のスキルを順番に(in sequence)かつ分岐で(in branches)含む1つの操作タスクを示すフロー図(又はタスク図)200を示す。
【0059】
例えば、操作タスクは、第1のジョブ201として、物体をピックアップすることを含む。このことはつまり、ロボットが、物体の初期コンフィギュレーション(即ち、状態)に応じて、202の「物体を頂部からピックアップする」というスキル、203の「物体を左からピックアップする」というスキル、又は、204の「物体を右からピックアップする」というスキルを実行しなければならないということを意味し得る。したがって、タスクは、これらのスキルの実行を分岐で含み、即ち、これらのスキルは、択一的に実行されるべきであり、つまり、これらのスキルのうちの1つだけが実行されるべきである。第1の動作201、即ち、202、203又は204のスキルのうちの1つの実行後には、1つ又は複数のスキルが順番に続く。例えば、202の「物体を頂部からピックアップする」というスキルが実行された場合には、この後に、205の「物体をアタッチする」というスキルが順番に続く。
【0060】
203又は204のそれぞれのスキルが実行された場合には、この後に、向きを変えるジョブ206が続く必要があり、即ち、それぞれのケースにおいて207又は208の向きを変えるスキルが続く必要がある。これらの向きを変えるスキルは、向きを変える方向という点でそれぞれ異なることができる。次いで、向きを変える動作206の後に、209の「物体を頂部からピックアップする」というスキルの実行が続き、最後に、210の「物体をアタッチする」というスキルの実行が続く。
【0061】
分岐作成は、一般的に「if」条件として、例えば、「物体が直立している場合」211、「物体が左に倒れている場合」212及び「物体が右に倒れている場合」213のような分岐条件211、212、213を手動で指定することによって対処可能である。このような条件を設計するために、システム状態の領域を、この条件が成り立つための有効性の領域として手動で測定することができる。
【0062】
このことはつまり、ロボットは、事前にインストールされた(工場から事前にプログラミングされた、又は、デモンストレーションによって教示された)操作スキルの集合を有し得るものであり、特定の組み立てタスクに関しては、オペレータが、このタスクを指定する(例えば、
図2のような)線図を手動で構築するということを意味し、この線図においては、構築ブロックは、学習されたスキルの集合である。(場合によってはタスクレベルとスキルレベルとの両方での)分岐に起因して、オペレータは、それぞれの分岐ごとに分岐条件を手動で定義することが必要である。
【0063】
種々の実施形態によれば、特に分岐条件を手動で定義する必要性を回避することを可能にするアプローチが提供される。
【0064】
図3は、1つの実施形態によるロボットを制御するための方法を示すフロー図を示す。
【0065】
301においては、スキルのデモンストレーションが実施される。
【0066】
スキルは、少なくとも、タスク
図303によって与えられるタスクの実行のために必要とされるスキルを含む。
【0067】
上記のような1つのデモンストレーションスキルa∈Aについて、利用可能なデモンストレーションの集合は、P個のフレームにおいて記録されて、
【数47】
によって与えられる。このようなフレームは、O
a内の物体に直接的にアタッチされていることに注意すべきである。
【0068】
302においては、それぞれのスキルごとにロボット軌道モデル(「ロボット挙動モデル」とも称される)が学習される。
【0069】
例えば、前述のように、適当に選択された個数の成分Kが与えられた場合には、スキルaに関連する軌道の時空間特徴を抽象化するTP-HSMMモデル
【数48】
を、EM(期待値最大化法)のようなアルゴリズムを使用して学習することができる。
【0070】
304においては、302で学習されたロボット軌道モデルから、合成されたロボット軌道モデルが生成される。
【0071】
このために、スキルモデルの学習はさらに、それぞれのスキルごとに前提条件モデルと、最終状況モデルと、効果モデルとを学習することを含む。304においては、これらのモデルを使用して、指定されたタスクの合成モデルが構築され、作業空間の状況に応じてタスクレベル及びスキルレベルでの選択を自動的に実施することができる。簡単に言えば、前提条件モデルは、スキルの実行前にシステムがどうあるべきかをカプセル化し、その一方で、効果モデル及び最終状況モデルは、スキルの実行後にシステムがどのように変更されるべきかをカプセル化する。これらのモデルは、スキル間の互換性を測定し、システム状態の進化を追跡するので、合成モデルを計算するための重要な部分である。「スキルモデル」という用語は、スキルのためのロボット軌道モデル、前提条件モデル、最終状況モデル及び効果モデルの全てを含むと理解可能であることに注意すべきである。
【0072】
図2を参照して説明したように、1つのタスクは、複数のスキルを分岐で(即ち、択一的に)かつ順番に実行することを含み得る。
【0073】
したがって、合成されたモデルを生成することは、複数のスキルを順番に組み合わせるための組合せ動作と、複数のスキルを並列に組み合わせるための動作とを再帰的に適用することを含む。
【0074】
図4は、順番に実行されるべきスキル401、402、403のロボット軌道モデルをカスケードして、1つの合成されたロボット軌道モデル404にするためのカスケード動作を示す。
【0075】
図5は、分岐で(即ち、択一的に)実行されるべきスキル501、502、503、504のロボット軌道モデルを組み合わせて、1つの合成されたロボット軌道モデル505にするための組合せ動作を示す。
【0076】
図4に示されているスキルのシーケンスをカスケードする組合せ動作は、順番に実行されるべき2つのスキルをカスケードする動作の1つ又は複数の適用を含む。同様に、
図5に示されているスキルのシーケンスを組み合わせる組合せ動作は、分岐で実行されるべき2つのスキルを組み合わせる動作の1つ又は複数の適用を含む。
【0077】
順番に実行されるべき2つのスキルの組合せの場合には、2つのスキルの軌道モデルがカスケードされて、以下のような1つの合成された軌道モデルにされる。
【0078】
順番の2つのスキルの2つのTP-HSMM
【数49】
を検討すると、それらをカスケードして、
【数50】
にするための動作が、アルゴリズム1にまとめられている。
【表1】
【0079】
アルゴリズム1の3行目及び4行目の計算及び更新は、それぞれ以下に与えられている式(4)及び(5)に従って実施可能であることに注意すべきである。
【0080】
鍵となる重要な洞察は、
【数51】
がカスケードされている
【数52】
の最終成分(即ち、HSMM状態)に応じて、同様のモデル
【数53】
がそれぞれ異なるように更新されているという点において見て取ることができる。なぜなら、それぞれの最終成分は、a
1の実行後に
【数54】
のタスクパラメータのそれぞれ異なる変換を符号化し、
その結果、今度は、
【数55】
内の成分を更新するためのそれぞれ異なる手法がもたらされるからである。その結果、合成されたモデル
【数56】
は、K
1+K
1,f・K
2のサイズを有することとなり、ここで、K
1及びK
2は、それぞれ
【数57】
の成分の個数であり、その一方で、K
1,fは、
【数58】
内の最終成分の個数である。より具体的には、アルゴリズム2は、以下の2つの主要な動作から構成されており、即ち、(a)
【数59】
内のそれぞれの最終成分から
【数60】
内のそれぞれの初期成分への遷移確率を計算する、(b)
【数61】
がカスケードされている
【数62】
内のそれぞれの最終成分ごとに
【数63】
の全ての成分を変更する、から構成されている。
【0081】
1つの実施形態によれば、参考文献[1]に記載されているような前提条件モデル及び効果モデルが使用される。特に、
【数64】
によって表される学習された前提条件モデルは、初期ロボット状態(即ち、ロボットの初期コンフィギュレーション(例えば、位置及び/又は姿勢))のためのTP-GMM、即ち、
【数65】
を含み、ここで、P
1,aは、初期システム状態(即ち、ロボット及び/又は物体の初期コンフィギュレーション(例えば、位置及び/又は姿勢))から導出される、選択されたタスクパラメータの集合である。さらに、ここで、
【数66】
によって表される最終状況モデルが導入され、この最終状況モデルは、
【数67】
と同様の手法で学習されるが、最終ロボット状態、即ち、
【数68】
について学習され、ここで、P
T,aは、最終システム状態から導出される、選択されたフレームの集合である。簡単に言えば、
【数69】
は、スキルaを実行する前の初期コンフィギュレーションをモデル化し、その一方で、
【数70】
は、その後の最終コンフィギュレーションをモデル化する。さらに、
【数71】
によって表される学習された効果モデルは、予測される最終システム状態のためのTP-GMM、即ち、
【数72】
を含み、ここで、P
1,aは、
【数73】
において定義される。これら3つのモデル間の相違は、注目に値する。即ち、
【数74】
のためのタスクパラメータは、(aを実行した後の)最終システム状態から計算されるが、その一方で、
【数75】
のためのタスクパラメータは、(aを実行する前の)初期システム状態から抽出される。表記のために、
【数76】
とする。
【0082】
その場合、
【数77】
の1つの最終成分k
fから
【数78】
の1つの初期成分k
iへの遷移確率は、
【数79】
となり、ここで、KL(・||・)は、KL(カルバック・ライブラー)ダイバージェンスであり、
【数80】
は、フレームpのための成分k
fに関連するGMMであり、
【数81】
は、フレームpのための成分k
iに関連するGMMであり、
【数82】
は、これら2つのモデルによって共有される共通フレームの集合であり、この集合は、グローバルフレームを常時追加することによって強制的に非空にすることができる。このプロセスは、
【数83】
内の最終成分と、
【数84】
内の初期成分との全てのペアに対して繰り返される。
【数85】
内のあらゆる最終成分の出力確率を正規化すべきであることに注意すべきである。
【0083】
第二に、
【数86】
の1つの最終成分k
fが与えられた場合には、
【数87】
のそれぞれの成分kを、
【数88】
のようにアフィン変換すべきであり、ここで、演算
【数89】
は、(1)の同様の演算として定義され、
【数90】
は、
【数91】
の平均から計算されたタスクパラメータであり、ここで、
oは、
【数92】
内の旧フレームpに関連する物体であり、
【数93】
は、
【数94】
内の新フレームである。
【数95】
の初期システム状態が与えられた場合に、
【数96】
の全ての成分を直接的に計算するためにフレームの変更が重要であることに注意すべきである。
【数97】
に基づいてフレームを変更することにより、
【数98】
のそれぞれの成分にも同様のプロセスが適用される。
【0084】
最後に、アルゴリズム1で述べたように、継続確率、初期分布及び最終分布のような
【数99】
の他のモデルパラメータは、
【数100】
からわずかな変更を加えて自明に設定される。例えば、
【数101】
の継続確率は、複数のk
f個のコピーに複製され、初期分布
【数102】
は、
【数103】
の初期状態が最初のモデル
【数104】
の初期状態に対応するのでゼロに設定され、
【数105】
の最終成分は削除される。なぜなら、
【数106】
の最終状態は、今や、複数のインスタンスに更新された
【数107】
の最終成分になっているからである。
【0085】
並列に実行されるべき2つのスキルの組合せの場合には、2つのスキルの軌道モデルが組み合わせられて、以下のような1つの合成された軌道モデルにされる。
【0086】
並列な2つのスキルの2つのTP-HSMM
【数108】
を検討すると、それらを組み合わせて、
【数109】
にするための動作が、アルゴリズム2にまとめられている。
【表2】
【0087】
アルゴリズム2は、合成されたTP-HSMMモデル
【数110】
を計算するための一方の部分と、合成されたTPGMMモデル
【数111】
を計算するための他方の部分との2つの部分から構成されている。最初の最も重要なステップは、
【数112】
内の成分の総数によって
【数113】
の成分の添え字を更新することである。これは、複数の成分が同一の添え字を有するそれぞれ異なるスキルを形成することを回避するためである。この後には、関連する全てのTPGMMモデルと、継続モデルと、前提条件モデルと、効果モデルとが相応に更新されている。大事なことを言い忘れていたが、合成された遷移行列{a
kh}を計算する際に、残りのエントリをゼロで埋めながら、
【数114】
の{a
kh}
1と
【数115】
の{a
kh}
2とを{a
kh}の中に対角線上に追加することが必要である。このことはつまり、
【数116】
から
【数117】
への追加的な遷移は、並列に(即ち、順番にではない)合成されているので追加されないということを意味する。
【0088】
要約すると、304において合成されたモデルを生成することは、2つのスキルの以下の動作、即ち、
1)動作1(スキルを順番にカスケードする):「スキル#1」と「スキル#2」とが(
図4に示されているように)順番に接続されている場合には、アルゴリズム1に従って合成されたスキルモデルを計算する、
2)動作2(スキルを分岐で組み合わせる):「スキル#1」と「スキル#2」とが(
図5に示されているように)並列に接続されている場合には、アルゴリズム2に従って合成されたスキルモデルを計算する、
を繰り返し適用することを含む。
【0089】
具体的には、これら2つの動作は、以下のようにして繰り返し実施される:
A)タスク
図303内のそれぞれの分岐又はサブ分岐ごとに、動作1を再帰的に適用して、それぞれの分岐のための合成されたスキルを導出する。
B)全ての並列な分岐に対して、動作2を再帰的に適用して、全ての分岐のための合成されたスキルを導出する。Aの後には、それぞれの分岐がただ1つの合成されたスキルを有することとなることに注意されたい。
C)再帰的に、全ての順番に並んだスキルに対してAを適用し、全ての並列なスキルに対してBを適用する。
【0090】
例えば、
図4に示されているタスクの場合、合成されたモデルを生成するためのプロセスは、
図6乃至
図9に示されているように、Aの適用と、次いでBの適用と、次いで再びAの適用と、次いで再びBの適用とを含む。
【0091】
図6は、
図2のタスク図によって与えられたようなタスクに対するAの初回の適用の後の結果を示す。
【0092】
スキルモデル201と205とが601に組み合わせられており、スキルモデル203と207とが602に組み合わせられており、スキルモデル204と208とがスキルモデル603に組み合わせられている。
【0093】
図7は、Bの初回の適用の後の結果を示す。スキルモデル602と603とがスキルモデル701に組み合わせられている。
【0094】
図8は、Aの2回目の適用の後の結果を示す。スキルモデル701と209と210とがスキルモデル801に組み合わせられている。
【0095】
図9は、Bの2回目の適用の後の結果を示す。スキルモデル601と801とがスキルモデル901に組み合わせられている。
【0096】
見て取れるように、
図9においては、タスク全体が単一の合成されたスキルモデル901によって表現されている。「if」条件は、必要ない。
【0097】
304において合成されたロボット軌道モデルが生成されると、所与の状況においてタスクを実行することができる。
【0098】
このために、305において、所与の状況における初期システム状態(コンフィギュレーション)が観測され、例えば、合成されたロボット軌道モデルに式(3)を適用することにより、合成されたロボット軌道モデル内の成分の最尤のシーケンスが決定され、この最尤のシーケンスは、(ロボットと物体とを含む)システムを、最も高い確率で目標状態へと駆動するものである。
【0099】
成分のシーケンスの決定は、所与の状況下で実行されなければならないスキルの実際のシーケンスも出力する。アルゴリズムによって異なる分岐が選択された場合にはスキルのシーケンスが異なるので、このことは重要である。
【0100】
306においては、実行中に、この出力に含まれている最適なスキルのシーケンスが、最適な成分のシーケンスに従うことによって実行される。状態シーケンスが与えられた場合には、例えば、線形二次追跡(LQT)を使用して、最適な軌道を検索することができる。
【0101】
要約すると、種々の実施形態によれば、
図10に示されているような方法が提供される。
【0102】
図10は、1つの実施形態によるロボットを制御するための方法を示すフロー
図1000を示す。
【0103】
1001においては、複数のスキルの各々を実行するためのデモンストレーションが提供される。
【0104】
1002においては、デモンストレーションに基づき、それぞれのスキルごとにロボット軌道モデルがトレーニングされ、それぞれの軌道モデルは、1つ又は複数の初期状態と、1つ又は複数の最終状態とを有する隠れセミマルコフモデルである。
【0105】
1003においては、スキルのロボット軌道モデルのそれぞれの初期状態について、スキルを実行する前のロボットコンフィギュレーションの確率分布を含む前提条件モデルと、スキルのロボット軌道モデルのそれぞれの最終状態について、スキルを実行した後のロボットコンフィギュレーションの確率分布を含む最終状況モデルとが、デモンストレーションに基づき、それぞれのスキルごとにトレーニングされる。
【0106】
1004においては、タスクの記述が受信され、当該タスクは、複数のスキルのうちのスキルを順番に及び/又は分岐で実行することを含む。
【0107】
1005においては、以下のことにより、合成されたロボット軌道モデルが生成され、即ち、
・タスクにおいて2つのスキルが順番に実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○2つのスキルのうちの第1のスキルの軌道モデルのそれぞれの最終状態と、2つのスキルのうちの第2のスキルの軌道モデルのそれぞれの初期状態との間の遷移確率を、第1のスキルの最終状態に対する第1のスキルの最終状況モデルの確率分布と、第2のスキルの初期状態に対する第2のスキルの初期モデルの確率分布との間の類似度の関数として計算する
ことによって、スキルのロボット軌道モデルをカスケードし、
・タスクにおいて2つのスキルが分岐で実行されるべき場合には、
○2つのスキルの軌道モデルの状態を、合成されたロボット軌道モデルに含め、
○第1のスキルの状態と第2のスキルの状態との間の遷移確率をゼロに設定する
ことによって、スキルのロボット軌道モデルを組み合わせる
ことにより、合成されたロボット軌道モデルが生成される。
【0108】
1006においては、ロボットは、合成されたロボット軌道モデルに従ってタスクを実行するように制御される。
【0109】
種々の実施形態によれば、換言すれば、ロボットのためのモデルが、複数のスキルについて訓練され、これらのスキルの複数の実行を分岐で又は順番に含むタスクが実行されるべき場合には、これらのモデルがカスケードされて及び/又は組み合わせられて、1つの合成されたモデルにされる。その後、この合成されたモデルを使用して、このモデルが単一のスキルの1つのモデルであるかのようにロボットを制御することができ、即ち、例えば、タスクのための最適な状態シーケンス(と、タスクが実行されるべきロボット及び物体の初期コンフィギュレーションと)を決定して、ロボットを相応に制御することによって、ロボットを制御することができる。
【0110】
図10の方法は、1つ又は複数のデータ処理ユニットを含む1つ又は複数のコンピュータによって実施可能である。「データ処理ユニット」という用語は、データ又は信号の処理を可能にする任意の種類のエンティティとして理解可能である。例えば、データ又は信号は、データ処理ユニットによって実施される少なくとも1つの(即ち、1つ又は複数の)特定の機能に従って処理可能である。データ処理ユニットは、アナログ回路、デジタル回路、混合信号回路、論理回路、マイクロプロセッサ、マイクロコントローラ、中央処理装置(CPU)、グラフィック処理装置(GPU)、デジタル信号プロセッサ(DSP)、プログラマブルゲートアレイ(FPGA)、集積回路、又は、これらの任意の組合せを含み得るものであり若しくはこれらから構成することが可能である。より詳細に後述されるそれぞれの機能を実装するための任意の他の手法も、データ処理ユニット又は論理回路として理解可能である。本明細書において詳細に説明される方法ステップのうちの1つ又は複数は、データ処理ユニットにより、データ処理ユニットによって実施される1つ又は複数の特定の機能を介して実行(例えば、実装)可能であることが理解されよう。
【0111】
「ロボット」という用語は、コンピュータ制御式の機械、車両、家庭用電化製品、電動工具、製造機械、パーソナルアシスタント又はアクセス制御システムのような(動きが制御される機械部品を有する)任意の物理的システムを指すと理解可能である。
【0112】
種々の実施形態は、ビデオ、レーダ、LiDAR、超音波、モーション、サーマルイメージング等のような種々のセンサからのセンサ信号を受信及び使用して、例えば、デモンストレーション又はシステム(ロボット及び物体)の状態及びコンフィギュレーション及びシナリオに関するセンサデータを取得することができる。センサデータは、処理可能である。この処理は、例えば、(センサデータが取得された環境内の)物体の存在を検出するための、センサデータの分類、又は、センサデータのセマンティックセグメンテーションの実行を含み得る。各実施形態は、機械学習システムをトレーニングして、種々のシナリオ下で種々の操作タスクを達成するように、ロボット、例えばロボットのマニピュレータを自律的に制御するために使用可能である。特に、各実施形態は、例えば組立ラインにおける操作タスクの実行の制御及び監視に適用可能である。各実施形態は、例えば、制御プロセスのための従来のGUIとシームレスに統合可能である。
【0113】
本明細書において特定の実施形態について例示及び説明してきたが、本発明の範囲から逸脱することなく、図示及び説明された特定の実施形態の代わりに種々の代替的及び/又は同等の実装形態を使用してよいことは、当業者によって認識されよう。本願は、本明細書において論じられた特定の実施形態の任意の適合又は変形を網羅することが意図されている。したがって、本発明は、特許請求の範囲及びそれらの均等物によってのみ限定されることが意図されている。