(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】ワークモデルの修正量を学習する機械学習装置、制御装置、加工システム、及び機械学習方法
(51)【国際特許分類】
G05B 19/4155 20060101AFI20240402BHJP
B23Q 15/00 20060101ALI20240402BHJP
G05B 19/404 20060101ALI20240402BHJP
【FI】
G05B19/4155 V
B23Q15/00 301C
G05B19/404 K
(21)【出願番号】P 2019222979
(22)【出願日】2019-12-10
【審査請求日】2022-10-21
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】小川 賢一
(72)【発明者】
【氏名】永冨 隆志
【審査官】中川 康文
(56)【参考文献】
【文献】特開平09-295022(JP,A)
【文献】特開2000-084607(JP,A)
【文献】特開2019-025561(JP,A)
【文献】特開2018-065211(JP,A)
【文献】特開2017-030067(JP,A)
【文献】特表2011-528829(JP,A)
【文献】米国特許第08706281(US,B2)
【文献】特開2003-094291(JP,A)
【文献】中国特許出願公開第110394448(CN,A)
【文献】中国特許出願公開第110069041(CN,A)
【文献】中国特許出願公開第104057363(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
B23Q 15/00-15/28
G05B 19/18-19/416
G05B 13/00
(57)【特許請求の範囲】
【請求項1】
ワーク
の目的形状を
CADモデルとしてモデル化したワークモデルを、該ワークモデルに基づいて加工された前記ワークの形状を
前記目的形状に一致させるように修正する修正量を学習する機械学習装置であって、
前記ワークを加工する工作機械の加工状態データ、及び、前記ワークモデルに基づいて前記工作機械が加工した前記ワークの形状と前記目的形状との誤差の測定データ、を、前記ワークを加工する環境の現在状態を表す状態変数として観測する状態観測部と、
前記状態変数を用いて、前記修正量を前記誤差と関連付けて学習する学習部と、を備える、機械学習装置。
【請求項2】
ワークをモデル化したワークモデルを、該ワークモデルに基づいて加工された前記ワークの形状を目的形状に一致させるように修正する修正量を学習する機械学習装置であって、
前記ワークを加工する工作機械の加工状態データ、及び、前記ワークモデルに基づいて前記工作機械が加工した前記ワークの形状と前記目的形状との誤差の測定データ、を、前記ワークを加工する環境の現在状態を表す状態変数として観測する状態観測部と、
前記状態変数を用いて、前記修正量を前記誤差と関連付けて学習する学習部と、を備え、
前記加工状態データは、前記工作機械の寸法誤差、該工作機械の温度、該工作機械の周囲の雰囲気温度、該工作機械の熱量、該工作機械の消費電力、該工作機械の熱変位量、及び該工作機械の動作パラメータ、の少なくとも1つを含む
、機械学習装置。
【請求項3】
前記工作機械は、
前記ワークを加工する工具と、
前記工具と前記ワークとを相対的に移動させる移動機構と、を有し、
前記動作パラメータは、前記移動機構の加速度、該移動機構の加速又は減速に要する時間を決定する時定数、該移動機構の制御の応答速度を決定する制御ゲイン、及び、該移動機構の慣性モーメント、の少なくとも1つを含む、請求項2に記載の機械学習装置。
【請求項4】
ワークをモデル化したワークモデルを、該ワークモデルに基づいて加工された前記ワークの形状を目的形状に一致させるように修正する修正量を学習する機械学習装置であって、
前記ワークを加工する工作機械の加工状態データ、及び、前記ワークモデルに基づいて前記工作機械が加工した前記ワークの形状と前記目的形状との誤差の測定データ、を、前記ワークを加工する環境の現在状態を表す状態変数として観測する状態観測部と、
前記状態変数を用いて、前記修正量を前記誤差と関連付けて学習する学習部と、を備え、
前記学習部は、
前記誤差に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記修正量の価値を表す関数を更新する関数更新部と、を有する
、機械学習装置。
【請求項5】
前記報酬計算部は、前記誤差の大きさに応じて異なる前記報酬を求める、請求項4に記載の機械学習装置。
【請求項6】
ワークをモデル化したワークモデルを、該ワークモデルに基づいて加工された前記ワークの形状を目的形状に一致させるように修正する修正量を学習する機械学習装置であって、
前記ワークを加工する工作機械の加工状態データ、及び、前記ワークモデルに基づいて前記工作機械が加工した前記ワークの形状と前記目的形状との誤差の測定データ、を、前記ワークを加工する環境の現在状態を表す状態変数として観測する状態観測部と、
前記状態変数を用いて、前記修正量を前記誤差と関連付けて学習する学習部と、
前記学習部による学習結果に基づいて、前記修正量の出力値を出力する意思決定部
と、を備え、
前記状態観測部は、前記出力値に従って修正された前記ワークモデルに基づいて前記工作機械が加工した前記ワークの形状と前記目的形状との前記誤差を、次の学習サイクルにおける前記測定データとして、前記状態変数を観測する
、機械学習装置。
【請求項7】
工作機械を制御する制御装置であって、
請求項1~6のいずれか1項に記載の機械学習装置と、
前記加工状態データ及び前記測定データを取得する状態データ取得部と、を備える、制御装置。
【請求項8】
ワークを加工する工作機械と、
前記工作機械が加工した前記ワークの形状と、予め定められた前記ワークの目的形状との誤差を測定する測定装置と、
請求項7に記載の制御装置と、を備える、加工システム。
【請求項9】
ワーク
の目的形状を
CADモデルとしてモデル化したワークモデルを、該ワークモデルに基づいて加工された前記ワークの形状を
前記目的形状に一致させるように修正する修正量を学習する機械学習方法であって、
前記ワークを加工する工作機械の加工状態データ、及び、前記ワークモデルに基づいて前記工作機械が加工した前記ワークの形状と前記目的形状との誤差の測定データ、を、前記ワークを加工する環境の現在状態を表す状態変数として観測し、
前記状態変数を用いて、前記修正量を前記誤差と関連付けて学習する、機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークモデルの修正量を学習する機械学習装置、制御装置、加工システム、及び機械学習方法に関する。
【背景技術】
【0002】
ロボットの動作を学習する機械学習装置が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ワークの目的形状をモデル化したワークモデルに基づいてワークを加工したときに、加工後のワークと目的形状との間に誤差が生じる場合がある。従来、このような誤差を小さくすることができる技術が求められている。
【課題を解決するための手段】
【0005】
本開示の一態様において、ワークをモデル化したワークモデルを、該ワークモデルに基づいて加工されたワークの形状を目的形状に一致させるように修正する修正量を学習する機械学習装置は、ワークを加工する工作機械の加工状態データ、及び、ワークモデルに基づいて工作機械が加工したワークの形状と目的形状との誤差の測定データを、ワークを加工する環境の現在状態を表す状態変数として観測する状態観測部と、状態変数を用いて、修正量を誤差と関連付けて学習する学習部とを備える。
【0006】
本開示の他の態様において、ワークをモデル化したワークモデルを、該ワークモデルに基づいて加工されたワークの形状を目的形状に一致させるように修正する修正量を学習する機械学習方法は、ワークを加工する工作機械の加工状態データ、及び、ワークモデルに基づいて工作機械が加工したワークの形状と目的形状との誤差の測定データを、ワークを加工する環境の現在状態を表す状態変数として観測し、状態変数を用いて、修正量を誤差と関連付けて学習する。
【発明の効果】
【0007】
本開示によれば、学習部の学習結果を用いることで、誤差を小さくするのに最適なワークモデルの修正量を、自動的に求めることができるようになる。修正量を自動的に求めることができれば、加工状態データから、最適な修正量を迅速に決定することができる。したがって、様々な加工状態の下で修正量を求める作業を大幅に簡単化することができる。また、膨大なデータ集合に基づいて修正量を学習することから、誤差を小さくするのに最適な修正量を高精度に求めることができる。
【図面の簡単な説明】
【0008】
【
図1】一実施形態に係る機械学習装置のブロック図である。
【
図3】
図2に示す工作機械によって作製されるワークの一例を示す。
【
図4】
図3に示すワークの目的形状をモデル化したワークモデルを示す。
【
図5】
図4に示すワークモデルと、加工後のワークとの誤差を説明するための図であって、該誤差が、ワークモデルに対してワークが突出することによって生じる突出誤差である場合を示している。
【
図6】
図4に示すワークモデルと、加工後のワークとの誤差を説明するための図であって、該誤差が、ワークモデルに対してワークが凹むことによって生じる凹み誤差である場合を示している。
【
図7】他の実施形態に係る機械学習装置のブロック図である。
【
図8】
図7に示す機械学習装置が実行する学習サイクルのフローの一例を示す。
【
図10】多層ニューラルネットワークのモデルを模式的に示す。
【
図11】さらに他の実施形態に係る機械学習装置のブロック図である。
【
図12】一実施形態に係る加工システムのブロック図である。
【
図13】
図2に示す工作機械によって作製されるワークの他の例を示す。
【発明を実施するための形態】
【0009】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、
図1を参照して、一実施形態に係る機械学習装置10について説明する。機械学習装置10は、ワークWをモデル化したワークモデルWMを、該ワークモデルWMに基づいて工作機械100(
図2)が加工したワークWの形状を所定の目的形状に一致させるように修正する修正量Cを学習するための装置である。
【0010】
以下、
図2を参照して、一実施形態に係る工作機械100について説明する。工作機械100は、土台テーブル102、並進移動機構104、支持台106、揺動移動機構108、揺動部材110、回動移動機構112、ワークテーブル114、主軸ヘッド116、工具118、及び主軸移動機構120を有する。
【0011】
土台テーブル102は、ベースプレート122、及び枢支部124を有する。ベースプレート122は、略矩形の平板状の部材であって、並進移動機構104の上に配置されている。枢支部124は、ベースプレート122の上面122aから上方へ突出するように、該ベースプレート122に一体に形成されている。
【0012】
並進移動機構104は、土台テーブル102を、機械座標系CMのx軸方向及びy軸方向へ移動させる。具体的には、並進移動機構104は、土台テーブル102をx軸方向へ移動させるx軸ボールねじ機構と、土台テーブル102をy軸方向へ移動させるy軸ボールねじ機構と、x軸ボールねじ機構を駆動するサーボモータと、y軸ボールねじ機構を駆動するサーボモータ(いずれも図示せず)とを有する。
【0013】
支持台106は、土台テーブル102に固定されている。具体的には、支持台106は、土台部126、及びモータ収容部128を有する。土台部126は、略四角柱状の中空部材であって、ベースプレート122の上面122aから上方へ突出するように、該上面122aに固定されている。モータ収容部128は、略半円状の中空部材であって、土台部126の上端部に一体に形成されている。揺動移動機構108は、サーボモータ等を有し、土台部126及びモータ収容部128の内部に設置されている。揺動移動機構108は、揺動部材110を軸線A1の周りに回動させる。
【0014】
揺動部材110は、支持台106及び枢支部124に回動可能に支持されている。具体的には、揺動部材110は、機械座標系CMのx軸方向に対向配置された一対の保持部130及び132と、該保持部130及び132に固定されたモータ収容部134とを有する。保持部130は、揺動移動機構108(具体的には、サーボモータの出力シャフト)に機械的に連結されている一方、保持部132は、支持シャフト(図示せず)を介して、枢支部124に枢支されている。モータ収容部134は、略円筒状の中空部材であって、保持部130及び132の間に配置され、該保持部130及び132に一体に形成されている。
【0015】
回動移動機構112は、サーボモータ等を有し、モータ収容部134の内部に設置されている。回動移動機構112は、ワークテーブル114を軸線A2の周りに回動させる。軸線A2は、軸線A1と直交し、揺動部材110とともに軸線A1周りに回転する軸線である。ワークテーブル114は、略円板状の部材であって、その上に治具(図示せず)を介してワークWがセットされる。ワークテーブル114は、回動移動機構112(具体的には、サーボモータの出力シャフト)に機械的に連結されている。
【0016】
主軸ヘッド116は、z軸方向へ移動可能に設けられ、その先端に工具118が着脱可能に取り付けられる。主軸ヘッド116は、工具118を軸線A3周りに回動させ、回動する工具118によって、ワークテーブル114にセットされたワークWを加工する。軸線A3は、軸線A1と直交する軸線である。主軸移動機構120は、例えば、主軸ヘッド116をz軸方向へ往復動させるボールねじ機構と、該ボールねじ機構を駆動するサーボモータ(ともに図示せず)とを有し、主軸ヘッド116を機械座標系CMのz軸方向へ移動させる。
【0017】
工作機械100には、機械座標系CMが設定されている。この機械座標系CMは、3次元空間内に固定され、工作機械100の動作を制御するときの基準となる制御座標系である。本実施形態においては、機械座標系CMは、そのx軸が、揺動部材110の回転軸線A1と平行であり、そのz軸が鉛直方向と平行となるように、設定されている。
【0018】
工作機械100は、並進移動機構104、揺動移動機構108、回動移動機構112、及び主軸移動機構120によって、工具118を、ワークテーブル114にセットされたワークWに対して5軸方向へ相対的に移動させる。したがって、並進移動機構104、揺動移動機構108、回動移動機構112、及び主軸移動機構120は、工具118とワークWとを相対的に移動させる移動機構136を構成する。
【0019】
工作機械100は、加工プログラムMPに従って動作し、移動機構136によって工具118とワークWとを相対的に移動させつつ、主軸ヘッド116が回転駆動している工具118によってワーク基材を加工し、ワークWを形成する。
図3に、工作機械100によって加工されたワークWの一例を示す。
【0020】
ここで、加工プログラムMPを生成するとき、まず、オペレータは、CAD等の製図装置を用いて、製品としてのワークWの目的形状をモデル化したワークモデルWM1を作成する。
図4に、ワークモデルWM1の例を示す。製図装置がモデルを作成する3次元仮想空間には、モデル座標系CWが設定され、ワークモデルWM1を構成する表面モデルSM1は、モデル座標系CWに設定されたモデル点又はモデル線によって画定されている。
【0021】
次いで、オペレータは、作成したワークモデルWM1を、CAM等のプログラム生成装置に入力し、プログラム生成装置は、該ワークモデルWM1に基づいて、加工プログラムMP1を生成する。工作機械100は、加工プログラムMP1に従って動作してワーク基材を加工し、その結果、ワークWが形成される。
【0022】
この場合において、現実に形成されたワークWの形状と、該ワークWの目的形状(つまり、ワークモデルWM1)との間に誤差が生じ得る。このような誤差をキャンセルするための一つの方策として、オペレータは、製図装置を操作してワークモデルWM1を手動で修正し、プログラム生成装置によって、修正後のワークモデルに基づいて加工プログラムMPを再度生成することがある。
【0023】
本実施形態に係る機械学習装置10は、誤差をキャンセルするためにワークモデルWM1を修正する修正量Cを自動で学習する。機械学習装置10は、プロセッサ(CPU、GPU等)及びメモリ(ROM、RAM等)を有するコンピュータ、又は、学習アルゴリズム等のソフトウェアから構成され得る。
【0024】
図1に示すように、機械学習装置10は、状態観測部12、及び学習部14を備える。状態観測部12は、工作機械100の加工状態データCD、及び、ワークモデルWMに基づいて工作機械100が加工した後のワークWの形状と目的形状との誤差δの測定データを、ワークWを加工する環境の現在状態を表す状態変数SVとして観測する。
【0025】
加工状態データCDは、工作機械100の加工精度に影響を与え得るパラメータのデータであって、例えば、工作機械100の寸法誤差E、工作機械100の温度T1、工作機械100の周囲の雰囲気温度T2、工作機械100の熱量Q、工作機械100の消費電力P、工作機械100の熱変位量ξ、及び、工作機械100の動作パラメータOPの少なくとも1つを含む。
【0026】
寸法誤差Eは、例えば、軸線A1と軸線A2との間のずれE1を含む。ここで、揺動部材110の回転軸線A1と、ワークテーブル114の回転軸線A2とは、設計寸法上は直交するように設計されているが、実際の工作機械100においては、軸線A1と軸線A2とが直交せずに、互いからずれてしまうことが起こり得る。このようなずれE1は、工作機械100の加工精度を低下させる原因となり得る。ずれE1は、ずれ測定器を用いて予め測定され、機械座標系CMにおけるベクトル(距離と方向)としてデータ化される。
【0027】
また、寸法誤差Eは、機械座標系CMのx軸に対する軸線A1の傾斜角度E2、機械座標系CMのz軸に対する軸線A3の傾斜角度E3、土台テーブル102の実際の移動経路のx軸又はy軸に対する傾斜角度E4等を有してもよい。これら傾斜角度E2、E3、及びE4も、ずれ測定器を用いて測定され、機械座標系CMにおけるベクトル(角度と傾斜方向)としてデータ化される。
【0028】
工作機械100の温度T1は、工作機械100のコンポーネント(すなわち、土台テーブル102、並進移動機構104、支持台106、揺動移動機構108、揺動部材110、回動移動機構112、ワークテーブル114、主軸ヘッド116、工具118、主軸移動機構120)の温度である。工作機械100の温度T1は、加工中又は加工終了後に、工作機械100のコンポーネントに設けられた第1の温度センサによって測定され得る。
【0029】
例えば、第1の温度センサは、工作機械100の並進移動機構104のx軸若しくはy軸ボールねじ軸、揺動移動機構108若しくは回動移動機構112のサーボモータの出力シャフト、又は、主軸移動機構120のボールねじ軸等、熱変位し易い部材に取り付けられ、工作機械100の加工中又は加工終了後に、該部材の温度T1を測定する。雰囲気温度T2は、工作機械100の外部に設置された第2の温度センサによって測定される。第2の温度センサは、工作機械100の加工前、加工中又は加工後に、雰囲気温度(つまり、大気温度)T2を測定する。
【0030】
熱量Qは、加工中に工作機械100のコンポーネント(例えば、ボールねじ軸)に蓄積された熱量を示す。一例として、上述の第1の温度センサは、工作機械100の加工前に温度T1_1を測定し、その後、工作機械100の加工中の所定の時点(又は、加工終了時点)に、温度T1_2を測定する。熱量Qは、温度T1_1と温度T1_2との差ΔT(=T1_2-T1_1)と、工作機械100のコンポーネントの熱容量Bとから、熱量Q=B×ΔTなる式から求められ得る。なお、熱量Qは、工作機械100に設けた熱量計を用いて測定されてもよい。
【0031】
消費電力Pは、例えば、工作機械100の加工開始から加工終了までに該工作機械100で消費(又は、工作機械100に入力)された電力である。具体的には、工作機械100に設けられた全てのサーボモータ及びスピンドルモータに入力された電力(又は、電流若しくは電圧)が電力計(又は、電流計若しくは電圧計)によって測定され、この測定値から、消費電力Pが測定され得る。代替的には、消費電力Pは、工作機械100に設けられた複数(本実施形態では、計5個)のサーボモータ及び1個又は複数(本実施形態では1個)のスピンドルモータの各々の消費電力であってもよい。
【0032】
熱変位量ξは、工作機械100のコンポーネント(例えば、ボールねじ軸)が、加工中に生じた熱に起因して変位(例えば熱膨張)した変位量を示す。一例として、熱変位量ξは、上述の熱量Qを、既知の実験式に導入することによって、演算により推定され得る。他の例として、熱変位量ξは、変位測定器(変位計、リニアスケール等)を用いて、工作機械100の加工中又は加工後に実測されてもよい。
【0033】
動作パラメータOPは、移動機構136(具体的には、並進移動機構104、揺動移動機構108、回動移動機構112、又は主軸移動機構120)の加速度α、該移動機構136の加速又は減速に要する時間を決定する時定数τ、該移動機構136の制御の応答速度を決定する制御ゲインG、及び、該移動機構136の慣性モーメントMの少なくとも1つを含む。
【0034】
例えば、動作パラメータOPとして、並進移動機構104、揺動移動機構108、回動移動機構112、及び主軸移動機構120のサーボモータの加速度α、時定数τ、制御ゲインG、及び慣性モーメントMがそれぞれ取得され得る。なお、加速度αとして、並進移動機構104が移動する土台テーブル102のx軸及びy軸方向への加速度が取得されてもよい。動作パラメータOPは、オペレータによって予め定められ、加工プログラムMPに規定される。
【0035】
誤差δは、ステレオカメラを有する3次元スキャナ、又は3次元測定機等の測定装置によって測定され得る。具体的には、工作機械100が加工した後のワークWの形状が測定装置によって測定され、次いで、測定装置の測定結果と、目的形状(ワークモデルWM1)の寸法情報とに基づいて、ワークWの形状と目的形状との誤差δが測定され得る。なお、測定装置は、ワークモデルWM1の入力を受け付けて、実測したワークWの形状とワークモデルWM1の形状との誤差δを演算するように構成されてもよい。
【0036】
以下、
図4~
図6を参照して、誤差δについて説明する。
図4は、ワークモデルWM1において、測定装置によって測定された加工後のワークWの形状と目的形状(ワークモデルWM1)との間で誤差δが生じている領域Fを示している。例えば、領域Fは、
図5に示すように、加工後のワークWの表面SWが、該表面SWに対応するワークモデルWM1の表面モデルSM1に対して外方へ突出している領域である。又は、領域Fは、
図6に示すように、加工後のワークWの表面SWが、該表面SWに対応するワークモデルWM1の表面モデルSM1に対して内方へ凹んでいる領域である。
【0037】
一例として、誤差δは、ワークモデルWM1上に予め定められた複数の測定点Pm(m=1,2,3,・・・)と、該複数の測定点Pmに対応する、加工後のワークW上の複数の測定点Pm’との間の複数の誤差δmを有する。この場合、測定装置は、加工後のワークW上の複数の測定点Pm’で形状を測定する。他の例として、誤差δは、複数の誤差δmのうちの最大値δmax、複数の誤差δmの積算値δS=Σδm、又は、複数の誤差δmの平均値δA=(Σδm)/mであってもよい。
【0038】
さらに他の例として、誤差δは、表面SWと表面モデルSM1との間の領域Fの体積δV(つまり、領域Fにおける誤差の積分値)であってもよい。この場合において、測定装置は、加工後のワークWの形状の測定値に基づいて、該加工後のワークWをモデル化した加工後ワークモデルMMを生成してもよい。この加工後ワークモデルMMとワークモデルWM1とに基づいて、体積δVを求めることができる。状態観測部12は、上述のような加工状態データCD及び誤差δの測定データを、状態変数SVとして観測する。
【0039】
学習部14は、機械学習と総称される任意の学習アルゴリズムに従って、ワークモデルWM1の修正量Cを学習する。具体的には、工作機械100が加工プログラムMP1に従って加工したワークWの形状と目的形状(ワークモデルWM1)との誤差δが測定された場合、製図装置は、ワークモデルWM1を修正量Cだけ修正することにより、新たなワークモデルWM2を作成する。なお、修正量Cは、モデル座標系CWにおけるベクトル(大きさ及び方向)として表される。
【0040】
そして、プログラム生成装置は、ワークモデルWM2に基づいて加工プログラムMP2を生成し、工作機械100は、該加工プログラムMP2に従ってワーク基材を加工してワークWを形成する。測定装置は、加工後のワークWの形状と目的形状との誤差δの測定データを測定する。このようなワークモデルWM1の修正と、修正後のワークモデルWM2に基づく加工の試行を繰り返す毎に、状態観測部12は状態変数SVを観測し、学習部14は、状態変数SVを含むデータ集合に基づいて学習を反復実行する。
【0041】
この学習サイクルを繰り返すことにより、学習部14は、修正量Cと誤差δとの相関性を暗示する特徴を自動的に識別することができるようになる。学習アルゴリズムの開始時には、修正量Cと誤差δとの相関性は実質的に未知であるが、学習部14は、学習を進めるに従って徐々に特徴を識別して相関性を解釈する。
【0042】
修正量Cと誤差δとの相関性が、ある程度信頼できる水準まで解釈されると、学習部14が反復出力する学習結果は、現在状態のワークWを加工するときに、誤差δを小さくするためにワークモデルWM1をどの程度修正すべきかという行動の選択(つまり意思決定)を行うために使用できるものとなる。
【0043】
以上のように、機械学習装置10は、状態観測部12が観測した状態変数SV(加工状態データCD、測定データδ)を用いて、学習部14が機械学習アルゴリズムに従ってワークモデルWM1の修正量Cを学習するものである。機械学習装置10によれば、学習部14の学習結果を用いることで、誤差δを小さくするのに最適な修正量Cを、自動的に求めることができるようになる。
【0044】
修正量Cを自動的に求めることができれば、加工状態データCDから、最適な修正量Cを迅速に決定することができる。したがって、様々な加工状態の下で修正量Cを求める作業を大幅に簡単化することができる。また、膨大なデータ集合に基づいて修正量Cを学習することから、誤差δを小さくするのに最適な修正量Cを高精度に求めることができる。
【0045】
なお、状態観測部12は、加工プログラムMPを識別するための識別情報(例えば、プログラム名、プログラム識別番号等)を、状態変数SVとしてさらに観測してもよい。機械学習装置10がコンピュータから構成される場合は、コンピュータのプロセッサは、上述した状態観測部12及び学習部14の機能を実現するための演算処理を行う。一方、機械学習装置10がソフトウェアから構成される場合は、機械学習装置10は、プロセッサ等のリソースに、ソフトウェアに含まれるコンピュータプログラムを実行させることで、上述の状態観測部12及び学習部14の機能を実現させる。
【0046】
機械学習装置10では、学習部14が実行する学習アルゴリズムは特に限定されず、例えば、教師あり学習、教師なし学習、強化学習、又はニューラルネットワーク等、機械学習として公知の学習アルゴリズムを採用できる。
図7は、機械学習装置10の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部14を備えた構成を示す。
【0047】
強化学習は、学習対象が存在する環境の現在状態(つまり入力)を観測するとともに現在状態で所定の行動(つまり出力)を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策(本実施形態では、修正量C)を最適解として学習する手法である。
【0048】
図7に示す機械学習装置10において、学習部14は、誤差δに関連する報酬Rを求める報酬計算部16と、報酬Rを用いて、修正量Cの価値を表す関数EQを更新する関数更新部18とを備える。学習部14は、関数更新部18が関数EQの更新を繰り返すことによって、修正量Cを学習する。
【0049】
以下、学習部14が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Q学習(Q-learning)として知られるものであって、行動主体の状態sと、その状態sで行動主体が選択し得る行動aとを独立変数として、状態sで行動aを選択した場合の行動の価値を表す関数EQ(s,a)を学習する手法である。
【0050】
状態sで価値関数EQが最も高くなる行動aを選択することが最適解となる。状態sと行動aとの相関性が未知の状態でQ学習を開始し、任意の状態sで種々の行動aを選択する試行錯誤を繰り返すことで、価値関数EQを反復して更新し、最適解に近付ける。ここで、状態sで行動aを選択した結果として環境(つまり状態s)が変化したときに、その変化に応じた報酬(つまり行動aの重み付け)rが得られるように構成し、より高い報酬rが得られる行動aを選択するように学習を誘導することで、価値関数EQを比較的短時間で最適解に近付けることができる。
【0051】
価値関数EQの更新式は、一般に下記の式(1)のように表すことができる。
【0052】
【0053】
式(1)において、st及びatはそれぞれ時刻tにおける状態及び行動であり、行動atにより状態はst+1に変化する。rt+1は、状態がstからst+1に変化したことで得られる報酬である。maxQの項は、時刻t+1で最大の価値Qになる(と時刻tで考えられている)行動aを行ったときのQを意味する。α及びγはそれぞれ学習係数及び割引率であり、0<α≦1、0<γ≦1で任意設定される。
【0054】
学習部14がQ学習を実行する場合、状態観測部12が観測した状態変数SVは、更新式の状態sに該当し、現在状態のワークWを加工するときにワークモデルWM1をどの程度修正すべきかという行動(つまり、修正量C)は、更新式の行動aに該当する。また、報酬計算部16が求める報酬Rは、更新式の報酬rに該当する。関数更新部18は、現在状態のワークWを加工するときの修正量Cの価値を表す関数EQを、報酬Rを用いたQ学習により繰り返し更新する。
【0055】
例えば、報酬計算部16が求める報酬Rは、誤差δが所定の閾値δth1よりも小さい場合に正(プラス)の報酬Rとする一方、誤差δが閾値δth1以上である場合に負(マイナス)の報酬Rとする。正負の報酬Rの絶対値は、互いに同一であってもよいし異なっていてもよい。
【0056】
また、報酬計算部16は、誤差δの大きさに応じて異なる報酬Rを求めてもよい。例えば、報酬計算部16は、誤差δが、0≦δ<δth2(<δth1)の場合は報酬R=+5を与え、δth2≦δ<δth3(<δth1)の場合は報酬R=+2を与え、δth3≦δ<δth1の場合は報酬R=+1を与えてもよい。
【0057】
一方、報酬計算部16は、δth1≦δ<δth4の場合は報酬R=-1を与え、δth4<δ≦δth5の場合は報酬R=-2を与え、δth5<δの場合は報酬R=-5を与えてもよい。すなわち、この場合、報酬計算部16は、誤差δが小さくなる程、大きな値の報酬Rを求めている。このように条件によって重み付けされた報酬Rを求めることで、Q学習を比較的短時間で最適解に収束させることができる。
【0058】
さらに、報酬計算部16は、加工状態データCDの違いに応じて異なる報酬Rを求めてもよい。例えば、報酬計算部16は、誤差δが閾値δth1よりも小さく、且つ、加工状態データCDの動作パラメータOPに含まれる制御ゲインGが、所定の許容範囲内である場合に、より大きな値の正の報酬Rを与えてもよい。また、報酬計算部16は、誤差δが閾値δth1よりも小さく、且つ、動作パラメータOPに含まれる時定数が、所定の許容範囲内である場合に、より大きな値の正の報酬Rを与えてもよい。この場合、工作機械100の移動機構136の動作を高速化するような条件下で誤差δを小さくするように、修正量Cの学習を進めることができる。
【0059】
関数更新部18は、状態変数SVと報酬Rとを、関数EQで表される行動価値(例えば数値)と関連付けて整理した行動価値テーブルを持つことができる。この場合、関数更新部18が関数EQを更新するという行為は、関数更新部18が行動価値テーブルを更新するという行為と同義である。
【0060】
Q学習の開始時には環境の現在状態と修正量Cとの相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数SVと報酬Rとが、無作為に定めた行動価値の値(関数EQ)と関連付けた形態で用意されている。なお、報酬計算部16は、誤差δを取得すれば、対応の報酬Rを直ちに算出でき、算出した報酬Rの値が行動価値テーブルに書き込まれる。
【0061】
誤差δに応じた報酬Rを用いてQ学習を進めると、より高い報酬Rが得られる行動(つまり、修正量C)を選択する方向へ学習が誘導される。そして、選択した行動を現在状態で実行した結果として変化する環境の状態(つまり、状態変数SV)に応じて、現在状態で行う行動についての行動価値の値(関数EQ)が書き替えられ、行動価値テーブルが更新される。
【0062】
この更新を繰り返すことにより、行動価値テーブルに示される行動価値の値(関数EQ)は、適正な行動(修正量C)ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態(誤差δ)と、それに対する行動(修正量C)との相関性が、徐々に明らかになる。
【0063】
以下、
図8を参照して、
図7に示す機械学習装置10の学習フローの一例について説明する。
図8に示すフローは、工作機械100が加工プログラムMP1に従って加工したワークWの形状と目的形状(ワークモデルWM1)との誤差δが測定された場合に、開始される。
【0064】
ステップS1において、関数更新部18は、その時点での行動価値テーブルを参照しながら、現在状態で行う行動として、修正量Cを選択する。例えば、関数更新部18は、製図装置からワークモデルWM1を取得するとともに、直近に測定された誤差δの測定データを取得する。
【0065】
そして、関数更新部18は、誤差δの測定データを基に、ワークモデルWM1上の領域F(
図4)を特定する。そして、関数更新部18は、領域Fに存在するワークモデルWM1のコンポーネント(モデル点、モデル線、表面モデルSM1)を修正する修正量Cをランダムに選択する。
【0066】
ここで、関数更新部18は、修正量Cの大きさ及び方向を制限する所定の条件の下で、修正量Cをランダムに選択するように構成されてもよい。例えば、領域Fで
図5に示す誤差δが生じていた場合、関数更新部18は、表面モデルSM1を修正する修正量Cの方向を、誤差δ(突出誤差)が生じている方向とは反対の方向D1(すなわち、
図5中の表面モデルSM1に関し、表面SWとは反対側)に選択してもよい。一方、領域Fで
図6に示す誤差δ(凹み誤差)が生じていた場合、関数更新部18は、修正量Cの方向を、誤差δが生じている方向とは反対の方向D2に選択してもよい。
【0067】
また、関数更新部18は、修正量Cの大きさ:|C|を、誤差δに基づいて定められた数値範囲内で選択してもよい。例えば、この数値範囲は、領域Fにおける誤差δの最大値をδmaxとした場合に、0<|C|≦δmaxとして定められ得る。また、関数更新部18は、修正量CだけワークモデルWM1を修正する位置を、予め定めた大きさの誤差δ(例えば、最大値δmax)が生じているワークモデルWM1のコンポーネント(例えば、モデル点)の位置として、選択してもよい。
【0068】
ステップS2において、関数更新部18は、状態変数SVを取り込む。具体的には、ステップS1で関数更新部18が修正量Cを選択すると、製図装置は、ワークモデルWM1のコンポーネント(モデル点、モデル線、表面モデルSM1)をモデル座標系CWにおいて修正量Cだけ修正することによって、ワークモデルWM2を作成する。そして、プログラム生成装置は、ワークモデルWM2に基づいて加工プログラムMP2を生成し、工作機械100は、該加工プログラムMP2に従ってワークWを加工する。測定装置は、加工後のワークWの形状と目的形状(ワークモデルWM1)との誤差δを測定する。
【0069】
このステップS2において、状態観測部12は、工作機械100が加工プログラムMP2に従ってワークWを加工したときの加工状態データCDと、加工後の該ワークWの形状と目的形状との誤差δの測定データとを、状態変数SVとして観測する。関数更新部18は、状態観測部12が観測する状態変数SVを取り込む。
【0070】
ステップS3において、関数更新部18は、直近のステップS2で取り込んだ誤差δが閾値δth1以上であるか否かを判定する。関数更新部18は、δ≧δth1である場合にYESと判定し、ステップS5へ進む一方、δ<δth1である場合にNOと判定し、ステップS4へ進む。
【0071】
ステップS4において、報酬計算部16は、正の報酬Rを求める。このとき、報酬計算部16は、上述したように、誤差δの大きさに応じて異なる報酬R(具体的には、誤差δが小さくなる程、大きな値の報酬R)を求めてもよい。報酬計算部16は、求めた正の報酬Rを、関数EQの更新式に適用する。このように誤差δが小さくなる程、大きな値の報酬Rを与えることによって、学習部14による学習が、誤差δが小さくなる行動を選択する方向へ誘導される。
【0072】
ステップS5において、報酬計算部16は、負の報酬Rを求め、関数EQの更新式に適用する。このとき、報酬計算部16は、上述したように、誤差δが大きくなる程、大きな絶対値の負の報酬Rを求めてもよい。なお、報酬計算部16は、このステップS4において、負の報酬Rを与える代わりに、報酬R=0として、関数EQの更新式に適用してもよい。
【0073】
ステップS6において、関数更新部18は、現在状態における状態変数SV及び報酬Rを用いて、行動価値テーブル(関数EQ)を更新する。このように、学習部14は、ステップS1~S6を繰り返すことで行動価値テーブルを反復して更新し、修正量Cの学習を進行させる。
【0074】
上述した強化学習を進めるときに、Q学習の代わりに、例えばニューラルネットワークを用いることができる。
図9は、ニューロンのモデルを模式的に示す。
図10は、
図9に示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模したプロセッサ及びメモリ等によって構成できる。
【0075】
図9に示すニューロンは、複数の入力x(図では例として入力x1~x3)に対し結果yを出力する。個々の入力x(x1、x2、x3)にはそれぞれに重みw(w1、w2、w3)が乗算される。入力xと結果yとの関係は、下記の式(2)で表すことができる。なお、入力x、結果y及び重みwはいずれもベクトルである。また式(2)において、θはバイアスであり、f
kは活性化関数である。
【0076】
【0077】
図10に示す三層のニューラルネットワークは、左側から複数の入力x(図では例として入力x1~入力x3)が入力され、右側から結果y(図では例として結果y1~結果y3)が出力される。図示の例では、入力x1、x2、x3のそれぞれに対応の重み(総称してω1で表す)が乗算されて、個々の入力x1、x2、x3がいずれも3つのニューロンN11、N12、N13に入力されている。
【0078】
図10では、ニューロンN11~N13の各々の出力を、総称してZ1で表す。Z1は、入力ベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルZ1のそれぞれに対応の重み(総称してω2で表す)が乗算されて、個々の特徴ベクトルZ1がいずれも2つのニューロンN21、N22に入力されている。特徴ベクトルZ1は、重みW1と重みW2との間の特徴を表す。
【0079】
図10は、ニューロンN21~N22の各々の出力を、総称してZ2で表す。Z2は、特徴ベクトルZ1の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルZ2のそれぞれに対応の重み(総称してω3で表す)が乗算されて、個々の特徴ベクトルZ2がいずれも3つのニューロンN31、N32、N33に入力されている。特徴ベクトルZ2は、重みω2と重みω3との間の特徴を表す。最後にニューロンN31~N33は、それぞれ結果y1~y3を出力する。
【0080】
機械学習装置10においては、状態変数SVを入力xとして、学習部14が上記したニューラルネットワークに従う多層構造の演算を行うことで、修正量C(結果y)を出力することができる。なおニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みωを学習し、学習した重みωを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【0081】
上記した機械学習装置10の構成は、コンピュータのプロセッサが実行する機械学習方法(又はソフトウェア)として記述できる。この機械学習方法は、プロセッサが、工作機械100の加工状態データCD、及び、ワークモデルWMに基づいて工作機械100が加工したワークWの形状と目的形状との誤差δの測定データを、ワークWを加工する環境の現在状態を表す状態変数SVとして観測し、状態変数SVを用いて、修正量Cを誤差δと関連付けて学習する。
【0082】
図11は、機械学習装置10の他の形態を示す。この機械学習装置10は、意思決定部20をさらに備える。意思決定部20は、学習部14による学習結果(行動価値テーブル)に基づいて、修正量Cの出力値を出力する。意思決定部20が出力値Cを出力すると、それに応じて、ワークWを加工する環境140の状態(誤差δ)が変化する。
【0083】
すなわち、意思決定部20は、出力値Cを製図装置に出力し、該製図装置は、ワークモデルWM1のコンポーネント(モデル点、モデル線、表面モデルSM1)を、出力値Cに従ってモデル座標系CWにおいて修正することにより、ワークモデルWM2を作成する。そして、プログラム生成装置は、ワークモデルWM2に基づいて加工プログラムMP2を生成し、工作機械100は、該加工プログラムMP2に従ってワークWを加工する。測定装置は、加工後のワークWの形状と目的形状との誤差δを測定し、状態観測部12は、該誤差δを、次の学習サイクルにおける測定データとして、状態変数SVを観測する。
【0084】
学習部14は、変化した状態変数SVを用いて、例えば価値関数EQ(すなわち、行動価値テーブル)を更新することで、修正量Cを学習する。意思決定部20は、学習した修正量Cの下、状態変数SVに応じて最適な出力値Cを出力する。このサイクルを繰り返すことにより、機械学習装置10は、修正量Cの学習を進め、該修正量Cの信頼性を徐々に向上させる。
【0085】
図11に示す機械学習装置10によれば、意思決定部20の出力によって環境140の状態を変化させることができる。なお、機械学習装置10において、学習部14の学習結果を環境140に反映させるための意思決定部に相当する機能を、外部装置に求めることができる。
【0086】
次に、
図12を参照して、一実施形態に係る加工システム150について説明する。加工システム150は、工作機械100、製図装置152、プログラム生成装置154、測定装置156、センサ158、及び制御装置160を備える。製図装置152は、上述のようにワークモデルWMを作成可能な装置(CAD等)であって、プロセッサ及びメモリを有するコンピュータ、又はソフトウェアから構成される。
【0087】
プログラム生成装置154は、上述のように、ワークモデルWMに基づいて加工プログラムMPを生成可能な装置(CAM等)であって、プロセッサ及びメモリを有するコンピュータ、又はソフトウェアから構成される。なお、製図装置152及びプログラム生成装置154は、プロセッサ及びメモリを有する1つのコンピュータであるコンピュータ支援設計装置に統合されてもよい。測定装置156は、上述のように、ステレオカメラを有する3次元スキャナ、又は3次元測定機等であって、誤差δを測定し、該誤差δの測定データを制御装置160へ送信する。
【0088】
センサ158は、加工状態データCDのうち、寸法誤差E、温度T1、雰囲気温度T2、熱量Q、消費電力P、及び熱変位量ξを測定するためのものであって、上述のずれ測定器、温度センサ、熱量計、電力計(電圧計若しくは電流計)、及び変位測定器を含む。センサ158は、加工状態データCDとして、寸法誤差E、温度T1、雰囲気温度T2、熱量Q、消費電力P、及び熱変位量ξを測定し、制御装置160へ送信する。
【0089】
制御装置160は、プロセッサ(CPU、GPU等)162、及びメモリ(ROM、RAM等)164を有する。プロセッサ162は、バス166を介してメモリ164と通信可能に接続されており、メモリ164と通信しつつ各種演算を実行する。制御装置160は、工作機械100(具体的には、移動機構136)、製図装置152、プログラム生成装置154、測定装置156、及びセンサ158と通信可能に接続され、これらコンポーネントの動作を制御する。
【0090】
本実施形態においては、機械学習装置10は制御装置160に実装されており、プロセッサ162は、上述の状態観測部12、学習部14(報酬計算部16及び関数更新部18)、及び意思決定部20として機能する。また、プロセッサ162は、加工状態データCD及び測定データδを取得する。具体的には、プロセッサ162は、センサ158から、加工状態データCDとして寸法誤差E、温度T1、雰囲気温度T2、熱量Q、消費電力P、及び熱変位量ξを取得する。
【0091】
また、プロセッサ162は、加工状態データCDとして動作パラメータOPを取得する。例えば、動作パラメータOP(加速度α、時定数τ、制御ゲインG、慣性モーメントM)は、オペレータによって予め設定され、メモリ164に格納される。プロセッサ162は、メモリ164から動作パラメータOPを読み出して取得する。また、プロセッサ162は、測定装置156から誤差δの測定データを取得する。このように、本実施形態においては、プロセッサ162は、加工状態データCD、及び誤差δの測定データを取得する状態データ取得部168として機能する。
【0092】
プロセッサ162は、機械学習装置10として機能して、工作機械100、製図装置152、プログラム生成装置154、測定装置156、及びセンサ158と協働しつつ、修正量
Cの学習を自動で進めることができる。例えば、プロセッサ162は、
図8に示す学習フローを実行することによって、最適な修正量
Cを学習できる。
【0093】
なお、加工システム150は、ワークハンドリングロボット(図示せず)をさらに備えてもよい。このワークハンドリングロボットは、所定の場所に保管されたワーク基材を、工作機械100のワークテーブル114にセットし、該ワーク基材の加工後に、ワークテーブル114からワークWを取り出す。そして、ワークハンドリングロボットは、加工後のワークWを、測定装置156内にセットし、測定装置156がワークWの形状及び誤差δを測定した後に、該ワークWを測定装置156から取り出す。
【0094】
プロセッサ162は、ワークハンドリングロボットを制御して、上述のようなワークWのローディング及びアンローディングを実行する。この構成によれば、プロセッサ162は、オペレータによる手動の作業を要することなく、例えば
図8に示す機械学習フローを、全自動で実行できる。
【0095】
一方、オペレータは、機械学習フローにおける少なくとも1つのプロセスを手動で行ってもよい。例えば、オペレータは、製図装置を操作して、ワークモデルWMの作成を手動で行ってもよいし、又は、プログラム生成装置を操作して、加工プログラムMPの作成を手動で行ってもよい。
【0096】
なお、上述の実施形態においては、理解の容易のために、誤差δが生じる領域Fが1つである場合について述べた。しかしながら、実際上は、複数の領域Fi(i=1,2,3,・・・)で誤差δが生じる場合がある。この場合、機械学習装置10は、各々の領域Fiについて上述の機械学習方法を実行する。例えば、
図7に示す機械学習装置10の場合、機械学習装置10は、
図8に示すフローを各々の領域Fiについて順次実行する。これにより、各領域Fiで最適な修正量Cを学習することができる。
【0097】
なお、上述の実施形態では、理解の容易のために、
図2に示すような簡単な形状のワークWを例として説明したが、ワークの形状は限定されない。例えば、機械学習装置10は、
図13に示すようなワークW2に関しても、上述の機械学習方法を実行して、最適な修正量Cを学習できる。
図13に示すワークW2は、コンプレッサ等の流体装置に用いられる羽根車であって、基部WAと、該基部WAから外方へ曲線状に延出する翼部WBとを有する。ワークW2は、工作機械100によって加工される。
【0098】
なお、工作機械100は、上述の構成に限定されず、如何なるタイプのものであってもよい。例えば、工作機械100は、工具118で切削加工するものに限らず、例えば、レーザ加工ヘッドを備え、該レーザ加工ヘッドから出射されるレーザ光によってワークWを加工するものであってもよい。
【0099】
また、上述の移動機構136の代わりに、垂直多関節型、水平多関節型又はパラレルリンク型のロボットを、工具118(又はレーザ加工ヘッド)とワークWとを相対的に移動させる移動機構として適用してもよい。この場合、ロボットは、工具118を回転駆動する駆動部を有し、工作機械100は、ロボットによって工具118をワークWに対して移動させつつ、該工具118でワークWを加工する。
【0100】
また、
図12に示す実施形態において、製図装置152及びプログラム生成装置154の少なくとも一方がソフトウェアとして制御装置160に統合されてもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。なお、状態観測部12は、修正量Cを状態変数SVとして観測してもよい。この場合において、修正量Cを取得する修正量取得部が設けられてもよい。
【符号の説明】
【0101】
10 機械学習装置
12 状態観測部
14 学習部
16 報酬計算部
18 関数更新部
20 意思決定部
100 工作機械
118 工具
136 移動機構
150 加工システム
160 制御装置