JP6245858B2 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP6245858B2
JP6245858B2 JP2013132288A JP2013132288A JP6245858B2 JP 6245858 B2 JP6245858 B2 JP 6245858B2 JP 2013132288 A JP2013132288 A JP 2013132288A JP 2013132288 A JP2013132288 A JP 2013132288A JP 6245858 B2 JP6245858 B2 JP 6245858B2
Authority
JP
Japan
Prior art keywords
amplitude
unit
feedback
compensation
command value
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.)
Active
Application number
JP2013132288A
Other languages
English (en)
Other versions
JP2015006705A (ja
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.)
Daihen Corp
Original Assignee
Daihen 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 Daihen Corp filed Critical Daihen Corp
Priority to JP2013132288A priority Critical patent/JP6245858B2/ja
Publication of JP2015006705A publication Critical patent/JP2015006705A/ja
Application granted granted Critical
Publication of JP6245858B2 publication Critical patent/JP6245858B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、減速機の角度伝達誤差に起因するマニピュレータの手先位置の軌跡誤差を低減する制御装置に関する。
産業用ロボットで広く用いられている減速機には、機械構造に起因する角度伝達誤差が存在する。ここでの角度伝達誤差とは、減速機の入力側に接続された動力機構(例えば、サーボモータ等)の角度と、減速機の出力側に接続された負荷の角度との間に生ずる周期的な誤差のことである。例えば、動力側を任意の角度からΔθだけ回転させても、負荷側の回転量がΔθにはならないのは、この角度伝達誤差によるものである。
減速機の角度伝達誤差は、産業用ロボットのロボット手先位置(TCP)軌跡精度に影響し、特に低速度でTCPを移動させるアプリケーションでは、減速機の角度伝達誤差がTCP軌跡精度により強く影響することが知られている。
そのような角度伝達誤差を補償する方法として、外界センサにて計測されたTCPと、制御装置の内部センサにて取得されたロボット各軸の位置指令、位置フィードバックより、補正振幅と各軸の位置フィードバックとの関係を数式モデル化し、その数式モデルから得られる補正信号を用いて位置指令を補正することによって、角度伝達誤差によるTCP軌跡の誤差を低減する手法が提案されている(例えば、特許文献1参照)。
特開2011−224662号公報
上述の従来技術においては、角度伝達誤差によるTCPの「うねり」を外界センサで計測するとともに、各軸の位置指令と位置フィードバックを計測し、位置指令とTCPのうねりとの関係式を数値モデル化し、このモデルから得られる補正信号を各軸の指令位置に合成することで、ロボットTCPの軌跡精度を向上させている。しかしながら、その従来技術では、外界センサにて計測されるTCPの「うねり」情報と、ロボット制御装置の内部センサより取得される位置指令及び位置フィードバックとの間に生じる時間差によって、減速機の角度伝達誤差の数式モデルに誤差が生じる。具体的には、外界センサから得られるうねりの振幅量と、ロボット各軸の位置指令との関連が時間軸でずれてしまうという問題があった。
本発明は、上記問題点を解決するためになされたものであり、外界センサを使用せず、ロボットの内部センサから取得される情報を用いて減速機の角度伝達誤差の数式モデル化をより高精度に実現でき、角度伝達誤差をより適切に低減させることができる制御装置を提供することを目的とする。
上記目的を達成するため、本発明による制御装置は、減速機を介してモータにより駆動される関節によって連結された複数のアームを有するマニピュレータを制御する制御装置であって、モータの位置指令値を受け付ける指令値受付部と、モータのフィードバックを受け付けるフィードバック受付部と、減速機の角度伝達誤差の周波数が記憶される記憶部と、モータを単軸動作させる単軸動作制御部と、単軸動作制御部がモータを単軸動作させている際に受け付けられたフィードバックをフーリエ変換するフーリエ変換部と、フーリエ変換部によってフーリエ変換された周波数領域におけるフィードバックにおいて、記憶部で記憶されている周波数に応じた振幅である誤差振幅が小さくなるように、角度伝達誤差の補償で用いられる振幅である補償振幅を取得する振幅取得部と、指令値受付部が受け付けた位置指令値と、位置指令値に応じてフィードバック受付部が受け付けた位置フィードバックとを用いて、減速機の角度伝達誤差の位相を取得する位相取得部と、記憶部で記憶されている周波数と、振幅取得部が取得した補償振幅と、位相取得部が取得した位相とを用いて、位置指令値における減速機の角度伝達誤差成分を補償するための補償量を算出する補償量算出部と、補償量算出部が算出した補償量を用いて、位置指令値の角度伝達誤差成分の補償を行う補償部と、を備え、振幅取得部は、補償後のフィードバックに応じた誤差振幅が小さくなるように補償振幅を取得する、ものである。
このような構成により、外界センサを用いないで角度伝達誤差の数式モデルを構築することができ、その数式モデルを用いて角度伝達誤差を低減させることができる。また、内部センサから得られる情報を用いて数式モデルを構築しているため、従来技術のように、外界センサで取得された情報と内部センサによって取得された情報との間に生じる時間差が発生せず、その時間差に応じた誤差が数式モデルに生じないというメリットもある。
また、本発明による制御装置では、単軸動作制御部は、モータを一定速度で単軸動作させてもよい。
このような構成により、誤差振幅を取得するための処理や、位相を取得するための処理が容易になりうる。
また、本発明による制御装置では、記憶部では、標準的な補償振幅である標準振幅も記憶されており、振幅取得部は、標準振幅を、補償後のフィードバックに応じた誤差振幅が小さくなるように変更した補償振幅を取得してもよい。
このような構成により、標準振幅を用いて補償振幅を取得できるため、より容易に目的とする補償振幅を取得することができるようになる。
本発明による制御装置によれば、外界センサを用いずに角度伝達誤差に起因する軌跡誤差を低減させることができ、産業用ロボットの作業品質を向上させることができる。
本発明の実施の形態1による制御装置の構成を示すブロック図 同実施の形態によるサーボコントローラの構成を示すブロック図 同実施の形態による制御装置の動作を示すフローチャート 同実施の形態による制御装置の動作を示すフローチャート 同実施の形態による位相の取得について説明するためのグラフを示す図
以下、本発明による制御装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1による制御装置について、図面を参照しながら説明する。本実施の形態による制御装置は、外界センサを用いずに角度伝達誤差をモデル化し、そのモデルを用いて角度伝達誤差を補償するものである。
図1は、本実施の形態による産業用ロボット100の構成を示すブロック図である。本実施の形態による産業用ロボット100は、制御装置1と、サーボコントローラ2と、マニピュレータ3とを備える。制御装置1は、モータにより駆動される関節によって連結された複数のアームを有するマニピュレータ3を、サーボコントローラ2を介して制御する。そのマニピュレータ3において、各モータとアームとは減速機を介して接続されている。また、直列に接続されたアームの先端に、手先効果器(エンドエフェクタ)が設けられていてもよい。マニピュレータ3は、例えば、垂直多関節ロボットのマニピュレータであってもよく、水平多関節ロボットのマニピュレータであってもよい。また、そのマニピュレータ3の軸数は問わない。また、制御装置1は、ティーチングプレイバック方式によりマニピュレータ3を制御してもよく、または、自律方式によりマニピュレータ3を制御してもよい。本実施の形態による産業用ロボット100は、例えば、搬送ロボットであってもよく、溶接ロボットであってもよく、組立ロボットであってもよく、塗装ロボットであってもよく、または、その他の用途のロボットであってもよい。図1では、説明の便宜上、1個のサーボコントローラ2のみを示しているが、通常、産業用ロボット100は、マニピュレータ3の軸数と同数のサーボコントローラを備えている。したがって、サーボコントローラ2は、各軸に対応するサーボコントローラの集合であると考えてもよい。サーボコントローラ2の詳細な構成については、図2を用いて後述する。
図1で示されるように、制御装置1は、位置指令生成部11と、指令値受付部12と、フィードバック受付部13と、単軸動作制御部14と、フーリエ変換部15と、記憶部16と、振幅取得部17と、位相取得部18と、補償量算出部19と、補償部20とを備える。
位置指令生成部11は、モータの位置指令値を生成し、指令値受付部12と補償量算出部19と補償部20とに渡す。位置指令生成部11は、例えば、教示情報等を用いることによって、モータの位置を算出し、その位置を示す位置指令値を指令値受付部12と補償量算出部19と補償部20とに渡してもよい。なお、モータの位置は、厳密にはモータの角度であってもよい。また、位置指令生成部11は、単軸動作制御部14による制御に応じて、位置指令値を生成し、出力してもよい。
指令値受付部12は、モータの位置指令値を受け付ける。指令値受付部12は、受け付けた位置指令値のうち、後段の処理で必要になる期間に応じた位置指令値を図示しない記録媒体で一時的に記憶してもよい。
フィードバック受付部13は、モータのフィードバックを受け付ける。そのモータは、指令値受付部12が受け付けた位置指令値に対応するモータと同じである。そのモータのフィードバックは、通常、指令値受付部12が受け付けたモータの位置指令値に応じた位置フィードバックである。なお、フィードバック受付部13は、速度フィードバックをも受け付けてもよい。モータの位置フィードバックは、モータの現在位置であり、モータの速度フィードバックは、モータの現在速度である。フィードバック受付部13は、受け付けたフィードバックのうち、後段の処理で必要になる期間に応じたフィードバックを図示しない記録媒体で一時的に記憶してもよい。
単軸動作制御部14は、モータを単軸動作させる。単軸動作とは、マニピュレータ3を駆動する複数軸のうち、ある軸のみを動作させることである。したがって、単軸動作時には、単軸動作制御部14は、あるモータのみを動作させてもよい。その単軸動作時に、単軸動作制御部14は、モータを一定速度で単軸動作させてもよく、または、そうでなくてもよい。本実施の形態では、前者の場合について主に説明する。なお、ある軸について単軸動作を行う場合には、単軸動作制御部14は、その軸から手先までのロボットアームが水平となるように単軸動作を行うことが好適である。単軸動作を行う軸に対する重力トルクが略一定となるからである。
フーリエ変換部15は、単軸動作制御部14がモータを単軸動作させている際に受け付けられたフィードバックをフーリエ変換する。なお、厳密に言えば、フーリエ変換部15は、位置(角度)に応じて変化する位置フィードバックをフーリエ変換する。ここで、フィードバック受付部13が受け付けるのは、位置フィードバックの時間変化である。したがって、フーリエ変換部15は、モータの位置と、位置フィードバックとの関係(例えば、後述する図5の実線のグラフで示される関係)を取得し、それに対してフーリエ変換を行ってもよい。そのフーリエ変換の結果、フーリエ変換部15は、位置フィードバックの周波数と、その周波数に応じた振幅との関係を取得することができる。位置フィードバックには、通常、角度伝達誤差に起因するうねり成分が含まれている。したがって、フーリエ変換をすることによって、後段の処理において、そのうねり成分の振幅を特定できるようになる。なお、周波数は、時間の周波数(sec−1)ではなく、位置(角度)の周波数である。したがって、その周波数の単位は、例えば、角度がラジアン(rad)である場合には、rad−1となり、角度が度(deg)である場合には、deg−1となる。
ここで、モータの位置と、位置フィードバックとの関係を取得する方法について簡単に説明する。フーリエ変換部15は、位置フィードバックの時間変化(時間と位置フィードバックとの対応関係)と、位置指令値の時間変化(時間と位置指令値との対応関係)とを用い、媒介変数である時間を消去することによって、位置と位置フィードバックとの関係を取得できる。なお、フーリエ変換部15が上述したのと同様のフーリエ変換結果を得る方法は問わない。例えば、フーリエ変換部15は、上述した位置フィードバックの時間変化に対して、時間領域におけるフーリエ変換を行い、その結果と、位置指令値の時間変化とを用いることによって、上述したのと同様のフーリエ変換結果を取得してもよい。ただし、そのようなフーリエ変換結果の取得を行う場合には、単軸動作中の速度が一定である必要がある。また、単軸動作時の位置指令値は通常、あらかじめ分かっているため、フーリエ変換部15は、指令値受付部12が受け付けた位置指令値を用いるのではなく、あらかじめ図示しない記録媒体で記憶されている位置指令値を用いてフーリエ変換を行ってもよい。また、単軸動作時にモータを一定速度で動作させる場合には、位置指令値に代えて、その速度を図示しない記録媒体で記憶しておき、フーリエ変換部15は、その速度を用いてフーリエ変換を行ってもよい。なお、ここでは、フーリエ変換部15が、位置フィードバックをフーリエ変換する場合について説明したが、前述のように、フィードバック受付部13によって速度フィードバックをも受け付けられる場合には、その速度フィードバックをフーリエ変換してもよい。その場合には、例えば、フーリエ変換部15は、モータの位置と、速度フィードバックとの関係を取得し、その取得した関係についてフーリエ変換を行ってもよい。なお、単軸動作が一定速度で行われる場合には、フーリエ変換部15は、例えば、速度フィードバックを時間領域においてフーリエ変換し、その結果と、位置指令値の時間変化とを用いることによって、フーリエ変換結果を取得してもよい。また、フーリエ変換部15は、フーリエ変換の結果を図示しない記録媒体で記憶してもよい。
記憶部16では、減速機の角度伝達誤差の周波数が記憶される。その周波数は、前述のように通常、位置(角度)における周波数である。減速機の角度伝達誤差の周波数は、その減速機の機械構造に応じて一意に決定されるため、その機械構造に応じた周波数が記憶部16に蓄積される。また、その周波数は、減速機の機械構造の種類、すなわち減速機の型式(種類)ごとに異なるため、記憶部16では、例えば、減速機の型式を示す情報と、その型式の減速機の周波数とが対応付けられて記憶されていてもよい。また、記憶部16で記憶されている周波数は、結果として周波数を知ることができる情報であれば、周波数以外の情報、例えば周期や角周波数であってもよい。したがって、周波数以外の周期等が記憶部16で記憶されている場合であっても、周波数が記憶されていると考えることができる。また、記憶部16では、その記憶部16で記憶されている周波数に応じた減速機の標準的な補償振幅である標準振幅も記憶されていてもよい。補償振幅については後述する。記憶部16での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。記憶部16は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
振幅取得部17は、フーリエ変換部15によってフーリエ変換された周波数領域におけるフィードバックにおいて、記憶部16で記憶されている周波数に応じた振幅である誤差振幅が小さくなるように、角度伝達誤差の補償で用いられる振幅である補償振幅を取得する。記憶部16で複数の周波数が記憶されている場合には、振幅取得部17は、誤差振幅の取得対象の減速機の型式に対応する周波数を読み出してもよい。そして、振幅取得部17は、フーリエ変換後の周波数領域におけるフィードバックにおいて、読み出した周波数に対応する誤差振幅を特定する。なお、振幅取得部17は、後述する補償が行われた補償後のフィードバックに応じた誤差振幅が小さくなるように、補償振幅を取得するものとする。補償後のフィードバックに応じた誤差振幅は、その補償によっても打ち消すことができなかった角度伝達誤差成分の値である。したがって、その誤差振幅が小さくなるようにすることによって、角度伝達誤差を適切に打ち消すことができるようになる。振幅取得部17は、例えば、その誤差振幅があらかじめ決められたしきい値よりも小さくなるように、補償振幅を取得してもよい。その補償振幅の取得は、例えば、次のように行われる。まず、振幅取得部17が、補償振幅を取得する。振幅取得部17は、補償振幅の初期値として、記憶部16で記憶されている標準振幅を取得してもよい。減速機の型式に応じて補償振幅は似たような値になると考えられるため、減速機の型式ごとの標準振幅を用いることによって、補償振幅が適切な値により早く収束するようになると考えられる。一方、標準振幅が記憶部16で記憶されていない場合には、振幅取得部17は、補償振幅の初期値として、ランダムな補償振幅を取得してもよい。そして、その補償振幅を用いて算出された補償量を用いた角度伝達誤差の補償を行いながら単軸動作が行われ、それに応じた誤差振幅が特定される。その誤差振幅がしきい値より小さければ、その時点の補償振幅が最終的な補償振幅となる。一方、その誤差振幅がしきい値より小さくなければ、振幅取得部17は、新たな補償振幅を取得し、上述の処理を繰り返す。その新たな補償振幅は、例えば、標準振幅が、補償後のフィードバックに応じた誤差振幅が小さくなるように変更された補償振幅であってもよい。具体的には、振幅取得部17は、補償振幅「α・A」や、補償振幅「A+β」を取得してもよい。ここで、Aは、標準振幅であり、α、βは、標準振幅の変更のために用いられる実数のパラメータである。産業用ロボット100の個体差によって補償振幅の値は変わりうるが、通常、あまり大きくは変わらないと考えられる。したがって、そのパラメータαやβに、ロボットの個体差に応じた範囲をあらかじめ決めておき、振幅取得部17は、その範囲内でαやβを変化させることによって、補償振幅を取得してもよい。このようにすることで、より容易に適切な補償振幅を取得することができるようになる。なお、誤差振幅を取得するために用いられるフィードバックは、指令値受付部12が受け付ける位置指令値に応じたフィードバックである位置フィードバックでなくてもよい。具体的には、速度フィードバックに応じた誤差振幅が特定されてもよい。誤差振幅は、角度伝達誤差成分が残っているかどうかを確認するために用いられるものだからである。なお、位置フィードバックに応じた誤差振幅のしきい値と、速度フィードバックに応じた誤差振幅のしきい値とは異なっていてもよい。また、振幅取得部17は、位置フィードバックと速度フィードバックとの両方を用いて補償振幅を取得してもよい。その場合には、振幅取得部17は、例えば、両フィードバックの誤差振幅がそれぞれしきい値より小さくなるように、補償振幅を取得してもよい。
位相取得部18は、指令値受付部12が受け付けた位置指令値と、その位置指令値に応じてフィードバック受付部13が受け付けた位置フィードバックとを用いて、減速機の角度伝達誤差の位相を取得する。角度伝達誤差が存在しない場合、すなわち、角度伝達誤差が存在しない場合の理想的な位置指令値θcmdと、位置フィードバックθactとの関係は、図5のグラフにおける一点鎖線のようになる。一方、角度伝達誤差が存在する場合には、位置フィードバックが図5のグラフにおける実線のように、理想的な位置フィードバックに対してうねりの成分を有することになる。そのうねりの成分のずれを示すものが位相である。したがって、位相取得部18は、図5のグラフで示されるように、位置指令値が入力されてから、位置フィードバックθactが、理想的な位置フィードバックと交わるまでの位置(角度)の変化である位相φを取得してもよい。または、位相取得部18は、例えば、位置指令値θcmdがサーボコントローラ2に入力されてから、その位置指令値に応じた位置フィードバックθactが位置指令値θcmdと一致するまでの時間を測定し、その時間を、それに応じた位置(角度)に変換することによって、減速機の角度伝達誤差の位相φを取得してもよい。なお、一定速度の単軸動作が行われる場合には、その測定した時間に速度を掛けることによって位相φを算出できる。一方、一定速度でない単軸動作が行われる場合には、その測定した時間にわたって速度を積分することによって位相φを算出できる。
補償量算出部19は、記憶部16で記憶されている周波数と、振幅取得部17が取得した振幅と、位相取得部18が取得した位相とを用いて、位置指令値における減速機の角度伝達誤差成分を補償するための補償量を算出する。具体的には、補償量算出部19は、次式のように補償量を算出してもよい。このように、本実施の形態では、外界センサを用いることなく、内部センサから得られる値を用いて数式モデルを構築することができる。
補償量=−B・sin(ω・θcmd+φ)
ここで、Bは、振幅取得部17が取得した補償振幅であり、位置(角度)の次元を有している。また、ω(=2πf)は、角周波数である。ただし、fは、記憶部16で記憶されている周波数である。また、θcmdは、位置指令値であり、φは、位相取得部18が取得した位相である。したがって、補償量算出部19は、図示しない記録媒体で記憶されている上記式を読み出し、補償振幅B等に値を代入することによって、補償量を算出してもよい。その算出された補償量は、図示しない記録媒体で記憶されてもよい。
補償部20は、補償量算出部19が算出した補償量を用いて、位置指令値の角度伝達誤差成分の補償を行う。その補償は、位置指令生成部11が生成した位置指令値に、角度伝達誤差を打ち消すように補償量を加算または減算することによって行われてもよい。加算または減算は、例えば、補償量の全体に−1を掛けるどうかによって異なるため、角度伝達誤差が低減するように適宜、決定されるものである。補償部20による補償後の位置指令値は、サーボコントローラ2に入力される。
図2は、サーボコントローラ2の詳細な構成を示すブロック図である。本実施の形態によるサーボコントローラ2は、速度指令生成器21と、電流指令生成器22と、トルク指令生成器23とを備える。
速度指令生成器21は、モータの位置フィードバック(現在位置)と、位置指令生成部11から受け取った位置指令値とに応じて速度指令値を生成する。速度指令生成器21は、モータの位置フィードバックが位置指令値に近づくようにフィードバック制御をするための速度指令値を生成する。
電流指令生成器22は、モータの速度フィードバック(現在速度)と、速度指令生成器21が生成した速度指令値とに応じて電流指令値を生成する。電流指令生成器22は、モータの現在速度が速度指令値に近づくようにフィードバック制御をするための電流指令値を生成する。
トルク指令生成器23は、モータの電流フィードバック(現在電流)と、電流指令生成器22が生成した電流指令値とに応じてトルク指令値を生成し、モータに出力する。トルク指令生成器23は、モータの現在電流が電流指令値に近づくようにフィードバック制御をするためのトルク指令値を生成する。モータは、このトルク指令値によって動作する。
なお、これらのフィードバック制御はすでに公知であり、その詳細な説明を省略する。また、モータの電流フィードバックは、トルク指令生成器23に入力される。また、モータの速度フィードバックは、電流指令生成器22に入力される。また、モータの位置フィードバックは、速度指令生成器21に入力される。なお、モータの速度フィードバックは、モータの位置フィードバックが時間微分されたものであってもよい。また、マニピュレータ3が複数のモータを有する場合には、そのモータごとに図2で示されるサーボコントローラ2が存在すると考えてもよい。
なお、図1では、サーボコントローラ2に一の位置指令値を出力し、サーボコントローラ2から一のフィードバックを受け取る場合について示しているが、これは説明の便宜のためであり、制御装置1は、マニピュレータ3が有する軸数、すなわちモータの数だけ位置指令値を出力し、その数だけフィードバックを受け取ってもよい。すなわち、制御装置1の処理は、モータごとに行われてもよい。
次に、制御装置1の動作について図3,図4のフローチャートを用いて説明する。図3のフローチャートは、補償量の算出のために用いる振幅や位相を取得する制御装置1の動作を示すフローチャートである。この処理は、例えば、産業用ロボット100の製造後に工場等において一度だけ行われてもよく、その産業用ロボット100の減速機が交換されるなどのように、ロボットの構成が変更された際にも行われてもよい。
(ステップS101)単軸動作制御部14は、単軸動作を行うための制御を行う。例えば、単軸動作制御部14は、単軸動作を行うモータが一定速度で動作するための位置指令値を出力するように、位置指令生成部11を制御してもよい。その結果、単軸動作を行うための位置指令値が位置指令生成部11によって生成され、その位置指令値に応じて、あるモータが単軸動作を行う。なお、この場合には、補償部20による補償は行われないものとする。
(ステップS102)指令値受付部12は、位置指令値を受け付け、図示しない記録媒体に蓄積する。また、フィードバック受付部13は、位置フィードバックを受け付け、図示しない記録媒体に蓄積する。
(ステップS103)単軸動作制御部14は、単軸動作の制御を終了するかどうか判断する。そして、終了する場合には、ステップS104に進み、単軸動作の制御を継続する場合には、ステップS101に戻る。なお、単軸動作制御部14は、例えば、あらかじめ決められた時間だけ単軸動作を行った場合に、単軸動作の制御を終了すると判断してもよく、その他のイベントの発生に応じて単軸動作の制御を終了すると判断してもよい。
(ステップS104)位相取得部18は、指令値受付部12がステップS102で受け付けた位置指令値と、フィードバック受付部13がステップS102で受け付けた位置フィードバックとを用いて、角度伝達誤差の位相を取得する。
なお、ステップS101〜S104では、角度伝達誤差の補償を行わない単軸動作において、補償量を算出するために必要な位相が算出される。
(ステップS105)振幅取得部17は、記憶部16で記憶されている標準振幅を取得する。その標準振幅は、補償振幅の初期値である。
(ステップS106)単軸動作制御部14は、単軸動作を行うための制御を行う。その結果、単軸動作を行うための位置指令値が位置指令生成部11によって生成され、その位置指令値に応じて、あるモータが単軸動作を行う。なお、そのモータは、ステップS101で単軸動作を行ったモータである。また、この場合には、後述するように、補償部20による補償が行われるものとする。
(ステップS107)指令値受付部12は、位置指令値を受け付け、図示しない記録媒体に蓄積する。
(ステップS108)補償量算出部19は、ステップS104で取得された位相と、ステップS105またはステップS115で取得された最新の補償振幅と、記憶部16で記憶されている周波数と、位置指令生成部11が生成した位置指令値とを用いて、上述の式で示されるように、補償量を算出する。
(ステップS109)補償部20は、位置指令生成部11が生成した位置指令値を、補償量算出部19が算出した補償量を用いて補正し、サーボコントローラ2に渡す。
(ステップS110)フィードバック受付部13は、サーボコントローラ2から位置フィードバックを受け付け、図示しない記録媒体に蓄積する。
(ステップS111)単軸動作制御部14は、単軸動作の制御を終了するかどうか判断する。そして、終了する場合には、ステップS112に進み、単軸動作の制御を継続する場合には、ステップS106に戻る。なお、単軸動作制御部14は、例えば、あらかじめ決められた時間だけ単軸動作を行った場合に、単軸動作の制御を終了すると判断してもよく、その他のイベントの発生に応じて単軸動作の制御を終了すると判断してもよい。
(ステップS112)フーリエ変換部15は、フィードバック受付部13が受け付けた位置フィードバックをフーリエ変換する。この処理において、フーリエ変換部15は、前述のように、指令値受付部12が受け付けた位置指令値を用いてもよい。
(ステップS113)振幅取得部17は、フーリエ変換後の周波数領域におけるフィードバックにおいて、記憶部16で記憶されている周波数に応じた誤差振幅を取得する。
(ステップS114)振幅取得部17は、取得した誤差振幅が、あらかじめ決められているしきい値よりも小さいかどうか判断する。そして、誤差振幅がしきい値よりも小さい場合には、補償振幅や位相を取得する一連の処理は終了となり、小さくない場合には、ステップS115に進む。
(ステップS115)振幅取得部17は、誤差振幅が小さくなるようにするための補償振幅を取得する。そして、ステップS106に戻る。なお、誤差振幅を小さくするために、補償振幅を増加させればよいのか、または減少させればよいのかが分かっている場合には、振幅取得部17は、そのように変化させた補償振幅を取得するものとする。一方、そうでない場合には、振幅取得部17は、例えば、ランダムに補償振幅を変更してもよい。
なお、ステップS105〜S115では、角度伝達誤差に応じた位置フィードバックの変化が小さくなるように、補償量を算出するために用いられる補償振幅が調整される。したがって、この調整後の補償振幅を用いることによって、角度伝達誤差の影響を低減した制御を実現できることになる。
また、図3のフローチャートでは、位相の取得を1回だけ行う場合について示しているが、そうでなくてもよい。例えば、ステップS101からステップS104までの位相の取得の処理を2回以上行い、その処理によって取得された2以上の位相の平均値としての位相を補償量の算出で用いてもよい。そのようにすることで、モデル精度を高めることができると考えられる。なお、位相を取得するタイミングは問わない。例えば、ステップS114でYesと判断された後に、位相の取得を行い、それまでに取得した位相との平均値を求め、その位相の平均値を用いた補償量によって、それ以降の補償を行ってもよい。
図4のフローチャートは、産業用ロボット100の動作時における制御装置1の動作を示すフローチャートである。
(ステップS201)位置指令生成部11は、位置指令値を生成するタイミングであるかどうか判断する。そして、位置指令値を生成するタイミングである場合には、ステップS202に進み、そうでない場合には、位置指令値を生成するタイミングとなるまでステップS201の処理を繰り返す。なお、位置指令生成部11は、例えば、あらかじめ決められた時間間隔ごとに、位置指令値を生成すると判断してもよく、その他のタイミングで位置指令値を生成すると判断してもよい。
(ステップS202)位置指令生成部11は、位置指令値を生成する。その位置指令値の生成は、例えば、教示情報に応じた位置指令値の生成であってもよい。
(ステップS203)補償量算出部19は、ステップS104で取得された位相と、ステップS105またはステップS115で取得された最新の補償振幅と、記憶部16で記憶されている周波数と、位置指令生成部11が生成した位置指令値とを用いて、上述の式で示されるように、補償量を算出する。
(ステップS204)補償部20は、位置指令生成部11が生成した位置指令値における角度伝達誤差成分を、補償量算出部19が算出した補償量で補償した位置指令値をサーボコントローラ2に渡す。そして、ステップS201に戻る。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。また、図4のフローチャートには、サーボコントローラ2に関する処理は含まれていないが、それらの処理は公知であり、その詳細な説明を省略する。
以上のように、本実施の形態による制御装置1によれば、外界センサを用いることなく角度伝達誤差を低減するための数式モデルを構築することができ、その数式モデルを用いて、角度伝達誤差の影響を低減することができる。その結果、軌跡精度の高い産業用ロボット100を実現することが可能となる。なお、減速機の出力側の運動は、内部センサで観測することはできない。しかしながら、その減速機の出力側の運動は、減速機を経由して減速機の入力軸に結合されているサーボモータに伝達される。したがって、本実施の形態のように、サーボモータのフィードバックを観測することによって、減速機の角度伝達誤差に起因する出力軸の運動を間接的に観測することができ、その結果、外界センサを用いることなく角度伝達誤差に応じた数式モデルを構築することができる。また、角度伝達誤差の影響が小さくなるように補償振幅を調整し、その調整後の補償振幅を用いて角度伝達誤差の補償を行うため、時間軸でのずれのない数学モデルを構築することができ、より適切に角度伝達誤差の影響を低減できることになる。また、単軸動作時にモータを一定速度で動作させることによって、誤差振幅や位相の取得の処理が簡単になりうる。
また、本実施の形態では、フーリエ変換結果が、位置(角度)の周波数領域におけるフィードバックである場合について説明したが、そうでなくてもよい。一定速度の単軸動作が行われる場合には、フーリエ変換結果は、時間の周波数領域におけるフィードバックであってもよい。その場合には、振幅取得部17は、記憶部16で記憶されている周波数(rad−1)等に、単軸動作時の速度(rad/sec)を掛けることによって、時間の周波数(sec−1)を算出し、フーリエ変換結果において、その時間の周波数に対応する誤差振幅を取得してもよい。したがって、そのような場合には、フーリエ変換部15は、フィードバック受付部13が受け付けたフィードバックをそのままフーリエ変換してもよい。また、このようなフーリエ変換を行う場合には、ステップS107における位置指令値の受け付けの処理を行わなくてもよい。
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、あるいは、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
また、上記実施の形態において、制御装置に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
以上より、本発明による制御装置によれば、角度伝達誤差の補償を行うことができ、マニピュレータの制御装置として有用である。
1 制御装置
2 サーボコントローラ
3 マニピュレータ
11 位置指令生成部
12 指令値受付部
13 フィードバック受付部
14 単軸動作制御部
15 フーリエ変換部
16 記憶部
17 振幅取得部
18 位相取得部
19 補償量算出部
20 補償部
100 産業用ロボット

