JP3927454B2 - Automatic calculation method of load weight and load center of gravity position of articulated robot - Google Patents

Automatic calculation method of load weight and load center of gravity position of articulated robot Download PDF

Info

Publication number
JP3927454B2
JP3927454B2 JP2002187083A JP2002187083A JP3927454B2 JP 3927454 B2 JP3927454 B2 JP 3927454B2 JP 2002187083 A JP2002187083 A JP 2002187083A JP 2002187083 A JP2002187083 A JP 2002187083A JP 3927454 B2 JP3927454 B2 JP 3927454B2
Authority
JP
Japan
Prior art keywords
load
center
drive shaft
weight
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
Application number
JP2002187083A
Other languages
Japanese (ja)
Other versions
JP2004025387A (en
Inventor
充弘 山崎
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.)
Nachi Fujikoshi Corp
Original Assignee
Nachi Fujikoshi Corp
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 Nachi Fujikoshi Corp filed Critical Nachi Fujikoshi Corp
Priority to JP2002187083A priority Critical patent/JP3927454B2/en
Publication of JP2004025387A publication Critical patent/JP2004025387A/en
Application granted granted Critical
Publication of JP3927454B2 publication Critical patent/JP3927454B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)
  • Control Of Position Or Direction (AREA)

Description

【0001】
【発明の属する技術分野】
サーボモータにより駆動し、その姿勢を記憶、再生できる多関節ロボットにおいて、アーム先端に取り付けられたツール等の負荷の重量及び重心位置を算出する方法に関する。
【0002】
【従来の技術】
多関節ロボットの動作制御では、アーム先端に位置する負荷の重量及び重心位置の影響を考慮する必要があることは広く知られている。具体的に言うと、多関節ロボットの動作制御のうち、駆動軸に使用されている減速機にかかるトルクを制御する加減速制御においては、ロボット自身の質点情報とともにアーム先端に位置する負荷の質点情報すなわち重量及び重心位置のパラメータが必要不可欠である。例えば、溶接ロボットの加減速制御においては、アーム先端に取り付けられた溶接ガンの重量及び重心位置を予め設定しておく必要がある。また、ハンドリングロボットの加減速制御においては、アーム先端に取り付けられた把持部材単独の重量及び重心位置と、把持部材により被搬送物を把持した状態におけるアーム先端の負荷全体の重量及び重心位置とを予め設定しておく必要がある。そして、被搬送物を把持しない状態における加減速制御においては前者の重量及び重心位置を考慮し、一方、被搬送物を把持した状態における加減速制御においては後者の重量及び重心位置を考慮し制御するようにしている。
【0003】
さらに、グラインダがけやバリ取りのような切削加工ロボットでは、加減速制御の他に力制御においても、切削ツールが被加工物から受ける切削反力を算出する際に、切削ツール自身の重量及び重心位置を基に、切削ツール自身が受ける重力等の影響を算出しこれを排除するようにしている。このようにアーム先端に位置する負荷の重量及び重心位置は、多くの多関節ロボットの動作制御において重要な要素となっており、これを正確に算出することは動作制御を高精度に行う上では必須の条件となっている。
【0004】
ハンドリングロボットにおける負荷の重量及び重心位置を算出する方法は、特開平3−55189号公報等に開示されている。この特開平3−55189号公報には、ロボットのアーム先端に力センサを介して把持部材を取り付け、その把持部材に被搬送物を持たせた状態で、予め設定された手順に従ってロボットアームの姿勢をロボット制御装置からの指令値によって種々変化させ、ロボットアームの各姿勢毎の姿勢データと力センサからの出力値とを測定し、姿勢データを基に力センサ自身、把持部材、及び被搬送物等のアーム先端の負荷の重量及びその重心位置を算出する方法が開示されている。
【0005】
また、切削加工ロボットにおける負荷としての切削ツールの重量及び重心位置を算出する方法は、特開平6−315882号公報等に開示されている。この特開平6−315882号公報においても前述の特開平3−55189号と同様に、ロボットアームに複数の姿勢をとらせ、各姿勢における姿勢データと力センサからの出力値を基にアーム先端の負荷すなわち切削ツールの重量及びその重心位置を算出する方法が開示されている。ただし、力センサにおいて検出される力データは、切削ツールが力作業を行っていないとき即ち切削加工を行っていないときには切削ツール自身の重量であり、被加工物に接触して力作業を行っているとき即ち切削加工を行っているときには被加工物から切削ツールに加わる力と切削ツール自身の重量とが複合されたものであり、この点がハンドリングロボットにはない切削加工ロボット特有のものとなっている。
【0006】
しかし、これらの従来技術はいずれも、負荷の重量及び重心位置の算出過程において、アーム先端部に取り付けた力センサからの出力値を必要としていた。切削加工ロボットにおいて行われる力制御においては、切削加工時に切削ツールにかかる切削反力を測定するために、一般に力センサの取り付けは必要不可欠なものとなっているが、ハンドリングロボットや溶接ロボットにおいて行われる加減速制御においては、負荷の重量及び重心位置の算出過程以外では一般に力センサは必要ではない。負荷の重量及び重心位置の算出時期は、ハンドリングロボットにおいては把持部材や被搬送物が変更になったときのみでよく、使用形態にもよるが一般にその頻度は少ない場合が多く、また溶接ロボットにいたっては負荷である溶接ガンを交換することはほとんどないことを考慮すると、初期導入時やメンテナンス終了時のみでよいことになり、負荷の重量及び重心位置の算出のみのために力センサ及びその周辺機器を設置することはコストの面で問題があった。
【0007】
そこで、係る問題を解決するものとして、特開平9−91004号公報や特開平10−138187号公報においては、力センサを使用することなく多関節ロボットのアーム先端の負荷の重量及び重心位置を自動的に算出する方法が開示されている。すなわち、これらの公報に開示されている方法では、ロボットを制御しているサーボモータの電流フィードバックを基に各軸にかかるトルクを推定し、このトルク推定値からロボットのリンクパラメータを求めた上で負荷重量を推定するようにしている。さらに、特開平9−91004号では、負荷重量の推定精度を向上させるために、ロボットに複数の姿勢をとらせ、各姿勢において得られたデータを基に複数の条件式を連立させるようにしている。また、特開平10−138187号では、ロボットに複数の姿勢をとらせる点は特開平9−91004号と同様であるが、減速機の効率や摺動抵抗による誤差を補償するために、ロボットを低速で移動させ、この間の平均電流を基に各軸にかかるトルクを推定するようにしている。
【0008】
【発明が解決しようとする課題】
しかし、サーボモータのフィードバック電流値を測定する前述した特開平9−91004号公報や特開平10−138187号公報に開示されている方法では、測定したフィードバック電流値の測定誤差が、そのまま負荷の重量及び重心位置の推定誤差となって現れてくるという問題がある。また、特開平10−138187号では、前述したように減速機の効率や摺動抵抗による誤差を補償するようにしているが、係る手段を講じても測定される絶対的な誤差は避けられなかった。
【0009】
本発明は、前述した従来技術の課題を解決するためになされたものであり、測定したフィードバック電流値の測定誤差の影響を受けることなく、多関節ロボットのアーム先端に位置する負荷の重量及び重心位置を自動的に算出する方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
前述の課題を解決するために、本発明では、サーボモータによって駆動される複数の駆動軸を備えた多関節ロボットのアーム先端に位置する負荷の重量及び重心位置を算出する方法において、負荷重量及び負荷重心位置の算出過程を以下の2つの段階に分けることにした。すなわち、第1段階においては、多関節ロボットのアーム先端に重量及び重心位置が既知である負荷を取り付け、動作パターンプログラムに従って多関節ロボットを動作させ、このとき検出された駆動電流と、既知である負荷の重量及び重心位置に基づいて算出される駆動軸のアンバランストルクと駆動軸の減速比及びトルク定数とから算出した理想電流とから、検出された駆動電流を補正するための補正係数を算出する。次いで、第2段階においては、多関節ロボットのアーム先端に重量及び重心位置が未知である負荷を取り付け、動作パターンプログラムに従って多関節ロボットを動作させ、このとき検出された駆動電流を前述した補正係数により補正し、この補正された駆動電流に基づいて動作パターンプログラムの実行中に各駆動軸にかかったトルクを算出し、この各駆動軸にかかったトルクは各駆動軸にかかるアンバランストルクと等価であるとすることにより、アンバランストルクに未知数として含まれる負荷の重量及び重心位置を算出するようにした。
【0011】
すなわち、請求項1にかかる発明では、前述した第1段階の過程として、多関節ロボットのアーム先端に重量及び重心位置が既知である負荷を取り付け(ステップ21)、教示装置により基準姿勢を教示し(ステップ22)、この基準姿勢に基づいて動作パターンプログラムが作成されるようにし(ステップ23)、この動作パターンプログラムに従って多関節ロボットを動作させ(ステップ24)、この動作中に各駆動軸を駆動するサーボモータの駆動電流を予め設定されたスキャンタイム毎に検出し、各駆動軸のそれぞれについて前記検出された駆動電流の平均値を算出し(ステップ25)、各駆動軸のそれぞれについて、前記既知である負荷の重量及び重心位置に基づいて算出される駆動軸のアンバランストルクを、駆動軸の減速比とトルク定数とを乗したもので除することにより理想電流を算出し、この理想電流と前記駆動電流の平均値との比から補正係数を算出する(ステップ26)。
【0012】
次いで、前述した第2段階の過程として、多関節ロボットのアーム先端に重量及び重心位置が未知である負荷を取り付け(ステップ11)、教示装置により基準姿勢を教示し(ステップ12)、この基準姿勢に基づいて動作パターンプログラムが作成されるようにし(ステップ13)、この動作パターンプログラムに従って多関節ロボットを動作させ(ステップ14)、この動作中に各駆動軸を駆動するサーボモータの駆動電流を予め設定されたスキャンタイム毎に検出し、各駆動軸のそれぞれについて検出された駆動電流の平均値を算出し(ステップ15)、このステップ15において算出した駆動電流の平均値を前記ステップ26において算出した補正係数により補正し(ステップ16)、各駆動軸のそれぞれについて、前記ステップ16において補正された駆動電流の平均値に基づいて前記ステップ14における動作パターンプログラムの実行中に各駆動軸にかかったトルクの平均値を算出し、この各駆動軸にかかったトルクの平均値は各駆動軸にかかるアンバランストルクと等価であるとすることにより、アンバランストルクに未知数として含まれる負荷の重量及び重心位置を算出するようにした(ステップ17)。なお、本課題を解決するための手段の欄及び前記特許請求の範囲の欄に記載のステップ番号は、図1に記載のステップ番号と同一である。
【0013】
かかる構成としたことにより、重量及び重心位置が既知である負荷を使用することにより測定したフィードバック電流値の測定誤差を推定し、これを補正係数として重量及び重心位置が未知である負荷における重量及び重心位置の算出に利用することにしたので、測定したフィードバック電流値の測定誤差の影響が排除されることになる。
【0014】
ところで、前述の構成は以下に述べる理論に基づいている。理論の根幹は、駆動軸に実際にかかるトルクすなわちモータ駆動トルクはロボットの質点モデルから力学的に求められるトルクすなわち負荷トルクと等価であるとするものである。すなわち、アーム先端に負荷を取り付けた状態でロボットを動作させたときの各駆動軸モータに流れる駆動電流を測定し、この駆動電流よりモータ駆動トルクを求める。一方、ロボットを質点モデルとして考えたとき、この質点モデルに負荷の重量及び重心位置のパラメータを含ませるようにすれば、負荷トルクはこのロボットの質点モデルから力学的に求めることができる。ここで、モータ駆動トルクと負荷トルクが等価であると仮定すれば、ロボットの質点モデルに未知数として含まれている負荷の重量及び重心位置を計算により算出することができる。
【0015】
さらに詳述すれば、モータ駆動トルクを算出する際に必要となる駆動電流データは、駆動軸モータであるサーボモータとこれを制御するサーボアンプとの間に電流検出器を介在させるなどすることにより容易に得ることができる。しかし、負荷トルクを算出する際に必要となる駆動軸の角度、角速度、及び角加速度の各データについて考えると、このうち角度データについては駆動軸に付属の角度検出器により容易に得ることができるが、角速度データ及び角加速度データについては計算処理により算出する必要があり、これを算出するようにすると計算処理が煩雑になり、ロボット制御装置に多大の負担をかけることになるという問題が生ずる。
【0016】
そこで、計算処理を軽減するために、本発明では、駆動軸を低速かつ一定速度にて動作させる分については、ロボットの質点モデルのうち、角速度データに起因する遠心力及びコリオリ力によるトルクの和は極めて小さく、また角加速度データに起因するイナーシャによるトルクは無視してもよいことに着目し、動作パターンプログラムの実行においては駆動軸を低速かつ一定速度にて動作させ、これによりロボットの質点モデルから求められる負荷トルクについては角度データに起因するアンバランストルクのみを考慮することとした。さらに、モータ駆動トルクを算出する際に必要となる電流データは、動作パターンプログラムの実行中にスキャンタイム毎に検出される電流値の平均値を使用し、また、負荷トルク(アンバランストルク)を算出する際に必要となる角度データについては、動作パターンプログラムの実行中に変化した軸角度の平均値を使用することとしたので、負荷の重量及び重心位置の算出処理は動作パターンプログラムの実行後に1回だけ行えば済むことになる。
【0017】
なお、この計算処理においては負荷の重量及び重心位置を未知数とする連立方程式を解くことになるが、これらの未知数を精度良く算出するために、好ましくは実行中に大きなアンバランストルクが駆動軸にかかるように動作パターンプログラムが作成されるようにする。具体的には、負荷の動作において重力の影響を大きく受けるような、すなわち負荷が上下に揺動するような動作を行わせることにより、駆動軸に大きなアンバランストルクがかかるようにする必要があり、このためにはロボットの基準姿勢を良好な位置に選定する必要がある。
【0018】
請求項2にかかる発明では、請求項1にかかる発明において、教示装置により教示された基準姿勢を記憶装置に記憶させるようにした。前述のように、ロボットの基準姿勢の選定に際しては、動作パターンプログラムの実行中に大きなアンバランストルクが駆動軸にかかるように注意しなければならないが、この選定作業はロボット技術に精通した作業者であれば比較的容易であるが、ロボット技術に精通しない多くの作業者にとっては容易なことではない。また、基準姿勢の設定に際しては、作業者が教示装置を逐一操作してロボットの各駆動軸を位置決めさせる必要があり、溶接ロボットのように負荷である溶接ガンの交換がほとんどないものについてはともかく、ハンドリングロボットのように負荷である被搬送物が頻繁に変更されるものについては、負荷が変更になる度毎にこの作業を行うのは大変煩雑となる。そこで、教示装置により教示された基準姿勢のデータは制御装置内の記憶装置に記憶するようにしておき、負荷の重量及び重心位置の算出の際には記憶された基準姿勢のデータが記憶装置より呼び出され、このデータに基づき動作パターンプログラムが作成されるようにした。
【0019】
請求項3にかかる発明では、請求項1または2にかかる発明において、基準姿勢を複数個教示し、これにより動作パターンプログラムが複数個作成されるようにした。負荷の重量及び重心位置算出する上記の計算処理においては、その未知数は負荷の重量m及び負荷の重心位置即ち負荷の重心座標(x,y,z)の計4つであり、これら4つの未知数を算出するためには連立方程式は最低でも4元必要となる。駆動軸が4つ以上の場合は1つの基準姿勢によって作成される1つの動作パターンプログラムを実行させるだけで4元以上の連立方程式を作成することができるが、駆動軸が3つ以下の場合は1つの動作パターンプログラムの実行のみでは4元以上の連立方程式は作成できない。
【0020】
これに関連して、請求項3にかかる発明でも前述の請求項1にかかる発明と同様に、ロボットの質点モデルは角度データに起因するアンバランストルクのみを考慮することとしているが、このアンバランストルクは多関節ロボットを構成する全ての駆動軸に関与されるわけではない。例えば、図3に示す6軸の垂直多関節ロボットにおいては、上腕の揺動軸であるV軸、手首部分の揺動軸であるB軸、及び負荷が接続されるアーム先端のR1軸の合計3軸がアンバランストルクに大きく関与することになるが、その他の駆動軸はアンバランストルクにほとんど関与しない。したがって、この場合、1回の動作パターンプログラムの実施により得られる連立方程式の有効な元数は3つしかなく、最低必要となる4つには足りないことになる。
【0021】
そこで、アンバランストルクの算出に有効な駆動軸が3つ以下の場合においては、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにし、これにより4元以上の連立方程式が作成されるようにした。また、有効な駆動軸が4つ以上の場合においても、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにすれば、多くの元数を有する連立方程式が作成されることとなり、これを解くことにより未知数である負荷の重量及び重心位置を高精度に算出することができるようになる。
【0022】
請求項4にかかる発明では、請求項1乃至3のいずれかにかかる発明において、動作パターンプログラムでは、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路について負荷を持ち下げる動作即ち下降動作とを行わせるようにした。一般に、サーボ系より取り込まれるサーボモータの駆動電流には、減速機の効率及び摺動抵抗による誤差が含まれている。そのため、負荷の重量及び重心位置を高精度に算出することを考えた場合、駆動電流よりモータ駆動トルクを算出する際は、減速機の効率及び摺動抵抗による誤差を補償することが好ましいことになる。しかし、減速機の効率及び摺動抵抗は駆動軸個々に固有な値であるとともにロボットの動作形態によっても異なる値をとる数値であるので、これを一義的に設定することは一般に困難である。
【0023】
そこで、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路について負荷を持ち下げる動作即ち下降動作とでは、減速機の効率及び摺動抵抗によるトルクのロスの値は正負が逆となるだけで絶対値は等しくなるということに着目し、モータ駆動トルクと負荷トルクとの関係式において、上昇動作により定義付けられる関係式と下降動作により定義付けられる関係式の2つを加え合わせることにより、減速機の効率及び摺動抵抗によるトルクのロスを相殺した関係式を導出するようにした。この導出された関係式を適用することにより、減速機の効率及び摺動抵抗の誤差の影響を受けることなく、負荷の重量及び重心位置を高精度に算出することができるようになる。
【0024】
請求項5にかかる発明では、請求項1乃至4のいずれかにかかる発明において、動作パターンプログラムでは各駆動軸を個別に動作させるようにした。多関節ロボットにおいて、1つの駆動軸の動作が他の駆動軸にかかるトルクに影響を与えることはよく知られるところである。前述のように、本発明では、質点モデルにおいてアンバランストルクのみを考慮するようにしているために、動作パターンプログラムの実行中は駆動軸を低速かつ一定速度にて動作させるようにしており、1つの駆動軸の動作が他の駆動軸のトルクに与える影響は通常の動作に比してかなり少ないと言える。しかし、より高精度に負荷の重量及び重心位置を算出するためには、1つの駆動軸の動作が他の駆動軸のトルクに与える影響を完全に排除することが好ましく、そのために動作パターンプログラムでは各駆動軸を個別に動作させるようにした。
【0025】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照して説明する。図2は、本発明が適用される多関節ロボットの制御装置の一例を示したものである。教示装置としての軸操作装置10は、作業者がこれを使用してロボット1を操作するためのティーチングデータを教示する装置である。指令値生成装置5は、軸操作装置10を介して作業者が与えたティーチングデータや記憶装置6に記憶されている動作プログラムを入力し、ロボット1の各駆動軸を動作させるための指令値を作成し、これをサーボアンプ4へ出力する。また、ここで作成された指令値は記憶装置6へ転送し一時的に記憶される。サーボアンプ4は指令値生成装置5からの指令値を入力し、ロボット1の各駆動軸毎に設けられた駆動軸モータであるサーボモータ3に対して電流指令を出力する。この電流指令によって各駆動軸が所定の角度に設定されることにより、ロボット1のアーム先端の負荷2を位置決めすることができる。
【0026】
記憶装置6には、動作プログラムなどのプログラムデータ、及び角度データやティーチングデータ等の数値データが記憶される。プログラム作成装置7では、記憶装置6に記憶されているティーチングデータを基に、各駆動軸にかかるトルクすなわちモータ駆動トルクを算出するために必要な電流データを採取するための動作パターンプログラムを自動的に作成し、これを記憶装置6へ転送する。この動作パターンプログラムの自動作成作業は、記憶装置6に予め入力されている動作パターンプログラムの自動作成プログラムにより自動的に行われる。電流取り込み装置9では、サーボアンプ4とサーボモータ3との間に設置された電流検出器9aにおいて検出された電流データ(駆動電流)を取り込み、これを重量・重心演算装置8へ転送する。重量・重心演算装置8では、電流取り込み装置9から入力された電流データに基づいて、負荷の重量及び重心位置を算出する。
【0027】
ここで、検出したサーボモータの駆動電流を補正するための補正係数の算出方法について説明する。電流検出器9aにより検出された任意の駆動軸jの駆動電流をIj とすると、このとき駆動軸jに実際にかかるトルクすなわちモータ駆動トルクTRjは式(1)で表される。
【0028】
【数1】

