(57)【要約】【課題】可動範囲内を移動するワークの画像を高解像度で撮影でき、かつ可動範囲内の任意の位置のワークを自動検出でき、しかもデータ量の増加を抑制できる画像撮像装置及び画像撮像方法を提供する。【解決手段】ワークが移動可能な可動範囲を撮影可能な複数のカメラと、複数のカメラにより撮影された画像９０に基づいて、可動範囲について低解像度の粗画像９１を生成し、該粗画像９１に基づきワークの重心座標８４を演算し、重心座標８４を含む可動範囲の一部について高解像度の精細画像９２を生成する演算部と、を備える。【選択図】図１０
2015041136.tif 000002
【特許請求の範囲】
【請求項１】
ワークが移動可能な可動範囲を撮影可能な複数のカメラと、
前記複数のカメラにより撮影された画像に基づいて、前記可動範囲について第１の解像度で第１の画像を生成し、該第１の画像に基づき前記ワークの概略位置を演算し、前記概略位置を含む前記可動範囲の一部について前記第１の解像度より高解像度の第２の解像度で第２の画像を生成する演算部と、を備える、
ことを特徴とする画像撮像装置。
【請求項２】
前記第１の画像及び前記第２の画像は、前記複数のカメラによる第１の撮影で得られた画像に基づき生成される、
ことを特徴とする請求項１記載の画像撮像装置。
【請求項３】
前記第１の画像は、前記第１の撮影で得られた前記画像に対して画素の間引きが行われて生成され、
前記第２の画像は、前記第１の画像に基づいて前記ワークの概略位置を演算し、前記概略位置を含む前記可動範囲の一部について、前記第１の撮影で得られた前記画像から切り出して生成される、
ことを特徴とする請求項２記載の画像撮像装置。
【請求項４】
前記第１の画像は、前記複数のカメラによる第１の撮影で得られた画像に基づき生成され、
前記第２の画像は、前記複数のカメラにより前記第１の撮影の後に行われる第２の撮影で得られた画像に基づき生成される、
ことを特徴とする請求項１記載の画像撮像装置。
【請求項５】
前記第２の撮影は、前記複数のカメラによる前記可動範囲の全体の撮影である、
ことを特徴とする請求項４記載の画像撮像装置。
【請求項６】
前記第２の撮影は、前記複数のカメラによる前記概略位置を含む前記可動範囲の一部の撮影である、
ことを特徴とする請求項４記載の画像撮像装置。
【請求項７】
前記可動範囲は、格子状に区画される複数の小区分を備え、
前記複数のカメラは、前記複数の小区分のそれぞれに対応して撮影するよう配置され、
前記第１の画像は、前記複数のカメラにより撮影された複数の画像を結合して生成され、
前記第２の画像は、前記概略位置に基づき特定される前記ワークの検出部位が包含される各小区分の画像から切り出されて生成される、
ことを特徴とする請求項１乃至６のいずれか１項に記載の画像撮像装置。
【請求項８】
請求項１乃至７のいずれか１項に記載の画像撮像装置と、
前記ワークに対して作業可能なロボット本体と、
前記画像撮像装置により生成された前記第２の画像に基づいて、前記ワークの詳細位置を演算し、前記ロボット本体の動作を制御する制御装置と、を備える、
ことを特徴とするロボット装置。
【請求項９】
ワークが移動可能な可動範囲を撮影可能な複数のカメラと、演算部と、を備える画像撮像装置の画像撮像方法において、
前記演算部が、前記複数のカメラにより撮影された画像に基づいて、前記可動範囲について第１の解像度で第１の画像を生成する第１の画像生成工程と、
前記演算部が、前記第１の画像に基づき前記ワークの概略位置を演算する概略位置演算工程と、
前記演算部が、前記概略位置を含む前記可動範囲の一部について前記第１の解像度より高解像度の第２の解像度で第２の画像を生成する第２の画像生成工程と、を備える、
ことを特徴とする画像撮像方法。
【請求項１０】
前記演算部が、前記第１の画像生成工程の前に、前記複数のカメラに前記可動範囲の全体の撮影を行わせる第１の撮影工程を備え、
前記第１の画像生成工程において、前記第１の画像は、前記第１の撮影工程で得られた画像に基づき生成され、
前記第２の画像生成工程において、前記第２の画像は、前記第１の撮影工程で得られた画像に基づき生成される、
ことを特徴とする請求項９記載の画像撮像方法。
【請求項１１】
前記第１の画像生成工程において、前記第１の画像は、前記第１の撮影工程で得られた画像に対して画素の間引きが行われて生成され、
前記第２の画像生成工程において、前記第２の画像は、前記概略位置を含む前記可動範囲の一部について、前記第１の撮影工程で得られた画像から切り出して生成される、
ことを特徴とする請求項１０記載の画像撮像方法。
【請求項１２】
前記演算部が、前記第１の画像生成工程の前に、前記複数のカメラに前記可動範囲の全体の撮影を行わせる第１の撮影工程と、
前記演算部が、前記第１の撮影工程の後に、前記複数のカメラに撮影を行わせる第２の撮影工程と、を備え、
前記第１の画像生成工程において、前記第１の画像は、前記第１の撮影工程で得られた画像に基づき生成され、
前記第２の画像生成工程において、前記第２の画像は、前記第２の撮影工程で得られた画像に基づき生成される、
ことを特徴とする請求項９記載の画像撮像方法。
【請求項１３】
前記第２の撮影工程では、前記複数のカメラに前記可動範囲の全体の撮影を行わせる、
ことを特徴とする請求項１２記載の画像撮像方法。
【請求項１４】
前記第２の撮影工程では、前記複数のカメラに前記概略位置を含む前記可動範囲の一部の撮影を行わせる、
ことを特徴とする請求項１２記載の画像撮像方法。
【請求項１５】
前記可動範囲は、格子状に区画される複数の小区分を備え、
前記複数のカメラは、前記複数の小区分のそれぞれに対応して撮影するよう配置され、
前記第１の画像生成工程において、前記第１の画像は、前記複数のカメラにより撮影された複数の画像を結合して生成され、
前記第２の画像生成工程において、前記第２の画像は、前記概略位置に基づき特定される前記ワークの検出部位が包含される各小区分の画像から切り出されて生成される、
ことを特徴とする請求項９乃至１４のいずれか１項に記載の画像撮像方法。
【請求項１６】
請求項９乃至１５のいずれか１項に記載の画像撮像方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１７】
請求項１６に記載の画像撮像方法の各工程をコンピュータに実行させるためのプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の関節が制御されることにより駆動する多関節アーム及びエンドエフェクタを備えたロボット本体の作業対象であるワークを撮影するために好適な画像撮像装置及び画像撮像方法に関する。
【背景技術】
【０００２】
従来、垂直多関節アーム及びエンドエフェクタ（以下、ロボット本体という）と、これらを制御する制御装置と、を備えたロボット装置が普及しており、エンドエフェクタとしては複数の指を備えてワークを把持可能なロボットハンド等が普及している。このようなロボット装置を使ったワークの自動組立においては、例えば、ロボットハンドがワークを把持し、把持したワークを他のワークに組み付けるという作業が行われる。
【０００３】
ここで、ロボットハンドが把持したワークは、例えば、ロボット本体が異常な動作をしたり、地震が起きたり、ワークやロボット本体に作業者が接触した場合等に、予め教示した位置姿勢からずれてしまう虞がある。ロボットハンドが把持したワークが意図しない位置姿勢にあると、例えば、他のワークに組み付けることができなかったり、他のワークやロボット装置や周辺の治具等に当たってしまう可能性がある。
【０００４】
そこで、ロボットハンドが把持したワークが予め教示した位置姿勢を維持しているかを、ワークの移動中も常に監視することが求められている。しかしながら、ワークが移動している最中にワークの位置姿勢を精細に認識するためには、ワークが移動する範囲を網羅する広い視野を持ち、かつ高解像度でワークを撮影できるカメラを設置する必要がある。その一方、ワークの可動範囲の全体をカバーするように高解像度のカメラで撮影すると、データ量が極めて膨大になってしまい、必要なメモリ容量や転送速度の観点から好ましくない。
【０００５】
このため、撮影したい広い領域を例えば１０２４×１０２４画素程度の高解像度で網羅するイメージセンサを使用すると共に、当該領域の中から例えば６４×６４画素程度の小さいワーク画像を切り出すようにした撮像装置が知られている（特許文献１参照）。この撮像装置では、イメージセンサにおいて、ワーク画像の切り出し位置及びサイズを所定のアドレスのレジスタに設定すると、その切り出し位置及びサイズに応じた領域の画像のみがワーク画像として出力されるようになっている。そして、イメージセンサが撮像したワーク画像でのワークの重心等に基づき、ワークの移動に追従するようにして、ワーク画像の切り出し位置を変更するようになっている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−３１９２６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された撮像装置では、広い視野のうちワーク周辺の画像しか読み出さないため、初めにワークが存在する位置を設定しておかなければ、ワークがどこに位置するか分からず、ワークを撮影することができない。また、常にワーク周辺のみを撮影するので、例えばワークが想定よりも速く移動してカメラが追従できなかったり、ワークが物に隠れたりハレーションを受けて視野から消失すると、ワークを見失ってしまう。この撮像装置では、ワークの可動範囲内で任意の位置に位置するワークの自動検出はできないので、一旦ワークを見失うと、それ以降はワークを撮影できなくなるという問題点があった。
【０００８】
本発明は、可動範囲内を移動するワークの画像を高解像度で撮影でき、かつ可動範囲内の任意の位置のワークを自動検出でき、しかもデータ量の増加を抑制できる画像撮像装置及び画像撮像方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の画像撮像装置は、ワークが移動可能な可動範囲を撮影可能な複数のカメラと、前記複数のカメラにより撮影された画像に基づいて、前記可動範囲について第１の解像度で第１の画像を生成し、該第１の画像に基づき前記ワークの概略位置を演算し、前記概略位置を含む前記可動範囲の一部について前記第１の解像度より高解像度の第２の解像度で第２の画像を生成する演算部と、を備えることを特徴とする。
【００１０】
また、本発明は、ワークが移動可能な可動範囲を撮影可能な複数のカメラと、演算部と、を備える画像撮像装置の画像撮像方法において、前記演算部が、前記複数のカメラにより撮影された画像に基づいて、前記可動範囲について第１の解像度で第１の画像を生成する第１の画像生成工程と、前記演算部が、前記第１の画像に基づき前記ワークの概略位置を演算する概略位置演算工程と、前記演算部が、前記概略位置を含む前記可動範囲の一部について前記第１の解像度より高解像度の第２の解像度で第２の画像を生成する第２の画像生成工程と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、演算部が、可動範囲について第１の解像度で第１の画像を生成し、第１の画像に基づきワークの概略位置を演算し、概略位置を含む可動範囲の一部について高解像度の第２の解像度で第２の画像を生成する。このため、高解像度の第２の画像にはワーク画像が含まれるので、高解像度のワーク画像を得ることができる。
【００１２】
この時、第１の画像を利用して可動範囲におけるワークの概略位置を演算するので、可動範囲内の任意の位置にあるワークの位置を自動検出することができる。このため、操作者によるワークの位置の入力を不要にすることができ、また撮影中にワークを見失っても、再度撮影を行い、第１の画像及び第２の画像を生成することでワークの位置を検出することができる。更に、可動範囲を撮影した第１の画像は低解像度であると共に、高解像度の第２の画像は可動範囲の一部のみの画像であるので、データ量の増加を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係るロボット装置の概略構成を示す説明図である。
【図２】本発明の第１実施形態に係るカメラの撮影領域を示す説明図であり、（ａ）は撮影領域を結合した可動範囲の全体、（ｂ）はカメラごとの撮影領域である。
【図３】本発明の第１実施形態に係る画像撮像装置の演算部の概略構成を示すブロック図である。
【図４】本発明の第１実施形態に係る粗画像から精細画像を切り出す処理を示す説明図であり、（ａ）は概略位置の周囲の４個のカメラの撮影領域にまたがる領域、（ｂ）は当該領域から全画素のデータを読み出す順である。
【図５】本発明の第１実施形態に係るロボット装置によりワークの撮影を行う際の手順を示すフローチャートである。
【図６】本発明の第２実施形態に係る画像撮像装置の演算部の概略構成を示すブロック図である。
【図７】本発明の第２実施形態に係るロボット装置によりワークの撮影を行う際の手順を示すフローチャートである。
【図８】本発明の第３実施形態に係る画像撮像装置の演算部の概略構成を示すブロック図である。
【図９】本発明の第３実施形態に係るロボット装置によりワークの撮影を行う際の手順を示すフローチャートである。
【図１０】本発明の画像の関係を示す説明図であり、（ａ）は可動範囲の全体の精細画像、（ｂ）は可動範囲の全体の粗画像、（ｃ）はワークの概略位置周囲の精細画像である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１５】
［第１実施形態］
図１に示すように、ロボット装置１は、ロボット本体２と、ロボット本体２から離隔して配置されロボット本体２が移動させるワークＷを上方から撮影可能な画像撮像装置４と、ロボット本体２及び画像撮像装置４を制御する制御装置３と、を備えている。本実施形態では、ロボット本体２はワークＷに対して作業可能であり、ワークＷの移動可能な可動範囲８は５００ｍｍ×５００ｍｍに含まれる大きさであり、ワークＷは一辺１００ｍｍの正方形に入る大きさであるものとしている。本実施形態では、可動範囲８は、画像撮像装置４の後述する複数のカメラ４０による全撮影領域と一致するように設定している。
【００１６】
ロボット本体２は、６軸の垂直多関節アーム（以下、アームと呼ぶ）２１と、エンドエフェクタであるハンド２２とを有している。本実施形態では、アーム２１として６軸の垂直多関節アームを適用しているが、軸数は用途や目的に応じて適宜変更してもよい。また、本実施形態では、エンドエフェクタとしてハンド２２を適用しているが、これには限られず、ワークＷを把持あるいは保持して移動させることができるツールの全般を含めることができる。
【００１７】
アーム２１は、７つのリンク６１〜６７と、各リンク６１〜６７を揺動又は回動可能に連結する６つの関節７１〜７６とを備えている。各リンク６１〜６７としては、長さが固定されたものを採用している。但し、例えば、直動アクチュエータにより伸縮可能なリンクを採用してもよい。各関節７１〜７６には、各関節７１〜７６を各々駆動するモータと、モータの回転角度を検知するエンコーダと、各モータに供給する電流を検知する電流センサと、各関節７１〜７６のトルクを検知するトルクセンサと、が設けられている。
【００１８】
ハンド２２は、アーム２１の先端リンク６７に取り付けられて支持され、アーム２１の動作により位置及び姿勢の少なくとも一自由度が調整されるようになっている。ハンド２２は、２本の指２３と、これら指２３の間隔を開閉可能に支持するハンド本体２４とを備え、指２３同士が接近する閉動作によりワークＷを把持可能になっている。
【００１９】
ハンド本体２４には、指２３を動作させるためのモータと、該モータの回転角度を検知するエンコーダと、先端リンク６７に連結される連結部とが設けられている。また、ハンド本体２４は、例えば、赤色等に着色し（図１中、ハッチングで示す）、後述するカメラによる撮影におけるマーカとして機能するようになっている。尚、本実施形態では、ハンド２２は指２３を２本有するものとしているが、これには限られず、ワークＷを把持するために指の数は２本以上あればよい。
【００２０】
制御装置３は、コンピュータにより構成され、ロボット本体２及び画像撮像装置４を制御するようになっている。制御装置３を構成するコンピュータは、例えばＣＰＵと、各部を制御するためのプログラムを記憶するＲＯＭと、データを一時的に記憶するＲＡＭと、入力インタフェース回路と、出力インタフェース回路とを備えている。
【００２１】
次に、本実施形態の特徴部分である画像撮像装置４について、図２及び図３に基づいて詳細に説明する。
【００２２】
画像撮像装置４は、図２（ａ）に示すように、例えば５×４の格子状に並べた２０個のカメラ（複数のカメラ）４０と、これらカメラ４０を制御すると共にカメラ４０による撮影画像を制御装置３に出力する演算部５とを備えている。本実施形態では、可動範囲８の全体領域８２は、２０個のカメラ４０が対応して撮影するよう格子状に区画された複数、例えば２０の撮影領域（小区分）８０に分割されている（図４（ａ）参照）。
【００２３】
各カメラ４０は、レンズと、イメージセンサと、処理基板とを備えており、各撮影領域８０は、例えば、最大約５００万画素（２５６０×２０４８画素）の空間解像度で画像を撮影できるようになっている。撮影された画像は、カメラリンクＢａｓｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ規格の映像信号として、制御装置３に出力できるようになっている。
【００２４】
本実施形態では、図２（ｂ）に示すように、各カメラ４０の撮影領域８０の画素８１の分解能は０．０５ｍｍ×０．０５ｍｍである。これにより、各カメラ４０は、１２８ｍｍ×１０２．４ｍｍの撮影領域８０を撮像するものとし、２０個のカメラ４０の全体で、各撮影領域８０を結合し、可動範囲８を全て含む約５００ｍｍ×５００ｍｍの視野を持つものとしている。ここでは、以降の説明のため、２０個配列されたカメラ４０の撮影領域８０に、図２（ａ）に示す通り、ラスタ走査順に１〜２０番と番号付けしておく。
【００２５】
各カメラ４０は、内蔵するレジスタへ設定値を書き込むことにより、約５００万画素（２５６０×２０４８画素）の画像を読み出す。カメラ４０は、レジスタの設定値により、１／２×１／２（１画素飛ばし）、１／４×１／４（３画素飛ばし）等の間引き量で画像を間引きして読み出しできるようになっている。カメラ４０が出力する画像のビット深度は例えば８ビット、画素クロックは４８ＭＨｚとする。カメラ４０はベイヤ型のＲＧＢカラーフィルタを搭載しており、例えば撮像した画像を１／４×１／４（縦横３画素飛ばし）で間引けば、全画素がＲ（赤色）のカラーフィルタを搭載した画像となる。カメラ４０は、各撮影フレームで、信号伝送中は垂直同期信号がＨｉｇｈとなる。
【００２６】
本実施形態では、各撮影フレームで、まず１／４×１／４の間引き読み出しを行う設定値をカメラ４０に内蔵するレジスタへ書込み、間引き読み出しを行う。そして、間引き読み出しが終了した直後に全画素の読み出しを行う設定値をレジスタへ書込み、全画素読み出しを行う。即ち、撮影フレーム毎に２度の読み出しを行う。
【００２７】
ここで、図１０に、可動範囲８の全体についての高解像度（第２の解像度）の精細画像９０と、可動範囲８の全体についての低解像度（第１の解像度）の粗画像（第１の画像）９１と、の関係を示す。ここでは、精細画像９０の３画素を飛ばして○印を付した画素のみを抽出し、粗画像９１を生成することで、１／４×１／４の間引き読み出しを行うようにしている。尚、１／４×１／４の間引き読み出しをした時の粗画像９１の全体画像データ量は、約３０万画素（６４０×５１２画素）となり、全画素読み出しをした時の精細画像９０の全体画像データ量は、約５００万画素（２５６０×２０４８画素）となる。
【００２８】
演算部５は、図３に示すように、イメージセンサ制御部５０と、映像入力インタフェース５１と、映像分岐部５２と、メモリインタフェース５３と、画像記憶部５４と、検出部５５と、出力画像生成部５６と、映像出力インタフェース５７と、を備えている。演算部５は、これらを搭載する電子回路基板により構成されている。このうち、映像分岐部５２と、メモリインタフェース５３と、検出部５５と、出力画像生成部５６とは、電子回路基板上に実装されるＦＰＧＡデバイスの中の演算ブロック５８として実装される。ここでのＦＰＧＡは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（機能を変更可能な集積回路）を意味する。演算ブロック５８は、周知のＨＤＬ言語でのハードウェア記述と、ＦＰＧＡが備えるマクロ機能により実装される。
【００２９】
イメージセンサ制御部５０は、電子回路基板上に実装されるシリアル通信機能を備えた周知のマイクロコンピュータから構成される。イメージセンサ制御部５０は、制御装置３からＲＳ２３２Ｃ通信を介してイメージセンサ制御信号が供給され、カメラ４０のイメージセンサに内蔵されるレジスタ値を読み書きするようになっている。ここでのイメージセンサ制御信号とは、例えば空間解像度の設定信号、画像の切り出し位置を指定する信号、画像の切り出しサイズを指定する信号、撮影開始のトリガ信号等である。尚、マイクロコンピュータとイメージセンサの通信規格は、例えば既知のＩ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）とすることができる。
【００３０】
映像入力インタフェース５１は、カメラ４０から出力されたカメラリンク等のＬＶＤＳ映像信号を、電子回路内で扱いやすいパラレル信号に変換する既知のデシリアライザＩＣを用いて構成されている。ここで、ＬＶＤＳは、Ｌｏｗ  Ｖｏｌｔａｇｅ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｓｉｇｎａｌ（低電圧差動シグナリング）を意味する。もしくは、映像入力インタフェース５１は、ＬＶＤＳ信号の入力が可能な既知のＦＰＧＡデバイスに入力し、パラレル信号に変換するようにしてもよい。ここでのデシリアライザＩＣとしては、ＬＶＤＳ信号の差動ペアを１００対（（映像信号４対＋クロック１対）×イメージセンサ２０個）入力できるものを用いる。例えばＬＶＤＳ信号の差動ペアを５対入力できるデシリアライザＩＣであれば、デシリアライザＩＣを２０個実装する。映像入力インタフェース５１の出力は、１６０ｂｉｔ（８ｂｉｔ×イメージセンサ２０個）のパラレル信号、画素クロック信号、水平同期信号、垂直同期信号である。
【００３１】
映像分岐部５２は、入力された画像が精細画像９０であるか、粗画像９１であるかを判断し、精細画像９０であれば画像をメモリインタフェース５３へ出力し、粗画像９１であれば検出部５５へ出力するようになっている。カメラ４０は、各撮影フレームで、信号伝送中は垂直同期信号がＨｉｇｈとなる。映像分岐部５２では、垂直同期信号のカウンタ回路を持ち、撮影フレーム中で１度目の信号伝送であれば、その画像を精細画像９０と判定し、２度目の信号伝送であれば、その画像を粗画像９１と判定するようになっている。
【００３２】
映像分岐部５２の入力は、１６０ｂｉｔ（８ｂｉｔ×イメージセンサ２０個）のパラレル信号、画素クロック信号、水平同期信号、垂直同期信号である。映像分岐部５２の出力は、画像記憶部５４に接続する１６０ｂｉｔのパラレル信号と画素クロック信号と水平同期信号と垂直同期信号、検出部５５に接続する１６０ｂｉｔのパラレル信号と画素クロック信号と水平同期信号と垂直同期信号である。
【００３３】
メモリインタフェース５３は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装されるインタフェース演算ブロック５８の一部である。画像記憶部５４は、電子回路基板上に実装されるＲＡＭ（ランダムアクセスメモリ）であり、例えば２０個の３２ＭＢｙｔｅ  ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｕｓ  Ｄｙｎａｍｉｃ  ＲＡＭ）である。各ＳＤＲＡＭのｂｉｔ幅は８ｂｉｔとする。ＳＤＲＡＭは、ＲＯＷアドレスとＣＯＬＵＭＮアドレスを指定し、同期信号に同期して読み出しと書き込みを行える。
【００３４】
メモリインタフェース５３は、２０個のＳＤＲＡＭに合わせて並列に２０ブロック用意する。メモリインタフェース５３は、垂直同期信号がＨｉｇｈになったとき、メモリアクセスを開始し、画素クロック信号をメモリアクセスの同期信号としてＳＤＲＡＭに供給する。また、画素クロック信号に同期してＲＯＷアドレスをインクリメントし、水平同期信号に同期してＣＯＬＵＭＮアドレスをインクリメントすることでＳＤＲＡＭにアクセスするアドレスを設定する。垂直同期信号がＬｏｗになったとき、メモリアクセスを終了する。
【００３５】
映像分岐部５２から出力され、メモリインタフェース５３へ出力された１６０ｂｉｔの画像信号は、画素クロック信号と水平同期信号と垂直同期信号により第１の画像記憶部５４に書き込まれる。そして、２０個のＳＤＲＡＭの各々に、それぞれ１フレーム分（２５６０×２０４８画素）の画像データが記憶される。また、画素クロック信号と水平同期信号と垂直同期信号は、遅延回路により等しくタイミングを遅らせた上で、出力画像生成部５６に出力される。ここで、遅延時間は、後述する検出部５５で演算結果が出力されるまでの時間を予め計測し、その時間を設定する。
【００３６】
検出部５５は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロック５８の一部である。検出部５５は、映像分岐部５２から出力された１６０ｂｉｔの画像信号と画素クロック信号と水平同期信号と垂直同期信号を入力する。検出部５５は、入力される粗画像９１に基づいてワークＷの重心座標（概略位置）８４を算出するようになっている。
【００３７】
検出部５５は、入力される１６０ｂｉｔの画像信号に対し２値化処理を行い、２０ｂｉｔの２値画像信号に変換する。２値化処理は、２０個のイメージセンサのそれぞれの８ｂｉｔ画素データに対して、予め定めた閾値（例えば１２８）を超えればＨｉｇｈ（１）、閾値以下ならばＬｏｗ（０）とすることで実行する。この処理により、２０個のイメージセンサのそれぞれの画素データが１ｂｉｔ化され、画像データは２０ｂｉｔとなる。
【００３８】
また、２値化処理をすることによる遅延時間による同期信号とのずれを無くすため、画素クロック信号と水平同期信号と垂直同期信号を、２値化処理と同じ段数のゲートを通過させ、信号のタイミングを調整する。２値化処理を順に施し、画像全体に処理が施されると、全体として２値画像の情報が得られる。本実施形態では、ハンド２２のハンド本体２４が赤色に着色されていると共に、撮像した画像を１／４×１／４で間引いて全画素が赤色のカラーフィルタを搭載した画像になっているので、ハンド本体２４が明確に表示されるようになる。但し、検出部５５では画像の重心情報のみを出力するので、画像信号として２値画像データは外部に出力されない。
【００３９】
検出部５５は、得られた２値画像に対して、画像の０次モーメントと１次モーメントを計算するようになっている。まず、画像の０次モーメントの計算について説明する。検出部５５は、ＦＰＧＡの演算ブロック５８内に、水平座標レジスタと、垂直座標レジスタとを備えている。水平座標レジスタは、画素クロックに同期してインクリメントされて水平同期信号に同期してリセットされるようになっており、垂直座標レジスタは、水平同期信号に同期してインクリメントされて垂直同期信号に同期してリセットされるようになっている。また、検出部５５は、０次モーメントの累積値を保持する０次モーメントレジスタと、水平方向の１次モーメントの累積値を保持する水平１次モーメントレジスタと、垂直方向の１次モーメントの累積値を保持する垂直１次モーメントレジスタを備えている。
【００４０】
各レジスタは初期値として０を保持する。初めに１ｂｉｔの画像データが入力されると、１ｂｉｔの値が０次モーメントレジスタの値に足し合される。同時に、（ｂｉｔの値×（水平座標レジスタの値）×４）を計算し、水平１次モーメントレジスタの値に足し合される。同時に、（ｂｉｔの値×（垂直座標レジスタの値）×４）を計算し、垂直１次モーメントレジスタの値に足し合される。以上の計算を、画素クロックに同期して、全画素分（２５６０×２０４８）の回数繰り返す。これにより、粗画像９１の全体の０次モーメントと、水平１次モーメントと、垂直１次モーメントとが、それぞれ０次モーメントレジスタと、水平１次モーメントレジスタと、垂直１次モーメントレジスタとに格納されるようになっている。
【００４１】
次に、検出部５５は、計算された０次モーメント及び１次モーメントから画像の重心座標８４を計算する。重心の水平座標は、（水平１次モーメントレジスタ値÷０次モーメントレジスタ値）としてハードウェア演算して得られる。重心の垂直座標は、（垂直１次モーメントレジスタ値÷０次モーメントレジスタ値）としてハードウェア演算して得られる。以上の演算で計算された重心の水平座標及び重心の垂直座標が、検出部５５から出力され、出力画像生成部５６に入力される。
【００４２】
尚、以上で述べた演算のうち、各画素における２値化処理と画像のモーメント計算のための累積計算は、パイプライン処理により行われる。即ち、全ての画素の２値化処理が終わるまで待つのではなく、例えば２画素目の２値化処理を行っている時には同時に１画素目の累積計算を行い、３画素目の２値化処理を行っている時には同時に２画素目の累積計算を行うようになっている。
【００４３】
また、本実施形態の説明ではワークＷの位置を粗画像９１から検出する方法として画像の２値化処理と画像のモーメント計算を行った上で重心計算をする方法を挙げたが、その他の周知の物体検出方法を用いてもよい。例えば、予め粗画像と対応する分解能を持つワークＷのテンプレート画像をＦＰＧＡ内に格納し、既知の二乗残差法（ＳＳＤ法）を用いてテンプレートマッチングを行う処理回路をＦＰＧＡに実装し、ワークＷの位置を検出するようにしてもよい。
【００４４】
出力画像生成部５６は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロック５８の一部である。出力画像生成部５６は、メモリインタフェース５３を介して画像記憶部５４に記憶された全体の精細画像９０を読み出す。そして、図１０に示すように、出力画像生成部５６は、全体の精細画像９０の中から、後述するワークＷの周辺の５００万画素の切り出し領域（可動範囲８の一部）８３の精細画像（第２の画像）９２を読み出し、出力する。即ち、切り出し領域８３の精細画像９２は、ワークＷの概略位置に基づき特定されるワークＷの検出部位が包含される撮影領域８０の画像から切り出されて生成されるようになっている。尚、ここでの５００万画素は、例えば２５６０×２０４８画素としている。
【００４５】
以下、出力画像生成部５６において、可動範囲８の全体領域８２から切り出し領域８３を設定し、精細画像９２を読み出すための手順を、図４（ａ）に基づいて説明する。まず、検出部５５で計算された重心座標８４より、画像記憶部５４から読み出す際に、２０個あるＳＤＲＡＭのうちどのＳＤＲＡＭからデータを読み出すかを決定する。尚、図４（ａ）中、「○」は各撮影領域８０の座標（１，１）、即ち原点を表す。
【００４６】
検出部５５で計算された重心座標８４より、（１）：（（重心の水平座標×４−１２８０）÷２５６０）と、（２）：（（重心の垂直座標×４−１０２４）÷２０４８）との演算を行う。但し、演算結果が０を下回る場合は演算結果を０とし、途中演算を含め、小数点以下は切り捨てる。ここで、（１）及び（２）の演算において、１２８０及び１０２４を減算しているのは、ワークＷの周辺の５００万画素の切り出し領域８３の左上の角部の座標８５がどの撮影領域８０に属するかを求めるためである。
【００４７】
上述の（１）及び（２）の演算結果に応じ、（（１）の演算結果、（２）の演算結果）と表記した場合、以下の規則に準じて２０個の撮影領域８０の中から第１の読み出し領域８０ａの番号を選択する。
（０、０）：１番、（０、１）：２番、（０、２）：３番、（０、３）：４番
（１、０）：５番、（１、１）：６番、（１、２）：７番、（１、３）：８番
（２、０）：９番、（２、１）：１０番、（２、２）：１１番、（２、３）：１２番
（３、０）：１３番、（３、１）：１４番、（３、２）：１５番、（３、３）：１６番
（４、０）：１７番、（４、１）：１８番、（４、２）：１９番、（４、３）：２０番
【００４８】
また、第２の読み出し領域８０ｂの番号は（第１の読み出し番号＋１）、第３の読み出し領域８０ｃの番号は（第１の読み出し番号＋４）、第４の読み出し領域８０ｄの番号は（第１の読み出し番号＋５）とする。そして、出力画像生成部５６は、これら４つの番号に対応するカメラ４０が撮像した画像を格納したＳＤＲＡＭに対して、画像読み出しを行う。
【００４９】
次に、４つの読み出し領域８０ａ〜８０ｄに対応するＳＤＲＡＭにアクセスする際の各々の読み出し範囲について説明する。まず、第１の読み出し領域８０ａに対応するＳＤＲＡＭに対しては、ＲＯＷアドレスは（（（重心の水平座標×４−１２８０）÷２５６０）の余り＋１（＝以降Ｒ１））〜（２５６０）とする。また、ＣＯＬＵＭＮアドレスは（（（重心の垂直座標×４−１０２４）÷２０４８）の余り＋１（＝以降Ｃ１））〜（２０４８）として、この範囲で読み出しを行う。
【００５０】
第２の読み出し領域８０ｂに対応するＳＤＲＡＭに対しては、ＲＯＷアドレスは（１）〜（２５６０−（（重心の水平座標×４−１２８０）÷２５６０）の余り＋１（＝以降Ｒ２））、ＣＯＬＵＭＮアドレスは（Ｃ１）〜（２０４８）の範囲で読み出しを行う。第３の読み出し領域８０ｃに対応するＳＤＲＡＭに対しては、ＲＯＷアドレスは（Ｒ１）〜（２５６０）、ＣＯＬＵＭＮアドレスは（１）〜（２０４８−（（重心の垂直座標×４−１０２４）÷２０４８）の余り＋１（＝以降Ｃ２））の範囲で読み出しを行う。第４の読み出し領域８０ｄに対応するＳＤＲＡＭに対しては、ＲＯＷアドレスは（１）〜（Ｒ２）、ＣＯＬＵＭＮアドレスは（１）〜（Ｃ２）の範囲で読み出しを行う。
【００５１】
次に、４つの読み出し領域８０ａ〜８０ｄに対応するＳＤＲＡＭにアクセスする際のアクセスタイミングについて、図４（ｂ）に基づいて説明する。まず初めに、第１の読み出し領域８０ａに対応するＳＤＲＡＭのＲＯＷアドレスを（Ｒ１）、ＣＯＬＵＭＮアドレスを（Ｃ１）と指定し、８ｂｉｔの画素データを読み出す。以降、ＲＯＷアドレスが（２５６０）になるまで、ＲＯＷアドレスをインクリメントし８ｂｉｔの画素データを読み出すことを繰り返す（図中、太線矢印）。
【００５２】
ＲＯＷアドレスが（２５６０）の画素データを読み出したら、アクセスするＳＤＲＡＭを第２の読み出し領域８０ｂに対応するＳＤＲＡＭに切り替えて、ＲＯＷアドレスを（１）にする。ＣＯＬＵＭＮアドレスは、第１の読み出し領域８０ａで設定したアドレスのままにして、画素データを読み出す。以降、ＲＯＷアドレスが（Ｒ２）になるまで、ＲＯＷアドレスをインクリメントし８ｂｉｔの画素データを読み出すことを繰り返す。
【００５３】
ＲＯＷアドレスが（Ｒ２）の時の画素データを読み出したら、アクセスするＳＤＲＡＭを第１の読み出し領域８０ａに対応するＳＤＲＡＭに切り替えて、ＣＯＬＵＭＮアドレスをインクリメントする（図中、細線矢印）。以上で述べた読み出しを、ＣＯＬＵＭＮアドレスが（２０４８）の時の読み出しが完了するまで繰返す。
【００５４】
次に、第３の読み出し領域８０ｃに対応するＳＤＲＡＭの、ＲＯＷアドレスを（Ｒ１）、ＣＯＬＵＭＮアドレスを（１）と指定し、８ｂｉｔの画素データを読み出す。以降、ＲＯＷアドレスが（２５６０）になるまで、ＲＯＷアドレスをインクリメントし８ｂｉｔの画素データを読み出すことを繰り返す。
【００５５】
ＲＯＷアドレスが（２５６０）の時の画素データを読み出したら、アクセスするＳＤＲＡＭを第４の読み出し領域８０ｄに対応するＳＤＲＡＭに切り替えて、ＲＯＷアドレスを（１）とする。ＣＯＬＵＭＮアドレスは、第３の読み出し領域８０ｃで設定したアドレスのままにして、画素データを読み出す。以降、ＲＯＷアドレスが（Ｒ２）になるまで、ＲＯＷアドレスをインクリメントし８ｂｉｔの画素データを読み出すことを繰り返す。
【００５６】
ＲＯＷアドレスが（Ｒ２）の時の画素データを読み出したら、アクセスするＳＤＲＡＭを第３の読み出し領域８０ｃに対応するＳＤＲＡＭに切り替えて、ＣＯＬＵＭＮアドレスをインクリメントする。以上で述べた読み出しを、ＣＯＬＵＭＮアドレスが（Ｃ２）の時の読み出しが完了するまで繰返す。以上の読み出しを行うことで、８ｂｉｔ幅で５００万画素（２５６０×２０４８画素）の画像が読み出される。
【００５７】
映像出力インタフェース５７は、演算部５で扱うパラレル信号をカメラリンク等のＬＶＤＳ映像信号に変換する周知のシリアライザＩＣを用いる。もしくは、ＬＶＤＳ信号の出力が可能なＦＰＧＡデバイスを用い、ＦＰＧＡ内でパラレル信号をシリアル信号に変換してもよい。シリアライザＩＣは、入力された８ｂｉｔパラレル映像信号を例えば７逓倍でシリアライズし、ＬＶＤＳ信号の差動ペアを５対（映像信号４対＋クロック１対）出力できるものを用いる。映像出力インタフェース５７の入力は、８ｂｉｔのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号である。
【００５８】
上述したロボット装置１の画像撮像装置４によりワークＷの撮影を行う際の処理手順を、図５に示すフローチャートに沿って説明する。
【００５９】
撮影を行う際は、制御装置３が、画像撮像装置４のイメージセンサ制御部５０にイメージセンサ制御信号をＲＳ２３２Ｃ規格で送信し、イメージセンサ制御部５０は、受信したイメージセンサ制御信号に基づいて、カメラ４０のイメージセンサを制御する。
【００６０】
カメラ４０は、イメージセンサ制御部５０により制御され、１フレームごとに２回の撮影が実行される。１フレームの中の１回目の撮影では、間引き読み出しによりワークＷの可動範囲８の全体を撮影し（第１の撮影工程）、全体の粗画像９１を生成する（ステップＳ１、第１の画像生成工程）。得られた粗画像９１は、映像分岐部５２を介して検出部５５に送信される。
【００６１】
また、１フレームの中の２回目の撮影では、全画素の読み出しによりワークＷの可動範囲８を撮影し（ステップＳ２、第２の撮影工程）、全体の精細画像９０を生成する。得られた精細画像９０の全データは、映像分岐部５２からメモリインタフェース５３を介して画像記憶部５４に記憶される（ステップＳ３）。
【００６２】
検出部５５は、入力された粗画像９１に基づき、ワークＷの重心座標８４、即ち概略位置を算出し（ステップＳ４、概略位置演算工程）、出力画像生成部５６に送信する。出力画像生成部５６は、ワークＷの重心座標８４からワークＷの周辺の５００万画素の切り出し領域８３の位置を算出する。そして、出力画像生成部５６は、切り出し領域８３に対応する精細画像９０の画像データを画像記憶部５４から読み出して、切り出し領域８３の精細画像９２を生成する（ステップＳ５、第２の画像生成工程）。生成された概略位置周囲の精細画像９２は、映像出力インタフェース５７を介して映像信号として制御装置３に送信され、制御装置３においてワークＷの詳細位置を演算し、ロボット本体２の動作の制御に利用される。
【００６３】
上述したように本実施形態の画像撮像装置４によれば、演算部５が、可動範囲８の全体について粗画像９１を生成し、粗画像９１に基づきワークＷの重心座標８４を演算し、重心座標８４を含む切り出し領域８３について精細画像９２を生成する。このため、高解像度の精細画像９２にワークＷの画像が含まれるので、高解像度のワークＷの画像を得ることができる。
【００６４】
また、粗画像９１を利用して可動範囲８におけるワークＷの重心座標８４を演算するので、可動範囲８内の任意の位置のワークＷを自動検出することができる。このため、操作者によるワークＷの位置の入力を不要にすることができる。即ち、広い視野の全体に対して粗画像９１を生成してワークＷの位置を認識するので、初めにワークＷの存在する位置を知らなくても、ワークＷの位置を自動的に把握し、撮影を開始することができる。
【００６５】
また、本実施形態の画像撮像装置４によれば、撮影中にワークＷを見失っても、再度撮影を行い、粗画像９１及び精細画像９２を生成することでワークＷの位置を検出することができる。即ち、広い視野全体に対する粗画像９１を使用するので、ワークＷが速く移動しても見失うことなく追従して撮影できる。また、隠れやハレーションにより一時的にワークＷが見えなくなっても、隠れやハレーションが無くなって物体が見えるようになった時点で即座に追従と撮影を再開することができる。
【００６６】
また、本実施形態の画像撮像装置４によれば、可動範囲８の全体を撮影した粗画像９１は低解像度であるので、可動範囲８の全体の精細画像９０を利用する場合に比べてデータ量の増加を抑制することができる。即ち、ワークＷの周辺の精細な画像データのみを出力するので、必要な転送データ容量が少なく、安価なハードウェアで演算部５を構成できる。例えば、５００ｍｍ×５００ｍｍの領域を０．０５ｍｍの画素分解能で撮影する必要があり、ビット深度が８ｂｉｔ、撮影フレームレートが３０ｆｐｓである場合を例にする。この場合、ワークＷのサイズが１００ｍｍ×１００ｍｍの領域に収まる見込みであれば、転送すべき画素数は５００万画素でよく、必要なデータ転送容量は約１．１Ｇｂｐｓ（５，０００，０００×８×３０ｂｐｓ）である。このため、ワークＷの周辺を含む可動範囲８の全体の精細画像９０を転送する場合に必要なデータ転送容量（約２４Ｇｂｐｓ）と比較すると、１／２０の転送データ容量で済む。よって、大きなデータ転送容量を必要とせず、ハードウェアが簡素であり、安価にシステムを構築できる。
【００６７】
［第２実施形態］
次に、本発明の第２実施形態に係る画像撮像装置４の演算部１０５について図６に沿って説明する。
【００６８】
演算部１０５は、第１実施形態の演算部５の映像分岐部５２を省略し、メモリインタフェース５３と検出部５５との間に粗画像読出部５９が設けられている。その他の構成については、第１実施形態と同様の構成であるので、同一符号を付して詳細な説明を省略する。また、可動範囲８やワークＷの大きさ、解像度等も第１実施形態と同様とする。
【００６９】
本実施形態では、カメラ４０は、イメージセンサ制御部５０からの制御により、１フレームにおいて１回のみ精細画像９０の撮影を行うようになっている。カメラ４０からの画素データは、映像入力インタフェース５１から出力され、精細画像９０のデータとしてメモリインタフェース５３に入力される。メモリインタフェース５３では、受信したデータを画像記憶部５４に記憶するようになっている。
【００７０】
メモリインタフェース５３では、画素クロック信号と水平同期信号と垂直同期信号は、遅延回路によりタイミングを調整した上で、粗画像読出部５９及び出力画像生成部５６に出力される。
【００７１】
粗画像読出部５９は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックの一部である。粗画像読出部５９は、メモリインタフェース５３を介して画像記憶部５４に記憶された精細画像９０の中から、１／４×１／４（縦横３画素飛ばし）の間引きをした粗画像（２５６０×２０４８画素）９１を読み出し、出力するようになっている。
【００７２】
まず、２０個のＳＤＲＡＭにアクセスする際の各々の読出し範囲について説明する。各々のＳＤＲＡＭに対しては、ＲＯＷアドレスは（１）〜（２５６０）の範囲を３つ飛ばしで指定する。つまり、（１）、（５）、（９）、（１３）、・・・、（２５５７）のＲＯＷアドレスを指定する。ＣＯＬＵＭＮアドレスは（１）〜（２０４８）の範囲を３つ飛ばしで指定する。つまり、（１）、（５）、（９）、（１３）、・・・、（２０４５）のＣＯＬＵＭＮアドレスを指定する。
【００７３】
次に、２０個のＳＤＲＡＭにアクセスする際のアクセスタイミングについて説明する。まず初めに、１番のカメラ４０に対応するＳＤＲＡＭの、ＲＯＷアドレスを（１）、ＣＯＬＵＭＮアドレスを（１）と指定し、８ｂｉｔの画素データを読み出す。以降、ＲＯＷアドレスが（２５５７）になるまで、ＲＯＷアドレスに４を加え８ｂｉｔの画素データを読み出すことを繰り返す。ＲＯＷアドレスが（２５５７）の時の画素データを読み出したら、アクセスするＳＤＲＡＭを２番のカメラ４０に対応するＳＤＲＡＭに切り替える。そして、ＲＯＷアドレスを（１）とし、第１の読出し画像に対応するＳＤＲＡＭに対し指定していたＣＯＬＵＭＮアドレスを指定し、画素データを読み出す。以降同様に、アクセスするＳＤＲＡＭを、３番のカメラ４０に対応するＳＤＲＡＭ、４番のカメラ４０に対応するＳＤＲＡＭに切り替えて画素データを読み出す。
【００７４】
次に、アクセスするＳＤＲＡＭを５番のカメラ４０に対応するＳＤＲＡＭに切り替える。そして、ＣＯＬＵＭＮアドレスをインクリメントした上で、１番〜４番のイメージセンサヘッド１０１に対応するＳＤＲＡＭの読出しと同様に、５番〜８番のカメラ４０に対応するＳＤＲＡＭの読出しを行う。次に、アクセスするＳＤＲＡＭを９番のカメラ４０に対応するＳＤＲＡＭに切り替える。そして、ＣＯＬＵＭＮアドレスをインクリメントした上で、１番〜４番のカメラ４０に対応するＳＤＲＡＭの読出しと同様に、９番〜１２番のカメラ４０に対応するＳＤＲＡＭの読出しを行う。
【００７５】
次に、アクセスするＳＤＲＡＭを１３番のカメラ４０に対応するＳＤＲＡＭに切り替える。そして、ＣＯＬＵＭＮアドレスをインクリメントした上で、１番〜４番のカメラ４０に対応するＳＤＲＡＭの読出しと同様に、１３番〜１６番のカメラ４０に対応するＳＤＲＡＭの読出しを行う。最後に、アクセスするＳＤＲＡＭを１７番のカメラ４０に対応するＳＤＲＡＭに切り替える。そして、ＣＯＬＵＭＮアドレスをインクリメントした上で、１番〜４番のカメラ４０に対応するＳＤＲＡＭの読出しと同様に、１７番〜２０番のカメラ４０に対応するＳＤＲＡＭの読出しを行う。以上の読出しを行うことで、８ｂｉｔ幅で５００万画素（２５６０×２０４８画素）の粗画像が読み出される。
【００７６】
上述したロボット装置１の画像撮像装置４によりワークＷの撮影を行う際の処理手順を、図７に示すフローチャートに沿って説明する。
【００７７】
撮影を行う際は、制御装置３が、画像撮像装置４のイメージセンサ制御部５０にイメージセンサ制御信号をＲＳ２３２Ｃ規格で送信し、イメージセンサ制御部５０は、受信したイメージセンサ制御信号に基づいて、カメラ４０のイメージセンサを制御する。
【００７８】
カメラ４０は、イメージセンサ制御部５０により制御され、１フレームごとに１回、ワークＷの可動範囲８の全体を精細画像９０で撮影する（ステップＳ１１、第１の撮影工程）。得られた精細画像９０は、メモリインタフェース５３を介して画像記憶部５４に記憶される。
【００７９】
メモリインタフェース５３は、画像データを粗画像読出部５９に送信し、粗画像読出部５９では全体の精細画像９０に基づき全体の粗画像９１を生成し（ステップＳ１２、第１の画像生成工程）、検出部５５に出力する。尚、粗画像９１は、精細画像９０に対して画素の間引きが行われて生成され、出力される。
【００８０】
検出部５５は、入力された粗画像９１に基づき、ワークＷの重心座標８４、即ち概略位置を算出し（ステップＳ１３、概略位置演算工程）、出力画像生成部５６に送信する。出力画像生成部５６は、ワークＷの重心座標８４からワークＷの周辺の５００万画素の切り出し領域８３の位置を算出し、切り出し領域８３に対応する精細画像９０のデータを画像記憶部５４から読み出す。これにより、出力画像生成部５６は、概略位置周囲の精細画像９２を生成する（ステップＳ１４、第２の画像生成工程）。即ち、精細画像９２は、ワークＷの重心座標８４を含む切り出し領域８３について、精細画像９０から切り出して生成される。生成された概略位置周囲の精細画像９２は、映像出力インタフェース５７を介して映像信号として制御装置３に送信され、制御装置３においてワークＷの詳細位置を演算し、ロボット本体２の動作の制御に利用される。
【００８１】
上述したように本実施形態の画像撮像装置４によれば、第１実施形態の効果に加え、可動範囲８の全体を撮像した精細画像９０から粗画像９１を生成するので、粗画像９１と精細画像９２の露光タイミングが同じになる。このため、粗画像９１と精細画像９２でワークＷの位置は変わらないので、出力する画像の視野をワークＷの大きさと同等にしても画像からワークＷが飛び出ることが抑制され、必要な転送データ容量を減らすことができる。
【００８２】
［第３実施形態］
次に、本発明の第３実施形態に係る画像撮像装置４の演算部２０５について図８に沿って説明する。
【００８３】
演算部２０５は、第１実施形態の演算部５の映像分岐部５２とメモリインタフェース５３との間に、選択部６０が設けられている。その他の構成については、第１実施形態と同様の構成であるので、同一符号を付して詳細な説明を省略する。また、可動範囲８やワークＷの大きさ、解像度等も第１実施形態と同様とする。
【００８４】
本実施形態では、画像記憶部５４は、電子回路基板上に実装されるＲＡＭであり、２０個ではなく４個の３２ＭＢｙｔｅ  ＳＤＲＡＭである。各ＳＤＲＡＭのｂｉｔ幅は８ｂｉｔとする。メモリインタフェース５３の演算ブロックは、４個のＳＤＲＡＭに合わせて並列に４ブロック用意する。映像分岐部５２から出力されると共に選択部６０を介してメモリインタフェース５３へ出力された３２ｂｉｔの画像信号は、画素クロック信号と水平同期信号と垂直同期信号により第１の画像記憶部５４に書き込まれる。その後、第２〜第４の画像記憶部５４に書き込まれ、４個のＳＤＲＡＭの各々に、それぞれ１フレーム分（２５６０×２０４８画素）の画像データが記憶される。
【００８５】
また、検出部５５は、演算により得られた画像の重心座標８４を、出力画像生成部５６に出力することに加え、選択部６０に対しても出力する。
【００８６】
選択部６０は、ワークＷの位置に基づいて、ワークＷが撮像されている４つのカメラ４０を選択し、４つのカメラ４０の画像信号のみをメモリインタフェース５３を介して画像記憶部５４に転送し記憶させるようになっている。選択部６０は、電子回路基板上に実装されるＦＰＧＡデバイスの中の演算ブロック５８の一部として実装される。選択部６０は、映像分岐部５２から出力される各々８ｂｉｔの２０個のカメラ４０の画像データ（ｂｉｔ幅：１６０ｂｉｔ）のうち、必要な４個のカメラ４０の画像データのみを選択する。そして、選択部６０は、選択した画像データを３２ｂｉｔ幅に削減した画像データとしてメモリインタフェース５３へ出力する。
【００８７】
選択部６０において、可動範囲８の全体領域８２からワークＷの周辺の５００万画素の切り出し領域８３を設定し、精細画像９２を読み出すための手順を説明する。まず、検出部５５で計算された重心座標８４より、（１）：（（重心の水平座標×４）÷２５６０）と、（２）：（（重心の垂直座標×４）÷２０４８）との演算を行う。但し、演算結果が０を下回る場合は演算結果を０とし、途中演算を含め、小数点以下は切り捨てる。
【００８８】
上述の（１）及び（２）の演算結果に応じ、（（１）の演算結果、（２）の演算結果）と表記した場合、以下の規則に準じて２０の撮影領域８０の中から第１の読み出し領域８０ａの番号を選択する。尚、ここでは説明のために２０の撮影領域８０から１つの撮影領域８０を選択するようにしているが、実際には２０個のカメラ４０から１個のカメラ４０を選択するようになっている。
（０、０）：１番、（０、１）：２番、（０、２）：３番、（０、３）：４番
（１、０）：５番、（１、１）：６番、（１、２）：７番、（１、３）：８番
（２、０）：９番、（２、１）：１０番、（２、２）：１１番、（２、３）：１２番
（３、０）：１３番、（３、１）：１４番、（３、２）：１５番、（３、３）：１６番
（４、０）：１７番、（４、１）：１８番、（４、２）：１９番、（４、３）：２０番
【００８９】
次に、第１の読み出し領域８０ａの中での重心座標８４の値を計算する。水平方向の重心座標値は、（（（重心の水平座標×４）÷２５６０）の余り＋１）で計算する。垂直方向の重心座標値は、（（（重心の垂直座標×４）÷２０４８）の余り＋１）で計算する。尚、計算結果は小数点以下を四捨五入し、丸めるものとする。
【００９０】
そして、第１の読み出し領域８０ａの中で、重心座標８４が中心から見て左上か、右上か、左下か、右下かを判定する。先に求めた第１の読み出し領域８０ａの中での水平方向の重心座標値が、１２８０．５よりも小さければ中心より左、大きければ中心より右である。また、第１の読み出し領域８０ａの中での垂直方向の重心座標値が、１０２４．５よりも小さければ中心より上、大きければ中心より下となる。以上より、中心に対する左上、右上、左下、右下を判定し、ＦＰＧＡ内部の判定用レジスタへ結果を書き込む。
【００９１】
判定結果が左上だった場合、第２の読み出し領域８０ｂとして、第１の読み出し領域８０ａの左隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの左隣に撮影領域８０が存在しない場合は、右隣の撮影領域８０の番号を選択する。また、第３の読み出し領域８０ｃとして、第１の読み出し領域８０ａの上隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの上隣に撮影領域８０が存在しない場合は、下隣の撮影領域８０の番号を選択する。
【００９２】
判定結果が右上だった場合、第２の読み出し領域８０ｂとして、第１の読み出し領域８０ａの右隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの右隣に撮影領域８０が存在しない場合は、左隣の撮影領域８０の番号を選択する。また、第３の読み出し領域８０として、第１の読み出し領域８０ａの上隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの上隣に撮影領域８０が存在しない場合は、下隣の撮影領域８０の番号を選択する。
【００９３】
判定結果が左下だった場合、第２の読み出し領域８０ｂとして、第１の読み出し領域８０ａの左隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの左隣に撮影領域８０が存在しない場合は、右隣の撮影領域８０の番号を選択する。また、第３の読み出し領域８０ｃとして、第１の読み出し領域８０ａの下隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの下隣に撮影領域８０が存在しない場合は、上隣の撮影領域８０の番号を選択する。
【００９４】
判定結果が右下だった場合、第２の読み出し領域８０ｂとして、第１の読み出し領域８０ａの右隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの右隣に撮影領域８０が存在しない場合は、左隣の撮影領域８０の番号を選択する。また、第３の読み出し領域８０ｃとして、第１の読み出し領域８０ａの下隣の撮影領域８０の番号を選択する。第１の読み出し領域８０ａの下隣に撮影領域８０が存在しない場合は、上隣の撮影領域８０の番号を選択する。
【００９５】
また、第４の読み出し領域８０ｄとして、第１の読み出し領域８０ａと第２の読み出し領域８０ｂと第３の読み出し領域８０ｃにいずれも隣り合う撮影領域８０の番号を選択する。例えば第２の読み出し領域８０ｂが左隣、第３の読み出し領域８０ｃが上隣ならば、第４の読み出し領域８０ｄは左上のものとなる。
【００９６】
以上の演算により選択された４つの撮影領域８０に対応するカメラ４０が出力した３２ｂｉｔの信号は、メモリインタフェース５３を介して画像記憶部５４に入力され、その他の信号はどこにも接続されない。また、以上の処理回路は、ＦＰＧＡ内の条件分岐回路として実装される。
【００９７】
出力画像生成部５６は、メモリインタフェース５３を介して画像記憶部５４に記憶された４つの撮影領域８０に対応する４つのＳＤＲＡＭの中から、ワークＷの周辺の５００万画素の切り出し領域８３を読み出し、出力する。尚、４つのＳＤＲＡＭにアクセスする際の各々の読み出し範囲と、アクセスタイミングについては第１実施形態と同様である。
【００９８】
上述したロボット装置１の画像撮像装置４によりワークＷの撮影を行う際の処理手順を、図９に示すフローチャートに沿って説明する。
【００９９】
撮影を行う際は、制御装置３が、画像撮像装置４のイメージセンサ制御部５０にイメージセンサ制御信号をＲＳ２３２Ｃ規格で送信し、イメージセンサ制御部５０は、受信したイメージセンサ制御信号に基づいて、カメラ４０のイメージセンサを制御する。
【０１００】
カメラ４０は、イメージセンサ制御部５０により制御され、１フレームごとに２回の撮影が実行される。１フレームの中の１回目の撮影では、間引き読み出しによりワークＷの可動範囲８を撮影し（第１の撮影工程）、全体の粗画像９１を生成する（ステップＳ２１、第１の画像生成工程）。得られた粗画像９１は、映像分岐部５２を介して検出部５５に送信される。
【０１０１】
検出部５５は、入力された粗画像９１に基づき、ワークＷの重心座標８４、即ち概略位置を算出し（ステップＳ２２、概略位置演算工程）、選択部６０及び出力画像生成部５６に送信する。
【０１０２】
１フレームの中の２回目の撮影では、全画素の読み出しによりワークＷの可動範囲８を撮影する（ステップＳ２３、第２の撮影工程）。ここで、得られた全ての精細画像９０のデータは選択部６０に送信され、選択部６０ではワークＷの周囲の４個のカメラ４０を選択し、その４個のカメラ４０の画像データのみをメモリインタフェース５３を介して画像記憶部５４に記憶する（ステップＳ２４）。従って、ここでの第２の撮影工程では、実質的には可動範囲８の全体の撮影ではなく、選択された４個のカメラ４０のみの撮影、即ち、ワークＷの重心座標８４を含む可動範囲８の一部の撮影を実行することになる。
【０１０３】
出力画像生成部５６は、ワークＷの重心座標８４からワークＷの周囲の５００万画素の切り出し領域８３の位置を算出する。そして、出力画像生成部５６は、切り出し領域８３に対応する精細画像９２のデータを画像記憶部５４から読み出して、概略位置周囲の精細画像９２を生成する（ステップＳ２５、第２の画像生成工程）。生成された概略位置周囲の精細画像９２は、映像出力インタフェース５７を介して映像信号として制御装置３に送信され、制御装置３においてワークＷの詳細位置を演算し、ロボット本体２の動作の制御に利用される。
【０１０４】
上述したように本実施形態の画像撮像装置４によれば、第１実施形態の効果に加え、４個のカメラ４０のみの精細画像のデータを記憶するので、２０個のカメラ４０の精細画像９０のデータを記憶する場合に比べて、画像記憶部５４のメモリ容量を低減できる。しかも、カメラ４０の個数が更に増加しても、メモリ容量は４個分のカメラ４０のみの精細画像のデータを記憶する容量で足りる。このため、メモリ容量の低減により部品コストを削減することができる。
【０１０５】
上述した第１〜第３実施形態では、出力画像生成部５６は、重心座標８４を含む５００万画素の精細画像を４個のカメラ４０の撮影領域から切り出すようにして生成する場合について説明したが、これには限られない。例えば、ワークＷの移動に要求される精度やワークＷの大きさ、カメラ４０の解像度等により、切り出す精細画像の大きさや、切り出す前の撮影領域となるカメラ４０の数量を適宜変更することができる。例えば、大型のワークＷを扱う場合は、精細画像の画素数を多くしたり、あるいは精細画像を４個以上のカメラ４０の撮影領域から切り出すようにすることができる。
【０１０６】
また、上述した第１〜第３実施形態では、ワークＷの水平方向の移動のみ考慮した場合について説明したが、これには限られない。例えば、ワークＷの上下方向の移動を考慮し、ワークＷが上下方向に移動することに伴うワークＷの画像の大きさの変化を考慮するようにしてもよい。
【０１０７】
また、上述した第１〜第３実施形態では、カメラ４０はロボット本体２とは離れた天井等に設置された場合について説明したが、これには限られない。例えば、カメラ４０は、アーム２１の先端側のリンクに設けられたオンハンドカメラであってもよい。
【０１０８】
また、上述した第１〜第３実施形態では、各カメラ４０による各撮影領域８０の全体がワークＷの可動範囲８の全体領域８２に一致するように設定しているが、これには限られない。例えば、各カメラ４０による各撮影領域８０の全体が、ワークＷの可動範囲８の一部の範囲であったり、あるいは可動範囲８より広い範囲であってもよい。
【０１０９】
また、上述した第１〜第３実施形態では、演算部５，１０５，２０５は、電子回路基板から構成された場合について説明したが、これには限られない。例えば、演算部５，１０５，２０５を、ＣＰＵ、画像記憶部５４であるＲＡＭ、プログラムが格納されるＲＯＭ、各種インタフェースを有するコンピュータにより構成するようにしてもよい。
【０１１０】
この場合、第１〜第３実施形態の各処理動作は、具体的にはコンピュータである演算部５，１０５，２０５により実行される。従って、上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を演算部５，１０５，２０５に供給し、記録媒体に格納されたプログラムを各ＣＰＵが読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した各実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１１１】
また、上述した例では、コンピュータ読み取り可能な記録媒体がＲＯＭであり、ＲＯＭにプログラムが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【０１１２】
１…ロボット装置、２…ロボット本体、３…制御装置、４…画像撮像装置、５，１０５，２０５…演算部、８…可動範囲、４０…カメラ、８０…撮影領域（小区分）、８２…可動範囲の全体、８３…切り出し領域（可動範囲の一部）、８４…重心座標（概略位置）、９１…粗画像（第１の画像）、９２…精細画像（第２の画像）、Ｗ…ワーク
【図１】
2015041136.tif 000003
【図２】
2015041136.tif 000004
【図３】
2015041136.tif 000005
【図４】
2015041136.tif 000006
【図５】
2015041136.tif 000007
【図６】
2015041136.tif 000008
【図７】
2015041136.tif 000009
【図８】
2015041136.tif 000010
【図９】
2015041136.tif 000011
【図１０】
2015041136.tif 000012