(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】ロボットシステム及びロボットシステムの制御方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20240925BHJP
【FI】
B25J13/08 Z
B25J13/08 A
(21)【出願番号】P 2021104082
(22)【出願日】2021-06-23
【審査請求日】2024-02-14
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】小山 遼
(72)【発明者】
【氏名】木村 宣隆
(72)【発明者】
【氏名】梁 宰誠
【審査官】松浦 陽
(56)【参考文献】
【文献】国際公開第2021/033509(WO,A1)
【文献】特開2016-109630(JP,A)
【文献】特開2014-161965(JP,A)
【文献】国際公開第2013/027251(WO,A1)
【文献】特開平05-288543(JP,A)
【文献】特開2018-126862(JP,A)
【文献】特表2018-501973(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
把持部の複数の指で対象物を把持して移載する移載機構を有するロボットシステムであって、
移載前の前記対象物の周囲において、前記把持部の少なくとも一部を挿入可能な空間、並びに、前記対象物の位置及び姿勢を認識する認識部と、
前記認識部によって認識された前記空間のうちの第1の空間へ前記把持部の少なくとも一部を挿入しつつ前記第1の空間以外の空間へは前記把持部を挿入しない状態で、前記把持部を前記対象物の方向へ移動させて前記把持部を前記対象物に接触させることで、前記対象物の位置を前記認識部よりも高精度に把握する位置姿勢把握部と、
前記対象物の形状に関する情報、並びに、前記位置姿勢把握部によって把握された前記対象物の位置に基づいて、前記対象物を把持可能な位置を特定し、該位置において前記対象物を前記把持部で把持する把持制御部と
を有することを特徴とするロボットシステム。
【請求項2】
請求項1に記載のロボットシステムであって、
前記位置姿勢把握部は、
前記第1の空間へ前記複数の指のうちの第1の指を挿入しつつ前記第1の指以外の指を前記対象物よりも高い位置を維持した状態で、前記把持部を前記対象物の方向へ移動させる
ことを特徴とするロボットシステム。
【請求項3】
請求項1に記載のロボットシステムであって、
前記位置姿勢把握部は、
前記対象物に対して前記認識部が前記対象物の位置を認識する際の認識誤差相当の距離を確保して前記第1の空間へ前記把持部の少なくとも一部を挿入し、前記認識誤差相当の距離だけ前記把持部を前記対象物の方向へ移動させる
ことを特徴とするロボットシステム。
【請求項4】
請求項3に記載のロボットシステムであって、
前記第1の空間に対する前記対象物の反対側には、前記認識誤差相当の距離以上の大きさの空間が存在する
ことを特徴とするロボットシステム。
【請求項5】
請求項1に記載のロボットシステムであって、
前記認識部は、
前記第1の空間に対する前記対象物の反対側に、前記認識部が前記対象物の位置を認識する際の認識誤差相当の距離だけ前記対象物を移動可能な大きさの第2の空間が存在するか否かを判定し、
前記位置姿勢把握部は、
前記認識部によって前記第2の空間が存在すると判定された場合に、前記第1の空間へ前記把持部の少なくとも一部を挿入しつつ前記第1の空間以外の空間へは前記把持部を挿入しない状態で、前記認識誤差相当の距離だけ前記把持部を前記対象物の方向へ移動させる
ことを特徴とするロボットシステム。
【請求項6】
請求項1に記載のロボットシステムであって、
前記把持部は、第1の指及び前記第1の指と向かい合う第2の指を有し、
前記把持制御部は、
前記位置姿勢把握部によって、前記第1の空間へ前記第1の指を挿入しつつ前記第1の空間以外の空間へは何れの指も挿入しない状態で、前記把持部を前記対象物の方向へ移動させて前記第1の指が前記対象物に接触させ、
前記把持制御部は、
前記把持制御部によって前記第1の指が前記対象物に接触すると、前記第1の指と前記対象物との接触を一旦解除し、前記第1の空間に対する前記対象物の反対側の第3の空間へ前記第2の指を挿入し、前記第3の空間へ前記第2の指を挿入した状態で、前記第1の指と前記第2の指とで前記対象物を把持する
ことを特徴とするロボットシステム。
【請求項7】
請求項6に記載のロボットシステムであって、
前記第1の指は、前記対象物との接触の際に前記対象物から受ける反力を検出するセンサを有し、
前記位置姿勢把握部は、
前記第1の空間へ前記把持部の少なくとも一部を挿入しつつ前記第1の空間以外の空間へは前記把持部を挿入しない状態で、前記センサによって前記反力が検出されるまで、前記把持部を前記対象物の方向へ移動させる
ことを特徴とするロボットシステム。
【請求項8】
請求項1に記載のロボットシステムであって、
前記把持部は、複数の第1の指、及び、前記複数の第1の指と向かい合う第2の指を有し、
前記位置姿勢把握部は、
前記第1の空間へ前記複数の第1の指の少なくとも何れかの一部を挿入しつつ前記第1の空間以外の空間へは前記第2の指を挿入しない状態で、前記把持部を前記対象物の方向へ移動させ、
前記把持制御部は、
前記位置姿勢把握部によって前記複数の第1の指のうちの何れかが前記対象物と接触した後、前記複数の第1の指のうちの前記対象物と接触した指を始点とし前記対象物と接触していない指を終点とする第1ベクトルと、前記把持部の前記対象物の方向への移動を表す第2ベクトルとの外積が示す方向へ、前記把持部を所定軸を中心に回転させて、前記複数の第1の指を前記対象物と接触させる
ことを特徴とするロボットシステム。
【請求項9】
請求項8に記載のロボットシステムであって、
前記把持制御部は、
前記認識部が前記対象物の姿勢を認識する際の認識誤差相当の角度だけ、前記把持部を前記所定軸を中心に回転させる
ことを特徴とするロボットシステム。
【請求項10】
請求項8に記載のロボットシステムであって、
前記複数の第1の指は、前記対象物との接触の際に前記対象物から受ける反力を検出するセンサを有し、
前記位置姿勢把握部は、
前記第1の空間へ前記複数の第1の指の少なくとも一部を挿入しつつ前記第1の空間以外の空間へは前記第2の指を挿入しない状態で、何れかの前記第1の指の前記センサによって前記反力が検出されるまで、前記把持部を前記対象物の方向へ移動させる
ことを特徴とするロボットシステム。
【請求項11】
請求項8に記載のロボットシステムであって、
前記位置姿勢把握部は、
前記第1の空間へ前記複数の第1の指の少なくとも一部を挿入しつつ前記第1の空間以外の空間へは前記第2の指を挿入しない状態で、前記認識部が前記対象物の位置を認識する際の認識誤差相当の距離だけ、前記把持部を前記対象物の方向へ移動させる
ことを特徴とするロボットシステム。
【請求項12】
請求項1に記載のロボットシステムであって、
前記複数の指のうちの第1の指は、鉛直下方向へ移動させた際に鉛直方向へ受ける反力を検出するセンサを有し、
前記位置姿勢把握部は、
前記第1の空間へ前記第1の指を挿入し、前記反力を受けるまで鉛直下方向へ移動させ、前記反力を受けた際の鉛直方向の第1の高さ位置又は該第1の高さ位置から所定の高さだけ鉛直上方向へ移動させた第2の高さ位置を維持した状態で、前記第1の指を前記対象物の方向へ移動させて前記第1の指を前記対象物に接触させることで、前記対象物の位置及び姿勢を前記認識部よりも高い精度で把握する
ことを特徴とするロボットシステム。
【請求項13】
把持部の複数の指で対象物を把持して移載する移載機構を有するロボットシステムの制御方法であって、
前記ロボットシステムの認識部が、移載前の前記対象物の周囲において、前記把持部の少なくとも一部を挿入可能な空間、並びに、前記対象物の位置及び姿勢を認識し、
前記ロボットシステムの位置姿勢把握部が、前記認識部によって認識された前記空間のうちの第1の空間へ前記把持部の少なくとも一部を挿入しつつ前記第1の空間以外の空間へは前記把持部を挿入しない状態で、前記把持部を前記対象物の方向へ移動させて前記把持部を前記対象物に接触させることで、前記対象物の位置を前記認識部よりも高精度に把握し、
前記ロボットシステムの把持制御部が、前記対象物の形状に関する情報、並びに、前記位置姿勢把握部によって把握された前記対象物の位置に基づいて、前記対象物を把持可能な位置を特定し、該位置において前記対象物を前記把持部で把持する
各処理を有することを特徴とするロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステム及びロボットシステムの制御方法に関する。
【背景技術】
【0002】
近年、物流倉庫等における物品のピッキング作業の人材不足を補うために、ピッキング作業を行うロボットシステムが導入されるようになってきている。このようなロボットシステムは、対象物を把持部にて適切に把持するために、例えば「第1指部を物体に接触させ、力検出部から出力される出力値が所定の第1閾値以上となるまで第1指部を物体に付勢させる第1動作を行わせ、第1動作の後、力検出部から出力される出力値が第1閾値以上である状態を維持し、第1指部とアームとを移動させ、物体に第1指部と第2指部とを接触させる第2動作を行わせ、第2動作において、力検出部から出力される出力値が第1閾値よりも小さい所定の第2閾値よりも小さくなったとき、第1位置検出部から出力される出力値に応じた値と、予め決められた第1値と、の差異が所定の範囲内である場合、物体が所定の状態で第1指部と第2指部とによって把持されていると判定する」(特許文献1参照)ように構成される。
【0003】
また多様な物品を高い成功率で自律的にピッキングするために、ロボットシステムは、対象物及び対象物の周辺物品を高精度に認識するためのカメラ等を含む高価な認識装置を含んで構成されることが一般的である。これによりロボットシステムは、周辺物品と干渉しないように対象物を適切な把持位置で把持部で把持し、より高いピッキング成功率を達成できる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら上述の従来技術では、対象物及び周辺物品を高精度に認識するためのカメラ等を含む認識装置が高価であることから、ロボットシステムの導入コストを高め、導入を阻害する要因の一つとなっている。
【0006】
一方、ロボットシステムの導入コストの抑制のために安価な認識装置を用いてロボットシステムを構成すると、対象物及び周辺物品の位置及び姿勢の計測誤差が大きくなる。このため、対象物を把持部で把持しようとする際に、周辺物品に把持部が干渉したり、対象物の適切な把持部位を把持できなかったりして、ピッキング成功率が低下するという問題がある。
【0007】
本発明は、上記の問題に鑑みてなされたものであり、ピッキング成功率がより高いロボットシステムを低コストで導入可能にすることを1つの目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決するため、本発明の一態様では、把持部の複数の指で対象物を把持して移載する移載機構を有するロボットシステムであって、移載前の前記対象物の周囲において、前記把持部の少なくとも一部を挿入可能な空間、並びに、前記対象物の位置及び姿勢を認識する認識部と、前記認識部によって認識された前記空間のうちの第1の空間へ前記把持部の少なくとも一部を挿入しつつ前記第1の空間以外の空間へは前記把持部を挿入しない状態で、前記把持部を前記対象物の方向へ移動させて前記把持部を前記対象物に接触させることで、前記対象物の位置を前記認識部よりも高精度に把握する位置姿勢把握部と、前記対象物の形状に関する情報、並びに、前記位置姿勢把握部によって把握された前記対象物の位置に基づいて、前記対象物を把持可能な位置を特定し、該位置において前記対象物を前記把持部で把持する把持制御部とを有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、例えば、ピッキング成功率がより高いロボットシステムを低コストで導入できる。
【図面の簡単な説明】
【0010】
【
図1】実施形態1のロボットシステムの構成例を示す図。
【
図2】実施形態1のロボットシステムの動作例の説明図。
【
図3】実施形態1のロボットシステムの把持処理例を示すフローチャート。
【
図4】実施形態2のロボットシステムの動作例の説明図。
【
図5】実施形態3のロボットシステムの動作例の説明図。
【
図6】実施形態3のロボットシステムの把持処理例を示すフローチャート。
【
図7】実施形態4のロボットシステムの動作例の説明図。
【
図8】実施形態5のロボットシステムの動作例の説明図。
【
図9】実施形態5のロボットシステムの把持処理例を示すフローチャート。
【
図10】実施形態6のロボットシステムの動作例の説明図。
【
図11】実施形態6のロボットシステムの把持処理例を示すフローチャート。
【
図12】実施形態6の変形例のロボットシステムの把持処理例を示すフローチャート。
【
図13】実施形態7のロボットシステムの動作例の説明図。
【
図14】実施形態7のロボットシステムの把持処理例を示すフローチャート。
【
図15】ロボットシステムの制御装置を実現するコンピュータの構成例を示す図。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。実施形態は、本発明を説明するための例示に過ぎず、本発明を限定するものではなく、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態や各形態の一部又は全部を組合せた形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でもよい。
【0012】
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0013】
後出の実施形態の説明では、既出の実施形態との差分を中心に説明し、重複部分の説明は適宜省略する。
【0014】
[実施形態1]
(実施形態1のロボットシステムSの構成)
図1は、実施形態1のロボットシステムSの構成例を示す図である。ロボットシステムSは、物流倉庫等の作業現場において、載置スペースに載置された対象物を把持して移載するピッキング作業を行うシステムである。ロボットシステムSは、システム全体の制御を実行する制御装置1、認識部20、及びアーム30を含んで構成される。
【0015】
認識部20は、壁60a、60bで仕切られた載置スペース6をカメラ等の画像センサで撮影した画像を処理することで、載置スペース6に載置されている把持及び移載の対象物50の位置P1、姿勢A1、高さH1、及び対象物50の周辺の空間S1を検出する。
【0016】
位置P1、姿勢A1、及び高さH1は、載置スペース6内に仮想的に定めた例えば正系の三次元座標系(以下XYZ座標系という)の座標で表される。姿勢A1は、載置スペース6内において上方から平面視した場合の対象物50の向きであり、対象物50を平面視した場合の長手方向である。
【0017】
対象物50の周辺の空間S1は、対象物50の一方の側面に接する空間であって後述のエンドエフェクタ40の第1指40aの少なくとも一部を挿入可能な空間である。空間がエンドエフェクタ40の第1指40aの少なくとも一部を挿入可能である空間S1であるか否かは、予め与えられた空間S1の条件に基づいて判断される。認識部20は、検出した対象物50の位置P1、姿勢A1、高さH1、及び空間S1の情報を制御装置1へ入力する。
【0018】
アーム30は、載置スペース6に載置されている対象物50を把持して移載する移載機構の一例である。アーム30は、基台31に備え付けられ、基台31を中心に回転し、曲伸又は伸縮するマニピュレータである。アーム30は、基台31から延びたその先端に、エンドエフェクタ40を備える。エンドエフェクタは、ハンドともいう。なお載置スペース6に載置された対象物50を把持して移載する機能を有するならば、アーム30に限らず、どのような移載機構でもよい。
【0019】
エンドエフェクタ40は、対象物50を把持するための複数の指(或いは爪)を備える。本実施形態では、エンドエフェクタ40は、対象物50を把持可能に向い合う第1指40a及び第2指40bの少なくとも2本の指を備える。エンドエフェクタ40は、アーム30への取り付け軸又は鉛直軸を中心に回転すると共に、第1指40a及び第2指40bで対象物50をチャック又はクランプする。本実施形態での把持とは、チャック及びクランプを含む。エンドエフェクタ40は、第1指40aと第2指40bとで対象物50を把持するものであってもよいし、第1指40aと第2指40bを含む複数の指とで対象物50を把持するものであってもよい。
【0020】
制御装置1は、記憶部2及び制御部3を含んで構成される。記憶部2は、揮発性又は不揮発性の記憶デバイスであり、対象物形状情報2a及び誤差情報2bを記憶する。対象物形状情報2aは、対象物50の形状を表す情報であり、頂点及び面の定義座標を含む情報である。例えば対象物50が直方体状である場合には、対象物形状情報2aは、直方体の8個の頂点の三次元座標、及び6つの各面をなすそれぞれ4個の頂点の三次元座標の定義情報を含む。対象物形状情報2aにおける座標は、各対象物50に沿って仮想的に定められた例えば正系の三次元座標系の座標で表される。
【0021】
誤差情報2bは、認識部20が認識した対象物50の位置P1の認識誤差の最大値(以下認識誤差Eという)である。認識誤差Eは、シミュレーション又は実測結果の統計処理によって求められる。認識誤差Eは、XYZ座標系のX軸方向の認識誤差である。なお誤差情報2bは、後述の実施形態2のように、認識誤差Eが、エンドエフェクタ40の一部を空間S1へ挿入する際の挿入位置のマージン確保、及び、エンドエフェクタ40を対象物50の方向へ移動させる際の移動距離として用いられる。本実施形態では、誤差情報2bは省略可能である。
【0022】
制御部3は、マイクロプロセッサ等のCPU(Central Processing Unit)、ASIC(Application Specific Integrated Circuit)、あるいはFPGA(Field Programmable Gate Array)といったPLD(Programmable Logic Device)等の処理装置である。制御部3は、プログラム実行によって実現される位置姿勢把握部3a及び把持制御部3bを含んで構成される。
【0023】
位置姿勢把握部3aは、認識部20によって検出された対象物50の位置P1と比較してより高精度な対象物50の位置P2を把握する。位置姿勢把握部3aは、空間S1へエンドエフェクタ40の第1指40aの一部を挿入し空間S1を除く対象物50の周囲の空間S0へエンドエフェクタ40の他の部分を挿入していない状態で、エンドエフェクタ40を対象物50の方向へ移動させる。例えば対象物50の姿勢A1に対する垂直方向へエンドエフェクタ40を移動させる。そして位置姿勢把握部3aは、第1指40aを対象物50の側面に接触させる。位置姿勢把握部3aは、このようにアーム30に行わせる動作を計算し、動作指令を出力し、アーム30は、動作指令に従って動作する。
【0024】
位置姿勢把握部3aは、エンドエフェクタ40と対象物50が接触した(または接触したと見なし得る)際のエンドエフェクタ40の対象物50の側面との接触部分の位置を対象物50の位置P2とする。エンドエフェクタ40の対象物50の側面との接触部分は、例えば第1指40aの先端部分である。位置P2は、XYZ座標系の座標で表される。
【0025】
把持制御部3bは、対象物形状情報2aと、位置姿勢把握部3aによって把握された対象物50の位置P2及び認識部20によって検出された姿勢A1とに基づいて、対象物50の把持可能な部位を決定する。把持可能な部位は、対象物50の形状を考慮して予め定義されている把持可能な部位の候補から、対象物50の位置P2及び姿勢A1を考慮して最適な部位が選択される。把持制御部3bは、対象物50の把持可能な部位をエンドエフェクタ40で把持するためのアーム30及びエンドエフェクタ40の動作を計算し、動作指令を出力する。アーム30及びエンドエフェクタ40は、動作指令に従って動作し、第1指40aと第2指40bとで対象物50を把持する。
【0026】
(実施形態1のロボットシステムSの動作)
図2は、実施形態1のロボットシステムSの動作例の説明図である。
図2では、XYZ座標系のX軸正方向を壁60aから壁60bへ向かう方向とし、Z軸正方向を壁60a及び60bが立ち上がる方向とする。以下、
図4、
図5、
図7、
図8、
図10、及び
図13においても、座標軸の取り方は同様である。
【0027】
先ず
図2の1-(1)に示すように、認識部20は、対象物50の位置P1及び姿勢A1と共に、第1指40aの少なくとも一部を挿入可能な対象物50の周囲の空間S1を検出する。第1指40aの少なくとも一部は、第1指40aの先端を含む。
【0028】
次に
図2の1-(2)に示すように、位置姿勢把握部3aは、空間S1へ第1指40aを挿入し、第2指40bを含むエンドエフェクタ40の他の部分を対象物50よりもZ軸正方向の高い位置を維持した(空間S1を除く対象物50の周囲の空間S0にエンドエフェクタ40の他の部分を挿入していない)状態で、第1指40aを対象物50の方向へ移動させる。第1指40aを対象物50の方向へ移動させると、第1指40aが対象物50に接触するが、この接触により、対象物50の高精度な位置P2が把握される。
【0029】
次に
図2の1-(3)に示すように、把持制御部3bは、位置姿勢把握部3aによって把握された対象物50の位置P2及び認識部20によって検出された姿勢A1と、対象物形状情報2aとに基づいて、第1指40aと第2指40bとで対象物50を把持する。
【0030】
(実施形態1のロボットシステムSの把持処理)
図3は、実施形態1のロボットシステムSの把持処理例を示すフローチャートである。
【0031】
先ずステップS11では、認識部20は、対象物50の位置P1及び姿勢A1を検出する。次にステップS12では、認識部20は、空間S1を検出する。次にステップS13では、位置姿勢把握部3aは、空間S1へエンドエフェクタ40の第1指40aの少なくとも一部を挿入する。
【0032】
次にステップS14では、位置姿勢把握部3aは、エンドエフェクタ40を対象物50へ向けて移動させる。次にステップS15では、位置姿勢把握部3aは、エンドエフェクタ40の移動を停止させる。次にステップS16では、位置姿勢把握部3aは、エンドエフェクタ40の現在位置を位置P2として、位置P1よりも高精度に対象物50の位置を把握する。次にステップS17では、把持制御部3bは、対象物形状情報2aと、位置姿勢把握部3aによって把握された位置P2と、認識部20によって検出された姿勢A1とに基づいて、対象物50の把持可能な部位を決定する。そして、把持制御部3bは、決定した部位を、エンドエフェクタ40の第1指40a及び第2指40bで把持する。
【0033】
本実施形態では、エンドエフェクタ40を対象物50に接近させて接触させることで、対象物50の位置、姿勢、及び高さの認識が低精度の安価な認識部20を採用しても高精度で対象物50の位置を把握でき、ピッキング成功率を高めることができる。このため、高額な3Dロボットビジョンを採用する必要がなく、自動ピッキングシステムの構築費用が下がり、倉庫や工場を運営する顧客が、低額の初期導入費用で、自動ピッキングシステムや物流自動化ソリューションを導入できる。
【0034】
[実施形態2]
(実施形態2のロボットシステムSの動作)
図4は、実施形態2のロボットシステムSの動作例の説明図である。本実施形態では、
図4の2-(2)-1に示すように、位置姿勢把握部3aは、空間S1に第1指40aを含むエンドエフェクタ40の一部を挿入する際(
図3のステップS13)、対象物50の側面から認識誤差E相当の距離だけ離れた位置へ挿入する。対象物50から認識誤差E相当の距離を確保してエンドエフェクタ40の一部を空間S1へ挿入することで、エンドエフェクタ40の挿入の際の認識部20の認識誤差に起因するエンドエフェクタ40と対象物50の干渉を回避できる。
【0035】
さらに
図4の2-(2)-2に示すように、位置姿勢把握部3aは、エンドエフェクタ40を対象物50へ向けて移動させる際(
図3のステップS14)、認識誤差E相当の距離だけ移動させる。認識誤差E相当の距離だけ移動させることで、エンドエフェクタ40の対象物50の方向への移動の際に、第1指40aの先端を対象物50の側面に確実に接触させることができる。
【0036】
なお空間S1に対する対象物50の反対側には、認識誤差E以上の大きさの空間が存在することが望ましい。これは、エンドエフェクタ40を対象物50へ向けて認識誤差E相当の距離だけ移動させる際に、対象物50を押し動かして第1指40aと壁60bで挟んで押し潰してしまうことを防止するためである。
【0037】
[実施形態3]
実施形態2では、エンドエフェクタ40を対象物50へ向けて認識誤差E相当の距離だけ移動させるが、実際の認識誤差は、認識誤差Eよりも小さい値の場合がある。このため、エンドエフェクタ40を対象物50へ向けて認識誤差E相当の距離だけ移動させると、移動量が過大になり、エンドエフェクタ40で対象物50を押し潰してしまうおそれがある。本実施形態では、この不都合を解消する。
【0038】
(実施形態3のロボットシステムSの動作)
図5は、実施形態3のロボットシステムSの動作例の説明図である。先ず
図5の3-(1)に示すように、認識部20は、空間S1と共に、対象物50aに関して、第1指40aを挿入可能な対象物50aの周囲の空間S1のX軸正方向の反対側の壁60bまでの間に、認識誤差E相当の距離だけ対象物50aを移動可能な空間S2が存在するか否かを判定する。空間が対象物50aを移動可能な空間S2であるか否かは、予め与えられた空間S2の条件に基づいて判断される。
【0039】
位置姿勢把握部3aは、空間S2が存在した場合には、
図5の3-(2)に示すように、エンドエフェクタ40を制御して、認識誤差E相当の距離だけ対象物50aを第1指40aで押し動かすことで対象物50aを把持する際の位置決めをする。そして
図5の3-(3)に示すように、実施形態1~2と同様に、把持制御部3bは、エンドエフェクタ40を制御して対象物50aを把持する。
【0040】
一方、位置姿勢把握部3aは、空間S2が存在しない場合には、エンドエフェクタ40の移動を行わず対象物50aの把持処理を中止する。
【0041】
なお
図5では、対象物50aと空間S2との間に対象物50bが存在する場合を示すが、1又は複数の対象物50bの有無に関わらず、空間S2の存在の有無に応じて、エンドエフェクタ40を移動するか、又は把持処理中止とする。これは、本実施形態では、エンドエフェクタ40の移動によって、エンドエフェクタ40と壁60bとの間の全ての対象物50の押し潰しを防止することが目的であるからである。
【0042】
(実施形態3のロボットシステムSの把持処理)
図6は、実施形態3のロボットシステムSの把持処理例を示すフローチャートである。
図3に示す実施形態1の把持処理と比較して、実施形態3の把持処理は、ステップS12の次にステップS12C1が挿入され、ステップS12C1の判定がNoの場合に実行されるステップS12C2が追加され、ステップS14に代えてステップS14Cが実行される点が異なる。その他は実施形態1の把持処理と同様である。
【0043】
ステップS12に続くステップS12C1では、認識部20は、空間S2を検出したか否かを判定する。認識部20は、空間S2を検出した場合(ステップS12C1Yes)にステップS13へ処理を移す。一方認識部20は、空間S2を検出しなかった場合(ステップS12C1No)にステップS12C2へ処理を移し、把持処理を中止する(ステップS12C2)。
【0044】
またステップS14Cでは、位置姿勢把握部3aは、エンドエフェクタ40を対象物50へ向けて認識誤差E相当の距離だけ移動させる。
【0045】
本実施形態では、空間S2が存在する場合にのみエンドエフェクタ40を移動させることで、エンドエフェクタ40が力センサを備えなくても移動した際に対象物50を押し潰すことを防止できる。
【0046】
[実施形態4]
上述の実施形態1~3では、エンドエフェクタ40が対象物50を第1指40a及び第2指40bで把持する動作の詳細については言及していない。実施形態4では、エンドエフェクタ40が第1指40aと第2指40bを用いて対象物50を拘束する順序について説明する。
【0047】
(実施形態4のロボットシステムSの動作)
図7は、実施形態4のロボットシステムSの動作例の説明図である。
図7の4-(2)に示すように、位置姿勢把握部3aは、実施形態1~3と同様に、エンドエフェクタ40の第1指40aを空間S1へ挿入し移動させて対象物50aと接触させる。そして
図7の4-(3)-1に示すように、把持制御部3bは、エンドエフェクタ40の第1指40aが対象物50の空間S1側の面と接触した後、第1指40aの対象物50への接触を一旦解除し、空間S1とX軸正方向の反対側の対象物50の面に第2指40bを接触させる。その後把持制御部3bは、
図7の4-(3)-2に示すように、第1指40aを動かして第2指40bと共に空間S1の対象物50を拘束する。
【0048】
このように、位置姿勢把握部3aによる位置決めの後、認識誤差の許容範囲が小さい空間から先に指を挿入し、その後認識誤差の許容範囲が大きい空間S1に指を挿入して把持することで、把持の失敗を防止することができる。
【0049】
[実施形態5]
実施形態5では、空間S1に挿入されたエンドエフェクタ40の第1指40aが、対象物50の空間S1側の面に接触したことを検知する力センサ9を備える。
【0050】
(実施形態5のロボットシステムSの動作)
図8は、実施形態5のロボットシステムSの動作例の説明図である。先ず
図8の5-(1)に示すように、認識部20は、実施形態1~4と同様に、対象物50と空間S1を検出する。次に
図8の5-(2)に示すように、位置姿勢把握部3aは、認識誤差E相当の距離を対象物50から確保して空間S1へ第1指40aを挿入し、エンドエフェクタ40を対象物50の方向へ移動させる。位置姿勢把握部3aは、力センサ9によって第1指40aが対象物50から受ける反力を検出すると、エンドエフェクタ40の移動を停止する。そして把持制御部3bは、実施形態1~4と同様に、エンドエフェクタ40に対して、第2指40bを対象物50の空間S1とはX軸正方向の反対側の面に接触させて、第1指40aと共に対象物50を把持するよう指示する。
【0051】
(実施形態5のロボットシステムSの把持処理)
図9は、実施形態5のロボットシステムSの把持処理例を示すフローチャートである。
図3のフローチャートで示す実施形態1の把持処理と比較して、実施形態5の把持処理では、ステップS14の次にステップS14Eが挿入され、ステップS14Eの判定がYesとなるまでステップS14Eが繰り返される。その他は実施形態1の把持処理と同様である。
【0052】
ステップS14Eでは、位置姿勢把握部3aは、力センサ9の出力値が所定閾値以上か、つまり対象物50の面との接触に相当する対象物50の面からの反力を検知したか否かを判定する。位置姿勢把握部3aは、反力を検知していない場合(ステップS14ENo)にステップS14Eを繰り返し、反力を検知した場合(ステップS14EYes)にステップS15へ処理を移す。
【0053】
本実施形態によれば、力センサ9によって、第1指40aが必要以上に大きな力を対象物50へ付加することを防止できる。
【0054】
[実施形態6]
実施形態6では、エンドエフェクタ40は、複数の第1指40a(第1指40a1及び40a2の2つ)を備える。複数の第1指40aのそれぞれは、対象物50の空間S1側の面に接触したことを検知する力センサ9を備える。なお複数の第1指40aは、2つに限らず、3つ以上であってもよい。
【0055】
(実施形態6のロボットシステムSの動作)
図10は、実施形態6のロボットシステムSの動作例の説明図である。
図10の6-(3)-1に示すように、位置姿勢把握部3aは、第1指40a1及び40a2を空間S1へ挿入した後、エンドエフェクタ40を対象物50の方向へ移動させる。すると何れかの第1指40a(
図10の6-(3)-1では第1指40a1)の力センサ9が先に対象物50の空間S1側の面との接触を検出すると、
図10の6-(3)-2に示すように、接触が検出されていないもう一方の第1指40a2を、第1指40a1を回転中心として回転させることで、第1指40a2も対象物50へ接触させる。例えばエンドエフェクタ40の回転方向は式(1)の外積rが表す方向で与えられる。式(1)では、ベクトルdはエンドエフェクタ40の対象物50の方向へ向けた移動方向、ベクトルpは先に対象物50と接触した第1指40a1から第1指40a2へ向かうベクトルである。
r=p×d・・・(1)
【0056】
式(1)に基づくエンドエフェクタ40の回転量は、対象物50の姿勢A1の認識誤差の最大値であり、誤差情報2bに含まれる情報である。なお姿勢A1の認識誤差の最大値を回転量としてエンドエフェクタ40を回転させるのではなく、第1指40a2の力センサ9が対象物50の反力を検出するまで回転させてもよい。
【0057】
または、エンドエフェクタ40を鉛直軸周りに旋回することでも、先に対象物50の空間S1側の面との接触が検出された一方の第1指40a1と共に、接触が検出されていないもう他方の第1指40a2を対象物50の空間S1側の面と接触させることができる。
【0058】
(実施形態6のロボットシステムSの把持処理)
図11は、実施形態6のロボットシステムSの把持処理例を示すフローチャートである。
図3のフローチャートで示す実施形態1の把持処理と比較して、実施形態6の把持処理では、ステップS13の代わりにステップS13Fが実行され、ステップS14の代わりにステップS14F1が実行され、ステップS14F1の次にステップS14F2の判定処理が追加される。またステップS15の次にステップS15Fが追加される。その他は実施形態1の把持処理と同様である。
【0059】
ステップS13Fでは、位置姿勢把握部3aは、空間S1へ複数の第1指40aを挿入する。次にステップS14F1では、位置姿勢把握部3aは、複数の第1指40aを対象物50へ向けて移動させる。次にステップS14F2では、位置姿勢把握部3aは、少なくとも1つの第1指40aが対象物50の空間S1側の面に接触したことを示す反力を検出したか否かを判定する。位置姿勢把握部3aは、少なくとも1つの第1指40aが対象物50の空間S1側の面に接触したことを示す反力を検出した(ステップS14F2Yes)場合にステップS15へ処理を移し、反力を検出しない場合に(ステップS14F2No)場合にステップS14F2を繰り返す。
【0060】
ステップS15Fでは、位置姿勢把握部3aは、全ての第1指40aが対象物50の空間S1側の面と接触するまでエンドエフェクタ40を回転させる。
【0061】
(実施形態6の変形例)
なお本実施形態では、総ての第1指40aが力センサ9を備えるとしたが、第1指40aは総て力センサ9を備えない構成でもよい。この場合、
図10の6-(3)-1に示すエンドエフェクタ40の対象物50の方向への移動量mは、認識部20の認識誤差E相当の距離とすればよい。
【0062】
(実施形態6の変形例のロボットシステムSの把持処理)
図12は、実施形態6の変形例のロボットシステムSの把持処理例を示すフローチャートである。
図11のフローチャートで示す実施形態6の把持処理と比較して、実施形態6の変形例の把持処理では、ステップS14F1の代わりにステップS14F11が実行され、ステップS14F2が省略される。その他は、実施形態6の把持処理と同様である。ステップS14F11では、位置姿勢把握部3aは、複数の第1指を対象物50に向けて認識誤差E相当の距離だけ移動させる。
【0063】
本実施形態及びその変形例によれば、姿勢A1の認識誤差をエンドエフェクタ40の旋回により補正することで、把持成功率を高めることができる。
【0064】
[実施形態7]
実施形態7では、エンドエフェクタ40は、少なくとも第1指40aが力センサ9を備え、第1指40aを垂直降下させた際の力センサ9による反力の検知によって、対象物50が配置されている面の高さを認識する。
【0065】
(実施形態7のロボットシステムSの動作)
図13は、実施形態7のロボットシステムSの動作例の説明図である。先ず
図13の7-(1)に示すように、認識部20は、対象物50bの位置P1、姿勢A1、及び少なくとも第1指40aを挿入可能な対象物50の周囲の空間S1を検出する。次に
図13の7-(2)-1に示すように、位置姿勢把握部3aは、認識誤差E相当の距離を対象物50から確保して空間S1へ第1指40aを挿入し、第1指40aが反力を検出するまでエンドエフェクタ40を下へ(Z軸負方向へ)移動させる。第1指40aが反力を検出するとは、対象物50が配置されている高さの面を検出したということである。
【0066】
その後
図13の7-(2)-2に示すように、位置姿勢把握部3aは、エンドエフェクタ40を、対象物形状情報2aから定められる対象物50の適切な把持位置の高さまでZ軸正方向へ上昇させ、この高さを維持しながら、対象物50の方向へ認識誤差E相当の距離だけ移動させて第2指40bを対象物50に接触させる。これにより対象物50の位置P2が把握される。そして
図13の7-(2)-3に示すように、対象物形状情報2aと、位置姿勢把握部3aで把握した対象物の位置P2と、認識部20で把握した姿勢A1とに基づいて対象物50の把持可能な部位をエンドエフェクタ40で把持する。
【0067】
(実施形態7のロボットシステムSの把持処理)
図14は、実施形態7のロボットシステムSの把持処理例を示すフローチャートである。
図9のフローチャートで示す実施形態5の把持処理と比較して、実施形態7の把持処理では、ステップS13の代わりにステップS13Gが実行され、ステップS14Eの代わりにステップS14G1、S14G2、及びS14G3が実行される。その他は、実施形態7の把持処理と同様である。
【0068】
ステップS13Gでは、位置姿勢把握部3aは、空間S1に少なくとも第1指40aを対象物50から認識誤差Eを確保して挿入し、下方へ移動させる。次にステップS14G1では、位置姿勢把握部3aは、力センサ9の出力値が所定閾値以上か、つまり載置スペース6における対象物50の配置面との接触に相当する配置面からの反力を検知したか否かを判定する。位置姿勢把握部3aは、反力を検知していない場合(ステップS14G2No)にステップS14G2を繰り返し、反力を検知した場合(ステップS14G2Yes)にステップS14G3へ処理を移す。
【0069】
ステップS14G3では、位置姿勢把握部3aは、エンドエフェクタ40を所定高さで対象物50に向けて認識誤差Eだけ移動させる。
【0070】
なお本実施形態において、エンドエフェクタ40を対象物50の方向へ認識誤差E相当の距離だけ移動させる際に、エンドエフェクタ40が配置面の高さを維持した状態で移動させてもよい。
【0071】
本実施形態では、乱雑に何層にも積み上げられた対象物50を最上層からピッキングする際、または高さ方向の形状が高さ位置で異なる対象物50をピッキングする際、高精度に検出した配置面を基準に対象物50の適切な把持位置の高さを割り出し、この高さで対象物50を把持する。よって、低精度の高さ認識に基づく不適切な位置を把持することによる把持失敗を防止し、ピッキング成功率を高めることができる。
【0072】
(ロボットシステムSの制御装置1を実現するコンピュータ500の構成)
図15は、ロボットシステムSの制御装置1を実現するコンピュータ500の構成例を示す図である。コンピュータ500では、プロセッサ510、RAM(Random Access Memory)などのメモリ520、SSD(Solid State Drive)やHDD(Hard Disk Drive)などのストレージ530、及びネットワークI/F(Inter/Face)540が、バスを介して接続されている。
【0073】
コンピュータ500において、制御装置1を実現するためのプログラムがストレージ530から読み出されプロセッサ510及びメモリ520の協働により実行されることで制御装置1が実現される。あるいは、制御装置1を実現するためのプログラムによって、FPGAといったPLDであるプロセッサ510がコンフィギュレーションされることで制御装置1が実現される。または、制御装置1を実現するためのプログラムは、ネットワークI/F540を介した通信により非一時的な記憶装置を備えた外部のコンピュータから取得されてもよい。あるいは制御装置1は、非一時的記録媒体に記録され、媒体読み取り装置によって読み出されることで取得されてもよい。
【0074】
本発明は上述の実施形態に限定されるものではなく、様々な変形例を含む。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、矛盾しない限りにおいて、ある実施形態の構成の一部を他の実施形態の構成で置き換え、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、構成の追加、削除、置換、統合、又は分散をすることが可能である。また、実施形態で示した構成及び処理は、処理効率又は実装効率に基づいて適宜分散、統合、または入れ替えることが可能である。
【符号の説明】
【0075】
S:ロボットシステム、1:制御装置、2:記憶部、2a:対象物形状情報、2b:誤差情報、3:制御部、3a:位置姿勢把握部、3b:把持制御部、9:力センサ、20:認識部、30:アーム、40:エンドエフェクタ(把持部)、50,50a,50b:対象物、500:コンピュータ、510:プロセッサ