(57)【要約】【課題】カメラを用いてロボット制御システムの異常診断を精度良く行う。【解決手段】作業エリア３８，５７に対して所定の位置関係となる位置にマーク部６１，６２を設け、ロボット１１のキャリブレーション時にハンドカメラ４０と固定カメラ５１の両方でマーク部６１，６２を撮像して、その画像を処理してマーク部６１，６２の位置を検出して記憶部４６に記憶する。その後、検査時にハンドカメラ４０と固定カメラ５１の両方でマーク部６１，６２を撮像して、その画像を処理してマーク部６１，６２の位置を検出し、そのマーク部６１，６２の位置の座標値を、記憶部４６に記憶されているキャリブレーション時のマーク部６１，６２の位置の座標値と比較して、それらの比較結果に基づいてロボット制御システムの異常診断を行うと共に、異常ありと判定した場合には、異常発生箇所を特定して、適切な対処方法を表示や音声によって使用者に通知する。【選択図】図２
2020116717.tif 000002
【特許請求の範囲】
【請求項１】
ワークを作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記ロボットのアームに取り付けられたハンドカメラと、
前記ロボットのアーム可動領域よりも高い場所に下向きに固定され、前記作業エリアに供給されたワークを上方から撮像する固定カメラと、
前記ハンドカメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系（以下「ハンドカメラのビジョン座標系」という）の座標値で検出する第１画像処理部と、
前記固定カメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系（以下「固定カメラのビジョン座標系」という）の座標値で検出する第２画像処理部と、
前記ハンドカメラのビジョン座標系の座標値及び前記固定カメラのビジョン座標系の座標値を前記ロボットのアームの動作を制御する座標系である世界座標系の座標値に変換する座標変換部と、
前記ロボットのアームの位置を前記世界座標系の座標値で制御する制御部と
を備えたロボット制御システムにおいて、
前記固定カメラの視野に収まる範囲内で前記作業エリアに対して所定の位置関係となる位置に設けられたマーク部と、
前記ハンドカメラの視野内に前記マーク部が収まる位置へ前記ハンドカメラを移動させて前記ハンドカメラで前記マーク部を撮像して、その画像を前記第１画像処理部で処理して前記マーク部の位置を前記ハンドカメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作（以下「ハンドカメラ画像からのマーク部位置検出動作」という）と、前記固定カメラで前記マーク部を撮像して、その画像を前記第２画像処理部で処理して前記マーク部の位置を前記固定カメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作（以下「固定カメラ画像からのマーク部位置検出動作」という）とを実行する検査実行部と、
前記検査実行部が過去に行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値（以下「過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値」という）を記憶すると共に、前記検査実行部が過去に行った前記固定カメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値（以下「過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値」という）を記憶する記憶部とを備え、
前記検査実行部は、今回行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値と比較すると共に、今回行った前記固定カメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値と比較し、それらの比較結果に基づいて異常診断する、ロボット制御システム。
【請求項２】
前記検査実行部は、異常ありと判定した場合には前記今回の前記マーク部の位置の座標値と前記過去の前記マーク部の位置の座標値との比較結果の組み合わせに基づいて異常発生箇所を特定する、請求項１に記載のロボット制御システム。
【請求項３】
前記検査実行部は、前記異常診断の結果を表示及び／又は音声により作業者に通知する処理を行う、請求項１又は２に記載のロボット制御システム。
【請求項４】
前記検査実行部は、前記異常発生箇所を特定した場合にはその異常発生箇所と対処方法を表示及び／又は音声により作業者に通知する処理を行う、請求項２に記載のロボット制御システム。
【請求項５】
前記検査実行部は、生産開始前に行った前記ハンドカメラ画像からのマーク部位置検出動作及び前記固定カメラ画像からのマーク部位置検出動作で検出した当該生産開始前の前記マーク部の位置の座標値を前記記憶部に記憶されている前記過去の前記マーク部の位置の座標値と比較して各位置の座標値の変化量を算出し、いずれか１つでも前記座標値の変化量が許容誤差に相当する所定の閾値を超えていれば異常ありと判定する、請求項１乃至４のいずれかに記載のロボット制御システム。
【請求項６】
前記検査実行部は、生産中に前記固定カメラ画像からのマーク部位置検出動作を実行して当該生産中の前記マーク部の位置の座標値を検出し、当該生産中の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値と比較して、当該生産中の比較結果に基づいて異常診断し、その結果、異常ありと判定した場合には前記ハンドカメラ画像からのマーク部位置検出動作を実行して前記マーク部の位置の座標値を検出し、そのマーク部の位置の座標値を前記記憶部に記憶されている、前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値と比較し、その比較結果と前記生産中の比較結果との組み合わせに基づいて異常発生箇所を特定する、請求項１乃至５のいずれかに記載のロボット制御システム。
【請求項７】
前記検査実行部は、生産中に前記ロボットがアーム動作を所定時間以上停止している期間に前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、前記固定カメラで前記マーク部を撮像するのに邪魔にならない位置へ前記ロボットのアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行して異常診断する、請求項１乃至５のいずれかに記載のロボット制御システム。
【請求項８】
前記検査実行部は、生産中に前記ハンドカメラでワークを撮像して当該ワークの位置を検出して前記ロボットが所定の作業を行う場合には、生産中に前記ハンドカメラでワークを撮像する際に、当該ワークと前記マーク部を視野に収めて撮像して前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、前記固定カメラで前記マーク部を撮像するのに邪魔にならない位置へ前記ロボットのアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行して異常診断する、請求項１乃至５のいずれかに記載のロボット制御システム。
【請求項９】
前記マーク部は、複数箇所に設けられ、
前記検査実行部は、前記ハンドカメラ画像からのマーク部位置検出動作及び前記固定カメラ画像からのマーク部位置検出動作で前記マーク部毎にそのマーク部の位置の座標値を検出し、前記マーク部毎にそのマーク部の位置の座標値を前記記憶部に前記マーク部毎に記憶されている前記過去の前記マーク部の位置の座標値と比較する、請求項１乃至８のいずれかに記載のロボット制御システム。
【請求項１０】
前記ロボットは、前記作業エリアに供給されたワークをピックアップして別の作業エリアに移し替える作業を行い、
前記別の作業エリアについても、前記固定カメラの視野に収まる範囲内で当該別の作業エリアに対して所定の位置関係となる位置にマーク部が設けられ、
前記検査実行部は、前記固定カメラの視野に前記作業エリアと前記別の作業エリアの両方の前記マーク部を収めて撮像する、請求項１乃至９のいずれかに記載のロボット制御システム。
【請求項１１】
前記供給装置が複数並設されて前記作業エリアが複数並設され、
前記作業エリア毎に前記マーク部が設けられている、請求項１乃至１０のいずれかに記載のロボット制御システム。
【請求項１２】
前記検査実行部は、前記ハンドカメラの視野内に全ての前記マーク部を同時に収めることができない場合には、前記ハンドカメラによる前記マーク部の撮像を２回以上に分けて行う、請求項８乃至１１のいずれかに記載のロボット制御システム。
【請求項１３】
前記過去の前記マーク部の位置の座標値は、ロボット制御システムをキャリブレーションしたときに前記ハンドカメラ画像からのマーク部位置検出動作及び前記固定カメラ画像からのマーク部位置検出動作を実行して検出した前記マーク部の位置の座標値である、請求項１乃至１２のいずれかに記載のロボット制御システム。
【請求項１４】
前記第２画像処理部は、生産中に前記固定カメラで撮像した画像を処理してその画像に含まれるワークの位置を検出する場合には、検出対象のワークの最寄りの前記マーク部の位置を基準点としてその基準点からの相対位置で当該検出対象のワークの位置を検出する、請求項１乃至１３のいずれかに記載のロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、異常診断機能を備えたロボット制御システムに関する技術を開示したものである。
【背景技術】
【０００２】
ワークの把持、搬送、作業を目的とするロボットシステムにおいて、高精度な位置決めが求められる用途やワーク位置の教示を自動化した用途においては、ロボットのアーム先端部に取り付けられたカメラ（ハンドカメラ）や、ワーク供給装置や作業対象部の上方に固定配置されたカメラ（固定カメラ）を使ってワークの位置座標や作業対象部の位置座標を検出し、ワーク把持位置や作業対象位置を自動的に補正するシステムが使用される。
【０００３】
この様なカメラ（２次元）で撮像した画像による画像処理結果を用いて作業位置をロボットに指示する場合、それぞれの座標系つまりカメラの座標系であるビジョン座標系（２次元）とロボットの座標系（３次元）が異なるため、両座標系の相対位置を計測して座標系の変換を行う必要があり、この変換式及び補正パラメータを求めることをキャリブレーションと呼んでいる。
【０００４】
ロボットの設置時にキャリブレーションを実施してロボット座標系を整えた後、ロボットの運用を続けていると、運用開始後のロボット及び設置台の経年変化、ロボット動作やロボットのアーム移動時の振動、衝撃或は周辺機器の変更等によって、ロボット座標系が変化することがあり、これがロボットの作業精度を悪化させる要因となる。
【０００５】
特に、ワーク供給装置や作業対象部の上方にロボットに固定配置された固定カメラは視野が広く、位置検出精度の悪化がロボットの作業精度を悪化させる要因となり、システムとして求められる作業精度を確保できず、生産の継続が困難になることがある。
【０００６】
近年、特許文献１（特開２０１８−０３４２７１号公報）に記載されているように、ロボットによるワークの搬送作業が失敗したときに、ロボットのアーム先端部に取り付けたカメラを使用して失敗の要因を特定する方法が提案されている。この特許文献１の失敗要因の特定方法では、ロボット座標系における基準位置及び基準方向を表す基準マークをキャリブレーションステージに設置すると共に、ロボットのアーム先端のハンドでマスターワークを把持してキャリブレーションステージの所定位置に載置し、更に、ロボットのアームの先端部に取り付けたカメラをキャリブレーションステージの上方に移動させて、そのカメラの視野内に基準マークとマスターワークを収めて撮像し、その画像を処理して、基準マークの位置及び向きのずれ量とマスターワークの位置及び向きのずれ量を計測して、それらのずれ量に基づいて失敗の要因がカメラにあるのか、ロボットにあるのかを判定するようにしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１８−０３４２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、上記特許文献１では、基準マークを設けたキャリブレーションステージの位置や向きがずれている場合には、失敗の要因がカメラにある（カメラの位置や向きがずれている）と誤判定したり、或は、失敗の要因がロボットにある（ロボット座標系がずれている）と誤判定する可能性がある。しかも、ロボットのハンドでマスターワークを把持する際に、マスターワークの位置がずれている場合には、ロボットのハンドでマスターワークを把持する把持位置がずれるため、キャリブレーションステージに載置するマスターワークの位置もずれてしまい、それによって失敗の要因を誤判定する可能性がある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、ワークを作業エリアに供給する供給装置と、前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、前記ロボットのアームに取り付けられたハンドカメラと、前記ロボットのアーム可動領域よりも高い場所に下向きに固定され、前記作業エリアに供給されたワークを上方から撮像する固定カメラと、前記ハンドカメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系（以下「ハンドカメラのビジョン座標系」という）の座標値で検出する第１画像処理部と、前記固定カメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系（以下「固定カメラのビジョン座標系」という）の座標値で検出する第２画像処理部と、前記ハンドカメラのビジョン座標系の座標値及び前記固定カメラのビジョン座標系の座標値を前記ロボットのアームの動作を制御する座標系である世界座標系の座標値に変換する座標変換部と、前記ロボットのアームの位置を前記世界座標系の座標値で制御する制御部とを備えたロボット制御システムにおいて、前記固定カメラの視野に収まる範囲内で前記作業エリアに対して所定の位置関係となる位置に設けられたマーク部と、前記ハンドカメラの視野内に前記マーク部が収まる位置へ前記ハンドカメラを移動させて前記ハンドカメラで前記マーク部を撮像して、その画像を前記第１画像処理部で処理して前記マーク部の位置を前記ハンドカメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作（以下「ハンドカメラ画像からのマーク部位置検出動作」という）と、前記固定カメラで前記マーク部を撮像して、その画像を前記第２画像処理部で処理して前記マーク部の位置を前記固定カメラのビジョン座標系の座標値で検出する動作（以下「固定カメラ画像からのマーク部位置検出動作」という）とを実行する検査実行部と、前記検査実行部が過去に行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値（以下「過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値」という）を記憶すると共に、前記検査実行部が過去に行った前記固定カメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値（以下「過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値」という）を記憶する記憶部とを備え、前記検査実行部は、今回行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値と比較すると共に、今回行った前記固定カメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値と比較し、それらの比較結果に基づいて異常診断するようにしたものである。
【００１０】
この構成では、ロボットのアームに取り付けられたハンドカメラと、ロボットのアーム可動領域よりも高い場所に下向きに固定された固定カメラとの両方で、作業エリアに対して所定の位置関係で設けられたマーク部を撮像して、ハンドカメラの画像と固定カメラの画像の両方で同じマーク部の位置を検出して異常診断するため、前記特許文献１で誤判定の要因となっていたキャリブレーションステージやマスターワークを使用せずに異常診断することができる。しかも、ハンドカメラと固定カメラとの両方で同じマーク部を撮像するため、カメラの位置ずれかマーク部の位置ずれかを判別することができ、異常診断の精度を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１はロボット制御システムの外観を示す正面図である。
【図２】図２はロボット制御システムにおけるマーク部の配置を説明する平面図である。
【図３】図３はトレー搬送装置の上面に設けるマーク部の配置を説明する平面図である。
【図４】図４はロボット制御システムの電気的構成を示すブロック図である。
【図５】図５はキャリブレーション時マーク部位置検出・記憶プログラムの処理の流れを示すフローチャートである。
【図６】図６はロボット制御システム異常診断プログラムの一部の処理の流れを示すフローチャート（その１）である。
【図７】図７はロボット制御システム異常診断プログラムの一部の処理の流れを示すフローチャート（その２）である。
【図８】図８はロボット制御システム異常診断プログラムの一部の処理の流れを示すフローチャート（その３）である。
【発明を実施するための形態】
【００１２】
以下、本明細書に開示した一実施例を図面を用いて説明する。
まず、図１に基づいてロボット１１の構成を説明する。
【００１３】
ロボット１１は、例えば５軸垂直多関節ロボットであり、工場フロア１２に設置された固定ベース１３と、この固定ベース１３上に第１関節軸１４（Ｊ１）を中心に回転可能に設けられた第１アーム１５と、この第１アーム１５の先端に第２関節軸１６（Ｊ２）によって旋回可能に設けられた第２アーム１７と、この第２アーム１７の先端に第３関節軸１８（Ｊ３）によって旋回可能に設けられた第３アーム１９と、この第３アーム１９の先端に第４関節軸２０（Ｊ４）によって旋回可能に設けられた手首部２１と、この手首部２１に第５関節軸２２（Ｊ５）を中心に回転可能且つ交換可能に取り付けられたエンドエフェクタ２３とから構成されている。これにより、手首部２１に取り付けたエンドエフェクタ２３は、その手首部２１の関節軸である第４関節軸２０によって旋回動作するようになっている。
【００１４】
この場合、エンドエフェクタ２３は、例えば、吸着ノズル、ハンド、グリッパ、溶接機等のいずれであっても良い。ロボット１１の第１〜第５の各関節軸１４，１６，１８，２０，２２は、それぞれサーボモータ２５〜２９（図４参照）により駆動されるようになっている。図４に示すように、各サーボモータ２５〜２９には、それぞれ回転角を検出するエンコーダ３１〜３５が設けられ、各エンコーダ３１〜３５で検出した回転角の情報がサーボアンプ３６を経由して制御部３７にフィードバックされる。これにより、制御部３７は、各エンコーダ３１〜３５で検出した各サーボモータ２５〜２９の回転角が各々の目標回転角と一致するようにサーボアンプ３６を介して各サーボモータ２５〜２９をフィードバック制御することで、ロボット１１の各アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の位置を各々の目標位置にフィードバック制御する。
【００１５】
図４の構成例では、サーボアンプ３６は、複数のサーボモータ２５〜２９をフィードバック制御する多軸アンプであるが、サーボモータ２５〜２９を１台ずつ別々のサーボアンプでフィードバック制御するようにしても良い。
【００１６】
図１及び図２に示すように、ロボット１１のアーム可動領域（手首部２１先端側のエンドエフェクタ２３が移動可能な領域）の所定位置には、作業対象となるワーク３０を一定の高さ位置の作業エリア３８に供給する供給装置３９が設置されている。この供給装置３９は、コンベアで構成したものであっても良いし、振動式パーツフィーダ等、どの様な構成のパーツフィーダを用いても良く、要は、作業エリア３８の高さ位置が既知の一定の高さ位置であれば良い。本実施例では、複数台の供給装置３９が並設されている。
【００１７】
図１に示すように、ロボット１１と複数台の供給装置３９との間には、トレー搬送装置５５が設置され、このトレー搬送装置５５によって空のトレー５６が供給装置３９の作業エリア３８の近くに配置された別の作業エリア５７まで搬入される。ロボット１１は、各供給装置３９の作業エリア３８に供給されたワーク３０をエンドエフェクタ２３でピックアップし、当該ワーク３０をトレー搬送装置５５の作業エリア５７で停止しているトレー５６に移し替えて整列させる作業を行う。ロボット１１が所定数のワーク３０をトレー５６に移し替える毎に、トレー搬送装置５５が搬送動作を再開して当該トレー５６を搬出し、それと入れ替わりに次の空のトレー５６を搬入する。
【００１８】
図１及び図２に示すように、ロボット１１のアーム先端部である手首部２１には、作業エリア３８に供給されたワーク３０を上方から撮像するハンドカメラ４０が取り付けられている。このハンドカメラ４０は、２次元の画像を撮像する２次元のカメラであり、光軸が第５関節軸２２と平行で、且つ、ハンドカメラ４０のレンズ４１が第５関節軸２２の先端側（アーム先端側）に位置するように固定されている。
【００１９】
更に、ロボット１１のアーム可動領域よりも高い場所に設置された固定構造物５０（例えばロボット防護柵の天井）の所定位置には、固定カメラ５１が下向きに固定され、そのレンズ５２側が下方に向けられている。この固定カメラ５１は、供給装置３９の作業エリア３８に供給されたワーク３０及びトレー５６に移し替えられたワーク３０を視野に収めて上方から撮像する２次元のカメラとして使用される。
【００２０】
供給装置３９の作業エリア３８に供給されたワーク３０を撮像する場合には、要求される分解能やロボット１１のアーム可動領域内における作業エリア３８の位置等によってハンドカメラ４０と固定カメラ５１とを使い分けるようにしている。ここで、固定カメラ５１の視野とハンドカメラ４０の視野は、ロボット１１のアーム可動領域よりも狭い。ハンドカメラ４０と固定カメラ５１とを比較すると、視野は固定カメラ５１の方が広いが、分解能（１ピクセル当たりの撮像対象の実際の長さ）はハンドカメラ４０の方が細かく、高精度の画像処理が可能である。従って、例えば、作業エリア３８上のワーク３０のサイズが小さくて細かい分解能が要求される場合には、ハンドカメラ４０を使用し、また、固定カメラ５１の視野から外れた位置に設置された作業エリア３８についてはハンドカメラ４０を使用するようにすれば良い。また、固定カメラ５１の視野内に複数の作業エリア３８が収まる場合には、固定カメラ５１の視野内に複数の作業エリア３８を収めて撮像すれば、複数の作業エリア３８上のワーク３０の画像処理を能率良く行うことかできる。或は、図２に示すように、複数の作業エリア３８が存在する場合に、作業エリア３８毎にハンドカメラ４０を移動させてワーク３０を撮像するようにしても良い。
【００２１】
図２に示すように、固定カメラ５１の視野に収まる範囲内で各供給装置３９の作業エリア３８毎にその作業エリア３８に対して所定の位置関係となる位置にマーク部６１が１個又は複数個ずつ設けられている。各マーク部６１は各供給装置３９とそれぞれ一体化しており、各供給装置３９の位置がずれた場合は各マーク部６１も同方向に同量だけ位置ずれが起きる様に設定されている。各マーク部６１の形状は、画像処理により各マーク部６１の中心等の位置を正確に認識しやすい形状、例えば円形に形成されている。
【００２２】
トレー搬送装置５５の作業エリア５７についても、固定カメラ５１の視野に収まる範囲内で作業エリア５７に対して所定の位置関係となる位置に１個又は複数個のマーク部６２が設けられている。各マーク部６２はトレー搬送装置５５やトレー５６とそれぞれ一体化しており、トレー搬送装置５５やトレー５６の位置がずれた場合は各マーク部６２も同方向に同量だけ位置ずれが起きる様に設定されている。各マーク部６２の形状は、画像処理により位置を正確に認識しやすい形状、例えば円形に形成されている。
【００２３】
各マーク部６１，６２は、後述する異常診断で使用される他に、生産中に固定カメラ５１の視野に各マーク部６１，６２を収めて撮像する場合には、ワーク３０の位置は、最寄りのマーク部６１，６２の位置からの相対位置の座標値で表現される。この為にマーク部６１，６２をキャリブレーション時にあらかじめワールド座標上の座標値（Ｘ1w，Ｙ1w）を計測し、記憶部４６に記憶しておく。
【００２４】
一般に、マーク部６１，６２の配置は、図２に示す供給装置３９のようにワーク検出対象領域が狭い場合には、１つの供給装置３９に対して１つのマーク部６１を配置すれば良い。一方、図２、図３に示すトレー５６のようにワーク検出対象領域が比較的広い場合には、その領域の周辺に複数個のマーク部６２を配置し、そのワーク検出対象領域をマーク部６２の個数分に分割して、トレー５６上のワーク３０の位置は、最寄りのマーク部６２の位置を基準点とする相対位置の座標値で算出する。
【００２５】
図３の例では、トレー５６の周辺に４個のマーク部６２を配置し、ワーク検出対象領域を４つに分割して、トレー５６上の各ワーク３０の位置を、最寄りのマーク部６２の位置を基準点とする相対位置の座標値で算出する。
【００２６】
トレー５６上のワーク３０のうち、検出対象のワーク３０（Ａ）の最寄りのマーク部６２は、図３の左上のマーク部６２（ａ）となるため、事前に記憶済みのマーク部６２（ａ）の世界座標系の座標値である世界座標値（Ｘ1w，Ｙ1w）と検出対象のワーク３０（Ａ）までの相対位置オフセット（ΔＸ1 ，ΔＹ1 ）を用いて、トレー５６上の検出対象のワーク３０（Ａ）の世界座標系の座標値（Ｘw ，Ｙw ）を次式により算出する。
［Ｘw ，Ｙw ］＝［Ｘ1w，Ｙ1w］＋［ΔＸ1 ，ΔＹ1 ］
トレー５６上の他のワーク３０についても、上記と同様に最寄りのマーク部６２の位置からの相対位置によって算出される。
【００２７】
上式に示したように、ワーク３０の位置を最寄りのマーク部６２の位置からの相対位置で表現することによって、世界座標系の基準点を複数もつことができる。通常の固定カメラ５１の画像からの世界座標値の算出は、画像中心の１点の世界座標値を検出し、その相対値で表現しているため、画像の歪み等の要因で画像周辺部での検出精度が悪化することがあったが、画像周辺部に複数のマーク部６１，６２を配置して、各マーク部６１，６２の絶対座標からの相対値でワーク３０の位置座標を算出することで、画像周辺部での検出精度を向上することができる。
【００２８】
以上のように構成したロボット１１の動作を制御するロボット制御ユニット４２は、図４に示すように、画像処理部４３、座標変換部４４、制御部３７、検査実行部４５及びサーボアンプ３６等を備えた構成となっている。画像処理部４３は、ハンドカメラ４０で撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系（以下「ハンドカメラ４０のビジョン座標系」という）の座標値で検出する第１画像処理部と、固定カメラ５１で撮像した画像を処理して撮像対象の位置を当該画像の基準点（例えば画像の中心）を原点とする２次元の直交座標系（以下「固定カメラ５１のビジョン座標系」という）の座標値で検出する第２画像処理部として機能する。前記第１画像処理部と前記第２画像処理部は、同一の画像処理装置で構成しても良いし、別々の画像処理装置で構成しても良い。各ビジョン座標系の座標軸は、画像上で直交するＸv 軸とＹv 軸である。供給装置３９の作業エリア３８上のワーク３０をハンドカメラ４０で撮像する際には、ハンドカメラ４０の光軸を鉛直下向きに向けて撮像するため、ハンドカメラ４０で撮像した画像は、固定カメラ５１で撮像した画像と同様に、水平面を撮像した画像となり、ビジョン座標系のＸv 軸とＹv 軸は水平面上の直交座標軸となる。画像処理部４３は、画像処理によってワーク３０の位置をビジョン座標系のピクセル単位の座標値で検出する。
【００２９】
一方、座標変換部４４は、ロボット１１の稼働中には、画像処理部４３の画像処理でワーク３０の位置として検出した２次元のビジョン座標系の座標値を、ロボット１１の各アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の位置を制御するための世界座標系の座標値に変換する。この世界座標系は、基準点を原点とする３次元の直交座標系であり、世界座標系の座標軸は、水平面上の直交座標軸（Ｘ軸とＹ軸）と鉛直上向きの座標軸（Ｚ軸）である。この世界座標系の座標値の単位は、長さの単位（例えばμｍ単位）である。この世界座標系の原点（基準点）は、例えば、ロボット１１のアーム可動領域（手首部２１先端側のエンドエフェクタ２３が移動可能な領域）の中心である。
【００３０】
この場合、座標変換部４４は、ロボット１１の稼働中に固定カメラ５１のビジョン座標系の座標値を世界座標系の座標値に変換する場合には、座標変換パラメータを用いて固定カメラ５１のビジョン座標系の座標値を世界座標系の座標値に変換する。ここで、座標変換パラメータは、固定カメラ５１のビジョン座標系の原点を補正する原点補正パラメータと、固定カメラ５１のビジョン座標系の座標軸の傾きを補正する座標軸傾き補正パラメータとを含む。
【００３１】
一方、ハンドカメラ４０のビジョン座標系の座標値を世界座標系の座標値に変換する場合には、世界座標系の座標軸に対するハンドカメラ４０のビジョン座標系の座標軸の傾き角度Ｒｚと原点を補正することによって、ハンドカメラ４０のビジョン座標系の座標値を世界座標系の座標値に変換する。この補正は、それぞれの座標軸の傾き角度Ｒｚを示す回転行列とビジョン座標原点の世界座標系上の位置（Ｘ1w，Ｙ1w）への並進ベクトルとを求めることによって、ハンドカメラ４０のビジョン座標系の座標値（Ｘav，Ｙav）を次式で補正して世界座標系の座標値（Ｘw'，Ｙw'）に変換することができる。
【００３２】
【数１】
2020116717.tif 000003
【００３３】
上式により、座標変換を行うためには、ハンドカメラ４０のビジョン座標系の座標軸の傾き角度Ｒｚと原点の座標値を測定する必要がある。
【００３４】
ハンドカメラ４０はロボット１１の手首部２１に固定されているため、ロボット１１のアーム位置とハンドカメラ４０との相対的位置関係は常に一定に維持される。従って、世界座標系のＸＹ座標軸に対するハンドカメラ４０のビジョン座標系の座標軸の傾き角度Ｒｚは、次式により算出される。
【００３５】
Ｒｚ＝［ハンドカメラ４０の設置角度］＋［第１関節軸１４の回転角度］
ここで、ハンドカメラ４０の設置角度は、ロボット１１の手首部２１に対するハンドカメラ４０の設置角度であり、ハンドカメラ４０をロボット１１の手首部２１に設置したときに手首部２１に対するハンドカメラ４０の設置角度を測定してロボット制御ユニット４２の不揮発性メモリ（図示せず）に保存しておいた値を参照する。
【００３６】
第１関節軸１４の回転角度の検出方法については、ロボット１１のアーム位置（ハンドカメラ４０の位置）が撮像位置で停止しているときの第１関節軸１４のサーボモータ２５のエンコーダ３１の出力値をロボット制御ユニット４２の制御部３７がリアルタイムで取得して、第１関節軸１４の回転角度を算出するようにしている。
【００３７】
一方、ハンドカメラ４０のビジョン座標系の原点の座標値は、ロボット制御ユニット４２の制御部３７がハンドカメラ４０の撮像位置に指定した世界座標系の座標値と一致するようにロボット１１へのハンドカメラ４０組付け時にキャリブレーション済みの状態にしておく。ロボット１１のアーム位置とハンドカメラ４０との相対的位置関係は常に一定であるため、ロボット１１の基準点とハンドカメラ４０の光軸中心との間の距離を測定し、これを補正値として制御部３７からの座標指令値に反映することによって、ロボット１１に世界座標系上の位置（X1w 、Y1w ）を指示すると、ハンドカメラ４０のビジョン座標系の原点が世界座標系上の位置（X1w 、Y1w ）に移動するように制御される。
【００３８】
ロボット制御ユニット４２の制御部３７は、各エンコーダ３１〜３５で検出した各サーボモータ２５〜２９の回転角とハンドカメラ４０と手首部２１（エンドエフェクタ２３）との相対的位置関係に基づいてリアルタイムでハンドカメラ４０のビジョン座標系の原点の座標値（Ｘ1w，Ｙ1w）を算出するようにしている。
【００３９】
ロボット制御ユニット４２の制御部３７は、ロボット１１の稼働中に座標変換部４４で３次元の世界座標系の座標値に変換したワーク３０の位置に基づいてロボット１１の各アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の目標位置を世界座標系の座標値で設定して、当該アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の位置を世界座標系の座標値で制御する。
【００４０】
次に、検査実行部４５の機能について説明する。
検査実行部４５は、固定カメラ５１とハンドカメラ４０を使用してロボット制御システムの異常診断を実行するものであり、後述する所定の検査実行条件が成立したときに、ハンドカメラ４０の視野内にマーク部６１，６２が収まる位置へハンドカメラ４０を移動させてハンドカメラ４０でマーク部６１，６２を撮像して、その画像を画像処理部４３で処理して当該マーク部６１，６２の位置をハンドカメラ４０のビジョン座標系の座標値で検出して座標変換部４４で世界座標系の座標値に変換する動作（以下「ハンドカメラ画像からのマーク部位置検出動作」という）と、固定カメラ５１で全てのマーク部６１，６２を撮像して、その画像を画像処理部４３で処理して全てのマーク部６１，６２の位置を固定カメラ５１のビジョン座標系の座標値で検出して座標変換部４４で世界座標系の座標値に変換する動作（以下「固定カメラ画像からのマーク部位置検出動作」という）とを実行する。
【００４１】
検査実行部４５が過去に行ったハンドカメラ画像からのマーク部位置検出動作で検出した過去のマーク部６１，６２の位置の座標値（以下「過去のハンドカメラ画像から検出した過去のマーク部６１，６２の位置の座標値」という）を記憶部４６に記憶すると共に、検査実行部４５が過去に行った固定カメラ画像からのマーク部位置検出動作で検出した過去のマーク部６１，６２の位置の座標値（以下「過去の固定カメラ画像から検出した過去のマーク部６１，６２の位置の座標値」という）を記憶部４６に記憶する。ここで、記憶部４６に記憶する過去のマーク部６１，６２の位置の座標値は、ロボット制御システムをキャリブレーションしたときに、ハンドカメラ画像からのマーク部位置検出動作及び固定カメラ画像からのマーク部位置検出動作を実行して検出したマーク部６１，６２の位置の座標値である。
【００４２】
過去のマーク部６１，６２の位置の座標値を記憶する記憶部４６は、電源オフ中でも記憶データを保持する書き換え可能な不揮発性の記憶媒体であり、例えば、ＨＤＤ、ＳＳＤ、フラッシュメモリ等により構成されている。
【００４３】
検査実行部４５は、今回行ったハンドカメラ画像からのマーク部位置検出動作で検出した今回のマーク部６１，６２の位置の座標値を記憶部４６に記憶されている、前記過去のハンドカメラ画像から検出した過去のマーク部６１，６２の位置の座標値と比較すると共に、今回行った固定カメラ画像からのマーク部位置検出動作で検出した今回のマーク部６１，６２の位置の座標値を記憶部４６に記憶されている、前記過去の固定カメラ画像から検出した過去のマーク部６１，６２の位置の座標値と比較し、それらの比較結果に基づいてロボット制御システムの異常診断を行い、その結果、異常ありと判定した場合には、前記今回のマーク部６１，６２の位置の座標値と前記過去のマーク部６１，６２の位置の座標値との比較結果の組み合わせに基づいて異常発生箇所を特定する。
【００４４】
検査実行部４５は、異常診断の結果を液晶ディスプレイ等の表示装置４７や携帯端末（図示せず）に表示したり、或は音声によりロボット１１を管理する作業者に通知する処理を行う。更に、検査実行部４５は、異常発生箇所を特定した場合にはその異常発生箇所と対処方法を表示装置４７や携帯端末に表示したり、音声により作業者に通知する処理を行う。
【００４５】
本実施例では、検査実行部４５は、生産開始前にロボット制御システムの異常診断を実行し、生産開始前に行ったハンドカメラ画像からのマーク部位置検出動作及び固定カメラ画像からのマーク部位置検出動作で検出した当該生産開始前のマーク部６１，６２の位置の座標値を記憶部４６に記憶されている過去のマーク部６１，６２の位置の座標値と比較して各位置の座標値の変化量を算出し、いずれか１つでも座標値の変化量が許容誤差に相当する所定の閾値を超えていれば異常ありと判定する。
【００４６】
更に、本実施例では、検査実行部４５は、生産中に後述する所定の検査実行条件が成立したときに、前記固定カメラ画像からのマーク部位置検出動作を実行して当該生産中のマーク部６１，６２の位置の座標値を検出し、当該生産中のマーク部６１，６２の位置の座標値を記憶部４６に記憶されている、過去の固定カメラ画像から検出した過去のマーク部６１，６２の位置の座標値と比較して、当該生産中の比較結果に基づいて異常診断し、その結果、異常ありと判定した場合には、前記ハンドカメラ画像からのマーク部位置検出動作を実行してマーク部６１，６２の位置の座標値を検出し、そのマーク部６１，６２の位置の座標値を記憶部４６に記憶されている、前記過去のハンドカメラ画像から検出した過去のマーク部６１，６２の位置の座標値と比較し、その比較結果と前記生産中の比較結果との組み合わせに基づいて異常発生箇所を特定する。
【００４７】
或は、検査実行部４５は、生産中にロボット１１がアーム動作を所定時間以上停止している期間に前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、固定カメラ５１でマーク部６１，６２を撮像するのに邪魔にならない位置へロボット１１のアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行してロボット制御システムの異常診断を行うようにしても良い。
【００４８】
或は、検査実行部４５は、生産中にハンドカメラ４０でワーク３０を撮像して当該ワーク３０の位置を検出してロボット１１が所定の作業を行う場合には、生産中にハンドカメラ４０でワーク３０を撮像する際に、当該ワーク３０とマーク部６１，６２の少なくとも１つをハンドカメラ４０の視野に収めて撮像して前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、固定カメラ５１でマーク部６１，６２を撮像するのに邪魔にならない位置へロボット１１のアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行してロボット制御システムの異常診断を行うようにしても良い。
【００４９】
また、ロボット１１を管理する作業者が入力装置４８（キーボード、マウス、タッチパネル等）を操作して検査実行開始操作を行ったときにロボット制御システムの異常診断を実行するようにしても良い。
【００５０】
ところで、ロボット１１は、各供給装置３９の作業エリア３８に供給されたワーク３０をエンドエフェクタ２３でピックアップし、当該ワーク３０をトレー搬送装置５５の作業エリア５７で停止しているトレー５６に移し替えて整列させる作業を行うが、このロボット１１の作業が異常になる原因としては、以下の３つの原因（１）〜（３）が考えられる。
【００５１】
［原因（１）］
原因（１）は、固定カメラ５１又はハンドカメラ４０の設置位置や設置角度が過去（キャリブレーション時）から変化したことが考えられる。この変化は、例えば、カメラ設置部材の経年変化や、ライン移動等によって固定カメラ５１を再設置したときの設置位置や設置角度のずれによって発生するものと考えられる。
【００５２】
［原因（２）］
原因（２）は、各供給装置３９の作業エリア３８又はトレー搬送装置５５の作業エリア５７のトレー５６の位置や角度が過去（キャリブレーション時）から変化したことが考えられる。この変化は、例えば、ロボット１１の振動、各供給装置３９自身の振動、衝撃と供給装置３９の移動、交換等による設置位置や設置角度の変化によって発生するものと考えられる。
【００５３】
［原因（３）］
原因（３）は、ロボット１１のアーム移動精度が悪化したことが考えられる。このアーム移動精度の悪化は、例えば、ロボット１１の経年劣化、振動や衝撃等による組み付け状態の変化、エンドエフェクタ２３の交換や再組み付けによるロボット１１の座標系の変化によって発生するものと考えられる。
【００５４】
そこで、本実施例では、以下の手順でロボット制御ユニット４２がロボット制御システムの異常診断を実行する。
まず、ロボット制御システムをキャリブレーションしたときに、ロボット制御ユニット４２が図５のキャリブレーション時マーク部位置検出・記憶プログラムを実行して、キャリブレーション時のマーク部６１，６２の位置の世界座標値を検出して記憶部４６に記憶する。マーク部６１，６２が設置されていない場合は、作業者がマーク部６１，６２を設置してからロボット制御ユニット４２が図５のキャリブレーション時マーク部位置検出・記憶プログラムを実行する。
【００５５】
ロボット制御ユニット４２は、図５のキャリブレーション時マーク部位置検出・記憶プログラムを起動すると、まず、ステップ１０１で、ハンドカメラ４０の視野内に検出対象となる１個又は複数個のマーク部６１が収まる位置までロボット１１の各アーム１５，１７，１９を動作させてハンドカメラ４０を移動させる。この後、ステップ１０２に進み、ハンドカメラ４０でマーク部６１を撮像し、次のステップ１０３で、ハンドカメラ４０の画像を画像処理部４３で処理して当該マーク部６１，６２の位置をハンドカメラ４０のビジョン座標系の座標値で検出して座標変換部４４で世界座標系の座標値である世界座標値［Ａ0 ］に変換する。そして、次のステップ１０４で、このマーク部６１，６２の位置の世界座標値［Ａ0 ］を記憶部４６に記憶する。
【００５６】
この後、ステップ１０５に進み、全てのマーク部６１，６２の位置の検出・記憶が終了したか否かを判定し、まだ終了していなければ、上述したステップ１０１〜１０４の処理を繰り返して、残りのマーク部６１，６２の位置の検出・記憶を行う。このような処理を繰り返すことで、全てのマーク部６１，６２の位置の検出・記憶が終了した時点で、上記ステップ１０５の判定結果が「Ｙｅｓ」となり、ステップ１０６に進み、固定カメラ５１で全てのマーク部６１を撮像し、次のステップ１０７で、固定カメラ５１の画像を画像処理部４３で処理して全てのマーク部６１，６２の位置を固定カメラ５１のビジョン座標系の座標値で検出して座標変換部４４で世界座標値［Ｂ0 ］に変換する。そして、次のステップ１０８で、全てのマーク部６１，６２の位置の世界座標値［Ｂ0 ］を記憶部４６に記憶して、本プログラムを終了する。
【００５７】
その後、ロボット制御ユニット４２は、生産開始前及び生産中に図６乃至図８のロボット制御システム異常診断プログラムを実行することで、ロボット制御システムの異常診断を行う。
【００５８】
ロボット制御ユニット４２は、図６乃至図８のロボット制御システム異常診断プログラムを起動すると、まずステップ２０１で、生産開始前の検査実行条件が成立するまで待機する。ここで、生産開始前の検査実行条件は、例えば、ロボット１１が動作可能で、他の作業を行っていないこと等である。或は、作業者が入力装置４８を操作して検査実行開始操作を行ったときに生産開始前の検査実行条件が成立するようにしても良い。また、生産開始前に、毎回、異常診断を行うようにしても良いが、生産実行回数や累積生産時間が所定値に達する毎に異常診断を行うようにしても良い。
【００５９】
このステップ２０１で、生産開始前の検査実行条件が成立したと判定した時点で、ステップ２０２に進み、ハンドカメラ４０の視野内に検出対象となる１個又は複数個のマーク部６１が収まる位置までロボット１１の各アーム１５，１７，１９を動作させてハンドカメラ４０を移動させる。この後、ステップ２０３に進み、ハンドカメラ４０でマーク部６１を撮像し、次のステップ２０４で、ハンドカメラ４０の画像を画像処理部４３で処理して当該マーク部６１，６２の位置をハンドカメラ４０のビジョン座標系の座標値で検出して座標変換部４４で世界座標値［Ａ1 ］に変換する。そして、次のステップ２０５で、今回のマーク部６１，６２の位置の世界座標値［Ａ1 ］を、記憶部４６に記憶されている、キャリブレーション時のハンドカメラ４０の画像から検出したキャリブレーション時のマーク部６１，６２の位置の世界座標値［Ａ0 ］と比較して、各マーク部６１，６２の位置の世界座標値の変化量｜［Ａ0 ］−［Ａ1 ］｜を算出する。
【００６０】
この後、ステップ２０６に進み、全てのマーク部６１，６２の位置の検出・比較が終了したか否かを判定し、まだ終了していなければ、上述したステップ２０２〜２０５の処理を繰り返して、残りのマーク部６１，６２の位置の検出・比較を行う。
【００６１】
このような処理を繰り返すことで、全てのマーク部６１，６２の位置の検出・比較が終了した時点で、上記ステップ２０６の判定結果が「Ｙｅｓ」となり、ステップ２０７に進み、固定カメラ５１で全てのマーク部６１を撮像し、次のステップ２０８で、固定カメラ５１の画像を画像処理部４３で処理して全てのマーク部６１，６２の位置を固定カメラ５１のビジョン座標系の座標値で検出して座標変換部４４で世界座標値［Ｂ1 ］に変換する。この後、ステップ２０９に進み、今回の全てのマーク部６１，６２の位置の世界座標値［Ｂ1 ］を、記憶部４６に記憶されている、キャリブレーション時の固定カメラ５１の画像から検出したキャリブレーション時のマーク部６１，６２の位置の世界座標値［Ｂ0 ］と比較して、各マーク部６１，６２の位置の世界座標値の変化量｜［Ｂ0 ］−［Ｂ1 ］｜を算出する。
【００６２】
この後、図７のステップ２１０に進み、上記ステップ２０５とステップ２０９で算出した各マーク部６１，６２の位置の世界座標値の変化量｜［Ａ0 ］−［Ａ1 ］｜と｜［Ｂ0 ］−［Ｂ1 ］｜をそれぞれ許容誤差に相当する所定の閾値と比較して、全てのマーク部６１，６２の位置の世界座標値の変化量｜［Ａ0 ］−［Ａ1 ］｜と｜［Ｂ0 ］−［Ｂ1 ］｜が共に閾値以内であれば、ステップ２１１に進み、ロボット制御システムが正常（異常なし）と判定して、ステップ２１２に進み、生産を開始する。
【００６３】
これに対し、上記ステップ２１０で、各マーク部６１，６２の位置の世界座標値の変化量｜［Ａ0 ］−［Ａ1 ］｜と｜［Ｂ0 ］−［Ｂ1 ］｜のうちのいずれか１つでも閾値以上であると判定した場合には、ステップ２１７に進み、ロボット制御システムが異常であると判定して、ステップ２１８に進み、｜［Ａ0 ］−［Ａ1 ］｜と閾値との比較結果と、｜［Ｂ0 ］−［Ｂ1 ］｜と閾値との比較結果との組み合わせに基づいて異常発生箇所を特定して、次のステップ２１９で、表示装置４７や携帯端末に異常の警告表示を行ったり、或は音声によりその異常を作業者に通知する処理を行うと共に、異常発生箇所と対処方法を表示装置４７や携帯端末に表示したり、音声により作業者に通知する処理を行う。
【００６４】
生産開始前は、例えば、以下の判定基準(1) 〜(3) に従って異常発生箇所を特定して異常発生箇所と対処方法を作業者に通知する。
【００６５】
(1) ｜［Ａ0 ］−［Ａ1 ］｜≧閾値、且つ、｜［Ｂ0 ］−［Ｂ1 ］｜≧閾値の場合は、供給装置３９又はトレー５６（トレー搬送装置５５）の位置や角度が異常（ずれ量が許容誤差を超える）と判定する。この場合の対処方法として、供給装置３９とトレー５６（トレー搬送装置５５）の位置や角度を修正して、ハンドカメラ４０と固定カメラ５１のビジョン座標系を再キャリブレーションするように作業者に通知する。
【００６６】
(2) ｜［Ａ0 ］−［Ａ1 ］｜≧閾値、且つ、｜［Ｂ0 ］−［Ｂ1 ］｜＜閾値の場合は、ロボット１１のアーム移動精度（ロボット１１内の座標系）が異常（ずれ量が許容誤差を超える）と判定する。この場合の対処方法として、エンドエフェクタ２３の取付状態の確認とロボット１１の再キャリブレーションを行うように作業者に通知する。
【００６７】
(3) ｜［Ａ0 ］−［Ａ1 ］｜＜閾値、且つ、｜［Ｂ0 ］−［Ｂ1 ］｜≧閾値の場合は、固定カメラ５１の設置位置や設置角度が異常（ずれ量が許容誤差を超える）と判定する。この場合の対処方法として、固定カメラ５１の設置位置や設置角度を修正して固定カメラ５１のビジョン座標系を再キャリブレーションするように作業者に通知する。
【００６８】
生産開始後は、ステップ２１３に進み、生産中に固定カメラ５１でワーク３０を撮像するタイミングになる毎に、ステップ２１４以降の処理により生産中の異常診断を実行する。生産中に固定カメラ５１でワーク３０を撮像するタイミングになる毎に、毎回、異常診断を行うようにしても良いが、撮像回数が所定回数に達する毎に異常診断を行うようにしても良い。
【００６９】
ワーク３０を撮像するタイミング（異常診断実行タイミング）になった時点で、ステップ２１４に進み、固定カメラ５１でワーク３０とマーク部６１，６２を撮像する。そして、次のステップ２１５で、固定カメラ５１の画像を画像処理部４３で処理して全てのマーク部６１，６２の位置を固定カメラ５１のビジョン座標系の座標値で検出して座標変換部４４で世界座標値［Ｂ2 ］に変換する。この後、ステップ２１６に進み、今回の全てのマーク部６１，６２の位置の世界座標値［Ｂ2 ］を、記憶部４６に記憶されている、キャリブレーション時の固定カメラ５１の画像から検出したキャリブレーション時のマーク部６１，６２の位置の世界座標値［Ｂ0 ］と比較して、各マーク部６１，６２の位置の世界座標値の変化量｜［Ｂ0 ］−［Ｂ2 ］｜を算出する。
【００７０】
この後、図８のステップ２２０に進み、各マーク部６１，６２の位置の世界座標値の変化量｜［Ｂ0 ］−［Ｂ2 ］｜を許容誤差に相当する所定の閾値と比較して、全てのマーク部６１，６２の位置の世界座標値の変化量｜［Ｂ0 ］−［Ｂ2 ］｜が閾値以内であれば、ステップ２２１に進み、ロボット制御システムが正常（異常なし）と判定する。この場合は、ステップ２２２に進み、生産終了か否かを判定し、生産終了ではない（生産中）と判定すれば、図７のステップ２１３に戻る。これにより、生産中は、固定カメラ５１でワーク３０を撮像するタイミング（異常診断実行タイミング）になる毎に、ロボット制御システムの異常診断が繰り返し実行され、生産が終了した時点で本プログラムも終了する。
【００７１】
一方、上記ステップ２２０で、各マーク部６１，６２の位置の世界座標値の変化量｜［Ｂ0 ］−［Ｂ2 ］｜のうちのいずれか１つでも閾値以上であると判定した場合には、ステップ２２３に進み、ロボット制御システムが異常であると判定して、ステップ２２４に進み、ハンドカメラ４０の視野内に検出対象となる１個又は複数個のマーク部６１が収まる位置までロボット１１の各アーム１５，１７，１９を動作させてハンドカメラ４０を移動させる。この後、ステップ２２５に進み、ハンドカメラ４０でマーク部６１を撮像し、次のステップ２２６で、ハンドカメラ４０の画像を画像処理部４３で処理して当該マーク部６１，６２の位置をハンドカメラ４０のビジョン座標系の座標値で検出して座標変換部４４で世界座標値［Ａ2 ］に変換する。この後、ステップ２２７に進み、今回のマーク部６１，６２の位置の世界座標値［Ａ2 ］を、記憶部４６に記憶されている、キャリブレーション時のハンドカメラ４０の画像から検出したキャリブレーション時のマーク部６１，６２の位置の世界座標値［Ａ0 ］と比較して、各マーク部６１，６２の位置の世界座標値の変化量｜［Ａ0 ］−［Ａ2 ］｜を算出する。
【００７２】
次のステップ２２８で、｜［Ａ0 ］−［Ａ2 ］｜と閾値との比較結果と、｜［Ｂ0 ］−［Ｂ2 ］｜と閾値との比較結果との組み合わせに基づいて異常発生箇所を特定して、次のステップ２２９で、表示装置４７や携帯端末に異常の警告表示を行ったり、或は音声によりその異常を作業者に通知する処理を行うと共に、異常発生箇所と対処方法を表示装置４７や携帯端末に表示したり、音声により作業者に通知する処理を行って、本プログラムを終了する。
【００７３】
生産中は、例えば、以下の判定基準(1) 〜(3) に従って異常発生箇所を特定して異常発生箇所と対処方法を作業者に通知する。
【００７４】
(1) ｜［Ａ0 ］−［Ａ2 ］｜≧閾値、且つ、｜［Ｂ0 ］−［Ｂ2 ］｜≧閾値の場合は、供給装置３９又はトレー５６（トレー搬送装置５５）の位置や角度が異常（ずれ量が許容誤差を超える）と判定する。この場合の対処方法として、供給装置３９とトレー５６（トレー搬送装置５５）の位置や角度を修正して、ハンドカメラ４０と固定カメラ５１のビジョン座標系を再キャリブレーションするように作業者に通知する。
【００７５】
(2) ｜［Ａ0 ］−［Ａ2 ］｜≧閾値、且つ、｜［Ｂ0 ］−［Ｂ2 ］｜＜閾値の場合は、ロボット１１のアーム移動精度（ロボット１１内の座標系）が異常（ずれ量が許容誤差を超える）と判定する。この場合の対処方法として、エンドエフェクタ２３の取付状態の確認とロボット１１の再キャリブレーションを行うように作業者に通知する。
【００７６】
(3) ｜［Ａ0 ］−［Ａ2 ］｜＜閾値、且つ、｜［Ｂ0 ］−［Ｂ2 ］｜≧閾値の場合は、固定カメラ５１の設置位置や設置角度が異常（ずれ量が許容誤差を超える）と判定する。この場合の対処方法として、固定カメラ５１の設置位置や設置角度を修正して固定カメラ５１のビジョン座標系を再キャリブレーションするように作業者に通知する。
【００７７】
以上説明した本実施例によれば、ロボット１１の手首部２１に取り付けられたハンドカメラ４０と、ロボット１１のアーム可動領域よりも高い場所に下向きに固定された固定カメラ５１との両方で、作業エリア３８，５７に対して所定の位置関係で設けられたマーク部６１，６２を撮像して、ハンドカメラ４０の画像と固定カメラ５１の画像の両方で同じマーク部６１，６２の位置を検出して異常診断するため、前記特許文献１で誤判定の要因となっていたキャリブレーションステージやマスターワークを使用せずに異常診断することができる。しかも、ハンドカメラ４０と固定カメラ５１との両方で同じマーク部６１，６２を撮像するため、カメラ４０，５１の位置ずれかマーク部６１，６２の位置ずれかを判別することができ、異常診断の精度を向上させることができる。
【００７８】
しかも、本実施例では、生産開始前にロボット制御システムの異常診断を行うと共に、生産中も固定カメラ５１でワーク３０を撮像する毎にロボット制御システムの異常診断を行うようにしているため、生産中にロボット１１が正常動作できない状態に至る前に作業者に異常警告したり、異常発生箇所や適切な対処方法を通知することができる。これにより、ロボット１１の座標系異常に起因する計画外停止や不良の発生を未然に防止できると共に、異常発生箇所のメンテナンスの時間とコストを削減することができ、ロボット制御システムの予知保全を実現することができる。
【００７９】
更に、生産中も固定カメラ５１でワーク３０を撮像する毎にロボット制御システムの異常診断を行うようにしているため、生産中に異常が発生しても、その異常を直ぐに検出することができ、生産タクトへの影響を最小限に止めることができる。
【００８０】
しかも、異常検知専用の追加設備やセンサ等による追加コスト、工数の発生がないので、導入がしやすい。更には、異常診断によりロボット１１の座標系が正常な状態を確認してロボット１１を動作させることができるため、ワーク３０の位置検出精度の向上も実現できる。
【００８１】
尚、本実施例では、マーク部６１，６２の形状を円形としたが、四角形等、他の形状であっても良く、要は、画像処理により各マーク部６１，６２の中心等の位置を正確に認識しやすい形状であれば良い。
【００８２】
また、生産開始前のみにロボット制御システムの異常診断を行ったり、生産中にロボット１１の作業ミスが発生したときに（或は作業ミスの発生回数や発生率が所定値を超えたときに）ロボット制御システムの異常診断を行うようにしても良い。
【００８３】
その他、本発明は、ロボット１１の構成を適宜変更しても良い等、要旨を逸脱しない範囲内で種々変更して実施できることは言うまでもない。
【符号の説明】
【００８４】
１１…ロボット、１４…第１関節軸、１５…第１アーム、１６…第２関節軸、１７…第２アーム、１８…第３関節軸、１９…第３アーム、２０…第４関節軸、２１…手首部（アーム先端部）、２２…第５関節軸、２３…エンドエフェクタ、２５〜２９…サーボモータ、３１〜３５…エンコーダ、３６…サーボアンプ、３７…制御部、３８…作業エリア、３９…供給装置、４０…ハンドカメラ、４１…レンズ、４２…ロボット制御ユニット、４３…画像処理部（第１画像処理部，第２画像処理部）、４４…座標変換部、４５…検査実行部、４６…記憶部、５０…固定構造物、５１…固定カメラ、５２…レンズ、５５…トレー搬送装置、５６…トレー、５７…作業エリア、６１，６２…マーク部
【図１】
2020116717.tif 000004
【図２】
2020116717.tif 000005
【図３】
2020116717.tif 000006
【図４】
2020116717.tif 000007
【図５】
2020116717.tif 000008
【図６】
2020116717.tif 000009
【図７】
2020116717.tif 000010
【図８】
2020116717.tif 000011