(57)【要約】【課題】部品組付精度の向上と組付時間の短縮を図る。【解決手段】機械学習装置（３０）は、第一部品（４１）および第二部品（４２）からなる組付物（４０）の状態、組付時間、ならびに力の情報のうちの少なくとも一つと、組付物の導通試験の結果と、第一部品および第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとから構成される状態変数を観測する状態観測部（３１）と、組付物の状態、組付時間、ならびに力の情報のうちの少なくとも一つと、組付物の導通試験の結果と、第一部品および第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとを関連付けて学習する学習部（３５）とを含む。【選択図】図１
2018103309.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つの作業機械が第一部品と第二部品とを互いに組付けて組付物を作成する組付動作を学習する機械学習装置であって、
前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果と、前記組付動作前における前記第一部品および前記第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとから構成される状態変数を観測する状態観測部と、
前記状態観測部により観測された前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果と、前記状態観測部により観測された前記組付動作前における前記第一部品および前記第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとを関連付けて学習する学習部とを具備する機械学習装置。
【請求項２】
前記学習部は、前記状態観測部により観測された前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果とに基づいて報酬を計算する報酬計算部と、
該報酬計算部により計算された報酬に基づいて、現在の前記状態変数から、前記組付動作前における前記第一部品および第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つを決定する関数を更新する関数更新部とを含む、請求項１に記載の機械学習装置。
【請求項３】
前記学習部の学習結果に基づいて、現在の前記状態変数から、前記組付動作前における前記第一部品および第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つの最適値を決定する意思決定部を具備する、請求項１または２に記載の機械学習装置。
【請求項４】
前記報酬計算部は、前記状態観測部により観測された前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報がそれぞれの許容範囲以内であるときには報酬を増やし、前記許容範囲以外であるときは報酬を減らし、
さらに、前記報酬計算部は、前記組付物の導通試験の結果が良好であるときには報酬を増やし、結果が良好でないときは報酬を減らすようにした請求項１から３のいずれか一項に記載の機械学習装置。
【請求項５】
前記学習部が、前記状態観測部で観測された状態変数を多層構造で演算し、前記関数をリアルタイムで更新する請求項１から４のいずれか一項に記載の機械学習装置。
【請求項６】
他の機械学習装置の関数更新部により更新された関数を用いて、前記関数更新部の前記関数を更新する請求項１から５のいずれか一項に記載の機械学習装置。
【請求項７】
請求項１から６のいずれか一項に記載の機械学習装置を具備する部品組付システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の部品の組付動作を学習する機械学習装置およびそのような機械学習装置を備えた部品組付システムに関する。
【背景技術】
【０００２】
二つの部品を組付ける際には、二つの部品に予め形成された穴にネジを通して、これら部品を互いに組付けている（例えば特許文献１参照）。あるいは、一方の部品の凹部または貫通孔に、他方の部品の一部分を挿入して、二つの部品を組付けることも行われている。
【０００３】
このような部品の組付作業は自動化することが可能である。寸法バラツキが比較的小さい部品が投入される組付装置は、組付時の位置関係が一定であるので高速で部品を組付けることができる。これに対し、寸法バラツキが比較的大きい部品が投入される組付装置は、組付時の位置関係がバラついているので確実に組付けるためには、位置を微修正しながら低速で部品を組付ける必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2014-007890号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、高速で部品を組付けている組付装置に、寸法バラツキの大きい部品を投入すると、部品の組付精度が低下する。このため、部品の組付けに失敗することが多くなり、製造ラインが頻繁に停止する。また、低速で部品を組付けている組付装置に、寸法バラツキの小さい部品が投入されたとしても、動作速度は変わらないので、作業時間が長くなるという問題がある。
【０００６】
それゆえ、部品の組付精度の向上と作業時間の短縮を図ることのできる機械学習装置およびそのような機械学習装置を備えた部品組付装置が望まれている。
【課題を解決するための手段】
【０００７】
本開示の１番目の態様によれば、少なくとも一つの作業機械が第一部品と第二部品とを互いに組付けて組付物を作成する組付動作を学習する機械学習装置であって、前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果と、前記組付動作前における前記第一部品および前記第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとから構成される状態変数を観測する状態観測部と、前記状態観測部により観測された前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果と、前記状態観測部により観測された前記組付動作前における前記第一部品および前記第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとを関連付けて学習する学習部とを具備する機械学習装置が提供される。
【発明の効果】
【０００８】
１番目の態様においては、組付前における第一部品および第二部品のそれぞれのより最適な位置および姿勢の指令値を自動的に決定する。このため、部品の寸法バラツキに関わらず、第一部品および第二部品の組付精度の向上と組付時間の短縮を図ることを可能とする機械学習装置を提供できる。
【０００９】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれら目的、特徴および利点ならびに他の目的、特徴および利点がさらに明解になるであろう。
【図面の簡単な説明】
【００１０】
【図１】一つの実施形態に基づく部品組付システムのブロック図である。
【図２Ａ】一つの例における第一部品および第二部品の側面図である。
【図２Ｂ】図２Ａの頂面図である。
【図３Ａ】他の例における第一部品および第二部品の側面図である。
【図３Ｂ】図３Ａの頂面図である。
【図４】機械学習器を拡大して示す拡大図である。
【図５】他の実施形態に基づく機械学習装置のブロック図である。
【図６】機械学習器の動作を示すフローチャートである。
【図７】ニューロンのモデルを示す模式図である。
【図８】３層のニューラルネットワークモデルを示す模式図である。
【図９】さらに他の実施形態に基づく複数の部品組付システムを示す図である。
【図１０Ａ】さらに他の例における第一部品および第二部品の側面図である。
【図１０Ｂ】図１０Ａの頂面図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。理解を容易にするために、これら図面は縮尺を適宜変更している。
図１は一つの実施形態に基づく部品組付システムのブロック図である。部品組付システム１は、部品組付装置１０と、部品組付装置１０を制御する制御装置２０とを主に含んでいる。
【００１２】
部品組付装置１０は、少なくとも一つの作業機械１１、１２を含んでいる。図１に示される作業機械１１、１２は例えば垂直多関節ロボットであるが、作業機械１１、１２が他の機械、例えばネジ締め装置やプレス装置のような単純作業機械もしくは工作機械であってもよい。以下においては、作業機械１１、１２がロボットであるものとして説明を続ける。
【００１３】
ロボット１１、１２のハンドには、第一部品４１および第二部品４２がそれぞれ把持されている。第一部品４１および第二部品４２は互いに係合可能であり、それぞれ別個の収納部（図示しない）に収納されている。第一部品４１および第二部品４２は互いに係合させると、組付物４０が作成される。なお、単一の作業機械（図示しない）が、治具などで固定された第一部品４１に対して第二部品４２を組付ける構成であってもよい。
【００１４】
そして、ロボット１１、１２は第一部品４１および第二部品４２を収納部（図示しない）から把持して取出す。次いで、ロボット１１、１２のための位置および姿勢のそれぞれの指令値によって定まる位置にロボット１１、１２が移動する。言い換えれば、これら位置および姿勢の指令値は、第一部品４１および第二部品４２の位置および姿勢に関する指令値でもあるといえる。
【００１５】
そして、組付動作のための方向、速度および力の指令値に基づいてロボット１１、１２のうちの少なくとも一方が移動し、それにより、第一部品４１および第二部品４２が互いに組み付けられる。その後、前述したロボット１１、１２のうちの少なくとも一方が前述した位置および姿勢の指令値によって定まる位置まで戻る。本願明細書では、位置および姿勢の指令値によって定まる位置から組付作用を行って前述した位置まで戻るまでの一連の動作を組付動作と呼ぶ。
【００１６】
図２Ａは一つの例における第一部品および第二部品の側面図であり、図２Ｂは図２Ａの頂面図である。図２Ａに示されるように、第一部品４１および第二部品４２の両方は互いに係合可能なコネクタである。あるいは、他の例における第一部品および第二部品の側面図である図３Ａおよび図３Ａの頂面図である図３Ｂに示されるように、第一部品４１がコネクタであると共に、第二部品４２がコネクタの貫通孔４５に挿入されるピンであってもよい。
【００１７】
再び図１を参照すると、制御装置２０はデジタルコンピュータであり、ＣＰＵ、メモリなどの記憶部を備えている。制御装置２０は、第一部品４１および第二部品４２が互いに組付けられた組付物４０の状態を検出する組付物状態検出部２１を含んでいる。組付物状態検出部２１は例えばカメラ、ビジョンセンサからの情報に基づいて、組付物４０の各種の状態を検出する。組付物４０の状態は、組付物４０の寸法、組付物４０における第一部品４１と第二部品４２との間の位置関係（ズレ量含む）、第一部品４１と第二部品４２との間の隙間Ｇ、角度Ａ１、Ａ２、任意の原点からの組付物４０の位置などが含まれる。
【００１８】
さらに、制御装置２０は、部品組付装置１０が第一部品４１と第二部品４２とを互いに組付けるのに要した時間Ｔを計測する時間計測部２２、例えばタイマを含んでいる。時間計測部２２は、ロボット１１、１２が位置および姿勢の指令値によって定まる位置から組付作用を行って前述した位置まで戻るまでの時間を計測する。
【００１９】
さらに、制御装置２０は、第一部品４１と第二部品４２とを互いに組付けるのに要した力の情報を検出する力検出部２３を含んでいる。力検出部２３は、例えばロボット１１、１２に備えられた力センサから所定の制御周期毎に送られる情報に基づいて、第一部品４１および第二部品４２の係合時の圧力などを検出する。
【００２０】
さらに、制御装置２０は、組付物４０の導通試験を実行する導通試験部２４を含んでいる。組付後に組付物４０は導通試験され、第一部品４１と第二部品４２との間に流れる電流および／または抵抗がそれぞれの所定範囲内にある場合には、導通試験は良好であるとされる。この目的のために、第一部品４１および第二部品４２は導電性部材から形成されるのが好ましい。
【００２１】
さらに、制御装置２０は、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢を検出する位置姿勢検出部２５を備えている。位置姿勢検出部２５は、ロボット１１、１２の各軸を駆動するモータに備えられた位置検出器、例えばエンコーダからの情報に基づいて第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢を検出する。
【００２２】
図１に示されるように、制御装置２０はさらに、機械学習装置３０を含んでいる。この機械学習装置３０は、制御装置２０に外付けされていてもよい。その場合には、機械学習装置３０は、制御装置２０および部品組付装置１０と互いに通信可能に接続されるものとする。機械学習装置３０は、ロボット１１、１２のハンドに把持された第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値を決定すると共に、第一部品４１および第二部品４２を互いに組付けるときの方向、速度および力の指令値を決定する（以下、これら指令値をまとめて単に「指令値」と称する場合がある））。これら指令値は、ロボット１１、１２のための動作プログラムに記載されているものとする。
【００２３】
機械学習装置を拡大して示す図４を参照すると、機械学習装置３０は、第一部品４１および第二部品４２が互いに組付けられた組付物４０の状態、第一部品４１と第二部品４２とを互いに組付けるのに要した時間、ならびに第一部品４１と第二部品４２とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、組付物４０の導通試験の結果と、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値のうちの少なくとも一つとから構成される状態変数を観測する状態観測部３１を含んでいる。状態観測部３１は、前述した状態変数を観測された時間と共にメモリなどの記憶部に順次記憶できる。
【００２４】
さらに、機械学習装置３０は、状態観測部３１により観測された組付物４０の状態、第一部品４１と第二部品４２とを互いに組付けるのに要した時間、ならびに第一部品４１と第二部品４２とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、組付物４０の導通試験の結果と、状態観測部３１により観測された組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値のうちの少なくとも一つとを関連付けて学習する学習部３５を含んでいる。
【００２５】
ここで、学習部３５は、教師あり学習、教師なし学習、半教師あり学習、強化学習、トランスダクション、マルチタスク学習など各種の機械学習を行い得る。以下においては、学習部３５はＱ学習（Ｑ−ｌｅａｒｎｉｎｇ）により強化学習を行うものとして説明を続ける。
【００２６】
ここで、図４を参照して分かるように、機械学習装置３０は、強化学習におけるエージェントに相当する。また、組付物状態検出部２１、時間計測部２２、力検出部２３、導通試験部２４および位置姿勢検出部２５は環境の状態を検出する。
【００２７】
強化学習を行う学習部３５は、状態観測部３１により観測された組付物４０の状態、第一部品４１と第二部品４２とを互いに組付けるのに要した時間、ならびに第一部品４１と第二部品４２とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、組付物４０の導通試験の結果とに基づいて報酬を計算する報酬計算部３２と、報酬計算部により計算された報酬に基づいて、現在の状態変数から、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値のうちの少なくとも一つを決定する関数、例えば行動価値関数（行動価値テーブル）を更新する関数更新部３３とを含んでいる。当然のことながら、関数更新部３３が他の関数を更新するようにしてもよい。
【００２８】
さらに、機械学習装置３０は、学習部の学習結果に基づいて、現在の状態変数から、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値のうちの少なくとも一つの最適値を決定する意思決定部３４を含んでいる。意思決定部３４は、より良い行動の選択（意思決定）を学習するものである。なお、意思決定部３４が機械学習装置３０に含まれなくて制御装置２０に含まれていてもよい。
【００２９】
なお、他の実施形態に基づく機械学習装置のブロック図である図５に示されるように、機械学習装置３０が前述した状態観測部３１と学習部３５とのみを含んでもよい。
【００３０】
図６は機械学習器の動作を示すフローチャートである。以下、図１〜図６を参照しつつ、機械学習装置３０の動作について説明する。図６に示される内容は、第一部品４１および第二部品４２を把持したロボット１１、１２が、第一部品４１および第二部品４２を互いに組付けるたびに実施されるものとする。
【００３１】
はじめに、ステップＳ１１において、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値が選択されると共に、第一部品４１および第二部品４２を互いに組付けるときの方向、速度および力の指令値が選択される。これら指令値はそれぞれの所定範囲からランダムに選択される。
【００３２】
あるいは、例えば第一部品４１の位置指令値は所定範囲内の最小値がはじめに選択され、次いで、微少量だけ増加させた値が次のサイクルのときに選択されるようにしてもよい。他の指令値についても同様である。組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値、ならびに、第一部品４１および第二部品４２を互いに組付けるときの方向、速度、力の指令値の全ての組み合わせが選択されるように、図６に示される処理を繰返してもよい。
【００３３】
そして、前述した位置および姿勢の指令値に基づいてロボット１１、１２のうちの少なくとも一方を動作させ、前述した位置および姿勢の指令値によって定まる位置に第一部品４１および第二部品４２を位置決めする。次いで、組付動作の方向、速度および力の指令値に基づいて、第一部品４１および第二部品４２を互いに組付けて組付物４０を作成する。最終的に、前述した位置および姿勢の指令値に基づいて定まる位置にロボット１１、１２を戻す。このとき、ロボット１１、１２のうちの少なくとも一方のハンドは、対応する部品４１、４２を解放しているものとする。なお、組付動作の方向、速度および力の指令値は、ロボット１１、１２の少なくとも一方のみに対して出力される場合もありうる。
【００３４】
次いで、ステップＳ１２においては、組付物状態検出部２１により組付物４０の各種の状態、例えば組付物４０の寸法、組付物４０における第一部品４１と第二部品４２との間の位置関係、第一部品４１と第二部品４２との間の隙間Ｇ、角度Ａ１、Ａ２、任意の原点からの組付物４０の位置が検出され、それぞれの所定の範囲と比較される。
【００３５】
ステップＳ１２において組付物４０の各種の状態がそれぞれの所定の範囲に含まれる場合には、ステップＳ１３において報酬が増える。これに対し、組付物４０の各種の状態がそれぞれの所定の範囲に含まれない場合には、ステップＳ２０ａにおいて報酬が減るかまたはそのままとなる。ステップＳ１２、Ｓ１３、Ｓ２０ａに示される処理は組付物４０の各種の状態ごとに実施されるのが好ましい。
【００３６】
次いで、ステップＳ１４においては、時間計測部２２により、ロボット１１、１２が位置および姿勢の指令値によって定まる位置から組付作用を行って前述した位置まで戻るまでに計測された時間が所定の時間範囲に含まれるか否かが判定される。そして、計測された時間が所定の時間範囲に含まれる場合には、ステップＳ１５において報酬が増え、計測された時間が所定の時間範囲に含まれない場合には、ステップＳ２０ｂにおいて報酬が減るかまたはそのままとなる。
【００３７】
次いで、ステップＳ１６においては、力検出部２３により計測された、組付時の力が所定の力範囲に含まれるか否かが判定される。そして、組付時の力が所定の力範囲に含まれる場合には、ステップＳ１７において報酬が増え、組付時の力が所定の力範囲に含まれない場合には、ステップＳ２０ｃにおいて報酬が減るかまたはそのままとなる。
【００３８】
次いで、ステップＳ１８においては、導通試験部２４により実行された通電試験の結果が良好か否かが判定される。具体的には、通電試験により流された電流および通電試験のときの組付物４０がそれぞれ所定の範囲内にあるか、信号の応答が正常であるかが判定される。そして、通電試験の結果が良好である場合には、ステップＳ１９において報酬が増え、通電試験の結果が良好でない場合には、ステップＳ２０ｄにおいて報酬が減るかまたはそのままとなる。
【００３９】
このような報酬の増減は報酬計算部３２によって算出される。また、報酬の増減の額については、ステップに応じてその値が異なるように設定されていても良い。また、ステップＳ１２、Ｓ１４、Ｓ１６、Ｓ１８のうちの少なくとも一つの判定ステップおよび関連する報酬のステップを省略することもできる。
【００４０】
その後、ステップ２１においては、関数更新部３３が行動価値関数を更新する。ここで、学習部３５が実施するＱ学習は、或る環境状態ｓの下で、行動ａを選択する価値（行動の価値）Ｑ（ｓ、ａ）を学習する方法である。そして、或る状態ｓのときに、Ｑ（ｓ、ａ）の最も高い行動ａを選択する。Ｑ学習では、試行錯誤により、或る状態ｓの下で様々な行動ａをとり、そのときの報酬を用いて正しいＱ（ｓ、ａ）を学習する。行動価値関数Ｑ（ｓ、ａ）の更新式は以下の式（１）で表される。
【００４１】
【数１】
2018103309.tif 000003
ここでｓｔ，ａｔは、時刻ｔにおける環境と行動を表す。行動ａｔにより、環境はｓｔ＋１に変化し、その環境の変化によって、報酬ｒｔ＋１が算出される。また、ｍａｘの付いた項は、環境ｓｔ＋１の下で、最も（その時に分かっている）Ｑ値の高い行動ａを選んだ場合のＱ値にγを掛けたものになる。ここでγは０＜γ≦１（通常は０．９〜０．９９）の割引率であり、αは０＜α≦１（通常は０．１程度）の学習係数である。
【００４２】
この更新式は、状態ｓに於ける行動ａの評価値Ｑ（ｓｔ，ａｔ）よりも、ａによる次の環境状態に於ける最良の行動の評価値Ｑ（ｓｔ＋１，ｍａｘａｔ＋１）の方が大きければ、Ｑ（ｓｔ，ａｔ）を大きくするし、逆に小さければ、Ｑ（ｓｔ，ａｔ）も小さくする事を示している。つまり、或る状態に於ける或る行動の価値を、それによる次の状態に於ける最良の行動の価値に近づけるようにしている。言い換えれば、学習部３５は、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値のうちの少なくとも一つの最適値を更新する。
【００４３】
このようにして、ステップＳ２１においては、前述した式（１）を用いて関数更新部３３が行動価値関数を更新する。そして、ステップＳ１１に戻り、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値が選択されると共に、組付動作の方向、速度および力の指令値が選択され、同様にして行動価値関数が更新される。なお、行動価値関数の代わりに、行動価値テーブルを更新するようにしてもよい。
【００４４】
強化学習においてはエージェントとしての学習部３５が環境の状況に基づいて、行動を決定する。この場合における行動とは、意思決定部３４が、前述した各種の指令値のそれぞれの新たな値を選択し、これら新たな値に従って動作させることである。そして、これら新たな値の各種の指令値によって図４に示される環境、例えば組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値のうちの少なくとも一つが変化する。そのような環境の変化に伴って、前述したように報酬が機械学習装置３０に与えられ、機械学習装置３０の意思決定部３４は、例えばより高い報酬が得られるように、より良い行動の選択（意志決定）を学習する。
【００４５】
このため、図６に示される処理が多数回にわたって繰返し行われることにより、行動価値関数の信頼度が高められる。そして、ステップＳ１１において、信頼性の高い行動価値関数に基づいて、例えばＱ値が高くなるように組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値を選択することによって、より適切な寸法指令値などをより最適に決定することが可能となる。
【００４６】
このようにして、機械学習装置３０の関数更新部３３により更新された内容を、組付動作前における第一部品４１および第二部品４２のうちの少なくとも一方の位置および姿勢の指令値ならびに組付動作の方向、速度および力の指令値として自動的に決定することができる。そして、そのような機械学習装置３０を制御装置２０に導入することによって、前述した指令値を自動的に調整できる。このため、第一部品４１および第二部品４２の寸法バラツキを自動的に吸収できる。それゆえ、部品の寸法バラツキに関わらず、第一部品４１および第二部品４２の組付精度の向上を図ることができる。また、機械学習装置の学習結果に従うことにより、操作者が手動で指令値を与える必要がない。このため、組付時間の短縮を図ることができ、その結果、生産効率を向上させられる。
【００４７】
また、行動価値関数として後述するニューラルネットワークを用いて近似した関数を用いても良い。この場合には、状態観測部３１で観測された状態変数を多層構造で演算して、行動価値関数をリアルタイムで更新してもよい。これにより、さらに適切な学習結果を得られるのが分かるであろう。また、この場合には、画像データなどのように「ｓ」および「ａ」の情報量が莫大であるときに特に有利である。
【００４８】
ここで、図４に示される機械学習装置３０等について、一部重複するものの、詳細に再度説明する。機械学習装置３０は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。その手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。
【００４９】
「教師あり学習」とは、ある入力と結果（ラベル）のデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、即ち、その関係性を帰納的に獲得することができる。本実施形態においては、コイルの前述した各種指令値からコイルの寸法実際値などを推定する部分などに用いることが出来る。後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【００５０】
「教師なし学習」とは、入力データのみを大量に学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。それらのデータセットにある特徴を似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することできる。また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、これは一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。本実施形態においては、実際に部品組付装置１０を動作させなくても取得することが出来るデータを教師なし学習で利用し、学習を効率的に行うことが出来る。
【００５１】
強化学習の問題を以下のように設定する。
・制御装置は環境の状態を観測し、行動を決定する。
・環境は何らかの規則に従って変化し、さらに自分の行動が、環境に変化を与えることもある。
・行動するたびに報酬信号が帰ってくる。
・最大化したいのは将来にわたっての（割引）報酬の合計である。
・行動が引き起こす結果を全く知らない、または不完全にしか知らない状態から学習はスタートする。部品組付装置１０は実際に動作して初めて、その結果をデータとして得ることが出来る。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００５２】
「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、即ち、将来的に得られる報酬を最大にするための学習する方法である。このことは、本実施形態において、未来に影響を及ぼすような行動を獲得できることを表している。例えばＱ学習の場合で説明を続けるが、それに限るものではない。
【００５３】
Ｑ学習は、或る環境状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法である。つまり、或る状態ｓのとき、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェント（行動主体）は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して報酬が与えられる。それにより、エージェントはより良い行動の選択、すなわち正しい価値Ｑ（ｓ，ａ）を学習していく。
【００５４】
行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σγtｒt］となるようにすることを目指す（期待値は最適な行動に従って状態変化したときについてとる。もちろん、それは分かっていないので、探索しながら学習しなければならない）。そのような価値Ｑ（ｓ，ａ）の更新式は、例えば次式により表すことができる（前述した式（１）と同じである）。
【００５５】
【数２】
2018103309.tif 000004
ここで、ｓtは時刻ｔにおける環境の状態を表し、ａtは時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。ｒt+1は、その状態の変化により貰える報酬を表している。また、ｍａｘの付いた項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。γは、０＜γ≦１のパラメータで、割引率と呼ばれる。αは学習係数で、０＜α≦１の範囲とする。
【００５６】
この式は、試行ａtの結果帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）を更新する方法を表している。状態ｓにおける行動ａの評価値Ｑ（ｓt，ａt）よりも、報酬ｒt+1＋行動ａによる次の状態における最良の行動ｍａｘ ａの評価値Ｑ（ｓt+1，ｍａｘ ａt+1）の方が大きければ、Ｑ（ｓt，ａt）を大きくするし、反対に小さければ、Ｑ（ｓt，ａt）も小さくする事を示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【００５７】
Ｑ（ｓ，ａ）の計算機上での表現方法は、すべての状態行動ペア（ｓ，ａ）に対して、その値をテーブル（行動価値テーブル）として保持しておく方法と、Ｑ（ｓ，ａ）を近似するような関数を用意する方法がある。後者の方法では、前述の更新式は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことで実現することが出来る。近似関数としては、後述のニューラルネットワークを用いることが出来る。
【００５８】
教師あり学習、教師なし学習、及び強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。ニューラルネットワークは、たとえば図７に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置及びメモリ等で構成される。図７は、ニューロンのモデルを示す模式図である。
【００５９】
図７に示すように、ニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する出力ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の式により表現される出力ｙを出力する。なお、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。
【００６０】
【数３】
2018103309.tif 000005
ここで、θはバイアスであり、ｆkは活性化関数である。
【００６１】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図８を参照して説明する。図８は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【００６２】
図８に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００６３】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてｗ１と標記されている。
【００６４】
ニューロンＮ１１〜Ｎ１３は、それぞれ、ｚ１１〜ｚ１３を出力する。これらのｚ１１〜ｚ１３はまとめて特徴ベクトルｚ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴ベクトルである。
【００６５】
ｚ１１〜ｚ１３は、２つのニューロンＮ２１、Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ２と標記されている。
【００６６】
ニューロンＮ２１、Ｎ２２は、それぞれ、ｚ２１、ｚ２２を出力する。これらは、まとめて特徴ベクトルｚ２と標記されている。この特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴ベクトルである。
【００６７】
特徴ベクトルｚ２１、ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ３と標記されている。
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００６８】
ニューラルネットワークの動作には、学習モードと価値予測モードとがあり、学習モードにおいて学習データセットを用いて重みｗを学習し、そのパラメータを用いて予測モードにおいて部品組付装置１０の行動判断を行う（便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能である）。
【００６９】
予測モードで実際に部品組付装置１０を動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００７０】
重みｗ１〜ｗ３は、誤差逆伝搬法（バックプロパゲーション）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００７１】
このようなニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【００７２】
そこで、本実施形態の機械学習装置３０は、上述のＱ学習を実施すべく、図４に示されるように状態観測部３１、学習部３５、および意思決定部３４を備えている。但し、本実施形態に適用される機械学習方法は、Ｑ学習に限定されるものではない。たとえば教師あり学習を適用する場合、価値関数は学習モデル、報酬は誤差に対応する。
【００７３】
ところで、図９はさらに他の実施形態に基づく複数の部品組付システムを示す図である。図９には、複数の部品組付システム１、１ａ〜１ｎが示されている。部品組付システム１、１ａ〜１ｎは機械学習装置３０、３０ａ〜３０ｎをそれぞれ含んでおり、各機械学習装置３０、３０ａ〜３０ｎは前述したのと同様に状態観測部３１、３１ａ〜３１ｎなどをそれぞれ含んでいる。図９から分かるように、これら部品組付システム１、１ａ〜１ｎは通信部６０により互いに接続されている。通信部６０はネットワークであり、有線または無線のいずれであってもよい。
【００７４】
機械学習を繰返し実施することによって、部品組付システム１の状態観測部３１には各種の指令値が記憶されている。同様に、部品組付システム１の各機械学習装置３０は、機学習結果（関数など）が記憶されている。
【００７５】
従って、例えば他の部品組付システム１ａの機械学習装置３０ａが機械学習を行っていない場合であっても、部品組付システム１の指令値および学習結果を通信部６０に通して他の部品組付システム１ａの状態観測部３１ａ等に組入れることができる。従って、部品組付システム１ａの機械学習装置３０ａが機械学習を実際に行うことなしに、信頼性の高い学習結果などを利用することができる。別の部品組付システム１ｎ等についても同様である。
【００７６】
さらに、図９には記憶部５１を備えた上位コンピュータ５０、例えばサーバが通信部６０に有線または無線により接続されている。なお、上位コンピュータ５０は例えば一つのアーク溶接ロボットシステム５に直接的に接続されていてもよい。
【００７７】
そして、部品組付システム１の状態観測部３１に記憶された指令値および学習結果などを通信部６０に通して上位コンピュータ５０の記憶部５１に記憶させてもよい。この場合には、他の部品組付システム１ａは、上位コンピュータ５０の記憶部５１にアクセスして、前述した指令値および学習結果などを各機械学習装置３０に組入れる。つまり、一つの部品組付システム１が一時的にネットワークから外れている場合であっても、他の部品組付システム１ａは前述した指令値および学習結果などを取得できるのが分かるであろう。
【００７８】
なお、図３Ａおよび図３Ｂを参照して説明したように、第一部品４１がコネクタであると共に第二部品４２がピンである場合には、組付物４０の状態は、ピン４２のコネクタ４１の端面からの突出量、貫通孔４５とピン４２との間の位置関係を含みうる。そして、図６のステップＳ１２において、突出量などが所定の範囲と比較され、同様に処理されるものとする。
【００７９】
また、図１０Ａはさらに他の例における第一部品および第二部品の側面図であり、図１０Ｂは図１０Ａの頂面図である。これら図面には、ネジ山付きの貫通孔が形成されたプレート４１ａ、４１ｂが示されている。そして、これら貫通孔にネジ４２が螺合されることにより、組付物４０が作成されている。
【００８０】
この場合には、互いに重ね合わされた状態で把持された二つのプレート４１ａ、４１ｂが第一部品４１であり、ロボット１１に把持される。そして、第二部品４２であるネジ４２が他の作業機械またはロボット１２により螺合されるものとする。
【００８１】
この実施形態においては、二つのプレート４１ａ、４１ｂからなる第一部品４１を組付動作の前に例えばカメラ、ビジョンセンサによって、プレート４１ａ、４１ｂの間の位置関係（ズレ量含む）、貫通孔とネジ４２との間の位置関係、隙間Ｇ、ネジ４２の突出量Ｂ、任意の原点からの組付物４０の位置などを検出し、これらを状態観測部３１に入力し、前述したように学習部３５に学習させてもよい。さらに、前述した力の情報には、ネジ４２を螺合するときのトルクが含まれ、図６のステップＳ１６においてトルクが所定のトルク範囲と比較され、同様に処理されるものとする。
【００８２】
このように、第一部品４１および第二部品４２は図面に示されるものに限定されず、第一部品４１および第二部品４２は互いに係合可能な種々の部品を含みうる。そして、このような場合も本発明の範囲に含まれるものとする。
【００８３】
本開示の態様
１番目の態様によれば、少なくとも一つの作業機械（１１、１２）が第一部品（４１）と第二部品（４２）とを互いに組付けて組付物（４０）を作成する組付動作を学習する機械学習装置（３０）であって、前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果と、前記組付動作前における前記第一部品および前記第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとから構成される状態変数を観測する状態観測部（３１）と、前記状態観測部により観測された前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果と、前記状態観測部により観測された前記組付動作前における前記第一部品および前記第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つとを関連付けて学習する学習部（３５）とを具備する機械学習装置が提供される。
２番目の態様によれば、１番目の態様において、前記学習部は、前記状態観測部により観測された前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報のうちの少なくとも一つと、前記組付物の導通試験の結果とに基づいて報酬を計算する報酬計算部（３２）と、該報酬計算部により計算された報酬に基づいて、現在の前記状態変数から、前記組付動作前における前記第一部品および第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つを決定する関数を更新する関数更新部（３３）とを含む。
３番目の態様によれば、１番目または２番目の態様において、前記学習部の学習結果に基づいて、現在の前記状態変数から、前記組付動作前における前記第一部品および第二部品のうちの少なくとも一方の位置および姿勢の指令値ならびに前記組付動作の方向、速度および力の指令値のうちの少なくとも一つの最適値を決定する意思決定部（３４）を具備する。
４番目の態様によれば、１番目から３番目のいずれかの態様において、前記報酬計算部は、前記状態観測部により観測された前記組付物の状態、前記第一部品と前記第二部品とを互いに組付けるのに要した時間、ならびに前記第一部品と前記第二部品とを互いに組付けるのに要した力の情報がそれぞれの許容範囲以内であるときには報酬を増やし、前記許容範囲以外であるときは報酬を減らし、さらに、前記報酬計算部は、前記組付物の導通試験の結果が良好であるときには報酬を増やし、結果が良好でないときは報酬を減らすようにした。
５番目の態様によれば、１番目から４番目のいずれかの態様において、前記学習部が、前記状態観測部で観測された状態変数を多層構造で演算し、前記関数をリアルタイムで更新する。
６番目の態様によれば、１番目から５番目のいずれかの態様において、他の機械学習装置の関数更新部により更新された関数を用いて、前記関数更新部の前記関数を更新する。
７番目の態様によれば、１番目から６番目のいずれかの機械学習装置を具備する部品組付システム（１）が提供される。
【００８４】
態様の効果
１番目から３番目の態様においては、組付前における第一部品および第二部品のそれぞれのより最適な位置および姿勢を自動的に決定して、部品の組付精度の向上と組付時間の短縮を図ることができる。
４番目の態様においては、報酬をより適切に定めることができる。
５番目の態様においては、適切な学習結果を得ることができる。
６番目の態様においては、或る機械学習装置で得られた学習結果を他の機械学習装置に組み入れることができ、信頼性の高い学習結果などを流用できる。
７番目の態様においては、第一部品および第二部品の寸法バラつきを自動的に吸収できる。また、機械学習装置の学習結果に従うことにより、操作者が部品の位置などを手動で調整する必要がない。このため、第一部品および第二部品の組付時間を短縮できる。
【００８５】
典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、前述した変更および種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【符号の説明】
【００８６】
１    部品組付システム
１０    部品組付装置
１１、１２    ロボット（作業機械）
２０    制御装置
２１    組付物状態検出部
２２    時間計測部
２３    力検出部
２４    導通試験部
２５    位置姿勢検出部
３０、３０ａ〜３０ｎ    機械学習装置
３１    状態観測部
３２    報酬計算部
３３    関数更新部
３４    意思決定部
３５    学習部
４０    組付物
４１    第一部品
４２    第二部品
５０    上位コンピュータ
５１    記憶部
６０    通信部
【図１】
2018103309.tif 000006
【図２Ａ】
2018103309.tif 000007
【図２Ｂ】
2018103309.tif 000008
【図３Ａ】
2018103309.tif 000009
【図３Ｂ】
2018103309.tif 000010
【図４】
2018103309.tif 000011
【図５】
2018103309.tif 000012
【図６】
2018103309.tif 000013
【図７】
2018103309.tif 000014
【図８】
2018103309.tif 000015
【図９】
2018103309.tif 000016
【図１０Ａ】
2018103309.tif 000017
【図１０Ｂ】
2018103309.tif 000018