説明

スマートカメラ及びロボットビジョンシステム

【課題】ロボットの各種制御等に際し、ネットワークを介してのより自由度の高い、しかもより効率のよいデータ授受を可能とするスマートカメラ、及び該スマートカメラを備えるロボットビジョンシステムを提供する。
【解決手段】スマートカメラは、第1コマンドインタフェースCIF1(以下、CIF1)と第2コマンドインタフェースCIF2(以下、CIF2)とを有する。画像処理プロセスDPはCIF1から入力される指令に基づいて撮像データDT1を画像処理し、ロボットの制御に有益な情報からなる結果データDT3を生成してこれを結果データバッファDB3に保存し、またCIF1に出力可能にする。一方、イメージセレクタSWはCIF2から入力される指令に基づいて撮像データDT1または処理画像データDT2のいずれかをモニタ画像データとして選択してこれをCIF2から出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像した画像から情報を抽出するスマートカメラ、及びそのスマートカメラによる視覚機能を備えたロボットビジョンシステムに関する。
【背景技術】
【0002】
一般に産業用ロボットは、その先端の機能部を所定の目標位置に順次移動させることで、その機能部にて被搬送物を把持して搬送することや被加工物に種々の作業を行なうことを可能にしている。そして、こうしたロボットの機能部の移動は、予めティーチングなどでその機能部が目標位置を順次移動するように作成された制御プログラムに基づいて行なわれることが多い。例えば、複数のアームが回動可能に順に連結されたロボットでは、制御プログラムによって各アームの連結部の回転角度が逐次指定された回転角度に制御されることによりその機能部が所定の位置に位置決めされる。
【0003】
ところで、このように予め定められた制御プログラムに基づいて制御されるロボットの機能部に所定の作業を行なわせるためには、ロボットと被加工物や被搬送物との相対的な位置関係が制御プログラムを作成したときの位置関係と同様でなければならない。詳述すると、例えば部品を基板に配置させるような場合、ロボットは所定の位置及び向きで供給された部品をその機能部の所定の位置に所定の向きで把持するとともに、その機能部を所定の向きで所定の位置に移動させることによって、本来所定の位置及び向きに配置されているはずの基板に対する部品の配置を行なうこととなる。そのため逆に、部品の供給位置や供給向き、あるいは部品とロボットとの相対位置、さらには基板の配置位置や向き等のいずれか一つでもそれらの関係にずれが生じるだけで、基板に対する部品の配置精度が確保できなくなる。
【0004】
そこで従来は、部品等の位置や向きに多少のずれがあってもロボット等が搬送する部品を基板に対して正確に配置させるために、例えば特許文献1に記載のようなシステム、すなわち画像処理をカメラと一体となった処理部にて行なうスマートカメラを用いたシステムも提案されている。このシステムは基本的に、イメージセンサとそのイメージセンサの撮像した周辺画像をデータ処理する処理部としての制御モジュールとを有するスマートカメラと、駆動装置(ロボット等)を駆動制御する制御モジュールを有する駆動制御装置と、これらスマートカメラ及び駆動制御装置間での通信に供されるネットワークとによって構成されている。すなわち、スマートカメラは、その制御モジュールにてイメージセンサを通じて撮像された部品及び基板の画像データを画像処理して基板に対する部品の相対位置のずれ量等の駆動装置の制御に必要な情報を生成するとともに、その生成した情報を駆動制御装置に伝達する。また、駆動制御装置は、ネットワークを介してスマートカメラから伝達された情報に基づいて位置補正などを行い、この補正した位置に部品を搬送するなどの動作を行なう。これにより、部品の搬送位置などもリアルタイムに補正され、駆動装置による部品の位置決め精度も自ずと向上されるようになる。
【特許文献1】米国特許第6985780号
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、上記特許文献1に記載のシステムも含め、スマートカメラは通常、図7に示すような機能ブロックを有して、コマンドインタフェースCIFaから入力される各種指令に応答して画像処理やネットワークを介したデータ転送をはじめとする各種処理を実行する。すなわち、こうしたスマートカメラでは、ネットワークに接続されたコマンドインタフェースCIFaを介して入力される「画像処理指令」や「結果データ取得指令」、「
モニタ画像取得指令」等の各種指令に対応する所要の処理が画像処理プロセスDPaを通じて総括的に実行される。例えば、「画像処理指令」の入力された画像処理プロセスDPaは、撮像データバッファDB1aから撮像データDT1aが転送された処理画像バッファDB2a中の処理画像データDT2aを取得して所要の画像処理を行なう。こうした画像処理としては例えば次のような処理がある。すなわち、処理画像データDT2aを取得した画像処理プロセスDPaは、先の撮像データDT1aを元にしてその撮像対象物の輪郭を抽出するなどした後、これを再び処理画像データDT2aとして処理画像バッファDB2aに保存する。そして、この保存した処理画像データDT2aを基準輪郭データと比較するなどしてその適否を示す情報等から生成される結果データDT3aを求め、これを結果データバッファDB3aに保存する。その後、上記コマンドインタフェースCIFaを介して例えば「結果データ取得指令」がこの画像処理プロセスDPaに入力されると、該画像処理プロセスDPaは、結果データバッファDB3aから上記求めた結果データDT3aをコマンドインタフェースCIFaを介して出力させる。
【0006】
また一方、このような視覚機能を有するロボットビジョンシステムにあっては、制御プログラムの作成や保守のための開発環境としてのコンピュータのモニタ装置等に、カメラが撮像したそのままの撮像データDT1aを表示させることもある。そのようなときには、コマンドインタフェースCIFaを介して画像処理プロセスDPaには「モニタ画像取得指令」が入力される。そしてこの場合、コマンドインタフェースCIFaでは、撮像データDT1aから撮像データDT1aが転送された処理画像データDT2a中の処理画像データDT2aを取り込み、これをコマンドインタフェースCIFaを介して出力する。ただしこの場合には、画像データのデータ量が他種のデータと比較して膨大であることから、ネットワークを通じた画像データの転送にも比較的多くの時間を要する。すなわち、画像処理プロセスDPaによる「モニタ画像取得指令」に対する処理には通常、多くの時間を要することとなる。しかも、こうした画像処理プロセスDPa自体が通常、1つの指令に基づく処理を終了してから次の指令に基づく処理を実行するようになっていることから、時間を要する処理が実行されている場合には、その次の指令に対する処理も自ずと遅延するようになる。例えば、画像処理プロセスDPaが「モニタ画像取得指令」に基づいて画像データを転送する処理を実行している最中に「結果データ取得指令」が入力されたような場合、この「結果データ取得指令」に対する応答は、先に実行中の「モニタ画像取得指令」に対する処理が終了するまで得られない。このため、特に「結果データ取得指令」に対する処理により取得される結果データDT3aに基づいてフィードバック制御等される駆動装置にあっては、その位置決め等にかかる精度の低下なども招きかねないこととなる。
【0007】
なお、モニタ画像を表示させる方法としては、モニタ画像をスマートカメラと専用ケーブルで接続されたモニタ専用装置に表示させることも考えられるが、小型化が要求されるスマートカメラに専用ケーブルを接続するための接続端子等を設けること自体が容易ではない。また、モニタ専用装置を設けるにせよ、そのための設置スペースの確保も含めてコストアップが避けられない。
【0008】
本発明は、こうした実情に鑑みてなされたものであって、その目的は、ロボットの各種制御等に際し、ネットワークを介してのより自由度の高い、しかもより効率のよいデータ授受を可能とするスマートカメラ、及び該スマートカメラを備えるロボットビジョンシステムを提供することにある。
【課題を解決するための手段】
【0009】
本発明のスマートカメラは、イメージセンサにより撮像される撮像データを逐次データ処理して各種視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラであって、前記撮像データが一時的に記憶保持される撮像データバッファと、前記撮
像データに対する画像処理の要求指令である画像処理指令に基づいて前記撮像データバッファに保持されている撮像データから前記結果データを生成するとともに、同撮像データを所要に処理した処理画像データを生成する画像処理手段と、前記処理画像データが一時的に記憶保持される処理画像データバッファと、前記撮像データバッファ及び前記処理画像データバッファの双方にアクセス可能に構成され、前記撮像データ及び前記処理画像データの選択指令である画像選択指令に基づいて前記撮像データ及び前記処理画像データの一方を選択的に出力する画像選択手段と、外部から入力される前記画像処理指令を前記画像処理手段に与えるとともに、その結果生成された結果データを外部に出力する第1コマンドインタフェースと、外部から入力される前記画像選択指令を前記画像選択手段に与えるとともに、この画像選択手段から選択的に出力される前記撮像データ及び前記処理画像データの一方をモニタ画像データとして外部に出力する第2コマンドインタフェースと、を備えることを要旨とする。
【0010】
スマートカメラとしてのこのような構成によれば、結果データは第1コマンドインタフェースから、また処理画像データもしくは撮像データは第2コマンドインタフェースからそれぞれ独立して出力されるようになる。このことにより、例えば第2コマンドインタフェースから処理画像データや撮像データといったモニタ画像データの出力中であれ、第1コマンドインタフェースからはロボット等の制御に用いられる結果データを遅延なくリアルタイムに出力することができるようになる。
【0011】
また、撮像データを撮像データバッファに、処理画像データを処理画像バッファにそれぞれ一時的に保持させておくとともに、それらバッファから直接、撮像データまたは処理画像データがモニタ画像データとして画像選択手段から選択出力されるようにする。すなわち、第2コマンドインタフェースからのモニタ画像データの出力には画像処理手段を介す必要がなくなるため、画像処理手段は画像処理指令等に対してリアルタイムに応答できるようにもなる。
【0012】
また本発明のスマートカメラは、上記スマートカメラにおいて、前記第1コマンドインタフェースから外部に出力される前記結果データと、前記第2コマンドインタフェースから外部に出力される前記モニタ画像データとは、バス型のネットワークからなる同一の通信経路に対して出力されることを要旨とする。
【0013】
このような構成によれば、第1及び第2コマンドインタフェースといった2つのインタフェースを必要とする場合であれ、1つの物理的なネットワークポートなどによりこれらインタフェースを実現することができるようになる。これにより、スマートカメラに要求される小型化も容易となり、例えばロボットに搭載されるような小型のスマートカメラの実現も容易になる。
【0014】
また本発明のスマートカメラは、上記スマートカメラにおいて、前記処理画像データバッファは、前記処理画像データを複数保持可能に構成されてなり、前記画像選択手段は、それら複数の処理画像データのうちから前記画像選択指令に適合する1つを選択して出力するものであることを要旨とする。
【0015】
このような構成によれば、第2コマンドインタフェースを通じて複数の処理画像データのうちの任意のデータを参照することができるようになる。すなわち、処理状況の検証なども容易として、スマートカメラとしての利用価値を更に高めることとができるようにもなる。
【0016】
また本発明のスマートカメラは、上記スマートカメラにおいて、前記画像処理手段によって生成された前記結果データが一時的に保持される結果データバッファを更に備え、前
記第1コマンドインタフェースは、前記結果データを前記結果データバッファから読み出してこれを外部に出力するものであることを要旨とする。
【0017】
このような構成によれば、画像処理手段が他の画像処理指令に基づく画像処理中であったとしても、それ以前の結果データを直ちに得ることが可能となり、スマートカメラとしての応答性を高めることができるようになる。
【0018】
本発明のロボットビジョンシステムは、ロボットと、該ロボットに設けられてワークに対する所定の処理を行う機能部と、前記ワークを含むロボットの周辺画像を撮像しつつその撮像データを逐次データ処理して前記ロボットの視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラと、前記ロボットの動作を制御する制御プログラムを有し、この制御プログラムと前記スマートカメラから出力される情報である結果データとに基づき前記機能部の位置決めを含めて前記ロボットの動作を制御するロボットコントローラとを備えるロボットビジョンシステムであって、前記スマートカメラが、上記記載のスマートカメラからなることを要旨とする。
【0019】
このような構成によれば、スマートカメラは、結果データを第1コマンドインタフェースから、また処理画像データもしくは撮像データを第2コマンドインタフェースからそれぞれ独立してロボットコントローラに出力するようになる。このことにより、例えば第2コマンドインタフェースから処理画像データや撮像データといったモニタ画像データの出力中であれ、第1コマンドインタフェースからはロボット等の制御に用いられる結果データをロボットコントローラに遅延なくリアルタイムに出力することができるようになる。
【0020】
また、スマートカメラは、撮像データを撮像データバッファに、処理画像データを処理画像バッファにそれぞれ一時的に保持させておくとともに、それらバッファから直接、撮像データまたは処理画像データがモニタ画像データとして画像選択手段から選択出力されるようにする。すなわち、第2コマンドインタフェースからのモニタ画像データの出力には画像処理手段を介する必要がなくなるため、画像処理手段はロボットコントローラからの画像処理指令等に対してリアルタイムに応答できるようにもなる。
【0021】
さらに、スマートカメラは、第1及び第2コマンドインタフェースといった2つのインタフェースを必要とする場合であれ、1つの物理的なネットワークポートなどによりこれらインタフェースを実現することができるようになる。これにより、スマートカメラに要求される小型化も容易となり、ロボットに小型のスマートカメラを搭載するようなロボットビジョンシステムの実現も容易になる。
【0022】
また、第2コマンドインタフェースを通じて複数の処理画像データのうちの任意のデータを参照することができるようになる。すなわち、処理状況の検証なども容易として、このスマートカメラを用いたロボットビジョンシステムとしての利用価値を更に高めることとができるようにもなる。
【0023】
さらにまた、スマートカメラが例えば上述した画像処理をしている場合であれ、ロボットコントローラからの結果データの要求にはリアルタイムに応答することができるようになる。このことから、スマートカメラによる画像データの出力の有無に影響を受けることのない制御精度の向上されたロボットビジョンシステムを提供することができる。
【0024】
また、スマートカメラからはいつでもモニタ画像データを取得することができるようにもなり、別途にモニタ専用装置等を設けなくとも、ロボットコントローラを通じてスマートカメラからのモニタ画像データをコンピュータ等のモニタ装置に表示させることができるようになる。すなわち、ロボットビジョンシステムとして不要なコストアップにつなが
る懸念もない。
【0025】
また、本発明のロボットビジョンシステムは、上記ロボットビジョンシステムにおいて、前記ロボットビジョンシステムには前記ロボットもしくは前記スマートカメラのプログラムを作成するための開発環境が接続され、前記開発環境には前記スマートカメラからのモニタ画像データを表示可能に構成されてなることを要旨とする。
【0026】
このような構成によれば、ロボットやスマートカメラのプログラム作成時には必然的にロボットビジョンシステムに接続される開発環境にてスマートカメラからのモニタ画像データを表示させることができ、開発環境を含めたより効率的な統合環境の構築も容易となる。
【発明を実施するための最良の形態】
【0027】
以下、本発明にかかるスマートカメラ及びロボットビジョンシステムを具体化した一実施形態を図面に従って説明する。
図1は、本実施形態にかかるロボットビジョンシステムについてその概要をブロック図として示したものである。
【0028】
図1に示すように、このロボットビジョンシステムは、ロボットシステム2と該ロボットシステム2に接続されるスマートカメラ12を中心に構成されている。そして、ロボットシステム2は、大きくはロボット10とロボットコントローラ11とを備える構成となっている。ここで、このロボットシステム2は、複数のアームがそれぞれ関節部にて連結された多関節型のロボット10を有するシステムであり、ロボット10自体は、それぞれの関節部において連結されたアーム同士を所定の相対角度に回動させてその先端の機能部Tを目標位置まで移動させることによりワークWの加工や搬送を行なう部分である。なお、ロボット10の関節部には、モータやエンコーダが設けられている。また、ロボット10(機能部T)を位置制御等するロボットコントローラ11には、ロボット10の周辺画像Imを撮影するとともに、その撮像された周辺画像Imのデータを処理してロボット10の位置制御等、視覚機能の実現に必要な情報を与えるスマートカメラ12が接続されている。さらに、ロボットコントローラ11には、ロボット10の動作を制御する制御プログラムの開発に必要な開発環境としての開発用コンピュータ13やロボット10に対する教示による制御プログラムの作成に際してティーチングの指示を入力するティーチングペンダント14等が必要に応じて接続可能になっている。
【0029】
図2は、上記ロボットコントローラ11のハードウェア的な構成を示したものである。この図2に示されるように、ロボットコントローラ11には、CPUボード20、ロボット制御ボード21、デジタル入出力ボード22及びシリアル通信ボード23がそれぞれ一つのISAバス24に接続される態様にて設けられている。
【0030】
ここで、CPUボード20は、図3に示すように、いわゆる小型コンピュータからなり、CPU30、ROM31、RAM32、SRAM33、ISAバスインタフェース34、イーサネット(登録商標)コントローラ35及びシリアル入出力(SIO)コントローラ36のそれぞれが一つのメインバス37に接続される態様にて設けられている。CPU30はいわゆる中央演算処理装置であって、CPU30がRAM32をデータメモリとして用いつつROM31やSRAM33に記憶されたOS(オペレーティングシステム)や各種アプリケーションプログラム等に基づいて所定の演算を行なうことにより、ロボット10に対する位置制御指令等の生成が行なわれる。なお、ROM31としては、保存されているOSや各種アプリケーションプログラム等を必要に応じて開発用コンピュータ13等から変更できるように、フラッシュROM等のような書き換え可能なROMを採用することが望ましい。SRAM33は、ロボットコントローラ11の電源が遮断された場合に
も図示しない電源からの電力の供給によりROM31よりも大量のデータ等を保存する事が可能なメモリであり、CPU30の処理に供される各種アプリケーションプログラムや各種データ等が保存されるとともにCPU30の演算結果も保存される。ISAバスインタフェース34は、メインバス37及びロボットコントローラ11のISAバス24の両方に接続されていて、CPUボード20とロボットコントローラ11のISAバス24に接続された他の各ボード21〜23との通信を可能にするインタフェースである。すなわち、CPUボード20にて算出された各ボード21〜23に伝達する必要のあるデータ、例えばロボット10に対する位置制御指令等は、ISAバス24を介して他の各ボード21〜23からも参照できるようになっている。イーサネット(登録商標)コントローラ35は、ロボットコントローラ11と他の機器とをバス型のネットワークとしてのイーサネット(登録商標)にて通信させるものであり、第1のポートP1に接続されたイーサネット(登録商標)ケーブルを介して他の機器との通信を可能とする。なお、本実施形態では、この第1のポートP1に、スマートカメラ12や開発用コンピュータ13が接続されることとなる。特にスマートカメラ12は常時接続されている。一方、開発用コンピュータ13は制御プログラムの作成時など必要に応じて接続される。なお、イーサネット(登録商標)による通信には、各機器に設定された固有のアドレスが必要であり、イーサネット(登録商標)コントローラ35やスマートカメラ12や開発用コンピュータ13にはそれぞれ別々の固有のアドレスが予め設定されている。SIOコントローラ36は、ロボットコントローラ11と他の機器とをシリアル通信させるものであり、第2のポートP2に接続された機器とのシリアル通信を可能とする。本実施形態では、この第2のポートP2には、ティーチングペンダント14が接続されるが、このティーチングペンダント14は、ロボット10に対するティーチング作業を行なうとき以外は接続されていないことが通常である。
【0031】
次に、ロボット制御ボード21は、いわゆる制御コントローラからなり、図4に示すように、DSP(デジタル信号処理装置)40、ROM41、RAM42、ISAバスインタフェース43、モータ制御回路部44、ポジションカウンタ45のそれぞれが一つのメインバス46に接続される態様にて設けられている。ロボット制御ボード21では、DSP40がRAM42をデータメモリとして用いつつROM41に記憶されているファームウェアや各種プログラム及びCPUボード20の算出した位置制御指令等に基づいた所定の演算を行ない、これによってロボット10を制御するための制御信号の生成が行なわれる。なお、ROM41としても、保存されたファームウェア等を必要に応じて開発用コンピュータ13等から変更できるように、フラッシュROM等のような書き換え可能なROMを採用することが望ましい。ISAバスインタフェース43は、メインバス46及びロボットコントローラ11のISAバス24の両方に接続されていて、ロボット制御ボード21をロボットコントローラ11のISAバス24に接続された他の各ボード20,22,23と通信可能にするインタフェースである。すなわち、ロボット制御ボード21は、CPUボード20にて算出された位置制御指令等を参照できるとともに、ロボット制御ボード21が算出した各種情報を他の各ボード20,22,23に参照させることができる。モータ制御回路部44には、同じくロボット制御ボード21に設けられているパワードライブ部47が接続されている。モータ制御回路部44では、DSP40にて生成された上記制御信号に基づいてロボット10に設けられたモータMに与えるべき電力を算出しつつパワードライブ部47を介してモータMに与えられる供給電力を制御する。また、モータMに設けられた図示しないセンサにて検出された電流量等の情報がモータ制御回路部44に入力されて、モータMに与えるべき電力の算出に対するフィードバックが行なわれている。ポジションカウンタ45は、ロボット10に設けられた関節部の回転角度を検出するエンコーダENに接続され、そのエンコーダENから入力される回転角度信号に基づいてロボット10の関節部の回転角度を検出する。そして、ロボット制御ボード21はその検出された回転角度を上記制御信号の生成にフィードバックさせるとともに、同ポジションカウンタ45により検出された回転角度はまた、ロボットコントローラ11のISAバ
ス24を介してCPUボード20に取り込まれて上記位置制御指令の生成に利用される。なお、ここでは便宜上、ロボット10が有するモータM及びエンコーダENはそれぞれ1つとして説明したが、ロボット10にはこれらモータM及びエンコーダENがそれぞれ複数備えられていることが一般的である。
【0032】
また、図1に示したロボットコントローラ11において、デジタル入出力ボード22は、CPUボード20から指示された情報に対応したデジタル信号を出力するとともに、入力したデジタル信号に基づいた情報をCPUボード20が取り込めるようにするボードである。さらに、シリアル通信ボード23は、CPUボード20から指示された情報に基づいたシリアル通信用のデータをポートから出力するとともに、ポートに入力されたシリアル通信用のデータに基づいた情報をCPUボード20が取り込めるようにするボードである。
【0033】
図5は、スマートカメラ12のハードウェア的な構成を示したものである。スマートカメラ12は、いわゆる小型コンピュータからなる制御部12Cを内蔵する構成となっており、CPU50、ROM51、RAM52、イーサネット(登録商標)コントローラ53、ビデオインタフェース54のそれぞれが一つのメインバス55に接続される態様で設けられている。CPU50はこれもいわゆる中央演算処理装置であって、CPU50がRAM52をデータメモリとして用いつつROM51に記憶されているOSや各種アプリケーションプログラムに基づいて所要の処理、例えば画像処理プロセスプログラムを実行することにより、画像データに対するデータ処理等が逐次行われる。なお、ROM51としては、これも保存されているOSや各種アプリケーションプログラム等を必要に応じて開発用コンピュータ13等から変更できるように、フラッシュROM等のような書き換え可能なROMを採用することが望ましい。また、本実施形態において、RAM52には、所定の画像データを一時記憶保存するための撮像データバッファDB1としての領域や、処理画像バッファDB2としての領域が確保されている。さらに、RAM52には、画像データのデータ処理により算出された情報に基づくデータを記憶するための結果データバッファDB3としての領域も確保されている。イーサネット(登録商標)コントローラ53は、スマートカメラ12と他の機器とをイーサネット(登録商標)により通信させるものであり、イーサネット(登録商標)ケーブルを介して他の機器との通信を可能とする。本実施形態では、このイーサネット(登録商標)コントローラ53には、ロボットコントローラ11が常時接続されている。なお、イーサネット(登録商標)における通信に用いられる固有のアドレスは上述のように、このイーサネット(登録商標)コントローラ53(スマートカメラ12)自身に予め設定されている。また、イーサネット(登録商標)コントローラ53には、第1コマンドインタフェースCIF1、及び第2コマンドインタフェースCIF2がそれぞれ設けられている。これら各コマンドインタフェースCIF1,CIF2は、それぞれイーサネット(登録商標)コントローラ53により仮想的に実現されるインタフェース部であり、それぞれへの通信はイーサネット(登録商標)コントローラ53が通信データに含まれる所定のIDを判別することにより行なわれるようになっている。すなわち、スマートカメラ12としてはイーサネット(登録商標)コントローラ53は1つであるものの、仮想的には上記2つのインタフェース部が設けられている。ビデオインタフェース54には、同じくスマートカメラ12に設けられているイメージセンサ56が接続されている。イメージセンサ56は、例えばCCDを撮像素子として用いたカメラであり、ロボット10の周辺画像Im、例えばロボット10が加工や把持するワークWの画像や、ロボット10の先端の機能部Tの画像を撮像してそのデータSimをビデオインタフェース54に出力する。そして、ビデオインタフェース54は、イメージセンサ56を通じて撮像されたデータSimをRAM52に転送する部分であり、CPU50では、こうしてRAM52に転送されたデータ、すなわち撮像データに対して上述した所要の処理を行なうこととなる。
【0034】
図6は、スマートカメラ12の主に制御部12Cにおいて上記撮像データに対して所要の処理を行なうための機能の概略を機能ブロック図として示したものである。なお、本実施形態では、制御部12Cには、画像処理手段としての画像処理プロセスDP及び画像選択手段としてのイメージセレクタSWが設けられている。これら画像処理プロセスDP及びイメージセレクタSWは、RAM52に保存された画像処理プロセスプログラムまたはイメージセレクタプログラムが制御部12CのCPU50にて実行されることにより実現される機能である。また、スマートカメラ12の各コマンドインタフェースCIF1,CIF2には、イーサネット(登録商標)を通じてロボットコントローラ11(図1)からの各種指令(「画像処理指令」、「結果データ取得指令」、「モニタ画像データ取得指令」等)が入力されるものとする。
【0035】
次に、この図6を参照して、スマートカメラ12の制御部12Cにおける画像処理の一例について説明する。なお、撮像データバッファDB1には、イメージセンサ56から入力されたデータSimに基づいて形成された撮像データDT1が適宜に更新されながら保存されているものとする。
【0036】
まず、スマートカメラ12の制御部12Cにおいて、ロボットコントローラ11(図1)からの上記撮像データDT1に対する画像処理の要求指令である「画像処理指令」が第1コマンドインタフェースCIF1を介して画像処理プロセスDPに入力される。そして、「画像処理指令」の入力された画像処理プロセスDPには撮像データバッファDB1に保存されている撮像データDT1が取り込まれる。撮像データDT1が取り込まれると、画像処理プロセスDPではその取り込まれた撮像データDT1に予め定められた所要のデータ処理、いわゆる画像処理が行なわれる。そして、この画像処理を通じて、処理済の画像データである処理画像データDT2と上記視覚機能の実現に必要とされる情報を含む結果データDT3とが生成される。ここで、処理画像データDT2は撮像データDT1を元に生成された画像データであり、例えば撮像データDT1として撮像された撮像対象物の輪郭情報や中心位置情報等が付加された画像データである。また、結果データDT3は、撮像データDT1として撮像された撮像対象物から取得される各種の情報を含むものである。具体的には、ワークW(図1)の位置や向きを示す座標情報、ワークWの形状を示す形状情報、ワークWの色合いや明暗を示す色彩情報、複数のワークW間における重なりや接触などの関係を示す配列情報、ロボット10先端の機能部T(図1)の向きや座標を示すロボット情報等などのロボット10の位置制御等に有益な数値データを含む情報である。そして、画像処理プロセスDPにおいて生成された処理画像データDT2は処理画像バッファDB2に保存され、結果データDT3は結果データバッファDB3に保存される。なお、処理画像バッファDB2には所定の複数の処理画像データDT2が保存可能であり、新たなデータが保存されるときには、既存のデータがメモリの後方位置にシフトされるとともに最後のデータは破棄されて、このシフト操作により空いた先頭の位置に新たなデータ、すなわち最新の処理画像データDT2が保存されるようになっている。
【0037】
その後、外部のロボットコントローラ11(図1)から「結果データ取得指令」が第1コマンドインタフェースCIF1を介して画像処理プロセスDPに入力されると、該画像処理プロセスDPでは、上記結果データバッファDB3に保存した結果データDT3を同結果データバッファDB3から第1コマンドインタフェースCIF1に出力させる。それにより、ロボットコントローラ11には、スマートカメラ12からの結果データDT3が入力され、該結果データDT3に基づいてロボット10の機能部T(図1)の位置決め制御などが実行されるようになる。
【0038】
一方、本実施形態では、ロボットコントローラ11(図1)には開発用コンピュータ13(図1)が接続されていて、そのモニタ装置にはスマートカメラ12からのモニタ画像データが表示されるようになっている。すなわち、開発用コンピュータ13(図1)から
スマートカメラ12に向けて発行された「モニタ画像データ取得指令」はロボットコントローラ11(図1)とスマートカメラ12の第2コマンドインタフェースCIF2を介してイメージセレクタSWに与えられる。この「モニタ画像データ取得指令」には、撮像データDT1と処理画像データDT2とのいずれを取得したいのかを示すモード情報が含まれていて、「実画像モード」の場合には撮像データDT1が、「処理画像モード」の場合には処理画像データDT2が、それぞれイメージセレクタSWによってモニタ画像データとして選択されるようになっている。さらに、「処理画像モード」の場合には、何番目の処理画像データを選択したいのかを示す情報の設定も可能となっているが、特に設定されなければ、イメージセレクタSWでは処理画像バッファDB2から最新の処理画像データDT2を選択してこれを出力する。
【0039】
このため、例えばイメージセレクタSWに与えられた「モニタ画像データ取得指令」が「実画像モード」であれば、イメージセレクタSWは撮像データバッファDB1に保存されている撮像データDT1を選択し、それをモニタ画像データとして第2コマンドインタフェースCIF2から出力する。そして、第2コマンドインタフェースCIF2から出力されたモニタ画像データは、ロボットコントローラ11(図1)を介して開発用コンピュータ13(図1)に転送され、そのモニタ装置に表示されるようになる。ちなみに、開発用コンピュータ13(図1)からスマートカメラ12に対し、このような「実画像モード」による「モニタ画像データ取得指令」の付与が逐次繰り返えされる場合、開発用コンピュータ13のモニタ装置には、スマートカメラ12を通じて撮像された撮像データDT1からなるモニタ画像データが動画のようなかたちで表示されるようになる。
【0040】
一方、「モニタ画像データ取得指令」が「処理画像モード」である場合には、イメージセレクタSWは処理画像バッファDB2に保存されている指定された順番の処理画像データDT2を選択しこれをモニタ画像データとして第2コマンドインタフェースCIF2から出力する。そして、第2コマンドインタフェースCIF2から出力されたモニタ画像データは、これも同様にロボットコントローラ11を介して開発用コンピュータ13に転送され、そのモニタ装置に表示されるようになる。
【0041】
以上説明したように、本実施形態のスマートカメラ及びロボットビジョンシステムによれば、以下に列記するような効果が得られるようになる。
(1)結果データDT3は第1コマンドインタフェースCIF1から、また処理画像データDT2もしくは撮像データDT1は第2コマンドインタフェースCIF2からそれぞれ独立して出力されるようにした。このことにより、例えば第2コマンドインタフェースCIF2から処理画像データDT2や撮像データDT1といったモニタ画像データの出力中であれ、第1コマンドインタフェースCIF1からはロボット10等の制御に用いられる結果データDT3を遅延なくリアルタイムに出力することができるようになる。
【0042】
(2)また、撮像データDT1を撮像データバッファDB1に、処理画像データDT2を処理画像バッファDB2にそれぞれ一時的に保持させておくとともに、それらバッファDB1,DB2から直接、撮像データDT1または処理画像データDT2がモニタ画像データとしてイメージセレクタSWから選択出力されるようにする。すなわち、第2コマンドインタフェースCIF2からのモニタ画像データの出力には画像処理プロセスDPを介する必要がなくなるため、画像処理プロセスDPは「画像処理指令」等に対してリアルタイムに応答できるようにもなる。
【0043】
(3)第1及び第2コマンドインタフェースCIF1,CIF2といった2つのインタフェースを必要とする構成を、1つの物理的なイーサネット(登録商標)コントローラ53により実現した。これにより、スマートカメラ12に要求される小型化も容易となり、ロボット10に搭載されるような小型のスマートカメラ12の実現も容易になる。
【0044】
(4)処理画像バッファDB2に複数の処理画像データDT2を保存しておくことにより、第2コマンドインタフェースCIF2を通じて複数の処理画像データDT2のうちの任意のデータを参照することができるようになる。すなわち、処理状況の検証なども容易として、スマートカメラ12としての利用価値を更に高めることとができるようにもなる。
【0045】
(5)結果データバッファDB3に先に生成された結果データDT3を保存しておくことにより、画像処理プロセスDPが他の「画像処理指令」に基づく画像処理中であったとしても、それ以前の結果データDT3を直ちに得ることが可能となり、スマートカメラ12としての応答性を高めることができるようになる。
【0046】
(6)イーサネット(登録商標)コントローラ53の第2コマンドインタフェースCIF2から撮像データDT1もしくは処理画像データDT2をモニタ画像データとして出力するようにした。これにより、スマートカメラ12からはいつでもモニタ画像データを取得することができるようにもなり、別途にモニタ専用装置等を設けなくとも、ロボットコントローラ11を通じてスマートカメラ12からのモニタ画像データを開発用コンピュータ13のモニタ装置に表示させることができるようになる。すなわち、ロボットビジョンシステムとして不要なコストアップにつながる懸念もない。
【0047】
(7)ロボット10やスマートカメラ12のプログラム作成時には必然的にロボットビジョンシステムに接続される開発用コンピュータ13にてスマートカメラ12からのモニタ画像データを表示させることができ、開発用コンピュータ13を含めたより効率的な統合環境の構築も容易となる。
【0048】
なお、上記実施形態は、例えば以下のような態様にて実施することもできる。
・上記実施形態では、データ転送機構としてイーサネット(登録商標)を用いたが、データ転送機構はイーサネット(登録商標)には限られず、その他の通信手段、例えば、シリアル通信やUSB、IEEE1394などのデータ転送機構を採用するようにしてもよい。
【0049】
・上記実施形態では、イメージセンサ56の撮影素子としてCCDを採用したが、こうしたイメージセンサとしては、撮像した画像をビデオインタフェースに入力できるものであればどのようなものであってもよい。
【0050】
・上記実施形態では、スマートカメラ12としてイメージセンサ56を一体に備えるものを採用したが、こうしたスマートカメラとしては、CPU等を備えた筐体部とイメージセンサを備えたカメラ部とが分離されたものを専用のケーブルにて接続するなど、これら筐体部とカメラ部とが離間されたものを採用するようにしてもよい。そのようにすれば、比較的小さいカメラ部にあってはその配設の自由度が高められ、例えばロボットの先端部にカメラ部を配設するような構成も容易となる。
【0051】
・上記実施形態では、スマートカメラ12の画像処理による処理情報に基づいてロボットコントローラ11がロボット10の機能部Tの位置決め制御を行うことを想定した。しかし、上記ロボットビジョンシステムとしての用途はこれに限らない。すなわち、スマートカメラ12の画像データ処理によりワークの位置や向き、ワークの形状、ワークの色合いや明暗、複数のワーク間における重なりや接触などの関係、ロボット10先端の機能部Tの向きや座標等の処理情報が算出される場合には、ロボットコントローラ11にこれら処理情報に基づく各種の制御を行なわせることができる。例えば、ワークの形状や色合いの情報からは、当該ワークが目的の部品であるか否かの判定を行い、その結果を機能部の
位置決め制御に反映させるようにすることができる。また、ワークの重なり情報からは、機能部をワークへアプローチさせる特殊な軌道の算出や、機能部に複数のワークを分離させる作業などを行なわせるようにすることができる。また、ロボット10に各種の制御を行う場合においても、多様な情報に基づいた制御が行えることから、より自由度の高い制御を行うこともできる。
【0052】
・その他、スマートカメラ12が処理の対象とする画像の内容も上述の内容に限られることなく任意である。例えばワークの搬送装置、ワークの加工装置、他のロボットや周辺機器等に関する画像等に基づいてそれぞれ必要とされる処理を行ない、それらの物の向きや座標、形状等の情報を算出するようにしてもよい。これらの情報を制御に用いることで、ロボットコントローラ11は、ロボット10の機能部Tに周囲にある物との干渉や接触を防ぐなどの制御を行うことができるようにもなる。すなわち、ロボットビジョンシステムを構成するロボットの動作を周辺環境、すなわち他の生産設備等に対してより調和したものとすることもできる。
【0053】
・上記実施形態では、開発用コンピュータ13のモニタ装置にスマートカメラ12からのモニタ画像データを表示させるようにした。しかしこれに限らず、モニタ画像データをそのほかのコンピュータのモニタ装置やモニタ専用装置に表示させてもよい。
【0054】
・上記実施形態では、結果データDT3を保持する結果データバッファDB3を備えたが、画像処理プロセスが画像処理に基づいて生成した結果データをコマンドインタフェースに直接出力するようにすることで結果データバッファDB3を用いない構成とすることもできる。
【0055】
・上記実施形態では、処理画像バッファDB2には複数の処理画像データDT2を保持するようにしたが、処理画像バッファDB2には最新の処理画像データDT2のみを保存されるようにしてもよい。そうすれば、必要とするメモリ量も少なくなり、上記スマートカメラの実現もより容易となる。
【0056】
・上記実施形態では、1つのイーサネット(登録商標)コントローラ35に、2つの仮想的な第1コマンドインタフェースCIF1と、仮想的な第2コマンドインタフェースCIF2を設けた。しかしこれに限らず、2つのイーサネット(登録商標)コントローラを用いて、それぞれに1つのコマンドインタフェースを設けてもよい。すなわち、スマートカメラの画像処理プロセスとイメージセレクタとのそれぞれにリアルタイムに各種指令を独立して伝達できる構成であればよい。
【0057】
・上記実施形態では、画像処理プロセスDPが「画像処理指令」の付与により撮像データDT1に画像処理を施して結果データDT3を生成し、それを結果データバッファDB3に保存した。また、その後の「結果データ取得指令」の付与により結果データバッファDB3に保存されている先に生成された結果データDT3を第1コマンドインタフェースCIF1に出力させた。しかしこれに限らず、「画像処理指令」の付与により画像処理プロセスが撮像データDT1に画像処理を施して、その結果生成された結果データDT3を第1コマンドインタフェースCIF1から出力するようにしてもよい。そのようにすれば、一つの指令で結果データDT3が取得できるようになるとともに、最新の撮像データDT1に施された画像処理に基づいて生成される結果データDT3が出力されるようになる。
【図面の簡単な説明】
【0058】
【図1】本発明にかかるロボットビジョンシステムの一実施形態についてその概略構成を示すブロック図。
【図2】同実施形態のロボットコントローラの構成を示すブロック図。
【図3】同実施形態のCPUボードの構成を示すブロック図。
【図4】同実施形態のロボット制御ボードの構成を示すブロック図。
【図5】同実施形態のスマートカメラの構成を示すブロック図。
【図6】同実施形態のスマートカメラの機能を示す機能ブロック図。
【図7】従来のスマートカメラの機能を示す機能ブロック図。
【符号の説明】
【0059】
2…ロボットシステム、10…ロボット、11…ロボットコントローラ、12…スマートカメラ、12C…制御部、13…開発用コンピュータ、14…ティーチングペンダント、20…CPUボード、21…ロボット制御ボード、22…デジタル入出力ボード、23…シリアル通信ボード、24…ISAバス、30,50…CPU、31,41,51…ROM、32,42,52…RAM、33…SRAM、34,43…ISAバスインタフェース、35,53…イーサネット(登録商標)コントローラ、36…シリアル入出力コントローラ、37,46,55…メインバス、40…DSP、44…モータ制御回路部、45…ポジションカウンタ、47…パワードライブ部、54…ビデオインタフェース、56…イメージセンサ、CIF1…第1コマンドインタフェース、CIF2…第2コマンドインタフェース、DB1…撮像データバッファ、DB2…処理画像バッファ、DB3…結果データバッファ、DT1…撮像データ、DT2…処理画像データ、DT3…結果データ、M…モータ、T…機能部、W…ワーク、EN…エンコーダ、P1…第1のポート、P2…第2のポート。

