(57)【要約】【課題】ばら積みされたワークに対する把持の成功率を向上させ、良好なピッキング操作を実現する。【解決手段】ワークピッキング装置は、ワークを計測するセンサと、ワークを把持するハンドと、ハンドを移動するロボットと、それらの制御装置とを備える。制御装置は、ワークの位置姿勢等を算出する位置姿勢算出部と、ハンドによるワークの把持姿勢を算出する把持姿勢算出部と、ハンドを把持姿勢に移動する経路を算出する経路算出部と、センサの動作を制御するセンサ制御部と、ハンドの動作を制御するハンド制御部と、ロボットの動作を制御するロボット制御部と、３次元位置の計測結果等に基づいてワークの状況を判定する状況判定部と、ワークの状況の判定結果が所定の条件を満たす場合に、計測パラメータ及び種々の算出パラメータのうち少なくとも何れかを変更するパラメータ変更部とを有する。【選択図】図４
2019155535.tif 000002
【特許請求の範囲】
【請求項１】
積まれたワークを取り出すためのワークピッキング装置であって、
前記ワークの３次元位置を計測するセンサと、
前記ワークを把持するハンドと、
前記ハンドを把持位置に移動し且つ該把持位置から移動するロボットと、
前記センサ、前記ハンド、及び前記ロボットを制御する制御装置と、
を備え、
前記制御装置は、
前記３次元位置の計測結果に基づいて、所定の算出パラメータを用いて前記ワークの位置姿勢を算出し、且つ、位置姿勢を検出したワーク数を算出する位置姿勢算出部と、
前記位置姿勢の算出結果に基づいて、所定の算出パラメータを用いて前記ハンドが前記ワークを把持する際の前記ハンドの把持姿勢を算出する把持姿勢算出部と、
所定の算出パラメータを用いて前記ハンドを前記把持姿勢に移動する経路を算出する経路算出部と、
前記３次元位置を計測する際の計測パラメータに基づいて、前記センサの動作を制御するセンサ制御部と、
前記把持姿勢に基づいて、前記ハンドの動作を制御するハンド制御部と、
前記経路に基づいて、前記ロボットの動作を制御するロボット制御部と、
前記３次元位置の計測結果及び前記ワーク数の算出結果に基づいて、前記ワークの状況を判定する状況判定部と、
前記ワークの状況の判定結果が所定の条件を満たす場合に、前記３次元位置を計測する際の計測パラメータ、前記位置姿勢の算出パラメータ、前記把持姿勢の算出パラメータ、及び、前記経路の算出パラメータのうち少なくとも何れか１つを含むパラメータを変更するパラメータ変更部と、
を有する、
ワークピッキング装置。
【請求項２】
前記制御装置は、前記３次元位置の計測結果から欠損領域を抽出する欠損領域抽出部を備え、
前記状況判定部は、前記ワーク数、及び、前記欠損領域の位置、面積、又は体積に基づいて、前記ワークの状況を判定する、
請求項１記載のワークピッキング装置。
【請求項３】
前記制御装置は、前記３次元位置の計測結果から平面領域を抽出する平面領域抽出部を備え、
前記状況判定部は、前記ワーク数、及び、前記平面領域の位置、距離又は面積に基づいて、前記ワークの状況を判定する、
請求項１記載のワークピッキング装置。
【請求項４】
前記パラメータ変更部は、前記ワーク数が所定値以下である場合に、前記パラメータを変更する、
請求項１乃至３の何れか１項記載のワークピッキング装置。
【請求項５】
前記パラメータ変更部は、前記欠損領域の面積若しくは体積が所定値以上である場合に、又は、前記欠損領域の位置が前記ワークの載置領域内の所定の範囲に存在する場合に、前記パラメータを変更する、
請求項２又は４記載のワークピッキング装置。
【請求項６】
前記パラメータ変更部は、前記平面領域の距離若しくは面積が所定値以下である場合に、又は、前記平面領域の位置が前記ワークの載置面に対して所定の範囲に存在する場合に、前記パラメータを変更する、
請求項３又は４記載のワークピッキング装置。
【請求項７】
前記パラメータ変更部は、前記パラメータの変更を所定回数以内に制限する、
請求項１乃至６の何れか１項記載のワークピッキング装置。
【請求項８】
前記パラメータ変更部は、前記３次元位置を計測する際の計測パラメータとして、露光時間、照明照度、及び計測位置のうち少なくも何れか１つを変更する、
請求項１乃至７の何れか１項記載のワークピッキング装置。
【請求項９】
前記パラメータ変更部は、前記欠損領域の輝度に基づいて、露光時間、照明照度、及び計測位置のうち少なくも何れか１つを変更する、
請求項８記載のワークピッキング装置。
【請求項１０】
前記パラメータ変更部は、前記位置姿勢の算出パラメータとして、位置姿勢算出の閾値を変更する、
請求項１乃至７の何れか１項記載のワークピッキング装置。
【請求項１１】
前記パラメータ変更部は、前記把持姿勢の算出パラメータとして、把持姿勢算出の閾値を変更する、
請求項１乃至７の何れか１項記載のワークピッキング装置。
【請求項１２】
前記パラメータ変更部は、前記経路の算出パラメータとして、干渉判定の閾値を変更する、
請求項１乃至７の何れか１項記載のワークピッキング装置。
【請求項１３】
前記パラメータ変更部は、前記パラメータの変更回数に応じて前記パラメータを変更する、
請求項１乃至１２の何れか１項記載のワークピッキング装置。
【請求項１４】
センサ、ハンド、ロボット、及び、制御装置を備えるワークピッキング装置を用い、積まれたワークを取り出すためのワークピッキング方法であって、
前記センサが、前記ワークの３次元位置を計測する計測ステップと、
前記ハンドが、前記ワークを把持する把持ステップと、
前記ロボットが、前記ハンドを把持位置に移動し且つ該把持位置から移動する移動ステップと、
前記制御装置が、前記センサ、前記ハンド、及び前記ロボットを制御する制御ステップと、
を含み、
前記制御ステップは、
前記３次元位置の計測結果に基づいて、所定の算出パラメータを用いて前記ワークの位置姿勢を算出し、且つ、位置姿勢を検出したワーク数を算出する位置姿勢算出ステップと、
前記位置姿勢の算出結果に基づいて、所定の算出パラメータを用いて前記ハンドが前記ワークを把持する際の前記ハンドの把持姿勢を算出する把持姿勢算出ステップと、
所定の算出パラメータを用いて前記ハンドを前記把持姿勢に移動する経路を算出する経路算出ステップと、
前記３次元位置を計測する際の計測パラメータに基づいて、前記センサの動作を制御するセンサ制御ステップと、
前記把持姿勢に基づいて、前記ハンドの動作を制御するハンド制御ステップと、
前記経路に基づいて、前記ロボットの動作を制御するロボット制御ステップと、
前記３次元位置の計測結果及び前記ワーク数の算出結果に基づいて、前記ワークの状況を判定する状況判定ステップと、
前記ワークの状況の判定結果が所定の条件を満たす場合に、前記３次元位置を計測する際の計測パラメータ、前記位置姿勢の算出パラメータ、前記把持姿勢の算出パラメータ、及び、前記経路の算出パラメータのうち少なくとも何れか１つを含むパラメータを変更するパラメータ変更ステップと、
を有する、
ワークピッキング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークピッキング装置及びワークピッキング方法に関する。
【背景技術】
【０００２】
従来、乱雑に重なり合って置かれたばら積み部品から個々の部品（ワーク）の位置姿勢を認識し、ロボットによってワークを１つずつ取り出す装置（いわゆるばら積みピッキング装置）が知られている。かかるばら積みピッキング装置として、特許文献１には、ロボットハンドをワーク把持目標位置へ前進させ、把持状態を確認し、把持状態が良好でない場合には、ワーク把持目標位置を変更して、良好な把持状態となるまでロボットハンドを前進させるものが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６９５４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来のばら積みピッキング装置では、ばら積みされたワークを距離センサで３次元計測し、得られた計測結果とワークの３次元ＣＡＤモデルとを照合することによって、個別のワークの位置姿勢を認識する。その際、距離センサで３次元計測するための計測パラメータは、ユーザが計測に先立って事前に所定値を設定しておくことが一般的である。
【０００５】
しかし、そのような計測パラメータの設定をユーザが適切に行っていたとしても、ワーク周辺の環境変化やワークの表面状態の変化等により計測値の一部が欠けたり抜けたりするので、ばら積みされた全てのワークに対して３次元計測を行うことはできなかった。特に、ワークのピッキング回数が増えていき、残存するワークの数が少なくなってくると、計測値に欠けや抜けがあるワークの割合が次第に多くなってしまう、すなわち、ワークを検出すること自体困難になってしまうといった問題があった。換言すれば、一般に、位置姿勢の計測値が安定しているワークほど、他のワークよりも優先的に先にピッキングされていくので、ピッキング作業が進んで終盤になってくるほど、検出され難いが故にピッキングできないワークの数が増大してしまう傾向にあった。
【０００６】
そこで、本発明は、一側面では、かかる事情を鑑みてなされたものであり、ばら積みされたワークに対し、把持の成功率を向上させることができ、良好なピッキング操作を実現することが可能なワークピッキング技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００８】
〔１〕本開示に係るワークピッキング装置の一例は、積まれたワークを取り出すためのものであって、前記ワークの３次元位置を計測するセンサと、前記ワークを把持するハンドと、前記ハンドを把持位置に移動し且つ該把持位置から移動するロボットと、前記センサ、前記ハンド、及び前記ロボットを制御する制御装置とを備える。そして、前記制御装置は、前記３次元位置の計測結果に基づいて、所定の算出パラメータを用いて前記ワークの位置姿勢を算出し、且つ、位置姿勢を検出したワーク数を算出する位置姿勢算出部と、前記位置姿勢の算出結果に基づいて、所定の算出パラメータを用いて前記ハンドが前記ワークを把持する際の前記ハンドの把持姿勢を算出する把持姿勢算出部と、所定の算出パラメータを用いて前記ハンドを前記把持姿勢に移動する経路を算出する経路算出部と、前記３次元位置を計測する際の計測パラメータに基づいて、前記センサの動作を制御するセンサ制御部と、前記把持姿勢に基づいて、前記ハンドの動作を制御するハンド制御部と、前記経路に基づいて、前記ロボットの動作を制御するロボット制御部と、前記３次元位置の計測結果及び前記ワーク数の算出結果に基づいて、前記ワークの状況を判定する状況判定部と、前記ワークの状況の判定結果が所定の条件を満たす場合に、前記３次元位置を計測する際の計測パラメータ、前記位置姿勢の算出パラメータ、前記把持姿勢の算出パラメータ、及び、前記経路の算出パラメータのうち少なくとも何れか１つを含むパラメータを変更するパラメータ変更部とを有する。
【０００９】
当該構成では、積まれたワークの個々の３次元位置を所定の計測パラメータを用いて計測し、その計測結果に基づいてワークの位置姿勢と検出されたワーク数を算出し、さらに、それらの結果に基づいて、ワークの状況を判定する。そして、その状況に応じて、計測パラメータ、位置姿勢の算出パラメータ、把持姿勢の算出パラメータ、及び、経路の算出パラメータのうち少なくとも何れか１つを含むパラメータを変更し、再計測又は再算出を行った上で、ワークのピッキングを行う。従って、当初の３次元計測においてワークの計測値に欠けや抜けが生じたとしても、ワークに対する把持の成功率を向上（不成功率を低減）させることができる。  
【００１０】
なお、ここでの「成功率」とは、ハンドがワークの把持を試行したときに、そのワークを把持することができた率を意味するのではなく、未だ残存しているワークの３次元位置を計測することができ（残存しているワークをワークピッキング装置が検知することができ）、その結果、ワークのピッキングに成功した率を示す。換言すれば、ここでの「不成功率」とは、ハンドがワークの把持を試行したものの、そのワークを把持し損なった率を意味するのではなく、未だワークが残存しているにも拘わらず、そのワークの３次元位置を計測することができない（残存しているワークをワークピッキング装置が検知することができない）が故に、ワークのピッキングに成功しなかった率を示す。また、センサは、固定されていてもよいし、移動可能に設置されていてもよく、後者の場合、センサ自体が駆動機構を有していてもよいし、センサが例えばロボットに取り付けられていてもよい。
【００１１】
〔２〕上記構成において、前記制御装置は、前記３次元位置の計測結果から欠損領域を抽出する欠損領域抽出部を備え、前記状況判定部は、前記ワーク数、及び、前記欠損領域の位置、面積、又は体積に基づいて、前記ワークの状況を判定するようにしてもよい。ここで、「欠損領域」とは、センサの計測範囲内において、ワークの３次元位置の計測値が本来得られるはずの領域であるにも拘わらず、ワークの３次元位置の計測値が得られず、計測値に欠けや抜けが生じてしまった領域を示す。
【００１２】
かかる構成では、検知されたワーク数と欠損領域に関する特徴量（位置、面積、又は体積）の双方に基づいてワークの状況を判定するので、未だ残存しているワークの状態をより確実に把握することができ、その結果、計測パラメータや種々の算出パラメータの変更の要否を正確に判断することができる。
【００１３】
〔３〕上記構成において、前記制御装置は、前記３次元位置の計測結果から平面領域を抽出する平面領域抽出部を備え、前記状況判定部は、前記ワーク数、及び、前記平面領域の位置、距離又は面積に基づいて、前記ワークの状況を判定するようにしてもよい。ここで、「平面領域」とは、ワークの３次元位置の計測値において「平面」と認められる領域であり、より具体的には、例えば、ワークが収納された容器の底面やワークが積まれた支持台の面等に相当する。
【００１４】
かかる構成では、検知されたワーク数と平面領域に関する特徴量（位置、距離又は面積）の双方に基づいてワークの状況を判定するので、未だ残存するワークの状態をより確実に把握することができ、その結果、計測パラメータや種々の算出パラメータの変更の要否を正確に判断することができる。
【００１５】
〔４〕上記構成において、前記パラメータ変更部は、前記ワーク数が所定値以下である場合に、前記パラメータを変更するものであってもよい。
【００１６】
かかる構成では、パラメータの変更の要否を判定するためのワーク数について言わば閾値を設定するので、特に、残存すると想定されるワーク数に対して検出されたワーク数が少ないような場合に、パラメータの変更の要否をより的確に判断することができる。
【００１７】
〔５〕上記構成において、前記パラメータ変更部は、前記欠損領域の面積若しくは体積が所定値以上である場合に、又は、前記欠損領域の位置が前記ワークの載置領域内の所定の範囲に存在する場合に、前記パラメータを変更するようにしてもよい。ここで、「載置領域」とは、ワークが載置された有限の領域を示し、より具体的には、例えば、ワークが収納された容器やワークが積まれた支持台等に相当する。
【００１８】
かかる構成では、パラメータの変更の要否を判定するための欠損領域の面積、体積又は位置に言わば閾値を設定するので、特に、残存すると想定されるワーク数に対してワークの計測値の欠けや抜けが多いような場合に、パラメータの変更の要否をより的確に判断することができる。
【００１９】
〔６〕上記構成において、前記パラメータ変更部は、前記平面領域の距離若しくは面積が所定値以下である場合に、又は、前記平面領域の位置が前記ワークの載置面に対して所定の範囲に存在する場合に、前記パラメータを変更するようにしてもよい。ここで、「平面領域の距離」とは、適宜の基準位置と検出された平面領域の位置との間の距離を示す。また、「載置面」とは、ワークが載置された有限の領域の面を示し、より具体的には、例えば、ワークが収納された容器の底面やワークが積まれた支持台の面に相当する。
【００２０】
かかる構成では、パラメータの変更の要否を判定するための平面領域の距離、面積又は位置に言わば閾値を設定するので、パラメータの変更の要否をより的確に判断することができる。
【００２１】
〔７〕上記構成において、前記パラメータ変更部は、前記パラメータの変更を所定回数以内に制限するようにしてもよい。
【００２２】
かかる構成では、所定回数を超えた場合にはパラメータの変更処理を行わないので、ワークに対する把持の成功率をそれ以上有意に高めることができなくなっても処理を繰り返してしまうことに起因して処理時間が増大してしまうことを抑止することができる。
【００２３】
〔８〕上記構成において、前記パラメータ変更部は、前記３次元位置を計測する際の計測パラメータとして、露光時間、照明照度、及び計測位置のうち少なくも何れか１つを変更するように構成することができる。
【００２４】
かかる構成では、ワークの３次元位置の計測パラメータのうち、特に主要な露光時間、照明照度、及び計測位置といったパラメータを変更するので、再計測時に、ワークの３次元位置のより正確な検出が可能となり、その結果、計測値の欠けや抜けの発生を軽減することができる。
【００２５】
〔９〕上記構成において、前記パラメータ変更部は、前記欠損領域の輝度に基づいて、露光時間、照明照度、及び計測位置のうち少なくも何れか１つを変更するようにしてもよい。
【００２６】
かかる構成では、欠損領域の輝度に着目するので、欠損領域が生じた要因を特定し易くなり、その結果、露光時間、照明照度、及び計測位置といった主要な計測パラメータをより適切に再設定することができる。
【００２７】
〔１０〕上記構成において、前記パラメータ変更部は、前記位置姿勢の算出パラメータとして、位置姿勢算出の閾値を変更するようにしてもよい。
【００２８】
かかる構成では、位置姿勢算出の閾値を変更することにより、ワークの計測値に欠けや抜けがある場合や、ワークが重なり合っている場合でも、個々のワークを検出し易くなるので、把持候補となるワーク数を増大させることができ、その結果、把持の成功率を更に高めることができる。
【００２９】
〔１１〕上記構成において、前記パラメータ変更部は、前記把持姿勢の算出パラメータとして、把持姿勢算出の閾値を変更するようにしてもよい。
【００３０】
かかる構成では、把持姿勢算出の閾値を変更することにより、ワーク間の隙間が小さい場合（ワークが近接している場合）や、例えば容器に収納されているワークが容器の壁際に存在する場合でも、ハンドによるワークの把持を容易ならしめ、その結果、ワークに対する把持の成功率を更に高めることができる。
【００３１】
〔１２〕上記構成において、前記パラメータ変更部は、前記経路の算出パラメータとして、干渉判定の閾値を変更するようにしてもよい。
【００３２】
かかる構成では、干渉判定の閾値を変更することにより、ハンドをより能動的にワークの把持位置へ移動させることがでるので、ワークに対する把持の成功率を更に高めることができる。
【００３３】
〔１３〕上記構成において、前記パラメータ変更部は、前記パラメータの変更回数に応じて前記パラメータを変更するようにしてもよい。
【００３４】
かかる構成では、パラメータの変更回数に応じて各パラメータを変更するので、ワークのピッキングが進捗して残存するワーク数が少なくなっていく状況に応じた適切なパラメータを設定することができ、その結果、ワークに対する把持の成功率を更に一層高めることができる。
【００３５】
〔１４〕本開示に係るワークピッキング方法の一例は、上記構成のワークピッキング装置の一例を用いて有効に実施し得る方法であり、以下の各ステップを含む。すなわち、当該方法は、センサ、ハンド、ロボット、及び、制御装置を備えるワークピッキング装置を用い、積まれたワークを取り出すための方法であって、前記センサが、前記ワークの３次元位置を計測する計測ステップと、前記ハンドが、前記ワークを把持する把持ステップと、前記ロボットが、前記ハンドを把持位置に移動し且つ該把持位置から移動する移動ステップと、前記制御装置が、前記センサ、前記ハンド、及び前記ロボットを制御する制御ステップとを含む。そして、前記制御ステップは、前記３次元位置の計測結果に基づいて、所定の算出パラメータを用いて前記ワークの位置姿勢を算出し、且つ、位置姿勢を検出したワーク数を算出する位置姿勢算出ステップと、前記位置姿勢の算出結果に基づいて、所定の算出パラメータを用いて前記ハンドが前記ワークを把持する際の前記ハンドの把持姿勢を算出する把持姿勢算出ステップと、所定の算出パラメータを用いて前記ハンドを前記把持姿勢に移動する経路を算出する経路算出ステップと、前記３次元位置を計測する際の計測パラメータに基づいて、前記センサの動作を制御するセンサ制御ステップと、前記把持姿勢に基づいて、前記ハンドの動作を制御するハンド制御ステップと、前記経路に基づいて、前記ロボットの動作を制御するロボット制御ステップと、前記３次元位置の計測結果及び前記ワーク数の算出結果に基づいて、前記ワークの状況を判定する状況判定ステップと、前記ワークの状況の判定結果が所定の条件を満たす場合に、前記３次元位置を計測する際の計測パラメータ、前記位置姿勢の算出パラメータ、前記把持姿勢の算出パラメータ、及び、前記経路の算出パラメータのうち少なくとも何れか１つを含むパラメータを変更するパラメータ変更ステップとを有する。
【００３６】
なお、本開示において、「部」及び「装置」とは、単に物理的手段を意味するものではなく、その「部」及び「装置」が有する機能をソフトウェアによって実現する構成も含む。また、１つの「部」及び「装置」が有する機能が２つ以上の物理的手段や装置によって実現されてもよく、或いは、２つ以上の「部」及び「装置」の機能が１つの物理的手段や装置によって実現されてもよい。さらに、「部」及び「装置」とは、例えば「手段」及び「システム」と言い換えることも可能な概念である。
【発明の効果】
【００３７】
本発明によれば、単一の計測パラメータを設定したワークの３次元計測に基づく従来のピッキングに比して、ばら積みされたワークに対する把持の成功率を向上させることができ、その結果、良好なピッキング操作を実現することが可能となる。
【図面の簡単な説明】
【００３８】
【図１】実施形態に係るワークピッキング装置の適用場面の一例の概略を模式的に示す平面図である。
【図２】実施形態に係るワークピッキング装置のハードウェアの構成の一例を模式的に示す平面図である。
【図３】実施形態に係るワークピッキング装置の機能構成の一例を模式的に示す平面図である。
【図４】実施形態に係るワークピッキング装置における処理手順の一例を示すフローチャートである。
【図５】他の実施形態としての第１構成例に係るワークピッキング装置における処理手順の一例を示すフローチャートである。
【図６】他の実施形態としての第２構成例に係るワークピッキング装置における処理手順の一例を示すフローチャートである。
【図７】他の実施形態としての第３構成例に係るワークピッキング装置における処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００３９】
以下、本開示の一例に係る実施の形態（以下「実施形態」とも表記する）について、図面を参照して説明する。但し、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本開示の一例は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付しており、図面は模式的なものであって、必ずしも実際の寸法や比率等とは一致しない。さらに、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００４０】
§１  適用例
まず、図１を用いて、本開示の一例が適用される場面の一例について説明する。図１は、本実施形態に係るワークピッキング装置１００の適用場面の一例の概略を模式的に示す平面図である。本実施形態に係るワークピッキング装置１００は、例えば収納容器６等の供給装置内にばら積みされた複数のワーク５を、その収納容器６から取り出して適宜のトレー等（図示せず）へ移設し、整列させて配置するための装置である。
【００４１】
図１の例では、ワークピッキング装置１００は、センサ１、ハンド２、ロボット３、及び、制御装置４を備える。
【００４２】
センサ１は、ワーク５の３次元位置を計測するための距離センサであり、例えば一般的な光学センサが搭載されたカメラ装置を含んで構成されており、ワーク５を所定の視野角で撮像する。ハンド２は、個々のワーク５を掴み且つ離す動作が可能な把持機構を有するものである。ロボット３は、そのアーム部の先端にハンド２が設けられており、ハンド２を収納容器６内のワーク５の把持位置に移動し、且つ、ワーク５を把持したハンド２をその把持位置から上述したトレー等に移動するための駆動機構を有するものである。制御装置４は、センサ１、ハンド２、及びロボット３のそれぞれに接続されており、センサ１によるワーク５の計測処理、ハンド２によるワーク５の把持処理、ロボット３の駆動処理の他、ワークピッキング装置１００において必要となる種々の動作や演算に関する処理を制御するためのものである。
【００４３】
ここで、ワーク５の３次元位置の計測方式としては、特に制限されず、例えば、光の直進性を用いる種々のアクティブ計測方式（例えば、三角測距を基本原理とする空間コード化パターン投影方式、時間コード化パターン投影方式、モアレトポグラフィ方式等）、光の直進性を用いる種々のパッシブ計測方式（例えば、三角測距を基本原理とするステレオカメラ方式、視体積交差方式、因子分解方式等、同軸測距を基本原理とするDepth from focusing方式等）、及び、光の速度を用いる種々のアクティブ計測方式（例えば、同時測距を基本原理とする光時間差（TOF）測定方式、レーザースキャン方式等）を適宜選択して用いることができる。
【００４４】
また、センサ１は、必要に応じて、適宜の計測光（例えば、アクティブ方式で用いられるパターン光やスキャン光等）を含むいわゆる３Ｄ用照明や、通常の照明であるいわゆる２Ｄ用照明をワーク５へ投射するプロジェクタ（図示せず）を有していてもよい。かかるプロジェクタの構成も特に制限されず、例えば、パターン光を投射するものの場合、レーザ光源、パターンマスク、及びレンズを備える構成を例示することができる。レーザ光源から出射された光は、所定のパターンが形成されたパターンマスクによって所定のパターンを有する計測光（パターン光）に変換され、レンズを介してワーク５へ投射される。
【００４５】
より具体的には、制御装置４は、以下の（１）乃至（７）に示す各処理を行う。
【００４６】
（１）位置姿勢算出処理
センサ１によって得られたワーク５の３次元位置を表す３次元点群データ及びそれに対応する２次元画像に基づき、所定の算出パラメータを用い、ワーク５の位置姿勢（３次元座標及び３次元軸まわりの回転角度）、及び、位置姿勢が検出されたワーク５の数（ワーク数）を算出する。
【００４７】
（２）把持姿勢算出処理
ワーク５の位置姿勢の算出結果に基づき、所定の算出パラメータを用い、ハンド２がワーク５を把持する際のハンド２の把持姿勢を算出する。
【００４８】
（３）把持姿勢算出処理
ハンド２の初期姿勢（初期位置）と、ワーク５を把持する際のハンド２の把持姿勢の算出結果に基づき、所定の算出パラメータを用い、ハンド２を初期姿勢から把持姿勢まで移動する経路を算出する。
【００４９】
（４）領域抽出処理
センサ１によって得られたワーク５の３次元位置を表す３次元点群データにおいて、ワーク５の３次元位置の計測値が本来得られるはずの領域であるにも拘わらず、ワーク５の３次元位置の計測値が得られず、計測値に欠けや抜けが生じてしまった領域（欠損領域）を抽出する。
【００５０】
（５）状況判定処理
位置姿勢が検出されたワーク５の数（ワーク数）、及び、ワーク５の３次元位置の計測結果（例えば、３次元点群データから抽出された欠損領域）に基づいてワーク５の状況を判定する。ここで、ワーク数に関しては、例えば、それまでのピッキングの履歴等から推定され得る残存ワーク数に比して、センサ１によって検出されたワーク数が有意に少ない、又は、ワーク５が検出されない（ワーク数＝０）といった状況の場合、後記（６）に示すパラメータ変更処理により、未だ残存しているワーク５の状態をより確実に把握し得る。また、計測結果として抽出された欠損領域に関しては、センサ１の計測範囲（視野）全体に対して欠損領域が占める比率が有意に大きいといった状況の場合、後記（６）に示すパラメータ変更処理により、未だ残存しているワーク５の状態を更に確実に把握し得る。
【００５１】
そこで、本実施形態では、位置姿勢が検出されたワーク数、及び、３次元点群データから抽出された欠損領域の特徴量が、それぞれ所定の条件を満たすか否かをワーク５の状況として判定する。より具体的には、例えば、位置姿勢が検出されたワーク数が所定値以下であるか否か、及び、３次元点群データから抽出された欠損領域の特徴量である「面積」若しくは「体積」が所定値以上であるか否か、又は、欠損領域の特徴量である「位置」がワーク５の載置領域内（収納容器６の内部）の所定の範囲に存在するか否かを、ワーク５の状況として判定する。
【００５２】
（６）パラメータ変更処理
ワーク５の状況の判定結果が所定の条件（上記（５）において例示した判定条件）を満たす場合に、ワーク５の３次元位置を計測する際の計測パラメータを変更（計算）する。なお、本実施形態は、計測パラメータを変更する態様の一例であるが、後述する第１構成例乃至第３構成例においては、それぞれ、ワーク５の位置姿勢を算出する際の算出パラメータ、ハンド２によるワーク５の把持姿勢を算出する際の算出パラメータ、及び、ハンド２の初期姿勢から把持姿勢までの経路を算出する際の算出パラメータを変更（計算、又は、予め用意されたテーブルから選択）する態様について例示する。
【００５３】
（７）各種制御処理
ワーク５の３次元位置を計測する際の計測パラメータに基づいて、センサ１の動作を制御し、算出された把持姿勢に基づいて、ハンド２の動作を制御し、算出された経路に基づいて、ロボット３の動作を制御する。
【００５４】
このとおり、制御装置４は、本発明における「位置姿勢算出部」、「把持姿勢算出部」、「経路算出部」、「センサ制御部」、「ハンド制御部」、「ロボット制御部」「状況判定部、及び、「パラメータ変更部」のそれぞれの一例に相当する。
【００５５】
以上のことから、本実施形態のワークピッキング装置１００によれば、従来の装置において課題であったワークの把持困難性を改善し、ワークを把持する際の成功率を向上させることが可能となる。すなわち、従来の装置では、単一の計測パラメータを設定してワークの３次元位置を計測することに起因して、ワークのピッキング回数が増えるにつれて、その計測値に欠けや抜けが生じる割合が多くなり、その結果、良好なピッキングが困難になってしまう傾向にあった。これに対し、本実施形態のワークピッキング装置１００によれば、ワークの実際の状況に応じて、計測パラメータを適宜変更した上で、センサ１によるワーク５の３次元位置を再計測するので、ワークのピッキング回数が増えた場合であっても、ワークを確実に検出して的確なピッキング操作を実現することができる。
【００５６】
§２  構成例
［ハードウェア構成］
次に、図２を用いて、本実施形態に係るワークピッキング装置１００のハードウェア構成の一例について説明する。図２は、本実施形態に係るワークピッキング装置１００のハードウェアの構成の一例を模式的に示す平面図である。
【００５７】
図２の例でも、ワークピッキング装置１００は、図１に例示したセンサ１、ハンド２、ロボット３、及び制御装置４を備える。ここで、制御装置４は、制御演算部４１、通信インタフェース（Ｉ／Ｆ）部４２、記憶部４３、入力部４４、及び出力部４５を含み、各部はバスライン４６を介して相互に通信可能に接続され得る。
【００５８】
制御演算部４１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、情報処理に応じて各構成要素の制御及び各種演算を行う。
【００５９】
通信Ｉ／Ｆ部４２は、例えば、有線又は無線により他の構成要素である「部」及び「装置」と通信するための通信モジュールである。通信Ｉ／Ｆ部４２が通信に用いる通信方式は任意であり、例えば、ＬＡＮ（Local Area Network）やＵＳＢ（Universal Serial Bus）等が挙げられ、バスライン４６と同等の適宜の通信線を適用することもできる。センサ１、ハンド２、及びロボット３ともに、通信Ｉ／Ｆ部４２を介して、制御演算部４１等と通信可能に設けることが可能である。
【００６０】
記憶部４３は、例えばハード・ディスク・ドライブ（ＨＤＤ）、ソリッド・ステート・ドライブ（ＳＳＤ）等の補助記憶装置であり、制御演算部４１で実行される各種プログラム（前記（１）乃至（６）に示す各種処理を実行するための演算プログラム、並びに、前記（７）に示すセンサ１、ハンド２、及びロボット３のそれぞれの動作の制御処理を行うための制御プログラム等）、センサ１から出力される３次元点群データや２次元画像、計測パラメータや種々の算出パラメータを含むデータベース、各種演算結果のデータ、ワーク５のピッキング状況やピッキング記録に関するデータ等、さらに、ワーク５の３次元ＣＡＤモデルデータ等を記憶する。このとおり、記憶部４３に記憶された演算プログラム及び制御プログラムが制御演算部４１で実行されることにより、後述する機能構成例における各種処理機能が実現される。
【００６１】
入力部４４は、ワークピッキング装置１００を利用するユーザからの各種入力操作を受け付けるためのインタフェースデバイスであり、例えば、マウス、キーボード、タッチパネル、音声マイク等で実現し得る。出力部４５は、ワークピッキング装置１００を利用するユーザ等へ、各種情報を表示、音声、印刷等により報知するためのインタフェースデバイスであり、例えば、ディスプレイ、スピーカ、プリンタ等で実現し得る。
【００６２】
［機能構成］
次に、図３を用いて、本実施形態に係るワークピッキング装置１００の機能構成の一例を説明する。図３は、本実施形態に係るワークピッキング装置１００の機能構成の一例を模式的に示す平面図である。
【００６３】
図２に示すワークピッキング装置１００の制御演算部４１は、記憶部４３に記憶された各種プログラム（制御プログラム及び演算プログラム等）をＲＡＭに展開する。そして、制御演算部４１は、ＲＡＭに展開された各種プログラムをＣＰＵにより解釈及び実行して、各構成要素を制御する。これにより、図３に例示の如く、本実施形態に係るワークピッキング装置１００は、前記（１）乃至（６）に示す各処理をそれぞれ実行する位置姿勢算出部４１０、把持姿勢算出部４２０、経路算出部４３０、領域抽出部４４０、状況判定部４５０、及び、パラメータ変更部４６０、並びに、前記（７）に示す制御処理を実行するセンサ制御部４７０、ハンド制御部４８０、及びロボット制御部４９０を有する制御装置４を備える構成を実現し得る。
【００６４】
なお、本実施形態では、ワークピッキング装置１００に備わる制御装置４で実現される各機能が汎用のＣＰＵによって実現される例について説明したが、以上の機能の一部又は全部が、１又は複数の専用のプロセッサによって実現されてもよい。また、ワークピッキング装置１００に備わる制御装置４の機能構成は、実施形態や構成例に応じて、適宜、機能の省略、置換、及び追加が行われてももちろんよい。また、「制御装置」とは、一般的な情報処理装置（例えば、コンピュータ、ワークステーション等）と解することができる。
【００６５】
§３  動作例
次いで、図４を用いて、ワークピッキング装置１００の動作の一例について説明する。図４は、本実施形態に係るワークピッキング装置１００における処理手順の一例を示すフローチャートであり、ワークピッキング装置１００を用いたワークピッキング方法における処理手順の一例を示すフローチャートでもある。なお、以下で説明する処理手順は一例に過ぎず、各処理は、本開示の技術思想の範囲内において可能な限り変更されてよい。また、以下で説明する処理手順は、実施形態や各構成例に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００６６】
（起動）
まず、ワークピッキング装置１００のユーザは、ワークピッキング装置１００を起動し、各種プログラム（演算プログラム、制御プログラム等）を実行させる。それから、制御装置４における制御部演算４１は、以下の処理手順に従って、センサ１、ハンド２、及びロボット３のそれぞれの動作を制御し、且つ、制御装置４における各機能部による演算処理を行う。また、本実施形態では、以下の各ステップにおける処理に先立って、個々のステップで必要となる計測パラメータ及び種々の算出パラメータの初期値セットを、記憶部４３から読み出し、センサ制御部４７０、位置姿勢算出部４１０、把持姿勢算出部４２０、及び経路算出部４３０に適宜保持しておく。但し、かかるパラメータの読み出しは、各ステップの処理前であれば適宜のタイミングで行ってももちろんよい。
【００６７】
なお、図４に示す如く、本実施形態では、一連の処理において分岐ステップ（ステップＳ６０〜Ｓ８０）を実行するが、理解を容易にするべく、ステップＳ１０〜Ｓ５０までの処理の流れについて先に説明した後、ステップＳ６０〜Ｓ８０の処理について説明する。
【００６８】
（ステップＳ１０）
ステップＳ１０では、センサ制御部４７０により、センサ１を作動させ、計測パラメータの初期値セットを用いて、ワーク５の３次元位置を計測する。計測パラメータとしては、例えば、露光時間、照明照度、及び計測位置（例えば、ワーク５に対するセンサ１の相対的な３次元位置や姿勢（光軸の向き））の他、適用される計測方式において設定される各種パラメータが挙げられる。そして、センサ１は、撮像されたワーク５の画像について、所定の画像処理を行い、計測結果として、例えば、ワーク５の３次元位置を表す３次元点群データ（ポイントクラウドデータ）及びそれに対応する２次元画像を制御装置４へ出力する。
【００６９】
（ステップＳ２０）
ステップＳ２０では、位置姿勢算出部４１０により、ワーク５の位置姿勢の算出パラメータの初期値セットを用いて、ワーク５の位置姿勢を算出し、さらに、位置姿勢が検出されたワーク５の数（ワーク数Ｋ）を算出する。ワーク５の位置姿勢の算出パラメータとしては、例えば、位置姿勢算出におけるワーク５の検出に関する閾値等が挙げられ、より具体的には、ワーク５の計測結果とワーク５の３次元ＣＡＤモデルとを照合する際の３次元マッチングの閾値、セグメンテーション処理におけるセグメンテーションの面積等を例示することができる。そして、位置姿勢算出部４１０は、算出結果として、例えば、個々のワーク５について、３次元座標（ｘ，ｙ，ｚ）及び３次元軸まわりの回転角度（ｒｘ，ｒｙ，ｒｚ）を出力し、さらに、ワーク数Ｋを出力する。
【００７０】
（ステップＳ３０）
ステップＳ３０では、把持姿勢算出部４２０により、ハンド２がワーク５を把持する際のハンド２の把持姿勢の算出パラメータの初期値セットを用いて、且つ、ステップＳ２０で算出されたワーク５の位置姿勢に基づいて、そのワーク５によるハンド２の把持姿勢を算出する。ハンド２によるワーク５の把持姿勢の算出パラメータとしては、例えば、把持姿勢算出における閾値等が挙げられる。
【００７１】
（ステップＳ４０）
ステップＳ４０では、経路算出部４３０により、ハンド２の初期姿勢から把持姿勢へ移動する経路の算出パラメータの初期値セットを用いて、ハンド２を、その初期姿勢から、ステップＳ３０で算出された把持姿勢まで移動する経路を算出する。ハンド２の初期姿勢から把持姿勢へ移動する経路の算出パラメータとしては、例えば、ワーク５や収納容器６に対するハンド２の干渉判定の閾値等が挙げられる。
【００７２】
（ステップＳ５０）
そして、ステップＳ５０では、把持対象のワーク５（例えば、把持できる確率が高いワーク５から順に選定する）を決定し、ロボット制御部４９０により、ステップＳ４０で算出されたその対象のワーク５への経路に基づいて、ロボット３を作動させ、ハンド２を、そのワーク５についてステップＳ３０で算出された把持姿勢まで移動する。それから、ハンド制御部４８０により、その把持姿勢に基づいて、ハンド２を作動させ、対象のワーク５を把持する。さらに、ロボット制御部４９０及びハンド制御部４８０により、把持したワーク５を収納容器６から取り出し、適宜のトレー等へ移設し、整列させて配置する。
【００７３】
（ステップＳ６０）
前述のとおり、本実施形態では、ステップＳ２０（ワークの位置姿勢算出）の後、ステップＳ３０を実施する前に、処理をステップＳ６０へと移行し、当該ステップＳ６０において、ワーク５の状況判定を行う。
【００７４】
ここでは、まず、ワーク５の状況判定の前処理として、領域抽出部４４０により、センサ１から出力されたワーク５の３次元位置を表す３次元点群データを用いて、データの欠けや抜けが生じた領域（欠損領域）を抽出する。より具体的には、３次元点群データに欠けや抜けが発生した場合、一般に、計測値が「０」値や計測レンジ外の整数値（これらは異常値といえる。）となっている。よって、３次元点群データについて、このような異常値に着目したラベリング処理（同等の異常値を同一ラベルとする処理）を行い、異常値に対応するラベルの部位を欠損領域として抽出する。このとおり、本実施形態における領域抽出部４４０は、本発明における「欠損領域抽出部」に相当する。
【００７５】
次に、状況判定部４５０により、ワーク５の状況判定として、例えば、以下に示す条件１及び条件２を満たすか否かを判定する。
【００７６】
［条件１］：ワーク数Ｋが所定値以下であるか否か。
［条件２］：欠損領域の面積Ｓ又は体積Ｖが所定値以上であるか否か。
【００７７】
なお、「欠損領域の面積Ｓ」を算出する方法は、特に制限されず、例えば、単一の欠損領域が抽出された場合には、センサ１から出力された３次元点群データ、又は、それに対応する２次元画像において、その欠損領域の周縁を示す２次元座標を特定し、その２次元座標から算出される面積を「欠損領域の面積Ｓ」とすることができる。また、例えば、複数の欠損領域が抽出された場合には、センサ１から出力された３次元点群データ、又は、それに対応する２次元画像において、各欠損領域の周縁を示す２次元座標を特定し、その２次元座標から各欠損領域の面積を算出し、得られた全ての欠損領域の面積を合算した値を「欠損領域の面積Ｓ」とすることができる。
【００７８】
一方、「欠損領域の体積Ｖ」を算出する方法も、特に制限されず、例えば、単一の欠損領域が抽出された場合には、センサ１から出力された３次元点群データにおいて、その欠損領域の周縁を示す３次元座標を特定し、その３次元座標から算出される体積を「欠損領域の体積Ｖ」とすることができる。また、例えば、複数の欠損領域が抽出された場合には、センサ１から出力された３次元点群データにおいて、各欠損領域の周縁を示す３次元座標を特定し、その３次元座標から各欠損領域の体積を算出し、得られた全ての欠損領域の体積を合算した値を「欠損領域の面積Ｖ」とすることができる。
【００７９】
ここで、条件１に関し、ワーク数の所定値としては、ワーク５のピッキングがある程度進んで残存するワーク５の数が少なくなった状態を考慮し、例えば、０個〜数個を設定することができる。一定数のワーク５が残存していると想定されるにも拘わらず、検出されたワーク数Ｋが０個又は数個と極めて少ない場合には、計測異常が生じている可能性が高いものと推察される。
【００８０】
また、条件２に関し、欠損領域の面積Ｓ及び体積Ｖの所定値としては、ユーザにより予め入力された収納容器６の底面の面積及び収納容器６の体積に対して所定の割合を乗じた値を設定することができる。ワーク５の収納容器６の底面の面積及び収納容器６の体積に比して、欠損領域の面積Ｓ又は体積Ｖがある程度大きな割合を占める場合には、計測異常が生じている可能性が高いものと推察される。
【００８１】
従って、以上の条件１又は条件２を満たす場合には、計測パラメータを変更して再試行することにより、実際に残存しているワーク５を確実に検出し、その結果、ワーク５に対する把持の可能性（把持の成功率）を高めることができる。また、条件１及び条件２の双方を満たす場合に、計測パラメータを変更して再試行するようにすれば、ワーク５に対する把持の成功率を更に一層高めることができる。
【００８２】
そこで、本実施形態では、状況判定部４５０は、条件１を満たし、且つ、条件２を満たす場合（条件１及び条件２の何れも「真（Ｔｒｕｅ）」の場合）に、判定結果として「Ｙｅｓ（パラメータ変更要）」を出力し、また、欠損領域の位置情報を出力する。一方、状況判定部４５０は、条件１を満たさない、又は、条件２を満たさない場合（条件１又は条件２の何れかが「偽（Ｆａｌｓｅ）」の場合）に、判定結果として「Ｎｏ（パラメータ変更不要）」を出力する。
【００８３】
（ステップＳ７０）
ステップＳ６０でワークの状況判定結果が条件１を満たし、且つ、条件２を満たした場合（ステップＳ６０において「Ｙｅｓ」）、ステップＳ７０に移行し、パラメータ変更部４６０により、これまでのパラメータの変更回数Ｎ（計測パラメータの変更回数、及び、後述する第１構成例乃至第３構成例における算出パラメータの変更回数の合計値）が所定値未満であるか否かを判定する。パラメータの変更回数の所定値としては、パラメータをある程度の回数変更することにより、残存するワーク５に対する把持の成功率は、その時点で既に相当程度高まっていることが予想されるため、例えば、５回〜１０回程度の有限値を設定することができる。
【００８４】
（ステップＳ８０）
ステップＳ７０でパラメータの変更回数の判定結果が条件を満たした場合（ステップＳ７０において「Ｙｅｓ」）、ステップＳ８０に移行し、パラメータを変更する。本実施形態では、計測パラメータ及び種々の算出パラメータのうち、センサ１によるワーク５の計測における計測パラメータを変更する。
【００８５】
ここでは、まず、計測パラメータ変更の前処理として、パラメータ変更部４６０により、状況判定部４５０から出力された欠損領域の位置情報と、センサ１から出力された２次元画像に基づいて、撮像された画像における欠損領域に対応する部位に、「ハレーション」及び「黒潰れ」の何れが発生しているかを判定する。なお、「ハレーション」とは、画像において明る過ぎる部分の階調が失われて白一色になった状態を示し、「白飛び」又は「光暈（こううん)）と呼ばれることもある。また、「黒潰れ」とは、画像において明るい部分の階調の情報が得られずに黒一色に塗りつぶされた状態を示す。
【００８６】
より具体的には、２次元画像における欠損領域に対応する画素の平均輝度値（通常、０〜２５５の範囲で表される。）が、例えば１２８以上であれば「ハレーション」が生じたと判断し、１２８未満であれば「黒潰れ」が生じたと判断する。そして、パラメータ変更部４６０は、「ハレーション」及び「黒潰れ」に応じて、それらの発生を抑制することができる程度に、計測パラメータ（例えば、露光時間、照明照度、及び計測位置の他、適用される計測方式において設定される種々のパラメータ）を変更して新たに設定する。より具体的には、パラメータ変更部４６０は、「ハレーション」の場合には、例えば露出時間を初期値よりも短くし、「黒潰れ」の場合には、例えば露出時間を初期値よりも長くするように、計測パラメータを変更することができる（但し、これに限定されない。）。
【００８７】
そして、ステップＳ８０で計測パラメータを変更した後、処理をステップＳ１０へ戻入し、センサ１により、変更後の計測パラメータを用いたワーク５の３次元位置の再計測を行い、それ以降の処理ステップを順次実行する。また、パラメータ変更部４６０は、パラメータを変更した都度、パラメータの変更回数Ｎを増分する。
【００８８】
一方、ステップＳ６０でワークの状況判定結果が条件１を満たさず、若しくは、条件２を満たさなかった場合（ステップＳ６０において「Ｎｏ」）、又は、ステップＳ７０でパラメータの変更回数の判定結果が条件を満たさなかった場合（ステップＳ７０において「Ｎｏ」）には、パラメータの変更を行うことなく、処理をステップＳ３０以降の処理へ移行して終了する。また、パラメータ変更部４６０は、ステップＳ６０でワークの状況判定結果が条件１を満たさず、又は、条件２を満たさなかった場合（ステップＳ６０において「Ｎｏ」）に、パラメータの変更回数Ｎをリセットする（Ｎ＝「０」にする。）。
【００８９】
§４  作用・効果
以上のとおり、本実施形態に係るワークピッキング装置１００及びワークピッキング方法の一例によれば、センサ１により、計測パラメータの初期値セットを用いて、例えば収納容器６内にばら積みされたワーク５の個々の３次元位置を一旦計測し、その計測結果に基づいてワーク５の位置姿勢と検出されたワーク数Ｋを算出し、さらに、それらの結果に基づいて、状況判定部４５０により、ワーク５の状況判定を行う。そして、ワーク５の状況判定結果が、例えば、条件１を満たし、且つ、条件２を満たす場合に、計測パラメータを再設定し、それを用いて、センサ１によるワーク５の３次元位置の再計測を行った上で、ワーク５のピッキング処理を順次実行する。よって、ワーク５の３次元位置の当初の計測値に欠けや抜け（欠損領域）が生じていたとしても、その状況に応じた適切なワークのピッキング操作を行うことができ、その結果、ハンド２によってワーク５を把持する際の成功率を、従来に比して格段に向上（不成功率を格段に低減）させることができる。
【００９０】
また、所定の複数の計測パラメータによる複数の計測を実施した後に、多くの計測結果のなかから良好な計測結果を選定し、その結果に基づいてワークのピッキングを実施するといった処理を行うことなく、ワーク５の実際の状況を把握した上で、必要に応じて計測パラメータの変更の要否を判断するので、処理時間の過度の増大を抑止することができる。
【００９１】
§５  変形例
以上、本開示の一例としての実施形態について詳細に説明してきたが、前述した説明はあらゆる点において本開示の一例を示すに過ぎず、本開示の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもなく、例えば、以下に示すような変更が可能である。なお、以下の説明においては、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、説明を適宜省略した。また、上記実施形態及び以下の各変形例は、適宜組み合わせて構成することが可能である。
【００９２】
＜５．１＞
図５は、他の実施形態としての第１構成例に係るワークピッキング装置における処理手順の一例を示すフローチャートである。当該第１構成例は、図４に示すフローチャートに示すステップＳ８０でのパラメータ変更処理に代えて、ステップＳ８１によるパラメータ変更処理を行うこと、及び、そのパラメータ変更処理を行った後、処理をステップＳ２０へ戻入し、位置姿勢算出部４１０により、変更後の算出パラメータを用いたワーク５の位置姿勢の算出を行うこと以外は、図４に示す実施形態におけるのと同等の処理を行う。
【００９３】
すなわち、当該第１構成例では、ステップＳ８１において、パラメータ変更部４６０は、計測パラメータ及び種々の算出パラメータのうち、ワーク５の位置姿勢の算出パラメータとして、位置姿勢算出におけるワーク５の検出に関する閾値、より具体的には、ワーク５の計測結果とワーク５の３次元ＣＡＤモデルとを照合する際の３次元マッチングの閾値、又は、セグメンテーション処理におけるセグメンテーションの面積を、所定の割合分変更する。
【００９４】
また、この場合、その「所定の割合」をパラメータの変更回数Ｎに応じて変化させてもよい。例えば、３次元マッチングのスコアが０〜１００の範囲の数値で表され、当初の閾値が８０であった場合、新たな閾値＝８０−（Ｎ×１０）で表されるように変更してもよい（例えば、Ｎ＝１の場合には新たな閾値＝７０となり、Ｎ＝４の場合には新たな閾値＝４０となる。）。なお、新たな閾値は、上記式で計算する方式ではなく、パラメータの変更回数Ｎに応じた閾値のテーブルを予め記憶部４３に保持しておき、パラメータの変更が必要になったときに、適宜読み出すようにしても構わない。
【００９５】
そして、ステップＳ８１で算出パラメータを変更した後、処理をステップＳ２０へ戻入し、位置姿勢算出部４１０により、変更後の算出パラメータを用いたワーク５の位置姿勢の再算出を行い、それ以降の処理ステップを順次実行する。
【００９６】
当該第１構成例でも、ワーク５の状況判定結果が、例えば条件１を満たし、且つ、条件２を満たす場合に、計測パラメータ及び種々の算出パラメータのうち、位置姿勢の算出パラメータを再設定し、それを用いて、ワーク５の位置姿勢の再算出を行った上で、ワーク５のピッキング処理を順次実行する。よって、ワーク５の３次元位置の当初の計測値に欠けや抜け（欠損領域）が生じていたとしても、その状況に応じた適切なワークのピッキング操作を行うことができ、その結果、ハンド２によってワーク５を把持する際の成功率を、従来に比して格段に向上（不成功率を低減）させることができるとともに、処理時間の増大を抑制することができる。
【００９７】
＜５．２＞
図６は、他の実施形態としての第２構成例に係るワークピッキング装置における処理手順の一例を示すフローチャートである。当該第２構成例は、図４に示すフローチャートに示すステップＳ８０でのパラメータ変更処理に代えて、ステップＳ８２によるパラメータ変更処理を行うこと、及び、そのパラメータ変更処理を行った後、処理をステップＳ３０へ戻入し、把持姿勢算出部４２０により、変更後の算出パラメータを用いたハンド２によるワーク５の把持姿勢の算出を行うこと以外は、図４に示す実施形態におけるのと同等の処理を行う。
【００９８】
すなわち、当該第２構成例では、ステップＳ８２において、パラメータ変更部４６０は、計測パラメータ及び種々の算出パラメータのうち、ハンド２によるワーク５の把持置姿勢の算出パラメータとして、把持姿勢算出における閾値を、所定の割合分変更する。また、この場合、第１構成例と同様に、その「所定の割合」をパラメータの変更回数Ｎに応じて変化させてもよい。また、第１構成例と同様に、新たな閾値は、計算する方式ではなく、パラメータの変更回数Ｎに応じた閾値のテーブルを予め記憶部４３に保持しておき、パラメータの変更が必要になったときに、適宜読み出すようにしても構わない。
【００９９】
そして、ステップＳ８２で算出パラメータを変更した後、処理をステップＳ３０へ戻入し、把持姿勢算出部４２０により、変更後の算出パラメータを用いたハンド２によるワーク５の把持姿勢の再算出を行い、それ以降の処理ステップを順次実行する。
【０１００】
当該第２構成例でも、ワーク５の状況判定結果が、例えば条件１を満たし、且つ、条件２を満たす場合に、計測パラメータ及び種々の算出パラメータのうち、把持姿勢の算出パラメータを再設定し、それを用いて、ハンド２によるワーク５の把持姿勢の再算出を行った上で、ワーク５のピッキング処理を順次実行する。よって、ワーク５の３次元位置の当初の計測値に欠けや抜け（欠損領域）が生じていたとしても、その状況に応じた適切なワークのピッキング操作を行うことができ、その結果、ハンド２によってワーク５を把持する際の成功率を、従来に比して格段に向上（不成功率を格段に低減）させることができるとともに、処理時間の増大を抑制することができる。
【０１０１】
＜５．３＞
図７は、他の実施形態としての第３構成例に係るワークピッキング装置における処理手順の一例を示すフローチャートである。当該第３構成例は、図４に示すフローチャートに示すステップＳ８０でのパラメータ変更処理に代えて、ステップＳ８３によるパラメータ変更処理を行うこと、及び、そのパラメータ変更処理を行った後、処理をステップＳ４０へ戻入し、経路算出部４３０により、変更後の算出パラメータを用いたハンド２の初期姿勢から把持姿勢へ移動する経路の算出を行うこと以外は、図４に示す実施形態におけるのと同等の処理を行う。
【０１０２】
すなわち、当該第３構成例では、ステップＳ８３において、パラメータ変更部４６０は、計測パラメータ及び種々の算出パラメータのうち、ハンド２の初期姿勢から把持姿勢へ移動する経路の算出パラメータとして、ワーク５や収納容器６に対するハンド２の干渉判定の閾値を、所定の割合分変更する。また、この場合、第１構成例と同様に、その「所定の割合」をパラメータの変更回数Ｎに応じて変化させてもよい。また、第１構成例と同様に、新たな閾値は、計算する方式ではなく、パラメータの変更回数Ｎに応じた閾値のテーブルを予め記憶部４３に保持しておき、パラメータの変更が必要になったときに、適宜読み出すようにしても構わない。
【０１０３】
そして、ステップＳ８３で算出パラメータを変更した後、処理をステップＳ４０へ戻入し、経路算出部４３０により、変更後の算出パラメータを用いたハンド２の初期姿勢から把持姿勢へ移動する経路の再算出を行い、それ以降の処理ステップを順次実行する。
【０１０４】
当該第３構成例でも、ワーク５の状況判定結果が、例えば条件１を満たし、且つ、条件２を満たす場合に、計測パラメータ及び種々の算出パラメータのうち、ハンド２の初期姿勢から把持姿勢へ移動する経路の算出パラメータを再設定し、それを用いて、ハンド２の初期姿勢から把持姿勢へ移動する経路の再算出を行った上で、ワーク５のピッキング処理を順次実行する。よって、ワーク５の３次元位置の当初の計測値に欠けや抜け（欠損領域）が生じていたとしても、その状況に応じた適切なワークのピッキング操作を行うことができ、その結果、ハンド２によってワーク５を把持する際の成功率を、従来に比して格段に向上（不成功率を格段に低減）させることができるとともに、処理時間の増大を抑制することができる。
【０１０５】
＜５．４＞
また、上記実施形態及び第１構成例乃至第３構成例における処理においては、一例として、ワーク５の状況判定として、条件１及び条件２を満たすか否かに基づく判定手法について説明したが、例えば、条件１＋条件２（欠損領域の面積Ｓ又は体積Ｖが所定値以上であるか否か）に代えて、条件１＋以下の条件３を判定条件として適用してもよい。
【０１０６】
［条件３］：欠損領域の位置がワーク５の収納容器６内の所定の範囲に存在するか否か。
ここで、条件３に関し、所定の範囲としては、ユーザにより予め入力された収納容器６の形状データに基づいて、例えば、収納容器６の壁際近傍や、矩形容器であれば角隅近傍の領域を指定することができる。一般に、ワーク５が、収納容器６の壁際近傍や角隅近傍に存在する場合には、３次元位置の計測値に欠けや抜けが生じ易かったり、把持が比較的困難であったりといった傾向にあるので、欠損領域がかかる所定の範囲にある場合にも、パラメータの変更が有効であるといえる。
【０１０７】
すなわち、ここでは、状況判定部４５０は、条件１を満たし、且つ、条件３を満たす場合（条件１及び条件３の何れも「真（Ｔｒｕｅ）」の場合）に、判定結果として「Ｙｅｓ（パラメータ変更要）」を出力し、また、欠損領域の位置情報を出力する。一方、状況判定部４５０は、条件１を満たさない、又は、条件３を満たさない場合（条件１又は条件３の何れかが「偽（Ｆａｌｓｅ）」の場合）に、判定結果として「Ｎｏ（パラメータ変更不要）」を出力する。
【０１０８】
＜５．５＞
また、上記実施形態及び第１構成例乃至第３構成例における処理においては、一例として、領域抽出部４４０によって３次元点群データから欠損領域を抽出し、その欠損領域の特徴量（面積Ｓ又は体積Ｖ）に基づく判定条件である条件２を適用した判定手法について説明したが、例えば、欠損領域に代えて、領域抽出部４４０によって３次元点群データから平面領域を抽出し、その平面領域の特徴量に基づく判定条件を適用してもよい。すなわち、ここでは、状況判定処理として、位置姿勢が検出されたワーク５の数（ワーク数）、及び、ワーク５の３次元位置の計測結果として３次元点群データから抽出された平面領域に基づいてワーク５の状況を判定する。なお、「平面領域」とは、ワーク５の３次元位置の計測値（例えば、ワーク５の３次元位置を表す３次元点群データ）において「平面」と認められる領域であり、より具体的には、例えば、ワーク５の収納容器６の底面やワーク５が積まれた支持台の面等に相当する領域である。
【０１０９】
この場合、ステップＳ６０において、まず、ワーク５の状況判定の前処理として、領域抽出部４４０により、センサ１から出力されたワーク５の３次元位置を表す３次元点群データを用いて、平面領域を抽出する。このとおり、本実施形態における領域抽出部４４０は、本発明における「平面領域抽出部」に相当する。
【０１１０】
次に、状況判定部４５０により、ワーク５の状況判定として、例えば、以下に示す条件１及び条件４又は条件５を満たすか否かを判定する。
【０１１１】
［条件１］：ワーク数Ｋが所定値以下であるか否か。
［条件４］：平面領域の距離Ｄ又は面積Ｓが所定値以下であるか否か。
［条件５］：平面領域の位置がワーク５の載置面（ここでは収納容器６の底面）に対して所定の範囲に存在するか否か。
【０１１２】
なお、「平面領域の距離Ｄ」を算出する方法は、特に制限されず、例えば、単一の平面領域が抽出された場合には、センサ１から出力された３次元点群データ、又は、それに対応する２次元画像において、その平面領域を含む面を特定し、任意の距離基準点とその特定された面との距離、すなわち、距離基準点からの特定された面への垂線の長さを「平面領域の距離Ｄ」とすることができる。また、例えば、複数の平面領域が抽出された場合には、センサ１から出力された３次元点群データ、又は、それに対応する２次元画像において、各平面領域を含む面を特定し、任意の距離基準点とその特定された各面との距離、すなわち、距離基準点からの特定された各面への垂線の長さをそれぞれ「平面領域の距離Ｄ」とすることができる。
【０１１３】
一方、「平面領域の面積Ｓ」を算出する方法も、特に制限されず、例えば、単一の平面領域が抽出された場合には、センサ１から出力された３次元点群データ、又は、それに対応する２次元画像において、その平面領域の周縁を示す２次元座標を特定し、その２次元座標から算出される面積を「平面領域の面積Ｓ」とすることができる。また、例えば、複数の平面領域が抽出された場合には、センサ１から出力された３次元点群データ、又は、それに対応する２次元画像において、各平面領域の周縁を示す２次元座標を特定し、その２次元座標から各平面領域の面積を算出し、得られた全ての平面領域の面積を合算した値を「平面領域の面積Ｓ」とすることができる。
【０１１４】
ここで、条件４に関し、平面領域の距離Ｄの所定値としては、例えば任意の距離基準点からユーザにより予め入力された収納容器６の底面までの距離（距離基準点からの底面への垂線の長さ）に対して所定の割合を乗じた値を設定することができる。また、平面領域の面積Ｓの所定値としては、ユーザにより予め入力された収納容器６の底面の面積に対して所定の割合を乗じた値を設定することができる。平面領域の距離Ｄが所定値より大きい場合、又は、平面領域の面積Ｓが所定値より大きい場合には、抽出された平面領域は収納容器の６の底面である可能性が高いが、そうではなく、平面領域の距離Ｄが所定値以下である場合、又は、平面領域の面積Ｓが所定値以下の場合には、その平面領域が収納容器６の底面である可能性は低いことから、その場合には、ワーク５が収納容器６内に残存している可能性は高いと推察される。
【０１１５】
また、条件５に関し、所定の範囲としては、ユーザにより予め入力された収納容器６の形状データに基づいて、例えば、収納容器６の中央以外の壁際近傍や、矩形容器であれば角隅近傍の領域を指定することができる。一般に、収納容器６の中央領域に平面領域が存在する場合、抽出された平面領域は収納容器６の底面に相当する可能性が高いが、そうではなく、平面領域が中央以外の位置の場合には、その平面領域が収納容器６の底面である可能性は低いことから、その場合には、ワーク５が収納容器６内に残存している可能性は高いと推察される。
【０１１６】
従って、この場合の判定条件としては、例えば、状況判定部４５０は、条件１を満たし、且つ、条件４又は条件５の何れかを満たす場合（条件１が「真（Ｔｒｕｅ）であり」且つ条件４又は条件５の何れかが「真（Ｔｒｕｅ）」である場合）に、判定結果として「Ｙｅｓ（パラメータ変更要）」を出力し、また、平面領域の位置情報を出力する。なお、複数の平面領域が抽出された場合、例えば、複数の「平面領域の距離Ｄ」の何れかが条件４を満たす（複数の平面領域の何れかが収納容器６の底面に相当しない）ときに、条件４を「真（Ｔｒｕｅ）」とすることができる。
【０１１７】
一方、状況判定部４５０は、条件１を満たさない、又は、条件４及び条件５の何れも満たさない場合（条件１が「偽（Ｆａｌｓｅ）」又は条件４及び条件５の何れも「偽（Ｆａｌｓｅ）」の場合）に、判定結果として「Ｎｏ（パラメータ変更不要）」を出力する。なお、複数の平面領域が抽出された場合、例えば、複数の「平面領域の距離Ｄ」の何れも条件４を満たさない（複数の平面領域の何れも収納容器６の底面に相当する）ときに、条件４を「偽（Ｆａｌｓｅ）」とすることができる。
【０１１８】
さらに、ステップＳ６０でパラメータが要変更となり（ステップＳ６０において「Ｙｅｓ」）、ステップＳ７０でパラメータの変更回数の判定結果が条件を満たした場合（ステップＳ７０において「Ｙｅｓ」）、ステップＳ８０では、パラメータ変更の前処理として、以下の処理を行う。すなわち、パラメータ変更部４６０により、状況判定部４５０から出力された平面領域以外の領域の位置情報と、センサ１から出力された２次元画像に基づいて、撮像された画像における平面領域以外の領域の部位の平均輝度値を求める。さらに、その結果に基づいて、図４に示す実施形態と同様にして、計測パラメータである露光時間を変更する。
【０１１９】
§６  付記
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【０１２０】
（付記１）
積まれたワーク（５）を取り出すためのワークピッキング装置（１００）であって、
前記ワーク（５）の３次元位置を計測するセンサ（１）と、
前記ワーク（５）を把持するハンド（２）と、
前記ハンド（２）を把持位置に移動し且つ該把持位置から移動するロボット（３）と、
前記センサ（１）、前記ハンド（２）、及び前記ロボット（３）を制御する制御装置（４）と、
を備え、
前記制御装置（４）は、
前記３次元位置の計測結果に基づいて、所定の算出パラメータを用いて前記ワーク（５）の位置姿勢を算出し、且つ、位置姿勢を検出したワーク数を算出する位置姿勢算出部（４１０）と、
前記位置姿勢の算出結果に基づいて、所定の算出パラメータを用いて前記ハンド（２）が前記ワーク（５）を把持する際の前記ハンド（２）の把持姿勢を算出する把持姿勢算出部（４２０）と、
所定の算出パラメータを用いて前記ハンド（２）を前記把持姿勢に移動する経路を算出する経路算出部（４３０）と、
前記３次元位置を計測する際の計測パラメータに基づいて、前記センサ（１）の動作を制御するセンサ制御部（４７０）と、
前記把持姿勢に基づいて、前記ハンド（２）の動作を制御するハンド制御部（４８０）と、
前記経路に基づいて、前記ロボット（３）の動作を制御するロボット制御部（４９０）と、
前記３次元位置の計測結果及び前記ワーク数の算出結果に基づいて、前記ワーク（５）の状況を判定する状況判定部（４６０）と、
前記ワーク（５）の状況の判定結果が所定の条件を満たす場合に、前記３次元位置を計測する際の計測パラメータ、前記位置姿勢の算出パラメータ、前記把持姿勢の算出パラメータ、及び、前記経路の算出パラメータのうち少なくとも何れか１つを含むパラメータを変更するパラメータ変更部（４６０）と、
を有する、
ワークピッキング装置（１００）。
【０１２１】
（付記２）
前記制御装置（４）は、前記３次元位置の計測結果から欠損領域を抽出する欠損領域抽出部（４４０）を備え、
前記状況判定部（４５０）は、前記ワーク数、及び、前記欠損領域の位置、面積、又は体積に基づいて、前記ワーク（５）の状況を判定する、
付記１記載のワークピッキング装置（１００）。
【０１２２】
（付記３）
前記制御装置（４）は、前記３次元位置の計測結果から平面領域を抽出する平面領域抽出部（４４０）を備え、
前記状況判定部（４５０）は、前記ワーク数、及び、前記平面領域の位置、距離又は面積に基づいて、前記ワーク（５）の状況を判定する、
付記１記載のワークピッキング装置（１００）。
【０１２３】
（付記４）
前記パラメータ変更部（４６０）は、前記ワーク数が所定値以下である場合に、前記パラメータを変更する、
付記１乃至３の何れか記載のワークピッキング装置（１００）。
【０１２４】
（付記５）
前記パラメータ変更部（４６０）は、前記欠損領域の面積若しくは体積が所定値以上である場合に、又は、前記欠損領域の位置が前記ワーク（５）の載置領域内の所定の範囲に存在する場合に、前記パラメータを変更する、
付記２又は４記載のワークピッキング装置（１００）。
【０１２５】
（付記６）
前記パラメータ変更部（４６０）は、前記平面領域の距離若しくは面積が所定値以下である場合に、又は、前記平面領域の位置が前記ワーク（５）の載置面に対して所定の範囲に存在する場合に、前記パラメータを変更する、
付記３又は４記載のワークピッキング装置（１００）。
【０１２６】
（付記７）
前記パラメータ変更部（４６０）は、前記パラメータの変更を所定回数以内に制限する、
付記１乃至６の何れか記載のワークピッキング装置（１００）。
【０１２７】
（付記８）
前記パラメータ変更部（４６０）は、前記３次元位置を計測する際の計測パラメータとして、露光時間、照明照度、及び計測位置のうち少なくも何れか１つを変更する、
付記１乃至７の何れか記載のワークピッキング装置（１００）。
【０１２８】
（付記９）
前記パラメータ変更部（４６０）は、前記欠損領域の輝度に基づいて、露光時間、照明照度、及び計測位置のうち少なくも何れか１つを変更する、
付記８記載のワークピッキング装置（１００）。
【０１２９】
（付記１０）
前記パラメータ変更部（４６０）は、前記位置姿勢の算出パラメータとして、位置姿勢算出の閾値を変更する、
付記１乃至７の何れか記載のワークピッキング装置（１００）。
【０１３０】
（付記１１）
前記パラメータ変更部（４６０）は、前記把持姿勢の算出パラメータとして、把持姿勢算出の閾値を変更する、
付記１乃至７の何れか記載のワークピッキング装置（１００）。
【０１３１】
（付記１２）
前記パラメータ変更部（４６０）は、前記経路の算出パラメータとして、干渉判定の閾値を変更する、
付記１乃至７の何れか記載のワークピッキング装置（１００）。
【０１３２】
（付記１３）
前記パラメータ変更部（４６０）は、前記パラメータの変更回数に応じて前記パラメータを変更する、
付記１乃至１２の何れか記載のワークピッキング装置（１００）。
【０１３３】
（付記１４）
センサ（１）、ハンド（２）、ロボット（３）、及び、制御装置（４）を備えるワークピッキング装置（１００）を用い、積まれたワーク（５）を取り出すためのワークピッキング方法であって、
前記センサ（１）が、前記ワーク（５）の３次元位置を計測する計測ステップと、
前記ハンド（２）が、前記ワーク（５）を把持する把持ステップと、
前記ロボット（３）が、前記ハンド（５）を把持位置に移動し且つ該把持位置から移動する移動ステップと、
前記制御装置（４）が、前記センサ（１）、前記ハンド（２）、及び前記ロボット（３）を制御する制御ステップと、
を含み、
前記制御ステップは、
前記３次元位置の計測結果に基づいて、所定の算出パラメータを用いて前記ワーク（５）の位置姿勢を算出し、且つ、位置姿勢を検出したワーク数を算出する位置姿勢算出ステップと、
前記位置姿勢の算出結果に基づいて、所定の算出パラメータを用いて前記ハンド（２）が前記ワーク（５）を把持する際の前記ハンド（２）の把持姿勢を算出する把持姿勢算出ステップと、
所定の算出パラメータを用いて前記ハンド（２）を前記把持姿勢に移動する経路を算出する経路算出ステップと、
前記３次元位置を計測する際の計測パラメータに基づいて、前記センサ（１）の動作を制御するセンサ制御ステップと、
前記把持姿勢に基づいて、前記ハンド（２）の動作を制御するハンド制御ステップと、
前記経路に基づいて、前記ロボット（３）の動作を制御するロボット制御ステップと、
前記３次元位置の計測結果及び前記ワーク数の算出結果に基づいて、前記ワーク（５）の状況を判定する状況判定ステップと、
前記ワーク（５）の状況の判定結果が所定の条件を満たす場合に、前記３次元位置を計測する際の計測パラメータ、前記位置姿勢の算出パラメータ、前記把持姿勢の算出パラメータ、及び、前記経路の算出パラメータのうち少なくとも何れか１つを含むパラメータを変更するパラメータ変更ステップと、
を有する、
ワークピッキング方法。
【符号の説明】
【０１３４】
１…センサ、２…ハンド、３…ロボット、４…制御装置、５…ワーク、６…収納容器、４１…制御演算部、４２…通信インタフェース（Ｉ／Ｆ）部、４３…記憶部、４４…入力部、４５…出力部、４６…バスライン、１００…ワークピッキング装置、４１０…位置姿勢算出部、４２０…把持姿勢算出部、４３０…経路算出部、４４０…領域抽出部、４５０…状況判定部、４６０…パラメータ変更部、４７０…センサ制御部、４８０…ハンド制御部、４９０…ロボット制御部、Ｓ１０〜Ｓ８０，Ｓ８１〜Ｓ８３…ステップ。
【図１】
2019155535.tif 000003
【図２】
2019155535.tif 000004
【図３】
2019155535.tif 000005
【図４】
2019155535.tif 000006
【図５】
2019155535.tif 000007
【図６】
2019155535.tif 000008
【図７】
2019155535.tif 000009