JP2024066817A - カメラの校正方法、カメラ校正システム、及び、コンピュータープログラム - Google Patents
カメラの校正方法、カメラ校正システム、及び、コンピュータープログラム Download PDFInfo
- Publication number
- JP2024066817A JP2024066817A JP2022176543A JP2022176543A JP2024066817A JP 2024066817 A JP2024066817 A JP 2024066817A JP 2022176543 A JP2022176543 A JP 2022176543A JP 2022176543 A JP2022176543 A JP 2022176543A JP 2024066817 A JP2024066817 A JP 2024066817A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- camera
- calibration
- image
- mask
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 187
- 238000004590 computer program Methods 0.000 title claims description 11
- 230000008569 process Effects 0.000 claims abstract description 108
- 230000008859 change Effects 0.000 claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims description 33
- 239000013598 vector Substances 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 14
- 230000036544 posture Effects 0.000 description 11
- 230000009466 transformation Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000010365 information processing Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005452 bending Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/776—Validation; Performance evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Artificial Intelligence (AREA)
- Automation & Control Theory (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Manipulator (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
【課題】校正用治具を用いることなくカメラの校正を行うことのできる技術を提供する。
【解決手段】本開示の校正方法は、カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、ロボットに対するカメラの外部パラメーターを求める校正処理を実行する校正工程と、校正処理の実行後に、外部パラメーターの有効性を判定する判定工程と、を含む。判定工程は、(a)校正処理の実行後に、ロボットの少なくとも一部を含む第2画像をカメラで撮影する工程と、(b)第1画像と第2画像とを用いて、カメラとロボットの位置関係が変化しているか否か判定し、位置関係の変化の有無に応じて外部パラメーターが無効か有効かを判定する工程と、を含む。
【選択図】図4
【解決手段】本開示の校正方法は、カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、ロボットに対するカメラの外部パラメーターを求める校正処理を実行する校正工程と、校正処理の実行後に、外部パラメーターの有効性を判定する判定工程と、を含む。判定工程は、(a)校正処理の実行後に、ロボットの少なくとも一部を含む第2画像をカメラで撮影する工程と、(b)第1画像と第2画像とを用いて、カメラとロボットの位置関係が変化しているか否か判定し、位置関係の変化の有無に応じて外部パラメーターが無効か有効かを判定する工程と、を含む。
【選択図】図4
Description
本開示は、ロボットに対するカメラの校正方法、カメラ校正システム、及び、コンピュータープログラムに関する。
ロボットの作業でカメラを使用する場合には、予め校正(キャリブレーション)を行うことによって、カメラの校正パラメーターが設定される。校正パラメーターは、レンズの性能やレンズと画素の関係を表す内部パラメーターと、カメラとロボットとの相対位置を表す外部パラメーターとを含む。
特許文献1には、カメラ校正パラメーターを求める方法が開示されている。この従来技術では、まず、対象物に関する6組以上の3次元点と、3次元点それぞれに対応する画像上の2次元点との変換を表す誤差関数を複数の部分問題に分割し、それぞれにおいて最適解候補を算出する。そして、最適解候補を初期値として、誤差関数によって得られる誤差を最小とする最適解を求め、その最適解を最適なカメラ校正パラメーターとして求めている。
しかしながら、上記従来技術では、6組以上の3次元点を持つ対象物を撮影する際に、カメラ視野内のあらかじめ決められた位置に校正用治具を正確に配置する必要がある。この配置条件は、ロボットを対象物とする場合には困難な場合がある。例えば、ロボットが作業を開始した後の場合、ロボットの周囲に校正用治具を配置するスペースを確保しにくい場合があり、ユーザーに作業環境の変更を強いることになる可能性がある。また、ロボットが柵で囲われておらず、人間の隣で作業を行うロボットなど、ロボットの動作範囲が動的に変化する環境では、作業内容が切り替わるたびにカメラの設置位置を変更する必要がある。このため、作業内容が変わる度にユーザーに校正パラメーターを求めるための作業を強いることになる。そこで、特別な校正用治具を用いることなく、カメラの校正処理を容易に行うことのできる技術が望まれる。
また、カメラの校正処理を一度実行した後にカメラとロボットの相対位置が変化すると、校正パラメーターが無効となる。そこで、校正処理の後に校正パラメーターが有効か否かを容易に判定できる技術が望まれる。
本開示は、上述した課題の少なくとも一部を解決するためになされたものである。
本開示の第1の形態によれば、カメラの校正方法が提供される。この校正方法は、前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正工程と、前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定工程と、を含む。前記判定工程は、(a)前記校正処理の実行後に、前記ロボットの少なくとも一部を含む第2画像を前記カメラで撮影する工程と、(b)前記第1画像と前記第2画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する工程と、を含む。
本開示の第2の形態によれば、カメラ校正システムが提供される。このカメラ校正システムは、ロボットと、前記ロボットを撮影可能に設置されたカメラと、前記カメラで撮影された前記ロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正実行部と、前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定部と、を備える。前記判定部は、前記校正処理の実行後に前記カメラで撮影された前記ロボットの少なくとも一部を含む第2画像と、前記第1画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する判定処理を実行する。
本開示の第3の形態によれば、カメラを校正する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理と、前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定処理と、を前記プロセッサーに実行させる。前記判定処理は、(a)前記校正処理の実行後に、前記ロボットの少なくとも一部を含む第2画像を前記カメラで撮影する処理と、(b)前記第1画像と前記第2画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する処理と、を含む。
本開示の第4の形態によれば、カメラの校正方法が提供される。この校正方法は、前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正工程を含み、前記校正工程は、前記ロボットの位置姿勢を決定可能な特定部分を前記第1画像から認識し、前記特定部分の認識結果から前記外部パラメーターを推定する。
A.第1実施形態:
図1は、一実施形態におけるカメラ校正システムの一例を示す説明図である。このシステムは、ロボット100と、ロボット100を制御するロボットコントローラー200と、情報処理装置300と、カメラ410,420と、作業台500とを備えるロボットシステムである。情報処理装置300は、カメラ410,420の校正パラメーターを決定する校正処理装置としての機能を有しており、例えばパーソナルコンピューターで実現される。
図1は、一実施形態におけるカメラ校正システムの一例を示す説明図である。このシステムは、ロボット100と、ロボット100を制御するロボットコントローラー200と、情報処理装置300と、カメラ410,420と、作業台500とを備えるロボットシステムである。情報処理装置300は、カメラ410,420の校正パラメーターを決定する校正処理装置としての機能を有しており、例えばパーソナルコンピューターで実現される。
ロボット100は、非可動部である基台110と、可動部であるロボットアーム120と、を備えている。ロボットアーム120の先端部には、エンドエフェクターとしてのロボットハンド150が装着されている。ロボットハンド150は、ワークWKを把持することが可能なグリッパーや吸着パッドとして実現可能である。ロボットハンド150の先端部には、ロボット100の制御点としてのTCP(Tool Center Point)が設定されている。なお、制御点TCPは、任意の位置に設定可能である。
ロボットアーム120は、6つの関節J1~J6で順次接続されている。これらの関節J1~J6のうち、3つの関節J2,J3,J5は曲げ関節であり、他の3つの関節J1,J4,J6はねじり関節である。本実施形態では6軸ロボットを例示しているが、複数の関節を有する任意のロボットアーム機構を有するロボットを用いることが可能である。また、本実施形態のロボット100は、垂直多関節ロボットであるが、水平多関節ロボットを使用してもよい。
作業台500には、第1容器510と第2容器520が設置されている。第1容器510には、複数のワークWKが収容される。第2容器520は、第1容器510から取り出されたワークWKを載置する場所として使用される。ロボット100は、第1容器510からワークWKを取り出して、第2容器520に載置する作業を実行する。この際、ワークWKは、第2容器520内の予め定められた位置に、予め定められた姿勢で載置される。この作業を正確に行うため、カメラ410,420を用いてワークWKの位置姿勢の認識が実行される。なお、第2容器520を搬送ベルトで搬送してもよい。或いは、第1容器510を省略して、ワークWKを搬送ベルトで搬送してもよい。
作業台500の上方には、ワークWKとロボット100を撮影するカメラ410,420が設置されている。カメラ410,420で撮影された画像は、ワークWKとロボット100のそれぞれについて、3次元的な位置及び姿勢を求めるために使用される。本開示では、物体の3次元的な位置及び姿勢を「位置姿勢」と呼ぶ。また、物体の位置姿勢を認識することを、単に「物体認識」と呼ぶ。
本実施形態では、作業中に障害物を回避してロボットアーム120を動作させるために、複数のカメラ410,420を使用する。但し、1台のカメラ410のみを用いて作業を行っても良い。複数のカメラを用いて作業を行う場合には、それぞれのカメラについて後述する校正処理が実行される。但し、以下では主として第1のカメラ410について校正処理を行う場合について説明する。
カメラ410の校正処理では、カメラ410で撮影されたロボット100の少なくとも一部を含む画像を用いて、校正パラメーターが決定される。この際、画像に含まれる非可動部の画像部分が利用される。非可動部としては、例えば以下を利用可能である。
(a)ロボット100の基台110
(b)ロボット100の基台110が設置される作業台又は架台
これらの非可動部は、いずれもロボット100の作業中に移動したり変化したりせず、固定された位置に存在する固定部分である。
(a)ロボット100の基台110
(b)ロボット100の基台110が設置される作業台又は架台
これらの非可動部は、いずれもロボット100の作業中に移動したり変化したりせず、固定された位置に存在する固定部分である。
本実施形態では、非可動部として、ロボット100の基台110を使用する。従って、カメラ410は、ワークWKと基台110の両方を撮影可能な状態で設置されていることが好ましい。カメラ410の校正処理の詳細については後述する。
カメラ410としては、例えば、RGBDカメラやステレオカメラを用いることが好ましいが、単眼カメラを用いてもよい。RGBDカメラは、RGB画像を撮影するRGBカメラと、深度画像(Depth image)を撮影するDカメラと、を有するカメラである。カメラ420も同様である。
図2は、以下で説明する座標系の関係を示す概念図である。但し、図2では、ロボット100は簡略化されている。
(1)ロボット座標系Σr
ロボット座標系Σrは、ロボット100の予め定められた位置を座標原点とする直交3次元座標系である。本実施形態では、ロボット座標系Σrの原点O1は、非可動部である基台110の特定位置又は基準位置と一致しているものと仮定する。但し、両者が一致している必要はなく、両者の相対的な位置関係が既知であれば、後述する校正処理によってカメラ410の外部パラメーターを決定することが可能である。
(2)カメラ座標系Σc
カメラ座標系Σcは、カメラ410の予め定められた位置を座標原点とする直交3次元座標系である。
(3)画素座標系Σp
画素座標系Σpは、カメラ410で撮影された画像の直交二次元座標系である。
(1)ロボット座標系Σr
ロボット座標系Σrは、ロボット100の予め定められた位置を座標原点とする直交3次元座標系である。本実施形態では、ロボット座標系Σrの原点O1は、非可動部である基台110の特定位置又は基準位置と一致しているものと仮定する。但し、両者が一致している必要はなく、両者の相対的な位置関係が既知であれば、後述する校正処理によってカメラ410の外部パラメーターを決定することが可能である。
(2)カメラ座標系Σc
カメラ座標系Σcは、カメラ410の予め定められた位置を座標原点とする直交3次元座標系である。
(3)画素座標系Σp
画素座標系Σpは、カメラ410で撮影された画像の直交二次元座標系である。
画素座標系Σpの画素座標値(u,v)とカメラ座標系Σcの3次元座標値(Xc,Yc,Zc)は、次式に示すように、カメラ410の内部パラメーターを用いて変換可能である。
ここで、Kx,Kyは歪係数、Ox,Oyは光学中心、fは焦点距離である。
カメラ座標系Σcの3次元座標値(Xc,Yc,Zc)とロボット座標系Σrの3次元座標値(Xr,Yr,Zr)は、次式に示すように、カメラ410の外部パラメーターで表される同次変換行列rHcを用いて変換可能である。
ここで、r11~r33は回転行列の要素、tx,ty,tzは並進ベクトルの要素である。
本実施形態では、カメラ410の校正パラメーターのうち、内部パラメーターは予め設定されているものと仮定する。校正処理は、外部パラメーターを決定するために行われる。
図3は、情報処理装置300の機能を示すブロック図である。情報処理装置300は、プロセッサー310と、メモリー320と、インターフェイス回路330と、を有している。インターフェイス回路330には、入力デバイス340と表示デバイス350が接続されており、また、ロボットコントローラー200も接続されている。ロボットコントローラー200は、カメラ410,420に接続されており、また、ロボット100の各関節のモーター電流を測定する電流センサー160と、各関節の変位を測定するエンコーダー170に接続されている。
プロセッサー310は、校正実行部610と、判定部620と、物体認識部630と、経路計画部640と、ロボット制御部650の機能を有する。校正実行部610は、ロボット100に対するカメラ410,420の校正処理を実行することによって、カメラ410,420の外部パラメーターをそれぞれ決定する。判定部620は、校正処理の実行後に、外部パラメーターの有効性を判定する判定処理を実行する。物体認識部630は、ロボット100の作業において、カメラ410,420を用いて撮影された画像を用いて、ワークWKや障害物を認識する処理を実行する。経路計画部640は、ロボットアーム120が障害物やロボット100自身に衝突しないように移動経路を計算により求めて、ロボット制御部650に通知する。移動経路は、ロボットアーム120の離散的な姿勢群である。ロボット制御部650は、移動経路に従ってロボットアーム120を移動させるとともに、ワークWKに関する作業をロボット100に行わせる処理を実行する。これらの各部の機能は、メモリー320に格納されたコンピュータープログラムをプロセッサー310が実行することによってそれぞれ実現される。但し、各部の機能の一部又は全部をハードウェア回路で実現してもよい。
メモリー320には、ロボット属性データRDと、ロボット特徴データCDと、校正パラメーターCPと、ロボット制御プログラムRPが格納される。ロボット属性データRDは、ロボット100の機械的構造や可動範囲などの属性を示すデータであり、ロボット100の外形を表すCADデータを含んでいる。ロボット特徴データCDは、非可動部である基台110の特徴を表すデータを含んでいる。校正パラメーターCPは、各カメラ410,420についての内部パラメーターと外部パラメーターとを含んでいる。ロボット制御プログラムRPは、ロボット100を動作させる複数の命令で構成される。
図4は、カメラの校正処理を伴うロボットの作業手順を示すフローチャートである。以下では、主として第1のカメラ410について校正処理を行う場合を説明するが、第2のカメラ420についても同様に校正処理が行われる。
ステップS110では、校正実行部610が、カメラ410を用いてロボット100の少なくとも一部を含む第1画像を撮影する。この第1画像は、非可動部である基台110を少なくとも含む画像である。
ステップS120では、校正実行部610が、ロボット100のCADデータを用いて、第1画像から、非可動部である基台110を認識する。ステップS130では、基台110が認識されたか否かが判定される。この判定は、例えば、校正実行部610による基台110の認識結果の信頼度に応じて行うことができる。校正実行部610や物体認識部630による物体の認識処理は、その認識結果の信頼度(confidence値)も出力されるように構成されていることが好ましい。認識結果の信頼度が閾値よりも低い場合には、物体が認識されないものと判定される。基台110がロボットアーム120によって隠されて基台110の一部が見えていない場合には、基台110が認識されないので、ステップS135に進み、ロボット100の姿勢を変更して、ステップS110に戻り、第1画像を再度撮影する。なお、ステップS135では、ロボットアーム120が、予め設定された校正用姿勢を取るようにすることが好ましい。校正用姿勢は、カメラ410の視野において、非可動部である基台110がロボットアーム120によって隠されない姿勢である。校正用姿勢は、個々のカメラ410,420毎に異なる姿勢としてもよく、或いは、複数のカメラ410,420に共通する姿勢としても良い。
ステップS140では、校正実行部610が、第1画像を用いてカメラ410の外部パラメーターを推定する。外部パラメーターの推定方法としては、例えば以下のような方法が考えられる。
<外部パラメーターの推定方法M1>
(1a)非可動部である基台110のCADデータから、基台110の複数の基準特徴を予め抽出して保存しておく。「特徴」としては、エッジ等の特定の線分や、特定の点などを用いることができる。
(1b)第1画像から、基台110の複数の画像特徴を抽出する。
(1c)複数の基準特徴と複数の画像特徴の関係から、カメラ座標系Σcにおける基台110の位置姿勢を示す6自由度情報を決定する。
(1d)カメラ座標系Σcにおける基台110の位置姿勢から、外部パラメーターを決定する。
(1a)非可動部である基台110のCADデータから、基台110の複数の基準特徴を予め抽出して保存しておく。「特徴」としては、エッジ等の特定の線分や、特定の点などを用いることができる。
(1b)第1画像から、基台110の複数の画像特徴を抽出する。
(1c)複数の基準特徴と複数の画像特徴の関係から、カメラ座標系Σcにおける基台110の位置姿勢を示す6自由度情報を決定する。
(1d)カメラ座標系Σcにおける基台110の位置姿勢から、外部パラメーターを決定する。
上述した処理(1a)~(1c)の具体的な方法としては、例えば、特開2013-50947号公報や特開平9-167234号公報に開示された方法を使用可能である。特開2013-50947号公報に開示された方法では、まず、物体を含む画像の2値マスクを作成し、2値マスクからシングレットのセットを抽出する。各シングレットは、画像内の物体の内側および外側輪郭内にある点を表す。そして、シングレットのセットを連結し、デュプレックス行列として表されるメッシュにし、候補姿勢のセットを作るべく2つのデュプレックス行列を比較し、物体姿勢推定値によって物体の姿勢を推定する。特開平9-167234号公報に開示された方法では、物体のCAD情報から物体を所定方向の直交面に投影して導いたCAD図形特徴量を算出し、カメラが所定方向から捉えた物体から得られる2次元画像におけるカメラ図形特徴量を算出し、CAD図形特徴量とカメラ図形特徴量とを比較して、カメラが捉えた物体の位置姿勢を推定する。
<外部パラメーターの推定方法M2>
(2a)第1画像を入力とし、非可動部である基台110の位置姿勢を出力とするように構成された機械学習モデルを作成し、学習済みの機械学習モデルを保存しておく。
(2b)基台110を含む第1画像を機械学習モデルに入力して、カメラ座標系Σcにおける基台110の位置姿勢を示す6自由度情報を得る。
(2d)カメラ座標系Σcにおける基台110の位置姿勢から、外部パラメーターを決定する。
機械学習モデルとしては、例えば畳み込みニューラルネットワークを使用できる。また、機械学習モデルは、第1画像を入力とし、外部パラメーターを出力とするように構成してもよい。
(2a)第1画像を入力とし、非可動部である基台110の位置姿勢を出力とするように構成された機械学習モデルを作成し、学習済みの機械学習モデルを保存しておく。
(2b)基台110を含む第1画像を機械学習モデルに入力して、カメラ座標系Σcにおける基台110の位置姿勢を示す6自由度情報を得る。
(2d)カメラ座標系Σcにおける基台110の位置姿勢から、外部パラメーターを決定する。
機械学習モデルとしては、例えば畳み込みニューラルネットワークを使用できる。また、機械学習モデルは、第1画像を入力とし、外部パラメーターを出力とするように構成してもよい。
上述した処理(1a)~(1c)や処理(2a)~(2b)は、物体認識部630による物体認識にも利用可能である。
図5は、第1実施形態における校正処理の内容を示す説明図である。ここでは、上述した第1の推定方法M1を使用している。校正実行部610は、まず、カメラ410で撮影された第1画像IM1を用いて、基台110に関する画像特徴CRを抽出する。図5の右下には、第1画像IM1の中で抽出された画像特徴CRが実線で描かれており、他の外形は点線で描かれている。基台110に関する画像特徴CRは、例えば、第1画像IM1のエッジ等を抽出して多数の画像特徴を作成し、それらの画像特徴の中から、ロボット100のCADデータで表される基台110の外形に一致するものを選択することによって得ることができる。校正実行部610は、基台110に関する画像特徴CRと、予め設定されている基準特徴との関係から、基台110の位置姿勢の6自由度情報を推定し、基台110の位置姿勢からカメラ410の外部パラメーターを決定する。基準特徴は、図3に示したロボット特徴データCDとして予め準備されている。
基台110の位置姿勢は、ロボット座標系Σrの座標をカメラ座標系Σcの座標に変換する同次変換行列cHrとして表現することができる。図5の下部に示す第1画像IM1には、次式に示す同次変換行列cHrの例が表示されている。
ここで、Rは回転行列、tは並進ベクトルである。
並進ベクトルt=[-548.5, 94.4, 1289.1]Tは、カメラ座標系Σcで見た基台110の特定位置、即ちロボット座標系Σrの原点位置O1、の座標を表している。また、回転行列Rの3つの列成分は、カメラ座標系Σcで見たロボット座標系Σrの3つの基底ベクトルの成分に等しい。
この同次変換行列cHrは、外部パラメーターとしての同次変換行列rHcの逆行列であり、次式に示すように両者は容易に変換可能である。
ここで、RTは回転行列Rの転置行列である。一般に、回転行列Rの逆行列R-1は、転置行列RTに等しい。
このように、校正実行部610は、ロボット100の根元に近い非可動部である基台110をカメラ410で撮影し、基台110の位置姿勢を認識することによって、カメラ座標系Σcにおけるロボット100の設置位置と設置方向を求めることができる。また、この認識結果を用いてカメラ410の外部パラメーターを推定することが可能である。
複数のカメラ410,420について校正処理を行う場合には、個々のカメラについてステップS110~S140が実行される。なお、ステップS110,S120,S130,S135の処理は、複数のカメラのすべてについて非可動部である基台110を正しく認識できるまで繰り返し実行するようにしてもよい。
校正実行部610は、更に、複数のタイミングにおいて非可動部を同一のカメラで撮影することによって、複数の第1画像IM1を取得し、これらの複数の第1画像IM1から推定される複数の外部パラメーターの平均を用いて、そのカメラの外部パラメーターを決定するようにしてもよい。こうすれば、外部パラメーターをより正確に決定できる。
カメラ410の校正処理が終了すると、図4のステップS150に進み、ロボット制御部650が、ロボット100を用いた作業を開始する。ステップS150では、ロボット制御部650が、作業命令を1つ選択して実行する。この際、物体認識部630によってワークWKや障害物の認識が行われる。経路計画部640は、物体認識部630の認識結果を用いて、障害物を避けながらワークWKの移動作業を行うように経路計画を作成する。ステップS160では、ロボット制御部650が、残りの作業命令があるか否かを判定する。残りの作業命令がある場合には、ステップS170に進む。
ステップS170では、判定部620が、カメラ410の移動判定処理を実行する。この移動判定処理では、カメラ410の校正処理の実行後に同じカメラ410で撮影されたロボット100の第2画像と、前述した第1画像IM1とを用いて、カメラ410とロボット100の位置関係が変化しているか否が判定される。そして、位置関係の変化の有無に応じてカメラ410の外部パラメーターが無効か有効かが判定される。なお、カメラの移動判定処理は、1つの作業命令が完了する度に行う必要はなく、一定時間毎に定期的に実行するようにしてもよい。
図6は、第1実施形態におけるカメラの移動判定処理の処理手順を示すフローチャートであり、図7は、その処理内容を示す説明図である。ステップS210では、判定部620が、カメラ410を用いてロボット100の第2画像IM2を撮影する。カメラ410がロボット100に対して移動していなければ、第2画像IM2における基台110の位置姿勢が、第1画像IM1におけるものと同じはずである。
ステップS220では、第1画像IM1と第2画像IM2のそれぞれを用いて、ロボット100の領域を示す第1マスクMK1と第2マスクMK2を作成する。図7に示すように、第1マスクMK1は、ロボット100の領域を示すマスク領域MA1と、ワークWKなどの移動許容物体の領域を表すマスク領域MB1とを含む。マスク領域MB1は、移動許容物体が存在する範囲を示す矩形状の形状を有している。「移動許容物体」とは、ロボット100の作業中に移動することが許容される物体を意味している。移動許容物体としては、少なくともワークWKを含むものを使用可能である。また、ワークWKの容器やトレイ、搬送ベルトなどのように、作業中に移動することが許容される他の物体を移動許容物体として使用してもよい。第2マスクMK2も同様に、ロボット100の領域を示すマスク領域MA2と、移動許容物体の領域を表すマスク領域MB2とを含む。但し、移動許容物体の領域を示すマスク領域MB1,MB2は省略してもよい。いずれもの場合にも、第1マスクMK1は、第1画像IM1に含まれるロボット100の領域を包含するマスク領域を示すように作成される。第2マスクMK2も同様に、第2画像IM2に含まれるロボット100の領域を包含するマスク領域を示すように作成される。
マスク領域MA1,MA2,MB1,MB2の画素に対しては、画素値1が割り当てられ、他の領域の画素に対して画素値0が割り当てられる。通常は、第1画像IM1と第2画像IM2ではロボットアーム120の姿勢が異なるので、ロボット100のマスク領域MA1,MA2は互いに異なる。なお、個々の画像IM1,IM2におけるロボット100のマスク領域MA1,MA2は、ロボット100の外形を表すCADデータと、ロボットアーム120の姿勢と、カメラ410の外部パラメーターとを用いて算出可能である。移動許容物体の領域を示すマスク領域MB1,MB2もほぼ同様である。或いは、セマティックセグメンテーションを用いて個々の画像IM1,IM2の画像領域を異なる複数の物体の領域にそれぞれ分離し、その結果を用いてマスク領域MA1,MA2,MB1,MB2を決定するようにしてもよい。なお、第1マスクMK1は、ステップS220に先立って、図4のステップS110の後に作成しておいてもよい。
ステップS230では、判定部620が、第1マスクMK1と第2マスクMK2の論理和を取ることによって判定用マスクJMKを作成する。判定用マスクJMKにおいて、ロボット100に関するマスク領域JMAは、2つのマスク領域MA1,MA2の和領域である。移動許容物体に関するマスク領域JMBも、2つのマスク領域MB1,MB2の和領域である。ステップS240では、判定部620が、第1画像IM1から判定用マスクJMKのマスク領域JMA,JMBを除外した第1判定用画像JM1と、第2画像IM2から判定用マスクJMKのマスク領域JMA,JMBを除外した第2判定用画像JM2と、を作成する。第1判定用画像JM1は、第1画像IM1のうち、マスク領域JMA,JMBの画素値を0とした画像である。第2判定用画像JM2も同様である。
ステップS250、S260では、判定部620が、第1判定用画像JM1と第2判定用画像JM2における画素値の変化に応じて、カメラ410とロボット100の位置関係が変化しているか否かを判定する。具体的には、ステップS250では、第1判定用画像JM1と第2判定用画像JM2における画素値変化の指標値δPが算出される。画素値変化の指標値δPとしては、例えば以下のいずれかを使用可能である。
(1)第1判定用画像JM1の画素値P1と、第2判定用画像JM2の対応する画素位置の画素値P2の差分の絶対値|P1-P2|の平均値。この平均値は、マスク領域以外の領域について算出することが好ましい。
(2)上記絶対値|P1-P2|の合計値。
(3)第1判定用画像JM1と第2判定用画像JM2のコサイン類似度を1から減算した値。コサイン類似度も、マスク領域以外の領域について算出することが好ましい。
(1)第1判定用画像JM1の画素値P1と、第2判定用画像JM2の対応する画素位置の画素値P2の差分の絶対値|P1-P2|の平均値。この平均値は、マスク領域以外の領域について算出することが好ましい。
(2)上記絶対値|P1-P2|の合計値。
(3)第1判定用画像JM1と第2判定用画像JM2のコサイン類似度を1から減算した値。コサイン類似度も、マスク領域以外の領域について算出することが好ましい。
ステップS260では、判定部620が、画素値変化の指標値δPが予め設定された閾値以上であるか否かを判定する。画素値変化の指標値δPが閾値以上であれば、ステップS270においてカメラ410が移動してものと判定される。一方、画素値変化の指標値δPが閾値未満であれば、ステップS280においてカメラ410が移動していないものと判定される。
上述した移動判定処理によれば、第1画像IM1と第2画像IM2の背景領域における画素値の変化から、カメラ410とロボット100の位置関係が変化しているか否かを判定できる。なお、複数のカメラを用いる場合には、個々のカメラについて図6の処理を実行することが好ましい。
移動判定処理が終了すると、図4のステップS180において、カメラの移動があったか否かが判断される。カメラの移動がなければ、カメラの校正パラメーターが有効なので、ステップS150に戻り、上述したステップS150以降の処理が再度実行される。一方、カメラの移動があった場合には、外部パラメーターが無効なので、ステップS110に戻り、ステップS110~S140に従って外部パラメーターが新たに推定される。この際、ステップS110~S140に従って外部パラメーターが再度推定されるまでの間は、ロボット100を停止させておくことが好ましい。
以上のように、第1実施形態では、第1画像に含まれる非可動部の認識結果を用いてカメラの校正処理を行うので、校正用治具を用いることなく、第1画像からカメラの外部パラメーターを求めることができる。また、校正処理の実行後に同じカメラで撮影された第2画像を用いて、校正パラメーターが有効か否かを判定できる。
なお、ステップS170におけるカメラの移動判定処理は省略してもよい。この場合にも、校正用治具を用いることなく、ロボット100の少なくとも一部を含む第1画像からカメラの外部パラメーターを求めることができる。
B.第2実施形態:
図8は、第2実施形態におけるカメラの移動判定処理の処理手順を示すフローチャートであり、図9は、その処理内容を示す説明図である。第2実施形態が第1実施形態と異なる点は、カメラの移動判定処理だけであり、システムの構成や図4の処理手順は第1実施形態と同じである。また、図8の処理手順は、図6の2つのステップS220,S230をステップS235に置き換えたものであり、他のステップは図6と同じである。
図8は、第2実施形態におけるカメラの移動判定処理の処理手順を示すフローチャートであり、図9は、その処理内容を示す説明図である。第2実施形態が第1実施形態と異なる点は、カメラの移動判定処理だけであり、システムの構成や図4の処理手順は第1実施形態と同じである。また、図8の処理手順は、図6の2つのステップS220,S230をステップS235に置き換えたものであり、他のステップは図6と同じである。
ステップS235では、判定部620が、第1画像IM1を用いて、ロボット100の可動領域を包含する判定用マスクJMK’を作成する。図9に示すように、この判定用マスクJMK’は、ロボット100に関するマスク領域JMA’と、移動許容物体に関するマスク領域JMB’とを含む。ロボット100に関するマスク領域JMA’は、第1画像IM1に含まれるロボット100の領域の他に、ロボットアーム120の可動領域を含むように形成されている。移動許容物体に関するマスク領域JMB’も同様に、移動許容物体が移動し得る領域を含むように形成されている。但し、マスク領域JMB’は省略可能である。ロボットアーム120の可動領域は、ロボット属性データRDに記述されている。ロボットアーム120の可動領域は、任意のタイミングにおけるロボットアーム120の領域を包含しているので、第2画像IM2におけるロボット100の領域も、このマスク領域JMA’に含まれている。従って、第2画像IM2を用いることなく、第1画像IM1から判定用マスクJMK’を作成することができる。
第2実施形態も、第1実施形態とほぼ同様の効果を奏することができる。第2実施形態では、第2画像IM2を用いることなく第1画像IM1から判定用マスクJMK’を作成できるので、判定用マスクの作成処理を第1実施形態に比べて簡略化できるという利点がある。一方、第1実施形態の判定用画像JM1,JM2の背景領域は、第2実施形態の判定用画像JM1’,JM2’の背景領域よりも大きいので、第1実施形態の方がカメラの移動判定処理の精度が高いという利点がある。
C.第3実施形態:
図10は、第3実施形態における校正処理の内容を示す説明図である。第3実施形態が第1実施形態や第2実施形態と異なる点は、カメラの校正処理の内容だけであり、システムの構成や処理手順は第1実施形態又は第2実施形態と同じである。
図10は、第3実施形態における校正処理の内容を示す説明図である。第3実施形態が第1実施形態や第2実施形態と異なる点は、カメラの校正処理の内容だけであり、システムの構成や処理手順は第1実施形態又は第2実施形態と同じである。
上述した第1実施形態では、ロボット100の根元に近い非可動部の位置姿勢のみを用いてカメラの外部パラメーターを推定していたが、第3実施形態では、図10に示すように、ロボット100の非可動部である基台110に加えて、ロボット100のアーム部分130も同時に認識し、ロボット100の基台110の特定位置O1とアーム部分130の特定位置O2とを用いて外部パラメーターを推定する。
第1実施形態で説明した上記(4)式の成分の中で、同次変換行列cHrの並進ベクトルtは、図5で説明したように、カメラ座標系Σcにおける基台110の特定位置O1の座標で表される。
外部パラメーターの回転行列については、以下に説明するように、非可動部である基台110の特定位置O1と、アーム部分130の特定位置O2とを用いて推定することができる。アーム部分130としては、ロボットアーム120の先端に近い手先部分を使用することが好ましい。こうすれば、回転行列の推定精度を高めることができる。また、アーム部分130の特定位置O2は、アーム部分130に含まれる関節の中心位置とすることが好ましい。こうすれば、ロボット100の関節角度とリンク長さから、ロボット座標系Σrにおけるアーム部分130の特定位置O2を容易に算出できる。
第3実施形態の校正処理において、校正実行部610は、まず、第1画像IM1に含まれる基台110の特定位置O1とアーム部分130の特定位置O2を、カメラ座標系Σcで認識する。カメラ座標系Σcにおける基台110の特定位置O1の座標は、上述した(3)式及び(4)式における同次変換行列cHrの並進ベクトルtに相当する。
校正実行部610は、更に、2つの特定位置O1,O2を、ロボット座標系Σrで算出する。ロボット座標系Σrにおける特定位置O1,O2の座標は、ロボット100の関節角度とリンク長から算出できる。
校正実行部610は、カメラ座標系Σcにおいて2つの特定位置O1,O2を結ぶ第1ベクトルV1を作成し、また、ロボット座標系Σrにおいて2つの特定位置O1,O2を結ぶ第2ベクトルV2を作成する。更に、校正実行部610は、カメラ座標系Σcにおける第1ベクトルV1を、ロボット座標系Σrにおける第2ベクトルV2に回転する3×3回転行列を求める。この回転行列は、上述した(4)式における回転行列RTに相当する。
校正実行部610は、こうして得られた並進ベクトルtと回転行列RTを用いて、外部パラメーターを算出することができる。すなわち、外部パラメーターとしての同次変換行列rHcの回転行列はRTに等しく、同次変換行列rHcの並進ベクトルは上記(4)式に従って-RT・tとして算出できる。
以上のように、第3実施形態では、非可動部である基台110の特定位置O1とアーム部分130の特定位置O2との関係を利用することによって、より精度の高い外部パラメーターを求めることができる。
・他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の第1の形態によれば、カメラの校正方法が提供される。この校正方法は、前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正工程と、前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定工程と、を含む。前記判定工程は、(a)前記校正処理の実行後に、前記ロボットの少なくとも一部を含む第2画像を前記カメラで撮影する工程と、(b)前記第1画像と前記第2画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する工程と、を含む。
この方法によれば、校正用治具を用いることなく、ロボットの少なくとも一部を含む第1画像からカメラの外部パラメーターを求めることができる。また、校正処理の実行後に同じカメラで撮影された第2画像を用いて、校正パラメーターが有効か否かを容易に判定できる。
この方法によれば、校正用治具を用いることなく、ロボットの少なくとも一部を含む第1画像からカメラの外部パラメーターを求めることができる。また、校正処理の実行後に同じカメラで撮影された第2画像を用いて、校正パラメーターが有効か否かを容易に判定できる。
(2)上記校正方法において、前記工程(b)は、(b1)前記第1画像における前記ロボットの領域と前記第2画像における前記ロボットの領域とを包含するマスク領域を示す判定用マスクを作成する工程と、(b2)前記第1画像から前記マスク領域を除外した第1判定用画像と、前記第2画像から前記マスク領域を除外した第2判定用画像と、を作成する工程と、(b3)前記第1判定用画像と前記第2判定用画像における画素値の変化に応じて、前記カメラと前記ロボットの前記位置関係が変化しているか否かを判定する工程と、を含むものとしてもよい。
この校正方法によれば、第1画像と第2画像の背景領域における画素値の変化から、カメラとロボットの位置関係が変化しているか否かを判定できる。
この校正方法によれば、第1画像と第2画像の背景領域における画素値の変化から、カメラとロボットの位置関係が変化しているか否かを判定できる。
(3)上記校正方法において、前記工程(b1)は、前記第1画像における前記ロボットの領域を包含する第1マスク領域を示す第1マスクを作成する工程と、前記第2画像における前記ロボットの領域を包含する第2マスク領域を示す第2マスクを作成する工程と、前記第1マスクと前記第2マスクの和を取ることによって前記判定用マスクを作成する工程と、を含むものとしてもよい。
この校正方法によれば、判定用マスクを容易に作成できる。
この校正方法によれば、判定用マスクを容易に作成できる。
(4)上記校正方法において、前記工程(b1)は、前記第1画像における前記ロボットの領域を認識し、前記判定用マスクの前記マスク領域が、前記第1画像に含まれる前記ロボットの領域と、ロボットアームの可動領域とを含むように前記判定用マスクを作成する工程と、を含むものとしてもよい。
この校正方法によれば、判定用マスクを容易に作成できる。
この校正方法によれば、判定用マスクを容易に作成できる。
(5)上記校正方法において、前記判定用マスクの前記マスク領域は、前記ロボットの領域と、ワークを含む移動許容物体の領域とを包含するように形成されるものとしてもよい。
この校正方法によれば、カメラとロボットの位置関係が変化しているか否かをより精度良く判定できる。
この校正方法によれば、カメラとロボットの位置関係が変化しているか否かをより精度良く判定できる。
(6)上記校正方法において、前記校正工程は、前記ロボットの位置姿勢を決定可能な特定部分を前記第1画像から認識し、前記特定部分の認識結果から前記外部パラメーターを推定するものとしてもよい。
この校正方法によれば、第1画像に含まれる特定部分の認識結果からカメラの外部パラメーターを求めることができる。
この校正方法によれば、第1画像に含まれる特定部分の認識結果からカメラの外部パラメーターを求めることができる。
(7)上記校正方法において、前記特定部分は、前記ロボットの根元近くに存在する非可動部であり、前記校正工程は、前記第1画像に含まれる前記非可動部の位置姿勢を前記カメラのカメラ座標系で認識する工程と、前記非可動部の前記位置姿勢から前記外部パラメーターを推定する工程と、を含むものとしてもよい。
この校正方法によれば、非可動部の位置姿勢からカメラの外部パラメーターを求めることができる。
この校正方法によれば、非可動部の位置姿勢からカメラの外部パラメーターを求めることができる。
(8)上記校正方法において、前記特定部分は、前記ロボットの根元近くに存在する非可動部と、前記ロボットのアーム部分とを含み、前記校正工程は、前記第1画像に含まれる前記非可動部の第1特定位置と前記アーム部分の第2特定位置を、前記カメラのカメラ座標系で認識する工程と、前記第1特定位置と前記第2特定位置を、前記ロボットのロボット座標系で算出する工程と、前記カメラ座標系において前記第1特定位置と前記第2特定位置を結ぶ第1ベクトルと、前記ロボット座標系において前記第1特定位置と前記第2特定位置を結ぶ第2ベクトルと、を作成し、前記第1ベクトルを前記第2ベクトルに回転させる回転行列を求める工程と、前記カメラ座標系における前記非可動部の前記第1特定位置と、前記回転行列とを用いて前記外部パラメーターを算出する工程と、を含むものとしてもよい。
この校正方法によれば、非可動部とアーム部分の特定位置からカメラの外部パラメーターを求めることができる。
この校正方法によれば、非可動部とアーム部分の特定位置からカメラの外部パラメーターを求めることができる。
(9)上記校正方法において、前記非可動部は、前記ロボットの基台であるものとしてもよい。
この校正方法によれば、ロボットの基台の特定位置や位置姿勢からカメラの外部パラメーターを求めることができる。
この校正方法によれば、ロボットの基台の特定位置や位置姿勢からカメラの外部パラメーターを求めることができる。
(10)上記校正方法において、前記校正工程は、複数のタイミングにおいて前記カメラの撮影を実行することによって、複数の前記第1画像を取得する工程と、前記複数の第1画像から推定される複数の前記外部パラメーターの平均を用いて、前記カメラの前記外部パラメーターを決定する工程と、を含むものとしてもよい。
この校正方法によれば、カメラの外部パラメーターの精度を高めることができる。
この校正方法によれば、カメラの外部パラメーターの精度を高めることができる。
(11)本開示の第2の形態によれば、カメラ校正システムが提供される。このカメラ校正システムは、ロボットと、前記ロボットを撮影可能に設置されたカメラと、前記カメラで撮影された前記ロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正実行部と、前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定部と、を備える。前記判定部は、前記校正処理の実行後に前記カメラで撮影された前記ロボットの少なくとも一部を含む第2画像と、前記第1画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する判定処理を実行する。
(12)本開示の第3の形態によれば、カメラを校正する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理と、前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定処理と、を前記プロセッサーに実行させる。前記判定処理は、(a)前記校正処理の実行後に、前記ロボットの少なくとも一部を含む第2画像を前記カメラで撮影する処理と、(b)前記第1画像と前記第2画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する処理と、を含む。
(13)本開示の第4の形態によれば、カメラの校正方法が提供される。この校正方法は、前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正工程を含み、前記校正工程は、前記ロボットの位置姿勢を決定可能な特定部分を前記第1画像から認識し、前記特定部分の認識結果から前記外部パラメーターを推定する。
この校正方法によれば、校正用治具を用いることなく、ロボットの少なくとも一部を含む第1画像からカメラの外部パラメーターを求めることができる。
この校正方法によれば、校正用治具を用いることなく、ロボットの少なくとも一部を含む第1画像からカメラの外部パラメーターを求めることができる。
(14)上記校正方法において、前記特定部分は、前記ロボットの根元近くに存在する非可動部としてもよい。前記校正工程は、前記第1画像に含まれる前記非可動部の位置姿勢を前記カメラのカメラ座標系で認識する工程と、前記非可動部の前記位置姿勢から前記外部パラメーターを推定する工程と、を含むものとしてもよい。
この校正方法によれば、非可動部の位置姿勢からカメラの外部パラメーターを求めることができる。
この校正方法によれば、非可動部の位置姿勢からカメラの外部パラメーターを求めることができる。
(15)上記校正方法において、前記特定部分は、前記ロボットの根元近くに存在する非可動部と、前記ロボットのアーム部分とを含むものとしてもよい。前記校正工程は、前記第1画像に含まれる前記非可動部の第1特定位置と前記アーム部分の第2特定位置を、前記カメラのカメラ座標系で認識する工程と、前記第1特定位置と前記第2特定位置を、前記ロボットのロボット座標系で算出する工程と、前記カメラ座標系において前記第1特定位置と前記第2特定位置を結ぶ第1ベクトルと、前記ロボット座標系において前記第1特定位置と前記第2特定位置を結ぶ第2ベクトルと、を作成し、前記第1ベクトルを前記第2ベクトルに回転させる回転行列を求める工程と、前記カメラ座標系における前記非可動部の前記第1特定位置と、前記回転行列とを用いて前記外部パラメーターを算出する工程と、を含むものとしてもよい。
この校正方法によれば、非可動部とアーム部分の特定位置からカメラの外部パラメーターを求めることができる。
この校正方法によれば、非可動部とアーム部分の特定位置からカメラの外部パラメーターを求めることができる。
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットとロボット情報処理装置とを備えたロボットシステム、ロボット情報処理装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
100…ロボット、110…基台、120…ロボットアーム、130…アーム部分、150…ロボットハンド、160…電流センサー、170…エンコーダー、200…ロボットコントローラー、300…情報処理装置、310…プロセッサー、320…メモリー、330…インターフェイス回路、340…入力デバイス、350…表示デバイス、410…カメラ、420…カメラ、500…作業台、510…第1容器、520…第2容器、610…校正実行部、620…判定部、630…物体認識部、640…経路計画部、650…ロボット制御部
Claims (15)
- カメラの校正方法であって、
前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正工程と、
前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定工程と、
を含み、
前記判定工程は、
(a)前記校正処理の実行後に、前記ロボットの少なくとも一部を含む第2画像を前記カメラで撮影する工程と、
(b)前記第1画像と前記第2画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する工程と、
を含む校正方法。 - 請求項1に記載の校正方法であって、
前記工程(b)は、
(b1)前記第1画像における前記ロボットの領域と前記第2画像における前記ロボットの領域とを包含するマスク領域を示す判定用マスクを作成する工程と、
(b2)前記第1画像から前記マスク領域を除外した第1判定用画像と、前記第2画像から前記マスク領域を除外した第2判定用画像と、を作成する工程と、
(b3)前記第1判定用画像と前記第2判定用画像における画素値の変化に応じて、前記カメラと前記ロボットの前記位置関係が変化しているか否かを判定する工程と、
を含む、校正方法。 - 請求項2に記載の校正方法であって、
前記工程(b1)は、
前記第1画像における前記ロボットの領域を包含する第1マスク領域を示す第1マスクを作成する工程と、
前記第2画像における前記ロボットの領域を包含する第2マスク領域を示す第2マスクを作成する工程と、
前記第1マスクと前記第2マスクの和を取ることによって前記判定用マスクを作成する工程と、
を含む、校正方法。 - 請求項2に記載の校正方法であって、
前記工程(b1)は、
前記第1画像における前記ロボットの領域を認識し、前記判定用マスクの前記マスク領域が、前記第1画像に含まれる前記ロボットの領域と、ロボットアームの可動領域とを含むように前記判定用マスクを作成する工程を含む、校正方法。 - 請求項2~4のいずれか一項に記載の校正方法であって、
前記判定用マスクの前記マスク領域は、前記ロボットの領域と、ワークを含む移動許容物体の領域とを包含するように形成される、校正方法。 - 請求項1に記載の校正方法であって、
前記校正工程は、前記ロボットの位置姿勢を決定可能な特定部分を前記第1画像から認識し、前記特定部分の認識結果から前記外部パラメーターを推定する、校正方法。 - 請求項6に記載の校正方法であって、
前記特定部分は、前記ロボットの根元近くに存在する非可動部であり、
前記校正工程は、
前記第1画像に含まれる前記非可動部の位置姿勢を前記カメラのカメラ座標系で認識する工程と、
前記非可動部の前記位置姿勢から前記外部パラメーターを推定する工程と、
を含む校正方法。 - 請求項6に記載の校正方法であって、
前記特定部分は、前記ロボットの根元近くに存在する非可動部と、前記ロボットのアーム部分とを含み、
前記校正工程は、
前記第1画像に含まれる前記非可動部の第1特定位置と前記アーム部分の第2特定位置を、前記カメラのカメラ座標系で認識する工程と、
前記第1特定位置と前記第2特定位置を、前記ロボットのロボット座標系で算出する工程と、
前記カメラ座標系において前記第1特定位置と前記第2特定位置を結ぶ第1ベクトルと、前記ロボット座標系において前記第1特定位置と前記第2特定位置を結ぶ第2ベクトルと、を作成し、前記第1ベクトルを前記第2ベクトルに回転させる回転行列を求める工程と、
前記カメラ座標系における前記非可動部の前記第1特定位置と、前記回転行列とを用いて前記外部パラメーターを算出する工程と、
を含む校正方法。 - 請求項7又は8に記載の校正方法であって、
前記非可動部は、前記ロボットの基台である、
校正方法。 - 請求項1に記載の校正方法であって、
前記校正工程は、
複数のタイミングにおいて前記カメラの撮影を実行することによって、複数の前記第1画像を取得する工程と、
前記複数の第1画像から推定される複数の前記外部パラメーターの平均を用いて、前記カメラの前記外部パラメーターを決定する工程と、
を含む校正方法。 - カメラ校正システムであって、
ロボットと、
前記ロボットを撮影可能に設置されたカメラと、
前記カメラで撮影された前記ロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正実行部と、
前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定部と、
を備え、
前記判定部は、前記校正処理の実行後に前記カメラで撮影された前記ロボットの少なくとも一部を含む第2画像と、前記第1画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する判定処理を実行する、
カメラ校正システム。 - カメラを校正する処理をプロセッサーに実行させるコンピュータープログラムであって、
前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理と、
前記校正処理の実行後に、前記外部パラメーターの有効性を判定する判定処理と、
を前記プロセッサーに実行させ、
前記判定処理は、
(a)前記校正処理の実行後に、前記ロボットの少なくとも一部を含む第2画像を前記カメラで撮影する処理と、
(b)前記第1画像と前記第2画像とを用いて、前記カメラと前記ロボットの位置関係が変化しているか否か判定し、前記位置関係の変化の有無に応じて前記外部パラメーターが無効か有効かを判定する処理と、
を含むコンピュータープログラム。 - カメラの校正方法であって、
前記カメラで撮影されたロボットの少なくとも一部を含む第1画像を用いて、前記ロボットに対する前記カメラの外部パラメーターを求める校正処理を実行する校正工程を含み、
前記校正工程は、前記ロボットの位置姿勢を決定可能な特定部分を前記第1画像から認識し、前記特定部分の認識結果から前記外部パラメーターを推定する、校正方法。 - 請求項13に記載の校正方法であって、
前記特定部分は、前記ロボットの根元近くに存在する非可動部であり、
前記校正工程は、
前記第1画像に含まれる前記非可動部の位置姿勢を前記カメラのカメラ座標系で認識する工程と、
前記非可動部の前記位置姿勢から前記外部パラメーターを推定する工程と、
を含む校正方法。 - 請求項13に記載の校正方法であって、
前記特定部分は、前記ロボットの根元近くに存在する非可動部と、前記ロボットのアーム部分とを含み、
前記校正工程は、
前記第1画像に含まれる前記非可動部の第1特定位置と前記アーム部分の第2特定位置を、前記カメラのカメラ座標系で認識する工程と、
前記第1特定位置と前記第2特定位置を、前記ロボットのロボット座標系で算出する工程と、
前記カメラ座標系において前記第1特定位置と前記第2特定位置を結ぶ第1ベクトルと、前記ロボット座標系において前記第1特定位置と前記第2特定位置を結ぶ第2ベクトルと、を作成し、前記第1ベクトルを前記第2ベクトルに回転させる回転行列を求める工程と、
前記カメラ座標系における前記非可動部の前記第1特定位置と、前記回転行列とを用いて前記外部パラメーターを算出する工程と、
を含む校正方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022176543A JP2024066817A (ja) | 2022-11-02 | 2022-11-02 | カメラの校正方法、カメラ校正システム、及び、コンピュータープログラム |
CN202311437998.7A CN117984313A (zh) | 2022-11-02 | 2023-10-31 | 相机的校正方法、相机校正系统、以及存储介质 |
US18/385,914 US20240144532A1 (en) | 2022-11-02 | 2023-11-01 | CALIBRATION METHOD FOR CAMERA, and CAMERA CALIBRATION SYSTEM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022176543A JP2024066817A (ja) | 2022-11-02 | 2022-11-02 | カメラの校正方法、カメラ校正システム、及び、コンピュータープログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024066817A true JP2024066817A (ja) | 2024-05-16 |
Family
ID=90834049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022176543A Pending JP2024066817A (ja) | 2022-11-02 | 2022-11-02 | カメラの校正方法、カメラ校正システム、及び、コンピュータープログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240144532A1 (ja) |
JP (1) | JP2024066817A (ja) |
CN (1) | CN117984313A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024001399A (ja) * | 2022-06-22 | 2024-01-10 | セイコーエプソン株式会社 | ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム |
-
2022
- 2022-11-02 JP JP2022176543A patent/JP2024066817A/ja active Pending
-
2023
- 2023-10-31 CN CN202311437998.7A patent/CN117984313A/zh active Pending
- 2023-11-01 US US18/385,914 patent/US20240144532A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240144532A1 (en) | 2024-05-02 |
CN117984313A (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11338435B2 (en) | Gripping system with machine learning | |
CN106426161B (zh) | 在引导装配环境中将机器视觉坐标空间关联的系统和方法 | |
US8095237B2 (en) | Method and apparatus for single image 3D vision guided robotics | |
JP4004899B2 (ja) | 物品の位置姿勢検出装置及び物品取出し装置 | |
JP5839971B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN109767416B (zh) | 机械设备的定位系统及方法 | |
JP2013043271A (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
JP2008506953A (ja) | 機械視覚のための方法及び装置 | |
CN113379849A (zh) | 基于深度相机的机器人自主识别智能抓取方法及系统 | |
JP2016170050A (ja) | 位置姿勢計測装置、位置姿勢計測方法及びコンピュータプログラム | |
CN114670189B (zh) | 存储介质、以及生成机器人的控制程序的方法及系统 | |
CN113554757A (zh) | 基于数字孪生的工件轨迹三维重构方法及系统 | |
US20230150142A1 (en) | Device and method for training a machine learning model for generating descriptor images for images of objects | |
US20240144532A1 (en) | CALIBRATION METHOD FOR CAMERA, and CAMERA CALIBRATION SYSTEM | |
CN116749233A (zh) | 基于视觉伺服的机械臂抓取系统及方法 | |
CN111275758A (zh) | 混合型3d视觉定位方法、装置、计算机设备及存储介质 | |
US11941846B2 (en) | Device and method for ascertaining the pose of an object | |
Motai et al. | SmartView: hand-eye robotic calibration for active viewpoint generation and object grasping | |
US11436754B2 (en) | Position posture identification device, position posture identification method and position posture identification program | |
CN112643718B (zh) | 图像处理设备及其控制方法和存储其控制程序的存储介质 | |
JP2023158273A (ja) | ロボットハンドに保持された対象物体の位置姿勢を認識する方法、システム、及び、コンピュータープログラム | |
CN115213894A (zh) | 机器人图像的显示方法、显示系统以及记录介质 | |
TW202218836A (zh) | 機器人控制裝置及機器人系統 | |
US20230386075A1 (en) | Method, System, And Computer Program For Recognizing Position And Posture Of Object | |
Funakubo et al. | Verification of illumination tolerance for clothes recognition |