(57)【特許請求の範囲】
【請求項１】
ロボット制御装置を用いてロボットのジョグ送り時に通過したロボット軸空間上の領域を表わすデータをロボット通過可能軸空間領域データとして蓄積する段階と、ロボットの移動経路を指定する段階を含むロボットの教示方法であって、
前記ロボットの移動経路の少なくとも一部については、ソフトウェア処理により、前記蓄積されたロボット通過可能軸空間領域データで表現されたロボット軸空間上の領域内を通過するようにロボット移動経路の指定が行なわれることを特徴とする前記方法。
【請求項２】
前記ロボット通過可能軸空間領域データを蓄積する段階が、ロボット軸空間を体積的に分割することによって形成される多数の領域要素の内、前記ジョグ時に支障なく通過した領域要素に対して通過可能を表わす属性を付与する段階を含んでいると共に、
前記ロボットの移動経路の少なくとも一部について行なわれるソフトウェア処理によるロボット経路の指定が、前記通過可能の属性を付与された隣接領域要素を接続し、ロボット経路移動のロボット軸空間上の目標位置に接近または到達する経路を指定する段階を含んでいることを特徴とする請求項１に記載されたロボット教示方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本願発明は、工場等で自動化、省力化手段として利用される産業用ロボット（以下、単に「ロボット」と言う。）に移動経路を教示する方法に関し、特に、ロボットのジョグ送り時の移動経路データを利用して干渉を回避出来る移動経路をロボットに教示する方法に関する。
【０００２】
【従来の技術】
従来より最も一般的に採用されているロボットの教示方法は、プレイバック方式と呼ばれるものである。この方式では、オペレータが教示操作盤を操作してジョグ送りにより実際にロボットを移動させながら、教示点に選択された位置に対応したロボット位置を位置データとしてロボットに順次記憶させるという手順が実行される。
【０００３】
従って、教示点位置あるいは教示点間のロボット軌跡（通常、直線あるいは円弧で指定される）を周辺機器等との間の干渉の恐れのないものとする為には、オペレータの判断で、教示点の位置を慎重に選択する必要があった。また、教示後の再生運転時に干渉の危険が判明した時には、教示点位置の修正、追加等の処置を施すことが要求されていた。
【０００４】
【発明が解決しようとする課題】
上述した従来技術においては、教示点及び教示点間経路についての干渉可能性有無のチェックは、専らオペレータの判断で実行しなけらばならなかったので、熟練したオペレータであっても教示作業にかかる負担が軽くなかった。また、教示の為のジョグ送り時や教示後の再生運転時に誤操作あるいは不適切な教示の為に、ロボットと周辺機器の衝突等の干渉事故の起る可能性も低くなかった。
【０００５】
そして、干渉事故を確実に回避する為に、ロボット移動速度（オーバライド値として表わされる）を低く指定した状態から教示作業を始め、徐々に移動速度（オーバライド）を上昇させてロボット軌道を確認しながら教示作業を進めた場合には、それだけ作業時間が長くなるという問題が生じていた。
【０００６】
本願発明の目的は、このような従来技術の問題点を克服し、オペレータに重い負担をかけることなく干渉の危険性が低いロボット移動経路を教示することが出来るロボット教示方法を提供することにある。
【０００７】
【課題を解決するための手段】
本願発明は、上記目的を達成する為の基本的な技術手段として、「ロボット制御装置を用いてロボットのジョグ送り時に通過したロボット軸空間上の領域を表わすデータをロボット通過可能軸空間領域データとして蓄積する段階と、ロボットの移動経路を指定する段階を含むロボットの教示方法であって、前記ロボットの移動経路の少なくとも一部については、ソフトウェア処理により、前記蓄積されたロボット通過可能軸空間領域データで表現されたロボット軸空間上の領域内を通過するようにロボット移動経路の指定が行なわれることを特徴とする前記方法」を提案したものである。
【０００８】
また、上記方法における、「ロボット通過可能軸空間領域データを蓄積する段階」について、「ロボット軸空間を体積的に分割することによって形成される多数の領域要素の内、前記ジョグ時に支障なく通過した領域要素に対して通過可能を表わす属性を付与する段階を含んでいると共に、前記ロボットの移動経路の少なくとも一部について行なわれるソフトウェア処理によるロボット経路の指定が、前記通過可能の属性を付与された隣接領域要素を接続し、ロボット経路移動のロボット軸空間上の目標位置に接近または到達する経路を指定する段階を含んでいる」とういう要件を課すことにによて、より具体化されたロボット教示方法を併せて提案したものである。
【０００９】
【作用】
ある作業環境（周辺機器の配置状況等）の下で、教示等の目的を以てオペレータがロボットのジョグ送りを実行した場合、誤操作による干渉事故（干渉直前の危険状態を含む。）を起こさない限り、ジョグ送りの過程で通過したロボット経路は安全なロボット移動経路であると判断される。従って、繰り返し実行されるジョグ送りでロボットが安全に通過した実績のあるロボット移動経路について、ロボット軸変数θs （ｓ＝１，２，３・・・Ｎ；Ｎはロボットの軸数）の組合せを集積すれば、ロボット軸空間上の点集合を得ることが出来る。この点を「安全点」と呼ぶことにする。この安全点が極く近傍に存在するようなロボット軸空間上の点は、干渉を起こさないロボット位置に対応している可能性が高いと考えられる。
【００１０】
そこで、これら各安全点の周囲の近傍領域をロボットがほぼ安全に存在し得る軸空間領域とみなし、その合併集合に相当する領域をロボット軸空間上に定めることが出来れば、そのような領域内を通過するロボット移動経路は安全度が高いと判断される。本願発明では、このような考え方に基づいて定められたロボット軸空間内の領域をロボット通過可能軸空間領域と呼び、教示時には、可能な限りこのロボット通過可能軸空間領域を通るようなロボット移動経路が選択される。
【００１１】
ロボット通過可能軸空間領域の定め方としては、ロボット軸空間を体積的に多数の領域要素に分割し、安全が確認された領域要素をロボットのジョグ送り実行毎に集積していく方法が実際的である。安全の確認は、ジョグ送り時にその領域要素内をロボットが安全に通過したことを以て行なうことが出来る。
【００１２】
このような安全が確認された領域要素がある程度蓄積されたならば、ロボット軸空間上には相当程度の拡がりをもった連続領域が形成されるものと期待される。従って、適当なソフトウェア処理によって、この連続領域（即ち、ロボット通過可能軸空間領域）内を通過する経路を自動作成し、その経路を代表する軸値データあるいは位置データ換算値をロボットに記憶させることによって、ロボットに移動経路を教示することが出来る。ロボット通過可能軸空間領域を通過する移動経路が複数本存在する場合には、軸空間上で経路の始点と終点間の経路距離が最短のものを選択することが好ましい。
【００１３】
なお、希望する経路終点に対応するロボット軸空間上の位置が安全未確認の領域（ロボット通過可能軸空間領域外）である場合には、希望する経路終点に接近する移動経路をロボット通過可能軸空間領域で定め、そこから先は、オペレータによるジョグ移動により希望する経路終点にロボットを到達させる過程で教示点を追加する形で従来方式を併用することが出来る。
【００１４】
本願発明で設定されるロボット軸空間は、ロボットの位置に関係するすべての軸変数で張られる空間とするのがベストである。しかし、例えば基本３軸の軸値（θ1 〜θ3 ）を決めることによってもロボットの存在範囲は相当程度限定されるから、使用されるロボット制御装置及び併用する情報処理装置（パーソナルコンピュータ等）の処理能力やメモリの記憶容量等を考慮して、基本３軸のような一部のロボット軸のみでロボット軸空間を設定しても良い。
【００１５】
【実施例】
図１は、本願発明を実施する際に利用されるシステム構成を、概念的に２次元描示した作業空間と併せて例示したものである。
図中、符号１は作業空間を概念的に表わしており、便宜上２次元的な領域で描示されている。符号２は、作業空間１内に設置されたロボットであり、符号１０で指示されたロボット制御装置１０に接続されている。ロボット制御装置１０はＣＰＵ，ＲＯＭメモリ，ＲＡＭメモリ，入出力装置（Ｉ／Ｏ）及び教示操作盤１１を備えた通常構成のものである。ロボット制御装置１０は、入出力装置（Ｉ／Ｏ）を介して外部の情報処理装置（ここでは、パーソナルコンピュータ）１０に接続されている。パーソナルコンピュータ１０は、ＣＰＵ，ＲＯＭメモリ，ＲＡＭメモリ，入出力装置（Ｉ／Ｏ）等を有する通常構成のもので、必要に応じて入出力装置（Ｉ／Ｏ）を介して、ハードディスク装置、プリンタ等（図示省略）が接続される。
【００１６】
本実施例では、ロボット軸空間として基本３軸（軸変数；θ1 〜θ3 ）で張られる空間を設定し、上記システム構成を用いて作業空間１内に存在する周辺機器３及び４との干渉を生じないロボット移動経路教示を実行する手順及び処理について順を追って説明する。
［１］ロボット軸空間と微小体積要素の設定
ロボット軸空間を定義するために、パーソナルコンピュータ１０側の適当なメモリ（例えば、ハードディスク）に、３個の正整数の組（ｉ，ｊ，ｋ）でアドレス指定されるＭ3 個のレジスタを２系列設定する。第１のレジスタは属性データ蓄積用のものであり２値レジスタとして設定される。第２のレジスタは後述する経路決定時に使用されるもので、分割数Ｍの数倍程度の十分大きな計数飽和値を持つレジスタとして設定される。ここで、Ｍ3 はロボット軸空間内に設定される微小体積要素Γijk （ｉ，ｊ，ｋ＝１，２，３・・・Ｍ）の総数である。
【００１７】
各微小体積要素Γijk は、図２に示されているように、ロボット軸空間上で各軸に設定されている許容範囲（最大３６０度）θs(min)〜θs(max)；（ｓ＝１，２，３）をＭ等分に分割することによって形成される微小体積要素を表わすものとする。Δs ＝（θs(max)−θs(min)）／Ｍとすれば、微小体積要素Γijk は、区間［θ1(min)＋（ｉ-１）Δ1 〜θ1(min)＋ｉΔ1 ；θ2(min)＋（ｊ-１）Δ2 〜θ2(min)＋ｊΔ2 ；θ3(min)＋（ｋ-１）Δ3 〜θ3(min)＋ｋΔ3 ］で定義された領域となる。
【００１８】
なお、各微小体積領域の大きさを決める分割数Ｍの大きさは、近接する２つの経路が交差または接続しているとみなせる最大の角度間隔に各ΔS が相当するように設定されることが好ましい。また、各軸毎に分割数Ｍ1 〜Ｍ3 を個別に設定し、例えば、各微小体積領域がロボット軸空間上の立方体となるような設定を行なっても良い。
【００１９】
［２］ジョグ送り経路データの蓄積
ロボット軸空間と微小体積要素の設定が終了したら、すべての第１レジスタ（ｉ，ｊ，ｋ）の値を初期値０にクリヤした状態でジョグ経路データの蓄積を開始する。図１には、ジョグ送りの経路Ｐ1 〜Ｑ1 ，・・・Ｐn  〜Ｑn が例示されている。これらのジョグ送りを実行する毎に図３、図４のフローチャートに示した処理１（ロボット制御装置１０）、処理２（パーソナルコンピュータ２０）を実行する。
【００２０】
ロボット制御装置１０の側では、先ずジョグ送り時のロボット軸値（基本３軸値）をパーソナルコンピュータへ転送する（ステップＳ１）。オペレータによるジョグキー押下状態が検出されたならば（ステップＳ２でイエス）、押下されているジョグキーに従ってロボット移動目標位置を計算し（ステップＳ４）、ロボット移動目標位置へ移動する（ステップＳ５）。そして、ステップＳ１へ戻ってパーソナルコンピュータへロボット軸値（基本３軸値）を転送する。
【００２１】
ジョグキーの押下が中断乃至終了されると（ステップＳ２でノー）、ステップＳ３で、ジョグ終了指令の有無を判断する。ノーであれば、ステップＳ２に戻り、再度ジョグキー押下状態をチェックする。以下、同様の処理を繰り返し、ステップＳ３でイエスの判断がなされた時点で処理１を終了する。
【００２２】
一方、パーソナルコンピュータ２０側では先ず、ロボット制御装置１０からのロボット軸値データの転送を待つ態勢に入る（ステップＴ１）。転送を受けたならば、ステップＴ３へ進み、各軸値を分割数Ｍで除して対応するΓijk を決定する。そして、アドレス（ｉ，ｊ，ｋ）で指定される第１レジスタのレジスタ値をチェックする（ステップＴ４）。
【００２３】
もし、レジスタ値＝１であれば、Γijk について既にロボット通過の安全性が、確認され、ロボット通過可能の属性が与えられていることを意味しているから、ステップＴ１へ戻り、次のデータ転送を待つ。一方、レジスタ値＝０であれば、Γijk について今回初めてロボット通過の安全性が確認されたことを意味するから、ロボット通過可能の属性をΓijk に付与すべくレジスタ値を０から１に反転した上でステップＴ２へ戻る。
【００２４】
このような処理は、ステップＴ２に引続き周期的に実行されるステップＴ２で処理終了指令（ロボット制御装置１０から転送）が確認されるまで、繰り返される。以上説明した処理１及び２をジョグ送り実行毎に、新たにロボット通過可能が確認されたΓijk に対応した第１レジスタのレジスタ値が１に反転する。図５は、相当回数のジョグ送りによってもたらされる第１レジスタのレジスタ値分布を２次元で例示したものである。図中、○印はレジスタ値１（ロボット通過可能確認済み）を表わし、＊印はレジスタ値０（ロボット通過可能未確認）を表わしている。
【００２５】
［３］ロボット移動経路の教示
相当回数のジョグ送りを経て十分なデータ蓄積がなされたと判断されたならば、図８〜図９のフローチャートに記した処理３によるロボット移動経路の教示を実行する。処理３は、経路始点からのロボット軸空間上の経路長を表わす指標ｄをｄ＝１に初期設定した状態で開始される。また、ロボットの経路始点位置（現在位置）に対応する各軸値の属するΓijk のアドレスの第２レジスタ値＝０、それ以外のすべての第２レジスタ値＝γ（計数飽和値）に初期設定されているものとする。更に、ロボットの経路始点位置（現在位置）は既に第１レジスタ値が１となっている軸値領域に対応する位置に選択されているものとする。
【００２６】
先ず、経路終点希望位置の位置データをロボット制御装置１０に入力すると（ステップＷ１）、逆演算によって基本３軸の軸値が計算される（ステップＷ２）。
【００２７】
次いで、対応するΓijk が求められ（ステップＷ３）、そのアドレス（ｉ，ｊ，ｋ）の第１レジスタ値が１であるか否かチェックされる（ステップＷ４）。第１レジスタ値＝１は、経路終点希望位置について安全（ロボット通過可能）が確認されていることを意味し、第１レジスタ値＝０は、安全（ロボット通過可能）未確認であることを意味する。
【００２８】
先に、前者の場合を説明する。ステップＷ４でイエスである場合には、第２レジスタ値がｄ−１のアドレスに隣接し、且つ第１レジスタ値が１であるアドレス（Γijk ）を１つ捜す（ステップＷ５）。そのようなアドレスが見つかった場合には、ステップＷ８へ進み、その捜し出されたアドレスが経路終点希望位置に該当していなければ、ステップＷ９へ進み、捜し出されたアドレスの第２レジスタ値をｄとした上でステップＷ５へ戻る。第２レジスタ値がｄ−１のアドレスに隣接し、且つ第１レジスタ値が１であるアドレス（Γijk ）が新たに見い出されなくなると、ステップＷ６でノーの判断がなされ、ステップＷ７へ進んで経路長指標ｄを１アップしてステップＷ５へ戻る。
【００２９】
このようにして、ステップＷ５〜ステップＷ９を繰り返すと、やがて経路終点位置に対応したΓijk （アドレス）に到達し、ステップＷ８でイエスの判断がなされ、教示経路が決定される（ステップＷ１０）。ここまでの経過を図５の事例に対応させて示したものが図６である。図６において、Ｓは経路始点、Ｅは経路終点に対応したアドレス乃至微小体積要素Γijk を表わしている。始点Ｓからの距離に従ってｄ値１，２，３・・・・が記されている。この例では、ｄ＝６で終点Ｅが隣接アドレスとして見いだされた状態が示されている。従って、図６では、矢印（→）で示された経路が教示経路に採用される。
【００３０】
具体的には、ステップＷ１１で、Ｅ→６→・・・→１→Ｓの経路の各Γijk を代表する軸値データまたは位置データ（基本３軸以外のデータについては、始点終点各位置の軸値を補間して定める。）が教示され、処理が終了される。
【００３１】
次に、図９のフローチャート及び図７を参照図に加えて、ステップＷ４でノーの場合（経路終点希望位置について安全が未確認）の処理について説明する。この場合には、ステップＷ４からステップＷ１２へ進み、第２レジスタ値がｄ−１のアドレスに隣接し、且つ第１レジスタ値が１であるアドレス（Γijk ）を１つ捜す。そのようなアドレスが見つかった場合には、ステップＷ１３からステップＷ１４へ進み、捜し出されたアドレスの第２レジスタ値をｄとした上でステップＷ１２へ戻る。
【００３２】
ステップＷ１２の条件を満たすアドレスが見つからなくなると、ステップＷ１３からステップＷ１５へ進む。そして、第２レジスタ値がｄであるアドレスを捜し、もしあればステップＷ１６で経路長指標ｄを１アップしてステップＷ１２へ戻る。
【００３３】
このような処理を繰り返すことでやがてステップＷ１２の条件を満たす隣接アドレスが１個も見つからなくなり、ステップＷ１５でノーの判断がなされることになる。これは、図７に例示したように、経路終点Ｅに希望した位置に対応するΓijk 乃至アドレス（ｉ，ｊ，ｋ）に接近・到達する経路が途絶えてしまったことを意味している。そこで、ステップＷ１７で、第２レジスタ値＝ｄ−１であるアドレスの内、経路終点希望位置に最も近いものを捜す。図７の例で言えば、「○印で囲まれた７」の欄がそれを表わしている。
【００３４】
そして、ステップＷ１８では、ステップＷ１７で捜し出されたアドレスに至る経路（図７の例で言えば矢印の経路）の各Γijk を代表する軸値データまたは位置データ（基本３軸以外のデータについては、始点終点各位置の軸値を補間して定める。）を教示する。そして、この教示結果に基づいてロボットを、ステップＷ１７で捜し出されたアドレスに対応した教示位置まで移動させる（ステップＷ１９）。この位置（図７では、「○印で囲まれた７」の欄）から経路終点希望位置まで（図７では、二重矢印で表示）は、オペレータの判断でジョグ送りによって、経路終点希望位置（図７のＥ）にロボットを到達させるまでの追加教示を行なって（ステップＷ２０）、処理３を終了する。
【００３５】
なお、以上説明した各処理中のステップの多くは、一般にロボット制御装置あるいは外部の情報処理装置（パーソナルコンピュータ）のいずれの側で実行しても構わない。また、ロボット軸空間を基本３軸ではなく、それ以上の軸変数で定義しても同様の処理で本願発明の方法が実施出来ることは明らかである。
【００３６】
【発明の効果】
本願発明によれば、ある程度のジョグ送りを経験した後には、ロボットの移動経路の全部または一部をジョグ送りを行なうことなく自動的に教示することが出来る。従って、ロボットの経路教示に要するオペレータの負担が大幅に軽減され、誤操作等による干渉事故を未然に回避される。
【図面の簡単な説明】
【図１】本願発明を実施する際に利用されるシステム構成を、概念的に２次元描示した作業空間と併せて例示したものである。
【図２】ロボット軸空間上に設定される微小体積要素Γijk について説明する図である。
【図３】ジョグ送り経路データの蓄積時にロボット制御装置側で実行される処理の概要を記したフローチャートである。
【図４】ジョグ送り経路データの蓄積時にパーソナルコンピュータ側で実行される処理の概要を記したフローチャートである。
【図５】相当回数のジョグ送りによってもたらされる第１レジスタのレジスタ値分布を２次元で例示したものである。
【図６】ステップＷ１０に至るまでの経過を図５の事例に対応させて説明する図である。
【図７】経路終点希望位置について安全が未確認であるケースを２次元的に例示した図である。
【図８】図９と併せて、ロボット移動経路の教示を実行する為の処理の概要を説明するフローチャートである。
【図９】図８と併せて、ロボット移動経路の教示を実行する為の処理の概要を説明するフローチャートである。
【符号の説明】
１  作業空間
２  ロボット
３，４  周辺機器
１０  ロボット制御装置
２０  パーソナルコンピュータ（外部情報処理装置）
Ｐ1 〜Ｑ1 ，・・・Ｐn 〜Ｑn   ジョグ送り経路
Γijk   ロボット軸空間内に設定される微小体積要素
【図１】
0003804994.tif 000002
【図２】
0003804994.tif 000003
【図３】
0003804994.tif 000004
【図４】
0003804994.tif 000005
【図５】
0003804994.tif 000006
【図６】
0003804994.tif 000007
【図７】
0003804994.tif 000008
【図８】
0003804994.tif 000009
【図９】
0003804994.tif 000010