(57)【要約】  ロボットシステム（１）は、ロボット（１０）、状態検出センサ（１１）〜（１３）、計時部（４６）、学習制御部（４２）、判定部（４４）、操作装置（２１）、入力部（２３）、及び追加学習部（４３）を備える。判定部（４４）は、状態検出センサ（１１）〜（１３）が検出した状態値に基づいて、学習制御部（４２）による制御でロボット（１０）の作業が継続可能か否かを示す判定結果を出力する。追加学習部（４３）は、ロボット（１０）の作業の継続ができないことを示す判定結果、操作装置（２１）及び入力部（２３）が出力した作業者操作力及び作業状態、検出された状態値、及び計時部（４６）が出力するタイマー信号に基づいて追加学習する。
2019225746.tif 000002
【特許請求の範囲】
【請求項１】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと、
所定の時間間隔でタイマー信号を出力する計時部と、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値及び前記タイマー信号に基づいて、演算操作力を出力する学習制御部と、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
作業者による前記作業状態の入力を受け付けて出力する入力部と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
前記ロボットの作業が継続できないことを示す前記判定結果と、前記入力部が出力した前記作業状態と、前記操作装置が出力した前記作業者操作力と、前記状態検出センサが検出した前記状態値と、前記タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習部と、
を備えることを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記追加学習部は、前記状態値に基づいて、前記作業状態に対応付けられる前記次の作業状態を求め、前記作業状態及び前記次の作業状態と、前記状態値及び前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項３】
請求項１に記載のロボットシステムであって、
前記入力部は、入力された前記作業状態に対応付けられる前記次の作業状態の作業者による入力を受け付けて前記追加学習部に出力し、
前記追加学習部は、前記作業状態及び前記次の作業状態と、前記状態値及び作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項４】
請求項１から３までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記作業状態が前記次の作業状態と異なる場合、前記作業状態及び前記次の作業状態と、複数組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項５】
請求項１から４までの何れか一項に記載のロボットシステムであって、
前記切替装置は、前記作業者操作力又は前記演算操作力の何れを変換することを示す設定信号に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項６】
請求項１から４までの何れか一項に記載のロボットシステムであって、
前記切替装置は、前記操作装置が出力した前記作業者操作力の大きさを検知するセンサを備え、
前記切替装置は、検知された前記作業者操作力の大きさに基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項７】
請求項１から６までの何れか一項に記載のロボットシステムであって、
前記学習制御部は、前記ロボットの作業が継続できないことを示す前記判定結果に基づいて、前記演算操作力の出力を中断し、追加学習が完了したと判定したとき、前記演算操作力の出力を再開することを特徴とするロボットシステム。
【請求項８】
請求項１から７までの何れか一項に記載のロボットシステムであって、
前記ロボットの作業が継続できないことを示す前記判定結果に基づいて、通知信号を出力する通知部と、
前記通知信号に基づいて表示を行う表示装置と、
を備えることを特徴とするロボットシステム。
【請求項９】
請求項８に記載のロボットシステムであって、
前記学習制御部は、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の前記作業状態に対して現在の前記状態値が類似している程度を示す類似度を算出して出力し、
前記通知部は、当該類似度及び前記ロボットの作業の継続ができないことを示す前記判定結果に基づいて、前記通知信号を出力することを特徴とするロボットシステム。
【請求項１０】
請求項１から８までの何れか一項に記載のロボットシステムであって、
前記学習制御部は、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の前記作業状態に対して現在の前記状態値が類似している程度を示す類似度を算出して出力し、
前記判定部は、前記状態値及び前記類似度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項１１】
請求項８に記載のロボットシステムであって、
前記モデルに入力される入力データに応じて当該モデルが前記演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部を備え、
前記通知部は、当該確信度及び前記ロボットの作業の継続ができないことを示す前記判定結果に基づいて、前記通知信号を出力することを特徴とするロボットシステム。
【請求項１２】
請求項１から８までの何れか一項に記載のロボットシステムであって、
前記モデルに入力される入力データに応じて当該モデルが前記演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部を備え、
前記判定部は、前記確信度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項１３】
請求項１から１２までの何れか一項に記載のロボットシステムであって、
前記モデルが出力する前記演算操作力に基づいて実現される前記ロボットの作業状態が、前記ロボットの作業のうちどの進捗度合いに相当するかを示す進行度を取得する進行度取得部を備え、
前記判定部は、前記進行度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項１４】
請求項１から１３までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記入力部に入力された前記作業状態が、前記モデル内に含まれていると判定した場合、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の当該作業状態の推定基準を修正することを特徴とするロボットシステム。
【請求項１５】
請求項１から１４までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記入力部に入力された前記作業状態が、前記モデル内に含まれていないと判定した場合、前記状態検出センサにより検出された前記状態値に基づいて、入力された当該作業状態を前記モデルに登録することを特徴とするロボットシステム。
【請求項１６】
請求項１から１５までの何れか一項に記載のロボットシステムであって、
前記計時部は、トリガー信号に基づいて、当該トリガー信号の受信時から前記所定の時間間隔で前記タイマー信号を出力し、
前記学習制御部は、前記演算操作力の出力を開始するときに前記トリガー信号を出力し、
前記追加学習部は、前記作業者操作力の入力を検知したときに前記トリガー信号を出力することを特徴とするロボットシステム。
【請求項１７】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと、
所定の時間間隔でタイマー信号を出力する計時部と、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値及び前記タイマー信号に基づいて、演算操作力を出力する学習制御部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
を備えるロボットシステムに対して、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定工程と、
前記作業状態と、前記操作装置からの前記作業者操作力との入力を受け付ける入力受付工程と、
前記ロボットの作業が継続できないことを示す前記判定結果と、入力された前記作業状態と、入力された前記作業者操作力と、前記状態検出センサが検出した前記状態値と、前記タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習工程と、
を含む処理を行うことを特徴とする追加学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として、機械学習により構築されたモデルに基づいてロボットに作業を行わせるロボットシステムに関する。
【背景技術】
【０００２】
特許文献１は、ロボットアームを制御して複数の部品を組み付ける組立方法を開示する。この組立方法では、ロボットアームで保持した２つの部品の座標をそれぞれ取得し、２つの部品の座標が適切であると判定した場合に、両部品を接続する。【０００３】
特許文献２は、複数のワークから１つのワークを把持して移動させるロボットの動作を機械学習装置によって学習する方法を開示する。この機械学習装置の出力に基づいてロボットを制御することで、複数のワークが乱雑に置かれている状況であっても、ロボットは所望のワークを取り出す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−７０６４号公報
【特許文献２】特開２０１７−３０１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法では、例えば、ロボットアームが引っ掛かったりして動作できなくなったときは、ロボットアームは作業を継続することができない。また、特許文献２の方法では、予め学習されていない状況になったときは、ロボットは作業を継続することができない。【０００６】
本発明は以上の事情に鑑みてされたものであり、その主要な目的は、ロボットが作業を継続できなくなった場合において、次に同種の状態になった場合に作業を継続可能とするよう追加学習を行うロボットシステムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。【０００８】
本発明の観点によれば、以下の構成のロボットシステムが提供される。即ち、このロボットシステムは、ロボットと、状態検出センサと、計時部と、学習制御部と、判定部と、操作装置と、入力部と、切替装置と、追加学習部と、を備える。前記ロボットは、動作指令に基づいて作業を行う。前記状態検出センサは、前記ロボットの作業の進行を示す状態値を検出して出力する。前記計時部は、所定の時間間隔でタイマー信号を出力する。前記学習制御部は、作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値及び前記タイマー信号に基づいて、演算操作力を出力する。前記判定部は、前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する。前記操作装置は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。前記入力部は、作業者による前記作業状態の入力を受け付けて出力する。前記切替装置は、前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する。前記追加学習部は、前記ロボットの作業が継続できないことを示す前記判定結果と、前記入力部が出力した前記作業状態と、前記操作装置が出力した前記作業者操作力と、前記状態検出センサが検出した前記状態値と、前記タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する。【０００９】
本発明の別の観点によれば、以下の追加学習方法が提供される。即ち、この追加学習方法は、ロボットと、状態検出センサと、計時部と、学習制御部と、操作装置と、切替装置と、を備えるロボットシステムに対して、判定工程と、入力受付工程と、追加学習工程と、を含む処理を行う。前記判定工程では、前記状態検出センサにより検出された状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する。前記入力受付工程では、作業状態と、前記操作装置からの作業者操作力との入力を受け付ける。前記追加学習工程では、前記ロボットの作業が継続できないことを示す前記判定結果と、入力された前記作業状態と、入力された前記作業者操作力と、前記状態検出センサが検出した前記状態値と、タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する。【００１０】
これにより、作業状態及び次の作業状態と、操作力と、状態値とを追加学習させることで、ロボットが作業を継続できなくなった場合であっても、ロボットシステム側で自律的に解決して作業を継続することが可能となる。
【発明の効果】
【００１１】
本発明によれば、ロボットが作業を継続できなくなった場合において、次に同種の状態になった場合のために作業を継続可能とするよう追加学習を行うロボットシステムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係るロボットシステムの構成を示すブロック図。
【図２】ロボットが行う作業の流れ及び作業状態を示す図。
【図３】機械学習するデータの一例を示す図。
【図４】モデル内における、状態値及び作業状態の対応の一例を概念的に示す図。
【図５】追加学習に関してロボットシステムが行う処理を示すフローチャート。
【図６】現在の作業状態がモデル内の作業状態と入力された際の追加学習の内容を概念的に示す図。
【図７】現在の作業状態が新たな作業状態と入力され、前の作業状態へ戻す動作が入力された際の追加学習の内容を概念的に示す図。
【図８】現在の作業状態がモデル内の作業状態と入力された際に追加学習するデータの一例を示す図。
【図９】現在の作業状態が新たな作業状態と入力された際に追加学習するデータの一例を示す図。
【図１０】第２実施形態でロボットが行う動作を説明する図。
【図１１】第２実施形態に係るロボットシステムの構成を示すブロック図。
【図１２】進行度の取得について説明する図。
【図１３】ロボットの動作に応じた進行度の値の推移の例を示す図。
【図１４】確信度の取得について説明する図。
【図１５】ロボットの動作に応じた確信度の値の推移の例を示す図。
【発明を実施するための形態】
【００１３】
次に、図面を参照して本発明の実施形態を説明する。初めに、図１を参照して、第１実施形態のロボットシステム１について説明する。図１は、ロボットシステム１の構成を示すブロック図である。
【００１４】
ロボットシステム１は、ロボット１０に作業を行わせるためのシステムである。ロボット１０に行わせる作業としては様々であるが、例えば、組立て、加工、塗装、洗浄等がある。ロボット１０は、後述するデータを機械学習することで構築されたモデルを用いて制御されている。そのため、ロボットシステム１は、基本的には作業者の補助を必要とせず、作業を自律的に行うことができる。このようにロボット１０が作業を自律的に行うことを「自律運転」と称することがある。また、本実施形態のロボットシステム１では、作業者の操作に応じてロボット１０を動作させることもできる。また、ロボット１０は、自律的に作業を行うだけでなく、作業者の操作に応じて作業を行うこともできる。図１に示すように、ロボットシステム１は、ロボット１０と、操作部２０と、切替装置３０と、制御部４０と、を備える。それぞれの装置は、有線又は無線のネットワークを介して互いに接続されている。
【００１５】
ロボット１０は、台座に取り付けられたアーム部を備える。アーム部は、複数の関節を有しており、各関節にはアクチュエータが備えられている。ロボット１０は、外部から入力された動作指令に応じてアクチュエータを動作させることでアーム部を動作させる。この動作指令は、直線状の速度の指令と、角速度の指令と、を含む。アーム部の先端には、作業内容に応じたエンドエフェクタが取り付けられている。ロボット１０は、外部から入力された動作指令に応じてエンドエフェクタを動作させることで作業を行う。
【００１６】
また、ロボット１０には、ロボット１０の動作及び周囲環境等を検出するためのセンサが取り付けられている。本実施形態では、動作センサ１１と、力センサ１２と、カメラ１３と、がロボット１０に取り付けられている。動作センサ１１は、ロボット１０のアーム部の関節毎に設けられており、各関節の回転角度又は角速度を検出する。力センサ１２は、ロボット１０の動作時に、ロボット１０が受けた力を検出する。力センサ１２はエンドエフェクタに掛かる力を検出する構成であってもよいし、アーム部の各関節に掛かる力を検出する構成であってもよい。また、力センサ１２は、力に代えて又は加えてモーメントを検出する構成であってもよい。カメラ１３は、作業対象であるワークの映像（ワークへの作業の進行状況）を検出する。カメラ１３に代えて又は加えて、音を検出する音センサ及び／又は振動を検出する振動センサを設け、これらのセンサの検出結果に基づいて、ワークへの作業の進行状況を検出することもできる。動作センサ１１が検出するデータは、ロボット１０の動作を示す動作データであり、力センサ１２、及びカメラ１３が検出するデータは、ロボット１０の周囲の環境の状態を示す周囲環境データであり、動作センサ１１、力センサ１２、及びカメラ１３が検出するデータは、ロボット１０の作業（ワークへの作業）の進行の状態を示す状態値である。以下の説明では、ロボット１０に設けられた動作センサ１１、力センサ１２、及びカメラ１３をまとめて「状態検出センサ１１〜１３」と称することがある。また、状態検出センサ１１〜１３が検出したデータを、特に「センサ情報」と称することがある。なお、状態検出センサ１１〜１３は、ロボット１０に取り付ける代わりに、ロボット１０の周囲に設けてもよい。
【００１７】
操作部２０は、操作装置２１と、表示装置２２と、入力部２３と、を備える。操作装置２１は、ロボット１０を動作させるために作業者が操作する部材である。操作装置２１は、作業内容に応じて異なるが、例えば、作業者が手で操作するレバー又は足で操作するペダルである。操作装置２１は、図略の公知の操作力検出センサを備える。操作力検出センサは、作業者が操作装置２１に加えた力である操作力を検出する。操作装置２１が様々な方向に動かすことができるように構成されている場合、操作力は力の向き及び大きさを含む値、例えばベクトルであってもよい。また、操作力は、作業者が加えた力（Ｎ）だけでなく、力に連動する値である加速度（即ち、作業者が加えた力を操作装置２１の質量で除算した値）であってもよい。以下の説明では、作業者が操作装置２１に加えた操作力を、特に「作業者操作力」と称することがある。作業者が操作部２０（操作装置２１）を操作することで出力された作業者操作力は、後述するように切替装置３０で動作指令に変換される。
【００１８】
表示装置２２は、液晶又は有機ＥＬ等のドットマトリクス式のディスプレイである。表示装置２２は、操作装置２１の近傍に配置されており、映像信号、例えば後述する通知信号に基づいて、ロボットシステム１が行う作業に関する情報を表示する。操作装置２１がロボット１０から離れた位置に配置された場合は、表示装置２２にロボット１０の近傍の映像を表示させるようにしてもよい。入力部２３は、後述する追加学習時において、作業者による作業状態の入力を受け付ける図略のキー等であり、入力された作業状態を制御部４０（追加学習部４３）に出力する。
【００１９】
切替装置３０には、ロボット１０、操作部２０、及び制御部４０が接続されている。切替装置３０には、操作部２０が出力した作業者操作力と、後述する制御部４０が出力した演算操作力と、が入力される。切替装置３０は、ロボット１０を動作させるための動作指令を、ロボット１０及び制御部４０（通信部４１）へ出力する。切替装置３０は、例えば、公知のコンピュータにより構成されており、演算装置（ＣＰＵ等）と、記憶部（例えばＲＯＭ、ＲＡＭ、ＨＤＤ等）とを備える。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、切替装置３０は様々な手段として機能することができる。機能毎に名称を付けると、切替装置３０は、切替部３１と、変換部３２と、を備える。
【００２０】
切替部３１は、入力された作業者操作力及び演算操作力から、作業者操作力又は演算操作力の何れかを変換部３２へ出力するように構成されている。また、切替部３１はコネクタ又はアンテナを備えており、切替装置３０の外部から、作業者操作力又は演算操作力の何れを変換するかを示す設定信号に基づいて、作業者操作力又は演算操作力の何れかを変換部３２へ出力するように構成されている。これにより、作業者がロボット１０を動作させる状態（即ち、操作部２０が出力した作業者操作力に基づいて、ロボット１０が動作する状態）と、ロボットシステム１がロボット１０に自律的に作業を行わせる状態（即ち、制御部４０が出力した演算操作力に基づいて、ロボット１０が動作する状態）と、を切り替えることができる。なお、切替部３１に操作力を検知する図略のセンサを設け、切替部３１は、作業者が操作部２０（操作装置２１）を操作していると判定したとき（例えば、操作部２０が出力した作業者操作力の大きさが閾値以上であると判定したとき）は作業者操作力を変換部３２に出力し、作業者が操作部２０を操作していないと判定したとき（例えば、操作部２０が出力した作業者操作力の大きさが閾値未満であると判定したとき）は制御部４０が出力した演算操作力を変換部３２に出力するように構成してもよい。これにより、切替部３１は、設定信号に基づかずとも、作業者が操作部２０を操作している間、作業者がロボット１０を動作させる状態とすることができる。
【００２１】
変換部３２は、切替部３１から入力された作業者操作力又は演算操作力の何れかを、ロボット１０を動作させるための動作指令に変換して、ロボット１０及び制御部４０（通信部４１）に出力する。
【００２２】
制御部４０は、公知のコンピュータにより構成されており、演算装置（ＣＰＵ等）と記憶部（例えばＲＯＭ、ＲＡＭ、ＨＤＤ等）を備えている。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、制御部４０は様々な手段として機能することができる。機能毎に名称を付けると、制御部４０は、通信部４１と、学習制御部４２と、追加学習部４３と、判定部４４と、通知部４５と、計時部４６と、を備える。通信部４１はコネクタ又はアンテナを備えており、制御部４０の外部からの入力を、制御部４０内の各部４２〜４６に出力するように構成されている。通信部４１は、制御部４０内の各部４２〜４６による出力を、制御部４０の外部に出力するよう構成されている。例えば、通信部４１が受け取る、制御部４０の外部からの入力としては、操作部２０（操作装置２１）が出力する作業者操作力、操作部２０（入力部２３）が出力する作業状態、切替装置３０（変換部３２）が出力する動作指令、状態検出センサ１１〜１３が出力するセンサ情報がある。また、例えば、通信部４１が出力する、制御部４０の外部への出力としては、後述する切替装置３０へ出力する演算操作力、後述する操作部２０（表示装置２２）へ出力する通知信号がある。以下、制御部４０内の各部４２〜４６による、制御部４０の外部との入出力については、通信部４１を介することを特に言及しないことがある。計時部４６は、演算装置の内部クロック等を用いた、周知の計時機能を有する。計時機能は、例えば、計時部４６の外部からのトリガー信号に基づいて、トリガー信号の入力時から所定の時間間隔（例えば、１秒毎）でタイマー信号の出力を開始するタイマー機能を含む。なお、計時部４６は、計時部４６の外部からのトリガー信号及び時間間隔（例えば、１秒）を示す信号に基づいて、トリガー信号の入力時から当該時間間隔でタイマー信号の出力を開始するタイマー機能を有するように構成してもよい。また、計時部４６の外部からのトリガー信号は、計時部４６にタイマー信号の出力を開始させる第１のトリガー信号と、計時部４６にタイマー信号の出力を終了させる第２のトリガー信号と、を含んでもよい。
【００２３】
学習制御部４２は、機械学習により構築されたモデルを用いて切替装置３０を介してロボット１０に操作力を出力することで、ロボット１０に作業を行わせる。以下、制御部４０（学習制御部４２）が出力する操作力を「演算操作力」と称することがある。以下、このモデルの構築方法について具体的に説明する。なお、本実施形態では、演算操作力の出力は１秒毎（即ち、計時部４６のタイマー信号の時間間隔）に切り替わるものとする。
【００２４】
図２に示すように、ワーク１００を凹部１１０に入れる作業をロボット１０に行わせる場合、例えば、空中、接触、挿入、及び完了の４つの作業状態に分類することができる。作業状態１（空中）はロボット１０がワーク１００を保持して凹部１１０の上部に位置させている状態である。作業状態２（接触）は、ロボット１０が保持したワーク１００を、凹部１１０が形成されている面に接触させている状態である。作業状態３（挿入）は、ロボット１０が保持したワーク１００を凹部１１０に挿入している状態である。作業状態４（完了）は、ロボット１０が保持したワーク１００が凹部１１０に完全に挿入された状態である。このように、４つの作業状態は、ロボット１０による一連の作業を工程毎に分類したものであり、ロボット１０の作業が正しく進行すると、作業状態１（空中）、作業状態２（接触）、作業状態３（挿入）、作業状態４（完了）の順で作業状態が遷移する。また、別の作業状態として作業状態５（拗れ）がある。作業状態５（拗れ）は、最初に機械学習させる段階では作業状態として登録されていない。作業状態５（拗れ）は、ワーク１００が凹部１１０に挿入されているが、挿入を更に進行させることができず、作業状態１（空中）に遷移させないと、即ち一度ワーク１００を上方に移動させて凹部１１０から離さないと、作業を継続できない状態である。
【００２５】
次に、学習制御部４２が機械学習するデータについて説明する。学習制御部４２は、現在の作業状態及び現在の作業状態に対応付けられる次の作業状態（即ち、次に遷移する作業状態）と、少なくとも１組の状態値及びこの状態値に対応付けられる操作力と、を機械学習し、モデルを構築する。状態値は、ロボット１０の作業の進行を示す値であり、作業の進行に応じて変化する値である。状態値としては、状態検出センサ１１〜１３が検出したセンサ情報（例えば、位置、速度、力、モーメント、映像等の作業状況）がある。状態値には、当該センサ情報に基づいて算出された情報（例えば、過去から現在までのセンサ情報の経時変化を示す値）を含めてもよい。
【００２６】
図３は学習制御部４２が機械学習するデータの一例を示す図である。図４はモデル内における、状態値及び作業状態の対応の一例を概念的に示す図である。図３及び図４に示すように、現在の作業状態が作業状態２（接触）、現在の状態値がＳ210であって、作業状態３（挿入）に遷移させる（状態値Ｓ310とする）ような、ロボット１０のｎ秒間（ｎは１以上の整数）の動作を学習制御部４２に機械学習させる場合を考える。学習制御部４２は、図３に示すデータを機械学習し、モデルを構築する。詳細には、学習制御部４２は、現在の作業状態２（接触）及び次の作業状態３（挿入）と、現在の状態値Ｓ210及び操作力Ｉ210と、ｍ（ｍは１〜（ｎ−１）の整数）秒後の状態値Ｓ21m及び操作力Ｉ21mと、ｎ秒後の状態値Ｓ21n及びダミーの操作力を示すＩnullと、を機械学習する。図３に示すように、現在の作業状態２（接触）は次の作業状態３（挿入）と異なり、状態値及び操作力は（ｎ＋１）組、即ち複数組ある。学習制御部４２は、時刻（例えば、０〜ｎ秒後）と、当該時刻における状態値（例えば、Ｓ210〜Ｓ21n）及び操作力（例えば、Ｉ210〜Ｉnull）と、を対応付けて機械学習してもよく、本実施形態のように、操作力の出力の時間順を維持するように機械学習を行うことにより、時刻の機械学習を省略してもよい。また、学習制御部４２は、ｎ秒後の状態値Ｓ21n及びダミーの操作力を示すＩnullを機械学習しないように構成してもよい。ここで、学習させる操作力は、操作部２０（操作装置２１）が出力する作業者操作力でもよく、データとして予め用意されたものであってもよい。
【００２７】
現在の作業状態が作業状態２（接触）であって、作業状態３（挿入）に遷移させるロボット１０の動作は様々である。例えば、現在の状態値が作業状態２（接触）を示すＳ220であって、作業状態３（挿入）を示す状態値Ｓ310とするようなロボット１０の動作も含まれる。本実施形態では、学習制御部４２は、このようなロボット１０の動作も機械学習して、モデルを構築する。機械学習の方法は図３を参照して上述した方法と同様であるので、その詳細な説明を省略する。
【００２８】
作業状態２（接触）を作業状態３（挿入）に遷移させるロボット１０の動作や、作業状態３（挿入）を作業状態４（完了）に遷移させるロボット１０の動作についても、学習制御部４２は機械学習を行い、モデルを構築する。機械学習の方法は図３を参照して上述した方法と同様であるので、その詳細な説明を省略する。なお、現在の作業状態が作業状態４（完了）である場合は、ロボット１０は動作の必要がない。この場合は、学習制御部４２は、現在の作業状態４（完了）及び次の作業状態４（完了）と、０秒後（即ち、現在）の状態値Ｓ4及びダミーの操作力を示すＩnullとを機械学習してもよい。
【００２９】
学習制御部４２は、構築されたモデルに基づいて、現在の状態値から現在の作業状態を推定する作業状態推定処理と、現在の状態値及び推定した現在の作業状態から次の作業状態を推定する次作業状態推定処理と、現在の状態値、及び推定した現在の作業状態及び次の作業状態に基づいて、出力する操作力（演算操作力）を決定し、この演算操作力を切替装置３０に出力する出力処理と、を行う。これにより、学習制御部４２は、作業を適切に行うようにロボット１０の動作を制御することができる。
【００３０】
初めに、現在の作業状態の推定（作業状態推定処理）について説明する。上述のとおり、学習制御部４２は、状態値と、作業状態（及び次の作業状態）とを機械学習し、現在の状態値に基づいて、現在の作業状態（及び次の作業状態）を推定する。図４に示すように、状態値が３つであり、機械学習された状態値（図４における点に対応）がモデル内に分布している場合を考える。図４には各作業状態に対応する領域（空間）が記載されているが、状態値がこれらの領域の内部に位置する場合は、当該状態値は当該領域と対応付けられている作業状態である確率が高いことを示すものである。例えば、「作業状態２（接触）」の領域は、機械学習した状態値のうち作業状態２（接触）と判定された状態値の集合（クラスタ）を示すものであり、この集合（クラスタ）は、作業状態２（接触）と判定された状態値を示す点の座標が、当該領域からの中心点からの距離が第１の距離以下となり、かつ、他の領域の中心点からの距離が第１の距離より長い第２の距離以上となるように、「作業状態２（接触）」の領域の中心点を定めることによって形成されたものである。従って、図４に示すように、現在の状態値がＳ210、Ｓ310である場合は、学習制御部４２は、現在の作業状態をそれぞれ、作業状態２（接触）、作業状態３（挿入）であると推定する。
【００３１】
次に、次の作業状態を推定する処理（次作業状態推定処理）について説明する。上述のとおり、学習制御部４２は、状態値と、作業状態及び次の作業状態とを機械学習し、現在の状態値と、推定した現在の作業状態に基づいて、次の作業状態を推定する。例えば、図４に示すように、現在の状態値がＳ210であり、現在の作業状態が作業状態２（接触）と推定された場合であって、図３に示すように、機械学習時における現在の状態値がＳ210であり、この現在の作業状態が作業状態２（接触）であるとき、次の作業状態が作業状態３（挿入）である（即ち、作業状態を作業状態２（接触）から作業状態３（挿入）に遷移させる）ロボット１０の動作を学習制御部４２が機械学習した場合を考える。この場合、学習制御部４２は、次の作業状態を作業状態３（挿入）であると推定する。
【００３２】
次に、演算操作力を決定し出力する処理（出力処理）について説明する。上述のとおり、学習制御部４２は、作業状態及び次の作業状態と、状態値及び操作力とを機械学習し、現在の作業状態及び次の作業状態と、現在の状態値とに基づいて、切替装置３０へ出力する演算操作力を決定する。例えば、図４に示すように、現在の状態値がＳ210であり、現在の作業状態が作業状態２（接触）、次の作業状態が作業状態３（挿入）と推定された場合を考える。図４には、状態値Ｓ210から状態値Ｓ310へと延びる矢印が示されている。この矢印は、図３に示す作業状態２（接触）から作業状態３（挿入）へと作業状態を遷移させる、学習制御部４２が機械学習したロボット１０のｎ秒間の動作に対応する。この場合、学習制御部４２は、図３に示す最初の操作力Ｉ210を切替装置３０に演算操作力として出力するときに、計時部４６にトリガー信号を出力する。計時部４６は、トリガー信号に基づいて、トリガー信号の入力時から１秒毎にタイマー信号を出力する。次に、学習制御部４２は、図３に示す操作力Ｉ210〜Ｉ21(n-1)を、計時部４６からのタイマー信号に基づいて１秒毎に切り替えながら、切替装置３０に演算操作力として出力する。そして、学習制御部４２は、図３に示す操作力がダミーの操作力を示すＩnullであることを検知すると、演算操作力の出力を停止する。
【００３３】
以上説明した通り、学習制御部４２は、機械学習により構築されたモデルに基づいて、現在の状態値から、ロボット１０を動作させるための演算操作力を決定する。これにより、学習制御部４２は、現在の作業状態に応じ、かつ、次の作業状態にも応じたより適切な演算操作力を用いて、ロボット１０を動作させることができる。また、ワーク１００の形状のバラツキ、ワーク１００の保持位置のバラツキ、凹部１１０の位置のバラツキ等があった場合でも、学習制御部４２は、上述した機械学習を繰り返すことにより、ロボット１０がこれらのバラツキに柔軟に対応するように作業を行わせることができる。
【００３４】
追加学習部４３、判定部４４、及び通知部４５は、上記の機械学習で対応できない場合に行う追加学習を行うための機能を有している。以下、この追加学習について図５から図７を参照して説明する。図５は、追加学習に関してロボットシステムが行う処理を示すフローチャートである。図６及び図７は、モデル内における、作業状態の判定結果に応じた追加学習の内容を概念的に示す図である。
【００３５】
本実施形態では、ロボットシステム１が自律的に作業を行えなくなった場合に、作業者がロボット１０を操作して作業を補助し、この補助した作業者の操作内容を追加学習するという方法でモデルの最適化を行っている。以下、具体的に説明する。なお、本実施形態では、作業者の操作内容を１秒毎（即ち、計時部４６のタイマー信号の時間間隔）に追加学習するものとする。
【００３６】
初めに、学習制御部４２がロボット１０を動作させ、ロボットシステム１による自律的な作業が開始される（Ｓ１０１）。作業の開始前に、演算操作力を変換することを示す設定信号を学習制御部４２が切替装置３０に出力することにより、切替装置３０は、学習制御部４２から出力される演算操作力を変換した動作指令をロボット１０へ出力するように設定されている。
【００３７】
学習制御部４２は、ロボット１０を制御している間（即ち、演算操作力のみが切替装置３０に出力されている間）において、現在の状態値に基づいて、現在の作業状態が作業状態４（完了）に該当するか否かを判定する（Ｓ１０２、作業状態推定処理）。現在の作業状態が作業状態４（完了）に該当する場合、学習制御部４２は作業が完了していると判定し、次の作業の開始位置（例えば次のワーク１００が載置されている場所）までロボット１０のアーム部を移動させるような演算操作力を、切替装置３０へ出力し、切替装置３０はこの演算操作力を変換した動作指令をロボット１０へ出力する（Ｓ１１２）。
【００３８】
現在の作業状態が作業状態４（完了）でない場合（即ち作業が完了していない場合）、判定部４４は、学習制御部４２による制御で作業が継続可能か否かを現在の状態値に基づいて判定し、継続可否を示す判定結果を出力する（Ｓ１０３、判定工程）。言い換えれば、判定部４４は、作業者の補助なしで作業が継続可能か否かを現在の状態値に基づいて判定する。この判定は、例えば、現在の状態値（例えば、センサ情報）及び予め設定された条件等に基づいて判定される。具体的には、力センサ１２により検出された力が急激に大きくなったこと、力センサ１２により検出された力が基準値を超えたこと等が条件として設定される。また、判定部４４は、予め設定された条件に代えて、自律的に（言い換えれば判定基準を自ら作成して）判定してもよい。具体的には、判定部４４は、後述する作業状態の類似度の出力を学習制御部４２から受け取り、この類似度に基づいて、現在の状態値が何れの作業状態にも属さない（例えば、類似度が何れの作業状態においても所定の閾値より低い）と判定したときに、作業が継続できないと判定する。
【００３９】
学習制御部４２による制御でロボット１０の作業が継続可能であることを示す判定結果が判定部４４により出力された場合、引き続き、学習制御部４２が演算操作力を切替装置３０に出力することにより、ロボット１０を動作させる。一方で、学習制御部４２による制御でロボット１０の作業が継続できないことを示す判定結果が判定部４４により出力された場合、作業者の補助を要求して追加学習を行うための処理が行われる。追加学習を行うためには、現在の正しい作業状態及び次の作業状態と、状態値及び作業が継続できない状態を解消する操作力と、が必要となる。
【００４０】
具体的には、ロボット１０の作業が継続できないことを示す判定結果に基づいて、通知部４５は作業が継続できないことを通知する。詳細には、通知部４５は、作業が継続できない旨を表示させる第１の通知信号を表示装置２２に出力するとともに、学習制御部４２は現在の正しい作業状態を作業者が特定するための情報として、作業状態の類似度をモデルから算出して出力し、通知部４５は、この類似度を表示させる第２の通知信号を表示装置２２へ出力する（Ｓ１０４、通知工程）。類似度とは、モデル内の（登録済みの）作業状態に対して現在の状態値が類似している程度を示す値である。類似度は、現在の状態値と、モデル内の各作業状態に属する状態値（即ち、機械学習した状態値のうち各作業状態に属するもの）の分布と、を比較することで算出される。例を挙げて説明すると、図６の上側のグラフに示すように作業状態１〜作業状態４の領域が存在している状況において、これらの領域から外れた現在の状態値Ｓ5、Ｓ6があるとき、学習制御部４２は、現在の状態値Ｓ5、Ｓ6を示す座標と、作業状態１〜作業状態４の領域のそれぞれの中心点との距離（又は作業状態１〜作業状態４のそれぞれとの最短距離）に基づいて、距離が短いほど高くなる類似度を算出する。学習制御部４２は、状態値毎に類似度を算出してもよいし、全ての状態値の比較結果を考慮した１つの類似度を算出してもよい。また、学習制御部４２は、登録済みの全ての作業状態に対する類似度をそれぞれ算出して出力してもよいし、最も類似度が高い１つの作業状態に対する類似度のみを出力してもよい。類似度は、例えばテキストデータで表示装置２２に表示されるが、グラフ等の図形を用いて表示装置２２に表示させてもよい。
【００４１】
次に、制御部４０は、作業者により特定された作業状態の入力を受け付けるための処理を行う（Ｓ１０５、入力受付工程）。例えば、制御部４０（通知部４５）は、表示装置２２へ第３の通知信号を送信することで、入力部２３を用いて作業者が正しい作業状態を入力するための入力欄を表示装置２２に表示させる。これにより、作業者に作業状態の特定及びその入力を促すことができる。また、ステップＳ１０５の処理の前後において、制御部４０は、作業者操作力を変換することを示す設定信号を切替装置３０に出力することにより、切替装置３０は、操作部２０（操作装置２１）が出力する作業者操作力を変換した動作指令を出力するように、設定を変更する。切替装置３０の設定の変更は、表示装置２２が入力欄を表示するとき又はそれ以前（例えば、判定部４４がロボット１０の作業が継続できないことを示す判定結果を出力したとき）に行うことが好ましい。これにより、作業者が表示装置２２の表示を確認してから入力を行えるようにでき、作業者操作力に基づく動作指令をロボット１０に確実に出力することができる。
【００４２】
作業者は、表示装置２２に表示された類似度を確認するとともに、ロボット１０、ワーク１００、及び凹部１１０の位置関係を直接又はカメラを介して視認することで、正しい作業状態を特定する。また、作業者は、操作装置２１を操作してロボット１０を動作させたり、ロボット１０を手で直接触ったりすることで、正しい作業状態を特定してもよい。以上のようにして、作業者は正しい作業状態（例えば、モデル内の作業状態である作業状態３）を特定して、操作部２０の入力部２３を用いて入力する。なお、モデル内の作業状態の何れにも該当しない場合、作業者は新たな作業状態（例えば、モデル内の作業状態でない作業状態５）を作成して操作部２０の入力部２３にこれを入力する。
【００４３】
制御部４０（追加学習部４３）は、モデル内の作業状態が入力部２３に入力されたと判定した場合（Ｓ１０６）、現在の状態値を取得し、この状態値に基づいて、モデル内の作業状態の推定基準を修正する処理を行う（Ｓ１０７、作業状態推定基準修正工程）。例を挙げて説明すると、図６の上側のグラフに示すように、モデル内に作業状態１〜作業状態４の領域が存在している状況において、これらの領域から外れた現在の状態値Ｓ5が、作業状態３（挿入）に該当すると作業者が入力部２３に入力したと判定された場合を考える。この場合、図６の下側のグラフに示すように、追加学習部４３は、現在の状態値Ｓ5を示す座標が作業状態３（挿入）の領域内に位置するように、作業状態３（挿入）の領域を変更する。例えば、追加学習部４３は、現在の状態値Ｓ5を示す点の座標又はそれに近い座標が作業状態３（挿入）と判定され易くなるように、モデル内の作業状態３（挿入）の領域における中心点及び／又は第１の距離を修正する。
【００４４】
一方、制御部４０（追加学習部４３）は、モデル内の作業状態とは異なる新たな作業状態が入力部２３に入力されたと判定した場合（Ｓ１０６）、現在の状態値を取得し、この状態値に基づいて新たな作業状態をモデルに登録する処理を行う（Ｓ１０８、作業状態登録工程）。例を挙げて説明すると、図７の上側のグラフに示すように、モデル内に作業状態１〜作業状態４の領域が存在している状況において、これらの領域から外れた現在の状態値Ｓ6が、既存の作業状態１〜作業状態４とは異なる作業状態である作業状態５（拗れ）に該当する、と作業者が入力部２３に入力したと判定された場合を考える。この場合、図７の下側のグラフに示すように、追加学習部４３は、新たな作業状態である作業状態５（拗れ）をモデルに追加するように設定する。この段階では、作業状態５（拗れ）と対応付けられた座標は１点しかないため、例えば、追加学習部４３は、現在の状態値Ｓ6を示す点（中心点）から所定の初期距離（他の作業状態の領域における第１の距離に対応）以内の領域を、作業状態５（拗れ）の領域としてモデルに追加する。
【００４５】
次に、作業者は、操作部２０（操作装置２１）を操作する。操作部２０は、作業者操作力を切替装置３０に出力して、切替装置３０は作業者操作力を動作指令に変換して出力し、ロボット１０を動作させる。例えば、現在の作業状態が作業状態３（挿入）であると作業者が入力部２３に入力した場合、作業者は、操作装置２１を操作することにより、ロボット１０を動作させてワーク１００の挿入を続行させて、作業状態を作業状態４（完了）に遷移、即ち作業を完了させる。また、現在の作業状態が新たな作業状態５（拗れ）であると作業者が入力部２３に入力した場合、作業者は、操作装置２１を操作することにより、ロボット１０を動作させてワーク１００を上方に移動させて凹部１１０から離し、作業状態５（拗れ）を作業状態１（空中）に遷移させる。
【００４６】
このとき、操作部２０は、作業状態を遷移させるように作業者がロボット１０を動作させた作業者操作力を制御部４０（追加学習部４３）に出力し、追加学習部４３は作業者操作力及び状態値を取得する（Ｓ１０９）。例えば、追加学習部４３は、操作部２０から作業者操作力が入力されたことを検知したとき、計時部４６にトリガー信号を出力する。計時部４６は、トリガー信号に基づいて、トリガー信号の入力時から所定の時間間隔（本実施形態では１秒間）でタイマー信号を出力する。次に、追加学習部４３は、現在の状態値を取得（例えば、状態検出センサ１１〜１３からセンサ情報を取得）し、操作部２０から作業者操作力を取得して、数値０であるインデックスと、状態値と、操作力（即ち、作業者操作力）とを対応付けて記憶する。また、追加学習部４３は、計時部４６からの１秒毎のタイマー信号に基づいて、１秒毎に状態値及び作業者操作力を取得し、インデックスを１増やして、当該インデックスと、状態値と、操作力（即ち、作業者操作力）とを対応付けて記憶する処理を、作業者の操作によるロボット１０の動作が完了するまで繰り返す。
【００４７】
ここで、追加学習部４３は、作業者の操作によるロボット１０の動作が完了したことの判定及び動作完了時の作業状態（即ち、状態遷移後の作業状態）の特定を、取得した状態値に基づいて行う（Ｓ１１０、状態遷移完了判定工程）。例えば、ロボット１０の動作が完了したことの判定は、追加学習部４３が、対応付けて記憶されたインデックスと状態値と操作力とに基づいて、状態値が変化しなくなってから一定時間以上経過したこと（即ち、同じ状態値が一定回数以上連続して記憶されていること）、又は作業者操作力の出力がなくなってから一定時間以上経過したこと（即ち、操作力のないことが一定回数以上連続して記憶されていること）を検知することにより行ってもよい。このとき、追加学習部４３は、作業者の操作によるロボット１０の動作が完了した時を、状態値が変化しなくなった最初の時（例えば、同じ状態値が一定回数以上連続して記憶されている場合における、最も若いインデックス）、又は作業者操作力の出力がなくなった最初の時（例えば、操作力のないことが一定回数以上連続して記憶されている場合における、最も若いインデックス）としてもよい。好ましくは、追加学習部４３は、作業者の操作によるロボット１０の動作が完了した時（即ち、最も若いインデックス）に対応付けられている操作力を、ダミーの操作力を示すＩnullに置換して上書き記憶する。また、例えば、動作完了時の作業状態の特定は、追加学習部４３が、対応付けて記憶されたインデックスと状態値と操作力とに基づいて、作業者の操作によるロボット１０の動作が完了した時（即ち、最も若いインデックス）に対応付けられている状態値を求め、この状態値に基づいて、制御部４０（追加学習部４３）が作業状態を推定する処理（作業状態推定処理）を行うことにより求めてもよい。
【００４８】
追加学習部４３は、取得した作業者操作力、状態値、及び状態遷移前後の作業状態を追加学習する（Ｓ１１１、追加学習工程）。なお、状態遷移前の作業状態とは、ステップＳ１０５〜Ｓ１０７において、作業者が入力部２３に入力し、追加学習部４３に出力された作業状態である。例えば、ステップＳ１０６において、状態値がＳ5であるときに現在の作業状態（遷移前の作業状態）が作業状態３（挿入）と入力され、ステップＳ１０９において、作業者がワーク１００の挿入を続行させて作業を完了させることにより、ステップＳ１１０において、追加学習部４３が、作業状態が作業状態３（挿入）から作業状態４（完了）に遷移したことを特定し、状態遷移後の状態値がＳ4であると求めた場合、追加学習部４３は、現在の作業状態３（挿入）及び次の作業状態４（完了）と、対応付けて記憶したインデックスと状態値と操作力とに基づいて、図８に示す追加学習用データ（ロボット１０のｐ秒間（ｐは１以上の整数）の動作に対応）を生成し、これを追加学習して、モデルを更新する。追加学習の方法は、図３を参照して上述した機械学習の方法と同様であるので、その詳細な説明を省略する。この追加学習を行うことにより、ワーク１００の挿入を進めるための新たな手法を学習制御部４２が取得する。これにより、次回以降に同種の状況が発生した場合においても、作業者の補助なく、作業を継続することができる。
【００４９】
また、ステップＳ１０６において、状態値がＳ6であるときに現在の作業状態（遷移前の作業状態）が新たな作業状態５（拗れ）と入力され、ステップＳ１０９において、作業者がワーク１００を上方に移動させて凹部１１０から離すことにより、ステップＳ１１０において、追加学習部４３が、作業状態が作業状態５（拗れ）から作業状態１（空中）に遷移したことを特定し、状態遷移後の状態値がＳ1であることを求めた場合、追加学習部４３は、現在の作業状態５（拗れ）及び次の作業状態１（空中）と、対応付けて記憶したインデックスと状態値と操作力とに基づいて、図９に示す追加学習用データ（ロボット１０のｑ秒間（ｑは１以上の整数）の動作に対応）を生成し、これを追加学習して、モデルを更新する。追加学習の方法は、図３を参照して上述した機械学習の方法と同様であるので、その詳細な説明を省略する。この追加学習を行うことにより、拗れが発生した場合に当該拗れを解消するための手法を学習制御部４２が取得することとなる。これにより、次回以降に同種の状況が発生した場合においても、作業者の補助なく、作業を継続することができる。
【００５０】
追加学習部４３が追加学習を完了すると（Ｓ１１１）、学習制御部４２は、ロボット１０を動作させ、ロボットシステム１による自律的な作業を再び開始する（Ｓ１０１）。ここで、ステップＳ１０１の処理に戻る前に、制御部４０は、演算操作力を変換することを示す設定信号を切替装置３０に出力することにより、切替装置３０は学習制御部４２が出力する演算操作力を変換した動作指令をロボット１０に出力するように、切替装置３０の設定を変更する。
【００５１】
以上のように、ロボットシステム１が自律的に解消できない状態を検出して作業状態と対応付けた追加学習を行うことで、効率的に追加学習を行うことができるので、ロボットシステム１をあまり停止させることなく作業を継続させることが可能となる。
【００５２】
本実施形態は様々な変形が可能である。本実施形態では、ロボットシステム１がロボット１０の動作の追加学習及び出力を、タイマー信号の時間間隔である１秒単位で行うが、タイマー信号がより短い時間間隔（例えば、０．１秒又はそれ未満の時間間隔）であってもロボット１０の動作の追加学習及び出力が可能であるように、ロボットシステム１を構成してもよい。これにより、ロボット１０の動作をより高い精度で追加学習し、ロボット１０をより高い精度で動作させることが可能になる。
【００５３】
本実施形態では、計時部４６は、トリガー信号に基づいて、トリガー信号の受信時から１秒毎にタイマー信号を出力し、制御部４０は、このタイマー信号に基づいて、ロボット１０の動作を追加学習し、又はロボット１０を動作させる。ここで、タイマー信号がより短い時間間隔（例えば、０．１秒又はそれ未満の時間間隔）であってもロボット１０の動作の追加学習及び出力が可能であるようにロボットシステム１を構成した場合は、計時部４６は、トリガー信号に基づかず、常時、この短い時間間隔でタイマー信号を出力するように構成してもよい。これにより、ロボット１０の動作の追加学習、及びロボット１０の動作の精度を下げずに、計時部４６の構成を簡素なものとできる。具体的に説明すると、計時部４６が所定時間間隔でタイマー信号を常時出力する構成だと、タイマー信号に基づくロボット１０の動作の追加学習及び出力に、最大で当該時間間隔の遅延が発生する。本実施形態のように計時部４６が１秒間隔でタイマー信号を出力する場合、最大で１秒の遅延が発生するため、遅延の影響が無視できない。一方、タイマー信号の出力時間間隔が０．１秒又はそれ未満といった短い時間間隔である場合（即ち、ロボットシステム１が、概ねリアルタイムで、ロボット１０の動作の追加学習及び出力を処理できる場合）は、上記遅延の影響は軽微となる。
【００５４】
本実施形態では、作業状態の個数は高々５個であったが、作業状態の個数を増やしてもよい。これにより、現在の状態値に対応するより適切な作業状態を定めることが可能になる。
【００５５】
本実施形態では、ステップＳ１０５において、入力部２３は作業者による現在の作業状態の入力を受け付けて追加学習部４３に出力するが、入力部２３に次の作業状態の入力を受け付けて出力する手段（例えば図略のキー）を設け、この次の作業状態を追加学習部４３が受け取るように構成してもよい。これにより、ステップＳ１１０において、追加学習部４３が行う遷移後の作業状態の特定を省略することができる。
【００５６】
本実施形態では、作業状態２（接触）から作業状態３（挿入）へと作業状態が遷移するが、これに限らず、作業状態２（接触）から作業状態１（空中）へと作業状態を遷移させてもよい。これにより、より適切な作業状態の遷移を定めることが可能になる。例えば、図４に示すように、現在の作業状態が作業状態２（接触）、現在の状態値がＳ230である場合を考える。現在の状態値Ｓ230から作業状態３（挿入）の領域は遠く、作業状態１（空中）の領域は近い。このような場合、現在の状態値Ｓ230から作業状態３（挿入）に作業状態を遷移させるロボット１０の動作を学習させてもよいが、ワーク１００を上方に移動させることで状態値をＳ1に変化させて（即ち、作業状態１（空中）に遷移させて）から、更にワーク１００を移動させて状態値をＳ210に変化させるように、ロボット１０を動作させたほうが、作業の完了が早いことがありうる。どちらの動作がより適切かは、例えば、ロボット１０の動作が完了するまで（即ち、作業状態４（完了）に達するまで）の時間等により評価してもよい。
【００５７】
本実施形態では、切替装置３０は、切替部３１と、変換部３２と、を備えるが、切替装置３０の構成はこれに限られない。例えば、切替装置３０に、力センサ１２が検知したロボット１０が受けた力と、変換部３２に入力された操作力とに基づいて、変換部３２が動作指令を出力することを停止するように制御する規制部を設けてもよい。これにより、想定されていない状況になった場合にロボット１０の動作を規制できる。例えば、力センサ１２の検出値が閾値以上となったこと、作業者操作力又は演算操作力が閾値以上となったこと、力センサ１２の検出値が上昇し続けているにもかかわらず同じ方向にロボット１０を動作させる指示（操作力）が入力され続けていること等を検知することにより、ロボット１０又は周囲環境が想定外の状況に陥っていると規制部が判定した場合、規制部は変換部３２が動作指令を出力することを停止するように制御してもよい。
【００５８】
本実施形態では、ステップＳ１０５の処理の前後において（例えば、判定部４４がロボット１０の作業が継続できないことを示す判定結果を出力したとき）、制御部４０は、切替装置３０が作業者操作力を変換した動作指令を出力するように設定を変更し、ステップＳ１１０及びＳ１１１において、追加学習が完了したと判定したとき、制御部４０は、切替装置３０が演算操作力を変換した動作指令を出力するように設定を変更する。ここで、制御部４０（学習制御部４２）は、切替装置３０が作業者操作力を変換した動作指令を出力するように設定を変更する代わりに演算操作力の出力を中断し、切替装置３０が演算操作力を変換した動作指令を出力するように設定を変更する代わりに演算操作力の出力を再開するように構成してもよい。これにより、学習制御部４２による制御でロボット１０の作業が継続できないときに、演算操作力によるロボット１０の無用な動作のおそれを抑えることができる。
【００５９】
次に、図１０から図１５を参照して、第２実施形態について説明する。なお、第２実施形態の説明においては、第１実施形態と同一又は類似の部材には図面に同一の符号を付し、説明を省略する場合がある。
【００６０】
第２実施形態では、ロボット１０によって行われる作業を図１０に示すように複数の動作に分けて分類する。具体的には、動作Ａでは、ロボット１０にワークを保持させた状態で、部材の上方にワークを位置させ、当該ワークを部材の面に接近させる。動作Ｂでは、そのままワークを移動させ、当該部材の面にワークを接触させる。動作Ｃでは、開口部の位置に向けてワークを移動させる。なお、ワークの移動時に、ワークが部材の面に接触した状態を維持する。動作Ｄでは、開口部の内壁にワークの端部を接触させる。動作Ｅでは、開口部にワークを挿入させる。
【００６１】
ここで、第１実施形態で説明した「作業状態」と第２実施形態の「動作」は類似する概念である。例えば、第２実施形態において、動作Ａを行っている間を作業状態Ａと捉え、動作Ｂを行っている間を作業状態Ｂと捉えることもできる（動作Ｃ，Ｄについても同様）。
【００６２】
次に、図１１を参照して、第２実施形態のロボットシステム１について説明する。第２実施形態では、進行度及び確信度を取得して利用する点において、上記の第１実施形態とは異なる。第１実施形態において説明したように、制御部４０は、記憶部に記憶されたプログラムを演算装置が読み出して実行することで、様々な手段として機能することができる。第２実施形態の制御部４０は、更に、進行度取得部５１と、確信度取得部５２と、進行度監視部５６と、確信度監視部５７と、を備える。
【００６３】
進行度取得部５１は、進行度を取得する。進行度は、上述した機械学習（追加学習を含む）により構築されたモデルの出力に基づいてロボット１０が行う動作が、一連の作業のうちでどの進捗度合いに相当するかについて評価するために用いるパラメータである。本実施形態では、進行度は０から１００までの範囲の値をとり、１００に近い程、一連の作業が進行していることを示す。
【００６４】
図１２を参照して、進行度の算出について説明する。本実施形態では、図１２に示すように、進行度は、時系列的に取得することができるロボット１０の状態をクラスタリングして得られるクラスタと、ロボット１０の動作履歴と、を考慮して算出される。
【００６５】
上記したロボット１０の状態は、状態検出センサ１１〜１３からのセンサ情報及びモデルの演算操作力を含んだ多次元のベクトル（特徴ベクトル）として表現することができる。特徴ベクトルは、ロボット１０が一連の作業を行う過程で、様々に変化する。特徴ベクトルは、センサ情報及び演算操作力の当該時点での値だけでなく、センサ情報及び演算操作力の過去の履歴が含まれても良い。
【００６６】
以下の説明では、ロボット１０及びその周辺の状態と、それに応じてモデルが推定した結果と、を総合したものを、ロボット１０の局面と呼ぶことがある。前述の特徴ベクトルとして、ロボット１０の局面を表すデータ（局面データ）が用いられる。局面データは、モデルに入力される入力データ（具体的にはセンサ情報）と、モデルから出力される出力データ（具体的には演算操作力）と、の両方を総合したものに相当する。
【００６７】
クラスタリングとは、教師なし学習の一種であり、多数のデータから分布の法則を学習して、互いに特徴が似ているデータのまとまりである複数のクラスタを取得する手法である。クラスタリングの方法としては、公知の非階層クラスタリング手法を適宜用いることができる。
【００６８】
ロボット１０の局面は、上述した動作（動作Ａ〜動作Ｅ）ごとに特徴がある。例えば、動作Ａでの状態の特徴（つまり、動作Ａ時に取得する局面データ）は、動作Ｂでの状態の特徴とは異なる。従って、上述の特徴ベクトルを対象として適宜のクラスタリングを行うことにより、ロボット１０の局面を動作ごとに分類することができる。
【００６９】
学習制御部４２は、上記のクラスタリング結果を用いて、現在のロボット１０の局面に対応する進行度を算出する。図１２に示すように、進行度の値は、各クラスタが示す動作の順番に従って段階的かつ累積的に増加するように、予め定められる。ロボット１０の一連の作業は特徴ベクトルを時系列順に並べたものとして表現することができるので、この時系列順の情報を用いて、各クラスタの時系列順を求めることができる。
【００７０】
学習制御部４２は、現時点のロボット１０の局面を示す特徴ベクトルがどのクラスタに属するかを計算により求め、当該クラスタに対応する進行度を、進行度取得部５１又は確信度取得部５２の要求に応じて出力する。特徴ベクトルがどのクラスタに属するかを特定するには、例えば、各クラスタの重心位置と特徴ベクトルとの距離を求め、距離が最短となる重心を有するクラスタを求めれば良い。
【００７１】
図１３に示すように、ロボット１０の作業が進んでいる場合（つまり、ロボット１０の局面が適切に遷移している場合）、時間の経過に伴って進行度の値が増加する。しかしながら、ロボット１０の作業が進まない場合（例えば、特定の局面への遷移を繰り返す場合）、時間が経過しても進行度の値が増加しない。そのため、ユーザは、進行度の変化を見ることで、ロボット１０による自律作業が進んでいるかどうかについて、容易に把握することができる。その結果、ロボット１０の動作の停滞を容易に発見できるので、当該動作の修正等の適切な対応を行うことができる。
【００７２】
確信度取得部５２は、確信度を取得する。確信度は、ロボット１０の動作が確からしいかどうか（言い換えれば、モデルが推定する出力が確からしいかどうか）について評価するために用いるパラメータである。
【００７３】
学習制御部４２のモデルは、ロボット１０及びその周辺の状態と、その時に行われたユーザの操作による作業者操作力と、の対応関係を予め学習している。言い換えれば、モデルは、既知の多数の状態から獲得した法則に基づいて動作する。機械学習モデルが本来有する汎化能力により、未知の状況に対しても、モデルが適切な演算操作力を出力することが期待される。しかし、人間が今までの過去の経験から予測が難しいような全く新規の状況におかれたときに、確信をもって行動しにくいのと同様に、モデルの立場に立てば、今までに学習した既知の状態から遠い状態である程、推定結果に対する確信を持ちにくいということができる。確信度は、この意味で、推定の確からしさを示すものである。
【００７４】
本実施形態において、学習制御部４２には、ロボット１０の局面を判別するための確率的判別器が、機械学習により構築されている。この確率的判別器は、上述のクラスタリングによって分類されたクラスタの数に応じて、複数備えられている。
【００７５】
例えば、動作Ａのクラスタの確率的判別器においては、クラスタリングによって動作Ａのクラスタに分類された特徴ベクトルが入力されたときは、１００に近い値を出力し、他の動作のクラスタに分類された特徴ベクトルが入力されたときは、０に近い値を出力するように、機械学習が行われる。従って、学習が完了した確率的判別器に、現在のロボット１０の局面を示す特徴ベクトルを入力すると、確率的判別器は、当該局面が動作Ａらしいかどうかを示す値を出力する。この値は、現在のロボット１０の局面が動作Ａである確率（推定確率）を実質的に示しているということができる。他のクラスタ（他の動作Ｂ〜Ｅ）の確率的判別器においても、上記と同様に学習が行われる。
【００７６】
複数の確率的判別器のそれぞれに特徴ベクトルを入力することにより、現在の状況が動作Ａ〜Ｅのうちどの動作に対応すると推定されるか、また、当該推定が確からしいか否かを、確率的判別器に基づいて得ることができる。
【００７７】
本実施形態においては図１４に示すように、確信度として、複数の確率的判別器が出力する推定確率のうち最大の値が用いられている。既知のロボット１０の局面（言い換えれば、クラスタリングによって動作Ａ〜Ｅの何れかに分類されている局面）に対して現在の局面が似ている場合は、確信度の値が大きくなる。その一方で、既知のロボット１０の局面に対して現在の局面が似ていない場合は、確信度の値が小さくなる。
【００７８】
図１５に示すように、ユーザは、例えば一連の作業時における確信度の値を見ることで、ロボット１０の動作が確からしいかどうかについて評価することができる。即ち、モデルが覚えていない動きをする場合、確信度の値が低下する。従って、ユーザは、一連の作業において、学習が不十分である動作が含まれていることを把握することができる。確信度が小さい動作を、制御部４０が自動的に検出しても良い。その一方で、モデルが覚えている動きをする場合、確信度の値が上昇する。従って、ユーザは、ある局面でのロボット１０の動作が、既知の動作に一致していることを知ることもできる。
【００７９】
また、ユーザは、確信度の値を用いて、ロボット１０の動作が既知のある状態（例えば、動作Ａ〜Ｅの何れか）に到達していることを確認することもできる。
【００８０】
進行度監視部５６は、前述の進行度取得部５１が取得する進行度を監視する。進行度監視部５６は、図１３に示すように所定時間進行度が変化しない状況を検知し、ロボット１０の動作の停滞を検出することができる。
【００８１】
ロボット１０の動作の停滞を進行度監視部５６が検出した場合、制御部４０は、ロボット１０の制御を中止し、ロボット１０による作業を停止させる処理を行っても良い。この場合、進行度監視部５６の監視結果に基づくタイムアウト機能（作業の継続をあきらめる機能）を実現することができる。
【００８２】
第２実施形態では、このタイムアウト機能を用いて、第１実施形態の判定工程（Ｓ１０３）が行われる。具体的には、判定部４４は、進行度監視部５６が出力する進行度が上昇しない時間が閾値よりも長い間継続した場合、学習制御部４２による制御で作業が継続できないと判定する。
【００８３】
また、進行度は、第１実施形態の作業状態推定処理（Ｓ１０２）において、作業が完了したか否かを判定する処理にも用いられる。具体的には、学習制御部４２は、現在が動作Ｅに対応する作業状態であって進行度が閾値（例えば１００）以上か否かを判定し、進行度が閾値以上である場合に、作業が完了したと判定する。
【００８４】
確信度監視部５７は、確信度取得部５２が取得する確信度を監視する。確信度監視部５７は、確信度の値を常時監視して、図１５に示すように、確信度の値が所定値に達しない動作を検出したり、予め設定された作業状態に対して、現在の作業状態がどの程度類似しているかを検出したりする。
【００８５】
この確信度は、第１実施形態の類似度の代わりに用いることができる。従って、学習制御部４２は、例えば確信度監視部５７が出力する確信度を用いて、第１実施形態の作業状態推定処理（Ｓ１０２）を行うことができる。具体的には、学習制御部４２は、現在の作業状態が「完了」に相当する作業状態であって、かつ、確信度が閾値以上である場合、作業が完了したと判定する。
【００８６】
また、第１実施形態において、類似度は判定工程（Ｓ１０３）等にも用いられているため、確信度を用いて判定工程等を行うこともできる。具体的には、判定部４４は、確信度監視部５７が出力する確信度に基づいて、現在の確信度が閾値よりも低いと判定したときに、作業が継続できないと判定する。なぜなら、確信度が低い場合、現在の作業状態が既知の作業状態とは異なる可能性が高いからである。
【００８７】
また、確信度は、第１実施形態の類似度と同様、現在の正しい作業状態を作業者が特定するための情報としても用いることができる。具体的には、通知部４５は、作業が継続できない旨を表示させる第１の通知信号を表示装置２２に出力するとともに、確信度を表示させる第２の通知信号を表示装置２２へ出力する。
【００８８】
このように、進行度及び／又は確信度を用いることにより、作業の進捗度合いを数値化できるので、より的確な判断を行うことができる。
【００８９】
以上に説明したように、このロボットシステム１は、ロボット１０と、状態検出センサ１１〜１３と、計時部４６と、学習制御部４２と、判定部４４と、操作装置２１と、入力部２３と、切替装置３０と、追加学習部４３と、を備える。ロボット１０は、動作指令に基づいて作業を行う。状態検出センサ１１〜１３は、ロボット１０の作業の進行の状態を示す状態値を検出して出力する。計時部４６は、所定の時間間隔でタイマー信号を出力する。学習制御部４２は、作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、状態検出センサ１１〜１３により検出された状態値及びタイマー信号に基づいて、演算操作力を出力する。判定部４４は、状態検出センサ１１〜１３により検出された状態値に基づいて、学習制御部４２による制御でロボット１０の作業が継続可能か否かを示す判定結果を出力する（判定工程）。操作装置２１は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。入力部２３（図略のキー）は、作業者による作業状態の入力を受け付けて出力する。切替装置３０は、作業者操作力及び演算操作力に基づいて、作業者操作力又は演算操作力の何れかを動作指令に変換して出力する。追加学習部４３は、ロボット１０の作業の継続ができないことを示す判定結果と、入力部２３が出力した作業状態と、操作装置２１が出力した作業者操作力と、状態検出センサ１１〜１３が検出した状態値と、タイマー信号とに基づいて、作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の状態値及び当該状態値に対応付けられる作業者操作力とを追加学習してモデルを更新する（追加学習工程）。
【００９０】
これにより、現在及び次の作業状態と、操作力と、状態値とを追加学習させることで、ロボット１０が作業を継続できなくなった場合であっても、ロボットシステム１側で自律的に解決して作業を継続することが可能となる。
【００９１】
また、上記実施形態のロボットシステム１において、追加学習部４３は、状態値に基づいて、作業状態に対応付けられる次の作業状態を求め（状態遷移完了判定工程）、作業状態及び次の作業状態と、状態値及び作業者操作力とを追加学習してモデルを更新する。
【００９２】
また、上記実施形態のロボットシステム１において、入力部２３は、入力された作業状態に対応付けられる次の作業状態の作業者による入力を受け付けて追加学習部４３に出力し、追加学習部４３は、作業状態及び次の作業状態と、状態値及び作業者操作力とを追加学習してモデルを更新する。
【００９３】
これにより、作業状態の遷移を含むようにロボット１０の作業を追加学習することができ、ロボット１０の作業をより適切に追加学習することができる。
【００９４】
また、上記実施形態のロボットシステム１において、追加学習部４３は、作業状態が次の作業状態と異なる場合、作業状態及び次の作業状態と、複数組の状態値及び当該状態値に対応付けられる作業者操作力とを追加学習してモデルを更新する。
【００９５】
これにより、ロボット１０の動作を高い精度で追加学習することができる。
【００９６】
また、上記実施形態のロボットシステム１において、切替装置３０は、作業者操作力又は演算操作力の何れを変換することを示す設定信号に基づいて、作業者操作力又は演算操作力の何れかを動作指令に変換して出力する。
【００９７】
これにより、作業者がロボット１０を動作させる状態と、ロボットシステム１が自律運転を行う状態とを、切替装置３０の外部、特に制御部４０から切り替えることができる。
【００９８】
また、上記実施形態のロボットシステム１において、切替装置３０は、センサを備える。センサは、操作装置２１が出力した作業者操作力の大きさを検知する。切替装置３０は、検知された作業者操作力の大きさに基づいて、作業者操作力又は演算操作力の何れかを動作指令に変換して出力する。
【００９９】
これにより、切替装置３０は、作業者が操作部２０を操作している間、作業者がロボット１０を動作させる状態とすることができる。
【０１００】
また、上記実施形態のロボットシステム１において、学習制御部４２は、ロボット１０の作業が継続できないことを示す判定結果に基づいて、演算操作力の出力を中断し、追加学習が完了したと判定したとき、演算操作力の出力を再開する。
【０１０１】
これにより、学習制御部４２による制御でロボット１０の作業が継続できないときに、演算操作力によるロボット１０の無用な動作のおそれを抑えることができる。
【０１０２】
また、上記実施形態のロボットシステム１は、通知部４５と、表示装置２２と、を備える。通知部４５は、ロボット１０の作業の継続ができないことを示す判定結果に基づいて、通知信号を出力する（通知工程）。表示装置２２は、通知信号に基づいて表示を行う。
【０１０３】
これにより、作業者は、ロボット１０の作業の追加学習を必要とするタイミングや追加学習に関連する情報等を的確に把握することができる。
【０１０４】
また、上記実施形態のロボットシステム１において、学習制御部４２は、状態検出センサ１１〜１３により検出された状態値に基づいて、モデル内の作業状態に対して現在の状態値が類似している程度を示す類似度を算出して出力し、通知部４５は、当該類似度及びロボット１０の作業の継続ができないことを示す判定結果に基づいて、通知信号（第１・第２の通知信号）を出力する。
【０１０５】
これにより、通知された類似度を、表示装置２２が表示するため、作業者は現在の作業状態を的確に特定できる。
【０１０６】
また、上記実施形態のロボットシステム１において、学習制御部４２は、状態検出センサ１１〜１３により検出された状態値に基づいて、モデル内の作業状態に対して現在の状態値が類似している程度を示す類似度を算出して出力し、判定部４４は、状態値及び類似度に基づいて、判定結果を出力する。
【０１０７】
例えば、類似度に基づいて、何れの作業状態に対しても類似していないと判定される場合は、未知の状態であって、ロボットシステム１側で作業を継続することが困難である可能性が高い。このように、類似度を用いることで、作業の継続の可否を的確に判定できる。
【０１０８】
また、上記実施形態のロボットシステム１は、モデルに入力される入力データに応じて当該モデルが演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部５２を備える。通知部４５は、当該確信度及びロボット１０の作業の継続ができないことを示す判定結果に基づいて、通知信号を出力する。
【０１０９】
これにより、作業者は表示装置２２に表示された確信度に基づいて、現在の作業状態を的確に特定できる。
【０１１０】
また、上記実施形態のロボットシステム１は、モデルに入力される入力データに応じて当該モデルが演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部５２を備える。判定部４４は、確信度に基づいて、判定結果を出力する。
【０１１１】
例えば確信度が低い場合は、未知の作業状態又はそれに類似する状態であるため、ロボットシステム１側で作業を継続することが困難である可能性が高い。このように、確信度を用いることで、作業の継続の可否を的確に判定できる。
【０１１２】
また、上記実施形態のロボットシステム１は、モデルが出力する演算操作力に基づいて実現されるロボット１０の作業状態が、ロボット１０の作業のうちどの進捗度合いに相当するかを示す進行度を取得する進行度取得部５１を備える。判定部４４は、進行度に基づいて、判定結果を出力する。
【０１１３】
例えば進行度が変化しない場合は、ロボット１０による作業が停滞している可能性が高い。このように、進行度を用いることで、ロボットシステム１側で作業を継続可能であるかを的確に判定できる。
【０１１４】
また、上記実施形態のロボットシステム１において、追加学習部４３は、入力部２３に入力された作業状態が、モデル内に含まれていると判定した場合、状態検出センサ１１〜１３により検出された状態値に基づいて、モデル内の当該作業状態の推定基準を修正する（作業状態推定基準修正工程）。
【０１１５】
これにより、学習制御部４２が作業状態を一層的確に推定できるようなモデルを設定できる。
【０１１６】
また、上記実施形態のロボットシステム１において、追加学習部４３は、入力部２３に入力された作業状態が、モデル内に含まれていないと判定した場合、状態検出センサ１１〜１３により検出された状態値に基づいて、入力された当該作業状態をモデルに登録する（作業状態登録工程）。
【０１１７】
これにより、事前の機械学習時に全ての作業状態が網羅されていない場合であっても、新たな作業状態を追加学習させることができる。
【０１１８】
また、上記実施形態のロボットシステム１において、計時部４６は、トリガー信号に基づいて、当該トリガー信号の受信時から所定の時間間隔でタイマー信号を出力し、学習制御部４２は、演算操作力の出力を開始するときにトリガー信号を出力し、追加学習部４３は、作業者操作力の入力を検知したときにトリガー信号を出力する。
【０１１９】
これにより、ロボット１０の動作の追加学習及びロボット１０の動作で生ずる遅延の影響を少なくすることができる。
【０１２０】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【０１２１】
図５のフローチャートの内容は一例であり、処理の追加、処理の省略、処理の順序変更等を行ってもよい。例えば、類似度を表示することなく作業者が作業状態を特定できるような場面では、類似度の算出及び出力を省略してもよい。また、追加学習に関するデータを蓄積しておき、ある程度データが蓄積された後に追加学習を行わせてもよい。
【０１２２】
状態値として挙げたデータは一例であり、異なるデータを状態値として用いてもよい。例えば、方向に関するデータを状態値として用いる場合、ロボット１０と作業者（操作装置２１及び表示装置２２）とで共通の座標系でのデータを用いることで、処理を単純にすることができる。
【０１２３】
上記実施形態では、ロボットシステム１を構成する各装置が同じ作業現場に配置されることを想定しているが、ネットワークで情報をやり取りできるのであれば、少なくとも１つの装置（例えば操作装置２１）が遠隔地に配置されていてもよい。また、制御部４０が有する機能の少なくとも一部が、物理的に離れた位置に配置されていてもよい。また、操作装置２１を備えていないロボットシステム１に対しても、本発明を適用することができる。
【０１２４】
進行度及び確信度がとり得る範囲は任意であり、例えば０から１までとすることもできる。
【０１２５】
上記実施形態では、ロボット１０は台座部に取り付けられているが、自律的に走行可能な構成であってもよい。また、ロボット１０は、アーム部以外の部材で作業を行う構成であってもよい。
【符号の説明】
【０１２６】
１  ロボットシステム
１０  ロボット
１１  動作センサ
１２  力センサ
１３  カメラ
２１  操作装置
２２  表示装置
２３  入力部
３０  切替装置
４０  制御部
４１  通信部
４２  学習制御部
４３  追加学習部
４４  判定部
４５  通知部
４６  計時部
【図１】
2019225746.tif 000003
【図２】
2019225746.tif 000004
【図３】
2019225746.tif 000005
【図４】
2019225746.tif 000006
【図５】
2019225746.tif 000007
【図６】
2019225746.tif 000008
【図７】
2019225746.tif 000009
【図８】
2019225746.tif 000010
【図９】
2019225746.tif 000011
【図１０】
2019225746.tif 000012
【図１１】
2019225746.tif 000013
【図１２】
2019225746.tif 000014
【図１３】
2019225746.tif 000015
【図１４】
2019225746.tif 000016
【図１５】
2019225746.tif 000017
【手続補正書】
【提出日】令和2年11月25日(2020.11.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値に基づいて、演算操作力を出力する学習制御部と、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
作業者による前記作業状態の入力を受け付けて出力する入力部と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
前記ロボットの作業が継続できないことを示す前記判定結果と、前記入力部が出力した前記作業状態と、前記操作装置が出力した前記作業者操作力と、前記状態検出センサが検出した前記状態値とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習部と、
を備えることを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記追加学習部は、前記状態値に基づいて、前記作業状態に対応付けられる前記次の作業状態を求め、前記作業状態及び前記次の作業状態と、前記状態値及び前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項３】
請求項１に記載のロボットシステムであって、
前記入力部は、入力された前記作業状態に対応付けられる前記次の作業状態の作業者による入力を受け付けて前記追加学習部に出力し、
前記追加学習部は、前記作業状態及び前記次の作業状態と、前記状態値及び作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項４】
請求項１から３までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記作業状態が前記次の作業状態と異なる場合、前記作業状態及び前記次の作業状態と、複数組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項５】
請求項１から４までの何れか一項に記載のロボットシステムであって、
前記切替装置は、前記作業者操作力又は前記演算操作力の何れを変換することを示す設定信号に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項６】
請求項１から４までの何れか一項に記載のロボットシステムであって、
前記切替装置は、前記操作装置が出力した前記作業者操作力の大きさを検知するセンサを備え、
前記切替装置は、検知された前記作業者操作力の大きさに基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項７】
請求項１から６までの何れか一項に記載のロボットシステムであって、
前記学習制御部は、前記ロボットの作業が継続できないことを示す前記判定結果に基づいて、前記演算操作力の出力を中断し、追加学習が完了したと判定したとき、前記演算操作力の出力を再開することを特徴とするロボットシステム。
【請求項８】
請求項１から７までの何れか一項に記載のロボットシステムであって、
前記ロボットの作業が継続できないことを示す前記判定結果に基づいて、通知信号を出力する通知部と、
前記通知信号に基づいて表示を行う表示装置と、
を備えることを特徴とするロボットシステム。
【請求項９】
請求項８に記載のロボットシステムであって、
前記学習制御部は、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の前記作業状態に対して現在の前記状態値が類似している程度を示す類似度を算出して出力し、
前記通知部は、当該類似度及び前記ロボットの作業の継続ができないことを示す前記判定結果に基づいて、前記通知信号を出力することを特徴とするロボットシステム。
【請求項１０】
請求項１から８までの何れか一項に記載のロボットシステムであって、
前記学習制御部は、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の前記作業状態に対して現在の前記状態値が類似している程度を示す類似度を算出して出力し、
前記判定部は、前記状態値及び前記類似度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項１１】
請求項８に記載のロボットシステムであって、
前記モデルに入力される入力データに応じて当該モデルが前記演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部を備え、
前記通知部は、当該確信度及び前記ロボットの作業の継続ができないことを示す前記判定結果に基づいて、前記通知信号を出力することを特徴とするロボットシステム。
【請求項１２】
請求項１から８までの何れか一項に記載のロボットシステムであって、
前記モデルに入力される入力データに応じて当該モデルが前記演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部を備え、
前記判定部は、前記確信度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項１３】
請求項１から１２までの何れか一項に記載のロボットシステムであって、
前記モデルが出力する前記演算操作力に基づいて実現される前記ロボットの作業状態が、前記ロボットの作業のうちどの進捗度合いに相当するかを示す進行度を取得する進行度取得部を備え、
前記判定部は、前記進行度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項１４】
請求項１から１３までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記入力部に入力された前記作業状態が、前記モデル内に含まれていると判定した場合、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の当該作業状態の推定基準を修正することを特徴とするロボットシステム。
【請求項１５】
請求項１から１４までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記入力部に入力された前記作業状態が、前記モデル内に含まれていないと判定した場合、前記状態検出センサにより検出された前記状態値に基づいて、入力された当該作業状態を前記モデルに登録することを特徴とするロボットシステム。
【請求項１６】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値に基づいて、演算操作力を出力する学習制御部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
を備えるロボットシステムに対して、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定工程と、
前記作業状態と、前記操作装置からの前記作業者操作力との入力を受け付ける入力受付工程と、
前記ロボットの作業が継続できないことを示す前記判定結果と、入力された前記作業状態と、入力された前記作業者操作力と、前記状態検出センサが検出した前記状態値とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習工程と、
を含む処理を行うことを特徴とする追加学習方法。
【請求項１７】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと、
所定の時間間隔でタイマー信号を出力する計時部と、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値及び前記タイマー信号に基づいて、演算操作力を出力する学習制御部と、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
作業者による前記作業状態の入力を受け付けて出力する入力部と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
前記ロボットの作業が継続できないことを示す前記判定結果と、前記入力部が出力した前記作業状態と、前記操作装置が出力した前記作業者操作力と、前記状態検出センサが検出した前記状態値と、前記タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも１組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習部と、
を備えることを特徴とするロボットシステム。
【請求項１８】
請求項１７に記載のロボットシステムであって、
前記追加学習部は、前記状態値に基づいて、前記作業状態に対応付けられる前記次の作業状態を求め、前記作業状態及び前記次の作業状態と、前記状態値及び前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項１９】
請求項１７に記載のロボットシステムであって、
前記計時部は、トリガー信号に基づいて、当該トリガー信号の受信時から前記所定の時間間隔で前記タイマー信号を出力し、
前記学習制御部は、前記演算操作力の出力を開始するときに前記トリガー信号を出力し、
前記追加学習部は、前記作業者操作力の入力を検知したときに前記トリガー信号を出力することを特徴とするロボットシステム。
【国際調査報告】
2019225746.tif 000018
2019225746.tif 000019
2019225746.tif 000020
2019225746.tif 000021