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

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

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

<>
  • 特開-実演による教示における両手検出 図1
  • 特開-実演による教示における両手検出 図2
  • 特開-実演による教示における両手検出 図3
  • 特開-実演による教示における両手検出 図4
  • 特開-実演による教示における両手検出 図5
  • 特開-実演による教示における両手検出 図6
  • 特開-実演による教示における両手検出 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022047503
(43)【公開日】2022-03-24
(54)【発明の名称】実演による教示における両手検出
(51)【国際特許分類】
   B25J 9/22 20060101AFI20220316BHJP
【FI】
B25J9/22 A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021131948
(22)【出願日】2021-08-13
(31)【優先権主張番号】17/018,674
(32)【優先日】2020-09-11
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【弁理士】
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】カイモン ワン
(72)【発明者】
【氏名】加藤 哲朗
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707JT10
3C707JU12
3C707KS03
3C707KT01
3C707KT06
3C707LW15
(57)【要約】
【課題】人間の実演によるロボット教示における両手検出方法を提供する。
【解決手段】実演者の手及び加工対象物のカメラ画像は、画像から人の実演者の左手及び右手を識別し、更に、識別された手のトリミングされたサブ画像を提供する第1のニューラルネットワークに提供される。第1のニューラルネットワークは、左手及び右手が事前に識別された画像を使用して訓練されている。次に、トリミングされたサブ画像は、画像から左右両手の姿勢を検出する第2のニューラルネットワークに提供される。第2のニューラルネットワークが右手の画像で訓練されている場合、手の姿勢検出の前及び後で左手のサブ画像が水平方向に反転される。手の姿勢データはロボットのグリッパーの姿勢データに変換され、人の実演を通じてロボットに操作を行うよう教示するために使用される。
【選択図】図3
【特許請求の範囲】
【請求項1】
画像内の両手検出方法であって、前記方法は、
人の左手及び右手を含む画像を提供すること、
プロセッサ及びメモリを有するコンピュータ上で実行されている第1のニューラルネットワークを使用して前記画像を分析し、前記左手及び前記右手の前記画像における識別及び位置を決定すること、
左手のサブ画像及び右手のサブ画像の各々を前記画像からトリミングして作成すること、
前記左手のサブ画像又は前記右手のサブ画像のいずれかを水平方向に反転することを含み、前記サブ画像を前記コンピュータ上で実行されている第2のニューラルネットワークに提供すること、
前記第2のニューラルネットワークによって前記サブ画像を分析して、前記左手及び右手の複数の重要点の3次元(3D)座標を決定すること、及び、
前記左手又は前記右手のいずれかの前記重要点の座標を水平方向に反転することを含み、ロボット教示プログラムによって前記重要点の前記3D座標を使用してグリッパーの姿勢を定義すること、を含む方法。
【請求項2】
前記画像が2次元(2D)デジタルカメラによって提供される、請求項1に記載の方法。
【請求項3】
前記第1のニューラルネットワークに左手及び右手が事前に識別された複数の訓練画像を提供する訓練プロセスにおいて、前記第1のニューラルネットワークは前記左手と前記右手を区別するように訓練される、請求項1に記載の方法。
【請求項4】
前記第1のニューラルネットワークは前記訓練画像を分析して、指の曲率及び相対位置を含む、左手及び右手の識別特性を特定する、請求項3に記載の方法。
【請求項5】
前記サブ画像の各々は、事前定義されたマージンで前記左手又は右手を含むようにトリミングされている、請求項1に記載の方法。
【請求項6】
前記左手のサブ画像又は前記右手のサブ画像のいずれかを水平方向に反転することは、前記第2のニューラルネットワークが右手の訓練画像を使用して訓練されている場合、前記左手のサブ画像を水平方向に反転すること、及び、前記第2のニューラルネットワークが左手の訓練画像を使用して訓練されている場合、前記右手のサブ画像を水平方向に反転することを含む、請求項1に記載の方法。
【請求項7】
前記左手及び右手の前記複数の重要点は、親指の先端、親指の関節、指の先端、及び、指の関節を含む、請求項1に記載の方法。
【請求項8】
前記左手又は前記右手のいずれかの前記重要点の前記座標を水平方向に反転することは、前記第2のニューラルネットワークによる分析前にサブ画像が反転された手の前記重要点の前記座標を水平方向に反転することを含む、請求項1に記載の方法。
【請求項9】
前記重要点の前記座標を水平方向に反転することは、前記座標を前記画像内の前記重要点の位置に復元するために、垂直面に対して前記座標を水平方向に反転することを含む、請求項8に記載の方法。
【請求項10】
前記画像は1つ又は複数の加工対象物も含み、前記グリッパーの姿勢及び加工対象物の位置並びに姿勢は前記ロボット教示プログラムによって使用されて、ロボットに対する加工対象物の掴みあげ及び配置指示を作成する、請求項1に記載の方法。
【請求項11】
前記指示は前記コンピュータからロボットコントローラーに提供され、前記ロボットコントローラーは前記ロボットに加工対象物への操作を実行するための制御命令を提供する、請求項10に記載の方法。
【請求項12】
人の実演によって操作を行うようロボットをプログラミングする方法であって、
人が両手を使用して加工対象物の操作を実演すること、
前記加工対象物に対する前記操作を実演する前記手のカメラ画像をコンピュータで分析し、前記手の重要点の3次元(3D)座標から計算されたグリッパーの姿勢を含む実演データを作成すること、ここで、前記画像内の左手と右手を識別するために使用される第1のニューラルネットワークと、前記識別された左手及び右手のサブ画像内で前記3D座標を計算するために使用される第2のニューラルネットワークとによって、前記画像から前記重要点の前記3D座標が決定され、
前記ロボットに前記加工対象物に対する前記操作を実行させるため、前記実演データに基づいてロボットの動作命令を生成すること、及び
前記ロボットによって前記加工対象物に対する前記操作を行うことを含む、方法。
【請求項13】
前記実演データは、前記操作の把持工程における、手の座標系、前記手の座標系に対応するグリッパーの座標系、並びに、加工対象物の座標系の位置及び向きを含む、請求項12に記載の方法。
【請求項14】
前記第1のニューラルネットワークに左手及び右手が事前に識別された複数の訓練画像が提供される訓練プロセスにおいて、前記第1のニューラルネットワークは前記左手と前記右手を区別するように訓練される、請求項12に記載の方法。
【請求項15】
前記左手のサブ画像又は前記右手のサブ画像のいずれかが、前記第2のニューラルネットワークに提供される前に水平方向に反転され、前記左手又は前記右手の前記重要点の前記3D座標は前記第2のニューラルネットワークによって計算された後で水平方向に反転される、請求項12に記載の方法。
【請求項16】
前記第2のニューラルネットワークが右手の訓練画像を使用して訓練されている場合、前記左手のサブ画像及び前記左手の前記重要点の前記3D座標は水平方向に反転される、請求項15に記載の方法。
【請求項17】
人の実演によってロボットが操作を行うようプログラムするために使用される、画像中の両手検出システムであって、前記システムは、
カメラと、
プロセッサ及びメモリを有し、前記カメラと通信しているコンピュータとを備え、
前記コンピュータは、
第1のニューラルネットワークを使用して人の左手及び右手を含む画像を分析し、前記左手及び前記右手の前記画像内の識別及び位置を決定すること、
左手のサブ画像及び右手のサブ画像の各々を前記画像からトリミングして作成すること、
前記左手のサブ画像又は前記右手のサブ画像のいずれかを水平方向に反転することを含み、前記コンピュータ上で実行されている第2のニューラルネットワークに前記サブ画像を提供すること、
前記第2のニューラルネットワークによって前記サブ画像を分析して、前記左手及び右手の複数の重要点の3次元(3D)座標を決定すること、及び、
前記左手又は前記右手のいずれかの前記重要点の前記座標を水平方向に反転することを含み、前記重要点の前記3D座標を使用して、前記ロボットのプログラミングに使用されるグリッパーの姿勢を定義すること、を含む工程を実施するよう構成された、システム。
【請求項18】
前記第1のニューラルネットワークに左手及び右手が事前に識別された複数の訓練画像が提供される訓練プロセスにおいて、前記左手と前記右手を区別するように前記第1のニューラルネットワークが訓練され、前記第1のニューラルネットワークは前記訓練画像を分析して、指の曲率や相対位置を含む、左手及び右手の特徴的な特性を特定する、請求項17に記載のシステム。
【請求項19】
前記左手のサブ画像又は前記右手のサブ画像のいずれかを水平方向に反転することは、前記第2のニューラルネットワークが右手の訓練画像を使用して訓練されている場合、前記左手のサブ画像を水平方向に反転すること、及び、前記第2のニューラルネットワークが左手の訓練画像を使用して訓練されている場合、前記右手のサブ画像を水平方向に反転することを含む、請求項17に記載のシステム。
【請求項20】
前記左手又は前記右手のいずれかの前記重要点の前記座標を水平方向に反転することは、前記第2のニューラルネットワークによる分析の前にサブ画像が反転された手の前記重要点の前記座標を水平方向に反転することを含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、産業用ロボットプログラミングの分野、より具体的には、カメラ画像から人の実演者の左手及び右手を識別し、さらに、画像から左右両手の姿勢を検出する方法に関する。手の識別及び姿勢のデータは、人の実演を通じて操作を行うロボットに教示又はプログラミングをするために用いられる。
【背景技術】
【0002】
産業用ロボットを使用して、製造、組み立て及び材料の移動などの様々な操作を繰り返し実行させることはよく知られている。しかしながら、コンベヤー上のランダムな位置及び向きの加工対象物を掴みあげ、その加工対象物をコンテナに移動するなどの非常に単純な操作であっても実行するようにロボットに教示することは、従来の方法では問題があった。
【0003】
ロボット教示の従来の方法の1つに、ロボットとロボットのグリッパーが操作を行うための正確な位置及び向きになるまで、オペレーターがティーチペンダントを使用して、ロボットに「X方向に進む」又は「グリッパーをローカルZ軸線周りに回転させる」など段階的動作を行うよう指示し、その操作データを保存し、これを何度も繰り返すというものがある。ロボットに操作の実行を教示する別の既知の技術には、人の実演と連携させたモーションキャプチャシステムの使用がある。ティーチペンダントとモーションキャプチャシステムを使用したロボットプログラミングは、直感的でなく、時間又は費用のいずれか又はその両方がかかることがわかっているため、カメラ画像を使用した人の実演によるロボット教示技術が開発された。
【0004】
多くの部品で構成される装置の組み立てなど、いくつかの種類の操作では、人は自然に両手を使用して操作タスクを実行する。このような場合にロボット教示を正確に行うためには、人の実演者の左手及び右手を確実に検出する必要がある。人の実演者の左手及び右手を識別するための1つの既知の方法は、人の全身のカメラ画像を提供し、画像の擬人化分析を実行して左腕及び右腕を識別し、次に、腕の識別に基づいて左手及び右手を識別することに関する。ただし、この技術では、手の姿勢検出に必要な画像とは別の、腕/手を識別するためのカメラ画像が必要であり、さらに、体の骨格分析のために補足的な計算工程を要する。
【0005】
人の実演者の左手及び右手を識別するために用いられ得るその他の技術では、各々の手が他方に対して相対的な位置を維持することが要求される、又は、各々の手の全ての教示動作が境界内に留まることが要求される。しかしながら、これらの技術は、人の実演者の自然な手の動きに対して維持し難い制約を課し、この制約に反した場合に手を誤認する恐れがある。
【0006】
上記状況を鑑みて、人の実演によるロボット教示における両手検出の改善された技術が必要とされている。
【発明の概要】
【0007】
本開示の教示に従って、人の実演によるロボット教示における両手検出方法を記載し、図示する。実演者の手及び加工対象物のカメラ画像は、画像から人の実演者の左手及び右手を識別し、更に、識別された手のトリミングされたサブ画像を提供する第1のニューラルネットワークに対して提供される。第1のニューラルネットワークは、左手及び右手が事前に識別された画像を用いて訓練されている。次に、トリミングされたサブ画像は、画像から左右両手の姿勢を検出する第2のニューラルネットワークに提供される。第2のニューラルネットワークが右手画像で訓練されている場合、手の姿勢検出の前及び後で左手のサブ画像が水平方向に反転される。手の姿勢データはロボットのグリッパーの姿勢データに変換され、人の実演を通じて操作を行うようロボットに教示するために使用される。
【0008】
本開示装置及び方法の追加的特徴は、添付の図面と併せて、以下に記載及び付属する特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0009】
図1図1は、本開示の一実施形態に係わる、人の手の画像を分析し、指型ロボットグリッパーの対応する位置及び向きを決定する方法を示す図である。
図2図2は、本開示の一実施形態に係わる、人の手の画像を分析し、磁気又は吸盤型ロボットグリッパーの対応する位置及び向きを決定する方法を示す図である。
図3図3は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別するシステム及び工程の図である。
図4図4は、本開示の一実施形態に係わる、図3のシステムで使用される手の検出及び識別のニューラルネットワークを訓練する工程の図である。
図5図5は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別する方法のフロー図である。
図6図6は、本開示の一実施形態に係わる、人の実演者の両手及び対応する加工対象物のカメラ画像を使用して操作を行うようロボットに教示する方法のフロー図である。
図7図7は、本開示の一実施形態に係わる、両手を用いた人の実演による教示に基づいたロボット操作のためのシステムの図である。
【発明を実施するための形態】
【0010】
人の実演によるロボット教示における両手検出に関する本開示の実施形態に関する以下の議論は、本質的に単なる例示であり、開示される装置及び技術又は、これら装置及び技術の用途又は使用を制限することを全く意図しない。
【0011】
産業用ロボットを様々な製造、組み立て及び材料移動操作に使用することはよく知られている。既知の1種のロボット操作は、「ピック、ムーブ、アンド、プレース」として知られることがある。ロボットは第1の位置で部品又は加工対象物を掴み上げ、部品を移動して第2の位置に配置する。第1の位置は、金型から取り出したばかりの部品など、ランダムな向きの部品が流れるコンベヤーベルトのことが多い。第2の位置は、異なる操作に導く別のコンベヤー又は輸送コンテナであってもよいが、いずれの場合も、部品は第2の位置で特定の位置に配置され、特定の姿勢に向けられる必要がある。複数の構成要素をコンピュータの筐体などの装置に組み立てるといったその他のロボット操作でも同様に、1つ又は複数のソースから部品を取り出して、正確な位置及び向きに配置する必要がある。
【0012】
上述した種類の操作を実行するために、通常はカメラを使用して流入する部品の位置と向きを決定し、指型グリッパー又は磁気若しくは吸盤グリッパーを使用して特定の方法で部品を把持するようにロボットに教示しなければならない。部品の向きに応じて部品を掴む方法をロボットに教示することは、典型的には人のオペレーターによってティーチペンダントを使用して行われてきた。ティーチペンダントは、ロボットとロボットのグリッパーが加工対象物を掴むための正確な位置と向きになるまで、「X方向に進む」、「グリッパーをローカルZ軸線の周りに回転させる」など、段階的に移動するようにロボットに指示するためにオペレーターが使用する。そして、ロボットの構成並びに加工対象物の位置及び姿勢は、「ピック」操作で使用するためにロボットコントローラーによって記録される。同様のティーチペンダントの命令によって、次に「ムーブ」及び「プレース」操作が定義される。しかしながら、ロボットをプログラミングするためのティーチペンダントの使用は、特に専門家ではないオペレーターにとっては、直感的ではなく、エラーが発生しやすく、時間がかかることが多々ある。
【0013】
ピック、ムーブ及びプレース操作を行うようロボットに教示する別の既知の技術には、モーションキャプチャシステムの使用がある。モーションキャプチャシステムは、ワークセルの周囲に配置された複数のカメラで構成され、オペレーターが加工対象物を操作する際に、人のオペレーター及び加工対象物の位置及び向きを記録する。操作が行われる際に、カメラ画像内でオペレーター及び加工対象物の重要な位置をより正確に検出するために、オペレーター又は加工対象物又はその両方に一意に認識可能なマーカードットが貼付される場合がある。しかしながら、この種のモーションキャプチャシステムは高価で、記録された位置が正確であるように正確に設定及び構成するのは難しく時間がかかる。
【0014】
上記の既存のロボット教示方法の制限を克服する技術が開発された。この技術には、単一のカメラを使用して、自然な部品の把持及び移動動作を行う人の画像を撮影する方法が含まれ、人の手及び部品に対する手の位置の画像が分析され、ロボットプログラミング命令が生成される。
【0015】
図1は、本開示の一実施形態に係わる、人の手の画像を分析し、指型ロボットグリッパーの対応する位置及び向きを決定する方法を示す図である。手110は、手に付着するように定義された手座標系120を有する。手110は、親指先端114を有する親指112、及び、人差し指先端118を有する人差し指116を含む。親指112及び人差し指116上の他の点、例えば、親指112及び人差し指116の基部の位置、並びに、親指112及び人差し指116の第1の関節の位置なども、カメラ画像において識別され得る。
【0016】
点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軸線から右手の法則によって見つけることができる。上述したように、ここで定義された規則は単なる例示であり、代わりに他の座標系の向きを使用してもよい。重要なのは、座標系の位置及び向きが手の主な認識可能な点に基づいて定義され得る、そして、座標系の位置及び向きがロボットのグリッパーの位置及び向きと相互に関連付けできるということである。
【0017】
カメラ(図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を二等分している。
【0018】
グリッパー座標系140の原点142は、ロボット160のツール中心点としても定義される。ツール中心点は、その位置及び向きがロボットコントローラーに認識されている点であり、コントローラーは、ロボット160に命令信号を提供して、ツール中心点及びツール中心点に関連する座標系(グリッパー座標系140)を定義された位置及び向きに移動させることができる。
【0019】
図2は、本開示の一実施形態に係わる、磁気又は吸盤型のロボットグリッパーの対応する位置及び向きを決定するために、人の手の画像を分析する方法を示す図である。図1は、可動指を有する機械式グリッパーの向きに手の姿勢を関連付ける方法を示し、図2は、吸引力又は磁力のいずれかを用いて、部品の平面で部品を引き揚げるフラットグリッパー(例えば、円形)に手の姿勢を関連付ける方法を示す。
【0020】
手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の位置及び向きが充分に定義される。
【0021】
人の実演に基づいて、特にカメラによる人の手及び加工対象物の画像の分析に基づいて、操作を行うようロボットに教示するための技術は、2020年4月8日に出願された、本出願の同一出願人による「ROBOT TEACHING BY HUMAN DEMONSTRATION」と題された米国特許出願第16/843,185号明細書に記載されている。米国特許出願第16/843,185号明細書(以下「185号出願」)は、参照によりその全体が本明細書に組み込まれる。とりわけ、185号出願は、手のカメラ画像から片手(指関節など)の重要点の3D座標を決定する技術を開示している。
【0022】
いくつかの構成要素で構成される装置の組み立てなど、一部の種類の操作では、人の実演者は自然に両手を使用して操作タスクを行う。このような場合にロボット教示を正確に行うためには、人の実演者の左手及び右手が画像で確実に識別される必要がある。人の実演者の左手及び右手を識別する1つの既知の方法は、人の全身のカメラ画像を提供し、体の画像の擬人化分析を実施して左腕及び右腕を識別し、次に、腕の識別に基づいて左手及び右手を識別することに関わる。ただし、この技術は、腕/手を識別するために、手の姿勢の検出に必要な画像とは別のカメラ画像が必要であり、更に、体の骨格分析のために追加の計算工程を要する。他の両手の教示方法では、人の実演者が手をもう片方の手の「反対側」に交差することを禁じている。
【0023】
本開示は、既存の方法で要求されるように、実演者の手の使用又は動きに人為的な制限を課すことなく、また、全身の画像及び分析を必要とせずに、185号出願の重要点検出方法を使用して、カメラ画像における人間の実演者の両手の識別、位置及び姿勢を確実に決定する技術を記載する。
【0024】
図3は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を特定するシステム及び工程の図である。カメラ310は、訓練ワークスペースの画像を提供する。すなわち、カメラ310は、教示の実演を行っている間にオペレーターの手が占める領域の画像を提供する。訓練ワークスペースは、例えば、装置が組み立てられている卓上でもよい。カメラ310は、訓練ワークスペースのカラー画像を提供するが、3Dカメラのようには深さ情報を提供しない2次元(2D)カメラが好ましい。
【0025】
カメラ310は、図3に示されるような画像312を提供する。画像312の処理は、図3に詳細に記載される。カメラ310は連続的な一連の画像を提供し、各画像は図3に示されるように処理されて、部品を掴み上げ、新しい場所に移動し、所望の姿勢で配置するといった、ロボットによって使用される完全な動作シーケンスを提供する。人の実演者は画像312の上部にいるため、右手は画像312の左側に示され、左手は画像312の右側に示される。
【0026】
画像312は、第1のニューラルネットワーク320によって分析されて、画像312における左手及び右手の識別並びに各々の位置が決定する。第1のニューラルネットワーク320は、(全身ではなく)手のみの画像で左手及び右手を識別でき、従来技術の手の画像分析システムでは利用できなかった性能を提供する。第1のニューラルネットワーク320は、画像312内の手の相対位置に関係なく、指の曲率(人の手の指は1方向にしか曲げられないという事実)及び各指と親指との相対位置などの手がかりに基づいて、左手及び右手を識別する。適切な訓練(図4を参照して後述)により、第1のニューラルネットワーク320は、画像312内の左手及び右手の識別及び位置を迅速かつ確実に決定することが実証された。
【0027】
ボックス330における第1のニューラルネットワーク320の出力に基づいて、右手のトリミングされた画像332及び左手のトリミングされた画像334が作成される。この場合も、右手の画像332及び左手の画像334は、単に画像310/312の手の位置に基づくのではなく、第1のニューラルネットワーク320による画像分析を通じて手の実際の識別に基づいて決定される。つまり、一部の画像では、左手と右手が予想される「通常の」位置の反対側に示されるように、手を交差していてもよい。
【0028】
右手の画像332及び左手の画像334は、その後の分析に提供される画像解像度を最大量にし、余分なデータを最小量にするために、図示されるように手の周りで確実にトリミングされる。右手の画像332は、線342で第2のニューラルネットワーク350に対して提供される。第2のニューラルネットワーク350は、画像332を分析して、右手の多数の重要点の3次元(3D)座標を決定する。重要点には、指先端、指関節、親指先端、及び、親指関節が含まれる。第2のニューラルネットワーク350は、特定の手の多くの画像を使用して訓練される(ここでは、説明のために右手と仮定する)。既知の(左又は右)手の識別画像から手の重要点の3D座標を決定する技術は、先に引用した第16/843,185号出願に開示されている。
【0029】
左手の画像334は、線344で提供される。第2のニューラルネットワーク350が右手の画像の重要点を認識するように訓練されている場合、左手の画像334は、第2のニューラルネットワーク350に提供される前にボックス346で水平方向に反転されなければならない。第2のニューラルネットワーク350は、画像334の反転バージョンを分析して、左手の多数の重要点(指先端、指関節など)の3次元(3D)座標を決定する。画像334は水平方向に反転されているので、第2のニューラルネットワーク350は、反転された画像334を、それが右手の画像であるかのように正確に分析することができる。
【0030】
因みに、第2のニューラルネットワーク350は、左手又は右手のいずれの画像を使用して訓練されてもよい。右手の画像を使用して第2のニューラルネットワーク350を訓練する場合、左手の画像は、第2のニューラルネットワーク350での処理のために反転されなければならず、その逆も同様である。
【0031】
線362では、右手の3D「ワイヤフレーム」構造がボックス372に提供される。先に引用した第16/843,185号出願で詳細に説明されているように、第2のニューラルネットワーク350によって出力される手の3Dワイヤフレーム構造には、元の画像の可視性に基づいて決定できる範囲の手の構造の重要点及びその接続部(例えば、座標X1/Y1/Z1の指先端を座標X2/Y2/Z2の第1関節に接続する人差し指の骨セグメントなど)が含まれる。つまり、画像内で下に曲がって隠れている指又は指の一部の位置を解決することはできない。
【0032】
線364では、左手の3Dワイヤフレーム構造が第2のニューラルネットワーク350から出力される。左手の重要点の水平座標(通常はX座標)は、ボックス374に提供される前に、ボックス366で反転されなければならない。ボックス366での水平反転は、ボックス346での元の画像の反転と同じ鏡面(例えば、Y―Z平面)に沿っていなければならない。
【0033】
上記の画像分析の結果、ボックス372は、右手の3Dワイヤフレーム構造(指及び親指の先端及び関節点の3D座標)を含み、ボックス374は、同様に、左手の3Dワイヤフレーム構造を含む。手からの3D座標データを使用して、図1及び2に示し、上述したように、グリッパー座標を計算できる。このようにして、グリッパーの位置と姿勢が計算され、線380で出力される。
【0034】
図4は、本開示の実施形態に係わる、図3のシステムで使用される手の検出及び識別のニューラルネットワーク320を訓練するための工程の図である。第1のニューラルネットワーク320は図4の中央に示される。第1のニューラルネットワーク320は図3に示し、上述したように、画像内の左手及び右手を識別し、位置を決定する役割を果たす。左手及び右手を認識するための第1のニューラルネットワーク320の訓練は、第1のニューラルネットワーク320に多くの訓練画像を提供することによって達成される。訓練画像中で、左手及び右手は所定の相対位置にある。
【0035】
画像410は、第1のニューラルネットワーク320を訓練するために使用される訓練画像の一例である。画像410は、人の実演者の左右両手を含み、左手及び右手は、分割線の所定側にある、又は、バウンディングボックス内で識別されるなど、既知の相対位置にある。画像410内で左手及び右手の位置を事前に決定する1つの方法は、手がそれらの「通常の」相対位置にあることである(手首で交差していない)。画像410内で左手及び右手の位置を事前に決定する別の方法は、手が分割線412のそれぞれの側に配置されることである。画像410において、分割線412は、画像中心又はその付近にあるが、そうである必要はない。手首で手が交差する場合は、バウンディングボックスに手動で左手及び右手の位置の注釈を付ける。
【0036】
第1のニューラルネットワーク320は、当業者には周知のように、入力層、出力層及び通常2層以上の隠れ層を内部に含む多層ニューラルネットワークである。第1のニューラルネットワーク320は、手の画像を認識し、左手と右手を区別する手の構造的特性を認識するように訓練される。指の曲率(手のひらに向かって一方向にのみ曲がる)、親指と指の相対位置など、いくつかの要因を組み合わせることで、特定の手の上下、左右を区別できる。第1のニューラルネットワーク320は、各画像の分析前に左手と右手の識別を認識しているため、ニューラルネットワーク320は、ニューラルネットワーク320の層及びノードの構造を自動的に構築して、構造的特徴を手の識別と確実に相関させることができる。複数の画像を分析する訓練により、第1のニューラルネットワーク320は、右手に特徴的な構造的特徴と左手に特徴的な特徴との対比の認識を学習する。
【0037】
出力画像420は、画像410による訓練の結果を示す。手が検出され、ボックス422内に配置され、第1のニューラルネットワーク320は、分割線412に対する手の位置に基づいて、手が右手であることを認識する。(人の体は画像410/420の上部にあるため、人の右手は画像410/420の左側にある。)同様に、手が検出され、ボックス424内に配置され、第1のニューラルネットワーク320は、手の位置に基づいて、手が左手であることを認識する。ボックス422及び424によって示されるように、手の周りでサブ画像をトリミングする技術が採用され、例えば、サブ画像は、全ての視認できる指先端及び親指先端を含む領域、並びに、手首関節として識別される位置までトリミングされる。
【0038】
画像430は、第1のニューラルネットワーク320を訓練するために使用される訓練画像の別の例である。画像430はまた、人の実演者の左右両手を含み、左手及び右手はバウンディングボックス内で識別される。画像430では、バウンディングボックス432が、右手を識別する注釈又は索引付けプロパティとして提供されている。画像430では実演者の手が交差しているので、右手は左手が予想されていた場所に位置する。しかしながら、バウンディングボックスの識別のために、第1のニューラルネットワーク320は、バウンディングボックス432内の手が実演者の右手であることを認識している。同様に、バウンディングボックス434は、左手を識別する注釈又は索引付けプロパティとして提供される。
【0039】
出力画像440は、画像430による訓練の結果を示す。手が検出され、バウンディングボックス432と本質的に同じボックス442内に配置され、第1のニューラルネットワーク320は、手が交差していても、バウンディングボックスの情報に基づいて手が右手であることを認識する。同様に、手が検出され、ボックス444内に配置され、第1のニューラルネットワーク320は、バウンディングボックスの情報に基づいて、手が左手であることを認識する。画像430/440においてボックス442及び444の手を分析することにより、第1のニューラルネットワーク320は、手の識別検出について段階的に訓練される。
【0040】
画像430は、画像410とは非常に異なる。入力画像には、様々な人の実演者、様々な構成要素、操作及び背景、手袋ありと手袋なし、さらには多少異なるカメラアングル(視点)が含まれる。入力訓練画像のこれら相違は、第1のニューラルネットワーク320を訓練して、ロボット教示の実際の実行局面で処理する画像において、手の構造と識別をロバストに認識するのに役立つ。
【0041】
他の多くの入力画像450が、訓練のために第1のニューラルネットワーク320に提供される。各入力画像450は、図4に示されるように、左手及び右手が位置決めされ、識別された出力画像460となる。訓練後、第1のニューラルネットワーク320は、図3に示すように、画像312内で(手を交差させた場合でも)左手及び右手を識別し、適切に識別された手を含むトリミングされたサブ画像を提供するといった使用が可能になる。連続的な一連の画像において、左手と右手が繰り返し重なり、交差し、交差が解かれる場合でも、正に上述したような画像内の右手及び左手を迅速かつ正確に識別する第1のニューラルネットワーク320などのニューラルネットワークの性能を実証する試験システムを開発した。
【0042】
図5は、本開示の一実施形態に係わる、人の実演者の両手のカメラ画像から手の位置及び姿勢を識別する方法のフロー図500である。フロー図500は、図3のシステムブロック図に対応する方法の工程を示す。
【0043】
ボックス502では、人の実演者の両手を含む画像が提供される。図3の画像312などの画像は、人の全身を含まないのが好ましい。また、画像の左手及び右手が「通常の」又は「予想される」相対位置にある必要はない。画像は、複数の構成要素で構成される装置の組み立てなど、1つ又は複数の加工対象物に対して、両手を使って個々の構成要素を掴みあげ配置する操作を行う人の実演者を示す。実際には、一連の空間的な把持及び配置の操作を教示することができるように、画像が迅速に連続して提供されるであろう(1秒あたり複数の画像)。手の識別、位置及び姿勢に加えて、画像から加工対象物の位置及び姿勢も決定され、手(「グリッパー」)データと組み合わせてロボット教示のために使用されるであろう。
【0044】
ボックス504では、第1のニューラルネットワーク320が使用され、提供された画像内の左手及び右手の識別及び位置を決定する。ボックス504で実行される操作は先に詳述した。ボックス506では、元画像は2つのサブ画像にトリミングされ、1つは左手を含み、1つは右手を含む。手の識別はサブ画像で提供される。
【0045】
ボックス508では、第2のニューラルネットワーク350を使用して右手のサブ画像が分析され、指の構造及び手の姿勢を検出する。ボックス508で実行される操作は上述の通りで、また、先に引用した第16/843,185号特許出願に詳細に記載されている。第2のニューラルネットワーク350は、右手又は左手いずれかの画像を使用して手の構造を検出するように訓練されているため、第2のニューラルネットワーク350での分析前にサブ画像を適切に識別する必要がある。フロー図500では、第2のニューラルネットワーク350が右手の画像を使用して訓練されていることを想定している。したがって、ボックス506からの右手のサブ画像は、ボックス508にそのまま渡される。
【0046】
ボックス510で、左手のサブ画像は、分析のためにボックス508に提供される前に、水平に反転される。繰り返すが、第2のニューラルネットワーク350は、右手の画像を使用して訓練されていることを想定している。したがって、ボックス506からの左手のサブ画像は、ボックス508に渡される前に、水平に反転されなければならない。逆の手順も同様に適用される。第2のニューラルネットワーク350が左手の画像を使用して訓練されている場合、右手のサブ画像は分析前に反転される。
【0047】
ボックス512では、右手の指の構造と手の姿勢のデータ(手の骨格の重要点の3D座標)を使用して対応するグリッパーの姿勢を計算し、ロボットの教示工程としてグリッパーの姿勢が(加工対象物の姿勢データとともに)出力される。人の実演(手及び加工対象物)の画像からロボット教示を行うための完全な方法を以下に説明する。
【0048】
ボックス514では、ボックス508からの左手に関する指の構造及び手の姿勢のデータの水平座標(例えば、X座標)が反転され、その後、ボックス512でデータを使用して対応するグリッパーの姿勢を計算し、ロボットの教示工程としてグリッパーの姿勢が出力される。手の3D座標データを元の入力画像における3D座標データの適切な位置に戻すには、水平座標データを鏡面に対して反転させるか、あるいは、鏡映を作成しなければならない。
【0049】
当業者には理解されるように、手の姿勢の3D座標の計算では、左手及び右手のサブ画像の元の入力画像における位置が常に認識されていなければならない。さらに、提供された元画像のピクセル座標は、実演が行われている物理的なワークスペースにマッピングされなければならない。これにより、画像のピクセル座標からグリッパーと加工対象物の3Dの位置及び姿勢が計算できる。
【0050】
ボックス512から、ロボットのプログラミングのためにロボットの教示工程が出力され、記録される。教示工程には、左右両手の姿勢の座標データから計算されたグリッパーの位置及び姿勢、並びに、対応する加工対象物の位置及び姿勢が含まれる。次に、プロセスは、ボックス502にループバックし、別の入力画像を受信する。
【0051】
図6は、本開示の一実施形態に係わる、人の実演者の両手及び対応する加工対象物のカメラ画像を使用して操作を行うようにロボットに教示する方法のフロー図600である。フロー図600は、ピック工程(右)、ムーブ工程(中央)、及び、プレース工程(左)に対応する3つの縦の列に配置される。3つの個々の工程は、手及び加工対象物の画像を分析してロボットのモーションプログラムを作成する方法を示す。これらの工程では、画像内の両手検出が不可欠である。
【0052】
ピック工程は、開始ボックス602から始まる。ボックス604では、カメラ310からの画像内に加工対象物及び手が検出される。先に詳細に説明された両手検出方法が、ボックス604で使用される。加工対象物の座標系の位置及び向きは、画像内の加工対象物の分析から決定され、対応する手の座標系の位置及び向きは、画像内の手の分析から決定される。
【0053】
決定ダイヤモンド606では、各手について、指先端(図1の親指先端114及び人差し指先端118)が加工対象物に接触したかどうかが決定される。これはカメラ画像から決定される。指先端が加工対象物に接触している場合、ボックス608で、加工対象物及び手の把持姿勢と位置が記録される。加工対象物に対する手の姿勢及び位置を特定することが重要である。つまり、手の座標系及び加工対象物の座標系の位置及び向きは、ワークセルの座標系などの何らかのグローバルで固定された基準座標系を基準にして定義されなければならない。これにより、コントローラーは、後の再生局面で加工対象物を掴むためにグリッパーを配置する方法を決定できる。この加工対象物の接触の分析は、右手及び左手の各々に対して実行される。
【0054】
加工対象物及び手の把持姿勢及び位置がボックス608で記録された後、ピック工程は終了ボックス610で終了する。次に、プロセスは、ボックス622から始まるムーブ工程に進む。ムーブ工程は、各々の手に対して個別に実行できる。ボックス624で、カメラ画像内に加工対象物が検出される。決定ダイヤモンド626で、カメラ画像内に加工対象物が検出されない場合、プロセスは、別の画像を取り込むためにボックス624にループバックする。カメラ画像内に加工対象物が検出された場合、ボックス628で、加工対象物の位置(及び任意で姿勢)が記録される。
【0055】
ボックス634で、カメラ画像内に手(どちらかの手―現在のムーブ操作を実行している方)が検出される。決定ダイヤモンド636で、カメラ画像内に手が検出されない場合、プロセスは、別の画像を取り込むためにボックス634にループバックする。カメラ画像内に手が検出された場合、ボックス638で、手の位置(及び任意で姿勢)が記録される。同じカメラ画像から(ボックス628から)加工対象物の位置及び(ボックス638から)手の位置の両方が検出されて、記録される場合、ボックス640で、手の位置及び加工対象物の位置が組み合わされて記録される。手の位置及び加工対象物の位置を組み合わせるには、単に2つの平均をとってもよい。例えば、親指先端114と人差し指先端118の中点が加工対象物の中心/原点と一致する必要がある場合、中点と加工対象物の中心との間で平均位置を計算することができる。
【0056】
ムーブ工程に沿った複数の位置は、「ムーブ開始」ボックス622から「手及び加工対象物の位置を組み合わせる」ボックス640までの動作を繰り返すことによって、滑らかなムーブ経路を定義するよう記録されるのが好ましい。ボックス640で、手の位置及び加工対象物の位置が組み合わされて記録され、ムーブ工程の位置がこれ以上必要なくなった後、ムーブ工程は終了ボックス642で終了する。次に、プロセスは、ボックス662から始まるプレース工程に進む。
【0057】
ボックス664で、カメラ310からの画像内に加工対象物の位置が検出される。決定ダイヤモンド666で、カメラ画像内に加工対象物が見つかるか、そして、加工対象物が静止しているかが決定される。あるいは、指の先端が加工対象物との接触を終えたかを判断することもできる。加工対象物が静止していると判断された場合、又は、指先が加工対象物との接触を終えた場合、又は、その両方の場合に、ボックス668で、加工対象物の到着時点での姿勢及び位置が記録される。プレース工程及び教示局面の全プロセスは、終了ボックス670で終了する。
【0058】
図6のフロー図600で説明されたロボット教示のプロセスは、画像内で人の手の姿勢がロバストに検出されることにかかっている。人の実演に両手の使用が含まれる場合、図3~5の両手検出方法及びシステムが必須部分になる。
【0059】
図7は、本開示の一実施形態に係わる、両手を使った人の実演による教示に基づくロボット操作のためのシステム700の図である。人の実演者710は、カメラ720が実演者の手及び操作が行われている加工対象物の画像を撮影することができる位置にいる。カメラ720は、図3のカメラ310に対応する。カメラ720はコンピュータ730に画像を提供し、コンピュータ730は、先に詳細に説明したように、画像を分析して、対応する加工対象物の位置とともに手の3Dワイヤフレーム座標を特定する。コンピュータ730による分析は、図3~5に示される両手検出方法を含む。
【0060】
人の実演者710は、複数の構成要素を組み立てて装置を完成させるといった、完全な操作を実演する。カメラ720は、連続した一連の画像を提供し、コンピュータ730は、画像を分析し、特定されたロボット教示命令を記録する。各教示工程には、手の姿勢から計算されたグリッパーの姿勢、及び、対応する加工対象物の位置/姿勢が含まれる。教示工程のこの記録は、人の実演者710の片手又は両手によって行われる把持及び配置操作を含む。
【0061】
人の実演からロボットの操作が完全に定義されると、ロボットプログラムはコンピュータ730からロボットコントローラー740に転送される。コントローラー740は、ロボット750と通信している。コントローラー740は、ロボット750に、ロボット750のグリッパー760を画像から特定されたグリッパー座標系の位置及び向きに移動させるロボット動作命令を計算する。ロボット750は、コントローラー740からの一連の命令に従って、加工対象物770に対してグリッパー760を移動し、それによって、人の実演者710によって実演された操作を遂行する。
【0062】
図7のシナリオでは、グリッパー760が加工対象物770を把持し、加工対象物770を異なる位置又は姿勢又はその両方に移動するなど加工対象物770に何らかの操作を行う。グリッパー760は、指型グリッパーとして示されているが、代わりに、前述のように、吸盤又は磁気面グリッパーであってもよい。
【0063】
図7のシステム700は、2つの異なるモードで使用することができる。1つのモードでは、人の実演者が装置の組み立てなどの操作の全工程を事前に1回教示し、次に、ロボットが人の実演によって教示された構成要素の移動指示に基づいて組み立て操作を繰り返し実行する。別のモードは遠隔操作として知られ、人の実演者がロボットとリアルタイムで連携して動作する。このモードでは、部品を掴んで移動する手の各動作が分析され、ロボットによって即座に実行され、ロボットの動きは視覚的に人のオペレーターにフィードバックされる。これらの操作モードは両方とも、人の実演による両手検出の開示された技術から利することができる。
【0064】
これまでの議論を通じて、各種コンピュータ及びコントローラーが記載、示唆された。これらのコンピュータ及びコントローラーのソフトウェアアプリケーション及びモジュールは、プロセッサ及びメモリモジュールを有する1つ又は複数のコンピューティングデバイス上で実行されることを理解されたい。特に、これは、上述したコンピュータ730及びロボットコントローラー740内のプロセッサを含む。具体的には、コンピュータ730内のプロセッサは、上記の方法による人の実演を通じたロボット教示において両手検出を実行するように構成される。
【0065】
先に概説したように、人の実演によるロボット教示における両手検出の開示された技術は、ロボットモーションプログラミングを従来の技術よりも速く、より簡単にそしてより直感的にし、単一のカメラのみを必要としながら実演者の両手の確実な検出を提供する。
【0066】
ここまで、人の実演によるロボット教示における両手検出のいくつかの好ましい態様及び実施形態を論じたが、当業者によって、それらの修正、並び替え、追加、及び、副次的組み合わせが認識されるであろう。したがって、以下の添付の特許請求の範囲及び以下に導入される特許請求の範囲は、これらの真の精神及び範囲内にあるよう、そのような修正、並び替え、追加、及び、副次的組み合わせを含むと解釈されることが意図される。
図1
図2
図3
図4
図5
図6
図7
【外国語明細書】