Figure 0003927454
【0029】
式(1)において、Rj は駆動軸jの減速比、Ktj は駆動軸jのトルク定数であり、双方とも駆動軸に固有な定数である。一方、ロボットの質点モデルから力学的に求められるトルクすなわち負荷トルクTMjは式(2)で表される。
【0030】
【数2】
Figure 0003927454
【0031】
式(2)において、mは負荷の重量、r(x,y,z)は負荷の重心位置、θj は軸jの軸角度、ωj は軸jの角速度、αj は軸jの角加速度、Jθ,j は軸角度θj のとき軸jにおけるイナーシャを表す関数(加速度項)、Pθ,j は軸角度θj のとき軸jにおけるアンバランストルクを表す関数(重力項)、Cθ,j は軸角度θj のとき軸jにおける遠心力およびコリオリ力によるトルクの和を表す関数(速度項)をそれぞれ示す。なお、負荷の重心位置(x,y,z)は手首座標系における座標であり、ロボットの姿勢によって変化するものではない。
【0032】
本発明では、式(1)で表されるモータ駆動トルクTRjと式(2)で表される負荷トルクTMjとは理論的には等価であると考えることにする。ここで、ロボット1には重量及び重心位置が既知である負荷2が取り付けられているものとすると、式(3)に示す方程式を解くことにより、既知である負荷2が取り付けられている場合のモータの駆動電流Ij を逆算することができる。
【0033】
【数3】
Figure 0003927454
【0034】
しかし、前述の変数データのうち、各駆動軸の電流データである電流値Ij と角度データである軸角度θj はそれぞれ電流検出器9a及びエンコーダより容易に得ることができるが、角速度ωj (角速度データ)及び角加速度αj (角加速度データ)については、軸角度θj や移動時間等のデータに基づいて計算処理により算出する必要があり、計算処理が煩雑になる。そこで、本発明では、駆動軸を低速かつ一定速度にて動作させる分については、ロボットの質点モデルのうち、角速度ωj に起因する遠心力及びコリオリ力によるトルクの和Cθ,j は極めて小さく、また角加速度データに起因するイナーシャによるトルクJθ,j は無視してもよいことに着目し、動作パターンプログラムの実行においては駆動軸を低速かつ一定速度にて動作させ、これによりロボットの質点モデルは角度データに起因するアンバランストルクPθ,j のみを考慮することとし、これにより計算処理が軽減されるようにした。すなわち、本発明では、式(4)に示す方程式を解くことにより、既知である負荷2が取り付けられている場合のモータの駆動電流Ij を算出するようにした。
【0035】
【数4】
Figure 0003927454
【0036】
一方、既知である負荷2が取り付けられている場合の理想電流Irは、前述の式(4)から導かれる式(5)により算出される。
【0037】
【数5】
Figure 0003927454
【0038】
すなわち、理想電流Irは、既知である負荷の重量及び重心位置に基づいて算出される駆動軸のアンバランストルクPθ, を、駆動軸の減速比R とトルク定数Kt とを乗したもので除することにより算出される。そして、式(4)から算出した既知である負荷2が取り付けられている場合のモータの駆動電流Iと、式(5)から算出した既知である負荷2が取り付けられている場合の理想電流Irとから、検出したサーボモータの駆動電流を補正するための補正係数Cを、式(6)により算出することにする。
【0039】
【数6】
Figure 0003927454
【0040】
次に、式(6)により算出した補正係数Cj を用い、負荷の重量m及び負荷の重心位置(x,y,z)を推定する。ここで、ロボット1には重量及び重心位置が未知である負荷2が取り付けられているものとする。前述したように、本発明では、式(1)で表されるモータ駆動トルクTRjと式(2)で表される負荷トルクTMjとは理論的には等価であると考えることにしているので、前述した式(4)に示す方程式に対して式(6)により算出した補正係数Cj を付加した方程式、すなわち式(7)を解くことにより、未知である負荷2が取り付けられている場合のモータの駆動電流Ij を算出する。
【0041】
【数7】
Figure 0003927454
【0042】
具体的には、式(7)においては未知数は負荷の重量m及び負荷の重心位置(x,y,z)の4つであるので、動作パターンプログラムでは、ロボットの駆動軸を4つ以上設定し、各駆動軸のそれぞれについて、軸操作装置10によりティーチングデータとして与えた基準姿勢から各駆動軸を所定量(所定角度α)動作させ、この動作の実行中にスキャンタイム毎に各駆動軸の駆動電流Ij を得る。動作の終了後に、検出された駆動電流Ij の積算値をスキャン回数で割ることにより、動作の実行中に検出された駆動電流Ij の平均値が得られ、この値より式(7)の左辺であるモータ駆動トルクTRj(=Rj ・Ktj ・Cj ・Ij )が求められる。一方、式(7)の右辺であるアンバランストルクPθ,j は各駆動軸の軸角度に起因しているが、ここでは基準姿勢における軸角度に移動動作の所定量αの半分の値すなわちα/2を加えた値を、動作の実行中の軸角度の平均値として設定することとした。
【0043】
これにより得られた式(7)についての4元以上の連立方程式を解くことにより、アンバランストルクPθ,j に含まれる負荷の重量m及び負荷の重心位置(x,y,z)を算出する。なお、所定角度αは動作パターンプログラムにおいて予め固定値として設定しておいてもよいし、パラメータの一つとして任意の設定値が与えられるようにしておいてもよい。
【0044】
ここで、前述した一連の計算処理の手順を、図1に示すフローチャートを参照して説明する。図1において、(b)図は補正係数Cj を算出するための手順を示したフローチャートであり、(a)図は算出した補正係数Cj を用いて負荷重量及び負荷重心位置を算出するための手順を示したフローチャートである。
【0045】
まず、図1(b)を参照して、補正係数Cj を算出するための手順を説明する。
【0046】
まず、ロボット1に重量及び重心位置が既知である負荷2を取り付ける(ステップ21)。
【0047】
次に、軸操作装置10を操作して、ロボットの初期姿勢としてのロボット1の基準姿勢を教示する(ステップ22)。教示の際は、各駆動軸毎に軸操作装置10にある寸動ボタンを操作するなどして、基準姿勢として設定する姿勢をとらせる。この基準姿勢の設定の際に注意すべきことは、動作パターンプログラムの実行中に大きなアンバランストルクが駆動軸にかかるように基準姿勢を設定することである。
【0048】
すなわち、多関節ロボットは、その構造上、各駆動軸の可動範囲は限定されているので、基準姿勢によっては大きなアンバランストルクが駆動軸にかかるような動作パターンプログラムが作成されないことがある。例えば、図3に示す本実施形態の多関節ロボットの場合、図4に示すように負荷がロボット本体ベース付近にくるように基準姿勢を設定するようにすると、V軸を駆動させた際、大きなアンバランストルクは作用せず、この結果負荷の重量及び重心位置は高精度に算出されなくなる。したがって、基準姿勢の選定にはこの旨十分注意をはらう必要がある。本実施形態の多関節ロボットにおいては、図5に示す位置に基準姿勢を設定するようにすれば、V軸、B軸、及びR1軸のいずれにも大きなアンバランストルクが作用する動作パターンプログラムが作成されることになる。
【0049】
次に、記憶装置6に予め記憶されている動作パターンプログラムの自動作成プログラムにより、基準姿勢のデータを基に動作パターンプログラムが自動的に作成される(ステップ23)。本実施形態においては、ロボット1を基準姿勢に対して所定量移動させ、移動の間のサーボモータ3の駆動電流を電流検出器9aにより検出するわけであるから、動作パターンプログラムの自動作成のために必要なデータとしては、ロボット1の基準姿勢、基準姿勢からの移動量、駆動軸の選定、及び移動速度などである。このうちロボット1の基準姿勢についてはステップ22により設定されるが、残りのデータについてはパラメータとして予め与えておけばよい。
【0050】
次に、ステップ23において作成された動作パターンプログラムに従って、ロボット1を動作させる(ステップ24)。
【0051】
次に、ステップ24の実行中における各駆動軸のサーボモータ3の駆動電流を検出する(ステップ25)。駆動電流の検出はスキャンタイム毎に行い、このスキャンタイム毎に検出された駆動電流は電流取り込み装置9内に一時的に記憶される。そして、この動作パターンプログラムの実行中にスキャンタイム毎に検出された駆動電流について、その平均値を算出する。具体的には、スキャンタイム毎に検出された駆動電流を合計し、これをスキャン回数で割ることにより、駆動電流の平均値を算出する。
【0052】
最後に、ステップ25において検出された駆動電流の平均値と、前述の式(5)により算出された理想電流との比から、補正係数Cを求める(ステップ26)。
【0053】
次に、図1(a)を参照して、算出した補正係数Cj を用いて負荷重量及び負荷重心位置を算出するための手順を説明する。
【0054】
まず、ロボット1に重量及び重心位置が未知である負荷2を取り付ける(ステップ11)。
【0055】
次に、前述したステップ22と同様に、軸操作装置10を操作して、ロボットの初期姿勢としてのロボット1の基準姿勢を教示する(ステップ12)。教示の際は、各駆動軸毎に軸操作装置10にある寸動ボタンを操作するなどして、基準姿勢として設定する姿勢をとらせる。この基準姿勢の設定の際に注意すべきことは、前述したステップ22と同様に、動作パターンプログラムの実行中に大きなアンバランストルクが駆動軸にかかるように基準姿勢を設定することである。
【0056】
次に、前述したステップ23と同様に、記憶装置6に予め記憶されている動作パターンプログラムの自動作成プログラムにより、基準姿勢のデータを基に動作パターンプログラムが自動的に作成される(ステップ13)。負荷重量及び負荷重心位置の算出に際しては、ロボット1を基準姿勢に対して所定量移動させ、移動の間のサーボモータ3の駆動電流を電流検出器9aにより検出するわけであるから、動作パターンプログラムの自動作成のために必要なデータとしては、ロボット1の基準姿勢、基準姿勢からの移動量、駆動軸の選定、及び移動速度などである。このうちロボット1の基準姿勢についてはステップ12により設定されるが、残りのデータについてはパラメータとして予め与えておけばよい。
【0057】
次に、前述したステップ24と同様に、ステップ13において作成された動作パターンプログラムに従って、ロボット1を動作させる(ステップ14)。
【0058】
次に、前述したステップ25と同様に、ステップ14の実行中における各駆動軸のサーボモータ3の駆動電流を検出する(ステップ15)。駆動電流の検出はスキャンタイム毎に行い、このスキャンタイム毎に検出された駆動電流は電流取り込み装置9内に一時的に記憶される。そして、この動作パターンプログラムの実行中にスキャンタイム毎に検出された駆動電流について、その平均値を算出する。具体的には、スキャンタイム毎に検出された駆動電流を合計し、これをスキャン回数で割ることにより、駆動電流の平均値を算出する。
【0059】
次に、ステップ15において検出された駆動電流の平均値を、ステップ26において求めた補正係数Cj により補正する(ステップ16)。具体的には、ステップ15において検出された駆動電流の平均値に、ステップ26において求めた補正係数Cj を乗ずれば、補正された駆動電流が求まる。
【0060】
最後に、ステップ16において補正された各駆動軸のサーボモータの駆動電流に基づいて、式(7)についての連立方程式を解くことにより、負荷の重量及び重心位置を算出する(ステップ17)。ここで、式(7)の右辺であるアンバランストルクPθ,j は各駆動軸の軸角度に起因しているが、ここでは基準姿勢における軸角度に動作の所定量αの半分の値をすなわちα/2を加えた値を、動作の実行中の軸角度の平均値として設定することとした。駆動軸が4つ以上選定されていれば、4元以上の連立方程式ができあがることとなり、この連立方程式を解くことにより、アンバランストルクPθ,j に含まれている負荷の重量及び重心位置が算出されることとなる。
【0061】
ところで、ロボット1の基準姿勢の選定に際しては、動作パターンプログラムの実行中に大きなアンバランストルクが駆動軸にかかるように注意しなければならないが、この選定作業はロボット技術に精通した作業者であれば比較的容易であるが、ロボット技術に精通しない多くの作業者にとっては容易なことではない。また、基準姿勢の設定に際しては、作業者が教示装置を逐一操作してロボット1の各駆動軸を位置決めさせる必要があり、溶接ロボットのように負荷である溶接ガンの交換がほとんどないものについてはともかく、ハンドリングロボットのように負荷である被搬送物が頻繁に変更されるものについては、負荷が変更になる度毎にこの作業を行うのは大変煩雑となる。そこで、教示装置により教示された基準姿勢のデータは制御装置内の記憶装置に記憶するようにしておき、負荷の重量及び重心位置の算出の際には記憶された基準姿勢のデータが記憶装置より呼び出され、このデータに基づき動作パターンプログラムが作成されるようにしてもよい。
【0062】
また、ロボットの質点モデルは角度データに起因するアンバランストルクのみを考慮することとしているが、このアンバランストルクは多関節ロボットを構成する全ての駆動軸に関与されるわけではない。例えば、図3に示す6軸の垂直多関節ロボットにおいては、上腕の揺動軸であるV軸、手首部分の揺動軸であるB軸、及び負荷が接続されるアーム先端のR1軸の合計3軸がアンバランストルクに大きく関与することになるが、その他の駆動軸はアンバランストルクにほとんど関与しない。したがって、この場合、1回の動作パターンプログラムの実施により得られる連立方程式の有効な元数は3つしかなく、最低必要となる4つには足りないことになる。
【0063】
そこで、アンバランストルクの算出に有効な駆動軸が3つ以下の場合においては、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにし、これにより4元以上の連立方程式が作成されるようにすればよい。また、有効な駆動軸が4つ以上の場合においても、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにすれば、多くの元数を有する連立方程式が作成されることとなり、これを解くことにより未知数である負荷の重量及び負荷の重心位置を高精度に算出することができるようになる。
【0064】
ところで、一般に、サーボ系より取り込まれるサーボモータ3の駆動電流には、減速機の効率及び摺動抵抗による誤差が含まれている。そのため、負荷の重量及び重心位置を高精度に算出することを考えると、駆動電流よりモータ駆動トルクを算出する際は、減速機の効率及び摺動抵抗による誤差を補償することが好ましいことになる。しかし、減速機の効率及び摺動抵抗は駆動軸個々に固有な値であるとともにロボット1の動作形態によっても異なる値をとる数値であるので、これを一義的に設定することは一般に困難である。
【0065】
そこで、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路について負荷を持ち下げる動作即ち下降動作とでは、減速機の効率及び摺動抵抗によるトルクのロスの値は正負が逆となるだけで絶対値は等しくなるということに着目することにした。すなわち、駆動軸jにおける減速機の効率及び摺動抵抗によるトルクのロスをτj とおけば、上昇動作と下降動作におけるモータ駆動トルクと負荷トルクとの関係式はそれぞれ式(8)及び式(9)で表される。
【0066】
【数8】
Figure 0003927454
【0067】
式(8)におけるIupj は上昇動作時の駆動電流であり、式(9)におけるIdownj は下降動作時の駆動電流である。ここで式(8)と式(9)を加え合わせることにより、減速機の効率及び摺動抵抗によるトルクのロスτj が相殺された式(10)が導き出される。
【0068】
【数9】
Figure 0003927454
【0069】
減速機の効率及び摺動抵抗の誤差の影響を排除した高精度な算出結果が要求される場合には、式(10)を適用することにより負荷の重量及び重心位置を算出すればよい。
【0070】
ところで、多関節ロボットにおいて、1つの駆動軸の動作が他の駆動軸にかかるトルクに影響を与えることはよく知られているところである。前述のように、本発明では、質点モデルにおいてアンバランストルクのみを考慮するようにしているために、動作パターンプログラムの実行中は駆動軸を低速かつ一定速度にて動作させるようにしており、1つの駆動軸の動作が他の駆動軸のトルクに与える影響は通常の動作に比してかなり少ないと言える。しかし、より高精度に負荷の重量及び重心位置を算出するためには、1つの駆動軸の動作が他の駆動軸にかかるトルクに与える影響を完全に排除することが好ましい。これに対処するためには、基準姿勢データに基づいて各駆動軸が個別に動作されるような動作パターンプログラムが作成されるように、動作パターンプログラムを自動作成する動作パターンプログラムの自動作成プログラムをプログラミングすればよい。
【0071】
【発明の効果】
請求項1にかかる発明によれば、サーボモータによって駆動される複数の駆動軸を備えた多関節ロボットのアーム先端に位置する負荷の重量及び重心位置を算出する方法において、負荷重量及び負荷重心位置の算出過程を以下の2つの段階に分けることにした。すなわち、第1段階において、多関節ロボットのアーム先端に重量及び重心位置が既知である負荷を取り付け、動作パターンプログラムに従って多関節ロボットを動作させ、このとき検出された駆動電流と、既知である負荷の重量及び重心位置に基づいて算出される駆動軸のアンバランストルクと駆動軸の減速比及びトルク定数とから算出した理想電流とから、検出された駆動電流を補正するための補正係数を算出する。次いで、第2段階において、多関節ロボットのアーム先端に重量及び重心位置が未知である負荷を取り付け、動作パターンプログラムに従って多関節ロボットを動作させ、このとき検出された駆動電流を前述した補正係数により補正し、この補正された駆動電流に基づいて動作パターンプログラムの実行中に各駆動軸にかかったトルクを算出し、この各駆動軸にかかったトルクは各駆動軸にかかるアンバランストルクと等価であるとすることによりアンバランストルクに未知数として含まれる負荷の重量及び重心位置を算出するようにした。
【0072】
これにより、重量及び重心位置が既知である負荷を使用することにより測定したフィードバック電流値の測定誤差を推定し、これを補正係数として重量及び重心位置が未知である負荷における重量及び重心位置の算出に利用することとなったので、測定したフィードバック電流値の測定誤差の影響が排除され、その結果、多関節ロボットのアーム先端における負荷重量及び負荷重心位置の算出精度が高くなった。
【0073】
請求項2にかかる発明によれば、請求項1にかかる発明において、教示装置により教示された基準姿勢を記憶装置に記憶させるようにした。そのため、教示装置により教示された基準姿勢のデータは制御装置内の記憶装置に記憶されるようになり、負荷の重量及び重心位置の算出の際には記憶された基準姿勢のデータが記憶装置より呼び出され、このデータに基づき動作パターンプログラムが作成されるようになったので、基準姿勢の設定をその都度行う必要はなくなった。これにより、例えば、基準姿勢のデータ入力はロボット技術に精通したメーカーの担当者が行い、ユーザー側の作業者における基準姿勢のデータ入力を不要とすることも可能となった。
【0074】
請求項3にかかる発明によれば、請求項1または2にかかる発明において、基準姿勢を複数個教示し、これにより動作パターンプログラムが複数個作成されるようにした。そのため、アンバランストルクの算出に有効な駆動軸が3つ以下の場合においては、基準姿勢を複数個教示することにより、各基準姿勢に対応する動作パターンプログラムが複数個作成されるようにしこれを実行するようにし、これにより4元以上の連立方程式の作成を可能にした。また、有効な駆動軸が4つ以上の場合においても、同様にして多くの元数を有する連立方程式が作成されるようにし、これを解くことにより負荷の重量及び重心位置を高精度に算出することが可能となった。
【0075】
請求項4にかかる発明によれば、請求項1乃至3のいずれかにかかる発明において、動作パターンプログラムでは、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路について負荷を持ち下げる動作即ち下降動作とを行わせるようにした。そして、この2つの動作により導出される関係式すなわち上昇動作と下降動作のそれぞれの、駆動電流より算出されるモータ駆動トルクとロボットの質点モデルより算出される負荷トルクとの関係式において、これら2つの関係式を加え合わせることにより、減速機の効率及び摺動抵抗によるトルクのロスを相殺した関係式を導出するようにした。そのため、この導出された関係式を適用することにより、減速機の効率及び摺動抵抗の誤差の影響を受けることなく、負荷の重量及び重心位置を高精度に算出することが可能となった。
【0076】
請求項5にかかる発明によれば、請求項1乃至4のいずれかにかかる発明において、動作パターンプログラムでは各駆動軸を個別に動作させるようにした。そのため、1つの駆動軸の動作が他の駆動軸のトルクに与える影響を完全に排除することができ、より高精度に負荷の重量及び重心位置を算出することが可能となった。
【図面の簡単な説明】
【図1】本発明の一実施形態における計算処理の手順を示すフローチャートであり、(b)図は補正係数Cj を算出するための手順を示したフローチャート、(a)図は算出した補正係数Cj を用いて負荷重量及び負荷重心位置を算出するための手順を示したフローチャートである。
【図2】本発明が適用される多関節ロボット1の制御装置の一例を示すブロック図である。
【図3】本発明が適用される多関節ロボット1の一例を示す外観図である。
【図4】大きなアンバランスがかからないロボット1の基準姿勢を示す図である。
【図5】大きなアンバランスがかかるロボット1の基準姿勢を示す図である。
【符号の説明】
1 多関節ロボット
2 負荷
3 サーボモータ
4 サーボアンプ
5 指令値生成装置
6 記憶装置
7 プログラム作成装置
8 重量・重心演算装置
9 電流取り込み装置
10 教示装置(軸操作装置)[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for calculating the weight and the position of the center of gravity of a load such as a tool attached to the tip of an arm in an articulated robot that is driven by a servo motor and can store and reproduce its posture.
[0002]
[Prior art]
It is well known that in the operation control of an articulated robot, it is necessary to consider the influence of the weight of the load located at the tip of the arm and the position of the center of gravity. Specifically, in the acceleration / deceleration control that controls the torque applied to the speed reducer used for the drive shaft in the operation control of the articulated robot, the mass point of the load located at the tip of the arm together with the mass point information of the robot itself. Information, that is, weight and center of gravity parameters are essential. For example, in acceleration / deceleration control of a welding robot, it is necessary to set in advance the weight and center of gravity position of a welding gun attached to the tip of the arm. In the acceleration / deceleration control of the handling robot, the weight and center of gravity of the gripping member alone attached to the tip of the arm and the weight and center of gravity of the entire load at the tip of the arm when the object to be transported is gripped by the gripping member. It is necessary to set in advance. In the acceleration / deceleration control in a state where the object to be conveyed is not gripped, the former weight and the center of gravity position are taken into consideration. On the other hand, in the acceleration / deceleration control in the state where the object is conveyed, the latter weight and the center of gravity position are considered. Like to do.
[0003]
In addition, in cutting robots such as grindering and deburring, the weight and center of gravity of the cutting tool itself are used to calculate the cutting reaction force that the cutting tool receives from the workpiece in force control as well as acceleration / deceleration control. Based on the position, the influence of gravity and the like that the cutting tool itself receives is calculated and eliminated. As described above, the weight of the load and the position of the center of gravity located at the tip of the arm are important elements in the operation control of many articulated robots. It is an indispensable condition.
[0004]
A method of calculating the weight of the load and the position of the center of gravity in the handling robot is disclosed in JP-A-3-55189. In JP-A-3-55189, a gripping member is attached to the tip of a robot arm via a force sensor, and the posture of the robot arm is set in accordance with a preset procedure in a state where the gripping member is to be transported. Variously according to the command value from the robot controller, measure the posture data for each posture of the robot arm and the output value from the force sensor, and based on the posture data, the force sensor itself, the gripping member, and the object to be conveyed A method for calculating the weight of the load at the tip of the arm and the position of its center of gravity is disclosed.
[0005]
A method for calculating the weight and the center of gravity position of a cutting tool as a load in a cutting robot is disclosed in JP-A-6-315882. Also in this Japanese Patent Laid-Open No. 6-315882, similar to the above-mentioned Japanese Patent Laid-Open No. 3-55189, the robot arm is allowed to take a plurality of postures, and based on the posture data and the output value from the force sensor in each posture, A method for calculating a load, that is, a weight of a cutting tool and a position of its center of gravity is disclosed. However, the force data detected by the force sensor is the weight of the cutting tool itself when the cutting tool is not performing a force operation, that is, when the cutting operation is not being performed. In other words, when cutting is performed, the force applied to the cutting tool from the workpiece and the weight of the cutting tool itself are combined, and this point is unique to cutting robots that are not available in handling robots. ing.
[0006]
However, all of these conventional techniques require an output value from a force sensor attached to the tip of the arm in the process of calculating the weight of the load and the position of the center of gravity. In force control performed by a cutting robot, it is generally indispensable to attach a force sensor to measure the cutting reaction force applied to the cutting tool during cutting. In the acceleration / deceleration control, a force sensor is generally unnecessary except for the process of calculating the weight of the load and the position of the center of gravity. The calculation time of the weight of the load and the position of the center of gravity is only required when the gripping member or the object to be transported is changed in handling robots. Considering that the welding gun, which is the load, is rarely changed, it is only necessary at the time of initial introduction or at the end of the maintenance. Installing peripheral devices has been problematic in terms of cost.
[0007]
In order to solve such problems, Japanese Patent Application Laid-Open No. 9-91004 and Japanese Patent Application Laid-Open No. 10-138187 automatically determine the weight and center of gravity of the load on the arm tip of an articulated robot without using a force sensor. A method for automatically calculating is disclosed. That is, in the methods disclosed in these publications, the torque applied to each axis is estimated based on the current feedback of the servo motor that controls the robot, and the link parameter of the robot is obtained from this estimated torque value. The load weight is estimated. Further, in JP-A-9-91004, in order to improve the estimation accuracy of load weight, the robot takes a plurality of postures, and a plurality of conditional expressions are made simultaneous based on data obtained in each posture. Yes. Japanese Patent Laid-Open No. 10-138187 is similar to Japanese Patent Laid-Open No. 9-91004 in that the robot takes a plurality of postures. However, in order to compensate for errors due to the efficiency of the reducer and sliding resistance, the robot is It is moved at a low speed, and the torque applied to each axis is estimated based on the average current during this time.
[0008]
[Problems to be solved by the invention]
However, in the methods disclosed in Japanese Patent Laid-Open Nos. 9-91004 and 10-138187, which measure the feedback current value of the servo motor, the measurement error of the measured feedback current value remains as it is as the weight of the load. In addition, there is a problem that it appears as an estimation error of the center of gravity position. In Japanese Patent Laid-Open No. 10-138187, as described above, errors due to reduction gear efficiency and sliding resistance are compensated, but even if such measures are taken, absolute errors that are measured cannot be avoided. It was.
[0009]
The present invention has been made to solve the above-described problems of the prior art, and is not affected by the measurement error of the measured feedback current value, and the weight and center of gravity of the load located at the arm tip of the articulated robot. An object is to provide a method for automatically calculating a position.
[0010]
[Means for Solving the Problems]
  In order to solve the above-described problem, in the present invention, in a method for calculating the weight and the center of gravity position of a load located at the arm tip of an articulated robot having a plurality of drive shafts driven by a servomotor, The process of calculating the load center of gravity position is divided into the following two stages. That is, in the first stage, a load having a known weight and center of gravity position is attached to the arm tip of the articulated robot, and the articulated robot is operated according to the operation pattern program.From the ideal current calculated from the unbalanced torque of the drive shaft calculated based on the known load weight and position of the center of gravity, the reduction ratio of the drive shaft, and the torque constantThen, a correction coefficient for correcting the detected drive current is calculated. Next, in the second stage, a load whose weight and center of gravity are unknown is attached to the tip of the articulated robot arm, and the articulated robot is operated according to the operation pattern program. And the torque applied to each drive shaft during the execution of the operation pattern program is calculated based on the corrected drive current. The torque applied to each drive shaft is equivalent to the unbalance torque applied to each drive shaft. As a result, the weight of the load and the position of the center of gravity included as unknowns in the unbalance torque are calculated.
[0011]
  That is, in the invention according to claim 1, as a process of the first stage described above, a load having a known weight and center of gravity is attached to the tip of the arm of the articulated robot (step 21), and the reference posture is taught by the teaching device. (Step 22) An operation pattern program is created based on this reference posture (Step 23), the articulated robot is operated according to this operation pattern program (Step 24), and each drive axis is driven during this operation. The drive current of the servo motor to be detected is detected at each preset scan time, the average value of the detected drive current is calculated for each drive axis (step 25), and each drive axis is calculated.The ideal current is calculated by dividing the unbalanced torque of the drive shaft calculated based on the known load weight and the position of the center of gravity by the product of the reduction ratio of the drive shaft and the torque constant.Then, a correction coefficient is calculated from the ratio between the ideal current and the average value of the drive current (step 26).
[0012]
Next, as a process of the second stage described above, a load whose weight and center of gravity are unknown is attached to the tip of the arm of the articulated robot (step 11), and the reference posture is taught by the teaching device (step 12). Based on the operation pattern program (step 13), the articulated robot is operated according to the operation pattern program (step 14), and the drive current of the servo motor that drives each drive axis during this operation is set in advance. Detection is performed for each set scan time, and the average value of the drive current detected for each drive axis is calculated (step 15), and the average value of the drive current calculated in step 15 is calculated in step 26. Correction is performed using a correction coefficient (step 16), and for each of the drive shafts, the above step 1 is performed. The average value of the torque applied to each drive shaft during the execution of the operation pattern program in the step 14 is calculated based on the average value of the drive current corrected in step S14. By assuming that it is equivalent to the unbalance torque applied to the drive shaft, the weight of the load and the position of the center of gravity included as unknowns in the unbalance torque are calculated (step 17). The step numbers described in the section for solving the problem and the column for the claims are the same as the step numbers described in FIG.
[0013]
With such a configuration, a measurement error of the feedback current value measured by using a load whose weight and center of gravity position are known is estimated, and this is used as a correction coefficient to determine the weight and weight at a load whose weight and center of gravity position are unknown. Since it is used to calculate the position of the center of gravity, the influence of the measurement error of the measured feedback current value is eliminated.
[0014]
By the way, the above-described configuration is based on the theory described below. The basis of the theory is that the torque actually applied to the drive shaft, that is, the motor drive torque is equivalent to the torque that is dynamically obtained from the mass point model of the robot, that is, the load torque. That is, the drive current flowing through each drive shaft motor when the robot is operated with a load attached to the tip of the arm is measured, and the motor drive torque is obtained from this drive current. On the other hand, when the robot is considered as a mass point model, the load torque can be obtained dynamically from the mass point model of the robot by including the parameters of the weight of the load and the position of the center of gravity in the mass point model. Here, if it is assumed that the motor driving torque and the load torque are equivalent, the weight of the load and the position of the center of gravity included as unknowns in the mass point model of the robot can be calculated.
[0015]
More specifically, the drive current data required for calculating the motor drive torque is obtained by interposing a current detector between the servo motor that is the drive shaft motor and the servo amplifier that controls the drive motor. Can be easily obtained. However, when considering the drive shaft angle, angular velocity, and angular acceleration data required for calculating the load torque, the angle data can be easily obtained by the angle detector attached to the drive shaft. However, it is necessary to calculate the angular velocity data and the angular acceleration data by calculation processing. If this calculation is performed, the calculation processing becomes complicated, and a problem arises that a great burden is imposed on the robot controller.
[0016]
Therefore, in order to reduce the calculation processing, in the present invention, the sum of the torque due to the centrifugal force and the Coriolis force resulting from the angular velocity data in the mass point model of the robot for the operation of the drive shaft at a low speed and a constant speed. Is extremely small, and the torque caused by the inertia caused by the angular acceleration data can be ignored, and in the execution of the motion pattern program, the drive shaft is operated at a low speed and at a constant speed. As for the load torque obtained from the above, only the unbalance torque resulting from the angle data is considered. Furthermore, the current data required when calculating the motor drive torque uses the average value of the current values detected at each scan time during the execution of the operation pattern program, and the load torque (unbalance torque) As for the angle data required for calculation, the average value of the shaft angle changed during the execution of the motion pattern program is used, so the calculation processing of the weight and the center of gravity position of the load is performed after the execution of the motion pattern program. You only have to do it once.
[0017]
In this calculation process, simultaneous equations with the weight of the load and the position of the center of gravity as unknowns are solved, but in order to accurately calculate these unknowns, a large unbalance torque is preferably applied to the drive shaft during execution. In this way, an operation pattern program is created. Specifically, it is necessary to apply a large unbalanced torque to the drive shaft by causing the load to be greatly affected by gravity, that is, causing the load to swing up and down. For this purpose, it is necessary to select a reference position of the robot at a good position.
[0018]
In the invention according to claim 2, in the invention according to claim 1, the reference posture taught by the teaching device is stored in the storage device. As mentioned above, when selecting the robot's reference posture, care must be taken that a large unbalance torque is applied to the drive shaft during the execution of the motion pattern program. This selection is performed by an operator who is familiar with robot technology. If so, it is relatively easy, but it is not easy for many workers who are not familiar with robot technology. When setting the reference posture, the operator must operate the teaching device step by step to position each drive shaft of the robot. As for a handling object such as a handling robot whose load is frequently changed, it is very complicated to perform this operation every time the load is changed. Therefore, the reference posture data taught by the teaching device is stored in the storage device in the control device, and the stored reference posture data is stored in the storage device when calculating the weight of the load and the position of the center of gravity. It was called and an operation pattern program was created based on this data.
[0019]
In the invention according to claim 3, in the invention according to claim 1 or 2, a plurality of reference postures are taught, and thereby a plurality of operation pattern programs are created. In the above calculation processing for calculating the weight and the center of gravity of the load, the unknowns are a total of four unknowns: the weight m of the load and the center of gravity of the load, that is, the center of gravity coordinates (x, y, z) of the load. In order to calculate, simultaneous equations require at least four elements. When there are four or more drive axes, it is possible to create a simultaneous equation of four or more by simply executing one motion pattern program created with one reference posture. However, when there are three or less drive axes, It is not possible to create simultaneous equations of four or more elements by executing only one operation pattern program.
[0020]
In this regard, in the invention according to claim 3, as in the invention according to claim 1 described above, the mass point model of the robot considers only the unbalance torque caused by the angle data. Torque is not involved in all drive shafts constituting the articulated robot. For example, in the 6-axis vertical articulated robot shown in FIG. 3, the sum of the V-axis that is the swing axis of the upper arm, the B-axis that is the swing axis of the wrist, and the R1 axis at the tip of the arm to which the load is connected. The three shafts are greatly involved in the unbalance torque, but the other drive shafts are hardly involved in the unbalance torque. Therefore, in this case, there are only three effective elements of the simultaneous equations obtained by executing the operation pattern program once, and the minimum required four are insufficient.
[0021]
Therefore, when there are three or less drive shafts effective for calculating the unbalance torque, a plurality of reference postures are taught, and a plurality of operation pattern programs are created corresponding to each reference posture and executed. As a result, simultaneous equations of four or more elements are created. In addition, even when there are four or more effective drive shafts, if a plurality of reference postures are taught and a plurality of operation pattern programs are created corresponding to each reference posture and executed, A simultaneous equation having a large number of elements is created, and by solving this, the weight of the load and the position of the center of gravity, which are unknown numbers, can be calculated with high accuracy.
[0022]
In the invention according to claim 4, in the invention according to any one of claims 1 to 3, the operation pattern program has an operation for lifting a load against gravity, that is, an ascending operation, and a load on the same path as the ascending operation. The lowering operation, that is, the lowering operation is performed. In general, the servo motor drive current taken from the servo system includes errors due to the speed reducer efficiency and sliding resistance. Therefore, when calculating the weight of the load and the position of the center of gravity with high accuracy, it is preferable to compensate for errors due to the efficiency of the speed reducer and sliding resistance when calculating the motor drive torque from the drive current. Become. However, since the efficiency and sliding resistance of the speed reducer are values that are unique to each drive shaft and take different values depending on the operation mode of the robot, it is generally difficult to set them uniquely.
[0023]
Therefore, in the operation of lifting the load against gravity, that is, the ascending operation, and the operation of lowering the load in the same route as that of the ascending operation, that is, the descending operation, the value of the torque loss due to the reduction gear efficiency and the sliding resistance is positive or negative. Paying attention to the fact that the absolute values are equal only by reversing, in the relational expression between the motor drive torque and the load torque, the relational expression defined by the ascending action and the relational expression defined by the descending action are In addition, a relational expression that offsets the loss of torque due to the reduction gear efficiency and sliding resistance was derived. By applying this derived relational expression, the weight of the load and the position of the center of gravity can be calculated with high accuracy without being affected by errors in the efficiency of the speed reducer and sliding resistance.
[0024]
In the invention according to claim 5, in the invention according to any one of claims 1 to 4, each drive shaft is individually operated in the operation pattern program. In an articulated robot, it is well known that the operation of one drive shaft affects the torque applied to the other drive shaft. As described above, in the present invention, since only the unbalance torque is considered in the mass point model, the drive shaft is operated at a low speed and a constant speed during the execution of the operation pattern program. It can be said that the influence of the operation of one drive shaft on the torque of the other drive shaft is considerably smaller than the normal operation. However, in order to calculate the weight of the load and the position of the center of gravity with higher accuracy, it is preferable to completely eliminate the influence of the operation of one drive shaft on the torque of the other drive shaft. Each drive shaft was operated individually.
[0025]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 2 shows an example of a control apparatus for an articulated robot to which the present invention is applied. The axis operation device 10 as a teaching device is a device that teaches teaching data for an operator to operate the robot 1 using this. The command value generation device 5 inputs teaching data given by an operator via the axis operation device 10 and an operation program stored in the storage device 6, and receives command values for operating each drive axis of the robot 1. It is created and output to the servo amplifier 4. The command value created here is transferred to the storage device 6 and temporarily stored. The servo amplifier 4 inputs the command value from the command value generating device 5 and outputs a current command to the servo motor 3 that is a drive shaft motor provided for each drive shaft of the robot 1. By setting each drive shaft at a predetermined angle by this current command, the load 2 at the tip of the arm of the robot 1 can be positioned.
[0026]
The storage device 6 stores program data such as operation programs and numerical data such as angle data and teaching data. The program creation device 7 automatically generates an operation pattern program for collecting current data necessary for calculating the torque applied to each drive shaft, that is, the motor drive torque, based on the teaching data stored in the storage device 6. And transfer it to the storage device 6. This operation pattern program automatic creation work is automatically performed by an operation pattern program automatic creation program input in advance in the storage device 6. The current capturing device 9 captures current data (driving current) detected by a current detector 9 a installed between the servo amplifier 4 and the servo motor 3 and transfers it to the weight / center of gravity calculation device 8. The weight / center of gravity calculation device 8 calculates the weight and the position of the center of gravity of the load based on the current data input from the current capturing device 9.
[0027]
Here, a method of calculating a correction coefficient for correcting the detected drive current of the servo motor will be described. The drive current of an arbitrary drive axis j detected by the current detector 9a is expressed as IjThen, the torque actually applied to the drive shaft j at this time, that is, the motor drive torque TRjIs represented by Formula (1).
[0028]
[Expression 1]
Figure 0003927454
[0029]
In formula (1), RjIs the reduction ratio of drive shaft j, KtjIs a torque constant of the drive shaft j, and both are constants specific to the drive shaft. On the other hand, the torque dynamically obtained from the mass point model of the robot, that is, the load torque TMjIs represented by equation (2).
[0030]
[Expression 2]
Figure 0003927454
[0031]
In equation (2), m is the weight of the load, r (x, y, z) is the position of the center of gravity of the load, θjIs the axis angle of axis j, ωjIs the angular velocity of axis j, αjIs the angular acceleration of axis j, Jθ,jIs the angle θjA function (acceleration term) representing the inertia in the axis j, Pθ,jIs the angle θjA function (gravity term) representing the unbalance torque on the axis j, Cθ,jIs the angle θj, The functions (speed terms) representing the sum of torques due to the centrifugal force and the Coriolis force on the axis j are respectively shown. Note that the center of gravity (x, y, z) of the load is a coordinate in the wrist coordinate system and does not change depending on the posture of the robot.
[0032]
In the present invention, the motor driving torque T represented by the formula (1)RjAnd load torque T expressed by equation (2)MjAre theoretically equivalent. Here, assuming that the load 2 having a known weight and center of gravity is attached to the robot 1, the known load 2 is attached by solving the equation shown in Equation (3). Motor drive current IjCan be calculated backwards.
[0033]
[Equation 3]
Figure 0003927454
[0034]
However, the current value I which is the current data of each drive axis among the variable data described above.jAnd the angle data θjCan be easily obtained from the current detector 9a and the encoder, respectively, but the angular velocity ωj(Angular velocity data) and angular acceleration αjFor (angular acceleration data), the axis angle θjIt is necessary to calculate by calculation processing based on data such as travel time, and the calculation processing becomes complicated. Therefore, in the present invention, the angular velocity ω of the mass point model of the robot is used to move the drive shaft at a low speed and a constant speed.jSum of torques Cθ due to centrifugal force and Coriolis force caused byjIs extremely small, and the torque Jθ,jIn the execution of the motion pattern program, the drive shaft is operated at a low speed and a constant speed, so that the mass point model of the robot is unbalanced torque Pθ,jOnly the calculation was taken into account, and the calculation processing was reduced. That is, in the present invention, the driving current I of the motor when the known load 2 is attached is solved by solving the equation shown in the equation (4).jWas calculated.
[0035]
[Expression 4]
Figure 0003927454
[0036]
  On the other hand, the ideal current Ir when a known load 2 is attachedjIsDerived from equation (4) aboveCalculated by equation (5).
[0037]
[Equation 5]
Figure 0003927454
[0038]
  That is, the ideal current IrjIsThe unbalance torque Pθ of the drive shaft calculated based on the known load weight and center of gravity position, j The reduction ratio R of the drive shaft j And torque constant Kt j It is calculated by dividing by the product of.And the driving current I of the motor when the known load 2 calculated from the equation (4) is attached.jAnd the ideal current Ir when a known load 2 calculated from the equation (5) is attached.jFrom the above, a correction coefficient C for correcting the detected drive current of the servo motorjIs calculated by equation (6).
[0039]
[Formula 6]
Figure 0003927454
[0040]
Next, the correction coefficient C calculated by Equation (6)jIs used to estimate the weight m of the load and the center of gravity (x, y, z) of the load. Here, it is assumed that a load 2 whose weight and center of gravity are unknown is attached to the robot 1. As described above, in the present invention, the motor driving torque T represented by the expression (1) is used.RjAnd load torque T expressed by equation (2)MjAre theoretically equivalent to each other. Therefore, the correction coefficient C calculated by the equation (6) with respect to the equation shown in the equation (4) described above.jIs solved, that is, the equation (7) is solved to obtain the motor drive current I when the unknown load 2 is attached.jIs calculated.
[0041]
[Expression 7]
Figure 0003927454
[0042]
Specifically, in Equation (7), there are four unknowns: the weight m of the load and the gravity center position (x, y, z) of the load. Therefore, in the operation pattern program, four or more drive axes of the robot are set. Then, for each drive shaft, each drive shaft is operated by a predetermined amount (predetermined angle α) from the reference posture given as teaching data by the shaft operating device 10, and during the execution of this operation, Drive current IjGet. After the end of the operation, the detected drive current IjIs divided by the number of scans to determine the drive current I detected during the operation.jIs obtained, and from this value, the motor drive torque T which is the left side of the equation (7) is obtained.Rj(= Rj・ Ktj・ Cj・ Ij) Is required. On the other hand, the unbalance torque Pθ, which is the right side of Expression (7).jIs caused by the shaft angle of each drive shaft. Here, a value obtained by adding a half of the predetermined amount α of the movement operation to the shaft angle in the reference posture, that is, α / 2, is the shaft angle during the execution of the operation. The average value was set.
[0043]
By solving simultaneous equations of four or more elements for the equation (7) obtained by this, the unbalance torque Pθ,jThe weight m of the load and the gravity center position (x, y, z) of the load are calculated. The predetermined angle α may be set as a fixed value in advance in the operation pattern program, or an arbitrary set value may be given as one of the parameters.
[0044]
Here, a sequence of the above-described calculation process will be described with reference to the flowchart shown in FIG. In FIG. 1, (b) shows the correction coefficient C.jIs a flowchart showing a procedure for calculating the correction coefficient C, and FIG.jIt is the flowchart which showed the procedure for calculating a load weight and a load gravity center position using FIG.
[0045]
First, referring to FIG. 1B, the correction coefficient CjA procedure for calculating?
[0046]
First, a load 2 whose weight and center of gravity are known is attached to the robot 1 (step 21).
[0047]
Next, the axis operation device 10 is operated to teach the reference posture of the robot 1 as the initial posture of the robot (step 22). At the time of teaching, the posture set as the reference posture is taken by operating an inching button on the shaft operating device 10 for each drive axis. It should be noted when setting the reference posture that the reference posture is set so that a large unbalance torque is applied to the drive shaft during the execution of the motion pattern program.
[0048]
That is, since the articulated robot has a limited range of movement of each drive shaft due to its structure, an operation pattern program in which a large unbalance torque is applied to the drive shaft may not be created depending on the reference posture. For example, in the case of the articulated robot of the present embodiment shown in FIG. 3, if the reference posture is set so that the load is close to the base of the robot body as shown in FIG. The unbalance torque does not act, and as a result, the weight and center of gravity of the load cannot be calculated with high accuracy. Therefore, it is necessary to pay sufficient attention to the selection of the reference posture. In the articulated robot of this embodiment, if the reference posture is set at the position shown in FIG. 5, an operation pattern program in which a large unbalance torque acts on any of the V axis, B axis, and R1 axis is provided. Will be created.
[0049]
Next, the motion pattern program is automatically created based on the reference posture data by the motion pattern program automatic creation program stored in advance in the storage device 6 (step 23). In the present embodiment, the robot 1 is moved by a predetermined amount with respect to the reference posture, and the drive current of the servo motor 3 during the movement is detected by the current detector 9a. The necessary data for the robot includes a reference posture of the robot 1, a movement amount from the reference posture, selection of a drive axis, a movement speed, and the like. Among these, the reference posture of the robot 1 is set in step 22, but the remaining data may be given in advance as parameters.
[0050]
Next, the robot 1 is operated according to the operation pattern program created in step 23 (step 24).
[0051]
Next, the drive current of the servo motor 3 of each drive shaft during the execution of step 24 is detected (step 25). The drive current is detected at each scan time, and the drive current detected at each scan time is temporarily stored in the current capturing device 9. And the average value is calculated about the drive current detected for every scan time during execution of this operation pattern program. Specifically, the drive current detected at every scan time is summed, and this is divided by the number of scans to calculate the average value of the drive current.
[0052]
  Finally, the average value of the drive current detected in step 25,Calculated by the above equation (5)From the ratio to the ideal current, the correction coefficient CjIs obtained (step 26).
[0053]
Next, referring to FIG. 1A, the calculated correction coefficient CjThe procedure for calculating the load weight and the load center of gravity position using will be described.
[0054]
First, a load 2 whose weight and center of gravity are unknown is attached to the robot 1 (step 11).
[0055]
Next, as in step 22 described above, the axis operating device 10 is operated to teach the reference posture of the robot 1 as the initial posture of the robot (step 12). At the time of teaching, the posture set as the reference posture is taken by operating an inching button on the shaft operating device 10 for each drive axis. What should be noted when setting the reference posture is to set the reference posture so that a large unbalance torque is applied to the drive shaft during the execution of the operation pattern program, as in step 22 described above.
[0056]
Next, similarly to step 23 described above, the motion pattern program is automatically created based on the reference posture data by the motion pattern program automatic creation program stored in advance in the storage device 6 (step 13). . When calculating the load weight and the load gravity center position, the robot 1 is moved by a predetermined amount with respect to the reference posture, and the drive current of the servo motor 3 during the movement is detected by the current detector 9a. Data necessary for the automatic creation of the robot includes a reference posture of the robot 1, a movement amount from the reference posture, selection of a drive axis, a movement speed, and the like. Among these, the reference posture of the robot 1 is set in step 12, but the remaining data may be given as parameters in advance.
[0057]
Next, in the same manner as in step 24 described above, the robot 1 is operated according to the operation pattern program created in step 13 (step 14).
[0058]
Next, similarly to step 25 described above, the drive current of the servo motor 3 of each drive shaft during the execution of step 14 is detected (step 15). The drive current is detected at each scan time, and the drive current detected at each scan time is temporarily stored in the current capturing device 9. And the average value is calculated about the drive current detected for every scan time during execution of this operation pattern program. Specifically, the drive current detected at every scan time is summed, and this is divided by the number of scans to calculate the average value of the drive current.
[0059]
Next, the average value of the drive current detected in step 15 is the correction coefficient C obtained in step 26.j(Step 16). Specifically, the correction coefficient C obtained in step 26 is added to the average value of the drive current detected in step 15.jIs multiplied to obtain the corrected drive current.
[0060]
Finally, the weight of the load and the position of the center of gravity are calculated by solving the simultaneous equations for Equation (7) based on the drive current of the servo motor of each drive shaft corrected in Step 16 (Step 17). Here, the unbalance torque Pθ, which is the right side of the equation (7).jIs caused by the shaft angle of each drive shaft, but here, a value obtained by adding half of the predetermined amount α of the motion to the shaft angle in the reference posture, that is, α / 2, is the shaft angle during the motion execution. The average value was set. If four or more drive shafts are selected, a simultaneous equation of four or more is completed. By solving these simultaneous equations, the unbalance torque Pθ,jThe weight of the load and the position of the center of gravity included in the are calculated.
[0061]
By the way, when selecting the reference posture of the robot 1, care must be taken that a large unbalance torque is applied to the drive shaft during the execution of the motion pattern program. It is relatively easy, but it is not easy for many workers who are not familiar with robot technology. Also, when setting the reference posture, it is necessary for the operator to position each drive shaft of the robot 1 by operating the teaching device one by one, and there is almost no replacement of the welding gun as a load like a welding robot. In any case, it is very cumbersome to perform this operation every time the load is changed for a handling object such as a handling robot that is frequently changed. Therefore, the reference posture data taught by the teaching device is stored in the storage device in the control device, and the stored reference posture data is stored in the storage device when calculating the weight of the load and the position of the center of gravity. It may be called and an operation pattern program may be created based on this data.
[0062]
The mass point model of the robot considers only the unbalance torque caused by the angle data, but this unbalance torque is not involved in all the drive shafts constituting the articulated robot. For example, in the 6-axis vertical articulated robot shown in FIG. 3, the sum of the V-axis that is the swing axis of the upper arm, the B-axis that is the swing axis of the wrist, and the R1 axis at the tip of the arm to which the load is connected. The three shafts are greatly involved in the unbalance torque, but the other drive shafts are hardly involved in the unbalance torque. Therefore, in this case, there are only three effective elements of the simultaneous equations obtained by executing the operation pattern program once, and the minimum required four are insufficient.
[0063]
Therefore, when there are three or less drive shafts effective for calculating the unbalance torque, a plurality of reference postures are taught, and a plurality of operation pattern programs are created corresponding to each reference posture and executed. Thus, simultaneous equations of four or more elements may be created. In addition, even when there are four or more effective drive shafts, if a plurality of reference postures are taught and a plurality of operation pattern programs are created corresponding to each reference posture and executed, A simultaneous equation having many elements is created, and by solving this, the weight of the load and the position of the center of gravity of the load, which are unknown numbers, can be calculated with high accuracy.
[0064]
By the way, generally, the drive current of the servo motor 3 taken in from the servo system includes errors due to the efficiency of the speed reducer and the sliding resistance. Therefore, when calculating the weight of the load and the position of the center of gravity with high accuracy, it is preferable to compensate for the error due to the efficiency of the reduction gear and the sliding resistance when calculating the motor driving torque from the driving current. . However, since the efficiency and sliding resistance of the speed reducer are values that are unique to each drive shaft and take different values depending on the operation form of the robot 1, it is generally difficult to set them uniquely. .
[0065]
Therefore, in the operation of lifting the load against gravity, that is, the ascending operation, and the operation of lowering the load in the same route as that of the ascending operation, that is, the descending operation, the value of the torque loss due to the reduction gear efficiency and the sliding resistance is positive or negative. We decided to pay attention to the fact that the absolute values are equal only if is reversed. That is, the torque loss due to the reduction gear efficiency and sliding resistance on the drive shaft j is expressed as τjThen, the relational expressions between the motor driving torque and the load torque in the ascending operation and the descending operation are expressed by Expression (8) and Expression (9), respectively.
[0066]
[Equation 8]
Figure 0003927454
[0067]
Iup in equation (8)jIs the drive current during the ascending operation, and Idown in equation (9)jIs the drive current during the descent operation. Here, by adding the equations (8) and (9) together, the torque loss τ due to the reduction gear efficiency and sliding resistancejEquation (10) in which is offset is derived.
[0068]
[Equation 9]
Figure 0003927454
[0069]
When a highly accurate calculation result that eliminates the effects of the reduction gear efficiency and sliding resistance error is required, the weight of the load and the position of the center of gravity may be calculated by applying equation (10).
[0070]
By the way, in an articulated robot, it is well known that the operation of one drive shaft affects the torque applied to the other drive shaft. As described above, in the present invention, since only the unbalance torque is considered in the mass point model, the drive shaft is operated at a low speed and a constant speed during the execution of the operation pattern program. It can be said that the influence of the operation of one drive shaft on the torque of the other drive shaft is considerably smaller than the normal operation. However, in order to calculate the weight of the load and the position of the center of gravity with higher accuracy, it is preferable to completely eliminate the influence of the operation of one drive shaft on the torque applied to the other drive shaft. In order to cope with this, an operation pattern program automatic creation program that automatically creates an operation pattern program is created so that an operation pattern program is created so that each drive axis is individually operated based on the reference posture data. Just programming.
[0071]
【The invention's effect】
  According to the first aspect of the present invention, in the method for calculating the weight and the center of gravity position of the load located at the arm tip of the articulated robot having a plurality of drive shafts driven by the servo motor, the load weight and the load center of gravity position are calculated. The calculation process was divided into the following two stages. That is, in the first stage, a load having a known weight and center of gravity position is attached to the tip of an articulated robot arm, and the articulated robot is operated according to an operation pattern program.From the ideal current calculated from the unbalanced torque of the drive shaft calculated based on the known load weight and position of the center of gravity, the reduction ratio of the drive shaft, and the torque constantThen, a correction coefficient for correcting the detected drive current is calculated. Next, in the second stage, a load whose weight and center of gravity are unknown is attached to the arm tip of the articulated robot, the articulated robot is operated according to the operation pattern program, and the detected drive current is calculated by the correction coefficient described above. Based on the corrected drive current, the torque applied to each drive shaft during the execution of the operation pattern program is calculated, and the torque applied to each drive shaft is equivalent to the unbalance torque applied to each drive shaft. As a result, the weight of the load and the position of the center of gravity included as unknowns in the unbalance torque are calculated.
[0072]
As a result, the measurement error of the feedback current value measured by using a load whose weight and center of gravity position are known is estimated, and this is used as a correction coefficient to calculate the weight and center of gravity position of the load whose weight and center of gravity are unknown. Therefore, the influence of the measurement error of the measured feedback current value is eliminated, and as a result, the calculation accuracy of the load weight and the load gravity center position at the arm tip of the articulated robot is increased.
[0073]
According to the invention of claim 2, in the invention of claim 1, the reference posture taught by the teaching device is stored in the storage device. Therefore, the reference posture data taught by the teaching device is stored in a storage device in the control device, and the stored reference posture data is stored in the storage device when calculating the load weight and the center of gravity position. Since it is called and an operation pattern program is created based on this data, it is no longer necessary to set the reference posture each time. As a result, for example, the reference posture data input is performed by a person in charge of a manufacturer who is familiar with the robot technology, and it becomes possible to eliminate the need for the reference posture data input for the user side worker.
[0074]
According to the invention of claim 3, in the invention of claim 1 or 2, a plurality of reference postures are taught, whereby a plurality of operation pattern programs are created. For this reason, when there are three or less drive shafts effective for calculating the unbalance torque, a plurality of operation pattern programs corresponding to each reference posture are created by teaching a plurality of reference postures. This makes it possible to create four or more simultaneous equations. In addition, even when there are four or more effective drive shafts, simultaneous equations having a large number of elements are created in the same way, and by solving this, the weight of the load and the position of the center of gravity are calculated with high accuracy. It became possible.
[0075]
According to the invention according to claim 4, in the invention according to any one of claims 1 to 3, in the operation pattern program, an operation for lifting a load against gravity, that is, an ascending operation, and a load on the same path as the ascending operation are performed. The operation of lowering, that is, the lowering operation is performed. In the relational expression derived by these two actions, that is, the relational expression between the motor driving torque calculated from the driving current and the load torque calculated from the mass point model of the robot in each of the ascending motion and the descending motion, By adding the two relational expressions, a relational expression that offsets the loss of torque due to the reduction gear efficiency and sliding resistance was derived. Therefore, by applying this derived relational expression, it is possible to calculate the weight of the load and the position of the center of gravity with high accuracy without being affected by the error of the reduction gear efficiency and sliding resistance.
[0076]
According to the invention according to claim 5, in the invention according to any one of claims 1 to 4, each drive shaft is individually operated in the operation pattern program. Therefore, the influence of the operation of one drive shaft on the torque of the other drive shaft can be completely eliminated, and the weight of the load and the position of the center of gravity can be calculated with higher accuracy.
[Brief description of the drawings]
FIG. 1 is a flowchart showing a procedure of calculation processing according to an embodiment of the present invention, and FIG.jThe flowchart which showed the procedure for calculating A, (a) The figure is the calculated correction coefficient CjIt is the flowchart which showed the procedure for calculating a load weight and a load gravity center position using FIG.
FIG. 2 is a block diagram showing an example of a control device for the articulated robot 1 to which the present invention is applied.
FIG. 3 is an external view showing an example of an articulated robot 1 to which the present invention is applied.
FIG. 4 is a diagram illustrating a reference posture of the robot 1 that is not subject to a large imbalance.
FIG. 5 is a diagram illustrating a reference posture of the robot 1 that is subject to a large unbalance.
[Explanation of symbols]
1 Articulated robot
2 Load
3 Servo motor
4 Servo amplifier
5 Command value generator
6 Storage device
7 Program creation device
8 Weight / center of gravity calculation device
9 Current capture device
10 Teaching device (axis operation device)

Claims (5)

サーボモータによって駆動される複数の駆動軸を備えた多関節ロボットのアーム先端に位置する負荷の重量及び重心位置を算出する方法において、
多関節ロボットのアーム先端に重量及び重心位置が既知である負荷を取り付け(ステップ21)、
教示装置により基準姿勢を教示し(ステップ22)、
該基準姿勢に基づいて動作パターンプログラムが作成されるようにし(ステップ23)、
該動作パターンプログラムに従って多関節ロボットを動作させ(ステップ24)、
該動作中に各駆動軸を駆動するサーボモータの駆動電流を予め設定されたスキャンタイム毎に検出し、各駆動軸のそれぞれについて前記検出された駆動電流の平均値を算出し(ステップ25)、
各駆動軸のそれぞれについて、前記既知である負荷の重量及び重心位置に基づいて算出される駆動軸のアンバランストルクを、駆動軸の減速比とトルク定数とを乗したもので除することにより理想電流を算出し、該理想電流と前記駆動電流の平均値との比から補正係数を算出し(ステップ26)、
多関節ロボットのアーム先端に重量及び重心位置が未知である負荷を取り付け(ステップ11)、
教示装置により基準姿勢を教示し(ステップ12)、
該ステップ12において教示された基準姿勢に基づいて動作パターンプログラムが作成されるようにし(ステップ13)、
該ステップ13において作成された動作パターンプログラムに従って多関節ロボットを動作させ(ステップ14)、
該ステップ14における動作中に各駆動軸を駆動するサーボモータの駆動電流を予め設定されたスキャンタイム毎に検出し、各駆動軸のそれぞれについて検出された駆動電流の平均値を算出し(ステップ15)、
該ステップ15において算出した駆動電流の平均値を前記ステップ26において算出した補正係数により補正し(ステップ16)、
各駆動軸のそれぞれについて、前記ステップ16において補正された駆動電流の平均値に基づいて前記ステップ14における動作パターンプログラムの実行中に各駆動軸にかかったトルクの平均値を算出し、該各駆動軸にかかったトルクの平均値は各駆動軸にかかるアンバランストルクと等価であるとすることによりアンバランストルクに未知数として含まれる負荷の重量及び重心位置を算出する(ステップ17)ようにしたことを特徴とする多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。
In a method of calculating the weight and center of gravity position of a load located at the arm tip of an articulated robot having a plurality of drive shafts driven by a servo motor,
Attach a load whose weight and center of gravity are known to the tip of an articulated robot arm (step 21);
Teaching the reference posture with the teaching device (step 22),
An operation pattern program is created based on the reference posture (step 23),
Operating the articulated robot in accordance with the motion pattern program (step 24);
A drive current of a servo motor that drives each drive shaft during the operation is detected at each preset scan time, and an average value of the detected drive current is calculated for each drive shaft (step 25),
For each drive shaft , the drive shaft unbalance torque calculated based on the known load weight and center of gravity position is divided by the product of the drive shaft reduction ratio and the torque constant. A current is calculated , and a correction coefficient is calculated from the ratio between the ideal current and the average value of the drive current (step 26);
A load whose weight and center of gravity are unknown is attached to the arm tip of the articulated robot (step 11).
Teaching the reference posture with the teaching device (step 12),
An operation pattern program is created based on the reference posture taught in step 12 (step 13),
The articulated robot is operated according to the operation pattern program created in step 13 (step 14),
The drive current of the servo motor that drives each drive shaft during the operation in step 14 is detected at each preset scan time, and the average value of the drive current detected for each drive shaft is calculated (step 15). ),
The average value of the drive current calculated in step 15 is corrected by the correction coefficient calculated in step 26 (step 16),
For each drive shaft, the average value of the torque applied to each drive shaft during the execution of the operation pattern program in step 14 is calculated based on the average value of the drive current corrected in step 16, and each drive shaft is calculated. The average value of the torque applied to the shaft is equivalent to the unbalance torque applied to each drive shaft, thereby calculating the weight and the center of gravity position of the load included as unknowns in the unbalance torque (step 17). A method for automatically calculating the load weight and load center of gravity position of an articulated robot.
前記教示装置により教示された基準姿勢を記憶装置に記憶させるようにしたことを特徴とする請求項1に記載の多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。2. A method for automatically calculating a load weight and a load center of gravity position of an articulated robot according to claim 1, wherein the reference posture taught by the teaching device is stored in a storage device. 前記基準姿勢を複数個教示し、これにより前記動作パターンプログラムを複数個作成するようにしたことを特徴とする請求項1または2に記載の多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。3. A method for automatically calculating a load weight and a load center-of-gravity position of an articulated robot according to claim 1, wherein a plurality of said reference postures are taught and a plurality of said operation pattern programs are created thereby. . 前記動作パターンプログラムでは、重力に反して負荷を持ち上げる動作即ち上昇動作と、該上昇動作と同一の経路について負荷を持ち下げる動作即ち下降動作とを行わせるようにしたことを特徴とする請求項1乃至3のいずれかに記載の多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。2. The operation pattern program according to claim 1, wherein an operation of raising a load against gravity, that is, an ascending operation, and an operation of lowering a load on the same path as the ascending operation, that is, a descending operation are performed. The automatic calculation method of the load weight and load gravity center position of the articulated robot according to any one of claims 1 to 3. 前記動作パターンプログラムでは、各駆動軸を個別に動作させるようにしたことを特徴とする請求項1乃至4のいずれかに記載の多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。5. The method for automatically calculating the load weight and load center of gravity position of an articulated robot according to claim 1, wherein each of the drive axes is individually operated in the operation pattern program.
JP2002187083A 2002-06-27 2002-06-27 Automatic calculation method of load weight and load center of gravity position of articulated robot Expired - Fee Related JP3927454B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002187083A JP3927454B2 (en) 2002-06-27 2002-06-27 Automatic calculation method of load weight and load center of gravity position of articulated robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002187083A JP3927454B2 (en) 2002-06-27 2002-06-27 Automatic calculation method of load weight and load center of gravity position of articulated robot

