(57)【要約】【課題】回路サイズが小さいＦＰＧＡ（Field Programmable Gate Array）であってもロボットの作業過程に合わせて種々の画像処理を実行することができる画像処理システムを提供する。【解決手段】画像処理システム１は、ワークに対して所定の作業を行うロボット３００と、ワークを撮影する撮影部と、ロボット３００の位置を取得する取得部と、内部の回路構成を再構成できるように構成されているＦＰＧＡ２０２と、ＦＰＧＡ２０２の回路構成を規定する情報であって撮影部から得られた画像に対して所定の画像処理を実現する回路情報を、ロボット３００の稼働エリア別に規定しているエリア情報を格納する記憶部と、取得部によって順次取得されるロボット３００の位置がエリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報でＦＰＧＡ２０２の回路構成を再構成する再構成部とを備える。【選択図】図２
2018128821.tif 000002
【特許請求の範囲】
【請求項１】
ワークに対して所定の作業を行うためのロボットと、
前記ワークを撮影するための撮影部と、
前記ロボットの位置を取得するための取得部と、
内部の回路構成を再構成できるように構成されているＦＰＧＡ（Field Programmable Gate Array）と、
前記ＦＰＧＡの回路構成を規定する情報であって前記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、
前記取得部によって順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記ＦＰＧＡの回路構成を再構成するための再構成部とを備える、画像処理システム。
【請求項２】
前記画像処理システムは、前記エリア情報を設定するためのユーザインターフェイスを提供するための設定部をさらに備え、
前記ユーザインターフェイスは、
予めインストールされている１つ以上の画像処理の内から１つ以上の画像処理を選択する選択操作を受け付けるように構成されており、
前記選択操作によって選択された画像処理と、前記ロボットの現在位置を含む稼働エリアとを前記エリア情報に登録するための登録操作を受け付けるように構成されている、請求項１に記載の画像処理システム。
【請求項３】
前記画像処理システムは、前記ロボットを駆動するための駆動操作を受け付けるための操作部をさらに備え、
前記ユーザインターフェイスは、前記駆動操作によって前記ロボットの位置が指定された上で前記登録操作を受け付けるように構成されている、請求項２に記載の画像処理システム。
【請求項４】
前記ユーザインターフェイスは、前記駆動操作による前記ロボットの駆動に連動して前記ロボットの現在位置を表示する、請求項３に記載の画像処理システム。
【請求項５】
前記ＦＰＧＡは、前記撮影部から画像を取得したことに基づいて、当該画像に対して現在の回路構成に従った画像処理を実行する、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
ワークに対して所定の作業を行うためのロボットと通信可能に構成されている画像処理装置であって、
前記ワークを撮影するための撮影部と、
前記ロボットの位置を取得するための取得部と、
内部の回路構成を再構成できるように構成されているＦＰＧＡと、
前記ＦＰＧＡの回路構成を規定する情報であって前記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、
前記取得部によって順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記ＦＰＧＡの回路構成を再構成するための再構成部とを備える、画像処理装置。
【請求項７】
ＦＰＧＡにおける回路の再構成方法であって、
前記制御方法は、
ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、
前記ＦＰＧＡの回路構成を規定する情報であって前記ワークを撮影して得られた画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、
前記取得するステップにおいて順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記ＦＰＧＡの回路構成を再構成するステップとを備える、回路の再構成方法。
【請求項８】
ＦＰＧＡにおける回路の再構成プログラムであって、
前記再構成プログラムは、コンピュータに、
ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、
前記ＦＰＧＡの回路構成を規定する情報であって前記ワークを撮影して得られた画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、
前記取得するステップにおいて順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記ＦＰＧＡの回路構成を再構成するステップとを実行させる、再構成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ワークの計測過程においてＦＰＧＡの回路構成を再構成するための技術に関するものである。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野において、ワークに対して所定の作業を行うロボットが普及している。このようなロボットの制御に関し、特開２００３−２１１３８２号公報（特許文献１）は、「カメラの撮影画像データに基づいて、ロボットアームの位置姿勢の視覚フィードバック制御（いわゆるビジュアルサーボ）を行うようにした」ロボット制御装置を開示している。
【０００３】
ロボットが行う作業の一例として、ロボットは、ばら積みされているワークをピックアップし、そのワークを他のワークに取り付ける作業を行う。その作業の過程で、ワークの位置検知処理やワークの検査処理などの計測処理が行われる。ワークの計測処理は、ワークを撮影して得られた画像に対して種々の画像処理が実行されることによって実現される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２１１３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ワークの計測処理において実行される画像処理は、たとえば、ＣＰＵ（Central Processing Unit）やＦＰＧＡによって実行される。典型的には、ＦＰＧＡの処理速度はＣＰＵの処理速度よりも速いため、処理速度が望まれる画像処理は、ＦＰＧＡによって実行される。
【０００６】
しかしながら、ＦＰＧＡ内部の回路サイズが小さい場合には、実現可能な画像処理が限られる。一方で、ロボットによるワークの作業過程では、種々の画像処理が実行される。したがって、回路サイズが小さいＦＰＧＡであってもロボットの作業過程に合わせて種々の画像処理を実行するための技術が望まれている。
【課題を解決するための手段】
【０００７】
ある局面に従うと、画像処理システムは、ワークに対して所定の作業を行うためのロボットと、上記ワークを撮影するための撮影部と、上記ロボットの位置を取得するための取得部と、内部の回路構成を再構成できるように構成されているＦＰＧＡと、上記ＦＰＧＡの回路構成を規定する情報であって上記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、上記取得部によって順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記ＦＰＧＡの回路構成を再構成するための再構成部とを備える。
【０００８】
好ましくは、上記画像処理システムは、上記エリア情報を設定するためのユーザインターフェイスを提供するための設定部をさらに備える。上記ユーザインターフェイスは、予めインストールされている１つ以上の画像処理の内から１つ以上の画像処理を選択する選択操作を受け付けるように構成されており、上記選択操作によって選択された画像処理と、上記ロボットの現在位置を含む稼働エリアとを上記エリア情報に登録するための登録操作を受け付けるように構成されている。
【０００９】
好ましくは、上記画像処理システムは、上記ロボットを駆動するための駆動操作を受け付けるための操作部をさらに備える。上記ユーザインターフェイスは、上記駆動操作によって上記ロボットの位置が指定された上で上記登録操作を受け付けるように構成されている。
【００１０】
好ましくは、上記ユーザインターフェイスは、上記駆動操作による上記ロボットの駆動に連動して上記ロボットの現在位置を表示する。
【００１１】
好ましくは、上記ＦＰＧＡは、上記撮影部から画像を取得したことに基づいて、当該画像に対して現在の回路構成に従った画像処理を実行する。
【００１２】
他の局面に従うと、ワークに対して所定の作業を行うためのロボットと通信可能に構成されている画像処理装置は、上記ワークを撮影するための撮影部と、上記ロボットの位置を取得するための取得部と、内部の回路構成を再構成できるように構成されているＦＰＧＡと、上記ＦＰＧＡの回路構成を規定する情報であって上記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、上記取得部によって順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記ＦＰＧＡの回路構成を再構成するための再構成部とを備える。
【００１３】
他の局面に従うと、ＦＰＧＡにおける回路の再構成方法は、ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、上記ＦＰＧＡの回路構成を規定する情報であって上記ワークを撮影して得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、上記取得するステップにおいて順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記ＦＰＧＡの回路構成を再構成するステップとを備える。
【００１４】
他の局面に従うと、ＦＰＧＡにおける回路の再構成プログラムは、コンピュータに、ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、上記ＦＰＧＡの回路構成を規定する情報であって上記ワークを撮影して得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、上記取得するステップにおいて順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記ＦＰＧＡの回路構成を再構成するステップとを実行させる。
【発明の効果】
【００１５】
ある局面において、回路サイズが小さいＦＰＧＡであってもロボットの作業過程に合わせて種々の画像処理を実行することができる。
【００１６】
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に従う画像処理システムのシステム構成の一例を示す図である。
【図２】実施の形態に従うロボットの作業過程の一例を示す図である。
【図３】実施の形態に従う設定装置と画像処理装置とロボットとコントローラとの間のデータの流れを示すシーケンス図である。
【図４】実施の形態に従うロボットの位置と当該位置で実行する画像処理とを対応付けるためのユーザインターフェイスを示す図である。
【図５】エリア情報の一例を示す図である。
【図６】実施の形態に従う画像処理装置の機能構成の一例を示す図である。
【図７】実施の形態に従う画像処理装置による計測処理を表わすフローチャートである。
【図８】実施の形態に従う設定装置の主要なハードウェア構成を示すブロック図である。
【図９】実施の形態に従う画像処理装置の主要なハードウェア構成を示すブロック図である。
【図１０】実施の形態に従うコントローラの主要なハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００１９】
［Ａ．システム構成］
図１を参照して、本実施の形態に従う画像処理システム１の概要について説明する。図１は、本実施の形態に従う画像処理システム１のシステム構成の一例を示す図である。
【００２０】
画像処理システム１は、たとえば、生産ラインなどに組み込まれ、トレーなどにばら積みされた製品または半製品であるワークＷ１を１個ずつピックアップし、ワークＷ２に取り付けるような処理を行う。なお、図１には、理解を容易にするため、トレー内に少数のワークＷ１のみが存在する場合を図示するが、多数のワークＷ１が重なった状態で配置されていてもよい。
【００２１】
画像処理システム１は、たとえば、設定装置１００と、ワークＷ１，Ｗ２を撮影するための画像処理装置２００と、ワークＷ１，Ｗ２に対して所定の作業を行うためのロボット３００と、ロボット３００を制御するためのコントローラ４００とで構成されている。
【００２２】
設定装置１００、画像処理装置２００、ロボット３００、およびコントローラ４００は、ネットワークＮＷにされ、互いに通信可能に構成されている。ネットワークＮＷは、たとえば、フィールドネットワークである。一例として、ネットワークＮＷには、ＥｔｈｅｒＣＡＴ（登録商標）やＥｔｈｅｒＮＥＴ（登録商標）などが採用される。
【００２３】
設定装置１００は、画像処理装置２００の設定を行うための情報処理端末であり、たとえば、ＰＣ（Personal Computer）、タブレット端末、または、スマートフォンなどである。設定装置１００は、任意の画像処理を組み合わせることで任意の計測処理を設計することができるユーザインターフェイスを提供する。当該ユーザインターフェイスは、予めインストールされているライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付ける。画像処理の実行順序は、たとえば、選択対象の画像処理の並び順によって指定される。設計者は、画像処理の選択操作と実行順序の指定操作とを繰り返すことで任意の計測処理を設計することができる。以下では、ユーザによって組み合わされた一連の画像処理を「ユーザ設定の計測処理」ともいう。画像処理装置２００は、コンパイル指示（あるいは、ビルド指示）を受け付けたことに基づいて、ユーザ設定の計測処理を画像処理装置２００で実行可能な形式に変換し、実行データを生成する。生成された実行データは、画像処理装置２００に送信される。
【００２４】
画像処理装置２００は、設定装置１００から実行データを受信したことに基づいて、当該実行データを記憶する。その後、画像処理装置２００は、ワークＷ１，Ｗ２の計測処理を実行するタイミングが到来したことに基づいて、実行データを読み込み、ユーザ設定の計測処理を実現する。ユーザ設定の計測処理としてワークの検知処理が設定されている場合には、画像処理装置２００は、カメラ（撮影部）から得られた画像からワークを検知し、検知したカメラ座標系のワーク位置をコントローラ４００に送信する。
【００２５】
コントローラ４００は、ロボット３００を制御するための制御装置であり、たとえば、ＰＬＣ（Programmable Logic Controller）である。あるいは、コントローラ４００は、産業用のコンピュータ（所謂ＩＰＣ：Industrial Personal Computer）であってもよい。コントローラ４００は、画像処理装置２００によって検知されたカメラ座標系のワーク位置を予め定められた変換式に従ってワールド座標系の座標値に変換する。コントローラ４００は、変換後の座標値にロボット３００のアームを移動し、ワークＷ１のピックアップ命令を出力する。
【００２６】
なお、図１の例では、画像処理システム１が１つの設定装置１００で構成されている例が示されているが、画像処理システム１は、複数の設定装置１００で構成されてもよい。図１の例では、画像処理システム１が１つの画像処理装置２００で構成されている例が示されているが、画像処理システム１は、複数の画像処理装置２００で構成されてもよい。図１の例では、画像処理システム１が１つのロボット３００で構成されている例が示されているが、画像処理システム１は、複数のロボット３００で構成されてもよい。図１の例では、画像処理システム１が１つのコントローラ４００で構成されている例が示されているが、画像処理システム１は、複数のコントローラ４００で構成されてもよい。
【００２７】
また、図１の例では、画像処理装置２００およびロボット３００が一体的に構成されている例が示されているが、画像処理装置２００およびロボット３００が別個に構成されてもよい。すなわち、画像処理装置２００は、ロボット３００上に設けられてもよいし、ロボット３００とは異なる位置に設けられてもよい。
【００２８】
［Ｂ．ＦＰＧＡの再構成処理］
画像処理装置２００は、ＣＰＵやＦＰＧＡなどの複数種類の制御装置で構成される。ＦＰＧＡの処理速度は、典型的には、ＣＰＵの処理速度よりも速い。ＦＰＧＡの中には、処理の実行中に回路構成を動的に再構成する機能（所謂ＰＲ：Partial Reconfiguration）を有するものがある。ＦＰＧＡの回路が適宜再構成されることで、ＦＰＧＡの回路規模を仮想的に拡張することができる。本実施の形態に従う画像処理システム１は、ロボット３００の位置に合わせてＦＰＧＡの回路構成を再構成する。
【００２９】
一例として、ロボット３００の稼働エリアとＦＰＧＡの回路構成に関する回路情報との対応関係が予めエリア情報として規定されている。エリア情報の詳細については後述する。エリア情報に規定される稼働エリアは、ワークの計測処理の過程でロボット３００のアーム部分が通過する可能性のある領域に相当する。画像処理装置２００は、コントローラ４００からロボット３００の位置を定期的に取得し、当該位置がエリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報でＦＰＧＡの回路構成を再構成する。これにより、画像処理装置２００は、ＦＰＧＡの回路サイズが小さい場合であってもロボット３００の作業過程に合わせて種々の画像処理を実行することができる。
【００３０】
以下では、図２を参照して、ＦＰＧＡの再構成処理の具体例について説明する。図２は、ロボット３００の作業過程の一例を示す図である。
【００３１】
画像処理装置２００は、たとえば、ＦＰＧＡ２０２を含む。ＦＰＧＡ２０２は、再構成可能な回路領域２０２Ａ〜２０２Ｄを有する。
【００３２】
図２の例では、ワークＷ１のピックアップ処理（ステップＳ１）、ワークＷ１の移動処理（ステップＳ２）、およびワークＷ２へのワークＷ１の取り付け処理（ステップＳ３）が時系列に示されている。ステップＳ１〜Ｓ３に示される処理が繰り返されることで、ワークＷ１，Ｗ２の組み立て作業が実現される。
【００３３】
より具体的には、ステップＳ１において、画像処理装置２００は、コントローラ４００からロボット３００の位置を定期的に取得する。画像処理装置２００は、ロボット３００の現在位置に基づいて、ＦＰＧＡ２０２の回路構成を再構成するか否かを判断する。ＦＰＧＡ２０２の回路構成を再構成するか否かは、たとえば、後述のエリア情報１４４Ａに基づいて判断される。詳細については後述するが、エリア情報１４４Ａにおいて、ロボット３００の稼働エリアと実行対象の画像処理との関係が規定されている。画像処理装置２００は、ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したか否かを判断する。ここでいう「属した」とは、ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリア内に含まれたことを意味する。ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したと判断した場合、当該稼働エリアに対応付けられている回路情報でＦＰＧＡ２０２の回路構成を再構成する。ステップＳ１の例では、回路領域２０２Ａは、画像処理１Ａを実現するための回路構成に書き換えられる。回路領域２０２Ｂは、画像処理１Ｂを実現するための回路構成に書き換えられる。回路領域２０２Ｃは、画像処理１Ｃを実現するための回路構成に書き換えられる。
【００３４】
ステップＳ１のピッキング処理においてワークＷ１を正確にピッキングするためには、ワークＷ１の位置が正確に検知される必要がある。そのため、典型的には、画像処理１Ａ〜１Ｃのいずれかは、画像の高画質化を実現するための処理を含む。一例として、当該処理は、ＨＤＲ（High Dynamic Range）合成である。ＨＤＲ合成は、光沢のあるワークを撮影した場合などハレーションが生じるケースにおいて有効に働く。画像処理装置２００は、撮影部（カメラ）から得られた複数の画像をＨＤＲ合成することでＨＤＲ画像を生成する。その後、画像処理装置２００は、生成されたＨＤＲ画像からワークＷ１を検知する。ワークＷ１の検知処理には、たとえば、テンプレートマッチングなどの既存の画像処理技術が採用される。画像処理装置２００は、画像内のワークＷ１の位置をコントローラ４００に送信する。
【００３５】
コントローラ４００は、予め定められた変換式に従って、カメラ座標系の座標値をワールド座標系の座標値に変換する。コントローラ４００は、変換後の座標値に従ってロボット３００に制御命令を出力し、ワークＷ１のピックアップ処理を実現する。
【００３６】
ステップＳ２において、ロボット３００は、ワークＷ１の移動作業を実行する。この過程において、画像処理装置２００は、ロボット３００の現在位置を引き続き取得し、ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したか否かを判断する。ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したと判断した場合、画像処理装置２００は、当該稼働エリアに対応付けられている回路情報でＦＰＧＡ２０２の回路構成を再構成する。ステップＳ２の例では、回路領域２０２Ａは、画像処理２Ａを実現するための回路構成に書き換えられる。回路領域２０２Ｂは、画像処理２Ｂを実現するための回路構成に書き換えられる。回路領域２０２Ｃは、画像処理２Ｃを実現するための回路構成に書き換えられる。
【００３７】
通常、ワークＷ１の移動時には、画質は重要視されない。そのため、画像処理装置２００は、通常の撮影処理を実行する。すなわち、画像処理装置２００は、ＨＤＲ合成などの高画質化処理は行わない。
【００３８】
ステップＳ３において、ロボット３００は、ワークＷ１をワークＷ２に取り付けた上で、ワークＷ１，Ｗ２を検査する。この過程において、画像処理装置２００は、ロボット３００の現在位置を引き続き取得し、ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したか否かを判断する。ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したと判断した場合、画像処理装置２００は、当該稼働エリアに対応付けられている回路情報でＦＰＧＡ２０２の回路構成を再構成する。ステップＳ３の例では、回路領域２０２Ａは、画像処理３Ａを実現するための回路構成に書き換えられる。回路領域２０２Ｂは、画像処理３Ｂを実現するための回路構成に書き換えられる。回路領域２０２Ｃは、画像処理３Ｃを実現するための回路構成に書き換えられる。
【００３９】
典型的には、画像処理３Ａ〜３Ｃのいずれかは、立体画像を生成するための画像処理（たとえば、照度差ステレオ法）を含む。画像処理装置２００は、照度差ステレオ法により得られた三次元画像に基づいて、ワークＷ１，Ｗ２の検査を実行する。たとえば、ワークＷ１の取り付け位置、ワークＷ１，Ｗ２のキズの有無などが検査される。検査結果は、たとえば、画像処理装置２００に備えられる図示しない表示機器（たとえば、ＨＭＩ：Human Machine Interface）に表示される。
【００４０】
［Ｃ．画像処理システム１のデータフロー］
図３を参照して、画像処理システム１におけるデータの流れについて説明する。図３は、設定装置１００と画像処理装置２００とロボット３００とコントローラ４００との間のデータの流れを示すシーケンス図である。
【００４１】
ユーザは、ワークの計測処理の実行に先立って、ロボット３００の駆動エリアと当該駆動エリアにおける実行対象の画像処理とを対応付ける設定処理（以下、「ティーチング処理」ともいう。）を行う。その後、画像処理システム１は、ティーチング処理結果に従ってワークの計測処理を実行する。
【００４２】
以下では、ティーチング処理と、ワークの計測処理とについて順に説明する。
（Ｃ１．ティーチング処理）
ステップＳ１０において、ユーザは、ロボット３００の位置を指定するための駆動操作を行う。当該駆動操作は、ロボット３００を操作するための操作部に対して行われる。一例として、当該操作部には、ロボット３００専用の操作端末が用いられてもよいし、設定装置１００に接続されるキーボードやマウスなどが用いられてもよい。
【００４３】
ステップＳ１２において、コントローラ４００は、ロボット３００の駆動操作に応じて制御命令を生成し、当該制御命令をロボット３００に出力する。これにより、ロボット３００は、ユーザによる駆動操作に従って移動する。
【００４４】
ステップＳ２０において、ユーザは、設定装置１００に対して画像処理の選択操作をロボット３００の現在位置に対応付けるための操作を行う。この操作は、たとえば、図４に示されるユーザインターフェイス１４０に対して行われる。図４は、ロボット３００の位置と当該位置で実行する画像処理とを対応付けるためのユーザインターフェイス１４０を示す図である。ユーザインターフェイス１４０は、たとえば、設定装置１００の表示部１０５に表示される。
【００４５】
ユーザインターフェイス１４０は、ロボット３００の現在位置を表示するための位置表示領域１４１を含む。典型的には、当該現在位置は、ロボット３００のアーム位置に相当する。ロボット３００の現在位置は、ロボット３００を駆動するモータの回転角度で表わされてもよいし、三次元の座標値で表わされてもよい。位置表示領域１４１に表示されるロボット３００の現在位置は、ロボット３００の駆動に連動して更新される。これにより、ユーザは、ロボットの位置を正確に把握することができる。好ましくは、ユーザインターフェイス１４０は、ロボット３００を表わす画像を表示し、ロボット３００の姿勢に合わせて当該画像を更新してもよい。これにより、ユーザは、ロボット３００の姿勢を直感的に理解することができる。この効果は、特に、ユーザがロボット３００を直接確認できない場合に顕著となる。
【００４６】
ユーザインターフェイス１４０は、画像処理装置２００に予めインストールされている画像処理の一覧１４２を表示する。また、ユーザインターフェイス１４０は、一覧１４２に示される１つ以上の画像処理の内から１つ以上の画像処理を選択する選択操作を受け付けるように構成されている。すなわち、ユーザは、一覧１４２から１つ以上の画像処理項目を選択することができる。ユーザは、一覧１４２から画像処理項目を選択した上で追加ボタン１４３を押下すると、ロボット３００の現在位置と選択された画像処理項目とがリスト１４４において対応付けられる。このように、ユーザインターフェイス１４０は、ロボット３００の位置が指定された上で登録操作（たとえば、追加ボタン１４３の押下など）を受け付けるように構成されている。図４（Ａ）の例では、登録操作により、ロボット位置（θｘ１、θｙ１、θｚ１）と画像処理「通常撮影」が対応付けられている。
【００４７】
ユーザは、ロボット３００の位置の指定操作と、画像処理の選択操作とを繰り返す。その結果、図４（Ｂ）の例では、ロボット位置（θｘ２、θｙ２、θｚ２）と画像処理「ＨＤＲ合成」とがさらに対応付けられている。
【００４８】
ステップＳ３０において、ユーザは、ＯＫボタン１４５を押下したとする。ステップＳ３２において、設定装置１００は、ＯＫボタン１４５に対する押下操作に基づいて、図５に示されるエリア情報１４４Ａを生成する。図５は、エリア情報１４４Ａの一例を示す図である。
【００４９】
エリア情報１４４Ａは、ユーザインターフェイス１４０のリスト１４４において対応付けられたロボット位置と画像処理との関係に基づいて生成される。より具体的には、設定装置１００は、リスト１４４に登録された各ロボット位置からロボット３００の稼働エリアを算出する。登録されているロボット位置から稼働エリアへの変換は、予め定められた変換式に基づいて行われる。典型的には、当該稼働エリアは、登録されたロボット位置を含む近傍領域に相当し、登録されたロボット位置から所定距離内の領域に相当する。この場合、稼働エリアは、球状となる。なお、稼働エリアは、球状である必要はなく、直方体などのその他の形状であってもよい。
【００５０】
また、画像処理装置２００は、リスト１３３に示される各画像処理を実現するための回路情報を取得する。当該回路情報は、たとえば、たとえば、ＦＰＧＡ２０２の回路を構成するための命令コード（プログラム）で表わされる。その後、画像処理装置２００は、各ロボット位置から算出された稼働エリアに回路情報を対応付ける。これにより、エリア情報１４４Ａにおいて、ロボット３００の稼働エリアと、当該稼働エリアで実行される画像処理を実現するための回路情報とが対応付けられる。
【００５１】
ステップＳ３２において、設定装置１００は、生成したエリア情報１４４Ａを画像処理装置２００に送信する。ステップＳ３４において、画像処理装置２００は、設定装置１００から受信したエリア情報１４４Ａを記憶する。
【００５２】
このように、ユーザインターフェイス１４０は、ユーザによって選択された画像処理と、ロボット３００の現在位置を含む稼働エリアとをエリア情報１４４Ａに登録するための登録操作を受け付けるように構成されている。このようなユーザインターフェイス１４０が提供されることで、ユーザは、ロボットの稼働エリアと当該稼働エリアにおいて実行する画像処理とを容易に対応付けることができる。
【００５３】
（Ｃ２．計測処理）
引き続き図３を参照して、設定装置１００によるワークの計測処理について説明する。
【００５４】
ステップＳ４０において、コントローラ４００は、ワークの計測指示を受け付けたとする。ワークの計測指示は、たとえば、画像処理装置２００から画像が得られる度に発せられる。あるいは、ワークの計測指示は、予め定められた間隔ごとに発せられる。
【００５５】
ステップＳ５０において、コントローラ４００は、ロボット３００の現在位置を画像処理装置２００に送信する。ロボット３００の現在位置は、ロボット３００を駆動するモータの回転角度で表わされてもよいし、三次元の座標値で表わされてもよい。
【００５６】
ステップＳ５２において、画像処理装置２００は、ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したか否かを判断する。画像処理装置２００は、ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したと判断した場合、当該稼働エリアに対応付けられている回路情報に従ってＦＰＧＡ２０２の回路素子を結線し直し、回路構成を再構成する。そうでない場合には、ＦＰＧＡ２０２の再構成を実行しない。
【００５７】
ステップＳ５４において、画像処理装置２００は、ＦＰＧＡ２０２の回路構成に従った画像処理を実行する。一例として、当該画像処理の実行指示は、画像処理装置２００の撮影部から画像を取得する度に発せられる。実行される画像処理の一例として、画像処理装置２００は、ワーク検知を実現するための画像処理（たとえば、テンプレートマッチングなど）を実行する。
【００５８】
ステップＳ５６において、画像処理装置２００は、検知したワーク位置をコントローラ４００に送信する。当該ワーク位置は、たとえば、カメラ座標系で表わされる。
【００５９】
ステップＳ５８において、コントローラ４００は、予め定められた変換式に従って、カメラ座標系のワーク位置をワールド座標系の座標値に変換する。コントローラ４００は、変換後の座標値に従ってロボット３００に制御命令を出力し、ワークのピックアップ処理などを実現する。
【００６０】
ステップＳ５０〜Ｓ５８の処理が繰り返されることで、ロボット３００の位置に応じてＦＰＧＡ２０２の回路構成が再構成される。
【００６１】
［Ｄ．設定装置１００の機能構成］
図６を参照して、画像処理装置２００の機能について説明する。図６は、画像処理装置２００の機能構成の一例を示す図である。
【００６２】
図６に示されるように、画像処理装置２００は、主要なハードウェア構成として、ＣＰＵ２０１と、ＦＰＧＡ２０２と、記憶装置２２２とを含む。ＣＰＵ２０１は、機能構成として、設定部２５０と、取得部２５２と、再構成部２５４とを含む。
【００６３】
設定部２５０は、上述のユーザインターフェイス１４０（図４参照）を提供する。ユーザインターフェイス１４０は、予めインストールされている複数の画像処理の内から１つ以上の画像処理を選択するための選択操作を受け付けるように構成されている。また、ユーザインターフェイス１４０は、選択された画像処理と、ロボット３００の現在位置を含む稼働エリアとを上述のエリア情報１４４Ａに登録するための登録操作を受け付けるように構成されている。
【００６４】
取得部２５２は、ロボット３００の現在位置をコントローラ４００から取得する。典型的には、コントローラ４００から受信するロボット３００の位置情報は、コントローラ４００がロボット３００の駆動時に出力する目標位置に相当する。すなわち、コントローラ４００は、ロボット３００の駆動先として指定する位置をロボット３００の現在位置として画像処理装置２００の取得部２５２に送信する。
【００６５】
ロボット３００の現在位置は、定期的に取得される。典型的には、ロボット３００の現在位置は、コントローラ４００から一定の通信間隔で送信される。あるいは、ロボット３００の現在位置は、取得部２５２からの取得要求に応じてコントローラ４００から送信される。取得部２５２は、ロボット３００の現在位置を取得する度に当該現在位置を再構成部２５４に出力する。
【００６６】
なお、取得部２５２は、上記とは異なる方法で、ロボット３００の現在位置を取得してもよい。たとえば、ロボット３００にＧＰＳ（Global Positioning System）ユニットが設けられており、取得部２５２は、当該ＧＰＳユニットからロボット３００の位置情報を取得するように構成されていてもよい。
【００６７】
再構成部２５４は、取得部２５２によって順次取得されるロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報でＦＰＧＡ２０２の回路構成を再構成する。これにより、再構成部２５４は、ロボット３００の状態に合わせてＦＰＧＡ２０２の回路構成を再構成することができる。
【００６８】
なお、再構成部２５４は、ロボット３００の位置情報ではなく、その他の情報に基づいてＦＰＧＡ２０２を再構成してもよい。一例として、再構成部２５４は、時間情報に基づいてＦＰＧＡ２０２を再構成してもよい。より具体的には、画像処理装置２００およびコントローラ４００は、それぞれ、時刻が同期されたタイマーを有する。コントローラ４００は、当該タイマーの時間情報に従ってロボット３００を駆動する。すなわち、タイマーによって示される時間情報は、ロボット３００の位置に相互に関係する。このように、当該タイマーの時間情報は、間接的にはロボット３００の位置を示すので、タイマーの時間情報に基づいてＦＰＧＡ２０２の回路構成を再構成することは、ロボット３００の位置情報に基づいてＦＰＧＡ２０２の回路構成を再構成することと同義である。
【００６９】
［Ｅ．画像処理装置２００の制御構造］
図７を参照して、画像処理装置２００の制御構造について説明する。図７は、画像処理装置２００による計測処理を表わすフローチャートである。図７の処理は、画像処理装置２００のＣＰＵ２０１（図６参照）がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、ＦＰＧＡ２０２（図６参照）、回路素子またはその他のハードウェアによって実行されてもよい。
【００７０】
ステップＳ１１０において、ＣＰＵ２０１は、上述の取得部２５２（図６参照）として、ロボット３００の現在位置をコントローラ４００から取得する。
【００７１】
ステップＳ１２０において、ＣＰＵ２０１は、ステップＳ１１０で取得したロボット３００の現在位置が上述のエリア情報１４４Ａ（図５参照）に規定されている稼働エリアのいずれかに属したか否かを判断する。一例として、エリア情報１４４Ａに規定される稼働エリアが中心点および半径で規定されている場合（すなわち、稼働エリアが球状である場合）、ロボット３００の現在位置と当該中心点との間の距離が当該半径よりも短いときに、ロボット３００の現在位置が当該稼働エリアに属すると判断する。ＣＰＵ２０１は、ステップＳ１１０で取得したロボット３００の現在位置が上述のエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したと判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１２２に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、ＣＰＵ２０１は、制御をステップＳ１３０に切り替える。
【００７２】
ステップＳ１２２において、ＣＰＵ２０１は、ロボット３００の現在位置が属する稼働エリアに対応付けられている回路情報をエリア情報１４４Ａにおいて特定する。当該回路情報は、たとえば、たとえば、ＦＰＧＡ２０２の回路を構成するための命令コード（プログラム）で表わされており、ＣＰＵ２０１は、当該命令コードに従ってＦＰＧＡ２０２の回路構成を再構成する。
【００７３】
ステップＳ１３０において、ＣＰＵ２０１は、ワークの計測処理を実行する指示を受け付けたか否かを判断する。当該指示は、たとえば、画像処理装置２００の撮影部（カメラ）が画像を撮影する度に発せられる。ＣＰＵ２０１は、ワークの計測処理を実行する指示を受け付けたと判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１３２に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、ＣＰＵ２０１は、制御をステップＳ１１０に戻す。
【００７４】
ステップＳ１３２において、ＣＰＵ２０１は、現在の回路構成に従った画像処理を実行する。これにより、ワークの計測処理が実現される。
【００７５】
［Ｆ．ハードウェア構成］
図８〜図１０を参照して、画像処理システム１を構成するそれぞれの装置のハードウェア構成について説明する。図８は、画像処理システム１を構成する設定装置１００の主要なハードウェア構成を示すブロック図である。図９は、画像処理システム１を構成する画像処理装置２００の主要なハードウェア構成を示すブロック図である。図１０は、画像処理システム１を構成するコントローラ４００の主要なハードウェア構成を示すブロック図である。
【００７６】
（Ｆ１：設定装置１００）
設定装置１００は、たとえば、汎用のコンピュータで実現される。設定装置１００を実現するコンピュータは、制御装置１０１と、メモリ１０２と、ＨＤＤ（Hard Disk Drive）などの記憶装置１０３と、ネットワークインターフェイス（Ｉ／Ｆ）１０４と、表示部１０５と、操作部１０６と、メモリカードリーダ・ライタ１０７とを含む。これらの各部は、内部バス１０８を介して、互いに通信可能に接続されている。
【００７７】
制御装置１０１は、記憶装置１０３などに格納されているプログラム（命令コード）をメモリ１０２へ展開した上で実行することで、上述の各種機能を実現する。メモリ１０２および記憶装置１０３は、それぞれ揮発的および不揮発的にデータを格納する。記憶装置１０３は、ＯＳ（Operating System）に加えて、アプリケーション１０３Ａ、および、複数の画像処理からなるライブラリ１１０を保持している。
【００７８】
アプリケーション１０３Ａは、上述のユーザインターフェイス１４０（図４参照）を提供する基本プログラムである。ライブラリ１１０は、ユーザ操作に応じてその全部または一部が画像処理装置２００へ送信される。すなわち、画像処理装置２００の記憶装置２２２に格納されるライブラリ２２２Ｂ（図９参照）は、設定装置１００の記憶装置１０３に格納されるライブラリ１１０の少なくとも部分集合である。
【００７９】
ネットワークインターフェイス１０４は、ネットワークＮＷ（図１参照）を介して、設定装置１００と画像処理装置２００との間でデータを遣り取りする。
【００８０】
表示部１０５は、制御装置１０１がアプリケーション１０３Ａを実行することで実現される設定操作画面（たとえば、ユーザインターフェイス１４０）などを表示する。表示部１０５は、ＬＣＤ（Liquid Crystal Display）といったディスプレイなどからなる。
【００８１】
操作部１０６は、ユーザ操作を受け付け、その受け付けた操作を示す内部指令を制御装置１０１などへ出力する。操作部１０６は、典型的には、キーボード、マウス、タッチパネル、タブレット、音声認識装置などからなる。ユーザは、たとえば、操作部１０６を操作することによりロボット３００の位置を指定する。
【００８２】
メモリカードリーダ・ライタ１０７は、メモリカード１０７Ａからデータを読み出し、およびメモリカード１０７Ａへデータを書き込む。メモリカード１０７Ａとしては、ＳＤ（Secure Digital）カードなどの公知の記録媒体を採用できる。
【００８３】
（Ｆ２：画像処理装置２００）
次に、図９を参照して、画像処理装置２００の装置構成について説明する。画像処理装置２００は、照明部２１０と、制御装置２２０と、撮像部２３０とを含む。
【００８４】
照明部２１０は、検査対象であるワークＷに撮像に必要な光を照射する。つまり、照明部２１０は、撮像部２３０の撮像範囲に光を照射する。より具体的には、照明部２１０は、照明基板上に設けられる複数の照明制御ユニット２１１を含む。これらのユニットは、照明基板上に配置される。照明制御ユニット２１１の各々は、照明レンズ２１２と、ＬＥＤ２１３とを含む。照明制御ユニット２１１は、制御装置２２０からの指令に従って、光を照射する。より具体的には、ＬＥＤ２１３で発生した光は、照明レンズ２１２を通じてワークＷへ照射される。
【００８５】
撮像部２３０は、照明部２１０が照射した光の反射光を受けて、画像信号を出力する。この画像信号は、制御装置２２０へ送られる。より具体的には、撮像部２３０は、撮像レンズ２３１などの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの複数の画素に区画された撮像素子２３２を含む。
【００８６】
制御装置２２０は、画像処理装置２００の全体を制御する。すなわち、制御装置２２０は、照明部２１０および撮像部２３０を制御するとともに、撮像部２３０からの画像信号に基づいて画像処理を行う。より具体的には、制御装置２２０は、処理部２２１と、記憶装置２２２と、ネットワーク通信部２２３と、外部入出力部２２５とを含む。
【００８７】
処理部２２１は、ＣＰＵ２０１やＦＰＧＡ２０２といった集積回路によって構成される。あるいは、処理部２２１は、ＤＳＰ（Digital Signal Processor）、ＧＰＵ（Graphics Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、その他の集積回路によって構成されてもよい。
【００８８】
記憶装置２２２は、ＲＯＭ（Read Only Memory）、フラッシュメモリ、ＨＤＤ、およびＳＳＤ（Static Silicon Disk）といった不揮発性記憶装置、および／または、ＲＡＭ（Random Access Memory）などの不揮発メモリを含む。典型的に、処理部２２１が記憶装置２２２に格納されたプログラム（命令コード）やモジュールなどを実行することで、各種画像処理を実現する。
【００８９】
このようなプログラム（命令コード）やモジュールなどは、記憶装置２２２のうち不揮発性メモリに格納され、不揮発性メモリから読み出されたプログラム、プログラムの実行に必要なワークデータ、撮像部２３０によって取得された画像データ、および計測結果を示すデータなどは、記憶装置２２２のうち揮発性メモリに格納される。
【００９０】
より具体的には、記憶装置２２２は、ユーザ設定の計測処理を実現するための実行データ１２２と、上述のエリア情報１４４Ａ（図５参照）と、本体プログラム２２２Ａと、種々の機能モジュール（画像処理）を含むライブラリ２２２Ｂとを含む。
【００９１】
本体プログラム２２２Ａは、画像処理装置２００の基本的な動作を実現するための基本プログラムであり、ＯＳおよび基本的なアプリケーションを含み得る。ライブラリ２２２Ｂは、画像処理装置２００が提供する画像処理機能を実現するための複数のプログラム（典型的には、命令コードおよび／またはライブラリ）からなる。画像処理装置２００で実行可能な画像処理機能に応じた数だけインストールされる。上述のように、ライブラリ２２２Ｂは、設定装置１００の記憶装置１０３に格納されるライブラリ１１０の少なくとも部分集合である。
【００９２】
ネットワーク通信部２２３は、ネットワークＮＷを介して、設定装置１００などとデータを遣り取りするためのインターフェイスである。より具体的には、ネットワーク通信部２２３には、Ｅｔｈｅｒｎｅｔなどに従う構成が採用される。外部入出力部２２５は、コントローラ４００との間で各種データ（入力データおよび／または出力データ）を遣り取りするためのインターフェイスである。
【００９３】
（Ｆ３：コントローラ４００）
次に、図１０を参照して、コントローラ４００の装置構成について説明する。
【００９４】
コントローラ４００は、ＣＰＵやＭＰＵなどの制御装置４０１と、チップセット４０２と、主メモリ４０６と、記憶装置４２０と、ローカルネットワークコントローラ４０３と、ＵＳＢ（Universal Serial Bus）コントローラ４０４と、メモリカードインターフェイス４０５と、内部バスコントローラ４１０と、フィールドバスコントローラ４０９と、Ｉ／Ｏユニット４１１−１，４１１−２，…とを含む。
【００９５】
制御装置４０１は、記憶装置４２０に格納された各種プログラムを読み出して、主メモリ４０６に展開して実行することで、制御対象に応じた制御、および、本実施の形態に従う処理などを実現する。チップセット４０２は、制御装置４０１と各コンポーネントを制御することで、コントローラ４００全体としての処理を実現する。
【００９６】
記憶装置４２０は、たとえば、二次記憶装置である。記憶装置４２０には、ＰＬＣエンジンを実現するためのシステムプログラムに加えて、ＰＬＣエンジンを利用して実行されるユーザプログラム４２１などが格納される。ユーザプログラム４２１は、論理的な演算を主とするシーケンスシーケンスプログラム４２２、位置制御や速度制御などの数値的な演算を主とするモーションプログラム４２３、コントローラ４００の制御プログラム４２４などを含む。
【００９７】
ローカルネットワークコントローラ４０３は、ローカルネットワークを介した他の装置（たとえば、サーバーなど）との間のデータの遣り取りを制御する。ＵＳＢコントローラ４０４は、ＵＳＢ接続を介して他の装置（たとえば、ＰＣ（Personal Computer）など）との間のデータの遣り取りを制御する。
【００９８】
メモリカードインターフェイス４０５は、メモリカード４１６を着脱可能に構成されており、メモリカード４１６に対してデータを書込み、メモリカード４１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００９９】
内部バスコントローラ４１０は、コントローラ４００に搭載されるＩ／Ｏユニット４１１−１，４１１−２，…との間でデータを遣り取りするインターフェイスである。
【０１００】
フィールドバスコントローラ４０９は、ネットワークＮＷ（図１参照）を介した他の装置（たとえば、設定装置１００、画像処理装置２００、およびロボット３００）との間のデータの遣り取りを制御する。
【０１０１】
図１０には、制御装置４０１がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡなど）を用いて実装してもよい。あるいは、コントローラ４００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【０１０２】
［Ｇ．まとめ］
以上のようにして、設定装置１００は、ロボット３００の稼働エリアと当該稼働エリアで実行する画像処理とを対応付けるためのユーザインターフェイス１４０を提供する。ユーザインターフェイス１４０に対する設定処理により、エリア情報１４４Ａにおいて、設定された画像処理を実行するための回路情報がロボット３００の稼働エリア別に対応付けられる。画像処理装置２００は、ロボット３００の現在位置がエリア情報１４４Ａに規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報でＦＰＧＡ２０２の回路構成を再構成する。これにより、画像処理装置２００は、ロボット３００の位置に応じてＦＰＧＡ２０２の回路構成を再構成することができ、ユーザ設定の計測処理がロボット３００の位置に合わせて実行される。
【０１０３】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１０４】
１  画像処理システム、１Ａ，１Ｂ，１Ｃ，２Ａ，２Ｂ，２Ｃ，３Ａ，３Ｂ，３Ｃ  画像処理、１００  設定装置、１０１，２２０，４０１  制御装置、１０２  メモリ、１０３，２２２，４２０  記憶装置、１０３Ａ  アプリケーション、１０４  ネットワークインターフェイス、１０５  表示部、１０６  操作部、１０７  メモリカードリーダ・ライタ、１０７Ａ，４１６  メモリカード、１０８  内部バス、１１０，２２２Ｂ  ライブラリ、１２２  実行データ、１３３，１４４  リスト、１４０  ユーザインターフェイス、１４１  位置表示領域、１４２  一覧、１４３  追加ボタン、１４４Ａ  エリア情報、１４５  ＯＫボタン、２００  画像処理装置、２０１  ＣＰＵ、２０２  ＦＰＧＡ、２０２Ａ，２０２Ｂ，２０２Ｃ，２０２Ｄ  回路領域、２１０  照明部、２１１  照明制御ユニット、２１２  照明レンズ、２２１  処理部、２２２Ａ  本体プログラム、２２３  ネットワーク通信部、２２５  外部入出力部、２３０  撮像部、２３１  撮像レンズ、２３２  撮像素子、２５０  設定部、２５２  取得部、２５４  再構成部、３００  ロボット、４００，４０４  コントローラ、４０２  チップセット、４０３  ローカルネットワークコントローラ、４０５  メモリカードインターフェイス、４０６  主メモリ、４０９  フィールドバスコントローラ、４１０  内部バスコントローラ、４１１  ユニット、４２１  ユーザプログラム、４２２  シーケンスシーケンスプログラム、４２３  モーションプログラム、４２４  制御プログラム。
【図１】
2018128821.tif 000003
【図２】
2018128821.tif 000004
【図３】
2018128821.tif 000005
【図４】
2018128821.tif 000006
【図５】
2018128821.tif 000007
【図６】
2018128821.tif 000008
【図７】
2018128821.tif 000009
【図８】
2018128821.tif 000010
【図９】
2018128821.tif 000011
【図１０】
2018128821.tif 000012
【手続補正書】
【提出日】平成30年4月4日(2018.4.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
また、画像処理装置２００は、リスト１４４に示される各画像処理を実現するための回路情報を取得する。当該回路情報は、たとえば、たとえば、ＦＰＧＡ２０２の回路を構成するための命令コード（プログラム）で表わされる。その後、画像処理装置２００は、各ロボット位置から算出された稼働エリアに回路情報を対応付ける。これにより、エリア情報１４４Ａにおいて、ロボット３００の稼働エリアと、当該稼働エリアで実行される画像処理を実現するための回路情報とが対応付けられる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
制御装置１０１は、記憶装置１０３などに格納されているプログラム（命令コード）をメモリ１０２へ展開した上で実行することで、上述の各種機能を実現する。メモリ１０２および記憶装置１０３は、それぞれ揮発的および不揮発的にデータを格納する。記憶装置１０３は、ＯＳ（Operating System）に加えて、アプリケーション１０３Ａ、および、複数の機能モジュール（画像処理）からなるライブラリ１１０を保持している。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１０４
【補正方法】変更
【補正の内容】
【０１０４】
１  画像処理システム、１Ａ，１Ｂ，１Ｃ，２Ａ，２Ｂ，２Ｃ，３Ａ，３Ｂ，３Ｃ  画像処理、１００  設定装置、１０１，２２０，４０１  制御装置、１０２  メモリ、１０３，２２２，４２０  記憶装置、１０３Ａ  アプリケーション、１０４  ネットワークインターフェイス、１０５  表示部、１０６  操作部、１０７  メモリカードリーダ・ライタ、１０７Ａ，４１６  メモリカード、１０８  内部バス、１１０，２２２Ｂ  ライブラリ、１２２  実行データ、１４４  リスト、１４０  ユーザインターフェイス、１４１  位置表示領域、１４２  一覧、１４３  追加ボタン、１４４Ａ  エリア情報、１４５  ＯＫボタン、２００  画像処理装置、２０１  ＣＰＵ、２０２  ＦＰＧＡ、２０２Ａ，２０２Ｂ，２０２Ｃ，２０２Ｄ  回路領域、２１０  照明部、２１１  照明制御ユニット、２１２  照明レンズ、２２１  処理部、２２２Ａ  本体プログラム、２２３  ネットワーク通信部、２２５  外部入出力部、２３０  撮像部、２３１  撮像レンズ、２３２  撮像素子、２５０  設定部、２５２  取得部、２５４  再構成部、３００  ロボット、４００，４０４  コントローラ、４０２  チップセット、４０３  ローカルネットワークコントローラ、４０５  メモリカードインターフェイス、４０６  主メモリ、４０９  フィールドバスコントローラ、４１０  内部バスコントローラ、４１１  ユニット、４２１  ユーザプログラム、４２２  シーケンスシーケンスプログラム、４２３  モーションプログラム、４２４  制御プログラム。
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2018128821.tif 000013
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2018128821.tif 000014