6軸ロボットの軸間オフセット検出方法
【課題】6軸ロボットにおいて、軸間オフセットのずれ量を計測しこれを補正する。
【解決手段】ロボットアームの先端のフランジに発光ダイオードを設け、手先をロボット座標のX(Xb)軸上の複数の移動目標位置に移動させる。このとき、発光ダイオードの位置を3次元計測器により計測し、手先が正しく移動目標位置に移動したときの発光ダイオードの位置と実際の移動位置とを基にして軸間オフセット量Fを検出する。この軸間オフセット量FによってDHパラメータを補正する。
【解決手段】ロボットアームの先端のフランジに発光ダイオードを設け、手先をロボット座標のX(Xb)軸上の複数の移動目標位置に移動させる。このとき、発光ダイオードの位置を3次元計測器により計測し、手先が正しく移動目標位置に移動したときの発光ダイオードの位置と実際の移動位置とを基にして軸間オフセット量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リンクの回転中心線から離れた位置に当該第6リンクと一体に動作する測定点を設け、第1リンクの適宜の回転位置を当該第1リンクの当初回転位置と定めると共に、第1リンクの当初回転位置における第6リンクの回転位置を当該第6リンクの当初回転位置と定める。そして、第5回転関節の回転軸の回転中心線が第2,3の両回転関節の回転軸の回転中心線と平行で、且つ第6回転関節の回転軸の回転中心線が第1回転関節の回転軸の回転中心線と平行の状態を保持しながら、第1リンクを互いに異なる3以上の任意の回転位置に回転させる。
【0011】
この第1リンクの各回転位置では、第6リンクを、当該第6リンクの当初回転位置から、第1リンクが当該第1リンクの当初回転位置から現回転位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、第1リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を3次元計測手段により計測し、この測定点の3以上の複数位置から、これら3以上の複数位置を通る円の中心位置と、これら3以上の複数位置が含まれる平面の法線とを求め、求めた円の中心を原点、当該原点を通る前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定める。
【0012】
次に、第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに前記手先を移動させることとしたとき、第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して第1〜第6の各リンクを駆動するモータの原点位置誤差、第1〜第6の各回転駆動系の撓み、第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって手先の位置誤差が生じないように補正処理を行う。
【0013】
その上で、第2,3,5の回転関節のうち少なくとも2つの回転関節の回転軸を回転させることにより、第5回転関節の回転軸の回転中心線が第2回転関節および第3回転関節の回転軸の回転中心線と平行で、且つ第6回転関節の回転軸の回転中心線が第1回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、手先を移動目標位置に移動させ、各移動目標位置において、第6リンクを、当該第6リンクの当初回転位置から、第1リンクが当該第1リンクの当初回転位置から計測位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、第1リンクの当初回転位置から計測位置までの回転角度だけ回転させた状態にして、測定点の位置を3次元計測手段により計測してこれをオフセット算出用測定点位置とし、各オフセット算出用測定点位置を基準座標上の位置に座標変換する。
【0014】
この後、各オフセット算出用測定点位置の基準座標上のXY座標値を求め、求めたオフセット算出用測定点位置のXY座標値を基準座標のXY平面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に基準座標の原点から下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とする。
以上のようにして求めた軸間オフセット量により、例えばDHパラメータを補正することにより、絶対位置精度の更なる向上を図ることができる。
【0015】
(請求項2)
請求項2の発明は、請求項1において、第1回転関節の回転軸の回転中心線から延ばした任意の一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに手先を移動させる動作は、第1回転関節の回転軸の回転中心線から互いに反対方向に向けて延ばした2つの平面について行い、一方の平面上から他方の平面上への手先の移行は、第1リンクを固定した状態で第2,3,5の回転関節のうち少なくとも2つの回転関節の回転軸を回転させることによりロボットアームを反転させて行うことを特徴とする。
【0016】
一方の一平面上の任意の複数位置に手先を移動させたときの測定点の位置を結んでできる計測依存線分と、ロボットアームを反転させて他方の一平面上の任意の複数位置に手先を移動させたときの測定点の位置を結んでできる計測依存線分とは一直線上に位置する筈である。一直線上に位置しない場合には、基準座標を設定する手法や、モータの原点位置誤差、前記第1〜第6の各回転駆動系の撓み、或いは第1〜第6の各リンクの長さ誤差により手先の位置誤差が生じないようにするための手法などに誤りがあったと考えられる。
このため、請求項2の発明によれば、軸間オフセット量が正しく求められたか否かの確認をすることができる。
【0017】
(請求項3)
請求項3の発明は、請求項1または2における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、手先を任意の複数の移動目標位置に移動させることとしたとき、第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して第1〜第6の各リンクを駆動するモータの原点位置誤差、第1〜第6の各回転駆動系の撓み、第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差による手先の位置誤差が生じないように補正処理を行った上で、第5回転関節の回転軸の回転中心線が第2,3の両回転関節の回転軸の回転中心線と平行の状態を保持したまま、第1の回転関節と第2,3,5の回転関節のうちの少なくとも2つの回転関節の回転軸を回転させることにより、手先を、第6回転関節の回転軸の回転中心線が第1回転関節の回転軸の回転中心線と平行を保持した状態で、任意に定めた複数の移動目標位置に移動させ、且つ、各移動目標位置において、第6リンクを、当該第6リンクの当初回転位置から、第1リンクが当該第1リンクの当初回転位置から現回転位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、第1リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、測定点の位置を3次元計測手段により計測し、各移動目標位置において計測した定点の位置をオフセット算出用測定点位置とし、求めた各移動目標位置におけるオフセット算出用測定点位置を基準座標上の位置に座標変換して、複数のオフセット算出用測定点位置の基準座標上のXY座標値を求め、且つ各移動目標位置のXY座標値を基準座標のXY座標値に変換して基準座標上の移動目標位置とし、各移動目標位置について、基準座標のXY平面上に測定点の移動目標位置のXY座標値とオフセット算出用測定点位置のXY座標値とをプロットし、基準座標の原点から前記XY平面上の移動目標位置までの線分の長さを目標位置半径とすると共に、XY平面上の前記オフセット算出用測定点位置から基準座標の原点と前記XY平面上の移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、直交2軸のうち一方の軸に移動目標位置半径をとり他方の軸にオフセット誤差成分をとったグラフにプロットしこれらプロットされた点を結ぶ直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とする。
このようにしても、請求項1と同様の効果を得ることができる。
【0018】
(請求項4)
請求項4は、請求項3において、基準座標の任意の複数の移動目標位置に手先を移動させる動作は、ロボットアームの前屈姿勢と、この前屈姿勢からロボットアームを反転させた後屈姿勢の双方で行うことを特徴とする。
【0019】
このようにすることにより、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、グラフにプロットしたとき、これらプロッタされた点が前屈姿勢と後屈姿勢とで一直線上に位置するか否かにより、請求項2と同様に軸間オフセットが正しく求められたか否かの確認をすることができる。
【図面の簡単な説明】
【0020】
【図1】本発明の第1の実施形態を示すロボット装置の斜視図
【図2】回転関節の概略を示す断面図
【図3】各回転関節の回転軸を原点位置に設定した状態で示すロボットの側面図
【図4】各リンクに設定された座標を示す斜視図
【図5】DHパラメータを示す表
【図6】DHパラメータの具体的数値を示す表
【図7】制御装置を示すブロック図
【図8】フランジ部分の斜視図
【図9】本発明の手順を示す行程図
【図10】基準座標の設定を説明するための図で、(a)は斜視図、(b)は平面図
【図11】回転駆動系の撓みの説明図
【図12】移動目標位置を示す斜視図
【図13】ロボットの前屈状態を示す側面図
【図14】ロボットの後屈状態を示す側面図
【図15】カメラ座標を基準座標に変換するための同時変換行列を示す図
【図16】軸間オフセット量を求めるための説明図
【図17】本発明の第2の実施形態を示す図
【図18】軸間オフセット量を求めるための説明図
【発明を実施するための形態】
【0021】
(第1の実施形態)
以下に本発明の第1の実施形態を図1〜図16に基づいて説明する。図1には、6軸の垂直多回転関節型のロボット装置1が示されている。このロボット装置1は、6軸垂直多関節型ロボット(以下、単にロボットと称する)2と、ロボット2の動作を制御する制御装置(ロボット制御手段)3と、制御装置3に接続されてロボット2を手動操作によって動作させるためのティーチングペンダント(手動操作手段)4とを備えている。
【0022】
ロボット2は、据え付け面、例えば工場の水平な床面に固定されるベース(ベースリンク)5に対し、ロボットアーム6を構成するショルダ(第1リンク)7、下アーム(第2リンク)8、第1の上アーム(第3リンク)9、第2の上アーム(第4リンク)10と、手首アーム(第5リンク)11、フランジ(第6リンク)12を第1〜第6の各回転関節J1〜J6(図1には図示せず)により順次連結して構成されている。
【0023】
つまり、ショルダ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を中心に捻り回転可能に支持されている。
【0024】
前記第1〜第6の各回転関節J1〜J6は、図2にその概略が示されている。図2に示す通り、各リンク7〜12の回転関節J1〜J6は、前段のリンクに軸受13を介して回転可能に支持された回転軸14からなり、この回転軸14に次段のリンクが直接或いは継ぎ手材を介して連結される。回転軸14は、前段のリンクに固定された駆動源としてサーボモータ15に減速装置、例えば歯車減速装置16を介して回転駆動され、この回転軸14の回転によって次段のリンクが旋回動作或いは捻り回転動作を行うようになっている。
【0025】
ここで、前記第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は水平に定められている。そして、第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と直交する方向に定められている。
【0026】
ショルダ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も原点位置から正(プラス)方向および逆(マイナス)方向に回転するようになっている。
【0027】
ショルダ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と一致している。
【0028】
また、座標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軸とのベクトルの外積によって求められる方向に定められている。なお、X1〜X6軸、Y1〜Y6軸、Z1〜Z6軸のプラス方向は、図4に矢印で示す方向となっている。
【0029】
ベース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と一致した位置に定められている。また、ロボット座標R0のZ軸であるZ0軸は第1軸Lc−1に一致し、X軸であるX0軸およびY軸であるY0軸は、ショルダ7が原点位置にあるときの当該ショルダ7の座標R1のX1軸およびY1軸に一致している。
【0030】
フランジ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軸と平行に定められている(図4参照)。そして、フランジ12の先端面の中心Pがロボットアーム6の先端である手先に定められており、従って手先座標Rfの原点Ofは手先の位置に一致している。
【0031】
以上の座標R0〜R6,Rfのうち、ロボット座標R0を除く座標R1〜R6,Rfの原点O1〜O6,Ofは、本実施形態においては、座標R1のX1軸とZ1軸を含む一つの平面(鉛直のZ1X1平面)を仮定したとき、この一平面上に位置されている。そして、ロボットアーム6の動作時、座標R2〜R6,Rfの原点O2〜O6,Ofは座標R1のZ1X1平面上を移動する。
【0032】
上述のように規定された座標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の具体的な数値例を示した。
【0033】
前記制御装置3は、図7に示すように、CPU(制御手段)17と、駆動回路(駆動手段)18と、位置検出回路(位置検出手段)19とを備えている。CPU17には、ロボット2全体のシステムプログラムや動作プログラムを作成するためのロボット言語やDHパラメータなどの各種データなどを記憶するROM(記憶手段)20およびロボット2の動作プログラムを記憶するRAM(記憶手段)21が接続されていると共に、ティーチング作業などを行う際に使用する前記ティーチングペンダント4が接続されている。ティーチングペンダント4は、図1に示すように、各種の操作部4aおよび液晶からなる表示器4bを備えている。
【0034】
位置検出回路19には、各サーボモータ15の回転軸(図示せず)に連結された回転センサとしてのロータリエンコーダ22が接続されている。位置検出回路19は、各ロータリエンコーダ22の回転角検出情報に基づいてショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を検出し、その回転角検出情報をCPU17に与える。
【0035】
ここで、CPU17は、ロボット座標R0上での手先の位置(手先座標Rfの原点Ofの位置)と姿勢(手先座標RfのXf軸、Yf軸、Zf軸のロボット座標R0上での向き)が与えられると、手先がその位置と姿勢をとるようなショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を、ヤコビ行列を用いた逆運動学の周知の計算手法によって求める。
【0036】
また、逆に、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度が与えられると、それら回転角度から座標変換を用いた順運動学の周知の計算手法によってロボット座標R0上での手先の位置と姿勢を求めることができるように構成されている。これらの逆運動学および順運動学の計算手法による演算には、周知のように各座標R0〜R6,Rfの相互の関係を示す前記DHパラメータが用いられる。
【0037】
そして、CPU17は、動作プログラムから手先のロボット座標R0上での目標位置を取得すると,その手先の目標位置からショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の目標動作角度を演算し、その目標動作角度に基づいた動作指令を駆動回路18に与える。駆動回路18は与えられた動作指令に基づいて各サーボモータ15を駆動する。このとき、CPU17は、位置検出回路19から与えられるショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角検出情報をフィードバック情報として各サーボモータ15をフィードバック制御する。
【0038】
ところで、先に述べたように、ショルダ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を目標動作角度だけ回転させることにより、手先は目標位置に正しく移動する。
【0039】
しかしながら、ロボット2の構成部品の製作誤差や組み立て誤差などにより、下アーム8、第1の上アーム9、手首アーム11の回転関節J2,J3,J5の各回転軸14の位置が第2軸Lc−2、第3軸Lc−3、第5軸Lc−5の指向方向にずれて正規の位置との間に誤差(軸間オフセット)を生ずると、実際の手先(フランジ12の先端面の中心P)の位置が設計上の手先座標Rfの原点Ofから水平方向にずれる。
【0040】
すると、ショルダ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の軸間オフセットの総和とは、ほとんど差がないと考えられる。
【0041】
本発明方法は、回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和を推測し、推測した軸間オフセット分だけDHパラメータを修正して手先の実際の移動位置を目標位置にできるだけ近づけようとするものである。
本発明方法は、ティーチングペンダント4を操作して手先を複数の目標位置に移動させたとき、手先の実際の移動位置を図7に示す3次元計測器(3次元計測手段)23によって計測して目標位置とのずれ量を求め、このずれ量から軸間オフセットを推測するものである。この場合、手先の実際の移動位置と目標位置とのずれは、軸間オフセット以外の要因、即ち各回転関節J1〜J6の回転駆動系の撓み、各サーボモータ15の原点位置誤差、各リンク7〜12の長さ誤差、各回転関節J1〜J6の回転軸14相互間のねじれ角度誤差によっても生ずるので、これらの要因による位置誤差が生じないような補正処理を事前に行う必要がある。
【0042】
前記3次元計測器23は、例えば3台のCCDカメラを備えた3次元計測器(例えば、株式会社東洋テクニカ;ロボットキャリブレーションROCALシステム)からなる。なお、3次元計測器23はレーザトラッカなどであっても良い。この3次元測定器23に対し、フランジ12の先端面には、図8に示すように、中心Pから離れた任意の位置に支持台24が取り付けられ、この支持台24の先端部に測定点としての発光ダイオード25が取り付けられている。そして、3次元計測器23は、この発光ダイオード25の位置を計測する。
【0043】
3次元計測器23による発光ダイオード25の計測位置は、パソコンからなる測定制御装置(測定制御手段)26によって3次元計測器23に予め設定された3次元座標(以下、カメラ座標という。)Rc上の位置で示される。このカメラ座標Rcの一目盛で表わされる距離は、手先がロボット座標R0の一目盛分の距離だけ移動したときの距離と等しくなるように定められている。従って、ロボット座標R0の一目盛の長さ(単位長さ)とカメラ座標Rcの一目盛の長さ(単位長さ)とは同じ距離を表わすこととなる。
【0044】
さて、本発明方法は図9に示す手順により行われる。まず、カメラ座標Rc上におけるロボット座標R0の位置、当該ロボット座標R0のX0軸、Y0軸およびZ0軸の方向は分からない。そこで、本実施形態では、カメラ座標Rc上にロボット座標R0に代わる座標として基準座標Rbを設定する(図9のステップS1)。この基準座標Rbの設定のためのロボットアーム6の動作は、ティーチングペンダント4を使用して行う。
【0045】
ここで、ティーチングペンダント4の機能について説明すると、当該ティーチングペンダント4は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12のサーボモータ15を個別に所望の角度だけ回転させて、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12をそれぞれの原点位置から正逆方向に所望の回転角度だけ回転させることができるように構成されている。
【0046】
また、ティーチングペンダント4は、ショルダ7の回転位置、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢をロボット座標R0で指定できるようになっており、ティーチングペンダント4によりロボット座標R0上での位置と姿勢が指定されると、ロボット装置1のCPU17がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12の回転角を演算し、その回転角となるように各サーボモータ15を駆動する。これにより、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先が指定された位置と姿勢をとるように動作する。
ここで、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢は、座標R1〜R6,Rfの位置と姿勢と同義である。
【0047】
更に、現在のショルダ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上の位置と姿勢で表示することができるようにもなっている。
【0048】
カメラ座標Rc上に前記基準座標Rbを設定するには、まず、ショルダ7とフランジ12の当初位置を設定する。即ち、ティーチングペンダント4の操作部4aを操作し、図3の垂直上向きの状態から下アーム8、第1の上アーム9を回転させてロボットアーム6が例えば図13に示すようにショルダ7の前側(X1軸のプラス側)に倒れた前屈姿勢にする。なお、ロボットアーム6をショルダ7の後側に倒れた図14の後屈姿勢にしても良い。そして、ショルダ7を適宜(任意)の位置に回転させる。
【0049】
また、第5回転関節J5の回転軸14の回転中心線である第5軸Lc−5を第2,3の回転関節J2,J3の回転軸14の回転中心線である第2軸Lc−2、第3軸Lc−3と平行の状態、つまり水平の状態にし、且つ、第6回転関節J6の回転軸14の回転中心線である第6軸Lc−6を第1回転関節J1の回転中心線である第1軸Lc−1と平行、つまり鉛直の例えば下向きの状態にする。そして、フランジ12を適宜の回転位置に回転させる。なお、第6軸Lc−6は第1軸Lc−1と平行の鉛直上向きの状態にしても良い。
【0050】
このようにティーチングペンダント4の操作によりショルダ7を適宜の回転位置に回転させると共に、フランジ12を適宜の回転位置に回転させたとき、それらの回転位置をショルダ7の当初回転位置およびフランジ12の当初回転位置と定める。このときのフランジ12の当初回転位置は、手先の位置にかかわらず、発光ダイオード25が3次元計測器23によって撮影され易い位置、つまり第6軸Lc−6よりも3次元計測器23側に位置するような回転位置とすることが好ましい。
【0051】
以上のようにしてショルダ7とフランジ12の当初回転位置を定めた後、第5軸Lc−5が第2軸LC−2および第3軸Lc−3と平行で、且つ第6軸Lc−6が第1軸Lc−1と平行の状態を保持したままで第1軸Lc−1を中心にしてショルダ7を互いに異なる任意の複数の回転位置C1,C2…Cnに回転させる(図10(b)参照)。そして、各回転位置において、フランジ12を、当該フランジ12の当初回転位置から、ショルダ7が当初回転位置から現回転位置まで回転したとしたときのショルダ7の回転方向と逆の方向に、ショルダ7の当初回転位置から現回転位置までの回転角度だけ回転させる。
【0052】
例えば、ロボット座標R0のZ0軸のプラス側、つまり上方からロボットアーム6を見たとき、ショルダ7が当初回転位置から時計回り方向に30°回転した位置まで回転したとすると、フランジ12を当初回転位置から反時計回り方向に30°だけ回転した状態にするのである。このようにショルダ7の各回転位置において、フランジ12をショルダ7の回転方向と逆方向に同じ角度だけ回転させることにより、発光ダイオード25は、図10(b)に示すように、ロボット座標R0を第6軸Lc−6上に平行移動させてZ0軸のプラス側から見たとき、常に当初位置と同じ位置に存在することとなる。
【0053】
そして、ショルダ7の各回転位置において、フランジ12をショルダ7の回転方向と逆方向に同じ角度だけ回転させた状態で、基準座標設定用測定点としての発光ダイオード25の位置を3次元計測器23により計測する。この発光ダイオード25の互いに異なる3点以上の計測位置d1,d2,…dnは、図10に示すように、第1軸Lc−1(Z0軸)と平行の鉛直軸を中心とした円形の回転軌跡E上に存するようになる。測定制御装置26は、3次元計測器23によって計測された発光ダイオード25の回転軌跡E上の複数位置d1,d2,…dnから、最小二乗法により発光ダイオード25の回転中心の位置Obを求めると共に、発光ダイオード25の複数位置d1,d2,…dnを含む一平面の法線Lvを求める。そして、回転中心の位置Obを基準座標Rbの原点、この原点Obを通って法線Lvと平行(同じ向き)な直線、つまり前述の第1軸Lc−1と平行の鉛直軸を基準座標RbのZb軸(Z軸)と定める。
【0054】
また、原点Obを通ってZb軸に直交する任意の直線、例えば、ショルダ7を原点位置に回転させたときの発光ダイオード25の位置P0と原点Obとを結んだ直線を基準座標RbのXb軸(X軸)に定め、Zb軸とXb軸のベクトルの外積から両軸に直交する直線を求めて当該直線を基準座標RbのYb軸(Y軸)とする。なお、基準座標Rbの一目盛の長さはカメラ座標Rc、従ってロボット座標R0の一目盛の長さと同じに定められている。
【0055】
以上により、カメラ座標Rc上に基準座標Rbが設定される。このようにして設定した基準座標Rbにおいて、Zb軸は第1軸Lc−1従ってロボット座標R0のZ0軸と平行で、且つ、XbYb平面はX0Y0平面と平行である。なお、基準座標Rbの設定時において、発光ダイオード25の位置がX0Y0平面上にあれば、XbYb平面はX0Y0平面と一致する。
【0056】
Zb軸はZ0軸から所定方向に所定距離だけ離れたところにある。つまり、Z0軸とZb軸の位置関係は、フランジ12が当初回転位置にあるときの第6軸LC−6と発光ダイオード25の位置関係と同じであって、Z0軸からZb軸に向かう方向はフランジ12が当初回転位置にあるときの第6軸Lc−6から発光ダイオード25に向かう方向と同じで、Z0軸からZb軸までの距離は第6軸Lc−6から発光ダイオード25までの距離と同じである。
【0057】
そして、軸間オフセットがないとすれば、Xb軸、Yb軸はロボット座標R0のX0軸、Y0軸と平行になる。しかし、軸間オフセットがある場合には、基準座標Rbの設定時に、ショルダ7を原点位置(0°)に回転させたときの発光ダイオード25の位置P0が軸間オフセット分だけX0Y0方向にずれるので、Xb軸、Yb軸はX0軸、Y0軸とは平行ではなく、図16に示すように軸間オフセットに応じて傾くようになる。
【0058】
基準座標Rbを設定した後、図12に示すように、第1軸Lc−1から延ばした当該第1軸Lc−1を含む任意の一平面A1を想定する。この場合、任意の一平面A1は、X0軸とのなす角度βで指定するものとし、手先を例えばX0軸とのなす角度プラス30°の一平面上に位置させるには、ショルダ7を原点からプラス30°回転させれば良い(軸間オフセットなしの場合)。
【0059】
本実施形態では、図12に示すように、第1軸Lc−1と同軸であるロボット座標R0のZ0軸から一方向に延ばした当該Z0軸を含む一平面A1と、その反対方向に向けて延ばした一平面A2を想定する。この一方の平面A1と、他方の平面A2とは面一の一つの平面Aとなる。この実施形態では、このような平面Aを複数設定するものとし(図12では1つのみ図示)、そのうちの一つの平面はX0軸(β=0°)を含むものとする。
【0060】
想定した一方向に延びる一平面A1上と、その反対方向に延びる一平面A2上には、それぞれ任意の複数位置を移動目標位置として選択する。選択した移動目標位置を図12に白抜きの丸印で示した。このとき、移動目標位置はロボット座標R0の座標値で指定する。これら移動目標位置には、軸間オフセットを求めるために、後述のようにしてロボットアーム6の手先を移動させる。
【0061】
ここで、平面A1,A2上に選択された複数の移動目標位置はロボット座標R0の座標値で指定する。そして、第5軸Lc−5が第2軸LC−2および第3軸Lc−3と平行で、且つ第6軸Lc−6が第1軸Lc−1と平行の状態を保持した姿勢(フランジ12の目標位置到達姿勢)で手先が移動目標位置に移動したとき、各移動目標位置において、フランジ12を、当該フランジ12の当初回転位置から、ショルダ7が当初回転位置から現移動目標位置まで回転したとしたときのショルダ7の回転方向と逆の方向に、ショルダ7の当初回転位置から現移動目標回転位置までの回転角度だけ回転させる(当初位置保持動作)こととする。
【0062】
すると、そのときの発光ダイオード25と手先(フランジ12の先端面の中心P)の位置関係は、X0(Xb),Y0(Yb)方向に関しては、基準座標Rbとロボット座標R0の位置関係と同じとなる。つまり、Z0軸のプラス側から見たとき、手先の位置を、ロボット座標R0の原点O0から基準座標Rbの原点Obに向かう方向に、原点O0から原点Obまでの距離だけ移動させると、発光ダイオード25の位置になるという関係にある。
【0063】
従って、手先の移動目標位置を示すロボット座標R0でのX0,Y0座標値と、手先が移動目標位置に移動したとき、フランジ12が目標位置到達姿勢にあって当初保持動作した状態での発光ダイオード25の位置を示す基準座標RbのXb,Yb座標値とは、同じ値となる(軸間オフセットなしの場合)。このときの発光ダイオード25の基準座標Rb上でのXbYb座標上の位置を、発光ダイオード25の移動目標位置とする。そして、手先が移動目標位置に移動したとき、軸間オフセットがある場合、手先の実際の移動位置は移動目標位置から軸間オフセット量だけX0Y0方向にずれ、この結果、発光ダイオード25の位置も移動目標位置に応じてXbYb方向にずれるので、この発光ダイオード25のずれ量から軸間オフセット量を求めることができるものである。
【0064】
さて、各平面A1,A2上に選択した移動目標位置にロボットアーム6の手先を移動させるに先立ち、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による手先の移動位置誤差を排除する処理を行う。
【0065】
まず、回転駆動系の撓みとは、サーボモータ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には、大きなトルクは作用せず、絶対位置誤差を生じさせるような撓みは生じない。)。
【0066】
回転駆動系に作用するトルクは、図11に示すように、回転軸14が支えるリンクLの質量Wと、回転軸14からリンクLの中心までの距離Dとの積で求めることができる。そして、前記平面A上に選択した任意の複数位置にロボットアーム6の手先を移動させる場合、ショルダ7を平面AがX0軸となす角度位置に回転させ、第5軸Lc−5を第2,3軸Lc−2,Lc−3と平行に保持し、そして、下アーム8と第1の上アーム9と手首アーム11のうちの少なくとも2つ、本実施形態では全てを回転させて手先を各移動目標位置に移動させ、各移動目標位置においてフランジ12が目標位置到達姿勢で且つ当初位置保持動作させる。このとき、移動目標位置によってロボットアーム6は前屈姿勢或いは後屈姿勢を取る。
【0067】
そして、各移動目標位置へ移動したときの第2の上アーム10、下アーム8、第1の上アーム9、手首アーム11、フランジ12の回転角度をティーチングペンダント4から読み取る。それらの回転角度から第2軸Lc−2、第3軸Lc−3、第5軸Lc−5に作用するトルクを計算し、それらの回転駆動系の撓み(角度)αを求め(以上、図9のステップS2)、求めた回転駆動系の撓みαだけサーボモータ15の回転角を加減して撓みが生じない場合と同等になるようにする。つまり、図11において、実線で示すリンクの位置が回転駆動系の撓みなしとした場合の移動目標位置で、破線で示す位置が回転駆動系の撓みありの場合の実際の移動位置とすると、サーボモータ15の回転角度を撓みα分だけ少なくする。これにより、回転駆動系が撓みを生じた状態で、リンクが実線の移動目標位置に到達するようになる。
【0068】
モータ原点位置誤差は、例えば前記特許文献1〜4に開示された方法によって検出する。また、ねじれ角誤差、リンク長誤差は、例えば前記非特許文献1に開示された方向によって検出する。この非特許文献1の方法は、第1軸Lc−1〜第6軸Lc−6の各軸を中心にロボットアーム6を回転させたときの手先の回転軌跡を3次元計測器により計測し、回転中心の位置と、回転軌跡を含む一平面の法線を演算する。回転中心の位置から各リンクの長さが求められ、法線の方向から各軸の方向が求められるので、それらリンクの長さと軸方向とからリンク長誤差とねじれ角誤差を求めることができる、というものである(以上、図9のステップS3)。
そして、求めたモータ原点位置誤差、リンク長誤差およびねじれ角誤差によりDHパラメータを修正し、それらの誤差が絶対位置誤差となって現れないようにしておく(図9のステップS4)。
【0069】
以上のような処理を行った後、ティーチングペンダントを操作し、各平面Aの移動目標位置へ手先を移動させる。各平面Aへ手先を移動させるには、まず、平面A1がX0軸となす角度βだけショルダ7を原点位置から回転させて座標R1のX1軸を平面A上に位置させる。これにより、ショルダ7を固定したままで、第2回転関節J1、第3回転関節J3および第5回転関節J5の回転軸14を回転させることにより、フランジ12が目標位置到達姿勢をとった状態で、手先を平面A1およびA2上の移動目標位置に移動させ得るようになる。
【0070】
次いで、フランジ12を当初位置保持動作させ、フランジ12を目標位置到達姿勢のままで、下アーム8、第1の上アーム9、手首アーム11を回転させることにより、平面A1,A2上に任意に選択された複数の移動目標位置に手先を移動させる。このとき、ロボットアーム6は回転駆動系に作用するトルクを求めたときと同じ姿勢を取るものとし、先に移動目標位置毎に求めた回転駆動系の撓みに応じてサーボモータ15の回転角度を加減するものである。
【0071】
平面A1,A2上に任意に選択された複数の移動目標位置に手先を移動させる場合、ロボットアーム6は、図13に示すように、第2,3,5の回転関節J2,J3,J5の回転軸14を一方向に回転させることにより、ショルダ7から一方側に倒れて前屈した姿勢(前屈姿勢)にして一方の平面A1上の移動目標位置に手先を移動させ得るようにする。
【0072】
他方の平面A2上の移動目標位置に手先を移動させる場合には、ロボットアーム6は、第2,3,5の回転関節J2,J3,J5の回転軸14を他方向に回転させることにより、図14に示すように、反転してショルダ7から他方側に倒れて後屈した姿勢(ロボットアーム6がショルダ7の後側に倒れた後屈姿勢)で手先を他方の平面A2上の移動目標位置へ移動させる。そして、各移動目標位置に置いて、発光ダイオード(オフセット計測用測定点)25の位置を3次元計測器23により計測する(以上、図9のステップS5)。
【0073】
なお、フランジ12を当初位置保持動作させる時期は、X1軸を平面A1上に位置させた後、手先を移動目標位置へ移動させる前に限らず、手先を各移動目標位置に移動させた時であっても良いが、各移動目標位置への移動はショルダ7を固定したままで行うので、最初の移動目標位置に移動させたときに当初位置保持動作させれば、その後に移動させた移動目標位置では当初位置保持動作は行わせなくとも良くなる。
3次元計測器23により計測した位置はカメラ座標Rcの位置であるから、これを基準座標Rbの位置に変換する。この変換は図15に示す同時変換行列により行う(図9のステップS6)。
【0074】
図16はZ0軸のプラス側から見た手先の移動目標位置(ロボット座標R0の座標値で示される。)、発光ダイオード25の移動目標位置(基準座標Rbの座標値で示される。)、手先が移動目標位置に移動したときの実際の手先の位置、手先が移動目標位置に移動したときの発光ダイオード25の位置(カメラ座標Rcの座標値から基準座標Rbの座標値に変換される。)を示す。図16では、説明の簡単化のために、平面A1,A2はX0軸上にあり、手先の移動目標位置はX0軸上の位置が選択されたものとする。図16において、二重の丸印が手先の移動目標位置、白抜きの丸印が手先の実際の移動位置、黒丸印が発光ダイオード25の移動目標位置、×印が発光ダイオード25の実際の移動位置を示している。
【0075】
手先を移動目標位置に移動させる場合、回転駆動系の撓み、モータ原点誤差、リンク長誤差、ねじれ角誤差によっては移動位置に誤差が生じないように前処理したのであるから、発光ダイオード25の移動目標位置と実際の移動位置との間の誤差(手先の移動目標位置と実際の移動位置との間の誤差と同じ)は、軸間オフセットによって生じたものと考えられる。そして、この軸間オフセットによって生ずる誤差は、移動目標位置がX0軸上にあるから、実際の移動位置は移動目標位置から軸間オフセットだけずれたX0軸と平行の一直線上に並ぶ(一直線上に正確に並ばないまでも、一直線に沿って分布する)こととなる。
【0076】
軸間オフセット量は、手先の移動目標位置と実際の移動位置とのX0Y0方向の距離であり、これは軸間オフセットなし(Xb軸がX0軸と平行)としたときの発光ダイオード25の移動目標位置と実際の移動位置とのXbYb方向の距離と同じである。このため、発光ダイオード25についての複数の実際の移動位置を結んだ線分をXbYb平面上に作成してその線分を計測依存線分Bとし、この計測依存線分Bを延長した直線Bbと基準座標Rbの原点Obとの最短距離(ObからBbに下ろした垂線の長さ)を求めると、この最短距離が軸間オフセット量Fとなる(図9のステップS7)。
【0077】
この場合、ロボットアーム6を前屈させて延長線A1上の移動目標位置に移動させたときの実際の移動位置を結ぶ計測依存線分Bと、ロボットアーム6を後屈させて延長線A2上の移動目標位置に移動させた場合の実際の移動位置を結ぶ計測依存線分Bとが一本の直線にならなかった(一本の直線近辺に並ばなかったことも含む)場合、今までの過程のどこかに不都合があったと考えられるので、この場合には、最初のステップS1からやり直すようにする。このように、2本の延長線A1,A2上に移動目標位置を定めることで、実施に際した不具合を検知することができるようになる。
なお、軸間オフセットはXbYb方向に現れ、Zb方向の位置には無関係であるから、手先の移動目標位置がX0軸上のない場合には、Xb座標値とYb座標値のみから発光ダイオード25の移動位置をXbTb平面上にプロットすれば良い。
【0078】
さて、Xb軸を含む平面A1,A2以外の他の同様の平面に定めた移動目標位置ついても、上記したと同様にして軸間オフセット量Fを求める。この場合も、発光ダイオード23の実際の移動位置は一直線上に並ぶ筈であるから、発光ダイオード25の実際の移動位置(Xb座標値、Yb座標値)を結んでできる計測依存直線Bについても同様に原点Obとの最短距離を計測する。これら各計測依存直線Bと原点Obとの間の最短距離は、どの計測依存直線Bについても同一となる筈であるが、実際には測定誤差などの原因で必ずしも同一とはならないことが多い。このような場合には、計測依存直線Bと原点Obとの最短距離の平均を求めて軸間オフセットを出す。これにより、軸間オフセットをより正確に求めることができるようになる。
【0079】
以上のようにして求めた軸間オフセットは、第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欄には配分しない。
【0080】
J2,J3のd欄のいずれか、または、J2,J3のd欄に分けて軸間オフセットの値を追加することによって絶対位置精度が改善されたか否かを確認するために、軸間オフセットを追加したDHパラメータを用いてXb軸上に複数の目標位置を定め、上述したと同様にして手先を目標位置に移動させ、実際の移動位置を測定する実験を行った。
【0081】
この結果、XbYb平面上での位置誤差が0.67mmから0.17mmに減少した。Zb軸方向の位置誤差も0.9mmから0.06mmに減少した。このことから、XbYbZbの3次元方向について、位置誤差が1.12mmから0.18mmに減少したということができる。
【0082】
このように本実施形態によれば、軸間オフセットを量的に把握でき、この軸間オフセットによりDHパラメータを修正して軸間オフセットによる誤差がない、或いは誤差ができるだけ生じないようにすることができ、絶対位置精度を高めることができる。
【0083】
(第2の実施形態)
図17および図18は本発明の第2の実施形態を示す。この実施形態は、基準座標Rbは第1の実施形態と同様にして求めるが、軸間オフセット量の求め方を異ならせたものである。
本実施形態は、手先の可動範囲内において、任意の複数位置を手先の移動目標位置に設定して当該複数の移動目標位置に手先を移動させたとき、発光ダイオード25の移動目標位置と実際の移動位置との差を基に軸間オフセットを求めるようにしたものである。
【0084】
即ち、まず、ロボット座標R0上で任意の複数位置を移動目標位置として選択する。図17に移動目標位置として選択した複数位置を二重の丸印で示した。なお、図17は水平方向(X0Y0方向、XbYb方向)の位置のみを示している。これらのうち、X0座標値がプラス側(Y0軸の右側)の移動目標位置への手先の移動は、ロボットアーム6の前屈姿勢で行い、マイナス側(Y0軸の左側)の移動目標位置への手先の移動は、ロボットアーム6の後屈姿勢で行うものとする。
そして、第1の実施形態と同様に、選択した複数の移動目標位置に手先を移動させるに先立ち、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による手先の移動位置誤差を排除する処理を行う。
【0085】
この後、手先を、目標位置到達姿勢で、選択された複数の移動目標位置に移動させる。このときの移動は、第1の回転関節J1と、第2,3,5の回転関節J2,J3,J5のうち少なくとも2つの回転関節、本実施形態では第2,3,5の回転関節J2,J3,J5の3つの回転関節の回転軸14を回転させることによって行う。第5軸Lc−5を水平に保持するために、第4の回転関節J4の回転軸14は回転させない。そして、各移動目標位置において、フランジ12を当初位置保持動作させた状態にして発光ダイオード25の位置を3次元計測器23により計測する。
この3次元計測器23により計測した位置はカメラ座標Rcの位置であるから、これを基準座標Rbの位置に変換する。各移動目標位置での発光ダイオード25の計測位置を図17に×印で示した。
【0086】
発光ダイオード25の移動目標位置と実際の移動位置とから軸間オフセットを求めるには、発光ダイオード25の移動目標位置の基準座標Rb上でのXb座標値およびYb座標値を求める必要がある。第1の実施形態でも述べたように、軸間オフセットなしとした場合、基準座標RbのXb軸およびYb軸がX0軸およびY0軸と平行であるから、手先の移動目標位置を示すX0座標値とY0座標値は、発光ダイオード25の移動目標位置をロボット座標Rbで示したときのXb座標値とYb座標値と同じとなる。
【0087】
求めた発光ダイオード25の移動目標位置の基準座標Rb上でのXb座標値およびYb座標値で示される位置を図17に黒丸で示すようにプロットし、原点Obから移動目標位置までの線分の長さを目標位置半径D0とし、発光ダイオード25の計測位置から原点Obと移動目標位置とを通る直線に下ろした垂線の長さをオフセット誤差成分M0とする。
【0088】
そして、図18に示すように、横軸に目標位置半径D0を取り、縦軸にオフセット誤差成分M0を取ったグラフを作成して、このグラフに各移動目標位置について目標位置半径D0とオフセット誤差成分M0との関係をプロットしこれらプロットされた点を通る直線を誤差直線Gとする。この誤差直線Gにグラフの原点から垂線を下ろすと、この垂線の長さが第2,3,5の回転関節の合計の軸間オフセット量Fとなる。
【0089】
(その他の実施形態)
本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような変更或いは拡張が可能である。
ベース5の据え付け面は必ずしも水平でなくとも良い。
測定点は発光ダイオード25に限られない。単なるマーク、好ましくは点状のマークであっても良い。
基準座標RbのXb軸は必ずしもX0軸と平行とする必要はない。原点Obを通る任意の直線に定めれば良い。この場合、任意の直線(Xb軸)とX0軸とのなす角度がXb軸を定めたときのX1軸とX0軸とのなす角度と発光ダイオード25の当初位置とから求められるので、Xb軸とX0軸とのなす角度を基に基準座標Rbとロボット座標R0との関係を求めて座標変換することによって基準座標Rb上の位置とロボット座標R0上の位置とを互いに変換することができるようにすれば良い。
【0090】
第1の実施形態において、平面A1(Zb軸から一方向に延びる平面)から平面A2(Zb軸から反対方向に延びる平面)の移動目標位置へ手先を移動させる場合、移動目標位置の選択位置によっては、第2,3,5の各回転関節J2、J3,J5のうち2つの回転関節の回転軸14を回転させれば、ロボットアーム6を反転させて手先を移動目標位置に移動させることができる。
第2の実施形態において、手先を任意に選択された複数の移動目標位置に移動させる場合、第2,3,5回転関節J2、J3,J5の全て、またはいずれか2つの回転関節の回転軸14を回転させても良いが、移動目標位置の選択位置によっては、第1回転関節J1の他、第2,3,5の各回転関節J2、J3,J5のうち2つの回転関節の回転軸14を回転させれば手先を移動目標位置に移動させることができる。即ち、少なくとも2つの回転関節の回転軸を回転させれば良い。
【符号の説明】
【0091】
図面中、3は制御装置、5はベース(ベースリンク)、6はロボットアーム、7はショルダ(第1リンク)、8は下アーム(第2リンク)、9は第1の上アーム(第3リンク)、10は第2の上アーム(第4リンク)、11は手首アーム(第5リンク)、12はフランジ(第6リンク)、23は3次元計測器(3次元計測手段)、25は発光ダイオード(測定点)を示す。
【技術分野】
【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リンクの回転中心線から離れた位置に当該第6リンクと一体に動作する測定点を設け、第1リンクの適宜の回転位置を当該第1リンクの当初回転位置と定めると共に、第1リンクの当初回転位置における第6リンクの回転位置を当該第6リンクの当初回転位置と定める。そして、第5回転関節の回転軸の回転中心線が第2,3の両回転関節の回転軸の回転中心線と平行で、且つ第6回転関節の回転軸の回転中心線が第1回転関節の回転軸の回転中心線と平行の状態を保持しながら、第1リンクを互いに異なる3以上の任意の回転位置に回転させる。
【0011】
この第1リンクの各回転位置では、第6リンクを、当該第6リンクの当初回転位置から、第1リンクが当該第1リンクの当初回転位置から現回転位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、第1リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を3次元計測手段により計測し、この測定点の3以上の複数位置から、これら3以上の複数位置を通る円の中心位置と、これら3以上の複数位置が含まれる平面の法線とを求め、求めた円の中心を原点、当該原点を通る前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定める。
【0012】
次に、第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに前記手先を移動させることとしたとき、第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して第1〜第6の各リンクを駆動するモータの原点位置誤差、第1〜第6の各回転駆動系の撓み、第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって手先の位置誤差が生じないように補正処理を行う。
【0013】
その上で、第2,3,5の回転関節のうち少なくとも2つの回転関節の回転軸を回転させることにより、第5回転関節の回転軸の回転中心線が第2回転関節および第3回転関節の回転軸の回転中心線と平行で、且つ第6回転関節の回転軸の回転中心線が第1回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、手先を移動目標位置に移動させ、各移動目標位置において、第6リンクを、当該第6リンクの当初回転位置から、第1リンクが当該第1リンクの当初回転位置から計測位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、第1リンクの当初回転位置から計測位置までの回転角度だけ回転させた状態にして、測定点の位置を3次元計測手段により計測してこれをオフセット算出用測定点位置とし、各オフセット算出用測定点位置を基準座標上の位置に座標変換する。
【0014】
この後、各オフセット算出用測定点位置の基準座標上のXY座標値を求め、求めたオフセット算出用測定点位置のXY座標値を基準座標のXY平面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に基準座標の原点から下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とする。
以上のようにして求めた軸間オフセット量により、例えばDHパラメータを補正することにより、絶対位置精度の更なる向上を図ることができる。
【0015】
(請求項2)
請求項2の発明は、請求項1において、第1回転関節の回転軸の回転中心線から延ばした任意の一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに手先を移動させる動作は、第1回転関節の回転軸の回転中心線から互いに反対方向に向けて延ばした2つの平面について行い、一方の平面上から他方の平面上への手先の移行は、第1リンクを固定した状態で第2,3,5の回転関節のうち少なくとも2つの回転関節の回転軸を回転させることによりロボットアームを反転させて行うことを特徴とする。
【0016】
一方の一平面上の任意の複数位置に手先を移動させたときの測定点の位置を結んでできる計測依存線分と、ロボットアームを反転させて他方の一平面上の任意の複数位置に手先を移動させたときの測定点の位置を結んでできる計測依存線分とは一直線上に位置する筈である。一直線上に位置しない場合には、基準座標を設定する手法や、モータの原点位置誤差、前記第1〜第6の各回転駆動系の撓み、或いは第1〜第6の各リンクの長さ誤差により手先の位置誤差が生じないようにするための手法などに誤りがあったと考えられる。
このため、請求項2の発明によれば、軸間オフセット量が正しく求められたか否かの確認をすることができる。
【0017】
(請求項3)
請求項3の発明は、請求項1または2における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、手先を任意の複数の移動目標位置に移動させることとしたとき、第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して第1〜第6の各リンクを駆動するモータの原点位置誤差、第1〜第6の各回転駆動系の撓み、第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差による手先の位置誤差が生じないように補正処理を行った上で、第5回転関節の回転軸の回転中心線が第2,3の両回転関節の回転軸の回転中心線と平行の状態を保持したまま、第1の回転関節と第2,3,5の回転関節のうちの少なくとも2つの回転関節の回転軸を回転させることにより、手先を、第6回転関節の回転軸の回転中心線が第1回転関節の回転軸の回転中心線と平行を保持した状態で、任意に定めた複数の移動目標位置に移動させ、且つ、各移動目標位置において、第6リンクを、当該第6リンクの当初回転位置から、第1リンクが当該第1リンクの当初回転位置から現回転位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、第1リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、測定点の位置を3次元計測手段により計測し、各移動目標位置において計測した定点の位置をオフセット算出用測定点位置とし、求めた各移動目標位置におけるオフセット算出用測定点位置を基準座標上の位置に座標変換して、複数のオフセット算出用測定点位置の基準座標上のXY座標値を求め、且つ各移動目標位置のXY座標値を基準座標のXY座標値に変換して基準座標上の移動目標位置とし、各移動目標位置について、基準座標のXY平面上に測定点の移動目標位置のXY座標値とオフセット算出用測定点位置のXY座標値とをプロットし、基準座標の原点から前記XY平面上の移動目標位置までの線分の長さを目標位置半径とすると共に、XY平面上の前記オフセット算出用測定点位置から基準座標の原点と前記XY平面上の移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、直交2軸のうち一方の軸に移動目標位置半径をとり他方の軸にオフセット誤差成分をとったグラフにプロットしこれらプロットされた点を結ぶ直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、求めたずれ量を第2,3,5の回転関節の合計の軸間オフセット量とする。
このようにしても、請求項1と同様の効果を得ることができる。
【0018】
(請求項4)
請求項4は、請求項3において、基準座標の任意の複数の移動目標位置に手先を移動させる動作は、ロボットアームの前屈姿勢と、この前屈姿勢からロボットアームを反転させた後屈姿勢の双方で行うことを特徴とする。
【0019】
このようにすることにより、各移動目標位置について、目標位置半径とオフセット誤差成分との関係を、グラフにプロットしたとき、これらプロッタされた点が前屈姿勢と後屈姿勢とで一直線上に位置するか否かにより、請求項2と同様に軸間オフセットが正しく求められたか否かの確認をすることができる。
【図面の簡単な説明】
【0020】
【図1】本発明の第1の実施形態を示すロボット装置の斜視図
【図2】回転関節の概略を示す断面図
【図3】各回転関節の回転軸を原点位置に設定した状態で示すロボットの側面図
【図4】各リンクに設定された座標を示す斜視図
【図5】DHパラメータを示す表
【図6】DHパラメータの具体的数値を示す表
【図7】制御装置を示すブロック図
【図8】フランジ部分の斜視図
【図9】本発明の手順を示す行程図
【図10】基準座標の設定を説明するための図で、(a)は斜視図、(b)は平面図
【図11】回転駆動系の撓みの説明図
【図12】移動目標位置を示す斜視図
【図13】ロボットの前屈状態を示す側面図
【図14】ロボットの後屈状態を示す側面図
【図15】カメラ座標を基準座標に変換するための同時変換行列を示す図
【図16】軸間オフセット量を求めるための説明図
【図17】本発明の第2の実施形態を示す図
【図18】軸間オフセット量を求めるための説明図
【発明を実施するための形態】
【0021】
(第1の実施形態)
以下に本発明の第1の実施形態を図1〜図16に基づいて説明する。図1には、6軸の垂直多回転関節型のロボット装置1が示されている。このロボット装置1は、6軸垂直多関節型ロボット(以下、単にロボットと称する)2と、ロボット2の動作を制御する制御装置(ロボット制御手段)3と、制御装置3に接続されてロボット2を手動操作によって動作させるためのティーチングペンダント(手動操作手段)4とを備えている。
【0022】
ロボット2は、据え付け面、例えば工場の水平な床面に固定されるベース(ベースリンク)5に対し、ロボットアーム6を構成するショルダ(第1リンク)7、下アーム(第2リンク)8、第1の上アーム(第3リンク)9、第2の上アーム(第4リンク)10と、手首アーム(第5リンク)11、フランジ(第6リンク)12を第1〜第6の各回転関節J1〜J6(図1には図示せず)により順次連結して構成されている。
【0023】
つまり、ショルダ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を中心に捻り回転可能に支持されている。
【0024】
前記第1〜第6の各回転関節J1〜J6は、図2にその概略が示されている。図2に示す通り、各リンク7〜12の回転関節J1〜J6は、前段のリンクに軸受13を介して回転可能に支持された回転軸14からなり、この回転軸14に次段のリンクが直接或いは継ぎ手材を介して連結される。回転軸14は、前段のリンクに固定された駆動源としてサーボモータ15に減速装置、例えば歯車減速装置16を介して回転駆動され、この回転軸14の回転によって次段のリンクが旋回動作或いは捻り回転動作を行うようになっている。
【0025】
ここで、前記第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は水平に定められている。そして、第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と直交する方向に定められている。
【0026】
ショルダ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も原点位置から正(プラス)方向および逆(マイナス)方向に回転するようになっている。
【0027】
ショルダ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と一致している。
【0028】
また、座標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軸とのベクトルの外積によって求められる方向に定められている。なお、X1〜X6軸、Y1〜Y6軸、Z1〜Z6軸のプラス方向は、図4に矢印で示す方向となっている。
【0029】
ベース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と一致した位置に定められている。また、ロボット座標R0のZ軸であるZ0軸は第1軸Lc−1に一致し、X軸であるX0軸およびY軸であるY0軸は、ショルダ7が原点位置にあるときの当該ショルダ7の座標R1のX1軸およびY1軸に一致している。
【0030】
フランジ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軸と平行に定められている(図4参照)。そして、フランジ12の先端面の中心Pがロボットアーム6の先端である手先に定められており、従って手先座標Rfの原点Ofは手先の位置に一致している。
【0031】
以上の座標R0〜R6,Rfのうち、ロボット座標R0を除く座標R1〜R6,Rfの原点O1〜O6,Ofは、本実施形態においては、座標R1のX1軸とZ1軸を含む一つの平面(鉛直のZ1X1平面)を仮定したとき、この一平面上に位置されている。そして、ロボットアーム6の動作時、座標R2〜R6,Rfの原点O2〜O6,Ofは座標R1のZ1X1平面上を移動する。
【0032】
上述のように規定された座標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の具体的な数値例を示した。
【0033】
前記制御装置3は、図7に示すように、CPU(制御手段)17と、駆動回路(駆動手段)18と、位置検出回路(位置検出手段)19とを備えている。CPU17には、ロボット2全体のシステムプログラムや動作プログラムを作成するためのロボット言語やDHパラメータなどの各種データなどを記憶するROM(記憶手段)20およびロボット2の動作プログラムを記憶するRAM(記憶手段)21が接続されていると共に、ティーチング作業などを行う際に使用する前記ティーチングペンダント4が接続されている。ティーチングペンダント4は、図1に示すように、各種の操作部4aおよび液晶からなる表示器4bを備えている。
【0034】
位置検出回路19には、各サーボモータ15の回転軸(図示せず)に連結された回転センサとしてのロータリエンコーダ22が接続されている。位置検出回路19は、各ロータリエンコーダ22の回転角検出情報に基づいてショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を検出し、その回転角検出情報をCPU17に与える。
【0035】
ここで、CPU17は、ロボット座標R0上での手先の位置(手先座標Rfの原点Ofの位置)と姿勢(手先座標RfのXf軸、Yf軸、Zf軸のロボット座標R0上での向き)が与えられると、手先がその位置と姿勢をとるようなショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度を、ヤコビ行列を用いた逆運動学の周知の計算手法によって求める。
【0036】
また、逆に、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角度が与えられると、それら回転角度から座標変換を用いた順運動学の周知の計算手法によってロボット座標R0上での手先の位置と姿勢を求めることができるように構成されている。これらの逆運動学および順運動学の計算手法による演算には、周知のように各座標R0〜R6,Rfの相互の関係を示す前記DHパラメータが用いられる。
【0037】
そして、CPU17は、動作プログラムから手先のロボット座標R0上での目標位置を取得すると,その手先の目標位置からショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の目標動作角度を演算し、その目標動作角度に基づいた動作指令を駆動回路18に与える。駆動回路18は与えられた動作指令に基づいて各サーボモータ15を駆動する。このとき、CPU17は、位置検出回路19から与えられるショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12の回転角検出情報をフィードバック情報として各サーボモータ15をフィードバック制御する。
【0038】
ところで、先に述べたように、ショルダ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を目標動作角度だけ回転させることにより、手先は目標位置に正しく移動する。
【0039】
しかしながら、ロボット2の構成部品の製作誤差や組み立て誤差などにより、下アーム8、第1の上アーム9、手首アーム11の回転関節J2,J3,J5の各回転軸14の位置が第2軸Lc−2、第3軸Lc−3、第5軸Lc−5の指向方向にずれて正規の位置との間に誤差(軸間オフセット)を生ずると、実際の手先(フランジ12の先端面の中心P)の位置が設計上の手先座標Rfの原点Ofから水平方向にずれる。
【0040】
すると、ショルダ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の軸間オフセットの総和とは、ほとんど差がないと考えられる。
【0041】
本発明方法は、回転関節J2,J3,J5の各回転軸14の軸間オフセットの総和を推測し、推測した軸間オフセット分だけDHパラメータを修正して手先の実際の移動位置を目標位置にできるだけ近づけようとするものである。
本発明方法は、ティーチングペンダント4を操作して手先を複数の目標位置に移動させたとき、手先の実際の移動位置を図7に示す3次元計測器(3次元計測手段)23によって計測して目標位置とのずれ量を求め、このずれ量から軸間オフセットを推測するものである。この場合、手先の実際の移動位置と目標位置とのずれは、軸間オフセット以外の要因、即ち各回転関節J1〜J6の回転駆動系の撓み、各サーボモータ15の原点位置誤差、各リンク7〜12の長さ誤差、各回転関節J1〜J6の回転軸14相互間のねじれ角度誤差によっても生ずるので、これらの要因による位置誤差が生じないような補正処理を事前に行う必要がある。
【0042】
前記3次元計測器23は、例えば3台のCCDカメラを備えた3次元計測器(例えば、株式会社東洋テクニカ;ロボットキャリブレーションROCALシステム)からなる。なお、3次元計測器23はレーザトラッカなどであっても良い。この3次元測定器23に対し、フランジ12の先端面には、図8に示すように、中心Pから離れた任意の位置に支持台24が取り付けられ、この支持台24の先端部に測定点としての発光ダイオード25が取り付けられている。そして、3次元計測器23は、この発光ダイオード25の位置を計測する。
【0043】
3次元計測器23による発光ダイオード25の計測位置は、パソコンからなる測定制御装置(測定制御手段)26によって3次元計測器23に予め設定された3次元座標(以下、カメラ座標という。)Rc上の位置で示される。このカメラ座標Rcの一目盛で表わされる距離は、手先がロボット座標R0の一目盛分の距離だけ移動したときの距離と等しくなるように定められている。従って、ロボット座標R0の一目盛の長さ(単位長さ)とカメラ座標Rcの一目盛の長さ(単位長さ)とは同じ距離を表わすこととなる。
【0044】
さて、本発明方法は図9に示す手順により行われる。まず、カメラ座標Rc上におけるロボット座標R0の位置、当該ロボット座標R0のX0軸、Y0軸およびZ0軸の方向は分からない。そこで、本実施形態では、カメラ座標Rc上にロボット座標R0に代わる座標として基準座標Rbを設定する(図9のステップS1)。この基準座標Rbの設定のためのロボットアーム6の動作は、ティーチングペンダント4を使用して行う。
【0045】
ここで、ティーチングペンダント4の機能について説明すると、当該ティーチングペンダント4は、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12のサーボモータ15を個別に所望の角度だけ回転させて、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11およびフランジ12をそれぞれの原点位置から正逆方向に所望の回転角度だけ回転させることができるように構成されている。
【0046】
また、ティーチングペンダント4は、ショルダ7の回転位置、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢をロボット座標R0で指定できるようになっており、ティーチングペンダント4によりロボット座標R0上での位置と姿勢が指定されると、ロボット装置1のCPU17がショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12の回転角を演算し、その回転角となるように各サーボモータ15を駆動する。これにより、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先が指定された位置と姿勢をとるように動作する。
ここで、ショルダ7、下アーム8、第1の上アーム9、第2の上アーム10、手首アーム11、フランジ12および手先の位置と姿勢は、座標R1〜R6,Rfの位置と姿勢と同義である。
【0047】
更に、現在のショルダ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上の位置と姿勢で表示することができるようにもなっている。
【0048】
カメラ座標Rc上に前記基準座標Rbを設定するには、まず、ショルダ7とフランジ12の当初位置を設定する。即ち、ティーチングペンダント4の操作部4aを操作し、図3の垂直上向きの状態から下アーム8、第1の上アーム9を回転させてロボットアーム6が例えば図13に示すようにショルダ7の前側(X1軸のプラス側)に倒れた前屈姿勢にする。なお、ロボットアーム6をショルダ7の後側に倒れた図14の後屈姿勢にしても良い。そして、ショルダ7を適宜(任意)の位置に回転させる。
【0049】
また、第5回転関節J5の回転軸14の回転中心線である第5軸Lc−5を第2,3の回転関節J2,J3の回転軸14の回転中心線である第2軸Lc−2、第3軸Lc−3と平行の状態、つまり水平の状態にし、且つ、第6回転関節J6の回転軸14の回転中心線である第6軸Lc−6を第1回転関節J1の回転中心線である第1軸Lc−1と平行、つまり鉛直の例えば下向きの状態にする。そして、フランジ12を適宜の回転位置に回転させる。なお、第6軸Lc−6は第1軸Lc−1と平行の鉛直上向きの状態にしても良い。
【0050】
このようにティーチングペンダント4の操作によりショルダ7を適宜の回転位置に回転させると共に、フランジ12を適宜の回転位置に回転させたとき、それらの回転位置をショルダ7の当初回転位置およびフランジ12の当初回転位置と定める。このときのフランジ12の当初回転位置は、手先の位置にかかわらず、発光ダイオード25が3次元計測器23によって撮影され易い位置、つまり第6軸Lc−6よりも3次元計測器23側に位置するような回転位置とすることが好ましい。
【0051】
以上のようにしてショルダ7とフランジ12の当初回転位置を定めた後、第5軸Lc−5が第2軸LC−2および第3軸Lc−3と平行で、且つ第6軸Lc−6が第1軸Lc−1と平行の状態を保持したままで第1軸Lc−1を中心にしてショルダ7を互いに異なる任意の複数の回転位置C1,C2…Cnに回転させる(図10(b)参照)。そして、各回転位置において、フランジ12を、当該フランジ12の当初回転位置から、ショルダ7が当初回転位置から現回転位置まで回転したとしたときのショルダ7の回転方向と逆の方向に、ショルダ7の当初回転位置から現回転位置までの回転角度だけ回転させる。
【0052】
例えば、ロボット座標R0のZ0軸のプラス側、つまり上方からロボットアーム6を見たとき、ショルダ7が当初回転位置から時計回り方向に30°回転した位置まで回転したとすると、フランジ12を当初回転位置から反時計回り方向に30°だけ回転した状態にするのである。このようにショルダ7の各回転位置において、フランジ12をショルダ7の回転方向と逆方向に同じ角度だけ回転させることにより、発光ダイオード25は、図10(b)に示すように、ロボット座標R0を第6軸Lc−6上に平行移動させてZ0軸のプラス側から見たとき、常に当初位置と同じ位置に存在することとなる。
【0053】
そして、ショルダ7の各回転位置において、フランジ12をショルダ7の回転方向と逆方向に同じ角度だけ回転させた状態で、基準座標設定用測定点としての発光ダイオード25の位置を3次元計測器23により計測する。この発光ダイオード25の互いに異なる3点以上の計測位置d1,d2,…dnは、図10に示すように、第1軸Lc−1(Z0軸)と平行の鉛直軸を中心とした円形の回転軌跡E上に存するようになる。測定制御装置26は、3次元計測器23によって計測された発光ダイオード25の回転軌跡E上の複数位置d1,d2,…dnから、最小二乗法により発光ダイオード25の回転中心の位置Obを求めると共に、発光ダイオード25の複数位置d1,d2,…dnを含む一平面の法線Lvを求める。そして、回転中心の位置Obを基準座標Rbの原点、この原点Obを通って法線Lvと平行(同じ向き)な直線、つまり前述の第1軸Lc−1と平行の鉛直軸を基準座標RbのZb軸(Z軸)と定める。
【0054】
また、原点Obを通ってZb軸に直交する任意の直線、例えば、ショルダ7を原点位置に回転させたときの発光ダイオード25の位置P0と原点Obとを結んだ直線を基準座標RbのXb軸(X軸)に定め、Zb軸とXb軸のベクトルの外積から両軸に直交する直線を求めて当該直線を基準座標RbのYb軸(Y軸)とする。なお、基準座標Rbの一目盛の長さはカメラ座標Rc、従ってロボット座標R0の一目盛の長さと同じに定められている。
【0055】
以上により、カメラ座標Rc上に基準座標Rbが設定される。このようにして設定した基準座標Rbにおいて、Zb軸は第1軸Lc−1従ってロボット座標R0のZ0軸と平行で、且つ、XbYb平面はX0Y0平面と平行である。なお、基準座標Rbの設定時において、発光ダイオード25の位置がX0Y0平面上にあれば、XbYb平面はX0Y0平面と一致する。
【0056】
Zb軸はZ0軸から所定方向に所定距離だけ離れたところにある。つまり、Z0軸とZb軸の位置関係は、フランジ12が当初回転位置にあるときの第6軸LC−6と発光ダイオード25の位置関係と同じであって、Z0軸からZb軸に向かう方向はフランジ12が当初回転位置にあるときの第6軸Lc−6から発光ダイオード25に向かう方向と同じで、Z0軸からZb軸までの距離は第6軸Lc−6から発光ダイオード25までの距離と同じである。
【0057】
そして、軸間オフセットがないとすれば、Xb軸、Yb軸はロボット座標R0のX0軸、Y0軸と平行になる。しかし、軸間オフセットがある場合には、基準座標Rbの設定時に、ショルダ7を原点位置(0°)に回転させたときの発光ダイオード25の位置P0が軸間オフセット分だけX0Y0方向にずれるので、Xb軸、Yb軸はX0軸、Y0軸とは平行ではなく、図16に示すように軸間オフセットに応じて傾くようになる。
【0058】
基準座標Rbを設定した後、図12に示すように、第1軸Lc−1から延ばした当該第1軸Lc−1を含む任意の一平面A1を想定する。この場合、任意の一平面A1は、X0軸とのなす角度βで指定するものとし、手先を例えばX0軸とのなす角度プラス30°の一平面上に位置させるには、ショルダ7を原点からプラス30°回転させれば良い(軸間オフセットなしの場合)。
【0059】
本実施形態では、図12に示すように、第1軸Lc−1と同軸であるロボット座標R0のZ0軸から一方向に延ばした当該Z0軸を含む一平面A1と、その反対方向に向けて延ばした一平面A2を想定する。この一方の平面A1と、他方の平面A2とは面一の一つの平面Aとなる。この実施形態では、このような平面Aを複数設定するものとし(図12では1つのみ図示)、そのうちの一つの平面はX0軸(β=0°)を含むものとする。
【0060】
想定した一方向に延びる一平面A1上と、その反対方向に延びる一平面A2上には、それぞれ任意の複数位置を移動目標位置として選択する。選択した移動目標位置を図12に白抜きの丸印で示した。このとき、移動目標位置はロボット座標R0の座標値で指定する。これら移動目標位置には、軸間オフセットを求めるために、後述のようにしてロボットアーム6の手先を移動させる。
【0061】
ここで、平面A1,A2上に選択された複数の移動目標位置はロボット座標R0の座標値で指定する。そして、第5軸Lc−5が第2軸LC−2および第3軸Lc−3と平行で、且つ第6軸Lc−6が第1軸Lc−1と平行の状態を保持した姿勢(フランジ12の目標位置到達姿勢)で手先が移動目標位置に移動したとき、各移動目標位置において、フランジ12を、当該フランジ12の当初回転位置から、ショルダ7が当初回転位置から現移動目標位置まで回転したとしたときのショルダ7の回転方向と逆の方向に、ショルダ7の当初回転位置から現移動目標回転位置までの回転角度だけ回転させる(当初位置保持動作)こととする。
【0062】
すると、そのときの発光ダイオード25と手先(フランジ12の先端面の中心P)の位置関係は、X0(Xb),Y0(Yb)方向に関しては、基準座標Rbとロボット座標R0の位置関係と同じとなる。つまり、Z0軸のプラス側から見たとき、手先の位置を、ロボット座標R0の原点O0から基準座標Rbの原点Obに向かう方向に、原点O0から原点Obまでの距離だけ移動させると、発光ダイオード25の位置になるという関係にある。
【0063】
従って、手先の移動目標位置を示すロボット座標R0でのX0,Y0座標値と、手先が移動目標位置に移動したとき、フランジ12が目標位置到達姿勢にあって当初保持動作した状態での発光ダイオード25の位置を示す基準座標RbのXb,Yb座標値とは、同じ値となる(軸間オフセットなしの場合)。このときの発光ダイオード25の基準座標Rb上でのXbYb座標上の位置を、発光ダイオード25の移動目標位置とする。そして、手先が移動目標位置に移動したとき、軸間オフセットがある場合、手先の実際の移動位置は移動目標位置から軸間オフセット量だけX0Y0方向にずれ、この結果、発光ダイオード25の位置も移動目標位置に応じてXbYb方向にずれるので、この発光ダイオード25のずれ量から軸間オフセット量を求めることができるものである。
【0064】
さて、各平面A1,A2上に選択した移動目標位置にロボットアーム6の手先を移動させるに先立ち、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による手先の移動位置誤差を排除する処理を行う。
【0065】
まず、回転駆動系の撓みとは、サーボモータ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には、大きなトルクは作用せず、絶対位置誤差を生じさせるような撓みは生じない。)。
【0066】
回転駆動系に作用するトルクは、図11に示すように、回転軸14が支えるリンクLの質量Wと、回転軸14からリンクLの中心までの距離Dとの積で求めることができる。そして、前記平面A上に選択した任意の複数位置にロボットアーム6の手先を移動させる場合、ショルダ7を平面AがX0軸となす角度位置に回転させ、第5軸Lc−5を第2,3軸Lc−2,Lc−3と平行に保持し、そして、下アーム8と第1の上アーム9と手首アーム11のうちの少なくとも2つ、本実施形態では全てを回転させて手先を各移動目標位置に移動させ、各移動目標位置においてフランジ12が目標位置到達姿勢で且つ当初位置保持動作させる。このとき、移動目標位置によってロボットアーム6は前屈姿勢或いは後屈姿勢を取る。
【0067】
そして、各移動目標位置へ移動したときの第2の上アーム10、下アーム8、第1の上アーム9、手首アーム11、フランジ12の回転角度をティーチングペンダント4から読み取る。それらの回転角度から第2軸Lc−2、第3軸Lc−3、第5軸Lc−5に作用するトルクを計算し、それらの回転駆動系の撓み(角度)αを求め(以上、図9のステップS2)、求めた回転駆動系の撓みαだけサーボモータ15の回転角を加減して撓みが生じない場合と同等になるようにする。つまり、図11において、実線で示すリンクの位置が回転駆動系の撓みなしとした場合の移動目標位置で、破線で示す位置が回転駆動系の撓みありの場合の実際の移動位置とすると、サーボモータ15の回転角度を撓みα分だけ少なくする。これにより、回転駆動系が撓みを生じた状態で、リンクが実線の移動目標位置に到達するようになる。
【0068】
モータ原点位置誤差は、例えば前記特許文献1〜4に開示された方法によって検出する。また、ねじれ角誤差、リンク長誤差は、例えば前記非特許文献1に開示された方向によって検出する。この非特許文献1の方法は、第1軸Lc−1〜第6軸Lc−6の各軸を中心にロボットアーム6を回転させたときの手先の回転軌跡を3次元計測器により計測し、回転中心の位置と、回転軌跡を含む一平面の法線を演算する。回転中心の位置から各リンクの長さが求められ、法線の方向から各軸の方向が求められるので、それらリンクの長さと軸方向とからリンク長誤差とねじれ角誤差を求めることができる、というものである(以上、図9のステップS3)。
そして、求めたモータ原点位置誤差、リンク長誤差およびねじれ角誤差によりDHパラメータを修正し、それらの誤差が絶対位置誤差となって現れないようにしておく(図9のステップS4)。
【0069】
以上のような処理を行った後、ティーチングペンダントを操作し、各平面Aの移動目標位置へ手先を移動させる。各平面Aへ手先を移動させるには、まず、平面A1がX0軸となす角度βだけショルダ7を原点位置から回転させて座標R1のX1軸を平面A上に位置させる。これにより、ショルダ7を固定したままで、第2回転関節J1、第3回転関節J3および第5回転関節J5の回転軸14を回転させることにより、フランジ12が目標位置到達姿勢をとった状態で、手先を平面A1およびA2上の移動目標位置に移動させ得るようになる。
【0070】
次いで、フランジ12を当初位置保持動作させ、フランジ12を目標位置到達姿勢のままで、下アーム8、第1の上アーム9、手首アーム11を回転させることにより、平面A1,A2上に任意に選択された複数の移動目標位置に手先を移動させる。このとき、ロボットアーム6は回転駆動系に作用するトルクを求めたときと同じ姿勢を取るものとし、先に移動目標位置毎に求めた回転駆動系の撓みに応じてサーボモータ15の回転角度を加減するものである。
【0071】
平面A1,A2上に任意に選択された複数の移動目標位置に手先を移動させる場合、ロボットアーム6は、図13に示すように、第2,3,5の回転関節J2,J3,J5の回転軸14を一方向に回転させることにより、ショルダ7から一方側に倒れて前屈した姿勢(前屈姿勢)にして一方の平面A1上の移動目標位置に手先を移動させ得るようにする。
【0072】
他方の平面A2上の移動目標位置に手先を移動させる場合には、ロボットアーム6は、第2,3,5の回転関節J2,J3,J5の回転軸14を他方向に回転させることにより、図14に示すように、反転してショルダ7から他方側に倒れて後屈した姿勢(ロボットアーム6がショルダ7の後側に倒れた後屈姿勢)で手先を他方の平面A2上の移動目標位置へ移動させる。そして、各移動目標位置に置いて、発光ダイオード(オフセット計測用測定点)25の位置を3次元計測器23により計測する(以上、図9のステップS5)。
【0073】
なお、フランジ12を当初位置保持動作させる時期は、X1軸を平面A1上に位置させた後、手先を移動目標位置へ移動させる前に限らず、手先を各移動目標位置に移動させた時であっても良いが、各移動目標位置への移動はショルダ7を固定したままで行うので、最初の移動目標位置に移動させたときに当初位置保持動作させれば、その後に移動させた移動目標位置では当初位置保持動作は行わせなくとも良くなる。
3次元計測器23により計測した位置はカメラ座標Rcの位置であるから、これを基準座標Rbの位置に変換する。この変換は図15に示す同時変換行列により行う(図9のステップS6)。
【0074】
図16はZ0軸のプラス側から見た手先の移動目標位置(ロボット座標R0の座標値で示される。)、発光ダイオード25の移動目標位置(基準座標Rbの座標値で示される。)、手先が移動目標位置に移動したときの実際の手先の位置、手先が移動目標位置に移動したときの発光ダイオード25の位置(カメラ座標Rcの座標値から基準座標Rbの座標値に変換される。)を示す。図16では、説明の簡単化のために、平面A1,A2はX0軸上にあり、手先の移動目標位置はX0軸上の位置が選択されたものとする。図16において、二重の丸印が手先の移動目標位置、白抜きの丸印が手先の実際の移動位置、黒丸印が発光ダイオード25の移動目標位置、×印が発光ダイオード25の実際の移動位置を示している。
【0075】
手先を移動目標位置に移動させる場合、回転駆動系の撓み、モータ原点誤差、リンク長誤差、ねじれ角誤差によっては移動位置に誤差が生じないように前処理したのであるから、発光ダイオード25の移動目標位置と実際の移動位置との間の誤差(手先の移動目標位置と実際の移動位置との間の誤差と同じ)は、軸間オフセットによって生じたものと考えられる。そして、この軸間オフセットによって生ずる誤差は、移動目標位置がX0軸上にあるから、実際の移動位置は移動目標位置から軸間オフセットだけずれたX0軸と平行の一直線上に並ぶ(一直線上に正確に並ばないまでも、一直線に沿って分布する)こととなる。
【0076】
軸間オフセット量は、手先の移動目標位置と実際の移動位置とのX0Y0方向の距離であり、これは軸間オフセットなし(Xb軸がX0軸と平行)としたときの発光ダイオード25の移動目標位置と実際の移動位置とのXbYb方向の距離と同じである。このため、発光ダイオード25についての複数の実際の移動位置を結んだ線分をXbYb平面上に作成してその線分を計測依存線分Bとし、この計測依存線分Bを延長した直線Bbと基準座標Rbの原点Obとの最短距離(ObからBbに下ろした垂線の長さ)を求めると、この最短距離が軸間オフセット量Fとなる(図9のステップS7)。
【0077】
この場合、ロボットアーム6を前屈させて延長線A1上の移動目標位置に移動させたときの実際の移動位置を結ぶ計測依存線分Bと、ロボットアーム6を後屈させて延長線A2上の移動目標位置に移動させた場合の実際の移動位置を結ぶ計測依存線分Bとが一本の直線にならなかった(一本の直線近辺に並ばなかったことも含む)場合、今までの過程のどこかに不都合があったと考えられるので、この場合には、最初のステップS1からやり直すようにする。このように、2本の延長線A1,A2上に移動目標位置を定めることで、実施に際した不具合を検知することができるようになる。
なお、軸間オフセットはXbYb方向に現れ、Zb方向の位置には無関係であるから、手先の移動目標位置がX0軸上のない場合には、Xb座標値とYb座標値のみから発光ダイオード25の移動位置をXbTb平面上にプロットすれば良い。
【0078】
さて、Xb軸を含む平面A1,A2以外の他の同様の平面に定めた移動目標位置ついても、上記したと同様にして軸間オフセット量Fを求める。この場合も、発光ダイオード23の実際の移動位置は一直線上に並ぶ筈であるから、発光ダイオード25の実際の移動位置(Xb座標値、Yb座標値)を結んでできる計測依存直線Bについても同様に原点Obとの最短距離を計測する。これら各計測依存直線Bと原点Obとの間の最短距離は、どの計測依存直線Bについても同一となる筈であるが、実際には測定誤差などの原因で必ずしも同一とはならないことが多い。このような場合には、計測依存直線Bと原点Obとの最短距離の平均を求めて軸間オフセットを出す。これにより、軸間オフセットをより正確に求めることができるようになる。
【0079】
以上のようにして求めた軸間オフセットは、第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欄には配分しない。
【0080】
J2,J3のd欄のいずれか、または、J2,J3のd欄に分けて軸間オフセットの値を追加することによって絶対位置精度が改善されたか否かを確認するために、軸間オフセットを追加したDHパラメータを用いてXb軸上に複数の目標位置を定め、上述したと同様にして手先を目標位置に移動させ、実際の移動位置を測定する実験を行った。
【0081】
この結果、XbYb平面上での位置誤差が0.67mmから0.17mmに減少した。Zb軸方向の位置誤差も0.9mmから0.06mmに減少した。このことから、XbYbZbの3次元方向について、位置誤差が1.12mmから0.18mmに減少したということができる。
【0082】
このように本実施形態によれば、軸間オフセットを量的に把握でき、この軸間オフセットによりDHパラメータを修正して軸間オフセットによる誤差がない、或いは誤差ができるだけ生じないようにすることができ、絶対位置精度を高めることができる。
【0083】
(第2の実施形態)
図17および図18は本発明の第2の実施形態を示す。この実施形態は、基準座標Rbは第1の実施形態と同様にして求めるが、軸間オフセット量の求め方を異ならせたものである。
本実施形態は、手先の可動範囲内において、任意の複数位置を手先の移動目標位置に設定して当該複数の移動目標位置に手先を移動させたとき、発光ダイオード25の移動目標位置と実際の移動位置との差を基に軸間オフセットを求めるようにしたものである。
【0084】
即ち、まず、ロボット座標R0上で任意の複数位置を移動目標位置として選択する。図17に移動目標位置として選択した複数位置を二重の丸印で示した。なお、図17は水平方向(X0Y0方向、XbYb方向)の位置のみを示している。これらのうち、X0座標値がプラス側(Y0軸の右側)の移動目標位置への手先の移動は、ロボットアーム6の前屈姿勢で行い、マイナス側(Y0軸の左側)の移動目標位置への手先の移動は、ロボットアーム6の後屈姿勢で行うものとする。
そして、第1の実施形態と同様に、選択した複数の移動目標位置に手先を移動させるに先立ち、軸間オフセット以外の各誤差(回転駆動系の撓み、サーボモータ15の原点位置誤差、ねじれ角誤差、リンク長誤差)による手先の移動位置誤差を排除する処理を行う。
【0085】
この後、手先を、目標位置到達姿勢で、選択された複数の移動目標位置に移動させる。このときの移動は、第1の回転関節J1と、第2,3,5の回転関節J2,J3,J5のうち少なくとも2つの回転関節、本実施形態では第2,3,5の回転関節J2,J3,J5の3つの回転関節の回転軸14を回転させることによって行う。第5軸Lc−5を水平に保持するために、第4の回転関節J4の回転軸14は回転させない。そして、各移動目標位置において、フランジ12を当初位置保持動作させた状態にして発光ダイオード25の位置を3次元計測器23により計測する。
この3次元計測器23により計測した位置はカメラ座標Rcの位置であるから、これを基準座標Rbの位置に変換する。各移動目標位置での発光ダイオード25の計測位置を図17に×印で示した。
【0086】
発光ダイオード25の移動目標位置と実際の移動位置とから軸間オフセットを求めるには、発光ダイオード25の移動目標位置の基準座標Rb上でのXb座標値およびYb座標値を求める必要がある。第1の実施形態でも述べたように、軸間オフセットなしとした場合、基準座標RbのXb軸およびYb軸がX0軸およびY0軸と平行であるから、手先の移動目標位置を示すX0座標値とY0座標値は、発光ダイオード25の移動目標位置をロボット座標Rbで示したときのXb座標値とYb座標値と同じとなる。
【0087】
求めた発光ダイオード25の移動目標位置の基準座標Rb上でのXb座標値およびYb座標値で示される位置を図17に黒丸で示すようにプロットし、原点Obから移動目標位置までの線分の長さを目標位置半径D0とし、発光ダイオード25の計測位置から原点Obと移動目標位置とを通る直線に下ろした垂線の長さをオフセット誤差成分M0とする。
【0088】
そして、図18に示すように、横軸に目標位置半径D0を取り、縦軸にオフセット誤差成分M0を取ったグラフを作成して、このグラフに各移動目標位置について目標位置半径D0とオフセット誤差成分M0との関係をプロットしこれらプロットされた点を通る直線を誤差直線Gとする。この誤差直線Gにグラフの原点から垂線を下ろすと、この垂線の長さが第2,3,5の回転関節の合計の軸間オフセット量Fとなる。
【0089】
(その他の実施形態)
本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような変更或いは拡張が可能である。
ベース5の据え付け面は必ずしも水平でなくとも良い。
測定点は発光ダイオード25に限られない。単なるマーク、好ましくは点状のマークであっても良い。
基準座標RbのXb軸は必ずしもX0軸と平行とする必要はない。原点Obを通る任意の直線に定めれば良い。この場合、任意の直線(Xb軸)とX0軸とのなす角度がXb軸を定めたときのX1軸とX0軸とのなす角度と発光ダイオード25の当初位置とから求められるので、Xb軸とX0軸とのなす角度を基に基準座標Rbとロボット座標R0との関係を求めて座標変換することによって基準座標Rb上の位置とロボット座標R0上の位置とを互いに変換することができるようにすれば良い。
【0090】
第1の実施形態において、平面A1(Zb軸から一方向に延びる平面)から平面A2(Zb軸から反対方向に延びる平面)の移動目標位置へ手先を移動させる場合、移動目標位置の選択位置によっては、第2,3,5の各回転関節J2、J3,J5のうち2つの回転関節の回転軸14を回転させれば、ロボットアーム6を反転させて手先を移動目標位置に移動させることができる。
第2の実施形態において、手先を任意に選択された複数の移動目標位置に移動させる場合、第2,3,5回転関節J2、J3,J5の全て、またはいずれか2つの回転関節の回転軸14を回転させても良いが、移動目標位置の選択位置によっては、第1回転関節J1の他、第2,3,5の各回転関節J2、J3,J5のうち2つの回転関節の回転軸14を回転させれば手先を移動目標位置に移動させることができる。即ち、少なくとも2つの回転関節の回転軸を回転させれば良い。
【符号の説明】
【0091】
図面中、3は制御装置、5はベース(ベースリンク)、6はロボットアーム、7はショルダ(第1リンク)、8は下アーム(第2リンク)、9は第1の上アーム(第3リンク)、10は第2の上アーム(第4リンク)、11は手首アーム(第5リンク)、12はフランジ(第6リンク)、23は3次元計測器(3次元計測手段)、25は発光ダイオード(測定点)を示す。
【特許請求の範囲】
【請求項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リンクの回転中心線から離れた位置に当該第6リンクと一体に動作する測定点を設けると共に、前記測定点の3次元位置を測定可能な3次元測定手段を設け、
前記第1リンクの適宜の回転位置を当該第1リンクの当初回転位置と定めると共に、前記第1リンクの当初回転位置における前記第6リンクの適宜の回転位置を当該第6リンクの当初回転位置と定め、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行で、且つ前記第6回転関節の回転軸の回転中心線が前記第1回転関節の回転軸の回転中心線と平行の状態を保持しながら、前記第1リンクを互いに異なる3以上の任意の回転位置に回転させ、当該第1リンクの各回転位置において、前記第6リンクを、当該第6リンクの当初回転位置から、前記第1リンクが当該第1リンクの当初回転位置から現回転位置まで回転したとしたときの前記第1リンクの回転方向と逆の回転方向に、前記第1リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を前記3次元計測手段により計測し、
前記第1リンクの前記各回転位置で計測した前記測定点の3以上の複数位置から、これら3以上の複数位置を通る円の中心位置と、これら測定点の3以上の複数位置が含まれる平面の法線とを求め、求めた円の中心を原点、当該原点を通る前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定め、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第2,3,5の回転関節のうち、少なくとも2つの回転関節の回転軸を回転させることにより、前記第6回転関節の回転軸の回転中心線が前記第1回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、前記手先を前記移動目標位置のそれぞれに移動させることとしたとき、
前記第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して前記第1〜第6の各リンクを駆動するモータの原点位置誤差、前記第1〜第6の各回転駆動系の撓み、前記第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記手先の位置誤差が生じないように補正処理を行った上で、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第2,3,5の回転関節のうち、少なくとも2つの回転関節の回転軸を回転させることにより、前記目標位置到達姿勢を保持した状態で前記手先を前記複数の移動目標位置に移動させ、
各移動目標位置において、前記第6リンクを当該第6リンクの前記当初回転位置から、前記第1リンクが当該第1リンクの前記当初回転位置から現回転位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、前記第1リンクの前記当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を前記3次元計測手段により計測してこれをオフセット算出用測定点位置とし、
前記各オフセット算出用測定点位置を前記基準座標上の位置に座標変換して各オフセット算出用測定点位置の前記基準座標上のXY座標値を求め、
求めた前記オフセット算出用測定点位置のXY座標値を前記基準座標のXY平面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に前記基準座標の原点から下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項2】
請求項1記載のロボットの軸間オフセットの検出方法において、
前記第1回転関節の回転軸の回転中心線から延ばした一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに前記手先を移動させる動作は、前記第1回転関節の回転軸の回転中心線から互いに反対方向に向けて延ばした2つの平面について行い、一方の平面上から他方の平面上への移行は、前記第1リンクを固定した状態で前記第2,3,5の回転関節のうち少なくとも2つの回転関節の回転軸を回転させることにより前記ロボットアームを反転させて行うことを特徴とするロボットの軸間オフセットの検出方法。
【請求項3】
請求項1または請求項2における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、
前記任意の複数位置を前記手先の移動目標位置に定め、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第2,3,5の回転関節のうち、少なくとも2つの回転関節の回転軸を回転させることにより、前記第6回転関節の回転軸の回転中心線が前記第1回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、前記手先を前記移動目標位置のそれぞれに移動させることとしたとき、
前記第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して前記第1〜第6の各リンクを駆動するモータの原点位置誤差、前記第1〜第6の各回転駆動系の撓み、前記第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差による手先の位置誤差が生じないように補正処理を行った上で、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第1の回転関節と前記第2,3,5の回転関節のうちの少なくとも2つの回転関節の回転軸を回転させることにより、前記目標位置到達姿勢を保持した状態で前記手先を前記複数の移動目標位置に移動させ、且つ、各移動目標位置において、前記第6リンクを、当該第6リンクの前記当初回転位置から、前記第1リンクが当該第1リンクの前記当初回転位置から現回転位置まで回転したとしたときの前記第1リンクの回転方向と逆の回転方向に、前記第1リンクの前記当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を3次元計測手段により計測し、
前記各移動目標位置において計測した前記測定点の位置をオフセット算出用測定点位置とし、求めた前記各移動目標位置における前記オフセット算出用測定点位置を前記基準座標上の位置に座標変換して、複数のオフセット算出用測定点位置の前記基準座標上のXY座標値を求め、且つ前記各移動目標位置のXY座標値を前記基準座標上のXY座標値に座標変換して前記基準座標上の移動目標位置とし、
前記各移動目標位置について、前記基準座標のXY平面上に前記移動目標位置のXY座標値と前記オフセット算出用測定点位置のXY座標値とをプロットし、前記基準座標の原点から前記XY平面上の前記移動目標位置までの線分の長さを目標位置半径とすると共に、前記XY平面上の前記オフセット算出用測定点位置から前記基準座標の原点と前記XY平面上の前記移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、
前記各移動目標位置について、前記目標位置半径と前記オフセット誤差成分との関係を、直交2軸のうち一方の軸に前記移動目標位置半径をとり他方の軸に前記オフセット誤差成分をとったグラフにプロットしこれらプロットされた点を結ぶ直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項4】
請求項3記載のロボットの軸間オフセットの検出方法において、
前記ロボットアームの可動範囲内の任意の複数位置を移動目標位置に定め、これら複数の移動目標位置に前記手先を移動させる動作は、
前記第1回転関節の回転軸を固定した状態で前記第2,3,5の回転関節のうち少なくとも第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リンクの回転中心線から離れた位置に当該第6リンクと一体に動作する測定点を設けると共に、前記測定点の3次元位置を測定可能な3次元測定手段を設け、
前記第1リンクの適宜の回転位置を当該第1リンクの当初回転位置と定めると共に、前記第1リンクの当初回転位置における前記第6リンクの適宜の回転位置を当該第6リンクの当初回転位置と定め、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行で、且つ前記第6回転関節の回転軸の回転中心線が前記第1回転関節の回転軸の回転中心線と平行の状態を保持しながら、前記第1リンクを互いに異なる3以上の任意の回転位置に回転させ、当該第1リンクの各回転位置において、前記第6リンクを、当該第6リンクの当初回転位置から、前記第1リンクが当該第1リンクの当初回転位置から現回転位置まで回転したとしたときの前記第1リンクの回転方向と逆の回転方向に、前記第1リンクの当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を前記3次元計測手段により計測し、
前記第1リンクの前記各回転位置で計測した前記測定点の3以上の複数位置から、これら3以上の複数位置を通る円の中心位置と、これら測定点の3以上の複数位置が含まれる平面の法線とを求め、求めた円の中心を原点、当該原点を通る前記法線と平行の直線をZ軸、前記原点を通って前記Z軸に直交する任意の直線をX軸、前記原点を通って前記ZおよびXの両軸に直交する直線をY軸とする基準座標を定め、
前記第1回転関節の回転軸の回転中心線から延ばした当該第1回転関節の回転軸の回転中心線を含む任意の一平面上の任意の複数位置を移動目標位置に定め、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第2,3,5の回転関節のうち、少なくとも2つの回転関節の回転軸を回転させることにより、前記第6回転関節の回転軸の回転中心線が前記第1回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、前記手先を前記移動目標位置のそれぞれに移動させることとしたとき、
前記第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して前記第1〜第6の各リンクを駆動するモータの原点位置誤差、前記第1〜第6の各回転駆動系の撓み、前記第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差によって前記手先の位置誤差が生じないように補正処理を行った上で、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第2,3,5の回転関節のうち、少なくとも2つの回転関節の回転軸を回転させることにより、前記目標位置到達姿勢を保持した状態で前記手先を前記複数の移動目標位置に移動させ、
各移動目標位置において、前記第6リンクを当該第6リンクの前記当初回転位置から、前記第1リンクが当該第1リンクの前記当初回転位置から現回転位置まで回転したとしたときの第1リンクの回転方向と逆の回転方向に、前記第1リンクの前記当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を前記3次元計測手段により計測してこれをオフセット算出用測定点位置とし、
前記各オフセット算出用測定点位置を前記基準座標上の位置に座標変換して各オフセット算出用測定点位置の前記基準座標上のXY座標値を求め、
求めた前記オフセット算出用測定点位置のXY座標値を前記基準座標のXY平面にプロットしてこれらプロットした点を結んだ線分を計測依存線分とし、この計測依存線分を延長した直線に前記基準座標の原点から下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項2】
請求項1記載のロボットの軸間オフセットの検出方法において、
前記第1回転関節の回転軸の回転中心線から延ばした一平面上の任意の複数位置を移動目標位置に定め、これら一平面上の移動目標位置のそれぞれに前記手先を移動させる動作は、前記第1回転関節の回転軸の回転中心線から互いに反対方向に向けて延ばした2つの平面について行い、一方の平面上から他方の平面上への移行は、前記第1リンクを固定した状態で前記第2,3,5の回転関節のうち少なくとも2つの回転関節の回転軸を回転させることにより前記ロボットアームを反転させて行うことを特徴とするロボットの軸間オフセットの検出方法。
【請求項3】
請求項1または請求項2における、基準座標を定めた後、軸間オフセット量を求めるまでの動作に代えて、
前記任意の複数位置を前記手先の移動目標位置に定め、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第2,3,5の回転関節のうち、少なくとも2つの回転関節の回転軸を回転させることにより、前記第6回転関節の回転軸の回転中心線が前記第1回転関節の回転軸の回転中心線と平行の目標位置到達姿勢を保持した状態で、前記手先を前記移動目標位置のそれぞれに移動させることとしたとき、
前記第1〜第6の各回転関節の回転軸を含む第1〜第6の各回転駆動系を介して前記第1〜第6の各リンクを駆動するモータの原点位置誤差、前記第1〜第6の各回転駆動系の撓み、前記第1〜第6の各リンクの長さ誤差、および回転関節と次の回転関節の回転軸間の角度の誤差による手先の位置誤差が生じないように補正処理を行った上で、
前記第5回転関節の回転軸の回転中心線が前記第2,3の両回転関節の回転軸の回転中心線と平行の状態で、前記第1の回転関節と前記第2,3,5の回転関節のうちの少なくとも2つの回転関節の回転軸を回転させることにより、前記目標位置到達姿勢を保持した状態で前記手先を前記複数の移動目標位置に移動させ、且つ、各移動目標位置において、前記第6リンクを、当該第6リンクの前記当初回転位置から、前記第1リンクが当該第1リンクの前記当初回転位置から現回転位置まで回転したとしたときの前記第1リンクの回転方向と逆の回転方向に、前記第1リンクの前記当初回転位置から現回転位置までの回転角度だけ、回転させた状態で、前記測定点の位置を3次元計測手段により計測し、
前記各移動目標位置において計測した前記測定点の位置をオフセット算出用測定点位置とし、求めた前記各移動目標位置における前記オフセット算出用測定点位置を前記基準座標上の位置に座標変換して、複数のオフセット算出用測定点位置の前記基準座標上のXY座標値を求め、且つ前記各移動目標位置のXY座標値を前記基準座標上のXY座標値に座標変換して前記基準座標上の移動目標位置とし、
前記各移動目標位置について、前記基準座標のXY平面上に前記移動目標位置のXY座標値と前記オフセット算出用測定点位置のXY座標値とをプロットし、前記基準座標の原点から前記XY平面上の前記移動目標位置までの線分の長さを目標位置半径とすると共に、前記XY平面上の前記オフセット算出用測定点位置から前記基準座標の原点と前記XY平面上の前記移動目標位置を通る直線に下ろした垂線の長さをオフセット誤差成分とし、
前記各移動目標位置について、前記目標位置半径と前記オフセット誤差成分との関係を、直交2軸のうち一方の軸に前記移動目標位置半径をとり他方の軸に前記オフセット誤差成分をとったグラフにプロットしこれらプロットされた点を結ぶ直線を誤差直線としたとき、当該グラフの原点から誤差直線に下ろした垂線の長さをずれ量として求め、
前記求めたずれ量を前記第2,3,5の回転関節の合計の軸間オフセット量とすることを特徴とするロボットの軸間オフセットの検出方法。
【請求項4】
請求項3記載のロボットの軸間オフセットの検出方法において、
前記ロボットアームの可動範囲内の任意の複数位置を移動目標位置に定め、これら複数の移動目標位置に前記手先を移動させる動作は、
前記第1回転関節の回転軸を固定した状態で前記第2,3,5の回転関節のうち少なくとも第2,3の回転関節の回転軸を一方向および他方向に回転させることにより、前記ロボットアームが前記第1リンクから一方側に倒れた姿勢となる前屈姿勢と、他方側に倒れた姿勢となる後屈姿勢の両方で行うことを特徴とするロボットの軸間オフセットの検出方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2013−10149(P2013−10149A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−142825(P2011−142825)
【出願日】平成23年6月28日(2011.6.28)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願日】平成23年6月28日(2011.6.28)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]