図1は、本実施形態の物体取出システムとしてのピッキングシステムの概略構成を示した図である。図1に示すピッキングシステムは、計測システムと、投光装置10と、コントローラ11と、物体取出装置としてのピッキング装置12とを含んで構成される。ピッキングシステムは、乱雑に山積み、すなわちバラ積みされた複数の物体を掴み取り、その物体を所定の場所へ搬送したり、所定の箇所へ提供したりする。提供先は、その物体を取り付ける取り付け箇所であってもよい。以下、ピッキングシステムがピッキングする物体を、金属や樹脂等の加工対象物であるワーク13として説明する。
投光装置10は、例えば、プロジェクタとされ、所定の投光パターンを照射する。投光装置10は、光源と、液晶パネル等の表示パネルと、投射レンズとから構成される。表示パネルは、光源からの光を、対象物の表面に所定の模様等を映し出す光へ変換し、投射レンズは、その変換した光を対象物に向けて照射する。ここでは、液晶パネルを使用したLCD方式について説明したが、その他の方式を採用してもよい。
投光装置10は、所定の投光パターンとして、同時に得られる2以上の画像をマッチングするために、正確な位置合わせを可能にするランダムパターンと呼ばれる非周期的な模様を照射することができる。このランダムパターンを照射することで、テクスチャがないワーク13であっても、計測システムが備える撮像装置14を用いて、ワーク13の端部(エッジ)のみならず、ワーク13の各面の部分の形状データまで取得することが可能となる。
コントローラ11は、計測システムが備える認識装置15が認識し、出力した認識結果に基づき、ピッキング装置12の動作を制御する。認識結果は、ピッキングするワーク13の位置および姿勢に関するデータ、ワーク13の形状データ等である。これらのデータにより、コントローラ11は、そのワーク13を、どの方向から、どのような速度で移動させてピッキングするかという諸条件を決めることができる。
計測システムの制御部およびコントローラ11のハードウェア構成は同じ構成とすることができ、そのハードウェア構成については後述する。コントローラ11は、所定のプログラムを保持し、そのプログラムを実行することにより上記の制御を実現することができる。
ピッキング装置12は、ワーク13を掴み取るためのワーク13を挟み、挟んだ状態で支持する2本の指をもつハンド12aと、ハンド12aに連続し、ハンド12aを所定の位置へ移動させるアーム12bとを備えている。ピッキング装置12は、コントローラ11により、アーム12bを移動させ、ハンド12aの向きを変えて、常にワーク13の同じ位置を掴み取るように制御される。このため、ピッキング装置12は、掴み取ったワーク13を、その後どこかに取り付ける場合に同じように取り付けることができ、生産性を高めることができる。
ピッキング装置12は、上記では2本の指をもつハンド12aを備えるものとして説明したが、3本以上の指をもつハンド12aであってもよいし、吸引することによりワーク13をピッキングする構成とされていてもよい。
計測システムは、図1に示す実施形態では、上記の投光装置10を含まない構成とされているが、上記の投光装置10を含んで構成されていてもよい。計測システムは、バラ積みされた複数のワーク13の中から1つのワーク13を選定し、そのワーク13の形状を計測し、位置や姿勢に関するデータとともにコントローラ11へ出力する。そのために、計測システムは、上記の撮像装置14と、認識装置15とを備える。
撮像装置14は、例えば、ステレオカメラとされ、複数のワーク13を異なる2以上の角度から撮像して2以上の画像を出力するとともに、2以上の画像に基づき各ワーク13までの距離を算出する。撮像装置14は、2以上のカメラを備え、各カメラは、レンズ、シャッタ、画像センサを備える。撮像装置14は、各カメラのシャッタを同時に制御し、1回の撮像操作で複数枚同時に撮像する。画像センサは、複数の光電変換素子を備え、受光した光を電気信号に変換する。また、撮像装置14は、A/Dコンバータを備え、電気信号をデジタルデータである画像データに変換する。そして、撮像装置14は、画像データを用い、撮像装置14から各ワーク13までの距離を算出する。
認識装置15は、撮像装置14から出力された画像データや距離の情報を用いて、バラ積みされた複数のワーク13の中の1つのワーク13を選定し、そのワーク13の正確な形状を計測する。このため、認識装置15は、投光装置10および撮像装置14との間で情報のやりとりを行う。
投光装置10、コントローラ11、ピッキング装置12、撮像装置14、認識装置15は、互いにケーブルで接続されていてもよいし、ネットワークを介して接続されていてもよい。ネットワークは、有線ネットワークであってもよいし、Bluetooth(登録商標)やWi−Fi等の無線ネットワークであってもよい。
図2は、計測システムの制御部のハードウェア構成を例示した図である。撮像装置14におけるカメラ部分のハードウェア構成については説明したので、撮像装置14における距離を算出する処理、認識装置15における認識処理を実施するためのハードウェア構成について説明する。撮像装置14および認識装置15は、上記のカメラ部分の構成を除き、同様のハードウェア構成とすることができる。したがって、ここでは認識装置15のみのハードウェア構成について説明する。認識装置15は、CPU20、ROM21、RAM22、HDD23、入出力I/F24、外部記憶I/F25を備えている。
ROM21は、起動時に実行されるブートプログラムやファームウェア等を記憶する。HDD23は、OSや、ワークの選定、そのワークの位置、形状、姿勢等の認識処理を実現するためのプログラムを記憶する。ここでは、HDD23を使用しているが、フラッシュメモリやSSD等を使用してもよい。CPU20は、装置全体を制御し、ROM21やHDD23に記憶されたプログラムを読み出し実行する。RAM22は、CPU20に対して作業領域を提供する。
入出力I/F24は、投光装置10、撮像装置14やコントローラ11と接続し、CPU20からの指示やデータ等をそれらの装置に出力し、それら装置からデータ等の入力を受け付ける。外部記憶I/F25は、CD−ROMドライブやSDカードスロット等とされ、上記のプログラムをインストールする場合等に使用される。これらのユニットは、バス26に接続され、互いにバス26を介して情報のやりとりを行うことができるようになっている。
認識装置15は、通信I/Fを備え、ネットワークを介してそれら装置と通信することもできる。認識装置15は、必要に応じて、情報を入力するための入力装置や、現在の処理状況やエラー等を表示するための表示装置を備えることができる。
図3を参照して、計測システムが備える機能について説明する。計測システムが備える機能は、上記の撮像装置14における2つのカメラ、CPU20、HDD23に記憶されるプログラム等によって実現される。計測システムは、バラ積みされた複数のワーク13の中から1つのワーク13を選定し、その選定したワーク13の正確な形状を計測する装置である。それを実現するために、計測システム30は、撮像装置14である撮像手段31と、記憶手段32と、選定手段33と、指示手段34とを少なくとも備える。なお、計測システム30は、コントローラ11へ認識結果を出力する出力手段36をさらに備えることができる。図3では、投光装置10である投光手段35が計測システムに実装されていない構成とされているが、計測システムは、この投光手段35を含めた構成とすることも可能である。
撮像手段31は、バラ積みされた複数のワーク13を2以上の異なる角度から撮像して2以上の画像を取得し、出力する。また、撮像手段31は、2以上の画像に基づき、撮像手段31から各ワーク13までの距離を計算し、出力する。具体的な距離の算出方法については後述する。
記憶手段32は、ワーク13の姿勢を変えて一定の方向から見える複数の形状を形状情報として記憶する。具体的には、ワーク13を、角度を変えて撮像した複数の二次元画像を形状情報として記憶する。選定手段33は、撮像手段31から出力された2以上の画像と、記憶手段32に記憶された形状情報とに基づき、複数のワーク13の中から1つのワーク13を選定する。ここでは、選定手段33は、バラ積みされた複数のワーク13の中の最もピッキングしやすいワーク13を選定する。具体的なワーク13の選定方法については後述する。
指示手段34は、選定手段33により選定されたワーク13までの、撮像手段31により算出された距離の情報を用いて、その選定されたワーク13に焦点を合わせて所定の投光パターンであるランダムパターンを照射するように投光手段35に指示する。この指示を受けて、投光手段35は、その選定されたワーク13に焦点を合わせてランダムパターンを照射する。指示手段34は、投光手段35によりランダムパターンが照射された、その選定されたワーク13を撮像するように撮像手段31に対しても指示する。
撮像手段31は、投光手段35がランダムパターンを照射したその選定されたワーク13を撮像し、得られた2以上の画像に含まれるランダムパターン上の複数の点までの距離をそれぞれ算出する。これにより、その選定されたワークの正確な形状を計測する。
出力手段36は、撮像手段31から出力された2以上の画像および各点までの距離、記憶手段32に記憶された形状情報から認識されるワーク13の位置および姿勢に関するデータ、ワーク13の形状データを出力する。これらのデータは、コントローラ11によりピッキング装置12を制御するために使用される。
図4は、計測システム30が備える記憶手段32に記憶される形状情報を例示した図である。例えば、ワーク13の形状を、図4(a)に示すような円筒形とする。記憶手段32に記憶する形状情報は、この円筒形のワーク13を、様々な方向に傾けながら撮像手段31により撮像し、図4(b)に示すような二次元画像として得られた形状データとされる。図4(b)では、向かって左側から、円筒形の上部または底部の形状、正面の形状、それを45°、90°、135°傾けた形状の5つを形状情報としている。
選定手段33は、撮像手段31から出力された画像と、この形状情報としての二次元画像とを比較し、比較結果として、これら画像のデータが一致する量が一定以上である場合に、ワーク13として認識する。そして、選定手段33は、ワーク13として認識した中から、その量が最も大きいワーク13を、最もピッキングしやすいワーク13として選定する。
図5を参照して、ワーク13の選定方法について詳細に説明する。図5(a)〜(c)の、向かって左側の図は、バラ積みした複数のワーク13を正面よりやや上方の斜め方向から見た図で、向かって右側の図は、真上の撮像手段31側から見た図である。図5(a)に示すワークAは、ワークAの上に別のワークが乗っていて、撮像手段31からは、ワークAの一部の形状しか見えない。このため、図4(b)中、右から2番目のワークと比較した場合に、データの一部のみが一致し、その一致するデータ量は少ない。
図5(b)に示すワークBは、バラ積みした複数のワークの中で最も高い位置にある。しかしながら、ワーク自体が大きく傾いているため、図4(b)に示すいずれのワークの形状とも異なっている。このため、図4(b)中、左から1番目のワークや左から2番目のワークと比較しても、その一致するデータ量は少ない。
図5(c)に示すワークCおよびワークDは、バラ積みした複数のワークの中で最も低い位置にあるが、別のワークが乗っておらず、ワーク自体が傾いてもいない。このため、ワーク全体が撮像手段31からよく見えていて、図4(b)中、左から1番目のワーク、右から2番目のワークと比較して、最も一致するデータ量が多い。このことから、選定手段33は、このワークC、Dを最もピッキングしやすいワークとして選定する。
なお、ワークC、Dのように2つのワークを選定した場合、いずれか1つを先にピッキングし、もう1つを次にピッキングすることができる。ピッキングする順序は、どのような順序であってもよく、例えば、撮像手段31から見て左側から順にピッキングすることができる。これは一例であるので、これに限定されるものではない。
図6および図7を参照して、撮像手段31が行うワーク13までの距離の算出方法について説明する。撮像手段31は、例えば2台のカメラ40a、40bを備え、同時に撮像を行う。撮像手段31は、得られた2つの画像間に生じる視差Δを利用し、三角測量の原理によりワーク13までの距離Lを計算する。撮像手段31は、一対の画像センサ41a、41bと、一対のレンズ42a、42bとを組み合わせることで2つのカメラ40a、40bを構成している。
図6では、ワーク13からの光を、同一の光学系からなる2つのカメラ40a、40bを配置して撮像している。レンズ42a、42bを通して得られたワーク像43a、43bは、被写体上の同一点が図6および図7に示すように視差Δだけずれて画像センサ41a、41bに至り、複数の光電変換素子で受光される。
レンズ42a、42bの光軸間の距離Dは、基線長と呼ばれ、レンズ42a、42bの焦点距離をfとし、L>>fであるとき、下記式1が成り立つ。
上記式1中、基線長Dおよびレンズ42a、42bの焦点距離fは既知の値であるため、図6および図7に示す視差Δを検出することで、ワーク13までの距離Lを計算することができる。視差Δは、画像を構成する画素の幅が一定の値であることから、画素数から求めることができる。
図8および図9を参照して、ランダムパターンについて説明する。撮像手段31として使用されるステレオカメラによる距離の計測は、同時に得られた2つの画像にテクスチャ(模様)が存在することが前提である。これは、テクスチャがないワーク13では、2つの画像の間でマッチングが得られず、視差Δを検出することができないからである。そこで、テクスチャがないワーク13の形状を正確に計測するために投光装置10を用いて図8に示すようなランダムパターンと呼ばれる細かいテクスチャがワーク13に投光される。
ランダムパターンは、等間隔で同じ模様が繰り返される周期的なパターンではなく、図8に示すような、その間隔も、模様も異なる非周期的なパターンである。2つの画像をマッチングする際に、2つの画像間の同じ位置を識別することができれば、図8に示すパターンに限らず、いかなるパターンであってもよい。
ワーク13を正確にピッキングするためには、ワーク13の形状をより正確に計測しなければならない。形状を正確に計測するためには、投光装置10から照射されるランダムパターンがピッキングしたいワーク13に焦点(ピント)が合うように照射しなければならない。ワーク13にピントが合うようにランダムパターンを照射し、そのワーク13を撮像すると、図9(a)に示すようなはっきりしたランダムパターンの画像が得られる。
ピントが合っているため、2つの画像間の対応する画素を特定することができ、その画素に対応したワーク13上の点までの正確な距離を算出することができる。このため、ワーク13の面の部分がどのような形状になっているかを、その正確に算出された距離から正確に計測することができる。
これに対し、ワーク13にピントが合っていない場合、図9(b)に示すようなぼやけたランダムパターンの画像が得られる。このように画像がぼやけていると、2つの画像間の対応する画素をはっきり特定することができない。これでは、その画素に対応したワーク13上の点までの正確な距離を算出することができないため、ワーク13の面の形状を正確に計測することができない。
本発明では、ピッキングするワーク13にピントを合わせてランダムパターンを照射し、それを撮像するので、ワーク13の正確な形状を計測することができる。正確な形状の情報が得られる結果として、正確な位置や正確な姿勢の情報を得ることができる。
投光装置10から照射されるランダムパターンを常にピッキングするワークにピントが合うようにして正確なワークの形状を計測する計測システムを備えるピッキングシステムが行う処理を、図10を参照して詳細に説明する。この処理は、ステップ1000から開始し、ステップ1005では、撮像手段31を起動し、ステップ1010では、投光手段35を起動する。いずれも電源を入れて起動させることができる。なお、投光手段35は、ランダムパターンを照射するのではなく、単に複数のワーク13を照明するだけでもよい。
ステップ1015では、撮像手段31によりバラ積みされた複数のワーク13を撮像する。この撮像により、2つの画像が得られる。ステップ1020では、得られた2つの画像に基づき、撮像手段31からバラ積みされた複数のワーク13の最も高い部分(最高点)までの距離を計算する。撮像手段31は、バラ積みされた複数のワーク13の真上から撮像しているため、最高点は、撮像手段31から最も近い位置にある点である。なお、最高点は、ワーク13のエッジ部分となるため、そのエッジ部分を基に2つの画像のマッチングを行い、視差を得、その視差から上記式1により上記距離を計算することができる。
ステップ1025では、計算した距離を用いて投光手段35のピントをその最高点に合わせる。投光手段35は、測距センサを搭載しているため、測距センサで計測される距離がその計算した距離になるように投光距離を調整する。ステップ1030では、投光手段35からランダムパターンを照射する。ステップ1035では、ランダムパターンが照射されたバラ積みされた複数のワーク13を撮像手段31により撮像する。
ステップ1040では、選定手段33が撮像結果を取り込み、最もピッキングしやすいワークを選定する。ステップ1045では、投光手段35のピントを、選定手段33により選定されたワーク13に合わせる。撮影結果には、各ワーク13までの距離も含まれているため、選定されたワーク13までの距離を用いて投光手段35のピントを合わせる。ステップ1050では、投光手段35からランダムパターンを照射する。このランダムパターンは、ステップ1030とは異なり、選定されたワーク13にピントが合ったランダムパターンである。
ステップ1055では、ランダムパターンが照射されたバラ積みされた複数のワーク13を撮像手段31で撮像する。ステップ1060では、撮影結果から、選定されたワーク13の正確な形状の形状データ、位置や姿勢に関するデータを生成し、それらデータを認識結果としてコントローラ11に出力する。ステップ1065では、コントローラ11がそれらデータに基づきピッキング装置12を制御し、選定されたワーク13をピッキングする。
ステップ1070では、ワークが残っているかどうかを判断し、残っている場合はステップ1035へ戻り、バラ積みされたワークを撮像手段31で撮像する。一方、残っていない場合、ステップ1075へ進み、ピッキングを終了する。
山積みされたワーク13をピッキングする場合、最もピッキングしやすいワークは、山の最上部にあるワーク13であることが多い。このため、処理を開始する際、その最上部のワーク13にピントを合わせることで、焦点合わせにかかる時間を短縮し、これによりピッキング時間を短縮することができる。
ワーク13は、一般的には図11に示すような容器44の中に山積みされている。容器44の中にあるワーク13を投光装置10で照明する場合、投光装置10から近い位置にあるワーク13には投光装置10から出射される光束のほぼ全てが容器44内に照射される(図11中、800mmの位置)。一方、投光装置10から遠い位置(例えば、図11中、1200mmの位置)にあるワーク13に対しては、投光装置10からの光は広がり、容器44の外側にも光が照射され、投光装置10から出射される光束の一部しか容器44内には照射されない。
このため、投光装置10から遠い位置にあるワーク13は、照射される光量が少なくなる。光量が少ないと撮像装置14でワーク13を撮像した場合、暗い画像が得られることになる。画像が暗いと、2つの画像の間でマッチングが得られなくなり、正しい視差Δが得られなくなってしまうという不具合が生じる。
そこで、投光装置10からワーク13までの距離に応じて撮像装置14の露光量を変えて、撮像装置14は常に明るさが一定の画像が得られるようにする。具体的には、撮像装置14は、ワーク13までの距離に応じて、露光量を変えるために露光時間を変えることができる。
例えば、容器44のサイズが縦500mm、横500mm、高さ400mmで、投光装置10から床面までの距離が1200mmであるとする。この場合、容器44の最上部は、投光装置10から800mm離れた位置にあるため、投光装置10の画角は、34.7deg(=2×tan−1(250/800))以上あれば、容器44全体(縦500mm×横500mm)を照明することができる。図11に示すように、ワーク13が投光装置10から1200mm離れた位置にあると、投光装置10からの光束は、縦750mm(=1200×tan(34.7/2)×2)×横750mmの領域が照明される。容器44の面積(縦500mm×横500mm)の2.25倍の面積が照明されるため、容器44に照射される光量は、800mm離れた位置にある場合に比べて0.44倍となる。
このように山積みされたワーク13がピッキングされて減少していくと、残ったワーク13は、投光装置10からの距離が遠くなっていく。その結果、ワーク13に照射される光量は少なくなっていく。しかしながら、上記のように距離に応じて露光時間を変え、その時間を長くしていくことで、撮像した画像が暗くならないようにすることができる。
撮像装置14から選定したワーク13までの距離が分かれば、投光装置10から選定したワーク13までの距離も換算することができる。投光装置10と撮像装置14は固定されているため、設置したときの位置関係が常に一定に保たれている。図1に示すように、投光装置10と撮像装置14を同じ高さに並べて設置した場合は、撮像装置14からワーク13までの距離と、投光装置10からワーク13までの距離は、ほぼ同じ距離とみなすことができる。このため、撮像装置14から得られた距離を用い、その距離に応じて、撮像装置14の露光時間を変えることができ、これにより、常に明るい画像を得ることが可能となる。その結果、2つの画像の間でマッチングが得られ、正しい視差Δを得ることができる。
これまでは、ワーク13と投光装置10との距離が離れた場合は露光時間を長くすることで明るい画像が得られることを説明したが、露光時間を長くすることに限らず、例えば、投光装置10の輝度を高めて照射する光量を大きくすることで明るい画像が得られるようにしてもよい。具体的には、投光装置10が、ワーク13と投光装置10との距離に応じて、投光装置10から出射される光量を変えることができる。なお、ワーク13と投光装置10との距離は、上記と同様、撮像装置14からワーク13までの距離とほぼ同じ距離とし、撮像装置14から得られた距離を用いることができる。これにより、露光時間を長くする場合と同様、常に明るい画像を得ることができる。その結果、2つの画像の間でマッチングが得られ、正しい視差Δを得ることができる。
ピッキングしていくに従って、山積みされたワーク13の高さが変わり、投光装置10から選定したワーク13までの距離に応じて撮像装置14の露光時間や投光装置10の輝度を変化させることを提案したが、そのほか、投光装置10の画角を変えてもよい。以下、この画角を変えることについて説明する。
図12に示すように、投光装置10からワーク13までの距離が800mmである場合、上記で説明したようにその画角θ1は、34.7degである。投光装置10からワーク13までの距離が1000mmになると、投光装置10からの光は、容器44の面積(縦500mm×横500mm)よりも広い範囲に照射されるため、ワーク13に照射される光量は少なくなる。これを補うため、投光装置10の画角θを狭くする。具体的には、画角θを、2×tan−1(250/1000)=28.1degにすることで、その距離が1000mmになった場合でも、容器44の外側の広い範囲に照明されることがなくなり、ワーク13に照射される光量が低下するのを防ぐことができる。
さらに、投光装置10からワーク13までの距離が1200mmになると、投光装置10からの光は、容器44の面積よりも、より広い範囲に照射されることになるため、ワーク13に照射される光量はさらに少なくなる。この場合は、画角θを、2×tan−1(250/1200)=23.5degにすることで、容器44の外側の広い範囲に照明されることがなくなり、ワーク13に照射される光量が低下するのを防ぐことができる。
このように、ワーク13までの距離に応じて、投光装置10の投光画角を変化させることで、ワーク13に照射されない無駄な光がなくなり、撮像装置14で常に明るい画像を得ることができる。これにより、2つの画像の間でマッチングが得られ、正しい視差Δを得ることができる。
投光する画角は、一般的なプロジェクタ等のズーム機能でズーム倍率を変えることにより変化させることができる。なお、ズームによりプロジェクタ等の明るさが変わってしまうと、容器44だけに光を照射するようにしても、ワーク13に照射される光量を十分に確保できなくなってしまう可能性がある。そこで、投光装置10は、ズーム倍率に関わらず、ズーム全域で同等の明るさを一定に維持できる光学設計とすることが望ましい。
選定されたワーク13にピントが合ったランダムパターンを照射し、それを撮像して、そのワーク13の各点までの正確の距離を算出することができるので、そのワーク13の正確な位置も把握することができる。また、形状情報とともにこの算出した距離を用いることで正確なワーク13の向きや傾き等の姿勢も把握することができる。これらを位置や姿勢に関するデータとして、形状データとともにコントローラ11に与えることで、ピッキング装置12がそのワーク13をピッキングしたときに、掴む位置や傾きにばらつきをなくすことができる。また、掴んだワークを別の装置に取り付ける際にも、正確に歩留まり良く取り付けることができる。
これまで本発明を、計測システム、物体取出システム、計測方法およびプログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。したがって、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。よって、本発明では、その計測方法を含む物体の取出方法やそのプログラムが記録された記録媒体等も提供することができるものである。