(57)【要約】【課題】同期制御の対象となる機器に固有の遅延時間を考慮した適切な同期制御を実現する。【解決手段】実施形態の制御装置１０は、照明装置の遅延時間と撮像装置の遅延時間とをデータ保持部１０２から読み出すデータ読み出し部１０３と、これらの遅延時間に基づいて、照明装置と撮像装置の少なくとも一方を、動作開始コマンドを受けてから動作を開始するまでの間に待機させる時間である待機時間を算出する待機時間算出部１０４と、照明装置に対する点灯開始コマンドと、撮像装置に対する撮像開始コマンドと、待機時間算出部１０４が算出した待機時間とを含む同報パケットを生成する同報パケット生成部１０５と、同報パケットをネットワークに送出する送信制御部１０６と、を備える。【選択図】図５
2017011573.tif 000002
【特許請求の範囲】
【請求項１】
第１の機器および第２の機器とネットワークを介して通信可能に接続された制御装置であって、
前記第１の機器に対応する第１の時間情報と前記第２の機器に対応する第２の時間情報とを記憶装置から読み出す読み出し部と、
前記第１の時間情報と前記第２の時間情報とに基づいて、前記第１の機器と前記第２の機器の少なくとも一方を、動作開始コマンドを受けてから動作を開始するまでの間に待機させる時間である待機時間を算出する算出部と、
前記第１の機器に対する動作開始コマンドと、前記第２の機器に対する動作開始コマンドと、前記待機時間と、を含む同報パケットを生成する生成部と、
前記同報パケットを前記ネットワークに送出する送出部と、を備える制御装置。
【請求項２】
前記第１の時間情報は、前記第１の機器が動作を開始してから所定の動作状態になるまでの第１の遅延時間を含み、
前記第１の遅延時間を前記第１の機器から取得して前記記憶装置に格納する遅延時間取得部をさらに備える、請求項１に記載の制御装置。
【請求項３】
前記第２の時間情報は、前記第２の機器が動作を開始してから所定の動作状態になるまでの第２の遅延時間を含み、
前記第２の遅延時間を前記第２の機器から取得して前記記憶装置に格納する遅延時間取得部をさらに備える、請求項１または２に記載の制御装置。
【請求項４】
前記第１の時間情報は、前記第１の機器に対して応答要求を送信してから前記第１の機器からの応答を受信するまでの第１の応答時間を含み、
前記第１の応答時間を計測して前記記憶装置に格納する応答時間計測部をさらに備える、請求項１乃至３のいずれか一項に記載の制御装置。
【請求項５】
前記第２の時間情報は、前記第２の機器に対して応答要求を送信してから前記第２の機器からの応答を受信するまでの第２の応答時間を含み、
前記第２の応答時間を計測して前記記憶装置に格納する応答時間計測部をさらに備える、請求項１乃至４のいずれか一項に記載の制御装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の制御装置と、前記第１の機器と、前記第２の機器と、を含む機器制御システム。
【請求項７】
前記第１の機器は、被写体を照明する照明装置であり、
前記第２の機器は、前記照明装置により照明された前記被写体を撮像する撮像装置である、請求項６に記載の機器制御システム。
【請求項８】
前記制御装置は、前記撮像装置が撮像した画像に基づいて、前記被写体の位置、形状、傾きの少なくとも一つを認識する画像処理部をさらに備える、請求項７に記載の機器制御システム。
【請求項９】
前記被写体を把持するロボットをさらに含み、
前記制御装置は、前記画像処理部の認識結果に基づいて前記ロボットの動作を制御する、請求項８に記載の機器制御システム。
【請求項１０】
前記照明装置は、動作開始コマンドに応じて動作を開始してから所定時間が経過しても前記被写体を照明する光源が点灯しない場合にエラー情報を前記ネットワークに送出し、
前記制御装置は、前記エラー情報を受信した場合に前記ロボットの動作を停止させる、請求項９に記載の機器制御システム。
【請求項１１】
第１の機器および第２の機器とネットワークを介して通信可能に接続されたコンピュータにより実行される機器制御方法であって、
前記第１の機器に対応する第１の時間情報と前記第２の機器に対応する第２の時間情報とを記憶装置から読み出すステップと、
前記第１の時間情報と前記第２の時間情報とに基づいて、前記第１の機器と前記第２の機器の少なくとも一方を、動作開始コマンドを受けてから動作を開始するまでの間に待機させる時間である待機時間を算出するステップと、
前記第１の機器に対する動作開始コマンドと、前記第２の機器に対する動作開始コマンドと、前記待機時間と、を含む同報パケットを生成するステップと、
前記同報パケットを前記ネットワークに送出するステップと、を含む機器制御方法。
【請求項１２】
第１の機器および第２の機器とネットワークを介して通信可能に接続されたコンピュータに、
前記第１の機器に対応する第１の時間情報と前記第２の機器に対応する第２の時間情報とを記憶装置から読み出す機能と、
前記第１の時間情報と前記第２の時間情報とに基づいて、前記第１の機器と前記第２の機器の少なくとも一方を、動作開始コマンドを受けてから動作を開始するまでの間に待機させる時間である待機時間を算出する機能と、
前記第１の機器に対する動作開始コマンドと、前記第２の機器に対する動作開始コマンドと、前記待機時間と、を含む同報パケットを生成する機能と、
前記同報パケットを前記ネットワークに送出する機能と、を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、機器制御システム、機器制御方法およびプログラムに関する。
【背景技術】
【０００２】
パターン光により照明された物体を撮像し、得られた画像を処理して物体の３次元形状を計測する方法が知られている。例えば位相シフト法と呼ばれる方法では、互いに位相をずらした正弦波縞パターン光により物体を照明し、その照明状態のもとで撮像した複数の縞パターン画像（輝度分布データ）を用いて、物体の３次元形状を求める。また、特許文献１には、以上のような方法によりワーク（物体）の位置情報（３次元形状）を求め、得られた位置情報を用いてロボットを駆動制御してワークのピッキング作業を行うピッキングシステムの技術が開示されている。
【０００３】
ところで、特許文献１に開示されるようなピッキングシステムが稼働する製造現場では、製造工程で使用する各機器をオフィスなどで普及しているＥｔｈｅｒｎｅｔ（登録商標）等のデータ通信用ネットワークに接続して統合したいというニーズが高まっている。これにより、遠隔で製造現場の状況をリアルタイムにきめ細かく把握することができ、不具合が生じても直ぐに対応が可能になるなど、企業全体の業務効率を高めることができる。また、Ｅｔｈｅｒｎｅｔ等のデータ通信用ネットワークは既に世界中に普及していてコストが十分に下がっているので、製造現場での経費節減の効果もある。
【０００４】
しかし、データ通信用ネットワークは、送信エラーがある程度発生することを想定したシステムになっている。例えばＥｔｈｅｒｎｅｔでは、複数の端末からの送信が同時に発生するとケーブル上で衝突（コリジョン）が発生する。その場合、ランダムな待ち時間の後に再送するという制御方式がとられている。このようなネットワークに上述のワークを撮像する撮像装置やワークを照明する照明装置を接続して同期制御する場合、例えば、ネットワークを通じてまず照明装置に対して点灯を指示し、次に撮像装置に対してワークの撮像を指示しようとして信号を送信する。このとき、コリジョン等の送信エラーが発生すると、照明装置は点灯しても撮像装置はワークの撮像を行うことができない、すなわち照明装置と撮像装置を同期して制御できないという問題が発生する。
【０００５】
このような問題の解決策の一つとして、例えば非特許文献１に記載の技術が提案されている。この技術は、複数の産業用ロボットを、既存のデータ通信用ネットワークの一つである無線ＬＡＮに接続し、同期して制御したい複数のロボットに対するデータを一つのパケットに統合してマルチキャスト（同報）送信しようとするものである。これによって、複数のロボットに対して同時に制御データを送信することが可能となる。また、仮にあるパケット送信でエラーが発生してもネットワークを通じて制御対象のロボット全てにそれを知らせることができるので、パケット送信エラーに起因して同期が失われる不都合を防止できる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、一般的にネットワークに接続されている機器は、パケットを受信してから所定の動作を開始するまでに各機器に固有の処理能力等による遅延時間が発生する。このため、非特許文献１に記載の技術のように、単にマルチキャストによって制御データを同時送信するだけでは、適切な同期制御はできないという問題が発生する。このような問題に対し、非特許文献１に記載の技術は具体的な解決手段を示しておらず、改善が求められる。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明は、第１の機器および第２の機器とネットワークを介して通信可能に接続された制御装置であって、前記第１の機器に対応する第１の時間情報と前記第２の機器に対応する第２の時間情報とを記憶装置から読み出す読み出し部と、前記第１の時間情報と前記第２の時間情報とに基づいて、前記第１の機器と前記第２の機器の少なくとも一方を、動作開始コマンドを受けてから動作を開始するまでの間に待機させる時間である待機時間を算出する算出部と、前記第１の機器に対する動作開始コマンドと、前記第２の機器に対する動作開始コマンドと、前記待機時間と、を含む同報パケットを生成する生成部と、前記同報パケットを前記ネットワークに送出する送出部と、を備える。
【発明の効果】
【０００８】
本発明によれば、ネットワークに接続された複数の機器を同期制御する場合に、各機器に固有の遅延時間を考慮した適切な同期制御を実現することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、ピッキングシステムの概要を説明するシステム構成図である。
【図２】図２は、Ｅｔｈｅｒｎｅｔのフレーム構造の一例を示す図である。
【図３】図３は、ＭＡＣアドレスの構成を説明する図である。
【図４】図４は、制御装置のハードウェア構成例を示すブロック図である。
【図５】図５は、制御装置の機能的な構成例を示すブロック図である。
【図６】図６は、同報パケットの構成例を示す図である。
【図７】図７は、照明装置の構成例を示す図である。
【図８】図８は、照明装置の動作例を説明するフローチャートである。
【図９】図９は、撮像装置の構成例を示す図である。
【図１０】図１０は、撮像装置の動作例を説明するフローチャートである。
【図１１】図１１は、制御装置の機能的な構成例を示すブロック図である。
【図１２】図１２は、照明装置の構成例を示す図である。
【図１３】図１３は、ＬＤの点灯を検知する手段の構成例を説明する図である。
【図１４】図１４は、ＬＤの点灯を検知する動作を説明するタイミングチャートである。
【図１５】図１５は、照明装置の動作例を説明するフローチャートである。
【図１６】図１６は、撮像装置の動作例を説明するフローチャートである。
【図１７】図１７は、制御装置の機能的な構成例を示すブロック図である。
【図１８】図１８は、照明装置の動作例を説明するフローチャートである。
【図１９】図１９は、撮像装置の動作例を説明するフローチャートである。
【図２０】図２０は、照明装置の構成例を示す図である。
【図２１】図２１は、照明装置の動作例を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照しながら、本発明に係る制御装置、機器制御システム、機器制御方法およびプログラムの実施形態について詳しく説明する。以下で示す実施形態では、本発明を適用した機器制御システムの一例として、ロボットを用いてワークのピッキング作業を行うピッキングシステムを例示する。ピッキングシステムは、パターン光により照明されたワークを撮像し、得られた画像を処理してワークの位置や形状、傾きなどを認識し、その認識結果に基づいてロボットを駆動制御する。このようなピッキングシステムに対して本発明を適用することで、ワークを照明する照明装置とワークを撮像する撮像装置との適切な同期制御が実現される。なお、本発明を適用可能なシステムは、ピッキングシステムに限定されるものではない。本発明は、ネットワークに接続された複数の機器の同期制御が求められる様々なシステムに対して有効に適用できる。
【００１１】
＜第１の実施形態＞
図１は、本実施形態のピッキングシステム１の概要を説明するシステム構成図である。このピッキングシステム１は、図１に示すように、ワークＷを照明する照明装置２０と、ワークＷを撮像する撮像装置３０と、ワークＷのピッキングを行うロボット４０と、ピッキングシステム１全体を制御する制御装置１０とを備える。これらの各機器は、例えばＥｔｈｅｒｎｅｔ等のデータ通信ネットワーク（以下、単に「ネットワーク」という。）５０に接続され、このネットワーク５０を介して相互にデータ通信が可能な構成となっている。
【００１２】
ロボット４０は、ロボットアーム４１およびロボットハンド４２と、これらを駆動する駆動部４３を備え、この駆動部４３がネットワーク５０に接続されている。ロボット４０によりワークＷのピッキングを行う場合、制御装置１０からロボット４０の駆動部４３に対して、ロボットアーム４１やロボットハンド４２の動作を制御するための制御データを含むパケットが送信される。駆動部４３は、制御装置１０から送信されたパケットを受信すると、受信したパケットに含まれる制御データに基づいて、ロボットアーム４１やロボットハンド４２を駆動する。これにより、ロボット４０によるワークＷのピッキングが行われる。
【００１３】
また、制御装置１０から照明装置２０および撮像装置３０に対しては、照明装置２０の点灯開始を指示するコマンドと、撮像装置３０の撮像開始を指示するコマンドと、後述の待機時間とを含む同報パケットが送信される。照明装置２０および撮像装置３０は、制御装置１０から送信された同報パケットを受信すると、受信した同報パケットに含まれるコマンドに従って点灯や撮像の動作を開始するが、その際、同報パケットに含まれる待機時間を待ってから、それぞれの動作を開始する。これにより、照明装置２０によるワークＷの照明と、撮像装置３０によるワークＷの撮像とが、適切な同期制御のもとで実施される。
【００１４】
照明装置２０による照明と同期して撮像装置３０により撮像されたワークＷの画像は、パケット化されて制御装置１０に送られる。制御装置１０は、撮像装置３０により撮像されたワークＷの画像を処理して、ワークＷの位置や形状、傾きなどを認識する。そして、制御装置１０は、その認識結果に基づいて、上述のロボットアーム４１やロボットハンド４２の動作を制御するための制御データを生成し、この制御データを含むパケットをロボット４０の駆動部４３に送信する。
【００１５】
制御装置１０は、ロボット４０がピッキングしたワークＷを移動させる動作をしている間に、次のワークＷのピッキングのために、照明装置２０および撮像装置３０に対して上述の同報パケットを送信する。これにより、照明装置２０による照明下で撮像装置３０による撮像が適切に行われ、撮像された画像が制御装置１０に送られる。そして、制御装置１０により次のワークＷの認識処理、ロボット３０の動作を制御するための制御データの生成、この制御データを含むパケットの送信が行われ、ロボット４０による次のワークＷのピッキングが行われる。本実施形態のピッキングシステム１では、すべてのワークＷのピッキングが完了するまで、以上の動作が繰り返される。
【００１６】
本実施形態のピッキングシステム１において、ネットワーク５０に接続された各機器間で送受信されるパケットの伝送は、ネットワーク５０の物理的な規格に従って行われる。例えばネットワーク５０の物理的な規格がＥｔｈｅｒｎｅｔの場合、各機器間で送受信されるパケットは、Ｅｔｈｅｒｎｅｔフレームのデータフィールドで伝送される。以下では、ネットワーク５０の物理的な規格がＥｔｈｅｒｎｅｔであるものとして説明する。ただし、これに限定されるものではなく、別の規格を採用する場合はその規格に従った形式でパケットの伝送を行えばよい。
【００１７】
図２は、Ｅｔｈｅｒｎｅｔのフレーム構造の一例を示す図であり、ＥｔｈｅｒｎｅｔＩＩフレームと呼ばれるフレームの形式を示している。このフレームは、図２に示すように、「プリアンブル」、「宛先ＭＡＣアドレス」、「送信元ＭＡＣアドレス」、「タイプ」、「データ」、および「ＦＣＳ」の各フィールドを有する。
【００１８】
「プリアンブル」は、Ｅｔｈｅｒｎｅｔ通信で送受信の同期をとり、フレームの始まりを合図するために用いる特別なビット列が格納されるフィールドである。「プリアンブル」は、ハードウェアにより生成され、受信後に破棄されるため、Ｅｔｈｅｒｎｅｔフレームのサイズには含まれない。
【００１９】
「宛先ＭＡＣアドレス」は、パケットの宛先となる機器のアドレスが格納されるフィールドである。「宛先ＭＡＣアドレス」は、ハードウェアで認識される。宛先が単一の機器の場合（ユニキャストの場合）、その機器に固有のＭＡＣアドレス（ユニキャストアドレス）が「宛先ＭＡＣアドレス」に格納される。宛先が同報グループに属する複数の機器の場合（マルチキャストの場合）、同報グループに割り当てられた同報アドレス（マルチキャストアドレス）が「宛先ＭＡＣアドレス」に格納される。また、宛先がネットワーク５０に接続されたすべての機器の場合（ブロードキャストの場合）、特定のブロードキャストアドレスが「宛先ＭＡＣアドレス」に格納される。
【００２０】
図３は、ＭＡＣアドレスの構成を説明する図である。ＭＡＣアドレスは、図３に示すように、先頭バイトのうちの１ビットで、当該ＭＡＣアドレスが同報アドレス（マルチキャストアドレス）またはブロードキャストアドレスであるか、あるいは機器固有のＭＡＣアドレス（ユニキャストアドレス）であるかを識別できる構成となっている。同報グループに属する複数の機器は、機器に固有のＭＡＣアドレスのほかに、同報グループに割り当てられた共通の同報アドレスを記憶している。そして、上述の「宛先ＭＡＣアドレス」に格納されたアドレスが同報アドレスである場合、その同報アドレスと自身が記憶している同報アドレスとが一致すると、「データ」のフィールドに格納されたパケットを受信する。
【００２１】
図２に戻り、「送信元ＭＡＣアドレス」は、パケットを送信する装置に固有のＭＡＣアドレスが格納されるフィールドである。
【００２２】
「タイプ」は、次に続く「データ」のフィールドに格納するデータの上位層プロトコルの識別情報が格納されるフィールドである。
【００２３】
「データ」は、最小で４６バイト、最大で１５００バイトのデータが格納されるフィールドである。有意のデータが４６バイト未満である場合は、ダミーのデータ「０」を追加して４６バイトのデータとする。これをパディングという。本実施形態では、上位層プロトコルがＴＣＰ／ＩＰである場合を想定する。この場合、「データ」にはＩＰパケットの形式のデータが格納される。
【００２４】
「ＦＣＳ」は、受信したフレームに誤りがないかどうかを調べるためのＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）の値が格納されるフィールドである。
【００２５】
本実施形態のピッキングシステム１では、同期制御の対象となる照明装置２０と撮像装置３０とにより同報グループが構成され、これら照明装置２０と撮像装置３０に対して共通の同報アドレスが割り当てられている。制御装置１０は、照明装置２０と撮像装置３０に対して上述の同報パケットを送信する場合、「宛先ＭＡＣアドレス」のフィールドにその同報アドレスを格納し、「データ」のフィールドに同報パケットを格納してネットワーク５０に送出する。これにより、照明装置２０と撮像装置３０は、制御装置１０により生成されてネットワーク５０に送出された上述の同報パケットを、ネットワーク５０を介して受信することができる。
【００２６】
以下では、本実施形態のピッキングシステム１における上述の同期制御に関わる制御装置１０、照明装置２０および撮像装置３０の具体的な構成例について、さらに詳しく説明する。
【００２７】
まず、制御装置１０の具体例について説明する。制御装置１０は、例えば一般的に広く使用されているＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等をハードウェアとして用いることができる。図４は、制御装置１０のハードウェア構成例を示すブロック図である。制御装置１０は、例えば図４に示すように、コンピュータシステムを構成するＣＰＵ１１、ＲＡＭ１２およびＲＯＭ１３と、各種のデータやプログラムなどを格納するＨＤＤ１４と、画像処理エンジン１５と、通信Ｉ／Ｆ１６とを備え、これらがバス１７によって相互に接続された構成とすることができる。
【００２８】
画像処理エンジン１５は、撮像装置３０により撮像された画像を処理するものであり、例えばＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等が用いられる。本実施形態では、撮像装置３０により撮像されたワークＷの画像をこの画像処理エンジン１５で処理することにより、ワークＷの位置、形状、傾きの少なくとも一つを含む３次元形状を認識する構成としている。
【００２９】
通信Ｉ／Ｆ１６は、制御装置１０がネットワーク５０を通じて他の機器と通信するためのインタフェースである。本実施形態では、上述したようにネットワーク５０の物理的な規格がＥｔｈｅｒｎｅｔであることを想定するため、Ｅｔｈｅｒｎｅｔに対応した通信Ｉ／Ｆ１６を用いる。
【００３０】
図５は、制御装置１０の機能的な構成例を示すブロック図である。制御装置１０は、機能的な構成として、図５に示すように、制御対象決定部１０１と、データ保持部１０２（記憶装置）と、データ読み出し部１０３（読み出し部）と、待機時間算出部１０４（算出部）と、同報パケット生成部１０５（生成部）と、送信制御部１０６（送出部）とを備える。このうち、データ保持部１０２は、例えば図４に示すＨＤＤ１４等を用いて実現することができる。また、制御対象決定部１０１、データ読み出し部１０３、待機時間算出部１０４、同報パケット生成部１０５、および送信制御部１０６は、例えば、図４に示すＣＰＵ１１が、ＲＡＭ１２を作業領域として利用して、ＲＯＭ１３やＨＤＤ１４等に格納された所定のプログラムを実行することにより実現される。なお、制御対象決定部１０１、データ読み出し部１０３、待機時間算出部１０４、同報パケット生成部１０５、および送信制御部１０６は、その一部または全部を、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の専用のハードウェアを用いて実現することもできる。
【００３１】
なお、図５では、照明装置２０と撮像装置３０との同期制御に関わる制御装置１０の機能的な構成のみを図示しているが、制御装置１０は、このほかにも、画像処理エンジン１５での処理により認識されたワークＷの３次元形状の認識結果に基づいて上述の制御データを生成する機能や、生成した制御データを含むパケットをロボット４０の駆動部４３に送信する機能などを有する。ただし、これらの機能は公知技術であるため、ここでは詳細な説明は省略する。
【００３２】
制御対象決定部１０１は、同期制御の対象となる機器を決定する。本実施形態では、照明装置２０と撮像装置３０を同期制御の対象とするため、制御対象決定部１０１は、これら照明装置２０と撮像装置３０のそれぞれの識別情報を、同期制御の対象となる機器の識別情報としてデータ読み出し部１０３に渡す。また、制御対象決定部１０１は、照明装置２０と撮像装置３０とが属する同報グループに割り当てられた同報アドレスを送信制御部１０６に渡す。
【００３３】
データ保持部１０２は、適切な同期制御を実現するための後述の待機時間の算出に必要な時間情報を、各機器の識別情報と対応付けて保持する。本実施形態では、この時間情報として、機器が動作を開始してから所定の動作状態になるまでの遅延時間が、データ保持部１０２に保持されているものとする。この遅延時間は、それぞれの機器に固有の時間情報であり、例えば、予めシミュレーション等を行うことで計測され、それぞれの機器の識別情報と対応付けてデータ保持部１０２に格納される。
【００３４】
データ読み出し部１０３は、制御対象決定部１０１から渡される識別情報に対応付けてデータ保持部１０２に格納されている時間情報を、データ保持部１０２から読み出す。本実施形態では、同期制御の対象となる機器の識別情報として、照明装置２０と撮像装置３０のそれぞれの識別情報が制御対象決定部１０１からデータ読み出し部１０３に渡されるため、データ読み出し部１０３は、データ保持部１０２が保持する時間情報（遅延時間）のうち、照明装置２０に対応する遅延時間と、撮像装置３０に対応する遅延時間とを読み出して、待機時間算出部１０４に渡す。照明装置２０に対応する遅延時間は、照明装置２０が光源（ＬＤ）の点灯動作を開始してから実際に光源が点灯状態になるまでの時間である。撮像装置３０に対応する遅延時間は、撮像装置３０が撮像動作を開始してから実際に撮像が行われるまでの時間である。
【００３５】
待機時間算出部１０４は、データ読み出し部１０３によりデータ保持部１０２から読み出された時間情報に基づいて、同期制御の対象となる機器の少なくともいずれかを、動作開始コマンドを受けてから動作を開始するまでの間に待機させる時間である待機時間を算出する。本実施形態では、照明装置２０と撮像装置３０を同期制御の対象とするため、待機時間算出部１０４は、照明装置２０に対応する遅延時間と、撮像装置３０に対応する遅延時間とに基づいて、照明装置２０と撮像装置３０の少なくとも一方を待機させるための待機時間を算出する。
【００３６】
照明装置２０の待機時間は、照明装置２０が点灯開始コマンドを受けてから光源の点灯動作を開始するまでの待機時間である。また、撮像装置３０の待機時間は、撮像装置３０が撮像開始コマンドを受けてから、撮像動作を開始するまでの待機時間である。照明装置２０と撮像装置３０の適切な同期制御を上述の同報パケットにより実現するためには、ネットワーク５０の遅延時間を無視できるとすると、照明装置２０と撮像装置３０のうち、遅延時間が長い方に合わせて、遅延時間が短い方を待機させればよい。したがって、最も単純な例では、照明装置２０の遅延時間と撮像装置３０の遅延時間との差分を求め、その差分の値を、遅延時間が短い方の待機時間とすればよい。また、遅延時間が長い方の待機時間は０とすればよい。つまり、照明装置２０の遅延時間をＴｄ１、撮像装置３０の遅延時間をＴｄ２とすると、照明装置２０と撮像装置３０のうち、遅延時間が短い方の待機時間Ｔｗ＿Ａおよび遅延時間が長い方の待機時間Ｔｗ＿Ｂは、下記の式（１）および式（２）で表すことができる。
Ｔｗ＿Ａ＝｜Ｔｄ１−Ｔｄ２｜  ・・・（１）
Ｔｗ＿Ｂ＝０  ・・・（２）
【００３７】
なお、遅延時間が長い方の待機時間Ｔｗ＿Ｂを０とすることで、例えば何らかの障害発生が懸念されるシステム構成の場合は、遅延時間が長い方の待機時間Ｔｗ＿Ｂとして十分に短い時間Ｔｎを割り当ててもよい。この場合、照明装置２０と撮像装置３０のうち、遅延時間が短い方の待機時間Ｔｗ＿Ａおよび遅延時間が長い方の待機時間Ｔｗ＿Ｂは、下記の式（３）および式（４）で表すことができる。
Ｔｗ＿Ａ＝｜Ｔｄ１−Ｔｄ２｜＋Ｔｎ  ・・・（３）
Ｔｗ＿Ｂ＝Ｔｎ  ・・・（４）
【００３８】
待機時間算出部１０４により算出された待機時間は、同報パケット生成部１０５に渡される。同報パケット生成部１０５は、同期制御の対象となる機器に対する動作開始コマンドと、待機時間算出部１０４により算出された待機時間とを含む同報パケットを生成する。本実施形態では、照明装置２０と撮像装置３０を同期制御の対象とするため、同報パケット生成部１０５は、図６に示すように、照明装置２０に対する点灯開始コマンドＣＭ１と、照明装置２０の待機時間Ｔｗ１と、撮像装置３０に対する撮像開始コマンドＣＭ２と、撮像装置３０の待機時間Ｔｗ２とを含む同報パケットを生成する。なお、照明装置２０が撮像装置３０よりも上述の遅延時間が短い場合は、照明装置２０の待機時間Ｔｗ１として上記式（１）または式（３）で表される値が入り、撮像装置３０の待機時間Ｔｗ２として上記式（２）または式（４）で表される値が入る。逆に、撮像装置３０が照明装置２０よりも上述の遅延時間が短い場合は、照明装置２０の待機時間Ｔｗ１として上記式（２）または式（４）で表される値が入り、撮像装置３０の待機時間Ｔｗ２として上記式（１）または式（３）で表される値が入る。
【００３９】
同報パケット生成部１０５により生成された同報パケットは、送信制御部１０６に渡される。送信制御部１０６は、同報パケット生成部１０５により生成された同報パケットを図２に示したフレームの「データ」フィールドに格納するデータとして、通信Ｉ／Ｆ１６に出力する。また、送信制御部１０６は、制御対象決定部１０１から渡された同報アドレスを「宛先ＭＡＣアドレス」のフィールドに格納するアドレス、制御装置１０に割り当てられた固有のＭＡＣアドレスを「送信元ＭＡＣアドレス」のフィールドに格納するアドレスとして、それぞれ通信Ｉ／Ｆ１６に出力する。これにより、「データ」フィールドに上述の同報パケットが格納されたフレームがネットワーク５０に送出され、上述の同報パケットが照明装置２０と撮像装置３０のそれぞれで受信されることになる。
【００４０】
次に、照明装置２０の具体例について説明する。図７は、照明装置２０の構成例を示す図である。照明装置２０は、例えば図７に示すように、通信Ｉ／Ｆ２１と、照明制御部２２と、タイマ２３と、ＬＤ駆動部２４と、ＬＤモジュール２５と、照明光学系２６とを備える。
【００４１】
通信Ｉ／Ｆ２１は、照明装置２０がネットワーク５０を通じて他の機器と通信するためのインタフェースであり、制御装置１０の通信Ｉ／Ｆ１６と同様に、例えばＥｔｈｅｒｎｅｔに対応したものが用いられる。通信Ｉ／Ｆ２１は、ネットワーク５０を通じて伝送されるフレームの「宛先ＭＡＣアドレス」を元に、「データ」フィールドに格納されているパケットが自装置宛てかどうかをチェックし、自装置宛てであればそのパケットを受信して、受信データＲＤ１として照明制御部２２に出力する。また、通信Ｉ／Ｆ２１は、照明制御部２２から送信データＴＤ１が渡されると、この送信データＴＤ１を「データ」フィールドに格納したフレームをネットワーク５０に送出する。
【００４２】
照明制御部２２は、通信Ｉ／Ｆ２１から受信データＲＤ１を入力すると、まず信号ＴＣ１を“１”にしてタイマ２３を起動する。そして、受信データＲＤ１が上述した点灯開始コマンドＣＭ１と待機時間Ｔｗ１を含む同報パケットであることを検知すると、タイマ２３の計時データＴＭＤ１をモニタし、タイマ２３の計時データＴＭＤ１が待機時間Ｔｗ１と一致したタイミングで、ＬＤ駆動部２４への制御信号ＬＤＧを“１”にするとともに、電圧信号Ｖｃを生成して出力する。ここで制御信号ＬＤＧは、光源として用いるＬＤモジュール２５の各ＬＤ２５ａの点灯をＯＮ／ＯＦＦするデジタル信号であり、例えばＬＤＧ＝１のときＬＤ２５ａの点灯をＯＮし、ＬＤＧ＝０のときＬＤ２５ａの点灯をＯＦＦするように、ＬＤ駆動部２４を制御する。また、電圧信号Ｖｃは、ＬＤ２５ａの発光量を制御するアナログの電圧信号であり、ＬＤ駆動部２４は、この電圧信号Ｖｃの値に基づいてＬＤ２５ａの発光量を制御する。なお、電圧信号Ｖｃの値は予め照明装置２０内部に設定されていてもよいし、ネットワーク５０を通じて外部から設定できるようにしてもよい。さらに、上述の同報パケットに、この電圧信号Ｖｃの値を設定するためのデータが含まれていてもよい。
【００４３】
ＬＤ駆動部２４は、制御信号ＬＤＧが“１”のとき、電圧信号Ｖｃの値に基づいてＬＤ駆動電流ＩＬ１を生成し、このＬＤ駆動電流ＩＬ１をＬＤモジュール２５に対して出力する。ＬＤモジュール２５の各ＬＤ２５ａは、ＬＤ駆動電流ＩＬ１の通電により例えば青色の波長帯域のレーザ光を発光する。本実施形態では、照明装置２０の光源として複数のＬＤ２５ａが用いられ、これらがＬＤモジュール２５としてモジュール化されている。ＬＤモジュール２５は、これら複数のＬＤ２５ａのほか、各ＬＤ２５ａから出射されるレーザ光を平行光にコリメートする複数のコリメータレンズ２５ｂを備える。また、ＬＤモジュール２５は、ＬＤ２５ａが発生する熱を放熱してＬＤ２５ａの温度上昇を所定範囲内に抑えるヒートシンクの機能も兼ね備える。
【００４４】
照明光学系２６は、ＬＤモジュール２５から出射されるレーザ光をパターン光として、撮像装置３０の被写体となるワークＷに照射する。すなわち、ＬＤモジュール２５から出射されるレーザ光は、集光レンズ２６ａによって集光され、反射ミラー２６ｂで光路を折り曲げられて拡散板２６ｃに導かれる。そして、拡散板２６ｃと導光光学素子２６ｄを通過することによって２次元的に均一で且つインコヒーレントな照明光とされ、パターンマスク２６ｅに入射される。パターンマスク２６ｅは、例えば透明ガラス板の表面に所定の２次元パターンが形成されたものであり、パターンマスク２６ｅを透過した照明光は所定のパターン光に変換される。そして、このパターン光が反射ミラー２６ｆによって光路を折り曲げられ、投射レンズ２６ｇを通してワークＷに照射される。
【００４５】
図８は、以上のように構成される照明装置２０の動作例を説明するフローチャートであり、受信データＲＤ１として上述した同報パケットを受信したときの照明制御部２２の処理手順の一例を示している。
【００４６】
通信Ｉ／Ｆ２１によって受信データＲＤ１が受信されると（ステップＳ１０１）、照明制御部２２は、まず、信号ＴＣ１を“１”  にしてタイマ２３を起動する（ステップＳ１０２）。そして、照明制御部２２は、タイマ２３の計時データＴＭＤ１をモニタして、タイマ２３の計時データＴＭＤ１が受信データＲＤ１の同報パケットに含まれる待機時間Ｔｗ１に達するまでの間（ステップＳ１０３：Ｎｏ）、待機する。そして、タイマ２３の計時データＴＭＤ１が待機時間Ｔｗ１に達すると（ステップＳ１０３：Ｙｅｓ）、照明制御部２２は、制御信号ＬＤＧを“１”にしてＬＤモジュール２５の各ＬＤ２５ａを点灯させるとともに（ステップＳ１０４）、信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ１０５）。これにより、撮像装置３０の被写体となるワークＷが、照明装置２０からのパターン光により照明される。
【００４７】
次に、撮像装置３０の具体例について説明する。図９は、撮像装置３０の構成例を示す図である。撮像装置３０は、例えば図９に示すように、通信Ｉ／Ｆ３１と、撮像制御部３２と、タイマ３３と、記憶部３４と、対物光学系３５と、撮像素子３６と、画像データ処理部３７とを備える。
【００４８】
通信Ｉ／Ｆ３１は、撮像装置３０がネットワーク５０を通じて他の機器と通信するためのインタフェースであり、制御装置１０の通信Ｉ／Ｆ１６や照明装置２０の通信Ｉ／Ｆ２１と同様に、例えばＥｔｈｅｒｎｅｔに対応したものが用いられる。通信Ｉ／Ｆ３１は、ネットワーク５０を通じて伝送されるフレームの「宛先ＭＡＣアドレス」を元に、「データ」フィールドに格納されているパケットが自装置宛てかどうかをチェックし、自装置宛てであればそのパケットを受信して、受信データＲＤ２として撮像制御部３２に出力する。また、通信Ｉ／Ｆ３１は、撮像制御部３２から送信データＴＤ２が渡されると、この送信データＴＤ２を「データ」フィールドに格納したフレームをネットワーク５０に送出する。
【００４９】
撮像制御部３２は、通信Ｉ／Ｆ３１から受信データＲＤ２を入力すると、まず信号ＴＣ２を“１”にしてタイマ３３を起動する。そして、受信データＲＤ２が上述した撮像開始コマンドＣＭ２と待機時間Ｔｗ２を含む同報パケットであることを検知すると、タイマ３３の計時データＴＭＤ２をモニタし、タイマ３３の計時データＴＭＤ２が待機時間Ｔｗ２と一致したタイミングで、撮像素子３６へのトリガ信号ＴＲＧを“１”にして、撮像素子３６による撮像を開始させる。トリガ信号ＴＲＧは撮像素子３６による撮像（露光）を制御するための信号であり、例えばトリガ信号ＴＲＧが“０”から“１”になると撮像を開始し、ＴＲＧが“１”から“０”になると撮像を終了するように、撮像素子３６を制御する。
【００５０】
撮像素子３６としては、例えばＣＣＤセンサやＣＭＯＳセンサが用いられる。撮像素子３６は、撮像制御部３２からのトリガ信号ＴＲＧが“１”のとき、対物光学系３５を通過した光学像を所定のフレームレートでデジタル画像データＩＭＧ１に変換し、画像データ処理部３７に出力する。
【００５１】
画像データ処理部３７は、撮像素子３６から入力される画像データＩＭＧ１に対して例えば歪み補正やガンマ補正などの処理を行って、所定のデジタル画像データＩＭＧ２として、撮像制御部３２に出力する。
【００５２】
撮像制御部３２は、画像データ処理部３７から入力される画像データＩＭＧ２をさらに処理して、例えばＩＭＧ．ｊｐｇというファイル名のＪＰＥＧ形式の画像ファイルを生成し、記憶部３４に保存する。そして、予め定めた所定数（１以上）の画像ファイルＩＭＧ．ｊｐｇが記憶部３４に格納されると、撮像制御部３２は、撮像素子３６へのトリガ信号ＴＲＧを“０”にして、撮像素子３６による撮像を終了させる。その後、撮像制御部３２は、記憶部３４から画像ファイルＩＭＧ．ｊｐｇを読み出してパケット化し、送信データＴＤ２として通信Ｉ／Ｆ３１に出力する。このとき撮像制御部３２は、送信データＴＤ２の宛先として制御装置１０を指定する。これにより、「宛先ＭＡＣアドレス」に制御装置１０のＭＡＣアドレス、「データ」フィールドに画像ファイルＩＭＧ．ｊｐｇを格納したフレームが、通信Ｉ／Ｆ３１からネットワーク５０上に送出され、制御装置１０によって画像ファイルＩＭＧ．ｊｐｇが受信される。
【００５３】
図１０は、以上のように構成される撮像装置３０の動作例を説明するフローチャートであり、受信データＲＤ２として上述した同報パケットを受信したときの撮像制御部３２の処理手順の一例を示している。
【００５４】
通信Ｉ／Ｆ３１によって受信データＲＤ２が受信されると（ステップＳ２０１）、撮像制御部３２は、まず、信号ＴＣ２を“１”  にしてタイマ３３を起動する（ステップＳ２０２）。そして、撮像制御部３２は、タイマ３３の計時データＴＭＤ２をモニタして、タイマ３３の計時データＴＭＤ２が受信データＲＤ２の同報パケットに含まれる待機時間Ｔｗ２に達するまでの間（ステップＳ２０３：Ｎｏ）、待機する。そして、タイマ３３の計時データＴＭＤ２が待機時間Ｔｗ２に達すると（ステップＳ２０３：Ｙｅｓ）、撮像制御部３２は、トリガ信号ＴＲＧを“１”にして撮像素子３６による撮像を開始させる（ステップＳ２０４）。
【００５５】
そして、撮像制御部３２は、画像データ処理部３７から入力される画像データＩＭＧ２をもとに画像ファイルＩＭＧ．ｊｐｇを生成し、記憶部３４に保存する（ステップＳ２０５）。その後、所定数の画像ファイルＩＭＧ．ｊｐｇが記憶部３４に格納されると、撮像制御部３２は、トリガ信号ＴＲＧを“０”にして撮像素子３６による撮像を終了させる（ステップＳ２０６）。そして、撮像制御部３２は、記憶部３４から画像ファイルＩＭＧ．ｊｐｇを読み出して送信データＴＤ２として出力するとともに（ステップＳ２０７）、信号ＴＣ２を“０”にしてタイマ３３をリセットする（ステップＳ２０８）。これにより、照明装置２０からのパターン光により照明され、撮像装置３０により撮像されたワークＷの画像が、制御装置１０に送信される。
【００５６】
以上、具体的な例を挙げながら説明したように、本実施形態のピッキングシステム１では、制御装置１０が、同期制御の対象となる照明装置２０と撮像装置３０に対して、照明装置２０に対する点灯開始コマンドＣＭ１と、照明装置２０の待機時間Ｔｗ１と、撮像装置３０に対する撮像開始コマンドＣＭ２と、撮像装置３０の待機時間Ｔｗ２とを含む同報パケットを送信する。そして、照明装置２０は、この同報パケットを受信すると、待機時間Ｔｗ１を待ってからＬＤ２５ａの点灯を開始する。また、撮像装置３０は、この同報パケットを受信すると、待機時間Ｔｗ２を待ってから撮像素子３６による撮像を開始する。したがって、本実施形態のピッキングシステム１によれば、同期制御の対象となる照明装置２０と撮像装置３０のそれぞれに固有の遅延時間を考慮した適切な同期制御を実現することができる。
【００５７】
＜第２の実施形態＞
次に、第２の実施形態について説明する。本実施形態は、照明装置２０に対応する時間情報である遅延時間、および、撮像装置３０に対応する時間情報である遅延時間を、照明装置２０と撮像装置３０からそれぞれ取得してデータ保持部１０２に格納する機能を制御装置１０に持たせた例である。なお、ピッキングシステム１の基本的な枠組みは第１の実施形態と同様であるため、以下では、第１の実施形態と共通部分には共通の符号を用いて重複した説明を適宜省略し、第１の実施形態との差異を説明する。
【００５８】
図１１は、本実施形態の制御装置１０の機能的な構成例を示すブロック図である。本実施形態の制御装置１０は、第１の実施形態の構成（図５参照）に加えて、遅延時間取得部１０７を備える。
【００５９】
遅延時間取得部１０７は、照明装置２０に遅延時間の送信を指示する遅延時間送信コマンドをパケット化し、宛先として照明装置２０を指定して、通信Ｉ／Ｆ１６に出力する。これにより、「宛先ＭＡＣアドレス」に照明装置２０の固有のＭＡＣアドレスが格納され、「データ」フィールドに遅延時間送信コマンドが格納されたフレームが通信Ｉ／Ｆ１６からネットワーク５０に送出され、照明装置２０により遅延時間送信コマンドが受信されることになる。その後、遅延時間送信コマンドに対する応答として照明装置２０から遅延時間が送信されると、遅延時間取得部１０７はこれを受信して、照明装置２０の識別情報と対応付けてデータ保持部１０２に格納する。
【００６０】
同様に、遅延時間取得部１０７は、撮像装置３０に遅延時間の送信を指示する遅延時間送信コマンドをパケット化し、宛先として撮像装置３０を指定して、通信Ｉ／Ｆ１６に出力する。これにより、「宛先ＭＡＣアドレス」に撮像装置３０の固有のＭＡＣアドレスが格納され、「データ」フィールドに遅延時間送信コマンドが格納されたフレームが通信Ｉ／Ｆ１６からネットワーク５０に送出され、撮像装置３０により遅延時間送信コマンドが受信されることになる。その後、遅延時間送信コマンドに対する応答として撮像装置３０から遅延時間が送信されると、遅延時間取得部１０７はこれを受信して、撮像装置３０の識別情報と対応付けてデータ保持部１０２に格納する。
【００６１】
なお、遅延時間取得部１０７の上述した処理は任意のタイミングで行えばよい。例えば、制御装置１０がネットワーク５０の負荷を監視する機能を備える場合、遅延時間取得部１０７は、ネットワーク５０の負荷が基準値よりも低いタイミングで上述した処理を行うことで、ネットワーク５０に過大な負荷をかけることなく、照明装置２０と撮像装置３０から遅延時間を適切に取得してデータ保持部１０２に格納することができる。また、遅延時間取得部１０７は、任意の時間間隔で上述した処理を繰り返し行うことにより、照明装置２０の遅延時間や撮像装置３０の遅延時間が経時変化した場合であっても、最新の遅延時間を取得してデータ保持部１０２に格納することができる。
【００６２】
なお、本実施形態では、照明装置２０や撮像装置３０に対する遅延時間送信コマンドの送信をユニキャストで行う場合を想定したが、動作開始コマンド（点灯開始コマンドＣＭ１および撮像開始コマンドＣＭ２）を送信する場合と同様に、マルチキャスト（同報送信）で行うようにしてもよい。
【００６３】
次に、本実施形態の照明装置２０の具体例について説明する。本実施形態の照明装置２０は、制御装置１０からの遅延時間送信コマンドに応じて遅延時間を送信する機能を有する。照明装置２０の遅延時間は、上述したように、照明装置２０が光源であるＬＤ２５ａの点灯動作を開始してから実際にＬＤ２５ａが点灯状態になるまでの時間である。
【００６４】
図１２は、本実施形態の照明装置２０の構成例を示す図であり、図１３は、本実施形態の照明装置２０におけるＬＤ２５ａの点灯を検知する手段の構成例を説明する図である。また、図１４は、ＬＤ２５ａの点灯を検知する動作を説明するタイミングチャートである。
【００６５】
本実施形態の照明装置２０は、図１２に示すように、第１の実施形態の構成（図７参照）に加えて、ＬＤ駆動電流ＩＬ１の経路に電流検出用の抵抗Ｒｓ１が設けられている。また、ＬＤ駆動部２４から照明制御部２２に対して、ＬＤ２５ａの点灯状態を示す信号ＬＤ＿ＯＮが入力される構成となっている。
【００６６】
本実施形態の照明装置２０において、照明制御部２２は、通信Ｉ／Ｆ２１が受信データＲＤ１を受信すると、信号ＴＣ１を“１”にしてタイマ２３を起動する。そして、通信Ｉ／Ｆ２１が受信した受信データＲＤ１が制御装置１０からの遅延時間送信コマンドである場合、照明制御部２２は、ＬＤ２５ａを点灯させるためにＬＤ駆動部２４への制御信号ＬＤＧを“１”にするとともに、電圧信号Ｖｃを生成して出力する。
【００６７】
ＬＤ駆動部２４は、制御信号ＬＤＧが“１”になると、電圧信号Ｖｃの値に基づいてＬＤ駆動電流ＩＬ１を生成し、このＬＤ駆動電流ＩＬ１をＬＤモジュール２５に対して出力する。すると、抵抗Ｒｓ１の両端に電圧Ｖａおよび電圧Ｖｂが発生する。
【００６８】
ＬＤ駆動電流ＩＬ１の通電により抵抗Ｒｓ１の両端に発生した電圧Ｖａおよび電圧Ｖｂの端子は、例えば図１３に示すように、電圧Ｖｂの端子が接地され、電圧Ｖａの端子がＬＤ駆動部２４内のアンプ２４ａの入力端子に接続されている。アンプ２４ａに入力された電圧Ｖａは（１＋Ｒ２／Ｒ１）倍に増幅され、電圧Ｖｇとして出力される。そして、増幅された電圧Ｖｇはコンパレータ２４ｂに入力され、上述の電圧信号Ｖｃと比較される。そして、Ｖｇ＞Ｖｃになると、コンパレータ２４ｂの出力が“０”から“１”に変化する。このコンパレータ２４ｂの出力が、ＬＤ駆動部２４から照明制御部２２に入力される信号ＬＤ＿ＯＮであり、この信号ＬＤ＿ＯＮが“０”から“１”に変化すると、ＬＤ２５ａが正常に点灯したことを示す。なお、図１３に示すコンデンサＣ１は、アンプ２４ａに入力される電圧Ｖａに高周波のノイズやリップル等があっても、これらを除去して高い検出精度を確保するためのものである。
【００６９】
照明制御部２２は、信号ＬＤ＿ＯＮが“１”になったことを検知すると、ＬＤ２５ａの点灯動作が上述した点灯開始コマンドに基づくものでなく、遅延時間送信コマンドに基づくものである場合は、その時点でのタイマ２３の計時データＴＭＤ１を取得する。ここで取得される計時データＴＭＤ１が、照明装置２０の遅延時間に相当する。
【００７０】
すなわち、図１４に示すように、制御信号ＬＤＧが“０”から“１”に切り替わってからＬＤ駆動電流ＩＬ１が立ち上がるまでの時間をＴ１、ＬＤ駆動電流ＩＬ１の立ち上がりから電圧Ｖｇが立ち上がるまでの時間をＴ２、電圧Ｖｇの立ち上がりから電圧Ｖｇが電圧信号Ｖｃを超えるまでの時間をＴ３、電圧Ｖｇが電圧信号Ｖｃを超えてから信号ＬＤ＿ＯＮが“１”になるまでの時間をＴ４とする。タイマ２３は、信号ＬＤ＿ＯＮを“１”にしたときに起動しているため、信号ＬＤ＿ＯＮが“１”になった時点でのタイマ２３の計時データＴＭＤ１は、Ｔ１＋Ｔ２＋Ｔ３＋Ｔ４であり、ＬＤ２５ａの点灯動作を開始してから実際にＬＤ２５ａが点灯状態になるまでの遅延時間に相当する。
【００７１】
照明制御部２２は、制御装置１０からの遅延時間送信コマンドを受信した場合、このように取得したタイマ２３の計時データＴＭＤ１を、送信データＴＤ１として通信Ｉ／Ｆ２１に出力する。このとき照明制御部２２は、送信データＴＤ１の宛先として制御装置１０を指定する。これにより、「宛先ＭＡＣアドレス」に制御装置１０のＭＡＣアドレス、「データ」フィールドに照明装置２０の遅延時間を格納したフレームが、通信Ｉ／Ｆ２１からネットワーク５０上に送出される。そして、制御装置１０によって照明装置２０の遅延時間が受信される。
【００７２】
図１５は、本実施形態の照明装置２０の動作例を説明するフローチャートであり、照明制御部２２の処理手順の一例を示している。
【００７３】
通信Ｉ／Ｆ２１によって受信データＲＤ１が受信されると（ステップＳ３０１）、照明制御部２２は、まず、信号ＴＣ１を“１”  にしてタイマ２３を起動する（ステップＳ３０２）。そして、照明制御部２２は、受信データＲＤ１が点灯開始コマンドを含む同報パケットであるか否かを判定し（ステップＳ３０３）、点灯開始コマンドを含む同報パケットであれば（ステップＳ３０３：Ｙｅｓ）、第１の実施形態と同様に、タイマ２３の計時データＴＭＤ１が同報パケットに含まれる待機時間Ｔｗ１に達するまで待機し（ステップＳ３０４：Ｎｏ）、タイマ２３の計時データＴＭＤ１が待機時間Ｔｗ１に達すると（ステップＳ３０４：Ｙｅｓ）、制御信号ＬＤＧを“１”にする（ステップＳ３０５）。一方、受信データＲＤ１が点灯開始コマンドを含む同報パケットではなく、上述の遅延時間送信コマンドである場合（ステップＳ３０３：Ｎｏ）、照明制御部２２は、ステップＳ３０２でタイマ２３を起動した後、すぐに制御信号ＬＤＧを“１”にする（ステップＳ３０５）。
【００７４】
その後、受信データＲＤ１が遅延時間送信コマンドである場合は（ステップＳ３０６：Ｎｏ）、照明制御部２２は、信号ＬＤ＿ＯＮが“１”になるまで待機する（ステップＳ３０７：Ｎｏ）。そして、信号ＬＤ＿ＯＮが“１”になると（ステップＳ３０７：Ｙｅｓ）、照明制御部２２は、その時点のタイマ２３の計時データＴＭＤ１を送信データＴＤ１として出力するとともに（ステップＳ３０８）、制御信号ＬＤＧを“０”にしてＬＤ２５ａの点灯を終了させ（ステップＳ３０９）、信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ３１０）。一方、受信データＲＤ１が点灯開始コマンドを含む同報パケットである場合は（ステップＳ３０６：Ｙｅｓ）、照明制御部２２は、ステップＳ３０５で制御信号ＬＤＧを“１”にした後、すぐに信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ３１０）。
【００７５】
次に、本実施形態の撮像装置３０の具体例について説明する。本実施形態の撮像装置３０は、制御装置１０からの遅延時間送信コマンドに応じて遅延時間を送信する機能を有する。撮像装置３０の遅延時間は、上述したように、撮像装置３０が撮像動作を開始してから実際に撮像が行われるまでの時間である。
【００７６】
本実施形態の撮像装置３０の構成は、第１の実施形態の構成（図９参照）と同様である。ただし、撮像制御部３２は、遅延時間を計測するためにタイマ３３を用いる。すなわち、撮像制御部３２は、通信Ｉ／Ｆ３１が受信データＲＤ２を受信すると、信号ＴＣ２を“１”にしてタイマ３３を起動するとともに、撮像素子３６へのトリガ信号ＴＲＧを“１”にして、撮像素子３６による撮像を開始させる。そして、通信Ｉ／Ｆ３１が受信した受信データＲＤ２が制御装置１０からの遅延時間送信コマンドである場合、撮像制御部３２は、撮像素子３６が光学像の露光を行える状態、つまり撮像準備が完了した時点でのタイマ３３の計時データＴＭＤ２を取得する。ここで取得される計時データＴＭＤ２が、撮像装置３０の遅延時間に相当する。
【００７７】
すなわち、撮像装置３０では、撮像素子３６による撮像を開始させる際に、撮像開始コマンドを受信してから撮像制御装置３２がトリガ信号ＴＲＧを“１”にして撮像素子３６に撮像を指示するまでに遅延が生じ、さらに、トリガ信号ＴＲＧが“１”になってから撮像素子３６が光学像の露光を行える状態になるまでに遅延が生じる。これらの遅延時間は、撮像装置３０が撮像動作を開始してから実際に撮像が行われるまでの遅延時間に相当する。撮像制御部３２は、遅延時間送信コマンドに応じてタイマ３３を起動するとともにトリガ信号ＴＲＧを“１”にし、その後、撮像素子３６が光学像の露光を行える状態、つまり撮像準備が完了した時点でのタイマ３３の計時データＴＭＤ２を取得することで、撮像装置３０の遅延時間を取得できる。なお、撮像素子３６が光学像の露光を行える状態になったこと、つまり撮像準備が完了したことを直接的に検知できない場合は、画像データ処理部３７から画像データＩＭＧ２の入力が開始されたときに、撮像準備が完了したとみなして、その時点でのタイマ３３の計時データＴＭＤ２を取得するようにしてもよい。
【００７８】
撮像制御部３２は、制御装置１０からの遅延時間送信コマンドを受信した場合、このように取得したタイマ３３の計時データＴＭＤ２を、送信データＴＤ２として通信Ｉ／Ｆ３１に出力する。このとき撮像制御部３２は、送信データＴＤ２の宛先として制御装置１０を指定する。これにより、「宛先ＭＡＣアドレス」に制御装置１０のＭＡＣアドレス、「データ」フィールドに撮像装置３０の遅延時間を格納したフレームが、通信Ｉ／Ｆ３１からネットワーク５０上に送出される。そして、制御装置１０によって撮像装置３０の遅延時間が受信される。
【００７９】
図１６は、本実施形態の撮像装置３０の動作例を説明するフローチャートであり、撮像制御部３２の処理手順の一例を示している。
【００８０】
通信Ｉ／Ｆ３１によって受信データＲＤ２が受信されると（ステップＳ４０１）、撮像制御部３２は、まず、信号ＴＣ２を“１”  にしてタイマ３３を起動する（ステップＳ４０２）。そして、撮像制御部３２は、受信データＲＤ２が撮像開始コマンドを含む同報パケットであるか否かを判定し（ステップＳ４０３）、撮像開始コマンドを含む同報パケットであれば（ステップＳ４０３：Ｙｅｓ）、第１の実施形態と同様に、タイマ３３の計時データＴＭＤ２が同報パケットに含まれる待機時間Ｔｗ２に達するまで待機し（ステップＳ４０４：Ｎｏ）、タイマ３３の計時データＴＭＤ２が待機時間Ｔｗ２に達すると（ステップＳ４０４：Ｙｅｓ）、トリガ信号ＴＲＧを“１”にする（ステップＳ４０５）。一方、受信データＲＤ２が撮像開始コマンドを含む同報パケットではなく、上述の遅延時間送信コマンドである場合（ステップＳ４０３：Ｎｏ）、撮像制御部３２は、ステップＳ４０２でタイマ３３を起動した後、すぐにトリガ信号ＴＲＧを“１”にする（ステップＳ４０５）。
【００８１】
その後、受信データＲＤ２が撮像開始コマンドを含む同報パケットである場合は（ステップＳ４０６：Ｙｅｓ）、撮像制御部３２は、第１の実施形態と同様に画像ファイルＩＭＧ．ｊｐｇの生成および記憶部３４への保存を行った後（ステップＳ４０７）、トリガ信号ＴＲＧを“０”にして撮像素子３６による撮像を終了させる（ステップＳ４０８）。そして、撮像制御部３２は、記憶部３４から画像ファイルＩＭＧ．ｊｐｇを読み出して送信データＴＤ２として出力し（ステップＳ４０９）、信号ＴＣ２を“０”にしてタイマ３３をリセットする（ステップＳ４１０）。
【００８２】
一方、受信データＲＤ２が遅延時間送信コマンドである場合は（ステップＳ４０６：Ｎｏ）、撮像制御部３２は、撮像準備が完了するまで待機する（ステップＳ４１１：Ｎｏ）。そして、撮像準備が完了したことが検知されると（ステップＳ４１１：Ｙｅｓ）、撮像制御部３２は、トリガ信号ＴＲＧを“０”にして撮像素子３６による撮像を終了させ（ステップＳ４１２）、その時点のタイマ３３の計時データＴＭＤ２を送信データＴＤ２として出力するとともに（ステップＳ４１３）、信号ＴＣ２を“０”にしてタイマ３３をリセットする（ステップＳ４１０）。
【００８３】
以上、具体的な例を挙げながら説明したように、本実施形態では、制御装置１０の遅延時間取得部１０７が、照明装置２０の遅延時間を照明装置２０から取得してデータ保持部１０２に格納するとともに、撮像装置３０の遅延時間を撮像装置３０から取得してデータ保持部１０２に格納する。したがって、本実施形態によれば、照明装置２０や撮像装置３０をネットワーク５０に接続するだけで、事前にシミュレーション等を行うことなくそれぞれの機器に固有の遅延時間をデータ保持部１０２に格納することができ、これら照明装置２０と撮像装置３０の適切な同期制御を実現することができる。また、照明装置２０や撮像装置３０の遅延時間を任意の時間間隔で繰り返し取得してデータ保持部１０２に格納することにより、照明装置２０や撮像装置３０の遅延時間が経時変化する場合であっても、最新の遅延時間をデータ保持部１０２に保持させて、照明装置２０と撮像装置３０の適切な同期制御を継続的に実現することができる。
【００８４】
＜第３の実施形態＞
次に、第３の実施形態について説明する。本実施形態は、照明装置２０や撮像装置３０に対して応答要求を送信してから応答を受信するまでの時間である応答時間を計測し、計測した応答時間を、上述した待機時間を算出するための時間情報の一つとしてデータ保持部１０２に格納する機能を制御装置１０に持たせた例である。なお、ピッキングシステム１の基本的な枠組みは第１の実施形態や第２の実施形態と同様であるため、以下では、第１の実施形態や第２の実施形態と共通部分には共通の符号を用いて重複した説明を適宜省略し、本実施形態に特徴的な部分を説明する。
【００８５】
図１７は、本実施形態の制御装置１０の機能的な構成例を示すブロック図である。本実施形態の制御装置１０は、第２の実施形態の構成（図１１参照）に加えて、応答時間計測部１０８を備える。
【００８６】
応答時間計測部１０８は、照明装置２０に対する応答要求をパケット化し、宛先として照明装置２０を指定して、通信Ｉ／Ｆ１６に出力する。これにより、「宛先ＭＡＣアドレス」に照明装置２０の固有のＭＡＣアドレスが格納され、「データ」フィールドに応答要求が格納されたフレームが通信Ｉ／Ｆ１６からネットワーク５０に送出され、照明装置２０により応答要求が受信されることになる。また、応答時間計測部１０８は、照明装置２０に対する応答要求の送信時に内部のタイマを起動する。その後、応答要求に対する応答を照明装置２０から受信すると、応答時間計測部１０８は、その時点でのタイマの計時データを取得し、これを照明装置２０の応答時間として、照明装置２０の識別情報と対応付けてデータ保持部１０２に格納する。この際、照明装置２０からの応答には、後述するように照明装置２０が応答要求を受けてから応答を返すまでの処理時間が格納されているため、応答時間計測部１０８は、計測した応答時間をこの処理時間とともに、照明装置２０の識別情報と対応付けてデータ保持部１０２に格納する。
【００８７】
同様に、応答時間計測部１０８は、撮像装置３０に対する応答要求をパケット化し、宛先として撮像装置３０を指定して、通信Ｉ／Ｆ１６に出力する。これにより、「宛先ＭＡＣアドレス」に撮像装置３０の固有のＭＡＣアドレスが格納され、「データ」フィールドに応答要求が格納されたフレームが通信Ｉ／Ｆ１６からネットワーク５０に送出され、撮像装置３０により応答要求が受信されることになる。また、応答時間計測部１０８は、撮像装置３０に対する応答要求の送信時に内部のタイマを起動する。その後、応答要求に対する応答を撮像装置３０から受信すると、応答時間計測部１０８は、その時点でのタイマの計時データを取得し、これを撮像装置３０の応答時間として、撮像装置３０の識別情報と対応付けてデータ保持部１０２に格納する。この際、撮像装置３０からの応答には、後述するように撮像装置３０が応答要求を受けてから応答を返すまでの処理時間が格納されているため、応答時間計測部１０８は、計測した応答時間をこの処理時間とともに、撮像装置３０の識別情報と対応付けてデータ保持部１０２に格納する。
【００８８】
本実施形態の制御装置１０は、上述の同報パケットに含まれる待機時間Ｔｗ１，Ｔｗ２を算出するために、照明装置２０の遅延時間および撮像装置３０の遅延時間に加えて、照明装置２０の応答時間および撮像装置３０の応答時間を用いる。このため、データ読み出し部１０３は、照明装置２０の遅延時間と応答時間、撮像装置３０の遅延時間と応答時間を、それぞれデータ保持部１０２から読み出して待機時間算出部１０４に渡す。
【００８９】
待機時間算出部１０４は、照明装置２０の待機時間Ｔｗ１と撮像装置３０の待機時間Ｔｗ２を算出するにあたり、まず、照明装置２０の応答時間に基づいて、制御装置１０と照明装置２０との間の片道のネットワーク遅延時間を算出するとともに、撮像装置３０の応答時間に基づいて、制御装置１０と撮像装置３０との間の片道のネットワーク遅延時間を算出する。
【００９０】
例えば、照明装置２０の応答時間をＴａ１とし、照明装置２０からの応答に格納された上述の処理時間をＴｂ１とすると、制御装置１０と照明装置２０との間の片道のネットワーク遅延時間Ｔｎｄ１は、下記の式（５）で表すことができる。
Ｔｎｄ１＝（Ｔａ１−Ｔｂ１）／２  ・・・（５）
また、撮像装置３０の応答時間をＴａ２とし、撮像装置３０からの応答に格納された上述の処理時間をＴｂ２とすると、制御装置１０と撮像装置３０との間の片道のネットワーク遅延時間Ｔｎｄ２は、下記の式（６）で表すことができる。
Ｔｎｄ２＝（Ｔａ２−Ｔｂ２）／２  ・・・（６）
【００９１】
待機時間算出部１０４は、以上のように算出したネットワーク遅延時間Ｔｎｄ１，Ｔｎｄ２と、照明装置２０の遅延時間Ｔｄ１と、撮像装置３０の遅延時間Ｔｄ２とを用いて、照明装置２０の待機時間Ｔｗ１と撮像装置３０の待機時間Ｔｗ２を算出する。照明装置２０と撮像装置３０の適切な同期制御を上述の同報パケットにより実現するためには、照明装置２０と撮像装置３０のうち、遅延時間に対してネットワーク遅延時間を加算したトータルの遅延時間が長い方に合わせて、トータルの遅延時間が短い方を待機させればよい。したがって、トータルの遅延時間が短い方の待機時間Ｔｗ＿Ｃおよびトータルの遅延時間が長い方の待機時間Ｔｗ＿Ｄは、下記の式（７）および式（８）で表すことができる。
Ｔｗ＿Ｃ＝｜（Ｔｄ１＋Ｔｎｄ１）−（Ｔｄ２＋Ｔｎｄ２）｜  ・・・（７）
Ｔｗ＿Ｄ＝０  ・・・（８）
【００９２】
なお、トータルの遅延時間が長い方の待機時間Ｔｗ＿Ｄを０とすることで、例えば何らかの障害発生が懸念されるシステム構成の場合は、トータルの遅延時間が長い方の待機時間Ｔｗ＿Ｄとして十分に短い時間Ｔｎを割り当ててもよい。この場合、照明装置２０と撮像装置３０のうち、トータルの遅延時間が短い方の待機時間Ｔｗ＿Ｃおよびトータルの遅延時間が長い方の待機時間Ｔｗ＿Ｄは、下記の式（９）および式（１０）で表すことができる。
Ｔｗ＿Ｃ＝｜（Ｔｄ１＋Ｔｎｄ１）−（Ｔｄ２＋Ｔｎｄ２）｜＋Ｔｎ  ・・・（９）
Ｔｗ＿Ｄ＝Ｔｎ  ・・・（１０）
【００９３】
同報パケット生成部１０５は、第１の実施形態と同様に、照明装置２０に対する点灯開始コマンドＣＭ１と、照明装置２０の待機時間Ｔｗ１と、撮像装置３０に対する撮像開始コマンドＣＭ２と、撮像装置３０の待機時間Ｔｗ２とを含む同報パケットを生成する。この際、照明装置２０が撮像装置３０よりもトータルの遅延時間が短い場合は、照明装置２０の待機時間Ｔｗ１として上記式（７）または式（９）で表される値が入り、撮像装置３０の待機時間Ｔｗ２として上記式（８）または式（１０）で表される値が入る。逆に、撮像装置３０が照明装置２０よりもトータルの遅延時間が短い場合は、照明装置２０の待機時間Ｔｗ１として上記式（８）または式（１０）で表される値が入り、撮像装置３０の待機時間Ｔｗ２として上記式（７）または式（９）で表される値が入る。
【００９４】
以上のように生成された同報パケットは、第１の実施形態と同様に、送信制御部１０６の制御に応じて通信Ｉ／Ｆ１６からネットワーク５０に送出され、照明装置２０と撮像装置３０のそれぞれで受信される。
【００９５】
本実施形態の照明装置２０の構成は、第２の実施形態の構成（図１２参照）と同様である。ただし、照明制御部２２は、制御装置１０から上述の応答要求を受信した場合に、この応答要求に対する応答を制御装置１０に返す機能を有する。すなわち、照明制御部２２は、通信Ｉ／Ｆ２１が受信データＲＤ１を受信すると、信号ＴＣ１を“１”にしてタイマ２３を起動する。そして、通信Ｉ／Ｆ２１が受信した受信データＲＤ１が制御装置１０からの応答要求である場合、照明制御部２２は、ＬＤ２５ａを点灯させる制御は行わず、その時点のタイマ２３の計時データＴＭＤ１を取得し、送信データＴＤ１として通信Ｉ／Ｆ２１に出力する。この時点でのタイマ２３の計時データＴＭＤ１は、照明装置２０が応答要求を受けてから応答を返すまでの処理時間に相当する。
【００９６】
照明装置２０の処理時間を送信データＴＤ１とする応答は、制御装置１０を宛先として通信Ｉ／Ｆ２１からネットワーク５０上に送出され、制御装置１０により受信される。制御装置１０は、上述したように、照明装置２０に対して応答要求を送信してからこの応答を受信するまでの時間を応答時間として計測し、応答に含まれる処理時間とともに、照明装置２０の識別情報と対応付けてデータ保持部１０２に格納する。
【００９７】
図１８は、本実施形態の照明装置２０の動作例を説明するフローチャートであり、照明制御部２２の処理手順の一例を示している。
【００９８】
通信Ｉ／Ｆ２１によって受信データＲＤ１が受信されると（ステップＳ５０１）、照明制御部２２は、まず、信号ＴＣ１を“１”  にしてタイマ２３を起動する（ステップＳ５０２）。そして、照明制御部２２は、受信データＲＤ１が制御装置１０からの応答要求であるか否かを判定し（ステップＳ５０３）、受信データＲＤ１が制御装置１０からの応答要求であれば（ステップＳ５０３：Ｙｅｓ）、その時点のタイマ２３の計時データＴＭＤ１を送信データＴＤ１として出力し（ステップＳ５１２）、信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ５１１）。一方、受信データＲＤ１が制御装置１０からの応答要求でない場合は（ステップＳ５０３：Ｎｏ）、ステップＳ５０４からステップＳ５１１までの処理が行われるが、この処理は第２の実施形態での処理（図１５のステップＳ３０３からステップＳ３１０までの処理）と同様であるため、説明を省略する。
【００９９】
本実施形態の撮像装置３０の構成は、第１の実施形態の構成（図９参照）と同様である。ただし、撮像制御部３２は、制御装置１０から上述の応答要求を受信した場合に、この応答要求に対する応答を制御装置１０に返す機能を有する。すなわち、撮像制御部３２は、通信Ｉ／Ｆ３１が受信データＲＤ２を受信すると、信号ＴＣ２を“１”にしてタイマ３３を起動する。そして、通信Ｉ／Ｆ３１が受信した受信データＲＤ２が制御装置１０からの応答要求である場合、撮像制御部３２は、撮像素子３６に対する撮像開始の指示は行わず、その時点のタイマ３３の計時データＴＭＤ２を取得し、送信データＴＤ２として通信Ｉ／Ｆ３１に出力する。この時点でのタイマ３３の計時データＴＭＤ２は、撮像装置３０が応答要求を受けてから応答を返すまでの処理時間に相当する。
【０１００】
撮像装置３０の処理時間を送信データＴＤ２とする応答は、制御装置１０を宛先として通信Ｉ／Ｆ３１からネットワーク５０上に送出され、制御装置１０により受信される。制御装置１０は、上述したように、撮像装置３０に対して応答要求を送信してからこの応答を受信するまでの時間を応答時間として計測し、応答に含まれる処理時間とともに、撮像装置３０の識別情報と対応付けてデータ保持部１０２に格納する。
【０１０１】
図１９は、本実施形態の撮像装置３０の動作例を説明するフローチャートであり、撮像制御部３２の処理手順の一例を示している。
【０１０２】
通信Ｉ／Ｆ３１によって受信データＲＤ２が受信されると（ステップＳ６０１）、撮像制御部３２は、まず、信号ＴＣ２を“１”  にしてタイマ３３を起動する（ステップＳ６０２）。そして、撮像制御部３２は、受信データＲＤ２が制御装置１０からの応答要求であるか否かを判定し（ステップＳ６０３）、受信データＲＤ２が制御装置１０からの応答要求であれば（ステップＳ６０３：Ｙｅｓ）、その時点のタイマ３３の計時データＴＭＤ２を送信データＴＤ２として出力し（ステップＳ６１５）、信号ＴＣ２を“０”にしてタイマ３３をリセットする（ステップＳ６１１）。一方、受信データＲＤ２が制御装置１０からの応答要求でない場合は（ステップＳ６０３：Ｎｏ）、ステップＳ６０４からステップＳ６１４までの処理が行われるが、この処理は第２の実施形態での処理（図１６のステップＳ４０３からステップＳ４１３までの処理）と同様であるため、説明を省略する。
【０１０３】
以上、具体的な例を挙げながら説明したように、本実施形態では、制御装置１０の応答時間計測部１０８が、照明装置２０や撮像装置３０に対して応答要求を送信してから応答を受信するまでの時間である応答時間を計測し、計測した応答時間を、上述した待機時間を算出するための時間情報の一つとしてデータ保持部１０２に格納するようにしている。そして、制御装置１０の待機時間算出部１０４が、これら応答時間に基づいて照明装置２０や撮像装置３０との間の片道のネットワーク遅延時間を算出し、照明装置２０や撮像装置３０の固有の遅延時間に対してこのネットワーク遅延時間を加算したトータルの遅延時間に基づいて、照明装置２０や撮像装置３０の待機時間を算出するようにしている。したがって、本実施形態によれば、制御装置１０と照明装置２０や撮像装置３０との間の通信に無視できないネットワーク遅延があったとしても、それを補償して、照明装置２０と撮像装置３０との同期制御を高精度に行うことができる。
【０１０４】
＜第４の実施形態＞
次に、第４の実施形態について説明する。本実施形態は、光源として用いるＬＤ２５ａの点灯不良が発生した場合にこれを検知してエラー情報を送信する機能を照明装置２０に持たせた例である。なお、ピッキングシステム１の基本的な枠組みは第１乃至第３の実施形態と同様であるため、以下では、第１乃至第３の実施形態と共通部分には共通の符号を用いて重複した説明を適宜省略し、本実施形態に特徴的な部分を説明する。
【０１０５】
図２０は、本実施形態の照明装置２０の構成例を示す図である。本実施形態の照明装置２０は、図２０に示すように、第２の実施形態の構成（図１２参照）に加えて、タイマ２７が設けられている。また、ＬＤ駆動部２４から照明制御部２２に対して、ＬＤ２５ａの点灯エラー状態を示す信号ＬＤ＿ＥＲＲが入力される構成となっている。
【０１０６】
本実施形態の照明装置２０において、ＬＤ駆動部２４は、制御信号ＬＤＧが“１”になると、電圧信号Ｖｃの値に基づいてＬＤ駆動電流ＩＬ１を生成し、このＬＤ駆動電流ＩＬ１をＬＤモジュール２５に対して出力する。また、このときＬＤ駆動部２４は、信号ＴＣ１１を“１”  にしてタイマ２７を起動する。その後、ＬＤ駆動部２４は、タイマ２７の計時データＴＭＤ１１をモニタするとともに、信号ＬＤ＿ＯＮが“０”から“１”に変化するかどうかを観測する。そして、信号ＬＤ＿ＯＮが“１”になることなくタイマ２７の計時データＴＭＤ１１が所定時間Ｔｄ１１に達した場合、ＬＤ駆動部２４は、信号ＬＤ＿ＥＲＲを“１”にして、ＬＤ２５ａの点灯不良が発生したことを照明制御部２２に伝える。
【０１０７】
照明制御部２２は、信号ＬＤ＿ＥＲＲが“０”から“１”に変化すると、ＬＤ２５ａが点灯不良の状態にあることを示すエラー情報を生成し、送信データＴＤ１として通信Ｉ／Ｆ２１に出力する。この送信データＴＤ１は、制御装置１０を宛先として通信Ｉ／Ｆ２１からネットワーク５０上に送出され、制御装置１０により受信される。
【０１０８】
制御装置１０は、照明装置２０から送信データＴＤ１として送出されたエラー情報を受信すると、例えば、ロボット４０の動作を停止させる制御データを生成し、この制御データを第１の実施形態と同様の方法により、ネットワーク５０に接続されたロボット４０の駆動部４３に送信する。これにより、ロボット４０によるワークＷのピッキング動作が停止される。
【０１０９】
その後、例えばユーザによって照明装置２０のＬＤ２５ａが点灯不良となっていた原因が取り除かれると、制御装置１０から照明装置２０と撮像装置３０に対する同報パケットの送信が再開されて、上述した動作が行われる。
【０１１０】
図２１は、本実施形態の照明装置２０の動作例を説明するフローチャートであり、照明制御部２２およびＬＤ駆動部２４の処理手順の一例を示している。
【０１１１】
通信Ｉ／Ｆ２１によって受信データＲＤ１が受信されると（ステップＳ７０１）、照明制御部２２は、まず、信号ＴＣ１を“１”  にしてタイマ２３を起動する（ステップＳ７０２）。そして、照明制御部２２は、受信データＲＤ１が制御装置１０からの応答要求であるか否かを判定し（ステップＳ７０３）、受信データＲＤ１が制御装置１０からの応答要求であれば（ステップＳ７０３：Ｙｅｓ）、その時点のタイマ２３の計時データＴＭＤ１を送信データＴＤ１として出力し（ステップＳ７１７）、信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ７１４）。
【０１１２】
一方、受信データＲＤ１が制御装置１０からの応答要求でない場合（ステップＳ７０３：Ｎｏ）、照明制御部２２は、受信データＲＤ１が点灯開始コマンドを含む同報パケットであるか否かを判定し（ステップＳ７０４）、点灯開始コマンドを含む同報パケットであれば（ステップＳ７０４：Ｙｅｓ）、第１の実施形態と同様に、タイマ２３の計時データＴＭＤ１が同報パケットに含まれる待機時間Ｔｗ１に達するまで待機し（ステップＳ７０５：Ｎｏ）、タイマ２３の計時データＴＭＤ１が待機時間Ｔｗ１に達すると（ステップＳ７０５：Ｙｅｓ）、制御信号ＬＤＧを“１”にする（ステップＳ７０６）。一方、受信データＲＤ１が点灯開始コマンドを含む同報パケットではなく、上述の遅延時間送信コマンドである場合（ステップＳ７０４：Ｎｏ）、照明制御部２２は、ステップＳ７０２でタイマ２３を起動した後、すぐに制御信号ＬＤＧを“１”にする（ステップＳ７０６）。
【０１１３】
制御信号ＬＤＧが“１”になると、ＬＤ駆動部２４は、信号ＴＣ１１を“１”にしてタイマ２７を起動する（ステップＳ７０７）。その後、ＬＤ駆動部２４は、タイマ２７の計時データＴＭＤ１１をモニタするとともに、信号ＬＤ＿ＯＮが“０”から“１”に変化するかどうかを観測する（ステップＳ７０８、ステップＳ７０９）。そして、信号ＬＤ＿ＯＮが“１”になることなくタイマ２７の計時データＴＭＤ１１が所定時間Ｔｄ１１に達した場合（ステップＳ７０９：Ｎｏ、ステップＳ７０８：Ｙｅｓ）、ＬＤ駆動部２４は、信号ＬＤ＿ＥＲＲを“１”にする（ステップＳ７１５）。信号ＬＤ＿ＥＲＲが“１”になると、照明制御部２２は、ＬＤ２５ａが点灯不良の状態にあることを示すエラー情報を送信データＴＤ１として出力する（ステップＳ７１６）とともに、制御信号ＬＤＧを“０”にする（ステップＳ７１２）。その後、ＬＤ駆動部２４が信号ＴＣ１１を“０”にしてタイマ２７をリセットする（ステップＳ７１３）とともに、照明制御部２２が信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ７１４）。
【０１１４】
一方、タイマ２７の計時データＴＭＤ１１が所定時間Ｔｄ１１に達する前に信号ＬＤ＿ＯＮが“１”になった場合は（ステップＳ７０８：Ｎｏ、ステップＳ７０９：Ｙｅｓ）、受信データＲＤ１が遅延時間送信コマンドであれば（ステップＳ７１０：Ｎｏ）、照明制御部２２が、その時点のタイマ２３の計時データＴＭＤ１を送信データＴＤ１として出力する（ステップＳ７１１）とともに、制御信号ＬＤＧを“０”にする（ステップＳ７１２）。その後、ＬＤ駆動部２４が信号ＴＣ１１を“０”にしてタイマ２７をリセットする（ステップＳ７１３）とともに、照明制御部２２が信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ７１４）。また、受信データＲＤ１が点灯開始コマンドを含む同報パケットである場合は（ステップＳ７１０：Ｙｅｓ）、照明制御部２２から送信データＴＤ１は出力されず、ＬＤ駆動部２４が信号ＴＣ１１を“０”にしてタイマ２７をリセットする（ステップＳ７１３）とともに、照明制御部２２が信号ＴＣ１を“０”にしてタイマ２３をリセットする（ステップＳ７１４）。
【０１１５】
以上、具体的な例を挙げながら説明したように、本実施形態では、照明装置２０が、光源として用いるＬＤ２５ａの点灯不良が発生した場合にこれを検知してエラー情報を制御装置１０に送信する。そして、制御装置１０は、照明装置２０からエラー情報を受信すると、ロボット４０の動作を停止させるようにしている。したがって、本実施形態によれば、照明装置２０の異常に起因して撮像装置３０により撮像されたワークＷの画像が不良画像となった場合であっても、この不良画像に基づくロボット４０の誤動作を有効に防止して、その後の迅速且つ適切な対応を可能とすることができ、信頼性の高いピッキングシステム１を実現することができる。
【０１１６】
＜補足説明＞
以上説明した各実施形態における制御装置１０の機能的な構成要素（データ読み出し部１０３、待機時間算出部１０４、同報パケット生成部１０５、送信制御部１０６など）は、例えば上述したように、図４のＣＰＵ１１がＲＡＭ１２を作業領域として利用して、ＲＯＭ１３やＨＤＤ１４等に格納されたプログラムを実行することにより実現することができる。この場合、上記プログラムは、制御装置１０にインストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録して提供される。また、上記プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由で制御装置１０にダウンロードさせることにより提供するように構成してもよい。さらに、上記プログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。また、上記プログラムを、例えば制御装置１０内のＲＯＭ１３等に予め組み込んで提供するようにしてもよい。
【０１１７】
以上、本発明の具体的な実施形態について説明したが、上述した実施形態は本発明の一適用例を示したものである。本発明は、上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で様々な変形や変更を加えて具体化することができる。
【０１１８】
例えば、上述した実施形態では、本発明を適用したシステムの一例としてピッキングシステム１を例示したが、本発明は、同期制御したい複数の機器をネットワークで接続した様々なシステムに対して有効に適用することができる。
【０１１９】
また、上述した実施形態では、同期制御の対象となる機器として照明装置２０と撮像装置３０を例示したが、照明装置２０と撮像装置３０以外の機器を同期制御の対象とする場合であっても、上述した実施形態で説明した方法により適切な同期制御を実現できる。また、上述した実施形態では、照明装置２０と撮像装置３０の２つの機器を同期制御の対象としているが、同期制御の対象となる機器が３つ以上であっても、同様の方法により適切な同期制御を実現することができる。
【０１２０】
また、上述した実施形態では、撮像装置３０により撮像されたワークＷの画像を処理してワークＷの３次元形状を認識する機能を、制御装置１０内の画像処理エンジン１５により実現する構成としたが、この画像処理エンジン１５に相当する機能を、制御装置１０の外部で実現する構成としてもよい。例えば、画像処理エンジン１５に相当する機能を持つ画像処理装置を、制御装置１０から独立した装置としてネットワーク５０に接続する構成としてもよい。この場合、撮像装置３０により撮像されたワークＷの画像がネットワーク５０を通じて画像処理装置に送信され、画像処理装置での処理によりワークＷの位置、形状、傾きの少なくとも一つを含む３次元形状が認識される。そして、画像処理装置での処理により得られたワークＷの３次元形状の認識結果が、ネットワーク５０を通じて制御装置１０に送信される。
【０１２１】
また、上述した実施形態では、撮像装置３０として単眼カメラを用いる例を想定したが、撮像装置３０としてステレオカメラを用いるようにしてもよい。この場合、例えば、撮像装置３０により撮像された２つの画像が制御装置１０に送信され、制御装置１０の画像処理エンジン１５によって、２つの画像から視差画像（距離画像）が生成され、この視差画像に基づいてワークＷの３次元形状の認識が行われる。あるいは、撮像装置３０の内部で生成された視差画像が制御装置１０に送信され、制御装置１０の画像処理エンジン１５によって、この視差画像に基づいてワークＷの３次元形状の認識が行われる。
【符号の説明】
【０１２２】
１  ピッキングシステム
１０  制御装置
２０  照明装置
３０  撮像装置
４０  ロボット
５０  ネットワーク
１０２  データ保持部
１０３  データ読み出し部
１０４  待機時間算出部
１０５  同報パケット生成部
１０６  送信制御部
１０７  遅延時間取得部
１０８  応答時間計測部
【先行技術文献】
【特許文献】
【０１２３】
【特許文献１】特開２０１０−２４０７８５号公報
【非特許文献】
【０１２４】
【非特許文献１】原口裕哉、他７名、「無線LAN規格（IEEE802.11）を用いた産業ロボット用高速無線同期通信システム」、ワイヤレステクノロジーパーク2014（WTP-2014）、2014年5月
【図１】
2017011573.tif 000003
【図２】
2017011573.tif 000004
【図３】
2017011573.tif 000005
【図４】
2017011573.tif 000006
【図５】
2017011573.tif 000007
【図６】
2017011573.tif 000008
【図７】
2017011573.tif 000009
【図８】
2017011573.tif 000010
【図９】
2017011573.tif 000011
【図１０】
2017011573.tif 000012
【図１１】
2017011573.tif 000013
【図１２】
2017011573.tif 000014
【図１３】
2017011573.tif 000015
【図１４】
2017011573.tif 000016
【図１５】
2017011573.tif 000017
【図１６】
2017011573.tif 000018
【図１７】
2017011573.tif 000019
【図１８】
2017011573.tif 000020
【図１９】
2017011573.tif 000021
【図２０】
2017011573.tif 000022
【図２１】
2017011573.tif 000023