(57)【特許請求の範囲】
【請求項１】
アームを有するロボットと、
前記アームの座標である第１座標を算出するとともに、前記アームの動作を制御するロボットコントローラと、
前記ロボット及びその周辺領域を撮像して画像を記録する画像記録ユニットと、
前記画像記録ユニットにより記録される画像に基づいて、前記アームの座標である第２座標を算出する算出手段と、
前記第１座標と前記第２座標との比較に基づいて、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する判定手段と、
を備え、
前記ロボットコントローラは、第１周期により繰り返し前記第１座標を算出するとともに、過去の前記第１座標を記憶し、
前記画像記録ユニットは、第２周期により繰り返し前記ロボット及びその周辺領域を撮像して画像を記録し、
前記判定手段は、過去の前記第１座標のうち前記画像記録ユニットにより撮像された時刻に対応する前記第１座標と、その撮像によって記録された前記画像に基づき前記算出手段により算出された前記第２座標との比較に基づいて、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定し、前記画像記録ユニットにより撮像された時刻から、前記算出手段により前記第２座標が算出された時刻までに前記ロボットコントローラにより算出された前記第１座標のいずれか１つと、その撮像によって記録された前記画像に基づき前記算出手段により算出された前記第２座標との差が、判定値よりも小さい場合に、前記ロボットコントローラ及び前記画像記録ユニットが正常であると判定することを特徴とするロボット監視システム。
【請求項２】
前記判定手段は、前記画像記録ユニットにより撮像された時刻から、前記算出手段により前記第２座標が算出された時刻までに前記ロボットコントローラにより算出された前記第１座標と、その撮像によって記録された前記画像に基づき前記算出手段により算出された前記第２座標との比較に基づいて、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する請求項１に記載のロボット監視システム。
【請求項３】
前記判定手段は、前記画像記録ユニットにより記録される画像において、前記第２座標を含む前記アームの範囲から前記第１座標が外れている場合に、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する請求項１又は２に記載のロボット監視システム。
【請求項４】
前記判定手段は、前記画像記録ユニットにより記録される画像において、前記アームの速度が速いほど大きく設定される領域を前記アームの周りに加えた範囲から前記第１座標が外れている場合に、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する請求項１〜３のいずれか１項に記載のロボット監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット及びその周辺領域を監視するシステムに関する。
【背景技術】
【０００２】
従来、ロボットを保護する監視システムにおいて、共通の視界領域を有する第１及び第２の画像記録ユニットを備え、視界領域内の仮想の保護区域に異物が侵入したときに、警報信号を発するものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１０−５１０５９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、一般に、画像記録ユニットで記録される画像に乱れが生じた場合、画像記録ユニットが故障したのか、又は画像に記録される対象が実際に変化したのか、それらを判定することは困難である。
【０００５】
特許文献１では、２つの画像記録ユニットを互いに対して単に冗長に作動させることを開示している。そうした構成であれば、２つの画像記録ユニットで記録される画像が互いに異なる場合に、いずれかの画像記録ユニットが故障していると判定することが可能となる。
【０００６】
しかしながら、そうした構成では、２つの画像記録ユニットが必要となるため、ロボット監視システムのコストが上昇することが避けられない。
【０００７】
本発明は、こうした実情に鑑みてなされたものであり、その主たる目的は、１つの画像記録ユニットのみを備えるロボット監視システムであっても、画像記録ユニットの故障を検出することを可能とすることである。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するために、以下の手段を採用した。
【０００９】
第１の発明は、アームを有するロボットと、前記アームの座標である第１座標を算出するとともに、前記アームの動作を制御するロボットコントローラと、前記ロボット及びその周辺領域を撮像して画像を記録する画像記録ユニットと、前記画像記録ユニットにより記録される画像に基づいて、前記アームの座標である第２座標を算出する算出手段と、前記第１座標と前記第２座標との比較に基づいて、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する判定手段と、を備えることを特徴とする。
【００１０】
上記構成によれば、ロボットはアームを有しており、ロボットコントローラにより、アームの座標である第１座標が算出されるとともに、アームの動作が制御される。また、画像記録ユニットによって、ロボット及びその周辺領域が撮像され、その画像が記録される。そして、算出手段によって、画像記録ユニットにより記録される画像に基づいて、アームの座標である第２座標が算出される。すなわち、異なる方法によって、共通のアームの座標がそれぞれ算出される。なお、ロボットコントローラは、アームの動作を制御する上でアームの座標を把握しているため、この座標を利用することにより、２つ目の画像記録ユニットの代わりを果たすことができる。
【００１１】
さらに、第１座標と第２座標との比較に基づいて、ロボットコントローラ及び画像記録ユニットのいずれか一方が故障していると判定される。例えば、第１座標と第２座標とが大きく異なる場合には、ロボットコントローラ及び画像記録ユニットのいずれか一方が故障していると判定することができる。そして、ロボットコントローラが故障しているか否かは、別の方法により比較的容易に判定することができる。したがって、１つの画像記録ユニットのみを備えるロボット監視システムであっても、画像記録ユニットの故障を検出することが可能となる。
【００１２】
第２の発明では、第１の発明において、前記ロボットコントローラは、第１周期により繰り返し前記第１座標を算出するとともに、過去の前記第１座標を記憶し、前記画像記録ユニットは、第２周期により繰り返し前記ロボット及びその周辺領域を撮像して画像を記録し、前記判定手段は、過去の前記第１座標のうち前記画像記録ユニットにより撮像された時刻に対応する前記第１座標と、その撮像によって記録された前記画像に基づき前記算出手段により算出された前記第２座標との比較に基づいて、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する。
【００１３】
上記構成によれば、ロボットコントローラによって、第１周期により繰り返し第１座標が算出されるとともに、過去の第１座標が記憶される。また、画像記録ユニットによって、第２周期により繰り返しロボット及びその周辺領域が撮像され、その画像が記録される。そして、算出手段によって、その記録される画像に基づいて、第２座標が算出される。
【００１４】
ここで、画像記録ユニットによる撮像から算出手段による第２座標の算出までに、画像処理等を行うための時間が必要となる。このため、第２座標が算出された時に、その時に算出された第１座標と比較を行うと、異なる時刻のアームに対して算出された座標を比較するおそれがある。
【００１５】
この点、上記構成によれば、判定手段による判定において、過去の第１座標のうち画像記録ユニットにより撮像された時刻に対応する第１座標と、その撮像によって記録された画像に基づき算出手段により算出された第２座標とが比較される。したがって、アームに対する時刻が対応している第１座標と第２座標とを比較することができ、故障判定の精度を向上させることができる。
【００１６】
第３の発明では、第２の発明において、前記判定手段は、前記画像記録ユニットにより撮像された時刻から、前記算出手段により前記第２座標が算出された時刻までに、前記ロボットコントローラにより算出された前記第１座標と、その撮像によって記録された前記画像に基づき前記算出手段により算出された前記第２座標との比較に基づいて、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する。
【００１７】
画像記録ユニットにより撮像された時刻よりも前に、ロボットコントローラにより算出された第１座標は、その撮像によって記録された画像に基づき算出手段により算出された第２座標とは対応しない。一方、画像記録ユニットによる撮像から算出手段による第２座標の算出までに必要な時間は必ずしも一定ではなく、その時間を予測することは容易ではない。
【００１８】
この点、上記構成によれば、画像記録ユニットにより撮像された時刻から、算出手段により第２座標が算出された時刻までに、ロボットコントローラにより算出された第１座標が選択される。また、その画像記録ユニットの撮像により記録された画像に基づいて、算出手段により算出された第２座標が選択される。そして、このように選択された第１座標と第２座標とが比較される。このため、第２座標と比較する第１座標の対象を必要十分とすることができ、故障判定の精度を向上させつつ演算負荷を軽減することができる。
【００１９】
第４の発明では、第２又は第３の発明において、前記判定手段は、前記画像記録ユニットにより撮像された時刻から、前記算出手段により前記第２座標が算出された時刻までに、前記ロボットコントローラにより算出された前記第１座標のいずれか１つと、その撮像によって記録された前記画像に基づき前記算出手段により算出された前記第２座標との差が、判定値よりも小さい場合に、前記ロボットコントローラ及び前記画像記録ユニットが正常であると判定する。
【００２０】
上記構成によれば、第２座標と比較する対象として必要十分な第１座標に対して、そのうちのいずれか１つと第２座標との差が判定値よりも小さい場合に、前記ロボットコントローラ及び前記画像記録ユニットが正常であると判定される。その結果、第３の発明と同様に演算負荷を軽減しつつ、ロボットコントローラ及び画像記録ユニットが正常であることを適切に判定することができる。
【００２１】
第５の発明では、第１〜第４のいずれかの発明において、前記判定手段は、前記画像記録ユニットにより記録される画像において、前記第２座標を含む前記アームの範囲から前記第１座標が外れている場合に、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する。
【００２２】
上記構成によれば、画像記録ユニットにより記録される画像において、第２座標を含むアームの範囲が第１座標の判定範囲として設定される。そして、その範囲から第１座標が外れている場合に、ロボットコントローラ及び画像記録ユニットのいずれか一方が故障していると判定される。このため、画像記録ユニットにより記録される画像に基づいて、第１座標の判定範囲を容易かつ適切に設定することができ、判定処理を簡潔に行うことができる。
【００２３】
第６の発明では、第１〜第５のいずれかの発明において、前記判定手段は、前記画像記録ユニットにより記録される画像において、前記アームの速度が速いほど大きく設定される領域を前記アームの周りに加えた範囲から前記第１座標が外れている場合に、前記ロボットコントローラ及び前記画像記録ユニットのいずれか一方が故障していると判定する。
【００２４】
ロボットのアームの速度が速い場合には、アームの速度が遅い場合よりも、アームの座標を算出する精度が低下すると予測される。したがって、第１座標の判定範囲を一律に設定した場合には、アームの速度によっては故障判定の精度が低下するおそれがある。
【００２５】
この点、上記構成によれば、画像記録ユニットにより記録される画像において、アームの速度が速いほど大きく設定される領域をアームの周りに加えた範囲が、第１座標の判定範囲として設定される。そして、その範囲から第１座標が外れている場合に、ロボットコントローラ及び画像記録ユニットのいずれか一方が故障していると判定される。このため、アームの速度に応じて第１座標の判定範囲を適切に設定することができ、故障判定の精度が低下することを抑制することができる。
【図面の簡単な説明】
【００２６】
【図１】ロボット監視システムの概要を示す模式図。
【図２】ロボット及びその周辺領域を監視する態様を示す平面図。
【図３】第１座標算出制御の処理手順を示すフローチャート。
【図４】第２座標算出及び故障判定制御の処理手順を示すフローチャート。
【図５】第１座標と第２座標とを比較する態様を示すタイムチャート。
【発明を実施するための形態】
【００２７】
以下、一実施形態について、図面を参照しつつ説明する。本実施形態は、機械組立工場等において、機械等の組み立てを行う産業用ロボットを監視するシステムとして具体化している。
【００２８】
図１は、ロボット監視システムの概要を示す模式図である。同図に示すように、ロボット監視システムは、ロボット１０と、ロボットコントローラ２０と、カメラ装置３０とを備えている。
【００２９】
ロボット１０は、垂直多関節型のロボットであり、複数の関節を有するアーム１１を備えている。アーム１１の先端には、ワークを把持及び開放するハンド部１１ａ（手先）が設けられている。ロボットの各関節には、それぞれモータが設けられており、これらのモータの回転によりアームが駆動される。各モータには、その出力軸を制動する電磁ブレーキと、出力軸の回転角度に応じたパルス信号を出力するエンコーダとがそれぞれ設けられている。ロボット１０は、アーム１１を動作させることにより、ワークに対する部品の組付けやワークの搬送等を行う。
【００３０】
ロボットコントローラ２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、データバッファ、駆動回路、位置検出回路等を備えている。これらは互いに電気的に接続されている。ＲＯＭは、ロボット１０のシステムプログラムや動作プログラム等を記憶している。ＲＡＭは、これらのプログラムを実行する際にパラメータの値等を記憶する。データバッファは、情報を時系列で一時的に記憶する。位置検出回路には、各エンコーダの検出信号がそれぞれ入力される。位置検出回路は、各エンコーダの検出信号に基づいて、各関節に設けられたモータの回転角度を検出する。
【００３１】
そして、ＣＰＵは、動作プログラムを実行することにより、位置検出回路から入力される位置情報に基づいて、ロボット１０の各関節の回転角度を目標回転角度にフィードバック制御する。本実施形態では、ＣＰＵは、各モータの回転角度に基づいてハンド部１１ａ及び各関節の座標（第１座標）を算出し、その座標とその時の時刻とを組にしてデータバッファに順次記憶させる。データバッファでは、こうした組のデータが複数記憶されている。
【００３２】
カメラ装置３０（画像記録ユニット）は、ＣＣＤカメラ、信号増幅部、Ａ／Ｄ変換部、差分画像取得部、動体検出部、判定部等を備えている。ＣＣＤカメラは、建物の天井に配置されており、ロボット１０及びその周辺領域を上方から撮像する。信号増幅部は、ＣＣＤカメラの出力信号を増幅する。Ａ／Ｄ変換部は、この増幅された映像信号をデジタル信号に変換する。差分画像取得部は、このデジタル信号とされた画像を所定の時間間隔で記録し、その記録された２つの画像の差分を求める。動体検出部は、差分画像を閾値で二値化して動体を検出する。判定部は、ロボット１０以外の動体の座標を算出し、その動体がロボット１０近傍の危険領域に入った場合に、ロボットコントローラ２０にロボット１０の停止命令を送信する。
【００３３】
図２は、ロボット及びその周辺領域を監視する態様を示す平面図である。同図に示すように、カメラ装置３０のＣＣＤカメラによる撮像において、ロボット１０及びその周辺領域の画像が取得される。そして、所定の時間間隔で記録された画像の差分が差分画像取得部により求められ、差分画像に基づいて動体検出部により動体が検出される。ここで、アーム１１の長さに基づいて、ロボット１０の周囲に危険領域Ｒが設定されている。ロボット１０以外の動体として作業者Ｍが危険領域Ｒ内に入った場合には、判定部からロボットコントローラ２０へロボット１０の停止命令が送信される。
【００３４】
本実施形態では、カメラ装置３０の判定部（算出手段）は、ロボット１０のアーム１１についても座標（第２座標）を算出する。そして、判定部（判定手段）は、上記ロボットコントローラ２０により算出されるアーム１１の座標（第１座標）と第２座標との比較に基づいて、ロボットコントローラ２０及びカメラ装置３０のいずれか一方が故障していると判定する。具体的には、第１座標と第２座標とが一致する場合、又は第１座標と第２座標との差が判定値よりも小さい場合には、ロボットコントローラ２０及びカメラ装置３０が正常であると判定する。一方、第１座標と第２座標とが不一致である場合、又は第１座標と第２座標との差が判定値よりも大きい場合には、ロボットコントローラ２０及びカメラ装置３０のいずれか一方が故障していると判定する。
【００３５】
図３は、第１座標算出制御の処理手順を示すフローチャートである。この一連の処理は、ロボットコントローラ２０により所定の周期（第１周期）で繰り返し実行される。
【００３６】
まず、アーム１１の各関節に設けられたモータの回転角度を取得する（Ｓ１１）。具体的には、位置検出回路は、各エンコーダの検出信号に基づいて、各関節に設けられたモータの回転角度を検出する。
【００３７】
続いて、各モータの回転角度をカメラ装置３０と同一の座標系に変換して、ハンド部１１ａ及び各関節の座標を算出する（Ｓ１２）。具体的には、ＣＰＵは、位置検出回路から入力される各モータの回転角度を水平面上の直交座標系（ｘｙ座標系）に変換して、ｘｙ平面上でのハンド部１１ａ及び各関節の座標（第１座標）を算出する。詳しくは、ハンド部１１ａの第１座標を（ｘ１，ｙ１）、第１関節の第１座標を（ｘ２，ｙ２）、第２関節の第１座標を（ｘ３，ｙ３）として算出する。このとき、図２に示した画像におけるｘｙ座標系の原点と、上記変換後のｘｙ座標系の原点とを一致させる。
【００３８】
続いて、ｘｙ座標系でのハンド部１１ａ及び各関節の第１座標と、その第１座標が算出された時刻ｔ１とを組にして、データバッファに記憶する（Ｓ１３）。具体的には、（ｘ1，ｙ1，ｔ1）、（ｘ２，ｙ２，ｔ１）・・・といった形式のデータを、データバッファに記憶する。なお、時刻ｔ２に算出されるハンド部１１ａ及び各関節の第１座標は、それぞれ（ｘ１，ｙ１，ｔ２）、（ｘ２，ｙ２，ｔ２）となる。そして、この一連の処理を一旦終了する（ＥＮＤ）。
【００３９】
図４は、第２座標算出及び故障判定制御の処理手順を示すフローチャートである。この一連の処理は、カメラ装置３０により所定の周期（第２周期）で繰り返し実行される。なお、この第２周期は、上記第１周期よりも長くなっており、詳しくは第１周期の略３倍となっている。
【００４０】
まず、撮像により記録された画像に基づいて、ロボット１０のアーム１１のシルエットを抜き出す（Ｓ２１）。具体的には、ＣＣＤカメラは、ロボット１０及びその周辺領域を撮像しており、差分画像取得部は、所定の時間間隔で記録された２つの画像の差分を求める。そして、動体検出部は、差分画像を閾値で二値化してアーム１１のシルエットを検出する。
【００４１】
続いて、検出されたアーム１１のシルエットに対して、そのシルエットを構成する各点の座標を算出する（Ｓ２２）。具体的には、カメラ装置３０の判定部は、上記ロボットコントローラ２０と同一のｘｙ座標系を基準として、各点の座標（第２座標）を算出する。詳しくは、第１点の第２座標を（ｘ１，ｙ１）、第２点の第２座標を（ｘ２，ｙ２）、第３点の第２座標を（ｘ３，ｙ３）として算出する。そして、それら第２座標とＣＣＤカメラにより撮像された時刻ｔ１とを組にして、（ｘ１，ｙ１，ｔ１）、（ｘ２，ｙ２，ｔ１）・・・といった形式のデータを作成する。これらのデータには、アーム１１のハンド部１１ａ及び各関節に対応する各点のデータも含まれている。
【００４２】
続いて、上記の撮像時刻ｔ１に対応する第１座標を、ロボットコントローラ２０のデータバッファから取得する（Ｓ２３）。上述したように、ロボットコントローラ２０のデータバッファには、ハンド部１１ａ及び各関節の第１座標とその算出時刻とを組にしたデータ（ｘ１，ｙ１，ｔ１），（ｘ２，ｙ２，ｔ１）・・・、（ｘ１，ｙ１，ｔ２），（ｘ２，ｙ２，ｔ２）・・・、（ｘ１，ｙ１，ｔ３），（ｘ２，ｙ２，ｔ３）・・・、が記憶されている。そこで、判定部は、データバッファから、撮像時刻ｔ１に対応する第１座標として、撮像時刻ｔ１から第２座標が算出された時刻ｔｎまでの期間に含まれる第１座標、すなわち第１座標集団を取得する。具体的には、（ｘ１，ｙ１，ｔ１），（ｘ２，ｙ２，ｔ１）・・・、（ｘ１，ｙ１，ｔ２），（ｘ２，ｙ２，ｔ２）・・・、  ・・・  、（ｘ１，ｙ１，ｔｎ−１），（ｘ２，ｙ２，ｔｎ−１）・・・、（ｘ１，ｙ１，ｔｎ），（ｘ２，ｙ２，ｔｎ）・・・、といったデータの各第１座標を取得する。
【００４３】
その後、第１座標集団のいずれかの時刻の第１座標が、アーム１１のシルエット内に含まれているか否か判定する（Ｓ２４）。具体的には、判定部は、上記のように作成した（ｘ１，ｙ１，ｔ１）、（ｘ２，ｙ２，ｔ１）・・・、といった撮像時刻ｔ１に対応するデータの各第２座標、すなわち撮像時刻ｔ１に対応するシルエットを構成する各点の第２座標を取得する。そして、第１座標集団のいずれかの時刻の第１座標において、ハンド部１１ａ及び各関節の第１座標が、各点の第２座標の中に全て含まれているか否か判定する。すなわち、第１座標集団のいずれかの時刻の第１座標において、ハンド部１１ａ及び各関節の第１座標が、各点の第２座標のいずれかと一致するか否か判定する。
【００４４】
上記判定において、第１座標集団のいずれかの時刻の第１座標が、アーム１１のシルエット内に含まれていると判定した場合には（Ｓ２４：ＹＥＳ）、ロボットコントローラ２０及びカメラ装置３０は正常であると判定して、この一連の処理を一旦終了する（ＥＮＤ）。一方、この判定において、第１座標集団のいずれの時刻の第１座標も、アーム１１のシルエット内に含まれていないと判定した場合には（Ｓ２４：ＮＯ）、第１座標集団のいずれかの時刻の第１座標が、アーム１１のシルエット及びその近傍領域内に含まれているか否か判定する（Ｓ２５）。
【００４５】
具体的には、判定部は、アーム１１のシルエットの周りに、アーム１１の速度に応じて近傍領域を設定する。この近傍領域は、アーム１１の速度が速いほど大きく設定される。なお、アーム１１の速度は、ロボットコントローラ２０からカメラ装置３０へ入力される。そして、第１座標集団のいずれかの時刻の第１座標において、ハンド部１１ａ及び各関節の第１座標が、アーム１１のシルエット及びその近傍領域内の各点の座標の中に全て含まれているか否か判定する。すなわち、第１座標集団のいずれかの時刻の第１座標において、ハンド部１１ａ及び各関節の第１座標が、アーム１１のシルエット及びその近傍領域内の各点の座標のいずれかと一致するか否か判定する。
【００４６】
上記判定において、第１座標集団のいずれかの時刻の第１座標が、アーム１１のシルエット及びその近傍領域内に含まれていると判定した場合には（Ｓ２５：ＹＥＳ）、ロボットコントローラ２０及びカメラ装置３０は正常であると判定して、この一連の処理を一旦終了する（ＥＮＤ）。一方、この判定において、第１座標集団のいずれの時刻の第１座標も、アーム１１のシルエット及びその近傍領域内に含まれていないと判定した場合には（Ｓ２５：ＮＯ）、ロボットコントローラ２０及びカメラ装置３０のいずれか一方が故障していると判定して、ロボット１０を停止させる（Ｓ２６）。具体的には、判定部は、ロボットコントローラ２０にロボット１０の停止命令を送信する。そして、この一連の処理を一旦終了する（ＥＮＤ）。
【００４７】
図５は、第１座標と第２座標とを比較する態様を示すタイムチャートである。
【００４８】
図５（ａ）に示すように、ロボットコントローラ２０では、第１周期により繰り返しハンド部１１ａ及び各関節の第１座標が算出される。各点Ｃ１，Ｃ２，・・・Ｃｎは、第１座標が算出されるタイミングを示している。
【００４９】
図５（ｂ）に示すように、カメラ装置３０では、第２周期により繰り返しＣＣＤカメラにより撮像が行われる。各点Ｓ１，Ｓ２，・・・Ｓｎは、ＣＣＤカメラによりロボット１０及びその周辺領域が撮像されるタイミングを示している。第２周期は、第１周期の略３倍の長さとなっている。
【００５０】
カメラ装置３０では、ＣＣＤカメラによる時刻ｔ１での撮像後に、信号の取込みや変換に期間Ｔ１１が必要とされ、差分画像の取得や、動体の検出、第２座標の算出に期間Ｔ１２が必要とされている。そして、カメラ装置３０において第２座標が算出される時刻ｔ２までに、ロボットコントローラ２０において点Ｃ２，Ｃ３で第１座標が算出されている。
【００５１】
ここで、時刻ｔ２に最も近い時刻の第１座標と、時刻ｔ１での撮像に基づき算出された第２座標とを比較すると、点Ｃ３でのロボット１０の座標を表す第１座標と、点Ｓ１でのロボット１０の座標を表す第２座標とを比較することとなる。したがって、ロボットコントローラ２０及びカメラ装置３０の故障を判定する精度が低下するおそれがある。
【００５２】
そこで、撮像時刻ｔ１から第２座標が算出された時刻ｔ２までの期間に算出された第１座標、すなわち点Ｃ１，Ｃ２，Ｃ３でそれぞれ算出された第１座標が取得される。そして、これら点Ｃ１，Ｃ２，Ｃ３で算出された第１座標のいずかが、ロボット１０のアーム１１のシルエット内に含まれているか否か判定される。すなわち、上記期間Ｔ１１，Ｔ１２の長さはその都度変化し、次の周期での期間Ｔ２１，Ｔ２２の長さと異なっている。しかしながら、点Ｓ１でのロボット１０の第２座標に対応する第１座標は、時刻ｔ１から時刻ｔ２までの期間に算出された第１座標集団に含まれることとなる。
【００５３】
そして、点Ｃ１での第１座標において、アーム１１のハンド部１１ａ及び各関節の第１座標が、アーム１１のシルエット内に全て含まれる場合には、ロボットコントローラ２０及びカメラ装置３０が正常と判定される。一方、点Ｃ１での第１座標において、アーム１１のハンド部１１ａ及び各関節の第１座標のいずれかが、アーム１１のシルエットから外れる場合には、点Ｃ１での第１座標は第２座標と一致しないと判定される。同様に、点Ｃ２，Ｃ３での第１座標も第２座標と比較される。
【００５４】
そして、点Ｃ２，Ｃ３での第１座標も第２座標と一致しないと判定された場合には、これら点Ｃ１，Ｃ２，Ｃ３で算出された第１座標のいずかが、アーム１１のシルエット及びその近傍領域内に含まれているか否か判定される。この判定において、点Ｃ１，Ｃ２，Ｃ３で算出された第１座標のいずかが、アーム１１のシルエット及びその近傍領域内に含まれる場合には、ロボットコントローラ２０及びカメラ装置３０が正常と判定される。一方、点Ｃ１，Ｃ２，Ｃ３での第１座標がいずれもアーム１１のシルエット及びその近傍領域内に含まれない場合には、ロボットコントローラ２０及びカメラ装置３０のいずれか一方が故障していると判定される。以後、同様にして、第２周期毎に第１座標と第２座標との比較が行われる。
【００５５】
なお、ロボットコントローラ２０が故障しているか否かは、例えばロボットコントローラ２０に接続され手動操作によりロボットを動作させるティーチングペンダント（教示操作器）を用いて、比較的容易に判定することができる。ティーチングペンダントは、ＣＰＵ、ＲＡＭ及びＲＯＭを含むマイクロコンピュータから構成さる制御部、各種の手動操作キー、ディスプレイ等を備えている。作業者Ｍは、このティーチングペンダントを手動操作して、ロボットの動作プログラムの作成、修正、登録、また各種パラメータの設定、ティーチングされた動作プログラムの実行、ジョグ送り等を実行することができる。
【００５６】
そして、作業者Ｍは、ティーチングペンダントを用いたロボットコントローラ２０の診断により、ロボットコントローラ２０が故障しているか否か判定することができる。この判定において、ロボットコントローラが故障していないと判定した場合には、カメラ装置３０が故障していると判定し、ロボットコントローラが故障していると判定した場合には、カメラ装置３０は正常であると判定することができる。
【００５７】
以上詳述した本実施形態は以下の利点を有する。
【００５８】
・ロボットコントローラ２０により、アーム１１のハンド部１１ａ及び各関節の座標である第１座標が算出される。また、カメラ装置３０によって、ロボット１０及びその周辺領域が撮像され、その画像が記録される。そして、判定部によって、カメラ装置３０により記録される画像に基づいて、アーム１１のハンド部１１ａ及び各関節の座標である第２座標が算出される。すなわち、ロボットコントローラ２０でのロボット１０の制御及びカメラ装置３０での画像処理によって、共通のアーム１１のハンド部１１ａ及び各関節の座標がそれぞれ算出される。さらに、第１座標と第２座標との比較に基づいて、ロボットコントローラ２０及びカメラ装置３０のいずれか一方が故障していると判定される。そして、ロボットコントローラ２０が故障しているか否かは、別の方法により比較的容易に判定することができる。したがって、１つのカメラ装置３０のみを備えるロボット監視システムであっても、カメラ装置３０の故障を検出することが可能となる。
【００５９】
・ロボットコントローラ２０によって、第１周期により繰り返し第１座標が算出されるとともに、過去の第１座標がデータバッファに記憶される。また、カメラ装置３０によって、第２周期により繰り返しロボット１０及びその周辺領域が撮像され、その画像が記録される。そして、判定部によって、その記録される画像に基づいて、第２座標が算出される。ここで、判定部による判定において、過去の第１座標のうちＣＣＤカメラにより撮像された時刻に対応する第１座標と、その撮像によって記録された画像に基づき判定部により算出された第２座標とが比較される。したがって、アーム１１に対する時刻が対応している第１座標と第２座標とを比較することができ、故障判定の精度を向上させることができる。
【００６０】
・ＣＣＤカメラにより撮像された時刻から、判定部により第２座標が算出された時刻までに、ロボットコントローラ２０により算出された第１座標集団が選択される。また、そのカメラ装置３０の撮像により記録された画像に基づいて、判定部により算出された第２座標が選択される。そして、このように選択された第１座標集団と第２座標とが比較される。このため、第２座標と比較する第１座標の対象を必要十分とすることができ、故障判定の精度を向上させつつ演算負荷を軽減することができる。
【００６１】
・さらに、第２座標と比較する対象として必要十分な第１座標（第１座標集団）に対して、そのうちのいずれかがアーム１１のシルエット内又はシルエットの近傍領域内に含まれる場合に、前記ロボットコントローラ２０及び前記カメラ装置３０が正常であると判定される。その結果、演算負荷を軽減しつつ、ロボットコントローラ２０及びカメラ装置３０が正常であることを適切に判定することができる。
【００６２】
・カメラ装置３０により記録される画像において、ハンド部１１ａ及び各関節に対応する点を含むアーム１１のシルエットが、第１座標の判定範囲として設定される。そして、その範囲から第１座標が外れている場合に、ロボットコントローラ２０及びカメラ装置３０のいずれか一方が故障している可能性ありとして、さらに次の判定が実行される。このため、カメラ装置３０により記録される画像に基づいて、第１座標の判定範囲を容易かつ適切に設定することができ、判定処理を簡潔に行うことができる。
【００６３】
・カメラ装置３０により記録される画像において、アーム１１の速度が速いほど大きく設定される近傍領域をシルエットの周りに加えた範囲が、第１座標の判定範囲として設定される。そして、その範囲から第１座標が外れている場合に、ロボットコントローラ２０及びカメラ装置３０のいずれか一方が故障していると判定される。このため、アーム１１の速度に応じて第１座標の判定範囲を適切に設定することができ、故障判定の精度が低下することを抑制することができる。
【００６４】
・２つのカメラ装置で記録される画像が互いに異なる場合に、いずれかのカメラ装置が故障していると判定する構成では、一方のカメラ装置により虫等の異物が撮像された場合に、直ちにいずれかのカメラ装置が故障していると判定される。これに対して、虫等の異物がカメラ装置３０により撮像されたとしても、第１座標がアーム１１のシルエット内又はシルエットの近傍領域内に含まれる場合には、ロボットコントローラ２０及びカメラ装置３０が正常であると判定される。したがって、虫等の異物により故障が誤検出されることを抑制することができる。
【００６５】
上記実施形態を、以下のように変形して実施することもできる。
【００６６】
・上記実施形態では、ロボットコントローラ２０は、各エンコーダの検出信号に基づいて、各関節に設けられたモータの回転角度を検出するようにしたが、各モータの目標回転角度を各モータの回転角度として代用することもできる。
【００６７】
・上記実施形態では、ロボット１０のアーム１１全体のシルエットを抜き出すようにしたが、アーム１１のうちハンド部１１ａ及び各関節に対応する部分付近のシルエットのみを抜き出すようにしてもよい。この場合には、第１座標と比較する対象となる第２座標の数を減らすことができるため、判定部の演算負荷を軽減して処理速度を向上させることができる。
【００６８】
・また、記録された画像中の各点の動きを表す動きベクトル（オプティカルフロー）を算出して、このオプティカルフローに基づいてアーム１１の動く方向についてのみ、アーム１１のシルエットを検出するようにしてもよい。この場合には、アーム１１のシルエットを抜き出す処理の演算負荷を軽減することができる。
【００６９】
・上記実施形態では、アーム１１のハンド部１１ａ及び各関節の第１座標が、アーム１１のシルエット内に全て含まれる場合に、ロボットコントローラ２０及びカメラ装置３０が正常であると判定した。しかしながら、アーム１１のハンド部１１ａ及び各関節の第１座標の一部が、アーム１１のシルエット内に含まれる場合に、ロボットコントローラ２０及びカメラ装置３０が正常と判定することもできる。
【００７０】
・上記実施形態では、直交座標系を採用したが、斜交座標系、円座標系等、その他の座標系を採用することもできる。
【００７１】
・図４に示す処理において、Ｓ２４の処理及びＳ２５の処理のいずれか一方のみを実行するようにしてもよい。
【００７２】
・上記実施形態では、撮像時刻ｔ１に対応する第１座標として、撮像時刻ｔ１から第２座標が算出された時刻ｔｎまでの期間に含まれる第１座標を取得したが、時刻ｔ１に最も近い時刻に算出された第１座標のみを取得してもよい。この場合には、第２座標と比較する対象となる第１座標の数を減らすことができるため、判定部の演算負荷を軽減して処理速度を向上させることができる。
【００７３】
・上記実施形態では、第１座標と第２座標との比較に基づいて、ロボットコントローラ２０及びカメラ装置３０の故障を判定する処理をカメラ装置３０により実行したが、この処理をロボットコントローラ２０により実行することもできる。また、カメラ装置３０により記録される画像に基づいて第２座標を算出する処理を、ロボットコントローラ２０により実行することもできる。
【００７４】
・上記実施形態では、ＣＣＤカメラは、ロボット１０及びその周辺領域を上方から撮像するようにしたが、ロボット１０及びその周辺領域を側方から撮像する構成等、その他の方向から撮像する構成を採用してもよい。
【００７５】
・カメラ装置３０は、ＣＣＤイメージセンサを備えるものに限らず、ＣＭＯＳイメージセンサを備えるもの等、その他の方式のデジタルカメラを備えるものでもよい。
【００７６】
・ロボット１０として、垂直多関節型のロボットに限らず、アームを有する任意の型式のロボットを採用することができる。
【符号の説明】
【００７７】
１０…ロボット、１１…アーム、２０…ロボットコントローラ、３０…カメラ装置（画像記録ユニット）。
【図１】
0005494384.tif 000002
【図２】
0005494384.tif 000003
【図３】
0005494384.tif 000004
【図４】
0005494384.tif 000005
【図５】
0005494384.tif 000006