(57)【要約】【課題】容器等に置かれたワークをロボットを用いて確実に取出すこと。【解決手段】撮影用ロボット位置において３次元視覚センサ４のカメラで撮影を行い、画像をパーソナルコンピュータ５に取り込む。ワークを検出し、各ワークのカメラ視線を求める。レンジファインダ１０による高さ測定領域を定め、同領域内に高さデータを保存（または一部更新）する。各検出ワークについてカメラ視線データと高さ分布との交点の位置を求め、周辺の高さデータから姿勢を求める。これらから、今回取り出すワークを定め、それに近い３次元視覚センサ計測位置を定める。同位置で３次元視覚センサ４による本測定を行い、干渉可能性チェックを経て、ワーク取出しロボット位置を定める。再度干渉可能性チェックを経て、ワーク取出しロボット位置でワーク取出しを実行する。【選択図】          図１
2004188562.tif 000002
【特許請求の範囲】
【請求項１】
ロボットに搭載した３次元視覚センサによりワークの位置姿勢を計測し、該ロボットにより該ワークを取り出すワーク取出し装置において、
ワークの存在領域の高さ分布のデータを取得する高さ分布取得手段と、
前記高さ分布取得手段により取得された高さ分布のデータに含まれる、特定のワークの近傍の高さ情報に基づいて、該特定ワークの概略位置、または、概略位置と概略姿勢を計算する位置情報算出手段と、
前記位置情報算出手段の計算結果に基づいて、前記３次元視覚センサによって前記特定ワークに対する計測を行なうためのロボットの計測位置を決定するロボット位置決定手段とを備えたワーク取出し装置。
【請求項２】
前記ロボットによるワークの取出しは繰り返し行われるものであり、
前記高さ分布取得手段は、前回の取出しで取出されたワークが存在した場所の近傍のみについて高さ分布のデータを再取得するものである、請求項１に記載のワーク取出し装置。
【請求項３】
前記高さ分布取得手段は、予め高さ分布を取得する範囲を設定する手段を含むものである、請求項１に記載のワーク取出し装置。
【請求項４】
前記複数のワークは容器内に収容されており、
前記容器は該容器の外壁で取り囲まれた開口を有し、
前記高さ分布取得手段は、前記開口の内側の領域を高さ分布取得範囲とするものである、請求項１に記載のワーク取出し装置。
【請求項５】
前記ロボットが前記計測位置へ移動する際に、前記高さ分布のデータとロボット装着物存在範囲の関係から、前記装着物と前記複数のワークのいずれかとの干渉の危険性を判断する手段とを更に備えた、請求項１〜請求項４の内のいずれか１項に記載のワーク取出し装置。
【請求項６】
前記ロボットが前記特定のワークを取り出すための取出し位置へ移動する際に、前記高さ分布のデータとロボット装着物存在範囲の関係から、前記装着物と前記特定ワーク以外のワークのいずれかとの干渉の危険性を判断する手段とを更に備えた、請求項１〜請求項５の内のいずれか１項に記載のワーク取出し装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボットに３次元視覚センサを搭載し、開口付の容器内等に存在するワークの位置姿勢を認識し、それに基づいてワークの取り出しを行なうワーク取出し装置に関する。
【０００２】
【従来の技術】
例えば、カゴ状の容器内にバラ積み状態で収容された複数のワークについて、それらワークによって占有されている３次元空間領域（以下、「ワークの存在領域」という）の高さ分布のデータを、レンジファインダやパターン光を投射する３次元視覚センサを利用して取得する手法は広く知られており、それによって取得された高さ分布データを利用した応用も少なからず提案されている。高さ分布を画像（距離画像）として把握し、それに基づいて物体認識を行うといった研究はそうした例の１つである。
【０００３】
しかしながら、そのような研究が実際に実用化されている例はほとんどない。一方、バラ積みされたワークの取出しについても、研究例は散見されるが、やはり実用化されている例は非常に少ない。これら技術に関連する先行技術文献の例を挙げると、下記の特許文献１、２がある。
【０００４】
【特許文献１】
特開平９−２７７１８４号公報
【特許文献２】
特開平１０−３１５１７４号公報
【０００５】
【発明が解決しようとする課題】
さて、バラ積みされたワークの取出しの実用化が難しい要因はいくつかあるが、大きな要因としては下記のものがある。
要因１：バラ積みされた多数のワークは、一般に、３次元的に不規則な配列で存在している。センサによるセンシングを行なえば、その中からいくつかのワークを見つけることができる。しかし、見つかった複数のワークについて、上のワークから順に取出すように取出し順序を適正に定め、順次円滑に取出しを実行することが実際には難しい。
【０００６】
要因２：センサで見つけることができなかったワーク（以下、「未発見ワーク」という）が、取出しの際に邪魔になること。即ち、取出し手段（ロボット）が次に取出そうとするワークに接近した時、未発見ワークがロボットハンドなどと干渉を起こすおそれがある。
【０００７】
こうした要因は、ワークの存在範囲に高さ分布を求め、参照することで、一応克服することができると考えられる。しかし、高さ分布を元にした計測を実際に適用する際には、高さ分布計測の分解能の問題が生じてくる。例えば、１ｍ四方に及ぶような比較的大きなワーク存在領域について高さ分布のデータを実用的な時間内で作成するとなると、どうしても分解能が低くなり、その情報だけを使って物体認識を行い作業を行なおうとした場合、要求される精度が得られず、作業に支障をきたすことになる。
【０００８】
本発明は、高さ分布計測のこのような性質をふまえ、高さ分布計測を分解能の問題が妨げにならない形態で用い、且つ、実際のワーク取出しの中で有用な役割を発揮させることを目的としている。
【０００９】
【課題を解決するための手段】
本発明は、高さ分布計測の性質に適した具体的な用い方として、ロボットに搭載した３次元視覚センサによるワークの最終的な位置計測の前段で、仮の位置姿勢計測に用いる形態や、ロボットの搭載物とワークの干渉可能性のチェックなどを提案して、上記課題を解決するものである。
【００１０】
具体的に言えば、本発明は、ロボットに搭載した３次元視覚センサによりワークの位置姿勢を計測し、該ロボットにより該ワークを取り出すワーク取出し装置に適用され、基本構成として次の手段を有している。
【００１１】
（ａ）ワークの存在領域の高さ分布のデータを取得する高さ分布取得手段
（ｂ）前記高さ分布取得手段により取得された高さ分布のデータに含まれる、特定のワークの近傍の高さ情報に基づいて、該特定ワークの概略位置、または、概略位置と概略姿勢を計算する位置情報算出手段
（ｃ）前記位置情報算出手段の計算結果に基づいて、前記３次元視覚センサによって前記特定ワークに対する計測を行なうためのロボットの計測位置を決定するロボット位置決定手段。
【００１２】
ここで、本発明のワーク取出し装置は、前記ロボットによるワークの取出しを繰り返し行うものであって良く、その場合、前記高さ分布取得手段は、前回の取出しで取出されたワークが存在した場所の近傍のみについて高さ分布のデータを再取得するものとすることができる。
【００１３】
また、前記高さ分布取得手段は、（ｄ）予め高さ分布を取得する範囲を設定する手段を含むものであることが好ましい。
本発明のワーク取出し装置は、外壁で取り囲まれた開口を有する容器内にワークが収容されているケースに適用できる。その場合、前記高さ分布取得手段は、前記開口の内側の領域を高さ分布取得範囲としても良い。なお、ワークを収容した容器の外壁の内側の領域を高さ分布取得範囲とするために、前記３次元視覚センサ、あるいは、他のセンサで該容器の外壁の計測を行なうようにして良い。
【００１４】
更に、上記いずれのケースにおいても、（ｅ）前記ロボットが前記計測位置へ移動する際に、前記高さ分布のデータとロボット装着物存在範囲の関係から、前記装着物と前記複数のワークのいずれかとの干渉の危険性を判断する手段をワーク取出し装置に設けることができる。
【００１５】
また、（ｆ）前記ロボットが前記特定のワークを取り出すための取出し位置へ移動する際に、前記高さ分布のデータとロボット装着物存在範囲の関係から、前記装着物と前記特定ワーク以外のワークのいずれかとの干渉の危険性を判断する手段をワーク取出し装置に設けることができる。上記（ｅ）、（ｆ）の手段が、兼備されることは更に好ましい。
【００１６】
【発明の実施の形態】
図１は本発明の一つの実施形態に係るワーク取出し装置の全体配置を示した図である。符号１はロボット（本体機構部）で、ケーブル６によってロボットコントローラ２に接続され、同ロボットコントローラ２によってその動作が制御される。ロボット１の手先部には、ハンド３及び３次元視覚センサ（センサヘッド）４が取付けられている。ハンド３は、ケーブル８によってロボットコントローラ２に接続され、同ロボットコントローラ２によって開閉動作が制御される。
【００１７】
３次元視覚センサ（センサヘッド）４は、例えばスリット光あるいはスポット光などのいわゆるパターン光を投射する投光器と、反射光を検出するビデオカメラを組み合わせた周知のものである。
【００１８】
３次元視覚センサ４は、ケーブル９によってパーソナルコンピュータ５に接続されており、パーソナルコンピュータ５は、３次元視覚センサ４によるセンシング動作（投光、撮像など）を制御するとともに、センシング（カメラによる通常撮影も含む）で得られた光検出信号（ここではビデオ映像信号）を処理し、イーサネット（登録商標）７を介して、ロボットコントローラ２に所要の情報を送る。
【００１９】
更に、システムにはレンジファインダ１０がスタンド１１を用いて適所に配置されている。周知のように、レンジファインダ１０は例えば超音波等を指定されて方向に出射し、対象物からの反射波を検出し、出射−検出に要する時間に基づいて測距を行なう計器である。レンジファインダ１０による測距方向（超音波等の出射方向）の制御、検出信号の処理等は、レンジファインダ１０にケーブル１２で接続されたパーソナルコンピュータ５内のソフトウェア処理によって行なわれるようになっている。
【００２０】
本例において、ロボット１によって取り出されるワークは、所定位置に置かれたテーブル１３上に供給されるカゴ状の容器１４内にバラ積み状態で置かれた多数のワーク２０である。容器１４は外壁１５を有し、該外壁１５に囲まれた開口を備えている。開口の形状はここでは矩形とするが、一般には形状に特に制限はない。外壁１５のサイズは、その内側領域（開口に対応）がレンジファインダ１０の計測可能範囲に収まり、且つ、視覚センサ４のカメラの視野内に収まっているものとする。
【００２１】
このように、本例では、「ワークの存在範囲」は、容器１４の開口の内側の全領域である。本実施形態では、上記システム構成により、ハンド３を装着したロボット１を用いて容器１４中のワーク２０を順次取り出す。その際の処理手順の概要について、図４のフローチャートを用いて説明する。また、その中で図２、図３を適宜参照図に加える。図２は、カメラで検出したワークに対する視線と高さ分布（ワーク存在領域境界）との交点から同ワークの位置を求めることについて説明する図であり、図３は、高さ分布と３次元視覚センサ（センサヘッド）との干渉可能性のチェックについて説明する図である。
【００２２】
なお、視覚センサ４のキャリブレーション、レンジファインダ１０のキャリブレーション、視覚センサ４及びレンジファインダ１０の検出結果を作業空間内に固定されたロボット座標系に換算するためのデータ取得等の準備は完了しているものとする。図４に示したフローチャートにおける各ステップの要点は以下の通りである。
【００２３】
ステップＳ１；撮影用ロボット位置において、全体（容器１４の全体を含む領域）の撮影を行い、画像をパーソナルコンピュータ５に取り込む。撮影用ロボット位置は、「視覚センサ４のカメラの視野が容器１４の全体を多少の余裕をもってカバーできるような位置」を予めロボットコントローラ２に教示しておく。  ステップＳ２；パーソナルコンピュータ５内の画像処理により、ワークの検出を試み、１つ以上のワークＷk が検出できたら、ステップＳ３へ進む。検出できなければ、容器１４は空（未取出しワークなし）であると判断して処理を終了する。
【００２４】
ステップＳ３；カメラのキャリブレーションデータ等を用いて、パーソナルコンピュータ５内で各ワークＷk （１個の場合もあり）の代表点（例えばワークＷk の画像上の面積重心）について、視覚センサ４のカメラの視線を計算し、そのデータｗk をパーソナルコンピュータ５内のメモリに保存する。
ステップＳ４；レンジファインダ１０による高さ測定領域Ｈp を定める。ここで、“Ｈp ”の添字ｐは、ｐ回目（ｐ＝１、２・・・）の高さ測定を表わしている。ｐ回目の高さ測定における領域Ｈp の定め方としては、次の方式のいずれかを用いることができる。
【００２５】
方式１；予め各回共通の領域Ｈ1 ＝Ｈ2 ＝・・・・を設定しておく。領域Ｈ1 は例えば容器１４の開口（外壁１５の内側）にほぼ一致するように設定する。
【００２６】
方式２；第１回目のステップＳ４において、パーソナルコンピュータ５内の画像処理によって、容器１４の外壁１５を検出し、その内側領域（開口に対応）を領域Ｈ1 として定める。以後、これを毎回共通領域のＨ1 ＝Ｈ2 ＝・・・・として採用する。
【００２７】
方式３；各回のステップＳ４において、パーソナルコンピュータ５内の画像処理によって、容器１４の外壁１５を検出し、その内側領域（開口に対応）を領域Ｈp として定める。この方式によれば、容器１４の位置に多少の変化があっても領域Ｈp を適正に設定できる。なお、容器１４の外壁１５の検出に適所に設置した他のセンサ（図示省略）を用いても良い。
【００２８】
方式４；１回目の領域Ｈ1 についてのみ、方式１または方式３により、領域1 を定める。２回目以降は、前回取り出されたワークの近傍のみを領域Ｈp （ｐ≧２）とする。ここで、「近傍」の範囲（大きさ）は、前回のワーク取出しで高さ変化が予測される範囲を予め設定しておく。例えば、前回取り出されたワークの２次元位置（代表点の位置）を（ｘp-1 、ｙp-1 ）として、（ｘp-1 −Δ、ｙp-1−Δ）、（ｘp-1 ＋Δ、ｙp-1−Δ）、（ｘp-1 ＋Δ、ｙp-1＋Δ）、（ｘp-1−Δ、ｙp-1＋Δ）の４点で囲まれた範囲をＨp とする。この方式によれば、毎回の高さ測定に要する時間を短縮できる。
【００２９】
ステップＳ５；高さ測定を実行する。高さ測定にあたっては、パーソナルコンピュータ５からの指令により、レンジファインダ１０の計測方向をステップワイズで走査しながら、図２に示したように、多数のサンプリング点（計測点）Ｓijの高さデータｈijを収集する。走査範囲は、領域Ｈp を多少の余裕をもってカバーするように定める。例えば方式１〜方式３を採用する場合は、走査範囲は、容器１４の全体を多少の余裕をもってカバーするように予め設定しておけば良い。また、方式４を採用する場合は、領域Ｈp の変動に応じて、走査範囲を変えれば良い。
【００３０】
このようにして収集たデータｈijの内、領域ＨP 内のデータを保存する。方式４を採用する場合には、２回目以降の本ステップでは領域Ｈp 内の高さデータを更新し、それ以外の高さデータは更新せずに保持する。
【００３１】
ステップＳ６；図２に示したように、各検出ワークについてカメラＣの視線３０を表わす視線データｗk （ステップＳ３参照）と、「Ｓij 面」との交点４０の位置を求める。ここで、「Ｓij 面」とは、多数のサンプリング点（高さ計測点）Ｓij をネットワーク状に結ぶことで生成される面のことで、パーソナルコンピュータ５内でｈijのデータから計算により、求められる。カメラＣによる画像上で見れば、図２に併記したように、ワーク像６０上に交点４０の画像位置５０がくることになる。
【００３２】
なお、ここで求められる交点４０の位置決定は、本測定（ステップＳ１１）に備えて各ワークの概略の３次元位置を得るためのものであり、高い精度が要求されるものではない。
【００３３】
ステップＳ７；各検出ワークについて、概略の姿勢Ｆk を求める。概略の姿勢Ｆk は、ステップＳ６で求めた交点４０の位置の周辺近傍の高さデータから割り出すことができる。「周辺近傍」の範囲（大きさ）は、予め設定しておく。
【００３４】
ステップＳ８；各検出ワークについて、交点４０の位置データと姿勢Ｆk とに基づいて、今回取り出すワークを決定する。そのためのルールは、予め設定しておく。例えば、下記のルールとする。
【００３５】
（１）交点４０の位置が最も高いワークを選ぶ。
（２）同ワークについて、「姿勢Ｆk が不適（例えばハンドで把持不能）でないか」、「高さ以外の位置が不適（例えば外壁１５に密着した位置）でないか」をチェックし、不適当でない限り、上記（１）で選んだワークを今回取り出すワークと決定する。
【００３６】
（３）もし、不適であれば、交点４０の位置が２番目に高いワークを選び、上記（２）のチェックを行なう。以下、同様にして、（２）のチェックをクリアする条件で、交点４０の位置がなるべく高いワークを今回取り出すワークと決定する。
【００３７】
ステップＳ９；今回取り出すワークの位置（交点４０の位置）に近い、適当なロボット位置を計算し、３次元視覚センサによる本計測を行なうロボット位置（姿勢も含む）を定める。計算はパーソナルコンピュータ５から必要なデータをもらって、ロボットコントローラ２内で行なう。
【００３８】
ステップＳ１０；ステップＳ９で定めた３次元視覚センサ計測位置について、ロボットの装着物（特に３次元視覚センサ）との干渉の可能性をチェックする。そのために、例えば装着物の占有領域を多少の余裕をもってカバーする空間領域を、ロボットの手先部に設定されたフランジ座標系上で表現するデータＶf としてロボットコントローラ２のメモリに設定しておく。このデータＶf を３次元視覚センサ計測位置における空間位置（例えばロボット座標系上のデータ）Ｖr に換算する。
【００３９】
この結果をＳij面のデータと比較することで、干渉の可能性をチェックできる。例えば、データＶr が表わす空間領域とＳij面の距離に小さなしきい値を設定しておき、しきい値以上の距離があれば干渉の可能性なしとしてステップＳ１１へ進む。また、しきい値未満の距離であれば干渉の可能性ありと判断する。なお、干渉の可能性ありとされた場合には、例えば同しきい値程度の３次元視覚センサ計測位置の上方修正を行い、ステップＳ１１へ進む。
【００４０】
ステップＳ１１；ステップＳ１０で定めた計測ロボット位置にロボットを移動させて、今回取出しワークについて３次元位置・姿勢の計測を行なう。計測の仕方は周知なので、説明は省略する。なお、ここで行なう計測は、今回取出しワークに接近して３次元視覚センサで行なうことができるので、高精度を期待することが可能である。
【００４１】
ステップＳ１２；ステップＳ１１で求めたワークの３次元位置・姿勢に基づいて、ワークの取出しを行なうロボット位置（姿勢を含む）を決定する。
【００４２】
ステップＳ１３；ステップＳ１２で定めたワーク取出しロボット位置について、ロボットの装着物（特に３次元視覚センサ）との干渉の可能性をチェックする。具体的な手法は、ステップＳ１０で、計測ロボット位置について説明したと同様で良い。即ち、図３に示したように、視覚センサ４の占有範囲あるいはそれよりやや大きい範囲を表わすデータ（フランジ座標系上）をロボットコントローラ２のメモリに設定しておく（前述のデータＶf を兼用できる）。このデータをワーク取出しロボット位置における空間位置データに換算し、Ｓij面のデータと比較することで、干渉の可能性をチェックできる。以下、ステップＳ１０と同様にして、干渉の可能性なしを確認してステップＳ１４へ進む。
【００４３】
但し、干渉の可能性がありと判断された場合には、フローチャートでは記載を省略したが、ステップＳ８へ戻り、別のワークを今回取出しワークに決定し直し、ステップＳ９〜ステップＳ１３を再度実行する。以下、ステップＳ１３の干渉チェックをクリアできるまでステップＳ８〜ステップＳ１３を繰り返す。万一、全検出ワークについて、ステップＳ１４へ進めなかった場合は、システム異常として、アラームを出力して処理を終了する（フローチャートでは記載省略）。  ステップＳ１４；ステップＳ１２で定めたワーク取出しロボット位置にロボットを移動させて、ワーク取出しを実行する。ワーク取出し作業が完了（適所でハンド３を開放してワークを放す）したら、ステップＳ１へ戻る。以下、上記説明に従って、諸ステップを実行し、順次ワークが容器１４から取り出される。容器１４内の全ワークが取り出されたら、当然、ステップＳ２から「おわり」へ進み、処理は終了する。
【００４４】
【発明の効果】
本発明によれば、高さ分布測定の性質を無理なく活用して、容器内等にバラ積み状態で置かれたワークの取出しを安定的に実現することができる。また、高さ分布手段により取得された高さ分布の情報を、その精度、性質に相応しい範囲で利用し、結果として、バラ積みされたワークの群に対して例えば高い位置にあるものから優先的に取出しを行なうことが可能になる。更に、取出しに際して、事前に周囲のワークの高さ分布とロボットツール等の関係をチェックすることで、それらが接触する事故を未然に防ぎながら取出し作業を遂行できるようになる。
【図面の簡単な説明】
【図１】本発明の一つの実施形態に係るワーク取出し装置の全体配置を示した図である。
【図２】カメラで検出したワークに対する視線と高さ分布（ワーク存在領域境界）との交点から同ワークの位置を求めることについて説明する図である。
【図３】高さ分布と３次元視覚センサ（センサヘッド）との干渉可能性のチェックについて説明する図である。
【図４】実施形態における処理手順について説明するフローチャートである。
【符号の説明】
１  ロボット
２  ロボットコントローラ
３  ハンド
４  ３次元視覚センサ（センサヘッド）
５  パーソナルコンピュータ（画像処理装置）
６  ケーブル（ロボットコントローラ・ロボット間）
７  イーサネット（登録商標）
８  ケーブル（ロボットコントローラ・ハンド間）
９  ケーブル（センサヘッド・パーソナルコンピュータ間）
１０  レンジファインダ
１１  スタンド
１２  ケーブル（レンジファインダ・パーソナルコンピュータ間）
１３  テーブル
１４  容器
１５  容器の外壁
２０  ワーク
３０  視線
４０  実空間における視線と高さ分布（ワーク存在領域境界）との交点
５０  画像上における視線と高さ分布（ワーク存在領域境界）との交点
Ｃ  カメラ
Ｓij   高さ測定サンプリング点
【図１】
2004188562.tif 000003
【図２】
2004188562.tif 000004
【図３】
2004188562.tif 000005
【図４】
2004188562.tif 000006