(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023059837
(43)【公開日】2023-04-27
(54)【発明の名称】人間のデモンストレーションによるロボットプログラム作成方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20230420BHJP
【FI】
B25J9/22 Z
【審査請求】未請求
【請求項の数】27
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022158011
(22)【出願日】2022-09-30
(31)【優先権主張番号】17/502,207
(32)【優先日】2021-10-15
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】ワン カイメン
(72)【発明者】
【氏名】加藤 哲朗
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707JS01
3C707KS33
3C707KT03
3C707KT06
3C707LS05
3C707LT06
(57)【要約】
【課題】力センサ及び視覚センサを使用して、人間のデモンストレーションに基づいてロボットに操作の実行を教示する方法の提供。
【解決手段】方法は、取出、移動及び配置等の操作の教示中に、人間の手及び任意でワークの位置及びポーズを検出する視覚センサを含む。ワークの下方又はツール上にある力センサは、力情報を検出するために使用される。視覚センサ及び力センサからのデータは、他の任意の入力とともに、教示対象の操作の動作及び状態変更ロジックの双方を教示するために使用される。接近から把持への遷移等の状態変化ロジックを決定するためのいくつかの技術が開示される。手の余分な動きを除去するために動作プログラミングを改善する技術も開示される。手の位置及び向きのデータから、状態遷移とともに、ロボットプログラミング指令が生成される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
人間のデモンストレーションからロボット動作プログラムを作成する方法であって、
実演者の手によってワークの操作を実演することと、
前記手による前記ワークの前記操作の実演のカメラ画像を、プロセッサ及びメモリを有するコンピュータで分析し、手の動作データを生成することと、
前記実演のカメラ画像、力センサからの信号、マイクロホンからの信号、及び入力信号装置からの信号の1つ以上を前記コンピュータで分析して、ロジックデータを生成することと、
前記手の動作データ及び前記ロジックデータに基づいて、前記ワークの前記操作を実行するためにロボットにグリッパを操作させる指示を含むロボット動作プログラムを生成することと、
を含む、方法。
【請求項2】
前記カメラ画像は、単一の二次元(2D)又は三次元(3D)カメラによって取得される、請求項1に記載の方法。
【請求項3】
前記操作を実演する手のカメラ画像を分析することは、親指と人差し指のそれぞれの先端、第一指関節及び第二指関節を含む、前記手の複数の点の三次元(3D)座標位置を特定することを含む、請求項1に記載の方法。
【請求項4】
ロボット動作プログラムを生成することは、前記カメラ画像の1つによって表される複数のタイムステップの各々について、前記手の上の複数の点の3D座標位置に基づいて手の座標系を計算し、前記手の座標系を、グリッパの位置及び向きを定義するグリッパ座標系に変換し、前記複数のタイムステップおいて前記グリッパ座標系を使用して前記ロボット動作プログラムを生成することを含む、請求項3に記載の方法。
【請求項5】
前記ロジックデータを作成することは、操作中の状態遷移を検出し、状態遷移を使用してグリッパの動作指令及び非動作指令を前記手の動作データの特定のタイムステップと同期させ、前記ロボット動作プログラムに前記グリッパの動作指令及び非動作指令を含めることを含む、請求項1に記載の方法。
【請求項6】
状態遷移を検出することは、前記手及び前記ワークのカメラ画像を分析して、手の中心点とワーク中心点との間の距離を求めることを含む、請求項5に記載の方法。
【請求項7】
取出状態の遷移は、前記手の中心点と前記ワーク中心点との間の距離が予め定めた閾値を下回ることによってトリガされ、前記取出状態からの移動状態の遷移は、あるタイムステップから次のタイムステップへの前記手の中心点の動きによってトリガされ、前記移動状態からの配置状態の遷移は、前記手の中心点と前記ワーク中心点との間の距離が前記予め定めた閾値又は新たに計算された閾値を超えることによってトリガされる、請求項6に記載の方法。
【請求項8】
状態遷移を検出することは、前記実演者の第2の手のカメラ画像を分析し、前記第2の手による予め定めたジェスチャが検出されたときに状態遷移をトリガすることを含む、請求項5に記載の方法。
【請求項9】
状態遷移を検出することは、前記実演者の第2の手によるボタン押圧を記録するように構成された装置から信号を受信し、前記ボタン押圧が検出されたときに状態遷移をトリガすることを含む、請求項5に記載の方法。
【請求項10】
状態遷移を検出することは、前記実演者からの口頭指令を検出するように構成されたマイクロホンから信号を受信し、予め定めた口頭コマンドが検出されたときに、取出、移動及び配置の各語に対応する状態遷移を含む状態遷移をトリガすることを含む、請求項5に記載の方法。
【請求項11】
状態遷移を検出することは、操作中に前記ワークにかかる力を検出するように構成された力センサからの信号を受信し、前記力センサからの前記信号に基づいて状態遷移をトリガすることを含み、前記力センサからの前記信号のピーク及びそれに続く低下を検出して、取出状態の遷移又は配置状態の遷移をトリガすることを含む、請求項5に記載の方法。
【請求項12】
前記手の動作データを生成することは、前記ロボット動作プログラムを生成する前に前記手の動作データを修正することを含み、前記手の動作データに対して最小二乗適合を実行して修正された前記手の動作データを生成し、修正された前記手の動作データを通じてスプライン補間を計算して前記ロボット動作プログラムを生成することを含む、請求項1に記載の方法。
【請求項13】
前記手の動作データを作成することは、前記ロボット動作プログラムを生成する前に前記手の動作データを修正することを含み、前記手の動作データを、開始点から上向きの垂直線分と、それに続く、前記手の動作データ内の最高点を通る水平線分と、それに続く、終点に向けて下向きの垂直線分とを有する区分的線形関数で置換し、前記区分的線形関数を用いて前記ロボット動作プログラムを生成することを含む、請求項1に記載の方法。
【請求項14】
前記手の動作データを作成することは、前記ロボット動作プログラムを生成する前に前記手の動作データを修正することを含み、前記手の動作データから決定されたグリッパ軸を、前記ワークの表面に対する法線から計算されたグリッパ軸に置換することを含む、請求項1に記載の方法。
【請求項15】
ロボット制御装置により、前記ロボットが前記グリッパを操作して前記ワークに対して操作を行うように、前記ロボット動作プログラムを用いることをさらに含む、請求項1に記載の方法。
【請求項16】
人間のデモンストレーションからロボット動作プログラムを作成する方法であって、
連続ループにおける一連の状態及び遷移を含む状態マシンモデルを定義することと、
実演者の手によってワークの操作を実演することと、
前記手による前記ワークの前記操作の実演のカメラ画像を、プロセッサ及びメモリを有するコンピュータで分析し、手の動作データを生成することと、
操作中の状態遷移を検出し、前記状態遷移を使用してグリッパの動作指令及び非動作指令を前記ロボット動作プログラムの特定のタイムステップと同期させることと、
前記手の動作データ及び前記状態遷移に基づいて、前記ワークの前記操作を実行するためにロボットにグリッパを操作させる指示を含むロボット動作プログラムを生成することと、
を含む、方法。
【請求項17】
状態遷移を検出することは、前記手と前記ワークとの間の距離、前記実演者の第2の手によるジェスチャ、前記実演者によるボタン押圧、前記実演者の口頭指令、又はワークの力の検出による状態遷移の検出を含む、請求項16に記載の方法。
【請求項18】
人間による操作のデモンストレーションからロボット動作プログラムを作成するシステムであって、
二次元(2D)カメラ又は三次元(3D)カメラを含む視覚センサと、
マイクロホンと、
力センサと、
プロセッサ及びメモリを有し、前記視覚センサ、前記マイクロホン及び前記力センサからの信号を受信して、前記ロボット動作プログラムを生成するように構成されたコンピュータと、を有し、
前記コンピュータは、前記ロボット動作プログラムの生成に際し、
ワークに対する前記操作を実演する実演者の手のカメラ画像を分析して、手の動作データを生成するステップと、
前記実演のカメラ画像、前記力センサからの信号、前記マイクロホンからの信号、及び入力信号装置からの信号の1つ以上を分析して、ロジックデータを生成するステップと、
前記手の動作データ及び前記ロジックデータに基づいて、前記ワークの前記操作を実行するためにロボットにグリッパを操作させる指示を含むロボット動作プログラムを生成するステップと、
を使用する、システム。
【請求項19】
前記操作を実演する前記手のカメラ画像を分析することは、親指と人差し指のそれぞれの先端、第一指関節及び第二指関節を含む、前記手の複数の点の3D座標位置を特定することを含む、請求項18に記載のシステム。
【請求項20】
ロボット動作プログラムを生成することは、前記カメラ画像の1つによって表される複数のタイムステップの各々について、前記手の上の複数の点の3D座標位置に基づいて手の座標系を計算し、前記手の座標系を、グリッパの位置及び向きを定義するグリッパ座標系に変換し、前記複数のタイムステップおいて前記グリッパ座標系を使用して前記ロボット動作プログラムを生成することを含む、請求項19に記載のシステム。
【請求項21】
前記ロジックデータを作成することは、操作中の状態遷移を検出し、前記状態遷移を使用してグリッパの動作指令及び非動作指令を前記手の動作データの特定のタイムステップと同期させ、前記ロボット動作プログラムに前記グリッパの動作指令及び非動作指令を含めることを含む、請求項18に記載のシステム。
【請求項22】
状態遷移を検出することは、前記手及び前記ワークのカメラ画像を分析して、手の中心点とワーク中心点との間の距離を求めることを含み、取出状態の遷移は、前記手の中心点と前記ワーク中心点との間の距離が予め定めた閾値を下回ることによってトリガされ、前記取出状態からの移動状態の遷移は、あるタイムステップから次のタイムステップへの前記手の中心点の動きによってトリガされ、前記移動状態からの配置状態の遷移は、前記手の中心点と前記ワーク中心点との間の距離が前記予め定めた閾値又は新たに計算された閾値を超えることによってトリガされる、請求項21に記載のシステム。
【請求項23】
状態遷移を検出することは、前記実演者の第2の手のカメラ画像を分析し、前記第2の手による予め定めたジェスチャが検出されたときに状態遷移をトリガすることを含む、請求項21に記載のシステム。
【請求項24】
状態遷移を検出することは、前記実演者の第2の手によるボタン押圧を記録するように構成された装置から信号を受信し、前記ボタン押圧が検出されたときに状態遷移をトリガすることを含む、請求項21に記載のシステム。
【請求項25】
状態遷移を検出することは、前記実演者からの口頭指令を検出するように構成されたマイクロホンから信号を受信し、予め定めた口頭コマンドが検出されたときに、取出、移動及び配置の各語に対応する状態遷移を含む状態遷移をトリガすることを含む、請求項21に記載のシステム。
【請求項26】
状態遷移を検出することは、操作中に前記ワークにかかる力を検出するように構成された力センサからの信号を受信し、前記力センサからの前記信号に基づいて状態遷移をトリガすることを含み、前記力センサからの前記信号のピーク及びそれに続く低下を検出して、取出状態の遷移又は配置状態の遷移をトリガすることを含む、請求項21に記載のシステム。
【請求項27】
前記手の動作データを生成することは、前記ロボット動作プログラムを生成する前に前記手の動作データを修正することを含み、
最小二乗法及びスプライン補間計算若しくは区分線形計算を使用して前記手の動作データを再修正すること、又は前記手の動作データから求められたグリッパ軸を、前記ワークの表面に対する法線から計算されたグリッパ軸に置換すること、又はそれらの双方を含む、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、産業用ロボットのプログラミングの分野に関し、特には、人間の手及びワークの双方を追跡するための視覚センサ及び力センサを含め、ワークの取り出し、移動及び配置操作を実行するために、人間のデモンストレーションによってロボットをプログラミングする方法に関する。この方法では、センサ入力を使用して動作及び状態変更ロジックの双方を教示し、動作及び状態変更からロボットプログラミング指令を生成する。
【背景技術】
【0002】
産業用ロボットを使用して、製造、組み立て、及び材料移動の操作を幅広く実行することはよく知られている。しかし、コンベヤ上のランダムな位置及び向きのワークをピックアップして輸送用コンテナに移動する等の非常に単純な操作ですら、それを実行するようにロボットを教示することは、従来の方法では直感的ではなく、時間と費用がかかっていた。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ロボットは、伝統的に、教示操作盤を使用する人間の作業者によって上述のタイプのピックアンドプレース操作を実行するように教示されてきた。教示操作盤は作業者によって、ロボット及びそのグリッパがワークを把持するために正しい位置及び姿勢になるまで、「X方向のジョグ」や「ローカルZ軸回りのグリッパの回転」等のインクリメンタルな動きをロボットに指示するために使用される。次に、ロボットの構成並びにワークの位置及び姿勢がロボット制御装置に記録され、「ピック」操作に使用される。次に、同様の教示操作盤指令を使用して、「移動」及び「配置」操作が定義される。しかし、ロボットのプログラミングに教示操作盤を使用することはしばしば、特に非熟練の作業者にとっては、直感的ではなく、エラーが発生しやすく、時間がかかる。
【0004】
ロボットにピックアンドプレース操作を教示する別の既知の技術は、モーションキャプチャシステムの使用である。モーションキャプチャシステムは、作業セルの周囲に配置された複数のカメラで構成され、作業者がワークを操作する際に、人間の作業者及びワークの位置及び方向を記録する。作業者及び/又はワークは、操作が実行される際にカメラ画像内の作業者及びワーク上の重要な位置をより正確に検出するために、一意に認識可能なマーカードットを付加することができる。しかし、このタイプのモーションキャプチャシステムは高価であるとともに、記録された位置が正確になるように精密にセットアップ及び構成することは難しく、時間がかかる。
【0005】
人間のデモンストレーションからロボットプログラミングを教示する他の既存のシステムには、さまざまな制限及び欠点がある。そのようなシステムの1つでは、センサを取り付けた特別な手袋を使用して、手及びワークの動作を判断する必要がある。別のシステムでは、手又はワークを視覚的に追跡するが、ワークによって手が視覚的に遮られたり、手の速度遷移を解読できなかったりする等の理由により、正確なグリッパ指令を決定することが困難である。
【0006】
上記の状況に照らして、人間の作業者が簡単かつ直感的に実行でき、把持及び把持解除等の動作及びアクションを確実にキャプチャする、改善されたロボット教示技術が必要とされている。
【課題を解決するための手段】
【0007】
本開示の教示に従って、力センサ及び視覚センサを用いた人間のデモンストレーションに基づく操作を実行すべくロボットを教示する方法が、説明され図示される。この方法には、取り出し、移動、配置等の操作の教示中に、人間の手及び任意にワークの位置及び向きを検出する視覚センサが含まれる。ワークの下方又はツールの上にある力センサは、力情報を検出するために使用される。視覚センサ及び力センサからのデータは、教示対象の操作のための動作及び状態変更ロジックの双方を教示するために、他の任意の入力とともに使用される。アプローチから把持への遷移等の状態変化ロジックを決定するためのいくつかの技法が開示される。手による余分な動きを除去するために、動作プログラミングを改善する技術も開示される。次に、手の位置及び向きから、状態遷移とともに、ロボットプログラミング指令が生成される。
【0008】
開示されたシステム及び方法の追加の特徴は、添付の図面と併せて、以下の説明及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】本開示の実施形態に係る、人間のデモンストレーションからロボットプログラムを生成するシステムの図である。
【0010】
【
図2】本開示の実施形態に係る、実演者の手の動きと、対応するロボットの動作及び状態遷移ロジック教示の要素の図である。
【0011】
【
図3】本開示の実施形態に係る、ロボットプログラム生成方法ロジック教示部で使用される状態及び遷移を示す状態
図300である。
【0012】
【
図4】本開示の実施形態に係る、ロボットプログラム生成におけるロジック教示の第1の技術の図であって、実演者の手と対象物との間の距離が状態遷移のトリガとして使用される。
【0013】
【
図5】本開示の実施形態に係る、ロボットプログラム生成におけるロジック教示の第2の技術の図であって、実演者の第2の手のジェスチャが状態遷移のトリガとして使用される。
【0014】
【
図6】本開示の実施形態に係る、ロボットプログラム生成におけるロジック教示の第3の技述の図であって、実演者の第2の手によるボタンの押下が状態遷移のトリガとして使用される。
【0015】
【
図7】本開示の実施形態に係る、ロボットプログラム生成におけるロジック教示の第4の技述の図であって、実演者による音声指令が状態遷移のトリガとして使用される。
【0016】
【
図8】本開示の実施形態に係る、ロボットプログラム生成におけるロジック教示の第5の技述の図であって、力センサの入力が分析され、状態遷移のトリガとして使用される。
【0017】
【
図9】本開示の実施形態に係る、ロボットプログラム生成における動作の微修正の2つの技述の図であって、実演者の手の不要かつ無関係な動きが動作プログラムから排除される。
【0018】
【
図10】本開示の実施形態に係る、ロボットプログラム生成における把持ポーズの微修正の技述の図であって、ローカルグリッパ軸が対象物の検出面に対して垂直に向けられる。
【0019】
【
図11】本開示の実施形態に係る、人間のデモンストレーションからロボット動作プログラムを生成する方法のフローチャート
図1100である。
【発明を実施するための形態】
【0020】
人間のデモンストレーションによるロボットプログラム生成を対象とした本開示の実施形態の以下の説明は、本質的に単なる例示であり、開示された装置及び技術、又はそれらのアプリケーション若しくは使用を制限することを意図するものではない。
【0021】
種々の製造、組立て、及び材料移動の操作のために産業用ロボットを使用することは周知である。ある一般的用途では、「取出、移動及び配置(pick, move and place)」であり、ここではロボットが、第1の場所から部品又はワークを取出し、部品を移動して、第2の場所に配置する。第1の場所は、型から取出されたばかりの部品等がランダムな向きで流れるコンベヤであり得る。第2の場所は、部品が特定の位置及び向きで配置されるべき搬送コンテナであり得る。他の例は、ロボットが構成要素を取出し、製品の組立て操作においてこれを取付けることを含む。
【0022】
上記のタイプの取出、移動及び配置操作を実行するには、典型的には、取出すべき(ピックアップすべき)部品の位置及び向きを決定するためにカメラが使用され、ロボットは、指型グリッパ、平行顎グリッパ、又は磁気式若しくは吸盤式グリッパ等の所定のグリッパを用いて特定の方法で部品を把持するように教示される必要がある。部品の向きに応じて部品を把持する方法をロボットに教示することは、従来、人間の作業者が教示操作盤(ティーチペンダント)を使用して行っていた。教示操作盤は、ロボット及びそのグリッパがワークを把持する正しい位置及び向きになるまで、「X方向のジョグ」や「ローカルZ軸回りのグリッパの回転」等のインクリメンタルな動きをロボットに指示するために使用される。次に、ロボットの構成並びにワークの位置及び向きがロボット制御装置に記録され、「取出」操作に使用される。次に、同様の教示操作盤指令を使用して、「移動」及び「配置」操作が定義される。しかし、ロボットのプログラミングに教示操作盤を使用することは、特に専門家ではない作業者にとっては、直感的ではなく、エラーが発生しやすく、時間がかかることがよくある。
【0023】
取出、移動及び配置操作を実行するようにロボットを教示する別の既知の技術は、モーションキャプチャシステムの使用である。モーションキャプチャシステムは、作業セルの周囲に配列された複数のカメラで構成され、作業者がワークを操作する際に、人間の作業者及びワークピースの位置及び向きを記録する。作業者及び/又はワークには、操作が実行される際にカメラ画像内の作業者及びワーク上の重要な位置をより正確に検出するために、一意的に認識可能なマーカードットを取付けることができる。しかし、このタイプのモーションキャプチャシステムは高価であり、記録された位置が正確になるように正確にセットアップ及び構成するのは困難であり、時間がかかる。
【0024】
本開示は、力センサ及び視覚センサを使用して、動作及び状態遷移ロジックの双方を含む人間のデモンストレータ(実演者)の手及びワークに関する情報を記録し、記録された情報を使用してロボットプログラムを生成する技術を提供することにより、既存のロボット教示方法の制限を克服しており、このロボットプログラムは、取出、移動及び配置の動作と、対応する把持指令及び把持解除指令とを含む。もちろん、この技術は、取出、移動及び配置だけでなく、任意のタイプのロボット部品ハンドリング操作に適用可能である。
【0025】
状態遷移を識別するためのいくつかの技術と、動作及び把持ポーズを改良して無関係な人間の手の動きを軽減するための他の技術とともに、本開示の方法は、カメラ画像又は視覚センサデータの分析によって人間の手の重要なポイント(キーポイント)を識別及び追跡することを含む。カメラ画像の分析によって人間の手のキーポイントを識別及び追跡するための方法及びシステムは、本出願と共通の出願人により2020年4月8日に出願され、タイトルを「人間のデモンストレーションによるロボット教示(ROBOT TEACHING BY HUMAN DEMONSTRATION)」とする米国特許出願第16/843,185号(以下、「‘185出願」)に開示されており、その全体は本参照により本明細書に組み込まれるものとする。
【0026】
‘185出願は、単一の二次元(2D)又は三次元(3D)カメラからの画像を分析して、人間の手のキーポイントの3D座標を識別し追跡する技術を開示する。キーポイントは、親指の先端、関節及び付け根、並びに指の先端、関節及び付け根等の解剖学的特徴を含む。これらのキーポイントの3D座標から、‘185出願は、特に指型グリッパ及びと吸盤型グリッパの双方について、グリッパの位置及び向きを計算する技術を開示する。例えば、人間の手の親指及び人差し指を平行顎又は指型のグリッパの位置に置換したり、親指及び人差し指の二等分線を単一の吸盤式グリッパの軸として使用したりすることができる。‘185出願による、カメラ画像入力に基づくこれらの手のポーズ及び対応するグリッパのポーズの決定技術は、本開示の方法において広く使用される。
【0027】
図1は、本開示の一実施形態に係る、人間のデモンストレーションからロボットプログラムを生成するシステムの図である。視覚センサ110が、作業空間を表す画像及び/又はデータを提供し、該画像及び/又はデータをコンピュータ120に送る。以下の説明のために、視覚センサ110はカメラとして説明され、該カメラは連続画像(最大毎秒30フレームの映像等)を提供する2D又は3Dカメラであり得る。口頭の指令を含む作業空間の音を拾うマイクロホン112が、音声信号をコンピュータ120に提供する。
【0028】
実演者(human demonstrator)130が、1つ以上のワークにおける操作のために、片手又は両手を使用する。一例では、ワーク140はプラットホーム150上に載置される。実演者130は、ワーク140を取出して移動させ、新たな位置及び向きに配置することができる。ワーク140の下方又はプラットホーム150の下方には、力センサ142が配置される。力センサ142は、ワーク140にかかる力、特に鉛直方向の力を検出する。力センサ142からのデータの使用については後述する。
【0029】
他の例では、第2のワーク160が、第2のワーク160とツール170との間に結合された力センサ162によってツール170に結合される。実演者は、アセンブリ内に差し込まれる電子部品や、穴に挿入されるペグ等、第2のワーク160がワーク140内の所望の位置に所望のポーズで配置されるようにツール170を操作する。力センサ162は、組立作業中に第2のワーク160にかかる力及びトルクを検出するように構成される。力センサ162からのデータの使用については後述する。
【0030】
力センサ142及び/又は162(通常は一方又は他方のみ)は、それらの力及びトルクのデータを、無線又は配線接続を介してコンピュータ120に提供する。力センサ142及び/又は162からのデータとともに、コンピュータ120は、マイクロホン112から音声信号及び視覚センサ110からの画像を受信する。画像は、実演者130の少なくとも1つの手のポーズ(キーポイントの3D位置)を求めるために分析され、さらにもう1つの手及び/又はワーク140、160のポーズを決定するために分析することもできる。開示された技術の異なる実施形態では、手のポーズのデータ、ワークのポーズのデータ、力データ及び音声データは、コンピュータ120によって使用され、取出、移動及び配置等の操作のためのロボットプログラムを生成する。これについては以下に詳述する。
【0031】
コンピュータ120によって生成されたロボット動作プログラムは、ロボット180を制御するロボット制御装置170に提供される。制御装置170は通常、ケーブル172を介してロボット180と通信する。制御装置170は、当技術分野で周知のように、ロボット180に関節動作指令を送信し、ロボット180から関節エンコーダの位置データを受信する。ロボット180はグリッパ182を備え、グリッパ182は、平行顎式、指型、磁気式、吸盤(単一の吸盤又は配列された複数の吸盤)式等の任意のグリッパであり得る。また制御装置170は、把持(grip)及び解放(ungrip)等のグリッパ動作指令をロボット180に送信する。コンピュータ120は、無線、配線接続又はネットワーク接続122によって制御装置170と通信可能である。
【0032】
図1のシステムは、以下のように人間のデモンストレーションからロボットプログラムを生成するために使用される。実演者130は、プログラムのための一連の動作を教示し、ここでは動作及び状態遷移ロジック(把持、移動、配置等)が取込まれ、これによりコンピュータ120がプログラムを生成する。これについては以下に詳述する。次に、ロボットプログラムはコンピュータ120から制御装置170に転送され、制御装置170はその後プログラムを使用して、制御装置170と通信するカメラ又は視覚センサ192によって検出される部品190の取出/移動/配置を行う。
【0033】
図2は、本開示の一実施形態に係る、実演者の手の動きと、対応するロボット動作及び状態遷移ロジックの教示の要素を示す図である。ボックス210は、取出、移動及び配置操作中に実演者によって実行されるステップを示す。ボックス212は、実演者の手214が対象物216に接近する接近ステップを示す。ボックス220は、実演者の手214が物体216を把持又は「取出す(pick)」ステップを示し、ここでは実演者の手214が手214の指の間に対象物216を把持する。ボックス222は、対象物216が載置されていた面から対象物216を手214が取出す取出ステップを示す。ボックス224は、手214が対象物216を最初に配置された場所から目的の場所に移動させる移動ステップを示す。ボックス226は、手214が対象物216を目的場所の面上に配置する配置ステップを示す。ボックス228は、対象物216を目的地の面に配置した後、手214が対象物216から離れる解放(又は「離脱」)ステップを示す。
【0034】
ボックス210に示されるステップはもちろん、実演者によって非常に円滑な連続的シーケンスで実行される。従って多くの場合、ロボットプログラムの教示を目的として人間のデモンストレーションをキャプチャするシステムが、特定のステップが開始又は終了する正確な瞬間を検出して判断することは困難である。本開示の技術は、力センサ及び視覚センサの双方を使用して人間のデモンストレーションを検出し、方法論の実施形態に動作教示及び状態遷移ロジック教示の双方を含めることによって、この困難に対処する。
【0035】
ボックス240は、取出、移動及び配置操作中にプログラム生成システム(例えば
図1のシステム)によって記録された動作教示ステップを示す。ボックス240内の動作教示ステップは、ボックス210内の実演者の手214によって実行されるステップよりも数が少ない。この理由は、接近及び解放/離脱動作がそれぞれ、(コンピュータ120又は制御装置170による)プログラム生成システムによって、把持及び配置ステップにおける対象物216に対する手214のポーズに基づいて計算できるからである。例えば、把持ステップにおける対象物216に対する手214の方向付けの方法に基づいて、コンピュータ120は、適切な接近動作を計算することができる。配置のポーズに対する離脱動作も同様である。さらに、取出ステップ(ボックス222)は、実演者による意識的なステップであり得るが、移動ステップ(ボックス224)と組合せ可能である。
【0036】
従って、ボックス240内の動作教示ステップは、取出(又は把持)、移動、及び配置として単純に定義することができる。ボックス242の取出ステップは、実演者が対象物216を把持した瞬間の手214(手214のキーポイント)及び物体216の位置及び向き(対象物の位置/ポーズは既知である場合もあるが)を記録する。ボックス244の移動ステップは、対象物216がその最初の位置/ポーズからその目的位置/ポーズに移動するときの手214の位置及び向き(ここも、手214のキーポイント)を記録する。ボックス246の配置ステップは、手214の位置及び向きを記録し、さらに任意に、実演者が目的の位置/ポーズで対象物216を解放した瞬間の物体216を記録する。
【0037】
ボックス240内の動作教示ステップは、プログラム生成システムによって、手の動作、さらに任意に対象物の動作を視覚的に追跡することによって記録される。カメラ画像からの手214のキーポイントの検出、及び手のキーポイントデータのグリッパポーズへの変換は、上術の‘185出願で詳細に説明されている。
【0038】
ボックス270は、取出、移動及び配置操作中にプログラム生成システム(例えば
図1のシステム)によって記録されたロジック教示ステップを示す。状態遷移の識別を含むロジック教示は、ボックス240の動作教示ステップと併せて使用可能であり、人間のデモンストレーションからの正確なロボットプログラムの生成を可能にする。
【0039】
左側の第1の楕円で示されているのは、取出状態272である。取出状態272に入ったことを検出する技術については、後の図に関連して後述する。取出状態272は、ロボットのグリッパを閉じる又は起動させる関連動作274を含む。移動状態276は、ロボット制御装置がグリッパ及び対象物を初期位置から目標位置まで移動させる状態である。また、移動状態276に入ったことを表す遷移を検出する技術については後述する。移動状態276の次は、配置状態278である。配置状態278は、ロボットのグリッパを開く又は停止する関連動作280を含む。
【0040】
図3は、本開示の一実施形態に係る、ロボットプログラム生成方法のロジック教示部で使用される、状態及び遷移を示す状態
図300である。当技術分野で周知のように、状態図は、外部の刺激又はイベントに応答するシステムの挙動を示す。状態
図300は4つの別個の状態を含み、各状態は、連続ループにおいて他の状態への単一の遷移を有する。状態は、その状態に入ったときにシステムが実行するアクションである「エントリアクション」を含み得る。状態
図300は、
図1及び
図2に関して上述したロボットプログラム生成システム及び方法に適用可能な状態、アクション、トリガイベント、及び遷移を示すために使用される。
【0041】
本開示は、人間によるデモンストレーションからのロボットプログラム生成において、ある状態から次の状態への遷移をトリガする特定のイベントを検出するという概念を導入する。
【0042】
状態
図300は、取出状態310を含む。取出状態310は、「グリッパを閉じる」(又は吸着グリッパに適用可能な「グリッパを作動させる」)というエントリアクションを有する。すなわち、取出状態310に入ると、プログラム生成システムは、ロボットグリッパを閉じる又は作動させる指令を生成する。取出状態310は、移動状態320への遷移312を有する。移動状態320は、対象物(又はワーク)がその初期ポーズ(位置及び向き)から目標ポーズに移動される状態である。移動状態320では、プログラム生成システムは、(視覚センサ110によって撮像された)所定の動作を通じてロボットグリッパに対象物を移動させる指令を生成する。
【0043】
移動状態320は、後述するイベントの検出によってトリガされる配置状態330への遷移322を有する。配置状態330では、ロボットグリッパが対象物をその目標姿勢で解放する。故に配置状態330は、「グリッパを開く」(又は「グリッパを非作動にする」)というエントリアクションを有する。すなわち、配置状態330に入ると、プログラム生成システムは、ロボットグリッパを開く又は非作動にする指令を生成する。配置状態330は、離脱/接近状態340への遷移332を有する。離脱/接近状態340は、前の対象物をその目標ポーズに配置した後でかつ、次の対象物を取出す前に、ロボットグリッパが物体を持たずに自由に移動できる状態である。離脱/接近状態340は、取出状態310に戻る遷移342を有し、トリガイベント(後述)が検出されたときに取出状態に入る。
【0044】
状態
図300において、離脱/接近状態340は、離脱状態及び接近状態の2つの状態に分けることができ、離脱から接近への遷移は、次に取出す対象物のカメラ画像の到達によってトリガされる。離脱状態と接近状態の間に、「止まる(perch)」又は「待機(wait)」等のさらに別の状態を追加することもできる。しかし状態
図300は、様々なタイプの状態遷移トリガの以下の議論には十分であるので、簡略化のために結合された離脱/接近状態340で図示されている。
【0045】
図4は、本開示の一実施形態に係る、ロボットプログラム生成におけるロジック教示のための第1の技術の図であり、ここでは実演者の手と物体との間の距離を使用して状態遷移をトリガする。ボックス410は、ロジック教示のための第1の技術の全体的なアイデアを示す図を含む。上述のように、手412及び対象物414はカメラ画像内で識別される。カメラ画像で識別された手412は、指及び親指上の多数のキーポイントの3D座標を含む。これらのキーポイントから、手の中心点416を指定することができる。例えば、手首の点は手412の他の部分や対象物414によって遮られることがないので、手の中心点416を手首の点として選択することができる(画像から直接識別してもよいし、或いは指と親指のキーポイントから計算してもよい)。
【0046】
同様に、物体中心点418は、対象物414の上面図領域の中心、又はカメラ画像に適合するように転置されたCADデータからの既知の物体中心点等、任意の適切な方法で指定することができる。手の中心点416及び物体中心点418の3D位置から、2つの間の距離を計算することができる。この距離は、状態遷移ロジックで使用される。
【0047】
ボックス420は、この第1の方法で使用される状態遷移ロジックの図及び説明を含む。ボックス422は、本方法による取出ステップの検出の図を含む。この方法では、(接近から)取出状態への遷移は、手の中心点416から物体中心点418までの距離が所定の閾値を下回ることによってトリガされる。閾値は、手412上のどの点が手の中心点416として選択されているか、さらに対象物414の性質及び物体中心点418に基づいて定義される。例えば、閾値は75ミリメートル(mm)の値に設定可能であり、その理由は、手の中心点416が物体中心点418に75mmよりも大幅に近づくことは物理的に不可能だからである。
【0048】
図4の方法では、取出状態は(|h
c-O
c|<th
d)のときにトリガされ、ここでh
c及びO
cはそれぞれ、手の中心点416及び物体中心点418の3D座標であり、|h
c-O
c|は、手の中心点416から物体中心点418までの距離(x、y及びz座標の差の二乗和の平方根から計算される)であり、th
dは上述の閾値距離である。再び
図1を参照して、カメラ又は視覚センサ110はコンピュータ120に画像を提供し、コンピュータ120は手及び対象物の形状及び距離を連続的に分析する。中心点間の距離が閾値距離を下回ったら、コンピュータ120は取出状態への遷移をトリガする。このことは、取出点を求めるために手のポーズ及び対象物のポーズがこの瞬間にキャプチャされ、対応する「グリッパ閉(close gripper)」指令がロボットプログラムに含まれることになることを意味する。
【0049】
ボックス424は、
図4の方法に係る移動ステップの検出を示す。この方法では、移動状態への遷移は、手の中心点416又は物体中心点418又はその双方の移動によってトリガされる。
図3に関して上述したように、状態マシンシステム(state machine system)は、移動状態への唯一の遷移が取出状態からであるように規定される。故に、ボックス422に示すように取出状態に入ると、コンピュータ120は、連続するカメラ画像における手の中心点416及び物体中心点418の位置の計算を開始することができる。取出状態に入った後、手の中心点416又は物体中心点418がある画像から次の画像に移動したと判定されると、このことが移動状態のトリガに使用される。
【0050】
数学的には、移動状態への遷移は、(|h
c,i-h
c,i+1|>0)、又は(|O
c,i-O
c,i+1|>0)のときにトリガされ、ここでh
c,i及びh
c,i+1はそれぞれ、タイムステップ(カメラ画像)i及び次のステップi+1における手の中心点416の3D座標であり、物体中心点418についても同様である。絶対値括弧内の差分は、上記ボックス422について説明したように計算される。再び
図1を参照すると、カメラ又は視覚センサ110はコンピュータ120に画像を提供し、コンピュータ120は手及び対象物の形状を連続的に分析する。中心点の一方又は双方が1つのカメラ画像から次のカメラ画像への移動を示す場合、コンピュータ120は移動状態への遷移をトリガする。このことは、「移動」動作を求めるために手のポーズ及び対象物のポーズがこの瞬間からキャプチャされることを意味し、移動状態は配置状態がトリガされたときに終了する。
【0051】
ボックス426は、
図4の方法に係る配置ステップの検出を示す。この方法では、(移動状態から)配置状態への遷移は、手の中心点416から物体中心点418までの距離が所定の閾値を超えることでトリガされる。閾値は、取出状態のトリガに使用される閾値と同じであってもよいし、或いは、移動状態中に測定された、手の中心点416から物体中心点418までの実際の距離に基づいて新たな値として計算されてもよい。
【0052】
図4の方法では、配置状態は(|h
c-O
c|<th
d)のときにトリガされ、各項の定義は上述と同じである。前の(移動)状態から可能な唯一の遷移は配置状態への遷移であり、このことは閾値を超えた距離の検出を非常に簡単にする。再び
図1を参照すると、カメラ又は視覚センサ110はコンピュータ120に画像を提供し、コンピュータ120は手及び物体の形状及び距離を連続的に分析する。中心点間の距離が閾値距離を上回ったら、コンピュータ120は配置状態への遷移をトリガする。このことは、配置点を求めるために手のポーズ及び対象物のポーズがこの瞬間にキャプチャされ、対応する「グリッパ開(open gripper)」指令がロボットプログラムに含まれることになることを意味する。
【0053】
配置状態のトリガに続き、対象物414から離れる手412の動きを使用して、離脱/接近状態への移行をトリガすることができる。ここでは、手412の動きは、上述した移動状態と同じ方法で決定される。ボックス422に関して上述したように、離脱/接近状態から取出状態への移行が検出される。
【0054】
図5は、本開示の一実施形態に係る、ロボットプログラム生成におけるロジック教示のための第2の技術の図であり、ここでは実演者の第2の手によるジェスチャが、状態遷移をトリガするために使用される。ボックス510は、対象物514に近接する実演者の第1の手512(ここでは右手)の図を含む。第2の手516(ここでは左手)も、カメラ画像に含まれる。
【0055】
図5に示すロジック教示方法は、第2の手516(対象物514を把持せず、動かしていない手)によるハンドジェスチャを使用して、状態遷移をトリガする。一実施形態では、第2の手516による「OK」サイン(親指と人差し指の先端が接触し、それら2本の指で「O」形状を形成する)が、状態遷移のトリガである。コンピュータ120は、第1の手512、対象物514及び第2の手516の画像を連続的に分析する。状態
図300に示すように、状態マシンは、現在はどの状態が使用されているかを常に認識しており、1つの状態遷移のみが有効である。従って、第2の手516がOKサインを形成したことをコンピュータ120が検出すると、このことは、(例えば接近状態から取出状態への)遷移をトリガする。各状態の遷移には同じ技術が使用される。
【0056】
ボックス520は、第2の手516、具体的には‘185出願に開示された方法でカメラ画像から検出されたキーポイント及び骨セグメントの図を含む。ボックス520では、第2の手516は「OK」ではなく「準備完了(Ready)」の形態であり、これは実演者が状態遷移をトリガしていないことを意味する。ボックス530では、第2の手516が「OK」の形態で示されており、これは、実演者が状態遷移をトリガしていることを意味する。状態
図300は、各状態からの有効な遷移は1つのみである連続ループで進行するように定義されているため、同じ「OK」サインを実演者の第2の手516によって使用して、接近から取出、移動から配置等の各遷移をトリガすることができる。「OK」サイン以外の手のジェスチャも、状態遷移をトリガするために使用可能である。
【0057】
図6は、本開示の一実施形態に係る、ロボットプログラム生成におけるロジック教示のための第3の技術の図であり、ここでは実演者の第2の手によるボタン押圧が状態遷移をトリガするために使用される。ボックス610は、対象物614に近接する実演者の第1の手612、ここでは右手の図を含む。カメラ画像には、第2の手616、ここでは左手も含まれる。
【0058】
図6に示すロジック教示方法は、状態遷移をトリガするために、第2の手616(対象物614の把持及び移動をしていない手)によるボタン押圧を使用する。一実施形態では、教示操作盤620が実演者に与えられ、教示操作盤620のボタンを押すことが状態遷移のトリガとなる。プログラム生成方法全体は、状態遷移を知らせるために、視覚センサ、力センサ及び教示操作盤620と通信しているロボット制御装置170で実行可能である。状態遷移トリガとして、シンプルなスタンドアロンのボタンの押圧を使用することもできる。コンピュータ120(又は制御装置170)は、第1の手612の画像と、任意に対象物614の画像とを、動作教示の目的で連続的に分析する。状態
図300に示すように、状態マシンは、現在はどの状態が使用されているかを常に認識しており、1つの状態遷移のみが有効である。従って、コンピュータ120が教示操作盤620又は他の信号装置からボタン押圧を検出すると、このことは、(例えば、接近状態から取出し状態、又は移動状態から配置状態への)遷移をトリガする。各状態の遷移には同じ技術が使用される。
【0059】
図7は、本開示の一実施形態に係る、ロボットプログラム生成におけるロジック教示のための第4の技法の図であり、ここでは実演者による音声コマンドを使用して状態遷移をトリガする。ボックス710は、対象物714をまさに把持している実演者の手712の図を含む。
図7に示すシナリオは、対象物714を取上げ、アセンブリ716内の設置位置に配置することである。
図7の方法では、状態遷移をトリガするために実演者が口頭で指令を発する。例えば、ボックス710において、実演者は「取出し(ピック)」と発声し、取出状態に入るべき瞬間を合図する。発声された指令は、コンピュータ120に接続又はコンピュータ120と通信するマイクロホンによって検出される。
【0060】
前述の他の状態遷移検出方法と同様に、取出状態に遷移するための口頭指令により、システムは、取出状態のときに、少なくとも手712(検出可能な全てのキーポイントの3D座標)の位置及びポーズを検出してキャプチャする。これによりシステムは、グリッパを閉じたりアクティブにしたりする指令を使用して、取出状態に関連付けられたグリッパの位置及びポーズを計算することができる。システムはまた、任意に、対象物714のポーズを検出してキャプチャすることもできる。
【0061】
ボックス720では、手712が対象物714を取出位置から配置位置に動かしている。実演者は、対象物714を移動する直前に「移動(ムーヴ)」と発声し、それによりシステムは、移動状態に遷移し、少なくとも手712(任意で対象物714も)の動きをキャプチャする。ボックス730において、手712は、まさにその場所で対象物714を解放している。実演者は、対象物714を解放する直前に「配置(プレース)」と発声し、それによりシステムは、配置状態に遷移し、目的位置での手712(任意で対象物714も)の最終ポーズをキャプチャする。前述のように、手712の位置及びポーズ/形態(キーポイントの3D座標)は、システムによって、ロボット動作プログラムに含まれるべきグリッパの位置及びポーズに容易に変換される。
【0062】
「解放」又は「離脱」、及び「接近」等の追加の口頭指令も、システムによって認識可能である。但し前述のように、これらの状態遷移は、状態
図300に従い、システムによって配置状態に続くものと推測できる。
【0063】
図8は、本開示の一実施形態に係る、ロボットプログラム生成におけるロジック教示のための第5の技術の図であり、ここでは状態遷移をトリガするために、力センサの入力が分析され使用される。実演者810は、デジタルカメラ又は視覚センサ830を含む作業空間内のワーク820に対する作業をしている。ワーク820は、下方に位置する力センサ850を有するプラットホーム840上に配置される。ワーク820は、実演者810が小さな構成部品(図示せず)を配置しているアセンブリ(
図7のアセンブリ716と同様)であり得る。力センサ850はコンピュータ120に信号を送り、力センサの信号を分析することで状態遷移の検出が可能になる。
【0064】
グラフ860は、状態遷移の検出のために力センサの信号を分析し得る方法を概念的に示す。グラフ860は、横軸864上の時間に対する、縦軸862上の力センサ850からの垂直力をプロットする。曲線870は、時間に対する垂直力を示す。880で示す時点において、垂直力の僅かな上昇及び顕著なピークが検出され、その後に力が時刻880の前より低い値へ減少することによって、取出状態遷移が検出される。これらの力の特徴は、実演者810が小さな構成部品を把持して取上げることと一致しており、故に取出状態への状態遷移トリガとして使用することができる。
【0065】
882で示す範囲の時間では、実演者810が小さな構成部品を移動させ、その構成部品を指定された目標位置及び向きに配置し始めるので、力の値は取出前よりも低い値が続く。時刻882は、状態
図300の移動状態に対応する。他の状態遷移ロジック方法と同様に、移動状態への遷移は、取出状態への遷移の直後、すなわち時刻880の直後に行われる。
【0066】
884で示す時点で、配置状態への遷移が、垂直力の大幅な上昇及び非常に顕著なピークによって検出され、続いて、時刻884の前よりも僅かに高い値まで力が減少する。これらの力の特徴は、実演者810が小さな構成部品をその目標位置及び向きに配置すること(場合によっては、構成部品に下向きの力を加えてアセンブリワーク820の所定位置に押し込む又はスナップさせることを含む)と一致している。他の状態遷移ロジック方法と同様に、解放/離脱状態への遷移は、配置状態への遷移の直後、すなわち時刻884の直後に行われると推測できる。
【0067】
代替の実施形態では、力センサは、
図1に示すように、実演者810によって使用されるツールに設けられる。ツールに取り付けられた力センサは、コンピュータ120と無線で通信することが好ましい。例示的なシナリオでは、構成部品をツールで把持し、その構成部品をアセンブリにインストール又は挿入する。この場合、取出操作は力のピーク及び増加によって特徴付けられ、移動操作は増加した値で比較的一定の力によって特徴付けられ、配置操作は力の急激な増加(場合によっては移動状態からの変化の兆候を伴う)、ピーク、そして取出状態の前のようなゼロ又はゼロに近い値への強制的な低下によって特徴付けられる。
【0068】
ツールに取り付けられた力センサと、ワーク820の下方に配置された力センサ850との双方の場合、力センサの信号は、3つの軸力のいずれか又は全てと、3つのトルクのいずれか又は全てとを含むことができ、力及び/又はトルクのそれぞれの成分は、状態遷移の最も重要な特性を含み得る。
【0069】
状態遷移ロジックを教示するための5つの異なる方法が上で説明された。これらの方法(及びその組み合わせ)により、状態遷移の瞬間を正確にキャプチャすることができ、これにより、実演者の動作、特に実演者手の3D動作を一貫して正確にキャプチャすることができる。動作教示の質を向上させるための手法については、以下で説明する。
【0070】
図9は、本開示の一実施形態に係る、ロボットプログラム生成における動作改良のための2つの技術の図であり、ここでは、実演者の手の望ましくない無関係な動きが動作プログラムから除去される。人間がロボット教示のために取出、移動及び配置操作を実演するときに、人間の手が意図しない余分な動きをする場合がある。ここに開示される技術は、手の大規模な動き(始点及び終点、並びに一般的な動作形状)を使用し、より優れた動作特性を備えた、よりスムーズな動作プログラムを提供する。
【0071】
グラフ910は、対象物の取出、移動及び配置操作を実演するために手が使用されるときに、対象物を動かすときの人間の手の動きを一連の点でプロットした曲線920を含む3Dグラフである。曲線920上の点は、3つの直交軸上にプロットされたx/y/z座標を有する。この場合、曲線920で示される手の動きは、対象物を始点922(取出位置)から障害物を越えて終点924(配置位置)まで移動させることを含む。曲線920は、実演者が対象物を持上げた後に、明らかに躊躇し、残りの動きに進む前に対象物を僅かに下降させた領域926を含む。領域926で観察される特異点及び方向反転をロボット動作プログラムに含めることは、明らかに望ましくない。
【0072】
グラフ930は、曲線920において人間によって実演される取出、移動及び配置操作のための改良された動作プログラムをプロットする曲線940を含む3Dグラフである。曲線940は、曲線920の元の点を基準として使用し、元の点から不必要又は余分な逸脱を除去する新しい点のセットを作成するために最小二乗補間を使用し、さらにその新しい点のセットを通る曲線940を計算するためにスプライン補間を使用して計算される。グラフ930に示される実施形態では、曲線940は、ロボットプログラムにおける「移動」状態の動作として使用される。グラフ930の最小二乗適合及びスプライン補間技術は、対象物の「移動」動作が複数の障害物の間(ある障害物の上や別の障害物の下等)を通過しなければならない状況に適用可能である。
【0073】
グラフ950は、出力ロボットの動作を含む複数の線分を含む3Dグラフであり、複数の線分は、曲線920の元の点の始点922、終点924及び最高点(最大z座標)928を使用して構成される。第1の線分は、始点922を真上に(x、y座標が同じ)投影し、最高点928と同じz座標を有する点960を得ることによって作成される。第2の線分は、点960から、終点924の真上の点962まで作成される。第2の線分は、水平であり、点960から点962までの間で最高点928を通過する。第3の最後の線分は、点962から終点924までの鉛直下向きに延びる。グラフ950に示される実施形態では、3つの線分(始点922から点960、点962、終点924まで)が、ロボットプログラムの「移動」状態のための動作として使用される。グラフ950における最高点に線分を適合する技術は、対象物の「移動」動作が、1つ又は複数の障害物を単純に通過しなければならない状況に適用可能である。
【0074】
図10は、本開示の一実施形態に係る、ロボットプログラム生成における把持姿勢の改良のための技術を示しており、ここではローカルグリッパ軸は、対象物の検出された表面に対して垂直に方向付けされる。ボックス1010では、手1012が、ロボット教示の実演においてワーク1014を把持している。人間の手1012、特に親指と人差し指は、平行顎グリッパや2本指、3本指のグリッパ等、いくつかのロボットグリッパにかなり類似している。しかし手1012は、吸盤式グリッパにはあまり類似していない。この理由は、親指と他の指が所定の位置であっても、実演者の手首が様々な角度になる可能性があるからである。これにより、手のポーズの計算が変化し、吸着グリッパのポーズが、ワークのポーズに対し最適ではないものに変化する可能性がある。
【0075】
ボックス1020は、上述の方法で、人間の手のポーズをどのようにして次善の吸着グリッパポーズに変換できるかを示す図を含む。ボックス1020の下部には、視覚センサ110として使用される3Dカメラによって提供される点群によって定義されるワーク1014の上面1014aの等角図が示されている。面1014a上の全ての点群が完全に同一平面上にあるわけではないが、非常に正確な面法線を計算することができる。上面1010aに垂直な面は、
図10では垂直に見える。しかしながら、手首の角度及び手1012のポーズに関連する他の要因のために、対応するグリッパ軸ベクトル1030が計算される。ボックス1020の上部には、吸着グリッパ1040が、ベクトル1030に従って変換された向きで示される。グリッパ1040の軸がベクトル1030に整合していないときは、グリッパ1040がワーク1014に対して適切な向きでないことは明らかである。
【0076】
ボックス1050は、本開示に従い、吸着グリッパの最適なポーズを提供するために、ワーク表面の法線に基づいて人間の手のポーズをどのように調整できるかを示す図を含む。ボックス1050の下部には、ボックス1020と同様に、上面1014aの等角図が示されている。ボックス1050では、グリッパ軸ベクトル1060は、手のポーズから計算されるのではなく、表面法線ベクトルと位置合わせされる。ボックス1050の上部には、吸着グリッパ1040がベクトル1060に従った向きで示される。グリッパ1040の軸が修正されたベクトル1060に整合しているときは、グリッパ1040がワーク1014に対して適切に垂直に向けられていることは明らかである。対象物表面の法線に基づいてグリッパ軸ベクトルを修正することで、特に吸着グリッパの場合には、把持の質を向上させることができる。
【0077】
図11は、本開示の一実施形態に係る、人間のデモンストレーションからロボット動作プログラムを生成する方法のフローチャート
図1100である。ボックス1110では、プロセッサ及びメモリを有するコンピュータ、コンピュータに視覚信号を提供する視覚センサ、コンピュータに力信号を提供する力センサ、並びにコンピュータに音声信号を提供するマイクロホンを含む、ロボット教示システムが用意される。これらの要素は、
図1に示されて上述されている。視覚センサは、実演者の手が、実演されている操作全体を通して視野内にあるように構成される。
【0078】
ボックス1120では、実演者によるワークに対する操作が実行されるが、これには手を使ってワークを初期の位置及び向きから最終の位置及び向きに移動させることが含まれる。このことは、特に
図2に示される取出、移動及び配置操作に関して上述されている。ボックス1130において、複数の時間ステップにおける実演者の手のポーズを求めるために視覚センサ(カメラ等)からの視覚信号が分析される。手のポーズには、手の指上の複数の重要なキーポイントの三次元(3D)座標が含まれる。このことも、特に‘185出願に開示された、単一の2D又は3Dカメラからの画像から手のポーズ(キーポイントのx/y/z座標)を決定する技術について上述されている。タイムステップのための手のポーズデータは、後のプロセスステップで使用するために、手の動作データとして保存される。
【0079】
ボックス1140では、視覚センサ/カメラ及び他の利用可能なセンサからのデータが分析され、ロジックデータが作成される。前述のように、ロジックデータは、特定のイベントを認識することによって手の動作データを補足するために使用される。動作教示と同時に実行されるロジック教示は、精度を向上させ、グリッパ動作プログラムの作成における曖昧さを除去する。ボックス1150では、ボックス1130からの手の動作データと、ボックス1140からのロジックデータとを使用して、ワークに対する操作をロボットグリッパに実行させるための動作プログラムを生成する。この動作プログラムは一連のステップを含み、各ステップはグリッパの位置及び向きを含む。動作プログラムの各ステップには任意に、把持/把持解除指令を含み得る。把持/把持解除指令は、取出、移動及び配置操作における取出位置及び配置位置でのみ必要である。
【0080】
ボックス1142では、
図3に示すような定義された状態マシンモデルに基づいて、実演されている操作において状態遷移が検出される。移動から配置のような状態遷移は、詳細に上述されている。状態遷移をトリガするための5つの異なる手法が開示されており、これらには、手とワークとの間の距離の計算(ボックス1160)、人間の第2の手によるジェスチャの検出(ボックス1162)、第2の手によるボタン押圧(ボックス1164)、実演者による口頭指令(ボックス1166)、ワークの力の検出及び信号分析(ボックス1168)が含まれる。
【0081】
ボックス1142における状態遷移の検出は、ボックス1140でのロジックデータ教示の特定の形式を提供する。状態遷移の検出が実行されると、グリッパ動作プログラム内の特定のイベントを正確に定義するために状態遷移ロジックが使用される。このイベントは、グリッパの速度がゼロに低下するステップ(取出及び配置)、把持指令又は把持解除指令が発せられるステップ(再び取出及び配置)等である。状態マシンモデルを予め定義することにより、各状態遷移では、特定の認識可能なイベントが適切な遷移をトリガすることが予想される。
【0082】
ボックス1132では、ボックス1130で生成された手の動作データは、
図9及び
図10に関連して説明した動作修正を任意に含むことができ、これにより、人間の手によって意図せずに行われた無関係な動きの排除することによってグリッパの動きが改善され(ボックス1170)、かつ/又は、ワーク表面に対するグリッパ軸の向きが改善される(ボックス1172)。
【0083】
手のポーズデータをグリッパの動作プログラムに直接変換すること、従来の方法に比べて2つの大きな利点を提供する。第一に、動作教示のために画像からのワークの検出を排除することで、本開示の方法は計算の負荷とプログラムの複雑さを軽減する。第二に、画像からのワーク検出を排除することで、人間の手によるワークの閉塞の問題も解決される。ロボットの動作教示のためにワークのポーズデータを必要とする既存のシステムでは、通常、ワークの視認性を確保するために、複数のカメラからの画像データを必要とする。しかし、複数のカメラからの座標データを融合するには、複雑なキャリブレーション手順を要する。対象物/ワークのポーズ(位置及び向き)が接近状態において既知である限り、ロボットグリッパの動作プログラムを定義するには、一連の手のポーズステップ(手の動作データ)で十分である。
【0084】
ボックス1150でグリッパ動作プログラムが作成された後、動作プログラムは、教示の実演に使用されるコンピュータ(
図1のコンピュータ120)からロボット制御装置(制御装置170)に転送され、制御装置と通信するロボットによって実行される。このことは全て、
図1に関連して上述した。或いは、いくつかの実施形態では、人間のデモンストレーションからの動作プログラムの生成は、必要なセンサ入力を用いてロボット制御装置170で直接実行することができる。
【0085】
これまでの説明を通じて、様々なコンピュータ及び制御装置が説明、暗示されている。これらのコンピュータ及び制御装置のソフトウェアアプリケーション及びモジュールは、プロセッサ及びメモリモジュールを有する1つ以上の計算機で実行されることを理解されたい。特に、これには、
図1に示すコンピュータ120及びロボット制御装置170内のプロセッサが含まれる。具体的には、コンピュータ120及び/又はロボット制御装置170内のプロセッサは、人間のデモンストレーションからロボットプログラムを生成する技術を実行するように構成される。この技術には、上記の方法での、手の動きのキャプチャ及び分析、状態の検出、並びに動きの修正が含まれる。
【0086】
上で概説したように、人間のデモンストレーションによるロボットプログラム生成のための開示された技術は、離散状態遷移の検出及び動作経路の改善を通じて、人間の手の動きの変動及び気まぐれに対するロバスト性を提供しつつ、従前の技術よりもロボットの動作プログラミングをより速く、より簡単に、より直感的にする。
【0087】
人間のデモンストレーションによるロボットプログラム生成の複数の例示的な態様及び実施形態が説明されたが、当業者は、それらの修正、並べ替え、追加及びサブコンビネーションを認識するであろう。従って、添付の特許請求の範囲及び請求項は、それらの真の精神及び範囲内にあるそのような修正、並べ替え、追加及びサブコンビネーションの全てを含むと解釈すべきである。
【外国語明細書】