(57)【要約】【課題】ロボットの各種制御等に際し、ネットワークを介してのより自由度の高い、しかもより効率のよいデータ授受を可能とするスマートカメラ、及び該スマートカメラを備えるロボットビジョンシステムを提供する。【解決手段】スマートカメラは、第１コマンドインタフェースＣＩＦ１（以下、ＣＩＦ１）と第２コマンドインタフェースＣＩＦ２（以下、ＣＩＦ２）とを有する。画像処理プロセスＤＰはＣＩＦ１から入力される指令に基づいて撮像データＤＴ１を画像処理し、ロボットの制御に有益な情報からなる結果データＤＴ３を生成してこれを結果データバッファＤＢ３に保存し、またＣＩＦ１に出力可能にする。一方、イメージセレクタＳＷはＣＩＦ２から入力される指令に基づいて撮像データＤＴ１または処理画像データＤＴ２のいずれかをモニタ画像データとして選択してこれをＣＩＦ２から出力する。【選択図】図６
2009218933.tif 000002
【特許請求の範囲】
【請求項１】
イメージセンサにより撮像される撮像データを逐次データ処理して各種視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラであって、
前記撮像データが一時的に記憶保持される撮像データバッファと、
前記撮像データに対する画像処理の要求指令である画像処理指令に基づいて前記撮像データバッファに保持されている撮像データから前記結果データを生成するとともに、同撮像データを所要に処理した処理画像データを生成する画像処理手段と、
前記処理画像データが一時的に記憶保持される処理画像データバッファと、
前記撮像データバッファ及び前記処理画像データバッファの双方にアクセス可能に構成され、前記撮像データ及び前記処理画像データの選択指令である画像選択指令に基づいて前記撮像データ及び前記処理画像データの一方を選択的に出力する画像選択手段と、
外部から入力される前記画像処理指令を前記画像処理手段に与えるとともに、その結果生成された結果データを外部に出力する第１コマンドインタフェースと、
外部から入力される前記画像選択指令を前記画像選択手段に与えるとともに、この画像選択手段から選択的に出力される前記撮像データ及び前記処理画像データの一方をモニタ画像データとして外部に出力する第２コマンドインタフェースと、
を備えることを特徴とするスマートカメラ。
【請求項２】
前記第１コマンドインタフェースから外部に出力される前記結果データと、前記第２コマンドインタフェースから外部に出力される前記モニタ画像データとは、バス型のネットワークからなる同一の通信経路に対して出力される
請求項１に記載のスマートカメラ。
【請求項３】
前記処理画像データバッファは、前記処理画像データを複数保持可能に構成されてなり、
前記画像選択手段は、それら複数の処理画像データのうちから前記画像選択指令に適合する１つを選択して出力するものである
請求項１または２に記載のスマートカメラ。
【請求項４】
請求項１〜３のいずれか一項に記載のスマートカメラにおいて、
前記画像処理手段によって生成された前記結果データが一時的に保持される結果データバッファを更に備え、
前記第１コマンドインタフェースは、前記結果データを前記結果データバッファから読み出してこれを外部に出力するものである
ことを特徴とするスマートカメラ。
【請求項５】
ロボットと、
該ロボットに設けられてワークに対する所定の処理を行う機能部と、
前記ワークを含むロボットの周辺画像を撮像しつつその撮像データを逐次データ処理して前記ロボットの視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラと、
前記ロボットの動作を制御する制御プログラムを有し、この制御プログラムと前記スマートカメラから出力される情報である結果データとに基づき前記機能部の位置決めを含めて前記ロボットの動作を制御するロボットコントローラとを備えるロボットビジョンシステムであって、
前記スマートカメラが、請求項１〜４のいずれか一項に記載のスマートカメラからなる
ことを特徴とするロボットビジョンシステム。
【請求項６】
前記ロボットビジョンシステムには前記ロボットもしくは前記スマートカメラのプログ
ラムを作成するための開発環境が接続され、
前記開発環境には前記スマートカメラからのモニタ画像データを表示可能に構成されてなる
請求項５に記載のロボットビジョンシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像した画像から情報を抽出するスマートカメラ、及びそのスマートカメラによる視覚機能を備えたロボットビジョンシステムに関する。
【背景技術】
【０００２】
一般に産業用ロボットは、その先端の機能部を所定の目標位置に順次移動させることで、その機能部にて被搬送物を把持して搬送することや被加工物に種々の作業を行なうことを可能にしている。そして、こうしたロボットの機能部の移動は、予めティーチングなどでその機能部が目標位置を順次移動するように作成された制御プログラムに基づいて行なわれることが多い。例えば、複数のアームが回動可能に順に連結されたロボットでは、制御プログラムによって各アームの連結部の回転角度が逐次指定された回転角度に制御されることによりその機能部が所定の位置に位置決めされる。
【０００３】
ところで、このように予め定められた制御プログラムに基づいて制御されるロボットの機能部に所定の作業を行なわせるためには、ロボットと被加工物や被搬送物との相対的な位置関係が制御プログラムを作成したときの位置関係と同様でなければならない。詳述すると、例えば部品を基板に配置させるような場合、ロボットは所定の位置及び向きで供給された部品をその機能部の所定の位置に所定の向きで把持するとともに、その機能部を所定の向きで所定の位置に移動させることによって、本来所定の位置及び向きに配置されているはずの基板に対する部品の配置を行なうこととなる。そのため逆に、部品の供給位置や供給向き、あるいは部品とロボットとの相対位置、さらには基板の配置位置や向き等のいずれか一つでもそれらの関係にずれが生じるだけで、基板に対する部品の配置精度が確保できなくなる。
【０００４】
そこで従来は、部品等の位置や向きに多少のずれがあってもロボット等が搬送する部品を基板に対して正確に配置させるために、例えば特許文献１に記載のようなシステム、すなわち画像処理をカメラと一体となった処理部にて行なうスマートカメラを用いたシステムも提案されている。このシステムは基本的に、イメージセンサとそのイメージセンサの撮像した周辺画像をデータ処理する処理部としての制御モジュールとを有するスマートカメラと、駆動装置（ロボット等）を駆動制御する制御モジュールを有する駆動制御装置と、これらスマートカメラ及び駆動制御装置間での通信に供されるネットワークとによって構成されている。すなわち、スマートカメラは、その制御モジュールにてイメージセンサを通じて撮像された部品及び基板の画像データを画像処理して基板に対する部品の相対位置のずれ量等の駆動装置の制御に必要な情報を生成するとともに、その生成した情報を駆動制御装置に伝達する。また、駆動制御装置は、ネットワークを介してスマートカメラから伝達された情報に基づいて位置補正などを行い、この補正した位置に部品を搬送するなどの動作を行なう。これにより、部品の搬送位置などもリアルタイムに補正され、駆動装置による部品の位置決め精度も自ずと向上されるようになる。
【特許文献１】米国特許第６９８５７８０号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記特許文献１に記載のシステムも含め、スマートカメラは通常、図７に示すような機能ブロックを有して、コマンドインタフェースＣＩＦａから入力される各種指令に応答して画像処理やネットワークを介したデータ転送をはじめとする各種処理を実行する。すなわち、こうしたスマートカメラでは、ネットワークに接続されたコマンドインタフェースＣＩＦａを介して入力される「画像処理指令」や「結果データ取得指令」、「
モニタ画像取得指令」等の各種指令に対応する所要の処理が画像処理プロセスＤＰａを通じて総括的に実行される。例えば、「画像処理指令」の入力された画像処理プロセスＤＰａは、撮像データバッファＤＢ１ａから撮像データＤＴ１ａが転送された処理画像バッファＤＢ２ａ中の処理画像データＤＴ２ａを取得して所要の画像処理を行なう。こうした画像処理としては例えば次のような処理がある。すなわち、処理画像データＤＴ２ａを取得した画像処理プロセスＤＰａは、先の撮像データＤＴ１ａを元にしてその撮像対象物の輪郭を抽出するなどした後、これを再び処理画像データＤＴ２ａとして処理画像バッファＤＢ２ａに保存する。そして、この保存した処理画像データＤＴ２ａを基準輪郭データと比較するなどしてその適否を示す情報等から生成される結果データＤＴ３ａを求め、これを結果データバッファＤＢ３ａに保存する。その後、上記コマンドインタフェースＣＩＦａを介して例えば「結果データ取得指令」がこの画像処理プロセスＤＰａに入力されると、該画像処理プロセスＤＰａは、結果データバッファＤＢ３ａから上記求めた結果データＤＴ３ａをコマンドインタフェースＣＩＦａを介して出力させる。
【０００６】
また一方、このような視覚機能を有するロボットビジョンシステムにあっては、制御プログラムの作成や保守のための開発環境としてのコンピュータのモニタ装置等に、カメラが撮像したそのままの撮像データＤＴ１ａを表示させることもある。そのようなときには、コマンドインタフェースＣＩＦａを介して画像処理プロセスＤＰａには「モニタ画像取得指令」が入力される。そしてこの場合、コマンドインタフェースＣＩＦａでは、撮像データＤＴ１ａから撮像データＤＴ１ａが転送された処理画像データＤＴ２ａ中の処理画像データＤＴ２ａを取り込み、これをコマンドインタフェースＣＩＦａを介して出力する。ただしこの場合には、画像データのデータ量が他種のデータと比較して膨大であることから、ネットワークを通じた画像データの転送にも比較的多くの時間を要する。すなわち、画像処理プロセスＤＰａによる「モニタ画像取得指令」に対する処理には通常、多くの時間を要することとなる。しかも、こうした画像処理プロセスＤＰａ自体が通常、１つの指令に基づく処理を終了してから次の指令に基づく処理を実行するようになっていることから、時間を要する処理が実行されている場合には、その次の指令に対する処理も自ずと遅延するようになる。例えば、画像処理プロセスＤＰａが「モニタ画像取得指令」に基づいて画像データを転送する処理を実行している最中に「結果データ取得指令」が入力されたような場合、この「結果データ取得指令」に対する応答は、先に実行中の「モニタ画像取得指令」に対する処理が終了するまで得られない。このため、特に「結果データ取得指令」に対する処理により取得される結果データＤＴ３ａに基づいてフィードバック制御等される駆動装置にあっては、その位置決め等にかかる精度の低下なども招きかねないこととなる。
【０００７】
なお、モニタ画像を表示させる方法としては、モニタ画像をスマートカメラと専用ケーブルで接続されたモニタ専用装置に表示させることも考えられるが、小型化が要求されるスマートカメラに専用ケーブルを接続するための接続端子等を設けること自体が容易ではない。また、モニタ専用装置を設けるにせよ、そのための設置スペースの確保も含めてコストアップが避けられない。
【０００８】
本発明は、こうした実情に鑑みてなされたものであって、その目的は、ロボットの各種制御等に際し、ネットワークを介してのより自由度の高い、しかもより効率のよいデータ授受を可能とするスマートカメラ、及び該スマートカメラを備えるロボットビジョンシステムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のスマートカメラは、イメージセンサにより撮像される撮像データを逐次データ処理して各種視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラであって、前記撮像データが一時的に記憶保持される撮像データバッファと、前記撮
像データに対する画像処理の要求指令である画像処理指令に基づいて前記撮像データバッファに保持されている撮像データから前記結果データを生成するとともに、同撮像データを所要に処理した処理画像データを生成する画像処理手段と、前記処理画像データが一時的に記憶保持される処理画像データバッファと、前記撮像データバッファ及び前記処理画像データバッファの双方にアクセス可能に構成され、前記撮像データ及び前記処理画像データの選択指令である画像選択指令に基づいて前記撮像データ及び前記処理画像データの一方を選択的に出力する画像選択手段と、外部から入力される前記画像処理指令を前記画像処理手段に与えるとともに、その結果生成された結果データを外部に出力する第１コマンドインタフェースと、外部から入力される前記画像選択指令を前記画像選択手段に与えるとともに、この画像選択手段から選択的に出力される前記撮像データ及び前記処理画像データの一方をモニタ画像データとして外部に出力する第２コマンドインタフェースと、を備えることを要旨とする。
【００１０】
スマートカメラとしてのこのような構成によれば、結果データは第１コマンドインタフェースから、また処理画像データもしくは撮像データは第２コマンドインタフェースからそれぞれ独立して出力されるようになる。このことにより、例えば第２コマンドインタフェースから処理画像データや撮像データといったモニタ画像データの出力中であれ、第１コマンドインタフェースからはロボット等の制御に用いられる結果データを遅延なくリアルタイムに出力することができるようになる。
【００１１】
また、撮像データを撮像データバッファに、処理画像データを処理画像バッファにそれぞれ一時的に保持させておくとともに、それらバッファから直接、撮像データまたは処理画像データがモニタ画像データとして画像選択手段から選択出力されるようにする。すなわち、第２コマンドインタフェースからのモニタ画像データの出力には画像処理手段を介す必要がなくなるため、画像処理手段は画像処理指令等に対してリアルタイムに応答できるようにもなる。
【００１２】
また本発明のスマートカメラは、上記スマートカメラにおいて、前記第１コマンドインタフェースから外部に出力される前記結果データと、前記第２コマンドインタフェースから外部に出力される前記モニタ画像データとは、バス型のネットワークからなる同一の通信経路に対して出力されることを要旨とする。
【００１３】
このような構成によれば、第１及び第２コマンドインタフェースといった２つのインタフェースを必要とする場合であれ、１つの物理的なネットワークポートなどによりこれらインタフェースを実現することができるようになる。これにより、スマートカメラに要求される小型化も容易となり、例えばロボットに搭載されるような小型のスマートカメラの実現も容易になる。
【００１４】
また本発明のスマートカメラは、上記スマートカメラにおいて、前記処理画像データバッファは、前記処理画像データを複数保持可能に構成されてなり、前記画像選択手段は、それら複数の処理画像データのうちから前記画像選択指令に適合する１つを選択して出力するものであることを要旨とする。
【００１５】
このような構成によれば、第２コマンドインタフェースを通じて複数の処理画像データのうちの任意のデータを参照することができるようになる。すなわち、処理状況の検証なども容易として、スマートカメラとしての利用価値を更に高めることとができるようにもなる。
【００１６】
また本発明のスマートカメラは、上記スマートカメラにおいて、前記画像処理手段によって生成された前記結果データが一時的に保持される結果データバッファを更に備え、前
記第１コマンドインタフェースは、前記結果データを前記結果データバッファから読み出してこれを外部に出力するものであることを要旨とする。
【００１７】
このような構成によれば、画像処理手段が他の画像処理指令に基づく画像処理中であったとしても、それ以前の結果データを直ちに得ることが可能となり、スマートカメラとしての応答性を高めることができるようになる。
【００１８】
本発明のロボットビジョンシステムは、ロボットと、該ロボットに設けられてワークに対する所定の処理を行う機能部と、前記ワークを含むロボットの周辺画像を撮像しつつその撮像データを逐次データ処理して前記ロボットの視覚機能の実現に必要とされる情報を含む結果データを出力するスマートカメラと、前記ロボットの動作を制御する制御プログラムを有し、この制御プログラムと前記スマートカメラから出力される情報である結果データとに基づき前記機能部の位置決めを含めて前記ロボットの動作を制御するロボットコントローラとを備えるロボットビジョンシステムであって、前記スマートカメラが、上記記載のスマートカメラからなることを要旨とする。
【００１９】
このような構成によれば、スマートカメラは、結果データを第１コマンドインタフェースから、また処理画像データもしくは撮像データを第２コマンドインタフェースからそれぞれ独立してロボットコントローラに出力するようになる。このことにより、例えば第２コマンドインタフェースから処理画像データや撮像データといったモニタ画像データの出力中であれ、第１コマンドインタフェースからはロボット等の制御に用いられる結果データをロボットコントローラに遅延なくリアルタイムに出力することができるようになる。
【００２０】
また、スマートカメラは、撮像データを撮像データバッファに、処理画像データを処理画像バッファにそれぞれ一時的に保持させておくとともに、それらバッファから直接、撮像データまたは処理画像データがモニタ画像データとして画像選択手段から選択出力されるようにする。すなわち、第２コマンドインタフェースからのモニタ画像データの出力には画像処理手段を介する必要がなくなるため、画像処理手段はロボットコントローラからの画像処理指令等に対してリアルタイムに応答できるようにもなる。
【００２１】
さらに、スマートカメラは、第１及び第２コマンドインタフェースといった２つのインタフェースを必要とする場合であれ、１つの物理的なネットワークポートなどによりこれらインタフェースを実現することができるようになる。これにより、スマートカメラに要求される小型化も容易となり、ロボットに小型のスマートカメラを搭載するようなロボットビジョンシステムの実現も容易になる。
【００２２】
また、第２コマンドインタフェースを通じて複数の処理画像データのうちの任意のデータを参照することができるようになる。すなわち、処理状況の検証なども容易として、このスマートカメラを用いたロボットビジョンシステムとしての利用価値を更に高めることとができるようにもなる。
【００２３】
さらにまた、スマートカメラが例えば上述した画像処理をしている場合であれ、ロボットコントローラからの結果データの要求にはリアルタイムに応答することができるようになる。このことから、スマートカメラによる画像データの出力の有無に影響を受けることのない制御精度の向上されたロボットビジョンシステムを提供することができる。
【００２４】
また、スマートカメラからはいつでもモニタ画像データを取得することができるようにもなり、別途にモニタ専用装置等を設けなくとも、ロボットコントローラを通じてスマートカメラからのモニタ画像データをコンピュータ等のモニタ装置に表示させることができるようになる。すなわち、ロボットビジョンシステムとして不要なコストアップにつなが
る懸念もない。
【００２５】
また、本発明のロボットビジョンシステムは、上記ロボットビジョンシステムにおいて、前記ロボットビジョンシステムには前記ロボットもしくは前記スマートカメラのプログラムを作成するための開発環境が接続され、前記開発環境には前記スマートカメラからのモニタ画像データを表示可能に構成されてなることを要旨とする。
【００２６】
このような構成によれば、ロボットやスマートカメラのプログラム作成時には必然的にロボットビジョンシステムに接続される開発環境にてスマートカメラからのモニタ画像データを表示させることができ、開発環境を含めたより効率的な統合環境の構築も容易となる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明にかかるスマートカメラ及びロボットビジョンシステムを具体化した一実施形態を図面に従って説明する。
図１は、本実施形態にかかるロボットビジョンシステムについてその概要をブロック図として示したものである。
【００２８】
図１に示すように、このロボットビジョンシステムは、ロボットシステム２と該ロボットシステム２に接続されるスマートカメラ１２を中心に構成されている。そして、ロボットシステム２は、大きくはロボット１０とロボットコントローラ１１とを備える構成となっている。ここで、このロボットシステム２は、複数のアームがそれぞれ関節部にて連結された多関節型のロボット１０を有するシステムであり、ロボット１０自体は、それぞれの関節部において連結されたアーム同士を所定の相対角度に回動させてその先端の機能部Ｔを目標位置まで移動させることによりワークＷの加工や搬送を行なう部分である。なお、ロボット１０の関節部には、モータやエンコーダが設けられている。また、ロボット１０（機能部Ｔ）を位置制御等するロボットコントローラ１１には、ロボット１０の周辺画像Ｉｍを撮影するとともに、その撮像された周辺画像Ｉｍのデータを処理してロボット１０の位置制御等、視覚機能の実現に必要な情報を与えるスマートカメラ１２が接続されている。さらに、ロボットコントローラ１１には、ロボット１０の動作を制御する制御プログラムの開発に必要な開発環境としての開発用コンピュータ１３やロボット１０に対する教示による制御プログラムの作成に際してティーチングの指示を入力するティーチングペンダント１４等が必要に応じて接続可能になっている。
【００２９】
図２は、上記ロボットコントローラ１１のハードウェア的な構成を示したものである。この図２に示されるように、ロボットコントローラ１１には、ＣＰＵボード２０、ロボット制御ボード２１、デジタル入出力ボード２２及びシリアル通信ボード２３がそれぞれ一つのＩＳＡバス２４に接続される態様にて設けられている。
【００３０】
ここで、ＣＰＵボード２０は、図３に示すように、いわゆる小型コンピュータからなり、ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、ＳＲＡＭ３３、ＩＳＡバスインタフェース３４、イーサネット（登録商標）コントローラ３５及びシリアル入出力（ＳＩＯ）コントローラ３６のそれぞれが一つのメインバス３７に接続される態様にて設けられている。ＣＰＵ３０はいわゆる中央演算処理装置であって、ＣＰＵ３０がＲＡＭ３２をデータメモリとして用いつつＲＯＭ３１やＳＲＡＭ３３に記憶されたＯＳ（オペレーティングシステム）や各種アプリケーションプログラム等に基づいて所定の演算を行なうことにより、ロボット１０に対する位置制御指令等の生成が行なわれる。なお、ＲＯＭ３１としては、保存されているＯＳや各種アプリケーションプログラム等を必要に応じて開発用コンピュータ１３等から変更できるように、フラッシュＲＯＭ等のような書き換え可能なＲＯＭを採用することが望ましい。ＳＲＡＭ３３は、ロボットコントローラ１１の電源が遮断された場合に
も図示しない電源からの電力の供給によりＲＯＭ３１よりも大量のデータ等を保存する事が可能なメモリであり、ＣＰＵ３０の処理に供される各種アプリケーションプログラムや各種データ等が保存されるとともにＣＰＵ３０の演算結果も保存される。ＩＳＡバスインタフェース３４は、メインバス３７及びロボットコントローラ１１のＩＳＡバス２４の両方に接続されていて、ＣＰＵボード２０とロボットコントローラ１１のＩＳＡバス２４に接続された他の各ボード２１〜２３との通信を可能にするインタフェースである。すなわち、ＣＰＵボード２０にて算出された各ボード２１〜２３に伝達する必要のあるデータ、例えばロボット１０に対する位置制御指令等は、ＩＳＡバス２４を介して他の各ボード２１〜２３からも参照できるようになっている。イーサネット（登録商標）コントローラ３５は、ロボットコントローラ１１と他の機器とをバス型のネットワークとしてのイーサネット（登録商標）にて通信させるものであり、第１のポートＰ１に接続されたイーサネット（登録商標）ケーブルを介して他の機器との通信を可能とする。なお、本実施形態では、この第１のポートＰ１に、スマートカメラ１２や開発用コンピュータ１３が接続されることとなる。特にスマートカメラ１２は常時接続されている。一方、開発用コンピュータ１３は制御プログラムの作成時など必要に応じて接続される。なお、イーサネット（登録商標）による通信には、各機器に設定された固有のアドレスが必要であり、イーサネット（登録商標）コントローラ３５やスマートカメラ１２や開発用コンピュータ１３にはそれぞれ別々の固有のアドレスが予め設定されている。ＳＩＯコントローラ３６は、ロボットコントローラ１１と他の機器とをシリアル通信させるものであり、第２のポートＰ２に接続された機器とのシリアル通信を可能とする。本実施形態では、この第２のポートＰ２には、ティーチングペンダント１４が接続されるが、このティーチングペンダント１４は、ロボット１０に対するティーチング作業を行なうとき以外は接続されていないことが通常である。
【００３１】
次に、ロボット制御ボード２１は、いわゆる制御コントローラからなり、図４に示すように、ＤＳＰ（デジタル信号処理装置）４０、ＲＯＭ４１、ＲＡＭ４２、ＩＳＡバスインタフェース４３、モータ制御回路部４４、ポジションカウンタ４５のそれぞれが一つのメインバス４６に接続される態様にて設けられている。ロボット制御ボード２１では、ＤＳＰ４０がＲＡＭ４２をデータメモリとして用いつつＲＯＭ４１に記憶されているファームウェアや各種プログラム及びＣＰＵボード２０の算出した位置制御指令等に基づいた所定の演算を行ない、これによってロボット１０を制御するための制御信号の生成が行なわれる。なお、ＲＯＭ４１としても、保存されたファームウェア等を必要に応じて開発用コンピュータ１３等から変更できるように、フラッシュＲＯＭ等のような書き換え可能なＲＯＭを採用することが望ましい。ＩＳＡバスインタフェース４３は、メインバス４６及びロボットコントローラ１１のＩＳＡバス２４の両方に接続されていて、ロボット制御ボード２１をロボットコントローラ１１のＩＳＡバス２４に接続された他の各ボード２０，２２，２３と通信可能にするインタフェースである。すなわち、ロボット制御ボード２１は、ＣＰＵボード２０にて算出された位置制御指令等を参照できるとともに、ロボット制御ボード２１が算出した各種情報を他の各ボード２０，２２，２３に参照させることができる。モータ制御回路部４４には、同じくロボット制御ボード２１に設けられているパワードライブ部４７が接続されている。モータ制御回路部４４では、ＤＳＰ４０にて生成された上記制御信号に基づいてロボット１０に設けられたモータＭに与えるべき電力を算出しつつパワードライブ部４７を介してモータＭに与えられる供給電力を制御する。また、モータＭに設けられた図示しないセンサにて検出された電流量等の情報がモータ制御回路部４４に入力されて、モータＭに与えるべき電力の算出に対するフィードバックが行なわれている。ポジションカウンタ４５は、ロボット１０に設けられた関節部の回転角度を検出するエンコーダＥＮに接続され、そのエンコーダＥＮから入力される回転角度信号に基づいてロボット１０の関節部の回転角度を検出する。そして、ロボット制御ボード２１はその検出された回転角度を上記制御信号の生成にフィードバックさせるとともに、同ポジションカウンタ４５により検出された回転角度はまた、ロボットコントローラ１１のＩＳＡバ
ス２４を介してＣＰＵボード２０に取り込まれて上記位置制御指令の生成に利用される。なお、ここでは便宜上、ロボット１０が有するモータＭ及びエンコーダＥＮはそれぞれ１つとして説明したが、ロボット１０にはこれらモータＭ及びエンコーダＥＮがそれぞれ複数備えられていることが一般的である。
【００３２】
また、図１に示したロボットコントローラ１１において、デジタル入出力ボード２２は、ＣＰＵボード２０から指示された情報に対応したデジタル信号を出力するとともに、入力したデジタル信号に基づいた情報をＣＰＵボード２０が取り込めるようにするボードである。さらに、シリアル通信ボード２３は、ＣＰＵボード２０から指示された情報に基づいたシリアル通信用のデータをポートから出力するとともに、ポートに入力されたシリアル通信用のデータに基づいた情報をＣＰＵボード２０が取り込めるようにするボードである。
【００３３】
図５は、スマートカメラ１２のハードウェア的な構成を示したものである。スマートカメラ１２は、いわゆる小型コンピュータからなる制御部１２Ｃを内蔵する構成となっており、ＣＰＵ５０、ＲＯＭ５１、ＲＡＭ５２、イーサネット（登録商標）コントローラ５３、ビデオインタフェース５４のそれぞれが一つのメインバス５５に接続される態様で設けられている。ＣＰＵ５０はこれもいわゆる中央演算処理装置であって、ＣＰＵ５０がＲＡＭ５２をデータメモリとして用いつつＲＯＭ５１に記憶されているＯＳや各種アプリケーションプログラムに基づいて所要の処理、例えば画像処理プロセスプログラムを実行することにより、画像データに対するデータ処理等が逐次行われる。なお、ＲＯＭ５１としては、これも保存されているＯＳや各種アプリケーションプログラム等を必要に応じて開発用コンピュータ１３等から変更できるように、フラッシュＲＯＭ等のような書き換え可能なＲＯＭを採用することが望ましい。また、本実施形態において、ＲＡＭ５２には、所定の画像データを一時記憶保存するための撮像データバッファＤＢ１としての領域や、処理画像バッファＤＢ２としての領域が確保されている。さらに、ＲＡＭ５２には、画像データのデータ処理により算出された情報に基づくデータを記憶するための結果データバッファＤＢ３としての領域も確保されている。イーサネット（登録商標）コントローラ５３は、スマートカメラ１２と他の機器とをイーサネット（登録商標）により通信させるものであり、イーサネット（登録商標）ケーブルを介して他の機器との通信を可能とする。本実施形態では、このイーサネット（登録商標）コントローラ５３には、ロボットコントローラ１１が常時接続されている。なお、イーサネット（登録商標）における通信に用いられる固有のアドレスは上述のように、このイーサネット（登録商標）コントローラ５３（スマートカメラ１２）自身に予め設定されている。また、イーサネット（登録商標）コントローラ５３には、第１コマンドインタフェースＣＩＦ１、及び第２コマンドインタフェースＣＩＦ２がそれぞれ設けられている。これら各コマンドインタフェースＣＩＦ１，ＣＩＦ２は、それぞれイーサネット（登録商標）コントローラ５３により仮想的に実現されるインタフェース部であり、それぞれへの通信はイーサネット（登録商標）コントローラ５３が通信データに含まれる所定のＩＤを判別することにより行なわれるようになっている。すなわち、スマートカメラ１２としてはイーサネット（登録商標）コントローラ５３は１つであるものの、仮想的には上記２つのインタフェース部が設けられている。ビデオインタフェース５４には、同じくスマートカメラ１２に設けられているイメージセンサ５６が接続されている。イメージセンサ５６は、例えばＣＣＤを撮像素子として用いたカメラであり、ロボット１０の周辺画像Ｉｍ、例えばロボット１０が加工や把持するワークＷの画像や、ロボット１０の先端の機能部Ｔの画像を撮像してそのデータＳｉｍをビデオインタフェース５４に出力する。そして、ビデオインタフェース５４は、イメージセンサ５６を通じて撮像されたデータＳｉｍをＲＡＭ５２に転送する部分であり、ＣＰＵ５０では、こうしてＲＡＭ５２に転送されたデータ、すなわち撮像データに対して上述した所要の処理を行なうこととなる。
【００３４】
図６は、スマートカメラ１２の主に制御部１２Ｃにおいて上記撮像データに対して所要の処理を行なうための機能の概略を機能ブロック図として示したものである。なお、本実施形態では、制御部１２Ｃには、画像処理手段としての画像処理プロセスＤＰ及び画像選択手段としてのイメージセレクタＳＷが設けられている。これら画像処理プロセスＤＰ及びイメージセレクタＳＷは、ＲＡＭ５２に保存された画像処理プロセスプログラムまたはイメージセレクタプログラムが制御部１２ＣのＣＰＵ５０にて実行されることにより実現される機能である。また、スマートカメラ１２の各コマンドインタフェースＣＩＦ１，ＣＩＦ２には、イーサネット（登録商標）を通じてロボットコントローラ１１（図１）からの各種指令（「画像処理指令」、「結果データ取得指令」、「モニタ画像データ取得指令」等）が入力されるものとする。
【００３５】
次に、この図６を参照して、スマートカメラ１２の制御部１２Ｃにおける画像処理の一例について説明する。なお、撮像データバッファＤＢ１には、イメージセンサ５６から入力されたデータＳｉｍに基づいて形成された撮像データＤＴ１が適宜に更新されながら保存されているものとする。
【００３６】
まず、スマートカメラ１２の制御部１２Ｃにおいて、ロボットコントローラ１１（図１）からの上記撮像データＤＴ１に対する画像処理の要求指令である「画像処理指令」が第１コマンドインタフェースＣＩＦ１を介して画像処理プロセスＤＰに入力される。そして、「画像処理指令」の入力された画像処理プロセスＤＰには撮像データバッファＤＢ１に保存されている撮像データＤＴ１が取り込まれる。撮像データＤＴ１が取り込まれると、画像処理プロセスＤＰではその取り込まれた撮像データＤＴ１に予め定められた所要のデータ処理、いわゆる画像処理が行なわれる。そして、この画像処理を通じて、処理済の画像データである処理画像データＤＴ２と上記視覚機能の実現に必要とされる情報を含む結果データＤＴ３とが生成される。ここで、処理画像データＤＴ２は撮像データＤＴ１を元に生成された画像データであり、例えば撮像データＤＴ１として撮像された撮像対象物の輪郭情報や中心位置情報等が付加された画像データである。また、結果データＤＴ３は、撮像データＤＴ１として撮像された撮像対象物から取得される各種の情報を含むものである。具体的には、ワークＷ（図１）の位置や向きを示す座標情報、ワークＷの形状を示す形状情報、ワークＷの色合いや明暗を示す色彩情報、複数のワークＷ間における重なりや接触などの関係を示す配列情報、ロボット１０先端の機能部Ｔ（図１）の向きや座標を示すロボット情報等などのロボット１０の位置制御等に有益な数値データを含む情報である。そして、画像処理プロセスＤＰにおいて生成された処理画像データＤＴ２は処理画像バッファＤＢ２に保存され、結果データＤＴ３は結果データバッファＤＢ３に保存される。なお、処理画像バッファＤＢ２には所定の複数の処理画像データＤＴ２が保存可能であり、新たなデータが保存されるときには、既存のデータがメモリの後方位置にシフトされるとともに最後のデータは破棄されて、このシフト操作により空いた先頭の位置に新たなデータ、すなわち最新の処理画像データＤＴ２が保存されるようになっている。
【００３７】
その後、外部のロボットコントローラ１１（図１）から「結果データ取得指令」が第１コマンドインタフェースＣＩＦ１を介して画像処理プロセスＤＰに入力されると、該画像処理プロセスＤＰでは、上記結果データバッファＤＢ３に保存した結果データＤＴ３を同結果データバッファＤＢ３から第１コマンドインタフェースＣＩＦ１に出力させる。それにより、ロボットコントローラ１１には、スマートカメラ１２からの結果データＤＴ３が入力され、該結果データＤＴ３に基づいてロボット１０の機能部Ｔ（図１）の位置決め制御などが実行されるようになる。
【００３８】
一方、本実施形態では、ロボットコントローラ１１（図１）には開発用コンピュータ１３（図１）が接続されていて、そのモニタ装置にはスマートカメラ１２からのモニタ画像データが表示されるようになっている。すなわち、開発用コンピュータ１３（図１）から
スマートカメラ１２に向けて発行された「モニタ画像データ取得指令」はロボットコントローラ１１（図１）とスマートカメラ１２の第２コマンドインタフェースＣＩＦ２を介してイメージセレクタＳＷに与えられる。この「モニタ画像データ取得指令」には、撮像データＤＴ１と処理画像データＤＴ２とのいずれを取得したいのかを示すモード情報が含まれていて、「実画像モード」の場合には撮像データＤＴ１が、「処理画像モード」の場合には処理画像データＤＴ２が、それぞれイメージセレクタＳＷによってモニタ画像データとして選択されるようになっている。さらに、「処理画像モード」の場合には、何番目の処理画像データを選択したいのかを示す情報の設定も可能となっているが、特に設定されなければ、イメージセレクタＳＷでは処理画像バッファＤＢ２から最新の処理画像データＤＴ２を選択してこれを出力する。
【００３９】
このため、例えばイメージセレクタＳＷに与えられた「モニタ画像データ取得指令」が「実画像モード」であれば、イメージセレクタＳＷは撮像データバッファＤＢ１に保存されている撮像データＤＴ１を選択し、それをモニタ画像データとして第２コマンドインタフェースＣＩＦ２から出力する。そして、第２コマンドインタフェースＣＩＦ２から出力されたモニタ画像データは、ロボットコントローラ１１（図１）を介して開発用コンピュータ１３（図１）に転送され、そのモニタ装置に表示されるようになる。ちなみに、開発用コンピュータ１３（図１）からスマートカメラ１２に対し、このような「実画像モード」による「モニタ画像データ取得指令」の付与が逐次繰り返えされる場合、開発用コンピュータ１３のモニタ装置には、スマートカメラ１２を通じて撮像された撮像データＤＴ１からなるモニタ画像データが動画のようなかたちで表示されるようになる。
【００４０】
一方、「モニタ画像データ取得指令」が「処理画像モード」である場合には、イメージセレクタＳＷは処理画像バッファＤＢ２に保存されている指定された順番の処理画像データＤＴ２を選択しこれをモニタ画像データとして第２コマンドインタフェースＣＩＦ２から出力する。そして、第２コマンドインタフェースＣＩＦ２から出力されたモニタ画像データは、これも同様にロボットコントローラ１１を介して開発用コンピュータ１３に転送され、そのモニタ装置に表示されるようになる。
【００４１】
以上説明したように、本実施形態のスマートカメラ及びロボットビジョンシステムによれば、以下に列記するような効果が得られるようになる。
（１）結果データＤＴ３は第１コマンドインタフェースＣＩＦ１から、また処理画像データＤＴ２もしくは撮像データＤＴ１は第２コマンドインタフェースＣＩＦ２からそれぞれ独立して出力されるようにした。このことにより、例えば第２コマンドインタフェースＣＩＦ２から処理画像データＤＴ２や撮像データＤＴ１といったモニタ画像データの出力中であれ、第１コマンドインタフェースＣＩＦ１からはロボット１０等の制御に用いられる結果データＤＴ３を遅延なくリアルタイムに出力することができるようになる。
【００４２】
（２）また、撮像データＤＴ１を撮像データバッファＤＢ１に、処理画像データＤＴ２を処理画像バッファＤＢ２にそれぞれ一時的に保持させておくとともに、それらバッファＤＢ１，ＤＢ２から直接、撮像データＤＴ１または処理画像データＤＴ２がモニタ画像データとしてイメージセレクタＳＷから選択出力されるようにする。すなわち、第２コマンドインタフェースＣＩＦ２からのモニタ画像データの出力には画像処理プロセスＤＰを介する必要がなくなるため、画像処理プロセスＤＰは「画像処理指令」等に対してリアルタイムに応答できるようにもなる。
【００４３】
（３）第１及び第２コマンドインタフェースＣＩＦ１，ＣＩＦ２といった２つのインタフェースを必要とする構成を、１つの物理的なイーサネット（登録商標）コントローラ５３により実現した。これにより、スマートカメラ１２に要求される小型化も容易となり、ロボット１０に搭載されるような小型のスマートカメラ１２の実現も容易になる。
【００４４】
（４）処理画像バッファＤＢ２に複数の処理画像データＤＴ２を保存しておくことにより、第２コマンドインタフェースＣＩＦ２を通じて複数の処理画像データＤＴ２のうちの任意のデータを参照することができるようになる。すなわち、処理状況の検証なども容易として、スマートカメラ１２としての利用価値を更に高めることとができるようにもなる。
【００４５】
（５）結果データバッファＤＢ３に先に生成された結果データＤＴ３を保存しておくことにより、画像処理プロセスＤＰが他の「画像処理指令」に基づく画像処理中であったとしても、それ以前の結果データＤＴ３を直ちに得ることが可能となり、スマートカメラ１２としての応答性を高めることができるようになる。
【００４６】
（６）イーサネット（登録商標）コントローラ５３の第２コマンドインタフェースＣＩＦ２から撮像データＤＴ１もしくは処理画像データＤＴ２をモニタ画像データとして出力するようにした。これにより、スマートカメラ１２からはいつでもモニタ画像データを取得することができるようにもなり、別途にモニタ専用装置等を設けなくとも、ロボットコントローラ１１を通じてスマートカメラ１２からのモニタ画像データを開発用コンピュータ１３のモニタ装置に表示させることができるようになる。すなわち、ロボットビジョンシステムとして不要なコストアップにつながる懸念もない。
【００４７】
（７）ロボット１０やスマートカメラ１２のプログラム作成時には必然的にロボットビジョンシステムに接続される開発用コンピュータ１３にてスマートカメラ１２からのモニタ画像データを表示させることができ、開発用コンピュータ１３を含めたより効率的な統合環境の構築も容易となる。
【００４８】
なお、上記実施形態は、例えば以下のような態様にて実施することもできる。
・上記実施形態では、データ転送機構としてイーサネット（登録商標）を用いたが、データ転送機構はイーサネット（登録商標）には限られず、その他の通信手段、例えば、シリアル通信やＵＳＢ、ＩＥＥＥ１３９４などのデータ転送機構を採用するようにしてもよい。
【００４９】
・上記実施形態では、イメージセンサ５６の撮影素子としてＣＣＤを採用したが、こうしたイメージセンサとしては、撮像した画像をビデオインタフェースに入力できるものであればどのようなものであってもよい。
【００５０】
・上記実施形態では、スマートカメラ１２としてイメージセンサ５６を一体に備えるものを採用したが、こうしたスマートカメラとしては、ＣＰＵ等を備えた筐体部とイメージセンサを備えたカメラ部とが分離されたものを専用のケーブルにて接続するなど、これら筐体部とカメラ部とが離間されたものを採用するようにしてもよい。そのようにすれば、比較的小さいカメラ部にあってはその配設の自由度が高められ、例えばロボットの先端部にカメラ部を配設するような構成も容易となる。
【００５１】
・上記実施形態では、スマートカメラ１２の画像処理による処理情報に基づいてロボットコントローラ１１がロボット１０の機能部Ｔの位置決め制御を行うことを想定した。しかし、上記ロボットビジョンシステムとしての用途はこれに限らない。すなわち、スマートカメラ１２の画像データ処理によりワークの位置や向き、ワークの形状、ワークの色合いや明暗、複数のワーク間における重なりや接触などの関係、ロボット１０先端の機能部Ｔの向きや座標等の処理情報が算出される場合には、ロボットコントローラ１１にこれら処理情報に基づく各種の制御を行なわせることができる。例えば、ワークの形状や色合いの情報からは、当該ワークが目的の部品であるか否かの判定を行い、その結果を機能部の
位置決め制御に反映させるようにすることができる。また、ワークの重なり情報からは、機能部をワークへアプローチさせる特殊な軌道の算出や、機能部に複数のワークを分離させる作業などを行なわせるようにすることができる。また、ロボット１０に各種の制御を行う場合においても、多様な情報に基づいた制御が行えることから、より自由度の高い制御を行うこともできる。
【００５２】
・その他、スマートカメラ１２が処理の対象とする画像の内容も上述の内容に限られることなく任意である。例えばワークの搬送装置、ワークの加工装置、他のロボットや周辺機器等に関する画像等に基づいてそれぞれ必要とされる処理を行ない、それらの物の向きや座標、形状等の情報を算出するようにしてもよい。これらの情報を制御に用いることで、ロボットコントローラ１１は、ロボット１０の機能部Ｔに周囲にある物との干渉や接触を防ぐなどの制御を行うことができるようにもなる。すなわち、ロボットビジョンシステムを構成するロボットの動作を周辺環境、すなわち他の生産設備等に対してより調和したものとすることもできる。
【００５３】
・上記実施形態では、開発用コンピュータ１３のモニタ装置にスマートカメラ１２からのモニタ画像データを表示させるようにした。しかしこれに限らず、モニタ画像データをそのほかのコンピュータのモニタ装置やモニタ専用装置に表示させてもよい。
【００５４】
・上記実施形態では、結果データＤＴ３を保持する結果データバッファＤＢ３を備えたが、画像処理プロセスが画像処理に基づいて生成した結果データをコマンドインタフェースに直接出力するようにすることで結果データバッファＤＢ３を用いない構成とすることもできる。
【００５５】
・上記実施形態では、処理画像バッファＤＢ２には複数の処理画像データＤＴ２を保持するようにしたが、処理画像バッファＤＢ２には最新の処理画像データＤＴ２のみを保存されるようにしてもよい。そうすれば、必要とするメモリ量も少なくなり、上記スマートカメラの実現もより容易となる。
【００５６】
・上記実施形態では、１つのイーサネット（登録商標）コントローラ３５に、２つの仮想的な第１コマンドインタフェースＣＩＦ１と、仮想的な第２コマンドインタフェースＣＩＦ２を設けた。しかしこれに限らず、２つのイーサネット（登録商標）コントローラを用いて、それぞれに１つのコマンドインタフェースを設けてもよい。すなわち、スマートカメラの画像処理プロセスとイメージセレクタとのそれぞれにリアルタイムに各種指令を独立して伝達できる構成であればよい。
【００５７】
・上記実施形態では、画像処理プロセスＤＰが「画像処理指令」の付与により撮像データＤＴ１に画像処理を施して結果データＤＴ３を生成し、それを結果データバッファＤＢ３に保存した。また、その後の「結果データ取得指令」の付与により結果データバッファＤＢ３に保存されている先に生成された結果データＤＴ３を第１コマンドインタフェースＣＩＦ１に出力させた。しかしこれに限らず、「画像処理指令」の付与により画像処理プロセスが撮像データＤＴ１に画像処理を施して、その結果生成された結果データＤＴ３を第１コマンドインタフェースＣＩＦ１から出力するようにしてもよい。そのようにすれば、一つの指令で結果データＤＴ３が取得できるようになるとともに、最新の撮像データＤＴ１に施された画像処理に基づいて生成される結果データＤＴ３が出力されるようになる。
【図面の簡単な説明】
【００５８】
【図１】本発明にかかるロボットビジョンシステムの一実施形態についてその概略構成を示すブロック図。
【図２】同実施形態のロボットコントローラの構成を示すブロック図。
【図３】同実施形態のＣＰＵボードの構成を示すブロック図。
【図４】同実施形態のロボット制御ボードの構成を示すブロック図。
【図５】同実施形態のスマートカメラの構成を示すブロック図。
【図６】同実施形態のスマートカメラの機能を示す機能ブロック図。
【図７】従来のスマートカメラの機能を示す機能ブロック図。
【符号の説明】
【００５９】
２…ロボットシステム、１０…ロボット、１１…ロボットコントローラ、１２…スマートカメラ、１２Ｃ…制御部、１３…開発用コンピュータ、１４…ティーチングペンダント、２０…ＣＰＵボード、２１…ロボット制御ボード、２２…デジタル入出力ボード、２３…シリアル通信ボード、２４…ＩＳＡバス、３０，５０…ＣＰＵ、３１，４１，５１…ＲＯＭ、３２，４２，５２…ＲＡＭ、３３…ＳＲＡＭ、３４，４３…ＩＳＡバスインタフェース、３５，５３…イーサネット（登録商標）コントローラ、３６…シリアル入出力コントローラ、３７，４６，５５…メインバス、４０…ＤＳＰ、４４…モータ制御回路部、４５…ポジションカウンタ、４７…パワードライブ部、５４…ビデオインタフェース、５６…イメージセンサ、ＣＩＦ１…第１コマンドインタフェース、ＣＩＦ２…第２コマンドインタフェース、ＤＢ１…撮像データバッファ、ＤＢ２…処理画像バッファ、ＤＢ３…結果データバッファ、ＤＴ１…撮像データ、ＤＴ２…処理画像データ、ＤＴ３…結果データ、Ｍ…モータ、Ｔ…機能部、Ｗ…ワーク、ＥＮ…エンコーダ、Ｐ１…第１のポート、Ｐ２…第２のポート。
【図１】
2009218933.tif 000003
【図２】
2009218933.tif 000004
【図３】
2009218933.tif 000005
【図４】
2009218933.tif 000006
【図５】
2009218933.tif 000007
【図６】
2009218933.tif 000008
【図７】
2009218933.tif 000009