(57)【要約】      （修正有）【課題】検出処理の大幅な短縮化を図ることができ、処理効率の向上を図ることができる物体検出装置、ロボットシステム、及び物体検出方法を提供する。【解決手段】センサユニット３００は、レーザスリット光を照射するレーザ光源３２１と、レーザ光源３２１から照射されたレーザスリット光のワークへの投影部位を、走査方向へ移動させる回転ミラー３２２と、回転ミラー３２２がワーク上でのレーザスリット光の投影部位を移動させる際に、移動する投影部位を含むワークの外観を所望のフレームレートで連続撮像し、対応する複数の撮像フレームを出力するカメラ３１０と、１回のスキャンごとに複数の撮像フレームを用いて１つの距離画像を生成する距離画像生成部３３３と、時間的に互いに異なる複数回のスキャンに基づく複数の距離画像を合成し、合成画像を生成する合成画像生成部３３６とを有する。【選択図】図７
2014159988.tif 000002
【特許請求の範囲】
【請求項１】
検出対象の物体を検出する物体検出装置であって、
スリット状のレーザ光を照射するレーザ光源と、
前記レーザ光源から照射された前記レーザ光の前記物体への投影部位を、所定の走査方向へ移動させる走査部と、
前記走査部が前記物体上での前記レーザ光の前記投影部位を移動させる際に、前記移動する投影部位を含む前記物体の外観を所望の間隔で連続撮像し、対応する複数の画像データを出力するカメラと、
前記カメラが複数回の連続撮像を行う１つの撮像工程ごとに、複数の前記画像データを用いて前記物体の１つの三次元形状画像を生成する、距離画像生成部と、
時間的に互いに異なる複数の前記撮像工程に基づいて前記距離画像生成部がそれぞれ生成した複数の前記三次元形状画像を合成して、前記物体の三次元形状を検出するための合成画像を生成する、合成画像生成部と、
を有することを特徴とする、物体検出装置。
【請求項２】
前記走査部は、
前記レーザ光源から照射された前記レーザ光を受光し前記物体へ向けて反射させる回転ミラーである
ことを特徴とする、請求項１に記載の物体検出装置。
【請求項３】
前記複数の撮像工程のうち当初撮像工程では、前記物体の投影対象となる全投影領域に対し前記カメラが順次Ｋ回（Ｋは正の整数）の連続撮像を行うと共に、前記距離画像生成部がＫ個の前記画像データを用いることで前記全投影領域に対応した前記１つの三次元形状画像を生成し、かつ、
前記複数の撮像工程のうち前記当初撮像工程の後に実行される１以上の間引き撮像工程では、合計面積が前記全投影領域の１／ｎ（ｎは２以上の整数）となるように間引き分割された複数の分割投影領域に対し前記カメラが順次Ｋ／ｎ回の連続撮像を行うと共に、前記距離画像生成部がＫ／ｎ個の前記画像データを用いることで各間引き撮像工程に対応した前記１つの三次元形状画像を生成するように、
前記カメラ及び前記距離画像生成部を連携して制御する連携制御部をさらに有する
ことを特徴とする、請求項２に記載の物体検出装置。
【請求項４】
複数の前記間引き撮像工程は、
前記連携制御部の制御により、合計面積が前記全投影領域の１／２となるように間引き分割された複数の第１分割投影領域に対し前記カメラが順次Ｋ／２回の連続撮像を行い、かつ、前記距離画像生成部がＫ／２個の前記画像データを用いることで前記複数の第１分割投影領域に対応した１つの第１三次元形状画像を生成する、第１間引き撮像工程と、
前記連携制御部の制御により、合計面積が前記全投影領域の１／２となるように間引き分割され前記複数の第１分割投影領域相互間をそれぞれ埋めるように配置される複数の第２分割投影領域に対し前記カメラが順次Ｋ／２回の連続撮像を行い、かつ、前記距離画像生成部がＫ／２個の前記画像データを用いることで前記複数の第２分割投影領域に対応した１つの第２三次元形状画像を生成する、第２間引き撮像工程と、
を含み、
前記合成画像生成部は、
前記第１間引き撮像工程において前記距離画像生成部が生成した前記第１三次元形状画像と、前記第２間引き撮像工程において前記距離画像生成部が生成した前記第２三次元形状画像と、を合成して前記合成画像を生成する
ことを特徴とする、請求項３に記載の物体検出装置。
【請求項５】
前記連携制御部は、
前記第１間引き撮像工程における１工程中での前記カメラの撮像タイミングと、前記第２間引き撮像工程における１工程中での前記カメラの撮像タイミングと、が各工程の開始を基準として互いに交互のタイミングとなるように、前記カメラを制御する
ことを特徴とする、請求項４に記載の物体検出装置。
【請求項６】
複数の前記物体が入った容器と、
前記容器内の前記複数の物体を順次保持して移送するロボットと、
請求項４又は５に記載の物体検出装置と、
前記物体検出装置により検出された前記容器内の前記複数の物体それぞれの三次元形状に基づいて前記ロボットを動作させるコントローラと、
を有することを特徴とする、ロボットシステム。
【請求項７】
前記物体検出装置における、前記第２間引き撮像工程で生成された前記第２三次元形状画像とその直前の前記第１間引き撮像工程で生成された前記第１三次元形状画像との合成による前記三次元形状の検出に基づいて、前記ロボットが対応する前記物体を移送した場合には、
前記合成画像生成部は、
前記第２間引き撮像工程の直後の前記第１間引き撮像工程で生成された前記第１三次元形状画像と、当該第２間引き撮像工程で生成された前記第２三次元形状画像のうち前記移送された前記物体に対応する部分を除いた画像と、を合成して、前記合成画像を生成する
ことを特徴とする、請求項６に記載のロボットシステム。
【請求項８】
前記第１間引き撮像工程で生成された前記第１三次元形状画像と、その直前の前記第２間引き撮像工程に基づいて前記合成画像生成部で生成された前記合成画像との、対応する部位又は当該部位の近傍部位におけるデータ内容の偏差が所定の閾値よりも大きかった場合には、
前記合成画像生成部は、
前記第１間引き撮像工程で生成された前記第１三次元形状画像のうち前記データ内容の偏差が前記閾値よりも大きかった部位を除いた画像と、前記直前の第２間引き撮像工程で生成された前記第２三次元形状画像のうち前記データ内容の偏差が前記閾値よりも大きかった部位を除いた画像と、を合成して、前記合成画像を生成する
ことを特徴とする、請求項７に記載のロボットシステム。
【請求項９】
光源からスリット状のレーザ光を照射することと、
前記照射した前記レーザ光の物体への投影部位を、所定の走査方向へ移動させることと、
前記レーザ光の前記投影部位を移動させる際に、前記移動する投影部位を含む前記物体の外観を所望の間隔で連続撮像し、対応する複数の画像データを出力することと、
複数回の連続撮像を行う１つの撮像工程ごとに、複数の前記画像データを用いて前記物体の１つの三次元形状画像を生成することと、
時間的に互いに異なる複数の前記撮像工程に基づいてそれぞれ生成された複数の前記三次元形状画像を合成して、前記物体の三次元形状を検出することと、
を有することを特徴とする、物体検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、物体検出装置、ロボットシステム、及び物体検出方法に関する。
【背景技術】
【０００２】
特許文献１には、光切断法により物体の検出を行う技術が記載されている。光切断法では、光源から照射された光の物体への投影部位を走査方向に移動させ、その移動する投影部位を含む物体の外観を所望の間隔で連続撮像することにより、物体の三次元形状を検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２５０８４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような光切断法では、上記のように光の物体への投影部位を走査方向に移動させ連続撮像を行うとき、物体上の走査方向に沿うほぼ全域にわたる間、まんべんなく撮像を行わなければならない。このため、上記連続撮像を行うために比較的長い時間を要し、検出処理の効率化が難しい。
【０００５】
本発明はこのような問題に鑑みてなされたものであり、検出処理の大幅な短縮化を図ることができ、処理効率の向上を図ることができる物体検出装置、ロボットシステム、及び物体検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の一の観点によれば、検出対象の物体を検出する物体検出装置であって、スリット状のレーザ光を照射するレーザ光源と、前記レーザ光源から照射された前記レーザ光の前記物体への投影部位を、所定の走査方向へ移動させる走査部と、前記走査部が前記物体上での前記レーザ光の前記投影部位を移動させる際に、前記移動する投影部位を含む前記物体の外観を所望の間隔で連続撮像し、対応する複数の画像データを出力するカメラと、前記カメラが複数回の連続撮像を行う１つの撮像工程ごとに、複数の前記画像データを用いて前記物体の１つの三次元形状画像を生成する、距離画像生成部と、時間的に互いに異なる複数の前記撮像工程に基づいて前記距離画像生成部がそれぞれ生成した複数の前記三次元形状画像を合成して、前記物体の三次元形状を検出するための合成画像を生成する、合成画像生成部と、を有することを特徴とする、物体検出装置が適用される。
【０００７】
また、上記課題を解決するため、本発明の別の観点によれば、光源からスリット状のレーザ光を照射することと、前記照射した前記レーザ光の物体への投影部位を、所定の走査方向へ移動させることと、前記レーザ光の前記投影部位を移動させる際に、前記移動する投影部位を含む前記物体の外観を所望の間隔で連続撮像し、対応する複数の画像データを出力することと、複数回の連続撮像を行う１つの撮像工程ごとに、複数の前記画像データを用いて前記物体の１つの三次元形状画像を生成することと、時間的に互いに異なる複数の前記撮像工程に基づいてそれぞれ生成された複数の前記三次元形状画像を合成して、前記物体の三次元形状を検出することと、を有することを特徴とする、物体検出方法が適用される。
【発明の効果】
【０００８】
本発明によれば、検出処理の大幅な短縮化を図ることができるので、処理効率の向上を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】一実施の形態のロボットシステムの全体構成の一例を表すシステム構成図である。
【図２】センサユニットの構成の一例を一部透視した状態で表す側面図である。
【図３】センサユニットの構成の一例を一部透視した状態で表す上面図である。
【図４】センサユニットの構成の一例を説明するための説明図である。
【図５】センサユニットの構成の一例を説明するための説明図である。
【図６】カメラから出力された撮像フレームの一例を表す説明図である。
【図７】センサコントローラの機能的構成の一例を表すブロック図である。
【図８】１回目のスキャン時に連携制御部の制御により実行される処理を説明するための説明図である。
【図９】１回目のスキャン時に連携制御部の制御により実行される処理を説明するための説明図である。
【図１０】Ｎ回目のスキャン時に連携制御部の制御により実行される処理を説明するための説明図である。
【図１１】Ｎ回目のスキャン時に連携制御部の制御により実行される処理を説明するための説明図である。
【図１２】Ｎ＋１回目のスキャン時に連携制御部の制御により実行される処理を説明するための説明図である。
【図１３】Ｎ＋１回目のスキャン時に連携制御部の制御により実行される処理を説明するための説明図である。
【図１４】合成画像生成部により生成される合成画像の一例を表す説明図である。
【図１５】合成画像生成部による除外処理の一例を説明するための説明図である。
【図１６】合成画像生成部による除外処理の一例を説明するための説明図である。
【図１７】各スキャンが終了するごとに合成画像生成部により生成される合成画像の一例を説明する説明図である。
【図１８】各スキャンが終了するごとに合成画像生成部により生成される合成画像の一例を説明する説明図である。
【図１９】各スキャンが終了するごとに合成画像生成部により生成される合成画像の一例を説明する説明図である。
【図２０】センサコントローラが実行する物体検出方法の制御手順の一例を表すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、一実施の形態について図面を参照しつつ説明する。
【００１１】
まず、図１を参照しつつ、本実施形態のロボットシステムの全体構成の一例を説明する。
【００１２】
図１に示すように、本実施形態のロボットシステム１は、ストッカ２０（容器）と、ロボット１００と、コンベア３０と、センサユニット３００（物体検出装置）と、ロボットコントローラ２００（コントローラ）とを有する。
【００１３】
ストッカ２０は、例えば樹脂や金属等で形成された箱状の容器であり、ロボット１００の近傍に配置された台座２１上に配置されている。このストッカ２０の内部には、複数の検出対象のワークＷ（物体）が無作為（バラバラ）に入れられている。なお、各ワークＷは、ストッカ２０等のような容器に入れられていなくてもよく、台座２１上等のような適宜の載置面に載置されていてもよい。また、各ワークＷ及びそれらの形状としては、特に限定されるものではなく、種々考えられる。このとき、各ワークＷ及びそれらの形状は、互いに一致又は類似していてもよいし、互いに異なっていてもよい。但し、各図中では、各ワークＷの形状を簡略化して楕円形状で図示している。
【００１４】
ロボット１００は、ストッカ２０内の複数のワークＷを順次保持して移送する移送作業（いわゆるランダム・ビン・ピッキング）を行う。ロボット１００としては、上記のような移送作業を行うことが可能なものであれば特に限定されるものではないが、例えば垂直多関節ロボットや水平多関節ロボット（スカラロボット）等が使用可能である。この例では、ロボット１００として垂直多関節ロボットを適用し、ロボット１００は、適宜の固定面（例えば床部等）に固定された基台１０１と、基台１０１に回転自在に設けられたアーム部１０２とを有する。アーム部１０２は、基台１０１側からその反対の先端側にかけて複数の間接を有する。このアーム部１０２には、上記複数の間接をそれぞれ駆動する複数のサーボモータ（図示せず）が内蔵されている。また、アーム部１０２の先端には、ワークＷを保持可能な保持装置１０３が設けられている。
【００１５】
保持装置１０３としては、ワークＷを保持可能なものであれば特に限定されるものではないが、例えば、指部材によりワークＷを把持（保持の一態様）可能な把持装置、エアや電磁力等により駆動してワークＷを吸着（保持の一態様）可能な吸着装置等が使用可能である。この例では、保持装置１０３として把持装置を適用し、保持装置１０３は、ワークＷを把持可能な一対の指部材１０３ａを有する。一対の指部材１０３ａは、保持装置１０３に内蔵された適宜のアクチュエータ（図示せず）により駆動され、互いの間隔を拡張・縮小することにより開閉動作する。なお、保持装置１０３としては、上記のような構造を備えたものに限定されるものではなく、例えば、複数の指部材を有し、これら複数の指部材が揺動することによりワークＷを掴むグリッパ装置等も使用可能である。
【００１６】
このようなロボット１００は、ストッカ２０内の複数のワークＷを把持装置１０３の指部材１０３ａにより１つずつ順次把持し、コンベア３０において予め設定された載置位置へ移送して載置することにより、移送作業を行う。
【００１７】
コンベア３０は、予め設定された載置位置に載置されたワークＷを、次の工程に係る設備に搬送する。
【００１８】
センサユニット３００は、光切断法により、ストッカ２０内の複数のワークＷをそれぞれ検出し、それら複数のワークＷそれぞれの三次元的な外形形状（三次元的な位置及び姿勢も含む。以下同様）である三次元形状を検出する。このセンサユニット３００は、ストッカ２０の上方に位置するように、適宜の支持部材５０により支持されている。なお、センサユニット３００は、ロボット１００の適宜の部位（例えばアーム部１０２の先端側等）に取り付けられていてもよい。センサユニット３００については、後でより詳しく説明する。
【００１９】
ロボットコントローラ２００は、例えば演算器、記憶装置、入力装置等を有するコンピュータで構成され、ロボット１００及びセンサユニット３００と相互通信可能に接続されている。このロボットコントローラ２００は、センサユニット３００により検出されたストッカ２０内の複数のワークＷそれぞれの三次元形状を表す三次元形状情報に基づいて、ロボット１００全体の動作（例えば、アーム部１０２の各間接の駆動、把持装置１０３の指部材１０３ａの開閉動作等）を制御する。ロボットコントローラ２００については、後でより詳しく説明する。
【００２０】
次に、図２〜図５を参照しつつ、センサユニット３００の構成の一例を説明する。
【００２１】
図２〜図５に示すように、センサユニット３００は、レーザスキャナ３２０と、カメラ３１０と、センサコントローラ３３０とを有する。
【００２２】
レーザスキャナ３２０は、レーザ光源３２１と、回転ミラー３２２（走査部）と、モータ３２３と、角度検出器３２４とを備える。レーザ光源３２１は、スリット状のレーザ光（以下、「レーザスリット光」という）Ｌを照射する。回転ミラー３２２は、レーザ光源３２１から照射されたレーザスリット光Ｌを受光し、ワークＷ等へ向けて反射させ、ワークＷ等へ投影させる。モータ３２３は、回転ミラー３２２を回転させ、回転ミラー３２２の回転角度を変化させる。モータ３２３により回転ミラー３２２を回転させることにより、ワークＷ等の投影対象となる複数の投影領域からなる全投影領域ＴＴ内のワークＷ等上でのレーザスリット光Ｌの投影部位を、矢印Ａで示す方向（所定の走査方向。以下、「走査方向Ａ」という）へ移動させることができる。角度検出器３２４は、回転ミラー３２２の回転角度を検出する。
【００２３】
カメラ３１０は、上記のように全投影領域ＴＴ内のワークＷ等上でのレーザスリット光Ｌの投影部位が走査方向Ａへ移動する際に、その移動する投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を、所望のフレームレート（間隔）で連続撮像する。具体的には、カメラ３１０は、レーザスリット光Ｌの投影部位が、全投影領域ＴＴの反走査方向（矢印Ａで示す方向の反対方向）側端部の投影領域で生じてから、走査方向Ａに順次移動し、全投影領域ＴＴの走査方向Ａ側端部の投影領域に至るまでの間（つまり、全投影領域ＴＴの全域にわたる間）、連続撮像を行う。そして、カメラ３１０は、上記連続撮像に対応する複数の撮像フレームＦ（画像データ。後述の図６参照）を出力する。図６に、カメラ３１０から出力された撮像フレームＦの一例を示す。図６に示すように、撮像フレームＦには、全投影領域ＴＴ内のワークＷ等の外観と、上記のように刻々と移動していく当該ワークＷ等上でのレーザスリット光Ｌの投影部位の挙動とが含まれている。
【００２４】
センサコントローラ３３０は、例えば演算器や記憶装置等を有するコンピュータで構成され、センサユニット３００全体の動作を制御する。このセンサコントローラ３３０は、カメラ３１０から出力された複数の撮像フレームＦに基づいて、ストッカ２０内の複数のワークＷをそれぞれ検出し、それら複数のワークＷそれぞれの三次元形状を検出する。センサコントローラ３３０については、後でより詳しく説明する。
【００２５】
次に、図７を参照しつつ、センサコントローラ３３０の機能的構成の一例を説明する。
【００２６】
図７に示すように、センサコントローラ３３０は、光源制御部３４１と、モータ制御部３４２と、画像取得部３３１と、画像記憶部３３２と、距離画像生成部３３３と、距離画像記憶部３３４と、連携制御部３３５と、検出部３４０と、合成画像生成部３３６と、合成画像記憶部３３７とを備える。
【００２７】
光源制御部３４１は、上記レーザ光源３２１を制御し、レーザスリット光Ｌを照射させる。モータ制御部３４２は、上記角度検出器３２４により検出された回転ミラー３２２の回転角度情報を入力し、その入力した回転角度情報に基づいて、上記モータ３２３を制御し、回転ミラー３２２を回転させる。
【００２８】
画像取得部３３１は、上記カメラ３１０から出力された複数の撮像フレームＦを取得する。画像取得部３３１により取得された複数の撮像フレームＦは、画像記憶部３３２に記憶される。
【００２９】
距離画像生成部３３３は、カメラ３１０が複数回の連続撮像を行う１回のスキャン（撮像工程）ごとに、画像記憶部３３２に記憶された当該スキャンでの複数の撮像フレームＦを用いて、三角測量の原理により、カメラ３１０とワークＷ等との距離を算出する。そして、距離画像生成部３３３は、全投影領域ＴＴ内のワークＷ等の外観画像に、上記算出した距離情報を含ませた、１つの距離画像ＤＰ（三次元形状画像。後述の図９、図１１、図１３等参照）を生成する。なお、以下では、説明の便宜上、各スキャンでの、１回目の撮像に対応する撮像フレームＦを「撮像フレームＦ１」、２回目の撮像に対応する撮像フレームＦを「撮像フレームＦ２」、３回目の撮像に対応する撮像フレームＦを「撮像フレームＦ３」、・・・（以下同様）という。
【００３０】
連携制御部３３５は、複数回のスキャンのそれぞれで、カメラ３１０が複数回の連続撮像を行うと共に、距離画像生成部３３３が上記カメラ３１０による複数回の連続撮像に対応する複数の撮像フレームＦを用いることで上記１つの距離画像ＤＰを生成するように、カメラ３１０及び距離画像生成部３３３を連携して制御する。この連携制御部３３５は、複数回のスキャンのうち、最初に実行される１回目のスキャン（当初撮像工程）と、１回目スキャンの後に実行される２回目以降のスキャン（間引き撮像工程。１，２，３，４，５，６，７，８，９・・・回目のスキャン）とでは、互いに異なる制御処理を実行する。さらに、連携制御部３３５は、２回目以降のスキャンのうち、Ｎ回目（Ｎは２以上の偶数）のスキャン（２，４，６，８・・・回目のスキャン）と、Ｎ＋１回目のスキャン（３，５，７，９・・・回目のスキャン）とでは、互いに異なる制御処理を実行する。
【００３１】
以下、１回目のスキャン時に連携制御部３３５の制御により実行される処理、Ｎ回目のスキャン時に連携制御部３３５の制御により実行される処理、及び、Ｎ＋１回目のスキャン時に連携制御部３３５の制御により実行される処理を順次説明する。なお、以下では、説明の便宜上、全投影領域ＴＴが互いに面積の等しい１６個の投影領域Ｔ１〜Ｔ１６（後述の図８、図１０、図１２等参照）からなり、１回目のスキャン時にカメラ３１０が連続撮像するＫ回（Ｋは正の整数）が１６回（つまりＫ＝１６）であると共に、２回目以降のスキャン時にカメラ３１０が連続撮像するＫ／ｎ回（ｎは２以上の整数）が８回（つまりｎ＝２）である場合を説明する。但し、実際には、全投影領域ＴＴはもっと多数（例えば４８０個）の投影領域からなり、１回目のスキャン時及び２回目以降のスキャン時にカメラ３１０が連続撮像する回数はもっと多い。
【００３２】
まず、図８及び図９を参照しつつ、１回目のスキャン時に連携制御部３３５の制御により実行される処理を説明する。
【００３３】
図８及び図９において、１回目のスキャンでは、連携制御部３３５の制御により、カメラ３１０が、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６の全てに対し順次１６回の連続撮像を行う。すなわち、カメラ３１０は、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ１となるタイミング、投影領域Ｔ２となるタイミング、投影領域Ｔ３となるタイミング、・・・、投影領域Ｔ１４となるタイミング、投影領域Ｔ１５となるタイミング、投影領域Ｔ１６となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像する。そして、カメラ３１０は、上記１６回の連続撮像に対応する１６個の撮像フレームＦ１〜Ｆ１６（図９上段参照）を出力する。
【００３４】
すると、連携制御部３３５の制御により、距離画像生成部３３３が、画像記憶部３３２に記憶された当該１回目のスキャンでの１６個の撮像フレームＦ１〜Ｆ１６を用いることで、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６の全てに対応した１つの距離画像ＤＰ（図９下段参照）を生成する。なお、以下では、説明の便宜上、１回目のスキャンでの距離画像ＤＰを「距離画像ＤＰ１」という。すなわち、距離画像生成部３３３は、当該１回目のスキャンでの１６個の撮像フレームＦ１〜Ｆ１６を用いて、カメラ３１０と投影領域Ｔ１〜Ｔ１６（つまり、全投影領域ＴＴの全域）内のワークＷ等との距離を算出する。そして、距離画像生成部３３３は、全投影領域ＴＴ内のワークＷ等の外観画像の、投影領域Ｔ１〜Ｔ１６に対応する部分ｐ１〜ｐ１６（つまり、全投影領域ＴＴの全域に対応する全体ｐｐ）に、上記算出した距離情報を含ませた、上記距離画像ＤＰ１を生成する。図９下段に示すように、距離画像ＤＰ１は、全投影領域ＴＴ内のワークＷ等の外観画像の全体ｐｐに距離情報を含む。従って、この距離画像ＤＰ１を用いることで、検出部３４０は、ストッカ２０内の複数のワークＷそれぞれの三次元形状を検出することが可能である（後述）。１回目のスキャン時に距離画像生成部３３３により生成された距離画像ＤＰ１は、距離画像記憶部３３４に記憶されると共に、検出部３４０へ出力される。
【００３５】
次に、図１０及び図１１を参照しつつ、Ｎ回目のスキャン時に連携制御部３３５の制御により実行される処理を説明する。
【００３６】
図１０及び図１１において、Ｎ回目のスキャンでは、連携制御部３３５の制御により、カメラ３１０が、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６のうち、合計面積が全投影領域ＴＴの１／２となるように間引き分割された８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５に対し順次８回の連続撮像を行う。すなわち、カメラ３１０は、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ１となるタイミング、投影領域Ｔ３となるタイミング、投影領域Ｔ５となるタイミング、投影領域Ｔ７となるタイミング、投影領域Ｔ９となるタイミング、投影領域Ｔ１１となるタイミング、投影領域Ｔ１３となるタイミング、投影領域Ｔ１５となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像する。そして、カメラ３１０は、上記８回の連続撮像に対応する８個の撮像フレームＦ１〜Ｆ８（図１１上段参照）を出力する。
【００３７】
すると、連携制御部３３５の制御により、距離画像生成部３３３が、画像記憶部３３２に記憶された当該Ｎ回目のスキャンでの８個の撮像フレームＦ１〜Ｆ８を用いることで、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６のうち、上記８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５に対応した１つの距離画像ＤＰ（図１１下段参照）を生成する。なお、以下では、説明の便宜上、Ｎ回目のスキャンでの距離画像ＤＰを「距離画像ＤＰＮ」という。すなわち、距離画像生成部３３３は、当該Ｎ回目のスキャンでの８個の撮像フレームＦ１〜Ｆ８を用いて、カメラ３１０と投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５内のワークＷ等との距離を算出する。そして、距離画像生成部３３３は、全投影領域ＴＴ内のワークＷ等の外観画像の、投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５に対応する部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５に、上記算出した距離情報を含ませた、上記距離画像ＤＰＮを生成する。図１１下段に示すように、距離画像ＤＰＮは、全投影領域ＴＴ内のワークＷ等の外観画像の部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５に距離情報を含む。Ｎ回目のスキャン時に距離画像生成部３３３により生成された距離画像ＤＰＮは、距離画像記憶部３３４に記憶される。
【００３８】
次に、図１２及び図１３を参照しつつ、Ｎ＋１回目のスキャン時に連携制御部３３５の制御により実行される処理を説明する。
【００３９】
図１２及び図１３において、Ｎ＋１回目のスキャンでは、連携制御部３３５の制御により、カメラ３１０が、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６のうち、合計面積が全投影領域ＴＴの１／２となるように間引き分割され上記８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５相互間をそれぞれ埋めるように配置される８個の投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６に対し順次８回の連続撮像を行う。すなわち、カメラ３１０は、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ２となるタイミング、投影領域Ｔ４となるタイミング、投影領域Ｔ６となるタイミング、投影領域Ｔ８となるタイミング、投影領域Ｔ１０となるタイミング、投影領域Ｔ１２となるタイミング、投影領域Ｔ１４となるタイミング、投影領域Ｔ１６となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像する。つまり、連携制御部３３５の制御により、当該Ｎ＋１回目のスキャンにおける１スキャン（１工程）中でのカメラ３１０の撮像タイミングと、上記Ｎ回目のスキャンにおける１スキャン中でのカメラ３１０の撮像タイミングとは、各スキャンの開始を基準として互いに交互のタイミングとなるようにずらされている。そして、カメラ３１０は、上記８回の連続撮像に対応する８個の撮像フレームＦ１〜Ｆ８（図１３上段参照）を出力する。
【００４０】
すると、連携制御部３３５の制御により、距離画像生成部３３３が、画像記憶部３３２に記憶された当該Ｎ＋１回目のスキャンでの８個の撮像フレームＦ１〜Ｆ８を用いることで、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６のうち、上記８個の投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６に対応した１つの距離画像ＤＰ（図１３下段参照）を生成する。なお、以下では、説明の便宜上、Ｎ＋１回目のスキャンでの距離画像ＤＰを「距離画像ＤＰＮ１」という。すなわち、距離画像生成部３３３は、当該Ｎ＋１回目のスキャンでの８個の撮像フレームＦ１〜Ｆ８を用いて、カメラ３１０と投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６内のワークＷ等との距離を算出する。そして、距離画像生成部３３３は、全投影領域ＴＴ内のワークＷ等の外観画像の、投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６に対応する部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６に、上記算出した距離情報を含ませた、上記距離画像ＤＰＮ１を生成する。図１１下段に示すように、距離画像ＤＰＮ１は、全投影領域ＴＴ内のワークＷ等の外観画像の部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６に距離情報を含む。Ｎ＋１回目のスキャン時に距離画像生成部３３３により生成された距離画像ＤＰＮ１は、距離画像記憶部３３４に記憶される。
【００４１】
なお、上記Ｎ回目のスキャンを第１間引き撮像工程に対応させた場合には、上記８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５が分割投影領域及び第１分割投影領域に対応し、当該８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５に対応した１つの距離画像ＤＰＮが第１三次元形状画像に対応すると共に、上記Ｎ＋１回目のスキャンが第２間引き撮像工程に対応し、上記８個の投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６が分割投影領域及び第２分割投影領域に対応し、当該８個の投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６に対応した１つの距離画像ＤＰＮ１が第２三次元形状画像に対応する。逆に、上記Ｎ＋１回目のスキャンを第１間引き撮像工程に対応させた場合には、上記８個の投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６が分割投影領域及び第１分割投影領域に対応し、当該８個の投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６に対応した１つの距離画像ＤＰＮ１が第１三次元形状画像に対応すると共に、上記Ｎ回目のスキャンが第２間引き撮像工程に対応し、上記８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５が分割投影領域及び第２分割投影領域に対応し、当該８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５に対応した１つの距離画像ＤＰＮが第２三次元形状画像に対応する。
【００４２】
図７に示すように、検出部３４０は、上記１回目のスキャンが終了した後には、距離画像生成部３３３から出力された当該１回目のスキャンでの距離画像ＤＰ１を取得する。そして、検出部３４０は、上記取得した距離画像ＤＰ１を用いて、ストッカ２０内の複数のワークＷそれぞれの三次元形状を検出する。その後は、検出部３４０は、上記２回目以降の各スキャンが終了するごとに、後述のように合成画像生成部３３６から出力される、最新のスキャンに基づく距離画像ＤＰとその直前のスキャンに基づく距離画像ＤＰとの合成による合成画像ＣＰ（後述）を取得する。そして、検出部３４０は、上記取得した合成画像ＣＰを用いて、ストッカ２０内の複数のワークＷそれぞれの三次元形状を検出する。検出部３４０による検出結果を表す検出信号は、上記ロボットコントローラ２００へ出力される。
【００４３】
これにより、ロボットコントローラ２００は、検出部３４０から出力された上記検出信号を取得する。そして、ロボットコントローラ２００は、上記取得した検出信号で表される三次元形状情報に基づいて、１つのワークＷ（例えば最も保持し易いワークＷ等）を保持して移送するように、上記ロボット１００を動作させる。なお、この例では、各スキャンが終了するごとに、ロボット１００が１つのワークＷを移送（つまり、スキャン→１つのワークＷを移送→スキャン→１つのワークＷを移送・・・）する場合を説明するが、開示の実施形態はこれに限定されるものではない。例えば、各スキャンが終了するごとに、ロボット１００が複数（例えば２つ）のワークＷを順次移送（つまり、スキャン→１つのワークＷを移送→１つのワークＷを移送→スキャン→１つのワークＷを移送→１つのワークＷを移送・・・）してもよい。
【００４４】
合成画像生成部３３６は、上記２回目以降の各スキャンが終了するごとに、距離画像記憶部３３４に記憶された時間的に互いに異なる複数回（この例では２回）のスキャンに基づく複数（この例では２つ）の距離画像ＤＰを合成し、合成画像ＣＰ（後述の図１４参照）を生成する。合成画像ＣＰは、ストッカ２０内の複数のワークＷそれぞれの三次元形状を検出するための画像である。具体的には、合成画像生成部３３６は、上記２回目以降の各スキャンが終了するごとに、最新のスキャンに基づく距離画像ＤＰと、その直前のスキャンに基づく距離画像ＤＰとを合成し、合成画像ＣＰを生成する。すなわち、合成画像生成部３３６は、最新のスキャンに基づく距離画像ＤＰのうち距離情報を含む部分と、その直前のスキャンに基づく距離画像ＤＰのうち部分とを合成する。これにより、合成画像生成部３３６は、最新のスキャンに基づく距離画像ＤＰで距離情報を含まない部分を、その直前のスキャンに基づく距離画像ＤＰで距離情報を含む部分で補完する。このようにすることで、合成画像生成部３３６は、合成画像ＣＰを生成する。図１４に示すように、合成画像ＣＰは、全投影領域ＴＴ内のワークＷ等の外観画像の全体ｐｐに距離情報を含む。従って、この合成画像ＣＰを用いることで、検出部３４０は、ストッカ２０内の複数のワークＷそれぞれの三次元形状を検出することが可能である。
【００４５】
ここで、本実施形態では、前述のように、１回目のスキャンが終了した後には、当該１回目のスキャンでの距離画像ＤＰ１を用いて、その後は、２回目以降の各スキャンが終了するごとに、最新のスキャンに基づく距離画像ＤＰとその直前のスキャンに基づく距離画像ＤＰとの合成による合成画像ＣＰを用いて、検出部３４０により検出された三次元形状情報に基づいて、ロボット１００が１つのワークＷを移送するようになっている。従って、上記のようにロボット１００が１つのワークＷを移送した場合には、その直後に実行された最新のスキャンでの距離画像ＤＰとの合成に用いられる、その直前のスキャンでの距離画像ＤＰは、上記１つのワークＷの移送が反映されていない（つまり、上記移送された１つのワークＷが元の位置に残ったままの姿となっている）。このため、合成画像生成部３３６が、上記直前のスキャンでの距離画像ＤＰを無条件にそのまま用いて、上記最新のスキャンでの距離画像ＤＰと合成し、合成画像ＣＰを生成すると、信頼性の低い内容を含んだままの合成画像ＣＰとなり、好ましくない。
【００４６】
そこで本実施形態では、上記のようにロボット１００が１つのワークＷを移送した場合には、合成画像生成部３３６は、その直後に実行された最新のスキャンでの距離画像ＤＰと、その直前のスキャンでの距離画像ＤＰのうち上記移送された１つのワークＷに対応する部分を除いた画像とを合成し、合成画像ＣＰを生成する。すなわち、合成画像生成部３３６は、上記直前のスキャンでの距離画像ＤＰのうち、上記移送された１つのワークＷに対応する部分を除外する。そして、合成画像生成部３３６は、上記最新のスキャンでの距離画像ＤＰのうち距離情報を含む部分と、除外処理後の上記直前のスキャンに基づく距離画像ＤＰのうち距離情報を含む部分とを合成し、合成画像ＣＰを生成する。
【００４７】
例えば、図１５に示すように、Ｎ＋１回目（例えば３回目）のスキャンが終了した後に、当該Ｎ＋１回目のスキャンでの距離画像ＤＰＮ１とその直前のＮ回目（例えば２回目）のスキャンでの距離画像ＤＰＮとの合成による合成画像ＣＰ（ここでは「合成画像ＣＰＮ１」という）を用いて検出部３４０により検出された三次元形状情報に基づいて、ロボット１００がある１つのワークＷ（ここでは「ワークＷａ」という）を移送した場合を考える。なお、図１５に示す例では、説明の便宜上、Ｎ回目のスキャンの後で、かつＮ＋１回目のスキャンの前に、ロボット１００によるワークＷの移送が行われなかったとしている。この場合には、Ｎ＋１回目のスキャンでの距離画像ＤＰＮ１のうち、上記移送されたワークＷａに対応する部分が除外される。図１５中では、当該除外処理後の距離画像ＤＰＮ１（ここでは「距離画像ＤＰＮ１′」という）のうちで、データが欠落した部分（除外されたワークＷａに対応する部分）を符号Ｐａで示している。そして、Ｎ＋１回目の直後のＮ＋２回目（例えば４回目）のスキャンでの距離画像ＤＰ（ここでは「距離画像ＤＰＮ２」という）のうち、距離情報を含む部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５と、除外処理後のＮ＋１回目のスキャンに基づく距離画像ＤＰＮ１′のうち、距離情報を含む部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６とが合成され、合成画像ＣＰ（ここでは「合成画像ＣＰＮ２」という）が生成される。この合成画像ＣＰＮ２には、除外処理後のＮ＋１回目のスキャンに基づく距離画像ＤＰＮ１′におけるデータが欠落した部分Ｐａに起因してデータが欠落した部分Ｐａａがあり、この部分Ｐａａは、当該合成画像ＣＰＮ２を用いて検出部３４０により実行される上記検出の対象外とされる。
【００４８】
またここで、上記直前のスキャンの後で、かつ上記最新のスキャンの前に、例えばロボット１００によるワークＷの移送が行われたときに移送されない他のワークＷに配置ずれや荷崩れが生じた等の何らかの事情で、ワークＷの配置状況に変化が生じた場合があり得る。このとき、上記ワークＷの配置状況に変化が生じた部分は、比較的広範囲にわたって及んでいる可能性がある。この場合、最新のスキャンでの距離画像ＤＰとの合成に用いられる、その直前のスキャンでの距離画像ＤＰは、上記ワークＷの配置状況の変化が反映されていない（つまり、上記ワークＷの配置状況の変化が起きていない元の姿のままとなっている）。このため、合成画像生成部３３６が、上記ワークＷの配置状況に変化が生じた部分について合成画像ＣＰを生成すると、信頼性の低い内容を含んだままの合成画像ＣＰとなり、好ましくない。
【００４９】
そこで本実施形態では、上記ワークＷの配置状況に変化が生じたと推定される場合、具体的には、上記最新のスキャンでの距離画像ＤＰと、その直前のスキャンに基づいて生成された合成画像ＣＰとの、対応する部位（又は当該部位の近傍部位。以下同様）におけるデータ内容の偏差が所定の閾値よりも大きかった場合には、合成画像生成部３３６は、最新のスキャンでの距離画像ＤＰのうちデータ内容の偏差が閾値よりも大きかった部位を除いた画像と、その直前のスキャンでの距離画像ＤＰのうちデータ内容の偏差が閾値よりも大きかった部位を除いた画像とを合成し、合成画像ＣＰを生成する。すなわち、合成画像生成部３３６は、上記最新のスキャンでの距離画像ＤＰのうち、データ内容の偏差が閾値よりも大きかった部位を除外すると共に、上記直前のスキャンでの距離画像ＤＰについても、当該部位を除外する。そして、合成画像生成部３３６は、除外処理後の上記最新のスキャンに基づく距離画像ＤＰのうち距離情報を含む部分と、除外処理後の上記直前のスキャンに基づく距離画像ＤＰのうち距離情報を含む部分とを合成し、合成画像ＣＰを生成する。なお、上記データ内容の偏差が閾値よりも大きかった部位が所定の範囲よりも大きかった場合には、除外処理を行わずに上記１回目のスキャンからやり直してもよい。
【００５０】
例えば、図１６に示すように、Ｎ＋１回目（例えば３回目）のスキャンの後で、かつその直後のＮ＋２回目（例えば４回目）のスキャンの前に、ある１つのワークＷ（ここでは「ワークＷｂ」という）に配置ずれが生じてワークＷの配置状況に変化が生じたため、Ｎ＋２回目のスキャンでの距離画像ＤＰ（ここでは「距離画像ＤＰＮ２」という）と、Ｎ＋１回目のスキャンでの距離画像ＤＰ（ここでは「距離画像ＤＰＮ１」という）及びその直前のＮ回目（例えば２回目）のスキャンでの距離画像ＤＰ（ここでは「距離画像ＤＰＮ」という）の合成による合成画像ＣＰ（ここでは「合成画像ＣＰＮ１」という）との、対応する部位Ｒｂにおけるデータ内容の偏差が閾値よりも大きかった場合を考える。なお、図１６に示す例では、説明の便宜上、Ｎ回目のスキャンの後で、かつＮ＋１回目のスキャンの前に、ロボット１００によるワークＷの移送が行われなかったと共に、Ｎ＋１回目のスキャンの後で、かつＮ＋２回目のスキャンの前に、ロボット１００によるワークＷの移送が行われなかったとしている。この場合には、Ｎ＋２回目のスキャンでの距離画像ＤＰＮ２のうち、データ内容の偏差が閾値よりも大きかった部位Ｒｂが除外されると共に、Ｎ＋１回目のスキャンでの距離画像ＤＰＮ１についても、当該部位Ｒｂが除外される。図１６中では、当該除外処理後の距離画像ＤＰＮ１（ここでは「距離画像ＤＰＮ１′」という）及び距離画像ＤＰＮ２（ここでは「距離画像ＤＰＮ２′」という）のうちで、データが欠落した部分（除外された部位Ｒｂに対応する部分）を符号Ｐｂで示している。そして、除外処理後のＮ＋２回目のスキャンに基づく距離画像ＤＰＮ２′のうち、距離情報を含む部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５と、除外処理後のＮ＋１回目のスキャンに基づく距離画像ＤＰＮ１′のうち、距離情報を含む部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６とが合成され、合成画像ＣＰ（ここでは「合成画像ＣＰＮ２」という）が生成される。この合成画像ＣＰＮ２には、除外処理後のＮ＋２回目及びＮ＋１回目のスキャンに基づく距離画像ＤＰＮ２′，ＤＰＮ１′におけるデータが欠落した部分Ｐｂ，Ｐｂに起因してデータが欠落した部分Ｐｂがあり、この部位Ｐｂは、当該合成画像ＣＰを用いて検出部３４０により実行される上記検出の対象外とされる。
【００５１】
次に、図１７〜図１９を参照しつつ、各スキャンが終了するごとに合成画像生成部３３６により生成される合成画像ＣＰの一例を説明する。
【００５２】
図１７〜図１９に示す例では、１回目のスキャンが終了した後に、当該１回目のスキャンでの距離画像ＤＰ１を用いて検出された三次元形状情報に基づいて、ロボット１００によりある１つのワークＷ（ここでは「ワークＷ１」という）が移送されている。この場合、２回目のスキャンが終了した後に、１回目のスキャンでの距離画像ＤＰ１のうち、上記移送されたワークＷ１に対応する部分が除外される。図１７中では、当該除外処理後の距離画像ＤＰ１（ここでは「距離画像ＤＰ１′」という）のうちで、データが欠落した部分（除外されたワークＷ１に対応する部分）を符号Ｐ１で示している。そして、２回目のスキャンでの距離画像ＤＰ２のうち、距離情報を含む部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５と、除外処理後の１回目のスキャンに基づく距離画像ＤＰ１′のうち、距離情報を含む部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６とが合成され、合成画像ＣＰ（ここでは「合成画像ＣＰ２」という）が生成される。この合成画像ＣＰ２には、除外処理後の１回目のスキャンに基づく距離画像ＤＰ１′におけるデータが欠落した部分Ｐ１に起因してデータが欠落した部分Ｐ１１があり、この部分Ｐ１１は、当該合成画像ＣＰ２を用いて実行される上記検出の対象外とされる。
【００５３】
その後、上記２回目のスキャンに基づいて生成された合成画像ＣＰ２を用いて検出された三次元形状情報に基づいて、ロボット１００によりある１つのワークＷ（ここでは「ワークＷ２」という）が移送されている。この場合、３回目のスキャンが終了した後に、２回目のスキャンでの距離画像ＤＰ２のうち、上記移送されたワークＷ２に対応する部分が除外される。図１７中では、当該除外処理後の距離画像ＤＰ２（ここでは「距離画像ＤＰ２′」という）のうちで、データが欠落した部分（除外されたワークＷ２に対応する部分）を符号Ｐ２で示している。そして、３回目のスキャンでの距離画像ＤＰ３のうち、距離情報を含む部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６と、除外処理後の２回目のスキャンに基づく距離画像ＤＰ２′のうち、距離情報を含む部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５とが合成され、合成画像ＣＰ（ここでは「合成画像ＣＰ３」という）が生成される。この合成画像ＣＰ３には、除外処理後の２回目のスキャンに基づく距離画像ＤＰ２′におけるデータが欠落した部分Ｐ２に起因してデータが欠落した部分Ｐ２２があり、この部分Ｐ２２は、当該合成画像ＣＰ３を用いて実行される上記検出の対象外とされる。なお、この合成画像ＣＰ３では、上記合成画像ＣＰ２においてデータが欠落していた部分Ｐ１１に、データが復帰している。
【００５４】
そして、上記３回目のスキャンに基づいて生成された合成画像ＣＰ３を用いて検出された三次元形状情報に基づいて、ロボット１００によりある１つのワークＷ（ここでは「ワークＷ３」という）が移送されている。また、上記３回目のスキャンの後で、かつ４回目のスキャンの前に、ある１つのワークＷ（ここでは「ワークＷ０」という）に配置ずれが生じてワークＷの配置状況に変化が生じたため、４回目のスキャンでの距離画像ＤＰ４と、上記３回目のスキャンに基づいて生成された合成画像ＣＰ３との、対応する部位Ｒ０におけるデータ内容の偏差が閾値よりも大きくなっている。この場合、４回目のスキャンが終了した後に、当該４回目のスキャンでの距離画像ＤＰ４のうち、データ内容の偏差が閾値よりも大きかった部位Ｒ０が除去される。また、３回目のスキャンでの距離画像ＤＰ３のうち、上記移送されたワークＷ３に対応する部分と、データ内容の偏差が閾値よりも大きかった部位Ｒ０が除外される。図１８中では、当該除外処理後の距離画像ＤＰ４（ここでは「距離画像ＤＰ４′」という）及び距離画像ＤＰ３（ここでは「距離画像ＤＰ３′」という）のうちで、データが欠落した部分（除外された部位Ｒ０に対応する部分）を符号Ｐ０で示すと共に、データが欠落した部分（除外されたワークＷ３に対応する部分）を符号Ｐ３で示す。そして、除外処理後の４回目のスキャンに基づく距離画像ＤＰ４′のうち、距離情報を含む部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５と、除外処理後の３回目のスキャンでの距離画像ＤＰ３′のうち、距離情報を含む部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６とが合成され、合成画像ＣＰ（ここでは「合成画像ＣＰ４」という）が生成される。この合成画像ＣＰ４には、除外処理後の４回目及び３回目のスキャンに基づく距離画像ＤＰ４′，ＤＰ３′におけるデータが欠落した部分Ｐ０，Ｐ０に起因してデータが欠落した部分Ｐ０があると共に、除外処理後の３回目のスキャンに基づく距離画像ＤＰ３′におけるデータが欠落した部分Ｐ３に起因してデータが欠落した部分Ｐ３３があり、これら部分Ｐ０，Ｐ３３は、当該合成画像ＣＰ４を用いて実行される上記検出の対象外とされる。なお、この合成画像ＣＰ４では、上記合成画像ＣＰ３においてデータが欠落していた部分Ｐ２２に、データが復帰している。
【００５５】
その後、上記４回目のスキャンに基づいて生成された合成画像ＣＰ４を用いて検出された三次元形状情報に基づいて、ロボット１００によりある１つのワークＷ（ここでは「ワークＷ４」という）が移送されている。この場合、５回目のスキャンが終了した後に、除外処理後の４回目のスキャンに基づく距離画像ＤＰ４′のうち、上記移送されたワークＷ４に対応する部分が除外される。図１８中では、当該除外処理後の距離画像ＤＰ４′（ここでは「距離画像ＤＰ４″」という）のうちで、データが欠落した部分（除外されたワークＷ４に対応する部分）を符号Ｐ４で示している。そして、５回目のスキャンでの距離画像ＤＰ５のうち、距離情報を含む部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６と、除外処理後の４回目のスキャンに基づく距離画像ＤＰ４″のうち、距離情報を含む部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５とが合成され、合成画像ＣＰ（ここでは「合成画像ＣＰ５」という）が生成される。この合成画像ＣＰ５には、除外処理後の４回目のスキャンに基づく距離画像ＤＰ４″におけるデータが欠落した部分Ｐ０，Ｐ４に起因してデータが欠落した部分Ｐ００，Ｐ４４があり、これら部分Ｐ００，Ｐ４４は、当該合成画像ＣＰ５を用いて実行される上記検出の対象外とされる。なお、この合成画像ＣＰ５では、上記合成画像ＣＰ４においてデータが欠落していた部分Ｐ３３に、データが復帰すると共に、上記合成画像ＣＰ４においてデータが欠落していた部分Ｐ０のうち、除外処理後の３回目のスキャンに基づく距離画像ＤＰ３″におけるデータが欠落した部分Ｐ０に起因する部分にデータが復帰して上記部分Ｐ４４になっている。
【００５６】
そして、上記５回目のスキャンに基づいて生成された合成画像ＣＰ５を用いて検出された三次元形状情報に基づいて、ロボット１００によりある１つのワークＷ（ここでは「ワークＷ５」という）が移送されている。この場合、６回目のスキャンが終了した後に、５回目のスキャンでの距離画像ＤＰ５のうち、上記移送されたワークＷ５に対応する部分が除外される。図１９中では、当該除外処理後の距離画像ＤＰ５（ここでは「距離画像ＤＰ５′」という）のうちで、データが欠落した部分（除外されたワークＷ５に対応する部分）を符号Ｐ５で示している。そして、６回目のスキャンでの距離画像ＤＰ６のうち、距離情報を含む部分ｐ１，ｐ３，ｐ５，ｐ７，ｐ９，ｐ１１，ｐ１３，ｐ１５と、除外処理後の５回目のスキャンに基づく距離画像ＤＰ５′のうち、距離情報を含む部分ｐ２，ｐ４，ｐ６，ｐ８，ｐ１０，ｐ１２，ｐ１４，ｐ１６とが合成され、合成画像ＣＰ（ここでは「合成画像ＣＰ６」という）が生成される。この合成画像ＣＰ６には、除外処理後の５回目のスキャンに基づく距離画像ＤＰ５′におけるデータが欠落した部分Ｐ５に起因してデータが欠落した部分Ｐ５５があり、この部分Ｐ５５は、当該合成画像ＣＰ６を用いて実行される上記検出の対象外とされる。なお、この合成画像ＣＰ６では、上記合成画像ＣＰ５においてデータが欠落していた部分Ｐ００，Ｐ４４に、データが復帰している。
【００５７】
次に、図２０を参照しつつ、センサユニット３００のセンサコントローラ３３０が実行する物体検出方法の制御手順の一例を説明する。
【００５８】
図２０において、このフローに示す処理は、例えばセンサユニット３００の電源がオンされることにより開始される。
【００５９】
まず、ステップＳ１０で、センサコントローラ３３０は、スキャン回数をカウントするための変数Ｃの値を１にリセットする。
【００６０】
その後、ステップＳ２０に移り、センサコントローラ３３０は、光源制御部３４１により、レーザ光源３２１を制御し、レーザスリット光Ｌを照射させる。
【００６１】
そして、ステップＳ３０で、センサコントローラ３３０は、モータ制御部３４２により、角度検出器３２４から入力した回転ミラー３２２の回転角度情報に基づいて、モータ３２３を制御し、回転ミラー３２２を回転させる。これにより、回転ミラー３２２が受光して反射させるレーザスリット光Ｌの、全投影領域ＴＴ内のワークＷ等上への投影部位を、走査方向Ａへ移動させる。
【００６２】
その後、ステップＳ４０に移り、センサコントローラ３３０は、この時点での変数Ｃの値を検出することにより、何回目のスキャンであるかを検出する。この時点での変数Ｃの値が１である場合、つまり今回のスキャンが１回目のスキャンである場合には、ステップＳ５０に移る。
【００６３】
ステップＳ５０では、センサコントローラ３３０は、連携制御部３３５により、カメラ３１０を制御し、所望のフレームレート（撮像タイミング）で、上記ステップＳ２０での制御により移動する投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を１６回連続撮像させ、対応する１６個の撮像フレームＦ１〜Ｆ１６を出力させる。すなわち、このステップＳ５０での連携制御部３３５の制御により、カメラ３１０は、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ１となるタイミング、投影領域Ｔ２となるタイミング、投影領域Ｔ３となるタイミング、・・・、投影領域Ｔ１４となるタイミング、投影領域Ｔ１５となるタイミング、投影領域Ｔ１６となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像し、これら１６回の連続撮像に対応する１６個の撮像フレームＦ１〜Ｆ１６を出力する。
【００６４】
そして、ステップＳ６０で、センサコントローラ３３０は、画像取得部３３１により、上記ステップＳ５０でカメラ３１０から出力された１６個の撮像フレームＦ１〜Ｆ１６を取得する。取得された１６個の撮像フレームＦ１〜Ｆ１６は、画像記憶部３３２に記憶される。
【００６５】
その後、ステップＳ７０に移り、センサコントローラ３３０は、連携制御部３３５により、距離画像生成部３３３を制御し、画像記憶部３３２に記憶された当該１回目のスキャンでの１６個の撮像フレームＦ１〜Ｆ１６を用いて、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６の全てに対応した１つの距離画像ＤＰ１を生成させる。なお、１回目のスキャン時に距離画像ＤＰ１を生成する手法は、前述した通りである。生成された距離画像ＤＰ１は、距離画像記憶部３３４に記憶されると共に、検出部３４０へ出力される。
【００６６】
そして、ステップＳ８０で、センサコントローラ３３０は、検出部３４０により、上記ステップＳ７０で距離画像生成部３３３から出力された距離画像ＤＰ１を取得する。そして、センサコントローラ３３０は、検出部３４０により、上記取得した距離画像ＤＰ１を用いて、ストッカ２０内の複数のワークＷそれぞれの三次元形状を検出する。検出部３４０による検出結果を表す検出信号は、ロボットコントローラ２００へ出力される。これにより、ロボットコントローラ２００は、このステップＳ８０で検出部３４０から出力された検出信号を取得し、その取得した検出信号で表される三次元形状情報に基づいて、１つのワークＷを保持して移送するように、ロボット１００を動作させる。その後、後述のステップＳ１７０に移る。
【００６７】
一方、ステップＳ４０において、この時点での変数Ｃの値が前述のＮである場合、つまり今回のスキャンがＮ回目のスキャンである場合には、ステップＳ９０に移る。
【００６８】
ステップＳ９０では、センサコントローラ３３０は、連携制御部３３５により、カメラ３１０を制御し、所望のフレームレート（撮像タイミング）で、上記ステップＳ２０での制御により移動する投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を８回連続撮像させ、対応する８個の撮像フレームＦ１〜Ｆ８を出力させる。すなわち、このステップＳ９０での連携制御部３３５の制御により、カメラ３１０は、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ１となるタイミング、投影領域Ｔ３となるタイミング、投影領域Ｔ５となるタイミング、投影領域Ｔ７となるタイミング、投影領域Ｔ９となるタイミング、投影領域Ｔ１１となるタイミング、投影領域Ｔ１３となるタイミング、投影領域Ｔ１５となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像し、これら８回の連続撮像に対応する８個の撮像フレームＦ１〜Ｆ８を出力する。
【００６９】
その後、ステップＳ１００に移り、センサコントローラ３３０は、画像取得部３３１により、上記ステップＳ９０でカメラ３１０から出力された８個の撮像フレームＦ１〜Ｆ８を取得する。取得された８個の撮像フレームＦ１〜Ｆ８は、画像記憶部３３２に記憶される。
【００７０】
そして、ステップＳ１１０で、センサコントローラ３３０は、連携制御部３３５により、距離画像生成部３３３を制御し、画像記憶部３３２に記憶された当該Ｎ回目のスキャンでの８個の撮像フレームＦ１〜Ｆ８を用いて、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６のうち、上記８個の投影領域Ｔ１，Ｔ３，Ｔ５，Ｔ７，Ｔ９，Ｔ１１，Ｔ１３，Ｔ１５に対応した１つの距離画像ＤＰＮを生成させる。なお、Ｎ回目のスキャン時に距離画像ＤＰＮを生成する手法は、前述した通りである。生成された距離画像ＤＰＮは、距離画像記憶部３３４に記憶される。その後、後述のステップＳ１５０に移る。
【００７１】
一方、ステップＳ４０において、この時点での変数Ｃの値が前述のＮ＋１である場合、つまり今回のスキャンがＮ＋１回目のスキャンである場合には、ステップＳ１２０に移る。
【００７２】
ステップＳ１２０では、センサコントローラ３３０は、連携制御部３３５により、カメラ３１０を制御し、所望のフレームレート（撮像タイミング）で、上記ステップＳ２０での制御により移動する投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を８回連続撮像させ、対応する８個の撮像フレームＦ１〜Ｆ８を出力させる。すなわち、このステップＳ１２０での連携制御部３３５の制御により、カメラ３１０は、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ２となるタイミング、投影領域Ｔ４となるタイミング、投影領域Ｔ６となるタイミング、投影領域Ｔ８となるタイミング、投影領域Ｔ１０となるタイミング、投影領域Ｔ１２となるタイミング、投影領域Ｔ１４となるタイミング、投影領域Ｔ１６となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像し、これら８回の連続撮像に対応する８個の撮像フレームＦ１〜Ｆ８を出力する。
【００７３】
その後、ステップＳ１３０に移り、センサコントローラ３３０は、画像取得部３３１により、上記ステップＳ１２０でカメラ３１０から出力された８個の撮像フレームＦ１〜Ｆ８を取得する。取得された８個の撮像フレームＦ１〜Ｆ８は、画像記憶部３３２に記憶される。
【００７４】
そして、ステップＳ１４０で、センサコントローラ３３０は、連携制御部３３５により、距離画像生成部３３３を制御し、画像記憶部３３２に記憶された当該Ｎ＋１回目のスキャンでの８個の撮像フレームＦ１〜Ｆ８を用いて、全投影領域ＴＴに含まれる１６個の投影領域Ｔ１〜Ｔ１６のうち、上記８個の投影領域Ｔ２，Ｔ４，Ｔ６，Ｔ８，Ｔ１０，Ｔ１２，Ｔ１４，Ｔ１６に対応した１つの距離画像ＤＰＮ１を生成させる。なお、Ｎ＋１回目のスキャン時に距離画像ＤＰＮ１を生成する手法は、前述した通りである。生成された距離画像ＤＰＮ１は、距離画像記憶部３３４に記憶される。
【００７５】
その後、ステップＳ１５０に移り、センサコントローラ３３０は、合成画像生成部３３６により、距離画像記憶部３３４に記憶された、この時点での変数Ｃの値に対応するスキャン（最新のスキャン）に基づく距離画像ＤＰと、その直前のスキャンに基づく距離画像ＤＰとを合成し、合成画像ＣＰを生成する。なお、合成画像ＣＰを生成する手法は、前述した通りである。生成された合成画像ＣＰは、合成画像記憶部３３７に記憶されると共に、検出部３４０へ出力される。
【００７６】
そして、ステップＳ１６０で、センサコントローラ３３０は、検出部３４０により、上記ステップＳ１５０で合成画像生成部３３６から出力された合成画像ＣＰを取得する。そして、センサコントローラ３３０は、検出部３４０により、上記取得した合成画像ＣＰを用いて、ストッカ２０内の複数のワークＷそれぞれの三次元形状を検出する。検出部３４０による検出結果を表す検出信号は、ロボットコントローラ２００へ出力される。これにより、ロボットコントローラ２００は、このステップＳ１６０で検出部３４０から出力された検出信号を取得し、その取得した検出信号で表される三次元形状情報に基づいて、１つのワークＷを保持して移送するように、ロボット１００を動作させる。
【００７７】
その後、ステップＳ１７０に移り、センサコントローラ３３０は、変数Ｃの値に１を加えた後、上記ステップＳ２０に戻り同様の手順を繰り返す。
【００７８】
なお、このフローに示す処理は、例えばセンサユニット３００の電源がオフにされることにより終了される。
【００７９】
以上説明したように、本実施形態のセンサユニット３００では、光切断法によりワークＷの検出が行われる。レーザ光源３２１から照射されたレーザスリット光ＬがワークＷ等に投影され、そのレーザスリット光Ｌの投影部位を含むワークＷ等の外観が、カメラ３１０により撮像される。このとき、回転ミラー３２２を回転させることにより、レーザスリット光ＬのワークＷ等への投影部位が走査方向Ａへ移動される。この移動時に、所望のフレームレートでカメラ３１０が連続撮像を行うことで、刻々と移動していく投影部位の挙動をそれぞれ含む複数の撮像フレームＦがカメラ３１０から出力される。これら複数の撮像フレームＦを用いて、距離画像生成部３３３が、ワークＷ等の１つの距離画像ＤＰを生成する。これにより、ワークＷの三次元形状を検出することができる。
【００８０】
このような通常の光切断による手法では、上記のようにワークＷ等上においてレーザスリット光Ｌの投影部位を走査方向Ａに移動させて撮像を行うとき、ワークＷ等の反走査方向側の端部で投影部位が生じてから当該投影部位が走査方向Ａに順次移動しさらに投影部位が走査方向Ａ側の端部に至るまでの間（言い換えれば、ワークＷ等上の走査方向Ａに沿うほぼ全域にわたる間）、まんべんなく撮像を行わなければならない。この結果、上記連続撮像を行うために比較的長い時間を要し、検出処理の効率化が難しい。
【００８１】
そこで本実施形態では、上記のようにワークＷ等上を走査方向Ａへ順次移動する１回のスキャンでの複数の撮像フレームＦを用いてワークＷの三次元形状を検出するのではなく、複数回のスキャンそれぞれにおける複数の撮像フレームＦを互いに合成した画像を用いて、ワークＷの三次元形状を検出する。すなわち、（時間的に互いに異なる）複数回のスキャンに基づいて上記距離画像生成部３３３がそれぞれ生成した複数の距離画像ＤＰを、合成画像生成部３３６が合成して合成画像ＣＰが生成される。そして、この合成画像ＣＰによりワークＷの三次元形状が検出される。
【００８２】
上記のように複数回のスキャンでの画像を合成する手法とすることにより、最新のスキャンにおける撮像フレームＦ以外は既に実行済みのスキャンにおける古い撮像フレームＦを流用することで、ワークＷの形状検出の際に撮像のために必要な時間を、最新の撮像フレームＦを得るための１回のスキャン分の時間とすることができる。この結果、従来手法に比べて検出処理の大幅な短縮化を図り、処理効率の向上を図ることができる。あるいは、従来手法と同等の時間をかけてもよい場合には、１回のスキャンにおいて許容できる時間を延ばすことができるので、比較的撮像速度が遅いカメラ３１０を用いることができる。この結果、従来手法よりもコストダウンを図ることができる。あるいは、従来手法と同等の時間をかけつつ撮像速度も低下させなくてよい場合には、上記複数回のスキャンの個数倍に、分解能を増大させることもできる。
【００８３】
また、本実施形態では特に、回転ミラー３２２を回転させることにより、レーザスリット光ＬのワークＷ等への投影部位を走査方向Ａに移動させる。このように、回転ミラー３２２を用いることにより、ワークＷ等へ向けて反射させるレーザスリット光Ｌを走査方向Ａに容易に移動させることができる。
【００８４】
また、本実施形態では特に、連携制御部３３５の制御に基づいて、最新のスキャン（２回目以降のスキャン）における８回の連続撮像による８個の撮像フレームＦ１〜Ｆ８以外は、その直前に実行済みの１回のスキャンにおける８回の連続撮像による８個の撮像フレームＦ１〜Ｆ８が流用され、合成画像ＣＰが生成される。これにより、ワークＷの形状検出の際に撮像のために必要な時間を、従来手法の１／２とすることができ、検出処理の大幅な短縮化を図り、処理効率を２倍に向上することができる。あるいは、従来手法と同等の時間をかけてもよい場合には、１回のスキャンにおいて許容できる時間を２倍に延ばすことができるので、撮像速度が従来よりも１／２だけ遅いカメラ３１０を用いることができる。この結果、従来手法よりもコストダウンを図ることができる。あるいは、従来手法と同等の時間をかけつつ撮像速度も低下させなくてよい場合には、分解能を２倍に増大させることもできる。
【００８５】
但し、最初に行われるスキャン（１回目のスキャン）では、それ以前のスキャンが存在しないことから、上記手法は不可能である。本実施形態では、連携制御部３３５の制御に基づいて、１回目のスキャンでは、２回目以降のスキャンと異なり、ワークＷ等の全投影領域ＴＴに対しカメラ３１０が順次１６回の連続撮像を行い、その１６個の撮像フレームＦ１〜Ｆ１６が用いられる。これにより、間引きによる短縮が不可能な１回目のスキャンにおいても、確実に１つの距離画像ＤＰを生成することができる。
【００８６】
また、本実施形態では特に、Ｎ回目のスキャン及びＮ＋１回目のスキャンの撮像タイミングが、各スキャンの開始基準で互いに交互のタイミングとなるようにずらされる。これにより、Ｎ回目のスキャンにおける８個の撮像フレームＦ１〜Ｆ８とＮ＋１回目のスキャンにおける８個の撮像フレームＦ１〜Ｆ８とを、互いに補完し合うような位置づけとすることができる。この結果、それらの合成により、従来手法と同様の、ワークＷの三次元形状を検出するための画像を容易かつ確実に得ることができる。
【００８７】
また、本実施形態のロボットシステム１では、ロボット１００により、ストッカ２０内の複数のワークＷが順次保持され移送される。本実施形態では、上記移送の際、ロボットコントローラ２００の制御に基づいて、上記のようにしてセンサユニット３００により検出された各ワークＷの三次元形状に応じて、ロボット１００が動作する。これにより、上記複数のワークＷの移送を円滑かつ確実に行うことができる。また、前述したようにして各ワークＷの三次元形状が迅速に効率よく検出されることから、ロボット１００による上記複数のワークＷの移送を、確実に円滑に行うことができる。
【００８８】
また、本実施形態では特に、ロボット１００がある１つのワークＷの移送を実行した場合、合成画像生成部３３６が、その直前のスキャンで生成された距離画像ＤＰのうち、上記移送された１つのワークＷに対応する部分を除き、その除いた画像を、その直後のスキャンで生成された距離画像ＤＰと合成し、合成画像ＣＰを生成する。これにより、信頼性の低い部分の内容を除外し、ロボット１００の制御を行うことができる。この結果、ロボット１００の誤動作や無意味な動作を回避し、良好なワークＷの移送作業を行うことができる。なお、上述のようにして不確かな内容を含んだ距離画像ＤＰは、その後、新たにスキャンが行われ同一箇所に最新の状況を反映したデータが上書きされることで、再度信頼性の高い内容とすることができる。
【００８９】
また、本実施形態では特に、ワークＷの配置状況に変化が生じたと推定される場合、具体的には、最新のスキャンで生成された距離画像ＤＰと、その直前のスキャン時に生成された合成画像ＣＰとの、対応する部位におけるデータ内容の偏差が所定の閾値よりも大きかった場合、合成画像生成部３３６が、最新のスキャンで生成された距離画像ＤＰのうち、データ内容の偏差が閾値よりも大きかった部位を除外する。また、その直前のスキャンで生成された距離画像ＤＰにおける当該部位についても除外する。そして、それら除外処理を行った２つの距離画像ＤＰを合成することで、合成画像ＣＰを生成する。これにより、上記同様、信頼性の低い部分の内容を除外し、ロボット１００の制御を行うことができる。この結果、ロボット１００の誤動作や無意味な動作を回避し、良好なワークＷの移送作業を行うことができる。
【００９０】
なお、実施の形態は、上記内容に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【００９１】
例えば、上記実施形態においては、カメラ３１０は、Ｎ回目のスキャン時には、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ１となるタイミング、投影領域Ｔ３となるタイミング、投影領域Ｔ５となるタイミング、投影領域Ｔ７となるタイミング、投影領域Ｔ９となるタイミング、投影領域Ｔ１１となるタイミング、投影領域Ｔ１３となるタイミング、投影領域Ｔ１５となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像し、Ｎ＋１回目のスキャン時には、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ２となるタイミング、投影領域Ｔ４となるタイミング、投影領域Ｔ６となるタイミング、投影領域Ｔ８となるタイミング、投影領域Ｔ１０となるタイミング、投影領域Ｔ１２となるタイミング、投影領域Ｔ１４となるタイミング、投影領域Ｔ１６となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像していたが、本開示の実施形態はこれに限定されるものではない。すなわち、カメラ３１０は、Ｎ回目のスキャン時には、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ２となるタイミング、投影領域Ｔ４となるタイミング、投影領域Ｔ６となるタイミング、投影領域Ｔ８となるタイミング、投影領域Ｔ１０となるタイミング、投影領域Ｔ１２となるタイミング、投影領域Ｔ１４となるタイミング、投影領域Ｔ１６となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像し、Ｎ＋１回目のスキャン時には、上記移動するレーザスリット光Ｌの投影部位が、投影領域Ｔ１となるタイミング、投影領域Ｔ３となるタイミング、投影領域Ｔ５となるタイミング、投影領域Ｔ７となるタイミング、投影領域Ｔ９となるタイミング、投影領域Ｔ１１となるタイミング、投影領域Ｔ１３となるタイミング、投影領域Ｔ１５となるタイミングのそれぞれで、当該投影部位を含む全投影領域ＴＴ内のワークＷ等の外観を撮像してもよい。
【００９２】
また、上記実施形態においては、２回目以降のスキャンでは、カメラ３１０は、合計面積が全投影領域ＴＴの１／２となるように間引かれた複数の投影領域に対し順次Ｋ／２回の連続撮像を行い、距離画像生成部３３３は、Ｋ／２個の撮像フレームＦを用いて１つの距離画像ＤＰを生成し、合成画像生成部３３６は、２つの距離画像ＤＰを合成して合成画像ＣＰを生成していた、つまりｎ＝２としていた。しかしながら、ｎは２以上の整数であれば特に限定されるものではなく、ｎ＝３としてもよいし、ｎ＝４としてもよいし、ｎをもっと大きい整数としてもよい。例えば、ｎ＝３とした場合には、２回目以降のスキャンでは、カメラ３１０は、合計面積が全投影領域ＴＴの１／３となるように間引かれた複数の投影領域に対し順次Ｋ／３回の連続撮像を行い、距離画像生成部３３３は、Ｋ／３個の撮像フレームＦを用いて１つの距離画像ＤＰを生成し、合成画像生成部３３６は、３つの距離画像ＤＰを合成して合成画像ＣＰを生成する。
【００９３】
また、上記実施形態においては、１回目のスキャン時には、２回目以降のスキャン時のような間引きスキャンを行っていなかったが、本開示の実施形態はこれに限定されるものではなく、１回目のスキャン時にも間引きスキャンを行ってもよい。
【００９４】
また、上記実施形態においては、センサユニット３００をロボットシステム１に適用していたが、センサユニットはロボットシステム以外にも適用可能である。
【００９５】
また、図７中に示す矢印は、信号の流れの一例を示すものであり、信号の流れ方向を限定するものではない。
【００９６】
また、図２０に示すフローチャートは、実施の形態を図示する手順に限定するものではなく、趣旨及び技術的思想を逸脱しない範囲内で手順の追加・削除又は順番の変更等をしてもよい。
【００９７】
また、以上既に述べた以外にも、上記実施形態等による手法を適宜組み合わせて利用してもよい。
【００９８】
その他、一々例示はしないが、上記実施形態等は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【００９９】
１                ロボットシステム
２０              ストッカ（容器）
１００            ロボット
２００            ロボットコントローラ（コントローラ）
３００            センサユニット（物体検出装置）
３１０            カメラ
３２１            レーザ光源
３２２            回転ミラー（走査部）
３３３            距離画像生成部
３３５            連携制御部
３３６            合成画像生成部
ＣＰ              合成画像
ＤＰ              距離画像（三次元形状画像）
Ｆ                撮像フレーム（画像データ）
Ｌ                レーザスリット光（スリット状のレーザ光）
Ｔ１〜Ｔ１６      投影領域
ＴＴ              全投影領域
Ｗ                ワーク（物体）
【図１】
2014159988.tif 000003
【図２】
2014159988.tif 000004
【図３】
2014159988.tif 000005
【図４】
2014159988.tif 000006
【図５】
2014159988.tif 000007
【図６】
2014159988.tif 000008
【図７】
2014159988.tif 000009
【図８】
2014159988.tif 000010
【図９】
2014159988.tif 000011
【図１０】
2014159988.tif 000012
【図１１】
2014159988.tif 000013
【図１２】
2014159988.tif 000014
【図１３】
2014159988.tif 000015
【図１４】
2014159988.tif 000016
【図１５】
2014159988.tif 000017
【図１６】
2014159988.tif 000018
【図１７】
2014159988.tif 000019
【図１８】
2014159988.tif 000020
【図１９】
2014159988.tif 000021
【図２０】
2014159988.tif 000022