以下、図面を参照しつつ本発明の自動運転装置について詳細に説明する。なお、以下に説明する実施形態では、本発明に係る自動運転装置は、部品同士を組み付けて完成品を製造する自動組み立て装置である。また本発明に係る自動運転装置は、撮像部で可動部を撮影し、その撮影した画像データに基づいて、制御部が可動部の位置情報を取得し、その位置情報に基づいて可動部が所定の位置にいると判断した場合、次の動作を行う指令を可動部に与えることによって制御するものである。また特に、移動範囲が狭い可動部に対しては、その移動による位置変化を明確化するための位置変化強調部が設けられ、移動範囲の狭い可動部であっても正確に位置変化を把握できるようにしたものである。
図1に、本発明の実施形態に係る自動運転装置100の構成ブロック図を示す。また図2に、自動運転装置100の概略上面図を示す。
本実施形態に係る自動運転装置100は、一例として、直径50mm、高さ50mmの円筒形をした基幹部品(ワーク)2の中心に、直径20mm、高さ10mmの円筒形の部品3を上方から嵌め込んで完成品4を製造するものである。
本実施形態に係る自動運転装置100は、可動部である搬送ユニット10及び上下ユニット20と、撮像部30、制御部40、ワーク搬入部50、部品投入部60、ワーク排出部70等を備える。
また本実施形態に係る自動運転装置100では、図2に示すように、ワーク2は、ワーク搬送路1に沿ってワーク搬入部50から搬入され、ワーク排出部70により排出される。一方、部品3は、部品投入部60により、ワーク搬入部50と略直交する方向から投入され、ワーク搬入部50とワーク排出部70の中間にある組み立て部80で、ワーク2に組み付けられる。
ワーク搬入部50は、前工程から送られてきたワークを連続的に自動運転装置100に搬入可能なように、ワークを載せて運ぶベルトコンベアで構成する。部品投入部60は、部品投入側から組み立て部80側へ緩やかな下降傾斜路であって、振動により、投入された部品3が徐々に組み立て部80側へ搬送される。ワーク排出部70は、ワーク搬入部50同様、ベルトコンベアで構成する。そして、搬送ユニット10が部品組み付け済みのワーク(完成品)4を組み立て部80側に最も近いワーク排出部70の出口71に排出すると、その完成品4を載せて次工程へ搬送する。
搬送ユニット10は、ワーク搬送路1と略平行に取り付けられ、ワーク搬入部50の終端付近の入り口51にあるワーク2を捕捉し、ワーク排出部70の方へ平行移動して組み立て部80へ搬送する。さらに完成品4をワーク排出部70に存在する出口71へと搬送する。組み立て部80に配置した上下ユニット20は、上部ユニット21が部品3を捕捉して上下運動し、下部ユニット22がワーク2を固定することにより、ワーク2に部品3を組み付けて完成品4を製造する。
搬送ユニット10は、ワーク搬送方向と略並行方法の長さ150mm、略垂直方向の幅50mmからなる部材11と、部材11の下部に取り付けられたグリッパ12及び駆動用のサーボモータを備える。グリッパ12は、ワーク搬送方向にワークの幅とほぼ等しい間隔で配置した2本の爪で構成し、ワーク搬送路1に沿って2セット配置する。
また搬送ユニット10は、ワーク搬送路1の存在する平面内で、ワーク搬送路1と直交する方向、及びワーク搬送路1と平行方向に移動可能である。また搬送ユニット10の原点位置を、搬送ユニット10がワーク搬送路1上にあるワーク2と接触しないよう、ワーク搬送路1から約30mm後方に離れた位置に設定する。そして、原点位置にある搬送ユニット10に送り動作を指示すると、ワーク搬送路1に沿って、ワーク排出方向へ向けて約70mm移動する(この移動先を便宜上送り位置と呼ぶ)。さらに、送り位置にある搬送ユニット10に、戻り動作が指示されると、原点位置へ戻るように、ワーク搬送路1に沿って、ワーク搬入方向に約70mm移動する。一方、原点位置若しくは送り位置にある搬送ユニット10に前進動作が指示されると、搬送ユニット10は、ワーク搬送路1上にあるワーク2又は完成品4を捕捉するため、若しくは保持しているワーク2又は完成品4をワーク搬送路1上にリリースするため、ワーク搬送路1に近づく方向に約30mm移動する。逆に、ワーク搬送路1に近接した位置にある搬送ユニット10に対し、後退動作が指示されると、搬送ユニット10はワーク搬送路1から離れる方向に約30mm移動する。
上下ユニット20は、上部ユニット21、及び下部ユニット22で構成される。下部ユニット22は組み立て部80へ搬送されてきたワーク2を固定する。一方、上部ユニット21は、開閉可能な爪からなるワークチャック23、及びワークチャック23が取り付けられるチャックシリンダ24、及びこれらを駆動するサーボモータを備えている。
上部ユニット21は、初期状態では、組み立て部80に搬送されてくるワーク2、部品3と衝突しないように、組み立て部80の上方に退避しておく。組み立て部80に部品3が来ると、上部ユニット21を下降させ、ワークチャック23を閉じて(チャック動作)部品3を保持する。部品3を保持すると、上部ユニット21は上方に移動する。その後ワーク2が組み立て部80へ搬送されてくると、再び上部ユニット21は下降し、ワーク2に部品3を挿入し、組み付ける。部品の組み付けが終わると、ワークチャック23は開いて(アンチャック動作)部品をリリースし、再び上部ユニット21は上方に移動する。この上下方向の移動距離は、組み立て部80にワーク2が存在する場合、約10mmであり、ワーク2が存在しない場合約60mmである。
ワークチャック23は、同一水平面内に並置される2本の爪で構成され、チャックシリンダ24の下部に設けられる。また、ワークチャック23の2本の爪は、それぞれチャックシリンダ24と長手方向の端部近傍の一点で取り付けられ、その取り付け点を中心として回転可能となっている。そして、ワークチャック23が部品3を把持するようにチャック動作を行う場合、両方の爪が略平行になるまでその間隔を狭めるように動作する。逆に、ワークチャック23が部品3を手放すようにアンチャック動作を行う場合には、両方の爪の間隔が開くように、それぞれの爪が最大で約15°ずつ回転移動する。
また、ワークチャック23のチャック・アンチャック動作による移動量は相対的に少なく、撮像部30で撮影した画像データ上で、爪が閉じた状態と開いた状態の差異は少ない。そこで、ワークチャック23の開閉状態の差異を強調するため、位置変化強調部90が設けられる。なお、位置変化強調部90については、後述する。
撮像部30は、上述した組み立て部80の斜め上方、搬送路1をはさんで部品投入部と反対側に約30°の方向に配置する。そして、搬送ユニット10、上下ユニット20、ワーク搬入部50、部品投入部60、ワーク排出部70を全て1枚の画像に収めるとともに、搬送ユニット10、上下ユニット20の各部の動作範囲も全て収めることができる。制御部40は、撮像部30からの画像信号を受信して、搬送ユニット10、上下ユニット20それぞれのサーボモータ(図示せず)へ制御信号を送信する。
図1に示すように、制御部40は、画像処理部41、モータドライバ42、及びメモリ43を備える。本実施形態においては、パーソナルコンピュータ(PC)に内蔵のプログラム、メモリ、RS232Cといった外部出力ポート等によって構成する。しかし、制御部40はこれに限られるものではなく、専用のハードウェア、ファームウェア等で構成してもよい。また、画像処理部41及びメモリ43と、モータドライバ42を、別個のハードウェアとして構成し、互いに通信可能な構成としてもよい。例えば、画像処理部41及びメモリ43をPC及び内蔵プログラムで構成し、モータドライバ42をプログラマブルロジックコントローラ(PLC)で構成してもよい。
本実施形態によると、制御される対象である可動部に検出マークが形成される。すなわち、搬送ユニット10の部材11の搬入部50側端部の上面に検出マーク13を、及び排出部70側端部の上面に検出マーク14を取り付ける。検出マーク13及び14は、直径5mmの赤い円形シールであり、撮像部30で撮影する画像において、搬送ユニット10がどの位置にあっても、どちらかの検出マークが写り込むようになっている。なお、検出マーク13及び14は上記のものに限られるわけではなく、画像上で明確に判別可能なものであればよく、部材11自体の特有の形状等で代用することも可能である。
一方、検出マーク13及び14には、どのような照明環境下においても、画像データ上で識別を容易にするため、表面に凹凸を設けて明暗の縞模様ができるようにしてもよい。図3に、検出マークの一例を示す。
図3(a)に示す検出マーク131では、表面全体に平行線状で交互に凹凸が設けられる。この凹凸は、例えば1mm間隔で凸と凹が入れ替わり、また凸部の頂点と凹部の底部との高低差を1mmとすることができる。
また図3(b)に示す検出マーク132は、3重の同心円状の構成となっており、同心円毎に異なる方向の平行線状で交互に凹凸が設けられる。具体的には、中心の第1の円133では、水平方向に対して60°傾けた平行な線状の凹凸が設けられ、中心から2番目の第2の円134では、第1の円133と逆向きに水平方向に対して60°傾けた平行な線状の凹凸が設けられ、最外部の第3の円135では、水平方向に平行な線状の凹凸が設けられている。各凹凸について、幅は1mmであり、凸部の頂点と凹部の底部との差は1mmである。なお、検出マークの凹凸の幅及び高低差は、明暗の縞模様ができればよく、上述したものに限られない。
また、上下ユニット20の上部ユニット21においても、チャックシリンダ24の上面に検出マーク25が取り付けられている。検出マーク25は、搬送ユニットに取り付けた検出マーク同様、直径5mmの赤い円形シールである。さらに、撮像部30で撮影する画像において、上部ユニット21が如何なる位置にあっても、またチャックの開閉によらず、検出マーク25が写り込むよう構成されている。なお、検出マーク25は、検出マーク13、14と同じマークである必要は無く、画像上で明確に判別可能なものであればよい。
また、ワークチャック23の開閉動作も画像データを用いて確認される。ただし、上述したようにワークチャック23の開閉動作は移動量が少なく、ワークチャック23が開いた状態の爪の位置と、ワークチャック23が閉じた状態の爪の位置との画像データ上での差は小さいため、位置変化強調部90が設けられる。
位置変化強調部90の詳細を図4及び図5を参照しつつ説明する。図4(a)は、ワークチャック23が閉じた状態において、自動運転装置100の組み付け部80の近傍を拡大上面図であり、図4(b)は、図4(a)におけるAA’で示した線での概略断面図である。
位置変化強調部90は、ワークチャック23の一方の爪の上部に取り付けられた反射鏡91と、搬送路1及び部品投入部の近傍に配置される側壁92と、側壁92に取り付けられた位置指標93等を備える。そして、位置変化強調部90は、ワークチャック23が閉じた状態において、位置指標93を反射鏡91で撮像部30の方へ反射して位置指標93の像を撮像部30で視認可能とし、一方ワークチャック23が開いた状態では位置指標93の像を撮像部30から視認不能することにより、ワークチャック23の開閉時の位置変化を、撮像部30で撮像した画像データに位置指標93が撮影されているか否かで置き換えるものである。
位置指標93は、検出マーク13等と同様に、例えば直径5mmの赤色円形シールとすることができる。またい位置指標93は、図4(b)に示すように、側壁92上に2箇所設けられる。上側の位置指標93aは、組み付け部80にワーク2が存在し、ワークチャック23が一番下まで下降しない場合に、反射鏡で反射されて撮像部30で撮像可能とされる。一方、下側の位置指標93bは、組み付け部80にワーク2が存在せず、ワークチャック23が一番下まで下降した場合に、反射鏡で反射され、撮像部30で撮像可能とされる。これら位置指標93a及び93bは、側壁92の組み付け部80側に位置するため、撮像部30の位置からは直接視認することはできない。なお、図4(b)において、実線で示されるワークチャック23及び反射鏡91は、組み付け部80にワーク2が存在する場合の最下降位置にいる場合を示し、点線で示されるワークチャック23及び反射鏡91は、組み付け部80にワーク2が存在しない場合の最下降位置にいる場合を示す。
図4(a)に示すように、ワークチャック23の爪が閉じている場合、反射鏡91、位置指標93、撮像部30が水平面内で一直線上に並ぶように配置する。そして、反射鏡91を、位置指標93と撮像部30とを結ぶ直線が法線となるように反射面を向けて配置する。すると、撮像部30は、反射鏡91で反射された位置指標93の像を観察することが可能であり、撮像部30により撮影された画像データにおいて、反射鏡91上に位置指標93を視認することが可能である。
一方、図5に、ワークチャック23が開いている状態における、自動運転装置100の組み付け部80の近傍の拡大上面図を示す。図5に示すように、ワークチャック23の爪が開いている場合、爪の回転移動に伴って反射鏡91の反射面も爪の回転角θと同じ量だけ角度が変化する。この場合、位置指標93から反射鏡91へ入射する光は、反射鏡91で反射され、入射光と2θの角をなして出射されるため、撮像部30からは位置指標93を見ることができず、したがって撮像部30が取得する画像データ上では、位置指標93を確認することができない。
上述したように、ワークチャック23の開閉時で位置指標93が画像上に存在するか否かを変えることにより、ワークチャック23の爪に直接位置指標を設ける場合よりも開閉時の差異を明確化し、正確に開閉いずれの状態かを把握することが容易となる。
撮像部30は、自動運転装置100の作動中、搬送ユニット10、上下ユニット20、及び搬送されてくるワークや部品、排出される組み立て済みワークを全て1枚の画像に収めた静止画を、ビデオレート(30Hz)で連続して取得し、制御部40へ送信する。この目的のため、撮像部30として、1/4インチ41万画素CCD、焦点距離4.3mm(画角69.8°)、24ビット(RGB各8ビット)出力のCCDカメラを用いる。しかし、撮像部30としては、これに限られるものではなく、自動運転装置100の各部を1枚の画像に収めることが可能で、且つ検出マーク等の判別ができるものであればよい。
また制御部40は、撮像部30から画像データを受信すると、画像処理部41において受信した画像のうち、検出マークの動きによる位置の変化を示す変化後の画像を解析し、搬送ユニット10や上下ユニット20等の位置を認識し、認識結果に応じてモータドライバ42へ指令を送信する。モータドライバ42は、画像処理部41から受信した指令に基づいて、搬送ユニット10又は上下ユニット20に内蔵されたサーボモータに対して制御信号を送信する。
このようにして、本実施形態によれば、検出マークの位置の変化により、自動運転装置をシーケンス動作させることができる。
以下、フローチャート及びタイミングチャートを参照して、本実施形態に係る自動運転装置100の動作について説明する。
図6及び図7に、本実施形態に係る自動運転装置100の動作のフローチャートを示す。また図8に、本実施形態に係る自動運転装置の可動部である搬送部10、上下ユニット中の上部ユニット21について動作のタイミングチャートを示す。
図8において、上部に示したS02等の記号501は、後述する組み立て準備完了、若しくは各可動部の動作終了判定ステップの実行タイミングを示す。また、各可動部の動作を横欄毎に示し、タイミングチャート線502がその横欄に存在する場合、各可動部はその横欄の左側欄503に示された動作を行うことを表す。どちらの動作を示す欄にも属さず、中間線上にタイミングチャート線502が存在する場合、その可動部は動作を行わず、その前状態を保持し続けることを表す。
まず、組み立て準備完了か否かを判定する(ステップS00)。この判定は、制御部40の画像処理部41が行う。以下(i)〜(iii)の3条件全てを満たす場合、準備完了と判定する。
(i)ワーク搬入部50の入口51にワーク2が存在すること
(ii)ワーク排出部70の出口71に完成品4が存在しないこと
(iii)部品投入部60に部品3が存在すること
ワークや部品等の存在の有無は、以下の手順により調べることができる。
まず、事前準備として、撮像部30を通じてワーク2、部品3及び完成品4が入口51等に存在する場合、及び存在しない場合の画像データをそれぞれ取得する。
図9に、撮像部30で撮影した自動運転装置の画像の概略図を示す。図9に示すように、取得した画像データに対して、入口51や出口71の位置、部品の存在有無を調べる位置を特定し、関心領域001〜003として設定する。また関心領域001〜003の画像上の位置(例えば関心領域の左上端座標と右下端座標)をメモリ43に保存しておく。次に、関心領域001〜003にワーク2、部品3又は完成品4が存在する場合、存在しない場合のそれぞれについて、各関心領域内の平均信号値を求める。そして、各関心領域について、ワーク2、部品3又は完成品4が存在する場合の平均信号値と、存在しない場合の平均信号値との平均値を算出し、閾値Thd001〜Thd003とする。その閾値Thd001〜Thd003を予めメモリ43に保存しておく。
自動運転装置100の動作時においては、撮像部30から送られてくる画像に対し、メモリ43に保存した関心領域001〜003の位置に基づいて、関心領域001内の平均信号値AVG001、関心領域002内の平均信号値AVG002、関心領域003内の平均信号値AVG003をそれぞれ算出する。メモリ43から上述した閾値Thd001〜Thd003を呼び出し、平均信号値AVG001〜AVG003とそれぞれ比較する。平均信号値AVG001〜AVG003が、閾値Thd001〜Thd003より、ワーク2、部品3又は完成品4が存在する場合の参照画像データにおける平均信号値に近い場合、ワーク2、部品3又は完成品4が存在すると判定する。
なお、判定方法は上記の方法に限られるものではなく、別の方法を用いてもよい。例えば、上記と同様、事前にワーク2、部品3又は完成品4が存在する参照画像データを取得してメモリ43に保存しておく。また、上記同様に関心領域001〜003を設定する。
そして、自動運転装置100の動作時において、撮像部30から受信した画像データと参照画像データとの間で、関心領域内001〜003内の各画素で差分信号値の絶対値を算出し、その平均信号値(平均絶対偏差)を算出する。その平均絶対偏差が所定の許容範囲内であれば、ワーク2、部品3又は完成品4が存在する(または存在しない)と判定する。なお、上記の許容範囲は、自動運転装置が設置された場所の照明など環境条件によって左右される可能性があるため、実験的に決定しておくことが好ましい。
上記の判定方法に基づき、撮像部30から連続的に受信した画像データに対し、逐次判定を行う。いずれかの条件を満たさない場合、画像処理部41は組み立て準備が完了していないと判断し、自動運転装置100のアイドル状態を維持する。また、受信した画像データは廃棄する。
一方、ある時点で、受信した画像データについて上記(i)〜(iii)の全ての条件を満たすと、画像処理部41は組み立て準備完了と判断する。そして画像処理部41は、その画像データをメモリ43に保存するとともに、モータドライバ42に対し、搬送ユニット10をワーク搬送路1に近づくよう前進動作させる指令を送信する。モータドライバ42は、係る指令を受け取ると、搬送ユニット10のサーボモータに制御信号を送信する。その制御信号に基づいて、搬送ユニット10がワークを掴むために前進動作する(ステップS01)。
次に、搬送ユニット10の前進動作が終了したか否かを判定する(ステップS02)。
係る判定は、搬送ユニット10に付された検出マーク13の重心位置及び面積が所定の条件を満たすか否かを判定することによって行う。以下にその方法を詳述する。
事前準備として、搬送ユニット10の前進動作終了時点に相当する参照画像データを取得する。図9に示すように、取得した参照画像データから、搬送ユニット10の前進動作終了時点における検出マーク13の存在すべき位置を含む関心領域101を設定する。関心領域101の画像データ上の位置及び範囲は、メモリ43に記憶させておく。ここで関心領域101は、検出マーク13の位置検出に使用する領域であるため、正確な位置認識を行うために検出マーク13を完全に収めることができる大きさであることが好ましい。一方、位置認識の処理に必要な計算時間を減らすため、関心領域101は狭い方が好ましい。具体的には、関心領域101は、検出マーク13の画像上における面積の5倍〜100倍程度の大きさに設定することが好ましい。さらに参照画像データに基づいて、搬送ユニット10の前進動作終了時点における検出マーク13を示す画素の重心位置、画像中の面積をそれぞれ基準重心Gorg、基準面積Dorgとして算出する。そして基準重心Gorg、基準面積Dorgを予めメモリに記憶させておく。
図10に、ステップS02の動作手順のフローチャートを示す。
自動運転装置100の稼動時においては、制御部40が撮像部30から受信した画像について、関心領域101のみに限定して検出マーク13の重心位置G・面積Dを調べ、基準重心、基準面積との比較で動作が完了したか否かを判定する。まず、関心領域の位置、範囲、及び基準重心Gorg、基準面積Dorgをメモリ43から取得する(ステップS201)。次に、判定を行う画像データを取得する(ステップS202)。次に、関心領域101内の画像データを、検出マークとそれ以外に分離可能なように2値化する(ステップS203)。2値化の閾値は自動運転装置100の設置環境等を勘案して経験的に設定する。
本実施形態では、1画素あたりのデータが赤(R)、緑(G)、青(B)各8ビットで表される。そこで関心領域101中の任意の画素の値P(=(R, G, B))とし、対応する2値化画像の任意の画素値をPbinとすると、検出マーク13は赤色であることから、例えば
Pbin = 1 (R≧128、G<32、B<32)(検出マーク13に相当)
Pbin = 0 (上記以外のとき)
とすることができる。
2値化が終了すると、検出マーク13に相当する(Pbin=1)画素の重心G、画素数の合計(面積)Dを算出する(ステップS204)。次に、重心Gと、メモリに記憶された基準重心Gorgとの距離ΔG(=((Gx−Gorgx)2+(Gy−Gorgy)2)1/2)を求める(ただし、Gx、Gyはそれぞれ重心Gの水平座標、垂直座標であり、一方Gorgx、Gorgyはそれぞれ基準重心Gorgの水平座標、垂直座標である)。同様に、面積Dと、基準面積Dorgとの面積の差の絶対値ΔD(=|D−Dorg|)を求める(ステップS205)。ΔG、ΔDそれぞれについて許容誤差範囲(例えば1画素以内)か否か判定する(ステップS206)。共に許容誤差範囲内であれば、搬送ユニット10は正常に前進動作(S01)を終了したと判定する。この場合、画像処理部41は、モータドライバ42に対して、次の動作を実行させるための指令となるタイミング信号を出力する(ステップS207)。また、判定に使用した画像データをメモリ43に保存する(ステップS208)。
一方、ΔG、ΔDのどちらか一方でも、許容誤差範囲を超えた場合、搬送ユニット10の前進動作は完了していないと判断し、判定に使用した画像を廃棄するとともに、次に撮像部30から送られてくる画像に対して同様の判定手順を繰り返す。
なお、搬送ユニット10が前進動作を始めてから、若しくはステップS00の条件が満たされてから、所定時間(例えば1分間)の間にステップS02が搬送ユニット10の前進動作を終了したと判定できない場合、装置の操作者に対して警告を発生するよう構成してもよい。係る警告は、装置の作動状態を監視するモニタ(図示せず)上への警告表示、又は警告音の発生等で行うことが可能である。
上述した判定方法は、以下に述べるステップS04、S06等、自動運転装置100の可動部の各動作終了判定ステップにおいても同様に使用する。ただし、着目する検出マーク、設定する関心領域、及び基準となる重心位置Gorg、面積Dorgは、各動作終了判定ステップについて最適化する。この最適化についても、上述した事前準備と同様の方法で、動作終了判定を行う可動部の動作終了時を示す参照画像データを予め取得しておき、その参照画像データから着目する検出マークの重心、面積を調べておけばよい。
このように、検出マークの重心位置、及び面積を検出し、理想状態におけるそれらと比較することにより、その検出マークが付された可動部について正確な位置決定が可能となり、装置の信頼性を向上させることが可能である。
画像処理部41が、搬送ユニット10の前進動作は終了したと判定した場合、次の動作として、モータドライバ42に対し、搬送ユニット10を後退動作させる指令を出す。モータドライバ42は、その指令を受け取ると、搬送ユニット10のサーボモータに制御信号を送信する。その制御信号に基づいて、搬送ユニット10はワークを保持したまま後退動作を行う(ステップS03)。なお、この後退動作に伴って、ワーク2に取り付ける部品3が、部品投入部より組み立て部80に移動する。
次に、搬送ユニット10の後退が終了したか否かを判定する(ステップS04)。
その判定方法はステップS02と同様である。即ち、予め設定した関心領域内で検出マーク13の重心位置と面積を算出し、事前に求められているそれらの値との差異が許容範囲内に収まるか否かで判定する。また、ステップS02と同様に、判定基準を満たさない画像データは廃棄し、判定基準を満たした画像はメモリ43に保存する。
画像処理部41が、搬送ユニット10の後退動作は終了したと判定した場合、モータドライバ42に対し、上部ユニット21を下降させる指令を出す。モータドライバ42は、係る指令を受け取ると、上部ユニット21のサーボモータに制御信号を送信する。その制御信号に基づいて、上部ユニット21が下降する(ステップS05)。
その後、上部ユニット21の下降動作が終了したか否かを判定する(ステップS06)。その判定方法はステップS02と同様である。即ち、予め設定した関心領域内で検出マーク25の重心位置と面積を算出し、事前に求められているそれらの値との差異が許容範囲内に収まるか否かで判定する。また、ステップS02と同様に、判定基準を満たさない画像データは廃棄し、判定基準を満たした画像はメモリ43に保存する。
本実施形態では、撮像部30を、組み立て部80の直上でなく、斜め30°の方向に配置したことにより、上部ユニット21の上下運動も、画像上で位置の変化として捉えることを可能としたので、複数のCCDカメラを用いることを要しない。このように、撮像部30は、1台で全ての可動部の動作を調べるために、全てに可動部の動作平面外に配置することが好ましい。また、正確に可動部の位置を把握するために、撮像部30で撮影した画像上において、全ての可動部の動作距離が、10画素以上となるように配置することがさらに好ましい。
画像処理部41が、上部ユニット21の下降動作は終了したと判定した場合、モータドライバ42に対し、ワークチャック23を閉じる指令を出す。モータドライバ42は、係る指令を受け取ると、上部ユニット21のサーボモータに制御信号を送信する。その制御信号に基づいて、ワークチャック23が閉じて組み立て部80にある部品3を捕捉する(チャック動作)(ステップS07)。
その後、ワークチャック23のチャック動作が終了したか否かを判定する(ステップS08)。なお判定方法はステップS02と同様であり、予め設定された関心領域内で、ワークチャック23の爪上に設けられた反射鏡91に写った検出マーク93の像の重心位置、面積を調べて判定する。また、判定基準を満たさない画像データは廃棄し、判定基準を満たした画像はメモリ43に保存することも同様である。
画像処理部41が、ワークチャック23のチャック動作は終了したと判定した場合、モータドライバ42に対し、上部ユニット21を上昇させる指令を出す。モータドライバ42は、係る指令を受け取ると、上部ユニット21のサーボモータに制御信号を送信する。その制御信号に基づいて、上部ユニット21は部品を保持したまま上昇する(ステップS09)。
その後、上部ユニット21の上昇動作が終了したか否かを判定する(ステップS10)。この判定には、上部ユニット21に付された検出マーク25を用いる他、判定方法、画像の廃棄・保存は上記S02と同様である。
画像処理部41が、上部ユニット21の上昇動作は終了したと判定した場合、モータドライバ42に対し、搬送ユニット10を送り動作させ、その後前進動作させる指令を出す。モータドライバ42は、係る指令を受け取ると、搬送ユニット10のサーボモータに制御信号を送信する。その制御信号に基づいて、搬送ユニット10はワーク2を組み立て部80に搬送するため、ワーク2を保持したままワーク搬送路1に沿って送り動作し、その後前進動作する(ステップS11)。
ステップS02と同様の判定方法により、搬送ユニット10の移動が完了したか否かを判定する(ステップS12)。画像データの保存、廃棄についても同様である。ただし、搬送ユニット10がワーク排出部側へ移動したことにより、ワーク搬入部側の検出マーク13が、上部ユニット21に隠れて見えなくなるため、ワーク排出部側の検出マーク14を用いて判定を行い、関心領域も検出マーク14の存在位置を含むように設定しておく。
画像処理部41は、搬送ユニット10の移動は終了したと判定した場合、モータドライバ42に対し、上部ユニット21を下降させる指令を出す。モータドライバ42は、係る指令を受け取ると、上部ユニット21のサーボモータに制御信号を送信する。その制御信号に基づいて、上部ユニット21が下降し、組み立て部80にあるワーク2に、部品3を取り付ける(ステップS13)。この時、下部ユニット22は、ワーク2を固定する。
ステップS04と同様の判定方法により、上部ユニット21の下降動作が終了したか否か、判定する(S14)。判定に用いる検出マーク、画像データの保存、廃棄についても同様である。
画像処理部41は、上部ユニット21の下降動作は終了したと判定した場合、モータドライバ42に対して、搬送ユニット10に後退動作させ、その後戻り動作させる指令を出す。同時に、ワークチャック23に対し、部品3をリリースするよう開く動作(アンチャック動作)を行うよう指令を出す。モータドライバ42は、係る指令を受け取ると、搬送ユニット10のサーボモータに制御信号を送信する。その制御信号に基づき、搬送ユニット10がワーク2をリリースして後退し、その後戻り動作して原点位置に復帰する。また、モータドライバ42は、上部ユニット21のサーボモータに制御信号を送信する。その制御信号に基づき、ワークチャック23はアンチャック動作を行う(ステップS15)。
次に、搬送ユニット10の移動が完了し、原点位置に復帰したか否かを判定する。同時に、ワークチャック23のアンチャック動作が完了したか否か判定する(ステップS16)。
搬送ユニット10の移動完了は上述してきた判定方法と同様の方法で行われる。一方、アンチャック動作が完了したか否かの判定は、検出マーク93の像を検出可能か否かで判定する。上述したように、ワークチャック23が開いた状態では、検出マーク93の像は位置変化強調部90の反射鏡91上に存在せず、また検出マーク93を撮像部30から直接視認することはできないため、検出マーク93を検出することはできない。逆に、ワークチャック23が閉じた状態では、検出マーク93の像を反射鏡91上に認めることができる。そこで、画像データ上で、検出マーク93を検出できない場合は、アンチャック動作が完了したと判定する。なお、検出マーク93の像の有無は、上述したS201〜S206と同様の判定方法を用いることが可能である。また、ステップS00における、ワーク2等の有無を判定する方法と同様の方法を用いることも可能である。すなわち、検出マーク93の像が写っていない参照画像を事前に準備し、反射鏡91を含む所定の範囲に限定した関心領域内でその参照画像と撮像部30から取得した画像データとの平均絶対偏差を算出し、その平均絶対偏差が所定の許容範囲内なら検出マーク93の像は写っていないと判断する。
なお、ステップS16では、搬送ユニット10の移動完了判定と、ワークチャック23のアンチャック動作完了判定を同一の画像上で同時に実行することが可能である。即ち、搬送ユニット10の検出マーク13の重心位置、面積を調べるための関心領域と、検出マーク93の重心位置、面積を調べるための関心領域をそれぞれ設定し、関心領域毎に判定を行う。
それぞれの判定の結果、搬送ユニットの移動完了、アンチャック動作の完了とも確認できると、画像処理部41は、モータドライバ42に対し、上部ユニット21を上昇させる指令を出す。モータドライバ42は、係る指令を受け取ると、上部ユニット21のサーボモータに制御信号を送信する。その制御信号に基づき、上部ユニット21は上昇する(ステップS17)。
その後、ステップS10と同様に、上部ユニット21の上昇動作が終了したか否かを判定する(ステップS18)。画像の廃棄・保存も同様に行う。
画像処理部41が、上部ユニット21の上昇動作は終了したと判定した場合、モータドライバ42に対し、部品組み付け済みのワーク(完成品)4を捕捉するため、搬送ユニット10を前進させる指令を出し、モータドライバ42は、搬送ユニット10のサーボモータに対して、搬送ユニット10を前進動作させる制御信号を送信する。その制御信号に基づいて、搬送ユニット10は前進動作する(ステップS19)。
ステップS19で搬送ユニット10の前進が終了したか否か判定する(ステップS20)。
ステップS20で、搬送ユニット10の前進が終了したと判定された場合、画像処理部41は、モータドライバ42に対して搬送ユニット10を後退動作させる指令を出し、モータドライバ42は、搬送ユニット10のサーボモータに対して後退動作をさせる制御信号を送信する。その制御信号に基づいて、搬送ユニット10は完成品4を保持したまま後退する(ステップS21)。
そして、搬送ユニットの後退を確認する(ステップS22)。
ステップS22で、搬送ユニット10の後退が終了したと判定された場合、画像処理部41は、搬送ユニット10が送り動作後前進動作するようにモータドライバ42に対して指令を出し、モータドライバ42は、搬送ユニット10のサーボモータに対して送り動作及び前進動作をさせる制御信号を送信する。その制御信号に基づき、搬送ユニット10は完成品4をワーク排出部70へ排出するために、完成品4を保持したまま、送り動作し、その後前進する(ステップS23)。
次に、ステップS23の搬送ユニット10の前進が終了したか否か判定する(ステップS24)。
ステップS24で、搬送ユニット10の前進終了を確認すると、完成品4がワーク排出部70のワーク出口71に排出される。そして、画像処理部41は、モータドライバ42に対して指令を出し、モータドライバ42は搬送ユニット10のサーボモータに対して、搬送ユニット10が、後退動作した後、戻り動作を行うよう制御信号を送信する。そしてその制御信号に基づき、搬送ユニット10は原点位置に復帰する(ステップS25)。
最後に、搬送ユニット10が原点位置に復帰したか否かを確認する(ステップS26)。ステップS26では、搬送ユニット10に付された検出マーク13を用いて、他のステップS16同様に判定する。
なお、自動運転装置100は、さらに不良ワーク排出部を有してもよい。例えば、不良ワーク排出部は、ワーク排出部70に近接して配置され。そして、ワーク排出部70に排出された完成品4について、画像処理部41によって不良ワークと判定された場合、不良ワーク排出部は、ワークガイドをワーク排出部70へ突き出し、そのワークガイドによって不良ワークをワーク排出部70から排除する。この不良ワーク排出部についても、ワークガイドといった可動部に検出マークを付し、画像処理部41でその検出マークの重心、面積を認識することにより、特別なセンサを使用することなく、動作を制御することが可能である。
上記のように、撮像部により撮像された動画を処理するのではなく、動作終了時点での静止画を用い、また画像全域を用いずに、関心領域のみを対象として判定処理を行うことで、高速に処理を行うことが可能となり、若しくは安価なプロセッサを用いて処理することが可能となる。また上述したように、画像データを解析し、各可動部の位置を確認することで、他のセンサがなくとも、原点位置確認やオーバーラン検知を行うことが可能となり、且つ各部の動作完了を判定した後に、次の動作を行うよう指令を出すことで、誤動作を防止することが可能となる。さらに、検出マークの重心位置、面積を判定に用いることで、各可動部の位置を精密に評価することが可能となり、誤動作の防止をより確実に行うことができる。また、ステップS02〜S26の各動作終了判定ステップにおいて、各可動部の動作完了と判定した画像データを保存することにより、事後的にそれらの画像を参照することで自動運転装置100の動作解析を簡便に行うことが可能となり、特に異常発生時における原因の究明を容易に行うことが可能となる。さらに各可動部の動作未了と判定した画像データを廃棄することにより、保存するデータ量を減らすことができ、そのため事後的な動作解析において参照するデータ数も最小限で済み、ユーザの負担を軽減することが可能となる。
なお、移動範囲の狭い可動部の位置変化を検出するために使用する位置変化強調部の構成は、上述した実施形態に限られるものではない。
例えば、上述の実施形態において、位置変化強調部90として反射鏡91等を用いる代わりに光源94を設け、その光源94から出た光を投射するスクリーン95を設置してもよい。図11に、このような位置変化強調部の構成例を説明する概略上面図を示す。
図11に示す位置変化強調部90’では、ワークチャック23の爪上に、可視光のレーザを射出するレーザダイオード94が配置される。また、このレーザダイオード94から出射したレーザを投射するスクリーン95が、その投射面を撮像部30で撮影可能なように、投射面が部品投入部と略平行となるように設置される。この構成では、ワークチャックの爪の開閉によって、レーザダイオード94のレーザ射出方向も回転するために、ワークチャック23の爪が開いた状態でスクリーン95上にできるレーザダイオード94のスポットの位置が、ワークチャック23の爪が閉じた状態のときにできるスポットの位置と比較して大きく搬送路1側にずれる。そこで、スクリーン95上にできたスポットを位置指標96として撮像部30で撮影し、その位置指標(スポット)96を検出して画像データ上の位置を調べることにより、ワークチャック23の開閉状態を容易に調べることができる。なお、スポットの検出は、搬送部に付された検出マーク13等の検出と同様の方法で行うことができる。なお、光源としてレーザダイオードの代わりに、発光ダイオード(LED)のような指向性の劣る光源を用いても良いが、その場合にはスクリーン上に光源の像を作るために結像光学系も用いることが必要である。
さらに、位置変化強調部は、位置変化強調部を設ける装置の構造等によって様々に最適化することができる。
例えば、てこ、歯車の組み合わせ、又は異なる太さの円筒が連結され、内部に液体が充填された密閉容器等の周知の構造を用いて、可動部の僅かな平行移動に連動してもっと大きく移動する部材を設けることができる。そして、そのような可動部の移動量よりも大きく移動する部材に位置指標を設け、その位置指標を撮像した画像データ上で位置指標を特定することにより、可動部の位置変化が微小であっても、その位置変化を正確に検出することができる。