IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特開2023-59863人の両手の実演による双腕ロボットの教示
<>
  • 特開-人の両手の実演による双腕ロボットの教示 図1
  • 特開-人の両手の実演による双腕ロボットの教示 図2
  • 特開-人の両手の実演による双腕ロボットの教示 図3
  • 特開-人の両手の実演による双腕ロボットの教示 図4
  • 特開-人の両手の実演による双腕ロボットの教示 図5
  • 特開-人の両手の実演による双腕ロボットの教示 図6
  • 特開-人の両手の実演による双腕ロボットの教示 図7
  • 特開-人の両手の実演による双腕ロボットの教示 図8
  • 特開-人の両手の実演による双腕ロボットの教示 図9
  • 特開-人の両手の実演による双腕ロボットの教示 図10
  • 特開-人の両手の実演による双腕ロボットの教示 図11
  • 特開-人の両手の実演による双腕ロボットの教示 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023059863
(43)【公開日】2023-04-27
(54)【発明の名称】人の両手の実演による双腕ロボットの教示
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230420BHJP
   B25J 9/22 20060101ALI20230420BHJP
   G06T 7/20 20170101ALI20230420BHJP
   G06V 10/82 20220101ALI20230420BHJP
【FI】
G06T7/00 350C
B25J9/22
G06T7/20 300Z
G06V10/82
【審査請求】未請求
【請求項の数】25
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022165679
(22)【出願日】2022-10-14
(31)【優先権主張番号】17/502,636
(32)【優先日】2021-10-15
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100130133
【弁理士】
【氏名又は名称】曽根 太樹
(72)【発明者】
【氏名】ワン カイモン
(72)【発明者】
【氏名】加藤 哲朗
【テーマコード(参考)】
3C707
5L096
【Fターム(参考)】
3C707AS06
3C707BS26
3C707JS01
3C707JU02
3C707JU07
3C707KT03
3C707KT06
3C707LS09
3C707LW15
5L096AA09
5L096BA05
5L096DA02
5L096EA35
5L096FA06
5L096FA09
5L096FA12
5L096FA67
5L096FA69
5L096FA76
5L096HA02
5L096HA11
5L096JA16
5L096KA04
(57)【要約】
【課題】人の実演による両手検出を用いた効率的かつ信頼性のある双腕ロボット教示の技術を実現する。
【解決手段】人の実演からの両手検出により双腕ロボットの教示を行う方法。実演者の手とワークピースのカメラ画像が第1のニューラルネットワークに提供され、第1のニューラルネットワークは画像から左手と右手を識別し、識別された手のトリミングされたサブ画像を提供する。トリミングされたサブ画像が第2のニューラルネットワークに提供され、第2のニューラルネットワークは画像から左手と右手両方の姿勢を検出する。全体の操作に関する両手の姿勢データは、ロボットのグリッパーの姿勢データに変換され、2本のロボットアームがワークピースに対する操作を行うよう教示するのに用いられる。各手の動作が1つのロボットアームに割り当てられる。開口部に部品を挿入するような精度が要求されるタスクではカメラ画像からエッジ検出を行ってもよい。
【選択図】図3
【特許請求の範囲】
【請求項1】
人の両手の実演による双腕ロボット教示の方法であって、前記方法は、
3次元(3D)カメラからの一連の画像であって、1つ以上のワークピースに対する操作を実演する人の左手及び右手を含む前記画像を提供すること、
プロセッサ及びメモリを有するコンピュータ上で実行される第1のニューラルネットワークを用いて、前記画像の各々を分析し、前記画像内の前記左手及び前記右手の識別及び位置を決定すること、
前記コンピュータ上で実行される第2のニューラルネットワークによって、左手及び右手のサブ画像を分析し、前記左手及び前記右手の複数の重要点の座標を決定すること、
前記3Dカメラからのピクセル深度データを前記重要点に適用して、前記画像の各々の3Dの左手及び右手の姿勢データを生成すること、
前記一連の画像の前記3Dの左手及び右手の姿勢データを、前記操作を定義する3Dの左手及び右手の動作トレースに組み合わせること、
エッジ検出を使用した対象物位置推定、前記動作トレースの簡略版への置き換え、またはその両方を実行することで、前記3Dの左手及び右手の動作トレースを改良すること、並びに、
ロボットコントローラによる前記改良された3Dの左手及び右手の動作トレースを使用して、双腕ロボットシステムを制御して前記操作を実行させることを含み、前記左手の動作トレースが一方のロボットアームによって実行され、前記右手の動作トレースが他方のロボットアームによって実行される、方法。
【請求項2】
訓練プロセスにおいて、前記第1のニューラルネットワークは前記左手と前記右手を区別するように訓練され、前記訓練プロセスでは左手と右手がすでに識別されている複数の訓練画像が前記第1のニューラルネットワークに提供され、前記第1のニューラルネットワークは前記訓練画像を分析して、指の曲率及び相対位置を含む左手並びに右手の際立った特徴を識別する、請求項1に記載の方法。
【請求項3】
前記サブ画像の各々は、予め定義された余白で前記左手または右手を含むようにトリミングされる請求項1に記載の方法。
【請求項4】
前記第2のニューラルネットワークは、左手または右手いずれかの複数の訓練画像を用いて訓練される、請求項1に記載の方法。
【請求項5】
前記第2のニューラルネットワークによる分析は、前記第2のニューラルネットワークが右手の訓練画像を用いて訓練されている場合に、前記分析の前後で前記左手のサブ画像を水平方向に反転させること、及び、前記第2のニューラルネットワークが左手の訓練画像を用いて訓練されている場合に、前記分析の前後で前記右手のサブ画像を水平方向に反転させることを含む、請求項4に記載の方法。
【請求項6】
前記左手及び右手の前記複数の重要点は、親指先端、親指関節、指先端、及び指関節を含む、請求項1に記載の方法。
【請求項7】
グリッパーの姿勢は、前記3Dの左手及び右手の動作トレースにおける前記3Dの左手及び右手の姿勢データに基づいて決定される、請求項1に記載の方法。
【請求項8】
対象物位置推定は、前記実演前に前記1つ以上のワークピースの視覚的画像を第1のエッジ画像に変換すること、前記実演後に前記1つ以上のワークピースの視覚的画像を第2のエッジ画像に変換すること、前記第1のエッジ画像から前記第2のエッジ画像を減算して差分エッジ画像を作成すること、並びに、前記差分エッジ画像で特定された特徴を用いて、前記1つ以上のワークピースの対応する特徴の位置及び向きを決定することを含む、請求項1に記載の方法。
【請求項9】
前記1つ以上のワークピースの前記対応する特徴の前記位置及び向きは、前記実演の前後両方で決定され、前記実演前の前記対応する特徴の位置及び向きは、前記3Dの左手及び右手の動作トレースにおける対象物掴みあげ点を補正するために用いられ、並びに、前記実演後の前記対応する特徴の前記位置及び向きは、前記3Dの左手及び右手の動作トレースにおける対象物配置点を補正するために用いられる、請求項8に記載の方法。
【請求項10】
前記動作トレースを簡略版に置き換えることは、最小二乗補間を用いて元の経路点一式から新しい経路点一式を作成し、スプライン補間を用いて新しい経路点一式を通る平滑化された動作トレースを計算すること、または、前記動作トレースの各々を、経路反転点及びピーク経路点を用いて構築した水平線分及び垂直線分からなる簡略化されたトレースに置き換えることを含む、請求項1に記載の方法。
【請求項11】
前記ロボットコントローラは、前記1つ以上のワークピースを含むロボットワークスペースの画像を受信し、前記改良された3Dの左手及び右手の動作トレースを使用して、前記双腕ロボットシステムを制御して前記操作を実行させる、請求項1に記載の方法。
【請求項12】
前記ロボットコントローラは、前記改良された3Dの左手及び右手の動作トレースを、前記動作トレース内の動作点が前記ロボットワークスペースの前記画像内の前記1つ以上のワークピースの位置に一致するように転置し、前記動作点は、グリッパーが前記ワークピースの1つを把持、把持解除または押圧する点を含む、請求項11に記載の方法。
【請求項13】
人の両手の実演によって操作を行うよう双腕ロボットシステムをプログラミングする方法であって、前記方法は、
人が両手を使用してワークピースの前記操作を実演すること、
前記ワークピースに対する前記操作を実演する前記手のカメラ画像をコンピュータで分析し、前記手の重要点の3次元(3D)座標から計算されたグリッパーの姿勢を含む実演データを作成すること、ここで、前記画像内の左手と右手を識別するために使用される第1のニューラルネットワークと、前記識別された左手及び右手のサブ画像内で前記3D座標を計算するために使用される第2のニューラルネットワークとによって、前記画像から前記重要点の前記3D座標が決定され、
エッジ検出を使用して動作点を補正する対象物位置推定、前記実演データの簡略版への置き換え、または、その両方を実行することで、前記実演データを改良すること、
前記双腕ロボットシステムに前記ワークピースに対する前記操作を実行させるため、前記実演データに基づいて、ロボット動作命令を生成すること、ここで、一方のロボットアームが前記人の片手によって実演されたタスクを実行し、他方のロボットアームが他方の手によって実演されたタスクを実行し、及び、
前記双腕ロボットシステムによって前記ワークピースに対する前記操作を行うことを含む、方法。
【請求項14】
前記実演データは、前記操作の把持工程における、手の座標系、前記手の座標系に対応するグリッパーの座標系、並びに、ワークピースの座標系の位置及び向きを含む、請求項13に記載の方法。
【請求項15】
訓練プロセスにおいて、前記第1のニューラルネットワークは前記左手と前記右手を区別するように訓練され、前記訓練プロセスでは左手と右手がすでに識別されている複数の訓練画像が前記第1のニューラルネットワークに提供される、請求項13に記載の方法。
【請求項16】
前記第2のニューラルネットワークは左手または右手いずれかの複数の訓練画像を用いて訓練され、前記第2のニューラルネットワークが右手の訓練画像を用いて訓練される場合、前記第2のニューラルネットワークによる分析の前後で前記左手のサブ画像は水平方向に反転され、前記第2のニューラルネットワークが左手の訓練画像を用いて訓練される場合、前記第2のニューラルネットワークによる分析の前後で前記右手のサブ画像は水平方向に反転される、請求項13に記載の方法。
【請求項17】
人の両手の実演によって双腕ロボットを教示するシステムであって、前記システムは、
3次元(3D)カメラ、
プロセッサ及びメモリを有するコンピュータであって、
3次元(3D)カメラからの一連の画像であって、1つ以上のワークピースに対する操作を実演する人の左手及び右手を含む前記画像を受信すること、
第1のニューラルネットワークを用いて、前記画像の各々を分析し、前記画像内の前記左手及び前記右手の識別及び位置を決定すること、
第2のニューラルネットワークによって、左手及び右手のサブ画像を分析し、前記左手及び前記右手の複数の重要点の座標を決定すること、
前記3Dカメラからのピクセル深度データを前記重要点に適用して、前記画像の各々の3Dの左手及び右手の姿勢データを生成すること、
前記一連の画像の前記3Dの左手及び右手の姿勢データを、前記操作を定義する3Dの左手及び右手の動作トレースに組み合わせること、並びに、
エッジ検出を使用した対象物位置推定、前記動作トレースの簡略版への置き換え、またはその両方を実行することで、前記3Dの左手及び右手の動作トレースを改良すること、を含む工程を実行するように構成された前記コンピュータ、並びに、
前記コンピュータと通信するロボットコントローラであって、前記改良された3Dの左手及び右手の動作トレースを使用して、双腕ロボットシステムを制御して前記操作を実行させ、前記左手の動作トレースが一方のロボットアームによって実行され、前記右手の動作トレースが他方のロボットアームによって実行される前記コントローラを備える、システム。
【請求項18】
訓練プロセスにおいて、前記第1のニューラルネットワークは前記左手と前記右手を区別するように訓練され、前記訓練プロセスでは左手と右手がすでに識別されている複数の訓練画像が前記第1のニューラルネットワークに提供され、前記第1のニューラルネットワークは前記訓練画像を分析して、指の曲率及び相対位置を含む左手並びに右手の際立った特徴を識別する、請求項17に記載のシステム。
【請求項19】
前記第2のニューラルネットワークは左手または右手のいずれかの複数の訓練画像を用いて訓練され、前記第2のニューラルネットワークを使用して分析することは、前記第2のニューラルネットワークが右手の訓練画像を使用して訓練されている場合に、前記分析の前後で前記左手のサブ画像を水平方向に反転させること、及び、前記第2のニューラルネットワークが左手の訓練画像を使用して訓練されている場合に、前記分析の前後に前記右手のサブ画像を水平方向に反転させることを含む、請求項17に記載のシステム。
【請求項20】
前記左手及び右手の前記複数の重要点は、親指先端、親指関節、指先端及び指関節を含み、グリッパーの姿勢は、前記3Dの左手及び右手の動作トレースにおける前記3Dの左手及び右手の姿勢データに基づいて決定される、請求項17に記載のシステム。
【請求項21】
対象物位置推定は、前記実演前に前記1つ以上のワークピースの視覚的画像を第1のエッジ画像に変換すること、前記実演後に前記1つ以上のワークピースの視覚的画像を第2のエッジ画像に変換すること、前記第1のエッジ画像から前記第2のエッジ画像を減算して差分エッジ画像を作成すること、並びに、前記差分エッジ画像内で特定された特徴を用いて、前記1つ以上のワークピースの対応する特徴の位置及び向きを決定することを含む、請求項17に記載のシステム。
【請求項22】
前記1つ以上のワークピースの前記対応する特徴の前記位置及び向きは、前記実演の前後両方で決定され、前記実演前の前記対応する特徴の前記位置及び向きは、前記3Dの左手及び右手の動作トレースにおける対象物掴みあげ点を補正するために用いられ、並びに、前記実演後の前記対応する特徴の前記位置及び向きは、前記3Dの左手及び右手の動作トレースにおける対象物配置点を補正するために用いられる、請求項21によるシステム。
【請求項23】
前記動作トレースを簡略版に置き換えることは、最小二乗補間を用いて元の経路点一式から新しい経路点一式を作成し、スプライン補間を用いて前記新しい経路点一式を通る平滑化された動作トレースを計算すること、または、前記動作トレースの各々を、経路反転点及びピーク経路点を用いて構築した水平線分及び垂直線分からなる簡略化されたトレースに置き換えることを含む、請求項17記載のシステム。
【請求項24】
前記ロボットコントローラは、前記1つ以上のワークピースを含むロボットワークスペースの画像を受信し、前記改良された3Dの左手及び右手の動作トレースを使用して、前記双腕ロボットシステムを制御して操作を実行させる、請求項17に記載のシステム。
【請求項25】
前記ロボットコントローラは、前記改良された3Dの左手及び右手の動作トレースを、前記動作トレース内の動作点が前記ロボットワークスペースの前記画像内の前記1つまたはワークピースの位置に一致するように転置し、前記動作点は、グリッパーが前記ワークピースの1つを把持、把持解除または押圧する点を含む、請求項24に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年9月11日に出願された「DUAL HAND DETECTION IN TEACHING FROM DEMONSTRATION」と題された米国実用特許出願第17/018,674号の一部継続出願である。
【0002】
本開示は、産業用ロボットプログラミングの分野、より具体的には、一連のカメラ画像から人の実演者の左手及び右手の識別及び姿勢を決定する方法に関し、その結果得られた手の動作トレースは、動作点の精度及び経路の平滑性について改良され、改良された動作トレースは、人の実演を通じて双腕ロボットシステム(dual arm robot system)が操作を実行するように教示またはプログラミングするために使用される。
【背景技術】
【0003】
産業用ロボットを使用して、製造、組み立て及び材料の移動などの様々な操作を繰り返し実行させることはよく知られている。しかしながら、コンベヤー上のランダムな位置及び向きのワークピースを掴みあげ、そのワークピースをコンテナに移動するなどの非常に単純な操作であっても実行するようにロボットに教示することは、従来の方法では問題があった。
【0004】
ロボット教示の従来の方法の1つに、ロボットとロボットのグリッパーが操作を行うための正確な位置及び向きになるまで、オペレータがティーチペンダントを使用して、ロボットに「X方向に進む」または「グリッパーをローカルZ軸線周りに回転させる」など段階的動作を行うよう指示し、その操作データを保存し、これを何度も繰り返すというものがある。ロボットに操作の実行を教示する別の既知の技術には、人の実演と連携させたモーションキャプチャシステムの使用がある。ティーチペンダントとモーションキャプチャシステムを使用したロボットプログラミングは、直感的でなく、時間及び/または費用がかかることがわかっているため、カメラ画像を使用した人の実演によるロボット教示技術が開発された。
【0005】
多くの部品で構成される装置の組み立てなど、いくつかの種類の操作では、人は自然に両手を使用して操作タスクを実行する。このような場合にロボット教示を正確に行うためには、人の実演者の左手及び右手を確実に検出する必要がある。人の実演者の左手及び右手を識別するための1つの既知の方法は、人の全身のカメラ画像を提供し、画像の擬人化分析を実行して左腕及び右腕を識別し、次に、腕の識別に基づいて左手及び右手を識別することに関する。ただし、この技術では、手の姿勢検出に必要な画像とは別の、腕/手を識別するためのカメラ画像が必要であり、さらに、体の骨格分析のために補足的な計算工程を要する。
【0006】
人の実演者の左手及び右手を識別するために用いられ得るその他の技術では、各々の手が他方に対して相対的な位置を維持することが要求される、または、各々の手の全ての教示動作が境界内に留まることが要求される。しかしながら、これらの技術は、人の実演者の自然な手の動きに対して維持し難い制約を課し、この制約に反した場合に手を誤認する恐れがある。
【0007】
さらに、ロボットによる部品の移動もしくは製品の組み立てタスクの中には、2本のロボットアームを使用し、2本のロボットアームが2つの異なる操作を同時に行う、または2本のロボットアームが共同して部品を掴みあげ、配置する、及び、設置するなどのタスクを行うものがある。双腕ロボットの教示は、前述した従来の方法では困難で時間がかかるという問題がある。2本のロボットアームに動作を教示する場合、この問題はさらに深刻になる。
【0008】
上記状況を鑑みて、人の実演による両手検出を用いた効率的かつ信頼性のある双腕ロボット教示の技術が必要とされている。
【発明の概要】
【0009】
本開示の教示にしたがって、人の実演における両手検出により双腕ロボットの教示を行う方法を説明し、図示する。実演者の手とワークピースのカメラ画像が、第1のニューラルネットワークに提供され、第1のニューラルネットワークは画像から左手と右手を識別し、識別された手のトリミングされたサブ画像を提供する。トリミングされたサブ画像は第2のニューラルネットワークに提供され、第2のニューラルネットワークは画像から左手と右手両方の姿勢を検出する。全体の操作に関する両手の姿勢データは、ロボットのグリッパーの姿勢データに変換され、2本のロボットアームがワークピースに対する操作を行うよう教示するのに用いられる。各手の動作が1つのロボットアームに割り当てられる。開口部に部品を挿入するような精度が要求されるタスクでは、部品位置推定を改善するために、カメラ画像からエッジ検出を行いロボットの動作を改良することも可能である。
【0010】
本開示装置及び方法の追加的特徴は、添付の図面と併せて、以下に記載及び付属する特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0011】
図1図1は、本開示の一実施形態に係わる、人の手の画像を分析し、指型ロボットグリッパーの対応する位置及び向きを決定する方法を示す図である。
図2図2は、本開示の一実施形態に係わる、人の手の画像を分析し、磁気または吸盤型ロボットグリッパーの対応する位置及び向きを決定する方法を示す図である。
図3図3は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別するシステム及び工程の図である。
図4図4は、本開示の一実施形態に係わる、図3のシステムで使用される手の検出及び識別のニューラルネットワークを訓練する工程の図である。
図5図5は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別する方法のフローチャート図である。
図6図6は、本開示の一実施形態に係わる、人の実演者の両手及び対応するワークピースのカメラ画像を使用して操作を行うようロボットに教示する方法のフローチャート図である。
図7図7は、本開示の一実施形態に係わる、両手を用いた人の実演による教示に基づいたロボット操作のためのシステムの図である。
図8図8は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別し、両手の動作を改良し、2本のロボットアームに教示するために両手動作を使用するシステム及び工程のブロック図である。
図9図9は、図8の工程の1つに示される、両手の動作の改良された開始位置及び目標位置を提供するための、視覚ベースのエッジ検出を用いた精密な対象物位置推定の複数工程の技術の図である。
図10図10は、図8の工程の1つに示される、手の動作トレースを平滑化または簡略化するための2つの異なる技術を示す一式の3Dグラフである。
図11図11は、本開示の一実施形態に係わる、両手を用いた人の実演による教示に基づく双腕ロボットの操作のシステム図である。
図12図12は、本開示の一実施形態に係わる、人の実演における両手検出から双腕ロボットの教示を行う方法のフローチャート図である。
【発明を実施するための形態】
【0012】
人の両手の実演による双腕ロボットの教示に関する本開示の実施形態に関する以下の議論は、本質的に単なる例示であり、開示される装置及び技術、または、これら装置及び技術の用途もしくは使用を制限することを全く意図しない。
【0013】
産業用ロボットを様々な製造、組み立て及び材料移動操作に使用することはよく知られている。既知の1種のロボット操作は、「ピック、ムーブ、アンド、プレース」として知られることがある。ロボットは第1の位置で部品またはワークピースを掴みあげ、部品を移動して第2の位置に配置する。第1の位置は、金型から取り出したばかりの部品など、ランダムな向きの部品が流れるコンベヤーベルトのことが多い。第2の位置は、異なる操作に導く別のコンベヤーまたは輸送コンテナであってもよいが、いずれの場合も、部品は第2の位置で特定の位置に配置され、特定の姿勢に向けられる必要がある。複数の構成要素をコンピュータの筐体などの装置に組み立てるといったその他のロボット操作でも同様に、1つまたは複数のソースから部品を取り出して、正確な位置及び向きに配置する必要がある。
【0014】
上述した種類の操作を実行するために、通常はカメラを使用して流入する部品の位置と向きを決定し、指型グリッパーまたは磁気もしくは吸盤グリッパーを使用して特定の方法で部品を把持するようにロボットに教示しなければならない。部品の向きに応じて部品を掴む方法をロボットに教示することは、典型的には人のオペレータによってティーチペンダントを使用して行われてきた。ティーチペンダントは、ロボットとロボットのグリッパーがワークピースを掴むための正確な位置と向きになるまで、「X方向に進む」、「グリッパーをローカルZ軸線の周りに回転させる」など、段階的に移動するようにロボットに指示するためにオペレータが使用する。そして、ロボットの構成並びにワークピースの位置及び姿勢は、「ピック」操作で使用するためにロボットコントローラによって記録される。同様のティーチペンダントの命令によって、次に「ムーブ」及び「プレース」操作が定義される。しかしながら、ロボットをプログラミングするためのティーチペンダントの使用は、特に専門家ではないオペレータにとっては、直感的ではなく、エラーが発生しやすく、時間がかかることが多々ある。
【0015】
ピック、ムーブ及びプレース操作を行うようロボットに教示する別の既知の技術には、モーションキャプチャシステムの使用がある。モーションキャプチャシステムは、ワークセルの周囲に配置された複数のカメラで構成され、オペレータがワークピースを操作する際に、人のオペレータ及びワークピースの位置及び向きを記録する。操作が行われる際に、カメラ画像内でオペレータ及びワークピースの重要な位置をより正確に検出するために、オペレータ及び/またはワークピースに一意に認識可能なマーカードットが貼付される場合がある。しかしながら、この種のモーションキャプチャシステムは高価で、記録された位置が正確であるように正確に設定及び構成するのは難しく時間がかかる。
【0016】
上記の既存のロボット教示方法の制限を克服する技術が開発された。この技術には、単一のカメラを使用して、自然な部品の把持及び移動動作を行う人の画像を撮影する方法が含まれ、人の手及び部品に対する手の位置の画像が分析され、ロボットプログラミング命令が生成される。
【0017】
図1は、本開示の一実施形態に係わる、人の手の画像を分析し、指型ロボットグリッパーの対応する位置及び向きを決定する方法を示す図である。手110は、手に付着するように定義された手の座標系120を有する。手110は、親指先端114を有する親指112、及び、人差し指先端118を有する人差し指116を含む。親指112及び人差し指116上の他の点、例えば、親指112及び人差し指116の基部の位置、並びに、親指112及び人差し指116の第1の関節の位置なども、カメラ画像において識別され得る。
【0018】
点122は、親指112の基部と人差し指116の基部との中間に位置し、点122は、手の座標系120の原点として定義される。手の座標系120の向きは、ロボットグリッパーの向きと相互に関連させるのに適した任意の規則を使用して定義され得る。例えば、手の座標系120のY軸線は、親指112及び人差し指116の平面(同平面は、点114、118、及び122によって定義される)に対して垂直であると定義され得る。よって、X軸線及びZ軸線は、親指112及び人差し指116の平面内にある。さらに、Z軸線は、親指112と人差し指116によってなされる角度(角度114‐122‐118)を二等分するものとして定義され得る。X軸線の向きは、既知のY軸線及びZ軸線から右手の法則によって見つけることができる。上述したように、ここで定義された規則は単なる例示であり、代わりに他の座標系の向きを使用してもよい。重要なのは、座標系の位置及び向きが手の主な認識可能な点に基づいて定義され得る、そして、座標系の位置及び向きがロボットのグリッパーの位置及び向きと相互に関連付けできるということである。
【0019】
カメラ(図1には図示せず。後述)を使用して手110の画像を提供し得る。画像は分析されて、親指先端114及び人差し指先端118及び指関節部分、つまり、原点位置122及び手の基準座標系120の向きを含む、親指112及び人差し指116の(ワークセルの座標系内などの)空間位置が決定され得る。図1では、手の基準座標系120の位置及び向きは、ロボット160に装着されたグリッパー150のグリッパー座標系140と相互に関連付けられる。グリッパー座標系140は、手の基準座標系120の原点122に対応する原点142と、人差し指先端118及び親指先端114にそれぞれ対応する点144及び146を有する。したがって、指型グリッパー150の2本の指は、グリッパー座標系140のX‐Z平面内にあり、Z軸線は、角146‐142‐144を二等分している。
【0020】
グリッパー座標系140の原点142は、ロボット160のツール中心点としても定義される。ツール中心点は、その位置及び向きがロボットコントローラに認識されている点であり、コントローラは、ロボット160に命令信号を提供して、ツール中心点及びツール中心点に関連する座標系(グリッパー座標系140)を定義された位置及び向きに移動させることができる。
【0021】
図2は、本開示の一実施形態に係わる、磁気または吸盤型のロボットグリッパーの対応する位置及び向きを決定するために、人の手の画像を分析する方法を示す図である。図1は、可動指を有する機械式グリッパーの向きに手の姿勢を関連付ける方法を示し、図2は、吸引力または磁力のいずれかを用いて、部品の平面で部品を引き揚げるフラットグリッパー(例えば、円形)に手の姿勢を関連付ける方法を示す。
【0022】
手210はまた、親指212及び人差し指216を含む。点214は、親指212が部品220と接触する地点に位置する。点218は、人差し指216が部品220と接触する地点に位置する。点230は、点214と218との中間にあるものとして定義され、点230は、ロボット260の面グリッパー250のツール中心点(TCP)240に対応する。図2に示される面グリッパー250の場合、グリッパー250の平面は、線214‐218を含む平面として定義され、指関節及び指の先端の検出に基づいて、親指212及び人差し指216の平面に対して垂直な平面として定義され得る。グリッパー250のツール中心点240は、上述したように、点230に対応する。これによって、手210の位置及び姿勢に対応する面グリッパー250の位置及び向きが充分に定義される。
【0023】
人の実演に基づいて、特にカメラによる人の手及びワークピースの画像の分析に基づいて、操作を行うようロボットに教示するための技術は、2020年4月8日に出願された、本出願の同一出願人による「ROBOT TEACHING BY HUMAN DEMONSTRATION」と題された米国特許出願第16/843,185号明細書に記載されている。米国特許出願第16/843,185号明細書(以下「185号出願」)は、参照によりその全体が本明細書に援用される。とりわけ、185号出願は、手のカメラ画像から片手(指関節など)の重要点の3D座標を決定する技術を開示している。
【0024】
いくつかの構成要素で構成される装置の組み立てなど、一部の種類の操作では、人の実演者は自然に両手を使用して操作タスクを行う。このような場合にロボット教示を正確に行うためには、人の実演者の左手及び右手が画像で確実に識別される必要がある。人の実演者の左手及び右手を識別する1つの既知の方法は、人の全身のカメラ画像を提供し、体の画像の擬人化分析を実施して左腕及び右腕を識別し、次に、腕の識別に基づいて左手及び右手を識別することに関わる。ただし、この技術は、腕/手を識別するために、手の姿勢の検出に必要な画像とは別のカメラ画像が必要であり、更に、体の骨格分析のために追加の計算工程を要する。他の両手の教示方法では、人の実演者が手をもう片方の手の「反対側」に交差することを禁じている。
【0025】
本開示は、既存の方法で要求されるように、実演者の手の使用または動きに人為的な制限を課すことなく、また、全身の画像及び分析を必要とせずに、185号出願の重要点検出方法を使用して、カメラ画像における人間の実演者の両手の識別、位置及び姿勢を確実に決定する技術を記載する。
【0026】
図3は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を特定するシステム及び工程の図である。カメラ310は、訓練ワークスペースの画像を提供する。すなわち、カメラ310は、教示の実演を行っている間にオペレータの手が占める領域の画像を提供する。訓練ワークスペースは、例えば、装置が組み立てられている卓上でもよい。カメラ310は、訓練ワークスペースのカラー画像を提供するが、3Dカメラのようには深度情報を提供しない2次元(2D)カメラが好ましい。
【0027】
カメラ310は、図3に示されるような画像312を提供する。画像312の処理は、図3に詳細に記載される。カメラ310は連続的な一連の画像を提供し、各画像は図3に示されるように処理されて、部品を掴みあげ、新しい場所に移動し、所望の姿勢で配置するといった、ロボットによって使用される完全な動作シーケンスを提供する。人の実演者は画像312の上部にいるため、右手は画像312の左側に示され、左手は画像312の右側に示される。
【0028】
画像312は、第1のニューラルネットワーク320によって分析されて、画像312における左手及び右手の識別並びに各々の位置が決定する。第1のニューラルネットワーク320は、(全身ではなく)手のみの画像で左手及び右手を識別でき、従来技術の手の画像分析システムでは利用できなかった性能を提供する。第1のニューラルネットワーク320は、画像312内の手の相対位置に関係なく、指の曲率(人の手の指は1方向にしか曲げられないという事実)及び各指と親指との相対位置などの手がかりに基づいて、左手及び右手を識別する。適切な訓練(図4を参照して後述)により、第1のニューラルネットワーク320は、画像312内の左手及び右手の識別及び位置を迅速かつ確実に決定することが実証された。
【0029】
ボックス330における第1のニューラルネットワーク320の出力に基づいて、右手のトリミングされた画像332及び左手のトリミングされた画像334が作成される。この場合も、右手の画像332及び左手の画像334は、単に画像310/312の手の位置に基づくのではなく、第1のニューラルネットワーク320による画像分析を通じて手の実際の識別に基づいて決定される。つまり、一部の画像では、左手と右手が予想される「通常の」位置の反対側に示されるように、手を交差していてもよい。
【0030】
右手の画像332及び左手の画像334は、その後の分析に提供される画像解像度を最大量にし、余分なデータを最小量にするために、図示されるように手の周りで確実にトリミングされる。右手の画像332は、線342で第2のニューラルネットワーク350に対して提供される。第2のニューラルネットワーク350は、画像332を分析して、右手の多数の重要点の3次元(3D)座標を決定する。重要点には、指先端、指関節、親指先端、及び、親指関節が含まれる。第2のニューラルネットワーク350は、特定の手の多くの画像を使用して訓練される(ここでは、説明のために右手と仮定する)。既知の(左または右)手の識別画像から手の重要点の3D座標を決定する技術は、先に引用した米国特許出願第16/843,185号明細書に開示されている。
【0031】
左手の画像334は、線344で提供される。第2のニューラルネットワーク350が右手の画像の重要点を認識するように訓練されている場合、左手の画像334は、第2のニューラルネットワーク350に提供される前にボックス346で水平方向に反転されなければならない。第2のニューラルネットワーク350は、画像334の反転バージョンを分析して、左手の多数の重要点(指先端、指関節など)の3次元(3D)座標を決定する。画像334は水平方向に反転されているので、第2のニューラルネットワーク350は、反転された画像334を、それが右手の画像であるかのように正確に分析することができる。
【0032】
ちなみに、第2のニューラルネットワーク350は、左手または右手のいずれの画像を使用して訓練されてもよい。右手の画像を使用して第2のニューラルネットワーク350を訓練する場合、左手の画像は、第2のニューラルネットワーク350での処理のために反転されなければならず、その逆も同様である。
【0033】
線362では、右手の3D「ワイヤフレーム」構造がボックス372に提供される。先に引用した米国特許出願第16/843,185号明細書で詳細に説明されているように、第2のニューラルネットワーク350によって出力される手の3Dワイヤフレーム構造には、元の画像の可視性に基づいて決定できる範囲の手の構造の重要点及びその接続部(例えば、座標X1/Y1/Z1の指先端を座標X2/Y2/Z2の第1関節に接続する人差し指の骨セグメントなど)が含まれる。つまり、画像内で下に曲がって隠れている指または指の一部の位置を解決することはできない。
【0034】
線364では、左手の3Dワイヤフレーム構造が第2のニューラルネットワーク350から出力される。左手の重要点の水平座標(通常はX座標)は、ボックス374に提供される前に、ボックス366で反転されなければならない。ボックス366での水平反転は、ボックス346での元の画像の反転と同じ鏡面(例えば、Y‐Z平面)に沿っていなければならない。
【0035】
上記の画像分析の結果、ボックス372は、右手の3Dワイヤフレーム構造(指及び親指の先端及び関節点の3D座標)を含み、ボックス374は、同様に、左手の3Dワイヤフレーム構造を含む。手からの3D座標データを使用して、図1及び2に示し、上述したように、グリッパー座標を計算できる。このようにして、グリッパーの位置と姿勢が計算され、線380で出力される。
【0036】
図4は、本開示の実施形態に係わる、図3のシステムで使用される手の検出及び識別のニューラルネットワーク320を訓練するための工程の図である。第1のニューラルネットワーク320は図4の中央に示される。第1のニューラルネットワーク320は図3に示し、上述したように、画像内の左手及び右手を識別し、位置を決定する役割を果たす。左手対右手を認識するための第1のニューラルネットワーク320の訓練は、第1のニューラルネットワーク320に多くの訓練画像を提供することによって達成される。訓練画像中で、左手及び右手は所定の相対位置にある。
【0037】
画像410は、第1のニューラルネットワーク320を訓練するために使用される訓練画像の一例である。画像410は、人の実演者の左右両手を含み、左手及び右手は、分割線の所定側にある、または、バウンディングボックス内で識別されるなど、既知の相対位置にある。画像410内で左手及び右手の位置を事前に決定する1つの方法は、手がそれらの「通常の」相対位置にあることである(手首で交差していない)。画像410内で左手及び右手の位置を事前に決定する別の方法は、手が分割線412のそれぞれの側に配置されることである。画像410において、分割線412は、画像中心またはその付近にあるが、必ずしもそうである必要はない。手首で手が交差する場合は、バウンディングボックスに手動で左手及び右手の位置の注釈を付ける。
【0038】
第1のニューラルネットワーク320は、当業者には周知のように、入力層、出力層及び通常2層以上の隠れ層を内部に含む多層ニューラルネットワークである。第1のニューラルネットワーク320は、手の画像を認識し、左手と右手を区別する手の構造的特性を認識するように訓練される。指の曲率(手のひらに向かって一方向にのみ曲がる)、親指と指の相対位置など、いくつかの要因を組み合わせることで、特定の手の上下、左右を区別できる。第1のニューラルネットワーク320は、各画像の分析前に左手と右手の識別を認識しているため、ニューラルネットワーク320は、ニューラルネットワーク320の層及びノードの構造を自動的に構築して、構造的特徴を手の識別と確実に相関させることができる。複数の画像を分析する訓練により、第1のニューラルネットワーク320は、右手に特徴的な構造的特徴と左手に特徴的な特徴との対比の認識を学習する。
【0039】
出力画像420は、画像410による訓練の結果を示す。手が検出され、ボックス422内に配置され、第1のニューラルネットワーク320は、分割線412に対する手の位置に基づいて、手が右手であることを認識する。(人の体は画像410/420の上部にあるため、人の右手は画像410/420の左側にある。)同様に、手が検出され、ボックス424内に配置され、第1のニューラルネットワーク320は、手の位置に基づいて、手が左手であることを認識する。ボックス422及び424によって示されるように、手の周りでサブ画像をトリミングする技術が採用され、例えば、サブ画像は、全ての視認できる指先端及び親指先端を含む領域、並びに、手首関節として識別される位置までトリミングされる。
【0040】
画像430は、第1のニューラルネットワーク320を訓練するために使用される訓練画像の別の例である。画像430はまた、人の実演者の左右両手を含み、左手及び右手はバウンディングボックス内で識別される。画像430では、バウンディングボックス432が、右手を識別する注釈または索引付けプロパティとして提供されている。画像430では実演者の手が交差しているので、右手は左手が予想されていた場所に位置する。しかしながら、バウンディングボックスの識別のために、第1のニューラルネットワーク320は、バウンディングボックス432内の手が実演者の右手であることを認識している。同様に、バウンディングボックス434は、左手を識別する注釈または索引付けプロパティとして提供される。
【0041】
出力画像440は、画像430による訓練の結果を示す。手が検出され、バウンディングボックス432と本質的に同じボックス442内に配置され、第1のニューラルネットワーク320は、手が交差していても、バウンディングボックスの情報に基づいて手が右手であることを認識する。同様に、手が検出され、ボックス444内に配置され、第1のニューラルネットワーク320は、バウンディングボックスの情報に基づいて、手が左手であることを認識する。画像430/440においてボックス442及び444の手を分析することにより、第1のニューラルネットワーク320は、手の識別検出について段階的に訓練される。
【0042】
画像430は、画像410とは非常に異なる。入力画像には、様々な人の実演者、様々な構成要素、操作及び背景、手袋あり対手袋なし、さらには多少異なるカメラアングル(視点)が含まれる。入力訓練画像のこれら相違は、第1のニューラルネットワーク320を訓練して、ロボット教示の実際の実行局面で処理する画像において、手の構造と識別をロバストに認識するのに役立つ。
【0043】
他の多くの入力画像450が、訓練のために第1のニューラルネットワーク320に提供される。各入力画像450は、図4に示されるように、左手及び右手が位置決めされ、識別された出力画像460となる。訓練後、第1のニューラルネットワーク320は、図3に示すように、画像312内で(手を交差させた場合でも)左手及び右手を識別し、適切に識別された手を含むトリミングされたサブ画像を提供するといった使用が可能になる。連続的な一連の画像において、左手と右手が繰り返し重なり、交差し、交差が解かれる場合でも、正に上述したような画像内の右手及び左手を迅速かつ正確に識別する第1のニューラルネットワーク320などのニューラルネットワークの性能を実証する試験システムを開発した。
【0044】
図5は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別する方法のフローチャート図500である。フローチャート図500は、図3のシステムブロック図に対応する方法の工程を示す。
【0045】
ボックス502では、人の実演者の両手を含む画像が提供される。図3の画像312などの画像は、人の全身を含まないのが好ましい。また、画像の左手及び右手が「通常の」または「予想される」相対位置にある必要はない。画像は、複数の構成要素で構成される装置の組み立てなど、1つまたは複数のワークピースに対して、両手を使って個々の構成要素を掴みあげ配置する操作を行う人の実演者を示す。実際には、一連の空間的な把持及び配置の操作を教示することができるように、画像が迅速に連続して提供されるであろう(1秒あたり複数の画像)。手の識別、位置及び姿勢に加えて、画像からワークピースの位置及び姿勢も決定され、手(「グリッパー」)データと組み合わせてロボット教示のために使用されるであろう。
【0046】
ボックス504では、第1のニューラルネットワーク320が使用され、提供された画像内の左手及び右手の識別及び位置を決定する。ボックス504で実行される操作は先に詳述した。ボックス506では、元画像は2つのサブ画像にトリミングされ、1つは左手を含み、1つは右手を含む。手の識別はサブ画像で提供される。
【0047】
ボックス508では、第2のニューラルネットワーク350を使用して右手のサブ画像が分析され、指の構造及び手の姿勢を検出する。ボックス508で実行される操作は上述の通りで、また、先に引用した米国特許出願第16/843,185号明細書に詳細に記載されている。第2のニューラルネットワーク350は、右手または左手いずれかの画像を使用して手の構造を検出するように訓練されているため、第2のニューラルネットワーク350での分析前にサブ画像を適切に識別する必要がある。フローチャート図500では、第2のニューラルネットワーク350が右手の画像を使用して訓練されていることを想定している。したがって、ボックス506からの右手のサブ画像は、ボックス508にそのまま渡される。
【0048】
ボックス510で、左手のサブ画像は、分析のためにボックス508に提供される前に、水平方向に反転される。繰り返すが、第2のニューラルネットワーク350は、右手の画像を使用して訓練されていることを想定している。したがって、ボックス506からの左手のサブ画像は、ボックス508に渡される前に、水平方向に反転されなければならない。逆の手順も同様に適用される。第2のニューラルネットワーク350が左手の画像を使用して訓練されている場合、右手のサブ画像は分析前に反転される。
【0049】
ボックス512では、右手の指の構造と手の姿勢データ(手の骨格の重要点の3D座標)を使用して対応するグリッパーの姿勢を計算し、ロボットの教示工程としてグリッパーの姿勢が(ワークピースの姿勢データとともに)出力される。人の実演(手及びワークピース)の画像からロボット教示を行うための完全な方法を以下に説明する。
【0050】
ボックス514では、ボックス508からの左手に関する指の構造及び手の姿勢データの水平座標(例えば、X座標)が反転され、その後、ボックス512でデータを使用して対応するグリッパーの姿勢を計算し、ロボットの教示工程としてグリッパーの姿勢が出力される。手の3D座標データを元の入力画像における3D座標データの適切な位置に戻すには、水平座標データを鏡面に対して反転またはミラーリングしなければならない。
【0051】
当業者には理解されるように、手の姿勢の3D座標の計算では、左手及び右手のサブ画像の元の入力画像における位置が常に認識されていなければならない。さらに、提供された元画像のピクセル座標は、実演が行われている物理的なワークスペースにマッピングされなければならない。これにより、画像のピクセル座標からグリッパーとワークピースの3Dの位置及び姿勢が計算できる。
【0052】
ボックス512から、ロボットのプログラミングのためにロボットの教示工程が出力され、記録される。教示工程には、左右両手の姿勢の座標データから計算されたグリッパーの位置及び姿勢、並びに、対応するワークピースの位置及び姿勢が含まれる。次に、プロセスは、ボックス502にループバックし、別の入力画像を受信する。
【0053】
図6は、本開示の一実施形態に係わる、人の実演者の両手及び対応するワークピースのカメラ画像を使用して操作を行うようにロボットに教示する方法のフローチャート図600である。フローチャート図600は、ピック工程(右)、ムーブ工程(中央)、及び、プレース工程(左)に対応する3つの縦の列に配置される。3つの個々の工程は、手及びワークピースの画像を分析してロボットの動作プログラムを作成する方法を示す。これらの工程では、画像内の両手検出が不可欠である。
【0054】
ピック工程は、開始ボックス602から始まる。ボックス604では、カメラ310からの画像内にワークピース及び手が検出される。先に詳細に説明された両手検出方法が、ボックス604で使用される。ワークピースの座標系の位置及び向きは、画像内のワークピースの分析から決定され、対応する手の座標系の位置及び向きは、画像内の手の分析から決定される。
【0055】
決定ダイヤモンド606では、各手について、指先端(図1の親指先端114及び人差し指先端118)がワークピースに接触したかどうかが決定される。これはカメラ画像から決定される。指先端がワークピースに接触している場合、ボックス608で、ワークピース及び手の把持姿勢と位置が記録される。ワークピースに対する手の姿勢及び位置を特定することが重要である。つまり、手の座標系及びワークピースの座標系の位置及び向きは、ワークセルの座標系などの何らかのグローバルで固定された基準座標系を基準にして定義されなければならない。これにより、コントローラは、後の再生局面でワークピースを掴むためにグリッパーを配置する方法を決定できる。このワークピースの接触の分析は、右手及び左手の各々に対して実行される。
【0056】
ワークピース及び手の把持姿勢及び位置がボックス608で記録された後、ピック工程は終了ボックス610で終了する。次に、プロセスは、ボックス622から始まるムーブ工程に進む。ムーブ工程は、各々の手に対して個別に実行できる。ボックス624で、カメラ画像内にワークピースが検出される。決定ダイヤモンド626で、カメラ画像内にワークピースが検出されない場合、プロセスは、別の画像を取り込むためにボックス624にループバックする。カメラ画像内にワークピースが検出された場合、ボックス628で、ワークピースの位置(及び任意で姿勢)が記録される。
【0057】
ボックス634で、カメラ画像内に手(どちらかの手‐現在のムーブ操作を実行している方)が検出される。決定ダイヤモンド636で、カメラ画像内に手が検出されない場合、プロセスは、別の画像を取り込むためにボックス634にループバックする。カメラ画像内に手が検出された場合、ボックス638で、手の位置(及び任意で姿勢)が記録される。同じカメラ画像から(ボックス628から)ワークピースの位置及び(ボックス638から)手の位置の両方が検出されて、記録される場合、ボックス640で、手の位置及びワークピースの位置が組み合わされて記録される。手の位置及びワークピースの位置を組み合わせるには、単に2つの平均をとってもよい。例えば、親指先端114と人差し指先端118の中点がワークピースの中心/原点と一致する必要がある場合、中点とワークピースの中心との間で平均位置を計算することができる。
【0058】
ムーブ工程に沿った複数の位置は、「ムーブ開始」ボックス622から「手及びワークピースの位置を組み合わせる」ボックス640までの動作を繰り返すことによって、平滑なムーブ経路を定義するよう記録されるのが好ましい。ボックス640で、手の位置及びワークピースの位置が組み合わされて記録され、ムーブ工程の位置がこれ以上必要なくなった後、ムーブ工程は終了ボックス642で終了する。次に、プロセスは、ボックス662から始まるプレース工程に進む。
【0059】
ボックス664で、カメラ310からの画像内にワークピースの位置が検出される。決定ダイヤモンド666で、カメラ画像内にワークピースが見つかるか、そして、ワークピースが静止しているかが決定される。あるいは、指の先端がワークピースとの接触を終えたかを判断することもできる。ワークピースが静止していると判断された場合、または、指先端がワークピースとの接触を終えた場合、または、その両方の場合に、ボックス668で、ワークピースの到着時点での姿勢及び位置が記録される。プレース工程及び教示局面の全プロセスは、終了ボックス670で終了する。
【0060】
図6のフローチャート図600で説明されたロボット教示のプロセスは、画像内で人の手の姿勢がロバストに検出されることにかかっている。人の実演に両手の使用が含まれる場合、図3図5の両手検出方法及びシステムが必須部分になる。
【0061】
図7は、本開示の一実施形態に係わる、両手を使った人の実演による教示に基づくロボット操作のためのシステム700の図である。人の実演者710は、カメラ720が実演者の手及び操作が行われているワークピースの画像を撮影することができる位置にいる。カメラ720は、図3のカメラ310に対応する。カメラ720はコンピュータ730に画像を提供し、コンピュータ730は、先に詳細に説明したように、画像を分析して、対応するワークピースの位置とともに手の3Dワイヤフレーム座標を特定する。コンピュータ730による分析は、図3図5に示される両手検出方法を含む。
【0062】
人の実演者710は、複数の構成要素を組み立てて装置を完成させるといった、完全な操作を実演する。カメラ720は、連続した一連の画像を提供し、コンピュータ730は、画像を分析し、特定されたロボット教示命令を記録する。各教示工程には、手の姿勢から計算されたグリッパーの姿勢、及び、対応するワークピースの位置/姿勢が含まれる。教示工程のこの記録は、人の実演者710の片手または両手によって行われる把持及び配置操作を含む。
【0063】
人の実演からロボットの操作が完全に定義されると、ロボットプログラムはコンピュータ730からロボットコントローラ740に転送される。コントローラ740は、ロボット750と通信している。コントローラ740は、ロボット750に、ロボット750のグリッパー760を画像から特定されたグリッパー座標系の位置及び向きに移動させるロボット動作命令を計算する。ロボット750は、コントローラ740からの一連の命令に従って、ワークピース770に対してグリッパー760を移動し、それによって、人の実演者710によって実演された操作を遂行する。
【0064】
図7のシナリオでは、グリッパー760がワークピース770を把持し、ワークピース770を異なる位置または姿勢またはその両方に移動するなどワークピース770に何らかの操作を行う。グリッパー760は、指型グリッパーとして示されているが、代わりに、前述のように、吸盤または磁気面グリッパーであってもよい。
【0065】
図7のシステム700は、2つの異なるモードで使用することができる。1つのモードでは、人の実演者が装置の組み立てなどの操作の全工程を事前に1回教示し、次に、ロボットが人の実演によって教示された構成要素の移動指示に基づいて組み立て操作を繰り返し実行する。別のモードは遠隔操作として知られ、人の実演者がロボットとリアルタイムで連携して動作する。このモードでは、部品を掴んで移動する手の各動作が分析され、ロボットによって即座に実行され、ロボットの動きは視覚的に人のオペレータにフィードバックされる。これらの操作モードは両方とも、人の実演による両手検出の開示された技術から利することができる。
【0066】
前述の議論では、ロボットにワークピースを把持して移動させることを教示するため、人の実演者の左手と右手の動きを確実に検出し、両手の動きを使用してグリッパーの動作を定義する技術について説明した。この方法は、人の実演者の両手検出を使用して、2本のロボットアームの協調動作を教示するように拡張することができる。この技術について以下で述べる。
【0067】
図8は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別し、両手の動作を改良し、2本のロボットアームに教示するために両手動作を使用するシステム及び工程のブロック図である。図8の上部は、図3を参照して上述したように動作する。
【0068】
カメラ810は、実演者の両手、及び、実演者によって取り扱われているワークピースを含む、人の実演場面の連続的な一連の画像を提供する。カメラ810は、画像を第1のニューラルネットワーク820に提供し、第1のニューラルネットワーク820は、ボックス830で各画像の左手と右手を識別し、セグメント化するよう訓練されている。前述したように、第1のニューラルネットワーク820は、左手と右手が交差していても、適切に識別することができる。左手及び右手のトリミングされた画像は、分析のために第2のニューラルネットワーク840に提供される。第2のニューラルネットワーク840は手の重要点を検出するために(右手または左手の画像で)訓練されている。第2のニューラルネットワーク840によって2つの経路、すなわち、左手のトリミング画像の経路と、右手のトリミング画像の経路とが示される。同じニューラルネットワーク840を使用して、左手と右手の両方を分析することができる。前述したように、訓練に使用されていない方の手は、ニューラルネットワーク840による分析の前後に反転させる必要がある。ボックス850では、両手の手の重要点(例えば、関節及び指先端)が提供される。カメラ810からボックス850までに関する全ては、前述したとおりである。人の実演者が行う操作全体に関して、一連の各画像について(例えば、0.1秒の画像間隔で)両手検出が行われ、その結果、各手について連続した位置/姿勢データが取得される。
【0069】
ボックス860において、カメラ810からのピクセル深度データは、手の重要点と統合され、実演者の左手の3Dの手の動作トレース862及び実演者の右手のトレース872が提供される。3Dカメラ810からのピクセル深度データを使用することは、動作トレース862及び872の点の3D座標を取得する好ましい技術である。1つ以上のカメラ810を使用すること、手のサイズデータ(各指の各関節の長さ)を事前に提供することなど、手の重要点の3D座標を取得する他の技術も可能である。
【0070】
後述する(そして更に詳細に議論する)シナリオでは、左手トレース862は、メモリカードを掴むために手を下げ(点864)、次にメモリカードを持ち上げ、カードを設置位置に配置するため下げている(点866)ことを示す。その際、右手トレース872は下降してメモリカードの一端をスロットに押し込み(点874)、その後、右手トレース872は上昇し離れる。次に、左手トレース862が上昇し、まだ入り込んでいないメモリカードの反対側の端部に移動し、メモリカードのその端部をスロットに押し込む(点868)。ここでも、ボックス860に示された3Dトレースは、人の実演による左手及び右手の動作トレースであり、これらの手の動作は、双腕ロボットシステムのロボットグリッパーの動作(図1及び図2参照)に置き換えることができる。
【0071】
ボックス880では、ボックス860からの動作トレースに対して2つの異なる改良処理が実行される。第1の改良は対象物位置推定であり、対象物(例えば、メモリカード)を設置する装置(例えば、コンピュータの筐体)に対する対象物の配置誤差を最小化するために視覚的なエッジ検出技術が使用される。対象物位置推定は任意選択であり、通常、精密な配置が必要な場合(組み立てタスクなど)にのみ使用され、対象物を単にコンテナやコンベヤー上に配置する場合などには通常使用されない。第2の改良は経路の平滑化または簡略化であり、これも任意選択であり、置き換えるトレースがロボットのプログラミングにより適するように、手の動作トレースが小さなひねりのある手の動作を排除する方法で再定義される。ボックス880の改良プロセスは、図9及び図10を参照して更に後述される。
【0072】
ボックス890において、人の実演者の左手及び右手からの改良された動作トレースが双腕ロボットシステムに提供され、「左」のロボットアームが人の左手の動作及びタスクを実行し、「右」のロボットアームが人の右手の動作及びタスクを実行する。図8では、図の視点が逆になっているため、左手及び左のロボットアームが図の右側に表示されている。前述したように、第2のニューラルネットワーク840による手の分析によって親指及び指の位置が提供され、手の動作とグリッパーの位置の両方を決定するために使用できる。したがって、ボックス890で提供されるロボット命令によって、人によって実演されたタスクの実行のために、ロボットコントローラに各ロボットアームの移動、グリッパーの向きの制御、及び、グリッパー操作(把持及び把持解除)の制御を充分行わせることができる。
【0073】
図9は、視覚ベースのエッジ検出を用いた精密な対象物位置推定のための複数工程の技術を説明する図であり、図8のボックス880に示されるような、両手動作の改良された開始位置及び目標位置が提供される。ボックス910では、カメラ810から、メモリカード設置前の人の実演場面のRGB(カラー)画像が提供される。ボックス910における画像の図では、コンピュータの筐体912及びメモリカード914が示されている。メモリカード914は、ロボットのグリッパーによって把持可能な位置にカード914を保持するホルダ内にあり、次に、ロボットのグリッパーは、カード914をコンピュータの筐体912のスロットに設置する。ボックス920において、ボックス910からのRGB画像のエッジ画像が提供される。ボックス920におけるエッジ画像は、当技術分野において周知の方法で、ボックス910における視覚(RBG)画像のエッジ検出分析を実行することによって提供される。エッジ検出分析は、上述した手の姿勢分析と同じコンピュータで実行することができる。
【0074】
ボックス930において、メモリカード設置後の人の実演場面のRGB画像が、カメラ810から提供される。ボックス930における画像の図では、コンピュータの筐体912とメモリカード914はまだ視認できるが、この時点でメモリカード914はコンピュータの筐体912のスロットの設置位置にある。ボックス940において、ボックス930からのRGB画像のエッジ画像は、前述のように、エッジ分析を実行することによって提供される。
【0075】
ボックス950において、ボックス940のエッジ画像から、ボックス920のエッジ画像が減算される。ボックス920のエッジ画像とボックス940のエッジ画像との間の唯一の顕著な差異は、メモリカード914の位置であり、メモリカード914は、ホルダ内の位置から(横にある)筐体912内の設置位置まで移動している。差分エッジ画像が、ボックス960に示され(ボックス922とボックス942によって定義される領域が拡大されている)、メモリカード914の上端が、任意のエッジ分析画像につきもののいくらかのノイズピクセルとともに、線962としてその設置位置に視認できる。ボックス970において、ボックス960の主要な特徴(メモリカード914の上端を表す線962)が、ボックス930の画像に転置されて(拡大されて)示される。
【0076】
図9で説明し、示した手順は、手の動作トレース862及び872を補正する充分な情報を提供するため、メモリカード914の上端の開始位置及び終了位置が、その精密な位置に調整される。すなわち、点864の3D座標は、ボックス910における設置前画像のメモリカード914の上端の中心(または、所望により若干中心からずれた位置)に調整することが可能であり、ここで、左のロボットアームがホルダからカード914を把持することになる。同様に、点866は、ボックス970のカード914の精密な設置位置に基づいて(端線962を使用して)調整される。同様に、点874は、カード914の一端付近の線962上になるように調整することができ、点868は、カード914の他端付近の線962上になるように調整することができる。
【0077】
図9に示された画像エッジ分析は、図8のボックス860に示された手の動作トレースとしての座標系と同じである固定座標系を用いて実行されることが理解されるであろう。したがって、動作トレースの重要な動作点に精密な対象物の位置を提供するために、図9のエッジ検出対象物位置推定手順(図8のボックス880)に従って、手の動作トレースは補正されている。すなわち、部品(メモリカード)を掴みあげる、メモリカードを精密な場所に置く、メモリカードの上端を押してスロットに固定する、などの動作の位置は、図9のエッジ分析/対象物位置推定から取得される。また、カードの角度方向も、手の姿勢データではなく、エッジ分析/対象物位置推定から取得される。
【0078】
図10は、図8のボックス880に示されるように、手の動作トレースを平滑化または簡略化するための2つの異なる技術を示す一式の3Dグラフである。人の実演者がロボット教示のためにピック、ムーブ、及びプレース操作を実演するとき、人の手はしばしば意図しない余計な動きをし、それは往々にして小さな振幅である。ここで開示される技術は、手の大きな動作(開始点及び終了点、並びに、通常の動作形状)を使用して、ロボット動作のプログラミングにより適した特性を有するより平滑な動作プロファイルを提供するものである。
【0079】
グラフ1010は、図8のボックス860に示されるような、元の手の動作トレースを含む。3Dの手の動作トレース862は、実演者の左手の動作を描き、トレース872は、実演者の右手の動作を描く。前述のシナリオでは、左手のトレース862は、手を下げて(経路矢印1)メモリカードを掴みあげ(点864)、メモリカードを持ち上げてから下げ(経路矢印2)、カードを設置する位置に置く(点866)様子を描く。その際、右手のトレース872が下降し(経路矢印3)、メモリカードの一端をスロットに押し込み(点874)、その後、右手のトレース872が持ち上がって離れる。次に、左手のトレース862が持ち上がって、まだ入り込んでいないメモリカードの反対側の端部に移動し(経路矢印4)、メモリカードのその端部をスロットに押し込む(点868)。
【0080】
図9に関連して説明したように、動作点864、866、868及び874の位置及び向きは、エッジ検出ベースの対象物位置推定によって(組み立てなどの精密配置タスクのために)更新された。参考のために、メモリカード914もグラフ1010上に示されている。図10の3Dグラフは、いずれも図8及び図9について上述した同じ固定座標系を表している。
【0081】
グラフ1020は、それぞれ元の対応するトレース862及び872と比較して平滑化された動作トレース1022及び1032を含む3Dグラフである。トレース862及び872はそれぞれ多数の経路点に従い、各経路点は図8に示されるように、1つの画像の手の姿勢分析から決定されることが理解される。平滑化された動作トレース1022は、トレース862からの元の経路点を基礎として、元の点から不要または余分な偏倚動作を除去した新しい一式の点を作成するために最小二乗補間を使用し、新しい一式の点を通ったトレース1022を計算するためにスプライン補間を使用して計算される。同じことが、平滑化された動作トレース1032についても当てはまる。最小二乗補間は、動作点864、866、868、及び、874を移動させることができない。したがって、平滑化された動作トレース1022及び1032は、図9のエッジ検出対象物位置推定によって補正された位置にある動作点864、866、868、及び、874を含む。平滑化された動作トレース1022及び1032は、元の手の動作トレースの小振幅の「ひっかかり」動作を含まないので、ロボット動作プログラミングにより好適である。
【0082】
グラフ1040は、元の対応するトレース862及び872を簡略化された線分ベースのトレースで置き換えた動作トレース1042及び1052を含む3Dグラフである。元の手の動作トレース862を例として、簡略化されたトレース1042を構成する複数の線分が定義され、第1の3つの線分一式は、トレース862上の元の点から点864、点866、及び、最高点(最大z座標)を使用して構築される。第1の線分は、点864から最高点と同じz座標を有する点1044まで真上(同じx及びy座標)に描くことによって作成される。第2の線分は、点1044から、点866の真上にある点1046まで作成される。第2の線分は水平で、点1044から点1046に向かう途中で最高点を通過する。最後の第3の線分は、点1046から点866まで垂直に下降している。このようにして定義された3つの線分は、元のトレース862の第1の大きな動き(点864から点866まで)を表している。同じ技術を使用して、元のトレース862の第2の動作を表す簡略化された線分ベースのトレースを定義する。これらの線分を合わせて、簡略化されたトレース1042が構成される。
【0083】
元の手の動作トレース872(単に圧入タスクを実行する右手)は、単一の線分に置き換えることができる。再度強調するが、簡略化された動作トレース1042及び1052は、図9のエッジ検出対象物位置推定によって補正された位置に動作点864、866、868及び874を含む。簡略化された動作トレース1042及び1052は、明らかに、ロボット動作プログラミングに非常に適している。簡略化された動作トレース1042及び1052は、例えば、四角い角を丸めることによって、ロボット動作プログラミングに更に適したものにすることができる。
【0084】
図11は、本開示の一実施形態に係わる、両手を使った人の実演による教示に基づく、双腕ロボット操作のシステム1100を示す図である。人の実演者は、卓上形式のワークスペース1110において操作(この場合、組み立てまたは設置タスク)を実演する。ワークスペース1110において、カメラ1120は、実演者の手(1112/1114)、及び、操作が実施されるワークピース(コンピュータの筐体1116及びメモリカード1118)を撮像する。カメラ1120は、図8のカメラ810に相当する。カメラ1120は画像をコンピュータ1130に提供し、コンピュータ1130は、画像を分析して、先に詳述したように、対応するワークピースの位置とともに、予め訓練された2つのニューラルネットワークを用いて手の重要点座標を特定する。図11の装置間の接続(例えば、カメラとコンピュータ、コントローラとロボットなど)は、先の図7と同様に、有線、無線、またはその組み合わせであってもよいことが当業者には理解されるであろう。コンピュータ1130による分析は、図3図5及び図8に示される両手検出法を含み、その結果、把持、押下及び把持解除などの動作を含む左手及び右手の動作トレースが得られる。
【0085】
コンピュータ1130は、図8のボックス860に示されるように、カメラ1120からの深度データを、人の実演からの左手及び右手の動作トレースにおける経路点に適用する。また、コンピュータ1130は、任意選択で、手の動作トレースに対して2つの異なる改良処理を適用する。第1の改良処理は、エッジ検出を用いた対象物位置推定であり、これは、1つのピースを別のピースの開口に挿入する組み立てプロセスのように、精密な対象物位置推定が必要な場合に有利に使用される。この対象物位置推定技術により、メモリカードを掴みあげて、カードをスロットに挿入するといった動作点の位置が補正され、残りの手の動作トレースは人の実演者と同じままになる。第2の改良処理は、ロボットプログラミングにより適した動作トレースを提供するために、(対象物位置推定による補正後の)手の動作トレースを、平滑化または簡略化することに関連する。コンピュータ1130による画像分析と経路の改良の結果、左右の動作トレースが確定される。
【0086】
コンピュータ1130は、確定された左右の動作トレースをロボットコントローラ1140に提供する。コントローラ1140は、ロボットワークスペース1160の画像を撮影するように配置されたカメラ1150と通信している。ロボットワークスペース1160には、左ロボット1162及び右ロボット1164、並びに、ロボット1162/1164によって操作されるワークピースがある。ワークピースは、ワークスペース1110において実演が行われたコンピュータの筐体1116及びメモリカード1118に相当する。カメラ1150は、ワークピースの画像をコントローラ1140に提供し、コントローラ1140は、ロボット1162/1164に制御命令を提供して、ロボット1162/1164に人が実演したとおりの操作を実行させる。コントローラ1140は、ワークスペースの座標系における各ロボットのグリッパーの位置と向きを常に把握している。ワークピースの画像データにより、コントローラ1140は、コンピュータ1130からの確定された左右の動作トレースを用いて、グリッパーを動かし、実演通りの精密な部品設置操作を行うことができる。左ロボット1162は、実演による左手の動作トレースの動作及び作用を行い、右ロボット1164は、実演による右手の動作トレースの動作及び作用を行う。
【0087】
図11の双腕ロボット教示システムは、部品が移動するタスクや各タスクで部品がランダムに配置されるタスク、例えば、コンベヤー上に入荷した部品や、箱から一度に一つずつ選択される部品の山など、にも適用可能である。この場合、教示工程は、図6を参照して詳述したように、手の重要点検出及びワークピースの姿勢検出の両方を含み、一定の向きの部品を把持するための手の姿勢を決定する。
【0088】
図12は、本開示の一実施形態に係わる、人の実演における両手検出による双腕ロボット教示の方法のフローチャート図1200である。ボックス1210において、人の実演者の両手画像は、3Dデジタルカメラによって提供される。画像は、先に詳述したように、両手による動作及び作用を捕捉できるように、連続した流れとして提供される。ボックス1220において、手が「交差」してワークスペース実演場面における通常の位置から外れている場合でも、画像内の左手及び右手の識別を決定するために第1の訓練されたニューラルネットワークが使用される。識別された左手及び右手のトリミングされたサブ画像が、ボックス1220から提供される。
【0089】
ボックス1230で、トリミングされたサブ画像を第2の訓練されたニューラルネットワークで分析し、左手と右手の指の構造(指先端及び関節を含む重要点の座標)を検出する。ボックス1240において、手の姿勢データを得るためにカメラからの深度データが加えられ、ワークスペースの座標系における左手及び右手の動作トレースに3D経路点が提供される(グリッパーの構成も指/親指の位置から決定される)。決定ダイヤモンド1250において、タスクの実演が完了したかどうかが判断される。タスクが完了していない場合、プロセスは、手及びワークピースの画像を提供することに戻り、手の動作データが、連続した経路点として捕捉され続ける。
【0090】
決定ダイヤモンド1250でタスクが完了すると、それに伴って左手及び右手の動作トレースも完了し、プロセスはボックス1260に移行し、手の動作トレースは対象物位置推定によって任意選択で改良される。ボックス1260における対象物位置推定は、左手及び右手の全体的な動作トレースを維持し、前述したように画像エッジ分析に基づいて動作点(例えば、ピック、プレース、プレス)の位置を補正する。ボックス1270において、改良された手の動作トレースは、任意選択で、図10の技術の1つを使用して平滑化または簡略化される。ボックス1270における改良の結果、左右の動作トレースが確定する。
【0091】
ボックス1280において、確定された左右の動作トレースは、2本のロボットアームを操作するロボットコントローラに提供される。ロボットコントローラは、操作されるワークピースの画像を受け取り、確定された左右の動作トレースを用いて、ワークピースに対する操作を実行するように左右のロボットアームに命令する。また、動作トレースには、手の姿勢データ(親指と人差し指の相対位置など)から決定されるグリッパーの動作も含まれる。
【0092】
これまでの議論を通じて、各種コンピュータ及びコントローラが記載、示唆された。これらのコンピュータ及びコントローラのソフトウェアアプリケーション及びモジュールは、プロセッサ及びメモリモジュールを有する1つまたは複数のコンピューティングデバイス上で実行されることを理解されたい。特に、これは、上述したコンピュータ730及び1130、並びに、ロボットコントローラ740及び1140内のプロセッサを含む。具体的には、コンピュータ1130のプロセッサは、第1及び第2のニューラルネットワークによる両手検出、並びに、動作トレース改良を含む、人の実演を介した双腕ロボット教示を上述した方法で実行するように構成される。
【0093】
先に概説したように、人の実演による双腕ロボット教示における両手検出の開示された技術は、ロボットの動作プログラミングを従来の技術よりも速く、より簡単にそしてより直感的にし、単一のカメラのみを必要としながら人の実演者の両手の信頼性のある検出を提供し、精密な部品配置を必要とする組み立てタスクに対してさえも、双腕ロボットシステムの円滑なプログラミングを可能にする。
【0094】
ここまで、人の実演による両手検出を利用した双腕ロボット教示におけるいくつかの好ましい態様及び実施形態を論じたが、当業者によって、それらの修正、並び替え、追加、及び、副次的組み合わせが認識されるであろう。したがって、以下の添付の特許請求の範囲及び以下に導入される特許請求の範囲は、これらの真の精神及び範囲内にあるよう、そのような修正、並び替え、追加、及び、副次的組み合わせを含むと解釈されることが意図される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】