(57)【要約】【課題】対象物の位置や姿勢の推定において、処理時間を低減し、検出精度を向上させる。【解決手段】ハンドと、前記ハンドを動作させる制御部と、を含み、前記制御部は、撮像部が撮像した撮像画像を構成する画像の一部に対して三次元点群情報を生成し、前記ハンドに前記画像の一部に含まれる物体を把持させる。【選択図】図２
2015147256.tif 000002
【特許請求の範囲】
【請求項１】
ハンドと、
前記ハンドを動作させる制御部と、を含み、
前記制御部は、
撮像部が撮像した撮像画像を構成する画像の一部に対して三次元点群情報を生成し、前記ハンドに前記画像の一部に含まれる物体を把持させる、
ロボット。
【請求項２】
前記制御部は、
前記撮像画像から前記物体を表す第１の領域と前記第１の領域を含み、所定の形状を有する第２の領域を定め、
前記第１の領域に対応する第１の三次元点群情報と、
前記第２の領域に対応する第２の三次元点群情報と、を前記撮像画像から生成し、
前記第１の三次元点群情報に含まれる２点からなる複数の組のうち、２点間の線分の長さが所定の長さの範囲内となる組を選択し、
選択した組をなす２点間の線分から予め定めた範囲内の点を前記第２の三次元点群情報から抽出し、
前記第２の三次元点群情報から抽出した各点までの距離と所定の閾値との差が予め定めた範囲内にある中心軸を選択する、
請求項１に記載のロボット。
【請求項３】
前記制御部は、
前記撮像画像から輝度が予め定めた閾値よりも大きい領域を検出し、検出した領域の形状を示す指標値が所定の範囲内である領域を前記第１の領域として決定する、
請求項２に記載のロボット。
【請求項４】
前記第２の領域の形状は矩形であって、
前記制御部は、
前記撮像画像から前記第２の領域の長手方向の長さよりも長い第３の領域を定め、
前記第３の領域に対応する第３の三次元点群情報を前記撮像画像から抽出し、
前記第３の三次元点群情報に含まれる点の前記中心軸の方向への分布に基づいて前記物体の前記中心軸の方向の長さを算出する、
請求項２又は請求項３に記載のロボット。
【請求項５】
撮像部が複数の物体を撮像した撮像画像を受け付ける画像受付部と、
ロボットを動作させる処理部と、を含み、
前記処理部は、
前記撮像画像を構成する画像の一部に対して三次元点群情報を生成し、前記ロボットに、前記画像の一部に含まれる物体を把持させる、
制御装置。
【請求項６】
複数の物体を撮像する撮像部と、
ロボットと、
前記ロボットを動作させる制御部と、を含み、
前記制御部は、
前記撮像部が撮像した撮像画像を構成する画像の一部に対して三次元点群情報を生成し、前記画像の一部に含まれる物体を前記ロボットに把持させる、
ロボットシステム。
【請求項７】
複数の物体を撮像することと、
前記複数の物体を撮像した撮像画像を構成する画像の一部に対して、三次元点群情報を生成することと、
生成した前記三次元点群情報を用いて、ロボットに前記画像の一部に含まれる物体を把持させることと、
を含む制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボットシステム、制御装置、及び制御方法に関する。
【背景技術】
【０００２】
ロボットが行う作業には、乱雑に積まれた対象物を一つ一つ取り出し、他の物体に組み付けを行う動作がある。このような動作には、例えば、ピンピッキングがあり、産業上重要なものと考えられている。対象物を取り出す際、乱雑に積まれた対象物をロボットアームに治具や専用の装置を用いて把持させ、一定の位置や姿勢をとるように整列し直すことがある。しかし、対象物の形状・大きさによって個々に異なる専用の治具や専用の装置を取り付ける必要があるため、経済的、時間的なコストが増大してしまう。
【０００３】
このような問題を解消又は軽減するために、プロジェクターやレーザー光発生器等の光源を用いて対象物に光線を照射し、対象物からの反射光を処理することで対象物の三次元情報を取得することが試みられてきた。取得した三次元情報は、対象物の位置や姿勢を求める処理に用いられるが汎用的ではない。また、その処理に費やされる時間が多い。
そこで、カメラのように、より汎用的な機器を用いて対象物の奥行情報を含む三次元情報を取得し、取得した三次元情報を用いて対象物の位置及び姿勢を取得することが試みられている。三次元情報は、例えば、対象物の形状を示す三次元点群から形成される画像データである。位置や姿勢を求める際に、所定の対象物のテンプレートと三次元点群とのマッチングを行うことがある。しかし三次元点群のマッチングは、二次元画像のマッチングと比較して、演算すべき次元数が増加する。つまり、マッチングの対象が二次元から三次元に増加することに応じて、対象物の位置や姿勢を求める際の次元数が三次元から６次元に増加する。同種の計算手法を用いる場合、計算量や計算時間が対象物の次元数に応じて指数関数的に増加する。そのために、三次元点群に対する位置や姿勢の推定に、依然として膨大な計算量や計算時間を要することがある。
【０００４】
この問題を解決するため、位置や姿勢の推定において、対象物が有する形状の特徴を用いる方法が提案されている。例えば、特許文献１には、同一形状の部品が乱雑に山積みされた部品群に対してピンピッキングを可能とする位置姿勢認識装置等を備えたピンピッキングシステムについて記載されている。当該ピンピッキングシステムでは、撮像画像における明領域が単独でかつ直線上に延在する直線状明領域を撮像画像から抽出する。より具体的には、閾値を用いて撮像画像から明領域を抽出し、抽出されたそれぞれの明領域から、明領域が交差することなく単独で直線状に延在する直線状明領域を抽出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１２８２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、工場等の作業現場で用いられる対象物の形状は個々に異なる。例えば、ネジ、ボルト等のように、その表面を平面が占める領域が少ない物体が数多く存在する。そのような物体は、プラスチックフィルムからなる袋に詰められて運搬、納入されることがあり、作業空間内において整列されていることは稀である。従って、そのような物体のいずれかを対象物としてロボットに操作させる際には、その位置と姿勢を個々に特定することが要求される。
【０００７】
これに対して、ばら積みされた物体群の三次元点群情報から、一つの物体と考えられる領域に属する点群を分離し、分離した点群が示す物体の形状から、その位置及び姿勢を示す位置姿勢情報を取得することも考えられる。一つの物体と考えられる領域を定める際、ばら積みされた物体群の三次元点群情報の全体を用いると、その領域を定めるための処理量や処理時間が多くなる。また、一つの物体と考えられる領域を誤判定すると、誤判定した領域に属する点群から物体の位置、姿勢が特定され、本来存在しない物体の位置、姿勢が特定されることがある。
【０００８】
そこで、本発明は、上記問題に鑑みてなされたものであり、対象物の位置や姿勢の推定において処理時間を低減し、検出精度を向上させることができるロボット、ロボットシステム、制御装置、及び制御方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
本発明の一態様は、ハンドと、前記ハンドを動作させる制御部と、を含み、前記制御部は、撮像部が撮像した撮像画像を構成する画像の一部に対して三次元点群情報を生成し、前記ハンドに前記画像の一部に含まれる物体を把持させる、ロボットである。
撮像画像全体に対して三次元点群処理を行うと演算処理が増えるが、上記構成により一部画像に対して三次元点群処理を行うことで演算処理を削減でき作業を高速に行うことができるようになる。
【００１０】
本発明の一態様は、上記のロボットであって、前記制御部は、前記撮像画像から前記物体を表す第１の領域と前記第１の領域を含み、所定の形状を有する第２の領域を定め、前記第１の領域に対応する第１の三次元点群情報と、前記第２の領域に対応する第２の三次元点群情報と、を前記撮像画像から生成し、前記第１の三次元点群情報に含まれる２点からなる複数の組のうち、２点間の線分の長さが所定の長さの範囲内となる組を選択し、選択した組をなす２点間の線分から予め定めた範囲内の点を前記第２の三次元点群情報から抽出し、前記第２の三次元点群情報から抽出した各点までの距離と所定の閾値との差が予め定めた範囲内にある中心軸を選択する。
この構成によれば、撮像画像に基づいて第１の領域に対応する第１の三次元点群情報と第２の領域に対応する第２の三次元点群情報が処理対象として定められるので処理量を低減することができる。また、長さが所定の範囲内である２点を結ぶ中心軸からの半径が所定の範囲内にある点から形成される対象物の画像を表す点が特定される。そのため、曲面を有する対象物として、形状が曲面を有する対象物の位置及び姿勢を推定することができる。また、本中心軸の推定に用いられる２点の組が選択される第１の三次元点群情報に係る第１の領域よりも広範な第２の領域に係る第２の三次元点群情報の点に基づいて中心軸が選択されるため、対象物の位置及び姿勢を推定する際に要する処理量を低減し、精度を損なわずに処理を高速化することができる。
【００１１】
本発明の一態様は、上記のロボットにおいて、前記制御部は、前記撮像画像から輝度が予め定めた閾値よりも大きい領域を検出し、検出した領域の形状を示す指標値が所定の範囲内である領域を前記第１の領域として決定する。
この構成によれば、被写体が明瞭に表されている領域が第１の領域として選択されるため、選択された第１の領域に表される物体を確実に把握することができる。
【００１２】
本発明の一態様は、上記のロボットにおいて、前記第２の領域の形状は矩形であって、前記制御部は、前記撮像画像から前記第２の領域の長手方向の長さよりも長い第３の領域を定め、前記第３の領域に対応する第３の三次元点群情報を前記撮像画像から抽出し、前記第３の三次元点群情報に含まれる点の前記中心軸の方向への分布に基づいて前記物体の前記中心軸の方向の長さを算出する。
この構成によれば、中心軸の方向の第３の三次元点群情報の点の分布を第２の三次元点群情報よりも広範に取得することができる。そのため、異なる長さの物体が混在するために、より長い物体が特定される場合でも、その物体を示す点が欠落せずにその中心軸の方向への長さを求めることができ、異なる長さの物体をそれぞれ識別することができる。
【００１３】
本発明の一態様は、撮像部が複数の物体を撮像した撮像画像を受け付ける画像受付部と、ロボットを動作させる処理部と、を含み、前記処理部は、前記撮像画像を構成する画像の一部に対して三次元点群情報を生成し、前記ロボットに、前記画像の一部に含まれる物体を把持させる、制御装置である。
撮像画像全体に対して三次元点群処理を行うと演算処理が増えるが、上記構成により一部画像に対して三次元点群処理を行うことで演算処理を削減でき作業を高速に行うことができるようになる。
【００１４】
本発明の一態様は、複数の物体を撮像する撮像部と、ロボットと、前記ロボットを動作させる制御部と、を含み、前記制御部は、前記撮像部が撮像した撮像画像を構成する画像の一部に対して三次元点群情報を生成し、前記画像の一部に含まれる物体を前記ロボットに把持させる、ロボットシステムである。
撮像画像全体に対して三次元点群処理を行うと演算処理が増えるが、上記構成により一部画像に対して三次元点群処理を行うことで演算処理を削減でき作業を高速に行うことができるようになる。
【００１５】
本発明の一態様は、複数の物体を撮像することと、前記複数の物体を撮像した撮像画像を構成する画像の一部に対して、三次元点群情報を生成することと、生成した前記三次元点群情報を用いて、ロボットに前記画像の一部に含まれる物体を把持させることと、を含む制御方法である。
撮像画像全体に対して三次元点群処理を行うと演算処理が増えるが、上記構成により一部画像に対して三次元点群処理を行うことで演算処理を削減でき作業を高速に行うことができるようになる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るロボットシステムの概略斜視図である。
【図２】本実施形態に係る制御部の構成を示す概略ブロック図である。
【図３】二次元画像の一例を示す図である。
【図４】対象物の形状を近似するモデルの一例を示す図である。
【図５】注目領域設定部が注目領域を定める処理を示すフローチャートである。
【図６】二値化画像の一例を示す図である。
【図７】膨張・収縮処理の一例を示す図である。
【図８】選別された明領域の一例を示す図である。
【図９】注目領域設定部で生成された生成されたヒストグラムの一例である。
【図１０】注目領域の例を示す図である。
【図１１】選択された点対の例を示す図である。
【図１２】線分に属するサンプル点の例を示す図である。
【図１３】選択された中心軸の一例を示す断面図である。
【図１４】中心軸とサンプル点の一例を示す斜視図である。
【図１５】空間データ生成部で生成されたヒストグラムの一例である。
【図１６】本実施形態に係るロボット制御を示すフローチャートである。
【図１７】本実施形態の変形例に係るロボットシステムの構成を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
図１は、本実施形態に係るロボットシステム１の概略斜視図である。
図１に示すように、ロボットシステム１は、撮像装置１０、制御装置２０及びロボット３０を備える。なお、図１における部品や構造等の縮尺は、図を明瞭なものとするために実際のものとは異なっていることがある。
【００１８】
撮像装置１０は、被写体の三次元の形状を撮像し、撮像した三次元の形状を示す三次元画像データを生成する。生成された三次元画像データは、例えば、その三次元の形状を所定の解像度でサンプリングした複数のサンプル点毎の位置情報で形成されるデータである。各サンプル点は、被写体の表面をサンプリングした三次元のユークリッド空間内の直交座標（Ｘ，Ｙ，Ｚ）を示す。つまり、生成された画像データは、複数のサンプル点データを含む点群データである。サンプル点データは、被写体の表面をサンプリングしたサンプル点毎の位置を示すデータである。また、個々のサンプル点データには、その点での明るさを示す輝度値が含まれていてもよい。サンプル点は、二次元の画像データにおける画素に相当し、複数のサンプル点で張られる面で被写体の表面が表される。画像データが示す画像は点群画像とも呼ばれる。
なお、図１に示す例では、Ｘ方向は左方、Ｙ方向は奥行方向、Ｚ方向は下方である。
【００１９】
撮像装置１０は、例えば、形状検査用三次元センサーである。撮像装置１０は、被写体として、例えば、ロボット３０による操作対象となる物体（以下、対象物という）Ｗｋが積み重ねられた領域を光学的に観察できる位置に設置されている。対象物Ｗｋは、後述するように、その表面に曲面を有する円柱物体である。作業机Ｔｂの表面は、水平面に対して平行であり複数個の対象物Ｗｋが乱雑に積み重ねられている。
撮像装置１０は、その光学軸が、例えば、水平面に対して垂直（下方）に向くように設置されている。撮像装置１０は、撮像領域Ｉｒに含まれる複数の対象物Ｗｋを表す１フレームの三次元の画像を撮像する。撮像領域Ｉｒは、撮像装置１０がその領域内に置かれた被写体の画像を撮像することができる予め定めた大きさを有する三次元の領域である。従って、撮像により得られた三次元の画像（三次元画像）は、複数の対象物Ｗｋの三次元形状を示す画像であり、複数のサンプル点で形成されるサンプル点データで表される。サンプル点は、その輝度が高いほど高密度で分布する。
撮像装置１０は、撮像により得られた三次元画像を示すサンプル点データを三次元画像データとして制御装置２０に出力する。
【００２０】
撮像装置１０は、さらに撮像領域Ｉｒに含まれる複数の対象物Ｗｋを表す１フレームの二次元の画像（二次元画像）を撮像する。二次元画像は、上述の三次元画像を撮像装置１０の光学軸に交差する平面に射影して形成された画像に相当する。つまり、二次元画像は、三次元画像と同一の撮像領域Ｉｒ内の同一の被写体を表し、それぞれの撮像領域が対応付けられる。撮像装置１０は、撮像した二次元画像を示す二次元画像データを制御装置２０に出力する。以下の説明では、二次元画像データと三次元画像データを、単に「画像データ」と総称する。
【００２１】
制御装置２０は、撮像装置１０から入力された画像データに基づいてロボット３０の動作を制御する。制御装置２０は、画像データ取得部（画像受付部）２１、及び制御部（処理部）２２を含んで構成される。
画像データ取得部２１には、撮像装置１０から画像データが入力され、入力された画像データを制御部２２に出力する。画像データ取得部２１は、例えば、データ入力インタフェースである。
制御部２２は、入力された三次元画像データのうち三次元の撮像画像の一部である一部画像を示す点群データ（点群情報）を生成し、生成した点群データが示す一部画像に示された１つの対象物Ｗｋをロボット３０に把持させる。ここで、制御部２２は、入力された二次元画像データが示す１つの対象物Ｗｋの一部の形状を示す領域を注目領域として定める。制御部２２は、定めた注目領域内の三次元の画像を示す点群データに基づいて１つの対象物Ｗｋの位置及び配置されている方向（姿勢）を算出する。対象物Ｗｋの位置及び方向を算出する際、制御部２２は、例えば、対象物Ｗｋの形状を円柱とみなし、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  Ｓａｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）法を応用して円柱の中心軸の方向と長さを算出する。ここで、制御部２２は、算出した中心軸の中点の座標、方向をそれぞれ対象物Ｗｋの位置、姿勢と定める。以下の説明では、位置、姿勢、又は位置ならびに姿勢を空間状態と総称することがある。また、制御部２２は、対象物Ｗｋの長さを定めてもよい。
【００２２】
制御部２２は、算出した対象物Ｗｋの空間状態に基づいてロボット３０の動作を制御する。対象物Ｗｋの長さを定めた場合には、さらにその長さに基づいてロボット３０の動作を制御してもよい。
制御部２２は、例えば、ロボット３０のハンド部３０ｃ（後述）を算出した位置に近づけ、算出した姿勢に交差する方向に挟み込むことで対象物Ｗｋを把持させる。制御部２２には、ハンド部３０ｃで検出された力を示す負荷信号がロボット３０から入力され、入力された負荷信号に基づいてハンド部３０ｃの動作を制御する制御信号をロボット３０に出力する。制御部２２の構成については、後述する。
【００２３】
ロボット３０は、例えば、６軸の垂直多関節ロボットであり、支持台３０ａ、アーム部３０ｂ、及びハンド部３０ｃを含んで構成される。ロボット３０は、支持台３０ａとアーム部３０ｂとハンド部３０ｃとの連係した動作によって６軸の自由度を有し、ハンド部３０ｃが把持する対象物Ｗｋの位置および姿勢を自在に変更することができる。また、ロボット３０は、制御部２２が行う制御によって、アーム部３０ｂとハンド部３０ｃのいずれか又はそれらの組み合わせを動作させる。ハンド部３０ｃは、２個の先端部を備え、２個の先端部は各々の長手方向が互いに向かい合うように配置される。
ロボット３０の自由度は６軸に限られず、７軸以上、又は５軸以下であってもよい。また、支持台３０ａは、壁や天井等、床面に対して固定された場所に設置されてもよい。
【００２４】
ロボット３０は、ハンド部３０ｃに加わる力とモーメントを、予め定めた時間間隔（例えば、１ｍｓ）で検出する力センサー（図示せず）を備え、検出した力及びモーメントを示す負荷信号を制御装置２０に出力する。ロボット３０は、エンコーダー（図示せず）を備える。エンコーダーは、ロボット３０の各関節の角度を検出し、検出した各関節の角度を制御装置２０に出力する。
【００２５】
次に、本実施形態に係る制御部２２の構成について説明する。
図２は、本実施形態に係る制御部２２の構成を示す概略ブロック図である。
制御部２２は、注目領域設定部２２２、第１中心軸推定部２２４、点群抽出部２２５、第２中心軸推定部２２６、中心軸選択部２２７、空間データ生成部２２８、及び制御信号生成部２２９を含んで構成される。
【００２６】
注目領域設定部２２２には、画像データ取得部２１から画像データが入力される。注目領域設定部２２２は、入力された二次元画像データが示す二次元画像から、対象物を示す注目領域をＮｉ（Ｎｉは、２又は２よりも大きい整数、例えば、３）個定める。注目領域とは、第１中心軸推定部２２４、点群抽出部２２５、第２中心軸推定部２２６、中心軸選択部２２７、空間データ生成部２２８で一度に処理の対象とする二次元の領域である。即ち、注目領域に対応する三次元の領域は、撮像領域の一部である一部画像に相当する。以下では、主にＮｉが３である場合を例にとって説明する。
【００２７】
３個の注目領域は、それぞれ同一の対象物を示す領域を含み、それぞれ領域１、２、３と呼ぶ。領域２は、領域１を含む領域（例えば、領域１に外接）であって、予め定めた形状（例えば、矩形）を有する領域である。領域３は、領域２を含む領域（例えば、領域２よりも長手方向の長さが予め定めた長さだけ長い領域）であって、予め定めた形状（例えば、矩形）を有する領域である。注目領域設定部２２２は、二次元の領域である領域１、２、３にそれぞれ対応する三次元の領域に含まれる座標を示すサンプル点を画像データから抽出して点群データ（三次元点群情報）１、２、３を生成する。注目領域設定部２２２は、生成した点群データ１を第１中心軸推定部２２４に出力し、点群データ２を点群抽出部２２５に出力し、点群データ３を空間データ生成部に出力する。なお、二次元の領域である領域１、２、３に対応する注目領域の一部である三次元の領域を、それぞれ一部領域１、２、３と呼ぶ。従って、一部領域１、２、３は、それぞれ領域１、２、３に射影される領域である。言い換えれば、点群データ（三次元点群情報）は、一部領域１、２、３に分布したサンプル点の集合を示し、それぞれのサンプル点の集合が主に１つの対象物の形状の少なくとも一部を示す又はその可能性があるデータである。
上述したように、注目領域設定部２２２は、点群データ１、２、３を生成する際に、三次元画像データの解析を行わずに、対応する二次元画像データから選択した領域１、２、３を選択するので、処理量を著しく低減することができる。
注目領域設定部２２２が注目領域を定める処理については、後述する。
【００２８】
第１中心軸推定部２２４は、注目領域設定部２２２から入力された点群データ１が示すサンプル点のうちの２点からなる組（点対、ｐｏｉｎｔ  ｐａｉｒ）のうち所定の条件を満足する組を選択する。第１中心軸推定部２２４は、選択した組を形成する２点間の線分を中心軸の候補（中心軸候補）と定める。
ここで、第１中心軸推定部２２４は、点群データ１が示すサンプル点から２点を抽出し、抽出した２点間の距離Ｌが、長さｌから予め定めた範囲内、例えば、０．８ｌから１．０ｌまでの間である点対を、Ｎｅ（Ｎｅは、予め定めた個数）個選択する。これにより、対象物の表面上の一点と底面上の一点とからなる点対が抽出され、それ以外の点対が除外される。
Ｎｅは、例えば、対象物がとりうるサンプル点の総数Ｍから選択された任意の２点が、一部領域１内に含まれない確率が、予め定めた有意水準ｐ（例えば、０．０５）よりも低くなる点対の数のうちの最小値である。Ｎｅは、式（１）で与えられる。
【００２９】
【数１】
2015147256.tif 000003
【００３０】
式（１）において、Ｎは、一部領域１内に存在しうるサンプル点の最大数である。つまり、Ｎは、撮像装置１０で取得される画像データに含まれるサンプル点の空間分解能に依存する。このように、Ｎｅを定めておくことで、対象物を確実に検出し、かつ、処理量を低減することができる。
第１中心軸推定部２２４は、選択した点対のそれぞれを形成する２点間の直線を示す一次関数の係数（軸方程式）を算出する。算出した係数は、その直線の傾きとＸ、Ｙ、Ｚ軸の切片を示す。
【００３１】
第１中心軸推定部２２４は、算出した係数から導かれるＸ−Ｙ平面に対する傾きθｚが予め定めた傾きの範囲内の点対を選択し、その範囲外の点対を除外する。予め定めた傾きの範囲は、例えば、傾きの閾値θｍａｘよりも小さい傾きである。θｍａｘは、例えば、ハンド部３０ｃを構成するジグ等の部材の形状や配置のもとで対象物を把持することができる傾きθｚの最大値である。これにより、ハンド部３０ｃが対象物を把持することができない対象物の画像が処理対象から排除される。また、θｚが大きくなるほど、直線の方向が撮像装置１０の光学軸の方向に近似するため、この直線の周りの曲面を表すサンプル点の数が少なくなる。これは、この曲面をＸ−Ｙ平面に射影したときの面積が小さくなるためである。このような曲面が処理対象から除外されるので、無用な処理を防止することができる。
第１中心軸推定部２２４は、選択した点対を示す選択点対情報を点群抽出部２２５に出力する。
【００３２】
点群抽出部２２５には、第１中心軸推定部２２４から選択点対情報が入力され、注目領域設定部２２２から点群データ２が入力される。
点群抽出部２２５は、点群データ２が示すサンプル点から選択点対情報が示す点対のそれぞれを形成する２点を結ぶ線分から所定距離内のサンプル点を線分に属する点として抽出し、それ以外のサンプル点を除外する。所定距離ρは、例えば、対象物の半径ｒよりも大きい値であって、隣接する対象物との平均的な距離よりも小さい値、例えば、２ｒである。これにより、１個の対象物の表面を表すサンプル点が一部領域１よりも広範な一部領域２から確実に取得され、その他の対象物の表面を表すサンプル点が極力除外される。そして、点群抽出部２２５は、抽出したサンプル点の数Ｎｃを計数する（投票）。
点群抽出部２２５は、抽出したサンプル点の数Ｎｃが、所定の個数の範囲内にある点対を選択し、所定の個数の範囲外の点対を排除する。所定の個数の範囲とは、例えば、式（２）に示す範囲である。
【００３３】
【数２】
2015147256.tif 000004
【００３４】
式（２）において、Ｒは、撮像装置１０の信頼性に応じた設定値を示す。Ｒが大きいほど信頼性が高いことを示し、Ｒが小さいほど信頼性が低いことを示す。Ｒは、例えば、０．７から０．９５までの実数である。なお、Ｒの最大値、最小値は、それぞれ１、０である。Ｎｍａｘは、一部領域２において対象物がとりうるサンプル点数の最大値である。対象物の形状が円柱である場合には、中心軸が撮像装置１０の光学軸の方向と垂直であって、対象物の全体が撮像領域Ｉｒに含まれ、かつ撮像装置１０からの距離が最も短くなるように配置されたとき、撮影された画像データを形成するサンプル点数が最大となる。θｍａｘは、上述した傾きの閾値である。これにより、その側面が撮像装置１０に対して十分に露出されている対象物を表すサンプル点を所定距離ρ内に含む線分が選択される。この選択された線分により、その線分で結ばれる２点からなる点対が特定される。
点群抽出部２２５は、抽出したサンプル点を示す抽出点群情報を選択した点対毎に第２中心軸推定部２２６に出力する。
【００３５】
第２中心軸推定部２２６は、点群抽出部２２５から入力された抽出点群情報が示すサンプル点で張られる表面（曲面）の中心軸候補を点対毎に推定する。第２中心軸推定部２２６は、中心軸候補を推定する際、例えば、逐次二次計画法（ＳＱＰ：Ｓｅｑｕｅｎｔｉａｌ  Ｑｕａｄｒａｔｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ  ｍｅｔｈｏｄ）を用いることができる。第２中心軸推定部２２６は、推定した中心軸候補の係数からなる中心軸情報を生成し、生成した中心軸情報と抽出点群情報とを点対毎に対応付けて中心軸選択部２２７に出力する。
【００３６】
中心軸選択部２２７は、第２中心軸推定部２２６から中心軸情報と抽出点群情報が点対毎に入力される。中心軸選択部２２７は、中心軸候補の係数から導かれるＸＹ平面に対する傾きθｚが予め定めた傾きの範囲内の中心軸を選択し、その範囲外の中心軸を除外する。予め定めた傾きの範囲は、第１中心軸推定部２２４で点対を選択した傾きの範囲、つまり、傾きの閾値θｍａｘよりも小さい傾きである。
中心軸選択部２２７は、選択した中心軸のそれぞれについて対応する抽出点群情報が示すサンプル点に基づいて、例えば、式（３）を用いて推定誤差ｅｒｒを算出し、算出した推定誤差ｅｒｒが予め定めた誤差よりも小さい中心軸を選択する。選択された中心軸が複数個ある場合には、中心軸選択部２２７は、推定誤差ｅｒｒが最も小さい中心軸を選択する。
【００３７】
【数３】
2015147256.tif 000005
【００３８】
式（３）において、ｎは、中心軸に属するサンプル点の数、つまり、中心軸から所定距離ρ内に含まれるサンプル点の数を示す。ｉは、各サンプル点を区別するインデックスである。｜…｜は、…の絶対値である。ｄｉは、サンプル点ｉと中心軸との間の距離を示す。即ち、推定誤差ｅｒｒは、各サンプル点における中心軸からの距離ｄｉと半径ｒとの間の誤差における絶対値の平均を示す。
中心軸選択部２２７は、選択した中心軸に係る中心軸情報を空間データ生成部２２８に出力する。
【００３９】
空間データ生成部２２８には、中心軸選択部２２７から中心軸情報が入力され、注目領域設定部２２２から点群データ３が入力される。空間データ生成部２２８は、点群データ３が示すサンプル点と中心軸情報に基づいて対象物の位置、姿勢を算出する。
ここで、空間データ生成部２２８は、中心軸情報が示す中心軸の定数に基づいて中心軸の方向を、対象物の姿勢として特定する。また、空間データ生成部２２８は、点群データ３が示すサンプル点の座標の代表点、例えば重心点を対象物の位置として算出する。但し、サンプル点の分布は、一面に偏っていることがあるので、それらの重心点が対象物の位置を代表するとは限らない。そこで、空間データ生成部２２８は、算出した重心点を通る中心軸に垂直な面と、その中心軸との交点を対象物の位置として算出してもよい。
【００４０】
また、空間データ生成部２２８は、対象物の長さを算出してもよい。ここで、空間データ生成部２２８は、例えば、中心軸情報が示す中心軸の定数から中心軸の方向を特定し、点群データ３が示すサンプル点の特定した中心軸の方向の座標（中心軸座標）に対する分布を求める。その分布は、中心軸座標を所定の幅で区分した区間毎のサンプル点の個数からなるヒストグラムとして示される。
そして、空間データ生成部２２８は、サンプル点の個数が予め定めた第１の閾値よりも多い区間が空間的に連続する領域を対象物の領域として特定し、対象物の領域の長さを対象物の長さとして算出する。第１の閾値は、０よりも有意に大きい微小な値である。点群データ３が示すサンプル点の中心軸座標に対する分布を用いて長さを特定することで、長さが異なる対象物が撮像領域Ｉｒに混在する場合でも所定の長さを有する対象物を特定することができる。なお、空間データ生成部２２８は、対象物の領域の重心点、又は、その重心点を通る中心軸に垂直な面と、その中心軸との交点を対象物の位置として算出してもよい。
【００４１】
また、対象物に、その形状が円柱に近似できない部分や、その部分があると対象物全体として円柱として近似できなくなる部分（非円柱領域、例えば、ボルトの頭部）を含む場合には、空間データ生成部２２８は、非円柱領域の位置を算出してもよい。具体的には、空間データ生成部２２８は、サンプル点の個数が予め定めた第２の個数の閾値よりも大きい区間からなる領域を非円柱領域として特定し、特定した非円柱領域の重心点をその領域の位置として算出する。第２の個数の閾値は、例えば、半径ｒの円周上に分布可能なサンプル点の個数よりも大きい値である。これにより、その表面が半径ｒよりも大きい領域が非円柱領域として特定される。なお、空間データ生成部２２８は、非円柱領域の中心軸座標と対象物の中心軸座標とを比較して、対象物の方向の正負を区別してもよい。
【００４２】
なお、算出された対象物の位置及び姿勢が、撮像装置１０を基準とするカメラ座標系に基づく座標値及び方位角で示されている場合には、空間データ生成部２２８は、算出した座標値及び方位角を、ロボット３０を基準とするロボット座標系に基づく座標値及び方位角に変換してもよい。そのために、空間データ生成部２２８には、カメラ座標系からロボット座標系に変換する変換式を予め設定しておく。
空間データ生成部２２８は、算出した対象物の位置、姿勢、及び長さを示す空間データを生成する。空間データ生成部２２８は、生成した空間データを制御信号生成部２２９に出力する。
【００４３】
制御信号生成部２２９は、ロボット３０から入力された負荷信号と空間データ生成部２２８から入力された空間データに基づいて、ロボット３０の動作を制御するための制御信号を生成する。制御信号生成部２２９は、生成した制御信号をロボット３０に出力する。これにより、ロボット３０の動作が制御される。
制御信号生成部２２９は、例えば、ロボット３０のハンド部３０ｃを作業開始位置に移動させ、ハンド部３０ｃが備える２つの先端部が互いに向かい合う方向を作業開始方向に回転させるための制御信号を生成及び出力する。作業開始位置は、例えば、入力された空間データが示す位置から予め定めた間隔だけ離れた位置である。作業開始方向は、例えば、空間データが示す姿勢と同一の方向である。また、制御信号生成部２２９は、ロボット３０から入力された負荷信号が示す各関節の角度に基づいてハンド部３０ｃの位置と方向を算出する。制御信号生成部２２９は、例えば、算出した位置と目標位置との間の距離、及び算出した方向と目標方向との差分が、それぞれ時間経過に伴って減少するようにロボット３０の各構成の動作を制御するための制御信号を生成及び出力してもよい。所定の作業開始前においては、目標位置、目標方向として、予め定めた作業開始位置、作業開始方向がそれぞれ用いられてもよい。所定の作業中においては、目標位置、目標方向として、例えば、空間データが示す位置、姿勢がそれぞれ用いられてもよい。
【００４４】
また、制御信号生成部２２９は、入力された負荷情報が示す力に基づいて２つの先端部の位置及び方向を制御するための制御信号を生成及び出力してもよい。例えば、２個の先端部が互いに離間しているとき、制御信号生成部２２９は、ロボット３０に対して２個の先端部間の距離を互いに狭めて対象物を把持させる。ここで、制御信号生成部２２９は、先端部で検知された力が予め定めた目標値となるように、先端部が対象物を挟む力を制御する。対象物が把持されているとき、制御信号生成部２２９は、先端部に対して対象物を挟む力を解除させ、２個の先端部間の距離を互いに広げるように制御することで対象物を解放させることができる。
【００４５】
（二次元画像の一例）
次に、撮像装置１０で得られる二次元画像の一例について説明する。
図３は、二次元画像の一例を示す図である。
図３に示す二次元画像は、所定の撮像領域Ｉｒ内の被写体の画像である。この二次元画像は、複数の乱雑に積み重ねられた対象物の表面を表し、複数の画素で形成される。二次元画像を示す二次元画像データは、画素毎の輝度値を示す。図３において、濃く表されている画素ほど輝度値が低く、薄く表されている画素ほど輝度値が高い。
【００４６】
（対象物の形状のモデル）
次に、対象物の形状を近似するモデルについて説明する。
図４は、対象物の形状を近似するモデルの一例を示す図である。
対象物Ｗｋは、少なくともその一部の形状が円柱に近似される円柱物体である。これにより、対象物Ｗｋの特性長として長さｌ、半径ｒ、又はその両者が用いられうる。図４に示す対象物Ｗｋは、半径ｒに比べて長さｌが格段に大きい細長の形状を有するため、主に長さｌが特性長として用いられる。長さｌ、半径ｒは、上述した制御部２２において既知のパラメータとして予め設定させておいてもよい。
また、対象物Ｗｋは、半径がｒよりも大きい頭部を有する。頭部は、長さｌ、半径ｒの円柱の形状を近似することができない非円柱領域に相当する。
【００４７】
（注目領域を定める処理）
次に、注目領域設定部２２２が注目領域を定める処理について説明する。
図５は、注目領域設定部２２２が注目領域を定める処理を示すフローチャートである。
（ステップＳ１０１）注目領域設定部２２２は、画像データ取得部２１から入力された二次元画像データについて二値化処理を行って二値化データを生成する。ここで、注目領域設定部２２２は、画素毎に信号値を１又は０と定め、画素毎の信号値を示す二値化データを生成する。上述したように、注目領域設定部２２２は、輝度値が所定の輝度値の閾値を超える画素について信号値を１と定め、輝度値が所定の輝度値の閾値以下の画素について信号値を０と定める。
以下の説明では、信号値が１である画素が空間的に連続して形成される領域を明領域、信号値が０である画素が空間的に連続して形成される領域を暗領域と呼ぶ。つまり、明領域は、対象物の形状の全部又は一部が表されている領域である。撮像領域Ｉｒに複数の対象物が含まれる場合、１個の二値化データには複数の明領域が表される。その後、ステップＳ１０２に進む。
【００４８】
（ステップＳ１０２）注目領域設定部２２２は、生成した二値化データについて膨張処理（ｅｘｐａｎｓｉｏｎ）と収縮処理（ｃｏｎｔｒａｃｔｉｏｎ）とを行う。膨張処理と収縮処理とを併せて膨張・収縮処理と呼ぶ。膨張処理とは、暗領域のうち明領域との境界にある画素の信号値を１と定めることによって１画素ずつ明領域を膨張する処理である。収縮処理とは、明領域のうち暗領域との境界にある画素の信号値を０と定めることによって１画素ずつ明領域を収縮する処理である。これにより、対象物の輝度の差異に基づいてサンプル点の密度の差異により二値化データに現れた明領域と暗領域の境界の凸凹が平滑化される。注目領域設定部２２２は、収縮処理を膨張処理よりも先に行ってもよいし、後に行ってもよい。また、注目領域設定部２２２は、膨張・収縮処理を予め定めた回数（例えば、３回）繰り返してもよい。これにより、明領域と暗領域の境界の平滑化の度合いを高くすることができる。その後、ステップＳ１０３に進む。
（ステップＳ１０３）注目領域設定部２２２は、膨張・収縮処理を行った二値化データが示す明領域のそれぞれを特定する（ラべリング）。その後、ステップＳ１０４に進む。
【００４９】
（ステップＳ１０４）注目領域設定部２２２は、特定した明領域のそれぞれについてその大きさの指標値（例えば、面積、長さ）や、その形状を示す指標値（例えば、楕円偏心率）を算出する。注目領域設定部２２２は、算出した大きさの指標値や形状の指標値に基づいて、その明領域を領域１の候補として選択するか否かを判定する（選別）。
長さは、例えば、注目する明領域を形成する画素から任意に選択された２つの画素間の距離のうち最も大きい距離である。楕円偏心率は、注目する明領域に内接又は外接する楕円の焦点間距離の長軸に対する比である。楕円偏心率は、離心率と呼ばれることもある。
注目領域設定部２２２は、例えば、算出した大きさの指標値が、対象物の大きさの指標値を基準とした所定の範囲内である場合、その明領域を領域１の候補として選択し、算出した大きさの指標値がその所定の範囲外である場合、その明領域を領域１の候補から棄却する。
【００５０】
大きさの指標値が面積である場合には、所定の範囲は、例えば、その対象物を軸方向に垂直な方向に射影した領域の面積Ｓの０．６−１．０倍である。大きさの指標値が長さである場合には、所定の範囲は、例えば、長さｌの０．８−１．０倍である。注目領域設定部２２２は、例えば、算出した形状の指標値が、対象物の形状の指標値を基準とした所定の範囲内である場合、その明領域を領域１の候補として選択し、算出した大きさの指標値がその所定の範囲外である場合、その明領域を領域１の候補から棄却する。
形状の指標値が楕円偏心率である場合には、所定の範囲は、例えば、その対象物の軸方向に射影した領域の楕円偏心率ｅの０．８−１．２倍である。対象物の形状のうち、非円柱領域が存在する場合であっても、その部分が含まれた領域に基づいて形状の指標値が算出されてもよい。これにより、その対象物の形状全体の領域（例えば、ボルトの頭部を含んだ領域）に近似した注目領域が選択される。
なお、注目領域設定部２２２は、面積、大きさ、楕円偏心率を算出する場合には、面積、大きさ、楕円偏心率の順序で算出し、算出直後にその明領域を領域１の候補として選択するか否かを判定してもよい。この順序で処理量が少なくなるため、二次元データ全体の処理量を減らすことができる。その後、ステップＳ１０５に進む。
【００５１】
（ステップＳ１０５）対象物が非円柱領域を含む場合には、注目領域設定部２２２は、選択された明領域のそれぞれから非円柱領域に対応する領域を削除する（非円柱領域削除）。ここで、注目領域設定部２２２は、選択された明領域（二次元）について、例えば、ＲＡＮＳＡＣ法、最小二乗法等、その他の回帰分析法を用いて、この明領域に最も近似する直線を算出する。注目領域設定部２２２は、この明領域を形成する画素数を、算出した直線の方向の座標毎に計数する。計数された画素数の、その方向に対する分布によりヒストグラムが形成される。そして、注目領域設定部２２２は、計数した画素数が予め定めた画素数の閾値よりも多い領域を非円柱領域として明領域から削除する。このステップで削除される非円柱領域は、注目する対象物の円柱に近似される部分（例えば、ボルトの軸部分）以外の領域である。つまり、削除される非円柱領域は、注目する対象物の一部（例えば、ボルトの頭部）に限られず、他の対象物の一部が含まれることがある。その後、ステップＳ１０６に進む。
【００５２】
（ステップＳ１０６）注目領域設定部２２２は、非円柱領域が削除された明領域を領域１と定める。ここで、注目領域設定部２２２は、非円柱領域が削除された明領域のうちその領域の面積が最も大きいものからＮｓ（Ｎｓは、１又は１よりも大きい予め定めた整数）番目に大きい領域を、それぞれ領域１と定めてもよい。その後、ステップＳ１０７に進む。
（ステップＳ１０７）注目領域設定部２２２は、領域１に外接する所定の形状の領域を領域２と定める。その後、ステップＳ１０８に進む。
（ステップＳ１０８）注目領域設定部２２２は、所定の形状の領域であって、領域２を含み、領域２よりも長手方向の長さが予め定めた長さだけ長い領域を領域３として定める。領域３の長さを領域２よりも長く定めるのは、長さが異なる対象物を識別することと、非円柱領域（例えば、ボルトの頭部）を含む対象物の全体を検出するためである。予め定めた長さは、例えば、長さｌの０．４〜１．０倍であればよい。又は、領域３の長手方向の長さは、長さｌの１．０〜１．４倍であればよい。その後、図５に示す処理を終了する。
【００５３】
（二値化画像の一例）
次に、二次元画像を二値化して得られる二値化画像の一例について説明する。
図６は、二値化画像の一例を示す図である。
図６に示す二値化画像は、注目領域設定部２２２が注目領域を定める際に、図３に示す二次元画像の二次元画像データについて二値化処理を行って生成された二値化データが示す画像である。図６に示す例では、信号値が１である領域が明るく示され、信号値が０である領域が暗く示されている。明るく示された部分が対象物を示す。
なお、二次元画像を撮像する際、対象物を示す領域の輝度が、対象物の検出に要する輝度値の閾値を上回るように光源（例えば、液晶プロジェクター）から白色光を撮像領域Ｉｒに照射してもよい。
【００５４】
次に、注目領域設定部２２２が行う膨張・収縮処理（図５、ステップＳ１０２）の一例について説明する。
図７は、膨張・収縮処理の一例を示す図である。
図７（Ａ）は、元の二値化画像の一部を拡大した図である。図７（Ｂ）は、図７（Ａ）に示す二値化画像に対して膨張処理を行って得られる二値化画像である。図７（Ｃ）は、図７（Ｂ）に示す二値化画像に対して収縮処理を行って得られる二値化画像である。
図７（Ａ）−（Ｃ）のそれぞれにおいて、四角形のそれぞれは画素を示す。黒塗りの四角形、白抜きの四角形は、それぞれ信号値が１である画素、信号値が０である画素を示す。黒塗りの四角形が空間的に連続した領域が暗領域を示し、白塗りの四角形が空間的に連続した領域が明領域を示す。
図７（Ｂ）のうち、横縞で塗りつぶされた四角形は、膨張処理により新たに信号値が１と定められた画素を示す。これらの画素が新たに暗領域から明領域に加えられる。これにより、図７（Ａ）において信号値が０である画素のうち孤立したものや、明領域に突出したものが除去される。
図７（Ｃ）のうち、網掛けの四角形は、収縮処理により新たに信号値が０と定められた画素を示す。これらの画素が新たに明領域から暗領域に加えられる。図７（Ａ）において信号値が０である画素のうち孤立したものや、暗領域に突出した画素の信号値は１に戻らないので、明領域と暗領域の間の境界が平滑化される。
【００５５】
次に、注目領域設定部２２２が行う非円柱領域除去（図５、ステップＳ１０５）の一例について説明する。
図８は、選別された明領域の一例を示す図である。
図８に示す明領域は、注目領域設定部２２２が選別した（図５、ステップＳ１０４）明領域の一例である。直線Ａ１は、注目領域設定部２２２がこの明領域について算出した直線であり、この明領域の長手方向に最も近似する直線である。直線Ａ２は、直線Ａ１に直交する直線である。
【００５６】
図９は、注目領域設定部２２２で生成されたヒストグラムの一例である。
図９において縦軸、横軸は、それぞれ度数、直線Ａ１方向の座標を示す。度数は、注目領域設定部２２２が計数した図８の明領域を形成する画素の数（画素数）を示す。ｎｔｈは、例えば、対象物がボルトである場合において軸部以外の部位である非円柱領域（頭部、他の対象物の一部、等）であるか否かを判別する際の画素数の閾値である。この例では、注目領域設定部２２２は、画素数が閾値ｎｔｈよりも多い区間Ｂ内の直線Ａ１方向の座標値を有する領域を非円柱領域として判定し、判定した非円柱領域を明領域から削除する。なお、注目領域設定部２２２は、直線Ａ１方向の座標毎に画素数を計数する代わりに、直線Ａ２方向に明領域を横断する長さを検出してもよい。
【００５７】
（注目領域の例）
図１０は、注目領域の例を示す図である。
図１０に示す領域１は、図８に示す明領域から非円柱領域が除去された領域である。領域１は、対象物が二次元平面に射影された矩形の領域であり、その長手方向が特定される。このことは、領域１に対応する点群データ１には円柱物体の中心軸を推定するためのサンプル点が含まれることを示す。
領域２は、領域１に外接する領域であり、領域２に対応する点群データ２には点群データ１よりもより広い三次元領域に分布したサンプル点が含まれる。点群データ１、２ともに含まれるサンプル点は円柱物体の表面の全領域を必ずしも示すものではないが、点群データ２が示すより広い領域に分布したサンプル点が最終的に中心軸を定める際に用いられることで、中心軸の推定精度を向上させることができる。ここで、点群データ２は、上述したように点群抽出部２２５でサンプル点の個数を計数（投票）する際や、第２中心軸推定部２２６で中心軸の候補を定める際に用いられる。
領域３は、領域２よりも長手方向の長さが長い領域であり、領域３に対応する点群データ３には点群データ２よりも推定した中心軸方向に広い三次元領域に分布したサンプル点が含まれる。これにより、点群データ３が示すサンプル点の中心軸座標に対する分布を用いて長さを特定することができ、長さが異なる対象物が撮像領域Ｉｒに混在する場合でも所定の長さを有する対象物を特定することができる。
【００５８】
（点対の例）
次に、第１中心軸推定部２２４で選択された点対の例について説明する。
図１１は、選択された点対の例を示す図である。
図１１（Ａ）、（Ｂ）は、ＸＹ平面上、ＸＺ平面上にそれぞれ射影された注目領域におけるサンプル点の分布の一例を示す。それぞれの黒丸は、サンプル点を示す。Ｐ１１、Ｐ１２は、選択された点対を形成する２個のサンプル点の組の一例であり、Ｅ１は、Ｐ１１、Ｐ１２間を結ぶ線分である。上述したように、Ｐ１１、Ｐ１２間の距離Ｌは、対象物の長さｌから予め定めた範囲にある。
【００５９】
図１１（Ｂ）に示された一点破線は、Ｚ座標が一定であるＸＹ平面を示す。傾きθｚは、Ｐ１１、Ｐ１２間の線分Ｅ１とＸＹ平面とのなす角度である。傾きθｚは、予め定めた傾きの閾値θｍａｘよりも小さい値である。即ち、第１中心軸推定部２２４は、対象物の表面の１点と底面の１点から形成される点対として、この２点間の距離Ｌが長さｌに近似し、点群データ１から確実に検出され、かつ制御対象となりうる方向を有するものを選択する。
【００６０】
（線分に属するサンプル点の例）
次に、点群抽出部２２５で抽出された線分に属するサンプル点の例について説明する。
図１２は、線分に属するサンプル点の例を示す図である。
図１２（Ａ）、（Ｂ）は、ＸＹ平面上、ＸＺ平面上にそれぞれ射影されたサンプル点の分布の他の例を示す。黒丸のそれぞれは、サンプル点を示す。Ｐ２１、Ｐ２２は、点対を形成する２個のサンプル点の組の他の例であり、Ｅ２は、Ｐ２１、Ｐ２２間を結ぶ線分である。線分Ｅ２に属するサンプル点は、線分Ｅ２から距離ρの範囲内に含まれるサンプル点である。点群抽出部２２５は、点群データ２からこれらのサンプル点を選択し、選択したサンプル点の個数Ｎが所定の個数の範囲内となる点対及びそのサンプル点を採用する。
【００６１】
（選択された中心軸の一例）
次に、中心軸選択部２２７で選択された中心軸の一例について説明する。
図１３は、選択された中心軸の一例を示す断面図である。
この例では、中心軸Ｅ３と中心軸Ｅ３の算出に用いられる選択されたサンプル点の分布がＸＺ平面に射影されている。各点は、サンプル点を示す。選択されたサンプル点の多くは、中心軸Ｅ３からＺの負方向に所定距離だけ偏って分布しているが、その分布が延びている方向は中心軸Ｅ３の方向にほぼ平行している。この偏った分布は、対象物の表面のうち撮像装置１０に対向する部分を表し、その他の部分が表れていないために生じる。
【００６２】
（サンプル点の分布の一例）
次に、空間データ生成部２２８が対象物の位置、姿勢、等を算出する際に用いられる点群データ３が示すサンプル点の分布の一例について説明する。
図１４は、中心軸とサンプル点の一例を示す斜視図である。
各点は、領域３に対応する点群データ３が示すサンプル点を示す。そのうち、濃く表された点は、中心軸Ｅ３の算出に用いられた選択されたサンプル点を示す。１個の対象物の表面の形状を表し、上述した中心軸Ｅ３を中心に湾曲した面上に分布している。中心軸から面まで距離は、半径ｒに近似している。点群データ３は、中心軸Ｅ３の方向に選択されたサンプル点よりも広い領域に分布する可能性があるが、このことによって軸方向の長さが異なる物体を判別する手がかりが与えられる。
【００６３】
図１５は、空間データ生成部２２８で生成されたヒストグラムの一例である。
図１５において、縦軸、横軸は、それぞれ度数、中心軸Ｅ３の方向の座標を示す。度数は、中心軸Ｅ３の方向の座標に対する図１４のサンプル点の個数を示す。
ｎ１，ｎ２は、それぞれ上述した第１の閾値、第２の閾値を示す。Ｂ１，Ｂ２は、それぞれ度数が第１の閾値、第２の閾値を超える区間である。従って、空間データ生成部２２８は、区間Ｂ１の中心軸Ｅ３の方向への長さを対象物の長さと定めることができ、区間Ｂ２の範囲内の中心軸座標を有するサンプル点が分布する領域を非円柱領域と特定することができる。そして、空間データ生成部２２８は、特定した非円柱領域の重心点の位置を算出する。
【００６４】
図１５に示すヒストグラムは、点群データ３が示すサンプル点に基づいて生成される点で、二次元の明領域から生成されるヒストグラム（図９）とは異なる。そのため、図１５に示すヒストグラムの方がデータとしての信頼性が、図９に示すヒストグラムよりも高い。また、図１５に示すヒストグラムの用途は、注目する対象物の非円柱領域（例えば、ボルトの頭部）を検出することであるのに対し、図９に示すヒストグラムの用途が注目する対象物から円柱に近似できる領域（例えば、ボルトの軸部）を抽出し、それ以外の領域を削除する点で異なる。
【００６５】
（制御フロー）
次に、本実施形態に係るロボット制御について説明する。
図１６は、本実施形態に係るロボット制御を示すフローチャートである。
（ステップＳ２０１）画像データ取得部２１には、撮像装置１０で撮像された三次元の撮像画像を示す三次元画像データと、二次元画像を示す二次元画像データが入力される。画像データ取得部２１は、三次元画像データと二次元画像データを取得することで、撮像領域Ｉｒの全体を示す三次元の撮像画像（全体画像）と二次元画像が受け付けられる。その後、ステップＳ２０２に進む。
（ステップＳ２０２）注目領域設定部２２２は、画像データ取得部２１が取得した二次元画像データが示す二次元画像から注目領域として、例えば、領域１、２、３を決定する。注目領域設定部２２２は、決定した領域１、２、３に対応する三次元の一部領域１、２、３内に分布するサンプル点を示す点群データ１、２、３を生成する。その後、ステップＳ２０３に進む。
【００６６】
（ステップＳ２０３）第１中心軸推定部２２４は、点群データ１が示すサンプル点から中心軸を推定する。ここで、第１中心軸推定部２２４は、点群データ１のサンプル点から２点を抽出し、抽出した２点間の距離Ｌが、長さｌから予め定めた範囲内である点対を、Ｎｅ個選択し、選択した点対のそれぞれを形成する２点間の直線を示す定数を算出する。第１中心軸推定部２２４は、算出した定数から導かれるＸ−Ｙ平面に対する傾きθｚが予め定めた傾きの範囲内の点対を選択し、選択した点対を示す選択点対情報を生成する。その後、ステップＳ２０４に進む。
【００６７】
（ステップＳ２０４）点群抽出部２２５は、点群データ２が示すサンプル点から選択点対情報が示す点対のそれぞれを形成する２点を結ぶ線分（中心軸）から所定距離ρ内のサンプル点を線分に属する点として抽出し、抽出したサンプル点の数Ｎｃを計数する（投票）。点群抽出部２２５は、抽出したサンプル点の数Ｎｃが、所定の個数の範囲内にある点対を選択し、選択した点対毎に抽出したサンプル点を示す抽出点群情報を生成する。その後、ステップＳ２０５に進む。
【００６８】
（ステップＳ２０５）第２中心軸推定部２２６は、点群データ２に基づいて生成された抽出点群情報が示すサンプル点で張られる表面の中心軸の候補を点対毎に推定（再推定）する。第２中心軸推定部２２６は、推定した中心軸候補の定数からなる中心軸情報を生成する。その後、ステップＳ２０６に進む。
（ステップＳ２０６）中心軸選択部２２７は、中心軸情報が示す中心軸候補の定数で示されるＸＹ平面に対する傾きθｚが予め定めた傾きの範囲内の中心軸を選択する。中心軸選択部２２７は、選択した中心軸のそれぞれについて対応する抽出点群情報が示すサンプル点に基づいて、推定誤差ｅｒｒを算出し、算出した推定誤差ｅｒｒが最も小さい中心軸を選択する。中心軸選択部２２７は、選択した中心軸に係る中心軸情報を生成する。その後、ステップＳ２０７に進む。
【００６９】
（ステップＳ２０７）空間データ生成部２２８は、点群データ３が示すサンプル点と中心軸情報に基づいて対象物の位置、姿勢、及び長さを算出（推定）する。空間データ生成部２２８は、算出した位置、姿勢及び長さを示す空間データを生成する。その後、ステップＳ２０８に進む。
（ステップＳ２０８）制御信号生成部２２９は、ロボット３０から入力された負荷信号と  空間データが示す位置、姿勢、長さのいずれか又はこれらの任意の組に基づいてロボット３０の動作を制御するための制御信号を生成し、生成した制御信号をロボット３０に出力する。これにより、制御信号生成部２２９は、ロボット３０の動作を制御する。その動作は、例えば、対象物を把持する動作である。その後、図１６に示す処理を終了する。
【００７０】
なお、対象物の長さを区別する必要がない場合（例えば、撮像領域Ｉｒに配置された全ての対象物の長さが同一である場合）には、注目領域設定部２２２は、領域３を定めることや、点群データ３を生成、出力することを省略してもよい。その場合には、注目領域設定部２２２が定める注目領域の数Ｎｉは、２となる。点群データ３の出力を省略する場合には、注目領域設定部２２２は、点群データ３に代えて点群データ２を空間データ生成部２２８に出力する。空間データ生成部２２８は、点群データ３に代えて点群データ２を用いて対象物の位置、姿勢、等を算出する。
また、第１中心軸推定部２２４で選択される点対の数は、通例、１個よりも多い。選択される点対の数が１個よりも多い場合には、点対毎にステップＳ１０４、Ｓ１０５の処理が繰り返されてもよいし、並列して実行されてもよい。
【００７１】
以上、説明したように、本実施形態は、ハンド（例えば、ハンド部３０ｃ）と前記ハンドを動作させる制御部（例えば、制御部２２）とを含み、撮像部が複数の物体（例えば、対象物）を撮像した撮像画像（例えば、二次元画像）のうち一部画像（例えば、注目領域）に対して三次元点群情報（例えば、点群データ１、２、３）を生成し、前記ハンドに前記一部画像に撮像された一の物体を把持させる。
これにより、撮像画像が示す複数の物体から一の物体を特定し、特定した物体をハンドに把持させることで、撮像領域内に分布した一の物体に係る作業を効率化することができる。つまり、本実施形態では撮像した撮像画像全体に対して三次元点群情報を生成するのではなく、二次元の撮像画像を画像処理することによってその一部に対応する三次元点群情報を生成する領域を特定し、当該領域に対して対象物の空間状態を検出する処理を行う。従来のように撮像画像において所定の変位量毎に注目領域（一部画像）を順次に設定し、設定した注目領域毎に処理を行う場合よりも、処理量が格段に減るので処理速度が向上する。
【００７２】
本実施形態は、撮像画像から一の物体を表す第１の領域（例えば、領域１）と第１の領域を含み、所定の形状を有する第２の領域（例えば、領域２）を定め、第１の領域（例えば、領域１）に対応する第１の三次元点群情報（例えば、点群データ１）と、第２の領域（例えば、領域２）に対応する第２の三次元点群情報（例えば、点群データ２）とを前記撮像画像から生成する。また、本実施形態は、前記第１の三次元点群情報に含まれる２点からなる複数の組のうち、２点間の線分の長さが所定の長さの範囲内となる組を選択し、選択した組をなす２点間の線分から予め定めた範囲内の点を前記第２の三次元点群情報から抽出する。また、本実施形態は、前記第２の三次元点群情報から抽出した各点までの距離と所定の閾値（例えば、対象物の半径ｒ）との差（例えば、誤差）が予め定めた範囲内にある中心軸を選択する。
【００７３】
この構成によれば、撮像画像に基づいて第１の領域に対応する第１の三次元点群情報と第２の領域に対応する第２の三次元点群情報が処理対象として定められるので処理量を低減することができる。また、長さが所定の範囲内である２点を結ぶ中心軸からの半径が所定の範囲内にある点から形成される対象物の画像を表す点が特定される。そのため、曲面を有する対象物として、形状が円柱もしくは円柱に近似する対象物（例えば、ネジ、ボルト、等）の位置及び姿勢を推定することができる。また、本中心軸の推定に用いられる２点の組が選択される第１の三次元点群情報に係る第１の領域よりも広範な第２の領域に係る第２の三次元点群情報の点に基づいて中心軸が選択されるため、対象物の位置及び姿勢を推定する際に要する処理量を低減し、精度を損なわずに処理を高速化することができる。
【００７４】
また、本実施形態では、推定した位置及び姿勢の空間データに基づいて対象物を把持可能なハンド（例えば、ハンド部３０ｃ）を備えたロボット（例えば、ロボット３０）の動作を制御することができる。これにより、ロボット３０は、より汎用的な撮像部で撮像された撮像画像に基づいて対象物を把持する動作を実行することができるので、特殊なジグ等の部材を用いることなく乱雑に積まれた対象物の取り扱いが可能となる。
【００７５】
（変形例）
なお、本発明の技術範囲は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
上述した実施形態では、主に対象物の形状が円柱又は円柱に近似する形状である場合を例にしたが、これには限られない。対象物の形状は、例えば、三角柱、四角柱などの角柱または角柱に近似する形状等、三次元形状を有する物体であれば良い。
【００７６】
また、注目領域設定部２２２は、図５に示す処理のうち、少なくともステップＳ１０１〜Ｓ１０４、及びステップＳ１０６を実行すればよい。対象物の形状、大きさ又は種類によっては、注目領域設定部２２２は、ステップＳ１０５、Ｓ１０７、Ｓ１０８の一部又は全部を省略してもよい。例えば、対象物の形状が幾何学的に単純な円柱、角柱である場合のように、径が一定である場合には、ボルトの頭部のように径の変化を考慮する必要がないため、注目領域設定部２２２は、ステップＳ１０５を省略してもよい。また、径が一定である対象物は、二次元画像において幅がほぼ一定な領域として表れるので、その位置や姿勢による形状の変化が比較的少ない。そこで、注目領域設定部２２２は、ステップＳ１０４において楕円偏心率の算出や、楕円偏心率に基づく明領域の選別を省略してもよい。
【００７７】
また、対象物が、ボルトの頭部のように径が一定でなく変則的な部位を有し、その部位が角柱や円柱のように幾何学的に単純な形状に近似できない形状を有し、さらに、その形状が位置、姿勢の推定に影響を与える場合がある。そのような場合には、注目領域設定部２２２は、図５のステップＳ１０５に代えて、形状特有の処理を行い、その部位を表す可能性がある領域を、ステップＳ１０４で選択された明領域から削除してもよい。そのような部位には、例えば、対象物がコネクタである場合にはピン、爪が該当し、対象物がペットボトルである場合には蓋、口部、口部の周縁、が該当する。形状特有の処理は、その対象となる部位毎に異なる。例えば、対象物がコネクタ、ペットボトル、ボルトの場合には、注目領域設定部２２２は、明領域からテンプレートとなる形状で近似可能な領域と、それ以外の領域とを識別する。これにより、コネクタの爪、ペットボトルの蓋、ボルトの頭部を表す可能性がある領域が識別される。テンプレートとなる形状は、角柱、円柱、平板のように幾何学的に単純な形状を二次元画像に射影してなる形状、例えば、矩形である。そして、注目領域設定部２２２は、明領域から識別したそれ以外の領域を削除し、テンプレートとなる形状で近似可能な領域を残してもよい。
【００７８】
また、対象物の形状が、角柱のように平面を有する形状である場合には、注目領域設定部２２２は、図５のステップＳ１０７を省略してもよい。また、上述したように対象物の長さを区別する必要がない場合には、注目領域設定部２２２は、ステップＳ１０８を省略してもよい。ステップＳ１０７、Ｓ１０８が省略されたことにより、領域２、３が定められなかった場合には、制御部２２は、図１６のステップＳ２０３〜Ｓ２０８において、領域２、３にそれぞれ対応する点群データ２、３に代えて、点群データ１を用いてもよい。
【００７９】
また、上述した実施形態では、対象物の長さ（高さ）や半径を、予め制御部２２に設定しておくことを前提に説明したが、これには限られない。制御装置２０は、ユーザからの操作に応じて長さ及び半径を入力可能な入力部（図示せず）を備えてもよいし、通信回線を介して長さ及び半径を受信可能な通信部（図示せず）を備えてもよい。
上述した実施形態では、第２中心軸推定部２２６が、逐次二次推定法を用いて中心軸候補を推定する場合を例にとって説明したが、これには限られない。第２中心軸推定部２２６は、その他の手法として、ニュートン法などの非線形計画法や、最小二乗法などの回帰分析法を用いることができる。
【００８０】
撮像装置１０は、各フレームの画像データを、個々に制御装置２０に出力してもよいし、予め定めた時間間隔で逐次に制御装置２０に出力してもよい。撮像装置１０は、制御装置２０と一体に構成されていてもよい。
上述した実施形態では、制御装置２０とロボット３０とは別個に構成されている場合を例にとって説明したが、これには限られない。制御装置２０は、ロボット３０と一体に構成されてもよい。
【００８１】
上述した実施形態に係るロボット３０は、アーム部３０ｂとハンド部３０ｃとの組を１組備える単腕ロボットであるが、これには限られない。ロボット３０が備えるアーム部３０ｂとハンド部３０ｃの数は、それぞれ１個よりも多くてもよい。
図１７は、本変形例に係るロボットシステム２の構成を示す図である。
ロボットシステム２は、ロボットシステム１（図１）においてロボット３０に代えてロボット２３０を備える。
ロボット２３０は、アーム部３０ｂとハンド部３０ｃとの組を２組備える双腕ロボットである。ロボット２３０は、格納部２３０ｄを備え、格納部２３０ｄの内部には、制御装置２０が格納され、格納部２３０ｄの上面には、撮像装置１０が設置されている。これにより、撮像装置１０、制御装置２０及びロボット２３０が一体に構成されている。
また、格納部２３０ｄの底面には、車輪が取り付けられている。これにより、外力が加えられることでロボットシステム２の全体が移動できるように構成されている。
【００８２】
また、制御装置２０の一部、例えば、画像データ取得部２１、注目領域設定部２２２、第１中心軸推定部２２４、点群抽出部２２５、第２中心軸推定部２２６、中心軸選択部２２７、空間データ生成部２２８及び制御信号生成部２２９の各処理を実行するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することにより、制御装置に係る上述した種々の処理を行ってもよい。
【００８３】
なお、ここでいう「コンピューターシステム」とは、上述した処理を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、等のハードウェアの他、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものであってもよい。また、「コンピューターシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリー等の書き込み可能な不揮発性メモリー、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００８４】
さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピューターシステム内部の揮発性メモリー（例えば、ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００８５】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８６】
１、２  ロボットシステム
１０  撮像装置
２０  制御装置
２１  画像データ取得部（画像受付部）
２２  制御部（処理部）
２２２  注目領域設定部
２２４  第１中心軸推定部
２２５  点群抽出部
２２６  第２中心軸推定部
２２７  中心軸選択部
２２８  空間データ生成部
２２９  制御信号生成部
３０、２３０  ロボット
３０ａ  支持台
３０ｂ  アーム部
３０ｃ  ハンド部
２３０ｄ  格納部
【図１】
2015147256.tif 000006
【図２】
2015147256.tif 000007
【図４】
2015147256.tif 000008
【図５】
2015147256.tif 000009
【図７】
2015147256.tif 000010
【図８】
2015147256.tif 000011
【図９】
2015147256.tif 000012
【図１０】
2015147256.tif 000013
【図１１】
2015147256.tif 000014
【図１２】
2015147256.tif 000015
【図１３】
2015147256.tif 000016
【図１５】
2015147256.tif 000017
【図１６】
2015147256.tif 000018
【図１７】
2015147256.tif 000019
【図３】
2015147256.tif 000020
【図６】
2015147256.tif 000021
【図１４】
2015147256.tif 000022