JP6587761B2 - 位置制御装置及び位置制御方法 - Google Patents

位置制御装置及び位置制御方法 Download PDF

Info

Publication number
JP6587761B2
JP6587761B2 JP2018566706A JP2018566706A JP6587761B2 JP 6587761 B2 JP6587761 B2 JP 6587761B2 JP 2018566706 A JP2018566706 A JP 2018566706A JP 2018566706 A JP2018566706 A JP 2018566706A JP 6587761 B2 JP6587761 B2 JP 6587761B2
Authority
JP
Japan
Prior art keywords
image
thing
unit
control amount
neural network
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.)
Active
Application number
JP2018566706A
Other languages
English (en)
Other versions
JPWO2018146769A1 (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
Publication of JPWO2018146769A1 publication Critical patent/JPWO2018146769A1/ja
Application granted granted Critical
Publication of JP6587761B2 publication Critical patent/JP6587761B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • G05D3/12Control of position or direction using feedback
    • 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/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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching 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/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
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • G05D3/12Control of position or direction using feedback
    • G05D3/20Control of position or direction using feedback using a digital comparing device
    • 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/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • 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/39271Ann artificial neural network, ffw-nn, feedforward neural network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Description

この発明は位置制御装置及び位置制御方法に関するものである。
ロボットアームで組立動作を行う生産システムを構築する際には、ティーチングと呼ばれる人の手による教示作業を行うのが一般的である。しかし、このティーチングにおいてロボットは記憶された位置のみに対して動作を繰り返し行うため、製作や取付による誤差が発生する場合には、対応できない場合もある。そのため、この個体誤差を吸収するような位置補正技術が開発することが可能であれば、生産性の向上が期待できる上、ロボットの活躍する場面も大きくなる。
現在の技術においても、カメラ画像を用いてコネクタ挿入作業の直前までの位置補正を行う技術は存在する(特許文献1)。また、力学センサ、ステレオカメラ、等複数のデバイスを用いれば組立(挿入、ワーク保持等)に関する位置の誤差を吸収することはできる。しかし、位置補正量を決定するために、同参考文献のように把持したコネクタの中心座標、挿入する側のコネクタの中心座標などの量を明示的に画像情報から計算する必要がある。この計算はコネクタの形状に依存し、使用コネクタごとに設計者が設定しなければならない。また、3次元情報が距離カメラなどから取得できればこの計算も比較的容易であるが、2次元画像情報から取得するためにはコネクタ毎に画像処理アルゴリズムを開発する必要があるため、多くの設計コストがかかってしまう。
WO98−017444号公報
すなわち、単眼のカメラからの情報のみによって組立のための位置を制御することは難しい、という課題があった。
本発明は上記の課題を解決するためになされたものであって、単眼カメラのみで位置合わせを行うことを目的とする。
この発明に係る位置制御装置は、第1のモノを駆動部により移動させて第2のモノに組み立てるための位置制御装置において、第1のモノと第2のモノの二つのモノが存在する画像を撮像する単眼カメラの撮像部と、撮像部により撮像された複数の画像の情報が入力層に入力され、入力層に入力された複数の画像それぞれとそれぞれが対応関係にある第1のモノを移動させる移動量である、確率的勾配法等の学習則に基づき得られた制御量が出力層に出力される複数のニューラルネットワークのうち、前記撮像部が画像を最初に取得した時、出力層に出力される制御量の大きさと、各ニューラルネットワークに設定された制御量の大きさを比較し、制御量がその大きさの範囲に入っているニューラルネットワークを選択し、前記選択したニューラルネットワークの出力層に出力された制御量を、撮像部から取得した画像に存在する第1のモノと第2のモノの二つのモノのうちの第1のモノを駆動部により移動させる制御量として出力し、撮像部が2回目以降に撮像した画像を取得した画像の情報を、前回取得した画像の情報を入力層に入力したニューラルネットワークの出力層に出力された制御量の大きさに基づいて複数のニューラルネットワークから一つのニューラルネットワークを選択し、当該選択したニューラルネットワークの入力層に入力し、当該選択したニューラルネットワークの出力層に出力された制御量を、撮像部から取得した画像に存在する第1のモノと第2のモノの二つのモノのうちの第1のモノを駆動部により移動させる制御量として出力する制御パラメータ生成部を備える
この発明によれば、二つのモノが存在する画像を撮像する撮像部と、撮像された二つのモノが存在する画像の情報をニューラルネットワークの入力層に入力し、撮像された二つのモノの位置関係を制御するための位置の制御量をニューラルネットワークの出力層として出力する制御パラメータ生成部と、を備え、制御パラメータ生成部は、制御量の大きさに応じて複数のニューラルネットワークから一つを選択することで、単眼カメラのみで位置合わせを行うことができるという効果を奏する
実施の形態1におけるロボットアーム100とオス側コネクタ110、メス側コネクタ120が配置された図。 実施の形態1における位置制御装置の機能構成図。 実施の形態1における位置制御装置のハードウエア構成図。 実施の形態1における位置制御装置の位置制御におけるフローチャート。 実施の形態1における単眼カメラ102が撮影した挿入開始位置とその周辺付近でのカメラ画像と制御量を示す図の例。 実施の形態1におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図。 実施の形態1におけるニューラルネットワークにおいて、複数のネットワークをもちいたフローチャート。 実施の形態2における位置制御装置の機能構成図。 実施の形態2における位置制御装置のハードウエア構成図。 実施の形態2におけるオス側コネクタ110とメス側コネクタ120との嵌合の試行の様子を示す図。 実施の形態2における位置制御装置の経路学習におけるフローチャート。 実施の形態3における位置制御装置の経路学習におけるフローチャート。 実施の形態3におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図。
実施の形態1.
以下、この発明の実施の形態について説明する。
実施の形態1においては、各コネクタの挿入位置を学習し、生産ラインで組み立てを行うロボットアームとその位置制御方法について説明する。
構成を説明する。図1は、実施の形態1におけるロボットアーム100とオス側コネクタ110、メス側コネクタ120が配置された図である。ロボットアーム100にはオス側コネクタ110を把持する把持部101が備えられてあり、この把持部を見えるような位置に単眼カメラ102がロボットアーム100に取り付けてある。この単眼カメラ102位置は、ロボットアーム100の先端の把持部101がオス側コネクタ110を把持した際に、把持されたオス側コネクタ110の先端部と挿入される側のメス側コネクタ120が見えるように設置する。
図2は、実施の形態1における位置制御装置の機能構成図である。
図2において、図1における単眼カメラ102の機能であり、画像を撮影する撮像部201と、撮像された画像を用いてロボットアーム100の位置の制御量を生成する制御パラメータ生成部202と、位置の制御量を用いてロボットアーム100の駆動部204に対し、電流・電圧値を制御する制御部203と、制御部203から出力された電流・電圧値に基づいてロボットアーム100の位置を変更する駆動部204から構成されている。
制御パラメータ生成部202は、単眼カメラ102の機能であり、画像を撮影する撮像部201から画像を取得すると、ロボットアーム100の位置(X、Y、Z、Ax、Ay、Az)の値に対する制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を決定し、制御部203に制御量を出力する。(X,Y,Zはロボットアームの位置、Ax、Ay、Azは、ロボットアーム100の姿勢角度)
制御部203は、受け取ったロボットアーム100の位置(X、Y、Z、Ax、Ay、Az)の値に対する制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)に基づいて駆動部204を構成する各デバイスに対する電流・電圧値を決定し制御する。
駆動部204は、制御部203から受けた各デバイスに対する電流・電圧値で動作することで、ロボットアーム100が(X+ΔX、Y+ΔY、Z+ΔZ、Ax+ΔAx、Ay+ΔAy、Az+ΔAz)の位置まで移動する。
図3は、実施の形態1における位置制御装置のハードウエア構成図である。
単眼カメラ102は、入出力インターフェース301を経由してプロセッサ302、メモリ303に、有線無線に関わらず通信可能に接続される。入出力インターフェース301、プロセッサ302、メモリ303で図2における制御パラメータ生成部202の機能を構成する。入出力インターフェース301はまた、制御部203に対応する制御回路304と有線無線に関わらず通信可能に接続される。制御回路304はまた、電気的にモータ305と接続される。モータ305は、図2における駆動部204に対応し、各デバイスの位置を制御するための部品として構成される。尚、本実施の形態において、駆動部204に対応するハードウエアの形態としてモータ305としたが、位置を制御できるハードウエアであればよい。したがって、単眼カメラ102と入出力インターフェース301間、入出力インターフェース301と制御回路304間は別体として構成されていてもよい。
次に動作について説明する。
図4は、実施の形態1における位置制御装置の位置制御におけるフローチャートである。
まず、ステップS101において、ロボットアーム100の把持部101は、オス側コネクタ110を把持する。このオス側コネクタ110の位置や姿勢は図2の制御部203側で事前に登録されており、あらかじめ制御部203側に登録された制御プログラムに基づいて動作される。
次に、ステップS102において、ロボットアーム100をメス側コネクタ120の挿入位置近辺まで近づける。このメス側コネクタ120のおおよその位置や姿勢は、図2の制御部203側で事前に登録されており、あらかじめ制御部203側に登録された制御プログラムに基づいてオス側コネクタ110の位置が、動作される。
次に、ステップS103において、制御パラメータ生成部202は単眼カメラ102の撮像部201に対し、画像を撮像するよう指示し、単眼カメラ102は、把持部101が把持しているオス側コネクタ110と、挿入先となるメス側コネクタ120とが両方映っている画像を撮像する。
次に、ステップS104において、制御パラメータ生成部202は、撮像部201から画像を取得し、制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を決定する。この制御量の決定ついては、制御パラメータ生成部202は、図3のプロセッサ302、メモリ303をハードとして用いるとともに、ニューラルネットワークを用いて制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を計算する。ニューラルネットワークを用いた制御量の計算方法は後述する。
次に、ステップS105において、制御部203は、制御パラメータ生成部202が出力した制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を取得するとともに、予め決めておいた閾値と制御量のすべての成分を比較する。制御量のすべての成分が閾値以下であれば、ステップS107へ進み、制御部203は、オス側コネクタ110をメス側コネクタ120へ挿入するよう駆動部204を制御する。
制御量のいずれかの成分が閾値より大きければ、ステップS106において、制御部203は、制御パラメータ生成部202が出力した制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を用いて駆動部204を制御し、ステップS103へ戻る。
次に図4のステップS104でのニューラルネットワークを用いた制御量の計算方法について説明する。
ニューラルネットワークを用いた制御量の計算を行う前に、事前準備として、ニューラルネットワークよって入力画像から嵌合成功までの移動量が算出できるようにするため、事前に、画像と必要な移動量のセットを集める。例えば、位置が既知である嵌合状態のオス側コネクタ110とメス側コネクタ120に対し、ロボットアーム100の把持部101でオス側コネクタ110を把持する。そして、既知の引き抜き方向に把持部101を動かしながら挿入開始位置まで動かすとともに、単眼カメラ102で複数枚画像を取得する。また、挿入開始位置を制御量(0,0,0,0,0,0)として嵌合状態から挿入開始までの移動量だけではなく、その周辺の移動量、すなわち制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)とそれに対応する画像も取得する。
図5は、実施の形態1における単眼カメラ102が撮影した挿入開始位置とその周辺付近でのカメラ画像と制御量を示す図の例である。
そして、嵌合状態から挿入開始位置までの移動量と単眼カメラ102における挿入開始位置及び周辺の位置の画像からなる複数のセットを用いて、一般的なニューラルネットワークの学習則に基づき(例:確率的勾配法)学習させる。
ニューラルネットワークにはCNNやRNNなど色々な形態が存在するが、本発明はその形態に依存せず、任意の形態を使用することができる。
図6は、実施の形態1におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。
入力層には、単眼カメラ102から得られた画像(例えば各ピクセルの輝度、色差の値)が入力され、出力層は制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)が出力される。
ニューラルネットワークの学習過程において、入力された画像から中間層を経て得られた出力層の出力値が画像セットで記憶された制御量に近似させるために中間層のパラメータを最適化させることが行われる。その近似方法として確率的勾配法等がある。
したがって、図5に示すように嵌合状態から挿入開始までの移動量だけではなく、その周辺の移動とそれに対応する画像を取得して学習させることで、より正確な学習を行うことができる。
また、図5においては、オス側コネクタ110は単眼カメラ102に対して位置が固定であり、メス側コネクタ120のみの位置が変化した場合について示しているが、実際は、ロボットアーム100の把持部101が、正確な位置でオス側コネクタ110を把持するわけではなく、個体差等によって、オス側コネクタ110の位置がずれた場合も存在する。したがって、この学習の過程においてオス側コネクタ110が正確な位置からずれた場合の挿入開始位置とその付近の位置の複数の制御量と画像のセットを取得して学習することで、オス側コネクタ110とメス側コネクタ120の両方の個体差に対応できた学習が行われる。
ただし、ここで注意が必要なのは、制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)は撮影した時点の嵌合状態位置から挿入開始位置までの移動量を除いて算出するため、挿入開始位置から嵌合状態位置までの移動量については、図4のステップS107で用いるために、別途記憶する必要がある。また、上記座標は単眼カメラの座標系として求まるため、制御部203は単眼カメラの座標系とをロボットアーム100全体の座標系が異なる場合には変換したうえでロボットアーム100を制御する必要がある。
この実施例において、単眼カメラをロボットアーム100に固定しているため、メス側コネクタ120が置かれている座標系と、単眼カメラ102の座標系が異なるためである。したがって、単眼カメラ102がメス側コネクタ120の位置と同じ座標系であれば、単眼カメラ102の座標系からロボットアーム100の座標系への変換は不要となる。
次に、図4の動作の詳細と動作例について説明する、
ステップS101において、ロボットアーム100がオス側コネクタ110を把持するために、事前に登録した動作通りオス側コネクタ110を把持し、ステップS102において、メス側コネクタ120はほぼ上まで移動される。
この時に、把持しているオス側コネクタ110の把持する直前の位置が常に一定とは限らない。このオス側コネクタ110の位置をセットする機械の微妙な動作ずれ等で、微妙な誤差が常に発生している可能性がある。同様にメス側コネクタ120も何らかの誤差を持っている可能性もある。
そのため、ステップS103において、図5のようにロボットアーム100に付属している単眼カメラ102の撮像部201で撮影された画像に、オス側コネクタ110とメス側コネクタ120両方が映っている画像を取得していることが重要となる。単眼カメラ102のロボットアーム100に対する位置は常に固定されているため、オス側コネクタ110とメス側コネクタ120との相対的な位置情報がこの画像には反映されている。
ステップS104において、この相対的な位置情報を事前に学習した図6に示すようなニューラルネットワークを持つ制御パラメータ生成部202により制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)が計算される。ただし、学習の出来・不出来によっては、制御パラメータ生成部202が出力する制御量が挿入開始位置まで動作できない場合もある。その場合、ステップS103〜S106のループを複数回繰り返すことによってステップS105に示す閾値以下となるように制御パラメータ生成部202が繰り返し計算し、制御部203と駆動部204が制御してロボットアーム100の位置を制御する場合もある。
S105に示す閾値は嵌合するオス側コネクタ110とメス側コネクタ120の要求精度によって決まる。例えば、コネクタとの嵌めあいが緩く、元々コネクタの特性として精度がそこまで必要のない場合には、閾値を大きく設定できる。また逆の場合には閾値を小さく設定することになる。一般的に製造工程の場合には、製作が許容できる誤差が規定されることが多いため、この値を用いることも可能である。
また、学習の出来・不出来によっては、制御パラメータ生成部202が出力する制御量が挿入開始位置まで動作できない場合を想定すると、挿入開始位置を複数位置設定してもよい。オス側コネクタ110とメス側コネクタ120との距離を十分にとらないまま挿入開始位置を設定してしまうと挿入開始を行う前にオス側コネクタ110とメス側コネクタ120が当接し、いずれかを破損してしまうリスクも存在する。その場合は、例えばオス側コネクタ110とメス側コネクタ120とのクリアランスを最初は5mm、次は20mm、次は10mmというように、図4におけるステップS103〜ステップS106の間のループの回数に応じて挿入開始位置を設定してもよい。
尚、本実施の形態においては、コネクタを用いて説明したが、この技術の適用はコネクタの嵌合に限られない。例えば基板にICを載せる場合にも適用できるし、特に足の寸法誤差が大きいコンデンサ等を基板の穴に挿入する場合においても、同様の方法を用いれば効果を奏するものである。
また、必ずしも基板への挿入に限った話ではなく、画像と制御量の関係から制御量を求める位置制御全般に利用できる。この発明においては、ニューラルネットワークを用いて画像と制御量との関係を学習させることで、モノとモノとの位置合わせを行う際の各々の個体差を吸収できるというメリットがある。
したがって、実施の形態1において、二つのモノが存在する画像を撮像する撮像部201と、撮像された二つのモノの画像の情報をニューラルネットワークの入力層に入力し、二つのモノの位置関係を制御するための位置の制御量をニューラルネットワークの出力層として出力する制御パラメータ生成部202と、出力された位置の制御量を用いて二つのモノの位置関係を制御するための電流または電圧を制御する制御部203と、二つのモノの位置関係を制御するための電流または電圧を用いて二つのモノの位置関係の一方の位置を移動させる駆動部204を備えたので、個々のモノの個体差または二つのモノの位置関係の誤差があっても単眼カメラのみで位置合わせを行うことができるという効果がある。
今回、ニューラルネットワークを一つ使う実施例について説明したが、必要に応じて複数使用する必要が出てくる。なぜならば、今回のように入力を画像、出力を数値とした場合、この数値の近似精度には限界があり、状況によっては数%程度の誤差が出てきてしまう。図4のステップS102の挿入開始付近の位置から、挿入開始位置までの量次第では、ステップS105の判定が常にNoになってしまい動作が完了しない場合がある。そのような場合には、図7のように複数のネットワークを用いる。
図7は、実施の形態1におけるニューラルネットワークにおいて、複数のネットワークをもちいたフローチャートである。図4のステップS104の詳細ステップを示している。複数のパラメータは図2の制御パラメータ生成部に含まれている。
ステップS701において、制御パラメータ生成部202は、入力された画像に基づいてどのネットワークを用いるかを選択する。
ループ回数が1回目または得られた制御量が25mm以上の場合はニューラルネットワーク1を選択してステップS702に進む。また、ループ回数が2回目以降で得られた制御量が5mm以上25mm未満の場合はニューラルネットワーク2を選択してステップS703に進む。さらにループ回数が2回目以降で得られた制御量が5mm未満の場合はニューラルネットワーク3を選択してステップS704に進む。ステップS702〜ステップS704において選択されたニューラルネットワークを用いて制御量を算出する。
例えば、各ニューラルネットワークはオス側コネクタ110とメス側コネクタ120の距離もしくは制御量応じて学習されており、図中のニューラルネットワーク3は誤差が±1mm、±1度の範囲内の学習データを、ニューラルネットワーク2は±1〜±10mm、±1〜±5度の範囲の学習データを、と段階的に学習するデータの範囲をかえている。ここで各ニューラルネットワークにおいて使用する画像の範囲をオーバーラップさせない方が効率的である。
また、この図7では3つの例を示しているが、ネットワークの数は特に制限がない。このような方式を用いる場合には、どのネットワークを使用するのかを決めるステップS701の判別機能を「ネットワーク選択スイッチ」として用意する必要がある。
このネットワーク選択スイッチは、ニューラルネットワークでも構成できる。この場合、入力層への入力画像、出力層の出力はネットワーク番号になる。画像データは、全てのネットワークで使用している画像、ネットワーク番号のペアを使用する。
尚、複数のニューラルネットワークを用いた例についてもコネクタを用いて説明したが、この技術の適用はコネクタの嵌合に限られない。例えば基板にICを載せる場合にも適用できるし、特に足の寸法誤差が大きいコンデンサ等を基板の穴に挿入する場合においても、同様の方法を用いれば効果を奏するものである。
また、複数のニューラルネットワークを用いた例についても必ずしも基板への挿入に限った話ではなく、画像と制御量の関係から制御量を求める位置制御全般に利用できる。この発明においては、ニューラルネットワークを用いて画像と制御量との関係を学習させることで、モノとモノとの位置合わせを行う際の各々の個体差を吸収できるというメリットがあり、より、精度よく制御量を算出できる。
したがって、二つのモノが存在する画像を撮像する撮像部201と、撮像された二つのモノの画像の情報をニューラルネットワークの入力層に入力し、二つのモノの位置関係を制御するための位置の制御量をニューラルネットワークの出力層として出力する制御パラメータ生成部202と、出力された位置の制御量を用いて二つのモノの位置関係を制御するための電流または電圧を制御する制御部203と、二つのモノの位置関係を制御するための電流または電圧を用いて二つのモノの位置関係の一方の位置を移動させる駆動部204を備え、制御パラメータ生成部202は、複数のニューラルネットワークから一つを選択する構成としたので、個々のモノの個体差または二つのモノの位置関係の誤差があっても位置合わせを行うことをより精度よく行えるという効果がある。
実施の形態2.
実施の形態1においては、位置が既知である嵌合状態のオス側コネクタ110とメス側コネクタ120に対し、ロボットアーム100の把持部101でオス側コネクタ110を把持する。そして、既知の引き抜き方向に把持部101を動かしながら挿入開始位置まで動かすとともに、単眼カメラ102で複数枚画像を取得していた。実施の形態2においては、オス側コネクタ110とメス側コネクタ120の嵌合位置が未知であった場合について説明する。
ロボットが自ら学習し適切な行動を獲得する手法の先行研究として、強化学習と呼ばれる手法が研究されている。この手法では、ロボットが様々な動作を試行錯誤的に行い、良い結果を出した行動を記憶しながら結果として行動を最適化するのだが、行動の最適化のためには大量な試行回数を必要としている。
この試行回数を減らす手法として、強化学習の中で方策オン(on policy)と呼ばれる枠組みが一般的に用いられている。しかしながら、この枠組みをロボットアームのティーチングに応用するには、ロボットアームや制御信号に特化した様々な工夫を行う必要があるため困難であり、実用化までには至っていない。
実施の形態2では、実施の形態1におけるようなロボットが様々な動作を試行錯誤的に行い、良い結果を出した行動を記憶しながら結果として行動を最適化のための大量な試行回数を軽減することができる形態について説明する。
システム構成を説明する。特に記述しない部分については実施の形態1と同じである。
全体のハードウエア構成としては実施の形態1の図1と同じであるが、ロボットアーム100には把持部101にかかる負荷を計測する力覚センサ801(図1には図示していない)が付加されている点が異なる。
図8は、実施の形態2における位置制御装置の機能構成図を示す。図2との違いは、力覚センサ801、経路決定部802、が追加されており、かつ経路決定部802は、Critic部803、Actor部804、評価部805、経路設定部806から構成されている。
図9は、実施の形態2における位置制御装置のハードウエア構成図である。図3と異なるのは、力覚センサ801が入出力インターフェース301と電気的または通信可能に接続されている点のみである。また、入出力インターフェース301、プロセッサ302、メモリ303は、図8の制御パラメータ生成部202の機能を構成するとともに、経路決定部802の機能も構成する。したがって力覚センサ801と単眼カメラ102と入出力インターフェース301間、入出力インターフェース301と制御回路304間は別体として構成されていてもよい。
次に図8の詳細について説明する。
力覚センサ801は、ロボットアーム100の把持部101にかかる負荷を計測するものであり、例えば図1でいうオス側コネクタ110とメス側コネクタ120が当接した場合の力の値を計測できるものである。
Critic部803及びActor部804は、従来の強化学習でいう、Critic部、Actor部と同じである。
ここで従来の強化学習手法について説明する。本実施例では強化学習の中でもActor-Criticモデルと呼ばれるモデルを使用している(参考文献:強化学習 : R.S.Sutton and A.G.Barto 2000年12月出版)。Actor部804、Critic部803は環境の状態を撮像部201や力覚センサ801を通じて取得している。Actor部804は、センサデバイスを用いて取得した環境状態Iを入力とし、ロボットコントローラへ制御量Aを出力する関数である。Critic部803はActor部804に嵌合が適切に成功するよう、入力Iに対してActor部804が出力Aを適切に学習するための機構である。
以下、従来の強化学習手法の方式に関して記載する。
強化学習では、報酬Rと呼ばれる量を定義し、そのRを最大化するような行動AをActor部804が獲得できるようにしている。一例として、学習する作業を実施の形態1に示すようなオス側コネクタ110とメス側コネクタ120との嵌合とすると、嵌合が成功した時にR = 1, そうでない時はR = 0などと定義される。行動Aは、今回は現時点の位置(X、Y、Z、Ax、Ay、Az)からの移動補正量を示し、A =(dX、dY、dZ、dAx、dAy、dAz)である。ここで、X,Y,Zはロボットの中心部を原点とする位置座標を示し、Ax、Ay、Azは、それぞれ、X軸、Y軸、Z軸を中心とする回転量を示している。移動補正量は、現在の地点からオス側コネクタ110の嵌合について最初に試行するための嵌合開始位置からの移動量である。環境状態、すなわち試行結果の観測は撮像部201からの画像と力覚センサ801の値から得られる。
強化学習では、状態価値関数V(I)と呼ばれる関数をCritic部803で学習する。ここで、時刻t = 1(例えば嵌合試行開始時)の時に、状態I(1)にて行動A(1)をとり、時刻t = 2(例えば1回目の嵌合試行終了後2回目の嵌合開始前)の時に環境がI(2)に変化し、報酬量R(2)(初回の嵌合試行結果)を得たとする。様々な更新式が考えられるが、下記を一例として挙げる。
V(I)の更新式は以下で定義される。
Figure 0006587761
Figure 0006587761

