(57)【特許請求の範囲】
【請求項１】
ワーク上のポイントに対して作業を実行する複数の作業ツールと、
前記複数の作業ツールを前記ポイントに移動させる移動手段と、
メインプログラムに従って前記作業ツールと前記移動手段を制御するコントローラと、
を備え、
前記コントローラは、
前記メインプログラムを記憶するメインプログラム記憶手段と、
前記作業ツールに対する制御内容を特定する種別情報と前記ポイントの座標情報を含むステートメントを、前記ポイントごとに並べて成るポイント列を記憶するポイント列記憶手段と、
前記種別情報により特定される制御内容を記述し、前記作業ツール毎の調整情報を参照するための参照情報を含むポイント種別定義を記憶するポイント種別定義記憶手段と、
前記参照情報に対応して用意された前記作業ツール毎の調整情報を記憶する調整情報記憶手段と、
前記ポイント列に従って前記メインプログラムを実行する実行部と、
前記実行部による実行中に、前記ポイント列に含まれる前記ポイント種別定義を継承する際、前記参照情報に基づいて前記調整情報を参照することにより、前記制御内容に前記調整情報を適用させる参照部と、
を有することを特徴とするロボット。
【請求項２】
前記調整情報は、ワーク上の同一の座標に対する前記作業ツール毎のオフセット情報を有するツール位置情報を含むことを特徴とする請求項１記載のロボット。
【請求項３】
前記ポイント列のポイントの位置を検出する際に、複数のツール位置定義の名称の一覧を表示する表示部と、
前記表示部に表示された一覧から、作業ツールに応じて、いずれかのツール位置定義を選択する選択部と、
前記ポイント列に、検出されたポイントの位置を登録する際に、選択された前記ツール位置定義に設定されたオフセット情報を適用させる調整部と、
を有することを特徴とする請求項２記載のロボット。
【請求項４】
前記選択部により、作業ツールであるカメラに対応するツール位置定義が選択された場合に、前記調整部が、前記カメラにより検出された座標をオフセット情報によりオフセットした値を、ポイント列のポイントの座標として登録する登録部を有することを特徴とする請求項３記載のロボット。
【請求項５】
前記調整情報は、各作業ツールを駆動する態様である駆動条件を定義する駆動条件定義を含むことを特徴とする請求項１〜３のいずれか１項に記載のロボット。
【請求項６】
前記調整情報は、ワークの位置を補正する場合の補正情報を含むことを特徴とする請求項１〜５のいずれか１項に記載のロボット。
【請求項７】
前記ポイント種別定義には、他のポイント種別定義を承継することを示す情報と、承継されるポイント種別定義に含まれる参照情報も承継することを示す情報とが含まれることを特徴とする請求項１〜６のいずれか１項に記載のロボット。
【請求項８】
前記調整情報が、どのポイント種別定義で参照されているかを、一覧表示する表示部を有することを特徴とする請求項１〜７のいずれか１項に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポイントを主体とするプログラムを実行するコンピュータにより制御されるロボットに関する。
【背景技術】
【０００２】
各種産業用ロボットが普及している。ロボットは、ワークへのネジ締め、溶接及び塗装、ワークの搬送、ワークへの部品の取り付け、並びに半田付け等を用途とする。このロボットは例えば垂直多関節型の移動手段を有し、移動手段には作業ツールが装着される。移動手段と作業ツールはプログラムを実行するコンピュータにより制御される。コンピュータ制御下で作業ツールは所定ポイントに移動して駆動する。
【０００３】
プログラムはポイント主体のロボット言語で記述される。このプログラムは、ワーク上の複数のポイントごとのポイントステートメントを配列して成るポイント列を用いる。ポイントステートメントには、ポイント番号を筆頭とし、ポイント種別情報とポイント座標情報が含まれる。ポイント種別情報は、所謂関数名であり、ポイントに対する作業内容、移動方法等の制御内容を定義した命令列を特定する。このポイント列は、ワーク上の作業するポイントの位置を指定して登録するポイントティーチングを行うことにより作成される。
【０００４】
ロボットは、ポイント種別情報が特定する命令列に従って移動手段と作業ツールを制御し、座標情報が示すポイントに作業ツールを向かわせ、当該ポイントに対して作業を実行する。
【０００５】
例えば、塗布材料を塗布する塗布作業において、主作業つまり塗布を行う時の作業ツールは、「ニードル」である。しかし、それ以外にも、ワーク位置を検出する「カメラ」やワークの高さを検出する「高さセンサ」といった補助的なものを、作業ツールとして扱う場合がある。ここで、共通の移動手段に、複数の作業ツールを取り付けた場合、各作業ツールの取り付け位置は異なる。このため、ワーク上の同一のポイントに対する作業であっても、使用する作業ツールを替える場合には、移動手段は、作業ツールの位置が同一のポイントに合うように調整する必要がある。
【０００６】
ワーク上の各ポイントに対して位置決めされる作業ツールの位置を、各作業ツールの「ＴＣＰ（Ｔｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｉｎｔ、ツールセンターポイント)」と呼ぶ。作業ツールを替えると、このＴＣＰを切り替えることになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−２２６７３０号公報
【特許文献２】特開２０１４−２１０３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
共通の移動手段に複数のツールを固定して作業させる場合、各ツールの相対的な位置関係は固定である。このため、ワーク上の同一のポイントに対する各ツールの相対的な位置関係は決まっている。このため、ポイントティーチングを行う場合、あらかじめ各ツールの相対的な位置関係を、ポイント属性として設定できるようにしている。このような相対的な位置関係を示す情報を、「切替ＴＣＰ」と呼ぶ。ロボットは、プログラムの実行時に、ポイント毎に設定された切替ＴＣＰに基いて、各作業ツールのＴＣＰを切り替えて、ポイントに対する位置決めを行うことができる。
【０００９】
しかし、ポイントティーチングにおいては、ポイント数が増えると、どのような作業ツールを使用して、どのような作業をさせるのか、これに応じてどの切替ＴＣＰを選択すべきなのかを、各ポイント毎に指定しなければならない。このため、切替ＴＣＰを指定する作業が煩雑であり、指定間違いが多くなるという問題があった。
【００１０】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、各ポイント毎に、作業ツールの位置を調整する情報を設定する必要がなく、間違いを防止できるロボットを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明に係るロボットは、ワーク上のポイントに対して作業を実行する複数の作業ツールと、前記複数の作業ツールを前記ポイントに移動させる移動手段と、メインプログラムに従って前記作業ツールと前記移動手段を制御するコントローラと、を備え、前記コントローラは、前記メインプログラムを記憶するメインプログラム記憶手段と、前記作業ツールに対する制御内容を特定する種別情報と前記ポイントの座標情報を含むステートメントを、前記ポイントごとに並べて成るポイント列を記憶するポイント列記憶手段と、前記種別情報により特定される制御内容を記述し、前記作業ツール毎の調整情報を参照するための参照情報を含むポイント種別定義を記憶するポイント種別定義記憶手段と、前記参照情報に対応して用意された前記作業ツール毎の調整情報を記憶する調整情報記憶手段と、前記ポイント列に従って前記メインプログラムを実行する実行部と、前記実行部による実行中に、前記ポイント列に含まれる前記ポイント種別定義を継承する際、前記参照情報に基づいて前記調整情報を参照することにより、前記制御内容に前記調整情報を適用させる参照部と、を有する。
【００１２】
前記調整情報は、ワーク上の同一の座標に対する作業ツール毎のオフセット情報を有するツール位置定義を含んでもよい。
【００１３】
前記ポイント列のポイントの位置を検出する際に、複数のツール位置定義の名称の一覧を表示する表示部と、前記表示部に表示された一覧から、作業ツールに応じて、いずれかのツール位置定義を選択する選択部と、前記ポイント列に、検出されたポイントの位置を登録する際に、選択されたツール位置定義に設定されたオフセット情報を適用させる調整部と、を有してもよい。
【００１４】
前記選択部により、作業ツールであるカメラに対応するツール位置定義が選択された場合に、前記調整部が、前記カメラにより検出された座標をオフセット情報によりオフセットした値を、ポイント列のポイントの座標として登録する登録部を有してもよい。
【００１５】
前記調整情報は、各作業ツールを駆動する態様である駆動条件を定義する駆動条件定義を含んでもよい。前記調整情報は、ワークの位置を補正する場合の補正情報を含んでもよい。
【００１６】
前記ポイント種別定義には、他のポイント種別定義を承継することを示す情報と、承継されるポイント種別定義に含まれる参照情報も承継することを示す情報とが含まれていてもよい。
【００１７】
前記調整情報が、どのポイント種別定義で参照されているかを、一覧表示する表示部を有してもよい。
【発明の効果】
【００１８】
本発明によれば、ポイント列がポイント種別情報を継承する際、ポイント種別情報に含まれる参照情報を参照することにより、作業ツール毎の位置を調整できるので、各ポイント毎にツールの位置を調整する情報を設定する必要がなく、間違いを防止できる。
【図面の簡単な説明】
【００１９】
【図１】ロボットの全体構成を示す模式図である。
【図２】作業ツールの構成を示す正面図である。
【図３】コントローラの構成を示すブロック図である。
【図４】切替ＴＣＰ番号の設定がないポイント列の全体構成を示す模式図である。
【図５】切替ＴＣＰ番号を設定したポイント列の全体構成を示す模式図である。
【図６】ポイント種別定義の全体構成を示す模式図である。
【図７】ＴＣＰ定義の全体構成を示す模式図である。
【図８】保護モードとアクセス権を示す説明図である。
【図９】切替ＴＣＰを示す模式図である。
【図１０】コントローラの機能を示すブロック図である。
【図１１】ポイントティーチング時のＴＣＰ定義の設定画面を示す模式図である。
【図１２】コントローラによるプログラム類の実行動作を示すフローチャートである。
【図１３】ポイントステートメントの実行例を示す模式図である。
【図１４】ＰＴＰ駆動条件定義を含む調整情報を示すブロック図である。
【図１５】アーチモーションの一例を示す説明図である。
【図１６】ＰＴＰ駆動条件定義の全体構成を示す模式図である。
【図１７】ＰＴＰ駆動条件定義を参照するポイント種別定義の全体構成を示す模式図である。
【図１８】駆動条件番号の設定のないポイント列の全体構成を示す模式図である。
【図１９】駆動状家番号を設定したポイント列の全体構成を示す模式図である。
【図２０】補正係数を含む調整情報を示すブロック図である。
【図２１】ワーク補正番号、カメラ撮り結果格納番号を設定したポイント列の全体構成を示す模式図である。
【図２２】ワーク位置補正対象とするか否かを設定したポイント種別定義の全体構成を示す模式図である。
【図２３】ワーク補正番号、カメラ撮り結果格納番号を設定していないポイント列の全体構成を示す模式図である。
【図２４】参照するポイント種別定義の一覧を示す図である。
【発明を実施するための形態】
【００２０】
［ロボットの構成］
以下、本発明に係るロボットの実施形態について図面を参照しつつ詳細に説明する。図１に示すように、ロボット１は移動手段２とコントローラ３を備える。移動手段２には作業ツール４が装着される。ロボット１は、移動手段２によって所望位置に作業ツール４を位置させ、作業ツール４を駆動させる。
【００２１】
移動手段２は、複数の作業ツール４を移動させる。各作業ツール４は、それぞれワーク上のポイントに対して作業を実行する。図２に示すように、カメラ４ａ、ニードル４ｂ、高さセンサ４ｃである。カメラ４ａは、ワーク上のマークを撮像することによりワークの位置を検出する装置である。ニードル４ｂは、ワークに対して塗布材料を塗布する装置である。高さセンサ４ｃは、作業ツール４からワークの表面までの距離（以下、単に高さとする）を検出する装置である。
【００２２】
移動手段２は、図１に示すように、作業ツール４をＸ軸方向、Ｙ軸方向及びＺ軸方向に移動させ、指定されたポイントに作業ツール４を位置させる。Ｘ軸方向は、ワークが設置される水平面と平行な軸方向である。Ｙ軸方向は、水平面と平行でＸ軸と直交する他軸方向である。Ｚ軸方向は高さ方向である。移動手段２は、作業ツール４をＸ軸方向に移動させるＸリニアスライダ２１、作業ツール４をＹ軸方向に移動させるＹリニアスライダ２２、作業ツール４をＺ軸方向に移動させるＺリニアスライダ２３を備える。
【００２３】
Ｘリニアスライダ２１は、Ｘ軸方向に延設されたレール上にＹリニアスライダ２２を摺設し、Ｘ軸方向に走行する無端ベルトにＹリニアスライダ２２を直交させて固定してなり、無端ベルトをＸ軸モータで走行させ、Ｙリニアスライダ２２をＸ軸に沿って移動させる。
【００２４】
Ｙリニアスライダ２２は、Ｙ軸方向に延設されたレール上にＺリニアスライダ２３を摺設し、Ｙ軸方向に走行する無端ベルトにＺリニアスライダ２３を固定してなり、無端ベルトをＹ軸モータで走行させ、Ｚリニアスライダ２３をＹ軸に沿って移動させる。Ｘリニアスライダ２１及びＹリニアスライダ２２の伝動機構としては、無端ベルトの他、シリンダ、リードスクリュー等の各種アクチュエータを挙げることができる。
【００２５】
Ｚリニアスライダ２３は、Ｚ軸に沿った軸を有するアームを備え、このアームの先端に作業ツール４が装着される。このＺリニアスライダ２３は、例えばラックアンドピニオン機構を有し、ラックをＺ軸方向に延設し、当該ラックにアームを固定して構成される。Ｚ軸モータによりピニオンを回転させることで、アームをＺ軸方向に移動させる。このＺリニアスライダ２３により作業ツール４は、Ｚ軸方向を移動する。
【００２６】
図３に示すように、コントローラ３は、プロセッサ３１とストレージ３２とメモリ３３と周辺機器とで構成される所謂コンピュータである。周辺機器はモータドライバ３４及び操作手段３５である。ストレージ３２は、メインプログラム５、ポイント列６、ポイント種別定義７、調整情報８、切替ＴＣＰ９からなるプログラム類を記憶する記憶手段である。ストレージ３２の各情報の記憶領域が各情報の記憶手段を構成する。メインプログラム５及びポイント列６はメインルーチンとして実行され、ポイント種別定義７はサブルーチンとして実行される。調整情報８は、サブルーチンの実行において参照される。切替ＴＣＰ９は、ポイント列６の実行に当たり、参照される。
【００２７】
プロセッサ３１は、ロボット１の全体の制御を行う制御装置である。プロセッサ３１は、中央処理装置（ＣＰＵ）を主体に構成される。プロセッサ３１は、メインプログラム５に従って、情報の入力、記憶、出力、表示、モータ駆動等の演算処理及び周辺機器の制御処理を行う。
【００２８】
プロセッサ３１は、ポイント列に従ってメインプログラム５を実行するに際して、ポイント列に記述されたポイント種別定義を継承し、その際に、ポイント種別定義に設定された参照情報に基づいて調整情報８を参照する。メモリ３３には、プログラム類が適宜展開され、またプロセッサ３１の演算結果が一時記憶される。モータドライバ３４は、プロセッサ３１から制御処理の結果として入力される指令信号に従ってＸ軸モータ、Ｙ軸モータ、Ｚ軸モータの各モータに電力パルスを供給する。
【００２９】
操作手段３５は、液晶ディスプレイ等の表示部３５２、並びにマウス、キーボード及びティーチングペンダント３５１により成る。ティーチングペンダント３５１は、ロボット１に動作を教えるための入力手段である。このような操作手段３５を用いたティーチング操作によって、プログラム類が作成及び編集される。操作者が所望の設定を行う場合には、操作手段３５を用いた操作によって、設定を入力する。
【００３０】
このプログラム類に従ったロボット１の動作を例示する。図４に示すように、メインプログラム５が実行するポイント列には、ワーク上の位置を示すポイント♯１〜♯６が設定されている。各ポイント♯１〜♯６には、各ポイント♯１〜♯６への作業ツール４の移動と、作業を定義するポイント種別定義７を示すポイント種別情報６３が設定されている。
【００３１】
図１に示すように、カメラ４ａ、ニードル４ｂ、高さセンサ４ｃを併せて、Ｚリニアスライダ２３に取り付ける。この場合、ワーク上の同一地点に対して、各作業ツール４のＴＣＰを合わせた場合、移動手段２の座標はそれぞれ相違することになる。
【００３２】
例えば、ワーク上の同一地点に対して、まずカメラ４ａでマークを検出し、高さセンサ４ｃで高さを検出し、この２つの検出結果から、実際に塗布する位置を補正して、ニードル４ｂで塗布を行うといった作業を行うことを考える。この時、カメラ取り、高さ取り、塗布位置を、それぞれ別の座標としてティーチングして動作させることも可能である。
【００３３】
但し、各作業ツール４が位置決めの対象としているのは、ワーク上の「同一地点」である。そこで、まず、作業ツール４による相対的な位置の違いを、図５に示すように、切替ＴＣＰ値というオフセット情報で設定しておく。そして、目標とするワーク上のポイントの座標としては共通の座標を用いて、各作業ツール４を、共通の座標に対して切替ＴＣＰのオフセット情報に基づくオフセットをした位置に動作させる。このように各ツールを案内するワーク上のポイントを、同一地点の同一座標として表現する利点は、そのポイントを変更して次のポイントに作業をする時に、切替ＴＣＰで調整すれば済むという簡便性がある点である。
【００３４】
直交３軸の場合には、切替ＴＣＰは、共通の座標に対して単純な加算、減算をするためのＸ値、Ｙ値、Ｚ値を示すＴＣＰ値になる。以下の説明は、直交３軸でのＴＣＰ値で行うが、これに制限されるものではない。例えば、回転Ｒ軸が加わった様なロボット１で、Ｒ軸の回転に従って、カメラ４ａ、ニードル４ｂ、高さセンサ４ｃが回転する様な場合には、ＴＣＰ値として、Ｒ軸回転中心に対して、各ツールがどの位置に付いているかを指定する。これにより、各ツールをワーク上の各ポイントに正しく位置決めすることができる。
【００３５】
［プログラム類の構成］
（メインプログラム）
メインプログラム５は、ポイント列に従って、移動手段２を駆動することにより、ワーク上の各ポイントに対して、各作業ツール４の作業に適した位置に、各作業ツール４を位置決めさせるプログラムである。
【００３６】
（ポイント列）
ポイント列６は、図４に示すように、各ポイント♯１〜♯６のポイントステートメント６１が配列される。ポイントステートメント６１は、ポイントの位置と制御内容を示す。このポイントステートメント６１には、ポイント番号６２を筆頭に、ポイント種別情報６３と、ポイント座標情報６４を並べられる。一部のポイントステートメント６１には、切替ＴＣＰ番号６５が更に並ぶ場合がある。
【００３７】
ポイント番号６２は、ポイントステートメント６１がポイント主体の構文であることの宣言及び区切りを明示し、各ポイントステートメント６１を区分けしている。ポイント座標情報６４は、ポイントの位置をロボット１の座標系で特定している。例えば、各ポイント♯１〜♯６のＸ座標、Ｙ座標、Ｚ座標が特定される。切替ＴＣＰ番号６５は、後述する切替ＴＣＰ９における各作業ツール４毎の設定に付された番号である。本実施形態においては、図４に示すように、ポイント列６に、切替ＴＣＰ番号６５を設定しなくてもよい。但し、図５に示すように、一部のポイントにのみ、切替ＴＣＰ番号６５を設定してもよい。
【００３８】
（ポイント種別定義）
ポイント種別定義７は、ポイントに対する制御内容を定義したサブプログラム７を示す所謂関数名である。このポイント種別定義７には、移動方法と作業内容を定義する命令列や調整情報８とのひも付けのための参照情報を含んでいる。ポイント種別定義は、例えば、「カメラ撮り点」、「高さ検出点」、「点塗布点」がある。カメラ撮り点は、カメラ４ａによりワーク上のマークを撮像する作業に関するポイント種別である。高さ検出点は、高さセンサ４ｃにより高さを検出する作業に関するポイント種別である。点塗布点は、ニードル４ｂにより塗布する作業に関するポイント種別である。
【００３９】
図６は、ポイント種別定義７としてカメラ撮り点を定義した例である。識別情報７１は、ポイント種別定義７を特定する所謂関数名である。ポイント種別定義７は、識別情報７１を指定することにより作成される。
【００４０】
所有者７２は、作成時のアカウントを持っている者であり、ポイント種別定義７を管理する権限を有する。保護モード７３は、後述するアクセス権のレベルが異なるモードの設定を示す。なお、ポイント種別定義７は、主として、ディーラーや装置メーカー、設備業者といった者が作成することを想定している。
【００４１】
また、ポイント種別名７４は、ポイント種別定義７の表示に使用するために設定される名称である。この名称は、例えば、「カメラ撮り点」、「Ｃａｍｅｒａ  Ｔａｋｉｎｇ  Ｐｏｉｎｔ」のように、日本語、英語等の異なる言語のものを用意して、表示言語切り替えに対応して名称の表示を変え、判りやすくすることができる。図４、図５で示したポイント列８においては、ポイント種別情報６３にポイント種別名７４を設定することにより、ポイント種別定義７が継承される。
【００４２】
元となるポイント種別情報７５には、当該ポイント種別定義７が継承する他のポイント種別定義７を指定する。この指定は、ポイント種別定義７における識別情報７１を指定することにより行う。例えば、ＰＴＰＰｏｉｎｔは、ポイントとポイントを結ぶように直線移動させるＰＴＰ移動を示す移動方法命令列を含むポイント種別定義７である。
【００４３】
参照ＴＣＰ７６には、参照すべき調整情報８の参照情報を指定する。参照情報としては、例えば、後述するＴＣＰ定義８１のＴＣＰ識別情報８１ａを指定する。但し、参照すべきＴＣＰ定義８１が無い場合、参照ＴＣＰ７６に何も設定しないこともできる。参照ＴＣＰ７６にＴＣＰ定義８１を指定した場合には、このポイント種別定義７を指定したポイントに移動する時には、参照ＴＣＰ７６として指定されたＴＣＰ定義８１の設定を参照して、運転動作する。
【００４４】
移動前作業７７は、ポイントへの移動前に実行されるステートメントの塊である。移動後作業７８は、ポイントへの移動後に実行されるステートメントの塊である。
【００４５】
（ＴＣＰ定義）
ＴＣＰ定義８１は、参照情報に対応して用意された作業ツール４毎の調整情報である。図７に、作業ツール４のカメラ４ａに対応するＴＣＰ定義８１の例を示す。ＴＣＰ識別情報８１ａは、ＴＣＰ定義８１を特定する参照情報である。ポイント種別定義７の参照ＴＣＰ７６に、ＴＣＰ定義８１のＴＣＰ識別情報８１ａを設定することにより、当該ＴＣＰ定義８１が参照される。ＴＣＰ識別情報８１ａは、文字であっても数字であってもよい。なお、所有者８１ｂ、保護モード８１ｃは、上記の所有者７２、保護モード７３と同様である。
【００４６】
ＴＣＰ名８１ｄは、表示に使用するために設定される名称である。この名称は、例えば、「カメラ」、「Ｃａｍｅｒａ」のように、日本語、英語等の異なる言語のものを用意して、表示言語切り替えに対応してＴＣＰの表示を変え、判りやすくする。
【００４７】
ＴＣＰ値８１ｅは、参照情報に対応して用意され、ワーク上の同一の座標に対する作業ツール４毎のオフセット情報であるツール位置情報である。例えば、図７の例では、ニードル４ｂのＴＣＰ値８１ｅを（０、０、０）とした場合のカメラ４ａのオフセット値として、ＴＣＰ−Ｘ座標、ＴＣＰ−Ｙ座標、ＴＣＰ−Ｚ座標が設定されている。Ｚに値が入っているのは、ニードル４ｂで塗布する高さに対して、カメラ４ａは撮像する高さを上げる必要があるためである。
【００４８】
ＴＣＰ定義８１は、主としてディーラーや装置メーカー、設備業者といった者が設定することを想定している。但し、ＴＣＰ値８１ｅを設定するのは、主として最終エンドユーザー、操作者が行うことを想定している。このため、判りやすさが求められる。
【００４９】
なお、図７では、各ＴＣＰ値８１ｅの記憶領域を、直接ＴＣＰ定義８１内に設定している。しかし、この値自体は必ずしも「定義」では無いので、別にＴＣＰ値８１ｅの記憶領域を取って、これを参照する構成にすることもできる。この場合、ＴＣＰ値８１ｅを調整情報８として把握することができ、各ＴＣＰ値８１ｅを識別し、ＴＣＰ定義８１等により参照される識別情報を参照情報として捉えることができる。
【００５０】
（保護モードとアクセス権）
ポイント種別定義７、ＴＣＰ定義８１等の調整情報８を作成するにあたっては、予め作成したログインＩＤとパスワード等のアカウントによるログイン状態にして作成することにより、所有者７２を登録することができる。所有者７２以外の者ができるアクセス権の程度を、保護モード７３として設定することにより、他者の誤操作等による書き換えや削除を防ぐことができる。なお、上記の所有者８１ｂ、保護モード８１ｃ、後述する所有者８２ｂ、保護モード８２ｃも同様である。
【００５１】
図８は、この保護モードとアクセス権の例である。アクセス権としては、変更権、参照権、利用権がある。変更権は、ポイント種別定義７や調整情報８の書き換えや削除といった変更ができる権限である。参照権は、ポイント種別定義７や調整情報８の内容の参照ができる権限である。参照権があると、識別情報がわかり、ポイント種別定義７、調整情報８を参照したり、識別情報を元にした変数として設定値を参照・変更するといったことができる。
【００５２】
図６の例では、ＴＣＰ８１の識別情報であるＣａｍｅｒａＴＣＰ を元に、ＣａｍｅｒａＴＣＰ．Ｘ, ＣａｍｅｒａＴＣＰ．Ｙ，  ＣａｍｅｒａＴＣＰ．Ｚ といった変数識別子により、ＴＣＰ値８１ｅを参照・設定することができる。利用権は、変更や参照はできないが、ＴＣＰ定義８１のＴＣＰ値８１ｅの設定ができる権限である。利用権のみでは、選択枝として表示されるＴＣＰ名８１ｄはわかるが、識別情報は判らない。
【００５３】
保護モードとしては、制限無し、公開、保護、私的がある。「制限無し」のモードは、変更権、参照権、利用権のすべてがあるモードである。「公開」のモードは、変更権はないが、参照権、利用権はあるモードである。「保護」モードは、変更権、参照権はないが、利用権はあるモードである。「私的」モードは、変更権、参照権、利用権の全てがないモードである。
【００５４】
例えば、「私的」のモードを設定することにより、操作者は、誤操作によりＴＣＰ値８１ｅを改変してしまうこともなく、ＴＣＰ値８１ｅを知らなくても、ポイント種別定義７を指定するだけで、ＴＣＰ値８１ｅを利用することができる。
【００５５】
（切替ＴＣＰ）
切替ＴＣＰ９は、各作業ツール４に応じて用意されたオフセット情報となるＴＣＰ値である。図９は、切替ＴＣＰ９として、３つのＴＣＰを用意する。切り替えＴＣＰ番号１は、カメラ４ａに対応するもの、切り替えＴＣＰ番号２は、ニードル４ｂに対応するもの、切り替えＴＣＰ番号３は、高さセンサ４ｃに対応するものである。
【００５６】
図９に、それぞれのＴＣＰ値の例を示す。この例では、上記のＴＣＰ定義８１におけるＣａｍｅｒａＴＣＰと同様に、ニードル４ｂをＴＣＰ値（０、０、０）とした場合の、カメラ４ａや高さセンサ４ｃのＴＣＰ値を、それに対するオフセット値という形で指示している。Ｚに値が入っているのは、ニードル４ｂで塗布する高さに対して、カメラ４ａや高さセンサ４ｃでの検出は高さを上げるためである。
【００５７】
なお、メインプログラム５、ポイント種別定義７に設定されたプログラムに、ＴＣＰ値を設定することもできる。また、共通に使用できるＴＣＰ値を別途設定しておき、いずれにもＴＣＰ値の設定がない場合に、共通のＴＣＰ値を参照してもよい。
【００５８】
［コントローラの各処理部］
コントローラ３は、ロボット１の制御部として機能し、図１０に示すように、実行部３ａ、参照部３ｂを有する。実行部３ａ、参照部３ｂを有する。実行部３ａは、メインプログラム５を実行する処理部である。参照部３ｂは、実行部３ａによるメインプログラム５の実行中に、ポイント列６に含まれるポイント種別定義７を継承する際、参照情報に基づいて、調整情報８を参照することにより、制御内容に調整情報を適用させる処理部である。本実施形態では、ポイント種別定義７を継承する際、参照ＴＣＰ７６に基づいて、ＴＣＰ定義８１を参照し、ＴＣＰ定義８１に設定されたＴＣＰ値８１ｅを、ポイントの座標のオフセット値として適用する。
【００５９】
また、コントローラ３は、プログラミングツールとして機能する。コントローラ３は、操作手段３５の入力に応答して、プログラム類の新規作成及び編集を行う。このプログラム類の編集には、作業対象となるポイントを指定してポイント列を作成するポイントティーチングも含まれる。例えば、表示部３５２にポイント列の内容を表示し、操作手段３５の入力に応じて、各ポイント番号６２ごとに、ポイント種別情報６３、ポイント座標情報６４を設定する。
【００６０】
本実施形態においては、操作手段３５を用いて、ポイントティーチングを行う際に、切替ＴＣＰ番号６５を指定するのではなく、ポイント種別情報６３を指定するだけで、ＴＣＰ定義８１を暗黙的に参照させることができる。このため、ポイント毎に明示的にＴＣＰ値を指定しなくても、ＴＣＰ値が切り替わる。
【００６１】
さらに、コントローラ３は、ポイントティーチングの座標登録の際に、ＴＣＰ定義８１におけるＴＣＰ値８１ｅを反映させて、座標を登録することができる。このために、コントローラ３は、選択部３ｃ、調整部３ｄ、登録部３ｅを有する。選択部３ｃは、あらかじめ作業ツール４毎に定義され、表示部３５２に表示された複数のＴＣＰ定義８１の一覧、例えば、図１１に示すようなＴＣＰ名８１ｄの一覧から、使用する作業ツール４に応じたＴＣＰ定義８１を選択する処理部である。調整部３ｄは、選択されたＴＣＰ定義８１のＴＣＰ値８１ｅによって、当該作業ツールの座標をオフセットした値を、ティーチングにおいて登録される座標として適用する処理部である。登録部３ｅは、調整部３ｄがオフセットした値を、ポイント列６のポイントの座標として登録する処理部である。
【００６２】
［作用］
（作業ツールの移動）
本実施形態における各ポイントへの作業ツール４の移動制御の例を、図１２のフローチャート、図１３の説明図を参照して説明する。なお、図１２は、ロボット１の運転の全体ではなく、ポイントへの作業ツール４の移動についてだけ取り出したフローとなっている。各点での作業ツール４に対する動作を指定する部分や、カメラ撮りや高さ検出の結果に基づいて微調整する等の塗布点の位置補正については、説明を省略した。つまり、ＴＣＰ値により、異なる作業ツール４による座標の差異を吸収する動作について焦点を絞って説明している。また、図１３は、ポイント列６によるポイント種別定義７の継承、ポイント種別定義７のＴＣＰ定義８１の参照の流れを示す図であり、情報の一部を省略している。
【００６３】
コントローラ３の実行部３ａは、メインプログラム５を実行するに当たり、ポイント列６に設定された各ポイントステートメント６１を、ポイント番号６２の順に実行する。まず、ポイント列６のポイントに、切替ＴＣＰ番号６５が設定されているかどうかを判断する（ステップＳ１０１）。ポイント毎に付される切替ＴＣＰ番号６５は、優先度が一番高い。
【００６４】
この切替ＴＣＰ番号６５が設定されている場合には（ステップＳ１０１のＹＥＳ）、ポイント種別定義７における暗黙の指定ではなく、切替ＴＣＰ番号６５に対応するＴＣＰ値を取り出して、ポイントの座標値をＴＣＰ値でオフセットした値を算出し、その位置に作業ツール４を移動させる（ステップ１０２）。
【００６５】
ポイントに切替ＴＣＰ番号６５が設定されていない場合には（ステップＳ１０１のＮＯ）、参照部３ｂは、当該ポイントに設定されたポイント種別定義７に参照ＴＣＰ７６の指定がなされているかどうかを判断する（ステップＳ１０３）。
【００６６】
ポイント種別定義７に、参照ＴＣＰ７６の指定がなされている場合には（ステップＳ１０３のＹＥＳ）、参照部３ｂは、参照ＴＣＰ７６で指定されているＴＣＰ定義８１のＴＣＰ値８１ｅを取り出して、ポイントの座標値をＴＣＰ値８１ｅでオフセットした値を算出し、その位置に作業ツール４を移動させる（ステップＳ１０４）。
【００６７】
例えば、図１３に示すように、ポイント番号１のポイントステートメント６１には、切替ＴＣＰ番号６５が設定されていない。そして、ポイント種別６３に設定されたカメラ撮り点のポイント種別定義７を継承する際に、参照ＴＣＰ７６には、参照名がＣａｍｅｒａＴＣＰのＴＣＰ定義８１が設定されている。このため、参照部３ｂは、ＣａｍｅｒａＴＣＰのＴＣＰ定義８１を参照する。このＣａｍｅｒａＴＣＰに設定されたＴＣＰ値８１ｅによって、ポイント列６のポイント番号１に設定された座標をオフセットした値を、目標とする座標値として、カメラ４ａを移動させる。
【００６８】
さらに、実行部３ａは、ポイント種別定義７に、参照ＴＣＰ７６の指定がない場合（ステップＳ１０３のＮＯ）、ポイント種別定義７内のプログラムの個別設定に、ＴＣＰ値の指定があるかどうか判断する（ステップＳ１０５）。
【００６９】
プログラムに個別設定されたＴＣＰ値がある場合（ステップＳ１０５のＹＥＳ）、このＴＣＰ値によって、ポイント列６の座標をオフセットした値を算出し、その位置に作業ツール４を移動させる（ステップＳ１０６）。
【００７０】
プログラムに個別設定されたＴＣＰ値がない場合（ステップＳ１０５のＮＯ）、共通設定されたＴＣＰ値を取り出して、このＴＣＰ値によって、ポイント列６の座標をオフセットした値を算出し、その位置に作業ツール４を移動させる（ステップＳ１０７）。
【００７１】
（ポイントティーチング）
次に、上記のような動作のためのポイント列６を作成するポイントティーチングの処理を説明する。本実施形態によるポイントティーチングを行う前提として、操作者は、操作手段３５を用いて、あらかじめ「カメラＴＣＰ」、「高さセンサＴＣＰ」、「ニードルＴＣＰ」といったものを「定義」することにより、ＴＣＰ定義８１を用意しておく。そして、ポイント種別定義７の中で、そのポイント種別が作業する作業ツール４に対応するＴＣＰ定義８１を選択して設定する。つまり、ポイント種別定義７をＴＣＰ定義８１とひも付けしておく。
【００７２】
以上のようにポイント種別定義７にひも付けられたＴＣＰ定義８１を用いて、ポイントティーチングする例を、図４のポイント列、図１１の説明図を参照して説明する。
【００７３】
まず、図４に示すポイント列のポイント番号１の点をティーチングする場合を説明する。この場合、図１１（ａ）に示すように、ティーチング時にカメラ４ａによりポイントを検出する際に、操作手段３５の入力に応じて、選択部３ｃが、表示部３５２に表示されたＴＣＰ定義８１のＴＣＰ名８１ｄの一覧から、「カメラ」を選択する。
【００７４】
操作者は、操作手段３５を用いて、カメラ４ａの撮影画像を見ながら、カメラ４ａを移動させて、その中心であるクロスカーソル位置を対象物に合わせる。調整部３ｄは、その時のカメラ４ａの座標を、選択したＴＣＰ定義８１のＴＣＰ値８１ｅによりオフセットした座標を求める。そして、登録部３ｅは、求めた座標を、作業すべきポイントの座標としてポイント列６に登録する。図４の例では、（Ｘ、Ｙ、Ｚ）＝（１００、１５０、５０）の座標が登録される。また、ポイント番号１での作業がカメラ撮りの場合には、ポイント種別情報６３として「カメラ撮り点」を設定する。
【００７５】
ワーク上の同一の点に対する作業を行う場合、ポイント列に登録される座標は同一である。つまり、図４におけるポイント番号１〜３は、作業は異なるが、同一のポイントを対象としている。ポイント番号４〜６も、作業は異なるが、同一のポイントを対象としている。ポイント番号１〜３の同一ポイント、ポイント番号４〜６の同一ポイントに対して、異なるポイント種別６３を設定することにより、異なる作業ツール４による作業を登録することができる。
【００７６】
さらに、例えば、ポイント番号３の点塗布時には、図１１（ｂ）に示すように、ポイントの座標に対するオフセット値を、ポイント種別定義７で参照すべきＴＣＰ定義８１である「ニードル」のＴＣＰ値８１ｅに切り替えて塗布を行う。つまり、上記のように、ポイント番号３で点塗布のポイント種別定義７を継承する際に、当該ポイント種別定義７において設定された点塗布のＴＣＰ定義８１を参照し、そのＴＣＰ値８１ｅでポイントの座標をオフセットした座標に、「ニードル」を移動させる。このように、登録された座標値が同一であっても、異なる作業ツール４をそれぞれ適切な位置に移動させて、作業を実施することができる。
【００７７】
［効果］
本実施形態によれば、ポイント種別定義７にＴＣＰ定義８１をひも付けすることで、各ポイントに対する作業を実行する時に、ＴＣＰ定義８１に設定されたＴＣＰ値８１ｅを参照して動作実行する。このため、ポイント列６における個々のポイントに、ＴＣＰ番号を属性として明示的に設定しなくて済むので操作が簡便となり、間違いを起こすことも少なくなる。
【００７８】
特に、従来のカメラ４ａを使ったポイントティーチングでは、カメラ４ａの取り付け位置とニードル４ｂとの差異や、カメラ座標からロボット座標へ変換する係数を算出するキャリブレーションといった操作が必要となり、間違いやすく、分かりにくくなっていた。本実施形態では、カメラＴＣＰといったＴＣＰ定義８１を用意して、作業ツール４の移動時のみならず、ポイントティーチングにもＴＣＰ定義８１を活用することにより、操作の簡便さと分かりやすさを実現できる。
【００７９】
［第２の実施形態］
［構成］
本実施形態は、基本的には、上記の第１の実施形態と同様の構成である。但し、本実施形態においては、図１４に示すように、調整情報８として、作業ツール４を駆動する態様である駆動条件定義８２が設定されている。ここで、駆動条件定義８２は、作業ツール４のポイント間の移動、つまり、ＰＴＰ（Ｐｏｉｎｔ  ｔｏ  Ｐｏｉｎｔ）駆動における態様を示す。駆動条件定義８２としては、速度、加速度といった基本的なパラメータを含む。さらに、駆動条件定義８２には、アーチモーション指定の様なものも含む。
【００８０】
アーチモーション指定とは、作業ツール４を単に直線的に水平移動させるのではなく、移動途中に高さや方向を変化させて移動させる指定である。例えば、ポイント間の移動として、障害物を超える等のために、一旦高さ方向に移動手段２を動作させた後、次のポイントの上まで水平移動してから下降するといった指定である。
【００８１】
図１５に、指定されたアーチモーションで、ポイント１からポイント２へ移動する例を示す。まず、ポイント１の開始点から、作業ツール４を、所定の距離上昇させる。そして、さらに、水平方向に移動させながら、所定の距離上昇させた後に、ポイント２の終了点の上まで下降させる。水平移動させながら上昇又は下降する箇所は、円弧状の軌跡となる。さらに、所定の距離下降させて、終了点で停止させる。
【００８２】
この場合のアーチモーション指定は、以下のようになる。
（Ａ）Ｚ移動高さ：開始点又は終了点のどちらか高い方から、水平移動位置までのＺ方向の距離
（Ｂ）Ｚのみ上昇距離：水平移動（Ｘ、Ｙ方向移動）させずに上昇する距離
（Ｃ）Ｚのみ下降距離：水平移動（Ｘ、Ｙ方向移動）させずに下降する距離
例えば、（Ｂ）（Ｃ）の設定がなく、（Ａ）のみが設定されている場合は、開始点と終了点が同じ高さであり、Ｚ移動高さまで上昇しながら、アーチ状に移動することになる。
【００８３】
駆動条件定義８２の例を、図１６に示す。この例は、半田ごてによる半田付け作業についての駆動条件を定義しているものである。識別情報８２ａは、駆動条件を特定し、識別する情報である。この識別情報８２ａは、後述するポイント種別定義７に設定されることにより、当該駆動条件定義８２が参照される参照情報である。
【００８４】
所有者８２ｂ、保護モード８２ｃは、上記と同様である。ＰＴＰ条件名８２ｄは、表示に使用するために設定される名称である。この名称は、例えば、日本語、英語等の異なる言語のものを用意して、表示言語切り替えに対応して表示を変えることにより、分かりやすくする。
【００８５】
駆動条件８２ｅは、作業ツール４の駆動条件として、上記のような移動距離を示す値である。例えば、上記のように、Ｚ移動高さ、Ｚのみ上昇距離、Ｚのみ下降距離が記述される。
【００８６】
このような駆動条件定義８２を参照するポイント種別定義７の例を、図１７に示す。このポイント種別定義７は、点半田、クリーニング点のポイント種別である。ポイント種別定義７は、基本的には、上記のポイント種別定義７と同様である。但し、参照ＰＴＰ駆動条件７９が設定される点が異なる。
【００８７】
参照ＰＴＰ駆動条件７９には、参照すべき駆動条件定義８２の識別情報が設定される。図１７の例では点半田点のポイント種別に、ＳｏｌｄｅｒｉｎｇＰＴＰＩＤが設定され、クリーニング点のポイント種別に、ＣｌｅａｎｉｎｇＰＴＰＩＤが設定される。点半田点は、作業ツール４である半田ごてにより、各ポイント毎に点半田を行う作業である。クリーニングは、こて先にエアを吹き付けるなどにより、余分な半田やゴミを取り除く作業である。
【００８８】
なお、図１６では、各駆動条件８２ｅの記憶領域を、直接駆動条件定義８２内に設定している。しかし、別に駆動条件８２ｅの記憶領域を取って、これを参照する構成にすることもできる。この場合、駆動条件８２ｅを調整情報８として把握することができ、各駆動条件８２ｅを識別し、駆動条件定義８２等により参照される識別情報を参照情報として捉えることができる。
【００８９】
［作用］
以上のような本実施形態によるＰＴＰ駆動条件を適用した制御を説明する。
（ポイントティーチング）
まず、本実施形態によるポイントティーチングを説明する。なお、上記の実施形態と同様の処理については、説明を省略する。ポイントティーチングを行う前提として、操作者は、操作手段３５を用いて、あらかじめ駆動条件定義８２として、図１６に示すように、「半田間移動」「クリーニング」といったものを定義しておく。つまり、上記のＴＣＰ定義８１と同様に、識別情報を指定して作成し、所有者、保護モード及び表示に使用する名称、アーチモーションの指定数値を設定する。
【００９０】
そして、ポイント種別定義７の中で、そのポイント種別が作業する作業ツール４に対応する参照ＰＴＰ駆動条件７９を選択して設定する。つまり、ポイント種別定義７を駆動条件定義８２とひも付けしておく。例えば、参照ＰＴＰ駆動条件７９として、駆動条件定義８２の識別情報を設定する。
【００９１】
以上のように、ポイント種別定義７にひも付けられたＰＴＰ駆動条件定義８２を用いて、ポイントティーチングする例を、図１４〜図１７に加えて、図１８、図１９のポイント列を参照して説明する。
【００９２】
図１８は、ポイント番号１〜４のポイントで点半田を行い、その後、ポイント番号５のポイントでこて先のクリーニングを行う例である。ここで、点半田点に対応する駆動条件定義８２においては、ポイント間の点半田点の移動では障害物もないため、タクト短縮の目的で、Ｚ移動高さの指定を、５ｍｍと少なくしている。一方、クリーニングする場合、クリーニング箇所への移動があるため、Ｚをやや高く５０ｍｍ上昇させている。
【００９３】
なお、半田間移動、クリーニングについて、それぞれＰＴＰ駆動条件を設定し、駆動条件番号６６に１、２を付しておくことも考えられる。例えば、駆動条件番号６６の１は、Ｚ移動高さ５ｍｍとする駆動条件、駆動条件番号６６の２は、Ｚ移動高さ５０ｍｍとする駆動条件とする。この場合、図１９に示すように、ポイント番号１〜４のポイントに、それぞれ駆動条件番号６６の１を指定し、ポイント番号５のポイントに、駆動条件番号６６の２を付けるといったことで、駆動条件をポイントの属性として指定することになる。
【００９４】
また、メインプログラム５、ポイント種別定義７に設定されたプログラムに、駆動条件を設定することもできる。また、共通の駆動条件を別途設定しておき、いずれにも駆動条件の設定がない場合に、共通の駆動条件を参照してもよい。
【００９５】
（作業ツールの移動）
以上のように設定されたポイント列に基づく実行部３ａの運転実行においては、ポイントに設定された駆動条件番号６６が存在する場合には、この駆動条件番号６６に基づいて、移動を行う。
【００９６】
駆動条件番号６６が存在しない場合には、参照部３ｂがポイント種別定義７の参照ＰＴＰ駆動条件７９を参照して、これに従って移動を行う。例えば、図１８に示すように、ポイント番号１のポイントステートメント６１には、駆動条件番号６６が設定されていない。そして、ポイント種別６３に設定された点半田点のポイント種別定義７には、参照ＰＴＰ駆動条件７９として、ＳｏｌｄｅｒｉｎｇＰＴＰＩＤの識別情報が設定されている。
【００９７】
このため、ＳｏｌｄｅｒｉｎｇＰＴＰＩＤの駆動条件定義８２を参照する。このＳｏｌｄｅｒｉｎｇＰＴＰＩＤに設定された駆動条件８２ｅに従って、アーチモーションにより半田ごてが移動する。
【００９８】
ポイントに設定された駆動条件番号６６が存在せず、ポイント種別定義７に参照ＰＴＰ駆動条件７９が設定されていなければ、プログラム設定あるいは共通設定の駆動条件に従う。
【００９９】
［効果］
本実施形態によれば、「ＴＣＰ定義」と同様に「ＰＴＰ駆動条件」を定義できるようにして、ポイント種別定義７の中で駆動条件定義８２とひも付けている。このため、ポイントティーチングにおいて、各ポイント番号１〜５のポイント種別６３にポイント種別を設定するだけで済む。図１９に示すように、ポイント列の各ポイントの属性として、駆動条件番号６６により明示的に指定する必要がなくなり、簡便となるとともに、誤りを少なくすることができる。
【０１００】
［第３の実施形態］
［構成］
本実施形態は、基本的には、上記の第１の実施形態と同様の構成である。但し、本実施形態においては、図２０に示すように、調整情報８として、補正係数８３が含まれている。補正係数８３は、ワーク位置補正を行う場合に使用する係数である。
【０１０１】
コントローラ３は、複数のワークの位置や高さを、カメラ４aにより撮像した画像認識によって、又は高さセンサ４ｃを使って測定し、ワーク毎に、ティーチングしたポイントから補正して作業を行うことができる。
【０１０２】
なお、例えば、複数の異なったワークがある場合、それぞれのワークに対応して、複数の補正量を補正係数として取得しておくこともできる。この場合、補正を適用する必要がある場合には、ポイント毎に補正の適用を指定することになる。
【０１０３】
つまり、図２１に示すように、ポイント列における各ポイントに、属性としてワーク補正番号６７を付けて、位置補正を行うか否かを明示的に指定する。ワーク補正番号６７は、複数の補正係数を格納する領域であるカメラ撮り結果格納番号６８に対応する。
【０１０４】
図２１のポイント列は、カメラ４ａでワークを撮影し、位置補正量を算出し、点塗布を行うといった作業を繰り返す例である。例えば、ポイント番号１では、カメラ撮りを行う。このポイントには、切替ＴＣＰ番号として１番を指定することで、カメラ４ａのＴＣＰ値を対応させることを明示的に示している。
【０１０５】
また、カメラ撮り結果格納番号６８として１番を指定することで、カメラ撮りをした結果としてワークの補正係数を、ワーク補正番号６７で指定した１番の格納領域にしまうことを指示している。そして、ポイント番号２の点塗布においては、ワーク補正番号６７が１となっているため、１番の格納領域に収納されている補正係数を用いて、ワークの位置を補正する。
【０１０６】
しかし、ワークが１つだけの場合や、複数のワークであっても、測定と作業を交互に行うような場合には、複数の補正係数を登録する必要はない。また、ワーク補正番号６７、カメラ撮り結果格納番号６８による指定といった手法も煩雑である。
【０１０７】
但し、この様な場合であっても、ワークとして位置補正を適用すべきポイントか、そうでは無いポイントかといった区別は必要となる。本実施形態においては、図２２に示すように、ポイント種別定義７内に、ワーク位置補正対象８０を含めて、参照情報として、位置補正の対象とするか否かの情報を設定できるようにする。
【０１０８】
例えば、通常のワークではない場合には、ワーク位置補正の対象とせず、通常のワークの場合には、ワーク位置補正の対象とする。この場合、ポイント種別定義７内の「カメラ撮り点」が通常のワークでない場合、ワーク位置補正対象８０に「対象としない」を設定する。「点塗布点」が通常のワークである場合には、ワーク位置補正対象８０には「対象とする」を設定する。その他のポイント種別定義７の内容については、上記の実施形態と同様であり、説明は省略する。
【０１０９】
［作用］
（ポイントティーチング）
以上のような本実施形態においては、補正対象とするか否かをポイント種別定義で設定しておくことにより、ポイントティーチングでは、ワーク補正番号６７を設定する必要がなくなる。例えば、図２３のポイント列に示すように、ポイント番号１のカメラ撮り点で、「カメラ撮り結果格納番号」の指定もしていない。一方、ポイント番号２の点塗布点では、「ワーク補正番号」の指定もしていない。
【０１１０】
一方、ポイント種別定義７における「カメラ撮り点」のワーク位置補正対象８０には、「対象としない」が設定されている。そして、「点塗布点」のワーク位置補正対象８０には、「対象とする」が設定されている。
【０１１１】
（作業ツールの移動）
以上のように設定されたポイント列に基づく実行部３ａの運転実行においては、ポイント列のポイントに、ワーク補正番号６７が付いていれば、このワーク補正番号６７に従ってワーク位置補正を行う。
【０１１２】
ワーク補正番号６７が付いていなければ、参照部３ｂが、ポイント種別定義７のワーク位置補正対象８０の設定を参照する。カメラ撮り点ではワーク補正番号６７も、カメラ撮り結果格納番号６８の指定もされておらず、ポイント種別定義７のワーク位置補正対象８０には「対象としない」が指定されている。このような場合には、補正はしないが、次の点塗布点において、ストレージ３２内の補正係数８３の格納領域を利用することを暗黙指定している。
【０１１３】
次に、ポイント番号２の点塗布点は、ワーク補正番号６７も、カメラ撮り結果格納番号６８の指定もされていない。このような場合は、参照部３ｂが、ポイント種別定義７のワーク位置補正対象８０の設定を参照する。点塗布点のワーク位置補正対象８０には「対象とする」が指定されている。このような場合には、ストレージ３２内の共用の領域に格納されているワーク補正係数を使い、ワーク位置補正を行う。
【０１１４】
なお、ポイント毎のワーク補正番号６７が存在する場合には、その設定を優先する。これにより、ワーク補正が複数必要な場合は、ワーク補正番号６７で指定すればよい。
【０１１５】
［効果］
以上のように、補正対象とするか否かをポイント種別定義７で設定しておくことにより、ワーク補正が１つで済む場合には、ワーク補正番号６７、カメラ撮り結果格納番号６８を設定する必要がなくなり、操作が簡便となる。
【０１１６】
また、作業対象が通常のワーク以外であることを、ポイント種別定義７の中で指定することにより、その点はワーク位置補正の対象外にするといたことを自動的に行うことができる。
【０１１７】
［第４の実施形態］
上記の実施形態におけるポイント種別定義７では、「元となるポイント種別情報」に、基本的なポイント種別だけでなく、定義したポイント種別を使うこともできる。いわゆる「クラス継承」である。この場合に、上記の参照ＴＣＰ、参照ＰＴＰ駆動条件、又はワーク補正対象の設定についても、継承元となるポイント種別定義７に記述されたものを継承することが考えられる。
【０１１８】
そこで、本実施形態においては、ポイント種別定義７の継承について、条件を設定することができる。例えば、ポイント種別定義７の参照ＴＣＰ７６の設定として、継承元となるポイント種別定義７を基底種別とした場合、以下の３つを選択設定できるようにする。これは、参照ＰＴＰ駆動条件７９、ワーク位置補正対象８０についても同様である。
（１）基底種別の設定を継承する
（２）基底種別の設定を継承しない
（３）特定のＴＣＰ値を指定する
【０１１９】
（１）の「基底種別の設定を継承する」を設定した場合には、「元となるポイント種別情報」で設定されたポイント種別定義７に付けられた参照ＴＣＰ７６のＴＣＰ定義８１を継承する。つまり、当該ＴＣＰ定義８１のＴＣＰ値８１ｅによるオフセットを作用させる。
【０１２０】
（２）の「基底種別の設定を継承しない」を設定した場合には、参照ＴＣＰ７６は付いていないとして扱う。つまり、継承されるポイント種別定義７の参照ＴＣＰ７６は使用しない。
【０１２１】
（３）の「特定のＴＣＰを指定する」を設定した場合には、指定されたＴＣＰ値を参照する。
【０１２２】
例えば、カメラ撮り点（ＣａｍｅｒａＴａｋｉｎｇ）を、「元となるポイント種別情報」として指定し、（１）「基底種別の設定を継承する」に設定したポイント種別を新たに定義したとする。この場合、このポイントでは、継承元に設定されている ＣａｍｅｒａＴＣＰ を参照することになる。
【０１２３】
［第５の実施形態］
上記のように、ポイント種別定義７の保護モードを、「保護」にすることにより、利用権のみを提供し、内容についての参照をできなくすることができる。しかし、参照権が無いと、参照ＴＣＰ、参照ＰＴＰ駆動条件等として何が設定されているか判らない。また、ＴＣＰ定義８１や駆動条件定義８２に基づき、これらの値を設定する場面でも、どのポイント種別定義７で参照されるのかが分からない。
【０１２４】
本実施形態においては、参照権がない場合であっても、調整情報８が、どのポイント種別定義で参照されているかを、表示部３５２が一覧表示する。例えば、図２４に示すように、ＴＣＰ定義８１、駆動条件定義８２が参照されるポイント種別定義７が一覧表示される。
【０１２５】
このため、操作者は、ポイント種別定義７でどのような調整情報８が参照されるか、調整情報８がどのようなポイント種別定義７で参照されるかを知ることができ、運転動作でどのような動作になるかを詳細に理解できる。
【０１２６】
特に、ポイント種別定義を継承によって行い、参照ＴＣＰ７６や参照ＰＴＰ駆動条件７９等を継承するような場合、結果的に運転時にどの様な参照が行われるかを定義からひもとく必要がなくなり、便利である。
【０１２７】
［他の実施形態］
以上のように本発明の実施形態を説明したが、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。そして、この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１２８】
上記の実施形態で示した調整情報である、ＴＣＰ定義、ＴＣＰ値、駆動条件定義、駆動条件、補正係数は、いずれかを単独で使用する構成としてもよいし、複数の組み合わせで使用する構成としてもよい。
【０１２９】
また、例えば、ロボット１に対するプログラミングを直接ロボット１に対して行う例を示したが、これに限らず、ロボット１とは別のコンピュータ等のプログラミングツールで行うようにし、プログラム類をロボット１にロードするようにしてもよい。
【符号の説明】
【０１３０】
１  ロボット
２  移動手段
２１  Ｘリニアスライダ
２２  Ｙリニアスライダ
２３  Ｚリニアスライダ
３  コントローラ
３１  プロセッサ
３２  ストレージ
３３  メモリ
３４  モータドライバ
３５  操作手段
３５１  ティーチングペンダント
３５２  表示部
３ａ  実行部
３ｂ  参照部
３ｃ  選択部
３ｄ  調整部
３ｅ  登録部
４  作業ツール
４ａ  カメラ
４ｂ  ニードル
４ｃ  高さセンサ
５  メインプログラム
６  ポイント列
６１  ポイントステートメント
６２  ポイント番号
６３  ポイント種別情報
６４  ポイント座標情報
６５  切替ＴＣＰ番号
６６  駆動条件番号
６７  ワーク補正番号
６８  カメラ撮り結果格納番号
７  ポイント種別定義
７１  識別情報
７２、８１ｂ、８２ｂ  所有者
７３、８１ｃ、８２ｃ  保護モード
７４  ポイント種別名
７５  元となるポイント種別情報
７６  参照ＴＣＰ
７７  移動前作業
７８  移動後作業
７９  参照ＰＴＰ駆動条件
８０  ワーク位置補正対象
８  調整情報
８１  ＴＣＰ定義
８１ａ  ＴＣＰ識別情報
８１ｄ  ＴＣＰ名
８１ｅ  ＴＣＰ値
８２  駆動条件定義
８２ａ  識別情報
８２ｄ  ＰＴＰ条件名
８２ｅ  駆動条件
８３  補正係数
９  切替ＴＣＰ
【図１】
0006585391.tif 000002
【図２】
0006585391.tif 000003
【図３】
0006585391.tif 000004
【図４】
0006585391.tif 000005
【図５】
0006585391.tif 000006
【図６】
0006585391.tif 000007
【図７】
0006585391.tif 000008
【図８】
0006585391.tif 000009
【図９】
0006585391.tif 000010
【図１０】
0006585391.tif 000011
【図１１】
0006585391.tif 000012
【図１２】
0006585391.tif 000013
【図１３】
0006585391.tif 000014
【図１４】
0006585391.tif 000015
【図１５】
0006585391.tif 000016
【図１６】
0006585391.tif 000017
【図１７】
0006585391.tif 000018
【図１８】
0006585391.tif 000019
【図１９】
0006585391.tif 000020
【図２０】
0006585391.tif 000021
【図２１】
0006585391.tif 000022
【図２２】
0006585391.tif 000023
【図２３】
0006585391.tif 000024
【図２４】
0006585391.tif 000025