JP6978454B2 - 物体検出装置、制御装置及び物体検出用コンピュータプログラム - Google Patents

物体検出装置、制御装置及び物体検出用コンピュータプログラム Download PDF

Info

Publication number
JP6978454B2
JP6978454B2 JP2019030506A JP2019030506A JP6978454B2 JP 6978454 B2 JP6978454 B2 JP 6978454B2 JP 2019030506 A JP2019030506 A JP 2019030506A JP 2019030506 A JP2019030506 A JP 2019030506A JP 6978454 B2 JP6978454 B2 JP 6978454B2
Authority
JP
Japan
Prior art keywords
target object
image
work
unit
positional relationship
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
JP2019030506A
Other languages
English (en)
Other versions
JP2020135623A (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.)
Fanuc Corp
Original Assignee
Fanuc 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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2019030506A priority Critical patent/JP6978454B2/ja
Priority to DE102020000964.6A priority patent/DE102020000964A1/de
Priority to US16/790,742 priority patent/US11285624B2/en
Priority to CN202010101889.8A priority patent/CN111604942A/zh
Publication of JP2020135623A publication Critical patent/JP2020135623A/ja
Application granted granted Critical
Publication of JP6978454B2 publication Critical patent/JP6978454B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/04Viewing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/02Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
    • B25J9/04Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type by rotating at least one arm, excluding the head movement itself, e.g. cylindrical coordinate type or polar coordinate type
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • 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/40564Recognize shape, contour of object, extract position and orientation
    • 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/40613Camera, laser scanner on end effector, hand eye manipulator, local

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)
  • Manipulator (AREA)

Description

