(57)【要約】【課題】様々な要因に起因する様々な種類の位置決め誤差を減少させることを可能にする。【解決手段】ロボット位置決め誤差補正装置は、各リンク要素の移動前の位置に依存する位置決め誤差であるヒステリシス誤差を相殺するヒステリシス誤差補正関数をまず決定し、次にヒステリシス誤差が相殺された状態でリンク要素の位置的誤差およびロボットの据付誤差に起因する幾何学誤差を相殺するための幾何学誤差補正関数を決定する。さらに、モデル化が困難な非モデル化誤差を減少させる非モデル化誤差補正関数と運動伝達機構による角度伝達誤差を減少させる角度伝達誤差補正関数を決定する。【選択図】        図４
2005001013.tif 000002
【特許請求の範囲】
【請求項１】
互いに連結された少なくとも二つのリンク要素と、前記リンク要素を駆動する駆動装置と、前記駆動装置から各リンク要素に運動を伝達する運動伝達機構とを備えたロボットの位置決め誤差を補正するためのロボット位置決め誤差補正装置において、
各リンク要素を異なる方向から同じ目標位置に移動させることを繰り返すことにより多数の目標位置について記録された各リンク要素の移動後の測定された各位置および移動前の各位置に基づいて、各リンク要素の移動前の位置に依存する位置決め誤差であるヒステリシス誤差を相殺するためのリンク要素の位置変化に関する関数であるヒステリシス誤差補正関数を決定するヒステリシス誤差補正関数決定部と、
前記ヒステリシス誤差補正関数により補正された状態で少なくとも一つの前記リンク要素を複数の位置に移動させることにより記録された前記リンク要素の移動後の測定された各位置と各目標位置に基づいて、前記ヒステリシス誤差とは異なる誤差を減少させる第２の誤差補正関数を決定する第２の誤差補正関数決定部とを備えたことを特徴とするロボット位置決め誤差補正装置。
【請求項２】
第２の誤差補正関数決定部は、ヒステリシス誤差補正関数により補正された状態でいずれかのリンク要素の特定箇所を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、リンク要素の形状誤差と位置的誤差およびロボットの据付誤差に起因する幾何学誤差を算出し、前記幾何学誤差に基づいて、前記幾何学誤差を相殺するための関数である幾何学誤差補正関数を決定する幾何学誤差補正関数決定部であることを特徴とする請求項１記載のロボット位置決め誤差補正装置。
【請求項３】
ヒステリシス誤差補正関数および幾何学誤差補正関数により補正された状態で各リンク要素を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、各リンク要素の各位置での第１の残留誤差を算出し、前記第１の残留誤差の集合に基づいて、前記第１の残留誤差を減少させるための各リンク要素の各位置の関数である残留誤差補正関数を決定する残留誤差補正関数決定部を備えたことを特徴とする請求項２記載のロボット位置決め誤差補正装置。
【請求項４】
残留誤差補正関数を用いて各リンク要素の各位置での計算上の各残留誤差を算出し、各第１の残留誤差と計算上の各残留誤差との相違である第２の残留誤差を算出し、各第２の残留誤差に基づいて、運動伝達機構の精度誤差に起因する角度伝達誤差を相殺するための各リンク要素の各位置の関数である角度伝達誤差補正関数を決定する角度伝達誤差決定部を備えたことを特徴とする請求項３記載のロボット位置決め誤差補正装置。
【請求項５】
ヒステリシス誤差補正関数、幾何学誤差補正関数および残留誤差補正関数により補正された状態で各リンク要素を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、各リンク要素の各位置での第２の残留誤差を算出し、各第２の残留誤差に基づいて、運動伝達機構の精度誤差に起因する角度伝達誤差を相殺するための各リンク要素の各位置の関数である角度伝達誤差補正関数を決定する角度伝達誤差決定部を備えたことを特徴とする請求項３記載のロボット位置決め誤差補正装置。
【請求項６】
互いに連結された少なくとも二つのリンク要素と、前記リンク要素を駆動する駆動装置と、前記駆動装置から各リンク要素に運動を伝達する運動伝達機構とを備えたロボットの位置決め誤差を補正するためのロボット位置決め誤差補正装置において、
いずれかの前記リンク要素の特定箇所を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、リンク要素の形状誤差と位置的誤差およびロボットの据付誤差に起因する幾何学誤差を算出し、前記幾何学誤差に基づいて、前記幾何学誤差を相殺するための関数である幾何学誤差補正関数を決定する幾何学誤差補正関数決定部と、
前記幾何学誤差補正関数により補正された状態で各リンク要素を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、各リンク要素の各位置での第１の残留誤差を算出し、前記第１の残留誤差の集合に基づいて、前記第１の残留誤差を減少させるための各リンク要素の各位置の関数である残留誤差補正関数を決定する残留誤差補正関数決定部と、
前記残留誤差補正関数を用いて各リンク要素の各位置での計算上の各残留誤差を算出し、各第１の残留誤差と計算上の各残留誤差との相違である第２の残留誤差を算出し、各第２の残留誤差に基づいて、運動伝達機構の精度誤差に起因する角度伝達誤差を相殺するための各リンク要素の各位置の関数である角度伝達誤差補正関数を決定する角度伝達誤差決定部を備えたことを特徴とするロボット位置決め誤差補正装置。
【請求項７】
互いに連結された少なくとも二つのリンク要素と、前記リンク要素を駆動する駆動装置と、前記駆動装置から各リンク要素に運動を伝達する運動伝達機構とを備えたロボットの位置決め誤差を補正するためのロボット位置決め誤差補正装置において、
いずれかの前記リンク要素の特定箇所を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、リンク要素の形状誤差と位置的誤差およびロボットの据付誤差に起因する幾何学誤差を算出し、前記幾何学誤差に基づいて、前記幾何学誤差を相殺するための関数である幾何学誤差補正関数を決定する幾何学誤差補正関数決定部と、
前記幾何学誤差補正関数により補正された状態で各リンク要素を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、各リンク要素の各位置での第１の残留誤差を算出し、前記第１の残留誤差の集合に基づいて、前記第１の残留誤差を減少させるための各リンク要素の各位置の関数である残留誤差補正関数を決定する残留誤差補正関数決定部と、
前記幾何学誤差補正関数および前記残留誤差補正関数により補正された状態で各リンク要素を複数の位置に移動させることにより記録された各リンク要素の移動後の測定された各位置と各目標位置に基づいて、各リンク要素の各位置での第２の残留誤差を算出し、各第２の残留誤差に基づいて、運動伝達機構の精度誤差に起因する角度伝達誤差を相殺するための各リンク要素の各位置の関数である角度伝達誤差補正関数を決定する角度伝達誤差決定部を備えたことを特徴とするロボット位置決め誤差補正装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ロボットの実測位置に基づいて指令値の補正のために必要な情報をロボットに教示するためのロボット位置決め誤差補正装置に関する。
【０００２】
【従来の技術】
従来のロボット位置決め誤差補正方法としては、例えば特許文献１に示されるものがある。この文献に記載の方法では、静剛性解析モデルにより算出した手先位置決め誤差を幾何学誤差とたわみ誤差に分離し、幾何学誤差の補正を行った後に、たわみ誤差の補正を行う。
【０００３】
【特許文献１】
特開平４−３３００６号公報（第３頁〜第５ページ、図１４、図１６）
【０００４】
【発明が解決しようとする課題】
上記のロボット位置決め誤差補正方法では、位置決め誤差の成分として幾何学誤差とたわみ誤差が大部分である場合には有効かもしれないが、一般的な現実のロボットでは、他の誤差要因のために十分な誤差補正効果が得られない。例えば、アームを駆動するために減速歯車装置などの伝達要素を含むロボットでは、伝達要素に起因する他の様々な誤差要因が存在する。
【０００５】
この発明は、上述した課題を解決するためになされたものであり、様々な要因に起因する様々な種類の位置決め誤差を減少させることが可能なロボット位置決め誤差補正装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
この発明に係るロボット位置決め誤差補正装置は、互いに連結された少なくとも二つのリンク要素と、前記リンク要素を駆動する駆動装置と、前記駆動装置から各リンク要素に運動を伝達する運動伝達機構とを備えたロボットの位置決め誤差を補正するためのロボット位置決め誤差補正装置において、各リンク要素を異なる方向から同じ目標位置に移動させることを繰り返すことにより多数の目標位置について記録された各リンク要素の移動後の測定された各位置および移動前の各位置に基づいて、各リンク要素の移動前の位置に依存する位置決め誤差であるヒステリシス誤差を相殺するためのリンク要素の位置変化に関する関数であるヒステリシス誤差補正関数を決定するヒステリシス誤差補正関数決定部と、前記ヒステリシス誤差補正関数により補正された状態で少なくとも一つの前記リンク要素を複数の位置に移動させることにより記録された前記リンク要素の移動後の測定された各位置と各目標位置に基づいて、前記ヒステリシス誤差とは異なる誤差を減少させる第２の誤差補正関数を決定する第２の誤差補正関数決定部とを備えたものである。
【０００７】
【発明の実施の形態】
以下、図面を参照しながらこの発明に係る様々な実施の形態を説明する。
実施の形態１．
図１は、この発明の実施の形態１に係るロボット位置決め誤差補正装置が使用されるロボットの例を示す斜視図である。このロボットは、４自由度水平多関節ロボットであり、水平な平板状の作業台７に固定された柱状のロボットベース１と、回転関節軸２ａ周りに回転可能にロボットベース１に連結された水平に延びる第１のアーム（リンク要素）２と、回転関節軸３ａ周りに回転可能に第１のアーム２に連結された水平に延びる第２のアーム（リンク要素）３と、第２のアーム３に連結された垂直に延びる手先軸（リンク要素）４を備える。手先軸４は、回転関節軸３ｂに沿って上下運動可能であるとともに回転関節軸３ｂ周りに回転可能である。
【０００８】
図示しないが、アーム２，３は駆動装置である専用のモータによって駆動され、各モータから各アームには運動伝達機構としての減速歯車装置またはベルト伝達装置によって運動が伝達される。手先軸４は、上下運動用のモータとボールネジ送り機構（運動伝達機構）によって上下運動させられ、回転運動用のモータと減速歯車装置またはベルト伝達装置によって回転運動させられる。
【０００９】
これらのモータはコントローラ８から与えられた指令に従って駆動する。コントローラ８は、このロボットに付属する制御装置であり、ロボット運転用の命令に従って動作する。例えば、手先軸４を水平方向に移動させる命令を与えると、コントローラ８は手先軸４を二次元平面内で移動させるための関節角表現されたアーム２，３の目標角度位置（目標関節角）を算出し、各目標指定位置に基づいて各モータを指令し、アーム２，３を回転移動させる。このようにしてコントローラ８は手先軸４を水平方向に移動させるときには、実際にはアーム２，３の目標角度位置に応じた指令をモータに与える。
【００１０】
位置決め誤差補正に供する測定を行うために、この実施の形態は光学式平面グリッドエンコーダを使用する。光学式平面グリッドエンコーダは、反射率の異なる格子状の模様を有するグリッドプレート６と、グリッドプレート６に光を照射し、グリッドプレート６からの反射光を光学的に読み取る読取りヘッド５を備え、読取りヘッド５で読み取った反射光の強度に応じてグリッドプレート６に相対する読取りヘッド５の位置が換算可能になっている。手先軸４の下端には、作業時にはエンドエフェクタが装着されるが、測定時には読取りヘッド５が装着される。作業台７の上にはグリッドプレート６を水平に支持するプレートベース６ａが設置されている。この構成により、手先軸４がグリッドプレート６の範囲内で移動する限り、手先軸４の二次元位置を測定することができる。
【００１１】
読取りヘッド５で読み取った反射光の強度を表す読取りヘッド５の出力信号は計算機（ロボット位置決め誤差補正装置）９に供給される。この計算機９は、ロボットに付属する計算機ではなく、汎用計算機であり、ロボット位置決め誤差の測定と、誤差補正関数の算出およびロボットの動作と測定結果を連携する補正のために使用される。読取りヘッド５の出力信号に基づいて、計算機９は読取りヘッド５の位置すなわち手先軸４の位置を算出し、さらには手先軸４の位置に基づいて、関節角表現されたアーム２，３の位置を算出する。このようにして計算機９は、手先軸４の位置を測定するたびにアーム２，３の角度位置（関節角）を測定する。
【００１２】
また計算機９はコントローラ８に通信回線１０を介して接続されている。計算機９の指示に従ってコントローラ８は手先軸４を水平方向に移動させる。また、計算機９は、通信回線１０を介して、後述する各種の誤差補正関数をコントローラ８に通知することができる。誤差補正関数が供給されると、コントローラ８は、誤差補正関数を内部に記憶し、これに従って手先軸４の目標位置または各アーム２，３の目標角度位置を補正する。
【００１３】
さて、多関節ロボットにおいて生じうるエンドエフェクタの位置決め誤差は、ヒステリシス誤差、角度伝達誤差、幾何学誤差、および非モデル化誤差に分類することができる。ヒステリシス誤差は、運動伝達機構の不可逆運動に起因する各アームの移動前の位置に依存する位置決め誤差である。例えば、ヒステリシス誤差は、減速歯車装置またはタイミングベルト／タイミングプーリのバックラッシュもしくは弾性変形、または軸受部などの摩擦に起因する。ヒステリシス誤差は、同一指令位置を与えてもその位置に到達する動作の方向や移動距離に依存して停止位置が変動する現象として現れる。図２は、アームを連続的に回転移動させながらその角度位置を測定した結果の集合である移動特性曲線の概念を示すグラフである。図２に示すように、ヒステリシス誤差のために指令角度を減少させたときの実際の角度と指令角度を増加させたときの実際の角度は相違する。
【００１４】
角度伝達誤差は、運動伝達機構の精度（部品の寸法精度および部品の取付精度）の誤差に起因する位置決め誤差であり、運動伝達機構の回転要素（例えば歯車またはプーリ）の回転角度に依存する。例えば、角度伝達誤差は、減速歯車装置またはタイミングベルト／タイミングプーリの歯の寸法精度および噛み合いの誤差に起因する。図２では、実際の移動特性曲線の勾配に重なった波形の変動として角度伝達誤差が現れている。移動特性曲線の勾配の変動を微分により抽出した角度伝達誤差の概念を図３に示す。図３に示すように、角度伝達誤差は、アームの角度位置に依存した規則的変化傾向、具体的にはほぼ正弦曲線状の傾向を呈する。
【００１５】
幾何学誤差は、リンク要素の形状誤差と位置的誤差（リンク要素の長さの誤差およびこれに起因するリンク要素の回転角度誤差）およびロボットの原点の据付誤差（具体的には図１のロボットでは回転関節軸２ａの設置誤差）に起因する位置決め誤差である。幾何学誤差は、他の誤差成分に比べて大きな誤差成分である。
【００１６】
非モデル化誤差はその他の要因によるモデル化されていない誤差またはモデルでは表現するのが困難な誤差である。例えば、図１に示すリンク機構を平面２次元モデルで表現した場合、関節軸のねじれまたは偏心、アームの重力によるたわみ、および運動伝達機構内で生じる前記以外の誤差に起因する誤差が、これに相当する。非モデル化誤差は、ロボット動作範囲内でアームの個々の角度位置に依存するが、角度伝達誤差とは異なり明確な規則的変化傾向は呈しない。
【００１７】
この実施の形態では、他の誤差要因から分離しやすい誤差要因を補正するための誤差補正関数を得た後に、他の誤差要因を補正するための誤差補正関数を得ることを繰り返すロボット位置決め誤差補正方法を使用する。具体的には、計算機９は、ヒステリシス誤差を相殺するためのアーム２，３の角度位置変化に関する関数であるヒステリシス誤差補正関数を算出し、次に幾何学誤差を相殺するための関数である幾何学誤差補正関数を決定し、さらに非モデル化誤差（第１の残留誤差）を減少させるための各アームの各位置の関数である非モデル化誤差補正関数（残留誤差補正関数）を決定し、最後に角度伝達誤差を相殺するための各アームの各位置の関数である角度伝達誤差補正関数を決定する。
【００１８】
次に、図４のフローチャートに従って、この実施の形態１で実行するロボット位置決め誤差補正方法を説明する。簡略化のため図１に示す水平多関節ロボットの手先軸４の水平方向位置のみについて説明する。
まず、計算機９は、ヒステリシス誤差算出のために手先軸４の位置を測定し、（ステップＳＴ１）、ヒステリシス誤差を算出し（ステップＳＴ２）、ヒステリシス誤差補正関数を決定してコントローラ８に通知する（ステップＳＴ３）。
【００１９】
ヒステリシス誤差は、通常は目標位置に対して伝達機構のバックラッシュなどにより移動距離が不足する現象として現れる。このため、移動距離の不足分だけコントローラ８の指令値を補正することで、ヒステリシス誤差つまり停止位置の変動量が改善される。具体的に図５（ａ）ないし図５（ｄ）を参照してヒステリシス誤差補正について説明する。図５（ａ）ないし図５（ｄ）は、図１に示す水平多関節ロボットの要素を簡略化して示す平面図である。手先軸４を図５（ａ）に示す移動開始位置Ｐ１（Ｘ１，Ｙ１）から図５（ｂ）に示す目標位置Ｐ２（Ｘ２，Ｙ２）まで移動させると想定する。移動開始位置Ｐ１および目標位置Ｐ２に対応するアーム２，３の角度位置は、座標系変換計算により式（１）および式（２）のようにして求められる。
【００２０】
（θ１１，θ１２）＝ｆ（Ｘ１，Ｙ１）          （１）
（θ２１，θ２２）＝ｆ（Ｘ２，Ｙ２）          （２）
図示のように、θ１１はベース１に対する回転関節軸２ａ周りの移動開始時の第１のアーム２の角度、θ１２は第１のアーム２に対する回転関節軸３ａ周りの移動開始時の第２のアーム３の角度、θ２１はベース１に対する回転関節軸２ａ周りの目標の第１のアーム２の角度、θ２２は第１のアーム２に対する回転関節軸３ａ周りの目標の第２のアーム３の角度である。ｆは手先軸４の水平方向位置を表す直交座標系からアーム２，３の角度位置として表現される関節座標系への座標変換を行う関数である。
【００２１】
理想的なアーム２，３の位置変化つまり移動角度Δθ１、Δθ２は式（３）および式（４）のように表される。
Δθ１＝θ２１−θ１１            （３）
Δθ２＝θ２２−θ１２            （４）
【００２２】
ところが実際には、ヒステリシス誤差のために、手先軸４は図５（ａ）に示す移動開始位置Ｐ１（Ｘ１，Ｙ１）から図５（ｃ）に示す実際の移動後の位置Ｐ３（Ｘ３，Ｙ３）まで移動する。移動後のアーム２，３の角度位置は、それぞれθ３１、θ３２である。図５（ｄ）に示すように、同じ目標位置Ｐ２に他の移動開始位置Ｐ１’から手先軸４を移動させた場合にも、実際の移動後の位置Ｐ３’（Ｘ３’，Ｙ３’）は目標位置Ｐ２とは異なる。移動後のアーム２，３の角度位置は、それぞれθ３１’、θ３２’である。
【００２３】
図４のステップＳＴ１では、計算機９がコントローラ８を介して、手先軸４を異なるランダムな方向から（つまり異なる移動開始位置Ｐ１，Ｐ１’．．．から）同じ目標位置Ｐ２に移動するように指令する。計算機９は、手先軸４の移動開始位置Ｐ１，Ｐ１’．．．に対応するアーム２，３の多数の移動開始角度位置（θ１１，θ１２）および目標位置Ｐ２に対応するアーム２，３の目標角度位置（θ２１，θ２２）を算出する一方、同じ目標位置Ｐ２を目指して異なる方向から移動した後の手先軸４の各位置Ｐ３，Ｐ３’．．．を測定し、測定された手先軸４の各位置Ｐ３，Ｐ３’．．．に基づいてアーム２，３の移動後の実際の多数の角度位置（θ３１、θ３１’．．．θ３２，θ３２’．．．）を算出し、これらの各角度位置（θ３１、θ３１’．．．θ３２，θ３２’．．．）を記録する。これをランダムな多数の目標位置Ｐ２に関して繰り返すことにより、多数の目標位置Ｐ２についてアーム２，３の各目標角度位置（θ２１，θ２２）と移動後の測定された各角度位置（θ３１、θ３１’．．．θ３２，θ３２’．．．）を記録する。
【００２４】
測定された手先軸４の各位置Ｐ３，Ｐ３’．．．は、ヒステリシス誤差成分だけでなく、他の誤差成分も含んでいる。しかし、ヒステリシス誤差は停止位置だけでなく移動開始位置に依存して変化する一方、幾何学誤差、角度伝達誤差および非モデル化誤差は移動後の停止位置のみに依存して変化する。目標位置Ｐ２と移動後の停止位置Ｐ３，Ｐ３’．．．の相違は実際には微少であるので、ヒステリシス誤差以外の成分は移動後の停止位置Ｐ３，Ｐ３’．．．のどこでも同一であり無視できると考えることができる。
【００２５】
図４のステップＳＴ２では、計算機９は、多数の目標位置について記録されたアーム２，３の移動後の測定された各角度位置および目標角度位置に基づいて、ヒステリシス誤差を算出する。具体的には、同じ目標位置Ｐ２について記録された移動後の角度位置Ｐ３，Ｐ３，．．．に対応する各角度位置（θ３１、θ３２）と目標角度位置（θ２１，θ２２）の相違としてヒステリシス誤差を算出する。すなわち、ある目標位置Ｐ２についてのヒステリシス誤差は、式（５）ないし式（８）のようにして求められる。
【００２６】
Δθｈ１＝θ３１−θ２１            （５）
Δθｈ２＝θ３２−θ２２            （６）
Δθｈ１’＝θ３１’−θ２１            （７）
Δθｈ２’＝θ３２’−θ２２            （８）
ここで、Δθｈ１は、手先軸４が移動開始位置Ｐ１から目標位置Ｐ２に移動させられたときの第１のアーム２のヒステリシス誤差であり、Δθｈ２は、手先軸４が移動開始位置Ｐ１から目標位置Ｐ２に移動させられたときの第２のアーム３のヒステリシス誤差であり、Δθｈ１’は、手先軸４が移動開始位置Ｐ１’から目標位置Ｐ２に移動させられたときの第１のアーム２のヒステリシス誤差であり、Δθｈ２’は、手先軸４が移動開始位置Ｐ１’から目標位置Ｐ２に移動させられたときの第２のアーム３のヒステリシス誤差である。一つの目標位置Ｐ２に関して多数の移動開始位置Ｐ１，Ｐ１’．．．が設定されるので、一つの目標位置Ｐ２に関してさらに多くのヒステリシス誤差が算出される。このようなヒステリシス誤差の算出は、他の目標位置についても同様に行う。
【００２７】
図４のステップＳＴ３で、計算機９は、多数の目標位置について算出されたヒステリシス誤差Δθｈ１，Δθｈ２，Δθｈ１’，Δθｈ２’．．．に基づいて、手先軸４の位置のヒステリシス誤差を相殺するためヒステリシス誤差補正関数を決定する。ヒステリシス誤差補正関数は、式（９）および式（１０）のようにアーム２，３の目標角度位置と移動角度つまり位置変化の関数として表される。
【００２８】
θｈ１＝ｈ１（θ１，θ２，Δθ１，Δθ２）        （９）
θｈ２＝ｈ２（θ１，θ２，Δθ１，Δθ２）        （１０）
ここで、θｈ１は手先軸４の位置のヒステリシス誤差を相殺するために第１のアーム２に与えるべきヒステリシス誤差補正量であり、θｈ２は手先軸４の位置のヒステリシス誤差を相殺するために第２のアーム３に与えるべきヒステリシス誤差補正量である。ｈ１はアーム２についてのヒステリシス誤差補正関数、ｈ２はアーム３についてのヒステリシス誤差補正関数、θ１はアーム２の目標角度位置、θ２はアーム３の目標角度位置、Δθ１はアーム２の移動角度、Δθ２はアーム３の移動角度である。
【００２９】
個々のヒステリシス誤差Δθｈ１，Δθｈ１’．．．の反数（−Δθｈ１，−Δθｈ１’．．．）がヒステリシス誤差補正量θｈ１とほぼ一致するように、計算機９は、アーム２の多数の目標角度位置（θ２１，．．．）、アーム３の多数の目標角度位置（θ２２，．．．）、およびアーム２，３の移動角度Δθ１、Δθ２に基づいて、ヒステリシス誤差補正関数ｈ１を決定する。ヒステリシス誤差補正関数ｈ１の種類は限定されないが、例えば、あらかじめ実験または運動伝達機構の解析により、θ１，θ２，Δθ１，Δθ２を変数とする適切な関数を選定しておくとよい。ヒステリシス誤差補正関数ｈ１を決定するアルゴリズムも限定されないが、例えば、選定された関数を、得られたヒステリシス誤差Δθｈ１，Δθｈ１’．．．の数の分だけ連立し、最小自乗法を用いて関数を決定すればよい。同様にして、ヒステリシス誤差補正関数ｈ２も決定することができる。
【００３０】
水平多関節ロボットのように、停止状態において水平方向に荷重が作用しない構造では、ヒステリシス誤差補正関数ｈ１，ｈ２は、関節角に依存せず式（１１）および式（１２）のように移動角のみの関数として表現できる。
θｈ１＝ｈ１（Δθ１，Δθ２）          （１１）
θｈ２＝ｈ２（Δθ１，Δθ２）          （１２）
【００３１】
この場合のヒステリシス誤差補正関数ｈ１，ｈ２の種類も限定されないが、具体例としては、式（１３）および式（１４）を使用することができる。
【数１】
2005001013.tif 000003
【数２】
2005001013.tif 000004
【００３２】
ここで、ｋ１１〜ｋ２４は定数である。得られたヒステリシス誤差Δθｈ１，Δθｈ１’．．．の数の分だけ式（１３）を連立し、θｈ１にΔθｈ１，Δθｈ１’．．．の反数を代入し、θ１，θ２，Δθ１，Δθ２にコントローラ８の各指令値を代入して、最小自乗法により多数の連立方程式を解くことにより定数ｋ１１，ｋ１２，ｋ２１，ｋ２２が定まる。同様にして、式（１４）を連立した連立方程式から定数ｋ１３，ｋ１４，ｋ２３，ｋ２４が定まる。
【００３３】
計算機９は、以上のようにして求めたヒステリシス誤差補正関数ｈ１，ｈ２をコントローラ８に通知し、コントローラ８はこれらを内部に記憶する（図４のステップＳＴ３）。これによりコントローラ８はヒステリシス誤差を補正しながら手先軸４の任意の目標位置から各アーム２，３の目標角度位置を換算することが可能になる。つまり、コントローラ８は、アームを移動させるときに、ヒステリシス誤差補正関数ｈ１，ｈ２を用いてヒステリシス誤差補正量θｃ１およびθｃ２を算出し、目標位置Ｐ２に対応する関節角度θ２１およびθ２２にヒステリシス誤差補正量θｃ１およびθｃ２を加算することにより指令角度位置を補正でき、補正された指令角度位置に従ってアーム２，３を駆動することにより、手先軸４の水平方向位置決め誤差からヒステリシス誤差を除去することができる。このようにしてヒステリシス誤差の補正が完了する。
【００３４】
なお、この明細書で、「誤差補正関数をコントローラ８に通知する」とは、関数の種類および係数またはパラメータをすべてコントローラ８に通知することでもよいし、コントローラ８と計算機９とで共通の種類の誤差補正関数を使用することにしておけば、計算機９で求めた係数またはパラメータのみをコントローラ８に通知することでもよい。
【００３５】
ヒステリシス誤差の補正完了後、計算機９は、幾何学誤差算出のために手先軸４の位置を測定し（図４のステップＳＴ４）、幾何学誤差を算出し（ステップＳＴ５）、幾何学誤差補正関数を決定してコントローラ８に通知する（ステップＳＴ６）。
【００３６】
幾何学誤差補正について図６を参照して説明する。手先軸４の目標指令位置としてＰ０（Ｘ０，Ｙ０）を与えても、ロボットの据付誤差Ｐｂとロボット本体の幾何学誤差Ｐｅがあると、基準座標系Ｏ−ＸＹで見た手先軸４の実際の位置Ｐ（Ｘ，Ｙ）は目標指令位置Ｐ０（Ｘ０，Ｙ０）から外れてしまう。ロボットの据付誤差Ｐｂとロボット本体の幾何学誤差Ｐｅを、ここでは幾何学誤差という。
【００３７】
ロボットの据付誤差Ｐｂとは、ロボットベース１つまり回転関節軸２ａの据付誤差、即ちロボットのコントローラ８が位置指令の基準とする理想的な基準座標系Ｏ−ＸＹに対する実際のロボット座標系Ｏ’−Ｘ’Ｙ’の相対的位置ずれを意味する。ロボット座標系Ｏ’−Ｘ’Ｙ’の原点Ｏ’は基準座標系Ｏ−ＸＹ上では（Ｘｂ，Ｙｂ，θｂ）にあり、このためにロボットの据付誤差Ｐｂは、アーム２，３がロボット動作範囲内でどの回転位置にあっても一定の誤差ベクトルとして手先軸４の位置決め精度に影響する。ロボットの据付誤差Ｐｂがある場合に、コントローラ８が目標指令位置Ｐ０に手先軸４を位置決めしようとしても、実際にはモータはロボット座標系Ｏ’−Ｘ’Ｙ’で働くので、コントローラ８はロボット座標系Ｏ’−Ｘ’Ｙ’で目標指令位置Ｐ０に従ってモータを駆動することになる。
【００３８】
ロボット本体の幾何学誤差Ｐｅとは、リンク要素の形状誤差と位置的誤差（アームの長さの誤差およびアームの回転角度誤差）に起因して手先軸４に発生する位置決め誤差を意味する。ロボット本体の幾何学誤差Ｐｅは、アーム２，３の長さと角度位置に依存して変化し、ロボット座標系Ｏ’−Ｘ’Ｙ’の中で表現される。ロボット本体の幾何学誤差Ｐｅがあるために、ロボット座標系Ｏ’−Ｘ’Ｙ’で目標指令位置Ｐ０（Ｘ０，Ｙ０）に従ってモータを駆動しても、ロボット座標系Ｏ’−Ｘ’Ｙ’で手先軸４の位置はＰｒ（Ｘｒ，Ｙｒ）になり、ＰｂとＰｒの結果として基準座標系Ｏ−ＸＹでの手先軸４の位置はＰ（Ｘ，Ｙ）になる。
【００３９】
現実にアーム２，３を制御できるロボット座標系Ｏ’−Ｘ’Ｙ’において、目標指令位置Ｐ０（Ｘ０，Ｙ０）に対応した手先軸４の実際の位置がＰｒ（Ｘｒ，Ｙｒ）であることは、式（１５）で表現できる。
【００４０】
Ｐｒ＝ｇ（Ｐ０，ｖ＋ｅ）            （１５）
ここで、ｇはロボット座標系Ｏ’−Ｘ’Ｙ’上で目標指令位置Ｐ０から実際の位置Ｐｒ（Ｘｒ，Ｙｒ）を算出することができる、ロボット本体の幾何学的関係を表した関数である。ｖはリンク要素の理想的な寸法および目標角度、すなわち理想幾何学パラメータを表し、ロボット座標系Ｏ’−Ｘ’Ｙ’上のモデルを規定するパラメータの並びすなわちベクトルで表現できる。ｅはアームの長さの誤差およびアームの回転角度誤差、すなわち前記の幾何学誤差パラメータを表し、ロボット座標系Ｏ’−Ｘ’Ｙ’上のモデルを規定するパラメータのベクトルで表現でき、ロボット本体の幾何学誤差Ｐｅの原因になる。
【００４１】
式（１５）をＸ’方向成分とＹ’方向成分について表現すると、式（１６）および式（１７）のようになる。
Ｘｒ＝ｇｘ（Ｘ０，Ｙ０，ｖ＋ｅ）            （１６）
Ｙｒ＝ｇｙ（Ｘ０，Ｙ０，ｖ＋ｅ）            （１７）
【００４２】
幾何学誤差のない、即ちロボットの据付誤差Ｐｂとロボット本体の幾何学誤差Ｐｅのない理想的なロボットに目標指令位置Ｐ０（Ｘ０，Ｙ０）を与えた時、手先軸４は目標通りの位置Ｐ０（Ｘ０，Ｙ０）に位置決めされる。この関係は式（１５）の特殊ケースであり、式（１８）のように表現することができる。
Ｐｒ＝Ｐ０＝ｇ（Ｐ０，  ｖ）            （１８）
【００４３】
図７を参照しながら、理想幾何学パラメータｖおよび幾何学誤差パラメータｅを説明する。図７は図１に示す水平多関節ロボットの要素を簡略化して示す平面図である。図中のＬ１は第１のアーム２の設計上の規定の長さ、ｄＬ１はアーム２の長さの誤差、Ｌ２は第２のアーム３の設計上の規定の長さ、ｄＬ２はアーム３の長さの誤差、θ１は第１のアーム２の指令された回転角度位置（関節角度）、ｄＬθはアーム２の角度位置の誤差（例えば原点Ｏ’の位置ずれに起因する）、θ２は第２のアーム３の指令された回転角度位置（関節角度）、ｄＬθはアーム２の角度位置の誤差（例えば原点Ｏ’の位置ずれと回転関節軸３ａの位置ずれに起因する）である。
【００４４】
理想幾何学パラメータｖは式（１９）のようにベクトルとして表現され、幾何学誤差パラメータｅは式（２０）のようにベクトルとして表現される。
ｖ＝（Ｌ１，Ｌ２，θ１，θ２）              （１９）
ｅ＝（ｄＬ１，ｄＬ２，ｄθ１，ｄθ２）      （２０）
幾何学誤差パラメータｅのうち、角度位置の誤差ｄθ１，ｄθ２は、アーム２，３の角度位置に依存して変化する。
【００４５】
ロボット本体の幾何学的関係を表す関数ｇは、理想幾何学パラメータｖと幾何学誤差パラメータｅを用いて一意に表現される。
【００４６】
また、リンク要素の機械的な誤差に起因するロボット本体の幾何学誤差Ｐｅに加え、据付誤差Ｐｂがあると、基準座標系Ｏ−ＸＹ上の手先軸４の位置Ｐ（Ｘ，Ｙ）は式（２１）で表される。
Ｐ＝Ｐｂ・Ｐｒ              （２１）
【００４７】
ロボットの据付誤差Ｐｂ（Ｘｂ，Ｙｂ，θｂ）、およびロボット座標系Ｏ’−Ｘ’Ｙ’上の手先軸４の実際の位置Ｐｒ（Ｘｒ，Ｙｒ）は、３×３行列による同次変換形式で式（２２）および式（２３）のように表現される。
【数３】
2005001013.tif 000005
【数４】
2005001013.tif 000006
【００４８】
式（２２）の第１行および第２行の第１列および第２列の行列成分は、ロボットの据付誤差Ｐｂの回転誤差成分を示し、第１行および第２行の第３列は、ロボットの据付誤差Ｐｂの並進誤差成分を示す。式（２３）では、座標系の回転を考慮しないので、回転誤差成分は２×２の単位行列になる。式（２３）の第１行および第２行の第３列は、ロボット座標系Ｏ’−Ｘ’Ｙ’上の手先軸４の実際の位置Ｐｒの並進誤差成分（Ｘｒ，Ｙｒ）を示す。
【００４９】
式（２１）〜式（２３）に従って、基準座標系Ｏ−ＸＹ上の手先軸４の位置Ｐ（Ｘ，Ｙ）は、同次変換形式で式（２４）のように表現される。
【数５】
2005001013.tif 000007
【００５０】
基準座標系Ｏ−ＸＹ上の手先軸４の位置Ｐの並進誤差成分は、Ｘ，Ｙであるので、式（２４）の第１行および第２行の第３列から、Ｘ，Ｙは式（２５）および式（２６）のように表現される。
2005001013.tif 000008
【００５１】
式（２５）および式（２６）から明らかなように、基準座標系Ｏ−ＸＹ上の手先軸４の実測位置Ｐ（Ｘ，Ｙ）は、ロボットの据付誤差Ｐｂ（Ｘｂ，Ｙｂ，θｂ）と、目標指令位置Ｐ０および幾何学誤差パラメータｅ、すなわちｄＬ１，ｄＬ２，ｄθ１，ｄθ２に対して対応関係を持つ。
【００５２】
図４のステップＳＴ４では、計算機９は、手先軸４の多数のランダムな目標位置Ｐ０（Ｘ０，Ｙ０）をコントローラ８に指示し、コントローラ８がヒステリシス誤差補正関数により補正しながら手先軸４を多数のランダムな目標位置Ｐ０（Ｘ０，Ｙ０）に移動するように指令する。一方、計算機９は、各目標位置について移動後の手先軸４の実測位置Ｐ（Ｘ，Ｙ）を測定する。このようにして、多数の目標位置Ｐ０について、手先軸４の各目標位置Ｐ０（Ｘ０，Ｙ０）と測定された位置Ｐ（Ｘ，Ｙ）を記録する。
【００５３】
次に計算機９は、手先軸４の測定された各位置と手先軸４の各目標位置に基づいて、幾何学誤差を算出する（図４のステップＳＴ５）。具体的には、これらの多数の目標位置Ｐ０（Ｘ０，Ｙ０）、基準座標系Ｏ−ＸＹ上の多数の実測位置Ｐ（Ｘ，Ｙ）および理想幾何学パラメータｖ（＝Ｌ１，Ｌ２，θ１，θ２）を式（２３）および式（２４）に代入し、最小自乗法を使用することにより、ロボットの据付誤差Ｐｂ（Ｘｂ，Ｙｂ，θｂ）および幾何学誤差パラメータｅ（＝ｄＬ１，ｄＬ２，ｄθ１，ｄθ２）を算出する。
【００５４】
このようにしてロボットの据付誤差Ｐｂと幾何学誤差パラメータｅが分かれば、幾何学誤差を相殺するために目標位置指令を補正する方式を定めることができる。前述の通り、ロボット座標系Ｏ’−Ｘ’Ｙ’で目標指令位置Ｐ０（Ｘ０，Ｙ０）に従ってモータを駆動しても、ロボット座標系Ｏ’−Ｘ’Ｙ’で手先軸４の位置はＰｒ（Ｘｒ，Ｙｒ）になり、ＰｂとＰｒの結果として基準座標系Ｏ−ＸＹでの手先軸４の位置はＰ（Ｘ，Ｙ）になる。これを別の観点からいえば、ロボット座標系Ｏ’−Ｘ’Ｙ’で手先軸４の位置が図６のＰｒｃであれば、ＰｂとＰｒｃの結果として基準座標系Ｏ−ＸＹでの手先軸４の位置は目標位置Ｐ０（Ｘ０，Ｙ０）になる。つまり、基準座標系Ｏ−ＸＹで目標位置Ｐ０に手先軸４を移動させるべきときには、手先軸４をロボット座標系Ｏ’−Ｘ’Ｙ’で位置Ｐｒｃに実際に移動させればよい。ロボット座標系Ｏ’−Ｘ’Ｙ’において目標指令位置Ｐ０（Ｘ０，Ｙ０）に対応した手先軸４の実際の位置がＰｒ（Ｘｒ，Ｙｒ）であることは、一般式（１５）で表現できるので、一般式（１５）のロボット座標系Ｏ’−Ｘ’Ｙ’上の実際の手先軸４の位置ＰｒをＰｒｃで置き換え、モータに指令するための目標指令位置Ｐ０をＰｃで置き換えると式（２７）が得られる。
Ｐｒｃ＝ｇ（Ｐｃ，ｖ＋ｅ）            （２７）
【００５５】
また、式（２１）の基準座標系Ｏ−ＸＹ上の手先軸４の位置Ｐ（Ｘ，Ｙ）を真の目標位置Ｐ０で置き換え、ロボット座標系Ｏ’−Ｘ’Ｙ’上の実際の手先軸４の位置ＰｒをＰｒｃで置き換えると式（２８）が得られる。
Ｐ０＝Ｐｂ・Ｐｒｃ              （２８）
【００５６】
従って、ロボットの据付誤差Ｐｂが同定できれば、基準座標系Ｏ−ＸＹ内の手先軸４の真の目標指令位置Ｐ０からロボット座標系Ｏ’−Ｘ’Ｙ’内の目標位置Ｐｒｃを求めることができる。さらに、幾何学誤差パラメータｅが同定できれば、ロボット座標系Ｏ’−Ｘ’Ｙ’内の目標位置Ｐｒｃを実現するための目標指令位置Ｐｃを求めることができる。このように基準座標系Ｏ−ＸＹ内の手先軸４の真の目標指令位置Ｐ０からロボット座標系Ｏ’−Ｘ’Ｙ’上で有効な目標指令位置Ｐｃを得る関数を、ここでは幾何学誤差補正関数という。コントローラ８は、幾何学誤差補正関数に基づいて、真の目標指令位置Ｐ０をロボット座標系Ｏ’−Ｘ’Ｙ’上で有効な目標指令位置Ｐｃに設定し直して、モータを制御すれば、幾何学誤差を相殺することができる。
【００５７】
図４のステップＳＴ６で、計算機９は、ロボットの据付誤差Ｐｂと幾何学誤差パラメータｅに基づいて、幾何学誤差を相殺するための幾何学誤差補正関数を決定し、コントローラ８に通知し、コントローラ８はこれを内部に記憶する。これによりコントローラ８はヒステリシス誤差に加えて幾何学誤差を補正しながら手先軸４の任意の目標位置から各アーム２，３の目標角度位置を換算することが可能になる。つまり、コントローラ８は、アームを移動させるときに、幾何学誤差補正関数を用いて幾何学誤差を排除した手先軸４の真の目標指令位置を算出でき、真の目標指令位置に対応する指令角度位置に従ってアーム２，３を駆動することにより、手先軸４の水平方向位置決め誤差から幾何学誤差を除去することができる。このようにしてヒステリシス誤差の補正に加えて幾何学誤差の補正が完了する。
【００５８】
幾何学誤差の補正完了後、計算機９は、残留誤差算出のために手先軸４の位置を測定し（図４のステップＳＴ７）、残留誤差を算出し（ステップＳＴ８）、残留誤差に含まれた非モデル化誤差を相殺するための非モデル化誤差補正関数（残留誤差補正関数）を決定する（ステップＳＴ９）。
【００５９】
実際のロボットで生じるリンク要素の機械的な誤差の要因としては、前述の幾何学誤差パラメータｅとして使用したアームの長さの誤差およびアームの回転角度誤差だけでなく、回転関節軸２ａ，３ａのねじれや偏心などの幾何学的要因が全て含まれうる。理論的には、前述の幾何学誤差に関連する幾何学誤差パラメータｅに、関節軸のねじれや偏心を含めることも考えられる。しかし、一般に、誤差パラメータｅとして関節軸のねじれや偏心まで考慮しても、計算モデルが複雑となり、誤差パラメータの同定精度が向上するわけではない。そこで、この実施の形態では、適当な個数のパラメータによるモデルで表現しやすいアームの長さの誤差およびアームの回転角度誤差のみを前述の幾何学誤差パラメータｅとして考慮した。そして、幾何学誤差パラメータｅから除外した幾何学的な誤差要因による誤差は、非モデル化誤差として補正する。
【００６０】
また、この実施の形態では、非モデル化誤差には、前述の関節軸のねじれまたは偏心といった幾何学誤差に加えて、アームの重力によるたわみによる誤差のほか、例えば減速歯車装置などの運動伝達機構内で生じる明確な規則的変化傾向を呈しない伝達誤差に起因する誤差などが含まれている。ただし、重力によるたわみのようにモデルで表現することが可能な誤差要因については、非モデル化誤差から分離して取扱ってもよい。ロボットの構造強度と負荷の関係によっては、この種の誤差要因を非モデル化誤差から分離する方が好ましい場合も考えられる。
【００６１】
ステップＳＴ７では、計算機９は、手先軸４のランダムな複数の目標指令位置Ｐｃ（Ｘｃ，Ｙｃ）をコントローラ８に指示し、コントローラ８は、ヒステリシス誤差補正関数および幾何学誤差補正関数により補正しながら手先軸４をランダムな複数の目標指令位置Ｐｃ（Ｘｃ，Ｙｃ）に移動するように指令する。計算機９は、手先軸４の各目標位置Ｐｃ（Ｘｃ，Ｙｃ）に対応する各アーム２，３の各目標角度位置θ１ｃ，θ２ｃを記録する一方、各目標位置Ｐｃについて移動後の各アーム２，３の各角度位置θ１ａ，θ２ａを測定し、各角度位置θ１ａ，θ２ａを記録する。このようにして、多数の目標位置Ｐｃについて、アーム２，３の各目標角度位置θ１ｃ，θ２ｃと測定された角度位置θ１ａ，θ２ａを記録する。
【００６２】
目標指令位置Ｐｃ（Ｘｃ，Ｙｃ）をロボットに与えた時の手先軸４の水平方向実測位置がＰａ（Ｘａ，Ｙａ）であったとすると、ＰｃおよびＰａに対応する関節角度は、式（２９）および式（３０）のように表される。
（θ１ｃ，θ２ｃ）＝ｆ（Ｘｃ，Ｙｃ）          （２９）
（θ１ａ，θ２ａ）＝ｆ（Ｘａ，Ｙａ）          （３０）
【００６３】
ステップＳＴ８では、計算機９は、各アーム２，３の移動後の測定された各角度位置θ１ａ，θ２ａと各アーム２，３の各目標角度位置θ１ｃ，θ２ｃとの相違をいまだに残留している残留誤差（第１の残留誤差）θｅ１，θｅ２として算出する。各アーム２，３の関節角度に換算した残留誤差θｅ１，θｅ２は式（３１）および式（３２）のように表すことができる。
θｅ１＝θ１ａ−θ１ｃ              （３１）
θｅ２＝θ２ａ−θ２ｃ              （３２）
【００６４】
ステップＳＴ８で算出された残留誤差θｅ１，θｅ２は、非モデル化誤差と角度伝達誤差を含んでいる。前述のように、非モデル化誤差はモデルで表現するのが困難な誤差であり、ロボット動作範囲内でアームの個々の角度位置に依存するが、角度伝達誤差とは異なり明確な規則的変化傾向は呈しない。他方、角度伝達誤差は、運動伝達機構の部品の寸法精度およびそれらの部品の取付精度に起因する位置決め誤差であり、アームの角度位置に依存した規則的変化傾向を呈する。
また、一般に角度伝達誤差は非モデル化誤差よりもかなり小さい場合が多い。
【００６５】
図４のステップＳＴ９では、計算機９は、ステップＳＴ８で算出された残留誤差θｅ１，θｅ２の集合に基づいて、残留誤差θｅ１，θｅ２に含まれた非モデル化誤差θｍ１，θｍ２を相殺するための非モデル化誤差補正関数（残留誤差補正関数）を決定する。非モデル化誤差は、一般に角度伝達誤差よりもかなり大きく、角度伝達誤差よりも角度に対する変化が少ないので、この段階では、残留誤差θｅ１，θｅ２を非モデル化誤差θｍ１，θｍ２であると仮定して取り扱う。そして、非モデル化誤差を表す数式モデルは、式（３３）および式（３４）に示すようなアーム２，３の目標関節角θ１ｃ，θ２ｃに関する関数で表現する。
【００６６】
θｅ１＝θｍ１＝ｆｍ１（θ１ｃ，θ２ｃ）            （３３）
θｅ２＝θｍ２＝ｆｍ２（θ１ｃ，θ２ｃ）            （３４）
ここでｆｍ１およびｆｍ２は、それぞれアーム２，３の目標関節角θ１ｃ，θ２ｃから非モデル化誤差θｍ１，θｍ２を算出できる非モデル化誤差補正関数である。非モデル化誤差補正関数ｆｍ１およびｆｍ２は、多項式で表現することができ、多項式の次数は所望の補正効果に応じて決定すればよいが、例えば式（３５）および式（３６）のような２元３次多項式で表現することが可能である。
【００６７】
2005001013.tif 000009
【００６８】
ここで、ｋ１０１〜ｋ２１０は実測結果に基づき同定される係数である。係数ｋ１０１〜ｋ２１０を求めることにより非モデル化誤差補正関数ｆｍ１およびｆｍ２が確定する。式（３５）の係数ｋ１０１〜ｋ１１０については、多数の（ｎ個の）目標位置について得られた残留誤差θｅ１１〜θｅ１ｎの数（ｎ個）分だけ、式（３５）を連立する。これを行列の乗算で表現すると式（３７）のようになる。
【数６】
2005001013.tif 000010
【００６９】
ここでθ１ｃ１〜θ１ｃｎはｎ個の目標位置についての第１のアーム２の目標関節角、θ２ｃ１〜θ２ｃｎはｎ個の目標位置についての第２のアーム３の目標関節角である。残留誤差θｅ１１〜θｅ１ｎ（すなわち非モデル化誤差θｍ１１〜θｍ１ｎ）と記録されたアーム２の目標関節角θ１ｃ１〜θ１ｃｎおよびアーム３の目標関節角θ２ｃ１〜θ２ｃｎを式（３５）に代入すると、一般的な線形表現になる。従って、多数の連立方程式から最小自乗法により、未知の係数ｋ１０１〜ｋ１１０を求めることができる。
【００７０】
すなわち式（３７）は式（３８）の形式で表現でき、式（３９）によりｐ１の最小自乗解を求めることができる。
θｍ１＝Ｍ１・ｐ１                                        （３８）
ｐ１＝［（Ｍ１Ｔ・Ｍ１）−１・Ｍ１Ｔ］・θｍ１      （３９）
ここで、θｍ１は式（３７）の左辺のｎ行ベクトル、Ｍ１は式（３７）の右辺のｎ×１０行列、ｐ１は係数ｋ１０１〜ｋ１１０を表す式（３７）の右辺の１０行ベクトルである。このようにして非モデル化誤差補正関数ｆｍ１が決定される。同様にして式（３７）を連立して解くことにより、係数ｋ２０１〜ｋ２１０を求め、非モデル化誤差補正関数ｆｍ２を決定することができる。
【００７１】
次に、計算機９は、計算上の非モデル化誤差（計算上の各残留誤差）を算出し（図４のステップＳＴ１０）、角度伝達誤差を算出し（ステップＳＴ１１）、角度伝達誤差補正関数を決定して角度伝達誤差補正関数および非モデル化誤差補正関数をコントローラ８に通知し、コントローラ８はこれらを内部に記憶する（ステップＳＴ１２）。
【００７２】
まずステップＳＴ１０で、計算機９は、ステップＳＴ９で求めた非モデル化誤差補正関数ｆｍ１およびｆｍ２を内部に記録し、続いて非モデル化誤差補正関数ｆｍ１およびｆｍ２を用いて、アーム２の各目標関節角θ１ｃ１〜θ１ｃｎおよびアーム３の各目標関節角θ２ｃ１〜θ１ｃｎを代入して、計算上の非モデル化誤差（計算上の各残留誤差）θｍ１１’〜θｍ１ｎ’，θｍ２１’〜θｍ２ｎ’を算出する。続いて計算機９は、ステップＳＴ８で算出された各残留誤差θｅ１１’〜θｅ１ｎ’，θｅ２１’〜θｅ２ｎ’と計算上の各非モデル化誤差θｍ１１’〜θｍ１ｎ’，θｍ２１’〜θｍ２ｎ’との相違である各角度伝達誤差（第２の残留誤差）θｇ１１〜θｇ１ｎ，θｇ２１〜θｇ２ｎを算出する（ステップＳＴ１１）。一般的に角度伝達誤差θｇ１，θｇ２を表現すると、式（４０）および式（４１）のようになる。
θｇ１＝θｅ１−θｍ１’            （４０）
θｇ２＝θｅ２−θｍ２’            （４１）
【００７３】
上記の通り、非モデル化誤差補正関数ｆｍ１およびｆｍ２を決定するときには、式（３３）〜式（３６）のように、ステップＳＴ８で求めた残留誤差θｅ１，θｅ２を非モデル化誤差θｍ１，θｍ２と等しいと仮定して取り扱うが、非モデル化誤差補正関数ｆｍ１およびｆｍ２は、多項式表現および最小自乗法による解法により、角度伝達誤差の規則的変化が平均化されている。このため、非モデル化誤差補正関数ｆｍ１およびｆｍ２から算出された計算上の非モデル化誤差θｍ１’，θｍ２’も、規則的に変化する角度伝達誤差成分を含まないと考えられる。実際に、非モデル化誤差θｍ１’，θｍ２’は、ステップＳＴ８で求めた残留誤差θｅ１，θｅ２と一致せず、式（４０）および式（４１）で求められた角度伝達誤差θｇ１１〜θｇ１ｎ，θｇ２１〜θｇ２ｎは規則性を有する。
【００７４】
図４のステップＳＴ１２で計算機９は、各角度伝達誤差に基づいて、角度伝達誤差補正関数を決定する。上記の通り、角度伝達誤差は、運動伝達機構の精度（部品の寸法精度および部品の取付精度）の誤差に起因し、各アーム２，３の位置に依存して変化する規則性の高い位置決め誤差である。規則性の高い角度伝達誤差θｇ１，θｇ２は、運動伝達機構の精度の誤差に依存するため、運動伝達機構の回転要素の回転角度の関数として、式（４２）および式（４３）で表現できる。
【００７５】
θｇ１＝Ａ１・ｓｉｎ（ω・θ１０＋φ１）          （４２）
θｇ２＝Ａ２・ｓｉｎ（ω・θ２０＋φ２）          （４３）
ここで、Ａ１，Ａ２，φ１，φ２は係数であり、ωは運動伝達機構（例えば減速歯車装置）の入力軸回転周期と角度伝達誤差の発生周期の比である。比ωは式（４４）で求められる。
【００７６】
ω＝ｎ・Ｎｇ              （４４）
ここでｎは、角度伝達誤差の発生周期に対応して決まる整数であり、Ｎｇは運動伝達機構の減速比である。例えば、減速歯車装置の入力軸回転と同じ周期で発生する角度伝達誤差であればｎ＝１となりω＝Ｎｇであり、入力回転周期の半分の周期で発生する角度伝達誤差であればｎ＝２となりω＝２Ｎｇである。
【００７７】
係数Ａ１，Ａ２，φ１，φ２を求めることにより角度伝達誤差補正関数が確定する。式（４２）の係数Ａ１，φ１については、多数の（ｎ個の）目標位置について得られた角度伝達誤差θｇ１１〜θｇ１ｎの数（ｎ個）分だけ、式（４２）を連立する。式（４２）は非線形表現であるため、例えばガウス・ニュートン法により、係数Ａ１，φ１の最小自乗解を求めることができる。同様にして、式（４３）の係数Ａ２，φ２の最小自乗解を求めることができる。このようにして角度伝達誤差補正関数を決定する。
【００７８】
角度伝達誤差補正関数の決定終了後、計算機９はコントローラ８に非モデル化誤差補正関数ｆｍ１，ｆｍ２と角度伝達誤差補正関数を通知し、コントローラ８はこれらを内部に記憶する。これによりコントローラ８は、ヒステリシス誤差と幾何学誤差に加えて、非モデル化誤差と角度伝達誤差を補正しながら手先軸４の目標位置から各アーム２，３の目標角度位置を換算することが可能になる。つまり、コントローラ８は、アームを移動させるときに、非モデル化誤差補正関数ｆｍ１，ｆｍ２を用いて非モデル化誤差θｍ１，θｍ２を算出し、角度伝達誤差補正関数を用いて角度伝達誤差θｇ１，θｇ２を算出し、目標指令位置に対応するアーム２，３の関節角度の各々から非モデル化誤差θｍ１，θｍ２と角度伝達誤差θｇ１，θｇ２を減算することにより指令角度位置を補正でき、補正された指令角度位置に従ってアーム２，３を駆動することにより、手先軸４の水平方向位置決め誤差から非モデル化誤差と角度伝達誤差を除去することができる。このようにしてヒステリシス誤差と幾何学誤差の補正に加えて非モデル化誤差と角度伝達誤差の補正が完了する。
【００７９】
以上のように、この実施の形態１では、誤差要因の同定に際して極力他の誤差要因の影響が含まれないようにするため、動作の方向や移動量に対して規則性のあるヒステリシス誤差を最初に補正し、次に誤差の絶対値が大きく平面幾何学的関係としてモデル化が容易な幾何学誤差を補正し、最後に絶対値が小さくモデル化が困難な非モデル化誤差および角度伝達誤差を補正する手順を踏んでいる。このような順番で４種類の誤差要因を補正することにより、減速歯車装置のような運動伝達機構を含む構成であっても、同定したい誤差要因に他の誤差要因が含まれる影響を小さくできるため、高い精度で所望の誤差を補正することが可能となり、その結果高い位置決め精度のロボットを実現することができる。
【００８０】
この実施の形態１では、非モデル化誤差と運動伝達機構の角度伝達誤差という異なる２つの誤差を同じデータ（残留誤差θｅ１，θｅ２）を用いて同定しているが、次の理由により同定結果に与える影響は無視できる。すなわち、非モデル化誤差の方が角度伝達誤差に比べて関節角度に対する誤差変動は緩やかであり、角度伝達誤差を含んだデータから非モデル化誤差を同定しても、角度伝達誤差の周期的誤差が非モデル化誤差では平均化され、同定結果はほとんど影響を受けないからである。
【００８１】
また、この実施の形態では、位置測定に光学式平面グリッドエンコーダを使用することにより極めて高い精度の測定データが得られ、前記の誤差同定手順と組合わせることにより、簡便な構成で正確な同定結果を得ることが可能となる。特に微小な誤差要因も正確に測定し同定することが可能となる。また全ての誤差要因を単一の測定手段により実施するので、計測装置を安価に構成でき誤差補正の自動化も容易となる。
【００８２】
実施の形態２．
実施の形態１では、残留誤差θｅ１，θｅ２から非モデル化誤差補正関数ｆｍ１，ｆｍ２を求めた後、非モデル化誤差補正関数ｆｍ１，ｆｍ２を用いて算出された計算上の非モデル化誤差θｍ１’，θｍ２’を残留誤差θｅ１，θｅ２から差し引くことにより、角度伝達誤差θｇ１，θｇ２を算出する（式（４０）および式（４１））。しかし、この発明の実施の形態２として、次の手順を採用してもよい。
【００８３】
図８のフローチャートに従って、この実施の形態２で実行するロボット位置決め誤差補正方法を説明する。ここでも簡略化のため図１に示す水平多関節ロボットの手先軸４の水平方向位置のみについて説明する。まず、実施の形態１と同様に、計算機９はヒステリシス誤差補正関数、幾何学誤差補正関数および非モデル化誤差補正関数を決定する（ステップＳＴ１〜ステップＳＴ９）。
【００８４】
ただし、実施の形態１と異なり、ステップＳＴ９の後、補正関数の決定終了後、計算機９はコントローラ８に非モデル化誤差補正関数ｆｍ１，ｆｍ２を通知し、コントローラ８はこれらを内部に記憶する。これによりコントローラ８は、ヒステリシス誤差と幾何学誤差に加えて、非モデル化誤差を補正しながら手先軸４の目標位置から各アーム２，３の目標角度位置を換算することが可能になる。つまり、コントローラ８は、アームを移動させるときに、非モデル化誤差補正関数ｆｍ１，ｆｍ２を用いて非モデル化誤差θｍ１，θｍ２を算出し、目標指令位置に対応するアーム２，３の関節角度の各々から非モデル化誤差θｍ１，θｍ２を減算することにより指令角度位置を補正でき、補正された指令角度位置に従ってアーム２，３を駆動することにより、手先軸４の水平方向位置決め誤差から非モデル化誤差を除去することができる。このようにしてヒステリシス誤差と幾何学誤差の補正に加えて非モデル化誤差の補正が完了する。
【００８５】
非モデル化誤差の補正完了後、計算機９は、角度伝達誤差算出のために手先軸４の位置を測定し（ステップＳＴ１３）、角度伝達誤差（第２の残留誤差）を算出し（ステップＳＴ１４）、角度伝達誤差を相殺するための角度伝達誤差補正関数（残留誤差補正関数）を決定する（ステップＳＴ１５）。
【００８６】
ステップＳＴ１３では、ステップＳＴ７と同様に、計算機９は、手先軸４のランダムな複数の目標指令位置Ｐｃ（Ｘｃ，Ｙｃ）をコントローラ８に指示し、コントローラ８は、手先軸４をランダムな複数の目標指令位置Ｐｃ（Ｘｃ，Ｙｃ）に移動するように指令する。ただし、コントローラは、目標指令位置Ｐｃ（Ｘｃ，Ｙｃ）を、ヒステリシス誤差補正関数、幾何学誤差補正関数および非モデル化誤差補正関数により補正する。計算機９は、手先軸４の各目標位置Ｐｃ（Ｘｃ，Ｙｃ）に対応する各アーム２，３の各目標角度位置θ１ｃ，θ２ｃを算出する一方、各目標位置Ｐｃについて移動後の各アーム２，３の各角度位置θ１ａ，θ２ａを測定し、各角度位置θ１ａ，θ２ａを記録する。このようにして、多数の目標位置Ｐｃについて、アーム２，３の各目標角度位置θ１ｃ，θ２ｃと測定された角度位置θ１ａ，θ２ａを記録する。
【００８７】
ステップＳＴ１４では、計算機９は、各アーム２，３の移動後の測定された各角度位置θ１ａ，θ２ａと各アーム２，３の各目標角度位置θ１ｃ，θ２ｃとの相違をいまだに残留している第２の残留誤差として算出する。ステップＳＴ１４で算出された第２の残留誤差は、角度伝達誤差θｇ１，θｇ２である。各アーム２，３の関節角度に換算した角度伝達誤差θｇ１，θｇ２は式（４５）および式（４６）のように表すことができる。
θｇ１＝θ１ａ−θ１ｃ              （４５）
θｇ２＝θ２ａ−θ２ｃ              （４６）
【００８８】
ステップＳＴ１５では、実施の形態１のステップＳＴ１２と同様に、計算機９は、多数の目標位置について得られた各角度伝達誤差θｇ１，θｇ２に基づいて、角度伝達誤差補正関数を決定する。角度伝達誤差補正関数の決定終了後、計算機９はコントローラ８に角度伝達誤差補正関数を通知し、コントローラ８はこれを内部に記憶する。このようにしてヒステリシス誤差と幾何学誤差と非モデル化誤差の補正に加えて、角度伝達誤差の補正が完了する。
【００８９】
この実施の形態２の手順によれば、最後に補正する角度伝達誤差を残留誤差から計算上の非モデル化誤差を差引いて得るのではなく、新たな位置測定に基づいて単独で決定するため、角度伝達誤差の補正の精度を高める効果が期待できる。
【００９０】
実施の形態３．
また、平面グリッドエンコーダによる位置測定においてグリッドプレート６の領域を超える広い範囲にわたって手先軸４を移動させてその位置を測定し、その結果に基づき誤差補正を行うことも可能である。この場合は、グリッドプレート６を移動させて停止した位置で、手先軸４の位置測定を行えばよい。
【００９１】
具体的には、グリッドプレート６のロボットベース１に対する位置、即ち据付誤差Ｐｂはグリッドプレート６の各停止位置で個別に同定し、それ以外の誤差についてのパラメータ、即ちロボット本体の幾何学誤差ｅ、ヒステリシス誤差補正関数の係数、非モデル化誤差補正関数の係数、および角度伝達誤差補正関数の係数としては、グリッドプレート６の複数の停止位置での測定結果から同定された係数の平均値を用いればよい。なお、ヒステリシス誤差補正関数については、関節角に依存せず式（１１）および式（１２）のように移動角のみの関数として表現できると仮定すれば、グリッドプレート６の一つの停止位置で同定すればよい。
【００９２】
実施の形態３に係る方法によれば、平面グリッドエンコーダの有限な位置測定範囲を超える広い動作範囲わたって高精度なロボットの位置決め誤差補正を行うことが可能となる。
【００９３】
前述の実施の形態では、４自由度水平多関節ロボットの手先軸４の水平方向位置の誤差補正を行っているが、前述の実施の形態はこの発明の理解を容易にするために例示したに過ぎない。前述の実施の形態を変形および修正した方法により、垂直多関節ロボットまたはその他の多関節ロボット、さらには回転関節型に限らずボールネジ送り機構を用いた直動型のロボットのエンドエフェクタの位置決め誤差を補正することができる。
【００９４】
また、前述の実施の形態では、光学式平面グリッドエンコーダを好ましい測定手段の例として使用しているが、他の高精度の測定手段、例えば３次元位置計測装置等を使用してもよい。
【００９５】
また、前述の実施の形態では、ヒステリシス誤差補正関数から幾何学誤差補正関数、非モデル化誤差補正関数を経て、角度伝達誤差補正関数に至る順序で補正関数を決定するが、ヒステリシス誤差が無視できるロボットである場合には、幾何学誤差補正関数から非モデル化誤差補正関数を経て、角度伝達誤差補正関数に至る順序で補正関数を決定してもよい。
【００９６】
【発明の効果】
以上説明したように、本発明によれば、様々な要因に起因する様々な種類の位置決め誤差を減少させることが可能である。
【図面の簡単な説明】
【図１】この発明の実施の形態１に係るロボット位置決め誤差補正装置が使用されるロボットの例を示す斜視図である。
【図２】ロボットのアームを連続的に回転移動させながらその角度位置を測定した結果の集合である移動特性曲線を示すグラフである。
【図３】図２の移動特性曲線から抽出された角度伝達誤差の変化を示すグラフである。
【図４】実施の形態１で実行するロボット位置決め誤差補正方法を示すフローチャートである。
【図５】図１に示す水平多関節ロボットの要素を簡略化して示す平面図であり、（ａ）は移動開始位置、（ｂ）は目標位置、（ｃ）は実際の移動後の位置、（ｄ）は（ｂ）と同じ目標位置に他の移動開始位置移動させた場合の実際の移動後の位置を示す図である。
【図６】この発明の実施の形態で行う幾何学誤差補正を説明するために、図１に示す水平多関節ロボットの手先位置を示す図である。
【図７】この発明の実施の形態で使用する理想幾何学パラメータおよび幾何学誤差パラメータを説明するために、図１に示す水平多関節ロボットの要素を簡略化して示す平面図である。
【図８】実施の形態２で実行するロボット位置決め誤差補正方法を示すフローチャートである。
【符号の説明】
１  ロボットベース、２  第１のアーム（リンク要素）、２ａ  回転関節軸、３  第２のアーム（リンク要素）、３ａ  回転関節軸、３ｂ  回転関節軸、４  手先軸（リンク要素）、５  読取りヘッド、６  グリッドプレート、６ａ  プレートベース、７  作業台、８  コントローラ、９  計算機（ロボット位置決め誤差補正装置）、１０  通信回線。
【図１】
2005001013.tif 000011
【図２】
2005001013.tif 000012
【図３】
2005001013.tif 000013
【図４】
2005001013.tif 000014
【図５】
2005001013.tif 000015
【図６】
2005001013.tif 000016
【図７】
2005001013.tif 000017
【図８】
2005001013.tif 000018