[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPWO2019087357A1 - キャリブレーション装置、キャリブレーション方法および制御装置 - Google Patents

キャリブレーション装置、キャリブレーション方法および制御装置 Download PDF

Info

Publication number
JPWO2019087357A1
JPWO2019087357A1 JP2018518548A JP2018518548A JPWO2019087357A1 JP WO2019087357 A1 JPWO2019087357 A1 JP WO2019087357A1 JP 2018518548 A JP2018518548 A JP 2018518548A JP 2018518548 A JP2018518548 A JP 2018518548A JP WO2019087357 A1 JPWO2019087357 A1 JP WO2019087357A1
Authority
JP
Japan
Prior art keywords
force
position information
unit
information
calibration
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
JP2018518548A
Other languages
English (en)
Other versions
JP6456555B1 (ja
Inventor
高志 南本
浩司 白土
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6456555B1 publication Critical patent/JP6456555B1/ja
Publication of JPWO2019087357A1 publication Critical patent/JPWO2019087357A1/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
    • 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/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • 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
    • 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/1648Programme controls characterised by the control loop non-linear control combined or not with linear 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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/39024Calibration of manipulator

Landscapes

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

Abstract

制御対象機器の位置および姿勢を示す位置情報を取得する位置情報取得部(101)と、制御対象機器に設けられた力覚センサ(5)の検知結果から、制御対象機器に加わる力情報を取得する力情報取得部(102)と、取得された位置情報から物理モデルを用いて制御対象機器に加わる力を推定し、推定力情報を取得する第1の推定部(104)と、取得された位置情報、取得した力情報、および取得された推定力情報に基づいて、線形または非線形モデルを推定する第2の推定部(105)とを備える。

Description

この発明は、力制御を利用する装置において、当該装置の接触力を求める技術に関するものである。
従来より、3次元動作するアーム型ロボットのアームの先端に力覚センサを介してエンドエフェクタを取り付け、当該エンドエフェクタがワークに対して種々の作業を行うロボットが用いられている。当該ロボットが種々の作業を行うためには、エンドエフェクタとワークとの間に働く接触力を制御する必要がある。しかし、力覚センサが検知する力には、エンドエフェクタとワークとの間に働く接触力に加えて、力覚センサ、エンドエフェクタおよびエンドエフェクタが把持するワーク等に加わる重力が含まれる。エンドエフェクタとワークとの間に働く接触力を求めるためには、力覚センサが検知した結果から、力覚センサ、エンドエフェクタおよびエンドエフェクタが把持するワーク等に加わる重力成分をキャンセルする必要がある。
例えば、特許文献1には、ロボットアームを複数の姿勢に動作させ、力覚センサの計測値と、当該計測値を取得した際の力覚センサの姿勢データとを取得し、演算装置によりエンドエフェクタの重量、重力方向ベクトル、エンドエフェクタ重心位置ベクトルを含む複数のパラメータを算出し、算出したパラメータを同時にキャリブレーションするキャリブレーション装置が開示されている。
特開2012−040634号公報
上述した特許文献1に記載されたキャリブレーション装置では、力覚センサ、エンドエフェクタおよびエンドエフェクタが把持するワーク等に加わる重力成分を質点モデルでモデル化し、重力成分を推定している。しかし、エンドエフェクタ等は質量分布を有しており、質点モデルによって重力成分を推定すると誤差が生じる。また、ロボットアームに巻きつけられたケーブル等、ロボットアームの姿勢によって重力成分が変化する部材については、重力成分を正確に推定することは困難であった。このように、特許文献1に記載された技術では、質点モデルによって重力成分を正確に推定することは困難であるという課題があった。
この発明は、上記のような課題を解決するためになされたもので、重力成分の推定誤差を抑制し、正確なキャリブレーション結果を得ることを目的とする。
この発明に係るキャリブレーション装置は、制御対象機器の位置および姿勢を示す位置情報を取得する位置情報取得部と、制御対象機器に設けられた力覚センサの検知結果から、制御対象機器に加わる力情報を取得する力情報取得部と、位置情報取得部が取得した位置情報から物理モデルを用いて制御対象機器に加わる力を推定し、推定力情報を取得する第1の推定部と、位置情報取得部が取得した位置情報、力情報取得部が取得した力情報、および第1の推定部が取得した推定力情報に基づいて、線形または非線形モデルを推定する第2の推定部とを備える。
この発明によれば、重力成分の推定誤差を抑制することができる。これにより、正確なキャリブレーション結果を得ることができ、精密な操作を行う装置に対して当該キャリブレーション手法を適用することができる。
実施の形態1に係るキャリブレーション装置が適用されたロボットシステムの構成を示す図である。 実施の形態1に係るロボットシステムのロボット座標系、ワールド座標系、重力座標系およびセンサ座標系の位置関係を示す図である。 実施の形態1に係るキャリブレーション装置の構成を示すブロック図である。 実施の形態1に係るキャリブレーション装置の第2の推定部におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。 図5Aおよび図5Bは、キャリブレーション装置のハードウェア構成例を示す図である。 実施の形態1に係るキャリブレーション装置のキャリブレーション処理時の動作を示すフローチャートである。 実施の形態1に係るキャリブレーション装置のキャリブレーション処理時のデータの流れを示す図である。 ロボットが通常運転している場合の、実施の形態1に係るキャリブレーション装置の動作を示すフローチャートである。 ロボットが通常運転している場合の、実施の形態1に係るキャリブレーション装置のデータの流れを示す図である。 図10Aから図10Fは、実施の形態1に係るキャリブレーション装置によるキャリブレーション結果を示す図である。 オイラー表現された位置情報の定義域を示す図である。 実施の形態2に係るキャリブレーション装置の構成を示すブロック図である。 実施の形態2に係るキャリブレーション装置の第2の推定部におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。 実施の形態2に係るキャリブレーション装置のキャリブレーション処理時の動作を示すフローチャートである。 ロボットが通常運転している場合の、実施の形態2に係るキャリブレーション装置の動作を示すフローチャートである。 図16Aから図16Fは、実施の形態2に係るキャリブレーション装置によるキャリブレーション結果を示す図である。
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
なお、以下の各実施の形態では、キャリブレーション装置として、具体的にロボットを使用したシステムにおいてキャリブレーション処理を行うロボットシステムを例に挙げて説明する。しかし、この発明に係るキャリブレーション装置は、ロボットを使用した場合に限定されることなく、力制御を行う装置について、同一の構成でキャリブレーションを実施することができる。即ち、この発明に係るキャリブレーション装置は、適用範囲をロボットシステムに限定するものではない。力制御を行う装置として、例えば自動加工装置および自動組み立て装置が上げられる。
実施の形態1.
図1は、実施の形態1に係るキャリブレーション装置100が適用されたロボットシステムの構成を示す図である。
ロボットシステムは、ロボットアーム(制御対象機器)1を備えたロボット(制御対象機器)2、ロボットアーム1の先端部に取り付けられたエンドエフェクタ(制御対象機器)3、およびロボット2およびエンドエフェクタ3を制御する制御装置4を基本的な構成として有している。また、力制御を行うロボットシステムでは、ロボットアーム1とエンドエフェクタ3との間に、力情報を取得するセンサとして力覚センサ5が設けられている。
ロボット2は、任意の座標系上で、ロボットアーム1の先端位置またはロボットアーム1の先端に取り付けられたエンドエフェクタ3の先端位置を移動させ、位置制御する。制御装置4は、エンドエフェクタ3の先端位置の位置制御を行うための制御情報をロボット2に出力する。
また、力覚センサ5を用いることにより、エンドエフェクタ3の先端位置の位置制御のみではなく、エンドエフェクタ3の力制御が可能となる。エンドエフェクタ3の力制御は、エンドエフェクタ3と周辺物体、またはエンドエフェクタ3と周辺環境との間の力の作用状態、即ち接触力を制御するものである。エンドエフェクタ3の力制御を行うことにより、ロボット2を用いた研磨作業、バリ取り作業およびコネクタ等の組み立てなど、エンドエフェクタ3とワークとの接触状態を考慮しながら行う作業が実施可能となる。
ロボットシステムには、図1に示すように、目的に応じてロボットアーム1の先端にケーブル6が取り付けられる。ケーブル6は、例えば力覚センサ5から延びるケーブル、電源供給のためのケーブル、および制御装置4から制御信号を供給するためのケーブル等である。ケーブル6は、ロボット2の動きによる巻き込みを防止する目的で、張力を緩和させて弛ませて巻きつける場合が多く、ロボットアーム1の姿勢によって重力成分が変化する。力覚センサ5の力情報には、当該ケーブル6の重力成分が加わり、誤差の要因となる。ロボットアーム1が高精度な作業を行う上で、当該誤差は問題となる。
そこで、キャリブレーション装置100は、質点モデル用いて推定したロボット2に加わる力と、力覚センサ5の力情報との差分を用いて、ニューラルネットワークのパラメータの最適化を行うキャリブレーションを行う。
ロボット2に加わる力を推定するためのモデルは、質点モデル以外の物理モデルであっても良い。質点モデル以外の物理モデルとして、例えば剛体モデルが挙げられる。
まず、キャリブレーション装置100がキャリブレーション処理を行う座標系について説明する。
図2は、実施の形態1に係るロボットシステムのロボット座標系、ワールド座標系、重力座標系およびセンサ座標系の位置関係を示す図である。
図2では、ロボットシステム内に固定されたロボット2の基準座標系として定義されるロボット座標系をΣrob、ロボットシステム内の機器に共通の座標系として定義されるワールド座標系をΣwld、重力加速度方向を−Z方向とした重力座標系をΣgrv、および力覚センサ5の基準座標系として定義されるセンサ座標系をΣsenとして示している。
キャリブレーション装置100は、図2で示したいずれの座標系を適用して処理を行ってもよい。なお、以下の説明では、キャリブレーション装置100がセンサ座標系を用いて処理を行う場合を例に説明する。
図3は、実施の形態1に係るキャリブレーション装置100の構成を示すブロック図である。
キャリブレーション装置100は、位置情報取得部101、力情報取得部102、情報記憶部103、第1の推定部104、第2の推定部105および制御量演算部106を備える。また、図3に示すように、キャリブレーション装置100には、制御装置4および力覚センサ5が接続される。また、ロボット2は制御装置4および力覚センサ5と接続される。
まず、キャリブレーション装置100の使用に当たっては、まず、位置情報取得部101、力情報取得部102、情報記憶部103、第1の推定部104および第2の推定部105が、ニューラルネットワークの中間層のパラメータの最適化処理(以下、キャリブレーション処理と記載する)を行う。
位置情報取得部101は、制御装置4からロボット2の位置情報を取得し、情報記憶部103に記憶させる。位置情報取得部101は、ロボット2の位置情報としてエンドエフェクタ3部分の位置および姿勢を示す情報を取得する。位置情報は、例えばオイラー表現されたX軸、Y軸、Z軸に対する回転3自由度である[A、B、C]を示す。力情報取得部102は、力覚センサ5の検知結果からロボット2に加わる力を示す情報(以下、力情報と記載する)を取得し、情報記憶部103に記憶させる。
キャリブレーション処理を行う際、制御装置4は、ロボット座標系、ワールド座標系、重力座標系またはセンサ座標系のうちのいずれかの座標系の原点を通る任意の回転軸を設定し、設定した回転軸周りにロボット2の姿勢を変化させる制御を行う。設定した回転軸周りにロボット2を回転させる際の回転角度量は、任意に設定される。制御装置4は、設定した回転軸および回転角度量に基づいて、位置情報および力情報を取得するためのロボット2の姿勢を決定し、ロボット2に姿勢指令値として出力する。ロボット2は、制御装置4から入力される姿勢指令値に従って、設定された回転軸周りに、設定された回転角度量回転し、姿勢を変化させる。位置情報取得部101および力情報取得部102は、姿勢が変化するロボット2の位置情報および力情報を離散的に取得し、情報記憶部103に記憶していく。位置情報取得部101および力情報取得部102が位置情報および力情報を取得するタイミングは、適宜設定可能である。情報記憶部103は、位置情報取得部101から入力される位置情報、および力情報取得部102から入力される力情報を記憶する。
第1の推定部104は、情報記憶部103に記憶された位置情報から、質点モデルを用いてロボット2に加わる力を推定し、推定力情報を取得する。質点モデルのパラメータは、1つの質点におけるエンドエフェクタ3の重量、エンドエフェクタ3の重心位置およびバイアスである。第1の推定部104は、取得した推定力情報を第2の推定部105に出力する。
第2の推定部105は、情報記憶部103に記憶された位置情報および力情報と、第1の推定部104が取得した推定力情報とを入力として、線形または非線形モデルを推定する。具体的には、第2の推定部105は、位置情報、および推定力情報と力情報との差分、でなる複数のセットを用いて、一般的なニューラルネットの学習則に基づいて学習を行う。ニューラルネットワークには、CNN(Convolutional Neural Network)またはRNN(Recurrent Neural Network)など様々な形態が存在するが、当該形態は任意に適用可能である。
図4は、実施の形態1に係るキャリブレーション装置100の第2の推定部105におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。
入力層には、情報記憶部103に記憶された位置情報[A、B、C]が入力され、出力層からは推定力情報と力情報との差分(ΔF,ΔF,ΔF,ΔM,ΔM,ΔM)が出力される。
第2の推定部105は、ニューラルネットワークの学習過程において、入力された位置情報から中間層を経て得られる出力層の出力値を、教師信号、即ち推定力情報と力情報との差分と近似させるために中間層のパラメータの最適化を行う。
なお、図4では、力覚センサ5が6軸センサであって、ロボットアーム1の移動方向、向きおよび回転を検出可能な場合を例に説明を行った。一方、力覚センサ5は3軸センサであってもよく、センサの構成は適宜設定可能である。ニューラルネットワークの出力は、力覚センサ5の構成に基づいて適宜設定される。
次に、実際にロボット2を使って作業を実施するとき(以下、通常動作時と記載する)に、キャリブレーション装置100は、位置情報取得部101、力情報取得部102、情報記憶部103、第1の推定部104、第2の推定部105および制御量演算部106が制御装置200に対する指令値を演算する処理を行う。
位置情報取得部101は、通常動作時のロボット2の位置情報および力情報を取得し、情報記憶部103に記憶させる。第1の推定部104は、情報記憶部103に記憶された位置情報から、ロボット2に加わる力を推定し、推定力情報を取得する。第1の推定部104は、取得した推定力情報を制御量演算部106に出力する。
第2の推定部105は、情報記憶部103に記憶された位置情報をニューラルネットワークに入力し、推定力情報と力情報との差分を推定する。第2の推定部105は、推定した差分を制御量演算部106に出力する。制御量演算部106は、第1の推定部104から入力された推定力情報と、情報記憶部103に記憶された力情報との差分から、第2の推定部105から入力された差分を減算し、制御装置4に対する制御量を演算する。制御量演算部106は、演算した制御量を、制御装置4に出力する。制御装置4の制御部4aは、制御量演算部106から入力された制御量を用いて、ロボット2を制御する。なお、上述した図3では、キャリブレーション装置100が制御量演算部106を備える構成を示したが、当該制御量演算部106を制御装置4が備える構成としてもよい。
次に、キャリブレーション装置100のハードウェア構成例を説明する。
図5Aおよび図5Bは、キャリブレーション装置100のハードウェア構成例を示す図である。
キャリブレーション装置100における情報記憶部103は、ストレージ100aにより実現される。また、キャリブレーション装置100における位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各機能は、処理回路により実現される。即ち、キャリブレーション装置100は、上記各機能を実現するための処理回路を備える。当該処理回路は、図5Aに示すように専用のハードウェアである処理回路100bであってもよいし、図5Bに示すようにメモリ100dに格納されているプログラムを実行するプロセッサ100cであってもよい。
図5Aに示すように、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106が専用のハードウェアである場合、処理回路100bは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-programmable Gate Array)、またはこれらを組み合わせたものが該当する。位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各部の機能それぞれを処理回路で実現してもよいし、各部の機能をまとめて1つの処理回路で実現してもよい。
図5Bに示すように、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106がプロセッサ100cである場合、各部の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ100dに格納される。プロセッサ100cは、メモリ100dに記憶されたプログラムを読み出して実行することにより、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各機能を実現する。即ち、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106は、プロセッサ100cにより実行されるときに、後述する図6および図8に示す各ステップが結果的に実行されることになるプログラムを格納するためのメモリ100dを備える。また、これらのプログラムは、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の手順または方法をコンピュータに実行させるものであるとも言える。
ここで、プロセッサ100cとは、例えば、CPU(Central Processing Unit)、処理装置、演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)などのことである。
メモリ100dは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)等の不揮発性または揮発性の半導体メモリであってもよいし、ハードディスク、フレキシブルディスク等の磁気ディスクであってもよいし、ミニディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)等の光ディスクであってもよい。
なお、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、キャリブレーション装置100における処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
次に、キャリブレーション装置100の動作について説明する。
キャリブレーション装置100の動作は、キャリブレーション処理時の動作と、通常運転時の動作とに分けて説明する。まず、図6および図7を参照しながら、キャリブレーション装置100のキャリブレーション処理時の動作について説明する。
図6は、実施の形態1に係るキャリブレーション装置100のキャリブレーション処理時の動作を示すフローチャートである。
図7は、実施の形態1に係るキャリブレーション装置100のキャリブレーション処理時のデータの流れを示す図である。
位置情報取得部101および力情報取得部102は、位置情報[A、B、C]および力情報F,F,F,M,M,Mを取得し(ステップST1)、取得した位置情報および力情報を情報記憶部103に記憶させる(ステップST2)。ステップST1およびステップST2の処理は、ロボット2の姿勢の変化に応じて、繰り返し行われる。第1の推定部104は、情報記憶部103に記憶された位置情報[A、B、C]から、ロボット2に加わる力を推定し、推定力情報を取得する(ステップST3)。第1の推定部104は取得した推定力情報を第2の推定部105に出力する。
第2の推定部105は、ステップST3で取得された推定力情報と、情報記憶部103に記憶された力情報F,F,F,M,M,Mとの差分を算出し、教師信号を取得する(ステップST4)。第2の推定部105は、情報記憶部103に記憶された位置情報[A、B、C]をニューラルネットワークの入力とし、ニューラルネットワークの出力をステップST4で取得した教師信号と近似させるための学習を行う(ステップST5)。具体的に、第2の推定部105は、ニューラルネットワークの出力を教師信号と近似させるために、ニューラルネットワークの中間層のパラメータの最適化を行う。
第2の推定部105は、推定精度が所定値を上回ったか否か判定を行う(ステップST6)。推定精度が所定値を上回っていない場合(ステップST6;NO)、フローチャートはステップST3の処理に戻り、上述した処理を繰り返し行う。一方、推定精度が所定値を上回った場合(ステップST6;YES)、キャリブレーション装置100は、キャリブレーション処理を終了する。
次に、図8および図9を参照しながら、ロボット2が通常運転している場合の、キャリブレーション装置100の動作について説明する。
図8は、ロボット2が通常運転している場合における、実施の形態1に係るキャリブレーション装置100の動作を示すフローチャートである。
図9は、ロボット2が通常運転している場合における、実施の形態1に係るキャリブレーション装置100のデータの流れを示す図である。
ロボット2が動作して姿勢が変更されると(ステップST11)、位置情報取得部101および力情報取得部102が位置情報[A、B、C]および力情報F,F,F,M,M,Mを取得する(ステップST12)。位置情報取得部101および力情報取得部102は、取得した位置情報[A、B、C]および力情報F,F,F,M,M,Mを、情報記憶部103に記憶させる。第1の推定部104は、情報記憶部103に記憶された位置情報[A、B、C]から、ロボット2に加わる力を推定し、推定力情報を取得する(ステップST13)。第1の推定部104は取得した推定力情報を制御量演算部106に出力する。
第2の推定部105は、学習済みのニューラルネットワークの入力層に、情報記憶部103に記憶された位置情報[A、B、C]を入力し、出力として差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを取得する(ステップST14)。第2の推定部105は、取得した差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを制御量演算部106に出力する。制御量演算部106は、ステップST13で取得された推定力情報と情報記憶部103に記憶された力情報F,F,F,M,M,Mとの差分を算出する(ステップST15)。制御量演算部106は、ステップST15で算出した差分から、さらにステップST14で取得した差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを減算し、制御量を算出する(ステップST16)。制御量演算部106は、ステップST16で算出した制御量を制御装置4に出力し(ステップST17)、処理を終了する。
キャリブレーション装置100によるキャリブレーション結果を、図10を参照しながら説明する。
図10は、実施の形態1に係るキャリブレーション装置100によるキャリブレーション結果を示す図である。
図10Aから図10Fにおいて、第1の線分は質点モデルを用いた力情報の推定によりキャリブレーションした結果を示し、第2の線分は質点モデルを用いた力情報の推定およびニューラルネットワークを用いて、キャリブレーションした結果を示す。
また、図10AはX軸方向の力情報F、図10BはY軸方向の力情報F、図10CはZ軸方向の力情報Fを示す。さらに、図10DはX軸周りのモーメントM、図10EはY軸周りのモーメントM、図10FはZ軸周りのモーメントMを示す。
図10は、ロボット2を移動させた際に、位置情報を、学習済みのニューラルネットワークに入力して得られる出力である差分を示している。また、図10は、ロボット2のエンドエフェクタ3がワーク等に接触していない状態で、ロボット2が移動した場合の差分を示している。そのため、図10では、差分の値が「0」に近いほど、良好なキャリブレーション結果が得られていると判断することができる。図10Aから図10Fの全てにおいて、第1の線分で示した質点モデルを用いた力情報の推定によりキャリブレーションを行った結果よりも、第2の線分で示した質点モデルを用いた力情報の推定およびニューラルネットワークを用いてキャリブレーションを行った結果の方が、より良好なキャリブレーション結果が得られている。
以上のように、この実施の形態1によれば、制御対象機器の位置および姿勢を示す位置情報を取得する位置情報取得部101と、制御対象機器に設けられた力覚センサ5の検知結果から、制御対象機器に加わる力情報を取得する力情報取得部102と、位置情報取得部101が取得した位置情報から物理モデルを用いて制御対象機器に加わる力を推定し、推定力情報を取得する第1の推定部104と、位置情報取得部101が取得した位置情報、力情報取得部102が取得した力情報、および第1の推定部104が取得した推定力情報に基づいて、線形または非線形モデルを推定する第2の推定部105とを備えるように構成したので、重力成分の推定誤差を抑制することができる。これにより、正確なキャリブレーション結果を得ることができ、精密な操作を行う装置に対して当該キャリブレーション手法を適用することができる。
また、この実施の形態1によれば、第2の推定部105は、位置情報取得部101が取得した位置情報をニューラルネットワークの入力とし、第1の推定部104が取得した推定力情報と力情報取得部102が取得した力情報との差分をニューラルネットワークの教師信号として、当該ニューラルネットワークの学習を行うように構成したので、非線形性の物理モデル化が困難な場合、または質点モデル等では物理モデル化が困難なケーブル等についても、力情報への影響を除去することができる。
実施の形態2.
上述した実施の形態1では、位置情報は、オイラー表現されたX軸、Y軸、Z軸に対する回転3自由度である[A、B、C]であることを示した。オイラー表現された位置情報は、図11に示すように、例えばX軸上を1回転する位置情報を示す場合に、0degから180degの定義域θで表現された位置情報と、0degから−180degの定義域θで表現された位置情報とで表される場合がある。この場合、定義域θと定義域θとの境界点P、即ち、180degおよび−180degの地点では、数値の折り返しが生じ、数値が連続しない、数値の不連続点となる。この実施の形態2では、オイラー表現された位置情報の定義域において、位置情報を示す数値を、不連続点を含まない表現となるように変換する構成を示す。
図12は、実施の形態2に係るキャリブレーション装置100Aの構成を示すブロック図である。
実施の形態2のキャリブレーション装置100Aは、図3で示したキャリブレーション装置100に変換部107を追加して構成している。以下では、実施の形態1に係るキャリブレーション装置100の構成要素と同一または相当する部分には、実施の形態1で使用した符号と同一の符号を付して説明を省略または簡略化する。
変換部107は、情報記憶部103に記憶された位置情報[A,B,C]に対して回転行列計算を行い、ベクトル表現に変換する。変換部107による回転行列計算は、以下の式(1)で表される。
Figure 2019087357
Figure 2019087357
なお、式(1)では、X軸を中心とした回転角度をA、Y軸を中心とした回転角度をB、Z軸を中心した回転角度をCとし、X軸を中心とした回転による座標変換を行う回転行列をRハット(A)、Y軸を中心とした回転による座標変換を行う回転行列をRハット(B)、Z軸を中心とした回転による座標変換を行う回転行列をRハット(C)とする。
また、回転行列Rハット(A)、回転行列Rハット(B)、および回転行列Rハット(C)は、以下の式(2)から式(4)で表すことができる。
Figure 2019087357

