(57)【要約】【課題】  ロボットの動作プログラムを修正する工程数を減少させる。【解決手段】  ロボット（１６）とワーク（１７）のそれぞれの３次元モデルを表示装置（１２）の画面上に同時に表示し、ロボットの動作プログラムを補正するロボットプログラム補正装置であって、タッチアップした点から算出された線及び面の少なくとも一方と画面上で指定した作業箇所の点又はタッチアップ位置からこれに関連するロボット動作プログラム及び作業箇所を検索する手段（２５，３２）と、検索された作業箇所の位置情報を複数の点から算出した線及び面の少なくとも一方との差分を算出する差分算出手段（２６，３３）と、差分に基づいて補正量を算出し、ロボット動作プログラムを補正する補正手段（２７，３４）とを備える。【選択図】      図２
2006293826.tif 000002
【特許請求の範囲】
【請求項１】
ロボットとワークのそれぞれの３次元モデルを表示装置の画面上に同時に表示し、前記ロボットの動作プログラムを補正するロボットプログラム補正装置であって、
前記画面上で指定された作業箇所に対応した実際のワーク上の位置を実際のロボットによりタッチアップすることにより実際のワーク上の位置を複数の点として記憶するタッチアップ位置記憶手段と、
前記タッチアップした複数の点に基づいて、線及び面の少なくとも一方を算出するタッチアップ線又はタッチアップ面算出手段と、
前記画面上に表示されているワーク上の作業箇所の位置情報を複数の点として格納する作業箇所格納手段と、
前記作業箇所格納手段内の複数の点に基づいて、ロボット動作プログラムを検索するロボット動作プログラム検索手段と、
前記ロボット動作プログラムが示す複数の作業箇所に基づいて、線及び面の少なくとも一方を算出する作業箇所線又は面算出手段と、
前記タッチアップした点から算出された線及び面の少なくとも一方と前記画面上で指定した作業箇所の点から算出した線及び面の少なくとも一方との差分を算出する差分算出手段と、
前記差分に基づいて補正量を算出し、前記ロボット動作プログラムを補正する補正手段とを備えることを特徴とするロボットプログラム補正装置。
【請求項２】
ロボットとワークのそれぞれの３次元モデルを表示装置の画面上に同時に表示し、前記ロボットの動作プログラムを補正するロボットプログラム補正装置であって、
前記画面上で指定された作業箇所に対応した実際のワーク上の位置を実際のロボットによりタッチアップすることにより実際のワーク上の位置を複数の点として記憶するタッチアップ位置記憶手段と、
前記タッチアップ位置からこれに関連するロボット動作プログラム及び作業箇所を検索する手段と、
前記タッチアップした複数の点に基づいて、線及び面の少なくとも一方を算出するタッチアップ線又はタッチアップ面算出手段と、
前記検索された作業箇所の複数の点に基づいて、線及び面の少なくとも一方を算出する作業箇所面算出手段と、
前記タッチアップした点から算出された線及び面の少なくとも一方と前記検索された作業箇所の点から算出した線及び面の少なくとも一方との差分を算出する差分算出手段と、
前記差分に基づいて補正量を算出し、前記ロボット動作プログラムを補正する補正手段とを備えることを特徴とするロボットプログラム補正装置。
【請求項３】
前記ロボット及び前記ワークの前記画面上の配置位置に基づいてロボットの複数の動作プログラムを生成し記憶する動作プログラム記憶手段と、
前記画面上に配置された前記ワークに対する前記ロボットの作業個所を前記画面上で指定する作業箇所指定手段とを更に備えることを特徴とする請求項１又は２に記載のロボットプログラム補正装置。
【請求項４】
前記曲線及び曲面はそれぞれ、スプライン曲線及びスプライン曲面であることを特徴とする請求項１から３のいずれか一項に記載のロボットプログラム補正装置。
【請求項５】
前記差分からロボットの機構モデルを補正することにより、動作プログラムの補正量を求めることを特徴とする請求項１から４のいずれか一項に記載のロボットプログラム補正装置。
【請求項６】
前記ロボットの機構モデルは、D-Hパラメータであることを特徴とする請求項５に記載のロボットプログラム補正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットプログラム補正装置に関し、特にオフラインで作成したロボット動作プログラムを現場で実際の作業箇所に合うように修正するロボットプログラム補正装置に関する。
【背景技術】
【０００２】
ロボットオフラインシステムでロボットの動作プログラムを作成し、これを現場に適用する際、オフライン上の世界と現場の世界にずれがあるため、オフラインで作成した動作プログラムをそのまま実行してもオフラインで計画したとおりの作業はできない。このため、このずれを補正する必要がある。
【０００３】
従来は、オフラインで作成したプログラムを現場で実際の位置に合うようにロボットジョグを行い、教示修正を行っていた。ロボットジョグを行うとは、ロボットに作業位置を教示するためにロボットを動かすことをいう。
【０００４】
そして、オフラインで作成したプログラムを現場に適用する場合、画面上で定義した教示位置に対応する現場のワークの目標位置をロボットでタッチアップして、目標位置の点と実際にタッチした位置の点との差分で得られる4行×4列の単一差分行列を目標位置に右から掛け合わせることで目標位置をシフトすることにより、プログラムを補正し、ずれの発生した部分の教示修正を行っていた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の点の差により得られる単一差分行列のみを目標位置に右から掛け合わせることで目標位置をシフトする方法では、補正精度が良くない。このため、この修正をロボットを使ったジョグで繰り返す必要があり、補正後の修正に工数がかかるという課題がある。
【０００６】
本発明の目的は、上記従来技術における課題を解決し、ロボットの動作プログラムで定義されたロボットの動作経路と実際のロボットで現場のワークにタッチアップした点をもとに動作プログラムを修正する工程数を減少させるロボットプログラム補正装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の第１の態様により提供されるものは、ロボットとワークのそれぞれの３次元モデルを表示装置の画面上に同時に表示し、ロボットの動作プログラムを補正するロボットプログラム補正装置であって、タッチアップした点から算出された線及び面の少なくとも一方と画面上で指定した作業箇所の点から算出した線及び面の少なくとも一方との差分を算出する差分算出手段と、差分に基づいて補正量を算出し、ロボット動作プログラムを補正する補正手段とを備えることを特徴とするロボットプログラム補正装置である。
【０００８】
本発明の第２の態様によれば、第１の態様における「画面上で指定した作業箇所の点」に替えて「タッチアップ位置からこれに関連するロボット動作プログラム及び作業箇所を検索する手段と、検索された作業箇所の位置情報を複数の点」を用いている。
【０００９】
好ましくは、ロボットプログラム補正装置は、ロボット及びワークの前記画面上の配置位置に基づいてロボットの複数の動作プログラムを生成し記憶する動作プログラム記憶手段と、画面上に配置されたワークに対するロボットの作業個所を前記画面上で指定する作業箇所指定手段とを更に備えている。
【００１０】
更に好ましくは、曲線又は曲面はスプライン曲線又はスプライン曲面である。
【００１１】
更に好ましくは、差分からロボットの機構モデルを補正することにより、動作プログラムの補正量を求める。
【００１２】
更に好ましくは、ロボットの機構モデルはがD-Hパラメータである。
【発明の効果】
【００１３】
オフラインで作成したプログラムを現場に適用する際、補正装置上の作業箇所からスプライン曲線又はスプライン曲面を作成し、また、現場で対応する点をタッチアップして、スプライン曲線又はスプライン曲面を作成する。この２つの曲線又は曲面を比較し、差分を求め、ロボットプログラム、および、ロボットのD-Hパラメータを補正することで、ロボットプログラムの補正精度が高くなり、現場でのプログラムの補正のための作業工数が短縮される。これにより、オフラインで作成したプログラムを現場に適用するときの作業が簡単化される。
【発明を実施するための最良の形態】
【００１４】
以下に本発明の実施の形態を説明する。全図を通じて同一参照番号は同一のものを示す。
【００１５】
図１は本発明によるロボットプログラム補正装置を含むシステムの構成を示すブロック図である。同図において、１１はパーソナルコンピュータ等のコンピュータ、１２はコンピュータ１１に接続された表示装置、１３はコンピュータに接続された入力手段であって、キーボートやマウス等により実現される。１４はコンピュータ１１格納されているロボット動作プログラムによりロボット１６の動作を制御するコントローラ、１５はコントローラ１４を介してロボットの作業位置を教示したり、コンピュータ１１にロボット動作プログラムをインストールしたりするための教示装置、１６はコントローラ１５により制御されるロボット、１７はロボット１６により加工されたり移動されたりするワークである。
【００１６】
本発明によるロボットプログラム補正装置はコンピュータ１１により実現される。
【００１７】
表示装置１２の画面上にはロボット１６、ワーク１７及び必要に応じて周辺機器（図示せず）の画像が3次元データとして同時に表示される。
【００１８】
教示装置１５は表示装置１２の画面上に表示されたロボットの画像又は実際のロボットを操作者が見ながらロボット１６の作業箇所を指定したりロボット１６の動きを指定したりするために用いられる携帯端末である。
【実施例１】
【００１９】
図２は本発明の実施例１によるロボットプログラム補正装置の構成を示す機能ブロック図である。同図において、２０は表示装置１２に接続されたロボットプログラム補正装置である。ロボットプログラム補正装置２０はパーソナルコンピュータ１１等により実現される。ロボットプログラム補正装置２０は、ロボットとワークのそれぞれの３次元モデルを表示装置１２の画面上に同時に表示し、ロボットの動作プログラムを補正するものである。ロボットプログラム補正装置２０は、画面上で指定された作業箇所に対応した実際のワーク上の位置を実際のロボットによりタッチアップすることにより実際のワーク上の位置を複数の点として記憶するタッチアップ位置記憶手段２１と、タッチアップした複数の点に基づいて、線及び面の少なくとも一方を算出するタッチアップ線又はタッチアップ面算出手段２２と、画面上に表示されているワーク上の作業箇所の位置情報を複数の点として格納する作業箇所格納手段２３と、作業箇所格納手段内２３の複数の点に基づいて、ロボット動作プログラムを検索するロボット動作プログラム検索手段２４と、ロボット動作プログラムが示す複数の作業箇所に基づいて、線及び面の少なくとも一方を算出する作業箇所線又は面算出手段２５と、タッチアップした点から算出された線及び面の少なくとも一方と前記画面上で指定した作業箇所の点から算出した線及び面の少なくとも一方との差分を算出する差分算出手段２６と、その差分に基づいて補正量を算出し、ロボット動作プログラムを補正する補正手段２７とを備えている。
【実施例２】
【００２０】
図３は本発明の実施例２によるロボットプログラム補正装置の構成を示す機能ブロック図である。同図において、図２と異なるところは、図２における作業個所位置取得手段２３が画面上に表示されているワークの画面上の作業箇所の位置情報を複数の点として取得するのに対して、図３においては、実際のロボットに対するタッチアップ位置からこれに関連するロボット動作プログラム及び作業箇所を検索する手段３１と、検索されたロボット動作プログラム及び作業位置に基づいて、作業箇所の線及び面の少なくとも一方を算出する作業箇所線又は面算出手段３２とを備えていることである。
【００２１】
図４は実施例１及び実施例２によるロボットプログラム補正装置とロボットコントローラ１４の構成を具体的に示すブロック図である。同図において、プログラム補正装置４０はコンピュータ１１に含まれている。プログラム補正装置４０は、レイアウト作成部４０１と、ワークデータ読込部４０２と、動作プログラム作成部４０３と、実施例１においては作業箇所から動作プログラムを検出する動作プログラム検出部４０４又は実施例２においてはタッチアップ点からロボット動作プログラムと作業箇所を検索する検索部４０５と、プログラム補正部４０６とを備えている。
【００２２】
コンピュータ１１は更に、ワーク１７に関するデータを格納するワークデータ記憶部４０７と、ロボットプログラム計測箇所記憶部４０８と、作業箇所記憶部４０９と、タッチアップ位置記憶部４１０と、補正後のロボットプログラム記憶部４１１と、補正ソフト基本機能部４１２とを備えている。プログラム補正装置４０は補正ソフト基本機能部４１２にプラグインされる。
【００２３】
ロボットコントローラ１４は、ロボットプログラム計測箇所記憶部４０８に記憶されている計測箇所のロボットプログラムを読み込むロボットプログラム読込部４１３と、読み込んだプログラムに従ってロボットジョグを行うジョグ機能部４１４と、タッチアップしたワークの位置をタッチアップ位置記憶部４１０に教示するタッチアップ機能部４１５と、補正後のロボットプログラムを読み込むロボットプログラム読込部４１６と、読み込んだ補正後のプログラムを実行する実行部４１７とを備えている。
【００２４】
次に図２及び図３に示した機能ブロック図と図４に示した具体的構成との関係を説明する。
【００２５】
図２及び図３のタッチアップ位置記憶手段２１は図４のタッチアップ位置記憶部４１０に相当する。図２の作業箇所格納手段２３は図４の作業箇所格納部４０９に相当する。図２のロボット動作プログラム検索手段２４は図４の動作プログラム検索部４０４に相当する。図３のロボット動作プログラム及び作業箇所検索手段３１は図４の検索部４０５に相当する。図２のタッチアップ線又は面算出手段２２及び差分算出手段２６、差分算出手段２６、補正手段２７、図３の作業箇所線又は面算出手段３２、差分算出手段３３及び補正手段３４は図４のプログラム補正部４０６に相当する。
【００２６】
図５は図４に示したロボットプログラム補正装置の実施例１による動作を説明するフローチャートである。同図において、ステップＳ５１にて、レイアウト作成部４０１は表示装置１２の画面上で、ロボット１６、ワーク１７及び必要に応じて周辺機器(図示省略)の3次元データを配置することによりレイアウト作成を行う。レイアウトされたワークの画像に関係するワークデータはワークデータ記憶部４０７からワークデータ読込部４０２に読み込まれる。
【００２７】
次にステップＳ５２にて、表示装置１２の画面上にレイアウトされたロボットやワークの画像に対応する複数の動作プログラムを周知の手法で作成する。
【００２８】
次にステップＳ５３にて、操作者は教示装置１５を用いて表示装置１２の画面上に表示されているワークやロボットの画像の上で作業個所を指定する。この指定はマウスを用いてカーソルを作業個所に移動させてクリックするとか、画面上に全作業個所を表示させてその中から選択させる等、様々な方法で実現できる。指定された作業個所は作業個所格納手段２３（作業箇所記憶部４０９）に格納される。
【００２９】
次にステップＳ５４にて、ステップＳ５３にて指定された作業個所から最も近いロボット動作プログラムを、ステップＳ５２にて作成したロボット動作プログラムから検索する。
【００３０】
次にステップＳ５５にて、実際のロボット１６により実際のワーク１７の、上記指定された作業個所に対応する個所をタッチアップし、タッチアップされた個所は実ワーク位置記憶手段２１（タッチアップ位置記憶部４１０）に格納される。
【００３１】
最後にステップＳ５６にて、作業個所格納手段２３（作業箇所記憶部４０９）に格納されている画面上の作業個所と、タッチアップ位置記憶手段２１（タッチアップ位置記憶部４１０）に格納されているタッチアップ点との線又は面を、作業個所線又は面算出手段２４及びタッチアップ線又は面算出手段２２により算出し、差分算出手段２５によりそれらの差分を算出し、その差分に基づいてステップＳ５４にて検索されたロボット動作プログラムを補正する。
【００３２】
図６は図４に示したロボットプログラム補正装置の実施例２による動作を説明するフローチャートである。同図において、図５と異なるところは、図５においてはステップＳ５４で画面上の作業個所からロボット動作プログラムを検索するのに対して、図６においては、ステップＳ６５にて実際のロボットに対するタッチアップ点に最も近いロボット動作プログラム及び作業個所を検索する点であり、他のステップは図５と同じであるのでここでは説明を省略する。
【００３３】
図７は表示装置１２の画面上に表示されている作業面Ｐｓとこれに対応する実際のロボット１６の作業面(タッチアップ面)Ｐｔを示す図である。図示のように、一般に画面上の作業面Ｐｓとタッチアップ面ＰｔとはベクトルＤだけずれている。まる印は教示点を示しており、画面上で指定した教示点と実際のロボットの教示点とがずれているので、このずれを補償するためにロボット動作プログラムを上記の手段により補正する。
【００３４】
次にロボット動作プログラムの補正の具体的な方法を説明する。
【００３５】
まず、画面上の作業箇所Qsjから、行列Nijを用いて下記の式で表されるようにしてスプライン曲面になるように作業面Ps(u,w)を算出する。ここで、Qsj中の添え字ｓは作業面の3次元表面位置surface(表面）を表し、jは作業面上の作業点のインデックスである。また、u及びwは０から１までの値を取る媒介変数である。
【００３６】
Ps(u,w)=ΣNij(t)  Qsｊ
【００３７】
同様にタッチアップ点Qtjから、スプライン曲面になるようにタッチアップ面Pt(u,w)を算出する。
【００３８】
次に差分単位法線ベクトルe(u,w)とオフセット距離dを以下の式により算出する。
【００３９】
2面の差分D(u,w)は
D(u,w) =Ps(u,w)-Pt(u,w)
e(u,w) = D(u,w)/|D(u,w)|
d=|D(u,w)|
【００４０】
次に画面上で作成した、ロボット動作プログラムの教示点Pr(i)を上記差分ベクトルに従って、以下のように補正する。
【００４１】
変換行列M=（n, o, a, D(u,w)）
n=(1, 0, 0)
o=(0, 1, 0)
a=(0, 0, 1)
ここで、n,o,aはロボット工学におけるリンク座標系で通常用いられるアームの手先の姿勢を表すパラメータであってそれぞれ、ノーマル、オリエント、アプローチを表す。また、D(u,w)は上記の式で得られた差分ベクトルであってロケーションを表す。
【００４２】
変換後の教示点Pn(i)は実施例１によれば
Pn(i)  =  M Pr(i)
となり、実施例２によれば
Pn(i)  =  X Pr(i)
となる。ここで行列Xは、
【００４３】
【数１】
2006293826.tif 000003
【００４４】
図８は上記補正により変更されたロボットの位置とワークの位置の関係を示す図である。補正前のロボットの位置はベクトルＲ、補正前のワークの位置はベクトルＷとし、画面上の作業面Ｐｓとタッチアップ面ＰｔとはベクトルＤだけずれているとすると、補正後のワークの位置ベクトルＷｄは図示のようにベクトルＷとベクトルＤとの内積Ｗ．Ｄとなる。
【００４５】
次にロボットプログラム補正装置によるロボットのD-Hパラメータの変更について説明する。D-HパラメータとはDenavit-Hartenbergの方法により設定される周知のパラメータである。
【００４６】
ロボットのTCP（Tool Center Point)の位置姿勢は各リンクの行列の掛け算で表される。TCPとはロボットの先端部の位置のことで3次元座標で表される。
【００４７】
実施例１において、リンクが6軸あり、それぞれの軸を表す行列をA1,A2,A3,A4,A,A6とし、ツールの行列をTとすると、TCPは以下のようになる。
【００４８】
TCP=A1A2A3A4A5A6T
【００４９】
ワークのレイアウト補正に伴い、同時にワークに依存する作業箇所も自動的に補正される。また、同時にロボットプログラム補正装置上のロボットの動作プログラムの教示点も補正する。
【００５０】
ロボットプログラム補正装置上（画面上）の教示点とタッチアップ点をさらに比較し、その差分を補正装置上のロボットのD-Hパラメータのリンクの位置、姿勢（θ、α）に加算する。
【００５１】
A ＝（n, o, a, l）
n = (cθ, sθ, 0, 0)
o = (-cαsθ, sαcθ, sα, 0)
a = (sαsθ, -sαcθ, cα, 0)
l = (Aｃθ, Asθ, sα, 1)
ここで、ｌはロケーションを表す。
【００５２】
タッチアップ点Ti（x, y, z, w, p, r）  I=1,nについて
ここでw,p,rは座標系の姿勢を表す角として知られているヨー、ピッチ、ロー角を表す。
【００５３】
Ti= A1iA2iA3iA4iA5iA6iT
I=1,n
の連立方程式を解き、
θｔ、αｔを算出する。
【００５４】
画面上の作業箇所に対しても同様にθs、αsを求める。
【００５５】
差分θd=θｔ-θs、θd=αｔ-αs
これをD-Hパラメータの対応する要素に加算し、D-Hパラメータを補正する。このパラメータが次回から使用される。
【００５６】
次に実施例２におけるタッチアップ点に近いロボット動作プログラム、作業箇所の検索について説明する。
【００５７】
まず、タッチアップ点列からこの点列を繋ぐスプライン曲線を作成する。
【００５８】
同様にロボット動作プログラムの教示点列からこの点列を繋ぐスプライン曲線を作成する。
【００５９】
タッチアップ点Ti（xi, yi, zi, wi, pi, ri）
教示点列Ki（xi, yi, zi, wi, pi, ri）
のスプライン曲線はそれぞれ
Pti(t)=N0(t)Ti-1＋N1(t)Ti+ N2(t)Ti+1＋N3(t)Ti+2
Pki(t)=N0(t)Ki-1＋N1(t)Ki+ N2(t)Ki+1＋N3(t)Ki+2
となる。
【００６０】
この差分をもとめ、これが最小となるロボット動作プログラムを選択する。また、これに対応した作業箇所を選択する。
【産業上の利用可能性】
【００６１】
以上の説明から明らかなように、本発明により以下の効果が得られる。
【００６２】
(1)オフラインで作成したプログラムを現場に適用するときの操作を簡単にすることが出来る。
【００６３】
(2)オフラインで作成したプログラムを現場に適用するときの工数を短縮することが出来る。
【図面の簡単な説明】
【００６４】
【図１】本発明によるロボットプログラム補正装置を含むシステムの構成を示すブロック図である。
【図２】本発明の実施例１によるロボットプログラム補正装置の構成を示す機能ブロック図である。
【図３】本発明の実施例２によるロボットプログラム補正装置の構成を示す機能ブロック図である。
【図４】実施例１及び実施例２によるロボットプログラム補正装置とロボットコントローラ１４の構成を具体的に示すブロック図である。
【図５】図４に示したロボットプログラム補正装置の実施例１による動作を説明するフローチャートである。
【図６】図４に示したロボットプログラム補正装置の実施例２による動作を説明するフローチャートである。
【図７】表示装置１２の画面上に表示されている作業面Ｐｓとこれに対応する実際のロボット１６の作業面(タッチアップ面)Ｐｔを示す図である。
【図８】補正により変更されたロボットの位置とワークの位置の関係を示す図である。
【符号の説明】
【００６５】
１２    表示装置
２１    タッチアップ位置記憶手段
２２    タッチアップ線又は面算出手段
２３    作業箇所格納手段
２４    ロボット動作プログラム検索手段
２５    作業箇所線又は面算出手段
２６    差分算出手段
２７    補正手段
３１    ロボット動作プログラム及び作業箇所検索手段
３２    作業箇所線又は面算出手段
３３    差分算出手段
３４    補正手段
【図１】
2006293826.tif 000004
【図２】
2006293826.tif 000005
【図３】
2006293826.tif 000006
【図４】
2006293826.tif 000007
【図５】
2006293826.tif 000008
【図６】
2006293826.tif 000009
【図７】
2006293826.tif 000010
【図８】
2006293826.tif 000011