(57)【要約】【課題】シーン点群から特徴点を検出するために要する時間を短縮することができるロボットシステムを提供すること。【解決手段】ロボットシステムは、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた前記領域に含まれる前記シーン点群の一部から特徴点をシーン特徴点として検出するロボット制御装置と、ロボット制御装置に制御されるロボットと、を備える。【選択図】図３
2017042897.tif 000002
【特許請求の範囲】
【請求項１】
特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた前記領域に含まれる前記シーン点群の一部から特徴点をシーン特徴点として検出するロボット制御装置と、
前記ロボット制御装置に制御されるロボットと、
を備えるロボットシステム。
【請求項２】
前記ロボット制御装置は、前記シーン特徴点に基づいて、前記対象物のモデルの点群であるモデル点群に対応する部分点群を前記一部から検出する、
請求項１に記載のロボットシステム。
【請求項３】
前記ロボット制御装置は、前記シーン特徴点に基づいて、前記一部から前記部分点群を抽出できなかった場合、前記シーン点群の点のうちの前記第１点とは異なる点である第２点の特徴量に対応付けられた前記領域に含まれる前記一部から前記シーン特徴点を検出する、
請求項２に記載のロボットシステム。
【請求項４】
前記ロボット制御装置は、前記シーン特徴点に基づいて、前記シーン点群の中から前記部分点群を検出できた場合、検出した当該部分点群に基づいて得られる前記対象物の位置及び姿勢に基づいて前記対象物に対して所定の作業を前記ロボットに行わせる、
請求項２又は３のうちいずれか一項に記載のロボットシステム。
【請求項５】
前記領域は、２以上の部分領域を含んでおり、
前記部分領域には、前記シーン点群から前記シーン特徴点を検出する優先順位が決められており、
前記ロボット制御装置は、所定の第１条件が満たされるまで前記優先順位に基づいて選択された前記部分領域に含まれる前記一部から前記シーン特徴点を検出する、
請求項１から４のうちいずれか一項に記載のロボットシステム。
【請求項６】
前記部分領域の少なくとも１つには、特徴点が含まれており、
前記優先順位は、前記部分領域に含まれる特徴点の数に応じて決められている、
請求項５に記載のロボットシステム。
【請求項７】
前記ロボット制御装置は、前記対象物のモデルの点群であるモデル点群の点の特徴量に対応付けられた第１分布であって、前記モデル点群から検出された特徴点であるモデル特徴点の前記モデル点群上における前記第１分布と、当該特徴量と類似する特徴量に対応付けられた第２分布であって、前記モデル特徴点の前記モデル点群上における前記第２分布とに基づいて、前記領域を示す情報を生成する、
請求項１から６のうちいずれか一項に記載のロボットシステム。
【請求項８】
前記ロボット制御装置は、前記シーン点群から前記シーン特徴点を検出する方法と同じ方法によって前記モデル点群から前記モデル特徴点を検出し、前記シーン点群の点の特徴量を得る方法と同じ方法によって前記モデル点群の点の特徴量を得て、検出した前記モデル特徴点と、得られた当該特徴量とに基づいて、前記第１分布及び前記第２分布を生成する、
請求項７に記載のロボットシステム。
【請求項９】
前記点群は、三次元点群である、
請求項１から８のうちいずれか一項に記載のロボットシステム。
【請求項１０】
特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた前記領域に含まれる前記シーン点群の一部から特徴点をシーン特徴点として検出する、
ロボット。
【請求項１１】
特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた前記領域に含まれる前記シーン点群の一部から特徴点をシーン特徴点として検出する、
ロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボットシステム、ロボット、及びロボット制御装置に関する。
【背景技術】
【０００２】
対象物の三次元情報に基づいてロボットに対象物を把持させる技術の研究や開発が行われている。
【０００３】
これに関し、対象物の三次元情報である三次元点群の全体から特徴点を検出し、検出した特徴点と、モデルの三次元点群から検出された特徴点とに基づいて、対象物の位置及び姿勢を算出する方法が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−９３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この方法では、対象物の三次元点群から特徴点を検出する際、特徴点が検出されない領域や、検出される特徴点が少ない領域に対する特徴点の検出処理を抑制することが考慮されていなかったため、対象物の三次元点群から特徴点を検出するために要する時間を短縮することが困難な場合があり、その結果、対象物の位置及び姿勢の算出に要する時間を短縮することが困難な場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた前記領域に含まれる前記シーン点群の一部から特徴点をシーン特徴点として検出するロボット制御装置と、前記ロボット制御装置に制御されるロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムは、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた当該領域に含まれるシーン点群の一部から特徴点をシーン特徴点として検出する。これにより、ロボットシステムは、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【０００７】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記シーン特徴点に基づいて、前記対象物のモデルの点群であるモデル点群に対応する部分点群を前記一部から検出する、構成が用いられてもよい。
この構成により、ロボットシステムは、シーン特徴点に基づいて、モデル点群に対応する部分点群をシーン点群の一部から検出する。これにより、ロボットシステムは、モデル点群に対応する部分点群をシーン点群から検出するために要する時間を短縮することができる。
【０００８】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記シーン特徴点に基づいて、前記一部から前記部分点群を抽出できなかった場合、前記シーン点群の点のうちの前記第１点とは異なる点である第２点の特徴量に対応付けられた前記領域に含まれる前記一部から前記シーン特徴点を検出する、構成が用いられてもよい。
この構成により、ロボットシステムは、シーン特徴点に基づいて、シーン点群の一部から部分点群を抽出できなかった場合、シーン点群の点のうちの第１点とは異なる点である第２点の特徴量に対応付けられた領域に含まれるシーン点群の一部からシーン特徴点を検出する。これにより、ロボットシステムは、より確実にシーン点群の一部からシーン特徴点を検出することができる。
【０００９】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記シーン特徴点に基づいて、前記シーン点群の中から前記部分点群を検出できた場合、検出した当該部分点群に基づいて得られる前記対象物の位置及び姿勢に基づいて前記対象物に対して所定の作業を前記ロボットに行わせる、構成が用いられてもよい。
この構成により、ロボットシステムは、シーン特徴点に基づいて、シーン点群の中から部分点群を検出できた場合、検出した当該部分点群に基づいて得られる対象物の位置及び姿勢に基づいて対象物に対して所定の作業をロボットに行わせる。これにより、ロボットシステムは、対象物に対してロボットに所定の作業を行わせるために要する時間を短縮することができる。
【００１０】
また、本発明の他の態様は、ロボットシステムにおいて、前記領域は、２以上の部分領域を含んでおり、前記部分領域には、前記シーン点群から前記シーン特徴点を検出する優先順位が決められており、前記ロボット制御装置は、所定の第１条件が満たされるまで前記優先順位に基づいて選択された前記部分領域に含まれる前記一部から前記シーン特徴点を検出する、構成が用いられてもよい。
この構成により、ロボットシステムは、所定の第１条件が満たされるまで優先順位に基づいて選択された部分領域に含まれるシーン点群の一部からシーン特徴点を検出する。これにより、ロボットシステムは、シーン特徴点を検出するために要する時間を、より確実に短縮することができる。
【００１１】
また、本発明の他の態様は、ロボットシステムにおいて、前記部分領域の少なくとも１つには、特徴点が含まれており、前記優先順位は、前記部分領域に含まれる特徴点の数に応じて決められている、構成が用いられてもよい。
この構成により、ロボットシステムは、所定の第１条件が満たされるまで、部分領域に含まれる特徴点の数に応じて決められている優先順位に基づいて選択された部分領域に含まれるシーン点群の一部からシーン特徴点を検出する。これにより、ロボットシステムは、部分領域に含まれる特徴点の数に応じて決められている優先順位に基づいて、シーン特徴点を検出するために要する時間を短縮することができる。
【００１２】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記対象物のモデルの点群であるモデル点群の点の特徴量に対応付けられた第１分布であって、前記モデル点群から検出された特徴点であるモデル特徴点の前記モデル点群上における前記第１分布と、当該特徴量と類似する特徴量に対応付けられた第２分布であって、前記モデル特徴点の前記モデル点群上における前記第２分布とに基づいて、前記領域を示す情報を生成する、構成が用いられてもよい。
この構成により、ロボットシステムは、モデル点群の点の特徴量に対応付けられた第１分布であって、モデル特徴点のモデル点群上における第１分布と、当該特徴量と類似する特徴量に対応付けられた第２分布であって、モデル特徴点のモデル点群上における第２分布とに基づいて、特徴量に対応付けられた領域を示す情報を生成する。これにより、ロボットシステムは、特徴量に対応付けられた領域を示す情報を生成し、生成した当該領域を示す情報に基づいて、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【００１３】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記シーン点群から前記シーン特徴点を検出する方法と同じ方法によって前記モデル点群から前記モデル特徴点を検出し、前記シーン点群の点の特徴量を得る方法と同じ方法によって前記モデル点群の点の特徴量を得て、検出した前記モデル特徴点と、得られた当該特徴量とに基づいて、前記第１分布及び前記第２分布を生成する、構成が用いられてもよい。
この構成により、ロボットシステムは、シーン点群からシーン特徴点を検出する方法と同じ方法によってモデル点群からモデル特徴点を検出し、シーン点群の点の特徴量を得る方法と同じ方法によってモデル点群の点の特徴量を得て、検出した当該モデル特徴点と、得られた当該特徴量とに基づいて、第１分布及び第２分布を生成する。これにより、ロボットシステムは、検出した当該モデル特徴点と、算出した当該特徴量とに基づいて、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【００１４】
また、本発明の他の態様は、ロボットシステムにおいて、前記点群は、三次元点群である、構成が用いられてもよい。
この構成により、ロボットシステムは、特徴量に対応付けられた領域を示す情報に基づいて対象物の三次元点群である三次元シーン点群の点である第１点の特徴量に対応付けられた当該領域に含まれる三次元シーン点群の一部から特徴点をシーン特徴点として検出する。これにより、ロボットシステムは、三次元シーン点群から特徴点を検出するために要する時間を短縮することができる。
【００１５】
また、本発明の他の態様は、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた前記領域に含まれる前記シーン点群の一部から特徴点をシーン特徴点として検出する、ロボットである。
この構成により、ロボットは、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた当該領域に含まれるシーン点群の一部から特徴点をシーン特徴点として検出する。これにより、ロボットは、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【００１６】
また、本発明の他の態様は、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた前記領域に含まれる前記シーン点群の一部から特徴点をシーン特徴点として検出する、ロボット制御装置である。
この構成により、ロボット制御装置は、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた当該領域に含まれるシーン点群の一部から特徴点をシーン特徴点として検出する。これにより、ロボット制御装置は、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【００１７】
以上により、ロボットシステム、ロボット、及びロボット制御装置は、特徴量に対応付けられた領域を示す情報に基づいて対象物の点群であるシーン点群の点である第１点の特徴量に対応付けられた当該領域に含まれるシーン点群の一部から特徴点をシーン特徴点として検出する。これにより、ロボットシステム、ロボット、及びロボット制御装置は、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係るロボット２０の一例を示す構成図である。
【図２】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置３０の機能構成の一例を示す図である。
【図４】制御部３６が行う処理の流れの一例を示すフローチャートである。
【図５】図４に示したステップＳ１００において制御部３６が行う領域情報生成処理の流れの一例を示すフローチャートである。
【図６】三次元モデル点群の一例を示す図である。
【図７】三次元モデル点群ＯＭの点のうちの点ＰＴ１に対して設定される局所座標系の一例を示す図である。
【図８】三次元モデル点群ＯＭの各点について生成された対応情報を例示する図である。
【図９】所定の分類規則の一例を説明するための図である。
【図１０】複数の対応情報から領域情報を生成する方法を説明するための図である。
【図１１】特徴量が対応付けられた複数の領域情報を例示する図である。
【図１２】図４に示したステップＳ１２０において制御部３６が行う位置姿勢算出処理の流れの一例を示すフローチャートである。
【図１３】ステレオ撮像画像に基づいて生成された三次元シーン点群の一例を示す図である。
【図１４】優先順位が最も高い部分領域からシーン特徴点が検出された様子の一例を示す図である。
【図１５】ステップＳ３６０において特徴点検出部５０が三次元モデル点群ＯＭから検出した４つのシーン特徴点を例示する図である。
【図１６】図１５に示した重心特徴点Ｇの位置を算出するために用いた４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４の幾何学的関係の一例を示した図である。
【図１７】４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４の位置関係の一例と、具体例２において部分点群検出部５４が算出する距離とを示す図である。
【図１８】図１６に示した４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４の位置関係の一例と、具体例３において部分点群検出部５４が算出する距離とを示す図である。
【発明を実施するための形態】
【００１９】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボット２０の一例を示す構成図である。
まず、ロボット２０の構成について説明する。
【００２０】
ロボット２０は、第１アームと第２アームを備える双腕ロボットである。双腕ロボットは、この一例における第１アームと第２アームのような２本のアーム（腕）を備えるロボットである。なお、ロボット２０は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットは、１本のアームを備えるロボットである。例えば、単腕ロボットは、この一例における第１アームと第２アームのいずれか一方を備える。
また、ロボット２０は、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４と、ロボット制御装置３０を備える。
【００２１】
第１アームは、物体を把持可能な爪部を備える第１エンドエフェクターＥ１と、第１マニピュレーターＭ１と、第１撮像部２１と、図示しない複数のアクチュエーターである第１アクチュエーターによって構成される。第１アームは、７軸垂直多関節型のアームである。具体的には、第１アームは、支持台と、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１が第１アクチュエーターによる連携した動作によって７軸の自由度の動作を行う。なお、第１アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００２２】
第１アームが７軸の自由度で動作する場合、第１アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第１アームは、例えば、動作が滑らかになり、更に第１アームの周辺に存在する物体との干渉を容易に回避することができる。また、第１アームが７軸の自由度で動作する場合、第１アームの制御は、第１アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。このような理由から、第１アームは、７軸の自由度で動作することが望ましい。
【００２３】
各第１アクチュエーターは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第１アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第１エンドエフェクターＥ１と第１マニピュレーターＭ１を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、第１アクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２４】
第１撮像部２１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、第１撮像部２１は、第１マニピュレーターＭ１の一部に備えられる。そのため、第１撮像部２１は、第１アームの動きに応じて移動する。また、第１撮像部２１が撮像可能な範囲は、第１アームの動きに応じて変化する。第１撮像部２１は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。
【００２５】
また、第１撮像部２１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１撮像部２１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２６】
第２アームは、物体を把持可能な爪部を備える第２エンドエフェクターＥ２と、第２マニピュレーターＭ２と、第２撮像部２２と、図示しない複数のアクチュエーターである第２アクチュエーターによって構成される。第２アームは、７軸垂直多関節型のアームである。具体的には、第２アームは、支持台と、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２が第２アクチュエーターによる連携した動作によって７軸の自由度の動作を行う。第２アームは、第１アームが７軸の自由度で動作することが望ましい理由と同様の理由により、７軸の自由度で動作することが望ましい。なお、第２アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００２７】
各第２アクチュエーターは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第２アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第２エンドエフェクターＥ２と第２マニピュレーターＭ２を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、第２アクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２８】
第２撮像部２２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。この一例において、第２撮像部２２は、第２マニピュレーターＭ２の一部に備えられる。そのため、第２撮像部２２は、第２アームの動きに応じて移動する。また、第２撮像部２２が撮像可能な範囲は、第２アームの動きに応じて変化する。第２撮像部２２は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。
【００２９】
また、第２撮像部２２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２撮像部２２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３０】
第３撮像部２３は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第３撮像部２３は、ロボット２０が第１アームと第２アームのうちいずれか一方又は両方により作業を行う領域を含む範囲である撮像範囲を撮像可能な位置に設置される。なお、第３撮像部２３は、撮像範囲の静止画像を撮像してもよく、撮像範囲の動画像を撮像してもよい。
【００３１】
また、第３撮像部２３は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第３撮像部２３は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３２】
第４撮像部２４は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第４撮像部２４は、第３撮像部２３が撮像可能な撮像範囲を第３撮像部２３とともにステレオ撮像可能な位置に設置される。なお、第４撮像部２４は、撮像範囲の静止画像を撮像してもよく、撮像範囲の動画像を撮像してもよい。
【００３３】
また、第４撮像部２４は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第４撮像部２４は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３４】
上記で説明したロボット２０が備えるこれらの各機能部は、この一例において、ロボット２０に内蔵されたロボット制御装置３０から制御信号を取得する。そして、当該各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット２０は、ロボット制御装置３０を内蔵する構成に代えて、外部に設置されたロボット制御装置３０により制御される構成（ロボットシステム）であってもよい。
【００３５】
ロボット制御装置３０は、ロボット２０に制御信号を送信することにより、ロボット２０を動作させる。これにより、ロボット制御装置３０は、ロボット２０に所定の作業を行わせる。
【００３６】
以下、ロボット２０が行う所定の作業について説明する。
図１に示した作業台ＴＢは、例えば、テーブルである。作業台ＴＢの上面には、１以上の対象物Ｏがバラ積みされている。なお、作業台ＴＢは、テーブルに変えて、１以上の対象物Ｏをバラ積みすることが可能な床面等の物体であれば他の物体であってもよい。
【００３７】
対象物Ｏは、例えば、製品に組み付けるプレート、ネジ、ボルト等の産業用の部品や部材である。図１において、対象物Ｏは、図の簡略化のためＬ字型の形状を有した物体として表している。なお、対象物Ｏは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Ｏの形状は、Ｌ字型の形状に代えて、他の形状であってもよい。
【００３８】
ロボット２０は、例えば、作業台ＴＢの上面にバラ積みされた１以上の対象物Ｏを１つずつ第１エンドエフェクターＥ１により把持する。ロボット２０は、把持した対象物Ｏを、図１に示した作業台ＴＢの上面における給材領域Ａに給材（配置）する。ロボット２０は、これを繰り返すことにより、所定の作業として１以上の対象物Ｏのうちの一部又は全部を給材領域Ａに給材する。
【００３９】
なお、ロボット２０は、所定の作業において対象物Ｏを第１エンドエフェクターＥ１により把持する構成に代えて、対象物Ｏを第２エンドエフェクターＥ２により把持する構成であってもよく、第１エンドエフェクターＥ１と第２エンドエフェクターＥ２の両方により対象物Ｏを把持する構成であってもよい。
【００４０】
以下、ロボット２０に所定の作業を行わせるためにロボット制御装置３０が行う処理の概要について説明する。
【００４１】
ロボット制御装置３０は、特徴量に対応付けられた領域を示す情報である領域情報に基づいて、１以上の対象物Ｏの点群が含まれるシーン点群の点の特徴量に対応付けられた当該領域に含まれる当該シーン点群の一部から特徴点をシーン特徴点として検出する。なお、特徴量は、点群の各点に応じた特徴的な量のことである。また、特徴点は、点群の点のうちの特徴的な点のことである。このようなシーン特徴点の検出により、ロボット制御装置３０は、シーン点群の一部からシーン特徴点を検出することができ、例えば、当該シーン点群の一部から所望の数以上のシーン特徴点を検出することが出来た場合、シーン点群の全体から所望の数以上のシーン特徴点を検出する場合と比較して、シーン点群からシーン特徴点を検出するために要する時間を短縮することができる。
【００４２】
シーン点群からシーン特徴点を検出するために要する時間は、対象物Ｏのモデルの点群であるモデル点群に対応する部分点群をシーン点群の中から検出し、検出した部分点群に基づいて対象物Ｏの位置及び姿勢を算出する処理において短縮することが困難な場合が多い。このため、このようなシーン点群からシーン特徴点を検出するために要する時間の短縮は、当該位置及び姿勢を算出するために要する時間の短縮に繋がる。
【００４３】
以下では、一例として、上記において説明した点群が、三次元点群である場合について説明する。すなわち、対象物Ｏのモデル点群は、三次元モデル点群であり、対象物Ｏのシーン点群は、三次元シーン点群である。なお、上記において説明した点群は、これに代えて、二次元点群や、四次元以上の多次元点群であってもよい。
【００４４】
三次元シーン点群の点の特徴量に対応付けられた領域に含まれる当該三次元シーン点群の一部からシーン特徴点を検出した後、ロボット制御装置３０は、当該シーン特徴点に基づいて、三次元シーン点群の中から三次元モデル点群に対応する部分点群を検出する。そして、ロボット制御装置３０は、当該部分点群に基づいて対象物Ｏの位置及び姿勢を算出し、算出した当該位置及び姿勢に基づいて対象物Ｏに対して所定の作業をロボット２０に行わせる。
【００４５】
このような処理によって、ロボット制御装置３０は、ロボット２０に所定の作業を行わせる。以下では、当該処理のうち、ロボット制御装置３０が領域情報に基づいて、三次元シーン点群の点の特徴量に対応付けられた領域に含まれる前記シーン点群の一部からシーン特徴点を検出する処理と、領域情報を生成する処理とについて詳しく説明する。なお、三次元モデル点群に対応する部分点群に基づいて算出される対象物Ｏの位置及び姿勢は、モデル点群に対応する部分点群に基づいて得られる対象物の位置及び姿勢の一例である。また、この一例において、三次元シーン点群における三次元モデル点群と対応する部分点群は、この一例において、三次元シーン点群の中の三次元モデル点群と略一致する部分の三次元点群のことである。
【００４６】
次に、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。
【００４７】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００４８】
記憶部３２は、ロボット制御装置３０が処理する各種情報や画像、プログラム、三次元モデル点群の情報（三次元モデル点群を示す情報）、給材領域Ａの位置を示す情報等を格納する。また、記憶部３２は、モデル記憶部３２１を備える。
モデル記憶部３２１は、記憶部３２の記憶領域の一部であり、三次元モデル点群の情報を格納する記憶領域である。この一例では、モデル記憶部３２１は、三次元モデル点群の情報を予め記憶している場合について説明する。なお、モデル記憶部３２１は、ユーザーから受け付けられた操作に基づいて、三次元モデル点群の情報を記憶する構成であってもよい。
【００４９】
入力受付部３３は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部３３は、タッチパネルとして表示部３５と一体に構成されてもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００５０】
次に、図３を参照し、ロボット制御装置３０の機能構成について説明する。図３は、ロボット制御装置３０の機能構成の一例を示す図である。ロボット制御装置３０は、記憶部３２と、入力受付部３３と、表示部３５と、制御部３６を備える。
【００５１】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、撮像制御部４０と、画像取得部４２と、三次元計測部４４と、ロボット制御部４６を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、これらの機能部のうち一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５２】
撮像制御部４０は、作業台ＴＢの上面にバラ積みされた１以上の対象物Ｏを含む撮像範囲を第３撮像部２３と第４撮像部２４にステレオ撮像させる。
画像取得部４２は、第３撮像部２３と第４撮像部２４がステレオ撮像したステレオ撮像画像を、第３撮像部２３と第４撮像部２４から取得する。
【００５３】
三次元計測部４４は、特徴点検出部５０と、特徴量算出部５１と、領域情報生成部５２と、点群情報生成部５３と、部分点群検出部５４と、位置姿勢算出部５５を備える。
【００５４】
特徴点検出部５０は、三次元シーン点群の一部から１以上のシーン特徴点を検出する。また、特徴点検出部５０は、三次元モデル点群から１以上の特徴点を当該１以上のモデル特徴点として検出する。
特徴量算出部５１は、三次元シーン点群の点の特徴量を算出する。また、特徴量算出部５１は、三次元モデル点群の点の特徴量を算出する。
領域情報生成部５２は、特徴点検出部５０が検出したモデル特徴点と、特徴量算出部５１が算出した三次元モデル点群の各点の特徴量とに基づいて領域情報を生成する。
【００５５】
点群情報生成部５３は、第３撮像部２３と第４撮像部２４から画像取得部４２が取得したステレオ撮像画像に基づいて、作業台ＴＢの上面にバラ積みされた１以上の対象物Ｏの三次元シーン点群を生成する。より具体的には、点群情報生成部５３は、当該ステレオ撮像画像に基づいて、当該ステレオ撮像画像に含まれる１以上の対象物Ｏの表面の各点のロボット座標系における三次元位置を検出し、検出した三次元位置に基づいて対象物Ｏの三次元形状を表す三次元シーン点群を生成する。すなわち、三次元シーン点群の各点は、ロボット座標系における三次元位置を示す。
【００５６】
なお、点群情報生成部５３は、ＴｏＦ（Time  of  Flight）や三角測量法等の従来の手法に基づいて距離画像を生成する装置から、三次元シーン点群の情報を取得する構成であってもよい。また、この一例では、三次元モデル点群が予めモデル記憶部３２１に記憶されている場合について説明しているが、これに代えて、対象物ＯのＣＡＤ（Computer  Aided  Design）モデル等に基づいて点群情報生成部５３が三次元モデル点群を生成する構成であってもよい。
【００５７】
部分点群検出部５４は、三次元シーン点群の中から三次元モデル点群に対応する部分点群を検出する。
位置姿勢算出部５５は、部分点群検出部５４が検出した部分点群に基づいて、対象物Ｏの位置及び姿勢を算出する。
ロボット制御部４６は、位置姿勢算出部５５が算出した対象物Ｏの位置及び姿勢に基づいて、対象物Ｏに対してロボット２０に所定の作業を行わせる。
【００５８】
以下、図４を参照し、制御部３６が行う処理について説明する。図４は、制御部３６が行う処理の流れの一例を示すフローチャートである。
【００５９】
特徴点検出部５０と、特徴量算出部５１と、領域情報生成部５２は、それぞれが連携して領域情報生成処理を行うことにより領域情報を生成する（ステップＳ１００）。次に、領域情報生成部５２は、対象物Ｏの位置及び姿勢を算出するか否かを判定する（ステップＳ１１０）。例えば、領域情報生成部５２は、ステップＳ１００における領域情報の生成に成功した場合、対象物Ｏの位置及び姿勢を算出すると判定し、ステップＳ１００における領域情報の生成に失敗した場合、対象物Ｏの位置及び姿勢を算出しないと判定する。なお、ステップＳ１１０における判定は、領域情報生成部５２が行う構成に代えて、制御部３６が備える他の機能部が行う構成であってもよい。
【００６０】
対象物Ｏの位置及び姿勢を算出しないと領域情報生成部５２が判定した場合（ステップＳ１１０−Ｎｏ）、特徴点検出部５０と、特徴量算出部５１と、領域情報生成部５２は、ステップＳ１００に遷移し、再び領域情報生成処理を行う。一方、対象物Ｏの位置及び姿勢を算出すると領域情報生成部５２が判定した場合（ステップＳ１１０−Ｙｅｓ）、特徴点検出部５０と、特徴量算出部５１と、部分点群検出部５４と、位置姿勢算出部５５は、それぞれが連携して位置姿勢算出処理を行うことにより対象物Ｏの位置及び姿勢を算出する（ステップＳ１２０）。
【００６１】
次に、ロボット制御部４６は、ステップＳ１２０において位置姿勢算出部５５が算出した対象物Ｏの位置及び姿勢に基づいて、対象物Ｏに対してロボット２０に所定の作業を行わせる（ステップＳ１３０）。ステップＳ１３０において、ロボット制御部４６は、前述したように、ロボット２０を動作させ、ロボット２０に対象物Ｏを把持させる。そして、ロボット制御部４６は、ロボット２０に当該対象物Ｏを給材領域Ａに給材させる。次に、ロボット制御部４６は、ステップＳ１３０において給材領域Ａに給材した対象物Ｏの数が所定数以上であるか否かを判定する（ステップＳ１４０）。
【００６２】
ステップＳ１３０において給材領域Ａに給材した対象物Ｏの数が所定数以上ではないとロボット制御部４６が判定した場合（ステップＳ１４０−Ｎｏ）、特徴点検出部５０と、特徴量算出部５１と、部分点群検出部５４と、位置姿勢算出部５５は、ステップＳ１２０に遷移し、再び位置姿勢算出処理を行う。一方、ステップＳ１３０において給材領域Ａに給材した対象物Ｏの数が所定数以上であるとロボット制御部４６が判定した場合（ステップＳ１４０−Ｙｅｓ）、制御部３６は、処理を終了する。
【００６３】
このような流れにより、制御部３６は、領域情報を生成し、生成した領域情報に基づいて対象物Ｏの位置及び姿勢を算出し、算出した当該位置及び姿勢に基づいて対象物Ｏに対してロボット２０に所定の作業を行わせる。なお、制御部３６は、領域情報を生成し、生成した領域情報に基づいて対象物Ｏの位置及び姿勢を算出する構成に代えて、予め記憶部３２に記憶された領域情報を読み出し、読み出した領域情報に基づいて対象物Ｏの位置及び姿勢を算出する構成であってもよい。また、制御部３６は、他の装置において生成された領域情報を取得し、取得した領域情報に基づいて対象物Ｏの位置及び姿勢を算出する構成であってもよい。
【００６４】
以下、図５から図１８を参照し、図４に示したステップＳ１００における領域情報生成処理と、ステップＳ１２０における位置姿勢算出処理とについて説明する。
【００６５】
まず、図５から図１１を参照し、図４に示したステップＳ１００において制御部３６が行う領域情報生成処理について説明する。図５は、図４に示したステップＳ１００において制御部３６が行う領域情報生成処理の流れの一例を示すフローチャートである。
領域情報生成部５２は、モデル記憶部３２１から三次元モデル点群の情報を読み出す（ステップＳ２００）。三次元モデル点群の情報は、対象物Ｏの三次元全周モデルである。三次元全周モデルは、例えば、ＣＡＤモデルに基づいて生成されたＣＧ（Computer1  Graphics）のことである。なお、三次元モデル点群の情報は、過去に対象物Ｏがステレオ撮像されたステレオ撮像画像に基づいて生成された点群の情報であってもよい。
【００６６】
次に、特徴点検出部５０は、ステップＳ２００において記憶部３２から読み出された三次元モデル点群からモデル特徴点を検出する（ステップＳ２１０）。ここで、図６を参照し、ステップＳ２１０の処理について説明する。図６は、三次元モデル点群の一例を示す図である。図６では、三次元モデル点群ＯＭは、三次元モデル点群ＯＭから検出されたモデル特徴点Ｐを明確に示すため、対象物Ｏの三次元形状を表す点の集まり（すなわち、三次元点群）ではなく、実線によって当該三次元形状を描いている。図６に示した三次元モデル点群ＯＭの表面における複数の白抜きの丸は、三次元モデル点群ＯＭから特徴点検出部５０が検出したモデル特徴点Ｐである。特徴点検出部５０は、三次元モデル点群ＯＭから図６に示したような１以上のモデル特徴点Ｐを検出する。
【００６７】
特徴点検出部５０は、例えば、ＩＳＳ（Intrinsic  Shape  Signatures）法等の従来の手法に基づいて三次元モデル点群ＯＭから１以上のモデル特徴点Ｐを検出する。ＩＳＳ法は、三次元点群から算出される共分散行列の固有値の比に基づいて当該三次元点群の形状を評価し、当該三次元点群において点群の偏りがある点を特徴点として検出する手法である。なお、図６に示した各モデル特徴点Ｐの位置は、ＩＳＳ法によって三次元モデル点群ＯＭからモデル特徴点Ｐが検出された位置を表しているが、実際にＩＳＳ法によってモデル特徴点Ｐが検出される三次元モデル点群ＯＭ上の位置と必ずしも一致しない。また、特徴点検出部５０は、ＩＳＳ法に代えて、三次元点群から特徴点を検出する他の従来の手法や、今後新たに開発される手法によって三次元モデル点群ＯＭからモデル特徴点Ｐを検出する構成であってもよい。
【００６８】
ステップＳ２１０において特徴点検出部５０が三次元モデル点群ＯＭからモデル特徴点Ｐを検出した後、特徴量算出部５１と領域情報生成部５２は、当該モデル特徴点Ｐに基づいて領域情報を生成する（ステップＳ２２０）。ここで、図７〜図１１を参照し、ステップＳ２２０において特徴量算出部５１と領域情報生成部５２が、ステップＳ２１０において三次元モデル点群ＯＭから検出されたモデル特徴点Ｐに基づいて領域情報を生成する処理について説明する。
【００６９】
領域情報生成部５２は、ステップＳ２００において読み出した三次元モデル点群ＯＭの全ての点に対して、それぞれの点を原点とする図７に示したような局所座標系を設定する。図７は、三次元モデル点群ＯＭの点のうちの点ＰＴ１に対して設定される局所座標系の一例を示す図である。図７において、三次元モデル点群ＯＭの点ＰＴ１には、点ＰＴ１を原点とする局所座標系として三次元直交座標系が設定されている。なお、局所座標系は、三次元直交座標系に代えて、三次元極座標系や三次元円筒座標系等の他の三次元座標系であってもよい。
【００７０】
また、局所座標系の各座標軸の方向は、所定の規則に基づいて三次元モデル点群ＯＭの各点に応じた方向を向いている。ここで、説明の便宜上、三次元モデル点群ＯＭの点のうちの領域情報生成部５２が局所座標系を設定しようとしている点を設定対象点と称して所定の規則について説明する。例えば、所定の規則は、設定対象点における法線方向をＺ軸方向とする規則である。また、所定の規則は、設定対象点を中心とする所定半径の球領域内に含まれる三次元モデル点群ＯＭの点が広範に分布する方向をＸ軸方向とし、当該Ｘ軸方向と当該Ｚ軸方向に直交する方向をＹ軸方向とする規則である。三次元モデル点群ＯＭの点が広範に分布する方向は、当該球領域内に含まれる三次元モデル点群ＯＭの点に対する主成分分析に基づいて算出される。より具体的には、三次元モデル点群ＯＭの点が広範に分布する方向は、設定対象点を通る平面であってＺ軸に垂直な平面に対して写像された当該球領域内に含まれる三次元モデル点群ＯＭの点が最も多く存在している方向のことである。当該平面に写像された複数の点が最も多く存在している方向は、当該平面に写像された点に対する主成分分析によって導出することができる。このような所定の規則に従い、領域情報生成部５２は、三次元モデル点群ＯＭの全ての点に対して、それぞれの点を原点とする図７に示したような局所座標系を設定する。なお、当該法線方向は、三次元モデル点群ＯＭの各点が表わす三次元モデル点群ＯＭの表面に対する法線方向である。また、所定の規則は、これに代えて、他の規則であってもよい。ただし、所定の規則は、三次元モデル点群ＯＭの各点に応じて局所座標系の各座標軸の方向を一意に決定する規則でなければならない。
【００７１】
領域情報生成部５２は、三次元モデル点群ＯＭの各点に設定した局所座標系によって表される空間を、複数の部分領域に分割する。例えば、領域情報生成部５２は、三次元モデル点群ＯＭの点ＰＴ１に設定した局所座標系が表わす空間を、８つの部分領域に分割する。領域情報生成部５２は、この一例において、局所座標系の原点、すなわち点ＰＴ１から＋Ｚ方向の空間を４つの部分領域に分割し、点ＰＴ１から−Ｚ方向の空間を４つの部分領域に分割して合計８つの部分領域に分割する。
【００７２】
局所座標系の原点から＋Ｚ方向の空間における４つの部分領域は、点ＰＴ１から＋Ｘ方向、点ＰＴ１から＋Ｙ方向、点ＰＴ１から＋Ｚ方向の領域である＋第１象限領域と、点ＰＴ１から−Ｘ方向、点ＰＴ１から＋Ｙ方向、点ＰＴ１から＋Ｚ方向の領域である＋第２象限領域と、点ＰＴ１から−Ｘ方向、点ＰＴ１から−Ｙ方向、点ＰＴ１から＋Ｚ方向の領域である＋第３象限領域と、点ＰＴ１から＋Ｘ方向、点ＰＴ１から−Ｙ方向、点ＰＴ１から＋Ｚ方向の領域である＋第４象限領域との合計４つの部分領域である。
【００７３】
局所座標系の原点から−Ｚ方向の空間における４つの部分領域は、点ＰＴ１から＋Ｘ方向、点ＰＴ１から＋Ｙ方向、点ＰＴ１から−Ｚ方向の領域である−第１象限領域と、点ＰＴ１から−Ｘ方向、点ＰＴ１から＋Ｙ方向、点ＰＴ１から−Ｚ方向の領域である−第２象限領域と、点ＰＴ１から−Ｘ方向、点ＰＴ１から−Ｙ方向、点ＰＴ１から−Ｚ方向の領域である−第３象限領域と、点ＰＴ１から＋Ｘ方向、点ＰＴ１から−Ｙ方向、点ＰＴ１から−Ｚ方向の領域である−第４象限領域との合計４つの部分領域である。
【００７４】
なお、領域情報生成部５２は、これに代えて、三次元モデル点群ＯＭの各点に設定した局所座標系によって表される空間を、所定の立体角毎に分割する等の他の方法によって分割する構成であってもよい。また、領域情報生成部５２は、当該空間を８つの部分領域に分割する構成に代えて、７以下の部分領域に分割する構成であってもよく、９以上の部分領域に分割する構成であってもよい。
【００７５】
三次元モデル点群ＯＭの各点に設定した局所座標系によって表される空間を８つの部分領域に分割した後、領域情報生成部５２は、これら８つの部分領域のそれぞれに含まれるモデル特徴点Ｐの数をカウントする。図７に示した例では、モデル特徴点Ｐは、２つの座標軸によって形成される面内に含まれる場合がある。そのため、この一例では、領域情報生成部５２は、所定のカウント規則に基づいて、このようなモデル特徴点Ｐがどの部分領域に含まれるかを決定する。所定のカウント規則は、例えば、２つの座標軸によって形成される面内に含まれるモデル特徴点Ｐは、モデル特徴点Ｐが含まれる面と直交する座標軸の−側に含まれると決定するルールである。この所定のカウント規則に従うと、例えば、Ｙ軸とＺ軸によって形成されるＹＺ平面に含まれるモデル特徴点Ｐは、全てＸ軸の−側に含まれることになる。
【００７６】
また、特徴量算出部５１は、図７に示した局所座標系の原点である点ＰＴ１の特徴量を算出する。特徴量算出部５１は、例えば、当該特徴量として、ＳＨＯＴ（Signature  of  Histograms  of  OrienTations）特徴量等の従来の手法に基づいて算出される特徴量を算出する。ＳＨＯＴ特徴量は、選択された点に設定された局所座標系（上記において説明した局所座標系と同じ局所座標系であってもよく、異なる局所座標系であってもよい）に基づき、周辺点群の法線方向をヒストグラム化することで記述される特徴量であり、当該ヒストグラムに基づいて算出される複数の特徴的な量のそれぞれを各成分として有するベクトルである。例えば、ＳＨＯＴ特徴量は、選択された点の周囲の点の数や、当該点の法線方向等をベクトルの成分として有する。また、特徴量算出部５１は、ＳＨＯＴ特徴量に代えて、他の従来の手法によって算出される他の特徴量や、今後新たに開発される手法によって算出される特徴量を算出する構成であってもよい。
【００７７】
点ＰＴ１の特徴量を算出した後、領域情報生成部５２は、特徴量算出部５１が算出した点ＰＴ１の特徴量と、点ＰＴ１に設定された局所座標系を示す情報と、当該局所座標系によって表される空間を示す情報と、当該空間が分割された８つの部分領域のそれぞれを示す情報と、当該８つの部分領域のそれぞれに含まれるモデル特徴点Ｐの数とを対応付けた対応情報を生成する。領域情報生成部５２は、このような対応情報の生成処理を、三次元モデル点群ＯＭの各点のそれぞれに対して行う。すなわち、対応情報は、三次元モデル点群ＯＭの点の数だけ生成される。
【００７８】
例えば、三次元モデル点群ＯＭの点がｎ個の場合、対応情報は、図８に示したようにｎ個生成される。図８は、三次元モデル点群ＯＭの各点について生成された対応情報を例示する図である。図８では、対応情報は、領域情報生成部５２が行う処理を視覚化するため、情報が格納されたテーブルや他の形式の情報として表すのではなく、三次元モデル点群ＯＭの点毎に設定された局所座標系の座標軸と、当該座標軸によって表される空間内に含まれるモデル特徴点とによって表している。例えば、図８に示した対応情報ＭＰＴ１は、図７に示した点ＰＴ１に設定された局所座標系の座標軸と、当該座標軸によって表される空間内に含まれるモデル特徴点とによって表されている。ここで、説明の便宜上、点ＰＴ１は、三次元モデル点群ＯＭの各点を識別する番号を当該各点に付与した場合における１つ目の点として説明する。すなわち、三次元モデル点群ＯＭは、点ＰＴ１〜点ＰＴｎのｎ個の点によって構成される点群である。図８に示した対応情報ＭＰＴｎは、三次元モデル点群ＯＭの各点を識別する番号を当該各点に付与した場合におけるｎ個目の点である点ＰＴｎに設定された局所座標系の座標軸と、当該座標軸によって表される空間内に含まれるモデル特徴点とによって表されている。対応情報は、モデル点群の点の特徴量に対応付けられた分布であってモデル特徴点のモデル点群上における分布（第１分布又は第２分布）の一例である。
【００７９】
三次元モデル点群ＯＭの点毎に対応情報を生成した後、領域情報生成部５２は、三次元モデル点群ＯＭの点を１以上のグループに分類する。すなわち、領域情報生成部５２は、三次元モデル点群ＯＭの点の対応情報を１以上のグループに分類する。この一例として、領域情報生成部５２は、三次元モデル点群ＯＭの点を、図９において説明する所定の分類規則に従って分類する。図９は、所定の分類規則の一例を説明するための図である。三次元モデル点群ＯＭの点のそれぞれは、対応情報を生成する際に特徴量算出部５１によって特徴量が算出されている。この特徴量は、前述した通り、１以上の成分を有するベクトルである。以下では、説明の便宜上、当該特徴量が２つの成分を有する場合、すなわち成分Ｆ１と成分Ｆ２を有する場合について説明する。当該特徴量を表すベクトルを特徴量ベクトルＦ０とすると、特徴量ベクトルＦ０＝（Ｆ１，Ｆ２）である。なお、ここでは、特徴量ベクトルを横ベクトルとして表したが、縦ベクトルとして表してもよい。
【００８０】
これら２つの成分の大きさを表す座標軸によって表される２次元空間が、図９に示した特徴量多次元空間ＣＳである。図９に示した特徴量多次元空間ＣＳの横軸は、特徴量ベクトルＦ０の成分Ｆ１の大きさを表す座標軸であり、特徴量多次元空間ＣＳの縦軸は、特徴量ベクトルＦ０の成分Ｆ２の大きさを表す座標軸である。領域情報生成部５２は、特徴量多次元空間ＣＳを生成し、生成した特徴量多次元空間ＣＳを所定の第２分割規則に基づいて複数の分割領域に分割する。所定の第２分割規則は、例えば、特徴量多次元空間ＣＳにおいて縦軸を所定の第１間隔毎に区切り、横軸を所定の第２間隔毎に区切った格子状に分割する規則である。図９に示した一点鎖線は、特徴量多次元空間ＣＳを当該格子状に分割した際の境界線を示している。また、図９に示した分割領域Ｒ１は、このようにして特徴量多次元空間ＣＳが分割された領域の１つである。
【００８１】
領域情報生成部５２は、このようにして分割した特徴量多次元空間ＣＳ内に、三次元モデル点群ＯＭの点を、当該点の特徴量に基づいて配置することにより、各分割領域（すなわち、前述のグループ）に分類する。例えば、分割領域Ｒ１内には、三次元モデル点群ＯＭの点ＰＴ１１〜点ＰＴ１４が配置されている。この一例において、三次元モデル点群ＯＭの点ＰＴ１３の特徴量ベクトルは、成分Ｆ１として量ｆ１を有し、成分Ｆ２として量ｆ２を有している。このため、領域情報生成部５２は、点ＰＴ１３を、図９において横軸の値がｆ１であり、縦軸の値がｆ２である特徴量多次元空間ＣＳ内の位置に配置している。このような配置方法（前述の所定の分類規則）に基づいて、領域情報生成部５２は、分割した特徴量多次元空間ＣＳ内に、三次元モデル点群ＯＭの点を全て配置（分類）する。なお、領域情報生成部５２は、これに代えて、分割した特徴量多次元空間ＣＳ内に、三次元モデル点群ＯＭの点の一部を配置する構成であってもよい。
【００８２】
特徴量多次元空間ＣＳの分割領域毎に含まれている三次元モデル点群ＯＭの点のそれぞれの特徴量ベクトルは、特徴量ベクトルが有する成分同士の値の差が小さい。分割領域の格子の大きさを小さくすればするほど、当該分割領域内に含まれている複数の点のそれぞれの特徴量ベクトルが有する成分同士の値の差は小さくなる。この一例では、このように特徴量ベクトルの成分同士の値の差が小さい点同士を、似た点として特定する。
【００８３】
領域情報生成部５２は、特徴量多次元空間ＣＳの分割領域毎に、三次元モデル点群ＯＭの点のうちの分割領域に含まれている点のそれぞれの対応情報を重ね合わせることによって領域情報を生成する。例えば、三次元モデル点群ＯＭの点ＰＴ２１と点ＰＴ２２が似た点である（同じ分割領域に含まれていた）場合、領域情報生成部５２は、図１０に示すように、点ＰＴ２１の対応情報ＭＰＴ２１と、点ＰＴ２２の対応情報ＭＰＴ２２とを重ね合わせて領域情報ＭＦを生成する。図１０は、複数の対応情報から領域情報を生成する方法を説明するための図である。
【００８４】
図１０に示した対応情報ＭＰＴ２１では、三次元モデル点群ＯＭの点ＰＴ２１を原点とした局所座標系が表わす空間において、＋第３象限領域に３つのモデル特徴点Ｐが含まれており、＋第１象限領域に１つのモデル特徴点Ｐが含まれている。また、図１０に示した対応情報ＭＰＴ２２では、三次元モデル点群ＯＭの点ＰＴ２２であって点ＰＴ１２と似た点ＰＴ２２を原点とした局所座標系が表わす空間において、＋第３象限領域に３つのモデル特徴点Ｐが含まれており、＋第１象限領域に１つのモデル特徴点Ｐが含まれている。
【００８５】
三次元モデル点群ＯＭの点における似た２つの点それぞれの位置は、似ていない２つの点それぞれの位置と比べて空間的に近い場合が多い。換言すると、三次元モデル点群ＯＭの点のうちの空間的に位置が近い点同士は、当該点それぞれの特徴量同士の差が小さい、すなわち当該点それぞれの特徴量が略同じである場合が多い。このため、対応情報ＭＰＴ２１が表わす空間においてモデル特徴点Ｐが含まれている部分領域と、対応情報ＭＰＴ２２が表わす空間においてモデル特徴点Ｐが含まれている部分領域とは、一致する場合が多い。このような理由から、この一例では、複数の対応情報を重ね合わせることによって生成される領域情報は、モデル特徴点Ｐが検出される可能性の高い部分領域、すなわち原点からのモデル特徴点Ｐが検出される可能性が高い方向を、原点と、モデル特徴点Ｐが多く含まれている部分領域とによって表せている可能性が高い。
【００８６】
これを利用し、領域情報生成部５２は、特徴量多次元空間ＣＳの分割領域毎に、三次元モデル点群ＯＭの点のうちの当該分割領域に含まれている点、すなわち似た点それぞれの対応情報を重ね合わせることによって領域情報を生成する。また、領域情報生成部５２は、複数の対応情報を重ね合わせて領域情報を生成する場合、対応情報に含まれている原点の位置と、各座標軸の方向とが一致するように重ね合わせる。例えば、図１０に示した対応情報ＭＰＴ２１と、対応情報ＭＰＴ２２とを重ね合わせる場合、領域情報生成部５２は、原点である点ＰＴ２１の位置と、原点である点ＰＴ２２の位置とを一致させる。また、領域情報生成部５２は、この場合、対応情報ＭＰＴ２１のＸ軸の方向と、対応情報ＭＰＴ２２のＸ軸の方向とを一致させ、対応情報ＭＰＴ２１のＹ軸の方向と、対応情報ＭＰＴ２２のＹ軸の方向とを一致させ、対応情報ＭＰＴ２１のＺ軸の方向と、対応情報ＭＰＴ２２のＺ軸の方向とを一致させる。
【００８７】
図１０に示した領域情報ＭＦは、このようにして対応情報ＭＰＴ２１と対応情報ＭＰＴ２２とを重ね合わせることにより生成された領域情報である。なお、図１０において説明した２つの対応情報ＭＰＴ２１と対応情報ＭＰＴ２２との重ね合わせは、領域情報を生成する処理を視覚的に表したものである。実際には、領域情報生成部５２は、複数の似た点それぞれの対応情報の中から基準となる対応情報を、例えば、ランダムに基準対応情報として選択する。また、領域情報生成部５２は、当該似た点それぞれの対応情報に含まれる８つの部分領域のそれぞれに含まれるモデル特徴点Ｐの数に基づいて、８つの部分領域のそれぞれ毎にモデル特徴点Ｐの数を足し合わせる。例えば、領域情報生成部５２は、対応情報ＭＰＴ２１に含まれる＋第１象限領域に含まれるモデル特徴点Ｐの数と、対応情報ＭＰＴ２２に含まれる＋第１象限領域に含まれるモデル特徴点Ｐの数とを足し合わせる。領域情報生成部５２は、足し合わせたモデル特徴点Ｐの数を＋第１象限領域に対応付ける。領域情報生成部５２は、このような処理を、＋第２象限領域、＋第３象限領域、＋第４象限領域、−第１象限領域、−第２象限領域、−第３象限領域、−第４象限領域のそれぞれに対しても同様に行う。
【００８８】
そして、領域情報生成部５２は、８つの分割領域のそれぞれに対して新たに対応付けたモデル特徴点Ｐの数と、選択した基準対応情報に含まれる局所座標系と、当該局所座標系によって表される空間と、当該空間が分割された８つの部分領域のそれぞれを示す情報とを対応付けた情報を領域情報として生成する。
【００８９】
領域情報生成部５２は、生成した領域情報に含まれる８つの部分領域のそれぞれに対して、優先順位を設定する。より具体的には、領域情報生成部５２は、生成した領域情報に含まれる８つの部分領域のそれぞれに対して、モデル特徴点Ｐが含まれている数が多い順に高い優先順位を設定する。例えば、領域情報生成部５２は、図１０に示した領域情報ＭＦにおいて、６個のモデル特徴点Ｐが含まれている＋第３象限領域に対して最も高い優先順位を設定する。また、領域情報生成部５２は、図１０に示した領域情報ＭＦにおいて、２個のモデル特徴点Ｐが含まれている＋第１象限領域に対して２番目に高い優先順位を設定する。また、領域情報生成部５２は、図１０に示した領域情報ＭＦにおいて、モデル特徴点Ｐが含まれていない他の部分領域に対して最も低い優先順位を設定する。
【００９０】
なお、領域情報生成部５２は、モデル特徴点Ｐが含まれていない他の部分領域に対して最も低い優先順位を設定する構成に代えて、当該他の部分領域に対して、選択不可であることを示す情報を対応付ける構成であってもよい。また、領域情報生成部５２は、モデル特徴点Ｐが含まれている数が同じである複数の部分領域に対して、例えば、ランダムに優先順位を設定する構成や、所定の選択規則に基づいて優先順位を設定する構成等の他の構成であってもよい。また、領域情報生成部５２は、モデル特徴点Ｐが含まれていない他の部分領域を、領域情報から除外する構成であってもよい。この場合、領域情報は、８つの部分領域のうちの一部を示す情報のみを含む。
【００９１】
また、領域情報生成部５２は、生成した領域情報に対して特徴量を対応付ける。より具体的には、領域情報生成部５２は、例えば、三次元モデル点群ＯＭの点のうち、生成した領域情報を生成する際に重ね合わせた対応情報それぞれの原点である点が含まれていた分割領域を規定している特徴量ベクトルの各成分の最小値から最大値までの範囲を領域情報に対応付ける。例えば、領域情報生成部５２は、領域情報ＭＦを生成する際に重ね合わせた対応情報ＭＰＴ２１及び対応情報ＭＰＴ２２それぞれの原点である点ＰＴ２１と点ＰＴ２２とが含まれていた分割領域を規定している特徴量ベクトルの成分Ｆ１の最小値ｆ１ｍｉｎから最大値ｆ１ｍａｘまでの範囲、及び当該特徴量ベクトルの成分Ｆ２の最小値ｆ２ｍｉｎから最大値ｆ２ｍａｘまでの範囲を、領域情報ＭＦに対応付ける。なお、領域情報生成部５２は、これに代えて、生成した領域情報を生成する際に重ね合わせた対応情報それぞれの原点である点の特徴量の平均値や、当該特徴量に基づく他の値や他の範囲等を領域情報に対応付ける構成であってもよい。
【００９２】
このようにして、領域情報生成部５２は、生成した全ての領域情報に対して特徴量（この一例において、特徴量の各成分の範囲）を対応付け、特徴量が対応付けられた複数の領域情報を生成する。図１１は、特徴量が対応付けられた複数の領域情報を例示する図である。図１１には、特徴量が対応付けられたｍ個の領域情報ＭＦ１〜領域情報ＭＦｍが示されている。なお、図１１において、原点の点は、全て点Ｃによって表している。以下では、説明の便宜上、特徴量が対応付けられた領域情報を、単に領域情報と称して説明する。領域情報生成部５２は、生成した複数の領域情報を、記憶部３２に記憶し、図５に示したステップＳ２２０における処理を終了する。
【００９３】
次に、図１２から図１８を参照し、図４に示したステップＳ１２０において制御部３６が行う位置姿勢算出処理について説明する。図１２は、図４に示したステップＳ１２０において制御部３６が行う位置姿勢算出処理の流れの一例を示すフローチャートである。図１２に示したフローチャートの処理では、制御部３６が、後述する重心特徴点の検出及び統合重心特徴量の算出を三次元モデル点群に対して事前に行っている場合について説明する。なお、制御部３６は、図１２に示したフローチャートの処理と並行して重心特徴点の検出及び統合重心特徴量の算出を行う構成であってもよい。
【００９４】
撮像制御部４０は、作業台ＴＢの上面にバラ積みされた１以上の対象物Ｏを含む領域を第３撮像部２３と第４撮像部２４にステレオ撮像させる（ステップＳ３００）。次に、画像取得部４２は、ステップＳ３００において第３撮像部２３と第４撮像部２４がステレオ撮像したステレオ撮像画像を、第３撮像部２３と第４撮像部２４から取得する（ステップＳ３１０）。
【００９５】
次に、点群情報生成部５３は、ステップＳ３１０において画像取得部４２が取得したステレオ撮像画像に基づいて、作業台ＴＢの上面にバラ積みされた１以上の対象物Ｏの三次元シーン点群を生成する（ステップＳ３２０）。次に、部分点群検出部５４は、ステップＳ３２０において点群情報生成部５３が生成した三次元シーン点群の点から、例えば、ランダムに１つの点を対象点として選択する（ステップＳ３３０）。なお、ステップＳ３３０の処理は、部分点群検出部５４が行う構成に代えて、制御部３６が備える他の機能部（図３に示した機能部、又は図３に示されていない他の機能部）が行う構成であってもよい。
【００９６】
次に、特徴量算出部５１は、ステップＳ３３０において部分点群検出部５４が選択した対象点の特徴量（前述のＳＨＯＴ特徴量）を算出する（ステップＳ３４０）。ステップＳ３４０において、特徴量算出部５１は、三次元モデル点群ＯＭの点の特徴量と比較可能なようにするため、三次元モデル点群ＯＭの各点の特徴量を算出した（得た）手法と同じ手法に基づく特徴量を算出しなければならない。
【００９７】
次に、部分点群検出部５４は、ステップＳ３４０において算出された対象点の特徴量と、記憶部３２に記憶された領域情報とを比較し、対象点の特徴量に対応する領域情報を記憶部３２から読み出す（ステップＳ３５０）。対象点の特徴量に対応する領域情報は、対応付けられている特徴量の各成分の範囲内に対象点の特徴量の各成分が含まれる領域情報である。なお、ステップＳ３５０の処理は、部分点群検出部５４が行う構成に代えて、制御部３６が備える他の機能部（図３に示した機能部、又は図３に示されていない他の機能部）が行う構成であってもよい。
【００９８】
次に、特徴点検出部５０は、ステップＳ３５０において記憶部３２から読み出した領域情報と、対象点とに基づいて、三次元シーン点群の一部から１以上のシーン特徴点を検出する（ステップＳ３６０）。ここで、図１３及び図１４を参照し、ステップＳ３６０において特徴点検出部５０が三次元シーン点群の一部からシーン特徴点を検出する処理について説明する。図１３は、ステレオ撮像画像に基づいて生成された三次元シーン点群の一例を示す図である。図１３では、ステップＳ３６０において行われる処理が明確に表されるようにするため、三次元モデル点群ＯＭが、ステレオ撮像画像に含まれていた対象物Ｏが１つのみの場合において当該ステレオ撮像画像に基づいて生成された三次元シーン点群である例を用いて説明する。
【００９９】
特徴点検出部５０は、ステップＳ３５０において記憶部３２から読み出した領域情報の原点を、三次元シーン点群ＯＳからステップＳ３３０において選択された対象点Ｃ０に一致させる。また、特徴点検出部５０は、ステップＳ３５０において記憶部３２から読み出した領域情報が表わす局所座標系の各座標軸の方向を、対象点Ｃ０において所定の規則に基づいて決定される各座標軸の方向に一致させる。より具体的には、特徴点検出部５０は、当該領域情報が表わす局所座標系のＸ軸の方向を、対象点Ｃ０において所定の規則に基づいて決定されるＸ軸の方向に一致させ、当該領域情報が表わす局所座標系のＹ軸の方向を、対象点Ｃ０において所定の規則に基づいて決定されるＹ軸の方向に一致させ、当該領域情報が表わす局所座標系のＺ軸の方向を、対象点Ｃ０において所定の規則に基づいて決定されるＺ軸の方向に一致させる。このようにして、位置姿勢算出部５５は、領域情報が表わす局所座標系を対象点Ｃ０に設定する。
【０１００】
図１３に示した局所座標系は、このようにして対象点Ｃ０に設定された領域情報が表わす局所座標系である。特徴点検出部５０は、当該局所座標系が表わす空間が分割された８つの部分領域のうち、優先順位が最も高い部分領域から特徴点をシーン特徴点として検出する。また、特徴点検出部５０は、三次元シーン点群ＯＳからシーン特徴点を検出する際、特徴点検出部５０が三次元モデル点群ＯＭからモデル特徴点を検出する手法と同じ手法（この一例において、前述のＩＳＳ法）によって三次元シーン点群ＯＳからシーン特徴点を検出する。以下では、この一例として、当該８つの部分領域のうちの優先順位が最も高い部分領域が、＋第２象限領域である場合について説明する。
【０１０１】
図１４は、優先順位が最も高い部分領域からシーン特徴点が検出された様子の一例を示す図である。図１４には、対象点Ｃ０に設定された局所座標系が表わす空間が分割された８つの部分領域のうちの＋第２象限領域からシーン特徴点Ｃ１〜シーン特徴点Ｃ４を特徴点検出部５０が検出した様子が示されている。
【０１０２】
ステップＳ３６０において三次元シーン点群ＯＳからシーン特徴点を検出した後、特徴点検出部５０は、三次元シーン点群ＯＳから検出されたシーン特徴点の累積数が第１所定数以上であるか否かを判定する（ステップＳ３６５）。この一例において、第１所定数は、４である。なお、第１所定数は、２以上の数であれば他の数であってもよい。これは、ステップＳ３７０以降の処理において必要なシーン特徴点の最低数が２であるためである。なお、三次元シーン点群ＯＳから検出されたシーン特徴点の累積数が第１所定数以上であることは、所定の第１条件の一例である。
【０１０３】
三次元シーン点群ＯＳから検出されたシーン特徴点の累積数が第１所定数以上ではないと特徴点検出部５０が判定した場合（ステップＳ３６５−Ｎｏ）、部分点群検出部５４は、ステップＳ３３０に遷移し、三次元シーン点群ＯＳの点のうちの対象点Ｃ０とは異なる点を次の対象点として選択する。そして、特徴点検出部５０と、特徴量算出部５１と、部分点群検出部５４は、シーン特徴点の累積数が第１所定数以上となるまでステップＳ３３０からステップＳ３６５までの処理を繰り返し行う。三次元シーン点群ＯＳから検出されたシーン特徴点の累積数が第１所定数以上であると特徴点検出部５０が判定した場合（ステップＳ３６５−Ｙｅｓ）、部分点群検出部５４は、ステップＳ３６５において（ステップＳ３６５−Ｙｅｓ）の判定になるまでに累積された第１所定数以上のシーン特徴点に基づいて、１以上の重心特徴点を特定する（ステップＳ３７０）。重心特徴点は、特徴点検出部５０により検出されたシーン特徴点に基づく立体（本実施形態では、２つのシーン特徴点に基づく直線を含む）の重心の位置を示す点である。
【０１０４】
ここで、ステップＳ３７０の処理について説明する。部分点群検出部５４は、ステップＳ３６５において（ステップＳ３６５−Ｙｅｓ）の判定になるまでに累積された第１所定数以上のシーン特徴点のうちの第２所定数のシーン特徴点の組み合わせを選択する。第２所定数は、第１所定数以下の数であり、この一例において、４である。なお、第２所定数は、２以上の数であれば他の数であってもよい。部分点群検出部５４は、選択した組み合わせに含まれる第２所定数のシーン特徴点のそれぞれが示す位置を頂点とする立体の重心の位置を算出する。部分点群検出部５４は、算出した重心の位置を示す点を重心特徴点として特定する。
【０１０５】
部分点群検出部５４は、ステップＳ３６５において（ステップＳ３６５−Ｙｅｓ）の判定になるまでに累積された第１所定数以上のシーン特徴点のうちの第２所定数のシーン特徴点の組み合わせ毎に重心特徴点を特定する処理を実行することにより、当該組み合わせ毎に重心特徴点を特定する。例えば、三次元モデル点群ＯＭから検出したシーン特徴点の数がＮ個であり、且つ第２所定数がＭ個である場合、Ｎ個のシーン特徴点からＭ個のシーン特徴点の組み合わせを選択する場合の数は、ＮＣＭ個である。なお、Ｎは、Ｍ以上の数である。部分点群検出部５４は、このＮＣＭ個の組み合わせのそれぞれ毎に、重心特徴点を特定する処理を実行する。これにより、部分点群検出部５４は、当該組み合わせ毎に重心特徴点を特定する。なお、重心特徴点が示す位置は、シーン特徴点が示す位置に基づいて算出されるため、シーン特徴点が示す位置と一致するとは限らない。
【０１０６】
ここで、図１５を参照し、ステップＳ３７０における重心特徴点を特定する処理について説明する。なお、以下では、ステップＳ３６０において特徴点検出部５０が、第１所定数（この一例において、４）以上のシーン特徴点として、図１４に示したように三次元シーン点群ＯＳから４つのシーン特徴点Ｃ１〜シーン特徴点Ｃ４を検出している場合について説明する。このため、部分点群検出部５４は、検出された第１所定数以上のシーン特徴点のうちの第２所定数のシーン特徴点の組み合わせとして、１つの組み合わせ、すなわちシーン特徴点Ｃ１〜シーン特徴点Ｃ４しか選択することができない。部分点群検出部５４は、検出された第１所定数以上のシーン特徴点が５以上の場合、検出された第１所定数以上のシーン点群のうちの第２所定数のシーン特徴点の組み合わせとして、２以上の組み合わせを選択することができる。
【０１０７】
図１５は、ステップＳ３６０において特徴点検出部５０が三次元モデル点群ＯＭから検出した４つのシーン特徴点を例示する図である。図１５では、当該４つのシーン特徴点の幾何学的位置関係を明確に示すため、三次元シーン点群ＯＳを省略している。図１５では、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４の位置関係を明確にするため、各シーン特徴点間をそれぞれ直線で結んでいる。また、図１５では、シーン特徴点Ｃ３とシーン特徴点Ｃ４の間を結ぶ直線は、シーン特徴点Ｃ２とシーン特徴点Ｃ３の間を結ぶ直線よりも奥側であることを点線によって示している。
【０１０８】
この一例において、部分点群検出部５４は、図１５に示した４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のそれぞれが示す位置を頂点とする立体の重心の位置を算出する。図１５に示した例では、各シーン特徴点間を結ぶ直線は、三角錐を形成している。すなわち、部分点群検出部５４は、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のそれぞれが示す位置に基づいて、図１５に示した４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のそれぞれが示す位置を頂点とする立体である当該三角錐の重心の位置を算出する。部分点群検出部５４は、算出した当該位置が示す点を重心特徴点Ｇとして特定する。
【０１０９】
部分点群検出部５４は、検出された第１所定数以上のシーン特徴点の数が第２所定数よりも多かった場合、当該シーン特徴点から抽出可能な第２所定数の組み合わせが２以上となるため、当該組み合わせ毎に、このような重心特徴点を特定する処理を実行する。これにより、位置姿勢算出部５５は、当該組み合わせ毎に重心特徴点を特定する。
【０１１０】
ステップＳ３７０において重心特徴点を特定した後、部分点群検出部５４は、ステップＳ３７０において特定した重心特徴点毎に、当該重心特徴点に応じた特徴的な量である第１重心特徴量を算出する（ステップＳ３８０）。第１重心特徴量は、重心特徴点に応じた特徴的な１以上の量を成分として有するベクトルである。
【０１１１】
ここで、ステップＳ３８０の処理について説明する。部分点群検出部５４は、ステップＳ３７０において特定した重心特徴点毎に、当該重心特徴点の位置を算出するために用いられた第２所定数のシーン特徴点の幾何学的関係に基づく特徴を表す量である第１重心特徴量を算出する。第１重心特徴量は、Ｗ個の幾何学的特徴量（幾何学的に特徴的な量）を成分として有するＷ次元ベクトルである。Ｗは１以上の整数である。すなわち、部分点群検出部５４は、１以上の幾何学的特徴量を成分として有するベクトルを第１重心特徴量として算出する。
【０１１２】
幾何学的特徴量は、例えば、２個のシーン特徴点を結ぶ直線の長さ（すなわち、２個のシーン特徴点間の距離）や、当該直線に対して他のシーン特徴点から引いた垂線の長さや、シーン特徴点間を結ぶ直線同士が交わった点における挟角、すなわち３つ以上のシーン特徴点のうちの２点間を結ぶ線分に基づいて形成される角度等である。なお、幾何学的特徴量は、これら以外にも、重心特徴点の位置を算出するために用いた第２所定数のシーン特徴点の幾何学的関係に基づいて算出することが可能な量であれば如何なる量であってもよい。
【０１１３】
部分点群検出部５４が幾何学的特徴量を算出する処理は、幾何学的特徴量の種類によって異なる。そのため、以下では、部分点群検出部５４が算出する幾何学的特徴量の具体例毎に幾何学的特徴量を算出する処理について説明する。
【０１１４】
＜幾何学的特徴量の具体例１＞
幾何学的特徴量の具体例１は、重心特徴点を算出するために用いられた第２所定数のシーン特徴点から選択可能な２個のシーン特徴点の組み合わせにおけるシーン特徴点間の距離である。
【０１１５】
以下、図１６を参照し、幾何学的特徴量の具体例１について説明する。図１６は、図１５に示した重心特徴点Ｇの位置を算出するために用いた４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４の幾何学的関係の一例を示した図である。すなわち、ここでは、図１５に示した重心特徴点Ｇと、重心特徴点Ｇの位置を算出するために用いた４個（この一例における第２所定数個）のシーン特徴点Ｃ１〜シーン特徴点Ｃ４を例に挙げて説明する。部分点群検出部５４は、当該シーン特徴点Ｃ１〜シーン特徴点Ｃ４から選択可能な２個のシーン特徴点の組み合わせのそれぞれ毎に、当該組み合わせにおけるシーン特徴点間の距離を算出する。図１６では、図１５と同様に各シーン特徴点間をそれぞれ直線で結んでいる。
【０１１６】
以下では、説明の便宜上、シーン特徴点Ｘ１とシーン特徴点Ｘ２を端点として有するベクトルを、ベクトル（Ｘ１，Ｘ２）と表し、ベクトル（Ｘ１，Ｘ２）のノルムをノルム（Ｘ１，Ｘ２）と表して説明する。また、以下では、ベクトルのノルムのみが重要であるため、ベクトル（Ｘ１，Ｘ２）＝ベクトル（Ｘ２，Ｘ１）であるとして説明する。このベクトルのノルムはすなわち、シーン特徴点Ｘ１とシーン特徴点Ｘ２の間の距離を表す。また、以下の説明において、ノルム（Ｘ１，Ｘ２）を算出するために用いたベクトルと称した場合、当該ベクトルは、ノルム（Ｘ１，Ｘ２）を算出する際に内積を行ったベクトル（Ｘ１，Ｘ２）を示すとする。
【０１１７】
この表記法を用いると、図１６に示した４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４によって、６個のベクトルが定義できる。当該６個のベクトルは、ベクトル（Ｃ１，Ｃ２）と、ベクトル（Ｃ１，Ｃ３）と、ベクトル（Ｃ１，Ｃ４）と、ベクトル（Ｃ２，Ｃ３）と、ベクトル（Ｃ２，Ｃ４）と、ベクトル（Ｃ３，Ｃ４）である。部分点群検出部５４は、これらのベクトルそれぞれのノルムを、それぞれのシーン特徴点間の距離として算出する。より具体的には、部分点群検出部５４は、ノルム（Ｃ１，Ｃ２）と、ノルム（Ｃ１，Ｃ３）と、ノルム（Ｃ１，Ｃ４）と、ノルム（Ｃ２，Ｃ３）と、ノルム（Ｃ２，Ｃ４）と、ノルム（Ｃ３，Ｃ４）のそれぞれを算出する。
【０１１８】
部分点群検出部５４は、算出したこれら６個のノルムのうちの一部又は全部を、第１重心特徴量の成分とする幾何学的特徴量として選択する。この一例では、部分点群検出部５４は、算出した６個のノルムのうち、最大のノルムを幾何学的特徴量ＧＦ１として選択する。図１６に示した例では、最大のノルムは、ノルム（Ｃ１，Ｃ３）である。すなわち、部分点群検出部５４は、算出した６個のノルムのうちの最大のノルムがノルム（Ｃ１，Ｃ３）であることを特定し、特定したノルム（Ｃ１，Ｃ３）を、第１重心特徴量の成分とする幾何学的特徴量ＧＦ１として選択する。図１６では、ノルム（Ｃ１，Ｃ３）を、シーン特徴点Ｃ１とシーン特徴点Ｃ３の間を結ぶ直線Ｄ１の長さによって表した。
【０１１９】
ここで、このような６個のノルムから最大のノルムを特定する処理を、更に詳しく説明する。部分点群検出部５４は、例えば、重心特徴点を算出するために用いた４個のシーン特徴点それぞれの位置を、位置ベクトルＦＰｉ（ｉ＝１〜４）によって表す。この一例において、位置ベクトルＦＰ１は、シーン特徴点Ｃ１の位置を示す位置ベクトルである。また、位置ベクトルＦＰ２は、シーン特徴点Ｃ２の位置を示す位置ベクトルである。また、位置ベクトルＦＰ３は、シーン特徴点Ｃ３の位置を示す位置ベクトルである。また、位置ベクトルＦＰ４は、シーン特徴点Ｃ４の位置を示す位置ベクトルである。
【０１２０】
部分点群検出部５４は、これら４個の位置ベクトルＦＰｉと、以下に示した式（１）とに基づいて、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のうちの最も距離が離れている２個のシーン特徴点間を結ぶベクトルのノルム、すなわち当該２個のシーン特徴点間の距離を算出する。
【０１２１】
【数１】
2017042897.tif 000003
【０１２２】
上記の式（１）においては、ｊ＝１〜４であり、且つｉ≠ｊである。すなわち、部分点群検出部５４は、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のうちの２個のシーン特徴点の組み合わせ毎に、当該組み合わせに含まれる２個のシーン特徴点間を結ぶベクトルのノルムを算出する。この一例において、部分点群検出部５４は、６個のノルムを算出する。そして、部分点群検出部５４は、算出した６個のノルムのうちの最大のノルムを、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のうちの最も距離が離れている２個のシーン特徴点間を結ぶベクトルのノルムとして特定する。部分点群検出部５４は、特定したノルム、すなわち最も距離が離れている２個のシーン特徴点間の距離を、幾何学的特徴量ＧＦ１として選択する。
【０１２３】
＜幾何学的特徴量の具体例２＞
幾何学的特徴量の具体例２は、第２所定数のシーン特徴点のうちの最も距離が離れている２個のシーン特徴点間を結ぶ直線から、他の２個のシーン特徴点のそれぞれまでの最短距離である。ここで、図１７を参照し、当該距離を算出する処理を視覚的に示す。図１７は、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４の位置関係の一例と、具体例２において部分点群検出部５４が算出する距離とを示す図である。図１７では、図１６に示した４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のうち、最も距離が離れている２個のシーン特徴点を直線Ｄ１によって結んでいる。
【０１２４】
また、図１７では、図１６に示した４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のうち、最も距離が離れている２個のシーン特徴点ではない他の２個のシーン特徴点（シーン特徴点Ｃ２、シーン特徴点Ｃ４）のそれぞれから、直線Ｄ１に対して垂線を引いている。ある直線Ｙから、直線Ｙ上には存在していない点までの最短距離は、当該点から直線Ｙまでの垂線の長さとなる。すなわち、部分点群検出部５４は、図１７に示した直線Ｄ１に対してシーン特徴点Ｃ２及びシーン特徴点Ｃ４からそれぞれ引いた垂線の長さを算出する。
【０１２５】
部分点群検出部５４は、このようにして算出された垂線の長さのうちの一部又は全部を第１重心特徴量の成分とする幾何学的特徴量として選択する。この一例において、部分点群検出部５４は、算出された垂線の長さのうち、最も長い垂線の長さを第１重心特徴量の成分とする幾何学的特徴量ＧＦ２として選択する。図１７に示した例では、最も長い垂線は、直線Ｄ２である。すなわち、部分点群検出部５４は、直線Ｄ２の長さを幾何学的特徴量ＧＦ２として選択する。
【０１２６】
＜幾何学的特徴量の具体例３＞
幾何学的特徴量の具体例３は、第２所定数のシーン特徴点からランダム、又は所定の規則に基づいて選択した３個のシーン特徴点の全てを含む平面から、他のシーン特徴点までの最短距離である。ここで、図１８を参照し、当該距離を算出する処理を視覚的に示す。図１８は、図１６に示した４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４の位置関係の一例と、具体例３において部分点群検出部５４が算出する距離とを示す図である。図１８では、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４のうち、直線Ｄ１の両端であるシーン特徴点Ｃ１及びシーン特徴点Ｃ３と、直線Ｄ２の起点であるシーン特徴点Ｃ２とを含む平面Ｍに対して、残りの１個のシーン特徴点Ｃ４から垂線を引いている。図１８に示した例では、当該垂線は、直線Ｄ３である。
【０１２７】
ここで、平面Ｍから、平面Ｍ上には存在していない点までの最短距離は、当該点から平面Ｍまでの垂線の長さとなる。すなわち、部分点群検出部５４は、図１８に示した直線Ｄ３の長さを算出する。部分点群検出部５４は、このようにして算出された直線Ｄ３の長さを第１重心特徴量の成分とする幾何学的特徴量ＧＦ３として選択する。
【０１２８】
以上のように、この一例における部分点群検出部５４は、直線Ｄ１の長さと、直線Ｄ２の長さと、直線Ｄ３の長さとを算出し、算出したこれらの距離のそれぞれを重心特徴点Ｇの第１重心特徴量の成分とする幾何学的特徴量ＧＦ１〜幾何学的特徴量ＧＦ３として選択する。すなわち、重心特徴点には、３つの幾何学的特徴量ＧＦ１〜幾何学的特徴量ＧＦ３のそれぞれを成分として有する第１重心特徴量が対応付けられる。なお、部分点群検出部５４は、直線Ｄ１の長さと、直線Ｄ２の長さと、直線Ｄ３の長さとのうちの一部を第１重心特徴量の成分とする幾何学的特徴量として選択する構成であってもよい。また、部分点群検出部５４は、直線Ｄ１の長さと、直線Ｄ２の長さと、直線Ｄ３の長さとの３つの成分のうちの一部又は全部を他の成分と代えた場合のそれぞれの成分を、第１重心特徴量の成分とする幾何学的特徴量として選択する構成であってもよい。また、部分点群検出部５４は、直線Ｄ１の長さと、直線Ｄ２の長さと、直線Ｄ３の長さとの３つの成分と、１以上の他の成分との４以上のそれぞれの成分を、第１重心特徴量の成分とする幾何学的特徴量として選択する構成であってもよい。部分点群検出部５４は、このような幾何学的特徴量の算出及び選択を、ステップＳ３７０において特定された全ての重心特徴点について行う。
【０１２９】
ステップＳ３８０において第１重心特徴量が算出された後、特徴量算出部５１は、ステップＳ３７０において特定した重心特徴点毎に、当該重心特徴点に応じた特徴的な量であり、第１重心特徴量とは異なる第２重心特徴量を算出する（ステップＳ３９０）。第２重心特徴量は、重心特徴点に応じた特徴的な２以上の量を成分として有するベクトルである。
【０１３０】
ここで、ステップＳ３９０の処理について説明する。特徴量算出部５１は、ステップＳ３６５において（ステップＳ３６５−Ｙｅｓ）の判定になるまでに累積された第１所定数以上のシーン特徴点それぞれのＳＨＯＴ特徴量を算出する。なお、特徴量算出部５１は、当該シーン特徴点それぞれのＳＨＯＴ特徴量を算出する構成に代えて、他の従来の手法によって算出される他の特徴量や、今後新たに開発される手法によって算出される特徴量を算出する構成であってもよい。ただし、特徴量算出部５１は、三次元モデル点群ＯＭの各点の特徴量を算出する手法と同じ手法によって、当該シーン特徴点の特徴量を算出しなければならない。そして、特徴量算出部５１は、ステップＳ３７０において部分点群検出部５４が特定した重心特徴点毎に、当該重心特徴点を算出するために用いた第２所定数以上のシーン特徴点それぞれのＳＨＯＴ特徴量を成分として有するベクトルを第２重心特徴量として算出（生成）する。
【０１３１】
この一例において、特徴量算出部５１は、４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４それぞれのＳＨＯＴ特徴量ＦＣ１〜ＳＨＯＴ特徴量ＦＣ４を算出する。なお、これは、シーン特徴点Ｃ１のＳＨＯＴ特徴量をＳＨＯＴ特徴量ＦＣ１とし、シーン特徴点Ｃ２のＳＨＯＴ特徴量をＳＨＯＴ特徴量ＦＣ２とし、シーン特徴点Ｃ３のＳＨＯＴ特徴量をＳＨＯＴ特徴量ＦＣ３とし、シーン特徴点Ｃ４のＳＨＯＴ特徴量をＳＨＯＴ特徴量ＦＣ４として定義したものである。そして、特徴量算出部５１は、重心特徴点Ｇを算出するために用いた当該４個のシーン特徴点Ｃ１〜シーン特徴点Ｃ４それぞれのＳＨＯＴ特徴量ＦＣ１〜ＳＨＯＴ特徴量ＦＣ４を各成分として有するベクトルを第２重心特徴量として算出する。
【０１３２】
ステップＳ３９０において第２重心特徴量が算出された後、部分点群検出部５４は、ステップＳ３７０において特定した重心特徴点毎に、当該重心特徴点の第１重心特徴量及び第２重心特徴量に基づいて、統合重心特徴量を生成する（ステップＳ４００）。ここで、ステップＳ４００の処理について説明する。統合重心点特徴量は、ステップＳ３７０において部分点群検出部５４が特定した重心特徴点毎に、当該重心特徴点の第１重心特徴量及び第２重心特徴量を成分として有するベクトル（配列記述子）である。例えば、上記で例に挙げている重心特徴点Ｇの統合重心特徴量は、以下の（２）式によって表されるベクトルである。
【０１３３】
（重心特徴点Ｇの統合重心特徴量）＝（重心特徴点Ｇの第１重心特徴量，重心特徴点Ｇの第２重心特徴量）  ・・・（２）
【０１３４】
なお、上記の式（２）に示した重心特徴点Ｇの統合重心特徴量が有する成分は、重心特徴点Ｇの第１重心特徴量と重心特徴点Ｇの第２重心特徴量との位置が逆であってもよい。また、上記の式（２）は、横ベクトルとして記載しているが、縦ベクトルであってもよい。
【０１３５】
上記の式（２）は、第１重心特徴量と第２重心特徴量それぞれが有する成分をあらわに書くと、以下の式（３）のようになる。
【０１３６】
（重心特徴点Ｇの統合重心特徴量）＝（幾何学的特徴量ＧＦ１，幾何学的特徴量ＧＦ２，幾何学的特徴量ＧＦ３，ＳＨＯＴ特徴量ＦＣ１，ＳＨＯＴ特徴量ＦＣ２，ＳＨＯＴ特徴量ＦＣ３，ＳＨＯＴ特徴量ＦＣ４）  ・・・（３）
【０１３７】
ステップＳ４００において統合重心特徴量が生成された後、部分点群検出部５４は、三次元シーン点群ＯＳの重心特徴点及び重心特徴点に対応付けられた統合重心特徴量と、三次元モデル点群ＯＭの重心特徴点及び重心特徴点に対応付けられた統合重心特徴量とに基づいて、三次元シーン点群ＯＳから、三次元モデル点群ＯＭに対応する部分点群を検出する（ステップＳ４１０）。
【０１３８】
ここで、ステップＳ４１０の処理について説明する。以下では、説明の便宜上、ステップＳ３７０において部分点群検出部５４が特定した重心特徴点をシーン重心特徴点と称し、三次元モデル点群ＯＭから予め特定しておいた重心特徴点をモデル重心特徴点と称して説明する。例えば、部分点群検出部５４は、未選択のシーン重心特徴点を１つずつ選択する。部分点群検出部５４は、選択したシーン重心特徴点毎に、当該シーン重心特徴点に対応する１以上のモデル重心特徴点の候補を検出する。
【０１３９】
より具体的には、部分点群検出部５４は、選択したシーン重心特徴点に対応付けられた統合重心特徴量と、モデル重心特徴点に対応付けられた統合重心特徴量との差を算出する。選択したシーン重心特徴点に対応づけられた統合重心特徴量と、モデル重心特徴点に対応付けられた統合重心特徴量とは、ともにベクトルであるため、これらの差もベクトルである。部分点群検出部５４は、算出した差のノルムを算出する。そして、部分点群検出部５４は、当該ノルムが所定の閾値未満であるか否かの判定を行う。
【０１４０】
当該判定において、部分点群検出部５４は、以下の式（４）を満たすモデル重心特徴点、すなわち当該ノルムが所定の閾値未満となるモデル重心特徴点を、選択したシーン重心特徴点に対応するモデル重心特徴点の候補として全て検出する。なお、部分点群検出部５４は、以下の式（４）を満たすモデル重心特徴点の一部を、選択したシーン重心特徴点に対応するモデル重心特徴点の候補として検出する構成であってもよい。また、以下に示した式（４）では、選択したシーン重心特徴点に対応付けられた統合重心特徴量をベクトルＧＭ１によって表し、モデル重心特徴点に対応付けられた統合重心特徴量をベクトルＧＭ２によって表し、所定の閾値をεによって表した。
【０１４１】
【数２】
2017042897.tif 000004
【０１４２】
ここで部分点群検出部５４は、対応するモデル重心特徴点の候補が検出されなかったシーン重心特徴点を、三次元モデル点群ＯＭに対応する部分点群を検出する処理において無視する。部分点群検出部５４は、対応するモデル重心特徴点の候補が検出された１以上のシーン重心特徴点と、当該１以上のシーン重心特徴点のそれぞれに対応する１以上のモデル重心特徴点の候補とに基づいて、シーン重心特徴点とモデル重心特徴点の候補とのマッチングを行い、三次元シーン点群ＯＳから三次元モデル点群ＯＭに対応する部分点群を検出する。なお、部分点群検出部５４は、三次元シーン点群ＯＳから三次元モデル点群ＯＭに対応する部分点群が検出されない場合、当該部分点群が検出されないことを示す情報を生成する。
【０１４３】
部分点群検出部５４は、当該マッチングにおいて、ＲＡＮＳＡＣ等を用いることにより、対応するモデル重心特徴点の候補が検出されたシーン重心特徴点に対応する１以上のモデル重心特徴点の候補のうち、当該シーン重心特徴点に対応することが一番尤もらしいモデル重心特徴点を選択する。そして、部分点群検出部５４は、選択したモデル重心特徴点と、当該モデル重心特徴点に対応するシーン重心特徴点とに基づいて回転変換行列を生成し、生成した回転変換行列を用いて三次元シーン点群ＯＳから三次元モデル点群ＯＭに対応する部分点群を検出する。なお、部分点群検出部５４は、三次元シーン点群ＯＳから三次元モデル点群ＯＭに対応する部分点群が検出されない場合、当該部分点群が検出されないことを示す情報を生成する。
【０１４４】
次に、部分点群検出部５４は、ステップＳ４１０において三次元シーン点群ＯＳからの三次元モデル点群ＯＭに対応する部分点群の検出に成功したか否かを判定する（ステップＳ４２０）。ステップＳ４１０において三次元シーン点群ＯＳからの三次元モデル点群ＯＭに対応する部分点群の検出に成功していないと判定した場合（ステップＳ４２０−Ｎｏ）、部分点群検出部５４は、当該部分点群が検出されないことを示す情報を、エラー情報として表示部３５に表示（出力）する（ステップＳ４５０）。一方、ステップＳ４１０において三次元シーン点群ＯＳからの三次元モデル点群ＯＭに対応する部分点群の検出に成功したと部分点群検出部５４が判定した場合（ステップＳ４２０−Ｙｅｓ）、位置姿勢算出部５５は、当該部分点群に基づいて対象物Ｏの位置及び姿勢を、ロボット２０に把持させる対象物Ｏの候補である把持対象の位置及び姿勢として算出する（ステップＳ４３０）。
【０１４５】
次に、ロボット制御部４６は、ステップＳ４３０において算出した把持対象の位置及び姿勢に基づいて、第１エンドエフェクターＥ１に把持対象を把持させる。また、ロボット制御部４６は、記憶部３２から給材領域Ａの位置を示す情報を読み込む。ロボット制御部４６は、読み込んだ給材領域Ａの位置を示す情報に基づいて第１アームを動作させることにより、第１エンドエフェクターＥ１が把持した把持対象を、給材領域Ａに給材し（ステップＳ４４０）、処理を終了する。
【０１４６】
以上のように、制御部３６は、領域情報生成処理と、位置姿勢算出処理とを行う。なお、制御部３６は、図１２に示したステップＳ３７０からステップＳ４１０までの処理に代えて、ステップＳ３６０において検出されたシーン特徴点と、三次元モデル点群ＯＭから検出されたモデル特徴点とに基づいた他のマッチングの手法によって三次元シーン点群ＯＳのから三次元モデル点群ＯＭに対応する部分点群を検出する構成であってもよい。
【０１４７】
また、制御部３６は、ステップＳ３５０において読み出した領域情報が表わす局所座標系をステップＳ３３０において選択した対象点に設定し、優先順位が最も高い部分領域を選択した後、選択した当該部分領域内における三次元シーン点群ＯＳの一部に対してステップＳ３３０からステップＳ３６０までの処理を行う構成であってもよい。すなわち、制御部３６は、選択した部分領域の中から更に部分領域を選択し、選択した当該部分領域に含まれる三次元シーン点群ＯＳの一部からシーン特徴点を検出する。これにより、制御部３６は、三次元シーン点群ＯＳの一部から三次元モデル点群ＯＭに対応する部分点群をより高い精度で検出することができる。その結果、制御部３６は、対象物Ｏの位置及び姿勢をより高い精度で算出することができる。
【０１４８】
また、制御部３６は、ステップＳ４３０において算出された対象物Ｏの位置及び姿勢を初期値としてＩＣＰ（Iterated  Closest  Points）法を行うことにより対象物Ｏの位置及び姿勢を算出する構成であってもよい。ＩＣＰ法では、２つの点群のうちの一方の点群を構成する各点に対し、他方の点群における最近傍点を探索し、これらを仮の対応点とする（対応点探索）。また、ＩＣＰ法では、このような対応点間の距離を最小化するような剛体変換を推定する（剛体変換推定）。ＩＣＰ法では、これらの対応点探索、剛体変換推定を繰り返すことにより、２つの点群の位置合わせを行う。ＩＣＰ法により、制御部３６は、対象物Ｏの位置及び姿勢を高い精度で算出することができる。
【０１４９】
以上説明したように、実施形態におけるロボット２０のロボット制御装置３０は、特徴量に対応付けられた領域を示す情報（この一例において、領域情報）に基づいて対象物Ｏの点群であるシーン点群（この一例において、三次元シーン点群ＯＳ）の点である第１点（例えば、上記の対象点Ｃ０）の特徴量に対応付けられた当該領域（例えば、上記の対象点Ｃ０に設定された局所座標系が表わす空間）に含まれるシーン点群の一部から特徴点をシーン特徴点として検出する。これにより、ロボット制御装置３０は、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【０１５０】
また、ロボット制御装置３０は、シーン特徴点に基づいて、モデル点群（この一例において、三次元モデル点群ＯＭ）に対応する部分点群をシーン点群の一部から検出する。これにより、ロボット制御装置３０は、モデル点群に対応する部分点群をシーン点群から検出するために要する時間を短縮することができる。
【０１５１】
また、ロボット制御装置３０は、シーン特徴点に基づいて、シーン点群の一部から部分点群を抽出できなかった場合、シーン点群の点のうちの第１点とは異なる点である第２点の特徴量に対応付けられた領域に含まれるシーン点群の一部からシーン特徴点を検出する。これにより、ロボット制御装置３０は、より確実にシーン点群の一部からシーン特徴点を検出することができる。
【０１５２】
また、ロボット制御装置３０は、シーン特徴点に基づいて、シーン点群の中から部分点群を検出できた場合、検出した当該部分点群に基づいて対象物Ｏの位置及び姿勢を算出し、算出した当該位置及び姿勢に基づいて対象物Ｏに対して所定の作業をロボット２０に行わせる。これにより、ロボット制御装置３０は、対象物Ｏに対してロボット２０に所定の作業を行わせるために要する時間を短縮することができる。
【０１５３】
また、ロボット制御装置３０は、所定の第１条件（この一例において、三次元シーン点群ＯＳから検出されたシーン特徴点の累積数が第１所定数以上であること）が満たされるまで優先順位に基づいて選択された部分領域に含まれるシーン点群の一部からシーン特徴点を検出する。これにより、ロボット制御装置３０は、第１所定数以上のシーン特徴点を確実に確保することができる。
【０１５４】
また、ロボット制御装置３０は、所定の第１条件が満たされるまで、部分領域に含まれる特徴点の数に応じて決められている優先順位に基づいて選択された部分領域に含まれるシーン点群の一部からシーン特徴点を検出する。これにより、ロボット制御装置３０は、部分領域に含まれる特徴点の数に応じて決められている優先順位に基づいて、シーン特徴点を検出するために要する時間を短縮することができる。
【０１５５】
また、ロボット制御装置３０は、モデル点群の点の特徴量に対応付けられた第１分布であって、モデル特徴点のモデル点群上における第１分布（この一例において、ある分割領域に含まれる点の対応情報）と、当該特徴量と類似する特徴量に対応付けられた第２分布であって、モデル特徴点のモデル点群上における第２分布（この一例において、当該対応情報とは異なる対応情報であって当該分割領域に含まれる点の対応情報）とに基づいて、特徴量に対応付けられた領域を示す情報を生成する。これにより、ロボット制御装置３０は、特徴量に対応付けられた領域を示す情報を生成し、生成した当該領域を示す情報に基づいて、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【０１５６】
また、ロボット制御装置３０は、シーン点群からシーン特徴点を検出する方法と同じ方法によってモデル点群からモデル特徴点を検出し、シーン点群の点の特徴量を算出する方法と同じ方法によってモデル点群の点の特徴量を算出し、検出した当該モデル特徴点と、算出した当該特徴量とに基づいて、第１分布及び第２分布を生成する。これにより、ロボット制御装置３０は、検出した当該モデル特徴点と、算出した当該特徴量とに基づいて、シーン点群から特徴点を検出するために要する時間を短縮することができる。
【０１５７】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１５８】
また、以上に説明した装置（例えば、ロボット２０のロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１５９】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１６０】
２０  ロボット、２１  第１撮像部、２２  第２撮像部、２３  第３撮像部、２４  第４撮像部、３０  ロボット制御装置、３１  ＣＰＵ、３２  記憶部、３３  入力受付部、３４  通信部、３５  表示部、３６  制御部、４０  撮像制御部、４２  画像取得部、４４  三次元計測部、４６  ロボット制御部、５０  特徴点検出部、５１  特徴量算出部、５２  領域情報生成部、５３  点群情報生成部、５４  部分点群検出部、５５  位置姿勢算出部、３２１  モデル記憶部
【図１】
2017042897.tif 000005
【図２】
2017042897.tif 000006
【図３】
2017042897.tif 000007
【図４】
2017042897.tif 000008
【図５】
2017042897.tif 000009
【図６】
2017042897.tif 000010
【図７】
2017042897.tif 000011
【図８】
2017042897.tif 000012
【図９】
2017042897.tif 000013
【図１０】
2017042897.tif 000014
【図１１】
2017042897.tif 000015
【図１２】
2017042897.tif 000016
【図１３】
2017042897.tif 000017
【図１４】
2017042897.tif 000018
【図１５】
2017042897.tif 000019
【図１６】
2017042897.tif 000020
【図１７】
2017042897.tif 000021
【図１８】
2017042897.tif 000022