(57)【要約】【課題】ツールの姿勢のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる制御装置、ロボットおよびロボットシステムを提供すること。【解決手段】ロボットの駆動を制御可能な制御装置であって、前記ロボットに設けられたツールの姿勢のオフセットを求めるための情報の入力を案内する姿勢設定用ガイド画面を、表示部に表示させる表示制御部と、前記ツールの姿勢のオフセットに基づいて、前記ロボットの駆動を制御する制御部と、を備えることを特徴とする制御装置。また、前記情報は、前記ツールの形状を含む。また、前記形状は、棒状および平面状の少なくとも一方を含む。【選択図】図１
2018176404.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの駆動を制御可能な制御装置であって、
前記ロボットに設けられたツールの姿勢のオフセットを求めるための情報の入力を案内する姿勢設定用ガイド画面を、表示部に表示させる表示制御部と、
前記ツールの姿勢のオフセットに基づいて、前記ロボットの駆動を制御する制御部と、を備えることを特徴とする制御装置。
【請求項２】
前記情報は、前記ツールの形状を含む請求項１に記載の制御装置。
【請求項３】
前記形状は、棒状および平面状の少なくとも一方を含む請求項２に記載の制御装置。
【請求項４】
前記姿勢設定用ガイド画面は、特定点に対し、前記ツールを接触させる箇所を順次案内する請求項１ないし３のいずれか１項に記載の制御装置。
【請求項５】
前記表示制御部は、前記姿勢設定用ガイド画面の中に、前記ツールの位置のオフセットを求めるための情報の入力を案内する位置設定用ガイド画面を呼び出す呼出部を表示させる請求項１ないし４のいずれか１項に記載の制御装置。
【請求項６】
ツールが設けられ、請求項１ないし５のいずれか１項に記載の制御装置によって制御されることを特徴とするロボット。
【請求項７】
請求項１ないし５のいずれか１項に記載の制御装置と、
ツールが設けられ、前記制御装置によって制御されるロボットと、を備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボットおよびロボットシステムに関するものである。
【背景技術】
【０００２】
従来、ロボットアームに装着されるツールを用いてワークを処理する前に、ロボットアームに対するツールのオフセットを設定する処理が行われている。特許文献１には、ロボットアームに装着されたツールを実空間の基準点に位置合わせする操作を、ロボットアームの姿勢を変えて複数回実行し、その結果に基づいて、ロボットアームに対するツールのオフセットを導出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−８５０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ツールによってワークを処理する際には、適切な姿勢でツールをワークに接触または接近させなければならない。しかし、特許文献１に記載された方法では、ツールの１点と基準点とを位置合わせしてオフセットを導出するため、ロボットアームに対するツールの位置のオフセットを設定することはできても、ロボットアームに対するツールの姿勢のオフセットを設定することはできない。ロボットアームに対するツールの姿勢のオフセットが設定されなければ、ワークに対するツールの姿勢を適切に制御することができず、希望する姿勢にすることが困難である。
【課題を解決するための手段】
【０００５】
本発明は、上述した課題の少なくとも一部を解決するためになされたものであり、以下により実現することが可能である。
【０００６】
本発明の制御装置は、ロボットの駆動を制御可能な制御装置であって、
前記ロボットに設けられたツールの姿勢のオフセットを求めるための情報の入力を案内する姿勢設定用ガイド画面を、表示部に表示させる表示制御部と、
前記ツールの姿勢のオフセットに基づいて、前記ロボットの駆動を制御する制御部と、を備えることを特徴とする。
【０００７】
このような本発明の制御装置によれば、ツールの姿勢のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる。
【０００８】
また、ツールの姿勢のオフセットが求まることにより、ロボットが有するロボットアームに対するツールの姿勢に応じて、容易かつ適確に、ツールを希望する姿勢にすることができる。
【０００９】
本発明の制御装置では、前記情報は、前記ツールの形状を含むことが好ましい。
これにより、ツールの姿勢のオフセットを適確に求めることができる。
【００１０】
本発明の制御装置では、前記形状は、棒状および平面状の少なくとも一方を含むことが好ましい。
【００１１】
これにより、棒状および平面状の少なくとも一方の形状のツールにおいて、姿勢のオフセットを適確に求めることができる。
【００１２】
本発明の制御装置では、前記姿勢設定用ガイド画面は、特定点に対し、前記ツールを接触させる箇所を順次案内することが好ましい。
【００１３】
これにより、ツールの姿勢のオフセットを求めるための操作を容易かつ適確に行うことができる。
【００１４】
本発明の制御装置では、前記表示制御部は、前記姿勢設定用ガイド画面の中に、前記ツールの位置のオフセットを求めるための情報の入力を案内する位置設定用ガイド画面を呼び出す呼出部を表示させることが好ましい。
【００１５】
これにより、ユーザーは、呼出部を介して位置設定用ガイド画面を呼び出すことができるため、位置のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる。
【００１６】
本発明のロボットは、ツールが設けられ、本発明の制御装置によって制御されることを特徴とする。
【００１７】
このような本発明のロボットによれば、制御装置の制御の下、ロボットが有するロボットアームに対するツールの姿勢に応じて、容易かつ適確に、ツールを希望する姿勢にすることができる。
【００１８】
本発明のロボットシステムは、本発明の制御装置と、
ツールが設けられ、前記制御装置によって制御されるロボットと、を備えることを特徴とする。
【００１９】
このような本発明のロボットシステムによれば、ツールの姿勢のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる。
【００２０】
また、ツールの姿勢のオフセットが求まることにより、ロボットが有するロボットアームに対するツールの姿勢に応じて、容易かつ適確に、ツールを希望する姿勢にすることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１実施形態に係るロボットビジョンシステムのネットワーク図である。
【図２】図１に示すロボットビジョンシステムが有するロボットの一例を示す斜視図である。
【図３】図１に示すロボットビジョンシステムが有するロボットの一例を示す斜視図である。
【図４】図２または図３に示すロボットのシステム構成図である。
【図５】図１に示すロボットシステムが有するコンピューターのシステム構成図である。
【図６】図１に示すロボットシステムが有するロボット制御装置のシステム構成図である。
【図７】図１に示すロボットシステムが有する画像処理装置のシステム構成図である。
【図８】図１に示す制御システムによる作業プログラムの作成の流れを示すフロー図である。
【図９】図１に示す制御システムによる作業プログラムの作成の流れを示すフロー図である。
【図１０】図８のステップＳ１１１を説明するための図である。
【図１１】図８のステップＳ１１３を説明するための図である。
【図１２】図８のステップＳ１１６を説明するための図である。
【図１３】図８のステップＳ１１８を説明するための図である。
【図１４】図９のステップＳ１２６を説明するための図である。
【図１５】図９のステップＳ１２８およびステップＳ１２９を説明するための図である。
【図１６】図８および図９に示すフロー図に基づいて作成した作業プログラムの実行の流れを示すフロー図である。
【図１７】図１に示す表示装置に表示させるメインウィンドウおよびロボット操作用のサブウィンドウを示す図である。
【図１８】図１に示す表示装置に表示させるメインウィンドウおよび画像処理用のサブウィンドウを示す図である。
【図１９】図８に示すローカル座標系の設定の流れを示すフロー図である。
【図２０】図１に示す表示装置に表示されるローカル設定画面である。
【図２１】図１に示す表示装置に表示されるローカル設定画面である。
【図２２】図１に示す表示装置に表示されるティーチング用の画面である。
【図２３】図１に示す表示装置に表示されるローカル設定画面である。
【図２４】図８に示すツール設定の流れを示すフロー図である。
【図２５】図１に示す表示装置に表示されるツール設定画面である。
【図２６】図１に示す表示装置に表示されるツール設定画面である。
【図２７】図１に示す表示装置に表示されるツール設定画面である。
【図２８】図９に示すキャリブレーションの流れを示すフロー図である。
【図２９】図９に示すキャリブレーションの流れを示すフロー図である。
【図３０】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３１】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３２】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３３】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３４】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３５】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３６】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３７】図１に示す表示装置に表示されるキャリブレーション作成画面である。
【図３８】図１に示す表示装置に表示されるティーチング用の画面である。
【図３９】図１８に示すサブウィンドウにプロパティー設定ウィンドウが表示された状態を示す図である。
【図４０】図１８に示すサブウィンドウにティーチングのフローが表示された状態を示す図である。
【図４１】図１８に示すサブウィンドウにティーチングのフローが表示された状態を示す図である。
【図４２】図１８に示すサブウィンドウにおいてキャリブレーション実行ボタンが表示された状態を示す図である。
【図４３】図２９に示すステップＳ５４５において表示装置に表示される画面である。
【図４４】図８に示す画像処理シーケンスの作成における表示処理の流れを示すフロー図である。
【図４５】図１に示す表示装置に表示されるサブウィンドウを示す図である。
【図４６】図１に示す表示装置に表示されるリストを示す図である。
【図４７】図１に示す表示装置に表示されるリストを示す図である。
【図４８】図１に示す表示装置に表示されるリストを示す図である。
【図４９】図１に示す表示装置に表示されるリストを示す図である。
【図５０】図１に示す表示装置に表示されるリストを示す図である。
【図５１】図１に示す表示装置に表示されるサブウィンドウにおけるガイド画面である。
【図５２】図１に示す表示装置に表示されるサブウィンドウにおけるガイド画面である。
【図５３】図１に示す表示装置に表示されるサブウィンドウにおけるガイド画面である。
【図５４】図１に示す表示装置に表示されるサブウィンドウであって、図４５とは異なる表示を示す図である。
【図５５】図１に示す表示装置に表示されるサブウィンドウであって、図４５とは異なる表示を示す図である。
【図５６】本発明の第２実施形態に係るロボットビジョンシステムが有するロボットの一例、ロボットアームに取り付けられたツールの一例およびティーチング用ツールの一例を示す斜視図である。
【図５７】本発明の第２実施形態に係るロボットビジョンシステムが有するロボットの一例、ロボットアームに取り付けられたツールの一例およびティーチング用ツールの一例を示す斜視図である。
【図５８】本発明の第２実施形態に係るロボットビジョンシステムのツール設定の流れを示すフロー図である。
【図５９】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６０】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６１】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６２】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６３】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６４】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６５】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６６】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６７】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６８】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図６９】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図７０】本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。
【図７１】本発明の第２実施形態に係るロボットビジョンシステムのツール設定を説明するための図である。
【図７２】本発明の第２実施形態に係るロボットビジョンシステムのツール設定を説明するための図である。
【図７３】本発明の第２実施形態に係るロボットビジョンシステムのツール設定を説明するための図である。
【図７４】本発明の第２実施形態に係るロボットビジョンシステムのツール設定を説明するための図である。
【図７５】本発明の第２実施形態に係るロボットビジョンシステムのツール設定を説明するための図である。
【図７６】本発明の第２実施形態に係るロボットビジョンシステムのツール設定を説明するための図である。
【発明を実施するための形態】
【００２２】
以下、本発明の制御装置、ロボットおよびロボットシステムを添付図面に示す好適な実施形態に基づいて詳細に説明する。
【００２３】
＜第１実施形態＞
＜ロボットビジョンシステム（ロボットシステム）の構成＞
図１は、本発明の第１実施形態に係るロボットビジョンシステムのネットワーク図である。図２は、図１に示すロボットビジョンシステムが有するロボットの一例を示す斜視図である。図３は、図１に示すロボットビジョンシステムが有するロボットの一例を示す斜視図である。図４は、図２または図３に示すロボットのシステム構成図である。図５は、図１に示すロボットシステムが有するコンピューターのシステム構成図である。図６は、図１に示すロボットシステムが有するロボット制御装置のシステム構成図である。図７は、図１に示すロボットシステムが有する画像処理装置のシステム構成図である。
【００２４】
なお、以下では、説明の便宜上、図２および図３中の上側を「上」、下側を「下」と言う。また、図２および図３中の基台２１０側を「基端」、その反対側（エンドエフェクターとしてのハンド２７０側）を「先端」と言う。また、図２または図３中の上下方向を「鉛直方向」とし、左右方向を「水平方向」とする。本明細書において、「水平」とは、完全に水平な場合のみならず、水平に対して±５°以内で傾斜している場合も含む。同様に、本明細書において、「鉛直」とは、完全に鉛直な場合のみならず、鉛直に対して±５°以内で傾斜している場合も含む。また、本明細書において、「平行」とは、２つの線（軸を含む）または面が、互いに完全な平行である場合のみならず、±５°以内で傾斜している場合も含む。また、本明細書において、「直交」とは、２つの線（軸を含む）または面が、互いに完全な直交である場合のみならず、±５°以内で傾斜している場合も含む。
【００２５】
図１に示すロボットビジョンシステム１００（ロボットシステム）は、例えば、電子部品および電子機器等のワークの保持、搬送、組立ておよび検査等の作業で用いられる装置である。ロボットビジョンシステム１００は、制御システム１０（制御装置）と、少なくとも１つのロボット２と、撮像機能を有する複数の撮像部３と、表示装置４１（表示部）と、入力装置４２（入力部）と、を有する。制御システム１０は、コンピューター１１（メイン制御装置、第１制御装置）と、ロボット制御装置１２（第２制御装置）と、画像処理装置１３（第３制御装置）とを有する。ロボットビジョンシステム１００が複数のロボット２を有する場合、同型（同種）のロボット２（例えば、ロボット２ａまたはロボット２ｂのいずれか）を複数有してもよく、また、異なる型（異種）のロボット２（例えば、ロボット２ａとロボット２ｂ）を複数有してもよい。
【００２６】
コンピューター１１とロボット制御装置１２と画像処理装置１３とは、互いに、有線または無線通信で接続（以下、単に「接続」ともいう）されている。また、コンピューター１１には、表示装置４１および入力装置４２のそれぞれが有線または無線通信で接続されている。また、ロボット制御装置１２には、ロボット２が有線または無線通信で接続されている。また、画像処理装置１３には、複数の撮像部３のそれぞれが有線または無線通信で接続されている。なお、撮像部３、表示装置４１および入力装置４２は、それぞれ、画像処理装置１３に接続されていてもよい。
【００２７】
このロボットビジョンシステム１００は、例えば、制御システム１０の制御の下、撮像部３がワーク等を撮像し、ロボット２が撮像部３で撮像した撮像画像（画像データ）を基にしてワーク等に対して作業を行う。また、ロボットビジョンシステム１００は、ロボット２が適切な作業を行うことができるよう、制御システム１０の制御の下、例えば撮像部３でワークを認識するために画像処理シーケンスの作成等を行ったり、撮像座標系とロボット座標系（先端座標系またはベース座標系）とを対応付けるキャリブレーションを行う。
【００２８】
以下、ロボットビジョンシステム１００を構成する各部について説明する。
〈ロボット〉
図１に示すように、ロボット２は、ロボット制御装置１２に接続されている。ロボット制御装置１２に接続可能なロボット２の種類は、特に限定されない。例えば、図２に示すような垂直多関節ロボットとしてのロボット２ａ（ロボット２）や、図３に示すような水平多関節ロボットとしてのロボット２ｂ（ロボット２）であってもよい。ここで、「水平多関節ロボット」とは、水平方向にアーム（スプラインシャフト２０３を除く）が動作するロボットのことをいう。また、「垂直多関節ロボット」とは、軸数（アーム数）が３つ以上であり、かつ、３つの軸のうちの２つの軸が互いに交差（直交）しているロボットのことをいう。
【００２９】
以下、ロボット２ａ、２ｂについて簡単に説明する。
（ロボット２ａ）
図２に示すように、ロボット２ａ（ロボット２）は、例えば作業台９０上に設置されている。ロボット２ａは、いわゆる６軸垂直多関節ロボット（自由度６）である。ロボット２ａは、作業台９０に取り付けられている基台２１０と、基台２１０に接続されたロボットアーム２０と、ロボットアーム２０の先端に取り付けられた力検出部２９０と、力検出部２９０の先端に取り付けられたハンド２７０（エンドエフェクター）と、を有する。
【００３０】
ロボット２ａが有するロボットアーム２０は、第１アーム２１（アーム）と、第２アーム２２（アーム）と、第３アーム２３（アーム）と、第４アーム２４（アーム）と、第５アーム２５（アーム）と、第６アーム２６（アーム）とを有する。これらアーム２１〜２６は、基端側から先端側に向かってこの順に連結されている。また、力検出部２９０は、例えばハンド２７０に加わる力（モーメントを含む）を検出する力覚センサー（例えば、６軸力覚センサー）等で構成されている。また、ハンド２７０は、ワークを把持可能な２つの指を有し、第６アーム２６の回動に伴って回動する。このハンド２７０は、設計上、ハンド２７０の中心軸が第６アーム２６（先端アーム）の回動軸Ｏ６と一致するように取り付けられている。ここで、ハンド２７０の先端中心をツールセンターポイントＰという。本実施形態では、ツールセンターポイントＰは、ハンド２７０が有する２つの指の間の領域の中心である。また、ロボットアーム２０の先端中心を「先端軸座標」とする。
【００３１】
また、図４に示すように、ロボット２ａは、一方のアームを他方のアーム（または基台２１０）に対して回動（駆動）させる駆動部２８０を有する。駆動部２８０は、駆動力を発生させるモーター（図示せず）とモーターの駆動力を減速する減速機（図示せず）とを有する。駆動部２８０が有するモーターとしては、例えば、ＡＣサーボモーター、ＤＣサーボモーター等のサーボモーターを用いることができる。減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等を用いることができる。また、各駆動部２８０には、モーターまたは減速機の回転軸の回転角度を検出する位置センサー２８１（角度センサー）が設けられている。本実施形態では、ロボット２ａは、６つのアーム２１〜２６と同じ数である６つの駆動部２８０および位置センサー２８１を有している。また、各駆動部２８０は、モータードライバー２８３に電気的に接続されており、モータードライバー２８３を介してロボット制御装置１２により制御される。
【００３２】
このような構成のロボット２ａでは、図２に示すように、基台２１０を基準としたベース座標系として、水平方向に対してそれぞれ平行なｘｒ軸とｙｒ軸と、水平方向に対して直交し、かつ、鉛直上向きを正方向とするｚｒ軸とによって定まる３次元の直交座標系を設定している。本実施形態では、ベース座標系は、基台２１０の下端面の中心点を原点としている。ｘｒ軸に対する並進成分を「成分ｘｒ」とし、ｙｒ軸に対する並進成分を「成分ｙｒ」とし、ｚｒ軸に対する並進成分を「成分ｚｒ」とし、ｚｒ軸周りの回転成分を「成分ｕｒ」とし、ｙｒ軸周りの回転成分を「成分ｖｒ」とし、ｘｒ軸周りの回転成分を「成分ｗｒ」とする。成分ｘｒ、成分ｙｒおよび成分ｚｒの長さ（大きさ）の単位は「ｍｍ」であり、成分ｕｒ、成分ｖｒおよび成分ｗｒの角度（大きさ）の単位は「°」である。
【００３３】
また、ロボット２ａでは、ハンド２７０の先端部を基準とした先端座標系が設定されている。先端座標系は、互いに直交するｘａ軸、ｙａ軸およびｚａ軸とによって定まる３次元の直交座標系である。本実施形態では、先端座標系は、ロボット２ａの先端軸座標を原点としている。また、ベース座標系と先端座標系との校正（キャリブレーション）は済んでおり、ベース座標系を基準とした先端座標系の座標を算出することができる状態である。また、ｘａ軸に対する並進成分を「成分ｘａ」とし、ｙａ軸に対する並進成分を「成分ｙａ」とし、ｚａ軸に対する並進成分を「成分ｚａ」とし、ｚａ軸周りの回転成分を「成分ｕａ」とし、ｙａ軸周りの回転成分を「成分ｖａ」とし、ｘａ軸周りの回転成分を「成分ｗａ」とする。成分ｘａ、成分ｙａおよび成分ｚａの長さ（大きさ）の単位は「ｍｍ」であり、成分ｕａ、成分ｖａおよび成分ｗａの角度（大きさ）の単位は「°」である。
【００３４】
ここで、本明細書では、ベース座標系および先端座標系をそれぞれロボット座標系ともいう。すなわち、本明細書では、ロボット２のいずれかの箇所を基準として設定した座標を「ロボットの座標系（ロボット座標系）」という。
【００３５】
（ロボット２ｂ）
図３に示すように、ロボット２ｂ（ロボット２）も、ロボット２ａと同様に、例えば作業台９０上に設置されている。ロボット２ｂも、ロボット２ａと同様に、作業台９０に取り付けられている基台２１０と、基台２１０に接続されたロボットアーム２０と、ロボットアーム２０の先端に取り付けられた力検出部２９０と、力検出部２９０の先端に取り付けられ、ワークを把持可能なハンド２７０（エンドエフェクター）と、を有する。なお、ロボット２ｂについては、ロボット２ａと同様の構成についてはその説明を省略し、ロボット２ａとの相違点を中心に説明する。
【００３６】
ロボット２ｂが有するロボットアーム２０は、第１アーム２０１（アーム）と、アーム２０１の先端部に設けられた第２アーム２０２（アーム）と、第２アーム２０２の先端部に設けられたスプラインシャフト２０３（アーム）とを有する。また、ハンド２７０は、設計上、ハンド２７０の中心軸がスプラインシャフト２０３の軸Ｊ３と一致するように取り付けられている。ハンド２７０は、スプラインシャフト２０３の回動に伴って回動する。
【００３７】
ロボット２ｂも、ロボット２ａと同様に、３つのアームと同じ数である３つの駆動部２８０および位置センサー２８１を有している（図３および図４参照）。なお、スプラインシャフト２０３は、図示はしないが、駆動部２８０の動力を伝達する動力伝達機構としてのスプラインナットおよびボールネジナットに接続されている。そのため、スプラインシャフト２０３は、その軸Ｊ３まわりに回動可能であり、かつ、上下方向に移動（昇降）可能となっている。
【００３８】
また、ロボット２ｂも、ロボット２ａと同様に、ベース座標系（ｘｒ軸、ｙｒ軸およびｚｒ軸とによって定まる３次元の直交座標系）と、先端座標系（ｘａ軸、ｙａ軸およびｚａ軸とによって定まる３次元の直交座標系）とが設定されている。
【００３９】
以上、ロボット２（ロボット２ａ、２ｂ）の構成について簡単に説明した。なお、制御システム１０によって制御されるロボット２としては、図２および図３に示す構成に限定されない。例えば、アームの数は、上述した数に限定されず任意である。また、ワークに対して作業をするエンドエフェクターとしては、ハンド２７０に限定されずいかなる構成であってもよい。
【００４０】
〈撮像部〉
図１に示すように、複数の撮像部３は、それぞれ、画像処理装置１３に接続されている。本実施形態では、図２および図３に示すように、ロボットビジョンシステム１００は、ロボット２の周辺に配置された固定カメラ３２（撮像部３）と、ロボット２が有するロボットアーム２０に固定されたモバイルカメラ３１（撮像部３）とを有している。なお、図２および図３では、モバイルカメラ３１は、ロボットアーム２０の先端部に取り付けられている。具体的には、モバイルカメラ３１は、図２に示すロボット２ａであれば第６アーム２６に取り付けられており、図３に示すロボット２ｂであれば、スプラインシャフト２０３の先端部に取り付けられている。
【００４１】
以下、固定カメラ３２およびモバイルカメラ３１について簡単に説明する。
（固定カメラ３２）
図２および図３に示す固定カメラ３２は、作業台９０に固定されており、ロボット２のハンド２７０の可動範囲内に設けられている。固定カメラ３２は、撮像機能を有し、鉛直方向上方を撮像できるように設置されている。
【００４２】
固定カメラ３２は、図示はしないが、例えば、複数の画素を有するＣＣＤ（Charge Coupled Device）イメージセンサーで構成された撮像素子と、レンズ（光学系）とを有する。この固定カメラ３２は、撮像対象で反射した光をレンズによって撮像素子の受光面（センサー面）で結像させて、光を電気信号に変換し、その電気信号を制御システム１０（本実施形態では画像処理装置１３）に出力する。ここで、受光面とは、撮像素子の表面であって、光が結像する面である。また、固定カメラ３２は、設計上、その光軸Ａ３２（レンズの光軸）が作業台９０の平面（上面）の鉛直方向に沿うように設けられている。
【００４３】
固定カメラ３２では、画像座標系（固定カメラ３２から出力される撮像画像の座標系）として、図示しないが、撮像画像の面内方向に対してそれぞれ平行なｘｃ軸とｙｃ軸とによって定まる２次元の直交座標系が設定されている。また、ｘｃ軸に対する並進成分を「成分ｘｃ」とし、ｙｃ軸に対する並進成分を「成分ｙｃ」とし、ｘｃ−ｙｃ平面の法線周りの回転成分を「成分ｕｃ」とする。成分ｘｃおよび成分ｙｃの長さ（大きさ）の単位は「ピクセル」であり、成分ｕｃの角度（大きさ）の単位は「°」である。なお、固定カメラ３２の画像座標系は、固定カメラ３２のカメラ視野に写る３次元直交座標を、レンズの光学特性（焦点距離、歪みなど）と撮像素子の画素数および大きさとを加味して非線形変換した２次元の直交座標系である。
【００４４】
（モバイルカメラ３１）
図２および図３に示すモバイルカメラ３１は、上述したように、ロボットアーム２０に固定されている。モバイルカメラ３１は、撮像機能を有し、本実施形態ではロボットアーム２０の先端側を撮像できるように設置されている。
【００４５】
モバイルカメラ３１は、図示はしないが、例えば、複数の画素を有するＣＣＤイメージセンサーで構成された撮像素子と、レンズ（光学系）とを有する。このモバイルカメラ３１は、撮像対象で反射した光をレンズによって撮像素子の受光面（センサー面）で結像させて、光を電気信号に変換し、その電気信号を制御システム１０（本実施形態では画像処理装置１３）に出力する。ここで、受光面とは、撮像素子の表面であって、光が結像する面である。また、モバイルカメラ３１は、設計上、その光軸Ａ３１（レンズの光軸）がロボットアーム２０の先端軸（ロボット２ａの場合は、第６アーム２６の回動軸Ｏ６、ロボット２ｂの場合は、スプラインシャフト２０３の軸Ｊ３）と同じ方向に沿うように設けられている。
【００４６】
モバイルカメラ３１では、モバイルカメラ３１の画像座標系（モバイルカメラ３１から出力される撮像画像の座標系）として、図示しないが、撮像画像の面内方向に対してそれぞれ平行なｘｂ軸とｙｂ軸とによって定まる２次元の直交座標系が設定されている。また、ｘｂ軸に対する並進成分を「成分ｘｂ」とし、ｙｂ軸に対する並進成分を「成分ｙｂ」とし、ｘｂ−ｙｂ平面の法線周りの回転成分を「成分ｕｂ」とする。成分ｘｂおよび成分ｙｂの長さ（大きさ）の単位は「ピクセル」であり、成分ｕｂの角度（大きさ）の単位は「°」である。なお、モバイルカメラ３１の画像座標系は、モバイルカメラ３１のカメラ視野に写る３次元直交座標を、レンズの光学特性（焦点距離、歪みなど）と撮像素子の画素数および大きさとを加味して非線形変換した２次元の直交座標系である。
【００４７】
以上、撮像部３の構成について簡単に説明した。なお、制御システム１０によって制御される撮像部３は、図示のものに限定されない。また、制御システム１０によって制御される撮像部３の取付箇所（設置箇所）は、図示の箇所に限定されない。例えば、モバイルカメラ３１の取付箇所は、図２に示すロボット２ａの第５アーム２５や、図３に示すロボット２ｂの第２アーム２０２等であってもよい。また、固定カメラ３２は、図示はしないが、ロボット２の上方に位置する天井等に設置されていてもよく、また、ロボット２と周辺に設置された壁・柱等に横方向に設置されてもよい。また、撮像部３の撮像方向は、上述した方向に限定されず、任意である。また、撮像部３の数は、図２および図３では、それぞれ２つであるが、撮像部３の数は特に限定されず、１つであってもよいし、３つ以上であってもよい。
【００４８】
〈表示装置４１〉
図１に示す表示装置４１（表示部）は、例えば液晶ディスプレイ等で構成されたモニター（図示せず）を備えており、例えば撮像部３で撮像した撮像画像や各種画面（例えば操作ウィンドウや処理結果に関する画面）等を表示する機能を有する。したがって、ユーザーは、撮像画像やロボット２の作業等を把握することができる。
【００４９】
〈入力装置４２〉
入力装置４２（入力部）は、例えばマウスやキーボード等で構成されている。したがって、ユーザーは、入力装置４２を操作することで、制御システム１０に対して各種処理等の指示を行うことができる。
【００５０】
なお、本実施形態では、表示装置４１および入力装置４２の代わりに、表示装置４１および入力装置４２を兼ね備えた表示入力装置（図示せず）を設けてもよい。表示入力装置としては、例えばタッチパネル（静電式タッチパネルや感圧式タッチパネル）等を用いることができる。また、入力装置４２は、音（音声を含む）を認識する構成であってもよい。
【００５１】
〈制御システム（制御装置）〉
上述したように、制御システム１０は、コンピューター１１とロボット制御装置１２と画像処理装置１３とを有する（図１参照）。この制御システム１０は、ロボット２、複数の撮像部３および表示装置４１の駆動を制御する。なお、制御システム１０は、図２および図３には図示しないが、例えば、作業台９０の外部に設置されている。
【００５２】
以下、制御システム１０、コンピューター１１とロボット制御装置１２について順次説明する。
【００５３】
（コンピューター）
コンピューター１１は、例えば、プログラム（ＯＳ：Operating System）がインストールされたコンピューター（例えばＰＣ（Personal Computer）やＰＬＣ（Programmable Logic Controller）等）で構成されている。このコンピューター１１は、例えば、プロセッサーとしてのＣＰＵ（Central Processing Unit）およびＧＰＵ（Graphics Processing Unit）と、ＲＡＭ（Random Access Memory）と、プログラムが記憶されたＲＯＭ（Read Only Memory）とを有する。
【００５４】
以下、コンピューター１１が備える各機能（機能部）について説明する。
図５に示すように、コンピューター１１は、制御部１１１と、メインメモリー１１２と、記憶部１１３と、表示制御部１１４と、入力制御部１１５（受付部）と、通信部１１６とを有し、これらの間で相互にデータのやり取り（通信）ができるよう構成されている。ここで、本明細書において、制御部１１１および表示制御部１１４は、処理部１１０を構成している。
【００５５】
制御部１１１の機能は、例えば、ＣＰＵおよびＧＰＵによりメインメモリー１１２や記憶部１１３に記憶された各種プログラムを実行することにより実現することができる。この制御部１１１は、例えば、制御プログラム編集部１１１１と、制御プログラムビルド部１１１２と、キャリブレーション編集部１１１３と、キャリブレーション実行部１１１４と、画像処理シーケンス編集部１１１５と、を有する。なお、制御部１１１が有する機能部（要素）は、これらに限定されない。これらの機能部のいずれかを省略したり、他の機能部を追加してもよい。
【００５６】
制御プログラム編集部１１１１は、ロボット２を駆動する制御プログラム（ロボット２が各種作業を行う作業プログラムを含む）を作成したり編集したりする。また、例えば、制御プログラム編集部１１１１（コンピューター１１）は、制御プログラムの中に、所定の引数を持つ各種コマンドを指定することができる。制御プログラムビルド１１１２部は、制御プログラムをビルドし、ロボット制御装置１２で解釈可能な言語（データ列）に変換する。
【００５７】
キャリブレーション編集部１１１３は、キャリブレーションに関するキャリブレーションプログラムを作成したり編集したりする。すなわち、キャリブレーション編集部１１１３は、キャリブレーションに関する設定内容を編集する機能を有する。キャリブレーション実行部１１１４は、キャリブレーションプログラムを実行する。詳述すると、キャリブレーション実行部１１１４は、キャリブレーションプログラムに基づく指示をロボット制御装置１２および画像処理装置１３に転送し、ロボット２および撮像部３にキャリブレーションにかかる動作を行わせる。ここで、本明細書において、キャリブレーション編集部１１１３およびキャリブレーション実行部１１１４は、キャリブレーション制御部１１１０を構成している。
【００５８】
画像処理シーケンス編集部１１１５は、撮像部３による画像処理シーケンスに関する画像処理プログラムを作成したり編集したりする。すなわち、画像処理シーケンス編集部１１１５は、画像処理シーケンスに関する設定内容を編集する機能を有する。
【００５９】
その他、制御部１１１は、入力制御部１１５で受けたユーザーの指示に応じて各種演算、判断、コンピューター１１が有する各機能部への指示、ロボット制御装置１２への指示、および、画像処理装置１３への指示等を行う。
【００６０】
メインメモリー１１２は、制御部１１１の作業領域である。メインメモリー１１２の機能は、例えばＲＡＭにより実現することができる。
【００６１】
記憶部１１３は、各種データ（プログラムを含む）を記録する機能を有する。記憶部１１３の機能は、ＲＯＭ等やいわゆる外部記憶装置（図示せず）によって実現することができる。記憶部１１３は、例えば、ロボット２を駆動する制御プログラム、キャリブレーションに関するキャリブレーションプログラム、撮像部３による画像処理シーケンスに関する画像処理プログラム等を含むソフトウェア（例えばアプリケーションソフト）が記憶されている。言い換えると、コンピューター１１には、上述のソフトウェアがインストールされている。また、このソフトウェアには、ツール設定に関するプログラム、ローカル設定（ローカル座標系の設定）に関するプログラム、各種コマンドにより各種ロボット２を駆動させて各種処理（例えば、ツール設定、ローカル設定、キャリブレーション作成・実行（キャリブレーション）および画像処理シーケンス作成・実行（画像処理シーケンスの作成）等）を実行させるプログラムと、および、力検出部２９０からの出力に基づく力制御における各種パラメーターを設定するプログラムを含む。また、上述のソフトウェアは、例えばＣＤ−ＲＯＭ等の記録媒体（図示せず）に格納されていて、この記録媒体から提供されたものであってもよいし、ネットワークを介して提供されたものであってもよい。
【００６２】
表示制御部１１４は、表示装置４１に接続されており、表示装置４１のモニターに撮像画像や各種画面（例えば操作ウィンドウや処理結果に関する画面）を表示させる機能を有する。すなわち、表示制御部１１４は、表示装置４１の駆動を制御する。この表示制御部１１４の機能は、例えばＧＰＵによって実現することができる。例えば、表示制御部１１４は、画像処理シーケンスに関する複数のガイド画面をユーザーとの対話形式（対話式）で順次表示装置４１に表示させる。また、表示制御部１１４は、キャリブレーションに関する複数のキャリブレーション作成画面、ツール設定に関する複数のツール設定画面、および、ローカル座標系の設定に関する複数のローカル設定画面のそれぞれをユーザーとの対話形式で順次表示装置４１に表示させる。
【００６３】
入力制御部１１５は、入力装置４２に接続されており、入力装置４２からの入力を受け付ける機能を有する。この入力制御部１１５の機能は、例えばインターフェース回路によって実現することができる。なお、例えばタッチパネルを用いる場合には、入力制御部１１５は、ユーザーの指のタッチパネルへの接触等を検知する入力検知部としての機能を有する。
【００６４】
通信部１１６は、ロボット制御装置１２および画像処理装置１３等の外部とのデータのやり取りを行う機能を有する。通信部１１６の機能は、例えば、インターフェース回路等によって実現することができる。
【００６５】
（ロボット制御装置）
ロボット制御装置１２は、例えば、コンピューター１１からの指示に基づいてロボット２の駆動を制御する。ロボット制御装置１２は、プログラム（ＯＳ等）がインストールされたコンピューターである。このロボット制御装置１２は、例えば、プロセッサーとしてのＣＰＵと、ＲＡＭと、プログラムが記憶されたＲＯＭとを有する。
【００６６】
以下、ロボット制御装置１２が備える各機能（機能部）について説明する。
図６に示すように、ロボット制御装置１２は、制御部１２１（ロボット制御部）と、メインメモリー１２２と、記憶部１２３と、通信部１２６とを有し、これらの間で相互にデータのやり取りができるよう構成されている。
【００６７】
制御部１２１の機能は、例えば、ＣＰＵによりメインメモリー１２２や記憶部１２３に記憶された各種プログラムを実行することにより実現することができる。この制御部１２１は、例えば、制御プログラム実行部１２１１とロボット制御部１２１２とを有する。なお、制御部１２１が有する機能部（要素）は、これらに限定されない。これらの機能部のいずれかを省略したり、他の機能部を追加してもよい。
【００６８】
制御プログラム実行部１２１１は、コンピューター１１からの指示に基づき、ロボット２を駆動する制御プログラムを実行する。例えば、制御プログラム実行部１２１１は、各種コマンドによりロボット２に各種処理（例えば、ツール設定、ローカル設定、キャリブレーション処理（キャリブレーション）および画像処理シーケンス実行指示等）を実行する。ロボット制御部１２１２は、各駆動部２８０の駆動を制御し、ロボットアーム２０を駆動させたり停止させたりする。例えば、制御部１２１は、位置センサー２８１や力検出部２９０から出力された情報を基にして、ハンド２７０を目標位置に移動させるために各駆動部２８０が有するモーター（図示せず）の目標値を導出する。その他、制御部１２１は、各種演算および判断等の処理を行う機能や、ロボット制御装置１２が有する指示を行う機能等を有する。
【００６９】
メインメモリー１２２は、制御部１２１の作業領域である。メインメモリー１２２の機能は、例えばＲＡＭにより実現することができる。記憶部１２３は、各種データ（プログラムを含む）を記録する機能を有する。記憶部１２３は、例えば、制御プログラム等を記録する。記憶部１２３の機能は、ＲＯＭ等やいわゆる外部記憶装置（図示せず）によって実現することができる。通信部１２６は、ロボット２、コンピューター１１および画像処理装置１３等の外部とのデータのやり取りを行う機能を有する。通信部１２６の機能は、例えば、インターフェース回路等によって実現することができる。
【００７０】
（画像処理装置）
画像処理装置１３は、例えば、コンピューター１１からの指示に基づいて撮像部３の駆動を制御したり、撮像部３で撮像した撮像画像の処理（画像処理）を行う。画像処理装置１３は、例えば、プログラム（ＯＳ等）がインストールされたコンピューターである。この画像処理装置１３は、例えば、プロセッサーとしてのＣＰＵおよびＧＰＵと、ＲＡＭと、プログラムが記憶されたＲＯＭとを有する。
【００７１】
以下、画像処理装置１３が備える各機能（機能部）について説明する。
図７に示すように、画像処理装置１３は、制御部１３１（撮像部制御部）と、メインメモリー１３２と、記憶部１３３と、通信部１３６とを有し、これらの間で相互にデータのやり取りができるよう構成されている。
【００７２】
制御部１３１の機能は、例えば、ＣＰＵおよびＧＰＵによりメインメモリー１３２や記憶部１３３に記憶された各種プログラムを実行することにより実現することができる。この制御部１３１は、例えば、画像処理シーケンス実行部１３１１と、画像処理部１３１２と、撮像部制御部１３１３と、を有する。なお、制御部１３１が有する機能部（要素）は、これらに限定されない。これらの機能部のいずれかを省略したり、他の機能部を追加してもよい。
【００７３】
画像処理シーケンス実行部１３１１は、コンピューター１１からの指示（命令）に基づき画像処理シーケンスを実行する機能を有する。画像処理部１３１２は、例えば、撮像画像から各種情報を取り出す等の画像処理を行う機能を有する。具体的には、画像処理部１３１２は、例えば、撮像部３等からの撮像画像（画像データ）を基にして各種演算や各種判断等の処理を行う。例えば、画像処理部１３１２は、撮像画像を基にして画像座標系における撮像対象の座標（成分ｘｂ、ｙｂ、ｕｂまたは成分ｘｃ、ｙｃ、ｕｃ）を演算する。また、例えば、画像処理部１３１２は、画像座標系での座標（画像座標）をロボット２の先端座標系での座標（先端座標）またはロボット２のベース座標系での座標（ベース座標）に変換したりする。その変換に用いる補正パラメーターは、例えば、コンピューター１１またはロボット制御装置１２が求める。なお、画像処理装置１３が、前記変換に用いる補正パラメーターを求めてもよい。また、撮像部制御部１３１３は、例えば、撮像部３の駆動を制御したり、撮像部３から撮像画像（画像データ）を取得する機能を有する。
【００７４】
その他、制御部１３１は、コンピューター１１からの指示を受けて各種演算および判断等の処理を行う機能や、画像処理装置１３が有する各機能部への指示を行う機能等を有する。
【００７５】
メインメモリー１３２は、制御部１３１の作業領域である。メインメモリー１３２の機能は、例えばＲＡＭにより実現することができる。
【００７６】
記憶部１３３は、各種データ（プログラムを含む）を記録する機能を有する。記憶部１３３は、例えば、画像処理シーケンスに関するプログラム等を記録する。記憶部１３３の機能は、ＲＯＭ等やいわゆる外部記憶装置（図示せず）によって実現することができる。
【００７７】
通信部１３６は、撮像部３、ロボット制御装置１２およびコンピューター１１等の外部とのデータのやり取りを行う機能を有する。通信部１３６の機能は、例えば、インターフェース回路等によって実現することができる。
【００７８】
以上、制御システム１０の構成および機能について説明した。なお、上述したコンピューター１１とロボット制御装置１２と画像処理装置１３とがそれぞれ有する各機能は、コンピューター１１とロボット制御装置１２と画像処理装置１３のいずれが有していてもよい。また、コンピューター１１とロボット制御装置１２と画像処理装置１３とが一体であってもよい。例えば、画像処理装置１３が有する画像処理シーケンス実行部１３１１、画像処理部１３１２、撮像部制御部１３１３は、コンピューター１１の制御部１１１が有していてもよい。また、コンピューター１１が有する表示制御部１１４および入力制御部１１５は、画像処理装置１３が有していてもよい。また、制御システム１０は画像処理装置１３を備えていなくてもよく、その場合には、画像処理装置１３が有する各機能はコンピューター１１が備えることができる。また、コンピューター１１が有するキャリブレーション実行部１１１４は、ロボット制御装置１２の制御部１２１が有していてもよい。
以上、ロボットビジョンシステム１００の基本的な構成について簡単に説明した。
【００７９】
次に、作業プログラム作成およびティーチングの一例を説明する。なお、以下では、主に、ロボット２として図２に示すロボット２ａを用いた場合を例に説明する。
【００８０】
＜作業プログラムの作成＞
図８および図９は、それぞれ、図１に示す制御システムによる作業プログラムの作成の流れを示すフロー図である。図１０は、図８のステップＳ１１１を説明するための図である。図１１は、図８のステップＳ１１３を説明するための図である。図１２は、図８のステップＳ１１６を説明するための図である。図１３は、図８のステップＳ１１８を説明するための図である。図１４は、図９のステップＳ１２６を説明するための図である。図１５は、図９のステップＳ１２８およびステップＳ１２９を説明するための図である。
【００８１】
以下では、例えば、図２に示すロボット２ａが、作業台９０上に設置された給材台９１上のワーク（図２では図示せず）を把持して、固定カメラ３２上でワークの検査（例えば、外観検査）を行って、検査結果を基にワークを合格用除材台９４または不合格用除材台９５に載置する作業の作業プログラムを生成する。また、この作業プログラムを作成するにあたり必要な各種処理を行う。各種処理として、例えば、モバイルカメラ３１の画像座標系とロボット２ａのロボット座標系（先端座標系またはベース座標系）とのキャリブレーションと、固定カメラ３２の画像座標系とロボット２ａのロボット座標系（先端座標系またはベース座標系）とのキャリブレーションとを行う。また、例えば、ロボット２ａに対する各箇所のティーチングを行う。また、例えば、ロボット２ａのツールセンターポイントＰと先端軸座標におけるオフセット（ツールセンターポイントＰと先端軸座標との一方に対する他方のオフセット）を求めるツール設定を行う。また、ロボット座標系とは異なるローカル座標系の設定（ローカル設定）を行う。また、画像処理シーケンス作成、実行および結果の反映等の画像処理シーケンスの作成（画像処理シーケンス）を行う。
【００８２】
ここで、ユーザーは、作業プログラムの作成を実行する前に、図２に示すように、作業台９０上に設置された給材台９１にキャリブレーションプレート９２（校正用部材）を載置しておく。また、表示制御部１１４は、メインウィンドウ５０（指示画面）を表示装置４１に表示させておく（図１７または図１８参照）。なお、メインウィンドウ５０については後で詳述する。
【００８３】
以後、ユーザーは、表示装置４１に表示される各種画面（ウィンドウ）に対して入力装置４２のマウスでクリックする操作や、表示装置４１に表示される指示画面に対して入力装置４２のキーボードで文字や数字等を入力する操作により、制御システム１０に対する指示を行う。すなわち、以下の作業プログラムの作成における制御システム１０による制御（処理）は、ユーザーによる入力装置４２を用いた指示に基づいて行う。以下、このユーザーによる入力装置４２を用いた指示（すなわち入力装置４２による入力）を「操作指示」という。この操作指示は、入力装置４２により、指示画面に表示された内容から所望の内容を選択する選択操作や、入力装置４２により、指示画面に文字や数字等を入力する入力指示等を含む操作指示を含む。
【００８４】
以下、図８および図９に示すフロー図に基づいて作業プログラム作成について説明する。
【００８５】
まず、コンピューター１１は、ロボット制御装置１２に対してキャリブレーションプレート９２上にモバイルカメラ３１を位置させる移動指示を出す（図８：ステップＳ１１１）。この移動指示を受け、ロボット制御装置１２は、ロボットアーム２０を駆動させ、キャリブレーションプレート９２上にモバイルカメラ３１を位置させる（図１０参照）。本実施形態では、モバイルカメラ３１の光軸Ａ３１がキャリブレーションプレート９２におおよそ直交するように、モバイルカメラ３１をキャリブレーションプレート９２に正対させる。また、モバイルカメラ３１のキャリブレーションプレート９２に付されたマーカー（図示せず）に対して焦点が合うようにモバイルカメラ３１を位置させる。
【００８６】
次に、コンピューター１１は、ローカル座標系の設定すなわちローカル設定を行う（図８：ステップＳ１１２）。ローカル座標系とは、ロボット座標系（ベース座標系または先端座標系）とは異なる座標系であり、ロボット座標系で定義された原点、ｘｄ軸、ｙｄ軸およびｚｄ軸とによって定まる３次元の直交座標系である。本実施形態では、作業台９０に平行な平面として、モバイルカメラ３１を用いてキャリブレーションプレート９２の上面に平行な面へ、ローカル座標系のｘｄ軸およびｙｄ軸を含むローカル平面（仮想的な面）を設定する。これにより、例えば、給材台９１の上面が水平面に対して傾斜している場合であっても、ロボット２ａは給材台９１の上面で的確な作業を行うことができる。なお、図３に示すロボット２ｂを用いる場合には、ローカル座標系の設定は省略してよい。また、上述のローカル設定とは、上述のローカル座標系を設定することであり、ローカル設定における各種設定（表示処理を含む）、ローカル設定の処理の実行、および、ローカル設定結果を反映することによりローカル座標系を設定することを含む意味である。
【００８７】
ローカル設定の具体的な設定方法は、特に限定されないが、例えば、キャリブレーションプレート９２に付された少なくとも３つのマーカー（図示せず）を１つずつ撮像した撮像画像と、撮像したときのツールセンターポイントＰの先端座標とを基に求める方法が挙げられる。
【００８８】
また、ローカル設定は、後述する指示画面を用いた表示処理により行われる。なお、ローカル設定における表示処理については後で説明する。
【００８９】
また、ローカル座標系の設定が終了したら、ユーザーは、キャリブレーションプレート９２を給材台９１から取り去り、給材台９１上にワーク９３を載置しておく（図１１参照）。
【００９０】
次に、コンピューター１１は、ロボット制御装置１２に対してワーク９３を撮像できる位置にモバイルカメラ３１を位置させる移動指示を出す（図８：ステップＳ１１３）。この移動指示を受け、ロボット制御装置１２は、ロボットアーム２０を駆動させ、ワーク９３を撮像できる位置にモバイルカメラ３１を位置させる（図１１参照）。この移動は、モバイルカメラ３１をその光軸Ａ３１（ロボット２ａの先端軸）がローカル平面と直交する姿勢に移動後、モバイルカメラ３１の姿勢を変更せずに、モバイルカメラ３１をローカル平面内に移動させることで行う。また、ワーク９３の上面に対して焦点が合うように、ローカル平面に直交する方向へも移動させる。
【００９１】
次に、コンピューター１１は、ステップＳ１１３におけるロボット２ａの先端軸座標（成分ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）を第１ポイントとして設定し、記憶部１１３に記憶する（図８：ステップＳ１１４）。
【００９２】
次に、コンピューター１１は、ロボット制御装置１２および画像処理装置１３に指示（命令）を出し、ワーク９３の上面中心に付されたマーカー（図示せず）に関する第１画像処理シーケンスの作成を行う（図８：ステップＳ１１５）。
【００９３】
ここで、画像処理シーケンスとは、撮像部３から画像を撮影し、撮像画像を処理して、撮像画像に写る所定のパーツについて検出、検査等を行う方法や手順をまとめたものである。また、画像処理シーケンスの作成とは、画像処理シーケンスの各種設定、パーツのティーチング、画像処理シーケンスの実行および反映を含む意味である。また、第１画像処理シーケンスとは、パーツとしてワーク９３の上面中心に付されたマーカーに関する画像処理シーケンスのことを示す。
【００９４】
また、第１画像処理シーケンスの作成等は、後述する指示画面を用いた表示処理により行われる。なお、第１画像処理シーケンスにおける表示処理については後で説明する。
【００９５】
次に、コンピューター１１は、ロボット制御装置１２に対してワーク９３を把持する把持指示を出す（図８：ステップＳ１１６）。この把持指示を受けて、ロボット制御部１２１２は、ロボット２ａに対して、ロボットアーム２０を駆動させ、ハンド２７０によりワーク９３を把持させる（図１２参照）。次に、コンピューター１１は、ステップＳ１１６におけるロボット２ａの先端軸座標（成分ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）を第２ポイントとして設定し、記憶部１１３に記憶する（図８：ステップＳ１１７）。ここで、ツールセンターポイントＰの位置（成分ｚａ）は、ワーク９３を把持した位置を用いる。
【００９６】
次に、コンピューター１１は、ロボット制御装置１２に対して固定カメラ３２上にワーク９３を位置させる移動指示を出す（図８：ステップＳ１１８）。この移動指示を受け、ロボット制御装置１２は、ロボットアーム２０を駆動させ、固定カメラ３２の視野内でワーク９３に焦点が合う位置へワーク９３を位置させる（図１３参照）。次に、コンピューター１１は、ステップＳ１１８におけるロボット２ａの先端軸座標（成分ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）を第３ポイントとして設定し、記憶部１１３に記憶する（図８：ステップＳ１１９）。
【００９７】
次に、コンピューター１１は、ロボット制御装置１２および画像処理装置１３に指示を出しワーク９３の下面中心に付されたマーカー（図示せず）の第２画像処理シーケンス（第２ビジョンシーケンス）の作成を行う（図８：ステップＳ１２０）。ここで、第２画像処理シーケンスとは、パーツとしてワーク９３の下面中心に付されたマーカーに関する画像処理シーケンスのことを示す。
【００９８】
なお、ワーク９３の上面中心と下面中心との完全に同じ位置にそれぞれマーカーを設けるのは難しいため、例えば、ワーク９３に設けられた貫通孔等、ワーク９３の上下から同じターゲットを認識する。
【００９９】
また、第２画像処理シーケンスの作成等は、後述する指示画面を用いた表示処理により行われる。なお、第２画像処理シーケンスにおける表示処理については後で説明する。
【０１００】
次に、コンピューター１１は、ロボット制御装置１２および画像処理装置１３に指示を出しツール設定を行う（図８：ステップＳ１２１）。ここで、ツール設定とは、ロボットの先端軸等の軸座標と、ツールの所定の部位の座標のオフセット（位置姿勢の関係）を求めることであり、ツール設定における各種設定（表示処理を含む）、ツール設定の処理の実行、および、ツール設定結果を反映することを含む意味である。これにより、ツールの所定の部位のロボット座標が分かる。また、ツールとは、ロボット２ａに設けられた物であれば、いかなる物であってもよく、例えば撮像部３やワーク９３が挙げられる。ステップＳ１２１では、ツールをワーク９３とし、ロボット２ａのロボット２ａの先端軸座標とワーク９３の中心とのオフセットを求める。これにより、様々なロボット姿勢におけるワーク９３の中心のロボット座標が計算できるため、別のワーク９３の把持、および把持したワーク９３の移動や検査等を的確に行うことができる。
【０１０１】
オフセットを求める方法としては、特に限定されないが、例えば、ロボット２ａの先端軸座標およびワーク９３の中心のうちのいずれか一方の位置を固定した状態で他方の位置を移動（例えば回動）させ、その移動前後（例えば回動前後）におけるツールセンターポイントＰおよびワーク９３の中心の先端座標と移動量（例えば回動角度）とを基に求める方法が挙げられる。
【０１０２】
また、ツール設定は、後述する指示画面を用いた表示処理により行われる。なお、ツール設定における表示処理については後で説明する。
【０１０３】
次に、コンピューター１１は、ロボット制御装置１２および画像処理装置１３に指示を出し、ワーク９３の下面中心に付されたマーカーを用いて、固定カメラ３２の画像座標系とローカル座標（ロボット座標系）とを対応付けるキャリブレーションを行う（図８：ステップＳ１２２）。ここで、キャリブレーションとは、画像座標系とロボット座標系とを対応付けることであり、キャリブレーションにおける各種設定（表示処理を含む）すなわちキャリブレーション作成、カメラポイントのティーチング、キャリブレーションの実行、および、キャリブレーション結果を反映することにより画像座標系とロボット座標系とを対応付けることを含む意味である。ここではロボット座標系のうち、作業台９０に平行に設定されたローカル座標と画像座標系を対応付ける。
【０１０４】
キャリブレーションの具体的な方法は、特に限定されないが、例えば、１つのマーカー等のターゲット（撮像対象）を撮像画像内にある少なくとも３つ以上のカメラポイントに位置させ、その各カメラポイントでの撮像画像に基づく画像座標と、撮像したときのマーカー等のターゲットのロボット座標とを基に求めた画像座標とロボット座標との変換行列を用いる方法が挙げられる。各カメラポイントにおけるマーカー等のロボット座標は、ロボットの先端軸等の軸座標の位置姿勢と、前述のツール設定（オフセット）を用いて算出できる。これにより、画像座標系とロボット座標系とを対応付けることができ、画像座標をロボット座標に変換することができる。そのため、撮像画像に写る撮像対象のロボット座標を求めることができる。なお、ステップＳ１２２では、カメラポイントを９つ設定している。
【０１０５】
また、固定カメラ３２のキャリブレーションは、後述する指示画面を用いた表示処理により行われる。なお、キャリブレーションにおける表示処理については後で説明する。
【０１０６】
次に、コンピューター１１は、ロボット制御装置１２および画像処理装置１３に指示を出し、ワーク９３の下面に付された２つのＡ点（図示せず）およびＢ点（図示せず）を検出するための第３画像処理シーケンス（第３ビジョンシーケンス）の作成等を行う（図８：ステップＳ１２３）。ここで、第３画像処理シーケンスとは、ワーク９３の下面に付されたＡ点（パーツ）およびＢ点（パーツ）の検出に関する画像処理シーケンスのことを示す。また、ステップＳ１２３では、第３画像処理シーケンスと固定カメラ３２のキャリブレーション結果とを関連付けて、作成された画像処理シーケンスを用いた画像処理を実行して検査を行っている。ここでは、検査として、Ａ点とＢ点との間の距離を計測し、所定閾値内であれば合格と判断し、所定閾値外であれば不合格と判断する検査を行う。ここで、画像座標とロボット座標を用いるキャリブレーション（キャリブレーション結果）を関連付ける事で、Ａ点とＢ点との間の距離を画像上の長さの単位（ピクセル）ではなく、ロボット座標の単位（ｍｍ等）で判断できる。
【０１０７】
また、第３画像処理シーケンスの作成は、後述する指示画面を用いた表示処理により行われる。なお、第３画像処理シーケンスにおける表示処理については後で説明する。
【０１０８】
次に、コンピューター１１は、ロボット制御装置１２に対してステップＳ１１７で設定した第２ポイントへの移動指示を出し、給材台９１上にワーク９３を載置する載置指示を出す（図９：ステップＳ１２４）。この移動指示を受け、ロボット制御装置１２は、ロボット２ａに対して、ロボットアーム２０を駆動させて第２ポイントにロボット２ａの先端軸座標（成分ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）を位置させ、ハンド２７０によってワーク９３を給材台９１上に載置させる（図１４参照）。次に、コンピューター１１は、ステップＳ１２１におけるツール設定を基に、ワーク９３の中心の位置（成分ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）を第４ポイントとして設定し、記憶部１１３に記憶する（図９：ステップＳ１２５）。
【０１０９】
次に、コンピューター１１は、ロボット制御装置１２に対して、給材台９１においてワーク９３を離脱させた後、ステップＳ１１４で求めた第１ポイントに移動させ、給材台９１上に載置されたワーク９３を撮像できる位置にモバイルカメラ３１を位置させる移動指示を出す（図９：ステップＳ１２６）。このような移動指示を受け、ロボット制御装置１２は、ロボット２ａに対して、ハンド２７０によってワーク９３を給材台９１上で離脱させた後、第１ポイントにツールセンターポイントＰを位置させ、ワーク９３を撮像できる位置にモバイルカメラ３１を位置させる。
【０１１０】
次に、コンピューター１１は、ロボット制御装置１２および画像処理装置１３に指示を出し、ワーク９３の上面中心に付されたマーカーおよび第４ポイントとして（第４ポイントに）保存されたロボット座標を用いて、モバイルカメラ３１の画像座標系とロボット座標系とのキャリブレーションを行う（図９：ステップＳ１２７）。
【０１１１】
ステップＳ１２７におけるキャリブレーションでは、１つのターゲット（撮像対象）としてワーク９３の上面中心に付されたマーカーを用い、撮像画像内の９つのカメラポイントでこのマーカーを撮像するように、ワーク９３に対してモバイルカメラ３１を移動させる。そして、９つのカメラポイントでの撮像画像に基づく画像座標と、第４ポイントとして（第４ポイントに）保存されたワーク９３の上面に付されたマーカーのロボット座標とを用いて画像座標と先端座標との変換行列を求める。これにより、モバイルカメラ３１の画像座標をロボット座標に変換することができる。
【０１１２】
また、ステップＳ１２７におけるキャリブレーションでは、ロボット２ａに対してワーク９３を的確に把持させるために、第１画像処理シーケンスとモバイルカメラ３１のキャリブレーション結果との関連付けを行う。
【０１１３】
また、モバイルカメラ３１のキャリブレーションは、後述する指示画面を用いた表示処理により行われる。なお、キャリブレーションにおける表示処理については後で説明する。
【０１１４】
次に、コンピューター１１は、ロボット制御装置１２に対して合格用除材台９４上にツールセンターポイントＰを位置させる移動指示を出し、ワーク９３を載置し、ロボット２ａの先端軸座標（成分ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）を第５ポイントとして設定し、記憶部１１３に記憶する（図９：ステップＳ１２８）。この移動指示を受け、ロボット制御部１２１２は、ロボット２ａに対してロボットアーム２０を駆動させて合格用除材台９４上にロボット２ａの先端軸を位置させた後、ワーク９３を合格用除材台９４上に載置させる（図１５参照）。
【０１１５】
次に、コンピューター１１は、ロボット制御装置１２に対して不合格用除材台９５上にロボット２ａの先端軸を位置させる移動指示を出し、ワーク９３を載置し、ロボット２ａの先端軸座標（成分ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）を第６ポイントとして設定し、記憶部１１３に記憶する（図９：ステップＳ１２９）。この移動指示を受け、ロボット制御部１２１２は、ロボット２ａに対してロボットアーム２０を駆動させて不合格用除材台９５上にロボット２ａの先端軸を位置させた後、ワーク９３を不合格用除材台９５上に載置させる（図２、図１５参照）。
【０１１６】
次に、コンピューター１１（制御プログラム編集部１１１１）は、ステップＳ１１１〜Ｓ１２９を基に、ロボット２ａの作業プログラムを作成する（図９：ステップＳ１３０）。次に、コンピューター１１（制御プログラムビルド部１１１２）は、ステップＳ１１３で作成した作業プログラムをビルドして、ロボット制御装置１２で解釈可能な言語（データ列）に変換（コンパイル）する（図９：ステップＳ１３１）。次に、コンピューター１１は、コンパイルした作業プログラムをロボット制御装置１２、画像処理装置１３に転送して、ロボット制御装置１２および画像処理装置１３に対して作業プログラムの実行指示を出す（図９：ステップＳ１３２）。
以上により、作業プログラムの作成が終了する。
【０１１７】
ここで、従来では、通常の作業座標のティーチングを行う際には、ワーク９３をハンド２７０に把持させた後、ユーザーがハンド２７０をジョグ送りして、作業対象の組み込み位置等へワーク９３を挿入・設置して、その作業座標をティーチングするが、このようなティーチング作業には以下（１）、（２）のような課題があった。
【０１１８】
（１）作業位置へ高い精度でワーク９３を挿入・設置する必要がある場合に、ユーザーが手作業でその場所へワーク９３をジョグ送りして、高い精度でワークを挿入・設置するのに長い時間を要していた。
【０１１９】
（２）多数の作業位置をティーチングする場合、従来の手法では、全てのティーチング点（教示点）に対して、最初から最後までユーザーが手作業でワーク９３をジョグ送りして挿入・設置するため自動化が難しかった。
【０１２０】
上記の課題を解決するために、ステップＳ１１６からステップＳ１２５の処理のうち、ステップＳ１２２、ステップＳ１２３を除く処理は、それぞれ、作業を行う作業位置（作業座標）のティーチングにおいても利用できる。このようなティーチング作業においては、ユーザーが手作業で精度良く設置したワーク９３をハンド２７０で後から把持して引き抜く事で、精密な位置合わせに時間を要するハンド２７０のジョグ送りを省略でき、ティーチング時間を大幅に短縮できる。また、多数の作業座標をティーチングする場合でも、予め各作業位置へワーク９３を設置し、各ワーク９３を把持する座標をティーチングする事で、その後の作業座標の取得処理を簡単に自動化できる。
【０１２１】
また、繰り返しティーチングを行う場合には、ステップＳ１１６からステップＳ１２５の処理のうち、ステップＳ１１９、ステップＳ１２０は、初回のみ実行（実施）して、その後のティーチングでは初回の値を利用できる。さらに、ステップＳ１２４、ステップＳ１２５は必ず必要な処理ではなく、第４ポイントの座標を第２ポイントで設定した座標とツール設定で取得したツールオフセットから計算してもよい。
【０１２２】
次に、ステップＳ１３２の実行指示に基づき、ロボット制御装置１２および画像処理装置１３による作業プログラムの実行について説明する。
【０１２３】
＜作業プログラムの実行＞
図１６は、図８および図９に示すフロー図に基づいて作成した作業プログラムの実行の流れを示すフロー図である。
【０１２４】
まず、作業プログラムを実行するあたり、ワーク９３を給材台９１上に載置しておく。
図１６に示すように、ロボット制御装置１２は、作業プログラムの実行指示を受信し（ステップＳ２１１）、ロボットアーム２０を駆動させ、第１ポイントにロボット２ａの先端軸を移動させる（ステップＳ２１２）。
【０１２５】
次に、ロボット制御装置１２は、画像処理装置１３に対して第１画像処理シーケンスの実行指示を出す（ステップＳ２１３）。画像処理装置１３は、その実行指示を受信し、モバイルカメラ３１でワーク９３を検出するための第１画像処理シーケンスを実行する（ステップＳ２１４）。ステップＳ２１４では、画像処理装置１３は、第１画像処理シーケンスを実行して、モバイルカメラ３１でワーク９３を撮像した撮像画像（画像データ）を基に画像処理を行い、ワーク９３の中心位置を検出する。また、画像処理装置１３は、モバイルカメラ３１のキャリブレーションを利用して、撮像画像に写るワーク９３の中心位置をローカル座標（成分ｘｄ、ｙｄ、ｕｄ）に変換する。
【０１２６】
次に、画像処理装置１３は、ロボット制御装置１２に対して第１画像処理シーケンス結果（画像検出点のロボット座標等）を送信する（ステップＳ２１５）。ロボット制御装置１２は、第１画像処理シーケンス結果を受信したら（ステップＳ２１６）、その結果を基に、ローカル座標系に基づくワーク９３の中心の位置（成分ｘｄ、ｙｄ、ｚｄ、ｕｄ）を第７ポイントとして設定し、記憶部１１３に記録する（ステップＳ２１７）。ここで、ワーク９３の位置（成分ｚｄ）は、第２ポイントの位置（成分ｚｄ）を用いる。
【０１２７】
次に、ロボット制御装置１２は、ロボットアーム２０を駆動させ、ツール設定を基にしてツールセンターポイントＰを第７ポイントに移動してハンド２７０によりワーク９３を把持させる（ステップＳ２１８）。次に、ロボット制御装置１２は、ロボットアーム２０を駆動させ、第３ポイントにロボット２ａの先端軸を移動させる（ステップＳ２１９）。次に、ロボット制御装置１２は、画像処理装置１３に対して第３画像処理シーケンスの実行指示を出す（ステップＳ２２０）。画像処理装置１３は、その実行指示を受信し、固定カメラ３２でワーク９３を検出するための第３画像処理シーケンスを実行する（ステップＳ２２１）。ステップＳ２２１では、画像処理装置１３は、第３画像処理シーケンスを実行して、固定カメラ３２でワーク９３を撮像した撮像画像（画像データ）を基に画像処理を行い、ワーク９３の点Ａ、点Ｂを検出する。また、画像処理装置１３は、固定カメラ３２のキャリブレーション結果を利用して、撮像画像に写るワーク９３の点Ａおよび点Ｂの位置をロボット座標（ベース座標）に変換する。次に、画像処理装置１３は、ロボット制御装置１２に対して第３画像処理シーケンス結果（点Ａおよび点Ｂの各ロボット座標等）を送信する（ステップＳ２２２）。ロボット制御装置１２は、第３画像処理シーケンス結果を受信したら（ステップＳ２２３）、その結果を基に、ローカル座標系に基づくワーク９３の点Ａと点Ｂとの間の距離を計測する検査を行う（ステップＳ２２４）。
【０１２８】
次に、ロボット制御装置１２は、点Ａと点Ｂとの間の距離が所定閾値内であれば合格とし、所定閾値外であれば不合格とする合否判定を行う（ステップＳ２２５）。合格である場合、ロボット制御装置１２は、ステップＳ２２６ａに移行して、ロボットアーム２０を駆動させ、第５ポイントにロボット２ａの先端軸を移動させる。一方、不合格である場合、ロボット制御装置１２は、ステップＳ２２６ｂに移行して、ロボットアーム２０を駆動させ、第６ポイントにロボット２ａの先端軸を移動させる。
【０１２９】
次に、ロボット制御装置１２は、カウントアップし（ステップＳ２２７）、ワーク９３が所定数に達したか否かを判断する（ステップＳ２２８）。所定数に達していたら、ロボット制御装置１２は、ステップＳ２２９に移行し、作業が終了したことをコンピューター１１に送信し（ステップＳ２２９）、作業を終了する。一方、所定数に達していない場合には、ステップＳ２１１に戻り、所定数に達するまで、ステップＳ２１１〜Ｓ２２８を繰り返す。
【０１３０】
以上のようにして、作業が終了する。また、コンピューター１１は、作業した結果（例えば、ワーク９３の把持の成否、把持位置のばらつきや画像シーケンス実行成否等）を基にして、上述した作業プログラムを作成し直す。例えば、コンピューター１１は、ワーク９３の把持が頻繁に失敗すると判断したら、作業プログラムを作成し直して（書き換えて）、再度作業を行う。このようにして、ワーク９３の把持が安定するまで、作業プログラムの作成（更新）およびその作業プログラムに基づいた作業を行うことで、ロボット２ａによる作業精度を高めることができる。また、コンピューター１１は、作業プログラムの全てではなく、作業プログラムの一部のみを作成し直してもよい。例えば、ワーク９３の把持の精度が所定閾値内ではない場合には、モバイルカメラ３１のキャリブレーション（図９：ステップＳ１２７）のみを再度作成し直すことも可能である。このように、作業プログラムの一部のみを作成し直すことで、作業プログラムの再設定（編集）を効率良く行うことができる。
【０１３１】
このような作業を行うための作業プログラムの作成およびそれに必要な各種処理の設定は、上述したように、各種指示画面を用いたユーザーによる操作指示（入力装置４２による入力）に基づいて制御システム１０により実行される。以下、各種指示画面、ユーザーによる指示画面の操作（入力装置４２による入力）およびコンピューター１１（表示制御部１１４）による表示処理等について説明する。なお、以下では、各種指示画面を用いたユーザーによる操作指示（入力装置４２による入力）に基づいた制御システム１０による各種設定等を「表示処理」という。
【０１３２】
＜メインウィンドウおよび表示処理＞
図１７は、図１に示す表示装置に表示させるメインウィンドウおよびロボット操作用のサブウィンドウを示す図である。図１８は、図１に示す表示装置に表示させるメインウィンドウおよび画像処理用のサブウィンドウを示す図である。
【０１３３】
図１７に示すように、メインウィンドウ５０は、少なくともツールバー５０２を有する。ツールバー５０２は、ツール設定用アイコン７０１と、ローカル設定用アイコン７０２と、キャリブレーション作成用アイコン７０３と、画像処理用のサブウィンドウ６１を表示させるために用いられるアイコン６０１と、コマンド入力アイコン８０１と、を有する。これらアイコンの表示（図等）は特に限定されないが、ユーザーが用途を認識し易い表示であることが好ましい。各アイコンの用途については後で説明する。
【０１３４】
また、表示制御部１１４は、メインウィンドウ５０と同時に、図１７に示すロボット操作用のサブウィンドウ５１や、図１８に示す画像処理用のサブウィンドウ６１を表示装置４１に表示させることができる。その他、図示はしないが、表示制御部１１４は、メインウィンドウ５０と同時に、コマンド入力用のサブウィンドウや、力制御における各種パラメーターを設定するサブウィンドウを表示装置４１に表示させることができる。表示制御部１１４は、ユーザーの操作指示により、これらサブウィンドウ（サブウィンドウ５１、６１を含む）のうち所望のサブウィンドウを最前面に表示させる。なお、これらサブウィンドウを並べて表示してもよい。
【０１３５】
図１７に示すロボット操作用のサブウィンドウ５１は、ジョグ動作グループ５２１（領域）と、ティーチグループ５２２と、を有するパネル５２を備える。また、サブウィンドウ５１は、図示はしないが、パネル５２以外に、ロボット２の各種パラメーター（例えば移動速度等）を設定するパネル等の複数のパネルを備える。また、サブウィンドウ５１は、所望のパネルを最前面に表示させるために用いられる複数のタブ５３を有する。
【０１３６】
ジョグ動作グループ５２１は、ユーザーによるロボット２の所定の部位をジョグ動作させる操作指示を受ける複数のボタン５２１２を有する。このようにジョグ動作グループ５２１が視覚的に解り易いボタン５２１２を有するため、ユーザーは、ロボット２のジョグ送りを簡単に指示することができる。このジョグ動作グループ５２１は、上述した作業プログラムの作成におけるステップＳ１１１、Ｓ１１３、Ｓ１１６、Ｓ１１８、Ｓ１２４、Ｓ１２６、Ｓ１２８、Ｓ１２９で用いられる。具体的には、例えば、ステップＳ１１１において、入力制御部１１５がユーザーからの複数のボタン５２１２に対する操作指示を受けると、制御部１１１は、ロボット制御装置１２に対してキャリブレーションプレート９２上にモバイルカメラ３１を位置させる移動命令を出す（図８：ステップＳ１１１）。
【０１３７】
また、ティーチグループ５２２は、ユーザーによるティーチングポイントの設定のために用いられる。このティーチグループ５２２は、上述した作業プログラムの作成におけるステップＳ１１４、Ｓ１１７、Ｓ１１９、Ｓ１２５、Ｓ１２８、Ｓ１２９で用いられる。具体的には、例えば、ステップＳ１１４において、入力制御部１１５がユーザーのティーチボタンに対する操作指示を行うと、制御部１１１は、第１ポイントを設定し、記憶部１１３に第１ポイントを記録させる（図８：ステップＳ１１４）。
【０１３８】
図１８に示す画像処理用のサブウィンドウ６１は、ツールバー６１５と、画像イメージ表示部６１２と、実行グループ６１３と、フローチャート表示部６２と、を有する。この画像処理用のサブウィンドウ６１は、メインウィンドウ５０にあるアイコン６０１をユーザーが操作指示することにより表示される。
【０１３９】
ツールバー６１５は、画像処理シーケンスの作成用の画面群を表示させるために用いられるアイコン６７１を有する。画像イメージ表示部６１２は、撮像部３で撮像した撮像画像、画像処理結果を表示する。実行グループ６１３は、ユーザーによる画像処理シーケンスを実行させる操作指示を受ける各種ボタンを有する。フローチャート表示部６２は、画像処理シーケンスの画像処理手順や、キャリブレーションのティーチング手順等を表示する。
【０１４０】
また、サブウィンドウ６１は、ジョグ動作グループ５２１と同様の構成であるジョグパネル５４と、ロボット２の各種パラメーター（例えば移動速度等）を設定するパネル（図示せず）と、を有する。サブウィンドウ６１は、ロボット２の各種パラメーターを設定するパネルとジョグパネル５４とのいずれかを最前面に表示させるために用いられる２つのタブ５６を有する。なお、これらパネルを並べて表示してもよい。
【０１４１】
このように、サブウィンドウ６１がジョグパネル５４を有することで、ユーザーは、画像処理用のサブウィンドウ６１でロボット操作を行うことができる。また、同様に、サブウィンドウ６１がロボット２の各種パラメーターを設定するパネルを有することで、ユーザーは、画像処理用のサブウィンドウ６１でロボット２の各種パラメーターを設定することができる。
【０１４２】
また、図１８には図示しないが、サブウィンドウ６１は、キャリブレーション設定（作成したキャリブレーションの名称および各種設定内容）と画像処理シーケンス設定（作成した画像処理シーケンスの名称および各種設定内容）と表示、編集するプロパティー設定ウィンドウ６０とを有する（図３９参照）。このプロパティー設定ウィンドウ６０は、ジョグパネル５４が表示される領域に表示される（図１８参照）。このプロパティー設定ウィンドウ６０については後で詳述する。
【０１４３】
以上説明したように、表示制御部１１４は、制御部１１１の制御の下、１つのメインウィンドウ５０と同時に複数種のサブウィンドウ（サブウィンドウ５１、６１を含む）を重ねてまたは並べて表示させることができるため、ユーザーは複数種の作業を効率良く行うことができる。特に、上述したように、本実施形態では、ロボット操作用のサブウィンドウ５１と、画像処理用のサブウィンドウ６１と、コマンド入力用のサブウィンドウや、力制御に関するサブウィンドウと、を表示装置４１に表示させることができるため、利便性が特に高い。
【０１４４】
また、上述したように、表示制御部１１４は、画像処理用のサブウィンドウ６１にロボット２の各種パラメーターの設定を行うためのパネル（図示せず）や、ロボット２のジョグ動作を行うためのジョグパネル５４を重ねてまたは並べて表示させることができる。そのため、ユーザーは画像処理シーケンスの実行時におけるロボット２の操作を的確にかつ効率よく行うことができる。
【０１４５】
次に、上述した作業プログラムにおけるローカル設定およびそのローカル設定における表示処理について説明する。
【０１４６】
＜ローカル設定および表示処理＞
図１９は、図８に示すローカル座標系の設定の流れを示すフロー図である。図２０、図２１および図２３は、それぞれ、図１に示す表示装置に表示されるローカル設定画面である。図２２は、図１に示す表示装置に表示されるティーチング用の画面である。
【０１４７】
以下、図１９に示すフロー図を参照しつつ、上述した作業プログラムの作成におけるローカル座標系の設定（ステップＳ１１２）について説明する。ローカル座標系の設定（ローカル設定）は、［１Ａ］ローカル設定における各種設定（ステップＳ３１）と、［２Ａ］ローカル設定の処理の実行（ステップＳ３２（図示せず））と、［３Ａ］ローカル設定結果の反映（ステップＳ３３）と、を有する。ここで、上述したように、ローカル設定とは、ローカル設定における各種設定（表示処理を含む）、ローカル設定の処理の実行、および、ローカル設定結果を反映することによりローカル座標系を設定することを含む意味である。
【０１４８】
［１Ａ］ローカル設定における各種設定（ステップＳ３１）
まず、制御システム１０は、入力装置４２による入力に基づいて、ローカル設定における各種設定を実行する。
【０１４９】
具体的には、まず、ユーザーが図１７に示すメインウィンドウ５０のローカル設定用アイコン７０２に対する操作指示を行う（クリックする）と、入力制御部１１５は、その操作指示（ローカル設定開始の指示）を受ける（図１９：ステップＳ３１１）。これにより、制御部１１１は、複数（本実施形態では５つ）のローカル設定画面７２（指示画面）をユーザーとの対話形式で表示させるローカル設定用の画面群の表示処理を開始し、表示制御部１１４に対して、図２０に示す１個目のローカル設定画面７２ａ（ローカル設定画面７２）の出力指示を出す（図１９：ステップＳ３１２）。この出力指示を受け、表示制御部１１４が１個目のローカル設定画面７２ａを表示装置４１に表示させる。
【０１５０】
（１個目のローカル設定画面）
図２０に示すように、１個目のローカル設定画面７２ａは、ローカル設定モード（ローカルキャリブレーションタイプ）の選択のための画面である。ローカル設定モードとは、ローカル座標系の設定の方法のことを示す。すなわち、ローカル設定モードとは、どのような手段で、またはどのような種類の（例えば、手作業でローカル設定または固定カメラ３２に平行なローカル設定など）ローカル設定を行うかを示す。本実施形態では、ローカル設定画面７２ａは、複数のラジオボタン７２１を有し、図２０に示す３つのローカル設定モードのうちのいずれか１つの選択を受けることができるよう構成されている。このように、ローカル設定画面７２ａが複数のモードから１つの選択を案内する構成であることで、ユーザーは、２種以上のモードを選択することを防ぐことができる。なお、ローカル設定モードの種類は、図２０に示す３つのモードに限定されず、他のモードがさらに加わっていても良いし、図２０に示す３つのモードのいずれかが省略されていてもよい。
【０１５１】
また、ローカル設定画面７２ａは、「キャンセル」と表示されたボタン７２０１、「戻る」と表示されたボタン７２０２、「次へ」と表示されたボタン７２０３と、「ティーチ」と表示されたボタン７２０４（ティーチボタン）と、「完了」と表示されたボタン７２０５とを有する。ボタン７２０１は、ローカル設定ウィザードのキャンセルために用いられる。ボタン７２０２は、順次表示されるローカル設定画面７２において１つ前のローカル設定画面７２に戻るために用いられる。ボタン７２０３は、順次表示されるローカル設定画面７２において次のローカル設定画面７２に進むために用いられる。なお、ローカル設定画面７２ａは順次表示されるローカル設定画面７２のうちの１個目であるため、ボタン７２０２はグレーアウトになっている。また、ボタン７２０４、７２０５もグレーアウトになっている。
【０１５２】
このようなローカル設定画面７２ａに対して、ユーザーが所望のモードを選択する操作指示を行い（所望の１つのラジオボタン７２１をクリックまたはタッチし）、「次へ」と表示されたボタン７２０３に対する操作指示を行うと、入力制御部１１５は、ローカル設定モードの選択を受ける（図１９：ステップＳ３１３）。これにより、制御部１１１は、選択されたローカル設定モードを記憶部１１３に記憶させ、表示制御部１１４に対して２個目のローカル設定画面（図示せず）の出力指示を出す（図１９：ステップＳ３１４）。この出力指示を受け、表示制御部１１４が２個目のローカル設定画面（図示せず）を表示装置４１に表示させる。
【０１５３】
（２個目のローカル設定画面）
２個目のローカル設定画面は、図示はしないが、ローカル設定結果を保存する保存番号（ローカル番号）を選択（設定）するための画面である。なお、２個目のローカル設定画面は、ローカル設定モードの選択の表示に代えて保存番号の選択が表示されていること以外、１個目のローカル設定画面７２ａとほぼ同様の表示形態である。
【０１５４】
２個目のローカル設定画面における保存番号を選択する表示は、例えば、リストボックス等を用いることができる。このような２個目のローカル設定画面が、保存番号の選択を受け付ける構成であることで、ユーザーによる入力誤りを防ぐことができる。なお、選択するものは、保存番号に代えて、保存名であってもよい。なお、図示はしないが、２個目のローカル設定画面も、１個目のローカル設定画面７２ａが備えるボタン７２０１〜７２０５と同様のボタンを有している。
【０１５５】
このような２個目のローカル設定画面に対してユーザーが所望の保存番号を選択する操作指示を行った後、「次へ」と表示されたボタン（ボタン７２０３に対応するボタン）に対する操作指示を行うと、入力制御部１１５は、ローカル設定の結果の保存番号の選択を受ける（図１９：ステップＳ３１５）。これにより、制御部１１１は、選択された保存番号を記憶部１１３に記憶させ、表示制御部１１４に対して、図２１に示す３個目のローカル設定画面７２ｂ（ローカル設定画面７２）の出力指示を出す（図１９：ステップＳ３１６）。この出力指示を受けると、表示制御部１１４が３個目のローカル設定画面７２ｂを表示装置４１に表示させる。
【０１５６】
（３個目のローカル設定画面）
図２１に示すように、３個目のローカル設定画面７２ｂは、各種ビジョンコンポーネントの内容を選択するための画面である。ローカル設定におけるビジョンコンポーネントとは、ローカル座標系の設定で用いる撮像部３の種類、設置位置（カメラツール）、画像処理方法など画像処理に関わる要素を示す。本実施形態では、ローカル設定画面７２ｂは、図２１に示すように、撮像部３、撮像部３の設置箇所、画像処理シーケンス、カメラツール、および、キャリブレーションプレートの５つのビジョンコンポーネントの各内容を選択するよう構成されている。具体的には、ローカル設定画面７２ｂは、ビジョンコンポーネントに関する複数の内容（情報）から１つの内容を選択するためのドロップダウンリスト７２２やラジオボタン７２３を複数有している。なお、ドロップダウンリスト７２２のリストの図示は省略する（他の図面についても同様である）。ローカル設定におけるビジョンコンポーネントは、上述した５つのビジョンコンポーネントに限定されず、他のビジョンコンポーネントがさらに加わっていても良いし、上述したビジョンコンポーネントのいずれかが省略されていてもよい。
【０１５７】
また、ローカル設定画面７２ｂは、ローカル基準点をティーチングするか否かを選択するチェックボックス７２９を有している。この選択を受けると、制御部１１１は、ローカル座標系を含むローカル平面を、指定したティーチングした点を通る位置に設定する。これにより、設定したローカル座標をロボット２aで利用する際の利便性が向上する。
【０１５８】
ここで、３個目のローカル設定画面７２ｂの表示内容は、１個目のローカル設定画面７２ａの撮像部３の種類（選択）に応じて変わる。具体的には、ドロップダウンリスト７２２の表示内容が、１個目のローカル設定画面７２ａの撮像部３の種類（選択）に応じて変わる。例えば、上述した作業プログラムの生成におけるステップＳ１１２では、モバイルカメラ３１を用いてローカル設定を行う。したがって、入力制御部１１５がユーザーによる１個目のローカル設定画面７２ａの図中の上から２個目のラジオボタン７２１の選択を受けると、表示制御部１１４は、モバイルカメラ３１に関連する表示内容のドロップダウンリスト７２２を有するローカル設定画面７２ｂを表示装置４１に表示させる。また、例えば、入力制御部１１５が１個目のローカル設定画面７２ａの図中の上から３個目のラジオボタン７２１の選択を受けると、表示制御部１１４は、固定カメラ３２に関連する表示内容のドロップダウンリスト７２２を有するローカル設定画面７２ｂを表示装置４１に表示させる。
【０１５９】
このように、後に表示されるローカル設定画面７２ｂには、先に表示されたローカル設定画面７２ａにおける選択に応じた限定的な内容が表示させるため、ユーザーによる選択ミスを低減することができる。
【０１６０】
このような３個目のローカル設定画面７２ｂに対して、ユーザーが各ビジョンコンポーネントの内容を選択する操作指示を行い、「次へ」と表示されたボタン７２０３を操作指示すると、入力制御部１１５は、各ビジョンコンポーネントの内容の選択を受ける（図１９：ステップＳ３１７）。これにより、制御部１１１は、選択されたビジョンコンポーネントを記憶部１１３に記憶させ、表示制御部１１４に対して４個目のローカル設定画面（図示せず）の出力指示を出す（図１９：ステップＳ３１８）。この出力指示を受け、表示制御部１１４が４個目のローカル設定画面（図示せず）を表示装置４１に表示させる。
【０１６１】
（４個目のローカル設定画面）
４個目のローカル設定画面は、図示はしないが、ローカル設定を開始するカメラポイント（開始位置）と、ローカル基準点の設定するための画面である。ローカル基準点は、３個目のローカル設定画面においてローカル基準点をティーチングする選択がなされた場合にのみ設定する。なお、４個目のローカル設定画面は、選択内容（設定内容）が異なる以外、１個目のローカル設定画面７２ａとほぼ同様の表示形態である。また、４個目のローカル設定画面も、１個目のローカル設定画面７２ａが備えるボタン７２０１〜７２０５と同様のボタンを有している。
【０１６２】
このような４個目のローカル設定画面に対して、ユーザーがティーチボタン（グレーアウトが解除されたボタン７２０４に対応するボタン）を操作指示すると、入力制御部１１５は、その操作指示を受ける（図１９：ステップＳ３１９）。これにより、制御部１１１は、表示制御部１１４に対してティーチング用の画面７２０の出力指示を出す（図１９：ステップＳ３２０）。この出力指示を受け、表示制御部１１４がティーチング用の画面７２０を表示装置４１にポップアップ表示させる。
【０１６３】
〔ティーチング用の画面〕
図２２に示すように、ティーチング用の画面７２０は、ローカル設定を開始するカメラポイントおよび、設定するローカル平面の高さを決定するローカル基準点の位置をティーチングするために用いられる画面である。この画面７２０は、少なくとも、ジョグ＆ティーチパネル７２６と、ティーチボタン７２０６とを有する。ジョグ＆ティーチパネル７２６はロボット２ａの所定の部位をジョグ動作させる操作指示を受ける複数のボタン７２４１を有するジョググループ７２４と、撮像部３の撮像画像を表示する画像イメージ表示部７２５とを有する。
【０１６４】
このような画面７２０を用いて、ユーザーは、例えば、画像イメージ表示部７２５の中心（撮像画像の中心）にキャリブレーションプレートが位置するように複数のボタン７２４１を用いてロボット２ａの所定の部位を移動させる指示（操作指示）を行う。入力制御部１１５がこのユーザーの操作指示を受けると、制御部１１１は、その操作指示に基づいて、ロボット制御装置１２に対してハンド２７０を移動させる移動指示を出す。また移動指示とともに、画像処理装置１３に撮像部３の画像を撮像させる撮像指示を出して画像イメージ表示部７２５に表示する事で、ユーザーは撮像対象が適切に写る位置へ撮像部を移動してローカル設定を開始するカメラポイントをティーチングする（図１９：ステップＳ３２１）。次いで、３個目のローカル設定画面においてローカル基準点をティーチングするように選択した場合は、設定されるローカル平面が通るべき点へ、ロボット２ａのハンド２７０等を移動した後、ユーザーがティーチボタン７２０６に対して操作指示を行うと、入力制御部１１５は、このユーザーによるティーチボタン７２０６の操作指示を受ける。これにより、制御部１１１は、ローカル設定されるローカル平面が通るローカル基準点（基準点）を設定する（図１９：ステップＳ３２２）。また、制御部１１１は、記憶部１１３にカメラポイント、ローカル基準点を記憶させる。その後、制御部１１１は、表示制御部１１４に対してティーチング用の画面７２０を消去させる指示を出し、表示制御部１１４は、表示装置４１からティーチング用の画面７２０を消去させる。
【０１６５】
次に、ユーザーが上述した４個目のローカル設定画面（図示せず）の「次へ」と表示されたボタン（ボタン７２０３に対応）に対する操作指示を行うと、入力制御部１１５は、このユーザーによる操作指示を受ける（図１９：ステップＳ３２３）。次いで、制御部１１１は、表示制御部１１４に対して５個目のローカル設定画面７２ｃの出力指示を出す（図１９：ステップＳ３２４）。これにより、表示制御部１１４が５個目のローカル設定画面７２ｃを表示装置４１に表示させる。
【０１６６】
（５個目のローカル設定画面）
図２３に示すように、５個目のローカル設定画面７２ｃは、ローカル設定を自動で実行するための各種パラメーターの内容を選択するための画面である。本実施形態では、ローカル設定画面７２ｃは、図２３に示すように、ターゲットの許容量、最大移動距離、最大の姿勢変化量（角度）およびＬＪＭモードの４つのパラメーターの各内容を選択するよう構成されている。具体的には、ローカル設定画面７２ｃは、パラメーターに関する内容を入力するためのテキストボックス７２７やパラメーターに関する複数の内容（情報）から１つの内容を選択するためのドロップダウンリスト７２８を有している。なお、パラメーターは、上述した４つのパラメーターに限定されず、他のパラメーターがさらに加わっていても良いし、上述したパラメーターのいずれかが省略されていてもよい。
【０１６７】
また、ローカル設定画面７２ｃは、１個目のローカル設定画面７２ａと同様にボタン７２０１〜７２０５を有しており、ボタン７２０３〜７２０５はグレーアウトになっている。この５個目のローカル設定画面７２ｃは、ローカル設定用の画面群のうちの最後のローカル設定画面であるので、ボタン７２０３は、グレーアウトになっている。
【０１６８】
また、ローカル設定画面７２ｃは、「実行」と表示されたボタン７２０８を有する。
このようなローカル設定画面７２ｃに対して、ユーザーが各種パラメーターの内容を選択する操作指示を行い、「実行」と表示されたボタン７２０８に対する操作指示を行うと、入力制御部１１５は、各パラメーターの内容の選択と、ユーザーからのローカル設定の実行指示を受ける（図１９：ステップＳ３２５）。これにより、制御部１１１は、選択されたパラメーターの内容を記憶部１１３に記憶させ、ロボット制御装置１２および画像処理装置１３に対してローカル設定を行う実行指示を出す（図１９：ステップＳ３２６）。以上のようにして、ローカル設定の表示処理によるローカル設定の各種設定が完了する。
【０１６９】
［２Ａ］ローカル設定の処理の実行（ステップＳ３２）
次に、制御システム１０は、ローカル設定の処理を実行する。
【０１７０】
具体的には、ロボット制御装置１２および画像処理装置１３は、ステップＳ３２６の制御部１１１からの実行指示に基づいてローカル設定の処理を実行する。
【０１７１】
まず、ロボット制御装置１２は、実行指示を受信すると、ロボット２ａの状態（例えば駆動部２８０のモーターがＯＮされているか等）をロボット２ａから取得する。次いで、ロボット制御装置１２は、キャリブレーションプレートがモバイルカメラ３１の視野に入るように、ローカル設定の開始位置としてティーチィングされたカメラポイントへモバイルカメラ３１が移動するように、ロボット２ａに対して移動指示を出す。この際、ロボット２ａは、ロボット制御装置１２に対して都度ロボットアーム２０の移動に関する情報（位置センサーの値）等を返却する。次に、ロボット制御装置１２は、画像処理装置１３に対して画像処理シーケンスの実行指示を出す。画像処理装置１３は、その実行指示を受信し、モバイルカメラ３１（撮像部３）でキャリブレーションプレートを検出するための画像処理シーケンスを実行する。この画像処理シーケンスは、上述したローカル設定画面７２ｂにより受け付けた画像処理シーケンスを実行する。画像処理装置１３は、画像処理シーケンスを実行して、モバイルカメラ３１でキャリブレーションプレートを撮像した撮像画像（画像データ）を基に画像処理を行い、モバイルカメラ３１に対するキャリブレーションプレートの相対的な位置姿勢を検出する。次に、画像処理が終了したら、画像処理装置１３は、ロボット制御装置１２に画像処理シーケンスの実行結果（キャリブレーションプレートの位置姿勢）を送信する。次いで、ロボット制御装置１２は、取得したキャリレーションプレートの位置姿勢や撮像したときのモバイルカメラ３１のロボット座標（ベース座標）を基に、ローカル座標系を計算する。そして、ロボット制御装置１２は、コンピューター１１に対してローカル座標系の設定結果（ローカル設定結果）を送信する。なお、上述したように、ローカル設定の実行内容等について、具体的な方法は特に限定されない。記憶部１１３には、各種設定ごとに処理（プログラム）が記憶されており、制御部１１１は、選択された設定に応じた処理（プログラム）を実行する。
【０１７２】
［３Ａ］ローカル設定結果の反映（ステップＳ３３）
次に、制御システム１０は、ローカル設定結果を反映する。
【０１７３】
具体的には、まず、コンピューター１１の通信部１１６は、ローカル設定結果を受信すると（図１９：ステップＳ３２７）、制御部１１１は、表示制御部１１４に対してローカル設定結果を表示する画面の出力指示を出す（図１９：ステップＳ３２８）。これにより、表示制御部１１４は、ローカル設定結果が表示された画面（図示せず）を表示装置４１に表示させる。この画面は、図示はしないが、ユーザーがローカル設定結果を反映させるか否かを選択できるよう構成されている。
【０１７４】
入力制御部１１５がユーザーによるローカル設定結果を反映させるという選択を受け付けると（図１９：ステップＳ３２９）、制御部１１１は、ロボット制御装置１２に対してローカル設定結果を設定する指示を出す（図１９：ステップＳ３３０）。この指示を受け、ロボット制御装置１２は、ローカル設定を設定し、記憶する。これにより、ローカル設定が反映される。
【０１７５】
一方、ユーザーが、ローカル設定の結果を反映しないことを選択すると、図１９には図示しないが、制御部１１１は、例えば、［１Ａ］ローカル設定における各種設定（ステップＳ３１）と、［２Ａ］ローカル設定の処理の実行（ステップＳ３２）とを再度行う。なお、少なくとも、［２Ａ］ローカル設定の処理の実行（ステップＳ３２）を再度行えばよい。このようにして、必要に応じて、［２Ａ］ローカル設定の処理の実行（ステップＳ３２）等を繰り返し行うことで、ローカル設定結果の精度を高めることができる。
【０１７６】
以上説明したローカル設定では、上述したように、［１Ａ］ローカル設定における各種設定において、表示制御部１１４は、複数（本実施形態では５つ）のローカル設定画面７２をユーザーとの対話形式で表示させるローカル設定用の画面群を出力する。そして、ユーザーは、複数のローカル設定画面７２を用いて制御システム１０に対して各種設定の指示を行う。これにより、ユーザーは、所定の順序に沿って、対話形式で設定内容（情報）を選択することができるため、複雑な操作が無く簡単かつ手軽にローカル設定における各種設定を完了することができる。そのため、従来のように各種設定をプログラミングする手間を省くことができる。また、ローカル設定において必要な設定内容が表示されることで、初心者であってもローカル設定に必要な設定内容の設定不足が生じることを低減でき、ローカル設定の実行において例えばエラー等が生じることを低減できる。
【０１７７】
なお、上述したように、ローカル設定用の画面群は、５つのローカル設定画面７２を有していたが、ローカル設定画面７２の数はこれに限定されない。他のローカル設定画面がさらに加わっていてもよいし、５つのローカル設定画面７２のうちのいずれかが省略されていてもよい。また、５つのローカル設定画面７２が表示される順序は、上述した順序に限定されず、任意である。ただし、後に表示されるローカル設定画面７２の表示内容が、先に表示されたローカル設定画面７２の選択内容に応じて変わることが好ましい。すなわち、後に表示されるローカル設定画面７２の表示内容は、先に表示されたローカル設定画面７２の選択内容に応じた限定的な内容であることが好ましい。したがって、上述したローカル設定画面７２ａの後に、ローカル設定画面７２ｂが表示されるよう設定されていることが好ましい。また、上述した５つのローカル設定画面７２が、上述した説明した通りの順番で表示されることで、ユーザーは、設定内容を特に把握し易いため、ユーザーにとっての利便性を高めることができる。
【０１７８】
次に、上述した作業プログラムにおけるツール設定およびそのツール設定における表示処理について説明する。
【０１７９】
＜ツール設定および表示処理＞
図２４は、図８に示すツール設定の流れを示すフロー図である。図２５、図２６および図２７は、それぞれ、図１に示す表示装置に表示されるツール設定画面である。
【０１８０】
以下、図２４に示すフロー図を参照しつつ、上述した作業プログラムの作成におけるツール設定（ステップＳ１２１）について説明する。ツール設定は、［１Ｂ］ツール設定における各種設定（ステップＳ４１）と、［２Ｂ］ツール設定の処理の実行（ステップＳ４２（図示せず））と、［３Ｂ］ツール設定結果の反映（ステップＳ４３）と、を有する。ここで、ツール設定とは、ツール設定における各種設定（表示処理を含む）、ツール設定の処理の実行、および、ツール設定結果を反映することを含む意味である。
【０１８１】
［１Ｂ］ツール設定における各種設定（ステップＳ４１）
まず、制御システム１０は、ユーザーによる操作指示に基づいてツール設定における各種設定を実行する。
【０１８２】
具体的には、まず、ユーザーが図１７に示すメインウィンドウ５０のツール設定用アイコン７０１に対する操作指示を行うと、入力制御部１１５は、その操作指示（ツール設定開始時の指示）を受ける（図２４：ステップＳ４１１）。これにより、制御部１１１は、複数（本実施形態では５つ）のツール設定画面７１（指示画面）をユーザーとの対話形式で表示させるツール設定用の画面群の表示処理を開始し、表示制御部１１４に対して、図２５に示す１個目のツール設定画面７１ａ（ツール設定画面７１）の出力指示を出す（図２４：ステップＳ４１２）。これにより、表示制御部１１４が１個目のツール設定画面７１ａを表示装置４１に表示させる。
【０１８３】
（１個目のツール設定画面）
図２５に示すように、１個目のツール設定画面７１ａは、ツール設定モード（キャリブレーションツールタイプ）を選択するための画面である。ツール設定モードとは、ツール設定の種類、方法のことを示す。すなわち、ツール設定モードとは、どのようなツールのオフセットを設定するか、どのような手段でツール設定を行うかを示す。本実施形態では、ツール設定画面７１ａは、複数のラジオボタン７１１を有し、図２５に示す４つのツール設定モードのうちのいずれか１つを受けることができるよう構成されている。このように、ツール設定画面７１ａが複数のモードから１つの選択を案内する構成であることで、ユーザーは、２種以上のモードを選択することを防ぐことができる。なお、ツール設定モードの種類は、図２５に示す４つのモードに限定されず、他のモードがさらに加わっていても良いし、図２５に示す４つのモードのいずれかが省略されていてもよい。
【０１８４】
また、ツール設定画面７１ａは、上述したローカル設定画面７２ａと同様に、「キャンセル」と表示されたボタン７１０１、「戻る」と表示されたボタン７１０２、「次へ」と表示されたボタン７１０３と、「ティーチ」と表示されたボタン７１０４と、「完了」と表示されたボタン７１０５とを有する。
【０１８５】
このようなツール設定画面７１ａに対して、ユーザーが所望のモードを選択する操作指示を行い、ボタン７１０３に対する操作指示を行うと、入力制御部１１５は、ツール設定モードの選択を受ける（図２４：ステップＳ４１３）。これにより、制御部１１１は、選択されたツール設定モードを記憶部１１３に記憶させ、表示制御部１１４に対して２個目のツール設定画面（図示せず）の出力指示を出す（図２４：ステップＳ４１４）。この出力指示を受け、表示制御部１１４が２個目のローカル設定画面（図示せず）を表示装置４１に表示させる。
【０１８６】
（２個目のツール設定画面）
２個目のツール設定画面は、図示はしないが、ツール設定結果を保存する保存番号（ツール番号）を選択（設定）するための画面である。なお、２個目のツール設定画面は、選択内容（設定内容）が異なる以外、１個目のツール設定画面７１ａとほぼ同様の表示形態である。
【０１８７】
２個目のツール設定画面における保存番号を選択する表示は、例えば、リストボックス等を用いることができる。このような２個目のツール設定画面が、保存番号の選択を受け付ける構成であることで、ユーザーによる入力誤りを防ぐことができる。なお、選択するものは、保存番号に代えて、保存名であってもよい。なお、図示はしないが、２個目のツール設定画面も、１個目のツール設定画面７１ａが備えるボタン７１０１〜７１０５と同様のボタンを有している。
【０１８８】
このような２個目のツール設定画面に対してユーザーが所望の保存番号を選択する操作指示を行った後、「次へ」と表示されたボタン（ボタン７１０３に対応するボタン）の操作指示を行うと、入力制御部１１５は、ツール設定の結果の保存番号の選択を受ける（図２４：ステップＳ４１５）。これにより、制御部１１１は、選択された保存番号を記憶部１１３に記憶させ、表示制御部１１４に対して、図２６に示す３個目のツール設定画面７１ｂ（ツール設定画面７１）の出力指示を出す（図２４：ステップＳ４１６）。この出力指示を受けると、表示制御部１１４が３個目のツール設定画面７１ｂを表示装置４１に表示させる。
【０１８９】
（３個目のツール設定画面）
図２６に示すように、３個目のツール設定画面７１ｂは、各種ビジョンコンポーネントの内容を選択するための画面である。ツール設定におけるビジョンコンポーネントとは、ツール設定においてツールを検出するために用いる撮像部３の種類、画像処理の対象、方法等の要素を示す。本実施形態では、ツール設定画面７１ｂは、図２６に示すように、ツールを検出するために用いる撮像部３、および、ツールを検出するために用いる画像処理シーケンスの２つのビジョンコンポーネントの各内容を選択するよう構成されている。具体的には、ツール設定画面７１ｂは、ビジョンコンポーネントに関する複数の内容（情報）から１つの内容を選択するためのドロップダウンリスト７１２を複数有している。なお、ツール設定におけるビジョンコンポーネントは、上述した２つのビジョンコンポーネントに限定されず、他のビジョンコンポーネントがさらに加わっていても良いし、上述したビジョンコンポーネントのいずれかが省略されていてもよい。
【０１９０】
ここで、３個目のツール設定画面７１ｂの表示内容は、１個目のツール設定画面７１ａの撮像部３の種類（選択）に応じて変わる。具体的には、ドロップダウンリスト７１２の表示内容が、１個目のツール設定画面７１ａの撮像部３の種類（選択）に応じて変わる。例えば、上述した作業プログラムの生成におけるステップＳ１２１では、キャリブレーションしていない固定カメラ３２を用いてツール設定を行う。したがって、入力制御部１１５が１個目のツール設定画面７１ａの図中の上から３個目のラジオボタン７１１の選択を受けると、表示制御部１１４は、固定カメラ３２に関連する表示内容のドロップダウンリスト７１２を有するツール設定画面７１ｂを表示装置４１に表示させる。
【０１９１】
このように、後に表示されるツール設定画面７１ｂには、先に表示されたツール設定画面７１ａにおける選択に応じた限定的な内容が表示させるため、ユーザーによる選択ミスを低減することができる。
【０１９２】
このような３個目のツール設定画面７１ｂに対して、ユーザーが各ビジョンコンポーネントの内容を選択する操作指示を行い、「次へ」と表示されたボタン７１０３を操作指示すると、入力制御部１１５は、各ビジョンコンポーネントの内容の選択を受ける（図２４：ステップＳ４１７）。これにより、制御部１１１は、選択されたビジョンコンポーネントを記憶部１１３に記憶させ、表示制御部１１４に対して４個目のツール設定画面（図示せず）の出力指示を出す（図２４：ステップＳ４１８）。この出力指示を受け、表示制御部１１４が４個目のローカル設定画面（図示せず）を表示装置４１に表示させる。
【０１９３】
（４個目のツール設定画面）
４個目のツール設定画面は、図示はしないが、ツール設定を開始するカメラポイントのティーチングを受ける画面である。なお、４個目のツール設定画面は、選択内容（設定内容）が異なる以外、１個目のツール設定画面７１ａとほぼ同様の表示形態である。また、４個目のツール設定画面も、１個目のツール設定画面７１ａが備えるボタン７１０１〜７１０５と同様のボタンを有している。
【０１９４】
このような４個目のツール設定画面（図示せず）に対して、ユーザーがティーチボタン（グレーアウトが解除されたボタン７１０４に対応するボタン）を操作指示すると、入力制御部１１５は、その操作指示を受ける（図２４：ステップＳ４１９）。これにより、制御部１１１は、表示制御部１１４に対してティーチング用の画面（図示せず）の出力指示を出す（図２４：ステップＳ４２０）。この出力指示を受け、表示制御部１１４がティーチング用の画面を表示装置４１にポップアップ表示させる。なお、このティーチング用の画面は、上述したローカル設定におけるティーチング用の画面７２０と同様の表示態様である（図２４参照）。
【０１９５】
このティーチング用の画面を用いて、ユーザーは、撮像画像の中心付近に例えばツールとしてのハンド２７０が把持しているワーク９３に付されたマーカー（ターゲット）を位置させる指示（操作指示）を行う。入力制御部１１５がこのユーザーの指示を受けると、制御部１１１は、その指示に基づいて、ロボット制御装置１２に対してハンド２７０を移動させる移動指示を出し、画像処理装置１３に撮像部３でマーカーを撮像させる撮像指示を出す（図２４：ステップＳ４２１）。次いで、マーカーが撮像画像の中心付近に位置した後、入力制御部１１５が、このユーザーによるティーチボタン（７１０４に対応するボタン）の操作指示を受ける。これにより、制御部１１１は、マーカーが撮像画像の中心に位置しているときのロボット２ａの先端軸座標をツール設定開始時のカメラポイントとして設定する（図２４：ステップＳ４２２）。また、制御部１１１は、記憶部１１３にカメラポイントを記憶させる。その後、制御部１１１は、表示制御部１１４に対してティーチング用の画面を消去させる指示を出し、表示制御部１１４は、表示装置４１からティーチング用の画面を消去させる。
【０１９６】
次に、ユーザーが上述した４個目のツール設定画面（図示せず）の「次へ」と表示されたボタン（ボタン７１０３に対応）に対する操作指示を行うと、入力制御部１１５は、このユーザーによる選択を受ける（図２４：ステップＳ４２３）。次いで、制御部１１１は、表示制御部１１４に対して５個目のツール設定画面７１ｃの出力指示を出す（図２４：ステップＳ４２４）。これにより、表示制御部１１４が５個目のツール設定画面７１ｃを表示装置４１に表示させる。
【０１９７】
（５個目のツール設定画面）
図２７に示すように、５個目のツール設定画面７１ｃは、ツール設定を自動で実行するための各種パラメーターの内容を選択するための画面である。本実施形態では、ツール設定画面７１ｃは、図２７に示すように、初期回転、最終回転、ターゲットの許容量、最大移動距離およびＬＪＭモードの５つのパラメーターの各内容を選択するよう構成されている。具体的には、ツール設定画面７１ｃは、パラメーターに関する内容を入力するためのテキストボックス７１３やパラメーターに関する複数の内容（情報）から１つの内容を選択するためのドロップダウンリスト７１４を有している。なお、パラメーターは、上述した５つのパラメーターに限定されず、他のパラメーターがさらに加わっていても良いし、上述したパラメーターのいずれかが省略されていてもよい。
【０１９８】
また、ツール設定画面７１ｃは、１個目のツール設定画面７１ａと同様に、ボタン７１０１〜７１０５を有している。また、ツール設定画面７１ｃは、「実行」と表示されたボタン７１０６を有する。
【０１９９】
このようなツール設定画面７１ｃに対して、ユーザーが各種パラメーターの内容を選択する操作指示を行い、「実行」と表示されたボタン７１０６を操作指示すると、入力制御部１１５は、各パラメーターの内容の選択と、ユーザーからのツール設定の実行指示を受ける（図２４：ステップＳ４２５）。これにより、制御部１１１は、選択されたパラメーターの内容を記憶部１１３に記憶させ、ロボット制御装置１２および画像処理装置１３に対してツール設定を行う実行指示を出す（図２４：ステップＳ４２６）。以上のようにして、ツール設定の表示処理によるツール設定の各種設定が完了する。
【０２００】
［２Ｂ］ツール設定の処理の実行（ステップＳ４２）
次に、制御システム１０は、ツール設定の処理を実行する。
【０２０１】
具体的には、ロボット制御装置１２および画像処理装置１３は、ステップＳ４２５の制御部１１１からの実行指示に基づいてツール設定の処理を実行する。
【０２０２】
まず、ロボット制御装置１２は、実行指示を受信すると、ロボット２ａの状態をロボット２ａから取得する。次いで、ロボット制御装置１２は、ツール設定を行うよう、ワーク９３に付されたマーカーを固定カメラ３２で撮像できるように、ロボット２ａに対して移動指示を出す。ここでは、例えば撮像画像の中心にマーカーが位置するように移動指示を出す。この際、ロボット２ａは、ロボット制御装置１２に対して都度ロボットアーム２０の移動に関する情報（位置センサーの値）等を返却する。次に、ロボット制御装置１２は、画像処理装置１３に対して画像処理シーケンスの実行指示を出す。画像処理装置１３は、その実行指示を受信し、固定カメラ３２でマーカーを検出し、画像処理シーケンスを実行する。ここでは、上述したツール設定画面７１ｂにより受け付けた画像処理シーケンスを実行する。画像処理装置１３は、画像処理シーケンスを実行して、固定カメラ３２でマーカーを撮像した撮像画像（画像データ）を基に画像処理を行う。次に、ロボット制御装置１２は、例えば撮像画像の中心を回動中心として軸座標を回動させるようロボット２ａに対して移動指示を出す。次いで、画像処理装置１３は、その実行指示を受信し、固定カメラ３２でマーカーを検出し、画像処理シーケンスを実行する。なお、ロボット制御装置１２は、上述の処理の他に、例えば、マーカーを軸座標に対して回動させる操作してもよく、また、軸座標をさらに回動させてもよい。次に、画像処理装置１３は、ロボット制御装置１２に画像処理シーケンスの実行結果（マーカーの検出結果）を送信する。次いで、ロボット制御装置１２は、取得したマーカーの検出結果や、撮像したときのロボット座標等を基に、オフセットを計算する。そして、ロボット制御装置１２は、コンピューター１１に対してツール設定の結果を送信する。なお、上述したように、ツール設定の実行内容等について、具体的な方法は特に限定されない。記憶部１１３には、各種設定ごとに処理（プログラム）が記憶されており、制御部１１１は、選択された設定に応じた処理（プログラム）を実行する。
【０２０３】
［３Ｂ］ツール設定結果の反映（ステップＳ４３）
次に、制御システム１０は、ツール設定結果を反映および設定を実行する。
【０２０４】
具体的には、まず、コンピューター１１の通信部１１６は、ツール設定の結果を受信すると（図２４：ステップＳ４２７）、制御部１１１は、表示制御部１１４に対してツール設定の結果を表示する画面の出力指示を出す（図２４：ステップＳ４２８）。これにより、表示制御部１１４は、ツール設定の結果が表示された画面を表示装置４１に表示させる。この画面は、図示はしないが、ユーザーがツール設定の結果を反映させるか否かを選択できるよう構成されている。
【０２０５】
入力制御部１１５がユーザーによるツール設定の結果を反映させる選択を受け付けると（図２４：ステップＳ４２９）、制御部１１１は、ロボット制御装置１２に対してツール設定の結果を反映して記憶する指示を出す（図２４：ステップＳ４３０）。この指示を受け、ロボット制御装置１２は、ツール設定を反映させて記憶する。
【０２０６】
一方、ユーザーが、ツール設定の結果を反映しないことを選択すると、図２４には図示しないが、制御部１１１は、例えば、［１Ｂ］ツール設定における各種設定（ステップＳ４１）と、［２Ｂ］ツール設定の処理の実行（ステップＳ４２）とを再度行う。なお、少なくとも、［２Ｂ］ツール設定の処理の実行（ステップＳ４２）を再度行えばよい。このようにして、必要に応じて、［２Ｂ］ツール設定の処理の実行（ステップＳ４２）等を繰り返し行うことで、ツール設定結果の精度を高めることができる。
【０２０７】
以上説明したツール設定では、上述したように、［１Ｂ］ツール設定における各種設定において、表示制御部１１４は、複数（本実施形態では５つ）のツール設定画面７１をユーザーとの対話形式で表示させるツール設定用の画面群を表示させる。そして、ユーザーは、複数のツール設定画面７１を用いて制御システム１０に対して各種設定の指示を行う。これにより、ユーザーは、所定の順序に沿って、対話形式で設定内容（情報）を選択することができるため、複雑な操作が無く簡単かつ手軽にツール設定における各種設定を完了することができる。そのため、従来のように各種設定をプログラミングする手間を省くことができる。また、ツール設定において必要な設定内容が表示されることで、初心者であってもツール設定に必要な設定内容の設定不足が生じることを低減でき、ツール設定の実行において例えばエラー等が生じることを低減できる。
【０２０８】
なお、上述したように、ツール設定用の画面群は、５つのツール設定画面７１を有していたが、ツール設定画面７１の数はこれに限定されない。他のツール設定画面がさらに加わっていてもよいし、５つのツール設定画面７１のうちのいずれかが省略されていてもよい。また、５つのツール設定画面７１が表示される順序は、上述した順序に限定されず、任意である。ただし、後に表示されるツール設定画面７１の表示内容が、先に表示されたツール設定画面７１の選択内容に応じて変わることが好ましい。すなわち、後に表示されるツール設定画面７１の表示内容は、先に表示されたツール設定画面７１の選択内容に応じた限定的な内容であることが好ましい。したがって、上述したツール設定画面７１ａの後に、ツール設定画面７１ｂが表示されるよう設定されていることが好ましい。また、上述した５つのツール設定画面７１が、説明した通りの順番で表示されることで、ユーザーは、設定内容を特に把握し易いため、ユーザーにとっての利便性を高めることができる。
【０２０９】
次に、上述した作業プログラムにおけるキャリブレーションおよびそのキャリブレーションにおける表示処理について説明する。
【０２１０】
＜キャリブレーション作成および表示処理＞
図２８および図２９は、それぞれ、図９に示すキャリブレーションの流れを示すフロー図である。図３０〜図３７は、それぞれ、図１に示す表示装置に表示されるキャリブレーション作成画面である。図３８は、図１に示す表示装置に表示されるティーチング用の画面である。図３９は、図１８に示すサブウィンドウにプロパティー設定ウィンドウが表示された状態を示す図である。図４０および図４１は、図１８に示すサブウィンドウにティーチングのフローが表示された状態を示す図である。図４２は、図１８に示すサブウィンドウにおいてキャリブレーション実行ボタンが表示された状態を示す図である。図４３は、図２９に示すステップＳ５４５において表示装置に表示される画面である。
【０２１１】
以下、図２８および図２９に示すフロー図を参照しつつ、上述した作業プログラムの作成におけるキャリブレーション（ステップＳ１２２、Ｓ１２７）について説明する。キャリブレーションは、主に、［１Ｃ］キャリブレーションにおける各種設定（ステップＳ５１）と、［２Ｃ］カメラポイントのティーチング（ステップＳ５２）と、［３Ｃ］キャリブレーションの実行（ステップＳ５３（図示せず））と、［４Ｃ］キャリブレーション結果の反映（ステップＳ５４）と、を有する。ここで、上述したように、キャリブレーションとは、キャリブレーションにおける各種設定（表示処理を含む）すなわちキャリブレーション作成、カメラポイントや基準点のティーチング、キャリブレーションの実行、および、キャリブレーション結果を反映することにより撮像部３の座標系（画像座標系）とロボット座標系とを対応付けることを含む意味である。
【０２１２】
［１Ｃ］キャリブレーションにおける各種設定（ステップＳ５１）
まず、制御システム１０は、ユーザーによる操作指示に基づいてキャリブレーションにおける各種設定、すなわちキャリブレーションの作成を実行する。
【０２１３】
具体的には、まず、ユーザーが図１７に示すメインウィンドウ５０のキャリブレーション作成用アイコン７０３に対する操作指示を行うと、入力制御部１１５は、その操作指示（キャリブレーションの作成開始の指示）を受ける（図２８：ステップＳ５１１）。これにより、制御部１１１は、複数（本実施形態では１０個）のキャリブレーション作成画面７３（指示画面）をユーザーとの対話形式で表示させるキャリブレーション作成用の画面群の表示処理を開始し、表示制御部１１４に対して、図３０に示す１個目のキャリブレーション作成画面７３ａ（キャリブレーション作成画面７３）の出力指示を出す（図２８：ステップＳ５１２）。これにより、表示制御部１１４が１個目のキャリブレーション作成画面７３ａを表示装置４１に表示させる。
【０２１４】
（１個目のキャリブレーション作成画面）
図３０に示すように、１個目のキャリブレーション作成画面７３ａは、これから設定するキャリブレーション名の設定、および、キャリブレーションの対象とする撮像部３の種類を選択するための画面である。本実施形態では、キャリブレーション作成画面７３ａは、キャリブレーション名を選択するためのドロップダウンリスト７３１１と、撮像部３を選択するためのドロップダウンリスト７３１２と、コピー元のキャリブレーションを選択するためのドロップダウンリスト７３１３と、を有している。
【０２１５】
既に設定されたキャリブレーションが保存されている場合には、ドロップダウンリスト７３１３を用いることで、コピー元のキャリブレーションの設定をコピーすることができる。これにより、キャリブレーション作成画面７３ａ以後に表示される複数のキャリブレーション作成画面７３には、コピー元のキャリブレーションの設定内容が表示される。したがって、ユーザーは、既に設定されたキャリブレーションの各種内容を少しだけ修正して新しいキャリブレーションを作成したい場合に、コピー元のキャリブレーションを指定することで、修正を簡単に行うことができる。
【０２１６】
また、キャリブレーション作成画面７３ａは、上述したローカル設定画面７２ａと同様に、「キャンセル」と表示されたボタン７３０１、「戻る」と表示されたボタン７３０２、「次へ」と表示されたボタン７３０３と、「完了」と表示されたボタン７３０４とを有する。
【０２１７】
このようなキャリブレーション作成画面７３ａに対して、ユーザーがキャリブレーション名の入力等を行う操作指示を行い、ボタン７３０３に対する操作指示を行うと、入力制御部１１５は、キャリブレーション名の入力等を受ける（図２８：ステップＳ５１３）。これにより、制御部１１１は、キャリブレーション名等を記憶部１１３に記憶させ、表示制御部１１４に対して、図３１または図３２に示す２個目のキャリブレーション作成画面の出力指示を出す（図２８：ステップＳ５１４）。この出力指示を受け、表示制御部１１４が２個目のキャリブレーション作成画面７３ｂ（キャリブレーション作成画面７３）を表示装置４１に表示させる。
【０２１８】
（２個目のキャリブレーション作成画面）
図３１または図３２に示すように、２個目のキャリブレーション作成画面７３ｂは、スタンドアローンカメラまたはロボットカメラを選択するための画面であり、スタンドアローンカメラおよびロボットカメラのいずれか一方の選択を受ける２つのラジオボタン７３２１を有する。「スタンドアローンカメラの選択」は、実空間における座標系と撮像部３の座標系（画像座標系）とを対応付けるキャリブレーションを行うことである。「ロボットカメラの選択」は、撮像部３の座標系（画像座標系）とロボット２の座標系とを対応付けるキャリブレーションを実行することである。
【０２１９】
また、キャリブレーション作成画面７３ｂは、複数のロボット２の種類から１つのロボット２を選択するためのドロップダウンリスト７３２２と、撮像部３の取付箇所の選択を受けるグループ７３２３（領域）とを有する。ここで、本明細書において、撮像部３の取付箇所とは、撮像部３が設置されている設置箇所と、撮像部３の撮像方向（向き）とを含む。
【０２２０】
本実施形態では、ドロップダウンリスト７３２２の表示内容は、垂直多関節ロボットとしてのロボット２ａおよび水平多関節ロボットとしてのロボット２ｂである。キャリブレーション作成画面７３ｂは、これらロボット２ａ、２ｂのいずれかを選択できるよう構成されている。また、本実施形態では、グループ７３２３は、４つのラジオボタン７３２４を有し、図３１または図３２に示す４つの撮像部３の取付箇所のうちのいずれか１つを受け付けることができるよう構成されている。これにより、ユーザーは、２種以上の取付箇所を選択することを防ぐことができる。なお、このロボット２の種類の選択および撮像部３の取付箇所の選択は、ロボットカメラを選択した場合に用いられる。
【０２２１】
ここで、２個目のキャリブレーション作成画面７３ｂの表示内容が、ロボット２の選択内容（種類）に応じて変わる。具体的には、２個目のキャリブレーション作成画面７３ｂのグループ７３２３の取付箇所が、ロボット２の選択内容に応じて変わる（図３１および図３２参照）。例えば、入力制御部１１５が垂直多関節ロボットとしてのロボット２ａの選択を受けると、表示制御部１１４は、ロボット２ａに関連する取付箇所を有するグループ７３２３を表示装置４１に表示させる（図３１参照）。また、例えば、入力制御部１１５が水平多関節ロボットとしてのロボット２ｂの選択を受けると、表示制御部１１４は、ロボット２ｂに関連する取付箇所を有するグループ７３２３を表示装置４１に表示させる（図３２参照）。
【０２２２】
例えば、上述した作業プログラムの生成におけるステップＳ１２２では、垂直多関節ロボットとしてのロボット２ａのロボット座標系と固定カメラ３２の画像座標系とのキャリブレーションを行う。したがって、入力制御部１１５がロボット２ａの選択を受けると、表示制御部１１４は、キャリブレーション作成画面７３ｂにおいて、図３１に示すようなロボット２ａに関連する取付箇所を有するグループ７３２３を表示装置４１に表示させる。
【０２２３】
このように、グループ７３２３の表示内容すなわち撮像部３の設置箇所等の情報が、ロボット２の種類によって限定的に表示されることで、ユーザーによる選択ミスを低減することができる。
【０２２４】
このような２個目キャリブレーション作成画面７３ｂに対して、上述したようにユーザーが所望のロボット２および撮像部３の取付箇所を選択する操作指示を行い、「次へ」と表示されたボタン７３０３に対する操作指示を行うと、入力制御部１１５は、ロボット２および撮像部３の設置箇所の選択を受ける（図２８：ステップＳ５１５）。これにより、制御部１１１は、選択された撮像部３の設置箇所を記憶部１１３に記憶させ、表示制御部１１４に対して、図３３に示す３個目のキャリブレーション作成画面７３ｃの出力指示を出す（図２８：ステップＳ５１６）。この出力指示を受け、表示制御部１１４が３個目のキャリブレーション作成画面７３ｃを表示装置４１に表示させる。
【０２２５】
ここで、以下では、ステップＳ１２２におけるキャリブレーションの設定を中心に説明する。すなわち、固定カメラ３２に関するキャリブレーションについて中心に説明する。したがって、以下では、上述した図３１のキャリブレーション作成画面７３ｂにおいて、ユーザーによって、ロボット２ａが選択され、上向きの固定カメラ３２（固定上向き:Fixed upward）が選択されたものとして説明する。また、以下に説明する３〜１０個目のキャリブレーション作成画面７３には、キャリブレーション作成画面７３ａ、７３ｂの選択内容に応じた内容が表示される。したがって、３〜１０個目のキャリブレーション作成画面７３には、上向きの固定カメラ３２に対応した内容が表示される。
【０２２６】
（３個目のキャリブレーション作成画面）
図３３に示すように、３個目のキャリブレーション作成画面７３ｃは、ターゲットシーケンスの内容を選択するための画面である。ターゲットシーケンスとは、キャリブレーションの実行時に撮像部３によって撮像するマーカー等のターゲットに関する画像処理シーケンスのことを示す。本実施形態では、キャリブレーション作成画面７３ｃは、複数のターゲットシーケンスの種類から１つのターゲットシーケンスを選択するためのドロップダウンリスト７３３を有している。
【０２２７】
ドロップダウンリスト７３３の表示内容は、１個目のキャリブレーション作成画面７３ａの撮像部３の種類（選択）に応じて変わる。例えば、入力制御部１１５が１個目のキャリブレーション作成画面７３ａにおいて固定カメラ３２の選択を受けると、表示制御部１１４は、固定カメラ３２に関連する表示内容のドロップダウンリスト７３３を有するキャリブレーション作成画面７３ｃを表示装置４１に表示させる。なお、１個目のキャリブレーション作成画面７３ａにおいてモバイルカメラ３１を選択した場合、ドロップダウンリスト７３３には、モバイルカメラ３１に関連する内容が表示される。このように、後に表示されるキャリブレーション作成画面７３ｃのドロップダウンリスト７３３の表示内容が、先に表示されたキャリブレーション作成画面７３ａにおける選択に対応した限定的な内容であることで、ユーザーによる選択ミスを低減することができる。
【０２２８】
このようなキャリブレーション作成画面７３ｃに対して、ユーザーがターゲットシーケンスを選択する操作指示を行い、「次へ」と表示されたボタン７３０３を操作指示すると、入力制御部１１５は、ターゲットシーケンスの選択を受ける（図２８：ステップＳ５１７）。これにより、制御部１１１は、選択されたターゲットシーケンスを記憶部１１３に記憶させる。また、このとき、制御部１１１は、選択されたターゲットシーケンスと現在設定しているキャリブレーションとを関連付けて記憶部１１３に記憶させる。また、制御部１１１は、表示制御部１１４に対して、図３４に示す４個目のキャリブレーション作成画面７３ｄ（キャリブレーション作成画面７３）の出力指示を出す（図２８：ステップＳ５１８）。この出力指示を受け、表示制御部１１４が４個目のキャリブレーション作成画面７３ｄを表示装置４１に表示させる。
【０２２９】
（４個目のキャリブレーション作成画面）
図３４に示すように、４個目のキャリブレーション作成画面７３ｄは、キャリブレーションで画像座標と対応付けるローカル座標系（ロボットローカル）を選択するための画面である。本実施形態では、キャリブレーション作成画面７３ｄは、ローカル設定の保存番号を選択するためのドロップダウンリスト７３４２と、ローカルウィザードボタン７３４１とを有する。
【０２３０】
ドロップダウンリスト７３４２には、既に設定されているローカル設定の保存番号と、これから設定して保存するローカル設定の保存番号（未設定であるローカル設定の保存番号）とが表示される。また、ローカルウィザードボタン７３４１は、上述した複数のローカル設定画面７２を有するローカル設定用の画面群を起動させるために用いられる。
【０２３１】
このようなキャリブレーション作成画面７３ｄに対して、例えば、ユーザーが、ローカルウィザードボタン７３４１に対する操作指示を行わずに、ドロップダウンリスト７３４２から設定済みであるローカル設定の保存番号を選択する操作指示を行い、「次へ」と表示されたボタン７３０３に対する操作指示を行うと、入力制御部１１５は、ローカル設定の保存番号の選択を受ける（図２８：ステップＳ５１９）。これにより、制御部１１１は、ローカル設定を行わないと判断し（図２８：ステップＳ５２０）、選択されたローカル座標系を記憶部１１３に記憶させ、表示制御部１１４に対して図３５に示す５個目のキャリブレーション作成画面７３ｅ（キャリブレーション作成画面７３）の出力指示を出す（図２８：ステップＳ５２２）。この出力指示を受け、表示制御部１１４が５個目のキャリブレーション作成画面７３ｅを表示装置４１に表示させる。
【０２３２】
一方、キャリブレーション作成画面７３ｄに対して、ユーザーがドロップダウンリスト７３４２から未設定であるローカル設定の保存番号を選択し、ローカルウィザードボタン７３４１に対する操作指示を行うと、入力制御部１１５は、このユーザーによる操作指示を受ける（図２８：ステップＳ５１９）。これにより、制御部１１１は、ローカル設定を行うと判断したら（図２８：ステップＳ５２０）、上述したローカル設定に移行し、複数のローカル設定画面７２を有するローカル設定用の画面群を起動させる（図２８：ステップＳ５２１）。次いで、上述したローカル設定が終了した後、入力制御部１１５がユーザーによるキャリブレーション作成画面７３ｄの「次へ」と表示されたボタン７３０３に対する操作指示を受けると、制御部１１１は、設定したローカル設定を記憶部１１３に記憶させ、表示制御部１１４に対して図３５に示す５個目のキャリブレーション作成画面７３ｅの出力指示を出す（図２８：ステップＳ５２２）。
【０２３３】
（５個目のキャリブレーション作成画面）
図３５に示すように、５個目のキャリブレーション作成画面７３ｅは、キャリブレーションの実行時に用いる基準点の取得タイプの設定（選択）を受ける画面である。上向きカメラ（固定カメラ３２）のキャリブレーションの場合は、基準点の取得タイプとしてエンドエフェクターのみが選択できる。すなわち上向きキャリブレーションでは、エンドエフェクターに付されたマーカー等のターゲットのローカル座標（ロボット座標）と、そのターゲットが検出された画像座標を対応付ける。キャリブレーション作成画面７３ｅは、エンドエフェクターに付されたターゲットのロボット２ａの先端軸座標におけるオフセットを保持するツール設定（ロボットツール）の設定を受ける画面である。
【０２３４】
キャリブレーション作成画面７３ｅは、エンドエフェクターの選択を受けるラジオボタン７３５３と、ツール設定の保存番号を選択するためのドロップダウンリスト７３５２と、ツールウィザードボタン７３５１と、２つの基準点を用いることを受けるチェックボックス７３５４と、を有する。
【０２３５】
ラジオボタン７３５３は、固定カメラ３２に関するキャリブレーションを行う場合に表示される。また、ドロップダウンリスト７３５２には、既に設定されているツール設定の保存番号と、これから設定して保存するツール設定の保存番号（未設定であるツール設定の保存番号）とが表示される。本実施形態では、エンドエフェクターとしてのハンド２７０に設けられたターゲットに限らず、例えばハンド２７０が把持しているワークに付されたターゲットを基準点として設定することができる。ドロップダウンリスト７３５２では、ターゲットとする基準点のロボット２ａの先端軸座標におけるオフセットを保持するツール設定の保存番号を選択する。また、ツールウィザードボタン７３５１は、前述のターゲットとする基準点のツール設定がまだ未設定の場合に、上述した複数のツール設定画面７１を有するツール設定用の画面群を起動してツール設定するために用いられる。
【０２３６】
このようなキャリブレーション作成画面７３ｅに対して、例えば、ユーザーが、ツールウィザードボタン７３５１に対する操作指示を行わずに、ドロップダウンリスト７３５２から設定済みである基準点の取得タイプ（エンドエフェクターとツール設定の保存番号）を選択する操作指示を行い、「次へ」と表示されたボタン７３０３に対する操作指示を行うと、入力制御部１１５は、基準点の取得タイプ（エンドエフェクターとツール設定の保存番号）の選択を受ける（図２８：ステップＳ５２３）。これにより、制御部１１１は、ツール設定を行わないと判断し（図２８：ステップＳ５２４）、選択されたツール設定を記憶部１１３に記憶させ、表示制御部１１４に対して、図３６に示す６個目のキャリブレーション作成画面７３ｆ（キャリブレーション作成画面７３）の出力指示を出す（図２８：ステップＳ５２６）。この出力指示を受け、表示制御部１１４が６個目のキャリブレーション作成画面７３ｆを表示装置４１に表示させる。
【０２３７】
一方、キャリブレーション作成画面７３ｅに対して、ユーザーがドロップダウンリスト７３５２から未設定であるツール設定の保存番号を選択し、ツールウィザードボタン７３５１に対する操作指示を行うと、入力制御部１１５は、このユーザーによる操作指示を受ける（図２８：ステップＳ５２３）。これにより、制御部１１１は、ツール設定を行うと判断したら（図２８：ステップＳ５２４）、上述したツール設定に移行し、複数のツール設定画面７１を有するツール設定用の画面群を起動させる（図２８：ステップＳ５２５）。次いで、上述したツール設定が終了した後、入力制御部１１５がユーザーによるキャリブレーション作成画面７３ｅの「次へ」と表示されたボタン７３０３に対する操作指示を受けると、制御部１１１は、設定したツール設定を記憶部１１３に記憶させ、表示制御部１１４に対して図３６に示す６個目のキャリブレーション作成画面７３ｆの出力指示を出す（図２８：ステップＳ５２６）。
【０２３８】
（６個目のキャリブレーション作成画面）
図３６に示すように、６個目のキャリブレーション作成画面７３ｆは、カメラポイントの自動生成を行うか否かを選択するための画面であり、チェックボックス７３６を有する。カメラポイントとは、撮像画像内にあるポイントであり、キャリブレーションの実行の際にターゲット（基準点）または撮像部３を位置させるポイントである。このカメラポイントの数は特に限定されないが、３つ以上であることが好ましく、本実施形態では、９つ設定する。
【０２３９】
このようなキャリブレーション作成画面７３ｆに対して、ユーザーがチェックボックス７３６にチェックを入れ、「次へ」と表示されたボタン７３０３の操作指示を行うと、入力制御部１１５は、カメラポイントの自動生成を行うという選択を受ける（図２８：ステップＳ５２７）。一方、ユーザーがチェックボックス７３６にチェックを入れずに、「次へ」と表示されたボタン７３０３の操作指示を行うと、入力制御部１１５は、カメラポイントの自動生成を行わないという選択を受ける（図２８：ステップＳ５２７）。そして、制御部１１１は、カメラポイントの自動生成の有無を記憶部１１３に記憶させ、表示制御部１１４に対して７個目のキャリブレーション作成画面（図示せず）の出力指示を出す（図２８：ステップＳ５２８）。この出力指示を受け、表示制御部１１４が７個目のキャリブレーション作成画面を表示装置４１に表示させる。
【０２４０】
（７個目のキャリブレーション作成画面）
７個目のキャリブレーション作成画面は、図示はしないが、撮像部３のレンズの歪み補正を行うか否かの選択、および、歪み補正を行う場合の画像処理シーケンスを設定するための画面である。なお、この７個目のキャリブレーション作成画面は、選択内容（設定内容）が異なる以外、１個目のキャリブレーション作成画面７３ａとほぼ同様の構成である。
【０２４１】
このような７個目のキャリブレーション作成画面（図示せず）に対して、ユーザーがレンズの歪み補正の有無を選択し、歪み補正する場合には画像処理シーケンスを選択し、「次へ」と表示されたボタン７３０３に対する操作指示を行うと、入力制御部１１５は、レンズの歪み補正の有無を受ける（図２８：ステップＳ５２９）。制御部１１１は、レンズの歪み補正の有無を記憶部１１３に記憶させ、表示制御部１１４に対して８個目のキャリブレーション作成画面（図示せず）の出力指示を出す（図２８：ステップＳ５３０）。この出力指示を受け、表示制御部１１４が８個目のキャリブレーション作成画面を表示装置４１に表示させる。
【０２４２】
（８個目のキャリブレーション作成画面）
８個目のキャリブレーション作成画面は、図示はしないが、キャリブレーションを実行する際の照明を設定するための画面である。８個目のキャリブレーション作成画面では、例えば、照明がオンするまでの待機時間や照明をオンする出力ビット等を設定することができる。なお、この８個目のキャリブレーション作成画面は、選択内容（設定内容）が異なる以外、１個目のキャリブレーション作成画面７３ａとほぼ同様の構成である。
【０２４３】
このような８個目のキャリブレーション作成画面（図示せず）に対して、照明を設定し、「次へ」と表示されたボタン７３０３の操作指示を行うと、入力制御部１１５は、照明の設定を受ける（図２８：ステップＳ５３１）。制御部１１１は、照明の設定を記憶部１１３に記憶させ、表示制御部１１４に対して、図３７に示す９個目のキャリブレーション作成画面７３ｇ（キャリブレーション作成画面７３）の出力指示を出す（図２９：ステップＳ５３２）。この出力指示を受け、表示制御部１１４が９個目のキャリブレーション作成画面を表示装置４１に表示させる。
【０２４４】
（９個目のキャリブレーション作成画面）
図３７に示すように、９個目のキャリブレーション作成画面７３ｇは、キャリブレーション中のロボット動作に関する各種パラメーターの内容を選択するための画面である。本実施形態では、キャリブレーション作成画面７３ｇは、図３７に示すように、ロボットスピード（ロボット２の所定の部位の移動速度）、ロボット加速度（ロボット２の所定の部位の移動加速度）、および、モーションディレイ（ロボット２の所定の部位が停止した後何秒後に撮像するか）の３つのパラメーターの各内容を選択するよう構成されている。具体的には、キャリブレーション作成画面７３ｇは、パラメーターに関する内容（情報）を入力するためのテキストボックス７３７１を複数有している。なお、パラメーターは、上述した３つのパラメーターに限定されず、他のパラメーターがさらに加わっていても良いし、上述したパラメーターのいずれかが省略されていてもよい。
【０２４５】
また、キャリブレーション作成画面７３ｇは、アプローチポイントの使用の有無を選択するチェックボックス７３７２と、ティーチボタン７３７３とを有する。アプローチポイントとは、キャリブレーションの実行時にけるカメラポイントの移動の基点となる箇所である。アプローチポイントを使用することで、キャリブレーション実行時において、ロボット２の所定の部位を、常にアプローチポイントからカメラポイントへと移動させることとなる。そのため、ロボット２のカメラポイントでの位置の安定性を高めることができ、その結果、キャリブレーション結果の精度をより高めることができる。
【０２４６】
このようなキャリブレーション作成画面７３ｇに対して、例えば、ユーザーがチェックボックス７３７２にチェックを入れ、ティーチボタン７３７３に対する操作指示をすると、入力制御部１１５は、このユーザーによる操作指示を受ける。これにより、制御部１１１は、アプローチポイントの設定を行うと判断し（図２９：ステップＳ５３３）、表示制御部１１４に対してアプローチポイントを設定するための画面７３０の出力指示を出す（図２９：ステップＳ５３４）。これにより、表示制御部１１４が画面７３０を表示装置４１にポップアップ表示させる。
【０２４７】
図３８に示すように、画面７３０は、アプローチポイントの文字列（ロボット座標）を入力するための画面である。また、画面７３０は、ＯＫボタン７３０５と、キャンセルボタン７３０６と、ジョグ動作の操作指示を受ける画面（図示せず）を表示させるために用いられるボタン７３０７（ジョグ＆ティーチボタン）を有する。入力制御部１１５が、ボタン７３０７の選択を受けると、表示制御部１１４は、制御部１１１の制御の下、図示はしないが、ジョグ動作の操作指示を受ける画面（図２２に示す画面７２０に対応する画面）を表示装置４１に表示させる。これにより、ユーザーは、文字列を入力する代わりに、ジョグ動作の操作指示を行うことによりアプローチポイントを設定することができる。
【０２４８】
このような画面７３０およびジョグ動作の操作指示を受ける画面（図示せず）を用いて、ユーザーがアプローチポイントの設定を行い、画面７３０のＯＫボタン７３０５に対する操作指示を行うと、入力制御部は、アプローチポイントの設定を受け付ける（図２９：ステップＳ５３５）。これにより、制御部１１１は、アプローチポイントを記憶部１１３に記憶させ、表示制御部１１４に対して画面７３０を消去させる指示を出し、表示制御部１１４は、表示装置４１から画面７３０を消去させる。
【０２４９】
次いで、ユーザーが図３７に示すキャリブレーション作成画面７３ｇの「次へ」と表示されたボタン７３０３に対する操作指示を行うと、入力制御部１１５は、その操作指示を受ける。これにより、制御部１１１は、表示制御部１１４に対して１０個目のキャリブレーション作成画面（図示せず）の出力指示を出す（図２９：ステップＳ５３６）。この出力指示を受け、表示制御部１１４が１０個目のキャリブレーション作成画面を表示装置４１に表示させる。
【０２５０】
なお、ユーザーが、キャリブレーション作成画面７３ｇに対して、チェックボックス７３７２にチェックを入れずに、「次へ」と表示されたボタン７３０３に対する操作指示を行うと、入力制御部１１５は、このユーザーによる操作指示を受ける。これにより、制御部１１１は、アプローチポイントの設定を行なわないと判断し（図２９：ステップＳ５３３）、表示制御部１１４に対して１０個目のキャリブレーション作成画面（図示せず）の出力指示を出す（図２９：ステップＳ５３６）。
【０２５１】
（１０個目のキャリブレーション作成画面）
１０個目のキャリブレーション作成画面は、図示はしないが、１〜９個目のキャリブレーション作成画面で設定した内容が列記されている画面である。なお、この１０個目のキャリブレーション作成画面は、選択内容（設定内容）が異なる以外、１個目のキャリブレーション作成画面７３ａとほぼ同様の構成である。このような１０個目のキャリブレーション作成画面を視認することにより、ユーザーは、一目でキャリブレーションの設定内容を確認することができる。
【０２５２】
また、１０個目のキャリブレーション作成画面は、１個目のキャリブレーション作成画面７３ａと同様に、ボタン７３０１〜７３０４に対応するボタンを有している。したがって、入力制御部１１５が「戻る」と表示されたボタンに対する操作指示を受け付けると、制御部１１１は、再度設定をやり直す。また、入力制御部１１５が「キャンセル」と表示されたボタンに対する操作指示を受けると、制御部１１１は、設定したキャリブレーションを破棄する。また、入力制御部１１５が「完了」と表示されたボタンに対する操作指示を受けると、制御部１１１は、１〜１０個のキャリブレーション作成画面を用いた表示処理により設定したキャリブレーションを記憶部１１３に記憶させる。
【０２５３】
なお、入力制御部１１５が「キャンセル」と表示されたボタンまたは「完了」と表示されたボタンに対する操作指示を受けると、制御部１１１は、キャリブレーション作成用の画面群の表示処理を終了し、表示制御部１１４に対してキャリブレーション作成画面７３を表示装置４１から消去させる指示を出す。これにより、表示制御部１１４は、キャリブレーション作成画面７３を表示装置４１から消去させる。
【０２５４】
以上により、キャリブレーションの表示処理によるキャリブレーションの各種設定（キャリブレーションの作成）が完了する。
【０２５５】
［２Ｃ］カメラポイントのティーチング（ステップＳ５２）
次に、制御システム１０は、複数のカメラポイントのティーチングを実行する。
【０２５６】
上述したように、入力制御部１１５がユーザーによる「完了」と表示されたボタンに対する操作指示を受けると（図２９：ステップＳ５３７）、制御部１１１は、表示制御部１１４に対して、キャリブレーション作成画面７３を表示装置４１から消去させる指示を出すとともに、プロパティー設定ウィンドウ６０を有するサブウィンドウ６１の出力指示を出す（図２９：ステップＳ５３８）。これにより、表示制御部１１４に、図３９に示すプロパティー設定ウィンドウ６０を有するサブウィンドウ６１を表示装置４１に表示させる。
【０２５７】
（サブウィンドウ）
キャリブレーションの各種設定が完了すると、サブウィンドウ６１には、プロパティー設定ウィンドウ６０と、ティーチボタン６１５１と、画像イメージ表示部６１２とが表示される。なお、図３９に示す画像イメージ表示部６１２には、ワーク９３の一例が写っている（図４０〜図４２についても同様である）。
【０２５８】
プロパティー設定ウィンドウ６０は、閲覧部６３と、リスト５７（プロパティーリスト）とを有する。
【０２５９】
閲覧部６３は、作成したキャリブレーション設定（キャリブレーション名）と後述する表示処理により作成した画像処理シーケンス（画像処理シーケンス名）とを一緒に表示する領域である。本実施形態では、閲覧部６３の表示形態は、キャリブレーション設定および画像処理シーケンス設定をそれぞれ階層的に表示するツリー表示である。これにより、ユーザーは、複数のキャリブレーション設定と、複数の画像処理シーケンスとを一目で把握し易くなる。そのため、所望のキャリブレーション設定や画像処理シーケンスを選択し易い。なお、閲覧部６３の表示形態は、これに限定されず、例えば、キャリブレーション設定および画像処理シーケンス設定をそれぞれ並列的に列挙したリスト表示等であってもよい。
【０２６０】
また、リスト５７は、閲覧部６３で選択されたキャリブレーション設定や画像処理シーケンスの各種設定内容を表示する領域である。このプロパティーリストは、ユーザーによる操作指示（入力）を受け付けるよう構成されている。そのため、ユーザーは、このプロパティーリストを用いて、キャリブレーション設定の詳細な設定内容を設定（変更）することができる。
【０２６１】
このようなサブウィンドウ６１に対して、ユーザーがティーチボタン６１５１に対する操作指示を行うと、入力制御部１１５は、その操作指示（ティーチングの実行指示）を受ける（図２９：ステップＳ５３９）。これにより、制御部１１１は、ロボット制御装置１２および画像処理装置１３に対して１つまたは複数のカメラポイント、基準点のティーチングを行う実行指示を出す（図２９：ステップＳ５４０）。また、制御部１１１は、表示制御部１１４に対してティーチグループ６１６の出力指示を出す。これにより、表示制御部１１４は、図４０または図４１に示すティーチグループ６１６を有するサブウィンドウ６１を表示装置４１に表示させる。
【０２６２】
例えば、コンピューター１１は、上述のステップＳ５２７においてカメラポイントの自動生成を行うという選択を受けた場合には、ロボット制御装置１２および画像処理装置１３に対して１つのカメラポイントをティーチングする実行指示を出す。また、この場合、制御部１１１は、表示制御部１１４に対してフローチャート６６０ａ（フローチャート６６０）およびジョグパネル５４を表示させる出力指示を出す（図４０参照）。これにより、サブウィンドウ６１のフローチャート表示部６２には、１つのカメラポイントを設定するフローチャート６６０ａが表示される（図４０参照）。次いで、図４０に示すサブウィンドウ６１に対して、ユーザーがティーチグループ６１６が有する各種ボタンおよびジョグパネル５４が有する各種ボタン等に対する操作指示を行うと、コンピューター１１は、そのユーザーによる操作指示を受ける。そして、ロボット制御装置１２および画像処理装置１３は、撮像部３およびロボット２を駆動させ、例えば図４０に示す画像イメージ表示部６１２の中心（カメラポイント）に、ハンド２７０で把持したワークに付されたターゲットを位置させる。
【０２６３】
一方、コンピューター１１は、上述のステップＳ５２７においてカメラポイントの自動生成を行わないという選択を受けた場合には、ロボット制御装置１２および画像処理装置１３に対して所定の全てのカメラポイント（本実施形態では９つのカメラポイント）をティーチングする実行指示を出す。また、この場合、制御部１１１は、表示制御部１１４に対してフローチャート６６０ｂ（フローチャート６６０）およびジョグパネル５４を表示させる出力指示を出す（図４１参照）。これにより、サブウィンドウ６１のフローチャート表示部６２には、９つのカメラポイントを設定するフローチャート６６０ｂが表示される（図４１参照）。次いで、図４１に示すサブウィンドウ６１に対して、ユーザーがティーチグループ６１６が有する各種ボタンおよびジョグパネル５４が有する各種ボタン等に対する操作指示を行うと、コンピューター１１は、そのユーザーによる操作指示を受ける。そして、ロボット制御装置１２および画像処理装置１３は、撮像部３およびロボット２を駆動させ、図４１に示す画像イメージ表示部６１２内の所定の９つの箇所（カメラポイント）に、ハンド２７０で把持したワークに付されたターゲットを位置させる。
【０２６４】
ここで、フローチャート６６０ａ、６６０ｂは、それぞれ、ティーチングの処理の流れを示すものであり、先頭のフロー６６１が選択されたキャリブレーション設定（キャリブレーション名）を示している。また、図中の上から２番目以降のフロー６６２が、選択されたキャリブレーション設定に含まれるティーチングステップを示している。
【０２６５】
また、例えば、図４１に示すように、ティーチング済であるフロー６６２ａ（フロー６６２）の表示態様と、未だティーチングが済んでいないフロー６６２ｂ（フロー６６２）の表示態様とが異なる。本実施形態では、フロー６６２ａとフロー６６２ｂとで背景色を変更している。これにより、ユーザーは、ティーチング済である基準点と、未だティーチングが済んでいない基準点とを一目で判別することができる。
【０２６６】
フローチャート６６０ａまたはフローチャート６６０ｂが有する全てのフロー６６２のティーチングが完了し、すなわち全ての基準点のティーチングが完了したら、制御部１１１は、表示制御部１１４に対して図４２に示すキャリブレーション実行ボタン６１５２の表示の出力命令を出す（図２９：ステップＳ５４１）。これにより、表示制御部１１４によって、サブウィンドウ６１にキャリブレーション実行ボタン６１５２を表示させる（図４２参照）。
【０２６７】
次いで、ユーザーがキャリブレーション実行ボタン６１５２に対する操作指示を行うと、入力制御部１１５は、その操作指示（キャリブレーションの実行指示）を受ける（図２９：ステップＳ５４２）。これにより、制御部１１１は、ロボット制御装置１２および画像処理装置１３に対してキャリブレーションの実行指示を出す（図２９：ステップＳ５４３）。
以上のようにして、カメラポイントのティーチングが完了する。
【０２６８】
［３Ｃ］キャリブレーションの実行（ステップＳ５３）
次に、制御システム１０は、キャリブレーションを実行する。
【０２６９】
具体的には、ロボット制御装置１２および画像処理装置１３は、ステップＳ５４３における制御部１１１からの実行指示に基づいてキャリブレーションを実行する。
【０２７０】
まず、ロボット制御装置１２は、実行指示を受信すると、ロボット２ａの状態をロボット２ａから取得する。次いで、ロボット制御装置１２は、１個目のカメラポイントにターゲットが位置するようにロボット２ａに対して移動指示を出す。この際、ロボット２ａは、ロボット制御装置１２に対して都度ロボットアーム２０の移動に関する情報（位置センサーの値）等を返却する。次に、ロボット制御装置１２は、画像処理装置１３に対して画像処理シーケンスの実行指示を出す。画像処理装置１３は、その実行指示を受信し、固定カメラ３２（撮像部３）でターゲット（例えばマーカー）を検出し、画像処理シーケンスを実行する。画像処理装置１３は、画像処理シーケンスを実行して、固定カメラ３２でターゲットを撮像した撮像画像（画像データ）を基に画像処理を行う。次に、画像処理が終了したら、画像処理装置１３は、ロボット制御装置１２に画像処理シーケンスの実行結果（ターゲットの検出結果）を送信する。これにより、ロボット制御装置１２は、１個目のカメラポイントにおける画像処理シーケンスの実行結果を取得する。次に、ロボット制御装置１２は、残りの２個目から９個目までのカメラポイントに関して、上述した１個目のカメラポイントの画像処理シーケンスの実行結果の取得に至る一連の処理と同様の処理を行う。次に、ロボット制御装置１２は、１個目から９個目までの基準点の画像処理シーケンスの実行結果と、１個目から９個目までのカメラポイントにおけるターゲットのローカル座標（ロボット座標）とに基づき、固定カメラ３２（撮像部３）の画像座標系とロボット２ａ（ロボット２）のローカル座標（ロボット座標）とを対応付けたキャリブレーション結果を算出する。そして、ロボット制御装置１２は、算出したキャリブレーション結果をコンピューター１１に送信する。なお、上述したように、キャリブレーションの実行内容等について、具体的な方法は特に限定されない。記憶部１１３には、各種設定ごとに処理（プログラム）が記憶されており、制御部１１１は、選択された設定に応じた処理（プログラム）を実行する。
以上のようにして、キャリブレーションの実行が完了する。
【０２７１】
［４Ｃ］キャリブレーション結果の反映（ステップＳ５４）
次に、制御システム１０は、キャリブレーション結果の反映および設定を実行する。
【０２７２】
具体的には、まず、コンピューター１１の通信部１１６は、キャリブレーション結果を受信すると（図２９：ステップＳ５４４）、制御部１１１は、表示制御部１１４に対してキャリブレーション結果を表示する画面６８の出力指示を出す（図２９：ステップＳ５４５）。これにより、表示制御部１１４が画面６８を表示装置４１に表示させる。
【０２７３】
画面６８は、前回のキャリブレーション結果を表示する領域６８１と、今回のキャリブレーション結果を表示する領域６８２と、ＯＫボタン６８３と、キャンセルボタン６８４とを有する。ＯＫボタン６８３およびキャンセルボタン６８４を有することで、ユーザーは、キャリブレーション結果を反映させたい場合には、ＯＫボタン６８３を選択し、反映させたくない場合には、キャンセルボタン６８４を選択することができる。このように、画面６８は、ユーザーがキャリブレーション結果を反映させるか否かを選択できるよう構成されている。また、領域６８１、６８２を有することで、ユーザーは、前回のキャリブレーション結果の内容と比較しながら、今回のキャリブレーション結果を反映させるか否かを選択することができる。
【０２７４】
このような画面６８に対して、入力制御部１１５がユーザーによるキャリブレーション結果を反映させる選択、すなわちＯＫボタン６８３に対する操作指示を受け付けると（図２９：ステップＳ５４６）、制御部１１１は、ロボット制御装置１２に対してキャリブレーション結果を反映して記憶する指示を出す（図２９：ステップＳ５４７）。この指示を受け、コンピューター１１は、キャリブレーション結果を反映させて記憶する。なお、ロボット制御装置１２がキャリブレーション結果を反映させて記憶するようにしてもよい。
【０２７５】
一方、ユーザーが、キャリブレーション結果を反映しないことを選択すると、図２９には図示しないが、制御部１１１は、例えば、［１Ｃ］キャリブレーションにおける各種設定（ステップＳ５１）と、［２Ｃ］カメラポイントのティーチング（ステップＳ５２）と、［３Ｃ］キャリブレーションの実行（ステップＳ５３）とを再度行う。なお、少なくとも、［３Ｃ］キャリブレーションの実行（ステップＳ５３）を再度行えばよい。このようにして、必要に応じて、［３Ｃ］キャリブレーションの実行（ステップＳ５３）等を繰り返し行うことで、キャリブレーション結果の精度を高めることができる。また、上述したように、ユーザーは、画面６８を用いて前回のキャリブレーション結果と今回のキャリブレーション結果を比較することができるため、簡単に反映させるか否かの判断を行うことができる。
【０２７６】
以上、説明したように、［１Ｃ］キャリブレーションにおける各種設定において、表示制御部１１４は、キャリブレーションを行うための情報の入力を案内する「キャリブレーション用ガイド画面」としてのキャリブレーション作成画面７３を「表示部」としての表示装置４１に表示させる。これにより、ユーザーは、キャリブレーション作成画面７３に表示された内容に従って、情報（設定内容）を選択することで、複雑な操作が無く簡単かつ手軽にキャリブレーションの設定を完了することができる。そのため、初心者であっても、容易にキャリブレーションの設定を行うことができる。
【０２７７】
また、本実施形態の制御システム１０は、前述したように、入力を受け付ける「受付部」としての入力装置４２を有する。そして、表示制御部１１４は、入力装置４２で受け付けた入力に基づいて、複数の「キャリブレーション用ガイド画面」としてのキャリブレーション作成画面７３を順次「表示部」としての表示装置４１に表示させる。本実施形態では、表示制御部１１４は、複数（本実施形態では１０個）のローカル設定画面７２をユーザーとの対話形式で表示させるローカル設定用の画面群を表示させる。これにより、ユーザーは、順次表示されるキャリブレーション作成画面７３（ウィザード画面）に従って、対話形式（ウィザード形式）で情報（設定内容）を選択していくことができる。このように、ユーザーは、所定の順序に沿って、対話形式で設定内容を選択することができるため、複雑な操作が無く簡単かつ手軽にキャリブレーションの設定を完了することができる。そのため、入力ミスや入力不足等が生じることを低減することができる。また、従来のように各種設定をプログラミングする手間を省くことができる。また、キャリブレーション作成において必要な設定内容のみが限定的に表示されることで、初心者であってもキャリブレーション作成に必要な設定内容の設定不足が生じることを低減できる。そのため、キャリブレーションの実行において例えばエラー等が生じることを低減できる。
【０２７８】
なお、上述したように、キャリブレーション作成用の画面群は、１０個のキャリブレーション作成画面７３を有していたが、キャリブレーション作成画面７３の数はこれに限定されない。他のキャリブレーション作成画面がさらに加わっていてもよいし、１０個のキャリブレーション作成画面７３のうちのいずれかが省略されていてもよい。また、１０個のキャリブレーション作成画面７３が表示される順序は、上述した順序に限定されず、任意である。ただし、後に表示されるキャリブレーション作成画面７３の表示内容が、先に表示されたキャリブレーション作成画面７３の選択内容に応じて変わることが好ましい。すなわち、後に表示されるキャリブレーション作成画面７３の表示内容は、先に表示されたキャリブレーション作成画面７３の選択内容に応じた限定的な内容であることが好ましい。特に、上述した１０個のキャリブレーション作成画面７３が、説明した通りの順番で表示されることで、ユーザーは、設定内容を特に把握し易いため、ユーザーにとっての利便性を高めることができる。
【０２７９】
ここで、上述したように、制御システム１０は、「入力部」としての入力装置４２の入力に基づいて、ロボット２、撮像部３および「表示部」としての表示装置４１の駆動を制御可能な「制御装置」である。また、制御システム１０は、上述したように、制御対象であるロボット２を入力するための「入力画面」としてのキャリブレーション作成画面７３ｂを表示装置４１に表示させ、入力されたロボット２（例えばロボット２ａ）に対応する撮像部３の取付位置（設置位置）の入力を案内する「撮像部入力部」としてのグループ７３２３（領域）を表示装置４１に表示させる表示制御部１１４と、入力された撮像部３の取付位置に基づいて、ロボット２の座標系（ロボット座標系）と撮像部３の座標系（画像座標系）とを対応付けるキャリブレーションを行う「キャリブレーション制御部」としてのキャリブレーション編集部１１１３およびキャリブレーション実行部１１１４と、を備える。すなわち、上述したキャリブレーションの各処理（ステップＳ５１〜Ｓ５４）は、制御部１１１のキャリブレーション編集部１１１３およびキャリブレーション実行部１１１４が主に行う。
【０２８０】
このような制御システム１０によれば、表示装置４１に、入力（選択）されたロボット２に対応する撮像部３の取付位置が表示される。すなわち、入力されたロボット２ａに対応していない撮像部３の取付位置は非表示となる。例えば、上述したように、キャリブレーション作成画面７３ｂのグループ７３２３には、ドロップダウンリスト７３２２を用いて選択されたロボット２に対応する撮像部３の取付位置のみが表示され、対応していない撮像部３の取付位置は非表示となる。これにより、ユーザーは、入力したロボット２に対応する撮像部３の取付位置の選択を簡単に行うことができる。その結果、キャリブレーションを行うための各種設定を簡単にかつ適切に行うことができる。
【０２８１】
ここで、「入力」は、「選択」を含む。また、ロボット２の入力では、例えば、キーボード等でユーザーがロボット２を入力してもよく、また、ロボット２を選択してもよい。
【０２８２】
特に、上述したように、表示制御部１１４は、「入力画面」としてのキャリブレーション作成画面７３ｂに、垂直多関節ロボットおよび水平多関節ロボットを表示させることが可能であり、「撮像部入力部」としてのグループ７３２３（領域）の表示形態は、「垂直多関節ロボット」の一例としてのロボット２ａが入力された場合と、「水平多関節ロボット」の一例としてのロボット２ｂが入力された場合とで異なる。これにより、ロボット２ａに対応する撮像部３の取付位置の選択およびロボット２ｂに対応する撮像部３の取付位置の選択のそれぞれを簡単に行うことができる。また、制御システム１０（制御システム１０にインストールされたアプリケーションソフト）によれば、ロボット２ａおよびロボット２ｂのそれぞれに対応した制御システム（アプリケーションソフト）を用意することなく、１つの制御システム１０（１つのアプリケーションソフト）で、複数種のロボット２に関するキャリブレーションを行うことができ、利便性に優れている。
【０２８３】
また、上述したように、表示制御部１１４は、「キャリブレーション用ガイド画面」としてのキャリブレーション作成画面７３ｄの中に、ロボット２の座標系（ロボット座標系）とは異なるローカル座標系を設定するための情報の入力を案内する「ローカル設定用ガイド画面」としてのローカル設定画面７２を呼び出すための「ローカル設定呼出部」としてのローカルウィザードボタン７３４１を表示させる。これにより、ユーザーは、ローカルウィザードボタン７３４１を介してローカル設定画面７２を呼び出す操作指示を行うことで（クリックまたはタッチすることで）、ローカル設定画面７２を簡単に呼び出すことができる。そのため、例えば、ローカル設定を行うためにキャリブレーション作成画面７３による設定を一度キャンセルし、ローカル設定を行った後に、再度キャリブレーションの設定を始めから行い直すという手間を省くことができる。それゆえ、ユーザーの手間を大幅に省くことができる。
【０２８４】
特に、本実施形態では、表示制御部１１４は、入力制御部１１５で受け付けたローカルウィザードボタン７３４１に対する操作指示に基づいて、複数のローカル設定画面７２を順次表示装置４１に表示させる。これにより、ユーザーは、順次表示されるローカル設定画面７２に従って、対話形式で情報（設定内容）を選択していくことで、複雑な操作が無く簡単かつ手軽にローカル設定を行うことができる。
【０２８５】
また、上述したように、表示制御部１１４は、「キャリブレーション用ガイド画面」としてのキャリブレーション作成画面７３ｅの中に、ロボット２に取り付けられたツール（例えばワーク９３）のオフセットを求めるための情報（オフセットを求めるためのツール設定のための情報）の入力を案内する「ツール設定用ガイド画面」としてのツール設定画面７１を呼び出すための「ツール設定呼出部」としてのツールウィザードボタン７３５１を表示させる。これにより、ユーザーは、ツールウィザードボタン７３５１を介してツール設定画面７１を呼び出す指示を行うことで、ツール設定画面７１を簡単に呼び出すことができる。そのため、例えば、ツール設定を行うためにキャリブレーション作成画面７３による設定を一度キャンセルし、ツール設定を行った後に、再度キャリブレーションの設定を始めから行い直すという手間を省くことができる。それゆえ、ユーザーの手間を大幅に省くことができる。
【０２８６】
特に、本実施形態では、表示制御部１１４は、入力制御部１１５で受け付けたツールウィザードボタン７３５１に対する操作指示に基づいて、複数のツール設定画面７１を順次表示装置４１に表示させる。これにより、ユーザーは、順次表示されるツール設定画面７１に従って、対話形式で情報（設定内容）を選択していくことで、複雑な操作が無く簡単かつ手軽にツール設定を行うことができる。
【０２８７】
また、上述したように、表示制御部１１４は、「キャリブレーション用ガイド画面」としてのキャリブレーション作成画面７３ｆの中に、キャリブレーションで用いる「キャリブレーションポイント」としてのカメラポイントの自動生成を行うか否かを選択するための「キャリブレーションポイント選択部」としてのチェックボックス７３６を表示させる。これにより、ユーザーは、チェックボックス７３６を介して簡単に、かつ、ユーザーの目的に応じて、カメラポイントの自動生成を行うか否かを選択することができる。例えば、カメラポイントの自動生成を行うことで、ユーザーは、複数のカメラポイントの設定を行う手間を軽減することができる。一方、例えば、ロボットアーム２０が駆動範囲が限定されている場合には、カメラポイントの自動生成を行わないことも有効である。カメラポイントの自動生成を行わないことで、ユーザーは、ロボットアーム２０が周辺機器と干渉しない領域で各カメラポイントの設定を行うことができる。このように、キャリブレーション作成画面７３ｆがチェックボックス７３６を有することで、ユーザーの目的に応じた設定を簡単に行うことができる。
【０２８８】
また、上述したように、表示制御部１１４は、「キャリブレーション用ガイド画面」としてのキャリブレーション作成画面７３ｇの中に、ロボット２の所定部位（例えばツールセンターポイントＰ）の「キャリブレーションポイント」としてのカメラポイントへの移動の基点となるアプローチポイントの自動生成を行うか否かを選択するための「アプローチポイント選択部」としてのチェックボックス７３７２を表示させる。これにより、ユーザーは、チェックボックス７３７２を介した操作指示を行うことで、簡単に、かつ、ユーザーの目的に応じて、アプローチポイントの自動生成を行うか否かを選択することができる。例えば、アプローチポイントの自動生成を行うことで、ロボット２は、常にアプローチポイントからカメラポイントへと移動するため、ロボット２のカメラポイントでの位置の安定性を高めることができる。その結果、キャリブレーション結果の精度をより高めることができる。一方、アプローチポイントの自動生成を行わない場合は、キャリブレーションの実行をより迅速に行うことができる。このように、キャリブレーション作成画面７３ｇがチェックボックス７３７２を有することで、ユーザーの目的に応じた設定を簡単に行うことができる。
【０２８９】
特に、上述したように、処理部１１０は、「表示部」としての表示装置４１の駆動を制御する表示制御部１１４を有し、表示制御部１１４は、キャリブレーションに関する設定内容の入力を案内する「キャリブレーション用ガイド画面」としてのキャリブレーション作成画面７３ｃに、画像処理シーケンス編集部１１１５により編集された複数の画像処理シーケンスを呼び出す（表示させる）。本実施形態では、表示制御部１１４は、キャリブレーション作成画面７３ｃのドロップダウンリスト７３３に、編集された（既存の）複数の画像処理シーケンスを表示させる。これにより、ユーザーは、ドロップダウンリスト７３３を介して複数の画像処理シーケンスから所望の画像処理シーケンスを選択することができる。すなわち、キャリブレーション作成画面７３を用いたキャリブレーションの設定の中で、ユーザーが編集した既存の画像処理シーケンスを呼び出すことができる。そのため、例えば、複数のキャリブレーションの設定をしたい場合、各キャリブレーションの設定において画像処理シーケンスの作成を行う手間を省くことができるので、キャリブレーションの設定の度に毎回画像処理シーケンスを作成することを省くことができる。その結果、キャリブレーションの設定が簡便になり、ユーザーの使い勝手を大きく向上させることができる。
【０２９０】
また、上述したように、本実施形態では、図３９に示すプロパティー設定ウィンドウ６０のリスト５７においても、所望の画像処理シーケンスを選択（変更）することができる。そのため、複数のキャリブレーション作成画面７３を用いたキャリブレーション作成を行った後でも、ユーザーは、キャリブレーションにおける画像処理シーケンスを変更することができる。
【０２９１】
このように、制御システム１０は、ロボット２および撮像部３の駆動を制御可能な「制御装置」であって、撮像部３で撮像した撮像画像（画像データ）の画像処理を含む画像処理シーケンスに関する設定内容を編集する画像処理シーケンス編集部１１１５と、ロボット２の座標系（ロボット座標系）と撮像部３の座標系（画像座標系）とを対応付けるキャリブレーションに関する設定内容を編集するキャリブレーション編集部１１１３と、を有する処理部１１０を備え、処理部１１０は、キャリブレーション編集部１１１３によるキャリブレーションに関する設定内容の編集（キャリブレーション作成）において（に際し）、画像処理シーケンス編集部１１１５により編集された画像処理シーケンスを呼び出すことが可能である。このような制御システム１０によれば、複数のキャリブレーションを行いたい場合、各キャリブレーションの設定において既存の（編集された）画像処理シーケンスを呼び出すことができるので、キャリブレーションの設定の度に画像処理シーケンスを作成する手間を省くことができる。そのため、キャリブレーションの設定にかかる時間および労力を低減することができる。また、後述するコマンドを用いた処理においても、編集された画像処理シーケンスを呼び出すことができる。なお、本明細書において、「画像処理シーケンスを呼び出す」とは、表示部に表示させることと、制御プログラム中で画像処理シーケンスを実行可能にすることとを含む。
【０２９２】
また、処理部１１０は、「表示部」としての表示装置４１の駆動を制御する表示制御部１１４を有し、表示制御部１１４は、キャリブレーションに関する設定内容の編集がなされているキャリブレーション設定と画像処理シーケンスに関する設定内容の編集がなされている画像処理シーケンス設定とを同一の「画面」としてのプロパティー設定ウィンドウ６０で表示装置４１に表示させる（図３９、図４２の閲覧部６３参照）。これにより、ユーザーは、既存のキャリブレーション設定と、既存の画像処理シーケンス設定とを一目で把握することができる。
【０２９３】
特に、表示制御部１１４は、キャリブレーション設定および画像処理シーケンス設定をツリー表示させる（図３９、図４２の閲覧部６３参照）。これにより、ユーザーは、既存のキャリブレーション設定の種類や数と、既存の画像処理シーケンス設定の種類や数とを一目で把握することができる。
【０２９４】
さらに、表示制御部１１４は、互いに関連のあるキャリブレーション設定と画像処理シーケンス設定とを表示させる（図３９、図４２の閲覧部６３参照）。これにより、ユーザーは、関連付けられたキャリブレーション設定および画像処理シーケンス設定を把握し易い。そのため、必要に応じて、キャリブレーション設定および画像処理シーケンス設定の少なくとも一方の修正等を行い易い。
【０２９５】
次に、画像処理シーケンス（ビジョン処理シーケンス）の作成について説明する。
＜画像処理シーケンスの作成＞
図４４は、図８に示す画像処理シーケンスの作成における表示処理の流れを示すフロー図である。図４５は、図１に示す表示装置に表示されるサブウィンドウを示す図である。図４６〜図５０は、それぞれ、図１に示す表示装置に表示されるリストを示す図である。図５１〜図５３は、それぞれ、図１に示す表示装置に表示されるサブウィンドウにおけるガイド画面である。図５４および図５５は、それぞれ、図１に示す表示装置に表示されるサブウィンドウであって、図４５とは異なる表示を示す図である。
【０２９６】
なお、以下では、説明の便宜上、図４５〜図５５中の上側を「上」、下側を「下」と言う。
【０２９７】
画像処理シーケンスの作成においては、画像処理シーケンスの項目の入力と、画像処理シーケンスへの画像処理オブジェクトの追加と、画像処理シーケンスの実行と、画像処理シーケンスの実行結果（検出結果）の反映とが順次実行される。画像処理シーケンスの項目の入力と、画像処理シーケンスへの画像処理オブジェクトの追加とを行うことで、画像処理シーケンスの各種設定を行い、マーカー等のターゲットを検出するための画像検出（画像処理）が実現される。以下、画像処理シーケンスの作成について説明する。
【０２９８】
（画像処理シーケンスの項目の入力）
画像処理シーケンスの作成に当たり、画像処理シーケンスの項目を入力する。
【０２９９】
ユーザーは、図１７に示すメインウィンドウ５０において、アイコン６０１に対する操作指示を行う。そして、コンピューター１１の入力制御部１１５（受付部）がユーザーによるアイコン６０１に対する操作指示（画像処理シーケンス作成指示）を受けると（ステップＳ６１１）、画像処理シーケンス編集部１１１５は、サブウィンドウ６１の出力命令（指示）を行い（ステップＳ６１２）、表示制御部１１４は、図１７に示すメインウィンドウ５０において、ロボット操作用のサブウィンドウ５１に換えて、図４５に示すサブウィンドウ６１を表示装置４１（表示部）に表示させる。
【０３００】
図４５に示すように、サブウィンドウ６１には、閲覧部６３と、フローチャート表示部６２と、２つのタブ５６、５６と、リスト５７と、画像イメージ表示部６１２と、画像処理シーケンスの作成用の画面群を表示させるために用いられるアイコン６７１と、ウィザード選択用のアイコン６７２と、ツールバー６１５とが表示される。ツールバー６１５は、「検出」、「カウント」、「検査」、「画像」、「読み取り」および「全ツール」を示すアイコンで構成されている。
【０３０１】
次に、ユーザーは、表示装置４１に表示されている図４５に示すサブウィンドウ６１において、アイコン６７１に対する操作指示を行う。そして、入力制御部１１５がユーザーによるアイコン６７１に対する操作指示を受けると、表示制御部１１４は、ダイアログボックス６６３を表示装置４１に表示させる。
【０３０２】
次に、ユーザーは、サブウィンドウ６１において、ダイアログボックス６６３を用いて、例えば、「シーケンス名」、「シーケンスで使用するカメラ」、「コピー元のシーケンス」等の各項目のうちの必要な項目を入力する（操作指示を行う）。「コピー元のシーケンス」については、既存の画像処理シーケンスをコピーする場合に入力（指定）する。
【０３０３】
コンピューター１１の入力制御部１１５がユーザーによる操作指示を受けると、画像処理シーケンス編集部１１１５は、画像処理シーケンスの作成を開始する。
【０３０４】
この段階で、画像処理シーケンスは、途中まで作成されたこととなる。また、コピー元の画像処理シーケンスが指定されると、コピー元の画像処理シーケンスの設定がコピーされる。そのため、サブウィンドウ６１、ガイド画面６５等には、コピー元の画像処理シーケンスの設定内容が表示される。したがって、ユーザーは、既に設定された画像処理シーケンスの各種内容を少し変更した画像処理シーケンスを作成したい場合に、コピー元の画像処理シーケンスを指定することで、簡単に作成することができる。
【０３０５】
ここで、フローチャート表示部６２には、フローチャートが表示される。このフローチャートの先頭（最上部）の表示部６２１には、現在選択されているシーケンスが表示される。また、フローチャートの２番目の表示部６２２（図５４参照）およびそれ以降の表示部（図示せず）には、現在選択されている画像処理シーケンスに含まれる画像処理オブジェクトが表示される。
【０３０６】
また、閲覧部６３には、画像処理シーケンスに関する設定内容の編集がなされている画像処理シーケンス設定と、キャリブレーションに関する設定内容の編集がなされているキャリブレーション設定とが、それぞれ、ツリー表示される。これにより、ユーザーは、キャリブレーション設定の種類や数と、画像処理シーケンス設定の種類や数とを一目で把握することができる。
【０３０７】
また、閲覧部６３には、互いに関連のある画像処理シーケンス設定とキャリブレーション設定とが表示される。また、本実施形態では、画像処理シーケンス設定は、閲覧部６３の上側に表示され、キャリブレーション設定は、画像処理シーケンス設定の下側に表示される。
【０３０８】
また、画像処理シーケンス設定のツリーには、編集（設定）がなされているすべてのシーケンスが表示され、キャリブレーション設定のツリーには、編集（設定）がなされているすべてのキャリブレーションが表示される。
【０３０９】
また、入力制御部１１５がユーザーによる、画像処理シーケンス（画像処理シーケンスの作成）についてのフローチャートの「シーケンス」またはツリーの「シーケンス」に対する操作指示を受けると、表示制御部１１４は、リスト５７（シーケンスウィンドウ）を表示装置４１に表示させる。リスト５７には、例えば、画像処理シーケンスについてのプロパティー、画像処理シーケンスの実行結果等が表示される。また、リスト５７を使用して、画像処理シーケンスについてのプロパティーの設定等を行うことが可能である。
【０３１０】
また、入力制御部１１５がユーザーによる、画像処理シーケンスについてのフローチャートの「オブジェクト」またはツリーの「オブジェクト」に対する操作指示を受けると、表示制御部１１４は、リスト５７（オブジェクトウィンドウ）を表示装置４１に表示させる。リスト５７には、例えば、画像処理オブジェクトについてのプロパティー、画像処理オブジェクトまたは画像処理シーケンスを実行したときの画像処理オブジェクトの実行結果等が表示される。また、リスト５７を使用して、画像処理オブジェクトについてのプロパティーの設定等を行うことが可能である。
【０３１１】
また、入力制御部１１５がユーザーによる、キャリブレーションについてのツリーに対する操作指示を受けると、表示制御部１１４は、リスト５７（キャリブレーションウィンドウ）を表示装置４１に表示させる。リスト５７には、例えば、キャリブレーションの設定、キャリブレーションの実行結果等が表示される。なお、リスト５７を使用してキャリブレーションのプロパティーの設定等を行うことが可能になるようにしてもよい。
【０３１２】
（画像処理シーケンスへの画像処理オブジェクトの追加）
画像処理シーケンスにおける画像処理を指定するために、画像処理シーケンスに所定の画像処理オブジェクトを追加する。
【０３１３】
この場合、画像処理オブジェクトを追加する方法として２つの方法、すなわち、ツールバー６１５を用いる方法（第１の方法）と、情報の入力を案内するガイド画面を用いる方法（第２の方法）、すなわち、画像処理選択ウィザード（ステップウィザード）を用いる方法とがある。
【０３１４】
まず、第１の方法について説明する。
第１の方法は、ツールバー６１５を用いて画像処理オブジェクトを追加する方法である。
【０３１５】
第１の方法を用いる場合は、ユーザーは、表示装置４１に表示されている図４５に示すサブウィンドウにおいて、アイコン６７２に対する操作指示を行わない。そして、入力制御部１１５がユーザーによるアイコン６７２に対する操作指示を受けない場合、すなわち、後述するユーザーによるツールバー６１５の複数のツールバーアイテムのうちから所定のツールバーアイテムを選択する指示を受けた場合は、画像処理シーケンス編集部１１１５は、第１の方法を実行する。すなわち、画像処理シーケンス編集部１１１５は、画像処理選択ウィザードを使用するか否かを判断し（ステップＳ６１３）、画像処理選択ウィザードを使用しないと判断した場合は、第１の方法を実行する。
【０３１６】
第１の方法では、まず、ユーザーは、画像処理（画像検出）の種類（操作のタイプ）を示す画像処理ガイドのメニュー（ツールバー６１５の複数のツールバーアイテム）から所定の画像処理の種類を選択し、次に、その選択した画像処理の種類における複数の画像処理オブジェクトから所定の画像処理オブジェクト（画像処理に関する機能）を選択する。
【０３１７】
具体的には、まず、ユーザーは、サブウィンドウ６１におけるツールバー６１５の複数のツールバーアイテムのうちから所定のツールバーアイテムを選択する操作を行う。そして、入力制御部１１５がユーザーによる所定のツールバーアイテムに対する操作指示（画像処理の種類の選択）を受けると（ステップＳ６２１）、画像処理シーケンス編集部１１１５は、選択された種類に応じたリスト６５４０の出力命令を行う（ステップＳ６２２）。表示制御部１１４は、その出力命令を受け、図４６、図４７、図４８、図４９および図５０に示す対応するリスト６５４０を表示装置４１に表示させる。このリスト６５４０に挙げられている各項目（文字列６５４２で示す）が画像処理オブジェクトの具体例である。
【０３１８】
「検出」が選択された場合は、図４６に示すリスト６５４０が表示装置４１に表示される。また、「カウント」が選択された場合は、図４７に示すリスト６５４０が表示装置４１に表示される。また、「画像」が選択された場合は、図４８に示すリスト６５４０が表示装置４１に表示される。また、「読み取り」が選択された場合は、図４９に示すリスト６５４０が表示装置４１に表示される。また、「全ツール」が選択された場合は、図５０に示すリスト６５４０が表示装置４１に表示される。
【０３１９】
各リスト６５４０には、それぞれ、アイコン６５４１と文字列６５４２とを対応付けてなるアイテムが表示される。１例を挙げると、「検出」が選択された場合、リスト６５４０には、例えば、「Ｇｅｏｍｅｔｒｉｃ」の文字列６５４２と、所定の図形からなるアイコン６５４１とが対応付けられて表示される。
【０３２０】
ユーザーは、各リスト６５４０のうちの必要なリスト６５４０を用いて、所定のアイコン６５４１と文字列６５４２とを対応付けてなるアイテムを選択（指定）することで、そのアイテムに対応する画像処理オブジェクトを追加する操作を行う。そして、入力制御部１１５がユーザーによる操作指示（画像処理オブジェクトの選択）を受けると（ステップＳ６２３）、画像処理シーケンス編集部１１１５は、現在の画像処理シーケンスに指定された画像処理オブジェクトを追加する。以上で、画像処理シーケンスの設定が完了する。なお、画像処理オブジェクトを追加する工程において、例えば、マーカー６８０（マーク）のモデル登録（ティーチング）等が行われる。
【０３２１】
次に、第２の方法について説明する。
第２の方法は、画像処理選択ウィザード（ステップウィザード）を用いて画像処理オブジェクトを追加する方法である。画像処理（画像検出）の種類としては、例えば、検出、カウント、検査、読み取り、画像処理（画像）、全ツール等が挙げられる。
【０３２２】
第２の方法を用いる場合は、ユーザーは、サブウィンドウ６１において、アイコン６７２に対する操作指示を行う。そして、入力制御部１１５がユーザーによるアイコン６７２に対する操作指示を受けると、画像処理シーケンス編集部１１１５は、第２の方法を実行する。すなわち、画像処理シーケンス編集部１１１５は、画像処理選択ウィザードを使用するか否かを判断し（ステップＳ６１３）、画像処理選択ウィザードを使用すると判断した場合は、第２の方法を実行する。
【０３２３】
第２の方法では、まず、画像処理シーケンス編集部１１１５は、１個目のガイド画面の出力命令を行い（ステップＳ６１４）、表示制御部１１４は、図５１に示すガイド画面６５（ウィンドウ）を表示装置４１の画像イメージ表示部６１２に表示させる。ガイド画面６５には、ボックス６５１が表示される。このボックス６５１には、画像処理の種類（操作のタイプ）が表示され、ボックス６５１で、画像処理の種類を選択することが可能である。画像処理の種類は、第１の方法と同様である。
【０３２４】
また、ガイド画面６５の下部には、「キャンセル」と表示されたボタン６５０１（アイコン）、「戻る（Ｂ）」と表示されたボタン６５０２（アイコン）、「次へ（Ｎ）＞」と表示されたボタン６５０３（アイコン）、「完了（Ｆ）」と表示されたボタン６５０４（アイコン）が表示される。本実施形態では、ボタン６５０１、６５０２、６５０３、６５０４のうち、ボタン６５０１、６５０３に対して、操作指示（選択）が可能になっている。
【０３２５】
ユーザーは、複数の画像処理の種類のうちから所定の画像処理の種類を選択するが、以下では、代表的に、「検出」を選択した場合について説明する。
【０３２６】
入力制御部１１５がユーザーによる『「検出」、「パーツの座標値を設定します。」』のアイテム６５１１を選択する操作指示（画像処理の種類の選択）を受けると（ステップＳ６１５）、表示制御部１１４は、ボックス６５１のうち、その選択されたアイテム６５１１の部分の色を他の部分の色と異なる色に変更する。
【０３２７】
次に、入力制御部１１５がユーザーによる「次へ（Ｎ）＞」と表示されたボタン６５０３に対する操作指示を受けると、画像処理シーケンス編集部１１１５は、２個目のガイド画面の出力命令を行い（ステップＳ６１６）、表示制御部１１４は、図５２に示すガイド画面６５を表示装置４１の画像イメージ表示部６１２に表示させる。ガイド画面６５には、ボックス６５２が表示される。このボックス６５２には、パーツ検出ツールのタイプ（画像処理オブジェクト）が表示され、ボックス６５２で、パーツ検出ツールのタイプを選択することが可能である。パーツ検出ツールのタイプは、第１の方法における「検出」のリスト６５４０の項目と同様である。すなわち、各リスト６５４０の画像処理オブジェクトは、それぞれ、第２の方法と同様である。
【０３２８】
また、本実施形態では、ボタン６５０１、６５０２、６５０３、６５０４のうち、ボタン６５０１、６５０２、６５０３に対して、操作指示（選択）が可能になっている。
【０３２９】
ユーザーは、複数のパーツ検出ツールのタイプのうちから所定のパーツ検出ツールのタイプを選択するが、以下では、代表的に、「Ｇｅｏｍｅｔｒｉｃ」を選択した場合について説明する。
【０３３０】
入力制御部１１５がユーザーによる『「Ｇｅｏｍｅｔｒｉｃ」、「エッジベースの幾何学的モデルを用いて、パーツを検出します。」』のアイテム６５２１を選択する操作指示（画像処理オブジェクトの選択）を受けると（ステップＳ６１７）、表示制御部１１４は、ボックス６５２のうち、その選択されたアイテム６５２１の部分の色を他の部分の色と異なる色に変更する。
【０３３１】
次に、入力制御部１１５がユーザーによる「次へ（Ｎ）＞」と表示されたボタン６５０３に対する操作指示を受けると、画像処理シーケンス編集部１１１５は、３個目のガイド画面の出力命令を行い（ステップＳ６１８）、表示制御部１１４は、図５３に示すガイド画面６５を表示装置４１の画像イメージ表示部６１２に表示させる。ガイド画面６５には、入力ダイアログが設けられたウィンドウ６５３が表示される。このウィンドウ６５３では、新しいステップを設定することが可能である。
【０３３２】
このようにして、表示制御部１１４は、入力制御部１１５で受け付けた入力に基づいて、３つのガイド画面６５をユーザーとの対話形式で順次表示装置４１に表示させる。これにより、ユーザーは、順次表示されるガイド画面６５に従って、対話形式で情報（項目）を選択していくことで、複雑な操作が無く、簡単、手軽かつ迅速に画像処理オブジェクトを追加する作業を行うことができる。
【０３３３】
また、本実施形態では、ボタン６５０１、６５０２、６５０３、６５０４のうち、ボタン６５０１、６５０２、６５０４に対して、操作指示（選択）が可能になっている。
【０３３４】
ユーザーは、「新しいステップの名前を入力」の入力ダイアログに、所定の名前を記載し、挿入場所を指定する操作を行う。
【０３３５】
次に、入力制御部１１５がユーザーによる「完了（Ｆ）」と表示されたボタン６５０４に対する操作指示（画像処理オブジェクトの追加完了指示）を受けると（ステップＳ６１９）、画像処理シーケンス編集部１１１５は、現在の画像処理シーケンスに指定された画像処理オブジェクトを追加する。
【０３３６】
画像処理シーケンスへの画像処理オブジェクトの追加が完了すると、画像処理シーケンス編集部１１１５は、追加された画像処理オブジェクトの表示の出力命令を行い（ステップＳ６２０）、表示制御部１１４は、閲覧部６３に表示されている画像処理シーケンスのツリー、フローチャート表示部６２に表示されているフローチャートに、それぞれ、追加された画像処理オブジェクトを表示させる。
【０３３７】
ここで、前述したように、画像処理シーケンスは、少なくとも１つの画像処理オブジェクトを有している。表示制御部１１４は、画像処理オブジェクトを表示させることが可能であり、ティーチングがなされていない場合の画像処理オブジェクトの表示形態とティーチングがなされている場合の画像処理オブジェクトの表示形態とは異なっている。
【０３３８】
これにより、ユーザーは、一目で、画像処理オブジェクトがティーチングされたか否かを把握することができる。以下、具体的に説明する。
【０３３９】
画像処理シーケンス編集部１１１５は、追加された画像処理オブジェクトについてティーチング（教示）が行われているか否かを判断し（ステップＳ６２４）、ティーチングが行われていない（未ティーチング）と判断した場合は、未ティーチングの表示の出力命令を行う（ステップＳ６２５）。そして、表示制御部１１４は、追加された未ティーチングの画像処理オブジェクトに対して未ティーチングの表示を行う。すなわち、フローチャートの未ティーチングの部分の表示態様をティーチング済んでいる部分と異なるようにする。本実施形態では、フローチャートの未ティーチングの部分に「！」のアイコン６２２１を表示させる。これにより、ユーザーは、未ティーチングの画像処理オブジェクトを一目で判別することができる。
【０３４０】
なお、「！」のアイコン６２２１の表示に換えて、または、「！」のアイコン６２２１の表示とともに、フローチャートの未ティーチングの部分の色、例えば、背景色をティーチングが済んでいる部分と異ならせるようにしてもよい。
【０３４１】
ユーザーは、追加された画像処理オブジェクトが未ティーチングの場合、すなわち、ティーチングが必要な場合は、追加された画像処理オブジェクトについて、「ティーチ」と表示されたボタン６１４（アイコン）に対する操作指示を行って、所定のティーチングを行う。
【０３４２】
入力制御部１１５がユーザーによるボタン６１４に対する操作指示を受け、追加された未ティーチングの画像処理オブジェクトについて、指示されたティーチングが完了すると、画像処理シーケンス編集部１１１５は、完了したティーチングの内容を追加する。これにより、追加された画像処理オブジェクトが実行可能になる。以上で、画像処理シーケンスの設定が完了する。
【０３４３】
なお、ティーチングの１例としては、「Ｇｅｏｍｅｔｒｉｃサーチ」の場合、マーカー６８０のモデル登録等が挙げられる。
【０３４４】
画像処理シーケンス編集部１１１５は、ステップＳ６２４において、ティーチングが行われている（ティーチング済み）と判断した場合は、ティーチング済みの表示の出力命令を行う（ステップＳ６２６）。そして、表示制御部１１４は、追加された未ティーチングの画像処理オブジェクトに対してティーチング済みの表示を行う。本実施形態では、フローチャートに表示されている「！」のアイコン６２２１を消去する。これにより、ユーザーは、未ティーチングであった画像処理オブジェクトのティーチングが済んだことを一目で判別することができる。
【０３４５】
（画像処理シーケンスの実行）
画像処理シーケンス（画像処理シーケンスの作成）は、撮像部３で撮像された画像に基づいて検査する工程を含んでいる。
【０３４６】
これにより、画像処理シーケンスにより、撮像部３で撮像された対象物を検査することができる。以下、具体的に説明する。
【０３４７】
まず、入力制御部１１５がユーザーによる「画像処理シーケンスの実行」の操作指示（画像処理シーケンスの実行命令）を受けると（ステップＳ６２７）、まず、画像処理シーケンス編集部１１１５は、画像処理シーケンスの設定内容を画像処理装置１３に送信する。この場合、ロボット制御装置１２が中継してもよく、また、中継しなくてもよい。
【０３４８】
次に、画像処理装置１３は、画像処理シーケンスの設定内容を受信する。そして、画像処理シーケンス実行部１３１１は、画像処理シーケンスの設定内容を反映する。
【０３４９】
次に、画像処理シーケンス編集部１１１５は、画像処理シーケンスを実行させる画像処理シーケンス実行命令を画像処理装置１３に送信する。この場合、ロボット制御装置１２が中継してもよく、また、中継しなくてもよい。
【０３５０】
次に、画像処理装置１３は、画像処理シーケンス実行命令を受信する。そして、画像処理シーケンス実行部１３１１は、画像処理シーケンスを実行する。
【０３５１】
この場合、まず、撮像部制御部１３１３の制御により、撮像部３を駆動する。撮像部３は、例えば、マーカー等の所定の対象物を撮像し、撮像画像の画像データを画像処理装置１３に送信する。次に、画像処理装置１３は、画像データを受信する。そして、画像処理部１３１２は、画像データに基づいて所定の画像処理を行う。
【０３５２】
具体例としては、例えば、対象物の１例として、図５４に示すマーカー６８０（幾何学的モデル：図形）を撮像し、そのマーカー６８０の画像認識等の種々の画像処理を行う。また、マーカー６８０を用いた検査の一部または全部を行う。すなわち、画像処理シーケンスの作成には、対象物の１例であるマーカー６８０を用いた検査を行う工程（検査工程）が含まれている。
【０３５３】
本実施形態では、第１画像処理シーケンスの作成の場合は、モバイルカメラ３１によりワーク９３の上面中心に付されたマーカー６８０を撮像し、所定の処理を行う。前記処理としては、例えば、検出精度の確認等が挙げられる。
【０３５４】
また、第２画像処理シーケンスの作成の場合は、固定カメラ３２によりワーク９３の下面中心に付されたマーカー６８０を撮像し、所定の処理を行う。
【０３５５】
また、第３画像処理シーケンスの作成の場合は、固定カメラ３２によりワーク９３の下面に付された２つのマーク（図示せず）、例えば、マーカー６８０を２つ、所定間隔で配置してなるもの（対象物）を撮像し、所定の処理を行う。前記処理としては、例えば、第３画像処理シーケンスと固定カメラ３２のキャリブレーション結果との関連付け、検査等が挙げられる。
【０３５６】
また、検査の具体例としては、Ａ点とＢ点との間の距離が所定閾値内であるか否かの検査等が挙げられる。この場合、２つのマーカー６８０は、前記Ａ点とＢ点との間の距離が所定閾値内であるか否かの検査におけるＡ点およびＢ点に相当する。この検査では、固定カメラ３２のキャリブレーションの結果と撮像画像とに基づいて、Ａ点とＢ点との間の距離を計測し、計測されたＡ点とＢ点との間の距離が所定閾値内であるか否かを判断する。そして、計測されたＡ点とＢ点との間の距離が所定閾値内であれば、「合格」と判定し、所定閾値内でなければ（所定閾値外であれば）、不合格と判定する。
【０３５７】
（画像処理シーケンスの実行結果（検出結果）の反映）
通信部１１６は、画像処理装置１３から送信される画像処理シーケンスの実行結果（検出結果）を受信し（ステップＳ６２８）、コンピューター１１は、その画像処理シーケンスの実行結果を反映する。
【０３５８】
具体的には、まず、画像処理シーケンス編集部１１１５は、画像処理シーケンスの実行結果を送信させる画像処理シーケンス実行結果送信命令を画像処理装置１３に送信する。この場合、ロボット制御装置１２が中継してもよく、また、中継しなくてもよい。
【０３５９】
次に、画像処理装置１３は、画像処理シーケンスの実行結果をコンピューター１１に送信する。この場合、ロボット制御装置１２が中継してもよく、また、中継しなくてもよい。
【０３６０】
次に、コンピューター１１は、通信部１１６により、画像処理シーケンスの実行結果を受信する。そして、画像処理シーケンス編集部１１１５は、画像処理シーケンスの実行結果を反映する。
【０３６１】
すなわち、画像処理シーケンス編集部１１１５は、画像処理シーケンスの実行結果に関する表示等の出力命令を行い（ステップＳ６２９）、表示制御部１１４は、画像処理シーケンスの実行結果を表示装置４１に表示させる（表示に反映される）。また、画像処理シーケンスの実行結果は、プロパティー等にも反映される。画像処理シーケンスの実行結果としては、例えば、マーカーが検出された画像座標等が挙げられる。
【０３６２】
なお、画像処理シーケンスの作成では、モバイルカメラ３１、固定カメラ３２等の歪み補正を設定するウィンドウや、撮像の際の照明条件を設定するウィンドウを設けてもよい。
【０３６３】
次に、コマンドを用いたツール設定、ローカル設定、キャリブレーションおよび画像処理シーケンスの作成等の処理について説明する。
【０３６４】
まず、概要について、特許請求の範囲に対応させて簡単に説明し、その後で詳細に説明する。
【０３６５】
処理部１１０は、ロボット２を駆動する制御プログラムを編集可能な制御プログラム編集部１１１１を有している。制御プログラム編集部１１１１は、制御プログラムの中に、編集された画像処理シーケンスを呼び出す命令（本実施形態では、コマンドの引数）を挿入することが可能である。
【０３６６】
これにより、例えば、ロボット２に所定の動作をさせて、所定の作業を行わせる制御プログラムの中で、既存の（編集された）画像処理シーケンスを呼び出すことができる。そのため、制御プログラムを作成する度に画像処理シーケンスを作成する手間を省くことができる。
【０３６７】
また、制御システム１０（制御装置）のロボット制御装置１２は、ロボット２を駆動する制御プログラムを実行可能な制御プログラム実行部１２１１備えている。制御プログラム実行部１２１１は、ロボット２の座標系とは異なるローカル座標系を設定可能なコマンドにより、ローカル座標系の設定を実行する。
【０３６８】
これにより、ローカル座標系の設定をより迅速に行うことができる。また、キャリブレーションを定期的に繰り返し実行したり、キャリブレーションを実行した後、その実行結果を基にして、ローカル座標系の設定等を含むキャリブレーションの各種設定を修正することを複数回繰り返す場合には、コマンドを用いることが特に有効である。実行結果を基にした修正を容易かつ迅速に行うことができるためである。
【０３６９】
また、制御プログラム実行部１２１１は、ロボット２に取り付けられたツールのオフセットを求めるツール設定可能なコマンドの１例である「コマンドVDefTool」により、当該ツール設定を実行する。
【０３７０】
これにより、ツール設定をより迅速に行うことができる。また、キャリブレーションを定期的に繰り返し実行したり、キャリブレーションを実行した後、その実行結果を基にして、ツール設定等を含むキャリブレーションの各種設定を修正することを複数回繰り返す場合には、コマンドを用いることが特に有効である。実行結果を基にした修正を容易かつ迅速に行うことができるためである。以下、具体的に説明する。
【０３７１】
＜コマンドを用いた処理＞
制御システム１０は、上述した各種操作画面を用いた表示処理の代わりに、コマンドを用いた処理を行うことができる。
【０３７２】
コマンドは、目的の処理を実行するための動作命令を含む。例えば、コマンドとしては、画像処理シーケンスの実行結果を用いてツール設定を行う（オフセットを算出する）ためのツール設定用の処理コマンド、画像処理シーケンスの実行結果を用いてローカル設定を行うためのローカル設定用の処理コマンド、画像処理シーケンスの実行結果を用いてキャリブレーションを行うためのキャリブレーション用の処理コマンド、画像処理シーケンスの実行結果を用いて撮像部３の撮像画像内の例えばターゲットが所定の位置へ移動するようにロボットアーム２０を駆動させるためのコマンド等が挙げられる。
また、コマンドは、例えば、パラメーターを指定する引数を有している。
【０３７３】
なお、以下では、代表的に、ツール設定を例に挙げて説明するが、ローカル設定、キャリブレーションおよび画像処理シーケンスの作成についても同様に行うことができる。
【０３７４】
（プログラム作成、入力）
ユーザーは、コマンドを用いてプログラムを作成し、入力装置４２を用いてコンピューター１１に入力する（作成しつつ、入力する）。コンピューター１１の入力制御部１１５（受付部）は、入力装置４２から入力されるプログラムを受付け、記憶部１１３に記憶する。なお、プログラムの作成には、プログラムを新たに作成する場合と、既存のプログラムを書き換えたり、追加する場合とが含まれる。
【０３７５】
プログラムの１例は、下記の通りである。また、そのプロラムは、前述したツール設定と同様の設定を行えるものである。
【０３７６】
Function Main
Reset
Motor On
VDefTool 1, VISION_DEFTOOL_FIXEDNOCAL, TestVisSeq, 180, 5
Fend
【０３７７】
前記プログラムの「VDefTool 1, VISION_DEFTOOL_FIXEDNOCAL, TestVisSeq, 180, 5」がコマンドである（各引数は、１例である）。
コマンドのうち、「VDefTool」は、コマンド名である。
【０３７８】
また、コマンドVDefToolにおける引数（引数名）としては、例えば、前述したツール設定における１個目のツール設定画面７１ａ、２個目のツール設定画面（図示せず）、３個目のツール設定画面７１ｂ、４個目のツール設定画面（図示せず）、５個目のツール設定画面７１ｃにおいて設定可能なパラメーターと同様のパラメーター等が挙げられる。具体例としては、例えば、「toolNumber」、「toolDefType」、「sequence」、「[finalAngle]」、「[initialAngle]」、「[targetTolerance]」等が挙げられる。
【０３７９】
「toolNumber」は、ツール設定結果を保存する保存番号（ツール番号）である。具体例としては、１〜１５である。
【０３８０】
また、「toolDefType」は、ツールタイプである。具体例は、下記の通りである。
VISION_DEFTOOL_FIXEDNOCAL：キャリブレーションを行っていない固定カメラを使って、ツール設定を行う。
【０３８１】
VISION_DEFTOOL_J4CAM：第４アームに設けられたモバイルカメラの画像中心を算出する。
【０３８２】
VISION_DEFTOOL_J6CAM：第６アームに設けられたモバイルカメラの画像中心を算出する。
【０３８３】
また、「sequence」は、ツール（対象）を検出するために用いる画像処理シーケンスである。
【０３８４】
また、「[finalAngle]」は、ツール／カメラツールを回転する角度（最終回転角度）である。
【０３８５】
また、「[initialAngle]」は、仮ツール設定時のツール／カメラツールを回転する角度（初期回転角度）である。
【０３８６】
また、「[targetTolerance]」は、画像処理シーケンスの実行結果（検出結果）が対象位置と一致したとみなすピクセル距離（ターゲットの許容量）である。
【０３８７】
（プロジェクトをビルド、送信）
作成したプログラム（プロジェクト）をビルドして、ロボット制御装置１２で解釈可能な言語（データ列）に変換（コンパイル）する。
【０３８８】
この場合、まず、入力制御部１１５がユーザーによる「ビルド」の操作指示を受けると、コンピューター１１の制御プログラムビルド部１１１２は、プログラムをビルドして、ロボット制御装置１２で解釈可能な言語にコンパイルする。
【０３８９】
次に、コンピューター１１は、コンパイルしたプログラムをロボット制御装置１２に送信する。ロボット制御装置１２は、コンピューター１１から送信されたプログラムを受信し、記憶部１２３に記憶する。
【０３９０】
また、コンピューター１１は、画像処理検出設定等の必要な各情報を画像処理装置１３に送信する。この場合、ロボット制御装置１２が中継してもよく、また、中継しなくてもよい。画像処理装置１３は、コンピューター１１から送信された画像処理検出設定を受信し、記憶部１３３に記憶する。
【０３９１】
（ツール設定の処理の実行（プログラムの実行））
ユーザーは、ロボットビジョンシステム１００にツール設定の処理を行わせる場合は、表示装置４１に表示されている所定のアイコン（図示せず）に対する操作指示を行う。
【０３９２】
入力制御部１１５がユーザーによる「プログラムのメイン関数の選択、実行開始」の操作指示（ツール設定の処理の実行命令）を受けると、まず、コンピューター１１は、プログラムの実行処理の命令をロボット制御装置１２に送信する。
【０３９３】
次に、画像処理装置１３は、プログラムの実行処理の命令（指示）を受信する。そして、画像処理装置１３の制御プログラム実行部１２１１は、プログラムのメイン関数の実行処理を開始する。そして、制御プログラム実行部１２１１は、コマンドVDefToolの実行処理を発見すると、コマンドVDefToolの引数とともに、コマンドVDefToolの実行処理の命令（ツール設定の処理の実行命令）をコンピューター１１に送信する。
【０３９４】
次に、コンピューター１１は、コマンドVDefToolの実行処理の命令を受信し、コマンドVDefToolの実行処理、すなわち、ツール設定の処理を実行する（開始する）。なお、ツール設定の処理の実行については、前述した［２Ｂ］と同様であるので、その説明は省略する。また、ツール設定結果の反映については、前述した［３Ｂ］と同様であるので、その説明は省略する。
【０３９５】
このようなコマンドを用いることにより、ツール設定等の各処理を容易かつ迅速に実行することができる。
【０３９６】
前述したツール設定画面を用いるツール設定では、ツール設定の処理を実行する場合、毎回、５個のツール設定画面を順次、表示装置４１に表示させて、ツール設定における各種設定を行い、その後、ツール設定の処理が実行可能となるので、毎回、準備に時間および労力を要する。これに対し、コマンドを用いることにより、１度、コマンドの引数を設定してしまえば、次回からは、その設定が不要であり、このため、容易かつ迅速にツール設定の処理を実行することができる。
【０３９７】
また、例えば、ツール設定の処理を実行した後、キャリブレーションを実行する場合、コマンドを用いることにより、ツール設定の処理とキャリブレーションとを連続して自動的に実行することができ、利便性が高い。
【０３９８】
また、ツール設定における各種設定を変更する場合、コマンドの対応する引数の部分を変更する簡単な作業を行うことで、各種設定を変更することができる。
【０３９９】
以上では、ツール設定を例に挙げて説明したが、ローカル設定、キャリブレーションおよび画像処理シーケンスの作成等についても、それぞれ、同様に、コマンドにより実行することができる。
【０４００】
例えば、ローカル設定では、ロボット２の座標系とは異なるローカル座標系を設定可能なコマンドを作成する。そして、制御プログラム実行部１２１１は、そのコマンドにより、ローカル座標系の設定を実行する。なお、ローカル座標系の設定（ローカル設定の処理の実行）については、前述した［２Ａ］と同様であるので、その説明は省略する。また、ローカル設定結果の反映については、前述した［３Ａ］と同様であるので、それぞれ、その説明は省略する。
【０４０１】
以上説明したロボットビジョンシステム１００は、「制御装置」としての制御システム１０と、制御システム１０によって制御されているロボット２および撮像部３と、を備える。このようなロボットビジョンシステム１００によれば、上述した制御システム１０を備えていることで、撮像部３からの撮像画像（画像データ）に基づいて、ロボット２がキャリブレーションにかかる動作を的確に行うことができる。そのため、キャリブレーションの精度を高めることができる。その結果、ロボット２の作業の精度を高めることができる。
【０４０２】
また、ロボット２は、「制御装置」としての制御システム１０によって制御されている。そのため、制御システム１０の制御の下、ロボット２は、キャリブレーションにかかる動作を的確に行うことができる。
【０４０３】
＜第２実施形態＞
図５６および図５７は、それぞれ、本発明の第２実施形態に係るロボットビジョンシステムが有するロボットの一例、ロボットアームに取り付けられたツールの一例およびティーチング用ツールの一例を示す斜視図である。図５８は、本発明の第２実施形態に係るロボットビジョンシステムのツール設定の流れを示すフロー図である。図５９〜図７０は、それぞれ、本発明の第２実施形態に係るロボットビジョンシステムの姿勢設定用ガイド画面である。図７１〜図７６は、それぞれ、本発明の第２実施形態に係るロボットビジョンシステムのツール設定を説明するための図である。
【０４０４】
なお、以下では、説明の便宜上、図５６〜図７６中の上側を「上」、下側を「下」と言う。また、図７１〜図７６では、ツールの基端側の部分の図示を省略する。
【０４０５】
以下、第２実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。また、本実施形態では、ロボット２として図５６に示すロボット２ａを用いた場合を例に挙げて説明する。
【０４０６】
まず、特許請求の範囲の記載に対応させて制御システム１０（制御装置）、ロボット２ａおよびロボットビジョンシステム１００（ロボットシステム）の概要について説明し、その後で、具体的に説明する。
【０４０７】
制御システム１０（制御装置）は、ロボット２ａの駆動を制御可能な制御装置である。この制御システム１０は、ロボット２ａに設けられたツールの１例であるツール３７、３８の姿勢のオフセットを求めるための情報の入力を案内する姿勢設定用ガイド画面８１ａ〜８１ｋを、表示装置４１（表示部）に表示させる表示制御部１１４を有するコンピューター１１と、ツール３７、３８の姿勢のオフセットに基づいて、ロボット２ａの駆動を制御するロボット制御装置１２（制御部）と、画像処理装置１３とを備えている（図１参照）。ツール３７、３８の姿勢のオフセットとは、予め設定された基準姿勢に対する実際のツール３７、３８の姿勢のずれ量を言う。
【０４０８】
このような制御システム１０によれば、ツール３７、３８の姿勢のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる。また、ツール３７、３８の姿勢のオフセットが求まることにより、ロボット２ａが有するロボットアーム２０に対するツール３７、３８の姿勢に応じて、容易かつ適確に、ツール３７、３８を希望する姿勢にすることができる。
【０４０９】
また、ツール３７、３８の姿勢のオフセットを求めるための情報は、ツール３７、３８の形状を含む。これにより、ツール３７、３８の姿勢のオフセットを適確に求めることができる。なお、ツール３７、３８の姿勢のオフセットを求めるための情報は、ツール３７、３８の形状を含んでいなくてもよい。
【０４１０】
また、本実施形態では、ツール３７の形状は、棒状であり、ツール３８の形状は、平面状であり、このツール３７、３８の姿勢のオフセットを設定できるように構成されている。但し、ツール３７とツール３８とのうちの一方のツールのみの姿勢のオフセットを設定できるように構成されていてもよい。
【０４１１】
すなわち、ツールの形状は、棒状および平面状の少なくとも一方を含む。これにより、棒状のツール３７および平面状のツール３８の少なくとも一方において、姿勢のオフセットを適確に求めることができる。なお、ツールの形状は、棒状および平面状以外の形状であってもよい。
【０４１２】
また、ロボット２ａは、ツールの１例であるツール３７、３８が設けられ、制御システム１０（制御装置）によって制御される。
【０４１３】
このようなロボット２ａによれば、制御システム１０の制御の下、ロボット２ａが有するロボットアーム２０に対するツール３７、３８の姿勢に応じて、容易かつ適確に、ツール３７、３８を希望する姿勢にすることができる。
【０４１４】
また、ロボットビジョンシステム１００（ロボットシステム）は、制御システム１０（制御装置）と、複数の撮像部３と、表示装置４１（表示部）と、入力装置４２（入力部）と、ツールの１例であるツール３７、３８が設けられ、制御システム１０（制御装置）によって制御されるロボット２ａとを備えている（図１、図５６、図５７参照）。
【０４１５】
このようなロボットビジョンシステム１００によれば、ツール３７、３８の姿勢のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる。また、ツール３７、３８の姿勢のオフセットが求まることにより、ロボット２ａが有するロボットアーム２０に対するツール３７、３８の姿勢に応じて、容易かつ適確に、ツール３７、３８を希望する姿勢にすることができる。以下、具体的に説明する。
【０４１６】
第２実施形態のロボットビジョンシステム１００（ロボットシステム）（図１参照）では、ツール設定において、ロボットアーム２０に対するツール（例えば、図５６に示すツール３７、図５７に示すツール３８）の位置のオフセットおよび姿勢のオフセット（基準姿勢に対する姿勢のオフセット）のそれぞれを求め、設定することが可能に構成されている。
【０４１７】
まず、ツールの位置のオフセットについて説明する。
ツールの位置のオフセットとは、予め設定された基準位置（基準点）に対する実際のツールの位置のずれ量を言う。
【０４１８】
ツールの位置のオフセットの基準点（原点）、すなわち、ツールの位置のオフセットが「Ｘ軸方向の位置（Ｘ）＝０、Ｙ軸方向の位置（Ｙ）＝０、Ｚ軸方向の位置（Ｚ）＝０」である点は、特に限定されず、諸条件に応じて適宜設定することが可能であるが、本実施形態では、ロボットアーム２０（第６アーム２６）の先端でかつ回動軸Ｏ６上の点に設定されている。したがって、本実施形態では、位置のオフセットは、ロボットアーム２０の先端でかつ回動軸Ｏ６上の点（基準点）に対するツールに設定された位置基準点のずれ量である。ツールの位置基準点は、特に限定されず、諸条件に応じて適宜設定することが可能であるが、本実施形態では、ツール３７、３８の先端に設定されている。なお、平面状のツール３８の場合は、そのツール３８の位置基準点は、ツール３８の先端面のうちの所定の位置（点）に設定される。
【０４１９】
次に、ツールの姿勢のオフセットについて説明する。
ツールの姿勢のオフセットとは、予め設定された基準姿勢（基準点）に対する実際のツールの姿勢のずれ量を言う。
【０４２０】
ツールの姿勢のオフセットの基準点（基準姿勢）、すなわち、ツールの姿勢のオフセットが「Ｚ軸回りの回動角度（Ｕ）＝０、Ｙ軸回りの回動角度（Ｖ）＝０、Ｘ軸回りの回動角度（Ｗ）＝０」である基準姿勢は、特に限定されず、諸条件に応じて適宜設定することが可能である。本実施形態では、棒状のツール３７の基準姿勢は、ツール３７の中心軸と回動軸Ｏ６とが一致する所定の姿勢に設定されており、平面状のツール３８の基準姿勢は、ツール３８の先端面３８２の中心を通る法線と回動軸Ｏ６とが一致する所定の姿勢に設定されている。
【０４２１】
なお、本実施形態では、ツールの位置のオフセットおよび姿勢のオフセットが設定可能であるが、姿勢のオフセットのみが設定可能に構成されていてもよい。
【０４２２】
次に、ツールについて説明する。
ツールとは、第１実施形態でも述べたように、ロボットアーム２０（ロボット２ａ）に設けられた物であれば、いかなる物であってもよい。また、ツールは、ロボット２ａの構成要素であってもよく、また、ロボット２ａの構成要素ではなく、ロボット２ａに付加されたものであってもよい。ツールの具体例としては、例えば、ハンド２７０等（図２参照）のエンドエフェクター、撮像部３（図２参照）、エンドエフェクターにより保持（支持）される対象物（ワーク）等が挙げられる。
【０４２３】
また、ツールは、ロボットアーム２０（ロボット２ａ）に対して着脱可能でもよく、また、着脱不能でもよい。また、前記保持（支持）には、例えば、把持、吸着等が含まれる。
【０４２４】
したがって、「ロボットアーム２０（ロボット２ａ）に設けられたツール」における「設けられ」とは、例えば、ツールがハンド２７０（図２参照）等のエンドエフェクターの場合は、「取り付けられ（装着され）」と同義であり、また、ツールがハンド２７０（図２参照）により把持される図示しない対象物の場合は、「保持（支持）」と同義である。
【０４２５】
また、ツールの形状は、特に限定されないが、本実施形態では、ツールの形状が棒状の場合および平面状の場合を例に挙げて説明する。具体的には、本実施形態では、棒状のツールとして、図５６に示すツール３７を例に挙げ、平面状のツールとして、図５７に示すツール３８を例に挙げて説明する。
【０４２６】
また、ツールの形状とは、ツールの全体形状のみを意味するのではなく、ツールの形状には、ツールの一部分の形状も含まれる。すなわち、ツールの形状が棒状であるとは、ツールが棒状の部分を有していること（例えば、ツールの主要部分が棒状であること）を言う。また、ツールの形状が平面状であるとは、ツールが平面状の部分を有していること（例えば、平板状等、ツールの主要部分が平面を有していること）を言う。
【０４２７】
図５６および図７１に示すように、本実施形態では、ツール３７は、エンドエフェクターであり、棒状をなす棒状部３７１を有している。この棒状部３７１の先端３７２は尖っている。また、棒状部３７１の長手方向に対して垂直な断面での形状は、正方形をなしている。また、棒状部３７１は、その途中で屈曲している。このツール３７は、ロボット２ａの力検出部２９０の先端に、着脱可能に取り付けられている。また、力検出部２９０が省略され、ツール３７は、ロボットアーム２０（第６アーム２６）の先端に、着脱可能に取り付けられていてもよい。
【０４２８】
なお、棒状のツールは、このツール３７には限定されず、例えば、先端３７２が尖っていなくてもよく、また、棒状部３７１は、その途中で屈曲していなくてもよく、また、棒状部３７１の長手方向に対して垂直な断面での形状は、正方形に限定されず、例えば、長方形等の他の四角形、五角形や六角形等の多角形、円形、楕円形等が挙げられる。
【０４２９】
また、図５７および図７４に示すように、本実施形態では、ツール３８は、エンドエフェクターであり、板状をなす板状部３８１を有している。この板状部３８１の先端面３８２は、平面である。また、板状部３８１（先端面３８２）の形状は、正方形をなしている。このツール３８は、ロボット２ａの力検出部２９０の先端に、着脱可能に取り付けられている。また、力検出部２９０が省略され、ツール３８は、ロボットアーム２０（第６アーム２６）の先端に、着脱可能に取り付けられていてもよい。
【０４３０】
なお、平面状のツールは、このツール３８には限定されず、例えば、板状部３８１（先端面３８２）の形状は、正方形に限定されず、例えば、長方形等の他の四角形、五角形や六角形等の多角形、円形、楕円形等が挙げられる。
【０４３１】
次に、ティーチング用ツール３６について説明する。
図５６および図５７に示すように、ティーチング用ツール３６は、作業台９０上の所定の位置に設置されている。ティーチング用ツール３６は、特定点（１点）が認識可能なものであれば特に限定されないが、本実施形態では、棒状をなし、先端３６１が尖った形状をなしている。このティーチング用ツール３６の先端３６１は、特定点として利用される。特定点とは、ツール３７、３８の姿勢のオフセットを求める際に用いられ、位置が既知である点である。なお、ティーチング用ツール３６に代えて、例えば、作業台９０上の所定の位置に、特定点を示す「点」等のマーカーを設けてなる構成であってもよい。
【０４３２】
次に、図５６〜図７６に基づいて、ロボットアーム２０に対するツール３７、３８の姿勢のオフセットを設定する場合のユーザーの操作手順と、ロボットビジョンシステム１００の動作とを説明する。
【０４３３】
コンピューター１１の入力制御部１１５（受付部）がユーザーによる所定の操作指示を受けると、制御部１１１は、複数の姿勢設定用ガイド画面８１（サブウィンドウである指示画面）をユーザーとの対話形式で表示させる姿勢設定用のガイド画面群（画面群）の表示処理を開始する。
【０４３４】
この場合、姿勢設定用ガイド画面８１ｃ、８１ｄ、８１ｅは、特定点の一例であるティーチング用ツール３６の先端３６１に対し、ツール３７を接触させる箇所を順次案内する。これにより、ツール３７、３８の姿勢のオフセットを求めるための操作を容易かつ適確に行うことができる。なお、姿勢設定用ガイド画面は、ツール３７を接触させる箇所を順次案内する形式に限定されず、他の形式であってもよい。以下、具体的に説明する。
【０４３５】
まず、画像処理シーケンス編集部１１１５は、図５９に示す１個目の姿勢設定用ガイド画面８１ａ（姿勢設定用ガイド画面８１）の出力指示（命令）を行い（ステップＳ７１１）、表示制御部１１４は、図１７に示すメインウィンドウ５０において、図５９に示す１個目の姿勢設定用ガイド画面８１ａを表示装置４１（表示部）に表示させる。
【０４３６】
１個目の姿勢設定用ガイド画面８１ａは、ステップ１における入力を案内する画面であり、その姿勢設定用ガイド画面８１ａには、図５９に示す操作の説明（コメント）が表示される。
【０４３７】
また、姿勢設定用ガイド画面８１ａには、「Ｂａｒ  ｔｙｐｅ」および「Ｐｌａｎｅ  ｔｙｐｅ」の２つのラジオボタン８１１と、「キャンセル」と表示されたボタン８１０１（アイコン）、「＜戻る」と表示されたボタン８１０２（アイコン）、「次へ＞」と表示されたボタン８１０３（アイコン）、「ロボットマネージャー（ツールウィザード／Ｊｏｇ＆Ｔｅａｃｈ）」と表示されたボタン８１０４（アイコン）、「シミュレーター」と表示されたボタン８１０５（アイコン）、「完了」と表示されたボタン８１０６（アイコン）が表示される。この姿勢設定用ガイド画面８１ａでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１、８１０３、８１０５に対して、操作指示（選択）が可能になっている。
【０４３８】
また、「Ｂａｒ  ｔｙｐｅ」および「Ｐｌａｎｅ  ｔｙｐｅ」の２つのラジオボタン８１１は、ツールの形状に応じて、設定方法（設定モード）を選択するラジオボタンである。棒状のツール３７についてのツール設定の場合は、「Ｂａｒ  ｔｙｐｅ」を選択し、平面状のツール３８についてのツール設定の場合は、「Ｐｌａｎｅ  ｔｙｐｅ」を選択する。
【０４３９】
まず、棒状のツール３７についてのツール設定について説明する。
ユーザーは、姿勢設定用ガイド画面８１ａにおいて、ラジオボタン８１１で「Ｂａｒ  ｔｙｐｅ」を選択し、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール設定の方法の選択（「Ｂａｒ  ｔｙｐｅ」であること）を受けると（ステップＳ７１２）、画像処理シーケンス編集部１１１５は、図６０に示す２個目の姿勢設定用ガイド画面８１ｂの出力指示を行い（ステップＳ７１３）、表示制御部１１４は、姿勢設定用ガイド画面８１ａに換えて、図６０に示す２個目の姿勢設定用ガイド画面８１ｂを表示装置４１に表示させる。
【０４４０】
２個目の姿勢設定用ガイド画面８１ｂは、ステップ２における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｂには、図６０に示す操作の説明が表示される。
【０４４１】
また、姿勢設定用ガイド画面８１ｂには、ツール番号を選択するためのドロップダウンリスト８１２と、画像イメージ表示部８１３と、ボタン８１０１〜ボタン８１０６とが表示される。この姿勢設定用ガイド画面８１ｂでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６０に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ２でどのような入力操作を行えばよいかを容易に把握することができる。
【０４４２】
また、ボタン８１０４は、ツール３７の位置のオフセットを求めるための情報の入力を案内する位置設定用ガイド画面（図示せず）を呼び出すボタン（呼出部）である。
【０４４３】
このように、表示制御部１１４（コンピューター１１）は、姿勢設定用ガイド画面８１ｂの中に、ツール３７の位置のオフセットを求めるための情報の入力を案内する位置設定用ガイド画面を呼び出すボタン８１０４（呼出部）を表示させる。ツール３７の位置のオフセットとは、予め設定された基準位置に対する実際のツール３７の位置のずれ量を言う。これにより、ユーザーは、ツール３７の位置のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる。なお、位置設定用ガイド画面を呼び出すボタン８１０４は、姿勢設定用ガイド画面８１ａ〜姿勢設定用ガイド画面８１ｆ以外の画面中に表示されるように構成されていてもよい。
【０４４４】
ユーザーは、ツール３７の位置のオフセットが既に設定されている場合は、その設定済みのツール番号をドロップダウンリスト８１２で選択し、ボタン８１０３を押す。
【０４４５】
また、ユーザーは、ツール３７の位置のオフセットが未だ設定されていない場合は、ボタン８１０４を押し、ツール３７の位置のオフセットを設定する。
【０４４６】
入力制御部１１５がユーザーによるボタン８１０４に対する操作指示を受けると、制御部１１１は、複数の位置設定用ガイド画面（サブウィンドウである指示画面）をユーザーとの対話形式で表示させる位置設定用のガイド画面群（画面群）の表示処理を開始する。この詳細な説明は省略するが、前記複数の位置設定用ガイド画面のうちの１つの位置設定用ガイド画面の１例としては、例えば、図１７に示すジョグ動作グループ５２１や図１８に示すジョグパネル５４等が含まれる。また、ツール３７の位置のオフセットを求める方法としては、特に限定されないが、例えば、ツール３７の先端３７２をティーチング用ツール３６の先端３６１に位置させた状態で（図７１参照）、ツール３７の姿勢を変更し、例えば、ツール３７の姿勢を３つの異なる姿勢とし、それぞれの姿勢における情報に基づいて、ツール３７の位置のオフセットを求める。
【０４４７】
以下の説明では、ツール３７の位置のオフセットが既に設定されている場合を例に挙げて説明を続ける。
【０４４８】
ユーザーは、姿勢設定用ガイド画面８１ｂにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール番号の選択等を受けると（ステップＳ７１４）、画像処理シーケンス編集部１１１５は、図６１に示す３個目の姿勢設定用ガイド画面８１ｃの出力指示を行い（ステップＳ７１５）、表示制御部１１４は、姿勢設定用ガイド画面８１ｂに換えて、図６１に示す３個目の姿勢設定用ガイド画面８１ｃを表示装置４１に表示させる。
【０４４９】
３個目の姿勢設定用ガイド画面８１ｃは、ステップ３における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｃには、図６１に示す操作の説明が表示される。
【０４５０】
また、姿勢設定用ガイド画面８１ｃには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｃでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６１に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ３でどのような入力操作を行えばよいかを容易に把握することができる。
【０４５１】
ユーザーは、図７１に示すように、ロボット２ａを動作させ、ツール３７の先端３７２をティーチング用ツール３６の先端３６１に移動させる。この場合、回動軸Ｏ６（図５６参照）の軸方向を鉛直方向と一致させてもよく、また、一致させなくてもよいが、本実施形態では一致させる。
【０４５２】
ユーザーは、姿勢設定用ガイド画面８１ｃにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール３７の先端３７２（第１の点）がティーチング用ツール３６の先端３６１に移動することが完了したこと受けると（ステップＳ７１６）、画像処理シーケンス編集部１１１５は、図６２に示す４個目の姿勢設定用ガイド画面８１ｄの出力指示を行い（ステップＳ７１７）、表示制御部１１４は、姿勢設定用ガイド画面８１ｃに換えて、図６２に示す４個目の姿勢設定用ガイド画面８１ｄを表示装置４１に表示させる。
【０４５３】
４個目の姿勢設定用ガイド画面８１ｄは、ステップ４における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｄには、図６２に示す操作の説明が表示される。
【０４５４】
また、姿勢設定用ガイド画面８１ｄには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｄでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６２に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ４でどのような入力操作を行えばよいかを容易に把握することができる。
【０４５５】
ユーザーは、図７２に示すように、ロボット２ａを動作させ、ツール３７の側面の先端側の点３７３をティーチング用ツール３６の先端３６１に移動させる。
【０４５６】
ユーザーは、姿勢設定用ガイド画面８１ｄにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール３７の側面の先端側の点３７３（第２の点）がティーチング用ツール３６の先端３６１に移動することが完了したことを受けると（ステップＳ７１８）、画像処理シーケンス編集部１１１５は、図６３に示す５個目の姿勢設定用ガイド画面８１ｅの出力指示を行い（ステップＳ７１９）、表示制御部１１４は、姿勢設定用ガイド画面８１ｄに換えて、図６３に示す５個目の姿勢設定用ガイド画面８１ｅを表示装置４１に表示させる。
【０４５７】
５個目の姿勢設定用ガイド画面８１ｅは、ステップ５における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｅには、図６３に示す操作の説明が表示される。
【０４５８】
また、姿勢設定用ガイド画面８１ｅには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｅでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６３に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ５でどのような入力操作を行えばよいかを容易に把握することができる。
【０４５９】
ユーザーは、図７３に示すように、ロボット２ａを動作させ、ツール３７の側面の基端側の点３７４をティーチング用ツール３６の先端３６１に移動させる。点３７４は、点３７３とは異なる点であり、本実施形態では、点３７３が位置する辺と同じ辺上の点である。
【０４６０】
ユーザーは、姿勢設定用ガイド画面８１ｅにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール３７の側面の基端側（根本側）の点３７４（第３の点）がティーチング用ツール３６の先端３６１に移動することが完了したことを受けると（ステップＳ７２０）、制御部１１１は、ここまでに入力された各情報に基づいて、ツール３７の姿勢のオフセットを求め、画像処理シーケンス編集部１１１５は、図６４に示す６個目の姿勢設定用ガイド画面８１ｆの出力指示を行い（ステップＳ７２１）、表示制御部１１４は、姿勢設定用ガイド画面８１ｅに換えて、図６４に示す６個目の姿勢設定用ガイド画面８１ｆを表示装置４１に表示させる。
【０４６１】
６個目の姿勢設定用ガイド画面８１ｆは、確認用のステップ（最終ステップ）における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｆには、図６４に示すツール３７の姿勢のオフセットの設定の設定前および設定後の情報が表示される。すなわち、この例では、ツール３７の姿勢のオフセットの設定前（現状）は、ツール３７のオフセットの設定値（Ｘ、Ｙ、Ｚ、Ｕ、Ｖ、Ｗ）は、（−２５．０８０，７５．４９０，８４．７５０，０．０００，０．０００，０．０００）であり、ツール３７の姿勢のオフセットの設定後は、ツール３７のオフセットの設定値（Ｘ、Ｙ、Ｚ、Ｕ、Ｖ、Ｗ）は、（−２５．０８０，７５．４９０，８４．７５０，−７４．７８５，−２８．４４１，１．５３５）に変更されることが表示される。
【０４６２】
また、このツール３７の姿勢のオフセットが設定されると、図７３に示す互いに直交するｘ軸、ｙ軸およびｚ軸を有する３次元の直交座標系であるツール座標系が設定される。
【０４６３】
この場合、ツール座標系の原点は、ツール３７の先端３７２である。また、ｘ軸は、点３７３と点３７４とを通る直線３７５と直交し、ツール３７の先端３７２を通る軸である。また、ｚ軸は、直線３７５と平行または一致し（図７３に示す例では平行）、ツール３７の先端３７２を通る軸である。また、ｙ軸は、ｘ軸およびｚ軸と直交し、原点からｚ軸の正方向に向って見たとき、ｘ軸を時計回りに９０°回転させた軸である。
【０４６４】
また、姿勢設定用ガイド画面８１ｆには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｆでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１、８１０２、８１０５、８１０６に対して、操作指示が可能になっている。
【０４６５】
ユーザーは、姿勢設定用ガイド画面８１ｆにおいて、ツール設定の設定前および設定後の情報を確認し、ボタン８１０６に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０６に対する操作指示、すなわち、設定の指示を受けると（ステップＳ７２２）、制御部１１１は、ツール設定を行う（ステップＳ７２３）。以上で、ツール３７についての姿勢のオフセットが設定される。
【０４６６】
次に、平面状のツール３８についてのツール設定について説明する。なお、前記ツール３７についてのツール設定との相違点を中心に説明し、同様の事項はその説明を省略する。
【０４６７】
ユーザーは、図６５に示す１個目の姿勢設定用ガイド画面８１ａにおいて、ラジオボタン８１１で「Ｐｌａｎｅ  ｔｙｐｅ」を選択し、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール設定の方法の選択（「Ｐｌａｎｅ  ｔｙｐｅ」であること）を受けると（ステップＳ７１２）、画像処理シーケンス編集部１１１５は、図６６に示す２個目の姿勢設定用ガイド画面８１ｇの出力指示を行い（ステップＳ７１３）、表示制御部１１４は、姿勢設定用ガイド画面８１ａに換えて、図６６に示す２個目の姿勢設定用ガイド画面８１ｇを表示装置４１に表示させる。
【０４６８】
２個目の姿勢設定用ガイド画面８１ｇは、ステップ２における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｇには、図６６に示す操作の説明が表示される。
【０４６９】
また、姿勢設定用ガイド画面８１ｇには、ツール番号を選択するためのドロップダウンリスト８１２と、画像イメージ表示部８１３と、ボタン８１０１〜ボタン８１０６とが表示される。この姿勢設定用ガイド画面８１ｇでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６６に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ２でどのような入力操作を行えばよいかを容易に把握することができる。
【０４７０】
ユーザーは、ツール３８の位置のオフセットが既に設定されている場合は、その設定済みのツール番号をドロップダウンリスト８１２で選択し、ボタン８１０３を押す。
【０４７１】
また、ユーザーは、ツール３８の位置のオフセットが未だ設定されていない場合は、ボタン８１０４を押し、ツール３８の位置のオフセットを設定する。
【０４７２】
以下の説明では、ツール３８の位置のオフセットが既に設定されている場合を例に挙げて説明を続ける。
【０４７３】
ユーザーは、姿勢設定用ガイド画面８１ｇにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール番号の選択等を受けると（ステップＳ７１４）、画像処理シーケンス編集部１１１５は、図６７に示す３個目の姿勢設定用ガイド画面８１ｈの出力指示を行い（ステップＳ７１５）、表示制御部１１４は、姿勢設定用ガイド画面８１ｇに換えて、図６７に示す３個目の姿勢設定用ガイド画面８１ｈを表示装置４１に表示させる。
【０４７４】
３個目の姿勢設定用ガイド画面８１ｈは、ステップ３における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｈには、図６７に示す操作の説明が表示される。
【０４７５】
また、姿勢設定用ガイド画面８１ｈには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｈでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６７に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ３でどのような入力操作を行えばよいかを容易に把握することができる。
【０４７６】
ユーザーは、図７４に示すように、ロボット２ａを動作させ、ツール３８の先端面３８２の中央の点３８３をティーチング用ツール３６の先端３６１に移動させる。この場合、回動軸Ｏ６（図５７参照）の軸方向を鉛直方向と一致させてもよく、また、一致させなくてもよいが、本実施形態では一致させる。
【０４７７】
ユーザーは、姿勢設定用ガイド画面８１ｈにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール３８の先端面３８２の中央の点３８３（第１の点）がティーチング用ツール３６の先端３６１に移動することが完了したこと受けると（ステップＳ７１６）、画像処理シーケンス編集部１１１５は、図６８に示す４個目の姿勢設定用ガイド画面８１ｉの出力指示を行い（ステップＳ７１７）、表示制御部１１４は、姿勢設定用ガイド画面８１ｈに換えて、図６８に示す４個目の姿勢設定用ガイド画面８１ｉを表示装置４１に表示させる。
【０４７８】
４個目の姿勢設定用ガイド画面８１ｉは、ステップ４における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｉには、図６８に示す操作の説明が表示される。
【０４７９】
また、姿勢設定用ガイド画面８１ｉには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｉでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６８に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ４でどのような入力操作を行えばよいかを容易に把握することができる。
【０４８０】
ユーザーは、図７５に示すように、ロボット２ａを動作させ、ツール３８の先端面３８２の中央の点３８３と異なる点３８４をティーチング用ツール３６の先端３６１に移動させる。点３８４の位置は、点３８３の位置と異なれば特に限定されないが、本実施形態では、先端面３８２の所定の辺（図７５中の上下方向に延在する辺）の中央で、前記辺に直交する辺（図７５中の左右方向に延在する辺）の中央からずれた位置である。
【０４８１】
ユーザーは、姿勢設定用ガイド画面８１ｉにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール３８の先端面３８２の点３８４（第２の点）がティーチング用ツール３６の先端３６１に移動することが完了したことを受けると（ステップＳ７１８）、画像処理シーケンス編集部１１１５は、図６９に示す５個目の姿勢設定用ガイド画面８１ｊの出力指示を行い（ステップＳ７１９）、表示制御部１１４は、姿勢設定用ガイド画面８１ｉに換えて、図６９に示す５個目の姿勢設定用ガイド画面８１ｊを表示装置４１に表示させる。
【０４８２】
５個目の姿勢設定用ガイド画面８１ｊは、ステップ５における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｊには、図６９に示す操作の説明が表示される。
【０４８３】
また、姿勢設定用ガイド画面８１ｊには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｊでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１〜ボタン８１０５に対して、操作指示が可能になっている。また、画像イメージ表示部８１３には、図６９に示す画像が表示される。ユーザーは、この画像イメージ表示部８１３に表示された画像により、ステップ５でどのような入力操作を行えばよいかを容易に把握することができる。
【０４８４】
ユーザーは、図７６に示すように、ロボット２ａを動作させ、ツール３８の先端面３８２の中央の点３８３および点３８４と異なる点３８５をティーチング用ツール３６の先端３６１に移動させる。点３８５の位置は、点３８３および点３８４の位置のそれぞれと異なり、かつ、点３８３と点３８４とを通る直線上でない位置であれば特に限定されず、適宜設定される。
【０４８５】
ユーザーは、姿勢設定用ガイド画面８１ｊにおいて、所定の操作を行った後、ボタン８１０３に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０３に対する操作指示、すなわち、ツール３８の先端面３８２の点３８５（第３の点）がティーチング用ツール３６の先端３６１に移動することが完了したことを受けると（ステップＳ７２０）、制御部１１１は、ここまでに入力された各情報に基づいて、ツール３７の姿勢のオフセットを求め、画像処理シーケンス編集部１１１５は、図７０に示す６個目の姿勢設定用ガイド画面８１ｋの出力指示を行い（ステップＳ７２１）、表示制御部１１４は、姿勢設定用ガイド画面８１ｊに換えて、図７０に示す６個目の姿勢設定用ガイド画面８１ｋを表示装置４１に表示させる。
【０４８６】
６個目の姿勢設定用ガイド画面８１ｋは、確認用のステップ（最終ステップ）における入力を案内する画面であり、その姿勢設定用ガイド画面８１ｋには、図７０に示すツール３８の姿勢のオフセットの設定の設定前および設定後の情報が表示される。すなわち、この例では、ツール３８の姿勢のオフセットの設定前（現状）は、ツール３８のオフセットの設定値（Ｘ、Ｙ、Ｚ、Ｕ、Ｖ、Ｗ）は、（２５．７２０，−６５．１５０，８０．７８０，０．０００，０．０００，０．０００）であり、ツール３８の姿勢のオフセットの設定後は、ツール３８のオフセットの設定値（Ｘ、Ｙ、Ｚ、Ｕ、Ｖ、Ｗ）は、（２５．７２０，−６５．１５０，８０．７８０，１１６．４４２，−２６．６７０，−１４．２８３）に変更されることが表示される。
【０４８７】
また、このツール３８の姿勢のオフセットが設定されると、図７６に示す互いに直交するｘ軸、ｙ軸およびｚ軸を有する３次元の直交座標系であるツール座標系が設定される。
【０４８８】
この場合、ツール座標系の原点は、ツール３８の先端面３８２の中央の点３８３である。また、ｘ軸は、点３８３と点３８４とを通る軸である。また、ｚ軸は、先端面３８２に垂直で、点３８３を通る軸である。また、ｙ軸は、ｘ軸およびｚ軸と直交し、原点からｚ軸の正方向に向って見たとき、ｘ軸を時計回りに９０°回転させた軸である。
【０４８９】
また、姿勢設定用ガイド画面８１ｋには、ボタン８１０１〜ボタン８１０６が表示される。この姿勢設定用ガイド画面８１ｋでは、ボタン８１０１〜ボタン８１０６のうち、ボタン８１０１、８１０２、８１０５、８１０６に対して、操作指示が可能になっている。
【０４９０】
ユーザーは、姿勢設定用ガイド画面８１ｋにおいて、ツール設定の設定前および設定後の情報を確認し、ボタン８１０６に対する操作指示を行う。入力制御部１１５がユーザーによるボタン８１０６に対する操作指示、すなわち、設定の指示を受けると（ステップＳ７２２）、制御部１１１は、ツール設定を行う（ステップＳ７２３）。以上で、ツール３８についての姿勢のオフセットが設定される。
【０４９１】
以上のような第２実施形態によっても、前述した実施形態と同様の効果を発揮することができる。
【０４９２】
また、ツール３７、３８の姿勢のオフセットを求めるための情報の入力操作を容易かつ迅速に行うことができる。
【０４９３】
また、ツール３７、３８の位置のオフセットだけでなく、ツール３７、３８の姿勢のオフセットが求まることにより、ロボットアーム２０に対するツールの姿勢に応じて、容易かつ適確に、ツール３７、３８を希望する姿勢にすることができる。
【０４９４】
なお、本実施形態では、棒状のツール３７の姿勢のオフセットの設定について、ツール３７の先端３７２と、ツール３７の側面の先端側の点３７３とが異なり、かつ、ツール３７の先端３７２と、ツール３７の側面の先端側の点３７３と、ツール３７の側面の基端側の点３７４とが、同一直線上に位置していない場合について説明した。
【０４９５】
しかし、このような構成以外の場合でも、棒状のツールの姿勢のオフセットを設定することが可能であり、以下、棒状のツールの姿勢のオフセットの設定について、他の構成例を説明する。
【０４９６】
（構成１）
ツールの先端と、ツールの側面の先端側の点とが一致している場合や、ツールの先端と、ツールの側面の先端側の点と、ツールの側面の基端側の点とが、同一直線上に位置している場合は、ツールの姿勢のオフセットＵ、Ｖ、Ｗのうちのいずれか１つを「０」に設定する。
【０４９７】
（構成２）
ツールの先端と、ツールの側面の先端側の点とが一致している場合や、ツールの先端と、ツールの側面の先端側の点と、ツールの側面の基端側の点とが、同一直線上に位置している場合は、ユーザーが、ツールの姿勢のオフセットＵ、Ｖ、Ｗのうちのいずれか１つを任意の値に設定できるようにする。
【０４９８】
以上、本発明の制御装置、ロボットおよびロボットシステムを図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物が付加されていてもよい。また、本発明は、前記各実施形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０４９９】
２…ロボット、２ａ…ロボット、２ｂ…ロボット、３…撮像部、１０…制御システム、１１…コンピューター、１２…ロボット制御装置、１３…画像処理装置、２０…ロボットアーム、２１…第１アーム、２２…第２アーム、２３…第３アーム、２４…第４アーム、２５…第５アーム、２６…第６アーム、３１…モバイルカメラ、３２…固定カメラ、３６…ティーチング用ツール、３７…ツール、３８…ツール、４１…表示装置、４２…入力装置、５０…メインウィンドウ、５１…サブウィンドウ、５２…パネル、５３…タブ、５４…ジョグパネル、５６…タブ、５７…リスト、６０…プロパティー設定ウィンドウ、６１…サブウィンドウ、６２…フローチャート表示部、６３…閲覧部、６５…ガイド画面、６８…画面、７１…ツール設定画面、７１ａ…ツール設定画面、７１ｂ…ツール設定画面、７１ｃ…ツール設定画面、７２…ローカル設定画面、７２ａ…ローカル設定画面、７２ｂ…ローカル設定画面、７２ｃ…ローカル設定画面、７３…キャリブレーション作成画面、７３ａ…キャリブレーション作成画面、７３ｂ…キャリブレーション作成画面、７３ｃ…キャリブレーション作成画面、７３ｄ…キャリブレーション作成画面、７３ｅ…キャリブレーション作成画面、７３ｆ…キャリブレーション作成画面、７３ｇ…キャリブレーション作成画面、８１…姿勢設定用ガイド画面、８１ａ…姿勢設定用ガイド画面、８１ｂ…姿勢設定用ガイド画面、８１ｃ…姿勢設定用ガイド画面、８１ｄ…姿勢設定用ガイド画面、８１ｅ…姿勢設定用ガイド画面、８１ｆ…姿勢設定用ガイド画面、８１ｇ…姿勢設定用ガイド画面、８１ｈ…姿勢設定用ガイド画面、８１ｉ…姿勢設定用ガイド画面、８１ｊ…姿勢設定用ガイド画面、８１ｋ…姿勢設定用ガイド画面、９０…作業台、９１…給材台、９２…キャリブレーションプレート、９３…ワーク、９４…合格用除材台、９５…不合格用除材台、１００…ロボットビジョンシステム、１１０…処理部、１１１…制御部、１１２…メインメモリー、１１３…記憶部、１１４…表示制御部、１１５…入力制御部、１１６…通信部、１２１…制御部、１２２…メインメモリー、１２３…記憶部、１２６…通信部、１３１…制御部、１３２…メインメモリー、１３３…記憶部、１３６…通信部、２０１…第１アーム、２０２…第２アーム、２０３…スプラインシャフト、２１０…基台、２７０…ハンド、２８０…駆動部、２８１…位置センサー、２８３…モータードライバー、２９０…力検出部、３６１…先端、３７１…棒状部、３７２…先端、３７３…点、３７４…点、３７５…直線、３８１…板状部、３８２…先端面、３８３…点、３８４…点、３８５…点、５０２…ツールバー、５２１…ジョグ動作グループ、５２２…ティーチグループ、６０１…アイコン、６１２…画像イメージ表示部、６１３…実行グループ、６１４…ボタン、６１５…ツールバー、６１６…ティーチグループ、６２１…表示部、６２２…表示部、６５１…ボックス、６５２…ボックス、６５３…ウィンドウ、６６０…フローチャート、６６０ａ…フローチャート、６６０ｂ…フローチャート、６６１…フロー、６６２…フロー、６６２ａ…フロー、６６２ｂ…フロー、６６３…ダイアログボックス、６７１…アイコン、６７２…アイコン、６８０…マーカー、６８１…領域、６８２…領域、６８３…ＯＫボタン、６８４…キャンセルボタン、７０１…ツール設定用アイコン、７０２…ローカル設定用アイコン、７０３…キャリブレーション作成用アイコン、７１１…ラジオボタン、７１２…ドロップダウンリスト、７１３…テキストボックス、７１４…ドロップダウンリスト、７２０…画面、７２１…ラジオボタン、７２２…ドロップダウンリスト、７２３…ラジオボタン、７２４…ジョググループ、７２５…画像イメージ表示部、７２６…ジョグ＆ティーチパネル、７２７…テキストボックス、７２８…ドロップダウンリスト、７２９…チェックボックス、７３０…画面、７３３…ドロップダウンリスト、７３６…チェックボックス、８０１…コマンド入力アイコン、８１１…ラジオボタン、８１２…ドロップダウンリスト、８１３…画像イメージ表示部、１１１０…キャリブレーション制御部、１１１１…制御プログラム編集部、１１１２…制御プログラムビルド部、１１１３…キャリブレーション編集部、１１１４…キャリブレーション実行部、１１１５…画像処理シーケンス編集部、１２１１…制御プログラム実行部、１２１２…ロボット制御部、１３１１…画像処理シーケンス実行部、１３１２…画像処理部、１３１３…撮像部制御部、５２１２…ボタン、６１５１…ティーチボタン、６１５２…キャリブレーション実行ボタン、６２２１…アイコン、６５０１…ボタン、６５０２…ボタン、６５０３…ボタン、６５０４…ボタン、６５１１…アイテム、６５２１…アイテム、６５４０…リスト、６５４１…アイコン、６５４２…文字列、７１０１…ボタン、７１０２…ボタン、７１０３…ボタン、７１０４…ボタン、７１０５…ボタン、７１０６…ボタン、７２０１…ボタン、７２０２…ボタン、７２０３…ボタン、７２０４…ボタン、７２０５…ボタン、７２０６…ティーチボタン、７２０８…ボタン、７２４１…ボタン、７３０１…ボタン、７３０２…ボタン、７３０３…ボタン、７３０４…ボタン、７３０５…ＯＫボタン、７３０６…キャンセルボタン、７３０７…ボタン、７３１１…ドロップダウンリスト、７３１２…ドロップダウンリスト、７３１３…ドロップダウンリスト、７３２１…ラジオボタン、７３２２…ドロップダウンリスト、７３２３…グループ、７３２４…ラジオボタン、７３４１…ローカルウィザードボタン、７３４２…ドロップダウンリスト、７３５１…ツールウィザードボタン、７３５２…ドロップダウンリスト、７３５３…ラジオボタン、７３５４…チェックボックス、７３７１…テキストボックス、７３７２…チェックボックス、７３７３…ティーチボタン、８１０１…ボタン、８１０２…ボタン、８１０３…ボタン、８１０４…ボタン、８１０５…ボタン、８１０６…ボタン、Ａ３１…光軸、Ａ３２…光軸、Ｊ３…軸、Ｏ６…回動軸、Ｐ…ツールセンターポイント、Ｓ１１１…ステップ、Ｓ１１２…ステップ、Ｓ１１３…ステップ、Ｓ１１４…ステップ、Ｓ１１５…ステップ、Ｓ１１６…ステップ、Ｓ１１７…ステップ、Ｓ１１８…ステップ、Ｓ１１９…ステップ、Ｓ１２０…ステップ、Ｓ１２１…ステップ、Ｓ１２２…ステップ、Ｓ１２３…ステップ、Ｓ１２４…ステップ、Ｓ１２５…ステップ、Ｓ１２６…ステップ、Ｓ１２７…ステップ、Ｓ１２８…ステップ、Ｓ１２９…ステップ、Ｓ１３０…ステップ、Ｓ１３１…ステップ、Ｓ１３２…ステップ、Ｓ２１１…ステップ、Ｓ２１２…ステップ、Ｓ２１３…ステップ、Ｓ２１４…ステップ、Ｓ２１５…ステップ、Ｓ２１６…ステップ、Ｓ２１７…ステップ、Ｓ２１８…ステップ、Ｓ２１９…ステップ、Ｓ２２０…ステップ、Ｓ２２１…ステップ、Ｓ２２２…ステップ、Ｓ２２３…ステップ、Ｓ２２４…ステップ、Ｓ２２５…ステップ、Ｓ２２６ａ…ステップ、Ｓ２２６ｂ…ステップ、Ｓ２２７…ステップ、Ｓ２２８…ステップ、Ｓ２２９…ステップ、Ｓ３１…ステップ、Ｓ３１１…ステップ、Ｓ３１２…ステップ、Ｓ３１３…ステップ、Ｓ３１４…ステップ、Ｓ３１５…ステップ、Ｓ３１６…ステップ、Ｓ３１７…ステップ、Ｓ３１８…ステップ、Ｓ３１９…ステップ、Ｓ３２０…ステップ、Ｓ３２１…ステップ、Ｓ３２２…ステップ、Ｓ３２３…ステップ、Ｓ３２４…ステップ、Ｓ３２５…ステップ、Ｓ３２６…ステップ、Ｓ３２７…ステップ、Ｓ３２８…ステップ、Ｓ３２９…ステップ、Ｓ３３…ステップ、Ｓ３３０…ステップ、Ｓ４１…ステップ、Ｓ４１１…ステップ、Ｓ４１２…ステップ、Ｓ４１３…ステップ、Ｓ４１４…ステップ、Ｓ４１５…ステップ、Ｓ４１６…ステップ、Ｓ４１７…ステップ、Ｓ４１８…ステップ、Ｓ４１９…ステップ、Ｓ４２０…ステップ、Ｓ４２１…ステップ、Ｓ４２２…ステップ、Ｓ４２３…ステップ、Ｓ４２４…ステップ、Ｓ４２５…ステップ、Ｓ４２６…ステップ、Ｓ４２７…ステップ、Ｓ４２８…ステップ、Ｓ４２９…ステップ、Ｓ４３…ステップ、Ｓ４３０…ステップ、Ｓ５１…ステップ、Ｓ５１１…ステップ、Ｓ５１２…ステップ、Ｓ５１３…ステップ、Ｓ５１４…ステップ、Ｓ５１５…ステップ、Ｓ５１６…ステップ、Ｓ５１７…ステップ、Ｓ５１８…ステップ、Ｓ５１９…ステップ、Ｓ５２…ステップ、Ｓ５２０…ステップ、Ｓ５２１…ステップ、Ｓ５２２…ステップ、Ｓ５２３…ステップ、Ｓ５２４…ステップ、Ｓ５２５…ステップ、Ｓ５２６…ステップ、Ｓ５２７…ステップ、Ｓ５２８…ステップ、Ｓ５２９…ステップ、Ｓ５３０…ステップ、Ｓ５３１…ステップ、Ｓ５３２…ステップ、Ｓ５３３…ステップ、Ｓ５３４…ステップ、Ｓ５３５…ステップ、Ｓ５３６…ステップ、Ｓ５３７…ステップ、Ｓ５３８…ステップ、Ｓ５３９…ステップ、Ｓ５４…ステップ、Ｓ５４０…ステップ、Ｓ５４１…ステップ、Ｓ５４２…ステップ、Ｓ５４３…ステップ、Ｓ５４４…ステップ、Ｓ５４５…ステップ、Ｓ５４６…ステップ、Ｓ５４７…ステップ、Ｓ６１１…ステップ、Ｓ６１２…ステップ、Ｓ６１３…ステップ、Ｓ６１４…ステップ、Ｓ６１５…ステップ、Ｓ６１６…ステップ、Ｓ６１７…ステップ、Ｓ６１８…ステップ、Ｓ６１９…ステップ、Ｓ６２０…ステップ、Ｓ６２１…ステップ、Ｓ６２２…ステップ、Ｓ６２３…ステップ、Ｓ６２４…ステップ、Ｓ６２５…ステップ、Ｓ６２６…ステップ、Ｓ６２７…ステップ、Ｓ６２８…ステップ、Ｓ６２９…ステップ、Ｓ７１１…ステップ、Ｓ７１２…ステップ、Ｓ７１３…ステップ、Ｓ７１４…ステップ、Ｓ７１５…ステップ、Ｓ７１６…ステップ、Ｓ７１７…ステップ、Ｓ７１８…ステップ、Ｓ７１９…ステップ、Ｓ７２０…ステップ、Ｓ７２１…ステップ、Ｓ７２２…ステップ、Ｓ７２３…ステップ
【図１】
2018176404.tif 000003
【図２】
2018176404.tif 000004
【図３】
2018176404.tif 000005
【図４】
2018176404.tif 000006
【図５】
2018176404.tif 000007
【図６】
2018176404.tif 000008
【図７】
2018176404.tif 000009
【図８】
2018176404.tif 000010
【図９】
2018176404.tif 000011
【図１０】
2018176404.tif 000012
【図１１】
2018176404.tif 000013
【図１２】
2018176404.tif 000014
【図１３】
2018176404.tif 000015
【図１４】
2018176404.tif 000016
【図１５】
2018176404.tif 000017
【図１６】
2018176404.tif 000018
【図１７】
2018176404.tif 000019
【図１８】
2018176404.tif 000020
【図１９】
2018176404.tif 000021
【図２０】
2018176404.tif 000022
【図２１】
2018176404.tif 000023
【図２２】
2018176404.tif 000024
【図２３】
2018176404.tif 000025
【図２４】
2018176404.tif 000026
【図２５】
2018176404.tif 000027
【図２６】
2018176404.tif 000028
【図２７】
2018176404.tif 000029
【図２８】
2018176404.tif 000030
【図２９】
2018176404.tif 000031
【図３０】
2018176404.tif 000032
【図３１】
2018176404.tif 000033
【図３２】
2018176404.tif 000034
【図３３】
2018176404.tif 000035
【図３４】
2018176404.tif 000036
【図３５】
2018176404.tif 000037
【図３６】
2018176404.tif 000038
【図３７】
2018176404.tif 000039
【図３８】
2018176404.tif 000040
【図３９】
2018176404.tif 000041
【図４０】
2018176404.tif 000042
【図４１】
2018176404.tif 000043
【図４２】
2018176404.tif 000044
【図４３】
2018176404.tif 000045
【図４４】
2018176404.tif 000046
【図４５】
2018176404.tif 000047
【図４６】
2018176404.tif 000048
【図４７】
2018176404.tif 000049
【図４８】
2018176404.tif 000050
【図４９】
2018176404.tif 000051
【図５０】
2018176404.tif 000052
【図５１】
2018176404.tif 000053
【図５２】
2018176404.tif 000054
【図５３】
2018176404.tif 000055
【図５４】
2018176404.tif 000056
【図５５】
2018176404.tif 000057
【図５６】
2018176404.tif 000058
【図５７】
2018176404.tif 000059
【図５８】
2018176404.tif 000060
【図５９】
2018176404.tif 000061
【図６０】
2018176404.tif 000062
【図６１】
2018176404.tif 000063
【図６２】
2018176404.tif 000064
【図６３】
2018176404.tif 000065
【図６４】
2018176404.tif 000066
【図６５】
2018176404.tif 000067
【図６６】
2018176404.tif 000068
【図６７】
2018176404.tif 000069
【図６８】
2018176404.tif 000070
【図６９】
2018176404.tif 000071
【図７０】
2018176404.tif 000072
【図７１】
2018176404.tif 000073
【図７２】
2018176404.tif 000074
【図７３】
2018176404.tif 000075
【図７４】
2018176404.tif 000076
【図７５】
2018176404.tif 000077
【図７６】
2018176404.tif 000078