本発明の一実施形態に係る搬入出装置1について説明する。まず、搬入出装置1の概略について簡単に説明しておく。搬入出装置1は、図1に示すように、フレーム10、パレット20、ロボットアーム30、カメラ40、コンベア50、及び制御装置60を含む。図2に示すように、搬入出装置1は、パレット20内のワークピースWを取り出してコンベア50に載置する作業(ワークピースの搬入出作業)を繰り返す。なお、図2においては、ロボットアーム30の一部(ベース31)のみを図示している。
つぎに、搬入出装置1の構成について具体的に説明する。フレーム10は、メインステージ11、パレットステージ12、キャリブレーションステージ13を有する(図1参照)。メインステージ11は、平面視において長方形を呈する天板111と、天板111を支持する脚112からなる。天板111の上面にパレットステージ12、キャリブレーションステージ13及びロボットアーム30が取り付けられている。
パレットステージ12は、平面視において長方形を呈する天板121と、天板121を支持する脚122からなる。天板121の上面は平面状である。ただし、天板121の上面であって、天板121の向かいあう1組の角部に、上方へ突出したパレットガイド123,123が設けられている(図2参照)。パレットガイド123は、天板121の長辺に沿って延びる凸部123aと天板121の短辺に沿って延びる凸部123bとからなる。凸部123a及び凸部123bの延設方向に垂直な断面は長方形を呈する。後述するように、天板121の上面にパレット20が載置されるが、パレットガイド123,123は、パレット20の位置決め部材として機能する。
キャリブレーションステージ13は、平面視において矩形を呈する天板131と、天板131を支持する脚132からなる(図1参照)。天板131の上面は平面状である。キャリブレーションステージ13の天板131は、パレットステージ12の天板121よりも小さい。キャリブレーションステージ13は、詳しくは後述するように、ロボットアーム30の座標系とカメラ40の座標系との関係を表すキャリブレーションデータを設定する際に利用される。また、天板131の上面には、基準マークTが印刷されている(図2及び15参照)。基準マークTは、天板131の角部(図2において左上の角部)に設けられている。基準マークTは、座標軸X及び座標軸Yにそれぞれ平行に延びる線分TX及び線分TYからなり、線分TXの一端(図15において線分TXの左端)が線分TYの中央に交わっている。線分TXと線分TYの交点が本発明の基準位置に相当し、線分TX(又は線分TY)の方向が本発明の基準方向に相当する。基準マークTは、詳しくは後述するように、搬入出作業の失敗の要因の所在を特定する際に利用される。
パレット20は、浅い箱状に形成されている。すなわち、パレット20は、内部に空間を有する直方体であって、その上面は開放されている。パレット20がパレットステージ12に載置された状態において、パレット20の対向する一組の角部の外周面がパレットガイド123,123に当接する。つまり、パレット20の短辺に平行な方向の移動が凸部123a,123aによって規制されるとともに、パレット20の長辺に平行な方向の移動が凸部123b,123bによって規制される。これにより、天板121の上面におけるパレット20の位置及び姿勢が決定される。パレット20の内部は、複数の仕切り板(仕切り壁)によって複数の区画Dに分割されている。具体的には、パレット20の短辺方向に沿って6つの区画Dが形成され、パレット20の長辺方向に沿って8つの区画Dが形成されている(図2参照)。つまり、パレット20は、48個の区画Dを有する。なお、上記のキャリブレーションステージ13の天板131の面積及び形状は、パレット20の1つの区画Dの面積及び形状と略同一である。また、この搬入出装置1による作業工程とは別の工程において、パレット20の各区画Dに1つのワークピースWが予め格納されている。
ここでワークピースWについて説明しておく。ワークピースWは、図3に示すように、細長い板状の部材である。ワークピースWの先端側から末端側へ向かうに従って、ワークピースWの幅方向(ワークピースWの長手方向及び板厚方向に垂直な方向)の寸法が徐々に大きくなっている。ワークピースWの平面視において、ワークピースWの先端及び末端は、円弧状を呈する。また、ワークピースWの末端側の部分には、ワークピースWの板厚方向に貫通する貫通孔Hが形成されている。
なお、ワークピースWがパレット20に格納された状態において、各ワークピースWの板厚方向が鉛直方向に一致しているが、各区画におけるワークピースWの位置及び姿勢は統一されていない(図2参照)。全ての区画にワークピースWが格納されたパレット20が、パレットステージ12の天板121の上面に載置される。ロボットアーム30によってパレット20内の全てのワークピースWが取り出されて空になったパレット20は、パレットステージ12から取り除かれ、次のパレット20がパレットステージ12に載置される。なお、このパレット20の交換作業は、搬入出装置1とは別の装置により実行される。
ロボットアーム30は、周知の垂直多関節型ロボットである。すなわち、ロボットアーム30は、各関節に対応したサーボモータを備えている。関節を介して接続された部位同士の角度をサーボモータによって変更することができる。これにより、ロボットアーム30の姿勢を任意に設定可能である。以下、ロボットアーム30の具体的構成について説明する。ロボットアーム30は、ベース31、旋回ボディ32、第1アーム33、第2アーム34、第3アーム35及びロボットハンド36を有する(図1参照)。
ベース31は、円柱状に形成されていて、メインステージ11の天板111の上面に固定されている。ベース31の中心軸の方向が鉛直方向に一致している。ベース31の上面の中心が、ロボットアーム30の座標系の原点Orである(図1及び図2参照)。ロボットアーム30の座標軸X、座標軸Y及び座標軸Zは、原点Orにて互いに直交する。座標軸Zは、鉛直方向に一致している。パレット20の短辺方向及び長辺方向は、座標軸X及び座標軸Yにそれぞれ一致している。以下の説明において、ロボットアーム30の座標系をロボットアーム座標系と呼ぶ。また、ロボットアーム座標系における「A」の座標を「A(xA,yA,zA)」のように標記する。
旋回ボディ32は、円柱状に形成されていて、ベース31の上面に取り付けられている。旋回ボディ32は、座標軸Zのまわりに回動可能である。
第1アーム33は、長尺状に形成され、その長手方向における末端部が旋回ボディ32の上部に取り付けられている。第1アーム33は、旋回ボディ32の径方向に平行な方向に延びる軸のまわりに回動可能である。
第2アーム34は、長尺状に形成され、その長手方向における末端部が第1アーム33の長手方向における先端部に取り付けられている。第2アーム34は、旋回ボディ32の径方向に平行な方向に延びる軸のまわりに回動可能である。
第3アーム35は、長尺状に形成され、その長手方向における末端部が第2アーム34の長手方向における先端部に取り付けられている。第3アーム35の末端面が第2アーム34の先端面に対向している。第3アーム35は、第2アーム34の長手方向(第2アーム34の中心軸方向)に延びる軸のまわりに回動可能である。
ロボットハンド36は、長尺状に形成され、その長手方向における末端部が第3アーム34の長手方向における先端部に取り付けられている。ロボットハンド36は、第3アーム34の長手方向に垂直な方向に延びる軸のまわりに回動可能である。
ロボットハンド36の先端部には、各種工具、装置などが着脱可能である。本実施形態では、ワークピースWを保持する保持装置37が取り付けられている。保持装置37は、円柱状に形成された基部371と、基部371の先端面に設けられた3つの指部372からなる。ロボットハンド36には、基部371をロボットハンド36の中心軸のまわりに回転させる回動装置が設けられている。3つの指部372は、基部371の周方向に互いに120°の間隔をおいて、基部371の先端面に取り付けられている。指部372は、基部371の径方向に移動可能である。
ロボットアーム30は、次のようにしてワークピースWを保持する。まず、3つの指部372を基部371の径方向における中心側へ移動させて、3つの指部372が互いに近接した状態に設定する。つぎに、ワークピースWの貫通孔Hに3つの指部372の先端部を挿入する。つぎに、3つの指部372を基部371の径方向における中心側とは反対側へ移動させて、3つの指部372を貫通孔Hの内周面に押し当てる(図4参照)。これにより、ワークピースWがロボットアーム30に保持される。
カメラ40は、CCD(Charge−Coupled Device)によって構成されたデジタルカメラである。ロボットハンド36には、カメラ40をロボットハンド36の中心軸のまわりに回転させる回動装置が設けられていて、この回動装置にカメラ40が取り付けられている。カメラ40の光軸は、ロボットハンド36の長手方向に平行である。カメラ40のレンズがロボットアーム30の先端側へ向けられている。また、カメラ40は、撮影対象物を照らす照明装置を備える。なお、基部371の回動装置とカメラ40の回動装置が別々に設けられている。つまり、図5に示すように、基部371とカメラ40とを独立して回動させることができる。
以下の説明において、カメラ40にて撮影した画像の左下をカメラ40の座標系の原点Ocとする(図10、図13、図15及び図16参照)。カメラ40の座標軸U及び座標軸Vは、原点Ocにて互いに直交する。座標軸Uは、画像の横方向に一致している。また、座標軸Vは、画像の縦方向に一致している。以下の説明において、カメラ40の座標系をカメラ座標系と呼ぶ。また、カメラ座標系における「A」の座標を「A(uA,vA)」のように標記する。
コンベア50は、ロボットアーム30によってパレット20から取り出されたワークピースWを載置するトレイ51と、図示しないモータによって駆動されてトレイ51を次の工程へ搬送するベルト52とを備える(図1参照)。トレイ51の搬送方向は、座標軸Xに平行である。トレイ51は平板状に形成されている。図6に示すように、トレイ51には、ワークピースWの位置及び姿勢を規定するワークピースガイド511が設けられている。つまり、図6において座標軸Xに平行な方向に対して反時計まわりに角度θ0だけ回転した方向へワークピースWの先端が向けられた状態で、ワークピースWがトレイ51に載置される。
制御装置60は、演算装置、記憶装置、入力装置、表示装置などを備えたコンピュータ装置である。制御装置60は、所定のコンピュータプログラムに従って、ロボットアーム30、カメラ40及びコンベア50を制御する。つまり、制御装置60は、所定のコンピュータプログラムに従って、ロボットアーム30の姿勢を所定の姿勢に設定して、ロボットアーム30の先端(3つの指部372を閉じた状態における指部372の先端)の位置を所定の位置に設定する。また、制御装置60は、所定のコンピュータプログラムに従って、ロボットハンド36の中心軸まわりのカメラ40の回動位置を制御するとともに、カメラ40に対象物を撮影させ、その画像データを取得して、前記取得した画像データを解析する。また、制御装置60は、所定のコンピュータプログラムに従って、ベルト52を駆動するモータを回転させてトレイ51を搬送する。
つぎに、搬入出装置1の動作について説明する。搬入出装置1が設置されたとき、ロボットアーム座標系とカメラ座標系とを対応付ける必要がある。つまり、両座標系の関係を表すキャリブレーションデータ(後述するキャリブレーション係数αx及びキャリブレーション係数αy、並びに角度θR−C)を設定する必要がある。以下、キャリブレーションデータを設定するキャリブレーション処理について説明する。
ユーザが入力装置を用いてキャリブレーション処理の開始を指示すると、制御装置60は、図7に示すステップS100にて、キャリブレーション処理を開始する。つぎに、制御装置60は、ステップS101にて、初期化処理を実行する。具体的には、制御装置60は、ロボットアーム30の姿勢を所定の初期状態に設定するとともに、ロボットハンド36の中心軸まわりのカメラ40の回動位置を所定の初期位置に設定する。
つぎに、制御装置60は、ステップS102にて、ロボットアーム30に、キャリブレーション用のワークピースであるマスターワークMWを保持させ、キャリブレーションステージ13の天板131における第1ポイントP1に載置させる(図8参照)。なお、マスターワークMWは、円環状に形成されている。初期状態において、マスターワークMWは、所定の位置(例えば、天板131の中央)に載置されている(図2参照)。また、ロボットアーム座標系における第1ポイントP1の座標P1(xP1,yP1,zP1)は予め設定されている。つぎに、制御装置60は、ステップS103にて、ロボットアーム30を所定の姿勢に設定し、カメラ40にキャリブレーションステージ13を撮影させる。具体的には、図9に示すように、キャリブレーションステージ13の天板131の中心の直上にロボットアーム30の先端を位置させる。この際、制御装置60は、カメラ40が下方を向くように、ロボットアーム30の姿勢を設定する。また、ロボットアーム30の先端と天板131との距離Δzは、天板131の全体がカメラ40の画角内に収まり、且つピントが合うような値に予め設定されている。制御装置60は、撮影された画像を表す画像データをカメラ40から取得する。
つぎに、制御装置60は、ステップS104にて、カメラ座標系における第1ポイントP1の座標を検出する。すなわち、制御装置60は、前記取得した画像データ及び周知の画像認識技術を用いて、カメラ座標系におけるマスターワークMWの中心座標を検出し、座標P1(uP1,vP1)として記憶する(図10参照)。なお、上記のように、ロボットハンド36の中心軸まわりのカメラ40の回動位置が所定の初期位置に設定されているが、この状態では、ロボットアーム座標系の座標軸X(座標軸Y)の方向と、カメラ座標系の座標軸U(座標軸V)の方向とがずれている可能性が高い。図10に示す例においては、ロボットアーム座標系の座標軸X(座標軸Y)の方向に対し、カメラ座標系の座標軸U(座標軸V)の方向が時計回りに角度θR−Cだけずれている。
つぎに、制御装置60は、ステップS105にて、ロボットアーム30に、マスターワークMWを保持させ、第1ポイントP1から座標軸Xに平行な方向に「Δx」だけずれた第2ポイントP2に移動させる(図8参照)。つまり、制御装置60は、マスターワークMWを座標P2(xP2,yP2,zP2)に載置させる。つぎに、制御装置60は、ステップS106にて、ロボットアーム30を所定の姿勢に設定し、カメラ40にキャリブレーションステージ13を撮影させて、その画像データを取得する。ステップS106におけるロボットアーム30の姿勢及びカメラ40の回動位置は、ステップS103におけるロボットアーム30の姿勢及びカメラ40の回動位置と同一である。つぎに、制御装置60は、ステップS107にて、カメラ座標系における第2ポイントP2の座標を検出する。すなわち、制御装置60は、前記取得した画像データ及び周知の画像認識技術を用いて、カメラ座標系におけるマスターワークMWの中心座標を検出して、座標P2(uP2,vP2)として記憶する(図10参照)。
つぎに、制御装置60は、ステップS108にて、ロボットアーム30に、マスターワークMWを保持させ、第1ポイントP1から座標軸Yに平行な方向にΔyだけずれた第3ポイントP3に移動させる(図8参照)。つまり、制御装置60は、マスターワークMWを座標P3(xP3,yP3,zP3)に載置させる。つぎに、制御装置60は、ステップS109にて、ロボットアーム30を所定の姿勢に設定し、カメラ40にキャリブレーションステージ13を撮影させて、その画像データを取得する。ステップS109におけるロボットアーム30の姿勢及びカメラ40の回動位置は、ステップS103におけるロボットアーム30の姿勢及びカメラ40の回動位置と同一である。つぎに、制御装置60は、ステップS110にて、カメラ座標系における第3ポイントP3の座標を検出する。すなわち、制御装置60は、前記取得した画像データ及び周知の画像認識技術を用いて、カメラ座標系におけるマスターワークMWの中心座標を検出して、座標P3(uP3,vP3)として記憶する(図10参照)。
ここで、座標P1(u
P1,v
P1)と座標P2(u
P2,v
P2)を結ぶ直線は、ロボットアーム座標系においては座標軸Xに平行である。また、座標P1(u
P1,v
P1)と座標P3(u
P3,v
P3)を結ぶ直線は、ロボットアーム座標系においては座標軸Yに平行である。座標P1(u
P1,v
P1)と座標P2(u
P2,v
P2)との距離Δd
1−2がロボットアーム座標系における距離Δxに対応している。また、座標P1(u
P1,v
P1)と座標P3(u
P3,v
P3)との距離Δd
1−3がロボットアーム座標系における距離Δyに対応している。制御装置60は、ステップS111にて、前記検出した座標P1(u
P1,v
P1)、座標P2(u
P2,v
P2)、及び座標P3(u
P3,v
P3)に基づいて、キャリブレーション係数α
x及びキャリブレーション係数α
yを計算する。キャリブレーション係数α
xは、距離Δd
1−2と距離Δxの比に相当し、キャリブレーション係数α
yは、距離Δd
1−3と距離Δyの比に相当する。具体的には、キャリブレーション係数α
x及びキャリブレーション係数α
yは、下記の式(1)及び式(2)に基づいてそれぞれ計算される。
つぎに、制御装置60は、ステップS112にて、前記検出した座標P1(u
P1,v
P1)、座標P2(u
P2,v
P2)、及び座標P3(u
P3,v
P3)に基づいて、ロボットアーム座標系に対するカメラ座標系の角度θ
R−Cを計算する。具体的には、角度θ
R−Cは、下記の式(3)又は式(4)に基づいて計算される。
つぎに、制御装置60は、ステップS113にて、カメラ40を、ロボットハンド36の中心軸まわりに角度θR―Cだけ回動させて、ロボットアーム30の座標軸X(座標軸Y)の方向とカメラ40の座標軸U(座標軸V)の方向を一致させる。つぎに、制御装置60は、ステップS114にて、キャリブレーション処理を終了する。
つぎに、パレット20内のワークピースWを取り出してコンベア50に載置するパレタイジング処理について説明する。この処理においては、制御装置60は、カメラ40が常に下方へ向けられた状態になるようにロボットアーム30の姿勢を制御する。さらに、制御装置60は、図11に示すように、座標軸X(座標軸Y)と座標軸U(座標軸V)が常に平行である(ロボットアーム座標系に対するカメラ座標系の角度θR―Cが常に0°である)ように、カメラ40の回動装置を制御する。つまり、制御装置60は、ロボットアーム30(旋回ボディ32)を座標軸Zのまわりに角度θだけ回動させたとき、カメラ40をロボットアーム30の回動方向とは逆方向へ角度θだけ回動させる。
ユーザが入力装置を用いてパレタイジング処理の開始を指示すると、制御装置60は、図12に示すステップS200にてパレタイジング処理を開始する。つぎに、制御装置60は、ステップS201にて、初期化処理を実行する。この初期化処理において、ユーザは、入力装置を用いて、パレット20の区画に関する情報を入力する。具体的には、ユーザは、パレット20の長辺方向の分割数及び短辺方向の分割数を入力する。なお、パレット20の寸法及びロボットアーム座標系におけるパレット20の座標(例えば、パレット20の中心の座標、パレット20の角部の座標など)は予め設定されている。制御装置60は、前記入力された分割数、並びに予め設定されているパレット20の寸法及び座標に基づいて、ロボットアーム座標系における各区画Dの中心の座標D(xD,yD,zD)を計算する。
つぎに、制御装置60は、ステップS202にて、処理対象として設定する1つの区画Dを選択する。このとき、未だワークピースWが取り出されていない区画のうちの1つの区画Dを選択する。つぎに、制御装置60は、ステップS203にて、ロボットハンド36を、前記選択した区画Dの中心の直上に移動させる。なお、この際のロボットアーム30の先端と前記選択した区画Dとの距離は、キャリブレーション処理のステップS103におけるロボットアーム30の先端と天板131との距離Δzと同一である。上記のように、天板131の面積及び形状は、1つの区画Dの面積及び形状と略同等であるので、ロボットアーム30がこの姿勢に設定されれば、前記選択した区画Dの全体がカメラ40の画角内に収まり、且つピントが合う。
つぎに、制御装置60は、ステップS204にて、カメラ40に、前記選択した区画Dの全体を撮影させ、その画像データを取得する。つぎに、制御装置60は、ステップS205にて、前記取得した画像データ及び周知の画像認識技術を用いて、カメラ座標系におけるワークピースWの座標W(uw,vw)を検出して記憶する(図13参照)。なお、ワークピースWの座標とは、ワークピースWの貫通孔Hの中心の座標を意味する。座標W(uw,vw)は、本発明のカメラ座標系ワークデータに相当する。
つぎに、制御装置60は、ステップS206にて、前記取得した画像データ及び周知の画像認識技術を用いて、カメラ座標系における前記選択した区画Dの中心の座標D(u
D,v
D)を検出して記憶する(図13参照)。つぎに、制御装置60は、ステップS207にて、座標W(u
W,v
W)及び座標D(u
D,v
D)、並びにキャリブレーション係数α
x及びキャリブレーション係数α
yを用いて、ロボットアーム座標系におけるワークピースWの座標W(x
W,y
W,z
W)を、下記の式(5)に従って計算する。なお、「z
W」は、座標D(x
D,y
D,z
D)の座標軸Zの方向の成分である「z
D」と同一である。座標W(x
W,y
W,z
W)は本発明のロボットアーム座標系ワークデータに相当する。
つぎに、制御装置60は、ステップS208にて、前記取得した画像データ及び周知の画像認識技術を用いて、ワークピースWの向きを検出する。すなわち、制御装置60は、カメラ座標系におけるワークピースWの長手方向と座標軸Uとの間の角度θWを検出する。
つぎに、制御装置60は、ステップS209にて、ロボットアーム30の先端を座標W(xW,yW,zW)に移動させる。そして、ロボットアーム30に、ワークピースWを持ち上げさせ、ロボットアーム30の先端をトレイ51の上方に移動させる。なお、ロボットアーム座標系におけるトレイ51の座標は予め設定されている。つぎに、制御装置60は、ステップS210にて、トレイ51にワークピースWを載置する際のワークピースWの角度θ0(図6参照)と前記検出した角度θW(図13参照)との差分だけ、保持装置37の基部371を回転させる。つぎに、制御装置60は、ステップS211にて、ロボットアーム30の先端を降下させ、ワークピースWをトレイ51に載置させる。つぎに、制御装置60は、ステップS212にて、トレイ51を次の工程へ搬送させ、空のトレイ51を予め設定された座標に搬入させる。
つぎに、制御装置60は、ステップS213にて、全てのワークピースWがパレット20から取り出されたか否かを判定する。すなわち、ワークピースWがパレット内に残っている場合(ステップS202乃至ステップS212からなる一連の処理が実行された回数が区画数より小さいとき)、制御装置60は、「No」と判定して、ステップS202に処理を進める。この場合において、前回選択した区画Dと、今回以降に選択する区画Dとの相対的な位置関係は、パレット20の長辺方向の分割数及び短辺方向の分割数、パレット20の寸法により、予め定められている。従って、前回選択した区画Dと今回選択する区画Dとの間における相対的な位置関係に基づいて、ロボットハンド36を、今回選択した区画Dの中心の直上に移動させることができる。一方、全てのワークピースWがパレット20から取り出された場合(つまり、ステップS202乃至ステップS212からなる一連の処理が区画数と同じ回数だけ繰り返されたとき)、制御装置60は、「Yes」と判定して、ステップS214にて、パレタイジング処理を終了する。
つぎに、ワークピースWを安定して保持できないとき、ワークピースWをトレイ50に適切に載置できないときなど、搬入出作業が失敗したとき、その失敗の要因の所在を特定する失敗要因特定処理について説明する。この失敗要因特定処理においては、キャリブレーション処理において用いたマスターワークMWとは異なるマスターワークMWSを用いる。マスターワークMWSは、マスターワークMWと同様の円環状に形成されているが、その向きを表すための指標線Lが設けられている(図16参照)。なお、失敗要因特定処理の開始前において、マスターワークMWSは、キャリブレーションステージ13の所定の初期位置(例えば角部)に載置されている。マスターワークMWSの初期位置の座標は、制御増置60内の記憶装置に予め記憶されている。
ユーザが入力装置を用いて失敗要因特定処理の開始を指示すると、制御装置60は、図14に示すステップS300にて失敗要因特定処理を開始する。つぎに、制御装置60は、ステップS301にて、初期化処理を実行する。具体的には、制御装置60は、前記失敗の要因がカメラ40にあるか否かを表すフラグFCを、前記失敗の要因がカメラ40にはないことを表す「0」に設定する。また、制御装置60は、前記失敗の要因がロボットアーム30にあるか否かを表すフラグFRを、前記失敗の要因がロボットアーム30にはないことを表す「0」に設定する。
つぎに、制御装置60は、ステップS302にて、ロボットアーム30に、マスターワークMWSを移動させる。具体的には、制御装置60は、マスターワークMWSが天板131の中央にて座標軸Xのプラス側(図2において右側)へ向くようにマスターワークMWSを載置することを表す制御データ(ロボットアーム座標系における天板131の中央の座標、保持装置37の基部371の回動角度など)をロボットアーム30に供給する。なお、マスターワークMWSを保持する際、マスターワークMWSの初期座標を制御装置60からロボットアーム30に供給すればよい。ただし、ユーザがロボットアーム30を手動操作して、ロボットアーム30にマスターワークMWSを保持させてもよい。
つぎに、制御装置60は、ステップS303にて、カメラ40(ロボットアーム30の先端)をキャリブレーションステージ13の上方へ移動させる。具体的には、制御装置60は、カメラ40がキャリブレーションステージ13の上方に位置し、ロボットアーム30の座標軸X(座標軸Y)の方向とカメラ40の座標軸U(座標軸V)の方向が一致するようにロボットアーム30及びカメラ40の回動装置を駆動させることを表す制御データをロボットアーム30及びカメラ40の回動装置に供給する。つまり、この制御データが表すロボットアーム30の姿勢及びカメラ40の回動角度は、上記のステップS113を実行した直後の状態と同一である。
つぎに、制御装置60は、ステップS304にて、カメラ40にキャリブレーションステージ13(基準マークT及びマスターワークMWS)を撮影させて、その画像を表す画像データを取得する。
上記のように、ステップS303にて、カメラ40をキャリブレーションステージ13の上方へ移動させることを表す制御データがロボットアーム30及びカメラ40の回動装置に供給されている。しかし、ロボットアーム30及びカメラ40の回動装置のいずれか一方又は両方に何等かの不具合が生じ、ロボットアーム30の先端の位置及びカメラ40の回動角度のいずれか一方又は両方が制御データ通りに設定されなかった場合、ステップS303にて撮影された画像における基準マークTの位置及び向きのいずれか一方又は両方がずれる(図15参照)。すなわち、前記画像における基準マークTの位置及び向きのいずれか一方又は両方が、基準マークTの正規の位置及び正規の向きとは異なる。基準マークTの正規の位置及び正規の向きは、ロボットアーム座標系におけるロボットアーム30の先端の位置及びカメラ40の回動角度が正常である場合に撮影された画像における基準マークTの位置及び向きを意味する。図15に示す例では、ロボットアーム座標系におけるロボットアーム30の先端の位置及びカメラ40の回動角度が正常である場合の基準マークTを破線で示している。また、同図において、ロボットアーム座標系におけるロボットアーム30の先端の位置及びカメラ40の回動角度のいずれか一方又は両方がずれている場合の基準マークTを実線で示している。なお、図15においては、マスターワークMWSの図示を省略している。
ここで、前記画像を解析しただけで、基準マークTのずれがロボットアーム30及びカメラ40のうちのいずれに起因するのかを厳密に判定することは困難である。そこで、本実施形態では、処理を簡単にするために、基準マークTのずれは、ロボットアーム30には起因せず、カメラ40に起因するものとみなす。
また、上記のように、ステップS302にて、マスターワークMWSを天板131の中央に載置させることを表す制御データがロボットアーム30に供給されている。しかし、ロボットアーム30に何等かの不具合が生じ、ロボットアーム30の先端の位置及びロボットハンド36の回動角度のいずれか一方又は両方が制御データ通りに設定されなかった場合、ステップS303にて撮影された画像におけるマスターワークMWSの位置及び向きのいずれか一方又は両方がずれる(図16参照)。すなわち、前記画像におけるマスターワークMWSの位置及び向きのいずれか一方又は両方が、マスターワークMWSの正規の位置及び正規の向きとは異なる。マスターワークMWSの正規の位置とは、天板131の中央を意味し、正規の向きとは、座標軸Xのプラス側を意味する。前記画像におけるマスターワークMWSの正規の位置及び正規の向きは、前記画像における基準マークTの位置及び向きに基づいて計算可能である。図16に示す例では、ロボットアーム30が正常である場合にキャリブレーションステージ13に載置されたマスターワークMWSを破線で示している。また、同図において、ロボットアーム30に不具合が生じているときにキャリブレーションステージ13に載置されたマスターワークMWSを実線で示している。
制御装置60は、上記のような基準マークTの位置及び向きのずれ、並びにマスターワークMWSの位置及び向きのずれに基づいて、搬入出作業の失敗の要因の所在を特定する。まず、制御装置60は、ステップS305にて、基準マークTのずれを計算する。具体的には、制御装置60は、周知の画像認識技術を用いて、前記画像における基準マークTの正規の位置からのずれを表すベクトルVTを計算する(図15参照)。また、制御装置60は、周知の画像処理技術に基づいて、前記画像における基準マークTの正規の向きからのずれを表す角度θTを計算する。なお、基準マークTの正規の位置及び向きを表すデータは制御装置60内の記憶装置に予め記憶されている。
つぎに、制御装置60は、ステップS306にて、マスターワークMWSのずれを計算する。具体的には、制御装置60は、周知の画像認識技術を用いて、前記画像における基準マークTの位置及び向きを検出するとともに、前記画像におけるマスターワークMWSの位置及び向きを検出する。さらに、制御装置60は、前記検出した基準マークTの位置及び向きに基づいて、前記画像におけるマスターワークMWSの正規の位置を計算する(図16参照)。具体的には、制御装置60は、前記画像における基準マークTの線分TXと線分TYとの交点を基準位置とし、この基準位置から線分TXに平行な方向及び線分TYに平行な方向へそれぞれ所定の距離(ピクセル数)だけ離れた位置を計算する。このようにして計算された位置が、マスターワークMWSの正規の位置である。なお、前記所定の距離(ピクセル数)は、制御増値60内の記憶装置に予め記憶されている。ただし、前記画像における線分TX及び線分TYの長さに基づいて、前記所定の距離(ピクセル数)を決定してもよい。また、マスターワークMWSの正規の向きは、基準マークTの線分TXの向きに平行な向きである。したがって、制御装置60は、マスターワークMWSの正規の向きを角度θTに設定する。そして、制御装置60は、前記画像におけるマスターワークMWSの正規の位置からのずれを表すベクトルVMWSを計算する。また、制御装置60は、前記画像におけるマスターワークMWSの正規の向きからのずれを表す角度θMWSを計算する。
つぎに、制御装置60は、ステップS307にて、前記計算したベクトルVT及び角度θTに基づいて、前記失敗の要因がカメラ40にあるか否かを判定する。具体的には、制御装置60は、ベクトルVTの長さが所定の閾値ΔVT以下であって,且つ角度θTが所定の閾値ΔθT以下であるとき、「失敗の要因はカメラにはない」と判定し、ステップS309に処理を進める。一方、ベクトルVTの長さが所定の閾値ΔVTを超えるとき,及び/又は角度θTが所定の閾値ΔθTを超えるとき、「失敗の要因はカメラにある」と判定し、ステップS308にて、フラグFCを、前記失敗の要因がカメラ40にあることを表す「1」に設定し、ステップS309に処理を進める。
つぎに、制御装置60は、ステップS309にて、前記計算したベクトルVMWS及び角度θMWSに基づいて、前記失敗の要因がロボットアーム30にあるか否かを判定する。具体的には、制御装置60は、ベクトルVMWSの長さが所定の閾値ΔVMWS以下であって,且つ角度θMWSが所定の閾値ΔθMWS以下であるとき、「失敗の要因はロボットアームにはない」と判定し、ステップS311に処理を進める。一方、ベクトルVMWSの長さが所定の閾値ΔVMWSを超えるとき,及び/又は角度θMWSが所定の閾値ΔθMWSを超えるとき、「失敗の要因はロボットアームにある」と判定し、ステップS310にて、フラグFRを、前記失敗の要因がロボットアーム30にあることを表す「1」に設定し、ステップS311に処理を進める。
つぎに、制御装置60は、ステップS311にて、フラグFC及びフラグFRの値に従って、前記失敗の要因を表す文字列、図形などを表示する。例えば、フラグFCが「1」であるとき、制御装置60は、「カメラ」と表示する。また、フラグFRが「1」であるとき、制御装置60は、「ロボットアーム」と表示する。また、フラグFCが「0」であり、且つフラグFRが「0」であるとき、制御装置60は、「正常」と表示する。そして、制御装置60は、ステップS312にて、失敗要因特定処理を終了する。
搬入出装置1によれば、搬入出作業が失敗したとき、失敗要因特定処理を実行することにより、前記失敗の要因の所在を簡単に特定することができる。また、搬入出作業が失敗したにもかかわらず、失敗要因特定処理の結果が「正常」である場合には、ワークピースWに何らかの問題が生じていると考えられるので、ユーザはワークピースWの形状、寸法などを確認すればよい。
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
上記実施形態において、ベクトルVMWSの長さが閾値ΔVMWSを超えるということは、ロボットアーム30の先端が正しい位置に設定されていないことを意味する。上記のように、この状態において、前記撮影した画像を解析しただけで、基準マークTのずれがカメラ40に起因するか否かを判定することは困難である。上記実施形態では、処理を簡単にするために、基準マークTのずれはカメラ40に起因するとみなし、制御装置60は、「失敗の要因はカメラにある」と判定している。しかし、これに代えて、ベクトルVMWSが閾値ΔVMWSを超えている場合、制御装置60は、「失敗の要因がカメラにあるか否かは判定不能」と結論付けてもよい。
これに対し、ベクトルVMWSの長さが閾値ΔVMWS以下であるということは、ロボットアーム30の先端が正しい位置に設定されていることを意味する。この状態において、基準マークTのずれは、カメラ40のみに起因する。そこで、ベクトルVMWSが閾値ΔVMWS以下であり、ベクトルVTが閾値ΔVT以下であって、且つ角度θTが閾値ΔθT以下であるとき、制御装置60は、「失敗の要因はカメラにない」と判定するとよい。一方、ベクトルVMWSが閾値ΔVMWS以下であり、ベクトルVT及び角度θTのうちの少なくとも一方がその閾値を超えるとき、制御装置60は、「失敗の要因はカメラにある」と判定するとよい。これによれば、上記実施形態よりも若干処理が煩雑になるが、前記失敗の要因の所在を上記実施形態よりも正確に特定できる。なお、ロボットアーム30の先端が正しい位置に設定されていたとしても、ロボットハンド36の回動角度がずれている可能性はある。したがって、失敗の要因がロボットアーム30にあるか否かは、上記実施形態と同様に、ベクトルVMWS及び角度θMWSのずれに基づいて判定すればよい。
また、上記実施形態では、ロボットアーム30にカメラ40が取り付けられているが、本発明に係る失敗要因特定方法は、上記従来の搬入出装置のように、カメラ40がフレーム10に固定されている搬入出装置にも適用可能である。この場合には、上記実施形態とは異なり、基準マークTのずれはカメラのみに起因する。したがって、前記失敗の要因の所在をより正確に特定できる。