(58)【調査した分野】(Int.Cl.,DB名)
前記判定部が、第3の3次元情報に含まれるワークが目標のワークと異なると判定した場合、または、第3の3次元情報に含まれるワークが2個以上であると判定した場合に、前記動作制御部は、ハンドにて把持したワークをハンドにて把持する前に配置されていた元の位置の近傍に戻すようにロボットを制御し、
ロボットがワークを元の位置の近傍に戻した後に、3次元センサは、容器に配置されているワークを撮像し、前記検出部は、ワークの位置および姿勢を検出し、前記選定部は、ロボットが取り出す次の目標のワークを選定する、請求項1に記載のロボットシステム。
前記判定工程において、第3の3次元情報に含まれるワークが目標のワークと異なると判定された場合、または、第3の3次元情報に含まれるワークが2個以上であると判定された場合に、ハンドにて把持したワークをハンドにて把持する前に配置されていた元の位置の近傍に戻すようにロボットを制御し、
ロボットがワークを元の位置の近傍に戻した後に、容器に配置されているワークを3次元センサにて撮像する撮像工程を実施し、ワークの位置および姿勢を検出する検出工程を実施し、ロボットが取り出す次の目標のワークを選定する選定工程を実施する、請求項5に記載のロボットシステムの制御方法。
【発明を実施するための形態】
【0015】
図1から
図16を参照して、実施の形態におけるロボットシステムおよびロボットシステムの制御方法について説明する。本実施の形態のロボットシステムは、容器の内部に山の様に積まれているワークを取り出して、予め定められた搬送位置までワークを搬送する作業を実施する。
【0016】
図1は、本実施の形態におけるロボットシステムの斜視図である。ロボットシステム5は、ロボット1およびハンド2を備える。ロボットシステム5は、ロボット1およびハンド2を制御する制御装置4を備える。本実施の形態のロボット1は、複数の関節部を含む多関節ロボットである。ロボット1は、上部アーム11と下部アーム12とを含む。下部アーム12は、旋回ベース13に支持されている。旋回ベース13は、ベース14に支持されている。ロボット1は、上部アーム11の端部に連結されているリスト15を含む。これらのロボット1の構成部材は、予め定められた回転軸の周りに回転するように形成される。ロボットとしては、この形態に限られず、ハンドの位置および姿勢を変更可能な任意のロボットを採用することができる。
【0017】
ハンド2は、ワークWを把持したり解放したりする作業ツールである。ハンド2は、磁力による吸着力を発生させる電磁石2aと、電磁石2aの磁力によってワークWを吸着する吸着部材2bとを含む。吸着部材2bは、棒状に形成されている。吸着部材2bは、先端が球状に形成されている。本実施の形態のハンド2は、ワークWに対するハンド2の相対的な位置および姿勢を定めずにワークWを把持することができる。
【0018】
ワークWは、容器としてのコンテナ9の内部に配置されている。容器としては、箱、袋、または籠などのワークWを収容できる任意の部材を採用することができる。コンテナ9の内部には、ワークWがバラ積みされている。コンテナ9は、架台81に載置されている。本実施の形態のロボットシステム5は、コンテナ9からワークWを1個ずつ取り出して、予め定められた搬送位置まで搬送する。
【0019】
ロボットシステム5は、ワークWの位置および姿勢を検出するための3次元センサとしてのレンジセンサ6を備える。レンジセンサ6は、ワークWまでの距離の情報を取得する。レンジセンサ6は、ワークWを撮像できる位置に配置される。本実施の形態では、レンジセンサ6は、コンテナ9の上方に配置されている。レンジセンサ6は、支持部材83により固定されている。レンジセンサ6は、制御装置4により制御されている。
【0020】
本実施の形態のレンジセンサ6は、2台のカメラ61,62を含むステレオカメラである。カメラ61,62は、2次元の画像を撮像することができる2次元カメラである。カメラ61,62としては、CCD(Charge-Coupled Device)センサまたはCMOS(Complementary Metal-Oxide Semiconductor)センサなどの撮像素子を備えた任意のカメラを採用することができる。2台のカメラ61,62の相対的な位置は予め定められている。本実施の形態のレンジセンサ6は、ワークWに向かって縞模様などのパターン光を投影するプロジェクタ63を含む。
【0021】
本実施の形態のロボットシステム5には、ロボット1の位置および姿勢が変化した時に不動の基準座標系37が設定されている。
図1の例では、ロボット1のベース14に、基準座標系37の原点が配置される。基準座標系37はワールド座標系とも称される。基準座標系37には、座標軸として、互いに直行するX軸、Y軸、およびZ軸が設定される。例えば、基準座標系37の座標値(xb,yb,zb)を設定することができる。また、X軸の周りの座標軸としてW軸、Y軸の周りの座標軸としてP軸、および、Z軸の周りの座標軸としてR軸が設定されても構わない。この場合に、基準座標系37の座標値(xb,yb,zb,wb,pb,rb)を設定することができる。
【0022】
図2に、本実施の形態におけるロボットシステムのブロック図を示す。
図1および
図2を参照して、ロボット1は、ロボット1の位置および姿勢を変化させるロボット駆動装置を含む。ロボット駆動装置は、アームおよびリスト等の構成部材を駆動するロボット駆動モータ22を含む。ロボット駆動モータ22が駆動することにより、それぞれの構成部材の向きが変化する。
【0023】
ロボットシステム5は、ハンド2を駆動するハンド駆動装置を備える。本実施の形態のワークWは、鉄などの磁性体にて形成されている。ハンド2の電磁石2aが駆動することによりワークWが吸着部材2bに吸着される。
【0024】
制御装置4は、CPU(Central Processing Unit)と、CPUにバスを介して接続されたRAM(Random Access Memory)およびROM(Read Only Memory)等を有する演算処理装置(コンピュータ)を含む。制御装置4には、ロボット1の動作を行うために予め作成された動作プログラム41が入力される。動作プログラム41は、記憶部42に記憶される。本実施の形態のロボットシステム5は、動作プログラム41に基づいてワークWを搬送する。ロボット1は、自動的に予め定められた搬送位置までワークWを搬送することができる。
【0025】
動作制御部43は、動作プログラム41に基づいてロボット1を駆動するための動作指令をロボット駆動部45に送出する。ロボット駆動部45は、ロボット駆動モータ22を駆動する電気回路を含む。ロボット駆動部45は、動作指令に基づいてロボット駆動モータ22に電気を供給する。また、動作制御部43は、動作プログラム41に基づいてハンド2を駆動する動作指令をハンド駆動部44に送出する。ハンド駆動部44は、電磁石2aを駆動する電気回路を含む。ハンド駆動部44は、動作指令に基づいて電磁石2aに電気を供給する。更に、動作制御部43は、動作プログラム41に基づいて、レンジセンサ6を駆動する動作指令をレンジセンサ6に送出する。
【0026】
ロボット1は、ロボット1の位置および姿勢を検出するための状態検出器を含む。本実施の形態における状態検出器は、アーム等の構成部材の駆動軸に対応するロボット駆動モータ22に取り付けられた位置検出器18を含む。位置検出器18の出力により、それぞれの駆動軸における構成部材の向きを取得することができる。例えば、位置検出器18は、ロボット駆動モータ22が駆動するときの回転角を検出する。また、位置検出器18の出力に基づいて、ハンド2の位置および姿勢が検出される。
【0027】
制御装置4は、動作プログラム41に基づいてロボット1の動作を設定する動作設定部52を含む。本実施の形態の動作設定部52は、コンテナ9から取り出すワークWを選定し、ワークWをハンド2にて把持する制御を実施する。また、動作設定部52は、ハンド2にて把持されたワークWの状態を検出して、ロボット1の動作を制御する。
【0028】
図3に、ワークが内部に配置されたコンテナの平面図を示す。
図4に、本実施の形態におけるレンジセンサとワークとの関係を説明する部分断面図を示す。
図4では、説明のためにレンジセンサ6とコンテナ9との距離が近くなるように記載している。コンテナ9の内部には、複数のワークWが配置されている。本実施の形態のワークWは、円筒状に形成されている。本実施の形態においては、コンテナ9の少なくとも1つの方向において、ワークW同士の間隔またはワークWの姿勢が同一でない状態をバラ積みされた状態と称する。本実施の形態では、複数のワークWは、ワークWの軸線の向きが互いに異なるようにコンテナ9に配置されている。すなわち、複数のワークWの向きが不規則になるようにワークWが積まれている。
【0029】
レンジセンサ6は、撮像が可能な範囲である撮像範囲64を有する。カメラ61,62は、撮像範囲64の内部にコンテナ9が収容されように配置されることが好ましい。すなわち、カメラ61,62は、コンテナ9の上方から見える全てのワークWを撮像できるように配置されることが好ましい。
【0030】
図5に、ワークを取り出すときのハンドおよびコンテナの部分断面図を示す。ハンド2の電磁石2aが駆動することにより、吸着部材2bにワークWが吸着する。そして、ハンド2が移動することにより、矢印91に示すようにワークWを持ち上げることができる。本実施の形態においては、ワークWは不規則な向きにてハンド2に把持される。
【0031】
図2および
図4を参照して、制御装置4は、レンジセンサ6の出力に基づいて、ワークWの3次元情報を生成する生成部58を含む。生成部58は、カメラ61,62にて撮像した画像を処理する。生成部58は、ステレオ法によりワークWの3次元情報を生成することができる。3次元情報には、ワークWの表面に設定された測定点の位置の情報が含まれる。
【0032】
図6に、ワークの表面上に設定される測定点の説明図を示す。生成部58は、任意の方法にて、レンジセンサ6から見えるワークWの表面に複数の測定点MPを設定することができる。例えば、
図4を参照して、生成部58は、プロジェクタ63の光軸63aに垂直な平面65を設定することができる。生成部58は、平面65に格子状の線を設定することができる。例えば、生成部58は、互いに直交するように、X軸方向に延びる直線およびY軸方向に延びる直線を設定することができる。生成部58は、これらの複数の直線の交点とプロジェクタ63のレンズ中心点とを結ぶ直線66を設定する。そして、生成部58は、直線66の方向において、ワークWの表面に交わる点を測定点MPに設定することができる。
【0033】
生成部58は、2台のカメラ61,62にて撮像される2つの画像の視差に基づいて、レンジセンサ6から測定点MPまでの距離を算出する。生成部58は、測定点MPまでの距離および直線66の向きに基づいて、測定点MPの位置を検出することができる。例えば、生成部58は、基準座標系37における測定点MPの座標値を算出して、3次元情報を生成することができる。
【0034】
3次元情報は、複数の測定点MPの位置の情報を含む。本実施の形態の3次元情報は、基準座標系37における測定点MPの座標値を含む。または、3次元情報は、レンジセンサ6から測定点MPまでの距離およびレンジセンサ6から測定点MPに向かう方向の情報を含んでいても構わない。3次元情報は、例えば、距離画像または3次元マップである。距離画像は、レンジセンサ6からの距離に応じて画像の色または画像の濃さを変化させた画像である。3次元マップは、予め定められた座標系における測定点の座標値、またはレンジセンサからの測定点までの距離および測定点の方向の情報を含む。なお、本実施の形態の生成部58は、ロボット1を制御する制御装置4に含まれているが、この形態に限られない。カメラ61,62にて取得した画像を処理する演算処理装置が制御装置4とは別に配置されていても構わない。
【0035】
図2を参照して、検出部53は、ワークWの3次元情報を3次元形状データと比較するモデルマッチングを行うことにより、ワークWの位置および姿勢を検出する。本実施の形態においては、予め作成されたワークWの3次元形状データ46が記憶部42に記憶されている。3次元形状データ46としては、例えば、CAD(Computer Aided Design)装置にて生成される形状の3次元データを用いることができる。生成部58は、CAD装置により生成された3次元形状データ46に基づいて、ワークWの向きを検出することができる。
【0036】
または、作業者は、予め定められた方向から撮像したときのワークの距離画像を3次元形状データ46として採用することができる。作業者は、形状が大きく異なって見える複数の方向から撮像したワークの距離画像を3次元形状データ46として採用することができる。例えば、本実施の形態のワークWは、円筒の形状を有する。このため、ワークWの軸線に垂直な方向から撮像した距離画像と、ワークWの軸線の方向から見たときの距離画像とを、3次元形状データ46に採用することができる。ワークWを見る方向が少し異なっていても、検出部53は、これらの3次元形状データ46に基づいてワークWの位置および姿勢を検出することができる。
【0037】
なお、複数の種類のワークが容器に配置されている場合に、作業者は、それぞれのワークの種類ごとに3次元形状データ46を作成する。記憶部42は、複数の種類の3次元形状データ46を記憶することができる。動作設定部52は、それぞれの種類のワークごとに判定を行うことができる。
【0038】
動作設定部52は、ロボット1にて取り出すための目標のワークWを選定する選定部59を含む。選定部59は、検出部53にて検出されたワークWの位置および姿勢に基づいて目標のワークWを選定する。選定部59は、任意の制御により目標のワークWを選定することができる。例えば、レンジセンサ6から最も近いワークWを目標のワークWに設定することができる。すなわち、ワークWの位置が高いものから順番にワークWを選定することができる。または、所定の条件においては、ワークWの位置が低いものを選定しても構わない。例えば、選定部59は、ハンド2にて把持可能な部分が大きく露出しており、容易に把持することができるワークWを選定しても構わない。
【0039】
また、選定部59は、ハンド2によりワークWの把持が可能か否かを判定しても構わない。例えば、ワークWがコンテナ9の壁面の近くに存在する場合には、ハンド2の吸着部材2bをワークWに接触させることができない場合がある。このような場合には、選定部59は、ワークWの把持が不可能であると判定しても構わない。
【0040】
そして、選定部59は、目標のワークWの位置および姿勢に応じて、ロボット1がワークWを把持できる目標位置および目標姿勢を算出する。選定部59は、動作制御部43にロボット1の目標位置および目標姿勢を送信する。ロボット1は、目標位置および目標姿勢に向かって位置および姿勢を変更する。ロボット1が目標位置および目標姿勢に到達した後に、ハンド2の吸着部材2bが励磁されることにより、ワークWを把持することができる。次に、動作制御部43は、ロボット1の位置および姿勢を変更してワークWを持ち上げる動作を実施する。
【0041】
動作設定部52は、ロボット1がワークWを持ち上げた後の状態を判定する判定部55を含む。判定部55は、所望の状態にてワークWを把持しているか否かを判定する。判定部55は、ロボット1が所望の状態にてワークWを把持している場合には、搬送位置までワークを搬送する動作指令を動作制御部43に送信する。動作制御部43は、搬送位置までワークを搬送するようにロボット1を制御する。
【0042】
一方で、判定部55は、ロボット1が所望の状態にてワークWを把持していない場合には、ハンド2にて把持したワークWをハンド2にて把持する前に配置されていた元の位置の近傍に戻す動作指令を動作制御部43に送信する。または、判定部55は、ハンド2がワークWを把持していないと判定した場合に、ワークの撮像から制御を実施する動作指令を送出する。
【0043】
次に、判定部55にてワークWが把持されている状態を判定し、ワークWが把持されている状態に応じて、ロボット1の動作を変化させる制御について詳しく説明する。
【0044】
図7に、生成部にて生成された第1の3次元情報の例を示す。
図7は、ロボット1が駆動する前にレンジセンサ6にて撮像した第1の距離画像31である。ここでの例では、レンジセンサ6からの距離に応じて濃さが変化する距離画像が示されている。この距離画像では、レンジセンサ6からの距離が近いほど部品の濃さが薄くなる。第1の距離画像31には、複数のワークの画像72a,72b,72cと、コンテナの画像71が含まれている。
【0045】
本実施の形態では、ロボット1が目標のワークWを把持する動作を実施する前に、レンジセンサ6にてワークWを撮像する。生成部58は、レンジセンサ6の出力に基づいて、第1の距離画像31を生成する。第1の距離画像31は、ワークWを撮像したレンジセンサ6の出力に基づいて生成された第1の3次元情報に相当する。本実施の形態の3次元情報には、測定点MPの座標値の情報が含まれている。
【0046】
検出部53は、第1の距離画像31に基づいて、それぞれのワークWの位置および姿勢を検出する。選定部59は、ワークWの位置および姿勢に基づいて、ロボット1にて取り出すワークWを選定する。動作制御部43は、ロボット1が目標のワークWを把持するように制御する。動作制御部43は、目標のワークWを持ち上げる動作を実施した後に停止するようにロボット1を制御する。この時に、ロボット1は、目標のワークWをコンテナ9から取り出して、レンジセンサ6の撮像範囲64の外側に待避する。すなわち、レンジセンサ6が撮像する距離画像に、ロボット1、ハンド2、およびハンド2に把持されたワークWが写らないように、ロボット1の位置および姿勢を変更する。ロボット1は、ワークWを目標の搬送位置まで搬送せずに、コンテナ9の近傍にワークWを配置する。
【0047】
ここでの例では、複数のワークの画像72a,72b,72cのうち、画像72aに対応するワークが目標のワークWであるとする。また、ロボット1は、目標のワークWのみを持ち上げている。すなわち、ロボット1は、目標のワーク以外のワークWは持ち上げていない。
【0048】
次に、レンジセンサ6は、ロボット1がワークWを持ち上げる動作を実施した後に、コンテナ9に配置されたワークWを撮像する。生成部58は、レンジセンサ6の出力に基づいて、第2の3次元情報としての第2の距離画像を生成する。
【0049】
図8に、目標のワークを持ち上げる動作を実施した後の距離画像の例を示す。第2の距離画像32では、
図7に示す画像72aに対応するワークWがコンテナ9から取り出されることにより、画像72aが消失している。
【0050】
図2を参照して、本実施の形態における動作設定部52は、3次元情報に含まれる少なくとも一部の測定点の情報を削除する削除部54を含む。削除部54は、第1の3次元情報の測定点MPの位置と第2の3次元情報の測定点MPの位置とを比較する。削除部54は、予め定められた距離の範囲内に第2の3次元情報の測定点が存在する第1の3次元情報の測定点を特定の測定点として検出する。削除部54は、第1の3次元情報から特定の測定点の情報を削除した第3の3次元情報を生成する。
【0051】
図9に、ワークを把持する前に生成した第1の3次元情報の測定点と、ワークを持ち上げる動作を行った後に生成した第2の3次元情報の測定点とを説明する概略図を示す。
図9に示す例では、目標のワーク以外のワークWが示されている。特に、目標のワークWを持ち上げる前の位置と目標のワークWを持ち上げた後の位置が変わらないワークWが示されている。
【0052】
ロボット1が目標のワークWを持ち上げる動作を実施したときに、ワークWが動かなければ、第1の3次元情報に含まれる測定点MPaの位置と、第2の3次元情報に含まれる測定点MPbの位置とは同一になる。しかしながら、測定誤差などにより、測定点MPaの位置と測定点MPbの位置とが僅かに異なる場合がある。または、ロボット1が目標のワークWを持ち上げる動作を実施したときに、他のワークWが僅かに移動したとしても、次の工程におけるワークWの取出しに影響を与えない場合がある。
【0053】
本実施の形態における削除部54は、第1の3次元情報に含まれる測定点MPaの近傍に、第2の3次元情報に含まれる測定点MPbが存在する場合に、その測定点MPaを特定の測定点に設定する。そして、削除部54は、第1の3次元情報から特定の測定点の情報を削除した第3の3次元情報を生成する。
【0054】
第1の3次元情報に含まれる測定点MPaを削除するための判定範囲は、予め定められている。本実施の形態においては、基準座標系におけるX軸方向、Y軸方向、およびZ軸方向の判定範囲が定められている。
図9に示す例では、X軸方向およびY軸方向について判定範囲67が示されている。第1の3次元情報に含まれる測定点MPaに対して、判定範囲67の内部に、第2の3次元情報に含まれる測定点MPbが存在する。このために、削除部54は、測定点MPaを特定の測定点として検出する。削除部54は、特定の測定点を第1の3次元情報から削除する。例えば、第1の距離画像31に含まれている測定点MPaの座標値を削除する。このように、削除部54は、特定の測定点を第1の3次元情報から削除した第3の3次元情報を生成する。
【0055】
図9に示す例では、全ての第1の3次元情報の測定点MPaの近傍に、第2の3次元情報の測定点MPbが存在している。このために、削除部54は、全ての測定点MPaを特定の測定点に指定して削除している。
【0056】
図10に、削除部にて生成された第3の距離画像の例を示す。
図7、
図8、および
図10を参照して、第3の3次元情報としての第3の距離画像33には、位置および姿勢が変化しない複数のワークの画像72b,72cが第1の距離画像31から削除されている。第3の距離画像33には、ロボット1にてコンテナ9から取り出されたワークの画像72aが残存する。
【0057】
検出部53は、第3の距離画像33と3次元形状データ46とを比較するモデルマッチングを行うことにより、画像72aに対応するワークWの位置および姿勢を検出する。
【0058】
次に、判定部55は、検出部53にて検出されたワークWが目標のワークWと同一であるか否かを判定する。判定部55は、選定部59から目標のワークWの位置および姿勢を取得する。判定部55は、第3の距離画像33に含まれるワークWの位置および姿勢と、目標のワークWの位置および姿勢との差が、予め定められた判定範囲内であれば、第3の距離画像33に含まれるワークは、目標のワークと同一であると判定する。なお、検出部53にて複数のワークが検出され、目標のワークと異なるワークが含まれている場合に、判定部55は、第3の3次元情報に含まれるワークは目標のワークと同一でないと判定する。
【0059】
図10に示す例では、判定部55は、目標のワークWが取り出されたと判定する。次に、判定部55は、ハンド2にて把持したワークWを予め定められた搬送位置まで搬送する指令を動作制御部43に送出する。動作制御部43は、ハンド2にて把持したワークWを搬送位置まで搬送するようにロボット1を制御する。
【0060】
このように、本実施の形態のロボットシステム5では、ワークを持ち上げる動作を実施する前の第1の3次元情報と、ワークを持ち上げる動作を実施した後の第2の3次元情報とを比較することにより、ハンド2が目標のワークを把持しているか否かを判定することができる。
【0061】
ロボット1が目標のワークWを持ち上げる動作を実施した時に、ハンド2が目標のワークWと異なる1個のワークWを把持している場合には、第3の3次元情報には、目標のワークWとは異なるワークの画像が残存する。検出部53は、目標のワークとは異なるワークの位置および姿勢を検出する。判定部55は、検出部53にて検出されたワークは目標のワークと異なると判定する。または、ハンド2が目標のワークに加えて、目標のワーク以外のワークを把持している場合がある。すなわち、ハンド2が2個以上のワークWを把持している場合がある。この場合に、第3の3次元情報には、複数のワークWの情報が含まれる。検出部53は、複数のワークWの位置および姿勢を検出する。判定部55は、検出部53にて検出された複数のワークWは、目標のワークと同一でないと判定する。
【0062】
ハンド2が目標のワークとは異なるワークを把持している場合または2個以上のワークを把持している場合に、判定部55は、ハンド2にて把持したワークWを元の位置の近傍に戻す動作指令を動作制御部43に送出する。動作制御部43は、ハンド2にて把持したワークをハンド2にて把持する前に配置されていた元の位置の近傍に戻すようにロボット1を制御する。すなわち、動作制御部43は、第1の3次元情報における目標のワークの位置の近傍にワークWを戻すように制御する。
【0063】
ロボット1がワークWを元の位置の近傍に戻した後には、ワークWを搬送する制御をワークWの撮像から実施する。すなわち、レンジセンサ6はコンテナ9に配置されているワークWを撮像し、検出部53はワークWの位置および姿勢を検出し、選定部59は、ロボット1が取り出す次の目標のワークWを選定する。
【0064】
ワークWをコンテナ9に戻す場合に、ハンド2にて把持したワークWを元の位置とは異なる位置に戻す制御を実施することができる。しかしながら、この制御では、コンテナ9の内部において荷崩れが生じる虞がある。ハンド2にて把持したワークWを元の位置の近傍に戻す制御を実施することにより、ワークWを戻したときに荷崩れが生じることを抑制することができる。なお、ハンド2にて把持したワークWを元の位置と同一の位置に戻す制御を実施しても構わない。
【0065】
また、検出部53は、第3の3次元情報において、ワークWの位置および姿勢を検出できない場合がある。すなわち、
図10に示す第3の距離画像33において、第3の3次元情報と3次元形状データ46とを比較するモデルマッチングを行っても、ワークWの位置および姿勢を検出できない場合がある。例えば、ハンド2がワークWの把持に失敗して、ワークWを把持していない場合がある。更に、ロボット1が目標のワークWを持ち上げる動作を実施した時に、コンテナ9の内部のワークWに荷崩れが生じずに、全てのワークWの位置および姿勢が変化していない場合がある。または、ワークWの位置の移動量が非常に小さく、削除部54によって測定点の情報が削除されている場合がある。この場合には、第3の距離画像33には、1つもワークの画像が含まれていないために、検出部53はワークを検出することができない。
【0066】
判定部55は、第1の3次元情報の測定点のうち特定の測定点以外の測定点の個数を検出することができる。判定部55は、特定の測定点以外の測定点の個数が予め定められた把持の失敗に関する判定値よりも小さい場合に、ハンド2がワークWを把持していないと判定することができる。すなわち、削除部54にて殆ど全ての測定点が削除されている場合に、判定部55は、コンテナ9に配置された全てのワークWの位置および姿勢が変化していないと判定することができる。また、判定部55は、ワークWを取り出す動作を実施した時に、ワークWの荷崩れが生じていないと判定することができる。ワークの把持の失敗に関する判定値は、小さな値を採用することができる。例えば、1つのワークに設定される測定点の個数の下限値よりも小さな値を採用することができる。
【0067】
判定部55がハンド2にてワークWが把持されていないと判定した後に、制御装置4は、ワークWを搬送する制御をワークWの撮像から実施する。すなわち、レンジセンサ6はコンテナ9に配置されているワークWを撮像し、検出部53はワークWの位置および姿勢を検出し、選定部59は、ロボット1が取り出す次の目標のワークWを選定する。
【0068】
また、ロボット1がワークWを取り出す動作を実施したときに、荷崩れが生じる場合がある。すなわち、ロボット1が取り出さなかったワークWの位置および姿勢が変化する場合がある。荷崩れが生じた場合に、第2の3次元情報には、第1の3次元情報に含まれる測定点とは離れた測定点が多く存在する。第1の3次元情報の測定点について、予め定められた距離の範囲内に第2の3次元情報の測定点が存在する特定の測定点の個数は少なくなる。すなわち、第1の3次元情報の測定点に含まれる特定の測定点の個数は少なくなる。
【0069】
判定部55は、荷崩れの発生を判定するために、第1の3次元情報の測定点のうち特定の測定点以外の測定点の個数を検出する。判定部55は、特定の測定点以外の測定点の個数が予め定められた荷崩れに関する判定値よりも大きいか否かを判定する。判定部55は、特定の測定点以外の測定点の個数が荷崩れに関する判定値よりも大きい場合に、荷崩れが生じていると判定することができる。荷崩れに関する判定値は、例えば、1つのワークに設定される測定点の個数の上限値よりも大きな値を採用することができる。
【0070】
または、判定部55は、荷崩れの発生を判定するために、第2の3次元情報の測定点について、第1の3次元情報の測定点から予め定められた距離の範囲内に存在しない測定点の個数を算出しても構わない。この測定点の個数が荷崩れに関する判定値よりも大きければ、判定部55は、第1の3次元情報の測定点のうち特定の測定点以外の測定点の個数が荷崩れに関する判定値よりも大きいと判定しても構わない。
【0071】
判定部55は、第1の3次元情報の測定点のうち特定の測定点以外の測定点の個数が予め定められた荷崩れに関する判定値よりも大きいと判定した場合に、ハンド2にて把持したワークWを元の位置の近傍に戻す指令を動作制御部43に送出する。動作制御部43は、ハンド2にて把持したワークWをハンド2にて把持する前に配置されていた元の位置の近傍に戻すようにロボット1を制御する。
【0072】
ロボット1がワークWを元の位置の近傍に戻した後に、制御装置4は、ワークWを取り出す制御をワークWの撮像から実施する。すなわち、レンジセンサ6はコンテナ9に配置されているワークWを撮像し、検出部53はワークWの位置および姿勢を検出し、選定部59は、ロボット1が取り出す次の目標のワークWを選定する。
【0073】
本実施の形態におけるロボットシステム5は、ロボット1がワークWを持ち上げた動作を実施した時に、ワークWが把持されている状態を判別する。そして、ワークWの把持の状態に応じてロボット1を制御することができる。このために、ロボットシステム5は、ワークWを搬送するサイクルタイムを短くすることができる。例えば、ワークWが把持されていないにも関わらず、ロボット1が目標の搬送位置までワークWを搬送する動作を回避することができる。または、ハンド2が目標のワーク以外のワークWを把持していたり、目標のワークWに加えて他のワークWを把持していたりする場合に、ワークWを目標の搬送位置まで搬送することを回避できる。例えば、目標のワーク以外のワークまたは2個以上のワークを搬送した後に、ロボット1がワークを元の位置に戻す動作を排除することができる。
【0074】
図11に、第1の比較例のロボットシステムのハンドの部分の第1の側面図を示す。第1の比較例においては、ハンド2がワークWCを把持しているか否かを判定するために、光電センサ85が配置されている。光電センサ85は、ハンド2に固定されている。光電センサ85は、矢印95に示すように光を発する。光電センサ85がワークWCの表面にて反射する光を検出することにより、ハンド2はワークWCを把持していると判定することができる。光電センサ85が反射光を検出しない場合には、ハンド2はワークWCを把持していないと判定することができる。
【0075】
図12に、第1の比較例のロボットシステムのハンドの部分の第2の側面図を示す。比較例におけるハンド2は、電磁石ハンドである。このために、ワークWCが把持される姿勢は定まっていない。
図12に示すように、ワークWCが傾いた状態で把持された場合には、光電センサ85は、反射光を受光することができない。このために、ワークWCが把持されているにも関わらず、ワークWCが把持されていないと判定される場合がある。第1の比較例においては、光電センサ85がハンド2に固定されているために、光電センサ85の向きを定めることが難しいという問題がある。または、ワークWCが把持される全ての向きに対して、ワークWCを検出できる光電センサ85の向きが存在しない場合がある。
【0076】
図13に、第2の比較例のロボットシステムのハンドの部分の第1の側面図を示す。第2の比較例においては、ハンド2がワークWCを把持しているか否かを判定するために、光電センサ86が配置されている。光電センサ86は、発光素子86aと受光素子86bとを含む。発光素子86aおよび受光素子86bは、例えば支持部材などに固定することができる。発光素子86aと受光素子86bとの間にワークWCが配置されるように、ロボット1の位置および姿勢を制御することができる。発光素子86aは、矢印96に示すように光を出射する。受光素子86bにて受光されない場合に、ハンド2がワークWCを把持していると判定することができる。
【0077】
図14に、第2の比較例のロボットシステムのハンドの部分の第2の側面図を示す。
図14に示されているように、ワークWCの向きが所望の向きと異なる向きにてハンド2に把持される場合には、発光素子86aから出射される光は受光素子86bに到達する場合がある。このために、ワークWCが把持されているにも関わらず、ワークWCが把持されていないと判定される場合がある。
【0078】
図15に、第2の比較例のロボットシステムのハンドの部分の第3の側面図を示す。
図15に示すように、ハンド2は、2個以上のワークWCを把持する場合がある。この場合に、発光素子86aから出射される光は、ワークWCにて遮ることができる。しかしながら、この制御では、複数のワークWCが把持された状態を検出することはできない。第1の比較例においても同様に、複数のワークWCが把持された状態を検出することができない。
【0079】
このように、光電センサを用いてワークが把持されている状態を判定する方法では、ハンドにてワークが把持されている状態を正確に判定できない場合がある。これに対して、本実施の形態におけるロボットシステム5では、ハンド2に把持されたワークWの状態を正確に判定することができる。ハンド2にて把持されるワークWの向きに関わらず、把持したワークWを検出することができる。または、2個以上のワークWを把持した状態を検出することができる。この結果、過剰なロボット1の動作を回避することができる。
【0080】
なお、第2の比較例においては、ワークが把持される複数の状態を考慮して、ハンドを複数の位置および姿勢に移動してワークの検出を行うことができる。しかしながら、この制御では、サイクルタイムが長くなる問題がある。本実施の形態におけるロボットシステム5は、第1の3次元情報と第2の3次元情報とを比較することにより、ワークが把持されている状態を検出することができるために、短時間にてワークが把持されている状態を検出することができる。
【0081】
更に、本実施の形態のロボットシステム5では、光電センサ等のワークの把持の状態を検出するための装置は不要である。ロボットシステム5は、ワークの位置および姿勢を検出するための3次元センサの出力を用いてワークが把持されている状態を検出することができる。このように、本実施の形態のロボットシステム5は、簡易な構成にて精度よくワークWが把持されている状態を確認することができる。
【0082】
図16に、本実施の形態のロボットシステムの制御方法のフローチャートを示す。
図16に示す制御は、繰り返して実施することができる。
【0083】
図2および
図16を参照して、ステップ100において、動作制御部43は、レンジセンサ6にてワークWを撮像する第1の撮像工程を実施する。生成部58は、レンジセンサ6の出力に基づいてワークWに測定点を設定し、測定点の座標値を含む第1の3次元情報を生成する第1の生成工程を実施する。生成部58は、ロボット1が目標のワークWを把持する動作を実施する前にワークWを撮像したレンジセンサ6の出力に基づいて第1の3次元情報を生成する。
【0084】
ステップ101において、検出部53は、ワークの第1の3次元情報を予め定められたワークWの3次元形状データ46と比較するモデルマッチングを行うことにより、ワークWの位置および姿勢を検出する第1の検出工程を実施する。
【0085】
ステップ102において、選定部59は、検出部53により検出されたワークWの位置および姿勢に基づいて、ロボット1が取り出す目標のワークを選定する選定工程を実施する。
【0086】
ステップ103において、動作制御部43は、ロボット1の位置および姿勢を変更する動作制御工程を実施する。ここでの動作制御工程では、ロボット1は、目標のワークWを把持して持ち上げる動作を実施する。その後に、ロボット1は停止する。
【0087】
ステップ104において、レンジセンサ6にてワークWを撮像する第2の撮像工程を実施する。生成部58は、ロボット1が目標のワークWを持ち上げる動作を実施した後にワークWを撮像したレンジセンサ6の出力に基づいて第2の3次元情報を生成する第2の生成工程を実施する。
【0088】
ステップ105において、削除部54は、第1の3次元情報に含まれる少なくとも一部の測定点の情報を削除する削除工程を実施する。削除部54は、第1の3次元情報の測定点の位置と第2の3次元情報の測定点の位置とを比較する工程を実施する。削除部54は、第1の3次元情報の測定点に対して予め定められた距離の範囲内に第2の3次元情報の測定点が存在するか否かを判定する。削除部54は、予め定められた距離の範囲内に第2の3次元情報の測定点が存在する第1の3次元情報の測定点を特定の測定点として検出する工程を実施する。削除部54は、第1の3次元情報から特定の測定点の座標値などの情報を削除した第3の3次元情報を生成する工程を実施する。
【0089】
ステップ106において、検出部53は、削除工程にて処理が行われた後の第3の3次元情報に含まれるワークの位置および姿勢を検出する第2の検出工程を実施する。検出部53は、ワークの第3の3次元情報を予め定められたワークの3次元形状データ46と比較するモデルマッチングを行う。検出部53は、第3の3次元情報に含まれる全てのワークWの位置および姿勢を検出する。
【0090】
ステップ108において、判定部55は、ロボットにてワークWを持ち上げる動作を実施した後の状態を判定する判定工程を実施する。判定工程では、第2の検出工程にて検出されたワークWが目標のワークWと同一であるか否かを判定する。ここでは、判定部55は、目標のワークWのみが取り出された否かを判定する。ステップ108において、取り出されたワークWが目標のワークWと同一でない場合には、制御はステップ121に移行する。例えば、ロボット1にて持ち上げられたワークWが目標のワークWと異なる場合、または、2個以上のワークWが持ち上げられている場合に、制御はステップ121に移行する。
【0091】
ステップ108において、目標のワークWのみが取り出されたと判定された場合に、制御はステップ109に移行する。ステップ109においては、動作制御工程を実施する。ここでの動作制御工程では、動作制御部43は、ハンド2にて把持したワークWを予め定められた搬送位置まで搬送するようにロボット1を制御する。
【0092】
次に、ステップ110において、判定部55は、予め定められた個数のワークが取り出されたか否かを判定する。すなわち、取り出されたワークWの個数が、個数の判定値に到達しているか否かを判定する。このときの個数の判定値は作業者が予め設定することができる。例えば、作業者は、判定値として5個等の少量の個数を設定することができる。または、作業者は、判定値としてコンテナ9に収容されている全てのワークWの個数を設定しても構わない。
【0093】
ステップ110において、予め定められた個数のワークWが取り出されている場合には、この制御を終了する。ステップ110において、予め定められた個数のワークWを取り出していない場合に、制御はステップ111に移行する。ステップ111において、生成部58は、現在の第2の3次元情報を第1の3次元情報に設定する。すなわち、ワークWを取り出した後の3次元情報を第1の3次元情報として設定する。この制御においては、ステップ108において目標のワークのみが検出されている。コンテナ9に残存するワークWに荷崩れが生じていないと判定することができる。このために、目標のワークWを取り出した後に生成した第2の3次元情報を、第1の3次元情報として使用することができる。
【0094】
次に、制御はステップ101に移行し、ワークWを取り出す制御を実施する。ステップ101では、検出部53は第1の3次元情報に基づいてワークWの位置および姿勢を検出する。ステップ102では、選定部59は、次の目標のワークWを選定する。この制御では、ステップ100が除外される。3次元カメラにてワークを撮像して、3次元情報を取得する工程を排除することができる。このために、サイクルタイムを短縮することができる。
【0095】
ステップ108において、ロボット1にて取り出されたワークWが目標のワークWと同一でない場合には、制御はステップ121に移行する。ステップ121において、判定部55は、1個のワークが検出されたか否かを判定する判定工程を実施する。判定部55は、ハンド2が目標のワークとは異なる1個のワークを把持しているか否かを判定する。また、判定部55は、第3の3次元情報に含まれるワークが2個か否かを判定する。すなわち、ハンド2が2個のワークを把持しているか否かを判定する。ステップ121において、1個または2個のワークが検出された場合に、制御はステップ124に移行する。
【0096】
なお、ステップ121においては、2個のワークが検出されたか否かを判定する代わりに、2個以上のワークが検出されたか否かを判定しても構わない。
【0097】
ステップ124においては、判定部55は、ハンド2にて把持したワークWをハンド2にて把持する前に配置されていた元の位置の近傍に戻す指令を動作制御部43に送出する。動作制御部43は、ワークWを元の位置の近傍に戻すようにロボット1を制御する。この後に、制御はステップ100に移行する。ロボット1がワークWを元の位置の近傍に戻した後に、撮像工程からワークを取り出す制御を実施する。ステップ100においては、レンジセンサ6にてワークWを撮像する撮像工程を実施する。ステップ102においては、ワークWの位置および姿勢を検出する検出工程を実施する。ステップ103においては、ロボット1が取り出す次の目標のワークWを選定する選定工程を実施する。そして、前述と同様の制御を実施する。
【0098】
ステップ121において、1個または2個のワークが検出されなかった場合に、制御はステップ122に移行する。ステップ122において、判定部55は、荷崩れが生じているか否かを判定する判定工程を実施する。ここでの判定工程では、第1の3次元情報の測定点のうち特定の測定点以外の測定点の個数が荷崩れに関する判定値よりも大きいか否かを判定する。特定の測定点以外の測定点の個数が荷崩れに関する判定値よりも大きい場合に、判定部55は、荷崩れが生じていると判定する。この場合に、制御は、ステップ124に移行する。
【0099】
ステップ122において、特定の測定点以外の測定点の個数が荷崩れに関する判定値以下の場合に、判定部55は、荷崩れが生じていないと判定することができる。この場合に、制御はステップ123に移行する。
【0100】
ステップ123においては、判定部55は、ハンド2がワークWの把持に失敗したか否かの判定を行う。判定部55は、第1の3次元情報の測定点のうち特定の測定点以外の測定点の個数が把持の失敗に関する判定値よりも小さいか否かを判定する判定工程を実施する。特定の測定点以外の測定点の個数が把持の失敗に関する判定値よりも小さい場合に、判定部55は、ハンド2がワークWの把持に失敗していると判定する。この場合に、制御はステップ100に戻る。ワークWを撮像する撮像工程からワークWを取り出す制御を実施する。ステップ123において、ハンド2がワークWの把持に成功していると判定された場合には、制御は、ステップ124に移行する。
【0101】
図16に示す制御では、ステップ110に示すように、予め定められた個数のワークを取り出すまで、ワークを取り出す制御を実施しているが、この形態に限られない。コンテナ9に配置されている全てのワークWを取り出した時に制御を終了しても構わない。例えば、ステップ101において、容器の内部に配置されているワークが検出されない場合には、制御を終了しても構わない。
【0102】
本実施の形態の3次元センサは、2台の2次元カメラを含むが、この形態に限られない。3次元センサは、3台以上の2次元カメラを含んでいても構わない。3次元センサが3台以上のカメラを含むことにより、一部の画像がハレーション等により不鮮明であっても、他のカメラにて撮像した画像に基づいて3次元情報を生成することができる。また、本実施の形態の3次元センサはプロジェクタを備えるが、プロジェクタを備えなくても構わない。更に、3次元センサは、ワークまでの距離の情報を取得できる任意のセンサを採用することができる。例えば、3次元センサは、光飛行時間方式により距離画像を撮像するTOF(Time of Flight)カメラであっても構わない。
【0103】
本実施の形態のレンジセンサ6は、支持部材83に固定されているが、この形態に限られず、ワークを撮像可能なように配置することができる。例えば、レンジセンサは、ロボットのリストと一体的に移動するように、リストに固定されていても構わない。
【0104】
本実施の形態のハンド2は、磁石ハンドであるが、この形態に限られない。ハンドは、ワークを把持したり解放したりする任意の作業ツールを採用することができる。例えば、複数の爪部を有し、爪部がワークを挟むことによりワークを把持するハンド、または吸着パッドの内部の空気を吸引ことにより、吸着パッドにてワークを把持するハンド等を採用することができる。
【0105】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
【0106】
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。