(57)【要約】【課題】複数の対象物の状態が連係して変化可能な制御システムを提供する。【解決手段】制御装置は、撮像装置によって撮像された実画像を取得する第１処理と、ＣＧ動画から目標フレームを選択する第２処理と、実画像と目標フレームとに基づいて第１〜第Ｎのロボットの各々を制御する第３処理とを行なう。制御装置は、第３処理において、第ｊの対象物に対応する変化情報に基づいて、実画像上の第ｊの対象物の状態を目標フレーム上の第ｊの対象物のモデルの状態に近づけるための第ｊのロボットの制御量を算出し、算出した制御量に従って第ｊのロボットを制御する。【選択図】図１
2020015102.tif 000002
【特許請求の範囲】
【請求項１】
第１〜第Ｎのロボットと、
第１〜第Ｎの対象物を撮像するための撮像装置と、
前記第１〜第Ｎのロボットを制御するための制御装置とを備える制御システムであって、
Ｎは２以上の整数であり、
第ｉのロボットは、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボットは、前記第Ｎの対象物および前記撮像装置の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置の他方は、定位置に設置され、
前記制御装置は、前記第１〜第Ｎの対象物の各々について変化情報を取得し、
第ｊの対象物に対応する前記変化情報は、第ｊのロボットの制御量と、前記撮像装置の画像上における前記第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御装置は、
前記撮像装置によって撮像された実画像を取得する第１処理と、
前記第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第２処理と、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボットの各々を制御する第３処理とを行ない、
前記制御装置は、前記第３処理において、前記第ｊの対象物に対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物のモデルの状態に近づけるための前記第ｊのロボットの制御量を算出し、算出した制御量に従って前記第ｊのロボットを制御する、制御システム。
【請求項２】
前記ＣＧ動画は、前記第１〜第Ｎの対象物の各々の設計データに基づいて作成され、
前記ＣＧ動画は、前記第１の対象物と第２〜第Ｎの対象物のうちの少なくとも１つの対象物とが離れた状態を示すフレームから前記第１の対象物と前記少なくとも１つの対象物とが接合した状態を示すフレームまでを含み、
前記制御装置は、前記第３処理において、前記設計データに対する前記第１の対象物および前記少なくとも１つの対象物の製造誤差に応じた調整量だけ前記第１のロボットの制御量を調整し、調整後の制御量に従って前記第１のロボットを制御する、請求項１に記載の制御システム。
【請求項３】
前記制御システムは、前記第１の対象物および前記少なくとも１つの対象物の一方が他方から受ける力を検知する力覚センサを含み、
前記制御装置は、前記力覚センサによって検知される力が極小となる前記第１の対象物の状態を探索し、探索された前記第１の対象物の状態に基づいて前記調整量を決定する、請求項２に記載の制御システム。
【請求項４】
前記制御装置は、入力装置と接続され、前記入力装置から前記調整量を取得する、請求項２に記載の制御システム。
【請求項５】
前記ＣＧ動画は、前記第１の対象物と第２〜第Ｎの対象物のうちの少なくとも１つの対象物とが離れた状態を示すフレームから前記第１の対象物と前記少なくとも１つの対象物とが接合した状態を示すフレームまでを含み、
前記制御システムは、前記第１の対象物および前記少なくとも１つの対象物の一方が他方から受ける力を検知する力覚センサを含み、
前記制御装置は、
前記第１処理から前記第３処理を繰り返す第１モードを行ない、
前記第１モードにおける前記第３処理において、前記第１のロボットの制御量を調整して、前記力覚センサによって検知される力が極小となる調整量を探索し、
探索された前記調整量だけ前記第１のロボットの制御量を調整したときに前記撮像装置によって撮像された動画を基準動画として取得し、
前記第１処理と、前記ＣＧ動画の代わりに前記基準動画から前記目標フレームを選択する第４処理と、前記第３処理とを繰り返す第２モードを行なう、請求項１に記載の制御システム。
【請求項６】
第１〜第Ｎの対象物を撮像するための撮像装置を用いて、第１〜第Ｎのロボットを制御する制御方法であって、
Ｎは２以上の整数であり、
第ｉのロボットは、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボットは、前記第Ｎの対象物および前記撮像装置の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置の他方は、定位置に設置され、
前記制御方法は、
前記第１〜第Ｎのロボットの各々について変化情報を取得する第１ステップを備え、
第ｊのロボットに対応する前記変化情報は、前記第ｊのロボットの制御量と、前記撮像装置の画像上における第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御方法は、
前記撮像装置によって撮像された実画像を取得する第２ステップと、
前記第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第３ステップと、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボットの各々を制御する第４ステップとをさらに備え、
前記第４ステップは、前記第ｊのロボットに対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物の状態に近づけるための制御量を算出し、算出した制御量に従って前記第ｊのロボットを制御するステップを含む、制御方法。
【請求項７】
第１〜第Ｎの対象物を撮像するための撮像装置を用いて、第１〜第Ｎのロボットを制御する制御方法をコンピュータに実行させるためのプログラムであって、
Ｎは２以上の整数であり、
第ｉのロボットは、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボットは、前記第Ｎの対象物および前記撮像装置の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置の他方は、定位置に設置され、
前記制御方法は、
前記第１〜第Ｎのロボットの各々について変化情報を取得する第１ステップを備え、
第ｊのロボットに対応する前記変化情報は、前記第ｊのロボットの制御量と、前記撮像装置の画像上における第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御方法は、
前記撮像装置によって撮像された実画像を取得する第２ステップと、
前記第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第３ステップと、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボットの各々を制御する第４ステップとをさらに備え、
前記第４ステップは、前記第ｊのロボットに対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物の状態に近づけるための制御量を算出し、算出した制御量に従って前記第ｊのロボットを制御するステップを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ロボットを制御する制御システム、制御方法およびプログラムに関する。
【背景技術】
【０００２】
「橋本浩一、「村田敦、他３名、「視覚サーボによる高精度位置決め手法の開発」、ＳＥＩテクニカルレビュー、2009年7月、第175号、p. 98-102」（非特許文献１）には、視覚サーボを利用し、ロボットアームを目標位置に導く技術が開示されている。非特許文献１に開示されたシステムは、ロボットアームに取り付けられたカメラによって、コネクタを撮像し、カメラの画像に基づいて、ロボットハンドに支持された端子をコネクタに挿入する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】村田敦、他３名、「視覚サーボによる高精度位置決め手法の開発」、ＳＥＩテクニカルレビュー、2009年7月、第175号、p. 98-102
【非特許文献２】足立、「モデル予測制御の基礎」、日本ロボット学会誌、2014年7月、第32巻、第6号、p. 9-12
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１に記載の技術は、ロボットハンドに支持された端子とカメラとの相対位置が一定であることを前提としている。そのため、ロボットハンドに支持された端子とカメラとの相対位置関係にずれが生じると、端子の状態とコネクタの状態との連係がくずれ、端子をコネクタに挿入できなくなる可能性がある。
【０００５】
本発明は、上記の問題を鑑みてなされたものであり、その目的は、複数の対象物の状態が連係して変化可能な制御システム、制御方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
本開示の一例によれば、制御システムは、第１〜第Ｎのロボットと、第１〜第Ｎの対象物を撮像するための撮像装置と、第１〜第Ｎのロボットを制御するための制御装置とを備える。Ｎは２以上の整数である。第ｉのロボットは、第ｉの対象物の状態を変化させる。ｉは１〜Ｎ−１の整数である。第Ｎのロボットは、第Ｎの対象物および撮像装置の一方の状態を変化させる。第Ｎの対象物および撮像装置の他方は、定位置に設置される。制御装置は、第１〜第Ｎの対象物の各々について変化情報を取得する。第ｊの対象物に対応する変化情報は、第ｊのロボットの制御量と、撮像装置の画像上における第ｊの対象物の状態の変化量との関係を示する。ｊは１〜Ｎの整数である。制御装置は、撮像装置によって撮像された実画像を取得する第１処理と、第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第２処理と、実画像と目標フレームとに基づいて第１〜第Ｎのロボットの各々を制御する第３処理とを行なう。制御装置は、第３処理において、第ｊの対象物に対応する変化情報に基づいて、実画像上の第ｊの対象物の状態を目標フレーム上の第ｊの対象物のモデルの状態に近づけるための第ｊのロボットの制御量を算出し、算出した制御量に従って第ｊのロボットを制御する。
【０００７】
この開示によれば、実画像と目標フレームと変化情報とに基づいて、実画像上の対象物の状態を目標フレーム上の対象物のモデルの状態まで変化させることができる。これにより、第１〜第Ｎの対象物の状態は、ＣＧ動画に従って連係して変化する。
【０００８】
上述の開示において、ＣＧ動画は、第１〜第Ｎの対象物の各々の設計データに基づいて作成される。ＣＧ動画は、第１の対象物と第２〜第Ｎの対象物のうちの少なくとも１つの対象物とが離れた状態を示すフレームから第１の対象物と少なくとも１つの対象物とが接合した状態を示すフレームまでを含む。制御装置は、第３処理において、設計データに対する第１の対象物および少なくとも１つの対象物の製造誤差に応じた調整量だけ第１のロボットの制御量を調整し、調整後の制御量に従って第１のロボットを制御する。
【０００９】
この開示によれば、第１の対象物および少なくとも１つの対象物に製造誤差が生じていたとしても、第１の対象物と少なくとも１つの対象物とを接合させることができる。
【００１０】
上述の開示において、制御システムは、第１の対象物および少なくとも１つの対象物の一方が他方から受ける力を検知する力覚センサを含む。制御装置は、力覚センサによって検知される力が極小となる第１の対象物の状態を探索し、探索された第１の対象物の状態に基づいて調整量を決定する。
【００１１】
第１の対象物および少なくとも１つの対象物に製造誤差が生じた場合、当該製造誤差に応じて、第１の対象物と第２の対象物とを接合させる際に、第１の対象物と少なくとも１つの対象物との間に意図しない抵抗力（摩擦力を含む）が発生し、力覚センサの検出値が大きくなる。この開示によれば、力覚センサの検出値が極小となる第１の対象物の状態に基づいて調整量が決定される。そのため、製造誤差に起因する、第１の対象物と少なくとも１つの対象物との相対的な位置ずれ量を低減した状態で、第１の対象物の状態を変化させることができる。
【００１２】
上述の開示において、制御装置は、入力装置と接続され、入力装置から調整量を取得する。これにより、制御装置は、容易に調整量を取得できる。
【００１３】
上述の開示において、ＣＧ動画は、第１の対象物と第２〜第Ｎの対象物のうちの少なくとも１つの対象物とが離れた状態を示すフレームから第１の対象物と少なくとも１つの対象物とが接合した状態を示すフレームまでを含む。制御システムは、第１の対象物および少なくとも１つの対象物の一方が他方から受ける力を検知する力覚センサを含む。制御装置は、第１処理から第３処理を繰り返す第１モードを行なう。制御装置は、第１モードにおける第３処理において、第１のロボットの制御量を調整して、力覚センサによって検知される力が極小となる調整量を探索する。制御装置は、探索された調整量だけ第１のロボットの制御量を調整したときに撮像装置によって撮像された動画を基準動画として取得する。制御装置は、第１処理と、ＣＧ動画の代わりに基準動画から目標フレームを選択する第４処理と、第３処理とを繰り返す第２モードを行なう。
【００１４】
この開示によれば、基準動画は、力覚センサによって検出された力が極小となるときに撮像された画像である。そのため、制御装置が第２モードに従った処理を行なうことにより、第１の対象物および少なくとも１つの対象物に製造誤差が生じていたとしても、第１の対象物と少なくとも１つの対象物とを接合させることができる。
【００１５】
本開示の一例によれば、制御方法は、第１〜第Ｎの対象物を撮像するための撮像装置を用いて、第１〜第Ｎのロボットを制御する。Ｎは２以上の整数である。第ｉのロボットは、第ｉの対象物の状態を変化させる。ｉは１〜Ｎ−１の整数である。第Ｎのロボットは、第Ｎの対象物および撮像装置の一方の状態を変化させる。第Ｎの対象物および撮像装置の他方は、定位置に設置される。制御方法は、第１〜第Ｎのロボットの各々について変化情報を取得する第１ステップを備える。第ｊのロボットに対応する変化情報は、第ｊのロボットの制御量と、撮像装置の画像上における第ｊの対象物の状態の変化量との関係を示す。ｊは１〜Ｎの整数である。制御方法は、撮像装置によって撮像された実画像を取得する第２ステップと、第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第３ステップと、実画像と目標フレームとに基づいて第１〜第Ｎのロボットの各々を制御する第４ステップとをさらに備える。第４ステップは、第ｊのロボットに対応する変化情報に基づいて、実画像上の第ｊの対象物の状態を目標フレーム上の第ｊの対象物の状態に近づけるための制御量を算出し、算出した制御量に従って第ｊのロボットを制御するステップを含む。
【００１６】
本開示の一例によれば、プログラムは、上記の制御方法をコンピュータに実行させるためのプログラムである。これらの開示によっても、複数の対象物の状態が連係して変化する。
【発明の効果】
【００１７】
本発明によれば、複数の対象物の状態が連係して変化する。
【図面の簡単な説明】
【００１８】
【図１】実施の形態に係る制御システムの概要を示す模式図である。
【図２】撮像装置２１によって撮像された実画像と第１ＣＧ動画との一例を示す図である。
【図３】撮像装置２２によって撮像された実画像と第２ＣＧ動画との一例を示す図である。
【図４】実施の形態に係る制御システムを構成する制御装置のハードウェア構成を示す模式図である。
【図５】実施の形態に係る制御装置の機能構成を示すブロック図である。
【図６】テンプレートの作成方法の一例を示す図である。
【図７】実施の形態における第１制御部および第２制御部の機能構成を示すブロック図である。
【図８】第１制御部における第１変化情報セットの生成方法を説明する図である。
【図９】第１制御部の算出部による制御量の算出方法を説明する図である。
【図１０】第１ＣＧ動画および第２ＣＧ動画に沿って対象物の状態を変化させるように対象ロボットを制御する処理の流れの一例を示すフローチャートである。
【図１１】図１０に示すステップＳ４のサブルーチンの処理の流れを示すフローチャートである。
【図１２】最近接フレームと目標フレームとの関係を示す図である。
【図１３】図１０に示すステップＳ６のサブルーチンの処理の流れを示すフローチャートである。
【図１４】メスコネクタの設計データと、当該設計データに従って製造されたメスコネクタとの寸法を示す図である。
【図１５】変形例１に係る制御システムの概要を示す模式図である。
【図１６】変形例１に係る制御装置の機能構成を示すブロック図である。
【図１７】変形例１における第１制御部および第２制御部の機能構成を示すブロック図である。
【図１８】変形例１におけるオフセット量の決定処理の流れの一例を示すフローチャートである。
【図１９】変形例３に係る制御装置の機能構成を示すブロック図である。
【図２０】変形例３における第１制御部および第２制御部の機能構成を示すブロック図である。
【図２１】変形例４に係る制御システムの対象物を示す模式図である。
【図２２】変形例５に係る制御システムの対象物を示す模式図である。
【図２３】変形例６に係る制御システムの概要を示す模式図である。
【図２４】変形例６に係る制御装置の機能構成を示すブロック図である。
【図２５】変形例６の第１制御部および第２制御部の処理の流れを示すフローチャートである。
【図２６】変形例６に係る制御システムの別の構成例を示す模式図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ、本発明に従う実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２０】
＜Ａ．適用例＞
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、実施の形態に係る制御システムの概要を示す模式図である。
【００２１】
本実施の形態に係る制御システム１は、たとえば、工業製品の生産ラインなどにおいて、オスコネクタ２ａをメスコネクタ２ｂに挿入することにより、オスコネクタ２ａとメスコネクタ２ｂとを接続させる。
【００２２】
図１に示すように、制御システム１は、撮像装置２１，２２と、ロボット３０ａ，３０ｂと、ロボットコントローラ４０ａ，４０ｂと、制御装置５０とを備える。
【００２３】
撮像装置２１，２２は、撮像視野に存在する被写体を撮像して画像データ（以下、単に「画像」という）を生成する。撮像装置２１，２２は、ロボット３０ａ，３０ｂと異なる固定位置に設置される。撮像装置２１，２２は、互いに異なる固定位置から、被写体としてのオスコネクタ２ａおよびメスコネクタ２ｂを撮像する。撮像装置２１，２２は、予め定められた撮像周期に従って撮像し、撮像によって得られた実画像を制御装置５０に出力する。
【００２４】
ロボット３０ａは、オスコネクタ２ａの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ａは、先端にオスコネクタ２ａを支持する（ここでは把持する）ハンド３１ａを有し、ハンド３１ａの位置および姿勢を６自由度で変化させる。言い換えると、ロボット３０ａは、ハンド３１ａに把持されたオスコネクタ２ａの位置および姿勢を６自由度で変化させる。当該６自由度は、Ｘ方向、Ｙ方向およびＺ方向の並進自由度と、ピッチ方向、ヨー方向およびロール方向の回転自由度とを含む。ただし、ハンド３１ａの自由度の個数は６個に限定されず、３〜５個または７個以上であってもよい。
【００２５】
ロボット３０ａは、複数のサーボモータを有しており、当該サーボモータが駆動されることにより、オスコネクタ２ａの位置および姿勢を変化させる。当該複数のサーボモータの各々に対応してエンコーダが設けられており、サーボモータの位置が計測される。
【００２６】
ロボット３０ｂは、メスコネクタ２ｂの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえばＸＹθステージである。ロボット３０ｂは、メスコネクタ２ｂを支持する（ここでは載せる）ステージ３１ｂを有し、ステージ３１ｂの位置および姿勢を３自由度で変化させる。すなわち、ロボット３０ｂは、ステージ３１ｂに載置されたメスコネクタ２ｂの位置および姿勢を３自由度で変化させる。当該３自由度は、Ｘ方向およびＹ方向の並進自由度と、ＸＹ平面に直交する軸を中心とする回転方向（θ方向）の回転自由度とを含む。ただし、ロボット３０ｂの自由度の個数は３個に限定されず、４個以上であってもよい。
【００２７】
ロボット３０ｂは、複数のサーボモータを有しており、当該サーボモータが駆動されることにより、メスコネクタ２ｂの位置および姿勢を変化させる。当該複数のサーボモータの各々に対応してエンコーダが設けられており、サーボモータの位置が計測される。
【００２８】
ロボットコントローラ４０ａは、制御装置５０から受けた制御指令に従って、ロボット３０ａの動作制御を行なう。ロボットコントローラ４０ａは、Ｘ方向、Ｙ方向およびＺ方向の並進自由度ならびにピッチ方向、ヨー方向およびロール方向の回転自由度の各々の制御指令を制御装置５０から受ける。これらＸ方向、Ｙ方向、Ｚ方向、ピッチ方向、ヨー方向およびロール方向は、ロボット３０ａの座標系で示される。ロボットコントローラ４０ａは、ハンド３１ａのＸ方向、Ｙ方向およびＺ方向の並進移動量がＸ方向、Ｙ方向およびＺ方向の並進自由度の制御指令にそれぞれ近づくように、ロボット３０ａに対してフィードバック制御を行なう。ロボットコントローラ４０ａは、ハンド３１ａのピッチ方向、ヨー方向およびロール方向の回転移動量がピッチ方向、ヨー方向およびロール方向の回転自由度の制御指令にそれぞれ近づくように、ロボット３０ａに対してフィードバック制御を行なう。
【００２９】
ロボットコントローラ４０ｂは、制御装置５０から受けた制御指令に従って、ロボット３０ｂの動作制御を行なう。ロボットコントローラ４０ｂは、Ｘ方向およびＹ方向の並進自由度ならびに回転自由度の各々の制御指令を制御装置５０から受ける。これらＸ方向、Ｙ方向および回転方向は、ロボット３０ｂの座標系で示される。ロボットコントローラ４０ｂは、ステージ３１ｂのＸ方向およびＹ方向の並進移動量がＸ方向およびＹ方向の並進自由度の制御指令にそれぞれ近づくように、ロボット３０ｂに対してフィードバック制御を行なう。ロボットコントローラ４０ｂは、ステージ３１ｂの回転移動量が回転自由度の制御指令に近づくように、ロボット３０ｂに対してフィードバック制御を行なう。
【００３０】
制御装置５０は、ロボットコントローラ４０ａ，４０ｂを介して、ロボット３０ａ，３０ｂをそれぞれ制御する。
【００３１】
制御装置５０は、オスコネクタ２ａおよびメスコネクタ２ｂの見本を示す、第１ＣＧ動画および第２ＣＧ動画を記憶している。第１ＣＧ動画および第２ＣＧ動画は、オスコネクタ２ａ、メスコネクタ２ｂ、ロボット３０ａ，３０ｂおよび撮像装置２１，２２のモデルを仮想空間上でシミュレーションすることにより作成される。第１ＣＧ動画および第２ＣＧ動画は、仮想空間上で、オスコネクタ２ａのモデルとメスコネクタ２ｂのモデルとが位置および姿勢を変化させながら、互いに接続する様子を示している。オスコネクタ２ａおよびメスコネクタ２ｂのモデルは、オスコネクタ２ａおよびメスコネクタ２ｂの設計データに基づいて作成される。
【００３２】
第１ＣＧ動画は、仮想空間上で撮像装置２１のモデルの位置を視点として設定することにより作成される。第２ＣＧ動画は、仮想空間上で撮像装置２２のモデルの位置を視点として設定することにより作成される。
【００３３】
第１ＣＧ動画および第２ＣＧ動画の各々は、時系列に並んだ複数（以下、Ｍ枚（Ｍは、２以上の整数）とする）のフレームを含む。第１ＣＧ動画のｋ番目（ｋは１〜Ｍのいずれかの整数）のフレームと第２ＣＧ動画のｋ番目のフレームとは、仮想空間上のある状態のオスコネクタ２ａおよびメスコネクタ２ｂのモデルを同時に異なる方向から見たときの画像である。
【００３４】
制御装置５０は、ロボット３０ａの制御量と、撮像装置２１，２２の撮像により得られる画像上のオスコネクタ２ａの状態の変化量との関係を示す変化情報を取得する。当該変化情報は、オスコネクタ２ａ、ロボット３０ａおよび撮像装置２１，２２のモデルを仮想空間上でシミュレーションすることにより生成される。
【００３５】
同様に、制御装置５０は、ロボット３０ｂの制御量と、撮像装置２１，２２の撮像により得られる画像上のメスコネクタ２ｂの状態の変化量との関係を示す変化情報を取得する。当該変化情報は、メスコネクタ２ｂ、ロボット３０ｂおよび撮像装置２１，２２のモデルを仮想空間上でシミュレーションすることにより生成される。
【００３６】
制御装置５０は、以下に示す第１〜第３処理を行なう。制御装置５０は、第１〜第３処理を含む一連処理を繰り返し実行する。第１処理は、撮像装置２１，２２によって撮像された実画像を取得する処理である。
【００３７】
第２処理は、第１ＣＧ動画および第２ＣＧ動画の各々から目標フレームを選択する処理である。制御装置５０は、第１ＣＧ動画からｋ番目のフレームを目標フレームとして選択する場合、第２基準動画からもｋ番目のフレームを目標フレームとして選択する。
【００３８】
第３処理は、実画像と目標フレームとに基づいてロボット３０ａ，３０ｂの各々を制御する処理である。制御装置５０は、ロボット３０ａに対応する変化情報に基づいて、実画像上のオスコネクタ２ａの状態を目標フレーム上のオスコネクタ２ａの状態に近づけるためのロボット３０ａの制御量を算出し、算出した制御量に従ってロボット３０ａを制御する。制御装置５０は、ロボット３０ａの制御量を示す制御指令を生成し、生成した制御指令をロボットコントローラ４０ａに出力する。さらに、制御装置５０は、ロボット３０ｂに対応する変化情報に基づいて、実画像上のメスコネクタ２ｂの状態を目標フレーム上のメスコネクタ２ｂの状態に近づけるためのロボット３０ｂの制御量を算出し、算出した制御量に従ってロボット３０ｂを制御する。制御装置５０は、ロボット３０ｂの制御量を示す制御指令を生成し、生成した制御指令をロボットコントローラ４０ｂに出力する。
【００３９】
図２は、撮像装置２１によって撮像された実画像と第１ＣＧ動画との一例を示す図である。図３は、撮像装置２２によって撮像された実画像と第２ＣＧ動画との一例を示す図である。図２には、撮像装置２１によって撮像された実画像９０ａ〜９３ａと、第１ＣＧ動画のフレーム７０ａ〜７３ａとが示されている。図３には、撮像装置２２によって撮像された実画像９０ｂ〜９３ｂと、第２ＣＧ動画のフレーム７０ｂ〜７３ｂとが示されている。
【００４０】
実画像９０ａ，９０ｂは、同時刻に撮像された画像である。実画像９１ａ，９１ｂは、実画像９０ａ，９０ｂより後の同時刻に撮像された画像である。実画像９２ａ，９２ｂは、実画像９１ａ，９１ｂより後の同時刻に撮像された画像である。実画像９３ａ，９３ｂは、実画像９２ａ，９２ｂより後の同時刻に撮像された画像である。
【００４１】
フレーム７０ａ，７０ｂの各々は、対応するＣＧ動画における１番目のフレームである。フレーム７１ａ，７１ｂの各々は、対応するＣＧ動画におけるｓ番目（ｓは２以上の整数）のフレームである。フレーム７２ａ，７２ｂの各々は、対応するＣＧ動画におけるｔ番目（ｔはｓより大きい整数）のフレームである。フレーム７３ａ，７３ｂの各々は、対応するＣＧ動画におけるｕ番目（ｕはｔより大きい整数）のフレームである。
【００４２】
第１ＣＧ動画および第２ＣＧ動画は、ハンド３１ａのモデル（以下、「ハンドモデル」という）３１ａ’と、ステージ３１ｂのモデル（以下、「ステージモデル」という）３１ｂ’とを含む。さらに、第１ＣＧ動画および第２ＣＧ動画は、オスコネクタ２ａのモデル（以下、「オスコネクタモデル」という）２ａ’と、メスコネクタ２ｂのモデル（以下、「メスコネクタモデル」という）２ｂ’とを含む。
【００４３】
第１ＣＧ動画および第２ＣＧ動画は、ステージモデル３１ｂ’上のメスコネクタモデル２ｂ’が所望の状態に移動する様子を示している。さらに、第１ＣＧ動画および第２ＣＧ動画は、その後、ハンドモデル３１ａ’によって把持されたオスコネクタモデル２ａ’がメスコネクタモデル２ｂ’の上方から下向きに移動し、メスコネクタモデル２ｂ’と接続する様子を示している。
【００４４】
制御装置５０は、ステージ３１ｂ上に載置されたメスコネクタ２ｂと、ハンド３１ａによって把持されたオスコネクタ２ａとを含む実画像９０ａ，９０ｂを撮像装置２１，２２からそれぞれ取得する。
【００４５】
制御装置５０は、第１ＣＧ動画および第２ＣＧ動画から、メスコネクタモデル２ｂ’が所望の位置および姿勢に移動したときのフレーム７１ａ，７１ｂを目標フレームとしてそれぞれ選択する。
【００４６】
制御装置５０は、メスコネクタ２ｂに対応する変化情報に基づいて、実画像９０ａ，９０ｂ上のメスコネクタ２ｂの状態をフレーム７１ａ，７１ｂ上のメスコネクタモデル２ｂ’の状態へそれぞれ近づけるためのステージ３１ｂの制御量を算出する。そして、制御装置５０は、算出した制御量を示す制御指令をロボットコントローラ４０ｂに出力する。ロボットコントローラ４０ｂは、制御指令に従ってロボット３０ｂを制御する。これにより、実画像９１ａ，９１ｂに示されるように、メスコネクタ２ｂの位置および姿勢は、所望の位置および姿勢（フレーム７１ａ，７１ｂで示されるメスコネクタモデル２ｂ’の位置および姿勢）に変化する。
【００４７】
さらに、ロボット３０ｂの制御と並行して、制御装置５０は、実画像９０ａ，９０ｂ上のオスコネクタ２ａの状態からフレーム７１ａ，７１ｂ上のオスコネクタモデル２ａ’の状態に近づけるためのハンド３１ａの制御量を算出する。そして、制御装置５０は、算出した制御量を示す制御指令をロボットコントローラ４０ａに出力する。ロボットコントローラ４０ａは、制御指令に従ってロボット３０ａを制御する。これにより、実画像９１ａ，９１ｂに示されるように、オスコネクタ２ａの状態は、メスコネクタ２ｂの上方の位置および姿勢（フレーム７１ａ，７１ｂで示される位置および姿勢）に変化する。
【００４８】
次に、制御装置５０は、オスコネクタモデル２ａ’がメスコネクタモデル２ｂ’の直上の位置まで移動したときのフレーム７２ａ，７２ｂを目標フレームとして選択する。
【００４９】
制御装置５０は、オスコネクタ２ａに対応する変化情報に基づいて、実画像９１ａ，９１ｂ上のオスコネクタ２ａの状態をフレーム７２ａ，７２ｂ上のオスコネクタモデル２ａ’の状態にそれぞれ近づけるためのハンド３１ａの制御量を算出する。そして、制御装置５０は、算出した制御量を示す制御指令をロボットコントローラ４０ａに出力する。ロボットコントローラ４０ａは、制御指令に従ってロボット３０ａを制御する。これにより、実画像９２ａ，９２ｂに示されるように、オスコネクタ２ａの位置および姿勢は、メスコネクタ２ｂの直上の位置および姿勢（フレーム７２ａ，７２ｂで示されるオスコネクタモデル２ａ’の位置および姿勢）に変化する。
【００５０】
次に、制御装置５０は、オスコネクタモデル２ａ’とメスコネクタモデル２ｂ’との接続が完了したときのフレーム７３ａ，７３ｂを目標フレームとして選択する。
【００５１】
制御装置５０は、オスコネクタ２ａに対応する変化情報に基づいて、実画像９２ａ，９２ｂ上のオスコネクタ２ａの状態をフレーム７３ａ，７３ｂ上のオスコネクタモデル２ａ’の状態に近づけるためのハンド３１ａの制御量を算出する。そして、制御装置５０は、算出した制御量を示す制御指令をロボットコントローラ４０ａに出力する。ロボットコントローラ４０ａは、制御指令に従ってロボット３０ａを制御する。これにより、実画像９３ａ，９３ｂに示されるように、オスコネクタ２ａは、メスコネクタ２ｂに接続完了した位置および姿勢（フレーム７３ａ，７３ｂで示されるオスコネクタモデル２ａ’の位置および姿勢）まで移動する。
【００５２】
このように、制御装置５０は、実画像上のオスコネクタ２ａおよびメスコネクタ２ｂの状態を目標フレーム上のオスコネクタモデル２ａ’およびメスコネクタモデル２ｂ’の状態へそれぞれ変化させることができる。これにより、オスコネクタ２ａおよびメスコネクタ２ｂの状態は、第１ＣＧ動画および第２ＣＧ動画に従って連係して変化する。
【００５３】
制御装置５０は、撮像装置２１，２２とロボット３０ａ，３０ｂとの座標系をそれぞれ対応付けるキャリブレーションデータを用いることなく、ロボット３０ａ，３０ｂを制御できる。そのため、作業者は、キャリブレーションを予め行なう必要がない。そのため、ロボット３０ａ，３０ｂによってオスコネクタ２ａおよびメスコネクタ２ｂの状態を所望の状態にそれぞれ変化させるために必要な手間を低減できる。
【００５４】
キャリブレーションデータがある場合、撮像装置２１，２２によって撮像された画像からオスコネクタ２ａおよびメスコネクタ２ｂの実空間上の位置および姿勢を特定し、当該位置および姿勢に基づいてロボット３０ａ，３０ｂを制御する方法が考えられる。しかしながら、ロボット３０ａ，３０ｂの経年劣化に応じてキャリブレーションデータの精度が低下して、オスコネクタ２ａおよびメスコネクタ２ｂとをうまく接続できない可能性がある。さらに、オスコネクタ２ａおよびメスコネクタ２ｂの位置ずれや個体差に起因して、オスコネクタ２ａおよびメスコネクタ２ｂとをうまく接続できない可能性がある。このような場合であっても、本適用例を用いることにより、オスコネクタ２ａおよびメスコネクタ２ｂとをＣＧ動画通りに接続させることができる。
【００５５】
＜Ｂ．具体例＞
次に、本実施の形態に係る制御システムの具体例について説明する。
【００５６】
＜Ｂ−１．制御装置のハードウェア構成＞
図４は、実施の形態に係る制御システムを構成する制御装置のハードウェア構成を示す模式図である。図４に示されるように、制御装置５０は、コンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の処理を実現する。
【００５７】
より具体的には、制御装置５０は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ５１０と、ＲＡＭ（Random Access Memory）５１２と、表示コントローラ５１４と、システムコントローラ５１６と、Ｉ／Ｏ（Input Output）コントローラ５１８と、ハードディスク５２０と、カメラインターフェイス５２２と、入力インターフェイス５２４と、ロボットコントローラインターフェイス５２６と、通信インターフェイス５２８と、メモリカードインターフェイス５３０とを含む。これらの各部は、システムコントローラ５１６を中心として、互いにデータ通信可能に接続される。
【００５８】
プロセッサ５１０は、システムコントローラ５１６との間でプログラム（コード）などを交換して、これらを所定順序で実行することで、目的の演算処理を実現する。
【００５９】
システムコントローラ５１６は、プロセッサ５１０、ＲＡＭ５１２、表示コントローラ５１４、およびＩ／Ｏコントローラ５１８とそれぞれバスを介して接続されており、各部との間でデータ交換などを行うとともに、制御装置５０全体の処理を司る。
【００６０】
ＲＡＭ５１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク５２０から読み出されたプログラムや、撮像装置２１，２２によって取得された画像（画像データ）、画像に対する処理結果、およびワークデータなどを保持する。
【００６１】
表示コントローラ５１４は、表示部５３２と接続されており、システムコントローラ５１６からの内部コマンドに従って、各種の情報を表示するための信号を表示部５３２へ出力する。
【００６２】
Ｉ／Ｏコントローラ５１８は、制御装置５０に接続される記録媒体や外部機器との間のデータ交換を制御する。より具体的には、Ｉ／Ｏコントローラ５１８は、ハードディスク５２０と、カメラインターフェイス５２２と、入力インターフェイス５２４と、ロボットコントローラインターフェイス５２６と、通信インターフェイス５２８と、メモリカードインターフェイス５３０と接続される。
【００６３】
ハードディスク５２０は、典型的には、不揮発性の磁気記憶装置であり、プロセッサ５１０で実行される制御プログラム５５０に加えて、各種情報が格納される。このハードディスク５２０にインストールされる制御プログラム５５０は、メモリカード５３６などに格納された状態で流通する。なお、ハードディスク５２０に代えて、フラッシュメモリなどの半導体記憶装置やＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）などの光学記憶装置を採用してもよい。
【００６４】
カメラインターフェイス５２２は、撮像装置２１，２２から画像データを受付ける入力部に相当し、プロセッサ５１０と撮像装置２１，２２との間のデータ伝送を仲介する。カメラインターフェイス５２２は、撮像装置２１，２２からの画像データをそれぞれ一時的に蓄積するための画像バッファ５２２ａ，５２２ｂを含む。複数の撮像装置に対して、共有できる単一の画像バッファを設けてもよいが、処理高速化のため、それぞれの撮像装置に対応付けて独立に複数配置することが好ましい。
【００６５】
入力インターフェイス５２４は、プロセッサ５１０とキーボード、マウス、タッチパネル、専用コンソールなどの入力装置５３４との間のデータ伝送を仲介する。
【００６６】
ロボットコントローラインターフェイス５２６は、プロセッサ５１０とロボットコントローラ４０ａ，４０ｂとの間のデータ伝送を仲介する。
【００６７】
通信インターフェイス５２８は、プロセッサ５１０と図示しない他のパーソナルコンピュータやサーバ装置などとの間のデータ伝送を仲介する。通信インターフェイス５２８は、典型的には、イーサネット（登録商標）やＵＳＢ（Universal Serial Bus）などからなる。
【００６８】
メモリカードインターフェイス５３０は、プロセッサ５１０と記録媒体であるメモリカード５３６との間のデータ伝送を仲介する。メモリカード５３６には、制御装置５０で実行される制御プログラム５５０などが格納された状態で流通し、メモリカードインターフェイス５３０は、このメモリカード５３６から制御プログラム５５０を読み出す。メモリカード５３６は、ＳＤ（Secure Digital）などの汎用的な半導体記憶デバイスや、フレキシブルディスク（Flexible Disk）などの磁気記録媒体や、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などの光学記録媒体等からなる。あるいは、通信インターフェイス５２８を介して、配信サーバなどからダウンロードしたプログラムを制御装置５０にインストールしてもよい。
【００６９】
上述のような汎用的なコンピュータアーキテクチャに従う構造を有するコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのＯＳ（Operating System）がインストールされていてもよい。この場合には、本実施の形態に係る制御プログラムは、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および／またはタイミングで呼び出して処理を実行するものであってもよい。
【００７０】
さらに、本実施の形態に係る制御プログラムは、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組み合わせられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係る制御プログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００７１】
なお、代替的に、制御プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００７２】
＜Ｂ−２．制御装置の機能構成＞
図５は、実施の形態に係る制御装置の機能構成を示すブロック図である。図５に示されるように、制御装置５０は、動画記憶部５１と、設計データ記憶部５２と、ＣＧ動画生成部５３と、教示範囲選択部５４と、画像処理部５５と、目標フレーム選択部５６と、第１制御部５７ａと、第２制御部５７ｂとを備える。動画記憶部５１および設計データ記憶部５２は、図４に示すハードディスク５２０およびＲＡＭ５１２によって構成される。ＣＧ動画生成部５３と教示範囲選択部５４と画像処理部５５とは、図４に示すプロセッサ５１０が制御プログラム５５０を実行することにより実現される。
【００７３】
＜Ｂ−２−１．動画記憶部＞
動画記憶部５１は、第１ＣＧ動画と第２ＣＧ動画とを記憶する。第１ＣＧ動画および第２ＣＧ動画は、ＣＧ動画生成部５３によって生成される。
【００７４】
＜Ｂ−２−２．設計データ記憶部＞
設計データ記憶部５２は、オスコネクタ２ａ、メスコネクタ２ｂ、ロボット３０ａ，３０ｂ、および撮像装置２１，２２の設計データを記憶している。設計データは、たとえば、３Ｄ−ＣＡＤ（Computer-Aided Design）データである。
【００７５】
さらに、設計データ記憶部５２は、実空間上のロボット３０ａ，３０ｂおよび撮像装置２１，２２の設置位置を示す配置データも記憶する。設計データ記憶部５２は、撮像装置２１，２２の向きおよび画角も記憶する。
【００７６】
＜Ｂ−２−３．ＣＧ動画生成部＞
ＣＧ動画生成部５３は、第１ＣＧ動画および第２ＣＧ動画を生成する。ＣＧ動画生成部５３は、公知のＣＧ技術を用いて、第１ＣＧ動画および第２ＣＧ動画を生成すればよい。
【００７７】
具体的には、ＣＧ動画生成部５３は、ロボット３０ａ，３０ｂおよび撮像装置２１，２２の各モデルが設計データ記憶部５２に記憶された配置データに従って配置された仮想空間を構築する。仮想空間には、ハンドモデル３１ａ’およびステージモデル３１ｂ’が配置される（図２、図３参照）。仮想空間は、実空間を模擬した空間であり、実空間と同じ座標系で示される。ＣＧ動画生成部５３は、構築した仮想空間を表示部５３２に表示させる。
【００７８】
ＣＧ動画生成部５３は、仮想空間において、ステージモデル３１ｂ’上の初期位置に初期姿勢のメスコネクタモデル２ｂ’を配置する。メスコネクタモデル２ｂ’は、メスコネクタ２ｂの３Ｄ−ＣＡＤデータによって生成される。初期位置および初期姿勢は、入力装置５３４を用いて操作者によって指定される。操作者は、実空間上において、上流側の装置から搬送されてきたメスコネクタ２ｂがステージ３１ｂ上に載置されるときの、メスコネクタ２ｂの平均的な位置および姿勢を初期位置および初期姿勢としてそれぞれ指定すればよい。
【００７９】
さらに、ＣＧ動画生成部５３は、仮想空間において、ハンドモデル３１ａ’に把持されたオスコネクタモデル２ａ’を初期位置および初期姿勢に配置する。オスコネクタモデル２ａ’は、オスコネクタ２ａの３Ｄ−ＣＡＤデータによって生成される。当該初期位置および初期姿勢は、入力装置５３４を用いて操作者によって指定される。操作者は、実空間上において、上流側の装置から搬送されてきたオスコネクタ２ａをハンド３１ａが把持すときの、オスコネクタ２ａの平均的な位置および姿勢を初期位置および初期姿勢としてそれぞれ指定すればよい。
【００８０】
ＣＧ動画生成部５３は、移動プログラムに従って、仮想空間上において各モデルを移動させたときの、撮像装置２１のモデルを視点とするＣＧ動画を第１ＣＧ動画として生成する。同様に、ＣＧ動画生成部５３は、移動プログラムに従って、仮想空間上において各モデルを移動させたときの、撮像装置２２のモデルを視点とするＣＧ動画を第２ＣＧ動画として生成する。ＣＧ動画は、設計データ記憶部５２が記憶する撮像装置２１，２２の向きおよび画角に基づいて生成される。
【００８１】
移動プログラムは、仮想空間上において、メスコネクタモデル２ｂ’を初期位置および初期姿勢から所望の位置および姿勢に移動させた後、オスコネクタモデル２ａ’を上方からメスコネクタモデル２ｂ’に向かって移動させてメスコネクタモデル２ｂと接続させるプログラムである。移動プログラムは、操作者によって指定された、メスコネクタモデル２ｂ’およびオスコネクタモデル２ａ’の各々の移動経路に従って作成される。
【００８２】
＜Ｂ−２−４．教示範囲選択部＞
教示範囲選択部５４は、対象物（ここではオスコネクタ２ａおよびメスコネクタ２ｂ）ごとに、第１ＣＧ動画および第２ＣＧ動画のうちの当該対象物の見本となる教示範囲を選択する。
【００８３】
教示範囲選択部５４は、教示範囲の選択指示を促す画面を表示部５３２に表示する。作業者は、第１ＣＧ動画および第２ＣＧ動画の各フレームを確認し、入力装置５３４を操作して、対象物のモデルが所望の動作をしている一連のフレーム群の先頭フレームと最終フレームとを指定する。教示範囲選択部５４、指示された先頭フレームから最終フレームまでを教示範囲として選択する。
【００８４】
たとえば、図２に示される第１ＣＧ動画に対して、教示範囲選択部５４は、１番目のフレーム７０ａからｓ番目よりも後フレーム（メスコネクタ２ｂの一部が欠け始めるフレーム）までをメスコネクタ２ｂの教示範囲として選択する。教示範囲選択部５４は、１番目のフレーム７０ａ（オスコネクタ２ａの全体が現れ始めるフレーム）からｕ番目のフレーム７３ａまでをオスコネクタ２ａの教示範囲として選択する。
【００８５】
同様に、図３に示される第２ＣＧ動画に対して、教示範囲選択部５４は、１番目のフレーム７０ｂからｓ番目よりも後フレーム（メスコネクタ２ｂの一部が欠け始めるフレーム）までをメスコネクタ２ｂの教示範囲として選択する。教示範囲選択部５４は、１番目のフレーム７０ｂ（オスコネクタ２ａの全体が現れ始めるフレーム）からｕ番目のフレーム７３ｂまでをオスコネクタ２ａの教示範囲として選択する。
【００８６】
＜Ｂ−２−５．画像処理部＞
画像処理部５５は、対象画像に対して画像処理を行ない、テンプレートマッチングを用いて、対象画像中から対象物を検出する。テンプレートマッチングの基本処理は、対象物の画像特徴を表すデータであるテンプレートを予め用意しておき、対象画像とテンプレートとの間の画像特徴の一致度を評価することで、対象画像中の対象物の位置および姿勢を検出する処理である。
【００８７】
画像処理部５５が画像処理を行なう対象画像は、第１ＣＧ動画のフレーム、第２ＣＧ動画のフレームおよび撮像装置２１，２２によって撮像された実画像である。
【００８８】
画像処理部５５は、事前準備として、対象物（オスコネクタ２ａおよびメスコネクタ２ｂ）ごとのテンプレートを作成する。
【００８９】
図６は、テンプレートの作成方法の一例を示す図である。図６に示されるように、画像処理部５５は、メスコネクタ２ｂの設計データ（３Ｄ−ＣＡＤデータ）に基づいて、様々な方向から見たときのメスコネクタ２ｂの２Ｄモデル画像を生成する。画像処理部５５は、メスコネクタ２ｂの各２Ｄモデル画像から、メスコネクタ２ｂの複数の特徴点およびそれらの特徴量を抽出する。画像処理部５５は、複数の特徴点の各々の画像上の座標と特徴量とをメスコネクタ２ｂのテンプレートとして作成する。
【００９０】
同様に、画像処理部５５は、オスコネクタ２ａの設計データ（３Ｄ−ＣＡＤデータ）に基づいて、様々な方向から見たときのオスコネクタ２ａの２Ｄモデル画像を生成する。画像処理部５５は、オスコネクタ２ａの各２Ｄモデル画像から、オスコネクタ２ａの複数の特徴点およびそれらの特徴量を抽出する。画像処理部５５は、複数の特徴点の各々の画像上の座標と特徴量とをオスコネクタ２ａのテンプレートとして作成する。
【００９１】
特徴点は、画像に含まれるかどや輪郭などから特徴づけられる点であり、たとえばエッジ点である。特徴量は、たとえば、輝度、輝度勾配方向、量子化勾配方向、ＨｏＧ（Histogram of Oriented Gradients）、ＨＡＡＲ−ｌｉｋｅ、ＳＩＦＴ（Scale-Invariant Feature Transform）などである。輝度勾配方向とは、特徴点を中心とする局所領域での輝度の勾配の方向（角度）を連続値で表すものであり、量子化勾配方向とは、特徴点を中心とする局所領域での輝度の勾配の方向を離散値で表す（たとえば、８方向を０〜７の１バイトの情報で保持する）ものである。
【００９２】
画像処理部５５は、対象画像（第１ＣＧ動画のフレーム、第２ＣＧ動画のフレームおよび撮像装置２１，２２によって撮像される実画像）から複数の特徴点およびそれらの特徴量を抽出する。画像処理部５５は、抽出された特徴点および特徴量と、対象物のテンプレートと照合することにより、対象画像中の対象物を検出する。
【００９３】
画像処理部５５は、対象物（オスコネクタ２ａおよびメスコネクタ２ｂ）ごとに、対象画像から抽出した当該対象物の各特徴点の画像上の座標を出力する。
【００９４】
＜Ｂ−２−６．目標フレーム選択部＞
目標フレーム選択部５６は、第１ＣＧ動画および第２ＣＧ動画から目標フレームを選択する。ただし、目標フレーム選択部５６は、第１ＣＧ動画のｋ番目のフレームを目標フレームとして選択した場合、第２ＣＧ動画のｋ番目のフレームを目標フレームとして選択する。目標フレームの選択方法の具体例については後述する。
【００９５】
＜Ｂ−２−７．第１制御部および第２制御部＞
第１制御部５７ａは、ロボットコントローラ４０ａを介してロボット３０ａを制御し、オスコネクタ２ａの状態を変化させる。
【００９６】
第２制御部５７ｂは、ロボットコントローラ４０ｂを介してロボット３０ｂを制御し、メスコネクタ２ｂの状態を変化させる。
【００９７】
図７は、実施の形態における第１制御部および第２制御部の機能構成を示すブロック図である。図７に示されるように、第１制御部５７ａおよび第２制御部５７ｂの各々は、変化情報生成部５８と、変化情報記憶部５９と、算出部６０と、指令部６１と、終了判定部６２とを備える。変化情報記憶部５９は、図４に示すハードディスク５２０およびＲＡＭ５１２によって構成される。変化情報生成部５８と、算出部６０と、指令部６１と、終了判定部６２とは、図４に示すプロセッサ５１０が制御プログラム５５０を実行することにより実現される。
【００９８】
＜Ｂ−２−８．変化情報生成部＞
変化情報生成部５８は、複数の自由度の各々に対して、対象ロボットの単位制御量と、撮像装置２１によって撮像された実画像上の対象物の状態の変化量との関係を示す第１変化情報を生成する。変化情報生成部５８は、複数の自由度に対してそれぞれ生成した複数の第１変化情報からなる第１変化情報セット５９１を変化情報記憶部５９に格納する。
【００９９】
さらに、変化情報生成部５８は、複数の自由度の各々に対して、対象ロボットの単位制御量と、撮像装置２２によって撮像された実画像上の対象物の状態の変化量との関係を示す第２変化情報を生成する。変化情報生成部５８は、複数の自由度に対してそれぞれ生成した複数の第２変化情報からなる第２変化情報セット５９２を変化情報記憶部５９に格納する。
【０１００】
対象物は、第１制御部５７ａではオスコネクタ２ａであり、第２制御部５７ｂではメスコネクタ２ｂである。対象ロボットは、第１制御部５７ａではロボット３０ａであり、第２制御部５７ｂではロボット３０ｂである。複数の自由度は、第１制御部５７ａでは６自由度であり、第２制御部５７ｂでは３自由度である。
【０１０１】
本実施の形態では、第１変化情報および第２変化情報は、単位制御量だけ対象ロボットを制御したときの画像上の対象物の状態の変化量を示す。具体的には、第１変化情報および第２変化情報は、単位制御量だけ対象ロボットを制御する前の画像上の対象物を、単位制御量だけ対象ロボットを制御した後の画像上の対象物に変換する写像を示す。
【０１０２】
単位制御量だけ対象ロボットを制御したときの画像上の対象物の状態の変化量は、対象物の実空間上の状態に依存する。そのため、変化情報生成部５８は、第１ＣＧ動画の教示範囲の各フレームに対して第１変化情報セット５９１を生成する。さらに、変化情報生成部５８は、第２ＣＧ動画の教示範囲の各フレームに対して第２変化情報セット５９２を生成しする。
【０１０３】
変化情報生成部５８による第１変化情報セット５９１および第２変化情報セット５９２の生成および格納処理は、事前準備として実行される。
【０１０４】
図８を参照して、第１制御部５７ａにおける第１変化情報セット５９１の生成方法を説明する。なお、第１制御部５７ａにおける第２変化情報セット５９２の生成、ならびに、第２制御部５７ｂにおける第１変化情報セット５９１および第２変化情報セット５９２の生成方法も同様の方法であるため、これらの生成方法の説明を省略する。
【０１０５】
図８は、第１制御部における第１変化情報セット５９１の生成方法を説明する図である。図８（ａ）は、第１ＣＧ動画のｋ番目のフレーム８４を示す。ｋ番目のフレーム８４に対応するオスコネクタモデル２ａ’の仮想空間上の状態（位置および姿勢）を基準状態とする。
【０１０６】
図８（ｂ）は、仮想空間上において基準状態からオスコネクタモデル２ａ’をＹ方向の並進自由度に単位制御量だけ並進移動させたときの、撮像装置２１のモデルを視点とするＣＧ画像８５ａを示す。図８（ｃ）は、仮想空間上において基準状態からオスコネクタモデル２ａ’をＸ方向の並進自由度に単位制御量だけ並進移動させたときの、撮像装置２１のモデルを視点とするＣＧ画像８５ｂを示す。図８（ｄ）は、仮想空間上において基準状態からオスコネクタモデル２ａ’をＺ方向の並進自由度に単位制御量だけ並進移動させたときの、撮像装置２１のモデルを視点とするＣＧ画像８５ｃを示す。図８（ｅ）は、仮想空間上において基準状態からオスコネクタモデル２ａ’をピッチ方向の回転自由度に単位制御量だけ回転移動させたときの、撮像装置２１のモデルを視点とするＣＧ画像８５ｄを示す。図８（ｆ）は、仮想空間上において基準状態からオスコネクタモデル２ａ’をヨー方向の回転自由度に単位制御量だけ回転移動させたときの、撮像装置２１のモデルを視点とするＣＧ画像８５ｅを示す。図８（ｇ）は、仮想空間上において基準状態からオスコネクタモデル２ａ’をロール方向の回転自由度に単位制御量だけ回転移動させたときの、撮像装置２１のモデルを視点とするＣＧ画像８５ｆを示す。変化情報生成部５８は、仮想空間上においてオスコネクタモデル２ａ’の位置および姿勢をシミュレートすることにより、ＣＧ画像８５ａ〜８５ｆを生成する。
【０１０７】
変化情報生成部５８は、フレーム８４およびＣＧ画像８５ａ〜８５ｆの各々から抽出されたオスコネクタモデル２ａ’の各特徴点の画像上の座標を、画像処理部５５から取得する。
【０１０８】
変化情報生成部５８は、フレーム８４から抽出された特徴点４ａ’〜４ｇ’の座標を、ＣＧ画像８５ａから抽出された特徴点５ａ’〜５ｇ’の座標にそれぞれ変換する写像を示す情報を、Ｙ方向の並進自由度に対応する第１変化情報として生成する。
【０１０９】
同様に、変化情報生成部５８は、特徴点４ａ’〜４ｇ’の座標をＣＧ画像８５ｂから抽出された特徴点５ａ’〜５ｇ’の座標に変換する写像を示す情報を、Ｘ方向の並進自由度に対応する第１変化情報として生成する。変化情報生成部５８は、特徴点４ａ’〜４ｇ’の座標を画像８５ｃから抽出された特徴点５ａ’〜５ｇ’の座標に変換する写像を示す情報を、Ｚ方向の並進自由度に対応する第１変化情報として生成する。変化情報生成部５８は、特徴点４ａ’〜４ｇ’の座標を画像８５ｄから抽出された特徴点５ａ’〜５ｇ’の座標に変換する写像を示す情報を、ピッチ方向の回転自由度に対応する第１変化情報として生成する。変化情報生成部５８は、特徴点４ａ’〜４ｇ’の座標を画像８５ｅから抽出された特徴点５ａ’〜５ｇ’の座標に変換する写像を示す情報を、ヨー方向の回転自由度に対応する第１変化情報として生成する。変化情報生成部５８は、特徴点４ａ’〜４ｇ’の座標を画像８５ｆから抽出された特徴点５ａ’〜５ｇ’の座標に変換する写像を示す情報を、ロール方向の回転自由度に対応する第１変化情報として生成する。このようにして、変化情報生成部５８は、第１ＣＧ動画のｋ番目のフレーム８４に対応する第１変化情報セット５９１を生成する。
【０１１０】
変化情報生成部５８は、同様の方法により、第１ＣＧ動画のうちの教示範囲の残りのフレームに対応する第１変化情報セット５９１を生成する。
【０１１１】
＜Ｂ１−２−９．算出部＞
算出部６０は、撮像装置２１，２２によって撮像された実画像上の対象物の状態を第１ＣＧ動画および第２ＣＧ動画の目標フレーム上の対象物のモデルの状態にそれぞれ近づけるための複数の自由度の各々の制御量を算出する。
【０１１２】
算出部６０は、変化情報記憶部５９から、目標フレームに対応する第１変化情報セット５９１および第２変化情報セット５９２を取得し、取得した第１変化情報セット５９１および第２変化情報セット５９２に基づいて、制御量を算出する。上述したように、第１変化情報および第２変化情報は、単位制御量だけ対象ロボットを制御する前の画像上の対象物を、単位制御量だけ対象ロボットを制御した後の画像上の対象物に変換する写像を示す。そこで、算出部６０は、実画像から抽出された対象物の特徴点の画像上の座標と、目標フレームから抽出された対象物のモデルの特徴点の画像上の座標とを画像処理部５５から取得する。算出部６０は、変化情報に基づいて、実画像上の対象物を目標フレーム上の対象物のモデルに写像するための複数の自由度の各々の制御量を算出する。
【０１１３】
図９を参照して、第１制御部５７ａの算出部６０による制御量の算出方法を説明する。なお、第２制御部５７ｂの算出部６０による制御量の算出方法も同様の方法であるため、説明を省略する。
【０１１４】
図９は、第１制御部の算出部による制御量の算出方法を説明する図である。算出部６０は、第１ＣＧ動画の目標フレームから抽出されたオスコネクタモデル２ａ’の特徴点４ａ’〜４ｇ’の画像上の座標を画像処理部５５から取得する。さらに、算出部６０は、撮像装置２１の撮像により得られた実画像から抽出されたオスコネクタ２ａの特徴点４ａ〜４ｇの画像上の座標を画像処理部５５から取得する。なお、特徴点の数は、７つに限定されるものではない。
【０１１５】
算出部６０は、各特徴点の差分ベクトル６ａ〜６ｇを算出する。差分ベクトル６ａ〜６ｇはそれぞれ、特徴点４ａ〜４ｇを起点とし、特徴点４ａ’〜４ｇ’を終点とするベクトルである。算出部６０は、差分ベクトル６ａ〜６ｇの平均のｘ成分Δｘ１およびｙ成分Δｙ１を算出する。ｘ成分およびｙ成分は、画像の座標系で示される。
【０１１６】
同様の方法により、算出部６０は、撮像装置２２の撮像により得られた実画像から抽出された特徴点と第２基準動画の目標フレームから抽出された特徴点との差分ベクトルの平均のｘ成分Δｘ２およびｙ成分Δｙ２を算出する。
【０１１７】
まず、算出部６０は、複数の特徴点それぞれの差分ベクトルの平均分がなくなるように、３つの並進自由度の制御量を算出する。具体的には、算出部６０は、Δｘ１，Δｙ１，Δｘ２およびΔｙ２と第１変化情報セット５９１と第２変化情報セット５９２とを用いて、ハンド３１ａのＸ方向、Ｙ方向およびＺ方向の並進自由度の各々の制御量を算出する。
【０１１８】
ハンド３１ａがＸ方向、Ｙ方向およびＺ方向の並進自由度のいずかに並進移動した場合、撮像装置２１，２２の撮像により得られる画像上において、オスコネクタ２ａは一定方向に並進移動する。そのため、第１変化情報セット５９１における並進自由度に対応する第１変化情報は、画像上の任意の点を一定方向に並進移動させた点に変換する写像を示す。同様に、第２変化情報セット５９２における並進自由度に対応する第２変化情報は、画像上の任意の点を一定方向に並進移動させた点に変換する写像を示す。
【０１１９】
ここで、目標フレームに対応する第１変化情報セット５９１のＸ方向の並進自由度に対応する第１変化情報が、点（ｘ、ｙ）を点（ｘ＋ｄＸ１＿１，ｙ＋ｄＹ１＿１）に変換する写像を示すものとする。Ｙ方向への並進自由度に対応する第１変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ１＿２，ｙ＋ｄＹ１＿２）に変換する写像を示すものとする。Ｚ方向への並進自由度に対応する第１変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ１＿３，ｙ＋ｄＹ１＿３）に変換する写像を示すものとする。
【０１２０】
さらに、目標フレームに対応する第２変化情報セット５９２のＸ方向への並進自由度に対応する第２変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ２＿１，ｙ＋ｄＹ２＿１）に変換する写像を示すものとする。Ｙ方向への並進自由度に対応する第２変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ２＿２，ｙ＋ｄＹ２＿２）に変換する写像を示すものとする。Ｚ方向への並進自由度に対応する第２変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ２＿３，ｙ＋ｄＹ２＿３）に変換する写像を示すものとする。
【０１２１】
このとき、算出部６０は、以下の４つの線形方程式（１）〜（４）を解くことにより、係数ａ１，ａ２，ａ３を算出する。
【０１２２】
ａ１×ｄＸ１＿１＋ａ２×ｄＸ１＿２＋ａ３×ｄＸ１＿３＝Δｘ１  ・・（１）
ａ１×ｄＹ１＿１＋ａ２×ｄＹ１＿２＋ａ３×ｄＹ１＿３＝Δｙ１  ・・（２）
ａ１×ｄＸ２＿１＋ａ２×ｄＸ２＿２＋ａ３×ｄＸ２＿３＝Δｘ２  ・・（３）
ａ１×ｄＹ２＿１＋ａ２×ｄＹ２＿２＋ａ３×ｄＹ２＿３＝Δｙ２  ・・（４）。
【０１２３】
本実施の形態では、第１変化情報および第２変化情報は、単位制御量だけ対象ロボットを制御したときの画像上の対象物の状態の変化量を示す。そのため、算出部６０は、Ｘ方向の並進自由度の制御量を単位制御量のａ１倍、Ｙ方向の並進自由度の制御量を単位制御量のａ２倍、Ｚ方向の並進自由度の制御量を単位制御量のａ３倍とする。これら並進自由度の制御量は、複数の特徴点の差分ベクトルの平均分だけ、実画像上のオスコネクタ２ａの状態を目標フレーム上のオスコネクタ２ａの状態に近づけるための制御量である。
【０１２４】
次に、算出部６０は、３つの回転自由度の各々の制御量を算出する。算出部６０は、各特徴点の差分ベクトルから上記の平均のｘ成分（Δｘ１またはΔｘ２）およびｙ成分（Δｙ１またはΔｙ２）を差し引く。算出部６０は、たとえば山登り法のような探索アルゴリズムを用いて、各特徴点の差分ベクトルの残差が最も０に近くなる３つの回転自由度の制御量を算出する。
【０１２５】
具体的には、算出部６０は、ピッチ方向、ヨー方向およびロール方向の回転自由度の制御量が０である解を現在の解として探索アルゴリズムを開始する。算出部６０は、現在の解の近傍の複数の解の各々に従ってロボット３０ａを制御したときの、各特徴点の差分ベクトルの残差の変化をシミュレーションする。算出部６０は、シミュレーション結果から、現在の解よりも各特徴点の差分ベクトルの残差が０に近い近傍解が存在する場合に、当該近傍解を現在の解に置き換える。算出部６０は、この処理を繰り返すことにより、差分ベクトルの残差が極値となる解を探索する。
【０１２６】
＜Ｂ−２−１０．指令部＞
指令部６１は、算出部６０によって算出された制御量だけ対象ロボットを移動させるための制御指令を生成し、生成した制御指令を対象ロボットコントローラに出力する。対象ロボットコントローラは、第１制御部５７ａではロボットコントローラ４０ａであり、第２制御部５７ｂではロボットコントローラ４０ｂである。
【０１２７】
＜Ｂ−２−１１．終了判定部＞
終了判定部６２は、実画像上の対象物の状態と教示範囲の最終フレーム上の対象物のモデルの状態との偏差を算出し、算出した偏差が予め定められた閾値未満である場合に、対象ロボットの制御を終了すると判定する。終了判定部６２は、対象ロボットの制御を終了すると判定すると、終了通知を出力する。
【０１２８】
偏差は、たとえば、実画像および最終フレームから抽出された対応する特徴点同士の距離の平均である。
【０１２９】
閾値は、対象物の状態に要求される精度に応じて設定される。閾値は、第１制御部５７ａでは閾値Ｔｈａであり、第２制御部５７ｂでは閾値Ｔｈｂである。閾値Ｔｈａと閾値Ｔｈｂとは同じであってもよいし、異なっていてもよい。
【０１３０】
＜Ｃ．動作例＞
＜Ｃ−１．ロボットの制御＞
図１０を参照して、第１ＣＧ動画および第２ＣＧ動画に従って対象物の状態を変化させるように対象ロボットを制御する処理の流れについて説明する。図１０は、第１ＣＧ動画および第２ＣＧ動画に沿って対象物の状態を変化させるように対象ロボットを制御する処理の流れの一例を示すフローチャートである。
【０１３１】
まずステップＳ１において、制御装置５０は、全ての制御部（第１制御部５７ａおよび第２制御部５７ｂ）の終了判定部６２から終了通知が出力されているか否かを判定する。全ての制御部の終了判定部６２から終了通知が出力されている場合（ステップＳ１でＹＥＳ）、処理を終了する。
【０１３２】
全ての制御部の終了判定部６２から終了通知が出力されていない場合（ステップＳ１でＮＯ）、ステップＳ２において、制御装置５０は、撮像装置２１，２２によって撮像された実画像を取得する。
【０１３３】
ステップＳ３において、画像処理部５５は、テンプレートマッチングにより、実画像から全ての対象物（オスコネクタ２ａおよびメスコネクタ２ｂ）を検出し、各対象物の特徴点の座標を抽出する。さらに、画像処理部５５は、テンプレートマッチングにより、目標フレームから全ての対象物のモデル（オスコネクタモデル２ａ’およびメスコネクタモデル２ｂ’）を検出し、各モデルの特徴点の座標を抽出する。
【０１３４】
ステップＳ４において、目標フレーム選択部５６は、第１ＣＧ動画および第２ＣＧ動画から目標フレームを選択する。
【０１３５】
ステップＳ５において、目標フレーム選択部５６は、目標フレームを教示範囲内に含む対象物を特定し、特定した対象物を制御する制御部（第１制御部５７ａおよび第２制御部５７ｂの少なくとも一方）に対して制御指示を出力する。
【０１３６】
ステップＳ６において、制御指示を受けた制御部（第１制御部５７ａおよび第２制御部５７ｂの少なくとも一方）は、対象ロボットの制御を行う。ステップＳ６の後、処理はステップＳ１に戻る。ステップＳ１でＮＯである場合、ステップＳ２〜Ｓ６の一連処理が撮像周期毎に繰り返される。また、ステップＳ１でＮＯである場合、ステップＳ２〜Ｓ６がステップＳ６による対象ロボットの制御を行っている間に、次の実画像を取得するステップＳ２を開始してもよい。これにより、対象ロボットの動作を停止させることなく、最新の実画像に応じて対象ロボットが制御され続ける。その結果、対象物の状態を速く変化させることができる。
【０１３７】
＜Ｃ−２．目標フレームの選択＞
図１１および図１２を参照して、目標フレーム選択部５６による目標フレームの選択処理の流れについて説明する。図１１は、図１０に示すステップＳ４のサブルーチンの処理の流れを示すフローチャートである。図１２は、最近接フレームと目標フレームとの関係を示す図である。
【０１３８】
まずステップＳ１１において、目標フレーム選択部５６は、第１ＣＧ動画および第２ＣＧ動画の各フレームから抽出された全ての対象物のモデルの特徴点の座標を画像処理部５５から取得する。
【０１３９】
ステップＳ１２において、目標フレーム選択部５６は、撮像装置２１，２２によって撮像された実画像から抽出された全ての対象物の特徴点の座標を画像処理部５５から取得する。
【０１４０】
ステップＳ１３において、目標フレーム選択部５６は、１回目の目標フレームの選択が完了しているか否かを判定する。
【０１４１】
１回目の目標フレームの選択が完了している場合（ステップＳ１３でＹＥＳ）、ステップＳ１４において、目標フレーム選択部５６は、前回の目標フレームがいずれかの対象物に対応する教示範囲の最終フレームであるか否かを判定する。
【０１４２】
前回の目標フレームが最終フレームである場合（ステップＳ１４でＹＥＳ）、処理はステップＳ１５に移る。ステップＳ１５において、目標フレーム選択部５６は、当該最終フレームが属する教示範囲に対応する対象物について、実画像上の対象物の状態と最終フレーム上の対象物のモデルの状態との偏差を算出し、偏差が閾値未満であるか否かを判定する。偏差は、たとえば、実画像および最終フレームにおける対応する特徴点同士の距離の平均である。
【０１４３】
偏差が閾値以上である場合（ステップＳ１５でＮＯ）、ステップＳ１６において、目標フレーム選択部５６は、前回の目標フレームと同じフレームを目標フレームとして選択する。ステップＳ１６の後、処理は終了する。
【０１４４】
偏差が閾値未満である場合（ステップＳ１５でＹＥＳ）、対象物の状態が最終フレーム上の対象物のモデルの状態に到達したと判定され、処理はステップＳ１７に移る。１回目の目標フレームの選択が完了していない場合（ステップＳ１３でＮＯ）、および前回の目標フレームが最終フレームでない場合（ステップＳ１４でＮＯ）も、処理はステップＳ１７に移る。
【０１４５】
ステップＳ１７において、目標フレーム選択部５６は、実画像上における全ての対象物の状態と各フレーム上における全ての対象物のモデルの状態との偏差を算出し、最小偏差のフレームを最近接フレームとして特定する。偏差は、たとえば、実画像および各フレームにおける対応する特徴点同士の距離の平均である。
【０１４６】
具体的には、目標フレーム選択部５６は、撮像装置２１によって撮像された実画像上における全ての対象物の状態と第１ＣＧ動画のｋ番目のフレーム上における全ての対象物のモデルの状態との第１偏差を算出する。さらに、目標フレーム選択部５６は、撮像装置２２によって撮像された実画像上における全ての対象物の状態と第２基準動画のｋ番目のフレーム上における全ての対象物のモデルの状態との第２偏差を算出する。目標フレーム選択部５６は、第１偏差と第２偏差との平均をｋ番目のフレームに対応する偏差として算出する。
【０１４７】
ステップＳ１８において、目標フレーム選択部５６は、最近接フレームから所定数だけ後のフレームまでに、いずれかの教示範囲の最終フレームがあるか否かを判定する。
【０１４８】
最終フレームがある場合（ステップＳ１８でＹＥＳ）、ステップＳ１９において、目標フレーム選択部５６は、当該最終フレームを目標フレームとして選択する。なお、最近接フレームから所定数だけ後のフレームまでに複数の最終フレームがある場合、目標フレーム選択部５６は、当該複数の最終フレームのうち最もフレーム番号の小さい最終フレームを選択する。
【０１４９】
最終フレームがない場合（ステップＳ１８でＮＯ）、ステップＳ２０において、目標フレーム選択部５６は、最近接フレームから所定数だけ後のフレームを目標フレームとして選択する。ステップＳ２０の後、目標フレームの選択処理は終了する。
【０１５０】
＜Ｃ−３．制御部の処理＞
図１３を参照して、図１０のステップＳ６のサブルーチンの処理について説明する。図１３は、図１０に示すステップＳ６のサブルーチンの処理の流れを示すフローチャートである。
【０１５１】
まずステップＳ２１において、終了判定部６２は、目標フレームが教示範囲の最終フレームであるか否かを判定する。
【０１５２】
目標フレームが最終フレームである場合（ステップＳ２１でＹＥＳ）、ステップＳ２２において、終了判定部６２は、実画像上における対象物の状態と最終フレーム上における対象物のモデルの状態との偏差が閾値未満か否かを判定する。
【０１５３】
偏差が閾値未満である場合（ステップＳ２２でＹＥＳ）、ステップＳ２３において、終了判定部６２は、終了通知を出力する。ステップＳ２３の後、処理は終了する。
【０１５４】
目標フレームが最終フレームではない場合（ステップＳ２１でＮＯ）、および、偏差が閾値以上である場合（ステップＳ２２でＮＯ）、処理はステップＳ２４に移る。
【０１５５】
ステップＳ２４において、算出部６０は、目標フレームに対応する第１変化情報セット５９１および第２変化情報セット５９２に基づいて、実画像上の対象物の状態を目標フレーム上の対象物のモデルの状態に近づけるための複数の自由度の各々の制御量を算出する。
【０１５６】
ステップＳ２５において、指令部６１は、算出された制御量を示す制御指令を生成し、対象ロボットコントローラに出力する。ステップＳ２５の後、処理は終了する。
【０１５７】
第１制御部５７ａおよび第２制御部５７ｂはそれぞれ、図１３に示す流れに従って、対象ロボットを制御する。オスコネクタ２ａおよびメスコネクタ２ｂの教示範囲に目標フレームが含まれる場合、実画像上のオスコネクタ２ａの状態が目標フレーム上のオスコネクタモデル２ａ’の状態に近づくようにロボット３０ａが制御される。さらに、実画像上のメスコネクタ２ｂの状態が目標フレーム上のメスコネクタモデル２ｂ’の状態に近づくようにロボット３０ｂが制御される。これにより、オスコネクタ２ａおよびメスコネクタ２ｂの状態は、目標フレームに従って連係して変化する。
【０１５８】
＜Ｃ−４．作用・効果＞
以上のように、制御システム１は、ロボット３０ａ，３０ｂと、撮像装置２１，２２と、ロボット３０ａ，３０ｂを制御する制御装置５０とを備える。ロボット３０ａ，３０ｂは、オスコネクタ２ａおよびメスコネクタ２ｂを支持して、オスコネクタ２ａおよびメスコネクタ２ｂの状態をそれぞれ変化させる。撮像装置２１，２１は、ロボット３０ａ，３０ｂと異なる固定位置に設置され、ロボット３０ａ，３０ｂによってそれぞれ支持されたオスコネクタ２ａおよびメスコネクタ２ｂを撮像する。
【０１５９】
制御装置５０は、オスコネクタ２ａおよびメスコネクタ２ｂのモデルを示す第１ＣＧ動画および第２ＣＧ動画を記憶している。
【０１６０】
制御装置５０は、オスコネクタ２ａおよびメスコネクタ２ｂの各々について変化情報を取得する。オスコネクタ２ａに対応する変化情報は、ロボット３０ａの制御量と、撮像装置２１，２２の画像上におけるオスコネクタ２ａの状態の変化量との関係を示す。メスコネクタ２ｂに対応する変化情報は、ロボット３０ｂの制御量と、撮像装置２１，２２の画像上におけるメスコネクタ２ｂの状態の変化量との関係を示す。
【０１６１】
制御装置５０は、撮像装置２１，２２によって撮像された実画像を取得する第１処理と、第１ＣＧ動画および第２ＣＧ動画から目標フレームを選択する第２処理と、実画像と目標フレームとに基づいてロボット３０ａ，３０ｂの各々を制御する第３処理とを行なう。制御装置５０は、オスコネクタ２ａに対応する変化情報に基づいて、実画像上のオスコネクタ２ａの状態を目標フレーム上のオスコネクタモデル２ａ’の状態に近づけるためのロボット３０ａの制御量を算出し、算出した制御量に従ってロボット３０ａを制御する。制御装置５０は、メスコネクタ２ｂに対応する変化情報に基づいて、実画像上のメスコネクタ２ｂの状態を目標フレーム上のメスコネクタモデル２ｂ’の状態に近づけるためのロボット３０ｂの制御量を算出し、算出した制御量に従ってロボット３０ｂを制御する。
【０１６２】
これにより、実画像上のオスコネクタ２ａおよびメスコネクタ２ｂの状態を目標フレーム上のオスコネクタモデル２ａ’およびメスコネクタモデル２ｂ’の状態までそれぞれ変化させることができる。つまり、オスコネクタ２ａおよびメスコネクタ２ｂの状態は、目標フレームに従って連係して変化する。
【０１６３】
制御装置５０は、第１から第３処理を含む一連処理を繰り返し実行し、第３処理を行なっている間に次の一連処理の第１処理を開始する。これにより、ロボット３０ａ，３０ｂの動作を停止させることなく、最新の実画像に応じてロボット３０ａ，３０ｂが制御され続ける。その結果、オスコネクタ２ａおよびメスコネクタ２ｂの状態を速く変化させることができる。
【０１６４】
＜Ｄ．変形例＞
＜Ｄ−１．変形例１＞
図１４は、メスコネクタの設計データと、当該設計データに従って製造されたメスコネクタとの寸法を示す図である。一般に、製造条件によって、製造品の寸法が設計データからずれ、製造誤差が発生することがある。図１４に示す例では、挿入孔７の位置が切欠き部８から遠ざかる方向にずれる傾向の製造誤差（系統誤差）が示される。
【０１６５】
上記の説明では、実画像上のメスコネクタ２ｂの状態が目標フレーム上のメスコネクタモデル２ｂ’の状態に近づくように、ロボット３０ｂが制御される。目標フレームは、設計データに基づいて生成された第１ＧＣ動画および第２ＣＧ動画から選択される。そのため、図１４に示されるような製造誤差が生じている場合、第１ＣＧ動画および第２ＣＧ動画に従ってオスコネクタ２ａおよびメスコネクタ２ｂの状態を変化させると、オスコネクタ２ａのピン（図示せず）がメスコネクタ２ｂの挿入孔７に挿入できない可能性がある。
【０１６６】
変形例１に係る制御システムでは、算出部６０によって算出された制御量を製造誤差に応じたオフセット量だけ調整する。指令部６１は、調整後の制御量だけ対象ロボットを移動させるための制御指令を生成し、生成した制御指令を対象ロボットコントローラに出力する。これにより、製造誤差が生じていたとしても、オスコネクタ２ａのピンをメスコネクタ２ｂの挿入孔７に挿入させることができる。
【０１６７】
図１５は、変形例１に係る制御システムの概要を示す模式図である。図１５に示されるように、変形例１に係る制御システム１Ａは、図１に示す制御システム１と比較して、力覚センサ３２をさらに備えるとともに、制御装置５０の代わりに制御装置５０Ａを備える点で相違する。
【０１６８】
力覚センサ３２は、オスコネクタ２ａおよびメスコネクタ２ｂの一方が他方から受ける力を検出する。図１５に示す例では、力覚センサ３２は、オスコネクタ２ａがメスコネクタ２ｂから受ける力を検出するように、ロボット３０ａのアームとハンド３１ａとの間に取り付けられている。
【０１６９】
制御装置５０Ａは、制御装置５０と同様に、図４に示されるようなハードウェア構成を有する。そのため、制御装置５０Ａのハードウェア構成の詳細な説明を省略する。
【０１７０】
図１６は、変形例１に係る制御装置の機能構成を示すブロック図である。図１６に示されるように、制御装置５０Ａは、図５に示す制御装置５０と比較して、第１制御部５７ａおよび第２制御部５７ｂの代わりに第１制御部１５７ａおよび第２制御部１５７ｂをそれぞれ備え、かつ、オフセット量決定部６３をさらに備える点で相違する。
【０１７１】
オフセット量決定部６３は、第１制御部１５７ａおよび第２制御部１５７ｂの少なくとも一方の算出部６０によって算出される制御量を調整するためのオフセット量（「調整量」ともいう）を決定する。変形例１では、オフセット量決定部６３は、第２制御部５７ｂの算出部６０によって算出される制御量を調整するためのオフセット量を決定し、決定したオフセット量を第２制御部１５７ｂに出力する。
【０１７２】
オフセット量決定部６３は、力覚センサ３２によって検知される力が極小となるメスコネクタ２ｂの状態を探索し、探索されたメスコネクタ２ｂの状態に基づいてオフセット量を決定する。力覚センサ３２によって検知される力が極小であるとき、オスコネクタ２ａとメスコネクタ２ｂとが接合する際の抵抗が極小となる。このとき、オスコネクタ２ａのピンとメスコネクタ２ｂの挿入孔７との相対的な位置ずれも極小となる。
【０１７３】
オフセット量決定部６３は、第２制御部５７ｂの制御対象であるロボット３０ｂにおける３自由度の各々のオフセット量を決定する。具体的には、オフセット量決定部６３は、ステージ３１ｂのＸ方向の並進自由度のオフセット量ΔＸと、ステージ３１ｂのＹ方向の並進自由度のオフセット量ΔＹと、ステージ３１ｂの回転自由度のオフセット量Δθとを決定する。
【０１７４】
図１７は、変形例１における第１制御部および第２制御部の機能構成を示すブロック図である。図１７に示されるように、第１制御部１５７ａおよび第２制御部１５７ｂの各々は、図７に示す第１制御部５７ａおよび第２制御部５７ｂと比較して、指令部６１の代わりに指令部１６１を備える点で相違する。
【０１７５】
指令部１６１は、オフセット量決定部６３からオフセット量を受けた場合、算出部６０によって算出された制御量に対してオフセット量を加算することにより、当該制御量を調整する。指令部１６１は、調整後の制御量だけロボット３０ｂを移動させるための制御指令を生成し、生成した制御指令をロボットコントローラ４０ｂに出力する。なお、指令部１６１は、オフセット量決定部６３からオフセット量を受けない場合、上記の指令部６１と同様に、算出部６０によって算出された制御量だけロボット３０ｂを移動させるための制御指令を生成し、生成した制御指令をロボットコントローラ４０ｂに出力する。
【０１７６】
図１８を参照して、変形例１におけるオフセット量の決定処理の流れについて説明する。図１８は、変形例１におけるオフセット量の決定処理の流れの一例を示すフローチャートである。
【０１７７】
図１８に示すオフセット量の決定処理は、オスコネクタ２ａおよびメスコネクタ２ｂの少なくとも一方の製造誤差が変動しやすいタイミング（たとえば、オスコネクタ２ａおよびメスコネクタ２ｂの少なくとも一方のロットが変更されたタイミング）ごとに行なわれる。
【０１７８】
まずステップＳ３１において、オフセット量決定部６３は、（ΔＸ，ΔＹ，Δθ）＝（０，０，０）を、オフセット量の現在の解として設定し、設定した現在の解を第２制御部１５７ｂに出力する。
【０１７９】
ステップＳ３２において、制御装置５０Ａは、図１０に示す一連のステップＳ１〜Ｓ６をステップＳ１でＹＥＳとなるまで繰り返し行なう。このとき、（ΔＸ，ΔＹ，Δθ）＝（０，０，０）に従ったロボット制御が行なわれる。すなわち、ステップＳ６のサブルーチンを示す図１３のステップＳ２５において、第１制御部１５７ａおよび第２制御部１５７ｂの指令部１６１は、算出部６０によって算出された制御量だけロボット３０ｂを移動させるための制御指令を生成し、生成した制御指令をロボットコントローラ４０ｂに出力する。
【０１８０】
ステップＳ３３において、オフセット量決定部６３は、ステップＳ３２の処理中における力覚センサ３２の検出値を取得する。当該検出値は、たとえば、ステップＳ３２の処理中に力覚センサ３２によって検出された力の平均値または最大値である。
【０１８１】
ステップＳ３４において、オフセット量決定部６３は、現在の解の近傍解の１つを選択し、選択した近傍解を第２制御部１５７ｂに出力する。（ΔＸ，ΔＹ，Δθ）＝（Ｘ０，Ｙ０，θ０）を現在の解とするとき、（ΔＸ，ΔＹ，Δθ）＝（Ｘ０＋ａ１，Ｙ０，θ０），（Ｘ０−ａ１，Ｙ０，θ０），（Ｘ０，Ｙ０＋ａ１，θ０），（Ｘ０，Ｙ０−ａ１，θ０），（Ｘ０，Ｙ０，θ０＋ａ２），（Ｘ０，Ｙ０，θ０−ａ２）の６通りを近傍解とする。ａ１は、ステージ３１ｂの並進自由度の単位制御量を示す。ａ２は、ステージ３１ｂの回転自由度の単位制御量を示す。
【０１８２】
ステップＳ３５において、制御装置５０Ａは、図１０に示す一連のステップＳ１〜Ｓ６をステップＳ１でＹＥＳとなるまで繰り返し行なう。このとき、ステップＳ３４で選択された近傍解に従ってロボット制御される。すなわち、第２制御部１５７ｂの指令部１６１は、算出部６０によって算出された制御量に近傍解で示されるオフセット量だけ加算することにより、当該制御量を調整する。第１制御部１５７ａの指令部１６１は、オフセット量を受けていないため、算出部６０によって算出された制御量の調整を行なわない。
【０１８３】
ステップＳ３６において、オフセット量決定部６３は、ステップＳ３５の処理中における力覚センサ３２の検出値を取得する。
【０１８４】
ステップＳ３７において、オフセット量決定部６３は、未選択の近傍解があるか否かを判定する。未選択の近傍解がある場合（ステップＳ３７でＹＥＳ）、オフセット量の決定処理は、ステップＳ３４に戻る。これにより、未選択の近傍解についても力覚センサ３２の検出値を取得できる。
【０１８５】
未選択の近傍解がない場合（ステップＳ３７でＮＯ）、ステップＳ３８において、オフセット量決定部６３は、現在の解に対応する検出値が極小であるか否かを判定する。具体的には、オフセット量決定部６３は、現在の解に対応する検出値がステップＳ３６で取得した全ての検出値（全ての近傍解の各々に対応する検出値）よりも小さい場合に、現在の解に対応する検出値が極小であると判定する。
【０１８６】
現在の解に対応する検出値が極小でない場合（ステップＳ３８でＮＯ）、ステップＳ３９において、オフセット量決定部６３は、検出値が最小である近傍解を現在の解に設定する。ステップＳ３９の後、オフセット量の決定処理はステップＳ３４に戻る。
【０１８７】
現在の解に対応する検出値が極小である場合（ステップＳ３８でＹＥＳ）、ステップＳ４０において、オフセット量決定部６３は、オフセット量の現在の解を維持し、当該現在の解を第２制御部１５７ｂに出力する。ステップＳ４０の後、オフセット量の決定処理は終了する。
【０１８８】
なお、オフセット量決定部６３は、オスコネクタ２ａおよびメスコネクタ２ｂの異なる複数のペアの各々に対して、ステップＳ３１〜Ｓ４０を実行してオフセット量を求め、それらの平均値を算出してもよい。
【０１８９】
図１８に示すフローチャートによれば、ステップＳ３２およびステップＳ３３において、第１ＣＧ動画および第２ＣＧ動画で示されるメスコネクタモデル２ｂ’の状態にメスコネクタ２ｂの状態を合わせたときの、力覚センサ３２の検出値が取得される。その後、ステップＳ３４〜Ｓ３９が繰り返されることにより、力覚センサ３２の検出値が極小となるメスコネクタ２ｂの状態が探索される。そして、メスコネクタモデル２ｂ’の状態から、探索されたメスコネクタ２ｂの状態への変化量が最終的なオフセット量として維持される。
【０１９０】
オスコネクタ２ａおよびメスコネクタ２ｂが設計データ通りに製造されている場合、第１ＣＧ動画および第２ＣＧ動画で示されるメスコネクタモデル２ｂ’の状態にメスコネクタ２ｂの状態を合わせることにより、力覚センサ３２の検出値が最小となる。
【０１９１】
しかしながら、オスコネクタ２ａおよびメスコネクタ２ｂの少なくとも一方に製造誤差が生じた場合、当該製造誤差に応じて、オスコネクタ２ａのピンとメスコネクタ２ｂの挿入孔７との相対位置にずれが生じ得る。その結果、オスコネクタ２ａとメスコネクタ２ｂとの間に意図しない抵抗力（摩擦力を含む）が発生し、力覚センサ３２の検出値が大きくなる。
【０１９２】
上記のように、ステップＳ４０で維持されるオフセット量は、メスコネクタモデル２ｂ’の状態から、力覚センサ３２の検出値が極小となるメスコネクタ２ｂの状態への変化量である。当該変化量は、オスコネクタ２ａのピンとメスコネクタ２ｂの挿入孔７との相対的な位置ずれ量に相当する。当該位置ずれ量は、オスコネクタ２ａおよびメスコネクタ２ｂの少なくとも一方の製造誤差に応じた量である。すなわち、力覚センサ３２の検出値が極小となるオフセット量は、オスコネクタ２ａおよびメスコネクタ２ｂの少なくとも一方の製造誤差に応じた量であり、オスコネクタ２ａのピンとメスコネクタ２ｂの挿入孔７との相対的な位置ずれ量を示す。
【０１９３】
変形例１によれば、製造誤差が生じていたとしても、オスコネクタ２ａのピンをメスコネクタ２ｂの挿入孔７に挿入させることができる。
【０１９４】
なお、上記の説明では、オフセット量決定部６３は、第２制御部５７ｂの算出部６０によって算出される制御量を調整するためのオフセット量を決定したが、第１制御部５７ａの算出部６０によって算出される制御量を調整するためのオフセット量を決定してもよい。
【０１９５】
＜Ｄ−２．変形例２＞
上記の変形例１において、オフセット量決定部６３は、入力装置５３４（図４参照）からオフセット量を取得してもよい。操作者は、オスコネクタ２ａおよびメスコネクタ２ｂの設計データに対する系統誤差を計測し、当該系統誤差に応じたオフセット量を入力装置５３４に入力すればよい。
【０１９６】
なお、操作者は、第１制御部５７ａの算出部６０によって算出される制御量を調整するためのオフセット量と、第２制御部５７ｂの算出部６０によって算出される制御量を調整するためのオフセット量との少なくとも一方を入力装置５３４に入力する。
【０１９７】
たとえば、操作者は、オスコネクタ２ａの系統誤差に基づいて、第１制御部５７ａの算出部６０によって算出される制御量を調整するためのオフセット量を入力する。さらに、操作者は、メスコネクタ２ｂの系統誤差に基づいて、第２制御部５７ｂの算出部６０によって算出される制御量を調整するためのオフセット量を入力する。
【０１９８】
もしくは、操作者は、オスコネクタ２ａおよびメスコネクタ２ｂの系統誤差からオスコネクタ２ａのピンとメスコネクタ２ｂの挿入孔７との相対的な位置ずれ量を求める。操作者は、当該位置ずれ量に応じて、第１制御部５７ａまたは第２制御部５７ｂの算出部６０によって算出される制御量を調整するためのオフセット量を入力してもよい。
【０１９９】
＜Ｄ−３．変形例３＞
変形例３に係る制御システムは、変形例１に係る制御システム１Ａと比較して、制御装置５０Ａの代わりに、図１９に示されるような機能構成を有する制御装置５０Ｂを備える点で相違する。変形例３に係る制御装置５０Ｂは、制御装置５０と同様に、図４に示されるようなハードウェア構成を有する。そのため、制御装置５０Ｂのハードウェア構成の詳細な説明を省略する。
【０２００】
図１９は、変形例３に係る制御装置の機能構成を示すブロック図である。図１９に示されるように、制御装置５０Ｂは、図１６に示す制御装置５０Ａと比較して、教示範囲選択部５４、画像処理部５５、目標フレーム選択部５６、第１制御部１５７ａおよび第２制御部１５７ｂの代わりに教示範囲選択部２５４、画像処理部２５５、目標フレーム選択部２５６、第１制御部２５７ａおよび第２制御部２５７ｂを備え、さらに基準動画生成部６４を備える点で相違する。
【０２０１】
制御装置５０Ｂは、第１ＣＧ動画および第２ＣＧ動画を用いてロボット３０ａ，３０ｂを制御する第１モードと、第１ＣＧ動画および第２ＣＧ動画の代わりに第１基準動画および第２基準動画を用いてロボット３０ａ，３０ｂを制御する第２モードとを有する。
【０２０２】
制御装置５０Ｂは、第１モードにおいて、図１８に示すフローチャートで示される処理を行ない、力覚センサ３２の検出値が極小となるオフセット量の解を求める。
【０２０３】
基準動画生成部６４は、図１８に示すステップＳ３３およびステップＳ３５の各々の際に撮像装置２１から撮像周期ごとに取得した複数の画像からなる画像セットを記憶しておく。基準動画生成部６４は、力覚センサ３２の検出値が極小となるオフセット量の解に対応する画像セットを読み出し、読み出した画像セットに含まれる複数の画像の各々をフレームとする第１基準動画を生成する。
【０２０４】
同様に、基準動画生成部６４は、ステップＳ３３およびステップＳ３５の各々の際に撮像装置２２から撮像周期ごとに取得した複数の画像からなる画像セットを記憶しておく。基準動画生成部６４は、力覚センサ３２の検出値が極小となるオフセット量の解に対応する画像セットを読み出し、読み出した画像セットに含まれる複数の画像の各々をフレームとする第２基準動画を生成する。
【０２０５】
基準動画生成部６４は、生成した第１基準動画および第２基準動画を動画記憶部５１に格納する。第１基準動画のｋ番目（ｋは１〜Ｑのいずれかの整数）のフレームと第２基準動画のｋ番目のフレームとは、同じ撮像周期に撮像装置２１，２２によってそれぞれ撮像された画像である。
【０２０６】
制御装置５０Ｂは、動画記憶部５１に第１基準動画および第２基準動画が格納されると、第２モードに従ってロボット３０ａ，３０ｂを制御する。
【０２０７】
教示範囲選択部２５４は、図５および図１６に示す教示範囲選択部５４の処理に加えて、対象物（オスコネクタ２ａおよびメスコネクタ２ｂ）ごとに、第１基準動画および第２基準動画から教示範囲を選択する。教示範囲選択部２５４は、第１ＣＧ動画および第２ＣＧ動画から教示範囲を選択する方法と同じ方法によって、第１基準動画および第２基準動画から対象物ごとの教示範囲を選択すればよい。
【０２０８】
画像処理部２５５は、図５および図１６に示す画像処理部５５と同様に、対象画像に対して画像処理を行ない、テンプレートマッチングを用いて、対象画像中から対象物を検出する。ただし、画像処理部２５５が画像処理を行なう対象画像には、第１ＣＧ動画のフレーム、第２ＣＧ動画のフレームおよび撮像装置２１，２２によって撮像された実画像の他に、第１基準動画のフレームおよび第２基準動画のフレームが含まれる。
【０２０９】
目標フレーム選択部２５６は、第１モードにおいて、図５および図１６に示す目標フレーム選択部５６と同様に、第１ＣＧ動画および第２ＣＧ動画の各々から目標フレームを選択する。
【０２１０】
目標フレーム選択部２５６は、第２モードにおいて、動画記憶部５１に格納された第１基準動画および第２基準動画の各々から目標フレームを選択する。目標フレーム選択部２５６は、図１１に示すフローに従って、第１基準動画および第２基準動画の各々から目標フレームを選択すればよい。ただし、目標フレーム選択部２５６は、図１１のステップＳ１１において、第１基準動画および第２基準動画の各フレームから抽出された全ての対象物の特徴点の座標を画像処理部２５５から取得する。
【０２１１】
図２０は、変形例３における第１制御部および第２制御部の機能構成を示すブロック図である。図２０に示されるように、第１制御部２５７ａおよび第２制御部１５７ｂの各々は、図１７に示す第１制御部１５７ａおよび第２制御部１５７ｂと比較して、変化情報生成部５８、算出部６０および指令部１６１の代わりに変化情報生成部２５８、算出部２６０および指令部２６１を備える点で相違する。
【０２１２】
変化情報生成部２５８は、図７に示す変化情報生成部５８と同様に、第１ＣＧ動画の教示範囲の各フレームに対して第１変化情報セット５９１を生成し、第２ＣＧ動画の教示範囲の各フレームに対して第２変化情報セット５９２を生成する。
【０２１３】
さらに、変化情報生成部２５８は、第１基準動画の教示範囲の各フレームに対して第３変化情報セット５９３を生成し、第２基準動画の教示範囲の各フレームに対して第４変化情報セット５９４を生成する。
【０２１４】
変化情報生成部２５８は、第１基準動画および第２基準動画の各フレームから抽出された対象物（オスコネクタ２ａまたはメスコネクタ２ｂ）の特徴点の座標を画像処理部２５５から取得する。変化情報生成部２５８は、第１ＣＧ動画および第２ＣＧ動画の各フレームから抽出された対象物のモデル（オスコネクタモデル２ａ’およびメスコネクタモデル２ｂ’）の特徴点の座標を画像処理部２５５から取得する。
【０２１５】
変化情報生成部２５８は、第１基準動画のｉ番目のフレームについて、当該ｉ番目のフレームおよび第１ＣＧ動画のｊ番目（ｊは１〜Ｍの整数）のフレームから抽出された対応する特徴点同士の偏差（たとえば距離の平均）を算出する。変化情報生成部２５８は、偏差が最小となるｊを特定する。変化情報生成部２５８は、第１基準動画のｉ番目のフレームに対応する第３変化情報セット５９３を、第１ＣＧ動画における特定したｊ番目のフレームに対応する第１変化情報セット５９１と同一の内容とする。
【０２１６】
同様に、変化情報生成部２５８は、第２基準動画のｉ番目のフレームについて、当該ｉ番目のフレームおよび第２ＣＧ動画のｊ番目（ｊは１〜Ｍの整数）のフレームから抽出された対応する特徴点同士の偏差（たとえば距離の平均）を算出する。変化情報生成部２５８は、偏差が最小となるｊを特定する。変化情報生成部２５８は、第２基準動画のｉ番目のフレームに対応する第４変化情報セット５９４を、第２ＣＧ動画における特定したｊ番目のフレームに対応する第２変化情報セット５９２と同一の内容とする。
【０２１７】
算出部２６０は、図７に示す算出部６０と同様の処理を行なうことにより、対象ロボットの各自由度の制御量を算出する。算出部２６０は、第１モードにおいて、目標フレームに対応する第１変化情報セット５９１および第２変化情報セット５９２を変化情報記憶部５９から読み出し、読み出した第１変化情報セット５９１および第２変化情報セット５９２に基づいて制御量を算出する。算出部２６０は、第２モードにおいて、目標フレームに対応する第３変化情報セット５９３および第４変化情報セット５９４を変化情報記憶部５９から読み出し、読み出した第３変化情報セット５９３および第４変化情報セット５９４に基づいて制御量を算出する。
【０２１８】
指令部２６１は、第１モードにおいて、図１７に示す指令部１６１と同様の処理を行なうことにより、対象ロボットコントローラに制御指令を出力する。すなわち、指令部２６１は、オフセット量決定部６３からオフセット量を受けている場合、当該オフセット量を用いて制御量を調整し、調整後の制御量だけ対象ロボットを移動させる制御指令を生成する。
【０２１９】
指令部２６１は、第２モードにおいて、図７に示す指令部６１と同様の処理を行なうことにより、対象ロボットコントローラに制御指令を出力する。すなわち、指令部２６１は、算出部２６０から受けた制御量だけ対象ロボットを移動させる制御指令を生成する。
【０２２０】
変形例３によれば、制御装置５０Ｂは、第１モードにおいて、算出部２６０によって算出された制御量をオフセット量だけ調整し、力覚センサ３２によって検出された力が極小となるオフセット量を探索する。制御装置５０Ｂは、探索されたオフセット量だけ制御量を調整したときに撮像装置２１，２２によって撮像された画像を第１，第２基準動画としてそれぞれ取得する。
【０２２１】
その後、制御装置５０Ｂは、第２モードに従った処理を行なう。すなわち、制御装置５０Ｂは、第１ＣＧ動画および第２ＣＧ動画の代わりに第１基準動画および第２基準動画から目標フレームを選択する処理を行なう。
【０２２２】
第１基準動画および第２基準動画は、力覚センサ３２によって検出された力が極小となるときに撮像された画像である。そのため、変形例３によっても、制御装置５０Ｂが第２モードに従った処理を行なうことにより、製造誤差が生じていたとしても、オスコネクタ２ａのピンをメスコネクタ２ｂの挿入孔７に挿入させることができる。
【０２２３】
＜Ｄ−４．変形例４＞
上記の説明では、制御システム１は、オスコネクタ２ａとメスコネクタ２ｂとの接続（組み立て）を行なう。しかしながら、制御システム１は、別の２つの対象物同士を組み立ててもよい。
【０２２４】
図２１は、変形例４に係る制御システムの対象物を示す模式図である。変形例４に係る制御システムは、工業製品の生産ラインなどにおいて、ボルト９ａを、板状部品９ｂに形成されたボルト孔１３にねじ込む。
【０２２５】
ボルト９ａは、ロボット３０ａのハンド３１ａ（図１参照）によって把持される。板状部品９ｂは、ロボット３０ｂのステージ３１ｂ上に載置される。
【０２２６】
＜Ｄ−５．変形例５＞
制御システムに備えられるロボットの個数は、２個に限定されるものではなく、３個以上であってもよい。３個以上の対象物の状態をＣＧ動画に従って連係して変化させる場合には、制御システムは、当該３個以上の対象物の状態をそれぞれ変化させるための３個以上のロボットを備えればよい。この場合、ＣＧ動画は、３個以上の対象物のモデルの状態の変化を示す。
【０２２７】
図２２は、変形例５に係る制御システムの対象物を示す模式図である。変形例５に係る制御システムは、工業製品の生産ラインなどにおいて、円筒部材１０ｅ，１０ｆをビス１０ｃ，１０ｄで接合させる。
【０２２８】
円筒部材１０ｅにはビス孔１１ａ，１１ｂが形成されている、円筒部材１０ｆにはビス孔１２ａ，１２ｂが形成されている。ビス孔１１ａとビス孔１２ａとが重なり合い、ビス孔１１ｂとビス孔１２ｂとが重なり合った状態において、ビス孔１１ａ，１２ａにビス１０ｃが差し込まれ、ビス孔１１ｂ，１２ｂにビス１０ｄが差し込まれる。
【０２２９】
ビス１０ｃは、第１のロボットのハンドによって把持される。ビス１０ｄは、第２のロボットのハンドによって把持される。円筒部材１０ｅは、第３のロボットのハンドによって把持される。円筒部材１０ｆは、第４のロボットのステージ上に載置される。
【０２３０】
撮像装置２１，２２は、ビス孔１１ａ，１２ａとビス１０ｃとを撮像可能な位置に配置される。ただし、撮像装置２１，２２は、ビス孔１１ｂ，１２ｂとビス１０ｄとを撮像できない。そのため、変形例５に係る制御システムは、さらに撮像装置２３，２４を備える。撮像装置２３，２４は、ビス孔１１ｂ，１２ｂとビス１０ｄとを撮像可能な位置に配置される。
【０２３１】
変形例５の制御装置は、撮像装置２１〜２４にそれぞれ対応する４つのＣＧ動画を記憶する。
【０２３２】
変形例５の制御装置は、第１〜第４のロボットにそれぞれ対応する第１〜第４制御部を備えていればよい。第１〜第４制御部の各々は、図７と同様の構成を有する。第１〜第４制御部の各々の変化情報生成部５８は、４つのＣＧ動画にそれぞれ対応する４つの変化情報セットを生成すればよい。そして、算出部６０は、４つの変化情報セットに基づいて、対象ロボットの各自由度の制御量を算出すればよい。これにより、４つの対象物（円筒部材１０ｅ，１０ｆおよびビス１０ｃ，１０ｄ）の状態をＣＧ動画に従って連係して変化させることができる。
【０２３３】
＜Ｄ−６．変形例６＞
図２３を参照して、変形例６に係る制御システムについて説明する。図２３は、変形例６に係る制御システムの概要を示す模式図である。変形例６では、複数の対象物のうちの１つが定位置に設置され、撮像装置２１，２２の状態がロボットによって変化される。
【０２３４】
変形例６に係る制御システム１Ｃは、工業製品の生産ラインなどにおいて、加工具１４ｃ，１４ｄを用いて、大型部材１４ｅの加工対象部分１５，１６を順に加工する。大型部材１４ｊは、たとえば、大型装置の筐体、自動車ボディーなどである。加工具１４ｈ，１４ｉは、たとえばドリル、電動やすりなどである。
【０２３５】
制御システム１Ｃは、図１に示す制御システム１と比較して、ロボット３０ａ，３０ｂ、ロボットコントローラ４０ａ，４０ｂおよび制御装置５０の代わりに、ロボット３０ｃ，３０ｄ，３０ｅ、ロボットコントローラ４０ｃ，４０ｄ，４０ｅおよび制御装置５０Ｃを備える点で相違する。
【０２３６】
ロボット３０ｃは、加工具１４ｃの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｃは、先端に加工具１４ｃを支持するハンド３１ｃを有し、ハンド３１ｃの位置および姿勢を複数の自由度で変化させる。さらに、ロボット３０ｃは、レール３４に沿って矢印ＡＲの方向に移動可能な台座３３ｃを含む。
【０２３７】
ロボット３０ｄは、加工具１４ｄの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｄは、先端に加工具１４ｄを支持するハンド３１ｄを有し、ハンド３１ｄの位置および姿勢を複数の自由度で変化させる。さらに、ロボット３０ｄは、レール３４に沿って矢印ＡＲの方向に移動可能な台座３３ｄを含む。
【０２３８】
ロボット３０ｅは、撮像装置２１，２２の状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｅは、先端に撮像装置２１，２２を支持するハンド３１ｅを有し、ハンド３１ｅの位置および姿勢を複数の自由度で変化させる。さらに、ロボット３０ｅは、レール３４に沿って矢印ＡＲの方向に移動可能な台座３３ｅを含む。
【０２３９】
なお、図２３では、台座３３ｃ，３３ｄ，３３ｅは、共通のレール３４に沿って移動するものとした。しかしながら、台座３３ｃ，３３ｄ，３３ｅごとにレールが設けられており、台座３３ｃ，３３ｄ，３３ｅの各々は、対応するレールに沿って移動してもよい。
【０２４０】
ロボットコントローラ４０ｃ、４０ｄ，４０ｅは、制御装置５０Ｃから受けた制御指令に従って、ロボット３０ｃ，３０ｄ，３０ｅの動作制御をそれぞれ行なう。ロボットコントローラ４０ｃ、４０ｄ，４０ｅは、制御装置５０Ｂからの制御指令に従って、ハンド３１ｃ，３１ｄ，３１ｅの状態をそれぞれ変化させるとともに、台座３３ｃ，３３ｄ，３３ｅをそれぞれ移動させる。
【０２４１】
制御装置５０Ｃは、実施の形態１と同様に、図４に示されるようなハードウェア構成を有する。そのため、制御装置５０Ｃのハードウェア構成の詳細な説明を省略する。
【０２４２】
図２４は、変形例６に係る制御装置の機能構成を示すブロック図である。図２４に示されるように、制御装置５０Ｃは、図５に示す制御装置５０と比較して、第１制御部５７ａおよび第２制御部５７ｂの代わりに第１制御部５７ｃ、第２制御部５７ｄおよび第３制御部５７ｅを備える点で相違する。
【０２４３】
ただし、動画記憶部５１は、加工具１４ｃ，１４ｄと大型部材１４ｅとの見本を示す第１ＣＧ動画および第２ＣＧ動画を記憶する。
【０２４４】
第１ＣＧ動画および第２ＣＧ動画は、たとえば、以下のような第１〜第３シーンを順に示す。第１シーンは、加工対象部分１５のモデルが画像上の定位置にある状態において、加工具１４ｃ，１４ｄのモデルが加工対象部分１５のモデルに対して加工するシーンである。第２シーンは、大型部材１４ｅのモデルが画像上で移動し、大型部材１４ｅの加工対象部分１６のモデルが画像上の定位置に移動するシーンである。第３シーンは、加工対象部分１６のモデルが画像上の定位置にある状態において、加工具１４ｃ，１４ｄのモデルが加工対象部分１６のモデルに対して加工するシーンである。
【０２４５】
教示範囲選択部５４は、加工具１４ｃと加工具１４ｄと大型部材１４ｅとの各々について教示範囲を選択する。
【０２４６】
画像処理部５５は、対象画像から加工具１４ｃと加工具１４ｄと大型部材１４ｅとを検出する。なお、大型部材１４ｅのサイズが大きいため、撮像装置２１，２２の視野には大型部材１４ｅの一部のみが含まれる。そのため、画像処理部５５は、大型部材１４ｅの表面に形成された模様を検出する。
【０２４７】
第１制御部５７ｃは、ロボットコントローラ４０ｃを介してロボット３０ｃを制御し、加工具１４ｃの状態を変化させる。
【０２４８】
第２制御部５７ｄは、ロボットコントローラ４０ｄを介してロボット３０ｄを制御し、加工具１４ｃの状態を変化させる。
【０２４９】
第３制御部５７ｅは、ロボットコントローラ４０ｅを介してロボット３０ｅを制御し、撮像装置２１，２２の状態を変化させる。
【０２５０】
第１制御部５７ｃ、第２制御部５７ｄおよび第３制御部５７ｅの各々は、第１制御部５７ａおよび第２制御部５７ｂと同様に、変化情報生成部５７と、変化情報記憶部５９と、算出部６０と、指令部６１と、終了判定部６２とを備える（図７参照）。
【０２５１】
ただし、各部における対象物、対象ロボットおよび対象ロボットコントローラは、上記の実施の形態と異なる。対象物は、第１制御部５７ｃでは加工具１４ｃであり、第２制御部５７ｄでは加工具１４ｄであり、第３制御部５７ｅでは大型部材１４ｅである。対象ロボットは、第１制御部５７ｃではロボット３０ｃであり、第２制御部５７ｄではロボット３０ｄであり、第３制御部５７ｅではロボット３０ｅである。対象ロボットコントローラは、第１制御部５７ｃではロボットコントローラ４０ｅであり、第２制御部５７ｄではロボットコントローラ４０ｄであり、第３制御部５７ｅではロボットコントローラ４０ｅである。
【０２５２】
第１制御部５７ｃおよび第２制御部５７ｄの変化情報生成部５８は、ロボット３０ｅが動作していない状態において、対象ロボットの単位制御量と、撮像装置２１によって撮像された実画像上の対象物の状態の変化量との関係を示す第１変化情報を生成する。また、第１制御部５７ｃおよび第２制御部５７ｄの変化情報生成部５８は、ロボット３０ｅが動作していない状態において、対象ロボットの単位制御量と、撮像装置２２によって撮像された実画像上の対象物の状態の変化量との関係を示す第２変化情報を生成する。
【０２５３】
具体的には、第１制御部５７ｃの変化情報生成部５８は、大型部材１４ｅの加工対象部分１５が画像上の定位置となる撮像装置２１，２２の状態において、第１変化情報および第２変化情報を生成する。第２制御部５７ｄの変化情報生成部５８は、大型部材１４ｅの加工対象部分１６が画像上の定位置となる撮像装置２１，２２の状態において、第１変化情報および第２変化情報を生成する。
【０２５４】
大型部材１４ｅの状態は、ロボット３０ｅによって変化されない。しかしながら、ロボット３０ｅによって撮像装置２１，２２の状態が変化するため、撮像装置２１，２２の実画像上の大型部材１４ｅの状態は変化する。そのため、第３制御部５７ｅの変化情報生成部５８は、ロボット３０ｅの単位制御量と、撮像装置２１によって撮像された実画像上の大型部材１４ｅの状態の変化量との関係を示す第１変化情報を生成する。また、第３制御部５７ｅの変化情報生成部５８は、ロボット３０ｅの単位制御量と、撮像装置２２によって撮像された実画像上の大型部材１４ｅの状態の変化量との関係を示す第２変化情報を生成する。
【０２５５】
第３制御部５７ｅにおける算出部６０、指令部６１および終了判定部６２の処理内容は、上記の実施の形態に係る第１制御部５７ａおよび第２制御部５７ｂと同じである。
【０２５６】
一方、第１制御部５７ｃおよび第２制御部５７ｄにおける算出部６０は、以下の開始条件が満たされたときのみ、実画像上の対象物の状態が目標フレーム上の対象物の状態に近づくように対象ロボットの制御量を算出する。
開始条件：実画像上の大型部材１４ｅの状態と目標フレーム上の大型部材１４ｅの状態との偏差が閾値Ｔｈｅ未満である。
【０２５７】
第１制御部５７ｃおよび第２制御部５７ｄにおける指令部６１および終了判定部６２の処理内容は、上記の実施の形態に係る第１制御部５７ａおよび第２制御部５７ｂと同じである。
【０２５８】
変形例６に係る制御装置５０Ｃは、上記の実施の形態と同様に図１０のフローチャートに沿って、第１ＣＧ動画および第２ＣＧ動画に従って対象物の状態が変化するように対象ロボットを制御する。
【０２５９】
さらに、変形例６において、第３制御部５７ｅは、上記の実施の形態と同様に図１３に示すフローチャートに従って、図１０に示すステップＳ６のサブルーチンの処理を行なう。しかしながら、第１制御部５７ｃおよび第２制御部５７ｄは、図２５に示すフローチャートに従って、図１０に示すステップＳ６のサブルーチンの処理を行なう。
【０２６０】
図２５は、変形例６の第１制御部および第２制御部の処理の流れを示すフローチャートである。図２５に示されるように、変形例６の第１制御部５７ｃおよび第２制御部５７ｄの処理の流れは、図１３に示すフローチャートと比べて、ステップＳ９０を備える点で相違する。そのため、ステップＳ９０についてのみ説明する。
【０２６１】
ステップＳ９０において、実画像上の大型部材１４ｅの状態と目標フレーム上の大型部材１４ｅの状態との偏差が閾値Ｔｈｊ未満であるか否かが判定される。偏差が閾値Ｔｈｊ以上である場合（ステップＳ９０でＮＯ）、処理は終了する。偏差が閾値Ｔｈｊ未満である場合（ステップＳ９０でＹＥＳ）、ステップＳ２１〜Ｓ２５が行われる。
【０２６２】
このように、制御装置５０Ｃは、実画像上の大型部材１４ｅの状態と目標フレーム上の大型部材１４ｅの状態との偏差が閾値Ｔｈｊを超える場合、ロボット３０ｅのみを制御する。制御装置５０Ｃは、実画像上の大型部材１４ｅの状態と目標フレーム上の大型部材１４ｅの状態との偏差が閾値Ｔｈｊ未満である場合、ロボット３０ｃ〜３０ｅの各々を制御する。
【０２６３】
たとえば、第１ＣＧ動画および第２ＣＧ動画が上記のような第１〜第３シーンを順に示す場合は、以下のようにロボット３０ｃ〜３０ｅが制御される。第１シーンの中から目標フレームが選択されている場合、大型部材１４ｅの加工対象部分１５が画像上の定位置になるように撮像装置２１，２２が移動するまでの間、ロボット３０ｃ，３０ｄは停止した状態となる。そして、大型部材１４ｅの加工対象部分１５が画像上の定位置になってから、第１制御部５７ｃは、実画像上の対象物の状態が目標フレーム上の対象物の状態に近づくように対象ロボットを制御する。その結果、加工具１４ｃ，１４ｄは、加工対象部分１５に対して加工する。この間も、第３制御部５７ｅは、実画像上の大型部材１４ｅの状態が目標フレーム上の大型部材１４ｅの状態に近づくようにロボット３０ｅを制御する。ただし、第１シーンにおいて、大型部材１４ｅの状態は一定であるため、ロボット３０ｅはほとんど動作せず、撮像装置２１，２２の状態は略一定となる。
【０２６４】
上記の第２シーンの中から目標フレームが選択されている場合、実画像上の大型部材１４ｅの状態が変化するようにロボット３０ｅが制御され、撮像装置２１，２２が移動する。大型部材１４ｅの加工対象部分１６が画像上の定位置になるように撮像装置２１，２２が移動するまでの間、ロボット３０ｃ，３０ｄは停止した状態となる。
【０２６５】
大型部材１４ｅの加工対象部分１６が画像上の定位置となり、上記の第３シーンの中から目標フレームが選択されると、第１制御部５７ｃは、実画像上の対象物の状態が目標フレーム上の対象物の状態に近づくように対象ロボットを制御する。その結果、加工具１４ｃ，１４ｄは、加工対象部分１６に対して加工する。この間も、第３制御部５７ｅは、実画像上の大型部材１４ｅの状態が目標フレーム上の大型部材１４ｅの状態に近づくようにロボット３０ｅを制御する。ただし、第３シーンにおいて、大型部材１４ｅの状態は一定であるため、ロボット３０ｅはほとんど動作せず、撮像装置２１，２２の状態は略一定となる。
【０２６６】
図２６は、変形例６に係る制御システムの別の構成例を示す模式図である。図２６に示されるように、ロボット３０ｃ，３０ｄは、ロボット３０ｅに含まれる台座３３ｅの上に設置されてもよい。この場合、ロボット３０ｃ，３０ｄは、ロボット３０ｅと一体となって移動する。
【０２６７】
＜Ｄ−７．変形例７＞
算出部６０は、公知のモデル予測制御（「足立、「モデル予測制御の基礎」、日本ロボット学会誌、2014年7月、第32巻、第6号、p. 9-12」（非特許文献２）参照）を行なうことにより、複数の自由度の制御量を算出してもよい。
【０２６８】
具体的には、目標フレーム選択部５６は、教示範囲のうち予測ホライズン期間に含まれる複数のフレームを目標フレームとして選択する。算出部６０は、目標フレーム上の対象物の状態と、予測ホライズン期間において撮像装置２１，２２によって撮像される画像上の対象物の状態との偏差を最小化するように、制御ホライズン期間における制御量を算出する。
【０２６９】
＜Ｄ−８．その他の変形例＞
上記の説明では、オスコネクタ２ａをメスコネクタ２ｂに向けて移動させることにより、オスコネクタ２ａとメスコネクタ２ｂとを接続させた。しかしながら、オスコネクタ２ａがステージ３１ｂ上に載置され、メスコネクタ２ｂがハンド３１ａに把持されてもよい。この場合、メスコネクタ２ｂをオスコネクタ２ａに向けて移動させることにより、オスコネクタ２ａとメスコネクタ２ｂとを接続させる。
【０２７０】
上記の説明では、制御装置５０，５０Ａ，５０Ｂ，５０Ｃの動画記憶部５１がＣＧ動画を記憶するものとした。しかしながら、制御装置５０，５０Ａ，５０Ｂ，５０Ｃの外部装置がＣＧ動画を記憶していてもよい。
【０２７１】
動画記憶部５１は、ＣＧ動画の代わりに、もしくは、ＣＧ動画に加えて、ＣＧ動画の各フレームから抽出された各対象物の特徴点の座標および特徴量を記憶していてもよい。これにより、ＣＧ動画の各フレームに対する画像処理部５５，２５５の処理を省略することができる。
【０２７２】
＜Ｅ．付記＞
以上のように、本実施の形態および変形例は以下のような開示を含む。
【０２７３】
（構成１）
第１〜第Ｎのロボット（３０ａ〜３０ｅ）と、
第１〜第Ｎの対象物（２ａ，２ｂ，９ａ，９ｂ，１０ｃ〜１０ｆ、１４ｃ〜１４ｅ）を撮像するための撮像装置（２１〜２４）と、
前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）を制御するための制御装置（５０，５０Ａ，５０Ｂ，５０Ｃ）とを備える制御システム（１，１Ａ，１Ｃ）であって、
Ｎは２以上の整数であり、
第ｉのロボット（３０ａ〜３０ｅ）は、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボット（３０ａ〜３０ｅ）は、前記第Ｎの対象物および前記撮像装置（２１〜２４）の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置（２１〜２４）の他方は、定位置に設置され、
前記制御装置（５０，５０Ａ，５０Ｂ，５０Ｃ）は、前記第１〜第Ｎの対象物の各々について変化情報を取得し、
第ｊの対象物に対応する前記変化情報は、第ｊのロボットの制御量と、前記撮像装置の画像上における前記第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御装置（５０，５０Ａ，５０Ｂ，５０Ｃ）は、
前記撮像装置（２１〜２４）によって撮像された実画像を取得する第１処理と、
前記第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第２処理と、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）の各々を制御する第３処理とを行ない、
前記制御装置（５０，５０Ａ，５０Ｂ，５０Ｃ）は、前記第３処理において、前記第ｊの対象物に対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物のモデルの状態に近づけるための前記第ｊのロボット（３０ａ〜３０ｅ）の制御量を算出し、算出した制御量に従って前記第ｊのロボット（３０ａ〜３０ｅ）を制御する、制御システム（１，１Ａ，１Ｃ）。
【０２７４】
（構成２）
前記ＣＧ動画は、前記第１〜第Ｎの対象物の各々の設計データに基づいて作成され、
前記ＣＧ動画は、前記第１の対象物と第２〜第Ｎの対象物のうちの少なくとも１つの対象物とが離れた状態を示すフレームから前記第１の対象物と前記少なくとも１つの対象物とが接合した状態を示すフレームまでを含み、
前記制御装置（５０Ａ）は、前記第３処理において、前記設計データに対する前記第１の対象物および前記少なくとも１つの対象物の製造誤差に応じた調整量だけ前記第１のロボット（３０ａ〜３０ｅ）の制御量を調整し、調整後の制御量に従って前記第１のロボット（３０ａ〜３０ｅ）を制御する、構成１に記載の制御システム（１Ａ）。
【０２７５】
（構成３）
前記制御システム（１Ａ）は、前記第１の対象物および前記少なくとも１つの対象物の一方が他方から受ける力を検知する力覚センサ（３２）を含み、
前記制御装置（５０Ａ，５０Ｂ）は、前記力覚センサによって検知される力が極小となる前記第１の対象物の状態を探索し、探索された前記第１の対象物の状態に基づいて前記調整量を決定する、構成２に記載の制御システム（１Ａ）。
【０２７６】
（構成４）
前記制御装置（５０Ａ，５０Ｂ）は、入力装置（５３４）と接続され、前記入力装置（５３４）から前記調整量を取得する、構成２に記載の制御システム（１Ａ）。
【０２７７】
（構成５）
前記ＣＧ動画は、前記第１の対象物と第２〜第Ｎの対象物のうちの少なくとも１つの対象物とが離れた状態を示すフレームから前記第１の対象物と前記少なくとも１つの対象物とが接合した状態を示すフレームまでを含み、
前記制御システム（５０Ｂ）は、前記第１の対象物および前記少なくとも１つの対象物の一方が他方から受ける力を検知する力覚センサ（３２）を含み、
前記制御装置（５０Ｂ）は、
前記第１処理から前記第３処理を繰り返す第１モードを行ない、
前記第１モードにおける前記第３処理において、前記第１のロボットの制御量を調整して、前記力覚センサによって検知される力が極小となる調整量を探索し、
探索された前記調整量だけ前記第１のロボットの制御量を調整したときに前記撮像装置によって撮像された動画を基準動画として取得し、
前記第１処理と、前記ＣＧ動画の代わりに前記基準動画から前記目標フレームを選択する第４処理と、前記第３処理とを繰り返す第２モードを行なう、構成１に記載の制御システム。
【０２７８】
（構成６）
第１〜第Ｎの対象物（２ａ，２ｂ，９ａ，９ｂ，１０ｃ〜１０ｆ，１４ｃ〜１４ｅ）を撮像するための撮像装置（２１〜２４）を用いて、第１〜第Ｎのロボット（３０ａ〜３０ｅ）を制御する制御方法であって、
Ｎは２以上の整数であり、
第ｉのロボット（３０ａ〜３０ｅ）は、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボット（３０ａ〜３０ｅ）は、前記第Ｎの対象物および前記撮像装置の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置（２１〜２４）の他方は、定位置に設置され、
前記撮像装置（２１〜２４）は、前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）と異なる固定位置に設置され、
前記制御方法は、
前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）の各々について変化情報を取得する第１ステップを備え、
第ｊのロボット（３０ａ〜３０ｅ）に対応する前記変化情報は、前記第ｊのロボット（３０ａ〜３０ｅ）の制御量と、前記撮像装置の画像上における第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御方法は、
前記撮像装置（２１〜２４）によって撮像された実画像を取得する第２ステップと、
前記第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第３ステップと、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）の各々を制御する第４ステップとをさらに備え、
前記第４ステップは、前記第ｊのロボット（３０ａ〜３０ｅ）に対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物の状態に近づけるための制御量を算出し、算出した制御量に従って前記第ｊのロボット（３０ａ〜３０ｅ）制御するステップを含む、制御方法。
【０２７９】
（構成７）
第１〜第Ｎの対象物（２ａ，２ｂ，９ａ，９ｂ，１０ｃ〜１０ｆ，１４ｃ〜１４ｅ）を撮像するための撮像装置（２１〜２４）を用いて、第１〜第Ｎのロボット（３０ａ〜３０ｅ）を制御する制御方法をコンピュータに実行させるためのプログラム（５５０）であって、
Ｎは２以上の整数であり、
第ｉのロボット（３０ａ〜３０ｅ）は、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボット（３０ａ〜３０ｅ）は、前記第Ｎの対象物および前記撮像装置の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置（２１〜２４）の他方は、定位置に設置され、
前記撮像装置（２１〜２４）は、前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）と異なる固定位置に設置され、
前記制御方法は、
前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）の各々について変化情報を取得する第１ステップを備え、
第ｊのロボット（３０ａ〜３０ｅ）に対応する前記変化情報は、前記第ｊのロボット（３０ａ〜３０ｅ）の制御量と、前記撮像装置の画像上における第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御方法は、
前記撮像装置（２１〜２４）によって撮像された実画像を取得する第２ステップと、
前記第１〜第Ｎの対象物のモデルを示すＣＧ動画から目標フレームを選択する第３ステップと、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボット（３０ａ〜３０ｅ）の各々を制御する第４ステップとをさらに備え、
前記第４ステップは、前記第ｊのロボット（３０ａ〜３０ｅ）に対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物の状態に近づけるための制御量を算出し、算出した制御量に従って前記第ｊのロボット（３０ａ〜３０ｅ）制御するステップを含む、プログラム（５５０）。
【０２８０】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２８１】
１，１Ａ，１Ｃ  制御システム、２ａ  オスコネクタ、２ａ’  オスコネクタモデル、２ｂ  メスコネクタ、２ｂ’  メスコネクタモデル、７  挿入孔、８  切欠き部、９ａ  ボルト、９ｂ  板状部品、１０ｃ，１０ｄ  ビス、１０ｅ，１０ｆ  円筒部材、１１ａ，１１ｂ，１２ａ，１２ｂ  ビス孔、１３  ボルト孔、１４ｃ，１４ｄ  加工具、１４ｅ  大型部材、１５，１６  加工対象部分、２１〜２４  撮像装置、３０ａ〜３０ｅ  ロボット、３１ａ，３１ｃ〜３１ｅ  ハンド、３１ａ’  ハンドモデル、３１ｂ  ステージ、３１ｂ’  ステージモデル、３２  力覚センサ、４０ａ〜４０ｅ  ロボットコントローラ、５０，５０Ａ，５０Ｂ，５０Ｃ  制御装置、５１  動画記憶部、５２  設計データ記憶部、５３  ＣＧ動画生成部、５４，２５４  教示範囲選択部、５５，２５５  画像処理部、５６，２５６  目標フレーム選択部、５７ａ，５７ｃ，１５７ａ，２５７ａ  第１制御部、５７ｂ，５７ｄ，１５７ｂ，２５７ｂ  第２制御部、５７ｅ  第３制御部、５８，２５８  変化情報生成部、５９  変化情報記憶部、６０，２６０  算出部、６１，１６１，２６１  指令部、６２  終了判定部、６３  オフセット量決定部、６４  基準動画生成部、５１０  プロセッサ、５１２  ＲＡＭ、５１４  表示コントローラ、５１６  システムコントローラ、５１８  Ｉ／Ｏコントローラ、５２０  ハードディスク、５２２  カメラインターフェイス、５２２ａ，５２２ｂ  画像バッファ、５２４  入力インターフェイス、５２６  ロボットコントローラインターフェイス、５２８  通信インターフェイス、５３０  メモリカードインターフェイス、５３２  表示部、５３４  入力装置、５３６  メモリカード、５５０  制御プログラム、５９１  第１変化情報セット、５９２  第２変化情報セット、５９３  第３変化情報セット、５９４  第４変化情報セット。
【図１】
2020015102.tif 000003
【図２】
2020015102.tif 000004
【図３】
2020015102.tif 000005
【図４】
2020015102.tif 000006
【図５】
2020015102.tif 000007
【図６】
2020015102.tif 000008
【図７】
2020015102.tif 000009
【図８】
2020015102.tif 000010
【図９】
2020015102.tif 000011
【図１０】
2020015102.tif 000012
【図１１】
2020015102.tif 000013
【図１２】
2020015102.tif 000014
【図１３】
2020015102.tif 000015
【図１４】
2020015102.tif 000016
【図１５】
2020015102.tif 000017
【図１６】
2020015102.tif 000018
【図１７】
2020015102.tif 000019
【図１８】
2020015102.tif 000020
【図１９】
2020015102.tif 000021
【図２０】
2020015102.tif 000022
【図２１】
2020015102.tif 000023
【図２２】
2020015102.tif 000024
【図２３】
2020015102.tif 000025
【図２４】
2020015102.tif 000026
【図２５】
2020015102.tif 000027
【図２６】
2020015102.tif 000028