説明

ロボット監視システム、及びロボット監視システムの異常判定方法

【課題】ロボットの移動先の異物等をリアルタイムで監視することのできるロボット監視システム、及びロボット監視システムの異常判定方法を提供する。
【解決手段】ロボットコントローラ30は、予め正常状態でアーム21を動作させた際に、カメラユニット40により取得された撮像画像と、算出された撮像時のアーム21の姿勢とを対応付けてデータ記憶部31に保存しておく。シミュレータ50は、アーム21が動作する際の各姿勢について、その姿勢から所定周期経過するまでにアーム21が動作する動作範囲を算出する。ロボットコントローラ30は、アーム21の動作を制御する際に、算出されるアーム21の姿勢に対応する正常状態の撮像画像をデータ憶部31から読み込み、カメラユニット40により取得される撮像画像と正常状態の撮像画像とにおいて、動作範囲に対応する部分を比較して異常の有無を判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット及びその周辺領域を監視するシステムに関する。
【背景技術】
【0002】
従来、設備の可動部が動作開始前、又は動作終了後に所定の位置にある場合の画像データを保存しておくものがある(例えば、特許文献1参照)。この特許文献1に記載のものによれば、可動部が動作中の画像データを保存せずとも、設備に異常が発生した場合に、保存されている画像データを後から調べることによって、異常原因の特定を行うことができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−228029号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のものは、組立装置(ロボット)の動作が終了して静止状態となった時点で、ワークや部品が所定の位置に存在しているか否かにより異常発生の有無を判定している。このため、特許文献1に記載のものは、組立装置の移動先に異物等が存在するか否かをリアルタイムで監視することができず、組立装置が異物等に衝突する前に組立装置を停止させることができない。
【0005】
また、ロボットの動作をリアルタイムで監視するためには、監視システムの処理負荷を軽減して、異常の有無を短時間で判定する必要がある。
【0006】
本発明は、こうした実情に鑑みてなされたものであり、その主たる目的は、ロボットの移動先の異物等をリアルタイムで監視することのできるロボット監視システム、及びロボット監視システムの異常判定方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明は、上記課題を解決するために、以下の手段を採用した。
【0008】
第1の発明は、アームを有するロボットと、所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、予め正常状態で前記アームを動作させた際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて記憶部に保存しておく保存部と、前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出部と、前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得部と、前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と前記画像取得部により取得される正常状態の撮像画像とにおいて、前記動作範囲算出部により算出される動作範囲に対応する部分を比較して異常の有無を判定する判定部と、を備えることを特徴とする。
【0009】
上記構成によれば、撮像ユニットにより、ロボット及びその周辺領域の撮像画像が取得される。そして、予め正常状態でアームを動作させた際に、保存部により、撮像ユニットにより取得された撮像画像と、制御部により算出された撮像時のアームの姿勢とが対応付けられて、記憶部に保存される。すなわち、正常状態におけるアームの撮像画像が、異常の有無を判定する際の基準の撮像画像として、予めアームの姿勢と対応付けられて記憶部に保存される。また、動作範囲算出部により、アームが動作する際の各姿勢について、その姿勢から所定周期経過するまでにアームが動作する動作範囲が算出される。すなわち、アームが動作する際の各瞬間において、その瞬間のアームの姿勢から、所定周期経過する瞬間のアームの姿勢までの動作範囲が算出される。
【0010】
ここで、画像取得部によって、制御部により算出されるアームの姿勢に対応する正常状態の撮像画像が、記憶部から取得される。そして、制御部によりアームの動作が制御される際に、判定部により、撮像ユニットにより取得される撮像画像と画像取得部により取得される正常状態の撮像画像とにおいて、上記動作範囲算出部により算出される動作範囲に対応する部分が比較されて異常の有無が判定される。すなわち、異常の有無の判定において、撮像ユニットにより取得される撮像画像と予め取得された正常状態の撮像画像とで、動作範囲に対応する部分のみを比較して異常の有無を判定することができる。このため、画像の比較を行う対象範囲をごく限られた範囲とすることができ、監視システムの処理負荷を軽減することができる。その結果、ロボットの動作先の異物等をリアルタイムで監視することができる。
【0011】
第2の発明では、前記動作範囲算出部は、前記アームが動作する際の各姿勢について、前記撮像ユニットにより取得される前記アームの前記撮像画像と、その前記所定周期後に前記撮像ユニットにより取得される前記アームの前記撮像画像とをシミュレーションにより作成し、それら作成される撮像画像の双方及びそれらの間を含む範囲を前記動作範囲として算出する。
【0012】
上記構成によれば、アームが動作する際の各姿勢について、撮像ユニットにより取得されるアームの撮像画像と、その所定周期後に撮像ユニットにより取得されるアームの撮像画像とが、シミュレーションにより作成される。このため、アーム以外の背景も含む実際の撮像画像を画像処理して、アームのみの撮像画像を取得する場合と比較して、撮像ユニットによる撮像状態に影響されることなく、アームの撮像画像を正確に作成することができる。したがって、それら作成される撮像画像の双方及びそれらの間を含む範囲として、上記動作範囲を正確に算出することができる。
【0013】
具体的には、第3の発明のように、前記動作範囲算出部は、前記作成される前記アームの撮像画像の双方及びそれらの間を含むように最小の矩形で囲んだ範囲内を、前記動作範囲として算出するといった構成を採用することができる。こうした構成によれば、作成されるアームの撮像画像の双方及びそれらの間を含む範囲を、容易に決定することができる。
【0014】
第4の発明では、前記保存部は、前記ロボットに所定の動作をティーチングした際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて保存しておく。
【0015】
上記構成によれば、ロボットに所定の動作をティーチングした際に、撮像ユニットにより取得された撮像画像と、制御部により算出された撮像時のアームの姿勢とが対応付けられて保存される。このため、ティーチング時に、正常状態における撮像画像の取得と撮像時のアームの姿勢との対応付け及び保存を完了することができ、これらの対応付け及び保存を行うためにロボットに特別な動作をさせる必要がない。なお、ティーチングは、適切にティーチングが行われたかどうか確認するための動作テストを含むものとする。
【0016】
さらに、上述したように、画像の比較を行う対象範囲はごく限られた範囲であるため、ティーチング時に作業者がロボットの付近で操作している場合であっても、上記動作範囲内に作業者が入る可能性は極めて低い。したがって、ティーチングに際して上記対応付け及び保存を行う場合であっても、正常状態における撮像画像を適切に取得することができる。
【0017】
第5の発明では、前記動作範囲算出部は、前記ロボットに所定の動作をティーチングした際に、前記動作範囲を算出しておく。
【0018】
上記構成によれば、ロボットに所定の動作をティーチングした際に、上記動作範囲が算出される。このため、ティーチング時に、動作範囲の算出を完了することができ、動作範囲を算出するためにロボットに特別な動作をさせる必要がない。
【0019】
特に、第4の発明と第5の発明とを組み合わせた場合には、正常状態における撮像画像の取得と撮像時のアームの姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方をティーチング時に完了することができる。したがって、異常の有無を判定するための事前準備を更に容易に行うことができる。
【0020】
第6の発明では、前記画像取得部は、前記記憶部に保存された撮像画像のうち、前記制御部により算出される前記アームの姿勢に最も近い前記アームの姿勢と対応付けられた撮像画像を、前記正常状態の撮像画像として取得する。
【0021】
上記構成によれば、記憶部に保存された撮像画像のうち、制御部により算出されるアームの姿勢に最も近いアームの姿勢と対応付けられた撮像画像が、正常状態の撮像画像として取得される。このため、制御部により算出されたアームの姿勢と一致する姿勢の撮像画像が保存されていない場合であっても、正常状態の撮像画像を適切に取得することができる。
【0022】
具体的には、第7の発明のように、前記判定部は、前記撮像ユニットにより取得される撮像画像の前記動作範囲に対応する部分と、前記画像取得部により取得される正常状態の撮像画像の前記動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定するといった構成を採用することができる。こうした構成によれば、画像の類似度が閾値と比較されることで判定が行われるため、画像処理により撮像画像におけるアームの重心や面積を算出して判定を行う構成と比較して、監視システムにおける処理負荷を軽減することができる。
【0023】
第8の発明は、アームを有するロボットと、所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、前記撮像画像及び前記アームの姿勢を保存する記憶部と、を備えるロボット監視システムの異常判定方法であって、正常状態で前記アームを動作させる際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて前記記憶部に保存する保存工程と、前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出工程と、前記保存工程の後に、前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得工程と、前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と、前記画像取得工程で取得される正常状態の撮像画像とにおいて、前記動作範囲算出工程で算出される動作範囲に対応する部分を比較して異常の有無を判定する判定工程と、を備えることを特徴とする。
【0024】
上記工程によれば、第1の発明と同様の作用効果を奏することができる。
【0025】
第9の発明では、前記保存工程は、前記ロボットに所定の動作をティーチングする際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて保存する工程である。
【0026】
上記工程によれば、第4の発明と同様の作用効果を奏することができる。
【0027】
第10の発明では、前記動作範囲算出工程は、前記ロボットに所定の動作をティーチングする際に、前記動作範囲を算出する工程である。
【0028】
上記工程によれば、第5の発明と同様の作用効果を奏することができる。
【0029】
特に、第9の発明と第10の発明とを組み合わせた場合には、正常状態における撮像画像の取得と撮像時のアームの姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方をティーチング時に完了することができる。
【図面の簡単な説明】
【0030】
【図1】ロボット監視システムの概要を示す模式図。
【図2】ティーチング及びシミュレーションの処理手順を示すフローチャート。
【図3】動作範囲算出及び異常判定の処理手順を示すフローチャート。
【図4】動作範囲算出の態様を示す図。
【発明を実施するための形態】
【0031】
以下、一実施形態について、図面を参照しつつ説明する。本実施形態は、機械組立工場等において、機械等の組み立てを行う産業用ロボットを監視するシステムとして具体化している。
【0032】
図1は、ロボット監視システムの概要を示す模式図である。同図に示すように、ロボット監視システム10は、ロボット20、ロボットコントローラ30、カメラユニット40、及びシミュレータ50を備えている。
【0033】
ロボット20は、垂直多関節型のロボットであり、6つ(複数)の関節を有するアーム21を備えている。アーム21の各関節には、それぞれモータが設けられており、これらのモータの回転によりアーム21が駆動される。各モータには、その出力軸を制動する電磁ブレーキと、出力軸の回転角度に応じたパルス信号を出力するエンコーダとがそれぞれ設けられている。ロボット20は、アーム21を動作させることにより、ワークに対する部品の組付けやワークの搬送等の作業を行う。
【0034】
ロボットコントローラ30は、CPU、ROM、RAM、データ記憶部31、駆動回路、位置検出回路等を備えている。ROMは、ロボット20のシステムプログラムや動作プログラム等を記憶している。RAMは、これらのプログラムを実行する際にパラメータの値等を記憶する。データ記憶部31(記憶部)は、上記カメラユニット40及びシミュレータ50から入力されるデータ等を記憶する。位置検出回路には、各エンコーダの検出信号がそれぞれ入力される。位置検出回路は、各エンコーダの検出信号に基づいて、各関節に設けられたモータの回転角度を検出する。
【0035】
そして、CPU(制御部)は、動作プログラムを実行することにより、位置検出回路から入力される位置情報に基づいて、アーム21の各関節の回転角度(アーム21の姿勢)を目標回転角度(目標姿勢)にフィードバック制御する。
【0036】
カメラユニット40(撮像ユニット)は、CCDカメラ、信号増幅部、A/D変換部等を備えている。CCDカメラは、建物の天井に配置されており、ロボット20及びその周辺領域を上方から撮像する。信号増幅部は、CCDカメラの出力信号を増幅する。A/D変換部は、この増幅された映像信号をデジタル信号(撮像画像)に変換する。
【0037】
シミュレータ50(動作範囲算出部)は、CPU、ROM、RAM等よりなるマイクロコンピュータを主体として構成されている。シミュレータ50は、シミュレーションプログラムを実行することでロボット20S(シミュレーション上のロボット20)の動作を模擬的に現出し、カメラユニット40によるロボット20SのS撮像画像(シミュレーション上の撮像画像)を模擬的に作成する。
【0038】
図2は、ティーチング及びシミュレーションの処理手順を示すフローチャートである。なお、これらの一連の処理の実行に先立って、ロボット20のロボット座標系Σrと、カメラユニット40のカメラ座標系Σcと、作業者のワールド座標系Σwとの位置関係を把握すべく、ロボット20及びカメラユニット40のキャリブレーションが実行される。
【0039】
まず、ティーチングにおいて、ロボットコントローラ30は、最終の動作テストとしてロボット20を動作させる(S10)。具体的には、作業者により所定の動作がロボット20にティーチングされており、ロボットコントローラ30は、作業時(機械等の組み立て時)と同様の条件で、その所定の動作をロボット20に実行させる。なお、ロボットコントローラ30は、所定の制御周期(例えば8ms)で、アーム21を目標姿勢に向けて動作させる。
【0040】
続いて、ロボットコントローラ30はその時のアーム21の姿勢データを取得し、カメラユニット40はその時のロボット20及びその周辺領域の撮像画像を取得する(S11)。具体的には、ロボットコントローラ30は、位置検出回路から入力される位置情報に基づいて、その制御周期におけるアーム21の各関節の回転角度(姿勢データ)を取得する。また、カメラユニット40は、CCDカメラの出力信号に基づいて、その制御周期におけるロボット20及びその周辺領域の撮像画像(デジタル信号)を取得する。カメラユニット40は、取得した撮像画像をロボットコントローラ30へ出力する。
【0041】
このとき、ロボットコントローラ30は、取得したアーム21の姿勢データと、カメラユニット40から入力した撮像画像とを対応付けて、データ記憶部31に保存する(S20)。すなわち、アーム21の移動先に障害物等が存在しない正常状態におけるアーム21の撮像画像として、ティーチング時に取得したアーム21の撮像画像を、アーム21の姿勢と対応付けて予めデータ記憶部31に保存する。
【0042】
続いて、ロボットコントローラ30は、ロボット20の1サイクルの動作が終了したか否か判定する(S12)。具体的には、ロボットコントローラ30は、今回の制御周期において、ティーチングされた所定の動作における動作終了姿勢まで、アーム21の姿勢が到達したか否か判定する。
【0043】
上記判定において、ロボット20の1サイクルの動作が終了していないと判定した場合には(S12:NO)、ロボットコントローラ30は、次の制御周期においてロボット20の動作を継続する(S10)。一方、上記判定において、ロボット20の1サイクルの動作が終了したと判定した場合には(S12:YES)、ロボットコントローラ30は、この一連の処理を終了する(END)。
【0044】
なお、上記S10〜S12、S20の処理が、保存部としての処理(保存工程)に相当する。
【0045】
上記ティーチングと並行して、シミュレータ50によりシミュレーションが実行される。
【0046】
まず、シミュレータ50は、シミュレーションの開始にあたって初期設定を実行する(S30)。具体的には、ロボット20及びカメラユニット40のキャリブレーション結果に基づいて、シミュレーションにおけるカメラユニット40(カメラユニット40S)と、シミュレーションにおけるロボット20(ロボット20S)との位置関係を設定する。
【0047】
続いて、シミュレータ50は、データ記憶部31から、ティーチングにおける各制御周期のアーム21の姿勢データを読み込む(S31)。具体的には、上記ティーチングにおいて、その制御周期でデータ記憶部31に保存された姿勢データを読み込む。
【0048】
続いて、シミュレータ50は、読み込んだ姿勢データに基づいて、シミュレーション上のロボット20Sのアーム21Sを動作させる(S32)。具体手には、シミュレータ50は、シミュレーション上のアーム21Sの姿勢を、読み込んだ姿勢データの姿勢と一致させるようにアーム21Sを動作させる。
【0049】
続いて、シミュレータ50は、シミュレーション上において、ロボット20Sのカメラユニット40Sによる撮像画像を作成する(S33)。具体的には、読み込んだ姿勢データの姿勢と一致するように動作させられたロボット20Sを、シミュレーション上のカメラユニット40Sにより撮像して、ロボット20Sのシミュレーション撮像画像(S撮像画像)を作成する。そして、シミュレータ50は、作成されたS撮像画像をデータ記憶部31に保存する(S20)。なお、ロボット20SのS撮像画像は、ロボット20Sのみを含むS撮像画像であり、ロボット20S以外の機器等を含んでいない。
【0050】
ここで、上記S31〜S33の処理は、上記ティーチングにおいて、その制御周期のアーム21の姿勢データがデータ記憶部31に保存される都度行われる。そして、ティーチングにおいて、ロボット20の1サイクルの動作が終了した場合には(S12:YES)、シミュレータ50は、上記シミュレーションの一連の処理を終了する(END)。
【0051】
図3は、動作範囲算出及び異常判定の処理手順を示すフローチャートである。上記シミュレーション(ティーチング)と並行して、シミュレータ50により動作範囲算出が実行される。
【0052】
まず、シミュレータ50は、データ記憶部31から、シミュレーションにおける各瞬間と次の制御周期でのS撮像画像を読み込む(S40)。具体的には、上記シミュレーションにおいて、連続する2つの制御周期でのS撮像画像がデータ記憶部31に保存された時に、シミュレータ50は、前の制御周期でのS撮像画像と次の制御周期でのS撮像画像とを、データ記憶部31から読み込む。
【0053】
続いて、シミュレータ50は、読み込んだ2つのS撮像画像をそれぞれ四角形で囲む(S41)。具体的には、図4(a)に実線で示すように、前の制御周期でのS撮像画像において、ロボット20Sのアーム21Sを含むように最小の矩形Aで囲む。また、図4(b)に二点鎖線で示すように、次の制御周期でのS撮像画像において、ロボット20Sのアーム21Sを含むように最小の矩形Bで囲む。
【0054】
続いて、上記2つの四角形を含む四角形として動作範囲を算出する(S42)。具体的には、図4(c)に示すように、上記矩形A及び矩形Bを含む最小の矩形C(ここでは矩形Bに一致)を作成し、矩形C内の範囲を動作範囲として算出する。この動作範囲は、前の制御周期でのアーム21SのS撮像画像、次の制御周期でのアーム21SのS撮像画像、及びそれらの間を含む範囲である。すなわち、アーム21(21S)の各姿勢ついての動作範囲は、ロボット20(20S)のアーム21(21S)が、前の制御周期(対象とする制御周期)から次の制御周期までに動作する範囲を示す領域である。
【0055】
このとき、シミュレータ50は、算出した動作範囲をデータ記憶部31に保存する(SS50)。
【0056】
続いて、シミュレータ50は、シミュレーションにおける各瞬間の全てについて上記動作範囲が算出されたか否か判定する(S43)。具体的には、シミュレータ50は、上記ティーチングにおいてロボット20の1サイクルの動作が終了し、上記シミュレーションにおいてロボット20SのS撮像画像の作成が終了したか否か判定する。
【0057】
上記判定において、シミュレーションにおける各瞬間の全てについて上記動作範囲が算出されていないと判定した場合には(S43:NO)、シミュレータ50は、上記S40〜S42の処理を再度実行する。
【0058】
一方、上記判定において、シミュレーションにおける各瞬間の全てについて上記動作範囲が算出されたと判定した場合には(S43:YES)、シミュレータ50は、上記動作範囲算出の一連の処理を終了する(END)。
【0059】
なお、上記S30〜S33、S40〜43の処理が、動作範囲算出部としての処理(動作範囲算出工程)に相当する。
【0060】
ロボット20の作業時(機械等の組み立て時)に、ロボットコントローラ30により異常判定が実行される。
【0061】
まず、ロボットコントローラ30は、ロボット20の作業時において、現在のアーム21の姿勢データを取得する(S60)。具体的には、ロボットコントローラ30は、位置検出回路から入力される位置情報に基づいて、現在の制御周期におけるアーム21の各関節の回転角度(姿勢データ)を取得する。
【0062】
続いて、ロボットコントローラ30は、カメラユニット40から、現在のロボット20の撮像画像を入力する(S61)。具体的には、カメラユニット40は、CCDカメラの出力信号に基づいて、ロボット20及びその周辺領域の撮像画像(デジタル信号)を連続的に取得している。そこで、ロボットコントローラ30は、カメラユニット40から、現在のロボット20及びその周辺領域を撮像した撮像画像を入力する。なお、カメラユニット40がロボット20を撮像する周期(例えば1ms)は、ロボットコントローラ30がロボット20を制御する周期(例えば8ms)よりも短くなっている。
【0063】
続いて、ロボットコントローラ30は、現在のアーム21の姿勢に対応付けられた正常時の撮像画像と、現在のアーム21の姿勢についての上記動作範囲とを、上記データ記憶部31から読み込む(S62)。具体的には、ロボットコントローラ30は、現在の制御周期におけるアーム21の姿勢に最も近い姿勢の姿勢データをデータ記憶部31から検索し、その姿勢データに対応付けられて記憶されている正常時(ティーチング時)の撮像画像を、データ記憶部31から読み込む。また、ロボットコントローラ30は、検索された姿勢データについて算出された動作範囲を、データ記憶部31から読み込む。
【0064】
続いて、ロボットコントローラ30は、現在のアーム21の姿勢についての動作範囲において、上記現在のロボット20の撮像画像と正常時の撮像画像との類似度を算出する(S63)。具体的には、ロボットコントローラ30は、正規化相関に基づいて、現在のロボット20の撮像画像における上記動作範囲に対応する部分と、正常時の撮像画像における上記動作範囲に対応する部分との類似度を算出する。この類似度は、両者が同一の場合には1.0となり、両者が近いほど1.0に近い値となる。
【0065】
続いて、ロボットコントローラ30は、算出された類似度が閾値よりも高いか否か判定する(S64)。ここで、閾値は、上記動作範囲に障害物等が存在しないことを判定することのできる値、例えば0.9に設定されている。詳しくは、類似度が閾値よりも低い場合には、動作範囲に障害物等が存在する(異常あり)と判定する。
【0066】
上記判定において、算出された類似度が閾値よりも高いと判定した場合には(S64:YES)、ロボットコントローラ30は、ロボット20のアーム21を目標姿勢に向けて動作させる(S65)。そして、ロボットコントローラ30は、ロボット20の作業を継続し、上記S60〜S63の処理を再度実行する。
【0067】
一方、上記判定において、算出された類似度が閾値よりも高くないと判定した場合には(S64:NO)、ロボットコントローラ30は、ロボット20のアーム21を停止させる(S66)。そして、ロボットコントローラ30は、上記異常判定の一連の処理を終了する(END)。
【0068】
なお、上記S62の処理が、画像取得部としての処理(画像取得工程)に相当し、上記S63、S64の処理が、判定部としての処理(判定工程)に相当する。
【0069】
以上詳述した本実施形態は以下の利点を有する。
【0070】
・カメラユニット40により、ロボット20及びその周辺領域の撮像画像が取得される。そして、予めティーチング(正常状態)においてアーム21を動作させた際に、ロボットコントローラ30により、カメラユニット40により取得された撮像画像と、算出された撮像時のアーム21の姿勢とが対応付けられて、データ記憶部31に保存される。すなわち、ティーチングの最終動作テストにおけるアーム21の撮像画像が、異常の有無を判定する際の基準の撮像画像として、予めアーム21の姿勢と対応付けられてデータ記憶部31に保存される。また、シミュレータ50により、アーム21(21S)が動作する際の各姿勢について、その姿勢から所定周期経過するまでにアーム21(21S)が動作する動作範囲が算出される。すなわち、アーム21が動作する際の各瞬間において、その瞬間のアーム21の姿勢から、所定周期経過する瞬間のアーム21の姿勢までの動作範囲が算出される。
【0071】
ここで、ロボットコントローラ30によって、算出されるアーム21の姿勢に対応するティーチング時の撮像画像が、データ記憶部31から取得される。そして、ロボットコントローラ30によりアーム21の動作が制御される際に、カメラユニット40により取得される撮像画像とデータ記憶部31から取得されるティーチング時の撮像画像とにおいて、上記シミュレータ50により算出される動作範囲に対応する部分が比較されて異常の有無が判定される。すなわち、異常の有無の判定において、カメラユニット40により取得される撮像画像と予め取得されたティーチング時の撮像画像とで、動作範囲に対応する部分のみを比較して異常の有無を判定することができる。このため、画像の比較を行う対象範囲をごく限られた範囲とすることができ、ロボット監視システム10の処理負荷を軽減することができる。その結果、ロボット20の動作先の異物等をリアルタイムで監視することができる。
【0072】
・アーム21が動作する際の各姿勢について、カメラユニット40により取得されるアーム21の撮像画像と、その所定周期後にカメラユニット40により取得されるアーム21の撮像画像とが、シミュレーションにより作成される。このため、アーム21以外の背景も含む実際の撮像画像を画像処理して、アーム21のみの撮像画像を取得する場合と比較して、カメラユニット40による撮像状態に影響されることなく、アーム21の撮像画像を正確に作成することができる。したがって、それら作成される撮像画像の双方及びそれらの間を含む範囲として、上記動作範囲を正確に算出することができる。
【0073】
・シミュレータ50は、上記作成されるアーム21の撮像画像の双方及びそれらの間を含むように最小の矩形Cで囲んだ範囲内を、動作範囲として算出するといった構成を採用している。こうした構成によれば、作成されるアーム21の撮像画像の双方及びそれらの間を含む範囲を、容易に決定することができる。
【0074】
・ロボット20に所定の動作をティーチングした際に、カメラユニット40により取得された撮像画像と、ロボットコントローラ30により算出された撮像時のアーム21の姿勢とが対応付けられて保存される。このため、ティーチングの最終動作テスト時に、正常状態における撮像画像の取得と撮像時のアーム21の姿勢との対応付け及び保存を完了することができ、これらの対応付け及び保存を行うためにロボット20に特別な動作をさせる必要がない。
【0075】
さらに、上述したように、画像の比較を行う対象範囲はごく限られた範囲であるため、ティーチング時に作業者がロボット20の付近で操作している場合であっても、上記動作範囲内に作業者が入る可能性は極めて低い。したがって、ティーチングに際して上記対応付け及び保存を行う場合であっても、正常状態における撮像画像を適切に取得することができる。
【0076】
詳しくは、カメラユニット40によりで撮像する際には、必ずしも必要でない領域も撮像されることが避けられない。例えば、工場内では組立工程以外にも切削工程等も行われることが多く、その場合に切り屑等が飛んだり、部品箱等の位置が一定でなかったりといったことが起こる。カメラユニット40によりそれらが撮像されると、画像の比較において異常ありと判定されるおそれがあり、その都度アーム21の動作が停止されると、生産効率が低下するおそれがある。これらの多くは、アーム21の動作に支障のない位置で行われているため、上記のように画像の比較を行う対象範囲をごく限られた範囲とすることにより、不要なアーム21の動作停止を抑制することができる。すなわち、本実施形態は、工場で用いられるロボット20の実情に合った非常に効率的なやり方といえる。
【0077】
・ロボット20に所定の動作をティーチングした際に、上記動作範囲が算出される。このため、ティーチング時に、動作範囲の算出を完了することができ、動作範囲を算出するためにロボット20に特別な動作をさせる必要がない。特に、正常状態における撮像画像の取得と撮像時のアーム21の姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方をティーチング時に完了することができる。したがって、異常の有無を判定するための事前準備を更に容易に行うことができる。
【0078】
・データ記憶部31に保存された撮像画像のうち、ロボットコントローラ30により算出されるアーム21の姿勢に最も近いアーム21の姿勢と対応付けられた撮像画像が、正常状態の撮像画像として取得される。このため、ロボットコントローラ30により算出されたアーム21の姿勢と一致する姿勢の撮像画像が保存されていない場合であっても、正常状態の撮像画像を適切に取得することができる。
【0079】
・ロボットコントローラ30は、カメラユニット40により取得される撮像画像の動作範囲に対応する部分と、データ記憶部31から取得される正常状態の撮像画像の動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定している。こうした構成によれば、画像の類似度が閾値と比較されることで判定が行われるため、画像処理により撮像画像におけるアーム21の重心や面積を算出して判定を行う構成と比較して、監視システムにおける処理負荷を軽減することができる。
【0080】
上記実施形態を、以下のように変形して実施することもできる。
・上記実施形態では、ロボットコントローラ30は、カメラユニット40により取得される撮像画像の動作範囲に対応する部分と、データ記憶部31から取得される正常状態の撮像画像の動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定した。しかしながら、ロボットコントローラ30は、画像処理により撮像画像におけるアーム21の重心や面積を算出して、カメラユニット40により取得される撮像画像の動作範囲に対応する部分と、データ記憶部31から取得される正常状態の撮像画像の動作範囲に対応する部分とを比較して、異常の有無を判定することもできる。
【0081】
・上記実施形態では、アーム21が動作する際の各姿勢について、カメラユニット40により取得されるアーム21の撮像画像と、その所定周期後にカメラユニット40により取得されるアーム21の撮像画像とを、シミュレーションにより作成した。しかしながら、ティーチング時に取得される撮像画像を用いて、アーム21以外の背景も含む実際の撮像画像を画像処理し、アーム21の各姿勢についての撮像画像を取得してもよい。
【0082】
・上記実施形態では、ティーチングに際して、正常状態における撮像画像の取得と撮像時のアーム21の姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方を実行した。しかしながら、ティーチングの終了後に、アーム21の各姿勢についての動作範囲を一括して算出することもできる。また、ティーチング以外のロボット20の動作時に、正常状態における撮像画像の取得と撮像時のアーム21の姿勢とを対応付けて保存することや、動作範囲を算出することを実行することもできる。
【0083】
・上記実施形態では、シミュレータ50は、上記作成されるアーム21の撮像画像の双方及びそれらの間を含むように最小の矩形Cで囲んだ範囲内を動作範囲として算出した。しかしながら、平行四辺形や円等、矩形以外の形状の枠で、上記作成されるアーム21の撮像画像の双方及びそれらの間を含むように囲んで、動作範囲を算出することもできる。
【0084】
・上記実施形態では、ロボットコントローラ30にデータ記憶部31を設けるようにしたが、外部のデータベースや、シミュレータ50にデータ記憶部31を設けるようにしてもよい。
【0085】
・上記実施形態では、カメラユニット40のCCDカメラは、ロボット20及びその周辺領域を上方から撮像するようにしたが、ロボット20及びその周辺領域を側方から撮像する構成等、その他の方向から撮像する構成を採用することもできる。
【0086】
・カメラユニット40は、CCDイメージセンサを備えるものに限らず、CMOSイメージセンサを備えるもの等、その他の方式のデジタルカメラを備えるものでもよい。
【0087】
・ロボット20として、垂直多関節型のロボットに限らず、アームを有する任意の型式のロボットを採用することができる。
【符号の説明】
【0088】
10…ロボット監視システム、20…ロボット、21…アーム、30…ロボットコントローラ、31…データ記憶部(記憶部)、40…カメラユニット(撮像ユニット)、50…シミュレータ(動作範囲算出部)。