ここで、δは予測誤差、αは学習係数であり0 〜 1までの正の実数、γは割引率であり0〜 1までの正の実数である。
Actor部804は入力をI、出力をA(I)とし以下の通り、A(I)が更新される。
δ>0の時
Figure 0006587761

δ≦0の時
Figure 0006587761

ここで、σは出力の標準偏差の値を示し、Actorは状態Iにおいて、A(I)に平均0、分散をσ2とした分布を持つ乱数を加算する。すなわち、試行の結果いかんにかかわらず、ランダムに2回目の移動補正量が決定されるようなものである。
なお、上記の更新式を一例として用いているが、Actor-Criticモデルも様々な更新式があり、上記にとらわれず一般的に使用されているモデルであれば変更が可能である。
ただし、Actor部804は上記の構成にて各状態にあった適切な行動を覚えることになるが、実施の形態1のとおりに動くのは学習が完了した時点である。学習中は経路設定部806から学習時の推奨行動が計算され受け渡されるため、学習時は制御部203に対して、経路設定部806からの移動信号をそのまま受けて制御部203が駆動部204を制御することになる。
すなわち、Actor-Criticの従来のモデルでは、嵌合が成功した時にR = 1, そうでない時はR = 0と定義されるため、嵌合が成功した時に初めて学習が行われ、かつ嵌合が成功するまでは、試行に用いられる移動補正量はランダムに与えられるため、試行の失敗度合に応じた次の試行のための移動補正量の決定は行われない。これは、Actor-Criticの従来のモデルだけでなく、Q−Learningなど他の強化学習モデルを用いても嵌合の成功と失敗そのものしか評価しないため、同様な結果となる。本発明の本実施の形態においては、この失敗度合を評価して次の試行のための移動補正量の決定するプロセスについて説明する。
評価部805は、各嵌合試行時における評価を行う関数を生成する。
図10は、実施の形態2におけるオス側コネクタ110とメス側コネクタ120との嵌合の試行の様子を示す図である。
例えば図10(A)のような画像が試行の結果として手に入ったとする。この試行では、コネクタの嵌めあい位置が大きくずれるため失敗している。この時にどの程度成功に近いのかを計測し数値化し、成功度合を示す評価値を求める。数値化の方法として、例えば図10(B)のように、画像中にて挿入先側のコネクタ表面積(ピクセル数)を計算する方法がある。この方法では、オス側コネクタ110とメス側コネクタ120の挿入失敗を、ロボットアーム100の力覚センサ801によって検知した時にメス側コネクタ120嵌合面の表面のみ他の背景とは異なる色を塗布、あるいはシールを貼ってあることによって、画像からのデータ取得と計算がより簡易になる。また、これまで述べた方法はカメラの数が一台の場合だが、複数台のカメラを並べ撮影し、撮影されたそれぞれの画像を用いた結果を総合しても構わない。 また、コネクタ表面積以外にも2次元方向(例えばX,Y方向)のピクセル数等を取得しても同様なことが評価できる。
経路設定部806は、処理として二つのステップにわかれる。
第一ステップでは、評価部805にて処理された評価結果とロボットが実施に動いた動きを学習する。ロボットの移動補正量をA、評価部805にて処理された成功度合を示す評価値をEとした時、経路設定部806はAを入力とし、Eを出力とする関数を用意し、近似する。関数としては一例としてRBF (Radial Basis Function)ネットワークが挙げられる。RBFは、様々な未知な関数を簡単に近似することが可能な関数として知られている。
例えば、k番目の入力
Figure 0006587761

に対して出力f(x)は、以下のように定義される。
Figure 0006587761
Figure 0006587761

ここで、σは標準偏差、μはRBFの中心を意味する。
RBFにて学習するデータは、単体ではなく、試行開始時から最新のデータまでの全てを用いる。例えば、現在、N回目の試行の場合には、N個のデータが準備されている。学習によって上記のW=(w_1,・・・w_J)を決める必要があり、その決定については様々な方法が考えられるが、下記のようなRBF補完が一例としてあげられる。
Figure 0006587761
Figure 0006587761

とした時に
Figure 0006587761

にて、学習が完了する。
RBF補完によって近似を終えた後は、最急降下法やPSO (Particle Swam Optimization)などの一般的な最適化手法により最小値を上記RBFネットワークにより求める。この最小値を次の推奨値として次のActor部804へ入力する。
要するに、上記事例を具体的に説明すると、失敗した時の移動補正量に対する表面積や2次元方向のピクセル数を評価値として試行回数ごとに時系列に並べてその並びの値を用いて最適解を求めるものである。もっとシンプルに2次元方向のピクセル数を減少させる方向に一定割合で移動させた移動補正量を求めてもよい。
次に動作フローを図11に示す。
図11は、実施の形態2における位置制御装置の経路学習におけるフローチャートである。
まず、ステップS1101において、ロボットアーム100の把持部101は、オス側コネクタ110を把持する。このオス側コネクタ110の位置や姿勢は図8の制御部203側で事前に登録されており、あらかじめ制御部203側に登録された制御プログラムに基づいて動作される。
次に、ステップS1102において、ロボットアーム100をメス側コネクタ120の挿入位置近辺まで近づける。このメス側コネクタ120のおおよその位置や姿勢は、図8の制御部203側で事前に登録されており、あらかじめ制御部203側に登録された制御プログラムに基づいてオス側コネクタ110の位置が、動作される。ここまでは実施の形態1における図4のフローチャートのステップS101〜S102と同じである。
次に、ステップS1103において、経路決定部802は、単眼カメラ102の撮像部201に対し、画像を撮像するよう指示し、単眼カメラ102は、把持部101が把持しているオス側コネクタ110と、挿入先となるメス側コネクタ120とが両方映っている画像を撮像する。さらに、経路決定部802は、制御部203と単眼カメラ102に対し、現在位置付近での画像を撮像するよう指示し、制御部203に指示した複数の移動値に基づいて駆動部204によって移動された位置において単眼カメラはオス側コネクタ110と、挿入先となるメス側コネクタ120とが両方映っている画像を撮像する。
次に、ステップS1104において、経路決定部802のActor部804は、嵌合を行うための移動量を制御部203に与えて駆動部204によってロボットアーム100を移動させ、オス側コネクタ110と、挿入先となるメス側コネクタ120の嵌合を試行する。
次にステップS1105において、駆動部204によってロボットアーム100を移動中にコネクタ同士が接触した場合には移動量の単位量ごとに力覚センサ801の値と、単眼カメラ102からの画像を経路決定部802の評価部805とCritic部803が記憶する。
そして、ステップS1106において嵌合が成功したかを評価部805とCritic部803が確認する。
通常、この時点では嵌合が成功しない。そのため、ステップS1108において評価部805は、成功度合を図10で説明した方法で評価し、位置合わせに対する成功度合を示す評価値を経路設定部806に与える。
そして、ステップS1109において、経路設定部806は、上述した方法を用いて学習を行い、経路設定部806は、次の推奨値をActor部804に与えるとともに、Critic部803が報酬量に応じて求めた値を出力し、Actor部804が受信する。ステップS1110において、Actor部804は、Critic部803が出力した報酬量に応じて求めた値と経路設定部806が出力した次の推奨値を加算して移動補正量を求める。尚、このステップにおいて、経路設定部806が出力した次の推奨値を用いるだけで十分な効果がある場合には、Critic部803が出力した報酬量に応じて求めた値を加算する必要がないことは言うまでもない。また、Actor部804は、移動補正量を求めるために、Critic部803が出力した報酬量に応じて求めた値と経路設定部806が出力した次の推奨値の加算比率を設定し、加算比率に応じて変更してもよい。
その後、ステップS1111において、Actor部804は、移動補正量を制御部203に与えてロボットアーム100の把持部101を移動させる。
その後、再度、ステップ1103に戻り、移動補正量によって移動された位置で画像を撮影し、嵌合動作を行う。これを成功するまで繰り返す。
嵌合が成功した場合、ステップS1107において、嵌合成功後は、嵌合成功した時のステップS1102からS1106までのIについてActor部804及びCritic部803の学習を行う。最後に経路決定部802はこの学習されたニューラルネットワークのデータを制御パラメータ生成部202に与えることで、実施の形態における動作が可能となる。
尚、上記ステップS1107において、嵌合成功した場合IについてActor部804及びCritic部803の学習を行うとしているが、嵌合試行開から成功まで全ての試行時のデータを用いてActor部804及びCritic部803が学習してもよい。その場合、実施の形態1において、制御量に応じて複数のニューラルネットワークを形成する場合について、記載しているが、嵌合の成功の位置がわかれば、嵌合成功までの距離を用いて制御量の大きさに応じた適切な複数のニューラルネットワークを同時に形成させることが可能となる。
強化学習モジュールとしてActor−Criticモデルをベースに記載したが、Q−Learningなど他の強化学習モデルを用いても構わない。
関数近似としてRBFネットワークをあげたが、他の関数近似手法(線形、二次関数、など)を用いても構わない。
評価手法として、コネクタの表面に色違いにする手法をあげたが、他の画像処理技術によりコネクタ間のずれ量等を評価手法としても構わない。
また、実施の形態1及び本実施の形態で述べたように、この技術の適用はコネクタの嵌合に限られない。例えば基板にICを載せる場合にも適用できるし、特に足の寸法誤差が大きいコンデンサ等を基板の穴に挿入する場合においても、同様の方法を用いれば効果を奏するものである。
また、必ずしも基板への挿入に限った話ではなく、画像と制御量の関係から制御量を求める位置制御全般に利用できる。この発明においては、ニューラルネットワークを用いて画像と制御量との関係を学習させることで、モノとモノとの位置合わせを行う際の各々の個体差を吸収できるというメリットがあり、より、精度よく制御量を算出できる。
したがって、本実施形態においては、制御量を学習するためにActor-Criticモデルを用いる際、Actor部804は、Critic部803が報酬量に応じて求めた値と、経路設定部806が評価値に基づいて求めた推奨値とを加算して試行するための移動補正量を求めることで、通常のActor-Criticモデルでは、位置合わせが成功するまでは非常に多くの試行錯誤数が必要だが、本発明により大幅に位置合わせの試行数を削減することが可能である。
尚、本実施の形態においては、位置合わせ失敗時の撮像部201からの画像を評価することによって位置合わせの試行回数を削減することについて記載したが、位置合わせ試行時の力覚センサ801の値を用いても試行回数を削減することができる。例えば、コネクタの嵌合または二つのモノの挿入を含む位置合わせにおいて、失敗時は力覚センサ801の値がある閾値以上になった時に二つのモノの位置が嵌合または挿入が完了している位置にあるか否かをActor部804が判断することが一般的である。その場合に、a.閾値に達した時点で嵌合または挿入途中だった場合、b.嵌合と挿入は完了しているが嵌合または挿入途中の力覚センサ801の値が、ある程度の値を示す場合なども考えられる。
a.の場合は、力覚センサ801の値と画像の両方を学習させる方法があり、詳細は実施の形態3に記載の方法を用いれば実施できる。
b.の場合も、力覚センサ801の値のみで学習する方法として実施の形態3に記載の方法を用いれば、実施できる。また、別の方法として、Actor-Criticモデルでの報酬Rの定義において、嵌合または挿入最中にかかった最大負荷をFとし、Aを正の定数とした時、成功時、R = (1-A/F), 失敗時 R = 0と定義しても同様の効果を奏することができる。
実施の形態3.
本実施の形態においては、実施の形態2において、位置合わせが成功した後に行う学習過程において効率的にデータを収集する方法について説明する。したがって特に説明しない場合については実施の形態2と同じものとする。すなわち、実施の形態3における位置制御装置の機能構成図は図8であり、ハードウエア構成図は図9となる。
動作においては、実施の形態2における図11のステップS1107の動作の際により効率的に学習データを収集する方法について以下説明する。
図12は、実施の形態3における位置制御装置の経路学習におけるフローチャートを示している。
まず、ステップS1201において、図11のステップS1107においてオス側コネクタ110とメス側コネクタ120の嵌合が成功した場合、経路設定部806は、変数をi=0, j =1, k =1 として初期化する。 変数iは、以降のロボットアーム100の学習回数、変数kは、オス側コネクタ110とメス側コネクタ120のとの嵌合が外れた時からの学習回数、変数jは図12のフローチャートのループ回数である。
次に、ステップS1202において、経路設定部806は、図11ステップS1104において嵌合を行うために与えた移動量から1mm分、戻すようにActor部804を経由して制御部203に移動量を与え、駆動部204によってロボットアーム100を移動させる。そして変数iに対して1加算する。ここで、移動量から1mm戻す指示を与えたが、必ずしも1mmに限る必要はなく、0.5mmでも2mmなどの単位量でもよい。
次に、ステップS1203において、経路設定部806はその時の座標をO(i)(この時i = 1)として記憶する。
ステップS1204において、経路設定部806はO(i)を中心に、ランダムに移動量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を決定し、Actor部804を経由して制御部203に移動量与え、駆動部204によってロボットアーム100を移動させる。この時、この移動量の最大量は、移動ができる範囲で任意に設定することができる。
次にステップS1205において、ステップS1204において移動後の位置において、Actor部804は、移動量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)に対応する力覚センサ801の値を収集するとともに、ステップS1206において、Critic部803とActor部804は、移動量に−1を乗じた(-ΔX、-ΔY、-ΔZ、-ΔAx、-ΔAy、-ΔAz)とオス側コネクタ110を保持するためにかかる力を計測する力覚センサ801のセンサ値を学習データとして記録する。
次にステップS1207において、経路設定部806は、集めたデータ数が規定数Jに到達できたかを判定する。データ数が足りなければ、ステップS1208において変数j に1加算してステップS1204に戻り、移動量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を乱数によって変えてデータを取得し、規定数J個のデータが溜まるまでS1204〜S1207繰り返す。
規定数のデータが溜まったら、ステップS1209において、経路設定部806は、変数j を1にしたうえで、ステップS1210において、オス側コネクタ110とメス側コネクタ120のとの嵌合が外れたかを確認する。
外れていなかったら、ステップS1211を経由してステップS1202に戻る。
ステップS1211において経路設定部806は、ロボットアーム100の座標を、移動量を与える前の座標O(i)に戻すようにActor部804を経由して制御部203に移動量与え、駆動部204によってロボットアーム100を移動させる。
その後、ステップS1202からステップS1210までのループをオス側コネクタ110とメス側コネクタ120のとの嵌合が外れるまで、嵌合を行うために与えた移動量から1mmもしくは単位量戻す処理と、戻した位置を中心に移動量を与えて力覚センサ801のデータを収集する処理とを繰り返す。オス側コネクタ110とメス側コネクタ120のとの嵌合が外れた場合は、ステップS1212に進む。
ステップS1212において、経路設定部806は、変数iをI(Iはオス側コネクタ110とメス側コネクタ120との嵌合が外れたと判定された時のiの値よりも大きい整数)とするとともに、嵌合を行うために与えた移動量から例えば10mm(ここもその他の値でもよい)戻すようにActor部804を経由して制御部203に移動量与え、駆動部204によってロボットアーム100を移動させる。
次に、ステップS1213において、経路設定部806は、ステップS1212で移動したロボットアーム100の座標の位置を中心位置O(i+k)として記憶する。
次に、ステップS1214において、経路設定部806は、中心位置O(i+k)を中心に、再度、ランダムに移動量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を決定した上で、Actor部804を経由して制御部203に移動量与え、駆動部204によってロボットアーム100を移動させる。
ステップS1215において、Critic部803とActor部804は、移動量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)にて移動後のロボットアーム100位置において、単眼カメラ102の撮像部201が撮像した画像を取得する。
ステップS1216において、Critic部803とActor部804は、移動量に−1を乗じた(-ΔX、-ΔY、-ΔZ、-ΔAx、-ΔAy、-ΔAz)と画像を1つの学習データとして記録する。
ステップS1217において、経路設定部806は、集めたデータ数が規定数Jに到達できたかを判定する。データ数が足りなければ、ステップS1218において変数j に1加算してステップS1214に戻り、移動量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)を乱数によって変えてデータを取得し、規定数J個のデータが溜まるまでS1214〜S1217繰り返す。
なお、S1204における移動量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)とS1204での移動量のランダム値の最大値は異なる値を取ることができる。
以上の方法で取得した学習データは、Actor部804及びCritic部803の学習を行う。
図13は実施の形態3におけるニューラルネットワークと、ニューラルネットワークの学習則の例を示す図である。
実施の形態1、2については、力覚センサ801のデータを用いた学習方法について記載していなかった。実施形態1と2は、入力層は画像のみであったのに対し、実施の形態3においては、入力層に画像に替えて力覚センサ801の値をいれればよい。力覚センサ801の値は、3つ(力と2方向のモーメント)の場合と、6つ(3方向と3方向モーメント)いずれでもよい。出力層は制御量(ΔX、ΔY、ΔZ、ΔAx、ΔAy、ΔAz)が出力される。尚、オス側コネクタ110とメス側コネクタ120との嵌合が外れている場合には、入力層に画像と力覚センサ801の値が同時に入力されることとなる。
ニューラルネットワークの学習過程において、入力された画像及び力覚センサ801の値から中間層を経て得られた出力層の出力値が画像及び力覚センサ801の値とセットで記憶された制御量に近似させるために中間層のパラメータを最適化させることが行われ、学習されることなる。
最後に経路決定部802はこの学習されたニューラルネットワークのデータを制御パラメータ生成部202に与えることで、実施の形態における動作が可能となる。
尚、本実施の形態においては、オス側コネクタ110とメス側コネクタ120との嵌合のための移動から少しずつ戻しつつ、ロボットアーム100を微小に周辺に移動させて学習させるために、嵌合がはずれるまでは単眼カメラ102の画像の画素量次第では十分学習できない前提で説明していた。
しかしながら単眼カメラ102の画像が十分高精細でロボットアーム100を微小に周辺に移動させた画像であっても十分に学習可能である場合は、単眼カメラ102の画像のみで学習してもよいし、オス側コネクタ110とメス側コネクタ120とが嵌合している場合であっても単眼カメラ102の画像と力覚センサ801の値を両方用いてもよい。
さらに、実施の形態1、2において、複数のニューラルネットワークを使用するケースについて説明している。本実施の形態においても、例えばオス側コネクタ110とメス側コネクタ120とが嵌合している状態と、オス側コネクタ110とメス側コネクタ120とが嵌合していない場合とで、ニューラルネットワークを区別してもよい。上記に説明したようにオス側コネクタ110とメス側コネクタ120とが嵌合している状態では力覚センサ801のみ入力層形成し、嵌合からはずれたら画像のみで入力層を形成した方がより精度のよい学習が行えるし、画像のみで学習させる場合でも嵌合している場合としていない場合を区別することで、画像の構成がことなるために精度よい学習が行える。
尚、実施の形態1、2で述べたように、本実施の形態にいても、この技術の適用はコネクタの嵌合に限られない。例えば基板にICを載せる場合にも適用できるし、特に足の寸法誤差が大きいコンデンサ等を基板の穴に挿入する場合おいても、同様の方法を用いれば効果を奏するものである。
また、必ずしも基板への挿入に限った話ではなく、画像と制御量の関係から制御量を求める位置制御全般に利用できる。この発明においては、ニューラルネットワークを用いて画像と制御量との関係を学習させることで、モノとモノとの位置合わせを行う際の各々の個体差を吸収できるというメリットがあり、より、精度よく制御量を算出できる。
したがって、本実施の形態においては、二つのモノについて挿入を伴う位置合わせを含む場合、制御量を学習するために、挿入状態から抜き出す際に挿入状態からの経路上とその周辺とに移動させるよう移動量を指示する経路設定部806と、移動された位置の出力層、移動された位置の力覚センサ801の値を入力層として学習させるために移動された位置と力覚センサ801の値を取得するActor部804とを、備えたので、効率的に学習データを収集することができる。
100:ロボットアーム、
101:把持部、
102:単眼カメラ
110:オス側コネクタ
120:メス側コネクタ
201:撮像部
202:制御パラメータ生成部
203:制御部
204:駆動部
301:入出力インターフェース
302:プロセッサ、
303:メモリ、
304:制御回路、
305:モータ、
801:力覚センサ
802:経路決定部
803:Critic部
804:Actor部
805:評価部
806:経路設定部

Claims (5)

  1. 第1のモノを駆動部により移動させて第2のモノに組み立てるための位置制御装置において、
    前記第1のモノと前記第2のモノの二つのモノが存在する画像を撮像する単眼カメラの撮像部と、
    前記撮像部により撮像された複数の画像の情報入力層に入力され、前記入力層に入力された複数の画像それぞれとそれぞれが対応関係にある前記第1のモノを移動させる移動量である、確率的勾配法等の学習則に基づき得られた制御量が出力層に出力される複数のニューラルネットワークのうち、前記撮像部が画像を最初に取得した時、出力層に出力される制御量の大きさと、各ニューラルネットワークに設定された制御量の大きさを比較し、制御量がその大きさの範囲に入っているニューラルネットワークを選択し、前記選択したニューラルネットワークの出力層に出力された制御量を、前記撮像部から取得した画像に存在する前記第1のモノと前記第2のモノの二つのモノのうちの前記第1のモノを前記駆動部により移動させる制御量として出力し、前記撮像部が2回目以降に撮像した画像を取得した画像の情報を、前回取得した画像の情報を入力層に入力したニューラルネットワークの出力層に出力された制御量の大きさに基づいて前記複数のニューラルネットワークから一つのニューラルネットワークを選択し、当該選択したニューラルネットワークの入力層に入力し、当該選択したニューラルネットワークの出力層に出力された制御量を、前記撮像部から取得した画像に存在する前記第1のモノと前記第2のモノの二つのモノのうちの前記第1のモノを前記駆動部により移動させる制御量として出力する制御パラメータ生成部と、
    を備え位置制御装置。
  2. 前記制御パラメータ生成部から出力された制御量を用いて、前記駆動部に対する、前記第1のモノを移動させるための電流または電圧を制御する制御部を備える請求項記載の位置制御装置。
  3. 試行時に、前記撮像部に撮像された画像の情報を入力とし、試行時最初の前記撮像部に撮像された画像の前記第1のモノの位置から、定義された報酬を最大化する移動補正量を、前記第1のモノを前記駆動部により移動させる移動制御量として出力し、前記撮像部が2回目以降に撮像した画像の前記第1のモノの位置から推奨値を用いて得られた移動補正量を、前記第1のモノを前記駆動部により移動させる移動制御量として出力するActor部と、
    記第1のモノを、前記Actor部から出力された移動制御量により移動させた時の前記第1のモノと前記第2のモノとの位置関係に基づく成功度合を示す評価値に基づい推奨値を求め、求めた推奨値を前記Actor部への推奨値として与える経路設定部を備える請求項または請求項記載の位置制御装置。
  4. 第1のモノを駆動部により移動させて第2のモノに組み立てるための位置制御方法であって、
    単眼カメラの撮像部により最初に撮像された、前記第1のモノ及び前記第2のモノの二つのモノが存在する画像の情報を、出力層に出力される制御量の大きさの範囲が異なる複数のニューラルネットワークのうちの出力層に出力される制御量の大きさの範囲が一番大きいニューラルネットワークの入力層に入力し、
    前記出力層に出力される制御量の大きさの範囲が一番大きいニューラルネットワークの入力層に入力された前記撮像部により最初に撮像された画像と対応関係にある前記第1のモノを移動させる移動量である、確率的勾配法等の学習則に基づき得られた、画像の情報との画像セットとされる制御量を前記撮像部により最初に撮像された画像に存在する前記第1のモノと前記第2のモノの二つのモノのうちの前記第1のモノを前記駆動部により移動させる制御量として前記出力層に出力される制御量の大きさの範囲が一番大きいニューラルネットワークの出力層出力され
    前記撮像部により2回目以降に撮像された、前記第1のモノ及び前記第2のモノの二つのモノが存在する画像の情報を、前回前記撮像部により撮像された画像を入力層に入力したニューラルネットワークの出力層に出力された制御量の大きさに基づいて、前記複数のニューラルネットワークのうちから一つのニューラルネットワークを選択し、選択したニューラルネットワークの入力層に入力し、
    前記選択したニューラルネットワークの入力層に入力された前記撮像部により撮像された画像と対応関係にある前記第1のモノを移動させる移動量である、確率的勾配法等の学習則に基づき得られた、画像の情報との画像セットとされる制御量を、前記撮像部により撮像された画像に存在する前記第1のモノと前記第2のモノの二つのモノのうちの前記第1のモノを前記駆動部により移動させる制御量として前記選択したニューラルネットワークの出力層に出力される位置制御方法。
  5. 第1のモノを駆動部により移動させて第2のモノに組み立てるための位置制御方法であって、
    単眼カメラの撮像部により試行時最初に撮像された、前記第1のモノ及び前記第2のモノの二つのモノが存在する画像の情報の前記第1のモノの位置から、定義された報酬を最大化する移動補正量を、前記第1のモノを前記駆動部により移動させる移動制御量として求め、
    前記第1のモノを当該求められた移動制御量により移動させた時の前記第1のモノと前記第2のモノとの位置関係に基づく成功度合を示す評価値に基づい推奨値を求め、
    当該求めた推奨値を用いて前記撮像部から試行時2回目に撮像した画像の前記第1のモノの位置からの移動補正量を、前記第1のモノを前記駆動部により移動させる移動制御量として求め
    前記撮像部が試行時3回目以降に撮像した時、前回に求められた移動制御量により前記第1のモノを移動させた時の前記第1のモノと前記第2のモノとの位置関係に基づく成功度合を示す評価値に基づいて推奨値を求め、当該求めた推奨値を用いて前記撮像部から試行時3回目以降に撮像した画像の前記第1のモノの位置からの移動補正量を、前記第1のモノを前記駆動部により移動させる移動制御量として求め、
    前記撮像部により撮像された、前記第1のモノ及び前記第2のモノの二つのモノが存在する画像の情報を、前記求められた移動制御量に基づいて出力層に出力される制御量の大きさの範囲が異なる複数のニューラルネットワークから一つのニューラルネットワークを選択し、選択したニューラルネットワークの入力層に入力し、
    前記選択したニューラルネットワークの入力層に入力された前記撮像部により撮像された画像と対応関係にある前記第1のモノを移動させる移動量である、確率的勾配法等の学習則に基づき得られた、画像の情報との画像セットとされる制御量を、前記撮像部により撮像された画像に存在する前記第1のモノと前記第2のモノの二つのモノのうちの前記第1のモノを前記駆動部により移動させる制御量として前記選択したニューラルネットワークの出力層に出力される位置制御方法。