Claims (3)

  1. 減速機を介してモータにより駆動される関節によって連結された複数のアームを有するマニピュレータを制御する制御装置であって、
    前記モータの位置指令値を受け付ける指令値受付部と、
    当該モータのフィードバックを受け付けるフィードバック受付部と、
    前記減速機の角度伝達誤差の周波数が記憶される記憶部と、
    前記モータを単軸動作させる単軸動作制御部と、
    前記単軸動作制御部が前記モータを単軸動作させている際に受け付けられたフィードバックをフーリエ変換するフーリエ変換部と、
    前記フーリエ変換部によってフーリエ変換された周波数領域におけるフィードバックにおいて、前記記憶部で記憶されている周波数に応じた振幅である誤差振幅が小さくなるように、角度伝達誤差の補償で用いられる振幅である補償振幅を取得する振幅取得部と、
    前記指令値受付部が受け付けた位置指令値と、当該位置指令値に応じて前記フィードバック受付部が受け付けた位置フィードバックとを用いて、前記減速機の角度伝達誤差の位相を取得する位相取得部と、
    前記記憶部で記憶されている周波数と、前記振幅取得部が取得した補償振幅と、前記位相取得部が取得した位相とを用いて、前記位置指令値における前記減速機の角度伝達誤差成分を補償するための補償量を算出する補償量算出部と、
    前記補償量算出部が算出した補償量を用いて、前記位置指令値の角度伝達誤差成分の補償を行う補償部と、を備え、
    前記振幅取得部は、補償後の前記フィードバックに応じた誤差振幅が小さくなるように前記補償振幅を取得する、制御装置。
  2. 前記フーリエ変換部は、位置指令値と、前記フィードバック受付部によって受け付けられたフィードバックとを用いて、前記モータの位置とフィードバックとの関係を取得し、当該関係に対してフーリエ変換を行い、
    前記単軸動作制御部は、前記モータを一定ではない速度で単軸動作させる、請求項1記載の制御装置。
  3. 前記記憶部では、前記減速機の型式に応じた標準的な補償振幅である標準振幅も記憶されており、
    前記振幅取得部は、当該標準振幅を、補償後の前記フィードバックに応じた誤差振幅が小さくなるように変更した補償振幅を取得する、請求項1または請求項2記載の制御装置。
