(57)【要約】【課題】  コーナ部等における一群の教示点の位置修正の効率化。【解決手段】  グループ化すべき連続したＮ個の教示点Ａ１〜Ａ６を指定し、中間の教示点Ａ４の位置修正操作をオペレータが実行する。Ａ４→Ｂ４の修正ベクトルが計算される。教示点Ａ４と端点Ａ１、Ａ６の間の各教示点Ａ２、Ａ３、Ａ５は、前半部教示点Ａ２、Ａ３と後半部教示点Ａ５に分けられ、修正ベクトルを、端点Ａ１あるいはＡ６からの距離（経路距離または直線距離）に応して比例配分する形で各教示点Ａ２、Ａ３、Ａ５の要修正量が計算され、教示点Ｂ２、Ｂ３、Ｂ５に修正される。修正ベクトルを設定し、ユーザ選択の修正教示点と対応させても良い。パーソナルコンピュータ利用のオフラインプログラミングシステムの利用の他、教示操作盤から必要な入力を行なうこともできる。【選択図】  図３
2005149016.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの教示プログラムに記憶された教示点の位置修正を行なうロボットプログラム修正装置において、
教示プログラムに記憶された教示点群から、任意の連続する少なくとも４個の教示点を指定する手段と、
該指定された連続する少なくとも４個の教示点から、該少なくとも４個の教示点により決まる動作経路の両端点に対応する先頭教示点及び末尾教示点を除いた、残り教示点の中の任意の教示点の位置を修正する手段と、
前記位置修正における修正ベクトルを求める手段と、
少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記先頭教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第１の距離を求める手段と、
少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記前半部教示点の夫々について、前記先頭教示点と該前半部教示点までの前記動作経路に沿った第２の距離を求める手段と、
少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記修正ベクトル、第１の距離、及び第２の距離に基づいて、前記前半部教示点の夫々について位置修正を行なう手段と、
少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記末尾教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第３の距離を求める手段と、
少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記後半部教示点の夫々について、前記末尾教示点と該後半部教示点までの前記動作経路に沿った第４の距離を求める手段と、
少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記修正ベクトル、第３の距離、及び第４の距離に基づいて、前記後半部教示点の夫々について位置修正を行なう手段と、
を備えたロボットプログラム修正装置。
【請求項２】
ロボットの教示プログラムに記憶された教示点の位置修正を行なうロボットプログラム修正装置において、
教示プログラムに記憶された教示点群から、任意の連続する少なくとも４個の教示点を指定する手段と、
修正ベクトルを設定する手段と、
該指定された連続する少なくとも４個の教示点から、該少なくとも４個の教示点により決まる動作経路の両端点に対応する先頭教示点及び末尾教示点を除いた、残り教示点の中の任意の教示点の位置を、前記修正ベクトル分修正する手段と、
少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記先頭教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第１の距離を求める手段と、
少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記前半部教示点の夫々について、前記先頭教示点と該前半部教示点までの前記動作経路に沿った第２の距離を求める手段と、
少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記修正ベクトル、第１の距離、及び第２の距離に基づいて、前記前半部教示点の夫々について位置修正を行なう手段と、
少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記末尾教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第３の距離を求める手段と、
少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記後半部教示点の夫々について、前記末尾教示点と該後半部教示点までの前記動作経路に沿った第４の距離を求める手段と、
少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記修正ベクトル、第３の距離、及び第４の距離に基づいて、前記後半部教示点の夫々について位置修正を行なう手段と、
を備えたロボットプログラム修正装置。
【請求項３】
前記第１の距離を前記先頭教示点と前記位置修正を行なう以前の前記任意の教示点までの距離で代用すること、前記第２の距離を前記先頭教示点と前記各前半部教示点までの距離で代用すること、前記第３の距離を前記末尾教示点と前記位置修正を行なう以前の前記任意の教示点までの距離で代用すること、及び、前記第４の距離を前記末尾教示点と前記各後半部教示点までの距離で代用することの内の、少なくとも１つが実行されることを特徴とする、請求項１又は請求項２に記載のロボットプログラム修正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステムにおけるロボット動作の記述を含むプログラム（以下、「ロボットプログラム」という）のデータを修正するための技術に関し、更に詳しく言えば、ロボットプログラム中の教示点データを修正するための技術に関する。
【背景技術】
【０００２】
周知のように、ロボットシステムにおけるロボット動作の記述を含むロボットプログラムには、いくつかの教示点のデータが含まれており、それら教示点を辿るロボット経路は教示経路と呼ばれている。この教示経路の変更を行う場合、従来は、変更される教示経路区間の各教示点について、１つずつ教示位置データの修正を行なっていた。例えば、コーナーを通過する部分では、その前後を含めて複数の教示点の教示修正が必要とされるのが通例となっている。そのため、修正作業に多くの時間を要するという問題を生じていた。この問題に対して特に有効な提案は公知文献中に見い出せない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
そこで、本発明の目的は、上記問題を解決し、例えばコーナ部において必要となる一群の教示点の修正を効率良く合理的に実行できるロボットプログラム修正装置を提供することにある。
【課題を解決するための手段】
【０００４】
本発明は、一連の複数の教示点を指定し、1つの教示点を教示修正する際に他の教示点も併せて修正できるようにすることで上記課題を解決したものである。具体的に言えば、本発明によれば、ロボットの教示プログラムに記憶された教示点の位置修正を行なうロボットプログラム修正装置に、下記（ａ）〜（ｉ）の手段が設けられる。
【０００５】
（ａ）教示プログラムに記憶された教示点群から、任意の連続する少なくとも４個の教示点を指定する手段
（ｂ）該指定された連続する少なくとも４個の教示点から、該少なくとも４個の教示点により決まる動作経路の両端点に対応する先頭教示点及び末尾教示点を除いた、残り教示点の中の任意の教示点の位置を修正する手段
（ｃ）前記位置修正における修正ベクトルを求める手段
（ｄ）少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記先頭教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第１の距離を求める手段
（ｅ）少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記前半部教示点の夫々について、前記先頭教示点と該前半部教示点までの前記動作経路に沿った第２の距離を求める手段
（ｆ）少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記修正ベクトル、第１の距離、及び第２の距離に基づいて、前記前半部教示点の夫々について位置修正を行なう手段
（ｇ）少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記末尾教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第３の距離を求める手段
（ｈ）少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記後半部教示点の夫々について、前記末尾教示点と該後半部教示点までの前記動作経路に沿った第４の距離を求める手段
（ｉ）少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記修正ベクトル、第３の距離、及び第４の距離に基づいて、前記後半部教示点の夫々について位置修正を行なう手段
ここで、上記（ａ）〜（ｉ）の手段の内、（ｂ）、（ｃ）に代えて下記の（ｊ）、（ｋ）を採用し、下記（ａ）、（ｋ）、（ｊ）、（ｄ）〜（ｉ）とすることもできる。  
（ａ）教示プログラムに記憶された教示点群から、任意の連続する少なくとも４個の教示点を指定する手段
（ｊ）修正ベクトルを設定する手段
（ｋ）該指定された連続する少なくとも４個の教示点から、該少なくとも４個の教示点により決まる動作経路の両端点に対応する先頭教示点及び末尾教示点を除いた、残り教示点の中の任意の教示点の位置を、前記修正ベクトル分修正する手段
（ｄ）少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記先頭教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第１の距離を求める手段
（ｅ）少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記前半部教示点の夫々について、前記先頭教示点と該前半部教示点までの前記動作経路に沿った第２の距離を求める手段
（ｆ）少なくとも、前記先頭教示点と前記任意の教示点との間に教示されている前半部教示点が１個以上存在する時には、前記修正ベクトル、第１の距離、及び第２の距離に基づいて、前記前半部教示点の夫々について位置修正を行なう手段
（ｇ）少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記末尾教示点と前記位置修正を行なう以前の前記任意の教示点までの前記動作経路に沿った第３の距離を求める手段
（ｈ）少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記後半部教示点の夫々について、前記末尾教示点と該後半部教示点までの前記動作経路に沿った第４の距離を求める手段
（ｉ）少なくとも、前記末尾教示点と前記任意の教示点との間に教示されている後半部教示点が１個以上存在する時には、前記修正ベクトル、第３の距離、及び第４の距離に基づいて、前記後半部教示点の夫々について位置修正を行なう手段
更に、これらいずれのケースにおいても、
（１）前記第１の距離を前記先頭教示点と前記位置修正を行なう以前の前記任意の教示点までの距離で代用すること
（２）前記第２の距離を前記先頭教示点と前記各前半部教示点までの距離で代用すること
（３）前記第３の距離を前記末尾教示点と前記位置修正を行なう以前の前記任意の教示点までの距離で代用すること
（４）前記第４の距離を前記末尾教示点と前記各後半部教示点までの距離で代用すること
の内の全部または一部を実行しても良い。
【発明の効果】
【０００６】
コーナー部等の教示経路修正で必要となる複数の点の教示修正が簡単に行えるようになり、ロボットの教示修正時間の短縮が図られる。また、各教示点の修正量を個別に決めるに必要なオペレータの負担も軽減され、熟練者でなくても教示修正を容易に行えるようになる。
特に、例えばコーナーに教示点が多数存在することが多いアーク溶接のアプリケーションにおいて、遠心力などで溶接線が本来あるべきところとずれた場合に必要となる教示経路修正の作業が、格段に簡素化される。
【発明を実施するための最良の形態】
【０００７】
以下、本発明のいくつかの実施形態について説明する。先ず、図１〜図３を参照して第１の実施形態について説明する。第１の実施形態では、教示点修正装置として、パーソナルコンピュータ（図１（ａ）参照）上に用意されたオフラインプログラミングシステムを使用する。図１（ｂ）は、システムのブロック構成の概略を示したものである。同図に記した通り、システムは、ＣＰＵと、このＣＰＵのバスラインに接続されたメモリ（ＲＯＭ、ＲＡＭ、不揮発性メモリ）、グラフィック制御回路、キーボード／マウス（マニュアル入力装置）及び通信インターフェイスと、グラフィック制御回路に接続されたディスプレイ（例えば液晶表示装置、ＣＲＴ等）からなる。また、図示を省略したが、必要に応じて、プリンタ、パーソナルコンピュータ等の外部機器との間でデータの授受を行なうための入出力装置等が装備される。
【０００８】
メモリには、オフラインプログラミングで使用される諸データが含まれる。また、グラフィック制御回路を動作させて、例えば３次元モデルで定義された諸物体を画面上で配置したり、作成中あるいは作成過程のロボット教示プログラムが表わす教示経路や、教示点の位置等をディスプレイ上に表示させるためのプログラム、諸設定値等が格納されている。また、画面上で、指定された教示点をマウスでドラッグすることにより、同教示点を希望する修正位置に移動させ、修正後の教示位置データを記憶するためのソフトウェアが装備されている。
ここまでの構成と機能は特に従来システムと変わるところはないが、本実施形態では、それに加えて、図２のフローチャートに示した手順で教示位置修正を実行するためのソフトウェアが装備されている。各ステップの要件は次の通りである。
【０００９】
ステップＳ１；指標ｎをｎ＝１に初期化する。なお、この指標ｎは、何個目の自動修正対象の教示点であるかを表わしている。  
ステップＳ２；グループ化すべき連続したＮ個の教示点を指定する。ここで、ＮはＮ≧４の整数で、指定はオペレータ（ユーザ）が例えばマウスあるいはキーボードを使って画面上で行なう。ここでは一例として、図３（ａ）に示した６個の教示点Ａ１〜Ａ６を指定するケースを考える。このようなグループ化は、図３（ａ）の例の如く、典型的にはコーナーを通過する経路部分に含まれる教示点群について行なわれるが、コーナー以外であっても、複数の連続した教示点について滑らかな修正が求められるようなケースに有効である。
【００１０】
ステップＳ３；グループ化されたＮ個の教示点の内、端点を除くＮ−２個の教示点の中から、適当な１点を選択して、位置修正を行なう。即ち、オペレータ（ユーザ）は、マウスを使って画面上で１つの教示点を指定し、修正後の希望位置までドラッグし、修正後の教示位置を定める。上記例では、図３（ａ）に示した６個の教示点Ａ１〜Ａ６の中から教示点Ａ４を選択し、図３（ｂ）に示した教示点Ｂ４に修正する。
【００１１】
ステップＳ４；ステップＳ３における修正について、修正量を表現するベクトル（修正ベクトル）を計算する。この計算はシステム内部で自動的に行なわれる。上記例では、教示点Ａ４→教示点Ｂ４の修正を表現するベクトルが計算される。教示点Ａ４の３次元位置を（ｘa4、ｙa4、ｚa4）、修正後の教示点Ｂ４の３次元位置を（b4、ｙb4、ｚb4）とすれば、修正ベクトルΔは次のように書ける。
【００１２】
Δ＝（Δｘ4 、Δｙ4 、Δｚ4 ）＝（ｘb4−ｘa4、ｙb4−ｙa4、ｚb4−ｚa4）
なお、ディスプレイ画面は２次元であるから、画面上の点指定で３次元位置を特定できるように予め適当な条件を設定しておく。条件は、例えば、「修正後の教示点Ｂ４は、先頭教示点Ａ１、末尾教示点Ａ６及び修正前の教示点Ａ４が乗っている平面上にある」とする。このような条件を設定しておけば、画面上での点指定で修正後の教示点Ｂ４の３次元位置（b4、ｙb4、ｚb4）は確定され、従って、上記計算式で修正ベクトルが決まる。
【００１３】
ステップＳ５；第１の距離として、先頭教示点から上記ステップＳ３で選択した教示点までの経路距離あるいは直線距離を求める。ここで、経路距離は、「教示経路に沿って測った、先頭教示点と上記ステップＳ３で選択した教示点までの距離」のことである。上記例で言えば、第１の距離Ｄ１は、下記の式で表わされる。  
Ｄ１＝教示点Ａ１、Ａ２間の直線距離＋教示点Ａ２、Ａ３間の直線距離＋教示点Ａ３、Ａ４間の直線距離
直線距離（Ｄ１’で表わす）を採用する場合は、
Ｄ１’＝教示点Ａ１、Ａ４間の直線距離
が第１の距離である。なお、これら式における各項は、各教示点の３次元位置から簡単な距離計算で求められる。
【００１４】
同様にして、第３の距離として、上記ステップＳ３で選択した教示点から末尾教示点までの経路距離あるいは直線距離を求める。  
Ｄ３＝教示点Ａ４、Ａ５間の直線距離＋教示点Ａ５、Ａ６間の直線距離
Ｄ３’＝教示点Ａ４、Ａ６間の直線距離
これら距離Ｄ１（又はＤ１’）、Ｄ３（又はＤ３’）は、後に未修正の教示点の修正位置計算に利用される。
【００１５】
ステップＳ６；両端点（先頭教示点及び末尾教示点）と記ステップＳ３で選択した教示点とを除いた教示点の内から、ｎ番目の未修正教示点を特定する。この特定はシステム内部で自動的に行なうことができるが、画面上でオペレータがマウス等により指定しても良い。前者の場合、適当なルールを予め設定しておく。例えば、「グループ化されている教示点群から、両端点（先頭教示点及び末尾教示点）と記ステップＳ３で選択した教示点とを除いた教示点の内、教示経路上で最も先頭教示点側の教示点」を選択するルールを設定しておけば良い。
このルールを上記例に適用すれば、１度目のステップＳ６では教示点Ａ２が特定される。以後、２回目、３回目のステップＳ６では、それぞれ教示点Ａ３、Ａ５が特定される。
【００１６】
ステップＳ７；ステップＳ６で特定された教示点が「前半部教示点」であるか「後半部教示点」であるかがシステム内部で判別される。ここで、「前半部教示点」とは、教示経路上で、先頭教示点とステップＳ３で選択された教示点の間に存在する教示点のことであり、「後半部教示点」とは、教示経路上で、ステップＳ３で選択された教示点と末尾教示点の間に存在する教示点のことである。  
ステップＳ６で特定された教示点は前半部教示点か後半部教示点のいずれかであるので、前半部教示点であればステップＳ８へ進み、そうでなければステップＳ１０へ進む。
【００１７】
ステップＳ８；第２の距離として、先頭教示点から上記ステップＳ６で特定された教示点までの経路距離あるいは直線距離を求める。
この経路距離をＤ２、直線距離をＤ２’で表わし、上記の例に適用すれば、下記のようになる。  
（ステップＳ６で教示点Ａ２が特定された処理サイクル）
Ｄ２(12)＝Ｄ２’(12)＝教示点Ａ１、Ａ２間の直線距離
（ステップＳ６で教示点Ａ３が特定された処理サイクル）
Ｄ２(13)＝教示点Ａ１、Ａ２間の直線距離＋教示点Ａ２、Ａ３間の直線距離
Ｄ２’(13)＝教示点Ａ１、Ａ３間の直線距離
ステップＳ９；修正ベクトルΔ、第１の距離Ｄ１（又はＤ１’）、及び、第２の距離Ｄ２（又はＤ２’）に基づいて、ステップＳ６で特定された教示点の修正後の位置がシステム内部で計算される。計算式は次のようになる。  
修正後の位置＝修正前の位置＋修正ベクトルΔ＊Ｄ２／Ｄ１（あるいはＤ２’／Ｄ１’）。場合によっては、下記を採用しても良い。  
修正後の位置＝修正前の位置＋修正ベクトルΔ＊Ｄ２’／Ｄ１（あるいはＤ２／Ｄ１’）
上記例に適用すれば、次のようになる。Ａ２、Ａ３、Ｂ２、Ｂ３の位置を順に、（ｘa2、ｙa2、ｚa2）、（ｘa3、ｙa3、ｚa3）、（ｘb2、ｙb2、ｚb2）、（ｘb3、ｙb3、ｚb3）で表わし、各成分の計算式を列挙する。  
ｘb2＝ｘa2＋（Δｘ4 ＊Ｄ２(12)／Ｄ１）
ｙb2＝ｙa3＋（Δｙ4 ＊Ｄ２(12)／Ｄ１）
ｚb2＝ｚa3＋（Δｚ4 ＊Ｄ２(12)／Ｄ１）
ｘb3＝ｘa3＋（Δｘ4 ＊Ｄ２(13)／Ｄ１）
ｙb3＝ｙa2＋（Δｙ4 ＊Ｄ２(13)／Ｄ１）
ｚb3＝ｚa32＋（Δｚ4 ＊Ｄ２(13)／Ｄ１）
なお、ここで、Ｄ１はＤ１’で、Ｄ２(12) はＤ２’(12) で、Ｄ２(13) はＤ２’(13) でそれぞれ代用することも出来る。
【００１８】
ステップＳ１０；第４の距離として、上記ステップＳ６で特定された教示点から末尾教示点までの経路距離あるいは直線距離を求める。
この経路距離をＤ４、直線距離をＤ４’で表わし、上記の例に適用すれば、下記のようになる。  
（ステップＳ６で教示点Ａ５が特定された処理サイクル）
Ｄ２(56) ＝Ｄ２’(56)＝教示点Ａ５、Ａ６間の直線距離
ステップＳ１１；修正ベクトルΔ、第３の距離Ｄ３（又はＤ３’）、及び、第４の距離Ｄ４（又はＤ４’）に基づいて、ステップＳ６で特定された教示点の修正後の位置がシステム内部で計算される。計算式は次のようになる。  
修正後の位置＝修正前の位置＋修正ベクトルΔ＊Ｄ４／Ｄ３（あるいはＤ４’／Ｄ３’）。場合によっては、下記を採用しても良い。  
修正後の位置＝修正前の位置＋修正ベクトルΔ＊Ｄ４’／Ｄ３（あるいはＤ４／Ｄ３’）
上記例に適用すれば、次のようになる。Ａ５、Ｂ５の位置を順に、（ｘa5、ｙa5、ｚa5）、（ｘb5、ｙb5、ｚb5）で表わし、各成分の計算式を列挙する。  
ｘb5＝ｘa5＋（Δｘ4 ＊Ｄ４(56)／Ｄ３）
ｙb5＝ｙa5＋（Δｙ4 ＊Ｄ４(56)／Ｄ３）
ｚb5＝ｚa5＋（Δｚ4 ＊Ｄ４(56)／Ｄ３）
なお、ここで、Ｄ３はＤ３’で、Ｄ４(56) はＤ４’(56)でそれぞれ代用することも出来る。
【００１９】
ステップＳ１２；ｎ＜Ｎ−３であれば未修正の教示点が残っていると判断してステップＳ１３へ進み、そうでなければ修正完了として処理を終了する。結果は、例えば図３（ｃ）のような画面でディスプレイに表示される。
ステップＳ１３；指標ｎを１アップしてステップＳ６へ戻り、次の未修正教示点を特定する。以下、ステップＳ１２でＮＯの判断が出るまで、処理を繰り返す。
【００２０】
以上説明した処理によれば、オペレータ（ユーザ）が修正した教示点Ａ４と端点Ａ１、Ａ６の間の各教示点Ａ２、Ａ３、Ａ５は、前半部教示点Ａ２、Ａ３と後半部教示点Ａ５に分けられる。そして、オペレータ（ユーザ）が修正した教示点Ａ４の修正ベクトルを、端点Ａ１あるいはＡ６からの距離（経路距離または直線距離）に応して比例配分する形で各教示点Ａ２、Ａ３、Ａ５の要修正量を計算している。
【００２１】
数値例（経路距離を採用）をあげれば、例えば端点Ａ１からユーザの修正点Ａ４までの経路距離が25mmで、端点Ａ１から中間の教示点Ａ２までの経路距離が15mmの場合、その中間点Ａ２は15/25（=0.6）に修正点Ａ４の移動量を掛けた分、修正される。同様に、例えばユーザの修正点Ａ４から端点Ａ６からまでの経路距離が20mmで、中間の教示点Ａ５から端点Ａ６までの経路距離が10mmの場合、その中間点Ａ５は10/20（=0.5）に修正点Ａ４の移動量を掛けた分、修正される。
【００２２】
なお、本実施形態では姿勢の修正は行なっておらず、各教示点の（Ｐ、Ｗ、Ｒ）の値は修正後も維持される。また、上記ステップＳ３では、オペレータ（ユーザ）による教示点修正は画面上の点移動で行なっているが、これを数値入力に代えることもできる。
【００２３】
その場合、修正後の教示点（上記例ではＢ４）の位置（ｘb4、ｙb4、ｚb4）を入力をしても良い。更に、修正ベクトルを設定（成分Δｘ4 、Δｙ4 、ｚ4 をキーボード等から入力）し、ユーザ選択の修正教示点と対応させる方法も採用可能である。その場合の手順を、第２の実施形態として、図４に示した。ステップＴ３、Ｔ４以外は第１の実施形態と同様なので、適宜簡略化して、各ステップの要点を記す。
【００２４】
ステップＴ１；指標ｎをｎ＝１に初期化する。  
ステップＴ２；グループ化すべき連続したＮ個の教示点を指定する。ここで、ＮはＮ≧４の整数で、指定の仕方は前述したステップＳ２と同様である。  
ステップＴ３；次のステップＴ４で行なう教示点修正について、修正量を表現するベクトル（修正ベクトル）の成分値（ｘｙｚ各成分値）を例えばキーボードを使ってオペレータを入力する。
【００２５】
ステップＴ３；グループ化されたＮ個の教示点の内、端点を除くＮ−２個の教示点の中から、適当な１点を選択して、ステップＴ２で設定された修正ベクトルに従っや位置修正を行なう。第１の実施形態で述べた例にならえば、図３（ａ）に示した６個の教示点Ａ１〜Ａ６の中から教示点Ａ４が選択され、修正ベクトル分の修正を行なった後の教示点がＢ４となる。
【００２６】
ステップＴ５；第１の距離Ｄ１あるいはＤ１’を計算する。計算の仕方は、第１の実施形態と同様である。  
ステップＴ６；両端点（先頭教示点及び末尾教示点）と記ステップＴ４で選択した教示点とを除いた教示点の内から、ｎ番目の未修正教示点を特定する。測定の仕方は、第１の実施形態と同様である。  
ステップＴ７；ステップＴ６で特定された教示点が「前半部教示点」であるか「後半部教示点」であるかをシステム内部で判別し、前半部教示点であればステップＴ８へ進み、そうでなければステップＴ１０へ進む。
【００２７】
ステップＴ８；第２の距離Ｄ２あるいはＤ２’を計算する。計算の仕方は、第１の実施形態と同様である。  
ステップＴ９；修正ベクトルΔ、第１の距離Ｄ１（又はＤ１’）、及び、第２の距離Ｄ２（又はＤ２’）に基づいて、ステップＴ６で特定された教示点の修正後の位置がシステム内部で計算される。計算式等は第１の実施形態と同様である。
【００２８】
ステップＴ１０；第４の距離Ｄ４あるいはＤ４’を計算する。計算の仕方は、第１の実施形態と同様である。  
ステップＴ１１；修正ベクトルΔ、第３の距離Ｄ３（又はＤ３’）、及び、第４の距離Ｄ４（又はＤ４’）に基づいて、ステップＴ６で特定された教示点の修正後の位置がシステム内部で計算される。計算式等は第１の実施形態と同様である。
【００２９】
ステップＴ１２；ｎ＜Ｎ−３であれば未修正の教示点が残っていると判断してステップＴ１３へ進み、そうでなければ修正完了として処理を終了する。結果は、例えば図３（ｃ）のような画面でディスプレイに表示される。
ステップＴ１４；指標ｎを１アップしてステップＳ６へ戻り、次の未修正教示点を特定する。以下、ステップＴ１２でＮＯの判断が出るまで、処理を繰り返す。
【００３０】
この第２の実施形態においても、オペレータ（ユーザ）が設定した修正ベクトルに従って位置修正された教示点Ａ４と端点Ａ１、Ａ６の間の各教示点Ａ２、Ａ３、Ａ５は、前半部教示点Ａ２、Ａ３と後半部教示点Ａ５に分けられる。そして、同修正ベクトルを、端点Ａ１あるいはＡ６からの距離（経路距離または直線距離）に応して比例配分する形で各教示点Ａ２、Ａ３、Ａ５の要修正量を計算している。
【００３１】
なお、上記第１及び第２の実施形態では、パーソナルコンピュータを利用したオフラインプログラミングシステムを採用したが、これに代えて、図５に示したような教示操作盤、ロボット制御装置等を含むシステムを用いることもできる。
【００３２】
その場合、修正前のプログラムはロボット制御装置に用意され、上述のステップＳ２、Ｔ２における一連の教示点の指定は、教示操作盤に同プログラムによる教示経路を呼出して教示操作盤上で行なわれる。また、上述のステップＳ３における中間の教示点の選択と位置修正や、ステップＴ３における修正ベクトルの設定も教示操作盤上で行われる。その他の諸ステップにおける計算処理等は、予めロボット制御装置にそのためのソフトウェア（プログラム、パラメータ値等を含む）を装備させることで、ロボット制御装置に担わせることができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１及び第２の実施形態において、プログラム修正装置と使用されるパーソナルコンピュータを表わした図（ａ）及びそのブロック構成の概略を示した図（ｂ）である。
【図２】第１の実施形態で実行される教示位置修正の手順の概略を示したフローチャートである。
【図３】グループ化された教示点の例を示した図（ａ）、その中の中間の教示点について、オペレータによる修正例を示した図（ｂ）及び教示位置修正完了後の各教示点の位置を例示した図（ｃ）である。
【図４】第２の実施形態で実行される教示位置修正の手順の概略を示したフローチャートである。
【図５】パーソナルコンピュータに代えて、教示操作盤から必要な入力を行なう場合の概略構成を示した図である。
【図１】
2005149016.tif 000003
【図２】
2005149016.tif 000004
【図３】
2005149016.tif 000005
【図４】
2005149016.tif 000006
【図５】
2005149016.tif 000007