Figure 2019087357

Figure 2019087357
変換部107は、上述した回転行列計算で得られた位置情報のベクトル値r11,r12,r13,r21,r22,r23,r31,r32,r33を第2の推定部105に出力する。キャリブレーション処理を行っている場合、第2の推定部105は、変換部107から入力された位置情報のベクトル値r11,r12,r13,r21,r22,r23,r31,r32,r33を、ニューラルネットワークの入力とする。第2の推定部105は、ニューラルネットワークの出力を教師信号と近似させるため、ニューラルネットワークの中間層のパラメータの最適化を行う学習を行う。
また、ロボット2を通常動作させている場合、第2の推定部105は、変換部107から入力された位置情報のベクトル値r11,r12,r13,r21,r22,r23,r31,r32,r33を、ニューラルネットワークの入力とする。第2の推定部105は、ニューラルネットワークの出力として、実施の形態1と同様に差分(ΔF,ΔF,ΔF,ΔM,ΔM,ΔM)を取得する。
次に、キャリブレーション装置100Aのハードウェア構成例を説明する。なお、実施の形態1と同一の構成の説明は省略する。
キャリブレーション装置100Aにおける変換部107は、図5Aで示した処理回路100b、または図5Bで示したメモリ100dに格納されるプログラムを実行するプロセッサ100cである。
図13は、実施の形態2に係るキャリブレーション装置100の第2の推定部105におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。
入力層には、位置情報[A,B,C]を回転行列計算して得られた位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)が入力される。出力層からは差分(ΔF,ΔF,ΔF,ΔM,ΔM,ΔM)が出力される。第2の推定部105は、ニューラルネットワークの学習過程において、入力されたベクトル値から中間層を経て得られる出力層の出力値を、教師信号、即ち推定力情報と力情報との差分と近似させるために中間層のパラメータの最適化を行う。
なお、図13では、力覚センサ5が6軸センサであって、ロボットアーム1の移動方向、向きおよび回転を検出可能な場合を例に説明を行った。一方、力覚センサ5は3軸センサであってもよく、センサの構成は適宜設定可能である。ニューラルネットワークの出力は、力覚センサ5の構成に基づいて適宜設定される。
図14は、実施の形態2に係るキャリブレーション装置100のキャリブレーション処理時の動作を示すフローチャートである。
なお、以下では、実施の形態1に係るキャリブレーション装置100と同一のステップには図6で使用した符号と同一の符号を付し、説明を省略または簡略化する。
変換部107は、情報記憶部103に記憶された位置情報[A、B、C]を用いて回転行列計算を行い、位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を取得する(ステップST21)。変換部107は、位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を第2の推定部105に出力する。
第2の推定部105はステップST3で取得された推定力情報と、情報記憶部103に記憶された力情報F,F,F,M,M,Mとの差分を算出し、教師信号を取得する(ステップST4)。第2の推定部105は、変換部107から入力された位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)をニューラルネットワークの入力とし、ニューラルネットワークの出力をステップST4で取得した教師信号と近似させるための中間層のパラメータの最適化を行うニューラルネットワークの学習を行う(ステップST22)。その後、フローチャートはステップST6の処理に進む。
図15は、ロボット2が通常運転している場合における、実施の形態2に係るキャリブレーション装置100の動作を示すフローチャートである。
なお、以下では、実施の形態1に係るキャリブレーション装置100と同一のステップには図8で使用した符号と同一の符号を付し、説明を省略または簡略化する。
変換部107は、情報記憶部103に記憶された位置情報[A、B、C]を用いて回転行列計算を行い、位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を取得する(ステップST31)。変換部107は、取得した位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を第2の推定部105に出力する。
第2の推定部105は、学習したニューラルネットワークの入力層に、ステップST31で取得された位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を入力し、出力として差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを取得する(ステップST32)。第2の推定部105は、取得した差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを制御量演算部106に出力する。その後、ステップST15からステップST17の処理を行う。
キャリブレーション装置100Aによるキャリブレーション結果を、図16を参照しながら説明する。
図16は、実施の形態1に係るキャリブレーション装置100によるキャリブレーション結果を示す図である。
図16Aから図16Fにおいて、第1の線分は質点モデルを用いた力情報の推定によりキャリブレーションした結果を示し、第2の線分は質点モデルを用いた力情報の推定およびニューラルネットワークを用いてキャリブレーションした結果を示し、第3の線分は質点モデルを用いた力情報の推定および回転行列計算を行った後にニューラルネットワークを用いてキャリブレーションした結果を示す。
また、図16AはX軸方向の力情報F、図16BはY軸方向の力情報F、図16CはZ軸方向の力情報Fを示す。さらに、図16DはX軸周りのモーメントM、図16EはY軸周りのモーメントM、図16FはZ軸周りのモーメントMを示す。
図16は、実施の形態1と同様に、ロボット2を移動させた際に、位置情報を、学習済みのニューラルネットワークに入力して得られる出力である差分を示している。また、図16は、ロボット2のエンドエフェクタ3がワークに接触していない状態で、ロボット2が移動した場合の差分を示している、そのため、図16では、差分の値が「0」に近いほど、良好なキャリブレーション結果が得られていると判断できる。図16Aから図16Fの全てにおいて、第3の線分で示した、質点モデルを用いた力情報の推定および回転行列計算を行った後にニューラルネットワークを用いて、キャリブレーションを行った場合が、最も良好なキャリブレーション結果が得られたことを示している。
上記では、変換部107が位置情報に対して回転行列計算を行い、ベクトルに変換する場合を示したが、変換処理は回転行列計算に限定されるものではない。
変換部107には、オイラー表現された位置情報の定義域において、位置情報を示す数値の不連続点を含まない表現となるように、位置以上の数値の変換を行う処理であれば、種々適用可能である。
例えば、オイラー表現された位置情報の定義域において、図11で示した定義域θ(0degから−180deg)の角度に360degを加算し、角度範囲を180degから360degに変換する処理を適用する。これにより、図11の例で示した位置情報の定義域θと定義域θにおいて角度範囲が0degから360degとなり、定義域θと定義域θとの境界点Pにおいて数値の不連続点がなくなる。
以上のように、この実施の形態2によれば、位置情報取得部101が取得した位置情報を、不連続点を含まない連続した数値表現に変換する変換部107を備えるように構成したので、位置情報の不連続点の影響を受けることなく、位置情報の変換に対して連続したキャリブレーション処理を行うことができる。
上述した実施の形態1および実施の形態2において、位置情報取得部101が取得した位置情報、および力情報取得部102が取得した力情報を記憶する情報記憶部103を備える構成を示したが、情報記憶部103を備えない構成としてもよい。その場合、位置情報取得部101および力情報取得部102は、第1の推定部104、第2の推定部105および変換部107のうち、情報を出力すべき構成に直接情報を出力するように構成してもよい。
上述した実施の形態1および実施の形態2において、キャリブレーション処理を行う際に、位置情報取得部101が位置情報を取得し、力情報取得部102が力情報を取得し、情報記憶部103に記憶させる構成を示した。キャリブレーション装置100が、当該位置情報および力情報を取得する際に、ロボット2を等速運動で移動させる構成としてもよい。ロボット2を等速運動させることにより、慣性力の影響を考慮する必要のない情報を取得することができる。また、慣性力の影響を考慮する必要がないので、ロボット2の動作を止めることなく、位置情報および力情報を取得することができる。
また、上述した実施の形態1および実施の形態2において、キャリブレーション装置100,100Aは、ロボット2の設置環境の変化およびロボット2のエンドエフェクタ3等の経年変化等の情報に基づいて、ニューラルネットワークを更新する構成を備えてもよい。例えば、キャリブレーション装置100,100Aは、ロボット2が設置された環境の温度または湿度、エンドエフェクタ3の磨耗度合い等の制御対象機器に関する情報を取得する。第2の推定部105は、ニューラルネットワークの学習を行う際に、取得された制御対象機器に関する情報も参照してニューラルネットワークの学習を行う。
これにより、ロボット2の設置環境およびロボット2等の経年変化を考慮したニューラルネットワークの学習を行うことができ、精度の高いキャリブレーション処理を実行することができる。
上記以外にも、本発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、各実施の形態の任意の構成要素の変形、または各実施の形態の任意の構成要素の省略が可能である。
この発明に係るキャリブレーション装置は、アーム型ロボットであって、力を制御しながら作業を行うアーム型ロボットを制御するために用いられる装置であって、高精度な操作を必要となるアーム型ロボットを制御するための装置に適用可能である。
100,100A キャリブレーション装置、101 位置情報取得部、102 力情報取得部、103 情報記憶部、104 第1の推定部、105 第2の推定部、106 制御量演算部、107 変換部。
この発明は、力制御を利用する装置において、当該装置の接触力を求める技術に関するものである。
従来より、3次元動作するアーム型ロボットのアームの先端に力覚センサを介してエンドエフェクタを取り付け、当該エンドエフェクタがワークに対して種々の作業を行うロボットが用いられている。当該ロボットが種々の作業を行うためには、エンドエフェクタとワークとの間に働く接触力を制御する必要がある。しかし、力覚センサが検知する力には、エンドエフェクタとワークとの間に働く接触力に加えて、力覚センサ、エンドエフェクタおよびエンドエフェクタが把持するワーク等に加わる重力が含まれる。エンドエフェクタとワークとの間に働く接触力を求めるためには、力覚センサが検知した結果から、力覚センサ、エンドエフェクタおよびエンドエフェクタが把持するワーク等に加わる重力成分をキャンセルする必要がある。
例えば、特許文献1には、ロボットアームを複数の姿勢に動作させ、力覚センサの計測値と、当該計測値を取得した際の力覚センサの姿勢データとを取得し、演算装置によりエンドエフェクタの重量、重力方向ベクトル、エンドエフェクタ重心位置ベクトルを含む複数のパラメータを算出し、算出したパラメータを同時にキャリブレーションするキャリブレーション装置が開示されている。
特開2012−040634号公報
上述した特許文献1に記載されたキャリブレーション装置では、力覚センサ、エンドエフェクタおよびエンドエフェクタが把持するワーク等に加わる重力成分を質点モデルでモデル化し、重力成分を推定している。しかし、エンドエフェクタ等は質量分布を有しており、質点モデルによって重力成分を推定すると誤差が生じる。また、ロボットアームに巻きつけられたケーブル等、ロボットアームの姿勢によって重力成分が変化する部材については、重力成分を正確に推定することは困難であった。このように、特許文献1に記載された技術では、質点モデルによって重力成分を正確に推定することは困難であるという課題があった。
この発明は、上記のような課題を解決するためになされたもので、重力成分の推定誤差を抑制し、正確なキャリブレーション結果を得ることを目的とする。
この発明に係るキャリブレーション装置は、制御対象機器の位置および姿勢を示す位置情報を取得する位置情報取得部と、制御対象機器に設けられた力覚センサの検知結果から、制御対象機器に加わる力情報を取得する力情報取得部と、位置情報取得部が取得した位置情報から物理モデルを用いて制御対象機器に加わる力を推定し、推定力情報を取得する第1の推定部と、位置情報取得部が取得した位置情報、力情報取得部が取得した力情報、および制御対象機器が他の物体に接触していない場合に第1の推定部が取得した推定力情報に基づいて、線形または非線形モデルを用いて推定力情報と力情報の差分を推定する第2の推定部とを備え、第2の推定部は、位置情報取得部が取得した位置情報をニューラルネットワークの入力とし、第1の推定部が取得した推定力情報と力情報取得部が取得した力情報との差分をニューラルネットワークの教師信号として、当該ニューラルネットワークの学習を行う。
この発明によれば、重力成分の推定誤差を抑制することができる。これにより、正確なキャリブレーション結果を得ることができ、精密な操作を行う装置に対して当該キャリブレーション手法を適用することができる。
実施の形態1に係るキャリブレーション装置が適用されたロボットシステムの構成を示す図である。 実施の形態1に係るロボットシステムのロボット座標系、ワールド座標系、重力座標系およびセンサ座標系の位置関係を示す図である。 実施の形態1に係るキャリブレーション装置の構成を示すブロック図である。 実施の形態1に係るキャリブレーション装置の第2の推定部におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。 図5Aおよび図5Bは、キャリブレーション装置のハードウェア構成例を示す図である。 実施の形態1に係るキャリブレーション装置のキャリブレーション処理時の動作を示すフローチャートである。 実施の形態1に係るキャリブレーション装置のキャリブレーション処理時のデータの流れを示す図である。 ロボットが通常運転している場合の、実施の形態1に係るキャリブレーション装置の動作を示すフローチャートである。 ロボットが通常運転している場合の、実施の形態1に係るキャリブレーション装置のデータの流れを示す図である。 図10Aから図10Fは、実施の形態1に係るキャリブレーション装置によるキャリブレーション結果を示す図である。 オイラー表現された位置情報の定義域を示す図である。 実施の形態2に係るキャリブレーション装置の構成を示すブロック図である。 実施の形態2に係るキャリブレーション装置の第2の推定部におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。 実施の形態2に係るキャリブレーション装置のキャリブレーション処理時の動作を示すフローチャートである。 ロボットが通常運転している場合の、実施の形態2に係るキャリブレーション装置の動作を示すフローチャートである。 図16Aから図16Fは、実施の形態2に係るキャリブレーション装置によるキャリブレーション結果を示す図である。
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
なお、以下の各実施の形態では、キャリブレーション装置として、具体的にロボットを使用したシステムにおいてキャリブレーション処理を行うロボットシステムを例に挙げて説明する。しかし、この発明に係るキャリブレーション装置は、ロボットを使用した場合に限定されることなく、力制御を行う装置について、同一の構成でキャリブレーションを実施することができる。即ち、この発明に係るキャリブレーション装置は、適用範囲をロボットシステムに限定するものではない。力制御を行う装置として、例えば自動加工装置および自動組み立て装置が上げられる。
実施の形態1.
図1は、実施の形態1に係るキャリブレーション装置100が適用されたロボットシステムの構成を示す図である。
ロボットシステムは、ロボットアーム(制御対象機器)1を備えたロボット(制御対象機器)2、ロボットアーム1の先端部に取り付けられたエンドエフェクタ(制御対象機器)3、およびロボット2およびエンドエフェクタ3を制御する制御装置4を基本的な構成として有している。また、力制御を行うロボットシステムでは、ロボットアーム1とエンドエフェクタ3との間に、力情報を取得するセンサとして力覚センサ5が設けられている。
ロボット2は、任意の座標系上で、ロボットアーム1の先端位置またはロボットアーム1の先端に取り付けられたエンドエフェクタ3の先端位置を移動させ、位置制御する。制御装置4は、エンドエフェクタ3の先端位置の位置制御を行うための制御情報をロボット2に出力する。
また、力覚センサ5を用いることにより、エンドエフェクタ3の先端位置の位置制御のみではなく、エンドエフェクタ3の力制御が可能となる。エンドエフェクタ3の力制御は、エンドエフェクタ3と周辺物体、またはエンドエフェクタ3と周辺環境との間の力の作用状態、即ち接触力を制御するものである。エンドエフェクタ3の力制御を行うことにより、ロボット2を用いた研磨作業、バリ取り作業およびコネクタ等の組み立てなど、エンドエフェクタ3とワークとの接触状態を考慮しながら行う作業が実施可能となる。
ロボットシステムには、図1に示すように、目的に応じてロボットアーム1の先端にケーブル6が取り付けられる。ケーブル6は、例えば力覚センサ5から延びるケーブル、電源供給のためのケーブル、および制御装置4から制御信号を供給するためのケーブル等である。ケーブル6は、ロボット2の動きによる巻き込みを防止する目的で、張力を緩和させて弛ませて巻きつける場合が多く、ロボットアーム1の姿勢によって重力成分が変化する。力覚センサ5の力情報には、当該ケーブル6の重力成分が加わり、誤差の要因となる。ロボットアーム1が高精度な作業を行う上で、当該誤差は問題となる。
そこで、キャリブレーション装置100は、質点モデル用いて推定したロボット2に加わる力と、力覚センサ5の力情報との差分を用いて、ニューラルネットワークのパラメータの最適化を行うキャリブレーションを行う。
ロボット2に加わる力を推定するためのモデルは、質点モデル以外の物理モデルであっても良い。質点モデル以外の物理モデルとして、例えば剛体モデルが挙げられる。
まず、キャリブレーション装置100がキャリブレーション処理を行う座標系について説明する。
図2は、実施の形態1に係るロボットシステムのロボット座標系、ワールド座標系、重力座標系およびセンサ座標系の位置関係を示す図である。
図2では、ロボットシステム内に固定されたロボット2の基準座標系として定義されるロボット座標系をΣrob、ロボットシステム内の機器に共通の座標系として定義されるワールド座標系をΣwld、重力加速度方向を−Z方向とした重力座標系をΣgrv、および力覚センサ5の基準座標系として定義されるセンサ座標系をΣsenとして示している。
キャリブレーション装置100は、図2で示したいずれの座標系を適用して処理を行ってもよい。なお、以下の説明では、キャリブレーション装置100がセンサ座標系を用いて処理を行う場合を例に説明する。
図3は、実施の形態1に係るキャリブレーション装置100の構成を示すブロック図である。
キャリブレーション装置100は、位置情報取得部101、力情報取得部102、情報記憶部103、第1の推定部104、第2の推定部105および制御量演算部106を備える。また、図3に示すように、キャリブレーション装置100には、制御装置4および力覚センサ5が接続される。また、ロボット2は制御装置4および力覚センサ5と接続される。
まず、キャリブレーション装置100の使用に当たっては、まず、位置情報取得部101、力情報取得部102、情報記憶部103、第1の推定部104および第2の推定部105が、ニューラルネットワークの中間層のパラメータの最適化処理(以下、キャリブレーション処理と記載する)を行う。
位置情報取得部101は、制御装置4からロボット2の位置情報を取得し、情報記憶部103に記憶させる。位置情報取得部101は、ロボット2の位置情報としてエンドエフェクタ3部分の位置および姿勢を示す情報を取得する。位置情報は、例えばオイラー表現されたX軸、Y軸、Z軸に対する回転3自由度である[A、B、C]を示す。力情報取得部102は、力覚センサ5の検知結果からロボット2に加わる力を示す情報(以下、力情報と記載する)を取得し、情報記憶部103に記憶させる。
キャリブレーション処理を行う際、制御装置4は、ロボット座標系、ワールド座標系、重力座標系またはセンサ座標系のうちのいずれかの座標系の原点を通る任意の回転軸を設定し、設定した回転軸周りにロボット2の姿勢を変化させる制御を行う。設定した回転軸周りにロボット2を回転させる際の回転角度量は、任意に設定される。制御装置4は、設定した回転軸および回転角度量に基づいて、位置情報および力情報を取得するためのロボット2の姿勢を決定し、ロボット2に姿勢指令値として出力する。ロボット2は、制御装置4から入力される姿勢指令値に従って、設定された回転軸周りに、設定された回転角度量回転し、姿勢を変化させる。位置情報取得部101および力情報取得部102は、姿勢が変化するロボット2の位置情報および力情報を離散的に取得し、情報記憶部103に記憶していく。位置情報取得部101および力情報取得部102が位置情報および力情報を取得するタイミングは、適宜設定可能である。情報記憶部103は、位置情報取得部101から入力される位置情報、および力情報取得部102から入力される力情報を記憶する。
第1の推定部104は、情報記憶部103に記憶された位置情報から、質点モデルを用いてロボット2に加わる力を推定し、推定力情報を取得する。質点モデルのパラメータは、1つの質点におけるエンドエフェクタ3の重量、エンドエフェクタ3の重心位置およびバイアスである。第1の推定部104は、取得した推定力情報を第2の推定部105に出力する。
第2の推定部105は、情報記憶部103に記憶された位置情報および力情報と、第1の推定部104が取得した推定力情報とを入力として、線形または非線形モデルを用いて推定力情報と力情報との差分を推定する。具体的には、第2の推定部105は、位置情報、および推定力情報と力情報との差分、でなる複数のセットを用いて、一般的なニューラルネットの学習則に基づいて学習を行う。ニューラルネットワークには、CNN(Convolutional Neural Network)またはRNN(Recurrent Neural Network)など様々な形態が存在するが、当該形態は任意に適用可能である。
図4は、実施の形態1に係るキャリブレーション装置100の第2の推定部105におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。
入力層には、情報記憶部103に記憶された位置情報[A、B、C]が入力され、出力層からは推定力情報と力情報との差分(ΔF,ΔF,ΔF,ΔM,ΔM,ΔM)が出力される。
第2の推定部105は、ニューラルネットワークの学習過程において、入力された位置情報から中間層を経て得られる出力層の出力値を、教師信号、即ち推定力情報と力情報との差分と近似させるために中間層のパラメータの最適化を行う。
なお、図4では、力覚センサ5が6軸センサであって、ロボットアーム1の移動方向、向きおよび回転を検出可能な場合を例に説明を行った。一方、力覚センサ5は3軸センサであってもよく、センサの構成は適宜設定可能である。ニューラルネットワークの出力は、力覚センサ5の構成に基づいて適宜設定される。
次に、実際にロボット2を使って作業を実施するとき(以下、通常動作時と記載する)に、キャリブレーション装置100は、位置情報取得部101、力情報取得部102、情報記憶部103、第1の推定部104、第2の推定部105および制御量演算部106が制御装置に対する指令値を演算する処理を行う。
位置情報取得部101は、通常動作時のロボット2の位置情報および力情報を取得し、情報記憶部103に記憶させる。第1の推定部104は、情報記憶部103に記憶された位置情報から、ロボット2に加わる力を推定し、推定力情報を取得する。第1の推定部104は、取得した推定力情報を制御量演算部106に出力する。
第2の推定部105は、情報記憶部103に記憶された位置情報をニューラルネットワークに入力し、推定力情報と力情報との差分を推定する。第2の推定部105は、推定した差分を制御量演算部106に出力する。制御量演算部106は、第1の推定部104から入力された推定力情報と、情報記憶部103に記憶された力情報との差分から、第2の推定部105から入力された差分を減算し、制御装置4に対する制御量を演算する。制御量演算部106は、演算した制御量を、制御装置4に出力する。制御装置4の制御部4aは、制御量演算部106から入力された制御量を用いて、ロボット2を制御する。なお、上述した図3では、キャリブレーション装置100が制御量演算部106を備える構成を示したが、当該制御量演算部106を制御装置4が備える構成としてもよい。
次に、キャリブレーション装置100のハードウェア構成例を説明する。
図5Aおよび図5Bは、キャリブレーション装置100のハードウェア構成例を示す図である。
キャリブレーション装置100における情報記憶部103は、ストレージ100aにより実現される。また、キャリブレーション装置100における位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各機能は、処理回路により実現される。即ち、キャリブレーション装置100は、上記各機能を実現するための処理回路を備える。当該処理回路は、図5Aに示すように専用のハードウェアである処理回路100bであってもよいし、図5Bに示すようにメモリ100dに格納されているプログラムを実行するプロセッサ100cであってもよい。
図5Aに示すように、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106が専用のハードウェアである場合、処理回路100bは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-programmable Gate Array)、またはこれらを組み合わせたものが該当する。位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各部の機能それぞれを処理回路で実現してもよいし、各部の機能をまとめて1つの処理回路で実現してもよい。
図5Bに示すように、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106がプロセッサ100cである場合、各部の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ100dに格納される。プロセッサ100cは、メモリ100dに記憶されたプログラムを読み出して実行することにより、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各機能を実現する。即ち、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106は、プロセッサ100cにより実行されるときに、後述する図6および図8に示す各ステップが結果的に実行されることになるプログラムを格納するためのメモリ100dを備える。また、これらのプログラムは、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の手順または方法をコンピュータに実行させるものであるとも言える。
ここで、プロセッサ100cとは、例えば、CPU(Central Processing Unit)、処理装置、演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)などのことである。
メモリ100dは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)等の不揮発性または揮発性の半導体メモリであってもよいし、ハードディスク、フレキシブルディスク等の磁気ディスクであってもよいし、ミニディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)等の光ディスクであってもよい。
なお、位置情報取得部101、力情報取得部102、第1の推定部104、第2の推定部105および制御量演算部106の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、キャリブレーション装置100における処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
次に、キャリブレーション装置100の動作について説明する。
キャリブレーション装置100の動作は、キャリブレーション処理時の動作と、通常運転時の動作とに分けて説明する。まず、図6および図7を参照しながら、キャリブレーション装置100のキャリブレーション処理時の動作について説明する。
図6は、実施の形態1に係るキャリブレーション装置100のキャリブレーション処理時の動作を示すフローチャートである。
図7は、実施の形態1に係るキャリブレーション装置100のキャリブレーション処理時のデータの流れを示す図である。
位置情報取得部101および力情報取得部102は、位置情報[A、B、C]および力情報F,F,F,M,M,Mを取得し(ステップST1)、取得した位置情報および力情報を情報記憶部103に記憶させる(ステップST2)。ステップST1およびステップST2の処理は、ロボット2の姿勢の変化に応じて、繰り返し行われる。第1の推定部104は、情報記憶部103に記憶された位置情報[A、B、C]から、ロボット2に加わる力を推定し、推定力情報を取得する(ステップST3)。第1の推定部104は取得した推定力情報を第2の推定部105に出力する。
第2の推定部105は、ステップST3で取得された推定力情報と、情報記憶部103に記憶された力情報F,F,F,M,M,Mとの差分を算出し、教師信号を取得する(ステップST4)。第2の推定部105は、情報記憶部103に記憶された位置情報[A、B、C]をニューラルネットワークの入力とし、ニューラルネットワークの出力をステップST4で取得した教師信号と近似させるための学習を行う(ステップST5)。具体的に、第2の推定部105は、ニューラルネットワークの出力を教師信号と近似させるために、ニューラルネットワークの中間層のパラメータの最適化を行う。
第2の推定部105は、推定精度が所定値を上回ったか否か判定を行う(ステップST6)。推定精度が所定値を上回っていない場合(ステップST6;NO)、フローチャートはステップST3の処理に戻り、上述した処理を繰り返し行う。一方、推定精度が所定値を上回った場合(ステップST6;YES)、キャリブレーション装置100は、キャリブレーション処理を終了する。
次に、図8および図9を参照しながら、ロボット2が通常運転している場合の、キャリブレーション装置100の動作について説明する。
図8は、ロボット2が通常運転している場合における、実施の形態1に係るキャリブレーション装置100の動作を示すフローチャートである。
図9は、ロボット2が通常運転している場合における、実施の形態1に係るキャリブレーション装置100のデータの流れを示す図である。
ロボット2が動作して姿勢が変更されると(ステップST11)、位置情報取得部101および力情報取得部102が位置情報[A、B、C]および力情報F,F,F,M,M,Mを取得する(ステップST12)。位置情報取得部101および力情報取得部102は、取得した位置情報[A、B、C]および力情報F,F,F,M,M,Mを、情報記憶部103に記憶させる。第1の推定部104は、情報記憶部103に記憶された位置情報[A、B、C]から、ロボット2に加わる力を推定し、推定力情報を取得する(ステップST13)。第1の推定部104は取得した推定力情報を制御量演算部106に出力する。
第2の推定部105は、学習済みのニューラルネットワークの入力層に、情報記憶部103に記憶された位置情報[A、B、C]を入力し、出力として差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを取得する(ステップST14)。第2の推定部105は、取得した差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを制御量演算部106に出力する。制御量演算部106は、ステップST13で取得された推定力情報と情報記憶部103に記憶された力情報F,F,F,M,M,Mとの差分を算出する(ステップST15)。制御量演算部106は、ステップST15で算出した差分から、さらにステップST14で取得した差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを減算し、制御量を算出する(ステップST16)。制御量演算部106は、ステップST16で算出した制御量を制御装置4に出力し(ステップST17)、処理を終了する。
キャリブレーション装置100によるキャリブレーション結果を、図10を参照しながら説明する。
図10は、実施の形態1に係るキャリブレーション装置100によるキャリブレーション結果を示す図である。
図10Aから図10Fにおいて、第1の線分は質点モデルを用いた力情報の推定によりキャリブレーションした結果を示し、第2の線分は質点モデルを用いた力情報の推定およびニューラルネットワークを用いて、キャリブレーションした結果を示す。
また、図10AはX軸方向の力情報F、図10BはY軸方向の力情報F、図10CはZ軸方向の力情報Fを示す。さらに、図10DはX軸周りのモーメントM、図10EはY軸周りのモーメントM、図10FはZ軸周りのモーメントMを示す。
図10は、ロボット2を移動させた際に、位置情報を、学習済みのニューラルネットワークに入力して得られる出力である差分を示している。また、図10は、ロボット2のエンドエフェクタ3がワーク等に接触していない状態で、ロボット2が移動した場合の差分を示している。そのため、図10では、差分の値が「0」に近いほど、良好なキャリブレーション結果が得られていると判断することができる。図10Aから図10Fの全てにおいて、第1の線分で示した質点モデルを用いた力情報の推定によりキャリブレーションを行った結果よりも、第2の線分で示した質点モデルを用いた力情報の推定およびニューラルネットワークを用いてキャリブレーションを行った結果の方が、より良好なキャリブレーション結果が得られている。
以上のように、この実施の形態1によれば、制御対象機器の位置および姿勢を示す位置情報を取得する位置情報取得部101と、制御対象機器に設けられた力覚センサ5の検知結果から、制御対象機器に加わる力情報を取得する力情報取得部102と、位置情報取得部101が取得した位置情報から物理モデルを用いて制御対象機器に加わる力を推定し、推定力情報を取得する第1の推定部104と、位置情報取得部101が取得した位置情報、力情報取得部102が取得した力情報、および第1の推定部104が取得した推定力情報に基づいて、線形または非線形モデルを用いて推定力情報と力情報の差分を推定する第2の推定部105とを備えるように構成したので、重力成分の推定誤差を抑制することができる。これにより、正確なキャリブレーション結果を得ることができ、精密な操作を行う装置に対して当該キャリブレーション手法を適用することができる。
また、この実施の形態1によれば、第2の推定部105は、位置情報取得部101が取得した位置情報をニューラルネットワークの入力とし、第1の推定部104が取得した推定力情報と力情報取得部102が取得した力情報との差分をニューラルネットワークの教師信号として、当該ニューラルネットワークの学習を行うように構成したので、非線形性の物理モデル化が困難な場合、または質点モデル等では物理モデル化が困難なケーブル等についても、力情報への影響を除去することができる。
実施の形態2.
上述した実施の形態1では、位置情報は、オイラー表現されたX軸、Y軸、Z軸に対する回転3自由度である[A、B、C]であることを示した。オイラー表現された位置情報は、図11に示すように、例えばX軸上を1回転する位置情報を示す場合に、0degから180degの定義域θで表現された位置情報と、0degから−180degの定義域θで表現された位置情報とで表される場合がある。この場合、定義域θと定義域θとの境界点P、即ち、180degおよび−180degの地点では、数値の折り返しが生じ、数値が連続しない、数値の不連続点となる。この実施の形態2では、オイラー表現された位置情報の定義域において、位置情報を示す数値を、不連続点を含まない表現となるように変換する構成を示す。
図12は、実施の形態2に係るキャリブレーション装置100Aの構成を示すブロック図である。
実施の形態2のキャリブレーション装置100Aは、図3で示したキャリブレーション装置100に変換部107を追加して構成している。以下では、実施の形態1に係るキャリブレーション装置100の構成要素と同一または相当する部分には、実施の形態1で使用した符号と同一の符号を付して説明を省略または簡略化する。
変換部107は、情報記憶部103に記憶された位置情報[A,B,C]に対して回転行列計算を行い、ベクトル表現に変換する。変換部107による回転行列計算は、以下の式(1)で表される。
Figure 2019087357
Figure 2019087357
なお、式(1)では、X軸を中心とした回転角度をA、Y軸を中心とした回転角度をB、Z軸を中心した回転角度をCとし、X軸を中心とした回転による座標変換を行う回転行列をRハット(A)、Y軸を中心とした回転による座標変換を行う回転行列をRハット(B)、Z軸を中心とした回転による座標変換を行う回転行列をRハット(C)とする。
また、回転行列Rハット(A)、回転行列Rハット(B)、および回転行列Rハット(C)は、以下の式(2)から式(4)で表すことができる。
Figure 2019087357