本発明は、例えば、画像に表された物体を検出する物体検出装置及び物体検出用コンピュータプログラム、及び、画像に表された物体の検出結果を利用して可動部を有する自動機械を制御する制御装置に関する。
アームなどの可動部を有し、その可動部がサーボモータを用いて駆動されるロボットまたは工作機械といった自動機械において、可動部と、自動機械の作業対象となる物体との相対的な位置関係に応じて自動機械を制御するために、カメラにより得られた、作業対象となる物体が表された画像を利用する技術が提案されている。そのような技術の一つとして、パターンマッチングを利用して画像から物体を検出する技術が提案されている(例えば、特許文献1を参照)。また、そのような技術の他の一つとして、ニューラルネットワークなどの機械学習手法により実現される識別器に、作業対象となる物体が表された画像を入力することで、自動機械に所定の動作をさせるための制御情報を得る技術が提案されている(例えば、特許文献2〜5を参照)。
特開2018−158439号公報 特許第6376296号公報 特開2009−83095号公報 特開2018−126799号公報 特開2018−205929号公報
作業対象となる物体がベルトコンベヤーなどで搬送されている場合のように、その物体が移動していることがある。このような場合、カメラとその物体との位置関係の変化に伴って、画像上に表されるその物体の位置、姿勢及びサイズが変化する。そのため、パターンマッチングに用いられる物体の特徴、例えば、特定の方向から見たときの物体の面または輪郭の一部が隠れてしまい、パターンマッチングでは、物体の位置及び姿勢を正確に検出することが困難になることがある。その結果として、自動機械の制御装置が、時系列に得られる一連の画像からの物体の検出結果に基づいてその物体を追跡している間に、その物体を追跡できなくなり、可動部をその物体に対する作業を実施可能な位置へ移動させることができなくなることがある。さらに、画像上に表される作業対象となる物体の位置、姿勢及びサイズが変化するために、画像上での物体が位置する領域が未知であると、物体を検出するために、画像全体に対してパターンマッチングを行うことが必要となり、物体の検出までに要する時間が掛かり過ぎてしまうことがある。このような場合、可動部を物体の位置変化に追従させることが困難となる。
一方、機械学習手法による識別器を用いて、画像上に表された作業対象となる物体の位置及び姿勢を検出する場合、自動機械の制御装置は、カメラに対するその物体の位置及び姿勢によらず、画像からその物体を検出することができる。しかし、この場合には、物体の位置及び姿勢の検出精度が必ずしも十分でなく、制御装置は、識別器により検出された物体の位置に基づいて、可動部がその物体に対する作業を実施可能な位置へ可動部を正確に移動させることができないことがある。
一つの側面では、検出対象となる物体を撮像する撮像部に対する、その物体の相対的な位置関係が変化する場合でも、その物体を検出することが可能な物体検出装置を提供することを目的とする。
一つの実施形態によれば、物体検出装置が提供される。この物体検出装置は、対象物体を所定の方向から見たときの対象物体の外観の特徴を表すテンプレートを記憶する記憶部と、対象物体を撮影して対象物体が表された画像を生成する撮像部と対象物体とが所定の位置関係を満たさない場合に、画像から対象物体を検出するように予め学習された識別器に画像を入力することで、画像上での対象物体の位置を検出するロバスト検出部と、撮像部と対象物体とが所定の位置関係を満たす場合に、画像とテンプレートとを照合することで、画像上での対象物体の位置を検出する精密検出部とを有する。
他の実施形態によれば、少なくとも一つの可動部を有する自動機械の制御装置が提供される。この制御装置は、自動機械の作業対象となる対象物体を所定の方向から見たときの対象物体の外観の特徴を表すテンプレートを記憶する記憶部と、可動部に取り付けられ、対象物体を撮影して対象物体が表された画像を生成する撮像部と対象物体とが所定の位置関係を満たさない場合に、画像から対象物体を検出するように予め学習された識別器に画像を入力することで、画像上での対象物体の位置を検出し、画像上での対象物体の位置に基づいて実空間での対象物体の位置を検出するロバスト検出部と、撮像部と対象物体とが所定の位置関係を満たす場合に、画像とテンプレートとを照合することで、画像上での対象物体の位置を検出し、画像上での対象物体の位置に基づいて実空間での対象物体の位置を検出し、あるいは、対象物体との相対的な位置を表す位置情報を取得する位置情報取得部により得られた位置情報に基づいて実空間での対象物体の位置を検出する精密検出部と、撮像部と対象物体とが所定の位置関係を満たさない場合に、ロバスト検出部により検出された実空間での対象物体の位置に基づいて、撮像部と対象物体とが所定の位置関係を満たすように可動部を制御するアプローチ制御部と、撮像部と対象物体とが所定の位置関係を満たす場合に、精密検出部により検出された実空間での対象物体の位置に基づいて、対象物体に対して自動機械が所定の作業を実施可能な位置へ可動部を移動させるよう、可動部を制御する作業制御部とを有する。
また他の実施形態によれば、物体検出用コンピュータプログラムが提供される。この物体検出用コンピュータプログラムは、対象物体を撮影して対象物体が表された画像を生成する撮像部と対象物体とが所定の位置関係を満たさない場合に、画像から対象物体を検出するように予め学習された識別器に画像を入力することで、画像上での対象物体の位置を検出し、撮像部と対象物体とが所定の位置関係を満たす場合に、対象物体を所定の方向から見たときの対象物体の外観の特徴を表すテンプレートと画像とを照合することで、画像上での対象物体の位置を検出する、ことをコンピュータに実行させるための命令を含む。
一つの側面によれば、検出対象となる物体を撮像する撮像部に対する、その物体の相対的な位置関係が変化する場合でも、その物体を検出することができる。
一つの実施形態によるロボットシステムの概略構成図である。 制御装置の概略構成図である。 物体検出処理を含む可動部制御処理に関する、制御装置が有するプロセッサの機能ブロック図である。 物体検出処理を含む、可動部制御処理の概要を説明する図である。 物体検出処理を含む可動部制御処理の動作フローチャートである。 変形例による、ロボットシステムの概略構成図である。 物体検出装置の概略構成図である。
以下、図を参照しつつ、本発明の実施形態による物体検出装置について説明する。この物体検出装置は、例えば、アームといった可動部を有する自動機械の可動部に取り付けられた撮像部により得られた一連の画像から、自動機械の作業対象となる物体(以下、単に対象物体と呼ぶ)を検出して、実空間での対象物体の位置を検出する。その際、この物体検出装置は、撮像部と対象物体とが、所定の位置関係を満たすまでは、画像から対象物体を検出するように予め学習された識別器に画像を入力することで、画像上での対象物体の位置をロバストに検出し、その検出結果に基づいて、実空間での対象物体の位置を検出する。一方、この物体検出装置は、撮像部と対象物体とが所定の位置関係を満たす場合、事前に得られた、対象物体を所定の方向から見たときの対象物体の外観の特徴を表すテンプレートと画像とを照合することで、画像上での対象物体の位置及び姿勢を高精度で検出し、その検出結果に基づいて、実空間での対象物体の位置及び姿勢を検出する。さらに、この物体検出装置は、自動機械の制御装置に組み込まれ、検出された対象物体の位置、または、検出された対象物体の位置及び姿勢に基づいて、自動機械が対象物体に対する作業を行えるように、自動機械の可動部を制御する。
図1は、一つの実施形態による、物体検出装置が実装されたロボットシステム1の概略構成図である。ロボットシステム1は、ロボット2と、ロボット2を制御する制御装置3と、ロボット2の可動部に取り付けられ、対象物体の一例であるワーク10を撮影するためのカメラ4とを有する。ロボットシステム1は、自動機械の一例である。
ロボット2は、台座11と、回転ステージ12と、第1のアーム13と、第2のアーム14と、リスト15と、ツール16とを有する。回転ステージ12、第1のアーム13、第2のアーム14、リスト15及びツール16は、それぞれ、可動部の一例である。回転ステージ12、第1のアーム13、第2のアーム14及びリスト15のそれぞれは、それらが取り付けられる関節に設けられる軸により支持され、サーボモータがその軸を駆動することで動作する。また、ワーク10は、例えば、ベルトコンベヤーにより搬送され、ワーク10が所定の範囲内に位置している間に、ロボット2は、ワーク10に対する所定の作業を実施する。
台座11は、ロボット2が床置き設置される場合に台となる部材である。回転ステージ12は、台座11の天面に、関節21にて、台座11のその一方の面と直交するように設けられる軸(図示せず)を回転中心として回動可能に取り付けられる。
第1のアーム13は、その一端側にて、回転ステージ12に設けられる関節22において回転ステージ12に取り付けられる。本実施形態では、図1に示されるように、第1のアーム13は、関節22にて、台座11の回転ステージ12が取り付けられる面と平行に設けられる軸(図示せず)を中心として回動可能となっている。
第2のアーム14は、その一端側にて、関節22とは反対側の第1のアーム13の他端側に設けられる関節23にて第1のアーム13に取り付けられる。本実施形態では、図1に示されるように、第2のアーム14は、関節23にて、台座11の回転ステージ12が取り付けられる面と平行に設けられる軸(図示せず)を中心として回動可能となっている。
リスト15は、関節23とは反対側の第2のアーム14の先端にて、関節24を介して取り付けられる。リスト15は、関節25を有し、関節25にて関節22の軸及び関節23の軸と平行に設けられる軸(図示せず)を回転中心として屈曲可能となっている。さらに、リスト15は、第2のアーム14の長手方向と平行な軸(図示せず)を回転中心として、第2のアーム14の長手方向と直交する面において回動可能であってもよい。
ツール16は、関節24とは反対側のリスト15の先端に取り付けられる。ツール16は、ワーク10に対する作業を行うための機構または装置を有する。例えば、ツール16は、ワーク10を加工するためのレーザを有してもよく、ワーク10を溶接するためのサーボガンを有していてもよい。あるいは、ツール16は、ワーク10またはワーク10に組み付けられる部品を把持するためのハンド機構を有していてもよい。
カメラ4は、撮像部の一例であり、例えば、ツール16に取り付けられる。なお、カメラ4は、リスト15または第2のアーム14といった他の可動部に取り付けられてもよい。カメラ4は、ロボット2がワーク10に対する作業を実施する際、あるいは、ツール16をワーク10へアプローチさせる際にカメラ4の撮影範囲にワーク10が含まれるように向けられる。そしてカメラ4は、所定の撮影周期ごとに、ワーク10を含む撮影範囲を撮影することでワーク10が表された画像を生成する。カメラ4は、画像を生成する度に、生成した画像を、通信回線5を介して制御装置3へ出力する。
なお、制御装置3の制御対象となる自動機械は、図1に示されるロボット2に限られず、可動部を少なくとも一つ有するものであればよい。
制御装置3は、通信回線5を介してロボット2と接続され、ロボット2のそれぞれの関節に設けられる軸を駆動するサーボモータの動作状況を表す情報、カメラ4からの画像などを、ロボット2から通信回線5を介して受信する。そして制御装置3は、受信した情報、画像、及び、上位制御装置(図示せず)から受信した、あるいは、予め設定されたロボット2の動作に基づいて、サーボモータを制御することで、ロボット2の各可動部の位置及び姿勢を制御する。
図2は、制御装置3の概略構成図である。制御装置3は、通信インターフェース31と、駆動回路32と、メモリ33と、プロセッサ34とを有する。さらに、制御装置3は、タッチパネルといったユーザインターフェース(図示せず)を有していてもよい。
通信インターフェース31は、例えば、制御装置3を通信回線5と接続するための通信インターフェース及び通信回線5を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース31は、例えば、ロボット2から、通信回線5を介して、駆動部の一例であるサーボモータ35の回転量を検出するためのエンコーダからの回転量の測定値など、サーボモータ35の動作状況を表す情報を受信して、その情報をプロセッサ34へわたす。なお、図2では、代表的に一つのサーボモータ35が図示されているが、ロボット2は、関節ごとに、その関節の軸を駆動するサーボモータを有してもよい。さらに、通信インターフェース31は、カメラ4から画像を受信してプロセッサ34へわたす。
駆動回路32は、電流供給用のケーブルを介してサーボモータ35と接続され、プロセッサ34による制御に従って、サーボモータ35に生じさせるトルク、回転方向あるいは回転速度に応じた電力をサーボモータ35へ供給する。
メモリ33は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ33は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
メモリ33は、制御装置3のプロセッサ34で実行される、ロボット2の制御用の各種コンピュータプログラムなどを記憶する。また、メモリ33は、ロボット2を動作させる際のロボット2の動作を制御するための情報を記憶する。さらに、メモリ33は、ロボット2の動作中においてロボット2から得られるサーボモータ35の動作状況を表す情報を記憶する。さらにまた、メモリ33は、物体検出処理で利用される各種のデータを記憶する。そのようなデータには、例えば、識別器を規定するためのパラメータ群、ワーク10の検出に用いられる、ワーク10を所定の方向(例えば、鉛直上方)から見たときのワーク10の外観の特徴を表すテンプレート、カメラ4の焦点距離、取り付け位置及び向きといったカメラ4に関する情報を表すカメラパラメータ、及び、カメラ4から得られた画像が含まれる。
プロセッサ34は、制御部の一例であり、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ34は、数値演算用のプロセッサを有していてもよい。そしてプロセッサ34は、ロボットシステム1全体を制御する。またプロセッサ34は、物体検出処理を含む、可動部制御処理を実行する。
図3は、物体検出処理を含む、可動部制御処理に関する、プロセッサ34の機能ブロック図である。プロセッサ34は、ロバスト検出部41と、精密検出部42と、判定部43と、アプローチ制御部44と、作業制御部45とを有する。プロセッサ34が有するこれらの各部は、例えば、プロセッサ34上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ34の一部に実装される専用の演算回路として実装されてもよい。また、プロセッサ34が有するこれらの各部のうち、ロバスト検出部41、精密検出部42及び判定部43による処理が、物体検出処理に含まれる。
ロバスト検出部41は、カメラ4とワーク10とが所定の位置関係を満たさない場合において、カメラ4により得られた時系列の一連の画像のそれぞれについて、その画像を、識別器に入力することで、その画像上でのワーク10の位置、すなわち、対象物体の位置を検出する。そしてロバスト検出部41は、検出された画像上でのワーク10の位置に基づいて、実空間でのワーク10の位置を検出する。ロバスト検出部41は、識別器を利用して、ワーク10の位置を検出するので、精密検出部42よりもロバストにワーク10の位置を検出することができる。ロバスト検出部41は、各画像に対して同じ処理を実行すればよいので、以下では、一つの画像に対する処理について説明する。また、所定の位置関係については、判定部43に関して詳述する。
識別器は、画像に表されたワーク10を検出するように予め学習される。例えば、ロバスト検出部41は、識別器として、VGGあるいはSingle Shot Multibox Detector(SSD)といった、画像に表された物体を検出して、検出した物体が表された領域を示すように予め学習されたコンボリューショナルニューラルネットワーク(CNN)を用いることができる。この場合、ロバスト検出部41は、着目する画像を識別器に入力することで、画像上に表されたワーク10の外接矩形を求めることができる。
あるいは、ロバスト検出部41は、識別器として、サポートベクトルマシンあるいはAdaBoostといった他の機械学習手法に従って予め学習された識別器を利用してもよい。この場合には、ロバスト検出部41は、着目する画像に互いに異なる複数のウィンドウを設定し、ウィンドウごとに、Histograms of Oriented Gradients(HOG)あるいはHaar-Like特徴といった特徴量を抽出する。なお、ロバスト検出部41は、過去に得られた画像においてワーク10の位置が検出されている場合、その検出位置の近傍に限定して複数のウィンドウを設定してもよい。そしてロバスト検出部41は、ウィンドウごとに、そのウィンドウから抽出された特徴量を識別器に入力する。特徴量が入力されると、識別器は、そのウィンドウにワーク10が表されているか否かの判定結果を出力する。したがって、ロバスト検出部41は、識別器が、ワーク10が表されているとの判定結果を出力したウィンドウに、ワーク10が表されていると判定できる。
上記のように、画像上でワーク10が表された領域が検出されると、ロバスト検出部41は、その領域内の所定の位置、例えば、その領域の重心を、画像上でのワーク10の位置とする。
画像上でのワーク10の位置が求められると、ロバスト検出部41は、その位置に基づいて、実空間でのワーク10の位置を検出する。
ここで、画像上の各画素の位置は、カメラ4から見た方位と1対1に対応する。そこで、ロバスト検出部41は、例えば、画像上でワーク10が表された領域の重心に相当する方位を、カメラ4からワーク10へ向かう方位とすることができる。さらに、ロバスト検出部41は、画像上でワーク10が表された領域の面積に対する、カメラ4からワーク10までの距離が所定の基準距離である場合における、画像上のワーク10の面積の比を、基準距離に乗じることで、カメラ4からワーク10までの推定距離を算出できる。したがって、ロバスト検出部41は、カメラ4からワーク10へ向かう方位と推定距離とに基づいて、カメラ4の位置を基準とするカメラ座標系でのワーク10の位置を検出できる。そしてロバスト検出部41は、検出したワーク10の位置を判定部43及びアプローチ制御部44へ出力する。
変形例によれば、ロバスト検出部41は、ワーク10の位置だけでなく、ワーク10の姿勢を検出してもよい。この場合には、ロバスト検出部41は、識別器として、画像上の物体が表された領域及びその物体の姿勢を検出するように予め学習されたCNN(例えば、B. Tekin他、「Real-Time Seamless Single Shot 6D Object Pose Prediction」、CVPR2018を参照)を用いることができる。ロバスト検出部41は、このような識別器に画像を入力することで、画像上でのワーク10の位置だけでなく、カメラ4から見た、すなわち、カメラ座標系で表されるワーク10の姿勢を検出できる。検出されたワーク10の姿勢は、例えば、roll角、picth角、yaw角の組み合わせで表される。
この場合、ロバスト検出部41は、検出したワーク10の位置及び姿勢を判定部43及びアプローチ制御部44へ出力すればよい。
精密検出部42は、カメラ4とワーク10とが所定の位置関係を満たす場合において、カメラ4により得られた時系列の一連の画像のそれぞれについて、その画像とテンプレートとを照合することで、画像上でのワーク10の位置及び姿勢を、ロバスト検出部41よりも高い精度で検出する。そして精密検出部42は、画像上でのワーク10の位置及び姿勢に基づいて、実空間でのワーク10の位置及び姿勢を検出する。精密検出部42は、各画像に対して同じ処理を実行すればよいので、以下では、一つの画像に対する処理について説明する。例えば、精密検出部42は、メモリ33から、テンプレートを読み込み、そのテンプレートと着目する画像とを照合することで、画像上でワーク10が表された領域を検出する。例えば、テンプレートは、所定の方向から見たときのワーク10の像を表すものとすることができる。この場合、精密検出部42は、画像に対するテンプレートの相対的な位置及び向きを、画像上の照合範囲内で変えながら、テンプレートと画像間の相互相関値といった、テンプレートと画像間の類似度を表す値を算出し、その類似度が所定の閾値以上となったときのテンプレートの位置と対応する領域に、ワーク10が表されていると判定する。また、精密検出部42は、類似度が所定の閾値以上となったときのテンプレートの向きに応じて、所定の方向から見たときの、テンプレートに表されたワーク10の向きに対する、ワーク10の実際の回転量を求めることができるので、その回転量に応じてワーク10の姿勢を求めることができる。なお、精密検出部42は、例えば、照合範囲を、着目する画像以前に得られた一連の画像のそれぞれにおいて求められたワーク10の位置、例えば、ワーク10が表された領域の重心に対してカルマンフィルタといった予測フィルタを適用することで得られる、着目する画像上でのワーク10の予測位置を中心とする所定範囲として設定すればよい。
また、テンプレートには、所定の方向から見たときのワーク10の複数の特徴点、例えば、ワーク10の輪郭上の複数の点が表されていてもよい。この場合には、精密検出部42は、画像上の照合範囲に対して、Sobelフィルタといったエッジ検出フィルタまたはHarrisフィルタといったコーナー検出フィルタ、あるいはSIFTといった他の特徴点検出用のフィルタを適用して、複数の特徴点を検出してもよい。そして精密検出部42は、照合範囲内で画像に対するテンプレートの相対的な位置及び向きを変更しながら、テンプレートの位置ごとに、テンプレート上の特徴点の数に対する、テンプレート上の特徴点と画像上の特徴点とが一致する個数の比を類似度として算出してもよい。この場合も、精密検出部42は、類似度が所定の閾値以上となったときのテンプレートの位置と対応する領域に、ワーク10が表されていると判定すればよい。
あるいは、ワーク10の明るさとワーク10の周囲の背景の明るさとの差が大きい場合には、精密検出部42は、画像の各画素を、その画素の輝度値に応じて2値化することで、ワーク10が表された領域を検出できる。例えば、ワーク10が周囲よりも明るい場合、精密検出部42は、所定の輝度閾値よりも高い輝度値を持つ画素を検出し、検出した画素の集合となる領域を、ワーク10が表された領域とすることができる。この場合、精密検出部42は、例えば、ワーク10の姿勢ごとに用意されたテンプレートと、ワーク10が表された領域とを照合し、ワーク10が表された領域に最も近い形状を持つテンプレートに対応する姿勢を、ワーク10の実際の姿勢とすればよい。なお、この場合、テンプレートも、ワークが表された領域とその他の領域とが異なる値を持つ2値画像とすることができる。
画像上でワーク10が表された領域の位置が分かると、ロバスト検出部41と同様に、精密検出部42は、カメラ座標系で表されるワーク10の位置を求めることができる。さらに、精密検出部42は、テンプレートについて規定された所定の方向と、ワーク10が表された領域の重心に対応する、カメラ4からの方位との差の分だけ、画像上でのワーク10の姿勢を回転させることで、カメラ座標系で表されたワーク10の姿勢を求めることができる。
なお、テンプレートは、予め複数用意されてもよい。この場合、テンプレートごとに、ワーク10を見る方向、及び、テンプレート上でのワーク10の大きさの組み合わせが異なっていてもよい。この場合、精密検出部42は、複数のテンプレートのそれぞれについて、上記と同様に、照合範囲内で画像に対するテンプレートの相対的な位置及び向きを変えながら、テンプレートの位置ごとに類似度を算出する。そして精密検出部42は、類似度が最大となるテンプレートの位置と対応する領域に、そのテンプレートに表された方向から見たワーク10が表れていると判定すればよい。さらに、テンプレートに表されたワーク10の大きさは、カメラ4からワーク10までの距離に対応するので、精密検出部42は、類似度が最大となるテンプレートに表されたワーク10の大きさに対応する距離を、カメラ4からワーク10までの距離とすることができる。
精密検出部42は、他の手法により、実空間でのワーク10の位置を検出してもよい。例えば、精密検出部42は、ロボット2が基準となる姿勢となるときの位置からのサーボモータ35の回転量に基づいて、ロボット2の各可動部の絶対位置(すなわち、世界座標系で表される位置)を検出でき、検出された絶対位置と、カメラ4の取り付け位置及びカメラ4の向きとの関係に基づいて、世界座標系でのカメラ4の位置及び向きを検出できる。そして精密検出部42は、画像上でワーク10が表された領域の重心に基づいて、世界座標系でのカメラ4からワーク10へ向かう方位を求めることができる。さらに、世界座標系でのワーク10が搬送されるベルトコンベヤーの位置及びワーク10の厚さが既知であれば(これらの値は、例えば、メモリ33に予め記憶される)、精密検出部42は、世界座標系でのカメラ4の位置が分かるので、カメラ4からワーク10へ向かう方位における、カメラ4からワーク10が搬送されるベルトコンベヤーまでの距離を算出できる。そして精密検出部42は、算出した距離からワーク10の厚さを減じた値を、カメラ4からワーク10までの距離として求めることができる。このようにして求められた、カメラ4からワーク10へ向かう方位及びワーク10までの距離により、精密検出部42は、実空間でのワーク10の位置を検出できる。
精密検出部42は、検出したワーク10の位置及び姿勢を判定部43及び作業制御部45へ出力する。
判定部43は、カメラ4から画像が得られる度に、カメラ4とワーク10とが所定の位置関係を満たしているか否か判定する。所定の位置関係は、例えば、カメラ4とワーク10との距離が所定距離以下となることとすることができる。所定距離は、例えば、精密検出部42が利用するテンプレートに表されるワーク10の大きさに対応する、カメラ4とワーク10間の距離とすることができる。例えば、最新の画像について、ロバスト検出部41がワーク10の位置を検出している場合、判定部43は、ロバスト検出部41により求められたカメラ4からワーク10までの推定距離を所定距離と比較する。そして判定部43は、その推定距離が所定距離以下であれば、カメラ4とワーク10とが所定の位置関係を満たしていると判定する。そして判定部43は、次に得られる画像について、精密検出部42に対して、ワーク10の位置及び姿勢を検出するよう指示する。一方、その推定距離が所定距離よりも大きければ、カメラ4とワーク10とが所定の位置関係を満たしていないと判定する。そして判定部43は、次に得られる画像について、ロバスト検出部41に対して、ワーク10の位置を検出するよう指示する。
なお、ワーク10の移動量をもとにロボット2の座標系が動かされ、その座標系上でロボット2の動作プログラムが組まれている場合は、判定部43は、その座標系上でロボット2が所定の位置に到達した場合にロバスト検出部41から精密検出部42に切り替えるということをしてもよい。
同様に、最新の画像について、精密検出部42がワーク10の位置を検出している場合、判定部43は、精密検出部42により求められたカメラ4からワーク10までの距離を所定距離と比較する。そして判定部43は、その距離が所定距離以下であれば、カメラ4とワーク10とが所定の位置関係を満たしていると判定する。そして判定部43は、次に得られる画像について、精密検出部42に対して、ワーク10の位置及び姿勢を検出するよう指示する。一方、その距離が所定距離よりも大きければ、カメラ4とワーク10とが所定の位置関係を満たしていないと判定する。そして判定部43は、次に得られる画像について、ロバスト検出部41に対して、ワーク10の位置を検出するよう指示する。
また、所定の位置関係は、カメラ4とワーク10との距離が所定距離以下であり、かつ、カメラ4に対してワーク10が所定の姿勢となっていることであってもよい。所定の姿勢は、例えば、ワーク10の所定の面についての法線から所定の角度範囲内にカメラ4が位置する姿勢とすることができる。所定の面は、例えば、精密検出部42が利用するテンプレートで表されるワーク10の面とすることができる。この場合には、最新の画像について、ロバスト検出部41がワーク10の位置及び姿勢を検出していると、判定部43は、その検出された姿勢が所定の姿勢となっているか否かを判定すればよい。そして判定部43は、ロバスト検出部41により求められたカメラ4からワーク10までの推定距離が所定距離以下であり、かつ、ワーク10の姿勢が所定の姿勢であれば、カメラ4とワーク10とが所定の位置関係を満たしていると判定する。そして判定部43は、次に得られる画像について、精密検出部42に対して、ワーク10の位置及び姿勢を検出するよう指示する。一方、その推定距離が所定距離よりも大きいか、あるいは、ワーク10の姿勢が所定の姿勢でなければ、カメラ4とワーク10とが所定の位置関係を満たしていないと判定する。そして判定部43は、次に得られる画像について、ロバスト検出部41に対して、ワーク10の位置を検出するよう指示する。
同様に、最新の画像について、精密検出部42がワーク10の位置及び姿勢を検出している場合、判定部43は、精密検出部42により求められたカメラ4からワーク10までの距離が所定距離以下であり、かつ、ワーク10の姿勢が所定の姿勢であれば、カメラ4とワーク10とが所定の位置関係を満たしていると判定する。そして判定部43は、次に得られる画像について、精密検出部42に対して、ワーク10の位置及び姿勢を検出するよう指示する。一方、その距離が所定距離よりも大きいか、あるいは、ワーク10の姿勢が所定の姿勢でなければ、カメラ4とワーク10とが所定の位置関係を満たしていないと判定する。そして判定部43は、次に得られる画像について、ロバスト検出部41に対して、ワーク10の位置を検出するよう指示する。
アプローチ制御部44は、カメラ4とワーク10とが所定の位置関係を満たさない場合において、ロバスト検出部41により検出されたワーク10の位置に基づいて、カメラ4とワーク10とが所定の位置関係を満たすようにロボット2の可動部を制御する。例えば、アプローチ制御部44は、例えば、直近の一連の画像のそれぞれにおいて求められた実空間でのワーク10の検出位置に対してカルマンフィルタといった予測フィルタを適用することで、次の画像生成時における、世界座標系でのワーク10の位置を予測する。そしてアプローチ制御部44は、カメラ4がワーク10の予測位置から所定の位置関係を満たす目標位置を設定する。アプローチ制御部44は、カメラ4を目標位置へ移動させるべく、カメラ4が取り付けられるロボット2の可動部を動作させるよう、サーボモータ35の回転量及び回転方向を設定すればよい。
その際、アプローチ制御部44は、例えば、直近の一連の画像のそれぞれの生成時における、カメラ座標系から世界座標系への変換式を、世界座標系でのカメラ4の位置及び向きから算出する。例えば、アプローチ制御部44は、各画像生成時における、ロボット2が基準となる姿勢となるときの各可動部の位置からのサーボモータ35の回転量に基づいて、ロボット2の各可動部の絶対位置を検出できる。さらに、アプローチ制御部44は、検出された絶対位置と、カメラ4の取り付け位置及びカメラ4の向きとの関係に基づいて、世界座標系でのカメラ4の位置及び向きを検出し、その検出結果に基づいて、カメラ座標系から世界座標系への変換式を算出すればよい。そしてアプローチ制御部44は、各画像生成時における、カメラ座標系で表されたワーク10の位置にその変換式を適用することで、世界座標系で表されたワーク10の位置を検出する。そして上記のように、アプローチ制御部44は、各画像生成時における、世界座標系でのワーク10の検出位置に対して予測フィルタを適用することで、次の画像生成時における、世界座標系でのワーク10の予測位置を求めることができる。
世界座標系でのワーク10の予測位置が求められると、所定の位置関係が、カメラ4とワーク10との距離が所定距離以下である場合、アプローチ制御部44は、その予測位置から所定距離となる位置を目標位置として特定することができる。そしてアプローチ制御部44は、カメラ4を目標位置へ移動させるよう、サーボモータ35の目標回転量及び目標回転方向を決定すればよい。
また、所定の位置関係が、カメラ4とワーク10との距離が所定距離以下であり、かつ、カメラ4に対してワーク10が所定の姿勢となっていることであり、ロバスト検出部41により、実空間でのワーク10の位置及び姿勢が検出されているとする。この場合、アプローチ制御部44は、直近の一連の画像生成時における、ワーク10の姿勢に基づいて、次の画像生成時における、ワーク10の姿勢を予測してもよい。この場合も、アプローチ制御部44は、上記と同様に、直近の一連の画像生成時における、カメラ座標系で表されたワーク10の姿勢にカメラ座標系から世界座標系への変換式を適用して得られる世界座標系でのワーク10の姿勢に予測フィルタを適用することで、次の画像生成時における、世界座標系でのワーク10の姿勢を予測すればよい。そしてアプローチ制御部44は、予測されたワーク10の位置及び姿勢に基づいて、カメラ4とワーク10との距離が所定距離以下となり、かつ、カメラ4に対してワーク10が所定の姿勢となる、カメラ4の目標位置及び目標姿勢を求めることができる。アプローチ制御部44は、カメラ4をその目標位置へ移動させ、かつ、カメラ4が目標姿勢となるよう、サーボモータ35の目標回転量及び目標回転方向を決定すればよい。
なお、ワーク10が静止している場合には、アプローチ制御部44は、最新の画像生成時における、ワーク10の検出された位置及び姿勢を、上記の予測位置及び予測された姿勢として目標位置及び目標姿勢を決定して、サーボモータ35の目標回転量及び目標回転方向を決定すればよい。
アプローチ制御部44は、サーボモータ35の目標回転量及び目標回転方向を決定すると、例えば、特開2006−172149号公報に記載されているようにサーボモータ35を制御すればよい。すなわちアプローチ制御部44は、ロボット2の動作を制御する際に、目標回転量及び目標回転方向と、サーボモータ35の実際の回転量などに基づいてサーボモータ35の回転速度を指定する速度指令を算出する。アプローチ制御部44は、その速度指令と、サーボモータ35の実際の回転量を微分することで算出される速度フィードバックとに基づいて速度ループ制御を行ってサーボモータ35に供給する電流量を表すトルク指令を算出する。そしてアプローチ制御部44は、トルク指令と駆動回路32に設けられた電流検出器(図示せず)からフィードバックされる電流フィードバックに基づいて、サーボモータ35に供給される電流についてループ制御を行って、サーボモータ35を駆動する。
作業制御部45は、カメラ4とワーク10とが所定の位置関係を満たす場合において、精密検出部42により検出されたワーク10の位置及び姿勢に基づいて、ロボット2のツール16がワーク10に対する作業を実施できる位置へ移動するように、ロボット2の各可動部を制御する。その際、作業制御部45は、アプローチ制御部44と同様に、直近の一連の画像のそれぞれにおいて求められたワーク10の世界座標系での位置及び姿勢に対してカルマンフィルタといった予測フィルタを適用して、次の画像生成時におけるワーク10の予測位置及び予測姿勢を求めてもよい。そして作業制御部45は、その予測位置及び予測姿勢に基づいてツール16の目標位置及び目標となる向きを設定することで、サーボモータ35の回転量及び回転方向を決定してもよい。
あるいは、作業制御部45は、カメラ4により生成される画像において、ツール16がワーク10に対する作業を行う位置に対応する、所定の位置及び所定の大きさでワーク10が表されるように、ロボット2の各可動部を制御してもよい。この場合には、作業制御部45は、例えば、位置ベース法あるいは特徴ベース法といった、カメラにより得られる対象物体の画像に基づいてロボットを制御する手法(例えば、橋本、「視覚と制御」、計測自動制御学会制御部門大会ウォークショップ、 京都、 pp. 37-68、 2001年を参照されたい)に従ってロボット2の各可動部を制御すればよい。
このように、作業制御部45は、高精度で検出された、カメラ4に対するワーク10の相対的な位置及び姿勢に基づいて、ロボット2の可動部を制御するので、ワーク10に対する作業を適切に行えるようにロボット2を制御できる。
図4は、物体検出処理を含む、可動部制御処理の概要を説明する図である。この例では、所定の位置関係は、カメラ4とワーク10間の距離が所定距離Lth以下となることであるとする。図4に示されるように、カメラ4が位置P1に存在する場合、カメラ4とワーク10間の距離d1は所定距離Lthよりも大きいので、ロバスト検出部41により、識別器を用いて、ワーク10の位置(あるいは、位置及び姿勢)が検出される。そしてその検出結果に基づいて、アプローチ制御部44がロボット2の可動部を制御して、カメラ4をワーク10へ近づける。一方、カメラ4が位置P2に存在する場合、カメラ4とワーク10間の距離d2は所定距離Lthよりも小さいので、精密検出部42により、テンプレートを用いて、ワーク10の位置及び姿勢が検出される。そしてその検出結果に基づいて、作業制御部45がロボット2の可動部を制御して、ワーク10に対する作業を実施できる位置へカメラ4が取り付けられたツール16を移動させる。
図5は、物体検出処理を含む、可動部制御処理の動作フローチャートである。プロセッサ34は、下記の動作フローチャートに従って、カメラ4から画像を取得する度に、可動部制御処理を実行する。なお、以下の動作フローチャートのうち、ステップS101〜S102及びS104の処理が、物体検出処理に含まれる。
判定部43は、前回の画像生成時における、ワーク10の位置及び姿勢の検出結果に基づいて、カメラ4とワーク10とが所定の位置関係を満たすか否か判定する(ステップS101)。カメラ4とワーク10とが所定の位置関係を満たさない場合(ステップS101−No)、判定部43は、ロバスト検出部41に、ワーク10の位置を検出するよう指示する。そしてロバスト検出部41は、最新の画像を識別器に入力することで、画像上でのワーク10の位置を検出し、その検出結果に基づいて、実空間でのワーク10の位置を検出する(ステップS102)。さらに、アプローチ制御部44は、検出されたワーク10の位置に基づいて、カメラ4とワーク10とが所定の位置関係を満たすようにロボット2の可動部を制御する(ステップS103)。
一方、カメラ4とワーク10とが所定の位置関係を満たす場合(ステップS101−Yes)、判定部43は、精密検出部42に、ワーク10の位置及び姿勢を検出するよう指示する。そして精密検出部42は、最新の画像とテンプレートとを照合することで、画像上でのワーク10の位置及び姿勢を検出し、その検出結果に基づいて、実空間でのワーク10の位置及び姿勢を検出する(ステップS104)。さらに、作業制御部45は、検出されたワーク10の位置及び姿勢に基づいて、ツール16がワーク10に対する作業を実施できる位置へ移動するようにロボット2の可動部を制御する(ステップS105)。
ステップS103またはS105の後、プロセッサ34は、可動部制御処理を終了する。
以上に説明してきたように、この物体検出装置は、撮像部と対象物体とが所定の位置関係を満たさないときには、機械学習手法に従って学習された識別器を用いて対象物体の位置をロバストに検出する。一方、撮像部と対象物体とが所定の位置関係を満たすときには、この物体検出装置は、事前に得られた、所定の方向から見たときの対象物体の外観の特徴を表すテンプレートと画像とを照合することで、画像上での対象物体の位置及び姿勢を高精度で検出する。そのため、この物体検出装置は、撮像部に対する、対象物体の相対的な位置関係が変化する場合でも、対象物体を検出することができる。さらに、この物体検出装置は、複数のカメラを用いて対象物体の実空間の位置を求めるステレオ法を利用しなくても、1台の撮像部だけを用いて、実空間での対象物体の位置を求めることができる。さらにまた、この物体検出装置が組み込まれたロボットの制御装置は、撮像部と対象物体とが所定の位置関係を満たさないときには、識別器を用いて検出された対象物体の位置に基づいて、撮像部と対象物体とが所定の位置関係を満たすようにロボットの可動部を制御する。一方、撮像部と対象物体とが所定の位置関係を満たすときには、制御装置は、照合の結果として検出された対象物体の位置及び姿勢に基づいて、対象物体に対する作業を実施できるようにロボットの可動部を制御する。そのため、この制御装置は、撮像部と対象物体の相対的な位置関係が変化する場合でも、対象物体の追跡を継続できるとともに、その位置関係に応じてロボットの可動部を適切に制御できる。
なお、ワーク10が円筒形状である場合のように、中心軸周りに回転しても形状が変化しない場合、あるいは、ワーク10が特定の姿勢となるように配置されている場合などでは、精密検出部42は、画像上及び実空間でのワーク10の姿勢を検出しなくてもよい。
変形例によれば、精密検出部42がワーク10の位置及び姿勢を検出するために利用する、ワーク10に対する相対的な位置を表す位置情報を取得する位置情報取得部がカメラ4と別個に設けられてもよい。例えば、ツール16の先端に、1以上の圧力センサが設けられてもよい。圧力センサは、位置情報取得部の一例である。この場合、精密検出部42は、圧力センサにより検知される圧力と、ツール16の所定の部位とワーク10間の距離との関係を表す参照テーブルを参照して、その検知された圧力に対応する、ツール16の所定の部位とワーク10間の距離を検出してもよい。なお、そのような参照テーブルは、例えば、メモリ33に予め記憶される。作業制御部45は、上記の実施形態のように、カメラ4により得られた画像に基づいてロボット2の可動部を制御して、圧力センサがワーク10と接触可能である位置までツール16を移動させる。その後、作業制御部45は、圧力センサにより検知される圧力が所定の値となるように、ロボット2の可動部を制御すればよい。この場合、圧力センサにより検知される圧力は、位置情報の一例である。
あるいは、ロボット2の可動部に、カメラ4とは別個のカメラが取り付けられ、精密検出部42は、その別個のカメラにより生成された画像に対して上記の実施形態と同様の処理を実行することで、ワーク10の位置及び姿勢を検出してもよい。あるいはまた、ロボット2の可動部に、デプスカメラといった距離センサが取り付けられてもよい。そして精密検出部42は、距離センサにより検知される、ワーク10の各部までの距離の測定値に基づいて、距離センサを基準とする、ワーク10の位置及び姿勢を検出すればよい。なお、その別個のカメラ及び距離センサは、位置情報取得部の他の一例であり、その別個のカメラにより生成される画像及び距離センサによる距離の測定値は、位置情報の他の一例である。
他の実施形態によれば、カメラ4は、ロボット2の可動部とは別個に固定的に取り付けられてもよい。例えば、カメラ4は、ロボット2が設置される室内の天井に、下方を向けて取り付けられてもよい。この場合、カメラ4により得られた画像の各画素について、カメラ4から見て、その画素に対応する方位にワーク10が位置するときのカメラ4とワーク10間の距離を表す距離テーブルがメモリ33に予め記憶されていればよい。ロバスト検出部41及び精密検出部42は、画像上でワーク10が表された領域を検出すると、距離テーブルを参照して、その領域の重心が位置する画素に対応する距離を、カメラ4からワーク10までの距離として推定することで、実空間でのワーク10の位置を検出すればよい。またこの場合には、カメラ4の位置は変化しないので、ロバスト検出部41及び精密検出部42は、カメラ4の位置を基準とするカメラ座標系から世界座標系への変換式を、カメラ座標系で表されたワーク10の位置及び姿勢に適用することで、世界座標系におけるワーク10の位置及び姿勢を容易に求めることができる。そしてアプローチ制御部44及び作業制御部45は、世界座標系で表されるワーク10の位置及び姿勢に基づいて、上記の実施形態と同様に、ロボット2の可動部を制御すればよい。
また他の実施形態によれば、物体検出装置と、ロボット2の制御装置とは別個に設けられてもよい。
図6は、この変形例による、ロボットシステム100の概略構成図である。ロボットシステム100は、ロボット2と、ロボット2を制御する制御装置3と、ロボット2の可動部に取り付けられ、対象物体の一例であるワーク10を撮影するためのカメラ4と、物体検出装置6とを有する。ロボット2と制御装置3とは、通信回線5を介して通信可能に接続される。さらに、カメラ4と物体検出装置6とは、通信回線7を介して通信可能に接続され、制御装置3と物体検出装置6とは、通信回線8を介して通信可能に接続される。なお、カメラ4、制御装置3及び物体検出装置6は、所定の通信規格に準拠した通信ネットワークを介して相互に通信可能に接続されてもよい。
ロボットシステム100は、図1に示されるロボットシステム1と比較して、制御装置3と別個に物体検出装置6が設けられた点で相違する。そこで以下では、物体検出装置6及びその関連部分について説明する。
図7は、物体検出装置6の概略構成図である。物体検出装置6は、通信インターフェース61と、メモリ62と、プロセッサ63とを有する。さらに、物体検出装置6は、タッチパネルといったユーザインターフェース(図示せず)を有していてもよい。
通信インターフェース61は、例えば、物体検出装置6を通信回線7及び通信回線8と接続するための通信インターフェース及び通信回線7及び通信回線8を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース61は、例えば、カメラ4から、通信回線7を介して画像を受信してプロセッサ63へわたす。また通信インターフェース61は、制御装置3から、各画像生成時における、各可動部の絶対位置に基づいて決定されるカメラ4の位置及び向きを表す情報を受信して、プロセッサ63へわたす。さらに、通信インターフェース61は、ワーク10の検出された位置及び姿勢を表す情報をプロセッサ63から受け取って、通信回線8を介して制御装置3へ出力する。
メモリ62は、記憶部の他の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ62は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
メモリ62は、物体検出装置6のプロセッサ63で実行される、物体検出処理で利用される各種の情報、例えば、識別器を規定するパラメータ群、ワーク10の検出に用いられるテンプレート、カメラパラメータ、及び、カメラ4から受け取った画像を記憶する。さらに、メモリ62は、物体検出処理の結果として検出されたワーク10の位置及び姿勢を表す情報を記憶する。
プロセッサ63は、制御部の一例であり、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ63は、数値演算用のプロセッサを有していてもよい。そしてプロセッサ63は、物体検出処理を実行する。すなわち、プロセッサ63は、カメラ4から画像を受信する度に、図3に示された、制御装置3のプロセッサ34の各部のうち、ロバスト検出部41、精密検出部42及び判定部43の処理を実行すればよい。そしてプロセッサ63は、検出されたワーク10の位置及び姿勢を表す情報を、通信インターフェース61及び通信回線8を介して制御装置3へ出力する。なお、プロセッサ63は、検出されたワーク10の位置及び姿勢を表す情報に、カメラ4とワーク10とが所定の位置関係を満たすか否かの判定結果を表す情報を含めてもよい。制御装置3のプロセッサ34は、受信した、ワーク10の位置及び姿勢に基づいて、アプローチ制御部44及び作業制御部45の処理を実行すればよい。
この変形例によれば、物体検出処理と、ロボットの制御とが、別個の装置により実行されるので、ロボットの制御装置のプロセッサの演算負荷が軽減される。
プロセッサ63のロバスト検出部41は、カメラ4から受信した各画像について、その画像上でのワーク10の位置、またはワーク10の位置と姿勢を検出するだけで、実空間でのワーク10の位置及び姿勢を検出しなくてもよい。同様に、プロセッサ63の精密検出部42は、カメラ4から受信した各画像について、その画像上でのワーク10の位置、またはワーク10の位置と姿勢を検出するだけで、実空間でのワーク10の位置及び姿勢を検出しなくてもよい。この場合には、プロセッサ63は、画像上でのワーク10の位置及び姿勢を、通信インターフェース61及び通信回線8を介して制御装置3へ出力すればよい。そして制御装置3のプロセッサ34は、ロバスト検出部41及び精密検出部42における、画像上でのワーク10の位置及び姿勢に基づいて、実空間でのワーク10の位置及び姿勢を検出する処理を実行すればよい。
さらに他の変形例によれば、カメラ4及び制御装置3と通信可能に接続される複数のサーバが、物体検出処理を実行してもよい。この場合には、例えば、複数のサーバの何れか一つがロバスト検出部41の処理を実行し、複数のサーバの他の一つが精密検出部42の処理を実行し、複数のサーバのさらに他の一つが判定部43の処理を実行してもよい。
また、制御装置3のプロセッサ34が有する各部の処理を実行するためのコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
1、100 ロボットシステム
2 ロボット
3 制御装置
4 カメラ
5、7、8 通信回線
6 物体検出装置
11 台座
12 回転ステージ
13 第1のアーム
14 第2のアーム
15 リスト
16 ツール
21〜25 関節
31 通信インターフェース
32 駆動回路
33 メモリ
34 プロセッサ
35 サーボモータ
41 ロバスト検出部
42 精密検出部
43 判定部
44 アプローチ制御部
45 作業制御部

