(57)【要約】【課題】ばら積みされたワークの取出し作業を効率的に行う。【解決手段】ばら積みされた複数のワーク５を含むワーク積載領域のカメラ画像に基づいてワーク５を検出するワーク検出部８ａと、ワーク検出部８ａによる検出結果に基づいて、ロボット２により取り出されるワーク５を選定するワーク選定部８ｂと、ロボット２の動作によってワーク５の積載状態が変化したか否かを判定する積載状態判定部８ｃと、ワーク検出部８ａによりワーク５を検出する際のワーク検出領域を設定する領域設定部８ｅとを備える。領域設定部８ｅは、積載状態判定部８ｃによりワーク５の積載状態が変化したと判定されると、その積載状態の変化位置の周辺領域であり、ワーク積載領域の一部にワーク検出領域を設定する。【選択図】図１
2012024903.tif 000002
【特許請求の範囲】
【請求項１】
ばら積みされた複数のワークを含むワーク積載領域を撮像するカメラと、
前記カメラにより撮像されたカメラ画像に基づいてワークを検出するワーク検出部と、
前記ワーク検出部による検出結果に基づいて取り出すべきワークを選定するワーク選定部と、
前記ワーク選定部により選定されたワークを取り出すロボットと、
前記ロボットの動作によってワークの積載状態が変化したか否かを判定する積載状態判定部と、
前記ワーク検出部によりワークを検出する際のワーク検出領域を設定する領域設定部と、を備え、
前記領域設定部は、前記積載状態判定部によりワークの積載状態が変化したと判定されると、その積載状態の変化位置の周辺領域であり、前記ワーク積載領域の一部に前記ワーク検出領域を設定することを特徴とするワーク取出し装置。
【請求項２】
請求項１に記載のワーク取出し装置において、
前記ワーク選定部により選定されたワークの前記ロボットによる把持動作の成否を判定する把持判定部をさらに有し、
前記積載状態判定部は、前記把持判定部により前記ロボットによる前記把持動作が成功したと判定されると、ワークの積載状態が変化したと判定することを特徴とするワーク取出し装置。
【請求項３】
請求項１または２に記載のワーク取出し装置において、
前記ワーク選定部により選定されたワークを前記ロボットが把持する前の前記ロボットに作用する衝撃の有無を判定する衝撃判定部をさらに有し、
前記積載状態判定部は、前記衝撃判定部により衝撃が有りと判定されると、ワークの積載状態が変化したと判定することを特徴とするワーク取出し装置。
【請求項４】
請求項２に記載のワーク取出し装置において、
前記積載状態変化位置は、前記ワーク選定部により選定されたワークの位置または前記ロボットにより前記ワークが把持された位置であることを特徴とするワーク取出し装置。
【請求項５】
請求項３に記載のワーク取出し装置において、
前記積載状態変化位置は、前記ワーク選定部により選定されたワークの位置または前記ロボットに衝撃が作用した位置であることを特徴とするワーク取出し装置。
【請求項６】
請求項１〜５のいずれか１項に記載のワーク取出し装置において、
前記領域設定部は、前記積載状態変化位置が複数ヶ所に存在するとき、各々の積載状態変化位置に対応した前記ワーク検出領域を設定することを特徴とするワーク取出し装置。
【請求項７】
請求項１〜６のいずれか１項に記載のワーク取出し装置において、
前記領域設定部は、前記ワーク選定部により選定されたワークと前記カメラとの距離に応じて前記ワーク検出領域の大きさを変更することを特徴とするワーク取出し装置。
【請求項８】
ばら積みされた複数のワークを含むワーク積載領域をカメラにより撮像する撮像手順と、
前記カメラにより撮像されたカメラ画像に基づいてワークを検出するワーク検出手順と、
前記ワーク検出手順による検出結果に基づいて取り出すべきワークを選定するワーク選定手順と、
前記ワーク選定手順により選定されたワークをロボットにより取り出すワーク取出し手順と、
前記ロボットの動作によってワークの積載状態が変化したか否かを判定する積載状態判定手順と、
前記ワーク検出手順によりワークを検出する際のワーク検出領域を設定する領域設定手順と、を含み、
前記領域設定手順では、前記積載状態判定手順によりワークの積載状態が変化したと判定されると、その積載状態変化位置の周辺領域であり、前記ワーク積載領域の一部に前記ワーク検出領域を設定することを特徴とするワーク取出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテナ内にばら積みされたワークをロボットによって取り出すワーク取出し装置およびワーク取出し方法に関する。
【背景技術】
【０００２】
コンテナ内に乱雑に配置（ばら積み）されている複数のワークの全体領域をカメラにより撮像し、そのカメラ画像に基づいてワークを検出して、ロボットマニピュレータによりワークを自動的に取り出すようにした装置が知られている（例えば特許文献１参照）。この特許文献１記載の装置では、コンテナ内におけるワークの積載状態が変化したか否かを判定し、積載状態が変化していないと判定したときは、次のワーク取出し作業時にワークの撮像を行わずに、過去に撮像されたカメラ画像に基づいてワークを検出することで、カメラによる撮像を省いて、ワーク取出し作業の時間短縮を図るようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４１９９２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１記載の装置において、ワーク取出し作業においてワークの積載状態が変わっていない場合は少ないため、撮像を省ける機会はあまりなく、コンテナ内におけるワークの積載状態が変化している場合には、複数のワークの全体領域をカメラにより撮像し直し、そのカメラ画像からワークを検出する必要があるため、ワーク取出し作業を効率的に行うことが難しい。
【課題を解決するための手段】
【０００５】
本発明によるワーク取出し装置は、ばら積みされた複数のワークを含むワーク積載領域を撮像するカメラと、カメラにより撮像されたカメラ画像に基づいてワークを検出するワーク検出部と、ワーク検出部による検出結果に基づいて取り出すべきワークを選定するワーク選定部と、ワーク選定部により選定されたワークを取り出すロボットと、ロボットの動作によってワークの積載状態が変化したか否かを判定する積載状態判定部と、ワーク検出部によりワークを検出する際のワーク検出領域を設定する領域設定部と、を備え、領域設定部は、積載状態判定部によりワークの積載状態が変化したと判定されると、その積載状態の変化位置の周辺領域であり、ワーク積載領域の一部にワーク検出領域を設定することを特徴とする。
また、本発明によるワーク取出し方法は、ばら積みされた複数のワークを含むワーク積載領域をカメラにより撮像する撮像手順と、カメラにより撮像されたカメラ画像に基づいてワークを検出するワーク検出手順と、ワーク検出手順による検出結果に基づいて取り出すべきワークを選定するワーク選定手順と、ワーク選定手順により選定されたワークをロボットにより取り出すワーク取出し手順と、ロボットの動作によってワークの積載状態が変化したか否かを判定する積載状態判定手順と、ワーク検出手順によりワークを検出する際のワーク検出領域を設定する領域設定手順と、を含み、領域設定手順では、積載状態判定手順によりワークの積載状態が変化したと判定されると、その積載状態変化位置の周辺領域であり、ワーク積載領域の一部にワーク検出領域を設定することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、ワークの積載状態が変化した位置の周辺領域にワーク検出領域を設定するので、ワーク積載領域の全体にワーク検出領域を設定する場合に比べてワーク検出領域が狭くなり、ワーク検出にかかる処理時間を大きく短縮できるので、ロボットがワークの撮像と検出を待つ時間がほとんどなくなり、ワーク取出し作業を効率的に行うことができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態に係るワーク取出し装置の全体構成を示す図である。
【図２】図１のロボットコントローラ内のＣＰＵで実行される処理の一例を示すフローチャートである。
【図３】図２のワーク検出領域設定処理の詳細を示す図である。
【図４】ワーク検出領域の大きさの自動変更の方法を説明するための図である。
【図５】本発明の実施の形態に係るワーク取出し装置の動作を説明するための図である。
【発明を実施するための形態】
【０００８】
以下、図１〜図５を参照して本発明の実施の形態について説明する。図１は、本発明の実施の形態に係るワーク取出し装置１の全体構成を示す図である。コンテナ６内には同種の複数のワーク５が乱雑に配置、すなわちばら積みされている。ワーク取出し装置１は、このばら積みされた複数のワーク５の中から選定されたワーク５を取り出すロボット２と、コンテナ６の上方に固定的に配置されたカメラ７と、カメラ７により撮像されたカメラ画像に基づきロボット２を制御するロボットコントローラ８とを有する。
【０００９】
ロボット２は、回転可能な関節軸を有する多関節ロボットであり、ロボットアーム２ａの先端部に設けられたロボットハンド２ｂによりワーク５が把持される。さらにロボットハンド２ｂには視覚センサ３が設けられ、視覚センサ３により個々のワーク５が計測される。視覚センサ３はレーザ投光式の３次元視覚センサであり、ロボットコントローラ８内の視覚センサ制御部８ｈにより制御される。視覚センサ３により得られた計測データは、ロボットコントローラ８内のメモリ８ｇに記憶され、コントローラ８内での処理によりワーク５の詳細な３次元位置及び姿勢が求められる。ロボットアーム２ａには衝撃センサ４が設けられ、衝撃センサ４によりワーク取出し時にロボットアーム２ａに作用した衝撃が検出される。
【００１０】
カメラ７は、例えばＣＣＤ等の撮像素子を有する電子カメラであり、撮像により２次元画像を受光面（ＣＣＤアレイ面上）で検出する機能を持つ周知の受光デバイスである。カメラ７の撮像動作は、ロボットコントローラ８内のカメラ制御部８ｆにより制御され、複数のワーク５を含むワーク積載領域（例えばコンテナ全体）が視野内に収まるように撮像範囲が設定されている。カメラ画像はカメラ制御部８ｆに取り込まれ、メモリ８ｇに記憶される。
【００１１】
ロボットコントローラ８は、メモリ８ｇに記憶された画像に基づいてワーク５を検出するワーク検出部８ａと、ワーク検出部８ａにより検出されたワーク５の中から取り出すべきワーク５を選定するワーク選定部８ｂと、コンテナ６内のワーク５の積載状態が変化したか否かを判定するワーク積載状態判断部８ｃと、ワーク５の積載状態が変化した位置を記憶するワーク積載状態変化位置記憶部８ｄと、ワーク検出部８ａでワーク５を検出する際のワーク検出領域を設定するワーク検出領域設定部８ｅとを有し、これらはカメラ制御部８ｆとメモリ８ｇとともに、カメラ画像を処理する画像処理装置を構成する。
【００１２】
ワーク検出部８ａは、例えばパターンマッチングによりワーク５を検出する。すなわち、予めワーク形状に対応したワークモデルを生成しておき、ワーク検出領域内のカメラ画像の中からこのワークモデルに対応した目標画像を検索、抽出することによりワーク５を検出する。このようなワーク検出部８ａにおける処理では、ワーク検出領域が広いと、目標画像の検索に時間がかかり、目標画像の検索が完了するまでロボットはワーク取出し作業を待機するため、ワーク取出し作業を効率的に行うことが困難となる。そこで、本実施の形態では、以下のようにワーク検出領域を設定することにより、ワーク取出し作業の時間短縮を図る。
【００１３】
図２は、ロボットコントローラ８内のＣＰＵで実行される処理の一例を示すフローチャートである。このフローチャートに示す処理は、例えばワーク取出し作業の開始指令が入力されると開始される。ステップＳ１では、カメラ制御部８ｆでの処理により、コンテナ内のワーク積載領域におけるワーク５を撮像するようにカメラ７に撮像指令を出力し、撮像によって得られたカメラ画像をメモリ８ｇに記憶する。
【００１４】
ステップＳ２では、ワーク検出部８ａでの処理（パターンマッチング）により、メモリ８ｇに記憶されたカメラ画像のうち、ワーク検出領域内のカメラ画像を用いてワーク５を検出し、検出されたワーク５をメモリ８ｇに記憶する。なお、図２の処理の開始直後の初期状態では、ワーク検出領域は、ワーク積載領域に合わせてコンテナ全体を囲むように設定されている。なお、後述するようにワーク検出領域がワーク積載領域の一部に複数設定されている場合（図５（ｂ））には、各ワーク検出領域毎にワーク５を検出する。
【００１５】
ステップＳ３では、ステップＳ２での処理によって１以上のワーク５が検出されたか否かを判定する。ステップＳ３が否定されるとステップＳ４に進み、所定の終了条件を満足しているか否かを判定する。例えば、取り出されたワーク５が所定数に達したときに、終了条件が満足と判定される。ステップＳ４が肯定されると処理を終了する。ステップＳ４が否定されるとステップＳ５に進み、コンテナ全体を囲むようなワーク検出領域を設定し、ステップＳ１に戻る。一方、ステップＳ３が肯定されるとステップＳ６に進む。
【００１６】
ステップＳ６では、ワーク選定部８ｂでの処理により、ステップＳ２でメモリ８ｇに記憶されたコンテナ内の全ワーク５の中から、ロボット２で取り出すべきワーク５を選定する。この場合、例えば周囲のワーク５よりも高い位置にあって隠蔽されていないワーク５を、取り出すべきワーク５として選定する。
【００１７】
ステップＳ７では、ステップＳ６での処理によりワーク５を選定できたか否かを判定する。ステップＳ７が否定されるとステップＳ８に進み、ワーク５の選定が可能となるようにワーク５の検出条件や選定条件を変更する。例えば撮像時の光量やパターンマッチングにおけるワークパターン等を変更し、ステップＳ１に戻る。ステップＳ７が肯定されると、ステップＳ９に進む。
【００１８】
ステップＳ９では、ロボット駆動用のサーボモータに制御信号を出力し、ロボット２（ロボットアーム２ａやロボットハンド）の動作を制御して、選定されたワーク５をコンテナ内から取り出す。この場合、ロボットアーム先端部に設けられた視覚センサ３の移動位置を演算するとともに、選定されたワーク５の３次元位置及び姿勢を視覚センサ３により計測し、ロボットハンドをワーク取出の目標位置まで移動した後、ロボットハンドでワーク５を把持し、取り出す。
【００１９】
ステップＳ１０では、ワーク積載状態判断部８ｃでの処理により、ロボット２が動作している際に衝撃センサ４により衝撃が検出されたか否か、すなわち選定されたワーク５を把持する前に、ロボット２がワーク等に接触したことにより衝撃が発生したか否かを判定する。衝撃センサ４に代えて、ロボット駆動用のサーボモータに作用する負荷が急激に変化したことをモータ電流の変化等により検出し、これにより衝撃の有無を判定することもできる。
【００２０】
ステップＳ１０が肯定されるとステップＳ１１に進む。この場合、衝撃の発生によりコンテナ内のワーク５の積載状態、とくに取り出すべきワーク５の近傍における積載状態が変化した可能性が高い。そこで、ステップＳ１１では、ワーク積載状態変化位置記憶部８ｄでの処理により、選定された取り出すべきワーク５の位置を積載状態変化位置として記憶し、ステップＳ６に戻ってワーク５の選定処理をやり直す。このやり直しのワーク選定処理では、積載状態変化位置から離れた位置にあるワーク５、つまり積載状態が変化していないと考えられるワーク５の中から取り出すべきワーク５を選定してもよい。なお、積載状態変化位置は、視覚センサ３により検出されたワーク５の３次元位置であり、ロボット座標系の位置データとして記憶される。
【００２１】
ステップＳ１０において、取り出すべきワーク５の位置にロボットハンドを移動する際に衝撃が検出された場合には、取り出すべきワーク５の近傍ではなく、ロボット２が衝撃を受けた位置において積載状態が変化した可能性が高い。この場合には、ステップＳ１１で、ロボット２が衝撃を受けたときのロボットアーム先端部の位置を積載状態変化位置としてメモリ８ｇに記憶してもよい。ロボットアーム先端部の位置は、ロボット２に設けられた各種位置センサにより検出することができる。
【００２２】
ステップＳ１０が否定されるとステップＳ１２に進む。ステップＳ１２では、ワーク積載状態判断部８ｃでの処理により、ロボットハンドで取り出すべきワーク５を把持できたか否かを判定する。具体的には、ハンドチャックの開閉確認センサの検出値や、ロボットハンドが吸盤を用いるタイプの場合は吸着確認センサの検出値に基づき把持動作の成否を判定する。ロボットハンドに対してワーク５が正しい位置にあるかを検出する近接センサ等の検出値に基づき把持動作の成否を判定することもできる。
【００２３】
ステップＳ１２が肯定されるとステップＳ１３に進む。この場合、ワーク５を把持して取り出したことによりコンテナ内のワーク５の積載状態、とくにワーク５の取出位置の近傍における積載状態が変化した可能性が高い。そこで、ステップＳ１３では、ワーク積載状態変化位置記憶部８ｄでの処理により、ステップＳ１１と同様、選定された取り出すべきワーク５の位置を積載状態変化位置として記憶し、ステップＳ１４に進む。実際のワーク５の位置が選定されたワーク５の位置からずれている場合には、ロボットハンドを選定されたワーク５の位置よりも例えば下方に移動してワーク５を把持することがある点を考慮し、実際にワーク５が把持された位置を積載状態変化位置としてメモリ８ｇに記憶してもよい。ステップＳ１２が否定されるとステップＳ１４に進む。
【００２４】
ステップＳ１４では、ワーク検出領域設定部８ｅでの処理により、図３に示すワーク検出領域設定処理を実行する。まず、ステップＳ１４ａで、積載状態変化位置が存在するか否か、すなわち、ステップＳ１１またはステップＳ１３のいずれかの処理が実行されたか否かを判定する。ステップＳ１４ａが肯定されるとステップＳ１４ｂに進み、ワーク積載状態変化位置記憶部８ｄで記憶されたロボット座標系における積載状態変化位置を取得する。ステップＳ１４ｃでは、ロボット座標系の積載状態変化位置を画像上の位置へ変換する。具体的には、カメラ７のキャリブレーションデータを用いて、周知の手法により積載状態変化位置をカメラ画像上の位置へ変換する。
【００２５】
ステップＳ１４ｄでは、予め定められた形状および大きさのワーク検出領域を画像上の積載状態変化位置に設定する。例えばワーク検出領域が円形である場合、積載状態変化位置を中心とした円の直径あるいは半径を設定すればよく、ワーク検出領域が矩形である場合、積載状態変化位置を中心とした矩形ウィンドウの縦方向長さと横方向長さを設定すればよい。いずれの場合であっても、ワーク検出領域は、少なくともカメラ７により撮像されたワーク積載領域の一部、すなわちワーク積載領域よりも狭い範囲に設定される。積載状態変化位置が複数ヶ所に存在する場合には、それぞれの位置についてワーク検出領域を設定する。
【００２６】
ステップＳ１４ｄの処理が終了すると、図２のステップＳ１に戻り、一連の処理を繰り返す。繰り返しの処理においては、ステップＳ２で、ワーク積載領域の一部に設定したワーク検出領域内からワーク５を検出し、この新たなワーク検出データにより、そのワーク検出領域内のワーク検出データを書き換えてメモリ８ｇに記憶する。すなわち、ワーク５の積載状態が変化した位置の周辺領域をワーク検出領域としてワーク５の検出処理を行い、その領域内のワーク検出データを更新する。したがって、ワーク積載領域の全域にわたってワーク５を検出する必要がないため、ワーク検出部８ａにおける処理の時間短縮が可能となる。
【００２７】
一方、ステップＳ１４ａで、積載状態変化位置が存在しないと判定されるとステップＳ１４ｅに進む。ステップＳ１４ｅでは、コンテナ全体を囲むようなワーク積載領域の全体にワーク検出領域を設定し、図２のステップＳ２に戻る。この場合、ワーク５の積載状態が変化していないため、カメラ７の撮像を再度行う必要はなく、繰り返しの処理によるステップＳ２では、コンテナ全体からワーク５を検出する。
【００２８】
ところで、ステップＳ１４ｄにおけるワーク検出領域の設定処理に関し、カメラ７で撮像されたワーク５の画像上の大きさは、カメラ７からワーク５までの距離、つまりコンテナ内に配置されたワーク５の高さに応じて変化する。この点を考慮し、ワーク５の高さに応じてワーク検出領域の大きさを自動的に変更するようにしてもよい。すなわちワーク５がカメラ７に近い場合には、ワーク検出領域を大きく、ワーク５がカメラ７から遠い場合には、ワーク検出領域を小さくして、ワーク検出領域に含まれるワーク５の画像上の大きさが一定となるようにしてもよい。以下、この点について説明する。
【００２９】
図４は、ワーク検出領域の大きさの自動変更の方法を説明するための図である。ここでは、ワーク５の高さ方向を図のＺ軸方向に定義する。まず、ワーク５が基準位置からＺ１およびＺ２の高さにあるときにカメラ７で撮像した画像に写る画像サイズＳＺ１およびＳＺ２をそれぞれ設定する。このとき、画像に写るサイズはワーク５のカメラ７からの距離に反比例するため、基準位置からカメラ７までの距離（カメラ高さ）をＺ０、カメラ７から高さＺ１およびＺ２の各ワーク５までの距離をそれぞれＡ１，Ａ２とすると、次式(I)が成立する。
ＳＺ２／ＳＺ１＝Ａ１／Ａ２＝(Ｚ０−Ｚ１)／(Ｚ０−Ｚ２)    (I)
【００３０】
カメラ高さＺ０は、次式(II)により算出でき、積載状態変化位置の高さをＺ３とすると、そのときの画像サイズＳＺ３は、次式(III)により算出できる。
Ｚ０＝(ＳＺ２＊Ｚ２−ＳＺ１＊Ｚ１)／(ＳＺ２−ＳＺ１)      (II)
ＳＺ３＝((Ｚ０−Ｚ１)／(Ｚ０−Ｚ３))＊ＳＺ１              (III)
【００３１】
ワーク検出領域を例えば円形とする場合には、予め画像サイズＳＺ１に対応したワーク検出領域の直径Ｄ１を定めておく。ステップＳ１４ｄでは、このＤ１を用いて、画像サイズＳＺ３に対応したワーク検出領域の直径Ｄ３を次式(IV)により算出する。
Ｄ３＝(ＳＺ３／ＳＺ１)＊Ｄ１＝((Ｚ０−Ｚ１)／(Ｚ０−Ｚ３))＊Ｄ１  (IV)
【００３２】
本発明の実施の形態に係るワーク取出し装置１の動作をより具体的に説明する。例えば、図５（ａ）に示すようにコンテナ６内に複数のワーク５がばら積みで配置されていると仮定する。この場合、まず、コンテナ全体を囲むワーク検出領域が設定され、コンテナ内全域においてワーク５が検出された後（ステップＳ２）、周囲のワーク５よりも高い位置にあり、隠蔽されていないワーク５ａが、ロボット２で取り出すべきワークとして選定される（ステップＳ６）。
【００３３】
選定されたワーク５ａを取り出すとき、例えばロボットハンドでワーク５ａを把持する前にロボットハンドがワーク５ａに接触すると、図５（ｂ）に示すようにワーク５ａの位置がずれる。この場合、衝撃センサ４により衝撃が検出され、選定されたワーク５ａの位置が積載状態変化位置として記憶されて（ステップＳ１１）、ワーク５の選定が再度行われる（ステップＳ６）。このとき、図５（ａ）に示すように、前回とは異なるワーク５ｂが選定されると、このワーク５ｂがロボット２により取り出され、そのワーク５ｂの位置が積載状態変化位置として記憶される（ステップＳ１３）。
【００３４】
この場合、図５（ｂ）に示すように、衝撃検出時に設定されたワーク５ａとロボット２による取出し時に選定されたワーク５ｂを含む領域に、それぞれワーク検出領域１２ａ，１２ｂが設定される（ステップＳ１４ｄ）。その後、カメラ７によりコンテナ内の全体が撮像された後、そのカメラ画像を用いて、各ワーク検出領域１２ａ，１２ｂ内でワーク５が検出される（ステップＳ２）。これによりワーク５のワーク検出領域が制限されるので、ワーク検出に要する時間を短縮することができ、効率的なワーク取出し作業が可能となる。
【００３５】
ワーク取出し時に衝撃センサ４により衝撃が検出されず、ロボット２によるワーク５の把持動作も検出されない場合には、積載状態変化位置が存在しないため、コンテナ全体を囲むワーク検出領域が設定される（ステップＳ１４ｅ）。ステップＳ１４ｄで設定したワーク検出領域内でワーク５が検出されない場合（例えば図５（ｂ）の検索ウィドウ１２ｂのみが設定された場合）にも、コンテナ全体を囲むワーク検出領域が設定される（ステップＳ５）。これらの場合には、コンテナ全体から再度ワーク５の検出が行われる。
【００３６】
本実施の形態によれば以下のような作用効果を奏することができる。
（１）ワーク積載状態判断部８ｃでの処理により、ワーク５の積載状態が変化したか否かを判定し、ワーク５の積載状態が変化したと判定されると、ワーク検出領域設定部８ｅでの処理により、その積載状態の変化位置の周辺領域にワーク検出領域を設定し、ワーク検出部８ａでの処理により、ワーク検出領域内においてワーク５を検出するようにした。したがって、ワーク積載領域の一部でワーク５を検出することとなり、ワーク検出領域を狭めることができるので、ワーク検出に要する時間を短縮することができ、ワーク取出し作業を効率的に行うことができる。
【００３７】
（２）ロボット２によるワーク５の把持動作が成功したと判定されると、ワーク５の積載状態が変化したと判定するようにしたので、ワーク５の取出し後の積載状態の変化を正しく判定できる。この場合、ワーク選定部８ｂにより選定されたワーク５の位置の周辺領域にワーク検出領域を設定するので、積載状態が変化した可能性が高い箇所で、ワーク検出処理を無駄なく行うことができる。これに代えて、ロボット２によりワーク５が把持された位置の周辺領域にワーク検出領域を設定すれば、実際のワーク５の位置が選定されたワーク５の位置からずれている場合であっても、ワーク検出処理を無駄なく行うことができる。
【００３８】
（３）ロボット２がワーク５を把持する前にロボット２に衝撃が作用したと判定されると、ワーク５の積載状態が変化したと判定するようにしたので、衝撃発生によるワーク５の積載状態の変化を正しく判定できる。この場合、ワーク選定部８ｂにより選定されたワーク５の位置の周辺領域にワーク検出領域を設定するので、積載状態が変化した可能性が高い箇所で、ワーク検出処理を無駄なく行うことができる。これに代えて、ロボット２に衝撃が作用した位置の周辺領域にワーク検出領域を設定すれば、衝撃を受けた位置が選定されたワーク５の位置から離れている場合であっても、ワーク検出処理を無駄なく行うことができる。
【００３９】
（４）ロボット２に作用する衝撃を検出した後に、その衝撃検出位置とは異なる位置に存在するワーク５を取り出した場合等、積載状態変化位置が複数ヶ所に存在するとき（例えば図５の場合）、各々の積載状態変化位置に対応したワーク検出領域１２ａ，１２ｂを設定するようにしたので、ワーク検出に要する時間を抑えながら、積載状態が変化した領域におけるワーク５を精度よく検出できる。
（５）選定されたワーク５とカメラ７との距離に応じてワーク検出領域の大きさを自動的に変更するようにすれば、コンテナ内のワーク５の高さに拘わらず、画像上でワーク５に対するワーク検出領域の相対的大きさを一定にすることができ、効率的にワーク５を検出できる。
【００４０】
なお、上記実施の形態では、ワーク検出部８ａとワーク選定部８ｂとワーク積載状態判断部８ｃ（積載状態判定部）とワーク積載状態変化位置記憶部８ｄとワーク検出領域設定部８ｅ（領域設定部）とカメラ制御部８ｆとメモリ８ｇと視覚センサ制御部８ｈが、ロボットコントローラ８に含まれるようにしたが、ロボットコントローラ８の構成はこれに限らない。例えばワーク検出部８ａとワーク検出領域設定部８ｅとカメラ制御部８ｆと視覚センサ制御部８ｈをロボットコントローラ８の外部に設け、通信手段を用いて画像処理の結果をロボットコントローラ８へ送信するようにしてもよい。ワーク積載状態変化位置記憶部８ｄを省略し、積載状態変化位置をメモリ８ｇに記憶してもよい。
【００４１】
上記実施の形態では、ワーク５の積載状態が変化したと判定されると、ワーク積載領域の一部にワーク検出領域を設定するようにしたが、ワーク検出領域の形状はいかなるものでもよい。ロボットコントローラ８内での処理により、ワーク５の把持動作の成否を判定するとともに（ステップＳ１２）、ロボット２に作用する衝撃の有無を判定するようにしたが（ステップＳ１０）、把持判定部としてのワーク積載状態判断部における構成および衝撃判定部としてのワーク積載状態判断部における構成は上述したものに限らない。すなわち、本発明の特徴、機能を実現できる限り、本発明は実施の形態のワーク取出し装置１に限定されない。
【００４２】
以上をまとめると、本実施の形態に係るワーク取出し方法は、ばら積みされた複数のワーク５を含むワーク積載領域をカメラ７により撮像する撮像手順（ステップＳ１）と、カメラ７により撮像されたカメラ画像に基づいてワーク５を検出するワーク検出手順（ステップＳ２）と、ワーク検出手順による検出結果に基づいて、取り出すべきワーク５を選定するワーク選定手順（ステップＳ６）と、ワーク選定手順により選定されたワーク５をロボット２により取り出すワーク取出し手順（ステップＳ９）と、ロボット２の動作によってワーク５の積載状態が変化したか否かを判定する積載状態判定手順（ステップＳ１０、ステップＳ１２）と、ワーク検出手順によりワーク５を検出する際のワーク検出領域を設定する領域設定手順（ステップＳ１４ｄ）とを含み、領域設定手順では、積載状態判定手順によりワーク５の積載状態が変化したと判定されると、その積載状態変化位置の周辺領域であり、ワーク積載領域の一部にワーク検出領域を設定することを特徴とするのであり、この特徴を実現できる限り、上記構成に種々の変形を加えてもよい。
【符号の説明】
【００４３】
１    ワーク取出し装置
２    ロボット
２ａ    ロボットアーム
２ｂ    ロボットハンド
３    視覚センサ
４    衝撃センサ
５    ワーク
５ａ    １番目に選定され取出しに失敗したワーク
５ｂ    ２番目に選定され取出しに成功したワーク
６    コンテナ
７    カメラ
８    ロボットコントローラ
８ａ    ワーク検出部
８ｂ    ワーク選定部
８ｃ    ワーク積載状態判断部
８ｄ    ワーク積載状態変化位置記憶部
８ｅ    ワーク検出領域設定部
８ｆ    カメラ制御部
８ｇ    メモリ
８ｈ    視覚センサ制御部
１２ａ    衝撃検出により設定されたワーク検出領域
１２ｂ    ワークの取出し成功により設定されたワーク検出領域
【図１】
2012024903.tif 000003
【図２】
2012024903.tif 000004
【図３】
2012024903.tif 000005
【図４】
2012024903.tif 000006
【図５】
2012024903.tif 000007