Figure 2019087357

Figure 2019087357
変換部107は、上述した回転行列計算で得られた位置情報のベクトル値r11,r12,r13,r21,r22,r23,r31,r32,r33を第2の推定部105に出力する。キャリブレーション処理を行っている場合、第2の推定部105は、変換部107から入力された位置情報のベクトル値r11,r12,r13,r21,r22,r23,r31,r32,r33を、ニューラルネットワークの入力とする。第2の推定部105は、ニューラルネットワークの出力を教師信号と近似させるため、ニューラルネットワークの中間層のパラメータの最適化を行う学習を行う。
また、ロボット2を通常動作させている場合、第2の推定部105は、変換部107から入力された位置情報のベクトル値r11,r12,r13,r21,r22,r23,r31,r32,r33を、ニューラルネットワークの入力とする。第2の推定部105は、ニューラルネットワークの出力として、実施の形態1と同様に差分(ΔF,ΔF,ΔF,ΔM,ΔM,ΔM)を取得する。
次に、キャリブレーション装置100Aのハードウェア構成例を説明する。なお、実施の形態1と同一の構成の説明は省略する。
キャリブレーション装置100Aにおける変換部107は、図5Aで示した処理回路100b、または図5Bで示したメモリ100dに格納されるプログラムを実行するプロセッサ100cである。
図13は、実施の形態2に係るキャリブレーション装置100の第2の推定部105におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。
入力層には、位置情報[A,B,C]を回転行列計算して得られた位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)が入力される。出力層からは差分(ΔF,ΔF,ΔF,ΔM,ΔM,ΔM)が出力される。第2の推定部105は、ニューラルネットワークの学習過程において、入力されたベクトル値から中間層を経て得られる出力層の出力値を、教師信号、即ち推定力情報と力情報との差分と近似させるために中間層のパラメータの最適化を行う。
なお、図13では、力覚センサ5が6軸センサであって、ロボットアーム1の移動方向、向きおよび回転を検出可能な場合を例に説明を行った。一方、力覚センサ5は3軸センサであってもよく、センサの構成は適宜設定可能である。ニューラルネットワークの出力は、力覚センサ5の構成に基づいて適宜設定される。
図14は、実施の形態2に係るキャリブレーション装置100のキャリブレーション処理時の動作を示すフローチャートである。
なお、以下では、実施の形態1に係るキャリブレーション装置100と同一のステップには図6で使用した符号と同一の符号を付し、説明を省略または簡略化する。
変換部107は、情報記憶部103に記憶された位置情報[A、B、C]を用いて回転行列計算を行い、位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を取得する(ステップST21)。変換部107は、位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を第2の推定部105に出力する。
第2の推定部105はステップST3で取得された推定力情報と、情報記憶部103に記憶された力情報F,F,F,M,M,Mとの差分を算出し、教師信号を取得する(ステップST4)。第2の推定部105は、変換部107から入力された位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)をニューラルネットワークの入力とし、ニューラルネットワークの出力をステップST4で取得した教師信号と近似させるための中間層のパラメータの最適化を行うニューラルネットワークの学習を行う(ステップST22)。その後、フローチャートはステップST6の処理に進む。
図15は、ロボット2が通常運転している場合における、実施の形態2に係るキャリブレーション装置100の動作を示すフローチャートである。
なお、以下では、実施の形態1に係るキャリブレーション装置100と同一のステップには図8で使用した符号と同一の符号を付し、説明を省略または簡略化する。
変換部107は、情報記憶部103に記憶された位置情報[A、B、C]を用いて回転行列計算を行い、位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を取得する(ステップST31)。変換部107は、取得した位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を第2の推定部105に出力する。
第2の推定部105は、学習したニューラルネットワークの入力層に、ステップST31で取得された位置情報のベクトル値(r11,r12,r13,r21,r22,r23,r31,r32,r33)を入力し、出力として差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを取得する(ステップST32)。第2の推定部105は、取得した差分ΔF,ΔF,ΔF,ΔM,ΔM,ΔMを制御量演算部106に出力する。その後、ステップST15からステップST17の処理を行う。
キャリブレーション装置100Aによるキャリブレーション結果を、図16を参照しながら説明する。
図16は、実施の形態に係るキャリブレーション装置100によるキャリブレーション結果を示す図である。
図16Aから図16Fにおいて、第1の線分は質点モデルを用いた力情報の推定によりキャリブレーションした結果を示し、第2の線分は質点モデルを用いた力情報の推定およびニューラルネットワークを用いてキャリブレーションした結果を示し、第3の線分は質点モデルを用いた力情報の推定および回転行列計算を行った後にニューラルネットワークを用いてキャリブレーションした結果を示す。
また、図16AはX軸方向の力情報F、図16BはY軸方向の力情報F、図16CはZ軸方向の力情報Fを示す。さらに、図16DはX軸周りのモーメントM、図16EはY軸周りのモーメントM、図16FはZ軸周りのモーメントMを示す。
図16は、実施の形態1と同様に、ロボット2を移動させた際に、位置情報を、学習済みのニューラルネットワークに入力して得られる出力である差分を示している。また、図16は、ロボット2のエンドエフェクタ3がワークに接触していない状態で、ロボット2が移動した場合の差分を示しているそのため、図16では、差分の値が「0」に近いほど、良好なキャリブレーション結果が得られていると判断できる。図16Aから図16Fの全てにおいて、第3の線分で示した、質点モデルを用いた力情報の推定および回転行列計算を行った後にニューラルネットワークを用いて、キャリブレーションを行った場合が、最も良好なキャリブレーション結果が得られたことを示している。
上記では、変換部107が位置情報に対して回転行列計算を行い、ベクトルに変換する場合を示したが、変換処理は回転行列計算に限定されるものではない。
変換部107には、オイラー表現された位置情報の定義域において、位置情報を示す数値の不連続点を含まない表現となるように、位置以上の数値の変換を行う処理であれば、種々適用可能である。
例えば、オイラー表現された位置情報の定義域において、図11で示した定義域θ(0degから−180deg)の角度に360degを加算し、角度範囲を180degから360degに変換する処理を適用する。これにより、図11の例で示した位置情報の定義域θと定義域θにおいて角度範囲が0degから360degとなり、定義域θと定義域θとの境界点Pにおいて数値の不連続点がなくなる。
以上のように、この実施の形態2によれば、位置情報取得部101が取得した位置情報を、不連続点を含まない連続した数値表現に変換する変換部107を備えるように構成したので、位置情報の不連続点の影響を受けることなく、位置情報の変換に対して連続したキャリブレーション処理を行うことができる。
上述した実施の形態1および実施の形態2において、位置情報取得部101が取得した位置情報、および力情報取得部102が取得した力情報を記憶する情報記憶部103を備える構成を示したが、情報記憶部103を備えない構成としてもよい。その場合、位置情報取得部101および力情報取得部102は、第1の推定部104、第2の推定部105および変換部107のうち、情報を出力すべき構成に直接情報を出力するように構成してもよい。
上述した実施の形態1および実施の形態2において、キャリブレーション処理を行う際に、位置情報取得部101が位置情報を取得し、力情報取得部102が力情報を取得し、情報記憶部103に記憶させる構成を示した。キャリブレーション装置100が、当該位置情報および力情報を取得する際に、ロボット2を等速運動で移動させる構成としてもよい。ロボット2を等速運動させることにより、慣性力の影響を考慮する必要のない情報を取得することができる。また、慣性力の影響を考慮する必要がないので、ロボット2の動作を止めることなく、位置情報および力情報を取得することができる。
また、上述した実施の形態1および実施の形態2において、キャリブレーション装置100,100Aは、ロボット2の設置環境の変化およびロボット2のエンドエフェクタ3等の経年変化等の情報に基づいて、ニューラルネットワークを更新する構成を備えてもよい。例えば、キャリブレーション装置100,100Aは、ロボット2が設置された環境の温度または湿度、エンドエフェクタ3の磨耗度合い等の制御対象機器に関する情報を取得する。第2の推定部105は、ニューラルネットワークの学習を行う際に、取得された制御対象機器に関する情報も参照してニューラルネットワークの学習を行う。
これにより、ロボット2の設置環境およびロボット2等の経年変化を考慮したニューラルネットワークの学習を行うことができ、精度の高いキャリブレーション処理を実行することができる。
上記以外にも、本発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、各実施の形態の任意の構成要素の変形、または各実施の形態の任意の構成要素の省略が可能である。
この発明に係るキャリブレーション装置は、アーム型ロボットであって、力を制御しながら作業を行うアーム型ロボットを制御するために用いられる装置であって、高精度な操作を必要となるアーム型ロボットを制御するための装置に適用可能である。
100,100A キャリブレーション装置、101 位置情報取得部、102 力情報取得部、103 情報記憶部、104 第1の推定部、105 第2の推定部、106 制御量演算部、107 変換部。
この発明に係るキャリブレーション装置は、力制御を行う装置を構成する、位置または姿勢の少なくともいずれかが変化する制御対象機器の位置および姿勢を示す位置情報を取得する位置情報取得部と、制御対象機器に設けられた力覚センサの検知結果から、制御対象機器に加わる力情報を取得する力情報取得部と、位置情報取得部が取得した位置情報から物理モデルを用いて制御対象機器に加わる力を推定し、推定力情報を取得する第1の推定部と、位置情報取得部が取得した位置情報、力情報取得部が取得した力情報、および制御対象機器が他の物体に接触していない場合に第1の推定部が取得した推定力情報に基づいて、線形または非線形モデルを用いて推定力情報と力情報の差分を推定する第2の推定部とを備え、第2の推定部は、位置情報取得部が取得した位置情報をニューラルネットワークの入力とし、第1の推定部が取得した推定力情報と力情報取得部が取得した力情報との差分をニューラルネットワークの教師信号として、当該ニューラルネットワークの学習を行う。

