(57)【要約】【課題】処理する画像サイズを大きくすることなく、移動する撮影対象物を目標撮影位置で撮影することができる画像撮像方法を提供する。【解決手段】移動可能な撮影対象物を、少なくとも２つの異なる画質を切り換えて撮影可能なカメラ部と、カメラ部を制御することにより、撮影対象物の撮影を行うカメラ制御部と、を備える画像撮像装置の画像撮像方法において、カメラ制御部が、第１の画質で連続撮影を行う第１の撮影工程（ステップＳ４）と、カメラ制御部が、第１の撮影工程で撮影した画像から得られる複数の撮影対象物の位置に基づき、撮影対象物が所定の目標位置範囲を通過するタイミングを予測する予測演算工程（ステップＳ８）と、カメラ制御部が、通過するタイミングに、第１の画質より精細な第２の画質で撮影を行う第２の撮影工程（ステップＳ１１）と、を備える。【選択図】図４
2015035715.tif 000002
【特許請求の範囲】
【請求項１】
移動可能な撮影対象物を、少なくとも２つの異なる画質を切り換えて撮影可能なカメラ部と、
前記カメラ部を制御することにより、前記撮影対象物の撮影を行うカメラ制御部と、を備える画像撮像装置の画像撮像方法において、
前記カメラ制御部が、第１の画質で連続撮影を行う第１の撮影工程と、
前記カメラ制御部が、前記第１の撮影工程で撮影した画像から得られる複数の前記撮影対象物の位置に基づき、前記撮影対象物が所定の目標位置範囲を通過するタイミングを予測する予測演算工程と、
前記カメラ制御部が、前記通過するタイミングに、前記第１の画質より精細な第２の画質で撮影を行う第２の撮影工程と、を備える、
ことを特徴とする画像撮像方法。
【請求項２】
前記予測演算工程では、前記第１の撮影工程で撮影した画像から得られる複数の前記撮影対象物の位置に基づき、前記撮影対象物の移動経路を演算し、該移動経路に基づいて前記通過するタイミングを予測する、
ことを特徴とする請求項１記載の画像撮像方法。
【請求項３】
前記第２の撮影工程では、前記カメラ制御部は、前記撮影対象物の大きさを撮影範囲として撮影する、
ことを特徴とする請求項１又は２に記載の画像撮像方法。
【請求項４】
前記予測演算工程では、前記第１の撮影工程で撮影した複数の画像を二値化処理した複数の画像を利用して前記通過するタイミングを演算する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像撮像方法。
【請求項５】
前記予測演算工程では、前記第１の撮影工程で撮影した複数の画像において、連続する２枚の前記画像で対応する画素同士の撮影輝度を比べ、前記撮影輝度が所定の閾値以下の差分である場合に当該画素を背景として第１の輝度に変更し、前記撮影輝度が前記閾値を超える差分である場合に当該画素を前記第１の輝度とは異なる第２の輝度に変更することにより背景除去処理し、これら背景除去処理した複数の画像を利用して前記通過するタイミングを演算する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像撮像方法。
【請求項６】
請求項１乃至５のいずれか１項に記載の画像撮像方法の各工程をコンピュータに実行させるための画像撮像プログラム。
【請求項７】
請求項６に記載の画像撮像方法の各工程をコンピュータに実行させるための画像撮像プログラムが記録されたコンピュータが読み取り可能な記録媒体。
【請求項８】
撮影光学系及び撮像素子を有し、移動可能な撮影対象物を、少なくとも２つの異なる画質を切り換えて撮影可能なカメラ部と、
前記カメラ部を制御することにより、前記撮影対象物の撮影を行うカメラ制御部と、を備え、
前記カメラ制御部は、第１の画質で連続撮影を行い、撮影した画像から得られる複数の前記撮影対象物の位置に基づき、前記撮影対象物が所定の目標位置範囲を通過するタイミングを予測し、前記通過するタイミングに、前記第１の画質より精細な第２の画質で撮影を行う、
ことを特徴とする画像撮像装置。
【請求項９】
前記カメラ制御部は、前記第１の画質で撮影した画像から得られる複数の前記撮影対象物の位置に基づき、前記撮影対象物の移動経路を演算し、該移動経路に基づいて前記通過するタイミングを予測する、
ことを特徴とする請求項８記載の画像撮像装置。
【請求項１０】
前記カメラ制御部は、前記第２の画質での撮影では、前記撮影対象物の大きさを撮影範囲として撮影する、
ことを特徴とする請求項８又は９に記載の画像撮像装置。
【請求項１１】
前記カメラ制御部は、前記第１の画質で撮影した複数の画像を二値化処理した複数の画像を利用して前記通過するタイミングを演算する、
ことを特徴とする請求項８乃至１０のいずれか１項に記載の画像撮像装置。
【請求項１２】
前記カメラ制御部は、前記第１の画質で撮影した複数の画像において、連続する２枚の前記画像で対応する画素同士の撮影輝度を比べ、前記撮影輝度が所定の閾値以下の差分である場合に当該画素を背景として第１の輝度に変更し、前記撮影輝度が前記閾値を超える差分である場合に当該画素を前記第１の輝度とは異なる第２の輝度に変更することにより背景除去処理し、これら背景除去処理した複数の画像を利用して前記通過するタイミングを演算する、
ことを特徴とする請求項８乃至１０のいずれか１項に記載の画像撮像装置。
【請求項１３】
撮影対象物を移動可能な生産装置と、
請求項８乃至１２のいずれか１項に記載の画像撮像装置と、を備える、
ことを特徴とする生産システム。
【請求項１４】
前記生産装置は、把持ツールで前記撮影対象物を把持して移動可能な多関節ロボットである、
ことを特徴とする請求項１３記載の生産システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動するワーク等の撮影対象物を撮影するために好適な画像撮像方法及び画像撮像装置に関する。
【背景技術】
【０００２】
従来、ロボットを使った製品の自動組立においては、ロボットが供給された部品を把持して、把持した部品をワークに組み付けるという作業が行われる。ロボットに供給される部品は、厳密に位置姿勢が決められていない場合がある。この場合、例えば、ロボットが部品を把持した後に、部品をカメラの前まで搬送してロボットを停止させ、部品（撮影対象物）をカメラで撮影し、得られた画像に基づいてワークに対する部品の位置姿勢を認識することが行われる。そして、認識された位置姿勢に応じて、ロボットハンドの位置姿勢を変更させたり部品を持ち替えたりすることによって、部品の位置姿勢をワークに組付けることのできる位置姿勢に変更してから組付動作を行う。
【０００３】
自動組立作業を更に高速に実施するには、ロボットの減速、停止、始動、加速にかかる時間を少なくすることが効果的である。このため、カメラの前でロボットによる部品の搬送を停止させることなく、高速に移動する部品をそのまま撮影すること、即ち動体撮影を実施することが望ましい。動体撮影により部品を鮮明に撮影するためには、部品を撮影したい位置（以下、目標撮影位置と呼ぶ）を予め設定しておき、目標撮影位置で部品の鮮明な画像が得られるように照明装置とカメラを設置しておく。そして、部品が実際に目標撮影位置を通過するタイミングで、カメラに撮影トリガを与えることが必要とされる。
【０００４】
このような動体撮影を行うために、カメラの前をコンベアで搬送される部品を、カメラの内部で発生させた一定間隔の撮影トリガにより連続的に撮影する撮像装置が知られている（特許文献１参照）。この撮像装置では、目標撮影位置を画面の中心とし、撮影した画像の中で、部品が画面の中心に最も近付いた画像を最良画像として選んで出力するようになっている。このため、この撮像装置は、最新の撮影画像とその直前の撮影画像とをメモリに記憶して、２枚の画像でそれぞれ計算された部品の位置と画面中心とのずれ量に基づき、最新の画像が最良か、直前の画像が最良か、判断を保留して撮影を継続するか、を決定する。
【０００５】
最新の画像が最良であると判断される場合は、ずれ量が予め規定した閾値を下回る場合、即ち、部品が画面中心に十分に近い場合である。また、直前の画像が最良であると判断される場合は、最新の画像のずれ量が直前の画像のずれ量よりも大きくなった場合、即ち、一度画面中心に近づいた部品が中心を通り過ぎて離れ始めている場合である。判断を保留して撮影を継続する場合は、最新の画像及び直前の画像のいずれもが最良であると判断されなかった場合である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２８８０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された撮像装置では、一定間隔を開けた撮影トリガにより撮影を行うので、この一定間隔の間に物体が目標撮影位置を通過した場合には、部品の最良の画像を撮影することができない。部品が目標撮影位置を通過するタイミングと、それに最も近い撮影位置での撮影タイミングとは、最大で撮影トリガの間隔の半分の時間だけずれてしまう可能性がある。これにより、部品が高速に移動する場合には、目標撮影位置から大きく外れた位置で撮影されてしまう可能性があり、その場合は部品と照明装置との位置関係がずれて、鮮明な画像を得られない可能性があるという問題があった。
【０００８】
また、この撮像装置では、目標撮影位置から外れた位置にある部品を撮影する可能性があるため、撮像領域を実際の部品よりも大きくする必要がある。このため、画像サイズが大きくなって、画像の撮像、画像伝送、画像処理に要する時間が長くなり、自動組立作業が遅くなるという問題があった。
【０００９】
本発明は、処理する画像サイズを大きくすることなく、移動する撮影対象物を目標撮影位置で撮影することができる画像撮像方法及び画像撮像装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、移動可能な撮影対象物を、少なくとも２つの異なる画質を切り換えて撮影可能なカメラ部と、前記カメラ部を制御することにより、前記撮影対象物の撮影を行うカメラ制御部と、を備える画像撮像装置の画像撮像方法において、前記カメラ制御部が、第１の画質で連続撮影を行う第１の撮影工程と、前記カメラ制御部が、前記第１の撮影工程で撮影した画像から得られる複数の前記撮影対象物の位置に基づき、前記撮影対象物が所定の目標位置範囲を通過するタイミングを予測する予測演算工程と、前記カメラ制御部が、前記通過するタイミングに、前記第１の画質より精細な第２の画質で撮影を行う第２の撮影工程と、を備えることを特徴とする。
【００１１】
また、本発明の画像撮像装置は、撮影光学系及び撮像素子を有し、移動可能な撮影対象物を、少なくとも２つの異なる画質を切り換えて撮影可能なカメラ部と、前記カメラ部を制御することにより、前記撮影対象物の撮影を行うカメラ制御部と、を備え、前記カメラ制御部は、第１の画質で連続撮影を行い、撮影した画像から得られる複数の前記撮影対象物の位置に基づき、前記撮影対象物が所定の目標位置範囲を通過するタイミングを予測し、前記通過するタイミングに、前記第１の画質より精細な第２の画質で撮影を行うことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、カメラ制御部が、第１の画質で連続撮影して得られた複数の画像に基づいて、撮影対象物が目標位置範囲を通過するタイミングを予測し、該タイミングで第１の画質より精細な第２の画質で撮影を行うことができる。このため、撮影対象物を停止することなく撮影対象物の精細な画像を得ることができると共に、精細な画質での撮影時における撮影対象物の位置が分かるので、撮影範囲を絞ることができ、精細な画像のサイズを抑えることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係るロボット装置の概略構成を示す説明図である。
【図２】本発明の第１実施形態に係るロボット装置の画像撮像装置及び制御装置の概略を示す説明図である。
【図３】本発明の第１実施形態に係るロボット装置の画像撮像装置での撮像視野を示す説明図である。
【図４】本発明の第１実施形態に係るロボット装置の画像撮像装置によりワークの撮影を行う際の手順を示すフローチャートである。
【図５】本発明の第１実施形態に係る画像撮像装置におけるワークと撮影視野との位置関係を示す平面図であり、（ａ）〜（ｅ）はワークが撮影視野に徐々に入る状態、（ｆ）はワークが予測時刻及び予測位置にある状態である。
【図６】（ａ）〜（ｅ）はそれぞれ図５の（ａ）〜（ｅ）で撮影した画像を二値化処理した図であり、（ｆ）はワークが予測時刻及び予測位置にある際に、撮影視野における部分読み出し領域を示す図である。
【図７】ワークの複数の位置から補間直線を求め、目標ｘ軸座標から予測時刻を求め、予測時刻から予測ｙ軸座標を求める際の手順を示すグラフである。
【図８】本発明の第２実施形態に係るロボット装置の画像撮像装置及び制御装置の概略を示す説明図である。
【図９】本発明の第２実施形態に係る画像撮像装置におけるワークと撮影視野との位置関係を示す平面図であり、（ａ）〜（ｅ）はワークが撮影視野に徐々に入る状態、（ｆ）はワークが予測時刻及び予測位置にある状態である。
【図１０】（ａ）〜（ｅ）はそれぞれ図９の（ａ）〜（ｅ）で撮影した画像の差分に基づいて二値化処理した図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１５】
［第１実施形態］
図１に示すように、生産システムとしてのロボット装置１は、生産装置としてのロボット本体２と、撮影対象物としてのワークＷを上方から撮影可能な画像撮像装置３と、ロボット本体２及び画像撮像装置３を制御する制御装置４と、を備えている。本実施形態では、ロボット本体２は、ワークＷを把持して５００ｍｍ×５００ｍｍの作業領域を予め教示した軌道に沿って、最大２０００ｍｍ／ｓの速度で搬送可能になっている。
【００１６】
ロボット本体２は、多関節ロボットであり、６軸の垂直多関節アーム（以下、アームと呼ぶ）２１と、エンドエフェクタである把持ツールとしてのハンド２２とを有している。本実施形態では、アーム２１として６軸の垂直多関節アームを適用しているが、軸数は用途や目的に応じて適宜変更してもよい。また、本実施形態では、エンドエフェクタとしてハンド２２を適用しているが、これには限られず、ワークＷを把持あるいは保持して移動させることができるツールの全般を含めることができる。
【００１７】
アーム２１は、７つのリンク６１〜６７と、各リンク６１〜６７を揺動又は回動可能に連結する６つの関節７１〜７６とを備えている。各リンク６１〜６７としては、長さが固定されたものを採用している。但し、例えば、直動アクチュエータにより伸縮可能なリンクを採用してもよい。各関節７１〜７６には、各関節７１〜７６を各々駆動するモータと、モータの回転角度を検知するエンコーダと、各モータに供給する電流を検知する電流センサと、各関節７１〜７６のトルクを検知するトルクセンサと、が設けられている。
【００１８】
ハンド２２は、アーム２１の先端リンク６７に取り付けられて支持され、アーム２１の動作により位置及び姿勢の少なくとも一自由度が調整されるようになっている。ハンド２２は、２本の指２３と、これら指２３の間隔を開閉可能に支持するハンド本体２４とを備え、指２３同士が接近する閉動作によりワークＷを把持可能になっている。
【００１９】
ハンド本体２４には、指２３を動作させるためのモータと、該モータの回転角度を検知するエンコーダと、先端リンク６７に連結される連結部とが設けられている。尚、本実施形態では、ハンド２２は指２３を２本有するものとしているが、これには限られず、ワークＷを把持するために指の数は２本以上あればよい。
【００２０】
図３に示すように、ハンド２２の少なくとも画像撮像装置３から撮影される側面は、輝度の低い色、例えば黒色に塗装されている。画像撮像装置３により撮影されるハンド２２の撮影背景も輝度の低い色、例えば黒色とされている。尚、ハンド２２の少なくとも画像撮像装置３から撮影される側面の色は黒色には限られず、後述するようにワークＷの輝度に対して十分な差がある色であれば、黒色でなくてもよい。また、図３ではアーム２１の図示を省略しているが、実際にはアーム２１がハンド２２を支持しているのは勿論である。
【００２１】
図２に示すように、制御装置４は、コンピュータにより構成され、ロボット本体２及び画像撮像装置３を制御するようになっている。制御装置４を構成するコンピュータは、例えばＣＰＵ４０と、各部を制御するためのプログラムを記憶するＲＯＭ４１と、データを一時的に記憶するＲＡＭ４２と、入出力インタフェース回路（Ｉ／Ｆ）４３とを備えている。
【００２２】
本実施形態では、ワークＷは、製品を構成する部品であり、上方から視て例えば５０ｍｍ×５０ｍｍ角程度の大きさとしている。ワークＷは、パレット上に厳密な位置決めがされることなく置かれており、ハンド２２によりピックアップされ、製品組立てのため所定の位置まで搬送されるようになっている。ワークＷは、ハンド２２にピックアップされた状態では、どのような位置姿勢を取っているか不明である。このため、画像撮像装置３により精細画像を撮影した後に、制御装置４での画像処理により位置姿勢を計測して、アーム２１により位置姿勢を修正された上で、例えば、他のワークに組み付けられるようになっている。
【００２３】
図３に示すように、本実施形態では、ワークＷは輝度の高い色、例えば白色であるようにしている。このため、画像撮像装置３により撮影された画像では、ワークＷが、黒色のハンド２２及び撮影背景に対して明確に認識されるようになっている。但し、ワークＷの色は白色には限られず、ワークＷ及び撮影背景の輝度に対して十分な差がある色であれば、白色でなくてもよい。
【００２４】
次に、本実施形態の特徴部である画像撮像装置３について、図２に基づいて詳細に説明する。画像撮像装置３は、ロボット本体２から離隔して配置され、例えば、基台に支持された架台に固定されて支持されている。画像撮像装置３は、ワークＷを撮影するカメラ部３０と、該カメラ部３０を制御して画像データを取得して処理するカメラ制御部５０とを備えている。
【００２５】
カメラ部３０は、撮影光学系としてのレンズ３１と、該レンズ３１からの画像を取り込んで電気信号に変換する撮像素子３２とを備えている。レンズ３１と撮像素子３２とを組み合わせた光学系は、１００ｍｍ×１００ｍｍの撮影視野３３を持つようにしている（図３参照）。
【００２６】
撮像素子３２としては、例えばＣＭＯＳイメージセンサを適用している。但し、これには限られず、ＣＣＤセンサ等を適用してもよい。撮像素子３２は、約４メガピクセル（２０４８×２０４８画素）の空間解像度を持ち、各画素は８ｂｉｔのｂｉｔ深度を持ち、１０対のＬＶＤＳ信号により画像を出力する。即ち、撮像光学系の画素分解能は、約５０μｍ×５０μｍである。撮像素子３２により４メガピクセルを出力する場合のフレームレートは、例えば１６０ｆｐｓである。
【００２７】
尚、図３に示すように、撮影視野３３の座標系は、画像撮像装置３で撮影可能な２０４８×２０４８画素の画像エリア上に構成し、画像エリアの水平方向の右向きをｘ方向、垂直方向の下向きをｙ方向と定義する。座標の原点（ｘ＝１、ｙ＝１）は、画像エリアの左上の点とする。また、画像エリアの右上の点は（ｘ＝２０４８、ｙ＝１）、左下の点は（ｘ＝１、ｙ＝２０４８）、右下の点は（ｘ＝２０４８、ｙ＝２０４８）とする。
【００２８】
撮像素子３２は、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）等の通信を介して、内蔵されるレジスタへ設定値を書き込んだ上で、約４メガピクセルの精細画像を読み出すようになっている。撮像素子３２は、内蔵されるレジスタに書き込んだ設定値により、１／２×１／２（１画素飛ばし）、１／４×１／４（３画素飛ばし）等の間引き量で画像を間引きした低画質（第１の画質）の間引き画像を読み出しできる。また、間引きした量に応じてフレームレートを高速化でき、例えば１／４×１／４の間引きであれば、例えばフレームレートは１６倍の２５６０ｆｐｓとなる。
【００２９】
また、撮像素子３２の撮影モードは、一定のフレームレートで連続的に画像を撮影する連続撮影モードと、外部トリガによって１枚の画像を撮影するトリガ撮影モードとに切換可能になっている。更に、撮像素子３２は、２０４８×２０４８画素の有効画素の中から、実際に読み出す矩形領域を指定する部分読み出し機能を備えている。部分読み出し機能を有効にすると、読み出し範囲のピクセル数に応じてフレームレートは高速になる。
【００３０】
撮像素子３２は、ベイヤ型のＲＧＢカラーフィルタを搭載しており、例えば撮像した画像を１／４×１／４（縦横３画素飛ばし）で間引けば、全画素がＲ（赤色）のカラーフィルタを搭載した画像となる。撮像素子３２は、各撮影フレームで、信号伝送中は垂直同期信号がＨｉｇｈとなる。
【００３１】
本実施形態においては、後述するコントローラ５８が、１／４×１／４の間引き読み出しで、かつ連続撮影モードとする設定値を、撮像素子３２のレジスタへ書込んで、高速撮影状態で待機する。本実施形態では、この撮影モードを動画撮影モードと呼ぶ。例えば、図５（ａ）〜（ｅ）に示すように、動画撮影モードで撮影した場合は、フレームレートによって定められる一定時間ごとに連続撮影される。
【００３２】
ワークＷが撮影視野３３に入り、カメラ制御部５０が、精細画像での撮影タイミングと撮影位置を算出する。そして、コントローラ５８は、間引き設定を解除して、部分読み出し領域３４を指定することで（図６（ｆ）参照）、撮像素子３２のレジスタにトリガ撮影モードとする設定値を書き込む。コントローラ５８は、撮像素子３２を、撮影トリガを待機する状態とし、トリガが入力されたら間引きの無い高画質（第２の画質）の精細画像を１枚撮影する。本実施形態では、この撮影モードをトリガ撮影モードと呼ぶ。即ち、カメラ部３０は、ワークＷを、少なくとも２つの異なる画質を切り換えて撮影可能になっている。
【００３３】
図２に示すように、撮像素子３２で得られた間引き画像及び精細画像は、いずれも後述する画像入力インタフェース（Ｉ／Ｆ）５１へ出力される。
【００３４】
カメラ制御部５０は、画像入力インタフェース５１と、画像分岐部５２と、画像出力インタフェース（Ｉ／Ｆ）５３と、位置検出部５４と、内部メモリ５５と、時刻予測部５６と、位置予測部５７と、コントローラ５８と、遅延部５９とを備える。また、カメラ制御部５０は、これらを搭載する電子回路基板からなる。画像分岐部５２と、位置検出部５４と、内部メモリ５５と、時刻予測部５６と、位置予測部５７と、コントローラ５８と、遅延部５９とは、電子回路基板上に実装されるＦＰＧＡデバイスの中の演算ブロックとして実装されている。ＦＰＧＡとは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙである。演算ブロックは、周知のＨＤＬ言語でのハードウェア記述を基にした合成回路と、ＦＰＧＡが備えるマクロ回路とにより実装されている。
【００３５】
尚、本実施形態では、画像入力インタフェース５１及び画像出力インタフェース５３はＦＰＧＡとは別個に実装されているが、これには限られずＦＰＧＡ内に実装してもよい。また、本実施形態では、ＦＰＧＡにより演算ブロックを構成しているが、これには限られず、例えば、プログラムにより動作するコンピュータ（ＣＰＵやＭＰＵ等を含む）や、ＡＳＩＣ等を適用してもよい。ＡＳＩＣとは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔである。これらの構成は、回路面積、コスト、演算速度等の性能のバランスを考慮した上で、適宜設計することができる。
【００３６】
画像入力インタフェース５１としては、撮像素子３２から入力したＬＶＤＳ信号を、電子回路内で扱いやすいパラレル信号に変換する周知のデシリアライザＩＣを用いる。ＬＶＤＳ信号とは、Ｌｏｗ  Ｖｏｌｔａｇｅ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｓｉｇｎａｌ、即ち、低電圧差動シグナリングである。デシリアライザＩＣとしては、ＬＶＤＳ信号の差動ペアを１０対入力できるものを用いる。デシリアライザＩＣとして、差動ペアの入力数が不足するものを複数個並列で用いてもよい。ここでは、画像入力インタフェース５１の出力は、８０ｂｉｔ（８ｂｉｔ×１０ＴＡＰ）のパラレル信号、画素クロック信号、水平同期信号、垂直同期信号とし、画像分岐部５２へ出力される。尚、上述のデシリアライザＩＣを用いずに、ＬＶＤＳ信号の入力が可能な周知のＦＰＧＡデバイスに入力し、パラレル信号に変換するようにしてもよい。
【００３７】
画像分岐部５２は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。画像分岐部５２は、画像入力インタフェース５１から入力したパラレル信号、画素クロック信号、水平同期信号、垂直同期信号を、コントローラ５８から入力した撮影設定に基づいて、画像出力インタフェース５３あるいは位置検出部５４へ出力する。撮影設定とは、撮像する画像が間引き画像であれば「０」、撮像する画像が精細画像であれば「１」とする１ｂｉｔ信号である。例えば、パラレル信号、画素クロック信号、水平同期信号、垂直同期信号は、撮影設定が「０」であれば位置検出部５４へ出力され、撮影設定が「１」であれば画像出力インタフェース５３へ出力される。
【００３８】
画像出力インタフェース５３は、画像分岐部５２から入力した８０ｂｉｔのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号を、カメラリンク等のＬＶＤＳ映像信号に変換する周知のシリアライザＩＣを用いている。若しくは、ＬＶＤＳ信号の出力が可能なＦＰＧＡデバイスを用い、ＦＰＧＡ内でパラレル信号をシリアル信号に変換してもよい。画像出力インタフェース５３から出力されたＬＶＤＳ信号は、制御装置４に入力され、外部のカメラリンクグラバボード等で受信され、ＣＰＵ４０等で画像処理される。
【００３９】
位置検出部５４は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。位置検出部５４は、画像分岐部５２から入力した８０ｂｉｔのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号からなる画像信号に対して、画像上におけるワークＷの位置を移動経路に基づき計算して検出する。具体的な計算手法については後述する。位置検出部５４は、検出されたワークＷの画像の重心のｘ座標及びｙ座標を時刻予測部５６に出力する。
【００４０】
内部メモリ５５は、位置検出部５４で検出されたワークＷの画像の重心のｘ座標及びｙ座標を、例えば２フレーム分保存する程度の小容量としている。
【００４１】
時刻予測部５６は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。時刻予測部５６は、位置検出部５４から入力したワークＷの画像の重心のｘ座標及びｙ座標と、コントローラ５８から入力したフレームレートの値を基に、目標撮影位置３５ａ（図６（ｆ）参照）にワークＷが至る時刻（タイミング）を予測する。
【００４２】
コントローラ５８は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。コントローラ５８は、予め撮像素子３２に対しＳＰＩインタフェースを介して１／４×１／４の間引き設定、及び外部トリガによらない連続撮影設定を指令して動画撮影モードにする。また、コントローラ５８は、画像分岐部５２に対して撮影設定として「０」を出力し、ワークＷが撮影視野に現れて位置予測部５７から入力があるまで待機する。
【００４３】
ワークＷが撮影視野３３に現れて、位置予測部５７から予測時刻と、ワークＷの画像の重心のｘ座標及びｙ座標とが入力された場合、コントローラ５８は以下のように動作する。まず、コントローラ５８は、撮像素子３２に対しＳＰＩインタフェースを介して動画撮影モードを解除し、外部トリガによるトリガ撮影モードに設定する。そして、コントローラ５８は、ワークＷの画像の重心のｘ座標及びｙ座標を中心とした画像内でのワークＷのサイズと同サイズの範囲をＲＯＩ（Ｒｅｇｉｏｎ  Ｏｆ  Ｉｎｔｅｒｅｓｔ）とし、撮像素子３２の読み出し範囲として設定する。更に、コントローラ５８は、画像分岐部５２に対して撮影設定として「１」を出力し、予測時刻を遅延部５９へ出力する。
【００４４】
遅延部５９は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。遅延部５９は、内部にタイマを持ち、撮像素子３２からはストローブ信号を、コントローラ５８からは予測時刻を入力し、最後に入力したストローブ信号を基準に、入力した予測時刻まで待機し、予測時刻になったら撮像素子３２にトリガ信号を出力する。
【００４５】
次に、本実施形態のロボット装置１によってワークＷを把持して搬送する際に、画像撮像装置３によりワークＷを撮影してその位置姿勢を算出する動作の手順について、図４に示すフローチャートに沿って説明する。
【００４６】
ワークＷを搬送する前に、予めロボット本体２に教示を行っておく。ここでは、ハンド２２にワークＷを把持させ、ワークＷが画像撮像装置３の撮影視野３３を一定速度で直線上を通過するよう、ロボット本体２に教示する。ワークＷは、撮影視野３３をほぼ水平方向（ｘ方向）に移動するようにハンド２２の動作を教示し、ワークＷが撮影視野３３で水平方向の中心位置に至った瞬間の画像を撮影するようにする。
【００４７】
本実施形態では、ワークＷを把持したハンド２２が、撮影視野３３を２０００ｍｍ／ｓの一定速度で移動され、ワークＷは撮影視野３３の中心付近を通り、移動方向は撮影視野３３においてｘ方向に近い方向となるようにする。即ち、撮影視野３３の左端（ｘ＝１）から現れて、ほぼｘ方向へ直線的に移動し、撮影視野３３の右端（ｘ＝２０４８）へ消失するように移動させる。
【００４８】
また、図６（ｆ）に示すように、時刻予測部５６の予測に使用する目標撮影位置３５ａは、所定のタイミングでワークＷの重心が位置すると予測される目標点であり、目標位置範囲３５の中にあるものとする。図３に示すように、目標位置範囲３５は、ｘ座標を１０２４、ｙ座標を１〜２０４８とするｙ方向に沿った直線であり、撮影視野３３での中心点を通るｙ方向の線（ｘ座標）としている。
【００４９】
ここで、例えば、ワークＷが複数箇所に区切られたトレイの中で各区画に１つずつ収納されている等、ワークＷの供給位置が個別に異なる場合は、ワークＷが目標位置範囲３５に達した場合でも、ハンド２２がワークＷを把持する位置は毎回異なる。このため、ハンド２２がワークＷを把持してから組付先へ向かう軌道は、必ずしも一定ではない。そこで、ワークＷが目標位置範囲３５に達した際に、ワークＷのｙ方向の位置は様々であり、ワークＷの位置を中心とした適切な画像領域でワークＷを撮影して読み出すために、ｙ方向の位置を予測して１点の目標撮影位置３５ａを予測するようにしている。尚、ワークＷが撮影視野３３において目標位置範囲３５に至った際のｙ方向の位置、即ち目標撮影位置３５ａは、後述のように位置予測部５７が予測する。
【００５０】
ロボット装置１の動作が開始されると、コントローラ５８は、ＳＰＩ等の通信により、撮像素子３２を動画撮影モードに設定し、撮影を開始する（ステップＳ１）。コントローラ５８は、撮像素子３２が動画撮影モードであることを示す信号を画像分岐部５２へ出力する。これにより、コントローラ５８は、画像分岐部５２に、撮像素子３２により動画撮影モードで撮影され画像入力インタフェース５１から入力された画像を、位置検出部５４へ分岐させるための制御信号を与える。また、コントローラ５８は、撮像素子３２のフレームレートを時刻予測部５６へ出力し、時刻予測部５６が予測計算にフレームレートの値を使用できるようにする。
【００５１】
撮影が開始されると、ロボット本体２はワークＷを搬送する（ステップＳ２）。ワークＷの搬送中は、画像撮像装置３での処理は撮影モードによって異なる（ステップＳ３）。撮影モードが動画撮影モードである場合は、撮像素子３２は、撮影モードが変更されるまでの間、撮影視野３３の全域において連続的に間引き画像を撮影し続け、そのデータを以下の手順で位置検出部５４に送信する（ステップＳ４、第１の撮影工程）。
【００５２】
まず、撮像素子３２により撮影された画像は、例えばＬＶＤＳ信号として、順次画像入力インタフェース５１へ出力される。この時、ＬＶＤＳ信号は、例えば１０対の差動信号線で伝送され、各々の差動信号線では７逓倍でシリアライズされたシリアル信号が出力される。同時に、撮像素子３２は、毎回の撮影時に発生するストローブ信号を遅延部５９へ出力し、後に精細画像を撮影する際の撮影トリガを正確なタイミングで発生させるための基準信号として機能させる。
【００５３】
画像入力インタフェース５１は、撮像素子３２からＬＶＤＳ信号として連続的に入力された間引き画像を、順次パラレル信号の画像データに変換し、画像分岐部５２へ出力する。画像分岐部５２は、予めコントローラ５８により、撮像素子３２が動画撮影モードであることを示す信号を入力されており、動画撮影モードで撮影された画像データを位置検出部５４に順次出力する。
【００５４】
位置検出部５４は、入力された間引き画像の中で、ワークＷが存在する位置を計算して検出する（ステップＳ５）。本実施形態では、位置検出部５４は画像内でワークＷが存在する位置として、ワークＷの画像の重心のｘ座標及びｙ座標を算出するようにしており、その計算手法を、以下に詳細に説明する。
【００５５】
本実施形態では、ハンド２２及び撮影背景は黒色、ワークＷは白色であるため、位置検出部５４に入力される画像信号は、図５に示す画像となる。位置検出部５４は、入力されたパラレル画像信号に対し、１画素を意味する８ｂｉｔ毎に、二値化処理を行う。二値化処理は、予め定めた閾値（例えば１２８）を超えればＨＩＧＨ（１）、閾値以下ならばＬＯＷ（０）とすることで実行する。図５（ａ）〜（ｅ）の各画像を二値化した画像のイメージを、同じ図番で対応させて図６（ａ）〜（ｅ）の二値画像に示す。但し、本実施形態では後述するように二値化処理は画素レベルでパイプライン処理されるので、図６（ａ）〜（ｅ）のようなまとまった二値画像が保存あるいは出力されることはない。
【００５６】
ここで、画素値（輝度値）が０か１である二値画像の重心を計算する方法について説明する。画像の重心とは、一般に、輝度値を質量とみなした時の質量分布の中心座標を表すもので、二値画像においては輝度値が１である複数の画素の中心座標となる。また、画像の重心を計算するには、画像の０次モーメント及び１次モーメントを利用する。画像のモーメントも、一般に輝度値を質量とみなした時の重力のモーメントを表している。二値画像における０次モーメントは、輝度値が１である画素数の総和を表し、二値画像における１次モーメントは、輝度値が１である画素の位置座標値の総和を表す。本実施形態では、ｘ方向について計算した画像の１次モーメントを画像の水平１次モーメント、ｙ方向について計算した画像の１次モーメントを画像の垂直１次モーメントと呼ぶ。画像の重心のｘ座標は、画像の水平１次モーメントに画像の０次モーメントの逆数を乗じることにより計算でき、画像の重心のｙ座標は、画像の垂直１次モーメントに画像の０次モーメントの逆数を乗じることにより計算できる。
【００５７】
以上を踏まえ、得られた二値信号に対して画像の０次モーメントと、画像の水平１次モーメントと、画像の垂直１次モーメントとを計算する。位置検出部５４は、ＦＰＧＡの演算ブロック内に、水平座標レジスタと、垂直座標レジスタと、０次モーメントレジスタと、水平１次モーメントレジスタと、垂直１次モーメントレジスタとを備えている。水平座標レジスタは、画素クロックに同期してインクリメントされ、水平同期信号に同期してリセットされる。垂直座標レジスタは、水平同期信号に同期してインクリメントされ、垂直同期信号に同期してリセットされる。０次モーメントレジスタは、画像の０次モーメントの累積値を保持する。水平１次モーメントレジスタは、画像の水平１次モーメントの累積値を保持する。垂直１次モーメントレジスタは、画像の垂直１次モーメントの累積値を保持する。
【００５８】
各レジスタは初期値として０を保持する。初めに１ｂｉｔの二値画像信号が入力されると、１ｂｉｔの値が０次モーメントレジスタの値に足し合わされる。また、（ｂｉｔの値×（水平座標レジスタの値）×４）を計算し、水平１次モーメントレジスタの値に足し合わす。また、（ｂｉｔの値×（垂直座標レジスタの値）×４）を計算し、垂直１次モーメントレジスタの値に足し合わす。
【００５９】
以上の計算を、画素クロックに同期して全画素分（２０４８×２０４８画素）の回数繰り返す。これにより、間引き画像全体の画像の０次モーメントと、画像の水平１次モーメントと、画像の垂直１次モーメントとが、それぞれ０次モーメントレジスタ、水平１次モーメントレジスタ、垂直１次モーメントレジスタに格納される。
【００６０】
次に、計算された画像の０次モーメントと、画像の水平１次モーメントと、画像の垂直１次モーメントとから、画像の重心を計算する。画像の重心のｘ座標は、（水平１次モーメントレジスタ値／０次モーメントレジスタ値）の式でハードウェア演算される。画像の重心のｙ座標は、（垂直１次モーメントレジスタ値／０次モーメントレジスタ値）の式でハードウェア演算される。
【００６１】
以上のように演算されたワークＷの画像の重心のｘ座標及びｙ座標が、位置検出部５４から出力され、時刻予測部５６に入力される。ここで、撮影視野にワークＷが存在しない場合は、位置検出部５４は、ワークＷの画像の重心の水平座標及び垂直座標として「０」を出力する。
【００６２】
尚、以上で述べた演算のうち、各画素における二値化処理と画像の０次モーメント、画像の水平１次モーメント、画像の垂直１次モーメントの計算のための累積計算は、パイプライン処理により行われる。即ち、例えば全ての画素の二値化処理が終わるまで待つのではなく、２画素目の二値化処理を行っている時間には同時に１画素目の累積計算を行い、３画素目の二値化処理を行っている時間には同時に２画素目の累積計算を行う。
【００６３】
本実施形態の説明では、ワークＷの位置を間引き画像から検出する方法として、画像の二値化処理と、画像の０次モーメントと、画像の水平１次モーメントと、画像の垂直１次モーメントとの計算を行った上で画像の重心を計算する方法について説明した。しかしながら、これには限られず、撮影背景が黒色であることを前提とした周知の物体検出方法を用いてもよい。例えば、予め間引き画像と対応する分解能を持つワークＷのテンプレート画像をＦＰＧＡ内に格納し、周知のテンプレートマッチングを行う処理回路をＦＰＧＡに実装し、ワークＷの位置を検出してもよい。また、画像にノイズが混じり、ワークＷがカメラの撮影視野３３に存在しなくてもワークＷが検出されてしまう場合には、画像の０次モーメントの値を閾値にして出力座標を「０」にする等のフィルタ処理を施してもよい。
【００６４】
時刻予測部５６は、コントローラ５８からフレームレートを入力したときに、予めフレーム間の時間間隔を求めておく。時間間隔は、フレームレートと時間間隔とを紐付けるＬＵＴ（Ｌｏｏk  Ｕｐ  Ｔａｂｌｅ）をＦＰＧＡ内に実装することで求める。若しくは、ＦＰＧＡ内に除算回路を構成して、フレームレートの逆数を計算してもよい。
【００６５】
時刻予測部５６は、位置検出部５４から入力したワークＷの画像の重心のｘ座標及びｙ座標を、ＦＰＧＡ内の内部メモリ５５に保存する。内部メモリ５５は、座標を少なくとも２フレーム分保存し、ワークＷの画像の重心のｘ座標及びｙ座標が書き込まれると、最も古い１フレーム分の値を削除し、常に最新の２フレーム分の値を保存する。初期状態として、２フレーム分の画像の重心のｘ座標及びｙ座標に「０」が保存されている。撮影視野３３にワークＷが出現するまでは、以上の保存サイクルを繰り返す。
【００６６】
更に、時刻予測部５６は、保持したワークＷの画像の重心のｘ座標及びｙ座標の両値が、２フレーム連続で所定の閾値を超えたか否かを判断する（ステップＳ６）。閾値は、ワークＷの全体が撮影視野３３に現れるまで待機するためのパラメータであり、例えば、ｘ座標についてはワークＷのｘ方向のサイズに相当するピクセル数の半分とし、ｙ座標についてはワークＷのｙ方向のサイズに相当するピクセル数の半分とする。
【００６７】
具体的には、図６（ａ）〜（ｃ）に示す状態では、ワークＷはｘ方向において撮影視野３３に入り切っていないので、重心のｘ座標は閾値より小さくなる。これに対し、図６（ｄ）（ｅ）に示す状態では、ワークＷの画像の全体が撮影視野３３に入っているので、重心のｘ座標及びｙ座標の両値が閾値を超える。
【００６８】
時刻予測部５６が、保持したワークＷの画像の重心のｘ座標及びｙ座標の両値が２フレーム連続では閾値を超えていないと判断した場合は、ワークＷの搬送及び動画撮影モードでの撮影を続行する（ステップＳ２）。
【００６９】
時刻予測部５６が、保持したワークＷの画像の重心のｘ座標及びｙ座標の両値が２フレーム連続で所定の閾値を超えたと判断した場合は、ワークＷが目標位置範囲３５を通過する予測時刻を算出する（ステップＳ７、予測演算工程）。以下、時刻予測部５６が２フレーム分の位置の値とフレーム間の時間間隔の値とを使った線形予測によって予測時刻を算出する手順を、詳細に説明する。
【００７０】
まず、２フレーム分のワークＷの画像の重心のｘ座標及びｙ座標、フレーム間の時間間隔を用い、周知の線形補間処理により、画像の重心のｘ座標及び時間ｔとの関係を表す関数と、画像の重心のｙ座標及び時間ｔの関係を表す関数とを導出する。
【００７１】
具体的には、図６（ｄ）（ｅ）に示すように、２フレーム分の画像の重心のｘ座標をそれぞれｘ１，ｘ２と定義し、２フレーム分の画像の重心のｙ座標をそれぞれｙ１，ｙ２と定義する。そして、図７に示すように、フレーム間の時間間隔をＴとし、２フレーム目を撮影した時間を時刻０、即ちｔ＝０とする。また、ワークＷの画像の重心のｘ座標及び時間ｔの関係を表す関数を、傾きをａ、切片をｂとした直線の式としてｘ＝ａｔ＋ｂとする。同様に、ワークＷの画像の重心のｙ座標及び時間ｔの関係を表す関数を、傾きをｃ、切片をｄとした直線の式としてｙ＝ｃｔ＋ｄとする。
【００７２】
これらの式からａ，ｂ，ｃ，ｄを求める。ａ，ｂ，ｃ，ｄはそれぞれ、ａ＝（ｘ２−ｘ１）／Ｔ、ｂ＝ｘ２、ｃ＝（ｙ２−ｙ１）／Ｔ、ｄ＝ｙ２により求めることができる。ここで、目標位置範囲３５のｘ座標を目標ｘ座標ｘとすると、予測時刻は、ｔ＝（ｘ−ｂ）／ａで算出できる。尚、目標位置範囲３５をｙ座標にした場合には、ｔ＝（ｙ−ｄ）／ｃとなる。
【００７３】
時刻予測部５６は、上述の２つの式に、予め定めた目標位置範囲３５のｘ座標あるいはｙ座標を代入して予測時刻を算出し、ａ，ｂ，ｃ，ｄの値及び予測時刻を位置予測部５７へ出力する。尚、本実施形態では、２フレーム分の画像の重心のｘ座標及びｙ座標を用いて線形補間により予測時刻を算出したが、３フレーム分以上の重心座標を用いて、２次式、３次式、楕円、その他の曲線等で近似してもよい。また、前述した通り、目標位置範囲３５をｙ座標とした場合には、画像の重心のｙ座標を用いて同様に予測時刻を算出する。以上の処理は、ＦＰＧＡ内で加算回路、減算回路、乗算回路、除算回路を構成することにより実装する。
【００７４】
位置予測部５７は、時刻予測部５６から入力されたａ，ｂ，ｃ，ｄの値と予測時刻より、予測時刻におけるワークＷの画像の重心のｘ座標及びｙ座標、即ち予測位置である目標撮影位置３５ａを算出する（ステップＳ８、予測演算工程）。位置予測部５７は、ワークＷの画像の重心のｘ座標及びｙ座標を、時間関数ｘ＝ａｔ＋ｂ，ｙ＝ｃｔ＋ｄに予測時刻を代入することにより計算する。位置予測部５７は、算出した予測時刻と、ワークＷの画像の重心のｘ座標及びｙ座標とを、コントローラ５８へ出力する。
【００７５】
尚、本実施形態のように目標位置範囲３５をｘ座標とした場合は、位置予測部５７で計算するワークＷの画像の重心のｘ座標は目標位置範囲３５と同じであるので、予め値をＦＰＧＡ内のレジスタに記憶しておいて利用してもよい。また、目標位置範囲３５をｙ座標とした場合には、位置予測部５７で計算するワークＷの画像の重心のｙ座標は目標位置範囲３５と同じであるので、予め値をＦＰＧＡ内のレジスタに記憶しておいて利用してもよい。この処理は、ＦＰＧＡ内で加算回路及び乗算回路を構成することにより実装する。
【００７６】
コントローラ５８は、予測位置を中心としたワークＷの画像内でのサイズと同サイズの範囲をＲＯＩとし、それを図６（ｆ）に示すように、撮像素子３２の目標撮影位置３５ａを中心とする部分読み出し領域３４として設定する。コントローラ５８は、動画撮影モードを解除し、トリガ信号に同期して精細画像を撮影するトリガ撮影モードに変更する（ステップＳ９）。更に、撮像素子３２がトリガ撮影モードであることを示す信号を画像分岐部５２へ出力すると共に、予測時刻を遅延部５９へ出力する。
【００７７】
その後も、ワークＷの搬送は続けられ（ステップＳ２）、ステップＳ３においては撮影モードがトリガ撮影モードであるので、遅延部５９の動作に移行する。即ち、遅延部５９がコントローラ５８から予測時刻をタイマに入力されることにより、ストローブ信号を基準として、入力した予測時刻分の時間を待機し、予測時刻に至ったか否かを判断する（ステップＳ１０）。遅延部５９が、予測時刻に至っていないと判断した場合は、ワークＷの搬送は続けられ（ステップＳ２）、再度、予測時刻に至ったか否かを判断する（ステップＳ１０）。
【００７８】
遅延部５９は、予測時刻に至ったと判断した場合は、遅延部５９は撮像素子３２に対してトリガ信号を出力する（ステップＳ１１、第２の撮影工程）。遅延部５９からのトリガ信号を入力した撮像素子３２は、レンズ３１を介して精細画像を撮像する。この時、図５（ｆ）に示すように、ワークＷは予測位置まで移動している。図６（ｆ）に示すように、撮像素子３２は、予め部分読み出し領域３４が設定されており、移動するワークＷが目標撮影位置３５ａに位置する瞬間のワークＷを撮影するのに過不足のない必要最小限のサイズの画像で撮影することができる。得られた画像は、画像入力インタフェース５１及び画像分岐部５２を介して、画像出力インタフェース５３へ出力される。
【００７９】
画像出力インタフェース５３は、精細画像をパラレル信号として入力し、入力されたパラレル信号の画像データを、例えば７逓倍でシリアライズし、カメラリンク等の映像信号規格に則って１０対の差動信号線に乗せて出力する（ステップＳ１２）。出力された映像信号は、制御装置４等のフレームグラバボード等で受信されて処理され、その結果に基づいて制御装置４はワークＷの位置姿勢を算出する（ステップＳ１３）。
【００８０】
上述したように本実施形態の画像撮像装置３によれば、カメラ制御部５０が、連続撮影して得られた間引き画像に基づいて、ワークＷが目標撮影位置３５ａを通過するタイミングを予測し、該タイミングで精細画像の撮影を行うことができる。このため、ワークＷを停止することなく精細画像を得ることができると共に、精細画像の撮影時におけるワークＷの位置が分かるので、撮影範囲をワークＷと同程度の大きさの部分読み出し領域３４に絞ることができ、精細画像のサイズを抑えることができる。即ち、高速に移動するワークＷでも、位置が外れることを考慮して実際の部品サイズよりも大きな画像領域を撮影する必要が無くなるため、画像サイズを小さくすることができる。このため、画像の撮像、画像伝送、画像処理にかかる時間を短縮することができ、ロボット装置１による自動組立作業を高速化できる。
【００８１】
また、本実施形態の画像撮像装置３によれば、ワークＷが目標撮影位置３５ａに至る時刻と画像上の位置を予測できるので、ワークＷが目標撮影位置３５ａを通過する厳密なタイミングで撮影トリガを発生させることができる。このため、ワークＷが高速に移動する場合等、フレーム間のワークＷの移動量が大きくても、予め設定した目標撮影位置３５ａ付近でワークＷを撮影することができる。よって、高速に移動するワークＷでも、照明装置との位置関係がずれずに鮮明な画像を得ることができる。
【００８２】
［第２実施形態］
次に、本発明の第２実施形態に係る画像撮像装置１０３について図８〜図１０に沿って説明する。
【００８３】
画像撮像装置１０３のカメラ制御部１５０は、第１実施形態の内蔵のメモリ５５を省略し、より大容量のメモリであるカメラＲＡＭ１５５を備えている点で異なる。その他の構成については、第１実施形態と同様の構成であるので、同一符号を付して詳細な説明を省略する。また、ロボット本体２の動作、ワークＷの経路、撮影の解像度等も第１実施形態と同様とする。
【００８４】
ここで、第１実施形態では、撮影背景は黒色であったが、撮影背景に別のワークが存在する場合等においては、撮影背景を全て黒色にできるとは限らない。また、撮影背景の全てを黒色に設定できたとしても、外乱光の反射等により表面が光り、明るくなることで撮影背景を黒色にできない場合が有り得る。本実施形態では、図９に示すように、撮影視野３３に白い他のワーク３６が見えるものとする。そこで、第２実施形態では、カメラ制御部１５０が背景除去処理を実現可能となっている。
【００８５】
カメラ制御部１５０が備えるカメラＲＡＭ１５５は、電子回路基板上に実装されるＲＡＭであり、例えば１０個の２５６ＫＢｙｔｅ  ＳＤＲＡＭである。各ＳＤＲＡＭのｂｉｔ幅は８ｂｉｔとする。ＳＤＲＡＭは、ＲＯＷアドレスとＣＯＬＵＭＮアドレスを指定し、同期信号に同期して読み出しと書き込みを行うことができる。
【００８６】
位置検出部１５４は、カメラＲＡＭ１５５にアクセスするためのメモリインタフェースを備えている。メモリインタフェースの演算ブロックは、１０個のＳＤＲＡＭに合わせて並列に１０ブロック用意する。メモリインタフェースは、垂直同期信号がＨＩＧＨになったとき、メモリアクセスを開始し、画素クロック信号をメモリアクセスの同期信号としてＳＤＲＡＭに供給する。また、画素クロック信号に同期してＲＯＷアドレスをインクリメントし、水平同期信号に同期してＣＯＬＵＭＮアドレスをインクリメントすることでＳＤＲＡＭにアクセスするアドレスを設定する。垂直同期信号がＬＯＷになったとき、メモリアクセスを終了する。カメラＲＡＭ１５５には、１フレーム前の画像信号が格納されている。
【００８７】
次に、本実施形態の画像撮像装置１０３によりワークＷを撮影してその位置姿勢を算出する動作の手順について説明する。ここでは、第１実施形態での動作の手順と異なる部分について詳細に説明する。それ以外の手順は第１実施形態と同様であるので、説明を省略する。
【００８８】
第１実施形態のステップＳ５では、位置検出部５４は、間引き画像を直接二値化処理することによりワークＷの重心位置を算出している。これに対し、本実施形態では、位置検出部１５４は、撮影されて入力されたばかりの最新の画像と、その直前の画像との差分値を、１画素ずつ順に計算することで、背景除去処理した複数の画像を利用して、ワークＷの重心位置を算出している。
【００８９】
具体的には、位置検出部１５４は、直前の画像を、入力されたパラレル画像信号と、画素クロック信号と水平同期信号と垂直同期信号に同期して、メモリインタフェースを介してカメラＲＡＭ１５５から読み出して得る。位置検出部１５４は、最新の画像と直前の画像との各画素の差分値に対し、背景除去処理（二値化処理）を行う。即ち、連続する２枚の間引き画像で対応する画素同士の撮影輝度を比べている。背景除去処理は、画素値が予め定めた閾値（例えば１２８）以下であれば背景としてのＬＯＷ（０、第１の輝度）とし、閾値を超えればＨＩＧＨ（１、第２の輝度）とすることで実行する。
【００９０】
二値化された画像のイメージを図１０に示す。例えば、図１０（ｄ）の画像は、最新画像（図９（ｄ））と、直前画像（図９（ｃ））とを比較して、差分値に対して二値化処理したものである。但し、本実施形態では、後述するように二値化処理は画素レベルでパイプライン処理されるので、図１０のようなまとまった二値画像が保存あるいは出力されることはない。
【００９１】
位置検出部１５４は、第１実施形態のステップＳ５と同様に、画像の０次モーメントと、画像の水平１次モーメント及び垂直１次モーメントを計算し、ワークＷの画像の重心のｘ座標及びｙ座標を算出する。
【００９２】
更に、位置検出部１５４は、入力されたパラレル画像信号を、画素クロック信号と水平同期信号と垂直同期信号により、メモリインタフェースを介してカメラＲＡＭ１５５に上書きする。これにより、１０個のＳＤＲＡＭに、１フレーム分の間引き画像（５１２×５１２画素）が記憶される。この記憶画像は、次のフレームにおいて、１フレーム前の画像として使用される。
【００９３】
上述したように、本実施形態の画像撮像装置３によれば、ワークＷの撮影背景が黒色でなく明るさを持っていても、ワークＷが目標撮影位置３５ａを通過する厳密なタイミングで撮影トリガを発生させることができる。このため、高速に移動するワークＷでも目標撮影位置３５ａで撮影することができ、背景を黒くすることが困難な装置においても、予め設定した位置付近でワークＷを撮影することができる。
【００９４】
尚、本実施形態では、ワークＷの撮影背景をフレーム間差分を利用して除去する方法について説明したが、これには限られず、他の周知または新規の背景除去処理を適用してもよい。例えば、カメラＲＡＭ１５５を不揮発メモリとして、カメラＲＡＭ１５５に予めワークＷ及びハンド２２の写っていない背景画像を格納しておき、その差分を計算して背景を除去してもよい。また、画像にノイズが混じり、ワークＷが撮影視野３３に存在しなくてもワークＷが検出されてしまう場合には、画像の０次モーメントの値を閾値にして出力座標を「０」にする等のフィルタ処理を施してもよい。
【００９５】
また、上述した第１及び第２実施形態の画像撮像装置３では、目標位置範囲３５をｙ方向の線とする場合について説明しているが、これには限られない。例えば、目標位置範囲３５をｘ方向の線とし、ハンド２２の教示方向を撮影視野３３でのｘ方向とするようにしてもよい。
【００９６】
また、上述した第１及び第２実施形態の画像撮像装置３では、目標位置範囲３５を撮影視野３３での中心を通るｙ方向の線とする場合について説明しているが、これには限られない。例えば、照明環境等に応じて、撮影視野３３の中心を通らないｙ方向の線を目標位置範囲３５としてもよい。この場合、例えば、目標位置範囲３５を撮影視野３３の中心よりもワークＷの移動方向下流側に配置することで、ワークＷの軌道計算に使用可能な間引き画像を増加させて予測精度を向上させ、より高精度に精細画像を撮影することができる。
【００９７】
また、上述した第１及び第２実施形態の画像撮像装置３では、目標位置範囲３５はワークＷの移動方向にほぼ直交する線であるが、これには限られず、ワークＷの移動方向に幅を有する円形や矩形等であってもよい。この場合、目標撮影位置は、目標位置範囲の内部の任意の位置であればよく、目標位置範囲の中であれば複数枚の精細画像の撮影を行うことも可能である。
【００９８】
また、上述した第１及び第２実施形態の画像撮像装置３では、コントローラ５８は、ワークＷの画像の重心のｘ座標及びｙ座標を中心とした画像内でのワークＷのサイズと同サイズの範囲をＲＯＩとしているが、これには限られない。処理速度等に制約が無ければ、ＲＯＩをより広い範囲に設定して、撮像素子３２の部分読み出し領域３４をワークＷより大きくしてもよい。
【００９９】
また、上述した第１及び第２実施形態の画像撮像装置３では、生産システムとしてロボット装置１を適用した場合について説明したが、これには限られない。即ち、本発明の画像撮像装置は、ワークＷを移動可能な生産装置を備える生産システムの全般に適用することができる。
【０１００】
また、上述した第１及び第２実施形態では、カメラ制御部５０，１５０は、ＦＰＧＡから構成された場合について説明したが、これには限られない。例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、各種インタフェースを有するコンピュータにより、カメラ制御部５０，１５０を構成するようにしてもよい。
【０１０１】
この場合、第１及び第２実施形態の各処理動作は、具体的にはカメラ制御部により実行される。従って、上述した機能を実現するソフトウェアのプログラムを記録した記録媒体をカメラ制御部に供給し、記録媒体に格納された画像撮像プログラムを各ＣＰＵが読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した各実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１０２】
また、上述した例では、コンピュータ読み取り可能な記録媒体がＲＯＭであり、ＲＯＭにプログラムが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【０１０３】
１…ロボット装置（生産システム）、２…ロボット本体（生産装置、多関節ロボット）、３，１０３…画像撮像装置、２２…ハンド（把持ツール）、３０…カメラ部、３１…レンズ（撮影光学系）、３２…撮像素子、５０，１５０…カメラ制御部、Ｗ…ワーク（撮影対象物）
【図１】
2015035715.tif 000003
【図２】
2015035715.tif 000004
【図３】
2015035715.tif 000005
【図４】
2015035715.tif 000006
【図５】
2015035715.tif 000007
【図６】
2015035715.tif 000008
【図７】
2015035715.tif 000009
【図８】
2015035715.tif 000010
【図９】
2015035715.tif 000011
【図１０】
2015035715.tif 000012