JP3766484B2 - 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 - Google Patents
多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 Download PDFInfo
- Publication number
- JP3766484B2 JP3766484B2 JP30547596A JP30547596A JP3766484B2 JP 3766484 B2 JP3766484 B2 JP 3766484B2 JP 30547596 A JP30547596 A JP 30547596A JP 30547596 A JP30547596 A JP 30547596A JP 3766484 B2 JP3766484 B2 JP 3766484B2
- Authority
- JP
- Japan
- Prior art keywords
- load
- center
- weight
- gravity
- drive
- 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 - Lifetime
Links
Images
Landscapes
- Manipulator (AREA)
Description
【発明の属する技術分野】
サーボモータにより駆動し、その姿勢を記憶、再生できる多関節ロボットにおいて、アーム先端に取り付けられたツール等の負荷の重量及び重心位置を算出する方法に関する。
【0002】
【従来の技術】
多関節ロボットの動作制御では、アーム先端に位置する負荷の重量及び重心位置の影響を考慮する必要があることは広く知られている。具体的に言うと、多関節ロボットの動作制御のうち、駆動軸に使用されている減速機にかかるトルクを制御する加減速制御においては、ロボット自身の質点情報とともにアーム先端に位置する負荷の質点情報すなわち重量及び重心位置のパラメータが必要不可欠である。例えば、溶接ロボットの加減速制御においては、アーム先端に取り付けられた溶接ガンの重量及び重心位置を予め設定しておく必要がある。また、ハンドリングロボットの加減速制御においては、アーム先端に取り付けられた把持部材単独の重量及び重心位置と、把持部材により被搬送物を把持した状態におけるアーム先端の負荷全体の重量及び重心位置とを予め設定しておき、被搬送物を把持しない状態における加減速制御においては前者の重量及び重心位置を考慮し、一方、被搬送物を把持した状態における加減速制御においては後者の重量及び重心位置を考慮し制御するようにしている。
【0003】
さらに、グラインダがけやバリ取りのような切削加工ロボットでは、加減速制御の他に力制御においても、切削ツールが被加工物から受ける切削反力を算出する際に、切削ツール自身の重量及び重心位置を基に、切削ツール自身が受ける重力等の影響を算出しこれを排除するようにしている。このようにアーム先端に位置する負荷の重量及び重心位置は、多くの多関節ロボットの動作制御において重要な要素となっており、これを正確に算出することは動作制御を高精度に行う上では必須の条件となっている。
【0004】
ハンドリングロボットにおける負荷の重量及び重心位置を算出する方法は、特開平3−55189号等に開示されている。特開平3−55189号では、ロボットのアーム先端に力センサを介して把持部材を取り付け、その把持部材に被搬送物を持たせた状態で、予め設定された手順に従ってロボットアームの姿勢をロボット制御装置からの指令値によって種々変化させ、各姿勢毎の姿勢データと力センサからの出力値とを測定し、姿勢データを基に力センサ自身、把持部材、及び被搬送物等のアーム先端の負荷の重量及びその重心位置を算出するようにしている。
【0005】
また、切削加工ロボットにおける負荷としての切削ツールの重量及び重心位置を算出する方法は、特開平6−315882号等に開示されている。特開平6−315882号においても前述の特開平3−55189号と同様に、ロボットアームに複数の姿勢をとらせ、各姿勢での姿勢データと力センサからの出力値を基にアーム先端の負荷すなわち切削ツールの重量及びその重心位置を算出するようにしているが、力センサにおいて検出される力データは、切削ツールが力作業を行っていないとき即ち切削加工を行っていないときには切削ツール自身の重量であり、被加工物に接触して力作業を行っているとき即ち切削加工を行っているときには被加工物から切削ツールに加わる力と切削ツール自身の重量とが複合されたものである点が、ハンドリングロボットにはない切削加工ロボット特有のものとなっている。
【0006】
【発明が解決しようとする課題】
しかし、これらの従来技術はいずれも、負荷の重量及び重心位置の算出過程においてアーム先端部に取り付けた力センサからの出力値を必要としていた。切削加工ロボットにおいて行われる力制御においては、切削加工時に切削ツールにかかる切削反力を測定するために一般に力センサの取り付けは必要不可欠なものとなっているが、ハンドリングロボットや溶接ロボットにおいて行われる加減速制御においては、負荷の重量及び重心位置の算出過程以外では一般に力センサは必要ではない。負荷の重量及び重心位置の算出時期は、ハンドリングロボットにおいては把持部材や被搬送物が変更になったときのみでよく、使用形態にもよるが一般にその頻度は少ない場合が多く、また溶接ロボットにいたっては負荷である溶接ガンを交換することはほとんどないことを考慮すると初期導入時やメンテナンス終了時のみでよいことになり、負荷の重量及び重心位置の算出のみのために力センサ及びその周辺機器を設置することはコストの面で問題があった。
【0007】
本発明は、上記の課題を解決するためになされたものであり、力センサを使用することなく多関節ロボットのアーム先端の負荷の重量及び重心位置を自動的に算出する方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記の課題を解決するために、請求項1にかかる発明では、サーボモータによって駆動される複数の駆動軸を備えた多関節ロボットのアーム先端に位置する負荷の重量及び重心位置を算出する方法において、教示装置により基準姿勢を教示し、この基準姿勢に基づいて重力に反して負荷を持ち上げる動作即ち上昇動作とこの上昇動作と同一の経路を負荷を持ち下げる動作即ち下降動作とが行われるような動作パターンプログラムを作成し、作成された動作パターンプログラムに従ってアーム先端に所定の負荷を有した多関節ロボットを動作させ、この動作中に各駆動軸を駆動するサーボモータの駆動電流を予め設定されたスキャンタイム毎に検出し、各駆動軸のそれぞれについて、検出された駆動電流の平均値に基づいて動作パターンプログラムの実行中に各駆動軸にかかったトルクの平均値を算出し、この各駆動軸にかかったトルクの平均値は各駆動軸にかかるアンバランストルクと等価であるとすることにより、アンバランストルクに未知数として含まれる負荷の重量及び重心位置を算出するようにしたことを特徴とする多関節ロボットの負荷重量及び負荷重心位置の自動算出方法を提供するようにした。
【0009】
上記の構成は以下に述べる理論に基づいている。理論の根幹は、駆動軸に実際にかかるトルクすなわちモータ駆動トルクはロボットの質点モデルから力学的に求められるトルクすなわち負荷トルクと等価であるとするものである。すなわち、アーム先端に負荷を取り付けた状態でロボットを動作させたときの各駆動軸モータに流れる駆動電流を測定し、この駆動電流よりモータ駆動トルクを求める。一方、ロボットを質点モデルとして考えたとき、この質点モデルに負荷の重量及び重心位置のパラメータを含ませるようにすれば、負荷トルクはこのロボットの質点モデルから力学的に求めることができる。ここで、モータ駆動トルクと負荷トルクが等価であると仮定すれば、ロボットの質点モデルに未知数として含まれている負荷の重量及び重心位置を計算により算出することができる。
【0010】
さらに詳述すれば、モータ駆動トルクを算出する際に必要となる駆動電流データは、駆動軸モータであるサーボモータとこれを制御するサーボアンプとの間に電流検出器を介在させるなどすることにより容易に得ることができる。しかし、負荷トルクを算出する際に必要となる駆動軸の角度、角速度、及び角加速度の各データについて考えると、このうち角度データについては駆動軸に付属の角度検出器により容易に得ることができるが、角速度データ及び角加速度データについては計算処理により算出する必要があり、これを算出するようにすると計算処理が煩雑になり、ロボット制御装置に多大の負担をかけることになるという問題が生ずる。
【0011】
そこで、計算処理を軽減するために、本発明では、駆動軸を低速かつ一定速度にて動作させる分については、ロボットの質点モデルのうち、角速度データに起因する遠心力及びコリオリ力によるトルクの和は極めて小さく、また角加速度データに起因するイナーシャによるトルクは無視してもよいことに着目し、動作パターンプログラムの実行においては駆動軸を低速かつ一定速度にて動作させ、これによりロボットの質点モデルから求められる負荷トルクについては角度データに起因するアンバランストルクのみを考慮することとした。さらに、モータ駆動トルクを算出する際に必要となる電流データは、動作パターンプログラムの実行中にスキャンタイム毎に検出される電流値の平均値を使用し、また、負荷トルク(アンバランストルク)を算出する際に必要となる角度データについては、動作パターンプログラムの実行中に変化した軸角度の平均値を使用することとしたので、負荷の重量及び重心位置の算出処理は動作パターンプログラムの実行後に1回だけ行えば済むことになる。
【0012】
なお、この計算処理においては負荷の重量及び重心位置を未知数とする連立方程式を解くことになるが、これらの未知数を精度良く算出するために、好ましくは実行中に大きなアンバランストルクが駆動軸にかかるように動作パターンプログラムが作成されるようにする。具体的には、負荷の動作において重力の影響を大きく受けるような、すなわち負荷が上下に揺動するような動作を行わせることにより、駆動軸に大きなアンバランストルクがかかるようにする必要があり、このためにはロボットの基準姿勢を良好な位置に選定する必要がある。
さらに、この請求項1にかかる発明では、動作パターンプログラムでは、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路を負荷を持ち下げる動作即ち下降動作とを行わせるようにした。一般に、サーボ系より取り込まれるサーボモータの駆動電流には、減速機の効率及び摺動抵抗による誤差が含まれている。そのため、負荷の重量及び重心位置を高精度に算出することを考えた場合、駆動電流よりモータ駆動トルクを算出する際は、減速機の効率及び摺動抵抗による誤差を補償することが好ましいことになる。しかし、減速機の効率及び摺動抵抗は駆動軸個々に固有な値であるとともにロボットの動作形態によっても異なる値をとる数値であるので、これを一義的に設定することは一般に困難である。
そこで、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路を負荷を持ち下げる動作即ち下降動作とでは、減速機の効率及び摺動抵抗によるトルクのロスの値は正負が逆となるだけで絶対値は等しくなるということに着目し、モータ駆動トルクと負荷トルクとの関係式において、上昇動作により定義付けられる関係式と下降動作により定義付けられる関係式の2つを加え合わせることにより、減速機の効率及び摺動抵抗によるトルクのロスを相殺した関係式を導出するようにした。この導出された関係式を適用することにより、減速機の効率及び摺動抵抗の誤差の影響を受けることなく、負荷の重量及び重心位置を高精度に算出することができるようになる。
【0013】
請求項2にかかる発明では、請求項1にかかる発明において、教示装置により教示された基準姿勢を記憶装置に記憶させるようにした。前述のように、ロボットの基準姿勢の選定に際しては、動作パターンプログラムの実行中に大きなアンバランストルクが駆動軸にかかるように注意しなければならないが、この選定作業はロボット技術に精通した作業者であれば比較的容易であるが、ロボット技術に精通しない多くの作業者にとっては容易なことではない。また、基準姿勢の設定に際しては、作業者が教示装置を逐一操作してロボットの各駆動軸を位置決めさせる必要があり、溶接ロボットのように負荷である溶接ガンの交換がほとんどないものについてはともかく、ハンドリングロボットのように負荷である被搬送物が頻繁に変更されるものについては、負荷が変更になる度毎にこの作業を行うのは大変煩雑となる。そこで、教示装置により教示された基準姿勢のデータは制御装置内の記憶装置に記憶するようにしておき、負荷の重量及び重心位置の算出の際には記憶された基準姿勢のデータが記憶装置より呼び出され、このデータに基づき動作パターンプログラムが作成されるようにした。
【0014】
請求項3にかかる発明では、請求項1または2にかかる発明において、基準姿勢を複数個教示し、これにより動作パターンプログラムが複数個作成されるようにした。負荷の重量及び重心位置算出する上記の計算処理においては、その未知数は負荷の重量m及び負荷の重心位置即ち負荷の重心座標(x,y,z)の計4つであり、これら4つの未知数を算出するためには連立方程式は最低でも4元必要となる。駆動軸が4つ以上の場合は1つの基準姿勢によって作成される1つの動作パターンプログラムを実行させるだけで4元以上の連立方程式を作成することができるが、駆動軸が3つ以下の場合は1つの動作パターンプログラムの実行のみでは4元以上の連立方程式は作成できない。
【0015】
これに関連して、請求項3にかかる発明でも前述の請求項1にかかる発明と同様に、ロボットの質点モデルは角度データに起因するアンバランストルクのみを考慮することとしているが、このアンバランストルクは多関節ロボットを構成する全ての駆動軸に関与されるわけではない。例えば、図3に示す6軸の垂直多関節ロボットにおいては、上腕の揺動軸であるV軸、手首部分の揺動軸であるB軸、及び負荷が接続されるアーム先端のR1軸の合計3軸がアンバランストルクに大きく関与することになるが、その他の駆動軸はアンバランストルクにほとんど関与しない。したがって、この場合、1回の動作パターンプログラムの実施により得られる連立方程式の有効な元数は3つしかなく、最低必要となる4つには足りないことになる。
【0016】
そこで、アンバランストルクの算出に有効な駆動軸が3つ以下の場合においては、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにし、これにより4元以上の連立方程式が作成されるようにした。また、有効な駆動軸が4つ以上の場合においても、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにすれば、多くの元数を有する連立方程式が作成されることとなり、これを解くことにより未知数である負荷の重量及び負荷の重心位置を高精度に算出することができるようになる。
【0019】
請求項4にかかる発明では、請求項1乃至3のいずれかにかかる発明において、動作パターンプログラムでは各駆動軸を個別に動作させるようにした。多関節ロボットにおいて、1つの駆動軸の動作が他の駆動軸にかかるトルクに影響を与えることはよく知られるところである。前述のように、本発明では、質点モデルにおいてアンバランストルクのみを考慮するようにしているために、動作パターンプログラムの実行中は駆動軸を低速かつ一定速度にて動作させるようにしており、1つの駆動軸の動作が他の駆動軸のトルクに与える影響は通常の動作に比してかなり少ないと言える。しかし、より高精度に負荷の重量及び重心位置を算出するためには、1つの駆動軸の動作が他の駆動軸のトルクに与える影響を完全に排除することが好ましく、そのために動作パターンプログラムでは各駆動軸を個別に動作させるようにした。
【0020】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照して説明する。図2は本発明が適用される多関節ロボットの制御装置の一例を示したものである。教示装置としての軸操作装置10は作業者がこれを使用してロボット1を操作するためのティーチングデータを教示する装置である。指令値生成装置5は、軸操作装置10を介して作業者が与えたティーチングデータや記憶装置6に記憶されている動作プログラムを入力し、各駆動軸を動作させるための指令値を作成し、これをサーボアンプ4へ出力する。また、ここで作成された指令値は記憶装置6へ転送し一時的に記憶される。サーボアンプ4は指令値生成装置5からの指令値を入力し、ロボット1の各駆動軸毎に設けられた駆動軸モータであるサーボモータ3に対して電流指令を出力する。この電流指令によって各駆動軸が所定の角度に設定されることにより、ロボット1のアーム先端の負荷2を位置決めすることができる。
【0021】
記憶装置6には、動作プログラムなどのプログラムデータ、及び角度データやティーチングデータ等の数値データが記憶される。プログラム作成装置7では、記憶装置6に記憶されているティーチングデータを基に、各駆動軸にかかるトルクすなわちモータ駆動トルクを算出するために必要な電流データを採取するための動作パターンプログラムを自動的に作成し、これを記憶装置6へ転送する。この動作パターンプログラムの自動作成作業は、記憶装置6に予め入力されている動作パターンプログラムの自動作成プログラムにより自動的に行われる。電流取り込み装置9では、サーボアンプ4とサーボモータ3との間に設置された電流検出器9aにおいて検出された電流データ(駆動電流)を取り込み、これを重量・重心演算装置8へ転送する。重量・重心演算装置8では、電流取り込み装置9から入力された電流データに基づいて、負荷の重量及び重心位置を算出する。
【0022】
ここで、重量・重心演算装置8にて行われる負荷の重量及び重心位置の算出方法について、その根幹となる理論も交えて説明する。電流検出器9aにより検出された任意の駆動軸jの駆動電流をIj とすると、このとき駆動軸jに実際にかかるトルクすなわちモータ駆動トルクTRjは式(1)で表される。
【0023】
【数1】
【0024】
式(1)において、Rj は駆動軸jの減速比、Ktj は駆動軸jのトルク定数であり、双方とも駆動軸に固有な定数である。一方、ロボットの質点モデルから力学的に求められるトルクすなわち負荷トルクTMjは式(2)で表される。
【0025】
【数2】
【0026】
式(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)は手首座標系における座標であり、ロボットの姿勢によって変化するものではない。
【0027】
本発明では、式(1)で表されるモータ駆動トルクTRjと式(2)で表される負荷トルクTMjとは理論的には等価であると考えることにした。すなわち式(3)に示す方程式を解くことにより、未知数である負荷の重量m及び負荷の重心位置(x,y,z)が算出されることになる。
【0028】
【数3】
【0029】
具体的には、式(3)においては未知数は負荷の重量m及び負荷の重心位置(x,y,z)の4つであることを考慮し、ロボットの駆動軸を4つ以上設定し、各駆動軸のそれぞれについて、基準姿勢から各駆動軸を所定量動作させ、この動作の実行中に各駆動軸の駆動電流Ij 、軸角度θj 、角速度ωj 、及び角加速度αj の変数データを得、この変数データに基づいて式(3)の連立方程式を解くことにより、負荷の重量m及び負荷の重心位置(x,y,z)を算出すればよいことになる。
【0030】
しかし、上記の変数データのうち、各駆動軸の電流データである電流値Ij と角度データである軸角度θj はそれぞれ電流検出器及びエンコーダより容易に得ることができるが、角速度ωj (角速度データ)及び角加速度αj (角加速度データ)については、軸角度θj や移動時間等のデータに基づいて計算処理により算出する必要があり、計算処理が煩雑になる。そこで、本発明では、駆動軸を低速かつ一定速度にて動作させる分については、ロボットの質点モデルのうち、角速度ωj に起因する遠心力及びコリオリ力によるトルクの和Cθ,j は極めて小さく、また角加速度データに起因するイナーシャによるトルクJθ,j は無視してもよいことに着目し、動作パターンプログラムの実行においては駆動軸を低速かつ一定速度にて動作させ、これによりロボットの質点モデルは角度データに起因するアンバランストルクPθ,j のみを考慮することとし、これにより計算処理が軽減されるようにした。すなわち、本発明では、式(4)に示す方程式を解くことにより、負荷の重量m及び負荷の重心位置(x,y,z)を算出するようにした。
【0031】
また、動作の実行中に制御装置のスキャンタイム毎に変数データを得、この度毎に式(3)に示す連立方程式を解くようにすると、高速な演算装置を必要とすることになり、費用が嵩むことになる。そこで、モータ駆動トルクを算出する際に必要となる電流データは、動作パターンプログラムの実行中にスキャンタイム毎に検出される電流値の平均値を使用し、また、負荷トルクを算出する際に必要となる角度データについては、動作パターンプログラムの実行中に変化した軸角度の平均値を使用することとしたので、負荷の重量及び重心位置の算出処理は動作パターンプログラムの実行後に1回だけ行えば済むようにした。
【0032】
【数4】
【0033】
具体的には、式(4)においては未知数は式(3)と同様に負荷の重量m及び負荷の重心位置(x,y,z)の4つであるので、動作パターンプログラムでは、ロボットの駆動軸を4つ以上設定し、各駆動軸のそれぞれについて、軸操作装置10によりティーチングデータとして与えた基準姿勢から各駆動軸を所定量(所定角度α)動作させ、この動作の実行中にスキャンタイム毎に各駆動軸の駆動電流Ij を得る。動作の終了後に、検出された駆動電流Ij の積算値をスキャン回数で割ることにより、動作の実行中に検出された駆動電流Ij の平均値が得られ、この値より式(4)の左辺であるモータ駆動トルクTRjが求められる。一方、式(4)の右辺であるアンバランストルクPθ,j は各駆動軸の軸角度に起因しているが、ここでは基準姿勢における軸角度に移動動作の所定量αの半分の値すなわちα/2を加えた値を、動作の実行中の軸角度の平均値として設定することとした。
【0034】
これにより得られた式(4)についての4元以上の連立方程式を解くことにより、アンバランストルクPθ,j に含まれる負荷の重量m及び負荷の重心位置(x,y,z)を算出する。なお、所定角度αは動作パターンプログラムにおいて予め固定値として設定しておいてもよいし、パラメータの一つとして任意の設定値が与えられるようにしておいてもよい。
【0035】
上述の計算処理の手順を図1に示すフローチャートにて説明する。まず、軸操作装置10を操作して、ロボットの初期姿勢としてのロボットの基準姿勢を教示する(ステップ11)。教示の際は各駆動軸毎に軸操作装置10にある寸動ボタンを操作するなどして基準姿勢として設定する姿勢をとらせる。この基準姿勢の設定の際に注意すべきことは、動作パターンプログラムの実行中に大きなアンバランストルクが駆動軸にかかるように基準姿勢を設定することである。
【0036】
すなわち、多関節ロボットは、その構造上、各駆動軸の可動範囲は限定されているので、基準姿勢によっては大きなアンバランストルクが駆動軸にかかるような動作パターンプログラムが作成されないことがある。例えば、図3に示す本実施形態の多関節ロボットの場合、図4に示すように負荷がロボット本体ベース付近にくるように基準姿勢を設定するようにすると、V軸を駆動させた際、大きなアンバランストルクは作用せず、この結果負荷の重量及び重心位置は高精度に算出されなくなる。したがって、基準姿勢の選定にはこの旨十分注意をはらう必要がある。本実施形態の多関節ロボットにおいては、図5に示す位置に基準姿勢を設定するようにすれば、V軸、B軸、及びR1軸のいずれにも大きなアンバランストルクが作用する動作パターンプログラムが作成されることになる。
【0037】
次に、記憶装置6に予め記憶されている動作パターンプログラムの自動作成プログラムにより、基準姿勢のデータを基に動作パターンプログラムが自動的に作成される(ステップ12)。負荷の重量及び重心位置の算出に際しては、ロボットを基準姿勢に対して所定量移動させ、移動の間のサーボモータの駆動電流を電流検出器により検出するわけであるから、動作パターンプログラムの自動作成のために必要なデータとしては、ロボットの基準姿勢、基準姿勢からの移動量、駆動軸の選定、及び移動速度などである。このうちロボットの基準姿勢についてはステップ11により設定されるが、残りのデータについてはパラメータとして予め与えておけばよい。
【0038】
次に、ステップ12において作成された動作パターンプログラムに従って、ロボットを動作させる(ステップ13)。このステップにおいては既に負荷がアーム先端に取り付けられていなければならないことは当然であるが、負荷をアーム先端に取り付ける工程はこのステップの直前である必要はなく、ステップ11を実行する時点で既に負荷が取り付けられていてもよい。
【0039】
次に、ステップ13の実行中における各駆動軸のサーボモータの駆動電流を検出する(ステップ14)。駆動電流の検出はスキャンタイム毎に行い、検出された駆動電流は電流取り込み装置9内に一時的に記憶される。
【0040】
最後に、ステップ14において検出された各駆動軸のサーボモータの駆動電流に基づいて、式(4)についての連立方程式を解くことにより負荷の重量及び重心位置を算出する(ステップ15)。ここで、式(4)の右辺であるアンバランストルクPθ,j は各駆動軸の軸角度に起因しているが、ここでは基準姿勢における軸角度に動作の所定量αの半分の値をすなわちα/2を加えた値を、動作の実行中の軸角度の平均値として設定することとした。駆動軸が4つ以上選定されていれば、4元以上の連立方程式ができあがることとなり、この連立方程式を解くことにより、アンバランストルクPθ,j に含まれている負荷の重量及び重心位置が算出されることとなる。
【0041】
ところで、ロボットの基準姿勢の選定に際しては、動作パターンプログラムの実行中に大きなアンバランストルクが駆動軸にかかるように注意しなければならないが、この選定作業はロボット技術に精通した作業者であれば比較的容易であるが、ロボット技術に精通しない多くの作業者にとっては容易なことではない。また、基準姿勢の設定に際しては、作業者が教示装置を逐一操作してロボットの各駆動軸を位置決めさせる必要があり、溶接ロボットのように負荷である溶接ガンの交換がほとんどないものについてはともかく、ハンドリングロボットのように負荷である被搬送物が頻繁に変更されるものについては、負荷が変更になる度毎にこの作業を行うのは大変煩雑となる。そこで、教示装置により教示された基準姿勢のデータは制御装置内の記憶装置に記憶するようにしておき、負荷の重量及び重心位置の算出の際には記憶された基準姿勢のデータが記憶装置より呼び出され、このデータに基づき動作パターンプログラムが作成されるようにしてもよい。
【0042】
また、ロボットの質点モデルは角度データに起因するアンバランストルクのみを考慮することとしているが、このアンバランストルクは多関節ロボットを構成する全ての駆動軸に関与されるわけではない。例えば、図3に示す6軸の垂直多関節ロボットにおいては、上腕の揺動軸であるV軸、手首部分の揺動軸であるB軸、及び負荷が接続されるアーム先端のR1軸の合計3軸がアンバランストルクに大きく関与することになるが、その他の駆動軸はアンバランストルクにほとんど関与しない。したがって、この場合、1回の動作パターンプログラムの実施により得られる連立方程式の有効な元数は3つしかなく、最低必要となる4つには足りないことになる。
【0043】
そこで、アンバランストルクの算出に有効な駆動軸が3つ以下の場合においては、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにし、これにより4元以上の連立方程式が作成されるようにすればよい。また、有効な駆動軸が4つ以上の場合においても、基準姿勢を複数個教示し、各基準姿勢に対応して動作パターンプログラムが複数個作成されるようにしこれを実行するようにすれば、多くの元数を有する連立方程式が作成されることとなり、これを解くことにより未知数である負荷の重量及び負荷の重心位置を高精度に算出することができるようになる。
【0044】
ところで、一般に、サーボ系より取り込まれるサーボモータの駆動電流には、減速機の効率及び摺動抵抗による誤差が含まれている。そのため、負荷の重量及び重心位置を高精度に算出することを考えると、駆動電流よりモータ駆動トルクを算出する際は、減速機の効率及び摺動抵抗による誤差を補償することが好ましいことになる。しかし、減速機の効率及び摺動抵抗は駆動軸個々に固有な値であるとともにロボットの動作形態によっても異なる値をとる数値であるので、これを一義的に設定することは一般に困難である。
【0045】
そこで、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路を負荷を持ち下げる動作即ち下降動作とでは、減速機の効率及び摺動抵抗によるトルクのロスの値は正負が逆となるだけで絶対値は等しくなるということに着目することにした。すなわち、駆動軸jにおける減速機の効率及び摺動抵抗によるトルクのロスをτj とおけば、上昇動作と下降動作におけるモータ駆動トルクと負荷トルクとの関係式はそれぞれ式(5)及び式(6)で表される。
【0046】
【数5】
【0047】
式(5)におけるIupj は上昇動作時の駆動電流であり、式(6)におけるIdownj は下降動作時の駆動電流である。ここで式(5)と式(6)を加え合わせることにより、減速機の効率及び摺動抵抗によるトルクのロスτj が相殺された式(7)が導き出される。
【0048】
【数6】
【0049】
減速機の効率及び摺動抵抗の誤差の影響を排除した高精度な算出結果が要求される場合には、式(7)を適用することにより負荷の重量及び重心位置を算出すればよい。
【0050】
ところで、多関節ロボットにおいて、1つの駆動軸の動作が他の駆動軸にかかるトルクに影響を与えることはよく知られているところである。前述のように、本発明では、質点モデルにおいてアンバランストルクのみを考慮するようにしているために、動作パターンプログラムの実行中は駆動軸を低速かつ一定速度にて動作させるようにしており、1つの駆動軸の動作が他の駆動軸のトルクに与える影響は通常の動作に比してかなり少ないと言える。しかし、より高精度に負荷の重量及び重心位置を算出するためには、1つの駆動軸の動作が他の駆動軸にかかるトルクに与える影響を完全に排除することが好ましい。これに対処するためには、基準姿勢データに基づいて各駆動軸が個別に動作されるような動作パターンプログラムが作成されるように、動作パターンプログラムを自動作成する動作パターンプログラムの自動作成プログラムをプログラミングすればよい。
【0051】
【発明の効果】
請求項1にかかる発明によれば、サーボモータによって駆動される複数の駆動軸を備えた多関節ロボットのアーム先端に位置する負荷の重量及び重心位置を算出する方法において、教示装置により基準姿勢を教示し、この基準姿勢に基づいて重力に反して負荷を持ち上げる動作即ち上昇動作とこの上昇動作と同一の経路を負荷を持ち下げる動作即ち下降動作とが行われるような動作パターンプログラムを作成し、作成された動作パターンプログラムに従ってアーム先端に所定の負荷を有した多関節ロボットを動作させ、この動作中に各駆動軸を駆動するサーボモータの駆動電流を予め設定されたスキャンタイム毎に検出し、各駆動軸のそれぞれについて、検出された駆動電流の平均値に基づいて動作パターンプログラムの実行中に各駆動軸にかかったトルクの平均値を算出し、この各駆動軸にかかったトルクの平均値は各駆動軸にかかるアンバランストルクと等価であるとすることにより、アンバランストルクに未知数として含まれる負荷の重量及び重心位置を算出するようにした。
【0052】
そのため、負荷の重量及び重心位置を算出するための必要データは、駆動軸モータであるサーボモータの電流データと駆動軸の角度データのみとなり力データは不要となったので、力データを得るための手段としての力センサの必要性はなくなった。そして、これにより、負荷の重量及び重心位置の算出頻度の少ないハンドリングロボットや溶接ロボット等の力制御を必要としない多関節ロボットにおいては、力センサ及びその周辺機器が不要となり、制御装置を含むロボットシステム全体のコストが低減されるとともに、これらのメンテナンスに要する時間及び費用を不要にすることも可能となった。
さらに、この請求項1にかかる発明によれば、動作パターンプログラムでは、重力に反して負荷を持ち上げる動作即ち上昇動作と、この上昇動作と同一の経路を負荷を持ち下げる動作即ち下降動作とを行わせるようにした。そして、この2つの動作により導出される関係式すなわち上昇動作と下降動作のそれぞれの、駆動電流より算出されるモータ駆動トルクとロボットの質点モデルより算出される負荷トルクとの関係式において、これら2つの関係式を加え合わせることにより、減速機の効率及び摺動抵抗によるトルクのロスを相殺した関係式を導出するようにした。そのため、この導出された関係式を適用することにより、減速機の効率及び摺動抵抗の誤差の影響を受けることなく、負荷の重量及び重心位置を高精度に算出することが可能となった。
【0053】
請求項2にかかる発明によれば、請求項1にかかる発明において、教示装置により教示された基準姿勢を記憶装置に記憶させるようにした。そのため、教示装置により教示された基準姿勢のデータは制御装置内の記憶装置に記憶されるようになり、負荷の重量及び重心位置の算出の際には記憶された基準姿勢のデータが記憶装置より呼び出され、このデータに基づき動作パターンプログラムが作成されるようになったので、基準姿勢の設定をその都度行う必要はなくなった。これにより、例えば、基準姿勢のデータ入力はロボット技術に精通したメーカーの担当者が行い、ユーザー側の作業者における基準姿勢のデータ入力を不要とすることも可能となった。
【0054】
請求項3にかかる発明によれば、請求項1または2にかかる発明において、基準姿勢を複数個教示し、これにより動作パターンプログラムが複数個作成されるようにした。そのため、アンバランストルクの算出に有効な駆動軸が3つ以下の場合においては、基準姿勢を複数個教示することにより、各基準姿勢に対応する動作パターンプログラムが複数個作成されるようにしこれを実行するようにし、これにより4元以上の連立方程式の作成を可能にした。また、有効な駆動軸が4つ以上の場合においても、同様にして多くの元数を有する連立方程式が作成されるようにし、これを解くことにより負荷の重量及び重心位置を高精度に算出することが可能となった。
【0056】
請求項4にかかる発明によれば、請求項1乃至3のいずれかにかかる発明において、動作パターンプログラムでは各駆動軸を個別に動作させるようにした。そのため、1つの駆動軸の動作が他の駆動軸のトルクに与える影響を完全に排除することができ、より高精度に負荷の重量及び重心位置を算出することが可能となった。
【図面の簡単な説明】
【図1】本発明の一実施形態における計算処理の手順を示すフローチャートである。
【図2】本発明が適用される多関節ロボットの制御装置の一例を示すブロック図である。
【図3】本発明が適用される多関節ロボットの一例を示す外観図である。
【図4】大きなアンバランスがかからないロボットの基準姿勢を示す図である。
【図5】大きなアンバランスがかかるロボットの基準姿勢を示す図である。
【符号の説明】
1 多関節ロボット
2 負荷
3 サーボモータ
6 記憶装置
10 教示装置(軸操作装置)
Claims (4)
- サーボモータによって駆動される複数の駆動軸を備えた多関節ロボットのアーム先端に位置する負荷の重量及び重心位置を算出する方法において、
教示装置により基準姿勢を教示し、
該基準姿勢に基づいて重力に反して負荷を持ち上げる動作即ち上昇動作と該上昇動作と同一の経路を負荷を持ち下げる動作即ち下降動作とが行われるような動作パターンプログラムを作成し、
該動作パターンプログラムに従ってアーム先端に所定の負荷を有した多関節ロボットを動作させ、
該動作中に各駆動軸を駆動するサーボモータの駆動電流を予め設定されたスキャンタイム毎に検出し、
各駆動軸のそれぞれについて、前記検出された駆動電流の平均値に基づいて前記動作パターンプログラムの実行中に各駆動軸にかかったトルクの平均値を算出し、
該各駆動軸にかかったトルクの平均値は各駆動軸にかかるアンバランストルクと等価であるとすることにより、該アンバランストルクに未知数として含まれる負荷の重量及び重心位置を算出するようにしたことを特徴とする多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。 - 前記教示装置により教示された基準姿勢を記憶装置に記憶させるようにしたことを特徴とする請求項1に記載の多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。
- 前記基準姿勢を複数個教示し、これにより前記動作パターンプログラムを複数個作成するようにしたことを特徴とする請求項1または2に記載の多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。
- 前記動作パターンプログラムでは、各駆動軸を個別に動作させるようにしたことを特徴とする請求項1乃至3のいずれかに記載の多関節ロボットの負荷重量及び負荷重心位置の自動算出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30547596A JP3766484B2 (ja) | 1996-11-01 | 1996-11-01 | 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30547596A JP3766484B2 (ja) | 1996-11-01 | 1996-11-01 | 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10138187A JPH10138187A (ja) | 1998-05-26 |
JP3766484B2 true JP3766484B2 (ja) | 2006-04-12 |
Family
ID=17945611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30547596A Expired - Lifetime JP3766484B2 (ja) | 1996-11-01 | 1996-11-01 | 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3766484B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100850987B1 (ko) * | 2002-04-17 | 2008-08-12 | 엘지전자 주식회사 | 애완용 보행로봇의 보행 제어 장치 및 그 제어 방법 |
JP5265274B2 (ja) * | 2008-08-29 | 2013-08-14 | 大阪機工株式会社 | 数値制御工作機械の位置決め制御方法及び位置決め制御装置 |
JP5383760B2 (ja) * | 2011-09-09 | 2014-01-08 | ファナック株式会社 | ワーク質量測定機能を備えたロボット |
JP6625322B2 (ja) * | 2014-12-15 | 2019-12-25 | Ntn株式会社 | リンク作動装置 |
JP6457441B2 (ja) * | 2016-07-12 | 2019-01-23 | ファナック株式会社 | ロボットの重心表示装置、ロボット制御装置およびロボットシミュレーション装置 |
JP6464205B2 (ja) * | 2017-01-17 | 2019-02-06 | ファナック株式会社 | ロボット制御装置 |
JP6834655B2 (ja) * | 2017-03-23 | 2021-02-24 | 株式会社デンソーウェーブ | ロボットの負荷重心位置推定装置及びロボットの負荷重心位置推定方法 |
TWI642523B (zh) * | 2017-09-21 | 2018-12-01 | 上銀科技股份有限公司 | 用於機械臂之負載估測重力補償的方法及其負載估測重力補償系統 |
CN109773827B (zh) * | 2017-11-10 | 2021-12-07 | 上银科技股份有限公司 | 用于机械臂的负载估测重力补偿的方法及其系统 |
DE102019101595B3 (de) * | 2019-01-23 | 2020-03-12 | Franka Emika Gmbh | Verfahren zum Ermitteln einer Gewichtskraft und eines Schwerpunktes einer Robotermanipulatorlast |
JP7303709B2 (ja) * | 2019-09-10 | 2023-07-05 | 株式会社ディスコ | 加工装置 |
JP6792687B2 (ja) * | 2019-10-08 | 2020-11-25 | Ntn株式会社 | リンク作動装置 |
CN112405615B (zh) * | 2020-10-30 | 2021-11-30 | 珠海格力电器股份有限公司 | 机器人末端负载质量检测方法、装置及工业机器人 |
CN113021350B (zh) * | 2021-03-25 | 2023-12-08 | 北京曲线智能装备有限公司 | 一种机器人负载测试方法 |
CN113588290B (zh) * | 2021-07-31 | 2023-07-04 | 重庆长安汽车股份有限公司 | 一种车辆轴荷设计中确定人体质心的方法 |
CN115674187B (zh) * | 2022-09-16 | 2024-08-16 | 烟台艾创机器人科技有限公司 | 一种六轴串联机器人手腕负载质心范围的计算方法 |
CN118913665B (zh) * | 2024-10-10 | 2024-12-10 | 昆明理工大学 | 一种工业机器人智能制造用性能测试设备 |
-
1996
- 1996-11-01 JP JP30547596A patent/JP3766484B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH10138187A (ja) | 1998-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3766484B2 (ja) | 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 | |
JP5327722B2 (ja) | ロボットの負荷推定装置及び負荷推定方法 | |
US6204619B1 (en) | Dynamic control algorithm and program for power-assisted lift device | |
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 | |
US11839979B2 (en) | Dual mode free-drive of robot arm | |
JP4822063B2 (ja) | ロボットの直接教示装置 | |
JP3927454B2 (ja) | 多関節ロボットの負荷重量及び負荷重心位置の自動算出方法 | |
JP2001525734A (ja) | 自動機械を直接指令するための方法及び装置 | |
TW201722658A (zh) | 機器人之直接教示方法 | |
TW201718204A (zh) | 機器人教示方法及機器臂控制裝置 | |
CN109397265A (zh) | 一种基于动力学模型的关节型工业机器人拖拽示教方法 | |
JP6834655B2 (ja) | ロボットの負荷重心位置推定装置及びロボットの負荷重心位置推定方法 | |
DK2492062T3 (en) | industrial Robot | |
JPH07295650A (ja) | 多関節型ロボットの制御方法 | |
CN112847366B (zh) | 一种力位混合示教机器人系统及示教方法 | |
JP6697544B2 (ja) | 最適化装置及びそれを備えた垂直型多関節ロボット | |
JPH06246652A (ja) | 重量物ハンドリング用マニピュレータ装置 | |
US4908559A (en) | Robot control apparatus | |
JP4016305B2 (ja) | ロボットの制御装置 | |
JP3577124B2 (ja) | 力制御ロボットを用いて嵌合データを取得する方法 | |
JPH07227779A (ja) | ロボットハンドの姿勢制御装置 | |
Nahavandi et al. | Automated robotic grinding by low-powered manipulator | |
EP4067012B1 (en) | Method for controlling robot, robot system, and program for controlling robot | |
JPS6231406A (ja) | 多関節ロボツトの位置決め制御装置 | |
JPH08190433A (ja) | 負荷重量推定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050715 |
|
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: 20060117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060127 |
|
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: 20100203 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100203 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110203 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110203 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120203 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120203 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130203 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130203 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140203 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |