JP2011036956A - ロボットの精度調整方法およびロボット - Google Patents

ロボットの精度調整方法およびロボット Download PDF

Info

Publication number
JP2011036956A
JP2011036956A JP2009186589A JP2009186589A JP2011036956A JP 2011036956 A JP2011036956 A JP 2011036956A JP 2009186589 A JP2009186589 A JP 2009186589A JP 2009186589 A JP2009186589 A JP 2009186589A JP 2011036956 A JP2011036956 A JP 2011036956A
Authority
JP
Japan
Prior art keywords
angle
robot
link
posture
joint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009186589A
Other languages
English (en)
Other versions
JP5378908B2 (ja
Inventor
Hidenori Tanaka
英紀 田中
Tetsuya Kubota
哲也 久保田
Motonobu Sasaki
元延 佐々木
Shinji Kajiwara
慎司 梶原
Takashi Moriyama
尚 森山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Heavy Industries Ltd
Original Assignee
Kawasaki Heavy Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Heavy Industries Ltd filed Critical Kawasaki Heavy Industries Ltd
Priority to JP2009186589A priority Critical patent/JP5378908B2/ja
Publication of JP2011036956A publication Critical patent/JP2011036956A/ja
Application granted granted Critical
Publication of JP5378908B2 publication Critical patent/JP5378908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ロボットの精度をその設置場所で調整する。
【解決手段】エンコーダが出力した信号値と、予め用意された該信号値と関節角度との対応関係とに基づいて制御されるロボットに対し、直交座標系を第1軸がリンクの回転中心線と一致するように定義し、該座標系の原点から距離Dのロボットの部分に第2軸方向の位置変化量を検出するセンサを取り付け、リンクを第2軸を基準として任意の角度回転させ、その後エンコーダの信号値Eを取得する。リンクを一方側に角度β回転させ、続いてリンクを角度−2β回転させ、角度−2β回転の開始から終了までのセンサが検出した位置変化量ΔPを取得する。位置変化量ΔP、距離D、および角度βに基づいて、前記任意の角度の実際の角度αを算出し、角度αを関節角度θαに換算し、先に取得した信号値Eと関節角度θαとが対応関係になるように、前記信号値と関節角度との対応関係を修正する。
【選択図】図7

Description

本発明は、ロボットの位置・姿勢に関する精度を調整する精度調整方法および該方法を自動的に実行可能なロボットに関し、ロボットの制御技術分野に属する。
従来より、例えば、複数のリンクと、リンク間に設けられた関節と、一方のリンクに対して他方のリンクを関節中心に回転させるモータ(駆動源)と、一方のリンクと他方のリンクとの間の関節角度を検出するエンコーダ(関節角度検出手段)とを有するロボットが知られている。
このようなロボットを所望の位置・姿勢に制御するとき、エンコーダの値に基づいて、具体的にはエンコーダの値が所望の位置・姿勢(所望の関節角度)に対応する値になるように、モータが制御される。そのため、エンコーダ値と関節角度とが一定の対応関係に維持されている必要がある。例えば、ゼロの関節角度に対応するエンコーダ値が所定の一定値に維持されている必要がある。
ところが、現実には、エンコーダ値と関節角度との対応関係は、修理のためにロボットの構成部品(特にモータやエンコーダ)が交換されるなど、ロボットの状態が変わることによって変化することがある。例えば、ゼロの関節角度に対応するエンコーダ値が、ロボットの状態が変わることによって異なる値になることがある。
当然ながら、エンコーダ値と関節角度との対応関係が変わると、エンコーダ値に基づいて制御されるロボットは、要求された位置・姿勢と異なる位置・姿勢になる。すなわちロボットの位置・姿勢に関する精度が悪化する。
したがって、ロボットの位置・姿勢に関する精度を高く維持するためには、精度調整の一環として、ロボットの状態が変わる度に、または定期的に、エンコーダ値と関節角度との対応関係を新たに調べる必要がある。そして、ロボットの状態が変わった後は、調べたエンコーダ値と関節角度との対応関係に基づいてロボットを制御する必要がある。このような精度調整は、関節角度がゼロになるときのエンコーダ値を新たに調べる場合、零点調整と呼ばれることがある。
また、エンコーダ値と関節角度との対応関係が一定に維持されていることは当然として、ロボットを所望の位置・姿勢に高精度に制御するためには、ロボット固有の誤差、すなわちロボットの個体差を考慮する必要がある。同一仕様のロボットであっても、製造上のバラツキ、使用期間、使用環境などにより、同じように運転しても、その結果の位置・姿勢が異なることがある。具体的に言えば、同一仕様の複数のロボットを、それぞれのモータを同一の制御量で制御しても、または同一のプログラムで自動運転しても、各ロボットの位置・姿勢は異なることがある。
したがって、ロボットの位置・姿勢に関する精度を高く維持するためには、精度調整の一環として、定期的に、ロボットの個体差を求める必要がある。そして、求めた個体差を考慮してロボットを制御するようにする必要がある。例えば、このように個体差を考慮してロボットを制御するロボット制御装置が、例えば特許文献1に記載されている。
特開2006−159361号公報
当然ながら、上述のような精度調整を実行する場合、エンコーダなどの手段で間接的にではなく、角度ロボットの実際の位置・姿勢を直接的に測定する必要がある。
ロボットの実際の位置・姿勢は、例えば、三次元測定機を用いて測定される。三次元測定機は、例えば、ロボットの複数の所定箇所それぞれに1つずつマーカを取り付け、次に各マーカの空間的位置を測定し、その測定結果に基づいてロボットの位置・姿勢を算出する。マーカの位置の測定は、例えば異なる方向からマーカを撮影する複数のカメラの撮影画像に基づいて実行される。
ところが、このような三次元測定機などの測定機器によってロボットの実際の位置・姿勢を直接的に測定する場合、測定対象のロボットの周りに、該測定機器を設置するための大きなスペースを必要とする。例えば、上述の三次元測定機の場合、カメラとロボットとの間に大きなスペースを設ける必要がある。しかし、現実には、ロボットが実働する場所(例えば加工ライン)に大きなスペースを確保することは困難であることが多い。そのため、精度調整のためにロボットの実際の位置・姿勢を直接的に測定するためには、ロボットを加工ラインから広い場所(例えば三次元測定機の設置場所)に移動させる必要があった。
そこで、本発明は、従来では例えば加工ラインなどの設置場所からの移動が必要であったロボットの精度調整を、該設置場所から移動させることなく実行し、それにより位置・姿勢に関してロボットを高精度に制御できるようにすることを課題とする。
上述の課題を解決するために、本願の請求項1に記載の発明は、
第1および第2のリンクと、
リンク間に設けられた関節と、
第1のリンクに対して第2のリンクを関節中心に回転させる駆動源と、
第1のリンクと第2のリンクとの間の関節角度を検出して対応する信号値を出力する関節角度検出手段と、
関節角度検出手段が出力した信号値と、予め用意された該信号値と関節角度との対応関係とに基づいて関節角度を取得し、取得した関節角度に基づいて駆動源を制御する制御手段とを有するロボットに対し、
信号値と関節角度との対応関係が変化することによって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度調整するロボットの精度調整方法であって、
第1、第2、及び第3軸を有する直交座標系を該第1軸が第2のリンクの回転中心線と一致するように定義し、該直交座標系の第2軸−第3軸平面上であって且つ該直交座標系の原点から一定距離Dのロボットの部分に該第2軸方向の位置変化量を検出するセンサを取り付ける前準備工程と、
前準備工程後、第2のリンクを前記直交座標系の第2軸を基準として任意の角度回転させる第1工程と、
前記第1工程の終了後に関節角度検出手段の信号値Eを取得する第2工程と、
前記第1工程で任意の角度回転された第2のリンクを一方側に角度β回転させる第3工程と、
前記第3工程で一方側に角度β回転された第2のリンクを、他方側に角度β回転させる第4工程と、
前記第4工程の開始から終了までのセンサが検出した位置変化量ΔPを取得する第5工程と、
前記位置変化量ΔP、距離D、および角度β,βに基づいて、前記任意の角度の実際の角度αを算出する第6工程と、
前記第6工程で算出した角度αを関節角度θαに換算する第7工程と、
前記第2工程で取得した信号値Eと前記第7工程で算出した関節角度θαとが対応関係になるように、前記信号値と関節角度との対応関係を修正する第8工程とを含むことを特徴とする。
また、請求項2に記載の発明は、
請求項1に記載のロボットの精度調整方法において、
角度βは角度βの2倍の角度であって、
前記第6工程で算出される角度αは、前記位置変化量ΔP、距離D、および角度βによって数式1に示すように表現されることを特徴とする。
Figure 2011036956
さらに、請求項3に記載の発明は、
複数のリンクと、
リンク間に設けられた関節と、
一方のリンクに対して他方のリンクを移動させる駆動源とを有するロボットに対し、
ロボットの個体差によって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度を調整するロボットの精度調整方法であって、
位置・姿勢の精度に影響を与えうる要因を個体差パラメータとしてパラメータ化し、位置・姿勢変化量を検出するセンサをロボットに取り付ける前準備工程と、
前準備工程後、予め設定された駆動源に対する異なる複数の制御量毎に、一意的な位置・姿勢にされているロボットの駆動源を該制御量で制御する第1工程と、
前記第1工程において駆動源が各制御量で制御される度に、センサが検出した前記一意的な位置・姿勢からの実際の位置・姿勢変化量を取得する第2工程と、
前記第2工程で取得した複数の実際の位置・姿勢変化量に基づいて、個体差パラメータの実値を算出する第3工程とを含むことを特徴とする
加えて、請求項4に記載の発明は、
第1および第2のリンクと、
リンク間に設けられた関節と、
第1のリンクに対して第2のリンクを関節中心に回転させる駆動源と、
第1のリンクと第2のリンクとの間の関節角度を検出して対応する信号値を出力する関節角度検出手段と、
関節角度検出手段が出力した信号値と、予め用意された該信号値と関節角度との対応関係情報とに基づいて関節角度を取得し、取得した関節角度に基づいて駆動源を制御する制御手段とを有するロボットであって、
信号値と関節角度との対応関係が変化することによって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度調整する精度調整手段と、
第1、第2、及び第3軸を有し、該第1軸が第2のリンクの回転中心線と一致するように予め定義されている直交座標系と、
前記直交座標系の第2軸−第3軸平面上であって且つ該直交座標系の原点から一定距離Dのロボットの部分に取り付けられ、第2軸方向の位置変化量を検出するセンサとを有し、
前記精度調整手段は、
第2のリンクを、前記制御手段を介して前記直交座標系の第2軸を基準として任意の角度回転させる第1動作と、
前記第1動作後に関節角度検出手段の信号値Eを取得する第2動作と、
前記第1動作で任意の角度回転された第2のリンクを、前記制御手段を介して一方側に角度β回転させる第3動作と、
前記第3動作で一方側に角度β回転された第2のリンクを、前記制御手段を介して他方側に角度β回転させる第4動作と、
前記第4動作の開始から終了までのセンサが検出した位置変化量ΔPを取得する第5動作と、
前記位置変化量ΔP、距離D、および角度β,βに基づいて、前記任意の角度の実際の角度αを算出する第6動作と、
前記第6動作で算出した角度αを関節角度θαに換算する第7動作と、
前記第2動作で取得した信号値Eと前記第7動作で算出した関節角度θαとが対応関係になるように、前記対応関係情報を修正する第8動作とを実行することを特徴とする。
加えてまた、請求項5に記載の発明は、
請求項4に記載のロボットにおいて、
角度βは角度βの2倍の角度であって、
前記第6動作で算出される角度αは、前記位置変化量ΔP、距離D、および角度βによって数式2に示すように表現されることを特徴とする。
Figure 2011036956
さらに加えて、請求項6に記載の発明は、
複数のリンクと、
リンク間に設けられた関節と、
一方のリンクに対して他方のリンクを移動させる駆動源とを有するロボットであって、
ロボットの個体差によって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度を調整する精度調整手段と、
位置・姿勢の精度に影響を与えうる要因をパラメータ化したものである個体差パラメータと、
位置・姿勢変化量を検出するセンサとを有し、
前記精度調整手段は、
予め設定された駆動源に対する異なる複数の制御量毎に、一意的な位置・姿勢にされているロボットの駆動源を該制御量で制御する第1動作と、
前記第1動作において駆動源が各制御量で制御される度に、センサが検出した前記一意的な位置・姿勢からの実際の位置・姿勢変化量を取得する第2動作と、
前記第2動作において取得した複数の実際の位置・姿勢変化量に基づいて、個体差パラメータの実値を算出する第3動作とを実行することを特徴とする。
本発明によれば、ロボットをその設置場所から移動させることが必要な三次元測定機などの測定機器を使用することなく、代わりにロボットに取り付けられて位置変化量を検出することができるセンサを使用することにより、関節角度に対して精度調整をすることができる。これにより、関節角度検出手段の信号値と関節角度との対応関係を適切に維持することができ、該信号値から間接的に正しい(実際の)関節角度を得ることができる。その結果、位置・姿勢に関してロボットを高精度に制御することができる。
また、本発明によれば、ロボットをその設置場所から移動させることが必要な三次元測定機などの測定機器を使用することなく、代わりにロボットに取り付けられて位置・姿勢変化量を検出することができるセンサを使用することにより、ロボットの個体差を求めることができる。具体的には、位置・姿勢の精度に影響を与えうる要因をパラメータ化したものである個体差パラメータの実値を求めることができる。これにより、求めた個体差パラメータの実値に基づいて、ロボットを、個体差を考慮して制御することができる。その結果、位置・姿勢に関してロボットを高精度に制御することができる。
本発明の一実施形態に係るロボットの概略的な外観と、該ロボットのリンクモデルとを示す図である。 本発明に係るセンサが取り付けられているロボットのツール取り付け面を示す図である。 ロボットに定義されている複数の座標系を示す図である。 センサが検出する位置・姿勢変化量を説明するための図である。 ロボットの制御系を示す図である。 関節角度に関して精度調整する一例の作業の流れを示す図である。 関節角度に関する精度調整を説明するための図である。 一意的な位置・姿勢のロボットを示す図である。 目標位置・姿勢と、それに必要なモータ制御量と、その結果得られた位置・姿勢変化量とのテーブルである。 精度調整としてロボットの個体差を求める一例の作業の流れを示す図である。
図1は、本発明の一実施形態に係るロボットの一例を概略的に示すとともに(図1(A))、そのロボットのリンクモデルを示している(図1(B))。
図1に示すように、ロボット10は、多関節のアーム型ロボットであって、複数のリンクL0〜L6と、各リンク間に設けられた関節J1〜J6とを有する。6つの関節のうち、関節J1,J4,J6はねじり関節であって、関節J2,J3,J5は曲げ関節である。なお、ロボット10は、本発明に係るロボットの一例であって、本発明を限定するものではない。
ねじり関節は、連結している2つのリンクを1つの棒とみなすとその棒をねじるように、2つのリンクの連結方向に延びる回転中心線を中心にして(ねじれ方向に)一方のリンクに対して他方のリンクを回転させる関節である。
曲げ関節は、連結している2つのリンクを1つの棒とみなすとその棒を曲げるように、該関節を中心として(曲げ方向に)一方のリンクに対して他方のリンクを回転させる関節である。
図1(B)に示すように、リンクL0は、ロボット10の設置場所に対して不動にされている。
リンクL1は、関節J1を中心としてリンクL0に対してねじれ方向に回転する。以後、このリンクL0とリンクL1との間のねじれ方向の関節角度をθと表現する。
リンクL2は、関節J2を中心としてリンクL1に対して曲げ方向に回転する。以後、このリンクL1とリンクL2との間の曲げ方向の関節角度をθと表現する。
リンクL3は、関節J3を中心としてリンクL2に対して曲げ方向に回転する。以後、このリンクL2とリンクL3との間の曲げ方向の関節角度をθと表現する。
リンクL4は、関節J4を中心としてリンクL3に対してねじれ方向に回転する。以後、このリンクL3とリンクL4との間のねじれ方向の関節角度をθと表現する。
リンクL5は、関節J5を中心としてリンクL4に対して曲げ方向に回転する。以後、このリンクL4とリンクL5との間の曲げ方向の関節角度をθと表現する。
リンクL6は、関節J6を中心としてリンクL5に対してねじれ方向に回転する。以後、このリンクL5とリンクL6との間のねじれ方向の関節角度をθと表現する。
なお、本明細書では、図1に示すように、曲げ関節の関節角度θ,θ,θは2つのリンクが重なるときを基準(ゼロ)として定義しているが、本発明はこれに限らない。本発明に係る関節角度は、広義には、関節角度が決まると2つのリンクの相対的な位置関係が決まるものである。したがって、例えば、関節角度は、2つのリンクが一直線上にあるときを基準(ゼロ)とする定義であってもよい。
また、ロボット10は、その先端に溶接ガンやスプレーガンなどの作業ツールが取り付けられるツール取り付け面12を備え、本発明においては、図2に示すようにセンサSが取り付けられる。なお、センサSの詳細については後述する。
さらに、ロボット10には、図3に示すように、リンクL1〜L6やツール取り付け面12の位置・姿勢を特定するために、複数の直交座標系ΣB、ΣL1、ΣL2、ΣL3、ΣL4、ΣL5、ΣL6、およびΣtが定義されている。
座標系ΣBは、リンクL0に対して定義されている座標系であって、またロボット10の基準(ベース)座標系でもあって、鉛直方向に延びるZ軸を有する。ロボット10の各リンクL1〜L6やツール取り付け面12、該ツール取り付け面12に取り付けられるツール、およびロボット10の作業対象のワークは、通常、その位置・姿勢がこの座標系に基づいて表現される。
座標系ΣL1は、リンクL1に対して定義されている座標系であって、図1に示す関節J1の回転中心線に沿って且つリンクL1が延びる方向と一致するZ軸を有し、その原点Oが常に基準座標系ΣBにおける座標(0,0,D)の位置に存在する。また、座標系ΣL1は、基準座標系ΣをそのZ軸方向に距離D平行移動したものと等価である。この距離Dは、設計によって決まる値であって一定値である。
座標系ΣL2は、リンクL2に対して定義されている座標系であって、該リンクL2の延びる方向と一致するX軸と、図1に示す関節J2の回転中心線に沿ったZ軸(図面垂直方向の軸)をと有し、その原点Oが常に座標系ΣL1における座標(0,0,D)の位置に存在する。また、座標系ΣL2は、座標系ΣL1をそのZ軸方向に距離D平行移動し、その後Y軸中心に角度90度回転させたものと等価である。この距離Dは、設計によって決まる値であって一定値である。
座標系ΣL3は、リンクL3に対して定義されている座標系であって、該リンクL3の延びる方向と一致するX軸と、関節J3の回転中心線に沿ったZ軸(図面垂直方向の軸)とを有し、その原点Oが常に座標系ΣL2の原点Oから距離D離れた位置に存在する。また、座標系ΣL3は、座標系ΣL2をそのX軸方向に距離D平行移動したものと等価である。この距離Dは、設計によって決まる値であって一定値である。
座標系ΣL4は、リンクL4に対して定義されている座標系であって、関節J4の回転中心線に沿って且つリンクL4が延びる方向と一致するZ軸を有し、その原点Oが常に座標系ΣL3の原点Oから距離D離れた位置に存在する。また、座標系ΣL4は、座標系ΣL3をそのX軸方向に距離D平行移動し、その後Y軸中心に90度回転させたものと等価である。この距離Dは、設計によって決まる値であって一定値である。
座標系ΣL5は、リンクL5に対して定義されている座標系であって、該リンクL5の延びる方向と一致するX軸と、関節J5の回転中心線に沿ったZ軸(図面垂直方向の軸)を有し、その原点Oが常に座標系ΣL4の原点Oから距離D離れた位置に存在する。また、座標系ΣL5は、座標系ΣL4をそのZ軸方向に距離D平行移動し、その後Y軸中心に90度回転させたものと等価である。この距離Dは、設計によって決まる値であって一定値である。
座標系ΣL6は、リンクL6に対して定義されている座標系であって、関節J6の回転中心線に沿って且つリンクL5が延びる方向と一致するZ軸を有し、その原点Oが常に座標系ΣL5の原点Oから距離D離れた位置に存在する。また、座標系ΣL6は、座標系ΣL5をそのX軸方向に距離D平行移動し、その後Y軸中心に90度回転させたものと等価である。この距離Dは、設計によって決まる値であって一定値である。
座標系Σtは、ツール取り付け面12に対して定義されているツール座標系であって、図2にも示すようにツール取り付け面12と直交するZ軸を有し、その原点Oが常に座標系ΣL6における座標(0,0,D)の位置の該ツール取り付け面12上に存在する。また、ツール座標系Σtは、座標系ΣL6をそのZ軸方向に距離D平行移動したものと等価である。この距離Dは、設計によって決まる値であって一定値である。
これらのことからも明らかなように、座標系ΣL1〜ΣL6やツール座標系Σtは、基準座標系ΣBを平行移動し、少なくとも1つの座標軸(X軸、Y軸、Z軸)中心に回転させたものと等価である。
図2に示すように、ツール座標系Σtが定義されているツール取り付け面12には、本発明に係る精度調整を実施する場合、センサSが取り付けられる。センサSは、図2や図4に示すように、自身にセンサ座標系ΣSが定義されている。このセンサSは、例えばジャイロセンサであって、該センサS自身が移動されることによって生じるセンサ座標系ΣSの位置と姿勢の変化量を検出するように構成されている。例えば、図4に示すように、移動前の座標系ΣSから移動後の座標系ΣS’への位置・姿勢変化量を検出する。また、センサSは、検出した位置・姿勢変化量に対応する信号を出力するように構成されている。センサSから出力された信号は例えばモニタに入力され、該信号に対応する位置・姿勢変化量が該モニタに表示される。
なお、本明細書では、例えば、図4に示すように、移動後の座標系ΣS’が、移動前の座標系ΣSを、そのX軸方向に移動量Δxだけ平行移動し、Y軸方向に移動量Δyだけ平行移動し、Z軸方向に移動量Δzだけ平行移動し、X軸中心に角度ΔRX回転し、Y軸中心に角度ΔRY回転し、Z軸中心に角度ΔRZ回転させたものである場合、その変化量を[Δx,Δy,Δz,ΔRX,ΔRY,ΔRZ]の形で表現する。
また、センサSは、図2に示すように、そのセンサ座標系ΣSがツール座標系Σtにおける一定の位置(座標)に一定の姿勢で存在するように、ツール取り付け面12に取り付けられている。
具体的には、センサSは、ツール取り付け面12に位置決め状態で取り付けられている治具14によって支持されている。この治具14は、ツール取り付け面12に取り付けられるベース部14aと、該ベース部14aから延びる「Z」字形状のアーム部14bから構成され、該アーム部14bの先端にセンサSが取り付けられている。この治具14のアーム部14bは、センサ座標系ΣSの原点Oがツール座標系Σtにおける座標(−D,0,D)に存在するように構成されている。
さらにまた、ロボット10は、該ロボット10の制御系の構成の概略図である図5に示すように、関節J1〜J6を中心にしてリンクL1〜L6を回転させるモータM1〜M6と、間接角度を検出するエンコーダE1〜E6と、各エンコーダからの信号に基づいて各モータを制御する制御装置30を有する。
モータM1〜M6は、一方のリンクに対して他方のリンクを回転させる駆動源であって、モータM1はリンクL0に対してリンクL1をねじれ方向に回転させる。また、モータM2はリンクL1に対してリンクL2を曲げ方向に回転させ、モータM3はリンクL2に対してリンクL3を曲げ方向に回転させ、モータM4はリンクL3に対してリンクL4をねじれ方向に回転させ、モータM5はリンクL4に対してリンクL5を曲げ方向に回転させ、そしてモータM6はリンクL5に対してリンクL6をねじれ方向に回転させる。
エンコーダE1〜E6は、関節角度を検出する関節角度検出手段であって、エンコーダE1は関節角度θを検出する。また、エンコーダE2は関節角度θを検出し、エンコーダE3は関節角度θを検出し、エンコーダE4は関節角度θを検出し、エンコーダE5は関節角度θを検出し、そしてエンコーダE6は関節角度θを検出する。
また、エンコーダE1〜E6それぞれは、検出した関節角度に対応する値の信号を制御装置30に出力するように構成されている。
制御装置30は、複数のエンコーダE1〜E6それぞれから出力された信号値を取得するエンコーダ値取得部32と、エンコーダ値取得部32が取得した信号値に基づいてロボットの位置・姿勢を算出する位置・姿勢算出部34と、複数のモータM1〜M6を制御するモータ制御部36と、ロボット10を自動運転するプログラムやロボット10の制御に必要なデータなどを記憶する記憶部38とを有する。また、制御装置30は、インターフェースとして、ユーザがロボット10をマニュアル操作するためのティーチペンダント40を有する。
エンコーダ値取得部32は、複数のエンコーダE1〜E6それぞれから出力された信号値を取得するように構成されている。
位置・姿勢算出部34は、エンコーダ値取得部32が取得した信号値と、予め用意された該信号値と関節角度との対応関係に基づいて、リンクL1〜L6の位置・姿勢、すなわちロボット10の位置・姿勢を算出するように構成されている。
具体的には、予め、エンコーダE1〜E6それぞれが出力する信号値と関節角度θ〜θとの対応関係を示す情報が対応関係データとして、また、ロボット10の構成を示す情報(例えば、図3に示す距離D〜D)が構成データとして、記憶部38に記憶されている。
位置・姿勢算出部34は、エンコーダ値取得部32が5つのエンコーダE1〜E6から信号値を取得すると、記憶部38に記憶されている対応関係データを参照して、該データから取得した信号値と対応する関節角度θ〜θを抽出する。そして、位置・姿勢算出部34は、抽出した関節角度θ〜θと、記憶部38に記憶されている構成データと、図3に示す複数の座標系とに基づいて、基準座標系ΣBにおける、リンクL1〜L6それぞれの位置・姿勢と、ツール取り付け面12の位置・姿勢とを算出する。すなわちロボット10の位置・姿勢を算出する。
モータ制御部36は、ロボット10を要求された位置・姿勢にするために必要な制御量で複数のモータM1〜M6を制御するように構成されている。
具体的には、ユーザからティーチペンダント40を介して、または記憶部38に記憶されているプログラムから新たな位置・姿勢が要求されると、制御装置30は、現在の位置・姿勢から要求された新たな位置・姿勢にするために必要な6つのモータM1〜M6の制御量を算出する。その算出した制御量に基づいて、モータ制御部36は、6つのモータM1〜M6を制御する。
記憶部38は、上述した対応関係データや構成データなどのデータを保持するものであって、該データを更新可能(書き換え可能)に保持できるRAMやHDなどで構成されている。
ティーチペンダント40は、ユーザが、ロボット10をマニュアル操作したり、制御装置30に対して制御値を入力するためのコントローラであって、特にティーチングを目的として使用される。
ティーチング(モード)は、簡単に説明すると、ロボットに所望の連続動作を覚えさせる、すなわち所望の連続動作でロボット10を自動運転させるプログラムを直感的に作成するためのものである。ティーチングモードにおいて、ユーザがティーチペンダント40を介してロボット10を所望の連続動作に操作すると、制御装置30は、その操作によるロボット10の動きによって変化するエンコーダの信号値に基づいて位置・姿勢の変化を算出し、算出した位置・姿勢の変化に基づいて、所望の連続動作でロボットを自動運転させるプログラムを自動的に作成する。
以上、ここまでは、一例のロボット10の構成や動作原理について説明してきた。ここからは、ロボット10を位置・姿勢に関して高精度に制御するために必要な、本発明に係る精度調整について詳細に説明する。
上述したように、エンコーダの現在の信号値から間接的に対応する現在の関節角度を知ることができる。これは、エンコーダの信号値と関節角度との一定の対応関係が維持されていることによる。
ところが、一定に維持されているはずのエンコーダの信号値と関節角度との対応関係が、ロボットの構成部品(特にエンコーダやモータ)が交換されるなどによって変化することがある(上述のロボット10の場合、記憶部38に記憶されている対応関係データが示す対応関係と異なった関係に変化することがある)。例えば、ゼロの関節角度に対応するエンコーダの信号値が、ロボットの状態が変わることによって異なる値になることがある。
当然ながら、エンコーダの信号値と関節角度との対応関係が変わると、エンコーダの信号値に基づいて制御されるロボットは、要求された位置・姿勢と異なる位置・姿勢になる。すなわちロボットの位置・姿勢に関する精度が悪化する。
したがって、ロボットの位置・姿勢に関する精度を維持するためには、精度調整の一環として、ロボットの状態が変わる度に、または定期的に、エンコーダの信号値と関節角度との対応関係を新たに調べる必要がある。
図1に示す一例のロボット10においては、関節角度θ〜θを検出するエンコーダE1〜E6が精度調整対象である。各エンコーダに対して実施される精度調整(対応関係を新たに調べること)の内容は同じである。
図6は本発明に係る精度調整の一例の作業の流れを示している。図7は、エンコーダEn(nは、1,2,3,4,5,6のいずれか)に対する精度調整を説明するための図である。
図7に示す距離Dは、関節Jn(リンクLn)(nは、1,2,3,4,5,6のいずれか)の回転中心線からセンサS(センサ座標系ΣSの原点O)までの該回転中心線と直交する平面上の距離を示している。この距離Dは、図2や図3に示す距離D〜Dと、関節角度θ〜θとに基づいて幾何学的に算出することができる。例えば、関節J6の場合、距離Dは、図2の距離Dに該当する。また、例えば、関節J3(リンクL3)の場合、距離Dは、距離D〜Dと関節角度θ〜θに基づいて算出することができる。
なお、この距離Dについて補足すると、精度調整は、センサSに近いエンコーダから実施する、すなわちE6,E5,E4,E3,E2,E1の順に実施するべきである。理由は、例えば、エンコーダE4を精度調整するときに距離Dを求めるにあたり、関節角度θ,θの正確な値が必要であるからである、すなわちエンコーダE5,E6の精度調整が完了している必要があるからである。
また、図7に示すX−Y−Z座標系(Z軸は図面垂直方向)は、エンコーダEnの精度調整のために任意に定義された座標系であって、Z軸が関節Jn(リンクLn)の回転中心線と一致するように定義される。また、この座標系は、リンクL1〜L6それぞれに定義されている座標系ΣL1〜ΣL6と異なり、すなわちリンクとともに回転する座標系と異なり、不動に定義される。
まず、図6に示すように、精度調整の最初の工程として(ステップS100において)、図7に示すように、任意のX−Y−Z座標系を、そのZ軸がリンクLnの回転中心線と一致するように定義する。
次に、ステップS110において、図2に示すように、センサSをロボット10のツール取り付け面12に取り付ける。
次に、ステップS120において、ティーチペンダント40を介して、図7に示すように、リンクLnがステップS110で定義した任意のX−Y−Z座標系のX軸を基準として任意の角度になるように、その結果としてセンサSが任意の位置Pに位置するように、該リンクLnを移動させる。
続いて、ステップS130において、リンクLnがX軸を基準として任意角度であるときの(センサSが任意位置Pに位置するときの)エンコーダEnの信号値Eを取得する。
ステップS140において、図7に示すように、リンクLnを角度+βだけ(正方向に角度βの回転量で)回転させる。その結果として、センサSは位置Pに移動する。このステップは、ステップS110とは異なりマニュアル操作ではなく、例えばユーザがティーチペンダント40を操作して回転量として角度+βを制御装置30に入力し、その入力に基づいて制御装置30がリンクLnを回転させるモータMnを制御することにより実行される。
なお、補足すると、例えば角度+βなどの所望の回転量は、該回転量でリンクが回転する前のエンコーダの信号値と、その回転後の信号値との差が、該回転量に対応する差になるようにモータを制御することにより正確に実現される。または、モータがパルスモータの場合、入力パルス信号のパルス数を所望の回転量と対応する数にすることによって実現される。したがって、エンコーダの信号値と関節角度との対応関係が変化していても影響はなく、所望の回転量でのリンクの回転は正確に実行することができる。
ステップS150において、ステップS140と同じやり方で、図7に示すように、リンクLnを角度−2βだけ(負方向に角度2βの回転量で)回転させる。その結果として、センサSは位置Pに移動する。
ステップS160において、センサSが位置Pから位置Pまで移動したときの該センサSが検出した位置変化量を取得する。具体的には、センサSが検出した位置変化量をステップS100で定義した任意のX−Y−Z座標系換算し、その座標系におけるX軸方向の位置変化量ΔxSAを取得する。
ステップS170において、ステップS160で取得した位置変化量ΔxSAに基づいて、センサSが任意位置Pに位置したときのリンクLnのX軸を基準とする任意の角度の実際の角度を算出する。
具体的に説明する。まず、図7に示すように、センサSが任意位置Pに位置するときのリンクLnの実際のX軸を基準とする角度をαとする。
この角度α、距離D、および角度βを用いると、センサSが位置PからPに移動したときのX軸方向の数学的な位置変化量Δxは、数3に示す数式3の形に表現することができる。数式3において未知数はΔxとαである。
Figure 2011036956
軸方向の数学的な位置変化量Δxは、その実値がステップS160でセンサSからΔxSAとして取得されているので、数式3のΔxにこれを代入する。そして、式変形すると、角度αは、数4に示す数式4の形に表現される。
Figure 2011036956
これにより、ステップS110でセンサSを任意位置Pに位置させたときの、すなわちリンクLnをX軸を基準として任意の角度にしたときの実際の該X軸を基準とする角度αが算出される。
なお、実際の角度αを算出するにあたり、上述ではX軸方向の位置変化量を用いているが、Y軸方向の位置変化量であってもよい。その場合の角度αは数5に示す数式5の形に表現される。数式5において、ΔySAは、センサSが検出した位置変化量をステップS100で定義した任意のX−Y−Z座標系換算したもので、該任意のX−Y−Z座標系におけるY軸方向の位置変化量である。
Figure 2011036956
また、X軸方向の位置変化量とY軸方向の位置変化量の両方を用いて、すなわち数式4と数式5とを用いて角度αを算出してもよい。このとき、数式4と数式5とから同一値の角度αが算出されれば、算出した角度αの正しさが保証される。
図6に戻り、ステップS180において、ステップS170で算出した角度αを、リンクLnとリンクLn−1との間の関節角度θαに換算する。これは、角度αが、ステップS100で定義された任意のX−Y−Z座標系のX軸を基準とするリンクLnの角度であって、ロボット10の関節角度と異なるためである。
例えば、図1や図3に示すようにリンクLnとLn−1が重なるときに角度がゼロになるように関節角度が定義され、図7に示す任意のX−Y−Z座標系のX軸(正の値側)がリンクLn−1と重なるように該任意のX−Y−Z座標系が定義された場合は、角度αの値をそのまま関節角度の値として使用することができる。
これと異なり、例えば、図7に示す任意の座標系のX軸(負の値側)がリンクLn−1と重なるように該任意の座標系が定義された場合は、角度αに180°を足した値が、関節角度の値となる。
図6に戻り、ステップS190において、ステップS130で取得したエンコーダEnの信号値EとステップS180で算出した関節角度θαとが対応関係になるように、記憶部38に記憶されている対応関係データを修正する。そして、エンコーダEnに対する精度調整を終了する。
このような精度調整を実施することにより、以後、エンコーダEnの信号値から、間接的に正しい(実際の)関節角度θを得ることができる。
なお、精度調整対象のエンコーダEnとセンサSとの間に関節が存在する場合、精度調整中は、該関節が不動にすなわち対応するモータが不動にされる。これは、精度調整対象のエンコーダEnとセンサSとの間の関節(モータ)が動くと、図7に示す回転中心線からセンサSまでの距離Dが変化し、精度調整を正常に実施できないからである。
次に、精度調整の一環として、本発明に係るロボットの個体差を求める方法について説明する。
まず、前提となる個体差の概念から説明する。
ロボットは、所望な位置・姿勢に対応する制御量でモータを制御しても、その個体差を原因として、本来あるべき位置・姿勢からずれた位置・姿勢になることがある(誤差が生じることがある)。ここで言う「本来あるべき位置・姿勢」とは、モータの制御量から数学的に算出される、個体差のないロボットにおける理想的な位置・姿勢を言う。
この対処として、モータ制御量が、モータ制御後にロボットが所望の位置・姿勢になるように、個体差に基づいて補正される。そして、補正後の制御量でモータを制御することにより、ロボットは所望の位置・姿勢にされる。
この個体差は、パラメータ化(変数化)され、予め定義されている。具体的に言えば、個体差パラメータは、個体毎に実値が異なりうる且つ位置・姿勢の精度に影響を与えうる要因をパラメータ化して得られたものである。
個体差パラメータの一例を挙げると、図3に示すロボット10の距離D〜Dは、現実には製造上のバラツキなどを原因にしてロボット毎にわずかに異なる。例えば、個体差パラメータγ〜γが定義されており、距離D〜Dは、この個体差パラメータと設計図面上(理論上)の距離D1T〜D6Tとを用いて、数6に示す数式6で表現される。
Figure 2011036956
なお、当然ながら、これ以外にも、位置・姿勢の精度に影響を与えうる要因であって個体差パラメータを定義することができるものがあり、例えば、リンクの重量、モータからリンクにトルクを伝達するギヤなどの伝達手段の伝達効率などがある。
本発明に係るロボットの個体差を求める方法では、このような個体差パラメータの実値を算出する。
ロボット10の個体差を求める(個体差パラメータの実値を求める)にあたり、まず、図8に示すように、該ロボット10を一意的な位置・姿勢にする、言い換えると、センサSを基準座標系ΣBにおいて一意的な位置・姿勢にする治具50が使用される。
なお、ここで言うロボット10の一意的な位置・姿勢とは、該一意的な位置・姿勢をとるにあたってリンクL1〜L6やツール取り付け面12の位置・姿勢が1つしかとりえない位置・姿勢を言い、センサSがツール取り付け面12に取り付けられている場合は、そのセンサ座標系ΣSが基準座標系ΣBにおいて1つの位置に1つの姿勢で存在する状態を言う。
この治具50は、ロボット10の基準座標系ΣBにおける一定位置に配置され、例えばロボット10のツール取り付け面12と係合し、センサSの基準系ΣBおける位置・姿勢を[xe,ye,ze,RXe,RYe,RZe]にセットする。
また、センサSは一意的な位置・姿勢から予め目標として決められた異なる複数の位置・姿勢に制御される。
具体的には、図9に示すように、各目標位置・姿勢Ptn毎に、一意的な位置・姿勢から該目標位置・姿勢にセンサSを移動させるモータM1〜M6それぞれの制御量が予め決められている。例えば、図9に示すように、目標位置・姿勢Pt1の場合、モータM1は制御量C11で制御され、モータM2は制御量C21、モータM3は制御量C31、モータM4は制御量C41、モータM5は制御量C51、モータM6は制御量C61で制御される。
さらに、センサSが一意的な位置・姿勢から各目標位置・姿勢Ptnに移動される度に、該センサSが検出した該センサSの位置・姿勢変化量ΔPSnが取得される。そして、取得されたセンサSの位置・姿勢変化量ΔPSnは基準座標系ΣBに換算される。基準座標系ΣBに換算した後のセンサSの位置・変化量ΔPSBnは、図9に示すように、対応する目標位置・姿勢Ptn(モータM1〜M6の制御量Cmn)に対応付けされて、例えば記憶部38にデータとして記憶される。
一意的な位置・姿勢から各目標位置・姿勢PtnにセンサSが移動される度に、該センサSの実際の位置・姿勢変化量(基準座標系ΣB換算)ΔPSBnを取得すると、図9に示すように、目標位置・姿勢PtnとセンサSの実際の位置・姿勢変化量ΔPSBnとの組み合わせが、複数(n組)作成される。
ここで、センサSの一意的な位置・姿勢からの位置・姿勢変化量が個体差パラメータやモータ制御量などから数学的に算出可能であることから、センサSの位置・姿勢変化量を個体差パラメータを変数とする関数であると考える。
例えば、ロボット10の場合、一意的な位置・姿勢から目標位置・姿勢PtnまでのセンサSの数学的な位置・姿勢変化量ΔPBn(基準座標系ΣB基準)は、図2や図3に示す距離D〜Dや関節角度θ〜θなどから算出することができる。このうち距離D〜Dは、上述の数式6に示すように個体差パラメータγ〜γと設計図面上(理論上)の距離D1T〜D6Tとからなる値である。また、関節角度θ〜θは、モータ制御量C1n〜C6nによって決まる値である。さらに、このモータ制御量C1n〜C6nは予め定義されている。したがって、数学的なセンサSの位置・姿勢変化量ΔPBnは、数7の数式7に示すように、個体差パラメータγ〜γを変数とする関数とみなすことができる。
Figure 2011036956
この数式7に示すΔPBnにセンサSが検出した実値のΔPSBnを代入すれば、個体差パラメータγ〜γを未知数とする6n個の連立方程式を作成することができる(「6」は、位置・姿勢変化量が、図9に示すように、Δx,Δy,Δz,ΔRX,ΔRY,ΔRZの6つのパラメータで示されることによる)。そして、連立方程式を解けば、その解として個体差パラメータγ〜γの実値を得ることができる。
まとめると、まず、前準備として、一意的な位置・姿勢から目標位置・姿勢PtnまでのセンサSの位置・姿勢変化量を複数の個体差パラメータを変数とする関数とみなし、目標位置・姿勢Ptn毎に該関数を予め用意する。目標位置・姿勢Ptn毎に、センサSが検出した実際の位置・姿勢変化量を対応する関数に代入して複数の個体差パラメータを未知数とする6個の連立方程式を作成する。このように作成された、目標位置・姿勢Ptnの数の6倍個の連立方程式を解くことにより、複数の個体差パラメータを算出する。
これにより、ロボット10の個体差パラメータの実値を算出することができる。
ここからは、個体差パラメータを求める、本発明に係る精度調整の一例の作業の流れを、図10を参照しながら説明する。
まず、ステップS300において、図8に示すように、治具50によってセンサSを一意的な位置・姿勢にセットする。
ステップS310において、図9に示すように、モータM1〜M6それぞれを目標位置・姿勢Ptnに対応する所定制御量で制御する。
ステップS320において、ステップS310でモータM1〜M6それぞれを所定制御量で制御することによってセンサSが検出した位置・姿勢変化量ΔPSnを取得する。
ステップS330において、ステップS320で取得した位置・姿勢変化量ΔPSnを、基準座標系ΣBに換算する(位置変化量ΔPSBnを取得する)。
ステップS340において、ステップS330で取得した位置変化量ΔPSBnを、図9に示すように、目標位置・姿勢Ptnと対応付けして、例えば制御装置30の記憶部38に記憶する。
ステップS350において、一意的な位置・姿勢から複数の目標位置・姿勢PtnにセンサSが移動したか否かが判定される。複数の目標位置・姿勢PtnにセンサSが移動した場合はステップS360に進み、そうでない場合はステップS390に進む。
ステップS360において、一意的な位置・姿勢から複数の目標位置・姿勢PtnそれぞれにセンサSが移動したことによって得た複数の位置・姿勢変化量ΔPSBnを用い、個体差パラメータを未知数とする連立方程式を作成する。
ステップS370において、ステップS360で作成した連立方程式を解いて、個体差パラメータの実値を算出する。
ステップS380において、ステップS370で算出された個体差パラメータの実値を、例えば制御装置30の記憶部38に記憶する。そして、精度調整を終了する。
一方、ステップS350で複数の目標位置・姿勢PtnにセンサSが移動していないと判定した場合、次の目標位置・姿勢Ptnに変更してスタートに戻る。
以上のような本実施形態によれば、ロボット10をその設置場所から移動させることが必要な三次元測定機などの測定機器を使用することなく、代わりにロボット10に取り付けられて位置変化量を検出することができるセンサSを使用することにより、関節角度θ〜θに対して精度調整をすることができる。これにより、エンコーダE1〜E6の信号値と関節角度θ〜θとの対応関係を適切に維持することができ、該信号値から間接的に正しい(実際の)関節角度θ〜θを得ることができる。その結果、位置・姿勢に関してロボット10を高精度に制御することができる。
また、本実施形態によれば、ロボット10をその設置場所から移動させることが必要な三次元測定機などの測定機器を使用することなく、代わりにロボット10に取り付けられて位置・姿勢変化量を検出することができるセンサSを使用することにより、ロボット10の個体差を求めることができる。具体的には、位置・姿勢の精度に影響を与えうる要因をパラメータ化したものである個体差パラメータの実値を求めることができる。これにより、求めた個体差パラメータの実値に基づいて、ロボット10を、個体差を考慮して制御することができる。その結果、位置・姿勢に関してロボット10を高精度に制御することができる。
以上、上述の実施形態を挙げて本発明を説明したが、本発明はこれに限定されない。
例えば、上述の実施形態の場合、精度調整の一環として個体差が求められる対象のロボット10は、ねじり関節と曲げ関節とを有するロボットであったが、本発明はこれに限らない。個体差を求める対象のロボットは、例えば、一方のリンクに対して他方のリンクが駆動源によって平行移動する並進関節、例えば一方のリンクの延びる方向に他方のリンクが進退する関節を有してもよい。
また、上述の実施形態は、関節角度の精度調整において、図6のステップS150や図7に示すように、角度+β回転された後のリンクLnを角度−2β回転させているが、本発明はこれに限らない。広義には、角度+β回転させた後のリンクLnの回転角度は、図7に示すような任意の角度の実際の角度αが算出できればよい。ただし、−2βでない場合、数式4や数式5に比べて、位置・姿勢変化量を求める式が複雑になり、計算に時間がかかる可能性がある。
さらに、上述の実施形態の場合、位置・姿勢を、直交座標系のX軸、Y軸、Z軸それぞれを中心とする回転の角度RX,RY,RZにより表現しているが、これに限らず、オイラー角により表現してもよい。例えば、位置・姿勢を(x,y,z,O,A,T)と表現してもよい。例えば、OはZ軸を中心とする回転角、AはZ軸を中心として回転角O回転した後のX軸の回転角、TはX軸を中心として回転角A回転した後のZ軸の回転角を示している。
さらにまた、上述の実施形態の場合、ロボットの固体差を求めるにあたり、該ロボット(センサ)が治具を用いて一意的な位置・姿勢にされるが、本発明はこれに限らない。
例えば、一方のリンクに対して他方のリンクが無制限に回転するような関節を有していない、すなわち関節に可動域が存在するロボットの場合、治具を用いることなく、一意的な位置・姿勢にすることができる。このような可動域が存在する関節には、一方のリンクに対して他方のリンクが所定の関節角度以上に回転しないように、他方のリンクの回転を機械的に止めるストッパが設けられていることがある。したがって、全ての関節においてストッパと当接する可動域の限界までリンクを回転させると、ロボットを一意的な位置・姿勢にすることができる。
加えて、上述の実施形態は、センサはツール取り付け面に取り付けられるが、本発明はこれに限らない。例えば、ロボットの所定の部分に一体的に組み込んでもよい。この場合、センサをロボットから取り外す必要がなくなる。
加えてまた、上述の実施形態の場合、精度調整に関して、ユーザが関与する機会が多い。これは、位置・姿勢変化量を検出するセンサSが、ロボット10と独立し、これらの間のやり取りをユーザがしているからである。
これに代わり、ユーザが関わる作業を極力減らし、精度調整を自動的に実行できるようにロボットを構成してもよい。
例えば、まず、センサの出力信号がロボットの制御装置に入力されるようにこれらを構成する。そして、制御装置を、センサからの信号に基づいて該センサの位置・姿勢変化量を取得するように構成する。
関節角度(エンコーダ)に関する精度調整においては、ロボットの関節(リンク)毎に、図7に示す、また図6のステップS100で定義した任意のX−Y−Z座標系のような精度調整用の直交座標系を、例えば設計段階で予め定義しておく。
また、リンク毎に、図6のステップS120の任意の角度のような、予め定義した精度調整用の直交座標系の一軸(関節の回転中心線と一致する軸を除いた軸、図7のX軸に対応)を基準とする任意の角度(最終的に実値が求められる)を予め定義しておく。
さらに、リンク毎に、任意の角度の該リンクを回転させるときの第1の所定角度(図7の+βに対応)と、第1の所定角度で回転された該リンクを回転させるときの第2の所定角度(図7の−2βに対応)とを予め定義しておく。
さらにまた、リンクの回転中心線からセンサまでの距離(図7のDsに対応)を予め算出しておく。加えて、エンコーダを精度調整するときの該エンコーダからセンサまでの間の関節角度を決めておく(対応するリンクの回転中心線からセンサまでの距離を一定にするため)。
なお、任意の角度、第1および第2の所定角度は、例えば上述のようなティーチペンダントを介してユーザによって設定可能にしてもよい。それにより、精度調整中にロボットが周りの構造物と接触しないように、ユーザが任意の角度、第1および第2の所定角度を設定することができる。
加えてまた、例えばユーザがティーチングペンダントの関節角度調整ボタンを押すことなどにより、図6に示すステップS120〜S190と同様に、リンクを任意の角度回転し、次にリンクが任意の角度のときのエンコーダの信号値を取得し、続いて任意の角度のリンクを第1の所定角度回転し、その後第2の所定角度回転し、リンクが第2の所定角度回転したときにセンサが検出した精度調整用直交座標系の一軸方向の位置変化量を取得し、取得した位置変化量に基づいて任意の角度の実際の角度を算出し、算出した実際の角度を関節角度に換算し、換算した関節角度と取得したエンコーダの信号値が対応関係になるように記憶部に記憶されている対応関係データを修正するように、そしてこれらをセンサに近いリンク(エンコーダ)から順番に実行するようにロボットの制御装置を構成する。
一方、ロボットの個体差に関する精度調整においては、図8に示すように、ロボットを一意的な位置・姿勢にセットする治具を予め該ロボットに組み付けておく。
また、図9に示すように、複数の目標位置・姿勢、すなわち対応するモータの所定制御量を予め定義しておく。
さらに、例えばユーザがティーチングペンダントの個体差パラメータ導出ボタンを押すことなどにより、図10に示すステップS300〜390と同様に、治具を介してロボットを一意的な位置・姿勢にし、モータを所定制御量で制御し、モータを所定制御量で制御したときにセンサが検出した該センサの位置・姿勢変化量を取得し、取得した位置・姿勢変化量を基準座標系換算し、その換算後の座標系を対応する目標位置・姿勢と対応付けして記憶部に記憶し、そしてこれらを複数の目標位置・姿勢それぞれについて実行するようにロボットの制御装置を構成する。
さらにまた、複数の目標位置・姿勢それぞれに対応付けされて記憶されているセンサの位置・姿勢変化量を用いて個体差パラメータを未知数とする連立方程式を作成し、その連立方程式を解いて個体差パラメータの実値を算出し、算出した実値を記憶部に記憶するようにロボットの制御装置を構成する。
これらにより、精度調整の一環である、関節角度の精度調整や個体差パラメータの実値の算出が自動的に実行される。
距離
エンコーダ信号値
ΔP 位置変化量
θ 関節角度(変数)
α、β 関節角度(実値)

Claims (6)

  1. 第1および第2のリンクと、
    リンク間に設けられた関節と、
    第1のリンクに対して第2のリンクを関節中心に回転させる駆動源と、
    第1のリンクと第2のリンクとの間の関節角度を検出して対応する信号値を出力する関節角度検出手段と、
    関節角度検出手段が出力した信号値と、予め用意された該信号値と関節角度との対応関係とに基づいて関節角度を取得し、取得した関節角度に基づいて駆動源を制御する制御手段とを有するロボットに対し、
    信号値と関節角度との対応関係が変化することによって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度調整するロボットの精度調整方法であって、
    第1、第2、及び第3軸を有する直交座標系を該第1軸が第2のリンクの回転中心線と一致するように定義し、該直交座標系の第2軸−第3軸平面上であって且つ該直交座標系の原点から一定距離Dのロボットの部分に該第2軸方向の位置変化量を検出するセンサを取り付ける前準備工程と、
    前準備工程後、第2のリンクを前記直交座標系の第2軸を基準として任意の角度回転させる第1工程と、
    前記第1工程の終了後に関節角度検出手段の信号値Eを取得する第2工程と、
    前記第1工程で任意の角度回転された第2のリンクを一方側に角度β回転させる第3工程と、
    前記第3工程で一方側に角度β回転された第2のリンクを、他方側に角度β回転させる第4工程と、
    前記第4工程の開始から終了までのセンサが検出した位置変化量ΔPを取得する第5工程と、
    前記位置変化量ΔP、距離D、および角度β,βに基づいて、前記任意の角度の実際の角度αを算出する第6工程と、
    前記第6工程で算出した角度αを関節角度θαに換算する第7工程と、
    前記第2工程で取得した信号値Eと前記第7工程で算出した関節角度θαとが対応関係になるように、前記信号値と関節角度との対応関係を修正する第8工程とを含むことを特徴とするロボットの精度調整方法。
  2. 請求項1に記載のロボットの精度調整方法において、
    角度βは角度βの2倍の角度であって、
    前記第6工程で算出される角度αは、前記位置変化量ΔP、距離D、および角度βによって数式1に示すように表現されることを特徴とするロボットの精度調整方法。
    Figure 2011036956
  3. 複数のリンクと、
    リンク間に設けられた関節と、
    一方のリンクに対して他方のリンクを移動させる駆動源とを有するロボットに対し、
    ロボットの個体差によって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度を調整するロボットの精度調整方法であって、
    位置・姿勢の精度に影響を与えうる要因を個体差パラメータとしてパラメータ化し、位置・姿勢変化量を検出するセンサをロボットに取り付ける前準備工程と、
    前準備工程後、予め設定された駆動源に対する異なる複数の制御量毎に、一意的な位置・姿勢にされているロボットの駆動源を該制御量で制御する第1工程と、
    前記第1工程において駆動源が各制御量で制御される度に、センサが検出した前記一意的な位置・姿勢からの実際の位置・姿勢変化量を取得する第2工程と、
    前記第2工程で取得した複数の実際の位置・姿勢変化量に基づいて、個体差パラメータの実値を算出する第3工程とを含むことを特徴とするロボットの精度調整方法。
  4. 第1および第2のリンクと、
    リンク間に設けられた関節と、
    第1のリンクに対して第2のリンクを関節中心に回転させる駆動源と、
    第1のリンクと第2のリンクとの間の関節角度を検出して対応する信号値を出力する関節角度検出手段と、
    関節角度検出手段が出力した信号値と、予め用意された該信号値と関節角度との対応関係情報とに基づいて関節角度を取得し、取得した関節角度に基づいて駆動源を制御する制御手段とを有するロボットであって、
    信号値と関節角度との対応関係が変化することによって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度調整する精度調整手段と、
    第1、第2、及び第3軸を有し、該第1軸が第2のリンクの回転中心線と一致するように予め定義されている直交座標系と、
    前記直交座標系の第2軸−第3軸平面上であって且つ該直交座標系の原点から一定距離Dのロボットの部分に取り付けられ、第2軸方向の位置変化量を検出するセンサとを有し、
    前記精度調整手段は、
    第2のリンクを、前記制御手段を介して前記直交座標系の第2軸を基準として任意の角度回転させる第1動作と、
    前記第1動作後に関節角度検出手段の信号値Eを取得する第2動作と、
    前記第1動作で任意の角度回転された第2のリンクを、前記制御手段を介して一方側に角度β回転させる第3動作と、
    前記第3動作で一方側に角度β回転された第2のリンクを、前記制御手段を介して他方側に角度β回転させる第4動作と、
    前記第4動作の開始から終了までのセンサが検出した位置変化量ΔPを取得する第5動作と、
    前記位置変化量ΔP、距離D、および角度β,βに基づいて、前記任意の角度の実際の角度αを算出する第6動作と、
    前記第6動作で算出した角度αを関節角度θαに換算する第7動作と、
    前記第2動作で取得した信号値Eと前記第7動作で算出した関節角度θαとが対応関係になるように、前記対応関係情報を修正する第8動作とを実行することを特徴とするロボット。
  5. 請求項4に記載のロボットにおいて、
    角度βは角度βの2倍の角度であって、
    前記第6動作で算出される角度αは、前記位置変化量ΔP、距離D、および角度βによって数式2に示すように表現されることを特徴とするロボット。
    Figure 2011036956
  6. 複数のリンクと、
    リンク間に設けられた関節と、
    一方のリンクに対して他方のリンクを移動させる駆動源とを有するロボットであって、
    ロボットの個体差によって生じる実際の位置・姿勢と本来あるべき位置・姿勢との間の誤差がゼロになるように精度を調整する精度調整手段と、
    位置・姿勢の精度に影響を与えうる要因をパラメータ化したものである個体差パラメータと、
    位置・姿勢変化量を検出するセンサとを有し、
    前記精度調整手段は、
    予め設定された駆動源に対する異なる複数の制御量毎に、一意的な位置・姿勢にされているロボットの駆動源を該制御量で制御する第1動作と、
    前記第1動作において駆動源が各制御量で制御される度に、センサが検出した前記一意的な位置・姿勢からの実際の位置・姿勢変化量を取得する第2動作と、
    前記第2動作において取得した複数の実際の位置・姿勢変化量に基づいて、個体差パラメータの実値を算出する第3動作とを実行することを特徴とするロボット。
JP2009186589A 2009-08-11 2009-08-11 ロボットの精度調整方法およびロボット Active JP5378908B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009186589A JP5378908B2 (ja) 2009-08-11 2009-08-11 ロボットの精度調整方法およびロボット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009186589A JP5378908B2 (ja) 2009-08-11 2009-08-11 ロボットの精度調整方法およびロボット

Publications (2)

Publication Number Publication Date
JP2011036956A true JP2011036956A (ja) 2011-02-24
JP5378908B2 JP5378908B2 (ja) 2013-12-25

Family

ID=43765277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009186589A Active JP5378908B2 (ja) 2009-08-11 2009-08-11 ロボットの精度調整方法およびロボット

Country Status (1)

Country Link
JP (1) JP5378908B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015162757A1 (ja) * 2014-04-24 2015-10-29 三菱電機株式会社 ロボット制御装置およびロボット制御方法
JP2015532219A (ja) * 2012-10-19 2015-11-09 イノス オートメーションズソフトウェア ゲーエムベーハー 産業用ロボットのインライン較正方法、その方法を実行する較正システム及びその較正システムを備える産業用ロボット
CN105437231A (zh) * 2015-12-25 2016-03-30 马鞍山永耀智能装备有限公司 一种六轴串联机器人关节伺服系统
JP2016078173A (ja) * 2014-10-17 2016-05-16 本田技研工業株式会社 作業ロボットの設置状態検出方法
CN111083376A (zh) * 2019-12-30 2020-04-28 广东博智林机器人有限公司 确定目标物安装位置的方法、系统、装置以及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62212702A (ja) * 1986-03-13 1987-09-18 Yokogawa Electric Corp ロボツト用軌道決定装置
JPH04322995A (ja) * 1991-04-17 1992-11-12 Smc Corp アクチュエータ
JPH10100085A (ja) * 1996-09-30 1998-04-21 Toshiba Corp ロボットの振動抑制制御装置およびその制御方法
JP2005283600A (ja) * 2005-06-13 2005-10-13 Kawasaki Heavy Ind Ltd 可動体の位置および姿勢検出装置
WO2006022201A1 (ja) * 2004-08-25 2006-03-02 Kabushiki Kaisha Yaskawa Denki ロボットの評価システム及び評価方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62212702A (ja) * 1986-03-13 1987-09-18 Yokogawa Electric Corp ロボツト用軌道決定装置
JPH04322995A (ja) * 1991-04-17 1992-11-12 Smc Corp アクチュエータ
JPH10100085A (ja) * 1996-09-30 1998-04-21 Toshiba Corp ロボットの振動抑制制御装置およびその制御方法
WO2006022201A1 (ja) * 2004-08-25 2006-03-02 Kabushiki Kaisha Yaskawa Denki ロボットの評価システム及び評価方法
JP2005283600A (ja) * 2005-06-13 2005-10-13 Kawasaki Heavy Ind Ltd 可動体の位置および姿勢検出装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015532219A (ja) * 2012-10-19 2015-11-09 イノス オートメーションズソフトウェア ゲーエムベーハー 産業用ロボットのインライン較正方法、その方法を実行する較正システム及びその較正システムを備える産業用ロボット
WO2015162757A1 (ja) * 2014-04-24 2015-10-29 三菱電機株式会社 ロボット制御装置およびロボット制御方法
US10052757B2 (en) 2014-04-24 2018-08-21 Mitsubishi Electric Corporation Robot control device and robot control method
DE112014006610B4 (de) 2014-04-24 2019-09-19 Mitsubishi Electric Corporation Robotersteuerungsvorrichtung und Robotersteuerungsverfahren
JP2016078173A (ja) * 2014-10-17 2016-05-16 本田技研工業株式会社 作業ロボットの設置状態検出方法
CN105437231A (zh) * 2015-12-25 2016-03-30 马鞍山永耀智能装备有限公司 一种六轴串联机器人关节伺服系统
CN111083376A (zh) * 2019-12-30 2020-04-28 广东博智林机器人有限公司 确定目标物安装位置的方法、系统、装置以及电子设备
CN111083376B (zh) * 2019-12-30 2021-07-23 广东博智林机器人有限公司 确定目标物安装位置的方法、系统、装置以及电子设备

Also Published As

Publication number Publication date
JP5378908B2 (ja) 2013-12-25

Similar Documents

Publication Publication Date Title
CN108748159B (zh) 一种机械臂工具坐标系自标定方法
CN107443382B (zh) 工业机器人结构参数误差辨识与补偿方法
CN107717993B (zh) 一种高效便捷的简易机器人标定方法
EP2381325B1 (en) Method for robot offline programming
US8918210B2 (en) Method of detecting an inter-axis offset of 6-axis robot
DK2760642T3 (en) Calibration and programming of robots
JP5321532B2 (ja) ロボットキャリブレーション装置及びキャリブレーション方法
CN107639635B (zh) 一种机械臂位姿误差标定方法及系统
US9452533B2 (en) Robot modeling and positioning
CN110757504B (zh) 高精度可移动机器人的定位误差补偿方法
JP2015042437A (ja) ロボットシステム及びロボットシステムの校正方法
CN110253574B (zh) 一种多任务机械臂位姿检测和误差补偿方法
WO1995008143A1 (fr) Procede de correction de programmes d'apprentissage pour robots
JP5378908B2 (ja) ロボットの精度調整方法およびロボット
JPWO2018092243A1 (ja) 作業位置補正方法および作業ロボット
Saund et al. High accuracy articulated robots with CNC control systems
KR20080088165A (ko) 로봇 캘리브레이션 방법
US7957834B2 (en) Method for calculating rotation center point and axis of rotation, method for generating program, method for moving manipulator and positioning device, and robotic system
JP2021059012A (ja) 情報処理装置、情報処理方法及びロボットシステム
KR100644174B1 (ko) 로봇 용접의 보정방법
JP6485620B2 (ja) ロボット制御システムおよびロボット制御方法
JP2013010149A (ja) 6軸ロボットの軸間オフセット検出方法
JP2011224672A (ja) ロボットのツールベクトルの導出方法及び較正方法
JP5786550B2 (ja) 6軸ロボットの軸間オフセット検出方法
JP5316396B2 (ja) ロボットのばね定数同定方法およびロボットのばね定数同定装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130926

R150 Certificate of patent or registration of utility model

Ref document number: 5378908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250