JP2021000692A - ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法 - Google Patents

ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法 Download PDF

Info

Publication number
JP2021000692A
JP2021000692A JP2019115371A JP2019115371A JP2021000692A JP 2021000692 A JP2021000692 A JP 2021000692A JP 2019115371 A JP2019115371 A JP 2019115371A JP 2019115371 A JP2019115371 A JP 2019115371A JP 2021000692 A JP2021000692 A JP 2021000692A
Authority
JP
Japan
Prior art keywords
tool
learning
force
robot
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019115371A
Other languages
English (en)
Other versions
JP7401207B2 (ja
Inventor
幹人 ▲羽▼根
幹人 ▲羽▼根
Mikito Hane
佐藤 貴之
Takayuki Sato
貴之 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Priority to JP2019115371A priority Critical patent/JP7401207B2/ja
Priority to DE102020115631.6A priority patent/DE102020115631A1/de
Priority to CN202010555681.3A priority patent/CN112109077A/zh
Priority to US16/903,381 priority patent/US11712801B2/en
Publication of JP2021000692A publication Critical patent/JP2021000692A/ja
Application granted granted Critical
Publication of JP7401207B2 publication Critical patent/JP7401207B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • B25J11/0065Polishing or grinding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37234Monitor tool before, after and during machining
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39529Force, torque sensor in wrist, end effector
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

【課題】ロボットがツールを用いて作業を行っているときにツールからロボットに加わる力から、ツールの状態を判定する技術が求められている。【解決手段】ロボットが作業に用いるツールの状態を学習する機械学習装置は、ロボットがツールに所定の動作を行わせている間にツールからロボットに加わる力のデータと、所定の動作を行っているときのツールの状態を示すデータとを、学習データセットとして取得する学習データ取得部12と、学習データセットを用いて、力とツールの状態との相関性を表す学習モデルを生成する学習部14とを備える。【選択図】図1

Description

本発明は、ロボットが作業に用いるツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法に関する。
工具でワークを加工しているときの音又は振動の特徴を学習し、工具の劣化度を判定する技術が知られている(特許文献1)。
特開2018−156340号公報
ロボットの分野においては、ロボットがツールを用いて作業を行っているときに、ツールからロボットに加わる力を検出する。このように検出される力から、ツールの状態を判定する技術が求められている。
本開示の一態様において、ロボットが作業に用いるツールの状態を学習する機械学習装置は、ロボットがツールに所定の動作を行わせている間にツールからロボットに加わる力のデータと、所定の動作を行っているときのツールの状態を示すデータとを、学習データセットとして取得する学習データ取得部と、学習データセットを用いて、力とツールの状態との相関性を表す学習モデルを生成する学習部とを備える。
本開示の他の態様において、ロボットが作業に用いるツールの状態を学習する機械学習方法は、プロセッサが、ロボットがツールに所定の動作を行わせている間にツールからロボットに加わる力のデータと、所定の動作を行っているときのツールの状態を示すデータとを、学習データセットとして取得し、学習データセットを用いて、力とツールの状態との相関性を表す学習モデルを生成する。
本開示によれば、ロボットがツールに所定の動作を行わせているときに該ツールからロボットに加わる力と該ツールの状態との相関性を定量的に表すモデルを、自動的且つ正確に求めることができる。
一実施形態に係る学習装置のブロック図である。 一実施形態に係るロボットにエンドエフェクタを取り付けた状態を示す。 図2に示すロボットに、他のエンドエフェクタを取り付けた状態を示す。 図2に示すロボットに、さらに他のエンドエフェクタを取り付けた状態を示す。 図2に示すロボットに、さらに他のエンドエフェクタを取り付けた状態を示す。 図5に示すロボットで把持したツールを穴に嵌入した状態を示す。 図1に示す機械学習装置が行う学習サイクルの一例を示すフローチャートである。 ニューロンのモデルを模式的に示す。 多層ニューラルネットワークのモデルを模式的に示す。 一実施形態に係るロボットシステムのブロック図である。 図10に示すロボットシステムの動作フローの一例を示すフローチャートである。
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。図1を参照して、一実施形態に係る機械学習装置10について説明する。機械学習装置10は、プロセッサ(CPU、GPU等)、記憶部(ROM、RAM等)、及び入力装置(キーボード、マウス、タッチパネル等)等を有するコンピュータ、又は、学習アルゴリズム等のソフトウェアから構成され得る。
機械学習装置10は、後述するロボット20が作業に用いるツールの状態(正常状態、異常状態等)を学習する。図2〜図7に、ロボット20と、該ロボット20に取り付けられる種々のエンドエフェクタとを示す。図2に示すように、ロボット20は、垂直多関節ロボットであって、ベース部22、旋回胴24、下腕部26、上腕部28、手首部30を有する。
ベース部22は、作業セルの床の上に固定される。旋回胴24は、鉛直軸周りに回動可能となるようにベース部22に設けられている。下腕部26は、水平軸周りに回動可能となるように旋回胴24に設けられている。上腕部28は、下腕部26の先端部に回動可能に設けられている。手首部30は、上腕部28の前端部に回動可能に設けられている。
図2に示す例においては、手首部30の先端部に、ワークを研磨するためのエンドエフェクタ40が着脱可能に取り付けられている。手首部30は、エンドエフェクタ40を回動可能に支持する。ロボット20には、複数のサーボモータ(図示せず)が内蔵され、これらサーボモータは、ロボット20の可動要素(すなわち、旋回胴24、下腕部26、上腕部28、手首部30)を駆動し、エンドエフェクタ40を任意の位置及び姿勢に配置させる。
エンドエフェクタ40は、ベース部42と、軸線A周りに回転可能にベース部42に設けられたツール44と、該ツール44を回転駆動する駆動部46を有する。ベース部42は、手首部30の先端部に連結されている。ツール44は、例えば、研磨砥粒(セラミック、ジルコニア、ダイアモンド等)を含む略円柱状の研磨材であって、回転動作によりワークを研磨する。駆動部46は、例えばサーボモータであって、ツール44を軸線A周りに回転させる。
手首部30とエンドエフェクタ40との間には、力センサ32が介挿されている。力センサ32は、例えば、複数の歪ゲージを有する6軸力覚センサであって、該力センサ32に作用する力を検出する。より具体的には、力センサ32は、各々の歪ゲージから、該力センサ32に生じる歪に応じた出力信号Sを出力する。
これら出力信号Sに基づいて、力センサ座標系Cのx軸方向の力F、y軸方向の力F、及びz軸方向の力Fと、該x軸周りのモーメントM、該y軸周りのモーメントM、該z軸周りのモーメントMとの、計6方向の力F、F、F、M、M、及びMを検出することができる。
そして、これら6方向の力F、F、F、M、M、Mから、エンドエフェクタ40(例えば、ツール44)に掛かる力Fの大きさ及び方向を検出することができる。なお、力センサ座標系Cは、例えば、その原点が力センサ32における所定位置(例えば、中心)に配置され、そのz軸方向が、力センサ32の中心軸線と平行となるように、該力センサ32に対して設定される。
一方、図3に示す例においては、ロボット20の手首部30に、ワークを研磨するための他のエンドエフェクタ50が取り付けられている。エンドエフェクタ50は、ベース部52と、軸線A周りに回転可能にベース部52に設けられたツール44と、該ツール44を回転駆動する駆動部54を有する。
ベース部52は、力センサ32を介して手首部30の先端部に取り付けられている。駆動部54は、例えばサーボモータであって、ツール44を軸線A周りに回転させる。図2及び図3に示す例においては、ロボット20は、ツール44を用いてワークを研磨する作業を行う。
図4に示す例においては、ロボット20の手首部30に、ワークWを切削加工(例えば、バリ取り)するためのエンドエフェクタ60が着脱可能に取り付けられている。具体的には、エンドエフェクタ60は、ベース部62と、軸線A周りに回転可能にベース部62に設けられたツール64と、該ツール64を回転駆動する駆動部66とを有する。ベース部62は、力センサ32を介して手首部30の先端部に取り付けられている。
ツール64は、鋼鉄等から構成された、先端部が略円錐状の切削工具であって、回転動作によりワークWを切削加工する。駆動部66は、例えばモータ又は圧縮気体によって動力を発生させる装置であって、ベース部62に内蔵され、ツール64を軸線A周りに回転させる。ロボット20は、ツール64を用いてワークを切削加工(バリ取り等)する作業を行う。
図5に示す例においては、ロボット20の手首部30に、エンドエフェクタ70が着脱可能に取り付けられている。エンドエフェクタ70は、ツール74をハンドリングするロボットハンドであって、ベース部72と、該ベース部72に開閉可能に設けられた複数の指部76と、該指部76を駆動する駆動部78を有する。
ベース部72は、力センサ32を介して手首部30の先端部に取り付けられている。指部76は、互いに接近及び離反する方向へ移動可能となるようにベース部72に設けられ、ツール74を把持したり、解放したりする。駆動部78は、例えばサーボモータ又はシリンダであって、ベース部72に内蔵されている。
ツール74は、円筒状又は多角柱状の部材(自動車用シリンダ等)である。ロボット20は、エンドエフェクタ70でツール74を把持し、図6に示すように、把持したツール74を、作業対象のワークWに形成された穴Hに嵌入し、該ツール74を該ワークWに組み付ける作業を行う。
再度、図1を参照して、機械学習装置10は、学習データ取得部12、及び学習部14を備える。学習データ取得部12は、ロボット20がツール44、64、又は74に所定の動作を行わせている間に該ツール44、64、又は74からロボット20に加わる力Fのデータと、該所定の動作を行っているときの該ツール44、64、又は74の状態Sを示すデータとを、学習データセットとして取得する。
例えば、図2〜図4に示す例において、「所定の動作」とは、ロボット20がツール44又は64を、ワークに接触させることなく回転させる動作である。代替的には、「所定の動作」とは、ロボット20がツール44又は64を、ワークに接触させて回転させる動作である。ここで、ロボット20は、所定の動作としてツール44又は64をワークに接触させて回転させる動作を行うときに、該ツール44又は64からロボット20に加わる力F(換言すれば、ツール44又は64からワークに加わる力)を、所定の目標値に制御する力制御を実行してもよい。
また、図5に示す例において、「所定の動作」とは、ロボット20がツール74を穴Hに嵌入する動作である。ここで、ロボット20は、所定の動作としてツール74を穴Hに嵌入する動作を行うときに、ツール74からロボット20に加わる力F(換言すれば、ツール74からワークWに加わる力)を、所定の目標値に制御する力制御を実行してもよい。
このように、ロボット20の手首部30には、作業に応じて種々のエンドエフェクタ40、50、60又は70が取り付けられ、ロボット20は、ツール44、64又は74に、所定の動作を行わせる。力センサ32は、ロボット20がツール44、64又は74に所定の動作を実行させているときに、該ツール44、64又は74からロボット20に加わる力Fを検出し、力Fのデータを、学習データ取得部12に供給する。
例えば、図2〜図4に示す例において、ロボット20が所定の動作として、ツール44又は64をワークに接触させることなく(又は、ワークに接触させて)回転させる動作を行っているとき、ツール44又は64の回転によって力センサ32に力が加わる。力センサ32は、このような力を、所定の動作時にツール44又は64からロボット20に加わる力Fとして検出する。
また、図5に示す例において、ロボット20が所定の動作として、ツール74を穴Hに嵌入する動作を行っているとき、ツール74を穴Hに嵌入する動作に起因する力が力センサ32に加わる。力センサ32は、このような力を、所定の動作時にツール74からロボット20に加わる力Fとして検出する。学習データ取得部12は、力センサ32が検出した力Fのデータを、該力センサ32から取得する。力Fのデータは、上述の出力信号S、力F、F、F、M、M、及びM、並びに、エンドエフェクタ40に掛かる力Fのうちの少なくとも1つを含む。
また、力Fのデータは、データS、F、F、F、M、M、M、Fの時間変化特性CT、振幅値AP(正又は負のピーク値、ピークピーク値等)、及び周波数スペクトラムFSの少なくとも1つを含んでもよい。また、時間変化特性CT又は周波数スペクトラムFSは、所定の時間τに亘って検出されたデータであってもよい。また、振幅値APは、所定の時間τの平均値又は最大値であってもよい。また、所定の時間τは、ロボット20が行う「所定の動作」の始期から終期までの時間であってもよいし、又は、「所定の動作」中の任意の時間(例えば、1秒)であってもよい。
一方、ツール44、64又は74の状態Sを示すデータは、例えば、「正常状態」、「異常状態」等のラベル情報を含む。ここで、異常状態とは、例えば、ツール44、64又は74に、欠け、割れ又は亀裂等の損傷が生じている状態である。一方、正常状態とは、ツール44、64又は74に損傷が生じていない状態である。
なお、「正常状態」のラベル情報として、「新品状態」、「中古状態」といった複数のラベル情報を設定してもよい。また、「異常状態」のラベル情報として、「異常状態レベル1」、「異常状態レベル2」、「異常状態レベル3」といったように、異常状態の度合いに応じた複数のラベル情報を設定してもよい。
ツール44、64又は74の状態Sを示すデータは、オペレータによって定められる。例えば、オペレータは、目視等によって、ツール44、64又は74の状態(正常状態、異常状態)を確認し、該ツール44、64又は74の状態Sを示すデータを学習データ取得部12に入力する。
代替的には、オペレータは、ツール44、64又は74の画像データと、該ツール44、64又は74の状態Sとの相関性を表す学習モデルLM2を予め準備し、ツール44、64又は74を撮像した画像データを該学習モデルLM2に入力して、ツール44、64又は74の状態Sを判定してもよい。学習データ取得部12は、力センサ32から取得した力Fのデータと、オペレータ(又は学習モデルLM2)によって定められた状態Sを示すデータとを、学習データセットDSとして取得する。
ここで、ロボット20がツール44、64又は74に所定の動作を実行させているときにツール44、64又は74からロボット20に加わる力Fと、ツール44、64又は74の状態S(正常状態、異常状態等)との間には、相関性がある。例えば、図2〜図4に示す例において、ツール44又は64に損傷が生じていたとする。
この場合にロボット20がツール44又は64を回転させる所定の動作を行うと、損傷によってツール44又は64の回転に偏心が発生し、その結果、ツール44又は64からロボット20に加わる力Fが、損傷がないツール44又は64を回転させた場合と比べて、異なり得る。
また、図5及び図6に示す例において、ツール74に損傷が生じていたとする。この場合にロボット20がツール74を穴Hに嵌入させる所定の動作を行うと、ツール74の損傷箇所と穴Hの壁面との間で生じる摩擦等に起因して、ツール74からロボット20に加わる力Fが、損傷がないツール74を穴Hに嵌入させた場合と比べて、異なり得る。
学習部14は、力F及び状態Sの学習データセットDSを用いて、力Fと状態Sとの相関性を表す学習モデル(関数)LMを生成する。例えば、学習部14は、教師あり学習を実行することで、学習モデルLMを生成する。この場合、新たなツール44、64又は74をロボット20に装着する毎に、ロボット20に所定の動作を繰り返し試行させる。そして、学習データ取得部12は、ロボット20が所定の動作を実行する毎に、学習データセットDSを教師データとして繰り返し取得する。
学習部14は、教師データとして取得した力Fのデータ(時間変化特性、周波数スペクトラム等)と状態Sを示すデータ(正常状態、異常状態等のラベル情報)との相関性を暗示する特徴を識別することで、学習モデルLMを学習していく。このような教師あり学習として、例えば、サポートベクターマシン(SVM)、又は混合ガウスモデル(GMM)といったアルゴリズムを用いることができる。
以下、図7を参照して、機械学習装置10が行う学習サイクルのフローについて説明する。ステップS1において、オペレータは、ロボット20にツール44、64又は74(すなわち、エンドエフェクタ40、50、60又は70)を取り付け、ロボット20でツール44、64又は74に所定の動作を行わせる。
ステップS2において、学習データ取得部12は、学習データセットDSを取得する。具体的には、学習データ取得部12は、ステップS1でロボット20がツール44、64又は74に所定の動作を行わせる間に力センサ32が検出した力Fのデータを、該力センサ32から取得する。
また、学習データ取得部12は、ステップS1で回転させたツール44、64又は74の状態Sを示すデータとして、正常状態のラベル情報、又は異常状態のラベル情報を取得する。一例として、オペレータは、ステップS1で所定の動作を行う前にツール44、64又は74を目視することで、該ツール44、64又は74が正常状態であるか、又は異常状態であるかを確認する。
他の例として、オペレータは、ステップS1で所定の動作を行っている間に力センサ32が検出した力Fのデータを確認することで、該ツール44が正常状態であるか、又は異常状態であるかを確認する。オペレータは、機械学習装置10の入力装置を操作して、ステップS1で取り付けたツール44、64又は74の状態Sを示すデータとして、正常状態のラベル情報、又は異常状態のラベル情報を入力する。
さらに他の例として、ステップS1で所定の動作を実行する前、又は実行した後に、ツール44、64又は74をカメラ(図示せず)で撮像する。そして、撮像した画像データを上記の学習モデルLM2に入力する。学習モデルLM2は、正常状態のラベル情報、又は異常状態のラベル情報を、学習データ取得部12へ出力する。
学習データ取得部12は、入力された正常状態のラベル情報、又は異常状態のラベル情報を取得する。このようにして、学習データ取得部12は、力Fのデータと状態Sを示すデータの学習データセットDSを取得し、互いに関連付けて記憶部に記憶する。
ステップS3において、学習部14は、ステップS2で取得した学習データセットDSを用いて、力Fと状態Sとの相関性を表す学習モデルLMを生成する。具体的には、学習部14は、教師あり学習のアルゴリズム(SVM、GMM等)を実行することによって、学習モデルLMを学習する。
そして、ステップS1に戻り、オペレータは、新たなツール44、64又は74(すなわち、エンドエフェクタ40、50、60又は70)をロボット20に取り付けて、ロボット20は、該新たなツール44、64又は74で所定の動作を行う。そして、ステップS2において、学習データ取得部12は、該新たなツール44、64又は74に関して学習データセットDSを取得し、ステップS3において、学習部14は、新たに取得された学習データセットDSを用いて学習モデルLMを更新する。
このような学習サイクルを実行することによって、学習モデルLMの学習が進行し、学習モデルLMが最適解へ導かれることになる。このような学習サイクルを、ツール44、64、及び74の各々に関して実行することにより、ツール44、64、74の状態Sと力Fとの相関性を表す学習モデルLMを、ツール44、64、及び74のそれぞれに関して取得することができる。
本実施形態によれば、力Fとツールの状態Sとの相関性を定量的に表すモデルを、自動的且つ正確に求めることができる。なお、図7に示す学習サイクルのフローに限らず、例えば、ステップS1及びS2のループを繰り返し実行して多数の学習データセットDSを取得した後に、ステップS3を実行し、学習部14が、該多数の学習データセットDSを用いて学習モデルLMの学習を実行してもよい。
なお、機械学習装置10の他の機能として、ステップS2において、学習データ取得部12は、ステップS1でロボット20が所定の動作を行っているときのツール44、64又は74の位置及び姿勢のデータを、学習データセットDSとしてさらに取得してもよい。具体的には、ステップS1でロボット20は、ツール44、64又は74を所定の位置及び姿勢に配置させた状態で、該ツール44、64又は74に所定の動作を実行させる。
そして、ステップS2で、学習データ取得部12は、ステップS1でツール44、64又は74を所定の位置及び姿勢に配置させたときに、ロボット20の各サーボモータの回転角度θを検出するエンコーダ(図示せず)から、回転角度θを取得する。これら回転角度θから、ツール44、64又は74(又は、エンドエフェクタ40、50、60又は70)の位置及び姿勢を算出できる。
このステップS2において、学習データ取得部12は、学習データセットDSとして、力Fのデータ及び状態Sを示すデータに加えて、ツール44、64又は74の位置及び姿勢のデータをさらに取得する。なお、学習データ取得部12は、位置及び姿勢のデータとして、回転角度θを取得してもよい。そして、ステップS3において、学習部14は、力Fのデータと、状態Sのデータと、位置及び姿勢のデータとの学習データセットDSを用いて、学習モデルLMを生成する。
学習データセットDSとして位置及び姿勢のデータを取得する意義について、以下に説明する。ロボット20が所定の動作を実行しているときに力センサ32が検出する力Fは、ツール44、64又は74の位置及び姿勢に応じて変化する。したがって、ツール44、64又は74の位置及び姿勢と力Fとの関連性を加味して学習モデルLMを生成することによって、ツール44、64又は74を様々な位置及び姿勢に配置して所定の動作を実行したときの力Fと状態Sとの相関性を表す学習モデルLMを取得することができる。
機械学習装置10のさらに他の機能として、例えばツール44又は64を用いる場合、ステップS2において、学習データ取得部12は、ステップS1でロボット20が所定の動作を行っているときのツール44又は64の回転速度のデータを、学習データセットDSとしてさらに取得してもよい。
具体的には、ステップS1でロボット20がツール44又は64を回転させる所定の動作を行っているときに、学習データ取得部12は、ツール44又は64の回転速度を検出する速度センサ(図示せず)から、回転速度Vのデータを取得する。
代替的には、学習データ取得部12は、ステップS1でロボット20がツール44又は64に所定の動作を行わせるときに該ツール44又は64に送信される速度指令CRのデータを取得してもよい。速度指令CRは、所定の動作時におけるツール44又は64の回転速度を規定する指令である。
一方、ツール74を用いる場合、ステップS2において、学習データ取得部12は、ステップS1でロボット20が所定の動作を行っているときのツール74の動作速度(すなわち、ツール74が穴Hへ移動する速度)のデータを、学習データセットDSとしてさらに取得してもよい。具体的には、学習データ取得部12は、ステップS1でロボット20がツール74を穴Hに嵌入させる所定の動作を行っているときに、該ツール74の動作速度を検出する速度センサ(図示せず)から、動作速度Vを取得する。
代替的には、学習データ取得部12は、ステップS1でロボット20がツール74に所定の動作を行わせているときに該ツール74に送信される速度指令CRのデータを取得してもよい。速度指令CRは、所定の動作時におけるツール74の動作速度を規定する指令である。
こうして、ステップS2において、学習データ取得部12は、学習データセットDSとして、力Fのデータ及び状態Sを示すデータに加えて、ツール44、64又は74の速度V(又は速度指令CR)のデータをさらに取得する。そして、ステップS3において、学習部14は、力Fのデータと、状態Sのデータと、速度V(又は速度指令CR)との学習データセットDSを用いて、学習モデルLMを生成する。
ここで、ロボット20が所定の動作を実行しているときに力センサ32が検出する力Fは、ツール44、64又は74の速度Vに応じて変化する。したがって、ツール44、64又は74の速度V(又は速度指令CR)と力Fとの関連性を加味して学習モデルLMを生成することによって、速度Vに応じた学習モデルLMを取得することができる。
機械学習装置10のさらに他の機能として、ステップS2において、学習データ取得部12は、ツール44、64又は74の重量WGのデータを、学習データセットDSとしてさらに取得してもよい。具体的には、ステップS1で所定の動作を実行する前、又は実行した後に、学習データ取得部12は、ツール44、64又は74の重量を検出する重量センサ(図示せず)から、重量WGのデータを取得する。
こうして、ステップS2において、学習データ取得部12は、学習データセットDSとして、力Fのデータ及び状態Sを示すデータに加えて、ツール44、64又は74の重量WGのデータをさらに取得する。そして、ステップS3において、学習部14は、力Fのデータと、状態Sのデータと、重量WGのデータとの学習データセットDSを用いて、学習モデルLMを生成する。
ここで、ロボット20が所定の動作を実行しているときに力センサ32が検出する力Fは、ツール44、64又は74の重量WGに応じて変化する。したがって、ツール44、64又は74の重量WGと力Fとの関連性を加味して学習モデルLMを生成することによって、重量WGに応じた学習モデルLMを取得することができる。
機械学習装置10のさらに他の機能として、ステップS2において、学習データ取得部12は、ツール44、64又は74の作業対象となるワークWの種類のデータを、学習データセットDSとしてさらに取得してもよい。ワークWの種類のデータは、ワークWの材料、粗さ、又は剛性率等のワークWの仕様に関する情報、又は、ワークWの種類を識別する情報等を含む。
ワークWの仕様に関する情報は、文字(「鉄」、「アルミ」、「SUS3044」等)、又は数値を含んでもよい。また、ワークWの種類を識別する情報は、「ワークタイプA」、「ワークタイプB」といった文字情報であってもよいし、又は、オペレータがワークW毎に付す識別番号であってもよい。
例えば、オペレータは、ステップS2において、機械学習装置10の入力装置を操作して、ワークWの種類のデータを入力する。こうして、ステップS2において、学習データ取得部12は、学習データセットDSとして、力Fのデータ及び状態Sを示すデータに加えて、ワークWの種類のデータをさらに取得する。そして、ステップS3において、学習部14は、力Fのデータと、状態Sのデータと、ワークWの種類のデータとの学習データセットDSを用いて、学習モデルLMを生成する。
ここで、ロボット20が所定の動作を実行しているときに力センサ32が検出する力Fは、ワークWの種類のデータに応じて変化する。例えば、ステップS1でロボット20がツール44又は64をワークWに接触させて回転させる所定動作を行う場合、又は、ロボット20がツール74を穴Hに嵌入させる所定動作を行う場合、ワークWの材料、粗さ、又は剛性率等によって、ワークWからツール44又は64に掛かる力は変動し得る。
したがって、ワークWの種類と力Fとの関連性を加味して学習モデルLMを生成することによって、ワークWの種類に応じた学習モデルLMを取得することができる。なお、学習データ取得部12は、ツール44、64又は74の種類のデータ(ツールの種類を識別する文字情報等)を、学習データセットDSとしてさらに取得してもよい。
なお、ツール44、64又は74は、状態Sが経時で変化する既知の耐用期間Tを有している。この耐用期間とは、例えば1ヶ月又は1年というように、ツール44、64又は74の仕様として予め定められ得る。このような耐用期間が有る場合において、学習部14は、耐用期間Tに含まれる複数の小期間の各々について、学習モデルLMを生成してもよい。
例えば、耐用期間Tを、ツール44、64又は74が新品の時点tから、ツール44、64又は74を所定時間使用した後の時点tまでの小期間Tと、時点tから、ツール44、64又は74を所定時間さらに使用した後の時点tまでの小期間Tと、・・・時点tn−1から、ツール44、64又は74を所定時間さらに使用した後の時点tまでの小期間Tとに区切る。
この場合において、学習部14は、小期間T(n=1、2、3、・・・n)の各々において、図7に示す学習サイクルを実行し、小期間T毎に学習モデルLMを生成してもよい。この構成によれば、ツール44、64、74の使用期間に応じた学習モデルLMを生成できる。
なお、学習部14が実行する学習アルゴリズムは、教師あり学習に限定されず、例えば教師なし学習、強化学習、ニューラルネットワーク等、機械学習として公知の学習アルゴリズムを採用できる。一例として、図8は、ニューロンのモデルを模式的に示す。図9は、図8に示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。なお、図8は、一例として入力xが3つである場合を示しているが、入力xの数は、n(nは、2又は4以上の正数)であってもよい。また、図9は、一例として、三層のニューラルネットワークのモデルを示しているが、n層(nは、2又は4以上の正数)のニューラルネットワークを用いてもよい。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
図8に示すニューロンは、複数の入力x(図では例として入力x1〜x3)に対し結果yを出力する。個々の入力x(x1、x2、x3)にはそれぞれに重みw(w1、w2、w3)が乗算される。入力xと結果yとの関係は、下記の式1で表すことができる。なお、入力x、結果y及び重みwはいずれもベクトルである。また式1において、θはバイアスであり、fは活性化関数である。
Figure 2021000692
図9に示す三層のニューラルネットワークは、左側から複数の入力x(図では例として入力x1〜入力x3)が入力され、右側から結果y(図では例として結果y1〜結果y3)が出力される。図示の例では、入力x1、x2、x3のそれぞれに対応の重み(総称してW1で表す)が乗算されて、個々の入力x1、x2、x3がいずれも3つのニューロンN11、N12、N13に入力されている。
図9では、ニューロンN11〜N13の各々の出力を、総称してZ1で表す。Z1は、入力ベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルZ1のそれぞれに対応の重み(総称してW2で表す)が乗算されて、個々の特徴ベクトルZ1がいずれも2つのニューロンN21、N22に入力されている。特徴ベクトルZ1は、重みW1と重みW2との間の特徴を表す。
図9では、ニューロンN21〜N22の各々の出力を、総称してZ2で表す。Z2は、特徴ベクトルZ1の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルZ2のそれぞれに対応の重み(総称してW3で表す)が乗算されて、個々の特徴ベクトルZ2がいずれも3つのニューロンN31、N32、N33に入力されている。
特徴ベクトルZ2は、重みW2と重みW3との間の特徴を表す。最後にニューロンN31〜N33は、それぞれ結果y1〜y3を出力する。機械学習装置10は、学習データセットDSを入力とし、上記したニューラルネットワークに従う多層構造の演算を行うことで、学習モデルLMを学習することができる。
上述した機械学習装置10の構成は、コンピュータのプロセッサが実行する機械学習方法(又はソフトウェア)として記述できる。この機械学習方法は、ロボット20がツール44、64又は74に所定の動作を行わせている間に該ツール44、64又は74からロボット20に加わる力Fのデータと、該所定の動作を行っているときのツール44、64又は74の状態Sを示すデータとを学習データセットDSとして取得し、学習データセットDSを用いて、力Fとツールの状態Sとの相関性を表す学習モデルLMを生成する。
次に、図10を参照して、一実施形態に係るロボットシステム100について説明する。ロボットシステム100は、ロボット20、力センサ32、及び制御装置102を備える。制御装置102は、プロセッサ104、及び記憶部106を有する。プロセッサ104と記憶部106とは、バス108を介して互いに通信可能に接続され、プロセッサ104は、CPU又はGPU等を含み、記憶部106と通信しつつ各種演算を実行する。
本実施形態においては、機械学習装置10は、ハードウェア又はソフトウェアとして制御装置102に実装されており、プロセッサ104は、機械学習装置10の機能を果たすための各種演算を実行する。すなわち、本実施形態においては、プロセッサ104は、学習データ取得部12及び学習部14として機能する。記憶部106は、ROM及びRAM等を含み、機械学習装置10が学習した学習モデルLMを予め格納している。
次に、図11を参照して、ロボットシステム100の動作について説明する。図11に示すフローは、プロセッサ104が、オペレータ、上位コントローラ、又は作業プログラムから作業開始指令を受け付けたときに、開始する。ステップS11において、プロセッサ104は、ロボット20の動作を開始する。このステップS11において、プロセッサ104はロボット20に、学習モデルLMの学習段階で実行した「所定の動作」と同じ動作を行わせる。
例えば、図2〜図4に示す例の場合、プロセッサ104はロボット20に、ツール44又は64をワークに接触させずに(又は接触させて)回転させる動作を行わせる。また、図5及び図6に示す例の場合、プロセッサ104はロボット20に、エンドエフェクタ70で把持したツール74を穴Hに嵌入する動作を行う。なお、ツール44若しくは64をワークに接触させて回転させる動作、又は、ツール74を穴Hに嵌入する動作を行っているときに、プロセッサ104は、上述の力制御を実行してもよい。
なお、このステップS11で実行する「同じ動作」とは、学習モデルLMの学習段階で実行した「所定の動作」と完全に同じ条件(ツールの種類、ワークの種類、ロボット20の種類、ロボット20の位置及び姿勢、ロボット20の移動経路等)の動作に限らず、条件のうちの少なくとも1つが「所定の動作」と異なる動作も含み得る。
ステップS12において、プロセッサ104は、力Fのデータの取得を開始する。具体的には、プロセッサ104は、ステップS11の動作を実行している間に力センサ32が検出した力Fのデータを、該力センサ32から取得する動作を開始する。ここで、プロセッサ104は、ステップS11の動作を実行している間の所定の時間τに亘って、力Fのデータを取得してもよい。
この所定の時間τは、ステップS11でロボット20が行う動作の始期から終期までの時間であってもよいし、又は、該動作中の任意の時間(例えば、1秒)であってもよい。また、図7に示す学習サイクルでツール44、64又は74の位置及び姿勢のデータをさらに取得して学習モデルLMの学習を行った場合、プロセッサ104は、このステップS12で、力センサ32が力Fを検出したときのツール44、64又は74の位置及び姿勢のデータを取得し、取得した力Fのデータと関連付けて記憶部106に記憶してもよい。
また、図7に示す学習サイクルでツール44、64又は74の速度Vのデータをさらに取得して学習モデルLMの学習を行った場合、速度センサは、ステップS11の実行中にツール44、64又は74の速度V(又は速度指令CR)を検出し、プロセッサ104は、このステップS12で、該速度センサから速度Vのデータを取得する。
また、図7に示す学習サイクルでツール44、64又は74の重量WGのデータをさらに取得して学習モデルLMの学習を行った場合、プロセッサ104は、ツール44、64又は74の重量WGのデータを、重量センサから取得する。また、図7に示す学習サイクルでワーク(又はツール)の種類のデータをさらに取得して学習モデルLMの学習を行った場合、プロセッサ104は、ワーク(又はツール)の種類のデータを、オペレータから入力装置を通して取得する。
ステップS13において、プロセッサ104は、学習モデルLMに基づいて、ツール44、64又は74の状態Sを判定する。具体的には、プロセッサ104は、ステップS12で取得した力Fのデータを、記憶部106に格納している学習モデルLMに入力する。そうすると、学習モデルLMは、入力された力Fのデータと相関性を有する状態Sのデータ(「正常状態」、「異常状態」等のラベル情報)を推定して出力する。こうして、プロセッサ104は、取得した力Fのデータから、ツール44、64、74の状態Sを判定することができる。
なお、学習データセットDSとしてツール44、64又は74の位置及び姿勢のデータを用いて学習モデルLMを生成している場合、プロセッサ104は、力Fのデータとともに、ステップS12で取得したツール44、64又は74の位置及び姿勢のデータを学習モデルLMに入力してもよい。この場合、学習モデルLMは、ツール44、64又は74の位置及び姿勢に対応する力Fのデータと相関性を有する状態Sのデータを推定して出力する。
また、学習データセットDSとして、ツール44、64又は74の速度V(又は速度指令CR)、重量WG、若しくはワーク(又はツール)の種類のデータを用いて学習モデルLMを生成している場合、プロセッサ104は、力Fのデータとともに、速度V(又は速度指令CR)、重量WG、若しくは種類のデータを学習モデルLMに入力してもよい。この場合、学習モデルLMは、力Fのデータと、速度V(又は速度指令CR)、重量WG、又は種類のデータとから、状態Sのデータを推定して出力する。
このように、力Fのデータに加えて、より多くのデータを用いて学習モデルLMを生成することにより、図11に示すフローでツール44、64又は74の異常を判定する段階において、より多くの条件(位置及び姿勢、速度V、重量WG、ワーク又はツールの種類)に対応して、ツール44、64又は74の異常を判定することが可能となる。
プロセッサ104は、ツール44、64又は74の状態Sが異常状態ではない(又は、正常状態である)場合にNOと判定し、ステップS11で開始した動作を完了させ、図11に示すフローを終了する。一方、プロセッサ104は、ツール44、64又は74の状態Sが異常状態である(又は、正常状態ではない)場合にYESと判定し、ステップS15へ進む。このように、本実施形態においては、プロセッサ104は、ツール44、64又は74の状態Sを判定する状態判定部110(図10)として機能する。
ステップS15において、プロセッサ104は、力センサ32の故障の有無を検知する。ここで、仮に力センサ32が故障していた場合、適切な力のデータFをプロセッサ104に供給することができず、これにより、ツール44、64又は74の状態Sが正常状態であるにも関わらず、ステップS13で状態Sが異常状態である(すなわちYES)と判定され得る。
状態Sの判定の正誤を識別すべく、本実施形態においては、プロセッサ104は、このステップS15を実行する。具体的には、プロセッサ104は、ステップS11で開始した動作を停止し、ツール44、64又は74(すなわち、エンドエフェクタ40、50、60又は70)を、予め定められた位置及び姿勢に配置させる。
そして、プロセッサ104は、このときに力センサ32が検出した力Fを、該力センサ32から取得する。そして、プロセッサ104は、取得した力Fが、予め定められた基準値Fαと異なっているか否かを判定する。ここで、静止状態のツール44、64又は74を予め定められた位置及び姿勢に配置したときに該ツール44、64又は74からロボット20に加わる力は、計測又はシミュレーション等によって、推定することができる。したがって、このように推定された力を、基準値Fαとして、記憶部106に予め記憶することができる。
プロセッサ104は、取得した力Fが基準値Fαと異なっている(すなわち、YES)と判定した場合、ステップS17へ進む一方、取得した力Fが基準値Fαと実質同じである(すなわち、NO)と判定した場合、ステップS16へ進む。例えば、プロセッサ104は、このステップS15において、力Fと基準値Fαとの差(=|F−Fα|)が、予め定められた閾値よりも大きい場合に、YESと判定してもよい。このように、本実施形態においては、プロセッサ104は、力センサ32の故障の有無を検知する故障検知部112(図10)として機能する。
なお、オペレータは、ツール44、64又は74の位置及び姿勢と、力センサ32が検出する力Fの状態(正常値、異常値)との相関性を表す学習モデルLM3を予め準備してもよい。そして、プロセッサ104は、このステップS15でツール44、64又は74を予め定められた位置及び姿勢させたときの該ツール44、64又は74の位置及び姿勢のデータと、このときに力センサ32が検出した力Fとを該学習モデルLM3に入力し、力センサ32の故障の有無を検知してもよい。
また、例えばツール44又は64を用いる場合において、力センサ32は、ツール44又は64をワークに接触させずに回転させる動作を行っているときに力F’を検出してもよい。ツール44又は64をワークに接触させずに回転させているときに該ツール44、64又は74からロボット20に加わる力も、計測又はシミュレーション等によって、推定することができる。したがって、プロセッサ104は、このように推定された力を、基準値Fα’とし、このステップS15において、力センサ32によって検出された力F’が基準値Fα’と異なっているか否かを判定してもよい。
ステップS16において、プロセッサ104は、第1の警告信号を生成する。例えば、プロセッサ104は、「ツールに異常が発生している可能性があります」という音声又は画像の信号を生成し、制御装置102に設けられたスピーカ又はディスプレイ(図示せず)を通して出力する。そして、プロセッサ104は、図11に示すフローを終了する。
ステップS17において、プロセッサ104は、第2の警告信号を生成する。例えば、プロセッサ104は、「力センサに異常が発生している可能性があります」という音声又は画像の信号を生成し、制御装置102に設けられたスピーカ又はディスプレイを通して出力する。そして、プロセッサ104は、図11に示すフローを終了する。
以上のように、本実施形態においては、プロセッサ104は、ロボット20がツール44、64又は74を用いて作業を行っているときに、機械学習装置10が学習した学習モデルLMに基づいてツール44、64又は74の状態Sを判定している。この構成によれば、ツール44、64又は74に異常が発生しているか否かを、作業中に取得した力Fのデータから自動的且つ高精度に判定することができる。
また、本実施形態においては、プロセッサ104は、ツール44、64又は74の状態Sが異常状態であると判定したときに、力センサ32の故障の有無を検知している。この構成によれば、オペレータがツール44、64又は74の状態Sを誤認してしまうのを防止することができるとともに、力センサ32の故障を特定できる。
なお、ロボットシステム100から、故障検知部112の機能を削除することもできる。この場合、図11に示すフローからステップS15及びS17が削除され、プロセッサ104は、ステップS13でYESと判定した場合に、ステップS16へ進む。また、ロボットシステム100の記憶部106は、制御装置102とは別の装置(外付けメモリ、外部サーバ、クラウド等)として設けられてもよい。
また、上述の実施形態においては、プロセッサ104は、ステップS13でYESと判定した場合に、力センサ32の故障の有無を判定するプロセス(ステップS15)を実行する場合について述べたが、ステップS13でNOと判定した場合に、力センサ32の故障の有無を判定するプロセスを実行し、該力センサ32の故障があると判定した場合にステップS17へ進んでもよい。
また、力センサ32は、ロボット20の如何なる位置に設けられてもよい。例えば、力センサ32は、ロボットのベース部22に設置されてもよい。また、力センサ32は、6軸力覚センサに限らず、例えば、ロボット20に内蔵された複数のサーボモータにそれぞれ設けられた複数のトルクセンサから構成されてもよい。この場合、トルクセンサは、対応するサーボモータに掛かるトルクを力Fとして検出し、力Fのデータを学習データ取得部12に供給する。
また、上述の実施形態においては、研磨作業、切削加工、及び嵌入作業のためのツール44、64、及び74(エンドエフェクタ40、50、60、及び70)について述べたが、他の如何なる作業(例えば、スポット溶接)を行うためのツール(スポット溶接ガン)をロボット20に取り付けてもよい。また、ロボットは、垂直多関節型ロボットに限らず、水平多関節ロボット、又はパラレルリンクロボット等、如何なるタイプのロボットであってもよい。また、ロボットは、天井吊り下げタイプ、又は、壁掛けタイプのロボットであってもよい。
また、図10に示す実施形態においては、制御装置102のプロセッサ104が、学習データ取得部12及び学習部14として機能する場合について述べた。しかしながら、これに限らず、例えば、学習部14が、制御装置102とは別のコンピュータに実装されてもよい。
この場合、該別のコンピュータは、制御装置102と通信可能に接続され、制御装置102のプロセッサ104が学習データ取得部12として取得した学習データセットDSを、該別のコンピュータに送信し、学習部14が、制御装置102から取得した学習データセットDSを用いて学習モデルLMを生成する。又は、学習データ取得部12及び学習部14を備える機械学習装置10が、該別のコンピュータに実装されてもよい。この場合、該別のコンピュータは、学習データ取得部12として機能して、力センサ32から力Fのデータを取得する。
以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
10 機械学習装置
12 学習データ取得部
14 学習部
20 ロボット
32 力センサ
44,64,74 ツール
100 ロボットシステム
102 制御装置
104 プロセッサ
110 状態判定部
112 故障検知部

Claims (10)

  1. ロボットが作業に用いるツールの状態を学習する機械学習装置であって、
    前記ロボットが前記ツールに所定の動作を行わせている間に前記ツールから前記ロボットに加わる力のデータと、前記所定の動作を行っているときの前記ツールの状態を示すデータとを、学習データセットとして取得する学習データ取得部と、
    前記学習データセットを用いて、前記力と前記ツールの状態との相関性を表す学習モデルを生成する学習部と、を備える、機械学習装置。
  2. 前記学習データ取得部は、前記所定の動作を行っているときの前記ツールの位置及び姿勢のデータを、前記学習データセットとしてさらに取得し、
    前記学習部は、前記相関性に前記力と前記位置及び姿勢との関連性を加味して前記学習モデルを生成する、請求項1に記載の機械学習装置。
  3. 前記ツールは、回転動作によりワークを研磨する研磨材であり、
    前記所定の動作は、
    前記研磨材をワークに接触させることなく回転させる動作、又は
    前記研磨材をワークに接触させて回転させる動作である、請求項1又は2に記載の機械学習装置。
  4. 前記ツールは、前記状態が経時で変化する既知の耐用期間を有し、
    前記学習部は、前記耐用期間に含まれる複数の小期間の各々について前記学習モデルを生成する、請求項1〜3のいずれか1項に記載の機械学習装置。
  5. 前記ツールは、前記ロボットがハンドリングするワークであり、
    前記所定の動作は、前記ワークを穴に嵌入する動作である、請求項1又は2に記載の機械学習装置。
  6. 前記学習データ取得部は、前記ロボットが前記力を制御する力制御を実行している間の前記力のデータを取得する、請求項1〜5のいずれか1項に記載の機械学習装置。
  7. 前記力のデータは、該力の時間変化特性、該力の振幅値、及び該力の周波数スペクトラムの少なくとも1つを含む、請求項1〜6のいずれか1項に記載の機械学習装置。
  8. ツールを用いて作業を行うロボットと、
    請求項1〜7のいずれか1項に記載の機械学習装置と、
    前記力を検出し、前記力のデータとして前記学習データ取得部に供給する力センサと、
    前記学習部が生成した前記学習モデルに基づいて、前記ロボットが前記作業に際して前記所定の動作を行っているときの前記ツールの状態を判定する状態判定部と、を備える、ロボットシステム。
  9. 前記力センサの故障の有無を検知する故障検知部をさらに備える、請求項8に記載のロボットシステム。
  10. ロボットが作業に用いるツールの状態を学習する機械学習方法であって、
    プロセッサが、
    前記ロボットが前記ツールに所定の動作を行わせている間に前記ツールから前記ロボットに加わる力のデータと、前記所定の動作を行っているときの前記ツールの状態を示すデータとを、学習データセットとして取得し、
    前記学習データセットを用いて、前記力と前記ツールの状態との相関性を表す学習モデルを生成する、機械学習方法。
JP2019115371A 2019-06-21 2019-06-21 ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法 Active JP7401207B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019115371A JP7401207B2 (ja) 2019-06-21 2019-06-21 ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法
DE102020115631.6A DE102020115631A1 (de) 2019-06-21 2020-06-12 Maschinenlernvorrichtung, Robotersystem und Maschinenlernverfahren zum Lernen eines Zustands eines Werkzeugs
CN202010555681.3A CN112109077A (zh) 2019-06-21 2020-06-17 学习工具状态的机器学习装置、机器人系统以及机器学习方法
US16/903,381 US11712801B2 (en) 2019-06-21 2020-06-17 Machine learning apparatus, robot system, and machine learning method of learning state of tool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019115371A JP7401207B2 (ja) 2019-06-21 2019-06-21 ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法

Publications (2)

Publication Number Publication Date
JP2021000692A true JP2021000692A (ja) 2021-01-07
JP7401207B2 JP7401207B2 (ja) 2023-12-19

Family

ID=73654377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019115371A Active JP7401207B2 (ja) 2019-06-21 2019-06-21 ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法

Country Status (4)

Country Link
US (1) US11712801B2 (ja)
JP (1) JP7401207B2 (ja)
CN (1) CN112109077A (ja)
DE (1) DE102020115631A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6898506B1 (ja) * 2020-07-01 2021-07-07 株式会社安川電機 制御システム、ロボットシステム及び制御方法
DE102021109333B4 (de) 2021-04-14 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109336B4 (de) 2021-04-14 2023-06-01 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109334B4 (de) 2021-04-14 2023-05-25 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109332B4 (de) 2021-04-14 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
DE102021209867A1 (de) 2021-09-07 2023-03-09 Kuka Deutschland Gmbh Bewerten und/oder Steuern eines Roboterarbeitsprozesses
US11898996B2 (en) * 2022-01-03 2024-02-13 Teng-Jen Yang Test system with detection feedback

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59142048A (ja) * 1983-01-26 1984-08-15 Mitsubishi Electric Corp 工具異常検出装置
JPH11267949A (ja) * 1998-03-20 1999-10-05 Kawasaki Heavy Ind Ltd 工具摩耗検知装置および方法
JP2003011080A (ja) * 2001-06-29 2003-01-15 Toyota Motor Corp 搬送作業補助装置
JP2003019643A (ja) * 2001-07-06 2003-01-21 Mitsubishi Materials Corp 加工状態検出装置および加工状態検出方法および記録媒体およびプログラム
CN101612712A (zh) * 2009-07-10 2009-12-30 同济大学 旋转式动态铣削扭矩测量仪
JP2014061556A (ja) * 2012-09-20 2014-04-10 Ihi Corp ロボットシステム並びにセンサ検査装置及び方法
JP2017033526A (ja) * 2015-07-31 2017-02-09 ファナック株式会社 故障条件を学習する機械学習方法及び機械学習装置、並びに該機械学習装置を備えた故障予知装置及び故障予知システム
JP2018024055A (ja) * 2016-08-10 2018-02-15 三菱重工工作機械株式会社 工作機械の工具の異常検知装置及び方法
JP2018138327A (ja) * 2017-02-24 2018-09-06 ファナック株式会社 工具状態推定装置及び工作機械
JP2019000942A (ja) * 2017-06-15 2019-01-10 ファナック株式会社 学習装置、制御装置及び制御システム
JP2019139755A (ja) * 2018-02-06 2019-08-22 ファナック株式会社 研磨工具摩耗量予測装置、機械学習装置及びシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002355782A (ja) * 2001-05-31 2002-12-10 Yaskawa Electric Corp ロボット先端の作用力推定装置および作用力推定方法
US20050159840A1 (en) * 2004-01-16 2005-07-21 Wen-Jong Lin System for surface finishing a workpiece
JP2008304970A (ja) * 2007-06-05 2008-12-18 Sony Corp 制御装置および方法、並びにプログラム
JP5616478B1 (ja) * 2013-04-18 2014-10-29 ファナック株式会社 ワークを搬送するロボットを備えるロボットシステム
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks
JP6438450B2 (ja) * 2016-11-29 2018-12-12 ファナック株式会社 レーザ加工ロボットの加工順序を学習する機械学習装置、ロボットシステムおよび機械学習方法
JP2018126798A (ja) * 2017-02-06 2018-08-16 セイコーエプソン株式会社 制御装置、ロボットおよびロボットシステム
JP6822242B2 (ja) 2017-03-16 2021-01-27 株式会社リコー 診断装置、診断システム、診断方法およびプログラム
JP7069747B2 (ja) * 2018-01-26 2022-05-18 セイコーエプソン株式会社 ロボット制御装置及びロボットシステム
US11642183B2 (en) * 2018-06-06 2023-05-09 Verily Life Sciences Llc Systems and methods for fleet management of robotic surgical systems
JP7305945B2 (ja) 2018-10-31 2023-07-11 株式会社ジェイテクト 工作機械
JP7342444B2 (ja) * 2019-06-18 2023-09-12 株式会社ジェイテクト 加工工具の異常検知装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59142048A (ja) * 1983-01-26 1984-08-15 Mitsubishi Electric Corp 工具異常検出装置
JPH11267949A (ja) * 1998-03-20 1999-10-05 Kawasaki Heavy Ind Ltd 工具摩耗検知装置および方法
JP2003011080A (ja) * 2001-06-29 2003-01-15 Toyota Motor Corp 搬送作業補助装置
JP2003019643A (ja) * 2001-07-06 2003-01-21 Mitsubishi Materials Corp 加工状態検出装置および加工状態検出方法および記録媒体およびプログラム
CN101612712A (zh) * 2009-07-10 2009-12-30 同济大学 旋转式动态铣削扭矩测量仪
JP2014061556A (ja) * 2012-09-20 2014-04-10 Ihi Corp ロボットシステム並びにセンサ検査装置及び方法
JP2017033526A (ja) * 2015-07-31 2017-02-09 ファナック株式会社 故障条件を学習する機械学習方法及び機械学習装置、並びに該機械学習装置を備えた故障予知装置及び故障予知システム
JP2018024055A (ja) * 2016-08-10 2018-02-15 三菱重工工作機械株式会社 工作機械の工具の異常検知装置及び方法
JP2018138327A (ja) * 2017-02-24 2018-09-06 ファナック株式会社 工具状態推定装置及び工作機械
JP2019000942A (ja) * 2017-06-15 2019-01-10 ファナック株式会社 学習装置、制御装置及び制御システム
JP2019139755A (ja) * 2018-02-06 2019-08-22 ファナック株式会社 研磨工具摩耗量予測装置、機械学習装置及びシステム

Also Published As

Publication number Publication date
DE102020115631A1 (de) 2020-12-24
US20200398424A1 (en) 2020-12-24
US11712801B2 (en) 2023-08-01
JP7401207B2 (ja) 2023-12-19
CN112109077A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
JP2021000692A (ja) ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法
CN105583826B (zh) 工业机器人和用于控制工业机器人的方法
JP6836577B2 (ja) 研磨工具摩耗量予測装置、機械学習装置及びシステム
JP6572265B2 (ja) 制御装置及び機械学習装置
US11167417B2 (en) Robot control device and robot system
JP6940542B2 (ja) 把持力調整装置及び把持力調整システム
JP6629815B2 (ja) 寿命推定装置及び機械学習装置
JP7239399B2 (ja) 調整支援装置
US11931905B2 (en) Failure prediction method and failure prediction apparatus
JP7173916B2 (ja) 機械学習装置および機械学習方法
CN109129462A (zh) 学习装置、控制装置以及控制系统
CN110405729B (zh) 机器人控制装置
US11331810B2 (en) Device, method and program for estimating weight and position of gravity center of load by using robot
JP2019188514A (ja) ロボットを用いた負荷の重量及び重心位置を推定するための装置、方法及びプログラム
JP2024023873A (ja) 作業員の作業を補助する機械学習装置、及び機械学習方法
Leco et al. A two-step machining and active learning approach for right-first-time robotic countersinking through in-process error compensation and prediction of depth of cuts
Haddadin et al. Holistic design and analysis for the human-friendly robotic co-worker
Li et al. A novel force feedback model for virtual robot teaching of belt lapping
Yang et al. Zero-tuning grinding process methodology of cyber-physical robot system
Wang et al. A smart operator assistance system using deep learning for angle measurement
Wu et al. Contact event detection for robotic oil drilling
Phan et al. Geometry of contact during tooling tasks via dynamic estimation
Kumar Design of industrial robot for metal drilling
JP4300309B2 (ja) シミュレーションにおける干渉確認方法
US11898996B2 (en) Test system with detection feedback

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231207

R150 Certificate of patent or registration of utility model

Ref document number: 7401207

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150