(57)【特許請求の範囲】
【請求項１】
据え付け面に固定されるベースリンクに対し、ロボットアームを構成する第１〜第６の各リンクを、第１〜第６の各回転関節により順次連結してなる６軸ロボットであって、前記第１リンクに前記第２リンクを連結する前記第２回転関節の回転軸の回転中心線が前記ベースリンクに前記第１リンクを連結する前記第１回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第２リンクに前記第３リンクを連結する前記第３回転関節の回転軸の回転中心線が前記第２回転関節の回転軸の回転中心線と平行に、前記第３リンクに前記第４リンクを連結する前記第４回転関節の回転軸の回転中心線が前記第３回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第４リンクに前記第５リンクを連結する前記第５回転関節の回転軸の回転中心線が前記第４回転関節の回転軸の回転中心線と直交する方向と平行に、前記第５リンクに前記第６リンクを連結する前記第６回転関節の回転軸の回転中心線が前記第５回転関節の回転軸の回転中心線に対して直交する方向と平行に、それぞれ設定すると共に、
ロボット座標を前記第１回転関節の回転軸の回転中心線上に設定し、前記第１〜第６の各リンクの座標をそれぞれ前記第１〜第６の各回転関節の回転軸の回転中心線上に設定し、且つ、前記第６リンクのうち前記第６回転関節の回転軸の回転中心線上に存する所定位置を手先として同位置に当該手先の座標を設定してなる６軸ロボットにおいて、
前記第６リンクの回転中心線から離れた位置に当該第６リンクと一体に動作する測定点を設けると共に、前記測定点の３次元位置を測定可能な３次元測定手段を設け、
前記第１リンクの適宜の回転位置を当該第１リンクの当初回転位置と定めると共に、前記第１リンクの当初回転位置における前記第６リンクの適宜の回転位置を当該第６リンクの当初回転位置と定め、
前記第５回転関節の回転軸の回転中心線が前記第２，３の両回転関節の回転軸の回転中心線と平行で、且つ前記第６回転関節の回転軸の回転中心線が前記第１回転関節の回転軸の回転中心線と平行の状態を保持しながら、前記第１リンクを互いに異なる３以上の任意の回転位置に回転させ、当該第１リンクの各回転位置において、前記第６リンクを、当該第６リンクの当初回転位置から、前記第１リンクが当該第１リンクの当初回転位置から現回転位置まで回転したとしたときの前記第１リンクの回転方向と逆の回転方向に、前記第１リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を前記３次元計測手段により計測し、
前記第１リンクの前記各回転位置で計測した前記測定点の３以上の複数位置から、これら３以上の複数位置を通る円の中心位置と、これら測定点の３以上の複数位置が含まれる平面の法線とを求め、求めた円の中心を原点、当該原点を通る前記法線と平行の直線をＺ軸、前記原点を通って前記Ｚ軸に直交する任意の直線をＸ軸、前記原点を通って前記ＺおよびＸの両軸に直交する直線をＹ軸とする基準座標を定め、
前記第１回転関節の回転軸の回転中心線から延ばした当該第１回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、
前記第５回転関節の回転軸の回転中心線が前記第２，３の両回転関節の回転軸の回転中心線と平行の状態で、前記第２，３，５の回転関節のうち、少なくとも２つの回転関節の回転軸を回転させることにより、前記第６回転関節の回転軸の回転中心線が前記第１回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、前記手先を前記移動目標位置のそれぞれに移動させることとしたとき、
前記第１〜第６の各回転関節の回転軸を含む第１〜第６の各回転駆動系を介して前記第１〜第６の各リンクを駆動するモータの原点位置誤差、前記第１〜第６の各回転駆動系の撓み、前記第１〜第６の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記手先の位置誤差が生じないように補正処理を行った上で、
前記第５回転関節の回転軸の回転中心線が前記第２，３の両回転関節の回転軸の回転中心線と平行の状態で、前記第２，３，５の回転関節のうち、少なくとも２つの回転関節の回転軸を回転させることにより、前記目標位置到達姿勢を保持した状態で前記手先を前記複数の移動目標位置に移動させ、
各移動目標位置において、前記第６リンクを当該第６リンクの前記当初回転位置から、前記第１リンクが当該第１リンクの前記当初回転位置から現回転位置まで回転したとしたときの第１リンクの回転方向と逆の回転方向に、前記第１リンクの前記当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を前記３次元計測手段により計測してこれをオフセット算出用測定点位置とし、
前記各オフセット算出用測定点位置を前記基準座標上の位置に座標変換して各オフセット算出用測定点位置の前記基準座標上のＸＹ座標値を求め、
求めた前記オフセット算出用測定点位置のＸＹ座標値を前記基準座標のＸＹ平面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に前記基準座標の原点から下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第２，３，５の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項２】
請求項１記載のロボットの軸間オフセットの検出方法において、
前記第１回転関節の回転軸の回転中心線から延ばした一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに前記手先を移動させる動作は、前記第１回転関節の回転軸の回転中心線から互いに反対方向に向けて延ばした２つの平面について行い、一方の平面上から他方の平面上への移行は、前記第１リンクを固定した状態で前記第２，３，５の回転関節のうち少なくとも２つの回転関節の回転軸を回転させることにより前記ロボットアームを反転させて行うことを特徴とするロボットの軸間オフセットの検出方法。
【請求項３】
請求項１または請求項２における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、
前記任意の複数位置を前記手先の移動目標位置に定め、
前記第５回転関節の回転軸の回転中心線が前記第２，３の両回転関節の回転軸の回転中心線と平行の状態で、前記第２，３，５の回転関節のうち、少なくとも２つの回転関節の回転軸を回転させることにより、前記第６回転関節の回転軸の回転中心線が前記第１回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、前記手先を前記移動目標位置のそれぞれに移動させることとしたとき、
前記第１〜第６の各回転関節の回転軸を含む第１〜第６の各回転駆動系を介して前記第１〜第６の各リンクを駆動するモータの原点位置誤差、前記第１〜第６の各回転駆動系の撓み、前記第１〜第６の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差による手先の位置誤差が生じないように補正処理を行った上で、
前記第５回転関節の回転軸の回転中心線が前記第２，３の両回転関節の回転軸の回転中心線と平行の状態で、前記第１の回転関節と前記第２，３，５の回転関節のうちの少なくとも２つの回転関節の回転軸を回転させることにより、前記目標位置到達姿勢を保持した状態で前記手先を前記複数の移動目標位置に移動させ、且つ、各移動目標位置において、前記第６リンクを、当該第６リンクの前記当初回転位置から、前記第１リンクが当該第１リンクの前記当初回転位置から現回転位置まで回転したとしたときの前記第１リンクの回転方向と逆の回転方向に、前記第１リンクの前記当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を３次元計測手段により計測し、
前記各移動目標位置において計測した前記測定点の位置をオフセット算出用測定点位置とし、求めた前記各移動目標位置における前記オフセット算出用測定点位置を前記基準座標上の位置に座標変換して、複数のオフセット算出用測定点位置の前記基準座標上のＸＹ座標値を求め、且つ前記各移動目標位置のＸＹ座標値を前記基準座標上のＸＹ座標値に座標変換して前記基準座標上の移動目標位置とし、
前記各移動目標位置について、前記基準座標のＸＹ平面上に前記移動目標位置のＸＹ座標値と前記オフセット算出用測定点位置のＸＹ座標値とをプロットし、前記基準座標の原点から前記ＸＹ平面上の前記移動目標位置までの線分の長さを目標位置半径とすると共に、前記ＸＹ平面上の前記オフセット算出用測定点位置から前記基準座標の原点と前記ＸＹ平面上の前記移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、
前記各移動目標位置について、前記目標位置半径と前記オフセット誤差成分との関係を、直交２軸のうち一方の軸に前記移動目標位置半径をとり他方の軸に前記オフセット誤差成分をとったグラフにプロットしこれらプロットされた点を結ぶ直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第２，３，５の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項４】
請求項３記載のロボットの軸間オフセットの検出方法において、
前記ロボットアームの可動範囲内の任意の複数位置を移動目標位置に定め、これら複数の移動目標位置に前記手先を移動させる動作は、
前記第１回転関節の回転軸を固定した状態で前記第２，３，５の回転関節のうち少なくとも第２，３の回転関節の回転軸を一方向および他方向に回転させることにより、前記ロボットアームが前記第１リンクから一方側に倒れた姿勢となる前屈姿勢と、他方側に倒れた姿勢となる後屈姿勢の両方で行うことを特徴とするロボットの軸間オフセットの検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに直交する方向の回転軸を有する第１回転関節と第２，３，５回転関節とのオフセットを検出してこれを補正する６軸ロボットの軸間オフセット検出方法に関する。
【背景技術】
【０００２】
６軸ロボットは、固定された３次元の直交座標で表した位置データが与えられると、この位置データを回転関節の角度データに変換して手先を位置データに示された位置に移動させるように構成されている。この場合、ロボットの構成部品の加工誤差や組み付け誤差により、リンク（アーム）長、回転関節と次の回転関節の回転軸間の角度（以下、ねじれ角という）、リンクの原点位置とモータの原点位置との関係（以下、モータ原点位置という）などに誤差を生じたり、各回転関節の駆動系に作用する負荷トルクによって駆動系に撓み（以下、単に撓みという）を生じたりすると、手先の位置や姿勢にずれを生じ、絶対位置精度が低下する。
【０００３】
絶対位置精度を向上させるために、上述の誤差や撓みを考慮して回転関節の回転角を補正する手法は現在までに種々考えられている。例えば、非特許文献１は、リンク長とねじれ角についての誤差を検出し、その誤差を補正する方法を開示している。また、特許文献１〜４は、モータ原点位置の誤差検出とその補正方法を開示している。駆動系の撓みについては、各リンクの質量と各リンクの姿勢とから各回転関節のモータに作用する負荷トルクを算出し、更に、この負荷トルクと駆動系のばね定数とから駆動系の捻り変形角度を求めて当該捻じり変形角度から各リンクの撓み角度を求め、そして各リンクの撓み角度を減殺するようなモータ回転角を求めることにより駆動系の撓みを補正する方法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２２０５８７号公報
【特許文献２】特開２００９−２７４１８６号公報
【特許文献３】特開２００９−２７４１８７号公報
【特許文献４】特開２００９−２７４１８８号公報
【非特許文献】
【０００５】
【非特許文献１】社団法人  日本ロボット工業会発行  平成９年度通商産業省工業技術院委託  プラント用知能ロボットの標準化に関する調査研究  成果報告書  第５２頁４．３．２．３対偶軸同定法
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明者は、６軸ロボットについて、上記方法を用いてリンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓みを求め、その結果から各回転関節の回転角を修正した上で、手先が位置データに示された位置に移動するかを求める実験を行った。しかし、この実験の結果は、本発明者が当初予定していた絶対位置精度を満足させるものではなかった。
【０００７】
本発明は上記の事情に鑑みてなされたもので、その目的は、６軸ロボットにおいて、上記のリンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓みを修正してもなお満足できる絶対位置精度を得ることができなかった要因を推定し、推定した要因による誤差量を計測する方法を提供することによってロボットの絶対位置精度の更なる向上を図ろうとすることにある。
【課題を解決するための手段】
【０００８】
本発明者は、絶対位置精度が不足する理由として、リンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓み以外に位置誤差を生じさせる要因が存在し、これが、軸間オフセットにあるものと推測した。
【０００９】
ここで、組み付け後の第２，第３，第５の各回転関節の位置が正規の位置から回転中心線方向にずれていた場合、このずれを軸間オフセットと言う。
つまり、第２，第３，第５の各回転関節がロボットの構成部品の加工誤差や組み立て誤差などによって正規の位置からずれると、第２，第３，第５の各リンクの座標の設計上の原点位置と、第２，第３，第５の各回転関節の回転軸との関係がずれを生ずることとなり、その結果、ロボットの手先がロボット座標上の位置で指定された目標位置から軸間オフセットだけずれるようになる。
従って、軸間オフセットを計測し、これを補正すれば、絶対位置精度をより高くすることができる。しかしながら、従来、軸間オフセットと絶対位置精度との関係を考察し、軸間オフセットを計測しようとする提案はなされていない。
【００１０】
本発明による軸間オフセットの方法は以下の通りである。
（請求項１）
請求項１の発明では、まず、第６リンクの回転中心線から離れた位置に当該第６リンクと一体に動作する測定点を設け、第１リンクの適宜の回転位置を当該第１リンクの当初回転位置と定めると共に、第１リンクの当初回転位置における第６リンクの回転位置を当該第６リンクの当初回転位置と定める。そして、第５回転関節の回転軸の回転中心線が第２，３の両回転関節の回転軸の回転中心線と平行で、且つ第６回転関節の回転軸の回転中心線が第１回転関節の回転軸の回転中心線と平行の状態を保持しながら、第１リンクを互いに異なる３以上の任意の回転位置に回転させる。
【００１１】
この第１リンクの各回転位置では、第６リンクを、当該第６リンクの当初回転位置から、第１リンクが当該第１リンクの当初回転位置から現回転位置まで回転したとしたときの第１リンクの回転方向と逆の回転方向に、第１リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を３次元計測手段により計測し、この測定点の３以上の複数位置から、これら３以上の複数位置を通る円の中心位置と、これら３以上の複数位置が含まれる平面の法線とを求め、求めた円の中心を原点、当該原点を通る前記法線と平行の直線をＺ軸、前記原点を通って前記Ｚ軸に直交する任意の直線をＸ軸、前記原点を通って前記ＺおよびＸの両軸に直交する直線をＹ軸とする基準座標を定める。
【００１２】
次に、第１回転関節の回転軸の回転中心線から延ばした当該第１回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに前記手先を移動させることとしたとき、第１〜第６の各回転関節の回転軸を含む第１〜第６の各回転駆動系を介して第１〜第６の各リンクを駆動するモータの原点位置誤差、第１〜第６の各回転駆動系の撓み、第１〜第６の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって手先の位置誤差が生じないように補正処理を行う。
【００１３】
その上で、第２，３，５の回転関節のうち少なくとも２つの回転関節の回転軸を回転させることにより、第５回転関節の回転軸の回転中心線が第２回転関節および第３回転関節の回転軸の回転中心線と平行で、且つ第６回転関節の回転軸の回転中心線が第１回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、手先を移動目標位置に移動させ、各移動目標位置において、第６リンクを、当該第６リンクの当初回転位置から、第１リンクが当該第１リンクの当初回転位置から計測位置まで回転したとしたときの第１リンクの回転方向と逆の回転方向に、第１リンクの当初回転位置から計測位置までの回転角度だけ回転させた状態にして、測定点の位置を３次元計測手段により計測してこれをオフセット算出用測定点位置とし、各オフセット算出用測定点位置を基準座標上の位置に座標変換する。
【００１４】
この後、各オフセット算出用測定点位置の基準座標上のＸＹ座標値を求め、求めたオフセット算出用測定点位置のＸＹ座標値を基準座標のＸＹ平面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に基準座標の原点から下ろした垂線の長さをずれ量として求め、求めたずれ量を第２，３，５の回転関節の合計の軸間オフセット量とする。
以上のようにして求めた軸間オフセット量により、例えばＤＨパラメータを補正することにより、絶対位置精度の更なる向上を図ることができる。
【００１５】
（請求項２）
請求項２の発明は、請求項１において、第１回転関節の回転軸の回転中心線から延ばした任意の一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに手先を移動させる動作は、第１回転関節の回転軸の回転中心線から互いに反対方向に向けて延ばした２つの平面について行い、一方の平面上から他方の平面上への手先の移行は、第１リンクを固定した状態で第２，３，５の回転関節のうち少なくとも２つの回転関節の回転軸を回転させることによりロボットアームを反転させて行うことを特徴とする。
【００１６】
一方の一平面上の任意の複数位置に手先を移動させたときの測定点の位置を結んでできる計測依存線分と、ロボットアームを反転させて他方の一平面上の任意の複数位置に手先を移動させたときの測定点の位置を結んでできる計測依存線分とは一直線上に位置する筈である。一直線上に位置しない場合には、基準座標を設定する手法や、モータの原点位置誤差、前記第１〜第６の各回転駆動系の撓み、或いは第１〜第６の各リンクの長さ誤差により手先の位置誤差が生じないようにするための手法などに誤りがあったと考えられる。
このため、請求項２の発明によれば、軸間オフセット量が正しく求められたか否かの確認をすることができる。
【００１７】
（請求項３）
請求項３の発明は、請求項１または２における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、手先を任意の複数の移動目標位置に移動させることとしたとき、第１〜第６の各回転関節の回転軸を含む第１〜第６の各回転駆動系を介して第１〜第６の各リンクを駆動するモータの原点位置誤差、第１〜第６の各回転駆動系の撓み、第１〜第６の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差による手先の位置誤差が生じないように補正処理を行った上で、第５回転関節の回転軸の回転中心線が第２，３の両回転関節の回転軸の回転中心線と平行の状態を保持したまま、第１の回転関節と第２，３，５の回転関節のうちの少なくとも２つの回転関節の回転軸を回転させることにより、手先を、第６回転関節の回転軸の回転中心線が第１回転関節の回転軸の回転中心線と平行を保持した状態で、任意に定めた複数の移動目標位置に移動させ、且つ、各移動目標位置において、第６リンクを、当該第６リンクの当初回転位置から、第１リンクが当該第１リンクの当初回転位置から現回転位置まで回転したとしたときの第１リンクの回転方向と逆の回転方向に、第１リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、測定点の位置を３次元計測手段により計測し、各移動目標位置において計測した定点の位置をオフセット算出用測定点位置とし、求めた各移動目標位置におけるオフセット算出用測定点位置を基準座標上の位置に座標変換して、複数のオフセット算出用測定点位置の基準座標上のＸＹ座標値を求め、且つ各移動目標位置のＸＹ座標値を基準座標のＸＹ座標値に変換して基準座標上の移動目標位置とし、各移動目標位置について、基準座標のＸＹ平面上に測定点の移動目標位置のＸＹ座標値とオフセット算出用測定点位置のＸＹ座標値とをプロットし、基準座標の原点から前記ＸＹ平面上の移動目標位置までの線分の長さを目標位置半径とすると共に、ＸＹ平面上の前記オフセット算出用測定点位置から基準座標の原点と前記ＸＹ平面上の移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、直交２軸のうち一方の軸に移動目標位置半径をとり他方の軸にオフセット誤差成分をとったグラフにプロットしこれらプロットされた点を結ぶ直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、求めたずれ量を第２，３，５の回転関節の合計の軸間オフセット量とする。
このようにしても、請求項１と同様の効果を得ることができる。
【００１８】
（請求項４）
請求項４は、請求項３において、基準座標の任意の複数の移動目標位置に手先を移動させる動作は、ロボットアームの前屈姿勢と、この前屈姿勢からロボットアームを反転させた後屈姿勢の双方で行うことを特徴とする。
【００１９】
このようにすることにより、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、グラフにプロットしたとき、これらプロッタされた点が前屈姿勢と後屈姿勢とで一直線上に位置するか否かにより、請求項２と同様に軸間オフセットが正しく求められたか否かの確認をすることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態を示すロボット装置の斜視図
【図２】回転関節の概略を示す断面図
【図３】各回転関節の回転軸を原点位置に設定した状態で示すロボットの側面図
【図４】各リンクに設定された座標を示す斜視図
【図５】ＤＨパラメータを示す表
【図６】ＤＨパラメータの具体的数値を示す表
【図７】制御装置を示すブロック図
【図８】フランジ部分の斜視図
【図９】本発明の手順を示す行程図
【図１０】基準座標の設定を説明するための図で、（ａ）は斜視図、（ｂ）は平面図
【図１１】回転駆動系の撓みの説明図
【図１２】移動目標位置を示す斜視図
【図１３】ロボットの前屈状態を示す側面図
【図１４】ロボットの後屈状態を示す側面図
【図１５】カメラ座標を基準座標に変換するための同時変換行列を示す図
【図１６】軸間オフセット量を求めるための説明図
【図１７】本発明の第２の実施形態を示す図
【図１８】軸間オフセット量を求めるための説明図
【発明を実施するための形態】
【００２１】
（第１の実施形態）
以下に本発明の第１の実施形態を図1〜図１６に基づいて説明する。図１には、６軸の垂直多回転関節型のロボット装置１が示されている。このロボット装置１は、６軸垂直多関節型ロボット（以下、単にロボットと称する）２と、ロボット２の動作を制御する制御装置（ロボット制御手段）３と、制御装置３に接続されてロボット２を手動操作によって動作させるためのティーチングペンダント（手動操作手段）４とを備えている。
【００２２】
ロボット２は、据え付け面、例えば工場の水平な床面に固定されるベース（ベースリンク）５に対し、ロボットアーム６を構成するショルダ（第１リンク）７、下アーム（第２リンク）８、第１の上アーム（第３リンク）９、第２の上アーム（第４リンク）１０と、手首アーム（第５リンク）１１、フランジ（第６リンク）１２を第１〜第６の各回転関節Ｊ１〜Ｊ６（図１には図示せず）により順次連結して構成されている。
【００２３】
つまり、ショルダ７はベース５上に第１回転関節Ｊ１によって第１軸Ｌｃ−１を中心に水平方向に旋回可能に連結され、下アーム８はショルダ７の先端部に第２回転関節Ｊ２によって第２軸Ｌｃ−２を中心に上下（鉛直）方向に旋回可能に支持され、第１の上アーム９は下アーム８の先端部に第３回転関節Ｊ３によって第３軸Ｌｃ−３を中心に上下方向に旋回可能に支持され、第２の上アーム１０は第１の上アーム９の先端部に第４回転関節Ｊ４によって第４軸Ｌｃ−４を中心に捻り回転可能に支持され、手首アーム１１は第２の上アーム１０の先端部に第５回転関節Ｊ５によって第５軸Ｌｃ−５を中心に上下方向に旋回可能に支持され、フランジ１２は手首アーム１１に第６回転関節Ｊ６によって第６軸Ｌｃ−６を中心に捻り回転可能に支持されている。
【００２４】
前記第１〜第６の各回転関節Ｊ１〜Ｊ６は、図２にその概略が示されている。図２に示す通り、各リンク７〜１２の回転関節Ｊ１〜Ｊ６は、前段のリンクに軸受１３を介して回転可能に支持された回転軸１４からなり、この回転軸１４に次段のリンクが直接或いは継ぎ手材を介して連結される。回転軸１４は、前段のリンクに固定された駆動源としてサーボモータ１５に減速装置、例えば歯車減速装置１６を介して回転駆動され、この回転軸１４の回転によって次段のリンクが旋回動作或いは捻り回転動作を行うようになっている。
【００２５】
ここで、前記第１軸Ｌｃ−１〜第６軸Ｌｃ−６は、第１〜第６の各回転関節Ｊ１〜Ｊ６の回転軸１４の回転中心線Ｌｃに相当するものである。これら第１軸Ｌｃ−１〜第６軸Ｌｃ−６の指向方向は次のとおりである。即ち、ショルダ７の回転中心である第１軸Ｌｃ−１は据え付け面と直交し、下アーム８の回転中心である第２軸Ｌｃ−２は第１軸Ｌｃ−１と直交する方向と平行、つまりベース５が例えば工場の床面に据え付けられているとして、第１軸Ｌｃ−１は据え付け床面に対し垂直（鉛直）、第２軸Ｌｃ−２は水平に定められている。そして、第１の上アーム９の回転中心である第３軸Ｌｃ−３は第２軸Ｌｃ−２と平行つまり水平であり、第２の上アーム１０の回転中心である第４軸Ｌｃ−４は第３軸Ｌｃ−３と直交する方向と平行、手首アーム１１の回転中心である第５軸Ｌｃ−５は第４軸Ｌｃ−４と直交し、フランジ１２の回転中心である第６軸Ｌｃ−６は第５軸Ｌｃ−５と直交する方向に定められている。
【００２６】
ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の各回転軸１４を駆動するサーボモータ１５が原点位置にあるとき、それらショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２は原点位置にある。ここで、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２が全て原点位置にあるとき、ロボットアーム６は、図３に示すような垂直上向きの姿勢になる（下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１が垂直）。そして、各サーボモータ１５が原点位置から正（プラス）方向および逆（マイナス）方向に回転することにより、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２も原点位置から正（プラス）方向および逆（マイナス）方向に回転するようになっている。
【００２７】
ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２には、図４に示すように、それぞれ３次元の座標Ｒ１〜Ｒ６が規定されている。これらの座標Ｒ１〜Ｒ６の原点Ｏ１〜Ｏ６は、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転中心線である第１軸Ｌｃ−1〜第６軸Ｌｃ−６上の所定位置に定められ、各座標Ｒ１〜Ｒ６のＺ軸であるＺ１〜Ｚ６軸はそれぞれ第１軸Ｌｃ−1〜第６軸Ｌｃ−６と一致している。
【００２８】
また、座標Ｒ１〜Ｒ６のうち、ショルダ７の座標Ｒ１のＸ軸であるＸ１軸は水平で、第１軸Ｌｃ−１と第２軸Ｌｃ−２との共通垂線（図１にｈ線で示す。）と平行となる方向に定められ、Ｙ軸であるＹ１軸は水平で、Ｚ１軸とＹ１軸とのベクトルの外積によって求められる方向（Ｚ１軸とＹ１軸の双方に直交する方向）に定められている。他の座標Ｒ２〜Ｒ６のＸ軸であるＸ２〜Ｘ６軸は、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２を原点位置に回転させた状態で座標Ｒ１のＸ１軸と平行の方向に定められ、Ｙ軸であるＹ２〜Ｙ６軸は、Ｚ２〜Ｚ６軸とＹ２〜Ｙ６軸とのベクトルの外積によって求められる方向に定められている。なお、Ｘ１〜Ｘ６軸、Ｙ１〜Ｙ６軸、Ｚ１〜Ｚ６軸のプラス方向は、図４に矢印で示す方向となっている。
【００２９】
ベース５およびロボットアーム６の先端であるフランジ１２の例えば先端面にも座標Ｒ０およびＲｆが規定されている。前記座標Ｒ１〜Ｒ６がショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転に伴って位置と向きが変化するのに対して、ベース５の座標Ｒ０は不動であり、ロボット座標とされている。このロボット座標Ｒ０の原点Ｏ０は、ショルダ７の回転中心線である第１軸Ｌｃ−１上にあって本実施形態では座標Ｒ１の原点Ｏ１と一致した位置に定められている。また、ロボット座標Ｒ０のＺ軸であるＺ０軸は第１軸Ｌｃ−１に一致し、Ｘ軸であるＸ０軸およびＹ軸であるＹ０軸は、ショルダ７が原点位置にあるときの当該ショルダ７の座標Ｒ１のＸ１軸およびＹ１軸に一致している。
【００３０】
フランジ１２の先端面の座標Ｒｆは手先座標とされ、その原点Ｏｆは、第６軸Ｌｃ−６上の所定位置、本実施形態では第６軸Ｌｃ−６とフランジ１２の先端面との交点、つまり図８に示すように、フランジ１２の円形をなす先端面の中心Ｐと一致するように定められ、Ｚ軸であるＺｆ軸は第６軸Ｌｃ−６に一致し、Ｘ軸であるＸｆ軸およびＹ軸であるＹｆ軸はフランジ１２の座標Ｒ６のＸ６軸およびＹ６軸と平行に定められている（図４参照）。そして、フランジ１２の先端面の中心Ｐがロボットアーム６の先端である手先に定められており、従って手先座標Ｒｆの原点Ｏｆは手先の位置に一致している。
【００３１】
以上の座標Ｒ０〜Ｒ６，Ｒｆのうち、ロボット座標Ｒ０を除く座標Ｒ１〜Ｒ６，Ｒｆの原点Ｏ１〜Ｏ６，Ｏｆは、本実施形態においては、座標Ｒ１のＸ１軸とＺ１軸を含む一つの平面（鉛直のＺ１Ｘ１平面）を仮定したとき、この一平面上に位置されている。そして、ロボットアーム６の動作時、座標Ｒ２〜Ｒ６，Ｒｆの原点Ｏ２〜Ｏ６，Ｏｆは座標Ｒ１のＺ１Ｘ１平面上を移動する。
【００３２】
上述のように規定された座標Ｒ０〜Ｒ６，Ｒｆの相互の位置関係は、周知のＤＨパラメータによって示される。図５はこのＤＨパラメータを表にまとめたもので、例えば、Ｊ１行については、座標Ｒ１を、Ｘ１軸方向にａ１平行移動させ、Ｙ１軸方向には移動させず、Ｚ１軸方向にｄ１平行移動させてから、Ｘ１軸を中心にしてねじれ角−π／２だけ回転させると、座標Ｒ２が得られ、また、例えば、Ｊ６行については、座標Ｒ６を、Ｘ６軸方向およびＹ６軸方向には移動させず、Ｚ６軸方向にｄ６平行移動させると、手先座標Ｒｆが得られるということを示している。なお、ロボット座標Ｒ０とショルダ７の座標Ｒ１との関係は、ショルダ７が原点位置にあるとき、座標Ｒ１はロボット座標Ｒ０に一致しているので、図５には示していない。図６にａ，ｂ，ｄの具体的な数値例を示した。
【００３３】
前記制御装置３は、図７に示すように、ＣＰＵ（制御手段）１７と、駆動回路（駆動手段）１８と、位置検出回路（位置検出手段）１９とを備えている。ＣＰＵ１７には、ロボット２全体のシステムプログラムや動作プログラムを作成するためのロボット言語やＤＨパラメータなどの各種データなどを記憶するＲＯＭ（記憶手段）２０およびロボット２の動作プログラムを記憶するＲＡＭ（記憶手段）２１が接続されていると共に、ティーチング作業などを行う際に使用する前記ティーチングペンダント４が接続されている。ティーチングペンダント４は、図１に示すように、各種の操作部４ａおよび液晶からなる表示器４ｂを備えている。
【００３４】
位置検出回路１９には、各サーボモータ１５の回転軸（図示せず）に連結された回転センサとしてのロータリエンコーダ２２が接続されている。位置検出回路１９は、各ロータリエンコーダ２２の回転角検出情報に基づいてショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転角度を検出し、その回転角検出情報をＣＰＵ１７に与える。
【００３５】
ここで、ＣＰＵ１７は、ロボット座標Ｒ０上での手先の位置（手先座標Ｒｆの原点Ｏｆの位置）と姿勢（手先座標ＲｆのＸｆ軸、Ｙｆ軸、Ｚｆ軸のロボット座標Ｒ０上での向き）が与えられると、手先がその位置と姿勢をとるようなショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転角度を、ヤコビ行列を用いた逆運動学の周知の計算手法によって求める。
【００３６】
また、逆に、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転角度が与えられると、それら回転角度から座標変換を用いた順運動学の周知の計算手法によってロボット座標Ｒ０上での手先の位置と姿勢を求めることができるように構成されている。これらの逆運動学および順運動学の計算手法による演算には、周知のように各座標Ｒ０〜Ｒ６，Ｒｆの相互の関係を示す前記ＤＨパラメータが用いられる。
【００３７】
そして、ＣＰＵ１７は、動作プログラムから手先のロボット座標Ｒ０上での目標位置を取得すると，その手先の目標位置からショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の目標動作角度を演算し、その目標動作角度に基づいた動作指令を駆動回路１８に与える。駆動回路１８は与えられた動作指令に基づいて各サーボモータ１５を駆動する。このとき、ＣＰＵ１７は、位置検出回路１９から与えられるショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転角検出情報をフィードバック情報として各サーボモータ１５をフィードバック制御する。
【００３８】
ところで、先に述べたように、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の座標Ｒ１〜Ｒ６、手先座標Ｒｆの原点Ｏ１〜Ｏ６，Ｏｆは、いずれもショルダ７の座標Ｒ１のＸ１軸とＺ１軸を含む鉛直面上に存在している。従って、ロボット２が高精度に組み立てられていれば、手先であるフランジ１２の先端面の中心Ｐは設計上の手先座標Ｒｆの原点Ｏｆに一致し、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２を目標動作角度だけ回転させることにより、手先は目標位置に正しく移動する。
【００３９】
しかしながら、ロボット２の構成部品の製作誤差や組み立て誤差などにより、下アーム８、第１の上アーム９、手首アーム１１の回転関節Ｊ２，Ｊ３，Ｊ５の各回転軸１４の位置が第２軸Ｌｃ−２、第３軸Ｌｃ−３、第５軸Ｌｃ−５の指向方向にずれて正規の位置との間に誤差（軸間オフセット）を生ずると、実際の手先（フランジ１２の先端面の中心Ｐ）の位置が設計上の手先座標Ｒｆの原点Ｏｆから水平方向にずれる。
【００４０】
すると、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２を目標動作角度だけ回転させても、手先の実際の移動位置が、回転関節Ｊ２，Ｊ３の各回転軸１４の軸間オフセットの総和分だけ（第５軸Ｌｃ−５が垂直の場合）、或いは回転関節Ｊ２，Ｊ３，Ｊ５の各回転軸１４の軸間オフセットの総和分だけ（第５軸Ｌｃ−５が水平の場合）目標位置から水平方向にずれるようになる。なお、回転関節Ｊ５の回転軸１４は短いので、回転関節Ｊ５単独の軸間オフセットは小さいと考えられ、回転関節Ｊ２，Ｊ３の各回転軸１４の軸間オフセットの和と回転関節Ｊ２，Ｊ３，Ｊ５の各回転軸１４の軸間オフセットの総和とは、ほとんど差がないと考えられる。
【００４１】
本発明方法は、回転関節Ｊ２，Ｊ３，Ｊ５の各回転軸１４の軸間オフセットの総和を推測し、推測した軸間オフセット分だけＤＨパラメータを修正して手先の実際の移動位置を目標位置にできるだけ近づけようとするものである。
本発明方法は、ティーチングペンダント４を操作して手先を複数の目標位置に移動させたとき、手先の実際の移動位置を図７に示す３次元計測器（３次元計測手段）２３によって計測して目標位置とのずれ量を求め、このずれ量から軸間オフセットを推測するものである。この場合、手先の実際の移動位置と目標位置とのずれは、軸間オフセット以外の要因、即ち各回転関節Ｊ１〜Ｊ６の回転駆動系の撓み、各サーボモータ１５の原点位置誤差、各リンク７〜１２の長さ誤差、各回転関節Ｊ１〜Ｊ６の回転軸１４相互間のねじれ角度誤差によっても生ずるので、これらの要因による位置誤差が生じないような補正処理を事前に行う必要がある。
【００４２】
前記３次元計測器２３は、例えば３台のＣＣＤカメラを備えた３次元計測器（例えば、株式会社東洋テクニカ；ロボットキャリブレーションＲＯＣＡＬシステム）からなる。なお、３次元計測器２３はレーザトラッカなどであっても良い。この３次元測定器２３に対し、フランジ１２の先端面には、図８に示すように、中心Ｐから離れた任意の位置に支持台２４が取り付けられ、この支持台２４の先端部に測定点としての発光ダイオード２５が取り付けられている。そして、３次元計測器２３は、この発光ダイオード２５の位置を計測する。
【００４３】
３次元計測器２３による発光ダイオード２５の計測位置は、パソコンからなる測定制御装置（測定制御手段）２６によって３次元計測器２３に予め設定された３次元座標（以下、カメラ座標という。）Ｒｃ上の位置で示される。このカメラ座標Ｒｃの一目盛で表わされる距離は、手先がロボット座標Ｒ０の一目盛分の距離だけ移動したときの距離と等しくなるように定められている。従って、ロボット座標Ｒ０の一目盛の長さ（単位長さ）とカメラ座標Ｒｃの一目盛の長さ（単位長さ）とは同じ距離を表わすこととなる。
【００４４】
さて、本発明方法は図９に示す手順により行われる。まず、カメラ座標Ｒｃ上におけるロボット座標Ｒ０の位置、当該ロボット座標Ｒ０のＸ０軸、Ｙ０軸およびＺ０軸の方向は分からない。そこで、本実施形態では、カメラ座標Ｒｃ上にロボット座標Ｒ０に代わる座標として基準座標Ｒｂを設定する（図９のステップＳ１）。この基準座標Ｒｂの設定のためのロボットアーム６の動作は、ティーチングペンダント４を使用して行う。
【００４５】
ここで、ティーチングペンダント４の機能について説明すると、当該ティーチングペンダント４は、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２のサーボモータ１５を個別に所望の角度だけ回転させて、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２をそれぞれの原点位置から正逆方向に所望の回転角度だけ回転させることができるように構成されている。
【００４６】
また、ティーチングペンダント４は、ショルダ７の回転位置、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１、フランジ１２および手先の位置と姿勢をロボット座標Ｒ０で指定できるようになっており、ティーチングペンダント４によりロボット座標Ｒ０上での位置と姿勢が指定されると、ロボット装置１のＣＰＵ１７がショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１、フランジ１２の回転角を演算し、その回転角となるように各サーボモータ１５を駆動する。これにより、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１、フランジ１２および手先が指定された位置と姿勢をとるように動作する。
ここで、ショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１、フランジ１２および手先の位置と姿勢は、座標Ｒ１〜Ｒ６，Ｒｆの位置と姿勢と同義である。
【００４７】
更に、現在のショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１、フランジ１２および手先の位置や姿勢を知りたい場合、その旨の操作を行うと、ＣＰＵ１７がショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１およびフランジ１２の回転角を取得し、その回転角からショルダ７、下アーム８、第１の上アーム９、第２の上アーム１０、手首アーム１１、フランジ１２および手先の位置や姿勢を演算し、ティーチングペンダント４の表示器４ａにロボット座標Ｒ０上の位置と姿勢で表示することができるようにもなっている。
【００４８】
カメラ座標Ｒｃ上に前記基準座標Ｒｂを設定するには、まず、ショルダ７とフランジ１２の当初位置を設定する。即ち、ティーチングペンダント４の操作部４ａを操作し、図３の垂直上向きの状態から下アーム８、第１の上アーム９を回転させてロボットアーム６が例えば図１３に示すようにショルダ７の前側（Ｘ１軸のプラス側）に倒れた前屈姿勢にする。なお、ロボットアーム６をショルダ７の後側に倒れた図１４の後屈姿勢にしても良い。そして、ショルダ７を適宜（任意）の位置に回転させる。
【００４９】
また、第５回転関節Ｊ５の回転軸１４の回転中心線である第５軸Ｌｃ−５を第２，３の回転関節Ｊ２，Ｊ３の回転軸１４の回転中心線である第２軸Ｌｃ−２、第３軸Ｌｃ−３と平行の状態、つまり水平の状態にし、且つ、第６回転関節Ｊ６の回転軸１４の回転中心線である第６軸Ｌｃ−６を第１回転関節Ｊ１の回転中心線である第１軸Ｌｃ−１と平行、つまり鉛直の例えば下向きの状態にする。そして、フランジ１２を適宜の回転位置に回転させる。なお、第６軸Ｌｃ−６は第１軸Ｌｃ−１と平行の鉛直上向きの状態にしても良い。
【００５０】
このようにティーチングペンダント４の操作によりショルダ７を適宜の回転位置に回転させると共に、フランジ１２を適宜の回転位置に回転させたとき、それらの回転位置をショルダ７の当初回転位置およびフランジ１２の当初回転位置と定める。このときのフランジ１２の当初回転位置は、手先の位置にかかわらず、発光ダイオード２５が３次元計測器２３によって撮影され易い位置、つまり第６軸Ｌｃ−６よりも３次元計測器２３側に位置するような回転位置とすることが好ましい。
【００５１】
以上のようにしてショルダ７とフランジ１２の当初回転位置を定めた後、第５軸Ｌｃ−５が第２軸ＬＣ−２および第３軸Ｌｃ−３と平行で、且つ第６軸Ｌｃ−６が第１軸Ｌｃ−１と平行の状態を保持したままで第１軸Ｌｃ−１を中心にしてショルダ７を互いに異なる任意の複数の回転位置Ｃ１，Ｃ２…Ｃｎに回転させる（図１０（ｂ）参照）。そして、各回転位置において、フランジ１２を、当該フランジ１２の当初回転位置から、ショルダ７が当初回転位置から現回転位置まで回転したとしたときのショルダ７の回転方向と逆の方向に、ショルダ７の当初回転位置から現回転位置までの回転角度だけ回転させる。
【００５２】
例えば、ロボット座標Ｒ０のＺ０軸のプラス側、つまり上方からロボットアーム６を見たとき、ショルダ７が当初回転位置から時計回り方向に３０°回転した位置まで回転したとすると、フランジ１２を当初回転位置から反時計回り方向に３０°だけ回転した状態にするのである。このようにショルダ７の各回転位置において、フランジ１２をショルダ７の回転方向と逆方向に同じ角度だけ回転させることにより、発光ダイオード２５は、図１０（ｂ）に示すように、ロボット座標Ｒ０を第６軸Ｌｃ−６上に平行移動させてＺ０軸のプラス側から見たとき、常に当初位置と同じ位置に存在することとなる。
【００５３】
そして、ショルダ７の各回転位置において、フランジ１２をショルダ７の回転方向と逆方向に同じ角度だけ回転させた状態で、基準座標設定用測定点としての発光ダイオード２５の位置を３次元計測器２３により計測する。この発光ダイオード２５の互いに異なる３点以上の計測位置ｄ１，ｄ２，…ｄｎは、図１０に示すように、第１軸Ｌｃ−１（Ｚ０軸）と平行の鉛直軸を中心とした円形の回転軌跡Ｅ上に存するようになる。測定制御装置２６は、３次元計測器２３によって計測された発光ダイオード２５の回転軌跡Ｅ上の複数位置ｄ１，ｄ２，…ｄｎから、最小二乗法により発光ダイオード２５の回転中心の位置Ｏｂを求めると共に、発光ダイオード２５の複数位置ｄ１，ｄ２，…ｄｎを含む一平面の法線Ｌｖを求める。そして、回転中心の位置Ｏｂを基準座標Ｒｂの原点、この原点Ｏｂを通って法線Ｌｖと平行（同じ向き）な直線、つまり前述の第１軸Ｌｃ−１と平行の鉛直軸を基準座標ＲｂのＺｂ軸（Ｚ軸）と定める。
【００５４】
また、原点Ｏｂを通ってＺｂ軸に直交する任意の直線、例えば、ショルダ７を原点位置に回転させたときの発光ダイオード２５の位置Ｐ０と原点Ｏｂとを結んだ直線を基準座標ＲｂのＸｂ軸（Ｘ軸）に定め、Ｚｂ軸とＸｂ軸のベクトルの外積から両軸に直交する直線を求めて当該直線を基準座標ＲｂのＹｂ軸（Ｙ軸）とする。なお、基準座標Ｒｂの一目盛の長さはカメラ座標Ｒｃ、従ってロボット座標Ｒ０の一目盛の長さと同じに定められている。
【００５５】
以上により、カメラ座標Ｒｃ上に基準座標Ｒｂが設定される。このようにして設定した基準座標Ｒｂにおいて、Ｚｂ軸は第１軸Ｌｃ−１従ってロボット座標Ｒ０のＺ０軸と平行で、且つ、ＸｂＹｂ平面はＸ０Ｙ０平面と平行である。なお、基準座標Ｒｂの設定時において、発光ダイオード２５の位置がＸ０Ｙ０平面上にあれば、ＸｂＹｂ平面はＸ０Ｙ０平面と一致する。
【００５６】
Ｚｂ軸はＺ０軸から所定方向に所定距離だけ離れたところにある。つまり、Ｚ０軸とＺｂ軸の位置関係は、フランジ１２が当初回転位置にあるときの第６軸ＬＣ−６と発光ダイオード２５の位置関係と同じであって、Ｚ０軸からＺｂ軸に向かう方向はフランジ１２が当初回転位置にあるときの第６軸Ｌｃ−６から発光ダイオード２５に向かう方向と同じで、Ｚ０軸からＺｂ軸までの距離は第６軸Ｌｃ−６から発光ダイオード２５までの距離と同じである。
【００５７】
そして、軸間オフセットがないとすれば、Ｘｂ軸、Ｙｂ軸はロボット座標Ｒ０のＸ０軸、Ｙ０軸と平行になる。しかし、軸間オフセットがある場合には、基準座標Ｒｂの設定時に、ショルダ７を原点位置（０°）に回転させたときの発光ダイオード２５の位置Ｐ０が軸間オフセット分だけＸ０Ｙ０方向にずれるので、Ｘｂ軸、Ｙｂ軸はＸ０軸、Ｙ０軸とは平行ではなく、図１６に示すように軸間オフセットに応じて傾くようになる。
【００５８】
基準座標Ｒｂを設定した後、図１２に示すように、第１軸Ｌｃ−１から延ばした当該第１軸Ｌｃ−１を含む任意の一平面Ａ１を想定する。この場合、任意の一平面Ａ１は、Ｘ０軸とのなす角度βで指定するものとし、手先を例えばＸ０軸とのなす角度プラス３０°の一平面上に位置させるには、ショルダ７を原点からプラス３０°回転させれば良い（軸間オフセットなしの場合）。
【００５９】
本実施形態では、図１２に示すように、第１軸Ｌｃ−１と同軸であるロボット座標Ｒ０のＺ０軸から一方向に延ばした当該Ｚ０軸を含む一平面Ａ１と、その反対方向に向けて延ばした一平面Ａ２を想定する。この一方の平面Ａ１と、他方の平面Ａ２とは面一の一つの平面Ａとなる。この実施形態では、このような平面Ａを複数設定するものとし（図１２では１つのみ図示）、そのうちの一つの平面はＸ０軸（β＝０°）を含むものとする。
【００６０】
想定した一方向に延びる一平面Ａ１上と、その反対方向に延びる一平面Ａ２上には、それぞれ任意の複数位置を移動目標位置として選択する。選択した移動目標位置を図１２に白抜きの丸印で示した。このとき、移動目標位置はロボット座標Ｒ０の座標値で指定する。これら移動目標位置には、軸間オフセットを求めるために、後述のようにしてロボットアーム６の手先を移動させる。
【００６１】
ここで、平面Ａ１，Ａ２上に選択された複数の移動目標位置はロボット座標Ｒ０の座標値で指定する。そして、第５軸Ｌｃ−５が第２軸ＬＣ−２および第３軸Ｌｃ−３と平行で、且つ第６軸Ｌｃ−６が第１軸Ｌｃ−１と平行の状態を保持した姿勢（フランジ１２の目標位置到達姿勢）で手先が移動目標位置に移動したとき、各移動目標位置において、フランジ１２を、当該フランジ１２の当初回転位置から、ショルダ７が当初回転位置から現移動目標位置まで回転したとしたときのショルダ７の回転方向と逆の方向に、ショルダ７の当初回転位置から現移動目標回転位置までの回転角度だけ回転させる（当初位置保持動作）こととする。
【００６２】
すると、そのときの発光ダイオード２５と手先（フランジ１２の先端面の中心Ｐ）の位置関係は、Ｘ０（Ｘｂ），Ｙ０（Ｙｂ）方向に関しては、基準座標Ｒｂとロボット座標Ｒ０の位置関係と同じとなる。つまり、Ｚ０軸のプラス側から見たとき、手先の位置を、ロボット座標Ｒ０の原点Ｏ０から基準座標Ｒｂの原点Ｏｂに向かう方向に、原点Ｏ０から原点Ｏｂまでの距離だけ移動させると、発光ダイオード２５の位置になるという関係にある。
【００６３】
従って、手先の移動目標位置を示すロボット座標Ｒ０でのＸ０，Ｙ０座標値と、手先が移動目標位置に移動したとき、フランジ１２が目標位置到達姿勢にあって当初保持動作した状態での発光ダイオード２５の位置を示す基準座標ＲｂのＸｂ，Ｙｂ座標値とは、同じ値となる（軸間オフセットなしの場合）。このときの発光ダイオード２５の基準座標Ｒｂ上でのＸｂＹｂ座標上の位置を、発光ダイオード２５の移動目標位置とする。そして、手先が移動目標位置に移動したとき、軸間オフセットがある場合、手先の実際の移動位置は移動目標位置から軸間オフセット量だけＸ０Ｙ０方向にずれ、この結果、発光ダイオード２５の位置も移動目標位置に応じてＸｂＹｂ方向にずれるので、この発光ダイオード２５のずれ量から軸間オフセット量を求めることができるものである。
【００６４】
さて、各平面Ａ１，Ａ２上に選択した移動目標位置にロボットアーム６の手先を移動させるに先立ち、軸間オフセット以外の各誤差（回転駆動系の撓み、サーボモータ１５の原点位置誤差、ねじれ角誤差、リンク長誤差）による手先の移動位置誤差を排除する処理を行う。
【００６５】
まず、回転駆動系の撓みとは、サーボモータ１５の回転軸から歯車減速装置１６を経て回転関節Ｊ１〜Ｊ６の回転軸１４に至るまでの伝達トルクによる捻り方向の撓みをいう。回転軸１４は軸方向に円弧状に撓みを生じないものとする。回転駆動系の撓みは、回転駆動系に作用するトルクと回転駆動系のばね定数とから求めることができる。そのうち、ばね定数はロボット２において既知であり、その値は制御装置３のＲＯＭ２０に予め記憶されている。回転駆動系に作用するトルクは、第２軸Ｌｃ−２、第３軸Ｌｃ−３、第５軸Ｌｃ−５について考える（第１軸Ｌｃ−２、第４軸Ｌｃ−３、第６軸Ｌｃ−５には、大きなトルクは作用せず、絶対位置誤差を生じさせるような撓みは生じない。）。
【００６６】
回転駆動系に作用するトルクは、図１１に示すように、回転軸１４が支えるリンクＬの質量Ｗと、回転軸１４からリンクＬの中心までの距離Ｄとの積で求めることができる。そして、前記平面Ａ上に選択した任意の複数位置にロボットアーム６の手先を移動させる場合、ショルダ７を平面ＡがＸ０軸となす角度位置に回転させ、第５軸Ｌｃ−５を第２，３軸Ｌｃ−２，Ｌｃ−３と平行に保持し、そして、下アーム８と第１の上アーム９と手首アーム１１のうちの少なくとも２つ、本実施形態では全てを回転させて手先を各移動目標位置に移動させ、各移動目標位置においてフランジ１２が目標位置到達姿勢で且つ当初位置保持動作させる。このとき、移動目標位置によってロボットアーム６は前屈姿勢或いは後屈姿勢を取る。
【００６７】
そして、各移動目標位置へ移動したときの第２の上アーム１０、下アーム８、第１の上アーム９、手首アーム１１、フランジ１２の回転角度をティーチングペンダント４から読み取る。それらの回転角度から第２軸Ｌｃ−２、第３軸Ｌｃ−３、第５軸Ｌｃ−５に作用するトルクを計算し、それらの回転駆動系の撓み（角度）αを求め（以上、図９のステップＳ２）、求めた回転駆動系の撓みαだけサーボモータ１５の回転角を加減して撓みが生じない場合と同等になるようにする。つまり、図１１において、実線で示すリンクの位置が回転駆動系の撓みなしとした場合の移動目標位置で、破線で示す位置が回転駆動系の撓みありの場合の実際の移動位置とすると、サーボモータ１５の回転角度を撓みα分だけ少なくする。これにより、回転駆動系が撓みを生じた状態で、リンクが実線の移動目標位置に到達するようになる。
【００６８】
モータ原点位置誤差は、例えば前記特許文献１〜４に開示された方法によって検出する。また、ねじれ角誤差、リンク長誤差は、例えば前記非特許文献１に開示された方向によって検出する。この非特許文献１の方法は、第１軸Ｌｃ−１〜第６軸Ｌｃ−６の各軸を中心にロボットアーム６を回転させたときの手先の回転軌跡を３次元計測器により計測し、回転中心の位置と、回転軌跡を含む一平面の法線を演算する。回転中心の位置から各リンクの長さが求められ、法線の方向から各軸の方向が求められるので、それらリンクの長さと軸方向とからリンク長誤差とねじれ角誤差を求めることができる、というものである（以上、図９のステップＳ３）。
そして、求めたモータ原点位置誤差、リンク長誤差およびねじれ角誤差によりＤＨパラメータを修正し、それらの誤差が絶対位置誤差となって現れないようにしておく（図９のステップＳ４）。
【００６９】
以上のような処理を行った後、ティーチングペンダントを操作し、各平面Ａの移動目標位置へ手先を移動させる。各平面Ａへ手先を移動させるには、まず、平面Ａ１がＸ０軸となす角度βだけショルダ７を原点位置から回転させて座標Ｒ１のＸ１軸を平面Ａ上に位置させる。これにより、ショルダ７を固定したままで、第２回転関節Ｊ１、第３回転関節Ｊ３および第５回転関節Ｊ５の回転軸１４を回転させることにより、フランジ１２が目標位置到達姿勢をとった状態で、手先を平面Ａ１およびＡ２上の移動目標位置に移動させ得るようになる。
【００７０】
次いで、フランジ１２を当初位置保持動作させ、フランジ１２を目標位置到達姿勢のままで、下アーム８、第１の上アーム９、手首アーム１１を回転させることにより、平面Ａ１，Ａ２上に任意に選択された複数の移動目標位置に手先を移動させる。このとき、ロボットアーム６は回転駆動系に作用するトルクを求めたときと同じ姿勢を取るものとし、先に移動目標位置毎に求めた回転駆動系の撓みに応じてサーボモータ１５の回転角度を加減するものである。
【００７１】
平面Ａ１，Ａ２上に任意に選択された複数の移動目標位置に手先を移動させる場合、ロボットアーム６は、図１３に示すように、第２，３，５の回転関節Ｊ２，Ｊ３，Ｊ５の回転軸１４を一方向に回転させることにより、ショルダ７から一方側に倒れて前屈した姿勢（前屈姿勢）にして一方の平面Ａ１上の移動目標位置に手先を移動させ得るようにする。
【００７２】
他方の平面Ａ２上の移動目標位置に手先を移動させる場合には、ロボットアーム６は、第２，３，５の回転関節Ｊ２，Ｊ３，Ｊ５の回転軸１４を他方向に回転させることにより、図１４に示すように、反転してショルダ７から他方側に倒れて後屈した姿勢（ロボットアーム６がショルダ７の後側に倒れた後屈姿勢）で手先を他方の平面Ａ２上の移動目標位置へ移動させる。そして、各移動目標位置に置いて、発光ダイオード（オフセット計測用測定点）２５の位置を３次元計測器２３により計測する（以上、図９のステップＳ５）。
【００７３】
なお、フランジ１２を当初位置保持動作させる時期は、Ｘ１軸を平面Ａ１上に位置させた後、手先を移動目標位置へ移動させる前に限らず、手先を各移動目標位置に移動させた時であっても良いが、各移動目標位置への移動はショルダ７を固定したままで行うので、最初の移動目標位置に移動させたときに当初位置保持動作させれば、その後に移動させた移動目標位置では当初位置保持動作は行わせなくとも良くなる。
３次元計測器２３により計測した位置はカメラ座標Ｒｃの位置であるから、これを基準座標Ｒｂの位置に変換する。この変換は図１５に示す同時変換行列により行う（図９のステップＳ６）。
【００７４】
図１６はＺ０軸のプラス側から見た手先の移動目標位置（ロボット座標Ｒ０の座標値で示される。）、発光ダイオード２５の移動目標位置（基準座標Ｒｂの座標値で示される。）、手先が移動目標位置に移動したときの実際の手先の位置、手先が移動目標位置に移動したときの発光ダイオード２５の位置（カメラ座標Ｒｃの座標値から基準座標Ｒｂの座標値に変換される。）を示す。図１６では、説明の簡単化のために、平面Ａ１，Ａ２はＸ０軸上にあり、手先の移動目標位置はＸ０軸上の位置が選択されたものとする。図１６において、二重の丸印が手先の移動目標位置、白抜きの丸印が手先の実際の移動位置、黒丸印が発光ダイオード２５の移動目標位置、×印が発光ダイオード２５の実際の移動位置を示している。
【００７５】
手先を移動目標位置に移動させる場合、回転駆動系の撓み、モータ原点誤差、リンク長誤差、ねじれ角誤差によっては移動位置に誤差が生じないように前処理したのであるから、発光ダイオード２５の移動目標位置と実際の移動位置との間の誤差（手先の移動目標位置と実際の移動位置との間の誤差と同じ）は、軸間オフセットによって生じたものと考えられる。そして、この軸間オフセットによって生ずる誤差は、移動目標位置がＸ０軸上にあるから、実際の移動位置は移動目標位置から軸間オフセットだけずれたＸ０軸と平行の一直線上に並ぶ（一直線上に正確に並ばないまでも、一直線に沿って分布する）こととなる。
【００７６】
軸間オフセット量は、手先の移動目標位置と実際の移動位置とのＸ０Ｙ０方向の距離であり、これは軸間オフセットなし（Ｘｂ軸がＸ０軸と平行）としたときの発光ダイオード２５の移動目標位置と実際の移動位置とのＸｂＹｂ方向の距離と同じである。このため、発光ダイオード２５についての複数の実際の移動位置を結んだ線分をＸｂＹｂ平面上に作成してその線分を計測依存線分Ｂとし、この計測依存線分Ｂを延長した直線Ｂｂと基準座標Ｒｂの原点Ｏｂとの最短距離（ＯｂからＢｂに下ろした垂線の長さ）を求めると、この最短距離が軸間オフセット量Ｆとなる（図９のステップＳ７）。
【００７７】
この場合、ロボットアーム６を前屈させて延長線Ａ１上の移動目標位置に移動させたときの実際の移動位置を結ぶ計測依存線分Ｂと、ロボットアーム６を後屈させて延長線Ａ２上の移動目標位置に移動させた場合の実際の移動位置を結ぶ計測依存線分Ｂとが一本の直線にならなかった（一本の直線近辺に並ばなかったことも含む）場合、今までの過程のどこかに不都合があったと考えられるので、この場合には、最初のステップＳ１からやり直すようにする。このように、２本の延長線Ａ１，Ａ２上に移動目標位置を定めることで、実施に際した不具合を検知することができるようになる。
なお、軸間オフセットはＸｂＹｂ方向に現れ、Ｚｂ方向の位置には無関係であるから、手先の移動目標位置がＸ０軸上のない場合には、Ｘｂ座標値とＹｂ座標値のみから発光ダイオード２５の移動位置をＸｂＴb平面上にプロットすれば良い。
【００７８】
さて、Ｘｂ軸を含む平面Ａ１，Ａ２以外の他の同様の平面に定めた移動目標位置ついても、上記したと同様にして軸間オフセット量Ｆを求める。この場合も、発光ダイオード２３の実際の移動位置は一直線上に並ぶ筈であるから、発光ダイオード２５の実際の移動位置（Ｘｂ座標値、Ｙｂ座標値）を結んでできる計測依存直線Ｂについても同様に原点Ｏｂとの最短距離を計測する。これら各計測依存直線Ｂと原点Ｏｂとの間の最短距離は、どの計測依存直線Ｂについても同一となる筈であるが、実際には測定誤差などの原因で必ずしも同一とはならないことが多い。このような場合には、計測依存直線Ｂと原点Ｏｂとの最短距離の平均を求めて軸間オフセットを出す。これにより、軸間オフセットをより正確に求めることができるようになる。
【００７９】
以上のようにして求めた軸間オフセットは、第２軸Ｌｃ−２、第３軸Ｌｃ−３、第５軸Ｌｃ−５において生ずる軸間オフセットの合計で、どの軸のオフセットであるかは分析できない。このため、図５に示すＨＤパラメータのうち、Ｊ２，Ｊ３のｄ欄のいずれかに軸間オフセットの値を追加し、または、Ｊ２，Ｊ３のｄ欄に分けて追加する。なお、第５軸Ｌｃ−５は、第４軸Ｌｃ−４の回転によって水平から鉛直までのいずれの角度も取り得るので、軸間オフセットをＪ５のｄ欄に配分すると、かえって絶対位置精度を低下させることになる。このため、軸間オフセットをＪ５のｄ欄には配分しない。
【００８０】
Ｊ２，Ｊ３のｄ欄のいずれか、または、Ｊ２，Ｊ３のｄ欄に分けて軸間オフセットの値を追加することによって絶対位置精度が改善されたか否かを確認するために、軸間オフセットを追加したＤＨパラメータを用いてＸｂ軸上に複数の目標位置を定め、上述したと同様にして手先を目標位置に移動させ、実際の移動位置を測定する実験を行った。
【００８１】
この結果、ＸｂＹｂ平面上での位置誤差が０．６７ｍｍから０．１７ｍｍに減少した。Ｚｂ軸方向の位置誤差も０．９ｍｍから０．０６ｍｍに減少した。このことから、ＸｂＹｂＺｂの３次元方向について、位置誤差が１．１２ｍｍから０．１８ｍｍに減少したということができる。
【００８２】
このように本実施形態によれば、軸間オフセットを量的に把握でき、この軸間オフセットによりＤＨパラメータを修正して軸間オフセットによる誤差がない、或いは誤差ができるだけ生じないようにすることができ、絶対位置精度を高めることができる。
【００８３】
（第２の実施形態）
図１７および図１８は本発明の第２の実施形態を示す。この実施形態は、基準座標Ｒｂは第１の実施形態と同様にして求めるが、軸間オフセット量の求め方を異ならせたものである。
本実施形態は、手先の可動範囲内において、任意の複数位置を手先の移動目標位置に設定して当該複数の移動目標位置に手先を移動させたとき、発光ダイオード２５の移動目標位置と実際の移動位置との差を基に軸間オフセットを求めるようにしたものである。
【００８４】
即ち、まず、ロボット座標Ｒ０上で任意の複数位置を移動目標位置として選択する。図１７に移動目標位置として選択した複数位置を二重の丸印で示した。なお、図１７は水平方向（Ｘ０Ｙ０方向、ＸｂＹｂ方向）の位置のみを示している。これらのうち、Ｘ０座標値がプラス側（Ｙ０軸の右側）の移動目標位置への手先の移動は、ロボットアーム６の前屈姿勢で行い、マイナス側（Ｙ０軸の左側）の移動目標位置への手先の移動は、ロボットアーム６の後屈姿勢で行うものとする。
そして、第１の実施形態と同様に、選択した複数の移動目標位置に手先を移動させるに先立ち、軸間オフセット以外の各誤差（回転駆動系の撓み、サーボモータ１５の原点位置誤差、ねじれ角誤差、リンク長誤差）による手先の移動位置誤差を排除する処理を行う。
【００８５】
この後、手先を、目標位置到達姿勢で、選択された複数の移動目標位置に移動させる。このときの移動は、第１の回転関節Ｊ１と、第２，３，５の回転関節Ｊ２，Ｊ３，Ｊ５のうち少なくとも２つの回転関節、本実施形態では第２，３，５の回転関節Ｊ２，Ｊ３，Ｊ５の３つの回転関節の回転軸１４を回転させることによって行う。第５軸Ｌｃ−５を水平に保持するために、第４の回転関節Ｊ４の回転軸１４は回転させない。そして、各移動目標位置において、フランジ１２を当初位置保持動作させた状態にして発光ダイオード２５の位置を３次元計測器２３により計測する。
この３次元計測器２３により計測した位置はカメラ座標Ｒｃの位置であるから、これを基準座標Ｒｂの位置に変換する。各移動目標位置での発光ダイオード２５の計測位置を図１７に×印で示した。
【００８６】
発光ダイオード２５の移動目標位置と実際の移動位置とから軸間オフセットを求めるには、発光ダイオード２５の移動目標位置の基準座標Ｒｂ上でのＸｂ座標値およびＹｂ座標値を求める必要がある。第１の実施形態でも述べたように、軸間オフセットなしとした場合、基準座標ＲｂのＸｂ軸およびＹｂ軸がＸ０軸およびＹ０軸と平行であるから、手先の移動目標位置を示すＸ０座標値とＹ０座標値は、発光ダイオード２５の移動目標位置をロボット座標Ｒｂで示したときのＸｂ座標値とＹｂ座標値と同じとなる。
【００８７】
求めた発光ダイオード２５の移動目標位置の基準座標Ｒｂ上でのＸｂ座標値およびＹｂ座標値で示される位置を図１７に黒丸で示すようにプロットし、原点Ｏｂから移動目標位置までの線分の長さを目標位置半径Ｄ０とし、発光ダイオード２５の計測位置から原点Ｏｂと移動目標位置とを通る直線に下ろした垂線の長さをオフセット誤差成分Ｍ０とする。
【００８８】
そして、図１８に示すように、横軸に目標位置半径Ｄ０を取り、縦軸にオフセット誤差成分Ｍ０を取ったグラフを作成して、このグラフに各移動目標位置について目標位置半径Ｄ０とオフセット誤差成分Ｍ０との関係をプロットしこれらプロットされた点を通る直線を誤差直線Ｇとする。この誤差直線Ｇにグラフの原点から垂線を下ろすと、この垂線の長さが第２，３，５の回転関節の合計の軸間オフセット量Ｆとなる。
【００８９】
（その他の実施形態）
本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような変更或いは拡張が可能である。
ベース５の据え付け面は必ずしも水平でなくとも良い。
測定点は発光ダイオード２５に限られない。単なるマーク、好ましくは点状のマークであっても良い。
基準座標ＲｂのＸｂ軸は必ずしもＸ０軸と平行とする必要はない。原点Ｏｂを通る任意の直線に定めれば良い。この場合、任意の直線（Ｘｂ軸）とＸ０軸とのなす角度がＸｂ軸を定めたときのＸ１軸とＸ０軸とのなす角度と発光ダイオード２５の当初位置とから求められるので、Ｘｂ軸とＸ０軸とのなす角度を基に基準座標Ｒｂとロボット座標Ｒ０との関係を求めて座標変換することによって基準座標Ｒｂ上の位置とロボット座標Ｒ０上の位置とを互いに変換することができるようにすれば良い。
【００９０】
第１の実施形態において、平面Ａ１（Ｚｂ軸から一方向に延びる平面）から平面Ａ２（Ｚｂ軸から反対方向に延びる平面）の移動目標位置へ手先を移動させる場合、移動目標位置の選択位置によっては、第２，３，５の各回転関節Ｊ２、Ｊ３，Ｊ５のうち２つの回転関節の回転軸１４を回転させれば、ロボットアーム６を反転させて手先を移動目標位置に移動させることができる。
第２の実施形態において、手先を任意に選択された複数の移動目標位置に移動させる場合、第２，３，５回転関節Ｊ２、Ｊ３，Ｊ５の全て、またはいずれか２つの回転関節の回転軸１４を回転させても良いが、移動目標位置の選択位置によっては、第１回転関節Ｊ１の他、第２，３，５の各回転関節Ｊ２、Ｊ３，Ｊ５のうち２つの回転関節の回転軸１４を回転させれば手先を移動目標位置に移動させることができる。即ち、少なくとも２つの回転関節の回転軸を回転させれば良い。
【符号の説明】
【００９１】
図面中、３は制御装置、５はベース（ベースリンク）、６はロボットアーム、７はショルダ（第１リンク）、８は下アーム（第２リンク）、９は第１の上アーム（第３リンク）、１０は第２の上アーム（第４リンク）、１１は手首アーム（第５リンク）、１２はフランジ（第６リンク）、２３は３次元計測器（３次元計測手段）、２５は発光ダイオード（測定点）を示す。
【図１】
0005672173.tif 000002
【図２】
0005672173.tif 000003
【図３】
0005672173.tif 000004
【図４】
0005672173.tif 000005
【図５】
0005672173.tif 000006
【図６】
0005672173.tif 000007
【図７】
0005672173.tif 000008
【図８】
0005672173.tif 000009
【図９】
0005672173.tif 000010
【図１０】
0005672173.tif 000011
【図１１】
0005672173.tif 000012
【図１２】
0005672173.tif 000013
【図１３】
0005672173.tif 000014
【図１４】
0005672173.tif 000015
【図１５】
0005672173.tif 000016
【図１６】
0005672173.tif 000017
【図１７】
0005672173.tif 000018
【図１８】
0005672173.tif 000019