JP2018566706A 2017-02-09 2017-02-09 位置制御装置及び位置制御方法 Active JP6587761B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/004732 WO2018146769A1 (ja) 2017-02-09 2017-02-09 位置制御装置及び位置制御方法

Publications (2)

Publication Number Publication Date
JPWO2018146769A1 JPWO2018146769A1 (ja) 2019-06-27
JP6587761B2 true JP6587761B2 (ja) 2019-10-09

Family

ID=63107958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018566706A Active JP6587761B2 (ja) 2017-02-09 2017-02-09 位置制御装置及び位置制御方法

Country Status (7)

Country Link
US (1) US11440184B2 (ja)
JP (1) JP6587761B2 (ja)
KR (1) KR102113462B1 (ja)
CN (1) CN110268358B (ja)
DE (1) DE112017007025T5 (ja)
TW (1) TWI640851B (ja)
WO (1) WO2018146769A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10427305B2 (en) * 2016-07-21 2019-10-01 Autodesk, Inc. Robotic camera control via motion capture
JP6603257B2 (ja) * 2017-03-31 2019-11-06 ファナック株式会社 行動情報学習装置、管理装置、ロボット制御システム及び行動情報学習方法
CN107292392B (zh) * 2017-05-11 2019-11-22 苏州大学 基于深度带权双q学习的大范围监控方法及监控机器人
JP7020812B2 (ja) * 2017-07-19 2022-02-16 キヤノン株式会社 ロボット装置、ロボット装置の制御方法、ロボット装置を用いた物品の組立方法、制御プログラムおよび記録媒体
US11833681B2 (en) 2018-08-24 2023-12-05 Nvidia Corporation Robotic control system
DE102019122790B4 (de) * 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
US11685052B2 (en) * 2018-09-18 2023-06-27 Kinova Inc. Vision guided robot arm and method for operating the same
US11292133B2 (en) * 2018-09-28 2022-04-05 Intel Corporation Methods and apparatus to train interdependent autonomous machines
JP6699702B2 (ja) * 2018-10-17 2020-05-27 トヨタ自動車株式会社 内燃機関の制御装置及びその制御方法、並びに内燃機関を制御するための学習モデル及びその学習方法
JP6978454B2 (ja) 2019-02-22 2021-12-08 ファナック株式会社 物体検出装置、制御装置及び物体検出用コンピュータプログラム
JP7290439B2 (ja) * 2019-03-25 2023-06-13 Ntn株式会社 嵌合作業装置
DE102019205651B3 (de) * 2019-04-18 2020-08-20 Kuka Deutschland Gmbh Verfahren und System zum Ausführen von Roboterapplikationen
JP6941305B2 (ja) * 2019-07-30 2021-09-29 株式会社安川電機 嵌合装置、嵌合方法及びプログラム
WO2021118702A1 (en) 2019-12-12 2021-06-17 Mujin, Inc. Method and computing system for performing motion planning based on image information generated by a camera
WO2021176902A1 (ja) * 2020-03-02 2021-09-10 ソニーグループ株式会社 学習処理装置、ロボット制御装置、および方法、並びにプログラム
JP7463777B2 (ja) * 2020-03-13 2024-04-09 オムロン株式会社 制御装置、学習装置、ロボットシステム、および方法
US20210352835A1 (en) * 2020-05-05 2021-11-11 Integrated Dynamics Engineering Gmbh Method for processing substrates, in particular wafers, masks or flat panel displays, with a semi-conductor industry machine
DE102020112149A1 (de) 2020-05-05 2021-11-11 Integrated Dynamics Engineering Gesellschaft mit beschränkter Haftung Verfahren zur Kontrolle von Handlingsystemen
DE102020113278A1 (de) 2020-05-15 2021-11-18 Gerhard Schubert Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung des Betriebs eines Industrieroboters
DE102020206913B4 (de) * 2020-06-03 2022-12-22 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben eines Roboters
CN111823230B (zh) * 2020-06-19 2022-01-07 山东科技大学 一种基于Scara机器人的非固定式手眼关系标定方法
WO2022002571A2 (de) 2020-07-02 2022-01-06 Sew-Eurodrive Gmbh & Co. Kg Verfahren zum betreiben eines systems und system, aufweisend einen stapel von objekten, einen roboter, einen sensor und ein aufnahmemittel
DE102020209685B4 (de) * 2020-07-31 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
US20220105626A1 (en) * 2020-10-05 2022-04-07 Autodesk, Inc. Techniques for force and torque-guided robotic assembly
CN114851184B (zh) * 2021-01-20 2023-05-09 广东技术师范大学 一种面向工业机器人的强化学习奖励值计算方法
CN113059570B (zh) * 2021-04-09 2022-05-24 华南理工大学 基于人体动态臂力估计模型的人-机器人协同控制方法
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
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
DE102021204846B4 (de) 2021-05-12 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
DE102022202144A1 (de) 2022-03-02 2023-09-07 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202143A1 (de) 2022-03-02 2023-09-07 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202145A1 (de) 2022-03-02 2023-09-07 Robert Bosch Gesellschaft mit beschränkter Haftung Roboter und Verfahren zum Steuern eines Roboters
DE102022204724A1 (de) 2022-05-13 2023-11-16 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5309525A (en) * 1990-06-14 1994-05-03 Canon Kabushiki Kaisha Image processing apparatus using neural network
JPH05318355A (ja) 1992-05-25 1993-12-03 Sony Corp 位置補正方法及び位置補正装置
CN1072374C (zh) * 1995-08-07 2001-10-03 货款接收机公司 用人工神经网络对硬币的有效性进行图形识别的装置
EP0884141B1 (en) 1996-10-24 2006-07-19 Fanuc Ltd Force control robot system with visual sensor for inserting work
TW444499B (en) * 1998-12-31 2001-07-01 Tsai Ching Yuan Binocular mechanical head monitoring system
JP3876234B2 (ja) * 2003-06-17 2007-01-31 ファナック株式会社 コネクタ把持装置、同装置を備えたコネクタ検査システム及びコネクタ接続システム
JP2005125475A (ja) 2003-10-24 2005-05-19 Sunao Kitamura 一回の成功試行で最良経路を学習するアーキテクチャ
KR20050073964A (ko) * 2004-01-12 2005-07-18 고종선 동기전동기를 이용한 위치 제어장치 및 방법
US7454388B2 (en) * 2005-05-07 2008-11-18 Thaler Stephen L Device for the autonomous bootstrapping of useful information
CN101396829A (zh) 2007-09-29 2009-04-01 株式会社Ihi 机器人装置的控制方法以及机器人装置
CN100524108C (zh) * 2007-11-19 2009-08-05 北京理工大学 一种基于小波神经网络的视觉反馈控制方法
JP5427658B2 (ja) 2010-03-16 2014-02-26 パナソニック株式会社 コンパレータのオフセット補正装置
FI20106090A0 (fi) * 2010-10-21 2010-10-21 Zenrobotics Oy Menetelmä kohdeobjektin kuvien suodattamiseksi robottijärjestelmässä
JP5744587B2 (ja) * 2011-03-24 2015-07-08 キヤノン株式会社 ロボット制御装置、ロボット制御方法、プログラム及び記録媒体
JP5869406B2 (ja) 2012-03-30 2016-02-24 株式会社大気社 熱交換システム、及び、コントローラ
US20140025613A1 (en) * 2012-07-20 2014-01-23 Filip Ponulak Apparatus and methods for reinforcement learning in large populations of artificial spiking neurons
TWI492008B (zh) * 2013-11-01 2015-07-11 Ind Tech Res Inst 工作機械控制系統及其方法
JP6427972B2 (ja) 2014-06-12 2018-11-28 セイコーエプソン株式会社 ロボット、ロボットシステム及び制御装置
CN105430255A (zh) * 2014-09-16 2016-03-23 精工爱普生株式会社 图像处理装置以及机器人系统
JP2016185572A (ja) * 2015-03-27 2016-10-27 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP6517567B2 (ja) * 2015-03-31 2019-05-22 日本電産サンキョー株式会社 サーボモータ制御装置及び衝突検出方法
DE112016003350T5 (de) * 2015-07-24 2018-04-05 Google Llc Kontinuierliche steuerung mit tiefem bestärkendem lernen

