以下、図面を参照しつつ本発明に係る監視制御装置について詳細に説明する。
図1に、本発明に係る監視制御装置100の構成ブロック図を示す。
本発明に係る監視制御装置100は、カメラ110、コントローラ120、メモリ130、及びモニタ140を備える。
カメラ110は、撮像部として機能し、監視制御装置100の監視対象となる設備全体を撮影する。またカメラ110は、1台若しくは複数のカメラで構成し、設備に含まれる全ての可動部は、何れかのカメラで撮影されるように構成する。また、設備の可動部の移動を、画像上の位置の変化として捉えられるように、撮影対象である各可動部の動作平面から離れたところにカメラ110を配置することが好ましい。
また、カメラ110は、設備の可動部の動作を逐次捉えられるように、連続的に撮影可能であることが好ましく、例えばビデオレート(30Hz)で撮影を行う。撮影した画像は、コントローラ120へ送信する。
コントローラ120は制御部として機能し、カメラ110から受信した画像データを解析し、必要と認める画像データをメモリ130に保存する。詳しくは、監視対象の設備について、その設備の各動作ステップの終了後に、その動作ステップで移動した可動部の位置を上述の画像データから特定し、その可動部が動作終了後の所定位置にいると判定した場合、その解析に用いた画像データをメモリ130に保存する。若しくは、設備の次の動作ステップの開始前に、その動作ステップで移動する可動部の位置を上述の画像データから特定し、その可動部が動作開始前の所定位置にいると判定した場合、その解析に用いた画像データをメモリ130に保存する。一方、解析した画像データでは、着目する可動部が動作終了後の所定位置、若しくは動作開始前の所定位置にいないと判定される場合(例えばその可動部が動作中の場合)、コントローラ120は、解析に使用した画像データを廃棄する。
このように、可動部が動作開始前、又は動作終了後に所定の位置にいる場合の画像データを保存しておくことにより、可動部が動作中の画像データを保存せずとも、設備に異常が発生した場合、後から保存されている画像データを調べることによって異常原因の特定は十分可能であり、保存するデータの量を必要最小限に抑えることが可能である。
着目する可動部が所定の位置にいるか否かの判定は、以下に説明する方法で行うことができる。
まず、解析対象の画像データから、着目する可動部中の特定部分を認識する。
次に、認識された特定部分の画像データ上の位置と、理想状態にある設備を撮影した画像データ等から求められた基準位置との距離が、予め定められた許容範囲内にあるか否かを判定する。
その距離が許容範囲内に収まる場合、着目する可動部は所定の位置にいると判定する。 なお、着目する可動部中の特定部分の認識は、例えば可動部中の特徴ある部分について、2値化処理でその特徴ある部分に相当する画素だけを抽出し、抽出された画素の重心等を求めることで実行できる。また、2値化処理の代わりに、エッジ検出処理を行って、上記部分の境界に相当するエッジ画素を抽出し、エッジ画素の重心等を求めてもよい。さらに、上記の2値化処理やエッジ検出処理を、着目する可動部が写っている部分を含む、一部の領域(関心領域)に限定して行ってもよい。このように関心領域に限定して処理を行えば、処理に使用するデータ量を減ずることができるため、高速な処理が可能となる。
上述した判定方法の代わりとして、理想状態にある設備を撮影した画像データと、解析対象となっている画像データとのマッチング処理を行い、マッチングの結果を表す相関度が所定の閾値以上の場合、着目する可動部が所定の位置にいると判定する判定方法を用いてもよい。この判定方法を用いる場合においても、上述した関心領域に限定して処理を行うことが好ましい。
なお、コントローラ120は、設備の駆動制御を併せて行うことも可能であり、特に、着目した可動部が所定の位置にあると判定した場合に、設備に対して次の動作を行うよう、同期信号を出力するようにしてもよい。このような構成とすることで、カメラ110が可動部の位置を確認するセンサの役割を果たすため、他にセンサを準備する必要がなくなり、設備の簡略化及び省スペース化が可能となり、さらにメンテナンスの容易性を向上できる。
またコントローラ120は、監視対象である設備に異常が発生したか否かを、カメラ110から受信した画像データを解析する等により判定し、異常が発生したと判定した場合、設備を停止する。
異常発生の判定を以下に説明する。
まず、監視対象設備の各動作ステップについて、正常動作中の設備の各動作ステップの開始前、若しくは終了後の画像データを参照画像データとして予め取得する。そして、参照画像データに基づいて、その予め解析を行う関心領域を設定する。例えば、部品組み立て装置や部品検査装置では、動作ステップ毎に決まった位置に、特定の種類の部品が存在するはずである。そこで、画像データ上において、そのような部品が存在すべき場所に関心領域を設定する。
設備の監視中においては、各動作ステップの開始前、若しくは終了後の画像データを取得する。そして、対応する参照画像と、関心領域内の画像データ間でマッチングを行う。マッチングの結果を例えば両画像データ間の対応する画素値の絶対平均偏差として求め、その絶対平均偏差が所定の閾値より大きい場合、異常が発生したと判定する。なお、各動作ステップの開始前、若しくは終了後に相当する画像データとして、上述した方法により動作ステップの開始前、若しくは終了後と判断され、メモリ130に保存される画像データを用いればよい。
代わりの異常判定方法としては、以下の方法がある。
まず、コントローラ120は、設備が正常動作している場合における各動作ステップの所要時間を予め記憶しておく。
設備の監視中においては、各動作ステップの動作開始前の時間(若しくは、前動作ステップが終了した判定された時間)を逐次記録しておき、その動作ステップが終了したと判定された時間との経過時間を算出する。算出した経過時間が、予め記憶しておいた所要時間と比較して相当余分な時間を要している場合、例えば経過時間が上記所要時間の数倍(例えば2倍、5倍、10倍)以上要している場合、異常が発生したと判定する。また、上記所要時間の数倍の時間が経過しても、動作終了と判定されない場合も、コントローラ120は異常が発生したと判定してもよい。
さらに別の異常判定方法としては、例えば設備の可動部を動かすモータに送る電流値を監視しておき、その電流値が、モータの過負荷状態を示すような値にまで増大した場合、異常が発生したと判定することができる。
メモリ130は、データ記録部として機能し、コントローラ120により保存する指示を受けた画像を保存する。メモリ130には、常に最新の動作ステップから、複数ステップ前の動作ステップまでの各動作ステップに相当する画像データまでを保存しておくことが好ましく、最新の動作ステップから、設備の稼動サイクル数回分(例えば3サイクル分)前の全ての動作ステップまでに相当する画像データを保存しておくことがさらに好ましい。また、保存される画像データと関連付けて、当該画像データにおいて認識された可動部の位置情報や撮影された時間も併せて保存することが好ましい。
なお、コントローラ120及びメモリ130は、市販のパーソナルコンピュータ及び内蔵プログラムとして構成することができる。また、専用のハードウェアやファームウェアとして構成してもよい。
モニタ140は、画像データを表示する表示部として機能し、主として設備の異常解析等のために動作の再現を行う際、メモリ130に保存された画像データ、その画像データにおいて着目された設備の可動部の位置認識結果等を表示する。
以下に、本発明に係る監視制御装置を組み立て装置に実装した場合について説明する。
図2に、本発明に係る監視制御装置を実装した組み立て装置200の構成ブロック図を示す。また図3に、組み立て装置200の概略上面図を示す。図4に、図3のCCDカメラ110から見た組み立て装置200の概略斜視図を示す。
本実施形態に係る組み立て装置200は、一例として、直径50mm、高さ50mmの円筒形をした基幹部品(ワーク)の中心に、直径20mm、高さ10mmの円筒形の部品を上方から嵌め込んで完成品を製造するものである。また、本実施形態に係る監視制御装置100は、組み立て装置200の各動作ステップの終了時点での画像データを3サイクル分保存するとともに、併せて組み立て装置200の駆動制御も行うものとする。
組み立て装置200は、搬送ユニット210、上下ユニット220、ワーク搬入部230、部品投入部240、組み立て部250及びワーク排出部260を備え、CCDカメラ110、コントローラ120、メモリ130及びモニタ140とで監視制御装置100を構成する。
本実施形態に係る組み立て装置200では、図3及び図4に示すように、ワーク202は、ワーク搬送路201に沿ってワーク搬入部230から搬入され、ワーク排出部260により排出される。一方、部品203は、部品投入部240により、ワーク搬入部230と略直交する方向から投入され、ワーク搬入部230とワーク排出部260の中間にある組み立て部250で、ワーク202に組み付けられる。
ワーク搬入部230は、前工程から送られてきたワークを連続的に組み立て装置200に搬入可能なように、ワークを載せて運ぶベルトコンベアで構成する。部品投入部240は、部品投入側から組み立て部250側へ緩やかな下降傾斜路であって、振動により、投入された部品203が徐々に組み立て部250側へ搬送される。ワーク排出部260は、ワーク搬入部230同様、ベルトコンベアで構成する。そして、搬送ユニット210が部品組み付け済みのワーク(完成品)204を組み立て部250側に最も近いワーク排出部260の出口261に排出すると、その完成品を載せて次工程へ搬送する。
搬送ユニット210は、ワーク搬送路201と略平行に取り付けられ、ワーク搬入部230の終端付近の入口231にあるワーク202を捕捉し、ワーク排出部260の方へ平行移動して組み立て部250へ搬送する。さらに部品組み付け済みのワーク(完成品)204をワーク排出部260に存在する出口261へと搬送する。組み立て部250に配置した上下ユニット220は、上部ユニット221が部品203を捕捉して上下運動し、下部ユニット222がワーク202を固定することにより、ワーク202に部品203を組み付けて完成品204を製造する。
搬送ユニット210は、ワーク搬送方向と略並行方法の長さ150mm、略垂直方向の幅50mmからなる部材211と、部材211の下部に取り付けられたグリッパ212及び駆動用のサーボモータを備える。グリッパ212は、ワーク搬送方向にワークの幅とほぼ等しい間隔で配置した2本の爪で構成し、同時に2つのワークを保持可能なように、ワーク搬送路201に沿って2セット配置する。
また搬送ユニット210は、ワーク搬送路201の存在する平面内で、ワーク搬送路201と直交する方向、及びワーク搬送路201と平行方向に移動可能である。また搬送ユニット210の原点位置を、搬送ユニット210がワーク搬送路201上にあるワーク202と接触しないよう、ワーク搬送路201から約30mm後方に離れた位置に設定する。そして、原点位置にある搬送ユニット210に送り動作を指示すると、ワーク搬送路201に沿って、ワーク排出方向へ向けて約70mm移動する(この移動先を便宜上送り位置と呼ぶ)。さらに、送り位置にある搬送ユニット210に、戻り動作が指示されると、原点位置へ戻るように、ワーク搬送路201に沿って、ワーク搬入方向に約70mm移動する。一方、原点位置若しくは送り位置にある搬送ユニット210に前進動作が指示されると、搬送ユニット210は、ワーク搬送路201上にあるワーク202又は完成品204を捕捉するため、若しくは保持しているワーク202又は完成品204をワーク搬送路201上にリリースするため、ワーク搬送路201に近づく方向に約30mm移動する。逆に、ワーク搬送路201に近接した位置にある搬送ユニット210に対し、後退動作が指示されると、搬送ユニット210はワーク搬送路201から離れる方向に約30mm移動する。
上下ユニット220は、上部ユニット221、及び下部ユニット222で構成される。下部ユニット222は組み立て部250へ搬送されてきたワーク202を固定する。一方、上部ユニット221は、開閉可能な爪からなるワークチャック223、及びワークチャック223が取り付けられるチャックシリンダ224、及びこれらを駆動するサーボモータを備えている。
上部ユニット221は、初期状態では、組み立て部250に搬送されてくるワーク202、部品203と衝突しないように、組み立て部250の上方に退避しておく。組み立て部250に部品203が来ると、上部ユニット221を下降させ、ワークチャック223を閉じて部品203を保持する。部品203を保持すると、上部ユニット221は上方に移動する。その後ワーク202が組み立て部250へ搬送されてくると、再び上部ユニット221は下降し、ワーク202に部品203を挿入し、組み付ける。部品の組み付けが終わると、ワークチャック223は開いて部品をリリースし、再び上部ユニット221は上方に移動する。この上下方向の移動距離は、組み立て部250にワーク202が存在する場合、約10mmであり、ワーク202が存在しない場合約60mmである。
本実施形態によると、監視及び駆動制御される対象である可動部に検出マークが形成される。すなわち、搬送ユニット210の部材211の搬入部230側端部の上面に検出マーク213を、及び排出部260側端部の上面に検出マーク214を取り付ける。検出マーク213及び214は、直径5mmの赤い円形シールであり、CCDカメラ110で撮影する画像において、搬送ユニット210がどの位置にあっても、どちらかの検出マークが写り込むようになっている。なお、検出マーク213及び214は上記のものに限られるわけではなく、画像上で明確に判別可能なものであればよく、部材211自体の特有の形状等で代用することも可能である。
また、上下ユニット220の上部ユニット221においても、チャックシリンダ224の上面に検出マーク225、及びワークチャック223の上面に検出マーク226が取り付けられている。検出マーク225、226は、搬送ユニットに取り付けた検出マーク同様、直径5mmの赤い円形シールである。さらに、CCDカメラ110で撮影する画像において、上部ユニット221が如何なる位置にあっても、またチャックの開閉によらず、検出マーク225、226が写り込むよう構成されている。なお、検出マーク225、226は、検出マーク213、214と同じマークである必要は無く、画像上で明確に判別可能なものであればよい。
また、監視制御装置100の構成要素であるCCDカメラ110は、上述した組み立て部250の斜め上方、部品投入部側に約30°の方向に配置する。そして、搬送ユニット210、上下ユニット220、ワーク搬入部230、部品投入部240、ワーク排出部260を全て1枚の画像に収めるとともに、搬送ユニット210、上下ユニット220の各部の動作範囲も全て収めることができる。コントローラ120は、CCDカメラ110からの画像信号を受信して、所定の条件を満たす画像データをメモリ130に保存する。また、コントローラ120は、組み立て装置200の駆動制御も行うため、搬送ユニット210、上下ユニット220それぞれのサーボモータへ制御信号を送信する。
コントローラ120及びメモリ130は、本実施形態においては、パーソナルコンピュータ(PC)に内蔵のプログラム、メモリ、RS232Cといった外部出力ポート等によって構成する。また、本実施形態においては、コントローラ120は組み立て装置200の駆動制御も行うため、組み立て装置200の可動部(搬送ユニット210、上下ユニット220)のサーボモータを制御するモータドライバを内蔵する。なお、コントローラ120及びメモリ130はこれに限られるものではなく、専用のハードウェア、ファームウェア等で構成してもよい。また、コントローラ120及びメモリ130と、モータドライバを、別個のハードウェアとして構成し、互いに通信可能な構成としてもよい。例えば、コントローラ120及びメモリ130をPC及び内蔵プログラムで構成し、モータドライバをプログラマブルロジックコントローラ(PLC)で構成してもよい。
CCDカメラ110は、組み立て装置200の作動中、搬送ユニット210、上下ユニット220、及び搬送されてくるワークや部品、排出される組み立て済みワークを全て1枚の画像に収めた静止画を、ビデオレート(30Hz)で連続して取得し、コントローラ120へ送信する。この目的のため、CCDカメラ110として、1/4インチ41万画素CCD、焦点距離4.3mm(画角69.8°)、24ビット(RGB各8ビット)出力のものを用いる。しかし、CCDカメラ110としては、これに限られるものではなく、組み立て装置200の各部を1枚の画像に収めることが可能で、且つ検出マーク等の判別ができるものであればよい。
またコントローラ120は、CCDカメラ110から画像データを受信すると、検出マークの動きによる位置の変化を示す変化後の画像データを解析し、搬送ユニット210や上下ユニット220等の位置を認識し、認識結果に応じて内蔵のモータドライバを経て、搬送ユニット210又は上下ユニット220に内蔵されたサーボモータに対して制御信号を送信する。このようにして、本実施形態によれば、検出マークの位置の変化により、組み立て装置200をシーケンス動作させることができる。
さらに、搬送ユニット210や上下ユニット220の各動作ステップ終了時の位置を検出マークの位置により認識し、その動作ステップ終了時に相当する画像データをメモリ130に保存する。その他、コントローラ120は、上記の動作ステップ終了時に相当する画像データ、各動作ステップの所要時間、及び搬送ユニット210等のサーボモータ駆動電流値のモニタによる過負荷の発生有無に基づいて、組み立て装置200の作動中、異常を発生したか否かの監視を行う。
以下、フローチャート及びタイミングチャートを参照して、監視制御装置100及び組み立て装置200の動作について説明する。
図5及び図6に、本実施形態に係る組み立て装置200の動作のフローチャートを示す。また図7に、組み立て装置200の可動部である搬送ユニット210、上下ユニット中の上部ユニット221について動作のタイミングチャートを示す。
図7において、上部に示したS02等の記号501は、後述する組み立て準備完了、若しくは各可動部の動作終了判定ステップの実行タイミングを示す。また、各可動部の動作を横欄毎に示し、タイミングチャート線502がその横欄に存在する場合、各可動部はその横欄の左側欄503に示された動作を行うことを表す。どちらの動作を示す欄にも属さず、中間線上にタイミングチャート線502が存在する場合、その可動部は動作を行わず、その前状態を保持し続けることを表す。
まず、組み立て準備完了か否かを判定する(ステップS00)。この判定は、コントローラ120が行う。以下(i)〜(iii)の3条件全てを満たす場合、準備完了と判定する。
(i)ワーク搬入部230の入口231にワーク202が存在すること
(ii)ワーク排出部260の出口261に完成品204が存在しないこと
(iii)部品投入部240に部品203が存在すること
ワークや部品等の存在の有無は、以下の手順により調べることができる。
まず、事前準備として、CCDカメラ110を通じてワーク202、部品203及び完成品204が入口231等に存在する場合、及び存在しない場合の画像データをそれぞれ取得する。図8に示すように、取得した画像データを参照し、入口231や出口261の位置、部品の存在有無を調べる位置を特定し、関心領域001〜003としてその画像上の位置(例えば関心領域の左上端座標と右下端座標)をメモリ130に保存しておく。次に、関心領域001〜003にワーク202、部品203又は完成品204が存在する場合、存在しない場合のそれぞれについて、各関心領域内の平均信号値を求める。そして、各関心領域について、ワーク202、部品203又は完成品204が存在する場合の平均信号値と、存在しない場合の平均信号値との平均値を算出し、閾値Thd001〜Thd003とする。その閾値Thd001〜Thd003を予めメモリ130に保存しておく。
組み立て装置200の動作時においては、CCDカメラ110から送られてくる画像データに対し、メモリ130に保存した関心領域001〜003の位置に基づいて、関心領域001内の平均信号値AVG001、関心領域002内の平均信号値AVG002、関心領域003内の平均信号値AVG003をそれぞれ算出する。メモリ130から上述した閾値Thd001〜Thd003を呼び出し、平均信号値AVG001〜AVG003とそれぞれ比較する。平均信号値AVG001〜AVG003が、閾値Thd001〜Thd003より、ワーク202、部品203又は完成品204が存在する場合の参照画像データにおける平均信号値に近い場合、ワーク202、部品203又は完成品204が存在すると判定する。
なお、判定方法は上記の方法に限られるものではなく、別の方法を用いてもよい。例えば、上記と同様、事前にワーク202、部品203又は完成品204が存在する参照画像データを取得してメモリ130に保存しておく。また、上記同様に関心領域001〜003を設定する。
そして、組み立て装置200の動作時において、CCDカメラ110から受信した画像データと参照画像データとの間で、関心領域001〜003内の各画素で差分信号値の絶対値を算出し、その平均信号値(平均絶対偏差)を算出する。その平均絶対偏差が所定の許容範囲内であれば、ワーク202、部品203又は完成品204が存在する(または存在しない)と判定する。なお、上記の許容範囲は、組み立て装置が設置された場所の照明など環境条件によって左右される可能性があるため、実験的に決定しておくことが好ましい。
上記の判定方法に基づき、CCDカメラ110から連続的に受信した画像データに対し、逐次判定を行う。いずれかの条件を満たさない場合、コントローラ120は組み立て準備が完了していないと判断し、組み立て装置200のアイドル状態を維持する。また、受信した画像データは廃棄する。
一方、ある時点で、受信した画像データについて上記(i)〜(iii)の全ての条件を満たすと、コントローラ120は組み立て準備完了と判断する。そしてコントローラ120は、その画像データをメモリ130に保存するとともに、内蔵のモータドライバを通じて搬送ユニット210にワーク搬送路201に近づくよう前進動作させる制御信号を送信する。その制御信号に基づいて、搬送ユニット210がワークを掴むために前進動作する(ステップS01)。
次に、搬送ユニット210の前進動作が終了したか否か、及び組み立て装置200にワーク202や部品203の転落、位置ずれといった異常が発生していないかどうかを判定する(ステップS02)。
説明の便宜のため、まず搬送ユニット210の前進動作が終了したか否かの判定手順について説明し、その後異常発生の有無に関する判定について説明する。
係る判定は、搬送ユニット210に付された検出マーク213の重心位置及び面積が所定の条件を満たすか否かを判定することによって行う。以下にその方法を詳述する。
事前準備として、搬送ユニット210の前進動作終了時点に相当する参照画像データを取得する。図8に示すように、取得した参照画像データから、搬送ユニット210の前進動作終了時点における検出マーク213の存在すべき位置を含む関心領域101を設定し、メモリ130にその位置・範囲を記憶させておく。ここで関心領域101は、検出マーク213の位置検出に使用する領域であるため、正確な位置認識を行うために検出マーク213を完全に収めることができる大きさであることが好ましい。一方、位置認識の処理に必要な計算時間を減らすため、関心領域101は狭い方が好ましい。具体的には、関心領域101は、検出マーク213の画像上における面積の5倍〜100倍程度の大きさに設定することが好ましい。さらに参照画像データに基づいて、搬送ユニット210の前進動作終了時点における検出マーク213を示す画素の重心位置、画像中の面積をそれぞれ基準重心Gorg、基準面積Dorgとして算出する。そして基準重心Gorg、基準面積Dorgを予めメモリ130に記憶させておく。
図9に、ステップS02の動作手順のフローチャートを示す。
組み立て装置200の稼動時においては、コントローラ120がCCDカメラ110から受信した画像について、関心領域101のみに限定して検出マーク213の重心位置G・面積Dを調べ、基準重心、基準面積との比較で動作が完了したか否かを判定する。まず、関心領域の位置、範囲、及び基準重心Gorg、基準面積Dorgをメモリ130から取得する(ステップS201)。次に、判定を行う画像データを取得する(ステップS202)。その後、関心領域101内の画像データを、検出マークとそれ以外に分離可能なように2値化する(ステップS203)。2値化の閾値は組み立て装置200の設置環境等を勘案して経験的に設定する。
本実施形態では、1画素あたりのデータが赤(R)、緑(G)、青(B)各8ビットで表される。そこで関心領域101中の任意の画素の値P(=(R, G, B))とし、対応する2値化画像の任意の画素値をPbinとすると、検出マーク213は赤色であることから、例えば
Pbin = 1 (R≧128、G<32、B<32)(検出マーク213に相当)
Pbin = 0 (上記以外のとき)
とすることができる。
2値化が終了すると、検出マーク213に相当する(Pbin=1)画素の重心G、画素数の合計(面積)Dを算出する(ステップS204)。次に、重心Gと、メモリ130に記憶された基準重心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)。共に許容誤差範囲内であれば、搬送ユニット210は正常に前進動作(S01)を終了したと判定する。この場合、コントローラ120は、モータドライバを通じて、次の動作を実行させるための制御信号となる、同期信号を出力する(ステップS207)。
また、搬送ユニット10の前進動作が終了したと判定された画像データをメモリ130に保存する(ステップS208)。その際、保存される画像データが、どの動作ステップに対応するか判るよう、画像データに対して動作ステップに対応する名称を付ける。また、複数サイクル分の画像データを保存するため、サイクルの差異も名称に反映する。この実施形態では、画像名称を3桁の数値+拡張子で表す。最初の1桁目(最も左側の数値)をサイクル番号、残りの2桁をステップ番号とする。拡張子は、画像データの形式(.jpg,.bmp等)を示す。例えば、画像データの形式をJPEGとすると、2サイクル目のステップS02で保存された画像データの名称は、”202.jpg”と表される。なお、サイクル番号については、1から順に保存するサイクル数(本実施形態では3)までの番号を以下のように繰り返して用いる。
1→2→3→1→2→3→1→・・・
さらに、保存する画像データと関連付けて、動作終了と判定された時間、検出マークの重心G、面積D、制御信号の詳細等をメモリ130に保存する。
一方、ΔG、ΔDのどちらか一方でも、許容誤差範囲を超えた場合、搬送ユニット210の前進動作は完了していないと判断し、判定に使用した画像データを廃棄するとともに、次にCCDカメラ110から送られてくる画像に対して同様の判定手順を繰り返す。
次に、本実施形態に係る組み立て装置200に異常が発生していないかどうか判定について説明する。
異常発生の判定は、動作終了との判定が所定時間内に得られない場合、又はワーク202や部品203の配置に異常があるか否かを判定することにより行う。(ステップS209、ステップS210)。
搬送ユニット210や上部ユニット221といった可動部が、一動作に必要とする時間は予め予測できる。そのため、その予測できる時間を超えても、動作終了の判定ができない場合には、何らかの異常が発生していると考えられる。
画像データの取得(S202)後において、準備完了判定ステップ(S00)の条件が満たされてからの経過時間と、予め定められた閾値との比較を行う。閾値よりも経過時間が多い場合、許容時間内に動作終了と判定できず、異常発生と判定する(ステップS209)。上記閾値は、正常動作時に必要な所要時間の数倍〜数十倍程度が好ましい。例えば、搬送ユニット210の前進動作の所要時間が1秒の場合、上記閾値は5秒、10秒等の値とする。なお、CCDカメラ110の撮影間隔は一定のため、1動作期間内に取得された画像データの枚数をカウントし、その合計に撮影間隔の時間を乗ずることにより、その動作期間中の経過時間を知ることができる。したがって、動作終了判定を行った画像の枚数を経過時間の代わりの指標として用いてもよい。
異常発生と判定された場合、最後に解析を行った画像データをメモリ130に保存し(ステップS211)、監視制御装置100は、組み立て装置200を停止する(ステップS212)。
また、経過時間から異常が検出されない場合でも、ワークや部品が所定の位置に存在しているか否かにより、異常発生の有無を判定する(ステップS210)。この判定は、搬送部210の動作が終了し、組み立て装置200が静止状態となった時点で行う。搬送ユニット210が未だ前進動作中に判定を行っても、その後の動作でワーク202や部品203が転落するといった異常が発生する可能性があるためである。そこで、ステップ210は、ステップS206の後、動作が終了したと判定された画像データに基づいて、ステップS00の稼動準備が整ったか否かの判定と同様の方法により実施する。すなわち、組み立て装置200が正常動作している場合、各動作ステップの終了時点において、ワークや部品は、それぞれ所定の位置に存在しているはずである。ステップS02では、ワーク202がワーク搬入路230の入口231に存在し、部品203が部品投入部240に存在しているはずである。そこで、搬入ユニット210の前進動作が終了したと判定された画像データに対し、ステップS00と同様、正常動作時にワーク202や部品203が存在しているはずの位置に関心領域を設定し、その関心領域内の信号値を調べて、ワーク等が存在しているか否かを調べる。そして、ワーク202、部品203がそれぞれ所定位置に存在していると判定されれば、異常無と判定する。一方、ワーク202、若しくは部品203のどちらか一方でも存在しない場合、異常発生と判定し、判定に使用した画像データをメモリ130に保存し(ステップS211)、組み立て装置200を停止する(ステップS212)。
なお、装置の停止とともに、装置の操作者に対して警告を発生するよう構成してもよい。係る警告は、装置の作動状態を監視するモニタ140上への警告表示、又は警告音の発生等で行うことが可能である。
上述した動作終了判定方法及び異常発生有無の判定方法は、以下に述べるステップS04、S06等、組み立て装置200の可動部の各動作終了判定ステップにおいても同様に使用する。ただし、着目する検出マーク、設定する関心領域、及び基準となる重心位置Gorg、面積Dorgは、各動作終了判定ステップについて最適化する。この最適化についても、上述した事前準備と同様の方法で、動作終了判定を行う可動部の動作終了時を示す参照画像データを予め取得しておき、その参照画像データから着目する検出マークの重心、面積を調べておけばよい。
このように、検出マークの重心位置、及び面積を検出し、理想状態におけるそれらと比較することにより、その検出マークが付された可動部について正確な位置決定が可能となり、装置の信頼性を向上させることが可能である。
コントローラ120が、搬送ユニット210の前進動作は終了したと判定した場合、コントローラ120は、モータドライバを通じて搬送ユニット210のサーボモータに搬送ユニット210を後退動作させるよう制御信号を送信する。その制御信号に基づいて、搬送ユニット210はワークを保持したまま後退動作を行う(ステップS03)。なお、この後退動作に伴って、ワーク202に取り付ける部品203が、部品投入部より組み立て部250に移動する。
次に、搬送ユニット210の後退が終了したか否かを判定する(ステップS04)。
その判定方法はステップS02と同様である。即ち、予め設定した関心領域内で検出マーク213の重心位置と面積を算出し、事前に求められているそれらの値との差異が許容範囲内に収まるか否かで判定する。また、ステップS02と同様に、動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存する。異常発生の有無判定も同様に実施する。
コントローラ120が、搬送ユニット210の後退動作は終了したと判定した場合、モータドライバ140に対し、上部ユニット221を下降させる指令を出す。モータドライバ140は、係る指令を受け取ると、上部ユニット221のサーボモータに制御信号を送信する。その制御信号に基づいて、上部ユニット221が下降する(ステップS05)。
その後、上部ユニット221の下降動作が終了したか否かを判定する(ステップS06)。その判定方法はステップS02と同様である。即ち、予め設定した関心領域内で検出マーク225の重心位置と面積を算出し、事前に求められているそれらの値との差異が許容範囲内に収まるか否かで判定する。また、ステップS02と同様に、動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存する。
本実施形態では、CCDカメラ110を、組み立て部250の直上でなく、斜め30°の方向に配置したことにより、上部ユニット221の上下運動も、画像上で位置の変化として捉えることを可能としたので、複数のCCDカメラを用いることを要しない。なお、正確に可動部の位置を把握するために、CCDカメラ110で撮影した画像上において、全ての可動部の動作距離が、10画素以上となるように配置することがさらに好ましい。
コントローラ120が、上部ユニット221の下降動作は終了したと判定した場合、次の動作として、ワークチャック223を閉じるよう、モータドライバを通じて上部ユニット221のサーボモータに制御信号を送信する。その制御信号に基づいて、ワークチャック223が閉じて組み立て部250にある部品203を捕捉する(チャック動作)(ステップS07)。
その後、ワークチャック223のチャック動作が終了したか否かを判定する(ステップS08)。なお判定方法はステップS02と同様であり、予め設定された関心領域内でワークチャック223に付された検出マーク226の重心位置、面積を調べて判定する。また、動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様である。
コントローラ120が、ワークチャック223のチャック動作は終了したと判定した場合、コントローラ120は、モータドライバを通じて上部ユニット221のサーボモータに上部ユニット221を上昇させるよう制御信号を送信する。その制御信号に基づいて、上部ユニット221は部品を保持したまま上昇する(ステップS09)。
その後、上部ユニット221の上昇動作が終了したか否かを判定する(ステップS10)。この判定は、上部ユニット221に付された検出マーク225を用いる他、上記S02と同様に実施する。また、動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様である。
コントローラ120が、上部ユニット221の上昇動作は終了したと判定した場合、次の動作として、搬送ユニット210を送り動作させ、その後前進動作させるよう、モータドライバを通じて搬送ユニット210のサーボモータに制御信号を送信する。その制御信号に基づいて、搬送ユニット210はワーク202を組み立て部250に搬送するため、部品を保持したままワーク搬送路201に沿って送り動作し、その後前進動作する(ステップS11)。
ステップS02と同様の判定方法により、搬送ユニット210の移動が完了したか否かを判定する(ステップS12)。同様に、搬送ユニット210の移動が完了したと判定された画像データを保存し、それ以外の画像データの廃棄も同様に実施する。ただし、搬送ユニット210がワーク排出部側へ移動したことにより、ワーク搬入部側の検出マーク213が、上部ユニット221に隠れて見えなくなるため、ワーク排出部側の検出マーク214を用いて判定を行い、関心領域も検出マーク214の存在位置を含むように設定しておく。
コントローラ120は、搬送ユニット210の移動は終了したと判定した場合、次の動作として、上部ユニット221を下降させるよう、モータドライバを通じて上部ユニット221のサーボモータに制御信号を送信する。その制御信号に基づいて、上部ユニット221が下降し、組み立て部250にあるワーク202に、部品203を取り付ける(ステップS13)。この時、下部ユニット222は、ワーク202を固定する。
ステップS04と同様の判定方法により、上部ユニット221の下降動作が終了したか否か、判定する(S14)。判定に用いる検出マークも同様であり、また、動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様である。
コントローラ120は、上部ユニット221の下降動作は終了したと判定した場合、次の動作として、搬送ユニット210に後退動作させ、その後戻り動作をさせる。同時に、ワークチャック223に対し、部品203をリリースするよう開く動作(アンチャック動作)を行わせる。そのため、コントローラ120は、モータドライバを通じて、搬送ユニット210のサーボモータに制御信号を送信する。その制御信号に基づき、搬送ユニット210がワーク202をリリースして後退し、その後戻り動作して原点位置に復帰する。同様に、上部ユニット221のサーボモータに制御信号を送信する。その制御信号に基づき、ワークチャック223はアンチャック動作を行う(ステップS15)。
次に、搬送ユニット210の移動が完了し、原点位置に復帰したか否かを判定する。同時に、ワークチャック223のアンチャック動作が完了したか否か判定する(ステップS16)。
搬送ユニット210の移動完了、アンチャック動作の完了は、それぞれ上述してきた判定方法と同様の方法で行われるが、ステップS16では、それらを同一の画像上で同時に実行することが可能である。即ち、搬送ユニット210の検出マーク213の重心位置、面積を調べるための関心領域と、ワークチャック223に付された検出マーク226の重心位置、面積を調べるための関心領域をそれぞれ設定し、関心領域毎に判定を行う。
それぞれの判定の結果、搬送ユニットの移動完了、アンチャック動作の完了とも確認できると、コントローラ120は、次の動作として、上部ユニット221を上昇させるよう、モータドライバを通じて上部ユニット221のサーボモータに制御信号を送信する。その制御信号に基づき、上部ユニット221は上昇する(ステップS17)。
その後、ステップS10と同様に、上部ユニット221の上昇動作が終了したか否かを判定する(ステップS18)。また、動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様に行う。
コントローラ120が、上部ユニット221の上昇動作は終了したと判定した場合、次の動作として、部品組み付け済みのワーク(完成品)204を捕捉するため、搬送ユニット210を前進させる。そのため、コントローラ120は、モータドライバを通じて搬送ユニット210のサーボモータに対して制御信号を送信する。その制御信号に基づいて、搬送ユニット210は前進動作する(ステップS19)。
ステップS19で搬送ユニット210の前進が終了したか否か判定する(ステップS20)。動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様に行う。
ステップS20で、搬送ユニット210の前進が終了したと判定された場合、コントローラ120は、モータドライバを通じて搬送ユニット210のサーボモータに対して後退動作をさせる制御信号を送信する。その制御信号に基づいて、搬送ユニット210は完成品204を保持したまま後退する(ステップS21)。
そして、搬送ユニットの後退を確認する(ステップS22)。動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様に行う。
ステップS22で、搬送ユニット210の後退が終了したと判定された場合、コントローラ120は、モータドライバを通じて、搬送ユニット210のサーボモータに対して送り動作及び前進動作をさせる制御信号を送信する。その制御信号に基づき、搬送ユニット210は完成品204をワーク排出部260へ排出するために、完成品204を保持したまま、送り動作し、その後前進する(ステップS23)。
次に、ステップS23の搬送ユニット210の前進が終了したか否か判定する(ステップS24)。動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様に行う。
ステップS24で、搬送ユニット210の前進終了を確認すると、完成品204がワーク排出部260のワーク出口261に排出される。そして、コントローラ120は、モータドライバを通じて搬送ユニット210のサーボモータに対して、搬送ユニット210が、後退動作した後、戻り動作を行うよう制御信号を送信する。そしてその制御信号に基づき、搬送ユニット210は原点位置に復帰する(ステップS25)。
最後に、搬送ユニット210が原点位置に復帰したか否かを確認する(ステップS26)。ステップS26では、搬送ユニット210に付された検出マーク213を用いて、他のステップS16同様に判定する。動作終了判定基準を満たさない画像データは廃棄し、判定基準を満たした画像データはメモリ130に保存することも同様に行う。
上記のように、CCDカメラにより撮像された動画を処理するのではなく、動作終了時点での静止画を用い、また画像全域を用いずに、関心領域のみを対象として判定処理を行うことで、高速に処理を行うことが可能となり、若しくは安価なプロセッサを用いて処理することが可能となる。また上述したように、画像データを解析し、各可動部の位置を確認することで、他のセンサがなくとも、原点位置確認やオーバーラン検知を行うことが可能となり、且つ各部の動作完了を判定した後に、次の動作を行うよう指令を出すことで、誤動作を防止することが可能となる。さらに、検出マークの重心位置、面積を判定に用いることで、各可動部の位置を精密に評価することが可能となり、誤動作の防止をより確実に行うことができる。また、ステップS02〜S26の各動作終了判定ステップにおいて、各可動部の動作完了と判定した画像データを保存することにより、事後的にそれらの画像を参照することで組み立て装置200の動作解析を簡便に行うことが可能となり、特に異常発生時における原因の究明を容易に行うことが可能となる。さらに各可動部の動作未了と判定した画像データを廃棄することにより、保存するデータ量を減らすことができる。
次に、メモリ130に保存した画像データから、組み立て装置200の動作状態の再現を行う場合の動作について説明する。
図10に、動作再現時のモニタ140の画面の概略構成図を示す。
画像表示部141は、メモリ130に保存された画像データを表示する。データ表示部142は、画像表示部141に表示された画像に関連する情報(例えば、時間、動作終了判定対象可動部についての位置認識結果等)を表示する。また、操作部143は、表示する画像データを時間的に連続表示させたり、特定の画像データを呼び出して表示するといった機能をユーザに提供する。また、呼び出した画像データに基づいて、上述したステップS02、S04等の動作終了判定処理を模擬的に行わせる機能も提供する。
ユーザは、異常発生時の画像データを表示させ、関連情報を確認したり、異常発生までの数サイクル分の各動作ステップ終了後の画像を連続的に表示させること等により、容易に異常発生原因を突き止めることができる。
また、異常発生箇所を検知し易くするため、上述した異常判定方法におけるステップS210と同様の処理を行い、その結果を表示するようにしてもよい。具体的には、以下のような処理を行う。
各動作終了判定ステップ(S02、S04、S06等)に相当する状態において、入口231、部品投入部240及び出口261等に、ワーク202や部品203等が本来存在すべきところにのみ存在する参照画像データを事前に取得し、メモリ130に保存しておく。この参照画像データは、各動作終了判定ステップにおける、組み立て装置200の理想状態を示すものである。
そして、組み立て装置200の動作監視中に保存された画像データと、対応する動作ステップの参照画像データとの間で、各画素間の差分絶対値を算出し、その差分絶対値を画素値とした差分画像を作成する。なお、差分画像は、上述したステップS210で設定される関心領域に限定して、差分絶対値を計算してもよい。さらに、差分画像は、差分絶対値が予め定めた閾値を超える画素の値を1とし、その他の画素の値を0とする2値画像で表してもよい。
このように差分画像を作成すると、差分画像は、異常が全く生じていない動作ステップでは、ほぼ全画素について画素値が0となる。一方、異常を生じた動作ステップでは、異常が生じた場所に相当する画素値が0以外の値を取るようになる。
そして、画像表示部141には、参照画像データ、保存された画像データ、及び差分画像を並べて表示させる。このようにして、異常発生時の数ステップ前から、異常発生が検知されて組み立て装置200が停止した時点まで、ステップ毎に上記の3種類の画像を並べて表示することで、どのステップから異常が生じ始めたのかが容易に把握できる。
また、保存されている画像データが、各動作の終了時の画像であるため、各可動部も静止して状態で写っており、画像上ではっきりと視認可能となり、上記動作解析において問題箇所を発見することが容易である。さらに、参照するデータ数も最小限で済み、ユーザの負担を軽減することが可能となる。
なお、上述してきた実施形態は、本発明を説明するためのものであり、本発明は、これらの実施形態に限定されるものではない。