JP2014117787A - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- JP2014117787A JP2014117787A JP2012276389A JP2012276389A JP2014117787A JP 2014117787 A JP2014117787 A JP 2014117787A JP 2012276389 A JP2012276389 A JP 2012276389A JP 2012276389 A JP2012276389 A JP 2012276389A JP 2014117787 A JP2014117787 A JP 2014117787A
- Authority
- JP
- Japan
- Prior art keywords
- torque
- motor
- disturbance torque
- command
- filter
- 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
Landscapes
- Manipulator (AREA)
Abstract
【課題】外乱トルクを推定する際に、ノイズを適切に除去できない。
【解決手段】モータの指令トルクを生成する指令トルク生成部11、モータの速度を用いて推定トルクを算出する推定トルク算出部12、推定トルクとモータに入力される指令トルクの差である基本推定外乱トルクを算出する外乱トルク算出部13、基本推定外乱トルク、モータの速度、指令トルクを用いてフィルタ処理を行い、ノイズを除去した最終推定外乱トルクを生成するフィルタ部14、基本推定外乱トルクとモータの速度を用いてフィルタ処理のパラメータを更新する更新部15、生成された指令トルクから最終推定外乱トルク成分を補償した指令トルクを生成し、モータに出力する外乱補償部16を備える。フィルタ処理のパラメータを更新することによって、マニピュレータ2の動作状況に応じたフィルタを構成でき、ノイズを適切に除去することができる。
【選択図】図1
【解決手段】モータの指令トルクを生成する指令トルク生成部11、モータの速度を用いて推定トルクを算出する推定トルク算出部12、推定トルクとモータに入力される指令トルクの差である基本推定外乱トルクを算出する外乱トルク算出部13、基本推定外乱トルク、モータの速度、指令トルクを用いてフィルタ処理を行い、ノイズを除去した最終推定外乱トルクを生成するフィルタ部14、基本推定外乱トルクとモータの速度を用いてフィルタ処理のパラメータを更新する更新部15、生成された指令トルクから最終推定外乱トルク成分を補償した指令トルクを生成し、モータに出力する外乱補償部16を備える。フィルタ処理のパラメータを更新することによって、マニピュレータ2の動作状況に応じたフィルタを構成でき、ノイズを適切に除去することができる。
【選択図】図1
Description
本発明は、推定された外乱トルクからノイズを除去するフィルタを備えた制御装置に関する。
複数のアームを有するマニピュレータの制御時には、アームの自重、搬送対象の重量、関節での摩擦等に起因する種々の外乱が発生する。そのため、例えば、特許文献1には、外乱トルクを算出し、その算出した外乱トルクを指令トルクから引くことで外乱を補償し、高い精度の軌道制御を行う手法が記載されている。また、外乱のうち、特に摩擦を補償する方法として、特許文献2には、速度反転判別器と位置指令の微分値により、摩擦補償の有無と向きを決定する方法であって、動作に合わせて摩擦を補償する方法が記載されている。
しかしながら、特許文献1の方法では、速度により推定されるトルクと、電流値から計測されるトルクの差分を一次遅れフィルタに通すことで外乱トルクを算出しているが、その一次遅れフィルタが外乱の推定確度を下げてしまうことになる。具体的には、遅れ時定数を小さくすることで遅れ時間が小さくなるが、ノイズが多くなるため精度が下がり、適切な補償ができない場合がある。一方、精度を上げるためには、遅れ時定数を大きくする必要があり、それだけフィードバックのタイムラグが大きくなるという問題があった。
また、特許文献2の方法では、動摩擦補償の方向と有無について考慮しているが、補償量については別途考慮する必要がある。そのため、同じ現象を2個のモジュールで取り扱うことで、動摩擦補償の方向と補償量との不一致が起こる可能性がある。
一般的に言えば、アームの自重や摩擦等に起因する外乱を補償する際に、より精度の高い外乱の推定を行いたいという要望があった。
一般的に言えば、アームの自重や摩擦等に起因する外乱を補償する際に、より精度の高い外乱の推定を行いたいという要望があった。
本発明は、上記事情に応じてなされたものであり、推定された外乱トルクから適切にノイズを除去することができる制御装置を提供することを目的とする。
上記目的を達成するため、本発明による制御装置は、モータによって駆動される関節によって連結された複数のアームを有するマニピュレータを制御する制御装置であって、モータの指令トルクを生成する指令トルク生成部と、モータの動作情報を用いて推定トルクを算出する推定トルク算出部と、推定トルクと、モータに入力される指令トルクとの差に応じた基本推定外乱トルクを算出する外乱トルク算出部と、基本推定外乱トルクを少なくとも用いてフィルタ処理を行うことにより、ノイズを除去した最終推定外乱トルクを生成するフィルタ部と、基本推定外乱トルクを少なくとも用いてフィルタ処理のパラメータを更新する更新部と、指令トルク生成部が生成した指令トルクから、フィルタ部が生成した最終推定外乱トルク成分を補償した指令トルクを生成し、モータに出力する外乱補償部と、を備えたものである。
このような構成により、更新部によってフィルタ処理のパラメータが更新され、マニピュレータの動作状況に応じた適切なパラメータをフィルタ部に設定することができる。その結果、ノイズが適切に除去された精度の高い最終推定外乱トルクを生成することができ、その最終推定外乱トルクを用いることによって、マニピュレータをより高精度に動作させることができる。
このような構成により、更新部によってフィルタ処理のパラメータが更新され、マニピュレータの動作状況に応じた適切なパラメータをフィルタ部に設定することができる。その結果、ノイズが適切に除去された精度の高い最終推定外乱トルクを生成することができ、その最終推定外乱トルクを用いることによって、マニピュレータをより高精度に動作させることができる。
また、本発明による制御装置では、フィルタ部は、基本推定外乱トルクと、モータの速度と、指令トルク生成部が生成した指令トルクとを用いて時間発展モデルのフィルタ処理を行い、更新部は、モータの速度と、基本推定外乱トルクとを用いて、速度と外乱トルクとの関係を示す関数のパラメータを更新してもよい。
このような構成により、時間発展モデルのフィルタを適切に更新することができ、精度の高い最終推定外乱トルクの生成が可能となる。
このような構成により、時間発展モデルのフィルタを適切に更新することができ、精度の高い最終推定外乱トルクの生成が可能となる。
また、本発明による制御装置では、更新部は、速度と外乱トルクとの関係を示す関数を決定できるだけのモータの速度と速度に応じた基本推定外乱トルクとの組が取得された場合に、フィルタ処理のパラメータを更新してもよい。
このような構成により、フィルタのパラメータが適宜、更新されることになる。その結果、マニピュレータの動作状況に応じた適切なフィルタを構成することができる。
このような構成により、フィルタのパラメータが適宜、更新されることになる。その結果、マニピュレータの動作状況に応じた適切なフィルタを構成することができる。
本発明による制御装置によれば、ノイズの除去された精度の高い最終推定外乱トルクの生成が可能となる。その結果、マニピュレータの精度の高い制御が可能となる。
以下、本発明による制御装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1によるマニピュレータの制御装置について、図面を参照しながら説明する。本実施の形態によるマニピュレータの制御装置は、フィルタのパラメータを適宜、更新することによって、精度の高い最終推定外乱トルクの生成を行うものである。
本発明の実施の形態1によるマニピュレータの制御装置について、図面を参照しながら説明する。本実施の形態によるマニピュレータの制御装置は、フィルタのパラメータを適宜、更新することによって、精度の高い最終推定外乱トルクの生成を行うものである。
図1は、本実施の形態による産業用ロボット100の構成を示すブロック図である。本実施の形態による産業用ロボット100は、制御装置1と、マニピュレータ2とを備える。制御装置1は、モータによって駆動される関節によって連結された複数のアームを有するマニピュレータ2を制御する。そのマニピュレータ2において、各モータとアームとは減速機を介して接続されている。また、直列に接続されたアームの先端に、手先効果器(エンドエフェクタ)が設けられていてもよい。マニピュレータ2は、例えば、垂直多関節ロボットのマニピュレータであってもよく、水平多関節ロボットのマニピュレータであってもよい。また、そのマニピュレータ2の軸数は問わない。マニピュレータ2の軸数は、例えば、4軸、5軸、6軸であってもよく、または、その他の軸数であってもよい。また、制御装置1は、ティーチングプレイバック方式によりマニピュレータ2を制御してもよく、または、自律方式によりマニピュレータ2を制御してもよい。本実施の形態による産業用ロボット100は、例えば、搬送ロボットであってもよく、溶接ロボットであってもよく、組立ロボットであってもよく、塗装ロボットであってもよく、あるいは、その他の用途のロボットであってもよい。
図1で示されるように、制御装置1は、指令トルク生成部11と、推定トルク算出部12と、外乱トルク算出部13と、フィルタ部14と、更新部15と、外乱補償部16とを備える。
指令トルク生成部11は、マニピュレータ2が有するモータの指令トルクを生成する。指令トルク生成部11は、例えば、教示情報等を用いることによって、モータの位置を算出し、モータがその位置となるように、指令トルクを生成してもよい。また、指令トルク生成部11は、図示しない他の構成要素からモータの位置指令を受け取り、モータがその指令に応じた位置となるように、指令トルクを生成してもよい。また、指令トルク生成部11は、図示しない他の構成要素からモータの速度指令や電流指令を受け取り、モータがそれらの指令に応じた速度や電流となるように、指令トルクを生成してもよい。なお、指令トルク生成部11は、これらの処理を行う際に、モータの現在位置や、現在速度、現在電流等のフィードバックを受け取り、フィードバック制御を行うことによって、指令トルクを生成してもよい。生成された指令トルクは、フィルタ部14と、外乱補償部16とに入力される。
推定トルク算出部12は、マニピュレータ2からモータの動作情報を受け取り、そのモータの動作情報を用いて推定トルクを算出する。そのモータの動作情報は、モータの現在速度、モータの現在電流、モータのトルク指令の少なくとも1以上のものである。なお、本実施の形態では、モータの動作情報がモータの現在速度である場合について主に説明する。そのモータの速度は、マニピュレータ2においてエンコーダ等を用いて取得された位置を時間微分したものであり、厳密に言えば、角速度である。推定トルク算出部12は、例えば、バネマス系程度の簡単なモデルを用いて推定トルクを算出してもよい。なお、推定トルク算出部12が、これら以外の方法を用いて推定トルクを算出してもよいことは言うまでもない。算出された推定トルクは、外乱トルク算出部13に入力される。
外乱トルク算出部13は、推定トルク算出部12が算出した推定トルクと、マニピュレータ2のモータに入力される指令トルクとの差に応じた基本推定外乱トルクを算出する。なお、基本推定外乱トルクとは、ノイズの除去前の推定外乱トルクのことであり、後述する最終推定外乱トルクとは、ノイズの除去後の推定外乱トルクのことである。外乱トルク算出部13が算出する基本推定外乱トルクは、推定トルクと指令トルクとの差であってもよく、または、その差と正の相関を有する値であってもよい。基本推定外乱トルクが推定トルクと指令トルクとの差である場合には、外乱トルク算出部13は、その差を算出する減算器であってもよい。なお、この基本推定外乱トルクの算出で用いられる指令トルクは、外乱トルクの補償後の指令トルク、すなわち外乱補償部16が出力した指令トルクであることが好適であるが、外乱トルクの補償前の指令トルク、すなわち、指令トルク生成部11が出力した指令トルクであってもよい。算出された基本推定外乱トルクは、フィルタ部14と、更新部15とに渡される。
フィルタ部14は、外乱トルク算出部13が算出した基本推定外乱トルクを少なくとも用いてフィルタ処理を行うことにより、ノイズを除去した最終推定外乱トルクを生成する。なお、このフィルタ処理の種類は問わない。このフィルタ処理は、例えば、特許文献1に記載の一次遅れフィルタ処理であってもよく、時間発展モデルのフィルタ処理であってもよく、または、ノイズを除去可能なその他のフィルタ処理であってもよい。なお、一次遅れフィルタ処理を行う場合には、フィルタ部14は、基本推定外乱トルクの入力を受け付け、その基本推定外乱トルクを用いてフィルタ処理を行い、ノイズを除去した最終推定外乱トルクを生成する。一方、時間発展モデルのフィルタ処理を行う場合には、フィルタ部14は、基本推定外乱トルクと、モータの速度と、指令トルク生成部11が生成した指令トルクとの入力を受け付け、それらを用いて時間発展モデルのフィルタ処理を行い、ノイズを除去した最終推定外乱トルクを生成する。なお、時間発展モデルのフィルタ処理は、例えば、カルマンフィルタの処理であってもよく、パーティクルフィルタの処理であってもよい。なお、そのカルマンフィルタは、通常、線形のカルマンフィルタであるが、非線形のカルマンフィルタであってもよい。非線形のカルマンフィルタは、例えば、拡張カルマンフィルタであってもよく、Unscentedカルマンフィルタであってもよい。本実施の形態では、フィルタ部14が、カルマンフィルタの処理を行う場合について主に説明する。また、カルマンフィルタの時間発展モデルや観測モデルについては後述する。ノイズの除去された最終推定外乱トルクは、外乱補償部16に入力される。
更新部15は、基本推定外乱トルクを少なくとも用いてフィルタ処理のパラメータを更新する。フィルタ部14が、一次遅れフィルタである場合には、更新部15は、基本推定外乱トルクを用いてパラメータである遅れ時定数を更新する。一方、フィルタ部14が、時間発展モデルのフィルタである場合には、更新部15は、モータの速度と、基本推定外乱トルクとを用いて、速度と外乱トルクとの関係を示す関数のパラメータを更新する。なお、フィルタ部14が一次遅れフィルタである場合には、更新部15は、基本推定外乱トルクが所定の条件をみたす場合に、フィルタ処理のパラメータを更新してもよい。フィルタ部14が、時間発展モデルのフィルタである場合には、更新部15は、速度と外乱トルクとの関係を示す関数を決定できるだけのモータの速度と、その速度に応じた基本推定外乱トルクとの組が取得された場合に、フィルタ処理のパラメータを更新してもよい。なお、パラメータの更新については、後述する。
外乱補償部16は、指令トルク生成部11が生成した指令トルクから、フィルタ部14が生成した最終推定外乱トルク成分を補償した指令トルクを生成し、モータに出力する。ここで、指令トルクから最終推定外乱トルク成分を補償するとは、その補償後の指令トルクがモータに入力され、さらに外乱が加わることによって、その外乱が相殺されるようにすることである。その結果として、モータは、指令トルク生成部11が生成した指令トルクで指示されるように動作することになる。この最終推定外乱トルクの補償は、指令トルクから、最終推定外乱トルクを減算することによって行われてもよい。その場合には、外乱補償部16は、その差を算出する減算器であってもよい。外乱の補償された指令トルクは、マニピュレータ2のモータと、外乱トルク算出部13とに入力される。
なお、図1では、マニピュレータ2に一の指令トルクを出力し、マニピュレータ2から一の速度を受け取る場合について示しているが、これは説明の便宜のためであり、制御装置1は、マニピュレータ2が有する軸数、すなわちモータの数だけ指令トルクを出力し、その数だけ速度を受け取ってもよい。すなわち、制御装置1の処理は、モータごとに行われてもよい。
ここで、フィルタ部14が用いるフィルタ処理として、(1)カルマンフィルタの例1、(2)カルマンフィルタの例2、(3)一次遅れフィルタの例について説明する。
(1)カルマンフィルタの例1
カルマンフィルタの時間発展モデルと、観測モデルとについて説明する。ここでは、システム時間発展モデルの例として、動摩擦を利用する。また、カルマンフィルタの内部パラメータとして、外乱トルクτと、モータの速度vと、モータの加速度αとを使用する。以下、τkは、時刻kにおける基本推定外乱トルクであり、vkは、時刻kにおける角速度であり、αkは、時刻kにおける角加速度であり、ukは、時刻kにおける指令トルクであり、dtは、更新間隔、すなわち、時刻kと、時刻k+1との時間間隔を示すものとする。
カルマンフィルタの時間発展モデルと、観測モデルとについて説明する。ここでは、システム時間発展モデルの例として、動摩擦を利用する。また、カルマンフィルタの内部パラメータとして、外乱トルクτと、モータの速度vと、モータの加速度αとを使用する。以下、τkは、時刻kにおける基本推定外乱トルクであり、vkは、時刻kにおける角速度であり、αkは、時刻kにおける角加速度であり、ukは、時刻kにおける指令トルクであり、dtは、更新間隔、すなわち、時刻kと、時刻k+1との時間間隔を示すものとする。
速度vと、外乱トルクτとの関係は、例えば、図2のように示され、次式のように表すことができる。なお、この式において、gaは、速度が0の近傍である場合の動摩擦の傾きに関係するパラメータであり、giは、速度の絶対値が大きい場合の動摩擦の傾きであり、g0は、速度が0の近傍である場合の動摩擦の大きさであり、gbは、アームの自重や搬送対象の重量等に応じたオフセット値である。なお、以下の式は、速度の絶対値の大きい場合に傾きがgiとなり、速度の0近傍で傾きがgiに応じたものとなり、両傾きの切り替わりが2g0程度の幅を持っており、オフセットがgbとなるように、関数を選択したものである。
フィルタ部14は、このようなシステムを有するカルマンフィルタを使用することで、指令値ukと観測値zkとを利用して、ノイズの除去されたτk、vk、αkを推定できる。フィルタ部14は、その推定値のうち、τkを最終推定外乱トルクとして出力する。なお、カルマンフィルタは公知のアルゴリズムであるため、その詳細な説明を省略する。
なお、この場合には、ga、gi、g0がフィルタ処理のパラメータである。したがって、更新部15は、角速度vと、基本推定外乱トルクτとの組を順次、図示しない記録媒体に蓄積する。その蓄積のタイミングは、例えば、更新間隔dtごとであってもよい。そして、更新部15は、速度と外乱トルクとの関係を示す関数を決定できるだけの組が取得された場合に、それらの組を用いて、最小二乗法等により、パラメータga、gi、g0、gbを決定して、フィルタ部14のパラメータga、gi、g0を更新する。フィルタ部14は、それらのパラメータが更新されると、その更新後のパラメータを用いて、カルマンフィルタの処理を行う。なお、最小二乗法は計算量が多いため、速度の0近傍と、傾きがgiとなる位置とにおいて線形近似を行い、各パラメータの近似値を算出してもよい。
更新部15は、例えば、速度があらかじめ決められた値−vhからvhまで変化したときに(vhは正または負の実数である)、速度と外乱トルクとの関係を示す関数を決定できるだけの組が取得されたと判断してもよい。また、更新部15は、例えば、速度があらかじめ決められた値−vhからvh/Aまで変化したとき、または、その逆のときに、速度と外乱トルクとの関係を示す関数を決定できるだけの組が取得されたと判断してもよい。ここで、Aは、1より大きい実数であり、大きすぎない値であることが好適である。また、更新部15は、モータにおいて回転方向の変化が発生した場合、例えば、モータが正回転から逆回転になった場合、またはその逆の場合に、速度と外乱トルクとの関係を示す関数を決定できるだけの組が取得されたと判断してもよい。また、更新部15は、その他のタイミングでパラメータを更新してもよい。例えば、ティーチングプレイバック方式の制御を行う場合には、更新部15は、教示情報のステップごとにパラメータを更新してもよい。教示情報のステップとは、ある教示点から他の教示点までの移動に応じた教示情報の単位である。また、例えば、更新部15は、あらかじめ決められた時間ごとに、パラメータを更新してもよい。
状態方程式やヤコビアンが異なる以外は、上述した(1)カルマンフィルタの例1と同様であり、その説明を省略する。
(3)一次遅れフィルタの例
この場合には、フィルタ部14、及び更新部15に入力されるのは、基本推定外乱トルクのみである。そして、フィルタ部14は、一次遅れフィルタによってノイズを除去する。その処理については、例えば、特許文献1を参照されたい。なお、そのフィルタのパラメータは、遅れ時定数であるため、更新部15は、その遅れ時定数を更新する。具体的には、更新部15は、入力された基本推定外乱トルクを蓄積し、あらかじめ決められた期間dtごと(例えば、1秒ごと等)に、基本推定外乱トルクの最大値と最小値との差である変化量を算出する。この変化量が大きい場合にはノイズが大きく、この変化量が小さい場合にはノイズが小さいと考えることができる。そして、更新部15は、ノイズが大きい場合には、遅れ時定数が大きくなるように更新し、ノイズが小さい場合には、遅れ時定数が小さくなるように更新する。なお、例えば、更新部15は、期間dtにおける変化量が第1のしきい値より大きい場合には、遅れ時定数を一段階大きい値に更新し、変化量が第2のしきい値より小さい場合には、遅れ時定数を一段階小さい値に更新してもよい。ここで、第1のしきい値は、第2のしきい値と同じ値であるか、あるいは、第2のしきい値よりも大きい値である。なお、この更新は、そのあらかじめ決められた期間dtよりも長い周期Tで行われてもよい。例えば、ある更新の周期Tにおいて、変化量が第1のしきい値より大きかった期間dtの数N1と、変化量が第2のしきい値より小さかった期間dtの数N2とを比較し、N1>N2であれば、遅れ時定数を一段階大きい値に更新し、N1<N2であれば、遅れ時定数を一段階小さい値に更新してもよい。このように遅れ時定数の更新を行うことによって、ノイズの除去と、応答の遅れとのバランスが最適になるようにフィルタを設定することができる。
この場合には、フィルタ部14、及び更新部15に入力されるのは、基本推定外乱トルクのみである。そして、フィルタ部14は、一次遅れフィルタによってノイズを除去する。その処理については、例えば、特許文献1を参照されたい。なお、そのフィルタのパラメータは、遅れ時定数であるため、更新部15は、その遅れ時定数を更新する。具体的には、更新部15は、入力された基本推定外乱トルクを蓄積し、あらかじめ決められた期間dtごと(例えば、1秒ごと等)に、基本推定外乱トルクの最大値と最小値との差である変化量を算出する。この変化量が大きい場合にはノイズが大きく、この変化量が小さい場合にはノイズが小さいと考えることができる。そして、更新部15は、ノイズが大きい場合には、遅れ時定数が大きくなるように更新し、ノイズが小さい場合には、遅れ時定数が小さくなるように更新する。なお、例えば、更新部15は、期間dtにおける変化量が第1のしきい値より大きい場合には、遅れ時定数を一段階大きい値に更新し、変化量が第2のしきい値より小さい場合には、遅れ時定数を一段階小さい値に更新してもよい。ここで、第1のしきい値は、第2のしきい値と同じ値であるか、あるいは、第2のしきい値よりも大きい値である。なお、この更新は、そのあらかじめ決められた期間dtよりも長い周期Tで行われてもよい。例えば、ある更新の周期Tにおいて、変化量が第1のしきい値より大きかった期間dtの数N1と、変化量が第2のしきい値より小さかった期間dtの数N2とを比較し、N1>N2であれば、遅れ時定数を一段階大きい値に更新し、N1<N2であれば、遅れ時定数を一段階小さい値に更新してもよい。このように遅れ時定数の更新を行うことによって、ノイズの除去と、応答の遅れとのバランスが最適になるようにフィルタを設定することができる。
次に、制御装置1の動作について図3のフローチャートを用いて説明する。
(ステップS101)指令トルク生成部11は、指令トルクを生成するタイミングかどうか判断する。そして、指令トルクを生成するタイミングである場合には、ステップS102に進み、そうでない場合には、指令トルクを生成するタイミングとなるまでステップS101の処理を繰り返す。
(ステップS101)指令トルク生成部11は、指令トルクを生成するタイミングかどうか判断する。そして、指令トルクを生成するタイミングである場合には、ステップS102に進み、そうでない場合には、指令トルクを生成するタイミングとなるまでステップS101の処理を繰り返す。
(ステップS102)指令トルク生成部11は、指令トルクukを生成し、フィルタ部14と、外乱補償部16とに渡す。
(ステップS103)フィルタ部14は、それまでに受け取っている基本推定外乱トルクτk−1と、角速度vk−1と、角速度の時間微分である角加速度αk−1と、指令トルク生成部11から受け取った指令トルクukとを用いて、カルマンフィルタにより最終推定外乱トルクτkを算出し、外乱補償部16、及び外乱トルク算出部13に出力する。なお、初期の動作時であって、まだ基本推定外乱トルク等を受け取っていない場合には、あらかじめ設定されている初期値を用いて最終推定外乱トルクの算出が行われてもよい。
(ステップS104)外乱補償部16は、指令トルクukから最終推定外乱トルクτkの成分を補償した指令トルクuk'を生成し、マニピュレータ2のモータと、外乱トルク算出部13とに出力する。その出力に応じて、モータが動作し、それに応じて角速度vkが推定トルク算出部12、フィルタ部14、更新部15に渡される。
(ステップS105)推定トルク算出部12は、角速度vkを受け取ると、その角速度vkを用いて推定トルクを算出し、外乱トルク算出部13に渡す。なお、角速度vkから角加速度αkを算出して推定トルクを算出する場合には、推定トルク算出部12は、次式により角加速度を算出してもよい。
αk=(vk−vk−1)/dt
αk=(vk−vk−1)/dt
(ステップS106)外乱トルク算出部13は、外乱補償部16から受け取った指令トルクuk'と、推定トルク算出部12から受け取った推定トルクとを用いて基本推定外乱トルクを算出し、フィルタ部14と、更新部15とに渡す。
(ステップS107)更新部15は、角速度vkと、それに対応する基本推定外乱トルクとの組を図示しない記録媒体に蓄積する。
(ステップS108)更新部15は、フィルタ部14のパラメータを更新するかどうか判断する。そして、更新する場合には、ステップS109に進み、そうでない場合には、ステップS101に戻る。
(ステップS109)更新部15は、それまでに蓄積した角速度と基本推定外乱トルクとの組を用いてフィルタ処理のパラメータを算出し、フィルタ部14のパラメータを更新する。なお、この処理の後に、それまでに蓄積した角速度と基本推定外乱トルクとの組を削除してもよく、または、そうでなくてもよい。そして、ステップS101に戻る。
なお、上記フローチャートの説明において、ステップS101からS109までのループが一周するごとに、添字のkが1だけインクリメントされることになる。また、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
なお、上記フローチャートの説明において、ステップS101からS109までのループが一周するごとに、添字のkが1だけインクリメントされることになる。また、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以上のように、本実施の形態による制御装置1によれば、更新部15がフィルタ部14のパラメータを更新することにより、マニピュレータ2の動作状況に応じたフィルタ処理を行うことができるようになる。その結果、より適切にノイズの除去された、遅れが最小限となる滑らかな推定外乱トルクを用いてマニピュレータ2を制御することができ、より精度の高い制御が可能となる。なお、外乱を正確に推定するためには、ロボットの逆システムによる推定を行えばよいが、非線形システムの逆システムを実現するのは困難である。そのため、本実施の形態による制御装置1では、粗い外乱推定と、ロボットの外乱モデルを学習するフィルタとを組み合わせることによって、精度の高い外乱推定を実現している。
なお、本実施の形態で説明した速度と外乱トルクとの関係を示す関数は一例であり、他の関数を用いて外乱トルクの推定を行ってもよい。また、本実施の形態で説明したカルマンフィルタや一次遅れフィルタ等は、フィルタ部14の一例であり、他のフィルタによって基本推定外乱トルクからノイズを除去し、最終推定外乱トルクを生成してもよい。すなわち、状態ベクトルや観測値、状態方程式、観測方程式等は、上述の説明に限定されるものではない。
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、あるいは、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス、設定値等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
また、上記実施の形態において、制御装置1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。なお、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体に記録されたプログラムが読み出されることによって実行されてもよい。また、そのプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
以上より、本発明による制御装置によれば、ノイズを適切に除去した外乱トルクを推定できるという効果が得られ、マニピュレータの制御装置として有用である。
1 制御装置
2 マニピュレータ
11 指令トルク生成部
12 推定トルク算出部
13 外乱トルク算出部
14 フィルタ部
15 更新部
16 外乱補償部
2 マニピュレータ
11 指令トルク生成部
12 推定トルク算出部
13 外乱トルク算出部
14 フィルタ部
15 更新部
16 外乱補償部
Claims (3)
- モータによって駆動される関節によって連結された複数のアームを有するマニピュレータを制御する制御装置であって、
前記モータの指令トルクを生成する指令トルク生成部と、
前記モータの動作情報を用いて推定トルクを算出する推定トルク算出部と、
前記推定トルクと、前記モータに入力される指令トルクとの差に応じた基本推定外乱トルクを算出する外乱トルク算出部と、
前記基本推定外乱トルクを少なくとも用いてフィルタ処理を行うことにより、ノイズを除去した最終推定外乱トルクを生成するフィルタ部と、
前記基本推定外乱トルクを少なくとも用いて前記フィルタ処理のパラメータを更新する更新部と、
前記指令トルク生成部が生成した指令トルクから、前記フィルタ部が生成した最終推定外乱トルク成分を補償した指令トルクを生成し、前記モータに出力する外乱補償部と、を備えた制御装置。 - 前記フィルタ部は、前記基本推定外乱トルクと、前記モータの速度と、前記指令トルク生成部が生成した指令トルクとを用いて時間発展モデルのフィルタ処理を行い、
前記更新部は、前記モータの速度と、前記基本推定外乱トルクとを用いて、速度と外乱トルクとの関係を示す関数のパラメータを更新する、請求項1記載の制御装置。 - 前記更新部は、前記速度と外乱トルクとの関係を示す関数を決定できるだけの前記モータの速度と当該速度に応じた前記基本推定外乱トルクとの組が取得された場合に、前記フィルタ処理のパラメータを更新する、請求項2記載の制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012276389A JP2014117787A (ja) | 2012-12-19 | 2012-12-19 | 制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012276389A JP2014117787A (ja) | 2012-12-19 | 2012-12-19 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014117787A true JP2014117787A (ja) | 2014-06-30 |
Family
ID=51173099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012276389A Pending JP2014117787A (ja) | 2012-12-19 | 2012-12-19 | 制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014117787A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016185593A1 (ja) * | 2015-05-21 | 2016-11-24 | 日産自動車株式会社 | 故障診断装置及び故障診断方法 |
WO2020170306A1 (ja) * | 2019-02-18 | 2020-08-27 | 三菱電機株式会社 | ロボット制御装置 |
KR20210052504A (ko) * | 2018-10-04 | 2021-05-10 | 가부시키가이샤 고베 세이코쇼 | 진동 억제 장치, 진동 억제 방법 및 프로그램 |
WO2022145213A1 (ja) * | 2020-12-28 | 2022-07-07 | ソニーグループ株式会社 | 制御装置、制御システム及び制御方法 |
-
2012
- 2012-12-19 JP JP2012276389A patent/JP2014117787A/ja active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2016185593A1 (ja) * | 2015-05-21 | 2018-03-08 | 日産自動車株式会社 | 故障診断装置及び故障診断方法 |
US10543604B2 (en) | 2015-05-21 | 2020-01-28 | Nissan Motor Co., Ltd. | Failure diagnostic device and failure diagnostic method |
WO2016185593A1 (ja) * | 2015-05-21 | 2016-11-24 | 日産自動車株式会社 | 故障診断装置及び故障診断方法 |
US11669055B2 (en) | 2018-10-04 | 2023-06-06 | Kobe Steel, Ltd. | Vibration suppression device, method and computer-readable medium using estimated vibration torque |
CN112840276B (zh) * | 2018-10-04 | 2024-03-26 | 株式会社神户制钢所 | 振动抑制装置、振动抑制方法以及存储单元 |
KR20210052504A (ko) * | 2018-10-04 | 2021-05-10 | 가부시키가이샤 고베 세이코쇼 | 진동 억제 장치, 진동 억제 방법 및 프로그램 |
CN112840276A (zh) * | 2018-10-04 | 2021-05-25 | 株式会社神户制钢所 | 振动抑制装置、振动抑制方法以及程序 |
KR102553575B1 (ko) * | 2018-10-04 | 2023-07-10 | 가부시키가이샤 고베 세이코쇼 | 진동 억제 장치, 진동 억제 방법 및 프로그램 |
EP3862820A4 (en) * | 2018-10-04 | 2022-07-06 | Kabushiki Kaisha Kobe Seiko Sho (Kobe Steel, Ltd.) | VIBRATION SUPPRESSION DEVICE, VIBRATION SUPPRESSION METHOD, AND PROGRAM |
JPWO2020170306A1 (ja) * | 2019-02-18 | 2021-09-30 | 三菱電機株式会社 | ロボット制御装置 |
JP7053941B2 (ja) | 2019-02-18 | 2022-04-12 | 三菱電機株式会社 | ロボット制御装置 |
WO2020170306A1 (ja) * | 2019-02-18 | 2020-08-27 | 三菱電機株式会社 | ロボット制御装置 |
WO2022145213A1 (ja) * | 2020-12-28 | 2022-07-07 | ソニーグループ株式会社 | 制御装置、制御システム及び制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628355B (zh) | 伺服控制装置及系统、机器学习装置及方法 | |
CN109274314B (zh) | 机器学习装置、伺服电动机控制装置、伺服电动机控制系统以及机器学习方法 | |
JP6400750B2 (ja) | 学習制御機能を備えた制御システム及び制御方法 | |
CN110799309B (zh) | 具有配置相关动力学的系统的振动控制 | |
JP4813618B2 (ja) | イナーシャと摩擦を同時に推定する機能を有する電動機の制御装置 | |
JP5591400B2 (ja) | 駆動機械の負荷特性推定装置 | |
EP3023208B1 (en) | Control device for motor drive device, control device for multi-axial motor, and control method for motor drive device | |
US10481566B2 (en) | Machine learning device, servo control device, servo control system and machine learning method | |
JP2009245419A (ja) | システム制御装置及びシステム制御方法 | |
JP2018149606A (ja) | 生産ラインにおける運用を考慮した学習制御を行うロボット及びその制御方法 | |
JP2015015844A (ja) | フィードフォワード制御を備えたモータ制御装置 | |
JP2014136260A (ja) | 制御装置 | |
CN111965976B (zh) | 基于神经网络观测器的机器人关节滑模控制方法及系统 | |
JP6564433B2 (ja) | ロボットシステム | |
JP2014117787A (ja) | 制御装置 | |
JP2005293564A (ja) | スライディングモード制御器を有する位置制御装置 | |
JP2006146572A (ja) | サーボ制御装置および方法 | |
JP2014018941A (ja) | 制御装置、及び制御方法 | |
CN111033395B (zh) | 控制系统 | |
Makarov et al. | Generalized predictive control of an anthropomorphic robot arm for trajectory tracking | |
CN109176480B (zh) | 一种并联机器人的滑模控制方法及系统 | |
JP3936242B2 (ja) | サーボモータ制御用コントローラにおけるゲイン設定法、コントローラの有効性検証法およびロボット制御法 | |
US10684594B2 (en) | Machine learning device, servo motor controller, servo motor control system, and machine learning method | |
Hakvoort et al. | A computationally efficient algorithm of iterative learning control for discrete-time linear time-varying systems | |
JP5997560B2 (ja) | 開始時点特定装置、制御装置、及び開始時点特定方法 |