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

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

▶ オムロン株式会社の特許一覧 ▶ 国立大学法人 東京大学の特許一覧

<>
  • 特許-ロボットシステム及びピッキング方法 図1
  • 特許-ロボットシステム及びピッキング方法 図2
  • 特許-ロボットシステム及びピッキング方法 図3
  • 特許-ロボットシステム及びピッキング方法 図4
  • 特許-ロボットシステム及びピッキング方法 図5
  • 特許-ロボットシステム及びピッキング方法 図6
  • 特許-ロボットシステム及びピッキング方法 図7
  • 特許-ロボットシステム及びピッキング方法 図8
  • 特許-ロボットシステム及びピッキング方法 図9
  • 特許-ロボットシステム及びピッキング方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-01
(45)【発行日】2024-08-09
(54)【発明の名称】ロボットシステム及びピッキング方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240802BHJP
【FI】
B25J13/08 A
【請求項の数】 8
(21)【出願番号】P 2020151539
(22)【出願日】2020-09-09
(65)【公開番号】P2022045772
(43)【公開日】2022-03-22
【審査請求日】2023-07-12
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】石毛 真修
(72)【発明者】
【氏名】梅舘 拓也
(72)【発明者】
【氏名】井尻 善久
【審査官】田中 成彦
(56)【参考文献】
【文献】国際公開第2019/065426(WO,A1)
【文献】特表2019-503278(JP,A)
【文献】国際公開第2019/094937(WO,A1)
【文献】特開2012-055999(JP,A)
【文献】特開2016-059983(JP,A)
【文献】特開2019-089145(JP,A)
【文献】特開2013-086186(JP,A)
【文献】特表2018-507116(JP,A)
【文献】特開2020-082322(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ワークを把持する複数の指を備えたロボット機構と、
前記複数の指による前記ワークの把持状態を検出する検出部と、
前記検出部の検出結果に基づいて前記複数の指に把持されたワークの数を認識する認識部と、
前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、前記認識部により認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御する制御部と、
を備え、
前記複数の指の少なくとも1つは、可撓性を有し、
前記制御部は、前記複数の指で前記ワークを把持した状態において、前記複数の指の少なくとも1つを、把持のための運動方向である第1方向、前記第1方向及び前記指の長手方向と交差する第2方向、前記指の長手方向である第3方向、及び前記第3方向を回転軸として回転する回転方向の少なくとも1つの方向に移動させることが繰り返されるように、前記ロボット機構の運動を制御し、
前記複数の指の少なくとも1つを前記第1方向に移動させる場合、前記複数の指において前記複数の指の少なくとも1つではないその他の指が前記複数の指の少なくとも1つの動きに追従して前記第1方向に移動し、前記複数の指の少なくとも1つを前記第2方向に移動させる場合、前記その他の指が前記複数の指の少なくとも1つの動きに追従して前記第2方向に移動しない
ロボットシステム。
【請求項2】
前記複数の指の少なくとも1つが弾性部材で構成されている
請求項1記載のロボットシステム。
【請求項3】
ワークを把持する複数の指を備えたロボット機構と、
前記複数の指による前記ワークの把持状態を検出する検出部と、
前記検出部の検出結果に基づいて前記複数の指に把持されたワークの数を認識する認識部と、
前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、前記認識部により認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御する制御部と、
を備え、
前記検出部は、少なくとも1つの指の把持面に設けられ、前記ワークが接触する前記把持面の圧力分布を検出する圧力分布センサを含み、
前記認識部は、前記検出部により検出された圧力分布を入力とし、前記複数の指で把持した前記ワークの個数を出力として学習された把持数認識モデルにより前記ワークの個数を認識し、
前記制御部は、前記圧力分布及び前記複数の指を駆動する駆動部の駆動状態を入力とし、前記複数の指で把持した前記ワークの個数と、前記ワークの数を前記指定数とするための前記駆動部の駆動方法と、を出力として学習された駆動方法モデルから出力された前記駆動方法に基づいて前記ロボット機構の運動を制御すると共に、前記認識部により認識された前記ワークの数が前記指定数となるまで、前記複数の指により前記ワークを把持した状態で、前記複数の指の少なくとも1つを、把持のための運動方向である第1方向、前記第1方向及び前記指の長手方向と交差する第2方向、前記指の長手方向である第3方向、及び前記第3方向を回転軸として回転する回転方向の少なくとも1つの方向に移動させることが繰り返されるように、前記ロボット機構の運動を制御し、
前記複数の指の少なくとも1つを前記第1方向に移動させる場合、前記複数の指において前記複数の指の少なくとも1つではないその他の指が前記複数の指の少なくとも1つの動きに追従して前記第1方向に移動し、前記複数の指の少なくとも1つを前記第2方向に移動させる場合、前記その他の指が前記複数の指の少なくとも1つの動きに追従して前記第2方向に移動しない
ロボットシステム。
【請求項4】
前記圧力分布センサ上に弾性部材が設けられている
請求項3記載のロボットシステム。
【請求項5】
前記制御部は、前記認識部により認識された前記ワークの数が前記指定数となるまで、前記複数の指により前記ワークを把持した状態で、前記複数の指の少なくとも1つを、把持のための運動方向である第1方向、前記第1方向及び前記指の長手方向と交差する第2方向、前記指の長手方向である第3方向、及び前記第3方向を回転軸として回転する回転方向の少なくとも1つの方向に移動させることが繰り返されるように、前記ロボット機構の運動を制御する
請求項1又は請求項2に記載のロボットシステム。
【請求項6】
前記検出部は、前記複数の指の相対的な位置関係が互いに異なる状態で前記把持状態を複数回検出し、
前記認識部は、前記把持状態を複数回検出した結果に基づいて前記ワークの個数を認識する
請求項1~5の何れか1項に記載のロボットシステム。
【請求項7】
ワークを把持する複数の指を備えたロボット機構の前記複数の指による前記ワークの把持状態を検出し、
前記ワークの把持状態の検出結果に基づいて前記複数の指に把持されたワークの数を認識し、
前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御し、
前記複数の指の少なくとも1つは、可撓性を有し、
前記複数の指で前記ワークを把持した状態において、前記複数の指の少なくとも1つを、把持のための運動方向である第1方向、前記第1方向及び前記指の長手方向と交差する第2方向、前記指の長手方向である第3方向、及び前記第3方向を回転軸として回転する回転方向の少なくとも1つの方向に移動させることが繰り返されるように、前記ロボット機構の運動を制御し、
前記複数の指の少なくとも1つを前記第1方向に移動させる場合、前記複数の指において前記複数の指の少なくとも1つではないその他の指が前記複数の指の少なくとも1つの動きに追従して前記第1方向に移動し、前記複数の指の少なくとも1つを前記第2方向に移動させる場合、前記その他の指が前記複数の指の少なくとも1つの動きに追従して前記第2方向に移動しない
ピッキング方法。
【請求項8】
ワークを把持する複数の指を備えたロボット機構の前記複数の指による前記ワークの把持状態を検出し、
前記ワークの把持状態の検出結果に基づいて前記複数の指に把持されたワークの数を認識し、
前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御し、
少なくとも1つの指の把持面に設けられ、前記ワークが接触する前記把持面の圧力分布を検出する圧力分布センサを含み、
検出された圧力分布を入力とし、前記複数の指で把持した前記ワークの個数を出力として学習された把持数認識モデルにより前記ワークの個数を認識し、
前記圧力分布を入力とし、前記複数の指で把持した前記ワークの個数と、前記複数の指の少なくとも1つの指の駆動方法であって前記ワークの数を前記指定数とするための駆動方法と、を出力として学習された駆動方法モデルから出力された前記駆動方法に基づいて前記ロボット機構の運動を制御すると共に、認識された前記ワークの数が前記指定数となるまで、前記複数の指により前記ワークを把持した状態で、前記複数の指の少なくとも1つを、把持のための運動方向である第1方向、前記第1方向及び前記指の長手方向と交差する第2方向、前記指の長手方向である第3方向、及び前記第3方向を回転軸として回転する回転方向の少なくとも1つの方向に移動させることが繰り返されるように、前記ロボット機構の運動を制御し、
前記複数の指の少なくとも1つを前記第1方向に移動させる場合、前記複数の指において前記複数の指の少なくとも1つではないその他の指が前記複数の指の少なくとも1つの動きに追従して前記第1方向に移動し、前記複数の指の少なくとも1つを前記第2方向に移動させる場合、前記その他の指が前記複数の指の少なくとも1つの動きに追従して前記第2方向に移動しない
ピッキング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステム及びピッキング方法に関する。
【背景技術】
【0002】
特許文献1~3には、ばら積みされたワークの撮影画像に基づいてピッキング可能なワークを認識してワークをピッキングする技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5767464号公報
【文献】特開2017-42859号公報
【文献】特許第5196156号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来技術では、特にねじ等のような小さいワーク、金属のワーク、光沢があるワークの場合、画像センサや深度センサによるワークの位置や姿勢を確実に検出するのが困難である結果、1つのワークのピッキングを確実に行うのが困難である。また、周辺の干渉物とのクリアランスの推定や、把持可能性の計算を失敗することによってもピッキングの失敗を招く。さらに、1つのワークをピッキングすることによりその周囲のワークの配置が変わってしまうことが多いので、毎回のピッキング動作の前にワークの位置や姿勢を検出するための時間も要する。
【0005】
本発明は、上記の点に鑑みてなされたものであり、ワークの位置や姿勢を毎回事前に検出しなくても、高い確度で、ワークをピッキングすることができるロボットシステム及びピッキング方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
開示の第1態様は、ロボットシステムであって、ワークを把持する複数の指を備えたロボット機構と、前記複数の指による前記ワークの把持状態を検出する検出部と、前記検出部の検出結果に基づいて前記複数の指に把持されたワークの数を認識する認識部と、前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、前記認識部により認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御する制御部と、を備え、前記複数の指の少なくとも1つは、可撓性を有し、前記制御部は、前記複数の指で前記ワークを把持した状態において、少なくとも1つの指の位置が変化するように前記ロボット機構の運動を制御する。
【0007】
上記第1態様において、前記複数の指の少なくとも1つが弾性部材で構成されていてもよい。
【0008】
開示の第2態様は、ワークを把持する複数の指を備えたロボット機構と、前記複数の指による前記ワークの把持状態を検出する検出部と、前記検出部の検出結果に基づいて前記複数の指に把持されたワークの数を認識する認識部と、前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、前記認識部により認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御する制御部と、を備え、前記検出部は、少なくとも1つの指の把持面に設けられ、前記ワークが接触する前記把持面の圧力分布を検出する圧力分布センサを含み、前記認識部は、前記検出部により検出された圧力分布を入力とし、前記複数の指で把持した前記ワークの個数を出力として学習された把持数認識モデルにより前記ワークの個数を認識し、前記制御部は、前記圧力分布及び前記複数の指を駆動する駆動部の駆動状態を入力とし、前記複数の指で把持した前記ワークの個数と、前記ワークの数を前記指定数とするための前記駆動部の駆動方法と、を出力として学習された駆動方法モデルから出力された前記駆動方法に基づいて前記ロボット機構の運動を制御する。
【0009】
上記第2態様において、前記圧力分布センサ上に弾性部材が設けられている構成としてもよい。
【0010】
上記第1態様において、前記制御部は、前記認識部により認識された前記ワークの数が前記指定数となるまで、前記複数の指により前記ワークを把持した状態で、前記複数の指の少なくとも1つを、把持のための運動方向である第1方向、前記第1方向及び前記指の長手方向と交差する第2方向、前記指の長手方向である第3方向、及び前記第3方向を回転軸として回転する回転方向の少なくとも1つの方向に移動させることが繰り返されるように、前記ロボット機構の運動を制御するようにしてもよい。
【0011】
上記第1態様において、前記検出部は、前記複数の指の相対的な位置関係が互いに異なる状態で前記把持状態を複数回検出し、前記認識部は、前記把持状態を複数回検出した結果に基づいて前記ワークの個数を認識するようにしてもよい。
【0012】
開示の第3態様は、ピッキング方法であって、ワークを把持する複数の指を備えたロボット機構の前記複数の指による前記ワークの把持状態を検出し、前記ワークの把持状態の検出結果に基づいて前記複数の指に把持されたワークの数を認識し、前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御し、前記複数の指の少なくとも1つは、可撓性を有し、前記複数の指で前記ワークを把持した状態において、少なくとも1つの指の位置が変化するように前記ロボット機構の運動を制御する。
【0013】
開示の第4態様は、ピッキング方法であって、ワークを把持する複数の指を備えたロボット機構の前記複数の指による前記ワークの把持状態を検出し、前記ワークの把持状態の検出結果に基づいて前記複数の指に把持されたワークの数を認識し、前記ロボット機構に前記ワークが複数載置されている載置場所から前記ワークを把持する動作をさせた後に、認識された前記ワークの数が予め指定された指定数と異なる場合、把持された前記ワークの数が前記指定数となるように前記ロボット機構の運動を制御し、少なくとも1つの指の把持面に設けられ、前記ワークが接触する前記把持面の圧力分布を検出する圧力分布センサを含み、検出された圧力分布を入力とし、前記複数の指で把持した前記ワークの個数を出力として学習された把持数認識モデルにより前記ワークの個数を認識し、前記圧力分布を入力とし、前記複数の指で把持した前記ワークの個数と、前記複数の指の少なくとも1つの指の駆動方法であって前記ワークの数を前記指定数とするための駆動方法と、を出力として学習された駆動方法モデルから出力された前記駆動方法に基づいて前記ロボット機構の運動を制御する。
【発明の効果】
【0014】
本発明によれば、ワークの位置や姿勢を毎回事前に検出しなくても、高い確度で、ワークをピッキングすることができる。
【図面の簡単な説明】
【0015】
図1】ロボットシステムの構成図である。
図2】制御装置の機能ブロック図である。
図3】制御装置のハードウェア構成を示すブロック図である。
図4】ピッキング処理の流れを示すフローチャートである。
図5】指の斜視図である。
図6】ワークを把持した指をZ軸方向に沿って下方から見た図である。
図7】ワークを把持した指をY軸方向に沿って見た図である。
図8】ワークを把持した指をX軸方向に沿って見た図である。
図9】圧力分布センサ及び弾性部材を示す図である。
図10】弾性部材について説明するための図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【0017】
<第1実施形態>
【0018】
図1は、第1実施形態に係るロボットシステム10の構成図である。図1に示すように、ロボットシステム10は、ロボット機構20、制御装置30、及び撮影部40を備える。ロボットシステム10は、本実施形態では、ワークWをピッキングするピッキング装置として機能する。
【0019】
ロボット機構20は、ピッキング動作を行う際の運動制御の対象である機構部分としてのロボットアームARと、ロボットアームARの先端に取り付けられたロボットハンドHと、を含む。ロボットハンドHは、ワークWが複数載置されている載置場所の一例としての箱50からワークWを把持する。ロボットハンドHは、把持部の一例である。なお、本実施形態では、ワークWは、一例としてネジ等のロボットハンドHで複数のワークWを把持できる程度の比較的小さい部品である場合について説明するが、ワークWはこれに限られるものではない、
【0020】
ロボットハンドHは、複数の指、本実施形態では一例として2つの指F1、F2を備えるが、指の数は2つに限られるものではない。また、指F1、F2は、本実施形態では一例として板状の部材で構成されるが、指F1、F2の形状はこれに限られるものではない。
【0021】
また、ロボットハンドHは、指F1、F2でワークWを把持した状態において、指F1の位置が変化するように駆動する駆動部22-1と、指F1、F2でワークWを把持した状態において、指F2の位置が変化するように駆動する駆動部22-2と、を備える。なお、本実施形態では、指F1、F2の両方に駆動部が設けられた場合について説明するが、指F1、F2の何れかに駆動部を設けた構成としてもよい。
【0022】
また、指F1の把持面には、ワークWが接触する把持面の圧力分布を検出する圧力分布センサ24-1が設けられている。同様に、指F2の把持面には、ワークWが接触する把持面の圧力分布を検出する圧力分布センサ24-2が設けられている。ここで、圧力分布センサ24-1、24-2は、指F1、F2によるワークWの把持状態を検出する検出部の一例である。
【0023】
なお、本実施形態では、指F1、F2の両方の把持面の各々に圧力分布センサが設けられた場合について説明するが、指F1、F2の何れかの指の把持面に圧力分布センサを設けた構成としてもよい。
【0024】
ロボット機構20は、一例として自由度が6の垂直多関節ロボット、水平多関節ロボット等が用いられるが、ロボットの自由度及び種類はこれらに限られるものではない。
【0025】
制御装置30は、ロボット機構20を制御する。図2に示すように、制御装置30は、機能的には、認識部32及び制御部34を含む。
【0026】
認識部32は、圧力分布センサ24-1、24-2の検出結果、すなわち圧力分布に基づいて、指F1、F2に把持されたワークWの個数を認識する。認識部32は、本実施形態では一例として、圧力分布センサ24-1、24-2で検出された圧力分布の各々を入力とし、ワークWの数を出力として学習された学習済みモデル、例えばニューラルネットワークを用いた学習済みモデルを用いて、指F1、F2で把持されたワークWの個数を認識する。
【0027】
制御部34は、ロボット機構20に箱50からワークWを把持する動作をさせた後に、認識部32により認識されたワークの個数が予め指定された指定数と異なる場合、把持されたワークWの数が指定数となるようにロボット機構20の運動を制御する。なお、本実施形態では、指定数が1の場合について説明する。すなわち、認識部32により認識されたワークの個数が複数の場合は、認識部32により認識されたワークの個数が1つになるまで、ワークWが落下するようにロボット機構20の運動を制御する。
【0028】
具体的には、制御部34は、例えば指F1、F2でワークWを把持した把持状態を変化させるため、指F1、F2の少なくとも一方が移動するように、駆動部22-1、22-2の少なくとも一方を制御する。すなわち、指F1、F2の相対位置が変化するように、指F1、F2の少なくとも一方をずらす。これにより、指F1、F2で把持しているワークWの把持状態が変化し、ワークWを落下させることができる。
【0029】
撮影部40は、箱50の上方から箱50内のワークWを撮影可能な位置に設置され、制御装置30の指示によって箱50内のワークWを撮影した撮影画像を制御装置30に出力する。
【0030】
次に、制御装置30のハードウェア構成を示すブロック図である。
【0031】
図3に示すように、制御装置30は、CPU(Central Processing Unit)30A、ROM(Read Only Memory)30B、RAM(Random Access Memory)30C、ストレージ30D、入力部30E、モニタ30F、光ディスク駆動装置30G及び通信インタフェース30Hを有する。各構成は、バス30Iを介して相互に通信可能に接続されている。
【0032】
本実施形態では、ストレージ30Dには、ピッキングプログラムが格納されている。CPU30Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU30Aは、ストレージ30Dからプログラムを読み出し、RAM30Cを作業領域としてプログラムを実行する。CPU30Aは、ストレージ30Dに記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0033】
ROM30Bは、各種プログラム及び各種データを格納する。RAM30Cは、作業領域として一時的にプログラム又はデータを記憶する。ストレージ30Dは、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0034】
入力部30Eは、キーボード30E1、及びマウス30E2等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ30Fは、例えば、液晶ディスプレイであり、ワークWの把持状態等の各種の情報を表示する。モニタ30Fは、タッチパネル方式を採用して、入力部30Eとして機能してもよい。光ディスク駆動装置30Gは、各種の記録媒体(CD-ROM又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【0035】
通信インタフェース30Hは、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0036】
図2に示した制御装置30の各機能構成は、CPU30Aがストレージ30Dに記憶されたピッキングプログラムを読み出し、RAM30Cに展開して実行することにより実現される。
【0037】
次に、ロボットシステム10の作用について説明する。
【0038】
図4は、ロボットシステム10によるピッキング処理の流れを示すフローチャートである。ユーザーが入力部30Eを操作してピッキング処理の実行を指示すると、CPU30Aがストレージ30Dからピッキングプログラムを読み出して、RAM30Cに展開し実行することにより、ピッキング処理が実行される。
【0039】
ステップS100では、CPU30Aが、制御部34として、ロボットハンドHにより箱50内のワークWを把持するようロボット機構20を制御する。具体的には、例えば撮影部40に撮影を指示して箱50内のワークWを撮影した撮影画像を取得し、取得した撮影画像を画像解析することによりワークWの存在する場所を特定する。このとき、把持すべきワークWの位置や姿勢を特定する必要はなく、ワークWが存在する場所を特定するだけでよい。そして、ワークWが存在する場所にロボットハンドHが移動するようにロボットアームARを制御し、その後、指F1、F2でワークWを把持するように駆動部22-1、22-2を制御する。あるいは、撮像部40による撮影を行うことなく、箱50内の何れかの位置で指F1、F2を閉じる動作を行い、その結果として、ある確率でワークWが把持されるようにしてもよい。特に、箱50内に多数のワークWが残存している場合には、事前にワークWが存在する場所の特定すらしなくても、高い確率でワークWを把持することができる。
【0040】
ステップS102では、CPU30Aが、認識部32として、圧力分布センサ24-1、24-2から指F1、F2の把持面の圧力分布を各々取得する。そして、取得した指F1、F2の把持面の圧力分布から指F1、F2によって把持されたワークWの個数を認識する。
【0041】
ステップS104では、CPU30Aが、制御部34として、ステップS102で認識したワークWの個数が0であるか否かを判定する。そして、認識したワークWの個数が0ではない場合、すなわち、少なくとも1つ以上のワークWを把持している場合はステップS106へ移行する。一方、認識したワークの個数が0の場合はステップS100へ戻ってワークWを把持し直す。
【0042】
ステップS106では、CPU30Aが、制御部34として、ステップS102で認識したワークWの個数が指定数であるか否か、すなわち認識したワークWの個数が1つであるか否かを判定する。そして、認識したワークWの個数が1の場合はステップS108へ移行する。一方、認識したワークWの個数が1ではない場合、すなわち複数の場合は、ステップS110へ移行する。
【0043】
ステップS108では、CPU30Aが、制御部34として、ロボットハンドHで把持したワークWを所定の場所に移動して載置するようにロボット機構20を制御する。
【0044】
ステップS110では、CPU30Aが、制御部34として、指F1、F2の少なくとも一方をずらすように、駆動部22-1、22-2の少なくとも一方を制御する。例えば、ずらす指、方向、及び移動量を予め定めておいてもよいし、ステップS102で取得した指F1、F2の把持面の圧力分布に基づいて、ずらす指、方向、及び移動量を決定してもよい。これにより、指F1、F2で把持しているワークWの把持状態が変化し、ワークWが落下しやすくなる。
【0045】
ステップS112では、CPU30Aが、制御部34として、箱50内のワークWを全てピッキングしたか否かを判定する。すなわち、箱50内が空になっているか否かを判定する。具体的には、例えば撮影部40で撮影された撮影画像を画像解析して、箱50内にワークWが残っているか否かを判定する。そして、箱50内にワークWが残っていない場合は、本ルーチンを終了する。一方、箱50内にワークWが残っている場合はステップS100へ戻り、ワークWを全てピッキングするまで上記と同様の処理を繰り返す。
【0046】
このように、本実施形態では、把持すべきワークWの位置や姿勢を事前に検出してからワークWを把持するのではなく、まずはワークWを把持してから、把持したワークWの個数が指定数になるまで指F1、F2の少なくとも一方をずらす運動を行う。これにより、ワークWの位置や姿勢を毎回事前に検出しなくても、高い確度で、ワークWをピッキングすることができる。
【0047】
(変形例1)
【0048】
次に、第1実施形態の変形例1について説明する。
【0049】
把持したワークWの数を認識する場合に、例えば、指F1、F2の各々の把持面におけるワークWの接触面積に基づいて、把持したワークWの個数を認識してもよい。例えば、圧力分布センサ24-1、24-2で検出された圧力分布の各々に基づいて、指F1、F2の各々の把持面におけるワークWの接触面積を各々算出する。そして、例えば各接触面積と把持したワークの個数との対応関係を表すテーブルデータ又は数式等を用いて、把持したワークWの個数を認識してもよい。例えばワークWが球体の場合には、弾性を有する把持面が1個のワークWで押されることにより形成される接触面積は比較的安定しているので、このようにして個数を認識することが可能である。
【0050】
(変形例2)
【0051】
次に、第1実施形態の変形例2について説明する。
【0052】
把持したワークWの数を認識する場合に、例えば、検出部の一例としての撮影部40で指F1、F2でワークWを把持した状態を撮影し、撮影部40で撮影された撮影画像に基づいて、把持したワークWの個数を認識するようにしてもよい。この場合、制御部34は、指F1、F2で把持されたワークWを撮影部40で撮影可能な位置、すなわち、指F1、F2によってワークWが隠れない位置で撮影されるように、ロボットハンドHを移動させてもよい。また、撮影部40の移動機構を更に備えた構成とし、撮影部40をロボットハンドHの位置に移動させるようにしてもよい。また、ロボットハンドH及び撮影部40の両方を移動させてもよい。
【0053】
(変形例3)
【0054】
次に、第1実施形態の変形例3について説明する。
【0055】
把持したワークWの数を認識する場合に、例えば、指F1、F2でワークWを把持した状態の指F1、F2にかかる力を検出する検出部の一例としての6軸力覚センサを備えた構成とし、認識部32は、力覚センサにより検出された力の鉛直方向成分が把持前に対して把持後に増加した量、すなわちワークWの総重量に基づいて、ワークWの個数を認識するようにしてもよい。この場合、例えばワークWの総重量と、ワークWの1個当たりの重量と、に基づいて、ワークWの個数を認識するようにしてもよい。すなわち、力覚センサにより検出された力から算出したワークWの総重量をワークWの1個当たりの重量で除算することによりワークWの個数を算出してもよい。
【0056】
(変形例4)
【0057】
次に、第1実施形態の変形例4について説明する。
【0058】
制御部34は、認識部32により認識されたワークWの数が指定数と異なる場合、例えば指定数より少ない場合、箱50からワークWを把持し直すようにロボット機構20の運動を制御するようにしてもよい。すなわち、箱50上で指F1、F2を開く動作をさせることにより、一旦把持したワークWを箱50上に戻してから、再度箱50内のワークWを把持するようにロボット機構20を制御してもよい。
【0059】
(変形例5)
【0060】
次に、第1実施形態の変形例5について説明する。
【0061】
制御部34は、認識部32により認識されたワークWの数が指定数より多い場合、指F1、F2で把持しているワークの少なくとも一部に外力を加えて落下させるようにロボット機構20を制御するようにしてもよい。例えば、棒状の固定の治具にワークWを衝突させるようにロボット機構20を制御して、ワークWを落下させるようにしてもよい。また、例えば棒状部材によってワークWに外力を加える外力機構を更に設けた構成とし、当該外力機構を制御して棒状部材をワークWに衝突させることでワークWを落下させるようにしてもよい。
【0062】
<第2実施形態>
【0063】
次に、第2実施形態について説明する。なお、第1実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0064】
第2実施形態では、指F1、F2の少なくとも1つが可撓性を有する構成の場合について説明する。第2実施形態では、指F1、F2の両方が可撓性を有する場合について説明するが、指F1、F2の一方が可撓性を有する構成であってもよい。
【0065】
図5に示すように、第2実施形態に係る指F1は、指F1の長手方向がZ軸方向、すなわち重力方向に沿っている場合において、X軸方向に可撓性を有する蛇腹F1Aを備えている。このため、指F1は、図5においてX軸方向に可撓性を有する。
【0066】
指F2は、X軸方向に可撓性を有する蛇腹F2Aを備えている。このため、指F1は、図5においてX軸方向に可撓性を有する。更に、指F2は、Y軸方向に可撓性を有する蛇腹F2Bを備えている。このため、指F2は、図5においてY軸方向にも可撓性を有する。
【0067】
駆動部22-1は、図5においてZ軸方向を回転軸として矢印A方向に指F1が回転するよう駆動する回転用モータを備える。この回転用モータを駆動することにより、図6(A)に示すように指F1、F2を下方から見た場合においてワークWを把持した状態から、図6(B)に示すように、Z軸方向を回転軸として矢印A方向に指F1をずらすことができる。
【0068】
また、指F2の指先と駆動部22-2とは、例えば紐状の第1の腱(図示省略)によって接続されている。そして、駆動部22-2は、第1の腱を引っ張るように駆動する第1の引っ張り用モータを備えている。この第1の引っ張り用モータを駆動することにより、図7(A)に示す状態から、図7(B)に示すように指F2をX軸方向に動かすことができる。なお、指F1は、X軸方向に可撓性を有する蛇腹F1Aを備えているため、指F2の動きに追従してX軸方向に移動する。
【0069】
また、指F2の指先と駆動部22-2とは、例えば紐状の第2の腱(図示省略)によって接続されている。そして、駆動部22-2は、第2の腱を引っ張るように駆動する第2の引っ張り用モータを備えている。この第2の引っ張り用モータを駆動することにより、図8(A)に示す状態から、図8(B)に示すように指F2をY軸方向に動かすことができる。なお、指F1は、Y軸方向に可撓性を有しないため、指F2の動きに追従してY軸方向に移動することはない。
【0070】
また、図1では図示は省略したが、指F1の指先のワークWの把持面には、図9に示すように、圧力分布センサ24-1が貼り付けられており、更にその上から弾性部材26-1が貼り付けられている。指F2も同様に、指先のワークWの把持面には、圧力分布センサ24-2が貼り付けられており、更にその上から弾性部材26-1と同様の弾性部材が貼り付けられている。
【0071】
圧力分布センサ24-1、24-2は、m×n(m、nは整数)個の圧力検出素子で構成される。例えばm=6、n=4等とすることができるが、m、nの値はこれに限られるものではない。
【0072】
例えば図10(A)に示すように、圧力分布センサ24-1上に弾性部材26-1が設けられていない場合、ワークWを把持した際には、ワークWを2カ所の接点S1、S2のみでしか検知できないため、ワークWを精度良く認識できない虞がある。これに対し、図10(B)に示すように、圧力分布センサ24-1上に弾性部材26-1を設けた構成の場合、図10(B)において矢印で示すように、把持されたワークWの圧力が圧力分布センサ24-1に対して面で伝わることとなり、ワークWを精度良く認識することができる。
【0073】
なお、指F1、F2が弾性部材で構成されてもよい。すなわち、弾性部材を別個に設けるのではなく、指F1、F2の指先自体が弾性部材で構成されていてもよい。
【0074】
認識部32は、第2実施形態では一例として、圧力分布センサ24-1、24-2により検出された圧力分布を入力とし、指F1、F2で把持したワークWの個数を出力として学習された把持数認識モデルによりワークWの個数を認識する。
【0075】
把持数認識モデルとしては、例えば畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)を用いた学習モデルを学習した学習済みモデルを用いることができるが、これに限られるものではない。
【0076】
ワークWの個数を認識するための圧力分布検出は、指F1、F2の相対位置関係を変えて複数回行ってもよい。その場合、制御部34では、指F1、F2の少なくとも1つを予め定めた方向へ移動させる制御を行うことにより、圧力分布センサ24-1、24-2において、ワークWの把持状態を複数回検出させる。例えば、指F1を押すように、指F2をX軸方向へ移動させながら圧力分布センサ24-1、24-2において複数回圧力分布を検出させる。すなわち、時系列で指F1、F2の把持面の圧力分布を検出させる。
【0077】
認識部32は、圧力分布センサ24-1、24-2の各々で複数回検出した結果、すなわち、複数回検出した指F1、F2の圧力分布の各々を把持数認識モデルに入力する。このように、複数の圧力分布を把持数認識モデルに入力することにより、精度良くワークWの個数を認識することができる。
【0078】
なお、例えば指F1のX軸方向への反りの度合いを検出するストレッチセンサーを指F1に設け、このストレッチセンサーの出力値を把持数認識モデルに更に入力するようにしてもよい。
【0079】
制御部34は、指F1、F2でワークWを把持した状態において、指F1、F2のうち少なくとも1つの指の位置が変化するようにロボット機構20の運動を制御する。
【0080】
具体的には、指F1、F2によりワークWを把持した状態で、指F1、F2の少なくとも1つを、予め定めた第1方向、第1方向と交差する第2方向、第1方向及び第2方向と交差する第3方向、及び第3方向を回転軸として回転する回転方向の少なくとも1つの方向に移動させるように、ロボット機構20の運動を制御する。例えば、図5においてX軸方向を第1方向とした場合、Y軸方向が第2方向、Z軸方向が第3方向となり、矢印A方向が回転方向となる。
【0081】
ずらす指、方向、及び移動量については、第1実施形態で説明したように、例えばステップS102で取得した指F1、F2の把持面の圧力分布に基づいて決定してもよい。
【0082】
また、制御部34は、圧力分布センサ24-1、24-2で検出された圧力分布及び駆動部22-1、22-2の駆動状態を入力とし、指F、F2で把持したワークWの個数と、ワークWの数を指定数とするための駆動部22-1、22-2の駆動方法と、を出力として学習された駆動方法モデルから出力された駆動方法に基づいてロボット機構20の運動を制御してもよい。ここでいう「駆動方法」は、例えば駆動命令又は駆動命令生成の元となる情報のような駆動に関わる情報であり、機械学習でいう「行動」、制御理論でいう「制御入力」に相当するものを意味する。第2実施形態では、駆動方法モデルから出力された駆動方法に基づいてロボット機構20の運動を制御する場合について説明する。
【0083】
ここで、駆動部22-1の駆動状態とは、駆動部22-1の回転用モータの回転角であり、指F1の矢印A方向の初期状態からの移動量に相当する。また、駆動部22-2の駆動状態とは、駆動部22-2の第1の引っ張り用モータの回転角及び第2の引っ張り用モータの回転角であり、それぞれ指F2のX軸方向の初期状態からの移動量及びY軸方向の初期状態からの移動量に相当する。
【0084】
駆動方法モデルは、第2実施形態では一例として再帰型ニューラルネットワーク(Recurrent Neural Network:RNN)の一種であるLSTM(Long Short-Term Memory)ベースの学習モデル及び/又は強化学習モデルを含む学習済みモデルを用いた構成とする。
【0085】
このような駆動方法モデルでは、LSTMベースの学習モデルに圧力分布センサ24-1、24-2で検出された圧力分布及び駆動部22-1、22-2の駆動状態が入力され、把持しているワークWの個数を求める。そして、求めたワークWの個数、圧力分布センサ24-1、24-2で検出された圧力分布、及び駆動部22-1、22-2の駆動状態を状態情報として強化学習モデルに入力する。強化学習モデルは、入力された状態情報に対応する行動として、駆動部22-1、22-2の駆動方法を出力する。すなわち、駆動部22-1の回転用モータの回転角、駆動部22-2の第1の引っ張り用モータの回転角及び第2の引っ張り用モータの回転角を出力する。制御部34は、駆動方法モデルから出力された駆動方法に従って駆動部22-1、22-2を駆動し、指F1、F2の少なくとも一方を移動させる。なお、ストレッチセンサーの出力値を状態情報に含め、駆動方法モデルに更に入力するようにしてもよい。
【0086】
次に、ロボットシステム10の作用について説明する。
【0087】
第2実施形態に係るロボットシステム10によるピッキング処理の基本的な流れは、第1実施形態で説明した図4に示すフローチャートで示す処理と同様である。以下、第2実施形態において特徴的な処理について説明する。
【0088】
図4のステップS102では、CPU30Aが、制御部34として、指F1、F2でワークWを把持した状態において、指F2をX軸方向に移動させながら、認識部32として、圧力分布センサ24-1、24-2から指F1、F2の把持面の圧力分布を時系列で各々取得する。そして、時系列取得した指F1、F2の把持面の圧力分布を把持数認識モデルに入力することにより、指F1、F2によって把持されたワークWの個数を認識する。
【0089】
ステップS110では、CPU30Aが、制御部34として、圧力分布センサ24-1、24-2で検出された圧力分布及び駆動部22-1、22-2の駆動状態を駆動方法モデルに入力し、駆動方法モデルから出力された駆動方法に従って駆動部22-1、22-2を駆動することで指F1、F2の少なくとも一方をずらすように移動させ、ワークWの把持状態を変化させる。これにより、ワークWが落下しやすくなる。
【0090】
このように、第2実施形態では、把持数認識モデルを用いてワークWの把持数を認識し、駆動方法モデルを用いて指F1、F2の動作を制御する。これにより、ワークWの位置や姿勢を毎回事前に検出しなくても、高い確度で、ワークWをピッキングすることができる。
【0091】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したピッキング処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、ピッキング処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0092】
また、上記各実施形態では、ピッキングプログラムがストレージ30D又はROM30Bに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0093】
10 ロボットシステム
20 ロボット機構
22-1、22-2 駆動部
24-1、24-2 圧力分布センサ
26-1 弾性部材
30 制御装置
32 認識部
34 制御部
40 撮影部
50 箱
F1、F2 指
F1A、F2A、F2B 蛇腹
AR ロボットアーム
H ロボットハンド
W ワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10