JP2021010983A - トルク補償装置及びトルク補償方法 - Google Patents
トルク補償装置及びトルク補償方法 Download PDFInfo
- Publication number
- JP2021010983A JP2021010983A JP2019126646A JP2019126646A JP2021010983A JP 2021010983 A JP2021010983 A JP 2021010983A JP 2019126646 A JP2019126646 A JP 2019126646A JP 2019126646 A JP2019126646 A JP 2019126646A JP 2021010983 A JP2021010983 A JP 2021010983A
- Authority
- JP
- Japan
- Prior art keywords
- torque
- compensation
- function
- unit
- joint angle
- 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.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/10—Programme-controlled manipulators characterised by positioning means for manipulator elements
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
Abstract
【課題】機械的な機構に依らず、トルク外乱による誤差を補償可能とする。【解決手段】ロボットアームに取付けられたトルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得するデータ取得部1と、回転機構を持つ減速機に起因するトルク外乱の関節角に対する周期関数である補償関数、及びデータ取得部1により取得された関節角に基づいて、当該関節角におけるトルク外乱による誤差を補償するためのトルク補償値を算出する補償値算出部42と、データ取得部1により取得されたトルクと、補償値算出部42により算出されたトルク補償値との残差を補償後トルクとして算出する残差算出部43と、残差算出部43により算出された補償後トルクを示すデータを出力する出力部44とを備えた。【選択図】図1
Description
この発明は、トルクセンサが取付けられたロボットアームに対してトルク外乱による誤差の補償を行うトルク補償装置及びトルク補償方法に関する。
各関節にトルクセンサが取付けられ、このトルクセンサにより検出されたトルク、又は当該トルクから推定した力を制御するロボットアームが知られている(例えば特許文献1参照)。
しかしながら、ロボットアームが減速機を用いている場合、トルクセンサにより検出されたトルクは、減速機の機械的変化が外乱となって誤差を含むことがある。これは、減速機が歯車のような回転機構を持つことに起因しており、例えばロボットアームで使われることが多い波動歯車を持つ減速機でも起こり得る誤差である。トルク外乱は、ロボットアームの関節角が僅かに変わっても大きく変わることがあり、トルク制御及び力制御の性能を劣化させる。このトルク外乱を抑制する機械的な機構を設計することは可能であるが、機構が複雑になり、また、コストも上昇する。
この発明は、上記のような課題を解決するためになされたもので、機械的な機構に依らず、トルク外乱による誤差を補償可能なトルク補償装置を提供することを目的としている。
この発明に係るトルク補償装置は、ロボットアームに取付けられたトルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際の当該ロボットアームの関節角を取得するデータ取得部と、回転機構を持つ減速機に起因するトルク外乱の関節角に対する周期関数である補償関数、及びデータ取得部により取得された関節角に基づいて、当該関節角におけるトルク外乱による誤差を補償するためのトルク補償値を算出する補償値算出部と、データ取得部により取得されたトルクと、補償値算出部により算出されたトルク補償値との残差を補償後トルクとして算出する残差算出部と、残差算出部により算出された補償後トルクを示すデータを出力する出力部とを備えたことを特徴とする。
この発明によれば、上記のように構成したので、機械的な機構に依らず、トルク外乱による誤差を補償可能となる。
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係るトルク補償装置の構成例を示す図である。
トルク補償装置は、各関節にトルクセンサが取付けられたロボットアームに対してトルク外乱による誤差の補償を行う。ロボットアームは歯車のような回転機構を持つ減速機を用いている。また、トルク外乱は、回転機構を持つ減速機に起因するトルク外乱である。トルク補償装置は、図1に示すように、データ取得部1、前処理部2、推定部3及び補償部4を備えている。なお、トルク補償装置は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。図1に示すトルク補償装置では、トルク外乱による誤差の補償を行う前に、事前に、その補償に用いる補償関数の推定を行う。
実施の形態1.
図1は実施の形態1に係るトルク補償装置の構成例を示す図である。
トルク補償装置は、各関節にトルクセンサが取付けられたロボットアームに対してトルク外乱による誤差の補償を行う。ロボットアームは歯車のような回転機構を持つ減速機を用いている。また、トルク外乱は、回転機構を持つ減速機に起因するトルク外乱である。トルク補償装置は、図1に示すように、データ取得部1、前処理部2、推定部3及び補償部4を備えている。なお、トルク補償装置は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。図1に示すトルク補償装置では、トルク外乱による誤差の補償を行う前に、事前に、その補償に用いる補償関数の推定を行う。
データ取得部1は、トルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得する。
前処理部2は、データ取得部1による取得結果を示すデータに対して前処理を行う。
図1では、トルク補償装置に前処理部2が設けられた場合を示している。しかしながら、これに限らず、トルク補償装置に前処理部2が設けられていなくてもよい。この場合、推定部3及び補償部4は、データ取得部1により取得されたデータを用いて各種処理を行う。
図1では、トルク補償装置に前処理部2が設けられた場合を示している。しかしながら、これに限らず、トルク補償装置に前処理部2が設けられていなくてもよい。この場合、推定部3及び補償部4は、データ取得部1により取得されたデータを用いて各種処理を行う。
推定部3は、前処理部2による前処理後のデータに基づいて、補償関数を推定する。補償関数は、回転機構を持つ減速機に起因するトルク外乱の関節角に対する周期関数である。推定部3は、図1に示すように、関数推定部31及び出力部32を有している。
関数推定部31は、前処理部2による前処理後のデータに基づいて、補償関数を推定する。
出力部32は、関数推定部31により推定された補償関数を示すデータを外部に出力する。
出力部32は、関数推定部31により推定された補償関数を示すデータを外部に出力する。
補償部4は、前処理部2による前処理後のデータ及び推定部3により推定された補償関数に基づいて、トルク外乱による誤差を補償したトルク(補償後トルク)を示すデータを出力する。補償部4は、図1に示すように、関数読込部41、補償値算出部42、残差算出部43及び出力部44を有している。
関数読込部41は、出力部32により出力されたデータから、関数推定部31により推定された補償関数を読込む。
補償値算出部42は、関数読込部41により読込まれた補償関数及び前処理部2による前処理後のデータが示す関節角に基づいて、当該関節角におけるトルク補償値を算出する。トルク補償値は、トルク外乱による誤差を補償するための補償値である。
残差算出部43は、前処理部2による前処理後のデータが示すトルクと、補償値算出部42により算出されたトルク補償値との残差を補償後トルクとして算出する。
出力部44は、残差算出部43により算出された補償後トルクを示すデータを外部に出力する。出力部44により出力されたデータは、トルク制御又は力制御等に利用される。
なお図1では、推定部3に出力部32が設けられ、補償部4に関数読込部41が設けられている。しかしながら、これに限らず、推定部3による推定結果を示すデータを内部で保持してそのまま補償部4で用いる場合には出力部32及び関数読込部41は必須ではなく、出力部32及び関数読込部41はトルク補償装置に設けられていなくてもよい。
また図1では、トルク補償装置に推定部3及び補償部4の両方が設けられている。しかしながら、これに限らず、推定部3についてはトルク補償装置に設けず、トルク補償装置は外部から入力されたデータが示す補償関数を用いてトルク外乱による誤差の補償を行ってもよい。
次に、図1に示す実施の形態1に係るトルク補償装置の動作例について説明する。
ここで、トルク外乱は、回転機構を持つ減速機に起因することから、その回転周期に応じた周期性を持つと考えられる。そこで、実施の形態1に係るトルク補償装置では、トルク外乱が周期性を持つことを利用し、周期関数によってトルク外乱を推定してトルク外乱による誤差の補償を行う。
ここで、トルク外乱は、回転機構を持つ減速機に起因することから、その回転周期に応じた周期性を持つと考えられる。そこで、実施の形態1に係るトルク補償装置では、トルク外乱が周期性を持つことを利用し、周期関数によってトルク外乱を推定してトルク外乱による誤差の補償を行う。
また上述の通り、ロボットアームの関節角の変化に伴ってトルク外乱は変化する。このことから、トルク外乱は、関節角の関数であると考えられる。更に、トルク外乱が周期性を持つことを考えると、補償関数は周期関数で表せられることがわかる。すなわち、関節角を入力としトルク補償値を出力とする周期関数を推定することで、トルク外乱による誤差を補償可能となる。これにより、実施の形態1に係るトルク補償装置では、トルク外乱を抑制する機械的な機構を追加せずに、ロボットアームにおけるトルク制御及び力制御の性能を確保可能となる。
まず、図1に示す実施の形態1に係るトルク補償装置による推定処理例について、図2を参照しながら説明する。
図1に示す実施の形態1に係るトルク補償装置による推定処理例では、図2に示すように、まず、データ取得部1は、トルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得する(ステップST201)。
図1に示す実施の形態1に係るトルク補償装置による推定処理例では、図2に示すように、まず、データ取得部1は、トルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得する(ステップST201)。
なお、トルク補償装置では、回転機構を持つ減速機に起因するトルク外乱による誤差を補償することを目的としている。よって、トルク補償装置による推定処理において用いられるトルクは、減速機に起因するトルク外乱以外の外乱が含まれていないことが望ましい。以下では、トルク補償装置は、上記外乱が含まれていないトルクを用いるものとする。例えば、トルクセンサにより検出されたトルクが重力によるトルクを含む場合は、事前にその成分を除去する必要がある。この重力トルク成分の算出は例えば特許文献2のように公知の技術なので、それらの技術を利用して除去が可能である。また、ロボットアームにかかる慣性及びコリオリ力の影響を十分に抑制するため、トルク値を取得する際はロボットアームの速度と加速度を十分小さく抑えるとよい。以上のようにすることで、トルク補償装置は上記外乱が事実上含まれていないトルクを得ることができる。
特開平01−066715号公報
次いで、前処理部2は、データ取得部1による取得結果を示すデータに対して前処理を行う(ステップST202)。前処理部2による前処理は、外れ値除去又は移動平均等、その状況に適した処理であればよい。
次いで、関数推定部31は、前処理部2による前処理後のデータに基づいて、補償関数を推定する(ステップST203)。実施の形態1では、関数推定部31は、トルク外乱の持つ周期を推定した後、1周期分のトルク外乱による誤差を補償するための関数(補償関数)を推定する。
補償関数は、周期数分繰返した周期関数とトルク外乱による誤差とを最小化するような関数である。この補償関数としては様々な形態が考えられる。例えば、補償関数として、階段関数、区分線形関数、多項式又は三角関数等を用いることができる。そして、関数推定部31は、それらを最尤推定、最小二乗法、アンサンブル回帰、ガウス過程回帰又はサポートベクター回帰等で推定する。
以下では、一例として、補償関数として3次元多項式を用いた場合を示す。補償関数をf(x)とし、そのパラメータをa,b,c,dとすると、3次多項式の補償関数は下式(1)で表される。
f(x)=ax3+bx2+cx+d (1)
f(x)=ax3+bx2+cx+d (1)
関数推定部31は、まず、前処理部2による前処理が行われたデータに基づいて、トルクに含まれる成分の周期の推定を行う。関数推定部31による周期の推定方法としては幾つか考えられ、例えば減速機の仕様又はトルクを離散フーリエ変換によって周波数領域で表した結果等から推定可能である。関数推定部31は、周期を推定した後、その1周期分の区間におけるトルク及び関節角を取出し、補償関数の推定に用いる。
図3に示すように、トルクのうちの周期を持つ成分の周期数をnとし、トルク(トルク集合)を周期毎に区切った区間トルクをt1,t2,・・・,tnとし、関節角(関節角集合)を当該周期毎に区切った区間関節角をx1,x2,・・・,xnとし、一つの区間関節角の幅をδとする。なお、任意の区間(j∈{1,2,・・・,n})における区間トルク(tj)は複数のデータ点(tj1,tj2,・・・)を含み、任意の区間(j∈{1,2,・・・,n})における関節角区間(xj)は複数のデータ点(xj1,xj2,・・・)を含む。
ここでは、補償関数の推定例として、任意の区間における区間トルクとの誤差を最小化するような補償関数を推定し、その結果を他の区間でも適用してトルク補償を行うこととする。以下では、j=1として説明する。また、説明を平易にするため、jにおける任意のデータ点(k)の関節角(xjk)は、(j−1)×δ≦xjk<j×δを満たすものとする。なお、実際に取得した関節角の値がこの条件を満たしていなかったとしても、条件に合うように平行移動させればよい。
ここでは、補償関数の推定例として、任意の区間における区間トルクとの誤差を最小化するような補償関数を推定し、その結果を他の区間でも適用してトルク補償を行うこととする。以下では、j=1として説明する。また、説明を平易にするため、jにおける任意のデータ点(k)の関節角(xjk)は、(j−1)×δ≦xjk<j×δを満たすものとする。なお、実際に取得した関節角の値がこの条件を満たしていなかったとしても、条件に合うように平行移動させればよい。
まず、前提として、下式(2),(3)に示す誤差関数であるl(x)を最小化するような補償関数を推定する。なお、|v|はベクトルであるvの大きさ(絶対値)を表す。
l(x1)=|t1−f(x1)| (2)
f(x1)={f(x11),f(x12),・・・} (3)
l(x1)=|t1−f(x1)| (2)
f(x1)={f(x11),f(x12),・・・} (3)
トルク集合は、トルクの周期性を利用してその1周期分毎に区切られた区間トルクの集合であることを踏まえると、式(2)を最小化するような補償関数であれば、他の区間においても補償に利用可能であると考えられる。すなわち、誤差関数を最小化するような補償関数のパラメータを最小二乗法等によって求めればよい。
以上の例では、補償関数を1区間分だけ推定したが、この補償関数を他の区間にもそのまま周期的に適用するので、周期関数となるような補償関数を推定したことと同じになる。
図4に、関数推定部31により推定される補償関数の一例を示す。図4において、符号401に示す波形は前処理部2による前処理後のデータが示すトルクの波形を示し、符号402に示す波形は関数推定部31により推定された補償関数の波形を示している。
図4に、関数推定部31により推定される補償関数の一例を示す。図4において、符号401に示す波形は前処理部2による前処理後のデータが示すトルクの波形を示し、符号402に示す波形は関数推定部31により推定された補償関数の波形を示している。
次いで、出力部32は、関数推定部31により推定された補償関数を示すデータを外部に出力する(ステップST204)。
次に、図1に示す実施の形態1に係るトルク補償装置による補償処理例について、図5を参照しながら説明する。
図1に示す実施の形態1に係るトルク補償装置による補償処理例では、図5に示すように、まず、データ取得部1は、トルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得する(ステップST501)。
図1に示す実施の形態1に係るトルク補償装置による補償処理例では、図5に示すように、まず、データ取得部1は、トルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得する(ステップST501)。
次いで、前処理部2は、データ取得部1による取得結果を示すデータに対して前処理を行う(ステップST502)。
また、関数読込部41は、出力部32により出力されたデータから、関数推定部31により推定された補償関数を読込む(ステップST503)。なお、補償関数は、同一のロボットアームに対しては一度読込んだものを繰返し用いることが可能であり、毎回読込む必要はないものとしてもよい。
次いで、補償値算出部42は、関数読込部41により読込まれた補償関数及び前処理部2により前処理が行われたデータが示す関節角に基づいて、当該関節角におけるトルク補償値を算出する(ステップST504)。
ここで、任意の関節角(x(ハット))が得られた際のトルク補償値をy(ハット)とする。まず、補償値算出部42は、関節角(x(ハット))が、どの区間関節角(x1)に相当するかを判定する。すなわち、補償値算出部42は、一つの区間関節角の幅(δ)で関節角(x(ハット))を割り、その余り(λ)を求める。そして、下式(4)のように、補償値算出部42は、その余りを補償関数に代入することでトルク補償値を算出する。
y(ハット)=f(λ)=aλ3+bλ2+cλ+d (4)
y(ハット)=f(λ)=aλ3+bλ2+cλ+d (4)
次いで、残差算出部43は、前処理部2により前処理が行われたデータが示すトルクと、補償値算出部42により算出されたトルク補償値との残差を補償後トルクとして算出する(ステップST505)。
次いで、出力部44は、残差算出部43により算出された補償後トルクを示すデータを外部に出力する(ステップST506)。
このように、実施の形態1に係るトルク補償装置では、トルク外乱が周期性を持つことを利用し、1周期単位のある1つの区間において推定した周期関数を繰返し用いることで、他の区間も含めたトルク集合全体の補償を実施可能となる。
また上記では、推定部3が、一区間を用いて補償関数を推定する場合を示した。しかしながら、これに限らず、推定部3は、複数区間を用いて補償関数を推定してもよい。この場合、推定部3は、対象とする区間における誤差関数を求め、その総和を最小化するような補償関数を推定する。この際、推定部3は、各区間の誤差関数に任意の重みをかけることで、制御に重要な区間をより重点的に補償するような推定も可能である。これにより、制御性能の向上が見込める。
なお、補償関数として、ロボットアームの稼動条件に応じて複数の関数を使い分けて適用することも可能である。これにより、実施の形態1に係るトルク補償装置は、稼動条件によるトルク外乱の変動への対応が可能となる。
以上のように、この実施の形態1によれば、トルク補償装置は、ロボットアームに取付けられたトルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得するデータ取得部1と、回転機構を持つ減速機に起因するトルク外乱の関節角に対する周期関数である補償関数、及びデータ取得部1により取得された関節角に基づいて、当該関節角におけるトルク外乱による誤差を補償するためのトルク補償値を算出する補償値算出部42と、データ取得部1により取得されたトルクと、補償値算出部42により算出されたトルク補償値との残差を補償後トルクとして算出する残差算出部43と、残差算出部43により算出された補償後トルクを示すデータを出力する出力部44とを備えた。これにより、実施の形態1に係るトルク補償装置は、機械的な機構に依らず、トルク外乱による誤差を補償可能となる。
実施の形態2.
実施の形態1では、補償関数として適用可能な関数を限定していない。これに対し、実施の形態2では、補償関数として用いる関数を正弦関数に限定している。正弦関数はそれ自体が周期関数であり、その重ね合わせで任意の周期関数を表現できるため、補償関数として好適である。また、正弦関数は周期関数であるため、実施の形態1のように周期毎に区切らなくても関数推定が可能であり、実施の形態2では複数区間を対象として一括で関数推定を行う。また、推定部3は、関数推定の前に初期値の算出を行うことが好ましい。これは、正弦関数を表すパラメータの推定を効率化するためである。
図6は実施の形態2に係るトルク補償装置の構成例を示す図である。図6に示す実施の形態2に係るトルク補償装置は、図1に示す実施の形態1に係るトルク補償装置に対し、初期値算出部33を追加している。その他の構成は同様であり、同一の符号を付して異なる部分についてのみ説明を行う。
実施の形態1では、補償関数として適用可能な関数を限定していない。これに対し、実施の形態2では、補償関数として用いる関数を正弦関数に限定している。正弦関数はそれ自体が周期関数であり、その重ね合わせで任意の周期関数を表現できるため、補償関数として好適である。また、正弦関数は周期関数であるため、実施の形態1のように周期毎に区切らなくても関数推定が可能であり、実施の形態2では複数区間を対象として一括で関数推定を行う。また、推定部3は、関数推定の前に初期値の算出を行うことが好ましい。これは、正弦関数を表すパラメータの推定を効率化するためである。
図6は実施の形態2に係るトルク補償装置の構成例を示す図である。図6に示す実施の形態2に係るトルク補償装置は、図1に示す実施の形態1に係るトルク補償装置に対し、初期値算出部33を追加している。その他の構成は同様であり、同一の符号を付して異なる部分についてのみ説明を行う。
初期値算出部33は、前処理部2による前処理後のデータに基づいて、正弦関数を表すパラメータの初期値を算出する。初期値算出部33は、図6に示すように、初期振幅算出部331、初期周波数算出部332及び初期位相算出部333を有している。
初期振幅算出部331は、前処理部2による前処理後のデータに基づいて、正弦関数を表すパラメータである振幅の初期値を算出する。
初期周波数算出部332は、前処理部2による前処理後のデータに基づいて、正弦関数を表すパラメータである周波数の初期値を算出する。
初期周波数算出部332は、前処理部2による前処理後のデータに基づいて、正弦関数を表すパラメータである周波数の初期値を算出する。
なお図6では、初期振幅算出部331の後段に初期周波数算出部332が設けられた場合を示している。しかしながら、これに限らず、初期振幅算出部331の前段に初期周波数算出部332が設けられていてもよい。
初期位相算出部333は、初期振幅算出部331により算出された振幅の初期値及び初期周波数算出部332により算出された周波数の初期値に基づいて、正弦関数を表すパラメータである位相の初期値を算出する。
なお、関数推定部31は、前処理部2による前処理後のデータ及び初期値算出部33により算出された初期値に基づいて、補償関数を推定する。補償関数は、正弦関数の重ね合わせにより表される。
なお、初期値算出部33は、関数推定部31による関数推定を効率化するための手段であり、トルク補償装置に必須の構成ではない。また、トルク補償装置に初期値算出部33が設けられていない場合には、正弦関数を表すパラメータの初期値は乱数等の任意の値とする。
次に、図6に示す実施の形態2に係るトルク補償装置による推定処理例について、図7を参照しながら説明する。
図6に示す実施の形態2に係るトルク補償装置による推定処理例では、図7に示すように、まず、データ取得部1は、トルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得する(ステップST701)。
図6に示す実施の形態2に係るトルク補償装置による推定処理例では、図7に示すように、まず、データ取得部1は、トルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際のロボットアームの関節角を取得する(ステップST701)。
次いで、前処理部2は、データ取得部1による取得結果を示すデータに対して前処理を行う(ステップST702)。
ステップST701,702における処理は、実施の形態1におけるステップST201,202における処理と同様である。
ステップST701,702における処理は、実施の形態1におけるステップST201,202における処理と同様である。
次いで、初期値算出部33は、前処理部2による前処理後のデータに基づいて、正弦関数を表すパラメータである初期値を算出する(ステップST703)。以下、初期値算出部33による初期値算出動作例について、図8を参照しながら説明する。
初期値算出部33による初期値算出動作例では、図8に示すように、まず、初期振幅算出部331は、前処理部2による前処理後のデータに基づいて、正弦関数を表すパラメータである振幅の初期値を算出する(ステップST801)。
この際、初期振幅算出部331は、まず、前処理部2による前処理後のデータが示すトルクに対し、離散フーリエ変換を行う。ここでは、離散フーリエ変換として、離散フーリエ変換を高速に行う高速フーリエ変換(FFT:Fast Fourier Transform)を用いるものとする。このFFTにより、トルクの波形を、関節角領域から周波数領域で表すことができる。周期関数は単純な正弦関数又は余弦関数の重ね合わせで表現できることは公知であり、トルク外乱に周期性が有ることを踏まえると、トルクを周波数領域で表した結果からその関数を推定可能であるとわかる。ここでは、一例として、三角関数のうちの正弦関数を用いるものとする。
そして、初期振幅算出部331は、周波数領域で表したトルクに基づいて、ピークの絶対値を取ることで振幅の初期値(ainit)を求める。周波数領域におけるピークの絶対値の大小は、その関数における影響の大小であると言えるため、絶対値の大きい周波数から補償に適用することが効率的である。すなわち、初期振幅算出部331が、振幅の初期値として選ぶのは、最も大きいピークの絶対値となる。
また、初期周波数算出部332は、前処理部2による前処理後のデータに基づいて、正弦関数を表すパラメータである周波数の初期値を算出する(ステップST802)。
この際、初期周波数算出部332は、まず、前処理部2による前処理後のデータが示すトルクに対し、離散フーリエ変換を行う。ここでは、離散フーリエ変換として高速フーリエ変換(FFT)を用いるものとする。そして、初期周波数算出部332は、周波数領域で表したトルクに基づいて、ピークの絶対値を持つ周波数を、周波数の初期値(finit)とする。
この際、初期周波数算出部332は、まず、前処理部2による前処理後のデータが示すトルクに対し、離散フーリエ変換を行う。ここでは、離散フーリエ変換として高速フーリエ変換(FFT)を用いるものとする。そして、初期周波数算出部332は、周波数領域で表したトルクに基づいて、ピークの絶対値を持つ周波数を、周波数の初期値(finit)とする。
次いで、初期位相算出部333は、初期振幅算出部331により算出された振幅の初期値及び初期周波数算出部332により算出された周波数の初期値に基づいて、正弦関数を表すパラメータである位相の初期値を算出する(ステップST803)。
この際、初期位相算出部333は、初期振幅算出部331により算出された振幅の初期値と、初期周波数算出部332により算出された周波数の初期値とを用いて、初期周期関数(l(x))を生成し、その初期周期関数を用いて位相の初期値(pinit)を求める。初期周期関数は、補償に用いる周期関数として正弦関数を用いることを想定しているため、下式(5)で表される。
l(x)=ainit×sin(2π×finit×x) (5)
l(x)=ainit×sin(2π×finit×x) (5)
初期位相算出部333は、トルクが持つ周波数成分のうちの影響が大きいとされる周波数とその振幅を用いて、初期周期関数を生成する。そのため、初期位相算出部333は、初期周期関数とトルクの位相差を求め、その位相差を位相の初期値とすればよい。初期位相算出部333は、初期周期関数とトルクとの相互相関関数によって位相差を求めることができる。すなわち、上記相互相関関数が最大となるときの位相差が、初期周期関数とトルクの波形が最もよく重なるときの位相差であり、初期位相算出部333はこれを位相の初期値とする。
再び図7に示すトルク補償装置による推定処理例の説明に戻り、次いで、関数推定部31は、前処理部2による前処理後のデータ及び初期値算出部33により算出された初期値に基づいて、補償関数を推定する(ステップST704)。
この際、関数推定部31は、まず、初期値算出部33により算出された初期値(振幅の初期値、周波数の初期値及び位相の初期値)を用いて、回転機構を持つ減速機に起因するトルク外乱による誤差を補償するための正弦関数として適切なパラメータ(振幅(a)、周波数(f)及び位相(p))を推定する。
前提として、上記トルク外乱による誤差を補償するための正弦関数として適切なパラメータとは、下式(6)を示す関数(L(x))を最小化するものである。ここで、関節角(x)及びトルク(t)はN個のデータ点を含むものであり、tjは関節角(xj)に対するトルクの値を示している。
関数推定部31は、上記関数を最小化するようなパラメータを最小二乗法によって推定する。関数推定部31は、上記推定の際の初期値として、初期値算出部33により算出された初期値(振幅の初期値、周波数の初期値及び位相の初期値)を用いる。これにより、実施の形態2に係るトルク補償装置では、乱数等で定めた初期値に対して解に到達するまでの推定時間を短縮可能である。
その後、関数推定部31は、上記処理を繰返し、トルクに含まれる各周波数成分についてそれぞれ補償する正弦関数のパラメータを推定し、複数の正弦関数を求める。なお、関数推定部31は、推定の際に複数の正弦関数を用いてそれらのパラメータを同時に推定してもよく、その推定を更に繰返して正弦関数の数を増やしてもよい。
その後、関数推定部31は、下式(7)から、任意の関節角(x(ハット))におけるトルク外乱による誤差を補償するためのトルク補償値(y(ハット))を求める。式(7)において、mは関数推定部31が推定に用いた正弦関数の数を示し、aiはi番目の正弦関数を表すパラメータである振幅を示し、fiはi番目の正弦関数を表すパラメータである周波数を示し、piはi番目の正弦関数を表すパラメータである位相を示している。
次いで、出力部32は、関数推定部31により推定された補償関数を示すデータを出力する(ステップST705)。
このように、実施の形態2に係るトルク補償装置では、トルク外乱が関節角の周期関数であることを前提として正弦関数による近似を行うことで、その周波数成分の補償を行うことができる。これを繰返し、トルクに含まれる各周波数成分を補償する複数の正弦関数の重ね合わせを補償関数として求めることで、トルク全体の補償を行うことができる。補償に用いる正弦関数は、トルク外乱との誤差が最小化されるようなパラメータによって生成されることが望ましく、トルク補償装置は、予め初期値を算出しておくことで効率的に補償関数を推定可能である。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
また上記では、ロボットアームが、回転関節を持ったロボットアームである場合を例に示した。しかしながら、これに限らず、ロボットアームは、トルクセンサが取付けられた回転駆動機構を持ったロボットアームであればよく、例えば、スカラ型ロボットアームのような複数軸構成を持ったロボットアーム、パラレルリンク型ロボットアーム、又は一軸のみを持つロボットアームでもよい。
また上記では、ロボットアームが、回転関節を持ったロボットアームである場合を例に示した。しかしながら、これに限らず、ロボットアームは、トルクセンサが取付けられた回転駆動機構を持ったロボットアームであればよく、例えば、スカラ型ロボットアームのような複数軸構成を持ったロボットアーム、パラレルリンク型ロボットアーム、又は一軸のみを持つロボットアームでもよい。
1 データ取得部
2 前処理部
3 推定部
4 補償部
31 関数推定部
32 出力部
33 初期値算出部
41 関数読込部
42 補償値算出部
43 残差算出部
44 出力部
331 初期振幅算出部
332 初期周波数算出部
333 初期位相算出部
2 前処理部
3 推定部
4 補償部
31 関数推定部
32 出力部
33 初期値算出部
41 関数読込部
42 補償値算出部
43 残差算出部
44 出力部
331 初期振幅算出部
332 初期周波数算出部
333 初期位相算出部
Claims (5)
- ロボットアームに取付けられたトルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際の当該ロボットアームの関節角を取得するデータ取得部と、
回転機構を持つ減速機に起因するトルク外乱の関節角に対する周期関数である補償関数、及び前記データ取得部により取得された関節角に基づいて、当該関節角におけるトルク外乱による誤差を補償するためのトルク補償値を算出する補償値算出部と、
前記データ取得部により取得されたトルクと、前記補償値算出部により算出されたトルク補償値との残差を補償後トルクとして算出する残差算出部と、
前記残差算出部により算出された補償後トルクを示すデータを出力する出力部と
を備えたトルク補償装置。 - 前記データ取得部による取得結果に基づいて、前記減速機に起因するトルク外乱の関節角に対する周期関数である補償関数を推定する関数推定部を備え、
前記補償値算出部は、前記関数推定部により推定された補償関数を用いてトルク補償値を算出する
ことを特徴とする請求項1記載のトルク補償装置。 - 前記関数推定部は、正弦関数の重ね合わせにより表された補償関数を推定する
ことを特徴とする請求項2記載のトルク補償装置。 - 前記データ取得部による取得結果に基づいて、正弦関数を表すパラメータの初期値を算出する初期値算出部を備え、
前記関数推定部は、前記データ取得部による取得結果及び前記初期値算出部により算出された初期値に基づいて、補償関数を推定する
ことを特徴とする請求項3記載のトルク補償装置。 - ロボットアームに取付けられたトルクセンサにより検出されたトルク、及び当該トルクセンサがトルクを検出した際の当該ロボットアームの関節角を取得するデータ取得ステップと、
回転機構を持つ減速機に起因するトルク外乱の関節角に対する周期関数である補償関数、及び前記データ取得ステップにおいて取得した関節角に基づいて、当該関節角におけるトルク外乱による誤差を補償するためのトルク補償値を算出する補償値算出ステップと、
前記データ取得ステップにおいて取得したトルクと、前記補償値算出ステップにおいて算出したトルク補償値との残差を補償後トルクとして算出する残差算出ステップと、
前記残差算出ステップにおいて算出した補償後トルクを示すデータを出力する出力ステップと
を有するトルク補償方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019126646A JP2021010983A (ja) | 2019-07-08 | 2019-07-08 | トルク補償装置及びトルク補償方法 |
PCT/JP2020/024788 WO2021006038A1 (ja) | 2019-07-08 | 2020-06-24 | トルク補償装置及びトルク補償方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019126646A JP2021010983A (ja) | 2019-07-08 | 2019-07-08 | トルク補償装置及びトルク補償方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021010983A true JP2021010983A (ja) | 2021-02-04 |
Family
ID=74114764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019126646A Pending JP2021010983A (ja) | 2019-07-08 | 2019-07-08 | トルク補償装置及びトルク補償方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2021010983A (ja) |
WO (1) | WO2021006038A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230081286A (ko) * | 2021-11-30 | 2023-06-07 | 두산로보틱스 주식회사 | 로봇아암 중력보상 장치 및 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0887330A (ja) * | 1994-09-20 | 1996-04-02 | Fujitsu Ltd | 自動制御装置 |
JP3239789B2 (ja) * | 1997-02-21 | 2001-12-17 | 松下電器産業株式会社 | 制御装置および制御方法 |
KR20090124560A (ko) * | 2008-05-30 | 2009-12-03 | 삼성전자주식회사 | 로봇 매니퓰레이터의 제어장치 및 그 제어방법 |
EP2394799B1 (en) * | 2009-02-03 | 2016-08-31 | Olympus Corporation | Manipulator |
JP5902425B2 (ja) * | 2011-09-21 | 2016-04-13 | 株式会社東芝 | ロボット制御装置、外乱判定方法およびアクチュエータ制御方法 |
CN107538494A (zh) * | 2016-06-29 | 2018-01-05 | 沈阳新松机器人自动化股份有限公司 | 一种基于转矩传感器和编码器的机器人控制方法及*** |
-
2019
- 2019-07-08 JP JP2019126646A patent/JP2021010983A/ja active Pending
-
2020
- 2020-06-24 WO PCT/JP2020/024788 patent/WO2021006038A1/ja active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230081286A (ko) * | 2021-11-30 | 2023-06-07 | 두산로보틱스 주식회사 | 로봇아암 중력보상 장치 및 방법 |
KR102628668B1 (ko) * | 2021-11-30 | 2024-01-23 | 두산로보틱스 주식회사 | 로봇아암 중력보상 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2021006038A1 (ja) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018534576A5 (ja) | ||
JP4676551B1 (ja) | コギングトルク補正量算出機能を有するモータ制御装置 | |
JP4885245B2 (ja) | Rdコンバータ及び角度検出装置 | |
JP4418390B2 (ja) | 3次元形状処理装置及び曲面生成プログラム並びに方法 | |
WO2021006038A1 (ja) | トルク補償装置及びトルク補償方法 | |
JP6312920B2 (ja) | 状態変分原理を用いた振動変位の測定方法 | |
KR20160066509A (ko) | 보정 테이블 작성 장치, 인코더 및 보정 테이블 작성 방법 | |
JP4920612B2 (ja) | アクチュエータの角度伝達誤差補償方法 | |
JP2014136260A (ja) | 制御装置 | |
TW201523183A (zh) | 旋轉台精度補償系統及方法 | |
JP5079346B2 (ja) | 波形補正装置および波形補正方法 | |
JP2015006705A (ja) | 制御装置 | |
JP5747752B2 (ja) | 姿勢推定装置、姿勢推定方法、姿勢推定プログラム | |
Sracic et al. | Identifying parameters of multi-degree-of-freedom nonlinear structural dynamic systems using linear time periodic approximations | |
Frangi | Elastodynamics by BEM: a new direct formulation | |
JP6041325B2 (ja) | 信号処理装置、信号処理方法およびプログラム | |
Watai et al. | A new time domain Rankine panel method for simulations involving multiple bodies with large relative displacements | |
JP2020012634A (ja) | ロータリーエンコーダ信号処理装置及びその信号処理方法 | |
JP6436707B2 (ja) | 算出方法、計測装置、プログラム及び情報処理装置 | |
JP2023003177A (ja) | 推論プログラム、推論方法および情報処理装置 | |
JP5141351B2 (ja) | 能動型騒音制御装置 | |
JP6214480B2 (ja) | 周波数応答測定装置 | |
JP2020069616A (ja) | モータ駆動装置、ロボット駆動システム及びモータ駆動プログラム | |
JP6038063B2 (ja) | 軌跡誤差表示装置 | |
Fedala et al. | Numerical study of time domain analogy applied to noise prediction from rotating blades |