【特許請求の範囲】
【請求項1】
アームを有するロボットと、
所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、
前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、
予め正常状態で前記アームを動作させた際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて記憶部に保存しておく保存部と、
前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出部と、
前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得部と、
前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と前記画像取得部により取得される正常状態の撮像画像とにおいて、前記動作範囲算出部により算出される動作範囲に対応する部分を比較して異常の有無を判定する判定部と、
を備えることを特徴とするロボット監視システム。
【請求項2】
前記動作範囲算出部は、前記アームが動作する際の各姿勢について、前記撮像ユニットにより取得される前記アームの前記撮像画像と、その前記所定周期後に前記撮像ユニットにより取得される前記アームの前記撮像画像とをシミュレーションにより作成し、それら作成される撮像画像の双方及びそれらの間を含む範囲を前記動作範囲として算出する請求項1に記載のロボット監視システム。
【請求項3】
前記動作範囲算出部は、前記作成される前記アームの撮像画像の双方及びそれらの間を含むように最小の矩形で囲んだ範囲内を前記動作範囲として算出する請求項2に記載のロボット監視システム。
【請求項4】
前記保存部は、前記ロボットに所定の動作をティーチングした際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて保存しておく請求項1〜3のいずれか1項に記載のロボット監視システム。
【請求項5】
前記動作範囲算出部は、前記ロボットに所定の動作をティーチングした際に、前記動作範囲を算出しておく請求項1〜4のいずれか1項に記載のロボット監視システム。
【請求項6】
前記画像取得部は、前記記憶部に保存された撮像画像のうち、前記制御部により算出される前記アームの姿勢に最も近い前記アームの姿勢と対応付けられた撮像画像を、前記正常状態の撮像画像として取得する請求項1〜5のいずれか1項に記載のロボット監視システム。
【請求項7】
前記判定部は、前記撮像ユニットにより取得される撮像画像の前記動作範囲に対応する部分と、前記画像取得部により取得される正常状態の撮像画像の前記動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定する請求項1〜6のいずれか1項に記載のロボット監視システム。
【請求項8】
アームを有するロボットと、所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、前記撮像画像及び前記アームの姿勢を保存する記憶部と、を備えるロボット監視システムの異常判定方法であって、
正常状態で前記アームを動作させる際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて前記記憶部に保存する保存工程と、
前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出工程と、
前記保存工程の後に、
前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得工程と、
前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と、前記画像取得工程で取得される正常状態の撮像画像とにおいて、前記動作範囲算出工程で算出される動作範囲に対応する部分を比較して異常の有無を判定する判定工程と、
を備えることを特徴とするロボット監視システムの異常判定方法。
【請求項9】
前記保存工程は、前記ロボットに所定の動作をティーチングする際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて保存する工程である請求項8に記載のロボット監視システムの異常判定方法。
【請求項10】
前記動作範囲算出工程は、前記ロボットに所定の動作をティーチングする際に、前記動作範囲を算出する工程である請求項8又は9に記載のロボット監視システムの異常判定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate