(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-11
(45)【発行日】2022-03-22
(54)【発明の名称】ロボットシステム及びロボット制御方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20220314BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2018100523
(22)【出願日】2018-05-25
【審査請求日】2021-03-19
(73)【特許権者】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】100118784
【氏名又は名称】桂川 直己
(72)【発明者】
【氏名】蓮沼 仁志
(72)【発明者】
【氏名】藤森 潤
(72)【発明者】
【氏名】木下 博貴
(72)【発明者】
【氏名】山本 武司
(72)【発明者】
【氏名】▲高▼橋 大樹
(72)【発明者】
【氏名】倉島 一輝
【審査官】木原 裕二
(56)【参考文献】
【文献】特開2016-159407(JP,A)
【文献】特開2017-185577(JP,A)
【文献】特開2017-200718(JP,A)
【文献】特開2006-293442(JP,A)
【文献】特開2009-125920(JP,A)
【文献】特開2017-170553(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/00
(57)【特許請求の範囲】
【請求項1】
動作指令に基づいて作業を行うロボットと、
前記ロボットの動作を示す動作データを検出する動作センサと、
前記ロボットの周囲の環境の状態を示す周囲環境データを検出する周囲環境センサと、
作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する操作装置と、
演算操作力を出力する学習制御部と、
前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する中継装置と、
を備えるロボットシステムであって、
前記学習制御部は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、前記動作センサが検出した前記動作データ及び前記周囲環境センサが検出した前記周囲環境データと、前記中継装置が出力した前記動作指令とに基づいて、前記演算操作力を推定し出力することを特徴とするロボットシステム。
【請求項2】
請求項1に記載のロボットシステムであって、
前記中継装置は、前記作業者操作力及び前記演算操作力の合力を求め、当該合力を前記動作指令に変換して出力することを特徴とするロボットシステム。
【請求項3】
請求項1又は2に記載のロボットシステムであって、
前記作業者操作力及び前記演算操作力の合力、前記周囲環境データ、前記動作データ、及び前記動作指令に基づいて追加学習を行って前記モデルを更新する追加学習部を備えることを特徴とするロボットシステム。
【請求項4】
請求項1又は2に記載のロボットシステムであって、
前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令に基づいて追加学習を行って前記モデルを更新する追加学習部を備えることを特徴とするロボットシステム。
【請求項5】
請求項1から4までの何れか一項に記載のロボットシステムであって、
制御信号に基づいて前記操作装置に力を加える駆動部と、
前記駆動部が前記操作装置に加える力を前記演算操作力と同じ力とするための、前記駆動部の動作を示す操作動作を算出する算出部と、
前記操作動作に基づいて前記制御信号を出力する操作再現部と、
を備えることを特徴とするロボットシステム。
【請求項6】
請求項1から4までの何れか一項に記載のロボットシステムであって、
制御信号に基づいて前記操作装置に力を加える駆動部と、
前記駆動部が前記操作装置に加える力を前記演算操作力と前記作業者操作力との差分とするための、前記駆動部の動作を示す追加動作を算出する算出部と、
前記追加動作に基づいて前記制御信号を出力する操作再現部と、
を備えることを特徴とするロボットシステム。
【請求項7】
請求項3に記載のロボットシステムであって、
制御信号に基づいて前記操作装置に力を加える駆動部と、
前記駆動部が前記操作装置に加える力を前記演算操作力と同じ力とするための、前記駆動部の動作を示す操作動作を算出する算出部と、
前記操作動作に基づいて前記制御信号を出力する操作再現部と、
を備え、
前記追加学習部は、前記作業者操作力の大きさが0でないとき、前記作業者操作力及び前記演算操作力の合力、前記周囲環境データ、前記動作データ、及び前記動作指令に基づいて追加学習を行って前記モデルを更新することを特徴とするロボットシステム。
【請求項8】
請求項1から7までの何れか一項に記載のロボットシステムであって、
前記周囲環境センサは、前記周囲環境データとしての前記ロボットが受けた力を検出する力センサを備えることを特徴とするロボットシステム。
【請求項9】
請求項8に記載のロボットシステムであって、
前記中継装置は、前記力センサの検出値と、前記操作力と、に基づいて、予め定めた条件を満たした場合に前記ロボットの動作を規制する前記動作指令を出力することを特徴とするロボットシステム。
【請求項10】
動作指令に基づいて作業を行うロボットの制御方法であって、
前記ロボットの動作を示す動作データを検出する動作検出工程と、
前記ロボットの周囲の環境の状態を示す周囲環境データを検出する環境検出工程と、
作業者が操作装置に加えた操作力である作業者操作力を検出する作業者操作力検出工程と、
演算操作力を出力する演算操作力出力工程と、
前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する動作指令出力工程と、
を含み、
前記演算操作力出力工程は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、検出された前記動作データ及び前記周囲環境データと、出力された前記動作指令とに基づいて、前記演算操作力を推定し出力することを含む、
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主として、機械学習により構築されたモデルに基づいてロボットに作業を行わせるロボットシステムに関する。
【背景技術】
【0002】
従来から、予め作成されたプログラムによって、ロボット及びプラント等の制御対象物を制御し、所望の動きを行わせることが行われている。例えば特許文献1には、ロボットの制御部が、CPUと、ロボットを制御するためのプログラムが格納されたROMと、ロボットが作業を実行するためのロボット言語で書かれたプログラムが格納されたRAMと、を備える構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の構成において、ロボット等を動かすためのプログラムは、人間が作業を理解して、動かし方をプログラミングすることで実現されている。しかしながら、このような手法は、プログラムの作成及びその調整に時間を要する場合が多かった。
【0005】
そのため、近年では、プログラムの作成時間の低減や、様々な状況にロボットを柔軟に対応させること等を目的として、機械学習を用いたロボット動作制御方法が提案されている。このロボット動作制御方法は、ロボットの動作データを機械学習することでモデルを構築し、このモデルに基づいてロボットを動作させるものである。
【0006】
ここで、作業者が操作する操作装置でロボットを動作させることが可能なロボットシステムが知られている。この種のロボットシステムに、上記のロボット動作制御を行う制御部を持たせる場合における好適なモデルは知られていなかった。
【0007】
本発明は以上の事情に鑑みてされたものであり、その主要な目的は、制御部及び操作装置に応じてロボットを動作させるロボットシステムにおいて、好適なモデルを含む構成を提供することにある。
【課題を解決するための手段】
【0008】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【0009】
本発明の第1の観点によれば、以下の構成のロボットシステムが提供される。即ち、このロボットシステムは、ロボットと、動作センサと、周囲環境センサと、操作装置と、学習制御部と、中継装置と、を備える。前記ロボットは、動作指令に基づいて作業を行う。前記動作センサは、前記ロボットの動作を示す動作データを検出する。前記周囲環境センサは、前記ロボットの周囲の環境の状態を示す周囲環境データを検出する。前記操作装置は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。前記学習制御部は、演算操作力を出力する。前記中継装置は、前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する。前記学習制御部は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、前記動作センサが出力した前記動作データ及び前記周囲環境センサが出力した前記周囲環境データと、前記中継装置が出力した前記動作指令とに基づいて、前記演算操作力を推定し出力する。
【0010】
本発明の第2の観点によれば、以下のロボット制御方法が提供される。即ち、このロボット制御方法は、動作指令に基づいて作業を行うロボットを制御する。このロボット制御方法は、動作検出工程と、環境検出工程と、作業者操作力検出工程と、演算操作力出力工程と、動作指令出力工程と、を含む。前記動作検出工程では、前記ロボットの動作を示す動作データを検出する。前記環境検出工程では、前記ロボットの周囲の環境の状態を示す周囲環境データを検出する。前記演算操作力出力工程では、前記演算操作力を出力する。前記動作指令出力工程では、前記作業者操作力及び前記演算操作力に基づいて、前記動作指令を出力する。前記演算操作力出力工程は、前記作業者操作力、前記周囲環境データ、前記動作データ、及び前記動作指令を機械学習することで構築されたモデルにより、検出された前記動作データ及び前記周囲環境データと、出力された前記動作指令とに基づいて、前記演算操作力を推定し出力することを含む。
【0011】
これにより、学習制御部の出力と、操作装置の出力とが、操作力という共通の形式を持つようにモデルを構成する。これにより、作業者操作力、演算操作力をロボットへの動作指令に変換する処理を共通化することができる。
【発明の効果】
【0012】
本発明によれば、制御部及び操作装置に応じてロボットを動作させるロボットシステムにおいて、好適なモデルを含む構成を実現できる。
【図面の簡単な説明】
【0013】
【
図1】本発明の一実施形態に係るロボットシステムの構成を示すブロック図。
【
図2】機械学習により構築されたモデルを用いて学習制御部が行う処理を示すフローチャート。
【
図3】中継装置により行われる規制制御及び変換制御を示すフローチャート。
【
図4】制御部によるロボットの制御を作業者が補助する際に行う追加学習をフローチャート。
【
図5】制御部が操作装置を動作させて、作業者に操作装置の操作方法を体験させる処理を示すフローチャート。
【
図6】制御部が操作装置を動作させることで作業者の操作を補助する処理を示すフローチャート。
【
図7】制御部による操作装置の動作を作業者に体験させるとともに、作業者が操作装置を動作させた場合に、この動作を追加学習する処理を示すフローチャート。
【発明を実施するための形態】
【0014】
次に、図面を参照して本発明の実施形態を説明する。初めに、
図1を参照して、本実施形態のロボットシステム1について説明する。
図1は、ロボットシステム1の構成を示すブロック図である。
【0015】
ロボットシステム1は、ロボット10に作業を行わせるためのシステムである。ロボット10に行わせる作業としては様々であるが、例えば、組立て、加工、塗装、洗浄等がある。ロボット10は、作業に関する動作データを機械学習することで構築されたモデルを用いて制御されている。そのため、ロボットシステム1では、基本的には作業者の補助を必要とせず、ロボット10が作業を自律的に行うことができる。このようにロボット10が作業を自律的に行うことを「自律運転」と称することがある。また、ロボット10が自律的に作業を行うだけでなく、作業者の操作に応じてロボット10を動作させて作業を行うこともできる。更に、本実施形態のロボットシステム1は、作業者の操作とシステム側の制御とを協働させて作業を行うこともできる。
【0016】
図1に示すように、ロボットシステム1は、ロボット10と、作業者装置20と、中継装置30と、制御部40と、を備える。それぞれの装置は、有線又は無線のネットワークを介して互いに接続されている。
【0017】
ロボット10は、台座に取り付けられたアーム部を備える。アーム部は、複数の関節を有しており、各関節にはアクチュエータが備えられている。ロボット10は、外部から入力された動作指令に応じてアクチュエータを動作させることでアーム部を動作させる。この動作指令は、直線状の速度の指令と、角速度の指令と、を含む。アーム部の先端には、作業内容に応じたエンドエフェクタが取り付けられている。ロボット10は、外部から入力された動作指令に応じてエンドエフェクタを動作させることで作業を行う。
【0018】
また、ロボット10又はその周囲には、ロボット10の動作及び周囲環境等を検出するためのセンサが取り付けられている。本実施形態では、動作センサ11と、力センサ12と、カメラ13と、がロボット10に取り付けられている。動作センサ11は、ロボット10のアーム部の関節毎に設けられており、各関節の回転角度又は角速度を検出する(動作検出工程)。力センサ12は、ロボット10の動作時に、ロボット10が受けた力を検出する(環境検出工程)。力センサ12はエンドエフェクタが受けた力を検出する構成であってもよいし、アーム部の各関節が受けた力を検出する構成であってもよい。また、力センサ12は、力に代えて又は加えてモーメントを検出する構成であってもよい。カメラ13は、作業対象であるワークの映像(ワークへの作業の進行状況)を検出する(環境検出工程)。カメラ13に代えて又は加えて、音又は振動を検出するセンサを設け、これらのセンサの検出結果に基づいて、ワークへの作業の進行状況を検出することもできる。動作センサ11が検出するデータは、ロボット10の動作を示す動作データであり、力センサ12及びカメラ13が検出するデータは、ロボット10の周囲の環境の状態を示す周囲環境データである。以下の説明では、動作センサ11、力センサ12、及びカメラ13をまとめて「センサ11~13」と称することがある。また、以下の説明では、これらのセンサ11~13が検出したデータを、特に「センサ情報」と称することがある。
【0019】
作業者装置20は、操作装置21と、駆動部22と、を備える。操作装置21は、ロボット10を動作させるために作業者が操作する部材である。操作装置21は、作業内容に応じて異なるが、例えば、作業者が手で操作するレバー又は足で操作するペダルである。操作装置21は、図略の操作力検出センサを備えている。操作力検出センサは、作業者が操作装置21に加えた操作力を検出する(操作力検出工程)。操作装置21が様々な方向に動かすことができるように構成されている場合、操作力は力の向き及び大きさを含む値、例えばベクトルであってもよい。また、操作力は、作業者が加えた力(N)だけでなく、力に連動する値である加速度(即ち、作業者が加えた力を操作装置21の質量で除算した値)であってもよい。以下の説明では、作業者が操作装置21に加えた操作力を、特に「作業者操作力」と称することがある。操作装置21が検出して出力した作業者操作力は、後述するように中継装置30で動作指令に変換された後にロボット10へ出力される。駆動部22は、図略のアクチュエータを備える。アクチュエータは、入力される制御信号に基づいて、操作装置21に外から力を加えることにより、操作装置21の動作を自在に行えるよう構成されている。特に、後述する制御部40(操作再現部44)から、アクチュエータは操作装置21に力を加える制御信号を受け取る。なお、駆動部22は、作業者装置20の外部に備えられていてもよい。
【0020】
なお、ロボットシステム1は、複数台の作業者装置20で1台のロボット10を動作させることが可能な構成であってもよい。この場合、例えばある作業者装置20がアーム部を動作させ、他の作業者装置20がエンドエフェクタを動作させる等のように、操作対象が異なることが考えられる。また、1台の作業者装置20で複数台のロボット10を動作させることが可能な構成であってもよい。この場合、作業者装置20は、動作対象のロボット10を選択するための選択手段、例えば図略のキーを有していることが好ましい。
【0021】
制御部40は、公知のコンピュータにより構成されており、演算装置(CPU等)と記憶部(例えばROM、RAM、HDD等)を備えている。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、制御部40は様々な手段として機能することができる。機能毎に名称を付けると、制御部40は、学習制御部41と、追加学習部42と、算出部43と、操作再現部44と、通信部45と、を備える。通信部45はコネクタ又はアンテナを備えており、制御部40の外部からの入力を、制御部40内の各部41~44に出力するように構成されている。通信部45は、制御部40内の各部41~44による出力を、制御部40の外部に出力するよう構成されている。例えば、通信部45が受け取る、制御部40の外部からの入力としては、作業者装置20が出力する作業者操作力、センサ11~13が出力するセンサ情報、後述する中継装置30が出力する動作指令がある。また、例えば、通信部45が出力する、制御部40の外部への出力としては、後述する中継装置30へ出力する演算操作力、後述する作業者装置20へ出力する操作動作指令、追加動作指令がある。以下、制御部40内の各部41~44による、制御部40の外部との入出力については、通信部45を介することを特に言及しないことがある。
【0022】
学習制御部41は、機械学習により構築されたモデルを用いて、推測により求めた操作力を出力する。以下、このモデルの構築方法について説明する。作業者が作業者装置20(操作装置21)を操作してロボット10に作業を行わせる際に取得されたデータを機械学習させることで、このモデルが構築される。具体的には、このデータとしては、
図1に示す作業者操作力、動作指令、及びセンサ情報がある。学習制御部41は、作業者操作力、動作指令、及びセンサ情報(特に周囲環境データ)に基づいて、これらのデータの対応関係を機械学習する以上のようにして学習制御部41のモデルが構築される。また、このモデルは、作業者操作力以外のデータである動作指令及びセンサ情報に基づいて、次に出力すべき操作力を推測して出力する。以下では、学習制御部41が推測して出力する操作力を特に演算操作力と称する。これにより、学習制御部41は、ロボット10に作業を適切に行わせるような操作力を出力することができる。なお、追加学習部42、算出部43、及び操作再現部44の機能については後述する。
【0023】
中継装置30には、作業者装置20(操作装置21)が出力した作業者操作力と、制御部40が演算して出力した演算操作力と、が入力される。中継装置30は、ロボット10を動作させるための動作指令を、ロボット10及び制御部40(通信部45)へ出力する。中継装置30は、演算装置及び記憶部を備える公知のコンピュータと、センサと、を備える。記憶部に記憶されたプログラムを演算装置が読み出して実行することで、中継装置30は様々な手段として機能することができる。機能毎に名称を付けると、中継装置30は、切替部31と、変換部32と、規制部33と、を備える。
【0024】
切替部31は、入力された作業者操作力及び演算操作力から、作業者操作力のみ、演算操作力のみ、又は作業者操作力と演算操作力の両方を変換部32へ出力するように構成されている。これにより、作業者のみがロボット10を動作させる状態と、制御部40のみがロボット10を動作させる状態と、作業者及び制御部40が協働してロボット10を動作させる状態と、を切り替えることができる。例えば、切替部31は、一方の操作力の大きさが0であることをセンサにより検知したとき、他方の操作力のみを出力するように構成されてもよい。また、例えば、上記状態を作業者が切り替えるための状態切替スイッチを作業者装置20に設け、中継装置30(切替部31)は、状態切替スイッチの状態を検知して、切替部31の出力を変更するように構成されてもよい。
【0025】
変換部32は、切替部31から入力された操作力(作業者操作力のみ、演算操作力のみ、作業者操作力及び演算操作力の両方)を、ロボット10を動作させるための動作指令に変換して出力する。学習制御部41は、出力された動作指令を、次の演算操作力の推定等に用いる。
【0026】
規制部33は、ロボット10が受けた力(力センサ12の出力)及び操作力に基づいて、予め定めた動作規制条件を満たすか否かを判定する。規制部33は、動作規制条件を満たしたと判定した場合、ロボット10の動作を停止させる制御を行う。例えば、規制部33は、力センサ12の出力及び変換部32への入力である操作力が、動作規制条件を満たしたと判定した場合、変換部32が動作指令を出力することを停止するように制御することにより、ロボット10の動作を停止させる。なお、動作規制条件の詳細は後述する。
【0027】
次に、
図2を参照して、ロボットシステム1が自律的に作業を行うときの処理について説明する。
図2は、機械学習により構築されたモデルを用いて学習制御部41が行う処理を示すフローチャートである。
【0028】
学習制御部41は、動作センサ11、力センサ12、及びカメラ13が検出したセンサ情報と、中継装置30(変換部32)が出力した動作指令と、を取得する(S101)。学習制御部41は、上記のようにして構築されたモデルにセンサ情報及び動作指令を入力し、次に出力すべき演算操作力を推測する(S102)。そして、学習制御部41は、推測した演算操作力を中継装置30(変換部32)へ出力する(S103、演算操作力出力工程)。中継装置30(変換部32)は、演算操作力を動作指令に変換してロボット10に出力し、ロボット10を動作させる。これにより、学習制御部41が出力した演算操作力に応じて、ロボット10が動作する。
【0029】
そして、学習制御部41は作業が完了したか否かを判定し(S104)、作業が完了していない場合は、新たに取得したセンサ情報及び動作指令に基づいてステップS102及びS103の処理を行う。また、学習制御部41は、作業が完了したと判定した場合(S104)、一連の作業についての制御を終了し、次の作業のために必要な処理を行う。例えば、学習制御部41は、ステップS101乃至S103の処理を所定回繰り返した結果、何れの処理においても出力する演算操作力の大きさが0であることを検出したとき、作業が完了したと判定するようにしてもよい。
【0030】
このように、学習制御部41の出力として操作力を採用した場合であっても、ロボットシステム1に自律的に作業を行わせることができる。
【0031】
次に、
図3を参照して、中継装置30が行う制御について説明する。
図3は、中継装置30の規制部33により行われる規制制御と、変換部32により行われる変換制御と、を示すフローチャートである。
【0032】
中継装置30は、力センサ12の検出値と、作業者装置20(操作装置21)が出力した作業者操作力と、制御部40(学習制御部41)が出力した演算操作力と、を取得する(S201)。作業者装置20(操作装置21)と制御部40(学習制御部41)の一方のみが操作力を出力している場合、例えば、他方が出力する操作力の大きさが0であることを中継装置30が検知した場合は、中継装置30は、当該一方のみの操作力を取得する。なお、操作力の大きさにかかわらず、中継装置30は双方の操作力を取得してもよい。
【0033】
次に、中継装置30(規制部33)は、力センサ12の検出値と、取得した操作力と、に基づいて、動作規制条件を満たすか否か判定する(S202)。動作規制条件とは、ロボット10又は周囲環境が想定外の状況に陥っているか否か等を判定するための条件である。例えば、力センサ12の検出値が閾値以上であること、作業者操作力又は演算操作力が閾値以上であること、あるいは、力センサ12の検出値が上昇し続けているにもかかわらず同じ方向にロボット10を動作させる指示(操作力)が入力され続けていること等が動作規制条件の例として挙げられる。ここで挙げた動作規制条件は一例であり、他の条件が設定されていてもよい。また、上記で説明した以外のデータを用いて、この判定を行ってもよい。例えば、音を検出する音センサを用いて、閾値以上の音量が検出された場合に動作規制条件を満たすと判定することもできる。
【0034】
規制部33は、動作規制条件を満たすと判定した場合、ロボット10の動作を停止させる(S203)。例えば、規制部33は、動作規制条件を満たしたと判定した場合、変換部32が動作指令を出力することを停止するように制御することにより、ロボット10の動作を停止させる。なお、動作規制条件を満たす場合に、別の処理を行う構成であってもよい。例えば、所定方向へのロボット10の動作を禁止するような動作指令を出力するように変換部32を制御する処理、変換された動作指令を低減してから出力するように変換部32を制御する処理等を行ってもよい。
【0035】
一方、規制部33が動作規制条件を満たさないと判定した場合、規制部33は、変換部32を制御し、操作力を動作指令に変換させる。変換部32は、作業者操作力と演算操作力との合力を求め、この合力をロボット10の動作指令に変換して(S204)、変換した動作指令をロボット10及び制御部40へ出力する(S205、動作指令出力工程)。なお、作業者操作力と演算操作力の一方のみの操作力が変換部32に入力される場合、例えば他方の操作力の大きさが0であることを変換部32が検知した場合は、変換部32は当該一方の操作力を動作指令に変換して出力してもよい。
【0036】
ここで、仮に、制御部40(学習制御部41)の出力がロボット10の位置又は速度等である場合、作業者装置20(操作装置21)の出力は作業者操作力であり、制御部40の出力の形式、即ち出力の次元が異なるため、両出力を単純に加算又は減算をすることができない。この点、本実施形態では、作業者装置20の出力(作業者操作力)と、制御部40の出力(演算操作力)とは、出力の形式、即ち出力の次元が同じである。そのため、両出力の加算又は減算を簡便かつ短時間で行うことができる。作業者装置20の出力と制御部40の出力との両方を用いてロボット10を動作させる場合、短いタイムラグで2つの出力を合算することが好ましいため、簡便かつ短時間で合算ができることはロボットシステム1にとって大きな利点となる。
【0037】
また、本実施形態では、作業者装置20がロボット10を動作させるか、制御部40がロボット10を動作させるかを作業者が切り替えながら作業を行う場合においても、作業者装置20及び制御部40の出力の次元が同じであるため、変換部32は動作指令への変換処理の内容を同じとすることができる。即ち、ロボット10の動作主体(即ち、作業者装置20又は制御部40)を切り替えても、変換部32の変換処理の内容はこの切替に影響を受けない。これにより、ロボット10の動作主体をスムーズに切り替えることができる。
【0038】
次に、
図4を参照して、作業者の補助作業により追加学習をリアルタイムで行う処理について説明する。
図4は、この処理を示すフローチャートである。
【0039】
作業者は、制御部40によるロボット10の動作を確認しつつ、改善した方がよい部分を見つけた場合、作業者装置20(操作装置21)を操作する。作業者装置20は作業者操作力を中継装置30及び制御部40に出力する。中継装置30は、制御部40(学習制御部41)から演算操作力を受け取り、演算操作力と作業者操作力とを合算した操作力を動作指令に変換してロボット10(及び制御部40)へ出力する。これにより、制御部40によるロボット10の操作を作業者が補助することができる。
【0040】
また、この作業者による補助作業は、モデルを改善するためにも有用であるため、制御部40は、作業者の補助作業に基づいて追加学習を行う。具体的に説明すると、制御部40は、センサ情報と、動作指令と、作業者装置20が出力した作業者操作力と、を取得する(S301)。
【0041】
次に、追加学習部42は、中継装置30に出力した演算操作力を学習制御部41から取得する(S302)。その後、追加学習部42は、作業者操作力があるか否か(即ち、作業者の補助作業が行われたか否か)を判断する(S303)。追加学習部42は、作業者操作力がある場合、例えば作業者操作力の大きさが0を超えることを検知した場合は、作業者操作力と演算操作力との合力がより適切な操作力であるとして、当該合力、動作指令、及びセンサ情報に基づいて追加学習を行い、モデルの更新を行う(S304)。即ち、ステップS301で取得したセンサ情報が示す状況においては、追加学習部42は、演算操作力よりは、「作業者操作力と演算操作力との合力」の方が評価値が高くなるように、モデルを更新する追加学習を行う。また、追加学習部42は、作業者による補助作業が行われる毎に、このような追加学習を行う。
【0042】
以上の処理を繰り返すことで、より適切なモデルを構築することができる。これにより、学習制御部41は、より適切な作業をロボット10に行わせることができる。
【0043】
なお、
図4の処理に代えて、例えばステップS302で作業者操作力が検出された場合に、作業者装置20(操作装置21)のみの出力に基づいてロボット10が動作できるようにしてもよい。例えば、ステップS302で作業者操作力の大きさが0を超えていることを検知した場合、追加学習部42は、演算操作力を学習制御部41から取得しないようにしてもよい。この場合、ステップS303では、「作業者操作力と演算操作力との合力」ではなく「作業者操作力」の評価値が高くなるように、モデルを更新する追加学習を行う。
【0044】
なお、この追加学習は、ロボットシステム1を実際の生産現場に設置した後に行ってもよい。また、ロボットシステム1を生産現場に設置する前の学習段階で行ってもよい。更に、仮想空間上でロボット10を動作させるシミュレーションの段階で行ってもよい。
【0045】
次に、
図5及び
図6を参照して、制御部40が作業者に作業者装置20の操作方法を教育する処理について説明する。
【0046】
作業者装置20(操作装置21)の操作経験がない作業者に、作業者装置20の適切な操作を体験させることは有用である。本実施形態では、制御部40が、作業者装置20(操作装置21)の適切な操作を再現して、作業者に体験させる。以下、この種の教育を行う場合の処理の流れを説明する。
【0047】
制御部40は、ステップS101及びS102と同様に、必要な情報であるセンサ情報と、動作指令と、を取得して(S401)、モデルにセンサ情報及び動作指令を入力して、演算操作力を推測する(S402)。
【0048】
次に、制御部40(算出部43)は、駆動部22が操作装置21に外から加える力を推測した演算操作力と同じ力とするための、駆動部22の動作を示す操作動作を算出する(S403)。言い換えれば、作業者装置20(操作装置21)をどのように操作すれば、制御部40と同様にロボット10を動作させることができるかを算出する。ここで、周知の機械制御技術を用いることにより、作業者が操作装置21に加える力(作業者操作力)と同じ力で、駆動部22が操作装置21に力を加えることを実現できる。
【0049】
次に、制御部40(操作再現部44)は、算出部43が算出した操作動作に沿って、駆動部22を動かすための制御信号である操作動作指令を出力する(S404)。
【0050】
これにより、作業者は、作業者装置20(操作装置21)を手で握る等するだけで、作業者装置20をどのように操作すればよいかを体験することができる。言い換えれば、制御部40が機械学習により習得した技能を作業者に伝達することができる。
【0051】
また、作業者装置20(操作装置21)の操作経験がある作業者に、作業者装置20の操作の改善すべき操作を指摘したり、当該改善後の動作を体験させたりすることは有用である。以下、この種の教育を行う場合の処理の流れを説明する。
【0052】
制御部40は、ステップS101及びS102と同様に、必要な情報であるセンサ情報と、動作指令と、を取得して(S501)、モデルにセンサ情報及び動作指令を入力して、演算操作力を推測する(S502)。ただし、作業者による作業者装置20の操作を確認するため、ステップS501では更に作業者操作力も取得する。
【0053】
次に、制御部40(算出部43)は、演算操作力と作業者操作力との差分を検出し、駆動部22が操作装置21に外から加える力を上記差分とするための、駆動部22の動作を示す追加動作を算出する(S503)。言い換えれば、作業者による操作装置21の操作をどのように修正すれば、制御部40と同様にロボット10を動作させることができるかを算出する。ここで、周知の機械制御技術を用いることにより、駆動部22が操作装置21に力(差分)を加えることを実現できる。即ち、周知の機械制御技術を用いることにより、作業者及び駆動部22が操作装置21に加える力を、演算操作力と同じ力とすることを実現できる。
【0054】
次に、制御部40(操作再現部44)は、算出部43が算出した追加動作に沿って、駆動部22を動かすための制御信号である追加動作指令を出力する(S504)。これにより、作業者は、自身の操作を確認しつつ、どのように改善すればよいかを体験することができる。
【0055】
図5及び
図6を参照して説明した作業者の教育は、ロボットシステム1を実際の生産現場に設置した後に実施してもよい。また、ロボットシステム1を生産現場に設置する前の学習段階で実施してもよい。また、仮想空間上でロボット10を動作させるシミュレーションを用いて実施してもよい。
【0056】
作業者装置20(操作装置21)の操作経験が豊富な作業者が、ロボットシステム1の自律運転時における作業者装置20の仮想操作を体験すること、即ち、制御部40が学習したロボット10の現在の動作は作業者装置20をどのように操作すれば実現できるのかを作業者装置20の実際の動きにより体験すること、は有用である。更に、この経験豊富な作業者が、作業者装置20の仮想操作を体験しつつ、自律運転時におけるロボット10の現在の動作に改善が必要であると判断したときに、作業者が作業者装置20に伝わる触覚・力覚等を感じながら、ロボット10のより適切な動作を作業者装置20の操作によって制御部40に追加学習させること、は一層有用である。以下、この種の仮想操作体験及び追加学習を行う処理を、
図7を参照して説明する。
【0057】
制御部40は、センサ情報と動作指令とを取得してこれらを記憶し(S601)、モデルにセンサ情報及び動作指令を入力して、演算操作力を推測してこれを記憶する(S602)。
【0058】
次に、制御部40(算出部43)は、駆動部22が操作装置21に外から加える力を推測した演算操作力と同じ力とするための、駆動部22の動作を示す操作動作を算出する(S603)。言い換えれば、作業者装置20(操作装置21)をどのように操作すれば、制御部40と同様にロボット10を動作させることができるかを算出する。ここで、周知の機械制御技術を用いることにより、作業者が操作装置21に加える力と同じ力で、駆動部22が操作装置21に力を加えることを実現できる。
【0059】
次に、制御部40(操作再現部44)は、算出部43が算出した操作動作に沿って、駆動部22を動かすための制御信号である操作動作指令を出力する(S604)。これにより、作業者は、作業者装置20の仮想操作を体験することができる。
【0060】
作業者は、作業者装置20の仮想操作を体験しながら、自律運転時におけるロボット10の現在の動作に改善が必要であると判断したとき、作業者装置20(操作装置21)を操作する。制御部40は、作業者装置20(操作装置21)が出力した作業者操作力を取得する(S605)。なお、ロボット10の動作を改善するために制御部40に追加学習させる操作力は、駆動部22が操作装置21に加えた力(演算操作力)と、作業者が操作装置21そのものに加えた力(作業者操作力)との合力である。
【0061】
次に、追加学習部42は、作業者装置20から出力された作業者操作力があるか否か(即ち、作業者が作業者装置20を操作したか否か)を判断する(S606)。例えば、作業者操作力の大きさが0を超えているか否かを検知することにより判断してもよい。作業者操作力があると判断した場合は、追加学習部42は、この作業者操作力と、ステップS602で記憶した演算操作力との合力を算出し(S607)、この合力と、ステップS601で記憶したセンサ情報及び動作指令と、に基づいて追加学習を行い、モデルを更新する(S608)。なお、作業者操作力がない場合は、追加学習部42は追加学習を行わず、ステップS601に戻る。また、ステップS606,S607の代わりに、追加学習部42は、作業者操作力と記憶した演算操作力との合力を先に算出してから、この合力が作業者操作力と異なるか否か(即ち、合力と作業者操作力との差が0か否か)により作業者操作力の有無を判断するようにしてもよい。
【0062】
これにより、作業者は、ロボットシステム1の自律運転時における作業者装置20の仮想操作を体験することができる。更に、作業者は、自律運転時におけるロボット10の現在の動作に改善が必要であると判断したときに、作業者装置20に伝わる触覚・力覚等を感じながら、ロボット10のより適切な動作を作業者装置20の操作によって制御部40に追加学習させることができる。言い換えれば、作業者は、制御部40が習得した技能を実体験しつつ、この技能を更に熟達させるように制御部40を追加学習させることを容易に行うことができる。この結果、経験豊富な作業者が有する熟達した技能を、制御部40を介して他の作業者に伝承することが容易になる。
【0063】
図7を参照して説明した作業者の仮想操作体験及び追加学習は、ロボットシステム1を実際の生産現場に設置した後に実施してもよい。また、ロボットシステム1を生産現場に設置する前の学習段階で実施してもよい。また、仮想空間上でロボット10を動作させるシミュレーションを用いて実施してもよい。
【0064】
なお、
図2から
図7の処理をリアルタイム(即ち、極めて高速かつタイムラグが無視できる)で行うことができるようにロボットシステム1が構成されている場合を考える。この構成の場合、通常のロボット10の用途では、
図7の処理を数回繰り返しても、ステップS601,S602で取得するセンサ情報、動作指令、及び演算操作力の経時的変化は小さい。従って、制御部40(追加学習部42)は、ステップS601,S602でセンサ情報、動作指令、演算操作力を記憶しない代わりに、ステップS607,S608の実行時にセンサ情報、動作指令、演算操作力を通信部45や学習制御部41から取得するようにしてもよい。
【0065】
更に、上述の場合においては、中継装置30が、作業者装置20及び制御部40から、作業者操作力及び演算操作力を随時取得して、動作指令を出力するようにしてもよい。これにより、ロボットシステム1は、改善後のロボット10の動作を追加学習させながら、この動作をロボット10の実動作として反映することをリアルタイムで行うことができる。言い換えれば、作業者は、改善後のロボット10の動作を実際に見ながら、ロボット10の動作の改善作業を行うことができる。
【0066】
以上に説明したように、このロボットシステム1は、ロボット10と、動作センサ11と、周囲環境センサ(力センサ12、カメラ13)と、操作装置21と、学習制御部41と、中継装置30と、を備える。ロボット10は、動作指令に基づいて作業を行う。動作センサ11は、ロボット10の動作を示す動作データを検出する。周囲環境センサ(力センサ12、カメラ13)は、ロボット10の周囲の環境の状態を示す周囲環境データを検出する。操作装置21は、作業者が操作する装置であり、作業者が加えた操作力である作業者操作力を検出して出力する。学習制御部41は、演算操作力を出力する。中継装置30は、作業者操作力及び演算操作力に基づいて、動作指令を出力する。学習制御部41は、作業者操作力、周囲環境データ、動作データ、及び動作指令を機械学習することで構築されたモデルにより、センサ11~13が出力した動作データ及び周囲環境データと、中継装置30が出力した動作指令とに基づいて、演算操作力を推定し出力する。
【0067】
これにより、学習制御部41の出力と、作業者装置20の出力とが、操作力という共通の形式を持つようにモデルを構成する。これにより、作業者操作力、演算操作力をロボットへの動作指令に変換する処理を共通化することができる。
【0068】
また、本実施形態のロボットシステム1において、中継装置30は、作業者操作力及び演算操作力の合力を求め、当該合力を動作指令に変換して出力する。
【0069】
これにより、ロボット10の作業を作業者が補助したり、作業者の作業をロボット10が補助したりするシステムの構築が可能となる。
【0070】
また、本実施形態のロボットシステム1は、追加学習部42を備える。追加学習部42は、作業者操作力及び演算操作力の合力、周囲環境データ、動作データ、及び動作指令に基づいて追加学習を行ってモデルを更新する。
【0071】
また、本実施形態のロボットシステム1は、追加学習部42を備える。追加学習部42は、作業者操作力、周囲環境データ、動作データ、及び動作指令に基づいて追加学習を行ってモデルを更新する。
【0072】
これにより、操作装置21を用いて作業者がロボット10の動作を修正し、この修正した動作を追加学習することができる。
【0073】
また、本実施形態のロボットシステム1は、駆動部22と、算出部43と、操作再現部44と、を備える。駆動部22は、制御信号に基づいて操作装置21に力を加える。算出部43は、駆動部22が操作装置21に加える力を演算操作力と同じ力とするための、駆動部22の動作を示す操作動作を算出する。操作再現部44は、操作動作に基づいて、制御信号を出力する。
【0074】
これにより、ロボット10の適切な動作のさせ方を、作業者に伝達することができる。
【0075】
また、本実施形態のロボットシステム1は、駆動部22と、算出部43と、操作再現部44と、を備える。駆動部22は、制御信号に基づいて操作装置21に力を加える。算出部43は、駆動部22が操作装置21に加える力を演算操作力と作業者操作力との差分とするための、駆動部22の動作を示す追加動作を算出する。操作再現部44は、追加動作に基づいて、制御信号を出力する。
【0076】
これにより、作業者は、自身のロボット10の操作の改善点を体験することができる。
【0077】
また、本実施形態のロボットシステム1は、駆動部22と、算出部43と、操作再現部44と、を備える。駆動部22は、制御信号に基づいて操作装置21に力を加える。算出部43は、駆動部22が操作装置21に加える力を演算操作力と同じ力とするための、駆動部の動作を示す操作動作を算出する。操作再現部44は、操作動作に基づいて、制御信号を出力する。追加学習部42は、作業者操作力の大きさが0でないとき、作業者操作力及び演算操作力の合力、周囲環境データ、動作データ、及び動作指令に基づいて追加学習を行ってモデルを更新する。
【0078】
これにより、作業者は、ロボット10の学習動作を体験しつつ、ロボット10のより適切な動作を追加学習させることができる。
【0079】
また、本実施形態のロボットシステム1において、周囲環境センサは、周囲環境データとしてのロボット10が受けた力を検出する力センサ12を備える。
【0080】
これにより、例えばワークから受ける力を考慮してロボット10を動作させることが可能となる。
【0081】
また、本実施形態のロボットシステム1において、中継装置30は、力センサ12の検出値と、操作力と、に基づいて、予め定めた条件(動作規制条件)を満たした場合に、ロボット10の動作を規制する動作指令を出力する。
【0082】
これにより、想定されていない状況になった場合にロボット10の動作を規制できる。
【0083】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【0084】
図2から
図7のフローチャートの内容は一例であり、処理の追加、処理の省略、処理の順序変更等を行ってもよい。
【0085】
モデルを構築するために入力するデータ及び操作力を推測するために入力するデータとして上記実施形態で挙げたデータは一例であり、異なるデータを入力してもよい。
【0086】
上記実施形態で示したように作業者装置20が複数台である場合、例えば追加学習時において、ある作業者装置20がアーム部に対して補助作業を行い、他の作業者装置20がエンドエフェクタに対して補助作業を行う等のように、補助作業を分担するように構成してもよい。また、
図5に示す方法で作業者を教育する場合、制御部40から複数台の作業者装置20(駆動部22)に同一の操作動作指令を出力することにより、複数の作業者が作業者装置20の適切な操作を体験するようにしてもよい。
【0087】
上記実施形態では、ロボットシステム1を構成する各装置が同じ作業現場に配置されることを想定しているが、ネットワークで情報をやり取りできるのであれば、少なくとも1つの装置(例えば作業者装置20)が遠隔地に配置されていてもよい。また、中継装置30の有する機能の少なくとも一部が制御部40で行われる構成であってもよい。逆に、制御部40が有する機能の少なくとも一部が、中継装置30で行われる構成であってもよい。更には、中継装置30及び制御部40以外にも別のハードウェアを備える構成であってもよい。
【0088】
上記実施形態では、ロボット10は台座部に取り付けられているが、自律的に走行可能な構成であってもよい。また、ロボット10は、アーム部以外の部材で作業を行う構成であってもよい。
【符号の説明】
【0089】
1 ロボットシステム
10 ロボット
11 動作センサ
12 力センサ
13 カメラ
20 作業者装置
30 中継装置
40 制御部
41 学習制御部
42 追加学習部
43 算出部
44 操作再現部