Claims (9)

  1. 対象物体を所定の方向から見たときの前記対象物体の外観の特徴を表すテンプレートを記憶する記憶部と、
    前記対象物体を撮影して前記対象物体が表された画像を生成する撮像部と前記対象物体とが所定の位置関係を満たさない場合に、前記画像から前記対象物体を検出するように予め学習された識別器に前記画像を入力することで、前記画像上での前記対象物体の位置を検出するロバスト検出部と、
    前記撮像部と前記対象物体とが前記所定の位置関係を満たす場合に、前記画像と前記テンプレートとを照合することで、前記画像上での前記対象物体の位置を検出する精密検出部と、
    を有する物体検出装置。
  2. 前記ロバスト検出部は、検出された前記画像上での前記対象物体の位置に基づいて実空間での前記対象物体の位置を検出し、
    前記精密検出部は、検出された前記画像上での前記対象物体の位置に基づいて実空間での前記対象物体の位置を検出する、請求項1に記載の物体検出装置。
  3. 前記精密検出部は、前記画像と前記テンプレートとが最も一致するときの前記画像に対する前記テンプレートの相対的な位置関係に応じて前記画像上での前記対象物体の位置及び姿勢を検出し、前記画像上での前記対象物体の位置及び姿勢に基づいて実空間での前記対象物体の位置及び姿勢を検出する、請求項2に記載の物体検出装置。
  4. 前記識別器は、前記画像に表された前記対象物体の姿勢を検出するようにさらに学習され、前記ロバスト検出部は、前記識別器に前記画像を入力することで前記画像上での前記対象物体の位置及び姿勢を検出し、前記画像上での前記対象物体の位置及び姿勢に基づいて実空間での前記対象物体の位置及び姿勢を検出する、請求項2または3に記載の物体検出装置。
  5. 前記対象物体の前記実空間での位置と前記撮像部との位置に応じて、前記撮像部と前記対象物体とが前記所定の位置関係を満たすか否か判定し、前記撮像部と前記対象物体とが前記所定の位置関係を満たさない場合に、前記ロバスト検出部に前記画像上での前記対象物体の位置を検出させ、一方、前記撮像部と前記対象物体とが前記所定の位置関係を満たす場合に、前記精密検出部に前記画像上での前記対象物体の位置を検出させる判定部をさらに有する、請求項2〜4の何れか一項に記載の物体検出装置。
  6. 少なくとも一つの可動部を有する自動機械の制御装置であって、
    前記自動機械の作業対象となる対象物体を所定の方向から見たときの前記対象物体の外観の特徴を表すテンプレートを記憶する記憶部と、
    前記可動部に取り付けられ、前記対象物体を撮影して前記対象物体が表された画像を生成する撮像部と前記対象物体とが所定の位置関係を満たさない場合に、前記画像から前記対象物体を検出するように予め学習された識別器に前記画像を入力することで、前記画像上での前記対象物体の位置を検出し、前記画像上での前記対象物体の位置に基づいて実空間での前記対象物体の位置を検出するロバスト検出部と、
    前記撮像部と前記対象物体とが前記所定の位置関係を満たす場合に、前記画像と前記テンプレートとを照合することで、前記画像上での前記対象物体の位置を検出し、前記画像上での前記対象物体の位置に基づいて実空間での前記対象物体の位置を検出し、あるいは、前記対象物体に対する相対的な位置を表す位置情報を取得する位置情報取得部により得られた前記位置情報に基づいて実空間での前記対象物体の位置を検出する精密検出部と、
    前記撮像部と前記対象物体とが前記所定の位置関係を満たさない場合に、前記ロバスト検出部により検出された実空間での前記対象物体の位置に基づいて、前記撮像部と前記対象物体とが前記所定の位置関係を満たすように前記可動部を制御するアプローチ制御部と、
    前記撮像部と前記対象物体とが前記所定の位置関係を満たす場合に、前記精密検出部により検出された実空間での前記対象物体の位置に基づいて、前記対象物体に対して前記自動機械が所定の作業を実施可能な位置へ前記可動部を移動させるよう、前記可動部を制御する作業制御部と、
    を有する制御装置。
  7. 前記所定の位置関係は、前記撮像部と前記対象物体間の距離が所定距離以下となることである、請求項6に記載の制御装置。
  8. 前記所定の位置関係は、前記撮像部と前記対象物体間の距離が所定距離以下であり、かつ、前記撮像部に対して前記対象物体が所定の姿勢となっていることであり、
    前記識別器は、前記画像に表された前記対象物体の姿勢を検出するようにさらに学習され、前記ロバスト検出部は、前記識別器に前記画像を入力することで前記画像上での前記対象物体の位置及び姿勢を検出し、前記画像上での前記対象物体の位置及び姿勢に基づいて実空間での前記対象物体の位置及び姿勢を検出し、
    前記アプローチ制御部は、前記ロバスト検出部により検出された実空間での前記対象物体の位置及び姿勢に基づいて、前記撮像部と前記対象物体間の距離が前記所定距離以下であり、かつ、前記撮像部に対して前記対象物体が前記所定の姿勢となるように前記可動部を制御する、請求項6に記載の制御装置。
  9. 象物体を撮影して前記対象物体が表された画像を生成する撮像部と前記対象物体とが所定の位置関係を満たさない場合に、前記画像から前記対象物体を検出するように予め学習された識別器に前記画像を入力することで、前記画像上での前記対象物体の位置を検出し、
    前記撮像部と前記対象物体とが前記所定の位置関係を満たす場合に、前記対象物体を所定の方向から見たときの前記対象物体の外観の特徴を表すテンプレートと前記画像とを照合することで、前記画像上での前記対象物体の位置を検出する、
    ことをコンピュータに実行させるための物体検出用コンピュータプログラム。