Publications (2)

Publication Number Publication Date
JP2004025387A JP2004025387A (en) 2004-01-29
JP3927454B2 true JP3927454B2 (en) 2007-06-06

Family

ID=31182226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002187083A Expired - Fee Related JP3927454B2 (en) 2002-06-27 2002-06-27 Automatic calculation method of load weight and load center of gravity position of articulated robot

Country Status (1)

Country Link
JP (1) JP3927454B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102990642A (en) * 2011-09-09 2013-03-27 发那科株式会社 Robot having workpiece mass measurement function

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211467A (en) * 2009-03-10 2010-09-24 Fanuc Ltd Numerical control equipment controlling machine tool having function of estimating weight of moving part
KR101575487B1 (en) * 2014-06-11 2015-12-08 현대자동차주식회사 Method and system for calculating weight and center of gravity of object for robot
JP6166305B2 (en) * 2015-05-08 2017-07-19 ファナック株式会社 Load parameter setting device and load parameter setting method
JP6464205B2 (en) 2017-01-17 2019-02-06 ファナック株式会社 Robot controller
JP6844434B2 (en) * 2017-06-15 2021-03-17 株式会社デンソーウェーブ Robot load center of gravity position estimation device and robot load center of gravity position estimation method
JP6795540B2 (en) * 2018-04-24 2020-12-02 ファナック株式会社 Devices, methods and programs for estimating load weight and center of gravity position using a robot
DE102019101595B3 (en) * 2019-01-23 2020-03-12 Franka Emika Gmbh Method for determining a weight and a center of gravity of a robot manipulator load
DE102019204564A1 (en) * 2019-04-01 2020-10-01 Kuka Deutschland Gmbh Determining a parameter of a force acting on a robot
WO2021186254A1 (en) * 2020-03-19 2021-09-23 Auris Health, Inc. Systems and methods for dynamic adjustments based on load inputs for robotic systems
CN112013840B (en) * 2020-08-19 2022-10-28 安克创新科技股份有限公司 Sweeping robot and map construction method and device thereof
WO2022113420A1 (en) * 2020-11-30 2022-06-02 株式会社不二越 Robot and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102990642A (en) * 2011-09-09 2013-03-27 发那科株式会社 Robot having workpiece mass measurement function
CN102990642B (en) * 2011-09-09 2015-06-03 发那科株式会社 Robot having workpiece mass measurement function

