(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-28
(45)【発行日】2022-11-08
(54)【発明の名称】ロボットシステム及び追加学習方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20221031BHJP
【FI】
B25J13/08 Z
(21)【出願番号】P 2020520399
(86)(22)【出願日】2019-05-24
(86)【国際出願番号】 JP2019020697
(87)【国際公開番号】W WO2019225746
(87)【国際公開日】2019-11-28
【審査請求日】2022-02-01
(31)【優先権主張番号】P 2018100520
(32)【優先日】2018-05-25
(33)【優先権主張国・地域又は機関】JP
(31)【優先権主張番号】P 2018245459
(32)【優先日】2018-12-27
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】100118784
【氏名又は名称】桂川 直己
(72)【発明者】
【氏名】蓮沼 仁志
(72)【発明者】
【氏名】志鷹 拓哉
(72)【発明者】
【氏名】山本 武司
(72)【発明者】
【氏名】倉島 一輝
【審査官】仁木 学
(56)【参考文献】
【文献】特開2016-159407(JP,A)
【文献】特開2017-170553(JP,A)
【文献】特開2017-185577(JP,A)
【文献】特表2013-543764(JP,A)
【文献】特開2017-200718(JP,A)
【文献】特開2009-125920(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ー 21/02
(57)【特許請求の範囲】
【請求項1】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと
、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態
値に基づいて、演算操作力を出力する学習制御部と、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
作業者による前記作業状態の入力を受け付けて出力する入力部と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
前記ロボットの作業が継続できないことを示す前記判定結果と、前記入力部が出力した前記作業状態と、前記操作装置が出力した前記作業者操作力と、前記状態検出センサが検出した前記状態値
とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習部と、
を備えることを特徴とするロボットシステム。
【請求項2】
請求項1に記載のロボットシステムであって、
前記追加学習部は、前記状態値に基づいて、前記作業状態に対応付けられる前記次の作業状態を求め、前記作業状態及び前記次の作業状態と、前記状態値及び前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項3】
請求項1に記載のロボットシステムであって、
前記入力部は、入力された前記作業状態に対応付けられる前記次の作業状態の作業者による入力を受け付けて前記追加学習部に出力し、
前記追加学習部は、前記作業状態及び前記次の作業状態と、前記状態値及び作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項4】
請求項1から3までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記作業状態が前記次の作業状態と異なる場合、前記作業状態及び前記次の作業状態と、複数組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項5】
請求項1から4までの何れか一項に記載のロボットシステムであって、
前記切替装置は、前記作業者操作力又は前記演算操作力の何れを変換することを示す設定信号に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項6】
請求項1から4までの何れか一項に記載のロボットシステムであって、
前記切替装置は、前記操作装置が出力した前記作業者操作力の大きさを検知するセンサを備え、
前記切替装置は、検知された前記作業者操作力の大きさに基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項7】
請求項1から6までの何れか一項に記載のロボットシステムであって、
前記学習制御部は、前記ロボットの作業が継続できないことを示す前記判定結果に基づいて、前記演算操作力の出力を中断し、追加学習が完了したと判定したとき、前記演算操作力の出力を再開することを特徴とするロボットシステム。
【請求項8】
請求項1から7までの何れか一項に記載のロボットシステムであって、
前記ロボットの作業が継続できないことを示す前記判定結果に基づいて、通知信号を出力する通知部と、
前記通知信号に基づいて表示を行う表示装置と、
を備えることを特徴とするロボットシステム。
【請求項9】
請求項8に記載のロボットシステムであって、
前記学習制御部は、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の前記作業状態に対して現在の前記状態値が類似している程度を示す類似度を算出して出力し、
前記通知部は、当該類似度及び前記ロボットの作業の継続ができないことを示す前記判定結果に基づいて、前記通知信号を出力することを特徴とするロボットシステム。
【請求項10】
請求項1から8までの何れか一項に記載のロボットシステムであって、
前記学習制御部は、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の前記作業状態に対して現在の前記状態値が類似している程度を示す類似度を算出して出力し、
前記判定部は、前記状態値及び前記類似度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項11】
請求項8に記載のロボットシステムであって、
前記モデルに入力される入力データに応じて当該モデルが前記演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部を備え、
前記通知部は、当該確信度及び前記ロボットの作業の継続ができないことを示す前記判定結果に基づいて、前記通知信号を出力することを特徴とするロボットシステム。
【請求項12】
請求項1から8までの何れか一項に記載のロボットシステムであって、
前記モデルに入力される入力データに応じて当該モデルが前記演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部を備え、
前記判定部は、前記確信度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項13】
請求項1から12までの何れか一項に記載のロボットシステムであって、
前記モデルが出力する前記演算操作力に基づいて実現される前記ロボットの作業状態が、前記ロボットの作業のうちどの進捗度合いに相当するかを示す進行度を取得する進行度取得部を備え、
前記判定部は、前記進行度に基づいて、前記判定結果を出力することを特徴とするロボットシステム。
【請求項14】
請求項1から13までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記入力部に入力された前記作業状態が、前記モデル内に含まれていると判定した場合、前記状態検出センサにより検出された前記状態値に基づいて、前記モデル内の当該作業状態の推定基準を修正することを特徴とするロボットシステム。
【請求項15】
請求項1から14までの何れか一項に記載のロボットシステムであって、
前記追加学習部は、前記入力部に入力された前記作業状態が、前記モデル内に含まれていないと判定した場合、前記状態検出センサにより検出された前記状態値に基づいて、入力された当該作業状態を前記モデルに登録することを特徴とするロボットシステム。
【請求項16】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと
、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態
値に基づいて、演算操作力を出力する学習制御部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
を備えるロボットシステムに対して、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定工程と、
前記作業状態と、前記操作装置からの前記作業者操作力との入力を受け付ける入力受付工程と、
前記ロボットの作業が継続できないことを示す前記判定結果と、入力された前記作業状態と、入力された前記作業者操作力と、前記状態検出センサが検出した前記状態値
とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習工程と、
を含む処理を行うことを特徴とする追加学習方法。
【請求項17】
動作指令に基づいて作業を行うロボットと、
前記ロボットの作業の進行の状態を示す状態値を検出して出力する状態検出センサと、
所定の時間間隔でタイマー信号を出力する計時部と、
作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値及び前記タイマー信号に基づいて、演算操作力を出力する学習制御部と、
前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する判定部と、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
作業者による前記作業状態の入力を受け付けて出力する入力部と、
前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する切替装置と、
前記ロボットの作業が継続できないことを示す前記判定結果と、前記入力部が出力した前記作業状態と、前記操作装置が出力した前記作業者操作力と、前記状態検出センサが検出した前記状態値と、前記タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる前記次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する追加学習部と、
を備えることを特徴とするロボットシステム。
【請求項18】
請求項17に記載のロボットシステムであって、
前記追加学習部は、前記状態値に基づいて、前記作業状態に対応付けられる前記次の作業状態を求め、前記作業状態及び前記次の作業状態と、前記状態値及び前記作業者操作力とを追加学習して前記モデルを更新することを特徴とするロボットシステム。
【請求項19】
請求項17に記載のロボットシステムであって、
前記計時部は、トリガー信号に基づいて、当該トリガー信号の受信時から前記所定の時間間隔で前記タイマー信号を出力し、
前記学習制御部は、前記演算操作力の出力を開始するときに前記トリガー信号を出力し、
前記追加学習部は、前記作業者操作力の入力を検知したときに前記トリガー信号を出力することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主として、機械学習により構築されたモデルに基づいてロボットに作業を行わせるロボットシステムに関する。
【背景技術】
【0002】
特許文献1は、ロボットアームを制御して複数の部品を組み付ける組立方法を開示する。この組立方法では、ロボットアームで保持した2つの部品の座標をそれぞれ取得し、2つの部品の座標が適切であると判定した場合に、両部品を接続する。
【0003】
特許文献2は、複数のワークから1つのワークを把持して移動させるロボットの動作を機械学習装置によって学習する方法を開示する。この機械学習装置の出力に基づいてロボットを制御することで、複数のワークが乱雑に置かれている状況であっても、ロボットは所望のワークを取り出す。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2017-7064号公報
【文献】特開2017-30135号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の方法では、例えば、ロボットアームが引っ掛かったりして動作できなくなったときは、ロボットアームは作業を継続することができない。また、特許文献2の方法では、予め学習されていない状況になったときは、ロボットは作業を継続することができない。
【0006】
本発明は以上の事情に鑑みてされたものであり、その主要な目的は、ロボットが作業を継続できなくなった場合において、次に同種の状態になった場合に作業を継続可能とするよう追加学習を行うロボットシステムを提供することにある。
【課題を解決するための手段】
【0007】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【0008】
本発明の観点によれば、以下の構成のロボットシステムが提供される。即ち、このロボットシステムは、ロボットと、状態検出センサと、計時部と、学習制御部と、判定部と、操作装置と、入力部と、切替装置と、追加学習部と、を備える。前記ロボットは、動作指令に基づいて作業を行う。前記状態検出センサは、前記ロボットの作業の進行を示す状態値を検出して出力する。前記計時部は、所定の時間間隔でタイマー信号を出力する。前記学習制御部は、作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、前記状態検出センサにより検出された前記状態値及び前記タイマー信号に基づいて、演算操作力を出力する。前記判定部は、前記状態検出センサにより検出された前記状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する。前記操作装置は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。前記入力部は、作業者による前記作業状態の入力を受け付けて出力する。前記切替装置は、前記作業者操作力及び前記演算操作力に基づいて、前記作業者操作力又は前記演算操作力の何れかを前記動作指令に変換して出力する。前記追加学習部は、前記ロボットの作業が継続できないことを示す前記判定結果と、前記入力部が出力した前記作業状態と、前記操作装置が出力した前記作業者操作力と、前記状態検出センサが検出した前記状態値と、前記タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する。
【0009】
本発明の別の観点によれば、以下の追加学習方法が提供される。即ち、この追加学習方法は、ロボットと、状態検出センサと、計時部と、学習制御部と、操作装置と、切替装置と、を備えるロボットシステムに対して、判定工程と、入力受付工程と、追加学習工程と、を含む処理を行う。前記判定工程では、前記状態検出センサにより検出された状態値に基づいて、前記学習制御部による制御で前記ロボットの作業が継続可能か否かを示す判定結果を出力する。前記入力受付工程では、作業状態と、前記操作装置からの作業者操作力との入力を受け付ける。前記追加学習工程では、前記ロボットの作業が継続できないことを示す前記判定結果と、入力された前記作業状態と、入力された前記作業者操作力と、前記状態検出センサが検出した前記状態値と、タイマー信号とに基づいて、前記作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の前記状態値及び当該状態値に対応付けられる前記作業者操作力とを追加学習して前記モデルを更新する。
【0010】
これにより、作業状態及び次の作業状態と、操作力と、状態値とを追加学習させることで、ロボットが作業を継続できなくなった場合であっても、ロボットシステム側で自律的に解決して作業を継続することが可能となる。
【発明の効果】
【0011】
本発明によれば、ロボットが作業を継続できなくなった場合において、次に同種の状態になった場合のために作業を継続可能とするよう追加学習を行うロボットシステムを提供することができる。
【図面の簡単な説明】
【0012】
【
図1】第1実施形態に係るロボットシステムの構成を示すブロック図。
【
図2】ロボットが行う作業の流れ及び作業状態を示す図。
【
図4】モデル内における、状態値及び作業状態の対応の一例を概念的に示す図。
【
図5】追加学習に関してロボットシステムが行う処理を示すフローチャート。
【
図6】現在の作業状態がモデル内の作業状態と入力された際の追加学習の内容を概念的に示す図。
【
図7】現在の作業状態が新たな作業状態と入力され、前の作業状態へ戻す動作が入力された際の追加学習の内容を概念的に示す図。
【
図8】現在の作業状態がモデル内の作業状態と入力された際に追加学習するデータの一例を示す図。
【
図9】現在の作業状態が新たな作業状態と入力された際に追加学習するデータの一例を示す図。
【
図10】第2実施形態でロボットが行う動作を説明する図。
【
図11】第2実施形態に係るロボットシステムの構成を示すブロック図。
【
図13】ロボットの動作に応じた進行度の値の推移の例を示す図。
【
図15】ロボットの動作に応じた確信度の値の推移の例を示す図。
【発明を実施するための形態】
【0013】
次に、図面を参照して本発明の実施形態を説明する。初めに、
図1を参照して、第1実施形態のロボットシステム1について説明する。
図1は、ロボットシステム1の構成を示すブロック図である。
【0014】
ロボットシステム1は、ロボット10に作業を行わせるためのシステムである。ロボット10に行わせる作業としては様々であるが、例えば、組立て、加工、塗装、洗浄等がある。ロボット10は、後述するデータを機械学習することで構築されたモデルを用いて制御されている。そのため、ロボットシステム1は、基本的には作業者の補助を必要とせず、作業を自律的に行うことができる。このようにロボット10が作業を自律的に行うことを「自律運転」と称することがある。また、本実施形態のロボットシステム1では、作業者の操作に応じてロボット10を動作させることもできる。また、ロボット10は、自律的に作業を行うだけでなく、作業者の操作に応じて作業を行うこともできる。
図1に示すように、ロボットシステム1は、ロボット10と、操作部20と、切替装置30と、制御部40と、を備える。それぞれの装置は、有線又は無線のネットワークを介して互いに接続されている。
【0015】
ロボット10は、台座に取り付けられたアーム部を備える。アーム部は、複数の関節を有しており、各関節にはアクチュエータが備えられている。ロボット10は、外部から入力された動作指令に応じてアクチュエータを動作させることでアーム部を動作させる。この動作指令は、直線状の速度の指令と、角速度の指令と、を含む。アーム部の先端には、作業内容に応じたエンドエフェクタが取り付けられている。ロボット10は、外部から入力された動作指令に応じてエンドエフェクタを動作させることで作業を行う。
【0016】
また、ロボット10には、ロボット10の動作及び周囲環境等を検出するためのセンサが取り付けられている。本実施形態では、動作センサ11と、力センサ12と、カメラ13と、がロボット10に取り付けられている。動作センサ11は、ロボット10のアーム部の関節毎に設けられており、各関節の回転角度又は角速度を検出する。力センサ12は、ロボット10の動作時に、ロボット10が受けた力を検出する。力センサ12はエンドエフェクタに掛かる力を検出する構成であってもよいし、アーム部の各関節に掛かる力を検出する構成であってもよい。また、力センサ12は、力に代えて又は加えてモーメントを検出する構成であってもよい。カメラ13は、作業対象であるワークの映像(ワークへの作業の進行状況)を検出する。カメラ13に代えて又は加えて、音を検出する音センサ及び/又は振動を検出する振動センサを設け、これらのセンサの検出結果に基づいて、ワークへの作業の進行状況を検出することもできる。動作センサ11が検出するデータは、ロボット10の動作を示す動作データであり、力センサ12、及びカメラ13が検出するデータは、ロボット10の周囲の環境の状態を示す周囲環境データであり、動作センサ11、力センサ12、及びカメラ13が検出するデータは、ロボット10の作業(ワークへの作業)の進行の状態を示す状態値である。以下の説明では、ロボット10に設けられた動作センサ11、力センサ12、及びカメラ13をまとめて「状態検出センサ11~13」と称することがある。また、状態検出センサ11~13が検出したデータを、特に「センサ情報」と称することがある。なお、状態検出センサ11~13は、ロボット10に取り付ける代わりに、ロボット10の周囲に設けてもよい。
【0017】
操作部20は、操作装置21と、表示装置22と、入力部23と、を備える。操作装置21は、ロボット10を動作させるために作業者が操作する部材である。操作装置21は、作業内容に応じて異なるが、例えば、作業者が手で操作するレバー又は足で操作するペダルである。操作装置21は、図略の公知の操作力検出センサを備える。操作力検出センサは、作業者が操作装置21に加えた力である操作力を検出する。操作装置21が様々な方向に動かすことができるように構成されている場合、操作力は力の向き及び大きさを含む値、例えばベクトルであってもよい。また、操作力は、作業者が加えた力(N)だけでなく、力に連動する値である加速度(即ち、作業者が加えた力を操作装置21の質量で除算した値)であってもよい。以下の説明では、作業者が操作装置21に加えた操作力を、特に「作業者操作力」と称することがある。作業者が操作部20(操作装置21)を操作することで出力された作業者操作力は、後述するように切替装置30で動作指令に変換される。
【0018】
表示装置22は、液晶又は有機EL等のドットマトリクス式のディスプレイである。表示装置22は、操作装置21の近傍に配置されており、映像信号、例えば後述する通知信号に基づいて、ロボットシステム1が行う作業に関する情報を表示する。操作装置21がロボット10から離れた位置に配置された場合は、表示装置22にロボット10の近傍の映像を表示させるようにしてもよい。入力部23は、後述する追加学習時において、作業者による作業状態の入力を受け付ける図略のキー等であり、入力された作業状態を制御部40(追加学習部43)に出力する。
【0019】
切替装置30には、ロボット10、操作部20、及び制御部40が接続されている。切替装置30には、操作部20が出力した作業者操作力と、後述する制御部40が出力した演算操作力と、が入力される。切替装置30は、ロボット10を動作させるための動作指令を、ロボット10及び制御部40(通信部41)へ出力する。切替装置30は、例えば、公知のコンピュータにより構成されており、演算装置(CPU等)と、記憶部(例えばROM、RAM、HDD等)とを備える。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、切替装置30は様々な手段として機能することができる。機能毎に名称を付けると、切替装置30は、切替部31と、変換部32と、を備える。
【0020】
切替部31は、入力された作業者操作力及び演算操作力から、作業者操作力又は演算操作力の何れかを変換部32へ出力するように構成されている。また、切替部31はコネクタ又はアンテナを備えており、切替装置30の外部から、作業者操作力又は演算操作力の何れを変換するかを示す設定信号に基づいて、作業者操作力又は演算操作力の何れかを変換部32へ出力するように構成されている。これにより、作業者がロボット10を動作させる状態(即ち、操作部20が出力した作業者操作力に基づいて、ロボット10が動作する状態)と、ロボットシステム1がロボット10に自律的に作業を行わせる状態(即ち、制御部40が出力した演算操作力に基づいて、ロボット10が動作する状態)と、を切り替えることができる。なお、切替部31に操作力を検知する図略のセンサを設け、切替部31は、作業者が操作部20(操作装置21)を操作していると判定したとき(例えば、操作部20が出力した作業者操作力の大きさが閾値以上であると判定したとき)は作業者操作力を変換部32に出力し、作業者が操作部20を操作していないと判定したとき(例えば、操作部20が出力した作業者操作力の大きさが閾値未満であると判定したとき)は制御部40が出力した演算操作力を変換部32に出力するように構成してもよい。これにより、切替部31は、設定信号に基づかずとも、作業者が操作部20を操作している間、作業者がロボット10を動作させる状態とすることができる。
【0021】
変換部32は、切替部31から入力された作業者操作力又は演算操作力の何れかを、ロボット10を動作させるための動作指令に変換して、ロボット10及び制御部40(通信部41)に出力する。
【0022】
制御部40は、公知のコンピュータにより構成されており、演算装置(CPU等)と記憶部(例えばROM、RAM、HDD等)を備えている。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、制御部40は様々な手段として機能することができる。機能毎に名称を付けると、制御部40は、通信部41と、学習制御部42と、追加学習部43と、判定部44と、通知部45と、計時部46と、を備える。通信部41はコネクタ又はアンテナを備えており、制御部40の外部からの入力を、制御部40内の各部42~46に出力するように構成されている。通信部41は、制御部40内の各部42~46による出力を、制御部40の外部に出力するよう構成されている。例えば、通信部41が受け取る、制御部40の外部からの入力としては、操作部20(操作装置21)が出力する作業者操作力、操作部20(入力部23)が出力する作業状態、切替装置30(変換部32)が出力する動作指令、状態検出センサ11~13が出力するセンサ情報がある。また、例えば、通信部41が出力する、制御部40の外部への出力としては、後述する切替装置30へ出力する演算操作力、後述する操作部20(表示装置22)へ出力する通知信号がある。以下、制御部40内の各部42~46による、制御部40の外部との入出力については、通信部41を介することを特に言及しないことがある。計時部46は、演算装置の内部クロック等を用いた、周知の計時機能を有する。計時機能は、例えば、計時部46の外部からのトリガー信号に基づいて、トリガー信号の入力時から所定の時間間隔(例えば、1秒毎)でタイマー信号の出力を開始するタイマー機能を含む。なお、計時部46は、計時部46の外部からのトリガー信号及び時間間隔(例えば、1秒)を示す信号に基づいて、トリガー信号の入力時から当該時間間隔でタイマー信号の出力を開始するタイマー機能を有するように構成してもよい。また、計時部46の外部からのトリガー信号は、計時部46にタイマー信号の出力を開始させる第1のトリガー信号と、計時部46にタイマー信号の出力を終了させる第2のトリガー信号と、を含んでもよい。
【0023】
学習制御部42は、機械学習により構築されたモデルを用いて切替装置30を介してロボット10に操作力を出力することで、ロボット10に作業を行わせる。以下、制御部40(学習制御部42)が出力する操作力を「演算操作力」と称することがある。以下、このモデルの構築方法について具体的に説明する。なお、本実施形態では、演算操作力の出力は1秒毎(即ち、計時部46のタイマー信号の時間間隔)に切り替わるものとする。
【0024】
図2に示すように、ワーク100を凹部110に入れる作業をロボット10に行わせる場合、例えば、空中、接触、挿入、及び完了の4つの作業状態に分類することができる。作業状態1(空中)はロボット10がワーク100を保持して凹部110の上部に位置させている状態である。作業状態2(接触)は、ロボット10が保持したワーク100を、凹部110が形成されている面に接触させている状態である。作業状態3(挿入)は、ロボット10が保持したワーク100を凹部110に挿入している状態である。作業状態4(完了)は、ロボット10が保持したワーク100が凹部110に完全に挿入された状態である。このように、4つの作業状態は、ロボット10による一連の作業を工程毎に分類したものであり、ロボット10の作業が正しく進行すると、作業状態1(空中)、作業状態2(接触)、作業状態3(挿入)、作業状態4(完了)の順で作業状態が遷移する。また、別の作業状態として作業状態5(拗れ)がある。作業状態5(拗れ)は、最初に機械学習させる段階では作業状態として登録されていない。作業状態5(拗れ)は、ワーク100が凹部110に挿入されているが、挿入を更に進行させることができず、作業状態1(空中)に遷移させないと、即ち一度ワーク100を上方に移動させて凹部110から離さないと、作業を継続できない状態である。
【0025】
次に、学習制御部42が機械学習するデータについて説明する。学習制御部42は、現在の作業状態及び現在の作業状態に対応付けられる次の作業状態(即ち、次に遷移する作業状態)と、少なくとも1組の状態値及びこの状態値に対応付けられる操作力と、を機械学習し、モデルを構築する。状態値は、ロボット10の作業の進行を示す値であり、作業の進行に応じて変化する値である。状態値としては、状態検出センサ11~13が検出したセンサ情報(例えば、位置、速度、力、モーメント、映像等の作業状況)がある。状態値には、当該センサ情報に基づいて算出された情報(例えば、過去から現在までのセンサ情報の経時変化を示す値)を含めてもよい。
【0026】
図3は学習制御部42が機械学習するデータの一例を示す図である。
図4はモデル内における、状態値及び作業状態の対応の一例を概念的に示す図である。
図3及び
図4に示すように、現在の作業状態が作業状態2(接触)、現在の状態値がS
210であって、作業状態3(挿入)に遷移させる(状態値S
310とする)ような、ロボット10のn秒間(nは1以上の整数)の動作を学習制御部42に機械学習させる場合を考える。学習制御部42は、
図3に示すデータを機械学習し、モデルを構築する。詳細には、学習制御部42は、現在の作業状態2(接触)及び次の作業状態3(挿入)と、現在の状態値S
210及び操作力I
210と、m(mは1~(n-1)の整数)秒後の状態値S
21m及び操作力I
21mと、n秒後の状態値S
21n及びダミーの操作力を示すI
nullと、を機械学習する。
図3に示すように、現在の作業状態2(接触)は次の作業状態3(挿入)と異なり、状態値及び操作力は(n+1)組、即ち複数組ある。学習制御部42は、時刻(例えば、0~n秒後)と、当該時刻における状態値(例えば、S
210~S
21n)及び操作力(例えば、I
210~I
null)と、を対応付けて機械学習してもよく、本実施形態のように、操作力の出力の時間順を維持するように機械学習を行うことにより、時刻の機械学習を省略してもよい。また、学習制御部42は、n秒後の状態値S
21n及びダミーの操作力を示すI
nullを機械学習しないように構成してもよい。ここで、学習させる操作力は、操作部20(操作装置21)が出力する作業者操作力でもよく、データとして予め用意されたものであってもよい。
【0027】
現在の作業状態が作業状態2(接触)であって、作業状態3(挿入)に遷移させるロボット10の動作は様々である。例えば、現在の状態値が作業状態2(接触)を示すS
220であって、作業状態3(挿入)を示す状態値S
310とするようなロボット10の動作も含まれる。本実施形態では、学習制御部42は、このようなロボット10の動作も機械学習して、モデルを構築する。機械学習の方法は
図3を参照して上述した方法と同様であるので、その詳細な説明を省略する。
【0028】
作業状態2(接触)を作業状態3(挿入)に遷移させるロボット10の動作や、作業状態3(挿入)を作業状態4(完了)に遷移させるロボット10の動作についても、学習制御部42は機械学習を行い、モデルを構築する。機械学習の方法は
図3を参照して上述した方法と同様であるので、その詳細な説明を省略する。なお、現在の作業状態が作業状態4(完了)である場合は、ロボット10は動作の必要がない。この場合は、学習制御部42は、現在の作業状態4(完了)及び次の作業状態4(完了)と、0秒後(即ち、現在)の状態値S
4及びダミーの操作力を示すI
nullとを機械学習してもよい。
【0029】
学習制御部42は、構築されたモデルに基づいて、現在の状態値から現在の作業状態を推定する作業状態推定処理と、現在の状態値及び推定した現在の作業状態から次の作業状態を推定する次作業状態推定処理と、現在の状態値、及び推定した現在の作業状態及び次の作業状態に基づいて、出力する操作力(演算操作力)を決定し、この演算操作力を切替装置30に出力する出力処理と、を行う。これにより、学習制御部42は、作業を適切に行うようにロボット10の動作を制御することができる。
【0030】
初めに、現在の作業状態の推定(作業状態推定処理)について説明する。上述のとおり、学習制御部42は、状態値と、作業状態(及び次の作業状態)とを機械学習し、現在の状態値に基づいて、現在の作業状態(及び次の作業状態)を推定する。
図4に示すように、状態値が3つであり、機械学習された状態値(
図4における点に対応)がモデル内に分布している場合を考える。
図4には各作業状態に対応する領域(空間)が記載されているが、状態値がこれらの領域の内部に位置する場合は、当該状態値は当該領域と対応付けられている作業状態である確率が高いことを示すものである。例えば、「作業状態2(接触)」の領域は、機械学習した状態値のうち作業状態2(接触)と判定された状態値の集合(クラスタ)を示すものであり、この集合(クラスタ)は、作業状態2(接触)と判定された状態値を示す点の座標が、当該領域からの中心点からの距離が第1の距離以下となり、かつ、他の領域の中心点からの距離が第1の距離より長い第2の距離以上となるように、「作業状態2(接触)」の領域の中心点を定めることによって形成されたものである。従って、
図4に示すように、現在の状態値がS
210、S
310である場合は、学習制御部42は、現在の作業状態をそれぞれ、作業状態2(接触)、作業状態3(挿入)であると推定する。
【0031】
次に、次の作業状態を推定する処理(次作業状態推定処理)について説明する。上述のとおり、学習制御部42は、状態値と、作業状態及び次の作業状態とを機械学習し、現在の状態値と、推定した現在の作業状態に基づいて、次の作業状態を推定する。例えば、
図4に示すように、現在の状態値がS
210であり、現在の作業状態が作業状態2(接触)と推定された場合であって、
図3に示すように、機械学習時における現在の状態値がS
210であり、この現在の作業状態が作業状態2(接触)であるとき、次の作業状態が作業状態3(挿入)である(即ち、作業状態を作業状態2(接触)から作業状態3(挿入)に遷移させる)ロボット10の動作を学習制御部42が機械学習した場合を考える。この場合、学習制御部42は、次の作業状態を作業状態3(挿入)であると推定する。
【0032】
次に、演算操作力を決定し出力する処理(出力処理)について説明する。上述のとおり、学習制御部42は、作業状態及び次の作業状態と、状態値及び操作力とを機械学習し、現在の作業状態及び次の作業状態と、現在の状態値とに基づいて、切替装置30へ出力する演算操作力を決定する。例えば、
図4に示すように、現在の状態値がS
210であり、現在の作業状態が作業状態2(接触)、次の作業状態が作業状態3(挿入)と推定された場合を考える。
図4には、状態値S
210から状態値S
310へと延びる矢印が示されている。この矢印は、
図3に示す作業状態2(接触)から作業状態3(挿入)へと作業状態を遷移させる、学習制御部42が機械学習したロボット10のn秒間の動作に対応する。この場合、学習制御部42は、
図3に示す最初の操作力I
210を切替装置30に演算操作力として出力するときに、計時部46にトリガー信号を出力する。計時部46は、トリガー信号に基づいて、トリガー信号の入力時から1秒毎にタイマー信号を出力する。次に、学習制御部42は、
図3に示す操作力I
210~I
21(n-1)を、計時部46からのタイマー信号に基づいて1秒毎に切り替えながら、切替装置30に演算操作力として出力する。そして、学習制御部42は、
図3に示す操作力がダミーの操作力を示すI
nullであることを検知すると、演算操作力の出力を停止する。
【0033】
以上説明した通り、学習制御部42は、機械学習により構築されたモデルに基づいて、現在の状態値から、ロボット10を動作させるための演算操作力を決定する。これにより、学習制御部42は、現在の作業状態に応じ、かつ、次の作業状態にも応じたより適切な演算操作力を用いて、ロボット10を動作させることができる。また、ワーク100の形状のバラツキ、ワーク100の保持位置のバラツキ、凹部110の位置のバラツキ等があった場合でも、学習制御部42は、上述した機械学習を繰り返すことにより、ロボット10がこれらのバラツキに柔軟に対応するように作業を行わせることができる。
【0034】
追加学習部43、判定部44、及び通知部45は、上記の機械学習で対応できない場合に行う追加学習を行うための機能を有している。以下、この追加学習について
図5から
図7を参照して説明する。
図5は、追加学習に関してロボットシステムが行う処理を示すフローチャートである。
図6及び
図7は、モデル内における、作業状態の判定結果に応じた追加学習の内容を概念的に示す図である。
【0035】
本実施形態では、ロボットシステム1が自律的に作業を行えなくなった場合に、作業者がロボット10を操作して作業を補助し、この補助した作業者の操作内容を追加学習するという方法でモデルの最適化を行っている。以下、具体的に説明する。なお、本実施形態では、作業者の操作内容を1秒毎(即ち、計時部46のタイマー信号の時間間隔)に追加学習するものとする。
【0036】
初めに、学習制御部42がロボット10を動作させ、ロボットシステム1による自律的な作業が開始される(S101)。作業の開始前に、演算操作力を変換することを示す設定信号を学習制御部42が切替装置30に出力することにより、切替装置30は、学習制御部42から出力される演算操作力を変換した動作指令をロボット10へ出力するように設定されている。
【0037】
学習制御部42は、ロボット10を制御している間(即ち、演算操作力のみが切替装置30に出力されている間)において、現在の状態値に基づいて、現在の作業状態が作業状態4(完了)に該当するか否かを判定する(S102、作業状態推定処理)。現在の作業状態が作業状態4(完了)に該当する場合、学習制御部42は作業が完了していると判定し、次の作業の開始位置(例えば次のワーク100が載置されている場所)までロボット10のアーム部を移動させるような演算操作力を、切替装置30へ出力し、切替装置30はこの演算操作力を変換した動作指令をロボット10へ出力する(S112)。
【0038】
現在の作業状態が作業状態4(完了)でない場合(即ち作業が完了していない場合)、判定部44は、学習制御部42による制御で作業が継続可能か否かを現在の状態値に基づいて判定し、継続可否を示す判定結果を出力する(S103、判定工程)。言い換えれば、判定部44は、作業者の補助なしで作業が継続可能か否かを現在の状態値に基づいて判定する。この判定は、例えば、現在の状態値(例えば、センサ情報)及び予め設定された条件等に基づいて判定される。具体的には、力センサ12により検出された力が急激に大きくなったこと、力センサ12により検出された力が基準値を超えたこと等が条件として設定される。また、判定部44は、予め設定された条件に代えて、自律的に(言い換えれば判定基準を自ら作成して)判定してもよい。具体的には、判定部44は、後述する作業状態の類似度の出力を学習制御部42から受け取り、この類似度に基づいて、現在の状態値が何れの作業状態にも属さない(例えば、類似度が何れの作業状態においても所定の閾値より低い)と判定したときに、作業が継続できないと判定する。
【0039】
学習制御部42による制御でロボット10の作業が継続可能であることを示す判定結果が判定部44により出力された場合、引き続き、学習制御部42が演算操作力を切替装置30に出力することにより、ロボット10を動作させる。一方で、学習制御部42による制御でロボット10の作業が継続できないことを示す判定結果が判定部44により出力された場合、作業者の補助を要求して追加学習を行うための処理が行われる。追加学習を行うためには、現在の正しい作業状態及び次の作業状態と、状態値及び作業が継続できない状態を解消する操作力と、が必要となる。
【0040】
具体的には、ロボット10の作業が継続できないことを示す判定結果に基づいて、通知部45は作業が継続できないことを通知する。詳細には、通知部45は、作業が継続できない旨を表示させる第1の通知信号を表示装置22に出力するとともに、学習制御部42は現在の正しい作業状態を作業者が特定するための情報として、作業状態の類似度をモデルから算出して出力し、通知部45は、この類似度を表示させる第2の通知信号を表示装置22へ出力する(S104、通知工程)。類似度とは、モデル内の(登録済みの)作業状態に対して現在の状態値が類似している程度を示す値である。類似度は、現在の状態値と、モデル内の各作業状態に属する状態値(即ち、機械学習した状態値のうち各作業状態に属するもの)の分布と、を比較することで算出される。例を挙げて説明すると、
図6の上側のグラフに示すように作業状態1~作業状態4の領域が存在している状況において、これらの領域から外れた現在の状態値S
5、S
6があるとき、学習制御部42は、現在の状態値S
5、S
6を示す座標と、作業状態1~作業状態4の領域のそれぞれの中心点との距離(又は作業状態1~作業状態4のそれぞれとの最短距離)に基づいて、距離が短いほど高くなる類似度を算出する。学習制御部42は、状態値毎に類似度を算出してもよいし、全ての状態値の比較結果を考慮した1つの類似度を算出してもよい。また、学習制御部42は、登録済みの全ての作業状態に対する類似度をそれぞれ算出して出力してもよいし、最も類似度が高い1つの作業状態に対する類似度のみを出力してもよい。類似度は、例えばテキストデータで表示装置22に表示されるが、グラフ等の図形を用いて表示装置22に表示させてもよい。
【0041】
次に、制御部40は、作業者により特定された作業状態の入力を受け付けるための処理を行う(S105、入力受付工程)。例えば、制御部40(通知部45)は、表示装置22へ第3の通知信号を送信することで、入力部23を用いて作業者が正しい作業状態を入力するための入力欄を表示装置22に表示させる。これにより、作業者に作業状態の特定及びその入力を促すことができる。また、ステップS105の処理の前後において、制御部40は、作業者操作力を変換することを示す設定信号を切替装置30に出力することにより、切替装置30は、操作部20(操作装置21)が出力する作業者操作力を変換した動作指令を出力するように、設定を変更する。切替装置30の設定の変更は、表示装置22が入力欄を表示するとき又はそれ以前(例えば、判定部44がロボット10の作業が継続できないことを示す判定結果を出力したとき)に行うことが好ましい。これにより、作業者が表示装置22の表示を確認してから入力を行えるようにでき、作業者操作力に基づく動作指令をロボット10に確実に出力することができる。
【0042】
作業者は、表示装置22に表示された類似度を確認するとともに、ロボット10、ワーク100、及び凹部110の位置関係を直接又はカメラを介して視認することで、正しい作業状態を特定する。また、作業者は、操作装置21を操作してロボット10を動作させたり、ロボット10を手で直接触ったりすることで、正しい作業状態を特定してもよい。以上のようにして、作業者は正しい作業状態(例えば、モデル内の作業状態である作業状態3)を特定して、操作部20の入力部23を用いて入力する。なお、モデル内の作業状態の何れにも該当しない場合、作業者は新たな作業状態(例えば、モデル内の作業状態でない作業状態5)を作成して操作部20の入力部23にこれを入力する。
【0043】
制御部40(追加学習部43)は、モデル内の作業状態が入力部23に入力されたと判定した場合(S106)、現在の状態値を取得し、この状態値に基づいて、モデル内の作業状態の推定基準を修正する処理を行う(S107、作業状態推定基準修正工程)。例を挙げて説明すると、
図6の上側のグラフに示すように、モデル内に作業状態1~作業状態4の領域が存在している状況において、これらの領域から外れた現在の状態値S
5が、作業状態3(挿入)に該当すると作業者が入力部23に入力したと判定された場合を考える。この場合、
図6の下側のグラフに示すように、追加学習部43は、現在の状態値S
5を示す座標が作業状態3(挿入)の領域内に位置するように、作業状態3(挿入)の領域を変更する。例えば、追加学習部43は、現在の状態値S
5を示す点の座標又はそれに近い座標が作業状態3(挿入)と判定され易くなるように、モデル内の作業状態3(挿入)の領域における中心点及び/又は第1の距離を修正する。
【0044】
一方、制御部40(追加学習部43)は、モデル内の作業状態とは異なる新たな作業状態が入力部23に入力されたと判定した場合(S106)、現在の状態値を取得し、この状態値に基づいて新たな作業状態をモデルに登録する処理を行う(S108、作業状態登録工程)。例を挙げて説明すると、
図7の上側のグラフに示すように、モデル内に作業状態1~作業状態4の領域が存在している状況において、これらの領域から外れた現在の状態値S
6が、既存の作業状態1~作業状態4とは異なる作業状態である作業状態5(拗れ)に該当する、と作業者が入力部23に入力したと判定された場合を考える。この場合、
図7の下側のグラフに示すように、追加学習部43は、新たな作業状態である作業状態5(拗れ)をモデルに追加するように設定する。この段階では、作業状態5(拗れ)と対応付けられた座標は1点しかないため、例えば、追加学習部43は、現在の状態値S
6を示す点(中心点)から所定の初期距離(他の作業状態の領域における第1の距離に対応)以内の領域を、作業状態5(拗れ)の領域としてモデルに追加する。
【0045】
次に、作業者は、操作部20(操作装置21)を操作する。操作部20は、作業者操作力を切替装置30に出力して、切替装置30は作業者操作力を動作指令に変換して出力し、ロボット10を動作させる。例えば、現在の作業状態が作業状態3(挿入)であると作業者が入力部23に入力した場合、作業者は、操作装置21を操作することにより、ロボット10を動作させてワーク100の挿入を続行させて、作業状態を作業状態4(完了)に遷移、即ち作業を完了させる。また、現在の作業状態が新たな作業状態5(拗れ)であると作業者が入力部23に入力した場合、作業者は、操作装置21を操作することにより、ロボット10を動作させてワーク100を上方に移動させて凹部110から離し、作業状態5(拗れ)を作業状態1(空中)に遷移させる。
【0046】
このとき、操作部20は、作業状態を遷移させるように作業者がロボット10を動作させた作業者操作力を制御部40(追加学習部43)に出力し、追加学習部43は作業者操作力及び状態値を取得する(S109)。例えば、追加学習部43は、操作部20から作業者操作力が入力されたことを検知したとき、計時部46にトリガー信号を出力する。計時部46は、トリガー信号に基づいて、トリガー信号の入力時から所定の時間間隔(本実施形態では1秒間)でタイマー信号を出力する。次に、追加学習部43は、現在の状態値を取得(例えば、状態検出センサ11~13からセンサ情報を取得)し、操作部20から作業者操作力を取得して、数値0であるインデックスと、状態値と、操作力(即ち、作業者操作力)とを対応付けて記憶する。また、追加学習部43は、計時部46からの1秒毎のタイマー信号に基づいて、1秒毎に状態値及び作業者操作力を取得し、インデックスを1増やして、当該インデックスと、状態値と、操作力(即ち、作業者操作力)とを対応付けて記憶する処理を、作業者の操作によるロボット10の動作が完了するまで繰り返す。
【0047】
ここで、追加学習部43は、作業者の操作によるロボット10の動作が完了したことの判定及び動作完了時の作業状態(即ち、状態遷移後の作業状態)の特定を、取得した状態値に基づいて行う(S110、状態遷移完了判定工程)。例えば、ロボット10の動作が完了したことの判定は、追加学習部43が、対応付けて記憶されたインデックスと状態値と操作力とに基づいて、状態値が変化しなくなってから一定時間以上経過したこと(即ち、同じ状態値が一定回数以上連続して記憶されていること)、又は作業者操作力の出力がなくなってから一定時間以上経過したこと(即ち、操作力のないことが一定回数以上連続して記憶されていること)を検知することにより行ってもよい。このとき、追加学習部43は、作業者の操作によるロボット10の動作が完了した時を、状態値が変化しなくなった最初の時(例えば、同じ状態値が一定回数以上連続して記憶されている場合における、最も若いインデックス)、又は作業者操作力の出力がなくなった最初の時(例えば、操作力のないことが一定回数以上連続して記憶されている場合における、最も若いインデックス)としてもよい。好ましくは、追加学習部43は、作業者の操作によるロボット10の動作が完了した時(即ち、最も若いインデックス)に対応付けられている操作力を、ダミーの操作力を示すInullに置換して上書き記憶する。また、例えば、動作完了時の作業状態の特定は、追加学習部43が、対応付けて記憶されたインデックスと状態値と操作力とに基づいて、作業者の操作によるロボット10の動作が完了した時(即ち、最も若いインデックス)に対応付けられている状態値を求め、この状態値に基づいて、制御部40(追加学習部43)が作業状態を推定する処理(作業状態推定処理)を行うことにより求めてもよい。
【0048】
追加学習部43は、取得した作業者操作力、状態値、及び状態遷移前後の作業状態を追加学習する(S111、追加学習工程)。なお、状態遷移前の作業状態とは、ステップS105~S107において、作業者が入力部23に入力し、追加学習部43に出力された作業状態である。例えば、ステップS106において、状態値がS
5であるときに現在の作業状態(遷移前の作業状態)が作業状態3(挿入)と入力され、ステップS109において、作業者がワーク100の挿入を続行させて作業を完了させることにより、ステップS110において、追加学習部43が、作業状態が作業状態3(挿入)から作業状態4(完了)に遷移したことを特定し、状態遷移後の状態値がS
4であると求めた場合、追加学習部43は、現在の作業状態3(挿入)及び次の作業状態4(完了)と、対応付けて記憶したインデックスと状態値と操作力とに基づいて、
図8に示す追加学習用データ(ロボット10のp秒間(pは1以上の整数)の動作に対応)を生成し、これを追加学習して、モデルを更新する。追加学習の方法は、
図3を参照して上述した機械学習の方法と同様であるので、その詳細な説明を省略する。この追加学習を行うことにより、ワーク100の挿入を進めるための新たな手法を学習制御部42が取得する。これにより、次回以降に同種の状況が発生した場合においても、作業者の補助なく、作業を継続することができる。
【0049】
また、ステップS106において、状態値がS
6であるときに現在の作業状態(遷移前の作業状態)が新たな作業状態5(拗れ)と入力され、ステップS109において、作業者がワーク100を上方に移動させて凹部110から離すことにより、ステップS110において、追加学習部43が、作業状態が作業状態5(拗れ)から作業状態1(空中)に遷移したことを特定し、状態遷移後の状態値がS
1であることを求めた場合、追加学習部43は、現在の作業状態5(拗れ)及び次の作業状態1(空中)と、対応付けて記憶したインデックスと状態値と操作力とに基づいて、
図9に示す追加学習用データ(ロボット10のq秒間(qは1以上の整数)の動作に対応)を生成し、これを追加学習して、モデルを更新する。追加学習の方法は、
図3を参照して上述した機械学習の方法と同様であるので、その詳細な説明を省略する。この追加学習を行うことにより、拗れが発生した場合に当該拗れを解消するための手法を学習制御部42が取得することとなる。これにより、次回以降に同種の状況が発生した場合においても、作業者の補助なく、作業を継続することができる。
【0050】
追加学習部43が追加学習を完了すると(S111)、学習制御部42は、ロボット10を動作させ、ロボットシステム1による自律的な作業を再び開始する(S101)。ここで、ステップS101の処理に戻る前に、制御部40は、演算操作力を変換することを示す設定信号を切替装置30に出力することにより、切替装置30は学習制御部42が出力する演算操作力を変換した動作指令をロボット10に出力するように、切替装置30の設定を変更する。
【0051】
以上のように、ロボットシステム1が自律的に解消できない状態を検出して作業状態と対応付けた追加学習を行うことで、効率的に追加学習を行うことができるので、ロボットシステム1をあまり停止させることなく作業を継続させることが可能となる。
【0052】
本実施形態は様々な変形が可能である。本実施形態では、ロボットシステム1がロボット10の動作の追加学習及び出力を、タイマー信号の時間間隔である1秒単位で行うが、タイマー信号がより短い時間間隔(例えば、0.1秒又はそれ未満の時間間隔)であってもロボット10の動作の追加学習及び出力が可能であるように、ロボットシステム1を構成してもよい。これにより、ロボット10の動作をより高い精度で追加学習し、ロボット10をより高い精度で動作させることが可能になる。
【0053】
本実施形態では、計時部46は、トリガー信号に基づいて、トリガー信号の受信時から1秒毎にタイマー信号を出力し、制御部40は、このタイマー信号に基づいて、ロボット10の動作を追加学習し、又はロボット10を動作させる。ここで、タイマー信号がより短い時間間隔(例えば、0.1秒又はそれ未満の時間間隔)であってもロボット10の動作の追加学習及び出力が可能であるようにロボットシステム1を構成した場合は、計時部46は、トリガー信号に基づかず、常時、この短い時間間隔でタイマー信号を出力するように構成してもよい。これにより、ロボット10の動作の追加学習、及びロボット10の動作の精度を下げずに、計時部46の構成を簡素なものとできる。具体的に説明すると、計時部46が所定時間間隔でタイマー信号を常時出力する構成だと、タイマー信号に基づくロボット10の動作の追加学習及び出力に、最大で当該時間間隔の遅延が発生する。本実施形態のように計時部46が1秒間隔でタイマー信号を出力する場合、最大で1秒の遅延が発生するため、遅延の影響が無視できない。一方、タイマー信号の出力時間間隔が0.1秒又はそれ未満といった短い時間間隔である場合(即ち、ロボットシステム1が、概ねリアルタイムで、ロボット10の動作の追加学習及び出力を処理できる場合)は、上記遅延の影響は軽微となる。
【0054】
本実施形態では、作業状態の個数は高々5個であったが、作業状態の個数を増やしてもよい。これにより、現在の状態値に対応するより適切な作業状態を定めることが可能になる。
【0055】
本実施形態では、ステップS105において、入力部23は作業者による現在の作業状態の入力を受け付けて追加学習部43に出力するが、入力部23に次の作業状態の入力を受け付けて出力する手段(例えば図略のキー)を設け、この次の作業状態を追加学習部43が受け取るように構成してもよい。これにより、ステップS110において、追加学習部43が行う遷移後の作業状態の特定を省略することができる。
【0056】
本実施形態では、作業状態2(接触)から作業状態3(挿入)へと作業状態が遷移するが、これに限らず、作業状態2(接触)から作業状態1(空中)へと作業状態を遷移させてもよい。これにより、より適切な作業状態の遷移を定めることが可能になる。例えば、
図4に示すように、現在の作業状態が作業状態2(接触)、現在の状態値がS
230である場合を考える。現在の状態値S
230から作業状態3(挿入)の領域は遠く、作業状態1(空中)の領域は近い。このような場合、現在の状態値S
230から作業状態3(挿入)に作業状態を遷移させるロボット10の動作を学習させてもよいが、ワーク100を上方に移動させることで状態値をS
1に変化させて(即ち、作業状態1(空中)に遷移させて)から、更にワーク100を移動させて状態値をS
210に変化させるように、ロボット10を動作させたほうが、作業の完了が早いことがありうる。どちらの動作がより適切かは、例えば、ロボット10の動作が完了するまで(即ち、作業状態4(完了)に達するまで)の時間等により評価してもよい。
【0057】
本実施形態では、切替装置30は、切替部31と、変換部32と、を備えるが、切替装置30の構成はこれに限られない。例えば、切替装置30に、力センサ12が検知したロボット10が受けた力と、変換部32に入力された操作力とに基づいて、変換部32が動作指令を出力することを停止するように制御する規制部を設けてもよい。これにより、想定されていない状況になった場合にロボット10の動作を規制できる。例えば、力センサ12の検出値が閾値以上となったこと、作業者操作力又は演算操作力が閾値以上となったこと、力センサ12の検出値が上昇し続けているにもかかわらず同じ方向にロボット10を動作させる指示(操作力)が入力され続けていること等を検知することにより、ロボット10又は周囲環境が想定外の状況に陥っていると規制部が判定した場合、規制部は変換部32が動作指令を出力することを停止するように制御してもよい。
【0058】
本実施形態では、ステップS105の処理の前後において(例えば、判定部44がロボット10の作業が継続できないことを示す判定結果を出力したとき)、制御部40は、切替装置30が作業者操作力を変換した動作指令を出力するように設定を変更し、ステップS110及びS111において、追加学習が完了したと判定したとき、制御部40は、切替装置30が演算操作力を変換した動作指令を出力するように設定を変更する。ここで、制御部40(学習制御部42)は、切替装置30が作業者操作力を変換した動作指令を出力するように設定を変更する代わりに演算操作力の出力を中断し、切替装置30が演算操作力を変換した動作指令を出力するように設定を変更する代わりに演算操作力の出力を再開するように構成してもよい。これにより、学習制御部42による制御でロボット10の作業が継続できないときに、演算操作力によるロボット10の無用な動作のおそれを抑えることができる。
【0059】
次に、
図10から
図15を参照して、第2実施形態について説明する。なお、第2実施形態の説明においては、第1実施形態と同一又は類似の部材には図面に同一の符号を付し、説明を省略する場合がある。
【0060】
第2実施形態では、ロボット10によって行われる作業を
図10に示すように複数の動作に分けて分類する。具体的には、動作Aでは、ロボット10にワークを保持させた状態で、部材の上方にワークを位置させ、当該ワークを部材の面に接近させる。動作Bでは、そのままワークを移動させ、当該部材の面にワークを接触させる。動作Cでは、開口部の位置に向けてワークを移動させる。なお、ワークの移動時に、ワークが部材の面に接触した状態を維持する。動作Dでは、開口部の内壁にワークの端部を接触させる。動作Eでは、開口部にワークを挿入させる。
【0061】
ここで、第1実施形態で説明した「作業状態」と第2実施形態の「動作」は類似する概念である。例えば、第2実施形態において、動作Aを行っている間を作業状態Aと捉え、動作Bを行っている間を作業状態Bと捉えることもできる(動作C,Dについても同様)。
【0062】
次に、
図11を参照して、第2実施形態のロボットシステム1について説明する。第2実施形態では、進行度及び確信度を取得して利用する点において、上記の第1実施形態とは異なる。第1実施形態において説明したように、制御部40は、記憶部に記憶されたプログラムを演算装置が読み出して実行することで、様々な手段として機能することができる。第2実施形態の制御部40は、更に、進行度取得部51と、確信度取得部52と、進行度監視部56と、確信度監視部57と、を備える。
【0063】
進行度取得部51は、進行度を取得する。進行度は、上述した機械学習(追加学習を含む)により構築されたモデルの出力に基づいてロボット10が行う動作が、一連の作業のうちでどの進捗度合いに相当するかについて評価するために用いるパラメータである。本実施形態では、進行度は0から100までの範囲の値をとり、100に近い程、一連の作業が進行していることを示す。
【0064】
図12を参照して、進行度の算出について説明する。本実施形態では、
図12に示すように、進行度は、時系列的に取得することができるロボット10の状態をクラスタリングして得られるクラスタと、ロボット10の動作履歴と、を考慮して算出される。
【0065】
上記したロボット10の状態は、状態検出センサ11~13からのセンサ情報及びモデルの演算操作力を含んだ多次元のベクトル(特徴ベクトル)として表現することができる。特徴ベクトルは、ロボット10が一連の作業を行う過程で、様々に変化する。特徴ベクトルは、センサ情報及び演算操作力の当該時点での値だけでなく、センサ情報及び演算操作力の過去の履歴が含まれても良い。
【0066】
以下の説明では、ロボット10及びその周辺の状態と、それに応じてモデルが推定した結果と、を総合したものを、ロボット10の局面と呼ぶことがある。前述の特徴ベクトルとして、ロボット10の局面を表すデータ(局面データ)が用いられる。局面データは、モデルに入力される入力データ(具体的にはセンサ情報)と、モデルから出力される出力データ(具体的には演算操作力)と、の両方を総合したものに相当する。
【0067】
クラスタリングとは、教師なし学習の一種であり、多数のデータから分布の法則を学習して、互いに特徴が似ているデータのまとまりである複数のクラスタを取得する手法である。クラスタリングの方法としては、公知の非階層クラスタリング手法を適宜用いることができる。
【0068】
ロボット10の局面は、上述した動作(動作A~動作E)ごとに特徴がある。例えば、動作Aでの状態の特徴(つまり、動作A時に取得する局面データ)は、動作Bでの状態の特徴とは異なる。従って、上述の特徴ベクトルを対象として適宜のクラスタリングを行うことにより、ロボット10の局面を動作ごとに分類することができる。
【0069】
学習制御部42は、上記のクラスタリング結果を用いて、現在のロボット10の局面に対応する進行度を算出する。
図12に示すように、進行度の値は、各クラスタが示す動作の順番に従って段階的かつ累積的に増加するように、予め定められる。ロボット10の一連の作業は特徴ベクトルを時系列順に並べたものとして表現することができるので、この時系列順の情報を用いて、各クラスタの時系列順を求めることができる。
【0070】
学習制御部42は、現時点のロボット10の局面を示す特徴ベクトルがどのクラスタに属するかを計算により求め、当該クラスタに対応する進行度を、進行度取得部51又は確信度取得部52の要求に応じて出力する。特徴ベクトルがどのクラスタに属するかを特定するには、例えば、各クラスタの重心位置と特徴ベクトルとの距離を求め、距離が最短となる重心を有するクラスタを求めれば良い。
【0071】
図13に示すように、ロボット10の作業が進んでいる場合(つまり、ロボット10の局面が適切に遷移している場合)、時間の経過に伴って進行度の値が増加する。しかしながら、ロボット10の作業が進まない場合(例えば、特定の局面への遷移を繰り返す場合)、時間が経過しても進行度の値が増加しない。そのため、ユーザは、進行度の変化を見ることで、ロボット10による自律作業が進んでいるかどうかについて、容易に把握することができる。その結果、ロボット10の動作の停滞を容易に発見できるので、当該動作の修正等の適切な対応を行うことができる。
【0072】
確信度取得部52は、確信度を取得する。確信度は、ロボット10の動作が確からしいかどうか(言い換えれば、モデルが推定する出力が確からしいかどうか)について評価するために用いるパラメータである。
【0073】
学習制御部42のモデルは、ロボット10及びその周辺の状態と、その時に行われたユーザの操作による作業者操作力と、の対応関係を予め学習している。言い換えれば、モデルは、既知の多数の状態から獲得した法則に基づいて動作する。機械学習モデルが本来有する汎化能力により、未知の状況に対しても、モデルが適切な演算操作力を出力することが期待される。しかし、人間が今までの過去の経験から予測が難しいような全く新規の状況におかれたときに、確信をもって行動しにくいのと同様に、モデルの立場に立てば、今までに学習した既知の状態から遠い状態である程、推定結果に対する確信を持ちにくいということができる。確信度は、この意味で、推定の確からしさを示すものである。
【0074】
本実施形態において、学習制御部42には、ロボット10の局面を判別するための確率的判別器が、機械学習により構築されている。この確率的判別器は、上述のクラスタリングによって分類されたクラスタの数に応じて、複数備えられている。
【0075】
例えば、動作Aのクラスタの確率的判別器においては、クラスタリングによって動作Aのクラスタに分類された特徴ベクトルが入力されたときは、100に近い値を出力し、他の動作のクラスタに分類された特徴ベクトルが入力されたときは、0に近い値を出力するように、機械学習が行われる。従って、学習が完了した確率的判別器に、現在のロボット10の局面を示す特徴ベクトルを入力すると、確率的判別器は、当該局面が動作Aらしいかどうかを示す値を出力する。この値は、現在のロボット10の局面が動作Aである確率(推定確率)を実質的に示しているということができる。他のクラスタ(他の動作B~E)の確率的判別器においても、上記と同様に学習が行われる。
【0076】
複数の確率的判別器のそれぞれに特徴ベクトルを入力することにより、現在の状況が動作A~Eのうちどの動作に対応すると推定されるか、また、当該推定が確からしいか否かを、確率的判別器に基づいて得ることができる。
【0077】
本実施形態においては
図14に示すように、確信度として、複数の確率的判別器が出力する推定確率のうち最大の値が用いられている。既知のロボット10の局面(言い換えれば、クラスタリングによって動作A~Eの何れかに分類されている局面)に対して現在の局面が似ている場合は、確信度の値が大きくなる。その一方で、既知のロボット10の局面に対して現在の局面が似ていない場合は、確信度の値が小さくなる。
【0078】
図15に示すように、ユーザは、例えば一連の作業時における確信度の値を見ることで、ロボット10の動作が確からしいかどうかについて評価することができる。即ち、モデルが覚えていない動きをする場合、確信度の値が低下する。従って、ユーザは、一連の作業において、学習が不十分である動作が含まれていることを把握することができる。確信度が小さい動作を、制御部40が自動的に検出しても良い。その一方で、モデルが覚えている動きをする場合、確信度の値が上昇する。従って、ユーザは、ある局面でのロボット10の動作が、既知の動作に一致していることを知ることもできる。
【0079】
また、ユーザは、確信度の値を用いて、ロボット10の動作が既知のある状態(例えば、動作A~Eの何れか)に到達していることを確認することもできる。
【0080】
進行度監視部56は、前述の進行度取得部51が取得する進行度を監視する。進行度監視部56は、
図13に示すように所定時間進行度が変化しない状況を検知し、ロボット10の動作の停滞を検出することができる。
【0081】
ロボット10の動作の停滞を進行度監視部56が検出した場合、制御部40は、ロボット10の制御を中止し、ロボット10による作業を停止させる処理を行っても良い。この場合、進行度監視部56の監視結果に基づくタイムアウト機能(作業の継続をあきらめる機能)を実現することができる。
【0082】
第2実施形態では、このタイムアウト機能を用いて、第1実施形態の判定工程(S103)が行われる。具体的には、判定部44は、進行度監視部56が出力する進行度が上昇しない時間が閾値よりも長い間継続した場合、学習制御部42による制御で作業が継続できないと判定する。
【0083】
また、進行度は、第1実施形態の作業状態推定処理(S102)において、作業が完了したか否かを判定する処理にも用いられる。具体的には、学習制御部42は、現在が動作Eに対応する作業状態であって進行度が閾値(例えば100)以上か否かを判定し、進行度が閾値以上である場合に、作業が完了したと判定する。
【0084】
確信度監視部57は、確信度取得部52が取得する確信度を監視する。確信度監視部57は、確信度の値を常時監視して、
図15に示すように、確信度の値が所定値に達しない動作を検出したり、予め設定された作業状態に対して、現在の作業状態がどの程度類似しているかを検出したりする。
【0085】
この確信度は、第1実施形態の類似度の代わりに用いることができる。従って、学習制御部42は、例えば確信度監視部57が出力する確信度を用いて、第1実施形態の作業状態推定処理(S102)を行うことができる。具体的には、学習制御部42は、現在の作業状態が「完了」に相当する作業状態であって、かつ、確信度が閾値以上である場合、作業が完了したと判定する。
【0086】
また、第1実施形態において、類似度は判定工程(S103)等にも用いられているため、確信度を用いて判定工程等を行うこともできる。具体的には、判定部44は、確信度監視部57が出力する確信度に基づいて、現在の確信度が閾値よりも低いと判定したときに、作業が継続できないと判定する。なぜなら、確信度が低い場合、現在の作業状態が既知の作業状態とは異なる可能性が高いからである。
【0087】
また、確信度は、第1実施形態の類似度と同様、現在の正しい作業状態を作業者が特定するための情報としても用いることができる。具体的には、通知部45は、作業が継続できない旨を表示させる第1の通知信号を表示装置22に出力するとともに、確信度を表示させる第2の通知信号を表示装置22へ出力する。
【0088】
このように、進行度及び/又は確信度を用いることにより、作業の進捗度合いを数値化できるので、より的確な判断を行うことができる。
【0089】
以上に説明したように、このロボットシステム1は、ロボット10と、状態検出センサ11~13と、計時部46と、学習制御部42と、判定部44と、操作装置21と、入力部23と、切替装置30と、追加学習部43と、を備える。ロボット10は、動作指令に基づいて作業を行う。状態検出センサ11~13は、ロボット10の作業の進行の状態を示す状態値を検出して出力する。計時部46は、所定の時間間隔でタイマー信号を出力する。学習制御部42は、作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の状態値及び当該状態値に対応付けられる操作力とを機械学習することで構築されたモデルを用いて、状態検出センサ11~13により検出された状態値及びタイマー信号に基づいて、演算操作力を出力する。判定部44は、状態検出センサ11~13により検出された状態値に基づいて、学習制御部42による制御でロボット10の作業が継続可能か否かを示す判定結果を出力する(判定工程)。操作装置21は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。入力部23(図略のキー)は、作業者による作業状態の入力を受け付けて出力する。切替装置30は、作業者操作力及び演算操作力に基づいて、作業者操作力又は演算操作力の何れかを動作指令に変換して出力する。追加学習部43は、ロボット10の作業の継続ができないことを示す判定結果と、入力部23が出力した作業状態と、操作装置21が出力した作業者操作力と、状態検出センサ11~13が検出した状態値と、タイマー信号とに基づいて、作業状態及び当該作業状態に対応付けられる次の作業状態と、少なくとも1組の状態値及び当該状態値に対応付けられる作業者操作力とを追加学習してモデルを更新する(追加学習工程)。
【0090】
これにより、現在及び次の作業状態と、操作力と、状態値とを追加学習させることで、ロボット10が作業を継続できなくなった場合であっても、ロボットシステム1側で自律的に解決して作業を継続することが可能となる。
【0091】
また、上記実施形態のロボットシステム1において、追加学習部43は、状態値に基づいて、作業状態に対応付けられる次の作業状態を求め(状態遷移完了判定工程)、作業状態及び次の作業状態と、状態値及び作業者操作力とを追加学習してモデルを更新する。
【0092】
また、上記実施形態のロボットシステム1において、入力部23は、入力された作業状態に対応付けられる次の作業状態の作業者による入力を受け付けて追加学習部43に出力し、追加学習部43は、作業状態及び次の作業状態と、状態値及び作業者操作力とを追加学習してモデルを更新する。
【0093】
これにより、作業状態の遷移を含むようにロボット10の作業を追加学習することができ、ロボット10の作業をより適切に追加学習することができる。
【0094】
また、上記実施形態のロボットシステム1において、追加学習部43は、作業状態が次の作業状態と異なる場合、作業状態及び次の作業状態と、複数組の状態値及び当該状態値に対応付けられる作業者操作力とを追加学習してモデルを更新する。
【0095】
これにより、ロボット10の動作を高い精度で追加学習することができる。
【0096】
また、上記実施形態のロボットシステム1において、切替装置30は、作業者操作力又は演算操作力の何れを変換することを示す設定信号に基づいて、作業者操作力又は演算操作力の何れかを動作指令に変換して出力する。
【0097】
これにより、作業者がロボット10を動作させる状態と、ロボットシステム1が自律運転を行う状態とを、切替装置30の外部、特に制御部40から切り替えることができる。
【0098】
また、上記実施形態のロボットシステム1において、切替装置30は、センサを備える。センサは、操作装置21が出力した作業者操作力の大きさを検知する。切替装置30は、検知された作業者操作力の大きさに基づいて、作業者操作力又は演算操作力の何れかを動作指令に変換して出力する。
【0099】
これにより、切替装置30は、作業者が操作部20を操作している間、作業者がロボット10を動作させる状態とすることができる。
【0100】
また、上記実施形態のロボットシステム1において、学習制御部42は、ロボット10の作業が継続できないことを示す判定結果に基づいて、演算操作力の出力を中断し、追加学習が完了したと判定したとき、演算操作力の出力を再開する。
【0101】
これにより、学習制御部42による制御でロボット10の作業が継続できないときに、演算操作力によるロボット10の無用な動作のおそれを抑えることができる。
【0102】
また、上記実施形態のロボットシステム1は、通知部45と、表示装置22と、を備える。通知部45は、ロボット10の作業の継続ができないことを示す判定結果に基づいて、通知信号を出力する(通知工程)。表示装置22は、通知信号に基づいて表示を行う。
【0103】
これにより、作業者は、ロボット10の作業の追加学習を必要とするタイミングや追加学習に関連する情報等を的確に把握することができる。
【0104】
また、上記実施形態のロボットシステム1において、学習制御部42は、状態検出センサ11~13により検出された状態値に基づいて、モデル内の作業状態に対して現在の状態値が類似している程度を示す類似度を算出して出力し、通知部45は、当該類似度及びロボット10の作業の継続ができないことを示す判定結果に基づいて、通知信号(第1・第2の通知信号)を出力する。
【0105】
これにより、通知された類似度を、表示装置22が表示するため、作業者は現在の作業状態を的確に特定できる。
【0106】
また、上記実施形態のロボットシステム1において、学習制御部42は、状態検出センサ11~13により検出された状態値に基づいて、モデル内の作業状態に対して現在の状態値が類似している程度を示す類似度を算出して出力し、判定部44は、状態値及び類似度に基づいて、判定結果を出力する。
【0107】
例えば、類似度に基づいて、何れの作業状態に対しても類似していないと判定される場合は、未知の状態であって、ロボットシステム1側で作業を継続することが困難である可能性が高い。このように、類似度を用いることで、作業の継続の可否を的確に判定できる。
【0108】
また、上記実施形態のロボットシステム1は、モデルに入力される入力データに応じて当該モデルが演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部52を備える。通知部45は、当該確信度及びロボット10の作業の継続ができないことを示す判定結果に基づいて、通知信号を出力する。
【0109】
これにより、作業者は表示装置22に表示された確信度に基づいて、現在の作業状態を的確に特定できる。
【0110】
また、上記実施形態のロボットシステム1は、モデルに入力される入力データに応じて当該モデルが演算操作力を推定して出力する場合の、当該推定の確からしさを示す確信度を取得する確信度取得部52を備える。判定部44は、確信度に基づいて、判定結果を出力する。
【0111】
例えば確信度が低い場合は、未知の作業状態又はそれに類似する状態であるため、ロボットシステム1側で作業を継続することが困難である可能性が高い。このように、確信度を用いることで、作業の継続の可否を的確に判定できる。
【0112】
また、上記実施形態のロボットシステム1は、モデルが出力する演算操作力に基づいて実現されるロボット10の作業状態が、ロボット10の作業のうちどの進捗度合いに相当するかを示す進行度を取得する進行度取得部51を備える。判定部44は、進行度に基づいて、判定結果を出力する。
【0113】
例えば進行度が変化しない場合は、ロボット10による作業が停滞している可能性が高い。このように、進行度を用いることで、ロボットシステム1側で作業を継続可能であるかを的確に判定できる。
【0114】
また、上記実施形態のロボットシステム1において、追加学習部43は、入力部23に入力された作業状態が、モデル内に含まれていると判定した場合、状態検出センサ11~13により検出された状態値に基づいて、モデル内の当該作業状態の推定基準を修正する(作業状態推定基準修正工程)。
【0115】
これにより、学習制御部42が作業状態を一層的確に推定できるようなモデルを設定できる。
【0116】
また、上記実施形態のロボットシステム1において、追加学習部43は、入力部23に入力された作業状態が、モデル内に含まれていないと判定した場合、状態検出センサ11~13により検出された状態値に基づいて、入力された当該作業状態をモデルに登録する(作業状態登録工程)。
【0117】
これにより、事前の機械学習時に全ての作業状態が網羅されていない場合であっても、新たな作業状態を追加学習させることができる。
【0118】
また、上記実施形態のロボットシステム1において、計時部46は、トリガー信号に基づいて、当該トリガー信号の受信時から所定の時間間隔でタイマー信号を出力し、学習制御部42は、演算操作力の出力を開始するときにトリガー信号を出力し、追加学習部43は、作業者操作力の入力を検知したときにトリガー信号を出力する。
【0119】
これにより、ロボット10の動作の追加学習及びロボット10の動作で生ずる遅延の影響を少なくすることができる。
【0120】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【0121】
図5のフローチャートの内容は一例であり、処理の追加、処理の省略、処理の順序変更等を行ってもよい。例えば、類似度を表示することなく作業者が作業状態を特定できるような場面では、類似度の算出及び出力を省略してもよい。また、追加学習に関するデータを蓄積しておき、ある程度データが蓄積された後に追加学習を行わせてもよい。
【0122】
状態値として挙げたデータは一例であり、異なるデータを状態値として用いてもよい。例えば、方向に関するデータを状態値として用いる場合、ロボット10と作業者(操作装置21及び表示装置22)とで共通の座標系でのデータを用いることで、処理を単純にすることができる。
【0123】
上記実施形態では、ロボットシステム1を構成する各装置が同じ作業現場に配置されることを想定しているが、ネットワークで情報をやり取りできるのであれば、少なくとも1つの装置(例えば操作装置21)が遠隔地に配置されていてもよい。また、制御部40が有する機能の少なくとも一部が、物理的に離れた位置に配置されていてもよい。また、操作装置21を備えていないロボットシステム1に対しても、本発明を適用することができる。
【0124】
進行度及び確信度がとり得る範囲は任意であり、例えば0から1までとすることもできる。
【0125】
上記実施形態では、ロボット10は台座部に取り付けられているが、自律的に走行可能な構成であってもよい。また、ロボット10は、アーム部以外の部材で作業を行う構成であってもよい。
【符号の説明】
【0126】
1 ロボットシステム
10 ロボット
11 動作センサ
12 力センサ
13 カメラ
21 操作装置
22 表示装置
23 入力部
30 切替装置
40 制御部
41 通信部
42 学習制御部
43 追加学習部
44 判定部
45 通知部
46 計時部