JP2019030506A 2019-02-22 2019-02-22 物体検出装置、制御装置及び物体検出用コンピュータプログラム Active JP6978454B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019030506A JP6978454B2 (ja) 2019-02-22 2019-02-22 物体検出装置、制御装置及び物体検出用コンピュータプログラム
DE102020000964.6A DE102020000964A1 (de) 2019-02-22 2020-02-14 Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm
US16/790,742 US11285624B2 (en) 2019-02-22 2020-02-14 Object detection device, control device, and object detection computer program
CN202010101889.8A CN111604942A (zh) 2019-02-22 2020-02-19 物体检测装置、控制装置以及物体检测用计算机程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019030506A JP6978454B2 (ja) 2019-02-22 2019-02-22 物体検出装置、制御装置及び物体検出用コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2020135623A JP2020135623A (ja) 2020-08-31
JP6978454B2 true JP6978454B2 (ja) 2021-12-08

Family

ID=72139035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019030506A Active JP6978454B2 (ja) 2019-02-22 2019-02-22 物体検出装置、制御装置及び物体検出用コンピュータプログラム

Country Status (4)

Country Link
US (1) US11285624B2 (ja)
JP (1) JP6978454B2 (ja)
CN (1) CN111604942A (ja)
DE (1) DE102020000964A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7122821B2 (ja) * 2017-12-15 2022-08-22 川崎重工業株式会社 ロボットシステム及びロボット制御方法
JP7135495B2 (ja) * 2018-06-26 2022-09-13 セイコーエプソン株式会社 三次元計測装置、制御装置およびロボットシステム
US11845616B1 (en) * 2020-08-11 2023-12-19 Amazon Technologies, Inc. Flattening and item orientation correction device
CN112720431A (zh) * 2021-01-13 2021-04-30 东南大学 一种六轴机械臂
JP2022138329A (ja) * 2021-03-10 2022-09-26 オムロン株式会社 認識装置、ロボット制御システム、認識方法、およびプログラム
DE102021109336B4 (de) 2021-04-14 2023-06-01 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109333B4 (de) 2021-04-14 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109332B4 (de) 2021-04-14 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
DE102021109334B4 (de) 2021-04-14 2023-05-25 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021130535B3 (de) 2021-11-22 2023-05-17 Helmut Gutzmann System und Verfahren zur Positionierung einer bewegbaren Manipulatoreinheit
CN116551701B (zh) * 2023-07-10 2023-10-10 珠海格力电器股份有限公司 机器人控制方法、装置、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056300A (ja) * 2003-08-07 2005-03-03 Yaskawa Electric Corp 視覚フィードバック装置及び方法
CN101396829A (zh) 2007-09-29 2009-04-01 株式会社Ihi 机器人装置的控制方法以及机器人装置
JP5800494B2 (ja) * 2010-11-19 2015-10-28 キヤノン株式会社 特定領域選択装置、特定領域選択方法及びプログラム
US10542959B2 (en) * 2013-12-19 2020-01-28 Koninklijke Philips N.V. Object tracking device
US9349076B1 (en) * 2013-12-20 2016-05-24 Amazon Technologies, Inc. Template-based target object detection in an image
US9424470B1 (en) * 2014-08-22 2016-08-23 Google Inc. Systems and methods for scale invariant 3D object detection leveraging processor architecture
JP2018126799A (ja) 2017-02-06 2018-08-16 セイコーエプソン株式会社 制御装置、ロボットおよびロボットシステム
JP6376296B1 (ja) 2017-02-09 2018-08-22 三菱電機株式会社 位置制御装置及び位置制御方法
DE112017007025T5 (de) * 2017-02-09 2019-10-24 Mitsubishi Electric Corporation Positionssteuerungseinrichtung und positionssteuerungsverfahren
JP6542824B2 (ja) * 2017-03-13 2019-07-10 ファナック株式会社 入力画像から検出した対象物の像の尤度を計算する画像処理装置および画像処理方法
JP2018167334A (ja) * 2017-03-29 2018-11-01 セイコーエプソン株式会社 教示装置および教示方法
JP6546618B2 (ja) 2017-05-31 2019-07-17 株式会社Preferred Networks 学習装置、学習方法、学習モデル、検出装置及び把持システム
JP2018158439A (ja) 2018-03-15 2018-10-11 株式会社東芝 物体ハンドリング装置、制御装置、および較正方法

