(57)【要約】【課題】  より簡易で小規模な回路構成で撮像タイミングと位置および姿勢の取得タイミングとの同期誤差を低減するための技術を提供すること。【解決手段】  撮像の開始を指示するトリガの入力に応じて出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから規定時間が経過するタイミングで出力信号の信号レベルを非アクティブレベルに遷移させる。規定時間は、出力信号の信号レベルをアクティブレベルに遷移させてから位置および姿勢の取得の開始を指示するまでの時間として設定されている時間である。【選択図】  図２
2020041848.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置であって、
撮像の開始を指示するトリガの入力に応じて出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから規定時間が経過するタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させる信号生成部を備え、
前記規定時間は、前記出力信号の信号レベルをアクティブレベルに遷移させてから位置および姿勢の取得の開始を指示するまでの時間として設定されている時間である
ことを特徴とする撮像装置。
【請求項２】
前記規定時間は、前記出力信号の信号レベルをアクティブレベルに遷移させてから前記撮像を開始するまでの時間として設定されている時間と、該撮像の期間として設定されている期間の長さの半分と、の和であることを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記規定時間は、前記出力信号の信号レベルをアクティブレベルに遷移させてから前記撮像を開始するまでの時間として設定されている時間と、該撮像の期間として設定されている期間の長さの半分と、の和から規定の遅延時間を引いた時間であることを特徴とする請求項１に記載の撮像装置。
【請求項４】
前記出力信号の信号レベルをアクティブレベルに遷移させてから前記撮像を開始するまでの時間として設定されている時間が、前記出力信号の信号レベルをアクティブレベルに遷移させてから経過するタイミングで、前記撮像が開始されることを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項５】
前記出力信号の信号レベルがアクティブレベルに遷移したことに応じて前記撮像のための照明が開始され、該照明の開始の後に前記撮像が開始されることを特徴とする請求項１乃至４の何れか１項に記載の撮像装置。
【請求項６】
前記撮像の終了に応じて前記照明が終了することを特徴とする請求項５に記載の撮像装置。
【請求項７】
制御部と、撮像部と、照明部と、を有する計測装置であって、
前記制御部は、撮像の開始を指示するトリガを前記撮像部に入力し、前記撮像部から出力された出力信号の信号レベルがアクティブレベルに遷移したことに応じて、前記照明部へ出力する信号の信号レベルをアクティブレベルに遷移させ、該出力信号の信号レベルが非アクティブレベルに遷移したことに応じて、位置および姿勢の取得を行う装置に該取得を指示するトリガを出力する信号生成部を備え、
前記撮像部は、前記入力に応じて前記出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから規定時間を経過するタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させる信号生成部を備え、
前記規定時間は、前記出力信号の信号レベルをアクティブレベルに遷移させてから前記取得の開始を指示するまでの時間として設定されている時間である
ことを特徴とする計測装置。
【請求項８】
前記照明部は、該照明部へ出力する信号の信号レベルがアクティブレベルに遷移したことに応じて照明を開始することを特徴とする請求項７に記載の計測装置。
【請求項９】
請求項７又は８に記載の計測装置と、
前記計測装置による計測結果に基づいて被検物を保持して移動させるロボットと
を有することを特徴とするシステム。
【請求項１０】
請求項７又は８に記載の計測装置を用いて被検物を計測する工程と、
該計測の結果に基づいて被検物を処理することにより物品を製造する工程と
を有することを特徴とする物品の製造方法。
【請求項１１】
撮像装置であって、
撮像の開始を指示するトリガの入力に応じて出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから前記撮像が開始される前のタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させる信号生成部を備えることを特徴とする撮像装置。
【請求項１２】
前記信号生成部は、
前記出力信号の信号レベルをアクティブレベルに遷移させてから位置および姿勢の取得の開始を指示するまでの時間として設定されている時間から、規定の遅延時間を引いた規定時間を取得し、
前記出力信号の信号レベルをアクティブレベルに遷移させてから前記規定時間が経過するタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させる
ことを特徴とする請求項１１に記載の撮像装置。
【請求項１３】
撮像装置の制御方法であって、
撮像の開始を指示するトリガの入力に応じて出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから規定時間が経過するタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させ、
前記規定時間は、前記出力信号の信号レベルをアクティブレベルに遷移させてから位置および姿勢の取得の開始を指示するまでの時間として設定されている時間である
ことを特徴とする撮像装置の制御方法。
【請求項１４】
制御部と、撮像部と、照明部と、を有する計測装置の制御方法であって、
前記制御部は、撮像の開始を指示するトリガを前記撮像部に入力し、前記撮像部から出力された出力信号の信号レベルがアクティブレベルに遷移したことに応じて、前記照明部へ出力する信号の信号レベルをアクティブレベルに遷移させ、該出力信号の信号レベルが非アクティブレベルに遷移したことに応じて、位置および姿勢の取得を行う装置に該取得を指示するトリガを出力し、
前記撮像部は、前記入力に応じて前記出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから規定時間を経過するタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させ、
前記規定時間は、前記出力信号の信号レベルをアクティブレベルに遷移させてから前記取得の開始を指示するまでの時間として設定されている時間である
ことを特徴とする計測装置の制御方法。
【請求項１５】
撮像装置の制御方法であって、
撮像の開始を指示するトリガの入力に応じて出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから前記撮像が開始される前のタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させることを特徴とする撮像装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置および姿勢の計測技術に関するものである。
【背景技術】
【０００２】
近年のロボット技術の発展により、工業製品の組立などの複雑な工程をロボットが担うようになってきている。ロボットによる組立工程を実現するために、ロボットのハンドなどのエンドエフェクトと、把持対象部品（計測対象物）と、の間の相対的な位置姿勢を計測することが求められている。把持対象部品の位置姿勢を計測する方法としては、例えば、次のような手法が知られている。即ち、二次元画像（２Ｄ画像）から得られるエッジ情報と、パターン投影法などの三次元計測法により得られる三次元画像（３Ｄ画像）の両方を利用して、ＣＡＤなどのモデルとフィッティングすることにより計測対象物の位置姿勢を検出する。組立工程の高速化に適応するためには、ロボットが移動しながら計測対象物または対象箇所の位置姿勢を計測する必要がある。そのために、計測装置（センサ）が有するローカル座標（以下、センサ座標系）における計測対象物の位置姿勢を計測する。また、ロボットを制御するロボットコントローラ（以下、ＲＣ）において、グローバル座標系（以下、ロボット座標系）におけるセンサの位置姿勢を取得する。そして、センサ座標系における計測対象物の位置姿勢と、ロボット座標系におけるセンサの位置姿勢と、に基づいて、ロボット座標系における計測対象物の位置姿勢を計測する。その際、センサによる計測対象物の位置姿勢の計測と、センサの位置姿勢の取得と、を同時刻に行うことが必要となる。
【０００３】
また計測対象物を照明部により照明しながら撮像部によって撮像した画像に基づいて計測対象物の位置姿勢を計測する計測装置（センサ）では、照明部に計測対象物を照明させる照明期間と撮像部に計測対象物を撮像させる撮像期間とを一致させることは難しい。これは、照明部の応答性と撮像部の応答性とが異なるからである。ここで照明期間と撮像期間とが一致しない場合においては、いずれかの期間に応じてセンサの位置姿勢の取得タイミングを決定すると、計測装置による計測対象物の計測タイミングとセンサの位置姿勢の取得タイミングとの間に同期誤差を生じる。このような同期誤差が存在すると、ロボット座標系における計測対象物の位置姿勢を正確に把握することができない。
【０００４】
特許文献１には、物体を撮像する撮像部の合焦位置を変化させながら撮像した複数の画像に基づいてコントラスト式のオートフォーカスサーチを行う画像測定装置について開示されている。特許文献１に開示されている画像測定装置は、撮像タイミングと合焦位置の取得タイミングとのずれ量を求め、そのずれ量に基づいて合焦位置を補正する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５７４０６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
計測期間に応じて決定されるタイミング情報として、ＲＣなどより入力される計測開始トリガや計測期間に対して、所定のタイミングでパルス信号のような信号を出力する。その場合には計測装置内に時間を管理するためのカウンタやタイマが必要となる。また別の形態としては、計測装置からＲＣへタイムスタンプ（計測時刻情報を示すデジタルデータ）を送信する。この場合には、計測装置とＲＣの時刻合わせが必要で、さらにＲＣにおいてセンサの位置姿勢に関連する座標系を連続的に蓄積するためにメモリなどの記憶デバイスが必要となる。このようにＲＣならびにセンサについて、システムや回路規模が膨大かつ複雑になるという課題がある。本発明では、より簡易で小規模な回路構成で撮像タイミングと位置および姿勢の取得タイミングとの同期誤差を低減するための技術を提供する。
【課題を解決するための手段】
【０００７】
本発明の一様態は、撮像装置であって、撮像の開始を指示するトリガの入力に応じて出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから規定時間が経過するタイミングで前記出力信号の信号レベルを非アクティブレベルに遷移させる信号生成部を備え、前記規定時間は、前記出力信号の信号レベルをアクティブレベルに遷移させてから位置および姿勢の取得の開始を指示するまでの時間として設定されている時間であることを特徴とする。
【発明の効果】
【０００８】
本発明の構成によれば、より簡易で小規模な回路構成で撮像タイミングと位置および姿勢の取得タイミングとの同期誤差を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】システム１の構成例を示す図。
【図２】センサ１００の機能構成例を示すブロック図。
【図３】システム１の動作を示すタイミングチャート。
【図４】システム１の動作を示すタイミングチャート。
【図５】システム１の動作を示すタイミングチャート。
【図６】撮像部２０および制御部３０の回路構成の一例を示す図。
【図７】撮像部２０および制御部３０の回路の構成例を示す図。
【図８】撮像同期信号１、撮像同期信号２の生成について説明する図。
【図９】計測装置とロボットアームを含む制御システムを示す図である。
【図１０】センサ１００およびロボットコントローラ４００の動作のフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の１つである。
【００１１】
［第１の実施形態］
先ず、本実施形態に係るシステム１の構成例について、図１を用いて説明する。図１に示す如く、本実施形態に係るシステム１は、物体５００の位置および姿勢を計測するための計測装置７００と、計測装置７００による計測結果に基づいて該物体５００を把持する等の作業を行うためのロボットシステム８００と、を有する。
【００１２】
先ず、計測装置７００について説明する。計測装置７００は、センサ１００と、コンピュータ２００と、を有する。センサ１００は、ロボット３００のハンド３１０に固定して取り付けられている。センサ１００は、物体５００の距離画像を撮像し、該撮像した距離画像をコンピュータ２００に対して出力する。
【００１３】
コンピュータ２００は、ＣＰＵ等のプロセッサとメモリ（ＲＡＭ、ＲＯＭ、ハードディスク等）とを有する装置であり、プロセッサがメモリに格納されているコンピュータプログラムやデータを用いて処理を実行することで、各種の処理を実行する装置である。コンピュータ２００は、センサ１００から出力された距離画像に対して物体５００のモデル（仮想物体）をフィッティングすることで、「センサ座標系における物体５００の位置および姿勢」を算出する。センサ座標系とは、例えば、センサ１００における１点を原点とし、該原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。そしてコンピュータ２００は、該算出した「センサ座標系における物体５００の位置および姿勢」を、後述するロボットコントローラ４００に対して送出する。なお、コンピュータ２００の機能の一部若しくは全部をセンサ１００に組み込んでも良い。
【００１４】
次に、ロボットシステム８００について説明する。ロボットシステム８００は、ロボットコントローラ４００と、ロボット３００と、を有する。ロボット３００は、物体５００を把持するためのハンド３１０を有する。ロボット３００は、ハンド３１０を複数軸（たとえば６軸）に関して操作可能であり、複数軸の制御量（それぞれの軸に対するハンド３１０の位置および姿勢の制御量）を出力するエンコーダ（不図示）を含む。エンコーダからの出力値は、ロボットコントローラ４００がロボット３００を制御するために使用されるほか、センサ１００の位置および姿勢を取得するために使用される。
【００１５】
ロボットコントローラ４００は、ハンド３１０を含むロボット３００全体の動作制御を行うと共に、ロボット３００のエンコーダからの出力値に基づいて「ロボット座標系におけるセンサ１００の位置および姿勢」を算出する。ロボット座標系とは、例えば、ロボット３００の台座における規定の位置を原点とし、該原点で互いに直交する３軸をそれぞれ、ｘ軸、ｙ軸、ｚ軸とする座標系である。そしてロボットコントローラ４００は、「ロボット座標系におけるセンサ１００の位置および姿勢」と、「センサ座標系における物体５００の位置および姿勢」と、から「ロボット座標系における物体５００の位置および姿勢」を算出する。
【００１６】
「センサ座標系における物体５００の位置および姿勢」を表す行列をＴｒＷＳ、「ロボット座標系におけるセンサ１００の位置および姿勢」を表す行列をＴｒＳＲとする。このとき、「ロボット座標系における物体５００の位置および姿勢」を表す行列ＴｒＷＲは、以下の（式１）に従って計算することができる。
【００１７】
ＴｒＷＲ＝ＴｒＷＳ×ＴｒＳＲ  …  （式１）
そしてロボットコントローラ４００は、「ロボット座標系における物体５００の位置および姿勢」に基づいてロボット３００を制御することで、例えば、ハンド３１０によって物体５００を把持する等の作業を可能にする。
【００１８】
本実施形態に係るシステム１では、ロボットコントローラ４００による制御に従ってロボット３００がハンド３１０を移動させることによってセンサ１００を物体５００に対して相対的に移動させながら、センサ１００によって物体５００が撮像される。コンピュータ２００は、センサ１００による物体５００の撮像画像（距離画像）に基づいて「センサ座標系における物体５００の位置および姿勢」を算出する。そしてコンピュータ２００は、該算出した「センサ座標系における物体５００の位置および姿勢」をロボットコントローラ４００に対して送出する。一方、ロボットコントローラ４００は、ロボット３００のエンコーダからの出力値に基づいて、「ロボット座標系におけるセンサ１００の位置および姿勢」を取得する。
【００１９】
ここで、移動しながら撮像する際には撮像のための撮像期間を有する。その撮像期間中にもセンサ１００と物体５００との相対的な位置関係は変わってしまう。撮像された画像はこの撮像期間における平均的な撮像画像となり、この撮像画像をもとに検出される物体５００の位置および姿勢もまた同様に、この撮像期間における平均的な物体５００の位置および姿勢となる。本実施形態では、計測装置７００による「センサ座標系における物体５００の位置および姿勢」の計測タイミングと、ロボットコントローラ４００による「ロボット座標系におけるセンサ１００の位置および姿勢」の取得タイミングと、を同期させる。ロボットコントローラ４００は、計測装置７００による計測の期間の中間タイミングで「ロボット座標系におけるセンサ１００の位置および姿勢」を取得する。ここで特に物体５００に対するセンサ１００の相対的な移動が等速であるとみなせる場合には、計測期間の中間点（計測中心時刻）におけるタイミングを取得する。
【００２０】
ここで参考として、同期がずれることによる計測誤差を例示する。例えば、計測装置７００による「センサ座標系における物体５００の位置および姿勢」の計測タイミングと、ロボットコントローラ４００による「ロボット座標系におけるセンサ１００の位置および姿勢」の取得タイミングと、の間の同期ずれが１ｍｓｅｃとする。また、ロボット３００のハンド３１０を移動させることによってセンサ１００が１ｍ／ｓｅｃで移動したとする。このとき、ロボット座標系に変換された物体５００の位置は１ｍｍの誤差を生じることとなる。
【００２１】
次に、センサ１００の機能構成例について、図２のブロック図を用いて説明する。本実施形態では、センサ１００における計測方式は、アクティブステレオ方式の代表的な手法であるパターン投影法によるものとするが、これに限るものではない。
【００２２】
図２に示す如く、センサ１００は、物体５００に対してパターン光を照射（照明）する照明部１０と、パターン光が照射された物体５００を撮像する撮像部２０と、照明部１０および撮像部２０を制御する制御部３０と、を備える。
【００２３】
照明部１０は、ＬＥＤなどの光源と、マスクにより該光源の光からパターン構造を有するパターン光を形成して物体５００へ投影する投影光学系と、該光源を駆動するための駆動回路と、を有する。マスクは、ガラス基板にクロムメッキなどで遮光部を構成することにより形成される。またマスクの代わりにＤＭＤや液晶パネルなどによりパターン光を形成してもよい。
【００２４】
撮像部２０は、撮像素子と、物体５００の像を該撮像素子の面上に結像させる結像光学系と、を有する。撮像素子にはＣＣＤ撮像素子やＣＭＯＳ撮像素子などの２次元イメージセンサが適用可能である。撮像部２０で撮像された画像（撮像画像）は、Ｅｔｈｅｒｎｅｔ、ＣａｍｅｒａＬｉｎｋまたはＵＳＢなどのインターフェイスを介してコンピュータ２００に対して送出される。
【００２５】
制御部３０は、ＦＰＧＡなどのＰＬＤ、またはＡＳＩＣなどで構成される。制御部３０はコンピュータ２００と接続され、コンピュータ２００から送信されるパラメータ（照明条件および撮像条件などの計測パラメータ）に基づいて、照明部１０および撮像部２０を制御する。コンピュータ２００と制御部３０とは、ＥｔｈｅｒｎｅｔまたはＲＳ−２３２Ｃなどのインターフェイスによって接続され、計測パラメータなどの情報が相互に通信される。
【００２６】
また制御部３０は、ロボットコントローラ４００と接続され、ロボットコントローラ４００から入力される計測トリガに応答して、照明部１０および撮像部２０の動作開始を制御する。また制御部３０は、計測装置７００による物体５００の位置および姿勢の計測タイミングと、ロボットコントローラ４００によるセンサ１００の位置および姿勢の取得タイミングと、を同期させるために計測時刻信号をロボットコントローラ４００へ送信する。ロボットコントローラ４００は、計測時刻信号を受けたタイミング（もしくはその直後）で「ロボット座標系におけるセンサ１００の位置および姿勢」を取得する。ロボットコントローラ４００と制御部３０とは、例えば、フォトカプラなどのインターフェイスによって接続される。
【００２７】
また、制御部３０と撮像部２０とはデジタル信号線で接続される。制御部３０は、ロボットコントローラ４００から計測トリガを受けると、撮像トリガを撮像部２０に対して送信し、該計測トリガを受けていない限りは、撮像トリガを撮像部２０に対して送信しない。
【００２８】
また、制御部３０と照明部１０とはデジタル信号線で接続される。制御部３０は、照明部１０に対して出力する照明信号の信号レベルをアクティブレベルに遷移させると、照明部１０はパターン光を照射し、該照明信号の信号レベルを非アクティブレベルに遷移させると、照明部１０はパターン光の照射を実施しない。
【００２９】
次に、本実施形態に係るシステム１の動作について、図３のタイミングチャートを用いて説明する。ロボットコントローラ４００から出力される計測トリガは、ロボットコントローラ４００と制御部３０との間のインターフェイスを構成する回路および通信路を経由して制御部３０に入力される。制御部３０は計測トリガを受けると、撮像トリガを撮像部２０に対して出力する。
【００３０】
なお、制御部３０がロボットコントローラ４００からの計測トリガを検知してから、撮像トリガを撮像部２０に対して出力するまでには、トリガの検出回路や伝送路に起因する遅延が発生する。図３では、この遅延（時間）、つまり、計測トリガの信号レベルがアクティブレベルに遷移したタイミング（遷移タイミング）から、撮像トリガの信号レベルがアクティブレベルに遷移したタイミング（遷移タイミング）までの間の時間をτ１としている。制御部３０では照明部１０や撮像部２０の制御ならびにコンピュータ２００などとの通信を並行して行うことから、計測トリガを受けてから撮像トリガを出力するまでの時間にばらつきを生じる可能性がある。
【００３１】
撮像部２０は、制御部３０から撮像トリガを入力すると、該入力と同時に、撮像部２０のクロック（つまり撮像タイミングに同期した信号）である「制御部３０に対して出力する撮像同期信号１」の信号レベルをアクティブレベルに遷移させる。
【００３２】
制御部３０は、撮像部２０からの撮像同期信号１の信号レベルがアクティブレベルに遷移したことを検知すると、照明部１０へ出力する照明信号の信号レベルをアクティブレベルに遷移させる。
【００３３】
また撮像部２０は、撮像同期信号１の信号レベルをアクティブレベルに遷移させてから（照明信号の信号レベルがアクティブレベルになってから）Δｔだけ遅延したタイミングで、撮像タイミングに同期した信号である「制御部３０に出力する撮像同期信号２」の信号レベルをアクティブレベルに遷移させる。Δｔは、コンピュータ２００からの計測パラメータによって規定されている。撮像同期信号２は、撮像部２０が１枚の撮像画像を撮像するための撮像期間ＴＥを表す信号であり、撮像同期信号２の信号レベルがアクティブレベルである期間が撮像期間ＴＥを表している。然るに撮像部２０は、撮像同期信号２の信号レベルがアクティブレベルに遷移したタイミングで撮像を開始し、撮像同期信号２の信号レベルが非アクティブレベルに遷移したタイミングで撮像を終了する。
【００３４】
図３に例示するように、撮像期間ＴＥよりも照明期間ＴＬ（照明信号の信号レベルがアクティブレベルである期間）を長くする設定は、照明部１０の動作状態の切り替えに要する時間よりも撮像部２０の動作状態の切り替えに要する時間が短い場合に有用である。Δｔは照明部１０が発する照明光が安定するために必要な時間を考慮して設定される。
【００３５】
ここで、撮像部２０における撮像に同期した信号である撮像同期信号１ならびに撮像同期信号２の生成について、図８を用いて説明する。まず一般的に入手可能な産業用カメラのインターフェイスは入力信号が１つ、出力信号が２つのものが多い。２つの出力信号のうち一方の出力信号はストロボ信号のように任意のタイミングでステータスを切り替え可能な信号であり、他方の出力信号は撮像期間やデータ転送期間などの駆動状態を表す信号である。撮像部２０についても、このような、入力信号が１つ、出力信号が２つの「一般的に入手可能な産業用カメラ」を適用することができる。この場合、撮像部２０は図８（ａ）、（ｂ）に示す如く、タイミングｔ０で入力される入力トリガ（撮像トリガ）に対し、タイミングｔ１、ｔ２、ｔ３、ｔ４で信号の極性を遷移させる信号生成回路２１，２２を有する。タイミングｔ１、ｔ２、ｔ３、ｔ４はコンピュータ２００から設定されるパラメータによって規定される。図３の例では、ｔ１は撮像トリガを受けたと同時のタイミング、ｔ２は（ｔ１＋ＴＳ１）（ＴＳ１については後述する）、ｔ３は（ｔ１＋Δｔ）、ｔ４は（ｔ３＋ＴＥ）（ＴＥは撮像期間ＴＥの期間長）、として設定される。
【００３６】
図８（ａ）、（ｂ）の例では、撮像同期信号１用の信号生成回路２１は、タイミングｔ１において撮像同期信号１の信号レベルをアクティブレベルに遷移させ、タイミングｔ２において撮像同期信号１の信号レベルを非アクティブレベルに遷移させる。また図８（ａ）、（ｂ）の例では、撮像同期信号２用の信号生成回路２２は、タイミングｔ３において撮像同期信号２の信号レベルをアクティブレベルに遷移させ、タイミングｔ４において撮像同期信号２の信号レベルを非アクティブレベルに遷移させる。
【００３７】
入力トリガを受けて撮像タイミングはクロックのタイミングなどでばらつく可能性がある。しかし、撮像開始タイミングｔｓから撮像終了タイミングｔｅならびに信号生成回路は同じクロックに基づいたタイミングでの動作となるので、撮像同期信号１のタイミングｔ１、ｔ２と撮像同期信号２のタイミングｔ３、ｔ４との同期精度は高いものが得られる。
【００３８】
そして撮像部２０は、撮像同期信号２の信号レベルがアクティブレベルに遷移してから、コンピュータ２００から設定されるパラメータが示す「撮像期間ＴＥ」だけ経過したタイミングで、撮像同期信号２の信号レベルを非アクティブレベルに遷移させる。制御部３０は、撮像同期信号２の信号レベルが非アクティブレベルに遷移したと同時に、照明信号の信号レベルを非アクティブレベルに遷移させる。
【００３９】
このような動作を実現させる撮像部２０および制御部３０の回路構成の一例について図６を用いて説明する。制御部３０へ出力された撮像同期信号１は、ワンパルスジェネレータへ入力される。ワンパルスジェネレータでは撮像同期信号１の信号レベルがアクティブレベルに遷移するタイミングで任意のパルスを生成してＤフリップフロップへ入力する。これによって撮像同期信号１の信号レベルがアクティブレベルに遷移するタイミングで照明信号の信号レベルはアクティブレベルに保持される。次に撮像同期信号２をＤ−ＦＦのクロック信号とすることで、撮像同期信号２が非アクティブレベルに遷移するタイミングで照明信号の信号レベルの保持が解消され、照明信号も非アクティブレベルに遷移する。このとき、照明期間ＴＬの終了タイミングは撮像期間ＴＥの終了タイミングと同じとなり、照明期間ＴＬは撮像期間ＴＥを完全に包括する。つまり照明部１０に物体５００を照明させる照明期間ＴＬと撮像部２０に物体５００を撮像させる撮像期間ＴＥとが重複する期間である計測期間Ｔは撮像期間ＴＥと同じ期間となる。
【００４０】
次に、撮像部２０は、撮像同期信号１の信号レベルをアクティブレベルに遷移させてから、後述する規定期間ＴＳ１だけ経過したタイミングで、撮像同期信号１の信号レベルを非アクティブレベルに遷移させる。上記の計測期間Ｔの期間長（つまり撮像期間ＴＥの期間長）をＴとすると、規定期間ＴＳ１の期間長ＴＳ１は以下の（式２）に従って得られる。
【００４１】
ＴＳ１＝Δｔ＋Ｔ／２  …  （式２）
つまり、「撮像同期信号１の信号レベルをアクティブレベルに遷移させてから規定期間ＴＳ１だけ経過したタイミング」は、計測期間Ｔの中間点（計測中心時刻）となる。よって撮像部２０は、計測期間Ｔの中間点（計測中心時刻）にて撮像同期信号１の信号レベルを非アクティブレベルに遷移させることになる。このような規定期間ＴＳ１は、コンピュータ２００にて計測パラメータとして予め求めておいて、撮像部２０に設定される。
【００４２】
制御部３０は、撮像同期信号１の信号レベルが非アクティブレベルに遷移したことを検知した場合には、該検知と同時に、計測時刻信号（トリガ）をロボットコントローラ４００に対して出力する。
【００４３】
ロボットコントローラ４００は、制御部３０から計測時刻信号を受けると、その直後にロボット３００のエンコーダから出力された出力値から、「ロボット座標系におけるセンサ１００の位置および姿勢」を取得する。つまり、ロボットコントローラ４００は、計測期間Ｔの中間点（計測中心時刻）の直後にロボット３００のエンコーダから出力された出力値から、「ロボット座標系におけるセンサ１００の位置および姿勢」を取得することになる。
【００４４】
このように本実施形態によれば、撮像部２０は、撮像期間ＴＥの平均的な撮像画像を撮像するので、コンピュータ２００は、撮像期間ＴＥの平均的な「物体５００のセンサ座標系における位置および姿勢」を計測することになる。また、ロボットコントローラ４００は、撮像期間ＴＥ（計測期間Ｔ）の中間点（計測中心時刻）に対応する「ロボット座標系におけるセンサ１００の位置および姿勢」を取得する。よって、本実施形態によれば、「物体５００のセンサ座標系における位置および姿勢」の計測、「ロボット座標系におけるセンサ１００の位置および姿勢」の取得、を同期させて実施することができる。つまり、「物体５００のセンサ座標系における位置および姿勢」の計測タイミングと、「ロボット座標系におけるセンサ１００の位置および姿勢」の取得タイミングと、の同期誤差を低減することができる。しかも、このような効果を、カウンタやタイマの具備、タイムスタンプ（計測時刻情報を示すデジタルデータ）の送信等を必要とせず、入力信号が１つ、出力信号が２つの「一般的に入手可能な産業用カメラ」で実現することができる。
【００４５】
上記のセンサ１００およびロボットコントローラ４００の動作について、図１０のフローチャートに従って説明する。なお、図１０のフローチャートにおける各ステップの処理は図１０に示した順序で実行することに限らず、一部の順序を変更しても良いし、幾つかのステップの処理が並行して行われても良い。
【００４６】
ステップＳ１０００では、ロボットコントローラ４００は、制御部３０に対して計測トリガを入力する。ステップＳ１００１では、制御部３０は、ロボットコントローラ４００から計測トリガを受けると、撮像トリガを撮像部２０に対して出力する。
【００４７】
ステップＳ１００２では、撮像部２０は、制御部３０から撮像トリガを入力すると、該入力と同時に、「制御部３０に対して出力する撮像同期信号１」の信号レベルをアクティブレベルに遷移させる。
【００４８】
ステップＳ１００３では、制御部３０は、撮像部２０からの撮像同期信号１の信号レベルがアクティブレベルに遷移したことを検知すると、照明部１０へ出力する照明信号の信号レベルをアクティブレベルに遷移させる。
【００４９】
ステップＳ１００４では、撮像部２０は、撮像同期信号１の信号レベルをアクティブレベルに遷移させてからΔｔだけ遅延したタイミングで、「制御部３０に出力する撮像同期信号２」の信号レベルをアクティブレベルに遷移させる。
【００５０】
ステップＳ１００５では、撮像部２０は、撮像同期信号２の信号レベルがアクティブレベルに遷移してから撮像期間ＴＥだけ経過したタイミングで、撮像同期信号２の信号レベルを非アクティブレベルに遷移させる。ステップＳ１００４〜ステップＳ１００５の間の期間（撮像期間ＴＥ）で撮像部２０は１枚の撮像画像を撮像する。
【００５１】
ステップＳ１００６では、制御部３０は、撮像同期信号２の信号レベルが非アクティブレベルに遷移したと同時に、照明信号の信号レベルを非アクティブレベルに遷移させる。
【００５２】
ステップＳ１００７では、撮像部２０は、撮像同期信号１の信号レベルをアクティブレベルに遷移させてから規定期間ＴＳ１だけ経過したタイミングで、撮像同期信号１の信号レベルを非アクティブレベルに遷移させる。
【００５３】
ステップＳ１００８では、制御部３０は、撮像同期信号１の信号レベルが非アクティブレベルに遷移したことを検知した場合には、該検知と同時に、計測時刻信号（トリガ）をロボットコントローラ４００に対して出力する。
【００５４】
ステップＳ１００９では、ロボットコントローラ４００は、制御部３０から計測時刻信号を受けると、その直後にロボット３００のエンコーダから出力された出力値から、「ロボット座標系におけるセンサ１００の位置および姿勢」を取得する。
【００５５】
なお、図１０のフローチャートは、基本的には以降の実施形態にも適用可能であるが、以降の実施形態によっては、図１０のフローチャートにおける一部のステップの処理の順序を適宜変更する等、定義変形しても構わない。
【００５６】
＜変形例＞
以下では、第１の実施形態との差分について説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。本変形例では、制御部３０とロボットコントローラ４００との間のインターフェイス回路やケーブル等に起因して、制御部３０から送信された計測時刻信号が遅延時間τ２だけ遅延してロボットコントローラ４００で受信されるケースについて説明する。このようなケースを、図４のシステム１のタイミングチャートを用いて説明する。なお、この遅延時間τ２には、ロボットコントローラ４００が計測時刻信号を受信してからセンサ１００の位置および姿勢の取得を実行するまでの遅延時間も含まれる。
【００５７】
図４に示す如く、制御部３０は計測中心時刻（計測期間Ｔの中間点）よりも伝達遅延τ２だけ前のタイミングで、計測時刻信号をロボットコントローラ４００へ出力する。その際、上記の規定期間ＴＳ１の期間長ＴＳ１は以下の（式３）に従って得られる。
【００５８】
ＴＳ１＝Δｔ+Ｔ／２−τ２  …  （式３）
これを実現する回路は、上記遅延時間τ２がない場合と同等の回路で実現することが可能である。本変形例では、図４に示す如く、遅延時間τ２は期間長（Ｔ／２）（計測期間Ｔ（撮像期間ＴＥ）の期間長の半分）よりも長い。然るに、撮像部２０は、撮像期間ＴＥが開始されるよりも前（撮像が開始されるよりも前）に、撮像同期信号１の信号レベルを非アクティブレベルに遷移させることになる。
【００５９】
遅延時間τ２は、実際に制御部３０から信号を送信し、その送信時刻とロボットコントローラ４００で該信号を受信した受信時刻と、に基づいて決定することができる。遅延時間τ２はコンピュータ２００に予め設定されており、コンピュータ２００はＴＳ１を計算し、該計算したＴＳ１を計測パラメータとして制御部３０に送信しても良い。また、コンピュータ２００は遅延時間τ２を制御部３０に送信し、制御部３０にてＴＳ１を計算しても良い。また、遅延時間τ２に含める遅延時間は上記の遅延時間に限らない。
【００６０】
このように、第１の実施形態やその変形例によれば、撮像部２０に内蔵される時間システムを基準とする、照明期間ＴＬ、撮像期間ＴＥ、タイミング情報となる計測時刻信号を生成することで、カウンタやタイマなどの時間管理をするための回路が不要となる。これにより、簡易的な装置構成にも関わらず同期精度を担保することが可能となる。
【００６１】
［第２の実施形態］
以下では、第１の実施形態との差分について説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。第１の実施形態の変形例では、遅延時間τ２は期間長（Ｔ／２）よりも長かった。本実施形態では、遅延時間τ２は期間長（Ｔ／２）よりも短いケースについて説明する。
【００６２】
遅延時間τ２は期間長（Ｔ／２）よりも短いケースにおけるシステム１のタイミングチャートを図５に示す。遅延時間τ２が期間長（Ｔ／２）よりも短いことを除けば、図４のタイミングチャートと同じである。
【００６３】
遅延時間τ２が期間長（Ｔ／２）よりも短い場合における撮像部２０および制御部３０の回路の構成例を図７に示す。照明信号は、撮像同期信号１と撮像同期信号２の論理和を照明信号とする回路構成で実現できる。本実施形態では第１の実施形態よりも、さらに簡易のロジック素子のみで回路を構成することができる。本実施形態に係る規定期間ＴＳ１は上記の（式３）に従って得られる。
【００６４】
［第３の実施形態］
計測装置７００は、物体５００の距離画像および濃淡画像を生成し、距離画像および濃淡画像の双方に基づいて、センサ座標系における物体５００の位置および姿勢を検出するようにしても良い。このように、計測装置７００は、センサ１００による撮像画像に基づいてセンサ座標系における物体５００の位置および姿勢するのであれば、その手法は特定の手法に限らない。また、制御部３０や撮像部２０にて使用する各種のパラメータの設定方法や導出方法、また、設定や導出の主体については特定の形態に限らない。
【００６５】
また、上記の各実施形態では、図示したように、アクティブレベルの信号レベルが非アクティブレベルの信号レベルよりも高いとしたが、これに限らない。つまり、非アクティブレベルの信号レベルがアクティブレベルの信号レベルよりも高いとしても良い。
【００６６】
上記の各実施形態では、ロボットコントローラ４００はセンサ１００の位置および姿勢を取得していたが、「センサ１００の位置および姿勢」は、撮像部２０の位置および姿勢であっても良いし、照明部１０の位置および姿勢であっても良い。
【００６７】
つまり、上記の撮像部２０として適用可能な撮像装置は、次のような構成を有する。撮像の開始を指示するトリガの入力に応じて出力信号の信号レベルをアクティブレベルに遷移させ、該信号レベルをアクティブレベルに遷移させてから規定時間が経過するタイミングで出力信号の信号レベルを非アクティブレベルに遷移させる信号生成部を備える。信号生成部は制御部３０に含まれる。ここで、上記の規定時間は、出力信号の信号レベルをアクティブレベルに遷移させてから位置および姿勢の取得の開始を指示するまでの時間として設定されている時間である。
【００６８】
［第４の実施形態］
上述の計測装置は、ある支持部材に支持された状態で使用されうる。本実施形態では、一例として、図９のようにロボットアーム５３００（把持装置）に備え付けられて使用される制御システムについて説明する。計測装置５１００は、支持台５３５０に置かれた被検物５２１０にパターン光を投影して撮像し、画像を取得する。そして、計測装置５１００の制御部が、又は、計測装置５１００の制御部から画像データを取得した制御部５３１０が、被検物５２１０の位置および姿勢を求め、求められた位置および姿勢の情報を制御部５３１０が取得する。制御部５３１０は、その位置および姿勢の情報に基づいて、ロボットアーム５３００に駆動指令を送ってロボットアーム５３００を制御する。ロボットアーム５３００は先端のロボットハンドなど（把持部）で被検物５２１０を保持して、並進や回転などの移動をさせる。さらに、ロボットアーム５３００によって被検物５２１０を他の部品に組み付けることにより、複数の部品で構成された物品、例えば電子回路基板や機械などを製造することができる。また、移動された被検物５２１０を加工することにより、物品を製造することができる。制御部５３１０は、ＣＰＵなどの演算装置やメモリなどの記憶装置を有する。なお、ロボットを制御する制御部を制御部５３１０の外部に設けても良い。また、計測装置５１００により計測された計測データや得られた画像をディスプレイなどの表示部５３２０に表示してもよい。
【００６９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７０】
１０：照明部  ２０：撮像部  ３０：制御部  ２００：コンピュータ  ３００：ロボット  ４００：ロボットコントローラ
【図１】
2020041848.tif 000003
【図２】
2020041848.tif 000004
【図３】
2020041848.tif 000005
【図４】
2020041848.tif 000006
【図５】
2020041848.tif 000007
【図６】
2020041848.tif 000008
【図７】
2020041848.tif 000009
【図８】
2020041848.tif 000010
【図９】
2020041848.tif 000011
【図１０】
2020041848.tif 000012