(57)【要約】【課題】複数の対象物の状態が連係して変化可能な制御システムを提供する。【解決手段】制御装置は、撮像装置によって撮像された実画像を取得する第１処理と、基準動画から目標フレームを選択する第２処理と、実画像と目標フレームとに基づいて第１〜第Ｎのロボットの各々を制御する第３処理とを行なう。制御装置は、第３処理において、第ｊの対象物に対応する変化情報に基づいて、実画像上の第ｊの対象物の状態を目標フレーム上の第ｎの対象物の状態に近づけるための第ｊのロボットの制御量を算出し、算出した制御量に従って第ｊのロボットを制御する。【選択図】図１
2020015101.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）がインストールされていてもよい。この場合には、本実施の形態に係る制御プログラムは、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および／またはタイミングで呼び出して処理を実行するものであってもよい。
【００７０】
さらに、本実施の形態に係る制御プログラムは、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組み合わせられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係る制御プログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００７１】
なお、代替的に、制御プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００７２】
＜Ｂ１−２．制御装置の機能構成＞
図５は、実施の形態１に係る制御装置の機能構成を示すブロック図である。図５に示されるように、制御装置５０は、基準動画記憶部５１と、教示範囲選択部５２と、画像処理部５３と、目標フレーム選択部５４と、第１制御部５５ａと、第２制御部５５ｂとを備える。基準動画記憶部５１は、図４に示すハードディスク５２０およびＲＡＭ５１２によって構成される。教示範囲選択部５２と画像処理部５３とは、図４に示すプロセッサ５１０が制御プログラム５５０を実行することにより実現される。
【００７３】
＜Ｂ１−２−１．基準動画記憶部＞
基準動画記憶部５１は、第１基準動画と第２基準動画とを記憶する。第１基準動画および第２基準動画は、ロボット３０ａ，３０ｂを手動で操作して、オスコネクタ２ａおよびメスコネクタ２ｂをそれぞれ移動させ、互いに接続させる様子を示す。もしくは、第１基準動画および第２基準動画は、作業者の手によってオスコネクタ２ａおよびメスコネクタ２ｂを移動させ、互いに接続させる様子を示してもよい。
【００７４】
なお、オスコネクタ２ａが撮像装置２１に最も近い位置にあるときと、オスコネクタ２ａが撮像装置２１から最も遠い位置にあるときとの撮像装置２１の作動距離（ＷＤ）の差は、当該作動距離に比べて十分に小さい。同様に、オスコネクタ２ａが撮像装置２２に最も近い位置にあるときと、オスコネクタ２ａが撮像装置２２から最も遠い位置にあるときとの撮像装置２２の作動距離の差は、当該作動距離に比べて十分に小さい。さらに、移動中のオスコネクタ２ａの姿勢の変化は微小である。そのため、第１基準動画および第２基準動画において、オスコネクタ２ａの形状および大きさはほとんど変化しない。
【００７５】
同様に、メスコネクタ２ｂが撮像装置２１に最も近い位置にあるときと、メスコネクタ２ｂが撮像装置２１から最も遠い位置にあるときとの撮像装置２１の作動距離との差は、当該作動距離に比べて十分に小さい。同様に、メスコネクタ２ｂが撮像装置２２に最も近い位置にあるときと、メスコネクタ２ｂが撮像装置２２から最も遠い位置にあるときとの撮像装置２２の作動距離との差は、当該作動距離に比べて十分に小さい。さらに、移動中のメスコネクタ２ｂの姿勢の変化は微小である。そのため、第１基準動画および第２基準動画において、メスコネクタ２ｂの形状および大きさはほとんど変化しない。
【００７６】
＜Ｂ１−２−２．教示範囲選択部＞
教示範囲選択部５２は、対象物（ここではオスコネクタ２ａおよびメスコネクタ２ｂ）ごとに、第１基準動画および第２基準動画のうちの当該対象物の見本となる教示範囲を選択する。
【００７７】
教示範囲選択部５２は、教示範囲の選択指示を促す画面を表示部５３２に表示する。作業者は、第１基準動画および第２基準動画の各フレームを確認し、入力装置５３４を操作して、対象物が所望の動作をしている一連のフレーム群の先頭フレームと最終フレームとを指定する。教示範囲選択部５２、指示された先頭フレームから最終フレームまでを教示範囲として選択する。
【００７８】
たとえば、図２に示される第１基準動画に対して、教示範囲選択部５２は、１番目のフレーム７０ａからｓ番目よりも後フレーム（メスコネクタ２ｂの一部が欠け始めるフレーム）までをメスコネクタ２ｂの教示範囲として選択する。教示範囲選択部５２は、１番目のフレーム７０ａ（オスコネクタ２ａの全体が現れ始めるフレーム）からｕ番目のフレーム７３ａまでをオスコネクタ２ａの教示範囲として選択する。
【００７９】
同様に、図３に示される第２基準動画に対して、教示範囲選択部５２は、１番目のフレーム７０ｂからｓ番目よりも後フレーム（メスコネクタ２ｂの一部が欠け始めるフレーム）までをメスコネクタ２ｂの教示範囲として選択する。教示範囲選択部５２は、１番目のフレーム７０ｂ（オスコネクタ２ａの全体が現れ始めるフレーム）からｕ番目のフレーム７３ｂまでをオスコネクタ２ａの教示範囲として選択する。
【００８０】
＜Ｂ１−２−３．画像処理部＞
画像処理部５３は、対象画像に対して画像処理を行ない、テンプレートマッチングを用いて、対象画像中から対象物を検出する。テンプレートマッチングの基本処理は、対象物の画像特徴を表すデータであるテンプレートを予め用意しておき、対象画像とテンプレートとの間の画像特徴の一致度を評価することで、対象画像中の対象物の位置や姿勢、形状、サイズを検出する処理である。
【００８１】
画像処理部５３が画像処理を行なう対象画像は、第１基準動画のフレーム、第２基準動画のフレームおよび撮像装置２１，２２によって撮像された実画像である。
【００８２】
画像処理部５３は、事前準備として、対象物（オスコネクタ２ａおよびメスコネクタ２ｂ）ごとのテンプレートを作成する。
【００８３】
図６は、テンプレートの作成方法の一例を示す図である。図６（ａ）には第１基準動画から選択されたフレームが示される。図６（ｂ）には第２基準動画から選択されたフレームが示される。図６に示されるように、画像処理部５３は、第１基準動画および第２基準動画の各々から作業者によって選択されたフレームを表示部５３２（図４参照）に表示させる。作業者は、対象物（オスコネクタ２ａまたはメスコネクタ２ｂ）の全体が示されるフレームを目視によって選択すればよい。
【００８４】
画像処理部５３は、表示部５３２に表示されたフレーム上において、対象物の領域指定を受け付ける。たとえば、作業者は、入力装置５３４（図４参照）を操作して、オスコネクタ２ａを取り囲む線３ａと、メスコネクタ２ｂを取り囲む線３ｂとを入力する。画像処理部５３は、線３ａで囲まれた領域をオスコネクタ２ａの画像領域として特定し、線３ｂで囲まれた領域をメスコネクタ２ｂの画像領域として特定する。
【００８５】
画像処理部５３は、第１基準画像および第２基準画像の各々のフレームに対して、線３ａで囲まれた画像領域から、オスコネクタ２ａの複数の特徴点およびそれらの特徴量を抽出する。画像処理部５３は、複数の特徴点の各々の画像上の座標と特徴量とをオスコネクタ２ａのテンプレートとして作成する。同様に、画像処理部５３は、第１基準画像および第２基準画像の各々のフレームに対して、線３ｂで囲まれた画像領域から、メスコネクタ２ｂの複数の特徴点およびそれらの特徴量を抽出する。画像処理部５３は、複数の特徴点の各々の画像上の座標と特徴量とをメスコネクタ２ｂのテンプレートとして作成する。
【００８６】
特徴点は、画像に含まれるかどや輪郭などから特徴づけられる点であり、たとえばエッジ点である。特徴量は、たとえば、輝度、輝度勾配方向、量子化勾配方向、ＨｏＧ（Histogram of Oriented Gradients）、ＨＡＡＲ−ｌｉｋｅ、ＳＩＦＴ（Scale-Invariant Feature Transform）などである。輝度勾配方向とは、特徴点を中心とする局所領域での輝度の勾配の方向（角度）を連続値で表すものであり、量子化勾配方向とは、特徴点を中心とする局所領域での輝度の勾配の方向を離散値で表す（たとえば、８方向を０〜７の１バイトの情報で保持する）ものである。
【００８７】
画像処理部５３は、第１基準動画のフレームまたは撮像装置２１によって撮像される実画像から複数の特徴点およびそれらの特徴量を抽出する。画像処理部５３は、抽出された特徴点および特徴量と、第１基準画像のフレームから作成した対象物のテンプレートと照合することにより、画像中の対象物を検出する。
【００８８】
画像処理部５３は、第２基準動画のフレームおよび撮像装置２２によって撮像される画像から複数の特徴点およびそれらの特徴量を抽出する。画像処理部５３は、抽出した特徴点および特徴量と、第２基準画像のフレームから作成した対象物のテンプレートと照合することにより、画像中の対象物を検出する。
【００８９】
画像処理部５３は、対象物（オスコネクタ２ａおよびメスコネクタ２ｂ）ごとに、対象画像から抽出した当該対象物の各特徴点の画像上の座標を出力する。
【００９０】
＜Ｂ１−２−４．目標フレーム選択部＞
目標フレーム選択部５４は、第１基準動画および第２基準動画から目標フレームを選択する。ただし、目標フレーム選択部５４は、第１基準動画のｋ番目のフレームを目標フレームとして選択した場合、第２基準動画のｋ番目のフレームを目標フレームとして選択する。目標フレームの選択方法の具体例については後述する。
【００９１】
＜Ｂ１−２−５．第１制御部および第２制御部＞
第１制御部５５ａは、ロボットコントローラ４０ａを介してロボット３０ａを制御し、オスコネクタ２ａの状態を変化させる。
【００９２】
第２制御部５５ｂは、ロボットコントローラ４０ｂを介してロボット３０ｂを制御し、メスコネクタ２ｂの状態を変化させる。
【００９３】
図７は、実施の形態１における第１制御部および第２制御部の機能構成を示すブロック図である。図７に示されるように、第１制御部５５ａおよび第２制御部５５ｂの各々は、変化情報生成部５６と、変化情報記憶部５７と、算出部５８と、指令部５９と、終了判定部６０とを備える。変化情報記憶部５７は、図４に示すハードディスク５２０およびＲＡＭ５１２によって構成される。変化情報生成部５６と、算出部５８と、指令部５９と、終了判定部６０とは、図４に示すプロセッサ５１０が制御プログラム５５０を実行することにより実現される。
【００９４】
＜Ｂ１−２−６．変化情報生成部＞
変化情報生成部５６は、複数の自由度の各々に対して、対象ロボットの制御量と、撮像装置２１によって撮像された実画像上の対象物の状態の変化量との関係を示す第１変化情報を生成する。変化情報生成部５６は、複数の自由度に対してそれぞれ生成した複数の第１変化情報からなる第１変化情報セット５７１を変化情報記憶部５７に格納する。
【００９５】
さらに、変化情報生成部５６は、複数の自由度の各々に対して、対象ロボットの制御量と、撮像装置２２によって撮像された実画像上の対象物の状態の変化量との関係を示す第２変化情報を生成する。変化情報生成部５６は、複数の自由度に対してそれぞれ生成した複数の第２変化情報からなる第２変化情報セット５７２を変化情報記憶部５７に格納する。
【００９６】
対象物は、第１制御部５５ａではオスコネクタ２ａであり、第２制御部５５ｂではメスコネクタ２ｂである。対象ロボットは、第１制御部５５ａではロボット３０ａであり、第２制御部５５ｂではロボット３０ｂである。複数の自由度は、第１制御部５５ａでは６自由度であり、第２制御部５５ｂでは３自由度である。
【００９７】
本実施の形態では、第１変化情報および第２変化情報は、単位制御量だけ対象ロボットを制御したときの画像上の対象物の状態の変化量を示す。具体的には、第１変化情報および第２変化情報は、単位制御量だけ対象ロボットを制御する前の画像上の対象物を、単位制御量だけ対象ロボットを制御した後の画像上の対象物に変換する写像を示す。
【００９８】
単位制御量だけ対象ロボットを制御したときの画像上の対象物の状態の変化量は、対象物の実空間上の状態に依存する。そのため、変化情報生成部５６は、第１基準動画の教示範囲の各フレームに対して第１変化情報セット５７１を生成する。さらに、変化情報生成部５６は、第２基準動画の教示範囲の各フレームに対して第２変化情報セット５７２を生成する。
【００９９】
変化情報生成部５６による第１変化情報セット５７１および第２変化情報セット５７２の生成および格納処理は、事前準備として実行される。
【０１００】
図８を参照して、第１制御部５５ａにおける第１変化情報セット５７１の生成方法を説明する。なお、第１制御部５５ａにおける第２変化情報セット５７２の生成、ならびに、第２制御部５５ｂにおける第１変化情報セット５７１および第２変化情報セット５７２の生成方法も同様の方法であるため、これらの生成方法の説明を省略する。
【０１０１】
図８は、第１制御部における第１変化情報セットの生成方法を説明する図である。図８（ａ）は、第１基準動画のｋ番目のフレーム８４を示す。ｋ番目のフレーム８４に対応するオスコネクタ２ａの実空間上の状態（ここでは位置および姿勢）を基準状態とする。図８（ｂ）は、基準状態からオスコネクタ２ａをＹ方向の並進自由度に単位制御量だけ並進移動させた後に撮像装置２１によって撮像された画像９４ａを示す。図８（ｃ）は、基準状態からオスコネクタ２ａをＸ方向の並進自由度に単位制御量だけ並進移動させた後に撮像装置２１によって撮像された画像９４ｂを示す。図８（ｄ）は、基準状態からオスコネクタ２ａをＺ方向の並進自由度に単位制御量だけ並進移動させた後に撮像装置２１によって撮像された画像９４ｃを示す。図８（ｅ）は、基準状態からオスコネクタ２ａをピッチ方向の回転自由度に単位制御量だけ回転移動させた後に撮像装置２１によって撮像された画像９４ｄを示す。図８（ｆ）は、基準状態からオスコネクタ２ａをヨー方向の回転自由度に単位制御量だけ回転移動させた後に撮像装置２１によって撮像された画像９４ｅを示す。図８（ｇ）は、基準状態からオスコネクタ２ａをロール方向の回転自由度に単位制御量だけ回転移動させた後に撮像装置２１によって撮像された画像９４ｆを示す。
【０１０２】
変化情報生成部５６は、フレーム８４および画像９４ａ〜９４ｆの各々から抽出されたオスコネクタ２ａの各特徴点の画像上の座標を、画像処理部５３から取得する。
【０１０３】
変化情報生成部５６は、フレーム８４から抽出されたオスコネクタ２ａの特徴点４ａ’〜４ｇ’の座標を、画像９４ａから抽出された特徴点４ａ〜４ｇの座標にそれぞれ変換する写像を示す情報を、Ｙ方向の並進自由度に対応する第１変化情報として生成する。
【０１０４】
同様に、変化情報生成部５６は、特徴点４ａ’〜４ｇ’の座標を画像９４ｂから抽出された特徴点４ａ〜４ｇの座標に変換する写像を示す情報を、Ｘ方向の並進自由度に対応する第１変化情報として生成する。変化情報生成部５６は、特徴点４ａ’〜４ｇ’の座標を画像９４ｃから抽出された特徴点４ａ〜４ｇの座標に変換する写像を示す情報を、Ｚ方向の並進自由度に対応する第１変化情報として生成する。変化情報生成部５６は、特徴点４ａ’〜４ｇ’の座標を画像９４ｄから抽出された特徴点４ａ〜４ｇの座標に変換する写像を示す情報を、ピッチ方向の回転自由度に対応する第１変化情報として生成する。変化情報生成部５６は、特徴点４ａ’〜４ｇ’の座標を画像９４ｅから抽出された特徴点４ａ〜４ｇの座標に変換する写像を示す情報を、ヨー方向の回転自由度に対応する第１変化情報として生成する。変化情報生成部５６は、特徴点４ａ’〜４ｇ’の座標を画像９４ｆから抽出された特徴点４ａ〜４ｇの座標に変換する写像を示す情報を、ロール方向の回転自由度に対応する第１変化情報として生成する。このようにして、変化情報生成部５６は、第１基準動画のｋ番目のフレーム８４に対応する第１変化情報セット５７１を生成する。
【０１０５】
変化情報生成部５６は、同様の方法により、第１基準動画のうちの教示範囲の残りのフレームに対応する第１変化情報セット５７１を生成する。
【０１０６】
＜Ｂ１−２−７．算出部＞
算出部５８は、撮像装置２１，２２によって撮像された実画像上の対象物の状態を第１基準動画および第２基準動画の目標フレーム上の対象物の状態にそれぞれ近づけるための複数の自由度の各々の制御量を算出する。
【０１０７】
算出部５８は、変化情報記憶部５７から、目標フレームに対応する第１変化情報セット５７１および第２変化情報セット５７２を取得し、取得した第１変化情報セット５７１および第２変化情報セット５７２に基づいて、制御量を算出する。上述したように、第１変化情報および第２変化情報は、単位制御量だけ対象ロボットを制御する前の画像上の対象物を、単位制御量だけ対象ロボットを制御した後の画像上の対象物に変換する写像を示す。そこで、算出部５８は、実画像から抽出された対象物の特徴点の画像上の座標と、目標フレームから抽出された対象物の特徴点の画像上の座標とを画像処理部５３から取得する。算出部５８は、第１変化情報および第２変化情報に基づいて、実画像上の対象物を目標フレーム上の対象物に写像するための複数の自由度の各々の制御量を算出する。
【０１０８】
図９を参照して、第１制御部５５ａの算出部５８による制御量の算出方法を説明する。なお、第２制御部５５ｂの算出部５８による制御量の算出方法も同様の方法であるため、説明を省略する。
【０１０９】
図９は、第１制御部の算出部による制御量の算出方法を説明する図である。算出部５８は、第１基準動画の目標フレームから抽出されたオスコネクタ２ａの特徴点４ａ’〜４ｇ’の画像上の座標を画像処理部５３から取得する。さらに、算出部５８は、撮像装置２１の撮像により得られた実画像から抽出されたオスコネクタ２ａの特徴点４ａ〜４ｇの画像上の座標を画像処理部５３から取得する。なお、特徴点の数は、７つに限定されるものではない。
【０１１０】
算出部５８は、各特徴点の差分ベクトル６１ａ〜６１ｇを算出する。差分ベクトル６１ａ〜６１ｇはそれぞれ、特徴点４ａ〜４ｇを起点とし、特徴点４ａ’〜４ｇ’を終点とするベクトルである。算出部５８は、差分ベクトル６１ａ〜６１ｇの平均のｘ成分Δｘ１およびｙ成分Δｙ１を算出する。ｘ成分およびｙ成分は、画像の座標系で示される。
【０１１１】
同様の方法により、算出部５８は、撮像装置２２の撮像により得られた実画像から抽出された特徴点と第２基準動画の目標フレームから抽出された特徴点との差分ベクトルの平均のｘ成分Δｘ２およびｙ成分Δｙ２を算出する。
【０１１２】
まず、算出部５８は、複数の特徴点それぞれの差分ベクトルの平均分がなくなるように、３つの並進自由度の制御量を算出する。具体的には、算出部５８は、Δｘ１，Δｙ１，Δｘ２およびΔｙ２と第１変化情報セット５７１と第２変化情報セット５７２とを用いて、ハンド３１ａのＸ方向、Ｙ方向およびＺ方向の並進自由度の各々の制御量を算出する。
【０１１３】
ハンド３１ａがＸ方向、Ｙ方向およびＺ方向の並進自由度のいずかに並進移動した場合、撮像装置２１，２２の撮像により得られる画像上において、オスコネクタ２ａは一定方向に並進移動する。そのため、第１変化情報セット５７１における並進自由度に対応する第１変化情報は、画像上の任意の点を一定方向に並進移動させた点に変換する写像を示す。同様に、第２変化情報セット５７２における並進自由度に対応する第２変化情報は、画像上の任意の点を一定方向に並進移動させた点に変換する写像を示す。
【０１１４】
ここで、目標フレームに対応する第１変化情報セット５７１のＸ方向の並進自由度に対応する第１変化情報が、点（ｘ、ｙ）を点（ｘ＋ｄＸ１＿１，ｙ＋ｄＹ１＿１）に変換する写像を示すものとする。Ｙ方向への並進自由度に対応する第１変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ１＿２，ｙ＋ｄＹ１＿２）に変換する写像を示すものとする。Ｚ方向への並進自由度に対応する第１変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ１＿３，ｙ＋ｄＹ１＿３）に変換する写像を示すものとする。
【０１１５】
さらに、目標フレームに対応する第２変化情報セット５７２のＸ方向への並進自由度に対応する第２変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ２＿１，ｙ＋ｄＹ２＿１）に変換する写像を示すものとする。Ｙ方向への並進自由度に対応する第２変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ２＿２，ｙ＋ｄＹ２＿２）に変換する写像を示すものとする。Ｚ方向への並進自由度に対応する第２変化情報が、画像上の任意の点（ｘ、ｙ）を点（ｘ＋ｄＸ２＿３，ｙ＋ｄＹ２＿３）に変換する写像を示すものとする。
【０１１６】
このとき、算出部５８は、以下の４つの線形方程式（１）〜（４）を解くことにより、係数ａ１，ａ２，ａ３を算出する。
【０１１７】
ａ１×ｄＸ１＿１＋ａ２×ｄＸ１＿２＋ａ３×ｄＸ１＿３＝Δｘ１  ・・（１）
ａ１×ｄＹ１＿１＋ａ２×ｄＹ１＿２＋ａ３×ｄＹ１＿３＝Δｙ１  ・・（２）
ａ１×ｄＸ２＿１＋ａ２×ｄＸ２＿２＋ａ３×ｄＸ２＿３＝Δｘ２  ・・（３）
ａ１×ｄＹ２＿１＋ａ２×ｄＹ２＿２＋ａ３×ｄＹ２＿３＝Δｙ２  ・・（４）。
【０１１８】
第１変化情報および第２変化情報は、単位制御量だけロボット３０ａを制御したときの画像上のオスコネクタ２ａの状態の変化量を示す。そのため、算出部５８は、Ｘ方向の並進自由度の制御量を単位制御量のａ１倍、Ｙ方向の並進自由度の制御量を単位制御量のａ２倍、Ｚ方向の並進自由度の制御量を単位制御量のａ３倍とする。これら並進自由度の制御量は、複数の特徴点の差分ベクトルの平均分だけ、実画像上のオスコネクタ２ａの状態を目標フレーム上のオスコネクタ２ａの状態に近づけるための制御量である。
【０１１９】
次に、算出部５８は、３つの回転自由度の各々の制御量を算出する。算出部５８は、各特徴点の差分ベクトルから上記の平均のｘ成分（Δｘ１またはΔｘ２）およびｙ成分（Δｙ１またはΔｙ２）を差し引く。算出部５８は、たとえば山登り法のような探索アルゴリズムを用いて、各特徴点の差分ベクトルの残差が最も０に近くなる３つの回転自由度の制御量を算出する。
【０１２０】
具体的には、算出部５８は、ピッチ方向、ヨー方向およびロール方向の回転自由度の制御量が０である解を現在の解として探索アルゴリズムを開始する。算出部５８は、現在の解の近傍の複数の解の各々に従ってロボット３０ａを制御したときの、各特徴点の差分ベクトルの残差の変化をシミュレーションする。算出部５８は、シミュレーション結果から、現在の解よりも各特徴点の差分ベクトルの残差が０に近い近傍解が存在する場合に、当該近傍解を現在の解に置き換える。算出部５８は、この処理を繰り返すことにより、差分ベクトルの残差が極値となる解を探索する。
【０１２１】
＜Ｂ１−２−８．指令部＞
指令部５９は、算出部５８によって算出された制御量だけ対象ロボットを移動させるための制御指令を生成し、生成した制御指令を対象ロボットコントローラに出力する。対象ロボットコントローラは、第１制御部５５ａではロボットコントローラ４０ａであり、第２制御部５５ｂではロボットコントローラ４０ｂである。
【０１２２】
＜Ｂ１−２−９．終了判定部＞
終了判定部６０は、実画像上の対象物の状態と教示範囲の最終フレーム上の対象物の状態との偏差を算出し、算出した偏差が予め定められた閾値未満である場合に、対象ロボットの制御を終了すると判定する。終了判定部６０は、対象ロボットの制御を終了すると判定すると、終了通知を出力する。
【０１２３】
偏差は、たとえば、実画像および最終フレームから抽出された対象物の対応する特徴点同士の距離の平均である。
【０１２４】
閾値は、対象物の状態に要求される精度に応じて設定される。閾値は、第１制御部５５ａでは閾値Ｔｈａであり、第２制御部５５ｂでは閾値Ｔｈｂである。閾値Ｔｈａと閾値Ｔｈｂとは同じであってもよいし、異なっていてもよい。
【０１２５】
＜Ｃ１．動作例＞
＜Ｃ１−１．変化情報の生成処理＞
図１０を参照して、変化情報生成部５６による変化情報の生成処理の流れについて説明する。図１０は、変化情報生成部による変化情報の生成処理の流れの一例を示すフローチャートである。なお、図１０には、第１制御部５５ａの変化情報生成部５６の処理の流れが示されている。第２制御部５５ｂの変化情報生成部５６も、図１０と同様の方法に従って変化情報を生成すればよい。変化情報の生成処理は、事前準備として行なわれる。
【０１２６】
まずステップＳ１において、制御装置５０は、所定位置に搬送されてきたオスコネクタ２ａをハンド３１ａによって把持し、オスコネクタ２ａを上方から下方に移動させる定型動作をロボット３０ａに行なわせる。これにより、オスコネクタ２ａは、撮像装置２１，２２の視野内に移動される。
【０１２７】
ステップＳ２において、変化情報生成部５６は、第１基準動画および第２基準動画の教示範囲の先頭フレームと同じ画像が撮像装置２１，２２によってそれぞれ撮像されるように、ロボット３０ａを制御する。ステップＳ２のサブルーチンについては後述する。
【０１２８】
ステップＳ３において、変化情報生成部５６は、ｋを教示範囲の先頭フレームのフレーム番号にセットする。ステップＳ４において、変化情報生成部５６は、６自由度のうちの１つを選択する。
【０１２９】
ステップＳ５において、変化情報生成部５６は、選択した自由度の正方向に単位制御量だけハンド３１ａを移動させるための制御指令を生成し、ロボットコントローラ４０ａに出力する。
【０１３０】
ステップＳ６において、変化情報生成部５６は、ハンド３１ａが単位制御量だけ移動した後、撮像装置２１，２２から最新の実画像を取得する。
【０１３１】
ステップＳ７において、変化情報生成部５６は、ステップＳ６で取得した実画像から抽出されたオスコネクタ２ａの特徴点の座標を画像処理部５３から取得する。
【０１３２】
ステップＳ８において、変化情報生成部５６は、第１基準動画および第２基準動画のｋ番目のフレームから抽出されたオスコネクタ２ａの特徴点の座標を画像処理部５３から取得する。
【０１３３】
ステップＳ９において、変化情報生成部５６は、ステップＳ８で取得した座標と、ステップＳ７で取得した座標とに基づいて、ｋ番目のフレームおよびステップＳ４で選択した自由度に対応する第１変化情報および第２変化情報を生成する。すなわち、変化情報生成部５６は、撮像装置２１による実画像から抽出された特徴点の座標を第１基準動画のｋ番目のフレームから抽出された特徴点の座標に変換するための写像を示す第１変化情報を生成する。さらに、変化情報生成部５６は、撮像装置２２による実画像から抽出された特徴点の座標を第２基準動画のｋ番目のフレームから抽出された特徴点の座標に変換するための写像を示す第２変化情報を生成する。
【０１３４】
ステップＳ１０において、変化情報生成部５６は、ハンド３１ａを元の状態（直近のステップＳ５の前の状態）に戻すための制御指令を生成し、ロボットコントローラ４０ａに出力する。これにより、オスコネクタ２ａは、ステップＳ５の前の状態に戻る。
【０１３５】
ステップＳ１１において、変化情報生成部５６は、未選択の自由度があるか判定する。未選択の自由度がある場合（ステップＳ１１でＹＥＳ）、変化情報の生成処理は、ステップＳ４に戻る。その結果、ステップＳ４〜ステップＳ１０が繰り返され、６自由度の各々について、第１変化情報および第２変化情報が生成される。
【０１３６】
未選択の自由度がない場合（ステップＳ１１でＮＯ）、変化情報生成部５６は、ステップＳ１２において、ｋが教示範囲の最終フレームのフレーム番号であるか否かを判定する。
【０１３７】
ｋが最終フレームのフレーム番号ではない場合（ステップＳ１２でＮＯ）、変化情報生成部５６は、ステップＳ１３において、第１基準動画および第２基準動画のｋ＋１番目のフレームと同じ画像が撮像装置２１，２２によってそれぞれ撮像されるように、ロボット３０ａを制御する。
【０１３８】
具体的には、変化情報生成部５６は、上述した算出部５８の処理内容と同様の方法により、ｋ番目のフレーム上のオスコネクタ２ａの状態をｋ＋１番目のフレーム上のオスコネクタ２ａの状態に近づけるための６自由度の制御量を算出する。すなわち、変化情報生成部５６は、ｋ番目のフレームから抽出された複数の特徴点の各々について、当該特徴点を起点とし、ｋ＋１番目のフレームから抽出された対応する特徴点を終点とする差分ベクトルを求める。変化情報生成部５６は、特徴点ごとの差分ベクトルとｋ番目のフレームに対応する第１変化情報および第２変化情報とに基づいて、６自由度の制御量を算出する。変化情報生成部５６は、算出した制御量を示す制御指令を生成し、ロボットコントローラ４０ａに出力する。
【０１３９】
ステップＳ１４において、変化情報生成部５６は、ｋに１だけ加算する。ステップＳ１４の後、処理はステップＳ４に戻る。これにより、ｋ＋１番目のフレームについても、６自由度の各々の第１変化情報および第２変化情報が生成される。
【０１４０】
ｋが最終フレームのフレーム番号である場合（ステップＳ１２でＹＥＳ）、全てのフレームについて第１変化情報セット５７１および第２変化情報セット５７２が生成されたため、変化情報の生成処理は終了する。
【０１４１】
図１１は、図１０に示すステップＳ２のサブルーチンの処理の流れを示すフローチャートである。
【０１４２】
まずステップＳ２１において、変化情報生成部５６は、第１基準動画および第２基準動画の教示範囲の先頭フレームから抽出されたオスコネクタ２ａの特徴点の座標を画像処理部５３から取得する。
【０１４３】
ステップＳ２２において、変化情報生成部５６は、撮像装置２１，２２から最新の実画像を取得する。
【０１４４】
ステップＳ２３において、変化情報生成部５６は、ステップＳ２２で取得した実画像から抽出されたオスコネクタ２ａの特徴点の座標を画像処理部５３から取得する。
【０１４５】
ステップＳ２４において、変化情報生成部５６は、ステップＳ２２で取得した実画像上のオスコネクタ２ａの状態と先頭フレーム上のオスコネクタ２ａの状態との偏差が閾値Ｔｈａ未満であるか否かを判定する。偏差は、たとえば、実画像および先頭フレームから抽出されたオスコネクタ２ａの対応する特徴点同士の距離の平均である。
【０１４６】
偏差が閾値Ｔｈａ未満である場合（ステップＳ２４でＹＥＳ）、変化情報生成部５６は、先頭フレームと同じ画像が撮像装置２１，２２によってそれぞれ撮像されると判定し、処理を終了する。
【０１４７】
偏差が閾値Ｔｈａ以上である場合（ステップＳ２４でＮＯ）、ステップＳ２５において、変化情報生成部５６は、６自由度のうちの１つを選択する。ステップＳ２６において、変化情報生成部５６は、制御方向として正方向および負方向のいずれかを選択する。
【０１４８】
ステップＳ２７において、変化情報生成部５６は、選択した自由度の選択した制御方向に単位制御量だけハンド３１ａを移動させるための制御指令を生成し、ロボットコントローラ４０ａに出力する。
【０１４９】
ステップＳ２８において、変化情報生成部５６は、ハンド３１ａが単位制御量だけ移動した後、撮像装置２１，２２から実画像を取得する。
【０１５０】
ステップＳ２９において、変化情報生成部５６は、ステップＳ２８で取得した実画像から抽出されたオスコネクタ２ａの特徴点の座標を画像処理部５３から取得する。
【０１５１】
ステップＳ３０において、変化情報生成部５６は、ステップＳ２８で取得した実画像上のオスコネクタ２ａの状態と先頭フレーム上のオスコネクタ２ａの状態との偏差を算出する。
【０１５２】
ステップＳ３１において、変化情報生成部５６は、ハンド３１ａを元の状態（直近のステップＳ２７の前の状態）に戻すための制御指令を生成し、ロボットコントローラ４０ａに出力する。これにより、オスコネクタ２ａは、ステップＳ２７の前の状態に戻る。
【０１５３】
ステップＳ３２において、変化情報生成部５６は、未選択の制御方向があるか判定する。未選択の制御方向がある場合（ステップＳ３２でＹＥＳ）、処理はステップＳ２６に戻る。
【０１５４】
未選択の制御方向がない場合（ステップＳ３２でＮＯ）、ステップＳ３３において、変化情報生成部５６は、未選択の自由度があるか判定する。未選択の自由度がある場合（ステップＳ３３でＹＥＳ）、処理はステップＳ２５に戻る。
【０１５５】
未選択の自由度がない場合（ステップＳ３３でＮＯ）、ステップＳ３４において、変化情報生成部５６は、最小偏差に対応する自由度および制御方向に単位制御量だけハンド３１ａを移動するように、ロボットコントローラ４０ａを介してロボット３０ａを制御する。ステップＳ３４の後、処理はステップＳ２２に戻る。
【０１５６】
＜Ｃ１−２．ロボットの制御＞
図１２を参照して、第１基準動画および第２基準動画に従って対象物の状態を変化させるように対象ロボットを制御する処理の流れについて説明する。図１２は、第１基準動画および第２基準動画に沿って対象物の状態が変化するように対象ロボットを制御する処理の流れの一例を示すフローチャートである。
【０１５７】
まずステップＳ４１において、制御装置５０は、全ての制御部（第１制御部５５ａおよび第２制御部５５ｂ）の終了判定部６０から終了通知が出力されているか否かを判定する。全ての制御部の終了判定部６０から終了通知が出力されている場合（ステップＳ４１でＹＥＳ）、処理を終了する。
【０１５８】
全ての制御部の終了判定部６０から終了通知が出力されていない場合（ステップＳ４１でＮＯ）、ステップＳ４２において、制御装置５０は、撮像装置２１，２２によって撮像された実画像を取得する。ステップＳ４２は撮像周期ごとに行なわれる。
【０１５９】
ステップＳ４３において、画像処理部５３は、テンプレートマッチングにより、実画像および目標フレームから全ての対象物（オスコネクタ２ａおよびメスコネクタ２ｂ）を検出し、各対象物の特徴点の座標を抽出する。
【０１６０】
ステップＳ４４において、目標フレーム選択部５４は、第１基準動画および第２基準動画から目標フレームを選択する。
【０１６１】
ステップＳ４５において、目標フレーム選択部５４は、目標フレームを教示範囲内に含む対象物を特定し、特定した対象物を制御する制御部（第１制御部５５ａおよび第２制御部５５ｂの少なくとも一方）に対して制御指示を出力する。
【０１６２】
ステップＳ４６において、制御指示を受けた制御部（第１制御部５５ａおよび第２制御部５５ｂの少なくとも一方）は、対象ロボットの制御を行う。ステップＳ４６の後、処理はステップＳ４１に戻る。ステップＳ４でＮＯである場合、ステップＳ４２〜Ｓ４６の一連処理が撮像周期毎に繰り返される。また、このとき、ステップＳ４１でＮＯである場合、ステップＳ４６による対象ロボットの制御を行っている間に、次の実画像を取得するステップＳ４２を開始してもよい。これにより、対象ロボットの動作を停止させることなく、最新の実画像に応じて対象ロボットが制御され続ける。その結果、対象物の状態を速く変化させることができる。
【０１６３】
＜Ｃ１−３．目標フレームの選択＞
図１３および図１４を参照して、目標フレーム選択部５４による目標フレームの選択処理の流れについて説明する。図１３は、図１２に示すステップＳ４４のサブルーチンの処理の流れを示すフローチャートである。図１４は、最近接フレームと目標フレームとの関係を示す図である。
【０１６４】
まずステップＳ５１において、目標フレーム選択部５４は、第１基準動画および第２基準動画の各フレームから抽出された全ての対象物の特徴点の座標を画像処理部５３から取得する。
【０１６５】
ステップＳ５２において、目標フレーム選択部５４は、撮像装置２１，２２によって撮像された実画像から抽出された全ての対象物の特徴点の座標を画像処理部５３から取得する。
【０１６６】
ステップＳ５３において、目標フレーム選択部５４は、１回目の目標フレームの選択が完了しているか否かを判定する。
【０１６７】
１回目の目標フレームの選択が完了している場合（ステップＳ５３でＹＥＳ）、ステップＳ５４において、目標フレーム選択部５４は、前回の目標フレームがいずれかの対象物に対応する教示範囲の最終フレームであるか否かを判定する。
【０１６８】
前回の目標フレームが最終フレームである場合（ステップＳ５４でＹＥＳ）、処理はステップＳ５５に移る。ステップＳ５５において、目標フレーム選択部５４は、当該最終フレームが属する教示範囲に対応する対象物について、実画像上の状態と最終フレーム上の状態との偏差を算出し、偏差が閾値未満であるか否かを判定する。偏差は、たとえば、実画像および最終フレームにおける対象物の対応する特徴点同士の距離の平均である。
【０１６９】
偏差が閾値以上である場合（ステップ５５でＮＯ）、ステップＳ５６において、目標フレーム選択部５４は、前回の目標フレームと同じフレームを目標フレームとして選択する。ステップＳ５６の後、処理は終了する。
【０１７０】
偏差が閾値未満である場合（ステップＳ５５でＹＥＳ）、対象物の状態が最終フレーム上の状態に到達したと判定され、処理はステップＳ５７に移る。１回目の目標フレームの選択が完了していない場合（ステップＳ５３でＮＯ）、および前回の目標フレームが最終フレームでない場合（ステップＳ５４でＮＯ）も、処理はステップＳ５７に移る。
【０１７１】
ステップＳ５７において、目標フレーム選択部５４は、実画像上の全ての対象物の状態と各フレーム上の全ての対象物の状態との偏差を算出し、最小偏差のフレームを最近接フレームとして特定する。偏差は、たとえば、実画像および各フレームにおける対象物の対応する特徴点同士の距離の平均である。
【０１７２】
具体的には、目標フレーム選択部５４は、撮像装置２１によって撮像された実画像上の全ての対象物の状態と第１基準動画のｋ番目のフレーム上の全ての対象物の状態との第１偏差を算出する。さらに、目標フレーム選択部５４は、撮像装置２２によって撮像された実画像上の全ての対象物の状態と第２基準動画のｋ番目のフレーム上の全ての対象物の状態との第２偏差を算出する。目標フレーム選択部５４は、第１偏差と第２偏差との平均をｋ番目のフレームに対応する偏差として算出する。
【０１７３】
ステップＳ５８において、目標フレーム選択部５４は、最近接フレームから所定数だけ後のフレームまでに、いずれかの教示範囲の最終フレームがあるか否かを判定する。
【０１７４】
最終フレームがある場合（ステップＳ５８でＹＥＳ）、ステップＳ５９において、目標フレーム選択部５４は、当該最終フレームを目標フレームとして選択する。なお、最近接フレームから所定数だけ後のフレームまでに複数の最終フレームがある場合、目標フレーム選択部５４は、当該複数の最終フレームのうち最もフレーム番号の小さい最終フレームを選択する。
【０１７５】
最終フレームがない場合（ステップＳ５８でＮＯ）、ステップＳ６０において、目標フレーム選択部５４は、最近接フレームから所定数だけ後のフレームを目標フレームとして選択する。ステップＳ６０の後、目標フレームの選択処理は終了する。
【０１７６】
＜Ｃ１−４．制御部の処理＞
図１５を参照して、図１２のステップＳ４６のサブルーチンの処理について説明する。図１５は、図１２に示すステップＳ４６のサブルーチンの処理の流れを示すフローチャートである。
【０１７７】
まずステップＳ６１において、終了判定部６０は、目標フレームが教示範囲の最終フレームであるか否かを判定する。
【０１７８】
目標フレームが最終フレームである場合（ステップＳ６１でＹＥＳ）、ステップＳ６２において、終了判定部６０は、実画像上の対象物の状態と最終フレーム上の対象物の状態との偏差が閾値未満か否かを判定する。
【０１７９】
偏差が閾値未満である場合（ステップＳ６２でＹＥＳ）、ステップＳ６３において、終了判定部６０は、終了通知を出力する。ステップＳ６３の後、処理は終了する。
【０１８０】
目標フレームが最終フレームではない場合（ステップＳ６１でＮＯ）、および、偏差が閾値以上である場合（ステップＳ６２でＮＯ）、処理はステップＳ６４に移る。
【０１８１】
ステップＳ６４において、算出部５８は、目標フレームに対応する第１変化情報セット５７１および第２変化情報セット５７２に基づいて、実画像上の対象物の状態を目標フレーム上の対象物の状態に近づけるための複数の自由度の各々の制御量を算出する。
【０１８２】
ステップＳ６５において、指令部５９は、算出された制御量を示す制御指令を生成し、対象ロボットコントローラに出力する。ステップＳ６５の後、処理は終了する。
【０１８３】
第１制御部５５ａおよび第２制御部５５ｂはそれぞれ、図１５に示す流れに従って、対象ロボットを制御する。オスコネクタ２ａおよびメスコネクタ２ｂの教示範囲に目標フレームが含まれる場合、実画像上のオスコネクタ２ａおよびメスコネクタ２ｂの状態が目標フレーム上のオスコネクタ２ａおよびメスコネクタ２ｂの状態にそれぞれ近づくように、ロボット３０ａ，３０ｂが制御される。これにより、オスコネクタ２ａおよびメスコネクタ２ｂの状態は、目標フレームに従って連係して変化する。
【０１８４】
＜Ｃ１−５．作用・効果＞
以上のように、制御システム１は、ロボット３０ａ，３０ｂと、オスコネクタ２ａおよびメスコネクタ２ｂを撮像するための撮像装置２１，２２と、ロボット３０ａ，３０ｂを制御する制御装置５０とを備える。ロボット３０ａ，３０ｂは、オスコネクタ２ａおよびメスコネクタ２ｂの状態をそれぞれ変化させる。撮像装置２１，２１は、ロボット３０ａ，３０ｂと異なる定位置に設置され、ロボット３０ａ，３０ｂによってそれぞれ支持されたオスコネクタ２ａおよびメスコネクタ２ｂを撮像する。
【０１８５】
制御装置５０は、オスコネクタ２ａおよびメスコネクタ２ｂの見本を示す第１基準動画および第２基準動画を記憶している。第１基準動画および第２基準動画は、時系列に並んだ複数のフレームを含む。
【０１８６】
制御装置５０は、オスコネクタ２ａおよびメスコネクタ２ｂの各々について変化情報を取得する。オスコネクタ２ａに対応する変化情報は、ロボット３０ａの制御量と、撮像装置２１，２２の画像上におけるオスコネクタ２ａの状態の変化量との関係を示す。メスコネクタ２ｂに対応する変化情報は、ロボット３０ｂの制御量と、撮像装置２１，２２の画像上におけるメスコネクタ２ｂの状態の変化量との関係を示す。
【０１８７】
制御装置５０は、撮像装置２１，２２によって撮像された実画像を取得する第１処理と、複数のフレームから目標フレームを選択する第２処理と、実画像と目標フレームとに基づいてロボット３０ａ，３０ｂの各々を制御する第３処理とを行なう。制御装置５０は、オスコネクタ２ａに対応する変化情報に基づいて、実画像上のオスコネクタ２ａの状態を目標フレーム上のオスコネクタ２ａの状態に近づけるためのロボット３０ａの制御量を算出し、算出した制御量に従ってロボット３０ａを制御する。制御装置５０は、メスコネクタ２ｂに対応する変化情報に基づいて、実画像上のメスコネクタ２ｂの状態を目標フレーム上のメスコネクタ２ｂの状態に近づけるためのロボット３０ｂの制御量を算出し、算出した制御量に従ってロボット３０ｂを制御する。
【０１８８】
これにより、実画像上のオスコネクタ２ａおよびメスコネクタ２ｂの状態を目標フレーム上のオスコネクタ２ａおよびメスコネクタ２ｂの状態までそれぞれ変化させることができる。つまり、オスコネクタ２ａおよびメスコネクタ２ｂの状態は、目標フレームに従って連係して変化する。
【０１８９】
制御装置５０は、第１から第３処理を含む一連処理を繰り返し実行し、第３処理を行なっている間に次の一連処理の第１処理を開始する。これにより、ロボット３０ａ，３０ｂの動作を停止させることなく、最新の実画像に応じてロボット３０ａ，３０ｂが制御され続ける。その結果、オスコネクタ２ａおよびメスコネクタ２ｂの状態を速く変化させることができる。
【０１９０】
＜Ｄ１．変形例＞
＜Ｄ１−１．変形例１＞
目標フレーム選択部による目標フレームの選択処理は、図１３に示す方法に限定されるものではない。
【０１９１】
図１６は、オスコネクタとメスコネクタとの接続の見本となる基準動画の別の例を示す図である。図１６に示す例の基準動画は、オスコネクタ２ａが基板５の上方から基板５に向かって移動した後、基板５に平行な方向に沿ってオスコネクタ２ａがメスコネクタ２ｂに向かって移動してメスコネクタ２ｂに接続する様子を示す。このように、オスコネクタ２ａは、Ｌ字状の経路Ａに沿って移動する。なお、フレーム７４には、基板５の上方に位置しているオスコネクタ２ａが示される。フレーム７５には、基板５の上面に到達したオスコネクタ２ａが示される。フレーム７６には、メスコネクタ２ｂに接続されたオスコネクタ２ａが示される。
【０１９２】
フレーム７４に示されるオスコネクタ２ａの状態においてフレーム７６が目標フレームとして選択された場合、オスコネクタ２ａは、フレーム７５で示される状態を通過することなく、フレーム７６で示される状態に向かうことになる。この場合、オスコネクタ２ａは、メスコネクタ２ｂに対して傾斜した方向から向かう。そのため、オスコネクタ２ａのピンがメスコネクタ２ｂの挿入孔に挿入できない可能性がある。オスコネクタ２ａのピンをメスコネクタ２ｂの挿入孔に挿入させるためには、オスコネクタ２ａは、フレーム７５で示される状態を通過することが好ましい。
【０１９３】
そこで、本変形例の目標フレーム選択部５４は、通過すべきフレーム（以下、「通過必須フレーム」という）の指定を受け付け、指定された通過必須フレームを必ず目標フレームとして選択する。目標フレーム選択部５４は、通過必須フレームを受け付けた場合、当該通過必須フレームで示される状態を通過すべき対象物の指定を受け付ける。
【０１９４】
目標フレーム選択部５４は、通過必須フレームの指定を促す画面を表示部５３２（図４参照）に表示する。作業者は、第１基準動画および第２基準動画の各フレームを確認し、入力装置５３４（図４参照）を操作して、通過必須フレームと当該通過必須フレームで示される状態を通過すべき対象物（通過必須フレームに対応する対象物）とを指定する。
【０１９５】
図１７は、実施の形態１の変形例１における目標フレームの選択処理の流れの一例を示すフローチャートである。図１７に示すフローチャートは、図１３に示すフローチャートと比較して、ステップＳ５４，Ｓ５８，Ｓ５９の代わりにステップＳ７４、Ｓ７８，Ｓ７９をそれぞれ含む点でのみ相違する。そのため、ステップＳ７４，Ｓ７８，Ｓ７９についてのみ説明する。
【０１９６】
ステップＳ７４において、目標フレーム選択部５４は、前回の目標フレームが最終フレームまたは通過必須フレームであるか否かを判定する。
【０１９７】
ステップＳ７８において、目標フレーム選択部５４は、最近接フレームから所定数だけ後のフレームまでに最終フレームおよび通過必須フレームの少なくとも一方があるか否かを判定する。
【０１９８】
最終フレームおよび通過必須フレームの少なくとも一方がある場合（ステップＳ７８でＹＥＳ）、ステップＳ７９において、目標フレーム選択部５４は、当該最終フレームおよび通過必須フレームの少なくとも一方を目標フレームとして選択する。なお、最近接フレームから所定数だけ後のフレームまでに最終フレームおよび通過必須フレームの少なくとも一方であるフレームが複数ある場合、目標フレーム選択部５４は、当該複数のフレームのうち最もフレーム番号の小さいフレームを選択する。
【０１９９】
本変形例１によれば、実画像上の対象物の状態が通過必須フレーム上の対象物の状態よりも前の状態であれば、通過必須フレームが必ず目標フレームとして選択される。さらに、通過必須フレームが目標フレームとして選択されると、実画像上の対象物の状態と通過必須フレーム上の対象物の状態との偏差が閾値未満となってから、目標フレームが更新される。これにより、通過必須フレームに対応する対象物の状態を通過必須フレーム上の状態により確実に変化させることができる。
【０２００】
さらに、目標フレーム選択部５４は、通過必須フレームが目標フレームとして選択されてから規定時間経過しても、通過必須フレームに対応する対象物が通過必須フレーム上の状態と一致しない場合に、制御システムに異常が生じていると判定してもよい。
【０２０１】
図１８は、異常判定処理の流れの一例を示すフローチャートである。まずステップＳ８１において、目標フレーム選択部５４は、通過必須フレームを目標フレームとして選択すると、タイマーをリセットする。
【０２０２】
ステップＳ８２において、目標フレーム選択部５４は、通過必須フレームに対応する対象物について、撮像装置２１，２２によって撮像された実画像上の状態と通過必須フレーム上の状態との偏差が閾値未満であるか否かを判定する。偏差が閾値未満である場合（ステップＳ８２でＹＥＳ）、異常判定処理は終了する。
【０２０３】
偏差が閾値以上である場合（ステップＳ８２でＮＯ）、ステップＳ８３において、目標フレーム選択部５４は、タイマー値が規定時間を超えているか否かを判定する。
【０２０４】
タイマー値が規定時間を超えていない場合（ステップＳ８３でＮＯ）、異常判定処理はステップＳ８２に戻る。
【０２０５】
タイマー値が規定時間を超えている場合（ステップＳ８３でＹＥＳ）、ステップＳ８４において、目標フレーム選択部５４は、制御システム１に何等かの異常が発生していると判定する。これにより、制御システム１の異常に対する対策を早く開始することができる。ステップＳ８４の後、異常判定処理は終了する。
【０２０６】
制御装置５０は、目標フレーム選択部５４によって異常が発生している判定された場合、表示部５３２に異常の発生を通知してもよいし、ロボット３０ａ，３０ｂの制御を停止してもよい。
【０２０７】
＜Ｄ１−２．変形例２＞
上記の説明では、制御システム１は、オスコネクタ２ａとメスコネクタ２ｂとの接続（組み立て）を行なう。しかしながら、制御システム１は、別の２つの対象物同士を組み立ててもよい。
【０２０８】
図１９は、実施の形態１の変形例２に係る制御システムの対象物を示す模式図である。変形例２に係る制御システム１は、工業製品の生産ラインなどにおいて、上ケース６ａと下ケース６ｂとを係合させる。上ケース６ａおよび下ケース６ｂは、平面視略矩形状の箱状である。上ケース６ａは、下側に開口するように配置される。下ケース６ｂは、上側に開口するように配置される。
【０２０９】
下ケース６ｂの上端の図面手前側には２つの係合爪７ａ，７ｂが形成されている。下ケース６ｂの上端の図面奥側にも２つの係合爪（図示せず）が形成されている。上ケース６ａは、下ケース６ｂの上方から下方に移動し、下ケース６ｂの４つの係合爪と係合する。
【０２１０】
上ケース６ａは、ロボット３０ａのハンド３１ａ（図１参照）によって把持される。下ケース６ｂは、ロボット３０ｂのステージ３１ｂ（図１参照）上に載置される。
【０２１１】
ロボット３０ａは、２自由度で上ケース６ａの状態（ここでは形状）を変化させるための制御棒３２ａ〜３２ｄ（図１９参照）をさらに備える。ロボット３０ａは、対向する制御棒３２ａ，３２ｂに対して、制御量に応じた力を互いに近づける方向に印加することが可能である。同様に、ロボット３０ａは、対向する制御棒３２ｃ，３２ｄに対して、制御量に応じた力を互いに近づける方向に印加することが可能である。
【０２１２】
制御棒３２ａ，３２ｂは、上ケース６ａの対向する２つの側壁にそれぞれ接触する。そのため、制御棒３２ａ，３２ｂに対して互いに近づける力が印加されると、上ケース６ａは変形する。変形量は、制御量に応じて異なる。
【０２１３】
制御棒３２ｃ，３２ｄは、上ケース６ａの別の対向する２つの側壁にそれぞれ接触する。そのため、制御棒３２ｃ，３２ｄに対して互いに近づける力が印加されると、上ケース６ａは変形する。変形量は、制御量に応じて異なる。
【０２１４】
撮像装置２１，２２は、下ケース６ｂの図面手間側の係合爪７ａ，７ｂを撮像可能な位置に配置される。ただし、撮像装置２１，２２は、下ケース６ｂの図面奥側の２つの係合爪を撮像できない。そのため、実施の形態１の変形例２に係る制御システム１は、さらに撮像装置２３，２４を備える。撮像装置２３，２４は、下ケース６ｂの図面奥側の２つの係合爪を撮像可能な位置に配置される。
【０２１５】
本変形例２の制御装置５０は、撮像装置２１〜２４にそれぞれ対応する４つの基準動画を記憶する。
【０２１６】
変化情報生成部５６は、４つの基準動画にそれぞれ対応する４つの変化情報セットを生成すればよい。ロボット３０ａは、６自由度で上ケース６ａの位置および姿勢を変化させるとともに、２自由度で上ケース６ａの形状を変化させる。そのため、変化情報生成部５６は、上ケース６ａについて、８自由度の各々に対応する第１変化情報および第２変化情報を生成する。
【０２１７】
基準動画として、下ケース６ｂの４つの係合爪に係合しやすいように上ケース６ａの形状を変形させてから、上ケース６ａを下ケース６ｂに係合させる様子を示す動画が予め準備される。これにより、算出部５８は、実画像上の上ケース６ａの形状を目標フレーム上の上ケース６ａの形状に近づけるための、制御棒３２ａ，３２ｂに対する制御量および制御棒３２ｃ，３２ｄに対する制御量を算出する。これにより、上ケース６ａを基準動画と同じように変形させることができる。その結果、上ケース６ａを下ケース６ｂに容易に係合させることができる。
【０２１８】
＜Ｄ１−３．変形例３＞
算出部５８は、別の方法により、撮像装置２１，２２によって撮像された実画像上の対象物の状態を目標フレーム上の対象物の状態に近づけるための複数の自由度の各々の制御量を算出してもよい。
【０２１９】
図１０のステップＳ１３に示されるように、変化情報生成部５６は、ｋ番目のフレーム上の対象物の状態をｋ＋１番目のフレーム上の対象物の状態に近づけるための複数の自由度の各々の制御量を算出する。算出部５８は、連続する２つのフレームごとに算出された当該制御量をフレーム間制御量として記憶しておき、当該フレーム間制御量を用いて、実画像上の対象物の状態を目標フレーム上の対象物の状態に近づけるための複数の自由度の各々の制御量を算出してもよい。
【０２２０】
具体的には、算出部５８は、最近接フレームに対応する第１変化情報および第２変化情報に基づいて、実画像上の対象物の状態を最近接フレーム上の対象物の状態に近づけるための複数の自由度の各々の制御量αを算出する。さらに、算出部５８は、最近接フレームから目標フレームまでのフレーム間制御量の和βを算出する。算出部５８は、制御量αとフレーム間制御量の和βとの和を、実画像上の対象物の状態を目標フレーム上の対象物の状態に近づけるための制御量として算出すればよい。
【０２２１】
＜Ｄ１−４．変形例４＞
算出部５８は、公知のモデル予測制御（「足立、「モデル予測制御の基礎」、日本ロボット学会誌、2014年7月、第32巻、第6号、p. 9-12」（非特許文献２）参照）を行なうことにより、複数の自由度の制御量を算出してもよい。
【０２２２】
具体的には、目標フレーム選択部５４は、教示範囲のうち予測ホライズン期間に含まれる複数のフレームを目標フレームとして選択する。算出部５８は、目標フレーム上の対象物の状態と、予測ホライズン期間において撮像装置２１，２２によって撮像される画像上の対象物の状態との偏差を最小化するように、制御ホライズン期間における制御量を算出する。
【０２２３】
＜Ｄ１−５．その他の変形例＞
画像処理部５３は、対象物の３Ｄ−ＣＡＤデータを用いて、対象画像から対象物を検出してもよい。
【０２２４】
基準動画（第１基準動画，第２基準動画）は、ＣＧ（Computer Graphics）によって作成されてもよい。
【０２２５】
上記の説明では、変化情報生成部５６は、対象フレームから抽出された対象物の特徴点の座標を、撮像された画像から抽出された対応する特徴点の座標に変換する写像を示す情報を変化情報として生成する。しかしながら、変化情報生成部５６は、撮像された画像から抽出された対象物の特徴点の座標、対象フレームから抽出された対応する特徴点の座標に変換する写像を示す情報を変化情報として生成してもよい。
【０２２６】
制御装置５０は、第１基準動画および第２基準動画を表示部５３２に表示し、作業者から動画の編集指示を受け付け、動画を編集してもよい。たとえば、作業者は、不要なフレームを第１基準動画および第２基準動画から削除してもよい。
【０２２７】
ロボット３０ａは、たとえば風船のような膨張および収縮する対象物の状態（ここではサイズ）を変化させてもよい。この場合、制御装置５０は、ロボット３０ａを単位制御量だけ制御したときの対象物の大きさの変化を示す変化情報を取得する。そして、制御装置は、変化情報に基づいて、実画像上の対象物の大きさが目標フレーム上の対象物の大きさに近づくように、ロボット３０ａを制御する。
【０２２８】
上記の説明では、オスコネクタ２ａをメスコネクタ２ｂに向けて移動させることにより、オスコネクタ２ａとメスコネクタ２ｂとを接続させた。しかしながら、オスコネクタ２ａがステージ３１ｂ上に載置され、メスコネクタ２ｂがハンド３１ａに把持されてもよい。この場合、メスコネクタ２ｂをオスコネクタ２ａに向けて移動させることにより、オスコネクタ２ａとメスコネクタ２ｂとを接続させる。
【０２２９】
上記の説明では、制御装置５０の基準動画記憶部５１が基準動画を記憶するものとした。しかしながら、制御装置５０の外部装置が基準動画を記憶していてもよい。
【０２３０】
基準動画記憶部５１は、基準動画の代わりに、もしくは、基準動画に加えて、基準動画の各フレームから抽出された各対象物の特徴点の座標および特徴量を記憶していてもよい。これにより、基準動画の各フレームに対する画像処理部５３の処理を省略することができる。
【０２３１】
≪実施の形態２≫
＜Ａ２．適用例＞
図２０を参照して、本開示が適用される場面の一例について説明する。図２０は、実施の形態２に係る制御システムの概要を示す模式図である。
【０２３２】
実施の形態２に係る制御システム１Ａは、工業製品の生産ラインなどにおいて、半田ごて８ｃおよび半田フィーダ８ｄを用いて、基板９のパッド８ｆに電線８ｅを半田付けする。
【０２３３】
制御システム１Ａは、図１に示す制御システム１と比較して、ロボット３０ａ，３０ｂ、ロボットコントローラ４０ａ，４０ｂおよび制御装置５０の代わりに、ロボット３０ｃ〜３０ｆ、ロボットコントローラ４０ｃ〜４０ｆおよび制御装置５０Ａを備える点で相違する。
【０２３４】
撮像装置２１，２２は、互いに異なる方向から、被写体としての半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆを撮像する。
【０２３５】
ロボット３０ｃは、半田ごて８ｃの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｃは、先端に半田ごて８ｃを把持するハンド３１ｃを有し、ハンド３１ｃの位置および姿勢を６自由度で変化させる。
【０２３６】
ロボット３０ｄは、半田フィーダ８ｄの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｄは、先端に半田フィーダ８ｄを把持するハンド３１ｄを有し、ハンド３１ｄの位置および姿勢を６自由度で変化させる。
【０２３７】
ロボット３０ｅは、電線８ｅの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｅは、先端に電線８ｅを把持するハンド３１ｅを有し、ハンド３１ｅの位置および姿勢を６自由度で変化させる。
【０２３８】
ロボット３０ｆは、基板９のパッド８ｆの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえばＸＹθステージである。ロボット３０ｆは、基板９が載置されるステージ３１ｆを有し、ステージ３１ｆの位置および姿勢を３自由度で変化させる。
【０２３９】
ロボット３０ｃ〜３０ｅは、把持する対象物が異なるだけであり、図１に示すロボット３０ａと同様の構成を有する。ロボット３０ｆは、ステージ３１ｆ上に載置される対象物が異なるだけであり、図１に示すロボット３０ｂと同様の構成を有する。
【０２４０】
ロボットコントローラ４０ｃ〜４０ｅは、制御装置５０Ａから受けた制御指令に従って、ロボット３０ｃ〜３０ｅの動作制御をそれぞれ行なう。ロボットコントローラ４０ｃ〜４０ｅは、図１に示すロボットコントローラ４０ａと同様の構成を有する。
【０２４１】
ロボットコントローラ４０ｆは、制御装置５０Ａから受けた制御指令に従って、ロボット３０ｆの動作制御を行なう。ロボットコントローラ４０ｆは、図１に示すロボットコントローラ４０ｂと同様の構成を有する。
【０２４２】
制御装置５０Ａは、ロボットコントローラ４０ｃ〜４０ｆを介して、ロボット３０ｃ〜３０ｆをそれぞれ制御する。
【０２４３】
制御装置５０Ａは、半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆの見本を示す第１基準動画および第２基準動画を記憶している。第１基準動画は、撮像装置２１の位置から見たときの動画である。第２基準動画は、撮像装置２２の位置から見たときの動画である。
【０２４４】
図２１は、実施の形態２における基準動画（第１基準動画または第２基準動画）の一例を示す図である。図２１には、基準動画のフレーム７７〜８３が示されている。
【０２４５】
フレーム７７は、パッド８ｆの状態が所望の状態に到達したときのフレームである。フレーム７８は、電線８ｅがパッド８ｆの上に到達したときのフレームである。フレーム７９は、半田ごて８ｃの先端がパッド８ｆに接触したときのフレームである。フレーム８０は、半田フィーダ８ｄの先端が半田ごて８ｃの先端に接触したときのフレームである。フレーム８１は、半田フィーダ８ｄから供給され、溶融した半田（以下、「溶融半田８ｇ」という）が所望のサイズになったときのフレームである。フレーム８２は、半田フィーダ８ｄをパッド８ｆから遠ざけたときのフレームである。フレーム８３は、半田ごて８ｃをパッド８ｆから遠ざけたときのフレームである。このような一連の動作により、パッド８ｆに電線８ｅが半田付けされる。
【０２４６】
制御装置５０Ａは、６自由度の各々について、単位制御量だけロボット３０ｃを制御したときの、撮像装置２１，２２から得られる画像上の半田ごて８ｃの状態の変化を示す変化情報を取得する。
【０２４７】
制御装置５０Ａは、６自由度の各々について、単位制御量だけロボット３０ｄを制御したときの、撮像装置２１，２２から得られる画像上の半田フィーダ８ｄの状態の変化を示す変化情報を取得する。
【０２４８】
制御装置５０Ａは、６自由度の各々について、単位制御量だけロボット３０ｅを制御したときの、撮像装置２１，２２から得られる画像上の電線８ｅの状態の変化を示す変化情報を取得する。
【０２４９】
制御装置５０Ａは、３自由度の各々について、単位制御量だけロボット３０ｆを制御したときの、撮像装置２１，２２から得られる画像上のパッド８ｆの状態の変化を示す変化情報を取得する。
【０２５０】
制御装置５０Ａは、実施の形態１と同様に、撮像装置２１，２２によって撮像された実画像上の対象物の状態が第１基準動画および第２基準動画の目標フレーム上の対象物の状態にそれぞれ近づくように、対象ロボットコントローラを介して対象ロボットを制御する。対象物は、半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆである。対象ロボットコントローラは、ロボットコントローラ４０ｃ〜４０ｆである。対象ロボットは、ロボット３０ｃ〜３０ｆである。これにより、半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆの４つの対象物の状態は、第１基準動画および第２基準動画に従って連係して変化する。
【０２５１】
さらに、制御装置５０Ａは、実画像上の第１対象物の状態と第１目標フレーム上の第１対象物の状態との第１偏差と、実画像上の第２対象物の状態と第２目標フレーム上の第２対象物の状態との第２偏差とを算出する。制御装置５０Ａは、第１偏差が第１閾値未満となる時刻と、第２偏差が第２閾値未満となる時刻とが規定条件を満たすように、ロボット３０ｃ〜３０ｆを制御する。これにより、半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆの状態を目標フレームに到達させる時刻を制御することができる。
【０２５２】
＜Ｂ２．具体例＞
＜Ｂ２−１．制御装置の構成＞
制御装置５０Ａは、実施の形態１と同様に、図４に示されるようなハードウェア構成を有する。そのため、制御装置５０Ａのハードウェア構成の詳細な説明を省略する。
【０２５３】
図２２は、実施の形態２に係る制御装置の機能構成を示すブロック図である。図２２に示されるように、制御装置５０Ａは、図５に示す制御装置５０と比較して、目標フレーム選択部５４の代わりに目標フレーム選択部５４Ａを備え、第１制御部５５ａおよび第２制御部５５ｂの代わりに第１制御部５５ｃ、第２制御部５５ｄ、第３制御部５５ｅおよび第４制御部５５ｆを備える点で相違する。
【０２５４】
ただし、基準動画記憶部５１は、４つの対象物（半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆ）の見本を示す第１基準動画および第２基準動画を記憶する。
【０２５５】
教示範囲選択部５２は、４つの対象物（半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆ）の各々について教示範囲を選択する。
【０２５６】
画像処理部５３は、対象画像から４つの対象物（半田ごて８ｃ、半田フィーダ８ｄ、電線８ｅおよびパッド８ｆ）を検出する。
【０２５７】
さらに、画像処理部５３は、対象画像からパッド８ｆ上の溶融半田８ｇ（図２１参照）も対象物として検出する。画像処理部５３は、溶融半田８ｇのテンプレートを事前に作成し、対象画像から溶融半田８ｇの特徴点および特徴量を抽出する。なお、溶融半田８ｇの状態（ここではサイズ）は、溶融した半田量に応じて変化する。そのため、画像処理部５３は、対象画像から色抽出およびラベリングを行ない、拡大縮小の影響を受けにくいＳＩＦＴを特徴量として抽出することが好ましい。さらに、画像処理部５３は、色拡大縮小の影響を受けにくいＳＩＦＴを特徴量として抽出することが好ましい。これにより、画像処理部５３は、対象画像から溶融半田８ｇを検出しやすくなる。
【０２５８】
＜Ｂ２−２．目標フレーム選択部＞
目標フレーム選択部５４Ａは、実施の形態１の目標フレーム選択部５４と同様に、第１基準動画および第２基準動画から目標フレームを選択する。ただし、目標フレーム選択部５４Ａは、実施の形態１の変形例１と同様に、通過必須フレームの指定と、当該通過必須フレームで示される状態を通過すべき対象物（通過必須フレームに対応する対象物）の指定とを受け付ける。
【０２５９】
さらに、目標フレーム選択部５４Ａは、複数の通過必須フレームの指定を受け付けた場合、連続する２つの通過必須フレーム間の時間差を受け付け可能である。ここで、連続する２つの通過必須フレームの先のフレームを「第１関連フレーム」とし、後のフレームを「第２関連フレーム」とする。目標フレーム選択部５４Ａは、第１関連フレーム、第２関連フレームおよび時間差の指定を受け付ける。
【０２６０】
目標フレーム選択部５４Ａは、第１関連フレーム、第２関連フレームおよび時間差を受け付けた場合、第１関連フレームを目標フレームとして選択した後、第２関連フレームを次の目標フレームとして選択する。すなわち、目標フレーム選択部５４Ａは、第１関連フレームに対応する対象物について実画像上の状態と当該第１関連フレーム上の状態との偏差が閾値未満になると、第２関連フレームを目標フレームとして選択する。
【０２６１】
図２３は、通過必須フレーム、関連フレームおよび時間差を指定するための画面の一例を示す図である。制御装置５０Ａは、図２３に示されるような画面を表示部５３２に表示し、通過必須フレーム、通過必須フレームに対応する対象物、第１関連フレーム、第２関連フレームおよび時間差の指定を受け付ける。作業者は、入力装置５３４を操作して、通過必須フレーム、通過必須フレームに対応する対象物、第１関連フレーム、第２関連フレームおよび時間差を指定する。
【０２６２】
図２３に示す例では、教示範囲選択部５２は、パッド８ｆおよび電線８ｅに対応する教示範囲の最終フレームとして、フレーム８３，８２をそれぞれ選択している。
【０２６３】
目標フレーム選択部５４Ａは、対象物「半田ごて８ｃ」に対応する通過必須フレームとしてフレーム７９，８３を受け付けている。目標フレーム選択部５４Ａは、対象物「半田フィーダ８ｄ」に対応する通過必須フレームとしてフレーム８０，８２を受け付けている。目標フレーム選択部５４Ａは、対象物「溶融半田８ｇ」に対応する通過必須フレームとしてフレーム８１を受け付けている。
【０２６４】
目標フレーム選択部５４Ａは、連続する２つの通過必須フレームであるフレーム７９，８０をそれぞれ第１関連フレームおよび第２関連フレームとし、時間差を「３秒」とする指示を受け付けている。さらに、目標フレーム選択部５４Ａは、連続する２つの通過必須フレームであるフレーム８１，８２をそれぞれ第１関連フレームおよび第２関連フレームとし、時間差を「０．５秒」とする指示を受け付けている。
【０２６５】
＜Ｂ２−３．制御部＞
第１制御部５５ｃは、ロボットコントローラ４０ｃを介してロボット３０ｃを制御し、半田ごて８ｃの状態を変化させる。
【０２６６】
第２制御部５５ｄは、ロボットコントローラ４０ｄを介してロボット３０ｄを制御し、半田フィーダ８ｄの状態を変化させる。
【０２６７】
第３制御部５５ｅは、ロボットコントローラ４０ｅを介してロボット３０ｅを制御し、電線８ｅの状態を変化させる。
【０２６８】
第４制御部５５ｆは、ロボットコントローラ４０ｆを介してロボット３０ｆを制御し、パッド８ｆの状態を変化させる。
【０２６９】
第１制御部５５ｃ、第２制御部５５ｄ、第３制御部５５ｅおよび第４制御部５５ｆの各々は、実施の形態１と同様に、変化情報生成部５６と、変化情報記憶部５７と、算出部５８と、指令部５９と、終了判定部６０とを備える（図７参照）。
【０２７０】
ただし、各部における対象物、対象ロボットおよび対象ロボットコントローラは、実施の形態１と異なる。対象物は、第１制御部５５ｃでは半田ごて８ｃであり、第２制御部５５ｄでは半田フィーダ８ｄであり、第３制御部５５ｅでは電線８ｅであり、第４制御部５５ｆではパッド８ｆである。対象ロボットは、第１制御部５５ｃではロボット３０ｃであり、第２制御部５５ｄではロボット３０ｄであり、第３制御部５５ｅではロボット３０ｅであり、第４制御部５５ｆではロボット３０ｆである。対象ロボットコントローラは、第１制御部５５ｃではロボットコントローラ４０ｃであり、第２制御部５５ｄではロボットコントローラ４０ｄであり、第３制御部５５ｅではロボットコントローラ４０ｅであり、第４制御部５５ｆではロボットコントローラ４０ｆである。
【０２７１】
さらに、実施の形態２において、算出部５８は、実施の形態１の機能に加えて、以下の機能を有する。すなわち、算出部５８は、目標フレーム選択部５４が第１関連フレーム，第２関連フレームおよび時間差の指定を受け付けている場合、当該時間差を満たすように制御量を調整する。
【０２７２】
たとえば、図２３に示されるように、第１関連フレーム「フレーム７９」と第２関連フレーム「フレーム８０」と時間差「３秒」との指定を目標フレーム選択部５４が受け付けている場合、算出部５８は、以下のように制御量を調整する。算出部５８は、第１関連フレームに対応する対象物について、実画像上の状態と当該第１関連フレーム上の状態との偏差が閾値未満となった時刻に指定された時間差だけ経過した時刻を到達予定時刻として算出する。算出部５８は、実画像上の第２関連フレームに対応する対象物の状態を第２関連フレーム上の当該対象物の状態に近づけるための各自由度の制御量を算出する。算出部５８は、算出した制御量に撮像周期／（到達予定時刻−現時刻）を乗じることにより、制御量を調整する。
【０２７３】
＜Ｃ２．動作例＞
実施の形態２に係る制御装置５０Ａは、実施の形態１と同様に、図１２および図１５に示すフローチャートに従って、基準動画に沿って対象物の状態を変化させるように対象ロボットを制御する。ただし、実施の形態２に係る目標フレーム選択部５４Ａは、図２４に示すフローチャートに従って、目標フレームの選択処理を行なう。
【０２７４】
図２４は、実施の形態２における目標フレームの選択処理の流れの一例を示すフローチャートである。図２４に示すフローチャートは、図１７に示すフローチャートと比較して、ステップＳ８１，Ｓ８２を含む点でのみ異なる。そのため、以下では、ステップＳ８１，Ｓ８２について説明する。
【０２７５】
ステップＳ５５でＹＥＳの場合、処理はステップＳ８１に移る。ステップＳ８１において、目標フレーム選択部５４Ａは、目標フレームが規定条件で示される第１関連フレームであるか否かを判定する。
【０２７６】
目標フレームが第１関連フレームである場合（ステップＳ８１でＹＥＳ）、ステップＳ８２において、目標フレーム選択部５４Ａは、当該第１関連フレームに対応する第２関連フレームを目標フレームとして選択する。ステップＳ８２の後、目標フレームの選択処理は終了する。
【０２７７】
目標フレームが第１関連フレームである場合（ステップＳ８１でＹＥＳ）、目標フレームの選択処理はステップＳ５７に移る。
【０２７８】
以上の処理により、実画像上の第１対象物の状態と第１目標フレーム上の第１対象物の状態との偏差が閾値未満となる時刻と、実画像上の第２対象物の状態と第２目標フレーム上の第２対象物の状態との偏差が閾値未満となる時刻とが規定条件を満たす。
【０２７９】
たとえば、図２３に示す例のように、第１関連フレーム「フレーム７９」と第２関連フレーム「フレーム８０」と時間差「３秒」とが指定された場合には、以下のように対象ロボットが制御される。
【０２８０】
実画像上の半田ごて８ｃの状態とフレーム７９上の半田ごて８ｃの状態との偏差が閾値Ｔｈａ未満となる時刻をｔ１とし、実画像上の半田フィーダ８ｄの状態とフレーム８０上の半田フィーダ８ｄの状態との偏差が閾値Ｔｈｄ未満となる時刻をｔ２とする。このとき、制御装置５０Ａは、（ｔ２−ｔ１）が３秒であるという規定条件を満たすように、ロボット３０ｄを制御する。これにより、パッド８ｆが十分に加熱されてから、半田フィーダ８ｄを半田ごて８ｃに接触させることができる。
【０２８１】
さらに、図２３に示す例のように、第１関連フレーム「フレーム８１」と第２関連フレーム「フレーム８２」と時間差「０．５秒」とが指定された場合には、以下のように対象ロボットが制御される。
【０２８２】
実画像上の溶融半田８ｇの状態とフレーム８１上の溶融半田８ｇの状態との偏差が閾値Ｔｈｇ未満となる時刻をｔ３とし、実画像上の半田フィーダ８ｄの状態とフレーム８２上の半田フィーダ８ｄの状態との偏差が閾値Ｔｈｄ未満となる時刻をｔ４とする。このとき、制御装置５０Ａは、（ｔ４−ｔ３）が０．５秒であるという規定条件を満たすように、ロボット３０ｄを制御する。溶融半田８ｇの状態とは、溶融半田８ｇの大きさを示す。これにより、実画像上の溶融半田８ｇの状態とフレーム８１上の溶融半田８ｇの状態との偏差が閾値Ｔｈｇ未満となってから、目標フレームがフレーム８２に更新される。そして、溶融半田８ｇが所望の大きさに達してから、半田フィーダ８ｄを半田ごて８ｃから即座に離して、溶融半田８ｇの大きさを維持させることができる。
【０２８３】
また、図２３に示す例のように、フレーム８２の後のフレーム８３が通過必須フレームとして指定されている場合には、以下のように対象ロボットが制御される。
【０２８４】
実画像上の半田フィーダ８ｄの状態とフレーム８２上の半田フィーダ８ｄの状態との偏差が閾値Ｔｈｄ未満となった後に、フレーム８３が目標フレームとして選択される。そのため、半田フィーダ８ｄが半田ごて８ｃから十分に離れた後、半田ごて８ｃがパッド８ｆから遠ざかるように移動される。これにより、半田ごて８ｃと半田フィーダ８ｄとの意図しない接触を避けることができる。
【０２８５】
＜Ｄ２−１．変形例１＞
上記の説明では、制御システム１Ａは、半田ごて８ｃおよび半田フィーダ８ｄを用いて、パッド８ｆに電線８ｅを半田付けする。しかしながら、制御システム１Ａは、別の４つの対象物同士を組み立ててもよい。
【０２８６】
図２５は、実施の形態２の変形例１に係る制御システムの対象物を示す模式図である。変形例１に係る制御システム１Ａは、工業製品の生産ラインなどにおいて、円筒部材１０ｅ，１０ｆをビス１０ｃ，１０ｄで接合させる。
【０２８７】
円筒部材１０ｅにはビス孔１１ａ，１１ｂが形成されている、円筒部材１０ｆにはビス孔１２ａ，１２ｂが形成されている。ビス孔１１ａとビス孔１２ａとが重なり合い、ビス孔１１ｂとビス孔１２ｂとが重なり合った状態において、ビス孔１１ａ，１２ａにビス１０ｃが差し込まれ、ビス孔１１ｂ，１２ｂにビス１０ｄが差し込まれる。
【０２８８】
ビス１０ｃは、ロボット３０ｃのハンド３１ｃ（図２０参照）によって把持される。ビス１０ｄは、ロボット３０ｄのハンド３１ｄによって把持される。円筒部材１０ｅは、ロボット３０ｅのハンド３１ｅによって把持される。円筒部材１０ｆは、ロボット３０ｆのステージ３１ｆ上に載置される。
【０２８９】
撮像装置２１，２２は、ビス孔１１ａ，１２ａとビス１０ｃとを撮像可能な位置に配置される。ただし、撮像装置２１，２２は、ビス孔１１ｂ，１２ｂとビス１０ｄとを撮像できない。そのため、変形例１に係る制御システム１Ａは、さらに撮像装置２３，２４を備える。撮像装置２３，２４は、ビス孔１１ｂ，１２ｂとビス１０ｄとを撮像可能な位置に配置される。
【０２９０】
本変形例１の制御装置５０Ａは、撮像装置２１〜２４にそれぞれ対応する４つの基準動画を記憶する。
【０２９１】
図２６は、実施の形態２の変形例１における基準動画の一例を示す図である。図２６には、基準動画のフレーム８４〜８６が示されている。フレーム８４は、円筒部材１０ｆが所望の位置および姿勢に到達したときのフレームである。フレーム８５は、円筒部材１０ｅのビス孔１１ａが円筒部材１０ｆのビス孔１２ａに重なりあったときのフレームである。フレーム８６は、ビス１０ｃがビス孔１１ａ，１２ａに挿入される直前のフレームである。
【０２９２】
本変形例１の変化情報生成部５６は、４つの基準動画にそれぞれ対応する４つの変化情報セットを生成すればよい。そして、算出部５８は、４つの変化情報セットに基づいて、対象ロボットの各自由度の制御量を算出すればよい。
【０２９３】
なお、円筒部材１０ｅ，１０ｆの各々には、さらに２つのビス孔が設けられてもよい。この場合、円筒部材１０ｅ，１０ｆは、４つのビスによって接合される。
【０２９４】
図２７は、４つの撮像装置の配置例を示す図である。図２７に示す例の場合、撮像装置２１は、２つのビス１０ｃ，１０ｇを撮像可能な位置に配置される。すなわち、撮像装置２１の視野範囲２１ａにビス１０ｃ，１０ｇが存在する。撮像装置２２は、２つのビス１０ｃ，１０ｈを撮像可能な位置に配置される。すなわち、撮像装置２２の視野範囲２２ａにビス１０ｃ，１０ｈが存在する。撮像装置２３は、２つのビス１０ｄ，１０ｇを撮像可能な位置に配置される。すなわち、撮像装置２３の視野範囲２３ａにビス１０ｄ，１０ｇが存在する。撮像装置２４は、２つのビス１０ｄ，１０ｈを撮像可能な位置に配置される。すなわち、撮像装置２４の視野範囲２４ａにビス１０ｄ，１０ｈが存在する。
【０２９５】
＜Ｄ２−２．変形例２＞
図２８は、実施の形態２の変形例２に係る制御システムの対象物を示す模式図である。変形例２に係る制御システム１Ａは、工業製品の生産ラインなどにおいて、溶接トーチ１３ｃと溶接棒１３ｄと用いて、２つの円筒部材１３ｅ，１３ｆ同士を溶接する。
【０２９６】
溶接トーチ１３ｃは、ロボット３０ｃのハンド３１ｃ（図２０参照）によって把持される。溶接棒１３ｄは、ロボット３０ｄのハンド３１ｄによって把持される。円筒部材１３ｅは、ロボット３０ｅのハンド３１ｅによって把持される。円筒部材１３ｆは、ロボット３０ｆのステージ３１ｆ上に載置される。
【０２９７】
＜Ｄ２−３．変形例３＞
目標フレーム選択部５４Ａは、第１関連フレームおよび第２関連フレームに対して時間差「指定なし」を受け付けてもよい。この場合、第１関連フレームから第２関連フレームの間にあるフレームは目標フレームとして選択されず、スキップされる。時間差「指定なし」の指定を受け付けた場合、算出部５８は、制御量の調整を行なわない。
【０２９８】
＜Ｄ２−４．変形例４＞
目標フレーム選択部５４Ａは、基準動画のうち連続する複数のフレーム群を動作グループとする指定を受け付けてもよい。たとえば、同じ動作を反復して複数回繰り返す場合、作業者は、当該動作に対応するフレーム群を動作グループとして指定する。さらに、作業者は、動作グループの反復回数も合わせて指定する。
【０２９９】
目標フレーム選択部５４Ａは、動作グループに含まれるフレームを反復回数だけ繰り返し目標フレームとして指定すればよい。
【０３００】
＜Ｄ２−５．その他の変形例＞
実施の形態１で説明した＜Ｄ１−５．その他の変形例＞は、実施の形態２にも適用されてもよい。
【０３０１】
≪実施の形態３≫
図２９を参照して、本開示が適用される場面の一例について説明する。図２９は、実施の形態３に係る制御システムの概要を示す模式図である。実施の形態３では、実施の形態１，２と異なり、複数の対象物のうちの１つが定位置に設置され、撮像装置２１，２２の状態がロボットによって変化される。
【０３０２】
実施の形態３に係る制御システム１Ｂは、工業製品の生産ラインなどにおいて、加工具１４ｈ，１４ｉを用いて、大型部材１４ｊの加工対象部分１５，１６を順に加工する。大型部材１４ｊは、たとえば、大型装置の筐体、自動車ボディーなどである。加工具１４ｈ，１４ｉは、たとえばドリル、電動やすりなどである。
【０３０３】
制御システム１Ｂは、図１に示す制御システム１と比較して、ロボット３０ａ，３０ｂ、ロボットコントローラ４０ａ，４０ｂおよび制御装置５０の代わりに、ロボット３０ｈ，３０ｉ，３０ｊ、ロボットコントローラ４０ｈ，４０ｉ，４０ｊおよび制御装置５０Ｂを備える点で相違する。
【０３０４】
ロボット３０ｈは、加工具１４ｈの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｈは、先端に加工具１４ｈを支持するハンド３１ｈを有し、ハンド３１ｈの位置および姿勢を複数の自由度で変化させる。さらに、ロボット３０ｈは、レール３４に沿って矢印ＡＲの方向に移動可能な台座３３ｈを含む。
【０３０５】
ロボット３０ｉは、加工具１４ｉの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｉは、先端に加工具１４ｉを支持するハンド３１ｉを有し、ハンド３１ｉの位置および姿勢を複数の自由度で変化させる。さらに、ロボット３０ｉは、レール３４に沿って矢印ＡＲの方向に移動可能な台座３３ｈを含む。
【０３０６】
ロボット３０ｊは、撮像装置２１，２２の状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｊは、先端に撮像装置２１，２２を支持するハンド３１ｊを有し、ハンド３１ｊの位置および姿勢を複数の自由度で変化させる。さらに、ロボット３０ｊは、レール３４に沿って矢印ＡＲの方向に移動可能な台座３３ｈを含む。
【０３０７】
なお、図２９では、台座３３ｈ，３３ｉ，３３ｊは、共通のレール３４に沿って移動するものとした。しかしながら、台座３３ｈ，３３ｉ，３３ｊごとにレールが設けられており、台座３３ｈ，３３ｉ，３３ｊの各々は、対応するレールに沿って移動してもよい。
【０３０８】
ロボットコントローラ４０ｈ，４０ｉ，４０ｊは、制御装置５０Ｂから受けた制御指令に従って、ロボット３０ｈ，３０ｉ，３０ｊの動作制御をそれぞれ行なう。ロボットコントローラ４０ｈ，４０ｉ，４０ｊは、制御装置５０Ｂからの制御指令に従って、ハンド３１ｈ，３１ｉ，３１ｊの状態をそれぞれ変化させるとともに、台座３３ｈ，３３ｉ，３３ｊをそれぞれ移動させる。
【０３０９】
制御装置５０Ｂは、実施の形態１と同様に、図４に示されるようなハードウェア構成を有する。そのため、制御装置５０Ｂのハードウェア構成の詳細な説明を省略する。
【０３１０】
図３０は、実施の形態３に係る制御装置の機能構成を示すブロック図である。図３０に示されるように、制御装置５０Ｂは、図５に示す制御装置５０と比較して、第１制御部５５ａおよび第２制御部５５ｂの代わりに第１制御部５５ｈ、第２制御部５５ｉおよび第３制御部５５ｊを備える点で相違する。
【０３１１】
ただし、基準動画記憶部５１は、加工具１４ｈ，１４ｉと大型部材１４ｊとの見本を示す第１基準動画および第２基準動画を記憶する。
【０３１２】
第１基準動画および第２基準動画は、たとえば、以下のような第１〜第３シーンを順に示す。第１シーンは、大型部材１４ｊの加工対象部分１５が画像上の定位置にある状態において、加工具１４ｈ，１４ｉが加工対象部分１５に対して加工するシーンである。第２シーンは、大型部材１４ｊが画像上で移動し、大型部材１４ｊの加工対象部分１６が画像上の定位置に移動するシーンである。第３シーンは、大型部材１４ｊの加工対象部分１６が画像上の定位置にある状態において、加工具１４ｈ，１４ｉが加工対象部分１６に対して加工するシーンである。
【０３１３】
教示範囲選択部５２は、加工具１４ｈと加工具１４ｉと大型部材１４ｊとの各々について教示範囲を選択する。
【０３１４】
画像処理部５３は、対象画像から加工具１４ｈと加工具１４ｉと大型部材１４ｊとを検出する。なお、大型部材１４ｊのサイズが大きいため、撮像装置２１，２２の視野には大型部材１４ｊの一部のみが含まれる。そのため、画像処理部５３は、大型部材１４ｊの表面に形成された模様を検出する。
【０３１５】
第１制御部５５ｈは、ロボットコントローラ４０ｈを介してロボット３０ｈを制御し、加工具１４ｈの状態を変化させる。
【０３１６】
第２制御部５５ｉは、ロボットコントローラ４０ｉを介してロボット３０ｉを制御し、加工具１４ｈの状態を変化させる。
【０３１７】
第３制御部５５ｊは、ロボットコントローラ４０ｊを介してロボット３０ｊを制御し、撮像装置２１，２２の状態を変化させる。
【０３１８】
第１制御部５５ｈ、第２制御部５５ｉおよび第３制御部５５ｊの各々は、実施の形態１と同様に、変化情報生成部５６と、変化情報記憶部５７と、算出部５８と、指令部５９と、終了判定部６０とを備える（図７参照）。
【０３１９】
ただし、各部における対象物、対象ロボットおよび対象ロボットコントローラは、実施の形態１と異なる。対象物は、第１制御部５５ｈでは加工具１４ｈであり、第２制御部５５ｉでは加工具１４ｉであり、第３制御部５５ｊでは大型部材１４ｊである。対象ロボットは、第１制御部５５ｈではロボット３０ｈであり、第２制御部５５ｉではロボット３０ｉであり、第３制御部５５ｊではロボット３０ｊである。対象ロボットコントローラは、第１制御部５５ｈではロボットコントローラ４０ｈであり、第２制御部５５ｉではロボットコントローラ４０ｉであり、第３制御部５５ｊではロボットコントローラ４０ｊである。
【０３２０】
第１制御部５５ｈおよび第２制御部５５ｉの変化情報生成部５６は、ロボット３０ｊが動作していない状態において、対象ロボットの単位制御量と、撮像装置２１によって撮像された実画像上の対象物の状態の変化量との関係を示す第１変化情報を生成する。また、第１制御部５５ｈおよび第２制御部５５ｉの変化情報生成部５６は、ロボット３０ｊが動作していない状態において、対象ロボットの単位制御量と、撮像装置２２によって撮像された実画像上の対象物の状態の変化量との関係を示す第２変化情報を生成する。
【０３２１】
具体的には、第１制御部５５ｈの変化情報生成部５６は、大型部材１４ｊの加工対象部分１５が画像上の定位置となる撮像装置２１，２２の状態において、第１変化情報および第２変化情報を生成する。第２制御部５５ｉの変化情報生成部５６は、大型部材１４ｊの加工対象部分１６が画像上の定位置となる撮像装置２１，２２の状態において、第１変化情報および第２変化情報を生成する。
【０３２２】
大型部材１４ｊの状態は、ロボット３０ｊによって変化されない。しかしながら、ロボット３０ｊによって撮像装置２１，２２の状態が変化するため、撮像装置２１，２２の実画像上の大型部材１４ｊの状態は変化する。そのため、第３制御部５５ｊの変化情報生成部５６は、ロボット３０ｊの単位制御量と、撮像装置２１によって撮像された実画像上の大型部材１４ｊの状態の変化量との関係を示す第１変化情報を生成する。また、第３制御部５５ｊの変化情報生成部５６は、ロボット３０ｊの単位制御量と、撮像装置２２によって撮像された実画像上の大型部材１４ｊの状態の変化量との関係を示す第２変化情報を生成する。
【０３２３】
第３制御部５５ｊにおける算出部５８、指令部５９および終了判定部６０の処理内容は、実施の形態１の第１制御部５５ａおよび第２制御部５５ｂと同じである。
【０３２４】
一方、第１制御部５５ｈおよび第２制御部５５ｉにおける算出部５８は、以下の開始条件が満たされたときのみ、実画像上の対象物の状態が目標フレーム上の対象物の状態に近づくように対象ロボットの制御量を算出する。
開始条件：実画像上の大型部材１４ｊの状態と目標フレーム上の大型部材１４ｊの状態との偏差が閾値Ｔｈｊ未満である。
【０３２５】
第１制御部５５ｈおよび第２制御部５５ｉにおける指令部５９および終了判定部６０の処理内容は、実施の形態１の第１制御部５５ａおよび第２制御部５５ｂと同じである。
【０３２６】
実施の形態３に係る制御装置５０Ｂは、実施の形態１と同様に図１２のフローチャートに沿って、第１基準動画および第２基準動画に従って対象物の状態が変化するように対象ロボットを制御する。
【０３２７】
さらに、実施の形態３において、第３制御部５５ｊは、実施の形態１と同様に図１５に示すフローチャートに従って、図１２に示すステップＳ４６のサブルーチンの処理を行なう。しかしながら、第１制御部５５ｈおよび第２制御部５５ｉは、図３１に示すフローチャートに従って、図１２に示すステップＳ４６のサブルーチンの処理を行なう。
【０３２８】
図３１は、実施の形態３の第１制御部および第２制御部の処理の流れを示すフローチャートである。図３１に示されるように、実施の形態３の第１制御部５５ｈおよび第２制御部５５ｉの処理の流れは、図１５に示すフローチャートと比べて、ステップＳ９０を備える点で相違する。そのため、ステップＳ９０についてのみ説明する。
【０３２９】
ステップＳ９０において、実画像上の大型部材１４ｊの状態と目標フレーム上の大型部材１４ｊの状態との偏差が閾値Ｔｈｊ未満であるか否かが判定される。偏差が閾値Ｔｈｊ以上である場合（ステップＳ９０でＮＯ）、処理は終了する。偏差が閾値Ｔｈｊ未満である場合（ステップＳ９０でＹＥＳ）、ステップＳ６１〜Ｓ６５が行われる。
【０３３０】
このように、制御装置５０Ｂは、実画像上の大型部材１４ｊの状態と目標フレーム上の大型部材１４ｊの状態との偏差が閾値Ｔｈｊを超える場合、ロボット３０ｊのみを制御する。制御装置５０Ｂは、実画像上の大型部材１４ｊの状態と目標フレーム上の大型部材１４ｊの状態との偏差が閾値Ｔｈｊ未満である場合、ロボット３０ｈ〜３０ｊの各々を制御する。
【０３３１】
たとえば、第１基準動画および第２基準動画が上記のような第１〜第３シーンを順に示す場合は、以下のようにロボット３０ｈ〜３０ｊが制御される。第１シーンの中から目標フレームが選択されている場合、大型部材１４ｊの加工対象部分１５が画像上の定位置になるように撮像装置２１，２２が移動するまでの間、ロボット３０ｈ，３０ｉは停止した状態となる。そして、大型部材１４ｊの加工対象部分１５が画像上の定位置になってから、第１制御部５５ｈおよび第２制御部５５ｉは、実画像上の対象物の状態が目標フレーム上の対象物の状態に近づくように対象ロボットを制御する。その結果、加工具１４ｈ，１４ｉは、加工対象部分１５に対して加工する。この間も、第３制御部５５ｊは、実画像上の大型部材１４ｊの状態が目標フレーム上の大型部材１４ｊの状態に近づくようにロボット３０ｊを制御する。ただし、第１シーンにおいて、大型部材１４ｊの状態は一定であるため、ロボット３０ｊはほとんど動作せず、撮像装置２１，２２の状態は略一定となる。
【０３３２】
上記の第２シーンの中から目標フレームが選択されている場合、実画像上の大型部材１４ｊの状態が変化するようにロボット３０ｊが制御され、撮像装置２１，２２が移動する。大型部材１４ｊの加工対象部分１６が画像上の定位置になるように撮像装置２１，２２が移動するまでの間、ロボット３０ｈ，３０ｉは停止した状態となる。
【０３３３】
大型部材１４ｊの加工対象部分１６が画像上の定位置となり、上記の第３シーンの中から目標フレームが選択されると、第１制御部５５ｈおよび第２制御部５５ｉは、実画像上の対象物の状態が目標フレーム上の対象物の状態に近づくように対象ロボットを制御する。その結果、加工具１４ｈ，１４ｉは、加工対象部分１６に対して加工する。この間も、第３制御部５５ｊは、実画像上の大型部材１４ｊの状態が目標フレーム上の大型部材１４ｊの状態に近づくようにロボット３０ｊを制御する。ただし、第３シーンにおいて、大型部材１４ｊの状態は一定であるため、ロボット３０ｊはほとんど動作せず、撮像装置２１，２２の状態は略一定となる。
【０３３４】
図３２は、実施の形態３の変形例に係る制御システムの一部の概要を示す模式図である。図３２に示されるように、ロボット３０ｈ，３０ｉは、ロボット３０ｊに含まれる台座３３ｊの上に設置されてもよい。この場合、ロボット３０ｈ，３０ｉは、ロボット３０ｊと一体となって移動する。
【０３３５】
実施の形態１で説明した＜Ｄ１−５．その他の変形例＞は、実施の形態３にも適用されてもよい。
【０３３６】
≪付記≫
以上のように、実施の形態１〜３および変形例は以下のような開示を含む。
【０３３７】
（構成１）
第１〜第Ｎのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）と、
第１〜第Ｎの対象物（２ａ，２ｂ，６ａ，６ｂ，８ｃ〜８ｆ，１０ｃ〜１０ｆ，１３ｃ〜１３ｆ，１４ｈ〜１４ｊ）を撮像するための撮像装置（２１〜２４）と、
前記第１〜第Ｎのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）を制御するための制御装置（５０，５０Ａ，５０Ｂ）とを備える制御システム（１，１Ａ，１Ｂ）であって、
Ｎは２以上の整数であり、
第ｉのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）は、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）は、前記第Ｎの対象物および前記撮像装置の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置（２１〜２４）の他方は、定位置に設置され、
前記制御装置（５０，５０Ａ，５０Ｂ）は、前記第１〜第Ｎの対象物の各々について変化情報を取得し、
第ｊの対象物に対応する前記変化情報は、第ｊのロボット（３０ａ〜３０ｊ）の制御量と、前記撮像装置の画像上における前記第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御装置（５０，５０Ａ，５０Ｂ）は、
前記撮像装置（２１〜２４）によって撮像された実画像を取得する第１処理と、
前記第１〜第Ｎの対象物の見本を示す基準動画から目標フレームを選択する第２処理と、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボットの各々を制御する第３処理とを行ない、
前記制御装置（５０，５０Ａ，５０Ｂ）は、前記第３処理において、前記第ｊの対象物に対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物の状態に近づけるための前記第ｊのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）の制御量を算出し、算出した制御量に従って前記第ｊのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）を制御する、制御システム（１，１Ａ，１Ｂ）。
【０３３８】
（構成２）
前記制御装置（５０，５０Ａ，５０Ｂ）は、前記実画像上における前記第１〜第Ｎの対象物のうちの少なくとも１つの対象物の状態と前記目標フレーム上の前記少なくとも１つの対象物の状態との偏差が閾値未満となってから、前記目標フレームを更新する、構成１に記載の制御システム（１，１Ａ，１Ｂ）。
【０３３９】
（構成３）
前記制御装置（５０，５０Ａ，５０Ｂ）は、前記基準動画から第１目標フレームを選択した後、前記複数のフレームから第２目標フレームを選択し、
前記制御装置（５０，５０Ａ，５０Ｂ）は、前記実画像上の前記第１の対象物の状態と前記第１目標フレーム上の前記第１の対象物の状態との偏差が第１閾値未満となる第１時刻と、前記実画像上の第２の対象物の状態と前記第２目標フレーム上の前記第２の対象物の状態との偏差が第２閾値未満となる第２時刻とが規定条件を満たすように、前記第１のロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）および第２のロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）を制御する、構成１に記載の制御システム（１，１Ａ，１Ｂ）。
【０３４０】
（構成４）
前記撮像装置（２１〜２４）は、前記第１〜第Ｎの対象物とともに第Ｎ＋１の対象物（８ｇ）を撮像し、
前記基準動画は、前記第Ｎ＋１の対象物を含み、
前記制御装置（５０Ａ）は、前記実画像上の前記第Ｎ＋１の対象物の状態と前記目標フレーム上の前記第Ｎ＋１の対象物の状態との偏差が閾値未満となってから、前記目標フレームを更新する、構成１に記載の制御システム（１Ａ）。
【０３４１】
（構成５）
前記撮像装置（２１〜２４）は、前記第１〜第Ｎの対象物とともに第Ｎ＋１の対象物（８ｇ）を撮像し、
前記基準動画は、前記第Ｎ＋１の対象物を含み、
前記制御装置（５０Ａ）は、前記基準動画から第１目標フレームを選択した後、前記複数のフレームから第２目標フレームを選択し、
前記制御装置（５０Ａ）は、前記実画像上の前記第Ｎ＋１の対象物の状態と前記第１目標フレーム上の前記第Ｎ＋１の対象物の状態との偏差が第１閾値未満となる第１時刻と、前記実画像上の前記第１の対象物の状態と前記第２目標フレーム上の前記第１の対象物の状態との偏差が第２閾値未満となる第２時刻とが規定条件を満たすように、前記第１のロボット（３０ｄ）を制御する、構成１に記載の制御システム（１Ａ）。
【０３４２】
（構成６）
前記制御装置（５０，５０Ａ）は、前記目標フレームが選択されてから規定時間経過するまでの間に、前記実画像上の前記第１〜第Ｎの対象物のうちの少なくとも１つの対象物の状態と前記目標フレーム上の前記少なくとも１つの対象物の状態との偏差が閾値未満とならない場合に、前記制御システムに異常が生じていると判定する、構成１に記載の制御システム（１，１Ａ）。
【０３４３】
（構成７）
前記第Ｎのロボット（３０ｊ）は、前記撮像装置（２１，２２）の状態を変化させ、
前記制御装置（５０Ｂ）は、前記実画像上の前記第Ｎの対象物（１４ｊ）の状態と前記目標フレーム上の前記第Ｎの対象物の状態との偏差が閾値を超える場合、前記第３処理において、前記第Ｎのロボット（３０ｊ）のみを制御し、前記実画像上の前記第Ｎの対象物の状態と前記目標フレーム上の前記第Ｎの対象物の状態との偏差が閾値未満である場合、前記第３処理において、前記第１〜第Ｎのロボット（３０ｈ〜３０ｊ）の各々を制御する、構成１に記載の制御システム（５０Ｂ）。
【０３４４】
（構成８）
前記制御装置（５０，５０Ａ，５０Ｂ）は、前記第１処理から前記第３処理を含む一連処理を繰り返し実行し、前記第３処理を行なっている間に次の前記一連処理の前記第１処理を開始する、構成１に記載の制御システム（１，１Ａ，１Ｂ）。
【０３４５】
（構成９）
前記制御装置（５０，５０Ａ，５０Ｂ）は、前記第２処理において、前記基準動画のうち予測ホライズン期間に含まれるフレームを前記目標フレームとして選択し、
前記制御装置（５０，５０Ａ）は、前記第３処理において、前記基準動画のうち予測ホライズン期間に含まれるフレーム上の前記第ｊの対象物の状態と、前記予測ホライズン期間における前記撮像装置の画像上の前記第ｊの対象物の状態との偏差を最小化するように、制御ホライズン期間における前記第ｊのロボットの制御量を算出する、構成１に記載の制御システム（１，１Ａ，１Ｂ）。
【０３４６】
（構成１０）
前記状態は、物体の位置、姿勢、形状、サイズの少なくとも１つを示す、構成１から８のいずれかに記載の制御システム（１，１Ａ，１Ｂ）。
【０３４７】
（構成１１）
第１〜第Ｎの対象物（２ａ，２ｂ，６ａ，６ｂ，８ｃ〜８ｆ，１０ｃ〜１０ｆ，１３ｃ〜１３ｆ，１４ｈ〜１４ｊ）を撮像するための撮像装置（２１〜２４）を用いて、第１〜第Ｎのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）を制御する制御方法であって、
Ｎは２以上の整数であり、
第ｉのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）は、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）は、前記第Ｎの対象物および前記撮像装置（２１〜２４）の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置（２１〜２４）の他方は、定位置に設置され、
前記制御方法は、
前記第１〜第Ｎの対象物の各々について変化情報を取得する第１ステップを備え、
第ｊの対象物に対応する前記変化情報は、第ｊのロボットの制御量と、前記撮像装置の画像上における前記第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御方法は、
前記撮像装置（２１〜２４）によって撮像された実画像を取得する第２ステップと、
前記第１〜第Ｎの対象物の見本を示す基準動画から目標フレームを選択する第３ステップと、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボットの各々を制御する第４ステップとをさらに備え、
前記第４ステップは、前記第ｊの対象物に対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物の状態に近づけるための前記第ｊのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）の制御量を算出し、算出した制御量に従って前記第ｊのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）を制御するステップを含む、制御方法。
【０３４８】
（構成１２）
第１〜第Ｎの対象物（２ａ，２ｂ，６ａ，６ｂ，８ｃ〜８ｆ，１０ｃ〜１０ｆ，１３ｃ〜１３ｆ）を撮像するための撮像装置（２１〜２４）を用いて、第１〜第Ｎのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）を制御する制御方法をコンピュータに実行させるためのプログラム（５５０）であって、
Ｎは２以上の整数であり、
第ｉのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）は、第ｉの対象物の状態を変化させ、
ｉは１〜Ｎ−１の整数であり、
前記第Ｎのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）は、前記第Ｎの対象物および前記撮像装置（２１〜２４）の一方の状態を変化させ、
前記第Ｎの対象物および前記撮像装置（２１〜２４）の他方は、定位置に設置され、
前記制御方法は、
前記第１〜第Ｎの対象物の各々について変化情報を取得する第１ステップを備え、
第ｊの対象物に対応する前記変化情報は、第ｊのロボットの制御量と、前記撮像装置の画像上における前記第ｊの対象物の状態の変化量との関係を示し、
ｊは１〜Ｎの整数であり、
前記制御方法は、
前記撮像装置（２１〜２４）によって撮像された実画像を取得する第２ステップと、
前記第１〜第Ｎの対象物の見本を示す基準動画から目標フレームを選択する第３ステップと、
前記実画像と前記目標フレームとに基づいて前記第１〜第Ｎのロボットの各々を制御する第４ステップとをさらに備え、
前記第４ステップは、前記第ｊの対象物に対応する前記変化情報に基づいて、前記実画像上の前記第ｊの対象物の状態を前記目標フレーム上の前記第ｊの対象物の状態に近づけるための前記第ｊのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）の制御量を算出し、算出した制御量に従って前記第ｊのロボット（３０ａ〜３０ｆ，３０ｈ〜３０ｊ）を制御するステップを含む、プログラム（５５０）。
【０３４９】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０３５０】
１，１Ａ，１Ｂ  制御システム、２ａ  オスコネクタ、２ｂ  メスコネクタ、３  線、４ａ，４ｇ  特徴点、５，９  基板、６ａ  上ケース、６ｂ  下ケース、７ａ，７ｂ  係合爪、８ｃ  半田ごて、８ｄ  半田フィーダ、８ｅ  電線、８ｆ  パッド、８ｇ  溶融半田、１０ｃ，１０ｄ，１０ｇ，１０ｈ  ビス、１０ｅ，１０ｆ，１３ｅ，１３ｆ  円筒部材、１１ａ，１１ｂ，１２ａ，１２ｂ  ビス孔、１３ｃ  溶接トーチ、１３ｄ  溶接棒、１４ｈ，１４ｉ  加工具、１４ｊ  大型部材、１５，１６  加工対象部分、２１〜２４  撮像装置、２１ａ〜２４ａ  視野範囲、３０ａ〜３０ｆ，３０ｈ〜３０ｊ  ロボット、３１ａ，３１ｃ〜３１ｅ，３１ｈ〜３１ｊ  ハンド、３１ｂ，３１ｆ  ステージ、３２ａ〜３２ｄ  制御棒、３３ｈ，３３ｉ，３３ｊ  台座、３４  レール、４０ａ〜４０ｆ，４０ｈ〜４０ｊ  ロボットコントローラ、５０，５０Ａ，５０Ｂ  制御装置、５１  基準動画記憶部、５２  教示範囲選択部、５３  画像処理部、５４，５４Ａ  目標フレーム選択部、５５ａ，５５ｃ，５５ｈ  第１制御部、５５ｂ，５５ｄ，５５ｉ  第２制御部、５５ｅ，５５ｊ  第３制御部、５５ｆ  第４制御部、５６  変化情報生成部、５７  変化情報記憶部、５８  算出部、５９  指令部、６０  終了判定部、５１０  プロセッサ、５１２  ＲＡＭ、５１４  表示コントローラ、５１６  システムコントローラ、５１８  Ｉ／Ｏコントローラ、５２０  ハードディスク、５２２  カメラインターフェイス、５２２ａ，５２２ｂ  画像バッファ、５２４  入力インターフェイス、５２６  ロボットコントローラインターフェイス、５２８  通信インターフェイス、５３０  メモリカードインターフェイス、５３２  表示部、５３４  入力装置、５３６  メモリカード、５５０  制御プログラム、５７１  第１変化情報セット、５７２  第２変化情報セット。
【図１】
2020015101.tif 000003
【図２】
2020015101.tif 000004
【図３】
2020015101.tif 000005
【図４】
2020015101.tif 000006
【図５】
2020015101.tif 000007
【図６】
2020015101.tif 000008
【図７】
2020015101.tif 000009
【図８】
2020015101.tif 000010
【図９】
2020015101.tif 000011
【図１０】
2020015101.tif 000012
【図１１】
2020015101.tif 000013
【図１２】
2020015101.tif 000014
【図１３】
2020015101.tif 000015
【図１４】
2020015101.tif 000016
【図１５】
2020015101.tif 000017
【図１６】
2020015101.tif 000018
【図１７】
2020015101.tif 000019
【図１８】
2020015101.tif 000020
【図１９】
2020015101.tif 000021
【図２０】
2020015101.tif 000022
【図２１】
2020015101.tif 000023
【図２２】
2020015101.tif 000024
【図２３】
2020015101.tif 000025
【図２４】
2020015101.tif 000026
【図２５】
2020015101.tif 000027
【図２６】
2020015101.tif 000028
【図２７】
2020015101.tif 000029
【図２８】
2020015101.tif 000030
【図２９】
2020015101.tif 000031
【図３０】
2020015101.tif 000032
【図３１】
2020015101.tif 000033
【図３２】
2020015101.tif 000034