JP2015100877A - ロボット制御方法、及びロボット制御装置 - Google Patents

ロボット制御方法、及びロボット制御装置 Download PDF

Info

Publication number
JP2015100877A
JP2015100877A JP2013242722A JP2013242722A JP2015100877A JP 2015100877 A JP2015100877 A JP 2015100877A JP 2013242722 A JP2013242722 A JP 2013242722A JP 2013242722 A JP2013242722 A JP 2013242722A JP 2015100877 A JP2015100877 A JP 2015100877A
Authority
JP
Japan
Prior art keywords
trajectory
compensator
evaluation value
robot
learning
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
JP2013242722A
Other languages
English (en)
Other versions
JP6347595B2 (ja
Inventor
根岸 真人
Masato Negishi
真人 根岸
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013242722A priority Critical patent/JP6347595B2/ja
Priority to EP14192205.4A priority patent/EP2875913A3/en
Priority to US14/550,632 priority patent/US9592605B2/en
Priority to CN201410685590.6A priority patent/CN104647387B/zh
Publication of JP2015100877A publication Critical patent/JP2015100877A/ja
Priority to US15/418,194 priority patent/US20170136623A1/en
Application granted granted Critical
Publication of JP6347595B2 publication Critical patent/JP6347595B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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/41Servomotor, servo controller till figures
    • G05B2219/41177Repetitive control, adaptive, previous error during actual positioning
    • 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/42Servomotor, servo controller kind till VSS
    • G05B2219/42124Change over between two controllers, transfer error signal
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/27Arm part
    • Y10S901/28Joint

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】軌道誤差を小さくすることが可能で、学習速度を短縮化することも可能なロボット制御方法を提供する。
【解決手段】目標とする目標軌道xと実際の軌道yとの軌道誤差eを評価した評価値Eを計算する。計算した評価値Eが最良評価値Ebestよりも良い評価の場合に、それを最良評価値Ebestとして更新して保存し、その際の指令軌道uを最良指令軌道ubestとして更新して保存する。計算した評価値Eが最良評価値Ebestよりも悪い評価の場合に、補正軌道Δuk+1を計算する補償器を別の補償器に変更して補正軌道Δuk+1を計算し、その補正軌道Δuk+1と最良指令軌道ubestとにより次回の指令軌道uk+1を計算する。
【選択図】図3

Description

本発明は、指令軌道と実際の軌道との軌道誤差に基づき指令軌道を学習制御し得るロボット制御方法及びロボット制御装置に関する。
近年、人間の手のように複雑で高速な組立を実現するためのロボットを有するロボットシステムの開発が進められている。ロボットは、指令軌道を指令することで目標通りに駆動されることが理想的であるが、現実には指令軌道と実際の軌道とには軌道誤差が生じてしまう。しかもロボットを高速に駆動するほど、軌道誤差が大きくなるという問題がある。
このような軌道誤差を小さくするために、前回の動作結果を基に次の動作結果を学習する学習制御を行うものが提案されている(特許文献1参照)。この特許文献1のものは、指令軌道により駆動したロボットの実際の軌道をセンサ等で測定し、指令軌道と実際の軌道との軌道誤差からPID補償器を用いて補正軌道を計算し、指令軌道に補正軌道を加えて次回の指令軌道とする。このように、指令軌道がロボットを駆動する毎に学習されることで、ロボットの実際の軌道を目標に近づけようとしている。ロボットによる組立作業は、繰り返し動作が基本であるので、このような学習による改善効果を見込みやすい。
特開2001−182785号公報
しかしながら、上記特許文献1のものであっても、軌道誤差を小さくできないという問題がある。即ち、軌道誤差が生じる原因としては、サーボ制御系の遅れとロボット振動とが挙げられる。ロボットの関節を動かす制御系、つまりサーボ制御系は、有限の制御帯域を持つので、指令軌道に追従できない軌道誤差が存在する。また、ロボットの関節や本体の剛性には上限があり、ロボットが動くと必ず固有振動数で振動することになるため、軌道誤差が生じる。特に振動により生じる軌道誤差の特徴は、固有振動数付近の振幅が大きいことと、入力に対する出力の位相が180度変化することである。
通常、サーボ制御系の安定性を確保するため、制御帯域はロボットの固有振動数以下に設計する。その結果、低周波についてはサーボ制御系の遅れ、高周波についてはロボット振動、が主要な誤差要因となる。この事情は学習制御の制御ループでも同じである。学習制御の安定性を確保するため制御帯域はロボットの固有振動数以下に設計する。その結果、ロボット振動は学習制御の制御帯域を超えてしまうので、ロボット振動による軌道誤差を小さくすることが困難であり、特許文献1のような学習制御を行っても軌道誤差を小さくできない。
また、別の制御方法としてロボットをモデル化し、その逆モデルをそのまま学習制御に用いる補償器に組み込む方法も考えられる。しかし、実際のモデル化には誤差が存在し、その悪影響が必ず残る。これはスピルオーバ問題として知られている。従って、ロボット振動を低減する補償器の設計が困難なので、このような学習制御を実行しても軌道誤差を小さくできない。
そして、以上のような軌道誤差を小さくできないという問題の対応策として、補償器のゲインを下げて学習制御を安定化する方法も考えられる。しかし、ゲインを下げると軌道誤差の改善が遅くなり、学習回数が多くかかって、つまり学習速度が遅くなってしまうという問題がある。また、学習制御では、実際の軌道を測定する時に混入するノイズなどの影響で、軌道誤差が前回より悪化する場合もある。この場合も、特許文献1のような学習制御では、悪化した状態から学習制御が続くので、学習回数が多くかかって、つまり学習速度が遅くなるという問題がある。
そこで本発明は、軌道誤差を小さくすることが可能で、学習速度を短縮化することも可能なロボット制御方法及びロボット制御装置を提供することを目的とするものである。
本発明は、制御部が、ロボットを指令軌道により駆動制御し、駆動された前記ロボットの実際の軌道を検出し、目標とする目標軌道と前記実際の軌道との軌道誤差に基づき前記指令軌道を学習制御し得るロボット制御方法において、前記制御部が、前記軌道誤差を評価した評価値を計算する評価計算工程と、前記制御部が、前記学習制御を実行する学習制御工程と、を備え、前記学習制御工程として、前記制御部が、前記評価計算工程で計算した評価値が記憶部に記憶されている評価値よりも良い評価の場合に、前記記憶部の評価値を前記計算した評価値に更新して保存し、かつ前記記憶部の指令軌道を前記軌道誤差を評価した際の前記指令軌道に更新して保存する良状態保存工程と、前記制御部が、前記評価計算工程で計算した評価値が前記記憶部に記憶されている評価値よりも悪い評価の場合に、前記軌道誤差から前記指令軌道の補正量を計算する複数の補償器のうち、現在選択されている補償器と異なる計算を行う補償器に選択を変更する補償器変更工程と、選択されている補償器により前記記憶部に保存されている指令軌道の補正量を計算し、計算した補正量と前記記憶部に保存されている指令軌道とにより次回の指令軌道を計算する次軌道計算工程と、を有することを特徴とする。
また本発明は、ロボットを指令軌道により駆動制御し、駆動された前記ロボットの実際の軌道を検出し、目標とする目標軌道と前記実際の軌道との軌道誤差に基づき前記指令軌道を学習制御し得るロボット制御装置において、前記軌道誤差を評価した評価値を計算し、かつ前記学習制御を実行する制御部と、前記評価値と前記指令軌道とを記憶可能な記憶部と、を備え、前記制御部は、前記学習制御にあって、前記計算した評価値が前記記憶部に記憶されている評価値よりも良い評価の場合に、前記記憶部の評価値を前記計算した評価値に更新して保存し、かつ前記記憶部の指令軌道を前記軌道誤差を評価した際の前記指令軌道に更新して保存し、前記計算した評価値が前記記憶部に記憶されている評価値よりも悪い評価の場合に、前記軌道誤差から前記指令軌道の補正量を計算する複数の補償器のうち、現在選択されている補償器と異なる計算を行う補償器に選択を変更し、選択されている補償器により前記記憶部に保存されている指令軌道の補正量を計算し、計算した補正量と前記記憶部に保存されている指令軌道とにより次回の指令軌道を計算することを特徴とする。
本発明によれば、軌道誤差の評価値が記憶部に記憶されている評価値よりも良くなると、その際の指令軌道が保存されるので、記憶されている指令軌道がより良い指令軌道に更新されていき、指令軌道が悪くなることを防止することができる。また、軌道誤差の評価値が悪くなると、その際の指令軌道を保存せずに、指令軌道の補正量を計算する補償器を別の補償器に変更するので、低周波や高周波などの異なる制御帯域に順次対応することができ、更なる学習効果を見込むことができる。これにより、学習制御を重ねていくことで、軌道誤差を改善していくことができ、軌道誤差を小さくすることができる。
また、例えばフィードバック制御理論上で不安定な補償器により学習し続けると、学習結果としての指令軌道が発振し、つまり学習制御が不安定になる虞がある。しかし、本発明によれば、評価値が悪くなると別の補償器に変更されるので学習制御が不安定になることを防止でき、それによって、補償器の安定性を気にすることなく、様々な補償器の選択を可能とすることができる。
さらに、例えばノイズなどの原因で突然、軌道誤差が前回より悪くなった場合に、その際の指令軌道を保存して学習制御を続けてしまうと、指令軌道が悪くなった状態から学習制御を続けることになり、学習の進み方が遅くなる虞がある。しかし本発明によれば、悪くなった指令軌道を次回の学習に用いることがなく、常に良い状態の指令軌道を用いて学習制御を続けることができるので、つまり評価値が悪くなっても次の学習には影響せず、学習速度が遅くなることを防止できる。
そして、本発明によれば、例えば最初は不安定だが収束が早い、つまりゲインの高い補償器を選択し、評価値が悪くなるとゲインを低い補償器を選択する、といった補償器の変更が可能となる。これにより、学習速度を短縮化することが可能となる。
ロボット装置の概略構成を示す説明図。 ロボット制御装置の構成を示すブロック図。 第1の実施の形態に係る学習制御を示すブロック図。 第1の実施の形態に係る学習制御を示すフローチャート。 シミュレーションにおける制御対象のステップ応答を示す図。 シミュレーションにおける目標軌道と実際の軌道を示す図。 シミュレーションにおける学習1回目の軌道誤差を示す図。 シミュレーションにおける学習2回目の軌道誤差を示す図。 シミュレーションにおける学習3回目の軌道誤差を示す図。 シミュレーションにおける学習4回目の軌道誤差を示す図。 シミュレーションにおける学習5回目の軌道誤差を示す図。 第2の実施の形態に係る学習制御を示すブロック図。 第2の実施の形態に係る学習制御のパラメータ及び補償器番号の変更部分を示すフローチャート。 第3の実施の形態に係る学習制御を示すブロック図。 第4の実施の形態に係る学習制御を示すフローチャート。
<第1の実施の形態>
以下、本発明に係る第1の実施の形態を、図1乃至図11に沿って説明する。まず、ロボット装置の概略構成について説明する。図1に示すように、ロボット装置100は、多関節ロボットとしてのロボットアーム(ロボット)200と、ロボットアーム200を制御するロボット制御装置300と、を備えている。また、ロボット装置100は、ロボット制御装置300に複数の教示点のデータを送信する教示装置としてのティーチングペンダント400を備えている。ティーチングペンダント400は、人が操作するものであり、ロボットアーム200やロボット制御装置300の動作を指定するのに用いる。
ロボットアーム200は、本実施の形態では、例えば6関節ロボットである。ロボットアーム200は、各関節J1〜J6を各関節軸A1〜A6まわりにそれぞれ回転駆動する複数(6つ)のアクチュエータ201〜206を有している。ロボットアーム200は、可動範囲の中であれば任意の3次元位置で任意の3方向の姿勢に手先(ロボットアームの先端)を向けることができる。一般に、ロボットアーム200の位置と姿勢は、座標系で表現することができる。図1中のToはロボットアーム200の台座に固定した座標系を表し、Teはロボットアーム200の手先に固定した座標系を表す。
本実施の形態では、各アクチュエータ201〜206は、電動モータ211〜216と電動モータ211〜216に接続された減速機221〜226とからなる。各減速機221〜226は、不図示のベルトやベアリング等を介してそれぞれの関節J1〜J6で駆動するフレームに接続されている。なお、各アクチュエータ201〜206の構成は、これに限定するものではなく、例えば人工筋肉等であってもよい。また、例えば各減速機221〜226には、エンコーダ等の回転検出センサが配置されており、関節の角度を検出できる。各関節J1〜J6の角度が検出できれば、手先の位置や姿勢を計算でき、ロボットアーム200の実際の軌道が検出できる。
ロボットアーム200は、更に、各アクチュエータ201〜206の電動モータ211〜216を駆動制御する駆動制御部としてのサーボ制御部230を有している。サーボ制御部230は、入力した指令軌道に基づき、各関節J1〜J6の位置が指令軌道に追従するよう、各電動モータ211〜216に電流指令を出力し、各電動モータ211〜216の動作を制御する。なお、本実施の形態ではサーボ制御部230を1つの制御装置で構成しているものを説明しているが、各電動モータ211〜216にそれぞれ対応したサーボ制御部を備えていてもよい。
また、図1には4つの教示点p,p,p,pを示している。ロボットアーム200を最初に駆動する際、これらの教示点は、例えば人がティーチングペンダント400を用いて与える。ここで、教示点はいわゆる3次元空間内の点ではない。ロボットを関節空間で移動させる場合では、教示点は関節角度である。タスク空間移動の場合では、教示点は3次元空間の位置および姿勢であり、これは図1のように、p,p,p,pを座標系として表現される。つまり教示点はいわゆる3次元空間内の点ではなく、1つのベクトルとして理解できる。
ロボット制御装置300は、コンピュータであり、教示点を結ぶ軌道、すなわち教示点を補間した目標軌道xを生成する。本明細書では、ティーチングペンダント400等により教示された教示点を用いて初期に設定した軌道を目標とするため、これを目標軌道x(図1には点線で示す)、サーボ制御部230に指令する軌道を指令軌道uと呼ぶ。また、目標軌道に従って動かす動作時間をTとする。教示点はベクトルだったので、目標軌道xはベクトルの時系列データ、すなわち2次元の配列データである。
ロボットアーム200の関節の角度は、ロボット制御装置300から目標軌道を指令されたサーボ制御部230で制御する。サーボ制御部230は指令軌道uを入力とし、ロボットアーム200を動作させ、動作結果である実際の軌道yを出力する。実際の軌道yは目標軌道xと同じベクトルの時系列データ、すなわち2次元の配列データである。なお、目標軌道xは、各関節に対し、関節角度で与えてもよいし、直交座標系の座標値で与えてもよい。
ついで、ロボット制御装置300の概略構成を図2に沿って説明する。ロボット制御装置300は、制御部としてのCPU301と、記憶部としてのROM302、RAM303、HDD(ハードディスクドライブ)304、記録ディスクドライブ(記録媒体)305と、各種のインタフェース306〜309と、を備えている。
CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305及び各種のインタフェース306〜309が、バス310を介して接続されている。ROM302には、CPU301を動作させるためのプログラム330が格納されている。このプログラム330は、ロボット制御プログラムを含み、詳しくは後述する各部(図3参照)に各種演算処理を実行させるためのプログラムである。RAM303は、CPU301の演算処理結果などを一時的に記憶可能な記憶部である。HDD304は、演算処理結果や各種のデータ(最良指令軌道や最良評価値を含む)を記憶するための記憶部である。
ティーチングペンダント400はインタフェース306に接続されており、CPU301はインタフェース306及びバス310を介してティーチングペンダント400からの教示点のデータの入力を受ける。
サーボ制御部230は、インタフェース309に接続されており、CPU301は、目標軌道のデータを所定時間間隔でバス310及びインタフェース309を介してサーボ制御部230に出力する。
インタフェース307には、モニタ321が接続されており、モニタ321には、各種画像が表示される。インタフェース308は、書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置322が接続可能に構成されている。記録ディスクドライブ305は、記録ディスク(記録媒体)331に記録された各種データやプログラム等を読み出すことができる。なお、本発明に係るプログラムが記録される記録媒体としては、記録ディスク331だけに限らず、外部記憶装置322などの不揮発性メモリや外付けHDD等も含まれる。
つづいて、本実施の形態に係る学習制御について図3乃至図11に沿って説明する。まず、図3に沿って学習制御を行う各部の作用について説明する。なお、図3中の記号kは、第k回目まで学習が進んだ場面を表現している。記号kは初期値をゼロとする学習回数である。
図3に示すように、ロボット制御装置300は、CPU301によりプログラム330が機能することで構成される各部として、軌道誤差計算部1、評価値計算部2、評価値判定部3、最良評価値保存部4、最良軌道誤差保存部5を備えている。さらに、各部として、最良指令軌道保存部6、補償器番号更新部7、補償器切換え部8、指令計算部9、前回の指令軌道保存部10、学習回数更新部11を備えている。
上記軌道誤差計算部1は、目標軌道xと実際の軌道yとの軌道誤差eを下記数式(1)のように計算する。なお、この軌道誤差eも、目標軌道xや実際の軌道yと同様、ベクトルの時系列データ、すなわち2次元の配列データである。
Figure 2015100877
上記評価値計算部2は、軌道誤差eから評価値Eを計算する。この評価値Eは、例えば標準偏差を計算する関数をstdevとし、次の数式(2)で計算する。
Figure 2015100877
なお、評価値Eの計算は、簡単な計算となるPV値(peak to valley)を用い、次の数式(3)で計算してもよい。
Figure 2015100877
上記評価値判定部3は、後述する最良評価値Ebestと評価値Eを比較し、評価結果qを出力する。評価結果qは評価値Eが最良評価値Ebestよりもさらに良い値(良い評価)であるか、悪い値(悪い評価)であるか、つまり改善したか悪化したかの2つの値をとる変数である。上記最良評価値保存部4は、評価結果qが改善していたら(良い評価の場合)、評価値Eを最良評価値Ebestとして保存する。上記最良軌道誤差保存部5は、評価結果qが改善していたら(良い評価の場合)、軌道誤差eを最良軌道誤差ebestとして保存する。上記最良指令軌道保存部6は、評価結果qが改善していたら(良い評価の場合)、前回の指令軌道保存部10で保存しておいた前回の指令軌道uを最良指令軌道ubestとして更新して保存する。
上記補償器番号更新部7は、評価結果qが改善していたら前回と同じ補償器番号mを出力し、評価結果qが悪化していたら補償器番号mを更新して出力する。補償器番号mの更新は、例えば1から順番に1ずつ増やしていき、全部の補償器を選択したら、また1に戻る。
上記補償器切換え部8は、補償器を識別する補償器番号mに従って補償器を切り換え、最良軌道誤差ebestに補償器を作用させ、下記数式(4)に示すように補正軌道(補正量)Δuk+1を出力する。なお、最良軌道誤差ebest及び補正軌道Δuk+1も、ベクトルの時系列データ、すなわち2次元の配列データである。
Figure 2015100877
ここで、補償器としては下記に例示する(1)〜(8)のものが挙げられる。
(1)比例補償器
Figure 2015100877
なお、Γ1は比例ゲインと呼ばれる定数である。
(2)積分補償器
Figure 2015100877
なお、Γ2は積分ゲインと呼ばれる定数である。
(3)微分補償器
Figure 2015100877
なお、Γ3は微分ゲインと呼ばれる定数である。
(4)PID補償器
上記(1)〜(3)の補償器を合わせたPID補償器である。
Figure 2015100877
(5)ローパスフィルタ(LPF:Low Pass Filter)
低い周波数を通過させるフィルタである。1次のLPFは下記数式(9)の伝達関数で定義される。
Figure 2015100877
なお、fはカットオフ周波数、sはラプラス変換のsである。この伝達関数T(s)を実現するフィルタを設計する手法は双1次変換などが知られている。具体的な設計手法の説明は省略し、ここでは結果のみ、下記数式(10)のように記述する。これは、カットオフ周波数をパラメータに含んだ計算式である。
Figure 2015100877
(6)2階微分補償器
Figure 2015100877
なお、目標軌道xが位置で与えられる場合、2階微分は加速度に相当する。この補償器は加速度をフィードバックすることに相当する。加速度フィードバックは周波数が高いほうがフィードバックする量が大きいので、特にロボットの振動抑制に有効である。Γσは定数である。
(7)時間遅れ補償器、時間進み補償器
Figure 2015100877
この補償器は、最良軌道誤差ebestの時間をずらして補正軌道Δuk+1とする。ここで、tは時間をずらす量である。マイナスにすると時間遅れ補償となり、プラスだと時間進み補償となる。動作時間である0からTの範囲を超えると軌道誤差をゼロとして扱う。ロボットの振動する周波数がほぼ一定と考えられる場合、tを振動周期に合わせることによって振動抑制が可能となる。
(8)ノッチフィルタ(Notch filter)
特定の周波数成分だけ通過させないフィルタであり、下記数式(13)の伝達関数で定義される。
Figure 2015100877
なお、fは阻止周波数、Q値は急峻さを表す無次元数、sはラプラス変換のsである。この伝達関数T(s)を実現するフィルタを設計する手法は双1次変換などが知られている。具体的な設計手法の説明は省略し、ここでは結果のみ、下記数式(14)のように記述する。これは阻止周波数fとQ値をパラメータに含んだ計算式である。
Figure 2015100877
なお、fをロボットの振動周波数に合わせることにより、補正軌道Δuk+1が振動の影響で大きくなるのを防ぐことができる。
上記指令計算部9は、補正軌道Δuk+1と、最良指令軌道ubestを加え、次回の指令軌道uk+1を下記数式(15)のように計算する。なお、次回の指令軌道なので学習の回数を表す添え字kには1をプラスし、k+1である。
Figure 2015100877
上記前回の指令軌道保存部10は、この次回の指令軌道uk+1を保存する。保存した次回の指令軌道uk+1は、次回のロボットアーム200の駆動後、その際の評価値Ek+1が最良評価値Ebestよりも良くなった場合に、上記最良指令軌道保存部6で使用することになる。上記サーボ制御部230は、指令軌道uk+1に基づいてロボットアーム200を動作させ、動作結果として実際の軌道yk+1を出力する。そして、上記学習回数更新部11は、学習回数を表す添え字kの値を1増やし、つまり学習回数のカウントを実行する。
次に、本実施の形態に係る学習制御の動作を図4のフローチャートに沿って説明する。このフローチャートは、同じ目標軌道xに従ってロボットアーム200を繰り返し何度も動作させる際のうちの1回の動作を示している。この動作の回数は、学習回数kで表し、初回はk=0とする。
ロボットアーム200の駆動を開始し、本実施の形態に係る学習制御を開始すると、まず、ロボットアーム200の駆動が初回であるか否か(S1)を判定する。初回である場合は(S1のY)、ステップS2に進み、それ以外である場合は(S1のN)、ステップS3に進む。
例えばロボットアーム200の駆動が初回であって、ステップS2に進むと、最初の指令軌道u及び最良指令軌道ubestを目標軌道xとする(u=x、ubest=x)。また、現時点での最良評価値Ebestを悪い値、具体的には大きな数字や無限大に設定する(Ebest=∞)。さらに、補償器番号mを1に設定する(m=1)。続いて、ステップS15に進み、指令軌道uを次回の学習制御における前回の指令軌道として保存しておく。そして、ステップS16において、指令軌道u(サーボ制御部230に入力)によってロボットアーム200の動作を実行し、実際の軌道y(出力)を得る。そして、ステップS17において、学習回数kに1を加えて(k=k+1)、1回目のロボットアーム200の動作を終了する。
ロボットアーム200の動作が2回目以降となると(S1のN)、ステップS3に進み、学習中であるか否か、即ち学習回数kが設定回数kmaxを超えたか否かを判定する。ここで、学習回数kが設定回数kmaxを超えている場合には、詳しくは後述するように補償器による指令軌道の計算が改善しないぐらいに学習が進んでいるはずであるので、ステップS4に進む(学習中断工程)。ステップS4では、指令軌道uk+1を記憶部に保存されている最良指令軌道ubestに設定する(uk+1=ubest)。そして、ステップS15〜S17に進み、念のため、指令軌道uk+1を前回の指令軌道として保存しておき、実際にロボットアーム200の指令軌道uk+1(つまり最良指令軌道ubest)で駆動し、学習回数kに1加えて、終了する。
一方、ステップS3において、学習中であると判定した場合は(S3のY)、ステップS5に進み、まず、軌道誤差計算部1で目標軌道xと前回の実際の軌道yとの軌道誤差eを計算する(e=x−y)。ついで、評価値計算部2で、軌道誤差eから評価値Eを計算する(評価計算工程)(S6)。
次に、学習制御工程に入る。まず、評価値判定部3で、計算した評価値Eと最良評価値Ebestを比較することで、評価値Eが改善しているか否かを判定し(S7)、評価結果qを出力する。評価値Eが最良評価値Ebestよりも改善している場合は(S7のY)、ステップS8に進み、評価値Eが最良評価値Ebestよりも悪化している場合は(S7のN)、ステップS11に進む。なお、ロボットアーム200の動作が2回目である場合(k=1)は、初回に最良評価値Ebestが無限大等に設定されているため、確実に評価値Eが改善することになり、ステップS8に進むことになる。
ステップS8では、評価値Eが最良評価値Ebestよりも改善しているので、最良評価値保存部4で、評価値Eを最良評価値Ebestとして更新して保存する(良状態保存工程)。続いて、ステップS9では、最良軌道誤差保存部5で、前回より改善している軌道誤差eを最良軌道誤差ebestとして更新して保存する。また、ステップS10では、最良指令軌道保存部6で、前回より改善している指令軌道uを最良指令軌道ubestとして更新して保存する(良状態保存工程)。
一方、ステップS11では、評価値Eが最良評価値Ebestよりも悪化しているので、補償器番号更新部7で、補償器番号mを1つずつ増やして更新する(補償器変更工程)。そして、ステップS12では、補償器切換え部8で、補償器番号mに従って補償器を選択する(補償器変更工程)。即ち、評価値Eが最良評価値Ebestよりも改善している場合は、ステップS11を通らず、補償器番号mを更新することがないので、補償器は変わらないことになる。一方、評価値Eが最良評価値Ebestよりも悪化している場合は、ステップS11において補償器番号mが更新されているので、現在選択されている補償器と異なる計算を行う補償器に切換えられることになる。
ステップS13においては、補償器切換え部8で、最良軌道誤差ebestに補償器を作用させ、補正軌道Δuk+1を計算して出力する(次軌道計算工程)。続いて、ステップS14では、指令計算部9で、最良指令軌道ubestに補正軌道Δuk+1を加えて次回の指令軌道uk+1を計算する(次軌道計算工程)。
その後は、上述したステップS15に進み、指令軌道uk+1を次回の学習制御における前回の指令軌道として保存しておく。そして、ステップS16において、指令軌道uk+1(サーボ制御部230に入力)によってロボットアーム200の動作を実行し、実際の軌道yk+1(出力)を得る。そして、ステップS17において、学習回数kに1を加えて(k=k+1)(カウント工程)、k回目のロボットアーム200の動作を終了する。
ついで、本実施の形態に係る学習制御のシミュレーションについて図4のフローチャートを参照しつつ説明する。ここでのシミュレーションは、理解を容易にするため、制御対象を1軸の回転関節で考える。なお、回転関節でなく、直動関節の場合であっても、同じシミュレーションとなる。指令軌道uに対する応答結果である出力軌道yは下記数式(16)で示す伝達関数で表現できるものとする。
Figure 2015100877
なお、数式(16)は2次遅れとして知られている伝達関数である。wは固有振動周波数、ζは臨界減衰係数比と呼ばれる。この伝達関数はロボットアームの振動を模擬した特性を与える。
本シミュレーションでは、周波数5Hz、即ちw=2πf=10π、ζ=0.1とした。このときのステップ応答を図5に示す。この制御対象の応答は、図5のように振動しながら目標の1に近づいていく。実際のロボットの目標軌道はこのようなステップではなく、滑らかな軌道が用いられる。本シミュレーションでは後述するように、2秒間で100度動く5次曲線を用いた。
まず、ステップS2の初期設定で初回の指令軌道uを5次曲線で与える目標軌道xにセットし、ステップS16でロボット動作を実行する。指令軌道uに対する出力軌道yを上記数式(16)で計算した結果を図6に示す。このスケールのグラフでは両者はほとんど重なって見える。
しかしステップS17で学習回数をk=1に更新し、軌道誤差eをステップS5で計算すると図7が得られ、まだ軌道誤差eが大きいことが分かる。また、指令軌道uに対して出力軌道yは遅れるので、軌道誤差eはプラスである。
評価値として標準偏差を採用し、ステップS6で計算するとE=0.243が得られる。この評価値を図7の右上に示した。最良評価値EbestはステップS2により最悪値(無限大)に初期設定されていたのでステップS7では改善したと判定する。その結果、ステップS8〜S10により最良評価値Ebestとして評価値E、最良軌道誤差ebestとして軌道誤差e、最良指令軌道ubestとして指令軌道uが保存される。
最初の補償器はゲイン1の比例補償器とした。この補償器は低周波誤差に対して有効だが、高周波誤差に対しては発振しやすい性質を持っている。ステップS12,S13で補正軌道Δuを計算し、ステップS14で次回の指令軌道uを計算する。そして、ステップS17で学習回数をk=2に更新する。
続いて、指令軌道uに対する応答結果である出力軌道yを上記数式(16)で計算し、ステップS5,S6で軌道誤差eと評価値Eを計算すると図8が得られる。評価値はE=0.021なので、かなり改善された。ステップS7では再び改善したと判定し、前回と同じ比例補償器を用いステップS13,S14で次回の指令軌道uを計算し、ステップS17で学習回数をk=3に更新する。
さらに、指令軌道uに対する応答結果である出力軌道yを上記数式(16)で計算し、ステップS5,S6で軌道誤差eと評価値Eを計算すると図9が得られる。評価値はE=0.084なので今回は悪化した。特に高周波の振動成分が目立つが、これはロボットアームの固有振動数を模擬した5Hzの振動成分が励振されたためである。つまり、これは学習制御の結果、かえって軌道誤差が悪化してしまう場合が存在することを示している。図示しないが、同じ補償器で学習を続けてもさらに悪化する。これは従来の学習制御ように同じ補償器で学習を続けると軌道誤差が悪化することを示している。
しかし、本実施の形態では次のように動作する。ステップS7において評価値Eが悪化したと判定し、ステップS11において補償器番号をm=2に更新する。本シミュレーションにおいて2番目の補償器は、カットオフ周波数を1Hzに設定したローパスフィルタと80msの時間進み補償の時間に設定した時間進み補償器とを直列につなげた補償器とした。
ここで、ローパスフィルタのカットオフ周波数は制御対象の固有周波数よりも低い必要がある。そうでない場合、ローパスフィルタで制御対象の固有振動を十分減衰させることができないからである。また、時間進み補償の時間は制御対象の固有振動の振動周期より短い必要がある。そうでないと制御対象の振動波形の次の山に重なり、進み補償の効果がなくなってしまうからである。従って、本シミュレーションでは、ローパスフィルタのカットオフ周波数は制御対象の固有振動数5Hzよりも低い1Hzとし、時間進み補償の時間は制御対象の固有振動の振動周期200msよりも小さい80msとした。なお、詳しくは後述する第2の実施の形態で説明するように、カットオフ周波数や時間進み補償の時間をパラメータとして探索する場合は、これらの数字を予め正確に決める必要はない。
なお、本実施の形態では、軌道誤差eが悪化した場合に、その際の指令軌道uは用いずに最良指令軌道ubestを用いるので、どのような補償器で計算しても誤差が増幅されることはなく、安定性が保証される。そのため、このように複数の計算式(補償器)を組み合わせて指令軌道の計算を行っても問題ない。
このようにローパスフィルタと時間進み補償器とを直列的に接続した補償器を用い、ステップS13,S14で次回の指令軌道uを計算する。この際、悪化した時の軌道誤差eや指令軌道uは用いず、指令軌道uの計算には最良軌道誤差ebest及び最良指令軌道ubestを用いたことが重要である。つまり悪化した結果が次の学習にも悪影響を与えることは無い。そして、ステップS17で学習回数をk=4に更新する。
続いて、指令軌道uに対する応答結果である出力軌道yを上記数式(16)で計算し、ステップS5,S6で軌道誤差eと評価値Eを計算すると図10が得られる。評価値はE=0.009なのでかなり改善した。すると、ステップS7において改善したと判定し、前回(第4回目)と同じ補償器を用い、ステップS13,S14で次回(第5回目)の指令軌道uを計算し、ステップS17で学習回数をk=5に更新する。
そして、指令軌道uに対する応答結果である出力軌道yを上記数式(16)で計算し、ステップS5,S6で軌道誤差eと評価値Eを計算すると図11が得られる。評価値はE=0.006なのでさらに改善した。
このように本シミュレーションによると、最初の評価値E=0.243は比例補償器による学習制御によりE=0.021まで改善できたが、その後は悪化した。しかし、その後に効果のある他の補償器に自動的に切り替わりE=0.006まで改善できた。
上述のように本シミュレーションでは補償器を変更したことで学習結果が改善した。ここで、仮に補償器を変更しても学習結果が改善しなかった場合でも、ステップS7で改善したと判定されるまで、ステップS11により次々と別の補償器を選択し、改善する補償器を探索することになる。そして、ステップS3で学習回数が設定回数を超えたか否かを判定し、超えたらその後はステップS4によりそれまでに学習できた最良指令軌道ubestを常に用いることになる。設定回数は、補償器の探索が終了し、何れの補償器を用いても学習結果が改善しなくなるような程度の回数に設定すると好ましい。
以上のように本ロボット制御装置300によれば、軌道誤差eの評価値Eが記憶部(例えばRAM303)に記憶されている最良評価値Ebestよりも良くなると、その際の指令軌道uが保存される。このため、記憶されている最良指令軌道ubestがより良い指令軌道に更新されていき、学習によって指令軌道が悪くなることを防止することができる。また、軌道誤差eの評価値Eが最良評価値Ebestより悪くなると、その際の指令軌道uを保存せずに、指令軌道uk+1の補正軌道Δuk+1を計算する補償器を別の補償器に変更する。そのため、低周波や高周波などの異なる制御帯域に順次対応することができ、更なる学習効果を見込むことができる。これにより、学習制御を重ねていくことで、軌道誤差eを改善していくことができ、軌道誤差eを小さくすることができる。
また、例えばフィードバック制御理論上で不安定な補償器により学習し続けると、学習結果としての指令軌道が発振し、つまり学習制御が不安定になる虞がある。しかし、本ロボット制御装置300によれば、評価値Eが悪くなると別の補償器に変更されるので学習制御が不安定になることを防止でき、それによって、補償器の安定性を気にすることなく、様々な補償器の選択を可能とすることができる。
さらに、例えばノイズなどの原因で突然、軌道誤差eが前回より悪くなった場合に、その際の指令軌道uを保存して学習制御を続けてしまうと、指令軌道uが悪くなった状態から学習制御を続けることになり、学習の進み方が遅くなる虞がある。しかし本ロボット制御装置300によれば、悪くなった指令軌道uを次回の学習に用いることがなく、常に最良指令軌道ubestを用いて学習制御を続けることができる。そのため、つまり評価値Eが悪くなっても次の学習には影響せず、学習速度が遅くなることを防止できる。
そして、本ロボット制御装置300によれば、例えば最初は不安定だが収束が早い、つまりゲインの高い補償器を選択し、評価値Eが悪くなるとゲインを低い補償器を選択する、といった補償器の変更が可能となる。これにより、学習速度を短縮化することが可能となる。
また、比例補償器は低い周波数に対して有効だが、高い周波数に対しては不安定になる。一方、高い周波数に対して有効な補償器は、ローパスフィルタと時間すすみ補償器とを直列的に接続した補償器であるが、低い周波数に対しては効果が少なく、学習回数が多くかかる。そこで、本ロボット制御装置300では、当初は補償器として比例補償器を採用し、補償器を変更する際にローパスフィルタと時間すすみ補償器とを接続した補償器を選択する。これにより、低周波成分は早めに補正され、その後に残った高周波成分が補正されるので効率が良く、従って学習速度を速くすることができる。なお、補償器の順番を逆にしてしまうと、比例補償器では高周波成分が悪化するので、学習効果があまり無い。
そして、本ロボット制御装置300では、学習している間、補償器を変更していくので、補償器の選び方によっては新たに計算する指令軌道が改善せず、ロボットアーム200が改善しない動作を繰り返す虞がある。そこで学習回数に上限としての設定回数を設け、これを超えたら学習を停止することで、改善しない動作の繰り返しが防止できる。学習が停止している間は、最良指令軌道で動作させるので、良好な動作が継続するはずである。
ついで、第1の実施の形態を一部変更した第2の実施の形態について図12及び図13に沿って説明する。本第2の実施の形態は、上記第1の実施の形態に比して、補償器のパラメータの探索を追加したものである。従来の学習制御の補償器では、使うパラメータ、例えば補償器のゲイン等を、予め決めておく必要があった。しかし、どの値が適切なのかは不明である。このパラメータの良し悪しは学習制御の性能を左右する。例えばゲインを大きな値にすれば、学習回数を少なくできるが、その半面、安定性が損なわれて発振し、学習制御が成り立たなくなる。このようにパラメータを適切な値にすべきなのは当然のことであるが、学習制御では適切な値が不明なので、学習制御の性能を引き出せているとは言えない。また、ロボットの場合、ロボットの姿勢や動かし方によって運動特性が大きく変化する。このため、すこし条件を変えただけでも適切なパラメータ値を検討しなおす必要があり、これは大変な手間である。つまり実質的に適切なパラメータ値を求めることも困難である。本第2の実施の形態では、これらの問題を解決する。
補償器は、計算式と計算式に含まれるパラメータとから構成されおり、上記数式(4)で説明した補償器は、下記数式(17)次のように示すことができる。
Figure 2015100877
ここで、pは、第m補償器のパラメータを表す。補償器の種類によって、パラメータは複数ある場合もある。例えばPID補償器では、比例ゲイン、積分ゲイン、微分ゲインの3つのパラメータがある。
図12に示すように、本第2の実施の形態においては、補償器パラメータ探索部14を備えている。詳しくは後述するように、本実施の形態では、補償器パラメータ探索部14で補償器の計算式に含まれるパラメータpを最適化し、最適化が完了したら、補償器番号更新部7で補償器番号mを更新し、補償器の計算式を変更する。
続いて、第2の実施の形態における学習制御の動作を図13に沿って説明する。なお、図13に示すフローチャートは、図4に示すフローチャートのステップS11を置き換えるものである。ステップS11以外の部分は、図4のものを引用して説明する。また、図13において、一点鎖線で囲った部分は、それぞれ補償器パラメータ探索部14による制御、補償器番号更新部7による制御を示している。
第1の実施の形態と同様に、評価値判定部3による評価結果qが改善した場合は、ステップS7からステップS8〜S10に進み、補償器番号mやパラメータpが変わらないので、ステップS12において、前回と同じ補償器を選択する(図4参照)。一方、評価結果qが悪化した場合は、ステップS7から図13のステップS11−1に進む。
ステップS11−1に進むと、探索方向dの値がプラスであるかマイナスであるかを判定する。探索方向dがプラスならステップS11−2に、マイナスならステップS11−5に進む。なお、探索方向dの初期値はプラスに設定されている。
ステップS11−2では、パラメータpの値が予め定めた探索範囲以内(範囲内)であるか否かを判定する。パラメータpが探索範囲以内である場合は、ステップS11−3に進み、パラメータpが探索範囲以内でない場合は、ステップS11−4に進む。なお、予め定めた探索範囲とは、各種パラメータの上限値と下限値である。
ステップS11−3では、パラメータpに予め定めたパラメータの刻み幅Δpを加えて、パラメータpをプラス方向に更新する。そして、ステップS12以降に進み、選択されている補償器のパラメータpをプラス方向に更新した補償器で、当該補償器による計算を行い、指令軌道uk+1を計算する。
一方、上記ステップS11−2において、パラメータpが探索範囲以内でない場合は、ステップS11−4に進み、探索方向をマイナス方向に変更して(d=マイナスにして)、ステップS11−1に戻る。ここでは、探索方向がマイナスであるので、ステップS11−5に進み、パラメータpの値が予め定めた探索範囲以内であるか否かを判定する。ここで、パラメータpが探索範囲以内である場合は、ステップS11−6に進み、パラメータpから予め定めたパラメータの刻み幅Δpを減じて、パラメータpをマイナス方向に更新する。そして、ステップS12以降に進み、選択されている補償器のパラメータpをマイナス方向に更新した補償器で、当該補償器による計算を行い、指令軌道uk+1を計算する。
また、ステップS11−5において、パラメータpが探索範囲以内でない場合は、ステップS11−7に進み、全パラメータを探索し終わっているか否かを判定する。全パラメータの探索が終わっていない場合は、ステップS11−8に進み、探索するパラメータの種類を変更して、探索方向dを初期値であるプラスにセットする。そして、上記ステップS11−1に戻り、つまり別のパラメータの探索を開始する。
ステップS11−7において、全パラメータの探索が終わっていると判定された場合は、ステップS11−9に進む。ここで、第m補償器の計算式に含まれる全パラメータの探索が終わっていることになるので、補償器番号mを更新し(m=m+1)、ステップS11−10に進む。ステップS11−10では、全部の補償器の選択が終わっているか否かを判定する。全部の補償器の選択が終わっていない場合は、上記ステップS11−1に戻り、つまり別の補償器に切り換えて、その補償器のパラメータの探索を開始する。そして、全部の補償器の選択が終わっている場合(実行済の場合)は、ステップS11−11に進み、補償器番号を初期値(m=1)に戻し、上記ステップS11−1に戻り、再び異なる補償器におけるパラメータの探索をやり直す。
このように図13のフローチャートに従って動作させると、補償器番号mと第m補償器のパラメータpの探索が実行されて、適切な値が決まる。そして、その補償器番号m及び探索されたパラメータpを用いて、順次、補正軌道を計算する。
なお、上記以外の動作は、第1の実施形態と同じなので説明を省略する。
また、選択した補償器でロボットを動作させた評価値Eは悪化してもかまわない。前述したように、評価値Eが悪化したら別の補償器に自動的に切り替わるので、安定性も気にすることなく、様々なパラメータについて探索することができる。
このように第2の実施の形態によれば、学習制御に必要な補償器の計算式に含まれるパラメータが不明でも、軌道誤差の評価値を改善するように自動調整することができる。
<第3の実施の形態>
ついで、第1の実施の形態を一部変更した第3の実施の形態を図14に沿って説明する。本第3の実施の形態のものは、上記第1の実施の形態に比して、最良指令軌道ubestの保存手法を変更したものである。本第3の実施の形態では、前回の補正軌道を保存しておき、悪化したら元に戻して、それを最良指令軌道ubestとすることで、結果的に最良指令軌道ubestを保存しておく手法のものである。
図14に示すように、本第3の実施の形態では、前回の補正軌道保存部12と最良指令軌道計算部13とを備えている。前回の補正軌道保存部12は、補正軌道Δuを保存する。最良指令軌道計算部13は、評価結果qが改善したら、第1の実施の形態と同じように、前回の指令軌道uを最良指令軌道ubestとする(ubest=u)。また、評価結果qが悪化していたら前回の指令軌道uから前回の補正軌道Δuを差し引いて最良指令軌道ubestとする(ubest=u−Δu)。このように、悪化した原因である補正軌道Δuを差し引くので、結局、最良指令軌道ubestが得られる。
なお、上記以外の動作は、第1の実施形態と同じなので説明を省略する。本第3の実施の形態では、前回の補正軌道を保存することによって、最良指令軌道を保存するのと同じ作用と効果がある。
<第4の実施の形態>
ついで、第1の実施の形態を一部変更した第4の実施の形態を図15に沿って説明する。本第4の実施の形態は、上記第1の実施の形態に比して、評価値に所定の上限値を設け、この上限値を超えたら学習制御を再開する機能を追加したものである。
図15に示すように、図4のフローチャートに対して、ステップS5で軌道誤差eを計算し、ステップS6で評価値Eを計算した後に、ステップS20〜S22を設けた。ステップS20では、学習回数kがあらかじめ設定した最大の設定回数kmaxを超えているか否かを判定する。学習回数kが設定回数kmaxを超えていない場合は、学習中なのでそのままステップS7に進む。一方、学習回数kが設定回数kmaxを超えている場合は、学習は停止中であるのでステップS21に進む。
ステップS21に進むと、評価値Eが上限値Emaxを超えたか否かを判定する。評価値Eが上限値Emaxを超えていない場合は、そのまま学習を停止中にするので、ステップS4に進み、第1の実施の形態の場合と同様に最良指令軌道ubestを用いた駆動を継続する。
一方、評価値Eが上限値Emaxを超えた場合は、学習を再開するため、ステップS22に進む。ステップS22では、あらかじめ更新する増加回数Δkを例えば10回と決めておき、学習の設定回数kmaxを増加回数Δkだけ増やして更新する(kmax=kmax+Δk)(学習再開工程)。そして、学習を再開するのでステップS7に進む。なお、ステップS7以降の処理は、第1の実施の形態の場合と同じなので説明を省略する。
以上のように第3の実施の形態によると、学習が停止していてもステップS21で評価値Eを監視し続け、もし評価値Eが悪化したらステップS22で学習回数を更新して学習を再開する。これにより、例えば温度などの環境の変化によってロボットアームの特性が変わると軌道誤差eが悪化する場合があるが、軌道誤差eが悪化すると、自動的に学習を再開して誤差を低減できる。
なお、上記以外の動作は、第1の実施形態と同じなので説明を省略する。
なお、以上説明した本実施の形態においては、回転関節を駆動する例を説明したが、直動関節でも同じである。
また、本実施の形態においては、関節に対する目標軌道x、実際の軌道yとして説明したが、これをロボットの手先の位置姿勢に対する目標軌道、実際の軌道として置き換えても同じことである。この場合、サーボ制御部230はロボットアームの手先の位置姿勢の入力に対し、各関節の角度を計算、即ち逆機構計算してロボットアームを動作させる。また、動作結果は、得られた各関節の角度からロボットの手先の位置姿勢を計算、即ち順機構計算して、それを出力とすることができる。
また、本実施の形態においては、6関節ロボットを一例に説明したが、関節の数はどのような数であってもよいし、それら関節が回転関節であっても直動関節であっても構わない。
また、本実施の形態においては、目標軌道と実際の軌道を位置ベクトルの時系列データとして説明した。ここで、ロボットアームの軌道は、位置ではなく速度で与える場合も考えられるが、学習制御にとっては同じ扱いである。この場合、サーボ制御部230は速度の入力に対し、動作結果として、得られた速度を出力とすることができる。また、同様に目標軌道を位置ではなく加速度の時系列データで与える場合も考えられるが、学習制御にとっては同じ処理である。
また、第1、第3、第4の実施の形態においては、補償器のパラメータの探索を行う点について記載していないが、パラメータの異なる補償器を多数個準備しておき、補償器番号を変更していくことでも、パラメータの探索と同じ効果を得ることができる。
200…ロボット(ロボットアーム):300…ロボット制御装置、コンピュータ:301…制御部(CPU):303…記憶部(RAM):331…記録媒体(記録ディスク):E…評価値:e…軌道誤差:p…パラメータ:u…指令軌道:Δu…補正量(補正軌道):x…目標軌道:y…実際の軌道

Claims (8)

  1. 制御部が、ロボットを指令軌道により駆動制御し、駆動された前記ロボットの実際の軌道を検出し、目標とする目標軌道と前記実際の軌道との軌道誤差に基づき前記指令軌道を学習制御し得るロボット制御方法において、
    前記制御部が、前記軌道誤差を評価した評価値を計算する評価計算工程と、
    前記制御部が、前記学習制御を実行する学習制御工程と、を備え、
    前記学習制御工程として、
    前記制御部が、前記評価計算工程で計算した評価値が記憶部に記憶されている評価値よりも良い評価の場合に、前記記憶部の評価値を前記計算した評価値に更新して保存し、かつ前記記憶部の指令軌道を前記軌道誤差を評価した際の前記指令軌道に更新して保存する良状態保存工程と、
    前記制御部が、前記評価計算工程で計算した評価値が前記記憶部に記憶されている評価値よりも悪い評価の場合に、前記軌道誤差から前記指令軌道の補正量を計算する複数の補償器のうち、現在選択されている補償器と異なる計算を行う補償器に選択を変更する補償器変更工程と、
    選択されている補償器により前記記憶部に保存されている指令軌道の補正量を計算し、計算した補正量と前記記憶部に保存されている指令軌道とにより次回の指令軌道を計算する次軌道計算工程と、を有する、
    ことを特徴とするロボット制御方法。
  2. 前記補償器変更工程において、前記制御部が、現在選択されている補償器と異なる計算を行う補償器に変更する際、補償器における計算式とパラメータとのうち、予め定めた範囲内で前記パラメータの変更を行い、前記範囲内での前記パラメータの変更が全て実行済である場合、前記計算式の変更を行う、
    ことを特徴とする請求項1に記載のロボット制御方法。
  3. 前記複数の補償器には、少なくとも比例補償器、ローパスフィルタ、時間進み補償器を含み、
    前記補償器変更工程において、前記制御部が、前記学習制御の当初では前記比例補償器を選択し、前記比例補償器と異なる計算を行う補償器に変更する際、前記ローパスフィルタと前記時間進み補償器とを直列的に接続した補償器に変更すると共に、前記ローパスフィルタのカットオフ周波数を前記ロボットの固有振動周波数よりも低く、かつ前記時間進み補償器の進み時間を前記ロボットの固有振動の振動周期よりも短く設定する、
    ことを特徴とする請求項1に記載のロボット制御方法。
  4. 前記制御部が、前記学習制御工程により前記学習制御を実行した回数をカウントするカウント工程と、
    前記制御部が、前記カウント工程によりカウントされた回数が設定回数を超えた場合に、前記学習制御を中断し、前記記憶部に記憶されている前記指令軌道を用いて前記ロボットを駆動制御する学習中断工程と、を有する、
    ことを特徴とする請求項1ないし3のいずれか1項に記載のロボット制御方法。
  5. 前記制御部が、前記評価計算工程により計算された評価値が所定の上限値を超えた場合、前記設定回数を増加させて前記学習制御を再開させる学習再開工程を有する、
    ことを特徴とする請求項4に記載のロボット制御方法。
  6. 請求項1ないし5のいずれか1項に記載のロボット制御方法の各工程をコンピュータに実行させるためのロボット制御プログラム。
  7. 請求項6に記載のロボット制御プログラムを記録した、コンピュータで読み取り可能な記録媒体。
  8. ロボットを指令軌道により駆動制御し、駆動された前記ロボットの実際の軌道を検出し、目標とする目標軌道と前記実際の軌道との軌道誤差に基づき前記指令軌道を学習制御し得るロボット制御装置において、
    前記軌道誤差を評価した評価値を計算し、かつ前記学習制御を実行する制御部と、
    前記評価値と前記指令軌道とを記憶可能な記憶部と、を備え、
    前記制御部は、前記学習制御にあって、
    前記計算した評価値が前記記憶部に記憶されている評価値よりも良い評価の場合に、前記記憶部の評価値を前記計算した評価値に更新して保存し、かつ前記記憶部の指令軌道を前記軌道誤差を評価した際の前記指令軌道に更新して保存し、
    前記計算した評価値が前記記憶部に記憶されている評価値よりも悪い評価の場合に、前記軌道誤差から前記指令軌道の補正量を計算する複数の補償器のうち、現在選択されている補償器と異なる計算を行う補償器に選択を変更し、
    選択されている補償器により前記記憶部に保存されている指令軌道の補正量を計算し、計算した補正量と前記記憶部に保存されている指令軌道とにより次回の指令軌道を計算する、
    ことを特徴とするロボット制御装置。
JP2013242722A 2013-11-25 2013-11-25 ロボット制御方法、及びロボット制御装置 Active JP6347595B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2013242722A JP6347595B2 (ja) 2013-11-25 2013-11-25 ロボット制御方法、及びロボット制御装置
EP14192205.4A EP2875913A3 (en) 2013-11-25 2014-11-07 Robot control method, robot control apparatus, robot control program, and storage medium
US14/550,632 US9592605B2 (en) 2013-11-25 2014-11-21 Robot control method, robot control apparatus, robot control program, and storage medium
CN201410685590.6A CN104647387B (zh) 2013-11-25 2014-11-25 机器人控制方法、系统和装置
US15/418,194 US20170136623A1 (en) 2013-11-25 2017-01-27 Robot control method, robot control apparatus, robot control program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013242722A JP6347595B2 (ja) 2013-11-25 2013-11-25 ロボット制御方法、及びロボット制御装置

Publications (2)

Publication Number Publication Date
JP2015100877A true JP2015100877A (ja) 2015-06-04
JP6347595B2 JP6347595B2 (ja) 2018-06-27

Family

ID=51862213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013242722A Active JP6347595B2 (ja) 2013-11-25 2013-11-25 ロボット制御方法、及びロボット制御装置

Country Status (4)

Country Link
US (2) US9592605B2 (ja)
EP (1) EP2875913A3 (ja)
JP (1) JP6347595B2 (ja)
CN (1) CN104647387B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6326167B1 (ja) * 2017-03-31 2018-05-16 株式会社ドワンゴ 学習装置、学習方法、学習プログラム、動画配信装置、活動装置、活動プログラムおよび動画生成装置
JP2019206041A (ja) * 2018-05-28 2019-12-05 キヤノン株式会社 ロボット制御装置、システム、情報処理方法及びプログラム

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9314924B1 (en) * 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
EP3187438B1 (de) * 2015-12-30 2022-10-12 Siemens Aktiengesellschaft Förderanlage für stückgüter und verfahren zum beheben einer störung einer förderanlage
JP7007791B2 (ja) * 2016-07-22 2022-01-25 川崎重工業株式会社 ロボットの運転方法、コンピュータプログラム、及びロボットシステム
JP6484265B2 (ja) * 2017-02-15 2019-03-13 ファナック株式会社 学習制御機能を備えたロボットシステム及び学習制御方法
WO2018163450A1 (ja) * 2017-03-09 2018-09-13 三菱電機株式会社 ロボット制御装置およびキャリブレーション方法
JP6904767B2 (ja) * 2017-04-18 2021-07-21 キヤノン株式会社 連続体ロボットシステムの制御装置、連続体ロボットシステムの作動方法、プログラム
JP7024235B2 (ja) * 2017-07-19 2022-02-24 オムロン株式会社 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
JP7087316B2 (ja) * 2017-09-27 2022-06-21 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
US11141855B2 (en) * 2018-01-15 2021-10-12 Canon Kabushiki Kaisha Robot system, method of controlling robot arm, recording medium, and method of manufacturing an article
JP6781183B2 (ja) * 2018-03-26 2020-11-04 ファナック株式会社 制御装置及び機械学習装置
JP6875329B2 (ja) * 2018-06-26 2021-05-19 ファナック株式会社 学習制御を行うロボットシステム
JP7065721B2 (ja) * 2018-07-31 2022-05-12 川崎重工業株式会社 ロボットシステム
CN112805653B (zh) * 2018-10-12 2024-02-02 三菱电机株式会社 定位控制装置以及定位方法
CN109799701B (zh) * 2018-12-29 2022-04-29 南京埃斯顿机器人工程有限公司 一种工业机器人振动抑制方法
CN109551485B (zh) * 2019-01-21 2020-10-16 北京镁伽机器人科技有限公司 运动控制方法、装置和系统及存储介质
CN109760107B (zh) * 2019-01-22 2022-04-12 九天创新(广东)智能科技有限公司 一种基于单目视觉的机器人定位精度评价方法
DE102019120633B4 (de) * 2019-07-31 2022-05-05 Liebherr-Hydraulikbagger Gmbh Verfahren zur automatischen Bewegung eines Arbeitsgeräts sowie Arbeitsgerät
JP2022070451A (ja) * 2020-10-27 2022-05-13 セイコーエプソン株式会社 ロボットのパラメーターセットの調整を支援する方法、プログラム、および情報処理装置
CN113781558B (zh) * 2021-08-31 2024-03-19 华中科技大学 一种姿态与位置解耦的机器人视觉寻位方法
CN114095872A (zh) * 2021-11-24 2022-02-25 南京工程学院 基于机器视觉反馈的快速定位系统和方法
CN114296349B (zh) * 2021-12-27 2024-04-05 华中科技大学 一种纳米定位平台的磁滞控制方法和装置
CN114505844B (zh) * 2022-01-24 2023-06-20 华南理工大学 一种面向工业机器人的残余振动抑制系统及方法
CN115366115B (zh) * 2022-10-24 2023-01-13 广州市微眸医疗器械有限公司 一种机械臂控制方法及其控制系统和计算机可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233806A (ja) * 1986-04-03 1987-10-14 Komatsu Ltd ロボツトの軌跡制御法
JPS6349904A (ja) * 1986-08-20 1988-03-02 Canon Inc 位置決め制御装置
JPS6364102A (ja) * 1986-09-04 1988-03-22 Mitsubishi Electric Corp 学習制御方式
JPH01211102A (ja) * 1988-02-19 1989-08-24 Tokico Ltd ロボットの制御装置
JPH0468410A (ja) * 1990-07-09 1992-03-04 Fujitsu Ltd サーボ制御装置
US5119287A (en) * 1987-09-11 1992-06-02 Kabushiki Kaisha Yaskawa Denki Seisakusho Optimum tracking control method for periodic target value
JPH05150804A (ja) * 1991-11-29 1993-06-18 Fujitsu Ltd マニピユレータの繰り返し学習制御装置
JPH08202453A (ja) * 1995-01-25 1996-08-09 Mitsubishi Electric Corp 位置制御装置
JP2007206857A (ja) * 2006-01-31 2007-08-16 Fanuc Ltd 電動機の制御装置
JP2008200763A (ja) * 2007-02-16 2008-09-04 Hitachi Ltd 作業用マニピュレータの制御装置
JP2012113430A (ja) * 2010-11-22 2012-06-14 Fanuc Ltd 工作機械のテーブル又は工具を移動させる互いに直交した少なくとも二つの送り軸を有するサーボモータの駆動制御装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168550A (en) * 1989-02-23 1992-12-01 Matsushita Electric Industrial Co., Ltd. Neutral network with plural weight calculation methods and variation of plural learning parameters
JPH076146A (ja) * 1993-06-18 1995-01-10 Fujitsu Ltd 並列データ処理システム
WO1997046929A2 (en) * 1996-06-04 1997-12-11 Werbos Paul J 3-brain architecture for an intelligent decision and control system
JP3777929B2 (ja) 1999-12-24 2006-05-24 アイシン精機株式会社 変速装置
JP2006110702A (ja) 2004-10-18 2006-04-27 Fanuc Ltd 学習制御機能を備えたロボット及びロボットの制御方法
US20060224532A1 (en) * 2005-03-09 2006-10-05 Case Western Reserve University Iterative feature weighting with neural networks
JP5191738B2 (ja) 2006-03-24 2013-05-08 パナソニック株式会社 マニピュレータの制御方法および制御システム
JP2011200948A (ja) 2010-03-24 2011-10-13 Sony Corp 把持判別装置および把持判別方法
US8886359B2 (en) * 2011-05-17 2014-11-11 Fanuc Corporation Robot and spot welding robot with learning control function
KR101330049B1 (ko) * 2012-03-06 2013-11-18 한국기계연구원 3차원 특징점 기반 직접 교시 궤적 후보정 방법
US9696699B2 (en) * 2012-11-15 2017-07-04 Cybomedical, Inc. Self-organizing sensing and actuation for automatic control
CN106999248B (zh) * 2014-06-19 2021-04-06 Kb医疗公司 用于执行微创外科手术的系统及方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233806A (ja) * 1986-04-03 1987-10-14 Komatsu Ltd ロボツトの軌跡制御法
JPS6349904A (ja) * 1986-08-20 1988-03-02 Canon Inc 位置決め制御装置
JPS6364102A (ja) * 1986-09-04 1988-03-22 Mitsubishi Electric Corp 学習制御方式
US5119287A (en) * 1987-09-11 1992-06-02 Kabushiki Kaisha Yaskawa Denki Seisakusho Optimum tracking control method for periodic target value
JPH01211102A (ja) * 1988-02-19 1989-08-24 Tokico Ltd ロボットの制御装置
JPH0468410A (ja) * 1990-07-09 1992-03-04 Fujitsu Ltd サーボ制御装置
JPH05150804A (ja) * 1991-11-29 1993-06-18 Fujitsu Ltd マニピユレータの繰り返し学習制御装置
JPH08202453A (ja) * 1995-01-25 1996-08-09 Mitsubishi Electric Corp 位置制御装置
JP2007206857A (ja) * 2006-01-31 2007-08-16 Fanuc Ltd 電動機の制御装置
JP2008200763A (ja) * 2007-02-16 2008-09-04 Hitachi Ltd 作業用マニピュレータの制御装置
JP2012113430A (ja) * 2010-11-22 2012-06-14 Fanuc Ltd 工作機械のテーブル又は工具を移動させる互いに直交した少なくとも二つの送り軸を有するサーボモータの駆動制御装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ALBERTOS P: "On line learning control of a gantry crane", PROCEEDINGS OF THE 2000 IEEE INTERNATIONAL SYMPOSIUM ON INTELLIGENT CONTROL, JPN6017035382, 19 July 2000 (2000-07-19), US, ISSN: 0003642531 *
DONGOING FENG: "Fuzzy supervisor based multiple model adaptive controller for systems with uncertain parameters", PROCEEDINGS OF THE 2003 IEEE INTERNATIONAL SYMPOSIUM ON INTELLIGENT CONTROL, JPN6017035384, 5 October 2003 (2003-10-05), US, ISSN: 0003642533 *
KEMAL CILIZ: "INTELLIGENT CONTROL OF ROBOTIC MANIPULATORSS: A MULTIPLE MODEL BASEDAPPROACH", PROCEEDINGS OF THE 1995 IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS, JPN6017035383, 5 August 1995 (1995-08-05), US, ISSN: 0003642532 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6326167B1 (ja) * 2017-03-31 2018-05-16 株式会社ドワンゴ 学習装置、学習方法、学習プログラム、動画配信装置、活動装置、活動プログラムおよび動画生成装置
JP2018173790A (ja) * 2017-03-31 2018-11-08 株式会社ドワンゴ 学習装置、学習方法、学習プログラム、動画配信装置、活動装置、活動プログラムおよび動画生成装置
JP2019206041A (ja) * 2018-05-28 2019-12-05 キヤノン株式会社 ロボット制御装置、システム、情報処理方法及びプログラム
WO2019230399A1 (ja) * 2018-05-28 2019-12-05 キヤノン株式会社 ロボット制御装置、システム、情報処理方法及びプログラム
CN112203809A (zh) * 2018-05-28 2021-01-08 佳能株式会社 机器人控制装置、系统、信息处理方法和程序
JP7154823B2 (ja) 2018-05-28 2022-10-18 キヤノン株式会社 情報処理装置、ロボット制御装置、情報処理方法及びプログラム
CN112203809B (zh) * 2018-05-28 2023-09-15 佳能株式会社 信息处理装置和方法、机器人控制装置和方法及存储介质

Also Published As

Publication number Publication date
EP2875913A3 (en) 2015-06-17
CN104647387A (zh) 2015-05-27
JP6347595B2 (ja) 2018-06-27
US9592605B2 (en) 2017-03-14
CN104647387B (zh) 2017-08-29
EP2875913A2 (en) 2015-05-27
US20150148956A1 (en) 2015-05-28
US20170136623A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
JP6347595B2 (ja) ロボット制御方法、及びロボット制御装置
JP6717768B2 (ja) 生産ラインにおける運用を考慮した学習制御を行うロボット及びその制御方法
EP2835228B1 (en) Robot apparatus and robot controlling method
US7912584B2 (en) Power consumption estimation apparatus
JP6325504B2 (ja) 学習制御器の自動調整を行う機能を有するサーボ制御装置
TWI572468B (zh) Automatic adjustment method of offset automatic adjustment device and robot
CN109562518B (zh) 并联连杆机构的控制装置
CN111095132B (zh) 伺服控制装置
JP2012240142A (ja) 学習制御機能を備えたスポット溶接ロボット
US11029650B2 (en) Machine learning device, control system, and machine learning method
WO2020008587A1 (ja) 数値制御装置
JP5989694B2 (ja) 制御装置、制御方法及び制御プログラム
JP2016120549A (ja) ロボット制御方法及びロボット制御装置
CN111722530B (zh) 机器学习装置、控制系统以及机器学习方法
JP3936242B2 (ja) サーボモータ制御用コントローラにおけるゲイン設定法、コントローラの有効性検証法およびロボット制御法
JP7022261B1 (ja) 周波数特性予測装置及び周波数特性予測方法
JP7227018B2 (ja) 学習制御装置、ロボット制御装置およびロボット
JP3805476B2 (ja) モータ制御装置
JPWO2019092852A1 (ja) サーボ制御装置
JP6875329B2 (ja) 学習制御を行うロボットシステム
JP7024235B2 (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
WO2022201377A1 (ja) ロボット制御装置およびロボット制御方法
JP7496095B2 (ja) 制御システム、制御方法、コンピュータ、および制御プログラム
US20200026248A1 (en) Machine learning device, control device, and machine learning method
JP2021122907A (ja) ロボット制御装置、ロボットシステム及びロボット制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180529

R151 Written notification of patent or utility model registration

Ref document number: 6347595

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151