JP2013132288A 2013-06-25 2013-06-25 制御装置 Active JP6245858B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013132288A JP6245858B2 (ja) 2013-06-25 2013-06-25 制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013132288A JP6245858B2 (ja) 2013-06-25 2013-06-25 制御装置

Publications (2)

Publication Number Publication Date
JP2015006705A JP2015006705A (ja) 2015-01-15
JP6245858B2 true JP6245858B2 (ja) 2017-12-13

Family

ID=52337415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013132288A Active JP6245858B2 (ja) 2013-06-25 2013-06-25 制御装置

Country Status (1)

Country Link
JP (1) JP6245858B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105710884B (zh) * 2016-03-11 2017-09-01 深圳小趴智能科技有限公司 中弹检测方法及战斗机器人
JP7117827B2 (ja) * 2017-05-18 2022-08-15 川崎重工業株式会社 モータ制御システム、モータ制御システムの制御方法、及びロボットシステム
JP6860417B2 (ja) 2017-05-18 2021-04-14 川崎重工業株式会社 減速機角度伝達誤差同定システム及び減速機角度伝達誤差同定方法
CN109062139B (zh) * 2018-08-10 2020-04-17 清华大学 一种基于数据驱动的机器人直线轴定位误差补偿方法
WO2023222207A1 (en) * 2022-05-17 2023-11-23 Abb Schweiz Ag Reducing kinematic error

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2577713B2 (ja) * 1986-12-17 1997-02-05 株式会社神戸製鋼所 ロボツト用制御装置
JPH01199132A (ja) * 1988-02-04 1989-08-10 Ono Sokki Co Ltd 噛合伝達誤差波形の抽出方法
JP2710065B2 (ja) * 1989-02-17 1998-02-10 松下電器産業株式会社 ロボットのサーボ制御装置
US5374884A (en) * 1992-11-18 1994-12-20 University Of Michigan, The Board Of Regents Acting . . . Model-based position-repeatable disturbance compensation
JP3239789B2 (ja) * 1997-02-21 2001-12-17 松下電器産業株式会社 制御装置および制御方法
JP2001264216A (ja) * 2000-03-22 2001-09-26 Ricoh Co Ltd 歯車評価方法と歯車評価の解析プログラムを記憶した記憶媒体及び歯車評価装置
JP2005249628A (ja) * 2004-03-05 2005-09-15 Shin Ei Tech:Kk ギヤ機構の回転角度誤差解析装置
JP5277946B2 (ja) * 2008-12-24 2013-08-28 株式会社安川電機 ロボット制御装置およびロボットシステム
JP5659749B2 (ja) * 2010-12-06 2015-01-28 株式会社Ihi 波動歯車減速機の角度伝達誤差補正方法及び装置

