(57)【特許請求の範囲】
【請求項１】
オフラインティーチング装置における設計値に基づいた論理ロボットモデルと、現場に設置された実物ロボットの動作上の違いを補正量として求めるオフラインティーチング方法において、
任意の固定点に複数の姿勢を教示することによって各動作軸に対応した遺伝子を含む任意数の染色体を生成するステップと、
所定の各姿勢に各前記染色体を適用してロボットの先端位置と目標位置とのずれ量を求めて各適応度を得るステップと、
前記染色体を適応度の順に並び替え、任意の染色体を交配して新たな染色体を生成するステップと、
前記生成された新たな染色体の評価値が基準値以上であるかどうかを判別して、判別が肯定されたときに最新世代の染色体が保持されて補正量とするステップと、
を有することを特徴とするオフラインティーチング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オフラインティーチング装置において、設計値に基づいた論理ロボットモデルと現場に設置された実物ロボットとの動作上の違いを補正量として求め、これをティーチングデータ等に反映させるためのオフラインティーチング方法に関する。
【０００２】
【従来の技術】
近時、ロボットを各種作業に適用させるために、ロボットアームのフェースプレートに種々のツールを取り付けてロボットに作業を行わせることが一般的となっている。
【０００３】
そして、従来では、ロボットに対する教示技術やその教示データに対して種々の補正を行う技術が多数提案されている。例えば、ロボットに対する教示技術に関するものとしては、教示のための情報を入力する際に、使用するロボット作業に必要な情報を使用者の要求に対してできるだけ正確に、かつ、使用者の負担をできるだけ軽減するようにした方法が提案されている（特開平５−２７８２８号公報参照）。
【０００４】
また、教示データの補正技術に関するものとしては、作業現場から離れた場所でも簡単にプレイバック時と同一の動作条件下で教示点の修正及び教示軌跡の補正が実行でき、教示の修正作業に対する作業者の負担を軽減するようにした方法（特開平８−２８６７２６号公報参照）や、全ての打点位置に対して位置ずれを高精度にかつ自動的に補正できるようにした方法（特開平７−３２５６１１号公報参照）や、ニューラルネットワークを用いてロボットの位置補正を行う方法（特開平６−１１４７６９号公報参照）や、修正した教示データに動作範囲異常が発生したとき、ロボット動作の変換データを修正する際に、オペレータが感覚的に分かりやすい修正作業を行うことができるようにした方法（特開平５−２８９７３０号公報参照）や、直交座標上の計測をなくしてアーム軸回転角のみでアーム型多関節ロボットの絶対位置精度を確保するために、未知変数配列及び定数配列の諸元を修正パウエル法の繰り返し論理演算を適用し、更なる精度の向上と演算速度の上昇を図るようにした方法（特開平６−２７４２１３号公報参照）や、多関節形ロボットの手首にツールを取り付けたロボットの設定データである定数の設定誤差及びツールオフセットの設定誤差を自動的に補正する方法（特許第２５２０３２４号参照）等が提案されている。
【０００５】
また、ツール先端点設定に関するものとしては、設計データが入手できない場合であっても、簡単な設定用治具を利用することによって簡単な手順で希望する姿勢でツール先端点を設定できるようにした方法（特開平７−１９１７３８号公報参照）が提案され、ＣＡＤデータを利用したものとしては、オペレータが初期設定データ、作業経路データ、作業動作データを逐一入力することが不要になり、オペレータの入力量を大幅に減少させるようにした方法（特開平８−２８６７２２号公報参照）が提案され、軌跡表示に関するものとしては、ワークを作業位置から待避させた場合において、動作中の実際のツールの位置とワークとの相対的な位置関係を容易、かつ正確に認識できるようにした方法（特開平８−１７４４５４号公報参照）が提案されている。
【０００６】
【発明が解決しようとする課題】
しかしながら、上述した従来例のオフラインティーチングに関する技術においては、実物ロボットの形態毎にずれ量をモデル化（定式化）し、解析的に求めていた。そのため、１形態に対して１つのモデルが必要になり、モデル化の作業が複雑で手間（工数）がかかるという問題がある。また、実物ロボットの複雑な挙動を十分に反映したモデルを作ることが困難になることがあり、この場合、良好な推定結果が得られず、位置ずれを小さくすることができないという問題がある。
【０００７】
本発明はこのような課題を考慮してなされたものであり、ロボットの形態毎に複雑な方程式を立てなくても補正量を求めることができ、工数の削減化を図ることができるオフラインティーチング方法を提供することを目的とする。
【０００８】
また、本発明の他の目的は、オフラインティーチングデータを実物ロボットにダウンロードした際に、位置ずれを小さくすることができ、現場での修正の作業工数を大幅に削減させることができるオフラインティーチング方法を提供することにある。
【０００９】
【課題を解決するための手段】
本発明に係るオフラインティーチング方法は、オフラインティーチング装置における設計値に基づいた論理ロボットモデルと、現場に設置された実物ロボットの動作上の違いを補正量として求めるオフラインティーチング方法において、任意の固定点に複数の姿勢を教示することによって各動作軸に対応した遺伝子を含む任意数の染色体を生成するステップと、所定の各姿勢に各前記染色体を適用してロボットの先端位置と目標位置とのずれ量を求めて各適応度を得るステップと、前記染色体を適応度の順に並び替え、任意の染色体を交配して新たな染色体を生成するステップと、前記生成された新たな染色体の評価値が基準値以上であるかどうかを判別して、判別が肯定されたときに最新世代の染色体が保持されて補正量とするステップと、を有することを特徴とする。
【００１２】
これにより、ロボットの形態毎に複雑な方程式を立てなくても補正量を求めることができ、補正量の推定モデル作成過程の工数の削減化を図ることができる。また、オフラインティーチングデータを実物ロボットにダウンロードした際に、位置ずれを小さくすることができることから、現場での修正の作業工数を大幅に削減させることができる。
【００１４】
【発明の実施の形態】
以下、本発明に係るオフラインティーチング方法を例えば溶接ガンのロボットのオフラインティーチングシステムに適用した実施の形態例（以下、単に実施の形態に係るオフラインティーチングシステムと記す）を図１〜図１０を参照しながら説明する。
【００１５】
本実施の形態に係るオフラインティーチングシステム１０は、図１に示すように、キーボード等のキー入力装置やマウス等のポインティングデバイスなどが接続され、実物ロボット１６に模した論理ロボットモデルをモニタ１２の画面上に表示させてオフラインのティーチングを行うオフラインティーチング装置１４と、実物ロボット１６を制御するためのロボットコントローラ１８とを有して構成されている。
【００１６】
前記オフラインティーチング装置１４には、フレキシブルディスクドライブ（以下、単にＦＤＤと記す）２０が接続されており、オフラインティーチング装置１４にて作成されたティーチングデータがＦＤＤ２０を介してフレキシブルディスク２２に記録され、又はフレキシブルディスク２２に記録されているティーチングデータ等がＦＤＤ２０を介してオフラインティーチング装置１４に読み込まれるようになっている。
【００１７】
同じくロボットコントローラ１８にもＦＤＤ２４が接続されており、該ロボットコントローラ１８にて修正付加されたティーチングデータがＦＤＤ２４を介してフレキシブルディスク２２に記録され、又はフレキシブルディスク２２に記録されているティーチングデータ等がＦＤＤ２４を介してロボットコントローラ１８に読み込まれるようになっている。
【００１８】
また、オフラインティーチング装置１４は、図２に示すように、キーボード等の入力装置３０、マウスやジョイスティック等の座標入力装置３２（ポインティング・デバイス）、ハードディスクドライブ（ＨＤＤ）３４及び前記ＦＤＤ２０がそれぞれインターフェース（単にＩ／Ｆと記す）回路３６、３８、４０及び４２を介して接続され、更に、このオフラインティーチング装置１４には、他のオフラインティーチング装置におけるティーチングデータ等の受渡しに使用されるＬＡＮがＩ／Ｆ回路４４を介して接続され、ＬＡＮを通じて取り込まれたティーチングデータや当該オフラインティーチング装置１４にて作成したティーチングデータを表示するための前記モニタ１２とを有する。
【００１９】
このオフラインティーチング装置１４は、各種プログラム（ティーチング処理プログラム等）の動作用として用いられる動作用ＲＡＭ４６と、外部機器（ＬＡＮ、座標入力装置３２、ＨＤＤ３４等）からのデータや各種プログラムによってデータ加工されたデータ等が格納されるデータＲＡＭ４８と、外部機器に対してデータの入出力を行う入出力ポート５０と、これら各種回路を制御するＣＰＵ（制御装置及び論理演算装置）５２とを有して構成されている。
【００２０】
前記各種回路は、ＣＰＵ５２から導出されたデータバス５４を介して各回路間のデータの受渡しが行われ、更にＣＰＵ５２から導出されたアドレスバスや制御バス（共に図示せず）を介してそれぞれＣＰＵ５２にて制御されるように構成されている。
【００２１】
そして、本実施の形態に係るオフラインティーチングシステム１０は、図３に示す手順でロボットモデルの補正のためのティーチングを行う。
【００２２】
即ち、最初のステップＳ１において実物ロボット１６の形態を判定する。例えば、ツール先端の形態やロボットの関節数などが判定される。
【００２３】
次に、ステップＳ２において、対象ロボットに応じた実物ロボット１６の多点多姿勢ティーチングを行い、そのティーチングデータをオフラインティーチング装置１４にアップロードする。
【００２４】
このアップロードは、例えば、上述したダウンロードの場合と同様に、ロボットコントローラ１８に接続されているＦＤＤ２４を介して前記修正後のティーチングデータをフレキシブルディスク２２に記録し、次に、該フレキシブルディスク２２に記録されている前記修正後のティーチングデータをオフラインティーチング装置１４に接続されているＦＤＤ２０を介して該オフラインティーチング装置１４に読み込ませることにより行われる。
【００２５】
前記の例は、フレキシブルディスク２２を用いた例を示したが、その他、ＭＯやＣＤ−Ｒ等の光ディスクをアップロードの媒体として用いることもでき、また、オフラインティーチング装置１４とロボットコントローラ１８とがＬＡＮで接続されているのであれば、ＬＡＮを通じてアップロードさせるようにしてもよい。
【００２６】
次に、ステップＳ３において、アップロードしたティーチングデータで遺伝的アルゴリズムによる補正量の探索処理を行う。
【００２７】
具体的に、前記遺伝的アルゴリズムを用いた補正量の探索処理について図４〜図１０を参照しながら説明する。まず、説明を簡単化するために、図４に示すように、実物のロボット１６に対応する論理ロボットモデルの軸数（関節数）を３軸とした場合であって、ツールオフセットは考慮せず、誤差はセンサのゼロオフセット誤差のみとする。ここで、センサは各軸に取り付けられたエンコーダである。
【００２８】
そして、実物ロボット１６のツール先端点（ＴＣＰ）Ｐをある任意の固定点ＰＴ  に合わせると、
Ｐ＝ｆ（θ１  ＋ε１  ，θ２  ＋ε２  ，θ３  ＋ε３  ）                                ……（１）
が成立する。
【００２９】
ここで、Ｐはロボットの先端位置、ＰＴ  は目標位置（固定点）、θｉ  は第ｉ関節の角度（検出器による）、εｉ  は第ｉ関節のゼロオフセット誤差、ｄは位置ずれ量である。
【００３０】
まず、図６のステップＳ１０１において、染色体の集団を初期化する。具体的には、図５に示すように、実物ロボット１６を空間内の任意の固定点ＰＴ  に３姿勢を教示する。各姿勢（ＰＯＳ１、ＰＯＳ２及びＰＯＳ３）と第ｉ関節（第ｉ軸）の角度との関係を図７に示す。
【００３１】
そして、前記任意の固定点ＰＴ  に３姿勢を教示することによって、図８に示すように、それぞれ３つの遺伝子を含む例えば５本の染色体ｇ１〜ｇ５を生成する。初期の段階では前記５本の染色体ｇ１〜ｇ５がランダムに生成される。
【００３２】
次に、ステップＳ１０２において、集団の各染色体ｇ１〜ｇ５を評価する。この評価は、まず、第ｉ姿勢に第ｊ染色体を適用して得たロボットの先端位置Ｐｉｊを求める。例えば、第１姿勢に第１染色体〜第５染色体を適用して得たロボットの先端位置は、
Ｐ１１＝ｆ（θ１１＋ε１１，θ１２＋ε１２，θ１３＋ε１３）
Ｐ１２＝ｆ（θ１１＋ε２１，θ１２＋ε２２，θ１３＋ε２３）
Ｐ１３＝ｆ（θ１１＋ε３１，θ１２＋ε３２，θ１３＋ε３３）
Ｐ１４＝ｆ（θ１１＋ε４１，θ１２＋ε４２，θ１３＋ε４３）
Ｐ１５＝ｆ（θ１１＋ε５１，θ１２＋ε５２，θ１３＋ε５３）
となる。
【００３３】
次いで、前記のようにして求められたロボットの先端位置Ｐｉｊと目標位置ＰＴ  とのずれ量を求める。評価関数に、各染色体ｇ１〜ｇ５を入力したときの返り値（評価値）がずれ量になる。このとき、適応度は、返り値の小さいものほど大きくする。
【００３４】
そして、適応度ｖを
ｖ＝ｆｕｎｃ（Ｐ，ＰＴ）
とし、ｆｕｎｃを評価関数と定義したとき、本実施の形態では
ｖ＝α−１＝｜Ｐ−ＰＴ  ｜−１
とした。
【００３５】
従って、第ｉ姿勢に第ｊ染色体を適用して得た適応度ｖｉｊは、
0003626331.tif 000002
となる。
【００３６】
例えば、第１姿勢に第１染色体〜第５染色体を適用して得た適応度は、
ｖ１１＝ｆｕｎｃ（Ｐ１１，ＰＴ）＝｜Ｐ１１−ＰＴ  ｜−１
ｖ１２＝ｆｕｎｃ（Ｐ１２，ＰＴ）＝｜Ｐ１２−ＰＴ  ｜−１
ｖ１３＝ｆｕｎｃ（Ｐ１３，ＰＴ）＝｜Ｐ１３−ＰＴ  ｜−１
ｖ１４＝ｆｕｎｃ（Ｐ１４，ＰＴ）＝｜Ｐ１４−ＰＴ  ｜−１
ｖ１５＝ｆｕｎｃ（Ｐ１５，ＰＴ）＝｜Ｐ１５−ＰＴ  ｜−１
となる。
【００３７】
同様にして、第２姿勢に第１染色体〜第５染色体を適用して得たロボットの先端位置Ｐ２１〜Ｐ２５、第３姿勢に第１染色体〜第５染色体を適用して得たロボットの先端位置Ｐ３１〜Ｐ３５、第２姿勢に第１染色体〜第５染色体を適用して得た適応度ｖ２１〜ｖ２５、第３姿勢に第１染色体〜第５染色体を適用して得た適応度ｖ３１〜ｖ３５を得る。
【００３８】
ここで、
【００３９】
【数１】
0003626331.tif 000003
【００４０】
とすると、図９に示すように、各染色体ｇ１〜ｇ５の適応度がＶ１  、Ｖ２  、Ｖ３  、Ｖ４  及びＶ５  として求まる。この段階で親の染色体集団が生成される。
【００４１】
そして、前記のようにして求めた適応度Ｖ１  〜Ｖ５  に基づいて遺伝的アルゴリズムにおける交配と突然変異の処理並びに基準値との比較処理が行われる。
【００４２】
具体的には、図６のステップＳ１０３において、図１０に示すように、現在の５つの染色体ｇ１〜ｇ５を適応度の大きい順に並べ替える。そのうちのいくつかの染色体を交配して新たな染色体（子の染色体）を生成する。親の染色体を交配させる際に突然変異と再生を適用する。
【００４３】
次に、ステップＳ１０４において、新たな染色体の入る場所を空けるために親の染色体集団（単に集団という。）の一部を削除する。次に、ステップＳ１０５において、新たな染色体を評価し、集団に挿入する。次に、ステップＳ１０６において、最新世代の染色体の評価値が基準値以上であるかどうかを判別する。この判別は、具体的には、以下のような評価方法の１つあるいは２つ以上の組み合わせを採用することができる。
（１）  位置ずれの平均値が許容誤差以下にする染色体が見つかったかどうか。
（２）  各位置ずれのうち、最悪値が規定値以下かどうか。
（３）  所定の回数や時間が経過したかどうか。
【００４４】
前記ステップＳ１０６において否定判別がなされた場合は、前記ステップＳ１０３に戻って該ステップＳ１０３以降の処理を行う。即ち、再びステップＳ１０３において、前回とは別の交配が行われて新たな染色体が生成され、次のステップＳ１０４において、その新たな染色体の入る場所を空けるために集団の一部が削除され、次のステップＳ１０５において、その新たな染色体が評価されて集団に挿入される。
【００４５】
そして、ステップＳ１０６において肯定判別がなされるまで、前記一連の処理が繰り返されることになる。従って、ステップＳ１０６において肯定判別がなされた場合、最新世代の染色体が保持されて、この補正量の探索処理が終了する。
【００４６】
次に、図３のステップＳ４において、前記探索された染色体のうち、最良の染色体を補正量とする。
【００４７】
次に、ステップＳ５において、前記補正量をティーチングデータやロボットコントローラの各種パラメータに反映させる。
【００４８】
次に、ステップＳ６において、オフラインティーチング装置１４で作成した実物ロボット１６に作業させるためのティーチングデータを実物ロボット１６のロボットコントローラ１８にダウンロードする。このダウンロードは、例えば、オフラインティーチング装置１４に接続されているＦＤＤ２０を介して前記多点多姿勢のティーチングデータをフレキシブルディスク２２に記録し、次に、該フレキシブルディスク２２に記録されている前記多点多姿勢のティーチングデータをロボットコントローラ１８に接続されているＦＤＤ２４を介して該ロボットコントローラ１８に読み込ませることにより行われる。
【００４９】
前記の例では、フレキシブルディスク２２を用いた場合を示したが、その他、ＭＯやＣＤ−Ｒ等の光ディスクをダウンロードの媒体として用いることもでき、また、オフラインティーチング装置１４とロボットコントローラ１８とがＬＡＮで接続されているのであれば、ＬＡＮを通じてダウンロードさせるようにしてもよい。
【００５０】
次に、ステップＳ７において、ロボットコントローラ１８による制御によって実物ロボット１６を作動させ、ＴＣＰを数点の目標点Ｐ１，Ｐ２，Ｐ３，Ｐ４及びＰ５に向かって移動させる。ティーチングデータから割り出される前記目標点Ｐ１，Ｐ２，Ｐ３，Ｐ４及びＰ５の位置を作業点として定義した場合、このステップＳ７では、作業点と実際の目標点Ｐ１，Ｐ２，Ｐ３，Ｐ４及びＰ５との位置合わせを行う。
【００５１】
ロボットコントローラ１８にダウンロードされた多点多姿勢のティーチングデータは、論理ロボットモデルを用いて実物ロボット１６に限りなく近づけた高精度のティーチングデータであるため、前記ステップＳ７での位置合わせでは、ほとんど姿勢を変えないで行うことができる。
【００５２】
前記探索によって得た補正量がオフラインティーチング装置１４上の論理ロボットモデルに反映される。
【００５３】
その結果、同一の実物ロボット１６に対して別の動作（操作）を行わせる必要が生じた場合に、その動作（操作）を行うための教示プログラムを前記論理ロボットモデルを使って簡単に、かつ高精度に作成することが可能となる。
【００５４】
このように、本実施の形態に係るオフラインティーチングシステム１０においては、補正量の推定処理（ステップＳ３）を遺伝的アルゴリズムを用いた探索にて行うようにしているため、ロボットの形態毎に複雑な方程式を立てなくても補正量を求めることができ、補正量の推定モデル作成過程の工数の削減化を図ることができる。また、オフラインティーチングデータを実物ロボットにダウンロードした際に、位置ずれを小さくすることができることから、現場での修正の作業工数を大幅に削減させることができる。
【００５５】
前記補正量推定ステップは、前記遺伝的アルゴリズムのみを用いて補正量を探索するようにしたが、その他、前記遺伝的アルゴリズムによる補正量の探索に加えて、他の探索法や解析法を併用して行うようにしてもよい。
【００５６】
この実施の形態においては、３軸のロボットを想定して補正量の推定処理（遺伝的アルゴリズムによる補正量の探索）を行うようにしたが、３軸以外のロボットにも簡単に適用させることができる。
【００５７】
また、この実施の形態では、溶接ガンのロボットのオフラインティーチングシステム１０に適用した例を示したが、その他、各種生産用ロボットにも適用させることができる。
【００５８】
なお、この発明に係るオフラインティーチング方法は、上述の実施の形態に限らず、この発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【００５９】
【発明の効果】
以上説明したように、本発明に係るオフラインティーチング方法によれば、オフラインティーチング装置における設計値に基づいた論理ロボットモデルと現場に設置された実物ロボットの動作上の違いを補正量として求める補正量推定ステップと、前記補正量推定ステップで求めた補正量を少なくともティーチングデータに反映させる修正ステップとを含み、前記補正量推定ステップにおいて、前記補正量を遺伝的アルゴリズムを適用した探索によって求めるようにしている。
【００６０】
このため、ロボットの形態毎に複雑な方程式を立てなくても補正量を求めることができ、補正量の推定モデル作成過程の工数の削減化を図ることができる。また、オフラインティーチングデータを実物ロボットにダウンロードした際に、位置ずれを小さくすることができることから、現場での修正の作業工数を大幅に削減させることができる。
【図面の簡単な説明】
【図１】本実施の形態に係るオフラインティーチングシステムを示す構成図である。
【図２】本実施の形態に係るオフラインティーチングシステムにおけるオフラインティーチング装置の構成を示すブロック図である。
【図３】本実施の形態に係るオフラインティーチングシステムの動作を示すフローチャートである。
【図４】本実施の形態に係るオフラインティーチングシステムにおいて行われる補正量の探索（遺伝的アルゴリズムによる探索）を説明するための３軸のロボットを示すモデル図である。
【図５】図４に示すロボットに対し、空間内の任意の固定点に３姿勢を教示する場合の一例を示す説明図である。
【図６】本実施の形態に係るオフラインティーチングシステムにおいて行われる補正量の探索（遺伝的アルゴリズムによる探索）の手順を示すフローチャートである。
【図７】ロボットに対して行った３姿勢（ＰＯＳ１、ＰＯＳ２及びＰＯＳ３）と第ｉ関節（第ｉ軸）の角度との関係を示す図表である。
【図８】ロボットを任意の固定点に３姿勢を教示することによって初期段階に生成される５本の染色体の構造を示す表図である。
【図９】初期段階に生成された５本の染色体とそれらに対応する適応度を示す表図である。
【図１０】遺伝的アルゴリズムによる探索処理のうち、ステップＳ１０３〜ステップＳ１０６において示される交配と突然変異の処理並びに基準値との比較処理を示す概念図である。
【符号の説明】
１０…オフラインティーチングシステム    １２…モニタ
１４…オフラインティーチング装置            １６…実物ロボット
１８…ロボットコントローラ                        ２２…フレキシブルディスク
【図１】
0003626331.tif 000004
【図２】
0003626331.tif 000005
【図３】
0003626331.tif 000006
【図４】
0003626331.tif 000007
【図５】
0003626331.tif 000008
【図６】
0003626331.tif 000009
【図７】
0003626331.tif 000010
【図８】
0003626331.tif 000011
【図９】
0003626331.tif 000012
【図１０】
0003626331.tif 000013