(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【0016】
図1に示すように、生産システムとしてのロボット装置1は、搬送機器としてのロボット本体2と、撮影対象物としてのワークWを上方から撮影可能な画像撮像装置3と、ロボット本体2及び画像撮像装置3を制御する制御装置4と、を備えている。本実施形態では、ロボット本体2は、ワークWを把持して500mm×500mmの作業領域を予め教示した略直線状の軌道で、最大2000mm/sの速度で一方向に搬送可能になっている。
【0017】
ロボット本体2は、多関節ロボットであり、6軸の垂直多関節アーム(以下、アームと呼ぶ)21と、エンドエフェクタである把持ツールとしてのハンド22とを有している。本実施形態では、アーム21として6軸の垂直多関節アームを適用しているが、軸数は用途や目的に応じて適宜変更してもよい。また、本実施形態では、エンドエフェクタとしてハンド22を適用しているが、これには限られず、ワークWを把持あるいは保持して移動させることができるツールの全般を含めることができる。
【0018】
アーム21は、7つのリンク61〜67と、各リンク61〜67を揺動又は回動可能に連結する6つの関節71〜76とを備えている。各リンク61〜67としては、長さが固定されたものを採用している。但し、例えば、直動アクチュエータにより伸縮可能なリンクを採用してもよい。各関節71〜76には、各関節71〜76を各々駆動するモータと、モータの回転角度を検知するエンコーダと、各モータに供給する電流を検知する電流センサと、各関節71〜76のトルクを検知するトルクセンサと、が設けられている。
【0019】
ハンド22は、アーム21の先端リンク67に取り付けられて支持され、アーム21の動作により位置及び姿勢の少なくとも一自由度が調整されるようになっている。ハンド22は、2本の指23と、これら指23の間隔を開閉可能に支持するハンド本体24とを備え、指23同士が接近する閉動作によりワークWを把持可能になっている。
【0020】
ハンド本体24には、指23を動作させるためのモータと、該モータの回転角度を検知するエンコーダと、先端リンク67に連結される連結部とが設けられている。尚、本実施形態では、ハンド22は指23を2本有するものとしているが、これには限られず、ワークWを把持するために指の数は2本以上あればよい。
【0021】
図2に示すように、制御装置4は、コンピュータにより構成され、ロボット本体2及び画像撮像装置3を制御するようになっている。制御装置4を構成するコンピュータは、例えばCPU40と、各部を制御するためのプログラムを記憶するROM41と、データを一時的に記憶するRAM42と、入出力インタフェース回路(I/F)43とを備えている。
【0022】
本実施形態では、ワークWは、製品を構成する部品であり、上方から視て例えば直径50mm程度の円形状としている。ワークWは、パレット上に厳密な位置決めがされることなく置かれており、ハンド22によりピックアップされ、製品組立てのため所定の位置まで搬送されるようになっている。ワークWは、ハンド22にピックアップされた状態では、どのような位置姿勢を取っているか不明である。このため、画像撮像装置3により連続撮影し、その中から最良の画像を抽出した後に、制御装置4での画像処理により位置姿勢を計測して、アーム21により位置姿勢を修正された上で、例えば、他のワークに組み付けられるようになっている。
【0023】
また、本実施形態では、ワークWが撮像範囲の中心に位置する際に最良の画像が撮影されるように、照明装置等が設置されている。尚、撮影された画像において、ワークWは、撮影背景及びハンド22から識別され易いことが望まれる。このため、ワークWと、撮影背景及びハンド22とには、十分な輝度差があるようにする。例えば、ワークWは輝度の高い白色等とし、撮影背景及びハンド22は輝度の低い黒色等とする。
【0024】
次に、本実施形態の特徴部である画像撮像装置3について、
図2(a)に基づいて詳細に説明する。画像撮像装置3は、ロボット本体2から離隔して配置され、例えば、基台に支持された架台に固定されて支持されている。画像撮像装置3及びワークWの照明装置等は、制御装置4に設けられた不図示のシーケンサからワークWの搬送開始指示であるトリガ信号を受信することにより、作動するようになっている。また、画像撮像装置3及びワークWの照明装置等は、トリガ信号が発せられる前は撮影及び照明点灯を行わない待機状態になっており、トリガ受信を検知できるだけの最小限の回路が起動されている。
【0025】
画像撮像装置3は、ワークWを連続撮影するカメラ部30と、撮影された画像から最適な画像を抽出する画像
処理装置50とを備えている。本実施形態では、これらカメラ部30及び画像
処理装置50は、1つの筐体に収容されており、単体のカメラとして動体を連続撮影して最適画像を出力するようになっている。また、本実施形態では、カメラ部30が固定され、ワークWが移動するように設置しているが、これには限られず、ワークWが固定され、カメラ部30が移動するようにしてもよい。即ち、カメラ部30は、相対移動するワークWを連続撮影可能になっていればよい。
【0026】
カメラ部30は、撮影光学系としてのレンズ31と、該レンズ31からの画像を取り込んで電気信号に変換する撮像素子32とを備えている。レンズ31と撮像素子32とを組み合わせた光学系は、200mm×200mmの撮影範囲を持つようにしている。撮像素子32の連続撮影で得られた画像は、画像
処理装置50に出力される。撮像素子32としては、例えばCMOSイメージセンサを適用している。但し、これには限られず、CCDセンサ等を適用してもよい。
【0027】
撮像素子32は、ワークWの特徴を十分に捉えることのできる解像度を有すると共に、ワークWの搬送速度に対して十分早い撮像間隔(以下フレームレートという)で撮像可能になっている。例えば、撮像素子32は、約4メガピクセル(2048×2048画素)の空間解像度を持ち、各画素は8bitのbit深度を持ち、10対のLVDS信号により画像を出力する。即ち、撮像光学系の画素分解能は、約100μm×100μmである。撮像素子32により4メガピクセルを出力する場合のフレームレートは、例えば100fpsである。このカメラ部30によれば、ワークWが撮像範囲の外から内に入り、内から外に出るように直線状に移動する間、即ち200mm移動する間に、連続撮影可能になっている。その連続撮影により10枚の画像を得ることができ、より効率的に最適な画像を得ることができる。
【0028】
撮像素子32の撮影モードは、一定のフレームレートで連続的に画像を撮影する連続撮影モードを少なくとも有している。また、撮像素子32は、SPI(Serial Peripheral Interface)等の通信を介して、内蔵されるレジスタへ設定値を書き込んだ上で、約4メガピクセルの精細画像を読み出すようになっている。撮像素子32は、内蔵されるレジスタに書き込んだ設定値により、1/2×1/2(1画素飛ばし)、1/4×1/4(3画素飛ばし)等の間引き量で画像を間引きした低画質の間引き画像を読み出しできる。また、間引きした量に応じてフレームレートを高速化でき、例えば1/4×1/4の間引きであれば、例えばフレームレートは16倍の2560fpsとなる。
【0029】
画像
処理装置50は、制御部51及び記憶部52を備えており、これらを搭載する電子回路基板からなる。これらは、電子回路基板上に実装されるFPGAデバイスの中の演算ブロックとして実装されている。FPGAとは、Field−Programmable Gate Arrayである。演算ブロックは、周知のHDL言語でのハードウェア記述を基にした合成回路と、FPGAが備えるマクロ回路とにより実装されている。
【0030】
尚、本実施形態では、FPGAにより演算ブロックを構成しているが、これには限られず、例えば、プログラムにより動作するコンピュータ(CPUやMPU等を含む)や、ASIC等を適用してもよい。ASICとは、Application Specific Integrated Circuitである。これらの構成は、回路面積、コスト、演算速度等の性能のバランスを考慮した上で、適宜設計することができる。
【0031】
制御部51は、画像整列部53と、差分画像計算部54と、評価値演算部55と、抽出判定部56と、画像出力部57とを備えている。記憶部52は、テンプレートメモリ58と、FIFOメモリ59とを備えている。
【0032】
画像整列部53は、カメラ部30から出力された画素信号を後段の処理に使うことができるように整列させる回路であり、撮像素子32の出力形式によって並べ替えを行うようになっている。例えば、高速カメラでは1クロックで複数の画素を同時に出力するものが主流であるが、この回路で順番を整えて後段に送りこむようになっている。画像整列部53の出力は、差分画像計算部54及びFIFOメモリ59に送られる。
【0033】
図2(b)に示すように、FIFOメモリ59は、FIFO画像バッファ80と、FIFO評価値バッファ90とを備えている。FIFO画像バッファ80は、所定数(深さ)としての4つの記憶領域81〜84を備えている。第1の記憶領域81には最新の画像データが記憶され、第2の記憶領域82,第3の記憶領域83には、順次古い画像データが記憶され、第4の記憶領域84には4つの記憶領域の中で最も古い画像データが記憶されている。即ち、FIFO画像バッファ80は、1つの画像に関する画像関連データを所定数に限り記憶可能で、新たな画像関連データが書き込まれると最も古い画像関連データが消去されて更新されるようになっている。
【0034】
具体的には、画像整列部53からFIFOメモリ59に画像データが入力されると、第3の記憶領域83に記憶された画像データが第4の記憶領域84に上書きされ、第4の記憶領域84に記憶されていた画像データは破棄される。そして、第2の記憶領域82に記憶された画像データが第3の記憶領域83に上書きされ、第1の記憶領域81に記憶された画像データが第2の記憶領域82に上書きされる。更に、画像整列部53からFIFOメモリ59に入力された最新の画像データが、第1の記憶領域81に記憶される。
【0035】
また、FIFO評価値バッファ90は、FIFO画像バッファ80に一対一に対応して設けられ、FIFO画像バッファ80と同様に、第1〜第4の記憶領域91〜94を備えている。FIFO評価値バッファ90には、FIFO画像バッファ80に記憶された各画像に対応する評価値が記憶されており、第1の記憶領域91に新たな評価値が記憶されると、各評価値が第4の記憶領域94まで順次繰り下がるようになっている。
【0036】
図2(a)に示すように、テンプレートメモリ58は、不揮発性の画像メモリで、撮影背景のテンプレート画像が保存されている。ここでのテンプレート画像は、ワークW及びハンド22が撮像範囲に入らないようにして、計測時と同一のカメラ部30を利用して予め撮影された画像、あるいはその画像にノイズフィルタやローパスフィルタ等を施した画像となっている。
【0037】
差分画像計算部54は、画像整列部53からの画像と、テンプレートメモリ58からのテンプレート画像との差分画像を計算するようになっている。これにより、移動するワークW以外の背景部分を除去することができる。尚、ノイズ成分は差分画像では取れないので、差分画像計算部54の出力に適宜ローパスフィルタを掛けることも有効である。
【0038】
評価値演算部55は、差分画像計算部54から出力された差分画像について、該差分画像におけるワークWの位置に基づいて画像の評価値を演算するようになっている。即ち、評価値は、画像と個々に対応して生成される画像関連データである。この演算では、差分画像計算部54の出力から0以外の部分、即ち移動するワークWがある位置を特定するようになっている。具体的には、例えば、撮像範囲に入ってきたワークWの重心位置を算出し、差分画像の中心点等の理想位置との距離を評価値として用いることができる。この場合、距離が小さい程、良好な画像であり、評価値を大きくする(
図4参照)。
【0039】
尚、評価値の演算方法としては、ワークWの重心位置と差分画像の中心点との距離を算出することには限られない。例えば、差分画像と、予め撮影したワークWが存在しない場合の画像と、の差分を評価値としてもよい。即ち、ハンド22を含めたワークWの大きさと、撮影画角がほぼ一致する場合は、ワークWが撮影画像の中央部にあるときに、予め記憶されたワークWが存在しない場合の画像との差異が最も大きくなる。このため、差分画像と、ワークWが存在しない場合の画像との単純な差異(画素同士の差の符号を除いた値の和等)の大きさを評価値とすることができる。この場合は、差異が大きい程、良好な画像であり、評価値を大きくする。
【0040】
あるいは、評価値演算部55の演算能力が十分あるときには、撮像範囲の中心位置にサンプルのワークWを停止させて撮影し、評価用テンプレート画像としてテンプレートメモリ58に記憶しておく。そして、評価用テンプレート画像を用いて、正規化相関演算を行い、実際の測定時に連続撮影して得られた画像の評価値を演算するようにしてもよい。評価値演算部55による演算結果は、FIFO評価値バッファ90の第1の記憶領域91に送信されて記憶される。
【0041】
抽出判定部56は、FIFO評価値バッファ90の第1〜第4の記憶領域91〜94に記憶された評価値を読み出すようになっている。そして、抽出判定部56は、第4の記憶領域94に記憶された最古の評価値が所定の閾値よりも大きく、かつ第1〜第3の記憶領域91〜93に記憶された評価値よりも大きいか否かを判断するようになっている。抽出判定部56が、第4の記憶領域94に記憶された評価値が所定の閾値及び他の3つの評価値よりも大きいと判断した場合は、FIFO画像バッファ80の第4の記憶領域84に記憶された最古の画像を画像出力部57に出力するようになっている。
【0042】
画像出力部57は、入力された画像データを、所定の画像伝送規約に基づいて制御装置4の入出力インタフェース回路43に送信するようになっている。制御装置4では、入力された画像データに基づいてワークWの位置姿勢を演算し、ワークWを適切に移動させるようにロボット本体2を制御するようになっている。
【0043】
次に、本実施形態のロボット装置1によってワークWを把持して搬送する際に、画像撮像装置3によりワークWを撮影してその位置姿勢を算出する動作の手順について、
図3に示すフローチャートに沿って説明する。
【0044】
ワークWを搬送する前に、予めロボット本体2に教示を行っておく。ここでは、ハンド22にワークWを把持させ、ワークWが画像撮像装置3の撮像範囲を一定速度で直線上を通過するよう、ロボット本体2に教示する。本実施形態では、ワークWを把持したハンド22が、撮像範囲を2000mm/sの一定速度で移動し、ワークWは撮像範囲の中心付近を通るように教示する。即ち、
図4に示すように、ワークWは、撮像範囲の左端において外から内に入り、右方向へ直線的に移動して中心を通過し、撮像範囲の右端において内から外へ出るように移動する。
【0045】
画像撮像装置3及び照明装置等は、待機状態になっており、シーケンサからの搬送開始指示であるトリガ受信を検知できるだけの最小限の回路が起動されている。画像撮像装置3は、トリガ信号が入力されたか否かを判断する(ステップS1)。ロボット装置1の動作が開始されると、シーケンサからトリガ信号が出力される。画像撮像装置3がシーケンサからのトリガ信号を検知すると、カメラ部30は連続撮影を開始すると共に(ステップS2)、照明装置が点灯される。また、シーケンサは、搬送作業中は、作業中フラグをオン状態にしている。
【0046】
撮像素子32により新しい画像が撮像されると(ステップS3)、画像データは画像整列部53を経て、FIFO画像バッファ80の第1の記憶領域81に記憶される(ステップS4)。この直前に第1〜第3の記憶領域81〜83に記憶されていた画像データは、それぞれ第2〜第4の記憶領域82〜84に移動される。また、並行して、画像整列部53から出力された画像データは、差分画像計算部54においてテンプレート画像との差分を計算され、その結果から差分画像が算出される(ステップS5)。
【0047】
差分画像計算部54において算出された差分画像は評価値演算部55に入力され、評価値演算部55は差分画像の評価値を演算する(ステップS6、演算工程
、第1の工程)。ここでは、評価値演算部55は、差分画像におけるワークWの重心位置を算出し、それが差分画像の中心位置と一致する場合を10点、ワークWが全て画像外にある場合を0点とし、その間は重心位置と中心位置との距離を10等分して0〜10点で評価する。例えば、
図4に示すように、t4ではワークWが差分画像の中心位置付近にあるので9点、t8ではワークWが差分画像の外にあるので0点となっており、評価値が大きい程、好適な画像となっている。
【0048】
評価値演算部55において演算された評価値は、FIFO評価値バッファ90の第1の記憶領域91に書き込まれて記憶される(ステップS7、書込工程
、第1の工程)。
【0049】
抽出判定部56は、FIFO評価値バッファ90の第4の記憶領域94に記憶された評価値、即ち最古の評価値が所定の閾値より大きいか否かを判断する(ステップS8)。抽出判定部56が、最古の評価値が閾値より大きくはないと判断した場合は、次の画像が撮影されるまで待つ(ステップS3)。
【0050】
抽出判定部56が、最古の評価値が閾値より大きいと判断した場合は、FIFO評価値バッファ90の第4の記憶領域94に記憶された最古の評価値が、記憶された4つの評価値の中で最大か否かを判断する(ステップS9)。尚、ステップS3において新たな撮影が実行されて画像データの入力が検出されてから、次の画像データが入力されるまでに、ステップS9の判定が終了するように設定する。抽出判定部56が、最古の評価値が、記憶された4つの評価値の中で最大ではないと判断した場合は、次の画像が撮影されるまで待つ(ステップS3)。
【0051】
抽出判定部56が、最古の評価値が、記憶された4つの評価値の中で最大であると判断した場合は、その時点でFIFO画像バッファ80の第4の記憶領域84に記憶されている最古の画像データを抽出して出力する(ステップS10、抽出工程
、第2の工程)。出力された画像データは制御装置4に入力され、制御装置4は入力された画像データに基づいてワークWの位置姿勢を演算し、その位置姿勢に基づいてロボット本体2の軌道演算を実行し制御する(ステップS11)。
【0052】
ここで、最古の評価値が、記憶された4つの評価値の中で最大であるか否かを判断することにより、自動的に連続撮影された複数枚の画像から適切な画像を選択することができる理由を、以下に説明する。
【0053】
図4の左列は、カメラ部30の前をワークWが通過する際に撮像される画像を、t1〜t8の等間隔な時系列で示したものである。各画像の下には、それぞれの評価値を示している。また、
図4の右列は、t1〜t8の各時点でのFIFOメモリ59の記憶内容を示す。より詳細には、FIFO画像バッファ80については、左側から右側に向けて第1〜第4の記憶領域81〜84、FIFO評価値バッファ90については、左側から右側に向けて第1〜第4の記憶領域91〜94となっている。尚、
図4では便宜上、t8のFIFOメモリ59を示しているが、実際にはt7で撮影が終了するので、FIFOメモリ59がt8に示すようになることはない。
【0054】
処理を開始して、t1〜t6の時点では、FIFO評価値バッファ90の第4の記憶領域94の評価値が最大ではないので、それに対応する画像データは出力されない(ステップS9;NO)。そして、t7の時点では、FIFO評価値バッファ90の第4の記憶領域94の評価値が最大になるので、それに対応する画像データが出力される(ステップS9;YES)。
【0055】
即ち、t7において初めて最古の評価値が最大になったということは、t1〜t6での各最古の評価値は全てt7での最古の評価値より小さかったということである。しかも、t7の時点でt7の後の撮影で3回分の評価値も、全てt7での最古の評価値より小さいということである。従って、t7での最古の評価値がピークであり、この評価値の画像が一連の画像で最も好適な画像となる。このようにして、自動で最適な画像を選択することができるようになる。
【0056】
尚、ワークWが撮像範囲に入る直前等で評価値が小さい場合には、条件によっては、ノイズ成分によって新しい画像程、評価値が小さくなる可能性がある。このような場合に、上述したステップS9のみのアルゴリズムを単純に適用すると、好適ではない画像を出力してしまう虞がある。そこで、本実施形態では、ノイズレベルより大きい一定の値を所定の閾値として足切りすることによってそのような誤動作を防いでいる(ステップS8)。
【0057】
特許文献1に示されるような従来例では、撮像範囲内にワークが全て入って撮影されれば、それ以降により好適な画像を取得できる可能性があっても最初に入った時点での画像データが出力されてしまっていた。これに対し、本実施形態では、正しく評価値がピークとなる画像を検出して、出力することができる。
【0058】
また、実際にピークの画像を撮影してから、当該画像がピークであると判断できるまでの遅延は、撮像素子32のフレームレートとFIFOメモリ59の深さで決まる。例えば、1秒間に100枚撮影できる能力のある撮像素子32でフレームレートを10msecとし、FIFOメモリ59の深さ(段数)を本実施形態のように4とすると、撮影回数で3回分遅れるので、遅延は30msecとなる。
【0059】
ここで、計測位置でのワークWの速度を2m/sとすると、30msecでのワークWの移動量は60mmである。搬送距離が500mm程度である一般的なロボット本体2の場合は、加減速も含めて全搬送時間が300msec程度であるので、移動距離及び時間とも十分な余裕がある。
【0060】
また、
図5に、
図4とは別の連続撮影での時刻と評価値との関係を示す。
図5に示すように、評価値の系列に真の好適値でない所謂マイナーピーク(t4及びt12)が生じていても、FIFOメモリ59の深さを適切に設定すれば、最適な画像を自動で選択することが可能である。このように、マイナーピークが発生し易い状況として、例えば、
図6(a)に示すように、ワークWが複数の類似形状を隣接して有する場合がある。あるいは、
図6(b)に示すように、ハンド22の指23のような把持あるいは搬送のための部材がワークWと類似形状をしていて評価値が影響を受ける場合がある。
【0061】
次に、
図5に示す場合で、FIFOメモリ59の深さを4とした本実施形態の効果を説明する。この条件では、t4でマイナーピークが生じていても、その後、3回続けてt4より評価が小さい画像が取得されなければ、t4での画像が出力されることはない。即ち、
図5の例の場合、t7の時点では、t4の評価値が最古であり、それはt5の評価値より大きいが、t7で得られた最新の評価値はt4よりも大きいので、結局t4の評価値は出力されない。また、t12でもマイナーピークが生じているが、真のピークがt9にあり、t12において撮影が終了しているので、t12の画像が出力されることはない。
【0062】
図3に示すように、FIFO画像バッファ80の第4の記憶領域84に記憶されている最古の画像データを出力した後は、連続撮影を停止して、FIFOメモリ59を一旦リセットする(ステップS12)。更に、画像撮像装置3は待機状態になり、トリガ受信を検知だけ可能な低消費電力状態となる(ステップS13、撮影停止工程)。尚、本実施形態では、ステップS12及びステップS13が、本発明の撮影停止工程に相当する。そして、画像撮像装置3は、シーケンサから出力される作業中フラグがオンであるか否かを検出する(ステップS14)。画像撮像装置3は、作業中フラグがオンであることを検出した場合は、再度、連続撮影を開始する(ステップS2)。例えば、全てのワークWが通過し、作業中フラグがオフであると、作業は終了する。
【0063】
上述したように本実施形態の画像撮像装置3によれば、制御部51が、連続撮影により得られた画像ごとに、各画像におけるワークWの位置に基づいて評価値を演算し、それを、評価した画像の画像関連データとして記憶部52に書き込む。そして、制御部51は、記憶部52に書き込まれた評価値の中で、最も古い画像の評価値が最大値である場合に、その最も古い画像を記憶部52から抽出する。このため、センサ等の部品点数を増加させることなく、移動するワークWを連続撮影した複数の画像の中から最良な画像を抽出することができる。
【0064】
また、本実施形態の画像撮像装置3によれば、評価値が所定の閾値より大きくなければ、その画像は選択されないので、例えば、ワークWが撮像範囲に入る前の状態での誤検知を防ぐことができる。また特許文献1に示された例と異なり、厳密に設定する必要はないため、緩く設定すればよく条件設定が簡単で、この処理によって取りこぼす虞もない。
【0065】
また、本実施形態の画像撮像装置3によれば、最適な画像を出力した後に、撮影を停止している。このため、ワークWが通過する際の連続撮影時間を必要最小限にして、消費電力の増大による発熱等を抑えることができ、作業中に常時連続撮影する場合と比較して消費電力を半分程度に抑えることができる。即ち、通常、移動体の撮影では露光時間を短くしなければならないため、強い照明が必要で電力を消費し発熱を起こす。特に、連続撮影を行う際は処理回路の動作速度が速いため大きな電力を消費し、大きな発熱があり得た。これに対し、本実施形態によれば発熱を緩和することができる。
【0066】
尚、上述した実施形態では、連続撮影を開始するトリガとしてシーケンサからの搬送開始指示を適用する場合について説明したが、これには限られない。例えば、ワークWが撮像範囲に近づいたことを光センサ等で得て、連続撮影を開始するようにしてもよい。この場合、シーケンサを利用するよりも消費電力を低減することができる。
【0067】
また、上述した実施形態では、FIFOメモリ59の深さを4とした場合について説明したが、これには限られず、2以上であればよい。深さの設定は、メモリの大きさや遅延時間、評価関数等に関係するため、コストや要求処理速度に応じて適宜設定する。
【0068】
また、上述した実施形態では、記憶部52としてFIFOメモリ59を適用した場合について説明したが、これには限られない。例えば、通常のRAMを利用し、制御回路によって複数の記憶領域に分割すると共に、各記憶領域ごとに時系列の順にデータが書き込まれ、古いデータから廃棄されるように制御することで、本実施形態のFIFOメモリ59と同様の構成を実現することができる。
【0069】
また、上述した実施形態では、生産システムとしてロボット装置1を適用すると共に、搬送機器としてロボット本体2を適用した場合について説明したが、これには限られない。即ち、本発明の画像撮像装置は、ワークWを搬送可能な搬送機器を有する生産装置を備える生産システムの全般に適用することができる。
【0070】
また、上述した実施形態では、制御部51は、FPGAから構成された場合について説明したが、これには限られない。例えば、CPU、ROM、RAM、各種インタフェースを有するコンピュータにより、制御部51を構成するようにしてもよい。
【0071】
この場合、本実施形態の各処理動作は、具体的には制御部51により実行される。従って、上述した機能を実現するソフトウェアの画像
処理プログラムを記録した記録媒体を制御部51に供給し、記録媒体に格納された画像
処理プログラムを各CPUが読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【0072】
また、上述した例では、コンピュータ読み取り可能な記録媒体がROMであり、ROMにプログラムが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、HDD、外部記憶装置、記録ディスク等を用いてもよい。