(57)【要約】【課題】対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報の精度を高めること。【解決手段】３次元認識装置は、実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得する計測データ取得部と、前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得する基準点取得部と、前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定する対応点決定部と、対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成する情報生成部とを含む。【選択図】図４
2017207385.tif 000002
【特許請求の範囲】
【請求項１】
実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得する計測データ取得部と、
前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得する基準点取得部と、
前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定する対応点決定部と、
対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成する情報生成部とを含む、３次元認識装置。
【請求項２】
前記中心軸は、前記対象物体の慣性主軸を含む、請求項１に記載の３次元認識装置。
【請求項３】
複数の前記分割部分のそれぞれに属する前記基準点は、複数の前記分割部分のそれぞれにおいて前記重心から最も遠い第１基準点を含む、請求項１又は２に記載の３次元認識装置。
【請求項４】
複数の前記分割部分のそれぞれに属する前記基準点は、複数の前記分割部分のそれぞれにおいて前記第１基準点よりも前記重心に近い第２基準点を更に含む、請求項３に記載の３次元認識装置。
【請求項５】
前記中心軸は、互いに直交する２つ又は３つの軸を含む、請求項１〜４のうちのいずれか１項に記載の３次元認識装置。
【請求項６】
対応関係にある前記基準点と前記対応点との距離であって、複数の前記基準点のそれぞれに係る各距離の合計値が、最小となる座標変換行列を算出する座標変換行列算出部を更に含み、
前記各位置関係は、前記座標変換行列算出部により算出された前記座標変換行列を含む、請求項１又は２に記載の３次元認識装置。
【請求項７】
複数の前記分割部分のそれぞれに属する前記基準点は、複数の前記分割部分のそれぞれにおいて前記重心から最も遠い第１基準点と、複数の前記分割部分のそれぞれにおいて前記第１基準点よりも前記重心に近い第２基準点とを含み、
前記座標変換行列算出部は、前記第１基準点に係る前記座標変換行列である第１座標変換行列と、前記第２基準点に係る前記座標変換行列である第２座標変換行列とを算出し、
前記情報生成部は、前記第１座標変換行列及び前記第２座標変換行列のうちの、前記合計値が小さい方に基づいて、前記３次元情報を生成する、請求項６に記載の３次元認識装置。
【請求項８】
実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得し、
前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得し、
前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定し、
対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成することを含む、コンピューターにより実行される３次元認識方法。
【請求項９】
実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得し、
前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得し、
前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定し、
対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成する
処理をコンピューターに実行させる３次元認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、３次元認識装置、３次元認識方法、及び３次元認識プログラムに関する。
【背景技術】
【０００２】
対象物体の３次元形状モデルの幾何特徴と対象物体の距離画像上の幾何特徴との間の３次元空間における距離の差を用いて対象物体の位置及び姿勢を算出する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2004-226197号公報
【特許文献２】特開2011-175477号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような従来技術では、対象物体の位置及び姿勢の算出に用いる対象物体の複数の幾何特徴が対象物体の局所的な一部だけに偏在する可能性があり、対象物体の位置及び姿勢を精度良く算出することが難しい。
【０００５】
そこで、１つの側面では、本発明は、対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報の精度を高めることを目的とする。
【課題を解決するための手段】
【０００６】
一局面によれば、実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得する計測データ取得部と、
前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得する基準点取得部と、
前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定する対応点決定部と、
対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成する情報生成部とを含む、３次元認識装置が提供される。
【発明の効果】
【０００７】
対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報の精度を高めることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】ロボット制御システムの一例を概略的に示す図である。
【図２】ロボットの一例を概略的に示す図である。
【図３】３次元認識装置のハードウェア構成の一例を示す図である。
【図４】実施例１による３次元認識装置の機能の一例を示す機能ブロック図である。
【図５】計測点ヒストグラムの一例の説明図である。
【図６】基準点の説明図である。
【図７】基準点の説明図である。
【図８】点群データと３次元モデルＷＳとの関係を示す模式図である。
【図９】最小化座標変換行列の説明図である。
【図１０】実施例１による３次元認識装置により実行される処理の一例を示すフローチャートである。
【図１１】実施例２による３次元認識装置の機能の一例を示す機能ブロック図である。
【図１２】実施例２による３次元認識装置により実行される処理の一例を示すフローチャートである。
【図１３】実施例３による３次元認識装置の機能の一例を示す機能ブロック図である。
【図１４】実施例３による３次元認識装置により実行される処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１０】
［実施例１］
図１は、実施例１による３次元認識装置２０を含むロボット制御システム１の一例を概略的に示す図である。図２は、ロボット１４の一例を概略的に示す図である。
【００１１】
ロボット制御システム１は、３次元計測器１２と、ロボット１４と、ロボット制御装置１６と、３次元認識装置２０とを含む。
【００１２】
３次元計測器１２は、実空間に存在するワーク（対象物体の一例）の表面上の複数点の３次元位置を計測する。３次元計測器１２は、１つだけ設けられてもよいし、協動する態様で複数台設けられてもよい。以下では、３次元位置が計測されたワークの表面上の点を、「計測点」とも称する。計測点は、ワークの表面の全体（３次元計測器１２により計測可能なワークの表面領域の全体）にわたって多数あり、点群を形成する。
【００１３】
３次元位置の計測方法は、任意であるが、例えば三角測量の方式である。具体的には、３次元計測器１２は、例えばステレオ３次元カメラであってよい。この場合、３次元計測器１２は、複数のステレオ画像に基づいて、ワークの表面上の計測点の３次元位置を計測してもよい。この際、３次元計測器１２は、特定のパターンをワークに投影してそれをイメージセンサで読み取り、投影パターンの幾何学的な歪みから三角測量の方式によりワークの表面上の計測点の３次元位置を計測してもよい。或いは、３次元位置の計測方法は、レーザー光を照射してイメージセンサで反射光を読み取り、その位相のずれから距離情報を計測するTOF（Time-of-Flight）方式を利用するものであってもよい。
【００１４】
３次元計測器１２は、ワークの作業台１４８（図２参照）に対して所定位置関係になるように配置されてよい。ワークは、ロボット１４による作業対象となる部品等である。ワークは、例えば水平面を有する作業台１４８（図２参照）上に載せられる。作業台１４８は、固定であってもよいし、コンベヤ等により形成されてもよい。コンベヤの場合、ワークは、部品供給トレイ上に入れられて搬送されてもよい。この場合、ワークに代えて又は加えて、部品供給トレイが、３次元情報の取得対象（対象物体の他の一例）であってもよい。但し、以下では、一例として、ワークが３次元情報の取得対象であるとする。
【００１５】
３次元計測器１２は、ロボット制御システム１の稼働中、複数の時点で（例えば所定周期毎に）、各計測点の３次元位置を計測する。尚、複数時点間でワークが動いていると、計測対象が同一個体のワークであっても、各時点での各計測点の位置は同ワークの表面上で異なり得る。以下の説明において、各時点で得られる各計測点の３次元位置の計測データを、「点群データ」と称する。また、説明上、点群データの１単位は、計測ごととし、「点群データごと」とは、各時点で得られる別々の点群データを指す。３次元計測器１２は、点群データを３次元認識装置２０に与える。
【００１６】
ロボット１４は、ワークを扱う任意のロボットであるが、例えば図２に示すような、リンク機構を備える多関節ロボットである。図２に示す例では、ロボット１４は、関節１４１，１４２を有するリンク機構を備える。また、ロボット１４は、リンク機構の一端に基部１４６を備え、他端（先端）に手先１４３を備える。手先１４３には、ハンド１４４が装着される。ハンド１４４は、ワークを把持する等の機能を有する。尚、図２では、作業台１４８上にワークＷが示される。
【００１７】
ロボット制御装置１６は、コンピューターにより実現される。ロボット制御装置１６は、３次元認識装置２０との無線通信及び／又は有線通信によりワークの３次元情報（後述）を得る。ロボット制御装置１６は、３次元認識装置２０から得るワークの３次元情報に基づいて、ロボット１４を制御する。ロボット制御方法の詳細は任意である。例えば、ロボット制御装置１６は、ワークの３次元情報に基づいて、ハンド１４４の目標位置及び目標角度を算出し、ハンド１４４の目標位置及び目標角度が実現されるように、各関節（関節１４１，１４２等）に内蔵されるモータ（図示せず）を制御してよい。
【００１８】
３次元認識装置２０は、３次元計測器１２との無線通信及び／又は有線通信によりワークの点群データを得る。３次元認識装置２０は、３次元計測器１２から得るワークの点群データに基づいて、ワークの３次元情報を生成する。実施例１では、一例として、ワークの３次元情報は、実空間におけるワークの位置及び姿勢の双方を表す情報を含む。尚、変形例では、ワークの３次元情報は、実空間におけるワークの位置及び姿勢のいずれか一方のみ表す情報であってもよい。
【００１９】
３次元情報において、実空間におけるワークの位置及び姿勢は、実空間の座標系（例えばワールド座標系）で表されてよい。或いは、３次元情報において、ワークの位置及び姿勢は、実空間の座標系に対して一定の座標変換行列を介して座標変換できる他の座標系で表されてもよい。この場合も、他の座標系で表されたワークの位置及び姿勢は、座標変換行列を介して実空間におけるワークの位置及び姿勢を表しているといえる。他の座標系は、例えば点群データの座標系であってもよいし、ロボット１４の制御に用いる他の座標系であってもよい。
【００２０】
尚、図１に示す例では、３次元認識装置２０は、ロボット制御装置１６とは別体であるが、ロボット制御装置１６内に組み込まれてもよい。即ち、３次元認識装置２０及びロボット制御装置１６は、一のコンピューターユニットにより実現されてもよい。或いは、３次元認識装置２０の一部の機能だけがロボット制御装置１６内に組み込まれてもよい。
【００２１】
次に、図３及び図４を参照して、３次元認識装置２０の構成について説明する。
【００２２】
図３は、３次元認識装置２０のハードウェア構成の一例を示す図である。
【００２３】
図３に示す例では、３次元認識装置２０は、制御部１０１、主記憶部１０２、補助記憶部１０３、ドライブ装置１０４、ネットワークＩ／Ｆ部１０６、入力部１０７を含む。
【００２４】
制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置であり、入力部１０７や記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。
【００２５】
主記憶部１０２は、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）などである。主記憶部１０２は、制御部１０１が実行する基本ソフトウェアであるＯＳ（Operating  System）やアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２６】
補助記憶部１０３は、ＨＤＤ（Hard  Disk  Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００２７】
ドライブ装置１０４は、記録媒体１０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【００２８】
記録媒体１０５は、所定のプログラムを格納する。この記録媒体１０５に格納されたプログラムは、ドライブ装置１０４を介して３次元認識装置２０にインストールされる。インストールされた所定のプログラムは、３次元認識装置２０により実行可能となる。
【００２９】
ネットワークＩ／Ｆ部１０６は、有線及び／又は無線回線などのデータ伝送路により構築されたネットワークを介して接続された通信機能を有する周辺機器と３次元認識装置２０とのインターフェースである。
【００３０】
入力部１０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、マウスやタッチパッド等を有する。
【００３１】
尚、図３に示す例において、以下で説明する各種処理等は、プログラムを３次元認識装置２０に実行させることで実現することができる。また、プログラムを記録媒体１０５に記録し、このプログラムが記録された記録媒体１０５を３次元認識装置２０に読み取らせて、以下で説明する各種処理等を実現させることも可能である。なお、記録媒体１０５は、様々なタイプの記録媒体を用いることができる。例えば、記録媒体１０５は、ＣＤ(Compact  Disc)−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体１０５には、搬送波は含まれない。
【００３２】
図４は、３次元認識装置２０の機能の一例を示す機能ブロック図である。
【００３３】
３次元認識装置２０は、点群データ取得部２２（計測データ取得部の一例）と、計測点ヒストグラム生成部２３と、３次元認識処理部２４と、点群データ記憶部２６と、モデルデータ記憶部２８とを含む。点群データ取得部２２、計測点ヒストグラム生成部２３、及び３次元認識処理部２４は、例えば図３に示す制御部１０１がプログラムを実行することにより実現できる。点群データ記憶部２６は、例えば図３に示す補助記憶部１０３により実現できる。また、モデルデータ記憶部２８は、例えば図３に示す主記憶部１０２により実現できる。
【００３４】
点群データ取得部２２は、３次元計測器１２から点群データを取得する。例えば、点群データ取得部２２は、３次元計測器１２が計測を行うごとに、リアルタイムで点群データを取得する。点群データ取得部２２は、取得した点群データを点群データ記憶部２６に記憶する。
【００３５】
計測点ヒストグラム生成部２３は、点群データ取得部２２が取得した点群データに基づいて、点群データに含まれる各計測点に係るヒストグラム（第１ヒストグラムの一例、以下、「計測点ヒストグラム」と称する）を生成する。計測点ヒストグラム生成部２３は、計測点ヒストグラムのデータを点群データ記憶部２６に記憶する。計測点ヒストグラムは、ワークの計測点に係る形状特徴を表す。形状特徴は、位置的な特徴ではなく、幾何的な形状特徴である。形状特徴は、例えば計測点及びその周辺領域における法線方向に関する特徴等であってもよい。従って、計測点ヒストグラムは、計測点における局所的な幾何形状を表す特徴量を表す。図５は、ある計測点の形状特徴に係る計測点ヒストグラムの一例の説明図である。図５には、横軸にビンを示し、縦軸に各ビンの割合を示す。例えば、図５に示す計測点ヒストグラムは、ある計測点を中心点とし、該中心点と、該中心点の近傍の複数（図５では３３個）の点（ここでは、「近傍点」と称する）との位置関係を表す。例えば、中心点と任意の１つの近傍点との間の位置関係は、それぞれの法線方向のなす角度で表すことができる。この場合、ある計測点を中心点としたとき、角度は、近傍点ごとに算出される。このとき、ビンは、角度の値に対する各範囲を表す。従って、Ｎ個の近傍点のうちの、ｍ個の近傍点に係る角度が、あるビンｉに係る範囲内に入る値を持つ場合、ビンｉの割合は、ｍ／Ｎとなる。このように、図５に示す計測点ヒストグラムは、ある計測点を中心点としたときの、中心点と複数の近傍点との間の位置関係を表す値の分布を表す。尚、複数の形状特徴を個別に用いる場合、計測点ヒストグラムは、形状特徴毎に算出（生成）されてもよい。
【００３６】
３次元認識処理部２４は、点群データ取得部２２が取得した点群データに対して３次元認識処理を行うことで、該点群データが得られた時点におけるワークの３次元情報を生成する。３次元認識処理は、点群データごとに実行されてよい。即ち、３次元認識処理部２４は、ある１時点に係る点群データに基づいて、該時点におけるワークの位置及び姿勢に関する３次元情報を生成してよい。３次元認識処理部２４は、点群データ記憶部２６内の点群データと、モデルデータ記憶部２８内のモデルデータとに基づいて、３次元情報を生成する。３次元情報の生成方法は、以下に詳説する。
【００３７】
３次元認識処理部２４は、基準点取得部２４２と、対応点決定部２４４と、座標変換行列算出部２４６と、情報生成部２４８とを含む。
【００３８】
基準点取得部２４２は、ワークに対応する３次元モデルの表面上の複数の基準点の３次元位置を取得する基準点取得処理を行う。基準点取得処理は、計測対象のワークの種類が変化する毎に、１回（初回）だけ実行されてもよい。複数の基準点のそれぞれは、３次元モデルの中心軸Ｉ（図７参照）まわりに分割された３次元モデルの複数の分割部分のそれぞれに属する。ワークの３次元モデルは、例えば同ワークのＣＡＤ（computer-aided  design）データ自体又はそれに基づくものであり、３次元モデルのスケールは、例えば同ワークの実物と同じとされる。各基準点は、後述するが、ワークの３次元情報の生成に用いられる。各基準点の３次元位置は、３次元モデルの座標系（以下、「モデル座標系」と称する）で定義されてよい。各基準点は、予め設定されてよく、各基準点の３次元位置は、モデルデータ記憶部２８内のモデルデータに含められてよい。例えば、各基準点は、ワークの種類ごとに予め設定しておくことができる。この場合、各基準点の３次元位置は、ワークの種類ごとに、モデルデータ記憶部２８内のモデルデータに含められてよい。この場合、基準点取得部２４２は、計測対象のワークに係る各基準点の３次元位置を、モデルデータ記憶部２８から抽出することで同３次元位置を取得できる。或いは、基準点取得部２４２は、計測対象のワークの種類が変化する毎に、同種類のワークに係る各基準点の３次元位置を算出することで同３次元位置を取得してもよい。
【００３９】
図６及び図７は、基準点の説明図である。図６は、３次元モデルＷＳを模式的に示す斜視図である。図６では、モデル座標系（Ｘ軸，Ｙ軸，及びＺ軸）が示されると共に、３次元モデルＷＳの中心軸Ｉが示される。中心軸Ｉは、３次元モデルの略重心を通る軸である。尚、３次元モデルの略重心とは、必ずしも３次元モデルの正確な重心（例えば計算値に基づく重心やワークの実測値の基づく重心）に一致する必要はなく、該正確な重心の近傍の範囲（例えば該正確な重心を中心とした所定半径の球体内の範囲）を含む概念である。以下では、一例として、中心軸Ｉは、３次元モデルの重心を通る軸であるとする。中心軸Ｉは、好ましくは、慣性主軸に対応する。尚、慣性主軸は、重心を通り、軸まわりの回転時に、他の軸まわりの角運動量が０となる軸である。慣性主軸は、１つ物体に対して３方向（直交する３軸）ある。中心軸Ｉは、３つの直交する慣性主軸のいずれかであってよい。例えば、中心軸Ｉは、３つの直交する慣性主軸のうちの、慣性モーメントが最大である慣性主軸であってよい。或いは、ワークのおよその姿勢が既知である場合、中心軸Ｉは、ワークに作用する重力方向に対する傾きが最も小さい慣性主軸であってもよい。或いは、ワークのおよその位置が既知である場合、中心軸Ｉは、ワークと３次元計測器１２とを結ぶ直線に対する傾きが最も小さい慣性主軸であってもよい。実施例１では、一例として、中心軸Ｉは、３つの直交する慣性主軸のうちの、慣性モーメントが最大である慣性主軸であるとする。この場合、慣性主軸は、例えば３次元モデルの固有ベクトルと等価である。尚、点群Pi  (i=1,2,…,k)で表された物体の固有ベクトルは、下記式より共分散行列Cを求めることで、最も大きい固有値に対応する固有ベクトル（第1主成分）を得ることができる。
【００４０】
【数１】
2017207385.tif 000003
尚、点群Piのデータは、３次元モデル上のデータであるが、点群データ取得部２２により取得される点群データから中心軸Ｉが算出されてもよい。
【００４１】
図７は、中心軸Ｉに沿った方向で図６の３次元モデルＷＳを視た図である。図７に示す例では、３次元モデルＷＳは、６つの分割部分Ｇｒ１〜Ｇｒ６へと、中心軸Ｉまわりに６分割されている。尚、分割数は、２以上であり、好ましくは６以上であるが、使用する基準点の個数に応じて決定されてよい。分割数が多いほど、後述の３次元情報の精度が高くなるが、計算量が増える関係となる。分割数は、ワークの種類ごとに、ワークの属性に応じて決定されてもよい。中心軸Ｉまわりの分割態様は、任意であるが、好ましくは、基準点の偏在を低減する観点から、中心軸Ｉに沿った方向に視て、図７に示すように、均等な角度（図７に示す例では６０度）で分割される。
【００４２】
複数の分割部分のそれぞれに属する基準点は、好ましくは、複数の分割部分のそれぞれにおいて３次元モデルの重心から最も遠い点（以下、「第１基準点」とも称する）を含む。これは、重心からの距離が長い基準点ほど、その３次元位置がワークの姿勢を精度良く表すことができるためである。例えば、ワークの正規の姿勢に対して、中心軸Ｉまわりに角度θだけワークが回転した姿勢であるとき、中心軸Ｉまわりの角度θ分の変位量は、重心からの距離Ｄが長いほど大きくなりやすいためである。即ち、中心軸Ｉまわりの角度θ分の変位量は、Ｄ×ｓｉｎθであり、Ｄが大きいほど大きくなる。尚、第１基準点は、中心軸Ｉに沿って視たときの平面視で、３次元モデルの重心から最も遠い位置であってもよいし、重心から空間的な距離が最も長い位置であってもよい。
【００４３】
実施例では、一例として、複数の分割部分のそれぞれに属する基準点は、第１基準点であるとする。以下、複数の分割部分のそれぞれに属する各第１基準点の集合を、「第１基準点のセット」とも称する。
【００４４】
対応点決定部２４４は、点群データに含まれる全計測点のうちから、複数の基準点のそれぞれに対応付ける対応点を決定（抽出）する対応付け処理を行う。ある一の基準点に係る一の対応点は、点群データに含まれる全計測点のうちの、３次元モデル上の該一の基準点に対応するワーク上の部位（位置）に係る計測点（又はその可能性が高い計測点）である。対応付け処理は、形状特徴に基づいて実行されてもよい。例えば、対応点決定部２４４は、ある一の基準点に係るヒストグラム（第２ヒストグラムの一例、以下、「基準点ヒストグラム」と称する）と最も類似度が高い計測点ヒストグラム（図５）をもたらす計測点を、該一の基準点に対応付ける。即ち、対応点決定部２４４は、一の基準点に係る基準点ヒストグラムと全計測点のそれぞれに係る計測点ヒストグラムとの類似度を算出し、最も高い類似度となる一の計測点ヒストグラムに係る計測点を、該一の基準点に対応付ける。この場合、基準点ヒストグラムは、計測点ヒストグラムと同様の形状特徴を用いて生成されてよい。尚、基準点ヒストグラムは、基準点ごとに予め設定しておくことができる。この場合、各基準点の基準点ヒストグラムは、ワークの種類ごとに、モデルデータ記憶部２８内のモデルデータに含められてよい。この場合、対応点決定部２４４は、対応付け処理対象の基準点の基準点ヒストグラムを、モデルデータ記憶部２８から抽出できる。或いは、基準点取得部２４２は、対応付け処理対象の基準点が変化する毎に、変化した基準点に係る基準点ヒストグラムを算出することとしてもよい。
【００４５】
座標変換行列算出部２４６は、対応関係にある複数の基準点のそれぞれと複数の対応点のそれぞれとの各距離の合計値が最小となる座標変換行列（以下、「最小化座標変換行列」と称する）を算出する座標変換行列算出処理を行う。具体的には、座標変換行列算出部２４６は、対応関係にある複数の第１基準点のそれぞれと複数の対応点のそれぞれとに基づいて、最小化座標変換行列を算出する。
【００４６】
最小化座標変換行列Ｍは、例えば、下記のとおりである。
【００４７】
【数２】
2017207385.tif 000004
ここで、α１〜α９は、３軸（Ｘ軸，Ｙ軸，及びＺ軸）まわりの回転に係る成分であり、Tx〜Tzは、３軸（Ｘ軸，Ｙ軸，及びＺ軸）に沿った並進（平行移動）に係る成分である。このとき、一の対応点の３次元位置（点群データの座標系で定義）を（Ｘｉ，Ｙｉ，Ｚｉ）とし、最小化座標変換行列Ｍによる該一の対応点の座標変換後の座標を（ｘｉ，ｙｉ，ｚｉ）とすると、座標変換は次のとおりである。
【００４８】
【数３】
2017207385.tif 000005
このとき、対応点（Ｘ１，Ｙ１，Ｚ１）に対応する基準点の３次元位置を（ｘｉｒｅｆ，ｙｉｒｅｆ，ｚｉｒｅｆ）とすると、これらの２点間距離ｄｉは、次のとおりである。
【００４９】
【数４】
2017207385.tif 000006
従って、複数の基準点の数をｋとすると、対応関係にある複数の基準点のそれぞれと複数の対応点のそれぞれとの各距離ｄｉ（ｉ＝１，・・・，ｋ）の合計値Ｄｔｏｔａｌは、次のとおりである。
【００５０】
【数５】
2017207385.tif 000007
最小化座標変換行列Ｍは、合計値Ｄｔｏｔａｌを最小化する。例えば、座標変換行列算出部２４６は、合計値Ｄｔｏｔａｌを最小化する各成分（即ち、α１〜α９の各値、及びTx〜Tzの各値）を有する座標変換行列を探索し、該座標変換行列を最小化座標変換行列Ｍとする。尚、ここでは、最小化座標変換行列Ｍは、対応点を座標変換する行列であるが、逆に、基準点を座標変換する行列であってもよい。
【００５１】
図８及び図９は、対応付け処理及び座標変換行列算出処理の説明図である。図８は、点群データと３次元モデルＷＳとの関係を示す模式図である。図９は、最小化座標変換行列の説明図である。
【００５２】
図８には、ある一時点のワークの点群データの全計測点が点線（ワークＷを表す点線）で囲まれて模式的に示されると共に、点群データの対応点Ｓ１〜Ｓｋが模式的に示される。また、図８には、３次元モデルＷＳが模式的に示されると共に、３次元モデルＷＳの基準点Ｔ１〜Ｔｋが模式的に示される。ここでは、図８にて矢印で模式的に示すように、３次元モデルＷＳの基準点Ｔ１〜Ｔｋに対応点Ｓ１〜Ｓｋがそれぞれ対応付けられている。また、図８では、点群データは、点群データの座標系で示され、３次元モデルＷＳは、モデル座標系で示されているが、それぞれの座標系の関係は任意である。図９には、モデル座標系で、最小化座標変換行列Ｍによる座標変換後の点群データの全計測点が点線（ワークを表す点線）で囲まれて模式的に示されると共に、点群データの対応点Ｓ１〜Ｓｋが模式的に示される。
【００５３】
図８及び図９に模式的に示すように、対応付け処理の精度が高いと（対応点が基準点に精度良く対応していると）、最小化座標変換行列Ｍによる座標変換後の各対応点と各基準点との間の距離が短くなる。換言すると、最小化座標変換行列Ｍによる座標変換後の各対応点と各基準点との間の距離が短いほど、最小化座標変換行列Ｍが３次元モデルＷＳの位置及び姿勢に対する実際のワークの位置及び姿勢の関係を精度良く表している可能性が高い。従って、最小化座標変換行列Ｍによる座標変換後の各対応点と各基準点との間の距離が短いほど、最小化座標変換行列Ｍからワークの３次元情報を精度良く生成できる可能性が高くなる。
【００５４】
情報生成部２４８は、対応関係にある複数の基準点のそれぞれと複数の対応点のそれぞれとの各位置関係に基づいて、ワークの３次元情報を生成する。具体的には、情報生成部２４８は、座標変換行列算出部２４６により算出される最小化座標変換行列に基づいて、ワークの３次元情報を生成する。例えば、情報生成部２４８は、最小化座標変換行列に基づいて算出したモデル座標系でのワークの位置及び姿勢を、実空間の座標系でのワークの位置及び姿勢に座標変換し、実空間の座標系でのワークの位置及び姿勢を３次元情報として生成してもよい。或いは、情報生成部２４８は、最小化座標変換行列自体を３次元情報として生成してもよい。
【００５５】
点群データ記憶部２６には、上述のように、点群データ及び計測点ヒストグラムのデータが記憶される。点群データ及び計測点ヒストグラムのデータは、点群データが取得される毎（即ち計測毎）に、更新されてもよい。例えば、点群データ記憶部２６には、ＦＩＦＯ(first-in，first-out)形式で、直近の所定数の計測時点に係る点群データが記憶されてもよい。
【００５６】
モデルデータ記憶部２８には、上述のように、モデルデータが記憶される。モデルデータは、各基準点の３次元位置と、各基準点の基準点ヒストグラムとを含む。但し、基準点が事後的に算出又は変更され得る変形例では、モデルデータは、３次元モデルのデータを含んでよい。
【００５７】
次に、図１０を参照して、実施例１による３次元認識装置２０の動作例について説明する。
【００５８】
図１０は、実施例１による３次元認識装置２０により実行される処理の一例を示すフローチャートである。図１０に示す処理は、例えばロボット制御システム１の稼働中、３次元計測器１２の計測周期毎に実行されてよい。
【００５９】
ステップＳ１００では、点群データ取得部２２は、３次元計測器１２から点群データを取得し、点群データを点群データ記憶部２６に記憶する。
【００６０】
ステップＳ１０２では、計測点ヒストグラム生成部２３は、ステップＳ１００で取得された点群データに基づいて、計測点ヒストグラムのデータを生成し、生成した計測点ヒストグラムのデータを点群データに対応付けて点群データ記憶部２６に記憶する。
【００６１】
ステップＳ１０４では、基準点取得部２４２は、ステップＳ１００で取得された点群データに係る各基準点（第１基準点）及び各基準点ヒストグラムを、モデルデータ記憶部２８から取得する。基準点及び基準点ヒストグラムは、上述のとおりである。尚、ロボット制御システム１の稼働中に、扱うワークの種類が変化しうる場合は、基準点取得部２４２は、ワークの種類を特定し、特定した種類のワークに係る各基準点及び各基準点ヒストグラムを、モデルデータ記憶部２８から取得する。尚、この場合、ワークの種類の特定方法は任意であり、例えば、３次元認識装置２０に別途入力されるワーク種類情報に基づいて特定されてもよい。或いは、ワークの種類は、点群データ取得部２２等から通知されてもよい。尚、計測対象のワークの種類が１種類だけの場合は、ワークの種類の特定は不要である。
【００６２】
ステップＳ１０６では、対応点決定部２４４は、ステップＳ１００で取得された点群データに含まれる全計測点のうちから、ステップＳ１０４で取得された複数の基準点のそれぞれに対応付ける対応点を決定（抽出）する対応付け処理を行う。対応付け処理では、ステップＳ１０２で生成された計測点ヒストグラムと、ステップＳ１０４で取得された基準点ヒストグラムとが用いられる。対応付け処理は、上述のとおりである。
【００６３】
ステップＳ１０８では、座標変換行列算出部２４６は、ステップＳ１０４で取得された複数の基準点と、ステップＳ１０６で決定された複数の対応点のそれぞれとに基づいて、最小化座標変換行列を算出する。最小化座標変換行列は上述のとおりである。
【００６４】
ステップＳ１１０では、情報生成部２４８は、ステップＳ１０８で算出された最小化座標変換行列に基づいて、ステップＳ１００で取得された点群データに係るワークの３次元情報を生成する。このようにして生成されたワークの３次元情報は、上述のように、ロボット制御装置１６に与えれてよい。
【００６５】
ここで、上述のように、対応付け処理の精度が高い場合には、最小化座標変換行列からワークの３次元情報を精度良く生成できる可能性が高くなる。具体的には、対応付け処理の精度が高い場合には、最小化座標変換行列は、３次元モデルＷＳの位置及び姿勢に対する実際のワークの位置及び姿勢（点群データが得られた時点における実空間内のワークの位置及び姿勢）の関係を精度良く表す可能性が高くなる。従って、対応付け処理の精度が高い場合には、最小化座標変換行列に基づいて、ワークの３次元情報を精度良く生成できる可能性が高い。
【００６６】
しかしながら、例えば、３次元モデルの中心軸Ｉまわりに分割された３次元モデルの複数の分割部分のうちの、特定の１つの分割部分から複数の基準点を用いる比較例では、複数の基準点が３次元モデルの局所的な一部だけに偏在することになる。複数の基準点が３次元モデルの局所的な一部だけに偏在すると、対応付け処理の精度が高い場合でも、最小化座標変換行列からワークの３次元情報を精度良く生成することが難しい。これは、ワークが例えば中心軸Ｉまわりに回転したとき、かかる回転角度を精度良く検出するためには、中心軸Ｉまわりに分散した複数の基準点を用いる方が有利であるためである。
【００６７】
この点、実施例１によれば、上述のように、ワークの点群データとワークの３次元モデル上の複数の基準点とに基づいて、ワークの３次元情報が生成される。複数の基準点は、上述のように、３次元モデルの中心軸Ｉまわりに分割された３次元モデルの複数の分割部分のそれぞれに属する。従って、実施例１によれば、上述のように、３次元モデルの中心軸Ｉまわりに分割された３次元モデルの複数の分割部分のそれぞれに属する基準点が用いられるので、上述のような比較例において生じる不都合を防止できる。即ち、実施例１によれば、複数の基準点が３次元モデルの局所的な一部だけに偏在してしまう不都合を防止でき、ワークにおける幾何的な特徴部位の分布態様に影響されることなく、最小化座標変換行列からワークの３次元情報を精度良く生成することが可能となる。
【００６８】
ところで、ワークの姿勢の変化はワークの回転を伴う。実施例１で用いられる中心軸Ｉが、姿勢変化時のワークの回転軸に一致する場合は、実施例１で用いられる基準点は、姿勢変化時のワークの回転軸まわりに分割された３次元モデルの複数の分割部分のそれぞれに属することになる。かかる基準点は、姿勢変化時のワークの回転軸まわりに分散するので、ワークの３次元情報を算出するのに好適である。
【００６９】
この点、実施例１によれば、上述のように、中心軸Ｉは、ワークの３次元モデルの重心を通るので、姿勢変化時のワークの回転軸に近似する可能性が高い。従って、実施例１によれば、ワークの３次元情報の精度を高めることが可能となる。また、中心軸Ｉが慣性主軸に対応する場合には、中心軸Ｉが姿勢変化時のワークの回転軸に近似する可能性が更に高くなり得、ワークの３次元情報の精度を更に高めることが可能となる。
【００７０】
なお、ランダムに設定する複数の基準点を用いる他の比較例では、ランダムな設定回数を増加することで、基準点に基づくワークの３次元情報の精度を高めることが一応可能である。これは、ランダムな設定回数が増加するほど、適切な基準点が設定される可能性が高くなるためである。尚、このような比較例としては、例えばRANSAC（Random  Sample  Consensus）アルゴリズムを用いる方法がある。しかしながら、かかる他の比較例では、背反として、計算量が増加し、非効率である。
【００７１】
この点、実施例１によれば、上述のように、ランダムではない所定のルールに従って選定された複数の基準点が用いられるので、不必要に計算量を増加することなく、効率的にワークの３次元情報の精度を高めることが可能となる。
【００７２】
［実施例２］
実施例２による３次元認識装置２０Ａは、上述した実施例１による３次元認識装置２０に対して、第１基準点のセットに加えて、他の基準点のセット（以下で説明する第２基準点のセット）を用いる点が異なる。３次元認識装置２０Ａは、図３に示すハードウェア構成と同様のハードウェア構成を有する。３次元認識装置２０Ａは、上述した実施例１による３次元認識装置２０と同様、例えば図１に示したようなロボット制御システム１で用いることができる。
【００７３】
図１１は、３次元認識装置２０Ａの機能の一例を示す機能ブロック図である。３次元認識装置２０Ａは、上述した実施例１による３次元認識装置２０に対して、３次元認識処理部２４が３次元認識処理部２４Ａで置換され、モデルデータ記憶部２８がモデルデータ記憶部２８Ａで置換された点が異なる。３次元認識装置２０Ａにおいて、上述した実施例１による３次元認識装置２０と同様であってよい構成要素については、図１１において同一の参照符号を付して説明を省略する。
【００７４】
３次元認識装置２０Ａは、点群データ取得部２２と、計測点ヒストグラム生成部２３と、３次元認識処理部２４Ａと、点群データ記憶部２６と、モデルデータ記憶部２８Ａとを含む。点群データ取得部２２、計測点ヒストグラム生成部２３、及び３次元認識処理部２４Ａは、例えば図３に示す制御部１０１がプログラムを実行することにより実現できる。また、モデルデータ記憶部２８Ａは、例えば図３に示す主記憶部１０２により実現できる。
【００７５】
３次元認識処理部２４Ａは、点群データ取得部２２が取得した点群データに対して３次元認識処理を行うことで、該点群データが得られた時点におけるワークの３次元情報を生成する。３次元認識処理部２４Ａは、基準点取得部２４２Ａと、対応点決定部２４４Ａと、座標変換行列算出部２４６Ａと、情報生成部２４８Ａとを含む。
【００７６】
基準点取得部２４２Ａは、第１基準点のセットに加えて、他の基準点（以下、「第２基準点」とも称する）のセットを取得する。即ち、実施例２では、複数の分割部分のそれぞれに属する基準点は、第１基準点に加えて、同複数の分割部分のそれぞれにおいて第１基準点とは位置が異なる第２基準点を含む。従って、１つの分割部分からは、第１基準点と第２基準点とが取得される。第２基準点は、１つの分割部分あたり２つ以上取得されてもよい。例えば、第２基準点は、分割部分ごとに、重心に所定距離ずつ近づく態様で複数セット取得されてもよい。以下では、第１基準点の次に重心から遠い第２基準点のセットを、１番目のセットと称し、その次に重心から遠い第２基準点のセットを、２番目のセットと称し、以下同様である。尚、第２基準点のセット数は、１以上の任意の数であり、ワークの属性に応じて決定されてもよい。第１基準点の場合と同様、各第２基準点の３次元位置は、ワークの種類ごとに、モデルデータ記憶部２８Ａ内のモデルデータに含められてよい。この場合、基準点取得部２４２Ａは、計測対象のワークに係る各第２基準点の３次元位置を、モデルデータ記憶部２８Ａから抽出することで同３次元位置を取得できる。或いは、基準点取得部２４２Ａは、計測対象のワークの種類が変化する毎に、同種類のワークに係る各第２基準点の３次元位置を算出することで同３次元位置を取得してもよい。
【００７７】
対応点決定部２４４Ａは、点群データに含まれる全計測点のうちから、複数の基準点（第１基準点及び第２基準点）のそれぞれに対応付ける対応点を決定（抽出）する対応付け処理を行う。対応付け処理自体は、上述した実施例１と同様であってよい。尚、ある一の第２基準点に係る対応付け処理には、該一の第２基準点に係る基準点ヒストグラムが用いられる。
【００７８】
座標変換行列算出部２４６Ａは、複数の基準点（第１基準点及び第２基準点）に基づいて、最小化座標変換行列を算出する座標変換行列算出処理を行う。座標変換行列算出処理は、基準点のセットごとに実行される。即ち、座標変換行列算出部２４６Ａは、第１基準点のセットに基づいて、対応関係にある複数の第１基準点のそれぞれと複数の対応点のそれぞれとの各距離の合計値が最小となる最小化座標変換行列を算出する。また、座標変換行列算出部２４６Ａは、第２基準点のセットごとに、対応関係にある複数の第２基準点のそれぞれと複数の対応点のそれぞれとの各距離の合計値が最小となる最小化座標変換行列を算出する。以下、区別するときには、第１基準点のセットに基づいて算出される最小化座標変換行列を、「第１最小化座標変換行列」と称し、第２基準点のセットに基づいて算出される最小化座標変換行列を、「第２最小化座標変換行列」と称する。
【００７９】
情報生成部２４８Ａは、点群データごとに算出される複数の最小化座標変換行列（第１最小化座標変換行列及び第２最小化座標変換行列）のうち、最も小さい合計値Ｄｔｏｔａｌを生む最小化座標変換行列に基づいて、ワークの３次元情報を生成する。従って、第２最小化座標変換行列に係る合計値Ｄｔｏｔａｌの方が、第１最小化座標変換行列に係る合計値Ｄｔｏｔａｌよりも小さい場合は、情報生成部２４８Ａは、第２最小化座標変換行列に基づいてワークの３次元情報を生成する。３次元情報自体は、上述した実施例と同様であってよい。
【００８０】
モデルデータ記憶部２８Ａには、上述のように、モデルデータが記憶される。モデルデータは、各基準点（第１基準点及び第２基準点）の３次元位置と、各基準点（第１基準点及び第２基準点）の基準点ヒストグラムとを含む。
【００８１】
次に、図１２を参照して、実施例２による３次元認識装置２０Ａの動作例について説明する。
【００８２】
図１２は、実施例２による３次元認識装置２０Ａにより実行される処理の一例を示すフローチャートである。図１２に示す処理は、例えばロボット制御システムの稼働中、３次元計測器１２の計測周期毎に実行されてよい。
【００８３】
図１２に示す処理は、上述の図１０に示した処理に対して、ステップＳ１１０がステップＳ２００乃至ステップＳ２１０で置換された点が異なる。以下では、ステップＳ２００乃至ステップＳ２１０の処理について説明する。
【００８４】
ステップＳ２００では、基準点取得部２４２Ａは、ステップＳ１００で取得された点群データに係るＮ番目のセットに係る各第２基準点及び各基準点ヒストグラムを、モデルデータ記憶部２８Ａから取得する。Ｎの初期値は１である。
【００８５】
ステップＳ２０２では、対応点決定部２４４Ａは、ステップＳ１００で取得された点群データに含まれる全計測点のうちから、ステップＳ２００で取得された複数の第２基準点のそれぞれに対応付ける対応点を決定（抽出）する対応付け処理を行う。対応付け処理は、上述のとおりである。
【００８６】
ステップＳ２０４では、座標変換行列算出部２４６Ａは、ステップＳ２００で取得された複数の第２基準点と、ステップＳ２０２で決定された複数の対応点のそれぞれとに基づいて、第２最小化座標変換行列を算出する。第２最小化座標変換行列は、上述のとおりである。
【００８７】
ステップＳ２０６では、基準点取得部２４２Ａは、値Ｎが所定値ｊと等しいか否かを判定する。所定値ｊは、使用する第２基準点のセット数に対応し、固定値であってもよいし可変値であってもよい。値Ｎが所定値ｊと等しい場合は、ステップＳ２１０に進み、それ以外の場合は、ステップＳ２０８を経由して、ステップＳ２００に戻る。
【００８８】
ステップＳ２０８では、基準点取得部２４２Ａは、値Ｎを“１”だけインクリメントする。
【００８９】
ステップＳ２１０では、情報生成部２４８Ａは、ステップＳ１０８で算出された第１最小化座標変換行列及びステップＳ２０４で算出されたｊ個の第２最小化座標変換行列に基づいて、ワークの３次元情報を生成する。具体的には、情報生成部２４８Ａは、第１最小化座標変換行列及びｊ個の第２最小化座標変換行列のうちの、最も小さい合計値Ｄｔｏｔａｌを生む最小化座標変換行列に基づいて、ワークの３次元情報を生成する。
【００９０】
尚、図１２において、各処理の順番は適宜変更可能である。例えば、ステップＳ２００乃至ステップＳ２０６の処理は、ステップＳ１０４乃至ステップＳ１０８の処理の前に実行されてもよい。
【００９１】
実施例２によっても、上述した実施例１と同様の効果が得られる。
【００９２】
また、実施例２によれば、第１基準点及び第２基準点に基づいて、ワークの３次元情報が生成される。即ち、第１基準点だけではなく、第２基準点に基づいて、ワークの３次元情報が生成される。従って、実施例２によれば、第１最小化座標変換行列に基づくワークの３次元情報の精度が良好でない場合でも、第２最小化座標変換行列に基づいてワークの３次元情報を精度良く生成することが可能となる。尚、実施例２において、第２最小化座標変換行列が第１最小化座標変換行列よりも小さい合計値Ｄｔｏｔａｌを生むような場合には、上述した実施例１よりもワークの３次元情報の精度が高くなった可能性が高いことを意味する。尚、第２基準点のセット数を多くすればするほど、上述した実施例１よりもワークの３次元情報の精度が高くなる可能性が高まるが、背反として、計算量が増加する。従って、使用する第２基準点のセット数（ステップＳ２０６の所定値ｊ）は、許容できる計算量等を勘案して設定されればよい。
【００９３】
［実施例３］
実施例３による３次元認識装置２０Ｂは、上述した実施例１による３次元認識装置２０に対して、複数の中心軸Ｉのそれぞれに対して得られる第１基準点のセット（複数の第１基準点のセット）を用いる点が異なる。３次元認識装置２０Ｂは、図３に示すハードウェア構成と同様のハードウェア構成を有する。３次元認識装置２０Ｂは、上述した実施例１による３次元認識装置２０と同様、例えば図１に示したようなロボット制御システム１で用いることができる。
【００９４】
図１３は、３次元認識装置２０Ｂの機能の一例を示す機能ブロック図である。３次元認識装置２０Ｂは、上述した実施例１による３次元認識装置２０に対して、３次元認識処理部２４が３次元認識処理部２４Ｂで置換され、モデルデータ記憶部２８がモデルデータ記憶部２８Ｂで置換された点が異なる。３次元認識装置２０Ｂにおいて、上述した実施例１による３次元認識装置２０と同様であってよい構成要素については、図１３において同一の参照符号を付して説明を省略する。
【００９５】
３次元認識装置２０Ｂは、点群データ取得部２２と、計測点ヒストグラム生成部２３と、３次元認識処理部２４Ｂと、点群データ記憶部２６と、モデルデータ記憶部２８Ｂとを含む。点群データ取得部２２、計測点ヒストグラム生成部２３、及び３次元認識処理部２４Ｂは、例えば図３に示す制御部１０１がプログラムを実行することにより実現できる。また、モデルデータ記憶部２８Ｂは、例えば図３に示す主記憶部１０２により実現できる。
【００９６】
３次元認識処理部２４Ｂは、点群データ取得部２２が取得した点群データに対して３次元認識処理を行うことで、該点群データが得られた時点におけるワークの３次元情報を生成する。３次元認識処理部２４Ｂは、基準点取得部２４２Ｂと、対応点決定部２４４Ｂと、座標変換行列算出部２４６Ｂと、情報生成部２４８Ｂとを含む。
【００９７】
基準点取得部２４２Ｂは、複数の中心軸Ｉのそれぞれに係る第１基準点のセットを取得する。即ち、実施例３では、中心軸Ｉ（３次元モデルの重心を通る軸）は、１つではなく、複数設定される。複数の中心軸Ｉは、互いに直交する２つ又は３つの軸であってよく、例えば、３次元モデルの３つの直交する慣性主軸であってもよい。従って、１つの中心軸Ｉに係る複数の分割部分からは、第１基準点の１セットが取得される。尚、使用する中心軸Ｉの数は、任意であり、ワークの属性に応じて決定されてもよい。各中心軸Ｉに係るセット内の各第１基準点の３次元位置は、ワークの種類ごとに、モデルデータ記憶部２８Ｂ内のモデルデータに含められてよい。この場合、基準点取得部２４２Ｂは、計測対象のワークに係る各第１基準点の３次元位置を、モデルデータ記憶部２８Ｂから抽出することで同３次元位置を取得できる。或いは、基準点取得部２４２Ｂは、計測対象のワークの種類が変化する毎に、同種類のワークに係る各第１基準点の３次元位置を算出することで同３次元位置を取得してもよい。実施例２では、Ｍ（≧２）個の中心軸Ｉが用いられるものとし、複数の中心軸Ｉを表すときは、「中心軸Ｉｍ」（ｍ＝１，２，．．．，Ｍ）とも称する。尚、Ｍは、固定値であってもよいし、ワークの種別に応じた可変値であってもよい。
【００９８】
対応点決定部２４４Ｂは、点群データに含まれる全計測点のうちから、各セットの複数の第１基準点のそれぞれに対応付ける対応点を決定（抽出）する対応付け処理を行う。対応付け処理自体は、上述した実施例１と同様であってよい。
【００９９】
座標変換行列算出部２４６Ｂは、複数の第１基準点に基づいて、最小化座標変換行列を算出する座標変換行列算出処理を行う。座標変換行列算出処理は、第１基準点のセットごとに実行される。即ち、座標変換行列算出部２４６Ｂは、第１基準点の第１セットに基づいて、最小化座標変換行列を算出し、第１基準点の第２セットに基づいて、別の最小化座標変換行列を算出し、以下、同様である。
【０１００】
情報生成部２４８Ｂは、点群データごとに算出される複数の最小化座標変換行列（第１基準点の各セットに係る最小化座標変換行列）のうち、最も小さい合計値Ｄｔｏｔａｌを生む最小化座標変換行列に基づいて、ワークの３次元情報を生成する。従って、例えば第２セットに係る合計値Ｄｔｏｔａｌの方が、第１セットに係る合計値Ｄｔｏｔａｌよりも小さい場合は、情報生成部２４８Ｂは、第２セットに係る最小化座標変換行列に基づいてワークの３次元情報を生成する。３次元情報自体は、上述した実施例と同様であってよい。
【０１０１】
モデルデータ記憶部２８Ｂには、上述のように、モデルデータが記憶される。モデルデータは、各セットに係る複数の第１基準点の３次元位置と、各セットに係る複数の第１基準点の基準点ヒストグラムとを含む。
【０１０２】
次に、図１４を参照して、実施例３による３次元認識装置２０Ｂの動作例について説明する。
【０１０３】
図１４は、実施例３による３次元認識装置２０Ｂにより実行される処理の一例を示すフローチャートである。図１４に示す処理は、例えばロボット制御システムの稼働中、３次元計測器１２の計測周期毎に実行されてよい。
【０１０４】
図１４に示す処理は、上述の図１０に示した処理に対して、ステップＳ１０４乃至ステップＳ１１０がステップＳ３００乃至ステップＳ３１０で置換された点が異なる。以下では、ステップＳ３００乃至ステップＳ３１０の処理について説明する。
【０１０５】
ステップＳ３００では、基準点取得部２４２Ｂは、ステップＳ１００で取得された点群データに係る各第１基準点及び各基準点ヒストグラムであって、Ｎ番目のセットの各第１基準点及び各基準点ヒストグラムを、モデルデータ記憶部２８Ｂから取得する。Ｎの初期値は１である。
【０１０６】
ステップＳ３０２では、対応点決定部２４４Ｂは、ステップＳ１００で取得された点群データに含まれる全計測点のうちから、ステップＳ３００で取得された複数の第１基準点のそれぞれに対応付ける対応点を決定（抽出）する対応付け処理を行う。対応付け処理は、上述のとおりである。
【０１０７】
ステップＳ３０４では、座標変換行列算出部２４６Ｂは、ステップＳ３００で取得された複数の第１基準点と、ステップＳ３０２で決定された複数の対応点のそれぞれとに基づいて、最小化座標変換行列を算出する。最小化座標変換行列は、上述のとおりである。
【０１０８】
ステップＳ３０６では、基準点取得部２４２Ｂは、値Ｎが所定値Ｍと等しいか否かを判定する。所定値Ｍは、中心軸Ｉｍの数（即ち使用する第１基準点のセット数）に対応する。値Ｎが所定値Ｍと等しい場合は、ステップＳ３１０に進み、それ以外の場合は、ステップＳ３０８を経由して、ステップＳ３００に戻る。
【０１０９】
ステップＳ３０８では、基準点取得部２４２Ｂは、値Ｎを“１”だけインクリメントする。
【０１１０】
ステップＳ３１０では、情報生成部２４８Ｂは、ステップＳ３０４で算出されたＭ個の最小化座標変換行列に基づいて、ワークの３次元情報を生成する。具体的には、情報生成部２４８Ｂは、Ｍ個の最小化座標変換行列のうちの、最も小さい合計値Ｄｔｏｔａｌを生む最小化座標変換行列に基づいて、ワークの３次元情報を生成する。
【０１１１】
実施例３によっても、上述した実施例１と同様の効果が得られる。
【０１１２】
また、実施例３によれば、複数の中心軸Ｉｍそれぞれに係る複数の第１基準点に基づいて、ワークの３次元情報が生成される。即ち、単一の中心軸Ｉに係る複数の第１基準点だけではなく、複数の中心軸Ｉｍのそれぞれに係る複数の第１基準点に基づいて、ワークの３次元情報が生成されうる。従って、実施例３によれば、一の中心軸に係る最小化座標変換行列に基づくワークの３次元情報の精度が良好でない場合でも、他の中心軸に係る最小化座標変換行列に基づいてワークの３次元情報を精度良く生成することが可能となる。尚、実施例３において、慣性モーメントが最大である慣性主軸以外の中心軸Ｉに係る最小化座標変換行列が最も小さい合計値Ｄｔｏｔａｌを生むような場合には、上述した実施例１よりもワークの３次元情報の精度が高くなった可能性が高いことを意味する。尚、第１基準点のセット数を多くすればするほど、上述した実施例１よりもワークの３次元情報の精度が高くなる可能性が高まるが、背反として、計算量が増加する。従って、使用する中心軸Ｉｍの数（ステップＳ３０６の所定値Ｍ）は、許容できる計算量等を勘案して設定されればよい。
【０１１３】
尚、実施例３は、上述した実施例２と組み合わせることもできる。即ち、複数の中心軸Ｉｍのそれぞれに対して設定される第２基準点が追加的に用いられてもよい。
【０１１４】
また、実施例３は、上述した実施例１と組み合わせることもできる。例えば、ある種類のワークに対してだけ、使用する中心軸Ｉの数は、２以上であり、他の種類のワークに対して、使用する中心軸Ｉの数は、１であってもよい。
【０１１５】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１１６】
例えば、上述した実施例１（実施例２、３も同様）では、複数の基準点のそれぞれと複数の対応点のそれぞれとの各距離の合計値が最小となる座標変換行列（最小化座標変換行列）が算出される。このとき、最小化座標変換行列の算出に用いられる基準点と対応点間の距離は、上記の式（１）で示す態様で算出されるが、これに限られない。例えば、点群データは、ワークの距離画像として取得されてもよい。この場合、基準点と対応点間の距離は、距離画像における対応点に係る画素値（距離）と、３次元モデルを距離画像に変換したときの基準点に係る画素値（距離）との差分であってもよい。
【０１１７】
また、上述した実施例１（実施例２、３も同様）では、ヒストグラムのような形状特徴情報が対応付け処理に用いられるが、これに限られない。例えば、ワークの色、テクスチャなどの、形状特徴情報以外の非形状特徴情報が取得可能な場合は、ヒストグラムのような形状特徴情報に代えて又は加えて、かかる非形状特徴情報に基づいて対応付け処理が実現されてもよい。
【０１１８】
また、上述した実施例１（実施例２、３も同様）では、３次元認識装置２０は、計測点ヒストグラム生成部２３を備えるが、これに限られない。例えば、計測点ヒストグラムのデータを外部（例えば３次元計測器１２）から取得できる場合は、３次元認識装置２０は、計測点ヒストグラム生成部２３を備えなくてもよい。即ち、計測点ヒストグラム生成部２３は省略されてもよい。
【０１１９】
また、上述した実施例１（実施例２、３も同様）では、３次元認識装置２０は、ロボット制御システム１で用いられるが、ロボット制御以外の任意の用途に使用できる。例えば、３次元認識装置２０は、例えばコンベア上を流れる商品（例えば食品など）や、店舗等におけるトレイ上の商品を識別するための用途で用いられてもよい。これは、例えば、商品を識別するためには、商品の姿勢などの３次元情報が有用となりうるためである。
【０１２０】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得する計測データ取得部と、
前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得する基準点取得部と、
前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定する対応点決定部と、
対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成する情報生成部とを含む、３次元認識装置。
（付記２）
前記中心軸は、前記対象物体の慣性主軸を含む、付記１に記載の３次元認識装置。
（付記３）
複数の前記分割部分のそれぞれに属する前記基準点は、複数の前記分割部分のそれぞれにおいて前記重心から最も遠い第１基準点を含む、付記１又は２に記載の３次元認識装置。
（付記４）
複数の前記分割部分のそれぞれに属する前記基準点は、複数の前記分割部分のそれぞれにおいて前記第１基準点よりも前記重心に近い第２基準点を更に含む、付記３に記載の３次元認識装置。
（付記５）
前記中心軸は、互いに直交する２つ又は３つの軸を含む、付記１〜４のうちのいずれか１項に記載の３次元認識装置。
（付記６）
対応関係にある前記基準点と前記対応点との距離であって、複数の前記基準点のそれぞれに係る各距離の合計値が、最小となる座標変換行列を算出する座標変換行列算出部を更に含み、
前記各位置関係は、前記座標変換行列算出部により算出された前記座標変換行列を含む、付記１又は２に記載の３次元認識装置。
（付記７）
複数の前記分割部分のそれぞれに属する前記基準点は、複数の前記分割部分のそれぞれにおいて前記重心から最も遠い第１基準点と、複数の前記分割部分のそれぞれにおいて前記第１基準点よりも前記重心に近い第２基準点とを含み、
前記座標変換行列算出部は、前記第１基準点に係る前記座標変換行列である第１座標変換行列と、前記第２基準点に係る前記座標変換行列である第２座標変換行列とを算出し、
前記情報生成部は、前記第１座標変換行列及び前記第２座標変換行列のうちの、前記合計値が小さい方に基づいて、前記３次元情報を生成する、付記６に記載の３次元認識装置。
（付記８）
前記座標変換行列は、回転成分と並進成分とを含む、付記６又は７に記載の３次元認識装置。
（付記９）
複数の前記分割部分は、６つ以上の分割数で前記中心軸まわりに均等な角度で分割することで形成される、付記１〜８のうちのいずれか１項に記載の３次元認識装置。
（付記１０）
前記対応点決定部は、前記計測データに基づく第１ヒストグラムであって前記対象物体の形状特徴を表す前記第１ヒストグラムと、前記３次元モデルに基づく第２ヒストグラムであって前記対象物体の形状特徴を表す前記第２ヒストグラムとに基づいて、前記対応点を決定する、付記１に記載の３次元認識装置。
（付記１１）
前記基準点取得部は、複数の前記中心軸のそれぞれに対して、前記基準点を取得する、付記５に記載の３次元認識装置。
（付記１２）
実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得し、
前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得し、
前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定し、
対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成することを含む、コンピューターにより実行される３次元認識方法。
（付記１３）
実空間に存在する対象物体の表面上の複数点の３次元位置の計測データを取得し、
前記対象物体に対応する３次元モデルの表面上の基準点の３次元位置であって、前記３次元モデルの略重心を通る中心軸まわりに分割された前記３次元モデルの複数の分割部分にそれぞれ属する前記基準点の３次元位置を、を取得し、
前記計測データの前記複数点のうちから、複数の前記基準点のそれぞれに対応付ける対応点を決定し、
対応関係にある前記基準点と前記対応点との位置関係であって、複数の前記基準点のそれぞれに係る各位置関係に基づいて、実空間における前記対象物体の位置及び姿勢のうちの少なくともいずれか一方を表す３次元情報を生成する
処理をコンピューターに実行させる３次元認識プログラム。
（付記１４）
付記１〜１１のうちのいずれか１項に記載の３次元認識装置と、
前記３次元認識装置により生成される前記３次元情報に基づいて、ロボットを制御するロボット制御装置とを含む、ロボット制御システム。
【符号の説明】
【０１２１】
１  ロボット制御システム
１２  ３次元計測器
１４  ロボット
１６  ロボット制御装置
２０、２０Ａ、２０Ｂ  ３次元認識装置
２２  点群データ取得部
２３  計測点ヒストグラム生成部
２４、２４Ａ、２４Ｂ  ３次元認識処理部
２６  点群データ記憶部
２８、２８Ａ、２８Ｂ  モデルデータ記憶部
２４２、２４２Ａ、２４２Ｂ  基準点取得部
２４４、２４４Ａ、２４４Ｂ  対応点決定部
２４６、２４６Ａ、２４６Ｂ  座標変換行列算出部
２４８、２４８Ａ、２４８Ｂ  情報生成部
【図１】
2017207385.tif 000008
【図２】
2017207385.tif 000009
【図３】
2017207385.tif 000010
【図４】
2017207385.tif 000011
【図５】
2017207385.tif 000012
【図６】
2017207385.tif 000013
【図７】
2017207385.tif 000014
【図８】
2017207385.tif 000015
【図９】
2017207385.tif 000016
【図１０】
2017207385.tif 000017
【図１１】
2017207385.tif 000018
【図１２】
2017207385.tif 000019
【図１３】
2017207385.tif 000020
【図１４】
2017207385.tif 000021