(57)【要約】【課題】各駆動装置が複数のリンクの夫々に与える熱的影響を考慮し、温度変化によるリンクの長さ変化をより高精度に補正してロボットアームの位置決め精度を向上させる。【解決手段】リンク５，７〜１２の温度変化は複数の駆動装置１７‐１〜１７‐６の温度変化に基づくと共に、複数の駆動装置１７‐１〜１７‐６の温度変化は夫々複数のリンク５，７〜１２の全ての温度変化に影響を与え、所望の制御点間の長さＬ１〜Ｌ４の変化は、リンク５，７〜１２の温度変化による膨張収縮によるもので、且つ、所望の制御点間の長さＬ１〜Ｌ４の変化は、当該所望の制御点間の基準温度における基準長さに、駆動装置１７‐１〜１７‐６の夫々について所望の制御点間の長さＬ１〜Ｌ４の変化に与える程度を表わす補正係数と複数の駆動装置１７‐１〜１７‐６の夫々について基準温度に対する温度変化値との積の総和を乗じて求める。【選択図】図３
2015141583.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンクを関節により連結して構成したロボットと、
ロータリーエンコーダを備えたモータおよび当該モータの回転を減速する減速装置を備え、前記リンクを駆動する複数の駆動装置と、
前記複数のモータのロータリーエンコーダに夫々設けられた温度センサと、
前記ロボットに定められた複数の制御点の位置を制御することにより前記ロボットの動作位置を制御する制御装置を備えたロボット装置において、
基準温度において、前記複数の制御点のうち所望の制御点間の長さを計測し、且つ、前記ロボットを動作させた後、前記複数の温度センサの計測温度により前記基準温度からの前記複数の駆動装置の温度変化値を求めると共に、前記所望の制御点間の長さを計測して前記基準温度時からの長さ変化を求め、
前記リンクの温度変化は前記複数の駆動装置の温度変化に基づくと共に、前記複数の駆動装置の温度変化は夫々前記複数のリンクの全ての温度変化に影響を与え、前記所望の制御点間の長さ変化は、前記リンクの温度変化による膨張収縮によるもので、且つ、前記所望の制御点間の長さ変化は、前記駆動装置の夫々の温度変化が前記所望の制御点間の夫々の長さ変化に与える影響の程度を表わす補正係数と前記複数の駆動装置の夫々の温度変化値との積の総和から求められるとして、
前記ロボットを動作させた後の前記基準温度からの温度変化値と前記所望の制御点間の前記基準温度時からの長さ変化値とに基づいて前記複数の駆動装置の夫々について前記所望の制御点間の長さ変化に対する前記補正係数を求め、
前記制御装置による前記ロボットの実運転に際し、前記複数の温度センサの計測温度により前記基準温度からの温度変化値を求め、前記所望の制御点間の長さ変化を、当該所望の制御点間に対する前記複数の駆動装置の夫々の前記補正係数に前記複数の駆動装置の夫々の前記基準温度からの温度変化値を乗じた積の和によって求めることを特徴とするロボット装置の位置決め精度補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、温度変化によるリンクの長さ変化を補正し、位置決め精度の低下を補正するロボット装置の位置決め精度補正方法に関する。
【背景技術】
【０００２】
垂直多関節型ロボットでは、複数のリンクを回転関節により結合してロボットアームを構成し、そのロボットアームの先端にハンドなどのツ−ルを取り付けるようにしている。ロボットアームの動作位置は３次元の直交座標で表した位置データで与えられる。制御装置は、ロボットアームの先端を与えられた座標位置に移動させるに必要な各リンクの回転角度を演算し、各リンクの回転角度を制御してロボットアームの先端を当該与えられた座標位置に移動させる。
【０００３】
ところが、実際にロボットアームを動作させると、モータなどの発熱によりリンクの温度が上昇し、それによってリンクの長さが変化する。すると、各リンクを演算により求めた角度だけ回転させても、ロボットアームの先端の移動位置が与えられた座標位置からずれるようになる。
【０００４】
温度変化によるリンクの長さ変化を補正し、位置決め精度を補償するために、例えば特許文献１では、予めリンクの温度上昇値と長さ変化値との相関関係を求めておき、実際のロボットの動作時においては、リンクの適宜の位置に設けられた温度センサによってリンクの温度を計測し、温度上昇値から求められるリンクの長さの補正値によってリンクの位置を補正するように構成している。
【０００５】
また、特許文献２では、ロボットアームを駆動する複数のモータのロータリーエンコーダに温度センサが設けられているので、その温度センサの温度データの平均値と位置決め精度のデータとから予め補正関数を求めておき、実際の運転時に上記温度データの平均値に応じた補正関数により位置決め精度を補償するように構成している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７‐３１４３６７号公報
【特許文献２】特開２００６‐２８５３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
リンクの温度上昇は主として駆動装置、即ちモータや当該モータの回転を減速してリンクに伝達する歯車減速装置が発生する熱によるものである。各リンクは一様に動作するものではなく、頻繁に高速度で動作するリンク、間欠的に低速度で動作するリンクなど、その動作形態は様々で、駆動装置によって発熱量は大小異なるものとなる。このため、複数の温度センサの温度データの平均値は同じであっても、個々のリンクの温度をみると、動作形態により様々な異なる温度を呈する。
特許文献２では、複数の温度センサの温度データの平均値に応じた補正関数によって位置決め精度を補償するものであるから、温度データの平均値が同じであって、各リンクの温度が異なる場合には、高い位置精度を維持することができなくなる。
【０００８】
ところで、各リンクは隣のリンクと回転関節により結合されているので、その結合部分では、隣のリンクから熱を受けたり、隣のリンクに熱を与えたりする。このため、リンクの結合部分については、隣のリンクの温度の影響を強く受ける傾向にある。
【０００９】
特許文献１では、複数のリンクの温度を別々の温度センサにより検出するので、リンク毎の温度の違いには対応することができるように考えられる。しかしながら、各リンクは、隣のリンクとの結合部分で隣のリンクの温度の影響を強く受けるため、温度センサを設けた部分の温度が同じ場合であっても、隣のリンクとの結合部分の温度が高い場合には、リンク全体としての伸び量は大きくなり、逆に結合部分の温度が低い場合には、リンク全体としての伸び量は小さくなる。特許文献１の方法では、隣のリンクとの結合部分の温度が当該隣のリンクの温度の影響を受けることについて何ら考慮していないため、補正値でリンクの伸び量を補正しても位置決め精度の向上はそれ程高くは望み得ない。
【００１０】
本発明は上記の事情に鑑みてなされたもので、その目的は、各駆動装置が複数のリンクの夫々に与える熱的影響を考慮し、温度変化によるリンクの長さ変化をより高精度に補正して位置決め精度を向上させることができるロボット装置の位置決め精度補正方法を提供するところにある。
【課題を解決するための手段】
【００１１】
本発明は、基準温度において複数の制御点のうち所望の制御点間の長さを計測し、且つ、ロボットを動作させた後、複数の温度センサの計測温度により基準温度からの複数の駆動装置の温度変化値を求めると共に、所望の制御点間の長さを計測して基準温度時からの長さ変化を求め、これら温度変化値と所望の制御点間の長さ変化値とに基づいて複数の駆動装置の夫々について所望の制御点間の長さ変化に対する補正係数を求め、実運転に際し、複数の温度センサの計測温度により基準温度からの温度変化値を求め、所望の制御点間の長さ変化を、当該所望の制御点間に対する複数の駆動装置の夫々の補正係数に複数の駆動装置の基準温度からの温度変化値を乗じた積の和によって求めることを特徴とする。
【００１２】
本発明によれば、各駆動装置が複数のリンクの夫々に与える熱的影響を考慮し、温度変化によるリンクの長さ変化を補正するので、隣のリンクとの結合部分の温度が当該隣のリンクの温度の影響を強く受けるという事情があっても、ロボットの位置を高精度に補正し、位置決め精度を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態を示すロボット装置の斜視図
【図２】回転関節の基本構成を示す断面図
【図３】ロボットの側面図
【図４】制御点を示す斜視図
【図５】ロボット装置の電気的構成を示すブロック図
【図６】ロボットアーム先端の斜視図
【図７】下アームの回転中心を測定するための動作を示す側面図
【図８】回転中心を測定するための原理を示す斜視図
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態を図面に基づいて説明する。図１には、多関節型ロボット、例えば６軸の垂直多関節型のロボット装置１が示されている。このロボット装置１は６軸垂直多関節型ロボット（以下、単にロボットと称する）２と、ロボット２の動作を制御する制御装置（ロボット制御手段）３と、制御装置３に接続されたティ−チングペンダント４とを備えている。
【００１５】
ロボット２は、工場の床面などの据え付け面に固定されるベース（ベースリンク）５に、ロボットアーム６を構成するショルダ（第１リンク）７、下アーム（第２リンク）８、第１の上アーム（第３リンク）９、第２の上アーム（第４リンク）１０と、手首アーム（第５リンク）１１、フランジ（第６リンク）１２を第１〜第６の各回転関節Ｊ１〜Ｊ６（図１には中心線Ｌｃ‐１〜Ｌｃ‐６で図示）により順次連結して構成されている。
【００１６】
つまり、ショルダ７はベース５上に第１回転関節Ｊ１によって第１軸Ｌｃ‐１を中心に水平方向に旋回可能に連結され、下アーム８はショルダ７の上端部に第２回転関節Ｊ２によって第２軸Ｌｃ‐２を中心に上下（鉛直）方向に旋回可能に支持され、第１の上アーム９は下アーム８の先端部に第３回転関節Ｊ３によって第３軸Ｌｃ‐３を中心に上下方向に旋回可能に支持され、第２の上アーム１０は第１の上アーム９の先端部に第４回転関節Ｊ４によって第４軸Ｌｃ‐４を中心に捻り回転可能に支持され、手首アーム１１は第２の上アーム１０の先端部に第５回転関節Ｊ５によって第５軸Ｌｃ‐５を中心に上下方向に旋回可能に支持され、フランジ１２は手首アーム１１の先端部に第６回転関節Ｊ６によって第６軸Ｌｃ‐６を中心に捻り回転可能に支持されている。
【００１７】
前記第１〜第６の各回転関節Ｊ１〜Ｊ６は、図２にその概略が示されている。図２に示す通り、各リンク７〜１２の回転関節Ｊ１〜Ｊ６は、前段のリンクに軸受１３を介して回転可能に支持された回転軸１４からなり、この回転軸１４に次段のリンクが直接或いは継ぎ手材を介して連結されている。各回転軸１４は、サ−ボモータからなるモータ１５と、このモータの回転を減速する例えば歯車減速装置１６からなる駆動装置１７によって回転駆動され、この回転軸１４の回転によってリンクが旋回動作或いは捻り回転動作を行うようになっている。前記第１軸Ｌｃ‐１〜第６軸Ｌｃ‐６は、第１〜第６の各回転関節Ｊ１〜Ｊ６の回転軸１４の回転中心線Ｌｃに相当するものである。
【００１８】
ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２には、図４に示すように、それぞれ３次元の座標Ｒ１〜Ｒ６が規定されている。これらの座標Ｒ１〜Ｒ６の原点Ｏ１〜Ｏ６は、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転中心線である第１軸Ｌｃ‐１〜第６軸Ｌｃ‐６上の所定位置に定められ、各座標Ｒ１〜Ｒ６のＺ軸であるＺ１〜Ｚ６軸は第１軸Ｌｃ‐１〜第６軸Ｌｃ‐６と一致している。
【００１９】
ベース５およびロボットアーム６の先端であるフランジ１２の先端面にも座標Ｒ０およびＲｆが規定されている。上記座標Ｒ１〜Ｒ６がショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転に伴って位置と向きが変化するのに対して、ベース５の座標Ｒ０は不動（固定）であり、ロボット座標とされている。このロボット座標Ｒ０の原点Ｏ０は、ショルダ７の回転中心線である第１軸Ｌｃ‐１上にあって本実施形態ではベース５の底面と一致した位置に定められている。また、Ｚ軸であるＺ０軸は第１軸Ｌｃ‐１に一致し、Ｘ軸であるＸ０軸およびＹ軸であるＹ０軸は、ショルダ７が原点位置にあるときの当該ショルダ７の座標Ｒ１のＸ１軸およびＹ１軸と平行になっている。
フランジ１２の先端面の座標Ｒｆは手先座標とされ、その原点Ｏｆは、第６軸Ｌｃ‐６とフランジ１２の先端面との交点と一致するように定められている。そして、フランジ１２の先端面の中心がロボットアーム６の先端である手先として定められている。
【００２０】
以上の座標Ｒ０〜Ｒ６，Ｒｆの原点Ｏ０〜Ｏ６，Ｏｆは、本実施形態においては、座標Ｒ１のＸ１軸とＺ１軸を含む一つの平面（鉛直面）を仮定したとき、この一平面上に位置されている。
【００２１】
本実施形態において、座標Ｒ０〜Ｒ６，Ｒｆの原点Ｏ１〜Ｏ６，Ｏｆは、ロボットアーム６の動作時に位置制御される制御点として機能する。
前記制御装置３は、図５に示すように、ＣＰＵ（制御手段）１８と、駆動回路（駆動手段）１９と、位置検出回路（位置検出手段）２０とを備えている。ＣＰＵ１８には、ロボット２全体のシステムプログラムや動作プログラムを作成するためのロボット言語やＤＨパラメ−タなどの各種データなどを記憶するＲＯＭ２１およびロボット２の動作プログラムを記憶するＲＡＭ２２が接続されていると共に、ティ−チング作業などを行う際に使用する前記ティ−チングペンダント４が接続されている。
【００２２】
位置検出回路２０には、各モータ１５の回転軸（図示せず）に連結されたロータリーエンコーダ２３が接続されている。位置検出回路２０は、各ロータリーエンコーダ２３の回転角検出情報に基づいてショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転角度を検出し、その回転角検出情報をＣＰＵ１８に与える。
更に、前記ロータリーエンコーダ２３には温度センサ２４が設けられている。この温度センサ２４はロータリーエンコーダ２３の温度、ひいてはモータ１５の温度を検出し、検出温度データはＣＰＵ１８に与えられる。ＣＰＵ１８は温度センサ２４の検出温度が所定値を超えるとロボットアーム６の運転を停止し、モータ１５を過熱から保護する。
【００２３】
以下の説明で、モータ１５、歯車減速装置１６、駆動装置１７、ロータリーエンコーダ２３、温度センサ２４について、個々のモータ、歯車減速装置、駆動装置、ロータリーエンコーダ、温度センサを他のものと区別して表わす場合、夫々の駆動装置が駆動する回転関節の数字符号（アルファベットを除く）をハイフン（‐）以下の添え字にして表わすこととする。例えば、ショルダ７の回転関節Ｊ１を駆動するモータ、歯車減速装置、駆動装置は、モータ１５‐１、歯車減速装置１６‐１、駆動装置１７‐１、ロータリーエンコーダ２３‐１、温度センサ２４‐１と表わすこととする。
【００２４】
まず、各駆動装置１７が設けられている個所について説明すると、図１および図３に示すように、回転関節Ｊ１の駆動装置１７‐１はベース５の内部、回転関節Ｊ２の駆動装置１７‐２はショルダ７の内部、回転関節Ｊ３の駆動装置１７‐３は第１の上アーム９の下部内部、回転関節Ｊ４の駆動装置１７‐４は第１の上アーム９の上部内部、回転関節Ｊ５の駆動装置１７‐５は第２の上アーム１０の内部、回転関節Ｊ６の駆動装置１７‐６は手首アーム１１の内部に夫々配設されている。
【００２５】
前記ＣＰＵ１８は、動作プログラムから手先の目標位置（手先座標Ｒｆの原点Ｏｆの目標位置）と姿勢（手先座標ＲｆのＸｆ軸、Ｙｆ軸の向き）を取得すると、その手先の目標位置からショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の目標動作角度を演算し、その目標動作角度に基づいた動作指令を駆動回路１９に与える。駆動回路１９は与えられた動作指令に基づいて各モータ１５を駆動する。このとき、ＣＰＵ１８は、位置検出回路２０から与えられるショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転角検出情報をフィ−ドバック情報として各モータ１５をフィ−ドバック制御する。
【００２６】
ロボットアーム６を動作（運転）させると、モータ１５および歯車減速装置１６が発熱する。また、モータ１５の停止時には、当該モータ１５および歯車減速装置１６は放熱により温度低下する。更に、ロボットアーム６の動作によっては、複数のモータ１５および歯車減速装置１６のうち、頻繁に高速度で動作するもの、間欠的に低速度で動作するもの、或いは、停止している期間の長いものなど、その動作に違いが出てくる。このため、モータ１５および歯車減速装置１６の発熱程度は夫々異なる。
【００２７】
モータ１５および歯車減速装置１６の熱はリンク５，７〜１２に伝えられる。リンク５，７〜１２は、モータ１５および歯車減速装置１６から受ける熱量や表面からの放熱の程度により、温度上昇したり、或いは温度低下したりする。この温度変化によりリンク５，７〜１２は伸縮する。リンク５〜１２が伸縮すると、各リンク６〜１２の動作角度によって各制御点の位置、ひいては手先の位置を制御する場合、位置決め精度が低下し、高精度の位置決めができなくなる。
【００２８】
本発明は、リンク５，７〜１２の温度変化による長さ変化を補正し、高精度の位置決めができるようにするものである。
本発明の特徴は、各モータ１５および歯車減速装置１６の熱は当該モータ１５および歯車減速装置１６が設けられたリンクのみならず、全てのリンクに伝えられることを考慮したところにある。
【００２９】
つまり、各リンク５〜１２は隣のリンクと回転関節Ｊ１〜Ｊ６により結合されているから、その結合部分において隣のリンクとの間で互いに熱の授受がある。このため、各モータ１５および歯車減速装置１６の熱は、まず当該モータ１５および歯車減速装置１６が設けられたリンクに伝えられ、そのリンクから隣のリンク、更にその隣のリンクへと伝えられてゆく。従って、各モータ１５および歯車減速装置１６が発した熱は全てのリンク５，７〜１２の温度に影響を与えるのである。
【００３０】
本発明は、この各駆動装置１７は全てのリンク５，７〜１２に対して熱的影響を及ぼし、その長さ変化に影響を与えるという考え方の下で、ロボットアーム６の先端である手先の位置決め制御のために必要な制御点間（任意の制御点間）の長さに対し、各駆動装置１７が影響を及ぼす程度を補正係数（熱膨張係数に相当）で表わし、この補正係数によって上記任意の制御点間の長さ変化を推定して補正を行おうとするものである。
【００３１】
ここで、手先の位置決め精度向上のためには、座標Ｒ１の原点Ｏ１（回転中心Ｌｃ‐１）と座標Ｒ２の原点Ｏ２（回転中心Ｌｃ‐２）との間の長さ（図４においてａ１で示す長さ）、座標Ｒ３の原点Ｏ３（回転中心Ｌｃ‐３）と座標Ｒ４の原点Ｏ４（回転中心Ｌｃ‐４）との間の長さ（図４においてａ２で示す長さ）の変化も補正する必要があるが、本実施形態では説明の簡単化のために、リンクの長さが変化することによって回転角度に影響を及ぼす任意の制御点間の長さとして、ベース５の底面（ロボット座標Ｚ０の原点Ｏ０のある面）と下アーム８の座標Ｒ２の原点Ｏ２（回転中心Ｌｃ‐２）との間の長さＬ１、下アーム８の座標Ｒ２の原点Ｏ２（回転中心Ｌｃ‐２）と第１の上アーム９の座標Ｒ３の原点Ｏ３（回転中心Ｌｃ‐３）との間の長さＬ２、第１の上アーム９の座標Ｒ３の原点Ｏ３（回転中心Ｌｃ‐３）と手首アーム１１の座標Ｒ５の原点Ｏ５（回転中心Ｌｃ‐５）との間の長さＬ３、手首アーム１１の座標Ｒ５の原点Ｏ５（回転中心Ｌｃ‐５）とフランジ１２の先端面の回転中心である手先座標Ｒｆの原点Ｏｆとの間の長さＬ４を用いることとする。
【００３２】
補正係数を熱膨張係数として捉えると、Ｌ１〜Ｌ４の長さ変化ΔＬ１〜ΔＬ４と駆動装置１７‐１〜１７‐６の温度変化との関係は次の（１）〜（６）の各式で表わすことができる。なお、補正係数のディメンションは〔ｍ／℃〕である。
〔数１〕
（Ｌａ１−Ｌｂ１）＝ＫＬ１Ｄ１×（Ｄａ１−Ｄｂ１）＋ＫＬ１Ｄ２×（Ｄａ２−Ｄｂ２）＋ＫＬ１Ｄ３×（Ｄａ３−Ｄｂ３）＋ＫＬ１Ｄ４×（Ｄａ４−Ｄｂ４）ＫＬ１Ｄ５×（Ｄａ５−Ｄｂ５）＋ＫＬ１Ｄ６×（Ｄａ６−Ｄｂ６）…（１）
〔数２〕
（Ｌａ２−Ｌｂ２）＝ＫＬ２Ｄ１×（Ｄａ１−Ｄｂ１）＋ＫＬ２Ｄ２×（Ｄａ２−Ｄｂ２）＋ＫＬ２Ｄ３×（Ｄａ３−Ｄｂ３）＋ＫＬ２Ｄ４×（Ｄａ４−Ｄｂ４）ＫＬ２Ｄ５×（Ｄａ５−Ｄｂ５）＋ＫＬ２Ｄ６×（Ｄａ６−Ｄｂ６）…（２）
〔数３〕
（Ｌａ３−Ｌｂ３）＝ＫＬ３Ｄ１×（Ｄａ１−Ｄｂ１）＋ＫＬ３Ｄ２×（Ｄａ２−Ｄｂ２）＋ＫＬ３Ｄ３×（Ｄａ３−Ｄｂ３）＋ＫＬ３Ｄ４×（Ｄａ４−Ｄｂ４）ＫＬ３Ｄ５×（Ｄａ５−Ｄ５ｂ）＋ＫＬ３Ｄ６×（Ｄａ６−Ｄｂ６）…（３）
〔数４〕
（Ｌａ４−Ｌｂ４）＝ＫＬ４Ｄ１×（Ｄａ１−Ｄｂ１）＋ＫＬ４Ｄ２×（Ｄａ２−Ｄｂ２）＋ＫＬ４Ｄ３×（Ｄａ３−Ｄｂ３）＋ＫＬ４Ｄ４×（Ｄａ４−Ｄｂ４）ＫＬ４Ｄ５×（Ｄａ５−Ｄ５ｂ）＋ＫＬ４Ｄ６×（Ｄａ６−Ｄｂ６）…（４）
上記（１）式〜（４）式に用いた符号の意味は次の通りである。
【００３３】
Ｌｂ１〜Ｌｂ４：Ｌ１〜Ｌ４の常温（例えば２７℃）での長さ
Ｌａ１〜Ｌａ４：Ｌ１〜Ｌ４の現在の長さ
（Ｌａ１−Ｌｂ１）〜（Ｌa４−Ｌｂa４）：Ｌ１〜Ｌ４の長さ変化Δ１〜Δ４
ＫＬ１Ｄ１〜ＫＬ１Ｄ６：各駆動装置１７‐１〜１７‐６の温度変化がＬ１の長さ変化に与える程度を表わす補正係数
ＫＬ２Ｄ１〜ＫＬ２Ｄ６：各駆動装置１７‐１〜１７‐６の温度変化がＬ２の長さ変化に与える程度を表わす補正係数
ＫＬ３Ｄ１〜ＫＬ３Ｄ６：各駆動装置１７‐１〜１７‐６の温度変化がＬ３の長さ変化に与える程度を表わす補正係数
ＫＬ４Ｄ１〜ＫＬ４Ｄ６：各駆動装置１７‐１〜１７‐６の温度変化がＬ４の長さ変化に与える程度を表わす補正係数
Ｄｂ１〜Ｄｂ６：常温のときの各駆動装置１７‐１〜１７‐６の温度
Ｄａ１〜Ｄａ６：現在の各駆動装置１７‐１〜１７‐６の温度
（Ｄａ１−Ｄｂ１）〜（Ｄａ６−Ｄｂ６）：各駆動装置１７‐１〜１７‐６の温度変化値
本発明は、実際のロボット作業を行う運転（実運転）の前に、補正係数ＫＬ１Ｄ１〜ＫＬ１Ｄ６、ＫＬ２Ｄ１〜ＫＬ２Ｄ６、ＫＬ３Ｄ１〜ＫＬ３Ｄ６、ＫＬ４Ｄ１〜ＫＬ４Ｄ６を求める測定用運転を行う。この測定用運転によって各駆動装置１７の温度変化とリンク５〜１２の任意の制御点間の長さＬ１〜Ｌ４変化を求め、その温度変化値と長さ変化値とから各駆動装置１７の温度変化が任意の制御点間の長さＬ１〜Ｌ４に与える影響の程度を表わす補正係数ＫＬ１Ｄ１〜ＫＬ１Ｄ６、ＫＬ２Ｄ１〜ＫＬ２Ｄ６、ＫＬ３Ｄ１〜ＫＬ３Ｄ６、ＫＬ４Ｄ１〜ＫＬ４Ｄ６を求める。
【００３４】
Ｌ１〜Ｌ４の長さを測定するには、図５に示す３次元計測器（３次元計測手段）２５を用いる３次元計測器２５は、例えば３台のＣＣＤカメラを備えた３次元計測器（例えば、株式会社東洋テクニカ；ロボットキャリブレーションＲＯＣＡＬシステム）からなる。なお３次元計測器２５はレーザトラッカなどであっても良い。
３次元計測器２５の測定情報はパソコンからなる測定制御装置（測定制御手段）２６に入力される。この測定制御装置２６はロボット２の制御装置３のＣＰＵ１８に接続され、各ロータリーエンコーダ２３の温度センサ２４による計測温度情報を取得することができるようになっている。
【００３５】
３次元計測器２５による計測位置は、測定制御装置２６によって３次元計測器２５に予め設定された３次元座標（以下、カメラ座標という。）Ｒｃ上の位置で示される。ロボットアーム６が移動した場合、その実際の移動距離は、カメラ座標Ｒｃ上での移動距離を演算することにより求めることができるようになっている。
【００３６】
Ｌ１〜Ｌ４の長さ変化のうち、Ｌ１の長さ変化は、ロボット２を据え付けた床面の位置に変化がないのであるから、実際にＬ１の長さを測定しなくとも、Ｌｃ‐２の位置の上下方向変化によって求めることができる。つまり、常温でのＬｃ‐２の位置（Ｐｂ１）と温度変化後のＬｃ‐２の位置（Ｐａ１）を測定し、その差を求めればＬ１の長さ変化（Ｌａ１−Ｌｂ１）を求めることができるのである。
残るＬ２〜Ｌ４の長さ変化の測定には、座標Ｒ２の原点Ｏ２、座標Ｒ３の原点Ｏ３、座標Ｒ５の原点Ｏ５、座標Ｒｆの原点Ｏｆの位置を測定する必要がある。この場合、原点Ｏ２，Ｏ３，Ｏ５の位置については、Ｌｃ‐２，Ｌｃ‐３，Ｌｃ‐５の位置に代えることができる。
【００３７】
Ｌｃ‐２，Ｌｃ‐３，Ｌｃ‐５，Ｏｆの位置の計測は次のようにして行う。まず、フランジ１２の先端面の任意の位置に、図６に示すように×印などの目印Ｍを付す。
Ｌｃ‐２の位置を測定するには、第１の上アーム９、第２の上アーム１０、手首アーム１１、フランジ１２を固定した状態で、図７に示すように下アーム８をＬｃ‐２を中心に任意角度回転させる。すると、目印Ｍが図８に示すように、Ｌｃ‐２を中心にして円形の回転軌跡Ｅを辿るので３次元計測器２５によって目印Ｍの回転軌跡Ｅ上の位置を、互いに異なる３点以上の複数位置ｄ１，ｄ２，…ｄｎにおいて測定する。測定制御装置２６は３次元計測器２５によって計測された目印Ｍの回転軌跡Ｅ上の複数位置ｄ１，ｄ２，…ｄｎから、最小二乗法により目印Ｍの回転中心ＯＬの位置を求めると共に、目印Ｍの回転軌跡Ｅを含む一平面を求める。中心ＯＬはＬｃ‐２上の一点であるから、次に、目印Ｍの回転軌跡Ｅを含む一平面に直交する直線Ｌｖを求め、このＬｖと平行で且つ中心ＯＬを通る直線を求めると、この直線がＬｃ‐２である。
【００３８】
Ｌｃ‐３を求めるには、上記と同様にしてＬｃ‐３を中心にして第１の上アーム９を回転させると、目印Ｍの回転軌跡からＬｃ‐３を求めることができる。このＬｃ‐３と先に求めたＬｃ‐２との間の長さを求めると、これがＬ２となる。
Ｌｃ‐５を求めるには、上記と同様にしてＬｃ‐５を中心にして手首アーム１１だけを回転させると、目印Ｍの回転軌跡からＬｃ‐５を求めることができる。このＬｃ‐５とＬｃ‐３との間の長さを求めると、これがＬ３となる。
【００３９】
最後に、フランジ１２だけを回転させる。そして、上記したと同様にして目印Ｍの回転中心の位置を求める。この回転軌跡の中心がＯｆであるので、このＯｆから先に求めたＬｃ‐５上に垂線を下ろせば、この垂線の長さがＬ４として求まる。
以上のようにしてＬ１〜Ｌ４を求める動作を常温（例えば２７℃）において行う。この場合、室温を長時間常温に保持し、ロボット２全体が常温となったと思われる時期に、Ｌｃ‐２の位置Ｐｂ１、Ｌ２〜Ｌ４の長さＬｂ１〜Ｌｂ６を求める。このときの温度センサ２４‐１〜２４‐６の計測温度Ｄｂ１〜Ｄｂ６は常温（２７℃）を示す。
【００４０】
次に、ロボット２を測定用運転し、各温度センサ２４‐１〜２４‐６の検出温度Ｄｂ１〜Ｄｂ６を求めると共に、Ｌｃ‐２の位置、Ｌ２〜Ｌ４を求める。測定用運転後のＬｃ‐２の位置をＰａ１、Ｌ２〜Ｌ４をＬａ２〜Ｌａ４とする。このとき、未知数が２４（ＫＬ１Ｄ１〜ＫＬ１Ｄ６、ＫＬ２Ｄ１〜ＫＬ２Ｄ６、ＫＬ３Ｄ１〜ＫＬ３Ｄ６、ＫＬ４Ｄ１〜ＫＬ４Ｄ６の２４）あるため、Ｌｃ‐１の位置、Ｌ２〜Ｌ４を少なくとも異なる６つの温度で測定する。
【００４１】
次に、測定した温度Ｄａ１〜Ｄａ６とＰａ１，Ｌａ２〜Ｌａ４を、前記（１）式〜（４）式に代入する。なお、（Ｌａ１−Ｌｂ１）は（Ｐａ１−Ｐｂ１）で求める。
そして、この２４の式からなる連立方程式を解いて補正係数ＫＬ１Ｄ１〜ＫＬ１Ｄ６、ＫＬ２Ｄ１〜ＫＬ２Ｄ６、ＫＬ３Ｄ１〜ＫＬ３Ｄ６、ＫＬ４Ｄ１〜ＫＬ４Ｄ６を求める。
【００４２】
この連立方程式を解くには、例えば最小二乗法を使用する。最小二乗法を使って補正係数Ｋ（ＫＬ１Ｄ１〜ＫＬ１Ｄ６、ＫＬ２Ｄ１〜ＫＬ２Ｄ６、ＫＬ３Ｄ１〜ＫＬ３Ｄ６、ＫＬ４Ｄ１〜ＫＬ４Ｄ６）を求める場合、次の（５）式により誤差最小となる補正係数Ｋを求める。
【００４３】
Ｋ＝（ΔＤＴ・ΔＤ）‐１・（ΔＤＴ・ΔＬ）  …  （５）
上記（５）式いおいて、ΔＤは温度変化値、ΔＬはＬ１〜Ｌ４の長さ変化値である。また、上付き添え字Ｔは転置行列であることを表わす。
【００４４】
（５）式で算出した補正係数が負や０に近い値となるものは除き、改めてロボット２を測定用運転して温度変化およびＬ１〜Ｌ４の長さ変化を求めて補正係数を再計算する。
以上のようにして補正係数ＫＬ１Ｄ１〜ＫＬ１Ｄ６、ＫＬ２Ｄ１〜ＫＬ２Ｄ６、ＫＬ３Ｄ１〜ＫＬ３Ｄ６、ＫＬ４Ｄ１〜ＫＬ４Ｄ６を求めた後、ロボットを実運転する。この実運転では、例えば一定時間毎に温度センサ２４の検出温度を取得し、常温との温度差を算出して前記（１）〜（４）式により長さ変化ΔＬ１〜ΔＬ４を求めてＬ１〜Ｌ４を補正する。そして、補正後のＬ１〜Ｌ４を用いて各制御点の位置を演算し、求めた位置に各制御点が移動するように各モータ１５を制御する。これにより、ロボットアーム６の手先が目標とした位置（与えられたロボット座標位置）に移動する。
【００４５】
以上のようにして補正したＬ１〜Ｌ４を用いて制御した場合のロボットアーム６の手先の位置と、目標位置との誤差を計測したところ、精度の高い位置決め補正を行うことができた。
【００４６】
このように本実施形態によれば、リンク５，７〜１２の加熱源である駆動装置１７‐１〜１７‐６の夫々の温度変化がリンク５，７〜１２の一つ一つの長さ変化に与える影響の程度を表わす補正係数ＫＬ１Ｄ１〜ＫＬ１Ｄ６、ＫＬ２Ｄ１〜ＫＬ２Ｄ６、ＫＬ３Ｄ１〜ＫＬ３Ｄ６、ＫＬ４Ｄ１〜ＫＬ４Ｄ６を用いて各リンク５，７〜１２の長さ変化を求めるので、リンク５，７〜１２の夫々の温度を計測する温度センサを別途設けなくとも済む。
【００４７】
また、各駆動装置１７‐１〜１７‐６の温度の平均値を用いてロボットアーム６全体としての長さ変化を求めるもの（特許文献２）では、駆動装置の温度の平均値は同じであっても、個々の駆動装置の温度をみてみると、ロボットアームの動作状況によって高低異なるという場合が頻繁に生ずることが考えられ、このような場合には、高精度の位置決め補償ができないという問題がある。これに対し、本実施形態によれば、各駆動装置１７‐１〜１７‐６の温度変化がリンク５，７〜１２の一つ一つの長さ変化に与える影響を基にしてリンク５，７〜１２の長さ変化を求めるので、個々の駆動装置１７の温度をみたとき、ロボットアーム６の動作状況によって高低異なる場合が頻繁に生じたとしても、常に高い位置決め精度を補償することができる。
【００４８】
更に、リンクの夫々に温度センサを設けてリンクの一つ一つの長さ変化を求めるもの（特許文献１）では、リンクの温度センサを設けた部位から離れた隣のリンクとの結合部分では、当該隣のリンクからの熱の授受があって場合によって高低異なる温度を呈することが頻繁に生ずるため、温度センサの検出温度が同じであっても、一つのリンク全体としてみたとき、平均温度が場合によって異なり、従ってリンクの長さ変化も異なるという問題を生ずる。
【００４９】
これに対し、本実施形態では、各リンクは隣のリンクとの結合部分において当該隣のリンクとの間で熱の授受を生ずることを考慮し、各駆動装置１７の温度変化がリンク５，７〜１２の一つ一つの長さ変化に与える影響を基にしてＬ１〜Ｌ４の長さ変化を求めるので、各駆動装置１７の温度変化が同じであるが、隣のリンクとの結合部分では当該隣のリンクとの間で熱の授受があっても、Ｌ１〜Ｌ４の長さ変化をより正確に把握でき、高い位置決め補償を行うことができる。
【００５０】
本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような拡張或いは変更が可能である。
各駆動装置１７を設ける位置は上記一実施形態のものに限られない。
駆動装置１７は、モータ１５と歯車減速装置１６とを離して設置し、両者間をベルト伝導機構など動力伝達機構で連結する構成のものであっても良い。
複数の制御点のうち、計測する所望の制御点間の長さは、複数の制御点の全ての制御点間の長さであっても良い。
【符号の説明】
【００５１】
図面中、２はロボット、３は制御装置、５，７〜１２はリンク、１５はモータ、１６は歯車減速装置、１７は駆動装置、２３はロータリーエンコーダ、２４は温度センサを示す。
【図１】
2015141583.tif 000003
【図２】
2015141583.tif 000004
【図３】
2015141583.tif 000005
【図４】
2015141583.tif 000006
【図５】
2015141583.tif 000007
【図６】
2015141583.tif 000008
【図７】
2015141583.tif 000009
【図８】
2015141583.tif 000010