IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特開2024-52204コンピュータプログラム、および、処理装置
<>
  • 特開-コンピュータプログラム、および、処理装置 図1
  • 特開-コンピュータプログラム、および、処理装置 図2
  • 特開-コンピュータプログラム、および、処理装置 図3
  • 特開-コンピュータプログラム、および、処理装置 図4
  • 特開-コンピュータプログラム、および、処理装置 図5
  • 特開-コンピュータプログラム、および、処理装置 図6
  • 特開-コンピュータプログラム、および、処理装置 図7
  • 特開-コンピュータプログラム、および、処理装置 図8
  • 特開-コンピュータプログラム、および、処理装置 図9
  • 特開-コンピュータプログラム、および、処理装置 図10
  • 特開-コンピュータプログラム、および、処理装置 図11
  • 特開-コンピュータプログラム、および、処理装置 図12
  • 特開-コンピュータプログラム、および、処理装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024052204
(43)【公開日】2024-04-11
(54)【発明の名称】コンピュータプログラム、および、処理装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240404BHJP
   G01B 11/24 20060101ALI20240404BHJP
【FI】
G06T7/00 C
G01B11/24 A
G06T7/00 300F
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022158759
(22)【出願日】2022-09-30
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】平林 裕貴
【テーマコード(参考)】
2F065
5L096
【Fターム(参考)】
2F065AA04
2F065AA37
2F065AA53
2F065BB05
2F065FF04
2F065FF05
2F065FF09
2F065FF11
2F065GG04
2F065HH04
2F065HH07
2F065JJ01
2F065JJ03
2F065JJ05
2F065LL62
2F065PP22
2F065PP25
2F065QQ03
2F065QQ21
2F065QQ24
2F065QQ28
2F065QQ31
2F065RR09
2F065UU05
5L096AA09
5L096BA05
5L096CA05
5L096FA26
5L096FA60
5L096FA66
5L096FA67
5L096JA11
5L096MA07
(57)【要約】
【課題】点群データを処理する新たな技術を開示する。
【解決手段】
処理装置は、対象物体を示す第1点群データと、1以上の物体を示す第2点群データと、を取得し、第1点群の複数個の第1対象点のそれぞれと、第2点群の複数個の第2対象点のそれぞれと、の局所的特徴量を取得する。処理装置は、局所的特徴量に基づいて第1対象点と第2対象点とを類似グループに分類し、第1点セットと、第1点セットに対応する複数個の第2点セットと、を決定する。第1点セットは第1対象点から選択されるn個の点から構成され、第2点セットは第2対象点から選択されるn個の点から構成され、1つの第2点セットを構成するn個の点は、第1点セットを構成するn個の点のうちの対応する点と同一の類似グループに属する。処理装置は、複数個の第2点セットの中から第1点セットが有する大局的特徴量と同一または類似する大局的特徴を有する特定の点セットを探索する。
【選択図】 図2
【特許請求の範囲】
【請求項1】
コンピュータプログラムであって、
第1点群データと、第2点群データと、を取得する点群取得機能であって、前記第1点群データは、対象物体を示す複数個の点を含む第1点群の三次元座標を示し、前記第2点群データは、前記対象物体を含む1以上の物体を示す複数個の点を含む第2点群の三次元座標を示す、前記点群取得機能と、
前記第1点群の少なくとも一部である複数個の第1対象点のそれぞれと、前記第2点群の少なくとも一部である複数個の第2対象点のそれぞれと、の局所的特徴量を取得する局所的特徴量取得機能であって、前記局所的特徴量は、1つの対象点の特徴を示す量であり、1つの対象点を含む点群のうちの複数個の点に基づいて算出される量である、前記局所的特徴量取得機能と、
前記複数個の第1対象点と前記複数個の第2対象点とを複数個の類似グループに分類する分類機能であって、前記分類は、各対象点の局所的特徴量に基づいて行われ、1つの前記類似グループに属する1以上の点は、互いに類似する前記局所的特徴量を有する、前記分類機能と、
第1点セットと、前記第1点セットに対応する複数個の第2点セットと、を決定するセット決定機能であって、前記第1点セットは前記複数個の第1対象点の中から選択されるn個(nは2以上の整数)の点から構成され、前記複数個の第2点セットのそれぞれは前記複数個の第2対象点の中から選択されるn個の点から構成され、1つの前記第2点セットを構成するn個の点のそれぞれは、前記第1点セットを構成するn個の点のうちの対応する点と同一の前記類似グループに属する、前記セット決定機能と、
前記第1点セットと、前記複数個の第2点セットのそれぞれと、の大局的特徴量を取得する大局的特徴量取得機能であって、前記大局的特徴量は、1つの点セットの特徴を示す量であり、1つの点セットを構成するn個の点を含む点群のうちの複数個の点に基づいて算出される量である、前記大局的特徴量取得機能と、
前記複数個の第2点セットの中から、前記第1点セットが有する前記大局的特徴量と同一または類似する前記大局的特徴を有する特定の点セットを探索する探索機能と、
前記探索機能による探索の結果を用いて、特定処理を実行する特定処理機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項2】
請求項1に記載のコンピュータプログラムであって、
前記分類機能は、前記複数個の第1対象点と前記複数個の第2対象点とをm個(mはn以上の整数)の前記類似グループに分類し、
前記セット決定機能は、前記第1点セットを構成するn個の点をm個の前記類似グループのうちのn個のグループから1つずつ選択することによって、前記第2点セットを決定する、コンピュータプログラム。
【請求項3】
請求項1に記載のコンピュータプログラムであって、
前記セット決定機能は、
前記複数個の類似グループから選択されるn個のグループから成る第1グループセットから1つずつ選択されたn個の前記第1対象点から成る第1種の前記第1点セットと、前記複数個の類似グループから選択されるn個のグループから成る第2グループセットであって前記第1グループセットとは異なる前記第2グループセットから1つずつ選択されたn個の前記第1対象点から成る第2種の前記第1点セットと、を決定し、
前記セット決定機能は、
前記第1種の前記第1点セットに対応する前記第2点セットとして、前記第1グループセットから1つずつ選択されたn個の前記第2対象点であって、前記第1種の前記第1点セットを構成するn個の前記第1対象点の間の距離に基づく第1距離条件を満たすn個の前記第2対象点から成るセットを決定し、
前記第2種の前記第1点セットに対応する前記第2点セットとして、前記第2グループセットから1つずつ選択されたn個の前記第2対象点であって、前記第2種の前記第2点セットを構成するn個の前記第1対象点の距離に基づく第2距離条件を満たすn個の前記第2対象点から成るセットを決定し、
前記第1距離条件と前記第2距離条件とは、互いに異なる条件である、コンピュータプログラム。
【請求項4】
請求項1に記載のコンピュータプログラムであって、
前記大局的特徴量は、点セットを構成するn個の点の間の距離と、点セットを構成するn個の点の法線ベクトルに基づく量と、を含み、
前記セット決定機能は、
前記第1点セットを構成するn個の前記第1対象点の間の距離に基づいて、距離条件を決定し、
前記複数個の第2対象点から選択されるn個の点のセットのうち、前記距離条件を満たすセットを前記第2点セットとして決定し、
前記大局的特徴量取得機能は、前記セット決定機能によって決定された前記第2点セットについて、前記法線ベクトルに基づく量を算出する、コンピュータプログラム。
【請求項5】
請求項1に記載のコンピュータプログラムであって、
前記複数個の類似グループの代表点の間の前記局所的特徴量の差異は、基準値以上である、コンピュータプログラム。
【請求項6】
請求項1に記載のコンピュータプログラムであって、
前記特定処理機能は、探索される前記特定の点セットに基づいて、前記第2点群によって示される前記対象物体の位置と姿勢とを特定する物体特定処理を実行し、
J個(Jは3以上の整数)の前記第1点セットと前記特定の点セットとの組み合わせが探索される場合に、前記特定処理機能は、
J個の前記組み合わせをJ個未満のグループに分類し、
前記グループごとに前記組み合わせの信頼性を評価し、
前記信頼性の評価結果に基づいてJ個未満の前記グループの中から選択される一部のグループに属する前記組み合わせを用いて、前記第2点群によって示される前記対象物体の位置と姿勢とを特定する、コンピュータプログラム。
【請求項7】
請求項6に記載のコンピュータプログラムであって、
前記特定処理機能は、J個の前記組み合わせのそれぞれに基づいて、前記第1点群の座標系の複数個の点を前記第2点群の座標系に投影し、
前記第2点群の座標系に投影された複数個の投影点を用いて、J個の前記特定の点セットをJ個未満のグループに分類し、
前記複数個の投影点を用いて、前記グループごとに前記特定の点セットの信頼性を評価する、コンピュータプログラム。
【請求項8】
請求項7に記載のコンピュータプログラムであって、
前記複数個の投影点は、前記対象物体の重心を含む3個の点を含み、
前記特定処理機能は、
前記重心に基づいて前記第2点群の座標系における前記対象物体の位置を特定し、
前記重心を含む3個の点に基づいて前記対象物体の姿勢を特定する、コンピュータプログラム。
【請求項9】
処理装置であって、
第1点群データと、第2点群データと、を取得する点群取得部であって、前記第1点群データは、対象物体を示す複数個の点を含む第1点群の三次元座標を示し、前記第2点群データは、前記対象物体を含む1以上の物体を示す複数個の点を含む第2点群の三次元座標を示す、前記点群取得部と、
前記第1点群の少なくとも一部である複数個の第1対象点のそれぞれと、前記第2点群の少なくとも一部である複数個の第2対象点のそれぞれと、の局所的特徴量を取得する局所的特徴量取得部であって、前記局所的特徴量は、1つの対象点の特徴を示す量であり、1つの対象点を含む点群のうちの複数個の点に基づいて算出される量である、前記局所的特徴量取得部と、
前記複数個の第1対象点と前記複数個の第2対象点とを複数個の類似グループに分類する分類部であって、前記分類は、各対象点の局所的特徴量に基づいて行われ、1つの前記類似グループに属する1以上の点は、互いに類似する前記局所的特徴量を有する、前記分類部と、
第1点セットと、前記第1点セットに対応する複数個の第2点セットと、を決定するセット決定部であって、前記第1点セットは前記複数個の第1対象点の中から選択されるn個(nは2以上の整数)の点から構成され、前記複数個の第2点セットのそれぞれは前記複数個の第2対象点の中から選択されるn個の点から構成され、1つの前記第2点セットを構成するn個の点のそれぞれは、前記第1点セットを構成するn個の点のうちの対応する点と同一の前記類似グループに属する、前記セット決定部と、
前記第1点セットと、前記複数個の第2点セットのそれぞれと、の大局的特徴量を取得する大局的特徴量取得部であって、前記大局的特徴量は、1つの点セットの特徴を示す量であり、1つの点セットを構成するn個の点を含む点群のうちの複数個の点に基づいて算出される量である、前記大局的特徴量取得部と、
前記複数個の第2点セットの中から、前記第1点セットが有する前記大局的特徴量と同一または類似する前記大局的特徴を有する特定の点セットを探索する探索部と、
前記探索部による探索の結果を用いて、特定処理を実行する特定処理部と、
を備える、処理装置。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、物体の表面を表す三次元点群を処理する技術に関する。
【背景技術】
【0002】
点群を示す三次元データを使用して物体の位置と姿勢を推定する技術が知られている。例えば、特許文献1のロボットの制御装置は、モデル点群から選択されたポイントペアのポイントペア特徴量(PointPairFeature)を、各ポイントペアについて計算する。制御装置は、モデル点群から、複数のキーポイントを選択する。制御装置は、シーン点群におけるポイントペアのポイントペア特徴量を計算し、複数のキーポイントに関するポイントペア特徴量に類似するポイントペア特徴量をもつポイントペアを探索する。制御装置は、探索したポイントペアの各々について座標変換パラメータを決定し、座標変換パラメータが示す姿勢ごとにカウント数を決定する。制御装置は、カウント数が多い順に複数の候補姿勢を選択し、モデル点群とシーン点群との整合度が最も高くなる姿勢を、最終的な姿勢として決定する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-189510号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このように、点群を示す点群データは、位置と姿勢の決定など、種々の処理に使用され得る。
【0005】
本明細書は、点群を示す三次元データを処理する新たな技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]コンピュータプログラムであって、第1点群データと、第2点群データと、を取得する点群取得機能であって、前記第1点群データは、対象物体を示す複数個の点を含む第1点群の三次元座標を示し、前記第2点群データは、前記対象物体を含む1以上の物体を示す複数個の点を含む第2点群の三次元座標を示す、前記点群取得機能と、前記第1点群の少なくとも一部である複数個の第1対象点のそれぞれと、前記第2点群の少なくとも一部である複数個の第2対象点のそれぞれと、の局所的特徴量を取得する局所的特徴量取得機能であって、前記局所的特徴量は、1つの対象点の特徴を示す量であり、1つの対象点を含む点群のうちの複数個の点に基づいて算出される量である、前記局所的特徴量取得機能と、前記複数個の第1対象点と前記複数個の第2対象点とを複数個の類似グループに分類する分類機能であって、前記分類は、各対象点の局所的特徴量に基づいて行われ、1つの前記類似グループに属する1以上の点は、互いに類似する前記局所的特徴量を有する、前記分類機能と、第1点セットと、前記第1点セットに対応する複数個の第2点セットと、を決定するセット決定機能であって、前記第1点セットは前記複数個の第1対象点の中から選択されるn個(nは2以上の整数)の点から構成され、前記複数個の第2点セットのそれぞれは前記複数個の第2対象点の中から選択されるn個の点から構成され、1つの前記第2点セットを構成するn個の点のそれぞれは、前記第1点セットを構成するn個の点のうちの対応する点と同一の前記類似グループに属する、前記セット決定機能と、前記第1点セットと、前記複数個の第2点セットのそれぞれと、の大局的特徴量を取得する大局的特徴量取得機能であって、前記大局的特徴量は、1つの点セットの特徴を示す量であり、1つの点セットを構成するn個の点を含む点群のうちの複数個の点に基づいて算出される量である、前記大局的特徴量取得機能と、前記複数個の第2点セットの中から、前記第1点セットが有する前記大局的特徴量と同一または類似する前記大局的特徴を有する特定の点セットを探索する探索機能と、前記探索機能による探索の結果を用いて、特定処理を実行する特定処理機能と、をコンピュータに実現させる、コンピュータプログラム。
【0008】
上記構成によれば、局所的特徴量に基づいて第1点群の少なくとも一部である複数個の第1対象点と第2点群の少なくとも一部である複数個の第2対象点とが複数個の類似グループに分類される。そして、第1対象点から選択されるn個の点から構成される第1点セットと、第2対象点から選択されるn個の点から構成される複数個の第2点セットと、が決定される。1つの第2点セットを構成するn個の点のそれぞれは、第1点セットを構成するn個の点のうちの対応する点と同一の類似グループに属する。この結果、局所的特徴量に基づいて、大局的特徴量を用いた探索に適した複数個の第2点セットを決定できる。このために、複数個の第2点セットの中から、第1点セットが有する大局的特徴量と同一または類似する大局的特徴を有する点セットを探索する際に、探索の精度を向上できる。したがって、探索の結果を用いて特定処理を実行する際に、適切な特定処理を実行することができる。また、大局的特徴量を用いた探索に適さない余分な複数個の第2点セットが決定されることを抑制できるので、探索の計算時間を抑制できる。
【0009】
なお、本明細書に開示された技術は、種々の形態で実現可能であり、例えば、処理方法および処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】一実施例としてのデータ処理装置を示す概略図。
図2】データ処理装置200によって実行される処理の例を示すフローチャート。
図3】モデル点群PCmとシーン点群PCsの例を示す図。
図4】局所的特徴量を用いた分類処理のフローチャート。
図5】局所座標系の決定の説明図。
図6】SHOT特徴量の算出の説明図。
図7】モデル対象点PTmとシーン対象点PTsとを説明する図。
図8】大局的特徴量を用いたマッチング処理のフローチャート。
図9】点ペアPPiのPPF特徴量の算出の説明図。
図10】物体特定処理のフローチャート。
図11】点ペアPPiの座標系の説明図。
図12】変換行列MPの算出式を示す図。
図13】モデル参照点の投影の説明図。
【発明を実施するための形態】
【0011】
A.実施例
A1.装置構成
図1は、一実施例としてのデータ処理装置を示す概略図である。データ処理装置200は、例えば、パーソナルコンピュータである。データ処理装置200には、三次元センサ110と、ロボットアーム120とが、接続されている。ロボットアーム120の前には、トレー130が配置されている。トレー130上には、処理対象の複数の物体(以下、対象物体OBとも呼ぶ)が乱雑に積まれている。後述するように、データ処理装置200は、三次元センサ110からの情報を使用してロボットアーム120を制御し、ロボットアーム120に対象物体OBを把持させる。図示を省略するが、データ処理装置200は、ロボットアーム120に、対象物体OBをトレー130から別の場所(例えば、製造ラインのベルトコンベア)に移動させる。
【0012】
三次元センサ110は、物体の表面上の複数の点のそれぞれの三次元座標を測定するセンサである。三次元センサ110の種類は、種々の種類であってよく、例えば、立体視、構造化光パターン、飛行時間のいずれかであってよい。立体視は、パッシブステレオ方式とも呼ばれ、複数のカメラによる撮影画像を使用して物体の表面上の三次元座標を測定する方式である。構造化光パターンは、アクティブステレオ方式とも呼ばれ、物体に投影された光のパターンを使用して物体の表面上の三次元座標を測定する方式である。飛行時間は、レーザや赤外線などの光が送信されてから、物体からの反射光が戻るまでの時間を使用して物体の表面上の三次元座標を測定する方式である。三次元センサは、三次元センサから物体の表面までの距離(深度とも呼ばれる)を測定する深度センサとも呼ばれる。本実施例では、三次元センサ110の測定方向110xは、トレー130の方向を向いている(測定方向110xは、測定可能な方向を示している)。三次元センサ110は、トレー130上の複数の対象物体OBを含む物体群(例えば、トレー130と複数の対象物体OB)を測定する。
【0013】
ロボットアーム120の構成は、物体を移動させることが可能な種々の構成であってよい。本実施例では、ロボットアーム120は、オープンチェーン構造を有するリンク機構125を形成する複数のリンク121-124と、物体を挟み持つことが可能な複数の指126と、を有している。複数の指126は、リンク機構125の先端に取り付けられている。リンク機構125と複数の指126とは、図示しない複数の電気モータによって駆動される。データ処理装置200は、複数の電気モータを制御することによって、ロボットアーム120を動かすことができる。
【0014】
データ処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0015】
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、コンピュータプログラムPGと、モデル点群データPDmと、シーン点群データPDsと、を格納している。コンピュータプログラムPGは、後述する図2の処理をプロセッサ210に実現させる。コンピュータプログラムPGは、例えば、ロボットアーム120の製造業者や、ロボットアーム120の制御プログラムの製造事業者によって提供される。モデル点群データPDmとシーン点群データPDsとについては後述する。
【0016】
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の指示をデータ処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、三次元センサ110とロボットアーム120とが接続される。
【0017】
A2.データ処理装置200の処理
図2は、データ処理装置200によって実行される処理の例を示すフローチャートである。図2の処理は、トレー130上に配置される対象物体OBの位置と姿勢を特定し、該特定結果を用いてロボットアーム120を制御して、ロボットアーム120に対象物体OBの把持および移動を行わせる処理である。データ処理装置200のプロセッサ210は、コンピュータプログラムPGを実行することによって、図2の処理を実行する。
【0018】
S10では、プロセッサ210は、不揮発性記憶装置230から、モデル点群データPDm(図1)を取得する。図3(A)は、モデル点群データPDmによって示されるモデル点群PCmの例を示す斜視図である。モデル点群PCmは、マッチング(後述)の基準となる対象物体OBを示している。モデル点群PCmによって示される対象物体OBを、後述するシーン点群PCsによって示される対象物体OBと区別するために基準物体OBmとも呼ぶ。モデル点群PCmは、基準物体OBmの表面を示す複数の点PTを含む。これらのモデル点群PCmの複数の点PTは、例えば、一の点PTと該一の点と最も近い点PTとの距離が数mm程度になるように、基準物体OBmの表面の全体に分散して配置されている。モデル点群データPDmは、これらの複数の点PTのそれぞれの3次元座標(xm、ym、zm)を示す三次元データである。モデル点群PCmの各点PTの座標は、互いに直交する3個の座標軸Xm、Ym、Zm(図3(A))によって定められる座標系で表される(以下、この座標系を、モデル座標系と呼ぶ)。図3(A)の例では、基準物体OBmは、第1部分OBp1と第2部分OBp2とを備えている。第1部分OBp1は、底面Bfを有し、図3(A)に破線で示す直線AXを軸線とする等径の円筒状の部分である。第2部分OBp2は、直線AXを軸線とし、第1部分OBp1と接続する端の径が第1部分OBp1と同じであり、第1部分OBp1から離れるに連れて縮径する円筒状の部分である。図中では、基準物体OBmの外面のうちの後ろに隠れた部分の複数の点PTの図示が、省略されている。なお、基準物体OBmの形状(すなわち、対象物体OBの形状)は、他の任意の形状であってよい。例えば、対象物体OBは、電気部品(スイッチ、端子など)、または、機械部品(ネジ、ナット、パイプなど)などの、種々の形状の部品であってよい。
【0019】
本実施例では、モデル点群PCmを示すモデル点群データPDmは、基準物体OBmの立体的な形状を示すCADデータを使用して、予め生成される(CADは、computer-aided designの略)。CADデータは、例えば、対象物体OBの設計データである。CADデータによって示される基準物体OBmの外面上に複数の点PTが配置される。そして、各点PTの座標が、CADデータに従って、算出される。なお、モデル点群データPDmは、対象物体OBの実物を三次元センサ110によって測定することによって、生成されてもよい。
【0020】
S20では、プロセッサ210は、シーン点群データPDsを取得する。本実施例では、プロセッサ210は、三次元センサ110(図1)に、複数の対象物体OBを含む空間を測定させることによって、三次元センサ110からシーン点群データPDsを取得する。図3(B)は、シーン点群データPDsによって示されるシーン点群PCsの例を示す斜視図である。シーン点群PCsは、三次元センサ110の測定範囲内の物体の表面のうち、三次元センサ110から視認可能な表面上の複数の点PTである。シーン点群データPDsは、これらの複数の点のそれぞれの3次元座標(xs、ys、zs)を示す三次元データである。図3(B)は、シーン点群PCsの一部を示している。図中には、トレー130の一部と、トレー130上の2個の対象物体OBと、が示されている。図中では、個々の点PTの図示は省略され、複数の点PTによって表される表面がハッチングで示されている。図示を省略するが、トレー130上には、複数の対象物体OBが積み重なり得る。この場合、シーン点群PCsは、積み重なる複数の対象物体OBのうち、三次元センサ110から視認可能な表面上の複数の点PTを示している。
【0021】
シーン点群PCsの点PTの座標は、互いに直交する3個の座標軸Xs、Ys、Zs(図3(B))によって定められる座標系で表される(以下、この座標系を、シーン座標系と呼ぶ)。シーン座標系は、三次元センサ110に対する相対的な位置を表す座標系である。例えば、シーン座標系の原点は、三次元センサ110の位置に配置される。また、1個の座標軸(例えば、第3座標軸Zs)は、三次元センサ110の測定方向110xに平行であってよい。
【0022】
S30では、プロセッサ210は、シーン点群データPDsに対して、前処理を実行する。前処理では、後述する分類処理やマッチング処理(S40、S50)にて利用しやすいように、シーン点群PCsを適宜に間引く処理である。例えば、シーン点群PCsの点PTの密度がモデル点群PCmと同程度の密度になるように、シーン点群PCsは間引かれる。
【0023】
S35では、プロセッサ210は、モデル点群PCmおよびシーン点群PCsに含まれる各点PTの法線ベクトルを算出する。法線ベクトルは、例えば、主成分分析を実行することによって算出される。主成分分析については、局所座標系の決定方法の説明にて後述する。
【0024】
S40では、プロセッサ210は、局所的特徴量を用いた分類処理(以下、単に分類処理とも呼ぶ)を実行する。図4は、局所的特徴量を用いた分類処理のフローチャートである。分類処理は、モデル点群PCmおよびシーン点群PCsからそれぞれ選択される複数個のモデル対象点PTmおよびシーン対象点PTsのそれぞれを、各対象点の局所的特徴量を用いて分類する処理である。
【0025】
S110では、モデル点群PCmからm個(mは2以上の整数)の代表点RPを選択する。代表点RPの個数mは、例えば、3~15個程度であり、本実施例では、図3(A)に示すように、4個の代表点RP1~RP4が選択される。例えば、プロセッサ210は、モデル点群PCmをモニタに表示する。オペレータは、所定のポインティングデバイスを操作して、モニタに表示されたモデル点群PCmから代表点RPとすべき点PTを指定する。プロセッサ210は、指定された点PTを代表点RPとして選択する。
【0026】
m個の代表点RPには、対象物体OBの表面上の互いに異なる特徴を有する複数の部位のそれぞれに位置する点PTが選択される。例えば、図3(A)の例では、代表点RP1は、縮径された円筒状の第2部分OBp2の最も径が短い端部に位置する点PTである。代表点RP2は、縮径された円筒状の第2部分OBp2と、等径の円筒状の第1部分OBp1と、の境界部に位置する点PTである。代表点RP3は、第1部分OBp1の軸AXに沿った方向の中央部に位置する点PTである。代表点RP3は、第1部分OBp1と底面Bfとの境界部に位置する点PTである。
【0027】
S120では、プロセッサ210は、各代表点RPの局所的特徴量を算出する。局所的特徴量は、1つの注目点(例えば、代表点RP、あるいは、後述するモデル対象点PTmやシーン対象点PTs)の特徴を示す量であり、注目点を含む点群(モデル点群PCmまたはシーン点群PCs)のうちの注目点の近傍の複数個の点に基づいて算出される量である。本実施例では、局所的特徴量として、SHOT(Signature of Histograms of OrienTations)特徴量が採用される。
【0028】
1つの注目点PTiのSHOT特徴量の算出について説明する。プロセッサ210は、注目点PTiにおける局所座標系を決定する。図5は、局所座標系の決定の説明図である。図5(A)、(B)には、複数の点PTから選択される注目点PTiと、注目点PTiを中心とする半径R1を有するサポート球SPと、が示されている。サポート球SP内の領域は、注目点PTiからの距離がゼロ以上半径R1以下の領域(以下、サポート領域SRとも呼ぶ)である。
【0029】
図5(B)に示すように、注目点PTiに対して決定される局所座標系は、注目点PTiを原点とし、互いに直交する単位ベクトルによって定義される3個の座標軸Xl、Yl、Zlによって定められる座標系である。
【0030】
3個の座標軸Xl、Yl、Zlの決定方法、すなわち、注目点PTiにおける局所座標系の決定方法は、種々の方法であってよい。本実施例では、プロセッサ210は、サポート領域SR(図5(B))内の複数の点PTに対していわゆる主成分分析を行うことによって、分散共分散行列の3個の固有ベクトル、すなわち、第1固有ベクトルvi、第2固有ベクトルvii、第3固有ベクトルviiiを算出する。プロセッサ210は、3個の固有ベクトルvi、vii、viiiを座標軸Xl、Yl、Zlに決定する。これによって、局所座標系が決定される。この方法によって、座標軸Xlは、サポート領域SR内の複数個の点PTの位置のバラツキ(分散)が最大となる方向に決定される。座標軸Ylは、座標軸Xlと直交する方向のうち、上記バラツキが最大となる方向に決定される。座標軸Zlは、座標軸Zlと座標軸Ylとに直交する方向に決定される。座標軸Xlおよび座標軸Ylとの両方に平行な平面PL(図5(B))は、サポート領域SRに含まれる複数の点PTを近似する近似平面であると言うことができるので、座標軸Zlを示す第3固有ベクトルviiiは、注目点PTiにおける法線ベクトルvn(平面PLに垂直なベクトル)でもある。
【0031】
プロセッサ210は、注目点PTiにおける局所座標系を決定すると、該局所座標系を用いて、注目点PTiの局所的特徴量としてSHOT特徴量を算出する。図6は、SHOT特徴量の算出の説明図である。プロセッサ210は、注目点PTiに対して、K個の参照領域を設定する。本実施例では、参照領域の個数Kは、32である。
【0032】
具体的には、図6(A)に示すように、注目点PTiのサポート球SPの内側に、サポート球SPよりも小さな内球SPiが設定される。内球SPiは、注目点PTiを中心とし、サポート球SPの半径の半分の半径R2を有する球である。さらに、注目点PTiを通り、座標軸Zlと垂直な平面Fzが設定される。内球SPiと平面Fzとによって、サポート球SP内のサポート領域SRは、4個の領域、すなわち、上内側領域Siu、上外側領域Sou、下内側領域Sib、下外側領域Sobに分割される。上内側領域Siuは、内球SPi内の領域のうち、平面Fzよりも上側(座標軸Zlの正方向側)の半球の領域である。上外側領域Souは、サポート球SP内の領域のうち、平面Fzよりも上側の半球の領域から上内側領域Siuを除いた領域である。下内側領域Sibは、内球SPi内の領域のうち、平面Fzよりも下側(座標軸Zlの負方向側)の半球の領域である。下外側領域Sobは、サポート球SP内の領域のうち、平面Fzよりも下側の半球の領域から下内側領域Sibを除いた領域である。
【0033】
さらに、座標軸Zlを含む4個の平面Fa~Fdが設定される。図6(B)には、下外側領域Sobと下内側領域Sibとを座標軸Zlの正方向側から、負方向側に向かって見た図が示されている。平面Faは、座標軸Zlと座標軸Xlとを含む平面である。平面Fcは、座標軸Zlと座標軸Ylとを含む平面である。平面Fbと平面Fdとは、互いに直交し、かつ、平面Fa、Fcとの間の角度が45度である平面である。図6(B)に示すように、平面Fa~Fdにより、下外側領域Sobは、8個の参照領域Sob1~Sob8に分割される。図6(B)に示すように、平面Fa~Fdにより、下内側領域Sibは、8個の参照領域Sib1~Sib8に分割される。図示は省略するが、上外側領域Souと上内側領域Siuも、同様に、平面Fa~Fdにより、それぞれ、8個の参照領域に分割される。これによって、合計で32個の参照領域が注目点に対して設定される。
【0034】
プロセッサ210は、32個の参照領域のそれぞれの領域特徴量HG1~HG32を算出する。図6(C)には、領域特徴量HG1~HG32の概念図である。1つの領域特徴量は、対応する参照領域内に含まれる複数個の点PTを、各点PTの法線ベクトルと注目点PTiの法線ベクトルvn(座標軸Zl)との角度θに応じて、L個のビンに分類して得られるヒストグラムデータである。本実施例では、1つの領域特徴量のビン数Lは、11である。各点PTの法線ベクトルは、上述した注目点PTiの法線ベクトルvn(座標軸Zl)を決定する処理と同様の主成分分析を、各点PTについて実行することによって図2のS35にて算出済みである。角度θは、各点PTの法線ベクトルと、注目点PTiの法線ベクトルvnと、の内積を算出することによって求められる。角度θは、0~180度の値を取る。1つの領域特徴量は、11個の各ビンに分類された点数を示す11次元のベクトルで表される。このために、32個の参照領域と一対一で対応する32個の領域特徴量の全体は、(32×11)次元、すなわち、352次元のベクトルである。プロセッサ210は、この352次元のベクトルを正規化したベクトルFVを、1つの注目点PTiの局所的特徴量として算出する。
【0035】
図4のS130では、プロセッサ210は、m個の代表点RPの局所的特徴量の差異は、基準以上であるか否かを判断する。例えば、プロセッサ210は、m個の代表点RPから選択される2個の代表点RPの全てのペアについて、2個の代表点RPの局所的特徴量の差異を示す評価値を算出する。プロセッサ210は、全てのペアの評価値が基準以上の差異があることを示す場合に、m個の代表点RPの局所的特徴量は、互いに異なると判断する。例えば、プロセッサ210は、全てのペアについて、2個の代表点RPの局所的特徴量(352次元ベクトル)のユークリッド距離を評価値として算出する。プロセッサ210は、全てのペアのユークリッド距離が所定の閾値TH以上である場合には、m個の代表点RPの局所的特徴量の差異は基準以上であると判断し、1以上のペアのユークリッド距離が閾値TH未満である場合には、m個の代表点RPの局所的特徴量の差異は基準未満であると判断する。
【0036】
m個の代表点RPの局所的特徴量の差異が基準以上である場合には(S130:YES)、プロセッサ210は、S140に処理を進める。m個の代表点RPの局所的特徴量の差異が基準未満である場合には(S130:NO)、プロセッサ210は、S110に戻って、m個の代表点RPの選択をやり直す。
【0037】
S140では、プロセッサ210は、モデル点群PCmの中から、複数個のモデル対象点PTmを選択する。図7は、モデル対象点PTmとシーン対象点PTsとを説明する図である。モデル対象点PTm(図7(A))は、モデル点群PCmの複数個の点PTのうち、局所的特徴量の算出対象とされる点である。例えば、モデル点群PCmの複数個の点PTのうち、10~50%程度の点がモデル対象点PTmとして選択される。モデル点群PCmの複数個の点PTのうちの一部だけを局所的特徴量の算出対象とすることで、計算時間を短縮することができる。複数個のモデル対象点PTmは、例えば、基準物体OBmの表面の全体に分散するように、一部分に過度に偏らないように選択される。
【0038】
S150では、プロセッサ210は、複数個のモデル対象点PTmの局所的特徴量をそれぞれ算出する。局所的特徴量(本実施例ではSHOT特徴量)の算出方法は、上述した代表点RPの局所的特徴量の算出方法と同じである。
【0039】
S160では、プロセッサ210は、複数個のモデル対象点PTmを、局所的特徴量に基づいて(m+1)個の類似グループに分類する。類似グループは、互いに類似する局所的特徴量を有する対象点が属するグループである。本実施例では、代表点RPの個数mは4であるので、プロセッサ210は、複数個のモデル対象点PTmを5つの類似グループに分類する。5つの類似グループは、代表点RP1と類似する対象点のグループG1と、代表点RP2と類似する対象点のグループG2と、代表点RP3と類似する対象点のグループG3と、代表点RP4と類似する対象点のグループG4と、代表点RP1~RP4のいずれとも類似しない対象点のグループG5である。プロセッサ210は、一のモデル対象点PTmの局所的特徴量と、一の代表点RPの局所的特徴量と、の間のユークリッド距離を算出する。プロセッサ210は、該ユークリッド距離が所定の閾値THv未満である場合には、一のモデル対象点PTmと一の代表点RPとは類似すると判断し、該ユークリッド距離が所定の閾値THv以上である場合には、一のモデル対象点PTmと一の代表点RPとは類似しないと判断する。
【0040】
図7(A)において、一重丸は代表点RP1と類似するモデル対象点PTmを示し、二重丸は代表点RP2と類似するモデル対象点PTmを示す。同様に、四角、三角、X印は、それぞれ、代表点RP3と類似するモデル対象点PTm、代表点RP4と類似するモデル対象点PTm、代表点RP1~RP4のいずれとも類似しないモデル対象点PTmを示す。
【0041】
S170では、プロセッサ210は、シーン点群PCsの中から、複数個のシーン対象点PTsを選択する。シーン対象点PTs(図7(B))は、シーン点群PCsの複数個の点PTのうち、局所的特徴量の算出対象とされる点である。例えば、シーン点群PCsの複数個の点PTのうち、10~50%程度の点がシーン対象点PTsとして選択される。複数個のシーン対象点PTsは、例えば、モデル点群PCmによって示される物体の表面の全体に分散するように、一部分に過度に偏らないように選択される。
【0042】
S180では、プロセッサ210は、複数個のシーン対象点PTsの局所的特徴量をそれぞれ算出する。局所的特徴量(本実施例ではSHOT特徴量)の算出方法は、上述した代表点RPの局所的特徴量の算出方法と同じである。
【0043】
S190では、プロセッサ210は、複数個のシーン対象点PTsを局所的特徴量に基づいて、(m+1)個のグループに分類する。モデル対象点PTmの分類と同様に、プロセッサ210は、複数個のシーン対象点PTsを上述の5つのグループG1~G5に分類する。モデル対象点PTmの分類と同様に、プロセッサ210は、一のシーン対象点PTsの局所的特徴量と、一の代表点RPの局所的特徴量と、の間のユークリッド距離を算出する。プロセッサ210は、該ユークリッド距離が所定の閾値THv未満である場合には、一のシーン対象点PTsと一の代表点RPとは類似すると判断し、該ユークリッド距離が所定の閾値THv以上である場合には、一のシーン対象点PTsと一の代表点RPとは類似しないと判断する。
【0044】
図7(B)において、一重丸は代表点RP1と類似するシーン対象点PTsを示し、二重丸は代表点RP2と類似するシーン対象点PTsを示す。同様に、四角、三角、X印は、それぞれ、代表点RP3と類似するシーン対象点PTs、代表点RP4と類似するシーン対象点PTs、代表点RP1~RP4のいずれとも類似しないシーン対象点PTsを示す。
【0045】
局所的特徴量を用いた分類処理が終了すると、図2のS50では、プロセッサ210は、大局的特徴量を用いたマッチング処理(以下、単にマッチング処理とも呼ぶ)を実行する。図8は、大局的特徴量を用いたマッチング処理のフローチャートである。マッチング処理は、2個のモデル対象点PTmから構成されるモデル点ペアと、2個のシーン対象点PTsから構成されるシーン点ペアと、を決定し、後述する大局的特徴量を用いて、モデル点ペアとシーン点ペアとのマッチングを行う処理である。
【0046】
S210では、プロセッサ210は、上述した(m+1)個のグループのうち、いずれの代表点RPとも類似しないグループを除いたm個のグループから、1つの注目グループペアを決定する。m個のグループから2個のグループを選択する組み合わせは、種類存在する。S210では、これらの種類のグループペアが順次に注目グループペアとして決定される。本施例では、5つのグループG1~G4の中から注目グループペアが決定される。したがって、グループG1、G2のペアと、グループG1、G3のペアと、グループG1、G4のペアと、グループG2、G3のペアと、グループG2、G4のペアと、グループG3、G4のペアと、の6種類のペアが順次に注目グループペアとして決定される。
【0047】
S220では、プロセッサ210は、注目グループペアに属する複数個のモデル対象点PTmから1つの注目モデル点ペアを決定する。具体的には、注目グループペアを構成する一のグループに属する複数個のモデル対象点PTmから選択される1個の点と、注目グループペアを構成する他のグループに属する複数個のモデル対象点PTmから選択される1個の点と、のペアが注目モデル点ペアとして決定される。一のグループに属するモデル対象点PTmの個数がN1個であり、他のグループに属するモデル対象点PTmの個数がN2個である場合には、(N1×N2)種のモデル点ペアが決定可能である。S220では、これらの(N1×N2)種類のモデル点ペアが順次に注目モデル点ペアとして決定される。例えば、注目グループペアが、グループG1、G2のペアである場合には、代表点RP1に類似するモデル対象点PTm(図7(A)の一重丸)と、代表点RP2に類似するモデル対象点PTm(図7(A)の二重丸)と、の点ペアが、注目モデル点ペアとして決定される。
【0048】
S230では、プロセッサ210は、注目モデル点ペア間の距離Dmに基づいて距離条件を決定する。距離条件は、後述するシーン点ペア間の距離Dsが満たすべき条件である。具体的には、プロセッサ210は、注目モデル点ペアを構成する一のモデル対象点PTmと他のモデル対象点PTmとの間のユークリッド距離を、距離Dmとして算出する。プロセッサ210は、例えば、距離Dsが距離Dmを含む所定の距離範囲内であること、具体的には、距離Dsが距離Dm±5%の範囲内であることを、距離条件として決定する。
【0049】
S240では、プロセッサ210は、注目グループペアに属する複数個のシーン対象点PTsから距離条件を満たす複数個のシーン点ペアを、マッチングに用いるシーン点ペアとして決定する。具体的には、注目グループペアを構成する一のグループに属する複数個のシーン対象点PTsから選択される1個の点と、注目グループペアを構成する他のグループに属する複数個のシーン対象点PTsから選択される1個の点と、のペアがシーン点ペアとして決定される。一のグループに属するシーン対象点PTsの個数がN3個であり、他のグループに属するシーン対象点PTsの個数がN4個である場合には、(N3×N4)種のシーン点ペアが決定可能である。S240では、プロセッサ210は、これらの(N3×N4)種類のシーン点ペアの全てについて、シーン点ペアを構成する一のシーン対象点PTsと他のシーン対象点PTsとの間のユークリッド距離を、シーン点ペア間の距離Dsとして算出する。プロセッサ210は、(N3×N4)種類のシーン点ペアの全てについて、シーン点ペア間の距離DsがS230にて決定された距離条件を満たすか否かを判断する。プロセッサ210は、(N3×N4)種類のシーン点ペアのうち、距離条件を満たす全てのシーン点ペアを、マッチングに用いるシーン点ペアとして決定する。例えば、注目グループペアが、グループG1、G2のペアである場合には、代表点RP1に類似するシーン対象点PTs(図7(B)の一重丸)と、代表点RP2に類似するシーン対象点PTs(図7(B)の二重丸)と、の点ペアが、距離条件を満たす場合に、マッチングに用いるシーン点ペアとして決定される。
【0050】
S250では、プロセッサ210は、全ての注目グループペアに対応する全てのモデル点ペア、すなわち、上述した(N1×N2)種のモデル点ペアを注目モデルペアとして処理したか否かを判断する。未処理のモデル点ペアがある場合には(S250:NO)、プロセッサ210は、S220に戻る。全てのモデル点ペアが処理された場合には(S250:YES)、プロセッサ210は、S260に処理を進める。
【0051】
S260では、プロセッサ210は、全てのグループペア、すなわち、上述した種類のグループペアを注目グループペアとして処理したか否かを判断する。未処理のグループペアがある場合には(S260:NO)、プロセッサ210は、S210に戻る。全てのグループペアが処理された場合には(S260:YES)、プロセッサ210は、S270に処理を進める。
【0052】
S270では、プロセッサ210は、S220、S240にて決定済みの全てのモデル点ペアおよびシーン点ペアのそれぞれについて、大局的特徴量を算出する。大局的特徴量は、n個(nは2以上の整数)の点セットの特徴を示す量である。大局的特徴量は、点セットを構成するn個の点を含む点群(例えば、モデル点群PCmやシーン点群PCs)のうちの複数個の点PT(例えば、n個の点の近傍の複数個の点)に基づいて算出される。本実施例では、点セットとして、2個の点ペア(モデル点ペアやシーン点ペア)が採用されており、点ペアの特徴を示す大局的特徴量として、PPF(Point Pair Feature)特徴量が採用されている。
【0053】
図9は、点ペアPPiのPPF特徴量の算出の説明図である。PPF特徴量は、点ペアPPiの特徴を示すパラメータを含んでいる。図9(A)~(D)は、点ペアPPiの特徴を示す4個のパラメータD、F1~F3の概略図である。図9(A)~(D)には、点ペアPPiを構成する第1点Pと第2点Qとが示されている。ベクトルvPnは、第1点Pの法線ベクトルであり、ベクトルvQnは、第2点Qの法線ベクトルである。法線ベクトルvPn、vQnは、図2のS35にて算出済みである。
【0054】
図6(A)のパラメータDは、第1点Pと第2点Qとの間のユークリッド距離である。図6(B)のパラメータF1は、基ベクトルvPQと、第1点Pの法線ベクトルvPnと、のなす角度である(F1は、0度以上180度以下)。基ベクトルvPQは、第1点Pを始点とし、第2点Qを終点とするベクトルである。図中の関数Angは、2個の引数ベクトルのなす角度を算出する関数である。図6(C)のパラメータF2は、基ベクトルvPQと、第2点Qの法線ベクトルvQnと、のなす角度である(F1は0度以上180度以下)。図6(D)のパラメータF3は、第1点Pの法線ベクトルvPnと、第2点Qの法線ベクトルvQnと、のなす角度である(F3は0度以上180度以下)。
【0055】
プロセッサ210は、S220、S240にて決定済みの全てのモデル点ペアおよびシーン点ペアのそれぞれのPPF特徴量を算出する。ただし、各モデル点ペア間の距離Dp、および、シーン点ペア間の距離Dsは、上述したS230、S240にて算出済みであるので、再度の算出は行われない。
【0056】
S280では、プロセッサ210は、大局的特徴量に基づいてモデル点ペアとシーン点ペアとのマッチングを行う。具体的には、プロセッサ210は、注目モデル点ペアに対応する複数個のシーン点ペアの中から、注目モデル点ペアの大局的特徴量と同一または類似する大局的特徴量を有するシーン点ペアを探索する。ここで、注目モデル点ペアに対応する複数個のシーン点ペアは、注目モデルペアについて、S230にて決定された複数個のシーン点ペアを意味する。すなわち、注目モデル点ペアに対応する各シーン点ペアは、注目モデル点ペアと同じグループペアに属し、かつ、注目モデル点ペアについて決定された距離条件を満たす。プロセッサ210は、S220にて決定された全てのモデル点ペアを注目モデルペアとして、上記の探索を行う。
【0057】
一のモデル点ペアの大局的特徴量(D、F1、F2、F3)を(Dm、F1m、F2m、F3m)とし、比較対象のシーン点ペアの大局的特徴量(D、F1、F2、F3)を(Ds、F1s、F2s、F3s)とする。プロセッサ210は、以下の条件式(1)~(4)が全て満たされる場合に、一のモデル点ペアの大局的特徴量と、比較対象のシーン点ペアの大局的特徴量と、が同一または類似であると判断する。プロセッサ210は、条件式(1)~(4)のいずれかが満たされない場合に、一のモデル点ペアの大局的特徴量と、比較対象のシーン点ペアの大局的特徴量と、が非類似であると判断する。条件式(1)~(4)を用いることで、パラメータごとに閾値と比較することによって、類似するか否かの判断が行われるので、例えば、実験的に、パラメータごとに適切な閾値を設定することで、判断の精度を向上し得る。また、条件式(1)~(4)のいずれかが満たされない時点で判断を終了できるので、判断時間を短縮できる。
【0058】
|Dm-Ds|<THd …(1)
|F1m-F1s|<TH1 …(2)
|F2m-F2s|<TH2 …(3)
|F3m-F3s|<TH3 …(4)
【0059】
プロセッサ210は、探索されたシーン点ペアと、一のモデル点ペアと、をマッチングした組み合わせとして決定する。マッチングしたモデル点ペアとシーン点ペアとの組み合わせを「特定組み合わせ」とも呼ぶ。一般的には、多数の特定組み合わせが探索される。以下では、探索された特定組み合わせの個数をJ個とする(Jは3以上の整数)。
【0060】
大局的特徴量を用いたマッチング処理が終了すると、図2のS60では、プロセッサ210は、プロセッサ210は、物体特定処理を実行する。図10は、物体特定処理のフローチャートである。物体特定処理は、マッチング処理の結果に基づいて、トレー130内の対象物体OBの位置と姿勢を特定する処理である。
【0061】
S305では、プロセッサ210は、S50のマッチング処理にて探索されたJ個の特定組み合わせから1つの組み合わせを選択する。選択された特定組み合わせを構成するモデル点ペアとシーン点ペアを、物体特定処理における注目モデルペアと注目シーン点ペアとする。
【0062】
S310では、注目モデル点ペアの座標系と、注目シーン点ペアの座標系と、を作成する。図11は、点ペアPPiの座標系の説明図である。図11には、図9と同様に、点ペアPPiを構成する第1点Pおよび第2点Qと、第1点Pの法線ベクトルvPnと、第2点Qの法線ベクトルvQnと、が図示されている。
【0063】
点ペアPPiの座標系は、原点Opと、互いに直交する3個の座標軸Xp、Yp、Zpを定義する3個の単位ベクトルvXL、vYL、vZLと、を決定することによって、作成される。本実施例では、原点Opは、第1点Pと第2点Pとの中点に決定される。3個の単位ベクトルは、原点Opを始点とするベクトルである。座標軸Xpを定義する単位ベクトルvXLは、第1点Pから第2点Qに向かう方向を正方向とする。座標軸Zpを定義する単位ベクトルvZLは、法線ベクトルvPnと法線ベクトルvQnと和であるベクトル(vPn+vQn)の座標軸Xpと垂直な成分の方向を正方向とする。座標軸Ypを定義する単位ベクトルvYLは、該ベクトルvYLと座標軸Xpを定義する単位ベクトルvXLとの外積が座標軸Zpを定義する単位ベクトルvZLと一致するように決定される。
【0064】
プロセッサ210は、注目モデル点ペアの座標系を定義するために、モデル座標系において、原点Opmと、3個の単位ベクトルvXLm、vYLm、vZLmと、を決定する。プロセッサ210は、注目シーン点ペアの座標系を定義するために、シーン座標系において、原点Opsと、3個の単位ベクトルvXLs、vYLs、vZLsと、を決定する。
【0065】
S315では、プロセッサ210は、注目モデル点ペアの座標系と、注目シーン点ペアの座標系と、の間の変換行列MPを算出する。変換行列MPは、モデル座標系とシーン座標系とが同一の座標系であるという条件下で、注目モデル点ペアの座標系を、変換行列MPを用いて移動させた場合に、注目モデル点ペアの座標系と、注目シーン点ペアの座標系と、が一致するように、算出される。変換行列MPは、同次変換行列である。同次変換行列は、回転と並進移動を含む座標変換を表現する4行4列の行列である。
【0066】
図12は、変換行列MPの算出式を示す図である。変換行列MPは、図12(A)の式に示すように、第1変換行列Msと、第2変換行列Mmの逆行列と、の積である。
【0067】
第1変換行列Msは、図12(B)に示すように、4行4列の同次変換行列である。第1変換行列Msは、注目シーン点ペアの座標系を定義する同次変換行列である。第1-第3列は、回転を示している。第4列は、平行移動を示している。第1列の4個の成分は、注目シーン点ペアの座標系の座標軸Xpを定義する単位ベクトルvXLsの3個の成分(rs00、rs10、rs20)とゼロとで構成される。第2列の4個の成分は、注目シーン点ペアの座標系の座標軸Ypを定義する単位ベクトルvYLsの3個の成分(rs01、rs11、rs21)とゼロとで構成される。第3列の4個の成分は、注目シーン点ペアの座標系の座標軸Zpを定義する単位ベクトルvZLsの3個の成分(rs02、rs12、rs22)とゼロとで構成される。第4列の4個の成分は、注目シーン点ペアの座標系の原点Opsの座標(tsx、tsy、tsz)と1とで構成される。
【0068】
第2変換行列Mmは、図12(C)に示すように、4行4列の同次変換行列である。第2変換行列Mmは、注目モデル点ペアの座標系を定義する同次変換行列である。第1列の4個の成分は、注目モデル点ペアの座標系の座標軸Xpを定義する単位ベクトルvXLmの3個の成分(rm00、rm10、rm20)とゼロとで構成される。第2列の4個の成分は、注目モデル点ペアの座標系の座標軸Ypを定義する単位ベクトルvYLmの3個の成分(rm01、rm11、rm21)とゼロとで構成される。第3列の4個の成分は、注目モデル点ペアの座標系の座標軸Zpを定義する単位ベクトルvZLmの3個の成分(rm02、rm12、rm22)とゼロとで構成される。第4列の4個の成分は、注目モデル点ペアの座標系の原点Opmの座標(tmx、tmy、tmz)と1とで構成される。
【0069】
S320では、プロセッサ210は、全ての特定組み合わせを処理したか否かを判断する。未処理の特定組み合わせがある場合には(S320:NO)、プロセッサ210は、S305に戻る。全ての特定組み合わせが処理された場合には(S320:YES)、プロセッサ210は、S325に処理を進める。以上の説明から解るように、変換行列MPは、J個の特定組み合わせのそれぞれについて算出されるので、S325に進んだ時点でJ個の変換行列MPが算出されている。
【0070】
S325では、算出された各変換行列MPを用いて、モデル重心を含むモデル参照点をシーン座標系に投影する。図13は、モデル参照点の投影の説明図である。図13(A)には、3個のモデル参照点、具体的には、モデル重心Pgと、2個のモデル端点Pu、Pbと、が図示されている。これらのモデル参照点は、モデル点群PCmの座標系であるモデル座標系において定義されている。モデル重心Pgは、基準物体OBmの重心を示す。基準物体OBmは、直線AXを軸とした回転対称性を有するので、モデル重心Pgは、直線AX上に位置する。2個のモデル端点Pu、Pbは、直線AX上の点であって、基準物体OBmの直線AXの方向の両端の位置を示す点である。モデル参照点Pg、Pu、Pbのモデル座標系における座標は、例えば、モデル点群PCmの生成に用いられた基準物体OBmのCADデータを用いて、予め算出され、モデル点群データとともに不揮発性記憶装置230に記録されている。モデル参照点Pu、Pbを結ぶ線分を参照線分Lmとも呼ぶ。モデル重心Pgは、参照線分Lm上に位置している。
【0071】
モデル座標系の点Pm(例えば、モデル参照点Pg、Pu、Pb)をシーン座標系に投影して得られる投影点Pmsの座標は、図12(D)の式によって算出される。図12(D)において、(xm、ym、zm)はモデル座標系における点Pmの座標である。(xms、yms、zms)はシーン座標系における投影点Pmsの座標である。図12(D)に示すように、投影点Pmsの座標は、モデル座標系の点Pmを変換行列MPによって変換することによって算出される。
【0072】
図13(B)には、モデル参照点Pg、Pu、Pbをシーン座標系に投影した結果が示されている。J個の変換行列MPが算出された場合には、投影によって、J本の投影線分Lmsがシーン座標系において決定される。一本の投影線分Lmsは、モデル参照点Pu、Pbを1つの変換行列MPによって変換して得られる投影参照点Pus、Pubを結ぶ線文である。投影線分Lms上には、モデル重心Pgを変換行列MPによって変換して得られる投影重心Pgsが位置している。換言すれば、投影線分Lmsは、モデル座標系の参照線分Lm(図13(A))を変換行列MPによってシーン座標系に投影して得られる線分である。図13(A)に示す複数の投影線分Lmsは、S315にて算出済みのJ個の変換行列MPと一対一で対応している。このために、投影される投影線分Lmsの本数は、J本である。
【0073】
1つ投影線分Lmsは、変換行列MPによってシーン座標系に投影されるモデル座標系における対象物体OBの位置と姿勢を示している。変換行列MPの算出に用いられる特定組み合わせのマッチングが正確に行われている場合には、投影線分Lmsは、シーン点群PCsによって示される対象物体OBの位置と姿勢を正確に示す。例えば、投影線分Lms上の投影重心Pgsは、対象物体OBの位置を示す。投影線分Lmsの方向は、対象物体OBの姿勢を示す。実際には、J本の投影線分Lmsに対応するJ個の特定組み合わせの中には、信頼性の低い不正確なマッチングが含まれ得る。換言すれば、J本の投影線分LmsおよびJ本の投影線分Lmsに対応するJ個の特定組み合わせは、それぞれ、シーン点群PCsによって示される対象物体OBの位置と姿勢の候補を示す。以下では、J本の投影線分Lmsに対応するJ個の特定組み合わせの信頼性を評価して、シーン点群PCsによって示される物体群に含まれる対象物体OBの位置と姿勢を最終的に特定するための処理を行われる。
【0074】
S330では、シーン座標系に投影されたJ個の投影重心Pgsに基づいて、J個の特定組み合わせを1以上の大グループに分類する。例えば、プロセッサ210は、J個の投影重心Pgsから、1個の注目重心をランダムで選択する。プロセッサ210は、注目重心から所定の閾値THr以内に存在する1以上の投影重心Pgsを1つのグループにまとめる。プロセッサ210は、注目点の選択とグループの作成とを、J個の投影重心Pgsの全てがいずれかのグループに分類されるまで繰り返す。プロセッサ210は、1つのグループに属する1以上の投影重心Pgsを有する1以上の投影線分Lmsを1つの大グループに分類する。J個の投影線分LmsとJ個の特定組み合わせとは一対一で対応しているので、投影線分Lmsを大グループに分類することは、特定組み合わせを大グループに分類することと等価である。
【0075】
図13(B)の例では、破線の円C1内の5個の投影重心Pgsを有する投影線分Lmsが1つの大グループにまとめられ、破線の円C2内の4個の投影重心Pgsを有する投影線分Lmsが1つの大グループにまとめられる。1つの対象物体OBの位置と姿勢を示す複数の投影線分Lmsが、1つの大グループにまとめられるように、所定の閾値THrは実験的に調整されている。例えば、図13(B)では、右側の対象物体OB1の位置と姿勢を示す5個の投影線分Lmsが1つの大グループにまとめられ、左側の対象物体OB2の位置と姿勢を示す4個の投影線分Lmsが1つの大グループにまとめられている。
【0076】
S330では、シーン座標系に投影された投影線分Lmsに基づいて、各大グループに属する特定組み合わせを1以上の小グループに分類する。例えば、プロセッサ210は、上述した各大グループに属する1以上の投影線分Lmsから、1個の注目線分をランダムで選択する。プロセッサ210は、注目線分との間の角度θが所定の閾値THθ以内に存在する1以上の投影線分Lmsを1つの小グループにまとめる。プロセッサ210は、注目線分の選択と小グループの作成とを、大グループに属する投影線分Lmsの全てがいずれかの小グループに分類されるまで繰り返す。これによって、各大グループに属する特定組み合わせは、1以上の小グループに分類される。
【0077】
図13(B)の例では、対象物体OB1に対応する5個の投影線分Lmsは、小グループSg1、Sg2に分類され、対象物体OB1に対応する4個の投影線分Lmsは、小グループSg3、Sg4に分類されている。
【0078】
S340では、プロセッサ210は、S330にて作成された大グループの中から、1つの注目大グループを選択する。S345では、プロセッサ210は、注目大グループに属する各小グループの代表変換行列を取得する。代表変換行列は、小グループを作成する際に、最初にランダムに選択された投影線分Lmsに対応する変換行列MPである。投影線分Lmsに対応する変換行列MPは、モデル座標系における参照線分Lm(図13(A))を、シーン座標系における投影線分Lmsに変換する際に用いられた変換行列MPを意味する。
【0079】
S350では、プロセッサ210は、各小グループの評価値MVを算出する。例えば、小グループの評価値は、小グループに代表変換行列を用いてモデル座標系からシーン座標系に投影されるモデル点群PCm(すなわち、基準物体OBm)と、シーン点群PCsによって示される対象物体OBと、の間のズレの大きさの評価値である。本実施例では、プロセッサ210は、投影済の基準物体OBmを示す複数の点PTのそれぞれに関して、シーン点群PCsの複数の点PTのうちの最も近い点PTとの距離Dmsを算出する。投影済の基準物体OBmが、シーン点群PCsの対象物体OBと一致する場合、基準物体OBmの各点PTについて算出される距離Dmsは、小さくなる。投影済の基準物体OBmとシーン点群PCsの対象物体OBとの間のズレが大きい場合、基準物体OBmの各点PTについて算出される距離Dmsは、大きくなる。プロセッサ210は、基準物体OBmの各点PTについて算出される距離Dmsの平均値を、評価値MVとして算出する。評価値MVが小さいほど、投影済の基準物体OBmとシーン点群PCsの対象物体OBとの間のズレが小さい。
【0080】
S355では、プロセッサ210は、各小グループの評価値MVに基づいて、1以上の小グループの中から、1つの注目大グループに対応付けるべき1つの特定組み合わせを決定する。プロセッサ210は、1以上の小グループのうち、最良の評価値(本実施例では、最小の評価値)を有する小グループを決定する。図13の例では、注目大グループが対象物体OB1に対応する大グループ(投影重心Pgsが円C1内に位置するグループ)である場合には、小グループSg1が最良の評価値を有する。また、注目大グループが対象物体OB2に対応する大グループ(投影重心Pgsが円C2内に位置するグループ)である場合には、小グループSg4が最良の評価値を有する。プロセッサ210は、決定された小グループの代表変換行列に対応する特定組み合わせを、注目大グループに対応付けるべき特定組み合わせとして決定する。例えば、決定された特定組み合わせを用いて得られる変換行列MPを用いて、参照線分Lmをシーン座標系に投影することで、大グループに対応する対象物体OBの位置と姿勢を示す投影線分Lmsが得られる。そして、大グループは1つの対象物体OBと対応している。このために、大グループに対応付けるべき1つの特定組み合わせを最終的に決定することは、1つの対象物体OBの位置と姿勢を特定することと等価である。
【0081】
S360では、プロセッサ210は、全ての大グループを注目大グループとして処理したか否かを判断する。未処理の大グループがある場合には(S360:NO)、プロセッサ210は、S340に戻る。全ての大グループが処理された場合には(S360:YES)、プロセッサ210は、物体特定処理を終了する。この時点で、全ての大グループに対応付けるべき特定組み合わせ(変換行列MP)が決定しているので、シーン点群PCsによって示される全ての対象物体OBの位置と姿勢が特定されている。
【0082】
物体特定処理が終了すると、図2のS70では、プロセッサ210は、ロボット制御処理を実行する。ロボット制御処理は、特定処理機能にて特定済みの対象物体OBの位置と姿勢を使用してロボットアーム120を制御することによって、ロボットアーム120に対象物体OBを把持させる処理である。本実施例では、プロセッサ210は、特定済みの1以上の対象物体OBのうち、最も上方に位置する対象物体OBを把持対象に決定する。プロセッサ210は、把持対象の対象物体OBを複数の指126を用いて把持するようにロボットアーム120を制御する。そして、プロセッサ210は、例えば、ロボットアーム120を制御して、把持された対象物体OBを、予め決められた位置に移動させる。これによって、図2の処理は終了される。プロセッサ210は、例えば、図2の処理を繰り返し実行することによって、トレー130上にばら積みされた複数の対象物体OBを、1個ずつ、予め決められた位置に移動させることができる。
【0083】
以上説明した本実施例によれば、プロセッサ210は、基準となる対象物体(基準物体OBm)を示すモデル点群PCm(図3(A))を示すモデル点群データPDmと、対象物体OBを含む物体群を示すシーン点群PCs(図3(B))を示すシーン点群データPDsと、を取得する(図2のS10、S20)。プロセッサ210は、モデル点群PCmの一部である複数個のモデル対象点PTm(図7(A))のそれぞれと、シーン点群PCsの一部である複数個のシーン対象点PTs(図7(B))のそれぞれと、の局所的特徴量を取得する(図4のS150、S180)。プロセッサ210は、局所的特徴量に基づいて複数個のモデル対象点PTmと複数個のシーン対象点PTsとを複数個の類似グループに分類する(図4のS160、S190、図7(A)、(B))。プロセッサ210は、モデル点ペアと、モデル点ペアに対応する複数個のシーン点ペアと、を決定する(図8のS220、S240)。モデル点ペアと、モデル点ペアに対応するシーン点ペアとは、同じグループペアに属する(図8のS220、S240)。すなわち、シーン点ペアを構成する2個の点のそれぞれは、モデル点ペアを構成する2個の点のうちの対応する点と同一の類似グループに属する。プロセッサ210は、モデル点ペアとシーン点ペアとのそれぞれの大局的特徴量を取得する(図8のS270)。プロセッサ210は、プロセッサ210は、モデル点ペアとシーン点ペアとのマッチングを行う(図8のS280)。すなわち、モデル点ペアに対応する複数個のシーン点ペアの中から、モデル点ペアが有する大局的特徴量と同一または類似する大局的特徴を有する特定の点セットが探索される。プロセッサ210は、マッチングの結果(探索の結果)を用いて、特定処理(図2のS70)を実行する。本実施例の特定処理は、ロボットアーム120を用いて、対象物体OBの把持と移動とを行うロボット制御処理である。
【0084】
この結果、局所的特徴量に基づいて、大局的特徴量を用いたマッチングに適したモデル点ペアやシーン点ペアを決定できる。このために、マッチングの際にマッチングの精度を向上できる。換言すれば、シーン点ペアの中から、モデル点ペアが有する大局的特徴量と同一または類似する大局的特徴を有するシーン点ペアを探索する際に、探索の精度を向上できる。したがって、探索の結果を用いて特定処理(例えば、ロボット制御処理)を実行する際に、適切な特定処理を実行することができる。また、大局的特徴量を用いた探索に適さない余分な複数個のシーン点ペアやモデル点ペアが決定されることを抑制できるので、探索の計算時間を抑制できる。
【0085】
例えば、仮に、局所的特徴量による分類を行わずに、総あたりでモデル点ペアやシーン点ペアを決定するとする。この場合には、例えば、決定されるモデル点ペアは、対象物体の特徴を適切に示さないモデル点ペアを含みやすい。また、1つのモデル点ペアとマッチングすべきシーン点ペアの個数が過剰に多くなりやすい。本実施例によれば、このような不都合を抑制して、過度に計算時間を増加させることなく、マッチング精度を向上できる。
【0086】
さらに、本実施例によれば、プロセッサ210は、m個のグループG1~G4のうちの2個のグループから1つずつ選択することによって、モデル点ペアおよびシーン点ペアトを決定する。すなわち、本実施例では、1つのグループ(例えば、グループG1)から2個の点を選択して点ペアを構成することはない。この結果、対象物体OBの互いに特徴が異なる部分から選択された点ペアが用いられるので、例えば、対象物体OBの互いに類似した特徴を有する部分から選択された点ペアが用いられる場合よりも、点ペアが対象物体OBの全体の特徴を反映しやすい。この結果、マッチングの精度をさらに向上することができる。
【0087】
さらに、本実施例によれば、プロセッサ210は、注目グループペアに属する注目モデル点ペアごとに、それぞれ、距離条件を決定し(S230)、該距離条件を満たすシーン点ペアが決定される(S240)。このように、グループペアが異なれば、用いられる距離条件も異なる。すなわち、第1のグループペア(例えば、グループG1、G2のペア)に属するモデル点ペアに対応するシーン点ペアが満たすべき第1距離条件と、第2のグループペア(例えば、グループG2、G3のペア)に属するモデル点ペアに対応するシーン点ペアが満たすべき第2距離条件と、は互いに異なる条件である。この結果、よりマッチングに適した複数個のシーン点ペアが決定される。例えば、グループペアによって異なる距離条件が用いられることで、マッチングする可能性が低いシーン点ペア(例えば、2個の対象物体OBを跨ぐ点ペア)や、誤ったマッチングにつながりやすいシーン点ペアが、マッチングすべきシーン点ペアとして決定されることを抑制できる。この結果、マッチングの計算時間の短縮や、マッチングの精度向上を実現できる。
【0088】
なお、本実施例では、注目グループペアに属する注目モデル点ペアごとに異なる距離条件が決定されているが、これに代えて、注目グループペアごとに1つの距離条件が決定あれても良い。例えば、注目グループペアに属する複数個のモデル点ペアの平均距離に基づいて、注目グループペアの1つの距離条件が決定されても良い。この場合であっても、第1のグループペア(例えば、グループG1、G2のペア)に属するモデル点ペアに対応するシーン点ペアが満たすべき第1距離条件と、第2のグループペア(例えば、グループG2、G3のペア)に属するモデル点ペアに対応するシーン点ペアが満たすべき第2距離条件と、は互いに異なる条件になるので、マッチングの計算時間の短縮や、マッチングの精度向上を実現できる。
【0089】
さらに、本実施例の大局的特徴量は、点ペアPPiを構成する2個の点P、Qの間の距離Dと、点ペアPPiを構成する2個の点P、Qの法線ベクトルvPn、vQnに基づく量F1~F3と、を含む(図9)。プロセッサ210は、モデル点ペアを構成する2個のモデル対象点PTmの間の距離Dmに基づいて距離条件を決定し(図8のS230)、シーン点ペアの候補となる2個のシーン対象点PTsから成る点ペアのうち、距離条件を満たすペアをシーン点ペアとして決定する(図8のS240)。プロセッサ210は、決定されたシーン点ペアについて、法線ベクトルに基づく量F1~F3を算出する(図8のS270)。この結果、大局的特徴量の複数個のパラメータD、F1~F3のうち、法線ベクトルに基づく量F1~F3は、距離条件を満たすシーン点ペアについてのみ算出されるので、マッチングする可能性が低いシーン点ペアについて量F1~F3が無駄に計算されることを抑制して、大局的特徴量を効率良く算出できる。
【0090】
さらに、上記実施例によれば、複数個の類似グループG1~G4の代表点RP1~RP4の間の局所的特徴量の差異は、基準値以上である(図4のS110~S130)。この結果、局所的特徴量の差異が比較的大きな2個の点からなる点ペアが、モデル点ペアおよびシーン点ペアとして決定される。したがって、マッチングにより適したモデル点ペアおよびシーン点ペアを決定できる。
【0091】
さらに、上記実施例によれば、モデル点ペアとシーン点ペアとのマッチングによって、J個の特定組み合わせが決定される場合に、プロセッサ210は、図10の物体特定処理において、J個の特定組み合わせをJ個未満の小グループに分類し(図10のS335)、小グループごとに特定組み合わせの信頼性を評価し(図10のS350)、評価結果に基づいてJ個未満の小グループの中から選択される一部のグループに属する特定組み合わせを用いて、対象物体OBの位置と姿勢とを特定する(図10のS355)。上記構成によれば、小グループに分類して特定組み合わせの信頼性を評価するので、対象物体OBの位置と姿勢とを効率良く、適切に特定することができる。
【0092】
さらに、上記実施例によれば、プロセッサ210は、J個の特定組み合わせのそれぞれに基づいて、モデル座標系の複数個のモデル参照点Pg、Pu、Pbをシーン座標系に投影し(図10のS325)、シーン座標系に投影された複数個の投影参照点Pgs、Pus、Pbsを用いて、J個の特定組み合わせをJ個未満の小グループに分類する(図10のS330、S335)。プロセッサ210は、モデル座標系のモデル点群PCmをシーン座標系に投影して得られる複数個の投影点を用いて、小グループごとにマッチングの信頼性を評価する(図10のS355)。この結果、モデル座標系の複数個の点をシーン座標系に投影した複数個の投影点を用いて、J個の特定組み合わせの分類と信頼性の評価とを適切に実行できる。
【0093】
さらに、本実施例の投影参照点Pgs、Pus、Pbsは、対象物体OBの重心を示す投影重心Pgsを含む3個の点を含む。投影重心Pgsに基づいてシーン座標系における対象物体OBの位置が特定され、3個の投影点Pgs、Pus、Pbs(すなわち、投影線分Lms)に基づいて対象物体OBの姿勢が特定される。この結果、シーン座標系における対象物体OBの位置と姿勢を3個の投影点に基づいて適切に特定できる。
【0094】
以上の説明から解るように、本実施例のモデル点群データPDmは、第1点群データの例であり、シーン点群データPDsは、第2点群データの例である。本実施例のモデル対象点PTmは、第1対象点の例であり、シーン対象点PTsは、第2対象点の例である。モデル点ペアは、第1点セットの例であり、シーン点ペアは、第2点セットの例である。
【0095】
B.変形例:
(1)上記実施例では、局所的特徴量として、SHOT特徴量が採用されている。これに代えて、別の種類の局所的特徴量が採用されても良い。例えば、PFH(Point Feature Histogram)、HONV(Histogram of Oriented Normal Vector)、LSP(Local Surface Patches)、DoN(Difference of Normals)が採用されても良い
【0096】
(2)上記実施例では、大局的特徴量は、点ペアの特徴を示す量である。変形例では、3個以上の点セットの特徴を示す大局的特徴量が採用されても良い。例えば、3点の点セットの特徴を示す大局的特徴量としては、VPF(Vector Pair Feature)、RPD(Relative Point Density)等が採用されても良い。
【0097】
(3)上記実施例では、モデル点ペアやシーン点ペアは、1つの類似グループから選択される2個の点からなる点ペアを含まない。これに代えて、モデル点ペアやシーン点ペアは、1つの類似グループから選択される2個の点からなる点ペアを含んでも良い。
【0098】
(4)上記実施例では、グループペアに属するモデル点ペアごとに距離条件が定められ、該距離条件を満たすシーン点ペアがマッチングの対象として決定される。これに代えて、グループペアごとに距離条件が定められても良いし、1つの対象物体OBで1つの距離条件(例えば、対象物体OBの軸線方向の全長に基づく距離条件)が定められても良い。
【0099】
(5)上記実施例では、基準物体OBmを示すモデル点群PCmの代表点RPの個数は、4個である。これに限らず、代表点RPの個数は、2以上の任意の個数であって良い。また、複数個の代表点RPは、互いに局所的特徴量が類似する2個の点を含んでも良い。この場合であっても、例えば、複数個のモデル対象点PTmおよびシーン対象点PTsは、最も近い局所的特徴量を有する代表点に対応する1つの類似グループに分類されれば良い。
【0100】
(6)上記実施例では、モデル点ペアとシーン点ペアとのマッチングによって得られたJ個の特定組み合わせは、小グループに分類され、小グループごとに信頼性が評価される。これに代えて、J個の特定組み合わせは、グループに分類されることなく、1つずつ信頼性が評価されても良い。この場合には、プロセッサ210は、最も信頼性が高い特定組み合わせに基づいて、対象物体OBの位置と姿勢を特定すれば良い。
【0101】
(7)上記実施例では、プロセッサ210は、マッチング結果を用いて、モデル重心Pgを含む3個のモデル参照点Pg、Pu、Pbをシーン座標系に投影し、投影によって得られる3個の投影参照点Pgs、Pus、Pbsによって対象物体OBの位置と姿勢を特定している。これに限らず、4個以上の投影点に基づいて、対象物体OBの位置と姿勢を特定しても良いし、重心を含まない3以上の投影点に基づいて、対象物体OBの位置と姿勢を特定しても良い。
【0102】
(8)複数個の点PTに基づいて法線ベクトルや局所座標系を決定する方法は、主成分分析を使用する方法に限らず、他の種々の方法であってよい。例えば、プロセッサ210は、いわゆる最小二乗法に従って、複数の点を近似する近似平面を決定して、該近似平面に垂直な方向に法線ベクトルを決定してもよい。そして、プロセッサ210は、決定された平面に基づいて、法線ベクトルを算出してよい。
【0103】
(9)対象物体OBの位置と姿勢との特定結果を用いて行われる処理は、ロボット制御処理に限らず、他の様々な処理であって良い。例えば、製品上に取り付けられた部品の位置と姿勢とを特定し、該製品上において部品が正しい位置に正しい姿勢で取り付けられているか否かを検査する処理が実行されても良い。
【0104】
(10)点群データを処理する装置の構成は、図1のデータ処理装置200の構成に代えて、他の種々の構成であってよい。例えば、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、実施例のデータ処理装置200が実行する処理を一部ずつ分担して実行して、全体として、データ処理装置200が実行する処理を実行してもよい。
【0105】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、局所的特徴量や大局特徴量の算出の機能を、専用のハードウェア回路によって実現してもよい。
【0106】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0107】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0108】
110…三次元センサ,120…ロボットアーム,130…トレー,200…データ処理装置,210…プロセッサ,215…記憶装置,220…揮発性記憶装置,230…不揮発性記憶装置,240…表示部,250…操作部,270…通信インタフェース,OB…対象物体,OBm…基準物体,PCm…モデル点群,PCs…シーン点群,PDm…モデル点群データ,PDs…シーン点群データ,PG…コンピュータプログラム,PPi…点ペア,PT…点,PTm…モデル対象点,PTs…シーン対象点,Pg,Pu,Pb…モデル参照点,Pgs,Pus,Pbs…モデル参照点,RP…代表点
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13