(57)【特許請求の範囲】
【請求項１】
アームを有するロボットと、
所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、
前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、
予め正常状態で前記アームを動作させた際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて記憶部に保存しておく保存部と、
前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出部と、
前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得部と、
前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と前記画像取得部により取得される正常状態の撮像画像とにおいて、前記動作範囲算出部により算出される動作範囲に対応する部分のみを比較して異常の有無を判定する判定部と、
を備えることを特徴とするロボット監視システム。
【請求項２】
前記動作範囲算出部は、前記アームが動作する際の各姿勢について、前記撮像ユニットにより取得される前記アームの前記撮像画像と、その前記所定周期後に前記撮像ユニットにより取得される前記アームの前記撮像画像とをシミュレーションにより作成し、それら作成される撮像画像の双方及びそれらの間を含む範囲を前記動作範囲として算出する請求項１に記載のロボット監視システム。
【請求項３】
前記動作範囲算出部は、前記作成される前記アームの撮像画像の双方及びそれらの間を含むように最小の矩形で囲んだ範囲内を前記動作範囲として算出する請求項２に記載のロボット監視システム。
【請求項４】
前記保存部は、前記ロボットに所定の動作をティーチングした際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて保存しておく請求項１〜３のいずれか１項に記載のロボット監視システム。
【請求項５】
前記動作範囲算出部は、前記ロボットに所定の動作をティーチングした際に、前記動作範囲を算出しておく請求項１〜４のいずれか1項に記載のロボット監視システム。
【請求項６】
前記画像取得部は、前記記憶部に保存された撮像画像のうち、前記制御部により算出される前記アームの姿勢に最も近い前記アームの姿勢と対応付けられた撮像画像を、前記正常状態の撮像画像として取得する請求項１〜５のいずれか1項に記載のロボット監視システム。
【請求項７】
前記判定部は、前記撮像ユニットにより取得される撮像画像の前記動作範囲に対応する部分と、前記画像取得部により取得される正常状態の撮像画像の前記動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定する請求項１〜６のいずれか1項に記載のロボット監視システム。
【請求項８】
アームを有するロボットと、所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、前記撮像画像及び前記アームの姿勢を保存する記憶部と、を備えるロボット監視システムの異常判定方法であって、
正常状態で前記アームを動作させる際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて前記記憶部に保存する保存工程と、
前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出工程と、
前記保存工程の後に、
前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得工程と、
前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と、前記画像取得工程で取得される正常状態の撮像画像とにおいて、前記動作範囲算出工程で算出される動作範囲に対応する部分を比較して異常の有無を判定する判定工程と、
を備えることを特徴とするロボット監視システムの異常判定方法。
【請求項９】
前記保存工程は、前記ロボットに所定の動作をティーチングする際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて保存する工程である請求項８に記載のロボット監視システムの異常判定方法。
【請求項１０】
前記動作範囲算出工程は、前記ロボットに所定の動作をティーチングする際に、前記動作範囲を算出する工程である請求項８又は９に記載のロボット監視システムの異常判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット及びその周辺領域を監視するシステムに関する。
【背景技術】
【０００２】
従来、設備の可動部が動作開始前、又は動作終了後に所定の位置にある場合の画像データを保存しておくものがある（例えば、特許文献１参照）。この特許文献１に記載のものによれば、可動部が動作中の画像データを保存せずとも、設備に異常が発生した場合に、保存されている画像データを後から調べることによって、異常原因の特定を行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２２８０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のものは、組立装置（ロボット）の動作が終了して静止状態となった時点で、ワークや部品が所定の位置に存在しているか否かにより異常発生の有無を判定している。このため、特許文献１に記載のものは、組立装置の移動先に異物等が存在するか否かをリアルタイムで監視することができず、組立装置が異物等に衝突する前に組立装置を停止させることができない。
【０００５】
また、ロボットの動作をリアルタイムで監視するためには、監視システムの処理負荷を軽減して、異常の有無を短時間で判定する必要がある。
【０００６】
本発明は、こうした実情に鑑みてなされたものであり、その主たる目的は、ロボットの移動先の異物等をリアルタイムで監視することのできるロボット監視システム、及びロボット監視システムの異常判定方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するために、以下の手段を採用した。
【０００８】
第１の発明は、アームを有するロボットと、所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、予め正常状態で前記アームを動作させた際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて記憶部に保存しておく保存部と、前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出部と、前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得部と、前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と前記画像取得部により取得される正常状態の撮像画像とにおいて、前記動作範囲算出部により算出される動作範囲に対応する部分を比較して異常の有無を判定する判定部と、を備えることを特徴とする。
【０００９】
上記構成によれば、撮像ユニットにより、ロボット及びその周辺領域の撮像画像が取得される。そして、予め正常状態でアームを動作させた際に、保存部により、撮像ユニットにより取得された撮像画像と、制御部により算出された撮像時のアームの姿勢とが対応付けられて、記憶部に保存される。すなわち、正常状態におけるアームの撮像画像が、異常の有無を判定する際の基準の撮像画像として、予めアームの姿勢と対応付けられて記憶部に保存される。また、動作範囲算出部により、アームが動作する際の各姿勢について、その姿勢から所定周期経過するまでにアームが動作する動作範囲が算出される。すなわち、アームが動作する際の各瞬間において、その瞬間のアームの姿勢から、所定周期経過する瞬間のアームの姿勢までの動作範囲が算出される。
【００１０】
ここで、画像取得部によって、制御部により算出されるアームの姿勢に対応する正常状態の撮像画像が、記憶部から取得される。そして、制御部によりアームの動作が制御される際に、判定部により、撮像ユニットにより取得される撮像画像と画像取得部により取得される正常状態の撮像画像とにおいて、上記動作範囲算出部により算出される動作範囲に対応する部分が比較されて異常の有無が判定される。すなわち、異常の有無の判定において、撮像ユニットにより取得される撮像画像と予め取得された正常状態の撮像画像とで、動作範囲に対応する部分のみを比較して異常の有無を判定することができる。このため、画像の比較を行う対象範囲をごく限られた範囲とすることができ、監視システムの処理負荷を軽減することができる。その結果、ロボットの動作先の異物等をリアルタイムで監視することができる。
【００１１】
第２の発明では、前記動作範囲算出部は、前記アームが動作する際の各姿勢について、前記撮像ユニットにより取得される前記アームの前記撮像画像と、その前記所定周期後に前記撮像ユニットにより取得される前記アームの前記撮像画像とをシミュレーションにより作成し、それら作成される撮像画像の双方及びそれらの間を含む範囲を前記動作範囲として算出する。
【００１２】
上記構成によれば、アームが動作する際の各姿勢について、撮像ユニットにより取得されるアームの撮像画像と、その所定周期後に撮像ユニットにより取得されるアームの撮像画像とが、シミュレーションにより作成される。このため、アーム以外の背景も含む実際の撮像画像を画像処理して、アームのみの撮像画像を取得する場合と比較して、撮像ユニットによる撮像状態に影響されることなく、アームの撮像画像を正確に作成することができる。したがって、それら作成される撮像画像の双方及びそれらの間を含む範囲として、上記動作範囲を正確に算出することができる。
【００１３】
具体的には、第３の発明のように、前記動作範囲算出部は、前記作成される前記アームの撮像画像の双方及びそれらの間を含むように最小の矩形で囲んだ範囲内を、前記動作範囲として算出するといった構成を採用することができる。こうした構成によれば、作成されるアームの撮像画像の双方及びそれらの間を含む範囲を、容易に決定することができる。
【００１４】
第４の発明では、前記保存部は、前記ロボットに所定の動作をティーチングした際に、前記撮像ユニットにより取得された撮像画像と、前記制御部により算出された撮像時の前記アームの姿勢とを対応付けて保存しておく。
【００１５】
上記構成によれば、ロボットに所定の動作をティーチングした際に、撮像ユニットにより取得された撮像画像と、制御部により算出された撮像時のアームの姿勢とが対応付けられて保存される。このため、ティーチング時に、正常状態における撮像画像の取得と撮像時のアームの姿勢との対応付け及び保存を完了することができ、これらの対応付け及び保存を行うためにロボットに特別な動作をさせる必要がない。なお、ティーチングは、適切にティーチングが行われたかどうか確認するための動作テストを含むものとする。
【００１６】
さらに、上述したように、画像の比較を行う対象範囲はごく限られた範囲であるため、ティーチング時に作業者がロボットの付近で操作している場合であっても、上記動作範囲内に作業者が入る可能性は極めて低い。したがって、ティーチングに際して上記対応付け及び保存を行う場合であっても、正常状態における撮像画像を適切に取得することができる。
【００１７】
第５の発明では、前記動作範囲算出部は、前記ロボットに所定の動作をティーチングした際に、前記動作範囲を算出しておく。
【００１８】
上記構成によれば、ロボットに所定の動作をティーチングした際に、上記動作範囲が算出される。このため、ティーチング時に、動作範囲の算出を完了することができ、動作範囲を算出するためにロボットに特別な動作をさせる必要がない。
【００１９】
特に、第４の発明と第５の発明とを組み合わせた場合には、正常状態における撮像画像の取得と撮像時のアームの姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方をティーチング時に完了することができる。したがって、異常の有無を判定するための事前準備を更に容易に行うことができる。
【００２０】
第６の発明では、前記画像取得部は、前記記憶部に保存された撮像画像のうち、前記制御部により算出される前記アームの姿勢に最も近い前記アームの姿勢と対応付けられた撮像画像を、前記正常状態の撮像画像として取得する。
【００２１】
上記構成によれば、記憶部に保存された撮像画像のうち、制御部により算出されるアームの姿勢に最も近いアームの姿勢と対応付けられた撮像画像が、正常状態の撮像画像として取得される。このため、制御部により算出されたアームの姿勢と一致する姿勢の撮像画像が保存されていない場合であっても、正常状態の撮像画像を適切に取得することができる。
【００２２】
具体的には、第７の発明のように、前記判定部は、前記撮像ユニットにより取得される撮像画像の前記動作範囲に対応する部分と、前記画像取得部により取得される正常状態の撮像画像の前記動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定するといった構成を採用することができる。こうした構成によれば、画像の類似度が閾値と比較されることで判定が行われるため、画像処理により撮像画像におけるアームの重心や面積を算出して判定を行う構成と比較して、監視システムにおける処理負荷を軽減することができる。
【００２３】
第８の発明は、アームを有するロボットと、所定周期で前記アームの姿勢を算出して前記アームの動作を制御する制御部と、前記ロボット及びその周辺領域の撮像画像を取得する撮像ユニットと、前記撮像画像及び前記アームの姿勢を保存する記憶部と、を備えるロボット監視システムの異常判定方法であって、正常状態で前記アームを動作させる際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて前記記憶部に保存する保存工程と、前記アームが動作する際の各姿勢について、その姿勢から前記所定周期経過するまでに前記アームが動作する動作範囲を算出する動作範囲算出工程と、前記保存工程の後に、前記制御部により算出される前記アームの姿勢に対応する正常状態の撮像画像を、前記記憶部から取得する画像取得工程と、前記制御部により前記アームの動作を制御する際に、前記撮像ユニットにより取得される撮像画像と、前記画像取得工程で取得される正常状態の撮像画像とにおいて、前記動作範囲算出工程で算出される動作範囲に対応する部分を比較して異常の有無を判定する判定工程と、を備えることを特徴とする。
【００２４】
上記工程によれば、第１の発明と同様の作用効果を奏することができる。
【００２５】
第９の発明では、前記保存工程は、前記ロボットに所定の動作をティーチングする際に、前記撮像ユニットにより取得される撮像画像と、前記制御部により算出される撮像時の前記アームの姿勢とを対応付けて保存する工程である。
【００２６】
上記工程によれば、第４の発明と同様の作用効果を奏することができる。
【００２７】
第１０の発明では、前記動作範囲算出工程は、前記ロボットに所定の動作をティーチングする際に、前記動作範囲を算出する工程である。
【００２８】
上記工程によれば、第５の発明と同様の作用効果を奏することができる。
【００２９】
特に、第９の発明と第１０の発明とを組み合わせた場合には、正常状態における撮像画像の取得と撮像時のアームの姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方をティーチング時に完了することができる。
【図面の簡単な説明】
【００３０】
【図１】ロボット監視システムの概要を示す模式図。
【図２】ティーチング及びシミュレーションの処理手順を示すフローチャート。
【図３】動作範囲算出及び異常判定の処理手順を示すフローチャート。
【図４】動作範囲算出の態様を示す図。
【発明を実施するための形態】
【００３１】
以下、一実施形態について、図面を参照しつつ説明する。本実施形態は、機械組立工場等において、機械等の組み立てを行う産業用ロボットを監視するシステムとして具体化している。
【００３２】
図１は、ロボット監視システムの概要を示す模式図である。同図に示すように、ロボット監視システム１０は、ロボット２０、ロボットコントローラ３０、カメラユニット４０、及びシミュレータ５０を備えている。
【００３３】
ロボット２０は、垂直多関節型のロボットであり、６つ（複数）の関節を有するアーム２１を備えている。アーム２１の各関節には、それぞれモータが設けられており、これらのモータの回転によりアーム２１が駆動される。各モータには、その出力軸を制動する電磁ブレーキと、出力軸の回転角度に応じたパルス信号を出力するエンコーダとがそれぞれ設けられている。ロボット２０は、アーム２１を動作させることにより、ワークに対する部品の組付けやワークの搬送等の作業を行う。
【００３４】
ロボットコントローラ３０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、データ記憶部３１、駆動回路、位置検出回路等を備えている。ＲＯＭは、ロボット２０のシステムプログラムや動作プログラム等を記憶している。ＲＡＭは、これらのプログラムを実行する際にパラメータの値等を記憶する。データ記憶部３１（記憶部）は、上記カメラユニット４０及びシミュレータ５０から入力されるデータ等を記憶する。位置検出回路には、各エンコーダの検出信号がそれぞれ入力される。位置検出回路は、各エンコーダの検出信号に基づいて、各関節に設けられたモータの回転角度を検出する。
【００３５】
そして、ＣＰＵ（制御部）は、動作プログラムを実行することにより、位置検出回路から入力される位置情報に基づいて、アーム２１の各関節の回転角度（アーム２１の姿勢）を目標回転角度（目標姿勢）にフィードバック制御する。
【００３６】
カメラユニット４０（撮像ユニット）は、ＣＣＤカメラ、信号増幅部、Ａ／Ｄ変換部等を備えている。ＣＣＤカメラは、建物の天井に配置されており、ロボット２０及びその周辺領域を上方から撮像する。信号増幅部は、ＣＣＤカメラの出力信号を増幅する。Ａ／Ｄ変換部は、この増幅された映像信号をデジタル信号（撮像画像）に変換する。
【００３７】
シミュレータ５０（動作範囲算出部）は、ＣＰＵ、ＲＯＭ、ＲＡＭ等よりなるマイクロコンピュータを主体として構成されている。シミュレータ５０は、シミュレーションプログラムを実行することでロボット２０Ｓ（シミュレーション上のロボット２０）の動作を模擬的に現出し、カメラユニット４０によるロボット２０ＳのＳ撮像画像（シミュレーション上の撮像画像）を模擬的に作成する。
【００３８】
図２は、ティーチング及びシミュレーションの処理手順を示すフローチャートである。なお、これらの一連の処理の実行に先立って、ロボット２０のロボット座標系Σｒと、カメラユニット４０のカメラ座標系Σｃと、作業者のワールド座標系Σｗとの位置関係を把握すべく、ロボット２０及びカメラユニット４０のキャリブレーションが実行される。
【００３９】
まず、ティーチングにおいて、ロボットコントローラ３０は、最終の動作テストとしてロボット２０を動作させる（Ｓ１０）。具体的には、作業者により所定の動作がロボット２０にティーチングされており、ロボットコントローラ３０は、作業時（機械等の組み立て時）と同様の条件で、その所定の動作をロボット２０に実行させる。なお、ロボットコントローラ３０は、所定の制御周期（例えば８ｍｓ）で、アーム２１を目標姿勢に向けて動作させる。
【００４０】
続いて、ロボットコントローラ３０はその時のアーム２１の姿勢データを取得し、カメラユニット４０はその時のロボット２０及びその周辺領域の撮像画像を取得する（Ｓ１１）。具体的には、ロボットコントローラ３０は、位置検出回路から入力される位置情報に基づいて、その制御周期におけるアーム２１の各関節の回転角度（姿勢データ）を取得する。また、カメラユニット４０は、ＣＣＤカメラの出力信号に基づいて、その制御周期におけるロボット２０及びその周辺領域の撮像画像（デジタル信号）を取得する。カメラユニット４０は、取得した撮像画像をロボットコントローラ３０へ出力する。
【００４１】
このとき、ロボットコントローラ３０は、取得したアーム２１の姿勢データと、カメラユニット４０から入力した撮像画像とを対応付けて、データ記憶部３１に保存する（Ｓ２０）。すなわち、アーム２１の移動先に障害物等が存在しない正常状態におけるアーム２１の撮像画像として、ティーチング時に取得したアーム２１の撮像画像を、アーム２１の姿勢と対応付けて予めデータ記憶部３１に保存する。
【００４２】
続いて、ロボットコントローラ３０は、ロボット２０の１サイクルの動作が終了したか否か判定する（Ｓ１２）。具体的には、ロボットコントローラ３０は、今回の制御周期において、ティーチングされた所定の動作における動作終了姿勢まで、アーム２１の姿勢が到達したか否か判定する。
【００４３】
上記判定において、ロボット２０の１サイクルの動作が終了していないと判定した場合には（Ｓ１２：ＮＯ）、ロボットコントローラ３０は、次の制御周期においてロボット２０の動作を継続する（Ｓ１０）。一方、上記判定において、ロボット２０の１サイクルの動作が終了したと判定した場合には（Ｓ１２：ＹＥＳ）、ロボットコントローラ３０は、この一連の処理を終了する（ＥＮＤ）。
【００４４】
なお、上記Ｓ１０〜Ｓ１２、Ｓ２０の処理が、保存部としての処理（保存工程）に相当する。
【００４５】
上記ティーチングと並行して、シミュレータ５０によりシミュレーションが実行される。
【００４６】
まず、シミュレータ５０は、シミュレーションの開始にあたって初期設定を実行する（Ｓ３０）。具体的には、ロボット２０及びカメラユニット４０のキャリブレーション結果に基づいて、シミュレーションにおけるカメラユニット４０（カメラユニット４０Ｓ）と、シミュレーションにおけるロボット２０（ロボット２０Ｓ）との位置関係を設定する。
【００４７】
続いて、シミュレータ５０は、データ記憶部３１から、ティーチングにおける各制御周期のアーム２１の姿勢データを読み込む（Ｓ３１）。具体的には、上記ティーチングにおいて、その制御周期でデータ記憶部３１に保存された姿勢データを読み込む。
【００４８】
続いて、シミュレータ５０は、読み込んだ姿勢データに基づいて、シミュレーション上のロボット２０Ｓのアーム２１Ｓを動作させる（Ｓ３２）。具体手には、シミュレータ５０は、シミュレーション上のアーム２１Ｓの姿勢を、読み込んだ姿勢データの姿勢と一致させるようにアーム２１Ｓを動作させる。
【００４９】
続いて、シミュレータ５０は、シミュレーション上において、ロボット２０Ｓのカメラユニット４０Ｓによる撮像画像を作成する（Ｓ３３）。具体的には、読み込んだ姿勢データの姿勢と一致するように動作させられたロボット２０Ｓを、シミュレーション上のカメラユニット４０Ｓにより撮像して、ロボット２０Ｓのシミュレーション撮像画像（Ｓ撮像画像）を作成する。そして、シミュレータ５０は、作成されたＳ撮像画像をデータ記憶部３１に保存する（Ｓ２０）。なお、ロボット２０ＳのＳ撮像画像は、ロボット２０Ｓのみを含むＳ撮像画像であり、ロボット２０Ｓ以外の機器等を含んでいない。
【００５０】
ここで、上記Ｓ３１〜Ｓ３３の処理は、上記ティーチングにおいて、その制御周期のアーム２１の姿勢データがデータ記憶部３１に保存される都度行われる。そして、ティーチングにおいて、ロボット２０の１サイクルの動作が終了した場合には（Ｓ１２：ＹＥＳ）、シミュレータ５０は、上記シミュレーションの一連の処理を終了する（ＥＮＤ）。
【００５１】
図３は、動作範囲算出及び異常判定の処理手順を示すフローチャートである。上記シミュレーション（ティーチング）と並行して、シミュレータ５０により動作範囲算出が実行される。
【００５２】
まず、シミュレータ５０は、データ記憶部３１から、シミュレーションにおける各瞬間と次の制御周期でのＳ撮像画像を読み込む（Ｓ４０）。具体的には、上記シミュレーションにおいて、連続する２つの制御周期でのＳ撮像画像がデータ記憶部３１に保存された時に、シミュレータ５０は、前の制御周期でのＳ撮像画像と次の制御周期でのＳ撮像画像とを、データ記憶部３１から読み込む。
【００５３】
続いて、シミュレータ５０は、読み込んだ２つのＳ撮像画像をそれぞれ四角形で囲む（Ｓ４１）。具体的には、図４（ａ）に実線で示すように、前の制御周期でのＳ撮像画像において、ロボット２０Ｓのアーム２１Ｓを含むように最小の矩形Ａで囲む。また、図４（ｂ）に二点鎖線で示すように、次の制御周期でのＳ撮像画像において、ロボット２０Ｓのアーム２１Ｓを含むように最小の矩形Ｂで囲む。
【００５４】
続いて、上記２つの四角形を含む四角形として動作範囲を算出する（Ｓ４２）。具体的には、図４（ｃ）に示すように、上記矩形Ａ及び矩形Ｂを含む最小の矩形Ｃ（ここでは矩形Ｂに一致）を作成し、矩形Ｃ内の範囲を動作範囲として算出する。この動作範囲は、前の制御周期でのアーム２１ＳのＳ撮像画像、次の制御周期でのアーム２１ＳのＳ撮像画像、及びそれらの間を含む範囲である。すなわち、アーム２１（２１Ｓ）の各姿勢ついての動作範囲は、ロボット２０（２０Ｓ）のアーム２１（２１Ｓ）が、前の制御周期（対象とする制御周期）から次の制御周期までに動作する範囲を示す領域である。
【００５５】
このとき、シミュレータ５０は、算出した動作範囲をデータ記憶部３１に保存する（ＳＳ５０）。
【００５６】
続いて、シミュレータ５０は、シミュレーションにおける各瞬間の全てについて上記動作範囲が算出されたか否か判定する（Ｓ４３）。具体的には、シミュレータ５０は、上記ティーチングにおいてロボット２０の１サイクルの動作が終了し、上記シミュレーションにおいてロボット２０ＳのＳ撮像画像の作成が終了したか否か判定する。
【００５７】
上記判定において、シミュレーションにおける各瞬間の全てについて上記動作範囲が算出されていないと判定した場合には（Ｓ４３：ＮＯ）、シミュレータ５０は、上記Ｓ４０〜Ｓ４２の処理を再度実行する。
【００５８】
一方、上記判定において、シミュレーションにおける各瞬間の全てについて上記動作範囲が算出されたと判定した場合には（Ｓ４３：ＹＥＳ）、シミュレータ５０は、上記動作範囲算出の一連の処理を終了する（ＥＮＤ）。
【００５９】
なお、上記Ｓ３０〜Ｓ３３、Ｓ４０〜４３の処理が、動作範囲算出部としての処理（動作範囲算出工程）に相当する。
【００６０】
ロボット２０の作業時（機械等の組み立て時）に、ロボットコントローラ３０により異常判定が実行される。
【００６１】
まず、ロボットコントローラ３０は、ロボット２０の作業時において、現在のアーム２１の姿勢データを取得する（Ｓ６０）。具体的には、ロボットコントローラ３０は、位置検出回路から入力される位置情報に基づいて、現在の制御周期におけるアーム２１の各関節の回転角度（姿勢データ）を取得する。
【００６２】
続いて、ロボットコントローラ３０は、カメラユニット４０から、現在のロボット２０の撮像画像を入力する（Ｓ６１）。具体的には、カメラユニット４０は、ＣＣＤカメラの出力信号に基づいて、ロボット２０及びその周辺領域の撮像画像（デジタル信号）を連続的に取得している。そこで、ロボットコントローラ３０は、カメラユニット４０から、現在のロボット２０及びその周辺領域を撮像した撮像画像を入力する。なお、カメラユニット４０がロボット２０を撮像する周期（例えば１ｍｓ）は、ロボットコントローラ３０がロボット２０を制御する周期（例えば８ｍｓ）よりも短くなっている。
【００６３】
続いて、ロボットコントローラ３０は、現在のアーム２１の姿勢に対応付けられた正常時の撮像画像と、現在のアーム２１の姿勢についての上記動作範囲とを、上記データ記憶部３１から読み込む（Ｓ６２）。具体的には、ロボットコントローラ３０は、現在の制御周期におけるアーム２１の姿勢に最も近い姿勢の姿勢データをデータ記憶部３１から検索し、その姿勢データに対応付けられて記憶されている正常時（ティーチング時）の撮像画像を、データ記憶部３１から読み込む。また、ロボットコントローラ３０は、検索された姿勢データについて算出された動作範囲を、データ記憶部３１から読み込む。
【００６４】
続いて、ロボットコントローラ３０は、現在のアーム２１の姿勢についての動作範囲において、上記現在のロボット２０の撮像画像と正常時の撮像画像との類似度を算出する（Ｓ６３）。具体的には、ロボットコントローラ３０は、正規化相関に基づいて、現在のロボット２０の撮像画像における上記動作範囲に対応する部分と、正常時の撮像画像における上記動作範囲に対応する部分との類似度を算出する。この類似度は、両者が同一の場合には１．０となり、両者が近いほど１．０に近い値となる。
【００６５】
続いて、ロボットコントローラ３０は、算出された類似度が閾値よりも高いか否か判定する（Ｓ６４）。ここで、閾値は、上記動作範囲に障害物等が存在しないことを判定することのできる値、例えば０．９に設定されている。詳しくは、類似度が閾値よりも低い場合には、動作範囲に障害物等が存在する（異常あり）と判定する。
【００６６】
上記判定において、算出された類似度が閾値よりも高いと判定した場合には（Ｓ６４：ＹＥＳ）、ロボットコントローラ３０は、ロボット２０のアーム２１を目標姿勢に向けて動作させる（Ｓ６５）。そして、ロボットコントローラ３０は、ロボット２０の作業を継続し、上記Ｓ６０〜Ｓ６３の処理を再度実行する。
【００６７】
一方、上記判定において、算出された類似度が閾値よりも高くないと判定した場合には（Ｓ６４：ＮＯ）、ロボットコントローラ３０は、ロボット２０のアーム２１を停止させる（Ｓ６６）。そして、ロボットコントローラ３０は、上記異常判定の一連の処理を終了する（ＥＮＤ）。
【００６８】
なお、上記Ｓ６２の処理が、画像取得部としての処理（画像取得工程）に相当し、上記Ｓ６３、Ｓ６４の処理が、判定部としての処理（判定工程）に相当する。
【００６９】
以上詳述した本実施形態は以下の利点を有する。
【００７０】
・カメラユニット４０により、ロボット２０及びその周辺領域の撮像画像が取得される。そして、予めティーチング（正常状態）においてアーム２１を動作させた際に、ロボットコントローラ３０により、カメラユニット４０により取得された撮像画像と、算出された撮像時のアーム２１の姿勢とが対応付けられて、データ記憶部３１に保存される。すなわち、ティーチングの最終動作テストにおけるアーム２１の撮像画像が、異常の有無を判定する際の基準の撮像画像として、予めアーム２１の姿勢と対応付けられてデータ記憶部３１に保存される。また、シミュレータ５０により、アーム２１（２１Ｓ）が動作する際の各姿勢について、その姿勢から所定周期経過するまでにアーム２１（２１Ｓ）が動作する動作範囲が算出される。すなわち、アーム２１が動作する際の各瞬間において、その瞬間のアーム２１の姿勢から、所定周期経過する瞬間のアーム２１の姿勢までの動作範囲が算出される。
【００７１】
ここで、ロボットコントローラ３０によって、算出されるアーム２１の姿勢に対応するティーチング時の撮像画像が、データ記憶部３１から取得される。そして、ロボットコントローラ３０によりアーム２１の動作が制御される際に、カメラユニット４０により取得される撮像画像とデータ記憶部３１から取得されるティーチング時の撮像画像とにおいて、上記シミュレータ５０により算出される動作範囲に対応する部分が比較されて異常の有無が判定される。すなわち、異常の有無の判定において、カメラユニット４０により取得される撮像画像と予め取得されたティーチング時の撮像画像とで、動作範囲に対応する部分のみを比較して異常の有無を判定することができる。このため、画像の比較を行う対象範囲をごく限られた範囲とすることができ、ロボット監視システム１０の処理負荷を軽減することができる。その結果、ロボット２０の動作先の異物等をリアルタイムで監視することができる。
【００７２】
・アーム２１が動作する際の各姿勢について、カメラユニット４０により取得されるアーム２１の撮像画像と、その所定周期後にカメラユニット４０により取得されるアーム２１の撮像画像とが、シミュレーションにより作成される。このため、アーム２１以外の背景も含む実際の撮像画像を画像処理して、アーム２１のみの撮像画像を取得する場合と比較して、カメラユニット４０による撮像状態に影響されることなく、アーム２１の撮像画像を正確に作成することができる。したがって、それら作成される撮像画像の双方及びそれらの間を含む範囲として、上記動作範囲を正確に算出することができる。
【００７３】
・シミュレータ５０は、上記作成されるアーム２１の撮像画像の双方及びそれらの間を含むように最小の矩形Ｃで囲んだ範囲内を、動作範囲として算出するといった構成を採用している。こうした構成によれば、作成されるアーム２１の撮像画像の双方及びそれらの間を含む範囲を、容易に決定することができる。
【００７４】
・ロボット２０に所定の動作をティーチングした際に、カメラユニット４０により取得された撮像画像と、ロボットコントローラ３０により算出された撮像時のアーム２１の姿勢とが対応付けられて保存される。このため、ティーチングの最終動作テスト時に、正常状態における撮像画像の取得と撮像時のアーム２１の姿勢との対応付け及び保存を完了することができ、これらの対応付け及び保存を行うためにロボット２０に特別な動作をさせる必要がない。
【００７５】
さらに、上述したように、画像の比較を行う対象範囲はごく限られた範囲であるため、ティーチング時に作業者がロボット２０の付近で操作している場合であっても、上記動作範囲内に作業者が入る可能性は極めて低い。したがって、ティーチングに際して上記対応付け及び保存を行う場合であっても、正常状態における撮像画像を適切に取得することができる。
【００７６】
詳しくは、カメラユニット４０によりで撮像する際には、必ずしも必要でない領域も撮像されることが避けられない。例えば、工場内では組立工程以外にも切削工程等も行われることが多く、その場合に切り屑等が飛んだり、部品箱等の位置が一定でなかったりといったことが起こる。カメラユニット４０によりそれらが撮像されると、画像の比較において異常ありと判定されるおそれがあり、その都度アーム２１の動作が停止されると、生産効率が低下するおそれがある。これらの多くは、アーム２１の動作に支障のない位置で行われているため、上記のように画像の比較を行う対象範囲をごく限られた範囲とすることにより、不要なアーム２１の動作停止を抑制することができる。すなわち、本実施形態は、工場で用いられるロボット２０の実情に合った非常に効率的なやり方といえる。
【００７７】
・ロボット２０に所定の動作をティーチングした際に、上記動作範囲が算出される。このため、ティーチング時に、動作範囲の算出を完了することができ、動作範囲を算出するためにロボット２０に特別な動作をさせる必要がない。特に、正常状態における撮像画像の取得と撮像時のアーム２１の姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方をティーチング時に完了することができる。したがって、異常の有無を判定するための事前準備を更に容易に行うことができる。
【００７８】
・データ記憶部３１に保存された撮像画像のうち、ロボットコントローラ３０により算出されるアーム２１の姿勢に最も近いアーム２１の姿勢と対応付けられた撮像画像が、正常状態の撮像画像として取得される。このため、ロボットコントローラ３０により算出されたアーム２１の姿勢と一致する姿勢の撮像画像が保存されていない場合であっても、正常状態の撮像画像を適切に取得することができる。
【００７９】
・ロボットコントローラ３０は、カメラユニット４０により取得される撮像画像の動作範囲に対応する部分と、データ記憶部３１から取得される正常状態の撮像画像の動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定している。こうした構成によれば、画像の類似度が閾値と比較されることで判定が行われるため、画像処理により撮像画像におけるアーム２１の重心や面積を算出して判定を行う構成と比較して、監視システムにおける処理負荷を軽減することができる。
【００８０】
上記実施形態を、以下のように変形して実施することもできる。
・上記実施形態では、ロボットコントローラ３０は、カメラユニット４０により取得される撮像画像の動作範囲に対応する部分と、データ記憶部３１から取得される正常状態の撮像画像の動作範囲に対応する部分との類似度が、閾値よりも低い場合に異常有りと判定した。しかしながら、ロボットコントローラ３０は、画像処理により撮像画像におけるアーム２１の重心や面積を算出して、カメラユニット４０により取得される撮像画像の動作範囲に対応する部分と、データ記憶部３１から取得される正常状態の撮像画像の動作範囲に対応する部分とを比較して、異常の有無を判定することもできる。
【００８１】
・上記実施形態では、アーム２１が動作する際の各姿勢について、カメラユニット４０により取得されるアーム２１の撮像画像と、その所定周期後にカメラユニット４０により取得されるアーム２１の撮像画像とを、シミュレーションにより作成した。しかしながら、ティーチング時に取得される撮像画像を用いて、アーム２１以外の背景も含む実際の撮像画像を画像処理し、アーム２１の各姿勢についての撮像画像を取得してもよい。
【００８２】
・上記実施形態では、ティーチングに際して、正常状態における撮像画像の取得と撮像時のアーム２１の姿勢とを対応付けて保存すること、及び動作範囲を算出することの双方を実行した。しかしながら、ティーチングの終了後に、アーム２１の各姿勢についての動作範囲を一括して算出することもできる。また、ティーチング以外のロボット２０の動作時に、正常状態における撮像画像の取得と撮像時のアーム２１の姿勢とを対応付けて保存することや、動作範囲を算出することを実行することもできる。
【００８３】
・上記実施形態では、シミュレータ５０は、上記作成されるアーム２１の撮像画像の双方及びそれらの間を含むように最小の矩形Ｃで囲んだ範囲内を動作範囲として算出した。しかしながら、平行四辺形や円等、矩形以外の形状の枠で、上記作成されるアーム２１の撮像画像の双方及びそれらの間を含むように囲んで、動作範囲を算出することもできる。
【００８４】
・上記実施形態では、ロボットコントローラ３０にデータ記憶部３１を設けるようにしたが、外部のデータベースや、シミュレータ５０にデータ記憶部３１を設けるようにしてもよい。
【００８５】
・上記実施形態では、カメラユニット４０のＣＣＤカメラは、ロボット２０及びその周辺領域を上方から撮像するようにしたが、ロボット２０及びその周辺領域を側方から撮像する構成等、その他の方向から撮像する構成を採用することもできる。
【００８６】
・カメラユニット４０は、ＣＣＤイメージセンサを備えるものに限らず、ＣＭＯＳイメージセンサを備えるもの等、その他の方式のデジタルカメラを備えるものでもよい。
【００８７】
・ロボット２０として、垂直多関節型のロボットに限らず、アームを有する任意の型式のロボットを採用することができる。
【符号の説明】
【００８８】
１０…ロボット監視システム、２０…ロボット、２１…アーム、３０…ロボットコントローラ、３１…データ記憶部（記憶部）、４０…カメラユニット（撮像ユニット）、５０…シミュレータ（動作範囲算出部）。
【図１】
0005803159.tif 000002
【図２】
0005803159.tif 000003
【図３】
0005803159.tif 000004
【図４】
0005803159.tif 000005