(58)【調査した分野】(Int.Cl.,DB名)
前記注目領域設定部は、前記複数の点を網羅する複数の注目領域の候補である候補領域から前記複数の点が分布する領域が最も大きい候補領域を前記注目領域の少なくとも1つとして選択する請求項2に記載のロボット。
前記組選択部は、前記注目領域に含まれる複数の点から選択した任意の2点からなる複数の組のうち2点間の線分から予め定めた距離内に含まれる点の数が、前記対象物がとりうる点の数から予め定めた範囲外となる組を除外する請求項2又は請求項3に記載のロボット。
前記中心軸選択部が選択した中心軸の方向と、前記中心軸選択部が選択した中心軸から所定距離内に含まれる点から算出した前記対象物の位置に基づいて動作する請求項1から5のいずれかに記載のロボット。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、工場等の作業現場で用いられる対象物の形状は個々に異なる。例えば、ネジ、ボルト等のように、その表面を占める平面領域が少なく、主に曲面を有する物体が数多く存在する。一方、そのような物体は、プラスチックフィルムからなる袋に詰められて運搬、納入されることがあり、作業空間内において整列されていることは稀である。従って、ロボットに曲面を有する対象物を操作させる際には、その位置と姿勢を個々に特定することが要求される。
【0007】
そこで、本発明は、上記問題に鑑みてなされたものであり、曲面を有する対象物の位置や姿勢を推定することを可能とするロボット、画像処理方法及びロボットシステムを提供することを課題とする。
【課題を解決するための手段】
【0008】
(1)本発明の一態様は、
整列されていない1個又は複数個の対象物を被写体として撮像された3次元画像から得られる、前記被写体の表面を表す3次元点群に含まれる複数の点から選択した任意の2点からなる複数の組のうち、2点間の線分の長さが前記対象物の長さから所定の範囲内となる組を選択する組選択部と、
前記組選択部が選択した組をなす2点間の線分から、前記複数の点のうち当該線分から予め定めた距離内にある点までの間の距離と、対象物の半径との誤差が、予め定めた範囲内にある前記線分を中心軸として選択する中心軸選択部と、を備えるロボットである。
この構成によれば、長さが所定の範囲内である2点を結ぶ中心軸からの半径が所定の範囲内にある点から形成される対象物の画像を表す点が特定される。そのため、曲面を有する対象物として、形状が円柱もしくは円柱に近似する対象物の位置及び姿勢を推定することができる。
【0009】
(2)本発明の一態様は、上記のロボットであって、前記組を選択する範囲となる注目領域を設定する注目領域設定部を備え、前記組選択部は、前記注目領域設定部が設定した注目領域に含まれる複数の点から選択した任意の2点からなる複数の組のうち、2点間の線分の長さが前記対象物の長さから所定の範囲内となる組を選択し、
前記中心軸選択部は、前記組選択部が選択した組をなす2点間の線分から、前記複数の点のうち当該線分から予め定めた距離内にある点までの間の距離と、対象物の半径との誤差が、最も小さい前記線分を中心軸として選択する。
この構成によれば、処理対象となる画像の領域が注目領域に限定され、中心軸の選択に要する点が選択した組をなす2点間の線分から予め定めた範囲内に限定される。そのため、対象物の位置及び姿勢を推定するための処理量の増大を抑制することができる。また、誤差が最も小さい中心軸が選択されるため、対応する周囲の点として対象物の形状に最も近似するものが選択される。
【0010】
(3)本発明の一態様は、上記のロボットにおいて、前記注目領域設定部は、前記複数の点を網羅する複数の注目領域の候補である候補領域から前記複数の点が分布する領域が最も大きい候補領域を前記注目領域の少なくとも1つとして選択する。
この構成によれば、被写体が表されている領域が最も大きい候補領域を含むように注目領域が選択されるため、処理対象となる対象物を表す画像の欠落を低減し、当該画像を確実に取得することができる。
【0011】
(4)本発明の一態様は、上記のロボットにおいて、前記組選択部は、前記注目領域に含まれる複数の点から選択した任意の2点からなる複数の組のうち2点間の線分から予め定めた距離内に含まれる点の数が、前記対象物がとりうる点の数から予め定めた範囲外となる組を除外する。
この構成によれば、注目領域に含まれる画像のうち、対象物の画像の大きさからかけ離れた画像を除外することで処理効率を向上し、表している対象物の大きさとして妥当な画像を選択することができる。
【0012】
(5)本発明の一態様は、上記のロボットにおいて、前記組選択部は、撮像方向に垂直な面と2点間の直線の方向とのなす角が予め定めた角度よりも大きい組を除外する。
撮像方向に垂直な面と2点間の直線の方向とのなす角が大きくなると、当該2点間の直線の周りの画像がその垂直な面に射影される面積が小さくなり、当該画像を表す点に基づく位置及び方向の推定精度が低下する。この構成によれば、かかる画像に対する処理を除外することで処理効率を向上し、より高い推定精度が期待できる画像を選択することができる。
【0013】
(6)本発明の一態様は、上記のロボットにおいて、前記中心軸選択部が選択した中心軸の方向と、前記中心軸選択部が選択した中心軸から所定距離内に含まれる点から算出した前記対象物の位置に基づいて動作する。
これにより、推定した対象物の位置や姿勢に応じて動作を制御することができる。
【0014】
(7)本発明の一態様は、画像処理装置における画像処理方法であって、画像処理装置における画像処理方法であって、
整列されていない1個又は複数個の対象物を被写体として撮像された3次元画像から得られる、前記被写体の表面を表す3次元点群に含まれる複数の点から選択した任意の2点からなる複数の組のうち、2点間の線分の長さが前記対象物の長さから所定の範囲内となる組を選択する組選択過程と、
前記組選択過程で選択した組をなす2点間の線分から、前記複数の点のうち当該線分から予め定めた距離内にある点までの間の距離と、対象物の半径との誤差が、予め定めた範囲内にある前記線分を中心軸として選択する中心軸選択過程と、を有する画像処理方法である。
この構成によれば、長さが所定の範囲内である2点を結ぶ中心軸からの半径が所定の範囲内にある点から形成される対象物の画像を表す点が特定される。そのため、曲面を有する対象物として、形状が円柱もしくは円柱に近似する対象物の位置及び姿勢を推定することができる。
【0015】
(8)本発明の一態様は、ロボットと、対象物を撮像する撮像装置と、前記撮像装置が撮影した画像に基づいて
1個の前記対象物の位置と姿勢を表す空間データを取得する画像処理装置と、前記空間
データに基づいて前記ロボットの動作を制御するロボット制御装置とを備えるロボットシステムであって、前記画像処理装置は、
整列されていない1個又は複数個の対象物を被写体として撮像された3次元画像から得られる、前記被写体の表面を表す3次元点群に含まれる複数の点から選択した任意の2点からなる複数の組のうち、2点間の線分の長さが前記対象物の長さから所定の範囲内となる組を選択する組選択部と、
前記組選択部が選択した組をなす2点間の線分から、前記複数の点のうち当該線分から予め定めた距離内にある点までの間の距離と、対象物の半径との誤差が、予め定めた範囲内にある前記線分を中心軸として選択する中心軸選択部と、を備えるロボットシステムである。
この構成によれば、長さが所定の範囲内である2点を結ぶ中心軸からの半径が所定の範囲内にある点から形成される対象物の画像を表す点が特定される。そのため、曲面を有する対象物として、形状が円柱もしくは円柱に近似する対象物の位置及び姿勢を推定することができる。
また、この構成によれば、推定した対象物の位置及び姿勢に応じてロボットの動作を制御することができる。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
図1は、本実施形態に係るロボットシステム1の概略斜視図である。
図1に示すように、ロボットシステム1は、撮像装置10、制御装置20及びロボット30を備える。なお、
図1における部品や構造等の縮尺は、図を明瞭なものとするために実際のものとは異なっている。
【0018】
撮像装置10は、被写体の3次元の形状を撮像し、撮像した3次元の形状を示す画像データを生成する。生成された画像データは、例えば、その3次元の形状を所定の解像度でサンプリングした複数のサンプル点毎の位置情報で形成されるデータである。各サンプル点は、被写体の表面をサンプリングした3次元のユークリッド空間内の直交座標(X,Y,Z)を示す。つまり、生成された画像データは、複数のサンプル点データを含む点群データである。サンプル点データは、被写体の表面をサンプリングしたサンプル点毎の位置を示すデータである。また、個々のサンプル点データには、その点での明るさを示す輝度値が含まれていてもよい。サンプル点は、2次元の画像データにおける画素に相当し、複数のサンプル点で張られる面で被写体の表面が表される。この画像データが示す画像は点群画像とも呼ばれる。
なお、
図1に示す例では、X方向は左方、Y方向は奥行方向、Z方向は下方である。
【0019】
撮像装置10は、例えば、形状検査用3次元センサーである。撮像装置10は、被写体として、例えば、ロボット30による操作対象となる物体(以下、対象物という)Wkが積み重ねられた領域を光学的に観察できる位置に設置されている。対象物Wkは、後述するように、その表面に曲面を有するほぼ円筒状の形状を有する物体である。作業机Tbの表面は、水平面に対して平行であり1個又は複数個の対象物Wkが乱雑に積み重ねられている。
撮像装置10は、その光学軸が、例えば、水平面に対して垂直(下方)に向くように設置されている。撮像装置10は、少なくとも1つの対象物を含む撮像領域Irに含まれる1フレームの3次元の画像を撮像する。撮像領域Irは、撮像装置10がその領域内に置かれた被写体の画像を撮像することができる予め定めた大きさを有する3次元の領域である。
撮像装置10は、撮像により得られた撮像画像(以下、カメラ画像ともいう)を示す画像データを制御装置20に出力する。
【0020】
制御装置20は、撮像装置10から入力された画像データに基づいてロボット30の動作を制御する。制御装置20は、画像処理装置21とロボット制御装置22とを含んで構成される。
【0021】
画像処理装置21は、撮像装置10から入力された画像データから対象物の位置及び配置されている方向(姿勢)を検出する。以下の説明では、位置、方向、又は位置ならびに方向を空間状態と総称することがある。画像処理装置21は、検出した空間状態を示す空間データを生成し、生成した空間データをロボット制御装置22に出力する。画像処理装置21の構成については、後述する。
【0022】
ロボット制御装置22は、画像処理装置21から入力された空間データが示す対象物の位置、方向、又は位置ならびに方向に基づいてロボット30の動作を制御する。ロボット制御装置22は、例えば、ロボット30の把持部30d(後述)を作業開始位置に移動させ、把持部30dが備える2つの先端部が互いに向かい合う方向を作業開始方向に回転させる。作業開始位置は、例えば、その空間データが示す位置から予め定めた間隔だけ離れた位置である。作業開始方向は、例えば、その空間データが示す方向と同一の方向である。他方、ロボット制御装置22は、ロボット30から入力された各関節の角度に基づいて把持部30dの位置と方向を算出する。ロボット制御装置22は、例えば、ビジュアルサーボを用いて、算出した位置と目標位置との間の距離、及び算出した方向と目標方向との差分が、それぞれ時間経過に伴って減少するようにロボット30の各構成の動作を制御する。作業開始前においては、目標位置、目標方向として、予め定めた作業開始位置、作業開始方向がそれぞれ用いられる。作業中においては、目標位置、目標方向として、例えば、空間データが示す位置、方向がそれぞれ用いられる。
【0023】
また、ロボット制御装置22は、ロボット30から負荷情報が入力され、負荷情報が示す力をさらに用いて2つの先端部の位置及び方向を制御する。負荷情報は、先端部で検知された力を示す情報である。例えば、2個の先端部が互いに離間しているとき、ロボット制御装置22は、2個の先端部間の距離を互いに狭めて対象物を把持する。ロボット制御装置22は、先端部で検知された力が予め定めた目標値となるように対象物を挟む力を制御する。対象物が把持されているとき、ロボット制御装置22は、対象物を挟む力を解除し、2個の先端部間の距離を互いに広げるように制御することで対象物を解放することができる。
【0024】
ロボット30は、例えば、6軸の垂直多関節ロボットであり、支持台30a、アーム部30b、ハンド部30c及び把持部30dを含んで構成される。ロボット30は、支持台30aとアーム部30bとハンド部30cとの連係した動作によって6軸の自由度を有し、把持部30dが把持する部品の位置および姿勢を自在に変更することができる。また、ロボット30は、ロボット制御装置22が行う制御によって、アーム部30bとハンド部30cと把持部30dとのうちいずれか一つまたはそれらの組み合わせを動作させる。把持部30dは、2個の先端部を備え、2個の先端部は各々の長手方向が互いに向かい合うように配置される。
ロボット30の自由度は6軸に限られず、7軸であってもよい。また、支持台30aは、壁や天井等、床面に対して固定された場所に設置されてもよい。
【0025】
ロボット30は、把持部30dに加わる力とモーメントを、予め定めた時間間隔(例えば、1ms)で検出する力センサー(図示せず)を備え、検出した力及びモーメントを示す負荷情報をロボット制御装置22に出力する。ロボット30は、エンコーダー(図示せず)を備える。エンコーダーは、ロボット30の各関節の角度を検出し、検出した各関節の角度をロボット制御装置22に出力する。
【0026】
次に、本実施形態に係る画像処理装置21の構成について説明する。
図2は、本実施形態に係るロボットシステム1の構成を示す概略ブロック図である。
画像処理装置21は、画像データ取得部211、注目領域設定部212、点対選択部(組選択部)213、中心軸推定部216、中心軸選択部217、空間データ生成部218及び空間データ出力部219を含んで構成される。
【0027】
画像データ取得部211には、撮像装置10から画像データが入力され、入力された画像データを注目領域設定部212に出力する。画像データ取得部211は、例えば、データ入力インターフェイスである。
【0028】
注目領域設定部212は、画像データ取得部211から画像データが入力される。注目領域設定部212は、撮像領域を所定の2次元平面に射影した2次元領域から、予め定めた大きさの2次元の注目領域を設定する。注目領域とは、点対選択部213、中心軸推定部216、中心軸選択部217、空間データ生成部218で一度に処理の対象とする領域(3次元)、又はその領域を所定の2次元平面に射影した2次元の領域である。
注目領域設定部212は、画像データが示すサンプル点データに基づいて予め定めた大きさの注目領域を予め定めた個数定める。注目領域設定部212は、例えば、被写体を表すサンプル点が分布する領域が最も大きい領域を、その注目領域の1つとして定める。これにより、対象物の検知の失敗を回避し、一度に行われる処理の処理量を低減することができる。この設定例については、後述する。また、注目領域設定部212は、サンプル点の座標値の重心の高さ方向の座標が最も小さい候補領域を定めてもよい。これにより、把持する際に好都合な撮像装置10に最も近接した(この配置例では、上方に)所在している対象物の検出が容易になる。
【0029】
所定の2次元平面とは、例えば、撮像装置10の撮像方向に垂直な平面、例えば、3次元の撮像領域Irのうち、撮像装置10からの奥行(高さ)方向の座標(Z座標)を無視し残された2次元座標で表される領域(XY平面)の一部である。撮像装置10の撮像方向は、撮像装置10の光学軸の方向である。これにより、2次元の注目領域は、その2次元の注目領域と奥行方向の所定の範囲とで特定される3次元の注目領域と対応付けられる。注目領域設定部212は、設定した2次元の注目領域のそれぞれに対応する3次元の注目領域と特定し、特定した各注目領域に含まれるサンプル点に係るサンプル点データを点対選択部213に出力する。
【0030】
点対選択部213は、注目領域設定部212から入力された注目領域毎のサンプル点データが示すサンプル点のうちの2点からなる組(点対、point pair)のうち所定の条件を満足する組を選択する。点対選択部213は、第1点対選択部214及び第2点対選択部215を含んで構成される。
第1点対選択部214は、注目領域毎のサンプル点データが示すサンプル点から2点間の距離Lが、特性長lから予め定めた範囲内、例えば、0.8lから1.0lまでの間である点対を、Ne(Neは、予め定めた個数)個選択する。これにより、対象物の表面上の一点と底面上の一点とからなる点対が抽出され、それ以外の点対が除外される。
Neは、例えば、対象物がとりうるサンプル点の総数Mから選択された任意の2点が、注目領域内に含まれない確率が、予め定めた有意水準p(例えば、0.05)よりも低くなる点対の数のうちの最小値である。Neは、式(1)で与えられる。
【0032】
式(1)において、Nは、注目領域内に存在しうるサンプル点の最大数である。つまり、Nは、撮像装置10で取得される画像データに含まれるサンプル点の空間分解能に依存する。このように、Neを定めておくことで、対象物を確実に検出し、かつ、処理量を低減することができる。
第1点対選択部214は、選択した点対のそれぞれを形成する2点間の直線を示す一次関数の定数を算出する。算出した定数は、その直線の傾きとX、Y、Z軸の切片を示す。
【0033】
第1点対選択部214は、算出した定数から導かれるX−Y平面に対する傾きθzが予め定めた傾きの範囲内の点対を選択し、その範囲外の点対を除外する。予め定めた傾きの範囲は、例えば、傾きの閾値θmaxよりも小さい傾きである。θmaxは、例えば、把持部30dを構成するハンド、ジグ、等の形状や配置のもとで対象物を把持することができる傾きθzの最大値である。これにより、把持部30dが対象物を把持することができない対象物の画像が処理対象から排除される。また、θzが大きくなるほど、直線の方向が撮像装置10の光学軸の方向に近似するため、この直線の周りの曲面を表すサンプル点の数が少なくなる。これは、この曲面をX−Y平面に射影したときの面積が小さくなるためである。このような曲面を処理対象から除外されるので、無用な処理を防止することができる。
第1点対選択部214は、選択した点対を示す選択点対情報を第2点対選択部215に出力する。
【0034】
第2点対選択部215は、注目領域毎のサンプル点データのうち第1点対選択部214から入力された選択点対情報が示す点対のそれぞれを形成する2点を結ぶ線分から所定距離内のサンプル点を線分に属する点として抽出し、それ以外のサンプル点を除外する。所定距離ρは、例えば、対象物の半径rよりも大きい値であって、隣接する対象物との平均的な距離よりも小さい値、例えば、2rである。これにより、1個の対象物の表面を表すサンプル点が確実に取得され、その他の対象物の表面を表すサンプル点を極力除外される。
そして、第2点対選択部215は、抽出したサンプル点の数Nが、所定の個数の範囲内にある点対を選択し、所定の個数の範囲外の点対を排除する。所定の個数の範囲とは、例えば、式(2)に示す範囲である。
【0036】
式(2)において、Rは、撮像装置10の信頼性に応じた設定値を示す。Rが大きいほど信頼性が高いことを示し、Rが小さいほど信頼性が低いことを示す。Rは、例えば、0.7から0.95までの実数である。なお、Rの最大値、最小値は、それぞれ1、0である。Nmaxは、対象物がとりうるサンプル点数の最大値である。対象物の形状が円柱である場合には、中心軸が撮像装置10の光学軸の方向と垂直であって、対象物の全体が撮像領域Irに含まれ、かつ撮像装置10からの距離が最も短くなるように配置されたとき、撮影された画像データを形成するサンプル点数が最大となる。θmaxは、上述した傾きの閾値である。これにより、その側面が撮像装置10に対して十分に露出されている対象物を表すサンプル点を所定距離ρ内に含む線分が選択される。即ち、選択された線分で結ばれる2点からなる点対が選択される。
第2点対選択部215は、その点対を形成する2点を結ぶ線分に属するサンプル点を示す第2点対情報を選択した点対毎に中心軸推定部216に出力する。
【0037】
中心軸推定部216は、第2点対選択部215から入力された第2点対情報が示すサンプル点で張られる表面の中心軸の候補(中心軸候補)を点対毎に推定する。中心軸推定部216は、中心軸候補を推定する際、例えば、逐次二次計画法(SQP:Sequential Quadratic Programming method)を用いることができる。中心軸推定部216は、推定した中心軸候補の定数からなる中心軸情報を生成し、生成した中心軸情報に係る点対に係る第2点対情報と対応付けて中心軸選択部217に出力する。
【0038】
中心軸選択部217は、中心軸推定部216から中心軸情報と第2点対情報が入力される。中心軸選択部217は、中心軸候補の定数で示されるXY平面に対する傾きθzが予め定めた傾きの範囲内の中心軸を選択し、その範囲外の中心軸を除外する。予め定めた傾きの範囲は、例えば、第1点対選択部214で点対を選択した傾きの範囲、つまり、傾きの閾値θmaxよりも小さい傾きであってもよい。
中心軸選択部217は、選択した中心軸のそれぞれについて対応する第2点対情報が示すサンプル点に基づいて、例えば、式(3)を用いて推定誤差errを算出し、算出した推定誤差errが予め定めた誤差よりも小さい中心軸を選択する。選択された中心軸が複数個ある場合には、中心軸選択部217は、推定誤差errが最も小さい中心軸を選択する。
【0040】
式(3)において、nは、中心軸に属するサンプル点、つまり、中心軸から所定距離ρ内に含まれるサンプル点の数を示す。iは、各サンプル点を区別するインデックスである。|…|は、…の絶対値である。d
iは、サンプル点iと中心軸との間の距離を示す。即ち、推定誤差errは、各サンプル点における中心軸からの距離d
iと半径rとの間の誤差における絶対値の平均を示す。
中心軸選択部217は、選択した中心軸に係る中心軸情報と中心軸に属するサンプル点を示す推定サンプル点データを対応付けて空間データ生成部218に出力する。
【0041】
空間データ生成部218は、中心軸選択部217から入力された推定サンプル点データに基づいて対象物の位置を算出し、中心軸情報に基づいて対象物の方向(姿勢)を算出する。ここで、空間データ生成部218は、中心軸情報が示す中心軸の定数に基づいて中心軸の方向を、対象物の方向として算出する。
また、空間データ生成部218は、推定サンプル点データが示すサンプル点の座標の代表点、例えば重心点を対象物の位置として算出する。但し、サンプル点の分布は、一面に偏っていることがあるので、それらの重心点が対象物の位置を代表するとは限らない。そこで、空間データ生成部218は、算出した重心点を通る中心軸に垂直な面と、その中心軸との交点を対象物の位置として算出してもよい。
【0042】
なお、算出された対象物の位置及び方向が、撮像装置10を基準とするカメラ座標系に基づく座標値及び方位角で示されている場合には、空間データ生成部218は、算出した座標値及び方位角を、ロボット30を基準とするロボット座標系に基づく座標値及び方位角に変換してもよい。そのために、空間データ生成部218には、カメラ座標系からロボット座標系に変換する変換データを予め設定しておく。
空間データ生成部218は、算出した対象物の位置及び方向を示す空間データを生成し、生成した空間データを空間データ出力部219に出力する。
【0043】
空間データ出力部219は、空間データ生成部218から入力された空間データをロボット制御装置22に出力する。空間データ出力部219は、例えば、データ出力インターフェイスである。
【0044】
(画像データの例)
次に、撮像装置10で得られる画像データの一例について説明する。
図3は、画像データの一例を示す図である。
図3に示す画像データは、所定の撮像領域Ir内の被写体の3次元形状を示す点群画像を示す。この点群画像は、複数のサンプル点からなり、サンプル点の各々は複数の乱雑に積み重ねられた対象物の表面を所定の分解能でサンプリングした点である。サンプル点の濃淡は、対象物の輝度を示す。濃いサンプル点ほど輝度値が低く、薄いサンプル点ほど輝度値が高いことを示す
【0045】
(注目領域の例)
次に、注目領域設定部212で設定される注目領域について説明する。
注目領域は、X方向、Y方向にそれぞれ平行な2辺(計4辺)で囲まれる長方形であり、少なくとも対象物の全体を十分に表すことができる大きさを有する。注目領域の一辺の長さは、対象物の特徴的な大きさ(特性長)に基づいて与えられる。例えば、対象物の形状が円柱に近似され、直径2rよりも高さlの方が長い細長い形状を有する場合、特性長として、その高さlを用いることができる。例えば、高さlが20mmである場合、注目領域のX方向の辺の長さw
x、Y方向の辺の長さw
yをともに25mmと定めておいてもよい。また、変位量Δx、Δyは、それぞれの方向の辺の長さw
x、w
yよりも小さい値、例えば、その長さの40%と定めておいてもよい。
【0046】
注目領域設定部212は、画像データを形成するサンプル点データの座標値の重心、高さに基づいて注目領域を予め定めた個数(例えば、9個)定める。ここで、注目領域設定部212は、例えば、撮像領域Irにおいて予め定めた空間間隔毎に候補となる候補領域を定め、各候補領域に含まれるサンプル点の重心を算出する。注目領域設定部212は、算出した重心のZ方向の座標が最も小さい(つまり、撮像装置10に近い)候補領域を主たる注目領域と定める。
【0047】
注目領域設定部212は、主たる注目領域から、予め定めた変位量ΔxだけX方向に正負それぞれ変位した位置(2通り)、予め定めた変位量ΔyだけY方向に正負それぞれ変位した位置(2通り)にも、それぞれ注目領域(図示せず)を定める。また、注目領域設定部212は、主たる注目領域から、予め定めた変位量ΔxだけX方向に正負それぞれ変位した位置、及び予め定めた変位量ΔyだけY方向に正負それぞれ変位した位置(計4通り)にも、それぞれ注目領域(図示せず)を定める。
【0048】
図4は、注目領域の一例を示す図である。
図4は、
図3に示す点群画像と主たる注目領域Wdを実線で示す。注目領域Wdの右側の右向きの矢印は、この領域から変位量ΔxだけX方向にずれた位置に注目領域が設定されていることを示す。注目領域Wdから右上向きの矢印は、この領域から変位量ΔxだけX方向に変位し、変位量ΔyだけY方向に変位した位置に注目領域が設定されていることを示す。
図4は、2通りに変位した注目領域の例を示すが、変位量Δx、変位量Δy、又はその両者の少なくとも一方が負方向に変位した位置に注目領域が配置されてもよい。
【0049】
図5は、対象物の形状を近似するモデルの一例を示す図である。
対象物Wkの形状は、円柱に近似されている。これにより、対象物Wkの特性長として高さl、半径r、又はその両者が用いられうる。
図5に示す対象物Wkは、半径rに比べて高さlが格段に大きい細長の形状を有するため、主に高さlが特性長として用いられる。
【0050】
(主たる注目領域を選択する処理)
次に、注目領域設定部212が主たる注目領域を選択する処理について説明する。
注目領域設定部212は、XY平面内の予め定めた空間間隔毎に複数の注目領域の候補(候補領域)を設定し、設定した候補領域のうち空間的に連続した被写体を表す領域が最も大きい領域を主たる注目領域として選択する。
ここで、注目領域設定部212は、候補領域のそれぞれに含まれるサンプル点データを二値化する。複数の注目領域の大きさは、いずれも等しくてもよい。また、空間間隔は、X−Y平面内の表示領域の全体を全ての候補領域で網羅されればよい。空間間隔は、変位量ΔX、ΔYと等しくてもよい。
【0051】
注目領域設定部212は、二値化を行う際、例えば、次の(a)又は(b)に示す処理を行ってもよい。
(a)注目領域設定部212は、サンプル点データが示す輝度値が予め定めた輝度値の閾値よりも高い場合、そのサンプル点に係る信号値を1と定め、それ以外のサンプル点に係る信号値を0と定める。輝度値の閾値は、例えば、その最大値と最小値の中間の値である。輝度の高い部分は撮像装置10に近接している傾向があるところ、撮像装置10に近接した高さの高い部分が識別される。
【0052】
図6は、候補領域内に表示された画像の一例を示す図である。
図6に示す画像は、(a)の処理対象となるサンプル点毎の輝度を表す輝度画像である。明るく表示されている部分ほど輝度値が高く、暗く表示されている部分ほど輝度値が低い。この例では、対象物Wk1、Wk2、Wk3の順に明るく表示され、対象物Wk1は対象物Wk3に重なっていることを示す。また、対象物Wk2を示す画像は、下部よりも上部のほうが明るく表示されている。
【0053】
図7は、候補領域内の二値化画像の一例を示す図である。
図7に示す二値化画像は、
図6に示す輝度画像を二値化した画像である。この例では、対象物Wk1の全体、対象物Wk2の上方が明るく表示されている。この領域の信号値は1である。それ以外の領域は、黒く表示され、
図6に表示されていた対象物Wk2の下方、対象物Wk3の全体が表れていない。この領域の信号値は0である。これは、対象物Wk2の下方、対象物Wk3の全体における輝度値が予め定めた輝度値の閾値よりも低いためである。
【0054】
(b)注目領域設定部212は、候補領域毎にサンプル点データが示すサンプル点を、XY平面に射影する。注目領域設定部212は、グリッド(サンプル点ブロック)のそれぞれに含まれるサンプル点の数を計数する。このグリッドは、互いに隣接する複数の最密サンプル点を含む正方形の領域である。最密サンプル点とは、最も密に配置されたときのサンプル点であり、最密サンプル点間の間隔は撮像装置10のXY平面内の空間分解能を示す。サンプル点ブロックの大きさは、例えば、X方向、Y方向に各4サンプル(計16サンプル)である。各グリッドのサンプル点の数は、ヒストグラムを形成する。
注目領域設定部212は、計数したサンプル点の数が予め定めたサンプル数の閾値よりも大きいグリッドについて、信号値を1と定め、それ以外のグリッドについて信号値を0と定める。
【0055】
図8は、候補領域内に射影されたサンプル点の一例を示す図である。
図8において、各点は、(b)の処理対象となる候補領域内に射影されたサンプル点を示す。撮像された画像において対象物が明るく表示されている領域ほど、
図8ではサンプル点が密に表されている。
図9は、候補領域内の二値化画像の他の例を示す図である。
図9は、
図8に示したサンプル点に基づいて得られた二値化した画像である。サンプル点が密に分布している領域の信号値が1であり、それ以外の部分の信号値が0である。これにより、撮像装置10から近く、明るく表示されている部分を識別することができる。以下の説明では、信号値が1である領域を明領域と呼ぶ。
【0056】
注目領域設定部212は、(1)又は(2)で述べた処理を行った後、信号値が1と定められた明領域を、空間的に連続した領域毎に区分する。ここで、注目領域設定部212は、信号値が1である注目グリッドに隣接する隣接グリッドの信号値が1である場合、注目グリッドと隣接するグリッドと空間的に連続している同一の明領域に区分されると判定する。注目領域設定部212は、それ以外の場合、空間的に連続している同一の明領域には区分されないと判定する。
【0057】
図10は、明領域の例を示す図である。
図10は、
図9に示した二値化画像に基づいて区分した明領域Rg1、Rg2、Rg3を示す。
明領域Rg1は、二値化画像の左上部において破線で囲まれた部分である。明領域Rg2は、二値化画像の中央部からやや左側において破線で囲まれた部分である。明領域Rg3は、二値化画像の中央上部から右下部にかけて破線で囲まれた部分である。
【0058】
その後、注目領域設定部212は、候補領域内における信号値が1である明領域の面積(グリッドの個数)を明領域面積として算出する。また、注目領域設定部212は、区分した各明領域について領域内距離を求める。領域内距離は、ある1つの明領域を横断する距離の最大値である。領域内距離は、例えば、(i)その明領域内の2つの座標点間の距離が最も大きくなる距離、(ii)明領域内を中断ならびに交差せずに1回のみ通って形成される(いわゆる一筆書き可能な)経路の長さの最大値のいずれでもあってもよい。いずれも、連続した明領域の大きさを示す指標である。
【0059】
図11は、領域内距離の一例を示す図である。
図11が示す領域内距離は、(i)の例である。この例では、明領域Rg2の外縁上の相対する2点p1、p2間の距離が領域内距離に相当する。
図12は、領域内距離の他の例を示す図である。
図12が示す領域内距離は、(ii)の例である。この例では、明領域Rg2に含まれる経路Tr2の長さが領域内距離に相当する。
【0060】
注目領域設定部212は、領域内距離が予め定めた領域内距離の閾値よりも大きく、かつ明領域面積が予め定めた明領域面積の閾値よりも大きい候補領域を選択し、それ以外の候補領域を排除する。注目領域設定部212は、領域内距離が最も大きい候補領域を注目領域として定める。
なお、注目領域設定部212は、候補領域毎に領域内距離及び明領域面積を求める処理を空間的に隣接する順で逐次に行ってもよいし(スキャン)、並列に行ってもよい。
【0061】
(点対の例)
次に、第1点対選択部214で選択された点対の例について説明する。
図13は、選択された点対の例を示す図である。
図13(a)、(b)は、XY平面上、XZ平面上にそれぞれ射影された注目領域におけるサンプル点の分布の一例を示す。それぞれの黒丸は、サンプル点を示す。P11、P12は、選択された点対を形成する2個のサンプル点の組の一例である。上述したように、P11、P12間の距離Lは、対象物の特性長lから予め定めた範囲にある。
【0062】
図13(b)に示された一点破線は、Z座標が一定であるXY平面を示す。傾きθzは、P11、P12間の線分E1とXY平面とのなす角度である。傾きθzは、予め定めた傾きの閾値θmaxよりも小さい値である。即ち、第1点対選択部214は、対象物の表面の1点と底面の1点から形成される点対として、この2点間の距離Lが特性長lに近似し、画像データから確実に検出され、かつ制御対象となりうる方向を有するものを選択する。
【0063】
(線分に属するサンプル点の例)
次に、第2点対選択部215で抽出された線分に属するサンプル点の例について説明する。
図14は、線分に属するサンプル点の例を示す図である。
図14(a)、(b)は、XY平面上、XZ平面上にそれぞれ射影されたサンプル点の分布の他の例を示す。黒丸のそれぞれは、サンプル点を示す。P21、P22は、点対を形成する2個のサンプル点の組の他の例であり、E2は、P21、P22間を結ぶ線分である。線分E2に属するサンプル点は、線分Eから距離ρの範囲内に含まれるサンプル点である。第2点対選択部215は、これらのサンプル点を選択し、選択したサンプル点の個数Nが所定の個数の範囲内となる点対及びそのサンプル点を採用する。
【0064】
(選択されたサンプル点の例)
次に、中心軸選択部217で選択された中心軸と対応するサンプル点の例について説明する。
図15は、選択された中心軸と対応するサンプル点の例を示す断面図である。
この例では、中心軸E3とサンプル点の分布がXZ平面に射影されている。各点は、サンプル点を示す。選択されたサンプル点の多くは、中心軸E3からZの負方向に所定距離だけ偏って分布しているが、その分布が延びている方向は中心軸E3の方向にほぼ平行している。この偏りは、各サンプル点までの距離と半径rとの誤差が最小となるように中心軸が選択され、対象物のうち撮像装置10に向いている側の表面を表す。対象別のその他の側の表面が表れていないためである。
図16は、選択された中心軸に対応するサンプル点の例を示す斜視図である。
各点は、注目領域内に含まれるサンプル点を示す。そのうち選択されたサンプル点が、その他のサンプル点よりも濃い点で表されている。選択されたサンプル点は、1個の対象物の表面の形状を表し、上述した中心軸を中心に湾曲した面上に分布している。中心軸から面まで距離は、半径rに近似している。
【0065】
(画像処理フロー)
次に、本実施形態に係る画像処理について説明する。
図17は、本実施形態に係る画像処理を示すフローチャートである。
この処理が開始されるまでに、画像データ取得部211には撮像装置10で取得した画像データが入力され、当該画像データは注目領域設定部212に供給される。
(ステップS101)注目領域設定部212には、供給された画像データが示す画像の撮像領域を所定の2次元平面に射影した2次元領域において予め定めた大きさの注目領域を設定する。注目領域設定部212は、例えば、2次元領域のうち被写体を表すサンプル点が分布する領域が最も大きい注目領域をその1つとして選択する。その後、ステップS102に進む。
【0066】
(ステップS102)第1点対選択部214は、注目領域設定部212が設定した注目領域内に含まれサンプル点のうちの2点からなる点対のうち所定の条件を満足する点対を選択する。所定の条件は、例えば、対象物の特性長から予め定めた範囲内であること、2点間の直線の傾きθzが予め定めた範囲内であるか、又はその両者である。その後、ステップS103に進む。
(ステップS103)第2点対選択部215は、第1点対選択部214で選択された点対のそれぞれについて、各点対を形成する2点を結ぶ線分から所定距離ρ内のサンプル点を抽出する。第2点対選択部215は、抽出したサンプル点の数が所定の個数の範囲内、例えば対象物を表す画像がとりうるサンプル点の数から予め定めた範囲内となる点対を選択する。その後、ステップS104に進む。
【0067】
(ステップS104)中心軸推定部216は、第2点対選択部215で選択した点対について、抽出されたサンプル点に基づいて、例えば、逐次二次計画法を用いて中心軸を推定する。その後、ステップS105に進む。
(ステップS105)中心軸選択部217は、推定した中心軸のそれぞれについて抽出されたサンプル点までの距離と対象物の半径との間の推定誤差errを、例えば、式(3)を用いて算出し、算出した推定誤差errが最も小さい中心軸を選択する。その後、ステップS106に進む。
【0068】
(ステップS106)空間データ生成部218は、中心軸選択部217で選択した中心軸と、これに対応するサンプル点に基づいて対象物の方向と位置を算出する。算出された対象物の方向と位置は、ロボット制御装置22がロボット30の動作を制御する際に用いられる。その後、
図17に示す処理を終了する。
【0069】
ステップS101において注目領域設定部212で設定される注目領域の数は、9個に限られず、1個でもよいし、2個から8個、又は9個より多くてもよい。設定される注目領域の数が1個よりも多い場合には、注目領域毎にステップS102−S104の処理が繰り返えされてもよいし、並列して実行されてもよい。
また、ステップS102において第1点対選択部214で選択される点対の数は、通例、1個よりも多い。選択される点対の数が1個よりも多い場合には、点対毎にステップS103、S104の処理が繰り返されてもよいし、並列して実行されてもよい。
【0070】
以上、説明したように、本実施形態は、対象物の形状を表す複数の点から選択した任意の2点からなる複数の組のうち、2点間の線分の長さが前記対象物の長さから所定の範囲内となる組を選択する組選択部(例えば、点対選択部213)と、前記複数の点のうち、前記組選択部が選択した組をなす2点間の線分から予め定めた距離内にある点と前記線分との間の距離と、対象物の半径との誤差が予め定めた範囲内にある中心軸を選択する中心軸選択部(例えば、中心軸選択部217)と、を備える。
【0071】
これにより、長さ(即ち、円柱の高さ)が所定の範囲内である2点を結ぶ中心軸からの半径が所定の範囲内にある点から形成される対象物の画像を表す点が特定される。そのため、曲面を有する対象物として、形状が円柱もしくは円柱に近似する対象物(例えば、ネジ、ボルト、等)の位置及び姿勢を推定することができる。また、対象物の位置及び姿勢を推定する際に、パターン認識等の負荷の大きい処理が要求されないため高速な処理を経済的に実現可能になる。
【0072】
また、推定した位置及び姿勢に基づいてロボット(例えば、ロボット30)の動作を制御することができる。例えば、ロボット制御装置22は、ロボット30のアーム部30b及びハンド部30cを動作させて把持部30dの位置及び方向を、推定した対象物の位置及び姿勢に応じて制御することができる。これにより、ロボット30は、特殊なジグを用いることなく乱雑に積まれた対象物を操作することができる。
【0073】
また、本実施形態は、組を選択する範囲となる注目領域を設定する注目領域設定部(例えば、注目領域設定部212)を備え、組選択部は、注目領域設定部が設定した注目領域に含まれる複数の点から選択した任意の2点からなる複数の組のうち、2点間の線分の長さが前記対象物の長さから所定の範囲内となる組を選択し、中心軸選択部(例えば、中心軸選択部217)は、複数の点のうち、組選択部が選択した組をなす2点間の線分から予め定めた距離内にある点と前記線分との間の距離と、対象物の半径との誤差が最も小さい中心軸を選択する。
【0074】
これにより、処理対象となる画像の領域が注目領域に限定され、中心軸の選択に要する点が点対から予め定めた範囲内に限定される。そのため、対象物の位置及び姿勢を推定するための処理量の増大を抑制することができる。また、誤差が最も小さい中心軸が選択されるため、対応する周囲の点として対象物の形状に最も近似するものが選択される。
【0075】
上述では、長さ(高さ)や半径は、予め画像処理装置21に設定しておくことを前提に説明したが、これには限られない。画像処理装置21は、ユーザからの操作に応じて長さ及び半径を入力可能な入力部(図示せず)を備えてもよいし、通信回線を介して長さ及び半径を受信可能な通信部(図示せず)を備えてもよい。画像処理装置21は、さらに入力又は受信した長さに基づいて注目領域の大きさ、対象物がとりうるサンプル点数Nmaxを定めてもよい。
【0076】
上述では、中心軸推定部216が、逐次二次推定法を用いて中心軸候補を推定する場合を例にとって説明したが、これには限られない。中心軸推定部216は、例えば、その他の手法、例えば、ニュートン法等のその他の非線形計画法や、RANSAC(Random Sample Consensus)法、最小二乗法、等の回帰分析法を用いることができる。
【0077】
撮像装置10は、各フレームの画像データを、個々に制御装置20に出力してもよいし、予め定めた時間間隔で逐次に制御装置20に出力してもよい。撮像装置10は、画像処理装置21と一体に構成されていてもよい。
上述では、画像処理装置21とロボット制御装置22とは一定に構成されている場合を例にとって説明したが、これには限られない。画像処理装置21とロボット制御装置22は別体に構成されていてもよい。
また、画像処理装置21とロボット制御装置22は、ロボット30と一体化したロボットとして構成されてもよい。
【0078】
また、各実施形態の画像処理装置21の一部、例えば、注目領域設定部212、点対選択部213、中心軸推定部216、中心軸選択部217、及び空間データ生成部218の各処理を実行するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することにより、画像処理装置21に係る上述した種々の処理を行ってもよい。
【0079】
なお、ここでいう「コンピューターシステム」とは、上述した処理を行うCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、等のハードウェアの他、OS(Operating System)や周辺機器等のハードウェアを含むものであってもよい。また、「コンピューターシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリー等の書き込み可能な不揮発性メモリー、CD(Compact Disc)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0080】
さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピューターシステム内部の揮発性メモリー(例えば、DRAM:Dynamic Random Access Memory)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0081】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。