IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

<>
  • 特開-学習装置および処理装置 図1
  • 特開-学習装置および処理装置 図2
  • 特開-学習装置および処理装置 図3
  • 特開-学習装置および処理装置 図4
  • 特開-学習装置および処理装置 図5
  • 特開-学習装置および処理装置 図6
  • 特開-学習装置および処理装置 図7
  • 特開-学習装置および処理装置 図8
  • 特開-学習装置および処理装置 図9
  • 特開-学習装置および処理装置 図10
  • 特開-学習装置および処理装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023180813
(43)【公開日】2023-12-21
(54)【発明の名称】学習装置および処理装置
(51)【国際特許分類】
   B25J 13/00 20060101AFI20231214BHJP
   G06N 20/00 20190101ALI20231214BHJP
【FI】
B25J13/00 Z
G06N20/00
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022094417
(22)【出願日】2022-06-10
(71)【出願人】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】小松 真弓
(72)【発明者】
【氏名】岡田 雅司
(72)【発明者】
【氏名】奥村 亮
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707JU03
3C707KS17
3C707KS21
3C707KS33
3C707KT01
3C707KV01
3C707KV18
3C707KW03
3C707KW05
3C707LU06
3C707LU09
3C707LV15
3C707LW12
(57)【要約】
【課題】ロボットアームを制御するモデルを容易に作成する学習装置および処理装置を提供する。
【解決手段】ロボットアームを制御する制御指令値を出力するためのモデルを作成する学習装置であって、ロボットアームの動作情報と、動作情報に対応するロボットアームの作業フェーズと、ロボットアームの制御指令値とを取得データとして取得するデータ取得部と、取得データの動作情報および作業フェーズに基づき、動作情報を入力とし、作業フェーズを出力する前段モデルを機械学習の処理を実行して作成する第一の学習処理部と、取得データを作業フェーズに基づき複数のグループに分類した状態データを生成するデータ処理部と、状態データに基づき、動作情報を入力とし、ロボットアームの制御指令値を出力する後段モデルをグループ毎に機械学習の処理を実行して作成する第二の学習処理部と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
ロボットアームを制御する制御指令値を出力するためのモデルを作成する学習装置であって、
前記ロボットアームの動作情報と、前記動作情報に対応する前記ロボットアームの作業フェーズと、前記ロボットアームの制御指令値とを取得データとして取得するデータ取得部と、
前記取得データの前記動作情報および前記作業フェーズに基づき、前記動作情報を入力とし、前記作業フェーズを出力する前段モデルを機械学習の処理を実行して作成する第一の学習処理部と、
前記取得データを前記作業フェーズに基づき複数のグループに分類した状態データを生成するデータ処理部と、
前記状態データに基づき、前記動作情報を入力とし、前記ロボットアームの制御指令値を出力する後段モデルを前記グループ毎に機械学習の処理を実行して作成する第二の学習処理部と、を備える、学習装置。
【請求項2】
前記データ処理部は、時系列で前記動作情報および前記作業フェーズが並ぶ前記取得データを前記複数のグループに分割することで前記状態データを生成する、
請求項1に記載の学習装置。
【請求項3】
前記第一の学習処理部は、前記取得データの前記制御指令値において力制御の有無が切り替わるタイミングに基づき、前記作業フェーズを前記複数のグループに分類して出力するように前記前段モデルを作成する、
請求項1に記載の学習装置。
【請求項4】
前記第二の学習処理部は、前記作業フェーズの数と同数以上である複数の学習部を含み、
前記第二の学習処理部は、前記複数の学習部のそれぞれにおいて前記状態データに基づき機械学習の処理を実行する、
請求項1~3のいずれか1項に記載の学習装置。
【請求項5】
ロボットアームを制御するためのデータを処理する処理装置であって、
前記ロボットアームの動作情報を取得するデータ取得部と、
前記ロボットアームの動作情報と前記ロボットアームの作業フェーズとの関係を機械学習して生成された前段モデルに、取得された前記動作情報を入力して前記作業フェーズを出力する第一の処理部と、
前記ロボットアームの作業フェーズを複数のグループに分類して、前記動作情報と前記ロボットアームの制御指令値との関係を前記グループ毎に機械学習して生成された後段モデルに、取得された前記動作情報を、前記第一の処理部から出力された前記作業フェーズに基づき入力して前記制御指令値を出力する第二の処理部と、を備える、処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、学習装置および処理装置に関する。
【背景技術】
【0002】
部品の嵌め合いを行う場合など、力センサを備えたロボットで力制御を行う場合がある。力制御の方式としては、インピーダンス制御やハイブリッド制御などがあるが、これらのパラメータを近年、機械学習によって調整する手法が開示されている。
【0003】
例えば、特許文献1には、産業用ロボットのマニピュレータの制御に関する各パラメータの自動調整を機械学習で行う機能をもつ制御装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-55095号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に示す制御装置は、力制御を行うかどうかという判断を含むロボットアームの動作を学習できていないため、ロボットアームを適切に制御するモデルを作成することが困難であった。
【0006】
本開示は、ロボットアームを制御するモデルを容易に作成する学習装置および処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一態様に係る学習装置は、ロボットアームを制御する制御指令値を出力するためのモデルを作成する学習装置であって、ロボットアームの動作情報と、動作情報に対応するロボットアームの作業フェーズと、ロボットアームの制御指令値とを取得データとして取得するデータ取得部と、取得データの動作情報および作業フェーズに基づき、動作情報を入力とし、作業フェーズを出力する前段モデルを機械学習の処理を実行して作成する第一の学習処理部と、取得データを作業フェーズに基づき複数のグループに分類した状態データを生成するデータ処理部と、状態データに基づき、動作情報を入力とし、ロボットアームの制御指令値を出力する後段モデルをグループ毎に機械学習の処理を実行して作成する第二の学習処理部と、を備える。
【0008】
本開示の一態様に係る処理装置は、ロボットアームを制御するためのデータを処理する処理装置であって、ロボットアームの動作情報を取得するデータ取得部と、ロボットアームの動作情報とロボットアームの作業フェーズとの関係を機械学習して生成された前段モデルに、取得された動作情報を入力して作業フェーズを出力する第一の処理部と、ロボットアームの作業フェーズを複数のグループに分類して、動作情報とロボットアームの制御指令値との関係をグループ毎に機械学習して生成された後段モデルに、取得された動作情報を、第一の処理部から出力された作業フェーズに基づき入力して制御指令値を出力する第二の処理部と、を備える。
【発明の効果】
【0009】
本開示によれば、ロボットアームを制御するモデルを容易に作成することが可能となる。
【図面の簡単な説明】
【0010】
図1】実施形態1に係る学習装置とロボットアームの構成の一例を示す図である。
図2】実施形態1に係る機械学習装置の構成の一例を示すブロック図である。
図3】実施形態1に係る制御装置の構成の一例を示すブロック図である。
図4】実施形態1に係るロボットアームによるピンの嵌合作業の一例を示す図である。
図5】実施形態1に係る嵌合作業のタスクに合わせて組み合わされた制御の一例を示す図である。
図6】実施形態1の動作の一例を示すフローチャートである。
図7】実施形態1に係る前段モデルに入力される入力値の一例を示す図である。
図8】実施形態1に係る前段モデルから出力される出力値の一例を示す図である。
図9】実施形態1に係るデータ前処理部で生成された状態データの一例を示す図である。
図10】実施形態2に係る処理装置を備えた制御装置の構成の一例を示すブロック図である。
図11】実施形態2の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
(実施形態1)
図1は、本開示の実施形態1に係る学習装置を備えるロボットアーム1の構成の一例を示す。ロボットアーム1は、ロボットアーム本体30と、制御装置20とを含む。
【0012】
ロボットアーム本体30は、土台部31と、第2関節部32-1と、第1リンク33と、第3関節部32-2と、第2リンク34と、第4関節部32-3と、第3リンク35と、第5関節部32-4と、第6関節部32-5と、ハンド38とを含む。
【0013】
土台部31は、ロボットアーム本体30の各部を支持するもので、ロボットアーム本体30の基端部に配置されている。
【0014】
第2関節部32-1は、土台部31上に配置され、土台部31に対して回転可能に設けられている。
【0015】
第1リンク33は、延在形状を有し、基端部が延在方向と直交する軸の周りに回転可能に第2関節部32-1に接続されている。
【0016】
第3関節部32-2は、第1リンク33の先端部に配置され、第1リンク33の延在方向に対して直交する軸の周りに回転可能に設けられている。
【0017】
第2リンク34は、延在形状を有し、基端部が第3関節部32-2に接続されている。すなわち、第2リンク34は、第3関節部32-2を介して、第1リンク33に回転可能に接続されている。
【0018】
第4関節部32-3は、第2リンク34の先端部に配置され、第2リンク34の延在方向に対して直交する軸の周りに回転可能に設けられている。
【0019】
第3リンク35は、延在形状を有し、基端部が第4関節部に接続されている。すなわち、第3リンク35は、第4関節部を介して、第2リンク34に回転可能に接続されている。
【0020】
第5関節部32-4は、第3リンク35の先端部に配置され、第3リンク35の延在方向に対して直交する軸の周りに回転可能に設けられている。
【0021】
第6関節部32-5は、第5関節部32-4に取り付けられている。すなわち、第6関節部32-5は、第5関節部32-4を介して第3リンク35に回転可能に配置されている。また、第6関節部32-5は、第5関節部32-4の回転軸に直交する回転軸を有し、その回転軸の周りに回転可能に設けられている。
【0022】
ハンド38は、作業対象のワーク40を把持するもので、第6関節部32-5に接続されている。ハンド38には、力センサ37が配置され、この力センサ37でハンド38にかかる力を計測することが出来る。
【0023】
なお、土台部31、第2関節部32-1、第3関節部32-2、第4関節部32-3、第5関節部32-4、第6関節部32-5をまとめて関節部32と称す。
【0024】
図2は、実施形態1に係る制御装置20の構成を示すブロック図である。
【0025】
制御装置20は、機械学習を行う機械学習装置10を含む。制御装置20は、例えば、パーソナルコンピュータ(PC)などから構成してもよい。
【0026】
機械学習装置10は、データ取得部7と、取得データ記憶部8と、データ前処理部9と、第一の学習処理部11と、データ処理部12と、第二の学習処理部13と、を含む。ここで、入力装置5およびセンサ6がデータ取得部7に接続され、このデータ取得部7が取得データ記憶部8を介してデータ前処理部9に接続されている。また、データ前処理部9は、第一の学習処理部11に接続されると共に、データ処理部12を介して第二の学習処理部13に接続されている。
【0027】
データ取得部7は、ロボットアーム1の動作情報と、そのロボットアーム1の動作情報に対応する作業フェーズと、動作情報に対応するロボットアーム1の制御指令値とを含む取得データを入力装置5およびセンサ6から取得する。
【0028】
ここで、ロボットアーム1の動作情報は、ロボットアーム1の動作量を表す情報であり、例えば、ロボットアーム1にかかる力およびモーメント、ロボットアーム1の関節角度および手先位置などを含んでもよい。また、ロボットアーム1の作業フェーズは、ロボットアーム1による一連の作業を複数のタスクに区分けしたときに、それぞれのタスクを識別するものであり、例えば番号などの記号で表されてもよい。作業フェーズは、例えば、ロボットアーム1の力制御の有無が切り替わるタイミングに基づいて設定してもよい。例えば、データ取得部7は、一連の作業において入力装置5またはセンサ6などから入力されるロボットアーム1の力制御の有無(例えばON/OFF)に基づいて、作業フェーズが切り替わるタイミングを算出し、そのタイミングに基づいて各動作情報に対応する作業フェーズを取得してもよい。また、データ取得部7は、動作情報に対応する作業フェーズを入力装置5から直接的に取得してもよい。また、ロボットアーム1の制御指令値は、例えば、位置目標値、インピーダンス制御のON/OFF、力制御のON/OFF、インピーダンスパラメータ、力制御の目標値などを含んでもよい。
【0029】
なお、入力装置5は、ユーザが取得データなどを入力するための装置である。また、センサ6は、ロボットアーム1に配置されたセンサであり、例えば、ロボットアーム1の力センサ37などを含んでもよい。
【0030】
取得データ記憶部8は、データ取得部7で取得された取得データを順次記憶する。なお、取得データは、作業の時系列に従ってデータ(例えば、動作情報、作業フェーズ)が並ぶ時系列データである。
【0031】
データ前処理部9は、取得データ記憶部8に記憶された取得データに対して、機械学習のための前処理を実行する。前処理は、例えば、ダウンサンプリングや学習データに対するノイズの付加、時系列の方向の後補間などを含んでもよい。
【0032】
第一の学習処理部11は、学習部14と、学習データ記憶部16とを含む。学習部14は、データ前処理部9で前処理された取得データの動作情報および作業フェーズに基づき、ロボットアーム1の動作情報を入力とし、ロボットアーム1の作業フェーズを出力する前段モデルを、機械学習の処理を実行して作成する。学習データ記憶部16は、学習部14で学習された結果、例えば前段モデルを記憶する。
【0033】
データ処理部12は、データ前処理部9で前処理された取得データの作業フェーズに基づき、データ前処理部9で前処理された取得データを複数のグループに分類して状態データを生成する。データ処理部12は、例えば、作業の時系列に従ってデータが並ぶ取得データを、作業フェーズで分類されたグループに分割することで状態データを生成してもよい。
【0034】
第二の学習処理部13は、データ処理部12で生成された状態データに基づき、ロボットアーム1の動作情報を入力とし、ロボットアーム1の制御指令値を出力する後段モデルを、グループ毎に機械学習の処理を実行して作成する。例えば、第二の学習処理部13は、学習部13-1、学習部13-2、学習部13-3、学習部13-4を含んでもよい。
【0035】
学習部13-1は、データ処理部12で区分けされたタスクAの状態データに基づいて第1後段モデルを作成する。学習部13-2は、データ処理部12で区分けされたタスクBの状態データに基づいて第2後段モデルを作成する。学習部13-3は、データ処理部12で区分けされたタスクCの状態データに基づいて第3後段モデルを作成する。学習部13-4は、データ処理部12で区分けされたタスクDの状態データに基づいて第4後段モデルを作成する。
【0036】
ここで、第二の学習処理部13は、例えば、ロボットアーム1の手先位置、力センサ値を入力とし、ロボットアーム1の位置目標値、インピーダンス制御のON/OFF、力制御のON/OFF、インピーダンスパラメータ、力制御の目標値を出力とする後段モデルを作成してもよい。
【0037】
図3は、制御装置20のハードウェア構成を示す。
【0038】
制御装置20は、バスBを介して相互接続される記憶部17と、プロセッサ18と、ユーザインタフェース(UI)19とを有する。
【0039】
なお、制御装置20における後述される各種機能及び処理を実現するプログラム又は指示は、ネットワークなどを介し何れかの外部装置からダウンロードされてもよいし、CD-ROM(Compact Disk-Read Only Memory)、フラッシュメモリ等の着脱可能な記憶媒体から提供されてもよい。
【0040】
記憶部17は、例えば、ランダムアクセスメモリ、フラッシュメモリ、ハードディスクドライブなどの1つ以上の非一時的な記憶媒体(non-transitory storage medium)によって実現され、インストールされたプログラム又は指示と共に、プログラム又は指示の実行に用いられるファイル、データ等を格納する。
【0041】
プロセッサ18は、1つ以上のプロセッサコアから構成されうる1つ以上のCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、処理回路(processing circuitry)等によって実現されてもよい。プロセッサ18は、記憶部17に格納されたプログラム、指示、当該プログラム若しくは指示を実行するのに必要なパラメータなどのデータ等に従って、後述される制御装置20の各種機能及び処理を実行する。
【0042】
UI19は、キーボード、マウス、カメラ、マイクロフォン等の入力装置、ディスプレイ、スピーカ、ヘッドセット、プリンタ等の出力装置、タッチパネル等の入出力装置から構成されてもよく、ユーザと制御装置20との間のインタフェースを実現する。例えば、ユーザは、ディスプレイ又はタッチパネルに表示されたGUI(Graphical User Interface)をキーボード、マウス等を用いて操作し、制御装置20を操作してもよい。
【0043】
なお、上述したハードウェア構成は単なる一例であり、本開示による制御装置20は、他の何れか適切なハードウェア構成により実現されてもよい。
【0044】
次に、ロボットアーム1の一連の作業について一例を挙げて説明する。
【0045】
図4に、ピン(ワーク40)の嵌合作業を実施するロボットアーム1を示す。このロボットアーム1は、スタート位置から部品41の穴42の近くにワーク40を移動させるタスクAと、穴42の近くにおいて部品41の表面上にワーク40を当接させるタスクBと、その当接位置から穴42までワーク40を部品41に押し当てながら移動させるタスクCと、ワーク40を穴42に嵌めこむタスクDとを順次実施する。このように、ロボットアーム1は、位置制御、インピーダンス制御および力制御を含む制御が可能であり、ワーク40の嵌合作業のタスクに合わせて、制御の組み合わせが予め作成される。
【0046】
図5に、嵌合作業のタスクに合わせて組み合わされた制御の一例を示す。タスクAでは、ロボットアーム1のインピーダンス制御および力制御は、両者ともにOFFの状態である。タスクCでは、xy方向、すなわち部品41の表面に沿った移動方向におけるインピーダンス制御はONの状態である。また、タスクCでは、部品41の表面上にワーク40を押しつけて移動するため、z方向の力制御もONの状態である。このように、タスクA~Dは、インピーダンス制御(間接的力制御)や力制御(直接的力制御)などを含む広義の力制御において、ON/OFFの切り替わりが発生する。このため、タスクは、例えば、広義の力制御においてON/OFFの切り替わりが発生するタイミングを基準に分類してもよい。
【0047】
なお、インピーダンス制御は、例えば、F=Mx+Dx+Kの式を満たすように力によってロボットアーム1の手先位置の目標値を決定する制御手法としてもよい。ここで、上記式において、Fは力センサ37で検出した力、M、D、Kは図5に示すインピーダンスパラメータ、xはロボットアーム1の手先位置の目標値である。上記式は、方向別に設定してもよい。また、図5の例では、Kは未使用である。
【0048】
力制御は、方向別の力が目標とした力になるようにロボットアーム1を動作させる制御方法である。タスクBでは、力制御目標値が5であるため、ワーク40を部品41の表面上に押しつける力が5Nとなるようにロボットアーム1の手先をz方向(上下方向)に移動させて、押しつけ力を調整する。すなわち、タスクBでは、力制御がONとなる。
【0049】
次に、図6に示すフローチャートを参照して本実施形態の動作について説明する。
【0050】
まず、ティーチングペンダント等を使い、人がロボットを操作しながらタスクA~Dの制御を順番に実施して、ロボットアーム1でワーク40の嵌合を行う。タスクA~Dが成功するように、図5に示すインピーダンスパラメータや力制御の目標値を調整しながらロボットアーム1の位置及びタスクA~Dの切り替えを人が操作する。そして、ワーク40の嵌合が成功したデータを収集する。この収集したデータは、ロボットアーム1の動作情報と、ロボットアーム1の動作情報に対応する制御指令値とを含む。具体的には、収集したデータは、ロボットアーム1の手先位置、力センサ37の検出値、ロボットアーム1の手先目標位置、インピーダンス制御のON/OFF、力制御のON/OFF、インピーダンスパラメータ、力制御の目標値などを含んでもよい。これらのデータは、入力装置5またはセンサ6からデータ取得部7に出力される。
【0051】
入力装置5またはセンサ6から出力されたロボットアーム1の動作情報のデータは、ステップS1で、取得データとしてデータ取得部7で取得される。また、データ取得部7は、ロボットアーム1の動作情報の変化(例えば力制御のON/OFF)に基づいて、動作情報に対応する作業フェーズを取得データとして取得する。データ取得部7は、取得データを取得データ記憶部8に記憶させる。
【0052】
続いて、データ前処理部9が、取得データ記憶部8に記憶された取得データに対して、機械学習のための前処理を実行する。前処理は、例えば、ダウンサンプリング、学習データに対するノイズの付加、または時系列の方向の後補間などを含んでもよい。データ前処理部9は、前処理を施した取得データを第一の学習処理部11とデータ処理部12にそれぞれ出力する。
【0053】
データ前処理部9から第一の学習処理部11に出力された前処理後の取得データは、第一の学習処理部11の学習部14に入力される。学習部14は、ステップS2で、取得データに基づき、ロボットアーム1の動作情報を入力とし、ロボットアーム1の作業フェーズを出力する前段モデルを、機械学習の処理を実行して作成する。
【0054】
例えば、学習部14は、タスクA~Dの動作情報が時系列で並んだ取得データのうち、ロボットアーム1の手先位置と力センサ値を入力値とし、タスク番号(作業フェーズ)を出力とする前段モデルを作成してもよい。これにより、ロボットアーム1の手先位置情報と力センサ37の力情報とから現在のタスク番号を推定する前段モデルを容易に作成することができる。
【0055】
このとき、学習部14は、例えば、取得データの制御指令値において力制御の有無が切り替わるタイミングに基づき、作業フェーズを複数のグループに分類して出力するように前段モデルを作成してもよい。これにより、作業フェーズを確実に分類することができる。
【0056】
なお、機械学習は、例えば、模倣学習などを用いてもよい。また、学習部14は、入力装置5から入力されるロボットアーム1の作業フェーズを教師データとして機械学習の処理を実行してもよい。また、タスク番号は、タスクA~Dをそれぞれ識別する番号であり、作業フェーズを表す記号を示している。このようにして、第一の学習処理部11は、作業フェーズを出力する前段モデルを作成する。学習部14で作成された前段モデルを含む学習結果は、学習データ記憶部16に記憶される。
【0057】
図7に、前段モデルに対する入力値の一例を示す。ここで、x、y、zは、ロボットアーム1の手先位置、Tφ、Tθ、Tψは、ロボットアーム1の手先トルクを示している。例えば、入力値が前段モデルに入力されると、その入力値に応じた作業フェーズが、入力値の最終列に付加された状態で前段モデルから出力されてもよい。図8に、前段モデルの出力の一例を示す。このように、前段モデルは、作業フェーズを示すタスク番号を入力値の最終列に付加してもよい。
【0058】
一方、データ前処理部9から出力された前処理後の取得データは、データ処理部12にも入力される。データ処理部12は、ステップS3で、第一の学習処理部11から入力された作業フェーズに基づき、データ前処理部9から入力された取得データを複数のグループに分類した状態データを生成する。
【0059】
例えば、データ処理部12は、取得データを複数のグループに分割した状態データを生成してもよい。図9に、データ処理部12で生成された状態データの一例を示す。このように、データ処理部12は、作業の時系列に従ってロボットアーム1の動作情報および作業フェーズが並ぶ取得データを、作業フェーズで分類された複数のグループに分割してもよい。このとき、データ処理部12は、第一の学習処理部11と同様に、取得データの制御指令値において力制御の有無が切り替わるタイミングに基づき、取得データを複数のグループに分割してもよい。なお、図9は、図8に示したタスク番号に基づき取得データを分割したものである。データ処理部12は、生成した状態データを第二の学習処理部13に出力する。
【0060】
続いて、第二の学習処理部13は、ステップS4で、データ処理部12で生成された状態データに基づき、ロボットアーム1の動作情報を入力とし、ロボットアーム1の制御指令値を出力する後段モデルを、グループ毎に機械学習の処理を実行して作成する。
【0061】
第二の学習処理部13は、例えば、データ処理部12で生成された状態データのうち、タスクAの状態データを学習部13-1に、タスクBの状態データを学習部13-2に、タスクCの状態データを学習部13-3に、タスクDの状態データを学習部13-4にそれぞれ入力してもよい。学習部13-1~13-4は、入力された状態データに対して機械学習の処理をそれぞれ実行し、タスクA~Dにそれぞれ対応する第1後段モデル~第4後段モデルを作成する。ここで、後段モデルに入力される動作情報は、例えば、ロボットアーム1の手先位置、力センサ値などを含んでもよい。また、後段モデルから出力される制御指令値は、例えば、位置目標値、インピーダンス制御のON/OFF、力制御のON/OFF、インピーダンスパラメータ、力制御の目標値などを含んでもよい。学習部13-1~13-4は、作成した第1後段モデル~第4後段モデルを、図示しない学習データ記憶部に記憶する。
【0062】
これにより、ロボットアーム1は、現在のタスクに応じた位置目標値、インピーダンス制御のON/OFF、力制御のON/OFF、インピーダンス制御パラメータ、力制御の目標値を後段モデルから得ることが出来る。なお、機械学習は、例えば、模倣学習などの教師あり学習手法を用いてもよい。また、学習部13-1~13-4は、入力装置5から入力されるロボットアーム1の制御指令値を教師データとして機械学習の処理を実行してもよい。また、学習部13-1~13-4は、作業フェーズの数と同数に限られるものではない。例えば、第二の学習処理部13は、作業フェーズの数と同数以上である複数の学習部を含んでもよい。
【0063】
このように、データ処理部12が、作業フェーズに基づき、取得データを複数のグループに分類した状態データを生成し、第二の学習処理部13が、その状態データに基づき、動作情報を入力とし、ロボットアーム1の制御指令値を出力する後段モデルをグループ毎に機械学習の処理を実行して作成する。これにより、力制御を行う時間と行わない時間が混在する一連のタスクA~Dについて、ロボットアーム1を制御するモデルを容易に作成することができる。
【0064】
また、データ処理部12は、時系列で動作情報および作業フェーズが並ぶ取得データを作業フェーズで分類された複数のグループに分割することで状態データを生成する。これにより、第二の学習処理部13においてロボットアーム1を制御するモデルをより容易に作成することができる。
【0065】
また、第二の学習処理部13は、作業フェーズの数と同数以上である複数の学習部13-1~13-4のそれぞれにおいて状態データに基づき機械学習の処理を実行する。これにより、ロボットアーム1を制御するモデルをより容易に作成することができる。
【0066】
以上により、ロボットアーム1が、インピーダンス制御や力制御のON/OFFを含むワーク40の嵌合の一連の動作を、人が操作したロボットアーム1の動作から学習することが出来る。
【0067】
本実施形態によれば、データ処理部12が、作業フェーズに基づき、取得データを複数のグループに分類した状態データを生成し、第二の学習処理部13が、その状態データに基づき、動作情報を入力とし、ロボットアーム1の制御指令値を出力する後段モデルをグループ毎に機械学習の処理を実行して作成する。これにより、力制御を行う時間と行わない時間が混在する一連のタスクA~Dについて、ロボットアーム1を制御するモデルを容易に作成することができる。
【0068】
(実施形態2)
以下、本開示の実施形態2について説明する。ここでは、上記の実施形態1との相違点を中心に説明し、上記の実施形態1との共通点については、共通の参照符号を使用して、その詳細な説明を省略する。
【0069】
実施形態2は、実施形態1で作成された前段モデルおよび後段モデルを処理装置に搭載し、この処理装置で処理されたデータに基づいてロボットアーム1を制御するものである。
【0070】
図10は、実施形態2に係る処理装置を備えた制御装置20の構成を示すブロック図である。
【0071】
制御装置20は、制御部21と、処理装置22とを含む。制御部21は、処理装置22から出力される制御指令値に基づき、ロボットアーム1を制御する。処理装置22は、データ取得部23と、取得データ記憶部24と、第一の処理部25と、第二の処理部26と、を含む。ここで、入力装置5およびセンサ6がデータ取得部23に接続され、このデータ取得部23が取得データ記憶部24と第一の処理部25を介して第二の処理部26に接続されている。また、取得データ記憶部24は、第二の処理部26に直接的に接続されている。そして、第二の処理部26が、制御部21を介してロボットアーム1に接続されている。
【0072】
データ取得部23は、ロボットアーム1の動作情報を取得する。データ取得部23は、例えば、入力装置5およびセンサ6から動作情報を取得してもよい。なお、ロボットアーム1の動作情報は、ロボットアーム1の動作量を表す情報であり、例えば、ロボットアーム1にかかる力およびモーメント、ロボットアーム1の関節角度および手先位置などを含んでもよい。
【0073】
取得データ記憶部24は、データ取得部23で取得された取得データを順次記憶する。
【0074】
第一の処理部25は、意思決定部27と、学習データ記憶部28とを含む。学習データ記憶部28は、実施形態1の学習部14で学習された結果を記憶する。例えば、学習データ記憶部28は、ロボットアーム1の動作情報とロボットアーム1の作業フェーズとの関係を機械学習して生成された前段モデルを記憶する。意思決定部27は、学習データ記憶部28に記憶された前段モデルに、取得データ記憶部24に記憶された動作情報を入力して、その動作情報に対応する作業フェーズ(例えばタスク番号)を出力する。
【0075】
第二の処理部26は、ロボットアーム1の作業フェーズを複数のグループに分類して、動作情報と制御指令値との関係をグループ毎に機械学習して生成された後段モデル、すなわち実施形態1の第二の学習処理部13で学習された第1後段モデル~第4後段モデルを、図示しない学習データ記憶部に記憶する。そして、第二の処理部26は、第一の処理部25から出力された作業フェーズに基づき、取得データ記憶部24に記憶された動作情報を第1後段モデル~第4後段モデルに入力して、ロボットアーム1の制御指令値を出力する。
【0076】
第二の処理部26は、例えば、意思決定部29-1~29-4を含んでもよい。意思決定部29-1は、第一の処理部25からタスクAが出力された場合に、ロボットアーム1の動作情報を第1後段モデルに入力して、タスクAに対応する制御指令値を出力する。意思決定部29-2は、第一の処理部25からタスクBが出力された場合に、ロボットアーム1の動作情報を第2後段モデルに入力して、タスクBに対応する制御指令値を出力する。意思決定部29-3は、第一の処理部25からタスクCが出力された場合に、ロボットアーム1の動作情報を第3後段モデルに入力して、タスクCに対応する制御指令値を出力する。意思決定部29-4は、第一の処理部25からタスクDが出力された場合に、ロボットアーム1の動作情報を第4後段モデルに入力して、タスクDに対応する制御指令値を出力する。
また、処理装置22は、取得データ記憶部24と第一の処理部25および第二の処理部26との間に、実施形態1と同様のデータ前処理部を含んでもよい。
【0077】
なお、制御装置20のハードウェア構成は、実施形態1と同様であるため説明を省略する。
【0078】
次に、図11に示すフローチャートを参照して本実施形態の動作について説明する。
【0079】
まず、ロボットアーム1が起動されて、ロボットアーム1に備えられた関節角のエンコーダや力センサ37などを含むセンサ6から、処理装置22のデータ取得部23にロボットアーム1の動作情報が出力される。なお、エンコーダ値は、ロボットアーム1の手先位置に変換した状態でデータ取得部23に出力されてもよい。また、ペグ嵌合の場合には、例えば、ロボットアーム1の手先位置と力センサ値がデータ取得部23に出力されてもよい。
【0080】
これにより、データ取得部23は、ステップS21で、現在のロボットアーム1の動作情報を取得する。このとき、データ取得部23は、学習時のようにタスクA~D毎に区分けされたデータではなく、1作業毎のデータ(タスクA~Dが連続したデータ)を取得することになる。データ取得部23は、ロボットアーム1の動作情報、例えばロボットアーム1の手先位置と力センサ値を取得すると、その動作情報を取得データ記憶部24に記憶する。
【0081】
続いて、第一の処理部25が、取得データ記憶部24に記憶されたロボットアーム1の手先位置情報と力センサ値を意思決定部27に入力する。そして、意思決定部27は、ステップS22で、学習データ記憶部28に記憶された前段モデルに、ロボットアーム1の手先位置情報と力センサ値を入力して、動作情報に対応するタスク番号(作業フェーズ)を出力する。このようにして、ロボットアーム1の動作情報に対するタスク番号が決定すると、意思決定部27は、そのタスク番号を第二の処理部26に出力する。
【0082】
第二の処理部26は、第一の処理部25からタスク番号を入力すると共に、そのタスク番号に対応するロボットアーム1の動作情報を取得データ記憶部24から入力する。そして、第二の処理部26は、ステップS23で、タスク番号に対応する後段モデルにロボットアーム1の動作情報を入力して、ロボットアーム1の制御指令値を出力する。
【0083】
具体的には、第二の処理部26は、意思決定部29-1~29-4のうち、第一の処理部25から出力されたタスク番号に対応する意思決定部を選択し、その対応する意思決定部にロボットアーム1の動作情報を入力する。ここで、第二の処理部26は、タスクAに対応する意思決定部29-1を選択し、その意思決定部29-1にロボットアーム1の動作情報を入力したものとする。
【0084】
意思決定部29-1は、ロボットアーム1の動作情報、例えばロボットアーム1の手先位置情報と力センサ値が入力されると、その動作情報をタスクAに対応する第1後段モデルに入力して、ロボットアーム1の制御指令値を出力する。制御指令値としては、例えば、位置目標値、インピーダンス制御のON/OFF、力制御のON/OFF,インピーダンスパラメータ、力制御の目標値などが挙げられる。意思決定部29-1は、出力したロボットアーム1の制御指令値を制御部21に出力する。
【0085】
制御部21は、ロボットアーム1の制御指令値を入力すると、ステップS24で、その制御指令値に基づきロボットアーム1を制御する。例えば、制御部21は、制御指令値に基づきロボットアーム1のモータ指令値を算出し、そのモータ指令値に基づいてロボットアーム1の関節部32にあるモータを駆動してもよい。
【0086】
以上により、第一の処理部25に記憶された前段モデルおよび第二の処理部26に記憶された後段モデルに基づいて、インピーダンス制御のON/OFFや力制御のON/OFFなどを制御し、ピンを嵌合するようにロボットアーム1を動作させることが出来る。
【0087】
以上、実施形態2によれば、第一の処理部25が、ロボットアーム1の手先位置と力センサ37の出力である力センサ値を前段モデルに入力することにより、一連のピン嵌合作業において分割されたタスクA~Dの中から、適切な1つのタスクを選択する。そして、第二の処理部26が、第一の処理部25で選択されたタスクに対応する後段モデルを使用してロボットアーム1の制御指令値、例えば位置目標値、力制御のON/OFFを出力する。
【0088】
従来、ロボットアーム1は、力制御がON/OFFになるタイミングで動作が大きく変化するため、一つのモデルで制御指令を出力することは困難であった。そこで、本開示では、タスクA~Dに対応する後段モデルを用いてロボットアーム1の制御指令値を算出するため、制御指令値を高精度に算出することができる。
【0089】
また、単純にタスクごとにモデルを作った場合、例えばスライドから嵌め合いに移行するタイミングを、人の操作であればピンが穴に引っかかったことを察知して動作の切り替えを行うことが出来る。しかしながら、ロボットアーム1で自動化したときに、その動作の移行を自動化するための条件を設定することが難しく、単純にタスクごとにモデルを作ってもタスクの切り替えタイミングを決めるのが困難であった。そこで、本開示では、第一の処理部25が、ロボットアーム1の一連の動作からタスクの切り替えタイミングを学習するため、タスクの移行タイミングを容易に出力することができる。
【0090】
なお、上記の実施の形態1および2は、以下の変形例が採用できる。
【0091】
(1)力検出は、手先に取り付けた力センサ37で検出されたが、これに限られるものではない。例えば、各関節に取り付けたトルクセンサで力検出してもよい。また、トルクセンサを用いて手先に掛かる力を推定してもよい。このとき、手先で力制御してもよいし、トルクそのものを力制御してもよい。また、この両方の情報を併用してもよい。
【0092】
(2)データ取得部7および23にロボットアーム1の手先位置を入力したが、ロボットアーム1の各関節角度を入力してもよい。例えば、データ取得部7および23に各関節角度を入力し、制御指令値として各関節角度目標値が出力されてもよい。また、この両方の情報を併用してもよい。
【0093】
以上、本開示の具体例を詳細に説明したが、これらは例示にすぎず、請求の範囲を限定するものではない。請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【産業上の利用可能性】
【0094】
本開示の学習装置は、作業用ロボットに広く適用することができる。
【符号の説明】
【0095】
1 ロボットアーム
5 入力装置
6 センサ
7,23 データ取得部
8,24 取得データ記憶部
9 データ前処理部
10 機械学習装置
11 第一の学習処理部
12 データ処理部
13 第二の学習処理部
14,13-1~13-4 学習部
16 学習データ記憶部
17 記憶部
18 プロセッサ
19 ユーザインタフェース
20 制御装置
21 制御部
22 処理装置
25 第一の処理部
26 第二の処理部
27,29-1~29-4 意思決定部
28 学習データ記憶部
30 ロボットアーム本体
31 土台部
32-1 第2関節部
32-2 第3関節部
32-3 第4関節部
32-4 第5関節部
32-5 第6関節部
33 第1リンク
34 第2リンク
35 第3リンク
37 力センサ
38 ハンド
40 ワーク
41 部品
42 穴
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11