Also Published As

Publication number Publication date
CN111604942A (zh) 2020-09-01
DE102020000964A1 (de) 2020-08-27
JP2020135623A (ja) 2020-08-31
US20200269448A1 (en) 2020-08-27
US11285624B2 (en) 2022-03-29

Similar Documents

Publication Publication Date Title
JP6978454B2 (ja) 物体検出装置、制御装置及び物体検出用コンピュータプログラム
US11117262B2 (en) Intelligent robots
US20140018957A1 (en) Robot system, robot, robot control device, robot control method, and robot control program
JP2012254518A (ja) ロボット制御システム、ロボットシステム及びプログラム
JPH04344503A (ja) ロボットの数値制御装置
US10664939B2 (en) Position control system, position detection device, and non-transitory recording medium
CN104915947A (zh) 图像处理装置、***、图像处理方法及图像处理程序
Husain et al. Realtime tracking and grasping of a moving object from range video
US10207409B2 (en) Image processing method, image processing device, and robot system
JP7359577B2 (ja) ロボット教示装置及びロボットシステム
US11961255B2 (en) Object detection device and object detection computer program
CN109079777B (zh) 一种机械臂手眼协调作业***
WO2021117479A1 (ja) 情報処理装置、方法およびプログラム
JP7372076B2 (ja) 画像処理システム
CN116749233A (zh) 基于视觉伺服的机械臂抓取***及方法
CN113232022B (zh) 一种圆盘传送跟踪控制方法、***、装置及存储介质
JP7376318B2 (ja) アノテーション装置
WO2021247641A1 (en) Automatic detection and tracking of pallet pockets for automated pickup
Shaw et al. Automatic classification of moving objects on an unknown speed production line with an eye-in-hand robot manipulator
JP2017068553A (ja) 解析システム
JP2012236266A (ja) ロボット制御システム、ロボットシステム及びプログラム
KR102515259B1 (ko) Ai 물체 인식 학습용 라벨링 데이터 자동 수집 장치
Lee et al. Multi-sensor aided deep pose tracking
Hung et al. A SIFT method application for a six DOF manipulator grasping an object against complicated environment
KR20240096990A (ko) 비고정 물체를 위치 이동시키는 로봇의 제어 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211004

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: 20211012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211111

R150 Certificate of patent or registration of utility model

Ref document number: 6978454

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150