ロボットキャリブレーション装置及びキャリブレーション方法
【課題】 ロボットキャリブレーションにおける精度を維持しつつ作業負荷を低減することを目的とする。
【解決手段】 ロボットの先端に弾性変形領域を持つプローブを取り付け、キャリブレーション用の定盤平面に垂直になる位置を教示することで、ロボットと定盤の位置関係をラフに教示し、さらにプローブ先端位置一定動作を生成し、位置検出動作指令を生成し、位置検出動作を実行し、プローブ先端位置一定動作時の精度(誤差)を計算し、測定したプローブ先端位置一定動作時の精度(誤差)と幾何学的パラメータ誤差からキャリブレーションを自動実行する。
【解決手段】 ロボットの先端に弾性変形領域を持つプローブを取り付け、キャリブレーション用の定盤平面に垂直になる位置を教示することで、ロボットと定盤の位置関係をラフに教示し、さらにプローブ先端位置一定動作を生成し、位置検出動作指令を生成し、位置検出動作を実行し、プローブ先端位置一定動作時の精度(誤差)を計算し、測定したプローブ先端位置一定動作時の精度(誤差)と幾何学的パラメータ誤差からキャリブレーションを自動実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボットのキャリブレーション装置及び方法に関する。
【背景技術】
【0002】
産業用ロボットの制御において、ロボットコントローラにはロボットに関する幾何学的パラメータ(ロボット原点位置における各関節の角度、関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータ)が予め記録されており、ロボットの手先位置や姿勢の制御に用いられている。しかしながら、こうした幾何学的パラメータはロボットを構成する部品の加工誤差や部品組付誤差のために実際のロボットの数値と完全には一致せず、ロボットコントローラ内部で計算するロボットの位置姿勢と、実際のロボットの位置姿勢間に誤差が発生するという一般的な技術課題がある。
【0003】
この一般的な技術課題を解決するために、ロボットコントローラ内部で計算するロボットの位置姿勢と実際の位置姿勢を比較し、ロボットコントローラの持つロボットの幾何学的パラメータを補正することで誤差を修正するロボットキャリブレーションが行われる。
ロボットキャリブレーションの方法として、例えば、ロボットの手先に搭載したキャリブレーション用治具をベース治具に位置合わせし、ベース治具のダイヤルゲージから手先治具の位置姿勢を計測することで原点位置を補正する手段がある(例えば、特許文献1)。
【0004】
また、ロボット手先とロボット設置面の両方に先端が鋭利な治具を固定し、両治具を複数の位置姿勢で位置合わせすることで、ロボットコントローラ内部で計算する治具先端位置の誤差と幾何学的パラメータ誤差の微小変動の関係式を解き、幾何学的パラメータを修正する方法がある(例えば、特許文献2)。
図13は、特許文献2の手法を説明する図である。1は垂直多関節型のロボットであり、2および2’はそれぞれ第一関節と第二関節のアクチュエータと位置検出機である。3は手先に取り付けたエンドエフェクタ、4はキャリブレーションに使用する先端が鋭利な治具である。ロボットを操作して4の治具をロボット接地面に固定したもう一方の治具(図示せず)に目視合わせする処置を繰り返して各姿勢のロボットの位置情報を取得し、ロボットコントローラ内部で計算する治具先端位置の誤差と幾何学的パラメータ誤差の微小変動の関係を示した連立方程式を解いてキャリブレーションするのである。
【0005】
このように、従来のロボットキャリブレーション装置では、ロボットの手先に取り付けた治具をロボット接地面に固定したもう一方の治具と目視合わせすることを繰り返し各姿勢でのロボットの関節角度情報を取得してキャリブレーションする、という手順がとられていた。
【0006】
また、ロボット手先の球状基点の位置を変化させずに姿勢のみ変化させる指令を与え、その際の球状基点の移動量を測定する処理を必要回数繰り返し、得られた測定値と姿勢変更動作の位置から機構パラメータ(幾何学的パラメータの一部)を補正する手段がある(例えば、特許文献3)。
また、2個以上のカメラで測定対象を撮影し、その画像から3次元位置を演算し絶対位置姿勢を求め、更にジャイロセンサと加速度センサで相対位置姿勢を求める方式がある(例えば、特許文献4)。この方式は、測定対象上にマーカやLEDを配置し、その画像を連続的に2台以上のカメラで撮影して専用のコントローラで合成することで連続的な3次元位置を求め、カメラで撮影できない位置では加速度センサ等の相対位置情報を用いる構成である。
また、水平多関節ロボットの較正方法として、三次元的に穴位置が明確になっている複数のボスがある測定台を用い、ロボット先端の挿入ピンユニットをそこに差し込むことで、穴の位置データをロボット先端座標として測定し、測定結果から幾何学的パラメータの誤差を算出する方法がある(例えば、特許文献5)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開昭62−140783号公報
【特許文献2】特許第2520324号公報
【特許文献3】特開平05−329786号公報
【特許文献4】特許第3754402号公報
【特許文献5】特許第2603940号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1の方法は、ロボット原点位置における各関節の角度のキャリブレーションはできるが、その他の幾何学的パラメータ(関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータ)のキャリブレーションは不可能である。また、手先冶具をベース冶具に合わせる操作は手動操作であり作業者の負担を伴う。
また特許文献2の方法は、ロボット毎に作業者が教示ペンダントを用いて複数の位置に複数の姿勢で目視位置合わせする必要があり、作業者への負担が非常に大きい。さらに作業の熟練度によってキャリブレーション精度に影響が出るため、性能保証ができない点も問題である。
【0009】
また特許文献3の方法は、ロボットの位置一点で手先の球状基点の姿勢のみ変化させて球状基点の移動量を測定する手法をとっており、ロボット据付位置に近い軸は移動量が少なくなるためキャリブレーション精度が低くなるという問題がある(高精度なキャリブレーション結果を得るためには、ロボット各軸を広範囲に動作させてキャリブレーションする必要がある)。また、測定する位置を増やした場合、測定器を増やすか、測定器を手動で動かしロボットを測定器まで移動させるという処理が増えるためキャリブレーション操作が面倒になる。さらに、球面の真球度がキャリブレーション精度に影響を与えるため、真球度に関して高い精度が必要であり、加工コストが高くなる。
また特許文献4に記載された、2個以上のカメラで測定対象を撮影した画像と加速度センサやジャイロセンサから3次元位置を演算して求める方式では、カメラで撮影できない時間が長い場合には加速度センサやジャイロセンサの2回積分に頼らなければならず、そのオフセット量が著しく不連続になるという問題がある。また、測定前にロボットと装置間の複雑なキャリブレーションを実施しないと使用できず、画像処理が必要なためリアルタイムにロボットの手先の状態量を表示できない等の問題もある。更に、このようなカメラを複数台使用する測定装置は高価であるという問題もある。
また、特許文献5に記載されたような、三次元的に穴位置が明確になっている複数のボスがある測定台を用い、ロボット先端の挿入ピンユニットをそこに差し込むことで穴の位置データをロボット先端座標として測定し、測定結果から幾何学的パラメータの誤差を算出する方法は、挿入先の複数のボスとロボットの三次元的な位置関係を予め取得する操作もしくは、ロボットを据え付ける作業が必要となるため作業負荷が大きい。
【0010】
つまりいずれの従来技術においても、キャリブレーション操作の自動化率が低いか、もしくはキャリブレーション精度が低いという問題がある。本発明はこのような問題点に対してなされたもので、ロボットキャリブレーションにおける精度を維持しつつ作業負荷を低減することを目的とする。
【課題を解決するための手段】
【0011】
上記問題を解決するため、本発明は、次のようにしたのである。
【0012】
請求項1に記載の発明は、先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション装置であって、前記手先効果器に取り付けられる接触位置検出プローブと、前記プローブに印加された外力を検出する外力検出器と、前記ロボットに位置検出動作を行わせることで前記プローブと接触する定盤と、前記プローブの先端部の位置を計算するプローブ先端位置計算部と、前記外力検出器により検出された外力と前記プローブ先端位置計算部により計算された前記プローブの位置とを時系列的に記録する記録装置と、前記プローブの接触状態が検出された場合、計算された前記プローブの位置に基づいて接触位置を導出する、接触位置検出部と、前記ロボットに対し、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤に接触させる動作を行って前記プローブ先端位置の誤差を求めるプローブ先端位置一定動作誤差計算部と、前記プローブ先端位置一定動作によって求めた誤差を用いて前記ロボットのキャリブレーション演算を行うロボットキャリブレーション演算部を有することを特徴とする。
【0013】
請求項2に記載の発明は、前記ロボットキャリブレーション装置は、前記外力検出器の値を監視し、前記外力検出器の出力値が所定の閾値を超えた場合に接触検出と判断して前記ロボットの動作を減速停止させる外力監視部を備えることを特徴とする。
【0014】
請求項3に記載の発明は、前記プローブの先端部は球形状をなし、前記プローブ先端位置計算部は、順運動学によって求めた前記ロボットお手先位置に前記プローブの寸法を加えることにより前記球の中心位置を求め、前記球の中心位置に、接触時の前記プローブのアプローチ方向に応じて前記球の半径を加算することでプローブ先端位置を計算することを特徴とする。
【0015】
請求項4に記載の発明は、前記プローブは、前記手先効果器から取外し可能で、少なくとも前記手先効果器への取り付け位置から前記プローブの先端方向へ1自由度の弾性変形領域、または前記プローブの先端方向以外への2方向への曲げに対して弾性変形領域を持つことを特徴とする。
【0016】
請求項5に記載の発明は、前記記録装置は、前記位置検出動作中の前記外力検出器の出力値とプローブ先端位置とを所定周期毎に記録することを特徴とする。
【0017】
請求項6に記載の発明は、前記接触位置検出部は、所定周期で記録された前記外力検出器の出力値に基づいて接触時点を求め、記録された該接触時点におけるプローブ先端位置から前記定盤との接触位置を特定することを特徴とする。
【0018】
請求項7に記載の発明は、前記定盤は、互いに垂直な3平面で構成され、設置面との水平度を調整する調整用ネジを有することを特徴とする。
【0019】
請求項8に記載の発明は、前記プローブ先端位置一定動作誤差計算部は、前記定盤平面に位置合わせした前記ロボットに前記プローブ先端位置一定動作を行わせる前記各関節の角度指令を複数生成し、生成した前記プローブ先端の各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記ロボットの各関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより、プローブ先端位置一定動作における誤差を計算することを特徴とする。
【0020】
請求項9に記載の発明は、前記キャリブレーション演算部は、前記プローブ先端位置一定動作の誤差の測定値と、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差の演算値とから連立方程式を立式し、前記連立方程式を解き、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする。
【0021】
請求項10に記載の発明は、前記キャリブレーション演算部は、前記プローブ先端位置一定動作誤差計算部において得た前記定盤との接触位置における前記ロボットの各軸関節角度と幾何学的パラメータ誤差から前記プローブ先端位置を計算し、プローブ先端位置の演算値と位置検出の真値からプローブ先端位置誤差を計算し、収束演算によって前記前記プローブ先端位置誤差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする。
【0022】
請求項11に記載の発明は、先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション方法であって、前記手先効果器に取り付けられ弾性変形可能な接触位置検出プローブを、互いに垂直な3平面で構成された定盤のいずれかの平面に位置合わせし、その際のプローブの先端位置から、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記ロボットの各軸関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより前記プローブ先端位置一定動作による誤差を計算し、前記プローブ先端位置一定動作の誤差と、前記ロボットの関節のコンプライアンス、リンク間の距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差との差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定するという手順を行うことを特徴とする。
【0023】
請求項12に記載の発明は、複数のロボット間のキャリブレーションを行うキャリブレーション装置であって、各々のロボットの手先効果器に取り付けられた接触位置検出プローブを、互いに垂直な3平面で構成された定盤の平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記複数のロボットの各軸関節角度を記録して、各ロボットの接触位置を検出するという処理を所定回数繰り返すことによって、前記各ロボットに基づくロボット座標系の間の誤差を計算し、前記各ロボットに基づくロボット座標系の間の位置姿勢関係を同定することを特徴とする。
【発明の効果】
【0024】
請求項1〜6、及び11に記載の発明によると、プローブの持つ柔軟特性によりロボットの特徴である高速性を失わずに定盤にタッチングでき、力センサ等の外力検出器により敏感に接触を検出してエンコーダ分解能程度のサブミリの単位で接触位置を求めることができるため、作業負荷を低減しつつキャリブレーションを精度よく行うことができる。
請求項7、8、及び11に記載の発明によると、ロボットキャリブレーション動作を自動生成し、接触位置を自動検出し、得られた位置検出結果からロボットキャリブレーションを自動実行することができる。
請求項9〜11に記載の発明によると、ロボットキャリブレーションだけでなく、ロボットキャリブレーションにより得られた幾何学的パラメータを評価する過程を含めて自動的に処理することができる。
請求項12に記載の発明によると、複数のロボットについて、各ロボットに基づくロボット座標系間のキャリブレーションを精度よく自動的に処理することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の第1の実施形態に係るキャリブレーション装置の全体の構成図である。
【図2】(a)は同実施形態で使用可能なロボットの接触位置検出装置の例を示す構成図である。(b)は同実施形態で使用可能なロボットの接触位置検出装置の例を示す構成図である。(c)は同実施形態で使用可能なロボットの接触位置検出装置の例を示す構成図である。
【図3】本発明のキャリブレーション装置の一部である定盤の図である。
【図4】本発明の第1の実施形態の処理手順を示すフローチャートである。
【図5】ロボットを操作しプローブを定盤に接触させる様子を示す図である。
【図6】図4のS12でのロボットの動作を説明する図である。
【図7】位置検出処理の方法を説明する図である。
【図8】図4のS13でのロボットの動作を説明する図である。
【図9】本発明の第2の実施形態に係る処理手順を示すフローチャートである。
【図10】本発明の第3の実施形態の処理を説明する図である。
【図11】本発明の第3の実施形態に係る処理手順を示すフローチャートである。
【図12】(a)は本発明の第3の実施形態の処理を説明する図である。(b)は本発明の第3の実施形態の処理を説明する図である。
【図13】従来の方法の説明図である。
【発明を実施するための形態】
【0026】
以下、本発明の具体的な方法について、図に基づいて説明する。
【0027】
<第1実施形態>
図1は、本発明の方法を実施するロボットキャリブレーション装置の構成図である。図において1は複数の関節軸を備えたロボットで、各関節は内蔵されたサーボモータによって駆動され、さらに各関節はリンクによって連結される。
ロボットの先端部には後述の外力検出器4を介して手先効果器2が取り付けられている。手先効果器としては、用途に応じて物体を把持するグリッパ、溶接トーチ、溶接ガンなどが用いられる。図1では手先効果器としてグリッパを例に挙げている。ただし手先効果器2は本発明の実現のためには必ずしも搭載されている必要は無い。
3は取外し可能で、プローブ長手方向、または長手方向以外の2方向の曲げ、いずれか3方向に対して弾性変形領域を持つ接触位置検出プローブで、位置検出動作に伴い作業対象物と接触する際に手先効果器もしくはロボット自身と作業対象物とが干渉しない程度の長さを持ち、接触方向に制限を与えないために先端は球状となっている。また、ロボットの作業性を損なわないように、プローブが必要な時のみ突き出す収納式でも良い。
4は一方向以上の力を検出できる外力検出器で、接触状態を導通により電気的に検出するセンサ、接触センサ、薄型圧力センサ、トルク指令値と負荷トルクとの差で表される外乱トルクを用いた力検出器でも代用できる(本実施例では力センサを例にして説明する)。
【0028】
図2は力センサ以外の方法で作業対象物との接触検出を行う場合の構成を示した図である。
図2(a)は導通によって接触状態を電気的に検出するセンサを装着したロボットで、ロボット1と作業対象物012は電気結合線013により電気的に結合されている。手先効果器2に装着した導通検出プローブ011を作業対象物012に接触させることにより、作業対象物012を媒体として通電し、導通検出プローブ011においてこれを検出し、接触状態を検出することが出来るのである。
【0029】
また、図2(b)は接触センサを装着したロボットで、手先効果器2に弾性部材021を介してスイッチ022を設け、その先に剛体プローブ023を装着している。スイッチ022は物理的な拘束により所定量の変位が発生した時にスイッチングし電気的な信号を出力するスイッチであり、ロボット1の動作により、剛体プローブ023が作業対象物024に接触し、所定量の変位が発生した時に接触を検知する電気信号が、スイッチ022より出力されることにより、接触状態を検出することが出来るのである。
【0030】
図2(c)はトルク指令値と負荷トルクとの差で表される外乱トルクを用いた力検出方法を説明するブロック図(図はロボットの関節軸のうち1軸に対応する制御ブロックであり、実際にはロボットの軸数分だけ制御ブロックは存在する)で、通常のロボットの位置速度制御部031におけるトルク指令と位置フィードバックを用いて外乱トルク演算部032において外乱トルクを計算する。外乱トルクの演算方法として、例えば、位置フィードバックの2階微分から角加速度を求め、モータ負荷の慣性モーメントを乗ずることでトルクを計算し、トルク指令と位置フィードバックから計算したトルクの差を外乱トルクとする方法があるが、これに限定されない。外乱トルクを所定周期で計算することで、接触状態を検出することが出来るのである。
【0031】
図1に戻り、ロボットコントローラ5について説明する。ロボットコントローラは通常のロボットの位置制御を行う位置指令生成部51に加え、力センサ等の値を監視し接触判断を行う外力監視部52、エンコーダ値とプローブ設計寸法および手先効果器2への取り付け位置と位置検出動作中のロボットのアプローチ方向とからプローブ先端位置を計算するプローブ先端位置計算部53、位置検出動作中の力センサの値とプローブ先端位置を記録する記録装置54、記録した値から接触位置を計算する接触位置検出部55を備える。
【0032】
ロボットコントローラ5はさらに、プローブ先端位置一定動作誤差計算部56を備える。プローブ先端位置一定動作誤差計算部56は、プローブ先端位置一定動作を行うためのロボットの各関節の角度指令を生成し、生成したプローブ先端姿勢で定盤7の平面に垂直な方向に第1の所定距離だけ離れた位置からプローブ先端姿勢を保ったまま定盤7の平面に向かって第1の所定距離に第2の所定距離を加えた分だけ押し込む動作を生成する。第1の所定距離は、プローブ先端位置一定動作によりプローブ先端と定盤が接触しない程度の数cm程度で、第2の所定距離は、プローブの弾性変形領域内である数mm程度である。さらにプローブ先端位置一定動作誤差計算部56は、位置指令生成部51によって生成した各プローブ先端姿勢にて押し込み動作を実行して、接触位置検出部55により接触位置を検出するという処理を所定回数繰り返すことによってプローブ先端位置一定動作の精度(誤差)を計算する。
ここでプローブ先端位置一定動作とは、プローブ先端位置を一定に保った状態で姿勢のみを変えるロボットの動作を意味する。
【0033】
ロボットコントローラ5は、その他にキャリブレーション演算部57、幾何学的パラメータ格納部58を備える。
キャリブレーション演算部57ではキャリブレーション演算を行い、ロボットの幾何学的パラメータ誤差を求め、ロボットコントローラ5内のロボットの幾何学的パラメータを修正する。ロボットの幾何学的パラメータとは、具体的にはロボット原点位置における各関節の角度、関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータといった値であり、幾何学的パラメータ誤差とは、これらに対応するロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差を意味する。「ロボット原点位置における各関節の角度」「ロボット原点位置における各関節の角度の誤差」は、それぞれ「各関節の原点位置」「各関節の原点誤差」と換言してもよい。
幾何学的パラメータ格納部58は、キャリブレーション演算部57によって修正されたロボットの幾何学的パラメータを格納する。
【0034】
幾何学的パラメータの一種である作業ツールデータは複数個設定することが可能で、設定値の一つにプローブ3の設計寸法、および取り付け位置から計算した作業ツールデータを設定しておく。作業ツールデータは、プローブ3が弾性変形していない状態での、ロボット1の先端位置からみた接触位置検出プローブ3の先端部の位置姿勢であり、プローブ3の設計寸法および手先効果器2への取り付け位置から計算する。
プローブ先端位置は、プローブ先端の球の半径寸法以上の高精度な位置検出精度を要求する場合には、後述するようにプローブ先端位置(プローブ先端球表面と定盤7の平面との物理的な接触点位置)とプローブ先端球中心位置を分けて、アプローチ方向に応じてプローブ先端球の中心位置からプローブ先端位置を計算するが、それ以外の場合には特に使い分けをしない(プローブ先端位置はプローブ先端球の中心位置と一致すると考える)。
【0035】
ロボットコントローラ5に接続された教示ペンダント6は、ロボットの作業教示、および再生、接触動作実行や力センサ値の検出閾値の設定変更に使用する。
【0036】
ロボットキャリブレーションにおいて使用する定盤7の詳細を図3に示す。各辺が10cm程度のXY平面(71)と、XZ平面(72)、YZ平面(73)で構成されている。また、XY平面、XZ平面、YZ平面上にはそれぞれプローブ3の位置合わせ用の印(74、75、76)が印字されており、各平面71、72、73における印(74、75、76)の位置は設計寸法により既知であるとする。なお、事前準備において、調整ネジ77を用いて水準計などで確認しながらXY平面とロボット設置面との平行度を確保し、またXZ面のXY平面に対する垂直度は機械的に保証されている(加工工程において精度が確保されている)。ここで言うXYZ方向とは、ロボットの据付箇所を原点として、ロボットの前後方向にX方向、左右方向にY方向、上下方向にZ方向を取るロボット座標系の軸方向を指す(図1参照)。
【0037】
図4は本発明の実施例1の全体処理手順を示すフローチャートである。この図を用いて本実施例におけるキャリブレーションの手順を説明する。
まず、ステップS10において、事前準備として、ロボット1の各関節の位置(角度)をその原点位置に合わせ、その状態での各関節の角度と、設計値より取得した関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータを、教示ペンダント6を用いて入力し、初期値として幾何学的パラメータ格納部58に設定する。各関節の角度の原点位置合わせでは、作業者が教示ペンダントを操作してジョグ動作やインチング動作によってロボットを微速動作させて、ロボットの各軸間の接合部に予め設けられたキー溝同士の位置を目視によって合わせるなどの手段によりラフに決定する。
【0038】
本実施例では説明のために作業座標系を以下のように設定するが、この限りではない。作業ツールデータの姿勢は、図5のように、プローブを定盤XY平面に垂直になるようなロボットの姿勢においてプローブ先端位置から取り付け位置に向かってZ軸をとり、ロボット前方にX軸をとるように設定する。
作業座標系とは、ロボットの手先効果器の先に固定された直交座標系であり、ロボットの手先位置姿勢を変化させる際の基準として使う座標系である。作業座標系の軸方向は、作業者が決定した作業ツールデータから計算される。
ステップS11において、図5に示すように、作業者が教示ペンダント6によりロボット1を操作し、ロボット1の手先効果器2に取り付けたプローブ3を定盤7のXY平面上の位置合わせ用印の位置(74)の上で、プローブ3の姿勢をXY平面(71)に対して垂直になるようにし、なおかつプローブ先端を定盤7と接触しない程度に近づけて位置合わせし、教示位置P10を得る(この操作により、ロボット座標系に対する定盤XY平面(71)の位置姿勢がラフに教示されたことになる)。
同様の手法により、XZ平面(72)とYZ平面(73)に対して位置合わせし、教示位置P20、およびP30を得る。
【0039】
ステップS12からステップS15の処理は、プローブ先端位置一定動作誤差計算部56、位置指令生成部51、接触位置検出部55によって実行される。
ステップS12では、図6に示すようにステップS11で取得したP10と作業ツールデータ(ステップS10において設定した誤差を含んだ値)を用いて、プローブ先端が定盤7のXY平面71からZ軸方向に前出の第1の所定距離だけ離れた位置でプローブ先端位置を固定したままで姿勢のみを変えるロボットの各関節の角度指令を生成し、定盤7のXY平面71に対するプローブ姿勢を変化させ(この位置をアプローチ開始位置とする)、プローブ姿勢を保ったまま定盤7のXY平面71に対し第1の所定距離に加えて前出の第2の所定距離だけ押し込む動作を生成し、位置指令生成部51によって生成した押し込み動作を実行し、接触位置検出処理を実行して接触位置検出部55によって検出位置P11 R[x11,y11,z11]を得る。その後プローブをアプローチ開始位置に戻して、再度プローブ姿勢を変化させて定盤7のXY平面71に対し押し込み動作を実行し、検出位置P12 R[x12,y12,z12]を得る、という処理を繰り返す。
【0040】
プローブ姿勢の決め方は、次のようにする。ロボット1の各関節軸を駆動するサーボモータにそれぞれ設けられたエンコーダ(図示せず)により取得した関節角度とステップS10で設定した作業ツールデータから計算したロボット座標系におけるプローブ姿勢 R[rxtcp,rytcp,rztcp]で、rxtcpが−90°〜−10°か、10°〜90°、rytcpが−90°〜−10°か、10°〜90°の範囲(rztcpは範囲指定無し)において、求める幾何学的パラメータの個数に応じて所定数を分割し、均等になるように決定する(ロボットの可動域内で、より広い範囲を取ることで信頼性の高い結果となる。なぜなら、後述するように、ロボットの各関節角度の誤差とトルクは実際には非線形特性を持っており、より広域で計測することで、線形化した場合のモデル化誤差を少なく出来るからである)。
つまり、プローブ3が定盤7のXY平面71に対して垂直となる範囲(プローブの弾性変形方向以外)を除いて、同定すべきパラメータの個数に応じて計測姿勢範囲を分割するのである。
【0041】
続けて、プローブ先端位置一定動作を行ってプローブ姿勢を変化させ、その都度、位置検出処理を実行するという手順を所定回数繰り返すことにより、検出位置P12 R [x12,y12,z12] ,…,P1N R [x1N,y1N,z1N]を得る。
ここで、Nは上記所定回数に相当する、位置検出処理を繰り返した回数である。
プローブ先端位置一定動作を行う際、プローブ先端位置一定動作誤差計算部56では幾何学的パラメータ格納部58に格納された幾何学的パラメータを用いて逆運動学演算を行い、ロボットの各関節への位置指令を生成して位置指令生成部51を介して実際にロボットを動作させる。
仮に、幾何学的パラメータ格納部58に格納された幾何学的パラメータが実際のロボットのそれと一致していれば、ロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は同値となり、プローブ先端位置一定動作が誤差無く行われてプローブ先端位置は変化しない。すなわち検出位置のZ軸座標値も試行に因らず一定値となる。
しかし実際には幾何学的パラメータ誤差が存在するため、プローブ先端位置一定動作時のロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は一致せず検出位置のZ軸座標値は試行毎に変動することになる。
なお図6では説明のため、1回目と2回目のプローブ先端位置のずれやP11とP12のずれ、印74とのずれを誇張して描いている。
【0042】
ここで接触位置検出部55での位置検出処理について説明する。検出処理の間、外力監視部52において、力センサの値が検出閾値を超えているかを一定の周期で監視する処理と、記録装置54にプローブ先端位置と力センサ値を記録する処理を同時に行う。外力監視部52において、力センサの値が検出閾値を超えた場合には接触を検出したと判断し、接触位置検出信号が位置指令生成部51へ送信され位置指令生成部51がロボットを減速停止させ、アプローチ開始位置へ撤退する動作を行う。記録装置54に記録した動作中の力センサとプローブ先端位置から接触時の力センサ値の立上り時点を求め、立上り時点のプローブ先端位置を接触位置として算出する(図7参照)。
【0043】
また記録処理はメモリに一定のバッファ領域を設け、記録時に随時上書きする。プローブ先端位置はロボット各関節のエンコーダから取得した角度の順変換によりロボット手先位置を計算し、ロボット手先位置に、設定した作業ツールデータ(ロボット手先位置を基準としたプローブ先端位置の位置)を加算するという手順で計算する。より精度良く接触位置を検出するために、下に示す(式1)のように位置検出動作におけるプローブのアプローチ方向に応じて、プローブ先端球中心位置Ptcpにプローブ半径Rを加算してプローブ先端位置Ptopを計算しても良い。
(式1)はロボット座標系を基準とした動作でのアプローチ方向の場合分けで、場合分け以外の方向から動作した場合には、移動量の多い方向をアプローチ方向として計算しても精度に影響は無い。例えば、アプローチ動作としてX軸負から正方向へ200mm、Y軸正から負方向へ10mm動作した場合(i)のX軸負から正方向へアプローチする場合とする。
【0044】
【0045】
ステップS13では、図8に示すように、ステップS12と同様にプローブ先端位置一定動作を行い、定盤7のXZ平面72に対してプローブ姿勢を変化させ、その都度、位置検出処理を実行するという手順を所定回数繰り返すことにより、検出位置P21 R [x21,y21,z21] ,…,P2N R [x2N,y2N,z2N]を得る(ステップS12の場合と同様、幾何学的パラメータ誤差が存在する場合、プローブ先端位置一定動作時のロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は一致しないため、検出位置のY軸座標値は試行毎に変動する)。ここで、NはステップS12の場合と同様、上記所定回数に相当する、位置検出処理を繰り返した回数である。
位置検出処理は、ステップS11において取得したP20と定盤設計寸法からXZ平面のおおよその位置を得、プローブ先端位置一定動作を自動生成し、位置検出動作を自動生成するという手順で実行される。
なお図8では説明のため、図6と同様に1回目と2回目のプローブ先端位置のずれやP21とP22のずれ、印75とのずれを誇張して描いている。
【0046】
ステップS14では、ステップS12、ステップS13と同様にプローブ先端位置一定動作を行い、定盤7のYZ平面73に対するプローブ姿勢を変化させ、その都度、位置検出処理を実行するという手順を所定回数繰り返すことにより、検出位置P31 R [x31,y31,z31] ,…,P3N R [x3N,y3N,z3N]を得る(ステップS12、S13の場合と同様、幾何学的パラメータ誤差が存在する場合、プローブ先端位置一定動作時のロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は一致しないため、検出位置のX軸座標値は試行毎に変動する)。ここで、NはステップS12、S13の場合と同様、上記所定回数に相当する位置検出処理を繰り返した回数である。
【0047】
位置検出する所定回数Nは、以下に記すプローブ先端位置一定動作の精度(誤差)について、数値的な信頼性を得られる回数分だけ計測する(厳密な回数は経験的に決まるが、少なくとも各平面につき5点は必要となる)。
【0048】
次に、ステップS15において、位置検出結果の真値X,Y,Z(幾何学的パラメータ誤差が無い場合の位置検出した値)と位置検出の計測値x3i,y2i,z1iからプローブ先端位置一定動作の精度(誤差)ρを(式2)により計算する。プローブ先端位置一定動作の精度(誤差)ρが閾値以内であれば終了し、閾値より大きければステップS16に進みロボットキャリブレーションを実行する。
【0049】
【0050】
ステップS16では、キャリブレーション演算部57において、測定したプローブ先端位置一定動作の精度(誤差)と幾何学的パラメータ誤差(ロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差)を考慮したプローブ先端位置誤差の演算値の連立方程式からキャリブレーション演算を行う。
例えば、X軸方向に関して、プローブ先端位置一定動作後に位置検出した値をx3Nとし、位置検出の真値をXとし、この差(計測したプローブ先端位置一定動作の精度(誤差))をΔxiとし、ロボット原点位置における各関節の角度の誤差をΔθ1,…,Δθ6とし、関節のコンプライアンスをC1,…,C6とし、リンク間の距離とリンク長の誤差をΔL1,ΔL2,ΔL3,ΔL4とし、作業ツールデータの誤差をΔTlx,ΔTly,ΔTlz,ΔTlrx,ΔTlry,ΔTlrzとすると、(式3)の関係が成り立つ。
【0051】
【0052】
ここで、jはロボットの複数の関節のいずれであるかを特定するための添え字であり、kはリンク間の距離とリンク長さの数であり、mは作業ツールデータの位置姿勢変数の数であり、Mはモータトルクである。各関節の角度の誤差について、モータトルクとコンプライアンスの積、つまり線形ばねでモデル化したが、この限りではない。より詳細に非線形モデルを用いたり、回転方向だけでなく軸間のねじれのモデルを考慮し、求めるパラメータを追加したりしても良い。
(式3)中のxに対する偏微分はロボットの各関節の位置姿勢から容易に求めることができる。Y軸方向、Z軸方向においても同様に立式し、求める変数に対して解くと、(式4)の連立方程式が得られる。
【0053】
【0054】
(式4)を掃き出し法やガウスの消去法等一般的に良く知られた数値解放で解き幾何学的パラメータ誤差(ロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差)と、位置検出の真値を求める。(式4)で使用する検出位置データに添え字Nが付与されているが、これはステップS12、ステップS13、ステップS14の各ステップにおいてN回計測した値の何れかの値を用いるという意味で、(式4)で求める変数(左辺)の解を得るためには、3点が得られれば良い。何れの値を用いるかは任意であるが、先に述べたように3点がより広域で計測されていることにより、信頼性の高いキャリブレーション結果を得ることが出来、プローブ先端位置一定動作の精度(誤差)ρも高精度になるのである。
【0055】
次に、ステップS17において、ステップS16で求めた幾何学的パラメータ誤差をロボットコントローラ内の幾何学的パラメータ格納部58の幾何学的パラメータに加算し修正する。
【0056】
以上説明したように、本実施例では、作業者が教示ペンダントを用いて定盤平面に位置合わせした際のプローブ先端位置情報からプローブ先端位置を固定したまま姿勢のみを変えるロボットの各関節の角度指令を生成し、接触位置を検出するという処理を所定回数繰り返す。こうした処理により得たプローブ先端位置一定動作の精度(誤差)の測定値と幾何学的パラメータ誤差を考慮したプローブ先端位置誤差の演算値の連立方程式からキャリブレーション演算を行って幾何学的パラメータ誤差を同定し、ロボットコントローラ内の幾何学的パラメータを修正する。こうした手順を取ることにより、専用計測器を使うこと無く、高精度で、自動化率の高いロボットキャリブレーションを行うことが出来るのである。
また、キャリブレーションに必要な治具はプローブと定盤と外力検出器のみであり持ち運び可能なため、工場など場所を問わずにキャリブレーション作業を実施することが出来る。
【0057】
<第2実施形態>
図9は本発明の別の実施形態における処理手順を示すフローチャートである。この図を用いて別の実施形態における方法について順を追って説明する。
ステップS20は第1実施形態におけるステップS10と同様に、ロボット1原点位置における各関節の角度と設計値より取得した関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータを、教示ペンダント6を用いて入力し、幾何学的パラメータ格納部58に設定する。
ステップS21は実施例1におけるステップS11と同様に、作業者が教示ペンダント6によりロボット1を操作し、プローブ3を定盤各平面上の印に位置合わせし教示位置P10、P20、およびP30を得る。
ステップS22は、ステップS21においてラフ教示した教示位置P10からプローブ先端位置一定動作を行い、XY平面に対して位置検出処理を繰り返し、検出位置における各軸関節角度θ11,…,θ1Nを得る。ただし、θは関節軸数分のデータを持っている。
ステップS23は、ステップS21においてラフ教示した教示位置P20からプローブ先端位置一定動作を行い、XZ平面に対して位置検出処理を繰り返し、検出位置における各軸関節角度θ21…,θ2Nを得る。
ステップS24は、ステップS21においてラフ教示した教示位置P30からプローブ先端位置一定動作を行い、YZ平面に対して位置検出処理を繰り返し、検出位置における各軸関節角度θ31…,θ3Nを得る。
【0058】
ステップS25では、ステップS20で設定した幾何学的パラメータ(ロボット原点位置における各関節の角度、関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータ)と、ステップS22〜ステップS24で得た各軸関節角度からプローブ先端位置x3i’,y2i’,z1i’を計算し、(式5)を用いてプローブ先端位置一定動作の精度(誤差)ρを計算し、終了判定を行う。
【0059】
【0060】
ステップS26では、キャリブレーション演算部57において、修正パウエル法や勾配法等一般的に良く知られた収束演算を用いて、プローブ先端位置一定動作の精度(誤差)を最小化する幾何学的パラメータ誤差(ロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差)と、位置検出の真値を求める。つまり、収束演算において、幾何学的パラメータを変動させて、プローブ先端位置x3i’,y2i’,z1i’を求め、プローブ先端位置一定動作の精度(誤差)を求めるという処理をプローブ先端位置一定動作の精度(誤差)が所定値になるまで繰り返すのである。
次に、ステップS27において、ステップS26で求めた幾何学的パラメータ誤差をロボットコントローラ内の幾何学的パラメータ格納部58の幾何学的パラメータに加算し修正する。
【0061】
このように、作業者が教示ペンダントを用いて定盤平面に位置合わせした際のプローブ先端位置情報からプローブ先端位置を固定したまま姿勢のみを変えるロボットの各関節の角度指令を生成し、接触位置を検出するという処理を所定回数繰り返す。こうした処理により接触位置における各軸関節角度を得て、接触位置における各軸関節角度と幾何学的パラメータ誤差からプローブ先端位置を計算し、プローブ先端位置一定動作の精度(誤差)を最小化する幾何学的パラメータ誤差を同定し、ロボットコントローラ内の幾何学的パラメータを修正する。こうした手順を取ることにより、専用計測器を使うこと無く、高精度で、自動化率の高いロボットキャリブレーションを行うことが出来るのである。
また、キャリブレーションに必要な治具はプローブと定盤と外力検出器のみであり持ち運び可能なため、工場など場所を問わずにキャリブレーション作業を実施することが出来る。
【0062】
<第3実施形態>
次に、本発明の第3の実施形態として、本発明をロボット間のキャリブレーションに適用した例を説明する。図10はロボット間のキャリブレーションを説明する図で、図にはロボット1(11)及び、ロボット1の据付位置に原点を取るロボット座標系1と、ロボット2(12)及び、ロボット2の据付位置に原点を取るロボット座標系2を記載している。本実施例では説明の簡略化のために、ロボット2台の間の2次元的なキャリブレーションを例にして説明するが、これに限定されず、3台以上のロボットに対して3次元的なキャリブレーションを行うことも可能である。
ロボット間のキャリブレーションとは、図10に示すようにロボット座標系1とロボット座標系2の間の実際の位置姿勢関係(図では位置姿勢関係を規定する同次変換行列R1TR2を記載している)を同定し、ロボットコントローラに予め設定された設計上のロボット座標系1とロボット座標系2の間の位置姿勢関係と比較し、修正することを意味する。キャリブレーションによりロボット間の正確な位置姿勢関係を得、複数ロボットを用いて精密な協調作業することが可能となる(例えば、一方のロボットが把持する部材に対する、組付けや溶接加工などの作業)。
従来のロボット間キャリブレーションとして、CADの設計寸法を用いる方法や、先端が鋭利なプローブを両ロボットに装着し、これらを教示ペンダントで目視位置合わせする方法が取られていたが、前者は精度が悪く、後者は簡便でないという課題があった。本実施例は、これらの課題を解決するものである。
【0063】
図11は、本発明の第3の実施形態における処理手順を示すフローチャートである。
ステップS30では、本発明の実施例1、2のいずれかの方法、もしくはその他の手法を用いて、各ロボットに対して幾何学的パラメータをキャリブレーションする。
【0064】
ステップS31では、図12(a)に示すように、ロボット1(11)、及びロボット2(12)を動作させて、定盤7のXY平面71に対して各ロボット2点ずつ位置検出処理を実行し、検出位置PR1_11 R1 [yR1_11,zR1_11] ,PR1_12 R1 [yR1_12,zR1_12] ,PR2_11 R2 [yR2_11,zR2_11] ,PR2_12 R2 [yR2_12,zR2_12]の4点を得る。上付きのR1、及びR2はそれぞれロボット座標系1とロボット座標系2における位置を意味する。ロボット間のキャリブレーションが正確に行われている場合には、zR1_11とzR2_11の差、つまりロボット座標系1原点からロボット座標系2原点へのZ軸方向の距離はロボットコントローラに設定された値と同値になるが、往々にして誤差を含んでおり一致しない。
【0065】
ステップS32では、ステップS31の処理を定盤7のXZ平面72に対して行う。つまり、図12(b)に示すように、ロボット1(11)、及びロボット2(12)を動作させて、定盤7のXZ平面72に対して各ロボット2点ずつ位置検出処理を実行し、検出位置PR1_21 R1 [yR1_21,zR1_21] ,PR1_22 R1 [yR1_22,zR1_22] ,PR2_21 R2 [yR2_21,zR2_21] ,PR2_22 R2 [yR2_22,zR2_22]の4点を得る。ロボット間のキャリブレーションが正確に行われている場合には、yR1_21とyR2_21の差、つまりロボット座標系1原点からロボット座標系2原点へのY軸方向の距離はロボットコントローラに設定された値と同値になるが、往々にして誤差を含んでおり一致しない。
【0066】
ステップS33では、(式6)を用いてロボット座標系1とロボット座標系2の間の位置姿勢関係を規定する同次変換行列R1TR2を求める。
【0067】
ただし、a1R1,a1R2,a2R1,a2R2は(式7)より求める。
【0068】
【0069】
ステップS34では、ステップS33において得られた(計測した)ロボット座標系1とロボット座標系2の間の位置姿勢関係R1TR2を、ロボットコントローラに予め設定してあるロボット座標系1とロボット座標系2の間の位置姿勢関係に上書きし、正確なロボット座標系1とロボット座標系2の間の位置姿勢関係を設定する。
【0070】
このように、接触位置検出をロボット間キャリブレーションに適用することで、従来は課題となっていたキャリブレーション作業の負担を軽減し、かつ高精度にロボット間の位置姿勢関係を得ることが出来るのである。
また、キャリブレーションに必要な治具はプローブと定盤と外力検出器のみであり持ち運び可能なため、工場など場所を問わずにキャリブレーション作業を実施することが出来る。
【符号の説明】
【0071】
1 ロボット
11 ロボット1
12 ロボット2
2 手先効果器
3 接触位置検出プローブ
4 外力検出器
5 ロボットコントローラ
51 位置指令生成部
52 外力監視部
53 プローブ先端位置計算部
54 記録装置
55 接触位置検出部
56 プローブ先端位置一定動作誤差計算部
57 キャリブレーション演算部
58 幾何学的パラメータ格納部
6 教示ペンダント
7 定盤
71 XY平面
72 XZ平面
73 YZ平面
74 XY平面の接触プローブ位置合わせ用の印
75 XZ平面の接触プローブ位置合わせ用の印
76 YZ平面の接触プローブ位置合わせ用の印
77 平行度調整のネジ
【技術分野】
【0001】
本発明はロボットのキャリブレーション装置及び方法に関する。
【背景技術】
【0002】
産業用ロボットの制御において、ロボットコントローラにはロボットに関する幾何学的パラメータ(ロボット原点位置における各関節の角度、関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータ)が予め記録されており、ロボットの手先位置や姿勢の制御に用いられている。しかしながら、こうした幾何学的パラメータはロボットを構成する部品の加工誤差や部品組付誤差のために実際のロボットの数値と完全には一致せず、ロボットコントローラ内部で計算するロボットの位置姿勢と、実際のロボットの位置姿勢間に誤差が発生するという一般的な技術課題がある。
【0003】
この一般的な技術課題を解決するために、ロボットコントローラ内部で計算するロボットの位置姿勢と実際の位置姿勢を比較し、ロボットコントローラの持つロボットの幾何学的パラメータを補正することで誤差を修正するロボットキャリブレーションが行われる。
ロボットキャリブレーションの方法として、例えば、ロボットの手先に搭載したキャリブレーション用治具をベース治具に位置合わせし、ベース治具のダイヤルゲージから手先治具の位置姿勢を計測することで原点位置を補正する手段がある(例えば、特許文献1)。
【0004】
また、ロボット手先とロボット設置面の両方に先端が鋭利な治具を固定し、両治具を複数の位置姿勢で位置合わせすることで、ロボットコントローラ内部で計算する治具先端位置の誤差と幾何学的パラメータ誤差の微小変動の関係式を解き、幾何学的パラメータを修正する方法がある(例えば、特許文献2)。
図13は、特許文献2の手法を説明する図である。1は垂直多関節型のロボットであり、2および2’はそれぞれ第一関節と第二関節のアクチュエータと位置検出機である。3は手先に取り付けたエンドエフェクタ、4はキャリブレーションに使用する先端が鋭利な治具である。ロボットを操作して4の治具をロボット接地面に固定したもう一方の治具(図示せず)に目視合わせする処置を繰り返して各姿勢のロボットの位置情報を取得し、ロボットコントローラ内部で計算する治具先端位置の誤差と幾何学的パラメータ誤差の微小変動の関係を示した連立方程式を解いてキャリブレーションするのである。
【0005】
このように、従来のロボットキャリブレーション装置では、ロボットの手先に取り付けた治具をロボット接地面に固定したもう一方の治具と目視合わせすることを繰り返し各姿勢でのロボットの関節角度情報を取得してキャリブレーションする、という手順がとられていた。
【0006】
また、ロボット手先の球状基点の位置を変化させずに姿勢のみ変化させる指令を与え、その際の球状基点の移動量を測定する処理を必要回数繰り返し、得られた測定値と姿勢変更動作の位置から機構パラメータ(幾何学的パラメータの一部)を補正する手段がある(例えば、特許文献3)。
また、2個以上のカメラで測定対象を撮影し、その画像から3次元位置を演算し絶対位置姿勢を求め、更にジャイロセンサと加速度センサで相対位置姿勢を求める方式がある(例えば、特許文献4)。この方式は、測定対象上にマーカやLEDを配置し、その画像を連続的に2台以上のカメラで撮影して専用のコントローラで合成することで連続的な3次元位置を求め、カメラで撮影できない位置では加速度センサ等の相対位置情報を用いる構成である。
また、水平多関節ロボットの較正方法として、三次元的に穴位置が明確になっている複数のボスがある測定台を用い、ロボット先端の挿入ピンユニットをそこに差し込むことで、穴の位置データをロボット先端座標として測定し、測定結果から幾何学的パラメータの誤差を算出する方法がある(例えば、特許文献5)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開昭62−140783号公報
【特許文献2】特許第2520324号公報
【特許文献3】特開平05−329786号公報
【特許文献4】特許第3754402号公報
【特許文献5】特許第2603940号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1の方法は、ロボット原点位置における各関節の角度のキャリブレーションはできるが、その他の幾何学的パラメータ(関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータ)のキャリブレーションは不可能である。また、手先冶具をベース冶具に合わせる操作は手動操作であり作業者の負担を伴う。
また特許文献2の方法は、ロボット毎に作業者が教示ペンダントを用いて複数の位置に複数の姿勢で目視位置合わせする必要があり、作業者への負担が非常に大きい。さらに作業の熟練度によってキャリブレーション精度に影響が出るため、性能保証ができない点も問題である。
【0009】
また特許文献3の方法は、ロボットの位置一点で手先の球状基点の姿勢のみ変化させて球状基点の移動量を測定する手法をとっており、ロボット据付位置に近い軸は移動量が少なくなるためキャリブレーション精度が低くなるという問題がある(高精度なキャリブレーション結果を得るためには、ロボット各軸を広範囲に動作させてキャリブレーションする必要がある)。また、測定する位置を増やした場合、測定器を増やすか、測定器を手動で動かしロボットを測定器まで移動させるという処理が増えるためキャリブレーション操作が面倒になる。さらに、球面の真球度がキャリブレーション精度に影響を与えるため、真球度に関して高い精度が必要であり、加工コストが高くなる。
また特許文献4に記載された、2個以上のカメラで測定対象を撮影した画像と加速度センサやジャイロセンサから3次元位置を演算して求める方式では、カメラで撮影できない時間が長い場合には加速度センサやジャイロセンサの2回積分に頼らなければならず、そのオフセット量が著しく不連続になるという問題がある。また、測定前にロボットと装置間の複雑なキャリブレーションを実施しないと使用できず、画像処理が必要なためリアルタイムにロボットの手先の状態量を表示できない等の問題もある。更に、このようなカメラを複数台使用する測定装置は高価であるという問題もある。
また、特許文献5に記載されたような、三次元的に穴位置が明確になっている複数のボスがある測定台を用い、ロボット先端の挿入ピンユニットをそこに差し込むことで穴の位置データをロボット先端座標として測定し、測定結果から幾何学的パラメータの誤差を算出する方法は、挿入先の複数のボスとロボットの三次元的な位置関係を予め取得する操作もしくは、ロボットを据え付ける作業が必要となるため作業負荷が大きい。
【0010】
つまりいずれの従来技術においても、キャリブレーション操作の自動化率が低いか、もしくはキャリブレーション精度が低いという問題がある。本発明はこのような問題点に対してなされたもので、ロボットキャリブレーションにおける精度を維持しつつ作業負荷を低減することを目的とする。
【課題を解決するための手段】
【0011】
上記問題を解決するため、本発明は、次のようにしたのである。
【0012】
請求項1に記載の発明は、先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション装置であって、前記手先効果器に取り付けられる接触位置検出プローブと、前記プローブに印加された外力を検出する外力検出器と、前記ロボットに位置検出動作を行わせることで前記プローブと接触する定盤と、前記プローブの先端部の位置を計算するプローブ先端位置計算部と、前記外力検出器により検出された外力と前記プローブ先端位置計算部により計算された前記プローブの位置とを時系列的に記録する記録装置と、前記プローブの接触状態が検出された場合、計算された前記プローブの位置に基づいて接触位置を導出する、接触位置検出部と、前記ロボットに対し、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤に接触させる動作を行って前記プローブ先端位置の誤差を求めるプローブ先端位置一定動作誤差計算部と、前記プローブ先端位置一定動作によって求めた誤差を用いて前記ロボットのキャリブレーション演算を行うロボットキャリブレーション演算部を有することを特徴とする。
【0013】
請求項2に記載の発明は、前記ロボットキャリブレーション装置は、前記外力検出器の値を監視し、前記外力検出器の出力値が所定の閾値を超えた場合に接触検出と判断して前記ロボットの動作を減速停止させる外力監視部を備えることを特徴とする。
【0014】
請求項3に記載の発明は、前記プローブの先端部は球形状をなし、前記プローブ先端位置計算部は、順運動学によって求めた前記ロボットお手先位置に前記プローブの寸法を加えることにより前記球の中心位置を求め、前記球の中心位置に、接触時の前記プローブのアプローチ方向に応じて前記球の半径を加算することでプローブ先端位置を計算することを特徴とする。
【0015】
請求項4に記載の発明は、前記プローブは、前記手先効果器から取外し可能で、少なくとも前記手先効果器への取り付け位置から前記プローブの先端方向へ1自由度の弾性変形領域、または前記プローブの先端方向以外への2方向への曲げに対して弾性変形領域を持つことを特徴とする。
【0016】
請求項5に記載の発明は、前記記録装置は、前記位置検出動作中の前記外力検出器の出力値とプローブ先端位置とを所定周期毎に記録することを特徴とする。
【0017】
請求項6に記載の発明は、前記接触位置検出部は、所定周期で記録された前記外力検出器の出力値に基づいて接触時点を求め、記録された該接触時点におけるプローブ先端位置から前記定盤との接触位置を特定することを特徴とする。
【0018】
請求項7に記載の発明は、前記定盤は、互いに垂直な3平面で構成され、設置面との水平度を調整する調整用ネジを有することを特徴とする。
【0019】
請求項8に記載の発明は、前記プローブ先端位置一定動作誤差計算部は、前記定盤平面に位置合わせした前記ロボットに前記プローブ先端位置一定動作を行わせる前記各関節の角度指令を複数生成し、生成した前記プローブ先端の各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記ロボットの各関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより、プローブ先端位置一定動作における誤差を計算することを特徴とする。
【0020】
請求項9に記載の発明は、前記キャリブレーション演算部は、前記プローブ先端位置一定動作の誤差の測定値と、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差の演算値とから連立方程式を立式し、前記連立方程式を解き、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする。
【0021】
請求項10に記載の発明は、前記キャリブレーション演算部は、前記プローブ先端位置一定動作誤差計算部において得た前記定盤との接触位置における前記ロボットの各軸関節角度と幾何学的パラメータ誤差から前記プローブ先端位置を計算し、プローブ先端位置の演算値と位置検出の真値からプローブ先端位置誤差を計算し、収束演算によって前記前記プローブ先端位置誤差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする。
【0022】
請求項11に記載の発明は、先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション方法であって、前記手先効果器に取り付けられ弾性変形可能な接触位置検出プローブを、互いに垂直な3平面で構成された定盤のいずれかの平面に位置合わせし、その際のプローブの先端位置から、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記ロボットの各軸関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより前記プローブ先端位置一定動作による誤差を計算し、前記プローブ先端位置一定動作の誤差と、前記ロボットの関節のコンプライアンス、リンク間の距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差との差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定するという手順を行うことを特徴とする。
【0023】
請求項12に記載の発明は、複数のロボット間のキャリブレーションを行うキャリブレーション装置であって、各々のロボットの手先効果器に取り付けられた接触位置検出プローブを、互いに垂直な3平面で構成された定盤の平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記複数のロボットの各軸関節角度を記録して、各ロボットの接触位置を検出するという処理を所定回数繰り返すことによって、前記各ロボットに基づくロボット座標系の間の誤差を計算し、前記各ロボットに基づくロボット座標系の間の位置姿勢関係を同定することを特徴とする。
【発明の効果】
【0024】
請求項1〜6、及び11に記載の発明によると、プローブの持つ柔軟特性によりロボットの特徴である高速性を失わずに定盤にタッチングでき、力センサ等の外力検出器により敏感に接触を検出してエンコーダ分解能程度のサブミリの単位で接触位置を求めることができるため、作業負荷を低減しつつキャリブレーションを精度よく行うことができる。
請求項7、8、及び11に記載の発明によると、ロボットキャリブレーション動作を自動生成し、接触位置を自動検出し、得られた位置検出結果からロボットキャリブレーションを自動実行することができる。
請求項9〜11に記載の発明によると、ロボットキャリブレーションだけでなく、ロボットキャリブレーションにより得られた幾何学的パラメータを評価する過程を含めて自動的に処理することができる。
請求項12に記載の発明によると、複数のロボットについて、各ロボットに基づくロボット座標系間のキャリブレーションを精度よく自動的に処理することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の第1の実施形態に係るキャリブレーション装置の全体の構成図である。
【図2】(a)は同実施形態で使用可能なロボットの接触位置検出装置の例を示す構成図である。(b)は同実施形態で使用可能なロボットの接触位置検出装置の例を示す構成図である。(c)は同実施形態で使用可能なロボットの接触位置検出装置の例を示す構成図である。
【図3】本発明のキャリブレーション装置の一部である定盤の図である。
【図4】本発明の第1の実施形態の処理手順を示すフローチャートである。
【図5】ロボットを操作しプローブを定盤に接触させる様子を示す図である。
【図6】図4のS12でのロボットの動作を説明する図である。
【図7】位置検出処理の方法を説明する図である。
【図8】図4のS13でのロボットの動作を説明する図である。
【図9】本発明の第2の実施形態に係る処理手順を示すフローチャートである。
【図10】本発明の第3の実施形態の処理を説明する図である。
【図11】本発明の第3の実施形態に係る処理手順を示すフローチャートである。
【図12】(a)は本発明の第3の実施形態の処理を説明する図である。(b)は本発明の第3の実施形態の処理を説明する図である。
【図13】従来の方法の説明図である。
【発明を実施するための形態】
【0026】
以下、本発明の具体的な方法について、図に基づいて説明する。
【0027】
<第1実施形態>
図1は、本発明の方法を実施するロボットキャリブレーション装置の構成図である。図において1は複数の関節軸を備えたロボットで、各関節は内蔵されたサーボモータによって駆動され、さらに各関節はリンクによって連結される。
ロボットの先端部には後述の外力検出器4を介して手先効果器2が取り付けられている。手先効果器としては、用途に応じて物体を把持するグリッパ、溶接トーチ、溶接ガンなどが用いられる。図1では手先効果器としてグリッパを例に挙げている。ただし手先効果器2は本発明の実現のためには必ずしも搭載されている必要は無い。
3は取外し可能で、プローブ長手方向、または長手方向以外の2方向の曲げ、いずれか3方向に対して弾性変形領域を持つ接触位置検出プローブで、位置検出動作に伴い作業対象物と接触する際に手先効果器もしくはロボット自身と作業対象物とが干渉しない程度の長さを持ち、接触方向に制限を与えないために先端は球状となっている。また、ロボットの作業性を損なわないように、プローブが必要な時のみ突き出す収納式でも良い。
4は一方向以上の力を検出できる外力検出器で、接触状態を導通により電気的に検出するセンサ、接触センサ、薄型圧力センサ、トルク指令値と負荷トルクとの差で表される外乱トルクを用いた力検出器でも代用できる(本実施例では力センサを例にして説明する)。
【0028】
図2は力センサ以外の方法で作業対象物との接触検出を行う場合の構成を示した図である。
図2(a)は導通によって接触状態を電気的に検出するセンサを装着したロボットで、ロボット1と作業対象物012は電気結合線013により電気的に結合されている。手先効果器2に装着した導通検出プローブ011を作業対象物012に接触させることにより、作業対象物012を媒体として通電し、導通検出プローブ011においてこれを検出し、接触状態を検出することが出来るのである。
【0029】
また、図2(b)は接触センサを装着したロボットで、手先効果器2に弾性部材021を介してスイッチ022を設け、その先に剛体プローブ023を装着している。スイッチ022は物理的な拘束により所定量の変位が発生した時にスイッチングし電気的な信号を出力するスイッチであり、ロボット1の動作により、剛体プローブ023が作業対象物024に接触し、所定量の変位が発生した時に接触を検知する電気信号が、スイッチ022より出力されることにより、接触状態を検出することが出来るのである。
【0030】
図2(c)はトルク指令値と負荷トルクとの差で表される外乱トルクを用いた力検出方法を説明するブロック図(図はロボットの関節軸のうち1軸に対応する制御ブロックであり、実際にはロボットの軸数分だけ制御ブロックは存在する)で、通常のロボットの位置速度制御部031におけるトルク指令と位置フィードバックを用いて外乱トルク演算部032において外乱トルクを計算する。外乱トルクの演算方法として、例えば、位置フィードバックの2階微分から角加速度を求め、モータ負荷の慣性モーメントを乗ずることでトルクを計算し、トルク指令と位置フィードバックから計算したトルクの差を外乱トルクとする方法があるが、これに限定されない。外乱トルクを所定周期で計算することで、接触状態を検出することが出来るのである。
【0031】
図1に戻り、ロボットコントローラ5について説明する。ロボットコントローラは通常のロボットの位置制御を行う位置指令生成部51に加え、力センサ等の値を監視し接触判断を行う外力監視部52、エンコーダ値とプローブ設計寸法および手先効果器2への取り付け位置と位置検出動作中のロボットのアプローチ方向とからプローブ先端位置を計算するプローブ先端位置計算部53、位置検出動作中の力センサの値とプローブ先端位置を記録する記録装置54、記録した値から接触位置を計算する接触位置検出部55を備える。
【0032】
ロボットコントローラ5はさらに、プローブ先端位置一定動作誤差計算部56を備える。プローブ先端位置一定動作誤差計算部56は、プローブ先端位置一定動作を行うためのロボットの各関節の角度指令を生成し、生成したプローブ先端姿勢で定盤7の平面に垂直な方向に第1の所定距離だけ離れた位置からプローブ先端姿勢を保ったまま定盤7の平面に向かって第1の所定距離に第2の所定距離を加えた分だけ押し込む動作を生成する。第1の所定距離は、プローブ先端位置一定動作によりプローブ先端と定盤が接触しない程度の数cm程度で、第2の所定距離は、プローブの弾性変形領域内である数mm程度である。さらにプローブ先端位置一定動作誤差計算部56は、位置指令生成部51によって生成した各プローブ先端姿勢にて押し込み動作を実行して、接触位置検出部55により接触位置を検出するという処理を所定回数繰り返すことによってプローブ先端位置一定動作の精度(誤差)を計算する。
ここでプローブ先端位置一定動作とは、プローブ先端位置を一定に保った状態で姿勢のみを変えるロボットの動作を意味する。
【0033】
ロボットコントローラ5は、その他にキャリブレーション演算部57、幾何学的パラメータ格納部58を備える。
キャリブレーション演算部57ではキャリブレーション演算を行い、ロボットの幾何学的パラメータ誤差を求め、ロボットコントローラ5内のロボットの幾何学的パラメータを修正する。ロボットの幾何学的パラメータとは、具体的にはロボット原点位置における各関節の角度、関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータといった値であり、幾何学的パラメータ誤差とは、これらに対応するロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差を意味する。「ロボット原点位置における各関節の角度」「ロボット原点位置における各関節の角度の誤差」は、それぞれ「各関節の原点位置」「各関節の原点誤差」と換言してもよい。
幾何学的パラメータ格納部58は、キャリブレーション演算部57によって修正されたロボットの幾何学的パラメータを格納する。
【0034】
幾何学的パラメータの一種である作業ツールデータは複数個設定することが可能で、設定値の一つにプローブ3の設計寸法、および取り付け位置から計算した作業ツールデータを設定しておく。作業ツールデータは、プローブ3が弾性変形していない状態での、ロボット1の先端位置からみた接触位置検出プローブ3の先端部の位置姿勢であり、プローブ3の設計寸法および手先効果器2への取り付け位置から計算する。
プローブ先端位置は、プローブ先端の球の半径寸法以上の高精度な位置検出精度を要求する場合には、後述するようにプローブ先端位置(プローブ先端球表面と定盤7の平面との物理的な接触点位置)とプローブ先端球中心位置を分けて、アプローチ方向に応じてプローブ先端球の中心位置からプローブ先端位置を計算するが、それ以外の場合には特に使い分けをしない(プローブ先端位置はプローブ先端球の中心位置と一致すると考える)。
【0035】
ロボットコントローラ5に接続された教示ペンダント6は、ロボットの作業教示、および再生、接触動作実行や力センサ値の検出閾値の設定変更に使用する。
【0036】
ロボットキャリブレーションにおいて使用する定盤7の詳細を図3に示す。各辺が10cm程度のXY平面(71)と、XZ平面(72)、YZ平面(73)で構成されている。また、XY平面、XZ平面、YZ平面上にはそれぞれプローブ3の位置合わせ用の印(74、75、76)が印字されており、各平面71、72、73における印(74、75、76)の位置は設計寸法により既知であるとする。なお、事前準備において、調整ネジ77を用いて水準計などで確認しながらXY平面とロボット設置面との平行度を確保し、またXZ面のXY平面に対する垂直度は機械的に保証されている(加工工程において精度が確保されている)。ここで言うXYZ方向とは、ロボットの据付箇所を原点として、ロボットの前後方向にX方向、左右方向にY方向、上下方向にZ方向を取るロボット座標系の軸方向を指す(図1参照)。
【0037】
図4は本発明の実施例1の全体処理手順を示すフローチャートである。この図を用いて本実施例におけるキャリブレーションの手順を説明する。
まず、ステップS10において、事前準備として、ロボット1の各関節の位置(角度)をその原点位置に合わせ、その状態での各関節の角度と、設計値より取得した関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータを、教示ペンダント6を用いて入力し、初期値として幾何学的パラメータ格納部58に設定する。各関節の角度の原点位置合わせでは、作業者が教示ペンダントを操作してジョグ動作やインチング動作によってロボットを微速動作させて、ロボットの各軸間の接合部に予め設けられたキー溝同士の位置を目視によって合わせるなどの手段によりラフに決定する。
【0038】
本実施例では説明のために作業座標系を以下のように設定するが、この限りではない。作業ツールデータの姿勢は、図5のように、プローブを定盤XY平面に垂直になるようなロボットの姿勢においてプローブ先端位置から取り付け位置に向かってZ軸をとり、ロボット前方にX軸をとるように設定する。
作業座標系とは、ロボットの手先効果器の先に固定された直交座標系であり、ロボットの手先位置姿勢を変化させる際の基準として使う座標系である。作業座標系の軸方向は、作業者が決定した作業ツールデータから計算される。
ステップS11において、図5に示すように、作業者が教示ペンダント6によりロボット1を操作し、ロボット1の手先効果器2に取り付けたプローブ3を定盤7のXY平面上の位置合わせ用印の位置(74)の上で、プローブ3の姿勢をXY平面(71)に対して垂直になるようにし、なおかつプローブ先端を定盤7と接触しない程度に近づけて位置合わせし、教示位置P10を得る(この操作により、ロボット座標系に対する定盤XY平面(71)の位置姿勢がラフに教示されたことになる)。
同様の手法により、XZ平面(72)とYZ平面(73)に対して位置合わせし、教示位置P20、およびP30を得る。
【0039】
ステップS12からステップS15の処理は、プローブ先端位置一定動作誤差計算部56、位置指令生成部51、接触位置検出部55によって実行される。
ステップS12では、図6に示すようにステップS11で取得したP10と作業ツールデータ(ステップS10において設定した誤差を含んだ値)を用いて、プローブ先端が定盤7のXY平面71からZ軸方向に前出の第1の所定距離だけ離れた位置でプローブ先端位置を固定したままで姿勢のみを変えるロボットの各関節の角度指令を生成し、定盤7のXY平面71に対するプローブ姿勢を変化させ(この位置をアプローチ開始位置とする)、プローブ姿勢を保ったまま定盤7のXY平面71に対し第1の所定距離に加えて前出の第2の所定距離だけ押し込む動作を生成し、位置指令生成部51によって生成した押し込み動作を実行し、接触位置検出処理を実行して接触位置検出部55によって検出位置P11 R[x11,y11,z11]を得る。その後プローブをアプローチ開始位置に戻して、再度プローブ姿勢を変化させて定盤7のXY平面71に対し押し込み動作を実行し、検出位置P12 R[x12,y12,z12]を得る、という処理を繰り返す。
【0040】
プローブ姿勢の決め方は、次のようにする。ロボット1の各関節軸を駆動するサーボモータにそれぞれ設けられたエンコーダ(図示せず)により取得した関節角度とステップS10で設定した作業ツールデータから計算したロボット座標系におけるプローブ姿勢 R[rxtcp,rytcp,rztcp]で、rxtcpが−90°〜−10°か、10°〜90°、rytcpが−90°〜−10°か、10°〜90°の範囲(rztcpは範囲指定無し)において、求める幾何学的パラメータの個数に応じて所定数を分割し、均等になるように決定する(ロボットの可動域内で、より広い範囲を取ることで信頼性の高い結果となる。なぜなら、後述するように、ロボットの各関節角度の誤差とトルクは実際には非線形特性を持っており、より広域で計測することで、線形化した場合のモデル化誤差を少なく出来るからである)。
つまり、プローブ3が定盤7のXY平面71に対して垂直となる範囲(プローブの弾性変形方向以外)を除いて、同定すべきパラメータの個数に応じて計測姿勢範囲を分割するのである。
【0041】
続けて、プローブ先端位置一定動作を行ってプローブ姿勢を変化させ、その都度、位置検出処理を実行するという手順を所定回数繰り返すことにより、検出位置P12 R [x12,y12,z12] ,…,P1N R [x1N,y1N,z1N]を得る。
ここで、Nは上記所定回数に相当する、位置検出処理を繰り返した回数である。
プローブ先端位置一定動作を行う際、プローブ先端位置一定動作誤差計算部56では幾何学的パラメータ格納部58に格納された幾何学的パラメータを用いて逆運動学演算を行い、ロボットの各関節への位置指令を生成して位置指令生成部51を介して実際にロボットを動作させる。
仮に、幾何学的パラメータ格納部58に格納された幾何学的パラメータが実際のロボットのそれと一致していれば、ロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は同値となり、プローブ先端位置一定動作が誤差無く行われてプローブ先端位置は変化しない。すなわち検出位置のZ軸座標値も試行に因らず一定値となる。
しかし実際には幾何学的パラメータ誤差が存在するため、プローブ先端位置一定動作時のロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は一致せず検出位置のZ軸座標値は試行毎に変動することになる。
なお図6では説明のため、1回目と2回目のプローブ先端位置のずれやP11とP12のずれ、印74とのずれを誇張して描いている。
【0042】
ここで接触位置検出部55での位置検出処理について説明する。検出処理の間、外力監視部52において、力センサの値が検出閾値を超えているかを一定の周期で監視する処理と、記録装置54にプローブ先端位置と力センサ値を記録する処理を同時に行う。外力監視部52において、力センサの値が検出閾値を超えた場合には接触を検出したと判断し、接触位置検出信号が位置指令生成部51へ送信され位置指令生成部51がロボットを減速停止させ、アプローチ開始位置へ撤退する動作を行う。記録装置54に記録した動作中の力センサとプローブ先端位置から接触時の力センサ値の立上り時点を求め、立上り時点のプローブ先端位置を接触位置として算出する(図7参照)。
【0043】
また記録処理はメモリに一定のバッファ領域を設け、記録時に随時上書きする。プローブ先端位置はロボット各関節のエンコーダから取得した角度の順変換によりロボット手先位置を計算し、ロボット手先位置に、設定した作業ツールデータ(ロボット手先位置を基準としたプローブ先端位置の位置)を加算するという手順で計算する。より精度良く接触位置を検出するために、下に示す(式1)のように位置検出動作におけるプローブのアプローチ方向に応じて、プローブ先端球中心位置Ptcpにプローブ半径Rを加算してプローブ先端位置Ptopを計算しても良い。
(式1)はロボット座標系を基準とした動作でのアプローチ方向の場合分けで、場合分け以外の方向から動作した場合には、移動量の多い方向をアプローチ方向として計算しても精度に影響は無い。例えば、アプローチ動作としてX軸負から正方向へ200mm、Y軸正から負方向へ10mm動作した場合(i)のX軸負から正方向へアプローチする場合とする。
【0044】
【0045】
ステップS13では、図8に示すように、ステップS12と同様にプローブ先端位置一定動作を行い、定盤7のXZ平面72に対してプローブ姿勢を変化させ、その都度、位置検出処理を実行するという手順を所定回数繰り返すことにより、検出位置P21 R [x21,y21,z21] ,…,P2N R [x2N,y2N,z2N]を得る(ステップS12の場合と同様、幾何学的パラメータ誤差が存在する場合、プローブ先端位置一定動作時のロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は一致しないため、検出位置のY軸座標値は試行毎に変動する)。ここで、NはステップS12の場合と同様、上記所定回数に相当する、位置検出処理を繰り返した回数である。
位置検出処理は、ステップS11において取得したP20と定盤設計寸法からXZ平面のおおよその位置を得、プローブ先端位置一定動作を自動生成し、位置検出動作を自動生成するという手順で実行される。
なお図8では説明のため、図6と同様に1回目と2回目のプローブ先端位置のずれやP21とP22のずれ、印75とのずれを誇張して描いている。
【0046】
ステップS14では、ステップS12、ステップS13と同様にプローブ先端位置一定動作を行い、定盤7のYZ平面73に対するプローブ姿勢を変化させ、その都度、位置検出処理を実行するという手順を所定回数繰り返すことにより、検出位置P31 R [x31,y31,z31] ,…,P3N R [x3N,y3N,z3N]を得る(ステップS12、S13の場合と同様、幾何学的パラメータ誤差が存在する場合、プローブ先端位置一定動作時のロボットコントローラ内部で計算するプローブ先端位置と実際のプローブ先端位置は一致しないため、検出位置のX軸座標値は試行毎に変動する)。ここで、NはステップS12、S13の場合と同様、上記所定回数に相当する位置検出処理を繰り返した回数である。
【0047】
位置検出する所定回数Nは、以下に記すプローブ先端位置一定動作の精度(誤差)について、数値的な信頼性を得られる回数分だけ計測する(厳密な回数は経験的に決まるが、少なくとも各平面につき5点は必要となる)。
【0048】
次に、ステップS15において、位置検出結果の真値X,Y,Z(幾何学的パラメータ誤差が無い場合の位置検出した値)と位置検出の計測値x3i,y2i,z1iからプローブ先端位置一定動作の精度(誤差)ρを(式2)により計算する。プローブ先端位置一定動作の精度(誤差)ρが閾値以内であれば終了し、閾値より大きければステップS16に進みロボットキャリブレーションを実行する。
【0049】
【0050】
ステップS16では、キャリブレーション演算部57において、測定したプローブ先端位置一定動作の精度(誤差)と幾何学的パラメータ誤差(ロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差)を考慮したプローブ先端位置誤差の演算値の連立方程式からキャリブレーション演算を行う。
例えば、X軸方向に関して、プローブ先端位置一定動作後に位置検出した値をx3Nとし、位置検出の真値をXとし、この差(計測したプローブ先端位置一定動作の精度(誤差))をΔxiとし、ロボット原点位置における各関節の角度の誤差をΔθ1,…,Δθ6とし、関節のコンプライアンスをC1,…,C6とし、リンク間の距離とリンク長の誤差をΔL1,ΔL2,ΔL3,ΔL4とし、作業ツールデータの誤差をΔTlx,ΔTly,ΔTlz,ΔTlrx,ΔTlry,ΔTlrzとすると、(式3)の関係が成り立つ。
【0051】
【0052】
ここで、jはロボットの複数の関節のいずれであるかを特定するための添え字であり、kはリンク間の距離とリンク長さの数であり、mは作業ツールデータの位置姿勢変数の数であり、Mはモータトルクである。各関節の角度の誤差について、モータトルクとコンプライアンスの積、つまり線形ばねでモデル化したが、この限りではない。より詳細に非線形モデルを用いたり、回転方向だけでなく軸間のねじれのモデルを考慮し、求めるパラメータを追加したりしても良い。
(式3)中のxに対する偏微分はロボットの各関節の位置姿勢から容易に求めることができる。Y軸方向、Z軸方向においても同様に立式し、求める変数に対して解くと、(式4)の連立方程式が得られる。
【0053】
【0054】
(式4)を掃き出し法やガウスの消去法等一般的に良く知られた数値解放で解き幾何学的パラメータ誤差(ロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差)と、位置検出の真値を求める。(式4)で使用する検出位置データに添え字Nが付与されているが、これはステップS12、ステップS13、ステップS14の各ステップにおいてN回計測した値の何れかの値を用いるという意味で、(式4)で求める変数(左辺)の解を得るためには、3点が得られれば良い。何れの値を用いるかは任意であるが、先に述べたように3点がより広域で計測されていることにより、信頼性の高いキャリブレーション結果を得ることが出来、プローブ先端位置一定動作の精度(誤差)ρも高精度になるのである。
【0055】
次に、ステップS17において、ステップS16で求めた幾何学的パラメータ誤差をロボットコントローラ内の幾何学的パラメータ格納部58の幾何学的パラメータに加算し修正する。
【0056】
以上説明したように、本実施例では、作業者が教示ペンダントを用いて定盤平面に位置合わせした際のプローブ先端位置情報からプローブ先端位置を固定したまま姿勢のみを変えるロボットの各関節の角度指令を生成し、接触位置を検出するという処理を所定回数繰り返す。こうした処理により得たプローブ先端位置一定動作の精度(誤差)の測定値と幾何学的パラメータ誤差を考慮したプローブ先端位置誤差の演算値の連立方程式からキャリブレーション演算を行って幾何学的パラメータ誤差を同定し、ロボットコントローラ内の幾何学的パラメータを修正する。こうした手順を取ることにより、専用計測器を使うこと無く、高精度で、自動化率の高いロボットキャリブレーションを行うことが出来るのである。
また、キャリブレーションに必要な治具はプローブと定盤と外力検出器のみであり持ち運び可能なため、工場など場所を問わずにキャリブレーション作業を実施することが出来る。
【0057】
<第2実施形態>
図9は本発明の別の実施形態における処理手順を示すフローチャートである。この図を用いて別の実施形態における方法について順を追って説明する。
ステップS20は第1実施形態におけるステップS10と同様に、ロボット1原点位置における各関節の角度と設計値より取得した関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータを、教示ペンダント6を用いて入力し、幾何学的パラメータ格納部58に設定する。
ステップS21は実施例1におけるステップS11と同様に、作業者が教示ペンダント6によりロボット1を操作し、プローブ3を定盤各平面上の印に位置合わせし教示位置P10、P20、およびP30を得る。
ステップS22は、ステップS21においてラフ教示した教示位置P10からプローブ先端位置一定動作を行い、XY平面に対して位置検出処理を繰り返し、検出位置における各軸関節角度θ11,…,θ1Nを得る。ただし、θは関節軸数分のデータを持っている。
ステップS23は、ステップS21においてラフ教示した教示位置P20からプローブ先端位置一定動作を行い、XZ平面に対して位置検出処理を繰り返し、検出位置における各軸関節角度θ21…,θ2Nを得る。
ステップS24は、ステップS21においてラフ教示した教示位置P30からプローブ先端位置一定動作を行い、YZ平面に対して位置検出処理を繰り返し、検出位置における各軸関節角度θ31…,θ3Nを得る。
【0058】
ステップS25では、ステップS20で設定した幾何学的パラメータ(ロボット原点位置における各関節の角度、関節のコンプライアンス、リンク間の距離、リンク長、作業ツールデータ)と、ステップS22〜ステップS24で得た各軸関節角度からプローブ先端位置x3i’,y2i’,z1i’を計算し、(式5)を用いてプローブ先端位置一定動作の精度(誤差)ρを計算し、終了判定を行う。
【0059】
【0060】
ステップS26では、キャリブレーション演算部57において、修正パウエル法や勾配法等一般的に良く知られた収束演算を用いて、プローブ先端位置一定動作の精度(誤差)を最小化する幾何学的パラメータ誤差(ロボット原点位置における各関節の角度の誤差、関節のコンプライアンス、リンク間の距離の誤差、リンク長の誤差、作業ツールデータの誤差)と、位置検出の真値を求める。つまり、収束演算において、幾何学的パラメータを変動させて、プローブ先端位置x3i’,y2i’,z1i’を求め、プローブ先端位置一定動作の精度(誤差)を求めるという処理をプローブ先端位置一定動作の精度(誤差)が所定値になるまで繰り返すのである。
次に、ステップS27において、ステップS26で求めた幾何学的パラメータ誤差をロボットコントローラ内の幾何学的パラメータ格納部58の幾何学的パラメータに加算し修正する。
【0061】
このように、作業者が教示ペンダントを用いて定盤平面に位置合わせした際のプローブ先端位置情報からプローブ先端位置を固定したまま姿勢のみを変えるロボットの各関節の角度指令を生成し、接触位置を検出するという処理を所定回数繰り返す。こうした処理により接触位置における各軸関節角度を得て、接触位置における各軸関節角度と幾何学的パラメータ誤差からプローブ先端位置を計算し、プローブ先端位置一定動作の精度(誤差)を最小化する幾何学的パラメータ誤差を同定し、ロボットコントローラ内の幾何学的パラメータを修正する。こうした手順を取ることにより、専用計測器を使うこと無く、高精度で、自動化率の高いロボットキャリブレーションを行うことが出来るのである。
また、キャリブレーションに必要な治具はプローブと定盤と外力検出器のみであり持ち運び可能なため、工場など場所を問わずにキャリブレーション作業を実施することが出来る。
【0062】
<第3実施形態>
次に、本発明の第3の実施形態として、本発明をロボット間のキャリブレーションに適用した例を説明する。図10はロボット間のキャリブレーションを説明する図で、図にはロボット1(11)及び、ロボット1の据付位置に原点を取るロボット座標系1と、ロボット2(12)及び、ロボット2の据付位置に原点を取るロボット座標系2を記載している。本実施例では説明の簡略化のために、ロボット2台の間の2次元的なキャリブレーションを例にして説明するが、これに限定されず、3台以上のロボットに対して3次元的なキャリブレーションを行うことも可能である。
ロボット間のキャリブレーションとは、図10に示すようにロボット座標系1とロボット座標系2の間の実際の位置姿勢関係(図では位置姿勢関係を規定する同次変換行列R1TR2を記載している)を同定し、ロボットコントローラに予め設定された設計上のロボット座標系1とロボット座標系2の間の位置姿勢関係と比較し、修正することを意味する。キャリブレーションによりロボット間の正確な位置姿勢関係を得、複数ロボットを用いて精密な協調作業することが可能となる(例えば、一方のロボットが把持する部材に対する、組付けや溶接加工などの作業)。
従来のロボット間キャリブレーションとして、CADの設計寸法を用いる方法や、先端が鋭利なプローブを両ロボットに装着し、これらを教示ペンダントで目視位置合わせする方法が取られていたが、前者は精度が悪く、後者は簡便でないという課題があった。本実施例は、これらの課題を解決するものである。
【0063】
図11は、本発明の第3の実施形態における処理手順を示すフローチャートである。
ステップS30では、本発明の実施例1、2のいずれかの方法、もしくはその他の手法を用いて、各ロボットに対して幾何学的パラメータをキャリブレーションする。
【0064】
ステップS31では、図12(a)に示すように、ロボット1(11)、及びロボット2(12)を動作させて、定盤7のXY平面71に対して各ロボット2点ずつ位置検出処理を実行し、検出位置PR1_11 R1 [yR1_11,zR1_11] ,PR1_12 R1 [yR1_12,zR1_12] ,PR2_11 R2 [yR2_11,zR2_11] ,PR2_12 R2 [yR2_12,zR2_12]の4点を得る。上付きのR1、及びR2はそれぞれロボット座標系1とロボット座標系2における位置を意味する。ロボット間のキャリブレーションが正確に行われている場合には、zR1_11とzR2_11の差、つまりロボット座標系1原点からロボット座標系2原点へのZ軸方向の距離はロボットコントローラに設定された値と同値になるが、往々にして誤差を含んでおり一致しない。
【0065】
ステップS32では、ステップS31の処理を定盤7のXZ平面72に対して行う。つまり、図12(b)に示すように、ロボット1(11)、及びロボット2(12)を動作させて、定盤7のXZ平面72に対して各ロボット2点ずつ位置検出処理を実行し、検出位置PR1_21 R1 [yR1_21,zR1_21] ,PR1_22 R1 [yR1_22,zR1_22] ,PR2_21 R2 [yR2_21,zR2_21] ,PR2_22 R2 [yR2_22,zR2_22]の4点を得る。ロボット間のキャリブレーションが正確に行われている場合には、yR1_21とyR2_21の差、つまりロボット座標系1原点からロボット座標系2原点へのY軸方向の距離はロボットコントローラに設定された値と同値になるが、往々にして誤差を含んでおり一致しない。
【0066】
ステップS33では、(式6)を用いてロボット座標系1とロボット座標系2の間の位置姿勢関係を規定する同次変換行列R1TR2を求める。
【0067】
ただし、a1R1,a1R2,a2R1,a2R2は(式7)より求める。
【0068】
【0069】
ステップS34では、ステップS33において得られた(計測した)ロボット座標系1とロボット座標系2の間の位置姿勢関係R1TR2を、ロボットコントローラに予め設定してあるロボット座標系1とロボット座標系2の間の位置姿勢関係に上書きし、正確なロボット座標系1とロボット座標系2の間の位置姿勢関係を設定する。
【0070】
このように、接触位置検出をロボット間キャリブレーションに適用することで、従来は課題となっていたキャリブレーション作業の負担を軽減し、かつ高精度にロボット間の位置姿勢関係を得ることが出来るのである。
また、キャリブレーションに必要な治具はプローブと定盤と外力検出器のみであり持ち運び可能なため、工場など場所を問わずにキャリブレーション作業を実施することが出来る。
【符号の説明】
【0071】
1 ロボット
11 ロボット1
12 ロボット2
2 手先効果器
3 接触位置検出プローブ
4 外力検出器
5 ロボットコントローラ
51 位置指令生成部
52 外力監視部
53 プローブ先端位置計算部
54 記録装置
55 接触位置検出部
56 プローブ先端位置一定動作誤差計算部
57 キャリブレーション演算部
58 幾何学的パラメータ格納部
6 教示ペンダント
7 定盤
71 XY平面
72 XZ平面
73 YZ平面
74 XY平面の接触プローブ位置合わせ用の印
75 XZ平面の接触プローブ位置合わせ用の印
76 YZ平面の接触プローブ位置合わせ用の印
77 平行度調整のネジ
【特許請求の範囲】
【請求項1】
先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション装置であって、
前記手先効果器に取り付けられる接触位置検出プローブと、
前記プローブに印加された外力を検出する外力検出器と、
前記ロボットに位置検出動作を行わせることで前記プローブと接触する定盤と、
前記プローブの先端部の位置を計算するプローブ先端位置計算部と、
前記外力検出器により検出された外力と前記プローブ先端位置計算部により計算された前記プローブの位置とを時系列的に記録する記録装置と、
前記プローブの接触状態が検出された場合、計算された前記プローブの位置に基づいて接触位置を導出する、接触位置検出部と、
前記ロボットに対し、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤に接触させる動作を行って前記プローブ先端位置の誤差を求めるプローブ先端位置一定動作誤差計算部と、
前記プローブ先端位置一定動作によって求めた誤差を用いて前記ロボットのキャリブレーション演算を行うロボットキャリブレーション演算部を有することを特徴とするロボットキャリブレーション装置。
【請求項2】
前記ロボットキャリブレーション装置は、
前記外力検出器の値を監視し、前記外力検出器の出力値が所定の閾値を超えた場合に接触検出と判断して前記ロボットの動作を減速停止させる外力監視部を備えることを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項3】
前記プローブの先端部は球形状をなし、
前記プローブ先端位置計算部は、順運動学によって求めた前記ロボットお手先位置に前記プローブの寸法を加えることにより前記球の中心位置を求め、
前記球の中心位置に、接触時の前記プローブのアプローチ方向に応じて前記球の半径を加算することでプローブ先端位置を計算することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項4】
前記プローブは、
前記手先効果器から取外し可能で、少なくとも前記手先効果器への取り付け位置から前記プローブの先端方向へ1自由度の弾性変形領域、または前記プローブの先端方向以外への2方向への曲げに対して弾性変形領域を持つことを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項5】
前記記録装置は、
前記位置検出動作中の前記外力検出器の出力値とプローブ先端位置とを所定周期毎に記録することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項6】
前記接触位置検出部は、
所定周期で記録された前記外力検出器の出力値に基づいて接触時点を求め、記録された該接触時点におけるプローブ先端位置から前記定盤との接触位置を特定することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項7】
前記定盤は、
互いに垂直な3平面で構成され、設置面との水平度を調整する調整用ネジを有することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項8】
前記プローブ先端位置一定動作誤差計算部は、
前記定盤平面に位置合わせした前記ロボットに前記プローブ先端位置一定動作を行わせる前記各関節の角度指令を複数生成し、
生成した前記プローブ先端の各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、
該動作を実行し、前記定盤との接触位置における前記ロボットの各関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより、
プローブ先端位置一定動作における誤差を計算することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項9】
前記キャリブレーション演算部は、
前記プローブ先端位置一定動作の誤差の測定値と、
前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差の演算値とから連立方程式を立式し、
前記連立方程式を解き、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項10】
前記キャリブレーション演算部は、
前記プローブ先端位置一定動作誤差計算部において得た前記定盤との接触位置における前記ロボットの各軸関節角度と幾何学的パラメータ誤差から前記プローブ先端位置を計算し、プローブ先端位置の演算値と位置検出の真値からプローブ先端位置誤差を計算し、
収束演算によって前記前記プローブ先端位置誤差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項11】
先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション方法であって、
前記手先効果器に取り付けられ弾性変形可能な接触位置検出プローブを、互いに垂直な3平面で構成された定盤のいずれかの平面に位置合わせし、その際のプローブの先端位置から、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、
生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記ロボットの各軸関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより前記プローブ先端位置一定動作による誤差を測定し、プローブ先端位置一定動作の誤差の測定値と、
前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差の演算値とから連立方程式を立式し、前記連立方程式を解き、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定するか もしくは、
前記定盤との接触位置における前記ロボットの各軸関節角度と幾何学的パラメータ誤差から前記プローブ先端位置を計算し、プローブ先端位置の演算値と位置検出の真値からプローブ先端位置誤差を計算し、収束演算によって前記前記プローブ先端位置誤差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定するという手順を行うことを特徴とするロボットキャリブレーション方法。
【請求項12】
請求項1乃至10のいずれか1項に記載のキャリブレーション装置により、複数のロボット間のキャリブレーションを行うキャリブレーション装置であって、
各々のロボットの手先効果器に取り付けられた接触位置検出プローブを、互いに垂直な3平面で構成された定盤の平面に垂直な方向から押し込む動作を生成し、
該動作を実行し、前記定盤との接触位置における前記複数のロボットの各軸関節角度を記録して、各ロボットの接触位置を検出するという処理を所定回数繰り返すことによって、前記各ロボットに基づくロボット座標系の間の誤差を計算し、前記各ロボットに基づくロボット座標系の間の位置姿勢関係を同定することを特徴とするロボットキャリブレーション装置。
【請求項1】
先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション装置であって、
前記手先効果器に取り付けられる接触位置検出プローブと、
前記プローブに印加された外力を検出する外力検出器と、
前記ロボットに位置検出動作を行わせることで前記プローブと接触する定盤と、
前記プローブの先端部の位置を計算するプローブ先端位置計算部と、
前記外力検出器により検出された外力と前記プローブ先端位置計算部により計算された前記プローブの位置とを時系列的に記録する記録装置と、
前記プローブの接触状態が検出された場合、計算された前記プローブの位置に基づいて接触位置を導出する、接触位置検出部と、
前記ロボットに対し、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤に接触させる動作を行って前記プローブ先端位置の誤差を求めるプローブ先端位置一定動作誤差計算部と、
前記プローブ先端位置一定動作によって求めた誤差を用いて前記ロボットのキャリブレーション演算を行うロボットキャリブレーション演算部を有することを特徴とするロボットキャリブレーション装置。
【請求項2】
前記ロボットキャリブレーション装置は、
前記外力検出器の値を監視し、前記外力検出器の出力値が所定の閾値を超えた場合に接触検出と判断して前記ロボットの動作を減速停止させる外力監視部を備えることを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項3】
前記プローブの先端部は球形状をなし、
前記プローブ先端位置計算部は、順運動学によって求めた前記ロボットお手先位置に前記プローブの寸法を加えることにより前記球の中心位置を求め、
前記球の中心位置に、接触時の前記プローブのアプローチ方向に応じて前記球の半径を加算することでプローブ先端位置を計算することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項4】
前記プローブは、
前記手先効果器から取外し可能で、少なくとも前記手先効果器への取り付け位置から前記プローブの先端方向へ1自由度の弾性変形領域、または前記プローブの先端方向以外への2方向への曲げに対して弾性変形領域を持つことを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項5】
前記記録装置は、
前記位置検出動作中の前記外力検出器の出力値とプローブ先端位置とを所定周期毎に記録することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項6】
前記接触位置検出部は、
所定周期で記録された前記外力検出器の出力値に基づいて接触時点を求め、記録された該接触時点におけるプローブ先端位置から前記定盤との接触位置を特定することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項7】
前記定盤は、
互いに垂直な3平面で構成され、設置面との水平度を調整する調整用ネジを有することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項8】
前記プローブ先端位置一定動作誤差計算部は、
前記定盤平面に位置合わせした前記ロボットに前記プローブ先端位置一定動作を行わせる前記各関節の角度指令を複数生成し、
生成した前記プローブ先端の各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、
該動作を実行し、前記定盤との接触位置における前記ロボットの各関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより、
プローブ先端位置一定動作における誤差を計算することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項9】
前記キャリブレーション演算部は、
前記プローブ先端位置一定動作の誤差の測定値と、
前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差の演算値とから連立方程式を立式し、
前記連立方程式を解き、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項10】
前記キャリブレーション演算部は、
前記プローブ先端位置一定動作誤差計算部において得た前記定盤との接触位置における前記ロボットの各軸関節角度と幾何学的パラメータ誤差から前記プローブ先端位置を計算し、プローブ先端位置の演算値と位置検出の真値からプローブ先端位置誤差を計算し、
収束演算によって前記前記プローブ先端位置誤差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定することを特徴とする請求項1記載のロボットキャリブレーション装置。
【請求項11】
先端部に手先効果器を備え複数の関節を有するロボットのキャリブレーション方法であって、
前記手先効果器に取り付けられ弾性変形可能な接触位置検出プローブを、互いに垂直な3平面で構成された定盤のいずれかの平面に位置合わせし、その際のプローブの先端位置から、前記プローブの先端位置を一定に保ったまま姿勢を変化させるプローブ先端位置一定動作の指令を複数生成し、
生成した前記プローブの各姿勢を保ったままで前記プローブを前記定盤平面に垂直な方向から押し込む動作を生成し、該動作を実行し、前記定盤との接触位置における前記ロボットの各軸関節角度を記録して接触位置を検出するという処理を所定回数繰り返すことにより前記プローブ先端位置一定動作による誤差を測定し、プローブ先端位置一定動作の誤差の測定値と、
前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を考慮したプローブ先端位置誤差の演算値とから連立方程式を立式し、前記連立方程式を解き、前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定するか もしくは、
前記定盤との接触位置における前記ロボットの各軸関節角度と幾何学的パラメータ誤差から前記プローブ先端位置を計算し、プローブ先端位置の演算値と位置検出の真値からプローブ先端位置誤差を計算し、収束演算によって前記前記プローブ先端位置誤差を最小化する前記ロボットの各関節の原点誤差、関節のコンプライアンス、リンク間距離の誤差、リンク長誤差、作業ツールデータ誤差を同定するという手順を行うことを特徴とするロボットキャリブレーション方法。
【請求項12】
請求項1乃至10のいずれか1項に記載のキャリブレーション装置により、複数のロボット間のキャリブレーションを行うキャリブレーション装置であって、
各々のロボットの手先効果器に取り付けられた接触位置検出プローブを、互いに垂直な3平面で構成された定盤の平面に垂直な方向から押し込む動作を生成し、
該動作を実行し、前記定盤との接触位置における前記複数のロボットの各軸関節角度を記録して、各ロボットの接触位置を検出するという処理を所定回数繰り返すことによって、前記各ロボットに基づくロボット座標系の間の誤差を計算し、前記各ロボットに基づくロボット座標系の間の位置姿勢関係を同定することを特徴とするロボットキャリブレーション装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−230257(P2011−230257A)
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願番号】特願2010−104150(P2010−104150)
【出願日】平成22年4月28日(2010.4.28)
【出願人】(000006622)株式会社安川電機 (2,482)
【Fターム(参考)】
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願日】平成22年4月28日(2010.4.28)
【出願人】(000006622)株式会社安川電機 (2,482)
【Fターム(参考)】
[ Back to top ]