Also Published As

Publication number Publication date
JP2015006705A (ja) 2015-01-15

Similar Documents

Publication Publication Date Title
JP6245858B2 (ja) 制御装置
CN109274314B (zh) 机器学习装置、伺服电动机控制装置、伺服电动机控制系统以及机器学习方法
JP6648913B2 (ja) 制御方法、ロボット装置、プログラム、記録媒体、物品の製造方法、及び駆動装置
US11148282B2 (en) Control device for motor drive device, control device for multi-axial motor, and control method for motor drive device
JP2014136260A (ja) 制御装置
CN109799701B (zh) 一种工业机器人振动抑制方法
JP6499720B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP5269158B2 (ja) 制御方法及び制御装置
JP7117827B2 (ja) モータ制御システム、モータ制御システムの制御方法、及びロボットシステム
JP6958574B2 (ja) モデル予測制御のための制御パラメータの設定方法
WO2014061681A1 (ja) 多関節ロボットのウィービング制御装置
JP5302639B2 (ja) サーボ制御装置
WO2018212307A1 (ja) 減速機角度伝達誤差同定システム及び減速機角度伝達誤差同定方法
JP2019181610A (ja) モータエンコーダ及びセンサを用いて学習制御を行うロボットシステム
CN110955192B (zh) 伺服控制装置、机器人及伺服控制方法
JP2020015124A (ja) ロボット制御方法、物品の製造方法、ロボット制御装置、ロボット、プログラム及び記録媒体
Porawagama et al. Reduced jerk joint space trajectory planning method using 5-3-5 spline for robot manipulators
JP5283804B1 (ja) サーボ制御装置
JP2016032326A (ja) モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体
JP6814441B2 (ja) 駆動機械の学習制御装置及び学習制御方法
JP5710367B2 (ja) 制御装置および制御方法、並びにプログラム
JP2020069616A (ja) モータ駆動装置、ロボット駆動システム及びモータ駆動プログラム
WO2021261023A1 (ja) ロボット制御システム、制御プログラムおよび制御方法
JP7392590B2 (ja) ロボット制御システム、制御プログラムおよび制御方法
JP4945737B2 (ja) ロボットシステム及び補間方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170601

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171114

R150 Certificate of patent or registration of utility model

Ref document number: 6245858

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250