Claims (7)

  1. 制御対象機器の位置および姿勢を示す位置情報を取得する位置情報取得部と、
    前記制御対象機器に設けられた力覚センサの検知結果から、前記制御対象機器に加わる力情報を取得する力情報取得部と、
    前記位置情報取得部が取得した位置情報から物理モデルを用いて前記制御対象機器に加わる力を推定し、推定力情報を取得する第1の推定部と、
    前記位置情報取得部が取得した位置情報、前記力情報取得部が取得した力情報、および前記第1の推定部が取得した推定力情報に基づいて、線形または非線形モデルを推定する第2の推定部とを備えたキャリブレーション装置。
  2. 前記第2の推定部は、前記位置情報取得部が取得した位置情報をニューラルネットワークの入力とし、前記第1の推定部が取得した推定力情報と前記力情報取得部が取得した力情報との差分を前記ニューラルネットワークの教師信号として、当該ニューラルネットワークの学習を行うことを特徴とする請求項1記載のキャリブレーション装置。
  3. 前記位置情報取得部が取得した位置情報を、不連続点を含まない連続した数値表現に変換する変換部を備えたことを特徴とする請求項1記載のキャリブレーション装置。
  4. 前記位置情報取得部および前記力情報取得部は、等速運動を行う前記制御対象機器の位置情報および力情報を取得することを特徴とする請求項1記載のキャリブレーション装置。
  5. 前記第2の推定部は、前記制御対象機器に関する情報を参照し、前記線形または非線形モデルを推定することを特徴とする請求項1記載のキャリブレーション装置。
  6. 位置情報取得部が、制御対象機器の位置および姿勢を示す位置情報を取得するステップと、
    力情報取得部が、前記制御対象機器に設けられた力覚センサの検知結果から、前記制御対象機器に加わる力情報を取得するステップと、
    第1の推定部が、前記取得された位置情報から前記制御対象機器に加わる力を推定し、推定力情報を取得するステップと、
    第2の推定部が、前記取得された位置情報、前記取得された力情報、および前記取得された推定力情報に基づいて、線形または非線形モデルを推定するステップとを備えたキャリブレーション方法。
  7. 請求項1に記載のキャリブレーション装置の前記第2の推定部が推定した線形または非線形モデルの出力と、前記第1の推定部が取得した推定力情報と、前記力情報取得部が取得した力情報とから、前記制御対象機器の制御量を演算する制御量演算部と、
    前記制御量演算部が演算した制御量に基づいて、前記制御対象機器を制御する制御部とを備えた制御装置。
