(57)【特許請求の範囲】
【請求項１】
ワークが載置される所定の載置領域に対してスリット光を投影し、該スリット光を該スリット光の長手方向と直交する所定の移動方向へ移動させる投影部と、
前記載置領域に載置された前記ワーク上を移動する前記スリット光を順次複数回撮像する撮像部と、
前記撮像部によって撮像された画像を前記スリット光の長手方向と平行な方向へ横断し、前記スリット光の長手方向と平行な方向に細長く、前記移動方向と平行な方向の幅が、前記画像における前記スリット光の幅よりも大きく、且つ、前記画像における前記スリット光の長手方向と平行な方向の中央に近いほど大きくなるように、前記画像における前記スリット光の予測投影領域を決定する予測投影領域決定部と、
前記予測投影領域の中から前記スリット光の投影位置を検出する投影位置検出部と、
前記投影位置検出部によって検出された前記投影位置に基づいて前記ワークを把持するロボットと
を備えることを特徴とするロボットシステム。
【請求項２】
前記予測投影領域決定部は、
前記画像における前記移動方向の中央に近い前記予測投影領域ほど、該予測投影領域における前記移動方向と平行な方向の長さが長くなるように該予測投影領域を決定する
ことを特徴とする請求項１に記載のロボットシステム。
【請求項３】
前記投影位置検出部は、
前記予測投影領域における前記スリット光の輝度に関するヒストグラムに基づいて前記スリット光の投影位置を検出する
ことを特徴とする請求項１または請求項２に記載のロボットシステム。
【請求項４】
前記予測投影領域決定部は、
前記ワークの載置されていない前記載置領域へ前記投影部が投影した前記スリット光を前記撮像部によって撮像した画像に基づいて前記予測投影領域を決定する
ことを特徴とする請求項１〜３のいずれか一つに記載のロボットシステム。
【請求項５】
前記予測投影領域決定部は、
前記投影位置検出部によって前記投影位置が検出された前記予測投影領域に基づき、前記投影位置検出部によって次回前記投影位置が検出される前記予測投影領域を決定する
ことを特徴とする請求項１〜４のいずれか一つに記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、ロボットシステムに関する。
【背景技術】
【０００２】
従来、複数のワークが乱雑に載置（バラ積み）された容器から個々のワークを取り出す作業をロボットによって自動的に行うロボットシステムがある。かかるロボットシステムでは、バラ積みされたワークの三次元形状を計測し、ワークの三次元形状に基づいて選択された把持対象のワークをロボットが容器から取り出す（例えば、特許文献１参照）。
【０００３】
ここで、ワークの三次元形状の計測には、光切断法が広く用いられる。光切断法では、ワークに対して投影したスリット光を所定の移動方向へ移動させ、ワーク上を移動するスリット光の画像をカメラによって順次複数回撮像する。
【０００４】
続いて、撮像された画像の各画素をスリット光の移動方向と平行な方向へ順次走査してワークにおけるスリット光の投影位置を検出する。そして、ワークにおけるスリット光の投影位置，スリット光の光源位置およびカメラによるスリット光の受光位置という３点の位置関係に基づき、三角測量の原理によってワークの３次元形状を計測する。
【０００５】
かかるロボットシステムでは、ワークにおけるスリット光の投影領域を予測し、予測した予測投影領域に対応する画素をスリット光の移動方向へ順次選択的に走査することによってワークにおけるスリット光の投影位置の検出時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−８７０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、スリット光の投影領域を予測する従来のロボットシステムでは、予測投影領域の最適化について特に工夫がなされていなかったため、ロボットによるワークの取出作業の速度および精度が低下する恐れがあるという問題があった。
【０００８】
実施形態の一態様は、上記に鑑みてなされたものであって、スリット光の予測投影領域を最適化することによってロボットによるワークの取出作業の速度および精度を向上させることができるロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態の一態様に係るロボットシステムは、投影部と撮像部と予測投影領域決定部と投影位置検出部とロボットとを備える。投影部は、ワークが載置される所定の載置領域に対してスリット光を投影し、該スリット光を所定の移動方向へ移動させる。撮像部は、前記載置領域に載置された前記ワーク上を移動する前記スリット光を順次複数回撮像する。予測投影領域決定部は、前記撮像部によって撮像された画像を前記移動方向と交差する交差方向へ横断し、前記画像における前記交差方向の中央に近いほど前記移動方向と平行な方向の長さが長くなるように、前記画像における前記スリット光の予測投影領域を決定する。投影位置検出部は、前記予測投影領域の中から前記スリット光の投影位置を検出する。ロボットは、前記投影位置検出部によって検出された前記投影位置に基づいて前記ワークを把持する。
【発明の効果】
【００１０】
実施形態の一態様によれば、スリット光の予測投影領域を最適化することによってロボットによるワークの取出作業の速度および精度を向上させることができるロボットシステムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態に係るロボットシステムの構成要素を示す模式図である。
【図２】図２は、実施形態に係る制御装置の構成を示すブロック図である。
【図３】図３は、実施形態に係る３次元形状計測部による３次元形状の計測方法を示す図である。
【図４】図４は、実施形態に係るプレスキャンを示す説明図である。
【図５Ａ】図５Ａは、実施形態に係るプレスキャンを行った際に撮像された載置領域の画像を示す模式図である。
【図５Ｂ】図５Ｂは、実施形態に係る予測投影領域を示す模式図である。
【図６Ａ】図６Ａは、実施形態に係るスキャンを示す説明図である。
【図６Ｂ】図６Ｂは、実施形態に係るスキャンを行った際に撮像された画像および画像における予測投影領域を示す模式図である。
【図７Ａ】図７Ａは、実施形態に係るスリット光の投影位置検出方法を示す説明図である。
【図７Ｂ】図７Ｂは、実施形態に係るスリット光の投影位置検出方法を示す説明図である。
【図７Ｃ】図７Ｃは、実施形態に係るスリット光の投影位置検出方法を示す説明図である。
【図８Ａ】図８Ａは、実施形態に係るスリット光の輝度に関するヒストグラムを示す模式図である。
【図８Ｂ】図８Ｂは、実施形態に係るスリット光の輝度に関するヒストグラムを示す模式図である。
【図９Ａ】図９Ａは、実施形態に係る予測投影領域を画像毎に設ける場合の説明図である。
【図９Ｂ】図９Ｂは、実施形態に係る予測投影領域を画像毎に設ける場合の説明図である。
【図９Ｃ】図９Ｃは、実施形態に係る予測投影領域を画像毎に設ける場合の説明図である。
【図１０】図１０は、実施形態に係る制御装置の制御部が実行する処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本願の開示するロボットシステムの実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。図１は、実施形態に係るロボットシステムの構成要素を示す模式図である。
【００１３】
図１に示すように、ロボットシステム１は、投影部４と撮像部５と制御装置６とロボット７とを含む。投影部４は、ワーク３が載置される所定の載置領域２に対してスリット光４０を投影し、スリット光４０を所定の移動方向へ移動させる光投影装置である。
【００１４】
かかる投影部４は、制御装置６による制御に従ってスリット光４０の投影および移動を行う。なお、投影部４の構成については、図４を用いて後述する。撮像部５は、載置領域２に載置されたワーク３上を移動するスリット光４０を順次複数回撮像するカメラである。かかる撮像部５は、制御装置６による制御に従って撮像した画像を制御装置６へ順次出力する。
【００１５】
制御装置６は、ロボットシステム１全体の動作を統括制御する装置であり、投影部４に対してスリット光４０の投影指令を出力するほか、撮像部５に対して画像の撮像指令を出力する。また、制御装置６は、撮像部５から取得した画像に基づいてワーク３の３次元形状を計測してワーク３の位置および姿勢を判別する。
【００１６】
そして、制御装置６は、位置および姿勢を判別したワーク３から把持対象のワーク３を選択し、把持対象のワーク３を載置領域２から取り出す作業をロボット７に実行させる作業指令をロボット７に対して出力する。なお、制御装置６の構成については、図２を用いて後述する。
【００１７】
次に、図２を参照し、制御装置６の構成について説明する。図２は、実施形態に係る制御装置６の構成を示すブロック図である。図２に示すように、制御装置６は、投影部４，撮像部５およびロボット７と接続され、ロボットシステム１全体を統括制御する装置であり、制御部８と記憶部９とを備える。
【００１８】
制御部８は、ＣＰＵ（Central  Processing  Unit），メモリ等を有する演算処理装置である。かかる制御部８は、所定の処理プログラムを実行することによって機能する投影制御部８１，撮像制御部８２，予測投影領域決定部８３，投影位置検出部８４，３次元形状計測部８５および作業指令部８６を備える。
【００１９】
また、記憶部９は、ハードディスクドライブやフラッシュメモリ等の情報記憶デバイスであり、画像情報９１と予測投影領域情報９２とを記憶する。
【００２０】
投影制御部８１は、後述のプレスキャンおよびスキャンを行う場合に、投影部４へ所定の指令を出力して投影部４の動作を制御する処理部である。ここで、プレスキャンとは、ワーク３が載置されていない状態の載置領域２へスリット光４０を投影して所定の移動方向へスリット光４０を移動させる処理である。また、スキャンとは、ワーク３が載置された状態の載置領域２へスリット光４０を投影して所定の移動方向へスリット光４０を移動させる処理である。
【００２１】
撮像制御部８２は、投影部４によってスリット光４０の投影が行われた場合に、撮像部５へ所定の指令を出力して撮像部５の動作を制御する処理部である。撮像部５は、撮像制御部８２から入力される指令に従って載置領域２および載置領域２に載置されたワーク３上を移動するスリット光４０を順次複数回撮像する。そして、撮像制御部８２は、撮像部５によって撮像された各画像の画像情報９１を撮像部５から順次取得して記憶部９へ記憶させる。
【００２２】
予測投影領域決定部８３は、スキャンの際にスリット光４０が投影される予測投影領域を決定する処理部である。かかる予測投影領域決定部８３は、記憶部９によって記憶されている画像情報９１からプレスキャンの際に撮像された画像に対応する画像情報９１を取得し、取得した画像情報９１に基づいて予測投影領域を決定する。
【００２３】
ここで、予測投影領域決定部８３は、画像をスリット光４０の移動方向と交差する交差方向へ横断し、画像における交差方向の中央に近いほどスリット光４０の移動方向と平行な方向の長さが長くなるように予測投影領域を決定する。なお、予測投影領域の決定手順については、図４，図５Ａ，図５Ｂ，図６Ａ，図６Ｂを用いて後述する。
【００２４】
そして、予測投影領域決定部８３は、決定した予測投影領域を示す予測投影領域情報９２を記憶部９へ記憶させる。このとき、予測投影領域決定部８３は、一回のスキャンが行われる間に撮像部５によって順次撮像される複数の画像にそれぞれ対応する予測投影領域情報９２を記憶部９へ記憶させることもできる。
【００２５】
投影位置検出部８４は、撮像部５によって撮像された各画像におけるスリット光４０の投影位置を検出する処理部である。かかる投影位置検出部８４は、記憶部９からスキャンの際に撮像された画像に対応する画像情報９１を取得する。
【００２６】
続いて、投影位置検出部８４は、画像情報９１に基づき、各画像における予測投影領域に含まれる画素をスリット光４０の移動方向と平行な方向へ順次走査する。そして、投影位置検出部８４は、輝度が所定の上限値を超えた画素（画素群）を画像におけるスリット光４０の投影位置として検出し、検出結果を３次元形状計測部８５へ出力する。
【００２７】
３次元形状計測部８５は、投影位置検出部８４から入力されたスリット光４０の投影位置と、投影部４の位置と、撮像部５の位置という３点の位置関係に基づき、三角測量の原理によってワーク３の３次元形状を計測する。
【００２８】
ここで、図３を参照し、３次元形状計測部８５がワーク３の３次元形状を計測する計測方法について簡単に説明する。図３は、実施形態に係る３次元形状計測部８５による３次元形状の計測方法を示す図である。ここでは、直方体のワーク３１の３次元形状を計測する場合について説明する。
【００２９】
図３に示すように、ロボットシステム１の投影部４は、スリット光４０を出力する光源４１と、光源４１から出力されたスリット光４０を反射して載置領域２へ投影するミラー４２とを含む。そして、ミラー４２は、スリット光４０の反射面を回転させることによって載置領域２上でスリット光４０を所定の移動方向（図３に示すＸ軸の正方向）へ移動させる。なお、図３に示すＸ軸，Ｙ軸およびＺ軸は、それぞれが直交する直交座標系を示す。
【００３０】
かかるロボットシステム１では、ミラー４２におけるスリット光４０の反射位置および撮像部５におけるスリット光４０の受光位置が載置領域２と平行な同一平面（以下、「基準面Ｚ１」と記載する）上に位置するようにミラー４２と撮像部５とが配置される。
【００３１】
そして、３次元形状計測部８５は、ミラー４２の回転角度に基づいてスリット光４０のワーク３１に対する照射角度ａを算出する。さらに、３次元形状計測部８５は、画像におけるスリット光４０の投影位置に基づいて撮像部５によるスリット光４０の受光角度ｂを算出する。
【００３２】
ここで、ミラー４２におけるスリット光４０の反射位置Ｐから撮像部５におけるスリット光４０の受光位置Ｑまでの距離ｃは既知であり、基準面Ｚ１から載置領域２までの距離ｄも既知である。
【００３３】
このため、３次元形状計測部８５は、ミラー４２の反射位置Ｐから撮像部５の受光位置Ｑまでの距離ｃ，スリット光４０の照射角度ａおよび受光角度ｂを用いて三角測量の原理により基準面Ｚ１からスリット光４０の投影位置Ｒまでの距離ｅを算出できる。
【００３４】
これにより、３次元形状計測部８５は、基準面Ｚ１から載置領域２までの距離ｄから、基準面Ｚ１からスリット光４０の投影位置Ｒまでの距離ｅを減算することによってワーク３１の高さｆを算出することができる。したがって、３次元形状計測部８５は、ワーク３１の各部位について高さｆをそれぞれ算出することにより、ワーク３１の３次元形状を算出することができる。
【００３５】
図２へ戻り、制御部８の構成について説明を続ける。以下では、ワークが図１に示すワーク３（ネジ）であるものとして説明を続ける。３次元形状計測部８５は、こうして計測したワーク３の３次元形状を示す情報を作業指令部８６へ出力する。作業指令部８６は、ロボット７へ所定の指令を出力することによってロボット７の動作を制御する処理部である。
【００３６】
かかる作業指令部８６は、３次元形状計測部８５から入力される情報に基づいて、載置領域２にバラ積みされているワーク３の位置および姿勢を判別して把持対象のワーク３を選択する。そして、作業指令部８６は、選択したワーク３を載置領域２から取り出す作業をロボット７へ行わせる指令をロボット７に対して出力する。
【００３７】
次に、図４，図５Ａ，図５Ｂ，図６Ａ，図６Ｂを参照し、予測投影領域１１の決定手順について説明する。図４は、実施形態に係るプレスキャンを示す説明図である。また、図５Ａは、実施形態に係るプレスキャンを行った際に撮像された載置領域２の画像１０を示す模式図であり、図５Ｂは、実施形態に係る予測投影領域１１を示す模式図である。
【００３８】
また、図６Ａは、実施形態に係るスキャンを示す説明図であり、図６Ｂは、実施形態に係るスキャンを行った際に撮像された画像１０および画像１０における予測投影領域１１を示す模式図である。
【００３９】
ロボットシステム１では、ロボット７によるワーク３の取出作業を行う場合、スリット光４０によって事前に載置領域２のプレスキャンを行う。そして、ロボットシステム１では、プレスキャンの結果に基づき、スリット光４０によって実際にワーク３をスキャンした際に投影されるスリット光４０の予測投影領域１１（図５Ｂ参照）を決定する。
【００４０】
具体的には、図４に示すように、プレスキャンでは、投影部４は、光源４１から出力したスリット光４０をミラー４２へ反射させ、ワーク３が載置されていない載置領域２に対してスリット光４０を投影させてプレスキャンを行う。
【００４１】
続いて、撮像部５は、載置領域２へ投影されたスリット光４０の画像１０を撮像する。ここで、撮像部５は、載置領域２の真上（Ｚ軸の負の方向）から載置領域２によって反射されたスリット光４０を受光してスリット光４０の画像１０を撮像する。
【００４２】
このとき、載置領域２によって反射されたスリット光４０は、拡散しながら撮像部５の方向へ進む。ここで、載置領域２へ投影されたスリット光４０は、スリット光４０における長手方向（Ｙ軸と平行な方向）の中心へ近い部分ほど撮像部５までの距離が短く、スリット光４０における長手方向の両端に近い部分ほど撮像部５までの距離が長い。
【００４３】
このため、スリット光４０における長手方向の両端に近い部分ほど撮像部５によって受光されるまでの間に拡散するので撮像部５によって受光される光量が少なくなる。したがって、図４に示すスリット光４０を撮像部５によって撮像した場合、図５Ａに示すように、画像１０におけるスリット光４０は、Ｙ軸と平行な方向の両端から中央へ向かうほど、スリット光４０におけるＸ軸と平行な方向の長さが長くなる。
【００４４】
すなわち、画像１０におけるスリット光４０の外形は、直線形状ではなく長手方向の両端から長手方向の中心に向かうにつれてＸ軸方向の長さ（スリット光４０の幅）が幅広となる湾曲形状となる。
【００４５】
そこで、予測投影領域決定部８３は、図５Ｂに示すように、画像１０におけるスリット光４０を含み、スリット光４０の幅よりも幅が広く、スリット光４０の湾曲した外形と同様の湾曲した外形となる領域を予測投影領域１１として決定する。
【００４６】
具体的には、予測投影領域決定部８３は、画像１０をスリット光４０の移動方向（Ｘ軸方向）と交差する交差方向（Ｙ軸方向）へ横断し、画像１０におけるＹ軸方向の中央に近いほどＸ軸と平行な方向の長さが長い所謂樽型の領域を予測投影領域１１として決定する。
【００４７】
このとき、予測投影領域決定部８３は、ワーク３のＺ軸方向の長さ（高さ）を考慮して、プレスキャンの際に撮像されたスリット光４０におけるＸ軸の負側端縁から予測投影領域１１におけるＸ軸の負側端縁までの長さ（幅）ｇを決定する。
【００４８】
また、予測投影領域決定部８３は、長さｇよりも短い長さｈを、スリット光４０におけるＸ軸の正側端縁から予測投影領域１１におけるＸ軸の正側端縁までの長さ（幅）ｈとして決定する。
【００４９】
例えば、ここで、図６Ａに示すように、直方体のワーク３１に対してスリット光４０を投影してスリット光４０を撮像した場合について説明する。かかる場合、図６Ｂに示すように、ワーク３１の天面へ投影されたスリット光４０は、載置領域２へ投影されたスリット光４０よりもワーク３１のＺ軸方向の長さ（高さ）に対応した距離だけＸ軸の負方向へずれた位置に映し出される。
【００５０】
そこで、予測投影領域決定部８３は、ワーク３１の高さに対応した距離だけスリット光４０がＸ軸の負方向へずれる距離に所定のマージンを加算してスリット光４０におけるＸ軸の負側端縁から予測投影領域１１におけるＸ軸の負側端縁までの長さｇを決定する。
【００５１】
また、スリット光４０の乱反射や撮像条件によっては、ワーク３１をスキャンした際、プレスキャンで撮像されたスリット光４０の投影位置よりもＸ軸の正側へずれた位置にスリット光４０が映し出されることがある。ただし、かかる場合のずれ量は、長さｇよりも大きくなる可能性が低い。
【００５２】
このため、予測投影領域決定部８３は、長さｇよりも短い長さｈを、スリット光４０におけるＸ軸の正側端縁から予測投影領域１１におけるＸ軸の正側端縁までの長さ（幅）ｈとして決定する。
【００５３】
なお、ここでは、ワーク３１が重なり合うことなく載置領域２に乱雑に載置されている場合を想定して長さｇを決定する場合について説明した。なお、ネジ等のワーク３が重なり合った状態で載置領域２にバラ積みされる場合には、重なり合ったワーク３の高さを考慮して長さｇをさらに長くする。
【００５４】
このように、予測投影領域決定部８３は、スリット光４０が長手方向の両端から中央へ向かうほど幅広になる傾向を考慮し、予測投影領域１１におけるＸ軸方向の長さ（幅）がＹ軸方向の中央へ近くなるほど長くした樽型の領域を予測投影領域１１として決定する。そして、予測投影領域決定部８３は、決定した予測投影領域１１を示す予測投影領域情報９２を記憶部９へ記憶させる。
【００５５】
なお、予測投影領域１１における外周の湾曲形状は、スリット光４０における外周の湾曲形状と同様でなくてもよい。すなわち、予測投影領域１１は、Ｘ軸方向の長さ（幅）がＹ軸方向の中央へ近くなるほど長い（広い）任意の樽型であってもよい。
【００５６】
次に、図７Ａ，図７Ｂおよび図７Ｃを参照し、投影位置検出部８４によるスリット光４０の投影位置検出方法について説明する。図７Ａ，図７Ｂおよび図７Ｃは、実施形態に係るスリット光４０の投影位置検出方法を示す説明図である。
【００５７】
ここでは、載置領域２上でスリット光４０をＸ軸の正の方向へ一定速度で移動させながらワーク３のスキャンを行う場合について説明する。かかる場合、投影部４は、光源４１から出力したスリット光４０をミラー４２へ反射させ、ワーク３が載置された載置領域２へスリット光４０を投影する。
【００５８】
そして、投影部４は、ミラー４２を回転させることによってスリット光４０を載置領域２上で所定の移動方向へ移動させてワーク３のスキャンを行う。続いて、撮像部５は、載置領域２上をＸ軸の正の方向へ移動するスリット光４０の画像１０を順次複数回撮像する。
【００５９】
そして、投影位置検出部８４は、撮像部５によって撮像された画像１０からスリット光４０の投影位置を検出する。ここで、投影位置検出部８４は、記憶部９から画像情報９１および予測投影領域情報９２を取得し、予測投影領域情報９２に基づいて各画像１０へ予測投影領域１１を設定して予測投影領域１１の中からスリット光４０の投影位置を検出する。
【００６０】
具体的には、投影位置検出部８４は、載置領域２におけるスリット光４０の移動速度に基づいて各画像１０におけるスリット光４０の投影位置を予測する。そして、投影位置検出部８４は、図７Ａ，図７Ｂおよび図７Ｃに示すように、予測した投影位置を含むように各画像１０に対して予測投影領域１１を設定する。
【００６１】
続いて、投影位置検出部８４は、各画像１０に設定した予測投影領域１１に含まれる画素をＸ軸と平行な方向へ選択的に順次走査して輝度が所定の上限値を超えた画素の位置を画像１０におけるスリット光４０の投影位置として検出する。
【００６２】
このように、投影位置検出部８４は、画像１０における全画素を走査するのではなく、予め予測された予測投影領域１１内の画素を選択的に走査してスリット光４０の投影位置を検出するので、投影位置の検出に要する処理時間を短縮することができる。
【００６３】
しかも、予測投影領域１１は、画像１０へ映し出されるスリット光４０の形状に合わせて、長手方向における両端から中央へ向かうほどＸ軸と平行な方向の長さ（幅）が長くなるように最適化される。
【００６４】
これにより、投影位置検出部８４は、スリット光４０の長手方向両端部分にくらべて幅広な長手方向中央部分の投影位置を検出する際に、必要十分な画素を走査することでスリット光４０の検出漏れを防止することができる。
【００６５】
また、投影位置検出部８４は、スリット光４０の長手方向両端部分の投影位置を検出する際に、不必要に多くの画素を走査することなくスリット光４０の投影位置を検出することができるのでスリット光４０の検出時間を効果的に短縮することができる。
【００６６】
また、投影位置検出部８４は、画像１０におけるスリット光４０の輝度に関するヒストグラムに基づいてスリット光４０の投影位置を検出することにより、画像１０におけるスリット光４０の投影位置に関する検出精度をさらに高めた。
【００６７】
次に、図８Ａおよび図８Ｂを参照し、ヒストグラムに基づいてスリット光４０の投影位置を検出する検出方法について説明する。図８Ａおよび図８Ｂは、実施形態に係るスリット光４０の輝度に関するヒストグラムを示す模式図である。
【００６８】
図８Ａに示すように、投影位置検出部８４は、スリット光４０における長手方向両端近傍の投影位置を検出する場合、輝度のヒストグラムに基づき、Ｘ軸と平行な方向の長さ（幅）が比較的短い（狭い）範囲ｊに含まれる数画素単位の画素群Ａ，Ｂを走査する。
【００６９】
ここでは、輝度が明暗境界を越える画素群がＢに限定されるため、投影位置検出部８４は、画素群Ｂの画像における位置をスリット光４０の投影位置として検出する。なお、ここでの明暗境界は、投影位置検出部８４がスリット光４０の投影位置ではないと判定する輝度の上限値である。
【００７０】
一方、図８Ｂに示すように、スリット光４０における長手方向中央近傍の投影位置を検出する際に、図８Ａに示す狭い範囲ｊに含まれる画素群Ｃ，Ｄを走査した場合、投影位置検出部８４は、投影位置の検出精度が低下する。
【００７１】
具体的には、図８Ｂに示す例において画素（画素群）Ｄの画像における位置がスリット光４０の投影位置であった場合、投影位置検出部８４は、画素群Ｃ，Ｄを走査しても、どちらが投影位置かを的確に判別することができない。
【００７２】
すなわち、スリット光４０における長手方向中央近傍では、長手方向両端近傍に比べてスリット光４０におけるＸ軸と平行な方向の長さ（幅）が長い（広い）。このため、比較的狭い範囲ｊに含まれる画素群Ｃ，Ｄの輝度は、いずれも明暗境界よりも高くなることがある。したがって、投影位置検出部８４は、画素群Ｃ，Ｄのどちらがスリット光４０の投影位置かを正確に判別することができず、投影位置の検出精度が低下する。
【００７３】
そこで、投影位置検出部８４は、スリット光４０における長手方向中央近傍の投影位置を検出する場合、Ｘ軸と平行な方向の長さ（幅）が範囲ｊよりも長い（広い）範囲ｋに含まれる画素群の輝度に関するヒストグラムを用いて投影位置を検出する。
【００７４】
かかる場合、投影位置検出部８４は、たとえば、画素群Ｃ，Ｄを挟んでＸ軸の負側および正側に位置し、輝度が明暗境界と一致（若しくは近似）する一対の画素の画像１０における中点に位置する画素を判別する。そして、投影位置検出部８４は、判別した中点の画素を含む画素群Ｃをスリット光４０の投影位置として検出する。このように、投影位置検出部８４は、画素群の輝度に関するヒストグラムを用いることによってスリット光４０の投影位置を正確に検出することができる。
【００７５】
なお、ここまでは、投影位置検出部８４が、画像１０の撮像された順に予測投影領域１１をＸ軸の正の方向へ順次移動させてスリット光４０の投影位置を検出する場合について説明したが画像１０毎に予測投影領域１１を設けてもよい。
【００７６】
次に、図９Ａ，図９Ｂ，図９Ｃを参照し、画像１０毎に予測投影領域１１を設ける場合について説明する。図９Ａ，図９Ｂ，図９Ｃは、実施形態に係る予測投影領域１１を画像１０毎に設ける場合の説明図である。
【００７７】
図９Ａ，図９Ｂ，図９Ｃに示すように、スリット光４０は、画像１０におけるＸ軸方向の位置が中央に近いほどＸ軸と平行な方向の長さ（幅）が長く（広く）なる傾向がある。そこで、画像１０毎に予測投影領域１１を設ける場合、予測投影領域決定部８３は、画像１０におけるＸ軸方向の中央に近い予測投影領域１１ほど、予測投影領域１１におけるＸ軸方向と平行な方向の長さが長い予測投影領域１１を決定する。
【００７８】
そして、予測投影領域決定部８３は、予測投影領域１１に対応する各予測投影領域情報９２を画像１０毎に記憶部９へ記憶させる。これにより、投影位置検出部８４は、画像１０毎に記憶された予測投影領域情報９２を用いることで、画像１０におけるスリット光４０の投影位置に応じた大きさの予測投影領域１１を設定してスリット光４０の投影位置を検出することができる。
【００７９】
したがって、投影位置検出部８４は、図９Ａおよび図９Ｃに示すように、画像１０におけるスリット光４０の位置がＸ軸の正側または負側の端部近傍の場合、必要最小限の予測投影領域１１を設定することで投影位置の検出に要する時間を短縮することができる。
【００８０】
また、予測投影領域１１が最小限であるため、スリット光４０以外の外乱光の影響によるスリット光４０の誤検出を減じることができる。これにより、ロボットシステム１では、ワーク３の誤検出の発生を抑制することができるので、ロボットが誤った位置で把持動作を行うことを抑制することができる。
【００８１】
一方、画像１０におけるスリット光４０の位置がＸ軸方向の中央の場合、投影位置検出部８４は、図９Ｂに示すように、必要十分な広い予測投影領域１１を設定することで投影位置の検出漏れを防止することができる。
【００８２】
次に、図１０を参照し、制御装置６の制御部８が実行する処理について説明する。図１０は、実施形態に係る制御装置６の制御部８が実行する処理を示すフローチャートである。図１０に示すように、制御部８は、まず、投影部４にプレスキャンを実行させる（ステップＳ１０１）。
【００８３】
このとき、投影制御部８１は、ワーク３が載置されていない載置領域２に対してスリット光４０を投影させ、載置領域２上でスリット光４０をＸ軸と平行な方向へ移動させる指令を投影部４へ出力する。また、撮像制御部８２は、載置領域２上を移動するスリット光４０の画像１０を撮像させる指令を撮像部５へ出力する。そして、撮像制御部８２は、撮像された画像１０の画像情報９１を撮像部５から取得して記憶部９へ記憶させる。
【００８４】
続いて、予測投影領域決定部８３は、プレスキャンの際に撮像された画像情報９１を用いて予測投影領域１１（図５Ｂ参照）を決定する（ステップＳ１０２）。そして、予測投影領域決定部８３は、決定した予測投影領域１１を示す予測投影領域情報９２を記憶部９へ記憶させる。
【００８５】
その後、制御部８は、スキャンを開始する（ステップＳ１０３）。このとき、投影制御部８１は、ワーク３が載置された載置領域２に対してスリット光４０を投影させ、載置領域２上でスリット光４０をＸ軸と平行な方向へ移動させる指令を投影部４へ出力する。また、撮像制御部８２は、載置領域２上を移動するスリット光４０の画像１０を撮像させる指令を撮像部５へ出力する。そして、撮像制御部８２は、撮像された画像１０の画像情報９１を撮像部５から取得して記憶部９へ記憶させる。
【００８６】
続いて、投影位置検出部８４は、記憶部９に記憶された予測投影領域情報９２を用いて各画像１０へ予測投影領域１１（図７Ａ，図７Ｂ，図７Ｃ参照）を設定し、予測投影領域１１に含まれる画素の輝度に関するヒストグラムを作成する（ステップＳ１０４）。
【００８７】
そして、投影位置検出部８４は、作成したヒストグラムを用いて各画像１０におけるスリット光４０の投影位置を検出し（ステップＳ１０５）、検出した投影位置に関する情報を３次元形状計測部８５へ出力する。３次元形状計測部８５は、画像１０におけるスリット光４０の投影位置に基づいてワーク３の３次元形状を計測し（ステップＳ１０６）、ワーク３の位置および姿勢を判別して判別結果を作業指令部８６へ出力する。
【００８８】
作業指令部８６は、ワーク３の位置および姿勢に基づいて把持対象のワーク３があるか否かを判断する（ステップＳ１０７）。そして、作業指令部８６は、把持対象のワーク３があると判断した場合（ステップＳ１０７，Ｙｅｓ）、把持対象のワーク３を選択する（ステップＳ１０８）。
【００８９】
続いて、作業指令部８６は、選択した把持対象のワーク３を載置領域２から取り出させるワーク取出指令をロボット７へ出力し（ステップＳ１０９）、処理をステップＳ１０３へ移す。一方、作業指令部８６は、ステップＳ１０７において、把持対象のワーク３がないと判断した場合（ステップＳ１０７，Ｎｏ）、処理を終了する。
【００９０】
上述したように、実施形態に係るロボットシステム１では、画像１０におけるスリット光４０の形状に応じてスリット光４０の予測投影領域１１を最適化することにより、ワーク３の３次元形状の計測時間および計測精度を向上させることができる。したがって、実施形態に係るロボットシステム１によれば、ロボット７によるワーク３の取出作業の速度および精度を向上させることができる。
【００９１】
なお、予測投影領域決定部８３は、画像１０毎にＸ軸方向の長さ（幅）異なる予測投影領域１１を設定する場合、プレスキャンを行なうことなく、事前に登録していた画像１０におけるスリット光４０のＸ軸方向の位置に応じて予測投影領域１１の幅が変化する関数を用いて予測投影領域１１を決定してもよい。これにより、記憶部９へ記憶させる予測投影領域情報９２の情報量を低減することができる。
【００９２】
また、スリット光４０の投影位置が載置領域２におけるＸ軸方向の中央に近いほどスリット光４０のＸ軸と平行な方向の長さ（幅）が長く（広く）なる場合、投影位置が載置領域２の中央に近くなるほどスリット光４０の光量を低減させてもよい。
【００９３】
これにより、載置領域２におけるスリット光４０の投影位置によらずスリット光４０の幅を一定にすることができるので、予測投影領域１１の設定位置を変更するだけで１種類の予測投影領域１１を用いてスリット光４０の投影位置を検出することができる。
【００９４】
また、予測投影領域決定部８３は、投影位置検出部８４によってスリット光４０の投影位置が検出された予測投影領域１１に基づき、投影位置検出部８４によって次回、スリット光４０の投影位置が検出される予測投影領域１１を決定してもよい。
【００９５】
例えば、予測投影領域決定部８３は、決定した予測投影領域１１の画像における位置および載置領域２を移動するスリット光４０の速度に基づき、投影位置検出部８４が次にスリット光４０の投影位置を検出する画像１０における予測投影領域１１を順次決定する。かかる構成とすれば、記憶部９へ記憶させておく予測投影領域情報９２の情報量を低減することができる。
【００９６】
また、予測投影領域決定部８３は、投影位置検出部８４によって検出されたスリット光４０の投影位置に基づき、投影位置検出部８４によって次回、スリット光４０の投影位置が検出される予測投影領域１１を決定してもよい。かかる構成によっても同様に、記憶部９へ記憶させておく予測投影領域情報９２の情報量を低減することができる。
【００９７】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される統括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【００９８】
１  ロボットシステム
２  載置領域
３，３１  ワーク
４  投影部
４０  スリット光
４１  光源
４２  ミラー
５  撮像部
６  制御装置
７  ロボット
８  制御部
８１  投影制御部
８２  撮像制御部
８３  予測投影領域決定部
８４  投影位置検出部
８５  ３次元形状計測部
８６  作業指令部
９  記憶部
９１  画像情報
９２  予測投影領域情報
１０  画像
１１  予測投影領域
【図１】
0005494597.tif 000002
【図２】
0005494597.tif 000003
【図３】
0005494597.tif 000004
【図４】
0005494597.tif 000005
【図５Ａ】
0005494597.tif 000006
【図５Ｂ】
0005494597.tif 000007
【図６Ａ】
0005494597.tif 000008
【図６Ｂ】
0005494597.tif 000009
【図７Ａ】
0005494597.tif 000010
【図７Ｂ】
0005494597.tif 000011
【図７Ｃ】
0005494597.tif 000012
【図８Ａ】
0005494597.tif 000013
【図８Ｂ】
0005494597.tif 000014
【図９Ａ】
0005494597.tif 000015
【図９Ｂ】
0005494597.tif 000016
【図９Ｃ】
0005494597.tif 000017
【図１０】
0005494597.tif 000018