Also Published As

Publication number Publication date
US11440184B2 (en) 2022-09-13
KR20190102250A (ko) 2019-09-03
WO2018146769A1 (ja) 2018-08-16
DE112017007025T5 (de) 2019-10-24
CN110268358B (zh) 2022-11-04
US20200030970A1 (en) 2020-01-30
TW201830183A (zh) 2018-08-16
TWI640851B (zh) 2018-11-11
KR102113462B1 (ko) 2020-05-21
JPWO2018146769A1 (ja) 2019-06-27
CN110268358A (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
JP6587761B2 (ja) 位置制御装置及び位置制御方法
JP6376296B1 (ja) 位置制御装置及び位置制御方法
JP6458912B1 (ja) 位置制御装置及び位置制御方法
JP5852364B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
CN107015530B (zh) 模拟装置以及模拟方法
CN112109075A (zh) 控制系统和控制方法
JP6985532B2 (ja) データ処理方法及び装置、電子機器並びに記憶媒体
CN112757284A (zh) 机器人控制装置、方法和存储介质
WO2021085561A1 (ja) 学習データ生成方法
CN111203871A (zh) 使用独立致动视觉系统的机器人操纵
CN113878588B (zh) 面向卡扣式连接的基于触觉反馈的机器人柔顺装配方法
CN113927602A (zh) 基于视、触觉融合的机器人精密装配控制方法及系统
CN110942083A (zh) 拍摄装置以及拍摄系统
CN113954076B (zh) 基于跨模态预测装配场景的机器人精密装配方法
Graae et al. Stereoscopic vision for a humanoid robot using genetic programming
JP7323057B2 (ja) 制御装置、制御方法、および、制御プログラム
KR100469622B1 (ko) 푸시브룸 영상에 대한 에피폴라 기하모델의 획득방법
CN115070761A (zh) 机器人示教方法、示教设备及计算机可读存储介质
JP6285765B2 (ja) 情報処理装置、情報処理方法
Liu Three-Dimensional Hand Tracking and Surface-Geometry Measurement for a Robot-Vision System
Howden et al. Hand-eye coordinated learning using hierarchical space tessellation
Cozzi et al. A Parallel Noise-Robust Algorithm to Recover Depth Information from Radial Flow Fields

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190206

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190206

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190522

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190910

R150 Certificate of patent or registration of utility model

Ref document number: 6587761

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