(57)【要約】【課題】パターンマッチングを行うことなく、種々の三次元測定機を用いて、バラ積みされた物品の位置及び姿勢を認識して物品を取出すことが可能な物品取出装置を提供する。【解決手段】三次元点空間にバラ積みされた複数の物品２０の表面位置を三次元測定機１１で測定して複数の三次元点３１の位置情報を取得し、これら複数の三次元点３１の中から、互いに近傍にある三次元点３１を連結してなる連結集合３２を求め、連結集合３２に属する三次元点３１の位置情報に基づき、物品２０の位置及び姿勢を特定し、物品２０を取出し可能なハンド位置姿勢３５を求め、ハンド位置姿勢３５へハンド１４を移動して物品２０を取出すようにロボット１２を制御する。物品２０の姿勢を特定するときには、連結集合３２に属する三次元点３１の主成分分析によって連結集合３２の主成分方向を算出し、この主成分方向に基づいて物品の姿勢を特定する。【選択図】図２
2015089590.tif 000002
【特許請求の範囲】
【請求項１】
物品を保持可能なハンドを有するロボットと、
三次元空間にバラ積みされた複数の物品の表面位置を測定し、複数の三次元点の位置情報を取得する三次元測定機と、
前記三次元点測定機によって取得された複数の三次元点の中から、互いに近傍にある三次元点を連結してなる連結集合を求める連結集合演算部と、
前記連結集合に属する三次元点の位置情報に基づき、物品の位置及び姿勢を特定する物品特定部と、
前記物品特定部により特定された物品を取出し可能な前記ハンドの位置及び姿勢であるハンド位置姿勢を求めるハンド位置姿勢演算部と、
前記ハンド位置姿勢演算部により求められたハンド位置姿勢へ前記ハンドを移動して前記物品を取出すように前記ロボットを制御するロボット制御部と、を備え、
前記物品特定部は、前記連結集合に属する三次元点の主成分分析によって前記連結集合の主成分方向を算出し、この主成分方向に基づいて前記物品の姿勢を特定することを特徴とする物品取出装置。
【請求項２】
請求項１に記載の物品取出装置において、
前記物品特定部は、前記連結集合の重心位置と前記連結集合に属する三次元点との差から前記連結集合の重心位置に対する共分散行列を算出し、この共分散行列の固有値が最大となる固有ベクトルを用いて前記主成分方向を算出することを特徴とする物品取出装置。
【請求項３】
請求項１または２に記載の物品取出装置において、
前記物品特定部は、前記連結集合の重心位置に基づいて前記連結集合を代表する位置を求めるとともに、前記主成分方向に基づいて前記連結集合を代表する姿勢を求め、
前記ハンド位置姿勢演算部は、前記連結集合を代表する位置及び姿勢である代表位置姿勢に対応して前記ハンド位置姿勢を求めることを特徴とする物品取出装置。
【請求項４】
請求項３に記載の物品取出装置において、
前記物品特定部は、前記連結集合に属する三次元点の主成分分析によって前記連結集合の第１主成分方向、第２主成分方向及び第３主成分方向を算出し、
前記ハンド位置姿勢演算部は、前記第１主成分方向、前記第２主成分方向及び前記第３主成分方向に基づいて前記ハンド位置姿勢を求めることを特徴とする物品取出装置。
【請求項５】
物品を保持可能なハンドを有するロボットを用いて、三次元空間にバラ積みされた物品を取出す物品取出方法であって、
三次元点空間にバラ積みされた複数の物品の表面位置を三次元測定機で測定して複数の三次元点の位置情報を取得し、
前記三次元点測定機によって取得された複数の三次元点の中から、互いに近傍にある三次元点を連結してなる連結集合を求め、
前記連結集合に属する三次元点の位置情報に基づき、物品の位置及び姿勢を特定し、
位置及び姿勢が特定された物品を取出し可能な前記ハンドの位置及び姿勢であるハンド位置姿勢を求め、
求められたハンド位置姿勢へ前記ハンドを移動して前記物品を取出すように前記ロボットを制御し、
前記物品の姿勢を特定するときには、前記連結集合に属する三次元点の主成分分析によって前記連結集合の主成分方向を算出し、この主成分方向に基づいて前記物品の姿勢を特定することを特徴とする物品取出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元空間にバラ積みされた物品の位置及び姿勢を認識し、認識した物品を、ロボットを用いて取出す物品取出装置及び物品取出方法に関する。
【背景技術】
【０００２】
この種の装置として、従来、バラ積みされた物品をカメラで撮像して得られた二次元画像や三次元測定機で測定して得られた三次元点集合に対し、パターンマッチングを用いて物品の位置を認識するようにした装置が知られている（例えば特許文献１、２参照）。また、ステレオ撮影された２枚の画像を用いて回転体の三次元姿勢を算出するようにした装置も知られている（例えば特許文献３参照）。
【０００３】
特許文献１記載の装置では、予め基準三次元相対姿勢にある物品を撮像して得られた二次元画像から二次元モデルパターンを作成し、二次元モデルパターンに二次元の幾何学的変換を施して複数の変換二次元モデルパターンを作成し、複数の変換二次元モデルパターンを使用して物品の二次元画像に対して二次元パターンマッチングを行なう。
【０００４】
特許文献２記載の装置では、事前にCADモデルなどから物品の三次元モデルパターンを取得する一方、三次元空間における物品の表面を三次元測定機で測定して三次元点集合（距離画像）を取得し、三次元点集合から抽出されたエッジによって囲まれた部分領域に三次元点集合を分割する。そして、初めに部分領域の一つを物品領域として設定し、この物品領域に対する三次元モデルパターンのマッチング処理と、他の部分領域を物品領域に加える更新処理の二つの処理を繰り返すことで、物品の位置及び姿勢を計測する。
【０００５】
特許文献３記載の装置では、一対のカメラにより異なる方向から回転体を撮像して一対の画像を取得し、一対の画像ごとに、主成分分析により回転体の主成分軸を算出して回転体の中心軸を設定し、一対の画像を用いて三角測量の原理により中心軸の三次元情報を求め、回転体の姿勢を算出する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２９５２２３号公報
【特許文献２】特開２０１１−１７９９０９号公報
【特許文献３】特開２０１１−２２０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１、２に記載の装置は、予め物品一品種毎に二次元モデルパターンまたは三次元モデルパターンを作成する必要があり、手間を要する。また、特許文献３記載の装置は、ステレオ撮影された２枚の画像を用いて回転体の姿勢を算出するため、一対のカメラを準備する必要があり、装置構成が大がかりとなる。
【課題を解決するための手段】
【０００８】
本発明の一態様である物品取出装置は、物品を保持可能なハンドを有するロボットと、三次元空間にバラ積みされた複数の物品の表面位置を測定し、複数の三次元点の位置情報を取得する三次元測定機と、三次元点測定機によって取得された複数の三次元点の中から、互いに近傍にある三次元点を連結してなる連結集合を求める連結集合演算部と、連結集合に属する三次元点の位置情報に基づき、物品の位置及び姿勢を特定する物品特定部と、物品特定部により特定された物品を取出し可能なハンドの位置及び姿勢であるハンド位置姿勢を求めるハンド位置姿勢演算部と、ハンド位置姿勢演算部により求められたハンド位置姿勢へハンドを移動して物品を取出すようにロボットを制御するロボット制御部と、を備え、物品特定部は、連結集合に属する三次元点の主成分分析によって連結集合の主成分方向を算出し、この主成分方向に基づいて物品の姿勢を特定する。
【０００９】
また、本発明の別の態様は、物品を保持可能なハンドを有するロボットを用いて、三次元空間にバラ積みされた物品を取出す物品取出方法であって、三次元点空間にバラ積みされた複数の物品の表面位置を三次元測定機で測定して複数の三次元点の位置情報を取得し、三次元点測定機によって取得された複数の三次元点の中から、互いに近傍にある三次元点を連結してなる連結集合を求め、連結集合に属する三次元点の位置情報に基づき、物品の位置及び姿勢を特定し、位置及び姿勢が特定された物品を取出し可能なハンドの位置及び姿勢であるハンド位置姿勢を求め、求められたハンド位置姿勢へハンドを移動して物品を取出すようにロボットを制御し、物品の姿勢を特定するときには、連結集合に属する三次元点の主成分分析によって連結集合の主成分方向を算出し、この主成分方向に基づいて物品の姿勢を特定することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、三次元空間にバラ積みされた物品の位置及び姿勢を認識する際に、三次元点測定機によって取得された複数の三次元点の位置情報から連結集合を求め、連結集合を用いて物品の位置及び姿勢を特定する。とくに、物品の姿勢は、連結集合に属する三次元点の主成分分析によって連結集合の主成分方向を算出し、この主成分方向に基づいて特定する。したがって、物品のモデルパターンを作成することなく物品の位置及び姿勢を容易に認識することができる。また、ステレオ撮影によって画像を取得するタイプの三次元測定機以外でも利用可能で、装置のバリエーションを増やすことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る物品取出装置の概略構成を示す図。
【図２】図１のロボット制御装置で実行される処理の一例を示すフローチャート。
【図３】図１の三次元測定機で取得した三次元点集合の一例を示す図。
【図４】図３の三次元点集合から求めた連結集合の一例を示す図。
【図５】連結集合を説明する概念図。
【図６】連結集合を求める処理の詳細を示すフローチャート。
【図７】連結集合の慣性主軸の一例を示す図。
【図８】コンテナ内にバラ積みされた複数の物品に対応する連結集合の慣性主軸の一例を示す図。
【図９】連結点集合を代表する代表位置姿勢の一例を示す図。
【図１０】図９の代表位置姿勢に対応するハンド位置姿勢の一例を示す図。
【図１１】図１０のハンド位置姿勢の番号付けの一例を示す図。
【図１２】本発明の実施形態に係る物品取出装置の動作の一例を示す図。
【図１３】図１２に続く動作の一例を示す図。
【図１４】図１３に続く動作の一例を示す図。
【図１５】図１４に続く動作の一例を示す図。
【図１６】図１５に続く動作の一例を示す図。
【図１７】図１６に続く動作の一例を示す図。
【図１８】図１のロボット制御装置の内部構成を示すブロック図。
【発明を実施するための形態】
【００１２】
以下、図１〜図１８を参照して本発明の実施形態に係る物品取出装置について説明する。図１は、本発明の一実施形態に係る物品取出装置１０の概略構成を示す図である。物品取出装置１０は、三次元測定機１１と、ロボット１２と、三次元測定機１１とロボット１２とに接続してロボット１２を制御するロボット制御装置１３とを有する。ロボット１２は、アーム１２ａの先端部に取り付けられたハンド１４を有する。ロボット１２の側方にはコンテナ１６が配置されている。なお、図１には、ＸＹＺの直交３軸座標系を併せて示している。Ｚ方向は鉛直方向、Ｘ方向及びＹ方向は水平方向である。
【００１３】
上方が開放されたコンテナ１６内には、複数の物品２０がバラ積みされている。本実施形態の物品取出装置１０は、この複数の物品２０がバラ積みされた状態から取出すべき物品２０の位置及び姿勢を認識し、認識された物品２０をコンテナ１６の中からハンド１４で保持して取出す。さらに、取出された物品２０をロボット１２の動作によりコンテナ１６の側方に設置された払い出し装置１７まで搬送し、物品２０を排出する。複数の物品２０は、図１では互いに同一の円柱形状として示しているが、円柱形状以外でもよく、複数の品種を含むものでもよい。なお、以下では、ハンド１４で保持された物品２０を、コンテナ１６内の他の物品と区別するために符号２１（図１４参照）で表すこともある。
【００１４】
ハンド１４は、回転軸１４ｂの先端部に設けられ、二股に形成されたマグネット式の一対の把持部１４ａを有する。一対の把持部１４ａは、回転軸１４ｂの中心を通る軸線１４ｃに対し対称形状を呈し、軸線１４ｃを中心に矢印Ａ方向に回転可能である（図１２参照）。マグネットは電磁石式で、ロボット制御装置１３により自在にオン（作動）及びオフ（非作動）することができる。なお、ハンド１４は、物品２０の形状やコンテナ１６の構成に応じて適宜変更され、ハンド１４の構成は図１のものに限らない。
【００１５】
把持部１４ａは、円柱形状の物品２０の外周面に沿うように姿勢（軸線１４ｃの方向及び矢印Ａ方向の回転角度）が制御されつつ、取り出すべき物品２０に接近し、電磁石のオンにより物品２０を保持する。その後、ロボット１２を操作してハンド１４を上昇させる。これにより、保持された物品２１が他の物品２０よりも上方に取出される（図１４参照）。このとき、物品２１に対するハンド１４の相対姿勢は一定であり、ハンド１４は、払い出し装置１７の上方に移動するまでの間に、払い出し装置１７の形状に対応した姿勢（例えば物品２１の中心軸がＹ軸方向を向くような姿勢）に変更させられる。これにより、払い出し装置１７に対し一定の姿勢で、ハンド１４から物品２１を受け渡すことができる。
【００１６】
三次元測定機１１は、コンテナ１６の中央部上方に配置され、コンテナ１６内にバラ積みされた複数の物品２０のうち、露出した物品２０の表面を測定して、複数の三次元点の位置情報（三次元情報）を取得する。三次元測定機１１の測定範囲は、コンテナ１６を含む必要があるが、測定範囲が大き過ぎると測定分解能の低下を招く。したがって、測定範囲は、コンテナ１６の占有範囲と同等、例えばコンテナ１６の占有範囲に一致させることが好ましい。なお、図１では、三次元測定機１１が専用の架台１５に固定されているが、ロボット１２の先端部に三次元測定機１１を取り付けてもよい。三次元測定機１１とロボット制御装置１３とは通信ケーブル等の通信手段によって互いに接続されており、互いに通信できるようになっている。
【００１７】
三次元測定機１１としては、種々の非接触方式のものを利用することができる。例えば、レーザスリット光を走査する方式、レーザスポット光を走査する方式、プロジェクタ等の装置を用いてパターン光を物品に投影する方式、光が投光器から出射されてから物品表面で反射し受光器に入射するまでの飛行時間を利用する方式などが挙げられる。
【００１８】
三次元測定機１１は、取得した三次元情報を距離画像または三次元マップといった形式で表現する。距離画像とは、画像形式で三次元情報を表現したものであり、画像の各画素の明るさや色により、その画像上の位置の高さまたは三次元測定機１１からの距離を表す。一方、三次元マップとは、測定された三次元座標値（ｘ，ｙ，ｚ）の集合として三次元情報を表現したものである。本実施形態では、距離画像における各画素や三次元マップにおける三次元座標値を有する点を、三次元点と称し、複数の三次元点からなる集合を、三次元点集合と称する。三次元点集合は、三次元測定機１１で測定した三次元点全体の集合であり、三次元測定機１１により取得できる。
【００１９】
ハンド１４は、物品２０を把持して取出し、取出した物品２０を保持及び解放することができるが、それが可能なハンドの形態としては、例えば吸引ノズル、吸着用磁石、吸着パッドまたはチャックなどが挙げられる。ハンド１４は、ロボット１２の動作により、その位置姿勢が制御される。
【００２０】
図２は、ロボット制御装置１３で実行される処理、特に物品取出しに係る処理の一例を示すフローチャートである。以下、物品取出装置１０による動作を、図２のフローチャート及び関連する図面を参照しつつ説明する。
【００２１】
図２の処理は、例えば図示しない操作スイッチの操作により、物品２０の取出開始指令が入力されると開始される。まず、ステップＳ１で、三次元空間にバラ積みされた複数の物品２０の表面を三次元測定機１１で測定して三次元点集合３０を取得する。図３は、三次元測定機１１で取得した三次元点集合３０と、三次元点集合３０を構成する三次元点３１の一例を示す図である。図３では、三次元点３１が黒丸で示されており、三次元点集合３０は、黒丸全体を含む点線で囲まれた領域として示されている。
【００２２】
次に、ステップＳ２で、三次元点集合３０から１以上の連結集合３２を求める。図４は、三次元点集合３０から求めた連結集合３２の一例を示す図である。図４では、連結集合３２は点線で囲まれた領域として示されている。すなわち、図４には、４つの連結集合３２が示されている。
【００２３】
ここで言う連結集合３２とは、三次元点集合３０の部分集合であり、任意の三次元点（第１の三次元点）３１の近傍にその三次元点３１とは異なる他の三次元点（第２の三次元点）３１が存在する場合、第１の三次元点３１と第２の三次元点３１とが連結されてなる集合である。すなわち、連結集合３２とは、互いに近傍に存在する三次元点を連結してなる三次元点の集合である。図５は、連結集合３２の概念を説明する図である。図５では、隣り合う第１三次元点３１と第２三次元点３１との間の距離が所定値以内であるときに、第１三次元点３１と第２三次元点３１とを互いに連結している。
【００２４】
例えば図５に示すように複数の三次元点３１（３１１〜３１７で表す）が三次元測定機１１により測定され、このうち、３１１と３１２、３１２と３１３、３１３と３１４、及び３１５と３１６がそれぞれ所定距離内に存在するとき、これらは互いに連結される。この場合、３１２と３１３を介して３１１と３１４も連結されるため、３１１〜３１４は同一の連結集合３２１を構成する。一方、３１５と３１６は、３１１〜３１４のいずれにも連結されないため、別の連結集合３２２を構成する。３１７は、３１１〜３１６のいずれにも連結されないため、３１７のみで連結集合３２３を構成する。
【００２５】
三次元的測定機１１によりバラ積みされた物品２０の表面が測定される場合、同一物品２０上における隣り合う三次元点３１（例えば図５の３１３，３１４）は互いに近距離に位置する。これに対し、物品２０の境界部では隣り合う三次元点（例えば図５の３１４，３１５）の位置が大きく変化する。したがって、三次元点３１３，３１４は同一の連結集合３２に属するのに対し、三次元点３１４，３１５は互いに異なる連結集合３２に属する。このため、連結集合３２を構成する３次元点間の距離や、連結集合３２の最小点数、最大点数等を、物品２０や三次元測定機１１に応じて適宜設定することで、連結集合３２を、単一の物品２０の表面形状とみなすことができる。すなわち、単一の物品２０に対して単一の連結集合３２が１対１で対応し、連結集合３２によって物品２０を特定することができる。
【００２６】
図６は、連結集合３２を求めるための処理（連結集合演算処理）、すなわち図２のステップＳ２の処理をより詳細に示すフローチャートである。まず、ステップＳ２１で、三次元点集合３０に属する全ての三次元点３１に、初期のラベル番号として、どの連結集合３２にも属していないことを表すラベル番号０を割り振る。以下では、自然数であるラベル番号ｊが割り振られた三次元点３１を、３１（ｊ）で表す。ラベル番号ｊは、連結集合３２に対応して割り振られる番号であり、０ではない同一のラベル番号ｊが割り振られていれば、同一の連結集合３２に属することになる。次に、ステップＳ２２で、１番目の連結集合３２を求めるため、ラベル番号ｊを１とする（j←1）。
【００２７】
次に、ステップＳ２３で、三次元点集合３０に属する三次元点３１であって、ラベル番号が０である任意の三次元点３１（０）を選択する。ステップＳ２４では、ラベル番号が０である三次元点３１（０）が選択されたか否かを判定し、肯定されるとステップＳ２５に進む。三次元点３１（０）が選択されなかった場合は、三次元点集合３０に属する全ての三次元点３１が何れかの連結集合３２に属している。この場合は、ステップＳ２４が否定され、連結集合演算処理が終了し、図２のステップＳ３に進む。
【００２８】
ステップＳ２５では、ラベル番号がｊである三次元点３１（ｊ）を格納するためのリストＬｊを準備する。ステップＳ２６では、ステップＳ２４で選択された三次元点３１（０）にラベル番号ｊを割り振った後に、その三次元点３１（ｊ）をリストＬｊに追加する。ステップＳ２７では、自然数値を取る変数ｋに対して、初期値１を与える（ｋ←１）。ｋは、リストＬｊに含まれる三次元点３１（ｊ）を指定する番号である。なお、リストＬｊには、追加された三次元点３１（ｊ）が追加された順番に並んでいるものとする。
【００２９】
ステップＳ２８では、リストＬｊのｋ番目の三次元点３１（ｊ）の近傍に、ラベル番号が０である三次元点３１（０）が存在するか否かを判定する。ステップＳ２８が肯定されるとステップＳ２９に進み、否定されるとステップＳ２９をパスしてステップＳ３０に進む。ステップＳ２９では、リストＬｊのｋ番目の三次元点３１（ｊ）の近傍に存在すると判定された全ての三次元点３１（０）にラベル番号ｊを割り振った後、これら三次元点３１（ｊ）をリストＬｊの最後に追加する。ステップＳ３０では、変数ｋに１を追加する（ｋ←ｋ＋１）。
【００３０】
ステップＳ３１では、ｋの値がリストＬｊに格納されている三次元点３１（ｊ）の数（要素数Ｎ）より大きいか否かを判定する。ｋが要素数Ｎより大きい場合、リストＬｊに格納されたＮ個の全ての三次元点３１（ｊ）に対する近傍判定の処理が終了しており、リストＬｊ内の三次元点３１（ｊ）の近傍にある三次元点が既に同一のリストＬｊ内に格納されている。このため、リストＬｊに三次元点３１（ｊ）を追加する処理を終了し、ステップＳ３２に進む。それ以外の場合は、リストＬｊ内の全ての三次元点３１（ｊ）に対し近傍判定の処理が終了していないため、ステップＳ２８に戻り、リストＬｊへ三次元点３１（ｊ）を追加する処理を繰り返す。
【００３１】
ステップＳ３２では、ラベル番号ｊに１を追加し（ｊ←ｊ＋１）、ステップＳ２３に戻る。以降、ステップＳ２３〜ステップＳ３２と同様の処理を繰り返し、次のラベル番号ｊに対応する連結集合３２を求める。
【００３２】
以上の連結集合演算処理を、図５を参照して具体的に説明する。連結集合演算処理の開始時には、全ての三次元点３１１〜３１７が連結集合３２に属しておらず、三次元点３１１〜３１７のラベル番号は０である（ステップＳ２１）。この状態から、ラベル番号１の連結集合３２を作成するため、例えば三次元点３１３を選択すると（ステップＳ２３）、その三次元点３１３にラベル番号１を割り振った後（３１３（１））、三次元点３１３をラベル番号１のリストＬ１の１番目に格納する（ステップＳ２６）。
【００３３】
次いで、リストＬ１の１番目の三次元点３１３の近傍に、ラベル番号０の三次元点３１（０）が存在するか否かを判定する（ステップＳ２８）。この場合、ラベル番号０の三次元点３１２，３１４が存在するため、これら三次元点３１２，３１４にラベル番号１をそれぞれ割り振り（３１２（１），３１４（１））、リストＬ１の２番目及び３番目にそれぞれ追加する（ステップＳ２９）。これによりリストＬ１の要素数Ｎは３となる。
【００３４】
その後、変数ｋが２（＜Ｎ）となり（ステップＳ３０）、リストＬ１の２番目の三次元点３１２の近傍に、ラベル番号０の三次元点３１（０）が存在するか否かを判定する（ステップＳ２８）。この場合、ラベル番号０の三次元点３１１が存在するため、この三次元点３１１にラベル番号１を割り振り（３１１（１））、リストＬ１の４番目に追加する（ステップＳ２９）。これによりリストＬ１の要素数Ｎは４となる。
【００３５】
その後、変数ｋが３（＜Ｎ）となり（ステップＳ３０）、リストＬ１の３番目の三次元点３１４の近傍に、ラベル番号０の三次元点３１が存在するか否かを判定する（ステップＳ２８）。この場合、三次元点３１４の近傍にラベル番号０の三次元点３１は存在しないため、要素数Ｎが４のままｋが４となり（ステップＳ３０）、リストＬ１の４番目の三次元点３１１の近傍に、ラベル番号０の三次元点３１（０）が存在するか否かを判定する（ステップＳ２８）。この場合、三次元点３１１の近傍にラベル番号０の三次元点３１は存在しないため、要素数Ｎが４のままｋが５となる（ステップＳ３０）。
【００３６】
このとき、変数ｋは要素数Ｎよりも大きくなるため、ラベル番号１のリストＬ１の作成を終了し、ラベル番号を２として（ステップＳ３２）、同様の処理を繰り返す。繰り返しの処理では、例えばラベル番号０の三次元点３１５，３１６にラベル番号２を割り振って、三次元点３１５（２），３１６（２）をリストＬ２に追加し、ラベル番号０の三次元点３１７にラベル番号３を割り振って、三次元点３１７（３）をリストＬ３に追加する。これにより、ラベル番号０の三次元点３１が不存在となるため、ステップＳ２４が否定され、連結集合演算処理を終了し、図２のステップＳ３に進む。
【００３７】
ステップＳ３では、ステップＳ２で求めた各々の連結集合３２の位置を演算する。この場合の連結集合３２の位置は、連結集合３２を代表する位置であり、例えば連結集合３２に属する三次元点３１の重心位置を、連結集合３２の位置として演算する。重心位置の計算には、連結集合３２に属する全ての三次元点３１を利用しても良いし、別途、外れ値対策等の処理を導入して、選別した三次元点３１を利用しても良い。
【００３８】
外れ値対策としては、例えば、始めに連結集合３２に属する全ての三次元点３１を重心計算に利用して重心位置を演算し、重心計算に利用した三次元点３１で重心位置との距離が所定距離以上である三次元点３１が存在する場合、重心計算に利用した三次元点３１から重心位置との距離が大きい順に所定割合の三次元点３１を除去する。そして残った三次元点３１を重心計算に利用して重心位置を再計算する。この処理を、重心計算に利用した全ての三次元点３１が重心位置から所定距離内に収まるまで繰り返せば良い。
【００３９】
次に、ステップＳ４で、各々の連結集合３２に対して主成分分析を行い、連結集合３２の慣性主軸３３を演算する。例えば、まず、ステップＳ２で求めた連結集合３２の重心位置と、その重心位置と連結集合３２を構成する三次元点３１との差を演算し、連結集合３２の重心位置に対する共分散行列を演算する。次いで、共分散行列の固有ベクトルを演算する。連結集合３２は、三次元空間における三次元点３１の集合であるので、３つの固有ベクトルが求まる。３つの固有ベクトルに対応する３つの固有値のうち、固有値が最大であるもの、すなわち連結集合３２に含まれる三次元点３１の分散が最も大きくなる方向の軸を、連結集合３２の慣性主軸３３として演算する。
【００４０】
図７は、慣性主軸３３の一例を示す図である。図７に示すように、円柱形状の物品２０の表面上においては、長手方向における三次元点３１の分散が最も大きくなる。このため、物品２０の中心を通る中心軸線Ｌ０に平行に、最大固有値に対応して第１主成分が現れる。この第１主成分の方向Ｌ１が、慣性主軸３３の方向となる。図中、Ｌ２は、第１主成分の次に三次元点３１の分散が大きくなる第２主成分の方向Ｌ２を示している。第２主成分方向Ｌ２は第１主成分方向Ｌ１に直交する。Ｌ３は、第１主成分方向Ｌ１と第２主成分方向Ｌ２の双方に直交する第３主成分の方向を示している。これら３つの主成分は、３つの固有値に対応する。
【００４１】
図８は、コンテナ内にバラ積みされた複数の物品２０に対応する連結集合３２の慣性主軸３３の一例を示す平面図である。図８に示すように、物品２０毎に慣性主軸３３が設定されるため、慣性主軸３３により物品２０の姿勢を特定できる。
【００４２】
ステップＳ４で慣性主軸３３を演算すると、ステップＳ５に進み、同一の連結集合３２に属する三次元点３１の位置に基づき、連結集合３２を構成する三次元点３１によって構成される平面または曲面を演算する。平面または曲面は、連結集合３２に含まれる全ての三次元点３１を用いて最小二乗法により求めることができる。別途、何らかの外れ値対策を行って平面または曲面を求めてもよい。外れ値対策の方法としては、M推定法、RANSAC、LMedS、ハフ変換など、幾通りかの方法がある。ハフ変換などの処理を導入することで、連結集合３２が、複数の物品２０の表面に跨っている場合でも、その中から、一つの平面を抽出して認識することが可能になる。
【００４３】
ステップＳ６では、各々の連結集合３２を代表する位置及び姿勢である代表位置姿勢３４を演算する。図９は、代表位置姿勢３４の一例を示す図である。代表位置姿勢３４は、直角に交差する一対の矢印３４ａ，３４ｂで示されている。一対の矢印３４ａ、３４ｂの交点、すなわち代表位置姿勢３４の位置（代表位置）は、ステップＳ３で求めた連結集合３２の重心位置であり、矢印３４ａ，３４ｂの向きが代表位置姿勢３４の姿勢を表す。なお、図９では、便宜上、代表位置姿勢３４が２つの矢印３４ａ，３４ｂで示されているが、代表位置姿勢３４は、二次元空間におけるものではなく三次元空間におけるものであり、実際には三次元の直交座標系で表される。直交座標系に限らず、種々の座標系で代表位置姿勢３４を表すこともできる。
【００４４】
ステップＳ６で代表位置姿勢３４を演算するときは、ステップＳ５で求めた平面または曲面の連結集合３２の代表位置における法線ベクトルを演算する。この法線ベクトルが代表位置姿勢３４の矢印３４ｂに相当する。一方、矢印３４ａは、ステップＳ４で求めた慣性主軸３３の向きに相当する。代表位置姿勢３４を用いることで、物品２０の位置だけでなく、物品２０の延在する方向及び物品２０の傾斜、すなわち物品２０の姿勢を特定することができる。
【００４５】
ステップＳ６では、連結集合３２に属する三次元点３１が存在する領域の面積を演算し、図９に示すように、面積が所定値より小さい連結集合３２からは代表位置姿勢３４を取得しない。すなわち、表面が十分に露出していると判断される連結集合３２に対してのみ、代表位置姿勢３４を求め、代表位置姿勢３４を求めていない連結集合３２は、物品取出しの対象としない。これにより、上面の一部が他の物品２０で覆われている奥側の物品２０にハンド１４が接近することを防止でき、ハンド１４と取出し対象以外の物品２０とが衝突することを抑制できる。
【００４６】
次に、ステップＳ７で、各々の代表位置姿勢３４に対応するハンド位置姿勢３５を演算する。図１０は、代表位置姿勢３４に対応するハンド位置姿勢３５の一例を示す図である。ハンド位置姿勢３５は、代表位置姿勢３４と同様に、直角に交差する一対の矢印３５ａ，３５ｂで示されている。
【００４７】
ハンド位置姿勢３５の位置（矢印３５ａ，３５ｂの交点）及び姿勢（矢印３５ａ，３５ｂの方向）の求め方には、それぞれ幾通りずつかの方法がある。位置に関しては、例えば、代表位置姿勢３４の位置をそのままハンド位置姿勢３５の位置とする方法がある。別の例として、代表位置姿勢３４の位置よりも所定の座標軸３６（例えばＺ軸）の向きに沿って所定長さだけ移動した位置を、ハンド位置姿勢３５の位置とする方法もある。姿勢に関しては、例えば、代表位置姿勢３４の姿勢をそのままハンド位置姿勢３５の姿勢とする方法がある。別の例として、代表位置姿勢３４の位置がコンテナ１６の壁に近い場合、壁とハンド１４との衝突を避ける目的で、壁から離れる方向にハンド１４を傾けるようにする方法もある。
【００４８】
図１０では、代表位置姿勢３４を、所定の座標軸３６の方向に所定長さだけ平行移動したものをハンド位置姿勢３５としている。したがって、代表位置姿勢３４の矢印３４ａ，３４ｂ、すなわち連結集合３２の慣性主軸３３の方向及び連結主軸３２をなす面の法線ベクトルの方向と、ハンド位置姿勢３５の矢印３５ａ，３５ｂとは、互いに平行である。
【００４９】
ステップＳ８では、各々のハンド位置姿勢３５にＰ１，Ｐ２，・・・，Ｐｎとナンバリングする。但し、ｎはハンド位置姿勢３５の個数である。図１１は、ナンバリングされたハンド位置姿勢３５を示す図であり、所定の座標軸３６に対する座標値の降順、つまり、高い位置にあるものから順番にナンバリングされている。ナンバリングの順序は、座標値の降順の他、連結集合３２をなす面の面積の大きい順など、取得した三次元点集合に基づいて任意の方法で決定付けられる順番としてもよい。なお、図１１では、ｎ＝３である。
【００５０】
ステップＳ９では、自然数値を取る変数ｊに対して初期値を与える。すなわち、ｊ←１とする。変数ｊは、ハンド位置姿勢３５の番号の指定に用いる。
【００５１】
ステップＳ１０では、ロボット駆動用のアクチュエータ（電動モータ）に制御信号を出力し、図１２に示すように、ハンド１４をハンド位置姿勢Ｐｊ（例えばＰ１）に移動する。このとき、ハンド駆動用のアクチュエータに制御信号を出力し、ハンド１４の回転軸１４ｂの軸線１４ｃを法線ベクトル（図１０の矢印３５ｂの位置及び方向）に一致させるとともに、一対の把持部１４ａが図１０の矢印３５ａに対して対称に位置するように軸線１４ｃを中心に回転軸１４ｂを回転させる。これにより、物品２０の長手方向に沿った慣性主軸３３の両側に一対の把持部１４ａが配置され、取り出すべき物品２０に対し、ハンド１４を所定の相対位置姿勢とすることができる。
【００５２】
ステップＳ１１では、ハンド駆動用のアクチュエータに物品２０を保持するための制御信号を出力する。これにより、図１３に示すようにハンド１４の把持部１４ａで物品２０の外周面が把持される。一対の把持部１４ａは物品２０の中心軸線Ｌ０（図７）に対して対称に配置されているため、把持部１４ａで物品２０を安定的に保持することができる。この場合、例えば、把持部１４ａが吸引ノズルを有する場合、真空ポンプを作動し、吸引力で物品２０を吸引、保持する。把持部１４ａが吸着用磁石を有する場合、電磁コイルに電流を流して磁石を作動し、磁力で物品２０を吸着、保持する。把持部１４ａがチャックである場合、チャックを開くあるいは閉じることで、物品２０を保持する。
【００５３】
次に、ステップＳ１２で、図１４に示すように、ロボット駆動用のアクチュエータに制御信号を出力し、物品２１を保持したハンド１４を所定方向、例えばハンド位置姿勢３５の矢印３５ｂ方向、あるいは所定の座標軸３６の方向に沿って上昇させる。ハンド１４を所定方向に上昇させることで、ロボット１２の動作によりハンド１４を移動させる際、物品２１や把持部１４ａと他の物品２０との衝突を避けることができる。
【００５４】
ステップＳ１３では、把持部１４ａによる物品２１の保持が成功したか否かを判定する。この判定は、例えば、把持部１４ａが吸着用磁石を有する場合、近接センサで物品２１が存在するか否かを判定し、判定結果に応じて保持が成功したか否かを判定すればよい。把持部１４ａが吸引ノズルを有する場合、吸引時のエアの流量や圧力の変化に応じて保持が成功したか否かを判定すればよい。把持部１４ａがチャックを有する場合、開閉確認センサでチャックの開閉状態を確認し、保持が成功したか否かを判定すればよい。保持が成功したと判定されると、ステップＳ１４へ進む。保持が成功していないと判定されると、ステップＳ１５へ進む。
【００５５】
ステップＳ１５では、ｊ≧ｎか否かを判定する。この判定は、ｎ個（図１４では３個）のハンド位置姿勢３５の中にハンド１４が未だ到達していないものが存在するか否かの判定である。ｊ＜ｎと判定されると、ハンド位置姿勢Ｐｊ＋１にハンド１４が未だ到達していないので、ステップＳ１６でｊ←ｊ＋１とし、ステップＳ１０へ戻る。そして、図１５に示すようにロボット１２の動作により、ハンド１４を次のハンド位置姿勢Ｐｊ（例えばＰ２）へ移動させる。次いで、ハンド駆動用のアクチュエータに物品２０を保持するための制御信号を出力し、図１６に示すように、次の物品２１を保持する（ステップＳ１１）。ステップＳ１５でｊ≧ｎと判定されると、ｎ個のハンド位置姿勢３５の全てにハンド１４が到達したので、ステップＳ１６へ進む。
【００５６】
ステップＳ１４では、ロボット駆動用アクチュエータに制御信号を出力し、図１７に示すように、ハンド１４を、払い出し装置１７に対し所定の相対位置姿勢となるように払い出し装置１７の上方に移動する。例えば、図１７に示すように払い出し装置１７が斜め下方に延在するシューターを有する場合、シューターの延在する方向に物品２１の中心軸線Ｌ０が向かうようにハンド１４の位置姿勢を制御する。その後、把持部駆動用アクチュエータに制御信号を出力し、物品２１を把持部１４ａから取外す。なお、払い出し装置１７は、シューターではなくベルトコンベアなどでもよい。以上で、１サイクルの処理が終了となる。
【００５７】
本実施形態によれば以下のような作用効果を奏することができる。
（１）本実施形態では、三次元点空間にバラ積された複数の物品２０の表面位置を三次元測定機１１で測定して複数の三次元点３１の位置情報を取得し（ステップＳ１）、これら複数の三次元点３１の中から、互いに近傍にある三次元点３１を連結してなる連結集合３２を求め（ステップＳ２）、連結集合３２に属する三次元点３１の位置情報に基づき、物品２０の位置及び姿勢を特定し（ステップＳ６）、物品２０を取出し可能なハンド位置姿勢３５を求め（ステップＳ７）、さらにハンド位置姿勢３５へハンド１４を移動して物品２０を取出すようにロボット１２を制御する（ステップＳ１０〜ステップＳ１２）。
【００５８】
これにより、パターンマッチング等によらず物品２０の位置及び姿勢を特定することができる。このため、物品２０のモデルパターンを作成する必要がなく、多品種や不定形の物品２０であっても容易にその位置及び姿勢を認識して、物品２０を保持することができる。また、追加された新品種の物品２０に対してもモデルパターンを追加することなく、その位置及び姿勢を認識することができ、物品２０の位置姿勢の認識失敗や誤認識あるいは物品２０の取損ねや衝突等の問題を回避し、上方にある取出し易い物品２０へハンド１４を高速に移動させて物品２０を効率良く取出すことができる。また、連結集合３２により物品２０の位置及び姿勢を特定するので、ステレオ撮影以外の三次元測定機も使用できるため、様々な装置構成で作用効果を奏することができる。
【００５９】
（２）物品２０の姿勢を特定するときには、連結集合３２に属する三次元点３１の主成分分析によって連結集合３２の主成分方向（慣性主軸３３の方向）を算出し、この主成分方向に基づいて物品の姿勢を特定するようにした。これにより、円柱形状等の物品２０の長手方向の向き及び傾きを特定することができ、二股形状の把持部１４ａを有するハンド１４を用いて物品２０を安定的に保持することができる。また、主成分方向を考慮してハンド１４で物品２０を把持するため、把持した物品２０を所定の姿勢で台座やシューターなどの払い出し装置に配置することができ、物品２０の払い出し工程を容易に行うことができる。これに対し、主成分方向を考慮しないと、カメラ等で物品２０の把持姿勢を確認する必要があり、払い出し工程が複雑となる。
【００６０】
（３）連結集合３２の重心位置と連結集合３２に属する三次元点３１との差から連結集合３２の重心位置に対する共分散行列を算出し、この共分散行列の固有値が最大となる固有ベクトルを用いて主成分方向を算出するので、主成分方向が物品２０の長手方向に良好に一致し、物品２０の姿勢を精度よく特定できる。
【００６１】
（４）連結集合３２の重心位置に基づいて連結集合３２を代表する位置を求めるとともに、主成分方向に基づいて連結集合３２を代表する姿勢を求め（ステップＳ６）、連結集合３２を代表する位置及び姿勢である代表位置姿勢３４に対応してハンド位置姿勢３５を求めるようにした（ステップＳ７）。これにより物品２０の表面が傾いている場合に、その傾きに合わせて代表位置姿勢３４を算出することができ、物品２０の傾きに合わせてハンド１４を傾かせ、物品２０を安定的に保持することができる。
【００６２】
（５）連結集合３２に属する三次元点の主成分分析によって連結集合３２の第１主成分方向、第２主成分方向及び第３主成分方向を算出し、第１主成分方向、第２主成分方向及び第３主成分方向に基づいてハンド位置姿勢３４を求めることもできる。このように３つの主成分方向を考慮することで、複雑形状の物品２０を把持部１４ａで容易に把持することができる。
【００６３】
（６）互いに所定距離内にある三次元点３１を連結して連結集合３２を構成したので（図６）、バラ積みされた複数の物品２０の中から、個々の物品２０を認識することができる。したがって、コンテナ１６内に物品２０が重なって配置されている場合や、物品表面の乱反射等により光学的に三次元点３１の位置データを取得できない場合等、三次元点集合３０のデータに欠損がある場合であっても、物品２０の位置及び姿勢を認識することができる。
【００６４】
なお、三次元点測定機１１によって取得された複数の三次元点３１の中から、互いに近傍にある三次元点３１を連結してなる連結集合３２を求め、連結集合３２に属する三次元点３１の位置情報に基づき、物品２０の位置及び姿勢を特定し、特定された物品２０を取出し可能なハンド位置姿勢３５を求め、求められたハンド位置姿勢３４へハンド１４を移動して物品２０を取出すようにロボット１２を制御し、さらに物品２０の姿勢を特定するときに、連結集合３２に属する三次元点３１の主成分分析によって連結集合３２の主成分方向を算出し、この主成分方向に基づいて物品２０の姿勢を特定するのであれば、三次元空間にバラ積みされた物品２０を取出す物品取出方法の構成はいかなるものでもよい。
【００６５】
図１８は、図１のロボット制御装置１３の内部構成を示すブロック図である。ロボット制御装置１３は、連結集合演算部１３１と、物品特定部１３２と、ハンド位置姿勢演算部１３３と、ロボット制御部１３４部とを有する。
【００６６】
連結集合演算部１３１において連結集合３２を演算する際に、例えば１次元以上３次元以下の所定座標系の各々に対して所定距離を定め、所定座標系に関して第１三次元点３１と第２三次元点３１との距離がそれぞれ所定距離内である場合のみ、第１三次元点３１と第２三次元点３１が互いに近傍にあると判定し、両者を連結するようにしてもよい。すなわち、三次元点測定機１１によって取得された複数の三次元点３１の中から、互いに近傍にある三次元点３１を連結してなる連結集合３２を求めるのであれば、連結集合演算部の構成は上述したものに限らない。
【００６７】
上記実施形態では、連結集合３２の重心位置と連結集合３２に属する三次元点３１との差から連結集合３２の重心位置に対する共分散行列を算出し、この共分散行列の固有値が最大となる固有ベクトルを用いて主成分方向（慣性主軸３３）を算出するようにしたが、連結集合３２に属する三次元点３１の主成分分析によって連結集合３２の主成分方向を算出し、この主成分方向に基づいて物品２０の姿勢を特定するのであれば、物品特定部１３２の構成はいかなるものでもよい。
【００６８】
上記実施形態では、連結集合３２の重心位置により物品２０の代表位置を特定し、連結集合３２の慣性主軸３３と連結集合３２をなす面の法線ベクトルとにより物品２０の代表姿勢（図９の矢印３４ａ，３４ｂ）を特定したが、主成分分析によって得られた連結集合３２の第１主成分方向Ｌ１、第２主成分方向Ｌ２及び第３主成分方向Ｌ３に基づいて、物品２０の代表位置姿勢３４やハンド位置姿勢３５を特定してもよい。例えば、代表位置姿勢３４を表す図９の矢印３４ｂを、第２主成分方向Ｌ２に一致させ、第２主成分方向Ｌ２に基づいてハンド位置姿勢３５（図１０の矢印３５ｂ）を求めてもよい。これにより図２のステップＳ５の処理が不要となる。
【００６９】
上記実施形態では、長方形状の物品２０の延在する方向及び傾きを考慮して、一対の把持部１４ａで物品２０を把持可能なハンド１４の位置姿勢をハンド位置姿勢３５としたが、本発明の物品取出装置は種々の形状の物品に適用可能である。したがって、ハンド位置姿勢３５の設定は、物品２０の形状に応じて適宜変更することができ、物品２０を取出し可能なハンド位置姿勢３５を求めるハンド位置姿勢演算部１３３の構成は上述したものに限らない。
【００７０】
上記実施形態では、コンテナ１６内の物品２０をハンド１４で保持し、保持した物品２１を払い出し装置１７まで搬送するようにしたが、物品２１を払い出し装置１７以外に搬送するようにしてもよい。したがって、ハンド位置姿勢演算部１３３により求められたハンド位置姿勢３５へハンド１４を移動して物品２０を取出すようにロボット１２を制御するのであれば、ロボット制御部１４４の構成はいかなるものでもよい。
【００７１】
以上の説明はあくまで一例であり、本発明の特徴を損なわない限り、上述した実施形態及び変形例により本発明が限定されるものではない。上記実施形態及び変形例の構成要素には、発明の同一性を維持しつつ置換可能かつ置換自明なものが含まれる。すなわち、本発明の技術的思想の範囲内で考えられる他の形態についても、本発明の範囲内に含まれる。また、上記実施形態と変形例の１つまたは複数を任意に組み合わせることも可能である。
【符号の説明】
【００７２】
１０    物品取出装置
１１    三次元測定機
１２    ロボット
１３    ロボット制御装置
１４    ハンド
２０    物品
３１    三次元点
３２    連結集合
３３    慣性主軸
３４    代表位置姿勢
３５    ハンド位置姿勢
１３１    連結集合演算部
１３２    物品特定部
１３３    ハンド位置姿勢演算部
１３４    ロボット制御部
【図１】
2015089590.tif 000003
【図２】
2015089590.tif 000004
【図３】
2015089590.tif 000005
【図４】
2015089590.tif 000006
【図５】
2015089590.tif 000007
【図６】
2015089590.tif 000008
【図７】
2015089590.tif 000009
【図８】
2015089590.tif 000010
【図９】
2015089590.tif 000011
【図１０】
2015089590.tif 000012
【図１１】
2015089590.tif 000013
【図１２】
2015089590.tif 000014
【図１３】
2015089590.tif 000015
【図１４】
2015089590.tif 000016
【図１５】
2015089590.tif 000017
【図１６】
2015089590.tif 000018
【図１７】
2015089590.tif 000019
【図１８】
2015089590.tif 000020