(57)【要約】【課題】ワークを載置した載置面上の該ワークに回転ずれがある場合に、簡単な作業で、ロボットの作業プログラムの修正ができ、作業プログラムを再利用する場合の教示修正時間の短縮を行うことができるロボットにおける作業プログラの修正方法及び作業プログラム修正装置を提供する。【解決手段】ロボット制御装置５０は既存作業プログラムの第１教示点と、該第１教示点に対応するワーク上の第２教示点の位置の差を算出し、この差に基づいて既存の作業プログラムの教示点の位置を修正する。ロボット制御装置５０は、作業プログラム上の第１教示点から第４教示点へ向かうベクトルとワーク上の第２教示点から第３教示点へ向かうベクトルとの回転量を算出し、回転量に基づいて既存の作業プログラムの教示点におけるマニピュレータ１０の位置姿勢を修正する。【選択図】図１
2010082729.tif 000002
【特許請求の範囲】
【請求項１】
載置面に載置されたワークが、前記載置面に対して回転ずれが生じた場合のロボットにおける作業プログラム修正方法において、
変換元である作業プログラムの１つの教示点（以下、第１教示点という）におけるロボットの位置姿勢を取り込む段階と、
前記第１教示点に対応するワーク上の点にロボットを位置させてその点（以下、第２教示点という）のロボットの位置姿勢を取り込む段階と、
前記第２教示点から離間した前記ワーク上の教示点であって、前記作業プログラムの第１教示点と離間した第４教示点に対応する第３教示点にロボットを位置させて第３教示点のロボットの位置姿勢を取り込む段階と、
前記第１教示点と第２教示点の位置の差を算出し、この差に基づいて前記作業プログラムの教示点の位置を修正する段階と、
前記第１教示点から第４教示点へ向かうベクトルと、前記第２教示点から第３教示点へ向かうベクトルの回転量を算出し、前記回転量に基づいて前記作業プログラムの教示点におけるロボットの位置姿勢を修正する段階とを
含むことを特徴とするロボットにおける作業プログラム修正方法。
【請求項２】
載置面に載置されたワークが、前記載置面に対して回転ずれが生じた場合に、変換元である作業プログラムの１つの教示点（以下、第１教示点という）におけるロボットの位置姿勢を取り込み、前記第１教示点に対応するワーク上の点にロボットを位置させてその点（以下、第２教示点という）のロボットの位置姿勢を取り込み、前記第２教示点から離間した前記ワーク上の教示点であって、前記作業プログラムの第１教示点と離間した第４教示点に対応する第３教示点にロボットを位置させて第３教示点のロボットの位置姿勢を取り込むことにより、前記作業プログラムを修正するロボットにおける作業プログラム修正装置であって、
前記第１教示点と第２教示点の位置の差を算出し、この差に基づいて前記作業プログラムの教示点の位置を修正する教示点位置修正手段と、
前記第１教示点から第４教示点へ向かうベクトルと、前記第２教示点から第３教示点へ向かうベクトルの回転量を算出し、前記回転量に基づいて前記作業プログラムの教示点におけるロボットの位置姿勢を修正する位置姿勢修正手段と
を備えることを特徴とするロボットにおける作業プログラム修正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットにおける作業プログラ修正方法及び作業プログラム修正装置、特に、ティーチングプレイバックロボットの作業プログラム修正方法及び作業プログラム修正装置に関する。
【背景技術】
【０００２】
例えば、アーク溶接ロボットでは、しばらく生産を中止していたワークを溶接する場合、ワークを以前の設置姿勢関係に、完全に戻すことができない場合がしばしば生ずる。この場合、以前使用していた溶接プログラムを教示修正する必要がある。
【０００３】
特許文献１では、このような場合、変換元の３点と変換先の３点を指定することによるいわゆる三次元シフトを行うことのできるロボット制御装置が開示されている。特許文献２では、レイアウトデータ、ツール幾何データ及びロボット幾何データを含むプログラム作成用データを入力でき、プログラム作成用データが変更された場合に新しいプログラムを容易に作成する装置が開示されている。
【０００４】
特許文献３では、複数の教示点位置のうち、既に修正された修正後の教示点位置と、これら修正後の教示点位置に対応する修正前の教示点位置に基づいて、前記修正前の教示点位置に対する位置修正量を算出し、この位値修正量に基づいて複数の教示点のうち未だ修正されていない未修整教示点位置を補正し補正後位置を算出する装置が開示されている。
【特許文献１】特開平３−７７１０６号公報
【特許文献２】特開平１０−６３３２２号公報
【特許文献３】特開２００７−２４９２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ワークを台に載置する場合、台の載置面に載置されたワークが、前記載置面に対して回転ずれが生ずる場合がある。ところが、このような場合、特許文献１では、変換元の代表点３点、変換先の代表点３点の合計６点を、ロボットを手動操作で動かして指定する必要があるため、非常に手間が掛かる問題がある。特許文献２では、１教示点の修正位置のような簡単なプログラムの修正であっても、ロボットプログラムとレイアウトデータ、ツール幾何データ及びロボット幾何データを含む詳細なプログラム作成用データが必要である問題がある。特許文献３では、単純に作業線が平行にずれている場合のみ対応できるようになっており、回転ずれの場合には対応できない問題がある。
【０００６】
本発明の目的は、ワークを載置した載置面上の該ワークに回転ずれがある場合に、簡単な作業で、ロボットの作業プログラムの修正ができ、作業プログラムを再利用する場合の教示修正時間の短縮を行うことができるロボットにおける作業プログラの修正方法及び作業プログラム修正装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記問題点を解決するために、請求項１に記載の発明は、載置面に載置されたワークが、前記載置面に対して回転ずれが生じた場合のロボットにおける作業プログラム修正方法において、変換元である作業プログラムの１つの教示点（以下、第１教示点という）におけるロボットの位置姿勢を取り込む段階と、前記第１教示点に対応するワーク上の点にロボットを位置させてその点（以下、第２教示点という）のロボットの位置姿勢を取り込む段階と、前記第２教示点から離間した前記ワーク上の教示点であって、前記作業プログラムの第１教示点と離間した第４教示点に対応する第３教示点にロボットを位置させて第３教示点のロボットの位置姿勢を取り込む段階と、前記第１教示点と第２教示点の位置の差を算出し、この差に基づいて前記作業プログラムの教示点の位置を修正する段階と、前記第１教示点から第４教示点へ向かうベクトルと、前記第２教示点から第３教示点へ向かうベクトルの回転量を算出し、前記回転量に基づいて前記作業プログラムの教示点におけるロボットの位置姿勢を修正する段階とを含むことを特徴とするロボットにおける作業プログラム修正方法を要旨とするものである。
【０００８】
請求項２の発明は、載置面に載置されたワークが、前記載置面に対して回転ずれが生じた場合に、変換元である作業プログラムの１つの教示点（以下、第１教示点という）におけるロボットの位置姿勢を取り込み、前記第１教示点に対応するワーク上の点にロボットを位置させてその点（以下、第２教示点という）のロボットの位置姿勢を取り込み、前記第２教示点から離間した前記ワーク上の教示点であって、前記作業プログラムの第１教示点と離間した第４教示点に対応する第３教示点にロボットを位置させて第３教示点のロボットの位置姿勢を取り込むことにより、前記作業プログラムを修正するロボットにおける作業プログラム修正装置であって、前記第１教示点と第２教示点の位置の差を算出し、この差に基づいて前記作業プログラムの教示点の位置を修正する教示点位置修正手段と、前記第１教示点から第４教示点へ向かうベクトルと、前記第２教示点から第３教示点へ向かうベクトルの回転量を算出し、前記回転量に基づいて前記作業プログラムの教示点におけるロボットの位置姿勢を修正する位置姿勢修正手段とを備えることを特徴とするロボットにおける作業プログラム修正装置を要旨とするものである。
【発明の効果】
【０００９】
請求項１の方法によれば、ワークを載置した載置面上の該ワークに回転ずれがある場合に、第１教示点と、第２教示点、及び第３教示点のロボットの位置姿勢を取り込むだけでよいため、簡単な作業で、ロボットの作業プログラムの修正ができ、作業プログラムを再利用する場合の教示修正時間の短縮を行うことができる効果を奏する。
【００１０】
請求項２の装置によれば、ワークを載置した載置面上の該ワークに回転ずれがある場合に、第１教示点と、第２教示点、及び第３教示点のロボットの位置姿勢を取り込むだけでよいため、簡単な作業で、ロボットの作業プログラムの修正ができ、作業プログラムを再利用する場合の教示修正時間の短縮を行うことができる効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の作業プログラム修正装置をロボット制御装置５０に具体化した一実施形態を図１及び図２を参照して説明する。図１はティーチングプレイバック方式を採用した産業用ロボットの一般的な構成図である。
【００１２】
同図に示すように、マニピュレータ１０は、アーム２０と、アーム２０の先端にワークＷを加工するためのツールＴを備えている。マニピュレータ１０は、複数の関節を有しており、該複数の関節は図示しない駆動モータにて駆動される。そして、前記駆動モータに直結された図示しないエンコーダから関節角度が検出される。
【００１３】
ティーチペンダント３０は、ワークＷに対するマニピュレータ１０の動作を作業者が教示するための装置である。ティーチペンダント３０の盤面上には、マニピュレータ１０を移動させるための複数のボタン群４０、記憶キー４０ａ、実行キー（図示しない）及びモード切替キー４０ｂを含む各種ボタン及び各種キーが装備されている。これらのボタン又はキーの操作により、後述するキー入力されたデータ、或いは、後述する各種情報をロボット制御装置５０が備える図示しない記憶部に格納可能である。図に示すようにボタン群４０は、座標系の方向（±Ｘ，±Ｙ，±Ｚ）に応じた複数のボタンが装備されている。ボタン群４０のいずれかのボタンの押下により、そのボタンに対応した方向にマニピュレータ１０が移動する。例えば、ロボット個体に固有の座標系であるベース座標系でマニピュレータ１０を移動させる場合は、ボタン群４０のＸ＋ボタンを押すと、ベース座標系のＸ＋方向にマニピュレータ１０が移動する。
【００１４】
このように、作業者はボタン群４０を操作することにより、マニピュレータ１０を所望の位置に動かして、加工作業を行わせるための作業経路を教示する。そして、作業経路上の教示点にツールＴを位置させた状態で、記憶キー４０ａが押されると、該教示点におけるマニピュレータ１０の位置姿勢（位置姿勢座標値）が教示データとしてロボット制御装置５０に記憶される。ロボット制御装置５０は、図示しないコンピュータにより構成され、図示しない記憶部にマニピュレータ１０を作動するために作業プログラムが格納されている。ロボット制御装置５０は、前記作業プログラムに従って教示データ及び図示しない前記エンコーダからの現在位置情報（すなわち、関節角度）等に基づいて、マニピュレータ１０の駆動モータを駆動制御して、ツールＴを教示点に移動させる。本実施形態のロボット制御装置５０は、教示点位置修正手段及び位置姿勢修正手段に相当する。
【００１５】
さて、上記のように構成されたロボット制御装置５０の作用を図２を参照して説明する。
（実施形態の作用）
本実施形態の作業プログラム修正方法は、特に、ワークＷを載置する台６０が安定しており、平面である載置面６０ａ上にワークＷが載置された場合、この載置面６０ａ上でワークＷに回転ずれがある場合に有効である。なお、図２において、左に図示されているブロック（図において「旧」で示されている）は既存の作業プログラムで想定されているワークＷの配置状態を示し、右側のブロックは実際に台６０上に載置されているワークＷの配置状態を示している。
【００１６】
以下、作業プログラム修正方法を説明する。
図２において、Ａ１〜Ａ５は、作業プログラム中のステップ１〜ステップ５において教示された教示点であり、教示点間は作業区間（例えば、溶接区間）となる。例えば、ロボットが溶接ロボットであれば、教示点Ａ１は溶接開始点となる。
【００１７】
（１）まず、作業者は、ティーチペンダント３０を使用して、既存の作業プログラムを再生して、マニピュレータ１０を作動させ、例えば、ステップ２の教示点Ａ２へツールＴを位置決めする。本実施形態では、教示点Ａ２が第１教示点に相当する。なお、本実施形態では、教示点Ａ２でツールＴの位置決めをしているが、第１教示点としては教示点Ａ２に限定されるものではなく、教示点Ａ１でもよく、載置面６０ａ上や、或いは載置面６０ａ上と平行な面上の教示点でもよい。
【００１８】
（２）次に、作業者は、ティーチペンダント３０のモード切替キー４０ｂを押して、既存の作業プログラム名、ステップ番号（すなわち、前記ステップ２）、位置姿勢（Ｘ２）を、図示しない記憶部の作業用ファイルに取り込む。
【００１９】
なお、ここで、ステップ２の位置へのツールＴの位置決めがワークＷとの干渉などでできない場合、既存の作業プログラム名、ステップ番号（すなわち、前記ステップ２）をティーチペンダント３０に設けられた図示しないキーにより入力し、既存の作業プログラムからステップ２の教示データを読出し、その位置姿勢を算出するようにしてもよい。
【００２０】
（３）次に、作業者は、ティーチペンダント３０を使用して、ツールＴを、ステップ２の新しい教示点Ｂ２、すなわち、ワークＷ上に位置する教示点Ｂ２へ位置決めし、記憶キー４０ａを押す。このＢ２の点が第２教示点に相当する。この結果、図示しない記憶部の作業ファイルに教示点Ｂ２の位置姿勢（Ｘ２’）が教示データとして図示しない記憶部の作業用ファイルに取り込まれる。
【００２１】
（４）次に、作業者は、ティーチペンダント３０を使用して、ツールＴを、ステップ３の新しい教示点Ｂ３へ位置決めし、記憶キー４０ａを押す。このＢ３の点が第３教示点に相当する。この結果、図示しない記憶部の作業ファイルに教示点Ｂ３の位置姿勢（Ｘ３’）が教示データとして図示しない記憶部の作業用ファイルに取り込む。
【００２２】
なお、本実施形態では、教示点Ｂ２が第２教示点として選択された場合、次のステップの教示点Ｂ３を第３教示点として選択することが予め決められているため、ロボット制御装置５０では、教示点Ｂ３と対応する教示点Ａ３が後述する処理において第４教示点として関連付けられている。
【００２３】
（５）次に、作業者は、ティーチペンダント３０のキー入力により、新プログラム名、修正するステップ区間（開始ステップ、終了ステップ）を入力するとともに、ティーチペンダント３０の盤面に設けられた図示しない実行キーの操作を行う。前記修正するステップ区間を以下、指定ステップ区間という。
【００２４】
上記の実行キー操作により、ロボット制御装置５０は、下記のように処理を行う。
まず、ロボット制御装置５０は、既存の作業プログラムを新作業プログラムにコピーする。次に、ロボット制御装置５０は、新プログラムの指定ステップ区間の各ステップについて下記演算を行う。
【００２５】
ロボット制御装置５０は、ステップｎの位置姿勢（Ｘｎ）を算出する。（ただし、ｎ＝開始ステップ〜終了ステップ）
次に、ロボット制御装置５０はＡ２Ｂ２の位置の差分ｄをＸｎに加算する。ここでＸｎ’は同次変換行列である。
【００２６】
【数１】
2010082729.tif 000003
Ｒｎ’、Ｒｎは３行３列の回転行列であり、Ｐｎ’、Ｐｎは位置を表わすベクトルである。
【００２７】
次に、ロボット制御装置５０は、ベクトルＡ２Ａ３とベクトルＢ２Ｂ３の外積をＫｒ、交差角をθとすると、
【００２８】
【数２】
2010082729.tif 000004
【００２９】
【数３】
2010082729.tif 000005
となる。なお、交差角θは回転量に相当する。
【００３０】
次に、ロボット制御装置５０は、Ｂ２点を中心として、Ｂｎ点をＫｒ軸周りにθだけ、回転させた点の位置姿勢Ｘｎ”を下記式（４）で算出する。ここでＸｎ”は同次変換行列である。
【００３１】
【数４】
2010082729.tif 000006
ただし、
【００３２】
【数５】
2010082729.tif 000007
なお、Ｒｏｔ（Ｋｒ，θ）は、Ｋｒ軸周りにθだけ、回転させるための行列である。
【００３３】
【数６】
2010082729.tif 000008
となる。Ｒｎ”は３行３列の回転行列であり、Ｐｎ”は位置を表わすベクトルである。又、ＰＢ２は、教示点Ｂ２の位置を表わすベクトルである。
【００３４】
次に、ロボット制御装置５０は、新しい作業プログラムを再生する際に、位置姿勢Ｘｎ”を逆変換して修正後のＢｎ点におけるマニピュレータ１０の各関節角度を算出し、この関節角度に基づいて各関節を駆動する図示しない駆動モータを制御してマニピュレータ１０を作動させる。
【００３５】
さて、本実施形態によれば、以下のような特徴がある。
（１）  本実施形態の作業プログラム修正方法は、変換元である既存の作業プログラムの１つの教示点Ａ２（第１教示点という）におけるマニピュレータ１０の位置姿勢を取り込む段階と、教示点Ａ２に対応するワークＷ上の点にマニピュレータ１０を位置させて教示点Ｂ２（第２教示点という）のマニピュレータ１０の位置姿勢を取り込む段階を備える。又、本作業プログラム修正方法は、教示点Ｂ２から離間したワークＷ上の教示点であって、既存の作業プログラムの教示点Ａ２と離間した教示点Ａ３（第４教示点）に対応する教示点Ｂ３（第３教示点）にマニピュレータ１０を位置させて教示点Ｂ３のマニピュレータ１０の位置姿勢を取り込む。そして、本作業プログラム修正方法は、教示点Ａ２と教示点Ｂ２の位置の差分ｄ（差）を算出し、この差分ｄに基づいて既存の作業プログラムの教示点の位置を修正する。さらに、本作業プログラム修正方法は、教示点Ａ２（第１教示点）から教示点Ａ３（第４教示点）へ向かうベクトルと、教示点Ｂ２からＢ３へ向かうベクトルの交差角θ（回転量）を算出し、交差角θに基づいて前記作業プログラムの教示点におけるマニピュレータ１０の位置姿勢を修正する。
【００３６】
この結果、ワークＷを載置した載置面６０ａ上の該ワークＷに回転ずれがある場合に、Ａ２（第１教示点）と、Ｂ２（第２教示点）、及びＢ３（第３教示点）のマニピュレータ１０の位置姿勢を取り込むだけでよい。このため、簡単な作業で、ロボットの作業プログラムの修正ができ、作業プログラムを再利用する場合の教示修正時間の短縮を行うことができる。
【００３７】
（２）  本実施形態のロボット制御装置５０は、教示点Ａ２（第１教示点）と教示点Ｂ２（第２教示点）の位置の差分ｄ（差）を算出し、この差分ｄに基づいて既存の作業プログラムの教示点の位置を修正する教示点位置修正手段として機能する。又、ロボット制御装置５０は、教示点Ａ２（第１教示点）から教示点Ａ３（第４教示点）へ向かうベクトルと、教示点Ｂ２（第２教示点）から教示点Ｂ３（第３教示点）へ向かうベクトルの交差角θ（回転量）を算出し、交差角θに基づいて既存の作業プログラムの教示点におけるマニピュレータ１０の位置姿勢を修正する位置姿勢修正手段として機能する。
【００３８】
この結果、ワークＷを載置した載置面６０ａ上の該ワークＷに回転ずれがある場合に、Ａ２（第１教示点）と、Ｂ２（第２教示点）、及びＢ３（第３教示点）のマニピュレータ１０の位置姿勢を取り込むだけでよい。このため、簡単な作業で、ロボットの作業プログラムの修正ができ、作業プログラムを再利用する場合の教示修正時間の短縮を行うことができるロボット制御装置５０を提供できる。
【００３９】
なお、本発明の実施形態は以下のように変更してもよい。
○  実施形態の作用の説明の（４）において、ステップ３は、必ずしもステップ２の次のステップの点である必要はなく、教示点Ｂ２とは離れた位置であればよい。この場合は、作業者は、ステップ２の次に選択されたステップの番号を特定するために、該ステップの番号をティーチペンダント３０のキー入力により図示しない記憶部の作業用ファイルに記録する。
【００４０】
このステップ２の次に選択されたステップの番号が特定されると、ロボット制御装置５０は、実施形態の作用の説明の（５）において、その選択されたステップと対応する既存の作業プログラムのステップの教示点を第４教示点として特定する。このようにしておけば、実施形態の作用の説明の（５）において、第４教示点と対応する第３教示点と対応させて処理することができる。
【００４１】
○  ポジショナ或いはスライダ等の外部軸上の載置面にワークＷを載置する場合、教示点Ａ２，Ｂ２の外部軸値の差を変換先プログラムに反映させることも可能である。この場合、逆変換では、Ｂ２での関節値（関節角）を参照すればよい。
【図面の簡単な説明】
【００４２】
【図１】本実施形態のロボット及びロボット制御装置５０の概略図。
【図２】教示点の説明図。
【符号の説明】
【００４３】
１０…マニピュレータ、２０…アーム、
３０…ティーチペンダント、４０…ボタン群、４０ａ…記録キー、
５０…ロボット制御装置（位置姿勢修正手段、教示点位置修正手段）。
【図１】
2010082729.tif 000009
【図２】
2010082729.tif 000010