(57)【要約】【課題】製品の組立作業における部品配膳場所の最適な部品の配置を決定できる制御装置及び機械学習装置を提供すること。【解決手段】本発明の制御装置１が備える機械学習装置１００は、部品配膳場所における部品の配置を示す部品配置データ、部品の情報を示す部品データ、及び作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部１０６と、部品の配置に基づいて組み立てられた製品の品質を判定する製品品質判定データ、及び製品の組み立てのタクトタイムを判定するタクトタイム判定データを、判定データとして取得する判定データ取得部１０８と、状態変数と判定データとを用いて、製品の組み立てに用いる部品の情報及び作業者のステータス情報と、部品配膳場所における部品の配置を関連付けて学習する学習部１１０と、を備える。【選択図】図２
2019136818.tif 000002
【特許請求の範囲】
【請求項１】
配膳ロボットによる部品配膳場所における部品の配置を指令する制御装置であって、
前記配膳ロボットによる前記部品配膳場所における部品配置を学習する機械学習装置を備え、
前記機械学習装置は、
前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記部品の配置に基づいて組み立てられた前記製品の品質を判定する製品品質判定データ、及び前記製品の組み立てのタクトタイムを判定するタクトタイム判定データを、前記作業者による製品の組み立ての適否判定結果を示す判定データとして取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習する学習部と、
を備える制御装置。
【請求項２】
前記学習部は、
前記適否判定結果に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報に対する前記部品配膳場所における前記部品の配置の価値を表す関数を更新する価値関数更新部と、
を備え、
前記報酬計算部は、前記製品の品質が高いほど、及び前記タクトタイムが短いほど高い報酬を与える、
請求項１に記載の制御装置。
【請求項３】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算する、
請求項１または２に記載の制御装置。
【請求項４】
配膳ロボットによる部品配膳場所における部品の配置を指令する制御装置であって、
前記配膳ロボットによる前記部品配膳場所における部品配置を学習した機械学習装置を備え、
前記機械学習装置は、
前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習した学習部と、
前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、前記部品配膳場所における前記部品の配置を決定する意思決定部と、
を備える制御装置。
【請求項５】
前記機械学習装置は、クラウドサーバに存在する、
請求項１〜４のいずれか１つに記載の制御装置。
【請求項６】
配膳ロボットによる部品配膳場所における部品の配置を学習する機械学習装置であって、
前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記部品の配置に基づいて組み立てられた前記製品の品質を判定する製品品質判定データ、及び前記製品の組み立てのタクトタイムを判定するタクトタイム判定データを、前記作業者による製品の組み立ての適否判定結果を示す判定データとして取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習する学習部と、
を備える機械学習装置。
【請求項７】
配膳ロボットによる部品配膳場所における部品の配置を学習した機械学習装置であって、
前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習した学習部と、
前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、前記部品配膳場所における前記部品の配置を決定する意思決定部と、
を備える機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び機械学習装置に関し、特に配膳ロボットの制御装置及び機械学習装置に関する。
【背景技術】
【０００２】
配膳ロボットは、製品の組立工程の前工程において、装置等の組立てに必要な部品を部品倉庫等から運び出して、組立作業が行い易いように組立作業を行う作業者乃至組立ロボットの近くに集約して配膳するロボットである。配膳ロボットは、予めプログラムされた所定の配置でそれぞれの部品を配膳する。
【０００３】
配膳ロボットに関する従来技術として、例えば特許文献１には、車体の組立に用いられる部品を定められた位置へと搬送する部品供給ロボットが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−０４７３２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
工場環境では製品の組立作業が作業者乃至組立ロボットにより行われるが、一つのラインの組立作業が必ずしも特定の作業者乃至特定の組立ロボットにより行われるわけではない。作業者乃至組立ロボットが代わると部品の配膳場所に対する最適な部品の配置は変わると考えられる。また、作業者が変わらない場合でも、長時間作業を行う中で疲れにより作業者のパフォーマンス（最適だと感じる部品配置）は変化していく。
【０００６】
そこで本発明の目的は、製品の組立作業における部品配膳場所の最適な部品の配置を決定できる制御装置及び機械学習装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一態様は、配膳ロボットによる部品配膳場所における部品の配置を指令する制御装置であって、前記配膳ロボットによる前記部品配膳場所における部品配置を学習する機械学習装置を備え、前記機械学習装置は、前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、前記部品の配置に基づいて組み立てられた前記製品の品質を判定する製品品質判定データ、及び前記製品の組み立てのタクトタイムを判定するタクトタイム判定データを、前記作業者による製品の組み立ての適否判定結果を示す判定データとして取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習する学習部と、を備える制御装置である。
【０００８】
本発明の他の態様は、配膳ロボットによる部品配膳場所における部品の配置を指令する制御装置であって、前記配膳ロボットによる前記部品配膳場所における部品配置を学習した機械学習装置を備え、前記機械学習装置は、前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習した学習部と、前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、前記部品配膳場所における前記部品の配置を決定する意思決定部と、を備える制御装置である。
【０００９】
本発明の他の態様は、配膳ロボットによる部品配膳場所における部品の配置を学習する機械学習装置であって、前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、前記部品の配置に基づいて組み立てられた前記製品の品質を判定する製品品質判定データ、及び前記製品の組み立てのタクトタイムを判定するタクトタイム判定データを、前記作業者による製品の組み立ての適否判定結果を示す判定データとして取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習する学習部と、を備える機械学習装置である。
【００１０】
本発明の他の態様は、配膳ロボットによる部品配膳場所における部品の配置を学習した機械学習装置であって、前記部品配膳場所における前記部品の配置を示す部品配置データ、前記部品の情報を示す部品データ、及び前記部品から製品を組み立てる作業者のステータス情報を示す業者ステータスデータを、環境の現在状態を表す状態変数として観測する状態観測部と、前記製品の組み立てに用いる前記部品の情報及び前記作業者のステータス情報と、前記部品配膳場所における前記部品の配置を関連付けて学習した学習部と、前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、前記部品配膳場所における前記部品の配置を決定する意思決定部と、を備える機械学習装置である。
【発明の効果】
【００１１】
本発明により、作業者の常態に合わせて適切な配置での組み立て部品の配膳が行われるため、組立作業のタクトタイムの短縮と作業者の負担の軽減を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態による制御装置の概略的なハードウェア構成図である。
【図２】第１の実施形態による制御装置の概略的な機能ブロック図である。
【図３】部品配置データＳ１の例を示す図である。
【図４】制御装置の一形態を示す概略的な機能ブロック図である。
【図５】機械学習方法の一形態を示す概略的なフローチャートである。
【図６Ａ】ニューロンを説明する図である。
【図６Ｂ】ニューラルネットワークを説明する図である。
【図７】制御装置を組み込んだシステムの一形態を示す概略的な機能ブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面と共に説明する。
図１は第１の実施形態による制御装置の要部を示す概略的なハードウェア構成図である。制御装置１は、例えば配膳ロボットを制御する制御装置として実装することができる。また、制御装置１は、例えば配膳ロボット２を制御する制御装置に併設されたパソコンや、制御装置に有線／無線のネットワークを介して接続されたセルコンピュータ、ホストコンピュータ、エッジサーバ、クラウドサーバ等のコンピュータとして実装することができる。本実施形態では、制御装置１を、配膳ロボット２を制御する制御装置として実装した場合の例を示す。
【００１４】
本実施形態による制御装置１が備えるＣＰＵ１１は、制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って制御装置１の全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
【００１５】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、外部から読み込まれたプログラムやデータ、制御装置１の各部や配膳ロボット２、センサ３、入力装置４から取得された各種データ（例えば、配膳ロボットの位置、部品の配膳場所の部品配置、作業者の動作、製品の品質情報、作業者のステータス等）が記憶されている。不揮発性メモリ１４に記憶されたプログラムや各種データは、実行時／利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、公知の解析プログラムなどの各種のシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）があらかじめ書き込まれている。
【００１６】
配膳ロボット２は、インタフェース１７を介して制御装置１と接続されており、制御装置１からの指令に基づいて動作する。制御装置１は、配膳ロボット２の動作に係る各データをインタフェース１７を介して取得する。
また、制御装置１は、インタフェース１８を介してセンサ３が検出した検出値を取得する。制御装置１には、必要に応じて複数のセンサ３が接続される。センサ３は、例えば部品の配膳場所や作業者の動作を撮像する撮像装置等が例示される。
【００１７】
インタフェース１９は、キーボードやポインティングデバイス等の入力装置４からの入力を受け付けて、入力されたデータをＣＰＵ１１へと渡す。入力装置４からは、作業者が組み立てた製品の品質情報、作業者のステータス等が入力される。
【００１８】
インタフェース２１は、制御装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、機械学習装置１００全体を統御するプロセッサ１０１と、システム・プログラム等を記憶したＲＯＭ１０２、機械学習に係る各処理における一時的な記憶を行うためのＲＡＭ１０３、及び学習モデル等の記憶に用いられる不揮発性メモリ１０４を備える。機械学習装置１００は、インタフェース２１を介して制御装置１で取得可能な各情報（例えば、配膳ロボットの位置、部品の配膳場所の部品配置、作業者の動作、製品の品質情報、作業者のステータス等）を観測することができる。また、制御装置１は、機械学習装置１００から出力される部品配膳場所における部品配置を受けて、配膳ロボットの動作を制御する。
【００１９】
図２は、第１の実施形態による制御装置１と機械学習装置１００の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した制御装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、制御装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００２０】
本実施形態の制御装置１は、機械学習装置１００から出力された部品配膳場所における部品配置に基づいて配膳ロボット２を制御する制御部３４を備える。制御部３４は、一般にプログラム等により指定された配膳ロボット２の部品配膳指令に従ってロボットの動作を制御するが、その際に、機械学習装置１００から部品配膳場所における部品配置が出力されると、前記プログラム等により指令された部品配膳場所における部品配置に代えて、機械学習装置１００から出力された部品配膳場所における部品配置となるように配膳ロボット２を制御する。
【００２１】
一方、制御装置１が備える機械学習装置１００は、製品の組み立てに用いる部品の情報及び作業者のステータス情報に対する部品配膳場所における部品配置を、いわゆる機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ１０１等）を含む。制御装置１が備える機械学習装置１００が学習するものは、製品の組み立てに用いる部品の情報及び作業者のステータス情報と、部品配膳場所における部品配置との、相関性を表すモデル構造に相当する。
【００２２】
図２に機能ブロックで示すように、制御装置１が備える機械学習装置１００は、部品配膳場所における部品配置を示す部品配置データＳ１、製品の組み立てに用いる部品の情報を示す部品データＳ２、及び作業者のステータス情報を示す作業者ステータスデータＳ３を含む環境の現在状態を表す状態変数Ｓとして観測する状態観測部１０６と、決定された部品配膳場所における部品配置に基づいて作業者が組み立てた製品の品質を判定するための製品品質判定データＤ１及び作業者の組立作業のタクトタイムを判定するためのタクトタイム判定データＤ２を含む判定データＤを取得する判定データ取得部１０８と、状態変数Ｓと判定データＤとを用いて、製品の組み立てに用いる部品の情報及び作業者のステータス情報と、部品配膳場所における部品配置を関連付けて学習する学習部１１０とを備える。
【００２３】
状態観測部１０６が観測する状態変数Ｓのうち、部品配置データＳ１は、部品配膳場所における部品配置として取得することができる。部品配膳場所における部品配置は、例えば配膳ロボット２に対する部品配膳指令から取得することができる。また、部品配膳場所における部品配置、センサ３から取得した部品配膳場所の画像を解析することにより取得することができる。
【００２４】
部品配置データＳ１は、例えば部品配膳場所における部品配置の配列として定義することができる。図３は、部品配置データＳ１の例を示す図である。図３の例では、部品配膳場所を複数の部分エリアに分割してそれぞれの部分エリアに配置するべき部品を定め、該部分エリアを２次元配列データとして定義することで、部品配膳場所における部品配置をデータ化するものである。それぞれの部品には当該部品を一意に識別可能な識別番号を付与して管理し、複数の部分エリアにまたがる大きな部品については部品Ｂ−１，部品Ｂ−２等といったように識別番号の後ろに連番を付与して表現するようにすれば良い。
【００２５】
部品配置データＳ１は、機械学習装置１００が学習部１１０の学習結果に基づいて１つ前の学習周期における製品の組み立てに用いる部品の情報及び作業者のステータス情報に対して、当該学習周期において決定した部品配膳場所における部品配置をそのまま用いることができる。このような手法を取る場合には、機械学習装置１００は部品配膳場所における部品配置を学習周期毎にＲＡＭ１０３に一時的に記憶しておき、状態観測部１０６は、ＲＡＭ１０３から１つ前の学習周期における部品配膳場所における部品配置を今回の学習周期の部品配置データＳ１として取得するようにしても良い。
【００２６】
状態観測部１０６が観測する状態変数Ｓのうち、部品データＳ２は、配膳ロボット２の制御に用いられるプログラムから取得された又は入力装置４から入力された、部品配膳場所に配置されるそれぞれの部品の形状や寸法、重量、組み立てに使用する順序等の配列データとして取得することができる。製品の組み立てに用いる部品のそれぞれには、該部品を一意に識別可能な識別番号を付与して管理する。
【００２７】
状態観測部１０６が観測する状態変数Ｓのうち、作業者ステータスデータＳ３は、作業者のステータス情報として取得することができる。作業者のステータス情報は、作業者の年齢、作業者の利き腕、作業者の体格、作業者の熟練度、作業者の性別等の情報を配列かしたデータとして用いることができる。また、必要に応じて作業者のステータス情報として、作業者の疲労度（作業者にセンサを装着して測定しても良いし、作業開始から経過した時間で代替しても良い）を用いるようにしても良い。これらの各情報は、所定の範囲に対して１つの数値をラベリングし、その数値を入力データとして扱うようにしても良い。例えば、作業者の体格を、身長１４０ｃｍ以上１６０ｃｍ未満を１、１６０ｃｍ以上１７０ｃｍ未満を２、身長１７０ｃｍ以上を３、等のように数値化して扱うようにしても良い。
【００２８】
判定データ取得部１０８は、製品品質判定データＤ１として、決定された部品配膳場所における部品配置に基づいて作業者が組み立てた製品の品質の判定結果を用いることができる。判定データ取得部１０８が用いる製品品質判定データＤ１としては、例えば決定された部品配膳場所における部品配置に基づいて実際に作業者が組み立てた製品が良品であるか（適）、不良品であるか（否）といったような、適宜設定された判定基準により判定された結果を用いれば良い。判定基準には、部品の組み付けのズレや、部品の組み付け間違い、ねじ止め忘れ、部品の紛失等が例示される。
【００２９】
また、判定データ取得部１０８は、タクトタイム判定データＤ２として、決定された部品配膳場所における部品配置に基づいて行われる作業者の組立作業のタクトタイムの判定結果を用いることができる。判定データ取得部１０８が用いるタクトタイム判定データＤ２としては、例えば決定された部品配膳場所における部品配置に基づいて実際に作業者が製品の組み立てに掛けた時間が、予め定めた所定の閾値よりも短いか（適）、長いか（否）といったような、適宜設定された判定基準により判定された結果を用いれば良い。
【００３０】
なお、判定データ取得部１０８は、学習部１１０による学習の段階では必須の構成となるが、学習部１１０による製品の組み立てに用いる部品の情報及び作業者のステータス情報と部品配膳場所における部品配置とを関連付けた学習が完了した後には必ずしも必須の構成ではない。例えば、学習が完了した機械学習装置１００を顧客に出荷する場合等には、判定データ取得部１０８を取り外して出荷するようにしても良い。
【００３１】
学習部１１０に対して同時に入力される状態変数Ｓは、学習部１１０による学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。このように、制御装置１が備える機械学習装置１００が学習を進める間、環境においては、部品データＳ２及び作業者ステータスデータＳ３の取得、取得した各データに基づいて決定された部品配置データＳ１に基づいた配膳ロボット２による部品の配膳、判定データＤの取得が繰り返し実施される。
【００３２】
学習部１１０は、機械学習と総称される任意の学習アルゴリズムに従い、製品の組み立てに用いる部品の情報及び作業者のステータス情報に対する、部品配膳場所における部品配置を学習する。学習部１１０は、前述した状態変数Ｓと判定データＤとを含むデータ集合に基づく学習を反復実行することができる。製品の組み立てに用いる部品の情報及び作業者のステータス情報に対する、部品配膳場所における部品配置の学習サイクルの反復中、状態変数Ｓは、上記したように１学習周期前における製品の組み立てに用いる部品の情報及び作業者のステータス情報、及び１学習周期前において決定された部品配膳場所における部品配置から取得し、また判定データＤは、決定された部品配膳場所における部品配置に基づいて作業者が組み立てた製品の品質の適否判定結果とする。
【００３３】
このような学習サイクルを繰り返すことにより、学習部１１０は、製品の組み立てに用いる部品の情報及び作業者のステータス情報と、部品配膳場所における部品配置との相関性を暗示する特徴を識別することができるようになる。学習アルゴリズムの開始時には製品の組み立てに用いる部品の情報及び作業者のステータス情報と、部品配膳場所における部品配置の相関性は実質的に未知であるが、学習部１１０は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。製品の組み立てに用いる部品の情報及び作業者のステータス情報と、部品配膳場所における部品配置との相関性が、ある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態（つまり製品の組み立てに用いる部品の情報及び作業者のステータス情報）に対して、部品配膳場所における部品配置をどう決定するべきかという行動の選択（つまり意思決定）を行うために使用できるものとなる。つまり学習部１１０は、学習アルゴリズムの進行に伴い、製品の組み立てに用いる部品の情報及び作業者のステータス情報に対して部品配膳場所における部品配置をどのように設定するべきかという行動との、相関性を最適解に徐々に近づけることができる。
【００３４】
意思決定部１２２は、学習部１１０が学習した結果に基づいて、部品配膳場所における部品配置を決定し、決定した部品配膳場所における部品配置を制御部３４へと出力する。意思決定部１２２は、学習部１１０による学習が完了した状態において、機械学習装置１００に製品の組み立てに用いる部品の情報及び作業者のステータス情報が入力されると、部品配膳場所における部品配置を出力する。意思決定部１２２は、状態変数Ｓと学習部１１０が学習した結果に基づいて、適切な部品配膳場所における部品配置を決定する。
【００３５】
上記したように、制御装置１が備える機械学習装置１００は、状態観測部１０６が観測した状態変数Ｓと判定データ取得部１０８が取得した判定データＤとを用いて、学習部１１０が機械学習アルゴリズムに従い、製品の組み立てに用いる部品の情報及び作業者のステータス情報に対する部品配膳場所における部品配置を学習するものである。状態変数Ｓは、部品配置データＳ１、部品データＳ２、及び作業者ステータスデータＳ３といったデータで構成され、また判定データＤは、制御装置１が配膳ロボット２から取得した情報を解析することで一義的に求められる。したがって、制御装置１が備える機械学習装置１００によれば、学習部１１０の学習結果を用いることで、製品の組み立てに用いる部品の情報及び作業者のステータス情報に応じた、部品配膳場所における部品配置を、自動的かつ正確に行うことが可能となる。
【００３６】
そして、部品配膳場所における部品配置の決定を、自動的に行うことができれば、製品の組み立てに用いる部品の情報（部品データＳ２）及び作業者のステータス情報（作業者ステータスデータＳ３）を把握するだけで、部品配膳場所における部品配置の適切な値を迅速に決定することができる。したがって、部品配膳場所における部品配置の決定を効率よく行うことができる。
【００３７】
本実施形態の制御装置１が備える機械学習装置１００の一変形例として、判定データ取得部１０８は、製品品質判定データＤ１、及びタクトタイム判定データＤ２加えて、更に作業者の動作を示す作業者動作判定データＤ３を判定データＤとして取得するようにしても良い。作業者動作判定データＤ３は、作業者が製品の組立作業を行っている最中に取得した作業者の動作（撮像装置としてのセンサ３等で検出する）に基づいて、部品を取る際に無理な体勢をしているか（否）等といったような、適宜設定された判定基準により判定された結果を用いれば良い。また、この時、いずれの部品を取る際の動作であるのかも判定データの一つとして取得すると好適である。
【００３８】
上記変形例によれば、機械学習装置１００は、作業者動作判定データＤ３により作業者に対して無理な体勢を強いる部品配置に対して低い評価をすることにより、そのような部品配置を取らないように学習部１１０を学習させることができる。また、特定の部品を取る際に無理な体勢をしていることが把握される場合には、次の学習周期において当該部品の配置を変更した部品配置を提案するなどといったように、局所的な部品配置の変更を優先して試行することで効率的な学習プロセスを進めることが期待できる。
【００３９】
上記構成を有する機械学習装置１００では、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図４は、図２に示す制御装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１１０を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本願の機械学習装置では部品配膳場所における部品配置）を最適解として学習する手法である。
【００４０】
図３に示す制御装置１が備える機械学習装置１００において、学習部１１０は、状態変数Ｓに基づいて部品配膳場所における部品配置の決定がされ、決定された部品配膳場所における部品配置に基づく配膳ロボット２による部品配置が為された場合における作業者の製品の組み立ての適否判定結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める報酬計算部１１２と、報酬Ｒを用いて、部品配膳場所における部品配置の価値を表す関数Ｑを更新する価値関数更新部１１４とを備える。学習部１１０は、価値関数更新部１１４が関数Ｑの更新を繰り返すことによって製品の組み立てに用いる部品の情報及び作業者のステータス情報に対する部品配膳場所における部品配置を学習する。
【００４１】
学習部１１０が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００４２】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓt及びａtはそれぞれ時刻ｔにおける状態及び行動であり、行動ａtにより状態はｓt+1に変化する。ｒt+1は、状態がｓtからｓt+1に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００４３】
【数１】
2019136818.tif 000003
【００４４】
学習部１１０がＱ学習を実行する場合、状態観測部１０６が観測した状態変数Ｓ及び判定データ取得部１０８が取得した判定データＤは、更新式の状態ｓに該当し、現在状態（つまり、製品の組み立てに用いる部品の情報及び作業者のステータス情報）に対する部品配膳場所における部品配置をどのように決定するべきかという行動は、更新式の行動ａに該当し、報酬計算部１１２が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１４は、現在状態に対する部品配膳場所における部品配置の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００４５】
報酬計算部１１２が求める報酬Ｒは、例えば、部品配膳場所における部品配置を決定した後に、決定された部品配膳場所における部品配置に基づく作業者の製品の組み立ての適否判定結果が「適」と判定される場合（例えば、作業者が組み立てた製品の品質が良品だった場合、作業者組立作業のタクトタイムが予め定めた閾値や、１つ前の学習周期におけるタクトタイムよりも短かった場合等）に正（プラス）の報酬Ｒとし、部品配膳場所における部品配置を決定した後に、決定された部品配膳場所における部品配置に基づく作業者の製品の組み立ての適否判定結果が「適」と判定される場合（例えば、作業者が組み立てた製品の品質が不良品だった場合、作業者組立作業のタクトタイムが予め定めた閾値や、１つ前の学習周期におけるタクトタイムよりも長かった場合等）に負（マイナス）の報酬Ｒとすることができる。正負の報酬Ｒの絶対値は、互いに同一であっても良いし異なっていても良い。また、判定の条件として、判定データＤに含まれる複数の値を組み合わせて判定するようにしても良い。
【００４６】
また、設定された部品配膳場所における部品配置に基づく作業者の製品の組み立ての適否判定結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例として、作業者の組立作業のタクトタイムの閾値がＴmaxである場合、作業者の組立作業のタクトタイムＴが、０≦Ｔ＜Ｔmax／５のときは報酬Ｒ＝５を与え、Ｔmax／５≦Ｔ＜Ｔmax／２のときは報酬Ｒ＝３を与え、Ｔmax／２≦Ｔ＜Ｔmaxのときは報酬Ｒ＝１を、Ｔmax≦Ｔのときは報酬Ｒ＝−３（マイナスの報酬）を与えるような構成とすることができる。
【００４７】
更に、学習の初期段階は判定に用いる閾値を比較的大きく設定し、学習が進行するにつれて判定に用いる閾値を縮小する構成とすることもできる。
【００４８】
価値関数更新部１１４は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１４が関数Ｑを更新するという行為は、価値関数更新部１１４が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には環境の現在状態と部品配膳場所における部品配置との相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。なお報酬計算部１１２は、判定データＤが分かれば、これに対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００４９】
配膳ロボット２の動作の適否判定結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動（本発明の場合、作業者の製品の組み立てに問題が生じないように部品配膳場所における部品配置を決定する行動）であるほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態（製品の組み立てに用いる部品の情報及び作業者のステータス情報）とそれに対する行動（部品配膳場所における部品配置）との相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、製品の組み立てに用いる部品の情報及び作業者のステータス情報と、部品配膳場所における部品配置との関係が最適解に徐々に近づけられる。
【００５０】
図５を参照して、学習部１１０が実行する上記したＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。まずステップＳＡ０１で、価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動として部品配膳場所における部品配置を無作為に選択する。次に価値関数更新部１１４は、ステップＳＡ０２で、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込み、ステップＳＡ０３で、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。次に価値関数更新部１１４は、ステップＳＡ０４で、判定データＤに基づき、部品配膳場所における部品配置が適当であったか否かを判断し、適当であった場合、ステップＳＡ０５で、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。ステップＳＡ０４で、部品配膳場所における部品配置が適当でなかったと判断した場合、ステップＳＡ０７で、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。学習部１１０は、ステップＳＡ０１〜ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、部品配膳場所における部品配置の学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００５１】
前述した強化学習を進める際に、例えばニューラルネットワークを応用することができる。図６Ａは、ニューロンのモデルを模式的に示す。図６Ｂは、図６Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００５２】
図６Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００５３】
【数２】
2019136818.tif 000004
【００５４】
図６Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００５５】
図６Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００５６】
図６Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００５７】
制御装置１が備える機械学習装置１００においては、ニューラルネットワークをＱ学習における価値関数として用い、状態変数Ｓと行動ａとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、当該状態における当該行動の価値（結果ｙ）を出力することもできる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００５８】
上記した制御装置１の構成は、プロセッサ１０１が実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、部品配膳場所における部品配置を学習する機械学習方法であって、コンピュータのＣＰＵが、部品配置データＳ１、部品データＳ２、及び作業者ステータスデータＳ３を、配膳ロボット２が動作する環境の現在状態を表す状態変数Ｓとして観測するステップと、決定された部品配膳場所における部品配置に基づく作業者による製品の組み立ての適否判定結果を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、部品データＳ２、作業者ステータスデータＳ３と、部品配膳場所における部品配置とを関連付けて学習するステップとを有する。
【００５９】
図７は、制御装置１を備えた第３の実施形態によるシステム１７０を示す。システム１７０は、セルコンピュータやホストコンピュータ、クラウドサーバ等のコンピュータの一部として実装された少なくとも１台の制御装置１と、制御の対象となる複数の配膳ロボット２と、制御装置１、配膳ロボット２を互いに接続する有線／無線のネットワーク１７２とを備える。
【００６０】
上記構成を有するシステム１７０は、機械学習装置１００を備える制御装置１が、学習部１１０の学習結果を用いて、製品の組み立てに用いる部品の情報及び作業者のステータス情報に対する部品配膳場所における部品配置を、それぞれの配膳ロボット２毎に自動的かつ正確に求めることができる。また、制御装置１の機械学習装置１００が、複数の配膳ロボット２のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての配膳ロボット２に共通する部品配膳場所における部品配置を学習し、その学習結果を全ての配膳ロボット２の動作において共有するように構成できる。したがってシステム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、部品配膳場所における部品配置の学習の速度や信頼性を向上させることができる。
【００６１】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００６２】
例えば、機械学習装置１００が実行する学習アルゴリズムや演算アルゴリズム、制御装置１が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００６３】
また、上記した実施形態では制御装置１と機械学習装置１００が異なるＣＰＵを有する装置として説明しているが、機械学習装置１００は制御装置１が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【００６４】
更に、上記した実施形態では部品配膳場所に配置された部品を作業者が製品として組み立てる例をもとに説明しているが、製品を組み立てる作業者としては組立ロボットを対象とすることも可能である。この場合、作業者ステータスとしては、ロボットの種類等を用いることができる。また、作業者としての組立ロボットを考える場合には、判定データ取得部１０８が取得する判定データとして、消費電力データＤ３を用いることで、より消費電力が少なくなる部品配置を学習する機械学習装置１００とすることも可能である。
【符号の説明】
【００６５】
１  制御装置
２  配膳ロボット
３  センサ
４  入力装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１７，１８，１９  インタフェース
２０  バス
２１  インタフェース
３４  制御部
１００  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０６  状態観測部
１０８  判定データ取得部
１０９  ラベルデータ取得部
１１０  学習部
１１２  報酬計算部
１１４  価値関数更新部
１２２  意思決定部
１７０  システム
１７２  ネットワーク
【図１】
2019136818.tif 000005
【図２】
2019136818.tif 000006
【図３】
2019136818.tif 000007
【図４】
2019136818.tif 000008
【図５】
2019136818.tif 000009
【図６Ａ】
2019136818.tif 000010
【図６Ｂ】
2019136818.tif 000011
【図７】
2019136818.tif 000012