(57)【要約】【課題】視覚サーボを用いたロボットの制御が正常に実行されている否かを作業者が判定しやすい制御システムを提供する。【解決手段】制御システムは、対象物の状態を変化させるためのロボットと、対象物を撮像するための撮像装置と、撮像装置によって撮像される実画像上の対象物の状態の変化が、予め作成された基準動画上の対象物の状態の変化に近づくように、ロボットを制御するための制御部と、実画像から抽出される特徴量の時間変化を示す第１波形と、基準動画のフレームから抽出される特徴量の時間変化を示す第２波形との両方を表示装置の画面上に表示させるための解析部とを備える。【選択図】図１２
2020023024.tif 000002
【特許請求の範囲】
【請求項１】
対象物の状態を変化させるためのロボットと、
前記対象物を撮像するための撮像装置と、
前記撮像装置によって撮像される実画像上の前記対象物の状態の変化が、予め作成された基準動画上の前記対象物の状態の変化に近づくように、前記ロボットを制御するための制御部と、
前記実画像から抽出される特徴量の時間変化を示す第１波形と、前記基準動画のフレームから抽出される前記特徴量の時間変化を示す第２波形との両方を表示装置の画面上に表示させるための解析部とを備える、制御システム。
【請求項２】
前記解析部は、前記第１波形と前記第２波形との時間軸を合わせる、請求項１に記載の制御システム。
【請求項３】
前記解析部は、前記時間軸上の時刻ごとに、前記第１波形と前記第２波形との前記特徴量の差異を示すパラメータ値を算出し、前記パラメータ値および前記パラメータ値の時間変化を示す第３波形の少なくとも一方を前記画面上に表示させる、請求項２に記載の制御システム。
【請求項４】
前記解析部は、
前記時間軸上の時刻ごとに、前記第１波形と前記第２波形との前記特徴量の差異を示すパラメータ値を算出し、
算出したパラメータ値に基づいて、前記パラメータ値が最大となる時刻、または、前記パラメータ値が閾値を超える時刻を指定時刻として選択し、
前記指定時刻に対応する前記実画像と、前記基準動画における前記指定時刻のフレームとを前記画面上に同時に表示させる、請求項２に記載の制御システム。
【請求項５】
前記解析部は、
前記時間軸上の指定時刻を受け付け、
前記指定時刻に対応する前記実画像と、前記基準動画における前記指定時刻のフレームとを前記画面上に同時に表示させる、請求項２に記載の制御システム。
【請求項６】
前記解析部は、時系列に並べられた前記実画像からなる実動画および前記基準動画の両方における、前記指定時刻を含む一部の期間の映像を前記画面上で同時に再生させる、請求項４または５に記載の制御システム。
【請求項７】
前記解析部は、前記実画像を撮像したときの、前記ロボットの基準位置からの移動量の時間変化を示す第４波形と、前記基準動画通りに前記対象物の状態が変化するときの前記移動量の時間変化を示す第５波形との両方を前記画面上に表示させる、請求項１から６のいずれか１項に記載の制御システム。
【請求項８】
前記ロボットは、複数の自由度で前記対象物の状態を変化させ、
前記解析部は、前記複数の自由度のうちの１つの自由度の選択指示を受け付け、
前記移動量は、前記１つの自由度の方向に沿って前記ロボットが前記基準位置から移動した量である、請求項７に記載の制御システム。
【請求項９】
請求項１から８のいずれか１項に記載の制御システムに用いられる解析装置であって、
前記解析部を備える、解析装置。
【請求項１０】
対象物を撮像するための撮像装置を用いて、前記対象物の状態を変化させるロボットを制御する制御方法であって、
前記撮像装置によって撮像される実画像上の前記対象物の状態の変化が、予め作成された基準動画上の前記対象物の状態の変化に近づくように、前記ロボットを制御するステップと、
前記実画像のフレームから抽出される特徴量の時間変化を示す第１波形と、前記基準動画のフレームから抽出される前記特徴量の時間変化を示す第２波形との両方を表示装置の画面上に表示させるステップとを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを制御する制御システム、解析装置および制御方法に関する。
【背景技術】
【０００２】
「村田敦、他３名、「視覚サーボによる高精度位置決め手法の開発」、ＳＥＩテクニカルレビュー、2009年7月、第175号、p. 98-102」（非特許文献１）には、視覚サーボを利用し、ロボットアームを目標位置に導く技術が開示されている。非特許文献１に開示されたシステムは、ロボットアームに取り付けられたカメラによって、コネクタを撮像し、カメラの画像が目標画像に近づくようにロボットを制御する。これにより、ロボットハンドに支持された端子がコネクタに挿入される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】村田敦、他３名、「視覚サーボによる高精度位置決め手法の開発」、ＳＥＩテクニカルレビュー、2009年7月、第175号、p. 98-102
【発明の概要】
【発明が解決しようとする課題】
【０００４】
生産現場では４Ｍ変更が起こり得る。４Ｍ変更とは、人（man）、機械（machine）、方法（method）、材料（material）の変化である。４Ｍ変更が生じた場合、視覚サーボを用いてロボットを正常に制御できなくなり、対象物の状態が期待通りに変化しなくなる可能性がある。たとえば、非特許文献１に記載のシステムでは、端子がコネクタに挿入できなくなる。
【０００５】
作業者は、ロボットの動作を目視で確認することにより、視覚サーボを用いたロボットの制御が正常に実行されているか否かを判定できる。しかしながら、ロボットの動作速度が速い場合、または、安全柵等の環境条件によりロボットとの距離が長い場合、作業者は、ロボットの動作を目視で確認しにくい。この場合、作業者は、視覚サーボを用いたロボットの制御が正常に実行されているか否かを判定しにくい。
【０００６】
本発明は、上記の問題を鑑みてなされたものであり、その目的は、視覚サーボを用いたロボットの制御が正常に実行されている否かを作業者が判定しやすい制御システム、解析装置および制御方法を提供することである。
【課題を解決するための手段】
【０００７】
本開示の一例によれば、制御システムは、対象物の状態を変化させるためのロボットと、対象物を撮像するための撮像装置と、制御部と、解析部とを備える。制御部は、撮像装置によって撮像される実画像上の対象物の状態の変化が、予め作成された基準動画上の対象物の状態の変化に近づくように、ロボットを制御する。解析部は、実画像から抽出される特徴量の時間変化を示す第１波形と、基準動画のフレームから抽出される特徴量の時間変化を示す第２波形との両方を表示装置の画面上に表示させる。
【０００８】
この開示によれば、作業者は、画面に表示される第１波形と第２波形とを確認することにより、視覚サーボを用いたロボットの制御が正常に実行されている否かを判定しやすくなる。たとえば、作業者は、第１波形と第２波形との偏差が大きい場合に、視覚サーボを用いたロボットの制御に何等かの異常が生じていると判定できる。
【０００９】
上述の開示において、解析部は、第１波形と第２波形との時間軸を合わせる。この開示によれば、第１波形と第２波形との時間ずれが補正される。その結果、視覚サーボを用いたロボットの制御が正常に実行されている否かをより判定しやすくなる。
【００１０】
上述の開示において、解析部は、時間軸上の時刻ごとに、第１波形と第２波形との特徴量の差異を示すパラメータ値を算出し、パラメータ値およびパラメータ値の時間変化を示す第３波形の少なくとも一方を画面上に表示させる。この開示によれば、作業者は、パラメータ値または第３波形を確認することにより、ロボットの制御中のいずれの時間帯で第１波形と第２波形との偏差が大きくなっているかを容易に把握することができる。
【００１１】
上述の開示において、解析部は、時間軸上の時刻ごとに、第１波形と第２波形との特徴量の差異を示すパラメータ値を算出する。解析部は、算出したパラメータ値に基づいて、パラメータ値が最大となる時刻、または、パラメータ値が閾値を超える時刻を指定時刻として選択する。解析部は、指定時刻に対応する実画像と、基準動画における指定時刻のフレームとを画面上に同時に表示させる。
【００１２】
この開示によれば、作業者は、第１波形と第２波形との特徴量の差異が大きいときの画像を確認することができ、ロボットの異常の原因を把握しやすくなる。
【００１３】
上述の開示において、解析部は、時間軸上の指定時刻を受け付け、指定時刻に対応する実画像と、基準動画における指定時刻のフレームとを画面上に同時に表示させる。この開示によれば、作業者は、第１波形と第２波形との特徴量の差異が大きいときの時刻を指定時刻として指定することにより、第１波形と第２波形との特徴量の差異が大きいときの画像を確認することができ、ロボットの異常の原因を把握しやすくなる。
【００１４】
上述の開示において、解析部は、時系列に並べられた実画像からなる実動画および基準動画の両方における、指定時刻を含む一部の期間の映像を画面上で同時に再生させる。
【００１５】
この開示によれば、作業者は、視覚サーボを用いたロボットの制御の異常の原因をさらに把握しやすくなる。
【００１６】
上述の開示において、解析部は、実画像を撮像したときの、ロボットの基準位置からの移動量の時間変化を示す第４波形と、基準動画通りに対象物の状態が変化するときの移動量の時間変化を示す第５波形との両方を前記画面上に表示させる。
【００１７】
この開示によれば、作業者は、第４波形と第５波形との偏差を確認することにより、ロボットの異常の有無を判定できる。その結果、作業者は、第１波形と第２波形との偏差が大きい原因を把握しやすくなる。
【００１８】
上述の開示において、ロボットは、複数の自由度で対象物の状態を変化させる。解析部は、複数の自由度のうちの１つの自由度の選択指示を受け付ける。移動量は、１つの自由度の方向に沿ってロボットが基準位置から移動した量である。
【００１９】
この開示によれば、作業者は、ロボットが有する複数の自由度のうちのいずれに異常があるかを把握しやすくなる。
【００２０】
本開示の一例によれば、上記の制御システムに用いられる解析装置は、解析部を備える。
【００２１】
本開示の一例によれば、制御方法は、対象物を撮像するための撮像装置を用いて、対象物の状態を変化させるロボットを制御する。制御方法は、第１のステップと、第２のステップとを備える。第１のステップは、撮像装置によって撮像される実画像上の対象物の状態の変化が、予め作成された基準動画上の対象物の状態の変化に近づくように、ロボットを制御するステップである。第２のステップは、実画像のフレームから抽出される特徴量の時間変化を示す第１波形と、基準動画のフレームから抽出される特徴量の時間変化を示す第２波形との両方を表示装置の画面上に表示させるステップである。
【００２２】
これらの開示によっても、作業者は、視覚サーボを用いたロボットの制御が正常に実行されている否かを判定しやすい。
【発明の効果】
【００２３】
本発明によれば、作業者は、視覚サーボを用いたロボットの制御が正常に実行されている否かを判定しやすい。
【図面の簡単な説明】
【００２４】
【図１】実施の形態に係る制御システムの概要を示す模式図である。
【図２】実施の形態における解析画面の概要を示す図である。
【図３】実施の形態に係る制御システムを構成する制御装置のハードウェア構成を示す模式図である。
【図４】実施の形態に係る制御装置の機能構成を示すブロック図である。
【図５】基準動画（第１基準動画または第２基準動画）の一例を示す図である。
【図６】実施の形態に係る基準動画記憶部が記憶する第１テーブルの一例を示す図である。
【図７】実施の形態に係る実動画記憶部が記憶する第３テーブルの一例を示す図である。
【図８】第１テンプレートの作成方法の一例を示す図である。
【図９】第１〜第４制御部の機能構成を示すブロック図である。
【図１０】第１変化情報セットの生成方法を説明する図である。
【図１１】算出部による制御量の算出方法を説明する図である。
【図１２】実施の形態における解析画面の具体例を示す図である。
【図１３】時間軸を合わせる前の実波形および基準波形と、時間軸を合わせた後の実波形および基準波形とを示す図である。
【図１４】特徴量の一例を示す図である。
【図１５】特徴量の別の例を示す図である。
【図１６】変化情報生成部による変化情報の生成処理の流れの一例を示すフローチャートである。
【図１７】図１６に示すステップＳ２のサブルーチンの処理の流れを示すフローチャートである。
【図１８】視覚サーボを用いた半田付け制御の処理の流れの一例を示すフローチャートである。
【図１９】図１８に示すステップＳ４４のサブルーチンの処理の流れを示すフローチャートである。
【図２０】最近接フレームと目標フレームとの関係を示す図である。
【図２１】図１８に示すステップＳ４６のサブルーチンの処理の流れを示すフローチャートである。
【図２２】解析部の処理の流れを示すフローチャートである。
【図２３】変形例１における解析画面の一例を示す図である。
【図２４】変形例１に係る基準動画記憶部が記憶する第５テーブルの一例を示す図である。
【図２５】変形例１に係る実動画記憶部が記憶する第６テーブルの一例を示す図である。
【図２６】変形例２に係る解析画面の一例を示す図である。
【図２７】変形例３に係る解析画面の一例を示す図である。
【図２８】変形例３に係る実動画記憶部が記憶する第７テーブルの一例を示す図である。
【図２９】変形例４に係る制御システムの対象物を示す模式図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照しつつ、本発明に従う実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２６】
＜Ａ．適用例＞
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、実施の形態に係る制御システムの概要を示す模式図である。
【００２７】
本実施の形態に係る制御システム１は、たとえば、工業製品の生産ラインなどにおいて、半田ごて２ａおよび半田フィーダ２ｂを用いて、基板３のパッド２ｄに電線２ｃを半田付けするための制御（以下、「半田付け制御」という）を行なう。制御システム１は、新たな基板３が搬送されてくるたびに半田付け制御を行ない、当該基板３のパッド２ｄに電線２ｃを半田付けする。
【００２８】
図１に示すように、制御システム１は、撮像装置２１，２２と、ロボット３０ａ〜３０ｄと、ロボットコントローラ４０ａ〜４０ｄと、制御装置５０と、表示装置６０とを備える。
【００２９】
撮像装置２１，２２は、撮像視野に存在する被写体を撮像して画像データ（以下、「実画像」という）を生成する。撮像装置２１，２２は、ロボット３０ａ〜３０ｄと異なる定位置に設定される。撮像装置２１，２２は、互いに異なる場所に設置され、互いに異なる方向から、被写体としての半田ごて２ａ、半田フィーダ２ｂ、電線２ｃおよびパッド２ｄを撮像する。撮像装置２１，２２は、予め定められた撮像周期に従って撮像し、撮像によって得られた実画像を制御装置５０に出力する。
【００３０】
ロボット３０ａは、半田ごて２ａの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ａは、先端に半田ごて２ａを支持（ここでは把持）するためのハンド３１ａを有し、ハンド３１ａに把持された半田ごて２ａの位置および姿勢を６自由度で変化させる。６自由度は、Ｘ方向、Ｙ方向およびＺ方向の並進自由度と、ピッチ方向、ヨー方向およびロール方向の回転自由度とを含む。
【００３１】
ロボット３０ｂは、半田フィーダ２ｂの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｂは、先端に半田フィーダ２ｂを支持（ここでは把持）するためのハンド３１ｂを有し、ハンド３１ｂに把持された半田フィーダ２ｂの位置および姿勢を６自由度で変化させる。
【００３２】
ロボット３０ｃは、電線２ｃの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえば垂直多関節ロボットである。ロボット３０ｃは、先端に電線２ｃを支持（ここでは把持）するためのハンド３１ｃを有し、ハンド３１ｃに把持された電線２ｃの位置および姿勢を６自由度で変化させる。
【００３３】
ロボット３０ｄは、基板３のパッド２ｄの状態（ここでは位置および姿勢）を変化させるための機構であり、たとえばＸＹθステージである。ロボット３０ｄは、基板３を支持する（ここでは載せる）ためのステージ３１ｄを有し、ステージ３１ｄに載置された基板３のパッド２ｄの位置および姿勢を３自由度で変化させる。３自由度は、Ｘ方向およびＹ方向の並進自由度と、ＸＹ平面に直交する軸を中心とする方向（θ方向）の回転自由度とを含む。
【００３４】
ロボット３０ａ〜３０ｄの各々は、複数のサーボモータを有しており、当該サーボモータが駆動されることにより、支持している対象物の状態を変化させる。当該複数のサーボモータの各々に対応してエンコーダが設けられている、エンコーダは、対応するサーボモータの駆動量（回転量）に応じたパルス信号を発生する。エンコーダが発生するパルス信号は、対応するロボットコントローラに出力されるとともに、制御装置５０にも出力される。
【００３５】
ロボットコントローラ４０ａ〜４０ｄは、ロボット３０ａ〜３０ｄにそれぞれ対応して設けられる。ロボットコントローラ４０ａ〜４０ｄは、制御装置５０から受けた制御指令に従って、ロボット３０ａ〜３０ｄの動作制御をそれぞれ行なう。
【００３６】
ロボットコントローラ４０ａ〜４０ｃの各々は、Ｘ方向、Ｙ方向およびＺ方向の並進自由度ならびにピッチ方向、ヨー方向およびロール方向の回転自由度の各々の制御指令を制御装置５０から受ける。これらＸ方向、Ｙ方向、Ｚ方向、ピッチ方向、ヨー方向およびロール方向は、対応するロボットの座標系で示される。
【００３７】
ロボットコントローラ４０ａ〜４０ｃの各々は、対応するハンドのＸ方向、Ｙ方向およびＺ方向の並進移動量がＸ方向、Ｙ方向およびＺ方向の並進自由度の制御指令にそれぞれ近づくように、対応するロボットに対してフィードバック制御を行なう。対応するハンドのＸ方向、Ｙ方向およびＺ方向の並進移動量は、対応するロボットに設けられるエンコーダからのパルス信号に含まれるパルス数をカウントすることにより求められる。
【００３８】
ロボットコントローラ４０ａ〜４０ｃの各々は、対応するハンドのピッチ方向、ヨー方向およびロール方向の回転移動量がピッチ方向、ヨー方向およびロール方向の回転自由度の制御指令にそれぞれ近づくように、対応するロボットに対してフィードバック制御を行なう。対応するハンドのピッチ方向、ヨー方向およびロール方向の回転移動量は、対応するロボットに設けられるエンコーダからのパルス信号に含まれるパルス数をカウントすることにより求められる。
【００３９】
ロボットコントローラ４０ｄは、Ｘ方向およびＹ方向の並進自由度ならびに回転自由度の各々の制御指令を制御装置５０から受ける。これらＸ方向、Ｙ方向および回転方向は、ロボット３０ｄの座標系で示される。
【００４０】
ロボットコントローラ４０ｄは、ステージ３１ｄのＸ方向およびＹ方向の並進移動量がＸ方向およびＹ方向の並進自由度の制御指令にそれぞれ近づくように、ロボット３０ｄに対してフィードバック制御を行なう。ステージ３１ｄのＸ方向およびＹ方向の並進移動量は、ロボット３０ｄに設けられるエンコーダからのパルス信号に含まれるパルス数をカウントすることにより求められる。
【００４１】
ロボットコントローラ４０ｄは、ステージ３１ｄの回転移動量が回転自由度の制御指令に近づくように、ロボット３０ｄに対してフィードバック制御を行なう。ステージ３１ｄの回転移動量は、ロボット３０ｄに設けられるエンコーダからのパルス信号に含まれるパルス数をカウントすることにより求められる。
【００４２】
制御装置５０は、ロボットコントローラ４０ａ〜４０ｄを介して、ロボット３０ａ〜３０ｄをそれぞれ制御する。
【００４３】
制御装置５０は、半田ごて２ａ、半田フィーダ２ｂ、電線２ｃおよびパッド２ｄの見本を示す、第１基準動画および第２基準動画を記憶している。第１基準動画は、撮像装置２１の位置から見たときの動画である。第２基準動画は、撮像装置２２の位置から見たときの動画である。
【００４４】
制御装置５０は、半田付け制御として、視覚サーボを用いたロボット３０ａ〜３０ｄの制御を行なう。制御装置５０は、撮像装置２１，２２によって撮像される実画像上の半田ごて２ａの状態の変化が、第１，第２基準動画上の半田ごて２ａの状態の変化にそれぞれ近づくように、ロボット３０ａを制御する。同様に、制御装置５０は、撮像装置２１，２２によって撮像される実画像上の半田フィーダ２ｂの状態の変化が、第１，第２基準動画上の半田フィーダ２ｂの状態の変化にそれぞれ近づくように、ロボット３０ｂを制御する。制御装置５０は、撮像装置２１，２２によって撮像される実画像上の電線２ｃの状態の変化が、第１，第２基準動画上の電線２ｃの状態の変化にそれぞれ近づくように、ロボット３０ｃを制御する。制御装置５０は、撮像装置２１，２２によって撮像される実画像上のパッド２ｄの状態の変化が、第１，第２基準動画上のパッド２ｄの状態の変化にそれぞれ近づくように、ロボット３０ｄを制御する。これにより、半田ごて２ａ、半田フィーダ２ｂ、電線２ｃおよびパッド２ｄの状態は、第１基準動画および第２基準動画に従って連係して変化する。
【００４５】
さらに、制御装置５０は、半田付け制御の終了後に、視覚サーボを用いたロボット３０ａ〜３０ｄの制御が正常に行なわれた否かを判定するための解析画面を表示装置６０に表示する解析装置としても動作する。
【００４６】
図２は、実施の形態における解析画面の概要を示す図である。制御装置５０は、撮像装置２１によって撮像された実画像から抽出される特徴量の時間変化を示す実波形６２１と、第１基準動画のフレームから抽出される特徴量の時間変化を示す基準波形６２２との両方を解析画面６１上に表示させる。もしくは、制御装置５０は、撮像装置２２によって撮像された実画像から抽出される特徴量の時間変化を示す実波形６２１と、第２基準動画のフレームから抽出される特徴量の時間変化を示す基準波形６２２との両方を解析画面６１上に表示させる。実波形６２１および基準波形６２２は、解析画面６１の領域６０１，６０２にそれぞれ表示される。
【００４７】
特徴量は、たとえば、対象物（半田ごて２ａ、半田フィーダ２ｂ、電線２ｃまたはパッド２ｄ）の画像上の座標（画素座標）である。
【００４８】
視覚サーボを用いたロボット３０ａ〜３０ｄの制御が正常に実行されている場合、撮像装置２１，２２によって撮像される実画像上の対象物の状態の変化は、第１，第２基準動画上の対象物の状態の変化にそれぞれ追従する。そのため、実波形６２１は、基準波形６２２に近似する。したがって、作業者は、解析画面６１に表示される実波形６２１と基準波形６２２とを確認することにより、視覚サーボを用いたロボット３０ａ〜３０ｄの制御が正常に実行されている否かを判定しやすくなる。たとえば、作業者は、実波形６２１と基準波形６２２との偏差が大きい場合に、視覚サーボを用いたロボット３０ａ〜３０ｄの制御に何等かの異常が生じていると判定できる。
【００４９】
＜Ｂ．具体例＞
次に、実施の形態に係る制御システムの具体例について説明する。
【００５０】
＜Ｂ−１．制御装置のハードウェア構成＞
図３は、実施の形態に係る制御システムを構成する制御装置のハードウェア構成を示す模式図である。図３に示されるように、制御装置５０は、コンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の処理を実現する。
【００５１】
より具体的には、制御装置５０は、ＣＰＵ（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 Graphics）によって作成されてもよい。
【０２６８】
上記の説明では、制御装置５０がロボット制御部５８および解析部５９を備えるものとした。すなわち、制御装置５０は、ロボット制御装置として動作するとともに、解析装置としても動作する。しかしながら、解析部５９は、制御装置５０と通信可能に接続された解析装置に備えられていてもよい。
【０２６９】
≪付記≫
以上のように、実施の形態１〜３および変形例は以下のような開示を含む。
【０２７０】
（構成１）
対象物（２ａ〜２ｄ，７ａ，７ｂ）の状態を変化させるためのロボット（３０ａ〜３０ｄ）と、
前記対象物を撮像するための撮像装置（２１，２２）と、
前記撮像装置（２１，２２）によって撮像される実画像上の前記対象物の状態の変化が、予め作成された基準動画上の前記対象物の状態の変化に近づくように、前記ロボット（３０ａ〜３０ｄ）を制御するための制御部（５８）と、
前記実画像から抽出される特徴量の時間変化を示す第１波形と、前記基準動画のフレームから抽出される前記特徴量の時間変化を示す第２波形との両方を表示装置（６０）の画面上に表示させるための解析部（５９）とを備える、制御システム（１）。
【０２７１】
（構成２）
前記解析部（５９）は、前記第１波形と前記第２波形との時間軸を合わせる、構成１に記載の制御システム（１）。
【０２７２】
（構成３）
前記解析部（５９）は、前記時間軸上の時刻ごとに、前記第１波形と前記第２波形との前記特徴量の差異を示すパラメータ値を算出し、前記パラメータ値および前記パラメータ値の時間変化を示す第３波形の少なくとも一方を前記画面上に表示させる、構成２に記載の制御システム（１）。
【０２７３】
（構成４）
前記解析部（５９）は、
前記時間軸上の時刻ごとに、前記第１波形と前記第２波形との前記特徴量の差異を示すパラメータ値を算出し、
算出したパラメータ値に基づいて、前記パラメータ値が最大となる時刻、または、前記パラメータ値が閾値を超える時刻を指定時刻として選択し、
前記指定時刻に対応する前記実画像と、前記基準動画における前記指定時刻のフレームとを前記画面上に同時に表示させる、構成２に記載の制御システム（１）。
【０２７４】
（構成５）
前記解析部（５９）は、
前記時間軸上の指定時刻を受け付け、
前記指定時刻に対応する前記実画像と、前記基準動画における前記指定時刻のフレームとを前記画面上に同時に表示させる、構成２に記載の制御システム（１）。
【０２７５】
（構成６）
前記解析部（５９）は、時系列に並べられた前記実画像からなる実動画および前記基準動画の両方における、前記指定時刻を含む一部の期間の映像を前記画面上で同時に再生させる、構成４または５に記載の制御システム（１）。
【０２７６】
（構成７）
前記解析部（５９）は、前記実画像を撮像したときの、前記ロボットの基準位置からの移動量の時間変化を示す第４波形と、前記基準動画通りに前記対象物の状態が変化するときの前記移動量の時間変化を示す第５波形との両方を前記画面上に表示させる、構成１から６のいずれかに記載の制御システム（１）。
【０２７７】
（構成８）
前記ロボット（３０ａ〜３０ｄ）は、複数の自由度で前記対象物の状態を変化させ、
前記解析部（５９）は、前記複数の自由度のうちの１つの自由度の選択指示を受け付け、
前記移動量は、前記１つの自由度の方向に沿って前記ロボット（３０ａ〜３０ｄ）が前記基準位置から移動した量である、構成７に記載の制御システム（１）。
【０２７８】
（構成９）
構成１から８のいずれか１項に記載の制御システム（１）に用いられる解析装置であって、
前記解析部（５９）を備える、解析装置（５０）。
【０２７９】
（構成１０）
対象物（２ａ〜２ｄ，７ａ，７ｂ）を撮像するための撮像装置（２１，２２）を用いて、前記対象物の状態を変化させるロボット（３０ａ〜３０ｄ）を制御する制御方法であって、
前記撮像装置（２１，２２）によって撮像される実画像上の前記対象物の状態の変化が、予め作成された基準動画上の前記対象物の状態の変化に近づくように、前記ロボット（３０ａ〜３０ｄ）を制御するステップと、
前記実画像のフレームから抽出される特徴量の時間変化を示す第１波形と、前記基準動画のフレームから抽出される前記特徴量の時間変化を示す第２波形との両方を表示装置（６０）の画面上に表示させるステップとを備える、制御方法。
【０２８０】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２８１】
１  制御システム、２ａ  半田ごて、２ｂ  半田フィーダ、２ｃ  電線、２ｄ  パッド、２ｅ  溶融半田、３  基板、７ａ  オスコネクタ、７ｂ  メスコネクタ、２１，２２  撮像装置、３０ａ〜３０ｄ  ロボット、３１ａ〜３１ｃ  ハンド、３１ｄ  ステージ、４０ａ〜４０ｄ  ロボットコントローラ、５０  制御装置、５１  基準動画記憶部、５２  教示範囲選択部、５３  画像処理部、５４  目標フレーム選択部、５５ａ  第１制御部、５５ｂ  第２制御部、５５ｃ  第３制御部、５５ｄ  第４制御部、５６  実画像取得部、５７  実動画記憶部、５８  ロボット制御部、５９  解析部、６０  表示装置、５１０  プロセッサ、５１２  ＲＡＭ、５１４  表示コントローラ、５１６  システムコントローラ、５１８  Ｉ／Ｏコントローラ、５２０  ハードディスク、５２２  カメラインターフェイス、５２２ａ，５２２ｂ  画像バッファ、５２４  入力インターフェイス、５２６  ロボットコントローラインターフェイス、５２８  通信インターフェイス、５３０  メモリカードインターフェイス、５３４  入力装置、５３６  メモリカード、５５０  制御プログラム、５５１  変化情報生成部、５５２  変化情報記憶部、５５３  算出部、５５４  指令部、５５５  終了判定部、５５２１  第１変化情報セット、５５２２  第２変化情報セット、６０１〜６０６，６２５，６２６，６３１，６３２  領域、６０７〜６１５  ボタン、６２１  実波形、６２２  基準波形、６２３，６２４  マーク、６２７，６２８  サムネイル、６２９，６３０，６３３  波形。
【図１】
2020023024.tif 000003
【図２】
2020023024.tif 000004
【図３】
2020023024.tif 000005
【図４】
2020023024.tif 000006
【図５】
2020023024.tif 000007
【図６】
2020023024.tif 000008
【図７】
2020023024.tif 000009
【図８】
2020023024.tif 000010
【図９】
2020023024.tif 000011
【図１０】
2020023024.tif 000012
【図１１】
2020023024.tif 000013
【図１２】
2020023024.tif 000014
【図１３】
2020023024.tif 000015
【図１４】
2020023024.tif 000016
【図１５】
2020023024.tif 000017
【図１６】
2020023024.tif 000018
【図１７】
2020023024.tif 000019
【図１８】
2020023024.tif 000020
【図１９】
2020023024.tif 000021
【図２０】
2020023024.tif 000022
【図２１】
2020023024.tif 000023
【図２２】
2020023024.tif 000024
【図２３】
2020023024.tif 000025
【図２４】
2020023024.tif 000026
【図２５】
2020023024.tif 000027
【図２６】
2020023024.tif 000028
【図２７】
2020023024.tif 000029
【図２８】
2020023024.tif 000030
【図２９】
2020023024.tif 000031