6軸ロボットの軸間オフセット検出方法
【課題】6軸ロボットにおいて、軸間オフセットのずれ量を計測しこれを補正する。
【解決手段】手先に発光ダイオードを設け、先端2軸直交点(第5軸と第6軸との交点)をロボット座標のX軸上の複数の移動目標位置(白抜き丸印)に移動させる。各移動目標位置で、発光ダイオードを第6軸を中心に回転させてその回転軌跡を3次元計測器により計測すると共に、発光ダイオードを第5軸を中心に回転させてその回転軌跡を3次元計測器により計測する。そして、2つの回転軌跡から2つの回転中心線を求め、両回転中心線の交点を先端2軸直交点の実際の移動位置(×印)とし、移動目標位置と実際の移動位置との誤差から軸間オフセット量Fを検出する。この軸間オフセット量FによってDHパラメータを補正する。
【解決手段】手先に発光ダイオードを設け、先端2軸直交点(第5軸と第6軸との交点)をロボット座標のX軸上の複数の移動目標位置(白抜き丸印)に移動させる。各移動目標位置で、発光ダイオードを第6軸を中心に回転させてその回転軌跡を3次元計測器により計測すると共に、発光ダイオードを第5軸を中心に回転させてその回転軌跡を3次元計測器により計測する。そして、2つの回転軌跡から2つの回転中心線を求め、両回転中心線の交点を先端2軸直交点の実際の移動位置(×印)とし、移動目標位置と実際の移動位置との誤差から軸間オフセット量Fを検出する。この軸間オフセット量FによってDHパラメータを補正する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、互いに直交する方向の回転軸を有する第1回転関節と第2,3,5回転関節とのオフセットを検出してこれを補正する6軸ロボットの軸間オフセット検出方法に関する。
【背景技術】
【0002】
6軸ロボットは、固定された3次元の直交座標で表した位置データが与えられると、この位置データを回転関節の角度データに変換して手先を位置データに示された位置に移動させるように構成されている。この場合、ロボットの構成部品の加工誤差や組み付け誤差により、リンク(アーム)長、回転関節と次の回転関節の回転軸間の角度(以下、ねじれ角という)、リンクの原点位置とモータの原点位置との関係(以下、モータ原点位置という)などに誤差を生じたり、各回転関節の駆動系に作用する付加トルクによって駆動系に撓み(以下、単に撓みという)を生じたりすると、手先の位置や姿勢にずれを生じ、絶対位置精度が低下する。
【0003】
絶対位置精度を向上させるために、上述の誤差や撓みを考慮して回転関節の回転角を補正する手法は現在までに種々考えられている。例えば、非特許文献1は、リンク長とねじれ角についての誤差を検出し、その誤差を補正する方法を開示している。また、特許文献1〜4は、モータ原点位置の誤差検出とその補正方法を開示している。駆動系の撓みについては、各リンクの質量と各リンクの姿勢とから各回転関節のモータに作用する負荷トルクを算出し、更に、この負荷トルクと駆動系のばね定数とから駆動系の捻り変形角度を求めて当該捻じり変形角度から各リンクの撓み角度を求め、そして各リンクの撓み角度を減殺するようなモータ回転角を求めることにより駆動系の撓みを補正する方法が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−220587号公報
【特許文献2】特開2009−274186号公報
【特許文献3】特開2009−274187号公報
【特許文献4】特開2009−274188号公報
【非特許文献】
【0005】
【非特許文献1】社団法人 日本ロボット工業会発行 平成9年度通商産業省工業技術院委託 プラント用知能ロボットの標準化に関する調査研究 成果報告書 第52頁4.3.2.3対偶軸同定法
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明者は、6軸ロボットについて、上記方法を用いてリンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓みを求め、その結果から各回転関節の回転角を修正した上で、手先が位置データに示された位置に移動するかを求める実験を行った。しかし、この実験の結果は、本発明者が当初予定していた絶対位置精度を満足させるものではなかった。
【0007】
本発明は上記の事情に鑑みてなされたもので、その目的は、6軸ロボットにおいて、上記のリンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓みを修正してもなお満足できる絶対位置精度を得ることができなかった要因を推定し、推定した要因による誤差量を計測する方法を提供することによってロボットの絶対位置精度の更なる向上を図ろうとすることにある。
【課題を解決するための手段】
【0008】
本発明者は、絶対位置精度が不足する理由として、リンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓み以外に位置誤差を生じさせる要因が存在し、これが、軸間オフセットにあるものと推測した。
【0009】
ここで、組み付け後の第2,第3,第5の各回転関節の位置が正規の位置から回転中心線方向にずれていた場合、このずれを軸間オフセットと言う。
つまり、第2,第3,第5の各回転関節がロボットの構成部品の加工誤差や組み立て誤差などによって正規の位置からずれると、第2,第3,第5の各リンクの座標の設計上の原点位置と、第2,第3,第5の各回転関節の回転軸との関係がずれを生ずることとなり、その結果、ロボットの手先がロボット座標上の位置で指定された目標位置から軸間オフセットだけずれるようになる。
従って、軸間オフセットを計測し、これを補正すれば、絶対位置精度をより高くすることができる。しかしながら、従来、軸間オフセットと絶対位置精度との関係を考察し、軸間オフセットを計測しようとする提案はなされていない。
【0010】
本発明による軸間オフセットの方法は以下の通りである。
(請求項1)
請求項1の発明では、まず、第6リンクと一体に動作する測定点を設け、ロボットアームを第1回転関節の回転軸を中心に回転させて、測定点の回転軌跡上の3以上の複数位置を3次元計測手段により計測し、この計測結果から測定点の回転中心の位置と、測定点の回転軌跡上の複数位置を含む平面の法線とを求めて、測定点の回転中心を原点、当該原点を通る前記法線と平行の直線をZ軸、原点を通って前記Z軸に直交する任意の直線をX軸、原点を通ってZおよびXの両軸に直交する直線をY軸とする基準座標を定める。
【0011】
次に、第1回転関節の回転軸の回転中心線から延ばした任意の一平面上の任意の複数位置を移動目標位置に定めて当該移動目標位置に、第5回転関節の回転軸の回転中心線と第6回転関節の回転軸の回転中心線との直交点である先端2軸直交点を移動させることとしたとき、第1〜第4の各回転関節の回転軸を含む第1〜第4の各駆動系を介して第1〜第4の各リンクを駆動するモータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差による位置誤差および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行う。
【0012】
その上で、先端2軸直交点を複数の移動目標位置に移動させ、各移動目標位置において、第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行う。
【0013】
そして、第1の直線と第2の直線の交点を先端2軸直交点の計測位置とし、当該先端2軸直交点の位置を基準座標上の位置に座標変換し、先端2軸直交点の基準座標上のXbYb座標値を求め、求めた先端2軸直交点のXbYb座標値を基準座標のXbYb平面上にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に基準座標の原点から下ろした垂線の長さをずれ量として求める。このずれ量が第2,3,5の回転関節の合計の軸間オフセット量となる。
以上のようにして求めた軸間オフセット量により、例えばDHパラメータを補正することにより、絶対位置精度の向上を図ることができる。
【0014】
(請求項2)
請求項2の発明は、請求項1とは基準座標の求め方が異なる。つまり、請求項2では、少なくとも第2〜第4の回転関節の回転軸を固定したまま、第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線を求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、求めた第1の直線と第2の直線の交点を先端2軸直交点の計測位置とする。
【0015】
そして、各角度位置において求めた3以上の複数の先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、原点を通ってZ軸に直交する任意の直線をX軸、原点を通ってZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とする。
【0016】
(請求項3)
請求項3の発明は、請求項1または2における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、これら移動目標位置に先端2軸直交点を移動させることとしたとき、前述の各モータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行った上で、第1〜3の回転関節の回転軸を回転させることにより先端2軸直交点を複数の各移動目標位置に移動させ、各移動目標位置において前述したと同様にして第1の直線を求める動作と、第2の直線を求める動作とを行い、第1の直線と第2の直線の交点を先端2軸直交点の計測位置とし、当該先端2軸直交点の計測位置を基準座標上の位置に座標変換して基準座標上のXY座標値を求め、各移動目標位置について、基準座標のXY平面上に移動目標位置のXY座標値と先端2軸直交点の計測位置のXY座標値とをプロットし、基準座標の原点からXY平面上の移動目標位置までの線分の長さを目標位置半径とすると共に、XY平面上の先端2軸直交点の計測位置から基準座標の原点と移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、直交2軸のうち一方の軸に目標位置半径をとり他方の軸にオフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とする。
このようにしても、請求項1と同様の効果を得ることができる。
【0017】
(請求項4)
請求項4の発明は、請求項1または請求項2と同様にして基準座標を求めた後、手先を任意の基準姿勢にしたときの測定点の位置を3次元測定手段により計測し、且つ、第6回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って法線と平行の第1の直線を求める動作と、第5回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って法線と平行の第2の直線を求める動作とを行い、手先の基準姿勢での測定点の計測位置から第1の直線と第2の直線の交点に至るベクトルを求めて当該ベクトルを先端2軸直交点の検出ベクトルとすると共に、当該検出ベクトルが基準座標のXYZ軸となす角度を求めて当該角度を指向角度とする。
【0018】
そして、第1回転関節の回転軸の回転中心線から延ばした任意の一平面上の任意の複数位置を移動目標位置に定め、これら移動目標位置に第5回転関節の回転軸の回転中心線と第6回転関節の回転軸の回転中心線との直交点である先端2軸直交点を移動させることとしたとき、第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して第1〜第4の各リンクを駆動するモータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行った上で、第2,3の回転関節を回転させることにより、複数の移動目標位置のそれぞれに先端2軸直交点を移動させ、各移動目標位置において、手先を基準姿勢に保持した状態で測定点の位置を3次元計測手段により計測し、計測した測定点の位置を基準座標上の位置に座標変換し、当該基準座標上の特定点の位置から指向角度となるように検出ベクトルを作成したとき当該検出ベクトルの終点の位置を先端2軸直交点の基準座標上の計測位置と定め、求めた複数の先端2軸直交点の基準座標上の計測位置のXY座標値を基準座標のXY座標面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に基準座標の原点から下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とする。
【0019】
(請求項5)
請求項5の発明は、請求項4とは基準座標の求め方が異なる。つまり、請求項5では、請求項2と同様に、第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、第1の直線を求める動作と、第2の直線を求める動作とを行い、求めた第1の直線と第2の直線の交点を先端2軸直交点の計測位置とする。
【0020】
そして、各角度位置において求めた3以上の複数の先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、原点を通ってZ軸に直交する任意の直線をX軸、原点を通ってZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とする。
【0021】
(請求項6)
請求項6の発明は、請求項4または請求項5における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、各移動目標位置に先端2軸直交点を移動させることとしたとき、第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して第1〜第4の各リンクを駆動するモータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行った上で、第1〜3の回転関節の回転軸を回転させることにより先端2軸直交点を前記複数の各移動目標位置に移動させ、各移動目標位置において、手先を基準姿勢に保持して測定点の位置を3次元計測手段により計測し、計測した測定点の位置を基準座標上の位置に座標変換し、当該測定点の基準座標上の位置から指向角度となるように検出ベクトルを作成したとき当該検出ベクトルの終点の位置を先端2軸直交点の基準座標上の計測位置と定め、当該先端2軸直交点の基準座標上の計測位置のXY座標値を求め、且つ、移動目標位置を基準座標上の位置に座標変換し、各移動目標位置について、基準座標のXY平面上に、先端2軸直交点の基準座標上の計測位置と、移動目標位置の基準座標上の位置とをプロットし、基準座標の原点からXY平面上の移動目標位置までの線分の長さを目標位置半径とすると共に、XY平面上の先端2軸直交点の計測位置から基準座標の原点と移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、直交2軸のうち一方の軸に目標位置半径をとり他方の軸にオフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とする。
【0022】
(請求項7)
請求項7の発明は、請求項1,2,4,5のいずれかにおいて、第1回転関節の回転軸の回転中心線から延ばした一平面上の任意の複数位置を移動目標位置に定め、これら移動目標位置に先端2軸直交点を移動させる動作は、基準座標のZ軸から互いに反対方向に向けて伸ばした2本の直線について行い、Z軸から一方向に延ばした直線上から反対方向に延ばした直線上への先端2軸直交点の移行は、第1の回転関節の回転軸を固定した状態で第2,3の回転関節の回転関節の回転軸を回転させることによりロボットアームを反転させて行うことを特徴とする。
【0023】
一方の一平面上の任意の複数位置に先端2軸直交点を移動させたときの先端2軸直交点の計測位置を結んでできる計測依存線分と、ロボットアームを反転させて他方の平面上の任意の複数位置に先端2軸直交点を移動させたときの先端2軸直交点の計測位置を結んでできる計測依存線分とは一直線上に位置する筈である。一直線上に位置しない場合には、基準座標を設定する手法や、モータの原点位置誤差、第1〜第4の各回転駆動系の撓み、或いは第1〜第4の各リンクの長さ誤差により手先の位置誤差が生じないようにするための手法などに誤りがあったと考えられる。
このため、請求項7の発明によれば、軸間オフセット量が正しく求められたか否かの確認をすることができる。
【0024】
(請求項8)
請求項8は、請求項3または請求項6において、先端2軸直交点を移動目標位置に移動させる動作は、ロボットアームの前屈姿勢と、この前屈姿勢からロボットアームを反転させた後屈姿勢の双方で行うことを特徴とする。
【0025】
このようにすることにより、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、グラフにプロットしたとき、これらプロッタされた点が前屈姿勢と後屈姿勢とで一直線上に位置するか否かにより、請求項7と同様に軸間オフセットが正しく求められたか否かの確認をすることができる。
【図面の簡単な説明】
【0026】
【図1】本発明の第1の実施形態を示すロボット装置の斜視図
【図2】回転関節の概略を示す断面図
【図3】各回転関節の回転軸を原点位置に設定した状態で示すロボットの側面図
【図4】各リンクに設定された座標を示す斜視図
【図5】DHパラメータを示す表
【図6】DHパラメータの具体的数値を示す表
【図7】制御装置を示すブロック図
【図8】フランジ部分の斜視図
【図9】本発明の手順を示す行程図
【図10】基準座標の設定を説明するための斜視図
【図11】回転駆動系の撓みの説明図
【図12】移動目標位置を示す斜視図
【図13】ロボットの前屈状態を示す側面図
【図14】ロボットの後屈状態を示す側面図
【図15】第1の直線を求めるための説明図
【図16】第2の直線を求めるための説明図
【図17】第1の直線と第2の直線とから先端2軸直交点を求めるための説明図
【図18】カメラ座標を基準座標に変換するための同時変換行列を示す図
【図19】軸間オフセット量を求めるための説明図
【図20】本発明の第2の実施形態を示す図10相当図
【図21】本発明の第3の実施形態を示すもので、先端2軸直交点の移動目標位置と実際の移動位置を示す図
【図22】軸間オフセット量を求めるための説明図
【図23】本発明の第4の実施形態を示し、(a)はフランジ部分の側面図、(b)は下面図
【図24】検出ベクトルを示す斜視図
【発明を実施するための形態】
【0027】
(第1の実施形態)
以下に本発明の第1の実施形態を図1〜図19に基づいて説明する。図1には、6軸の垂直多回転関節型のロボット装置1が示されている。このロボット装置1は、6軸垂直多関節型ロボット(以下、単にロボットと称する)2と、ロボット2の動作を制御する制御装置(ロボット制御手段)3と、制御装置3に接続されてロボット2を手動操作によって動作させるためのティーチングペンダント(手動操作手段)4とを備えている。
【0028】
ロボット2は、据え付け面、例えば工場の水平な床面に固定されるベース(ベースリンク)5に対し、ロボットアーム6を構成するショルダ(第1リンク)7、下アーム(第2リンク)8、第1の上アーム(第3リンク)9、第2の上アーム(第4リンク)10と、手首アーム(第5リンク)11、フランジ(第1リンク)12を第1〜第6の各回転関節J1〜J6(図1には図示せず)により順次連結して構成されている。
【0029】
つまり、ショルダ7はベース5上に第1回転関節J1によって第1軸Lc−1を中心に水平方向に旋回可能に連結され、下アーム8はショルダ7の先端部に第2回転関節J2によって第2軸Lc−2を中心に上下(鉛直)方向に旋回可能に支持され、第1の上アーム9は下アーム8の先端部に第3回転関節J3によって第3軸Lc−3を中心に上下方向に旋回可能に支持され、第2の上アーム10は第1の上アーム9の先端部に第4回転関節J4によって第4軸Lc−4を中心に捻り回転可能に支持され、手首アーム11は第2の上アーム10の先端部に第5回転関節J5によって第5軸Lc−5を中心に上下方向に旋回可能に支持され、フランジ12は手首アーム11に第6回転関節J6によって第6軸Lc−6を中心に捻り回転可能に支持されている。
【0030】
前記第1〜第6の各回転関節J1〜J6は、図2にその概略が示されている。図2に示す通り、各リンク7〜12の回転関節J1〜J6は、前段のリンクに軸受13を介して回転可能に支持された回転軸14からなり、この回転軸14に次段のリンクが直接或いは継ぎ手材を介して連結される。回転軸14は、前段のリンクに固定された駆動源としてサーボモータ15に減速装置、例えば歯車減速装置16を介して回転駆動され、この回転軸14の回転によって次段のリンクが旋回動作或いは捻り回転動作を行うようになっている。
【0031】
ここで、前記第1軸Lc−1〜第6軸Lc−6は、第1〜第6の各回転関節J1〜J6の回転軸14の回転中心線Lcに相当するものである。これら第1軸Lc−1〜第6軸Lc−6の指向方向は次のとおりである。即ち、ショルダ7の回転中心である第1軸Lc−1は据え付け面と直交し、下アーム8の回転中心である第2軸Lc−2は第1軸Lc−1と直交する方向と平行、つまりベース5が例えば工場の床面に据え付けられているとして、第1軸Lc−1は据え付け床面に対し垂直(鉛直)、第2軸Lc−2は水平に定められている。
【0032】
第1の上アーム9の回転中心である第3軸Lc−3は第2軸Lc−2と平行つまり水平であり、第2の上アーム10の回転中心である第4軸Lc−4は第3軸Lc−3と直交する方向と平行、手首アーム11の回転中心である第5軸Lc−5は第4軸Lc−4と直交し、フランジ12の回転中心である第6軸Lc−6は第5軸Lc−5と直交する方向に定められている。そして、第4軸Lc−4と第5軸Lc−5は直交し、第5軸Lc−5と第6軸Lc−6も、第4軸Lc−4と第5軸Lc−5の直交点と同一点において直交している。
【0033】
ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の各回転軸14を駆動するサーボモータ15が原点位置にあるとき、それらショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12は原点位置にある。ここで、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12が全て原点位置にあるとき、ロボットアーム6は、図3に示すような垂直上向きの姿勢になる(下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11が垂直)。そして、各サーボモータ15が原点位置から正(プラス)方向および逆(マイナス)方向に回転することにより、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12も原点位置から正(プラス)方向および逆(マイナス)方向に回転するようになっている。
【0034】
ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12には、図4に示すように、それぞれ3次元の座標R1〜R6が規定されている。これらの座標R1〜R6の原点O1〜O6は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転中心線である第1軸Lc−1〜第6軸Lc−6上の所定位置に定められ、各座標R1〜R6のZ軸であるZ1〜Z6軸は第1軸Lc−1〜第6軸Lc−6と一致している。特に、手首アーム11の座標R5の原点O5とフランジ12の座標R6の原点O6のうちいずれか、この実施例では両原点O5およびO6が共に第5軸Lc−5と第6軸Lc−6の直交点に位置するように設定されている。
【0035】
また、座標R1〜R6のうち、ショルダ7の座標R1のX軸であるX1軸は水平で、第1軸Lc−1と第2軸Lc−2との共通垂線(図1にh線で示す。)と平行の方向に定められ、Y軸であるY1軸は水平で、Z1軸とY1軸とのベクトルの外積によって求められる方向(Z1軸とY1軸の双方に直交する方向)に定められている。残る座標R2〜R6のX軸であるX2〜X6軸は、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12を原点位置に動作させた状態で座標R1のX1軸と平行の方向に定められ、Y軸であるY2〜Y6軸は、Z2〜Z6軸とY2〜Y6軸とのベクトルの外積によって求められる方向に定められている(図4参照)。なお、X1〜X6軸、Y1〜Y6軸、Z1〜Z6軸のプラス方向は、図4に矢印で示す方向となっている。
【0036】
ベース5およびロボットアーム6の先端であるフランジ12の先端面にも座標R0およびRfが規定されている。上記座標R1〜R6がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転に伴って位置と向きが変化するのに対して、ベース5の座標R0は不動であり、ロボット座標とされている。このロボット座標R0の原点O0は、ショルダ7の回転中心線である第1軸Lc−1上にあって本実施形態では座標R1の原点O1と一致した位置に定められている。また、Z軸であるZ0軸は第1軸Lc−1に一致し、X軸であるX0軸およびY軸であるY0軸は、ショルダ7が原点位置にあるときの当該ショルダ7の座標R1のX1軸およびY1軸に一致している。
【0037】
フランジ12の先端面の座標Rfは手先座標とされ、その原点Ofは、第6軸Lc−6上、本実施形態では第6軸Lc−6とフランジ12の先端面との交点、つまり図8に示すように、フランジ12の円形をなす先端面の中心Pと一致するように定められ、Z軸であるZf軸は第6軸Lc−6に一致し、X軸であるXf軸およびY軸であるYf軸はフランジ12の座標R6のX6軸およびY6軸と平行に定められている。そして、フランジ12の先端面の中心Pがロボットアーム6の先端である手先に定められている。なお、フランジ12には、中心孔12aと、この中心孔12aから隔たった位置に小孔12bが形成されており、中心孔12aの中心がPで、中心孔12aと小孔12bの中心点間を結ぶ直線が手先座標RfのXf軸となるように定められている。
【0038】
以上の座標R0〜R6,Rfの原点O1〜O6,Ofは、本実施形態においては、座標R1のX1軸とZ1軸を含む一つの平面(鉛直のZ1X1平面)を仮定したとき、この一平面上に位置されている。そして、ロボットアーム6の動作時、座標R2〜R6,Rfの原点O2〜O6,Ofは、Z1X1平面上を移動するように設定されている。
【0039】
上述のように規定された座標R0〜R6,Rfの相互の関係は、周知のDHパラメータによって示される。図5はこのDHパラメータを表にまとめたもので、例えば、J1行については、座標R1を、X1軸方向にa1平行移動させ、Y1軸方向には平行移動させず、Z1軸方向にd1平行移動させてから、X1軸を中心にしてねじれ角−π/2だけ回転させると、座標R2が得られ、また、例えば、J6行については、座標R6を、X6軸方向およびY6軸方向には平行移動させず、Z6軸方向にd6平行移動させると、手先座標Rfが得られるということを示している。なお、ロボット座標R0とショルダ7の座標R1との関係は、ショルダ7が原点位置にあるとき、座標R1はロボット座標R0に一致しているので、図5には示していない。図6にa,b,dの具体的な数値例を示した。
【0040】
前記制御装置3は、図7に示すように、CPU(制御手段)17と、駆動回路(駆動手段)18と、位置検出回路(位置検出手段)19とを備えている。CPU17には、ロボット2全体のシステムプログラムや動作プログラムを作成するためのロボット言語やDHパラメータなどの各種データなどを記憶するROM20およびロボット2の動作プログラムを記憶するRAM21が接続されていると共に、ティーチング作業などを行う際に使用する前記ティーチングペンダント4が接続されている。ティーチングペンダント4は、図1に示すように、各種の操作部4aおよび液晶からなる表示器4bを備えている。
【0041】
位置検出回路19には、各サーボモータ15の回転軸(図示せず)に連結された回転センサとしてのロータリエンコーダ22が接続されている。位置検出回路19は、各ロータリエンコーダ22の回転角検出情報に基づいてショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を検出し、その回転角検出情報をCPU17に与える。
【0042】
ここで、CPU17は、ロボット座標R0上での手先の位置(手先座標Rfの原点Ofの位置)と姿勢(手先座標RfのXf軸、Yf軸、Zf軸の向き)が与えられると、手先がその位置と姿勢をとるようなショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を、ヤコビ行列を用いた逆運動学の周知の計算手法によって求める。
【0043】
また、ロボット座標R0上での各座標R1〜R6の位置(原点O1〜O6の位置)と姿勢(各座標R1〜R6のX軸、Y軸、Z軸の向き)が与えられると、各座標R1〜R6がその位置と姿勢をとるようなショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を求める。
【0044】
逆に、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度が与えられると、それら回転角度から座標変換を用いた順運動学の周知の計算手法によってロボット座標R0上での各座標R1〜R6および手先の位置と姿勢を求めることができるように構成されている。これらの逆運動学および順運動学の計算手法による演算には、周知のように各座標R0〜R6,Rfの相互の関係を示す前記DHパラメータが用いられる。
【0045】
そして、CPU17は、動作プログラムから手先の目標位置を取得すると、その目標位置からショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の目標動作角度を演算し、その目標動作角度に基づいた動作指令を駆動回路18に与える。駆動回路18は与えられた動作指令に基づいて各サーボモータ15を駆動する。このとき、CPU17は、位置検出回路19から与えられるショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角検出情報をフィードバック情報として各サーボモータ15をフィードバック制御する。
【0046】
ところで、先に述べたように、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の座標R1〜R6、手先座標Rfの原点O1〜O6,Ofは、いずれもショルダ7の座標R1のX1軸とZ1軸を含む鉛直面上に存在している。従って、ロボット2が高精度に組み立てられていれば、手先であるフランジ12の先端面の中心Pは設計上の手先座標Rfの原点Ofに一致し、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12を目標動作角度だけ回転させれば、手先は目標位置に正しく移動する。
【0047】
ところが、ロボット2の構成部品の製作誤差や組み立て誤差などにより、下アーム8、第1の上アーム9、手首アーム11の回転関節J2,J3,J5の各回転軸14の位置が第2軸Lc−2、第3軸Lc−3,第5軸Lc−5の方向にずれて正規の位置との間に誤差(軸間オフセット)を生ずると、実際の手先(フランジ12の先端面の中心P)の位置が設計上の手先座標Rfの原点Ofからずれる。
【0048】
すると、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12を目標動作角度だけ回転させても、手先の実際の移動位置が、回転関節J2,J3の各回転軸14の軸間オフセットの総和分だけ(第5軸Lc−5が垂直の場合)、或いは回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和分だけ(第5軸Lc−5が水平の場合)目標位置から水平方向にずれるようになる。なお、回転関節J5の回転軸14は短いので、回転関節J5単独の軸間オフセットは小さと考えられ、回転関節J2,J3の各回転軸14の軸間オフセットの総和と回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和とは、ほとんど差がないと考えられる。
【0049】
本発明方法は、回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和を推測し、推測した軸間オフセット分だけDHパラメータを修正して手先の実際の移動位置を目標位置にできるだけ近づけようとするものである。
【0050】
本発明方法は、ティーチングペンダント4を操作して、第5回転関節J5の回転軸14の回転中心線である第5軸Lc−5と第6回転関節J6の回転軸14の回転中心線である第6軸Lc−6との直交点(以下、先端2軸直交点C)を複数の目標位置に移動させたとき、先端2軸直交点Cの実際の移動位置を計算して目標位置とのずれ量を求め、このずれ量から軸間オフセットを推測するものである。
【0051】
この場合、先端2軸直交点Cの移動目標位置と実際の移動位置とのずれは、軸間オフセット以外の要因、即ち各回転関節J1〜J6の回転駆動系の撓み、各サーボモータ15の原点位置誤差、各リンク7〜12の長さ誤差、各回転関節J1〜J6の回転軸14相互間のねじれ角度誤差によっても生ずるので、これらの要因による位置誤差が生じないような補正処理を事前に行う必要がある。
【0052】
先端2軸直交点Cの位置を計算によって求めるために、図8に示すようにフランジ12の任意の位置に支持台23が取り付けられ、この支持台23の先端部に測定点としての発光ダイオード24が設けられている。そして、ロボット2から離れた適宜の位置には、上記発光ダイオード24の位置を計測するために、図7に示す3次元計測器(3次元計測手段)25が固定されている。
【0053】
上記3次元計測器25は、例えば3台のCCDカメラを備えた3次元計測器(例えば、株式会社東洋テクニカ;ロボットキャリブレーションROCALシステム)からなる。なお、3次元計測器25はレーザトラッカなどであっても良い。
【0054】
3次元計測器25による発光ダイオード24の計測位置は、パソコンからなる測定制御装置26によって3次元計測器25に予め設定された3次元座標(以下、カメラ座標という。)Rc上の位置で示される。このカメラ座標Rcの一目盛で表わされる距離は、手先がロボット座標R0の一目盛分の距離だけ移動したときの距離と等しくなるように定められている。従って、ロボット座標R0の一目盛の長さとカメラ座標Rcの一目盛の長さとは同じ距離を表わすこととなる。
【0055】
さて、本発明方法は図9に示す手順により行われる。まず、カメラ座標Rc上におけるロボット座標R0の位置、当該ロボット座標R0のX0軸、Y0軸およびZ0軸の方向は分からない。そこで、本実施形態では、カメラ座標Rc上にロボット座標R0に代わる座標として基準座標Rbを設定する(図9のステップS1)。この基準座標Rbの設定は、ティーチングペンダント4を使用して行う。
【0056】
ここで、ティーチングペンダント4の機能について説明すると、当該ティーチングペンダント4は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12のサーボモータ15を個別に所望の角度だけ回転させて、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12をそれぞれの原点位置から正逆方向に所望の回転角度だけ回転させることができるように構成されている。
【0057】
また、ティーチングペンダント4は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢をロボット座標R0で指定できるようになっており、ティーチングペンダント4によりロボット座標R0上での位置と姿勢が指定されると、ロボット装置1のCPU17がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角を演算し、その回転角となるように各サーボモータ15を駆動する。これにより、各座標R1〜R6,Rfや手先が指定された位置と姿勢をとるように動作する。
【0058】
更に、現在のショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢を知りたい場合、その旨の操作を行うと、CPU17がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角からショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢を演算し、ティーチングペンダント4の表示器4aがそのロボット座標R0上の位置と姿勢を表示するようにもなっている。
【0059】
ここで、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢とは、各座標R1〜R6およびRfの位置と姿勢のことと同義である。
カメラ座標Rc上に前記基準座標Rbを設定するには、まず、ティーチングペンダント4の操作部4aを操作し、ロボットアーム6を任意の姿勢にする。このとき、例えば第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行、つまり水平に保持した状態で、発光ダイオード24が第1軸Lc−1から水平方向に離れた位置にある姿勢、本実施形態では、図13に示すように、図3の垂直上向きの状態から下アーム8、第1の上アーム9が回転してフランジ12を斜め下向きにした姿勢(ロボットアーム6がショルダ7の前側(X0軸のプラス側)に倒れた前屈姿勢に保持する。なお、このときの姿勢は図14に示す後屈姿勢であっても良い。このように発光ダイオード24を第1軸Lc−1から水平方向に離すことにより、第1軸Lc−1を中心にロボットアーム6を回転させたとき、発光ダイオード24が一つの回転軌跡上を移動するようになる。
【0060】
そして、この姿勢のまま、第1軸Lc−1を中心にしてショルダ7を所望角度、好ましくは、プラス90°の位置から0°の位置(原点位置)を経てマイナス90°の位置に至るまでを含んだ合計180°以上回転させる。なお、基準座標Rbの設定時には、必ずしも第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行にする必要はない。
【0061】
すると、基準座標設定用測定点としての発光ダイオード24が図10に示すように、第1軸Lc−1を中心にして円形の回転軌跡Eを辿るので、3次元計測器25によって発光ダイオード24の回転軌跡E上の位置を、互いに異なる3点以上の複数位置d1,d2,…dnにおいて測定する。測定制御装置26は、3次元計測器25によって計測された発光ダイオード24の回転軌跡E上の複数位置d1,d2,…dnから、最小二乗法により発光ダイオード24の回転中心の位置Obを求めると共に、発光ダイオード24の回転軌跡Eを含む一平面の法線Lvを求める。そして、回転中心の位置Obを基準座標Rbの原点、この原点Obを通って法線Lvと平行(同じ向き)な直線を基準座標RbのZb軸(Z軸)と定める。
【0062】
また、原点Obを通ってZb軸に直交する任意の直線、例えば、ショルダ7を原点位置に回転させたときの発光ダイオード24の位置P0と原点Obとを結んだ直線を基準座標RbのXb軸(X軸)に定め、Zb軸とXb軸のベクトルの外積から両軸に直交する直線を求めて当該直線を基準座標RbのYb軸(Y軸)とする。なお、基準座標Rbの一目盛の長さはカメラ座標Rcの一目盛の長さと同じに定められている。
【0063】
以上により、カメラ座標Rc上に基準座標Rbが設定される。このようにして設定した基準座標Rbにおいて、Zb軸は第1軸Lc−1従ってロボット座標R0のZ0軸上にあり、且つ、XbYb平面はX0Y0平面と平行である。なお、基準座標Rbの設定時において、発光ダイオード24の位置がX0Y0平面上にあれば、XbYb平面はX0Y0平面と一致する。
【0064】
また、仮に、軸間オフセットがないとすれば、Xb軸、Yb軸はロボット座標R0のX0軸、Y0軸と平行になっている。しかし、軸間オフセットがある場合には、ショルダ7を原点位置に回転させたときの発光ダイオード24の位置P0が軸間オフセット分だけX0Y0方向にずれるので、Xb軸、Yb軸はX0軸、Y0軸とは平行ではなく、図16に示すように軸間オフセットに応じて傾くようになる。
【0065】
基準座標Rbを設定した後、第1軸Lc−1から任意の方向に延ばした当該第1軸Lc−1を含む鉛直の一平面を想定し、この一平面内の複数位置を移動目標位置に定める。本実施形態では、図10、図12に示すように、第1軸Lc−1と同軸のZb軸ひいてはZ0軸から任意の方向に延ばした当該Z0軸を含む任意の平面A1と、Z0軸から平面A1とは反対方向に延ばした平面A2を設定する。この一方の平面A1と、他方の平面A2とは面一の1つの平面Aとなる。本実施形態では、このような平面Aを複数設定するものとし(図10、図12では平面Aを1つのみ図示)、そのうちの一つの平面AはX0軸を含む平面であるものとする。なお、平面Aは、X0軸とのなす角度βで指定するものとする。
【0066】
そして、各平面A1,A2上にそれぞれ任意の複数位置を移動目標位置として選択する。任意に選択した複数の移動目標位置を図12に小さな白抜きの丸印で示した。各平面A1,A2上に任意に選択した複数の移動目標位置には、軸間オフセットを求めるために、後述のように、例えば第5軸Lc−5が第2軸Lc−2および第3軸Lc−3と平行の状態で先端2軸直交点Cを移動させるものである。
【0067】
ここで、平面A上に選択された複数位置はロボット座標R0の(X0,Y0,Z0)座標値で指定される。基準座標RbのZb軸はZ0軸に一致し、軸間オフセットなしとしたときのXb軸およびYb軸はそれぞれX0軸およびY0軸と平行であるから、移動目標位置のX0座標値とY0座標値は、基準座標Rb上のXb座標値とYb座標値と同じ値となる。ただ、基準座標Rbの原点Obはロボット座標R0の原点O0から隔たっており、基準座標Rbを求めた時の発光ダイオード24のZ0軸上の位置が基準座標Rbの原点ObのZ0軸上の位置(この位置をZaとする)となるから、移動目標位置の基準座標RbでのZb座標値は(Z0−Za)となる。従って、軸間オフセットがなければ、Xb軸、Yb軸はX0軸、Y0軸と平行となるから、軸間オフセットがないとしたとき、ロボット座標R0を、Z0軸に沿ってZaまで平行移動させると基準座標Rbと一致する関係にある。但し、Zaの値は不明であるが、軸間オフセットがX0軸、Y0軸方向に現れるがZ0軸方向には現れないから、Zaの値が不明であっても、軸間オフセット量を求める際の支障となるものではない。
【0068】
そして、この軸間オフセットがないとしたときの基準座標Rbとロボット座標R0との関係から、前記各移動目標位置をロボット座標R0での3次元座標値で指定して先端2軸直交点Cを移動させると、先端2軸直交点Cの実際の移動位置は、上述のようにして求めた基準座標Rb上の移動目標位置から軸間オフセットに応じた量だけXbYb方向にずれるので、そのずれ量から軸間オフセットのずれ量を求めることができるものである。
【0069】
ここで、先端2軸直交点Cは、手首アーム11の座標R5およびフランジ12の座標R6の原点O5およびO6と一致しているので、ティーチングペンダント4により、手首アーム11の座標R5またはフランジ12の座標R6、例えば座標R6を移動目標位置に移動させる操作を行うことにより、先端2軸直交点Cを移動目標位置へ移動させることができる。
【0070】
さて、各平面A1,A2上に選択した任意の複数位置にロボットアーム6の先端2軸直交点Cを移動させるに先立ち、例えば第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行の状態にし、その上で第2,3の回転関節J2,J3の回転軸14を回転させることにより、前記移動目標位置に、先端2軸直交点Cを移動させるとしたとき、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による先端2軸直交点Cの移動位置誤差を排除する処理を行う。
【0071】
まず、回転駆動系の撓みとは、サーボモータ15の回転軸から歯車減速装置16を経て回転関節J1〜J6の回転軸14に至るまでの伝達トルクによる捻り方向の撓みをいう。回転軸14は軸方向に円弧状に撓みを生じないものとする。回転駆動系の撓みは、回転駆動系に作用するトルクと回転駆動系のばね定数とから求めることができる。そのうち、ばね定数はロボット2において既知であり、その値は制御装置3のROM20に予め記憶されている。回転駆動系に作用するトルクは、第2軸Lc−2、第3軸Lc−3、第5軸Lc−5について考える(第1軸Lc−2、第4軸Lc−3、第6軸Lc−5には、大きなトルクは作用せず、絶対位置誤差を生じさせるような撓みは生じない。)。
【0072】
回転駆動系に作用するトルクは、図11に示すように、回転軸14が支えるリンクLの質量Wと、回転軸14からリンクLの中心までの距離Dとの積で求めることができる。そして、前記平面A上に選択した任意の複数位置にロボットアーム6の先端2軸直交点Cを移動させる場合、第5軸Lc−5を第2,3軸Lc−2,Lc−3と平行に保持し、下アーム8と第1の上アーム9を回転させて任意の複数位置に先端2軸直交点Cを移動させるものとして、各位置へ移動させる場合の第2の上アーム10、下アーム8、第1の上アーム9、手首アーム11、フランジ12の回転角度をティーチングペンダント4から読み取り、それらの回転角度から第2軸Lc−2、第3軸Lc−3、第5軸Lc−5に作用するトルクを計算し、そして、それらの回転駆動系の撓み(角度)αを求める(以上、図9のステップS2)。
【0073】
そして、求めた回転駆動系の撓みαだけサーボモータ15の回転角を加減して撓みが生じない場合と同等になるようにする。つまり、図11において、実線で示すリンクの位置が回転駆動系の撓みなしとした場合の移動目標位置で、破線で示す位置が回転駆動系の撓みありの場合の実際の移動位置とすると、サーボモータ15の回転角度を撓みα分だけ少なくする。これにより、回転駆動系が撓みを生じた状態で、リンクが実線の移動目標位置に到達するようになる。
【0074】
モータ原点位置誤差は、例えば前記特許文献1〜4に開示された方法によって検出する。また、ねじれ角誤差、リンク長誤差は、例えば前記非特許文献1に開示された方向によって検出する。この非特許文献1の方法は、第1軸Lc−1〜第6軸Lc−6の各軸を中心にロボットアーム6を回転させたときの手先の回転軌跡を3次元計測器により計測し、回転中心の位置と、回転軌跡を含む一平面の法線を演算する。回転中心の位置から各リンクの長さが求められ、法線の方向から各軸の方向が求められるので、それらリンクの長さと軸方向とからリンク長誤差とねじれ角誤差を求めることができる、というものである(以上、図9のステップS3)。
そして、求めたモータ原点位置誤差、リンク長誤差およびねじれ角誤差によりDHパラメータを修正し、それらの誤差が絶対位置誤差となって現れないようにしておく(図9のステップS4)。
【0075】
以上のような処理を行った後、ティーチングペンダント4を操作し、まず、複数の平面A1のうち、所望の1つの平面A1にショルダ7の座標R1のX1軸を合わせる。そのためには、ショルダ7を原点位置から、平面A1のX0軸とのなす角度βだけ回転させる。これにより、第2回転関節J2および第3の回転関節J3の回転軸14を回転させることにより先端2軸直交点Cを平面A1,A2上に並ぶ複数の移動目標位置に移動できるようになる。
【0076】
そこで、例えば第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行の状態に保持し、第2回転関節J2および第3の回転関節J3の回転軸14を回転させることで、第5軸Lc−5を水平のままにして、下アーム8(第2軸Lc−2)と第1の上アーム9(第3軸Lc−3)だけを回転させて平面A1,A2上に任意に選択された複数の移動目標位置に先端2軸直交点Cを移動させる。このとき、先に移動目標位置毎に求めた回転駆動系の撓みに応じてサーボモータ15の回転角度を加減するものである。
【0077】
平面A1,A2上に任意に選択された複数の移動目標位置に手先を移動させる場合、ロボットアーム6は、図13に示すように、第2,3の両回転関節J2,J3の回転軸14を一方向に回転させることにより、ショルダ7から一方側に倒れて前屈した姿勢(前屈姿勢)で一方の平面A1上の移動目標位置に手先を移動させ、他方の平面A2上の移動目標位置に先端2軸直交点Cを移動させる場合には、ロボットアーム6は、第2,3の両回転関節J2,J3の回転軸14を他方向に回転させることにより、図14に示すように、反転してショルダ7から他方側に倒れて後屈した姿勢(ロボットアーム6がショルダ7の後側に倒れた後屈姿勢)で先端2軸直交点Cを移動させる。
【0078】
そして、先端2軸直交点Cを移動目標位置に移動させる都度、次のような動作を行って実際の先端2軸直交点Cの位置を推測する。即ち、各移動目標位置において、図15に示すように第6回転関節Lc−6の回転軸14を回転させ、この回転により円形の回転軌跡上を移動する発光ダイオード24の互いに異なる3以上の複数位置を3次元計測器25により計測する。計測した発光ダイオード24の回転軌跡上の3以上の複数位置から、当該発光ダイオード24の回転軌跡の中心位置C6と、発光ダイオード24の回転軌跡上の3以上の複数位置を含む平面の法線V6とを求める。そして、発光ダイオード24の回転軌跡の中心を通って法線V6と平行の第1の直線L6を求める(第1の動作)。
【0079】
また、図16に示すように、第5回転関節Lc−5の回転軸14を回転させ、この回転により円形の回転軌跡上を移動する発光ダイオード24の互いに異なる3以上の複数位置を3次元計測器25の回転軌跡の中心位置C5と、発光ダイオード24の回転軌跡上の3以上の複数位置を含む平面の法線V5とを求めて発光ダイオード24の回転軌跡の中心を通って法線V5と平行の第2の直線L5を求める(第2の動作)。
【0080】
以上の第1の直線L6と第2の直線L5の交点を先端2軸直交点Cの計測位置とする。この先端2軸直交点Cの計測位置(カメラ座標Rc)を求める計算方法を示す。
C6のカメラ座標上の位置を(X6,Y6,Z6)、V6(ベクトル)を(l6,m6,n6)とする。また、C5のカメラ座標上の位置を(X5,Y5,Z5)、V5(ベクトル)を(l5,m5,n5)とする。但し、V6およびV5は単位ベクトルで、l6,m6,n6およびl5,m5,n5はV6およびV5をXc軸、Yc軸、Zc軸の各方向に分解した長さを示す。
【0081】
C6を通りV6に平行な直線の方程式P1は、
(x,y,z)=(X6,Y6,Z6)+t(l6,m6,n6)
P1=C6+t・V6…(1)
となる。
C5を通りV5に平行な直線の方程式P2は、
(x,y,z)=(X5,Y5,Z5)+s(l5,m5,n5)
P1=C5+s・V5…(2)
となる。
なお、t,sは媒介変数である。
【0082】
2つの直線P1,P2を最短距離で結ぶ直線はP1,P2と垂直関係にあるので、P1からP2に向かうベクトルをuとすると、u,V6、u,V5の内積Dotは0となるから、
Dot(u,V6)=0
Dot(u,V5)=0
である。
【0083】
2つの直線の式を上記内積の式に代入すると、
Dot(u,V6)=Dot(C5−C6+s・V5−t・V6,V6)
=Dot(C5−C6,V6)+s・Dot(V5,V6)−t=0…(3)
Dot(u,V5)=Dot(C5−C6+s・V5−t・V6,V5)
=Dot(C5−C6,V6)+s−t・Dot(V5,V6)=0…(4)
となる。
【0084】
t,s以外は既知の値であるから、(3)式、(4)式からs,tを算出でき、算出したs,tを(1)式、(2)式に代入すれば、2つの直線の最近点を求めることができる。そして、図17に示すように、求めた2つ直線の最近点N1,N2を平均することで先端2軸直交点Cの位置を求めることができる。なお、2つの直線が1点で交われば、2つの直線の最近点N1,N2は同じ値となる。
【0085】
このようにして求めた先端2軸直交点Cの位置はカメラ座標Rc上の位置であるから、これを基準座標Rbの位置に変換する。この変換は図18に示す同時変換行列により行う(図9のステップS6)。
その後、各移動目標位置における先端2軸直交点Cの計測位置の基準座標RbでのXb,Yb座標値を取得する。そして、Xb,Yb座標値で示される先端2軸直交点Cの位置を、基準座標RbのXbYb平面上にプロットする。
【0086】
図19は基準座標RbのXbYb平面を示す。ここで、説明の簡単化のために、移動目標位置はX0軸上に存在する複数位置とする。図19において、白抜き丸印がロボット座標R0上での先端2軸直交点Cの移動目標位置、黒丸印が基準座標Rb上での先端2軸直交点Cの移動目標位置(Xb,Yb座標値はX0,Y0座標値と等しい)、×印が先端2軸直交点Cの計測位置を示している。
【0087】
移動目標位置に先端2軸直交点Cを移動させる場合、回転駆動系の撓み、モータ原点誤差、リンク長誤差、ねじれ角誤差によっては移動位置に誤差が生じないように前処理したのであるから、移動目標位置と実際の移動位置との間の誤差は、軸間オフセットによって生じたものと考えられる。そして、この軸間オフセットによって生ずる誤差は、移動目標位置が鉛直の一平面上(ここではX0軸上)にあるから、先端2軸直交点Cの計測位置はロボット座標R0上での移動目標位置から軸間オフセットだけずれて一直線上に並ぶ(一直線上に正確に並ばないまでも、一直線に沿って分布する)こととなる。そこで、計測位置を結んだ線分を計測依存線分Bとし、この計測依存線分Bを延長した直線Bbと原点Obとの最短距離(ObからBbに下ろした垂線の長さ)を求めると、この最短距離が軸間オフセット量Fとなる(図9のステップS7)。
【0088】
この場合、ロボットアーム6を前屈させて平面A1上の移動目標位置に移動させた場合の実際の移動位置を結ぶ計測依存線分Bと、ロボットアーム6を後屈させて平面A2上の移動目標位置に移動させた場合の実際の移動位置を結ぶ計測依存線分Bとが一本の直線にならなかった(一本の直線近辺に並ばなかったことも含む)場合、今までの過程のどこかに不都合があったと考えられるので、この場合には、最初のステップS1からやり直すようにする。このように、2つの平面A1,A2上に移動目標位置を定めることで、実施に際した不具合を検知することができるようになる。
【0089】
さて、実際に、X0軸を含む平面A1,A2以外の他の同様の平面に定めた移動目標位置ついても、上記したと同様にして軸間オフセット量Fを求める。この場合も、手先の実際の移動位置は一直線上に並ぶ筈である。
そして、X0軸を含む平面A以外の他の平面A上に定めた移動目標位置についての計測位置を結んでできる計測依存線分Bについても同様にして原点Obとの最短距離を計測する。これら各計測依存線分Bと原点Obとの間の最短距離は、どの計測依存線分Bについても同一となる筈であるが、実際には測定誤差などの原因で必ずしも同一とはならないことが多い。このような場合には、計測依存線分Bと原点Obとの最短距離の平均を求めて軸間オフセットを出す。これにより、軸間オフセットをより正確に求めることができるようになる。
【0090】
以上のようにして求めた軸間オフセットは、第2軸Lc−2、第3軸Lc−3、第5軸Lc−5において生ずる軸間オフセットの合計で、どの軸のオフセットであるかは分析できない。このため、図5に示すHDパラメータのうち、J2,J3のd欄のいずれかに軸間オフセットの値を追加し、または、J2,J3のd欄に分けて追加する。なお、第5軸Lc−5は、第4軸Lc−4の回転によって水平から鉛直までのいずれの角度も取り得るので、軸間オフセットをJ5のd欄に配分すると、かえって絶対位置精度を低下させることになる。このため、軸間オフセットをJ5のd欄には配分しない。
【0091】
J2,J3のd欄のいずれか、または、J2,J3のd欄に分けて軸間オフセットの値を追加することによって絶対位置精度が改善されたか否かを確認するために、軸間オフセットを追加したDHパラメータを用いてXb軸上に複数の目標位置を定め、上述したと同様にして手先を目標位置に移動させ、実際の移動位置を測定する実験を行った。
この結果、XbYb平面上での位置誤差が0.67mmから0.17mmに減少した。Zb軸方向の位置誤差も0.9mmから0.06mmに減少した。このことから、XbYbZbの3次元方向について、位置誤差が1.12mmから0.18mmに減少したということができる。
【0092】
このように本実施形態によれば、軸間オフセットを量的に把握でき、この軸間オフセットによりDHパラメータを修正して軸間オフセットによる誤差がない、或いは誤差ができるだけ生じないようにすることができ、絶対位置精度を高めることができる。
【0093】
(第2の実施形態)
図20は本発明の第2の実施形態を示す。この実施形態は、基準座標Rbを第1の実施形態とは異なる方法にて設定したものであるが、その後の軸間オフセット量の求め方は第1の実施形態と同じである。
【0094】
この実施形態では、先端2軸直交点Cを使って基準座標Rbを設定する。つまり、第1〜第6の回転関節J1〜J6のうち少なくとも第2〜第4の回転関節J2〜J4の回転軸14を固定したまま、第1回転関節J1の回転軸14によりショルダ7を互いに異なる3以上の任意の角度位置に回転させる。そして、各角度位置において、第1の実施形態にて説明した第1の動作を行って第1の直線L6(フランジ12の回転中心線である第6軸Lc−6)を求めると共に、第2の動作を行って第2の直線L5(手首アーム11の回転中心線である第5軸Lc−5)を求める。その後、これら第1の直線L6と第2の直線L5の交点、即ち先端2軸直交点Cの位置を計算し、当該位置を先端2軸直交点の計測位置とする。
【0095】
これらの先端2軸直交点Cの計測位置は、第1軸Lc−1を中心とする一つの円Eの上に存在する。測定制御装置26は、これら先端2軸直交点Cの計測位置を通る円Eの中心位置と、これら先端2軸直交点Cの計測位置を含む平面の法線Lvとを求める。そして、測定制御装置26は、円Eの中心を原点Ob、当該原点Obを通って複数の先端2軸直交点Cの計測位置を含む平面の法線Lvと平行の直線をZb軸、原点Obを通ってZb軸に直交する任意の直線をXb軸、原点Obを通ってZbおよびXbの両軸に直交する直線をY軸bとする基準座標Rbを定める。
【0096】
(第3の実施形態)
図21および図22は本発明の第3の実施形態を示す。この実施形態は、基準座標Rbは第1の実施形態または第2の実施形態と同様にして求めるが、軸間オフセット量の求め方を第1の実施形態における方法とは別の方法によって求めるようにしたものである。
【0097】
本実施形態は、先端2軸直交点Cの移動可能な範囲内における任意の複数位置を、当該先端2軸直交点Cの移動目標位置に設定し、当該複数位置に先端2軸直交点Cを移動させたとき、移動目標位置と先端2軸直交点Cの実際の移動位置との差を基に軸間オフセット量を求めるようにしたものである。
即ち、ロボット座標R0上で任意の複数位置を移動目標位置として選択する。なお、ロボット座標R0上で指定された移動目標位置のX0座標およびY0座標の値は基準座標RbのXb座標およびYb座標でも同じ値を取る(軸間オフセットなしとした場合)。
【0098】
図21に移動目標位置として選択した複数位置を黒丸印で示した。これらのうち、Xb座標値がプラス側(Yb軸の右側)の移動目標位置への手先の移動は、ロボットアーム6の前屈姿勢で行い、マイナス側(Yb軸の左側)の移動目標位置への手先の移動は、ロボットアーム6の後屈姿勢で行うものとする。
そして、第1の実施形態と同様に、選択した複数の移動目標位置に先端2軸直交点Cを移動させるに先立ち、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による先端2軸直交点Cの移動位置誤差を排除する処理を行う。
【0099】
この後、先端2軸直交点Cを選択された複数の移動目標位置に移動させる。このときの移動は、第1回転関節J1の回転軸14と、第2,3,5回転関節J2,J3,J5のうち第2,3回転関節J2,J3の回転軸14とを回転させることによって行う。第5軸Lc−5を水平に保持するために、第4の回転関節J4の回転軸14は回転させない。第5回転関節J5の回転軸14は、先端2軸直交点Cを移動目標位置に移動させるためには関係のない回転軸であるので、あえて回転させる必要はない。
【0100】
そして、各移動目標位置において、第1の実施形態にて説明した先端2軸直交点Cの計測位置を求めるために、第1の動作を行って第1の直線(フランジ12の回転中心線である第6軸Lc−6)を求めると共に、第2の動作を行って第2の直線(手首アーム11の回転中心線である第5軸Lc−5)を求める。その後、これら第1の直線と第2の直線の交点、すなわち先端2軸直交点Cの位置を求め、当該位置を先端2軸直交点の計測位置とする。
この先端2軸直交点Cの計測位置はカメラ座標Rcの位置であるから、これを基準座標Rbの位置に変換する。各移動目標位置での先端2軸直交点Cの計測位置を図21に×印で示した。
【0101】
先端2軸直交点Cの移動目標位置と計測位置とから軸間オフセットを求めるには、基準座標RbのXbYb座標面上に図21に黒丸で示すように移動目標位置のXbYb座標値(X0Y0座標値と同じ)と計測位置をプロットし、原点Obから移動目標位置までの線分の長さを目標位置半径D0とし、発光ダイオード24の計測位置から原点Obと移動目標位置とを通る直線に下ろした垂線の長さをオフセット誤差成分M0とする。そして、図22に示すように、横軸に目標位置半径D0を取り、縦軸にオフセット誤差成分M0を取ったグラフを作成して、このグラフに各移動目標位置について目標位置半径D0とオフセット誤差成分M0との関係をプロットしこれらプロットされた点を通る直線を誤差直線Gとする。この誤差直線Gにグラフの原点から垂線を下ろすと、この垂線の長さが第2,3,5の回転関節の合計の軸間オフセット量Fとなる。
【0102】
(第4の実施形態)
図23および図24は本発明の第4の実施形態を示す。この実施形態は、第1の実施形態または第2の実施形態で説明したと同様にして基準座標Rbを設定した後、手先を任意の基準姿勢にしたときの発光ダイオード24の位置と先端2軸直交点Cとの位置関係を求め、その後に先端2軸直交点Cを移動目標位置に移動させたとき、手先を基準姿勢にして発光ダイオード24の位置を計測し、この計測した位置と、先に求めた発光ダイオード24の位置と先端2軸直交点Cとの位置関係とから先端2軸直交点Cの計測位置を求めようとするものである。
【0103】
即ち、基準座標Rbの設定後、手先を基準姿勢、例えば、図23に示すように、手先座標RfのZf軸がZ0軸(第1軸Lc−1)と平行でZf軸のプラス側が下向き(Z0軸と反対向き)、Xf軸がX0軸と平行でX0軸とはプラス側の向きが反対、Yf軸がY0軸と平行でプラス側の向きがY0軸のプラス側の向きと同じになる姿勢にする。
この手先の基準姿勢において、発光ダイオード24の位置を3次元計測器25により計測する。また、第1の実施形態にて説明した第1の動作を行って第1の直線(フランジ12の回転中心線である第6軸Lc−6)を求めると共に、第2の動作を行って第2の直線(手首アーム11の回転中心線である第5軸Lc−5)を求める。その後、これら第1の直線と第2の直線の交点、すなわち先端2軸直交点Cの位置を求める。
【0104】
手先の基準姿勢における発光ダイオード24の位置と、第1の直線と第2の直線とから求めた先端2軸直交点Cの位置とはカメラ座標Rc上での位置であるから、これら2つの位置を基準座標Rb上の位置に変換する。そして、図24に示すように、基準座標Rb上において、発光ダイオード24の位置を始点とし、先端2軸交差点Cの位置を終点とするベクトルを求め、このベクトルを検出ベクトルVとすると共に、当該検出ベクトルVが基準座標RbのXbYbZbの各軸となす角度γ、δ、εを求めてこれを指向角度とする。
【0105】
その後、軸間オフセットを求めるために、第1の実施形態または第2の実施形態と同様に、先端2軸直交点Cの移動目標位置を定める。そして、モータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、先端2軸直交点Cを移動目標位置に移動させる。
【0106】
先端2軸直交点Cを移動目標位置に移動させる都度、発光ダイオード24の位置を3次元計測器25によって計測する。この3次元計測器25で計測した発光ダイオード24の位置はカメラ座標Rc上の位置であるから、これを基準座標R上の位置に変換する。その後、各移動目標位置について、発光ダイオード24の位置を始点とし、且つ基準座標RbのXbYbZbの各軸とのなす角度が指向角度γ、δ、εとなるように検出ベクトルVを作成して当該検出ベクトルVの終点の位置を先端2軸直交点Cの基準座標Rb上の計測位置とする。
以上のようにして先端2軸直交点Cの基準座標Rb上の計測位置を基に、第1の実施形態または第2の実施形態で求めたと同様にして軸間オフセット量を求める。
【0107】
(その他の実施形態)
本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような変更或いは拡張が可能である。
先端2軸直交点Cを目標位置に移動させる際、第5回転関節の回転軸の回転中心は第2,3の回転関節の回転軸の回転中心線と必ずしも平行でなくても良い。
基準座標RbのXb軸は必ずしもX0軸と平行(軸間オフセットなしと仮定したとき)の直線に定める必要はない。原点Obを通る任意の直線に定めれば良い。この場合、任意の直線(Xb軸)とX0軸とのなす角度(ショルダ7の原点位置からの回転角度)を基に基準座標Rbとロボット座標R0との関係を求めて座標変換することによって基準座標Rb上の位置とロボット座標R0上の位置とを互いに変換することができるようにすれば良い。
【0108】
第1の実施形態において、平面A1(Zb軸から一方向に延びる平面)から平面A2(Zb軸から反対方向に延びる平面)の移動目標位置へ手先を移動させる場合、移動目標位置の選択位置によっては、第2,3,5の各回転関節J2、J3,J5のうち1つの回転関節の回転軸14を回転させれば、ロボットアーム6を反転させて手先を移動目標位置に移動させることができる。
【0109】
回転駆動系の撓みα、モータ原点位置誤差、リンク長誤差およびねじれ角誤差は、第1軸Lc−1〜第4軸Lc−4についてだけ行えば良い(リンク長誤差は第1〜第4のリンク7〜10)。第5軸Lc−5と第6軸Lc−6の誤差は先端2軸直交点Cの位置に影響を与えないからである。但し、回転駆動系の撓みαは、水平方向の軸だけを対象にしているので、実際には、第2,3軸Lc−2,Lc−3について行う。
【0110】
第1の実施形態において、第1の直線L6と第2の直線L5は、どちらを先に求めても良い。
第1および第2の実施形態において、基準座標Rbを求めるためにロボットアーム6を第1軸Lc−1を中心に回転させる際、第5,6の両回転関節J5,J6の回転軸14は固定であっても、回転動作してもどちらでも良い。
【符号の説明】
【0111】
図面中、3は制御装置、5はベース(ベースリンク)、6はロボットアーム、7はショルダ(第1リンク)、8は下アーム(第2リンク)、9は第1の上アーム(第3リンク)、10は第2の上アーム(第4リンク)、11は手首アーム(第5リンク)、12はフランジ(第6リンク)、24は発光ダイオード(測定点)、25は3次元計測器(3次元計測手段)を示す。
【技術分野】
【0001】
本発明は、互いに直交する方向の回転軸を有する第1回転関節と第2,3,5回転関節とのオフセットを検出してこれを補正する6軸ロボットの軸間オフセット検出方法に関する。
【背景技術】
【0002】
6軸ロボットは、固定された3次元の直交座標で表した位置データが与えられると、この位置データを回転関節の角度データに変換して手先を位置データに示された位置に移動させるように構成されている。この場合、ロボットの構成部品の加工誤差や組み付け誤差により、リンク(アーム)長、回転関節と次の回転関節の回転軸間の角度(以下、ねじれ角という)、リンクの原点位置とモータの原点位置との関係(以下、モータ原点位置という)などに誤差を生じたり、各回転関節の駆動系に作用する付加トルクによって駆動系に撓み(以下、単に撓みという)を生じたりすると、手先の位置や姿勢にずれを生じ、絶対位置精度が低下する。
【0003】
絶対位置精度を向上させるために、上述の誤差や撓みを考慮して回転関節の回転角を補正する手法は現在までに種々考えられている。例えば、非特許文献1は、リンク長とねじれ角についての誤差を検出し、その誤差を補正する方法を開示している。また、特許文献1〜4は、モータ原点位置の誤差検出とその補正方法を開示している。駆動系の撓みについては、各リンクの質量と各リンクの姿勢とから各回転関節のモータに作用する負荷トルクを算出し、更に、この負荷トルクと駆動系のばね定数とから駆動系の捻り変形角度を求めて当該捻じり変形角度から各リンクの撓み角度を求め、そして各リンクの撓み角度を減殺するようなモータ回転角を求めることにより駆動系の撓みを補正する方法が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−220587号公報
【特許文献2】特開2009−274186号公報
【特許文献3】特開2009−274187号公報
【特許文献4】特開2009−274188号公報
【非特許文献】
【0005】
【非特許文献1】社団法人 日本ロボット工業会発行 平成9年度通商産業省工業技術院委託 プラント用知能ロボットの標準化に関する調査研究 成果報告書 第52頁4.3.2.3対偶軸同定法
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明者は、6軸ロボットについて、上記方法を用いてリンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓みを求め、その結果から各回転関節の回転角を修正した上で、手先が位置データに示された位置に移動するかを求める実験を行った。しかし、この実験の結果は、本発明者が当初予定していた絶対位置精度を満足させるものではなかった。
【0007】
本発明は上記の事情に鑑みてなされたもので、その目的は、6軸ロボットにおいて、上記のリンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓みを修正してもなお満足できる絶対位置精度を得ることができなかった要因を推定し、推定した要因による誤差量を計測する方法を提供することによってロボットの絶対位置精度の更なる向上を図ろうとすることにある。
【課題を解決するための手段】
【0008】
本発明者は、絶対位置精度が不足する理由として、リンク長誤差、ねじれ角誤差、モータ原点位置誤差、駆動系の撓み以外に位置誤差を生じさせる要因が存在し、これが、軸間オフセットにあるものと推測した。
【0009】
ここで、組み付け後の第2,第3,第5の各回転関節の位置が正規の位置から回転中心線方向にずれていた場合、このずれを軸間オフセットと言う。
つまり、第2,第3,第5の各回転関節がロボットの構成部品の加工誤差や組み立て誤差などによって正規の位置からずれると、第2,第3,第5の各リンクの座標の設計上の原点位置と、第2,第3,第5の各回転関節の回転軸との関係がずれを生ずることとなり、その結果、ロボットの手先がロボット座標上の位置で指定された目標位置から軸間オフセットだけずれるようになる。
従って、軸間オフセットを計測し、これを補正すれば、絶対位置精度をより高くすることができる。しかしながら、従来、軸間オフセットと絶対位置精度との関係を考察し、軸間オフセットを計測しようとする提案はなされていない。
【0010】
本発明による軸間オフセットの方法は以下の通りである。
(請求項1)
請求項1の発明では、まず、第6リンクと一体に動作する測定点を設け、ロボットアームを第1回転関節の回転軸を中心に回転させて、測定点の回転軌跡上の3以上の複数位置を3次元計測手段により計測し、この計測結果から測定点の回転中心の位置と、測定点の回転軌跡上の複数位置を含む平面の法線とを求めて、測定点の回転中心を原点、当該原点を通る前記法線と平行の直線をZ軸、原点を通って前記Z軸に直交する任意の直線をX軸、原点を通ってZおよびXの両軸に直交する直線をY軸とする基準座標を定める。
【0011】
次に、第1回転関節の回転軸の回転中心線から延ばした任意の一平面上の任意の複数位置を移動目標位置に定めて当該移動目標位置に、第5回転関節の回転軸の回転中心線と第6回転関節の回転軸の回転中心線との直交点である先端2軸直交点を移動させることとしたとき、第1〜第4の各回転関節の回転軸を含む第1〜第4の各駆動系を介して第1〜第4の各リンクを駆動するモータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差による位置誤差および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行う。
【0012】
その上で、先端2軸直交点を複数の移動目標位置に移動させ、各移動目標位置において、第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行う。
【0013】
そして、第1の直線と第2の直線の交点を先端2軸直交点の計測位置とし、当該先端2軸直交点の位置を基準座標上の位置に座標変換し、先端2軸直交点の基準座標上のXbYb座標値を求め、求めた先端2軸直交点のXbYb座標値を基準座標のXbYb平面上にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に基準座標の原点から下ろした垂線の長さをずれ量として求める。このずれ量が第2,3,5の回転関節の合計の軸間オフセット量となる。
以上のようにして求めた軸間オフセット量により、例えばDHパラメータを補正することにより、絶対位置精度の向上を図ることができる。
【0014】
(請求項2)
請求項2の発明は、請求項1とは基準座標の求め方が異なる。つまり、請求項2では、少なくとも第2〜第4の回転関節の回転軸を固定したまま、第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線を求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、求めた第1の直線と第2の直線の交点を先端2軸直交点の計測位置とする。
【0015】
そして、各角度位置において求めた3以上の複数の先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、原点を通ってZ軸に直交する任意の直線をX軸、原点を通ってZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とする。
【0016】
(請求項3)
請求項3の発明は、請求項1または2における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、これら移動目標位置に先端2軸直交点を移動させることとしたとき、前述の各モータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行った上で、第1〜3の回転関節の回転軸を回転させることにより先端2軸直交点を複数の各移動目標位置に移動させ、各移動目標位置において前述したと同様にして第1の直線を求める動作と、第2の直線を求める動作とを行い、第1の直線と第2の直線の交点を先端2軸直交点の計測位置とし、当該先端2軸直交点の計測位置を基準座標上の位置に座標変換して基準座標上のXY座標値を求め、各移動目標位置について、基準座標のXY平面上に移動目標位置のXY座標値と先端2軸直交点の計測位置のXY座標値とをプロットし、基準座標の原点からXY平面上の移動目標位置までの線分の長さを目標位置半径とすると共に、XY平面上の先端2軸直交点の計測位置から基準座標の原点と移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、直交2軸のうち一方の軸に目標位置半径をとり他方の軸にオフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とする。
このようにしても、請求項1と同様の効果を得ることができる。
【0017】
(請求項4)
請求項4の発明は、請求項1または請求項2と同様にして基準座標を求めた後、手先を任意の基準姿勢にしたときの測定点の位置を3次元測定手段により計測し、且つ、第6回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って法線と平行の第1の直線を求める動作と、第5回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って法線と平行の第2の直線を求める動作とを行い、手先の基準姿勢での測定点の計測位置から第1の直線と第2の直線の交点に至るベクトルを求めて当該ベクトルを先端2軸直交点の検出ベクトルとすると共に、当該検出ベクトルが基準座標のXYZ軸となす角度を求めて当該角度を指向角度とする。
【0018】
そして、第1回転関節の回転軸の回転中心線から延ばした任意の一平面上の任意の複数位置を移動目標位置に定め、これら移動目標位置に第5回転関節の回転軸の回転中心線と第6回転関節の回転軸の回転中心線との直交点である先端2軸直交点を移動させることとしたとき、第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して第1〜第4の各リンクを駆動するモータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行った上で、第2,3の回転関節を回転させることにより、複数の移動目標位置のそれぞれに先端2軸直交点を移動させ、各移動目標位置において、手先を基準姿勢に保持した状態で測定点の位置を3次元計測手段により計測し、計測した測定点の位置を基準座標上の位置に座標変換し、当該基準座標上の特定点の位置から指向角度となるように検出ベクトルを作成したとき当該検出ベクトルの終点の位置を先端2軸直交点の基準座標上の計測位置と定め、求めた複数の先端2軸直交点の基準座標上の計測位置のXY座標値を基準座標のXY座標面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に基準座標の原点から下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とする。
【0019】
(請求項5)
請求項5の発明は、請求項4とは基準座標の求め方が異なる。つまり、請求項5では、請求項2と同様に、第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、第1の直線を求める動作と、第2の直線を求める動作とを行い、求めた第1の直線と第2の直線の交点を先端2軸直交点の計測位置とする。
【0020】
そして、各角度位置において求めた3以上の複数の先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、原点を通ってZ軸に直交する任意の直線をX軸、原点を通ってZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とする。
【0021】
(請求項6)
請求項6の発明は、請求項4または請求項5における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、各移動目標位置に先端2軸直交点を移動させることとしたとき、第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して第1〜第4の各リンクを駆動するモータの原点位置誤差、第1〜第4の各回転駆動系の撓み、第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって先端2軸直交点の位置誤差が生じないように補正処理を行った上で、第1〜3の回転関節の回転軸を回転させることにより先端2軸直交点を前記複数の各移動目標位置に移動させ、各移動目標位置において、手先を基準姿勢に保持して測定点の位置を3次元計測手段により計測し、計測した測定点の位置を基準座標上の位置に座標変換し、当該測定点の基準座標上の位置から指向角度となるように検出ベクトルを作成したとき当該検出ベクトルの終点の位置を先端2軸直交点の基準座標上の計測位置と定め、当該先端2軸直交点の基準座標上の計測位置のXY座標値を求め、且つ、移動目標位置を基準座標上の位置に座標変換し、各移動目標位置について、基準座標のXY平面上に、先端2軸直交点の基準座標上の計測位置と、移動目標位置の基準座標上の位置とをプロットし、基準座標の原点からXY平面上の移動目標位置までの線分の長さを目標位置半径とすると共に、XY平面上の先端2軸直交点の計測位置から基準座標の原点と移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、直交2軸のうち一方の軸に目標位置半径をとり他方の軸にオフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とする。
【0022】
(請求項7)
請求項7の発明は、請求項1,2,4,5のいずれかにおいて、第1回転関節の回転軸の回転中心線から延ばした一平面上の任意の複数位置を移動目標位置に定め、これら移動目標位置に先端2軸直交点を移動させる動作は、基準座標のZ軸から互いに反対方向に向けて伸ばした2本の直線について行い、Z軸から一方向に延ばした直線上から反対方向に延ばした直線上への先端2軸直交点の移行は、第1の回転関節の回転軸を固定した状態で第2,3の回転関節の回転関節の回転軸を回転させることによりロボットアームを反転させて行うことを特徴とする。
【0023】
一方の一平面上の任意の複数位置に先端2軸直交点を移動させたときの先端2軸直交点の計測位置を結んでできる計測依存線分と、ロボットアームを反転させて他方の平面上の任意の複数位置に先端2軸直交点を移動させたときの先端2軸直交点の計測位置を結んでできる計測依存線分とは一直線上に位置する筈である。一直線上に位置しない場合には、基準座標を設定する手法や、モータの原点位置誤差、第1〜第4の各回転駆動系の撓み、或いは第1〜第4の各リンクの長さ誤差により手先の位置誤差が生じないようにするための手法などに誤りがあったと考えられる。
このため、請求項7の発明によれば、軸間オフセット量が正しく求められたか否かの確認をすることができる。
【0024】
(請求項8)
請求項8は、請求項3または請求項6において、先端2軸直交点を移動目標位置に移動させる動作は、ロボットアームの前屈姿勢と、この前屈姿勢からロボットアームを反転させた後屈姿勢の双方で行うことを特徴とする。
【0025】
このようにすることにより、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、グラフにプロットしたとき、これらプロッタされた点が前屈姿勢と後屈姿勢とで一直線上に位置するか否かにより、請求項7と同様に軸間オフセットが正しく求められたか否かの確認をすることができる。
【図面の簡単な説明】
【0026】
【図1】本発明の第1の実施形態を示すロボット装置の斜視図
【図2】回転関節の概略を示す断面図
【図3】各回転関節の回転軸を原点位置に設定した状態で示すロボットの側面図
【図4】各リンクに設定された座標を示す斜視図
【図5】DHパラメータを示す表
【図6】DHパラメータの具体的数値を示す表
【図7】制御装置を示すブロック図
【図8】フランジ部分の斜視図
【図9】本発明の手順を示す行程図
【図10】基準座標の設定を説明するための斜視図
【図11】回転駆動系の撓みの説明図
【図12】移動目標位置を示す斜視図
【図13】ロボットの前屈状態を示す側面図
【図14】ロボットの後屈状態を示す側面図
【図15】第1の直線を求めるための説明図
【図16】第2の直線を求めるための説明図
【図17】第1の直線と第2の直線とから先端2軸直交点を求めるための説明図
【図18】カメラ座標を基準座標に変換するための同時変換行列を示す図
【図19】軸間オフセット量を求めるための説明図
【図20】本発明の第2の実施形態を示す図10相当図
【図21】本発明の第3の実施形態を示すもので、先端2軸直交点の移動目標位置と実際の移動位置を示す図
【図22】軸間オフセット量を求めるための説明図
【図23】本発明の第4の実施形態を示し、(a)はフランジ部分の側面図、(b)は下面図
【図24】検出ベクトルを示す斜視図
【発明を実施するための形態】
【0027】
(第1の実施形態)
以下に本発明の第1の実施形態を図1〜図19に基づいて説明する。図1には、6軸の垂直多回転関節型のロボット装置1が示されている。このロボット装置1は、6軸垂直多関節型ロボット(以下、単にロボットと称する)2と、ロボット2の動作を制御する制御装置(ロボット制御手段)3と、制御装置3に接続されてロボット2を手動操作によって動作させるためのティーチングペンダント(手動操作手段)4とを備えている。
【0028】
ロボット2は、据え付け面、例えば工場の水平な床面に固定されるベース(ベースリンク)5に対し、ロボットアーム6を構成するショルダ(第1リンク)7、下アーム(第2リンク)8、第1の上アーム(第3リンク)9、第2の上アーム(第4リンク)10と、手首アーム(第5リンク)11、フランジ(第1リンク)12を第1〜第6の各回転関節J1〜J6(図1には図示せず)により順次連結して構成されている。
【0029】
つまり、ショルダ7はベース5上に第1回転関節J1によって第1軸Lc−1を中心に水平方向に旋回可能に連結され、下アーム8はショルダ7の先端部に第2回転関節J2によって第2軸Lc−2を中心に上下(鉛直)方向に旋回可能に支持され、第1の上アーム9は下アーム8の先端部に第3回転関節J3によって第3軸Lc−3を中心に上下方向に旋回可能に支持され、第2の上アーム10は第1の上アーム9の先端部に第4回転関節J4によって第4軸Lc−4を中心に捻り回転可能に支持され、手首アーム11は第2の上アーム10の先端部に第5回転関節J5によって第5軸Lc−5を中心に上下方向に旋回可能に支持され、フランジ12は手首アーム11に第6回転関節J6によって第6軸Lc−6を中心に捻り回転可能に支持されている。
【0030】
前記第1〜第6の各回転関節J1〜J6は、図2にその概略が示されている。図2に示す通り、各リンク7〜12の回転関節J1〜J6は、前段のリンクに軸受13を介して回転可能に支持された回転軸14からなり、この回転軸14に次段のリンクが直接或いは継ぎ手材を介して連結される。回転軸14は、前段のリンクに固定された駆動源としてサーボモータ15に減速装置、例えば歯車減速装置16を介して回転駆動され、この回転軸14の回転によって次段のリンクが旋回動作或いは捻り回転動作を行うようになっている。
【0031】
ここで、前記第1軸Lc−1〜第6軸Lc−6は、第1〜第6の各回転関節J1〜J6の回転軸14の回転中心線Lcに相当するものである。これら第1軸Lc−1〜第6軸Lc−6の指向方向は次のとおりである。即ち、ショルダ7の回転中心である第1軸Lc−1は据え付け面と直交し、下アーム8の回転中心である第2軸Lc−2は第1軸Lc−1と直交する方向と平行、つまりベース5が例えば工場の床面に据え付けられているとして、第1軸Lc−1は据え付け床面に対し垂直(鉛直)、第2軸Lc−2は水平に定められている。
【0032】
第1の上アーム9の回転中心である第3軸Lc−3は第2軸Lc−2と平行つまり水平であり、第2の上アーム10の回転中心である第4軸Lc−4は第3軸Lc−3と直交する方向と平行、手首アーム11の回転中心である第5軸Lc−5は第4軸Lc−4と直交し、フランジ12の回転中心である第6軸Lc−6は第5軸Lc−5と直交する方向に定められている。そして、第4軸Lc−4と第5軸Lc−5は直交し、第5軸Lc−5と第6軸Lc−6も、第4軸Lc−4と第5軸Lc−5の直交点と同一点において直交している。
【0033】
ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の各回転軸14を駆動するサーボモータ15が原点位置にあるとき、それらショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12は原点位置にある。ここで、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12が全て原点位置にあるとき、ロボットアーム6は、図3に示すような垂直上向きの姿勢になる(下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11が垂直)。そして、各サーボモータ15が原点位置から正(プラス)方向および逆(マイナス)方向に回転することにより、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12も原点位置から正(プラス)方向および逆(マイナス)方向に回転するようになっている。
【0034】
ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12には、図4に示すように、それぞれ3次元の座標R1〜R6が規定されている。これらの座標R1〜R6の原点O1〜O6は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転中心線である第1軸Lc−1〜第6軸Lc−6上の所定位置に定められ、各座標R1〜R6のZ軸であるZ1〜Z6軸は第1軸Lc−1〜第6軸Lc−6と一致している。特に、手首アーム11の座標R5の原点O5とフランジ12の座標R6の原点O6のうちいずれか、この実施例では両原点O5およびO6が共に第5軸Lc−5と第6軸Lc−6の直交点に位置するように設定されている。
【0035】
また、座標R1〜R6のうち、ショルダ7の座標R1のX軸であるX1軸は水平で、第1軸Lc−1と第2軸Lc−2との共通垂線(図1にh線で示す。)と平行の方向に定められ、Y軸であるY1軸は水平で、Z1軸とY1軸とのベクトルの外積によって求められる方向(Z1軸とY1軸の双方に直交する方向)に定められている。残る座標R2〜R6のX軸であるX2〜X6軸は、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12を原点位置に動作させた状態で座標R1のX1軸と平行の方向に定められ、Y軸であるY2〜Y6軸は、Z2〜Z6軸とY2〜Y6軸とのベクトルの外積によって求められる方向に定められている(図4参照)。なお、X1〜X6軸、Y1〜Y6軸、Z1〜Z6軸のプラス方向は、図4に矢印で示す方向となっている。
【0036】
ベース5およびロボットアーム6の先端であるフランジ12の先端面にも座標R0およびRfが規定されている。上記座標R1〜R6がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転に伴って位置と向きが変化するのに対して、ベース5の座標R0は不動であり、ロボット座標とされている。このロボット座標R0の原点O0は、ショルダ7の回転中心線である第1軸Lc−1上にあって本実施形態では座標R1の原点O1と一致した位置に定められている。また、Z軸であるZ0軸は第1軸Lc−1に一致し、X軸であるX0軸およびY軸であるY0軸は、ショルダ7が原点位置にあるときの当該ショルダ7の座標R1のX1軸およびY1軸に一致している。
【0037】
フランジ12の先端面の座標Rfは手先座標とされ、その原点Ofは、第6軸Lc−6上、本実施形態では第6軸Lc−6とフランジ12の先端面との交点、つまり図8に示すように、フランジ12の円形をなす先端面の中心Pと一致するように定められ、Z軸であるZf軸は第6軸Lc−6に一致し、X軸であるXf軸およびY軸であるYf軸はフランジ12の座標R6のX6軸およびY6軸と平行に定められている。そして、フランジ12の先端面の中心Pがロボットアーム6の先端である手先に定められている。なお、フランジ12には、中心孔12aと、この中心孔12aから隔たった位置に小孔12bが形成されており、中心孔12aの中心がPで、中心孔12aと小孔12bの中心点間を結ぶ直線が手先座標RfのXf軸となるように定められている。
【0038】
以上の座標R0〜R6,Rfの原点O1〜O6,Ofは、本実施形態においては、座標R1のX1軸とZ1軸を含む一つの平面(鉛直のZ1X1平面)を仮定したとき、この一平面上に位置されている。そして、ロボットアーム6の動作時、座標R2〜R6,Rfの原点O2〜O6,Ofは、Z1X1平面上を移動するように設定されている。
【0039】
上述のように規定された座標R0〜R6,Rfの相互の関係は、周知のDHパラメータによって示される。図5はこのDHパラメータを表にまとめたもので、例えば、J1行については、座標R1を、X1軸方向にa1平行移動させ、Y1軸方向には平行移動させず、Z1軸方向にd1平行移動させてから、X1軸を中心にしてねじれ角−π/2だけ回転させると、座標R2が得られ、また、例えば、J6行については、座標R6を、X6軸方向およびY6軸方向には平行移動させず、Z6軸方向にd6平行移動させると、手先座標Rfが得られるということを示している。なお、ロボット座標R0とショルダ7の座標R1との関係は、ショルダ7が原点位置にあるとき、座標R1はロボット座標R0に一致しているので、図5には示していない。図6にa,b,dの具体的な数値例を示した。
【0040】
前記制御装置3は、図7に示すように、CPU(制御手段)17と、駆動回路(駆動手段)18と、位置検出回路(位置検出手段)19とを備えている。CPU17には、ロボット2全体のシステムプログラムや動作プログラムを作成するためのロボット言語やDHパラメータなどの各種データなどを記憶するROM20およびロボット2の動作プログラムを記憶するRAM21が接続されていると共に、ティーチング作業などを行う際に使用する前記ティーチングペンダント4が接続されている。ティーチングペンダント4は、図1に示すように、各種の操作部4aおよび液晶からなる表示器4bを備えている。
【0041】
位置検出回路19には、各サーボモータ15の回転軸(図示せず)に連結された回転センサとしてのロータリエンコーダ22が接続されている。位置検出回路19は、各ロータリエンコーダ22の回転角検出情報に基づいてショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を検出し、その回転角検出情報をCPU17に与える。
【0042】
ここで、CPU17は、ロボット座標R0上での手先の位置(手先座標Rfの原点Ofの位置)と姿勢(手先座標RfのXf軸、Yf軸、Zf軸の向き)が与えられると、手先がその位置と姿勢をとるようなショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を、ヤコビ行列を用いた逆運動学の周知の計算手法によって求める。
【0043】
また、ロボット座標R0上での各座標R1〜R6の位置(原点O1〜O6の位置)と姿勢(各座標R1〜R6のX軸、Y軸、Z軸の向き)が与えられると、各座標R1〜R6がその位置と姿勢をとるようなショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を求める。
【0044】
逆に、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度が与えられると、それら回転角度から座標変換を用いた順運動学の周知の計算手法によってロボット座標R0上での各座標R1〜R6および手先の位置と姿勢を求めることができるように構成されている。これらの逆運動学および順運動学の計算手法による演算には、周知のように各座標R0〜R6,Rfの相互の関係を示す前記DHパラメータが用いられる。
【0045】
そして、CPU17は、動作プログラムから手先の目標位置を取得すると、その目標位置からショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の目標動作角度を演算し、その目標動作角度に基づいた動作指令を駆動回路18に与える。駆動回路18は与えられた動作指令に基づいて各サーボモータ15を駆動する。このとき、CPU17は、位置検出回路19から与えられるショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角検出情報をフィードバック情報として各サーボモータ15をフィードバック制御する。
【0046】
ところで、先に述べたように、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の座標R1〜R6、手先座標Rfの原点O1〜O6,Ofは、いずれもショルダ7の座標R1のX1軸とZ1軸を含む鉛直面上に存在している。従って、ロボット2が高精度に組み立てられていれば、手先であるフランジ12の先端面の中心Pは設計上の手先座標Rfの原点Ofに一致し、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12を目標動作角度だけ回転させれば、手先は目標位置に正しく移動する。
【0047】
ところが、ロボット2の構成部品の製作誤差や組み立て誤差などにより、下アーム8、第1の上アーム9、手首アーム11の回転関節J2,J3,J5の各回転軸14の位置が第2軸Lc−2、第3軸Lc−3,第5軸Lc−5の方向にずれて正規の位置との間に誤差(軸間オフセット)を生ずると、実際の手先(フランジ12の先端面の中心P)の位置が設計上の手先座標Rfの原点Ofからずれる。
【0048】
すると、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12を目標動作角度だけ回転させても、手先の実際の移動位置が、回転関節J2,J3の各回転軸14の軸間オフセットの総和分だけ(第5軸Lc−5が垂直の場合)、或いは回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和分だけ(第5軸Lc−5が水平の場合)目標位置から水平方向にずれるようになる。なお、回転関節J5の回転軸14は短いので、回転関節J5単独の軸間オフセットは小さと考えられ、回転関節J2,J3の各回転軸14の軸間オフセットの総和と回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和とは、ほとんど差がないと考えられる。
【0049】
本発明方法は、回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和を推測し、推測した軸間オフセット分だけDHパラメータを修正して手先の実際の移動位置を目標位置にできるだけ近づけようとするものである。
【0050】
本発明方法は、ティーチングペンダント4を操作して、第5回転関節J5の回転軸14の回転中心線である第5軸Lc−5と第6回転関節J6の回転軸14の回転中心線である第6軸Lc−6との直交点(以下、先端2軸直交点C)を複数の目標位置に移動させたとき、先端2軸直交点Cの実際の移動位置を計算して目標位置とのずれ量を求め、このずれ量から軸間オフセットを推測するものである。
【0051】
この場合、先端2軸直交点Cの移動目標位置と実際の移動位置とのずれは、軸間オフセット以外の要因、即ち各回転関節J1〜J6の回転駆動系の撓み、各サーボモータ15の原点位置誤差、各リンク7〜12の長さ誤差、各回転関節J1〜J6の回転軸14相互間のねじれ角度誤差によっても生ずるので、これらの要因による位置誤差が生じないような補正処理を事前に行う必要がある。
【0052】
先端2軸直交点Cの位置を計算によって求めるために、図8に示すようにフランジ12の任意の位置に支持台23が取り付けられ、この支持台23の先端部に測定点としての発光ダイオード24が設けられている。そして、ロボット2から離れた適宜の位置には、上記発光ダイオード24の位置を計測するために、図7に示す3次元計測器(3次元計測手段)25が固定されている。
【0053】
上記3次元計測器25は、例えば3台のCCDカメラを備えた3次元計測器(例えば、株式会社東洋テクニカ;ロボットキャリブレーションROCALシステム)からなる。なお、3次元計測器25はレーザトラッカなどであっても良い。
【0054】
3次元計測器25による発光ダイオード24の計測位置は、パソコンからなる測定制御装置26によって3次元計測器25に予め設定された3次元座標(以下、カメラ座標という。)Rc上の位置で示される。このカメラ座標Rcの一目盛で表わされる距離は、手先がロボット座標R0の一目盛分の距離だけ移動したときの距離と等しくなるように定められている。従って、ロボット座標R0の一目盛の長さとカメラ座標Rcの一目盛の長さとは同じ距離を表わすこととなる。
【0055】
さて、本発明方法は図9に示す手順により行われる。まず、カメラ座標Rc上におけるロボット座標R0の位置、当該ロボット座標R0のX0軸、Y0軸およびZ0軸の方向は分からない。そこで、本実施形態では、カメラ座標Rc上にロボット座標R0に代わる座標として基準座標Rbを設定する(図9のステップS1)。この基準座標Rbの設定は、ティーチングペンダント4を使用して行う。
【0056】
ここで、ティーチングペンダント4の機能について説明すると、当該ティーチングペンダント4は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12のサーボモータ15を個別に所望の角度だけ回転させて、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12をそれぞれの原点位置から正逆方向に所望の回転角度だけ回転させることができるように構成されている。
【0057】
また、ティーチングペンダント4は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢をロボット座標R0で指定できるようになっており、ティーチングペンダント4によりロボット座標R0上での位置と姿勢が指定されると、ロボット装置1のCPU17がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角を演算し、その回転角となるように各サーボモータ15を駆動する。これにより、各座標R1〜R6,Rfや手先が指定された位置と姿勢をとるように動作する。
【0058】
更に、現在のショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢を知りたい場合、その旨の操作を行うと、CPU17がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角からショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢を演算し、ティーチングペンダント4の表示器4aがそのロボット座標R0上の位置と姿勢を表示するようにもなっている。
【0059】
ここで、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢とは、各座標R1〜R6およびRfの位置と姿勢のことと同義である。
カメラ座標Rc上に前記基準座標Rbを設定するには、まず、ティーチングペンダント4の操作部4aを操作し、ロボットアーム6を任意の姿勢にする。このとき、例えば第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行、つまり水平に保持した状態で、発光ダイオード24が第1軸Lc−1から水平方向に離れた位置にある姿勢、本実施形態では、図13に示すように、図3の垂直上向きの状態から下アーム8、第1の上アーム9が回転してフランジ12を斜め下向きにした姿勢(ロボットアーム6がショルダ7の前側(X0軸のプラス側)に倒れた前屈姿勢に保持する。なお、このときの姿勢は図14に示す後屈姿勢であっても良い。このように発光ダイオード24を第1軸Lc−1から水平方向に離すことにより、第1軸Lc−1を中心にロボットアーム6を回転させたとき、発光ダイオード24が一つの回転軌跡上を移動するようになる。
【0060】
そして、この姿勢のまま、第1軸Lc−1を中心にしてショルダ7を所望角度、好ましくは、プラス90°の位置から0°の位置(原点位置)を経てマイナス90°の位置に至るまでを含んだ合計180°以上回転させる。なお、基準座標Rbの設定時には、必ずしも第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行にする必要はない。
【0061】
すると、基準座標設定用測定点としての発光ダイオード24が図10に示すように、第1軸Lc−1を中心にして円形の回転軌跡Eを辿るので、3次元計測器25によって発光ダイオード24の回転軌跡E上の位置を、互いに異なる3点以上の複数位置d1,d2,…dnにおいて測定する。測定制御装置26は、3次元計測器25によって計測された発光ダイオード24の回転軌跡E上の複数位置d1,d2,…dnから、最小二乗法により発光ダイオード24の回転中心の位置Obを求めると共に、発光ダイオード24の回転軌跡Eを含む一平面の法線Lvを求める。そして、回転中心の位置Obを基準座標Rbの原点、この原点Obを通って法線Lvと平行(同じ向き)な直線を基準座標RbのZb軸(Z軸)と定める。
【0062】
また、原点Obを通ってZb軸に直交する任意の直線、例えば、ショルダ7を原点位置に回転させたときの発光ダイオード24の位置P0と原点Obとを結んだ直線を基準座標RbのXb軸(X軸)に定め、Zb軸とXb軸のベクトルの外積から両軸に直交する直線を求めて当該直線を基準座標RbのYb軸(Y軸)とする。なお、基準座標Rbの一目盛の長さはカメラ座標Rcの一目盛の長さと同じに定められている。
【0063】
以上により、カメラ座標Rc上に基準座標Rbが設定される。このようにして設定した基準座標Rbにおいて、Zb軸は第1軸Lc−1従ってロボット座標R0のZ0軸上にあり、且つ、XbYb平面はX0Y0平面と平行である。なお、基準座標Rbの設定時において、発光ダイオード24の位置がX0Y0平面上にあれば、XbYb平面はX0Y0平面と一致する。
【0064】
また、仮に、軸間オフセットがないとすれば、Xb軸、Yb軸はロボット座標R0のX0軸、Y0軸と平行になっている。しかし、軸間オフセットがある場合には、ショルダ7を原点位置に回転させたときの発光ダイオード24の位置P0が軸間オフセット分だけX0Y0方向にずれるので、Xb軸、Yb軸はX0軸、Y0軸とは平行ではなく、図16に示すように軸間オフセットに応じて傾くようになる。
【0065】
基準座標Rbを設定した後、第1軸Lc−1から任意の方向に延ばした当該第1軸Lc−1を含む鉛直の一平面を想定し、この一平面内の複数位置を移動目標位置に定める。本実施形態では、図10、図12に示すように、第1軸Lc−1と同軸のZb軸ひいてはZ0軸から任意の方向に延ばした当該Z0軸を含む任意の平面A1と、Z0軸から平面A1とは反対方向に延ばした平面A2を設定する。この一方の平面A1と、他方の平面A2とは面一の1つの平面Aとなる。本実施形態では、このような平面Aを複数設定するものとし(図10、図12では平面Aを1つのみ図示)、そのうちの一つの平面AはX0軸を含む平面であるものとする。なお、平面Aは、X0軸とのなす角度βで指定するものとする。
【0066】
そして、各平面A1,A2上にそれぞれ任意の複数位置を移動目標位置として選択する。任意に選択した複数の移動目標位置を図12に小さな白抜きの丸印で示した。各平面A1,A2上に任意に選択した複数の移動目標位置には、軸間オフセットを求めるために、後述のように、例えば第5軸Lc−5が第2軸Lc−2および第3軸Lc−3と平行の状態で先端2軸直交点Cを移動させるものである。
【0067】
ここで、平面A上に選択された複数位置はロボット座標R0の(X0,Y0,Z0)座標値で指定される。基準座標RbのZb軸はZ0軸に一致し、軸間オフセットなしとしたときのXb軸およびYb軸はそれぞれX0軸およびY0軸と平行であるから、移動目標位置のX0座標値とY0座標値は、基準座標Rb上のXb座標値とYb座標値と同じ値となる。ただ、基準座標Rbの原点Obはロボット座標R0の原点O0から隔たっており、基準座標Rbを求めた時の発光ダイオード24のZ0軸上の位置が基準座標Rbの原点ObのZ0軸上の位置(この位置をZaとする)となるから、移動目標位置の基準座標RbでのZb座標値は(Z0−Za)となる。従って、軸間オフセットがなければ、Xb軸、Yb軸はX0軸、Y0軸と平行となるから、軸間オフセットがないとしたとき、ロボット座標R0を、Z0軸に沿ってZaまで平行移動させると基準座標Rbと一致する関係にある。但し、Zaの値は不明であるが、軸間オフセットがX0軸、Y0軸方向に現れるがZ0軸方向には現れないから、Zaの値が不明であっても、軸間オフセット量を求める際の支障となるものではない。
【0068】
そして、この軸間オフセットがないとしたときの基準座標Rbとロボット座標R0との関係から、前記各移動目標位置をロボット座標R0での3次元座標値で指定して先端2軸直交点Cを移動させると、先端2軸直交点Cの実際の移動位置は、上述のようにして求めた基準座標Rb上の移動目標位置から軸間オフセットに応じた量だけXbYb方向にずれるので、そのずれ量から軸間オフセットのずれ量を求めることができるものである。
【0069】
ここで、先端2軸直交点Cは、手首アーム11の座標R5およびフランジ12の座標R6の原点O5およびO6と一致しているので、ティーチングペンダント4により、手首アーム11の座標R5またはフランジ12の座標R6、例えば座標R6を移動目標位置に移動させる操作を行うことにより、先端2軸直交点Cを移動目標位置へ移動させることができる。
【0070】
さて、各平面A1,A2上に選択した任意の複数位置にロボットアーム6の先端2軸直交点Cを移動させるに先立ち、例えば第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行の状態にし、その上で第2,3の回転関節J2,J3の回転軸14を回転させることにより、前記移動目標位置に、先端2軸直交点Cを移動させるとしたとき、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による先端2軸直交点Cの移動位置誤差を排除する処理を行う。
【0071】
まず、回転駆動系の撓みとは、サーボモータ15の回転軸から歯車減速装置16を経て回転関節J1〜J6の回転軸14に至るまでの伝達トルクによる捻り方向の撓みをいう。回転軸14は軸方向に円弧状に撓みを生じないものとする。回転駆動系の撓みは、回転駆動系に作用するトルクと回転駆動系のばね定数とから求めることができる。そのうち、ばね定数はロボット2において既知であり、その値は制御装置3のROM20に予め記憶されている。回転駆動系に作用するトルクは、第2軸Lc−2、第3軸Lc−3、第5軸Lc−5について考える(第1軸Lc−2、第4軸Lc−3、第6軸Lc−5には、大きなトルクは作用せず、絶対位置誤差を生じさせるような撓みは生じない。)。
【0072】
回転駆動系に作用するトルクは、図11に示すように、回転軸14が支えるリンクLの質量Wと、回転軸14からリンクLの中心までの距離Dとの積で求めることができる。そして、前記平面A上に選択した任意の複数位置にロボットアーム6の先端2軸直交点Cを移動させる場合、第5軸Lc−5を第2,3軸Lc−2,Lc−3と平行に保持し、下アーム8と第1の上アーム9を回転させて任意の複数位置に先端2軸直交点Cを移動させるものとして、各位置へ移動させる場合の第2の上アーム10、下アーム8、第1の上アーム9、手首アーム11、フランジ12の回転角度をティーチングペンダント4から読み取り、それらの回転角度から第2軸Lc−2、第3軸Lc−3、第5軸Lc−5に作用するトルクを計算し、そして、それらの回転駆動系の撓み(角度)αを求める(以上、図9のステップS2)。
【0073】
そして、求めた回転駆動系の撓みαだけサーボモータ15の回転角を加減して撓みが生じない場合と同等になるようにする。つまり、図11において、実線で示すリンクの位置が回転駆動系の撓みなしとした場合の移動目標位置で、破線で示す位置が回転駆動系の撓みありの場合の実際の移動位置とすると、サーボモータ15の回転角度を撓みα分だけ少なくする。これにより、回転駆動系が撓みを生じた状態で、リンクが実線の移動目標位置に到達するようになる。
【0074】
モータ原点位置誤差は、例えば前記特許文献1〜4に開示された方法によって検出する。また、ねじれ角誤差、リンク長誤差は、例えば前記非特許文献1に開示された方向によって検出する。この非特許文献1の方法は、第1軸Lc−1〜第6軸Lc−6の各軸を中心にロボットアーム6を回転させたときの手先の回転軌跡を3次元計測器により計測し、回転中心の位置と、回転軌跡を含む一平面の法線を演算する。回転中心の位置から各リンクの長さが求められ、法線の方向から各軸の方向が求められるので、それらリンクの長さと軸方向とからリンク長誤差とねじれ角誤差を求めることができる、というものである(以上、図9のステップS3)。
そして、求めたモータ原点位置誤差、リンク長誤差およびねじれ角誤差によりDHパラメータを修正し、それらの誤差が絶対位置誤差となって現れないようにしておく(図9のステップS4)。
【0075】
以上のような処理を行った後、ティーチングペンダント4を操作し、まず、複数の平面A1のうち、所望の1つの平面A1にショルダ7の座標R1のX1軸を合わせる。そのためには、ショルダ7を原点位置から、平面A1のX0軸とのなす角度βだけ回転させる。これにより、第2回転関節J2および第3の回転関節J3の回転軸14を回転させることにより先端2軸直交点Cを平面A1,A2上に並ぶ複数の移動目標位置に移動できるようになる。
【0076】
そこで、例えば第5軸Lc−5を第2軸Lc−2および第3軸Lc−3と平行の状態に保持し、第2回転関節J2および第3の回転関節J3の回転軸14を回転させることで、第5軸Lc−5を水平のままにして、下アーム8(第2軸Lc−2)と第1の上アーム9(第3軸Lc−3)だけを回転させて平面A1,A2上に任意に選択された複数の移動目標位置に先端2軸直交点Cを移動させる。このとき、先に移動目標位置毎に求めた回転駆動系の撓みに応じてサーボモータ15の回転角度を加減するものである。
【0077】
平面A1,A2上に任意に選択された複数の移動目標位置に手先を移動させる場合、ロボットアーム6は、図13に示すように、第2,3の両回転関節J2,J3の回転軸14を一方向に回転させることにより、ショルダ7から一方側に倒れて前屈した姿勢(前屈姿勢)で一方の平面A1上の移動目標位置に手先を移動させ、他方の平面A2上の移動目標位置に先端2軸直交点Cを移動させる場合には、ロボットアーム6は、第2,3の両回転関節J2,J3の回転軸14を他方向に回転させることにより、図14に示すように、反転してショルダ7から他方側に倒れて後屈した姿勢(ロボットアーム6がショルダ7の後側に倒れた後屈姿勢)で先端2軸直交点Cを移動させる。
【0078】
そして、先端2軸直交点Cを移動目標位置に移動させる都度、次のような動作を行って実際の先端2軸直交点Cの位置を推測する。即ち、各移動目標位置において、図15に示すように第6回転関節Lc−6の回転軸14を回転させ、この回転により円形の回転軌跡上を移動する発光ダイオード24の互いに異なる3以上の複数位置を3次元計測器25により計測する。計測した発光ダイオード24の回転軌跡上の3以上の複数位置から、当該発光ダイオード24の回転軌跡の中心位置C6と、発光ダイオード24の回転軌跡上の3以上の複数位置を含む平面の法線V6とを求める。そして、発光ダイオード24の回転軌跡の中心を通って法線V6と平行の第1の直線L6を求める(第1の動作)。
【0079】
また、図16に示すように、第5回転関節Lc−5の回転軸14を回転させ、この回転により円形の回転軌跡上を移動する発光ダイオード24の互いに異なる3以上の複数位置を3次元計測器25の回転軌跡の中心位置C5と、発光ダイオード24の回転軌跡上の3以上の複数位置を含む平面の法線V5とを求めて発光ダイオード24の回転軌跡の中心を通って法線V5と平行の第2の直線L5を求める(第2の動作)。
【0080】
以上の第1の直線L6と第2の直線L5の交点を先端2軸直交点Cの計測位置とする。この先端2軸直交点Cの計測位置(カメラ座標Rc)を求める計算方法を示す。
C6のカメラ座標上の位置を(X6,Y6,Z6)、V6(ベクトル)を(l6,m6,n6)とする。また、C5のカメラ座標上の位置を(X5,Y5,Z5)、V5(ベクトル)を(l5,m5,n5)とする。但し、V6およびV5は単位ベクトルで、l6,m6,n6およびl5,m5,n5はV6およびV5をXc軸、Yc軸、Zc軸の各方向に分解した長さを示す。
【0081】
C6を通りV6に平行な直線の方程式P1は、
(x,y,z)=(X6,Y6,Z6)+t(l6,m6,n6)
P1=C6+t・V6…(1)
となる。
C5を通りV5に平行な直線の方程式P2は、
(x,y,z)=(X5,Y5,Z5)+s(l5,m5,n5)
P1=C5+s・V5…(2)
となる。
なお、t,sは媒介変数である。
【0082】
2つの直線P1,P2を最短距離で結ぶ直線はP1,P2と垂直関係にあるので、P1からP2に向かうベクトルをuとすると、u,V6、u,V5の内積Dotは0となるから、
Dot(u,V6)=0
Dot(u,V5)=0
である。
【0083】
2つの直線の式を上記内積の式に代入すると、
Dot(u,V6)=Dot(C5−C6+s・V5−t・V6,V6)
=Dot(C5−C6,V6)+s・Dot(V5,V6)−t=0…(3)
Dot(u,V5)=Dot(C5−C6+s・V5−t・V6,V5)
=Dot(C5−C6,V6)+s−t・Dot(V5,V6)=0…(4)
となる。
【0084】
t,s以外は既知の値であるから、(3)式、(4)式からs,tを算出でき、算出したs,tを(1)式、(2)式に代入すれば、2つの直線の最近点を求めることができる。そして、図17に示すように、求めた2つ直線の最近点N1,N2を平均することで先端2軸直交点Cの位置を求めることができる。なお、2つの直線が1点で交われば、2つの直線の最近点N1,N2は同じ値となる。
【0085】
このようにして求めた先端2軸直交点Cの位置はカメラ座標Rc上の位置であるから、これを基準座標Rbの位置に変換する。この変換は図18に示す同時変換行列により行う(図9のステップS6)。
その後、各移動目標位置における先端2軸直交点Cの計測位置の基準座標RbでのXb,Yb座標値を取得する。そして、Xb,Yb座標値で示される先端2軸直交点Cの位置を、基準座標RbのXbYb平面上にプロットする。
【0086】
図19は基準座標RbのXbYb平面を示す。ここで、説明の簡単化のために、移動目標位置はX0軸上に存在する複数位置とする。図19において、白抜き丸印がロボット座標R0上での先端2軸直交点Cの移動目標位置、黒丸印が基準座標Rb上での先端2軸直交点Cの移動目標位置(Xb,Yb座標値はX0,Y0座標値と等しい)、×印が先端2軸直交点Cの計測位置を示している。
【0087】
移動目標位置に先端2軸直交点Cを移動させる場合、回転駆動系の撓み、モータ原点誤差、リンク長誤差、ねじれ角誤差によっては移動位置に誤差が生じないように前処理したのであるから、移動目標位置と実際の移動位置との間の誤差は、軸間オフセットによって生じたものと考えられる。そして、この軸間オフセットによって生ずる誤差は、移動目標位置が鉛直の一平面上(ここではX0軸上)にあるから、先端2軸直交点Cの計測位置はロボット座標R0上での移動目標位置から軸間オフセットだけずれて一直線上に並ぶ(一直線上に正確に並ばないまでも、一直線に沿って分布する)こととなる。そこで、計測位置を結んだ線分を計測依存線分Bとし、この計測依存線分Bを延長した直線Bbと原点Obとの最短距離(ObからBbに下ろした垂線の長さ)を求めると、この最短距離が軸間オフセット量Fとなる(図9のステップS7)。
【0088】
この場合、ロボットアーム6を前屈させて平面A1上の移動目標位置に移動させた場合の実際の移動位置を結ぶ計測依存線分Bと、ロボットアーム6を後屈させて平面A2上の移動目標位置に移動させた場合の実際の移動位置を結ぶ計測依存線分Bとが一本の直線にならなかった(一本の直線近辺に並ばなかったことも含む)場合、今までの過程のどこかに不都合があったと考えられるので、この場合には、最初のステップS1からやり直すようにする。このように、2つの平面A1,A2上に移動目標位置を定めることで、実施に際した不具合を検知することができるようになる。
【0089】
さて、実際に、X0軸を含む平面A1,A2以外の他の同様の平面に定めた移動目標位置ついても、上記したと同様にして軸間オフセット量Fを求める。この場合も、手先の実際の移動位置は一直線上に並ぶ筈である。
そして、X0軸を含む平面A以外の他の平面A上に定めた移動目標位置についての計測位置を結んでできる計測依存線分Bについても同様にして原点Obとの最短距離を計測する。これら各計測依存線分Bと原点Obとの間の最短距離は、どの計測依存線分Bについても同一となる筈であるが、実際には測定誤差などの原因で必ずしも同一とはならないことが多い。このような場合には、計測依存線分Bと原点Obとの最短距離の平均を求めて軸間オフセットを出す。これにより、軸間オフセットをより正確に求めることができるようになる。
【0090】
以上のようにして求めた軸間オフセットは、第2軸Lc−2、第3軸Lc−3、第5軸Lc−5において生ずる軸間オフセットの合計で、どの軸のオフセットであるかは分析できない。このため、図5に示すHDパラメータのうち、J2,J3のd欄のいずれかに軸間オフセットの値を追加し、または、J2,J3のd欄に分けて追加する。なお、第5軸Lc−5は、第4軸Lc−4の回転によって水平から鉛直までのいずれの角度も取り得るので、軸間オフセットをJ5のd欄に配分すると、かえって絶対位置精度を低下させることになる。このため、軸間オフセットをJ5のd欄には配分しない。
【0091】
J2,J3のd欄のいずれか、または、J2,J3のd欄に分けて軸間オフセットの値を追加することによって絶対位置精度が改善されたか否かを確認するために、軸間オフセットを追加したDHパラメータを用いてXb軸上に複数の目標位置を定め、上述したと同様にして手先を目標位置に移動させ、実際の移動位置を測定する実験を行った。
この結果、XbYb平面上での位置誤差が0.67mmから0.17mmに減少した。Zb軸方向の位置誤差も0.9mmから0.06mmに減少した。このことから、XbYbZbの3次元方向について、位置誤差が1.12mmから0.18mmに減少したということができる。
【0092】
このように本実施形態によれば、軸間オフセットを量的に把握でき、この軸間オフセットによりDHパラメータを修正して軸間オフセットによる誤差がない、或いは誤差ができるだけ生じないようにすることができ、絶対位置精度を高めることができる。
【0093】
(第2の実施形態)
図20は本発明の第2の実施形態を示す。この実施形態は、基準座標Rbを第1の実施形態とは異なる方法にて設定したものであるが、その後の軸間オフセット量の求め方は第1の実施形態と同じである。
【0094】
この実施形態では、先端2軸直交点Cを使って基準座標Rbを設定する。つまり、第1〜第6の回転関節J1〜J6のうち少なくとも第2〜第4の回転関節J2〜J4の回転軸14を固定したまま、第1回転関節J1の回転軸14によりショルダ7を互いに異なる3以上の任意の角度位置に回転させる。そして、各角度位置において、第1の実施形態にて説明した第1の動作を行って第1の直線L6(フランジ12の回転中心線である第6軸Lc−6)を求めると共に、第2の動作を行って第2の直線L5(手首アーム11の回転中心線である第5軸Lc−5)を求める。その後、これら第1の直線L6と第2の直線L5の交点、即ち先端2軸直交点Cの位置を計算し、当該位置を先端2軸直交点の計測位置とする。
【0095】
これらの先端2軸直交点Cの計測位置は、第1軸Lc−1を中心とする一つの円Eの上に存在する。測定制御装置26は、これら先端2軸直交点Cの計測位置を通る円Eの中心位置と、これら先端2軸直交点Cの計測位置を含む平面の法線Lvとを求める。そして、測定制御装置26は、円Eの中心を原点Ob、当該原点Obを通って複数の先端2軸直交点Cの計測位置を含む平面の法線Lvと平行の直線をZb軸、原点Obを通ってZb軸に直交する任意の直線をXb軸、原点Obを通ってZbおよびXbの両軸に直交する直線をY軸bとする基準座標Rbを定める。
【0096】
(第3の実施形態)
図21および図22は本発明の第3の実施形態を示す。この実施形態は、基準座標Rbは第1の実施形態または第2の実施形態と同様にして求めるが、軸間オフセット量の求め方を第1の実施形態における方法とは別の方法によって求めるようにしたものである。
【0097】
本実施形態は、先端2軸直交点Cの移動可能な範囲内における任意の複数位置を、当該先端2軸直交点Cの移動目標位置に設定し、当該複数位置に先端2軸直交点Cを移動させたとき、移動目標位置と先端2軸直交点Cの実際の移動位置との差を基に軸間オフセット量を求めるようにしたものである。
即ち、ロボット座標R0上で任意の複数位置を移動目標位置として選択する。なお、ロボット座標R0上で指定された移動目標位置のX0座標およびY0座標の値は基準座標RbのXb座標およびYb座標でも同じ値を取る(軸間オフセットなしとした場合)。
【0098】
図21に移動目標位置として選択した複数位置を黒丸印で示した。これらのうち、Xb座標値がプラス側(Yb軸の右側)の移動目標位置への手先の移動は、ロボットアーム6の前屈姿勢で行い、マイナス側(Yb軸の左側)の移動目標位置への手先の移動は、ロボットアーム6の後屈姿勢で行うものとする。
そして、第1の実施形態と同様に、選択した複数の移動目標位置に先端2軸直交点Cを移動させるに先立ち、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による先端2軸直交点Cの移動位置誤差を排除する処理を行う。
【0099】
この後、先端2軸直交点Cを選択された複数の移動目標位置に移動させる。このときの移動は、第1回転関節J1の回転軸14と、第2,3,5回転関節J2,J3,J5のうち第2,3回転関節J2,J3の回転軸14とを回転させることによって行う。第5軸Lc−5を水平に保持するために、第4の回転関節J4の回転軸14は回転させない。第5回転関節J5の回転軸14は、先端2軸直交点Cを移動目標位置に移動させるためには関係のない回転軸であるので、あえて回転させる必要はない。
【0100】
そして、各移動目標位置において、第1の実施形態にて説明した先端2軸直交点Cの計測位置を求めるために、第1の動作を行って第1の直線(フランジ12の回転中心線である第6軸Lc−6)を求めると共に、第2の動作を行って第2の直線(手首アーム11の回転中心線である第5軸Lc−5)を求める。その後、これら第1の直線と第2の直線の交点、すなわち先端2軸直交点Cの位置を求め、当該位置を先端2軸直交点の計測位置とする。
この先端2軸直交点Cの計測位置はカメラ座標Rcの位置であるから、これを基準座標Rbの位置に変換する。各移動目標位置での先端2軸直交点Cの計測位置を図21に×印で示した。
【0101】
先端2軸直交点Cの移動目標位置と計測位置とから軸間オフセットを求めるには、基準座標RbのXbYb座標面上に図21に黒丸で示すように移動目標位置のXbYb座標値(X0Y0座標値と同じ)と計測位置をプロットし、原点Obから移動目標位置までの線分の長さを目標位置半径D0とし、発光ダイオード24の計測位置から原点Obと移動目標位置とを通る直線に下ろした垂線の長さをオフセット誤差成分M0とする。そして、図22に示すように、横軸に目標位置半径D0を取り、縦軸にオフセット誤差成分M0を取ったグラフを作成して、このグラフに各移動目標位置について目標位置半径D0とオフセット誤差成分M0との関係をプロットしこれらプロットされた点を通る直線を誤差直線Gとする。この誤差直線Gにグラフの原点から垂線を下ろすと、この垂線の長さが第2,3,5の回転関節の合計の軸間オフセット量Fとなる。
【0102】
(第4の実施形態)
図23および図24は本発明の第4の実施形態を示す。この実施形態は、第1の実施形態または第2の実施形態で説明したと同様にして基準座標Rbを設定した後、手先を任意の基準姿勢にしたときの発光ダイオード24の位置と先端2軸直交点Cとの位置関係を求め、その後に先端2軸直交点Cを移動目標位置に移動させたとき、手先を基準姿勢にして発光ダイオード24の位置を計測し、この計測した位置と、先に求めた発光ダイオード24の位置と先端2軸直交点Cとの位置関係とから先端2軸直交点Cの計測位置を求めようとするものである。
【0103】
即ち、基準座標Rbの設定後、手先を基準姿勢、例えば、図23に示すように、手先座標RfのZf軸がZ0軸(第1軸Lc−1)と平行でZf軸のプラス側が下向き(Z0軸と反対向き)、Xf軸がX0軸と平行でX0軸とはプラス側の向きが反対、Yf軸がY0軸と平行でプラス側の向きがY0軸のプラス側の向きと同じになる姿勢にする。
この手先の基準姿勢において、発光ダイオード24の位置を3次元計測器25により計測する。また、第1の実施形態にて説明した第1の動作を行って第1の直線(フランジ12の回転中心線である第6軸Lc−6)を求めると共に、第2の動作を行って第2の直線(手首アーム11の回転中心線である第5軸Lc−5)を求める。その後、これら第1の直線と第2の直線の交点、すなわち先端2軸直交点Cの位置を求める。
【0104】
手先の基準姿勢における発光ダイオード24の位置と、第1の直線と第2の直線とから求めた先端2軸直交点Cの位置とはカメラ座標Rc上での位置であるから、これら2つの位置を基準座標Rb上の位置に変換する。そして、図24に示すように、基準座標Rb上において、発光ダイオード24の位置を始点とし、先端2軸交差点Cの位置を終点とするベクトルを求め、このベクトルを検出ベクトルVとすると共に、当該検出ベクトルVが基準座標RbのXbYbZbの各軸となす角度γ、δ、εを求めてこれを指向角度とする。
【0105】
その後、軸間オフセットを求めるために、第1の実施形態または第2の実施形態と同様に、先端2軸直交点Cの移動目標位置を定める。そして、モータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、先端2軸直交点Cを移動目標位置に移動させる。
【0106】
先端2軸直交点Cを移動目標位置に移動させる都度、発光ダイオード24の位置を3次元計測器25によって計測する。この3次元計測器25で計測した発光ダイオード24の位置はカメラ座標Rc上の位置であるから、これを基準座標R上の位置に変換する。その後、各移動目標位置について、発光ダイオード24の位置を始点とし、且つ基準座標RbのXbYbZbの各軸とのなす角度が指向角度γ、δ、εとなるように検出ベクトルVを作成して当該検出ベクトルVの終点の位置を先端2軸直交点Cの基準座標Rb上の計測位置とする。
以上のようにして先端2軸直交点Cの基準座標Rb上の計測位置を基に、第1の実施形態または第2の実施形態で求めたと同様にして軸間オフセット量を求める。
【0107】
(その他の実施形態)
本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような変更或いは拡張が可能である。
先端2軸直交点Cを目標位置に移動させる際、第5回転関節の回転軸の回転中心は第2,3の回転関節の回転軸の回転中心線と必ずしも平行でなくても良い。
基準座標RbのXb軸は必ずしもX0軸と平行(軸間オフセットなしと仮定したとき)の直線に定める必要はない。原点Obを通る任意の直線に定めれば良い。この場合、任意の直線(Xb軸)とX0軸とのなす角度(ショルダ7の原点位置からの回転角度)を基に基準座標Rbとロボット座標R0との関係を求めて座標変換することによって基準座標Rb上の位置とロボット座標R0上の位置とを互いに変換することができるようにすれば良い。
【0108】
第1の実施形態において、平面A1(Zb軸から一方向に延びる平面)から平面A2(Zb軸から反対方向に延びる平面)の移動目標位置へ手先を移動させる場合、移動目標位置の選択位置によっては、第2,3,5の各回転関節J2、J3,J5のうち1つの回転関節の回転軸14を回転させれば、ロボットアーム6を反転させて手先を移動目標位置に移動させることができる。
【0109】
回転駆動系の撓みα、モータ原点位置誤差、リンク長誤差およびねじれ角誤差は、第1軸Lc−1〜第4軸Lc−4についてだけ行えば良い(リンク長誤差は第1〜第4のリンク7〜10)。第5軸Lc−5と第6軸Lc−6の誤差は先端2軸直交点Cの位置に影響を与えないからである。但し、回転駆動系の撓みαは、水平方向の軸だけを対象にしているので、実際には、第2,3軸Lc−2,Lc−3について行う。
【0110】
第1の実施形態において、第1の直線L6と第2の直線L5は、どちらを先に求めても良い。
第1および第2の実施形態において、基準座標Rbを求めるためにロボットアーム6を第1軸Lc−1を中心に回転させる際、第5,6の両回転関節J5,J6の回転軸14は固定であっても、回転動作してもどちらでも良い。
【符号の説明】
【0111】
図面中、3は制御装置、5はベース(ベースリンク)、6はロボットアーム、7はショルダ(第1リンク)、8は下アーム(第2リンク)、9は第1の上アーム(第3リンク)、10は第2の上アーム(第4リンク)、11は手首アーム(第5リンク)、12はフランジ(第6リンク)、24は発光ダイオード(測定点)、25は3次元計測器(3次元計測手段)を示す。
【特許請求の範囲】
【請求項1】
据え付け面に固定されるベースリンクに対し、ロボットアームを構成する第1〜第6の各リンクを、第1〜第6の各回転関節により順次連結してなる6軸ロボットであって、前記第1リンクに前記第2リンクを連結する前記第2回転関節の回転軸の回転中心線が前記ベースリンクに前記第1リンクを連結する前記第1回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第2リンクに前記第3リンクを連結する前記第3回転関節の回転軸の回転中心線が前記第2回転関節の回転軸の回転中心線と平行に、前記第3リンクに前記第4リンクを連結する前記第4回転関節の回転軸の回転中心線が前記第3回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第4リンクに前記第5リンクを連結する前記第5回転関節の回転軸の回転中心線が前記第4回転関節の回転軸の回転中心線と直交する方向と平行に、前記第5リンクに前記第6リンクを連結する前記第6回転関節の回転軸の回転中心線が前記第5回転関節の回転軸の回転中心線に対して直交するように、それぞれ設定されると共に、
ロボット座標を前記第1回転関節の回転軸の回転中心線上に設定すると共に、前記第1〜第6の各リンクの座標をそれぞれ前記第1〜第6の各回転関節の回転軸の回転中心線上に設定し、且つ、前記第6リンクのうち前記第6回転関節の回転軸の回転中心線上に存する所定位置を手先として同位置に当該手先の座標を設定してなる6軸ロボットにおいて、
前記第6リンクと一体に動作する測定点を設けると共に、前記測定点の3次元位置を測定可能な3次元測定手段を設け、
前記ロボットアームを任意の姿勢に保持したまま、前記ロボットアームを前記第1回転関節の回転軸を中心に回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、
計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて、前記測定点の回転軌跡の中心を原点、当該原点を通って前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定め、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、
前記第2,3の回転関節の回転軸を回転させることにより、前記移動目標位置に、前記第5回転関節の回転軸の回転中心線と前記第6回転関節の回転軸の回転中心線との直交点である先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第2,3の回転関節の回転関節の回転軸を回転させることにより、前記先端2軸直交点を前記移動目標位置に移動させることができる位置に前記第1回転関節の回転軸を回転させた後、当該第1回転関節の回転軸を固定した状態で前記第2,3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置のそれぞれに前記先端2軸直交点を移動させ、
前記各移動目標位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、
前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、当該先端2軸直交点の計測位置を前記基準座標上の位置に座標変換して前記基準座標上のXY座標値を求め、求めたXY座標値を前記基準座標のXY座標面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に前記基準座標の原点から下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項2】
請求項1記載のロボットの軸間オフセットの検出方法における、前記基準座標を定める動作に代えて、
前記第1〜第6の回転関節のうち少なくとも前記第2〜第4の回転関節の回転軸を固定したまま、前記第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、求めた前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、
前記各角度位置において求めた3以上の複数の前記先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、前記複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って前記複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とするロボットの軸間オフセットの検出方法。
【請求項3】
請求項1または2記載のロボットの軸間オフセットの検出方法における、前記基準座標を定めた後、前記軸間オフセット量を求めるまでの動作に代えて、
前記先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、
前記第1〜3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置に前記先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第1〜3の回転関節の回転軸を回転させることにより前記先端2軸直交点を前記複数の各移動目標位置に移動させ、
前記各移動目標位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、
前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、当該先端2軸直交点の計測位置を前記基準座標上の位置に座標変換して前記基準座標上のXY座標値を求め、且つ前記各移動目標位置の前記ロボット座標のXY座標値を前記基準座標上のXY座標値に座標変換して前記基準座標上の移動目標位置とし、
前記各移動目標位置について、前記基準座標のXY平面上に前記移動目標位置のXY座標値と前記先端2軸直交点の計測位置のXY座標値とをプロットし、前記基準座標の原点から前記XY平面上の前記移動目標位置までの線分の長さを目標位置半径とすると共に、前記XY平面上の前記先端2軸直交点の計測位置から前記基準座標の原点と前記移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、
前記各移動目標位置について、前記目標位置半径と前記オフセット誤差成分との関係を、直交2軸のうち一方の軸に前記目標位置半径をとり他方の軸に前記オフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から前記誤差直線に下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項4】
据え付け面に固定されるベースリンクに対し、ロボットアームを構成する第1〜第6の各リンクを、第1〜第6の各回転関節により順次連結してなる6軸ロボットであって、前記第1リンクに前記第2リンクを連結する前記第2回転関節の回転軸の回転中心線が前記ベースリンクに前記第1リンクを連結する前記第1回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第2リンクに前記第3リンクを連結する前記第3回転関節の回転軸の回転中心線が前記第2回転関節の回転軸の回転中心線と平行に、前記第3リンクに前記第4リンクを連結する前記第4回転関節の回転軸の回転中心線が前記第3回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第4リンクに前記第5リンクを連結する前記第5回転関節の回転軸の回転中心線が前記第4回転関節の回転軸の回転中心線と直交する方向と平行に、前記第5リンクに前記第6リンクを連結する前記第6回転関節の回転軸の回転中心線が前記第5回転関節の回転軸の回転中心線に対して直交するように、それぞれ設定されると共に、
ロボット座標を前記第1回転関節の回転軸の回転中心線上に設定すると共に、前記第1〜第6の各リンクの座標をそれぞれ前記第1〜第6の各回転関節の回転軸の回転中心線上に設定し、且つ、前記第6リンクのうち前記第6回転関節の回転軸の回転中心線上に存する所定位置を手先として同位置に当該手先の座標を設定してなる6軸ロボットにおいて、
前記第6リンクと一体に動作する測定点を設けると共に、前記測定点の3次元位置を測定可能な3次元測定手段を設け、
前記ロボットアームを任意の姿勢に保持したまま、前記ロボットアームを前記第1回転関節の回転軸を中心に回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、
計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて、前記測定点の回転軌跡の中心を原点、当該原点を通って前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定め、
その後、適宜の時期に、前記手先を任意の基準姿勢にした状態で、前記測定点の位置を前記3次元測定手段により計測し、且つ、前記第6回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、
前記手先の前記基準姿勢での前記測定点の計測位置から前記第1の直線と前記第2の直線の交点に至るベクトルを求めて当該ベクトルを先端2軸直交点の検出ベクトルとすると共に、当該検出ベクトルが前記基準座標のXYZの3軸とのなす角度を求めて当該角度を指向角度とし、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、
前記第2,3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置に、前記第5回転関節の回転軸の回転中心線と前記第6回転関節の回転軸の回転中心線との交点である先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第2,3の回転関節の回転関節の回転軸の回転により、前記先端2軸直交点を前記移動目標位置に移動させることができる位置に前記第1回転関節の回転軸を回転させた後、当該第1回転関節の回転軸を固定した状態で前記第2,3の両回転関節の回転軸を回転させることにより、前記複数の移動目標位置のそれぞれに前記先端2軸直交点を移動させ、
前記各移動目標位置において、前記手先を前記基準姿勢に保持した状態で前記測定点の位置を前記3次元計測手段により計測し、計測した前記測定点の位置を前記基準座標上の位置に座標変換し、当該基準座標上の前記測定点の位置から前記指向角度となるように前記検出ベクトルを作成したときの当該検出ベクトルの終点の位置を前記先端2軸直交点の前記基準座標上の計測位置と定め、
求めた複数の移動目標位置についての前記先端2軸直交点の前記基準座標上の計測位置のXY座標値を前記基準座標のXY座標面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に前記基準座標の原点から下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項5】
前記請求項4記載のロボットの軸間オフセットの検出方法における、前記基準座標を定める動作に代えて、
前記第1〜第6の回転関節のうち少なくとも前記第2〜第4の回転関節の回転軸を固定したまま、前記第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、求めた前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、
前記各角度位置において求めた3以上の複数の前記先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、前記複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って前記複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とするロボットの軸間オフセットの検出方法。
【請求項6】
請求項4または5記載のロボットの軸間オフセットの検出方法における、前記検出ベクトルと指向角度を求めた後、前記軸間オフセット量を求めるまでの動作に代えて、
前記先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、
前記第1〜3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置に前記先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第1〜3の回転関節の回転軸を回転させることにより前記先端2軸直交点を前記複数の各移動目標位置に移動させ、
前記各移動目標位置において、前記手先を前記基準姿勢に保持して前記測定点の位置を前記3次元計測手段により計測し、計測した前記測定点の位置を前記基準座標上の位置に座標変換し、当該測定点の前記基準座標上の計測位置から前記指向角度となるように前記検出ベクトルを作成して当該検出ベクトルの終点の位置を前記先端2軸直交点の前記基準座標上の計測位置と定め、
前記移動目標位置の前記ロボット座標上のXY座標値を前記基準座標上のXY座標に座標変換し、前記求めた複数の前記移動目標位置の前記基準座標上のXY座標値と前記先端2軸直交点の前記基準座標上の計測位置のXY座標値とを、前記基準座標のXY平面にプロットし、前記基準座標の原点から前記XY平面上の前記移動目標位置までの線分の長さを目標位置半径とすると共に、前記XY平面上の前記先端2軸直交点の計測位置から前記基準座標の原点と前記移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、
前記各移動目標位置について、前記目標位置半径と前記オフセット誤差成分との関係を、直交2軸のうち一方の軸に前記目標位置半径をとり他方の軸に前記オフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から前記誤差直線に下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項7】
請求項1,2,4,5のいずれかに記載のロボットの軸間オフセットの検出方法において、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、これら移動目標位置に前記先端2軸直交点を移動させる動作は、前記第1回転関節の回転軸の回転中心線から互いに反対方向に向けて伸ばした2つの平面について行い、前記第1回転関節の回転軸の回転中心線から一方向に延ばした平面上から反対方向に延ばした平面上への前記先端2軸直交点の移行は、前記第1の回転関節の回転軸を固定した状態で前記第2,3の回転関節の回転関節の回転軸を回転させることにより前記ロボットアームを反転させて行うことを特徴とするロボットの軸間オフセットの検出方法。
【請求項8】
請求項3または6記載のロボットの軸間オフセットの検出方法において、
前記任意の複数の移動目標位置に前記先端2軸直交点を移動させる動作は、
前記第2,3の回転関節の回転軸を一方向および他方向に回転させることにより、前記ロボットアームが前記第1リンクから一方側に倒れた姿勢となる前屈姿勢と、他方側に倒れた姿勢となる後屈姿勢の両方で行うことを特徴とするロボットの軸間オフセットの検出方法。
【請求項1】
据え付け面に固定されるベースリンクに対し、ロボットアームを構成する第1〜第6の各リンクを、第1〜第6の各回転関節により順次連結してなる6軸ロボットであって、前記第1リンクに前記第2リンクを連結する前記第2回転関節の回転軸の回転中心線が前記ベースリンクに前記第1リンクを連結する前記第1回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第2リンクに前記第3リンクを連結する前記第3回転関節の回転軸の回転中心線が前記第2回転関節の回転軸の回転中心線と平行に、前記第3リンクに前記第4リンクを連結する前記第4回転関節の回転軸の回転中心線が前記第3回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第4リンクに前記第5リンクを連結する前記第5回転関節の回転軸の回転中心線が前記第4回転関節の回転軸の回転中心線と直交する方向と平行に、前記第5リンクに前記第6リンクを連結する前記第6回転関節の回転軸の回転中心線が前記第5回転関節の回転軸の回転中心線に対して直交するように、それぞれ設定されると共に、
ロボット座標を前記第1回転関節の回転軸の回転中心線上に設定すると共に、前記第1〜第6の各リンクの座標をそれぞれ前記第1〜第6の各回転関節の回転軸の回転中心線上に設定し、且つ、前記第6リンクのうち前記第6回転関節の回転軸の回転中心線上に存する所定位置を手先として同位置に当該手先の座標を設定してなる6軸ロボットにおいて、
前記第6リンクと一体に動作する測定点を設けると共に、前記測定点の3次元位置を測定可能な3次元測定手段を設け、
前記ロボットアームを任意の姿勢に保持したまま、前記ロボットアームを前記第1回転関節の回転軸を中心に回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、
計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて、前記測定点の回転軌跡の中心を原点、当該原点を通って前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定め、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、
前記第2,3の回転関節の回転軸を回転させることにより、前記移動目標位置に、前記第5回転関節の回転軸の回転中心線と前記第6回転関節の回転軸の回転中心線との直交点である先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第2,3の回転関節の回転関節の回転軸を回転させることにより、前記先端2軸直交点を前記移動目標位置に移動させることができる位置に前記第1回転関節の回転軸を回転させた後、当該第1回転関節の回転軸を固定した状態で前記第2,3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置のそれぞれに前記先端2軸直交点を移動させ、
前記各移動目標位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、
前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、当該先端2軸直交点の計測位置を前記基準座標上の位置に座標変換して前記基準座標上のXY座標値を求め、求めたXY座標値を前記基準座標のXY座標面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に前記基準座標の原点から下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項2】
請求項1記載のロボットの軸間オフセットの検出方法における、前記基準座標を定める動作に代えて、
前記第1〜第6の回転関節のうち少なくとも前記第2〜第4の回転関節の回転軸を固定したまま、前記第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、求めた前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、
前記各角度位置において求めた3以上の複数の前記先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、前記複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って前記複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とするロボットの軸間オフセットの検出方法。
【請求項3】
請求項1または2記載のロボットの軸間オフセットの検出方法における、前記基準座標を定めた後、前記軸間オフセット量を求めるまでの動作に代えて、
前記先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、
前記第1〜3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置に前記先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第1〜3の回転関節の回転軸を回転させることにより前記先端2軸直交点を前記複数の各移動目標位置に移動させ、
前記各移動目標位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、
前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、当該先端2軸直交点の計測位置を前記基準座標上の位置に座標変換して前記基準座標上のXY座標値を求め、且つ前記各移動目標位置の前記ロボット座標のXY座標値を前記基準座標上のXY座標値に座標変換して前記基準座標上の移動目標位置とし、
前記各移動目標位置について、前記基準座標のXY平面上に前記移動目標位置のXY座標値と前記先端2軸直交点の計測位置のXY座標値とをプロットし、前記基準座標の原点から前記XY平面上の前記移動目標位置までの線分の長さを目標位置半径とすると共に、前記XY平面上の前記先端2軸直交点の計測位置から前記基準座標の原点と前記移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、
前記各移動目標位置について、前記目標位置半径と前記オフセット誤差成分との関係を、直交2軸のうち一方の軸に前記目標位置半径をとり他方の軸に前記オフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から前記誤差直線に下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項4】
据え付け面に固定されるベースリンクに対し、ロボットアームを構成する第1〜第6の各リンクを、第1〜第6の各回転関節により順次連結してなる6軸ロボットであって、前記第1リンクに前記第2リンクを連結する前記第2回転関節の回転軸の回転中心線が前記ベースリンクに前記第1リンクを連結する前記第1回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第2リンクに前記第3リンクを連結する前記第3回転関節の回転軸の回転中心線が前記第2回転関節の回転軸の回転中心線と平行に、前記第3リンクに前記第4リンクを連結する前記第4回転関節の回転軸の回転中心線が前記第3回転関節の回転軸の回転中心線に対して直交する方向と平行に、前記第4リンクに前記第5リンクを連結する前記第5回転関節の回転軸の回転中心線が前記第4回転関節の回転軸の回転中心線と直交する方向と平行に、前記第5リンクに前記第6リンクを連結する前記第6回転関節の回転軸の回転中心線が前記第5回転関節の回転軸の回転中心線に対して直交するように、それぞれ設定されると共に、
ロボット座標を前記第1回転関節の回転軸の回転中心線上に設定すると共に、前記第1〜第6の各リンクの座標をそれぞれ前記第1〜第6の各回転関節の回転軸の回転中心線上に設定し、且つ、前記第6リンクのうち前記第6回転関節の回転軸の回転中心線上に存する所定位置を手先として同位置に当該手先の座標を設定してなる6軸ロボットにおいて、
前記第6リンクと一体に動作する測定点を設けると共に、前記測定点の3次元位置を測定可能な3次元測定手段を設け、
前記ロボットアームを任意の姿勢に保持したまま、前記ロボットアームを前記第1回転関節の回転軸を中心に回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、
計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて、前記測定点の回転軌跡の中心を原点、当該原点を通って前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定め、
その後、適宜の時期に、前記手先を任意の基準姿勢にした状態で、前記測定点の位置を前記3次元測定手段により計測し、且つ、前記第6回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させてこの回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて前記測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、
前記手先の前記基準姿勢での前記測定点の計測位置から前記第1の直線と前記第2の直線の交点に至るベクトルを求めて当該ベクトルを先端2軸直交点の検出ベクトルとすると共に、当該検出ベクトルが前記基準座標のXYZの3軸とのなす角度を求めて当該角度を指向角度とし、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、
前記第2,3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置に、前記第5回転関節の回転軸の回転中心線と前記第6回転関節の回転軸の回転中心線との交点である先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第2,3の回転関節の回転関節の回転軸の回転により、前記先端2軸直交点を前記移動目標位置に移動させることができる位置に前記第1回転関節の回転軸を回転させた後、当該第1回転関節の回転軸を固定した状態で前記第2,3の両回転関節の回転軸を回転させることにより、前記複数の移動目標位置のそれぞれに前記先端2軸直交点を移動させ、
前記各移動目標位置において、前記手先を前記基準姿勢に保持した状態で前記測定点の位置を前記3次元計測手段により計測し、計測した前記測定点の位置を前記基準座標上の位置に座標変換し、当該基準座標上の前記測定点の位置から前記指向角度となるように前記検出ベクトルを作成したときの当該検出ベクトルの終点の位置を前記先端2軸直交点の前記基準座標上の計測位置と定め、
求めた複数の移動目標位置についての前記先端2軸直交点の前記基準座標上の計測位置のXY座標値を前記基準座標のXY座標面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に前記基準座標の原点から下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項5】
前記請求項4記載のロボットの軸間オフセットの検出方法における、前記基準座標を定める動作に代えて、
前記第1〜第6の回転関節のうち少なくとも前記第2〜第4の回転関節の回転軸を固定したまま、前記第1リンクを互いに異なる3以上の任意の角度位置に回転させ、各角度位置において、前記第6回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第1の直線を求める動作と、前記第5回転関節の回転軸を回転させ、この回転により円形の回転軌跡上を移動する前記測定点の互いに異なる3以上の複数位置を3次元計測手段により計測し、計測した前記測定点の回転軌跡上の3以上の複数位置から、当該測定点の回転軌跡の中心位置と、前記測定点の回転軌跡上の3以上の複数位置を含む平面の法線とを求めて測定点の回転軌跡の中心を通って前記法線と平行の第2の直線を求める動作とを行い、求めた前記第1の直線と前記第2の直線の交点を前記先端2軸直交点の計測位置とし、
前記各角度位置において求めた3以上の複数の前記先端2軸直交点の計測位置から、当該複数の先端2軸直交点の計測位置を通る円弧の中心位置と、当該複数の先端2軸直交点の計測位置を含む平面の法線とを求めて、前記複数の先端2軸直交点の計測位置を通る円弧の中心を原点、当該原点を通って前記複数の先端2軸直交点の計測位置を含む平面の法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定めることを特徴とするロボットの軸間オフセットの検出方法。
【請求項6】
請求項4または5記載のロボットの軸間オフセットの検出方法における、前記検出ベクトルと指向角度を求めた後、前記軸間オフセット量を求めるまでの動作に代えて、
前記先端2軸直交点の可動範囲内の任意の複数位置を移動目標位置に定め、
前記第1〜3の回転関節の回転軸を回転させることにより、前記複数の移動目標位置に前記先端2軸直交点を移動させることとしたとき、
前記第1〜第4の各回転関節の回転軸を含む第1〜第4の各回転駆動系を介して前記第1〜第4の各リンクを駆動するモータの原点位置誤差、前記第1〜第4の各回転駆動系の撓み、前記第1〜第4の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記先端2軸直交点の位置誤差が生じないように補正処理を行った上で、
前記第1〜3の回転関節の回転軸を回転させることにより前記先端2軸直交点を前記複数の各移動目標位置に移動させ、
前記各移動目標位置において、前記手先を前記基準姿勢に保持して前記測定点の位置を前記3次元計測手段により計測し、計測した前記測定点の位置を前記基準座標上の位置に座標変換し、当該測定点の前記基準座標上の計測位置から前記指向角度となるように前記検出ベクトルを作成して当該検出ベクトルの終点の位置を前記先端2軸直交点の前記基準座標上の計測位置と定め、
前記移動目標位置の前記ロボット座標上のXY座標値を前記基準座標上のXY座標に座標変換し、前記求めた複数の前記移動目標位置の前記基準座標上のXY座標値と前記先端2軸直交点の前記基準座標上の計測位置のXY座標値とを、前記基準座標のXY平面にプロットし、前記基準座標の原点から前記XY平面上の前記移動目標位置までの線分の長さを目標位置半径とすると共に、前記XY平面上の前記先端2軸直交点の計測位置から前記基準座標の原点と前記移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、
前記各移動目標位置について、前記目標位置半径と前記オフセット誤差成分との関係を、直交2軸のうち一方の軸に前記目標位置半径をとり他方の軸に前記オフセット誤差成分をとったグラフにプロットしこれらプロットされた点を通る直線を誤差直線としたとき、当該グラフの原点から前記誤差直線に下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項7】
請求項1,2,4,5のいずれかに記載のロボットの軸間オフセットの検出方法において、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、これら移動目標位置に前記先端2軸直交点を移動させる動作は、前記第1回転関節の回転軸の回転中心線から互いに反対方向に向けて伸ばした2つの平面について行い、前記第1回転関節の回転軸の回転中心線から一方向に延ばした平面上から反対方向に延ばした平面上への前記先端2軸直交点の移行は、前記第1の回転関節の回転軸を固定した状態で前記第2,3の回転関節の回転関節の回転軸を回転させることにより前記ロボットアームを反転させて行うことを特徴とするロボットの軸間オフセットの検出方法。
【請求項8】
請求項3または6記載のロボットの軸間オフセットの検出方法において、
前記任意の複数の移動目標位置に前記先端2軸直交点を移動させる動作は、
前記第2,3の回転関節の回転軸を一方向および他方向に回転させることにより、前記ロボットアームが前記第1リンクから一方側に倒れた姿勢となる前屈姿勢と、他方側に倒れた姿勢となる後屈姿勢の両方で行うことを特徴とするロボットの軸間オフセットの検出方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2013−39643(P2013−39643A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2011−178962(P2011−178962)
【出願日】平成23年8月18日(2011.8.18)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願日】平成23年8月18日(2011.8.18)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]