(57)【要約】【課題】対象物の３次元位置及び姿勢を高い精度で導出することができるロボットを提供すること。【解決手段】ロボットは、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた第１特徴量により、対象物の位置姿勢を求める。【選択図】図３
2016218561.tif 000002
【特許請求の範囲】
【請求項１】
対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた第１特徴量により、前記対象物の位置姿勢を求める、
ロボット。
【請求項２】
前記点は、前記３次元情報に基づく３次元位置情報である、
請求項１に記載のロボット。
【請求項３】
前記点は、前記対象物から検出される特徴点である、
請求項１又は２に記載のロボット。
【請求項４】
前記第１特徴量には、前記２つ以上の前記点のうちの２点間の距離が含まれる、
請求項１から３のうちいずれか一項に記載のロボット。
【請求項５】
前記点が３つ以上であり、
前記第１特徴量には、前記３つ以上の前記点のうちの２点間を結ぶ線分に基づいて形成される角度が含まれる、
請求項１から４のうちいずれか一項に記載のロボット。
【請求項６】
前記２つ以上の前記点の組み合わせ毎に算出された２以上の特徴量のうち、前記組み合わせ毎の前記特徴量のばらつきを示す指標が所定値以上である前記特徴量を前記第１特徴量に含める、
請求項１から５のうちいずれか一項に記載のロボット。
【請求項７】
前記第１特徴量と、前記点毎に算出される第２特徴量とにより前記位置姿勢を求める、
請求項１から６のうちいずれか一項に記載のロボット。
【請求項８】
対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた特徴量により、前記対象物の位置姿勢を求める、
制御装置。
【請求項９】
対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた特徴量により、前記対象物の位置姿勢を求める、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、制御装置、及び制御方法に関する。
【背景技術】
【０００２】
対象物の３次元情報に基づいてロボットに対象物を把持させる技術の研究や開発が行われている。
【０００３】
これに関し、観測対象を複数の方向から撮影して得られる複数の距離画像の同一座標系における相対位置を演算することにより観測対象の３次元モデルを調整する画像処理装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２０２１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この画像処理装置は、対象物の３次元位置情報を表す３次元点群同士をマッチングさせることができなかった。そのため、当該画像処理装置は、３次元点群に基づいて対象物の３次元位置及び姿勢を算出することができなかった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた第１特徴量により、前記対象物の位置姿勢を求める、ロボットである。
この構成により、ロボットは、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた第１特徴量により、対象物の位置姿勢を求める。これにより、ロボットは、対象物の位置及び姿勢を高い精度で導出することができる。
【０００７】
また、本発明の他の態様は、ロボットにおいて、前記点は、前記３次元情報に基づく３次元位置情報である、構成が用いられてもよい。
この構成により、ロボットは、対象物の３次元情報から得た２つ以上の３次元位置情報が示す点の幾何学的関係に基づいた第１特徴量により、対象物の位置姿勢を求める。これにより、ロボットは、２つ以上の３次元位置情報を示す点の幾何学的関係に基づいて、対象物の３次元位置及び姿勢を高い精度で導出することができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記点は、前記対象物から検出される特徴点である、構成が用いられてもよい。
この構成により、ロボットは、対象物の３次元情報から得た２つ以上の特徴点の幾何学的関係に基づいた第１特徴量により、対象物の位置姿勢を求める。これにより、ロボットは、２つ以上の特徴点の幾何学的関係に基づいて、対象物の３次元位置及び姿勢を高い精度で導出することができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記第１特徴量には、前記２つ以上の前記点のうちの２点間の距離が含まれる、構成が用いられてもよい。
この構成により、ロボットは、対象物の３次元情報から得た２つ以上の特徴点のうちの２点間の距離を含む第１特徴量により、対象物の位置姿勢を求める。これにより、ロボットは、対象物の３次元情報から得た２つ以上の特徴点のうちの２点間の距離を含む第１特徴量に基づいて、対象物の位置及び姿勢を高い精度で導出することができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記点が３つ以上であり、前記第１特徴量には、前記３つ以上の前記点のうちの２点間を結ぶ線分に基づいて形成される角度が含まれる、構成が用いられてもよい。
この構成により、ロボットは、３つ以上の点のうちの２点間を結ぶ線分に基づいて形成される角度を含む第１特徴量により、対象物の位置姿勢を求める。これにより、ロボットは、３つ以上の点のうちの２点間を結ぶ線分に基づいて形成される角度を含む第１特徴量に基づいて、対象物の位置及び姿勢を高い精度で導出することができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記２つ以上の前記点の組み合わせ毎に算出された２以上の特徴量のうち、前記組み合わせ毎の前記特徴量のばらつきを示す指標が所定値以上である前記特徴量を前記第１特徴量に含める、構成が用いられてもよい。
この構成により、ロボットは、対象物の３次元情報から得た２つ以上の点の組み合わせ毎に算出された２以上の特徴量のうち、当該組み合わせ毎の特徴量のばらつきを示す指標が所定値以上である特徴量を第１特徴量に含める。これにより、ロボットは、ばらつきを示す指標が所定値以上である特徴量を含む第１特徴量に基づいて、対象物の位置姿勢をより高い精度で導出することができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、前記第１特徴量と、前記点毎に算出される第２特徴量とにより前記位置姿勢を求める、構成が用いられてもよい。
この構成により、ロボットは、第１特徴量と、対象物の３次元情報から得た２つ以上の点毎に算出される第２特徴量とにより対象物の位置姿勢を求める。これにより、ロボットは、第１特徴量のみに基づいて対象物の位置姿勢を求める場合と比較して、対象物の位置姿勢をより高い精度で導出することができる。
【００１３】
また、本発明の他の態様は、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた特徴量により、前記対象物の位置姿勢を求める、制御装置である。
この構成により、制御装置は、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた特徴量により、対象物の位置姿勢を求める。これにより、制御装置は、第１特徴量に基づいて対象物の位置姿勢を高い精度で導出することができる。
【００１４】
また、本発明の他の態様は、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた特徴量により、前記対象物の位置姿勢を求める、制御方法である。
この構成により、制御方法は、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた特徴量により、対象物の位置姿勢を求める。これにより、制御方法は、第１特徴量に基づいて対象物の位置姿勢を高い精度で導出することができる。
【００１５】
以上により、ロボット、制御装置、及び制御方法は、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた第１特徴量により、対象物の位置姿勢を求める。これにより、ロボット、制御装置、及び制御方法は、第１特徴量に基づいて対象物の位置姿勢を高い精度で導出することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るロボット２０の一例を示す構成図である。
【図２】制御装置３０のハードウェア構成の一例を示す図である。
【図３】制御装置３０の機能構成の一例を示す図である。
【図４】制御部３６が把持対象の位置姿勢を算出する処理の流れの一例を示すフローチャートである。
【図５】ステップＳ１２０において点群情報生成部５０が生成した３次元点群の情報の一例を示す図である。
【図６】ウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例を示す図である。
【図７】ウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例と、具体例１において第１特徴量算出部５３が算出する距離とを示す図である。
【図８】ウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例と、具体例２において第１特徴量算出部５３が算出する距離とを示す図である。
【図９】図７に示したウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例と、具体例３において第１特徴量算出部５３が算出する距離とを示す図である。
【図１０】第１特徴量算出部５３が算出した２以上のノルムが同じ値となってしまう状況の一例を示す図である。
【図１１】重心特徴点を用いて検出特徴点Ｐ１と検出特徴点Ｐ２を区別する方法の一例を説明する図である。
【発明を実施するための形態】
【００１７】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボット２０の一例を示す構成図である。
まず、ロボット２０の構成について説明する。
【００１８】
ロボット２０は、第１アームと第２アームを備える双腕ロボットである。双腕ロボットは、この一例における第１アームと第２アームのような２本のアーム（腕）を備えるロボットである。なお、ロボット２０は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットは、１本のアームを備えるロボットである。例えば、単腕ロボットは、第１アームと第２アームのいずれか一方を備える。
【００１９】
また、ロボット２０は、第１力センサー１１と、第２力センサー１２と、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４と、制御装置３０を備える。なお、ロボット２０は、第１力センサー１１と第２力センサー１２のいずれか一方又は両方を備えない構成であってもよい。
【００２０】
第１アームは、物体を把持可能な爪部を備える第１エンドエフェクターＥ１と、第１マニピュレーターＭ１と、第１力センサー１１と、第１撮像部２１と、図示しない複数のアクチュエーターによって構成される。以下では、第１アームが備える複数のアクチュエーターを、まとめて第１アクチュエーターと称して説明する。第１アームは、７軸垂直多関節型のアームである。具体的には、第１アームは、支持台と、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１が第１アクチュエーターによる連携した動作によって７軸の自由度の動作を行う。なお、第１アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００２１】
第１アームが７軸の自由度で動作する場合、第１アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第１アームは、例えば、動作が滑らかになり、更に第１アームの周辺に存在する物体との干渉を容易に回避することができるようになる。また、第１アームが７軸の自由度で動作する場合、第１アームの制御は、第１アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。このような理由から、第１アームは、７軸の自由度で動作することが望ましい。
【００２２】
各第１アクチュエーターは、ケーブルによって制御装置３０と通信可能に接続されている。これにより、第１アクチュエーターは、制御装置３０から取得される制御信号に基づいて、第１エンドエフェクターＥ１と第１マニピュレーターＭ１を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、第１アクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００２３】
第１力センサー１１は、第１エンドエフェクターＥ１と第１マニピュレーターＭ１の間に備えられる。第１力センサー１１は、第１エンドエフェクターＥ１に作用した力やモーメントの大きさを示す値を検出する。第１力センサー１１は、検出した力やモーメントの大きさを示す値を出力値として含む第１力センサー情報を通信により制御装置３０へ出力する。第１力センサー情報は、制御装置３０による第１アームの第１力センサー情報に基づく制御に用いられる。第１力センサー情報に基づく制御は、例えば、インピーダンス制御等のコンプライアンス制御のことである。なお、第１力センサー１１は、トルクセンサー等の第１エンドエフェクターＥ１に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。
【００２４】
第１力センサー１１は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１力センサー１１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続されてもよい。
【００２５】
第１撮像部２１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、第１撮像部２１は、第１マニピュレーターＭ１の一部に備えられる。そのため、第１撮像部２１は、第１アームの動きに応じて移動する。また、第１撮像部２１が撮像可能な範囲は、第１アームの動きに応じて変化する。第１撮像部２１は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。
【００２６】
また、第１撮像部２１は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１撮像部２１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００２７】
第２アームは、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２と、第２力センサー１２と、第２撮像部２２と、図示しない複数のアクチュエーターによって構成される。以下では、第２アームが備える複数のアクチュエーターを、まとめて第２アクチュエーターと称して説明する。第２アームは、７軸垂直多関節型のアームである。具体的には、第２アームは、支持台と、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２が第２アクチュエーターによる連携した動作によって７軸の自由度の動作を行う。第２アームは、第１アームが７軸の自由度で動作することが望ましい理由と同様の理由により、７軸の自由度で動作することが望ましい。なお、第２アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００２８】
各第２アクチュエーターは、ケーブルによって制御装置３０と通信可能に接続されている。これにより、第２アクチュエーターは、制御装置３０から取得される制御信号に基づいて、第２エンドエフェクターＥ２と第２マニピュレーターＭ２を動作させることができる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、第２アクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００２９】
第２力センサー１２は、第２エンドエフェクターＥ２と第２マニピュレーターＭ２の間に備えられる。第２力センサー１２は、第２エンドエフェクターＥ２に作用した力やモーメントを検出する。第２力センサー１２は、検出した力やモーメントの大きさを示す値を、第２力センサー１２の出力値として含む第２力センサー情報を通信により制御装置３０へ出力する。第２力センサー情報は、制御装置３０による第２アームの第２力センサー情報に基づく制御に用いられる。第２力センサー情報に基づく制御は、例えば、インピーダンス制御等のコンプライアンス制御のことである。なお、第２力センサー１２は、トルクセンサー等の第２エンドエフェクターＥ２に加わる力やモーメントを検出する他のセンサーであってもよい。
【００３０】
第２力センサー１２は、ケーブルによって通信可能に制御装置３０と接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２力センサー１２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続されてもよい。
【００３１】
第２撮像部２２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。この一例において、第２撮像部２２は、第２マニピュレーターＭ２の一部に備えられる。そのため、第２撮像部２２は、第２アームの動きに応じて移動する。また、第２撮像部２２が撮像可能な範囲は、第２アームの動きに応じて変化する。第２撮像部２２は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。
【００３２】
また、第２撮像部２２は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２撮像部２２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００３３】
第３撮像部２３は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第３撮像部２３は、ロボット２０が第１アームと第２アームのうちいずれか一方又は両方により作業を行う領域を含む範囲を撮像可能な位置に設置される。以下では、説明の便宜上、当該範囲を撮像範囲と称して説明する。なお、第３撮像部２３は、撮像範囲の静止画像を撮像してもよく、撮像範囲の動画像を撮像してもよい。
【００３４】
また、第３撮像部２３は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第３撮像部２３は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００３５】
第４撮像部２４は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第４撮像部２４は、撮像範囲を第３撮像部２３とともにステレオ撮像可能な位置に設置される。なお、第４撮像部２４は、撮像範囲の静止画像を撮像してもよく、撮像範囲の動画像を撮像してもよい。
【００３６】
また、第４撮像部２４は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第４撮像部２４は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００３７】
上記で説明したロボット２０が備えるこれらの各機能部は、この一例において、ロボット２０に内蔵された制御装置３０から制御信号を取得する。そして、当該各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット２０は、制御装置３０を内蔵する構成に代えて、外部に設置された制御装置３０により制御される構成であってもよい。
【００３８】
制御装置３０は、ロボット２０に制御信号を送信することにより、ロボット２０を動作させる。これにより、制御装置３０は、ロボット２０に所定の作業を行わせる。
【００３９】
以下、ロボット２０が行う所定の作業について説明する。
図１に示した作業台ＴＢは、例えば、テーブルである。作業台ＴＢの上面には、複数の対象物Ｏがバラ積みされている。なお、作業台ＴＢは、テーブルに変えて、複数の対象物Ｏをバラ積みすることが可能な床面等の物体であれば他の物体であってもよい。
【００４０】
対象物Ｏは、例えば、ネジやボルト等の産業用の部品や部材である。また、対象物Ｏは、図１において、図の簡略化のため直方体形状の物体として表している。なお、対象物Ｏは、産業用の部品や部材に代えて、日用品等の他の物体であってもよい。また、対象物Ｏの形状は、直方体形状に代えて、他の形状であってもよい。
【００４１】
ロボット２０は、例えば、作業台ＴＢの上面にバラ積みされた複数の対象物Ｏを１つずつ第１エンドエフェクターＥ１により把持する。ロボット２０は、把持した対象物Ｏを、図１に示した作業台ＴＢの上面における給材領域Ａに給材（配置）する。ロボット２０は、これを繰り返すことにより、所定の作業として複数の対象物Ｏのうちの一部又は全部を給材領域Ａに給材する。
【００４２】
なお、ロボット２０は、所定の作業において対象物Ｏを第１エンドエフェクターＥ１により把持する構成に代えて、対象物Ｏを第２エンドエフェクターＥ２により把持する構成であってもよく、第１エンドエフェクターＥ１と第２エンドエフェクターＥ２の両方により対象物Ｏを把持する構成であってもよい。
【００４３】
以下、ロボット２０に所定の作業を行わせるために制御装置３０が行う処理について説明する。
【００４４】
この一例において、制御装置３０は、図１に示した作業台ＴＢの上面にバラ積みされている対象物Ｏを含む領域を第３撮像部２３と第４撮像部２４にステレオ撮像させる。
なお、ロボット２０は、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４のうちのいずれか１台又は２台を備えない構成であってもよい。この場合、制御装置３０は、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４のうちのロボット２０が備える２台以上の撮像部により、図１に示した作業台ＴＢの上面にバラ積みされている対象物Ｏを含む領域をステレオ撮像する。
【００４５】
また、制御装置３０は、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４のうちのロボット２０が備える２台以上の撮像部によりステレオ撮像する構成に代えて、対象物Ｏの三次元点群の情報等の対象物Ｏの三次元形状を表す情報を生成するための画像を１台以上の撮像部により撮像する構成であれば他の構成であってもよい。
【００４６】
制御装置３０は、第３撮像部２３と第４撮像部２４によりステレオ撮像された撮像画像に基づいて、作業台ＴＢの上面にバラ積みされた複数の対象物の３次元形状を表す３次元点群の情報を生成する。制御装置３０は、生成した３次元点群の情報と、予め記憶された３次元モデル点群の情報とに基づいて、３次元点群の中から３次元モデル点群と対応する部分点群を検出する。３次元モデル点群の情報は、対象物Ｏの３次元全周モデルである。３次元全周モデルは、例えば、ＣＡＤ（Computer  Aided  Design）モデルに基づいて生成されたＣＧ（Computer1  Graphics）のことである。３次元点群における３次元モデル点群と対応する部分点群は、この一例において、３次元点群の中の３次元モデル点群と略一致する部分の点群のことである。なお、３次元モデル点群の情報は、過去に対象物Ｏがステレオ撮像された撮像画像に基づいて生成された３次元点群の情報であってもよい。
【００４７】
制御装置３０は、検出した部分点群に基づいて、ロボット２０に把持させる対象物Ｏの位置姿勢を算出する。対象物Ｏの位置姿勢は、対象物Ｏの３次元ロボット座標系における位置及び姿勢のことである。なお、この一例では、３次元点群に含まれる各点の座標は、キャリブレーションにより３次元ロボット座標系の座標と予め対応付けられている場合について説明する。また、以下では、説明の便宜上、制御装置３０により位置姿勢が算出された対象物Ｏを、把持対象と称して説明する。また、制御装置３０は、作業台ＴＢの上面にバラ積みされた複数の対象物Ｏの３次元点群の情報を他の装置から取得する構成であってもよい。
【００４８】
制御装置３０は、算出した把持対象の位置姿勢に基づいて、バラ積みされた複数の対象物Ｏのうちの把持対象を第１エンドエフェクターＥ１に把持させる。そして、制御装置３０は、第１アームを動作させ、第１エンドエフェクターＥ１に把持された把持対象を給材領域Ａに給材させる。なお、給材領域Ａの位置を示す情報は、予め制御装置３０に記憶されている。
【００４９】
次に、図２を参照し、制御装置３０のハードウェア構成について説明する。図２は、制御装置３０のハードウェア構成の一例を示す図である。制御装置３０は、例えば、ＣＰＵ（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）や三角測量法等の従来の手法に基づいて距離画像を生成する装置から、対象物Ｏの３次元点群の情報を取得する構成であってもよい。
【００５７】
特徴点検出部５２は、点群情報生成部５０が生成した３次元点群の情報に基づいて、３次元点群の中から複数の特徴的な点を特徴点として検出する。特徴点検出部５２が特徴点を検出する手法は、従来の手法でもよく、今後新たに開発される手法であってもよい。以下では、説明の便宜上、特徴点検出部５２が検出した特徴点を、検出特徴点と称して説明する。
【００５８】
特徴点検出部５２は、複数の検出特徴点のうちの所定個数の検出特徴点の組み合わせを選択する。特徴点検出部５２は、選択した組み合わせに含まれる所定個数の検出特徴点それぞれが示す位置を頂点とする立体の重心の位置を算出する。特徴点検出部５２は、算出した重心の位置を示す点を重心特徴点として特定する。以下では、説明の便宜上、このような特徴点検出部５２による重心特徴点を特定する処理を重心特徴点特定処理と称して説明する。
【００５９】
特徴点検出部５２は、複数の検出特徴点のうちの所定個数の検出特徴点の全ての組み合わせについて重心特徴点特定処理を実行することにより、それぞれの組み合わせ毎に重心特徴点を特定する。例えば、３次元点群から検出した検出特徴点の数がＮ個であり、且つ所定個数がＭ個である場合、Ｎ個の検出特徴点からＭ個の検出特徴点の組み合わせを選択する場合の数は、ＮＣＭ個である。特徴点検出部５２は、このＮＣＭ個の組み合わせのそれぞれ毎に、重心特徴点算出処理を実行する。これにより、特徴点検出部５２は、当該組み合わせのそれぞれ毎に重心特徴点を特定する。なお、重心特徴点が示す位置は、検出特徴点が示す位置に基づいて算出されるため、検出特徴点が示す位置と一致するとは限らない。
【００６０】
また、特徴点検出部５２は、モデル記憶部３２１から３次元モデル点群の情報を読み込む。特徴点検出部５２は、３次元点群から検出特徴点を検出する手法と同様の手法により、読み込んだ３次元モデル点群の情報に基づいて、３次元モデル点群の中から検出特徴点を検出する。また、特徴点検出部５２は、３次元モデル点群から検出した複数の検出特徴点のうちの所定個数の検出特徴点の全ての組み合わせについて重心特徴点特定処理を実行することにより、それぞれの組み合わせ毎に重心特徴点を特定する。
【００６１】
なお、所定個数は、２個以上の数であれば、如何なる数であってもよい。以下では、一例として、所定個数が４個の場合（すなわち、Ｍ＝４の場合）について説明する。また、この場合、特徴点検出部５２は、３次元点群から重心特徴点を特定する場合と同じように、３次元モデル点群から検出される複数の検出特徴点から４個（すなわち、所定個数）の検出特徴点の組み合わせを選択し、選択した４個の検出特徴点に基づいて重心特徴点を特定する。また、３次元点群から検出される検出特徴点の個数と、３次元モデル点群から検出される検出特徴点の個数とは、必ずしも一致しない。
【００６２】
第１特徴量算出部５３は、特徴点検出部５２が特定した１以上の重心特徴点毎に、重心特徴点の第１特徴量を算出する。重心特徴点の第１特徴量は、重心特徴点の位置を算出するために用いた所定個数の検出特徴点の幾何学的関係に基づいて算出される幾何学的に特徴的な量（幾何学的特徴量）を１以上含むベクトル量のことである。第１特徴量には、例えば、２個の検出特徴点を結ぶ直線の長さ（すなわち、２個の検出特徴点間の距離）や、当該直線に対して他の検出特徴点から引いた垂線の長さや、検出特徴点間を結ぶ直線同士が交わった点における挟角、すなわち３つ以上の検出特徴点のうちの２点間を結ぶ線分に基づいて形成される角度が含まれる。なお、第１特徴量は、これら以外にも、重心特徴点の位置を算出するために用いた所定個数の検出特徴点の幾何学的関係に基づいて算出することが可能な量であれば如何なる量を含んでもよい。
【００６３】
第２特徴量算出部５４は、特徴点検出部５２が検出した複数の検出特徴点毎に、３次元特徴量を第２特徴量として算出する。第２特徴量算出部５４が第２特徴量を算出する手法は、従来の手法でもよく、今後新たに開発される手法であってもよい。第２特徴量算出部５４は、例えば、３次元特徴量を算出する従来の手法として、、ＰＦＨ（Point  Feature  Histogram）特徴量、ＦＰＦＨ（Fast  Point  Feature  Histogram）特徴量、ＳＨＯＴ（Signature  of  Histograms  of  OrienTations）特徴量等を第２特徴量として算出してもよい。なお、第２特徴量は、１以上の３次元特徴量を含むベクトル量である。
【００６４】
また、第２特徴量算出部５４は、算出した第２特徴量と、第１特徴量算出部５３が算出した第１特徴量とに基づいて、重心点特徴量を生成する。重心点特徴量は、特徴点検出部５２が特定した複数の重心特徴点毎に、重心特徴点の第１特徴量と、重心特徴点の第２特徴量とを成分として含むベクトル量（配列記述子）である。重心特徴点の第２特徴量は、重心特徴点の位置を算出するために用いた所定個数の検出特徴点それぞれの第２特徴量のことである。すなわち、ある重心特徴点Ｘの重心点特徴量とは、以下の（１）式によって表されるベクトル量である。
【００６５】
（重心特徴点Ｘの重心点特徴量）＝（重心特徴点Ｘの第１特徴量，重心特徴点Ｘの第２特徴量）  ・・・（１）
【００６６】
なお、上記の式（１）に示した重心特徴点Ｘの重心点特徴量の成分は、重心特徴点Ｘの第１特徴量と重心特徴点Ｘの第２特徴量との位置が逆であってもよい。また、上記の式（１）は、横ベクトルとして記載しているが、縦ベクトルであってもよい。
【００６７】
対応点群検出部５６は、３次元点群の重心点特徴量と、３次元モデル点群の重心点特徴量とに基づいて、当該３次元点群の一部又は全部から、３次元モデル点群に対応する部分点群を検出する。当該３次元点群の一部から３次元モデル点群に対応する部分点群を検出する場合、例えば、対応点群検出部５６は、３次元点群を２以上の３次元点群に分割し、分割した点群の中から３次元モデル点群に対応する部分点群を検出する。このようにすることで、対応点群検出部５６は、部分点群を検出するのに要する時間を短縮することができる場合がある。この一例では、対応点群検出部５６は、３次元点群の重心点特徴量と、３次元モデル点群の重心点特徴量とに基づいて、当該３次元点群の全部から、３次元モデル点群に対応する部分点群を検出する場合について説明する。
【００６８】
位置姿勢算出部５８は、対応点群検出部５６が検出した部分点群と、３次元モデル点群とに基づいて、当該部分点群が表す対象物Ｏの位置姿勢を、把持対象の位置姿勢として算出する。
ロボット制御部４６は、位置姿勢算出部５８が算出した把持対象の位置姿勢に基づいて、第１エンドエフェクターＥ１に把持対象を把持させる。また、ロボット制御部４６は、記憶部３２から給材領域Ａの位置を示す情報を読み込む。ロボット制御部４６は、読み込んだ給材領域Ａの位置を示す情報に基づいて第１アームを動作させることにより、第１エンドエフェクターＥ１が把持した把持対象を、給材領域Ａに給材する。
【００６９】
以下、図４を参照し、制御部３６が把持対象の位置姿勢を算出する処理について説明する。図４は、制御部３６が把持対象の位置姿勢を算出する処理の流れの一例を示すフローチャートである。
【００７０】
なお、図４に示したフローチャートでは、一例として、制御部３６がモデル記憶部３２１に記憶された３次元モデル点群の情報を読み込み、読み込んだ３次元モデル点群の情報に基づいて３次元モデル点群の重心特徴点をすでに検出済みである場合について説明する。なお、制御装置３０は、図４に示したフローチャートの処理の前又は後に当該重心特徴点を検出する構成であってもよく、又は、図４に示したフローチャートの処理と並行して当該重心特徴点を検出する構成であってもよい。
【００７１】
また、図４に示したフローチャートでは、制御部３６が予め３次元モデル点群の重心点特徴量をすでに生成済みである場合について説明する。なお、制御部３６は、図４に示したフローチャートの処理の前又は後に当該重心点特徴量を生成する構成であってもよく、又は、図４に示したフローチャートの処理と並行して当該重心点特徴量を生成する構成であってもよい。
【００７２】
まず、撮像制御部４０は、作業台ＴＢの上面にバラ積みされた複数の対象物Ｏを含む領域を第３撮像部２３と第４撮像部２４にステレオ撮像させる（ステップＳ１００）。次に、画像取得部４２は、ステップＳ１００において第３撮像部２３と第４撮像部２４がステレオ撮像した撮像画像を、第３撮像部２３と第４撮像部２４から取得する（ステップＳ１１０）。
【００７３】
次に、点群情報生成部５０は、ステップＳ１１０において画像取得部４２が取得した撮像画像に基づいて、作業台ＴＢの上面にバラ積みされた複数の対象物Ｏの３次元点群の情報を生成する（ステップＳ１２０）。次に、特徴点検出部５２は、ステップ１２０において点群情報生成部５０が生成した３次元点群の情報に基づいて検出特徴点を検出する（ステップＳ１３０）。次に、第１特徴量算出部５３は、ステップＳ１３０において特徴点検出部５２が検出した複数の検出特徴点のうちの所定個数の検出特徴点の全ての組み合わせについて重心特徴点特定処理を実行する。これにより、第１特徴量算出部５３は、当該組み合わせ毎に重心特徴点を特定する（ステップＳ１３５）。
【００７４】
ここで、図５及び図６を参照してステップＳ１３０からステップＳ１３５までの処理について説明する。図５は、ステップＳ１２０において点群情報生成部５０が生成した３次元点群の情報の一例を示す図である。図５では、図を簡略化するため、一例として作業台ＴＢの上面にバラ積みされた対象物Ｏの数が２個であった場合の３次元点群Ｐが示されている。
【００７５】
検出特徴点Ｃ１〜検出特徴点Ｃ１８のそれぞれは、３次元点群Ｐから特徴点検出部５２が検出した検出特徴点である。以下では、検出特徴点Ｃ１〜検出特徴点Ｃ１８を区別する必要が無い限り、まとめて検出特徴点Ｃと称して説明する。この一例において、特徴点検出部５２は、３次元点群Ｐにおいて角になっている箇所の点や辺の中点に対応する点等の特徴的な点を検出特徴点Ｃとして検出している。特徴点検出部５２は、検出した複数の検出特徴点Ｃのうちの４個の検出特徴点Ｃの組み合わせを選択する。例えば、特徴点検出部５２は、ウィンドウＷ内に含まれる４個の検出特徴点Ｃ（検出特徴点Ｃ７、検出特徴点Ｃ８、検出特徴点Ｃ９、検出特徴点Ｃ１１）の組み合わせを選択する。
【００７６】
この一例において選択したウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係を視覚的に示すため、図６にウィンドウＷ内における４個の検出特徴点Ｃのみを描いた図を示した。図６は、ウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例を示す図である。図６では、４個の検出特徴点Ｃの位置関係を明確にするため、各検出特徴点Ｃ間をそれぞれ直線で結んでいる。また、図６では、検出特徴点Ｃ８と検出特徴点Ｃ９の間を結ぶ直線は、検出特徴点Ｃ７と検出特徴点Ｃ１１の間を結ぶ直線よりも奥側であることを点線によって示している。
【００７７】
この一例において、特徴点検出部５２は、図６に示した４個の検出特徴点Ｃそれぞれが示す位置を頂点とする立体の重心の位置を算出する。図６に示した例では、各検出特徴点Ｃ間を結ぶ直線は、三角錐を形成している。すなわち、特徴点検出部５２は、４個の検出特徴点Ｃそれぞれが示す位置に基づいて、図６に示した４個の検出特徴点Ｃそれぞれが示す位置を頂点とする立体である当該三角錐の重心の位置を算出する。特徴点検出部５２は、算出した位置が示す点を重心特徴点Ｇとして特定する。
【００７８】
特徴点検出部５２は、複数の検出特徴点のうちの４個の検出特徴点の全ての組み合わせについて、このような重心特徴点の特定処理を重心特徴点特定処理として実行する。これにより、特徴点検出部５２は、当該組み合わせ毎に重心特徴点を特定する。
【００７９】
図４に戻る。ステップＳ１３５の処理が実行された後、第１特徴量算出部５３は、ステップＳ１３５において特徴点検出部５２が特定した１以上の重心特徴点毎に、重心特徴点の位置を算出するために用いた４個の検出特徴点Ｃの幾何学的関係に基づいて１以上の第１特徴量を算出する（ステップＳ１４０）。
【００８０】
ここで、再び図５に示したウィンドウＷ内に含まれる４個の検出特徴点Ｃ及び重心特徴点Ｇを例に挙げて、ステップＳ１４０における第１特徴量算出部５３の処理について説明する。この一例において、第１特徴量算出部５３は、図６に示した重心特徴点Ｇの位置を算出するのに用いた４個の検出特徴点Ｃの幾何学的関係に基づいて１以上の第１特徴量を算出する。なお、第１特徴量算出部５３は、第１特徴量として算出する幾何学的特徴量の種類によって異なる算出処理を行う。そのため、以下では、第１特徴量算出部５３が算出する第１特徴量の具体例毎に第１特徴量の算出処理を説明する。なお、第１特徴量、及び第１特徴量の算出処理は、以下に示した具体例に限られるわけではない。
【００８１】
＜第１特徴量算出部５３が算出する第１特徴量の具体例１＞
第１特徴量の具体例１は、検出特徴点Ｃ間の距離である。例えば、第１特徴量算出部５３は、ウィンドウＷ内に含まれる４個の検出特徴点Ｃのうちの２個の検出特徴点Ｃの全ての組み合わせについて、それぞれの組み合わせ毎に検出特徴点Ｃ間の距離を算出する。ここで、図７を参照し、このような距離の算出処理を視覚的に示す。図７は、ウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例と、具体例１において第１特徴量算出部５３が算出する距離とを示す図である。図７では、図６と同様にウィンドウＷ内における各検出特徴点Ｃ間をそれぞれ直線で結んでいる。
【００８２】
以下では、説明の便宜上、検出特徴点Ｘ１と検出特徴点Ｘ２を端点として有するベクトルを、ベクトル（Ｘ１，Ｘ２）と表し、ベクトル（Ｘ１，Ｘ２）のノルムをノルム（Ｘ１，Ｘ２）と表して説明する。また、以下では、ベクトルのノルムのみが重要であるため、ベクトル（Ｘ１，Ｘ２）＝ベクトル（Ｘ２，Ｘ１）であるとして説明する。このベクトルのノルムはすなわち、検出特徴点Ｘ１と検出特徴点Ｘ２の間の距離を表す。また、以下の説明において、ノルム（Ｘ１，Ｘ２）を算出するために用いたベクトルと称した場合、当該ベクトルは、ノルム（Ｘ１，Ｘ２）を算出する際に内積を行ったベクトル（Ｘ１，Ｘ２）を示すとする。この表記法を用いると、図７に示した４個の検出特徴点Ｃによって、６個のベクトルが定義できる。当該６個のベクトルは、ベクトル（Ｃ７，Ｃ８）と、ベクトル（Ｃ７，Ｃ９）と、ベクトル（Ｃ７，Ｃ１１）と、ベクトル（Ｃ８，Ｃ９）と、ベクトル（Ｃ８，Ｃ１１）と、ベクトル（Ｃ９，Ｃ１１）である。
【００８３】
第１特徴量算出部５３は、これらのベクトルそれぞれのノルムを、それぞれの検出特徴点Ｃ間の距離として算出する。より具体的には、第１特徴量算出部５３は、ノルム（Ｃ７，Ｃ８）と、ノルム（Ｃ７，Ｃ９）と、ノルム（Ｃ７，Ｃ１１）と、ノルム（Ｃ８，Ｃ９）と、ノルム（Ｃ８，Ｃ１１）と、ノルム（Ｃ９，Ｃ１１）のそれぞれを算出する。
【００８４】
第１特徴量算出部５３は、算出したこれら６個のノルムのうちの一部又は全部を第１特徴量として選択する。この一例では、第１特徴量算出部５３は、算出した６個のノルムのうち、最大のノルムを第１特徴量として選択する。図７に示した例では、最大のノルムは、ノルム（Ｃ９，Ｃ１１）である。すなわち、第１特徴量算出部５３は、算出した６個のノルムのうちの最大のノルムがノルム（Ｃ９，Ｃ１１）であることを特定し、特定したノルム（Ｃ９，Ｃ１１）を第１特徴量ＧＦ１として選択する。図７では、ノルム（Ｃ９，Ｃ１１）を、検出特徴点Ｃ９と検出特徴点Ｃ１１の間を結ぶ直線Ｄ１の長さによって表した。
【００８５】
ここで、このような６個のノルムから最大のノルムを特定する処理を、より数学的に説明する。第１特徴量算出部５３は、例えば、ウィンドウＷ内に含まれる４個の検出特徴点Ｃそれぞれの位置を、位置ベクトルＦＰｉ（ｉ＝１〜４）によって表す。この一例において、位置ベクトルＦＰ１は、検出特徴点Ｃ７の位置を示す位置ベクトルである。また、位置ベクトルＦＰ２は、検出特徴点Ｃ８の位置を示す位置ベクトルである。また、位置ベクトルＦＰ３は、検出特徴点Ｃ９の位置を示す位置ベクトルである。また、位置ベクトルＦＰ４は、検出特徴点Ｃ１１の位置を示す位置ベクトルである。
【００８６】
第１特徴量算出部５３は、これら４個の位置ベクトルＦＰｉと、以下に示した式（２）とに基づいて、ウィンドウＷ内に含まれる４個の検出特徴点Ｃのうちの最も距離が離れている２個の検出特徴点Ｃ間を結ぶベクトルのノルム、すなわち当該２個の検出特徴点Ｃ間の距離を算出する。
【００８７】
【数１】
2016218561.tif 000003
【００８８】
上記の式（２）においては、ｊ＝１〜４であり、且つｉ≠ｊである。すなわち、第１特徴量算出部５３は、４個の検出特徴点Ｃのうちの２個の検出特徴点Ｃの全ての組み合わせについて、それぞれの組み合わせ毎に２個の検出特徴点Ｃ間を結ぶベクトルのノルムを算出する。この一例において、第１特徴量算出部５３は、６個のノルムを算出する。そして、第１特徴量算出部５３は、算出した６個のノルムのうちの最大のノルムを、ウィンドウＷ内に含まれる４個の検出特徴点Ｃのうちの最も距離が離れている２個の検出特徴点Ｃ間を結ぶベクトルのノルムとして特定する。第１特徴量算出部５３は、特定したノルム、すなわち最も距離が離れている２個の検出特徴点Ｃ間の距離を、第１特徴量ＧＦ１として選択する。
【００８９】
＜第１特徴量算出部５３が算出する第１特徴量の具体例２＞
第１特徴量の具体例２は、ウィンドウＷ内に含まれる４個の検出特徴点Ｃのうちの最も距離が離れている２個の検出特徴点Ｃ間を結ぶ直線から、他の２個の検出特徴点Ｃのそれぞれまでの最短距離である。ここで、図８を参照し、このような距離の算出処理を視覚的に示す。図８は、ウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例と、具体例２において第１特徴量算出部５３が算出する距離とを示す図である。図８では、図７に示したウィンドウＷ内に含まれる４個の検出特徴点Ｃのうち、最も距離が離れている２個の検出特徴点Ｃを直線Ｄ１によって結んでいる。
【００９０】
また、図８では、図７に示したウィンドウＷ内に含まれる４個の検出特徴点Ｃのうち、最も距離が離れている２個の検出特徴点Ｃではない他の２個の検出特徴点Ｃ（検出特徴点Ｃ７、検出特徴点Ｃ８）のそれぞれから、直線Ｄ１に対して垂線を引いている。ある直線Ｙから、直線Ｙ上には存在していない点までの最短距離は、当該点から直線Ｙまでの垂線の長さとなる。すなわち、第１特徴量算出部５３は、図８に示した直線Ｄ１に対して検出特徴点Ｃ７及び検出特徴点Ｃ８からそれぞれ引いた垂線の長さを算出する。
【００９１】
第１特徴量算出部５３は、このようにして算出された垂線の長さのうちの一部又は全部を第１特徴量として選択する。この一例において、第１特徴量算出部５３は、算出された垂線の長さのうち、最も長い垂線の長さを第１特徴量として選択する。図８に示した例では、最も長い垂線は、直線Ｄ２である。第１特徴量算出部５３は、直線Ｄ２の長さを第１特徴量ＧＦ２として選択する。
【００９２】
＜第１特徴量算出部５３が算出する第１特徴量の具体例３＞
第１特徴量の具体例３は、ウィンドウＷ内に含まれる４個の検出特徴点Ｃのうちの３個の検出特徴点Ｃの全てを含む平面から、残りの１個の検出特徴点Ｃまでの最短距離である。ここで、図９を参照し、このような距離の算出処理を視覚的に示す。図９は、図７に示したウィンドウＷ内に含まれる４個の検出特徴点Ｃの位置関係の一例と、具体例３において第１特徴量算出部５３が算出する距離とを示す図である。図９では、ウィンドウＷ内に含まれる４個の検出特徴点Ｃのうち、直線Ｄ１の両端である検出特徴点Ｃ９及び検出特徴点Ｃ１１と、直線Ｄ２の起点である検出特徴点Ｃ７とを含む平面Ｍに対して、残りの１個の検出特徴点Ｃ８から垂線Ｄ３を引いている。
【００９３】
ここで、平面Ｍから、平面Ｍ上には存在していない点までの最短距離は、当該点から平面Ｍまでの垂線の長さとなる。すなわち、第１特徴量算出部５３は、図９に示した垂線Ｄ３の長さを算出する。第１特徴量算出部５３は、このようにして算出された垂線Ｄ３の長さを第１特徴量ＧＦ３として選択する。
【００９４】
以上のように、この一例における第１特徴量算出部５３は、直線Ｄ１の長さと、直線Ｄ２の長さと、直線Ｄ３の長さとを算出し、算出したこれらの距離のそれぞれを重心特徴点Ｇの第１特徴量ＧＦ１〜第１特徴量ＧＦ３として選択する。すなわち、重心特徴点には、３つの第１特徴量ＧＦ１〜第１特徴量ＧＦ３のそれぞれが対応付けられる。なお、第１特徴量算出部５３は、直線Ｄ１の長さと、直線Ｄ２の長さと、直線Ｄ３の長さとのうちの一部を第１特徴量として選択する構成であってもよい。そして、第１特徴量算出部５３は、このような第１特徴量の算出及び選択を、ステップＳ１３５において特徴点検出部５２が特定した全ての重心特徴点毎に行う。
【００９５】
図４に戻る。ステップＳ１４０の処理が実行された後、第２特徴量算出部５４は、ステップＳ１３０において特徴点検出部５２が検出した複数の検出特徴点毎に、３次元特徴量を第２特徴量として算出する（ステップＳ１５０）。以下では、一例として、図６〜図９に示した４つの特徴点Ｃ（特徴点Ｃ７、特徴点Ｃ８、特徴点Ｃ９、特徴点Ｃ１１）毎に第２特徴量算出部５４が算出した第２特徴量を、第２特徴量ＦＣ７、第２特徴量ＦＣ８、第２特徴量ＦＣ９、第２特徴量ＦＣ１１と称して説明する。なお、ステップＳ１５０の処理は、ステップＳ１４０の処理と逆の順序で実行される構成であってもよく、ステップＳ１４０の処理と並列に実行される構成であってもよい。
【００９６】
次に、第２特徴量算出部５４は、ステップＳ１３５において特徴点検出部５２が特定した全ての重心特徴点毎に、重心特徴点の第１特徴量と、当該重心特徴点を特定するために用いた４個の検出特徴点Ｃそれぞれの第２特徴量とに基づいて、当該重心特徴点に対応付けられる重心点特徴量を生成する（ステップＳ１５５）。例えば、図６に示した重心特徴点Ｇの重心点特徴量は、以下のようなベクトル量（配列記述子）として生成される。
【００９７】
（重心特徴点Ｇの重心特徴量）＝（第１特徴量ＧＦ１，第１特徴量ＧＦ２，第１特徴量ＧＦ３，第２特徴量ＦＣ７，第２特徴量ＦＣ８，第２特徴量ＦＣ９，第２特徴量ＦＣ１１）  ・・・（３）
【００９８】
次に、対応点群検出部５６は、ステップＳ１３５において３次元点群から特定した重心特徴点と、３次元モデル点群から予め特定しておいた重心特徴点とに基づいて、当該３次元点群の全部から、３次元モデル点群に対応する部分点群を検出する（ステップＳ１６０）。
【００９９】
ここで、ステップＳ１６０の処理について説明する。以下では、説明の便宜上、ステップＳ１３５において３次元点群から特定した重心特徴点を対象重心特徴点と称し、３次元モデル点群から予め特定しておいた重心特徴点を参照重心特徴点と称して説明する。例えば、対応点群検出部５６は、未選択の対象重心特徴点を１つずつ選択する。対応点群検出部５６は、選択した対象重心特徴点毎に、対象重心特徴点に対応する１以上の参照重心特徴点の候補を検出する。
【０１００】
より具体的には、対応点群検出部５６は、選択した対象重心特徴点に対応付けられた重心点特徴量である対象重心点特徴量と、参照重心特徴点に対応付けられた参照重心点特徴量との差を算出する。対象重心点特徴量と、参照重心点特徴量とは、ともにベクトル量であるため、これらの差もベクトル量である。対応点群検出部５６は、算出した差のノルムを算出する。そして、対応点群検出部５６は、当該ノルムが所定の閾値未満であるか否かの判定を行う。
【０１０１】
この判定において、対応点群検出部５６は、以下の式（４）を満たす参照重心特徴点、すなわち当該ノルムが所定の閾値未満となる参照重心特徴点を、対象重心特徴点に対応する参照重心特徴点として全て検出する。なお、対応点群検出部５６は、以下の式（４）を満たす参照重心特徴点の一部を、対象重心特徴点に対応する参照重心特徴点として検出する構成であってもよい。また、以下に示した式（４）では、対象重心特徴量であるベクトルをＧＭ１と表し、参照重心特徴点であるベクトルをＧＭ２と表し、所定の閾値をεと表した。
【０１０２】
【数２】
2016218561.tif 000004
【０１０３】
ここで、対応点群検出部５６は、対応する参照重心特徴点が検出されなかった対象重心特徴点を、３次元モデル点群に対応する部分点群を検出する処理において無視する。対応点群検出部５６は、対応する参照重心特徴点が検出された１以上の対象重心特徴点と、１以上の当該対象重心特徴点のそれぞれに対応する１以上の参照重心特徴点とに基づいて、対象重心特徴点と参照重心特徴点のマッチングを行い、３次元点群から３次元モデル点群に対応する部分点群を検出する。なお、対応点群検出部５６は、３次元点群から３次元モデル点群に対応する部分点群が検出されない場合、当該部分点群が検出されないことを示す情報を生成する。
【０１０４】
対応点群検出部５６は、当該マッチングにおいて、ＲＡＮＳＡＣ等を用いることにより、対応する参照重心特徴点が検出された対象重心特徴点に対応する１以上の参照重心特徴点のうち、当該対象重心特徴点に対応することが一番尤もらしい参照重心特徴点を選択する。そして、対応点群検出部５６は、選択した参照重心特徴点と、当該参照重心特徴点に対応する対象重心特徴点とに基づいて回転変換行列を生成し、生成した回転変換行列を用いて３次元点群から３次元モデル点群に対応する部分点群を検出する。なお、対応点群検出部５６は、３次元点群から３次元モデル点群に対応する部分点群が検出されない場合、当該部分点群が検出されないことを示す情報を生成する。
【０１０５】
次に、位置姿勢算出部５８は、ステップＳ１６０において３次元点群から３次元モデル点群に対応する部分点群を対応点群検出部５６が検出したか否かを判定する（ステップＳ１７０）。当該部分点群を対応点群検出部５６が検出していないと判定した場合、位置姿勢算出部５８は、対応点群検出部５６が生成した当該部分点群が検出されないことを示す情報を、エラー情報として表示部３５に表示（出力）する（ステップＳ２００）。一方、当該部分点群を対応点群検出部５６が検出したと判定した場合、位置姿勢算出部５８は、当該部分点群に基づいて対象物Ｏの位置姿勢を、把持対象の位置姿勢として算出する（ステップＳ１８０）。
【０１０６】
次に、ロボット制御部４６は、ステップＳ１８０において算出した把持対象の位置姿勢に基づいて、第１エンドエフェクターＥ１に把持対象を把持させる。また、ロボット制御部４６は、記憶部３２から給材領域Ａの位置を示す情報を読み込む。ロボット制御部４６は、読み込んだ給材領域Ａの位置を示す情報に基づいて第１アームを動作させることにより、第１エンドエフェクターＥ１が把持した把持対象を、給材領域Ａに給材する（ステップＳ１９０）。
【０１０７】
以上のように、ロボットシステム１では、ロボット２０（又は制御装置３０）が、対象物Ｏの３次元情報（例えば、３次元点群の情報）から得た２つ以上の点（例えば、検出特徴点）の幾何学的関係に基づいた第１特徴量により、対象物Ｏの位置及び姿勢を求める。これにより、ロボット２０は、第１特徴量に基づいて対象物Ｏの位置及び姿勢を高い精度で導出することができる。なお、対象物Ｏの３次元情報は、３次元点群に代えて、対象物Ｏの３次元位置情報を表す他の情報であってもよい。また、対象物Ｏの３次元情報から得た２以上の点は、検出特徴点に代えて、例えば、対象物Ｏの３次元位置情報を表す各位置の座標を示す点や３次元点群の各点等の対象物Ｏの３次元形状に対応付けられた他の点であってもよい。
【０１０８】
＜第１特徴量算出部５３が算出する第１特徴量の具体例１の変形例＞
第１特徴量算出部５３が算出する第１特徴量の具体例１の変形例は、第１特徴量算出部５３が具体例１において算出した６個のノルムのうちの一部又は全部である。
【０１０９】
ここで、再びウィンドウＷ内に含まれる４個の検出特徴点Ｃを例に挙げて説明する。例えば、この変形例において、第１特徴量算出部５３は、具体例１において算出した６個のノルムのうちの最大のノルムを、第１ノルムとして特定する。この一例において、第１特徴量算出部５３は、ノルム（Ｃ９，Ｃ１１）を第１ノルムとして特定する。この第１ノルムであるノルム（Ｃ９，Ｃ１１）を算出するために用いられたベクトルは、ベクトルＣ（Ｃ９，Ｃ１１）である。第１特徴量算出部５３は、このベクトルの端点である検出特徴点Ｃ９及び検出特徴点Ｃ１１とのうちのいずれか一方を検出特徴点Ａ１として選択し、他方を検出特徴点Ａ２として選択する。
【０１１０】
この選択のため、第１特徴量算出部５３は、第１ノルムとして特定したノルム（Ｃ９，Ｃ１１）を算出するために用いられたベクトルの端点である検出特徴点Ｃ９及び検出特徴点Ｃ１１のそれぞれを含む他のベクトルを全て抽出する。この一例において、第１特徴量算出部５３は、当該ベクトルとして、ベクトル（Ｃ７，Ｃ９）と、ベクトル（Ｃ８，Ｃ９）と、ベクトル（Ｃ７，Ｃ１１）と、ベクトル（Ｃ８，Ｃ１１）の４つのベクトルを抽出する。そして、これらのベクトルのノルムを算出し、算出したノルムのうちの最大のノルムを第２ノルムとして特定する。
【０１１１】
ここで、一例として、算出したノルムのうちの最大のノルムがノルム（Ｃ７，Ｃ９）である場合について説明する。すなわち、第１特徴量算出部５３は、ノルム（Ｃ７，Ｃ９）を第２ノルムとして特定する。そして、第１特徴量算出部５３は、第１ノルムを算出するために用いられるベクトルと、第２ノルムを算出するために用いられるベクトルの交点に存在する検出特徴点を、検出特徴点Ａ１として特定する。この一例において、第１特徴量算出部５３は、検出特徴点Ｃ９を検出特徴点Ａ１として特定する。また、検出特徴点Ａ１とともに第１ノルムを算出するためのベクトルの端点となっている検出特徴点Ｃ１１を検出特徴点Ａ２として特定する。
【０１１２】
また、第１特徴量算出部５３は、第２ノルムを算出するために用いられるベクトルの端点であって、検出特徴点Ａ１として特定された検出特徴点Ｃ９ではない方の検出特徴点Ｃ７を、検出特徴点Ａ３として特定する。検出特徴点Ｃの組み合わせに含まれる検出特徴点Ｃの所定数が５以上の場合、第１特徴量算出部５３は、検出特徴点Ａ１から遠い検出特徴点Ｃの順に、検出特徴点Ａ３、検出特徴点Ａ４、…というように順番に特定する。この一例において、検出特徴点Ｃの組み合わせに含まれる検出特徴点Ｃの所定数が４であるため、第１特徴量算出部５３は、検出特徴点Ｃ８を検出特徴点Ａ４として特定する。
【０１１３】
第１特徴量算出部５３は、特定した検出特徴点Ａ１〜検出特徴点Ａ４に基づいて、６個のノルムを算出する。特定した検出特徴点Ａ１〜検出特徴点Ａ４に基づいて第１特徴量算出部５３が算出する６個のノルムは、ノルム（Ａ１，Ａ２）と、ノルム（Ａ１，Ａ３）と、ノルム（Ａ１，Ａ４）と、ノルム（Ａ２，Ａ３）と、ノルム（Ａ２，Ａ４）と、ノルム（Ａ３，Ａ４）である。第１特徴量算出部５３は、算出したこれらのノルムを、以下に示したように、第１特徴量ＧＦ１−１〜第１特徴量ＧＦ１−６として選択する。
【０１１４】
（第１特徴量ＧＦ１−１）＝ノルム（Ａ１，Ａ２）
（第１特徴量ＧＦ１−２）＝ノルム（Ａ１，Ａ３）
（第１特徴量ＧＦ１−３）＝ノルム（Ａ１，Ａ４）
（第１特徴量ＧＦ１−４）＝ノルム（Ａ２，Ａ３）
（第１特徴量ＧＦ１−５）＝ノルム（Ａ２，Ａ４）
（第１特徴量ＧＦ１−６）＝ノルム（Ａ３，Ａ４）
【０１１５】
以上のようにして、第１特徴量算出部５３は、第１特徴量の具体例１において算出した６個のノルムの全部を第１特徴量として選択する。なお、この具体例１の変形例において説明した方法では、算出した２以上のノルムが同じ値となってしまう場合がある。例えば、これは、ノルム（Ａ１，Ａ３）＝ノルム（Ａ１，Ａ４）という場合である。このような場合、これらの同じ値となる２以上のノルムは、３次元点群から３次元モデル点群に対応する部分点群を検出する際のノイズとなる場合がある。
【０１１６】
＜２以上のノルムが同じ値となった場合の処理例＞
以下、２以上のノルムが同じ値となった場合の処理例について説明する。
まず、図１０を参照して、第１特徴量算出部５３が算出した２以上のノルムが同じ値となってしまう状況について説明する。図１０は、第１特徴量算出部５３が算出した２以上のノルムが同じ値となってしまう状況の一例を示す図である。図１０に示した４個の検出特徴点は、すでに第１特徴量算出部５３によって特定された検出特徴点Ａ１及び検出特徴点Ａ２それぞれと、まだ第１特徴量算出部５３によって検出特徴点Ａ３及び検出特徴点Ａ４として特定されていない検出特徴点Ｐ１及び検出特徴点Ｐ２である。また、図１０において、第１特徴量算出部５３が特定した第１ノルムを算出するために用いられたベクトルは、検出特徴点Ａ１と検出特徴点Ａ２を結ぶ線分によって表されたベクトルＶ１ある。
【０１１７】
ここで、図１０では、検出特徴点Ｐ１と検出特徴点Ｐ２はともに、検出特徴点Ａ１と検出特徴点Ａ２を結ぶ線分上に中心を有する円Ｒの円周上に位置している。すなわち、検出特徴点Ａ１から検出特徴点Ｐ１及び検出特徴点Ｐ２それぞれまでの距離は、同じ距離である。この場合、第１特徴量算出部５３は、検出特徴点Ａ１から検出特徴点Ｐ１及び検出特徴点Ｐ２それぞれまでの距離が、検出特徴点Ａ２から検出特徴点Ｐ１及び検出特徴点Ｐ２それぞれまでの距離より長いことを特定することができるが、検出特徴点Ａ１から検出特徴点Ｐ１及び検出特徴点Ｐ２それぞれまでの距離に基づいて第２ノルムを特定することができない。すなわち、検出特徴点Ｐ１と検出特徴点Ｐ２のいずれが検出特徴点Ａ３であるかを特定することができない。
【０１１８】
この場合、第１特徴量算出部５３は、ランダムに検出特徴点Ｐ１と検出特徴点Ｐ２のいずれか一方を検出特徴点Ａ３として特定し、他方を検出特徴点Ａ４として特定する構成であってもよい。また、第１特徴量算出部５３は、検出特徴点Ｐ１と検出特徴点Ｐ２のうち、計算に用いられる順序が先の方をＡ３として特定し、他方を検出特徴点Ａ４として特定する構成であってもよい。しかし、前述したように、このようにして特定した検出特徴点Ａ３及び検出特徴点Ａ４に基づいて６個のノルムを算出した場合、算出されたノルムは、３次元点群から３次元モデル点群に対応する部分点群を検出する際のノイズとなってしまう場合がある。
【０１１９】
そこで、第１特徴量算出部５３は、図１１に示したように、重心特徴点を用いて検出特徴点Ｐ１と検出特徴点Ｐ２を区別する構成にしてもよい。図１１は、重心特徴点を用いて検出特徴点Ｐ１と検出特徴点Ｐ２を区別する方法の一例を説明する図である。図１１において、検出特徴点Ａ１と、検出特徴点Ａ２と、検出特徴点Ｐ１と、検出特徴点Ｐ２とのそれぞれを結ぶ直線によって形成される三角錐の重心の位置を示す重心特徴点は、重心特徴点Ｇ１である。また、図１１では、検出特徴点Ａ１及び重心特徴点Ｇ１を端点として有するベクトルＶ４を、検出特徴点Ａ１と重心特徴点Ｇ１を結ぶ線分によって表している。
【０１２０】
ここで、第１特徴量算出部５３は、第１ノルムを算出するために用いられたベクトルＶ１と当該ベクトルＶ４との外積を行うことにより得られるベクトルＶ１×Ｖ４の方向を正の方向とし、ベクトルＶ１×Ｖ４の方向とは逆の方向を負の方向として特定する。そして、第１特徴量算出部５３は、検出特徴点Ｐ３と検出特徴点Ｐ４のそれぞれが、ベクトルＶ１とベクトルＶ４によって張られる面を境界として、特定した正の方向と負の方向とのいずれに属しているかを検出する。図１１に示した例では、検出特徴点Ｐ３は、正の方向に属し、検出特徴点Ｐ４は、負の方向に属している。これにより、第１特徴量算出部５３は、ノルム（Ａ１，Ｐ１）を正の値とし、ノルム（Ａ１，Ｐ２）を負の値とする。その結果、第１特徴量算出部５３は、検出特徴点Ｐ１を検出特徴点Ａ３として特定し、検出特徴点Ｐ２を検出特徴点Ａ４として特定することができる。なお、第１特徴量算出部５３は、重心特徴点Ｇ１の代わりに、他の検出特徴点Ｃを用いて正の方向と負の方向を特定する構成であってもよい。
【０１２１】
なお、２以上のノルムが同じ値となる場合は、図１０に示した例以外にも存在する。例えば、図１０における検出特徴点Ａ１を中心とする同心球面上に検出特徴点Ｐ１及び検出特徴点Ｐ２が存在する場合は、ノルム（Ａ１，Ｐ１）＝ノルム（Ａ１，Ｐ２）となるが、ノルム（Ａ２，Ｐ１）≠ノルム（Ａ２，Ｐ２）である。このような場合、第１特徴量算出部５３は、例えば、ノルム（Ａ１，Ｐ１）とノルム（Ａ２，Ｐ１）との和と、ノルム（Ａ１，Ａ４）とノルム（Ａ２，Ａ４）との和とのうちいずれが大きな値かを判定する。
【０１２２】
第１特徴量算出部５３は、ノルム（Ａ１，Ｐ１）とノルム（Ａ２，Ｐ１）との和の方が大きいと判定した場合、検出特徴点Ｐ１を検出特徴点Ａ３として特定し、検出特徴点Ｐ２を検出特徴点Ａ４として特定する。一方、第１特徴量算出部５３は、ノルム（Ａ１，Ｐ２）とノルム（Ａ２，Ｐ２）との和の方が大きいと判定した場合、検出特徴点Ｐ２を検出特徴点Ａ３として特定し、検出特徴点Ｐ１を検出特徴点Ａ４として特定する。
【０１２３】
以上のように、２以上のノルムが同じ値となる場合、第１特徴量算出部５３は、同じ値のノルムを区別する。なお、第１特徴量算出部５３は、上記において説明したルールに代えて、他のルールに従って同じ値のノルムを区別する構成であってもよい。
【０１２４】
＜部分点群を検出する精度を向上させるため適した第１特徴量の選択方法＞
以下では、１以上の幾何学的特徴量から第１特徴量を選択する選択方法のうち、３次元点群から３次元モデル点群に対応する部分点群を検出する精度を向上させるのに適している第１特徴量の選択方法について説明する。
【０１２５】
１以上の幾何学的特徴量の組み合わせのうちのいずれの組み合わせが３次元点群から３次元モデル点群に対応する部分点群を検出する精度を向上させるのに適している第１特徴量となり得るのかは、３次元点群毎に異なる。そのため、３次元モデル点群毎に、シミュレーションを行うことにより、１以上の幾何学的特徴量の組み合わせのうちのいずれの組み合わせが３次元点群から３次元モデル点群に対応する部分点群を検出する精度を向上させるのに適している第１特徴量となり得るのかを調べることにより、当該第１特徴量となり得る幾何学的特徴量の組み合わせを得ることができる。
【０１２６】
このようなシミュレーションは、例えば、以下に示した式（５）によって表されるコスト関数Ｊを用いて行うことができる。
【０１２７】
【数３】
2016218561.tif 000005
【０１２８】
上記に示した式（５）において、係数ｗｃ及び係数ｗｅは、０ではない正の値の重みである。また、関数ｆｃは、３次元点群から特定された重心特徴点と、３次元モデル点群から特定された重心特徴点とのマッチングの結果の正答率の数Ｎｃの関数であり、単調減少関数である。一方、関数ｆｅは、当該マッチングの結果の誤差εｉの総和の関数であり、単調増加関数である。このようなコスト関数Ｊの最も簡単な例は、以下に示した式（６）である。
【０１２９】
【数４】
2016218561.tif 000006
【０１３０】
上記のコスト関数Ｊを最小にする１以上の幾何学的特徴量の組み合わせが、３次元点群から３次元モデル点群に対応する部分点群を検出する精度を向上させるのに適した幾何学的特徴量の組み合わせである。制御部３６は、このような組み合わせを第１特徴量として選択することにより、３次元点群から３次元モデル点群に対応する部分点群を検出する精度を向上させることができる。
【０１３１】
なお、３次元点群から３次元モデル点群に対応する部分点群を検出する精度を向上させるのに適した幾何学的特徴量の組み合わせを得るため、４個の検出特徴点Ｃの幾何学的関係に基づいて定義可能な１以上の幾何学的特徴量のうちの値のばらつきを示す指標が所定値以上の幾何学的特徴量を選択することも可能である。
【０１３２】
ここで、ある幾何学的特徴量Ｚの値のばらつきを示す指標とは、例えば、複数の検出特徴点のうちの４個の検出特徴点の全ての組み合わせ毎に算出される幾何学的特徴量Ｚの分散のことを示す。なお、幾何学的特徴量のばらつきを示す指標は、幾何学的特徴量の分散に代えて、幾何学的特徴量のばらつきを示す他の統計量であってもよい。この分散が所定値以上である幾何学的特徴量は、複数の検出特徴点のうちの４個の検出特徴点の全ての組み合わせ毎に特徴的な値であることを示している。一方、この分散が所定値未満である幾何学的特徴量は、複数の検出特徴点のうちの４個の検出特徴点の全ての組み合わせ毎にほぼ変わらない値、すなわち特徴的ではない値であることを示している。従って、４個の検出特徴点Ｃの幾何学的関係に基づいて定義可能な１以上の幾何学的特徴量のうちの値のばらつきを示す指標が所定値以上の幾何学的特徴量を選択することにより、３次元点群から３次元モデル点群に対応する部分点群を検出する精度を向上させるのに適した幾何学的特徴量の組み合わせを得ることができる。
【０１３３】
以上説明したように、第１実施形態におけるロボット２０は、対象物の３次元情報から得た２つ以上の点の幾何学的関係に基づいた第１特徴量により、対象物Ｏの位置姿勢を求める。これにより、ロボット２０は、対象物Ｏの位置姿勢を高い精度で導出することができる。
【０１３４】
また、ロボット２０は、対象物Ｏの３次元情報である３次元点群に含まれる２つ以上の点の幾何学的関係に基づいた第１特徴量により、対象物Ｏの位置姿勢を求める。これにより、ロボット２０は、対象物Ｏの３次元情報である３次元点群に含まれる２つ以上の点の幾何学的関係に基づいて、対象物Ｏの３次元位置姿勢を高い精度で導出することができる。
【０１３５】
また、ロボット２０は、対象物Ｏの３次元情報である３次元点群から得た２つ以上の検出特徴点の幾何学的関係に基づいた第１特徴量により、対象物Ｏの位置姿勢を求める。これにより、ロボット２０は、２つ以上の検出特徴点の幾何学的関係に基づいて、対象物Ｏの３次元位置姿勢を高い精度で導出することができる。
【０１３６】
また、ロボット２０は、対象物Ｏの３次元情報である３次元点群から得た２つ以上の検出特徴点のうちの２点間の距離を含む第１特徴量により、対象物Ｏの位置姿勢を求める。これにより、ロボット２０は、対象物Ｏの３次元情報から得た２つ以上の検出特徴点のうちの２点間の距離を含む第１特徴量に基づいて、対象物Ｏの位置姿勢を高い精度で導出することができる。
【０１３７】
また、ロボット２０は、対象物Ｏの３次元情報である３次元点群から得た３つ以上の点のうちの２点間を結ぶ線分に基づいて形成される角度を含む第１特徴量により、対象物Ｏの位置姿勢を求める。これにより、ロボット２０は、当該３つ以上の点のうちの２点間を結ぶ線分に基づいて形成される角度を含む第１特徴量に基づいて、対象物の位置姿勢を高い精度で導出することができる。
【０１３８】
また、ロボット２０は、対象物Ｏの３次元情報から得た２つ以上の点の組み合わせ毎に算出された２以上の幾何学的特徴量のうち、当該組み合わせ毎の幾何学的特徴量のばらつきを示す指標が所定値以上である幾何学的特徴量を第１特徴量に含める。これにより、ロボット２０は、ばらつきを示す指標が所定値以上である幾何学的特徴量を含む第１特徴量に基づいて、対象物Ｏの位置姿勢をより高い精度で導出することができる。
【０１３９】
また、ロボット２０は、第１特徴量と、対象物Ｏの３次元情報から得た２つ以上の点毎に算出される第２特徴量とにより対象物Ｏの位置姿勢を求める。これにより、ロボット２０は、第１特徴量のみに基づいて対象物Ｏの位置姿勢を求める場合と比較して、対象物Ｏの位置姿勢をより高い精度で導出することができる。
【０１４０】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１４１】
また、以上に説明した装置（例えば、ロボットシステム１の制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１４２】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１４３】
１１  第１力センサー、１２  第２力センサー、２０  ロボット、２１  第１撮像部、２２  第２撮像部、２３  第３撮像部、２４  第４撮像部、３０  制御装置、３１  ＣＰＵ、３２  記憶部、３３  入力受付部、３４  通信部、３５  表示部、３６  制御部、４０  撮像制御部、４２  画像取得部、４４  ３次元計測部、４６  ロボット制御部、５０  点群情報生成部、５２  特徴点検出部、５３  第１特徴量算出部、５４  第２特徴量算出部、５６  対応点群検出部、５８  位置姿勢算出部、３２１  モデル記憶部
【図１】
2016218561.tif 000007
【図２】
2016218561.tif 000008
【図３】
2016218561.tif 000009
【図４】
2016218561.tif 000010
【図５】
2016218561.tif 000011
【図６】
2016218561.tif 000012
【図７】
2016218561.tif 000013
【図８】
2016218561.tif 000014
【図９】
2016218561.tif 000015
【図１０】
2016218561.tif 000016
【図１１】
2016218561.tif 000017