(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
図1は、本発明の第1の実施形態による制御装置1と、制御装置1によって制御される産業用機械の要部とを示す概略的なハードウェア構成図である。制御装置1は、工作機械をはじめとする機械を制御する制御装置である。制御装置1は、CPU11、ROM12、RAM13、不揮発性メモリ14、インタフェース18、バス20、軸制御回路30、サーボアンプ40を有する。制御装置1には、サーボモータ50、操作盤60が接続される。
【0017】
CPU11は、制御装置1を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステム・プログラムをバス20を介して読み出し、システム・プログラムに従って制御装置1全体を制御する。
【0018】
ROM12は、機械の各種制御等を実行するためのシステム・プログラム(後述する機械学習装置100とのやりとりを制御するための通信プログラムを含む)を予め格納している。
【0019】
RAM13は、一時的な計算データや表示データ、後述する操作盤60を介してオペレータが入力したデータ等を一時的に格納する。
【0020】
不揮発性メモリ14は、例えば図示しないバッテリでバックアップされており、制御装置1の電源が遮断されても記憶状態を保持する。不揮発性メモリ14は、操作盤60から入力されるデータや、図示しないインタフェースを介して入力された機械の制御用のプログラムやデータ等を格納する。不揮発性メモリ14に記憶されたプログラムやデータは、実行時及び利用時にはRAM13に展開されても良い。
【0021】
軸制御回路30は、機械が備える動作軸を制御する。軸制御回路30は、CPU11が出力する軸の移動指令量を受けて、軸の移動指令をサーボアンプ40に出力する。このとき軸制御回路30は、後述のフィードバック制御を行うほか、CPU11がLugreモデル等に基づき出力する補正トルクにより非線形摩擦力の補正を行う。あるいは、軸制御回路30がLugreモデル等に基づき計算した補正トルクにより非線形摩擦力の補正を行っても良い。CPU11で補正を行うより、軸制御回路30の中で補正を行う方が一般に高速である。
【0022】
サーボアンプ40は、軸制御回路30が出力する軸の移動指令を受けて、サーボモータ50を駆動する。
【0023】
サーボモータ50は、サーボアンプ40により駆動されて機械が備える軸を移動させる。サーボモータ50は、典型的には位置・速度検出器を内蔵する。あるいは内蔵せずに機械側に位置検出器を設ける場合もある。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が軸制御回路30にフィードバックされることで、位置・速度のフィードバック制御が行われる。
【0024】
なお、
図1では軸制御回路30、サーボアンプ40、サーボモータ50は1つずつしか示されていないが、実際には制御対象となる機械に備えられた軸の数だけ用意される。例えば、6軸を備えた機械を制御する場合、それぞれの軸に対応する軸制御回路30、サーボアンプ40、サーボモータ50が合計6セット用意される。
【0025】
操作盤60は、ハードウェアキー等を備えたデータ入力装置である。その中には教示操作盤と呼ばれる、ディスプレイやハードウェアキー等を備えた手動データ入力装置もある。教示操作盤は、インタフェース18を介してCPU11から受けた情報をディスプレイに表示する。操作盤60は、ハードウェアキー等から入力されたパルス、指令、データ等をインタフェース18を介してCPU11に渡す。
【0026】
図2は、第1の実施形態における制御装置1の概略的な機能ブロック図である。
図2に示した各機能ブロックは、
図1に示した制御装置1が備えるCPU11が、システム・プログラムを実行し、制御装置1の各部の動作を制御することにより実現される。
【0027】
本実施形態の制御装置1は、データ取得部70、及び補正トルク推定部80を備える。補正トルク推定部80は、最適化部81及び補正トルク算出部82を備える。また、不揮発性メモリ14上には、データ取得部70が取得したデータが記憶される取得データ記憶部71が設けられている。
【0028】
データ取得部70は、CPU11、サーボモータ50、及び機械等から各種データを取得する機能手段である。データ取得部70は、例えば、位置指令、位置フィードバック、速度指令、及び速度フィードバックを取得し、取得データ記憶部71に記憶する。
【0029】
補正トルク推定部80は、取得データ記憶部71に記憶されているデータに基づいて、摩擦モデル(典型的にはLugreモデル)における最適な係数(LugreモデルであればFc,Fs,v0,σ0,σ1,σ2)を推定する機能手段である。本実施の形態では、最適化部81が、例えば位置指令と位置フィードバックとの偏差を最小化する最適化問題を解くことで、摩擦モデルの係数を推定する。典型的には、係数の組み合わせを網羅的に探索するグリッドサーチ、係数の組み合わせをランダムに試行するランダムサーチ、確率分布と獲得関数に基づいて最適な係数の組み合わせを探索するベイズ最適化等の手法により、位置指令と位置フィードバックとの偏差が最小となる係数の組み合わせを推定することができる。すなわち、最適化部81は、係数の組み合わせを様々に変更しつつ機械を動作させ、位置指令と位置フィードバックとの偏差を評価するサイクルを繰り返すことで、偏差が最小となる係数の組み合わせを発見する。
【0030】
補正トルク算出部82は、最適化部81が推定した結果(摩擦モデルの係数の最適な組み合わせ)を使用し、摩擦モデルに基づく補正トルクを算出、出力する。制御装置1は、補正トルク算出部82が出力した補正トルクを電流指令に加算する。
【0031】
本実施の形態によれば、最適化部81が最適化問題を解くことによって摩擦モデルの係数を同定するので、様々な機械や使用環境等に応じた最適な係数も容易に求めることができるようになる。
【0032】
図3は、第2及び第3の実施形態における、機械学習装置100を備えた制御装置1の概略的なハードウェアブロック図である。本実施形態の制御装置1は、機械学習装置100にかかる構成を備えている点を除いて第1の実施形態と同様の構成をしている。本実施形態の制御装置1が備えるROM12には、機械学習装置100とのやりとりを制御するための通信プログラム等を含むシステム・プログラムが予め書き込まれている。
【0033】
インタフェース21は、制御装置1と機械学習装置100とを接続するためのインタフェースである。機械学習装置100は、プロセッサ101、ROM102、RAM103、不揮発性メモリ104を有する。
【0034】
プロセッサ101は、機械学習装置100全体を統御する。ROM102は、システム・プログラム等を格納する。RAM103は、機械学習に係る各処理における一時的な記憶を行う。不揮発性メモリ104は、学習モデル等を格納する。
【0035】
機械学習装置100は、制御装置1が取得可能な各種情報(位置指令、速度指令、位置フィードバック等)をインタフェース21を介して観測する。機械学習装置100は、サーボモータ50を精密制御するための摩擦モデル(典型的にはLugreモデル)の係数を機械学習により学習及び推定し、補正トルクをインタフェース21を介して制御装置1に出力する。
【0036】
図4は、第2の実施形態による制御装置1と機械学習装置100の概略的な機能ブロック図である。
図4に示される制御装置1は、機械学習装置100が学習を行う場合に必要とされる構成を備えている(学習モード)。
図4に示した各機能ブロックは、
図3に示した制御装置1が備えるCPU11、及び機械学習装置100のプロセッサ101が、それぞれのシステム・プログラムを実行し、制御装置1及び機械学習装置100の各部の動作を制御することにより実現される。
【0037】
本実施形態の制御装置1は、データ取得部70、及び機械学習装置100上に構成された補正トルク推定部80を備える。補正トルク推定部80は、学習部83を備える。また、不揮発性メモリ14上には、データ取得部70が取得したデータが記憶される取得データ記憶部71が設けられており、機械学習装置100の不揮発性メモリ104上には、学習部83による機械学習により構築された学習モデルを記憶する学習モデル記憶部84が設けられている。
【0038】
本実施形態におけるデータ取得部70の動作は、第1の実施形態と同様である。データ取得部70は、例えば、位置指令、位置フィードバック、速度指令、及び速度フィードバックを取得し、取得データ記憶部71に記憶する。また、データ取得部70は、制御装置1が現在非線形摩擦の補正に使用しているLugreモデルの係数のセット(Fc,Fs,v0,σ0,σ1,σ2)を取得し、取得データ記憶部71に記憶する。
【0039】
前処理部90は、データ取得部70が取得したデータに基づいて、機械学習装置100による機械学習に用いられる学習データを作成する。前処理部90は、各データを機械学習装置100において扱われる統一的な形式へと変換(数値化、サンプリング等)した学習データを作成する。前処理部90は、機械学習装置100が教師なし学習をする場合においては、該学習における所定の形式の状態データSを学習データとして作成し、機械学習装置100が教師あり学習をする場合においては、該学習における所定の形式の状態データS及びラベルデータLの組を学習データとして作成し、機械学習装置100が強化学習をする場合においては、該学習における所定の形式の状態データS及び判定データDの組を学習データとして作成する。
【0040】
学習部83は、前処理部90が作成した学習データを用いた機械学習を行う。学習部83は、教師なし学習、教師あり学習、強化学習等の公知の機械学習の手法により学習モデルを生成し、生成した学習モデルを学習モデル記憶部84に記憶する。学習部83が行う教師なし学習の手法としては、例えばautoencoder法、k−means法等が、教師あり学習の手法としては、例えばmultilayer perceptron法、recurrent neural network法、Long Short−Term Memory法、convolutional neural network法等が、強化学習の手法としては、例えばQ学習等が挙げられる。
【0041】
図5は、学習手法の一例として強化学習を実行する学習部83の内部機能構成を示す。強化学習は、学習対象が存在する環境の現在状態(つまり入力)を観測するとともに現在状態で所定の行動(つまり出力)を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策(本実施形態ではLugreモデルの係数の設定)を最適解として学習する手法である。
【0042】
学習部83は、状態観測部831、判定データ取得部832、強化学習部833を有する。
図5に示した各機能ブロックは、
図3に示した制御装置1が備えるCPU11、及び機械学習装置100のプロセッサ101が、それぞれのシステム・プログラムを実行し、制御装置1及び機械学習装置100の各部の動作を制御することにより実現される。
【0043】
状態観測部831は、環境の現在状態を表す状態変数Sを観測する。状態変数Sは、例えば現在のLugureモデルの係数S1、現在の位置指令S2、現在の速度指令S3、前サイクルにおける位置フィードバックS4を含む。
【0044】
状態観測部831は、Lugreモデルの係数S1として、制御装置1が現在非線形摩擦の補正に使用しているLugreモデルの係数のセット(Fc,Fs,v0,σ0,σ1,σ2)を取得する。
【0045】
状態観測部831は、現在の位置指令S2及び速度指令S3として、制御装置1が現在出力している位置指令及び速度指令を取得する。
【0046】
状態観測部831は、位置フィードバックS4として、制御装置1が1サイクル前に取得した位置フィードバック(現在の位置指令及び速度指令を生成するためにフィードバック制御において使用されたもの)を取得する。
【0047】
判定データ取得部832は、状態変数Sの下で機械の制御を行った場合における結果を示す指標である判定データDを取得する。判定データDは、位置フィードバックD1を含む。
【0048】
判定データ取得部832は、位置フィードバックD1として、Lugreモデルの係数S1、位置指令S2及び速度指令S3に基づいて機械を制御した結果として得られる位置フィードバックを取得する。
【0049】
強化学習部833は、状態変数Sと判定データDとを用いて、Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4との相関関係を学習する。すなわち強化学習部833は、状態変数Sの構成要素S1,S2,S3,S4の相関性を示すモデル構造を生成する。強化学習部833は、報酬計算部834、価値関数更新部835を有する。
【0050】
報酬計算部834は、状態変数Sに基づいてLugreモデルの係数が設定された場合における位置制御の結果(状態変数Sが取得された次の学習周期で用いられる判定データDに相当)に関連する報酬Rを求める。
【0051】
価値関数更新部835は、報酬Rを用いて、Lugreモデルの係数の価値を表す関数Qを更新する。価値関数更新部835が関数Qの更新を繰り返すことにより、強化学習部833は、Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4と、の相関関係を学習する。
【0052】
強化学習部833が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Q学習(Q−learning)として知られるものであって、行動主体の状態sと、その状態sで行動主体が選択し得る行動aとを独立変数として、状態sで行動aを選択した場合の行動の価値を表す関数Q(s,a)を学習する手法である。状態sで価値関数Qが最も高くなる行動aを選択することが最適解となる。状態sと行動aとの相関性が未知の状態でQ学習を開始し、任意の状態sで種々の行動aを選択する試行錯誤を繰り返すことで、価値関数Qを反復して更新し、最適解に近付ける。ここで、状態sで行動aを選択した結果として環境(つまり状態s)が変化したときに、その変化に応じた報酬(つまり行動aの重み付け)rが得られるように構成し、より高い報酬rが得られる行動aを選択するように学習を誘導することで、価値関数Qを比較的短時間で最適解に近付けることができる。
【0053】
価値関数Qの更新式は、一般に下記の数2式のように表すことができる。数2式において、s
t及びa
tはそれぞれ時刻tにおける状態及び行動であり、行動a
tにより状態はs
t+1に変化する。r
t+1は、状態がs
tからs
t+1に変化したことで得られる報酬である。maxQの項は、時刻t+1で最大の価値Qになる(と時刻tで考えられている)行動aを行ったときのQを意味する。α及びγはそれぞれ学習係数及び割引率であり、0<α≦1、0<γ≦1で任意設定される。
【0055】
強化学習部833がQ学習を実行する場合、状態観測部831が観測した状態変数S及び判定データ取得部832が取得した判定データDは、更新式の状態sに該当し、現在状態すなわち位置指令S2、速度指令S3及び位置フィードバックS4に対し、Lugreモデルの係数S1をどのように決定するべきかという行動は、更新式の行動aに該当し、報酬計算部834が求める報酬Rは、更新式の報酬rに該当する。よって価値関数更新部835は、現在状態に対するLugreモデルの係数の価値を表す関数Qを、報酬Rを用いたQ学習により繰り返し更新する。
【0056】
報酬計算部834は、例えば、決定したLugreモデルの係数S1に基づく機械制御を行い、位置制御の結果が「適」と判定される場合に、報酬Rを正(プラス)の値とすることができる。一方、位置制御の結果が「否」と判定される場合に、報酬Rを負(マイナス)の値とすることができる。正負の報酬Rの絶対値は、互いに同一であっても良いし異なっていても良い。
【0057】
位置制御の結果が「適」である場合とは、例えば位置フィードバックD1と位置指令S2との差が所定のしきい値以内である場合等である。位置制御の結果が「否」である場合とは、例えば位置フィードバックD1と位置指令S2との差が所定のしきい値を超える場合等である。すなわち位置指令S2に対し、位置制御が所定の基準以上に正確に実現されていれば「適」となり、そうでなければ「否」となる。
【0058】
位置制御の結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例えば、報酬計算部834は、位置フィードバックD1と位置指令S2との差が小さくなるほど報酬が大きくなるよう、段階的な報酬を設定することができる。
【0059】
価値関数更新部835は、状態変数Sと判定データDと報酬Rとを、関数Qで表される行動価値(例えば数値)と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部835が関数Qを更新するという行為は、価値関数更新部835が行動価値テーブルを更新するという行為と同義である。Q学習の開始時には、Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4との相関関係は未知であるから、行動価値テーブルにおいては、種々の状態変数Sと判定データDと報酬Rとが、無作為に定めた行動価値の値(関数Q)と関連付けた形態で用意されている。報酬計算部834は、判定データDが分かればこれ対応する報酬Rを直ちに算出でき、算出した値Rが行動価値テーブルに書き込まれる。
【0060】
位置制御の結果に応じた報酬Rを用いてQ学習を進めると、より高い報酬Rが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態(つまり状態変数S及び判定データD)に応じて、現在状態で行う行動についての行動価値の値(関数Q)が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値(関数Q)は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態すなわち位置指令S2、速度指令S3及び位置フィードバックS4と、それに対する行動すなわち設定されるLugreモデルの係数S1と、の相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4と、の相関関係が徐々に最適解に近づけられる。
【0061】
図6を参照して、強化学習部833が実行するQ学習のフロー(つまり機械学習方法の一形態)をさらに説明する。
ステップSA01:価値関数更新部835は、その時点での行動価値テーブルを参照しながら、状態観測部831が観測した状態変数Sが示す現在状態で行う行動として、Lugreモデルの係数S1を無作為に選択する。
ステップSA02:価値関数更新部835は、状態観測部831が観測している現在状態の状態変数Sを取り込む。
ステップSA03:価値関数更新部835は、判定データ取得部832が取得している現在状態の判定データDを取り込む。
ステップSA04:価値関数更新部835は、判定データDに基づき、Lugreモデルの係数S1が適当であったか否かを判断する。適当であった場合、ステップSA05に遷移する。適当でなかった場合、ステップSA07に遷移する。
ステップSA05:価値関数更新部835は、報酬計算部834が求めた正の報酬Rを関数Qの更新式に適用する。
ステップSA06:価値関数更新部835は、現在状態における状態変数S及び判定データDと報酬Rと行動価値の値(更新後の関数Q)とを用いて行動価値テーブルを更新する。
ステップSA07:価値関数更新部835は、報酬計算部834が求めた負の報酬Rを関数Qの更新式に適用する。
【0062】
強化学習部833は、ステップSA01乃至SA07を繰り返すことで行動価値テーブルを反復して更新し、学習を進行させる。なお、ステップSA04からステップSA07までの報酬Rを求める処理及び価値関数の更新処理は、判定データDに含まれるそれぞれのデータについて実行される。
【0063】
強化学習を進める際に、例えばQ学習の代わりに、ニューラルネットワークを用いることができる。
図7Aは、ニューロンのモデルを模式的に示す。
図7Bは、
図7Aに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【0064】
図7Aに示すニューロンは、複数の入力x(ここでは一例として、入力x
1〜入力x
3)に対する結果yを出力するものである。各入力x
1〜x
3には、この入力xに対応する重みw(w
1〜w
3)が掛けられる。これにより、ニューロンは、次の数3式により表現される出力yを出力する。なお、数3式において、入力x、出力y及び重みwは、すべてベクトルである。また、θはバイアスであり、f
kは活性化関数である。
【0066】
図7Bに示す三層のニューラルネットワークは、左側から複数の入力x(ここでは一例として、入力x1〜入力x3)が入力され、右側から結果y(ここでは一例として、結果y1〜結果y3)が出力される。図示の例では、入力x1、x2、x3のそれぞれに対応の重み(総称してW1で表す)が乗算されて、個々の入力x1、x2、x3がいずれも3つのニューロンN11、N12、N13に入力されている。
【0067】
図7Bでは、ニューロンN11〜N13の各々の出力を、総称してz1で表す。z1は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルz1のそれぞれに対応の重み(総称してW2で表す)が乗算されて、個々の特徴ベクトルz1がいずれも2つのニューロンN21、N22に入力されている。特徴ベクトルz1は、重みW1と重みW2との間の特徴を表す。
【0068】
図7Bでは、ニューロンN21〜N22の各々の出力を、総称してz2で表す。z2は、特徴ベクトルz1の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルz2のそれぞれに対応の重み(総称してW3で表す)が乗算されて、個々の特徴ベクトルz2がいずれも3つのニューロンN31、N32、N33に入力されている。特徴ベクトルz2は、重みW2と重みW3との間の特徴を表す。最後にニューロンN31〜N33は、それぞれ結果y1〜y3を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【0069】
このような学習サイクルを繰り返すことにより、強化学習部833は、Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4との相関関係を暗示する特徴を自動的に識別することができるようになる。学習アルゴリズムの開始時には、Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4との相関関係は実質的に未知であるが、強化学習部833は学習を進めるに従い徐々に特徴を識別して相関性を解釈する。Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4との相関関係がある程度信頼できる水準まで解釈されると、強化学習部833が反復出力する学習結果は、現在状態すなわち位置指令S2、速度指令S3及び位置フィードバックS4に対して、どのようなLugreモデルの係数S1を設定すべきかという行動の選択(意思決定)を行うために使用できるものとなる。このようにして強化学習部833は、現在状態に対応する行動の最適解を出力できる学習モデルを生成する。
【0070】
図8は、第3の実施形態による制御装置1と機械学習装置100の概略的な機能ブロック図である。本実施形態の制御装置1は、機械学習装置100が推定を行う場合に必要とされる構成を備えている(推定モード)。
図8に示した各機能ブロックは、
図3に示した制御装置1が備えるCPU11、及び機械学習装置100のプロセッサ101が、それぞれのシステム・プログラムを実行し、制御装置1及び機械学習装置100の各部の動作を制御することにより実現される。
【0071】
本実施形態の制御装置1は、第2の実施形態と同様に、データ取得部70、及び機械学習装置100上に構成された補正トルク推定部80を備える。補正トルク推定部80は、推定部85、及び補正トルク算出部82を備える。また、不揮発性メモリ14上には、データ取得部70が取得したデータが記憶される取得データ記憶部71が設けられており、機械学習装置100の不揮発性メモリ104上には、学習部83による機械学習により構築された学習モデルを記憶する学習モデル記憶部84が設けられている。
【0072】
本実施形態によるデータ取得部70、及び前処理部90の動作は、第2の実施形態と同様である。データ取得部70が取得したデータは、前処理部90により、機械学習装置100において扱われる統一的な形式へと変換(数値化、サンプリング等)されて、状態データSが生成される。前処理部90が作成した状態データSは、機械学習装置100による推定に用いられる。
【0073】
推定部85は、前処理部90が作成した状態データSに基づいて、学習モデル記憶部84に記憶された学習モデルを用い、Lugreモデルの係数S1の推定を行う。本実施形態の推定部85は、学習部83により生成された(パラメータが決定された)学習モデルに対して、前処理部90から入力された状態データSを入力することで、Lugreモデルの係数S1を推定して出力する。
【0074】
補正トルク算出部82は、推定部85が推定した結果(摩擦モデルの係数の組み合わせS1)を使用し、摩擦モデルに基づく補正トルクを算出、出力する。制御装置1は、補正トルク算出部82が出力した補正トルクを電流指令に加算する。
【0075】
実施の形態2及び3によれば、機械学習装置100が、Lugreモデルの係数S1と、位置指令S2、速度指令S3及び位置フィードバックS4との相関関係を示す学習モデルを生成し、当該学習モデルを利用することにより摩擦モデルの係数を推定するので、様々な機械や使用環境等に応じた最適な係数も容易に求めることができるようになる。
【0076】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【0077】
例えば、上記した実施形態では制御装置1と機械学習装置100が異なるCPU(プロセッサ)を有する装置として説明しているが、機械学習装置100は制御装置1が備えるCPU11と、ROM12に記憶されるシステム・プログラムにより実現するようにしても良い。
【0078】
また、機械学習装置100の変形例として、学習部83は、同種の複数の機械のそれぞれについて得られた状態変数S及び判定データDを用いて、それら機械に共通する適切なLugreモデルの係数を学習することができる。この構成によれば、一定時間で得られる状態変数Sと判定データDとを含むデータ集合の量を増加させ、より多様なデータ集合を入力できるので、学習の速度や信頼性を向上させることができる。また、こうして得られた学習モデルを初期値として使用し、機械ごとに追加学習を行なうことで、Lugreモデルを個々の機械にさらに最適化することもできる。
【0079】
図9は、制御装置1に複数の機械を加えたシステム170を示す。システム170は、複数の機械160及び機械160’を有する。全ての機械160と機械160’は、有線又は無線のネットワーク172により互いに接続される。
【0080】
機械160及び機械160’は同種の機構を有する。一方、機械160は制御装置1を備えるが、機械160’は制御装置1を備えない。
【0081】
制御装置1を備えるほうの機械160では、推定部85が、学習部83の学習結果である学習モデルを用いて、位置指令S2、速度指令S3及び位置フィードバックS4に対応するLugreモデルの係数S1を推定することができる。また、少なくとも1つの機械160の制御装置1が、他の複数の機械160及び機械160’のそれぞれについて得られた状態変数S及び判定データDを利用し、全ての機械160及び機械160’に共通する位置制御を学習し、その学習結果を全ての機械160及び機械160’が共有するように構成できる。システム170によれば、より多様なデータ集合(状態変数S及び判定データDを含む)を入力として、位置制御の学習の速度や信頼性を向上させることができる。
【0082】
図10は、複数の機械160’を備えたシステム170’を示す。システム170’は、同一の機械構成を有する複数の機械160’と、制御装置1から独立した機械学習装置120(又は制御装置1に含まれる機械学習装置100)と、を有する。複数の機械160’と機械学習装置120(又は機械学習装置100)とは、有線又は無線のネットワーク172により互いに接続される。
【0083】
機械学習装置120(又は機械学習装置100)は、複数の機械160’のそれぞれについて得られた状態変数S及び判定データDに基づき、全ての機械160’に共通するLugreモデルの係数S1を学習する。機械学習装置120(又は機械学習装置100)は、その学習結果を用いて、位置指令S2、速度指令S3及び位置フィードバックS4に対応するLugreモデルの係数S1を推定することができる。
【0084】
この構成によれば、複数の機械160’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の機械160’を機械学習装置120(又は機械学習装置100)に接続することができる。
【0085】
上記した実施形態では、制御装置1や機械学習装置100(又は機械学習装置120)はローカルに設置された1つの情報処理装置であるものと想定しているが、本発明はこれに限定されるものではなく、例えば制御装置1や機械学習装置100(又は機械学習装置120)は、クラウドコンピューティング、フォグコンピューティング、エッジコンピューティング等と称される情報処理環境に実装されても良い。
【0086】
また、上述の実施の形態では摩擦モデルとして代表的なLugreモデルにおいて係数を決定する手法を示したが、本発明はこれに限定されるものでなく、Seven parameter model, State variable model, Karnopp model,LuGre model, Modified Dahl model, M2 model等の種々の摩擦モデルの係数の決定に適用することが可能である。
【0087】
また、上述の実施の形態では、機械として主に加工機械を例示したが、本発明はこれに限定されるものでなく、摩擦が問題になるような駆動機構、典型的には位置決め機構を有する種々の機械(例えば医療ロボット、災害ロボット、建設ロボット等)に適用可能である。
【0088】
また、上述の実施の形態は、
図13に示す制御系に基づいて摩擦モデルの係数を求めるものであったが、本発明はこれに限定されず、これを変形した種々の制御系にも適用可能である。例えば
図14に示すように、速度指令に代えて、位置指令の微分であるs=速度指令相当が摩擦モデルに入力される制御系を用いても良い。この場合、機械学習装置100の状態観測部831は、速度指令に代えて、速度指令相当のsを観測する。この構成によれば、位置指令だけで補正トルクを計算できるので、制御装置1側だけで補正トルクの計算を完結できるという利点がある。
【0089】
又は、
図15に示すように、位置指令及び速度指令の代わりに、位置フィードバック及び速度フィードバックを摩擦モデルに入力する制御系を用いても良い。この場合、機械学習装置100の状態観測部831は、位置指令でなく位置フィードバックを、速度指令でなく速度フィードバックを観測する。この構成は軸制御回路30側で実現しやすい。高速な処理が可能であり、フィードバックを使用するため実摩擦力を推定しやすい。