(57)【要約】【課題】  冗長自由度ロボットに対しても角度データを変換可能で、ツール先端位置誤差の補正と関節角度リミット回避や障害物回避との両立を可能とする。【解決手段】  幾何学的誤差を各々考慮した交換前ロボット及び交換後ロボットのツール先端位置ベクトルを計算し(S301-303)、これらベクトル間の誤差ベクトルを計算し(S304)と、幾何学的誤差を考慮した交換後ロボットの角度データに対するヤコビ行列を計算し(S307)、誤差ベクトルとヤコビ行列の逆行列または擬似逆行列とに基づいて角度補正ベクトルを計算し(S308)、関節角度リミット回避及び障害物回避を考慮した評価関数を使って角度補正ベクトルを修正し(S309)、修正した角度補正ベクトルで交換後ロボットの角度データを補正する(S310)、各工程を備え、誤差ベクトルの絶対値(S305)が閾値未満となる(S306肯定判定)まで、処理を繰り返す。【選択図】図３
2012011495.tif 000002
【特許請求の範囲】
【請求項１】
理想の運動学モデルに対する幾何学的誤差が既知である異なるロボット間について、交換前のロボットの動作を交換後のロボットで正確に再現できるように、交換前のロボットの角度データを変換する方法であって、
幾何学的誤差を各々考慮した交換前ロボット及び交換後ロボットのツール先端位置ベクトルの間の誤差ベクトルと、幾何学的誤差を考慮した前記交換後ロボットの角度データに対するヤコビ行列の逆行列または擬似逆行列と、に基づいて角度補正ベクトルを計算し、
前記角度補正ベクトルに基づいて前記交換後ロボットの角度データを補正する、各工程を備えることを特徴とする、角度データ変換方法。
【請求項２】
前記角度補正ベクトルを計算する工程の後であって前記角度データを補正する工程の前に、前記交換後ロボットの関節角度リミット回避及び障害物回避までの距離に応じたポテンシャル関数の線形結合として計算された評価関数に基づいて、前記角度補正ベクトルを修正する工程を更に備えることを特徴とする、請求項１に記載の角度データ変換方法。
【請求項３】
前記角度補正ベクトルを修正する工程は、
前記評価関数の最大増加勾配ベクトルを計算し、
前記角度補正ベクトルと前記最大増加勾配ベクトルとの内積を計算し、
前記内積が正である場合に、前記角度補正ベクトルから前記最大増加勾配ベクトル方向の成分を除去することを特徴とする、各工程を備える、請求項２に記載の角度データ変換方法。
【請求項４】
前記内積を計算する工程において、前記角度補正ベクトルと前記最大増加勾配ベクトルとのなす角が予め定めた閾値未満の場合に、前記評価関数内の複数の重み係数値を変更して最大増加勾配ベクトルを再計算する工程を更に備えることを特徴とする、請求項３に記載の角度データ変換方法。
【請求項５】
前記角度補正ベクトルの絶対値が所定の閾値より小さくなるまで、前記角度補正ベクトルを計算する工程から前記角度データを補正する工程までを繰り返すことを特徴とする、請求項１乃至４のいずれか１項に記載の角度データ変換方法。
【請求項６】
理想の運動学モデルに対する幾何学的誤差が既知である異なるロボット間について、交換前のロボットの動作を交換後のロボットで正確に再現できるように、交換前のロボットの角度データを変換する方法であって、
（１）交換前ロボットの幾何学的誤差を考慮した順運動学により前記角度データに対するツール先端の位置姿勢ベクトルを計算し、
（２）交換後ロボットの角度データを初期設定し、
（３）交換後ロボットの幾何学的誤差を考慮した順運動学により前記交換後角度データに対するツール先端の位置姿勢ベクトルを計算し、
（４）前記交換前位置姿勢ベクトルと前記交換後位置姿勢ベクトルの誤差ベクトルを計算し、
（５）交換後ロボットの幾何学的誤差を考慮して前記交換後角度データに対するヤコビ行列を計算し、
（６）前記ヤコビ行列の逆行列または擬似逆行列を計算し、
（７）前記逆行列または前記擬似逆行列に前記誤差ベクトルを掛け算して角度補正ベクトルを計算し、
（８）交換後ロボットの関節角度リミット回避および障害物回避のための評価関数の最大増加勾配ベクトルを計算し、
（９）前記角度補正ベクトルと前記最大増加勾配ベクトルの内積が正である場合に、前記角度補正ベクトルから前記最大増加勾配ベクトル方向の成分を除去し、
（１０）前記交換後角度データに前記角度補正ベクトルを加算して前記交換後角度データを更新し、
（１１）前記（３）に戻る処理を前記誤差ベクトルの絶対値が閾値以下になるまで繰り返す、
という手順で処理することを特徴とする、角度データ変換方法。
【請求項７】
前記工程（９）において、前記角度補正ベクトルと前記最大増加勾配ベクトルとのなす角が予め定めた閾値未満の場合に、前記工程（８）に戻り、前記評価関数内の複数の重み係数値を変更して最大増加勾配ベクトルを再計算することを特徴とする、請求項６に記載の角度データ変換方法。
【請求項８】
前記交換前ロボットと交換後ロボットのいずれか一方が幾何学的誤差ゼロのシミュレータ（理想）上のロボットであることを特徴とする、請求項１乃至７のいずれか１項に記載の角度データ変換方法。
【請求項９】
請求項１乃至８のいずれか１項に記載の角度データ変換方法を実行するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、製造ラインで稼働しているロボットを交換する際、交換前のロボットの動作を、教示修正なしで直ちに交換後のロボットで正確に再現するための動作プログラム内の角度データ変換方法及び装置に関する。
【背景技術】
【０００２】
産業用ロボットは、アーク溶接、スポット溶接、ハンドリング、塗装など主に自動車製造ラインで多数稼働している。
まず、現状の産業用ロボットについて簡単に説明する。
【０００３】
図９は、一般的な産業用ロボットの構成図である。図９において、１０１は、複数の関節軸とリンクとを有するマニピュレータとして構成されたロボットである。各関節軸には、エンコーダつきの駆動モータが内蔵されており、各関節を独立に駆動することができる。１０２はロボット１０１の制御装置であり、該制御装置１０２は、各関節軸駆動モータのエンコーダ信号に基づいてフィードバック制御（位置制御系）を行うことにより、ロボット１０１の運動を制御する。ロボット１０１と制御装置１０２とは接続ケーブル１０１ａを介して接続されている。１０３は可搬式教示操作盤であり、教示者がロボットを手動（JOG）操作したり、動作プログラムを作成・編集したりするためのインターフェイスである。可搬式教示操作盤１０３は主に操作ボタン群１０３ａと表示画面１０３ｂで構成されている。１０１ｂはロボット１０１の手首部に設けられたエンドエフェクタである。エンドエフェクタにはアプリケーションに応じて様々なツールが取り付けられている。
【０００４】
製造ラインで稼動中のロボットが、何らかの原因で故障した場合、故障したロボットを取り外し、正常な同種ロボットを同じ場所に設置して、ロボットを交換する。故障の程度にもよるが、故障したロボットをその場で修理するよりは、ロボットごと入れ替えたほうが、製造ラインを早く復旧できる。ところが、ロボットには機械的な個体差（理想の運動学モデルに対する幾何学的な誤差）があり、同じ動作プログラム（角度データ）を与えても、ツール先端の位置姿勢が大きくずれるため、教示点の修正が必要になり、ライン復旧までに時間がかかる。ラインの停止時間は、製造メーカにとって多大な損失であるため、ロボット交換時のツール先端位置精度（ロボットの交換精度）を向上させて教示修正作業をできるだけ少なくしたいという要望がある。
【０００５】
さらに、ロボットが故障していなくても、製造ラインの改善のため、障害物や関節角度リミット回避などの理由でボトルネックとなっているロボットを、より自由度の大きな異種ロボット（冗長自由度ロボット）に置換え、短時間でラインを復旧したいという要望もある。
【０００６】
上記要望に鑑み、従来では以下の技術が提案されている。
特許文献１には、ロボット交換時にロボット間で動作プログラムを授受するとき、変換元ロボットの制御装置に記憶された変換元ロボットの角度データを、設定誤差のない理想ロボットの角度データによる理想プログラムに変換して変換先ロボットの制御装置に与え、変換先ロボットの制御装置で理想プログラムの角度データを変換先ロボットの角度データに変換することにより、同じ動作を再現できるようにした動作プログラム変換方式が開示されている。特許文献１では変換元ロボットの角度データを理想ロボットの角度データに変換する際には、変換元ロボットの各軸毎の角度データＤaiに、対応する各軸毎の角度較正補正値Δθiを加算することにより、変換元ロボットの補正された角度データＤai’を計算し、該補正された角度データＤai’を、較正補正されたロボット定数Ｒ’を用いて運動学に基づいた演算により位置・姿勢データＤｐに変換し、該データＤｐをロボット定数Ｒを用いた逆運動学により理想ロボットの角度データＤa”に変換している。理想ロボットの角度データを、異なる較正補正値を有する変換先ロボットの角度データに変換する際には、理想ロボットの角度データＤa”をロボット定数Ｒを用いた運動学により、位置・姿勢データＤｐに変換し、ロボット定数Ｒと変換先ロボットの較正補正値ΔＲ’から変換先ロボットの較正補正されたロボット定数Ｒ”を計算し、このＲ”を用いてロボットの逆運動学により位置・姿勢データＤｐを角度データＤa”’に変換し、該角度データＤa”’から変換先ロボットの角度較正補正値Δθ’を減じることにより、変換先ロボットの角度データＤa””を計算している。ここで、ロボット定数Ｒの要素は、リンクの長さ、ツールの長さであり、較正補正値ΔＲの要素は、リンク長、ツール長及び関節角度要素数である。
【０００７】
非特許文献１には、１つのロボットを対象に、そのロボットの手先位置xmを目標位置xdに正確に位置決めするため、当該ロボットの幾何学的誤差（identified geometric parameters）を考慮して計算したヤコビ行列の擬似逆行列J+にツール先端位置誤差（xd−xm）を掛け算することによりロボットの手先位置を角度補正する技術が開示されている。
【０００８】
特許文献２には、冗長マニピュレータのツール位置姿勢の現在値と目標値との間のズレ量を小さくするように各関節角度の修正量を演算する冗長マニピュレータの位置姿勢決定方法が開示されている。特許文献２に記載の技術によれば、マニピュレータに冗長性があっても、常に適切な位置姿勢が決定できると共に、関節が動作範囲、速度範囲を超えることを防止するため、各関節角度の変化量とこれに対応するツールの位置姿勢の変化量との関係をヤコビ行列で線形近似して求め、各関節を活用する度合いを表す活用度を各関節の動作の余裕に基づいて演算し、上記ズレ量を上記線形関係と活用度とからなる新しい関係に適用することにより、各関節角度の修正量を演算するようにしている。即ち、特許文献２では、ヤコビ行列の擬似逆行列を計算する際、関節角度リミットまでの余裕度に基づく重み付けをすることによって（即ち、余裕のある関節を優先的に使用することによって）、関節角度リミットの回避を考慮している。
【０００９】
特許文献３には、冗長マニピュレータを制御する際に、冗長マニピュレータの手先位置・姿勢値が目標値に到達するまでに、肘姿勢が目標とする姿勢となる最適な評価関数を算出し、この評価関数に基づいて冗長マニピュレータの肘姿勢を制御する方法が開示されている。ヤコビ行列の擬似逆行列の零空間を利用して、障害物回避を考慮した冗長自由度ロボットの位置姿勢決定方式が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平９−１２８０２６号公報
【特許文献２】特開平８−５２６７４号公報
【特許文献３】特許第３２０７７２８号公報
【非特許文献】
【００１１】
【非特許文献１】D. Payannet et al, Identification and Compensation of Mechanical Errors for Industrial Robots, Proc. of the 15th ISIR, Vol.2, pp.857-864（fig.4）
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１の角度データ変換方法では、ロボットの幾何学的誤差の要素として、関節角度原点、リンク長、ツール長しか考慮していないため、リンク（関節軸）にねじれがある場合には適用できず、可搬重量が100kgを超える大型ロボットに対してはロボット交換後のツール先端の位置精度が改善できないため、結局、教示修正に時間を要してしまうという問題がある。また、特許文献１の角度データ変換方法では冗長自由度ロボットを対象にプログラム変換することはできないという問題もある。
【００１３】
非特許文献１に開示されているように、ヤコビ行列の擬似逆行列を使用すれば、軸ねじれも考慮した高精度な誤差補正が可能で、しかも冗長自由度ロボットにも適用可能であるが、ツール先端の誤差補正を実現した上で冗長自由度をどのように決定すればよいか、具体的方法が示されていない。
【００１４】
特許文献２では、関節角度リミットをできるだけ回避するように冗長自由度を決定できるが、ツール先端の誤差補正と関節角度リミット回避が対立する場合には、誤差補正の収束が遅くなる、あるいは、誤差が収束しないという問題がある。
【００１５】
特許文献３では、障害物を回避するように冗長自由度を決定できるが、ツール先端の誤差補正と障害物回避が対立する場合には、目標位置に到達できないという問題がある。
結局、従来技術を最大限活用したとしても、ロボット交換時のツール先端位置姿勢誤差の補正と、関節角度リミット回避や障害物回避との両立ができない。
【００１６】
本発明はこのような問題点に鑑みてなされたものであり、冗長自由度ロボットに対しても角度データの変換が可能で、しかも、ツール先端位置誤差の補正と関節角度リミット回避や障害物回避との両立が可能な角度データ変換方法、並びに、該角度データ変換方法を実行するための装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記問題を解決するため、本発明は、理想の運動学モデルに対する幾何学的誤差が既知である異なるロボット間について、交換前のロボットの動作を交換後のロボットで正確に再現できるように、交換前のロボットの角度データを変換する方法であって、幾何学的誤差を各々考慮した交換前ロボット及び交換後ロボットのツール先端位置ベクトルの間の誤差ベクトルと、幾何学的誤差を考慮した前記交換後ロボットの角度データに対するヤコビ行列の逆行列または擬似逆行列と、に基づいて角度補正ベクトルを計算し、前記角度補正ベクトルに基づいて前記交換後ロボットの角度データを補正する、各工程を備えて構成したものである。
【００１８】
本発明によれば、幾何学的誤差データを考慮したヤコビ行列の擬似逆行列を使用して角度補正ベクトルを計算するので、冗長自由度ロボットに対しても高精度な誤差補正が可能になる。
【００１９】
好ましくは、本発明は、前記角度補正ベクトルを計算する工程の後であって前記角度データを補正する工程の前に、前記交換後ロボットの関節角度リミット回避及び障害物回避までの距離に応じたポテンシャル関数の線形結合として計算された評価関数に基づいて、前記角度補正ベクトルを修正する工程を更に備える。更に好ましくは、前記角度補正ベクトルを修正する工程は、前記評価関数の最大増加勾配ベクトルを計算し、前記角度補正ベクトルと前記最大増加勾配ベクトルとの内積を計算し、前記内積が正である場合に、前記角度補正ベクトルから前記最大増加勾配ベクトル方向の成分を除去する、各工程を備える。本発明によれば、関節角度リミット回避や障害物回避に関するポテンシャル関数の線形結合を評価関数とし、角度補正ベクトルから前記最大増加勾配ベクトル方向の成分を除去する、即ち、評価関数値を増加させない方向に角度補正ベクトルを修正するので、ツール先端位置誤差の補正と関節角度リミット回避や障害物回避との両立が可能になる。また、前記内積を計算する工程において、前記角度補正ベクトルと前記最大増加勾配ベクトルとのなす角が予め定めた閾値未満の場合に、前記評価関数内の複数の重み係数値を変更して最大増加勾配ベクトルを再計算する工程を更に備えていてもよい。これによって、評価関数を増加させることなく誤差補正することが困難な状態（デッドロック状態）を回避することができる。
【００２０】
また、前記角度補正ベクトルの絶対値が所定の閾値より小さくなるまで、前記角度補正ベクトルを計算する工程から前記角度データを補正する工程までを繰り返してもよい。これによって、交換前ロボット及び交換後ロボットのツール先端位置ベクトルの間の誤差を十分に小さくすることができ、交換前のロボットの動作を交換後のロボットで正確に再現可能となる。
【００２１】
本発明の好ましい態様は、理想の運動学モデルに対する幾何学的誤差が既知である異なるロボット間について、交換前のロボットの動作を交換後のロボットで正確に再現できるように、交換前のロボットの角度データを変換する方法であって、
（１）交換前ロボットの幾何学的誤差を考慮した順運動学により前記角度データに対するツール先端の位置姿勢ベクトルを計算し、
（２）交換後ロボットの角度データを初期設定し、
（３）交換後ロボットの幾何学的誤差を考慮した順運動学により前記交換後角度データに対するツール先端の位置姿勢ベクトルを計算し、
（４）前記交換前位置姿勢ベクトルと前記交換後位置姿勢ベクトルの誤差ベクトルを計算し、
（５）交換後ロボットの幾何学的誤差を考慮して前記交換後角度データに対するヤコビ行列を計算し、
（６）前記ヤコビ行列の逆行列または擬似逆行列を計算し、
（７）前記逆行列または前記擬似逆行列に前記誤差ベクトルを掛け算して角度補正ベクトルを計算し、
（８）交換後ロボットの関節角度リミット回避および障害物回避のための評価関数の最大増加勾配ベクトルを計算し、
（９）前記角度補正ベクトルと前記最大増加勾配ベクトルの内積が正である場合に、前記角度補正ベクトルから前記最大増加勾配ベクトル方向の成分を除去し、
（１０）前記交換後角度データに前記角度補正ベクトルを加算して前記交換後角度データを更新し、
（１１）前記（３）に戻る処理を前記誤差ベクトルの絶対値が閾値以下になるまで繰り返す、
という手順で処理することを特徴として構成したものである。
【００２２】
好ましい態様の前記工程（９）において、前記角度補正ベクトルと前記最大増加勾配ベクトルとのなす角が予め定めた閾値未満の場合に、前記工程（８）に戻り、前記評価関数内の複数の重み係数値を変更して最大増加勾配ベクトルを再計算してもよい。
【００２３】
上述した本発明の角度データ変換方法において、交換前ロボットと交換後ロボットのいずれか一方を幾何学的誤差ゼロのシミュレータ（理想）上のロボットとすることも可能である。これによって、動作プログラムを一旦シミュレータ（理想）上のロボットの角度データを含むノミナル動作プログラムに変換して外部記憶装置に保存しておけば、ロボットの交換に大きなタイムラグが生じ、制御装置の同一性が交換前後で保証されない場合においても、ノミナル動作プログラムを交換後のロボットの角度データを含むように変換することによって、誤り無く交換後ロボット用の動作プログラムを得ることができる。
【００２４】
また、本発明は、上記角度データ変換方法を実行するための角度データ変換装置として構成することもできる。このような装置は、例えば、上述した機能を実行するように書かれたプログラムと、当該プログラムに従って処理を実行するＣＰＵと、処理に必要なデータを記憶するメモリとから構成することもできる。また、この装置は、単体で角度データ変換装置として構成することもできるが、例えばロボットの制御装置の内部に組み込まれたデバイスとして構成することも可能である。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１実施例に係わる角度データ変換方法のフローチャートである。
【図２】本発明の第２実施例に係わる角度データ変換方法のフローチャートである。
【図３】本発明の角度データ変換の動作原理を示すフローチャートである。
【図４】角度補正ベクトルの修正処理のフローチャートである。
【図５】本発明の角度データ変換方法を実装したシステムの構成図である。
【図６】補助記憶装置の具体例を示す図である。
【図７】幾何学的誤差データの具体例を示す図である。
【図８】角度補正ベクトルの修正の動作原理を示す図である。
【図９】産業用ロボットの構成図である。
【発明を実施するための形態】
【００２６】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【００２７】
図１は、本発明に係わる第１実施例におけるロボットの角度データ変換方法のフローチャートを示している。
交換前の実機ロボットをロボットA、交換後の実機ロボットをロボットBとして、本実施例による角度データ変換方法の概要を説明する。
【００２８】
まず、ロボットAが制御装置に接続されている状態で、ロボットAの幾何学的誤差データ（ロボットの機械的な設計値と機械的な寸法誤差との間の固体差を示すデータで、当該寸法誤差により生じるロボットの動作の固体差を解消するために必要となるデータ。以下、単に「誤差データ」と称することもある）を補助記憶装置から制御装置内の主記憶装置にロードして、かつ、当該誤差データに付記されているＩＤ情報と実機ロボットＡから取得したＩＤ情報とを照合する（S101）。誤差データのＩＤ情報と実機ロボットＡのＩＤ情報とが一致した場合、即ち、主記憶装置にロードされた誤差データがロボットＡのものであると判定された場合、ロボットAを製造ラインから取り外し、ロボットBを同じ場所に正確に設置し、同じ制御装置に接続してロボットを交換する（S102）。ロボット交換後、ロボットBの幾何学的誤差データを補助記憶装置にコピーし、さらに補助記憶装置から制御装置内の主記憶装置にロードして、かつ、当該誤差データに付記されているＩＤ情報と実機ロボットＢから取得したＩＤ情報とを照合する（S103）。誤差データのＩＤ情報と実機ロボットＢのＩＤ情報とが一致した場合、即ち、主記憶装置にロードされた誤差データがロボットＢのものであると判定された場合、主記憶装置に保存されているロボットA用の動作プログラムについて、その角度データをロボットB用に変換して、動作プログラムを上書き保存する（S104）。ここで、ロボットＡの誤差データを反映するロボットＡのツール先端位置とロボットＢの誤差データを反映するロボットＢのツール先端位置との間の誤差が十分小さくなるように、角度データを変換する。
【００２９】
図５は、本発明の角度データ変換方法を実装したシステムの構成図を示している。なお、図５のうち点線で示されている部分は、後述する第２実施例に係る部分である。図５に示すように、本システムは、ロボット１０１と、ロボット１０１を制御するための制御装置１０２と、ロボット１０１を制御・教示するため教示者により操作入力可能な可搬式教示操作盤１０３と、を備えている。なお、図９に示すように、ロボット１０１と制御装置１０２とは、接続ケーブル１０１ａを介して接続されている。
【００３０】
可搬式教示操作盤１０３には補助記憶装置１０３ｃが内蔵されている。補助記憶装置１０３ｃのメモリ領域には、少なくともロボット１０１の幾何学的誤差データを記憶する幾何学的誤差データ記憶部１０３ｃ１が割り当てられている。補助記憶装置１０３ｃとしては、図６に示すように、CFカードやUSBメモリなど簡単に着脱できるデバイスが適している。
【００３１】
補助記憶装置１０３ｃを着脱式にすることで、ロボットＡの幾何学誤差データを主記憶装置にロードした後、補助記憶装置１０３ｃを可搬式教示操作盤１０３から一旦取り外し、パソコンなどを用いてロボットBの幾何学誤差データを補助記憶装置１０３ｃにコピーして、再度補助記憶装置１０３ｃを可搬式教示操作盤１０３に取り付けて主記憶装置にロボットBの幾何学誤差データをロードするという手順をとることができる。
【００３２】
制御装置１０２は、主記憶装置１０２ａと、ロボット１０１が制御装置１０２に接続されている状態で、補助記憶装置１０３ｃに記憶されているロボット１０１の幾何学的誤差データを主記憶装置１０２ａにロードし、かつ、該幾何学的誤差データに付記されたＩＤ情報とロボット１０１から取得したＩＤ情報とを照合する、幾何学的誤差データロード・照合手段１０２ｂと、を備えている。主記憶装置１０２ａのメモリ領域には、ロード照合手段１０２ｂによりロード／照合された幾何学的誤差データを記憶する誤差データ記憶部１０２ａ１と、ロボット１０１を動作させる動作プログラムを記憶する動作プログラム記憶部１０２ａ２と、が割り当てられている。主記憶装置１０２ａとしては不揮発性のメモリが適している。
【００３３】
更に、制御装置１０２は、動作プログラム記憶部１０２ａ２に記憶されている動作プログラムを変換元動作プログラムとして読み込むための変換元動作プログラム読込手段１０２ｃと、２つのロボットの幾何学的誤差データを反映したツール先端位置の間の誤差が十分小さくなるように、前記変換元動作プログラムに含まれる角度データを変換する角度データ変換手段１０２ｄと、角度データ変換手段１０２ｄにより角度データが変換された動作プログラムを動作プログラム記憶部１０２ａ２に上書きするための変換先動作プログラム書込み手段１０２ｅと、を備えている。
【００３４】
幾何学的誤差データロード・照合手段１０２ｂは、幾何学的誤差データに付記してあるロボットのID情報と、制御装置１０２に接続された実機ロボット１０１から接続ケーブル１０１ａ（図９）を介して取得したID情報を比較して照合する。万一、ID情報に不一致があり、照合エラーとなった場合は、幾何学的誤差データは主記憶装置１０２ａにはコピー（ロード）されず、照合エラーとなったことがユーザ（操作者）に通知される。この通知方法としては、例えば可搬式教示操作盤１０３の表示画面にエラーを表示する。具体的なID情報としては、図７に示すようにエンコーダシリアル番号（製造番号）を利用すると簡単かつ確実に照合できる。なぜなら、実機ロボット１０１と制御装置１０２の接続ケーブル１０１ａには、各軸エンコーダ信号ケーブルが必ず含まれており、エンコーダパルス値に加えてエンコーダのステータスやシリアル番号が常時通信されているからである。幾何学的誤差データ記憶部１０２ａ１には、照合済みの幾何学的誤差データが複数格納される。その際、格納された順序も併せて記憶することにより、交換前ロボット（変換元）の誤差データと交換後ロボット（変換先）誤差データを確実に特定できる。
【００３５】
このように、実機ロボットが制御装置に接続されている状態で、幾何学的誤差データを補助記憶装置からロードするようにしたので、誤差データの簡単かつ確実な照合が可能となり、データ設定の誤りを確実に防ぐことができる。
【００３６】
つぎに、図１のS104あるいは、図５の１０２ｄにおける角度データ変換処理の詳細（変換原理）を説明する。
図３は、ロボット間における角度データ変換処理の詳細フローチャートを示している。
【００３７】
図３において、ロボット１は変換元（交換前）のロボット、ロボット２は変換先（交換後）のロボットを示している。
まず、S300でロボット１の角度データθ1（関節角度ベクトル）が入力される。つぎに、ロボット１の幾何学的誤差データを考慮した順運動学（順キネマティクス）演算により、ツール先端の位置姿勢ベクトルPtcp1（θ1）を計算する（S301）。つぎに、ロボット２の角度データθ2を初期化する（S302）。ロボット１とロボット２が同種のロボットの場合は、θ1をθ2にコピーすればよい。S303では、S301と同様にして、ロボット２の幾何学的誤差データを考慮した順運動学（順キネマティクス）演算により、ツール先端の位置姿勢ベクトルPtcp2（θ2）を計算する。S304では、ロボット１とロボット２のツール先端位置姿勢の誤差ベクトルΔPtcp＝Ptcp1（θ1）− Ptcp2（θ2）を計算する。S305では、誤差ベクトルΔPtcpの絶対値を計算し、S306では、その絶対値が予め設定した閾値未満かどうかが判断される。閾値未満の場合は、ロボット２の角度データθ2を出力して処理を終了する（S311）。閾値以上の場合は、以下で説明するS307からS310の処理を実行してS303に戻る。
【００３８】
S307では、ロボット２の幾何学的誤差データを考慮してヤコビ行列J2（θ2）を計算する。ロボット２の手先位置姿勢のベクトルP2は、ロボット２の関節角ベクトルθ2の関数と幾何学的誤差データαを用いて、一般的にP2＝ｆ（θ2，α）のように表せる。S307では、次式のように、ｆ（θ2，α）をθ2で偏微分することによってヤコビ行列J2（θ2）を計算する。
【００３９】
J2（θ2）＝∂ｆ（θ2，α）/∂θ2
S308では、ロボット２の角度補正ベクトルΔθ2＝Inv（J2（θ2））・ΔPtcpを計算する。ここで、Inv（J2（θ2））はヤコビ行列J2（θ2）の逆行列もしくは擬似逆行列である。
【００４０】
S309では、ロボット２が冗長自由度ロボットの場合に、後述する方法に従って、関節角度リミット回避や障害物回避を考慮して角度補正ベクトルΔθ2をΔθ2´に修正する。ロボット２が冗長自由度でない場合において、関節角度リミットまで十分余裕があり、かつ、障害物との衝突の恐れがない場合は、修正はなされない。S310では、ロボット２の角度データθ2に、S309までに計算された角度補正ベクトルΔθ2´またはΔθ2が加算される。すなわち、角度データθ2は、θ2＝θ2＋Δθ2´またはθ2＝θ2＋Δθ2のように補正される。
【００４１】
S310で角度補正データθ2が補正されると、再びS303に戻り、補正された角度データθ2に対して同様の処理が、S306で誤差ベクトルの絶対値が閾値未満となるまで実行される。S303からS310の処理を繰り返すことにより、ロボット交換前のツール先端位置姿勢とロボット交換後のツール先端位置姿勢を計算上限りなく一致させることができる。順キネマティクス演算およびヤコビ行列の演算ともに、各リンクに固定された関節座標系間の相対関係を記述したサイズ４×４の同次変換行列を使用して計算できる。同次変換行列では、全てのDHパラメータ（リンクねじれ含む）、回転角度のオフセット（エンコーダ原点）、関節軸のコンプライアンスを考慮することができ、理想の幾何学モデルからの誤差データが正確（事前に計測）であれば、実機ロボットのツール先端位置姿勢も高精度に一致する。
【００４２】
図４は、図３に示したS309の処理の詳細フローチャートを示している。
S401では、関節角度リミット回避や障害物回避を考慮した評価関数Kを計算する。通常、この評価関数は、関節角度リミットまたは障害物までの距離に応じたポテンシャル関数の線形結合として計算する。すなわち、K＝c1・U1＋c2・U2＋・・・・＋cn・Unである。U1からUnは距離が小さくなるほど大きな値を持つポテンシャル関数である。また、c1からcnは評価関数の重み係数である。
【００４３】
S402では、評価関数Kの最大増加勾配ベクトルφ＝∇Kを計算する。ここで、∇はベクトル微分演算子であり、ポテンシャル関数の勾配ベクトルを計算することができる。図８（ａ）において、８０１は評価関数（ポテンシャル関数）の等高線、８０２は評価関数の最大値、８０３は最大増加勾配ベクトルφ、８０４は角度補正ベクトルΔθ2を示している。図８（ａ）に示すように勾配ベクトルφ（８０３）の方向は関節空間におけるポテンシャル関数の最も急な増加方向を示し、φの大きさはその最大勾配を与える。ここで、φn＝∇Unとおくと、φ＝c1・φ1＋c2・φ2＋・・・cn・φnと表せ、φは各ポテンシャル関数Unの最大増加勾配ベクトルφnの線形結合（c1からcnがその重み係数）で表される。
【００４４】
S403では、角度補正ベクトルΔθ2と最大増加勾配ベクトルφとのなす角αを内積に基づいて計算する。
S404では、なす角αが９０度未満かどうか判断される。図８（ａ）のようになす角が９０度以上の場合は、角度補正ベクトルΔθ2は評価関数Kを増加させることがないので、Δθ2に修正を加えることなく終了する（S408）。図８（ｂ）のようになす角が９０度未満の場合、なす角αが予め設定した閾値（通常、ごく小さな値）未満かどうか判断される（S405）。閾値以上の場合、S406で、角度補正ベクトルΔθ2から最大増加勾配ベクトルφ方向の成分を除去する。すなわち、
Δθ2 ’ ＝ Δθ2 −（Δθ2・φ）φ／|φ|
に基づいてΔθ2は修正され、終了する。図８（ｂ）において、８０５は角度補正ベクトルΔθ2の最大増加勾配ベクトルφ方向の成分を示しており、上式の右辺第2項に相当する。また、８０６は修正された角度補正ベクトルΔθ2 ’である。
【００４５】
このようにΔθ2を修正することによって、評価関数Kを増加させることなく（関節角度リミットに達したり、障害物と衝突したりすることなく）、ツール先端位置姿勢の誤差ΔPtcpを減少させることができる。
【００４６】
ただし、図８（ｃ）のようになす角αが閾値未満の場合、評価関数Kを増加させることなく、誤差補正することが困難（デッドロック状態）なので、S407で評価関数Kの重み係数c1からcnを変更してS401に戻る。図８（ｄ）に示すように、重み係数の値を変更することよって、最大増加勾配ベクトルφの方向が変化するので、デッドロック状態を回避できる。図８（ｄ）の８０３は重み係数を変更する前の最大増加勾配ベクトルφであり、おおよそ、φ＝0.8φ1＋0.2φ2と表せる（便宜上、φ＝c1・φ1＋c2・φ2としている）。８０７は重み係数を変更後の最大増加勾配ベクトルφ’であり、おおよそ、φ＝0.2φ1＋0.8φ2と表せる。
【００４７】
評価関数Ｋの係数は絶対的なものではなくある程度の範囲で変更可能であり、一定の範囲内で評価関数の係数を変更しても、安全面（障害物との衝突の危険の回避）は十分に保証される。係数変更時の制約条件としては、たとえばΣＣｎ＝const（一定）としたり、或いは、所定値＜Ｃｎ＜所定値の範囲で変更してもよい。また、予めＣ１〜Ｃｎを複数セット用意しておき、適宜選択するようにしてもよい。
【００４８】
以上、説明したように、幾何学的誤差データを反映したヤコビ行列の擬似逆行列を使用して角度補正ベクトルを計算するので、冗長自由度ロボットに対しても高精度な誤差補正が可能になる。また、関節角度リミット回避や障害物回避に関するポテンシャル関数の線形結合を評価関数とし、評価関数の重み係数を適切に変更しながら、評価関数値を増加させない方向に角度補正ベクトルを修正するので、ツール先端位置誤差の補正と関節角度リミット回避や障害物回避との両立が可能になる。
【実施例２】
【００４９】
図２は、本発明に係わる第２実施例におけるロボットの角度データ変換方法のフローチャートを示している。交換前のロボットをロボットA、交換後のロボットをロボットBとすることは第１実施例と同様である。
【００５０】
第２の実施例に係る角度データ変換方法を実行するためのシステムに関しては、図５に示すシステム構成とほぼ同様であるが、以下の点で異なっている。即ち、図５に示すように、補助記憶装置１０３ｃのメモリ領域には、幾何学的誤差データ記憶部１０３ｃ１の他に、動作プログラム記憶部１０３ｃ２が更に割り当てられる。また、制御装置１０２の変換元動作プログラム読込手段１０２ｃは、動作プログラム記憶部１０２ａ２に記憶された動作プログラムを読み込むことができるだけでなく、補助記憶装置の動作プログラム記憶部１０３ｃ２に記憶されているノミナル動作プログラムを変換元プログラムとして読み込むことが可能である。更に、変換先動作プログラム書込み手段１０２ｅは、動作プログラムを動作プログラム記憶部１０２ａ２に書き込むことができるだけではなく、補助記憶装置の動作プログラム記憶部１０３ｃ２にもセーブすることが可能となっている。他の点については、第１の実施例と同様であるので、同様の参照番号を使用して第２の実施例を説明する。
【００５１】
図２において、S201、S203、S204はそれぞれ図１のS101、S102、S103に相当するので詳細な説明を省略する。第１実施例との相違はS202とS205の処理にある。まず、S202では、主記憶装置の動作プログラム記憶部１０２ａ２に保存されているロボットAの動作プログラムの角度データをノミナルロボットの角度データに変換して、補助記憶装置の動作プログラム記憶部１０３ｃ２に、変換された角度データを持つノミナル動作プログラムをセーブする。ここで、ノミナルロボットは、幾何学的誤差データが全て零の理想のロボットであり、ロボットシミュレータ上のロボットモデルである。
【００５２】
そして、S205では、補助記憶装置の動作プログラム記憶部１０３ｃ２に保存されていたノミナル動作プログラム内の角度データをS204でロードしたロボットＢの幾何学的誤差データに基づいてノミナルロボットからロボットBに変換して主記憶装置の動作プログラム記憶部１０２ａ２にロードする。
【００５３】
このように第２の実施例では、ロボットAからロボットBに角度データを直接変換するのではなく、ノミナルロボットを介在させて変換する。
ロボットAからロボットBへの交換に大きなタイムラグが生じる場合に、このような変換が適している。例えば、生産ライン１でロボットCが故障したのでこれを取り外し、休止中の生産ライン２からロボットAを持ってきて、生産ライン１のロボットCのあった場所に設置する（ロボットCは修理に出される）。しばらくして生産量が増加したため、休止中の生産ライン２を再稼働することになり、ロボットBを工面して持ってきて、ロボットAがあった場所に設置する。このような場合、生産ライン２におけるロボットAからロボットBへの交換には相当なタイムラグがあり、その間、ロボットAが接続されていた制御装置が他に流用される可能性があり、制御装置の同一性が必ずしも保証されない。したがって、幾何学的誤差データの照合が正しくできないので、ロボットAの角度データを一度全てノミナルロボットに変換して外部の補助記憶装置にセーブしておく。ロボットAからノミナルロボットへの角度データの変換は、図３におけるロボット１の幾何学的誤差データをロボットAの幾何学的誤差データとし、ロボット２の幾何学的誤差データを全て零とするだけで、全く同様の手順で実行できる。ノミナルロボットからロボットBへの角度データの変換についても同じ要領で実行できる。
【００５４】
このように、本発明の角度データ変換方法では、実機ロボットとノミナルロボットの区別なく、同様の手順で角度変換できるので、汎用性があり、様々な変換形態を選択できる。
【００５５】
以上が本発明の各実施例であるが、本願発明は、上記例に限定されるものではなく、本願発明の範囲内で任意好適に変更可能である。
【産業上の利用可能性】
【００５６】
ロボットシミュレータで作成した動作プログラムを、実機ロボットに初期投入する際にも利用できる。
【符号の説明】
【００５７】
１０１      ロボット
１０１ａ    接続ケーブル
１０１ｂ    ツール
１０２      制御装置
１０２ａ    主記憶装置
１０２ａ１  幾何学的誤差データ記憶部
１０２ａ２  動作プログラム記憶部
１０２ｂ    幾何学的誤差データロード・照合手段
１０２ｃ    変換元動作プログラム読み込み手段
１０２ｄ    角度データ変換手段
１０２ｅ    変換先動作プログラム書き込み手段
１０３      可搬式教示操作盤
１０３ａ    操作ボタン群
１０３ｂ    表示画面
１０３ｃ    補助記憶装置
１０３ｃ１  幾何学的誤差データ記憶部
１０３ｃ２  動作プログラム記憶部
８０１      評価関数の等高線
８０２      評価関数が最大となる点
８０３      評価関数の最大増加勾配ベクトル
８０４      角度補正ベクトル
８０５      角度補正ベクトルの最大増加勾配ベクトル方向成分
８０６      修正された角度補正ベクトル
８０７      重み係数が変更された最大増加勾配ベクトル
【図１】
2012011495.tif 000003
【図２】
2012011495.tif 000004
【図３】
2012011495.tif 000005
【図４】
2012011495.tif 000006
【図５】
2012011495.tif 000007
【図６】
2012011495.tif 000008
【図７】
2012011495.tif 000009
【図８】
2012011495.tif 000010
【図９】
2012011495.tif 000011