IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セイコーエプソン株式会社の特許一覧

特開2024-1399ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム
<>
  • 特開-ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム 図1
  • 特開-ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム 図2
  • 特開-ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム 図3
  • 特開-ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム 図4
  • 特開-ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム 図5
  • 特開-ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム 図6
  • 特開-ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024001399
(43)【公開日】2024-01-10
(54)【発明の名称】ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラム
(51)【国際特許分類】
   B25J 9/10 20060101AFI20231227BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022100007
(22)【出願日】2022-06-22
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】佐藤 彰展
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707KS03
3C707KS04
3C707KS17
3C707KS19
3C707KS21
3C707KT01
3C707KT06
3C707KT09
3C707LT06
3C707LT17
3C707LW12
(57)【要約】
【課題】ロボットアームにマーカーを貼ることなくカメラのキャリブレーションを行うことのできる技術を提供する。
【解決手段】本開示の方法は、(a)第1機械学習モデルを用いて、カメラで撮影したロボットアームの画像から、ロボットアームに予め設定された複数の特徴点の画素座標値を推定する工程と、(b)第2機械学習モデルを用いて、複数の特徴点の画素座標値から、3次元カメラ座標系における複数の特徴点の第1座標値を推定する工程と、(c)ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における複数の特徴点の第2座標値を算出する工程と、(d)ロボットアームの複数の姿勢について工程(a)~(c)を実行し、複数の姿勢における複数の特徴点の第1座標値と2座標値とを用いて、カメラの外部パラメーターを含む校正パラメーターを推定する工程と、を含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
ロボットに対するカメラの校正方法であって、
(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影したロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する工程と、
(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する工程と、
(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する工程と、
(d)前記ロボットアームの複数の姿勢について前記工程(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する工程と、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記複数の特徴点は、前記ロボットアームの複数の関節それぞれの中心位置に設定されている、方法。
【請求項3】
請求項1に記載の方法であって、
前記工程(d)は、前記ロボットアームの新たな姿勢について前記カメラで前記ロボットアームの画像を撮影する度に、カルマンフィルターを用いた観測更新を行うことによって前記校正パラメーターを推定する工程を含む、方法。
【請求項4】
請求項1に記載の方法であって、
前記工程(b)は、前記第2機械学習モデルで得られた前記第1座標値について、前記ロボットアームに関する機械的な制約条件を含むカルマンフィルターを用いた観測更新を行うことによって、前記複数の特徴点の前記第1座標値の推定値を更新する工程を含む、方法。
【請求項5】
ロボットに対するカメラの校正処理を実行するシステムであって、
前記ロボットのロボットアームを撮影可能なカメラと、
前記カメラで撮影された画像を用いて前記カメラの校正処理を実行する校正処理部と、
を備え、
前記校正処理部は、
(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影した前記ロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する処理と、
(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する処理と、
(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する処理と、
(d)前記ロボットアームの複数の姿勢について前記処理(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する処理と、
を実行する、システム。
【請求項6】
ロボットに対するカメラの校正処理をプロセッサーに実行させるコンピュータープログラムであって、
(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影したロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する処理と、
(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する処理と、
(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する処理と、
(d)前記ロボットアームの複数の姿勢について前記処理(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する処理と、
を前記プロセッサーに実行させる、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットに対するカメラの校正方法、システム、及び、コンピュータープログラムに関する。
【背景技術】
【0002】
ロボットの作業でカメラを使用する場合には、予め校正(キャリブレーション)を行うことによって、カメラの校正パラメーターが設定される。校正パラメーターは、レンズの性能やレンズと画素の関係を表す内部パラメーターと、カメラと外部装置との相対位置を表す外部パラメーターとを含む。カメラのキャリブレーションは、ドットやチェスボードなどのパターンが印刷または加工された専用のキャリブレーションボードを用いて行われるのが普通である。このような通常のキャリブレーション処理は、専用の機材が必要であり、その調整に非常に多くの時間を要する。また、カメラとロボットの位置関係が変化する度にキャリブレーションを行う必要があり、ロボットの使い勝手を低下させる1つの要因となっている。
【0003】
このような使い勝手の低下を解消するために、特許文献1では、ロボットアームにアームマーカーを貼り付けて、ロボットアーム上の既知の位置とアームマーカーを対応づける方法が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017-124448号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来技術では、ロボットアームにマーカーを貼付する必要があり、作業が煩雑であるなどの問題があった。そこで、ロボットアームにマーカーを貼ることなくカメラのキャリブレーションを行うことのできる技術が望まれる。
【課題を解決するための手段】
【0006】
本開示の第1の形態によれば、ロボットに対するカメラの校正方法が提供される。この方法は、(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影したロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する工程と、(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する工程と、(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する工程と、(d)前記ロボットアームの複数の姿勢について前記工程(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する工程と、を含む。
【0007】
本開示の第2の形態によれば、ロボットに対するカメラの校正処理を実行するシステムが提供される。このシステムは、前記ロボットのロボットアームを撮影可能なカメラと、前記カメラで撮影された画像を用いて前記カメラの校正処理を実行する校正処理部と、を備える。前記校正処理部は、(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影した前記ロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する処理と、(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する処理と、(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する処理と、(d)前記ロボットアームの複数の姿勢について前記処理(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する処理と、を実行する。
【0008】
本開示の第3の形態によれば、ロボットに対するカメラの校正処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影したロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する処理と、(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する処理と、(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する処理と、(d)前記ロボットアームの複数の姿勢について前記処理(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する処理と、を前記プロセッサーに実行させる。
【図面の簡単な説明】
【0009】
図1】ロボットシステムの構成を示す説明図。
図2】各種の座標系の関係を示す概念図。
図3】情報処理装置の機能ブロック図。
図4】第1機械学習モデルと第2機械学習モデルの機能を示す説明図。
図5】第1実施形態における校正処理の手順を示すフローチャート。
図6】第2実施形態における校正処理の手順を示すフローチャート。
図7】ステップS135で使用される機械的な制約条件の一例を示す説明図。
【発明を実施するための形態】
【0010】
A.第1実施形態:
図1は、一実施形態におけるロボットシステムの一例を示す説明図である。このロボットシステムは、カメラ利用機器としてのロボット100と、ロボット100を制御するロボットコントローラー200と、情報処理装置300と、カメラ400とを備える。情報処理装置300は、例えばパーソナルコンピューターである。情報処理装置300は、ロボットコントローラー200に制御指令を送信する。情報処理装置300を、「上位情報処理装置」と呼ぶことも可能である。
【0011】
ロボット100は、ロボットアーム110とエンドエフェクター120とを備えている。ロボットアーム110は、第1リンク111と第2リンク112とを有する。エンドエフェクター120は、ワークを把持することが可能なグリッパーや吸着パッドとして実現可能である。
【0012】
ロボットアーム110とエンドエフェクター120は、関節J1~J3で順次接続されている。但し、ロボット100としては、複数の関節を有する任意のロボットアーム機構を有するロボットを用いることが可能である。
【0013】
カメラ400は、ロボット100の作業対象となるワークを撮影して、ワークの位置や姿勢を認識するために使用される。また、カメラ400は、ロボットアーム110を撮影できる十分な大きさの視野を有する。カメラ400としては、2次元のRGBカメラを用いることが可能であり、また、RGBDカメラやモノクロカメラを用いてもよい。RGBDカメラは、RGBカメラとDカメラ(深度カメラ)とを有するカメラである。
【0014】
図2は、各種の座標系の関係を示す概念図である。図2に描かれている座標系は、以下の通りである。
(1)ロボット座標系Σr
ロボット座標系Σrは、ロボット100の予め定められた位置を座標原点とする直交3次元座標系である。
(2)カメラ座標系Σc
カメラ座標系Σcは、カメラ400の予め定められた位置を座標原点とする直交3次元座標系である。
(3)画素座標系Σp
画素座標系Σpは、カメラ400で撮影された画像の直交二次元座標系である。
【0015】
画素座標系Σpの画素座標値(u,v)とカメラ座標系Σcの3次元座標値(Xc,Yc,Zc)は、次式に示すように、カメラ400の内部パラメーターを用いて変換可能である。
【数1】
ここで、Kx,Kyは歪係数、Ox,Oyは光学中心、fは焦点距離である。
【0016】
カメラ座標系Σcの3次元座標値(Xc,Yc,Zc)とロボット座標系Σrの3次元座標値(Xr,Yr,Zr)は、次式に示すように、カメラ400の外部パラメーターで表される座標変換行列[R|t]crを用いて変換可能である。
【数2】
【0017】
図2には、更に、ロボットアーム110に設定された複数の特徴点P1,P2,P3が描かれている。本実施形態では、特徴点P1,P2,P3は、ロボットアーム110の3つの関節J1,J2,J3の中心位置にそれぞれ設定されている。特徴点P1,P2は、長さL1を有する第1リンク111の両端点の位置を示すものと考えることができる。同様に、特徴点P2,P3は、長さL2を有する第2リンク112の両端点の位置を示すものと考えることができる。なお、ロボットアーム110には、2以上の任意の数の特徴点を設定することが可能であり、3以上の特徴点を設定することが好ましい。また、特徴点は、ロボットアーム110の関節位置に限らず、ロボットアーム110の任意の位置に設定可能である。但し、特徴点をロボットアーム110の関節位置に設定すれば、ロボットアーム110の複数の関節におけるエンコーダー値から特徴点の位置を容易に算出できる点で好ましい。関節以外の位置に特徴点を設定した場合にも、特徴点の位置と関節位置との相対関係を予め設定しておくことにより、特徴点の位置をロボットアーム110のエンコーダー値から算出することが可能である。
【0018】
図3は、情報処理装置300の機能を示すブロック図である。情報処理装置300は、プロセッサー310と、メモリー320と、インターフェイス回路330と、インターフェイス回路330と、を有している。インターフェイス回路330には、入力デバイス340と表示デバイス350が接続されており、また、ロボットコントローラー200も接続されている。ロボットコントローラー200は、カメラ400に接続されており、また、ロボット100の各関節のモーター電流を測定する電流センサー140と、各関節の変位を測定するエンコーダー150に接続されている。
【0019】
プロセッサー310は、キャリブレーション実行部610及びロボット制御実行部620としての機能を有する。キャリブレーション実行部610は、ロボット100に対するカメラ400のキャリブレーションを実行することによって、カメラ400の校正パラメーターを決定する処理を実行する。キャリブレーション実行部610は、第1機械学習モデル611と、第2機械学習モデル612と、学習実行部614と、校正処理部616とを含む。ロボット制御実行部620は、カメラ400で撮影された作業領域の画像からワークを認識し、認識したワークを用いた作業をロボット100に行わせる処理を実行する。キャリブレーション実行部610の機能は、メモリー320に格納されたコンピュータープログラムをプロセッサー310が実行することによってそれぞれ実現される。但し、キャリブレーション実行部610の機能の一部又は全部をハードウェア回路で実現してもよい。
【0020】
メモリー320には、2つの機械学習モデル611,612の学習に用いる学習データLDと、ロボット属性データRDと、校正パラメーターCPと、ロボット制御プログラムRPが格納される。ロボット属性データRDは、ロボット100の機械的構造や可動範囲などの属性を示すデータである。校正パラメーターCPは、上述した内部パラメーターと外部パラメーターとを含んでいる。ロボット制御プログラムRPは、ロボット100を動作させる複数の命令で構成される。
【0021】
図4は、第1機械学習モデル611と第2機械学習モデル612の機能を示す説明図である。第1機械学習モデル611は、カメラ400で撮影されたロボットアーム110の画像IM(u,v)を入力とし、複数の特徴点Pjの画素座標値Pj(u,v)を推定する。jは,複数の特徴点P1~P3を区別する序数である。図4に示す画像IMp(u,v)は、元の画像IM(u,v)に複数の特徴点Pjを描画した仮想的な画像である。この画像IMp(u,v)は、キャリブレーション実行時に校正処理部616が作成して表示デバイス350に表示しても良いが、画像IMp(u,v)を作成しなくても良い。
【0022】
第2機械学習モデル612は、複数の特徴点Pjの画素座標値Pj(u,v)を入力とし、カメラ座標系Σcにおける特徴点Pjの3次元座標値Pj(Xc,Yc,Zc)を推定する。この3次元座標値Pj(Xc,Yc,Zc)は、校正処理部616がカメラ400の校正パラメーターを推定する際に使用される。
【0023】
第1機械学習モデル611としては、画像内の構造的な特徴点を推論する各種のニューラルネットワークを使用することができ、例えば以下のいずれかを使用できる。
(1a) DeeplabCUT (http://www.mackenziemathislab.org/deeplabcut)
(1b) DeepPose (https://arxiv.org/abs/1312.4659)
第1機械学習モデル611の学習データは、カメラ400で撮影したロボットアーム110の画像と、複数の特徴点Pjの画素座標値Pj(u,v)とを含む教師データとすることが好ましい。
【0024】
第2機械学習モデル612としては、SfM(Structure from Motion)やNRSfM(Non-Rigid Structure from Motion)を推論する各種のニューラルネットワークを使用することができ、例えば以下のいずれかを使用できる。
(2a) C3DPO (https://arxiv.org/abs/1909.02533)
(2b) RepNet (https://sites.google.com/view/repnet)
第2機械学習モデル612の学習データは、ロボットアーム110の画像から得られた複数の特徴点Pjの画素座標値Pj(u,v)と、複数の特徴点Pjの3次元座標値Pj(Xc,Yc,Zc)とを含む教師データとすることが好ましい。
【0025】
図5は、第1実施形態における校正処理の手順を示すフローチャートである。ここでは、2つの機械学習モデル611,612は学習済みであるものと仮定する。また、校正処理前の時点では、カメラ400の校正パラメーターのうち、少なくとも外部パラメーターが未知であるものと仮定する。カメラ400の内部パラメーターは既知でも未知でもよい。即ち、図5の校正処理は、カメラ400の外部パラメーターを含む校正パラメーターを推定する処理である。
【0026】
ステップS110では、校正処理部616が、カメラ400を用いてロボットアーム110を撮影して、画像IMを生成する。ステップS120では、校正処理部616が、第1機械学習モデル611を用いて、ロボットアーム110の画像IMから複数の特徴点Pjの画素座標値Pj(u,v)を推定する。ステップS130では、校正処理部616が、第2機械学習モデル612を用いて特徴点Pjの画素座標値Pj(u,v)から、カメラ座標系Σcにおける特徴点Pjの第1座標値Pj(Xc,Yc,Zc)を推定する。なお、校正処理の前にカメラ400の内部パラメーターが既知である場合にも、上記(1)式を用いて画素座標値(u,v)からカメラ座標系Σcの座標値(Xc,Yc,Zc)を計算するためにはZ座標値Zcが必要なので、Z座標値Zcを求めるために、ステップS130において第2機械学習モデル612が使用される。
【0027】
ステップS140では、校正処理部616が、ロボット100のエンコーダー値を用いて、ロボット座標系Σrにおける特徴点Pjの第2座標値Pj(Xr,Yr,Zr)を算出する。この算出処理は、関節J1,J2のエンコーダー値と、リンク111,112の長さL1,L2とを用いた順運動学による計算である。
【0028】
ステップS150では、校正処理部616が、特徴点Pjの第1座標値Pj(Xc,Yc,Zc)と第2座標値Pj(Xr,Yr,Zr)を用いて、カメラ400の校正パラメーターを推定する。本実施形態では、この推定処理にカルマンフィルターを利用する。カルマンフィルターを利用すれば、カメラ400とロボット100の位置関係が変化した場合にも、逐次的にパラメーター推定を行うことができる。
【0029】
一般に、カルマンフィルターは時間更新と観測更新の2つの工程から構成され、この2つの工程を繰り返すことで、推定誤差を最小化していく処理である。カメラ400の校正パラメーターを推定する場合には、制御入力が無く、時間変化はないため、時間更新は考慮しなくてもよい。即ち、状態ベクトルと観測行列と観測ベクトルを定義して観測更新を行えば、カメラ400の校正パラメーターを推定することができる。例えば、外部パラメーターのみを推定する場合には、状態ベクトルxと、観測行列Hと、観測ベクトルZは、以下の通りである。
【数3】
状態ベクトルxは外部パラメーターであり、観測行列Hはロボット座標系Σrにおける特徴点Pjの3次元座標値であり、観測ベクトルZはカメラ座標系Σcにおける特徴点Pjの3次元座標値である。状態ベクトルxを構成する外部パラメーターが正しく推定された場合には、観測ベクトルZは、観測行列Hに状態ベクトルxを乗じたものとなる。
【0030】
ここでは外部パラメーターのみを推定する方法を説明したが、同様に内部パラメーターを含んだ推定を行うことも可能である。外部パラメーターと共に内部パラメーターを推定する場合には、状態ベクトルxに内部パラメーターを追加し、観測行列もこれに応じて変更する。なお、カルマンフィルターに限らず、逐次最小二乗法やパーティクルフィルター等の他の手法を用いて校正パラメーターを推定してもよい。
【0031】
ステップS160では、校正処理部616が、校正パラメーターの推定処理が終了したか否かを判定する。例えば、ステップS110~S150の処理を1回のイテレーションとしたとき、予め設定された回数のイテレーションを実行したときに、校正パラメーターの推定処理が終了したものと判定することができる。或いは、前回のイテレーションと今回のイテレーションにおける推定値の差分や誤差共分散の差分が閾値以下になったときに、校正パラメーターの推定処理が終了したものと判定してもよい。
【0032】
校正パラメーターの推定処理が終了していなければ、ステップS110に戻り、上述したステップS110~S150の処理が再度実行される。なお、複数のイタレーションにおいて、ステップS110ではロボットアーム110が異なる姿勢を取るようにロボットアーム110の姿勢が設定される。即ち、ロボットアーム110の新たな姿勢についてカメラ400でロボットアーム110の画像IMを撮影する度に、ステップS120~S150が実行され、カルマンフィルターを用いた観測更新を行うことによって校正パラメーターが推定される。この結果、ロボットアーム110の異なる複数の姿勢について、カメラ座標系Σcの第1座標値Pj(Xc,Yc,Zc)とロボット座標系Σrの第2座標値Pj(Xr,Yr,Zr)との対応関係が得られるので、カメラ400の校正パラメーターを正しく推定することが可能となる。
【0033】
校正パラメーターの推定処理が終了すると、推定された校正パラメーターCPがメモリー320に保存されて図5の処理が完了する。据え置き型のロボットの場合には、カメラ400とロボット100の位置関係が大きく変化することは少ない。従って、推定した校正パラメーターCPと共に、カルマンフィルターの誤差共分散などを含む推定情報を保存しておき、次回の校正処理において初期値として再利用することによって、推定値の収束を早めることができる。
【0034】
上述した図5の校正処理は、ロボット100を用いた実作業と並行して行うようにしてもよい。こうすれば、ロボット100を用いてワークに対する作業を行いながら、カメラ400の校正処理を実行できるので、校正処理のための特別な処理時間が不要である。なお、実作業と並行して校正処理を実行する場合にも、ステップS110では、ロボットアーム110が停止している状態でロボットアーム110の画像を撮影することが好ましい。
【0035】
以上のように、第1実施形態では、ロボットアーム110に予め設定された複数の特徴点Pjについて、カメラ400で撮影した画像IMからカメラ座標系Σcの第1座標値Pj(Xc,Yc,Zc)を推定し、また、ロボットアーム110のエンコーダー値からロボット座標系Σrの第2座標値Pj(Xr,Yr,Zr)を算出して、これらの3次元座標値からカメラ400の校正パラメーターCPを推定するので、キャリブレーションボードを使用せずにカメラ400の校正パラメーターCPを推定できる。また、ロボットアーム110にマーカーを貼ることなくカメラ400のキャリブレーションを行うことができる。
【0036】
B.第2実施形態:
図6は、第2実施形態における校正処理の手順を示すフローチャートである。第1実施形態との違いは、ステップS130とステップS140の間にステップS135が追加されている点だけであり、他のステップは図5に示した第1実施形態の校正処理と同じである。また、装置構成も第1実施形態と同じである。
【0037】
ステップS135では、校正処理部616が、ステップS130で得られた特徴点Pjの第1座標値Pj(Xc,Yc,Zc)の推定値をカルマンフィルターに入力し、観測に対して制約条件を付加することで確率的に特徴点Pjの第1座標値の推定値を更新する。制約条件としては、ロボットアーム110に関する機械的又は機構的な制約条件を使用することができる。即ち、ステップS135では、ロボットアーム110に関する機械的な制約条件を含むカルマンフィルターを用いた観測更新を行うことによって、特徴点Pjの第1座標値Pj(Xc,Yc,Zc)の推定値が更新される。
【0038】
図7は、ステップS135で使用される制約条件の一例を示す説明図である。この例では、第2リンク112の長さL2を制約条件として使用する。この場合にステップS135で使用されるカルマンフィルターにおける状態ベクトルxと、観測行列Hと、観測ベクトルZは、以下の通りである。
【数4】
ここで、状態ベクトルxの要素は、カメラ座標系Σcにおける特徴点Pjの正しい第1座標値の推定値であり、観測行列Hの要素は、ステップS130で得られたカメラ座標系Σcにおける特徴点Pjの第1座標値の推定値である。
【0039】
このような機械的な制約条件を含むカルマンフィルターを用いた観測更新を行えば、上記(4)式で与えられる制約条件を満たすように、特徴点Pjの第1座標値の推定値を更新することができる。
【0040】
機械的な制約条件の他の例として、複数の特徴点Pjが同一平面上に存在すること、という制約条件を用いることも可能である。例えば、3つの特徴点P1~P3が同一平面上に存在する場合に、各特徴点Pjの3次元座標値で表される3次元ベクトルを想定すると、3つの3次元ベクトルで張られる立方体の体積はゼロとなる。これは3つの3次元列ベクトルを並べた行列式がゼロになることと同義である。この場合のカルマンフィルターにおける状態ベクトルxと、観測行列Hと、観測ベクトルZは、以下の通りである。
【数5】
【0041】
機械的な制約条件としては、上述の例の他に、複数のリンク長さや、複数のリンクが直線的に伸びる状態において3つ以上の特徴点Pjが同一直線状に並ぶこと、などの他の制約条件も適用することが可能である。また、複数の制約条件を同時に適用すれば、複数の特徴点Pjの第1座標値をより正確な値に更新できる。
【0042】
以上のような機械的な制約条件を用いることによって、ロボットアーム110の形状に即した特徴点Pjの第1座標値を更新することが可能となり、特徴点Pjの3次元位置のばらつきや飛びを抑制することができるため、安定した校正パラメーター推定を実現できる。
【0043】
第2実施形態も、第1実施形態と同様の効果を有する。また、第2実施形態では、機械的な制約条件を含むカルマンフィルターを用いてカメラ座標系Σcにおける複数の特徴点Pjの第1座標値の推定値を更新するので、第1座標値の推定精度を高めることができる。
【0044】
・他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0045】
(1)本開示の第1の形態によれば、ロボットに対するカメラの校正方法が提供される。この方法は、(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影したロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する工程と、(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する工程と、(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する工程と、(d)前記ロボットアームの複数の姿勢について前記工程(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する工程と、を含む。
この方法によれば、ロボットアームに予め設定された複数の特徴点について、カメラで撮影した画像から3次元カメラ座標系の第1座標値を推定し、また、ロボットアームのエンコーダー値から3次元ロボット座標系の第2座標値を算出して、これらの3次元座標値からカメラの校正パラメーターを推定するので、キャリブレーションボードを使用せずにカメラの校正パラメーターを推定できる。また、ロボットアームにマーカーを貼ることなくカメラのキャリブレーションを行うことができる。
【0046】
(2)上記方法において、前記複数の特徴点は、前記ロボットアームの複数の関節それぞれの中心位置に設定されているものとしてもよい。
この方法によれば、第1機械学習モデルを用いて複数の特徴点の第1座標値を容易に推定でき、また、ロボット座標系の第2座標値を容易に算出できる。
【0047】
(3)上記方法において、前記工程(d)は、前記ロボットアームの新たな姿勢について前記カメラで前記ロボットアームの画像を撮影する度に、カルマンフィルターを用いた観測更新を行うことによって前記校正パラメーターを推定する工程を含むものとしてもよい。
この方法によれば、カルマンフィルターを用いて校正パラメーターを推定するので、ロボットアームについての新たな姿勢をカメラで撮影して推定を行う度に、校正パラメーターの精度を高めることができる。
【0048】
(4)上記方法において、前記工程(b)は、前記第2機械学習モデルで得られた前記第1座標値について、前記ロボットアームに関する機械的な制約条件を含むカルマンフィルターを用いた観測更新を行うことによって、前記複数の特徴点の前記第1座標値の推定値を更新する工程を含むものとしてもよい。
この方法によれば、機械的な制約条件を含むカルマンフィルターを用いて3次元カメラ座標系における複数の特徴点の第1座標値の推定値を更新するので、第1座標値の推定精度を高めることができる。
【0049】
(5)本開示の第2の形態によれば、ロボットに対するカメラの校正処理を実行するシステムが提供される。このシステムは、前記ロボットのロボットアームを撮影可能なカメラと、前記カメラで撮影された画像を用いて前記カメラの校正処理を実行する校正処理部と、を備える。前記校正処理部は、(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影した前記ロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する処理と、(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する処理と、(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する処理と、(d)前記ロボットアームの複数の姿勢について前記処理(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する処理と、を実行する。
【0050】
(6)本開示の第3の形態によれば、ロボットに対するカメラの校正処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)学習済みの第1機械学習モデルを用いて、前記カメラで撮影したロボットアームの画像から、前記ロボットアームに予め設定された複数の特徴点の画素座標値を推定する処理と、(b)学習済みの第2機械学習モデルを用いて、前記複数の特徴点の前記画素座標値から、3次元カメラ座標系における前記複数の特徴点の第1座標値を推定する処理と、(c)前記ロボットアームのエンコーダー値を用いて、3次元ロボット座標系における前記複数の特徴点の第2座標値を算出する処理と、(d)前記ロボットアームの複数の姿勢について前記処理(a)~(c)を実行し、前記複数の姿勢における前記複数の特徴点の前記第1座標値と前記第2座標値とを用いて、前記カメラの外部パラメーターを含む校正パラメーターを推定する処理と、を前記プロセッサーに実行させる。
【0051】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットとロボット情報処理装置とを備えたロボットシステム、ロボット情報処理装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
【符号の説明】
【0052】
100…ロボット、110…ロボットアーム、111…第1リンク、112…第2リンク、120…エンドエフェクター、140…電流センサー、150…エンコーダー、200…ロボットコントローラー、300…情報処理装置、310…プロセッサー、320…メモリー、330…インターフェイス回路、340…入力デバイス、350…表示デバイス、400…カメラ、610…キャリブレーション実行部、611…第1機械学習モデル、612…第2機械学習モデル、614…学習実行部、616…校正処理部、620…ロボット制御実行部
図1
図2
図3
図4
図5
図6
図7