JP2018518548A 2017-11-02 2017-11-02 キャリブレーション装置、キャリブレーション方法および制御装置 Active JP6456555B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/039765 WO2019087357A1 (ja) 2017-11-02 2017-11-02 キャリブレーション装置、キャリブレーション方法および制御装置

Publications (2)

Publication Number Publication Date
JP6456555B1 JP6456555B1 (ja) 2019-01-23
JPWO2019087357A1 true JPWO2019087357A1 (ja) 2019-11-14

Family

ID=65037042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018518548A Active JP6456555B1 (ja) 2017-11-02 2017-11-02 キャリブレーション装置、キャリブレーション方法および制御装置

Country Status (7)

Country Link
US (1) US11298828B2 (ja)
JP (1) JP6456555B1 (ja)
KR (1) KR20200042952A (ja)
CN (1) CN111278613B (ja)
DE (1) DE112017008018B4 (ja)
TW (1) TWI654058B (ja)
WO (1) WO2019087357A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6669713B2 (ja) * 2017-11-28 2020-03-18 ファナック株式会社 ロボットおよびロボットシステム
CN112368116A (zh) * 2018-06-15 2021-02-12 优傲机器人公司 附接到机器人臂的有效载荷的估计
CN110370271B (zh) * 2019-04-30 2020-09-25 杭州亿恒科技有限公司 工业串联机器人的关节传动比误差校准方法
KR102272840B1 (ko) 2020-03-04 2021-07-06 성균관대학교산학협력단 다축 힘센서의 센서 보정을 위한 자동 다축 힘 인가 장치
DE102020106998B4 (de) 2020-03-13 2023-05-25 Gottfried Wilhelm Leibniz Universität Hannover Verfahren zum Kalibrieren eines Roboters und entsprechender Roboter
DE102020206575A1 (de) * 2020-05-26 2021-12-02 Siemens Aktiengesellschaft Prognose eines Systemzustands eines technischen Systems
JP7080507B2 (ja) * 2020-07-21 2022-06-06 株式会社トキワシステムテクノロジーズ キャリブレーション装置、キャリブレーションプログラム、キャリブレーション方法
CN112605997A (zh) * 2020-12-17 2021-04-06 哈尔滨工业大学(威海) 一种用于机械臂的主动自适应力控装置及其控制方法
DE102020134785A1 (de) 2020-12-23 2022-06-23 Infineon Technologies Ag Eine Vorrichtung und ein Verfahren zum Trainieren eines Neuronalen Netzwerks zur Bestimmung eines Drehwinkels eines Objekts und eine Vorrichtung, ein System und ein Verfahren zum Bestimmen eines Drehwinkels eines Objekts
DE102021106990A1 (de) 2021-03-22 2022-09-22 Ferrobotics Compliant Robot Technology Gmbh Kraftgeregelte Handhabungsvorrichtung für die robotergestützte Oberflächenbearbeitung
CN115847392B (zh) * 2021-09-26 2023-10-27 苏州艾利特机器人有限公司 一种力传感器空载读数补偿方法、装置及存储介质
CN114523478B (zh) * 2022-04-24 2022-06-28 季华实验室 机械臂结构参数的补偿模型获取方法和补偿方法
DE102022205011A1 (de) 2022-05-19 2023-11-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Bestimmen eines Moments für einen Betrieb eines Roboters unter Verwendung eines Modells und Verfahren zum Einlernen des Modells

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2515594B2 (ja) * 1989-07-20 1996-07-10 三菱電機株式会社 ロボットの力制御方法及び装置
JPH0683427A (ja) * 1992-09-04 1994-03-25 Japan Atom Energy Res Inst 柔軟マニピュレータの作業点位置制御システム
JPH06339884A (ja) * 1993-06-02 1994-12-13 Yaskawa Electric Corp ニューラルネットワークによるマニピュレータの逆運動学モデルの学習方法
JPH07210207A (ja) * 1994-01-17 1995-08-11 Hitachi Ltd 適応制御装置
JP3362379B2 (ja) * 1994-05-26 2003-01-07 松下電工株式会社 力制御装置における力の検出方法
JPH07319507A (ja) * 1994-05-26 1995-12-08 Bridgestone Corp ロボット制御装置
US5650704A (en) * 1995-06-29 1997-07-22 Massachusetts Institute Of Technology Elastic actuator for precise force control
JP3053606B2 (ja) * 1998-02-23 2000-06-19 ファナック株式会社 ロボットに装着された力センサのキャリブレーション方法及びロボット
DE602004012228T2 (de) * 2004-04-16 2009-03-12 Honda Research Institute Europe Gmbh Selbstkalibrierendes Orientierungssystem für ein Handhabungsgerät
EP1915963A1 (en) * 2006-10-25 2008-04-30 The European Atomic Energy Community (EURATOM), represented by the European Commission Force estimation for a minimally invasive robotic surgery system
US20100174384A1 (en) * 2008-09-04 2010-07-08 Iwalk, Inc. Hybrid terrain-adaptive lower-extremity systems
JP5618066B2 (ja) 2010-08-18 2014-11-05 株式会社Ihi 力制御ロボットのキャリブレーション装置と方法
JP2014006566A (ja) * 2012-06-21 2014-01-16 Institute Of National Colleges Of Technology Japan 組み込み知能コントローラ、制御システム、制御プログラム、記録媒体、及び制御方法
EP2890528B1 (en) * 2012-08-28 2016-03-23 Rethink Robotics Inc. Monitoring robot sensor consistency
CN104608113B (zh) * 2013-11-01 2018-07-17 精工爱普生株式会社 机器人、机器人系统以及机器人控制装置
JP6361207B2 (ja) * 2014-03-24 2018-07-25 セイコーエプソン株式会社 ロボット、ロボットシステムおよびロボット制御装置
US9769769B2 (en) 2014-06-30 2017-09-19 Microsoft Technology Licensing, Llc Detecting proximity using antenna feedback
JP6443837B2 (ja) 2014-09-29 2018-12-26 セイコーエプソン株式会社 ロボット、ロボットシステム、制御装置、及び制御方法
JP6623522B2 (ja) * 2015-01-26 2019-12-25 セイコーエプソン株式会社 ロボット、ロボットシステムおよびサーバー
DE112016002797B4 (de) * 2015-06-22 2019-12-12 Mitsubishi Electric Corporation Kalibriervorrichtung und robotersystem mit einer solchen kalibriervorrichtung
JP6668665B2 (ja) 2015-10-02 2020-03-18 株式会社Ihi ロボット装置
JP6575306B2 (ja) 2015-11-04 2019-09-18 株式会社デンソー ロボット装置
JP6665610B2 (ja) * 2016-01-08 2020-03-13 株式会社ジェイテクト モータ制御装置
US11173599B2 (en) * 2016-05-20 2021-11-16 Google Llc Machine learning methods and apparatus related to predicting motion(s) of object(s) in a robot's environment based on image(s) capturing the object(s) and based on parameter(s) for future robot movement in the environment
CN107884099B (zh) * 2016-09-30 2020-08-11 通用电气公司 校正装置、校正方法及测量系统
CN106874914B (zh) * 2017-01-12 2019-05-14 华南理工大学 一种基于深度卷积神经网络的工业机械臂视觉控制方法
JP6707485B2 (ja) * 2017-03-22 2020-06-10 株式会社東芝 物体ハンドリング装置およびその較正方法