【特許請求の範囲】
【請求項1】
イメージセンサにより撮像される撮像データを逐次データ処理して各種視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラであって、
前記撮像データが一時的に記憶保持される撮像データバッファと、
前記撮像データに対する画像処理の要求指令である画像処理指令に基づいて前記撮像データバッファに保持されている撮像データから前記結果データを生成するとともに、同撮像データを所要に処理した処理画像データを生成する画像処理手段と、
前記処理画像データが一時的に記憶保持される処理画像データバッファと、
前記撮像データバッファ及び前記処理画像データバッファの双方にアクセス可能に構成され、前記撮像データ及び前記処理画像データの選択指令である画像選択指令に基づいて前記撮像データ及び前記処理画像データの一方を選択的に出力する画像選択手段と、
外部から入力される前記画像処理指令を前記画像処理手段に与えるとともに、その結果生成された結果データを外部に出力する第1コマンドインタフェースと、
外部から入力される前記画像選択指令を前記画像選択手段に与えるとともに、この画像選択手段から選択的に出力される前記撮像データ及び前記処理画像データの一方をモニタ画像データとして外部に出力する第2コマンドインタフェースと、
を備えることを特徴とするスマートカメラ。
【請求項2】
前記第1コマンドインタフェースから外部に出力される前記結果データと、前記第2コマンドインタフェースから外部に出力される前記モニタ画像データとは、バス型のネットワークからなる同一の通信経路に対して出力される
請求項1に記載のスマートカメラ。
【請求項3】
前記処理画像データバッファは、前記処理画像データを複数保持可能に構成されてなり、
前記画像選択手段は、それら複数の処理画像データのうちから前記画像選択指令に適合する1つを選択して出力するものである
請求項1または2に記載のスマートカメラ。
【請求項4】
請求項1〜3のいずれか一項に記載のスマートカメラにおいて、
前記画像処理手段によって生成された前記結果データが一時的に保持される結果データバッファを更に備え、
前記第1コマンドインタフェースは、前記結果データを前記結果データバッファから読み出してこれを外部に出力するものである
ことを特徴とするスマートカメラ。
【請求項5】
ロボットと、
該ロボットに設けられてワークに対する所定の処理を行う機能部と、
前記ワークを含むロボットの周辺画像を撮像しつつその撮像データを逐次データ処理して前記ロボットの視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラと、
前記ロボットの動作を制御する制御プログラムを有し、この制御プログラムと前記スマートカメラから出力される情報である結果データとに基づき前記機能部の位置決めを含めて前記ロボットの動作を制御するロボットコントローラとを備えるロボットビジョンシステムであって、
前記スマートカメラが、請求項1〜4のいずれか一項に記載のスマートカメラからなる
ことを特徴とするロボットビジョンシステム。
【請求項6】
前記ロボットビジョンシステムには前記ロボットもしくは前記スマートカメラのプログ
ラムを作成するための開発環境が接続され、
前記開発環境には前記スマートカメラからのモニタ画像データを表示可能に構成されてなる
請求項5に記載のロボットビジョンシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−218933(P2009−218933A)
【公開日】平成21年9月24日(2009.9.24)
【国際特許分類】
【出願番号】特願2008−61451(P2008−61451)
【出願日】平成20年3月11日(2008.3.11)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】