以下、本発明の実施形態を図面と共に説明する。
図1は、第1の実施形態による制御装置10の概略的な機能ブロック図である。制御装置10は、機器の筐体に対するプリント板の取り付け作業を行う産業機械(例えば実装機、産業用ロボット等)に指令されるねじ穴へのねじの取り付け順番を、いわゆる機械学習により自ら学習するためのソフトウェア(学習アルゴリズム等)及びハードウェア(コンピュータのCPU等)を含む機械学習装置20を備える。制御装置10が備える機械学習装置20が学習するねじ穴へのねじの取り付け順番は、プリント板の取り付け作業において前工程までに基板に生じている反りや伸縮等の変形の状態と、変形した基板のねじ穴へのねじの取り付け順番との、相関性を表すモデル構造に相当する。
図1に機能ブロックで示すように、制御装置10が備える機械学習装置20は、機器(図示せず)の筐体へのプリント板(図示せず)への取り付け工程のために産業機械(図示せず)に指令されるねじ穴へのねじの取り付け指令の指令値データS1、及び取り付け工程の開始前に測定されるプリント板の基準形状からの変形量の測定値データS2を含むプリント板の取り付け作業が行われる環境の現在状態を表す状態変数Sとして観測する状態観測部22と、取り付け工程で筐体へと取り付けら得るプリント板の取り付け状態の適否判定結果を示す判定データDを取得する判定データ取得部24と、状態変数Sと判定データDとを用いて、指令値データS1におけるねじの取り付け順番を測定値データS2と関連付けて学習する学習部16とを備える。
状態観測部22は、例えばコンピュータのCPUの一機能として構成できる。或いは状態観測部22は、例えばコンピュータのCPUを機能させるためのソフトウェアとして構成できる。状態観測部22が観測する状態変数Sのうち、指令値データS1は、例えば産業機械の制御装置10に与えられる組立作業プログラムから取得できる。指令値データS1は、プリント板上に配置されている各ねじ穴の位置(三次元座標)及びねじ穴へのねじの取り付け順番を含む。
また状態変数Sのうち、測定値データS2は、1つのプリント板について筐体への取り付け工程を開始しようとするたびに、例えば産業機械に付設される第1の測定装置(図示せず)により取り付け工程開始前のプリント板の外形を三次元で実測することで取得できる。
第1の測定装置は例えば、プリント板の取り付け工程での位置決め等の目的でプリント板表面に設けられている複数のマークの位置を測定したり、矩形のプリント板の四隅の位置を測定したり、プリント板の表面に存在する他の複数の着目可能点(既存又は後付け)の位置を測定したりすることができる。第1の測定装置は、それら測定箇所の実測位置と当該測定箇所の予め定めた基準位置との差を求め、求めた差から、プリント板の反り(二次元角度)や伸縮(三次元距離)等の変形量の測定値データS2を演算できる。この演算は、例えば産業機械の制御装置10が行ったり、状態観測部22自体が行ったりすることもできる。第1の測定装置としては、赤外線レーザ、超音波、静電容量等を用いた非接触式変位計や、接触子を有する接触式変位計等を採用できる。
判定データ取得部24は、例えばコンピュータのCPUの一機能として構成できる。或いは判定データ取得部24は、例えばコンピュータのCPUを機能させるためのソフトウェアとして構成できる。判定データ取得部24が取得する判定データDは、1つのプリント板について産業機械が取り付け工程を実行するたびに、例えば産業機械に付設される第2の測定装置(図示せず)により機器の筐体に対する取り付け工程中のプリント板の配置を三次元で実測することで取得できる。判定データDは、状態変数Sの下で実装工程を実行したときの結果を表す指標であって、プリント板の組み立て作業が行われる環境の現在状態を間接的に表すものである。
第2の測定装置は例えば、プリント板の取り付け工程中に、筐体に対するプリント板の適正位置とのズレ(三次元距離)を測定することができる。第2の測定装置は、筐体に対するプリント板の位置のズレの大きさを、予め定めた許容値と比較することで、筐体に対するプリント板の現実の配置の適否を判定して、その判定結果(適又は否)を判定データDとして取得できる。この比較判定は、例えば産業機械の制御装置10が行ったり、判定データ取得部24自体が行ったりすることもできる。第2の測定装置としては、CCDカメラ等の撮像部を有する視覚センサ等を採用できる。視覚センサを採用する場合、撮像部の配置や台数を適宜工夫することで、位置のズレを所要の精度で検出することができる。
このように、制御装置10が備える機械学習装置20が学習を進める間、環境においては、第1の測定装置による基板の変形量の測定、産業機械によるプリント板の取り付け工程の実行、及び第2の測定装置による筐体に対して取り付けたプリント板の位置のズレの測定が実施される。
学習部26は、例えばコンピュータのCPUの一機能として構成できる。或いは学習部26は、例えばコンピュータのCPUを機能させるためのソフトウェアとして構成できる。学習部26は、機械学習と総称される任意の学習アルゴリズムに従い、プリント板のねじ穴へのねじの取り付け順番を学習する。学習部26は、プリント板の取り付け作業の対象となる複数のプリント板に対して、前述した状態変数Sと判定データDとを含むデータ集合に基づく学習を反復実行することができる。
複数のプリント板に対する学習サイクルの反復中、状態変数Sのうち指令値データS1は、前回の学習サイクルで得たねじ穴へのねじの取り付け順番とした値とし、また判定データDは、当該決定したねじ穴へのねじの取り付け順番を用いたプリント板の取り付け工程に対する適否判定結果とする。
このような学習サイクルを繰り返すことにより、学習部26は、プリント板の変形量(測定値データS2)とねじ穴へのねじの取り付け順番との相関性を暗示する特徴を自動的に識別することができる。学習アルゴリズムの開始時には測定値データS2とねじの取り付け順番との相関性は実質的に未知であるが、学習部26は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。測定値データS2とねじの取り付け順番との相関性が、ある程度信頼できる水準まで解釈されると、学習部26が反復出力する学習結果は、現在状態の(つまり変形量を有する)プリント板に対してねじ穴へのねじの取り付け順番をどのようにするべきかと言う行動の選択(つまり意思決定)を行うために使用できるものとなる。つまり学習部26は、学習アルゴリズムの進行に伴い、プリント板の取り付け作業の対象となる1つのプリント板の現在状態と、当該現在状態のプリント板のねじ穴に対してねじをどの順番で取り付けるべきかという行動との、相関性を最適解に徐々に近づけることができる。
上記したように、制御装置10が備える機械学習装置20は、状態観測部22が観測した状態変数Sと判定データ取得部24が取得した判定データDとを用いて、学習部26が機械学習アルゴリズムに従い、プリント板に対してねじ穴へのねじの取り付け順番を学習するものである。状態変数Sは、指令値データS1及び測定値データS2といった、外乱の影響を受け難いデータで構成され、また判定データDは、取り付け工程を実行することにより一義的に求められる。測定値データS2については、例えば第1の測定装置の能力としてのプリント板の変形量の測定精度に依存するが、それ自体高精度の測定値データS2を観測できることが期待される。また判定データDについては、例えば第2の測定装置の能力としての機器の筐体とプリント板との位置のズレ量の測定精度に依存するが、それ自体高精度の判定データDを取得できることが期待される。したがって、制御装置10が備える機械学習装置20によれば、学習部26の学習結果を用いることで、プリント基板の変形量に応じたねじの取り付け順番を、演算や目算によらずに自動的に、しかも正確に求めることができるようになる。
プリント板の変形量に応じたねじの取り付け順番を、演算や目算によらずに自動的に求めることができれば、取り付け工程の開始前にプリント板の外形を実測して基準形状からの変形量(測定値データS2)を取得するだけで、ねじの取り付け順番を迅速に決定することができる。したがって、筐体に対するプリント板の取り付け作業の速度を向上させることができ、また演算ミス等に起因するねじやねじ穴、プリント板の損傷を回避できる。
制御装置10が備える機械学習装置20の一変形例として、状態観測部22は、状態変数Sとして、プリント板の品種を識別する品種情報S3をさらに観測することができる。品種情報S3は例えば、プリント板の材料、回路パターン(層構造含む)等の情報を含むことができる。品種情報S3はさらに、プリント板の製造ロット番号や製造企業の識別情報を含むこともできる。例えば品種情報S3を、バーコード等の識別子でプリント板に表示したり組立作業プログラムに含ませたりすることができる。状態観測部22は例えば、バーコードリーダの出力や組立作業プログラムから品種情報S3を取得できる。学習部26は、ねじの取り付け順番を、測定値データS2及び品種情報S3の双方と関連付けて学習することができる。
上記変形例によれば、プリント板の変形量と品種との双方に応じた最適なねじの取り付け順番を学習することができる。例えば2つのプリント板の変形量(測定値データS2)が同一であっても材料等(品種情報S3)が異なる場合、プリント板の挿通穴とねじ穴とのズレの程度が、微妙に異なる状況が生じ得る。上記構成によれば、このような状況においても材料等(品種情報S3)に応じてねじの取り付け順番を最適化することができる。或いは、学習を進めるうちに変形量(測定値データS2)と材料等(品種情報S3)との相関性を見出すことができる場合もある。この場合には、品種情報S3から測定値データS2をある程度予測できるようになるので、第1の測定装置による基板変形量の測定精度が低い場合であっても、学習を適正に収束させてねじの取り付け順番を最適化することができる。
制御装置10が備える機械学習装置20の他の変形例として、状態観測部22は、状態変数Sとして、筐体とプリント板との相対的な位置関係を計測して得られた位置関係情報S4をさらに観測することができる。状態観測部22は例えば、第2の測定装置などを用いることで位置関係情報S4を取得できる。学習部26は、ねじの取り付け順番を、測定値データS2及び位置関係情報S4の少なくともいずれか一方と関連付けて学習することができる。また、これに加えて上記した品種情報S3を併せて学習に用いることも可能である。
制御装置10が備える機械学習装置20の他の変形例として、学習部26は、同一の機械構成を有する複数の産業機械のそれぞれについて得られた状態変数S及び判定データDを用いて、それら産業機械のそれぞれにおけるねじの取り付け順番を学習することができる。この構成によれば、一定時間で得られる状態変数Sと判定データDとを含むデータ集合の量を増加できるので、より多様なデータ集合を入力として、ねじの取り付け順番の学習の速度や信頼性を向上させることができる。
上記構成を有する機械学習装置20では、学習部26が実行する学習アルゴリズムは特に限定されず、例えば教師あり学習、教師なし学習、強化学習、ニューラルネットワーク等の、機械学習として公知の学習アルゴリズムを採用できる。図2は、図1に示す制御装置10の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部26を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態(つまり入力)を観測するとともに現在状態で所定の行動(つまり出力)を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策(本願の機械学習装置ではねじの取り付け順番)を最適解として学習する手法である。
図2に示す制御装置10が備える機械学習装置20において、学習部26は、状態変数Sに基づいて実装工程を試行することにより得られる電子部品配置の適否判定結果(次の学習サイクルで用いられる判定データDに相当)に関連する報酬Rを求める報酬計算部28と、報酬Rを用いて、取り付け工程の実行時に採用されるねじの取り付け順番の価値を表す関数Qを更新する価値関数更新部30とを備える。学習部26は、価値関数更新部30が関数Qの更新を繰り返すことによってねじの取り付け順番を学習する。
学習部26が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、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を比較的短時間で最適解に近付けることができる。
価値関数Qの更新式は、一般に下記の数1式のように表すことができる。数1式において、st及びatはそれぞれ時刻tにおける状態及び行動であり、行動atにより状態はst+1に変化する。rt+1は、状態がstからst+1に変化したことで得られる報酬である。maxQの項は、時刻t+1で最大の価値Qになる(と時刻tで考えられている)行動aを行ったときのQを意味する。α及びγはそれぞれ学習係数及び割引率であり、0<α≦1、0<γ≦1で任意設定される。
学習部16がQ学習を実行する場合、状態観測部22が観測した状態変数S及び判定データ取得部24が取得した判定データDは、更新式の状態sに該当し、現在状態の(つまり変形量を有する)プリント板に対してねじの取り付け順番をどのように変更するべきかという行動は、更新式の行動aに該当し、報酬計算部28が求める報酬Rは、更新式の報酬rに該当する。よって価値関数更新部30は、現在状態のプリント板に対するねじの取り付け順番の価値を表す関数Qを、報酬Rを用いたQ学習により繰り返し更新する。
報酬計算部28が求める報酬Rは、例えば、ねじの取り付け順番決定後の指令値で取り付け工程を実行したときに筐体に対するプリント板の配置が「適」と判定される場合(つまり、筐体に対するプリント板の位置のズレが許容範囲に収まる場合)に正(プラス)の報酬Rとし、ねじの取り付け順番決定後の指令値で取り付け工程を実行したときに筐体に対するプリント板の配置が「否」と判定される場合(つまり、筐体に対するプリント板の位置のズレが許容範囲を超える場合)に負(マイナス)の報酬Rとすることができる。正負の報酬Rの絶対値は、互いに同一であってもよいし異なっていてもよい。
また、筐体に対するプリント板配置の適否判定結果を、「適」及び「否」の二通りだけでなく、位置のズレの大きさに応じて複数段階に設定することができる。例として、許容範囲の最大値がTmaxの場合、取り付け工程を実行したときの筐体に対するプリント板の位置のズレUが、0≦U<Tmax/5のときは報酬R=5を与え、Tmax/5≦U<Tmax/2のときは報酬R=2を与え、Tmax/2≦U≦Tmaxのときは報酬R=1を与えるような構成とすることができる。さらに、学習の初期段階はTmaxを比較的大きく設定し、学習が進行するにつれてTmaxを縮小する構成とすることもできる。
価値関数更新部30は、状態変数Sと判定データDと報酬Rとを、関数Qで表される行動価値(例えば数値)と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部30が関数Qを更新するという行為は、価値関数更新部30が行動価値テーブルを更新するという行為と同義である。Q学習の開始時には環境の現在状態とねじの取り付け順番との相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数Sと判定データDと報酬Rとが、無作為に定めた行動価値の値(関数Q)と関連付けた形態で用意されている。なお報酬計算部28は、判定データDが分かればこれ対応する報酬Rを直ちに算出でき、算出した値Rが行動価値テーブルに書き込まれる。
筐体に対するプリント板配置の適否判定結果に応じた報酬Rを用いてQ学習を進めると、より高い報酬Rが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態(つまり状態変数S及び判定データD)に応じて、現在状態で行う行動についての行動価値の値(関数Q)が書き替えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値(関数Q)は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態(プリント板の変形量)とそれに対する行動(ねじの取り付け順番の決定)との相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、プリント板の取り付け作業において工程の開始前にプリント板に生じている反りや伸縮等の変形の状態と、変形したプリント板の取り付け工程で要求されるねじの取り付け順番との関係が最適解に徐々に近づけられる。
図3を参照して、学習部26が実行する上記したQ学習のフロー(つまり機械学習方法の一形態)をさらに説明する。まずステップSA01で、価値関数更新部30は、その時点での行動価値テーブルを参照しながら、状態観測部22が観測した状態変数Sが示す現在状態で行う行動としてねじの取り付け順番を無作為に選択する。次に価値関数更新部30は、ステップSA02で、状態観測部22が観測している現在状態の状態変数Sを取り込み、ステップSA03で、判定データ取得部24が取得している現在状態の判定データDを取り込む。次に価値関数更新部30は、ステップSA04で、判定データDに基づき、取り付け工程実行による筐体に対するプリント板配置が適当であったか否かを判断し、適当であった場合、ステップSA05で、報酬計算部28が求めた正の報酬Rを関数Qの更新式に適用し、次いでステップSA06で、現在状態における状態変数S及び判定データDと報酬Rと行動価値の値(更新後の関数Q)とを用いて行動価値テーブルを更新する。ステップSA04で、取り付け工程実行による筐体に対するプリント板配置が適当でなかったと判断した場合、ステップSA07で、報酬計算部28が求めた負の報酬Rを関数Qの更新式に適用し、次いでステップSA06で、現在状態における状態変数S及び判定データDと報酬Rと行動価値の値(更新後の関数Q)とを用いて行動価値テーブルを更新する。学習部26は、ステップSA01〜SA07を繰り返すことで行動価値テーブルを反復して更新し、ねじの取り付け順番の学習を進行させる。
図4は、図1に示す制御装置10の他の形態であって、学習アルゴリズムの他の例として教師あり学習を実行する学習部26を備えた構成を示す。教師あり学習は、入力と出力との関係が未知の状態で学習を開始する前述した強化学習と異なり、入力とそれに対応する出力との既知のデータセット(教師データと称する)が予め大量に与えられ、それら教師データから入力と出力との相関性を暗示する特徴を識別することで、新たな入力に対する所要の出力を推定するための相関性モデル(本願の機械学習装置20ではねじの取り付け順番)を学習する手法である。
図4に示す制御装置10が備える機械学習装置20において、学習部26は、状態変数S及び判定データDからねじの取り付け順番を導く相関性モデルMと予め用意された教師データTから識別される相関性特徴との誤差Eを計算する誤差計算部32と、誤差Eを縮小するように相関性モデルMを更新するモデル更新部34とを備える。学習部26は、モデル更新部34が相関性モデルMの更新を繰り返すことによってねじの取り付け順番を学習する。
相関性モデルMの初期値は、例えば、状態変数S及び判定データDとねじの取り付け順番との相関性を単純化して(例えば一次関数で)表現したものであり、教師あり学習の開始前に学習部26に与えられる。教師データTは、例えば、過去のプリント板の取り付け作業において熟練の作業者が決定したねじの取り付け順番を記録することで蓄積された経験値(プリント板の基準形状からの変形量と対応するねじの取り付け順番との既知のデータセット)によって構成でき、教師あり学習の開始前に学習部26に与えられる。誤差計算部32は、学習部26に与えられた大量の教師データTから変形量とねじの取り付け順番との相関性を暗示する相関性特徴を識別し、この相関性特徴と、現在状態における状態変数S及び判定データDに対応する相関性モデルMとの誤差Eを求める。モデル更新部34は、例えば予め定めた更新ルールに従い、誤差Eが小さくなる方向へ相関性モデルMを更新する。
次の学習サイクルでは、誤差計算部32は、更新後の相関性モデルMに従って実装工程を試行することにより変化した状態変数S及び判定データDを用いて、それら変化した状態変数S及び判定データDに対応する相関性モデルMに関し誤差Eを求め、モデル更新部34が再び相関性モデルMを更新する。このようにして、未知であった環境の現在状態(プリント板の変形量)とそれに対する行動(ねじの取り付け順番)との相関性が徐々に明らかになる。つまり相関性モデルMの更新により、プリント板の取り付け作業において工程の開始前にプリント板に生じている反りや伸縮等の変形の状態と、変形したプリント板への取り付け工程で要求されるねじの取り付け順番との関係が、最適解に徐々に近づけられる。
なお、制御装置10が備える機械学習装置20では、学習の初期段階は学習部26が教師あり学習を実行し、学習がある程度進行した段階で、教師あり学習で得たねじの取り付け順番を初期値として学習部26が強化学習を実行するように構成することもできる。強化学習における初期値がある程度の信頼性を有しているので、前述したような高精度の取り付け工程が要求される場合にも比較的迅速に最適解に到達することができる。
前述した強化学習や教師あり学習を進める際に、例えばQ学習の代わりに、ニューラルネットワークを用いることができる。図5Aは、ニューロンのモデルを模式的に示す。図5Bは、図5Aに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
図5Aに示すニューロンは、複数の入力x(ここでは一例として、入力x1〜入力x3)に対する結果yを出力するものである。各入力x1〜x3には、この入力xに対応する重みw(w1〜w3)が掛けられる。これにより、ニューロンは、次の数2式により表現される出力yを出力する。なお、数2式において、入力x、出力y及び重みwは、すべてベクトルである。また、θはバイアスであり、fkは活性化関数である。
図5Bに示す三層のニューラルネットワークは、左側から複数の入力x(ここでは一例として、入力x1〜入力x3)が入力され、右側から結果y(ここでは一例として、結果y1〜結果y3)が出力される。図示の例では、入力x1、x2、x3のそれぞれに対応の重み(総称してw1で表す)が乗算されて、個々の入力x1、x2、x3がいずれも3つのニューロンN11、N12、N13に入力されている。
図5Bでは、ニューロンN11〜N13の各々の出力を、総称してz1で表す。z1は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルz1のそれぞれに対応の重み(総称してw2で表す)が乗算されて、個々の特徴ベクトルz1がいずれも2つのニューロンN21、N22に入力されている。特徴ベクトルZ1は、重みw1と重みw2との間の特徴を表す。
図5Bでは、ニューロンN21〜N22の各々の出力を、総称してz2で表す。z2は、特徴ベクトルz1の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルz2のそれぞれに対応の重み(総称してw3で表す)が乗算されて、個々の特徴ベクトルz2がいずれも3つのニューロンN31、N32、N33に入力されている。特徴ベクトルz2は、重みw2と重みw3との間の特徴を表す。最後にニューロンN31〜N33は、それぞれ結果y1〜y3を出力する。
制御装置10が備える機械学習装置20においては、状態変数Sと判定データDとを入力xとして、学習部26が上記したニューラルネットワークに従う多層構造の演算を行うことで、ねじの取り付け順番(結果y)を出力することができる。なおニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みwを学習し、学習した重みwを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
上記した制御装置10の構成は、コンピュータのCPUが実行する機械学習方法(或いはソフトウェア)として記述できる。この機械学習方法は、プリント板の取り付け作業を行う産業機械に指令されるねじの取り付け順番を学習する機械学習方法であって、コンピュータのCPUが、筐体に対するプリント板の取り付け工程のために産業機械に指令されるねじ穴へのねじの取り付け指令の指令値データS1、及び取り付け工程の開始前に測定されるプリント板の基準形状からの変形量の測定値データS2を、プリント板の取り付け作業が行われる環境の現在状態を表す状態変数Sとして観測するステップと、取り付け工程で機器の筐体に対して取り付けられるプリント板の現実の配置の適否判定結果を示す判定データDを取得するステップと、状態変数Sと判定データDとを用いて、指令値データS1に対するねじの取り付け順番を測定値データS2と関連付けて学習するステップとを有する。
図6は、第2の実施形態による制御装置40を示す。制御装置40は、機械学習装置50と、状態観測部22が観測する状態変数Sの指令値データS1及び測定値データS2を状態データS0として取得する状態データ取得部42とを備える。状態データ取得部42が取得する状態データS0は、品種情報S3を含むこともできる。状態データ取得部42は、産業機械に付設される前述した第1及び第2の測定装置や、オペレータによる適宜のデータ入力から、状態データS0を取得することができる。
制御装置40が有する機械学習装置50は、プリント板の取り付け作業を行う産業機械(例えば実装機、産業用ロボット等)に指令されるねじ穴へのねじの取り付け指令のねじの取り付け順番を機械学習により自ら学習するためのソフトウェア(学習アルゴリズム等)及びハードウェア(コンピュータのCPU等)に加えて、学習したねじの取り付け順番に従いねじ穴へのねじの取り付け指令を修正するためのソフトウェア(演算アルゴリズム等)及びハードウェア(コンピュータのCPU等)を含むものである。制御装置40が含む機械学習装置50は、1つの共通のCPUが、学習アルゴリズム、演算アルゴリズム等の全てのソフトウェアを実行する構成を有することもできる。
意思決定部52は、例えばコンピュータのCPUの一機能として構成できる。或いは意思決定部52は、例えばコンピュータのCPUを機能させるためのソフトウェアとして構成できる。意思決定部52は、学習部26が学習したねじの取り付け順番を用いて、状態観測部22が観測した状態変数Sのうち指令値データS1を修正し、修正後の値を修正指令値Cとして出力する。意思決定部52が修正指令値Cを出力すると、それに応じて、環境の状態(指令値データS1)が変化する。
状態観測部22は、意思決定部52が出力した修正指令値Cを次の学習サイクルにおける指令値データS1として、変化した状態変数Sを観測する。学習部26は、変化した状態変数Sを用いて、例えば価値関数Q(すなわち行動価値テーブル)を更新することで、ねじの取り付け順番を学習する。意思決定部52は、学習したねじの取り付け順番の下で状態変数Sに応じて修正指令値Cを出力する。このサイクルを繰り返すことにより、機械学習装置50はねじの取り付け順番の学習を進め、ねじの取り付け順番の信頼性を徐々に向上させる。
上記構成を有する制御装置40が備える機械学習装置50は、前述した機械学習装置20と同等の効果を奏する。特に機械学習装置50は、意思決定部52の出力によって環境の状態を変化させることができる。他方、機械学習装置20では、学習部26の学習結果を環境に反映させるための意思決定部に相当する機能を、外部装置(例えば産業機械の制御装置)に求めることができる。
図7は、産業機械60を備えた一実施形態による組立システム70を示す。組立システム70は、同一の機械構成を有する複数の産業機械60、60’と、それら産業機械60、60’を互いに接続するネットワーク72とを備え、複数の産業機械60、60’のうち少なくとも1つが、上記した制御装置40を備える産業機械60として構成される。また組立システム70は、制御装置40を備えない産業機械60’を含むことができる。産業機械60、60’は、筐体に対するプリント板の取り付けに必要とされる一般的な産業機械が備える構成を有する。
上記構成を有する組立システム70は、複数の産業機械60、60’のうちで制御装置40を備える産業機械60が、学習部26の学習結果を用いて、プリント板の変形量に応じたねじの取り付け順番を、演算や目算によらずに自動的に、しかも正確に求めることができる。また、少なくとも1つの産業機械60の制御装置40が、他の複数の産業機械60、60’のそれぞれについて得られた状態変数S及び判定データDに基づき、全ての産業機械60、60’に共通するねじの取り付け順番を学習し、その学習結果を全ての産業機械60、60’が共有するように構成できる。したがつて組立システム70によれば、より多様なデータ集合(状態変数S及び判定データDを含む)を入力として、ねじの取り付け順番の学習の速度や信頼性を向上させることができる。
図8は、産業機械60’を備えた他の実施形態による組立システム70’を示す。組立システム70’は、機械学習装置50(又は20)と、同一の機械構成を有する複数の産業機械60’と、それら産業機械60’と機械学習装置50(又は20)とを互いに接続するネットワーク72とを備える。
上記構成を有する組立システム70’は、機械学習装置50(又は20)が、複数の産業機械60’のそれぞれについて得られた状態変数S及び判定データDに基づき、全ての産業機械60’に共通するねじの取り付け順番を学習し、その学習結果を用いて、プリント板の変形量に応じたねじ穴へのねじの取り付け指令におけるねじの取り付け順番を、演算や目算によらずに自動的に、しかも正確に求めることができる。
組立システム70’は、機械学習装置50(又は20)が、ネットワーク72に用意されたクラウドサーバに存在する構成を有することができる。この構成によれば、複数の産業機械60’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の産業機械60’を機械学習装置50(又は20)に接続することができる。
組立システム70、70’に従事するオペレータは、機械学習装置50(又は20)による学習開始後の適当な時期に、機械学習装置50(又は20)によるねじの取り付け順番の学習の到達度(すなわちねじの取り付け順番の信頼性)が要求レベルに達したか否かの判断を実行することができる。
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、機械学習装置20、50が実行する学習アルゴリズム、機械学習装置50が実行する演算アルゴリズム、制御装置10、40が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
また、上記した実施形態では筐体に対するプリント板の取り付けにおけるねじの取り付け順番を学習する例を示しているが、例えば、機械に対する制御盤の取り付けや、蓋の取り付けなど、複数のねじにより部材を本体に取り付ける作業を行う産業機械の動作制御に対して適宜適用することが可能である。
また、上記した実施形態では、学習部26が状態観測部22が観測した状態変数Sと、判定データ取得部24が取得した判定データDとに基づく機械学習を行う例を示したが、制御装置10が備える機械学習装置20は、状態観測部22が観測した状態変数Sと、判定データ取得部24が取得した判定データとを関連付けて記憶し、記憶した状態変数Sと判定データDとを作業者の要求に応じて提示するような(学習部26として記憶部を備えた)構成のものであっても良い。この場合、機械学習装置20は、情報蓄積装置として機能する。本実施形態の制御装置10は、作業者の要求に応じて蓄積された情報としての状態変数Sと判定データDとを表示し、表示された状態変数Sと判定データDとに基づいて作業者自身がねじ止めの順番の適否を判断乃至検討することができる。
更に、上記した実施形態では報酬計算部28が求める報酬Rとしてねじの取り付け順番決定後の指令値で取り付け工程を実行したときに筐体に対するプリント板の配置を例示したが、これに加えて、ねじの取り付け時にねじ止めする機械に係るトルクを考慮するようにしても良い。報酬計算部28は、ねじ止め作業時にねじ止めする機械で検出されるトルク値が予め定めた所定の閾値以下に収まる場合に報酬Rに正(プラス)の報酬を加算し、ねじ止め作業時にねじ止めする機械で検出されるトルク値が予め定めた所定の閾値以下に収まる場合に報酬Rに負(マイナス)の報酬を加算(すなわち、減算)することができる。この場合においても、正負の報酬Rの絶対値は、互いに同一であってもよいし異なっていてもよい。また、閾値とトルクの差分の量に応じて報酬Rに加算(減算)する値を増減しても良い。