Also Published As

Publication number Publication date
CN111278613A (zh) 2020-06-12
US11298828B2 (en) 2022-04-12
DE112017008018T5 (de) 2020-07-16
CN111278613B (zh) 2022-10-04
US20200238526A1 (en) 2020-07-30
DE112017008018B4 (de) 2021-03-04
KR20200042952A (ko) 2020-04-24
JP6456555B1 (ja) 2019-01-23
TWI654058B (zh) 2019-03-21
WO2019087357A1 (ja) 2019-05-09
TW201918347A (zh) 2019-05-16

Similar Documents

Publication Publication Date Title
JP6456555B1 (ja) キャリブレーション装置、キャリブレーション方法および制御装置
US11235461B2 (en) Controller and machine learning device
CN110799309B (zh) 具有配置相关动力学的系统的振动控制
JP6430986B2 (ja) ロボットを用いた位置決め装置
CN114450131B (zh) 机器人系统的无导数模型学习系统及设计
JP2014180704A (ja) ロボットピッキングシステム及び被加工物の製造方法
JP6698733B2 (ja) モータエンコーダ及びセンサを用いて学習制御を行うロボットシステム
KR102561103B1 (ko) 로봇 보정 시스템 및 그것의 보정 방법
EP4153387A1 (en) Simulation-in-the-loop tuning of robot parameters for system modeling and control
Lippiello et al. A position-based visual impedance control for robot manipulators
US11148285B2 (en) Operating a hand-guided robot
JP5733516B2 (ja) 移動体把持装置と方法
Qin et al. A new approach to the dynamic parameter identification of robotic manipulators
Zhang et al. Time delay compensation of a robotic arm based on multiple sensors for indirect teaching
Lippiello et al. Robot interaction control using force and vision
Angel et al. Parametric identification of a delta type parallel robot
CN113263496A (zh) 一种六自由度机械臂优化路径的方法和计算机设备
Wang et al. An adaptive controller for robotic manipulators with unknown kinematics and dynamics
Lippiello et al. Robot force/position control with force and visual feedback
Hinze et al. Nonlinear trajectory control for deformable linear objects based on physics simulation
US20190389052A1 (en) Control apparatus, robot, and robot system
Huynh et al. Dynamic Hybrid Filter for Vision‐Based Pose Estimation of a Hexa Parallel Robot
WO2024185389A1 (ja) 制御システム、制御方法、及びプログラム
JP2020121358A (ja) 学習制御装置、ロボット制御装置およびロボット
US20220301209A1 (en) Device and method for training a neural network for controlling a robot

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180409

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180409

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181029

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: 20181120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181218

R150 Certificate of patent or registration of utility model

Ref document number: 6456555

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250