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