(57)【要約】【課題】制御部及び操作装置に応じてロボットを動作させるロボットシステムにおいて、好適なモデルを含む構成を提供する。【解決手段】ロボットシステム１は、ロボット１０と、動作センサ１１と、周囲環境センサ１２、１３と、操作装置２１と、学習制御部４１と、中継装置３０と、を備える。ロボット１０は、動作指令に基づいて作業を行う。操作装置２１は、作業者が加えた操作力である作業者操作力を検出して出力する。学習制御部４１は、演算操作力を出力する。中継装置３０は、作業者操作力及び演算操作力に基づいて、動作指令を出力する。学習制御部４１は、作業者操作力、周囲環境データ、動作データ、及び動作指令を機械学習することで構築されたモデルにより、センサ１１〜１３が出力した動作データ及び周囲環境データと、中継装置３０が出力した動作指令とに基づいて、演算操作力を推定し出力する。【選択図】図１
2019202404.tif 000002
【特許請求の範囲】
【請求項１】
動作指令に基づいて作業を行うロボットと、
前記ロボットの動作を示す動作データを検出する動作センサと、
前記ロボットの周囲の環境の状態を示す周囲環境データを検出する周囲環境センサと、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
演算操作力を出力する学習制御部と、
前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する中継装置と、
を備えるロボットシステムであって、
前記学習制御部は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、前記動作センサが検出した前記動作データ及び前記周囲環境センサが検出した前記周囲環境データと、前記中継装置が出力した前記動作指令とに基づいて、前記演算操作力を推定し出力することを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記中継装置は、前記作業者操作力及び前記演算操作力の合力を求め、当該合力を前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項３】
請求項１又は２に記載のロボットシステムであって、
前記作業者操作力及び前記演算操作力の合力、前記周囲環境データ、前記動作データ、及び前記動作指令に基づいて追加学習を行って前記モデルを更新する追加学習部を備えることを特徴とするロボットシステム。
【請求項４】
請求項１又は２に記載のロボットシステムであって、
前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令に基づいて追加学習を行って前記モデルを更新する追加学習部を備えることを特徴とするロボットシステム。
【請求項５】
請求項１から４までの何れか一項に記載のロボットシステムであって、
制御信号に基づいて前記操作装置に力を加える駆動部と、
前記駆動部が前記操作装置に加える力を前記演算操作力と同じ力とするための、前記駆動部の動作を示す操作動作を算出する算出部と、
前記操作動作に基づいて前記制御信号を出力する操作再現部と、
を備えることを特徴とするロボットシステム。
【請求項６】
請求項１から４までの何れか一項に記載のロボットシステムであって、
制御信号に基づいて前記操作装置に力を加える駆動部と、
前記駆動部が前記操作装置に加える力を前記演算操作力と前記作業者操作力との差分とするための、前記駆動部の動作を示す追加動作を算出する算出部と、
前記追加動作に基づいて前記制御信号を出力する操作再現部と、
を備えることを特徴とするロボットシステム。
【請求項７】
請求項３に記載のロボットシステムであって、
制御信号に基づいて前記操作装置に力を加える駆動部と、
前記駆動部が前記操作装置に加える力を前記演算操作力と同じ力とするための、前記駆動部の動作を示す操作動作を算出する算出部と、
前記操作動作に基づいて前記制御信号を出力する操作再現部と、
を備え、
前記追加学習部は、前記作業者操作力の大きさが０でないとき、前記作業者操作力及び前記演算操作力の合力、前記周囲環境データ、前記動作データ、及び前記動作指令に基づいて追加学習を行って前記モデルを更新することを特徴とするロボットシステム。
【請求項８】
請求項１から７までの何れか一項に記載のロボットシステムであって、
前記周囲環境センサは、前記周囲環境データとしての前記ロボットが受けた力を検出する力センサを備えることを特徴とするロボットシステム。
【請求項９】
請求項８に記載のロボットシステムであって、
前記中継装置は、前記力センサの検出値と、前記操作力と、に基づいて、予め定めた条件を満たした場合に前記ロボットの動作を規制する前記動作指令を出力することを特徴とするロボットシステム。
【請求項１０】
動作指令に基づいて作業を行うロボットの制御方法であって、
前記ロボットの動作を示す動作データを検出する動作検出工程と、
前記ロボットの周囲の環境の状態を示す周囲環境データを検出する環境検出工程と、
作業者が操作装置に加えた操作力である作業者操作力を検出する作業者操作力検出工程と、
演算操作力を出力する演算操作力出力工程と、
前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する動作指令出力工程と、
を含み、
前記演算操作力出力工程は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、検出された前記動作データ及び前記周囲環境データと、出力された前記動作指令とに基づいて、前記演算操作力を推定し出力することを含む、
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として、機械学習により構築されたモデルに基づいてロボットに作業を行わせるロボットシステムに関する。
【背景技術】
【０００２】
従来から、予め作成されたプログラムによって、ロボット及びプラント等の制御対象物を制御し、所望の動きを行わせることが行われている。例えば特許文献１には、ロボットの制御部が、ＣＰＵと、ロボットを制御するためのプログラムが格納されたＲＯＭと、ロボットが作業を実行するためのロボット言語で書かれたプログラムが格納されたＲＡＭと、を備える構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−１３４６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の構成において、ロボット等を動かすためのプログラムは、人間が作業を理解して、動かし方をプログラミングすることで実現されている。しかしながら、このような手法は、プログラムの作成及びその調整に時間を要する場合が多かった。
【０００５】
そのため、近年では、プログラムの作成時間の低減や、様々な状況にロボットを柔軟に対応させること等を目的として、機械学習を用いたロボット動作制御方法が提案されている。このロボット動作制御方法は、ロボットの動作データを機械学習することでモデルを構築し、このモデルに基づいてロボットを動作させるものである。
【０００６】
ここで、作業者が操作する操作装置でロボットを動作させることが可能なロボットシステムが知られている。この種のロボットシステムに、上記のロボット動作制御を行う制御部を持たせる場合における好適なモデルは知られていなかった。
【０００７】
本発明は以上の事情に鑑みてされたものであり、その主要な目的は、制御部及び操作装置に応じてロボットを動作させるロボットシステムにおいて、好適なモデルを含む構成を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００９】
本発明の第１の観点によれば、以下の構成のロボットシステムが提供される。即ち、このロボットシステムは、ロボットと、動作センサと、周囲環境センサと、操作装置と、学習制御部と、中継装置と、を備える。前記ロボットは、動作指令に基づいて作業を行う。前記動作センサは、前記ロボットの動作を示す動作データを検出する。前記周囲環境センサは、前記ロボットの周囲の環境の状態を示す周囲環境データを検出する。前記操作装置は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。前記学習制御部は、演算操作力を出力する。前記中継装置は、前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する。前記学習制御部は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、前記動作センサが出力した前記動作データ及び前記周囲環境センサが出力した前記周囲環境データと、前記中継装置が出力した前記動作指令とに基づいて、前記演算操作力を推定し出力する。
【００１０】
本発明の第２の観点によれば、以下のロボット制御方法が提供される。即ち、このロボット制御方法は、動作指令に基づいて作業を行うロボットを制御する。このロボット制御方法は、動作検出工程と、環境検出工程と、作業者操作力検出工程と、演算操作力出力工程と、動作指令出力工程と、を含む。前記動作検出工程では、前記ロボットの動作を示す動作データを検出する。前記環境検出工程では、前記ロボットの周囲の環境の状態を示す周囲環境データを検出する。前記演算操作力出力工程では、前記演算操作力を出力する。前記動作指令出力工程では、前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する。前記演算操作力出力工程は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、検出された前記動作データ及び前記周囲環境データと、出力された前記動作指令とに基づいて、前記演算操作力を推定し出力することを含む。
【００１１】
これにより、学習制御部の出力と、操作装置の出力とが、操作力という共通の形式を持つようにモデルを構成する。これにより、作業者操作力、演算操作力をロボットへの動作指令に変換する処理を共通化することができる。
【発明の効果】
【００１２】
本発明によれば、制御部及び操作装置に応じてロボットを動作させるロボットシステムにおいて、好適なモデルを含む構成を実現できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るロボットシステムの構成を示すブロック図。
【図２】機械学習により構築されたモデルを用いて学習制御部が行う処理を示すフローチャート。
【図３】中継装置により行われる規制制御及び変換制御を示すフローチャート。
【図４】制御部によるロボットの制御を作業者が補助する際に行う追加学習をフローチャート。
【図５】制御部が操作装置を動作させて、作業者に操作装置の操作方法を体験させる処理を示すフローチャート。
【図６】制御部が操作装置を動作させることで作業者の操作を補助する処理を示すフローチャート。
【図７】制御部による操作装置の動作を作業者に体験させるとともに、作業者が操作装置を動作させた場合に、この動作を追加学習する処理を示すフローチャート。
【発明を実施するための形態】
【００１４】
次に、図面を参照して本発明の実施形態を説明する。初めに、図１を参照して、本実施形態のロボットシステム１について説明する。図１は、ロボットシステム１の構成を示すブロック図である。
【００１５】
ロボットシステム１は、ロボット１０に作業を行わせるためのシステムである。ロボット１０に行わせる作業としては様々であるが、例えば、組立て、加工、塗装、洗浄等がある。ロボット１０は、作業に関する動作データを機械学習することで構築されたモデルを用いて制御されている。そのため、ロボットシステム１では、基本的には作業者の補助を必要とせず、ロボット１０が作業を自律的に行うことができる。このようにロボット１０が作業を自律的に行うことを「自律運転」と称することがある。また、ロボット１０が自律的に作業を行うだけでなく、作業者の操作に応じてロボット１０を動作させて作業を行うこともできる。更に、本実施形態のロボットシステム１は、作業者の操作とシステム側の制御とを協働させて作業を行うこともできる。
【００１６】
図１に示すように、ロボットシステム１は、ロボット１０と、作業者装置２０と、中継装置３０と、制御部４０と、を備える。それぞれの装置は、有線又は無線のネットワークを介して互いに接続されている。
【００１７】
ロボット１０は、台座に取り付けられたアーム部を備える。アーム部は、複数の関節を有しており、各関節にはアクチュエータが備えられている。ロボット１０は、外部から入力された動作指令に応じてアクチュエータを動作させることでアーム部を動作させる。この動作指令は、直線状の速度の指令と、角速度の指令と、を含む。アーム部の先端には、作業内容に応じたエンドエフェクタが取り付けられている。ロボット１０は、外部から入力された動作指令に応じてエンドエフェクタを動作させることで作業を行う。
【００１８】
また、ロボット１０又はその周囲には、ロボット１０の動作及び周囲環境等を検出するためのセンサが取り付けられている。本実施形態では、動作センサ１１と、力センサ１２と、カメラ１３と、がロボット１０に取り付けられている。動作センサ１１は、ロボット１０のアーム部の関節毎に設けられており、各関節の回転角度又は角速度を検出する（動作検出工程）。力センサ１２は、ロボット１０の動作時に、ロボット１０が受けた力を検出する（環境検出工程）。力センサ１２はエンドエフェクタが受けた力を検出する構成であってもよいし、アーム部の各関節が受けた力を検出する構成であってもよい。また、力センサ１２は、力に代えて又は加えてモーメントを検出する構成であってもよい。カメラ１３は、作業対象であるワークの映像（ワークへの作業の進行状況）を検出する（環境検出工程）。カメラ１３に代えて又は加えて、音又は振動を検出するセンサを設け、これらのセンサの検出結果に基づいて、ワークへの作業の進行状況を検出することもできる。動作センサ１１が検出するデータは、ロボット１０の動作を示す動作データであり、力センサ１２及びカメラ１３が検出するデータは、ロボット１０の周囲の環境の状態を示す周囲環境データである。以下の説明では、動作センサ１１、力センサ１２、及びカメラ１３をまとめて「センサ１１〜１３」と称することがある。また、以下の説明では、これらのセンサ１１〜１３が検出したデータを、特に「センサ情報」と称することがある。
【００１９】
作業者装置２０は、操作装置２１と、駆動部２２と、を備える。操作装置２１は、ロボット１０を動作させるために作業者が操作する部材である。操作装置２１は、作業内容に応じて異なるが、例えば、作業者が手で操作するレバー又は足で操作するペダルである。操作装置２１は、図略の操作力検出センサを備えている。操作力検出センサは、作業者が操作装置２１に加えた操作力を検出する（操作力検出工程）。操作装置２１が様々な方向に動かすことができるように構成されている場合、操作力は力の向き及び大きさを含む値、例えばベクトルであってもよい。また、操作力は、作業者が加えた力（Ｎ）だけでなく、力に連動する値である加速度（即ち、作業者が加えた力を操作装置２１の質量で除算した値）であってもよい。以下の説明では、作業者が操作装置２１に加えた操作力を、特に「作業者操作力」と称することがある。操作装置２１が検出して出力した作業者操作力は、後述するように中継装置３０で動作指令に変換された後にロボット１０へ出力される。駆動部２２は、図略のアクチュエータを備える。アクチュエータは、入力される制御信号に基づいて、操作装置２１に外から力を加えることにより、操作装置２１の動作を自在に行えるよう構成されている。特に、後述する制御部４０（操作再現部４４）から、アクチュエータは操作装置２１に力を加える制御信号を受け取る。なお、駆動部２２は、作業者装置２０の外部に備えられていてもよい。
【００２０】
なお、ロボットシステム１は、複数台の作業者装置２０で１台のロボット１０を動作させることが可能な構成であってもよい。この場合、例えばある作業者装置２０がアーム部を動作させ、他の作業者装置２０がエンドエフェクタを動作させる等のように、操作対象が異なることが考えられる。また、１台の作業者装置２０で複数台のロボット１０を動作させることが可能な構成であってもよい。この場合、作業者装置２０は、動作対象のロボット１０を選択するための選択手段、例えば図略のキーを有していることが好ましい。
【００２１】
制御部４０は、公知のコンピュータにより構成されており、演算装置（ＣＰＵ等）と記憶部（例えばＲＯＭ、ＲＡＭ、ＨＤＤ等）を備えている。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、制御部４０は様々な手段として機能することができる。機能毎に名称を付けると、制御部４０は、学習制御部４１と、追加学習部４２と、算出部４３と、操作再現部４４と、通信部４５と、を備える。通信部４５はコネクタ又はアンテナを備えており、制御部４０の外部からの入力を、制御部４０内の各部４１〜４４に出力するように構成されている。通信部４５は、制御部４０内の各部４１〜４４による出力を、制御部４０の外部に出力するよう構成されている。例えば、通信部４５が受け取る、制御部４０の外部からの入力としては、作業者装置２０が出力する作業者操作力、センサ１１〜１３が出力するセンサ情報、後述する中継装置３０が出力する動作指令がある。また、例えば、通信部４５が出力する、制御部４０の外部への出力としては、後述する中継装置３０へ出力する演算操作力、後述する作業者装置２０へ出力する操作動作指令、追加動作指令がある。以下、制御部４０内の各部４１〜４４による、制御部４０の外部との入出力については、通信部４５を介することを特に言及しないことがある。
【００２２】
学習制御部４１は、機械学習により構築されたモデルを用いて、推測により求めた操作力を出力する。以下、このモデルの構築方法について説明する。作業者が作業者装置２０（操作装置２１）を操作してロボット１０に作業を行わせる際に取得されたデータを機械学習させることで、このモデルが構築される。具体的には、このデータとしては、図１に示す作業者操作力、動作指令、及びセンサ情報がある。学習制御部４１は、作業者操作力、動作指令、及びセンサ情報（特に周囲環境データ）に基づいて、これらのデータの対応関係を機械学習する以上のようにして学習制御部４１のモデルが構築される。また、このモデルは、作業者操作力以外のデータである動作指令及びセンサ情報に基づいて、次に出力すべき操作力を推測して出力する。以下では、学習制御部４１が推測して出力する操作力を特に演算操作力と称する。これにより、学習制御部４１は、ロボット１０に作業を適切に行わせるような操作力を出力することができる。なお、追加学習部４２、算出部４３、及び操作再現部４４の機能については後述する。
【００２３】
中継装置３０には、作業者装置２０（操作装置２１）が出力した作業者操作力と、制御部４０が演算して出力した演算操作力と、が入力される。中継装置３０は、ロボット１０を動作させるための動作指令を、ロボット１０及び制御部４０（通信部４５）へ出力する。中継装置３０は、演算装置及び記憶部を備える公知のコンピュータと、センサと、を備える。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、中継装置３０は様々な手段として機能することができる。機能毎に名称を付けると、中継装置３０は、切替部３１と、変換部３２と、規制部３３と、を備える。
【００２４】
切替部３１は、入力された作業者操作力及び演算操作力から、作業者操作力のみ、演算操作力のみ、又は作業者操作力と演算操作力の両方を変換部３２へ出力するように構成されている。これにより、作業者のみがロボット１０を動作させる状態と、制御部４０のみがロボット１０を動作させる状態と、作業者及び制御部４０が協働してロボット１０を動作させる状態と、を切り替えることができる。例えば、切替部３１は、一方の操作力の大きさが０であることをセンサにより検知したとき、他方の操作力のみを出力するように構成されてもよい。また、例えば、上記状態を作業者が切り替えるための状態切替スイッチを作業者装置２０に設け、中継装置３０（切替部３１）は、状態切替スイッチの状態を検知して、切替部３１の出力を変更するように構成されてもよい。
【００２５】
変換部３２は、切替部３１から入力された操作力（作業者操作力のみ、演算操作力のみ、作業者操作力及び演算操作力の両方）を、ロボット１０を動作させるための動作指令に変換して出力する。学習制御部４１は、出力された動作指令を、次の演算操作力の推定等に用いる。
【００２６】
規制部３３は、ロボット１０が受けた力（力センサ１２の出力）及び操作力に基づいて、予め定めた動作規制条件を満たすか否かを判定する。規制部３３は、動作規制条件を満たしたと判定した場合、ロボット１０の動作を停止させる制御を行う。例えば、規制部３３は、力センサ１２の出力及び変換部３２への入力である操作力が、動作規制条件を満たしたと判定した場合、変換部３２が動作指令を出力することを停止するように制御することにより、ロボット１０の動作を停止させる。なお、動作規制条件の詳細は後述する。
【００２７】
次に、図２を参照して、ロボットシステム１が自律的に作業を行うときの処理について説明する。図２は、機械学習により構築されたモデルを用いて学習制御部４１が行う処理を示すフローチャートである。
【００２８】
学習制御部４１は、動作センサ１１、力センサ１２、及びカメラ１３が検出したセンサ情報と、中継装置３０（変換部３２）が出力した動作指令と、を取得する（Ｓ１０１）。学習制御部４１は、上記のようにして構築されたモデルにセンサ情報及び動作指令を入力し、次に出力すべき演算操作力を推測する（Ｓ１０２）。そして、学習制御部４１は、推測した演算操作力を中継装置３０（変換部３２）へ出力する（Ｓ１０３、演算操作力出力工程）。中継装置３０（変換部３２）は、演算操作力を動作指令に変換してロボット１０に出力し、ロボット１０を動作させる。これにより、学習制御部４１が出力した演算操作力に応じて、ロボット１０が動作する。
【００２９】
そして、学習制御部４１は作業が完了したか否かを判定し（Ｓ１０４）、作業が完了していない場合は、新たに取得したセンサ情報及び動作指令に基づいてステップＳ１０２及びＳ１０３の処理を行う。また、学習制御部４１は、作業が完了したと判定した場合（Ｓ１０４）、一連の作業についての制御を終了し、次の作業のために必要な処理を行う。例えば、学習制御部４１は、ステップＳ１０１乃至Ｓ１０３の処理を所定回繰り返した結果、何れの処理においても出力する演算操作力の大きさが０であることを検出したとき、作業が完了したと判定するようにしてもよい。
【００３０】
このように、学習制御部４１の出力として操作力を採用した場合であっても、ロボットシステム１に自律的に作業を行わせることができる。
【００３１】
次に、図３を参照して、中継装置３０が行う制御について説明する。図３は、中継装置３０の規制部３３により行われる規制制御と、変換部３２により行われる変換制御と、を示すフローチャートである。
【００３２】
中継装置３０は、力センサ１２の検出値と、作業者装置２０（操作装置２１）が出力した作業者操作力と、制御部４０（学習制御部４１）が出力した演算操作力と、を取得する（Ｓ２０１）。作業者装置２０（操作装置２１）と制御部４０（学習制御部４１）の一方のみが操作力を出力している場合、例えば、他方が出力する操作力の大きさが０であることを中継装置３０が検知した場合は、中継装置３０は、当該一方のみの操作力を取得する。なお、操作力の大きさにかかわらず、中継装置３０は双方の操作力を取得してもよい。
【００３３】
次に、中継装置３０（規制部３３）は、力センサ１２の検出値と、取得した操作力と、に基づいて、動作規制条件を満たすか否か判定する（Ｓ２０２）。動作規制条件とは、ロボット１０又は周囲環境が想定外の状況に陥っているか否か等を判定するための条件である。例えば、力センサ１２の検出値が閾値以上であること、作業者操作力又は演算操作力が閾値以上であること、あるいは、力センサ１２の検出値が上昇し続けているにもかかわらず同じ方向にロボット１０を動作させる指示（操作力）が入力され続けていること等が動作規制条件の例として挙げられる。ここで挙げた動作規制条件は一例であり、他の条件が設定されていてもよい。また、上記で説明した以外のデータを用いて、この判定を行ってもよい。例えば、音を検出する音センサを用いて、閾値以上の音量が検出された場合に動作規制条件を満たすと判定することもできる。
【００３４】
規制部３３は、動作規制条件を満たすと判定した場合、ロボット１０の動作を停止させる（Ｓ２０３）。例えば、規制部３３は、動作規制条件を満たしたと判定した場合、変換部３２が動作指令を出力することを停止するように制御することにより、ロボット１０の動作を停止させる。なお、動作規制条件を満たす場合に、別の処理を行う構成であってもよい。例えば、所定方向へのロボット１０の動作を禁止するような動作指令を出力するように変換部３２を制御する処理、変換された動作指令を低減してから出力するように変換部３２を制御する処理等を行ってもよい。
【００３５】
一方、規制部３３が動作規制条件を満たさないと判定した場合、規制部３３は、変換部３２を制御し、操作力を動作指令に変換させる。変換部３２は、作業者操作力と演算操作力との合力を求め、この合力をロボット１０の動作指令に変換して（Ｓ２０４）、変換した動作指令をロボット１０及び制御部４０へ出力する（Ｓ２０５、動作指令出力工程）。なお、作業者操作力と演算操作力の一方のみの操作力が変換部３２に入力される場合、例えば他方の操作力の大きさが０であることを変換部３２が検知した場合は、変換部３２は当該一方の操作力を動作指令に変換して出力してもよい。
【００３６】
ここで、仮に、制御部４０（学習制御部４１）の出力がロボット１０の位置又は速度等である場合、作業者装置２０（操作装置２１）の出力は作業者操作力であり、制御部４０の出力の形式、即ち出力の次元が異なるため、両出力を単純に加算又は減算をすることができない。この点、本実施形態では、作業者装置２０の出力（作業者操作力）と、制御部４０の出力（演算操作力）とは、出力の形式、即ち出力の次元が同じである。そのため、両出力の加算又は減算を簡便かつ短時間で行うことができる。作業者装置２０の出力と制御部４０の出力との両方を用いてロボット１０を動作させる場合、短いタイムラグで２つの出力を合算することが好ましいため、簡便かつ短時間で合算ができることはロボットシステム１にとって大きな利点となる。
【００３７】
また、本実施形態では、作業者装置２０がロボット１０を動作させるか、制御部４０がロボット１０を動作させるかを作業者が切り替えながら作業を行う場合においても、作業者装置２０及び制御部４０の出力の次元が同じであるため、変換部３２は動作指令への変換処理の内容を同じとすることができる。即ち、ロボット１０の動作主体（即ち、作業者装置２０又は制御部４０）を切り替えても、変換部３２の変換処理の内容はこの切替に影響を受けない。これにより、ロボット１０の動作主体をスムーズに切り替えることができる。
【００３８】
次に、図４を参照して、作業者の補助作業により追加学習をリアルタイムで行う処理について説明する。図４は、この処理を示すフローチャートである。
【００３９】
作業者は、制御部４０によるロボット１０の動作を確認しつつ、改善した方がよい部分を見つけた場合、作業者装置２０（操作装置２１）を操作する。作業者装置２０は作業者操作力を中継装置３０及び制御部４０に出力する。中継装置３０は、制御部４０（学習制御部４１）から演算操作力を受け取り、演算操作力と作業者操作力とを合算した操作力を動作指令に変換してロボット１０（及び制御部４０）へ出力する。これにより、制御部４０によるロボット１０の操作を作業者が補助することができる。
【００４０】
また、この作業者による補助作業は、モデルを改善するためにも有用であるため、制御部４０は、作業者の補助作業に基づいて追加学習を行う。具体的に説明すると、制御部４０は、センサ情報と、動作指令と、作業者装置２０が出力した作業者操作力と、を取得する（Ｓ３０１）。
【００４１】
次に、追加学習部４２は、中継装置３０に出力した演算操作力を学習制御部４１から取得する（Ｓ３０２）。その後、追加学習部４２は、作業者操作力があるか否か（即ち、作業者の補助作業が行われたか否か）を判断する（Ｓ３０３）。追加学習部４２は、作業者操作力がある場合、例えば作業者操作力の大きさが０を超えることを検知した場合は、作業者操作力と演算操作力との合力がより適切な操作力であるとして、当該合力、動作指令、及びセンサ情報に基づいて追加学習を行い、モデルの更新を行う（Ｓ３０４）。即ち、ステップＳ３０１で取得したセンサ情報が示す状況においては、追加学習部４２は、演算操作力よりは、「作業者操作力と演算操作力との合力」の方が評価値が高くなるように、モデルを更新する追加学習を行う。また、追加学習部４２は、作業者による補助作業が行われる毎に、このような追加学習を行う。
【００４２】
以上の処理を繰り返すことで、より適切なモデルを構築することができる。これにより、学習制御部４１は、より適切な作業をロボット１０に行わせることができる。
【００４３】
なお、図４の処理に代えて、例えばステップＳ３０２で作業者操作力が検出された場合に、作業者装置２０（操作装置２１）のみの出力に基づいてロボット１０が動作できるようにしてもよい。例えば、ステップＳ３０２で作業者操作力の大きさが０を超えていることを検知した場合、追加学習部４２は、演算操作力を学習制御部４１から取得しないようにしてもよい。この場合、ステップＳ３０３では、「作業者操作力と演算操作力との合力」ではなく「作業者操作力」の評価値が高くなるように、モデルを更新する追加学習を行う。
【００４４】
なお、この追加学習は、ロボットシステム１を実際の生産現場に設置した後に行ってもよい。また、ロボットシステム１を生産現場に設置する前の学習段階で行ってもよい。更に、仮想空間上でロボット１０を動作させるシミュレーションの段階で行ってもよい。
【００４５】
次に、図５及び図６を参照して、制御部４０が作業者に作業者装置２０の操作方法を教育する処理について説明する。
【００４６】
作業者装置２０（操作装置２１）の操作経験がない作業者に、作業者装置２０の適切な操作を体験させることは有用である。本実施形態では、制御部４０が、作業者装置２０（操作装置２１）の適切な操作を再現して、作業者に体験させる。以下、この種の教育を行う場合の処理の流れを説明する。
【００４７】
制御部４０は、ステップＳ１０１及びＳ１０２と同様に、必要な情報であるセンサ情報と、動作指令と、を取得して（Ｓ４０１）、モデルにセンサ情報及び動作指令を入力して、演算操作力を推測する（Ｓ４０２）。
【００４８】
次に、制御部４０（算出部４３）は、駆動部２２が操作装置２１に外から加える力を推測した演算操作力と同じ力とするための、駆動部２２の動作を示す操作動作を算出する（Ｓ４０３）。言い換えれば、作業者装置２０（操作装置２１）をどのように操作すれば、制御部４０と同様にロボット１０を動作させることができるかを算出する。ここで、周知の機械制御技術を用いることにより、作業者が操作装置２１に加える力（作業者操作力）と同じ力で、駆動部２２が操作装置２１に力を加えることを実現できる。
【００４９】
次に、制御部４０（操作再現部４４）は、算出部４３が算出した操作動作に沿って、駆動部２２を動かすための制御信号である操作動作指令を出力する（Ｓ４０４）。
【００５０】
これにより、作業者は、作業者装置２０（操作装置２１）を手で握る等するだけで、作業者装置２０をどのように操作すればよいかを体験することができる。言い換えれば、制御部４０が機械学習により習得した技能を作業者に伝達することができる。
【００５１】
また、作業者装置２０（操作装置２１）の操作経験がある作業者に、作業者装置２０の操作の改善すべき操作を指摘したり、当該改善後の動作を体験させたりすることは有用である。以下、この種の教育を行う場合の処理の流れを説明する。
【００５２】
制御部４０は、ステップＳ１０１及びＳ１０２と同様に、必要な情報であるセンサ情報と、動作指令と、を取得して（Ｓ５０１）、モデルにセンサ情報及び動作指令を入力して、演算操作力を推測する（Ｓ５０２）。ただし、作業者による作業者装置２０の操作を確認するため、ステップＳ５０１では更に作業者操作力も取得する。
【００５３】
次に、制御部４０（算出部４３）は、演算操作力と作業者操作力との差分を検出し、駆動部２２が操作装置２１に外から加える力を上記差分とするための、駆動部２２の動作を示す追加動作を算出する（Ｓ５０３）。言い換えれば、作業者による操作装置２１の操作をどのように修正すれば、制御部４０と同様にロボット１０を動作させることができるかを算出する。ここで、周知の機械制御技術を用いることにより、駆動部２２が操作装置２１に力（差分）を加えることを実現できる。即ち、周知の機械制御技術を用いることにより、作業者及び駆動部２２が操作装置２１に加える力を、演算操作力と同じ力とすることを実現できる。
【００５４】
次に、制御部４０（操作再現部４４）は、算出部４３が算出した追加動作に沿って、駆動部２２を動かすための制御信号である追加動作指令を出力する（Ｓ５０４）。これにより、作業者は、自身の操作を確認しつつ、どのように改善すればよいかを体験することができる。
【００５５】
図５及び図６を参照して説明した作業者の教育は、ロボットシステム１を実際の生産現場に設置した後に実施してもよい。また、ロボットシステム１を生産現場に設置する前の学習段階で実施してもよい。また、仮想空間上でロボット１０を動作させるシミュレーションを用いて実施してもよい。
【００５６】
作業者装置２０（操作装置２１）の操作経験が豊富な作業者が、ロボットシステム１の自律運転時における作業者装置２０の仮想操作を体験すること、即ち、制御部４０が学習したロボット１０の現在の動作は作業者装置２０をどのように操作すれば実現できるのかを作業者装置２０の実際の動きにより体験すること、は有用である。更に、この経験豊富な作業者が、作業者装置２０の仮想操作を体験しつつ、自律運転時におけるロボット１０の現在の動作に改善が必要であると判断したときに、作業者が作業者装置２０に伝わる触覚・力覚等を感じながら、ロボット１０のより適切な動作を作業者装置２０の操作によって制御部４０に追加学習させること、は一層有用である。以下、この種の仮想操作体験及び追加学習を行う処理を、図７を参照して説明する。
【００５７】
制御部４０は、センサ情報と動作指令とを取得してこれらを記憶し（Ｓ６０１）、モデルにセンサ情報及び動作指令を入力して、演算操作力を推測してこれを記憶する（Ｓ６０２）。
【００５８】
次に、制御部４０（算出部４３）は、駆動部２２が操作装置２１に外から加える力を推測した演算操作力と同じ力とするための、駆動部２２の動作を示す操作動作を算出する（Ｓ６０３）。言い換えれば、作業者装置２０（操作装置２１）をどのように操作すれば、制御部４０と同様にロボット１０を動作させることができるかを算出する。ここで、周知の機械制御技術を用いることにより、作業者が操作装置２１に加える力と同じ力で、駆動部２２が操作装置２１に力を加えることを実現できる。
【００５９】
次に、制御部４０（操作再現部４４）は、算出部４３が算出した操作動作に沿って、駆動部２２を動かすための制御信号である操作動作指令を出力する（Ｓ６０４）。これにより、作業者は、作業者装置２０の仮想操作を体験することができる。
【００６０】
作業者は、作業者装置２０の仮想操作を体験しながら、自律運転時におけるロボット１０の現在の動作に改善が必要であると判断したとき、作業者装置２０（操作装置２１）を操作する。制御部４０は、作業者装置２０（操作装置２１）が出力した作業者操作力を取得する（Ｓ６０５）。なお、ロボット１０の動作を改善するために制御部４０に追加学習させる操作力は、駆動部２２が操作装置２１に加えた力（演算操作力）と、作業者が操作装置２１そのものに加えた力（作業者操作力）との合力である。
【００６１】
次に、追加学習部４２は、作業者装置２０から出力された作業者操作力があるか否か（即ち、作業者が作業者装置２０を操作したか否か）を判断する（Ｓ６０６）。例えば、作業者操作力の大きさが０を超えているか否かを検知することにより判断してもよい。作業者操作力があると判断した場合は、追加学習部４２は、この作業者操作力と、ステップＳ６０２で記憶した演算操作力との合力を算出し（Ｓ６０７）、この合力と、ステップＳ６０１で記憶したセンサ情報及び動作指令と、に基づいて追加学習を行い、モデルを更新する（Ｓ６０８）。なお、作業者操作力がない場合は、追加学習部４２は追加学習を行わず、ステップＳ６０１に戻る。また、ステップＳ６０６，Ｓ６０７の代わりに、追加学習部４２は、作業者操作力と記憶した演算操作力との合力を先に算出してから、この合力が作業者操作力と異なるか否か（即ち、合力と作業者操作力との差が０か否か）により作業者操作力の有無を判断するようにしてもよい。
【００６２】
これにより、作業者は、ロボットシステム１の自律運転時における作業者装置２０の仮想操作を体験することができる。更に、作業者は、自律運転時におけるロボット１０の現在の動作に改善が必要であると判断したときに、作業者装置２０に伝わる触覚・力覚等を感じながら、ロボット１０のより適切な動作を作業者装置２０の操作によって制御部４０に追加学習させることができる。言い換えれば、作業者は、制御部４０が習得した技能を実体験しつつ、この技能を更に熟達させるように制御部４０を追加学習させることを容易に行うことができる。この結果、経験豊富な作業者が有する熟達した技能を、制御部４０を介して他の作業者に伝承することが容易になる。
【００６３】
図７を参照して説明した作業者の仮想操作体験及び追加学習は、ロボットシステム１を実際の生産現場に設置した後に実施してもよい。また、ロボットシステム１を生産現場に設置する前の学習段階で実施してもよい。また、仮想空間上でロボット１０を動作させるシミュレーションを用いて実施してもよい。
【００６４】
なお、図２から図７の処理をリアルタイム（即ち、極めて高速かつタイムラグが無視できる）で行うことができるようにロボットシステム１が構成されている場合を考える。この構成の場合、通常のロボット１０の用途では、図７の処理を数回繰り返しても、ステップＳ６０１，Ｓ６０２で取得するセンサ情報、動作指令、及び演算操作力の経時的変化は小さい。従って、制御部４０（追加学習部４２）は、ステップＳ６０１，Ｓ６０２でセンサ情報、動作指令、演算操作力を記憶しない代わりに、ステップＳ６０７，Ｓ６０８の実行時にセンサ情報、動作指令、演算操作力を通信部４５や学習制御部４１から取得するようにしてもよい。
【００６５】
更に、上述の場合においては、中継装置３０が、作業者装置２０及び制御部４０から、作業者操作力及び演算操作力を随時取得して、動作指令を出力するようにしてもよい。これにより、ロボットシステム１は、改善後のロボット１０の動作を追加学習させながら、この動作をロボット１０の実動作として反映することをリアルタイムで行うことができる。言い換えれば、作業者は、改善後のロボット１０の動作を実際に見ながら、ロボット１０の動作の改善作業を行うことができる。
【００６６】
以上に説明したように、このロボットシステム１は、ロボット１０と、動作センサ１１と、周囲環境センサ（力センサ１２、カメラ１３）と、操作装置２１と、学習制御部４１と、中継装置３０と、を備える。ロボット１０は、動作指令に基づいて作業を行う。動作センサ１１は、ロボット１０の動作を示す動作データを検出する。周囲環境センサ（力センサ１２、カメラ１３）は、ロボット１０の周囲の環境の状態を示す周囲環境データを検出する。操作装置２１は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。学習制御部４１は、演算操作力を出力する。中継装置３０は、作業者操作力及び演算操作力に基づいて、動作指令を出力する。学習制御部４１は、作業者操作力、周囲環境データ、動作データ、及び動作指令を機械学習することで構築されたモデルにより、センサ１１〜１３が出力した動作データ及び周囲環境データと、中継装置３０が出力した動作指令とに基づいて、演算操作力を推定し出力する。
【００６７】
これにより、学習制御部４１の出力と、作業者装置２０の出力とが、操作力という共通の形式を持つようにモデルを構成する。これにより、作業者操作力、演算操作力をロボットへの動作指令に変換する処理を共通化することができる。
【００６８】
また、本実施形態のロボットシステム１において、中継装置３０は、作業者操作力及び演算操作力の合力を求め、当該合力を動作指令に変換して出力する。
【００６９】
これにより、ロボット１０の作業を作業者が補助したり、作業者の作業をロボット１０が補助したりするシステムの構築が可能となる。
【００７０】
また、本実施形態のロボットシステム１は、追加学習部４２を備える。追加学習部４２は、作業者操作力及び演算操作力の合力、周囲環境データ、動作データ、及び動作指令に基づいて追加学習を行ってモデルを更新する。
【００７１】
また、本実施形態のロボットシステム１は、追加学習部４２を備える。追加学習部４２は、作業者操作力、周囲環境データ、動作データ、及び動作指令に基づいて追加学習を行ってモデルを更新する。
【００７２】
これにより、操作装置２１を用いて作業者がロボット１０の動作を修正し、この修正した動作を追加学習することができる。
【００７３】
また、本実施形態のロボットシステム１は、駆動部２２と、算出部４３と、操作再現部４４と、を備える。駆動部２２は、制御信号に基づいて操作装置２１に力を加える。算出部４３は、駆動部２２が操作装置２１に加える力を演算操作力と同じ力とするための、駆動部２２の動作を示す操作動作を算出する。操作再現部４４は、操作動作に基づいて、制御信号を出力する。
【００７４】
これにより、ロボット１０の適切な動作のさせ方を、作業者に伝達することができる。
【００７５】
また、本実施形態のロボットシステム１は、駆動部２２と、算出部４３と、操作再現部４４と、を備える。駆動部２２は、制御信号に基づいて操作装置２１に力を加える。算出部４３は、駆動部２２が操作装置２１に加える力を演算操作力と作業者操作力との差分とするための、駆動部２２の動作を示す追加動作を算出する。操作再現部４４は、追加動作に基づいて、制御信号を出力する。
【００７６】
これにより、作業者は、自身のロボット１０の操作の改善点を体験することができる。
【００７７】
また、本実施形態のロボットシステム１は、駆動部２２と、算出部４３と、操作再現部４４と、を備える。駆動部２２は、制御信号に基づいて操作装置２１に力を加える。算出部４３は、駆動部２２が操作装置２１に加える力を演算操作力と同じ力とするための、駆動部の動作を示す操作動作を算出する。操作再現部４４は、操作動作に基づいて、制御信号を出力する。追加学習部４２は、作業者操作力の大きさが０でないとき、作業者操作力及び演算操作力の合力、周囲環境データ、動作データ、及び動作指令に基づいて追加学習を行ってモデルを更新する。
【００７８】
これにより、作業者は、ロボット１０の学習動作を体験しつつ、ロボット１０のより適切な動作を追加学習させることができる。
【００７９】
また、本実施形態のロボットシステム１において、周囲環境センサは、周囲環境データとしてのロボット１０が受けた力を検出する力センサ１２を備える。
【００８０】
これにより、例えばワークから受ける力を考慮してロボット１０を動作させることが可能となる。
【００８１】
また、本実施形態のロボットシステム１において、中継装置３０は、力センサ１２の検出値と、操作力と、に基づいて、予め定めた条件（動作規制条件）を満たした場合に、ロボット１０の動作を規制する動作指令を出力する。
【００８２】
これにより、想定されていない状況になった場合にロボット１０の動作を規制できる。
【００８３】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【００８４】
図２から図７のフローチャートの内容は一例であり、処理の追加、処理の省略、処理の順序変更等を行ってもよい。
【００８５】
モデルを構築するために入力するデータ及び操作力を推測するために入力するデータとして上記実施形態で挙げたデータは一例であり、異なるデータを入力してもよい。
【００８６】
上記実施形態で示したように作業者装置２０が複数台である場合、例えば追加学習時において、ある作業者装置２０がアーム部に対して補助作業を行い、他の作業者装置２０がエンドエフェクタに対して補助作業を行う等のように、補助作業を分担するように構成してもよい。また、図５に示す方法で作業者を教育する場合、制御部４０から複数台の作業者装置２０（駆動部２２）に同一の操作動作指令を出力することにより、複数の作業者が作業者装置２０の適切な操作を体験するようにしてもよい。
【００８７】
上記実施形態では、ロボットシステム１を構成する各装置が同じ作業現場に配置されることを想定しているが、ネットワークで情報をやり取りできるのであれば、少なくとも１つの装置（例えば作業者装置２０）が遠隔地に配置されていてもよい。また、中継装置３０の有する機能の少なくとも一部が制御部４０で行われる構成であってもよい。逆に、制御部４０が有する機能の少なくとも一部が、中継装置３０で行われる構成であってもよい。更には、中継装置３０及び制御部４０以外にも別のハードウェアを備える構成であってもよい。
【００８８】
上記実施形態では、ロボット１０は台座部に取り付けられているが、自律的に走行可能な構成であってもよい。また、ロボット１０は、アーム部以外の部材で作業を行う構成であってもよい。
【符号の説明】
【００８９】
１  ロボットシステム
１０  ロボット
１１  動作センサ
１２  力センサ
１３  カメラ
２０  作業者装置
３０  中継装置
４０  制御部
４１  学習制御部
４２  追加学習部
４３  算出部
４４  操作再現部
【図１】
2019202404.tif 000003
【図２】
2019202404.tif 000004
【図３】
2019202404.tif 000005
【図４】
2019202404.tif 000006
【図５】
2019202404.tif 000007
【図６】
2019202404.tif 000008
【図７】
2019202404.tif 000009