(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-18
(45)【発行日】2023-05-26
(54)【発明の名称】ロボット制御システム
(51)【国際特許分類】
B25J 19/06 20060101AFI20230519BHJP
B25J 19/04 20060101ALI20230519BHJP
【FI】
B25J19/06
B25J19/04
(21)【出願番号】P 2019012084
(22)【出願日】2019-01-28
【審査請求日】2022-01-14
(73)【特許権者】
【識別番号】000237271
【氏名又は名称】株式会社FUJI
(74)【代理人】
【識別番号】100098420
【氏名又は名称】加古 宗男
(72)【発明者】
【氏名】大石 信夫
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2016-052695(JP,A)
【文献】特開2016-078180(JP,A)
【文献】国際公開第2018/163450(WO,A1)
【文献】特開2010-243317(JP,A)
【文献】特開2018-034271(JP,A)
【文献】特開平06-262446(JP,A)
【文献】特開2011-110627(JP,A)
【文献】特開2018-158391(JP,A)
【文献】特開2017-071033(JP,A)
【文献】特開2003-231078(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ワークを作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記ロボットのアームに取り付けられたハンドカメラと、
前記ロボットのアーム可動領域よりも高い場所に下向きに固定され、前記作業エリアに供給されたワークを上方から撮像する固定カメラと、
前記ハンドカメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「ハンドカメラのビジョン座標系」という)の座標値で検出する第1画像処理部と、
前記固定カメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「固定カメラのビジョン座標系」という)の座標値で検出する第2画像処理部と、
前記ハンドカメラのビジョン座標系の座標値及び前記固定カメラのビジョン座標系の座標値を前記ロボットのアームの動作を制御する座標系である世界座標系の座標値に変換する座標変換部と、
前記ロボットのアームの位置を前記世界座標系の座標値で制御する制御部と
を備えたロボット制御システムにおいて、
前記固定カメラの視野に収まる範囲内で前記作業エリアに対して所定の位置関係となる位置に設けられたマーク部と、
前記ハンドカメラの視野内に前記マーク部が収まる位置へ前記ハンドカメラを移動させて前記ハンドカメラで前記マーク部を撮像して、その画像を前記第1画像処理部で処理して前記マーク部の位置を前記ハンドカメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「ハンドカメラ画像からのマーク部位置検出動作」という)と、前記固定カメラで前記マーク部を撮像して、その画像を前記第2画像処理部で処理して前記マーク部の位置を前記固定カメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「固定カメラ画像からのマーク部位置検出動作」という)とを実行する検査実行部と、
前記検査実行部が過去に行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶すると共に、前記検査実行部が過去に行った前記固定カメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶する記憶部とを備え、
前記検査実行部は、同一の前記マーク部に対する前記マーク部位置検出動作において、今回行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値と、前記記憶部に記憶されている前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値とを比較すると共に、今回行った前記固定カメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値と、前記記憶部に記憶されている前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値とを比較し、それらの比較結果の組み合わせに基づいて異常発生箇所
が前記ロボットの前記アームと前記固定カメラの設置環境と前記マーク部が設けられる環境のうちの何れであるかを特定するように異常診断する、ロボット制御システム。
【請求項2】
前記検査実行部は、前記ハンドカメラ画像から検出した前記マーク部の位置の座標値の比較結果と、前記固定カメラ画像から検出した前記マーク部の位置の座標値の比較結果との組み合わせにおいて、前記ハンドカメラ画像から検出した前記マーク部の位置の座標値の比較結果のみが閾値以上である場合に、前記ロボットの前記アームに異常があると診断し、前記固定カメラ画像から検出した前記マーク部の位置の座標値の比較結果のみが閾値以上である場合に、前記固定カメラの設置環境に異常があると診断し、前記2つの比較結果の両方が閾値以上である場合に、前記マーク部が設けられる環境に異常があると診断する、請求項1に記載のロボット制御システム。
【請求項3】
前記検査実行部は、前記異常診断の結果を表示及び/又は音声により作業者に通知する処理を行う、請求項1又は2に記載のロボット制御システム。
【請求項4】
前記検査実行部は、前記異常発生箇所を特定した場合にはその異常発生箇所と対処方法を表示及び/又は音声により作業者に通知する処理を行う、請求項2に記載のロボット制御システム。
【請求項5】
前記検査実行部は、生産開始前に行った前記ハンドカメラ画像からのマーク部位置検出動作及び前記固定カメラ画像からのマーク部位置検出動作で検出した当該生産開始前の前記マーク部の位置の座標値を前記記憶部に記憶されている前記過去の前記マーク部の位置の座標値と比較して各位置の座標値の変化量を算出し、いずれか1つでも前記座標値の変化量が許容誤差に相当する所定の閾値を超えていれば異常ありと判定する、請求項1乃至4のいずれかに記載のロボット制御システム。
【請求項6】
ワークを作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記ロボットのアームに取り付けられたハンドカメラと、
前記ロボットのアーム可動領域よりも高い場所に下向きに固定され、前記作業エリアに供給されたワークを上方から撮像する固定カメラと、
前記ハンドカメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「ハンドカメラのビジョン座標系」という)の座標値で検出する第1画像処理部と、
前記固定カメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「固定カメラのビジョン座標系」という)の座標値で検出する第2画像処理部と、
前記ハンドカメラのビジョン座標系の座標値及び前記固定カメラのビジョン座標系の座標値を前記ロボットのアームの動作を制御する座標系である世界座標系の座標値に変換する座標変換部と、
前記ロボットのアームの位置を前記世界座標系の座標値で制御する制御部と、
前記固定カメラの視野に収まる範囲内で前記作業エリアに対して所定の位置関係となる位置に設けられたマーク部と、
前記ハンドカメラの視野内に前記マーク部が収まる位置へ前記ハンドカメラを移動させて前記ハンドカメラで前記マーク部を撮像して、その画像を前記第1画像処理部で処理して前記マーク部の位置を前記ハンドカメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「ハンドカメラ画像からのマーク部位置検出動作」という)と、前記固定カメラで前記マーク部を撮像して、その画像を前記第2画像処理部で処理して前記マーク部の位置を前記固定カメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「固定カメラ画像からのマーク部位置検出動作」という)とを実行する検査実行部と、
前記検査実行部が過去に行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶すると共に、前記検査実行部が過去に行った前記固定カメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶する記憶部とを備え、
前記検査実行部は、今回行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値と比較すると共に、今回行った前記固定カメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値と比較し、それらの比較結果に基づいて異常診断する、ロボット制御システムにおいて、
前記検査実行部は、生産中に前記固定カメラ画像からのマーク部位置検出動作を実行して当該生産中の前記マーク部の位置の座標値を検出し、当該生産中の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値と比較して、当該生産中の比較結果に基づいて異常診断し、その結果、異常ありと判定した場合には前記ハンドカメラ画像からのマーク部位置検出動作を実行して前記マーク部の位置の座標値を検出し、そのマーク部の位置の座標値を前記記憶部に記憶されている、前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値と比較し、その比較結果と前記生産中の比較結果との組み合わせに基づいて異常発生箇所を特定する、ロボット制御システム。
【請求項7】
ワークを作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記ロボットのアームに取り付けられたハンドカメラと、
前記ロボットのアーム可動領域よりも高い場所に下向きに固定され、前記作業エリアに供給されたワークを上方から撮像する固定カメラと、
前記ハンドカメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「ハンドカメラのビジョン座標系」という)の座標値で検出する第1画像処理部と、
前記固定カメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「固定カメラのビジョン座標系」という)の座標値で検出する第2画像処理部と、
前記ハンドカメラのビジョン座標系の座標値及び前記固定カメラのビジョン座標系の座標値を前記ロボットのアームの動作を制御する座標系である世界座標系の座標値に変換する座標変換部と、
前記ロボットのアームの位置を前記世界座標系の座標値で制御する制御部と、
前記固定カメラの視野に収まる範囲内で前記作業エリアに対して所定の位置関係となる位置に設けられたマーク部と、
前記ハンドカメラの視野内に前記マーク部が収まる位置へ前記ハンドカメラを移動させて前記ハンドカメラで前記マーク部を撮像して、その画像を前記第1画像処理部で処理して前記マーク部の位置を前記ハンドカメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「ハンドカメラ画像からのマーク部位置検出動作」という)と、前記固定カメラで前記マーク部を撮像して、その画像を前記第2画像処理部で処理して前記マーク部の位置を前記固定カメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「固定カメラ画像からのマーク部位置検出動作」という)とを実行する検査実行部と、
前記検査実行部が過去に行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶すると共に、前記検査実行部が過去に行った前記固定カメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶する記憶部とを備え、
前記検査実行部は、今回行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値と比較すると共に、今回行った前記固定カメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値と比較し、それらの比較結果に基づいて異常診断する、ロボット制御システムにおいて、
前記検査実行部は、生産中に前記ロボットがアーム動作を所定時間以上停止している期間に前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、前記固定カメラで前記マーク部を撮像するのに邪魔にならない位置へ前記ロボットのアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行して異常診断する、ロボット制御システム。
【請求項8】
ワークを作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記ロボットのアームに取り付けられたハンドカメラと、
前記ロボットのアーム可動領域よりも高い場所に下向きに固定され、前記作業エリアに供給されたワークを上方から撮像する固定カメラと、
前記ハンドカメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「ハンドカメラのビジョン座標系」という)の座標値で検出する第1画像処理部と、
前記固定カメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「固定カメラのビジョン座標系」という)の座標値で検出する第2画像処理部と、
前記ハンドカメラのビジョン座標系の座標値及び前記固定カメラのビジョン座標系の座標値を前記ロボットのアームの動作を制御する座標系である世界座標系の座標値に変換する座標変換部と、
前記ロボットのアームの位置を前記世界座標系の座標値で制御する制御部と、
前記固定カメラの視野に収まる範囲内で前記作業エリアに対して所定の位置関係となる位置に設けられたマーク部と、
前記ハンドカメラの視野内に前記マーク部が収まる位置へ前記ハンドカメラを移動させて前記ハンドカメラで前記マーク部を撮像して、その画像を前記第1画像処理部で処理して前記マーク部の位置を前記ハンドカメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「ハンドカメラ画像からのマーク部位置検出動作」という)と、前記固定カメラで前記マーク部を撮像して、その画像を前記第2画像処理部で処理して前記マーク部の位置を前記固定カメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「固定カメラ画像からのマーク部位置検出動作」という)とを実行する検査実行部と、
前記検査実行部が過去に行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶すると共に、前記検査実行部が過去に行った前記固定カメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶する記憶部とを備え、
前記検査実行部は、今回行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値と比較すると共に、今回行った前記固定カメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値を前記記憶部に記憶されている、前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値と比較し、それらの比較結果に基づいて異常診断する、ロボット制御システムにおいて、
前記検査実行部は、生産中に前記ハンドカメラでワークを撮像して当該ワークの位置を検出して前記ロボットが所定の作業を行う場合には、生産中に前記ハンドカメラでワークを撮像する際に、当該ワークと前記マーク部を視野に収めて撮像して前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、前記固定カメラで前記マーク部を撮像するのに邪魔にならない位置へ前記ロボットのアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行して異常診断する、ロボット制御システム。
【請求項9】
前記マーク部は、複数箇所に設けられ、
前記検査実行部は、前記ハンドカメラ画像からのマーク部位置検出動作及び前記固定カメラ画像からのマーク部位置検出動作で前記マーク部毎にそのマーク部の位置の座標値を検出し、前記マーク部毎にそのマーク部の位置の座標値を前記記憶部に前記マーク部毎に記憶されている前記過去の前記マーク部の位置の座標値と比較する、請求項1乃至8のいずれかに記載のロボット制御システム。
【請求項10】
前記ロボットは、前記作業エリアに供給されたワークをピックアップして別の作業エリアに移し替える作業を行い、
前記別の作業エリアについても、前記固定カメラの視野に収まる範囲内で当該別の作業エリアに対して所定の位置関係となる位置にマーク部が設けられ、
前記検査実行部は、前記固定カメラの視野に前記作業エリアと前記別の作業エリアの両方の前記マーク部を収めて撮像する、請求項1乃至9のいずれかに記載のロボット制御システム。
【請求項11】
前記供給装置が複数並設されて前記作業エリアが複数並設され、
前記作業エリア毎に前記マーク部が設けられている、請求項1乃至10のいずれかに記載のロボット制御システム。
【請求項12】
前記検査実行部は、前記ハンドカメラの視野内に全ての前記マーク部を同時に収めることができない場合には、前記ハンドカメラによる前記マーク部の撮像を2回以上に分けて行う、請求項9乃至11のいずれかに記載のロボット制御システム。
【請求項13】
前記過去の前記マーク部の位置の座標値は、ロボット制御システムをキャリブレーションしたときに前記ハンドカメラ画像からのマーク部位置検出動作及び前記固定カメラ画像からのマーク部位置検出動作を実行して検出した前記マーク部の位置の座標値である、請求項1乃至12のいずれかに記載のロボット制御システム。
【請求項14】
前記第2画像処理部は、生産中に前記固定カメラで撮像した画像を処理してその画像に含まれるワークの位置を検出する場合には、検出対象のワークの最寄りの前記マーク部の位置を基準点としてその基準点からの相対位置で当該検出対象のワークの位置を検出する、請求項1乃至13のいずれかに記載のロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、異常診断機能を備えたロボット制御システムに関する技術を開示したものである。
【背景技術】
【0002】
ワークの把持、搬送、作業を目的とするロボットシステムにおいて、高精度な位置決めが求められる用途やワーク位置の教示を自動化した用途においては、ロボットのアーム先端部に取り付けられたカメラ(ハンドカメラ)や、ワーク供給装置や作業対象部の上方に固定配置されたカメラ(固定カメラ)を使ってワークの位置座標や作業対象部の位置座標を検出し、ワーク把持位置や作業対象位置を自動的に補正するシステムが使用される。
【0003】
この様なカメラ(2次元)で撮像した画像による画像処理結果を用いて作業位置をロボットに指示する場合、それぞれの座標系つまりカメラの座標系であるビジョン座標系(2次元)とロボットの座標系(3次元)が異なるため、両座標系の相対位置を計測して座標系の変換を行う必要があり、この変換式及び補正パラメータを求めることをキャリブレーションと呼んでいる。
【0004】
ロボットの設置時にキャリブレーションを実施してロボット座標系を整えた後、ロボットの運用を続けていると、運用開始後のロボット及び設置台の経年変化、ロボット動作やロボットのアーム移動時の振動、衝撃或は周辺機器の変更等によって、ロボット座標系が変化することがあり、これがロボットの作業精度を悪化させる要因となる。
【0005】
特に、ワーク供給装置や作業対象部の上方にロボットに固定配置された固定カメラは視野が広く、位置検出精度の悪化がロボットの作業精度を悪化させる要因となり、システムとして求められる作業精度を確保できず、生産の継続が困難になることがある。
【0006】
近年、特許文献1(特開2018-034271号公報)に記載されているように、ロボットによるワークの搬送作業が失敗したときに、ロボットのアーム先端部に取り付けたカメラを使用して失敗の要因を特定する方法が提案されている。この特許文献1の失敗要因の特定方法では、ロボット座標系における基準位置及び基準方向を表す基準マークをキャリブレーションステージに設置すると共に、ロボットのアーム先端のハンドでマスターワークを把持してキャリブレーションステージの所定位置に載置し、更に、ロボットのアームの先端部に取り付けたカメラをキャリブレーションステージの上方に移動させて、そのカメラの視野内に基準マークとマスターワークを収めて撮像し、その画像を処理して、基準マークの位置及び向きのずれ量とマスターワークの位置及び向きのずれ量を計測して、それらのずれ量に基づいて失敗の要因がカメラにあるのか、ロボットにあるのかを判定するようにしている。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、上記特許文献1では、基準マークを設けたキャリブレーションステージの位置や向きがずれている場合には、失敗の要因がカメラにある(カメラの位置や向きがずれている)と誤判定したり、或は、失敗の要因がロボットにある(ロボット座標系がずれている)と誤判定する可能性がある。しかも、ロボットのハンドでマスターワークを把持する際に、マスターワークの位置がずれている場合には、ロボットのハンドでマスターワークを把持する把持位置がずれるため、キャリブレーションステージに載置するマスターワークの位置もずれてしまい、それによって失敗の要因を誤判定する可能性がある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、ワークを作業エリアに供給する供給装置と、前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、前記ロボットのアームに取り付けられたハンドカメラと、前記ロボットのアーム可動領域よりも高い場所に下向きに固定され、前記作業エリアに供給されたワークを上方から撮像する固定カメラと、前記ハンドカメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「ハンドカメラのビジョン座標系」という)の座標値で検出する第1画像処理部と、前記固定カメラで撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「固定カメラのビジョン座標系」という)の座標値で検出する第2画像処理部と、前記ハンドカメラのビジョン座標系の座標値及び前記固定カメラのビジョン座標系の座標値を前記ロボットのアームの動作を制御する座標系である世界座標系の座標値に変換する座標変換部と、前記ロボットのアームの位置を前記世界座標系の座標値で制御する制御部とを備えたロボット制御システムにおいて、前記固定カメラの視野に収まる範囲内で前記作業エリアに対して所定の位置関係となる位置に設けられたマーク部と、前記ハンドカメラの視野内に前記マーク部が収まる位置へ前記ハンドカメラを移動させて前記ハンドカメラで前記マーク部を撮像して、その画像を前記第1画像処理部で処理して前記マーク部の位置を前記ハンドカメラのビジョン座標系の座標値で検出して前記座標変換部で前記世界座標系の座標値に変換する動作(以下「ハンドカメラ画像からのマーク部位置検出動作」という)と、前記固定カメラで前記マーク部を撮像して、その画像を前記第2画像処理部で処理して前記マーク部の位置を前記固定カメラのビジョン座標系の座標値で検出する動作(以下「固定カメラ画像からのマーク部位置検出動作」という)とを実行する検査実行部と、前記検査実行部が過去に行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶すると共に、前記検査実行部が過去に行った前記固定カメラ画像からのマーク部位置検出動作で検出した過去の前記マーク部の位置の座標値(以下「過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値」という)を記憶する記憶部とを備え、前記検査実行部は、同一の前記マーク部に対する前記マーク部位置検出動作において、今回行った前記ハンドカメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値と、前記記憶部に記憶されている前記過去のハンドカメラ画像から検出した過去の前記マーク部の位置の座標値とを比較すると共に、今回行った前記固定カメラ画像からのマーク部位置検出動作で検出した今回の前記マーク部の位置の座標値と、前記記憶部に記憶されている前記過去の固定カメラ画像から検出した過去の前記マーク部の位置の座標値とを比較し、それらの比較結果の組み合わせに基づいて異常発生箇所が前記ロボットの前記アームと前記固定カメラの設置環境と前記マーク部が設けられる環境のうちの何れであるかを特定するように異常診断するようにしたものである。
【0010】
この構成では、ロボットのアームに取り付けられたハンドカメラと、ロボットのアーム可動領域よりも高い場所に下向きに固定された固定カメラとの両方で、作業エリアに対して所定の位置関係で設けられたマーク部を撮像して、ハンドカメラの画像と固定カメラの画像の両方で同じマーク部の位置を検出して異常診断するため、前記特許文献1で誤判定の要因となっていたキャリブレーションステージやマスターワークを使用せずに異常診断することができる。しかも、ハンドカメラと固定カメラとの両方で同じマーク部を撮像するため、カメラの位置ずれかマーク部の位置ずれかを判別することができ、異常診断の精度を向上させることができる。
【図面の簡単な説明】
【0011】
【
図1】
図1はロボット制御システムの外観を示す正面図である。
【
図2】
図2はロボット制御システムにおけるマーク部の配置を説明する平面図である。
【
図3】
図3はトレー搬送装置の上面に設けるマーク部の配置を説明する平面図である。
【
図4】
図4はロボット制御システムの電気的構成を示すブロック図である。
【
図5】
図5はキャリブレーション時マーク部位置検出・記憶プログラムの処理の流れを示すフローチャートである。
【
図6】
図6はロボット制御システム異常診断プログラムの一部の処理の流れを示すフローチャート(その1)である。
【
図7】
図7はロボット制御システム異常診断プログラムの一部の処理の流れを示すフローチャート(その2)である。
【
図8】
図8はロボット制御システム異常診断プログラムの一部の処理の流れを示すフローチャート(その3)である。
【発明を実施するための形態】
【0012】
以下、本明細書に開示した一実施例を図面を用いて説明する。
まず、
図1に基づいてロボット11の構成を説明する。
【0013】
ロボット11は、例えば5軸垂直多関節ロボットであり、工場フロア12に設置された固定ベース13と、この固定ベース13上に第1関節軸14(J1)を中心に回転可能に設けられた第1アーム15と、この第1アーム15の先端に第2関節軸16(J2)によって旋回可能に設けられた第2アーム17と、この第2アーム17の先端に第3関節軸18(J3)によって旋回可能に設けられた第3アーム19と、この第3アーム19の先端に第4関節軸20(J4)によって旋回可能に設けられた手首部21と、この手首部21に第5関節軸22(J5)を中心に回転可能且つ交換可能に取り付けられたエンドエフェクタ23とから構成されている。これにより、手首部21に取り付けたエンドエフェクタ23は、その手首部21の関節軸である第4関節軸20によって旋回動作するようになっている。
【0014】
この場合、エンドエフェクタ23は、例えば、吸着ノズル、ハンド、グリッパ、溶接機等のいずれであっても良い。ロボット11の第1~第5の各関節軸14,16,18,20,22は、それぞれサーボモータ25~29(
図4参照)により駆動されるようになっている。
図4に示すように、各サーボモータ25~29には、それぞれ回転角を検出するエンコーダ31~35が設けられ、各エンコーダ31~35で検出した回転角の情報がサーボアンプ36を経由して制御部37にフィードバックされる。これにより、制御部37は、各エンコーダ31~35で検出した各サーボモータ25~29の回転角が各々の目標回転角と一致するようにサーボアンプ36を介して各サーボモータ25~29をフィードバック制御することで、ロボット11の各アーム15,17,19と手首部21とエンドエフェクタ23の位置を各々の目標位置にフィードバック制御する。
【0015】
図4の構成例では、サーボアンプ36は、複数のサーボモータ25~29をフィードバック制御する多軸アンプであるが、サーボモータ25~29を1台ずつ別々のサーボアンプでフィードバック制御するようにしても良い。
【0016】
図1及び
図2に示すように、ロボット11のアーム可動領域(手首部21先端側のエンドエフェクタ23が移動可能な領域)の所定位置には、作業対象となるワーク30を一定の高さ位置の作業エリア38に供給する供給装置39が設置されている。この供給装置39は、コンベアで構成したものであっても良いし、振動式パーツフィーダ等、どの様な構成のパーツフィーダを用いても良く、要は、作業エリア38の高さ位置が既知の一定の高さ位置であれば良い。本実施例では、複数台の供給装置39が並設されている。
【0017】
図1に示すように、ロボット11と複数台の供給装置39との間には、トレー搬送装置55が設置され、このトレー搬送装置55によって空のトレー56が供給装置39の作業エリア38の近くに配置された別の作業エリア57まで搬入される。ロボット11は、各供給装置39の作業エリア38に供給されたワーク30をエンドエフェクタ23でピックアップし、当該ワーク30をトレー搬送装置55の作業エリア57で停止しているトレー56に移し替えて整列させる作業を行う。ロボット11が所定数のワーク30をトレー56に移し替える毎に、トレー搬送装置55が搬送動作を再開して当該トレー56を搬出し、それと入れ替わりに次の空のトレー56を搬入する。
【0018】
図1及び
図2に示すように、ロボット11のアーム先端部である手首部21には、作業エリア38に供給されたワーク30を上方から撮像するハンドカメラ40が取り付けられている。このハンドカメラ40は、2次元の画像を撮像する2次元のカメラであり、光軸が第5関節軸22と平行で、且つ、ハンドカメラ40のレンズ41が第5関節軸22の先端側(アーム先端側)に位置するように固定されている。
【0019】
更に、ロボット11のアーム可動領域よりも高い場所に設置された固定構造物50(例えばロボット防護柵の天井)の所定位置には、固定カメラ51が下向きに固定され、そのレンズ52側が下方に向けられている。この固定カメラ51は、供給装置39の作業エリア38に供給されたワーク30及びトレー56に移し替えられたワーク30を視野に収めて上方から撮像する2次元のカメラとして使用される。
【0020】
供給装置39の作業エリア38に供給されたワーク30を撮像する場合には、要求される分解能やロボット11のアーム可動領域内における作業エリア38の位置等によってハンドカメラ40と固定カメラ51とを使い分けるようにしている。ここで、固定カメラ51の視野とハンドカメラ40の視野は、ロボット11のアーム可動領域よりも狭い。ハンドカメラ40と固定カメラ51とを比較すると、視野は固定カメラ51の方が広いが、分解能(1ピクセル当たりの撮像対象の実際の長さ)はハンドカメラ40の方が細かく、高精度の画像処理が可能である。従って、例えば、作業エリア38上のワーク30のサイズが小さくて細かい分解能が要求される場合には、ハンドカメラ40を使用し、また、固定カメラ51の視野から外れた位置に設置された作業エリア38についてはハンドカメラ40を使用するようにすれば良い。また、固定カメラ51の視野内に複数の作業エリア38が収まる場合には、固定カメラ51の視野内に複数の作業エリア38を収めて撮像すれば、複数の作業エリア38上のワーク30の画像処理を能率良く行うことかできる。或は、
図2に示すように、複数の作業エリア38が存在する場合に、作業エリア38毎にハンドカメラ40を移動させてワーク30を撮像するようにしても良い。
【0021】
図2に示すように、固定カメラ51の視野に収まる範囲内で各供給装置39の作業エリア38毎にその作業エリア38に対して所定の位置関係となる位置にマーク部61が1個又は複数個ずつ設けられている。各マーク部61は各供給装置39とそれぞれ一体化しており、各供給装置39の位置がずれた場合は各マーク部61も同方向に同量だけ位置ずれが起きる様に設定されている。各マーク部61の形状は、画像処理により各マーク部61の中心等の位置を正確に認識しやすい形状、例えば円形に形成されている。
【0022】
トレー搬送装置55の作業エリア57についても、固定カメラ51の視野に収まる範囲内で作業エリア57に対して所定の位置関係となる位置に1個又は複数個のマーク部62が設けられている。各マーク部62はトレー搬送装置55やトレー56とそれぞれ一体化しており、トレー搬送装置55やトレー56の位置がずれた場合は各マーク部62も同方向に同量だけ位置ずれが起きる様に設定されている。各マーク部62の形状は、画像処理により位置を正確に認識しやすい形状、例えば円形に形成されている。
【0023】
各マーク部61,62は、後述する異常診断で使用される他に、生産中に固定カメラ51の視野に各マーク部61,62を収めて撮像する場合には、ワーク30の位置は、最寄りのマーク部61,62の位置からの相対位置の座標値で表現される。この為にマーク部61,62をキャリブレーション時にあらかじめワールド座標上の座標値(X1w,Y1w)を計測し、記憶部46に記憶しておく。
【0024】
一般に、マーク部61,62の配置は、
図2に示す供給装置39のようにワーク検出対象領域が狭い場合には、1つの供給装置39に対して1つのマーク部61を配置すれば良い。一方、
図2、
図3に示すトレー56のようにワーク検出対象領域が比較的広い場合には、その領域の周辺に複数個のマーク部62を配置し、そのワーク検出対象領域をマーク部62の個数分に分割して、トレー56上のワーク30の位置は、最寄りのマーク部62の位置を基準点とする相対位置の座標値で算出する。
【0025】
図3の例では、トレー56の周辺に4個のマーク部62を配置し、ワーク検出対象領域を4つに分割して、トレー56上の各ワーク30の位置を、最寄りのマーク部62の位置を基準点とする相対位置の座標値で算出する。
【0026】
トレー56上のワーク30のうち、検出対象のワーク30(A)の最寄りのマーク部62は、
図3の左上のマーク部62(a)となるため、事前に記憶済みのマーク部62(a)の世界座標系の座標値である世界座標値(X1w,Y1w)と検出対象のワーク30(A)までの相対位置オフセット(ΔX1 ,ΔY1 )を用いて、トレー56上の検出対象のワーク30(A)の世界座標系の座標値(Xw ,Yw )を次式により算出する。
[Xw ,Yw ]=[X1w,Y1w]+[ΔX1 ,ΔY1 ]
トレー56上の他のワーク30についても、上記と同様に最寄りのマーク部62の位置からの相対位置によって算出される。
【0027】
上式に示したように、ワーク30の位置を最寄りのマーク部62の位置からの相対位置で表現することによって、世界座標系の基準点を複数もつことができる。通常の固定カメラ51の画像からの世界座標値の算出は、画像中心の1点の世界座標値を検出し、その相対値で表現しているため、画像の歪み等の要因で画像周辺部での検出精度が悪化することがあったが、画像周辺部に複数のマーク部61,62を配置して、各マーク部61,62の絶対座標からの相対値でワーク30の位置座標を算出することで、画像周辺部での検出精度を向上することができる。
【0028】
以上のように構成したロボット11の動作を制御するロボット制御ユニット42は、
図4に示すように、画像処理部43、座標変換部44、制御部37、検査実行部45及びサーボアンプ36等を備えた構成となっている。画像処理部43は、ハンドカメラ40で撮像した画像を処理して撮像対象の位置を当該画像の基準点を原点とする座標系(以下「ハンドカメラ40のビジョン座標系」という)の座標値で検出する第1画像処理部と、固定カメラ51で撮像した画像を処理して撮像対象の位置を当該画像の基準点(例えば画像の中心)を原点とする2次元の直交座標系(以下「固定カメラ51のビジョン座標系」という)の座標値で検出する第2画像処理部として機能する。前記第1画像処理部と前記第2画像処理部は、同一の画像処理装置で構成しても良いし、別々の画像処理装置で構成しても良い。各ビジョン座標系の座標軸は、画像上で直交するXv 軸とYv 軸である。供給装置39の作業エリア38上のワーク30をハンドカメラ40で撮像する際には、ハンドカメラ40の光軸を鉛直下向きに向けて撮像するため、ハンドカメラ40で撮像した画像は、固定カメラ51で撮像した画像と同様に、水平面を撮像した画像となり、ビジョン座標系のXv 軸とYv 軸は水平面上の直交座標軸となる。画像処理部43は、画像処理によってワーク30の位置をビジョン座標系のピクセル単位の座標値で検出する。
【0029】
一方、座標変換部44は、ロボット11の稼働中には、画像処理部43の画像処理でワーク30の位置として検出した2次元のビジョン座標系の座標値を、ロボット11の各アーム15,17,19と手首部21とエンドエフェクタ23の位置を制御するための世界座標系の座標値に変換する。この世界座標系は、基準点を原点とする3次元の直交座標系であり、世界座標系の座標軸は、水平面上の直交座標軸(X軸とY軸)と鉛直上向きの座標軸(Z軸)である。この世界座標系の座標値の単位は、長さの単位(例えばμm単位)である。この世界座標系の原点(基準点)は、例えば、ロボット11のアーム可動領域(手首部21先端側のエンドエフェクタ23が移動可能な領域)の中心である。
【0030】
この場合、座標変換部44は、ロボット11の稼働中に固定カメラ51のビジョン座標系の座標値を世界座標系の座標値に変換する場合には、座標変換パラメータを用いて固定カメラ51のビジョン座標系の座標値を世界座標系の座標値に変換する。ここで、座標変換パラメータは、固定カメラ51のビジョン座標系の原点を補正する原点補正パラメータと、固定カメラ51のビジョン座標系の座標軸の傾きを補正する座標軸傾き補正パラメータとを含む。
【0031】
一方、ハンドカメラ40のビジョン座標系の座標値を世界座標系の座標値に変換する場合には、世界座標系の座標軸に対するハンドカメラ40のビジョン座標系の座標軸の傾き角度Rzと原点を補正することによって、ハンドカメラ40のビジョン座標系の座標値を世界座標系の座標値に変換する。この補正は、それぞれの座標軸の傾き角度Rzを示す回転行列とビジョン座標原点の世界座標系上の位置(X1w,Y1w)への並進ベクトルとを求めることによって、ハンドカメラ40のビジョン座標系の座標値(Xav,Yav)を次式で補正して世界座標系の座標値(Xw',Yw')に変換することができる。
【0032】
【0033】
上式により、座標変換を行うためには、ハンドカメラ40のビジョン座標系の座標軸の傾き角度Rzと原点の座標値を測定する必要がある。
【0034】
ハンドカメラ40はロボット11の手首部21に固定されているため、ロボット11のアーム位置とハンドカメラ40との相対的位置関係は常に一定に維持される。従って、世界座標系のXY座標軸に対するハンドカメラ40のビジョン座標系の座標軸の傾き角度Rzは、次式により算出される。
【0035】
Rz=[ハンドカメラ40の設置角度]+[第1関節軸14の回転角度]
ここで、ハンドカメラ40の設置角度は、ロボット11の手首部21に対するハンドカメラ40の設置角度であり、ハンドカメラ40をロボット11の手首部21に設置したときに手首部21に対するハンドカメラ40の設置角度を測定してロボット制御ユニット42の不揮発性メモリ(図示せず)に保存しておいた値を参照する。
【0036】
第1関節軸14の回転角度の検出方法については、ロボット11のアーム位置(ハンドカメラ40の位置)が撮像位置で停止しているときの第1関節軸14のサーボモータ25のエンコーダ31の出力値をロボット制御ユニット42の制御部37がリアルタイムで取得して、第1関節軸14の回転角度を算出するようにしている。
【0037】
一方、ハンドカメラ40のビジョン座標系の原点の座標値は、ロボット制御ユニット42の制御部37がハンドカメラ40の撮像位置に指定した世界座標系の座標値と一致するようにロボット11へのハンドカメラ40組付け時にキャリブレーション済みの状態にしておく。ロボット11のアーム位置とハンドカメラ40との相対的位置関係は常に一定であるため、ロボット11の基準点とハンドカメラ40の光軸中心との間の距離を測定し、これを補正値として制御部37からの座標指令値に反映することによって、ロボット11に世界座標系上の位置(X1w 、Y1w )を指示すると、ハンドカメラ40のビジョン座標系の原点が世界座標系上の位置(X1w 、Y1w )に移動するように制御される。
【0038】
ロボット制御ユニット42の制御部37は、各エンコーダ31~35で検出した各サーボモータ25~29の回転角とハンドカメラ40と手首部21(エンドエフェクタ23)との相対的位置関係に基づいてリアルタイムでハンドカメラ40のビジョン座標系の原点の座標値(X1w,Y1w)を算出するようにしている。
【0039】
ロボット制御ユニット42の制御部37は、ロボット11の稼働中に座標変換部44で3次元の世界座標系の座標値に変換したワーク30の位置に基づいてロボット11の各アーム15,17,19と手首部21とエンドエフェクタ23の目標位置を世界座標系の座標値で設定して、当該アーム15,17,19と手首部21とエンドエフェクタ23の位置を世界座標系の座標値で制御する。
【0040】
次に、検査実行部45の機能について説明する。
検査実行部45は、固定カメラ51とハンドカメラ40を使用してロボット制御システムの異常診断を実行するものであり、後述する所定の検査実行条件が成立したときに、ハンドカメラ40の視野内にマーク部61,62が収まる位置へハンドカメラ40を移動させてハンドカメラ40でマーク部61,62を撮像して、その画像を画像処理部43で処理して当該マーク部61,62の位置をハンドカメラ40のビジョン座標系の座標値で検出して座標変換部44で世界座標系の座標値に変換する動作(以下「ハンドカメラ画像からのマーク部位置検出動作」という)と、固定カメラ51で全てのマーク部61,62を撮像して、その画像を画像処理部43で処理して全てのマーク部61,62の位置を固定カメラ51のビジョン座標系の座標値で検出して座標変換部44で世界座標系の座標値に変換する動作(以下「固定カメラ画像からのマーク部位置検出動作」という)とを実行する。
【0041】
検査実行部45が過去に行ったハンドカメラ画像からのマーク部位置検出動作で検出した過去のマーク部61,62の位置の座標値(以下「過去のハンドカメラ画像から検出した過去のマーク部61,62の位置の座標値」という)を記憶部46に記憶すると共に、検査実行部45が過去に行った固定カメラ画像からのマーク部位置検出動作で検出した過去のマーク部61,62の位置の座標値(以下「過去の固定カメラ画像から検出した過去のマーク部61,62の位置の座標値」という)を記憶部46に記憶する。ここで、記憶部46に記憶する過去のマーク部61,62の位置の座標値は、ロボット制御システムをキャリブレーションしたときに、ハンドカメラ画像からのマーク部位置検出動作及び固定カメラ画像からのマーク部位置検出動作を実行して検出したマーク部61,62の位置の座標値である。
【0042】
過去のマーク部61,62の位置の座標値を記憶する記憶部46は、電源オフ中でも記憶データを保持する書き換え可能な不揮発性の記憶媒体であり、例えば、HDD、SSD、フラッシュメモリ等により構成されている。
【0043】
検査実行部45は、今回行ったハンドカメラ画像からのマーク部位置検出動作で検出した今回のマーク部61,62の位置の座標値を記憶部46に記憶されている、前記過去のハンドカメラ画像から検出した過去のマーク部61,62の位置の座標値と比較すると共に、今回行った固定カメラ画像からのマーク部位置検出動作で検出した今回のマーク部61,62の位置の座標値を記憶部46に記憶されている、前記過去の固定カメラ画像から検出した過去のマーク部61,62の位置の座標値と比較し、それらの比較結果に基づいてロボット制御システムの異常診断を行い、その結果、異常ありと判定した場合には、前記今回のマーク部61,62の位置の座標値と前記過去のマーク部61,62の位置の座標値との比較結果の組み合わせに基づいて異常発生箇所を特定する。
【0044】
検査実行部45は、異常診断の結果を液晶ディスプレイ等の表示装置47や携帯端末(図示せず)に表示したり、或は音声によりロボット11を管理する作業者に通知する処理を行う。更に、検査実行部45は、異常発生箇所を特定した場合にはその異常発生箇所と対処方法を表示装置47や携帯端末に表示したり、音声により作業者に通知する処理を行う。
【0045】
本実施例では、検査実行部45は、生産開始前にロボット制御システムの異常診断を実行し、生産開始前に行ったハンドカメラ画像からのマーク部位置検出動作及び固定カメラ画像からのマーク部位置検出動作で検出した当該生産開始前のマーク部61,62の位置の座標値を記憶部46に記憶されている過去のマーク部61,62の位置の座標値と比較して各位置の座標値の変化量を算出し、いずれか1つでも座標値の変化量が許容誤差に相当する所定の閾値を超えていれば異常ありと判定する。
【0046】
更に、本実施例では、検査実行部45は、生産中に後述する所定の検査実行条件が成立したときに、前記固定カメラ画像からのマーク部位置検出動作を実行して当該生産中のマーク部61,62の位置の座標値を検出し、当該生産中のマーク部61,62の位置の座標値を記憶部46に記憶されている、過去の固定カメラ画像から検出した過去のマーク部61,62の位置の座標値と比較して、当該生産中の比較結果に基づいて異常診断し、その結果、異常ありと判定した場合には、前記ハンドカメラ画像からのマーク部位置検出動作を実行してマーク部61,62の位置の座標値を検出し、そのマーク部61,62の位置の座標値を記憶部46に記憶されている、前記過去のハンドカメラ画像から検出した過去のマーク部61,62の位置の座標値と比較し、その比較結果と前記生産中の比較結果との組み合わせに基づいて異常発生箇所を特定する。
【0047】
或は、検査実行部45は、生産中にロボット11がアーム動作を所定時間以上停止している期間に前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、固定カメラ51でマーク部61,62を撮像するのに邪魔にならない位置へロボット11のアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行してロボット制御システムの異常診断を行うようにしても良い。
【0048】
或は、検査実行部45は、生産中にハンドカメラ40でワーク30を撮像して当該ワーク30の位置を検出してロボット11が所定の作業を行う場合には、生産中にハンドカメラ40でワーク30を撮像する際に、当該ワーク30とマーク部61,62の少なくとも1つをハンドカメラ40の視野に収めて撮像して前記ハンドカメラ画像からのマーク部位置検出動作を実行すると共に、固定カメラ51でマーク部61,62を撮像するのに邪魔にならない位置へロボット11のアームが移動している期間に前記固定カメラ画像からのマーク部位置検出動作を実行してロボット制御システムの異常診断を行うようにしても良い。
【0049】
また、ロボット11を管理する作業者が入力装置48(キーボード、マウス、タッチパネル等)を操作して検査実行開始操作を行ったときにロボット制御システムの異常診断を実行するようにしても良い。
【0050】
ところで、ロボット11は、各供給装置39の作業エリア38に供給されたワーク30をエンドエフェクタ23でピックアップし、当該ワーク30をトレー搬送装置55の作業エリア57で停止しているトレー56に移し替えて整列させる作業を行うが、このロボット11の作業が異常になる原因としては、以下の3つの原因(1)~(3)が考えられる。
【0051】
[原因(1)]
原因(1)は、固定カメラ51又はハンドカメラ40の設置位置や設置角度が過去(キャリブレーション時)から変化したことが考えられる。この変化は、例えば、カメラ設置部材の経年変化や、ライン移動等によって固定カメラ51を再設置したときの設置位置や設置角度のずれによって発生するものと考えられる。
【0052】
[原因(2)]
原因(2)は、各供給装置39の作業エリア38又はトレー搬送装置55の作業エリア57のトレー56の位置や角度が過去(キャリブレーション時)から変化したことが考えられる。この変化は、例えば、ロボット11の振動、各供給装置39自身の振動、衝撃と供給装置39の移動、交換等による設置位置や設置角度の変化によって発生するものと考えられる。
【0053】
[原因(3)]
原因(3)は、ロボット11のアーム移動精度が悪化したことが考えられる。このアーム移動精度の悪化は、例えば、ロボット11の経年劣化、振動や衝撃等による組み付け状態の変化、エンドエフェクタ23の交換や再組み付けによるロボット11の座標系の変化によって発生するものと考えられる。
【0054】
そこで、本実施例では、以下の手順でロボット制御ユニット42がロボット制御システムの異常診断を実行する。
まず、ロボット制御システムをキャリブレーションしたときに、ロボット制御ユニット42が
図5のキャリブレーション時マーク部位置検出・記憶プログラムを実行して、キャリブレーション時のマーク部61,62の位置の世界座標値を検出して記憶部46に記憶する。マーク部61,62が設置されていない場合は、作業者がマーク部61,62を設置してからロボット制御ユニット42が
図5のキャリブレーション時マーク部位置検出・記憶プログラムを実行する。
【0055】
ロボット制御ユニット42は、
図5のキャリブレーション時マーク部位置検出・記憶プログラムを起動すると、まず、ステップ101で、ハンドカメラ40の視野内に検出対象となる1個又は複数個のマーク部61が収まる位置までロボット11の各アーム15,17,19を動作させてハンドカメラ40を移動させる。この後、ステップ102に進み、ハンドカメラ40でマーク部61を撮像し、次のステップ103で、ハンドカメラ40の画像を画像処理部43で処理して当該マーク部61,62の位置をハンドカメラ40のビジョン座標系の座標値で検出して座標変換部44で世界座標系の座標値である世界座標値[A0 ]に変換する。そして、次のステップ104で、このマーク部61,62の位置の世界座標値[A0 ]を記憶部46に記憶する。
【0056】
この後、ステップ105に進み、全てのマーク部61,62の位置の検出・記憶が終了したか否かを判定し、まだ終了していなければ、上述したステップ101~104の処理を繰り返して、残りのマーク部61,62の位置の検出・記憶を行う。このような処理を繰り返すことで、全てのマーク部61,62の位置の検出・記憶が終了した時点で、上記ステップ105の判定結果が「Yes」となり、ステップ106に進み、固定カメラ51で全てのマーク部61を撮像し、次のステップ107で、固定カメラ51の画像を画像処理部43で処理して全てのマーク部61,62の位置を固定カメラ51のビジョン座標系の座標値で検出して座標変換部44で世界座標値[B0 ]に変換する。そして、次のステップ108で、全てのマーク部61,62の位置の世界座標値[B0 ]を記憶部46に記憶して、本プログラムを終了する。
【0057】
その後、ロボット制御ユニット42は、生産開始前及び生産中に
図6乃至
図8のロボット制御システム異常診断プログラムを実行することで、ロボット制御システムの異常診断を行う。
【0058】
ロボット制御ユニット42は、
図6乃至
図8のロボット制御システム異常診断プログラムを起動すると、まずステップ201で、生産開始前の検査実行条件が成立するまで待機する。ここで、生産開始前の検査実行条件は、例えば、ロボット11が動作可能で、他の作業を行っていないこと等である。或は、作業者が入力装置48を操作して検査実行開始操作を行ったときに生産開始前の検査実行条件が成立するようにしても良い。また、生産開始前に、毎回、異常診断を行うようにしても良いが、生産実行回数や累積生産時間が所定値に達する毎に異常診断を行うようにしても良い。
【0059】
このステップ201で、生産開始前の検査実行条件が成立したと判定した時点で、ステップ202に進み、ハンドカメラ40の視野内に検出対象となる1個又は複数個のマーク部61が収まる位置までロボット11の各アーム15,17,19を動作させてハンドカメラ40を移動させる。この後、ステップ203に進み、ハンドカメラ40でマーク部61を撮像し、次のステップ204で、ハンドカメラ40の画像を画像処理部43で処理して当該マーク部61,62の位置をハンドカメラ40のビジョン座標系の座標値で検出して座標変換部44で世界座標値[A1 ]に変換する。そして、次のステップ205で、今回のマーク部61,62の位置の世界座標値[A1 ]を、記憶部46に記憶されている、キャリブレーション時のハンドカメラ40の画像から検出したキャリブレーション時のマーク部61,62の位置の世界座標値[A0 ]と比較して、各マーク部61,62の位置の世界座標値の変化量|[A0 ]-[A1 ]|を算出する。
【0060】
この後、ステップ206に進み、全てのマーク部61,62の位置の検出・比較が終了したか否かを判定し、まだ終了していなければ、上述したステップ202~205の処理を繰り返して、残りのマーク部61,62の位置の検出・比較を行う。
【0061】
このような処理を繰り返すことで、全てのマーク部61,62の位置の検出・比較が終了した時点で、上記ステップ206の判定結果が「Yes」となり、ステップ207に進み、固定カメラ51で全てのマーク部61を撮像し、次のステップ208で、固定カメラ51の画像を画像処理部43で処理して全てのマーク部61,62の位置を固定カメラ51のビジョン座標系の座標値で検出して座標変換部44で世界座標値[B1 ]に変換する。この後、ステップ209に進み、今回の全てのマーク部61,62の位置の世界座標値[B1 ]を、記憶部46に記憶されている、キャリブレーション時の固定カメラ51の画像から検出したキャリブレーション時のマーク部61,62の位置の世界座標値[B0 ]と比較して、各マーク部61,62の位置の世界座標値の変化量|[B0 ]-[B1 ]|を算出する。
【0062】
この後、
図7のステップ210に進み、上記ステップ205とステップ209で算出した各マーク部61,62の位置の世界座標値の変化量|[A0 ]-[A1 ]|と|[B0 ]-[B1 ]|をそれぞれ許容誤差に相当する所定の閾値と比較して、全てのマーク部61,62の位置の世界座標値の変化量|[A0 ]-[A1 ]|と|[B0 ]-[B1 ]|が共に閾値以内であれば、ステップ211に進み、ロボット制御システムが正常(異常なし)と判定して、ステップ212に進み、生産を開始する。
【0063】
これに対し、上記ステップ210で、各マーク部61,62の位置の世界座標値の変化量|[A0 ]-[A1 ]|と|[B0 ]-[B1 ]|のうちのいずれか1つでも閾値以上であると判定した場合には、ステップ217に進み、ロボット制御システムが異常であると判定して、ステップ218に進み、|[A0 ]-[A1 ]|と閾値との比較結果と、|[B0 ]-[B1 ]|と閾値との比較結果との組み合わせに基づいて異常発生箇所を特定して、次のステップ219で、表示装置47や携帯端末に異常の警告表示を行ったり、或は音声によりその異常を作業者に通知する処理を行うと共に、異常発生箇所と対処方法を表示装置47や携帯端末に表示したり、音声により作業者に通知する処理を行う。
【0064】
生産開始前は、例えば、以下の判定基準(1) ~(3) に従って異常発生箇所を特定して異常発生箇所と対処方法を作業者に通知する。
【0065】
(1) |[A0 ]-[A1 ]|≧閾値、且つ、|[B0 ]-[B1 ]|≧閾値の場合は、供給装置39又はトレー56(トレー搬送装置55)の位置や角度が異常(ずれ量が許容誤差を超える)と判定する。この場合の対処方法として、供給装置39とトレー56(トレー搬送装置55)の位置や角度を修正して、ハンドカメラ40と固定カメラ51のビジョン座標系を再キャリブレーションするように作業者に通知する。
【0066】
(2) |[A0 ]-[A1 ]|≧閾値、且つ、|[B0 ]-[B1 ]|<閾値の場合は、ロボット11のアーム移動精度(ロボット11内の座標系)が異常(ずれ量が許容誤差を超える)と判定する。この場合の対処方法として、エンドエフェクタ23の取付状態の確認とロボット11の再キャリブレーションを行うように作業者に通知する。
【0067】
(3) |[A0 ]-[A1 ]|<閾値、且つ、|[B0 ]-[B1 ]|≧閾値の場合は、固定カメラ51の設置位置や設置角度が異常(ずれ量が許容誤差を超える)と判定する。この場合の対処方法として、固定カメラ51の設置位置や設置角度を修正して固定カメラ51のビジョン座標系を再キャリブレーションするように作業者に通知する。
【0068】
生産開始後は、ステップ213に進み、生産中に固定カメラ51でワーク30を撮像するタイミングになる毎に、ステップ214以降の処理により生産中の異常診断を実行する。生産中に固定カメラ51でワーク30を撮像するタイミングになる毎に、毎回、異常診断を行うようにしても良いが、撮像回数が所定回数に達する毎に異常診断を行うようにしても良い。
【0069】
ワーク30を撮像するタイミング(異常診断実行タイミング)になった時点で、ステップ214に進み、固定カメラ51でワーク30とマーク部61,62を撮像する。そして、次のステップ215で、固定カメラ51の画像を画像処理部43で処理して全てのマーク部61,62の位置を固定カメラ51のビジョン座標系の座標値で検出して座標変換部44で世界座標値[B2 ]に変換する。この後、ステップ216に進み、今回の全てのマーク部61,62の位置の世界座標値[B2 ]を、記憶部46に記憶されている、キャリブレーション時の固定カメラ51の画像から検出したキャリブレーション時のマーク部61,62の位置の世界座標値[B0 ]と比較して、各マーク部61,62の位置の世界座標値の変化量|[B0 ]-[B2 ]|を算出する。
【0070】
この後、
図8のステップ220に進み、各マーク部61,62の位置の世界座標値の変化量|[B0 ]-[B2 ]|を許容誤差に相当する所定の閾値と比較して、全てのマーク部61,62の位置の世界座標値の変化量|[B0 ]-[B2 ]|が閾値以内であれば、ステップ221に進み、ロボット制御システムが正常(異常なし)と判定する。この場合は、ステップ222に進み、生産終了か否かを判定し、生産終了ではない(生産中)と判定すれば、
図7のステップ213に戻る。これにより、生産中は、固定カメラ51でワーク30を撮像するタイミング(異常診断実行タイミング)になる毎に、ロボット制御システムの異常診断が繰り返し実行され、生産が終了した時点で本プログラムも終了する。
【0071】
一方、上記ステップ220で、各マーク部61,62の位置の世界座標値の変化量|[B0 ]-[B2 ]|のうちのいずれか1つでも閾値以上であると判定した場合には、ステップ223に進み、ロボット制御システムが異常であると判定して、ステップ224に進み、ハンドカメラ40の視野内に検出対象となる1個又は複数個のマーク部61が収まる位置までロボット11の各アーム15,17,19を動作させてハンドカメラ40を移動させる。この後、ステップ225に進み、ハンドカメラ40でマーク部61を撮像し、次のステップ226で、ハンドカメラ40の画像を画像処理部43で処理して当該マーク部61,62の位置をハンドカメラ40のビジョン座標系の座標値で検出して座標変換部44で世界座標値[A2 ]に変換する。この後、ステップ227に進み、今回のマーク部61,62の位置の世界座標値[A2 ]を、記憶部46に記憶されている、キャリブレーション時のハンドカメラ40の画像から検出したキャリブレーション時のマーク部61,62の位置の世界座標値[A0 ]と比較して、各マーク部61,62の位置の世界座標値の変化量|[A0 ]-[A2 ]|を算出する。
【0072】
次のステップ228で、|[A0 ]-[A2 ]|と閾値との比較結果と、|[B0 ]-[B2 ]|と閾値との比較結果との組み合わせに基づいて異常発生箇所を特定して、次のステップ229で、表示装置47や携帯端末に異常の警告表示を行ったり、或は音声によりその異常を作業者に通知する処理を行うと共に、異常発生箇所と対処方法を表示装置47や携帯端末に表示したり、音声により作業者に通知する処理を行って、本プログラムを終了する。
【0073】
生産中は、例えば、以下の判定基準(1) ~(3) に従って異常発生箇所を特定して異常発生箇所と対処方法を作業者に通知する。
【0074】
(1) |[A0 ]-[A2 ]|≧閾値、且つ、|[B0 ]-[B2 ]|≧閾値の場合は、供給装置39又はトレー56(トレー搬送装置55)の位置や角度が異常(ずれ量が許容誤差を超える)と判定する。この場合の対処方法として、供給装置39とトレー56(トレー搬送装置55)の位置や角度を修正して、ハンドカメラ40と固定カメラ51のビジョン座標系を再キャリブレーションするように作業者に通知する。
【0075】
(2) |[A0 ]-[A2 ]|≧閾値、且つ、|[B0 ]-[B2 ]|<閾値の場合は、ロボット11のアーム移動精度(ロボット11内の座標系)が異常(ずれ量が許容誤差を超える)と判定する。この場合の対処方法として、エンドエフェクタ23の取付状態の確認とロボット11の再キャリブレーションを行うように作業者に通知する。
【0076】
(3) |[A0 ]-[A2 ]|<閾値、且つ、|[B0 ]-[B2 ]|≧閾値の場合は、固定カメラ51の設置位置や設置角度が異常(ずれ量が許容誤差を超える)と判定する。この場合の対処方法として、固定カメラ51の設置位置や設置角度を修正して固定カメラ51のビジョン座標系を再キャリブレーションするように作業者に通知する。
【0077】
以上説明した本実施例によれば、ロボット11の手首部21に取り付けられたハンドカメラ40と、ロボット11のアーム可動領域よりも高い場所に下向きに固定された固定カメラ51との両方で、作業エリア38,57に対して所定の位置関係で設けられたマーク部61,62を撮像して、ハンドカメラ40の画像と固定カメラ51の画像の両方で同じマーク部61,62の位置を検出して異常診断するため、前記特許文献1で誤判定の要因となっていたキャリブレーションステージやマスターワークを使用せずに異常診断することができる。しかも、ハンドカメラ40と固定カメラ51との両方で同じマーク部61,62を撮像するため、カメラ40,51の位置ずれかマーク部61,62の位置ずれかを判別することができ、異常診断の精度を向上させることができる。
【0078】
しかも、本実施例では、生産開始前にロボット制御システムの異常診断を行うと共に、生産中も固定カメラ51でワーク30を撮像する毎にロボット制御システムの異常診断を行うようにしているため、生産中にロボット11が正常動作できない状態に至る前に作業者に異常警告したり、異常発生箇所や適切な対処方法を通知することができる。これにより、ロボット11の座標系異常に起因する計画外停止や不良の発生を未然に防止できると共に、異常発生箇所のメンテナンスの時間とコストを削減することができ、ロボット制御システムの予知保全を実現することができる。
【0079】
更に、生産中も固定カメラ51でワーク30を撮像する毎にロボット制御システムの異常診断を行うようにしているため、生産中に異常が発生しても、その異常を直ぐに検出することができ、生産タクトへの影響を最小限に止めることができる。
【0080】
しかも、異常検知専用の追加設備やセンサ等による追加コスト、工数の発生がないので、導入がしやすい。更には、異常診断によりロボット11の座標系が正常な状態を確認してロボット11を動作させることができるため、ワーク30の位置検出精度の向上も実現できる。
【0081】
尚、本実施例では、マーク部61,62の形状を円形としたが、四角形等、他の形状であっても良く、要は、画像処理により各マーク部61,62の中心等の位置を正確に認識しやすい形状であれば良い。
【0082】
また、生産開始前のみにロボット制御システムの異常診断を行ったり、生産中にロボット11の作業ミスが発生したときに(或は作業ミスの発生回数や発生率が所定値を超えたときに)ロボット制御システムの異常診断を行うようにしても良い。
【0083】
その他、本発明は、ロボット11の構成を適宜変更しても良い等、要旨を逸脱しない範囲内で種々変更して実施できることは言うまでもない。
【符号の説明】
【0084】
11…ロボット、14…第1関節軸、15…第1アーム、16…第2関節軸、17…第2アーム、18…第3関節軸、19…第3アーム、20…第4関節軸、21…手首部(アーム先端部)、22…第5関節軸、23…エンドエフェクタ、25~29…サーボモータ、31~35…エンコーダ、36…サーボアンプ、37…制御部、38…作業エリア、39…供給装置、40…ハンドカメラ、41…レンズ、42…ロボット制御ユニット、43…画像処理部(第1画像処理部,第2画像処理部)、44…座標変換部、45…検査実行部、46…記憶部、50…固定構造物、51…固定カメラ、52…レンズ、55…トレー搬送装置、56…トレー、57…作業エリア、61,62…マーク部