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