位置姿勢計測装置、その計測処理方法及びプログラム
【課題】
計測対象物体の位置及び姿勢に関する複数の計測手法の中からいずれかを選択して実施する。
【解決手段】
位置姿勢計測装置は、撮像装置により撮像された計測対象物体の二次元画像を入力し、距離センサにより計測された計測対象物体の距離データを取得し、二次元画像から計測対象物体の画像特徴を検出し、計測対象物体の状態を判定し、当該判定した状態に基づいて、画像特徴と距離データとを用いて計測を行なう第1のモードと、画像特徴と距離データとのうち一方のみを用いて計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定し、当該設定したモードに従って計測対象物体の位置及び姿勢の計測を行なう。
計測対象物体の位置及び姿勢に関する複数の計測手法の中からいずれかを選択して実施する。
【解決手段】
位置姿勢計測装置は、撮像装置により撮像された計測対象物体の二次元画像を入力し、距離センサにより計測された計測対象物体の距離データを取得し、二次元画像から計測対象物体の画像特徴を検出し、計測対象物体の状態を判定し、当該判定した状態に基づいて、画像特徴と距離データとを用いて計測を行なう第1のモードと、画像特徴と距離データとのうち一方のみを用いて計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定し、当該設定したモードに従って計測対象物体の位置及び姿勢の計測を行なう。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、位置姿勢計測装置、その計測処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、ロボット技術の発展とともに、これまで人間が行なっていた複雑なタスク(例えば、工業製品の組み立て)をロボットが代わりに行なうようになりつつある。このようなロボットは、ハンドなどのエンドエフェクタによって部品を把持して組み立てを行なう。この組み立てに際しては、把持の対象となる部品とロボット(ハンド)との間の相対的な位置及び姿勢を計測する必要がある。
【0003】
位置及び姿勢を計測する方法としては、撮像装置で撮像した二次元画像から検出される特徴に対してモデルフィッティングする方法が知られている。また、距離センサにより得られた距離画像の各点を三次元点群データに変換して当該三次元点群に対してモデルフィッティングする方法等も知られている。
【0004】
二次元画像に対するモデルフィッティングでは、物体の位置及び姿勢に基づいて三次元形状モデルを二次元画像上に投影した投影像を、二次元画像から検出された特徴にフィティングさせることにより物体の位置及び姿勢を計測する。
【0005】
距離画像に対するモデルフィッティングでは、距離データを表現する距離画像の各点を三次元座標を持つ三次元点群データに変換し、三次元形状モデルに当該三次元点群データをフィッティングさせることにより物体の位置及び姿勢を計測する。この他、二次元画像から得られる計測情報と距離画像から得られる計測情報とを併用して物体の位置及び姿勢を計測する方法も知られている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】R.Y.Tsai,“A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses,"IEEE Journal of Robotics and Automation,vol.RA-3,no.4,1987.
【非特許文献2】L.Vacchetti,V.Lepetit,and P.Fua,“Combining edge and texture information for real-time accurate 3D camera tracking,"Proc.3rd IEEE/ACM International Symposium on Mixed and Augmented Reality(ISMAR'04),pp.48-57,2004.
【発明の概要】
【発明が解決しようとする課題】
【0007】
二次元画像から得られる計測情報と距離画像から得られる計測情報とを併用して物体の位置及び姿勢を計測するように構成した場合、一般に、その計測精度の向上が期待できる。
【0008】
しかし、計測を行なうときの状態(例えば、物体の形状や物体の置かれ方)によっては、二次元画像から得られる計測情報、又は距離画像から得られる計測情報のいずれかを利用して計測を行なった場合の方が、精度良く計測を行なえる場合がある。
【0009】
また、二次元画像から得られる計測情報、又は距離画像から得られる計測情報のいずれかを利用して計測を行なうだけで計測精度を十分に満たせる場合もある。このような場合、両手法を併用した計測を行なう必要はない。計算時間や計算リソース等を考慮すると、却って処理が無駄となる。
【0010】
本発明は、上記課題に鑑みてなされたものであり、計測対象物体の位置及び姿勢に関する複数の計測手法の中からいずれかを選択して実施するようにした技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明の一態様は、計測対象物体の位置及び姿勢の計測を行なう位置姿勢計測装置であって、撮像装置により撮像された前記計測対象物体の二次元画像を入力する入力手段と、距離センサにより計測された前記計測対象物体の距離データを取得する取得手段と、前記二次元画像から前記計測対象物体の画像特徴を検出する検出手段と、前記計測対象物体の状態を判定する判定手段と、前記判定手段により判定された状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定するモード設定手段と、前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう計測手段とを具備することを特徴とする。
【発明の効果】
【0012】
本発明によれば、計測対象物体の位置及び姿勢の計測に関する複数の計測手法の中からいずれかを選択して実施することができる。
【図面の簡単な説明】
【0013】
【図1】本実施形態に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図2】三次元形状モデルの一例を示す図。
【図3】図1に示す位置姿勢計測部46の機能的な構成の一例を示す図。
【図4】図1に示す位置姿勢計測装置40の動作の一例を示すフローチャート。
【図5】エッジ検出の概要の一例を示す図。
【図6】第1の計測モード設定時における位置姿勢算出処理の流れの一例を示すフローチャート。
【図7】投影像(線分)と検出されたエッジとの関係の一例を示す図。
【図8】二次元画像上における誤差を次元変換させる処理の概要の一例を示す図。
【図9】本実施形態に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図10】実施形態2に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図11】実施形態3に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図12】ロボットシステムを制御する制御システムの構成の一例を示す図。
【発明を実施するための形態】
【0014】
以下、本発明の一実施の形態について添付図面を参照して詳細に説明する。
【0015】
(実施形態1)
図1は、本実施形態に係わる位置姿勢計測装置40における機能的な構成の一例を示す図である。
【0016】
位置姿勢計測装置40は、計測対象物体を模したモデルデータ(三次元形状モデル)の形状に基づいて、計測対象物体(以下、単に物体と呼ぶ場合もある)の位置及び姿勢を計測(算出)する処理を切り替えて行なう。詳細については後述するが、第1のモード(本実施形態においては、第1の計測モード)又は第2のモード(本実施形態においては、第2の計測モード)のいずれかを設定し、そのモードに従って計測対象物体の位置及び姿勢を計測する。第1の計測モードでは、二次元画像から得られる計測情報(画像特徴)と距離画像から得られる計測情報(三次元点群データ)とを同時に利用したモデルフィッティングを行なう。第2の計測モードでは、二次元画像から得られる計測情報(画像特徴)のみを利用したモデルフィッティングを行なう。
【0017】
ここで、位置姿勢計測装置40は、二次元画像撮像部20と、距離画像計測部30とに接続されている。
【0018】
二次元画像撮像部20は、二次元画像を撮像する役割を果たし、例えば、撮像装置(例えば、カメラ)で実現される。撮像される二次元撮像画像は、濃淡画像であっても良いし、また、カラー画像であっても良い。
【0019】
距離画像計測部30は、計測対象である物体表面までの距離を示す距離画像を計測する役割を果たし、例えば、距離センサで実現される。距離センサは、距離画像を出力する。距離画像は、各画素が視点位置(距離センサの位置)からの奥行きの情報を持つ画像であり、距離センサから物体までの距離データを表現する。距離センサには、対象に照射したレーザ光やスリット光の反射光をカメラで撮像し、三角測量により距離を計測するアクティブ式を採用すれば良い。なお、距離センサは、距離画像を撮像できればよく、その方式は特に問わない。例えば、光の飛行時間を利用するTime−of−flight方式を採用しても良いし、ステレオカメラが撮像した画像から三角測量によって各画素の奥行きを計算するパッシブ式を採用しても良い。
【0020】
ここで、位置姿勢計測装置40は、三次元形状モデル保持部45と、概略値入力部44と、二次元画像入力部41と、画像特徴検出部42と、三次元座標情報取得部43と、モード設定部47と、位置姿勢計測部46とを具備して構成される。
【0021】
二次元画像入力部41は、二次元画像撮像部20により撮像された画像を装置内(位置姿勢計測装置40)に入力する。撮像装置の焦点距離や主点位置、レンズ歪みパラメータなどの内部パラメータは、事前にキャリブレーションしておいてもよい(非特許文献1参照)。
【0022】
三次元座標情報取得部43は、距離画像計測部30により計測された距離画像に基づいて三次元点群データ(計測対象物体の表面形状を示す情報)を生成し、それを装置内に入力する。三次元座標情報取得部43は、距離画像の各画素をカメラ座標系(二次元画像撮像部20の座標系)における三次元点群データに変換し、それを三次元座標情報として取得する。三次元点群データへの変換は、距離センサ(距離画像計測部30)とカメラ(二次元画像撮像部20)との相対的な位置姿勢(既知の情報)に基づいて行なわれる。より具体的には、距離画像の各画素について、画素位置に対応する視線ベクトルに奥行き値を乗算することにより上記変換を行なう。なお、距離センサ(距離画像計測部30)及びカメラ(二次元画像撮像部20)はそれぞれ固定されており、両者の相対的な位置姿勢は変化しないと仮定し、事前にキャリブレーションしておいてもよい。例えば、三次元形状が既知であるキャリブレーション物体を様々な方向から観察し、二次元画像に基づいたキャリブレーション物体の位置姿勢と、距離画像に基づいたキャリブレーション物体の位置姿勢との差に基づいて相対的な位置姿勢を求める。なお、二次元画像撮像部20による二次元画像の撮像と距離画像計測部30による距離画像の計測とは、同時に行なわれるのが望ましい。但し、計測対象物体が静止している場合など、位置姿勢計測装置40と計測対象物体との間の位置及び姿勢の関係が変化しない場合には、必ずしも同時に行なう必要はない。
【0023】
三次元形状モデル保持部45は、位置及び姿勢の計測対象である物体(計測対象物体)を模した三次元形状のモデルデータ(三次元形状モデル)を表す情報を保持する。ここで、図2を用いて、本実施形態に係わる三次元形状モデルの一例について説明する。三次元形状モデルは、点の集合及び各点を結んで構成される線分の集合によって定義される。三次元形状モデル10は、図2(a)に示すように、点P1〜点P14の14点から構成される。また、三次元形状モデル10は、図2(b)に示すように、線分L1〜L16により構成されている。点P1〜点P14は、図2(c)に示すように、三次元座標値により表される。また、線分L1〜L16は、図2(d)に示すように、線分を構成する点のID(識別子)により表される。
【0024】
なお、ここでは図示を省略するが、三次元形状モデルは、面の情報も保持する。各面は、各面を構成する点のIDにより表される。図2に示す三次元形状モデルでは、直方体を構成する6つの面の情報が定義されている。三次元形状モデルは、位置姿勢計測部46により物体の位置及び姿勢が計測される時や、モード設定部47によるモード設定時に用いられる。
【0025】
概略値入力部44は、位置姿勢計測装置40に対する物体の位置及び姿勢の概略値を入力する。本実施形態において、位置姿勢計測装置40に対する物体の位置及び姿勢とは、二次元画像撮像部20を基準とした物体の位置及び姿勢を示すが、必ずしも二次元画像撮像部20を基準にする必要はない。例えば、二次元画像撮像部20の座標系に対する物体の相対的な位置及び姿勢が既知であり、且つその位置及び姿勢が変化しないのであれば、位置姿勢計測装置40におけるその他の部分を基準としてもよい。また、本実施形態においては、物体の位置及び姿勢の概略値として、位置姿勢計測装置40が当該物体から過去(例えば、直前)に計測した計測値を用いる。但し、物体の位置及び姿勢の概略値は、必ずしもこのような値である必要はない。例えば、過去に計測した物体の位置及び姿勢の計測値に対して時系列フィルタリング処理(例えば、線形フィルタ、カルマンフィルタ)を実施し、物体の運動速度や角速度を推定する。そして、その推定結果に基づいて物体の位置及び姿勢を予測した値を概略値としてもよい。また、センサから得られる物体の位置及び姿勢を概略値としてもよい。ここで、センサは、物体の位置及び姿勢を6自由度で計測できればよく、その方式(例えば、磁気式、光学式、超音波式)は、特に問わない。なお、物体の置かれているおおよその位置や姿勢をパターンマッチングなどにより求めてもよいし、また、物体の置かれているおおよその位置や姿勢が予め分かっているのであれば、その値を概略値として用いてもよい。
【0026】
画像特徴検出部42は、二次元画像入力部41により入力された二次元画像から計測対象物体を示す画像特徴を検出する。本実施形態においては、画像特徴としてエッジ(濃度勾配の極値)を検出する場合を例に挙げる。
【0027】
モード設定部47は、計測対象物体の形状(三次元形状モデル保持部45により保持される三次元形状モデルの形状)に基づいて、計測対象物体の位置及び姿勢を計測するモードを切り替える。モード設定部47には、三次元形状モデルの形状を類推する形状類推部48が設けられる。モード設定部47おいては、第1のモード(本実施形態においては、第1の計測モード)及び第2のモード(本実施形態においては、第2の計測モード)を切り替えて設定する。第1の計測モード設定時には、二次元画像入力部41により入力された二次元画像から得られる計測情報と、三次元座標情報取得部43により取得された距離画像から得られる計測情報とを(同時に)利用したモデルフィッティングが行なわれる。第2の計測モード設定時には、二次元画像入力部41により入力された二次元画像(のみ)を利用したモデルフィッティングが行なわれる。
【0028】
ここで、二次元画像から得られる計測情報と距離画像から得られる計測情報とを利用したモデルフィッティング(第1の計測モード)は、物体の位置及び姿勢を高精度に計測できる。その反面、距離センサの特性上、物体端部の計測データが部分的に欠損してしまう場合がある。そのため、例えば、物体が小さい、物体が細い、物体に凹凸が多い等の場合には、物体の端部の距離計測結果の信用性は低い。また、距離センサの奥行き方向の分解能には限界がある。例えば、物体が紙のように薄い場合、その下にある台や他の物体とほとんど同じ距離データが取得されることがあり、これは誤計測の要因となる。
【0029】
これらのケースから、計測対象物体の形状によっては、二次元画像と距離画像とを利用したモデルフィッティング(第1の計測モード)よりも、距離画像は使用せずに、二次元画像を利用したモデルフィッティング(第2の計測モード)により計測を行なう方が精度良く計測を行なえる場合がある。また、物体の位置及び姿勢の計測時における距離画像の寄与度が小さい場合もある。更に、二次元画像を利用した計測を行なうだけで計測精度を十分に満たせる場合もある。このように距離画像が有意でない場合、二次元画像のみを用いて物体の位置及び姿勢の計測を行なった方が、計算時間や計算リソースの抑制を図れる他、計測精度が向上する場合もある。
【0030】
そこで、本実施形態においては、計測対象物体の三次元形状モデルの形状を類推し、その類推された形状に基づいて計測モード(第1の計測モード、第2の計測モード)を切り替えて設定する。そして、その設定された計測モードにより物体の位置及び姿勢の計測を行なう。
【0031】
位置姿勢計測部46は、モード設定部47により設定されたモードに従って計測対象物体の位置及び姿勢を計測(算出)する。第1の計測モード設定時には、画像特徴検出部42により検出された画像特徴に対して、三次元形状モデル保持部45により保持された三次元形状モデルをフィッティングさせる。また、第1の計測モード設定時には、三次元座標情報取得部43により取得された三次元点群に対しても、三次元形状モデルをフィッティングさせる。これにより、位置姿勢算出処理を実施し、計測対象物体の位置及び姿勢を計測(算出)する。一方、第2の計測モード設定時には、画像特徴検出部42により検出された画像特徴に対して、三次元形状モデル保持部45により保持された三次元形状モデルをフィティングさせる。これにより、位置姿勢算出処理を実施し、計測対象物体の位置及び姿勢を計測(算出)する。
【0032】
次に、図3を用いて、図1に示す位置姿勢計測部46における機能的な構成の一例について説明する。
【0033】
位置姿勢計測部46は、二次元画像ずれ算出部461と、三次元空間ずれ算出部462と、尺度変換部463と、位置姿勢補正部464とを具備して構成される。
【0034】
二次元画像ずれ算出部461は、二次元画像上で検出された画像特徴(エッジ)と、二次元画像上における三次元形状モデルの投影像(線分)との二次元画像上における距離を算出する。なお、三次元形状モデルの投影像は、計測対象物体の位置及び姿勢の概略値と、二次元画像撮像部20の内部パラメータ(例えば、キャリブレーション後の値)とに基づいて投影される。
【0035】
三次元空間ずれ算出部462は、距離画像に基づいて生成された三次元点群データを構成する各点と、三次元形状モデルの面との三次元空間中における距離を算出する。
【0036】
尺度変換部463は、二次元画像ずれ算出部461及び三次元空間ずれ算出部462により算出された双方の距離の尺度を一致させる。より具体的には、二次元画像上での対応点(点)と投影像(線分)の符号付距離を算出し、三次元空間中での三次元点群データにおける点と三次元形状モデルの平面との符号付距離を算出し、双方の符号付距離を物体の位置及び姿勢の関数として線形近似する。そして、符号付距離を0としたときに各計測情報について成り立つ線形方程式を用意する。
【0037】
位置姿勢補正部464は、この線形方程式を連立方程式として解くことにより、物体の位置及び姿勢の微小変化を求める。そして、その求めた値に基づいて物体の位置及び姿勢を示す計測値を補正する。この処理を繰り返すことにより最終的な計測値を算出する。
【0038】
以上が、位置姿勢計測装置40の構成の一例についての説明である。なお、上記説明した、位置姿勢計測装置40には、コンピュータが内蔵されている。コンピュータには、CPU等の主制御手段、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等の記憶手段が具備される。また、コンピュータにはその他、ボタンやディスプレイ又はタッチパネル等の入出力手段、ネットワークカード等の通信手段等も具備されていてもよい。なお、これら各構成部は、バス等により接続され、主制御手段が記憶手段に記憶されたプログラムを実行することで制御される。
【0039】
次に、図4を用いて、図1に示す位置姿勢計測装置40において計測対象物体の位置及び姿勢を計測する際の処理の流れの一例について説明する。
【0040】
(S101)
位置姿勢計測装置40は、概略値入力部44において、位置姿勢計測装置40に対する物体の位置及び姿勢の概略値を入力する。本実施形態においては、上述した通り、物体の位置及び姿勢の概略値として、位置姿勢計測装置40が当該物体から過去(例えば、直前)に計測した計測値を入力する。
【0041】
(S102)
位置姿勢計測装置40は、二次元画像入力部41において、二次元画像撮像部20により撮像された二次元画像を入力する。
【0042】
(S103)
位置姿勢計測装置40は、三次元座標情報取得部43において、距離画像計測部30により計測された三次元座標情報を取得する。上述した通り、三次元座標情報取得部43は、距離画像の各画素をカメラ座標系(二次元画像撮像部20の座標系)における三次元点群データに変換し、それを三次元座標情報として取得する。
【0043】
(S104)
ここで、位置姿勢計測装置40は、画像特徴検出部42において、S102の処理で入力された二次元画像から計測対象物体を示す画像特徴を検出する。本実施形態においては、上述した通り、画像特徴としてエッジを検出する。
【0044】
ここで、図5を用いて、本実施形態に係わるエッジ検出の概要について説明する。エッジ検出処理では、まず、計測対象物体が撮像された二次元画像に対して三次元形状モデルを投影する。この投影像(線分)は、S101の処理で入力された計測対象物体の位置及び姿勢の概略値と、二次元画像撮像部20の内部パラメータ(例えば、キャリブレーション後の値)とに基づいて求められる。次に、投影された各線分51上において、等間隔に制御点52を設定する。そして、投影線分51の法線方向に平行で且つ制御点52を通過する線分(以下、探索ライン)53上からエッジ56を1次元探索する(図5(a))。エッジは、画素値の濃度勾配の極値となる(図5(b))。場合によっては、探索ライン53上から複数のエッジが検出されることがある。この場合、本実施形態においては、複数検出されたエッジを仮説として保持する(非特許文献2参照)。このようにして各制御点52に対応するエッジ56を探索する。
【0045】
(S105)
位置姿勢計測装置40は、形状類推部48において、三次元形状モデル保持部45により保持される三次元形状モデルの形状を類推する。三次元形状モデルの形状は、例えば、三次元形状モデルを包含するバウンディングボックス(直方体)で代替してもよい。バウンディングボックスは、三次元形状モデルが属する三次元座標系のxyz軸それぞれに垂直に交わる面をバウンディングボックスの各面として有する。なお、このバウンディングボックスの各面は、xyz軸上で三次元形状モデルが含まれる最大値や最小値に基づいて決められる(Axis−Aligned−Bounding−Box)。また、三次元形状モデルに適合した形でバウンディングボックスを形成しても良い。形状類推部48においては、三次元形状モデルを代替するバウンディングボックスを求めた後、その各辺の長さ(x1、y1、z1)や、辺の比(x1/y1、x1/z1、y1/x1、y1/z1、z1/x1、z1/y1)から三次元形状モデルの形状を類推する。なお、三次元形状モデルの形状の類推は、バウンディングボックスを用いずに行なっても良い。例えば、予め用意された要素モデル(プリミティブモデル)の組み合わせ方から求めてもよい。この方法を採用した場合、三次元形状モデルに凹凸が多いか少ないかを類推できる。
【0046】
ここで、三次元形状モデルの形状の類推は、例えば、以下のルールに従って行なう。
【0047】
1).各辺の長さが全て、予め定められた第1の閾値(例えば、1cm)よりも小さい場合は、三次元形状モデルは小さい形状であると類推する。
【0048】
2).辺の比のうちの2つが、予め定められた第2の閾値(例えば、10)よりも大きく、且つ辺の比のうちの上記以外の2つが、予め定められた第3の閾値(例えば、0.1)よりも小さい。更に、各辺の長さのうちの1つが、予め定められた第4の閾値(例えば、3cm)よりも大きい場合は、三次元形状モデルは、細い形状であると類推する。
【0049】
3).辺の比のうちの2つが、予め定められた第2の閾値(例えば、10)よりも大きく、且つ辺の比のうちの上記以外の2つが、予め定められた第3の閾値(例えば、0.1)より小さい。更に、各辺の長さのうちの2つが、予め定められた第4の閾値(例えば、3cm)よりも大きい場合は、三次元形状モデルは、薄い形状であると類推する。
【0050】
(S106)
次に、位置姿勢計測装置40は、モード設定部47において、S105の処理で類推された三次元形状モデルの形状に基づいて、計測モードの設定を行なう。すなわち、計測対象物体(三次元形状モデル)の形状に基づいて、距離画像により得られた計測情報を用いた計測を行なうか否かを判定し、その判定結果に基づいて第1の計測モードか第2の計測モードかのいずれかを設定する。初期モードは、第1の計測モードとする。
【0051】
例えば、三次元形状モデルの形状が、小さい、細い、凹凸が多い、薄い等の少なくともいずれかの場合は、第1の計測モードから第2の計測モードに切り替える。これは、上述した通り、距離センサ(距離画像計測部30)による計測に誤りが含まれている可能性が高いためである。第2の計測モードでは、距離画像から得られる計測情報を用いずに物体の位置及び姿勢を計測するため、距離センサによる計測に誤りが含まれている場合であっても、精度良く計測が行なえる。なお、三次元形状モデルの形状が、小さい、細い、凹凸が多い、薄い等以外の場合は、第1の計測モードを設定(維持)する。
【0052】
(S107)
位置姿勢計測装置40は、位置姿勢計測部46において、S106の処理で設定されたモードに従って計測対象物体の位置及び姿勢を計測(算出)する。詳細については後述するが、S106の処理で設定されたモードに基づき、S104の処理で検出された画像特徴(エッジ)、S103の処理で入力された三次元座標情報(三次元点群)の少なくともいずれかに対して、三次元形状モデルをフィッティングさせる。これにより、計測対象物体の位置及び姿勢を求める。
【0053】
ここで、図4のS107に示す位置姿勢計測部46における動作の一例について説明する。まず、第1の計測モード設定時における処理の流れについて説明する。第1の計測モードでは、二次元画像上の距離(エッジと投影像との距離)を三次元空間中の距離に変換し、尺度を統一する。これにより、両手法の寄与率が偏ることをなくす。
【0054】
図6には、第1の計測モード設定時における位置姿勢算出処理の流れの一例が示される。この処理では、ガウス−ニュートン(Gauss-Newton)法により反復演算し、計測対象物体の位置及び姿勢(以下、6次元ベクトルsで表す)の概略値を補正する。これにより、計測対象物体の位置及び姿勢を求める。なお、位置姿勢算出処理は、ガウス−ニュートン法に限られない。例えば、より計算がロバストであるLevenberg−Marquardt法を用いてもよいし、よりシンプルな方法である最急降下法を用いてもよい。また、共役勾配法やICCG法など、他の非線形最適化計算手法を用いてもよい。
【0055】
(S201)
位置姿勢計測装置40は、位置姿勢計測部46において、まず、初期化処理を行なう。この初期化処理では、例えば、図4のS101の処理で得られた計測対象物体の位置及び姿勢の概略値を取得する。
【0056】
(S202)
位置姿勢計測装置40は、位置姿勢計測部46において、画像特徴(エッジ)及び三次元点群データ(距離画像に基づく三次元点群データ)と、三次元形状モデルとをそれぞれ対応付ける。この処理では、まず、S201の処理で取得した概略値に基づいて三次元形状モデルの各線分を二次元画像上へ投影し、当該投影された線分に対して、二次元画像上で最も近い画像特徴(エッジ)を制御点と対応付ける。これにより、画像特徴(エッジ)と三次元計上モデルとを対応付ける。
【0057】
また、S201の処理で取得した概略値に基づいて三次元形状モデル又は三次元点群データを座標変換し、三次元点群データの各点に対して、三次元空間中で最も近傍する三次元形状モデルの面を探索する。これにより、三次元点群データを三次元形状モデルと対応付ける。
【0058】
(S203)
位置姿勢計測装置40は、位置姿勢計測部46において、線形連立方程式を解くための係数行列と、誤差ベクトル(エッジ、三次元点群データ)との算出を行なう。ここで、係数行列の各要素は、S201の処理で取得した概略値の微小変化に対する一次の偏微分係数である。エッジについての要素は、対応点(点)と投影像(線分)との二次元画像上での距離を位置姿勢の関数とした一次の偏微分係数である。三次元点群データについての要素は、三次元点群データにおける点と三次元形状モデルの平面との三次元空間中における距離を位置姿勢の関数とした一次の偏微分係数である。
【0059】
ここで、係数行列の算出方法について説明する。図7は、投影像(線分)と、検出されたエッジとの関係の一例を示す図である。この場合、画像の水平方向をu軸61とし、垂直方向をv軸62としている。ある制御点(投影された各線分を画像上で等間隔に分割した点)63の画像上における座標64を(u0,v0)と表す。当該制御点が属する線分Lの画像上における傾きを(u軸に対する傾き)θと表す。傾き65は、線分(投影線分)66の両端の三次元座標を、位置及び姿勢sに基づいて画像上(二次元上)に投影し、その両端の座標を結んだ直線の傾きを示している。線分66の画像上での法線ベクトルは(sinθ,−cosθ)となる。また、制御点と対応する点(対応点67)の画像上における座標68を(u’,v’)とする。ここで、対応点67の座標(u’,v’)を通り、傾き65がθである直線(破線)上の点(u,v)は、
【0060】
制御点63の画像上における位置は、計測対象物体の位置及び姿勢により変化する。計測対象物体の位置及び姿勢sは、6自由度である。すなわち、sは6次元ベクトルであり、計測対象物体の位置を表す3つの要素と、姿勢を表す3つの要素とからなる。姿勢を表す3つの要素は、例えば、オイラー角による表現や、方向が原点を通る回転軸を表し大きさが回転角を表す三次元ベクトルなどによって表現される。計測対象物体の位置及び姿勢により変化する点の画像上での座標は、制御点63(すなわち、座標(u0,v0)64)の近傍で1次のテイラー展開によって式(2)のように近似できる。但し、Δsi(i=1,2,・・・,6)は、sの各成分の微小変化を表す。
【0061】
物体の位置及び姿勢の概略値と、実際の物体の位置及び姿勢との差がそれほどないと仮定すると、正しいsによって得られる制御点63の画像上での位置は、式(1)が表す直線上にあると仮定できる。式(2)によって近似されるu、vを式(1)に代入することにより、式(3)が得られる。式(3)は、S202の処理で対応付けされた全てのエッジについて立式できる。
【0062】
二次元画像撮像部20の座標系で表される三次元点群データの三次元座標は、計測対象物体の位置及び姿勢sを用いて、計測対象物体の座標系における三次元座標(x,y,z)に変換することができる。S201の処理で取得した概略値により、三次元点群データ中のある点が計測対象物体の座標系の座標(x0,y0,z0)に変換されるとする。(x,y,z)は、計測対象物体の位置及び姿勢により変化するため、(x0,y0,z0)の近傍で1次のテイラー展開によって式(4)のように近似できる。
【0063】
S202の処理により、三次元点群データ中のある点に対応付けられた三次元形状モデルの面に対する計測対象物体の座標系における方程式を「ax+by+cz=e(a2+b2+c2=1、a,b,c,eは定数)」とする。正しいsによって変換される(x,y,z)は、平面の方程式「ax+by+cz=e」を満たすと仮定する。式(4)を平面の方程式に代入すると式(5)が得られる。式(5)は、S202の処理で対応付けされた全ての三次元点群データについて立式することができる。
【0064】
式(3)、式(5)は、sの各成分の微小変化△si(i=1,2,・・・,6)についての方程式である。そのため、式(6)のような△siに関する線形連立方程式が成り立つ。
【0065】
式(6)の右辺の誤差ベクトルは、上述した通り、エッジについては二次元画像上での符号付距離であり、三次元点群データについては三次元空間中での符号付距離である。そのため、両者の距離の尺度は一致していない。そこで、二次元画像上での誤差にエッジの奥行きを乗じることにより、二次元画像上での誤差を三次元空間中での誤差に近似させる。具体的には、エッジについての方程式の両辺に、エッジの奥行きを乗じる。これにより、誤差の尺度を三次元空間中の距離に統一する。なお、二次元画像からは奥行き情報を得ることはできないため、エッジの奥行きは何らかの近似的な方法により求める必要がある。
【0066】
図8を用いて、二次元画像上の誤差71を三次元空間中の誤差72に近似させる方法の一例について説明する。本実施形態においては、物体の位置及び姿勢の概略値に基づいて算出された各制御点73の視点74からの奥行き75を、二次元画像上の誤差71に乗じる。これにより、二次元画像上の誤差71を三次元空間中の誤差72に変換する。また、奥行き75の代わりに、三次元空間中の制御点73から画像面76におけるエッジ77を通過する視線ベクトルに対して下ろした垂線の長さとなるようなスケーリング係数を乗じるようにしてもよい。
【0067】
ここで、解くべき連立方程式は、式(7)になる。
ここで、式(7)を式(8)のように表す。
線形連立方程式の係数行列Jを算出するため、偏微分係数を算出する。
【0068】
(S204)
続いて、位置姿勢計測装置40は、位置姿勢計測部46において、式(8)をもとに、行列Jの一般化逆行列(JT・J)−1・JTを用いて補正値Δsを求める。ここで、エッジや三次元点群データには、誤検出などによる外れ値が多いため、次に述べるようなロバスト推定手法を用いる。一般に、外れ値であるエッジや点群データでは、式(7)の右辺の誤差ベクトルの値が大きくなる。そこで、誤差の絶対値が大きいデータに対しては小さな重みを与え、誤差の絶対値が小さいデータに対しては大きな重みを与える。重みは、例えば、式(9)に示すようなTukeyの関数により与える。
【0069】
なお、重みを与える関数は、Tukeyの関数である必要はなく、誤差の絶対値が大きいデータに対して小さな重みを与え、誤差の絶対値が小さいデータに対して大きな重みを与える関数であれば良い。そのため、例えば、Huberの関数などを用いてもよい。
【0070】
各計測情報(エッジ又は点群データ)に対応する重みをwiとする。ここで、式(10)のように重み行列Wを定義する。
重み行列Wは、対角成分以外は全て「0」の正方行列であり、対角成分には重みwiが入る。この重み行列Wを用いて、式(8)を式(11)のように変形する。
式(12)のように式(11)を解くことにより補正値Δsを求める。
(S205)
位置姿勢計測装置40は、位置姿勢計測部46において、S204の処理で算出された補正値Δsにより、S201の処理で得られた概略値を補正する。これにより、計測対象物体の位置及び姿勢を求める。
s←s+△s
(S206)
位置姿勢計測装置40は、位置姿勢計測部46において、計測対象物体の位置及び姿勢の計測値が収束しているか否かの判定を行なう。収束していれば、この処理は終了し、そうでなければ、再度、S202の処理に戻る。なお、収束しているか否かは、補正値Δsがほぼ0である場合や、誤差ベクトルの二乗和の補正前と補正後の差がほぼ0である場合に収束したと判定する。
【0071】
次に、第2の計測モード設定時における処理の流れについて説明する。第2の計測モードでは、上述した式(3)を解くことで物体の位置及び姿勢を算出する。第2の計測モード設定時には、距離画像に基づき生成した三次元点群データを物体の位置及び姿勢の計測に用いないため、図3に示す三次元空間ずれ算出部462では処理を行なわない。また、尺度変換部463においても、距離のずれの尺度の変換を行なわない。
【0072】
また、第2の計測モード設定時には、図6で説明した第1の計測モード設定時と同様の流れで処理が行なわれるため、ここでは、図を用いた説明については省略する。相違点としては、S202の処理で三次元点群データの対応付けを行なわない点や、S203の処理で尺度変換を行わない点等である。
【0073】
以上説明したように実施形態1によれば、三次元形状モデルの形状に基づいてモードを設定し、当該モードに従って計測対象物体の位置及び姿勢を計測(算出)する。これにより、計測対象物体の形状に応じた手法で計測を行なえるため、計測の精度向上や高速化、ロバスト性の向上を図れる。
【0074】
なお、上述した実施形態1においては、三次元形状モデルの形状に基づいてモードを切り替えて設定していたが、これに限られない。例えば、距離画像計測部30により計測された距離画像に基づいてモードを設定するように構成してもよい。この場合、位置姿勢計測装置40は、図9に示すように、モード設定部47には、三次元座標情報取得部43により取得された三次元点群データが入力される。これにより、形状類推部48においては、距離画像に基づき生成された三次元点群データに基づいて計測対象物体の形状を類推し、モード設定部47においては、当該類推された形状に基づいてモードを設定することができる。
【0075】
(実施形態2)
次に、実施形態2について説明する。実施形態2においては、三次元形状モデルの形状と、距離画像から得られる計測情報とに基づいて計測モードを設定する場合について説明する。
【0076】
図10を用いて、実施形態2に係わる位置姿勢計測装置40における機能的な構成の一例について説明する。なお、実施形態1を説明した図1と同一の符号が付された構成は、基本的には、実施形態1同様の機能を果たす。ここでは、実施形態1との相違点について重点的に説明する。
【0077】
実施形態1との相違点としては、モード設定部47におけるモード設定処理にある。具体的には、モード設定部47では、三次元形状モデル保持部45により保持される三次元形状モデルの形状と、三次元座標情報取得部43により取得される三次元点群データとに基づいてモードを設定する。
【0078】
モード設定部47においては、これら両データの比較を行うために、三次元点群データ中の各々の点から最も近い三次元形状モデル上の表面に当該各々の点を対応付ける。対応付けの結果、三次元形状モデルから三次元空間的に離れた点が所定数より多ければ、三次元形状モデルと距離画像における距離データとが大きく異なると判定し、第2の計測モードを設定する。すなわち、二次元画像から得られる計測情報を利用した物体の位置及び姿勢の計測が行なわれることになる。
【0079】
三次元形状モデルから三次元空間的に離れた点が所定数以内であれば、三次元形状モデルと距離画像における距離データとが比較的似ていると判定し、第1の計測モードを設定する。すなわち、二次元画像から得られる計測情報と距離画像から得られる計測情報とを利用した物体の位置及び姿勢の計測が行なわれることになる。なお、これら両データの比較を行なう前に、三次元点群データの中から計測対象物体の三次元点群データのみをセグメンテーションで選択するように構成してもよい。
【0080】
なお、実施形態2に係わる位置姿勢計測装置40における処理は、実施形態1で説明した図4と同様の流れとなるため、ここでは、図を用いた説明については省略する。相違点としては、S105の処理を省く点とS106の処理が異なる点とが挙げられる。具体的には、S106の処理において、モード設定部47は、三次元形状モデル保持部45により保持される三次元形状モデルの形状と、三次元座標情報取得部43により取得される三次元点群データとに基づいてモード設定を行なう。
【0081】
以上説明したように実施形態2によれば、三次元形状モデルの形状と、距離画像から得られる計測情報(距離画像に基づき生成された三次元点群データ)とを比較し、その比較結果に基づいて計測モードを設定する。具体的には、三次元形状モデルの形状と、距離画像から得られる計測情報とを比較する。そして、その比較結果に基づいて三次元形状モデルと大きく異なる距離データが計測されたと判定した場合、距離画像を信用できないため、第2の計測モードを設定する。そうでなければ、第1の計測モードを設定する。
【0082】
これにより、実施形態2の構成によれば、実施形態1の構成よりも更に適切な計測モードで物体の位置及び姿勢の計測が行なえる。
【0083】
(実施形態3)
次に、実施形態3について説明する。実施形態3においては、二次元画像上の画像特徴に基づいて計測モードを設定する場合について説明する。また、実施形態3においては、上述した第1の計測モード(第1のモード)と、新たな第3の計測モード(第2のモード)との間でモードを切り替えて設定する。第3の計測モードは、二次元画像から得られる計測情報は利用せず、距離画像から得られる計測情報を利用したモデルフィッティングを行なう。
【0084】
ここで、二次元画像から得られる計測情報(画像特徴)と距離画像から得られる計測情報(三次元点群データ)とを利用したモデルフィッティング(第1の計測モード)は、物体の位置及び姿勢を高精度に計測できる。しかし、二次元画像から得られる画像特徴を利用したモデルフィッティングを行なう場合には、二次元画像上にある程度の画像特徴が存在していないといけない。そのため、例えば、計測対象物体の表面に模様(テクスチャ)がほとんどない場合やエッジが少ない場合などは、二次元画像を利用して計測を実施するのが難しい。また、計測精度も低くなる。
【0085】
従って、計測対象物体の状態(表面状態)によっては、二次元画像と距離画像とを利用したモデルフィッティング(第1の計測モード)よりも、距離画像を利用したモデルフィッティング(第3の計測モード)により計測を行なう方が精度良く計測を行なえる場合がある。また、物体の位置及び姿勢の計測時における二次元画像の寄与度が小さい場合もある。更に、距離画像を利用して計測を行なうだけで計測精度を十分に満たせる場合もある。このように画像特徴が有意でない場合、距離画像のみを用いて物体の位置及び姿勢の計測を行なった方が、計算時間や計算リソースの抑制を図れる他、計測精度が向上する場合もある。
【0086】
そこで、実施形態3においては、二次元画像上から画像特徴を検出し、その計測された画像特徴に基づいて計測モード(第1の計測モード、第3の計測モード)を切り替えて設定する。そして、その計測モードに応じて物体の位置及び姿勢の計測を行なう。
【0087】
図11を用いて、実施形態3に係わる位置姿勢計測装置40における機能的な構成の一例について説明する。なお、実施形態1を説明した図1と同一の符号が付された構成は、基本的には、実施形態1同様の機能を果たす。ここでは、実施形態1との相違点について重点的に説明する。
【0088】
実施形態1との相違点としては、モード設定部47におけるモード設定処理にある。具体的には、モード設定部47では、画像特徴検出部42により二次元画像から検出された計測対象物体を示す画像特徴に基づいてモードを設定する。
【0089】
モード設定部47には、二次元画像上から周波数成分を抽出する周波数成分抽出部49が設けられる。周波数成分抽出部49により二次元画像から抽出された周波数成分が、所定の周波数より低ければ、モード設定部47は、二次元画像上の画像特徴が少ないと判定し、第3の計測モードを設定する。そうでなければ、第1の計測モードが設定される。
【0090】
位置姿勢計測部46は、第3の計測モードが設定されている場合、三次元座標情報取得部43により取得された三次元点群に対して、三次元形状モデルをフィッティングさせる。これにより、位置姿勢算出処理を実施し、計測対象物体の位置及び姿勢を計測(算出)する。
【0091】
ここで、第3の計測モード設定時における処理の流れについて説明する。第3の計測モードでは、実施形態1で説明した式(7)を解くことで物体の位置及び姿勢を算出する。第3の計測モード設定時には、二次元画像の画像特徴を物体の位置及び姿勢の計測に用いないため、図3に示す二次元空間ずれ算出部461では処理を行なわない。また、尺度変換部463においても、距離のずれの尺度の変換を行なわない。
【0092】
なお、実施形態3に係わる位置姿勢計測装置40における処理は、実施形態1で説明した図4と同様の流れとなるため、ここでは、図を用いた説明については省略する。相違点としては、S104の処理が異なる点と、S105の処理を省く点と、S106の処理が異なる点とが挙げられる。具体的には、S104の処理では、画像特徴検出部42において、二次元画像から計測対象物体を示す画像特徴を検出するとともに、周波数成分抽出部49において、二次元画像の周波数成分を抽出する。また、S106の処理では、モード設定部47は、周波数成分抽出部49により抽出された周波数成分に基づいてモード設定を行なう。
【0093】
また、第3の計測モード設定時は、図6を用いて説明した第1の計測モード設定時と同様の流れで物体の位置及び姿勢の計測処理が行なわれるため、ここでは、図を用いた説明については省略する。相違点としては、S202の処理でエッジの対応付けを行なわない点や、S203の処理で尺度変換を行わない点等である。
【0094】
以上説明したように実施形態3によれば、二次元画像上の画像特徴の検出状態(多いか少ないか)に基づいて計測モードを設定する。例えば、計測対象物体の表面に模様(テクスチャ)がほとんどない場合やエッジが少ない場合などは、二次元画像を利用して計測を実施するのが難しいと判定し、第3の計測モードを設定する。そうでなければ、第1の計測モードを設定する。
【0095】
なお、上述した実施形態3においては、二次元画像上の周波数成分に基づいてモード設定を判定しているが、これに限られず、二次元画像上に画像特徴が多いか少ないかを判定できれば良い。そのため、周波数成分でなく、エッジや特徴点の数に基づいてモード設定を行なうように構成してもよい。
【0096】
また、上述した実施形態3においては、二次元画像上の画像特徴に基づいてモード設定を判定しているが、これに限られない。例えば、距離画像計測部30により計測され距離画像に基づいてモードを設定するように構成してもよい。この場合、モード設定部47においては、計測対象物体の距離画像に基づいて、計測対象物体に三次元的なカーブが多いか否かを判定する。判定の結果、三次元的なカーブが多ければ、エッジが少なく二次元画像を利用した計測が難しいため、第3の計測モードを設定する。そうではない場合は、第1の計測モードを設定する。
【0097】
以上が本発明の代表的な実施形態の例であるが、本発明は、上記及び図面に示す実施形態に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。例えば、上述した実施形態1〜3を組み合わせて実施しても良い。すなわち、実施形態1〜3で説明した手法に計測対象物体の状態等を計測し、その結果に基づいて第1の計測モード〜第3の計測モードの内のいずれかを設定し、計測を実施しても良い。
【0098】
ここで、上述した実施形態の変形例をいくつか例示する。
【0099】
(変形例1)
過去(例えば、直前)に計測した計測対象物体の位置及び姿勢、又は計測対象物体の概略値等に基づいて三次元形状モデルを三次元空間中に配置し、当該三次元形状モデルの観察結果に基づいてモードを変更しても良い。その観察結果により、例えば、カメラから観察される見た目の面積が少ない、カメラから見て凹凸が多い、薄い対象物体が山積みで積まれている等する場合には、距離画像を信用できない。このような場合には、第2の計測モードを設定する。
【0100】
(変形例2)
計測対象物体の模様(テクスチャ)の少ない領域が、カメラから観察される画面中の多くを占める初期位置姿勢の場合や、三次元的なカーブがエッジ部分に多く見られる初期位置姿勢の場合は、二次元画像を利用した計測が難しい。このような場合には、第3の計測モードを設定するように構成しても良い。
【0101】
(変形例3)
上述したモードは、それぞれのモードを排他的に設定する必要はなく、物体の計測を行う状態に応じて連続的に切り替えてもよい。その場合、実施形態1で説明した式(7)のスケーリング係数を操作することで、モードを連続的に切り替えればよい。
【0102】
(変形例4)
ユーザインタフェース(入出力手段)を介したユーザの指示に基づいてモードを切り替えて設定しても良い。ユーザインタフェースは、例えば、GUIメニューや、ハードウェアスイッチ等により実現される。
【0103】
(変形例5)
システム側(位置姿勢計測装置40)で自動的にモード設定を行なわず、最終的なモード設定は、ユーザに決めさせるように構成しても良い。すなわち、位置姿勢計測装置40においては、上述した処理を実施することにより、ディスプレイ画面等に推奨モード(設定対象となるモードの候補)を提示(表示)する。この場合、ユーザは、ユーザインタフェース(入出力手段)を介してモードを選択し、設定する。
【0104】
(変形例6)
ユーザに対して現在どのモードでシステム(位置姿勢計測装置40)が動作しているのかを提示するように構成してもよい。提示は、ディスプレイ画面に表示することにより行なっても良いし、ランプやLEDなどでハードウェア的に行なうようにしても良い。
【0105】
(変形例7)
上述した位置姿勢計測装置40は、例えば、計測対象物体を把持又は吸着するロボットシステムに適用することもできる。図12は、計測対象物体の位置及び姿勢に基づいてロボットシステムを制御する制御システムの構成を示している。
【0106】
位置姿勢計測装置40は、上述した実施形態同様に、二次元画像撮像部20により撮像された二次元画像と、距離画像計測部30により計測された距離画像と装置内に入力する。位置姿勢計測装置40は、計測対象物体の位置及び姿勢を計測し、計測対象物体の位置及び姿勢の情報(位置姿勢情報)をロボット制御装置82に向けて出力する。ロボット制御装置82は、当該位置姿勢情報に基づいて、計測対象物体の把持、又は計測対象物体を吸着を指示する制御情報をロボット装置81に向けて出力する。これにより、ロボット装置81は、当該制御情報に基づいて、計測対象物体を把持、又は吸着する。
【0107】
なお、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様を採ることもできる。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU、GPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、位置姿勢計測装置、その計測処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、ロボット技術の発展とともに、これまで人間が行なっていた複雑なタスク(例えば、工業製品の組み立て)をロボットが代わりに行なうようになりつつある。このようなロボットは、ハンドなどのエンドエフェクタによって部品を把持して組み立てを行なう。この組み立てに際しては、把持の対象となる部品とロボット(ハンド)との間の相対的な位置及び姿勢を計測する必要がある。
【0003】
位置及び姿勢を計測する方法としては、撮像装置で撮像した二次元画像から検出される特徴に対してモデルフィッティングする方法が知られている。また、距離センサにより得られた距離画像の各点を三次元点群データに変換して当該三次元点群に対してモデルフィッティングする方法等も知られている。
【0004】
二次元画像に対するモデルフィッティングでは、物体の位置及び姿勢に基づいて三次元形状モデルを二次元画像上に投影した投影像を、二次元画像から検出された特徴にフィティングさせることにより物体の位置及び姿勢を計測する。
【0005】
距離画像に対するモデルフィッティングでは、距離データを表現する距離画像の各点を三次元座標を持つ三次元点群データに変換し、三次元形状モデルに当該三次元点群データをフィッティングさせることにより物体の位置及び姿勢を計測する。この他、二次元画像から得られる計測情報と距離画像から得られる計測情報とを併用して物体の位置及び姿勢を計測する方法も知られている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】R.Y.Tsai,“A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses,"IEEE Journal of Robotics and Automation,vol.RA-3,no.4,1987.
【非特許文献2】L.Vacchetti,V.Lepetit,and P.Fua,“Combining edge and texture information for real-time accurate 3D camera tracking,"Proc.3rd IEEE/ACM International Symposium on Mixed and Augmented Reality(ISMAR'04),pp.48-57,2004.
【発明の概要】
【発明が解決しようとする課題】
【0007】
二次元画像から得られる計測情報と距離画像から得られる計測情報とを併用して物体の位置及び姿勢を計測するように構成した場合、一般に、その計測精度の向上が期待できる。
【0008】
しかし、計測を行なうときの状態(例えば、物体の形状や物体の置かれ方)によっては、二次元画像から得られる計測情報、又は距離画像から得られる計測情報のいずれかを利用して計測を行なった場合の方が、精度良く計測を行なえる場合がある。
【0009】
また、二次元画像から得られる計測情報、又は距離画像から得られる計測情報のいずれかを利用して計測を行なうだけで計測精度を十分に満たせる場合もある。このような場合、両手法を併用した計測を行なう必要はない。計算時間や計算リソース等を考慮すると、却って処理が無駄となる。
【0010】
本発明は、上記課題に鑑みてなされたものであり、計測対象物体の位置及び姿勢に関する複数の計測手法の中からいずれかを選択して実施するようにした技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明の一態様は、計測対象物体の位置及び姿勢の計測を行なう位置姿勢計測装置であって、撮像装置により撮像された前記計測対象物体の二次元画像を入力する入力手段と、距離センサにより計測された前記計測対象物体の距離データを取得する取得手段と、前記二次元画像から前記計測対象物体の画像特徴を検出する検出手段と、前記計測対象物体の状態を判定する判定手段と、前記判定手段により判定された状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定するモード設定手段と、前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう計測手段とを具備することを特徴とする。
【発明の効果】
【0012】
本発明によれば、計測対象物体の位置及び姿勢の計測に関する複数の計測手法の中からいずれかを選択して実施することができる。
【図面の簡単な説明】
【0013】
【図1】本実施形態に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図2】三次元形状モデルの一例を示す図。
【図3】図1に示す位置姿勢計測部46の機能的な構成の一例を示す図。
【図4】図1に示す位置姿勢計測装置40の動作の一例を示すフローチャート。
【図5】エッジ検出の概要の一例を示す図。
【図6】第1の計測モード設定時における位置姿勢算出処理の流れの一例を示すフローチャート。
【図7】投影像(線分)と検出されたエッジとの関係の一例を示す図。
【図8】二次元画像上における誤差を次元変換させる処理の概要の一例を示す図。
【図9】本実施形態に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図10】実施形態2に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図11】実施形態3に係わる位置姿勢計測装置40の機能的な構成の一例を示す図。
【図12】ロボットシステムを制御する制御システムの構成の一例を示す図。
【発明を実施するための形態】
【0014】
以下、本発明の一実施の形態について添付図面を参照して詳細に説明する。
【0015】
(実施形態1)
図1は、本実施形態に係わる位置姿勢計測装置40における機能的な構成の一例を示す図である。
【0016】
位置姿勢計測装置40は、計測対象物体を模したモデルデータ(三次元形状モデル)の形状に基づいて、計測対象物体(以下、単に物体と呼ぶ場合もある)の位置及び姿勢を計測(算出)する処理を切り替えて行なう。詳細については後述するが、第1のモード(本実施形態においては、第1の計測モード)又は第2のモード(本実施形態においては、第2の計測モード)のいずれかを設定し、そのモードに従って計測対象物体の位置及び姿勢を計測する。第1の計測モードでは、二次元画像から得られる計測情報(画像特徴)と距離画像から得られる計測情報(三次元点群データ)とを同時に利用したモデルフィッティングを行なう。第2の計測モードでは、二次元画像から得られる計測情報(画像特徴)のみを利用したモデルフィッティングを行なう。
【0017】
ここで、位置姿勢計測装置40は、二次元画像撮像部20と、距離画像計測部30とに接続されている。
【0018】
二次元画像撮像部20は、二次元画像を撮像する役割を果たし、例えば、撮像装置(例えば、カメラ)で実現される。撮像される二次元撮像画像は、濃淡画像であっても良いし、また、カラー画像であっても良い。
【0019】
距離画像計測部30は、計測対象である物体表面までの距離を示す距離画像を計測する役割を果たし、例えば、距離センサで実現される。距離センサは、距離画像を出力する。距離画像は、各画素が視点位置(距離センサの位置)からの奥行きの情報を持つ画像であり、距離センサから物体までの距離データを表現する。距離センサには、対象に照射したレーザ光やスリット光の反射光をカメラで撮像し、三角測量により距離を計測するアクティブ式を採用すれば良い。なお、距離センサは、距離画像を撮像できればよく、その方式は特に問わない。例えば、光の飛行時間を利用するTime−of−flight方式を採用しても良いし、ステレオカメラが撮像した画像から三角測量によって各画素の奥行きを計算するパッシブ式を採用しても良い。
【0020】
ここで、位置姿勢計測装置40は、三次元形状モデル保持部45と、概略値入力部44と、二次元画像入力部41と、画像特徴検出部42と、三次元座標情報取得部43と、モード設定部47と、位置姿勢計測部46とを具備して構成される。
【0021】
二次元画像入力部41は、二次元画像撮像部20により撮像された画像を装置内(位置姿勢計測装置40)に入力する。撮像装置の焦点距離や主点位置、レンズ歪みパラメータなどの内部パラメータは、事前にキャリブレーションしておいてもよい(非特許文献1参照)。
【0022】
三次元座標情報取得部43は、距離画像計測部30により計測された距離画像に基づいて三次元点群データ(計測対象物体の表面形状を示す情報)を生成し、それを装置内に入力する。三次元座標情報取得部43は、距離画像の各画素をカメラ座標系(二次元画像撮像部20の座標系)における三次元点群データに変換し、それを三次元座標情報として取得する。三次元点群データへの変換は、距離センサ(距離画像計測部30)とカメラ(二次元画像撮像部20)との相対的な位置姿勢(既知の情報)に基づいて行なわれる。より具体的には、距離画像の各画素について、画素位置に対応する視線ベクトルに奥行き値を乗算することにより上記変換を行なう。なお、距離センサ(距離画像計測部30)及びカメラ(二次元画像撮像部20)はそれぞれ固定されており、両者の相対的な位置姿勢は変化しないと仮定し、事前にキャリブレーションしておいてもよい。例えば、三次元形状が既知であるキャリブレーション物体を様々な方向から観察し、二次元画像に基づいたキャリブレーション物体の位置姿勢と、距離画像に基づいたキャリブレーション物体の位置姿勢との差に基づいて相対的な位置姿勢を求める。なお、二次元画像撮像部20による二次元画像の撮像と距離画像計測部30による距離画像の計測とは、同時に行なわれるのが望ましい。但し、計測対象物体が静止している場合など、位置姿勢計測装置40と計測対象物体との間の位置及び姿勢の関係が変化しない場合には、必ずしも同時に行なう必要はない。
【0023】
三次元形状モデル保持部45は、位置及び姿勢の計測対象である物体(計測対象物体)を模した三次元形状のモデルデータ(三次元形状モデル)を表す情報を保持する。ここで、図2を用いて、本実施形態に係わる三次元形状モデルの一例について説明する。三次元形状モデルは、点の集合及び各点を結んで構成される線分の集合によって定義される。三次元形状モデル10は、図2(a)に示すように、点P1〜点P14の14点から構成される。また、三次元形状モデル10は、図2(b)に示すように、線分L1〜L16により構成されている。点P1〜点P14は、図2(c)に示すように、三次元座標値により表される。また、線分L1〜L16は、図2(d)に示すように、線分を構成する点のID(識別子)により表される。
【0024】
なお、ここでは図示を省略するが、三次元形状モデルは、面の情報も保持する。各面は、各面を構成する点のIDにより表される。図2に示す三次元形状モデルでは、直方体を構成する6つの面の情報が定義されている。三次元形状モデルは、位置姿勢計測部46により物体の位置及び姿勢が計測される時や、モード設定部47によるモード設定時に用いられる。
【0025】
概略値入力部44は、位置姿勢計測装置40に対する物体の位置及び姿勢の概略値を入力する。本実施形態において、位置姿勢計測装置40に対する物体の位置及び姿勢とは、二次元画像撮像部20を基準とした物体の位置及び姿勢を示すが、必ずしも二次元画像撮像部20を基準にする必要はない。例えば、二次元画像撮像部20の座標系に対する物体の相対的な位置及び姿勢が既知であり、且つその位置及び姿勢が変化しないのであれば、位置姿勢計測装置40におけるその他の部分を基準としてもよい。また、本実施形態においては、物体の位置及び姿勢の概略値として、位置姿勢計測装置40が当該物体から過去(例えば、直前)に計測した計測値を用いる。但し、物体の位置及び姿勢の概略値は、必ずしもこのような値である必要はない。例えば、過去に計測した物体の位置及び姿勢の計測値に対して時系列フィルタリング処理(例えば、線形フィルタ、カルマンフィルタ)を実施し、物体の運動速度や角速度を推定する。そして、その推定結果に基づいて物体の位置及び姿勢を予測した値を概略値としてもよい。また、センサから得られる物体の位置及び姿勢を概略値としてもよい。ここで、センサは、物体の位置及び姿勢を6自由度で計測できればよく、その方式(例えば、磁気式、光学式、超音波式)は、特に問わない。なお、物体の置かれているおおよその位置や姿勢をパターンマッチングなどにより求めてもよいし、また、物体の置かれているおおよその位置や姿勢が予め分かっているのであれば、その値を概略値として用いてもよい。
【0026】
画像特徴検出部42は、二次元画像入力部41により入力された二次元画像から計測対象物体を示す画像特徴を検出する。本実施形態においては、画像特徴としてエッジ(濃度勾配の極値)を検出する場合を例に挙げる。
【0027】
モード設定部47は、計測対象物体の形状(三次元形状モデル保持部45により保持される三次元形状モデルの形状)に基づいて、計測対象物体の位置及び姿勢を計測するモードを切り替える。モード設定部47には、三次元形状モデルの形状を類推する形状類推部48が設けられる。モード設定部47おいては、第1のモード(本実施形態においては、第1の計測モード)及び第2のモード(本実施形態においては、第2の計測モード)を切り替えて設定する。第1の計測モード設定時には、二次元画像入力部41により入力された二次元画像から得られる計測情報と、三次元座標情報取得部43により取得された距離画像から得られる計測情報とを(同時に)利用したモデルフィッティングが行なわれる。第2の計測モード設定時には、二次元画像入力部41により入力された二次元画像(のみ)を利用したモデルフィッティングが行なわれる。
【0028】
ここで、二次元画像から得られる計測情報と距離画像から得られる計測情報とを利用したモデルフィッティング(第1の計測モード)は、物体の位置及び姿勢を高精度に計測できる。その反面、距離センサの特性上、物体端部の計測データが部分的に欠損してしまう場合がある。そのため、例えば、物体が小さい、物体が細い、物体に凹凸が多い等の場合には、物体の端部の距離計測結果の信用性は低い。また、距離センサの奥行き方向の分解能には限界がある。例えば、物体が紙のように薄い場合、その下にある台や他の物体とほとんど同じ距離データが取得されることがあり、これは誤計測の要因となる。
【0029】
これらのケースから、計測対象物体の形状によっては、二次元画像と距離画像とを利用したモデルフィッティング(第1の計測モード)よりも、距離画像は使用せずに、二次元画像を利用したモデルフィッティング(第2の計測モード)により計測を行なう方が精度良く計測を行なえる場合がある。また、物体の位置及び姿勢の計測時における距離画像の寄与度が小さい場合もある。更に、二次元画像を利用した計測を行なうだけで計測精度を十分に満たせる場合もある。このように距離画像が有意でない場合、二次元画像のみを用いて物体の位置及び姿勢の計測を行なった方が、計算時間や計算リソースの抑制を図れる他、計測精度が向上する場合もある。
【0030】
そこで、本実施形態においては、計測対象物体の三次元形状モデルの形状を類推し、その類推された形状に基づいて計測モード(第1の計測モード、第2の計測モード)を切り替えて設定する。そして、その設定された計測モードにより物体の位置及び姿勢の計測を行なう。
【0031】
位置姿勢計測部46は、モード設定部47により設定されたモードに従って計測対象物体の位置及び姿勢を計測(算出)する。第1の計測モード設定時には、画像特徴検出部42により検出された画像特徴に対して、三次元形状モデル保持部45により保持された三次元形状モデルをフィッティングさせる。また、第1の計測モード設定時には、三次元座標情報取得部43により取得された三次元点群に対しても、三次元形状モデルをフィッティングさせる。これにより、位置姿勢算出処理を実施し、計測対象物体の位置及び姿勢を計測(算出)する。一方、第2の計測モード設定時には、画像特徴検出部42により検出された画像特徴に対して、三次元形状モデル保持部45により保持された三次元形状モデルをフィティングさせる。これにより、位置姿勢算出処理を実施し、計測対象物体の位置及び姿勢を計測(算出)する。
【0032】
次に、図3を用いて、図1に示す位置姿勢計測部46における機能的な構成の一例について説明する。
【0033】
位置姿勢計測部46は、二次元画像ずれ算出部461と、三次元空間ずれ算出部462と、尺度変換部463と、位置姿勢補正部464とを具備して構成される。
【0034】
二次元画像ずれ算出部461は、二次元画像上で検出された画像特徴(エッジ)と、二次元画像上における三次元形状モデルの投影像(線分)との二次元画像上における距離を算出する。なお、三次元形状モデルの投影像は、計測対象物体の位置及び姿勢の概略値と、二次元画像撮像部20の内部パラメータ(例えば、キャリブレーション後の値)とに基づいて投影される。
【0035】
三次元空間ずれ算出部462は、距離画像に基づいて生成された三次元点群データを構成する各点と、三次元形状モデルの面との三次元空間中における距離を算出する。
【0036】
尺度変換部463は、二次元画像ずれ算出部461及び三次元空間ずれ算出部462により算出された双方の距離の尺度を一致させる。より具体的には、二次元画像上での対応点(点)と投影像(線分)の符号付距離を算出し、三次元空間中での三次元点群データにおける点と三次元形状モデルの平面との符号付距離を算出し、双方の符号付距離を物体の位置及び姿勢の関数として線形近似する。そして、符号付距離を0としたときに各計測情報について成り立つ線形方程式を用意する。
【0037】
位置姿勢補正部464は、この線形方程式を連立方程式として解くことにより、物体の位置及び姿勢の微小変化を求める。そして、その求めた値に基づいて物体の位置及び姿勢を示す計測値を補正する。この処理を繰り返すことにより最終的な計測値を算出する。
【0038】
以上が、位置姿勢計測装置40の構成の一例についての説明である。なお、上記説明した、位置姿勢計測装置40には、コンピュータが内蔵されている。コンピュータには、CPU等の主制御手段、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等の記憶手段が具備される。また、コンピュータにはその他、ボタンやディスプレイ又はタッチパネル等の入出力手段、ネットワークカード等の通信手段等も具備されていてもよい。なお、これら各構成部は、バス等により接続され、主制御手段が記憶手段に記憶されたプログラムを実行することで制御される。
【0039】
次に、図4を用いて、図1に示す位置姿勢計測装置40において計測対象物体の位置及び姿勢を計測する際の処理の流れの一例について説明する。
【0040】
(S101)
位置姿勢計測装置40は、概略値入力部44において、位置姿勢計測装置40に対する物体の位置及び姿勢の概略値を入力する。本実施形態においては、上述した通り、物体の位置及び姿勢の概略値として、位置姿勢計測装置40が当該物体から過去(例えば、直前)に計測した計測値を入力する。
【0041】
(S102)
位置姿勢計測装置40は、二次元画像入力部41において、二次元画像撮像部20により撮像された二次元画像を入力する。
【0042】
(S103)
位置姿勢計測装置40は、三次元座標情報取得部43において、距離画像計測部30により計測された三次元座標情報を取得する。上述した通り、三次元座標情報取得部43は、距離画像の各画素をカメラ座標系(二次元画像撮像部20の座標系)における三次元点群データに変換し、それを三次元座標情報として取得する。
【0043】
(S104)
ここで、位置姿勢計測装置40は、画像特徴検出部42において、S102の処理で入力された二次元画像から計測対象物体を示す画像特徴を検出する。本実施形態においては、上述した通り、画像特徴としてエッジを検出する。
【0044】
ここで、図5を用いて、本実施形態に係わるエッジ検出の概要について説明する。エッジ検出処理では、まず、計測対象物体が撮像された二次元画像に対して三次元形状モデルを投影する。この投影像(線分)は、S101の処理で入力された計測対象物体の位置及び姿勢の概略値と、二次元画像撮像部20の内部パラメータ(例えば、キャリブレーション後の値)とに基づいて求められる。次に、投影された各線分51上において、等間隔に制御点52を設定する。そして、投影線分51の法線方向に平行で且つ制御点52を通過する線分(以下、探索ライン)53上からエッジ56を1次元探索する(図5(a))。エッジは、画素値の濃度勾配の極値となる(図5(b))。場合によっては、探索ライン53上から複数のエッジが検出されることがある。この場合、本実施形態においては、複数検出されたエッジを仮説として保持する(非特許文献2参照)。このようにして各制御点52に対応するエッジ56を探索する。
【0045】
(S105)
位置姿勢計測装置40は、形状類推部48において、三次元形状モデル保持部45により保持される三次元形状モデルの形状を類推する。三次元形状モデルの形状は、例えば、三次元形状モデルを包含するバウンディングボックス(直方体)で代替してもよい。バウンディングボックスは、三次元形状モデルが属する三次元座標系のxyz軸それぞれに垂直に交わる面をバウンディングボックスの各面として有する。なお、このバウンディングボックスの各面は、xyz軸上で三次元形状モデルが含まれる最大値や最小値に基づいて決められる(Axis−Aligned−Bounding−Box)。また、三次元形状モデルに適合した形でバウンディングボックスを形成しても良い。形状類推部48においては、三次元形状モデルを代替するバウンディングボックスを求めた後、その各辺の長さ(x1、y1、z1)や、辺の比(x1/y1、x1/z1、y1/x1、y1/z1、z1/x1、z1/y1)から三次元形状モデルの形状を類推する。なお、三次元形状モデルの形状の類推は、バウンディングボックスを用いずに行なっても良い。例えば、予め用意された要素モデル(プリミティブモデル)の組み合わせ方から求めてもよい。この方法を採用した場合、三次元形状モデルに凹凸が多いか少ないかを類推できる。
【0046】
ここで、三次元形状モデルの形状の類推は、例えば、以下のルールに従って行なう。
【0047】
1).各辺の長さが全て、予め定められた第1の閾値(例えば、1cm)よりも小さい場合は、三次元形状モデルは小さい形状であると類推する。
【0048】
2).辺の比のうちの2つが、予め定められた第2の閾値(例えば、10)よりも大きく、且つ辺の比のうちの上記以外の2つが、予め定められた第3の閾値(例えば、0.1)よりも小さい。更に、各辺の長さのうちの1つが、予め定められた第4の閾値(例えば、3cm)よりも大きい場合は、三次元形状モデルは、細い形状であると類推する。
【0049】
3).辺の比のうちの2つが、予め定められた第2の閾値(例えば、10)よりも大きく、且つ辺の比のうちの上記以外の2つが、予め定められた第3の閾値(例えば、0.1)より小さい。更に、各辺の長さのうちの2つが、予め定められた第4の閾値(例えば、3cm)よりも大きい場合は、三次元形状モデルは、薄い形状であると類推する。
【0050】
(S106)
次に、位置姿勢計測装置40は、モード設定部47において、S105の処理で類推された三次元形状モデルの形状に基づいて、計測モードの設定を行なう。すなわち、計測対象物体(三次元形状モデル)の形状に基づいて、距離画像により得られた計測情報を用いた計測を行なうか否かを判定し、その判定結果に基づいて第1の計測モードか第2の計測モードかのいずれかを設定する。初期モードは、第1の計測モードとする。
【0051】
例えば、三次元形状モデルの形状が、小さい、細い、凹凸が多い、薄い等の少なくともいずれかの場合は、第1の計測モードから第2の計測モードに切り替える。これは、上述した通り、距離センサ(距離画像計測部30)による計測に誤りが含まれている可能性が高いためである。第2の計測モードでは、距離画像から得られる計測情報を用いずに物体の位置及び姿勢を計測するため、距離センサによる計測に誤りが含まれている場合であっても、精度良く計測が行なえる。なお、三次元形状モデルの形状が、小さい、細い、凹凸が多い、薄い等以外の場合は、第1の計測モードを設定(維持)する。
【0052】
(S107)
位置姿勢計測装置40は、位置姿勢計測部46において、S106の処理で設定されたモードに従って計測対象物体の位置及び姿勢を計測(算出)する。詳細については後述するが、S106の処理で設定されたモードに基づき、S104の処理で検出された画像特徴(エッジ)、S103の処理で入力された三次元座標情報(三次元点群)の少なくともいずれかに対して、三次元形状モデルをフィッティングさせる。これにより、計測対象物体の位置及び姿勢を求める。
【0053】
ここで、図4のS107に示す位置姿勢計測部46における動作の一例について説明する。まず、第1の計測モード設定時における処理の流れについて説明する。第1の計測モードでは、二次元画像上の距離(エッジと投影像との距離)を三次元空間中の距離に変換し、尺度を統一する。これにより、両手法の寄与率が偏ることをなくす。
【0054】
図6には、第1の計測モード設定時における位置姿勢算出処理の流れの一例が示される。この処理では、ガウス−ニュートン(Gauss-Newton)法により反復演算し、計測対象物体の位置及び姿勢(以下、6次元ベクトルsで表す)の概略値を補正する。これにより、計測対象物体の位置及び姿勢を求める。なお、位置姿勢算出処理は、ガウス−ニュートン法に限られない。例えば、より計算がロバストであるLevenberg−Marquardt法を用いてもよいし、よりシンプルな方法である最急降下法を用いてもよい。また、共役勾配法やICCG法など、他の非線形最適化計算手法を用いてもよい。
【0055】
(S201)
位置姿勢計測装置40は、位置姿勢計測部46において、まず、初期化処理を行なう。この初期化処理では、例えば、図4のS101の処理で得られた計測対象物体の位置及び姿勢の概略値を取得する。
【0056】
(S202)
位置姿勢計測装置40は、位置姿勢計測部46において、画像特徴(エッジ)及び三次元点群データ(距離画像に基づく三次元点群データ)と、三次元形状モデルとをそれぞれ対応付ける。この処理では、まず、S201の処理で取得した概略値に基づいて三次元形状モデルの各線分を二次元画像上へ投影し、当該投影された線分に対して、二次元画像上で最も近い画像特徴(エッジ)を制御点と対応付ける。これにより、画像特徴(エッジ)と三次元計上モデルとを対応付ける。
【0057】
また、S201の処理で取得した概略値に基づいて三次元形状モデル又は三次元点群データを座標変換し、三次元点群データの各点に対して、三次元空間中で最も近傍する三次元形状モデルの面を探索する。これにより、三次元点群データを三次元形状モデルと対応付ける。
【0058】
(S203)
位置姿勢計測装置40は、位置姿勢計測部46において、線形連立方程式を解くための係数行列と、誤差ベクトル(エッジ、三次元点群データ)との算出を行なう。ここで、係数行列の各要素は、S201の処理で取得した概略値の微小変化に対する一次の偏微分係数である。エッジについての要素は、対応点(点)と投影像(線分)との二次元画像上での距離を位置姿勢の関数とした一次の偏微分係数である。三次元点群データについての要素は、三次元点群データにおける点と三次元形状モデルの平面との三次元空間中における距離を位置姿勢の関数とした一次の偏微分係数である。
【0059】
ここで、係数行列の算出方法について説明する。図7は、投影像(線分)と、検出されたエッジとの関係の一例を示す図である。この場合、画像の水平方向をu軸61とし、垂直方向をv軸62としている。ある制御点(投影された各線分を画像上で等間隔に分割した点)63の画像上における座標64を(u0,v0)と表す。当該制御点が属する線分Lの画像上における傾きを(u軸に対する傾き)θと表す。傾き65は、線分(投影線分)66の両端の三次元座標を、位置及び姿勢sに基づいて画像上(二次元上)に投影し、その両端の座標を結んだ直線の傾きを示している。線分66の画像上での法線ベクトルは(sinθ,−cosθ)となる。また、制御点と対応する点(対応点67)の画像上における座標68を(u’,v’)とする。ここで、対応点67の座標(u’,v’)を通り、傾き65がθである直線(破線)上の点(u,v)は、
【0060】
制御点63の画像上における位置は、計測対象物体の位置及び姿勢により変化する。計測対象物体の位置及び姿勢sは、6自由度である。すなわち、sは6次元ベクトルであり、計測対象物体の位置を表す3つの要素と、姿勢を表す3つの要素とからなる。姿勢を表す3つの要素は、例えば、オイラー角による表現や、方向が原点を通る回転軸を表し大きさが回転角を表す三次元ベクトルなどによって表現される。計測対象物体の位置及び姿勢により変化する点の画像上での座標は、制御点63(すなわち、座標(u0,v0)64)の近傍で1次のテイラー展開によって式(2)のように近似できる。但し、Δsi(i=1,2,・・・,6)は、sの各成分の微小変化を表す。
【0061】
物体の位置及び姿勢の概略値と、実際の物体の位置及び姿勢との差がそれほどないと仮定すると、正しいsによって得られる制御点63の画像上での位置は、式(1)が表す直線上にあると仮定できる。式(2)によって近似されるu、vを式(1)に代入することにより、式(3)が得られる。式(3)は、S202の処理で対応付けされた全てのエッジについて立式できる。
【0062】
二次元画像撮像部20の座標系で表される三次元点群データの三次元座標は、計測対象物体の位置及び姿勢sを用いて、計測対象物体の座標系における三次元座標(x,y,z)に変換することができる。S201の処理で取得した概略値により、三次元点群データ中のある点が計測対象物体の座標系の座標(x0,y0,z0)に変換されるとする。(x,y,z)は、計測対象物体の位置及び姿勢により変化するため、(x0,y0,z0)の近傍で1次のテイラー展開によって式(4)のように近似できる。
【0063】
S202の処理により、三次元点群データ中のある点に対応付けられた三次元形状モデルの面に対する計測対象物体の座標系における方程式を「ax+by+cz=e(a2+b2+c2=1、a,b,c,eは定数)」とする。正しいsによって変換される(x,y,z)は、平面の方程式「ax+by+cz=e」を満たすと仮定する。式(4)を平面の方程式に代入すると式(5)が得られる。式(5)は、S202の処理で対応付けされた全ての三次元点群データについて立式することができる。
【0064】
式(3)、式(5)は、sの各成分の微小変化△si(i=1,2,・・・,6)についての方程式である。そのため、式(6)のような△siに関する線形連立方程式が成り立つ。
【0065】
式(6)の右辺の誤差ベクトルは、上述した通り、エッジについては二次元画像上での符号付距離であり、三次元点群データについては三次元空間中での符号付距離である。そのため、両者の距離の尺度は一致していない。そこで、二次元画像上での誤差にエッジの奥行きを乗じることにより、二次元画像上での誤差を三次元空間中での誤差に近似させる。具体的には、エッジについての方程式の両辺に、エッジの奥行きを乗じる。これにより、誤差の尺度を三次元空間中の距離に統一する。なお、二次元画像からは奥行き情報を得ることはできないため、エッジの奥行きは何らかの近似的な方法により求める必要がある。
【0066】
図8を用いて、二次元画像上の誤差71を三次元空間中の誤差72に近似させる方法の一例について説明する。本実施形態においては、物体の位置及び姿勢の概略値に基づいて算出された各制御点73の視点74からの奥行き75を、二次元画像上の誤差71に乗じる。これにより、二次元画像上の誤差71を三次元空間中の誤差72に変換する。また、奥行き75の代わりに、三次元空間中の制御点73から画像面76におけるエッジ77を通過する視線ベクトルに対して下ろした垂線の長さとなるようなスケーリング係数を乗じるようにしてもよい。
【0067】
ここで、解くべき連立方程式は、式(7)になる。
ここで、式(7)を式(8)のように表す。
線形連立方程式の係数行列Jを算出するため、偏微分係数を算出する。
【0068】
(S204)
続いて、位置姿勢計測装置40は、位置姿勢計測部46において、式(8)をもとに、行列Jの一般化逆行列(JT・J)−1・JTを用いて補正値Δsを求める。ここで、エッジや三次元点群データには、誤検出などによる外れ値が多いため、次に述べるようなロバスト推定手法を用いる。一般に、外れ値であるエッジや点群データでは、式(7)の右辺の誤差ベクトルの値が大きくなる。そこで、誤差の絶対値が大きいデータに対しては小さな重みを与え、誤差の絶対値が小さいデータに対しては大きな重みを与える。重みは、例えば、式(9)に示すようなTukeyの関数により与える。
【0069】
なお、重みを与える関数は、Tukeyの関数である必要はなく、誤差の絶対値が大きいデータに対して小さな重みを与え、誤差の絶対値が小さいデータに対して大きな重みを与える関数であれば良い。そのため、例えば、Huberの関数などを用いてもよい。
【0070】
各計測情報(エッジ又は点群データ)に対応する重みをwiとする。ここで、式(10)のように重み行列Wを定義する。
重み行列Wは、対角成分以外は全て「0」の正方行列であり、対角成分には重みwiが入る。この重み行列Wを用いて、式(8)を式(11)のように変形する。
式(12)のように式(11)を解くことにより補正値Δsを求める。
(S205)
位置姿勢計測装置40は、位置姿勢計測部46において、S204の処理で算出された補正値Δsにより、S201の処理で得られた概略値を補正する。これにより、計測対象物体の位置及び姿勢を求める。
s←s+△s
(S206)
位置姿勢計測装置40は、位置姿勢計測部46において、計測対象物体の位置及び姿勢の計測値が収束しているか否かの判定を行なう。収束していれば、この処理は終了し、そうでなければ、再度、S202の処理に戻る。なお、収束しているか否かは、補正値Δsがほぼ0である場合や、誤差ベクトルの二乗和の補正前と補正後の差がほぼ0である場合に収束したと判定する。
【0071】
次に、第2の計測モード設定時における処理の流れについて説明する。第2の計測モードでは、上述した式(3)を解くことで物体の位置及び姿勢を算出する。第2の計測モード設定時には、距離画像に基づき生成した三次元点群データを物体の位置及び姿勢の計測に用いないため、図3に示す三次元空間ずれ算出部462では処理を行なわない。また、尺度変換部463においても、距離のずれの尺度の変換を行なわない。
【0072】
また、第2の計測モード設定時には、図6で説明した第1の計測モード設定時と同様の流れで処理が行なわれるため、ここでは、図を用いた説明については省略する。相違点としては、S202の処理で三次元点群データの対応付けを行なわない点や、S203の処理で尺度変換を行わない点等である。
【0073】
以上説明したように実施形態1によれば、三次元形状モデルの形状に基づいてモードを設定し、当該モードに従って計測対象物体の位置及び姿勢を計測(算出)する。これにより、計測対象物体の形状に応じた手法で計測を行なえるため、計測の精度向上や高速化、ロバスト性の向上を図れる。
【0074】
なお、上述した実施形態1においては、三次元形状モデルの形状に基づいてモードを切り替えて設定していたが、これに限られない。例えば、距離画像計測部30により計測された距離画像に基づいてモードを設定するように構成してもよい。この場合、位置姿勢計測装置40は、図9に示すように、モード設定部47には、三次元座標情報取得部43により取得された三次元点群データが入力される。これにより、形状類推部48においては、距離画像に基づき生成された三次元点群データに基づいて計測対象物体の形状を類推し、モード設定部47においては、当該類推された形状に基づいてモードを設定することができる。
【0075】
(実施形態2)
次に、実施形態2について説明する。実施形態2においては、三次元形状モデルの形状と、距離画像から得られる計測情報とに基づいて計測モードを設定する場合について説明する。
【0076】
図10を用いて、実施形態2に係わる位置姿勢計測装置40における機能的な構成の一例について説明する。なお、実施形態1を説明した図1と同一の符号が付された構成は、基本的には、実施形態1同様の機能を果たす。ここでは、実施形態1との相違点について重点的に説明する。
【0077】
実施形態1との相違点としては、モード設定部47におけるモード設定処理にある。具体的には、モード設定部47では、三次元形状モデル保持部45により保持される三次元形状モデルの形状と、三次元座標情報取得部43により取得される三次元点群データとに基づいてモードを設定する。
【0078】
モード設定部47においては、これら両データの比較を行うために、三次元点群データ中の各々の点から最も近い三次元形状モデル上の表面に当該各々の点を対応付ける。対応付けの結果、三次元形状モデルから三次元空間的に離れた点が所定数より多ければ、三次元形状モデルと距離画像における距離データとが大きく異なると判定し、第2の計測モードを設定する。すなわち、二次元画像から得られる計測情報を利用した物体の位置及び姿勢の計測が行なわれることになる。
【0079】
三次元形状モデルから三次元空間的に離れた点が所定数以内であれば、三次元形状モデルと距離画像における距離データとが比較的似ていると判定し、第1の計測モードを設定する。すなわち、二次元画像から得られる計測情報と距離画像から得られる計測情報とを利用した物体の位置及び姿勢の計測が行なわれることになる。なお、これら両データの比較を行なう前に、三次元点群データの中から計測対象物体の三次元点群データのみをセグメンテーションで選択するように構成してもよい。
【0080】
なお、実施形態2に係わる位置姿勢計測装置40における処理は、実施形態1で説明した図4と同様の流れとなるため、ここでは、図を用いた説明については省略する。相違点としては、S105の処理を省く点とS106の処理が異なる点とが挙げられる。具体的には、S106の処理において、モード設定部47は、三次元形状モデル保持部45により保持される三次元形状モデルの形状と、三次元座標情報取得部43により取得される三次元点群データとに基づいてモード設定を行なう。
【0081】
以上説明したように実施形態2によれば、三次元形状モデルの形状と、距離画像から得られる計測情報(距離画像に基づき生成された三次元点群データ)とを比較し、その比較結果に基づいて計測モードを設定する。具体的には、三次元形状モデルの形状と、距離画像から得られる計測情報とを比較する。そして、その比較結果に基づいて三次元形状モデルと大きく異なる距離データが計測されたと判定した場合、距離画像を信用できないため、第2の計測モードを設定する。そうでなければ、第1の計測モードを設定する。
【0082】
これにより、実施形態2の構成によれば、実施形態1の構成よりも更に適切な計測モードで物体の位置及び姿勢の計測が行なえる。
【0083】
(実施形態3)
次に、実施形態3について説明する。実施形態3においては、二次元画像上の画像特徴に基づいて計測モードを設定する場合について説明する。また、実施形態3においては、上述した第1の計測モード(第1のモード)と、新たな第3の計測モード(第2のモード)との間でモードを切り替えて設定する。第3の計測モードは、二次元画像から得られる計測情報は利用せず、距離画像から得られる計測情報を利用したモデルフィッティングを行なう。
【0084】
ここで、二次元画像から得られる計測情報(画像特徴)と距離画像から得られる計測情報(三次元点群データ)とを利用したモデルフィッティング(第1の計測モード)は、物体の位置及び姿勢を高精度に計測できる。しかし、二次元画像から得られる画像特徴を利用したモデルフィッティングを行なう場合には、二次元画像上にある程度の画像特徴が存在していないといけない。そのため、例えば、計測対象物体の表面に模様(テクスチャ)がほとんどない場合やエッジが少ない場合などは、二次元画像を利用して計測を実施するのが難しい。また、計測精度も低くなる。
【0085】
従って、計測対象物体の状態(表面状態)によっては、二次元画像と距離画像とを利用したモデルフィッティング(第1の計測モード)よりも、距離画像を利用したモデルフィッティング(第3の計測モード)により計測を行なう方が精度良く計測を行なえる場合がある。また、物体の位置及び姿勢の計測時における二次元画像の寄与度が小さい場合もある。更に、距離画像を利用して計測を行なうだけで計測精度を十分に満たせる場合もある。このように画像特徴が有意でない場合、距離画像のみを用いて物体の位置及び姿勢の計測を行なった方が、計算時間や計算リソースの抑制を図れる他、計測精度が向上する場合もある。
【0086】
そこで、実施形態3においては、二次元画像上から画像特徴を検出し、その計測された画像特徴に基づいて計測モード(第1の計測モード、第3の計測モード)を切り替えて設定する。そして、その計測モードに応じて物体の位置及び姿勢の計測を行なう。
【0087】
図11を用いて、実施形態3に係わる位置姿勢計測装置40における機能的な構成の一例について説明する。なお、実施形態1を説明した図1と同一の符号が付された構成は、基本的には、実施形態1同様の機能を果たす。ここでは、実施形態1との相違点について重点的に説明する。
【0088】
実施形態1との相違点としては、モード設定部47におけるモード設定処理にある。具体的には、モード設定部47では、画像特徴検出部42により二次元画像から検出された計測対象物体を示す画像特徴に基づいてモードを設定する。
【0089】
モード設定部47には、二次元画像上から周波数成分を抽出する周波数成分抽出部49が設けられる。周波数成分抽出部49により二次元画像から抽出された周波数成分が、所定の周波数より低ければ、モード設定部47は、二次元画像上の画像特徴が少ないと判定し、第3の計測モードを設定する。そうでなければ、第1の計測モードが設定される。
【0090】
位置姿勢計測部46は、第3の計測モードが設定されている場合、三次元座標情報取得部43により取得された三次元点群に対して、三次元形状モデルをフィッティングさせる。これにより、位置姿勢算出処理を実施し、計測対象物体の位置及び姿勢を計測(算出)する。
【0091】
ここで、第3の計測モード設定時における処理の流れについて説明する。第3の計測モードでは、実施形態1で説明した式(7)を解くことで物体の位置及び姿勢を算出する。第3の計測モード設定時には、二次元画像の画像特徴を物体の位置及び姿勢の計測に用いないため、図3に示す二次元空間ずれ算出部461では処理を行なわない。また、尺度変換部463においても、距離のずれの尺度の変換を行なわない。
【0092】
なお、実施形態3に係わる位置姿勢計測装置40における処理は、実施形態1で説明した図4と同様の流れとなるため、ここでは、図を用いた説明については省略する。相違点としては、S104の処理が異なる点と、S105の処理を省く点と、S106の処理が異なる点とが挙げられる。具体的には、S104の処理では、画像特徴検出部42において、二次元画像から計測対象物体を示す画像特徴を検出するとともに、周波数成分抽出部49において、二次元画像の周波数成分を抽出する。また、S106の処理では、モード設定部47は、周波数成分抽出部49により抽出された周波数成分に基づいてモード設定を行なう。
【0093】
また、第3の計測モード設定時は、図6を用いて説明した第1の計測モード設定時と同様の流れで物体の位置及び姿勢の計測処理が行なわれるため、ここでは、図を用いた説明については省略する。相違点としては、S202の処理でエッジの対応付けを行なわない点や、S203の処理で尺度変換を行わない点等である。
【0094】
以上説明したように実施形態3によれば、二次元画像上の画像特徴の検出状態(多いか少ないか)に基づいて計測モードを設定する。例えば、計測対象物体の表面に模様(テクスチャ)がほとんどない場合やエッジが少ない場合などは、二次元画像を利用して計測を実施するのが難しいと判定し、第3の計測モードを設定する。そうでなければ、第1の計測モードを設定する。
【0095】
なお、上述した実施形態3においては、二次元画像上の周波数成分に基づいてモード設定を判定しているが、これに限られず、二次元画像上に画像特徴が多いか少ないかを判定できれば良い。そのため、周波数成分でなく、エッジや特徴点の数に基づいてモード設定を行なうように構成してもよい。
【0096】
また、上述した実施形態3においては、二次元画像上の画像特徴に基づいてモード設定を判定しているが、これに限られない。例えば、距離画像計測部30により計測され距離画像に基づいてモードを設定するように構成してもよい。この場合、モード設定部47においては、計測対象物体の距離画像に基づいて、計測対象物体に三次元的なカーブが多いか否かを判定する。判定の結果、三次元的なカーブが多ければ、エッジが少なく二次元画像を利用した計測が難しいため、第3の計測モードを設定する。そうではない場合は、第1の計測モードを設定する。
【0097】
以上が本発明の代表的な実施形態の例であるが、本発明は、上記及び図面に示す実施形態に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。例えば、上述した実施形態1〜3を組み合わせて実施しても良い。すなわち、実施形態1〜3で説明した手法に計測対象物体の状態等を計測し、その結果に基づいて第1の計測モード〜第3の計測モードの内のいずれかを設定し、計測を実施しても良い。
【0098】
ここで、上述した実施形態の変形例をいくつか例示する。
【0099】
(変形例1)
過去(例えば、直前)に計測した計測対象物体の位置及び姿勢、又は計測対象物体の概略値等に基づいて三次元形状モデルを三次元空間中に配置し、当該三次元形状モデルの観察結果に基づいてモードを変更しても良い。その観察結果により、例えば、カメラから観察される見た目の面積が少ない、カメラから見て凹凸が多い、薄い対象物体が山積みで積まれている等する場合には、距離画像を信用できない。このような場合には、第2の計測モードを設定する。
【0100】
(変形例2)
計測対象物体の模様(テクスチャ)の少ない領域が、カメラから観察される画面中の多くを占める初期位置姿勢の場合や、三次元的なカーブがエッジ部分に多く見られる初期位置姿勢の場合は、二次元画像を利用した計測が難しい。このような場合には、第3の計測モードを設定するように構成しても良い。
【0101】
(変形例3)
上述したモードは、それぞれのモードを排他的に設定する必要はなく、物体の計測を行う状態に応じて連続的に切り替えてもよい。その場合、実施形態1で説明した式(7)のスケーリング係数を操作することで、モードを連続的に切り替えればよい。
【0102】
(変形例4)
ユーザインタフェース(入出力手段)を介したユーザの指示に基づいてモードを切り替えて設定しても良い。ユーザインタフェースは、例えば、GUIメニューや、ハードウェアスイッチ等により実現される。
【0103】
(変形例5)
システム側(位置姿勢計測装置40)で自動的にモード設定を行なわず、最終的なモード設定は、ユーザに決めさせるように構成しても良い。すなわち、位置姿勢計測装置40においては、上述した処理を実施することにより、ディスプレイ画面等に推奨モード(設定対象となるモードの候補)を提示(表示)する。この場合、ユーザは、ユーザインタフェース(入出力手段)を介してモードを選択し、設定する。
【0104】
(変形例6)
ユーザに対して現在どのモードでシステム(位置姿勢計測装置40)が動作しているのかを提示するように構成してもよい。提示は、ディスプレイ画面に表示することにより行なっても良いし、ランプやLEDなどでハードウェア的に行なうようにしても良い。
【0105】
(変形例7)
上述した位置姿勢計測装置40は、例えば、計測対象物体を把持又は吸着するロボットシステムに適用することもできる。図12は、計測対象物体の位置及び姿勢に基づいてロボットシステムを制御する制御システムの構成を示している。
【0106】
位置姿勢計測装置40は、上述した実施形態同様に、二次元画像撮像部20により撮像された二次元画像と、距離画像計測部30により計測された距離画像と装置内に入力する。位置姿勢計測装置40は、計測対象物体の位置及び姿勢を計測し、計測対象物体の位置及び姿勢の情報(位置姿勢情報)をロボット制御装置82に向けて出力する。ロボット制御装置82は、当該位置姿勢情報に基づいて、計測対象物体の把持、又は計測対象物体を吸着を指示する制御情報をロボット装置81に向けて出力する。これにより、ロボット装置81は、当該制御情報に基づいて、計測対象物体を把持、又は吸着する。
【0107】
なお、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様を採ることもできる。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU、GPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
計測対象物体の位置及び姿勢の計測を行なう位置姿勢計測装置であって、
撮像装置により撮像された前記計測対象物体の二次元画像を入力する入力手段と、
距離センサにより計測された前記計測対象物体の距離データを取得する取得手段と、
前記二次元画像から前記計測対象物体の画像特徴を検出する検出手段と、
前記計測対象物体の状態を判定する判定手段と、
前記判定手段により判定された状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定するモード設定手段と、
前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう計測手段と
を具備することを特徴とする位置姿勢計測装置。
【請求項2】
前記判定手段は、
前記計測対象物体の状態として前記計測対象物体の形状を判定する
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項3】
前記計測対象物体の三次元形状モデルを表す情報を保持する保持手段
を更に具備し、
前記判定手段は、
前記計測対象物体の形状として前記三次元形状モデルの形状を判定する
ことを特徴とする請求項2記載の位置姿勢計測装置。
【請求項4】
前記取得手段は、
前記距離データから三次元座標情報を取得し、
前記判定手段は、
前記取得手段により取得された三次元座標情報により示される前記計測対象物体の形状に基づいて前記判定を行なう
ことを特徴とする請求項2記載の位置姿勢計測装置。
【請求項5】
前記計測対象物体の三次元形状モデルを表す情報を保持する保持手段
を更に具備し、
前記判定手段は、
前記取得手段により取得された三次元座標情報により示される前記計測対象物体の形状と前記計測対象物体の前記三次元形状モデルの形状との比較に基づいて前記判定を行なう
ことを特徴とする請求項4記載の位置姿勢計測装置。
【請求項6】
前記計測対象物体の三次元形状モデルを表す情報を保持する保持手段
を更に具備し、
前記判定手段は、
前記計測手段により過去に計測された前記計測対象物体の位置及び姿勢の計測値を用いて前記計測対象物体の前記三次元形状モデルを三次元空間中に投影した結果に基づいて前記判定を行なう
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項7】
前記判定手段は、
前記計測対象物体の形状が有意な前記距離データが得られる形状であるか否かを判定し、
前記モード設定手段は、
有意な前記距離データが得られる形状であると判定された場合には、前記第1のモードを設定し、有意な前記距離データが得られない形状であると判定された場合には、前記第2のモードとして画像特徴のみを用いて前記計測を行なうモードを設定する
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項8】
前記判定手段は、
前記計測対象物体の状態として前記計測対象物体の表面状態を判定する
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項9】
前記判定手段は、
前記計測対象物体の表面状態が有意な前記画像特徴が得られる表面状態であるか否かを判定し、
前記モード設定手段は、
有意な前記画像特徴が得られる表面状態であると判定された場合には、前記第1のモードを設定し、有意な前記画像特徴が得られない表面状態であると判定された場合には、前記第2のモードとして距離データのみを用いて前記計測を行なうモードを設定する
ことを特徴とする請求項8記載の位置姿勢計測装置。
【請求項10】
計測対象物体の位置及び姿勢の計測を行なう位置姿勢計測装置の計測処理方法であって、
入力手段が、撮像装置により撮像された前記計測対象物体の二次元画像を入力する工程と、
取得手段が、距離センサにより計測された前記計測対象物体の距離データを取得する工程と、
検出手段が、前記二次元画像から前記計測対象物体の画像特徴を検出する工程と、
判定手段が、前記計測対象物体の状態を判定する工程と、
モード設定手段が、前記判定された前記計測対象物体の状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定する工程と、
計測手段が、前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう工程と
を含むことを特徴とする位置姿勢計測装置における計測処理方法。
【請求項11】
計測対象物体の位置及び姿勢の計測を行なうコンピュータを、
撮像装置により撮像された前記計測対象物体の二次元画像を入力する入力手段、
距離センサにより計測された前記計測対象物体の距離データを取得する取得手段、
前記二次元画像から前記計測対象物体の画像特徴を検出する検出手段、
前記計測対象物体の状態を判定する判定手段、
前記判定手段により判定された状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定するモード設定手段、
前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう計測手段
として機能させるためのプログラム。
【請求項1】
計測対象物体の位置及び姿勢の計測を行なう位置姿勢計測装置であって、
撮像装置により撮像された前記計測対象物体の二次元画像を入力する入力手段と、
距離センサにより計測された前記計測対象物体の距離データを取得する取得手段と、
前記二次元画像から前記計測対象物体の画像特徴を検出する検出手段と、
前記計測対象物体の状態を判定する判定手段と、
前記判定手段により判定された状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定するモード設定手段と、
前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう計測手段と
を具備することを特徴とする位置姿勢計測装置。
【請求項2】
前記判定手段は、
前記計測対象物体の状態として前記計測対象物体の形状を判定する
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項3】
前記計測対象物体の三次元形状モデルを表す情報を保持する保持手段
を更に具備し、
前記判定手段は、
前記計測対象物体の形状として前記三次元形状モデルの形状を判定する
ことを特徴とする請求項2記載の位置姿勢計測装置。
【請求項4】
前記取得手段は、
前記距離データから三次元座標情報を取得し、
前記判定手段は、
前記取得手段により取得された三次元座標情報により示される前記計測対象物体の形状に基づいて前記判定を行なう
ことを特徴とする請求項2記載の位置姿勢計測装置。
【請求項5】
前記計測対象物体の三次元形状モデルを表す情報を保持する保持手段
を更に具備し、
前記判定手段は、
前記取得手段により取得された三次元座標情報により示される前記計測対象物体の形状と前記計測対象物体の前記三次元形状モデルの形状との比較に基づいて前記判定を行なう
ことを特徴とする請求項4記載の位置姿勢計測装置。
【請求項6】
前記計測対象物体の三次元形状モデルを表す情報を保持する保持手段
を更に具備し、
前記判定手段は、
前記計測手段により過去に計測された前記計測対象物体の位置及び姿勢の計測値を用いて前記計測対象物体の前記三次元形状モデルを三次元空間中に投影した結果に基づいて前記判定を行なう
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項7】
前記判定手段は、
前記計測対象物体の形状が有意な前記距離データが得られる形状であるか否かを判定し、
前記モード設定手段は、
有意な前記距離データが得られる形状であると判定された場合には、前記第1のモードを設定し、有意な前記距離データが得られない形状であると判定された場合には、前記第2のモードとして画像特徴のみを用いて前記計測を行なうモードを設定する
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項8】
前記判定手段は、
前記計測対象物体の状態として前記計測対象物体の表面状態を判定する
ことを特徴とする請求項1記載の位置姿勢計測装置。
【請求項9】
前記判定手段は、
前記計測対象物体の表面状態が有意な前記画像特徴が得られる表面状態であるか否かを判定し、
前記モード設定手段は、
有意な前記画像特徴が得られる表面状態であると判定された場合には、前記第1のモードを設定し、有意な前記画像特徴が得られない表面状態であると判定された場合には、前記第2のモードとして距離データのみを用いて前記計測を行なうモードを設定する
ことを特徴とする請求項8記載の位置姿勢計測装置。
【請求項10】
計測対象物体の位置及び姿勢の計測を行なう位置姿勢計測装置の計測処理方法であって、
入力手段が、撮像装置により撮像された前記計測対象物体の二次元画像を入力する工程と、
取得手段が、距離センサにより計測された前記計測対象物体の距離データを取得する工程と、
検出手段が、前記二次元画像から前記計測対象物体の画像特徴を検出する工程と、
判定手段が、前記計測対象物体の状態を判定する工程と、
モード設定手段が、前記判定された前記計測対象物体の状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定する工程と、
計測手段が、前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう工程と
を含むことを特徴とする位置姿勢計測装置における計測処理方法。
【請求項11】
計測対象物体の位置及び姿勢の計測を行なうコンピュータを、
撮像装置により撮像された前記計測対象物体の二次元画像を入力する入力手段、
距離センサにより計測された前記計測対象物体の距離データを取得する取得手段、
前記二次元画像から前記計測対象物体の画像特徴を検出する検出手段、
前記計測対象物体の状態を判定する判定手段、
前記判定手段により判定された状態に基づいて、前記画像特徴と前記距離データとを用いて前記計測を行なう第1のモードと、前記画像特徴と前記距離データとのうち一方のみを用いて前記計測を行なう第2のモードとを含むモードの中からいずれかのモードを設定するモード設定手段、
前記モード設定手段により設定されたモードに従って前記計測対象物体の位置及び姿勢の計測を行なう計測手段
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−21958(P2012−21958A)
【公開日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願番号】特願2010−162209(P2010−162209)
【出願日】平成22年7月16日(2010.7.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願日】平成22年7月16日(2010.7.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]