Also Published As

Publication number Publication date
JP2004025387A (en) 2004-01-29

Similar Documents

Publication Publication Date Title
JP3766484B2 (en) Automatic calculation method of load weight and load center of gravity position of articulated robot
JP5327722B2 (en) Robot load estimation apparatus and load estimation method
US9156164B2 (en) Method for adjusting parameters of impedance control
TWI630081B (en) Direct teaching method of robot
US6204619B1 (en) Dynamic control algorithm and program for power-assisted lift device
JP3927454B2 (en) Automatic calculation method of load weight and load center of gravity position of articulated robot
US9211646B2 (en) Control apparatus and control method for robot arm, assembly robot, control program for robot arm, and control-purpose integrated electronic circuit for robot arm
JP6484265B2 (en) Robot system having learning control function and learning control method
TW201718204A (en) Method for teaching robot and device for controlling robot arm
JP6248544B2 (en) Robot, control device, robot system
JP5916583B2 (en) Weaving control device for articulated robot
JPH08118275A (en) Controller for manipulator
DK2492062T3 (en) industrial Robot
JP2001525734A (en) Method and apparatus for directly commanding automatic machines
JP2017209762A (en) Robot device, robot control method, program, recording medium and production method of article
JP7164368B2 (en) robot equipment
JP2007066001A (en) Control unit for robot
US20210039256A1 (en) Robot control method
WO2019171516A1 (en) Inertial parameter identification system of vertically articulated robot, inertial parameter identification method, and control device and control method for vertically articulated robot
JP5708091B2 (en) Robot control method and robot control apparatus
JP3577124B2 (en) Method of acquiring mating data using force control robot
JP2000094371A (en) Shortest time controller of robot
JPS60263206A (en) Control device of manipulator
JP5803179B2 (en) Robot control method and robot control apparatus
JP2020110884A (en) Robot control device, robot control method, and robot control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061215

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: 20070227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070302

R150 Certificate of patent or registration of utility model

Ref document number: 3927454

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100309

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120309

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120309

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130309

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130309

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140309

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees