JP6915288B2 - 画像処理システム、画像処理装置、FPGA(Field Programmable Gate Array)における回路の再構成方法、および、FPGAにおける回路の再構成プログラム - Google Patents

画像処理システム、画像処理装置、FPGA(Field Programmable Gate Array)における回路の再構成方法、および、FPGAにおける回路の再構成プログラム Download PDF

Info

Publication number
JP6915288B2
JP6915288B2 JP2017021058A JP2017021058A JP6915288B2 JP 6915288 B2 JP6915288 B2 JP 6915288B2 JP 2017021058 A JP2017021058 A JP 2017021058A JP 2017021058 A JP2017021058 A JP 2017021058A JP 6915288 B2 JP6915288 B2 JP 6915288B2
Authority
JP
Japan
Prior art keywords
robot
image processing
fpga
circuit
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017021058A
Other languages
English (en)
Other versions
JP2018128821A (ja
Inventor
俊規 玉井
俊規 玉井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2017021058A priority Critical patent/JP6915288B2/ja
Priority to DE102017127025.6A priority patent/DE102017127025B4/de
Priority to US15/820,451 priority patent/US10474124B2/en
Publication of JP2018128821A publication Critical patent/JP2018128821A/ja
Application granted granted Critical
Publication of JP6915288B2 publication Critical patent/JP6915288B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/402Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for positioning, e.g. centring a tool relative to a hole in the workpiece, additional detection means to correct position
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31081Detect position robot, agv relative to machine to start communication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39064Learn kinematics by ann mapping, map spatial directions to joint rotations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40499Reinforcement learning algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Image Processing (AREA)

Description

本開示は、ワークの計測過程においてFPGAの回路構成を再構成するための技術に関するものである。
FA(Factory Automation)分野において、ワークに対して所定の作業を行うロボットが普及している。このようなロボットの制御に関し、特開2003−211382号公報(特許文献1)は、「カメラの撮影画像データに基づいて、ロボットアームの位置姿勢の視覚フィードバック制御(いわゆるビジュアルサーボ)を行うようにした」ロボット制御装置を開示している。
ロボットが行う作業の一例として、ロボットは、ばら積みされているワークをピックアップし、そのワークを他のワークに取り付ける作業を行う。その作業の過程で、ワークの位置検知処理やワークの検査処理などの計測処理が行われる。ワークの計測処理は、ワークを撮影して得られた画像に対して種々の画像処理が実行されることによって実現される。
特開2003−211382号公報
ワークの計測処理において実行される画像処理は、たとえば、CPU(Central Processing Unit)やFPGAによって実行される。典型的には、FPGAの処理速度はCPUの処理速度よりも速いため、処理速度が望まれる画像処理は、FPGAによって実行される。
しかしながら、FPGA内部の回路サイズが小さい場合には、実現可能な画像処理が限られる。一方で、ロボットによるワークの作業過程では、種々の画像処理が実行される。したがって、回路サイズが小さいFPGAであってもロボットの作業過程に合わせて種々の画像処理を実行するための技術が望まれている。
ある局面に従うと、画像処理システムは、ワークに対して所定の作業を行うためのロボットと、上記ワークを撮影するための撮影部と、上記ロボットの位置を取得するための取得部と、内部の回路構成を再構成できるように構成されているFPGAと、上記FPGAの回路構成を規定する情報であって上記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、上記取得部によって順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記FPGAの回路構成を再構成するための再構成部とを備える。
好ましくは、上記画像処理システムは、上記エリア情報を設定するためのユーザインターフェイスを提供するための設定部をさらに備える。上記ユーザインターフェイスは、予めインストールされている1つ以上の画像処理の内から1つ以上の画像処理を選択する選択操作を受け付けるように構成されており、上記選択操作によって選択された画像処理と、上記ロボットの現在位置を含む稼働エリアとを上記エリア情報に登録するための登録操作を受け付けるように構成されている。
好ましくは、上記画像処理システムは、上記ロボットを駆動するための駆動操作を受け付けるための操作部をさらに備える。上記ユーザインターフェイスは、上記駆動操作によって上記ロボットの位置が指定された上で上記登録操作を受け付けるように構成されている。
好ましくは、上記ユーザインターフェイスは、上記駆動操作による上記ロボットの駆動に連動して上記ロボットの現在位置を表示する。
好ましくは、上記FPGAは、上記撮影部から画像を取得したことに基づいて、当該画像に対して現在の回路構成に従った画像処理を実行する。
他の局面に従うと、ワークに対して所定の作業を行うためのロボットと通信可能に構成されている画像処理装置は、上記ワークを撮影するための撮影部と、上記ロボットの位置を取得するための取得部と、内部の回路構成を再構成できるように構成されているFPGAと、上記FPGAの回路構成を規定する情報であって上記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、上記取得部によって順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記FPGAの回路構成を再構成するための再構成部とを備える。
他の局面に従うと、FPGAにおける回路の再構成方法は、ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、上記FPGAの回路構成を規定する情報であって上記ワークを撮影して得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、上記取得するステップにおいて順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記FPGAの回路構成を再構成するステップとを備える。
他の局面に従うと、FPGAにおける回路の再構成プログラムは、コンピュータに、ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、上記FPGAの回路構成を規定する情報であって上記ワークを撮影して得られた画像に対して所定の画像処理を実現するための回路情報を、上記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、上記取得するステップにおいて順次取得される上記ロボットの位置が上記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で上記FPGAの回路構成を再構成するステップとを実行させる。
ある局面において、回路サイズが小さいFPGAであってもロボットの作業過程に合わせて種々の画像処理を実行することができる。
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
実施の形態に従う画像処理システムのシステム構成の一例を示す図である。 実施の形態に従うロボットの作業過程の一例を示す図である。 実施の形態に従う設定装置と画像処理装置とロボットとコントローラとの間のデータの流れを示すシーケンス図である。 実施の形態に従うロボットの位置と当該位置で実行する画像処理とを対応付けるためのユーザインターフェイスを示す図である。 エリア情報の一例を示す図である。 実施の形態に従う画像処理装置の機能構成の一例を示す図である。 実施の形態に従う画像処理装置による計測処理を表わすフローチャートである。 実施の形態に従う設定装置の主要なハードウェア構成を示すブロック図である。 実施の形態に従う画像処理装置の主要なハードウェア構成を示すブロック図である。 実施の形態に従うコントローラの主要なハードウェア構成を示すブロック図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
[A.システム構成]
図1を参照して、本実施の形態に従う画像処理システム1の概要について説明する。図1は、本実施の形態に従う画像処理システム1のシステム構成の一例を示す図である。
画像処理システム1は、たとえば、生産ラインなどに組み込まれ、トレーなどにばら積みされた製品または半製品であるワークW1を1個ずつピックアップし、ワークW2に取り付けるような処理を行う。なお、図1には、理解を容易にするため、トレー内に少数のワークW1のみが存在する場合を図示するが、多数のワークW1が重なった状態で配置されていてもよい。
画像処理システム1は、たとえば、設定装置100と、ワークW1,W2を撮影するための画像処理装置200と、ワークW1,W2に対して所定の作業を行うためのロボット300と、ロボット300を制御するためのコントローラ400とで構成されている。
設定装置100、画像処理装置200、ロボット300、およびコントローラ400は、ネットワークNWにされ、互いに通信可能に構成されている。ネットワークNWは、たとえば、フィールドネットワークである。一例として、ネットワークNWには、EtherCAT(登録商標)やEtherNET(登録商標)などが採用される。
設定装置100は、画像処理装置200の設定を行うための情報処理端末であり、たとえば、PC(Personal Computer)、タブレット端末、または、スマートフォンなどである。設定装置100は、任意の画像処理を組み合わせることで任意の計測処理を設計することができるユーザインターフェイスを提供する。当該ユーザインターフェイスは、予めインストールされているライブラリから1つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付ける。画像処理の実行順序は、たとえば、選択対象の画像処理の並び順によって指定される。設計者は、画像処理の選択操作と実行順序の指定操作とを繰り返すことで任意の計測処理を設計することができる。以下では、ユーザによって組み合わされた一連の画像処理を「ユーザ設定の計測処理」ともいう。画像処理装置200は、コンパイル指示(あるいは、ビルド指示)を受け付けたことに基づいて、ユーザ設定の計測処理を画像処理装置200で実行可能な形式に変換し、実行データを生成する。生成された実行データは、画像処理装置200に送信される。
画像処理装置200は、設定装置100から実行データを受信したことに基づいて、当該実行データを記憶する。その後、画像処理装置200は、ワークW1,W2の計測処理を実行するタイミングが到来したことに基づいて、実行データを読み込み、ユーザ設定の計測処理を実現する。ユーザ設定の計測処理としてワークの検知処理が設定されている場合には、画像処理装置200は、カメラ(撮影部)から得られた画像からワークを検知し、検知したカメラ座標系のワーク位置をコントローラ400に送信する。
コントローラ400は、ロボット300を制御するための制御装置であり、たとえば、PLC(Programmable Logic Controller)である。あるいは、コントローラ400は、産業用のコンピュータ(所謂IPC:Industrial Personal Computer)であってもよい。コントローラ400は、画像処理装置200によって検知されたカメラ座標系のワーク位置を予め定められた変換式に従ってワールド座標系の座標値に変換する。コントローラ400は、変換後の座標値にロボット300のアームを移動し、ワークW1のピックアップ命令を出力する。
なお、図1の例では、画像処理システム1が1つの設定装置100で構成されている例が示されているが、画像処理システム1は、複数の設定装置100で構成されてもよい。図1の例では、画像処理システム1が1つの画像処理装置200で構成されている例が示されているが、画像処理システム1は、複数の画像処理装置200で構成されてもよい。図1の例では、画像処理システム1が1つのロボット300で構成されている例が示されているが、画像処理システム1は、複数のロボット300で構成されてもよい。図1の例では、画像処理システム1が1つのコントローラ400で構成されている例が示されているが、画像処理システム1は、複数のコントローラ400で構成されてもよい。
また、図1の例では、画像処理装置200およびロボット300が一体的に構成されている例が示されているが、画像処理装置200およびロボット300が別個に構成されてもよい。すなわち、画像処理装置200は、ロボット300上に設けられてもよいし、ロボット300とは異なる位置に設けられてもよい。
[B.FPGAの再構成処理]
画像処理装置200は、CPUやFPGAなどの複数種類の制御装置で構成される。FPGAの処理速度は、典型的には、CPUの処理速度よりも速い。FPGAの中には、処理の実行中に回路構成を動的に再構成する機能(所謂PR:Partial Reconfiguration)を有するものがある。FPGAの回路が適宜再構成されることで、FPGAの回路規模を仮想的に拡張することができる。本実施の形態に従う画像処理システム1は、ロボット300の位置に合わせてFPGAの回路構成を再構成する。
一例として、ロボット300の稼働エリアとFPGAの回路構成に関する回路情報との対応関係が予めエリア情報として規定されている。エリア情報の詳細については後述する。エリア情報に規定される稼働エリアは、ワークの計測処理の過程でロボット300のアーム部分が通過する可能性のある領域に相当する。画像処理装置200は、コントローラ400からロボット300の位置を定期的に取得し、当該位置がエリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報でFPGAの回路構成を再構成する。これにより、画像処理装置200は、FPGAの回路サイズが小さい場合であってもロボット300の作業過程に合わせて種々の画像処理を実行することができる。
以下では、図2を参照して、FPGAの再構成処理の具体例について説明する。図2は、ロボット300の作業過程の一例を示す図である。
画像処理装置200は、たとえば、FPGA202を含む。FPGA202は、再構成可能な回路領域202A〜202Dを有する。
図2の例では、ワークW1のピックアップ処理(ステップS1)、ワークW1の移動処理(ステップS2)、およびワークW2へのワークW1の取り付け処理(ステップS3)が時系列に示されている。ステップS1〜S3に示される処理が繰り返されることで、ワークW1,W2の組み立て作業が実現される。
より具体的には、ステップS1において、画像処理装置200は、コントローラ400からロボット300の位置を定期的に取得する。画像処理装置200は、ロボット300の現在位置に基づいて、FPGA202の回路構成を再構成するか否かを判断する。FPGA202の回路構成を再構成するか否かは、たとえば、後述のエリア情報144Aに基づいて判断される。詳細については後述するが、エリア情報144Aにおいて、ロボット300の稼働エリアと実行対象の画像処理との関係が規定されている。画像処理装置200は、ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したか否かを判断する。ここでいう「属した」とは、ロボット300の現在位置がエリア情報144Aに規定されている稼働エリア内に含まれたことを意味する。ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したと判断した場合、当該稼働エリアに対応付けられている回路情報でFPGA202の回路構成を再構成する。ステップS1の例では、回路領域202Aは、画像処理1Aを実現するための回路構成に書き換えられる。回路領域202Bは、画像処理1Bを実現するための回路構成に書き換えられる。回路領域202Cは、画像処理1Cを実現するための回路構成に書き換えられる。
ステップS1のピッキング処理においてワークW1を正確にピッキングするためには、ワークW1の位置が正確に検知される必要がある。そのため、典型的には、画像処理1A〜1Cのいずれかは、画像の高画質化を実現するための処理を含む。一例として、当該処理は、HDR(High Dynamic Range)合成である。HDR合成は、光沢のあるワークを撮影した場合などハレーションが生じるケースにおいて有効に働く。画像処理装置200は、撮影部(カメラ)から得られた複数の画像をHDR合成することでHDR画像を生成する。その後、画像処理装置200は、生成されたHDR画像からワークW1を検知する。ワークW1の検知処理には、たとえば、テンプレートマッチングなどの既存の画像処理技術が採用される。画像処理装置200は、画像内のワークW1の位置をコントローラ400に送信する。
コントローラ400は、予め定められた変換式に従って、カメラ座標系の座標値をワールド座標系の座標値に変換する。コントローラ400は、変換後の座標値に従ってロボット300に制御命令を出力し、ワークW1のピックアップ処理を実現する。
ステップS2において、ロボット300は、ワークW1の移動作業を実行する。この過程において、画像処理装置200は、ロボット300の現在位置を引き続き取得し、ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したか否かを判断する。ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したと判断した場合、画像処理装置200は、当該稼働エリアに対応付けられている回路情報でFPGA202の回路構成を再構成する。ステップS2の例では、回路領域202Aは、画像処理2Aを実現するための回路構成に書き換えられる。回路領域202Bは、画像処理2Bを実現するための回路構成に書き換えられる。回路領域202Cは、画像処理2Cを実現するための回路構成に書き換えられる。
通常、ワークW1の移動時には、画質は重要視されない。そのため、画像処理装置200は、通常の撮影処理を実行する。すなわち、画像処理装置200は、HDR合成などの高画質化処理は行わない。
ステップS3において、ロボット300は、ワークW1をワークW2に取り付けた上で、ワークW1,W2を検査する。この過程において、画像処理装置200は、ロボット300の現在位置を引き続き取得し、ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したか否かを判断する。ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したと判断した場合、画像処理装置200は、当該稼働エリアに対応付けられている回路情報でFPGA202の回路構成を再構成する。ステップS3の例では、回路領域202Aは、画像処理3Aを実現するための回路構成に書き換えられる。回路領域202Bは、画像処理3Bを実現するための回路構成に書き換えられる。回路領域202Cは、画像処理3Cを実現するための回路構成に書き換えられる。
典型的には、画像処理3A〜3Cのいずれかは、立体画像を生成するための画像処理(たとえば、照度差ステレオ法)を含む。画像処理装置200は、照度差ステレオ法により得られた三次元画像に基づいて、ワークW1,W2の検査を実行する。たとえば、ワークW1の取り付け位置、ワークW1,W2のキズの有無などが検査される。検査結果は、たとえば、画像処理装置200に備えられる図示しない表示機器(たとえば、HMI:Human Machine Interface)に表示される。
[C.画像処理システム1のデータフロー]
図3を参照して、画像処理システム1におけるデータの流れについて説明する。図3は、設定装置100と画像処理装置200とロボット300とコントローラ400との間のデータの流れを示すシーケンス図である。
ユーザは、ワークの計測処理の実行に先立って、ロボット300の駆動エリアと当該駆動エリアにおける実行対象の画像処理とを対応付ける設定処理(以下、「ティーチング処理」ともいう。)を行う。その後、画像処理システム1は、ティーチング処理結果に従ってワークの計測処理を実行する。
以下では、ティーチング処理と、ワークの計測処理とについて順に説明する。
(C1.ティーチング処理)
ステップS10において、ユーザは、ロボット300の位置を指定するための駆動操作を行う。当該駆動操作は、ロボット300を操作するための操作部に対して行われる。一例として、当該操作部には、ロボット300専用の操作端末が用いられてもよいし、設定装置100に接続されるキーボードやマウスなどが用いられてもよい。
ステップS12において、コントローラ400は、ロボット300の駆動操作に応じて制御命令を生成し、当該制御命令をロボット300に出力する。これにより、ロボット300は、ユーザによる駆動操作に従って移動する。
ステップS20において、ユーザは、設定装置100に対して画像処理の選択操作をロボット300の現在位置に対応付けるための操作を行う。この操作は、たとえば、図4に示されるユーザインターフェイス140に対して行われる。図4は、ロボット300の位置と当該位置で実行する画像処理とを対応付けるためのユーザインターフェイス140を示す図である。ユーザインターフェイス140は、たとえば、設定装置100の表示部105に表示される。
ユーザインターフェイス140は、ロボット300の現在位置を表示するための位置表示領域141を含む。典型的には、当該現在位置は、ロボット300のアーム位置に相当する。ロボット300の現在位置は、ロボット300を駆動するモータの回転角度で表わされてもよいし、三次元の座標値で表わされてもよい。位置表示領域141に表示されるロボット300の現在位置は、ロボット300の駆動に連動して更新される。これにより、ユーザは、ロボットの位置を正確に把握することができる。好ましくは、ユーザインターフェイス140は、ロボット300を表わす画像を表示し、ロボット300の姿勢に合わせて当該画像を更新してもよい。これにより、ユーザは、ロボット300の姿勢を直感的に理解することができる。この効果は、特に、ユーザがロボット300を直接確認できない場合に顕著となる。
ユーザインターフェイス140は、画像処理装置200に予めインストールされている画像処理の一覧142を表示する。また、ユーザインターフェイス140は、一覧142に示される1つ以上の画像処理の内から1つ以上の画像処理を選択する選択操作を受け付けるように構成されている。すなわち、ユーザは、一覧142から1つ以上の画像処理項目を選択することができる。ユーザは、一覧142から画像処理項目を選択した上で追加ボタン143を押下すると、ロボット300の現在位置と選択された画像処理項目とがリスト144において対応付けられる。このように、ユーザインターフェイス140は、ロボット300の位置が指定された上で登録操作(たとえば、追加ボタン143の押下など)を受け付けるように構成されている。図4(A)の例では、登録操作により、ロボット位置(θx1、θy1、θz1)と画像処理「通常撮影」が対応付けられている。
ユーザは、ロボット300の位置の指定操作と、画像処理の選択操作とを繰り返す。その結果、図4(B)の例では、ロボット位置(θx2、θy2、θz2)と画像処理「HDR合成」とがさらに対応付けられている。
ステップS30において、ユーザは、OKボタン145を押下したとする。ステップS32において、設定装置100は、OKボタン145に対する押下操作に基づいて、図5に示されるエリア情報144Aを生成する。図5は、エリア情報144Aの一例を示す図である。
エリア情報144Aは、ユーザインターフェイス140のリスト144において対応付けられたロボット位置と画像処理との関係に基づいて生成される。より具体的には、設定装置100は、リスト144に登録された各ロボット位置からロボット300の稼働エリアを算出する。登録されているロボット位置から稼働エリアへの変換は、予め定められた変換式に基づいて行われる。典型的には、当該稼働エリアは、登録されたロボット位置を含む近傍領域に相当し、登録されたロボット位置から所定距離内の領域に相当する。この場合、稼働エリアは、球状となる。なお、稼働エリアは、球状である必要はなく、直方体などのその他の形状であってもよい。
また、画像処理装置200は、リスト144に示される各画像処理を実現するための回路情報を取得する。当該回路情報は、たとえば、たとえば、FPGA202の回路を構成するための命令コード(プログラム)で表わされる。その後、画像処理装置200は、各ロボット位置から算出された稼働エリアに回路情報を対応付ける。これにより、エリア情報144Aにおいて、ロボット300の稼働エリアと、当該稼働エリアで実行される画像処理を実現するための回路情報とが対応付けられる。
ステップS32において、設定装置100は、生成したエリア情報144Aを画像処理装置200に送信する。ステップS34において、画像処理装置200は、設定装置100から受信したエリア情報144Aを記憶する。
このように、ユーザインターフェイス140は、ユーザによって選択された画像処理と、ロボット300の現在位置を含む稼働エリアとをエリア情報144Aに登録するための登録操作を受け付けるように構成されている。このようなユーザインターフェイス140が提供されることで、ユーザは、ロボットの稼働エリアと当該稼働エリアにおいて実行する画像処理とを容易に対応付けることができる。
(C2.計測処理)
引き続き図3を参照して、設定装置100によるワークの計測処理について説明する。
ステップS40において、コントローラ400は、ワークの計測指示を受け付けたとする。ワークの計測指示は、たとえば、画像処理装置200から画像が得られる度に発せられる。あるいは、ワークの計測指示は、予め定められた間隔ごとに発せられる。
ステップS50において、コントローラ400は、ロボット300の現在位置を画像処理装置200に送信する。ロボット300の現在位置は、ロボット300を駆動するモータの回転角度で表わされてもよいし、三次元の座標値で表わされてもよい。
ステップS52において、画像処理装置200は、ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したか否かを判断する。画像処理装置200は、ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したと判断した場合、当該稼働エリアに対応付けられている回路情報に従ってFPGA202の回路素子を結線し直し、回路構成を再構成する。そうでない場合には、FPGA202の再構成を実行しない。
ステップS54において、画像処理装置200は、FPGA202の回路構成に従った画像処理を実行する。一例として、当該画像処理の実行指示は、画像処理装置200の撮影部から画像を取得する度に発せられる。実行される画像処理の一例として、画像処理装置200は、ワーク検知を実現するための画像処理(たとえば、テンプレートマッチングなど)を実行する。
ステップS56において、画像処理装置200は、検知したワーク位置をコントローラ400に送信する。当該ワーク位置は、たとえば、カメラ座標系で表わされる。
ステップS58において、コントローラ400は、予め定められた変換式に従って、カメラ座標系のワーク位置をワールド座標系の座標値に変換する。コントローラ400は、変換後の座標値に従ってロボット300に制御命令を出力し、ワークのピックアップ処理などを実現する。
ステップS50〜S58の処理が繰り返されることで、ロボット300の位置に応じてFPGA202の回路構成が再構成される。
[D.設定装置100の機能構成]
図6を参照して、画像処理装置200の機能について説明する。図6は、画像処理装置200の機能構成の一例を示す図である。
図6に示されるように、画像処理装置200は、主要なハードウェア構成として、CPU201と、FPGA202と、記憶装置222とを含む。CPU201は、機能構成として、設定部250と、取得部252と、再構成部254とを含む。
設定部250は、上述のユーザインターフェイス140(図4参照)を提供する。ユーザインターフェイス140は、予めインストールされている複数の画像処理の内から1つ以上の画像処理を選択するための選択操作を受け付けるように構成されている。また、ユーザインターフェイス140は、選択された画像処理と、ロボット300の現在位置を含む稼働エリアとを上述のエリア情報144Aに登録するための登録操作を受け付けるように構成されている。
取得部252は、ロボット300の現在位置をコントローラ400から取得する。典型的には、コントローラ400から受信するロボット300の位置情報は、コントローラ400がロボット300の駆動時に出力する目標位置に相当する。すなわち、コントローラ400は、ロボット300の駆動先として指定する位置をロボット300の現在位置として画像処理装置200の取得部252に送信する。
ロボット300の現在位置は、定期的に取得される。典型的には、ロボット300の現在位置は、コントローラ400から一定の通信間隔で送信される。あるいは、ロボット300の現在位置は、取得部252からの取得要求に応じてコントローラ400から送信される。取得部252は、ロボット300の現在位置を取得する度に当該現在位置を再構成部254に出力する。
なお、取得部252は、上記とは異なる方法で、ロボット300の現在位置を取得してもよい。たとえば、ロボット300にGPS(Global Positioning System)ユニットが設けられており、取得部252は、当該GPSユニットからロボット300の位置情報を取得するように構成されていてもよい。
再構成部254は、取得部252によって順次取得されるロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報でFPGA202の回路構成を再構成する。これにより、再構成部254は、ロボット300の状態に合わせてFPGA202の回路構成を再構成することができる。
なお、再構成部254は、ロボット300の位置情報ではなく、その他の情報に基づいてFPGA202を再構成してもよい。一例として、再構成部254は、時間情報に基づいてFPGA202を再構成してもよい。より具体的には、画像処理装置200およびコントローラ400は、それぞれ、時刻が同期されたタイマーを有する。コントローラ400は、当該タイマーの時間情報に従ってロボット300を駆動する。すなわち、タイマーによって示される時間情報は、ロボット300の位置に相互に関係する。このように、当該タイマーの時間情報は、間接的にはロボット300の位置を示すので、タイマーの時間情報に基づいてFPGA202の回路構成を再構成することは、ロボット300の位置情報に基づいてFPGA202の回路構成を再構成することと同義である。
[E.画像処理装置200の制御構造]
図7を参照して、画像処理装置200の制御構造について説明する。図7は、画像処理装置200による計測処理を表わすフローチャートである。図7の処理は、画像処理装置200のCPU201(図6参照)がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、FPGA202(図6参照)、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、CPU201は、上述の取得部252(図6参照)として、ロボット300の現在位置をコントローラ400から取得する。
ステップS120において、CPU201は、ステップS110で取得したロボット300の現在位置が上述のエリア情報144A(図5参照)に規定されている稼働エリアのいずれかに属したか否かを判断する。一例として、エリア情報144Aに規定される稼働エリアが中心点および半径で規定されている場合(すなわち、稼働エリアが球状である場合)、ロボット300の現在位置と当該中心点との間の距離が当該半径よりも短いときに、ロボット300の現在位置が当該稼働エリアに属すると判断する。CPU201は、ステップS110で取得したロボット300の現在位置が上述のエリア情報144Aに規定されている稼働エリアのいずれかに属したと判断した場合(ステップS120においてYES)、制御をステップS122に切り替える。そうでない場合には(ステップS120においてNO)、CPU201は、制御をステップS130に切り替える。
ステップS122において、CPU201は、ロボット300の現在位置が属する稼働エリアに対応付けられている回路情報をエリア情報144Aにおいて特定する。当該回路情報は、たとえば、たとえば、FPGA202の回路を構成するための命令コード(プログラム)で表わされており、CPU201は、当該命令コードに従ってFPGA202の回路構成を再構成する。
ステップS130において、CPU201は、ワークの計測処理を実行する指示を受け付けたか否かを判断する。当該指示は、たとえば、画像処理装置200の撮影部(カメラ)が画像を撮影する度に発せられる。CPU201は、ワークの計測処理を実行する指示を受け付けたと判断した場合(ステップS130においてYES)、制御をステップS132に切り替える。そうでない場合には(ステップS130においてNO)、CPU201は、制御をステップS110に戻す。
ステップS132において、CPU201は、現在の回路構成に従った画像処理を実行する。これにより、ワークの計測処理が実現される。
[F.ハードウェア構成]
図8〜図10を参照して、画像処理システム1を構成するそれぞれの装置のハードウェア構成について説明する。図8は、画像処理システム1を構成する設定装置100の主要なハードウェア構成を示すブロック図である。図9は、画像処理システム1を構成する画像処理装置200の主要なハードウェア構成を示すブロック図である。図10は、画像処理システム1を構成するコントローラ400の主要なハードウェア構成を示すブロック図である。
(F1:設定装置100)
設定装置100は、たとえば、汎用のコンピュータで実現される。設定装置100を実現するコンピュータは、制御装置101と、メモリ102と、HDD(Hard Disk Drive)などの記憶装置103と、ネットワークインターフェイス(I/F)104と、表示部105と、操作部106と、メモリカードリーダ・ライタ107とを含む。これらの各部は、内部バス108を介して、互いに通信可能に接続されている。
制御装置101は、記憶装置103などに格納されているプログラム(命令コード)をメモリ102へ展開した上で実行することで、上述の各種機能を実現する。メモリ102および記憶装置103は、それぞれ揮発的および不揮発的にデータを格納する。記憶装置103は、OS(Operating System)に加えて、アプリケーション103A、および、複数の機能モジュール(画像処理からなるライブラリ110を保持している。
アプリケーション103Aは、上述のユーザインターフェイス140(図4参照)を提供する基本プログラムである。ライブラリ110は、ユーザ操作に応じてその全部または一部が画像処理装置200へ送信される。すなわち、画像処理装置200の記憶装置222に格納されるライブラリ222B(図9参照)は、設定装置100の記憶装置103に格納されるライブラリ110の少なくとも部分集合である。
ネットワークインターフェイス104は、ネットワークNW(図1参照)を介して、設定装置100と画像処理装置200との間でデータを遣り取りする。
表示部105は、制御装置101がアプリケーション103Aを実行することで実現される設定操作画面(たとえば、ユーザインターフェイス140)などを表示する。表示部105は、LCD(Liquid Crystal Display)といったディスプレイなどからなる。
操作部106は、ユーザ操作を受け付け、その受け付けた操作を示す内部指令を制御装置101などへ出力する。操作部106は、典型的には、キーボード、マウス、タッチパネル、タブレット、音声認識装置などからなる。ユーザは、たとえば、操作部106を操作することによりロボット300の位置を指定する。
メモリカードリーダ・ライタ107は、メモリカード107Aからデータを読み出し、およびメモリカード107Aへデータを書き込む。メモリカード107Aとしては、SD(Secure Digital)カードなどの公知の記録媒体を採用できる。
(F2:画像処理装置200)
次に、図9を参照して、画像処理装置200の装置構成について説明する。画像処理装置200は、照明部210と、制御装置220と、撮像部230とを含む。
照明部210は、検査対象であるワークWに撮像に必要な光を照射する。つまり、照明部210は、撮像部230の撮像範囲に光を照射する。より具体的には、照明部210は、照明基板上に設けられる複数の照明制御ユニット211を含む。これらのユニットは、照明基板上に配置される。照明制御ユニット211の各々は、照明レンズ212と、LED213とを含む。照明制御ユニット211は、制御装置220からの指令に従って、光を照射する。より具体的には、LED213で発生した光は、照明レンズ212を通じてワークWへ照射される。
撮像部230は、照明部210が照射した光の反射光を受けて、画像信号を出力する。この画像信号は、制御装置220へ送られる。より具体的には、撮像部230は、撮像レンズ231などの光学系に加えて、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどの複数の画素に区画された撮像素子232を含む。
制御装置220は、画像処理装置200の全体を制御する。すなわち、制御装置220は、照明部210および撮像部230を制御するとともに、撮像部230からの画像信号に基づいて画像処理を行う。より具体的には、制御装置220は、処理部221と、記憶装置222と、ネットワーク通信部223と、外部入出力部225とを含む。
処理部221は、CPU201やFPGA202といった集積回路によって構成される。あるいは、処理部221は、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、その他の集積回路によって構成されてもよい。
記憶装置222は、ROM(Read Only Memory)、フラッシュメモリ、HDD、およびSSD(Static Silicon Disk)といった不揮発性記憶装置、および/または、RAM(Random Access Memory)などの不揮発メモリを含む。典型的に、処理部221が記憶装置222に格納されたプログラム(命令コード)やモジュールなどを実行することで、各種画像処理を実現する。
このようなプログラム(命令コード)やモジュールなどは、記憶装置222のうち不揮発性メモリに格納され、不揮発性メモリから読み出されたプログラム、プログラムの実行に必要なワークデータ、撮像部230によって取得された画像データ、および計測結果を示すデータなどは、記憶装置222のうち揮発性メモリに格納される。
より具体的には、記憶装置222は、ユーザ設定の計測処理を実現するための実行データ122と、上述のエリア情報144A(図5参照)と、本体プログラム222Aと、種々の機能モジュール(画像処理)を含むライブラリ222Bとを含む。
本体プログラム222Aは、画像処理装置200の基本的な動作を実現するための基本プログラムであり、OSおよび基本的なアプリケーションを含み得る。ライブラリ222Bは、画像処理装置200が提供する画像処理機能を実現するための複数のプログラム(典型的には、命令コードおよび/またはライブラリ)からなる。画像処理装置200で実行可能な画像処理機能に応じた数だけインストールされる。上述のように、ライブラリ222Bは、設定装置100の記憶装置103に格納されるライブラリ110の少なくとも部分集合である。
ネットワーク通信部223は、ネットワークNWを介して、設定装置100などとデータを遣り取りするためのインターフェイスである。より具体的には、ネットワーク通信部223には、Ethernetなどに従う構成が採用される。外部入出力部225は、コントローラ400との間で各種データ(入力データおよび/または出力データ)を遣り取りするためのインターフェイスである。
(F3:コントローラ400)
次に、図10を参照して、コントローラ400の装置構成について説明する。
コントローラ400は、CPUやMPUなどの制御装置401と、チップセット402と、主メモリ406と、記憶装置420と、ローカルネットワークコントローラ403と、USB(Universal Serial Bus)コントローラ404と、メモリカードインターフェイス405と、内部バスコントローラ410と、フィールドバスコントローラ409と、I/Oユニット411−1,411−2,…とを含む。
制御装置401は、記憶装置420に格納された各種プログラムを読み出して、主メモリ406に展開して実行することで、制御対象に応じた制御、および、本実施の形態に従う処理などを実現する。チップセット402は、制御装置401と各コンポーネントを制御することで、コントローラ400全体としての処理を実現する。
記憶装置420は、たとえば、二次記憶装置である。記憶装置420には、PLCエンジンを実現するためのシステムプログラムに加えて、PLCエンジンを利用して実行されるユーザプログラム421などが格納される。ユーザプログラム421は、論理的な演算を主とするシーケンスシーケンスプログラム422、位置制御や速度制御などの数値的な演算を主とするモーションプログラム423、コントローラ400の制御プログラム424などを含む。
ローカルネットワークコントローラ403は、ローカルネットワークを介した他の装置(たとえば、サーバーなど)との間のデータの遣り取りを制御する。USBコントローラ404は、USB接続を介して他の装置(たとえば、PC(Personal Computer)など)との間のデータの遣り取りを制御する。
メモリカードインターフェイス405は、メモリカード416を着脱可能に構成されており、メモリカード416に対してデータを書込み、メモリカード416から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
内部バスコントローラ410は、コントローラ400に搭載されるI/Oユニット411−1,411−2,…との間でデータを遣り取りするインターフェイスである。
フィールドバスコントローラ409は、ネットワークNW(図1参照)を介した他の装置(たとえば、設定装置100、画像処理装置200、およびロボット300)との間のデータの遣り取りを制御する。
図10には、制御装置401がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGAなど)を用いて実装してもよい。あるいは、コントローラ400の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
[G.まとめ]
以上のようにして、設定装置100は、ロボット300の稼働エリアと当該稼働エリアで実行する画像処理とを対応付けるためのユーザインターフェイス140を提供する。ユーザインターフェイス140に対する設定処理により、エリア情報144Aにおいて、設定された画像処理を実行するための回路情報がロボット300の稼働エリア別に対応付けられる。画像処理装置200は、ロボット300の現在位置がエリア情報144Aに規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報でFPGA202の回路構成を再構成する。これにより、画像処理装置200は、ロボット300の位置に応じてFPGA202の回路構成を再構成することができ、ユーザ設定の計測処理がロボット300の位置に合わせて実行される。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 画像処理システム、1A,1B,1C,2A,2B,2C,3A,3B,3C 画像処理、100 設定装置、101,220,401 制御装置、102 メモリ、103,222,420 記憶装置、103A アプリケーション、104 ネットワークインターフェイス、105 表示部、106 操作部、107 メモリカードリーダ・ライタ、107A,416 メモリカード、108 内部バス、110,222B ライブラリ、122 実行データ、144 リスト、140 ユーザインターフェイス、141 位置表示領域、142 一覧、143 追加ボタン、144A エリア情報、145 OKボタン、200 画像処理装置、201 CPU、202 FPGA、202A,202B,202C,202D 回路領域、210 照明部、211 照明制御ユニット、212 照明レンズ、221 処理部、222A 本体プログラム、223 ネットワーク通信部、225 外部入出力部、230 撮像部、231 撮像レンズ、232 撮像素子、250 設定部、252 取得部、254 再構成部、300 ロボット、400,404 コントローラ、402 チップセット、403 ローカルネットワークコントローラ、405 メモリカードインターフェイス、406 主メモリ、409 フィールドバスコントローラ、410 内部バスコントローラ、411 ユニット、421 ユーザプログラム、422 シーケンスシーケンスプログラム、423 モーションプログラム、424 制御プログラム。

Claims (8)

  1. ワークに対して所定の作業を行うためのロボットと、
    前記ロボットに固定されており、前記ワークを撮影するための撮影部と、
    前記ロボットの位置を取得するための取得部と、
    内部の回路構成を再構成できるように構成されているFPGA(Field Programmable Gate Array)と、
    前記FPGAの回路構成を規定する情報であって前記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、
    前記取得部によって順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記FPGAの回路構成を再構成するための再構成部とを備える、画像処理システム。
  2. 前記画像処理システムは、前記エリア情報を設定するためのユーザインターフェイスを提供するための設定部をさらに備え、
    前記ユーザインターフェイスは、
    予めインストールされている1つ以上の画像処理の内から1つ以上の画像処理を選択する選択操作を受け付けるように構成されており、
    前記選択操作によって選択された画像処理と、前記ロボットの現在位置を含む稼働エリアとを前記エリア情報に登録するための登録操作を受け付けるように構成されている、請求項1に記載の画像処理システム。
  3. 前記画像処理システムは、前記ロボットを駆動するための駆動操作を受け付けるための操作部をさらに備え、
    前記ユーザインターフェイスは、前記駆動操作によって前記ロボットの位置が指定された上で前記登録操作を受け付けるように構成されている、請求項2に記載の画像処理システム。
  4. 前記ユーザインターフェイスは、前記駆動操作による前記ロボットの駆動に連動して前記ロボットの現在位置を表示する、請求項3に記載の画像処理システム。
  5. 前記FPGAは、前記撮影部から画像を取得したことに基づいて、当該画像に対して現在の回路構成に従った画像処理を実行する、請求項1〜4のいずれか1項に記載の画像処理システム。
  6. ワークに対して所定の作業を行うためのロボットと通信可能に構成されている画像処理装置であって、
    前記ロボットに固定されており、前記ワークを撮影するための撮影部と、
    前記ロボットの位置を取得するための取得部と、
    内部の回路構成を再構成できるように構成されているFPGAと、
    前記FPGAの回路構成を規定する情報であって前記撮影部から得られた画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を格納するための記憶部と、
    前記取得部によって順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記FPGAの回路構成を再構成するための再構成部とを備える、画像処理装置。
  7. FPGAにおける回路の再構成方法であって、
    前記再構成方法は、
    ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、
    前記ロボットに固定されている撮像部に前記ワークを撮影させ画像を取得するステップと、
    前記FPGAの回路構成を規定する情報であって前記画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、
    前記取得するステップにおいて順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記FPGAの回路構成を再構成するステップとを備える、回路の再構成方法。
  8. FPGAにおける回路の再構成プログラムであって、
    前記再構成プログラムは、コンピュータに、
    ワークに対して所定の作業を行うためのロボットの位置を取得するステップと、
    前記ロボットに固定されている撮像部に前記ワークを撮影させ画像を取得するステップと、
    前記FPGAの回路構成を規定する情報であって前記画像に対して所定の画像処理を実現するための回路情報を、前記ロボットの稼働エリア別に規定しているエリア情報を準備するステップと、
    前記取得するステップにおいて順次取得される前記ロボットの位置が前記エリア情報に規定されている稼働エリアのいずれかに属したことに基づいて、当該稼働エリアに対応付けられている回路情報で前記FPGAの回路構成を再構成するステップとを実行させる、再構成プログラム。
JP2017021058A 2017-02-08 2017-02-08 画像処理システム、画像処理装置、FPGA(Field Programmable Gate Array)における回路の再構成方法、および、FPGAにおける回路の再構成プログラム Active JP6915288B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017021058A JP6915288B2 (ja) 2017-02-08 2017-02-08 画像処理システム、画像処理装置、FPGA(Field Programmable Gate Array)における回路の再構成方法、および、FPGAにおける回路の再構成プログラム
DE102017127025.6A DE102017127025B4 (de) 2017-02-08 2017-11-16 Bildverarbeitungssystem, Bildverarbeitungseinrichtung, Verfahren zur Rekonfiguration einer Schaltung in einem FPGA und Programm zur Rekonfiguration einer Schaltung in einem FPGA
US15/820,451 US10474124B2 (en) 2017-02-08 2017-11-22 Image processing system, image processing device, method of reconfiguring circuit in FPGA, and program for reconfiguring circuit in FPGA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017021058A JP6915288B2 (ja) 2017-02-08 2017-02-08 画像処理システム、画像処理装置、FPGA(Field Programmable Gate Array)における回路の再構成方法、および、FPGAにおける回路の再構成プログラム

Publications (2)

Publication Number Publication Date
JP2018128821A JP2018128821A (ja) 2018-08-16
JP6915288B2 true JP6915288B2 (ja) 2021-08-04

Family

ID=62909824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017021058A Active JP6915288B2 (ja) 2017-02-08 2017-02-08 画像処理システム、画像処理装置、FPGA(Field Programmable Gate Array)における回路の再構成方法、および、FPGAにおける回路の再構成プログラム

Country Status (3)

Country Link
US (1) US10474124B2 (ja)
JP (1) JP6915288B2 (ja)
DE (1) DE102017127025B4 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6546213B2 (ja) * 2017-04-13 2019-07-17 ファナック株式会社 回路構成最適化装置及び機械学習装置
JP6740288B2 (ja) * 2018-07-13 2020-08-12 ファナック株式会社 物体検査装置、物体検査システム、及び検査位置を調整する方法
CN111028231B (zh) * 2019-12-27 2023-06-30 易思维(杭州)科技有限公司 基于arm和fpga的工件位置获取***

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2262339B (en) * 1991-12-13 1995-09-06 Honda Motor Co Ltd Method of inspecting the surface of a workpiece
JP3300682B2 (ja) * 1999-04-08 2002-07-08 ファナック株式会社 画像処理機能を持つロボット装置
JP2003211382A (ja) 2002-01-16 2003-07-29 Denso Wave Inc ロボット制御装置
JP2005117791A (ja) 2003-10-08 2005-04-28 Denso Wave Inc 駆動制御装置及び駆動制御装置の駆動モジュール判別方法
JP2005275938A (ja) * 2004-03-25 2005-10-06 Toshiba Corp コントローラシステムおよびメカトロニクス機器用コントローラ
JP2005288581A (ja) * 2004-03-31 2005-10-20 Fanuc Ltd 可搬式教示操作盤
JP2008296330A (ja) * 2007-05-31 2008-12-11 Fanuc Ltd ロボットシミュレーション装置
JP4364266B2 (ja) * 2007-08-01 2009-11-11 株式会社東芝 画像処理装置およびプログラム
JP5381147B2 (ja) * 2009-02-17 2014-01-08 富士電機株式会社 ワーク搬送システム
JP5448069B2 (ja) 2009-12-25 2014-03-19 株式会社Ihi ロボット制御装置及び方法
US8965104B1 (en) * 2012-02-10 2015-02-24 Google Inc. Machine vision calibration with cloud computing systems
CN104541596A (zh) * 2012-09-24 2015-04-22 株式会社日立制作所 部件安装装置以及位置修正方法
JP6424432B2 (ja) 2014-01-23 2018-11-21 セイコーエプソン株式会社 制御装置、ロボットシステム、ロボット及びロボット制御方法
JP5785284B2 (ja) * 2014-02-17 2015-09-24 ファナック株式会社 搬送対象物の落下事故を防止するロボットシステム
JP6331517B2 (ja) * 2014-03-13 2018-05-30 オムロン株式会社 画像処理装置、システム、画像処理方法、および画像処理プログラム
JP6478525B2 (ja) * 2014-08-25 2019-03-06 キヤノン株式会社 画像処理装置と、その制御方法、及びプログラム
JP6410388B2 (ja) * 2014-12-25 2018-10-24 株式会社キーエンス 画像処理装置、画像処理システム、画像処理方法及びコンピュータプログラム
JP6068429B2 (ja) * 2014-12-25 2017-01-25 ファナック株式会社 ロボット識別システム
JP6429650B2 (ja) * 2015-01-29 2018-11-28 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
US9855658B2 (en) * 2015-03-19 2018-01-02 Rahul Babu Drone assisted adaptive robot control
DE112015006669B4 (de) 2015-06-30 2019-11-28 Kabushiki Kaisha Yaskawa Denki Robotersystem
JP2017049742A (ja) * 2015-09-01 2017-03-09 キヤノン株式会社 画像処理方法、画像処理装置、ロボット装置、プログラム、及び記録媒体
US10046459B2 (en) * 2015-11-16 2018-08-14 Abb Schweiz Ag Three-dimensional visual servoing for robot positioning
JP6464115B2 (ja) * 2016-05-25 2019-02-06 ファナック株式会社 ワイヤ放電加工システム
DE102016213663A1 (de) 2016-07-26 2018-02-01 Siemens Aktiengesellschaft Verfahren zum Steuern eines Endelementes einer Werkzeugmaschine und eine Werkzeugmaschine
JP6490037B2 (ja) * 2016-10-04 2019-03-27 ファナック株式会社 移動可能な台車に支持されたロボットを備えるロボットシステム
KR101864329B1 (ko) * 2016-12-07 2018-06-05 한화에어로스페이스 주식회사 로봇 암 제어 시스템 및 방법
CN108214486A (zh) * 2016-12-22 2018-06-29 精工爱普生株式会社 控制装置、机器人及机器人***

Also Published As

Publication number Publication date
US20180224825A1 (en) 2018-08-09
US10474124B2 (en) 2019-11-12
DE102017127025A1 (de) 2018-08-09
JP2018128821A (ja) 2018-08-16
DE102017127025B4 (de) 2019-08-08

Similar Documents

Publication Publication Date Title
CN110154017B (zh) 输送机跟踪***以及校准方法
JP6223122B2 (ja) 拡張現実のための自動基準フレーム較正
US11173609B2 (en) Hand-eye calibration method and system
US10410339B2 (en) Simulator, simulation method, and simulation program
JP6915288B2 (ja) 画像処理システム、画像処理装置、FPGA(Field Programmable Gate Array)における回路の再構成方法、および、FPGAにおける回路の再構成プログラム
JP2018111140A (ja) 画像処理システム、画像処理装置、ワークのピックアップ方法、および、ワークのピックアッププログラム
CN107422686B (zh) 用于允许对一个或更多个装置的远程控制的设备
CN111225143B (zh) 图像处理装置及其控制方法以及程序存储介质
JP2019032788A (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP2018116343A (ja) センサ支援システム、端末、センサおよびセンサ支援方法
JP2020024484A (ja) 制御システムおよび制御装置
CN114080590A (zh) 使用先进扫描技术的机器人料箱拾取***和方法
CN111149067A (zh) 经由基准检测在工作空间中的机器人定位
CN113601510B (zh) 基于双目视觉的机器人移动控制方法、装置、***及设备
CN113597362B (zh) 用于确定机器人坐标系与可移动装置坐标系之间的关系的方法和控制装置
EP3467603B1 (en) Information processing device, information processing method, and information processing program
US9508192B2 (en) Image processing device, image processing method, and image processing program
JP2020052032A (ja) 撮像装置及び撮像システム
US10967517B2 (en) Information processing apparatus, method, and storage medium for presenting information for calibration
JP2018116007A (ja) 検査システム、コントローラ、検査方法、および検査プログラム
JP7067869B2 (ja) 画像処理システム、情報処理装置、情報処理方法、および情報処理プログラム
JP2022126127A (ja) 表示方法、情報処理装置、及びプログラム
JP6819096B2 (ja) 画像処理装置、画像処理方法、および画像処理プログラム
EP3416097A1 (en) Template creation apparatus, object recognition processing apparatus, template creation method, and program
CN113495162A (zh) 自动光学检测设备的控制***

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180404

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210628

R150 Certificate of patent or registration of utility model

Ref document number: 6915288

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250