JP3835641B2 - ロボットの負荷パラメータ推定方法 - Google Patents
ロボットの負荷パラメータ推定方法 Download PDFInfo
- Publication number
- JP3835641B2 JP3835641B2 JP21097197A JP21097197A JP3835641B2 JP 3835641 B2 JP3835641 B2 JP 3835641B2 JP 21097197 A JP21097197 A JP 21097197A JP 21097197 A JP21097197 A JP 21097197A JP 3835641 B2 JP3835641 B2 JP 3835641B2
- Authority
- JP
- Japan
- Prior art keywords
- load
- axis
- center
- robot
- gravity
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 31
- 230000005484 gravity Effects 0.000 claims description 30
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000036544 posture Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Manipulator (AREA)
Description
【発明の属する技術分野】
この発明は、平行リンク機構を含む多軸のロボットを駆動するサーボモータの制御に関し、特に、ロボットアームの先端に取り付けた負荷の重量および重心位置等の負荷パラメータを推定する方法に関する。
【0002】
【従来の技術】
複数のサーボモータにより多軸の機械系を制御する場合、制御部に実機モデルを有する制御を適用することによって振動や応答を改善する、または、所望の動作を実現するといった方法がよく用いられる。それらの制御手法の効果を十分に得るためには、軸先端に取り付けた負荷のパラメータ、すなわち、重量Mgと重心位置(ex,ey,ez)が精度良く分かることが必要になる。従来では、これらの値は、負荷取り付け時、あるいは、負荷交換時に、
1.パラメータとしてオペレータが設計値を手入力する方法
2.各軸を動作させてみてその時のトルク値もしくは電流値から推定計算を行う方法
がとられてきた。以下に第2の方法の一例を示す。
各軸の先端負荷に相当するトルク値または電流値の値を
T(i) (i=1,2,3...:i軸目)、
先端負荷の重量をMg、重心位置を(ex,ey,ez)とすると、T(i)は
T(i)=f(i)(ex,ey,ez,Mg) ・・・(1)
の形で表される。ここで、f(i)は各軸長さと各軸角度から一意に求まる関数である。未知変数が4つあるので、上記(1)式を4軸分もしくは4姿勢分導いて、4元連立方程式を解くことによって、先端負荷パラメータを推定する。
【0003】
【発明が解決しようとする課題】
ところが、パラメータとしてオペレータが設計値を手入力する第1の方法では、負荷の形状が複雑で、重心位置が正確に算出できないような時や、オペレータが入力する際の誤入力等により、実機との誤差が大きくなる可能性があり、また、重心位置の正確な計算やパラメータ入力に、時間と労力がかかるという問題があった。
また、第2の方法では、ロボットの姿勢によって、各未知変数(Mg,ex,ey,ez)が、ある軸のトルク値におよぼす影響の度合いが変化するため、4つの式の選び方が難しい。また、4つの式全てのトルク値に、あまり影響しない変数がある場合などは、トルク値T(i)が誤差を含む場合は特に、推定計算値の誤差が、非常に大きくなり正確な値を推定できないといった問題があった。
さらに、4つの式を最適に選ぶことができたとしても、各軸のトルク値T(i)がそれぞれ誤差を含む場合、計算過程で誤差が蓄積された結果として推定計算値の誤差が大きくなるという問題があった。
そこで、この発明は、推定計算値の誤差を小さくし、正確な負荷パラメータを推定することのできる方法を提供することを目的とする。
【0004】
【課題を解決するための手段】
上記課題を解決するため、本発明は、次のように構成したのである。
請求項1に記載の発明は、平行リンク機構を備えた6軸ロボットのアーム先端軸に取り付けた負荷の重心位置を計算するステップを含むロボットの負荷パラメータ推定方法において、前記負荷の重心位置を計算するステップは、前記先端軸のモータトルク値がピークとなるときの前記先端軸の位置を求めるステップと、前記先端軸の位置および前記アームの長さに基づいて前記負荷の重心位置を求めるステップと、を含むことを特徴とするものである。
【0005】
第一の実施態様として、前記各軸モータトルク指令値として、各軸に正転、逆転の動作をさせた時のモータトルク指令値より、摩擦トルク分と加減速トルク分をキャンセルし、重力トルク分のみを計算した値を使用する。
第二の実施態様として、前記モータトルク指令値の代わりに、ある動作時間内のモータトルク指令値を制御周期毎に積算し、積算値を積算回数で割った値を使用する。
第三の実施態様として、前記モータトルク指令値の代わりに、モータ電流指令値を使用する。
第四の実施態様として、前記負荷の重心位置を推定計算する方法として、アーム動作時の各軸モータトルク指令値の値を監視し、前記モータトルク指令値のピーク時の各軸位置から、各軸座標上での重心方向の角度を算出し、該重心方向の角度とアーム長を使用することにより、前記負荷の重心位置を推定計算する。
第五の実施態様として、前記ロボットの動作プログラム中に、推定動作及び推定計算をする命令を有する。
【0006】
【発明の実施の形態】
以下、この発明の実施例を図に基づいて説明する。
図1は、本発明の方法を実施するためのロボット制御装置の構成を示すブロック図である。同図において、ロボット制御装置30にはプロセッサボード31があり、プロセッサボード31にはプロセッサ31a、ROM31b、RAM31cおよび不揮発性メモリ35a、35bが搭載されている。プロセッサ31aは、ROM31bに予め設定されたプログラムに基づいて、ロボット制御装置30全体を制御する。RAM31cには各種のデータが格納されている。不揮発性メモリ35a、35bには、ロボット100の動作プログラムや本発明に係る負荷パラメータ推定のためのプログラムがROM31bからロードされている。後述する図2および図3に示されている負荷パラメータ推定のための各動作および各計算は、プロセッサ31aが不揮発性メモリ35a、35b内のプログラムを読みとって実行するソフトウエアによる機能である。プロセッサボード31はバス37に結合されている。ディジタルサーボ制御回路32はバス37に結合され、プロセッサボード31からの指令によって、サーボアンプ33を経由して、サーボモータ51,52,53,54,55および56を駆動する。これらのサーボモータはロボット100に内蔵され、ロボット100の各軸を動作させる。シリアルポート34はバス37に結合され、教示操作盤57やその他のRS232C機器58と接続されている。教示操作盤57はロボットへの教示点入力に使用される。また、I/O36を経て外部とのデータおよび信号等の入出力が行われる。
【0007】
図2は、この発明の方法を説明するフローチャートである。本実施例では図5の6軸ロボットの構成を用いて説明する。図5中1〜6はそれぞれ第1軸〜第6軸、7は負荷である。第3軸は501と502により構成される平行リンク機構を有している。推定計算で必要なモータトルク指令値を計算する方法としては、第二の実施態様の方法を使用する。以下、図2のフローチャートを参照しながら詳細に説明する。
(STEP1)では、まず、第2軸2を正負方向に動作させ、その時のモータトルク指令値として、正方向T(+)と、負方向T(−)を保存する。
(STEP2)ではSTEP1で保存したモータトルク指令値から、加減速トルク分と摩擦トルク分をキャンセルして重量トルク分Tg2’のみを算出する。
第2軸目重力トルクTg2’は図4に示すように、正方向と負方向動作時のトルクの和を2で割って求めることができ、
Tg2’={[T(+)]+[T(−)]}/2 ・・・(2)
となる。
【0008】
次に、第三の実施態様の方法を説明する。STEP1で保存するモータトルク指令値正方向T(+)と、負方向T(−)として、第2軸2を正方向に動作させている間のモータトルク指令値を制御周期毎に積算した値をINTT(+)、負方向に動作させている間のモータトルク指令値を制御周期毎に積算した値をINTT(−)とする。また、積算回数をN回とすると、(2)式は、
Tg2’={[INTT(+)]+[INTT(−)]}/N/2 ・・・(2’)
となる。
第三の実施態様の方法を使用することによって、モータトルク指令値にリップルやノイズがある場合、それらの誤差の影響を小さくすることができる。
ここで、Tg2’は水平から第2軸2の姿勢角度θ2傾いたときの重力トルクであるので、重力モーメントTg2のcos(θ2)倍したものになっている。
Tg2’=Tg2*cos(θ2) ・・・(3)
よって重力モーメントTg2は、
Tg2=Tg2’/cos(θ2) ・・・(4)
で計算される。(STEP3)
【0009】
(STEP4)では、先端の負荷7の重量Mgを算出する。
ここで、第3軸3が平行リンク機構を有するため、第6軸6先端に取り付けた負荷7の重量分のトルクは、重心位置(ex,ey,ez)の値に関係なく、第2軸2と第3軸3の結合部に重力トルクとしてのみかかってくる。よって、先端の重量Mgは、
Mg=(Tg2−Tg2 ini)/L2 ・・・(5)
の計算式のみで求まる。L2は2軸目アーム長である。Tg2 iniは予め、先端に負荷がついていないときの第2軸2にかかる重力モーメントを計算もしくは計測しておいた値である。
以上、第2軸2だけを使用して先端負荷7の重量Mgが求まつた。
【0010】
(STEP5)では、重心位置(ex,ey,ez)を求める。
本実施例では、第五の実施態様で示される、重心位置の推定計算方法の一実施例を説明する。以下、図3のフローチャートを用いて説明する。
(STEP5−1) まず、第6軸6の回転軸方向が鉛直方向でないことを確認する。もし、鉛直方向を向いていた場合は、適当な角度まで(実施例では45°以上)第4軸4と第5軸5を動作させ調整する。
(STEP5−2) 次に、第6軸6を正方向に90°以上、低速で動作させる。低速で動作させるのは、加減速時のトルクを抑えるためである。このときのモータトルク指令値を監視し、ピーク値(最大または最小値)をとる時の第6軸6座標のX軸からのなす角θp(この方向に負荷の重心がある)を記憶しておく。(図6)(STEP5−3) 次に、第6軸6を動作させ第5軸5の回転方向に負荷の重心位置がくるようにする。ここで第5軸5を低速で90°以上動作させ、モータトルク指令値がピーク値をとる時のモータ位置から、θg5を求める。(図7)
(STEP5−4) 次に、第5軸5を動作させ、第4軸4と第5軸5が一直線上にのるようにする。ここで第3軸3を低速で90°以上動作させ、モータトルク指令値がピーク値をとる時のモータ位置から、θg3を求める。(図8)
【0011】
先端負荷7の重心(ex,ey,ez)は、第3軸3のアーム長L3、第5軸アーム長L5、θp、θg3、θg5を使って図8の幾何学問題を解くことによって、以下のように求めることができる。
図8のL6について、2つの式が成り立つ。
L6=(L3+L5+ez)*tan(θg3) ・・・(6)
L6=(L5+ez)*tan(θg5) ・・・(7)
(6)(7)式をezについて解くと、(8)式のようになる。
ez={(L3+L5)*tan(θg3)−L5*tan(θg5)}
/{tan(θg5)−tan(θg3)} ・ ・・(8)
また、ex,eyはL6とθpから、以下のように求めることができる。
ex=L6*cos(θp)={(L5+ez)*tan(θg5)}*cos(θp) ・・・(9)
ey=L6*sin(θp)={(L5+ez)*tan(θg5)}*sin(θp)・・・(10)
以上が、先端負荷7の重心位置を推定計算する方法である。
【0012】
また、本実施例では、(ex,ey,ez)の推定計算方法として、すべてを幾何学的に求めたが、θpとθg5を算出した後、第4軸4または、第5軸5を動作させ、その時のモータトルク指令値Tg4と、先で算出した先端負荷7の重量Mgからモーメント長Lg4(図7)を求め、
Lg4=Tg4/Mg ・・・(11)
それらを使って、重心位置(ex,ey,ez)を求めることも可能である。以下に計算結果のみを示す。
ez=Lg4*cos(θg5)−L5 ・・・(12)
ex={Lg4*sin(θg5)}*cos(θp) ・・・(13)
ey={Lg4*sin(θg5)}*sin(θp) ・・・(14)
この場合も、従来の方法と違い、第4軸、5軸、6軸の各軸モータトルク指令値の誤差が蓄積されないので、精度良く重心位置を求めることができる。
【0013】
最後に第四の実施態様の方法について説明する。
ロボットに動作を教示し、実行するためには動作プログラムが作成される。動作プログラムは、特定のプログラム言語によって記述されている。第四の実施形態の方法は、そのプログラム言語の命令の一つとして、前記STEP1からSTEP5までの処理を実行させる命令を持っておき、その命令の入ったプログラムを実行するだけで、上記各軸動作ならびに各STEPでの一連の処理を自動的に実行するものである。
【0014】
【発明の効果】
以上述べたように、この発明によれば、平行リンク機構を有する軸の回転中心を含む軸のモータトルク指令値を使用して、先端負荷の重心位置に関係なく、負荷重量の値だけを算出できるという、平行リンク機構の特性を有効に利用し、先端の負荷の重量を計算するため、計算が非常に簡単であり、各軸の誤差が蓄積されることが無く、結果として、精度良く先端負荷重量Mgを算出することができるという効果がある。
また、負荷重心位置の計算にモータトルク指令値のピーク時のアーム位置から幾何学的に解く方法を採用すれば、モータトルク指令値や先に計算した負荷の重量Mgに誤差を含む場合も、それらの誤差の影響を受けずに、精度良く重心位置を推定計算することができるという効果がある。
また、第四の実施態様の方法を使用すれば、オペレータはロボットアーム先端に負荷を取り付け、プログラムを実行するだけで、あとはすべて制御のソフト上で自動的に動作および計算をするため、負荷が変わった場合も簡単に精度良く負荷パラメータを推定でき、オペレータの労力と作業時間を最小にすることができるという効果がある。
【図面の簡単な説明】
【図1】 この発明の方法を実施するためのロボット制御装置の構成を示すブロック図である。
【図2】 この発明の方法を示すフローチャートである。
【図3】 この発明の負荷重心位置の推定計算方法を示すフローチャートである。
【図4】 重力分トルクの値を求める式の説明図である。
【図5】 この発明の実施例を示すロボットの構成図である。
【図6】 この発明の実施例のSTEP5−2を説明する図である。
【図7】 この発明の実施例のSTEP5−3を説明する図である。
【図8】 この発明の実施例のSTEP5−4を説明する図である。
【符号の説明】
1 第1軸、2 第2軸、3 第3軸、4 第4軸、5 第5軸、6 第6軸、7 負荷、30 ロボット制御装置、31 プロセッサボード、31a プロセッサ、31b ROM、31c RAM、32 ディジタルサーボ制御回路、33 サーボアンプ、34 シリアルポート、35a、35b 不揮発性メモリ、36 I/O、37 バス、51〜56 サーボモータ、57 教示操作盤、58 RS232C機器、100 ロボット
Claims (1)
- 平行リンク機構を備えた6軸ロボットのアーム先端軸に取り付けた負荷の重心位置を計算するステップを含むロボットの負荷パラメータ推定方法において、
前記負荷の重心位置を計算するステップは、
前記先端軸のモータトルク値がピークとなるときの前記先端軸の位置を求めるステップと、
前記先端軸の位置および前記アームの長さに基づいて前記負荷の重心位置を求めるステップと、を含むことを特徴とするロボットの負荷パラメータ推定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21097197A JP3835641B2 (ja) | 1997-08-05 | 1997-08-05 | ロボットの負荷パラメータ推定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21097197A JP3835641B2 (ja) | 1997-08-05 | 1997-08-05 | ロボットの負荷パラメータ推定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1148181A JPH1148181A (ja) | 1999-02-23 |
JP3835641B2 true JP3835641B2 (ja) | 2006-10-18 |
Family
ID=16598169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21097197A Expired - Fee Related JP3835641B2 (ja) | 1997-08-05 | 1997-08-05 | ロボットの負荷パラメータ推定方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3835641B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5245840B2 (ja) * | 2009-01-09 | 2013-07-24 | トヨタ自動車株式会社 | 移乗装置、バランス状態評価装置、バランス状態評価方法、及びプログラム |
JP5360254B2 (ja) * | 2012-03-21 | 2013-12-04 | トヨタ自動車株式会社 | トルク検出方法及びアーム装置 |
JP6846607B2 (ja) * | 2016-12-16 | 2021-03-24 | パナソニックIpマネジメント株式会社 | ロボットの制御方法 |
CN111374774B (zh) * | 2018-12-29 | 2024-10-18 | 达科为(深圳)医疗设备有限公司 | 一种具有动态平衡水平关节的主操作手及手术机器人 |
-
1997
- 1997-08-05 JP JP21097197A patent/JP3835641B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1148181A (ja) | 1999-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4759660B2 (ja) | ロボットアーム制御用の装置、方法、プログラム及び集積電子回路、並びに、組立ロボット | |
CN101901281B (zh) | 消耗电力估计装置 | |
CN109849025B (zh) | 振动抑制装置 | |
JP6174654B2 (ja) | センサの位置と向きを算出する機能を備えたロボットシステム | |
US20070030271A1 (en) | Robot controller and robot control method using spline interpolation | |
JPH079606B2 (ja) | ロボット制御装置 | |
US10406689B2 (en) | Robot simulation apparatus that calculates swept space | |
JP2017124455A (ja) | ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
JP3766484B2 (ja) | 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 | |
CN104589335A (zh) | 机器人、控制装置、机器人系统 | |
JP3349652B2 (ja) | オフラインティーチング方法 | |
EP1886771B1 (en) | Rotation center point calculating method, rotation axis calculating method, program creating method, operation method, and robot apparatus | |
JP3927454B2 (ja) | 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 | |
JP3835641B2 (ja) | ロボットの負荷パラメータ推定方法 | |
JPH05158514A (ja) | ロボットの制御装置 | |
JP3698770B2 (ja) | 負荷重量の推定方法 | |
JP4016305B2 (ja) | ロボットの制御装置 | |
JP3577124B2 (ja) | 力制御ロボットを用いて嵌合データを取得する方法 | |
JP2004348250A (ja) | ロボット制御装置 | |
CN112512758B (zh) | 挠曲量推断装置、机器人控制装置以及挠曲量推断方法 | |
JP5708091B2 (ja) | ロボットの制御方法およびロボットの制御装置 | |
JP2021142596A (ja) | シミュレーション装置およびプログラム | |
CN114800523B (zh) | 机械臂轨迹修正方法、系统、计算机及可读存储介质 | |
JPH08190433A (ja) | 負荷重量推定方法 | |
JP7250940B2 (ja) | 共通システムの複数の可動モジュールの位置及び配向を状態推定するための方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20030909 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060519 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060614 |
|
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: 20060707 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060720 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090804 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100804 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110804 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120804 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130804 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140804 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |