"多関節型のロボットの関節角度を検出するエンコーダの出力値と該関節角度の実値との対応関係を補正するロボットの関節の原点補正方法であって、第1の姿勢のロボットのマーカーが撮影画像に写る位置にカメラを設置し、各関節用のエンコーダの出力値に基づいて、原点補正対象の関節に予め対応付けされた関節のみを動かすことにより、カメラの撮影画像上において第1の姿勢時のマーカーの位置の近傍にマーカーが写るような第2の姿勢に第1の姿勢から変更し、第1の姿勢から第2の姿勢への変更によるカメラの撮影画像上におけるマーカーの変位に基づいて、原点補正対象の関節の原点補正を行うロボットの関節の原点補正方法。原点補正対象は曲げ関節であって、曲げ関節を挟んで第1および第2のねじり関節があって、曲げ関節の関節角度が基準値のときは第1および第2のねじり関節の関節軸それぞれが同一直線上に位置し、曲げ関節用のエンコーダが基準値と所定の対応関係の出力値を出力するように曲げ関節の関節角度を変更することによってロボットを第1の姿勢とし、各関節用のエンコーダの出力値に基づいて、1曲げ関節の関節角度が第1の姿勢時と同一であり、2第1および第2のねじり関節の関節角度それぞれが第1の姿勢時から180度変更され、且つ、3残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更する請求項1に記載のロボットの関節の原点補正方法。原点補正対象はねじり関節であって、ねじり関節を挟んで第1および第2の曲げ関節があって、ねじり関節の関節角度が基準値のときは第1および第2の曲げ関節の関節軸が互いに平行に位置し、ねじり関節用のエンコーダが基準値と所定の対応関係の出力値を出力するようにねじり関節の関節角度を変更すること、且つ、ロボットの先端側の第1の曲げ関節の関節角度を、一方の方向に所定の角度変更することによってロボットを第1の姿勢とし、各関節用のエンコーダの出力値に基づいて、1ねじり関節の関節角度が第1の姿勢時と同一であり、2第1の曲げ関節の関節角度が第1の姿勢時から他方の方向に変更され、3第2の曲げ関節の関節角度が第1の姿勢時から変更され、且つ4残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更する請求項1に記載のロボットの関節の原点補正方法。原点補正対象は第1のねじり関節であって、第1のねじり関節の反先端側に別の第2のねじり関節があって、第2のねじり関節の反先端側に曲げ関節があって、マーカーが第1のねじり関節の関節軸上以外に位置し、第1のねじり関節の関節角度が基準値のときはマーカーが曲げ関節の関節軸と直交し、且つ第2のねじり関節の関節軸を含む平面上に位置し、第1のねじり関節用のエンコーダが基準値と所定の対応関係の出力値を出力するように第1のねじり関節の関節角度を変更することによってロボットを第1の姿勢とし、各関節用のエンコーダの出力値に基づいて、1第1および第2のねじり関節の関節角度の変更量の合計が180度になるように該第1および第2のねじり関節の関節角度が第1の姿勢時から変更され、2曲げ関節の関節角度が第1の姿勢時から変更され、且つ、3残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更する請求項1に記載のロボットの関節の原点補正方法。原点補正対象は関節軸が互いに平行な第1および第2の曲げ関節であって、反先端側の第2の曲げ関節のさらに反先端側に第1のねじり関節があって、第1の曲げ関節の先端側に第3の曲げ関節があって、第3の曲げ関節の先端側に第2のねじり関節があって、a各関節用のエンコーダの出力値に基づいて第1および第2のねじり関節の関節軸が同一直線上に位置するようにロボットを第1の姿勢にし、各関節用のエンコーダの出力値に基づいて、1第1および第2のねじり関節の関節角度それぞれが第1の姿勢時から180度変更され、且つ、2残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更し、b各関節用のエンコーダの出力値に基づいて第1および第2のねじり関節の関節軸が同一直線上に位置するようにロボットを第3の姿勢にし、各関節用のエンコーダの出力値に基づいて、1第1および第2のねじり関節の関節軸が同一直線上に位置するように維持し、2第1、第2、および第3の曲げ関節の関節角度それぞれが第3の姿勢時から変更され、且つ、3残りの関節の関節角度が第3の姿勢時と同一である、第4の姿勢に第3の姿勢から変更し、第1の姿勢から第2の姿勢への変更によるカメラの撮影画像上におけるマーカーの第1の変位と、第3の姿勢から第4の姿勢への変更によるカメラの撮影画像上におけるマーカーの第2の変位とに基づいて、原点補正対象の関節の原点補正を行う請求項1に記載のロボットの関節の原点補正方法。多関節型のロボットの関節角度を検出するエンコーダの出力値と該関節角度の実値との対応関係を補正するロボットの関節の原点補正システムであって、第1の姿勢のロボットのマーカーを撮影するカメラと、各関節用のエンコーダの出力値に基づいて、原点補正対象の関節に予め対応付けされた関節のみを動かすことにより、カメラの撮影画像上において第1の姿勢時のマーカーの位置の近傍にマーカーが写るような第2の姿勢に第1の姿勢のロボットを制御するロボット制御手段と、第1の姿勢から第2の姿勢への変更によるカメラの撮影画像上におけるマーカーの変位量および変位方向を算出するマーカー変位算出手段と、マーカー変位算出手段が算出したマーカーの変位量および変位方向に基づいて、原点補正対象の関節の原点補正を行う原点補正手段とを有するロボットの関節の原点補正システム。しかしながら、特許文献1に記載する原点補正方法の場合、マーカーを大きく移動させてカメラの撮影画像上に定義された複数の基準点それぞれにマーカーを位置合わせするため、カメラをロボットから大きく離す必要がある。そのため、カメラによるマーカー位置の検出精度が低いマーカーから大きく離れたカメラは、マーカーの微小な変位を捉えることが困難である。したがって、高精度に、ロボットの関節の原点補正を行うことが困難である。また、特許文献1に記載する原点補正方法は、撮影画像上において基準点にマーカーを正確に位置合わせするため、高価な高精度カメラが必要であり、また、カメラのキャリブレーションが必要である。そこで、本発明は、高精度に且つ安価に、ロボットの関節の原点補正を実行することを課題とする。上述の課題を解決するために、本発明の第1の態様によれば、多関節型のロボットの関節角度を検出するエンコーダの出力値と該関節角度の実値との対応関係を補正するロボットの関節の原点補正方法であって、第1の姿勢のロボットのマーカーが撮影画像に写る位置にカメラを設置し、各関節用のエンコーダの出力値に基づいて、原点補正対象の関節に予め対応付けされた関節のみを動かすことにより、カメラの撮影画像上において第1の姿勢時のマーカーの位置の近傍にマーカーが写るような第2の姿勢に第1の姿勢から変更し、第1の姿勢から第2の姿勢への変更によるカメラの撮影画像上におけるマーカーの変位に基づいて、原点補正対象の関節の原点補正を行う、ロボットの関節の原点補正方法が提供される。本発明の第2の態様によれば、原点補正対象は曲げ関節であって、曲げ関節を挟んで第1および第2のねじり関節があって、曲げ関節の関節角度が基準値のときは第1および第2のねじり関節の関節軸それぞれが同一直線上に位置し、曲げ関節用のエンコーダが基準値と所定の対応関係の出力値を出力するように曲げ関節の関節角度を変更することによってロボットを第1の姿勢とし、各関節用のエンコーダの出力値に基づいて、1曲げ関節の関節角度が第1の姿勢時と同一であり、2第1および第2のねじり関節の関節角度それぞれが第1の姿勢時から180度変更され、且つ、3残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更する、第1の態様に記載のロボットの関節の原点補正方法が提供される。本発明の第3の態様によれば、原点補正対象はねじり関節であって、ねじり関節を挟んで第1および第2の曲げ関節があって、ねじり関節の関節角度が基準値のときは第1および第2の曲げ関節の関節軸が互いに平行に位置し、ねじり関節用のエンコーダが基準値と所定の対応関係の出力値を出力するようにねじり関節の関節角度を変更すること、且つ、ロボットの先端側の第1の曲げ関節の関節角度を、一方の方向に所定の角度変更することによってロボットを第1の姿勢とし、各関節用のエンコーダの出力値に基づいて、1ねじり関節の関節角度が第1の姿勢時と同一であり、2第1の曲げ関節の関節角度が第1の姿勢時から他方の方向に変更され、3第2の曲げ関節の関節角度が第1の姿勢時から変更され、且つ4残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更する、第1の態様に記載のロボットの関節の原点補正方法が提供される。本発明の第4の態様によれば、原点補正対象は第1のねじり関節であって、第1のねじり関節の反先端側に別の第2のねじり関節があって、第2のねじり関節の反先端側に曲げ関節があって、マーカーが第1のねじり関節の関節軸上以外に位置し、第1のねじり関節の関節角度が基準値のときはマーカーが曲げ関節の関節軸と直交し、且つ第2のねじり関節の関節軸を含む平面上に位置し、第1のねじり関節用のエンコーダが基準値と所定の対応関係の出力値を出力するように第1のねじり関節の関節角度を変更することによってロボットを第1の姿勢とし、各関節用のエンコーダの出力値に基づいて、1第1および第2のねじり関節の関節角度の変更量の合計が180度になるように該第1および第2のねじり関節の関節角度が第1の姿勢時から変更され、2曲げ関節の関節角度が第1の姿勢時から変更され、且つ、3残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更する、第1の態様に記載のロボットの関節の原点補正方法が提供される。本発明の第5の態様によれば、原点補正対象は関節軸が互いに平行な第1および第2の曲げ関節であって、反先端側の第2の曲げ関節のさらに反先端側に第1のねじり関節があって、第1の曲げ関節の先端側に第3の曲げ関節があって、第3の曲げ関節の先端側に第2のねじり関節があって、a各関節用のエンコーダの出力値に基づいて第1および第2のねじり関節の関節軸が同一直線上に位置するようにロボットを第1の姿勢にし、各関節用のエンコーダの出力値に基づいて、1第1および第2のねじり関節の関節角度それぞれが第1の姿勢時から180度変更され、且つ、2残りの関節の関節角度が第1の姿勢時と同一である、第2の姿勢に第1の姿勢から変更し、b各関節用のエンコーダの出力値に基づいて第1および第2のねじり関節の関節軸が同一直線上に位置するようにロボットを第3の姿勢にし、各関節用のエンコーダの出力値に基づいて、1第1および第2のねじり関節の関節軸が同一直線上に位置するように維持し、2第1、第2、および第3の曲げ関節の関節角度それぞれが第3の姿勢時から変更され、且つ、3残りの関節の関節角度が第3の姿勢時と同一である、第4の姿勢に第3の姿勢から変更し、第1の姿勢から第2の姿勢への変更によるカメラの撮影画像上におけるマーカーの第1の変位と、第3の姿勢から第4の姿勢への変更によるカメラの撮影画像上におけるマーカーの第2の変位とに基づいて、原点補正対象の関節の原点補正を行う、第1の態様に記載のロボットの関節の原点補正方法が提供される。本発明の第6の態様によれば、多関節型のロボットの関節角度を検出するエンコーダの出力値と該関節角度の実値との対応関係を補正するロボットの関節の原点補正システムであって、第1の姿勢のロボットのマーカーを撮影するカメラと、各関節用のエンコーダの出力値に基づいて、原点補正対象の関節に予め対応付けされた関節のみを動かすことにより、カメラの撮影画像上において第1の姿勢時のマーカーの位置の近傍にマーカーが写るような第2の姿勢に第1の姿勢のロボットを制御するロボット制御手段と、第1の姿勢から第2の姿勢への変更によるカメラの撮影画像上におけるマーカーの変位量および変位方向を算出するマーカー変位算出手段と、マーカー変位算出手段が算出したマーカーの変位量および変位方向に基づいて、原点補正対象の関節の原点補正を行う原点補正手段とを有する、ロボットの関節の原点補正システムが提供される。本発明によれば、第1の姿勢から第2の姿勢カメラの撮影画像上において第1の姿勢時のマーカーの位置の近傍にマーカーが写るような姿勢への姿勢変更による、カメラの撮影画像上におけるマーカーの変位に基づいて、原点補正対象の関節の原点補正が行われる。マーカーの変位量が小さいので該マーカーの近くにカメラを設置することできるため、分解能の低い安価なカメラであっても、高精度に関節の原点補正を実行することができる。また、第1の姿勢から第2の姿勢への変更によるカメラの撮影画像上におけるマーカーの変位と、原点補正対象の関節用のエンコーダの出力値に所定に対応付けされた関節角度と該関節の実際の関節角度の間のずれ量との相関性を利用するため、また、原点補正対象の関節のみに原点補正を実行するため、原点補正対象以外の関節の関節角度やロボットの機械パラメータリンクの長さなどを用いて複雑な計算を行う必要がない。したがって、複雑な計算を行う必要がなく、処理能力が低い安価なコンピュータ18であっても、容易に計算することができる。その結果、高精度に且つ安価に、ロボットの関節の原点補正を実行することができる。図1は、本発明の実施の形態に係る、ロボットの関節の原点補正を実行する原点補正システムを概略的に示している。図1に示すように、原点補正システム10は、多関節型のロボット12と、ロボット12の姿勢を制御するコントローラ14と、ロボット12を撮影するカメラ16と、コントローラ14とカメラ16とに接続されたコンピュータ18とを有する。ロボット12は、複数のリンク12a~12fと、リンク間に設けられた関節12g~12lとを有する多関節型のロボットである。また、ロボット12は、その先端のフランジ12mにスプレーガンや溶接トーチなどの作業用ツールを取り付けることにより、塗装作業や溶接作業などの作業を実行する。ここでは、ロボット12の関節原点補正のための原点補正用ツール20がフランジ12mに取り付けられている。なお、関節12g、12j、12lは関節軸A1、A4、A6を備えるねじり関節であり、関節12h、12i、12kは関節軸A2、A3、A5を備える曲げ関節である。また、図1に示すロボット12では、ねじり関節12gの関節軸A1と曲げ関節12hの関節軸A2とが交差せず、また曲げ関節12iの関節軸A3とねじり関節12jの関節軸A4とが交差していないが、このようなロボット12に本発明は限定しない。すなわち、ねじり関節12gの関節軸A1と曲げ関節12hの関節軸A2とが交差し、また曲げ関節12iの関節軸A3とねじり関節12jの関節軸A4とが交差するロボットでも、本発明は実施可能である。ロボット12の先端点として、原点補正用ツール20は、先端にマーカー22を備える。マーカー22は、例えば発光ダイオードであって、後述するカメラ16によって撮影される。マーカー22はまた、フランジ12mに最も近いねじり関節12lの関節軸A6上を外れて位置するようにフランジ12mに固定されている。なお、本実施の形態においては、フランジ12mに対するマーカー22の位置は未知でもよい。すなわち本実施の形態は、マーカー22の空間上の位置を算出することなく、マーカー22を用いてロボット12の関節の原点を補正する。なお、本明細書において、位置や姿勢は、特段の記載がない限り、ロボット12のベース12nに予め定義されているベース座標系ΣBにおける位置や姿勢を言う。コントローラ14は、関節12g~12lそれぞれのエンコーダの出力値に基づいて、関節12g~12lそれぞれを駆動する複数のモータ図示せずを制御することにより、ロボット12の姿勢を制御するように構成されている。具体的には、コントローラ14は、任意の姿勢を実現する関節角度と所定の対応関係の出力値を、関節12g~12lそれぞれのエンコーダが出力するように各関節のモータを制御する。コントローラ14はまた、詳細は後述するが、外部装置であるコンピュータ18から教示データ関節12g~12lそれぞれの関節角度のデータを受け取り、受け取った教示データに対応する姿勢にロボット12を制御するように構成されている。具体的には、コントローラ14は、教示データが示す関節角度と所定の対応関係の出力値をエンコーダが出力するように、関節12g~12lを駆動するモータ図示せずを制御する。カメラ16は、例えばCCDカメラであって、ロボット12周辺の任意の位置に配置されて、原点補正用ツール20のマーカー22を撮影するためのものである。詳細は後述するが、カメラ16は、ロボット12の姿勢変更にともなうマーカー22の変位量および変位方向を検出するために使用される。また、カメラ16は、マーカー22の撮影画像をデータとしてコンピュータ18に出力するように構成されている。コンピュータ18は、カメラ16から受け取ったマーカー22の撮影画像データを画像処理することにより、撮影画像上におけるマーカー22の位置を算出するように構成されている。また、コンピュータ18は、具体的には後述するが、ロボット12が姿勢変更する前に撮影された撮影画像と姿勢変更後に撮影された撮影画像とから、ロボット12の姿勢変更にともなう撮影画像上のマーカー22の変位量および変位方向を算出するように構成されている。コンピュータ18はまた、ロボット12の教示データを作成し、作成した教示データをコントローラ14に送信するように構成されている。ここからは、具体的に、ロボット12の関節の原点補正方法について説明する。まず、その概念を説明する。本発明に係るロボット12の関節の原点補正方法では、関節12g~12l全てを同時に原点補正するのではなく、個々にまたは多くても2つ同時に原点補正を行う。原点補正とは、エンコーダの出力値に所定に対応付けされた関節角度と実際の関節角度とのずれ量すなわち、エンコーダの検出誤差量をゼロにすることである。ずれ量をゼロにするために、本発明に係るロボット12の関節の原点補正方法では、原点補正対象の関節それぞれに、予め第1および第2の姿勢を設定し、第1の姿勢から第2の姿勢に変更することによるマーカー22の変位量および変位方向を計測する。なお、本明細書で言う第2の姿勢は、具体的には後述するが、カメラ16の撮影画像上において、マーカー22の位置が、第1の姿勢時の位置の近傍に位置するような姿勢第1および第2の姿勢時のマーカー22の位置の間の距離が最小ゼロも含むになるような姿勢を言う。第2の姿勢はまた、具体的には後述するが、原点補正対象の関節に対応付けされた関節のみを動かすことにより実現される。また、マーカー22の変位量および変位方向の計測は、カメラ16によって行う。具体的には、カメラ16の撮影画像上におけるマーカー22の変位量および変位方向を、第1の姿勢時の撮影画像と第2の姿勢時の撮影画像とを画像処理することによって算出する。撮影画像上のマーカー22の変位量は、画素数で示される。以下、ロボット12の関節12h~12lそれぞれの原点補正方法について具体的に説明する。図2および図3は、図1に示す曲げ関節12kの原点補正方法を説明するための図である。また、図2および図3は、曲げ関節12k用のエンコーダ図示せずの出力値は同一であるが、曲げ関節12kの実際の関節角度が異なる状態角度Δθkずれている状態を示している。図2は正常状態を示し、図3は異常状態を示している。なお、本明細書でいう正常は、原点補正を必要としない状態、すなわちエンコーダの出力値と実際の関節角度が所定の対応関係にある状態を言う。また、異常は、原点補正を必要とする状態、すなわち、すなわちエンコーダの出力値と実際の関節角度が所定の対応関係にない状態を言う。図2Aに示すように、曲げ関節12kは、ねじり関節12jの関節軸A4とねじり関節12lの関節軸A6とが同一直線上に位置するときを原点とし、そのときの関節角度をゼロ度と設定している。なお、ゼロ度に所定に対応付けされたエンコーダの出力値はSkである。曲げ関節12kの原点補正のための第1の姿勢P1kを実現するために、曲げ関節12kのエンコーダが出力値Skを出力するように、曲げ関節12kの関節角度を調整する図2Aに示す姿勢を実現する。次に、ねじり関節12jの関節角度を図2Aに示す第1の姿勢P1k時から180度変更すると、図2Bに示すように、マーカー22は、関節軸A4A6対称の位置に移動する。続いて、ねじり関節12lの関節角度を180度変更する曲げ関節12kの原点補正のための第2の姿勢P2kを実現する。図2Cに示すように、マーカー22は、ねじり関節12jの関節角度とねじれ関節12lの関節角度とを180度変更する前の位置図2Aに示す第1の姿勢P1k時の位置と同一の位置に移動する。これに対して、図3Aに示すように、第1の姿勢P1kを実現するために、曲げ関節12kのエンコーダが出力値Skを出力するように、曲げ関節12kの関節角度を調整すると、ねじり関節12jの関節軸A4とねじり関節12lの関節軸A6とは同一直線上に位置しない。これは、エンコーダの出力値はSkであるが、曲げ関節12kの実際の関節角度がゼロ度ではなく、ゼロ度からΔθkだけずれているために起こる。次に、ねじり関節12jの関節角度を図3Aに示す第1の姿勢P1k時から180度変更する図3B。続いて、ねじり関節12lの関節角度を180度変更する第2の姿勢P2kを実現すると、図3Cに示すように、マーカー22は、ねじり関節12jの関節角度とねじれ関節12lの関節角度とを180度変更する前の位置図3Aに示す第1の姿勢P1k時の位置から変位量Dkだけ変位する。したがって、第1の姿勢P1k時および第2の姿勢P2k時にカメラ16によってマーカー22を撮影し、その撮影画像上でマーカー22が変位しなければ、エンコーダが出力値Skを出力するときは、曲げ関節12kの実際の関節角度がゼロ度であることがわかる。一方、第1の姿勢P1kから第2の姿勢P2kへの姿勢変更によって撮影画像上でマーカー22が変位した場合、エンコーダが出力値Skを出力するときは、曲げ関節12kの実際の関節角度がゼロ度以外の角度であることがわかる。また、第1の姿勢P1kから第2の姿勢P2kへの姿勢変更による撮影画像上におけるマーカー22の変位量は、実際のマーカー22の変位量Dkと対応し、実際のマーカー22の変位量Dkはずれ量Δθkに相関する。また、撮影画像上におけるマーカー22の変位方向は、ずれ量Δθkのずれ方向に対応する。したがって、撮影画像上のマーカー22の変位量および変位方向に基づいて、ずれ量Δθkとそのずれ方向とを算出することが可能である。ただし、カメラ16の撮影画像上におけるマーカー22の変位量とずれ量Δθkとは相関するものの、上述したようにカメラ16が任意の位置に配置される場合、撮影画像上におけるマーカー22の変位量からずれ量Δθkを算出することはできない。撮影画像上におけるマーカー22の変位量からずれ量Δθkを算出するためには、カメラ16の設置位置を規定し、撮影画像上におけるマーカー22の変位量および変位方向と曲げ関節12kの関節角度の変化量との対応関係例えば、関節角度の1度の増加に対する撮影画像上におけるマーカー22の変位量および変位方向を予め調べておく必要がある。なお、カメラ16が任意の位置に配置される場合、すなわちずれ量Δθkを算出することなく、ロボット12の曲げ関節12kの原点を補正する方法ずれ量Δθkをゼロにする方法についてはフローチャートを用いて後述する。また、曲げ関節12kの原点補正にあたり、ねじり関節12j,12lはその関節角度を180度変更するだけであるため、ねじり関節12j,12lそれぞれが正常であるか否かそれぞれにおいて、エンコーダの出力値と実際の関節角度とが所定の対応関係であるか否かは問題にならない。なぜなら、回転量は、エンコーダの出力値の変化量に基づいて制御されるためである。さらに、ねじり関節12jの関節角度とねじれ関節12lの関節角度とを同時に180度変更してもよい。すなわち、第1の姿勢P1kから第2の姿勢P2kに直接姿勢変更してもよい。さらにまた、曲げ関節12kの原点補正中、ねじり関節12g、曲げ関節12h、および曲げ関節12iは、固定した状態である。すなわち、第1の姿勢P1kから第2の姿勢P2kに姿勢変更する際に、ねじり関節12g、曲げ関節12h、および曲げ関節12iの関節角度を変更しない。図4および図5は、図1に示すねじり関節12jの原点補正方法を説明するための図である。また、図4および図5は、ねじり関節12j用のエンコーダ図示せずの出力値は同一であるが、ねじり関節12jの実際の関節角度が異なる状態角度Δθjずれている状態を示している。図4は正常状態を示し、図5は異常状態を示している。図4Aに示すように、ねじり関節12jは、曲げ関節12iの関節軸A3と曲げ関節12kの関節軸A5とが互いに平行になるときを原点とし、そのときの関節角度をゼロ度と設定している。なお、ゼロ度に所定に対応するエンコーダの出力値はSjである。ねじり関節12jの原点補正のための第1の姿勢P1jを実現するために、図4Aおよび図5Aに示すように、まず、ねじり関節12jのエンコーダが出力値Sjを出力するように、ねじり関節12jの関節角度を調整する。また、曲げ関節12kの関節角度を、原点ゼロ度から一方の方向正方向に予め決められた角度例えば90度変更する。次に、図4Bおよび図5Bに示すように、曲げ関節12kの関節角度を、図4Aおよび図5Aに示す第1の姿勢P1j時から他方の方向負方向に予め決められた角度例えば180度変更する。なお、図4Aと図4Bとに示す図5Aと図5Bとに示す曲げ関節12kの関節角度は、原点に対して90度、-90度であるが、すなわち絶対値は同一であるが、これに限定されるわけではない。続いて、図4Cおよび図5Cに示すように、マーカー22が第1の姿勢P1j時図4Aおよび図5Aに示す姿勢時の位置にほぼ戻るように、すなわちマーカー22の位置が第1の姿勢P1j時のマーカー22の位置との間の距離が最小になるような角度に曲げ関節12iの関節角度を変更し、ねじり関節12jの原点補正のための第2の姿勢P2jを実現する。なお、図4Cに示すようには、第1の姿勢P1j時のマーカー22の位置と第2の姿勢P2j時のマーカー22の位置は完全に一致しなくてもよい。また、マーカー22の位置が第1の姿勢P1j時のマーカー22の位置との間の距離が最小になるような第2の姿勢P2jは、カメラ16の撮影画像に基づいて実現される。具体的には、コンピュータ18からの曲げ関節12iの関節角度が異なる複数の教示データに基づいて、コントローラ14がロボット12に曲げ関節12iの関節角度が異なる複数の姿勢を実現させる。ロボット12の各姿勢についてカメラ16がマーカー22を撮影し、コンピュータ18が各姿勢について撮影画像上におけるマーカー22の位置を算出する。そして、コンピュータ18は、第1の姿勢P1j時に撮影された撮影画像上におけるマーカー22の位置との距離が最小になるような位置にマーカー22が写る撮影画像に対する姿勢を第2の姿勢P2jと特定する。ねじり関節12jのエンコーダが出力値Sjを出力するときに実際の関節角度がゼロ度であれば、図4Cに示すように、第1の姿勢P1j時のマーカー22の位置と第2の姿勢P2j時のマーカー22の位置とはX軸方向に関しては同一である。なお、このX軸方向は、曲げ関節12iの関節軸A3方向である。これに対して、エンコーダが出力値Sjを出力するときに実際の関節角度がゼロ度からΔθjだけずれている場合、図5Cに示すように、第1の姿勢P1j時のマーカー22の位置と第2の姿勢P2j時のマーカー22の位置は、X軸方向に変位量Djだけずれる。これは、曲げ関節12iの関節軸A3と曲げ関節12kの関節軸A5とが平行でないために起こる。したがって、カメラ16の視準方向がX軸方向関節軸A3方向と平行にならないように該カメラ16を配置し、第1の姿勢P1j時および第2の姿勢P2j時にカメラ16によってマーカー22を撮影し、その撮影画像上でマーカー22がX軸方向に対応する方向に変位しなければ、エンコーダが出力値Sjを出力するときは、ねじり関節12jの実際の関節角度がゼロ度であることがわかる。一方、第1の姿勢P1jから第2の姿勢P2jへの姿勢変更によって撮影画像上でマーカー22がX軸方向に対応する方向に変位した場合、エンコーダが出力値Sjを出力するときは、ねじり関節12jの実際の関節角度がゼロ度以外の角度であることがわかる。また、第1の姿勢P1jから第2の姿勢P2jへの姿勢変更による撮影画像上でのマーカー22の変位量は、実際のマーカー22のX軸方向の変位量Djと対応し、実際のマーカー22のX軸方向の変位量Djはずれ量Δθjと相関する。また、撮影画像上におけるマーカー22の変位方向は、ずれ量Δθjのずれ方向に対応する。したがって、撮影画像上のマーカー22の変位量および変位方向に基づいて、ずれ量Δθjとそのずれ方向とを算出することが可能である。ただし、カメラ16の撮影画像上におけるマーカー22の変位量とずれ量Δθjとは相関するものの、上述したようにカメラ16が任意の位置に配置される場合、撮影画像上におけるマーカー22の変位量からずれ量Δθjを算出することはできない。撮影画像上におけるマーカー22の変位量からずれ量Δθjを算出するためには、カメラ16の設置位置を規定し、撮影画像上におけるマーカー22の変位量および変位方向とねじり関節12jの関節角度の変化量との対応関係例えば、関節角度の1度の増加に対する撮影画像上におけるマーカー22の変位量および変位方向を予め調べておく必要がある。なお、カメラ16が任意の位置に配置される場合、すなわちずれ量Δθjを算出することなく、ロボット12のねじり関節12jの原点を補正する方法ずれ量Δθjをゼロにする方法についてはフローチャートを用いて後述する。また、ねじり関節12jを原点補正する前に、曲げ関節12kの原点補正を実行するのが好ましい。上述したように、ねじり関節12jの原点補正を実行するにあたり、曲げ関節12kの関節角度を使用するからである。さらに、ねじり関節12jの原点補正中、ねじり関節12g、曲げ関節12h、およびねじり関節12lは固定した状態である。すなわち、第1の姿勢P1jから第2の姿勢P2jに姿勢変更する際に、ねじり関節12g、曲げ関節12h、およびねじり関節12lの関節角度を変更しない。図6および図7は、図1に示すねじり関節12lの原点補正方法を説明するための図である。また、図6および図7は、ねじり関節12l用のエンコーダの出力値は同一であるが、ねじり関節12lの実際の関節角度が異なる状態角度Δθlずれている状態を示している。図6は正常状態を示し、図7は異常状態を示している。図6Aは、ねじり関節12lの実際の関節角度がゼロ度のときを示している。マーカー22は、図6Aに示すように、ねじり関節12lの実際の関節角度がゼロ度のとき、ねじり関節12lの関節軸A6を含んで且つ曲げ関節12iの関節軸A3と直交する平面上に位置し、且つ関節軸A6上以外に位置するように取り付けられている。なお、ゼロ度に所定に対応するエンコーダの出力値はSlである。これに対して、図7Aは、エンコーダの出力値はSlであるが、ねじり関節12lの実際の関節角度がゼロ度から角度Δθlずれた状態を示している。ねじり関節12lの原点補正のための第1の姿勢P1lを実現するために、図6Aおよび図7Aに示すように、まず、ねじり関節12lのエンコーダが出力値Slを出力するように、ねじり関節12lの関節角度を調整する。また、曲げ関節12kの関節角度を、ねじり関節12lの関節軸A6とねじり関節12jの関節軸A4とが同一直線上に位置するように調整するすなわち、曲げ関節12kの関節角度を原点ゼロ度にする。次に、図6Bおよび図7Bに示すように、ねじり関節12jとねじり関節12lの関節角度の変更量の合計が180度になるように、ねじり関節12jとねじり関節12lの関節角度を変更する。なお、図6Bおよび図7Bは、ねじり関節12jの関節角度を180度変更し、ねじり関節12lの関節角度は変更しない様子を示している。そして、図6Cおよび図7Cに示すように、マーカー22が第1の姿勢P1l時の位置にほぼ戻るように、すなわちマーカー22の位置が第1の姿勢P1l時のマーカー22の位置との間の距離が最小になるような角度に曲げ関節12iの関節角度を変更し、ねじり関節12lの原点補正のための第2の姿勢P2lを実現する。なお、図6Cに示すようには、第1の姿勢P1l時のマーカー22の位置と第2の姿勢P2l時のマーカー22の位置は完全に一致しなくてもよい。また、マーカー22の位置が第1の姿勢P1l時のマーカー22の位置との間の距離が最小になるような第2の姿勢P2lは、カメラ16の撮影画像に基づいて実現される。具体的には、コンピュータ18からの曲げ関節12iの関節角度が異なる複数の教示データに基づいて、コントローラ14がロボット12に曲げ関節12iの関節角度が異なる複数の姿勢を実現させる。ロボット12の各姿勢についてカメラ16がマーカー22を撮影し、コンピュータ18が各姿勢について撮影画像上におけるマーカー22の位置を算出する。そして、コンピュータ18は、第1の姿勢P1l時に撮影された撮影画像上におけるマーカー22の位置との距離が最小になるような位置にマーカー22が写る撮影画像に対する姿勢を第2の姿勢P2lと特定する。ねじり関節12lのエンコーダが出力値Slを出力するときに実際の関節角度がゼロ度であれば、図6Cに示すように、第1の姿勢P1l時のマーカー22の位置と第2の姿勢P2l時のマーカー22の位置とはX軸方向に関しては同一である。なお、このX軸方向は、曲げ関節12iの関節軸A3方向である。これに対して、エンコーダが出力値Slを出力するときに実際の関節角度がゼロ度から角度Δθlだけずれている場合、図7Cに示すように、第1の姿勢P1l時のマーカー22の位置と第2の姿勢P2l時のマーカー22の位置は、X軸方向に変位量Dlだけずれる。したがって、カメラ16の視準方向がX軸方向関節軸A3方向と平行にならないように該カメラ16を配置し、第1の姿勢P1l時および第2の姿勢P2l時にカメラ16によってマーカー22を撮影し、その撮影画像上でマーカー22がX軸方向に対応する方向に変位しなければ、エンコーダが出力値Slを出力するときは、ねじり関節12lの実際の関節角度がゼロ度であることがわかる。一方、第1の姿勢P1lから第2の姿勢P2lへの姿勢変更によって撮影画像上でマーカー22がX軸方向に対応する方向に変位した場合、エンコーダが出力値Slを出力するときは、ねじり関節12lの実際の関節角度がゼロ度以外の角度であることがわかる。第1の姿勢P1lから第2の姿勢P2lへの姿勢変更による撮影画像上でのマーカー22の変位量は、実際のマーカー22のX軸方向の変位量Dlと対応し、実際のマーカー22のX軸方向の変位量Dlはずれ量Δθlと相関する。また、撮影画像上におけるマーカー22の変位方向は、ずれ量Δθlのずれ方向に対応する。したがって、撮影画像上のマーカー22の変位量および変位方向に基づいて、ずれ量Δθlとそのずれ方向とを算出することが可能である。ただし、カメラ16の撮影画像上におけるマーカー22の変位量とずれ量Δθlとは相関するものの、上述したようにカメラ16が任意の位置に配置される場合、撮影画像上におけるマーカー22の変位量からずれ量Δθlを算出することはできない。撮影画像上におけるマーカー22の変位量からずれ量Δθlを算出するためには、カメラ16の設置位置を規定し、撮影画像上におけるマーカー22の変位量および変位方向とねじり関節12lの関節角度の変化量との対応関係例えば、関節角度の1度の増加に対する撮影画像上におけるマーカー22の変位量および変位方向を予め調べておく必要がある。なお、カメラ16が任意の位置に配置される場合、すなわちずれ量Δθlを算出することなく、ロボット12のねじり関節12lの原点を補正する方法ずれ量Δθlをゼロにする方法についてはフローチャートを用いて後述する。また、ねじり関節12lを原点補正する前に、曲げ関節12kの原点補正を実行するのが好ましい。上述したように、ねじり関節12lの原点補正を実行するにあたり、曲げ関節12kの関節角度をゼロ度にし、ねじり関節12lの関節軸A6とねじり関節12jの関節軸A4とを同一直線上に位置させる必要があるからである。さらに、ねじり関節12lの原点補正中、ねじり関節12g、曲げ関節12h、および曲げ関節12kは固定した状態である。すなわち、第1の姿勢P1lから第2の姿勢P2lに姿勢変更する際に、ねじり関節12g、曲げ関節12h、および曲げ関節12kの関節角度を変更しない。図8および図9は、図1に示すように、それぞれの関節軸A2と関節軸A3とが互いに平行である曲げ関節12h,12iそれぞれの原点補正方法を説明するための図である。また、図8および図9は、曲げ関節12h用のエンコーダの出力値は同一であるが曲げ関節12hの実際の関節角度が異なる状態角度Δθhずれている状態を示すとともに、曲げ関節12i用のエンコーダの出力値は同一であるが曲げ関節12iの実際の関節角度が異なる状態角度Δθiずれている状態を示している。図8は正常状態を示し、図9は異常状態を示している。曲げ関節12h,12iそれぞれの原点補正のための第1の姿勢P1h,iを実現するために、図8Aに示すように、ねじり関節12lの関節軸A6をねじり関節12gの関節軸A1上に位置合わせする関節軸A1とA6とを同一直線上に位置合わせする。なお、このとき、曲げ関節12hのエンコーダの出力値はShであって、曲げ関節12iのエンコーダの出力値はSiである。また、出力値Shと所定の対応関係の関節角度はθhであり、出力値Siと所定の対応関係の関節角度はθiである。図8Aは、曲げ関節12hのエンコーダの出力値がSh、曲げ関節12iのエンコーダの出力値がSiであって、曲げ関節12hの関節角度がθh、曲げ関節12iの関節角度がθiの場合に、ねじり関節12lの関節軸A6がねじり関節12gの関節軸A1上に位置する状態を示している。これに対して、図9Aは、曲げ関節12hのエンコーダの出力値がSh、曲げ関節12iのエンコーダの出力値がSiであるが、曲げ関節12hの関節角度がθhΔθh、曲げ関節12iの関節角度がθi-Δθiであるために、ねじり関節12lの関節軸A6がねじり関節12gの関節軸A1上に位置しない状態を示している。曲げ関節12h,12iそれぞれの原点補正のための第2の姿勢P2h,iを実現するために、図8Bおよび図9Bに示すように、ねじり関節12gの関節角度を180度変更する。同様に、ねじり関節12lの関節角度も180度変更する。図8Aに示すようにねじり関節12lの関節軸A6がねじり関節12gの関節軸A1上に位置する場合、第1の姿勢P1h,iから第2の姿勢P2h,iに姿勢変更すると、第2の姿勢P2h,i時のマーカー22の位置は、図8Bに示すように、第1の姿勢P1h,i時のマーカー22の位置と一致する。これに対して、図9Aに示すようにねじり関節12lの関節軸A6がねじり関節12gの関節軸A1上に位置しない場合、第1の姿勢P1h,iから第2の姿勢P2h,iに姿勢変更すると、第2の姿勢P2h,i時のマーカー22は、図9Bに示すように第1の姿勢P1h,i時のマーカー22の位置から変位量Dh,iだけずれる。しかしながら、変位量Dh,iに対応するカメラ16の撮影画像上におけるマーカー22の変位量および変位方向だけでは、曲げ関節12hのずれ量Δθhと曲げ関節12iのずれ量Δθiとを算出することができない。その理由は、第1の姿勢P1h,iから第2の姿勢P2h,iへの姿勢変更により、マーカー22が一方向ねじれ関節12gの関節軸A1と直交する方向にしか移動せず、そのため、求める2つのずれ量Δθh,Δθiに対して1つの変位量Dh,iしか得られないためである。この対処として、曲げ関節12h,12iの原点補正では、更なる姿勢変更を実行し、その姿勢変更によるマーカー22の変位量Dh,i’を利用する。図8Cおよび図9Cには、更なる姿勢変更を実行する前の第3の姿勢P3h,iを示している。なお、図に示すように、第3の姿勢P3h,iは、第1の姿勢P1h,iと同一であるが、第2の姿勢P2h,iであってもよい。図8Cおよび図9Cに示す第3の姿勢P3h,iから、ねじり関節12lの関節軸A6とねじり関節12gの関節軸A1とが同一直線上に位置する状態を維持するように、曲げ関節12h,12i、および12kの関節角度のみを変更する第4の姿勢P4h,iを実現する。図8Dに示すように、曲げ関節12h、12iそれぞれの実際の関節角度がエンコーダの出力値と所定の対応関係の関節角度であるときは、第4の姿勢P4h,i時のマーカー22の位置は、第3の姿勢P3h,i時のマーカー22の位置と一致する。これに対して、図9Dに示すように、曲げ関節12hの実際の関節角度がエンコーダの出力値と所定の対応関係の関節角度からΔθhずれた角度であって、曲げ関節12i実際の関節角度がエンコーダの出力値と所定の対応関係の関節角度からΔθiずれた角度である場合、第4の姿勢P4h,i時のマーカー22は、第3の姿勢P3h,i時のマーカー22の位置から変位量Dh,i’だけずれる。これにより、図9Bに示す変位量Dh,iと、図9Dに示す変位量Dh,i’とに基づいて、曲げ関節12hのずれ量Δθhと曲げ関節12iのずれ量Δθiとを算出することが可能になる。すなわち、2つのずれ量Δθh,Δθiを未知数とする連立方程式を得ることができる。第1の姿勢P1h,iから第2の姿勢P2h,iへの姿勢変更および第3の姿勢P3h,iから第4の姿勢P4h,iへの姿勢変更による撮影画像上でのマーカー22の変位量は、実際のマーカー22の変位量Dh,iおよびDh,i’と対応し、実際のマーカー22の変位量Dh,iおよびDh,i’はずれ量ΔθhおよびΔθiと相関する。また、撮影画像上におけるマーカー22の変位方向は、ずれ量ΔθhおよびΔθiのずれ方向に対応する。したがって、撮影画像上のマーカー22の変位量および変位方向に基づいて、ずれ量ΔθhおよびΔθiとそのずれ方向とを算出することが可能である。ただし、カメラ16の撮影画像上におけるマーカー22の変位量とずれ量Δθh,Δθiは相関するものの、上述したようにカメラ16が任意の位置に配置される場合、撮影画像上におけるマーカー22の変位量からずれ量Δθh,Δθiを算出することはできない。撮影画像上におけるマーカー22の変位量からずれ量Δθh,Δθiを算出するためには、カメラ16の設置位置を規定し、撮影画像上におけるマーカー22の変位量および変位方向とねじり関節12lの関節角度の変化量との対応関係例えば、関節角度の1度の増加に対する撮影画像上におけるマーカー22の変位量および変位方向を予め調べておく必要がある。なお、カメラ16が任意の位置に配置される場合、すなわちずれ量Δθh,Δθiを算出することなく、ロボット12のねじり関節12lの原点を補正する方法ずれ量Δθh,Δθiをゼロにする方法についてはフローチャートを用いて後述する。曲げ関節12h,12iの原点補正を行う前に、曲げ関節12kとねじり関節12jの原点補正を完了しておくのが好ましい。また、曲げ関節12h,12iの原点補正中、ねじり関節12jは固定した状態である。すなわち、第1の姿勢P1h,iから第2の姿勢P2h,iに姿勢変更する際に、また第3の姿勢P3h,iから第4の姿勢P4h,iに姿勢変更する際に、ねじり関節12jの関節角度を変更しない。なお、曲げ関節12hおよび12iの原点補正は、図8や図9に示すようにマーカー22が反ねじり関節12g側に向く姿勢で行われるが、マーカー22がねじり関節12gに向く姿勢でも可能である。さらに、図8や図9に示す状態からねじり関節12jと曲げ関節12kそれぞれの関節角度を90度変更させた姿勢、すなわちマーカー22が図面直交方向に向く姿勢でも、曲げ関節12hおよび12iの原点補正は可能である。ただし、この場合、第1の姿勢から第2姿勢に変更する際に、曲げ関節12kの関節角度を180度変更する必要がある。ここまでは、ロボット12の関節の原点補正方法を概念的に説明してきた。ここからは、本実施の形態に係る、具体的なロボット12の関節の原点補正方法の流れについて説明する。図10は、ねじり関節12j、曲げ関節12k、およびねじり関節12lの原点補正の流れを示している。図11は、曲げ関節12h,12iの原点補正の流れを示している。なお、図10および図11に示す原点補正は、カメラ16を任意の位置に配置する場合を想定したものである。まず、図10を参照しながら、ねじり関節12j、曲げ関節12k、およびねじり関節12lに適用される原点補正方法の流れを説明する。最初のステップS10において、コンピュータ18は、第1の姿勢に対応する教示データをロボット12のコントローラ14に送信する。コントローラ14は、コンピュータ18から送信された教示データに基づいて、ロボット12を第1の姿勢に変更するねじり関節12j、曲げ関節12k、およびねじり関節12lそれぞれの第1の姿勢についての詳細は上述参照。次にステップS12において、コンピュータ18は、第1の姿勢時のマーカー22の撮影画像をカメラ16から取得する。続いて、ステップS14において、コンピュータ18は、第2の姿勢に対応する教示データをロボット12のコントローラ14に送信する。コントローラ14は、コンピュータ18から送信された教示データに基づいて、ロボット12を第2の姿勢に変更するねじり関節12j、曲げ関節12k、およびねじり関節12lそれぞれの第2の姿勢についての詳細は上述および図2~7参照。ステップS16において、コンピュータ18は、第2の姿勢時のマーカー22の撮影画像をカメラ16から取得する。ステップS18において、コンピュータ18は、ステップS12とステップS16で取得した2つの撮影画像に基づいて、第1の姿勢から第2の姿勢への姿勢変更による、撮影画像上におけるマーカー22の変位量および変位方向を算出する。ステップS20において、コンピュータ18は、ステップ18で算出した、撮影画像上におけるマーカー22の変位量が、所定の画素数例えば5画素に比べて小さいか否かを判定する。すなわち、関節の原点補正を行う必要があるか否かを判定する。変位量が所定の画素数に比べて小さい場合、原点補正を行う必要がないので、コンピュータ18は原点補正を終了する。一方、変位量が所定の画素数に比べて大きい場合、原点補正を行う必要があるため、ステップS22において、コンピュータ18は、ステップS18で算出したマーカー22の変位量および変位方向に基づいて、ずれ量すなわち、エンコーダの検出誤差量を減少させるための関節角度の補正量を算出する。この補正量は、記憶装置図示せずに記憶されている、エンコーダの出力値と関節角度の実値との対応関係を示すデータ対応関係データにおける、各エンコーダの出力値に対応する関節角度の値を補正する量である。例えば、ステップS18で算出した変位量が大きいほど大きい補正量をコンピュータ18は算出する。また、変位方向に基づいて、コンピュータ18は、補正量の正負プラスマイナスを決定する。なお、代わりとして、補正量は、一定の値例えば、0.05度であってもよい。ステップS24において、コンピュータ18は、コントローラ14に対して、ステップS22で算出した補正量に基づく関節の原点補正命令エンコーダの原点オフセット指令を出力する。コントローラ14は、コンピュータ18からの原点補正命令に従い、記憶装置に記憶されている、対応関係データを、ずれ量がゼロに近づくように補正する。そして、ステップS10に戻る。図10に示す原点補正の流れによれば、第1の姿勢から第2の姿勢への姿勢変更による撮影画像上におけるマーカー22の変位量が所定の画素数に比べて小さくなると、原点補正は完了する。次に、図11を参照しながら、曲げ関節12hおよび曲げ関節12iの原点補正の流れを説明する。最初のステップS110において、コンピュータ18は、第1の姿勢に対応する教示データをロボット12のコントローラ14に送信する。コントローラ14は、コンピュータ18から送信された教示データに基づいて、ロボット12を第1の姿勢に変更する曲げ関節12hおよび曲げ関節12iそれぞれの第1の姿勢についての詳細は上述および図8~9参照。次に、ステップS112において、コンピュータ18は、第1の姿勢時のマーカー22の撮影画像をカメラ16から取得する。続いて、ステップS114において、コンピュータ18は、第2の姿勢に対応する教示データをロボット12のコントローラ14に送信する。コントローラ14は、コンピュータ18から送信された教示データに基づいて、ロボット12を第2の姿勢に変更する曲げ関節12hおよび曲げ関節12iそれぞれの第2の姿勢についての詳細は上述および図8~9参照。ステップS116において、コンピュータ18は、第2の姿勢時のマーカー22の撮影画像をカメラ16から取得する。ステップS118において、コンピュータ18は、ステップS112とステップS116で取得した2つの撮影画像に基づいて、第1の姿勢から第2の姿勢への姿勢変更による、撮影画像上におけるマーカー22の第1の変位量および変位方向を算出する。ステップS120において、コンピュータ18は、第3の姿勢に対応する教示データをロボット12のコントローラ14に送信する。コントローラ14は、コンピュータ18から送信された教示データに基づいて、ロボット12を第3の姿勢に変更する曲げ関節12hおよび曲げ関節12iそれぞれの第3の姿勢についての詳細は上述および図8~9参照。ステップS122において、コンピュータ18は、第3の姿勢時のマーカー22の撮影画像をカメラ16から取得する。ステップS124において、コンピュータ18は、第4の姿勢に対応する教示データをロボット12のコントローラ14に送信する。コントローラ14は、コンピュータ18から送信された教示データに基づいて、ロボット12を第4の姿勢に変更する曲げ関節12hおよび曲げ関節12iそれぞれの第4の姿勢についての詳細は上述および図8~9参照。ステップS126において、コンピュータ18は、第4の姿勢時のマーカー22の撮影画像をカメラ16から取得する。ステップS128において、コンピュータ18は、ステップS122とステップS126で取得した2つの撮影画像に基づいて、第3の姿勢から第4の姿勢への姿勢変更による、撮影画像上におけるマーカー22の第2の変位量および変位方向を算出する。ステップS130において、コンピュータ18は、ステップS118で算出した第1の変位量およびステップS128で算出した第2の変異量が、所定の画素数例えば5画素に比べて小さいか否かを判定する。すなわち、関節の原点補正を行う必要があるか否かを判定する。第1および第2の変位量それぞれが所定の画素数に比べて小さい場合、原点補正を行う必要がないので、コンピュータ18は原点補正を終了する。一方、第1および第2の変位量が所定の画素数に比べて大きい場合、原点補正を行う必要があるため、ステップS132において、コンピュータ18は、ステップS118で算出したマーカー22の第1の変位量および変位方向と、ステップS130で算出したマーカー22の第2の変位量および変位方向とに基づいて、曲げ関節12h,12jのずれ量Δθh,Δθiを減少させるための該曲げ関節12h,12iそれぞれの補正量を算出する。ステップS134において、コンピュータ18は、ステップS132で算出した補正量に基づく曲げ関節12h,12iの原点補正命令エンコーダの原点オフセット指令を出力する。コントローラ14は、コンピュータ18からの原点補正命令に従い、記憶装置に記憶されている、対応関係データを、ずれ量Δθh,Δθiがゼロに近づくように補正する。そして、ステップS110に戻る。図11に示す原点補正の流れによれば、第1の姿勢から第2の姿勢への姿勢変更による撮影画像上におけるマーカー22の第1の変位量および第3の姿勢から第4の姿勢への姿勢変更による撮影画像上におけるマーカー22の第2の変位量が所定の画素数に比べて小さくなると、原点補正は完了する。本実施の形態によれば、第1の姿勢から第2の姿勢カメラ16の撮影画像上において第1の姿勢時のマーカー22の位置の近傍にマーカー22が写るような姿勢への姿勢変更による、カメラ16の撮影画像上におけるマーカー22の変位に基づいて、原点補正対象の関節の原点補正が行われる。マーカー22の変位量が小さいので該マーカー22の近くにカメラ16を設置することできるため、分解能の低い安価なカメラ16であっても、高精度に関節の原点補正を実行することができる。また、第1の姿勢から第2の姿勢への変更によるカメラ16の撮影画像上におけるマーカー22の変位と、原点補正対象の関節用のエンコーダの出力値に所定に対応付けされた関節角度と該関節の実際の関節角度の間のずれ量との相関性を利用するため、また、原点補正対象の関節のみに原点補正を実行するため、原点補正対象以外の関節の関節角度やロボット12の機械パラメータリンク12a~12fの長さなどを用いて複雑な計算を行う必要がない。したがって、複雑な計算を行う必要がなく、処理能力が低い安価なコンピュータ18であっても、容易に計算することができる。その結果、高精度に且つ安価に、ロボット12の関節の原点補正を実行することができる。以上、上述の実施の形態を挙げて本発明を説明したが、本発明は上述の実施の形態に限定されない。例えば、上述の実施の形態では、図1に示すようにカメラは1台であるが、複数台あってもよい。ただし、各関節に対して原点補正を実行するときの原点補正用ツール20のマーカー22の位置が1台のカメラに撮影視野に収まるのであれば、カメラは1台であるのが好ましい。また、上述の実施の形態では、一種類の原点補正用ツール20、具体的にはねじり関節12lの関節軸A6上以外にマーカー22が位置する原点補正用ツールが使用されるが、複数種類の原点補正用ツールが使用されてもよい。例えば、図12Aに示すように、マーカー22’がねじり関節12jの関節軸A6上に位置する原点補正用ツールが使用されてもよい。一例として、図12Aに示す原点補正用ツールを用いる場合の曲げ関節12kの原点補正について説明する。図12Bは、エンコーダの出力値に所定に対応付けされた関節角度と実際の関節角度とがずれ量Δθkずれている曲げ関節12kを示している。図12Bに示すように、ねじり関節12jの関節角度を180度変更すると、マーカーは変位量Dk’ずれる。この場合、曲げ関節12kの関節軸A5からマーカー22’までの距離をLとすると、数式1の関係が成り立つ。数式1を用いれば、ずれ量Δθkを算出することができる。ただし、この場合、カメラ16とロボット12の相対的な位置姿勢が既知であること、且つげ関節12kの関節軸A5からマーカー22’までの距離Lが既知であることが条件である。カメラ16がその視準方向がねじり関節12jの関節軸A4に一致するように固定されることにより、撮影画像上におけるマーカー22の変位量から、実際のマーカー22’の変位量Dk’を算出することが可能になる。なお、この場合、カメラ16とロボット12の相対的な位置姿勢を予め調べる代わりに次のようにしてもよい。すなわち、ロボット12を動作させて所定の方向に所定の変位量だけマーカー22を変位させ、そのときの撮影画像上におけるマーカー22の変位方向および変位量をそれぞれ基準変位方向、基準変位量として記録する。次に第1の姿勢から第2の姿勢への変更による撮影画像上におけるマーカー22の変位量および変位方向と、記録した基準変位方向および基準変位量とを比較することにより、マーカー22の変位量および変位方向を求める。そして求めた変位量および変位方向に基づいて原点補正を行う。この方法によると、原点補正前に基準変位方向および基準変位量を設定するので、基準変位方向および基準変位量に誤差が含まれる可能性があるが、上記の方法を繰り返すことによって基準変位方向および基準変位量に含まれる誤差と原点のずれをともに0に収束させることができる。なお、このように、エンコーダの出力値に所定に対応付けされた関節角度と実際の関節角度との間のずれ量を算出することができれば、関節の原点補正は短時間で済む。説明すると、上述の実施の形態では、カメラ16が任意の位置に配置されるため、またロボット12のフランジ12mに対するマーカー22の位置が未知であるため、ずれ量を算出することができず、図10や図11に示すように、ずれ量がゼロに近づくような補正量を繰り返し算出するとともに、繰り返しロボット12の姿勢変更を行う必要がある。しかし、ずれ量を算出することができれば、ずれ量を一度でゼロにする補正量は一度の計算で算出することができる。その結果、原点補正に必要な時間は、ずれ量が算出できない場合に比べて、短時間になる。さらに、これに関連して、ロボット12のフランジ12mに対するマーカー22の位置が既知であれば、マーカー22の空間上の位置例えば、ベース座標系ΣBにおける座標を算出することができる。これにより、フランジ12mに対するマーカー22の位置が未知である場合に比べて、関節の原点補正は短時間になる。説明すると、図4および図5に示すねじり関節12jの原点補正および図6および図7に示すねじり関節12lの原点補正において、カメラの撮影画像上において第1の姿勢時の先端点の位置との距離が最小になる位置に先端点が写るような第2の姿勢は、曲げ関節12iの関節角度が異なる複数の姿勢をロボット12が取ることにより、またその姿勢毎にカメラ16がマーカー22を撮影することにより、さらにはカメラ16が撮影した撮影画像毎にその撮影画像に写るマーカー22の位置と第1の姿勢時のマーカー22の位置との距離をコンピュータ18が算出することにより行われる。すなわち、第2の姿勢を特定するのに時間が必要である。これに対して、マーカー22の空間上の位置を算出することができれば、第1の姿勢時のマーカー22の位置を算出し、その算出した第1の姿勢時のマーカー22の位置との距離が最小ゼロを含むになる位置にマーカー22が位置する第2の姿勢すなわち第2の姿勢を実現する関節角度を算出することができる。それにより、第1の姿勢から第2の姿勢に直接的に姿勢変更することができ、その結果として、フランジ12mに対するマーカー22の位置が未知である場合に比べて、関節の原点補正は短時間になる。最後に、図1においてロボット12、具体的には、ベース12nから順に、ねじり関節12g、曲げ関節12h、曲げ関節12i、ねじり関節12j、曲げ関節12k、ねじり関節12lを有するロボット12の関節の原点補正は、上述に説明した順番どおり、すなわち、1曲げ関節12k、2ねじり関節12j、3曲げ関節12h,12i、4ねじり関節12lの順番で行うのが好ましい。この順番で補正を行えば、原点補正の精度が高くなるためである。その理由は、例えば、ねじり関節12jの原点補正が、図4や図5に示すように、曲げ関節12kを使用するためである。"