JP5231935B2 - ロボット制御装置 - Google Patents

ロボット制御装置 Download PDF

Info

Publication number
JP5231935B2
JP5231935B2 JP2008271373A JP2008271373A JP5231935B2 JP 5231935 B2 JP5231935 B2 JP 5231935B2 JP 2008271373 A JP2008271373 A JP 2008271373A JP 2008271373 A JP2008271373 A JP 2008271373A JP 5231935 B2 JP5231935 B2 JP 5231935B2
Authority
JP
Japan
Prior art keywords
joint
control cycle
control
execution
joint angular
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
JP2008271373A
Other languages
English (en)
Other versions
JP2010102409A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008271373A priority Critical patent/JP5231935B2/ja
Priority to US12/597,954 priority patent/US8543239B2/en
Priority to PCT/JP2009/004949 priority patent/WO2010047043A1/en
Publication of JP2010102409A publication Critical patent/JP2010102409A/ja
Application granted granted Critical
Publication of JP5231935B2 publication Critical patent/JP5231935B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/416Numerical 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 control of velocity, acceleration or deceleration
    • 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/1651Programme controls characterised by the control loop acceleration, rate 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/39Robotics, robotics to robotics hand
    • G05B2219/39257Switch from task space to joint space controller when close to singularity
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43203Limitation of speed, permissible, allowable, maximum speed

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本発明は、ロボットアーム等の目標位置決め制御を行うロボット制御装置に関する。
ロボットのアーム先端部等の制御対象(以下、「先端」という。)が直線や円弧あるいは指定された曲率の曲線等の軌道を描くように動作させる補間動作は、動作開始位置と最終目標位置に関しての位置と姿勢のデータ(以下、「先端位置指令値」という。)をロボット制御装置に記憶させて、その2点間において指定された軌道になるような補間された先端位置指令値を制御周期毎に算出し、これを各関節軸の角度(以下、「関節角度」という。)に変換して関節角度指令値として、さらに関節角度が関節角度指令値に一致するように各軸のアクチュエータを制御することによって実現している。
多関節型ロボットの場合、先端位置指令値から関節角度指令値へ変換できない場合があり、これを特異点と呼んでいる。ロボットが特異点や特異点近傍を通過すると、ある関節角速度が急激に非常に大きな値をとることが知られている。ところが実際には構成部品等の制限により、許容される最大速度が決まっており、最大速度を超過しないような制御処理、すなわち指令値生成が必要となる。従来においては特異点近傍であるかどうかの判定を行った上で、関節角速度が許容最大値を超えないような先端位置指令値を修正するものである(例えば、特許文献1及び2参照。)。
特許文献1では、座標変換して得られた関節角度指令値から特異点近傍かどうかを判定し、近傍であれば別処理によって関節角度指令値を生成している。特許文献2では、算出された関節角度指令値から関節角速度を計算し、この増加量に基づいて特異点近傍かどうかを判定し、位置指令値の速度を補正して最大速度を超えないようにしている。
しかし、特許文献1のような関節角度の特異点領域情報に基づいた特異点近傍判定方法では、あらかじめ全ての特異点領域を調べておく必要がある。また特異点近傍であっても制御点の動作速度が充分小さければ、最大速度を超えるにいたらないが、別処理を使用する必要があり、処理の切替時において速度を滑らかに変化させるといった新たな処理を必要とする。
また、特許文献2のような方法は、通常の動作において誤判定しないようにするために判定基準となる速度閾値を最大速度に設定しておく必要があり、そのため短時間とはいえ最大速度付近で動作させてしまう可能性がある。また速度を抑制させても過大判定直後においてはある程度の加速度を持っていることが多いため、すぐに減速することができない。
このように、特異点近傍のような関節角速度が急変するような領域をロボットが通過する場合にロボットを安定して動作させることが困難であった。
特開2006−227724号公報 特開平6−324730号公報
本発明の目的は、特異点近傍のような関節角速度が急変するような領域を通過する場合であってもロボットを安定して動作させることができるロボット制御装置を提供することである。
本願発明の一態様によれば、関節を有するロボットを制御するロボット制御装置において、(イ)関節を制御周期毎に駆動するアクチュエータと、(ロ)関節の関節角度を制御周期毎に検出する検出部と、(ハ)関節角度から、ロボットの先端位置を制御周期毎に算出する位置算出部と、(ニ)先端位置を制御するための先端位置指令値を制御周期毎に算出する位置指令値算出部と、(ホ)先端位置と先端位置指令値との誤差を制御周期毎に算出する誤差算出部と、(ヘ)誤差から逆運動学計算により関節角差分を制御周期毎に算出する第1の関節角差分算出部と、(ト)関節角差分を積分することにより関節角度指令値を制御周期毎に算出する角度指令値算出部と、(チ)関節角度指令値に基づいてアクチュエータを制御周期毎に駆動させる駆動部と、(リ)検出部により検出された関節角度から関節角加速度を制御周期毎に算出することにより実行後の複数の制御周期における関節角加速度を算出し、実行後の複数の制御周期における関節角加速度から、実行前の制御周期における関節角速度を予測する関節角速度予測部と、(ヌ)実行前の制御周期における関節角速度に対する最大速度を記憶する最大速度記憶装置と、(ル)実行前の制御周期における関節角速度が最大速度を超えるか判定する速度判定部と、(ヲ)実行前の制御周期における関節角速度が最大速度を超えると判定された場合、実行前の制御周期における関節角速度から、実行前の制御周期における抑制関節角速度をそれぞれ算出する抑制速度算出部とを備えるロボット制御装置が提供される。
本願発明の他の態様によれば、関節を有するロボットを制御するロボット制御装置において、(イ)関節を制御周期毎に駆動するアクチュエータと、(ロ)関節の関節角度を制御周期毎に検出する検出部と、(ハ)関節角度から、ロボットの先端位置を制御周期毎に算出する位置算出部と、(ニ)先端位置を制御するための先端位置指令値を制御周期毎に算出する位置指令値算出部と、(ホ)先端位置と先端位置指令値との誤差を制御周期毎に算出する誤差算出部と、(ヘ)誤差から逆運動学計算により関節角差分を制御周期毎に算出する第1の関節角差分算出部と、(ト)関節角差分を積分することにより関節角度指令値を制御周期毎に算出する角度指令値算出部と、(チ)関節角度指令値に基づいてアクチュエータを制御周期毎に駆動させる駆動部と、(リ)位置指令値算出部により算出された先端位置指令値から関節角差分を順次算出することにより実行前の複数の制御周期における関節角差分をそれぞれ算出し、実行前の複数の制御周期における関節角差分から、実行前の複数の制御周期における関節角速度をそれぞれ予測する関節角速度予測部と、(ヌ)実行前の制御周期における関節角速度に対する最大速度を記憶する最大速度記憶装置と、(ル)実行前の複数の制御周期における関節角速度が最大速度を超えるかそれぞれ判定する速度判定部と、(ヲ)実行前の制御周期における関節角速度が最大速度を超えると判定された場合、最大速度を超えると判定された実行前の制御周期における関節角速度から、最大速度を超えると判定された実行前の制御周期における抑制関節角速度を算出する抑制速度算出部とを備えるロボット制御装置が提供される。
本発明によれば、特異点近傍のような関節角速度が急変するような領域を通過する場合であってもロボットを安定して動作させることができるロボット制御装置を提供することができる。
次に、図面を参照して、本発明の第1及び第2の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであることに留意すべきである。
また、以下に示す第1及び第2の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。

(第1の実施の形態)
本発明の第1の実施の形態に係るロボット制御装置は、中央演算処理装置(CPU)100、駆動部(アンプ)101、検出部102、アクチュエータ120、リンクパラメータ記憶装置200、位置データ記憶装置201、加速度記憶装置202、及び最大速度記憶装置203を備える。
アクチュエータ120は、関節121に取り付けられ、関節121を制御周期毎に駆動する。関節121は、複数の関節及び複数のリンクを有するロボットの関節の一つである。
検出部102は、駆動部101に取り付けられている。検出部102は、エンコーダ等の位置検出センサ及びフィルタ等を備える。検出部102は、関節121の関節角度を制御周期毎に順次検出する。
CPU100は、位置算出部103、位置指令値算出部104、誤差算出部105、関節角差分算出部106、角度指令値算出部107、関節角速度予測部115、速度判定部113及び抑制速度算出部114をハードウェア資源であるモジュール(論理回路)として論理的に備える。
位置算出部103は、検出部102により検出された関節角度及びリンクパラメータ記憶装置200に記憶されているリンクパラメータから、順運動学計算により直交座標系におけるロボットの先端位置を制御周期毎に順次算出する。
位置指令値算出部104は、位置データ記憶装置201に記憶された目標先端位置データから、ロボットの先端位置が動作開始位置から最終目標位置へ移動するように補間された先端位置指令値を制御周期毎に順次算出する。
誤差算出部105は、位置算出部103により算出されたロボットの先端位置と、位置指令値算出部104により算出された先端位置指令値との誤差を制御周期毎に順次算出する。
関節角差分算出部106は、誤差算出部105により算出された誤差から、ヤコビ行列を用いた逆運動学計算により関節角差分Δθを制御周期毎に順次算出する。ここで、誤差Δxと関節角差分Δθには、ヤコビ行列をJとして、式(1)が成立している。

Δx=JΔθ …(1)

よって、ヤコビ行列Jの逆行列J-1を求め、式(2)のように逆行列J-1に誤差Δxにかけることで、関節角差分Δθが算出される。

Δθ=J-1Δx …(2)

角度指令値算出部107は、関節角差分算出部106により算出された関節角差分を積分することにより関節角度指令値を制御周期毎に順次算出する。
駆動部101は、角度指令値算出部107により算出された関節角度指令値を制御目標値として、アクチュエータ120を制御周期毎に順次駆動させる。
関節角速度予測部115は、速度算出部108、第1の加速度算出部109、第2の加速度算出部110、加速度予測部111及び速度予測部112を備える。
速度算出部108は、検出部102により検出された関節角度の時間差分をとり、関節角速度を制御周期毎に順次算出する。
加速度算出部109は、速度算出部108により算出された関節角速度の時間差分をとり、関節角加速度を制御周期毎に順次算出することにより、実行後の複数の制御周期における関節角加速度を算出する。実行後の複数の制御周期における関節角加速度は、加速度記憶装置202に順次記憶される。
加速度算出部110は、関節角差分算出部106により算出された関節角差分の時間差分をとり、現在の制御周期における関節角加速度を算出する。
加速度予測部111は、図2に示すように、加速度記憶装置202に記憶されている実行後の複数の制御周期t-1,t-2,t-3における関節角加速度
Figure 0005231935
(便宜上、以下の数式を除く文中においては「θ’’」と表記する。)と、加速度算出部110により算出された現在の制御周期tにおける関節角加速度θ’’から、補間式を用いて、実行前の複数の制御周期t,t,t,tにおける関節角加速度θ’’を予測する。例えば最小二乗法により式(3)のような2次多項式の補間式が算出される。
Figure 0005231935
ここで、a0,a1,a2,は係数であり、tは制御周期である。補間式により、図2に実線で示すような予測加速度曲線が描かれる。
速度予測部112が、加速度予測部111により予測された実行前の複数の制御周期t,t,t,tにおける関節角加速度θ’’を積分することにより、図3の予測速度曲線(実線)上に示すように実行前の複数の制御周期t,t,t,tにおける関節角速度
Figure 0005231935
(便宜上、以下の数式を除く文中においては「θ’」と表記する。)をそれぞれ予測する。
速度判定部113が、速度予測部112により予測された実行前の複数の制御周期t,t,t,tにおける関節角速度θ’が、最大速度記憶装置203に記憶されている最大速度(速度閾値)θ’maxを越えるか判定する。最大速度記憶装置203に記憶されている最大速度θ’maxは、ロボットを構成する部品の種類等により適宜設定可能である。例えば、図3において、実行前の制御周期tにおける関節角速度θ’が最大速度θ’maxを越えると判定される。
抑制速度算出部114が、最大速度θ’maxを越えると判定された実行前の制御周期tにおける関節角速度θ’が、式(4)のように最大速度θ’max以下となるように抑制する抑制関節角速度θ’を算出する。
Figure 0005231935
ここで、実行前の制御周期tにおける関節角速度θ’が最大速度θ’max以下であっても、実行前の制御周期tにおける関節角加速度がある程度大きければ実行前の制御周期t以降に最大速度θ’maxを超えてしまう場合がある。したがって、実行前の制御周期tにおいて、式(5)のように関節角加速度θ’’が0、又は式(6)のように実行前の制御周期tまでの制御周期とは反対符号となるように、図2の設計加速度曲線(破線)上に示すような抑制関節角加速度θ’’を設定する。
Figure 0005231935
ただし、現在の制御周期(現在時刻)を0としている。
更に、抑制速度算出部114が、現在の制御周期t0から時刻tまでの間をロボットの移動が滑らかに遷移するように、例えば線形補間を行い、図2の設計加速度曲線(破線)上に示すような実行前の複数の制御周期t,t,tにおける抑制関節角加速度θ’’を設定する。更に、抑制速度算出部114が、設定された実行前の複数の制御周期t,t,t,tにおける抑制関節角加速度θ’’を積分することにより、図3の設計加速度曲線(破線)上に示すように実行前の複数の制御周期t,t,t,tにおける抑制関節角速度θ’を算出する。
位置指令値算出部104は、抑制速度算出部114により算出された実行前の複数の制御周期t,t,t,tにおける抑制関節角速度θ’に基づいて、実行前の複数の制御周期t,t,t,tにおける先端位置指令値を算出する。
リンクパラメータ記憶装置200は、位置算出部103によりロボットの先端位置を算出する際に使用するロボットの複数のリンクに関するリンクパラメータを記憶している。位置データ記憶装置201は、位置指令値算出部104により先端位置指令値を算出する際に使用する目標先端位置データを記憶している。加速度記憶装置202は、第1の加速度算出部109により算出された実行後の複数の制御周期t-1,t-2,t-3における関節角加速度θ’’を順次記憶し、更に加速度予測部111により予測された現在の制御周期の関節角加速度θ’’等を記憶している。最大速度記憶装置203は、速度判定部113による判定を行う際の閾値となる最大速度θ’maxを予め記憶している。
リンクパラメータ記憶装置200、位置データ記憶装置201、加速度記憶装置202、及び最大速度記憶装置203としては、例えばメモリ、磁気ディスク、光ディスク等が採用可能である。メモリは、CPU100において実行されるプログラムを格納しているプログラム記憶装置等として機能させることが可能である(プログラムの詳細は後述する。)。メモリは、CPU100におけるプログラム実行処理中に利用されるデータ等を一時的に格納したり、作業領域として利用される一時的なデータメモリ等として機能させることも可能である。
次に、本発明の実施の形態に係るロボット制御方法の一例を、図4のフローチャートを参照しながら説明する。
(イ)ステップS101において制御計算を開始する。ステップS102において、位置指令値算出部104が、位置データ記憶装置201に記憶されている目標先端位置データ列から、先端位置指令値を制御周期毎に順次算出する。ステップS103において、位置算出部103が、検出部102により検出された関節角度からロボットの先端位置を制御周期毎に順次算出する。誤差算出部105が、位置算出部103により算出された先端位置と、位置指令値算出部104により算出された先端位置指令値との誤差を制御周期毎に順次算出する。ステップS104において、関節角差分算出部106が、式(2)を用いた逆運動学計算により、関節角差分を制御周期毎に順次算出する。
(ロ)ステップS105において、図5のステップS201〜S207により関節角加速度予測処理を行う。ステップS201において関節角速度予測処理を開始する。ステップS202において、検出部102が、関節121の関節角度を制御周期毎に順次検出する。ステップS203において、速度算出部108が、検出部102により検出された関節角差分の時間差分をとり、関節角速度を制御周期毎に順次算出する。ステップS204において、第1の加速度算出部109が、速度算出部108により算出された関節角速度の時間差分をとり、関節角加速度を制御周期毎に順次算出することにより図2に示すように実行後の複数の制御周期t-1,t-2,t-3における関節角加速度θ’’を算出する。実行後の複数の制御周期t-1,t-2,t-3における関節角加速度θ’’は、加速度記憶装置202に順次記憶されている。また、加速度算出部110は、関節角差分算出部106により算出された関節角差分の時間差分をとり、現在の制御周期tにおける関節角加速度を算出する。ステップS405において、加速度予測部111が、加速度記憶装置202に記憶されている実行後の複数の制御周期t-1,t-2,t-3における関節角加速度θ’’、及び加速度算出部110により算出された現在の制御周期tにおける関節角加速度θ’’から、最小二乗法等により式(3)のような補間式を算出し、補間式を用いて、実行前の複数の制御周期t,t,t,tにおける関節角加速度θ’’を予測する。ステップS206において、速度予測部112が、加速度予測部111により予測された実行前の複数の制御周期t,t,t,tにおける関節角加速度θ’’を積分することにより、図3に示すように実行前の複数の制御周期t,t,t,tにおける関節角速度θ’を予測する。ステップS207において処理を終了する。
(ハ)図4のステップS106において、速度判定部113が、速度予測部112により予測された実行後の複数の制御周期t,t,t,tにおける関節角速度θ’が、最大速度記憶装置203に記憶されている最大速度θ’maxを超えているか判定する。実行後の複数の制御周期t,t,t,tにおける関節角速度θ’の少なくともいずれかがが最大速度θ’maxを超えていればS107に進む。
(ニ)ステップS107において、図6のステップS301〜S304により抑制速度算出部114が抑制関節角速度算出処理を行う。ステップS301において、抑制関節角速度算出処理を開始し、S302において、最大速度θ’maxを越えると判定された実行前の制御周期tにおける関節角速度θ’が、式(4)のように最大速度θ’max以下となるように抑制する抑制関節角速度θ’を算出する。ここで、加速度予測部111により予測された実行後の制御周期tにおける関節角加速度θ’’に基づいて、関節角速度θ’が最大速度θ’maxを超えると判定された制御周期tにおいて式(5)のように関節角加速度θ’’が0、又は式(6)のように制御周期tまでの関節角加速度θ’’とは反対符号となるように抑制関節角加速度θ’’を設定する。更に、現在の制御周期tから制御周期tまでの間をロボットが滑らかに遷移できるように、例えば線形補間により実行前の複数の制御周期t,t,tにおける抑制関節角加速度θ’’を設定する。ステップS303において、抑制速度算出部114が、実行前の複数の制御周期t,t,t,tにおける関節角加速度θ’’を積分することにより、図2に示すように実行前の複数の制御周期t,t,t,tにおける抑制関節角速度θ’を算出する。ステップS304において、抑制関節角速度算出処理を終了する。その後、ステップS102に戻り、位置指令値算出部104が、抑制関節角速度θ’に基づいて実行前の複数の制御周期t,t,t,tにおける先端位置指令値を算出する。
(ホ)ステップS107において、加速度予測部111により予測された範囲で実行前の複数の制御周期t,t,t,tにおける関節角速度θ’が最大速度θ’maxを超えない場合には、ステップS108において位置指令値算出部104が位置データ記憶装置201に記憶されている目標先端位置データ列から算出した関節角度指令値をそのまま用いて関節角度指令値を制御目標値として関節を駆動させる。ステップS109において制御計算の終了を確認する。制御計算が終了であればステップS110において処理を完了し、一方、制御計算が終了でなければ、ステップS103において再び先端位置指令値を算出する。
本発明の第1の実施の形態によれば、アクチュエータ120の関節角度から、実行後の複数の制御周期t-1,t-2,t-3における関節角加速度θ’’を算出し、実行前の複数の制御周期t,t,t,tにおける関節角速度θ’を予測し、抑制関節角速度θ’を算出することにより、実行前の複数の制御周期t,t,t,tにおいて最大速度θ’maxを超えないように動作させることができる。よって、特異点近傍のような関節角速度θ’が急変するような領域をロボットが通過するような動作であっても安定して動作させることができる。
更に、予測した実行前の複数の制御周期t,t,t,tにおける関節角速度θ’から線形補間等により実行前の複数の制御周期t,t,t,tにおける抑制関節角速度θ’を算出することにより、特異点近傍の前後においても速度を滑らかに遷移させて動作させることができる。
なお、図4、図5、図6及び図8に示した一連の手順、例えば:関節121の関節角度を制御周期毎に検出部102に検出させるステップ;関節角度から、ロボットの先端位置を制御周期毎に算出するステップ;先端位置を制御するための先端位置指令値を制御周期毎に算出するステップ;先端位置と先端位置指令値との誤差を制御周期毎に算出するステップ;誤差から逆運動学計算により関節角差分を制御周期毎に算出するステップ;関節角差分を積分することにより関節角度指令値を制御周期毎に算出するステップ;関節角度指令値に基づいてアクチュエータ120を制御周期毎に駆動させるステップ;関節角度から関節角加速度を制御周期毎に算出することにより実行後の複数の制御周期における関節角加速度を算出し、実行後の複数の制御周期における関節角加速度から、実行前の制御周期における関節角速度を予測するステップ;実行前の制御周期における関節角速度が、最大速度記憶装置に記憶されている最大速度を超えるか判定するステップ;実行前の制御周期における関節角速度が最大速度を超えると判定された場合、実行前の制御周期における関節角速度から、実行前の制御周期における抑制関節角速度をそれぞれ算出するステップ等は、図4、図5、図6及び図8と等価なアルゴリズムのプログラムにより、図1に示したロボット制御装置を制御して実行できる。このプログラムは、例えば位置データ記憶装置201等に記憶させればよい。又、このプログラムは、コンピュータ読取り可能な記録媒体に保存し、この記録媒体を位置データ記憶装置201等に読み込ませることにより、本発明の実施の形態の一連の手順を実行することができる。更に、インターネット等の情報処理ネットワークを介して、位置データ記憶装置201等に格納することが可能である。
(第2の実施の形態)
本発明の第1の実施の形態では、アクチュエータ120の関節角度から関節角速度、関節角加速度を算出することで実行前の複数の制御周期における関節角速度を予測する場合について説明したが、本発明の第2の実施の形態では、先端位置指令値から実行前の複数の制御周期における関節角速度を予測する場合について説明する。
本発明の第2の実施の形態に係るロボット制御装置は、図7に示すように、中央演算処理装置(CPU)100x、駆動部101、検出部102、アクチュエータ120、リンクパラメータ記憶装置200、位置データ記憶装置201、加速度記憶装置202、及び最大速度記憶装置203を備える。
CPU100xは、位置算出部103、位置指令値算出部104、誤差算出部105、第1の関節角差分算出部106、角度指令値算出部107、関節角速度予測部300、加速度予測部304、速度判定部113、抑制速度算出部114をハードウェア資源であるモジュール(論理回路)として論理的に備える。
関節角速度予測部300は、先端速度算出部301、第2の関節角差分算出部302及び速度予測部303を備える。
先端速度算出部301は、位置指令値算出部104の計算を先回りして行い、位置指令値算出部104により算出された実行前の複数の制御周期における先端位置指令値に基づいて、前後2つの実行前の制御周期における先端位置指令値の差分をとり、実行前の複数の制御周期における先端速度をそれぞれ算出する。
第2の関節角差分算出部302は、先端速度算出部301により算出された実行前の複数の制御周期における先端速度から、逆運動学計算により実行前の複数の制御周期における関節角差分をそれぞれ算出する。
速度予測部303は、第2の関節角差分算出部302により算出された実行前の複数の制御周期における関節角差分から、例えば最小二乗法により式(3)のような補間式を用いて、実行前の複数の制御周期における関節角速度を予測する。先端位置指令値は予め加減速を含んだ滑らかな軌道を生成しているので、この予測された関節角速度は理想的な速度波形となり、精度よく予測できる。
加速度予測部304は、速度予測部303により予測された実行前の複数の制御周期における関節角速度の時間差分をとり、実行前の複数の制御周期における関節角加速度をそれぞれ予測する。
角度指令値算出部107は、第1の関節角差分算出部106により算出された実行前の複数の制御周期における関節角差分に、速度予測部303により予測された関節角速度にフィードフォワードとしてあるゲインをかけて加え、実行前の複数の制御周期における関節角度指令値をそれぞれ算出する。この結果、制御応答性を更に向上させることができる。
図7に示した本発明の第2の実施の形態に係るロボット制御装置の他の構成は、図1に示した本発明の第1の実施の形態のロボット制御装置の構成と実質的に同様であるので、重複した説明を省略する。
次に、本発明の第2の実施の形態に係るロボット制御方法の一例を、図8のフローチャートを参照しながら説明する。
(イ)ステップS401において制御計算を開始する。ステップS402において、位置指令値算出部104が、位置データ記憶装置201に記憶されている目標先端位置データ列から、実行前の複数の制御周期の先端位置指令値を算出する。ステップS403において、検出部102が、実行後の複数の制御周期における関節角度を検出する。誤差算出部105が、位置算出部103により算出された先端位置と、位置指令値算出部104により算出された先端位置指令値との誤差を算出する。ステップS404において、関節角差分算出部106が、式(2)を用いた逆運動学計算により、関節角差分を算出する。ステップS405において関節角差分から関節角度指令値を算出し、関節角度指令値を制御目標値として関節を駆動させる。ステップS407において制御計算の終了を確認し、制御計算が終了であればステップS408において処理を完了し、制御計算が終了していなければ、ステップS402に戻り再び先端位置指令値を算出する。
(ロ)ステップS409において、先端速度算出部116が、位置指令値算出部104から算出された実行前の複数の制御周期に対して、その制御周期前後の先端位置指令値から差分をとり実行前の複数の制御周期における先端速度を算出する。ステップS410において、第2の関節角差分算出部302が、先端速度算出部116により算出された実行前の複数の制御周期における先端速度から逆運動学計算により実行前の複数の制御周期における関節角差分を算出する。ステップS411において、速度予測部303が、第2の関節角差分算出部302により算出された実行前の複数の制御周期における関節角差分から、式(3)のような補間式を用いて、実行前の複数の制御周期における関節角速度を予測する。
(ハ)ステップS412において速度判定部113が、速度予測部303により予測された実行前の複数の制御周期における関節角速度が、最大速度記憶装置203に記憶されている最大速度を超えるか判定する。実行前の複数の制御周期における関節角速度が最大速度を越えると判定された場合、ステップS413において、本発明の第1の実施の形態の手順と同様に、抑制速度算出部114が、速度予測部303により予測された実行前の複数の制御周期における関節角速度及び加速度予測部304により予測された実行前の複数の制御周期における関節角加速度から、抑制関節角速度を算出する。その後、ステップS402に戻り、位置指令値算出部104が、位置データ記憶装置201に記憶されている目標先端位置データ列及び抑制関節角速度に基づいて、実行前の複数の制御周期における先端位置指令値を算出する。一方、ステップS412において実行前の複数の制御周期における関節角速度が最大速度を超えないと判定された場合、ステップS402に戻り、位置指令値算出部104が、位置データ記憶装置201に記憶されている目標先端位置データ列から、予測した範囲の実行前の複数の制御周期における先端位置指令値を順次算出する。
本発明の第2の実施の形態によれば、位置指令値算出部104の計算を先回りして行い、実行前の複数の制御周期における関節角速度を予測し、抑制関節角速度を算出することで、特異点近傍のような関節角速度が急変するような領域をロボットが通過するような動作であっても安定して動作させることができる。
(その他の実施の形態)
上記のように、本発明は第1及び第2の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
例えば、本発明の第1の実施の形態において、CPU100、駆動部101、リンクパラメータ記憶装置200、位置データ記憶装置201、加速度記憶装置202、及び最大速度記憶装置203等がロボットの内部に埋め込まれて一体化されていても良い。又、CPU100、駆動部101、リンクパラメータ記憶装置200、位置データ記憶装置201、加速度記憶装置202、及び最大速度記憶装置203等がロボットの外部にあり、ロボットを有線或いは無線で遠隔制御することも可能である。
又、本発明の第1の実施の形態において補間式として、2次多項式である式(3)を用いたがこれに特に限定されるものではない。補間式としてはn次(nは正の整数)の多項式を用いても良い。
又、本発明の第1の実施の形態において実行前の3つの制御周期t,t,tをから実行前の4つの制御周期t,t,t,tにおける関節角速度を予測する場合を説明したが、関節角速度の予測に用いる実行前の制御周期のステップ数、及び予測される実行前の制御周期のステップ数は適宜設定可能であり、特に限定されるものではない。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
本発明の第1の実施の形態に係るロボット制御装置の一例を示すブロック図である。 本発明の第1の実施の形態に係る加速度予測処理を説明するためのグラフである。 本発明の第1の実施の形態に係る速度予測処理を説明するためのグラフである。 本発明の第1の実施の形態に係るロボット制御方法の一例を説明するためのフローチャートである。 本発明の第1の実施の形態に係る関節角速度予測処理のフローチャートである。 本発明の第1の実施の形態に係る抑制関節角速度算出処理のフローチャートである。 本発明の第2の実施の形態に係るロボット制御装置の一例を示すブロック図である。 本発明の第2の実施の形態に係るロボット制御方法の一例を説明するためのフローチャートである。
符号の説明
100,100x…中央演算処理装置(CPU)
101…駆動部
102…検出部
103…位置算出部
104…位置指令値算出部
105…誤差算出部
106,302…関節角差分算出部
107…角度指令値算出部
108…速度算出部
109…加速度算出部
109,110…加速度算出部
111,304…加速度予測部
112,303…速度予測部
113…速度判定部
114…抑制速度算出部
115,300…関節角速度予測部
116…先端速度算出部
120…アクチュエータ
121…関節
200…リンクパラメータ記憶装置
201…位置データ記憶装置
202…加速度記憶装置
203…最大速度記憶装置
301…先端速度算出部

Claims (6)

  1. 関節を有するロボットを制御するロボット制御装置において、
    前記関節を制御周期毎に駆動するアクチュエータと、
    前記関節の関節角度を前記制御周期毎に検出する検出部と、
    前記関節角度から、前記ロボットの先端位置を前記制御周期毎に算出する位置算出部と、
    前記先端位置を制御するための先端位置指令値を前記制御周期毎に算出する位置指令値算出部と、
    前記先端位置と前記先端位置指令値との誤差を前記制御周期毎に算出する誤差算出部と、
    前記誤差から逆運動学計算により関節角差分を前記制御周期毎に算出する関節角差分算出部と、
    前記関節角差分を積分することにより関節角度指令値を前記制御周期毎に算出する角度指令値算出部と、
    前記関節角度指令値に基づいて前記アクチュエータを前記制御周期毎に駆動させる駆動部と、
    前記関節角度から関節角加速度を前記制御周期毎に算出することにより実行後の複数の前記制御周期における関節角加速度を算出し、前記実行後の複数の制御周期における関節角加速度から、実行前の前記制御周期における関節角速度を予測する関節角速度予測部と、
    前記実行前の制御周期における関節角速度に対する最大速度を記憶する最大速度記憶装置と、
    前記実行前の制御周期における関節角速度が前記最大速度を超えるか判定する速度判定部と、
    前記実行前の制御周期における関節角速度が前記最大速度を超えると判定された場合、前記実行前の制御周期における関節角速度から、前記実行前の制御周期における抑制関節角速度を算出する抑制速度算出部
    とを備えることを特徴とするロボット制御装置。
  2. 前記関節角速度予測部が、
    前記関節角度から前記関節角速度を前記制御周期毎に算出する速度算出部と、
    前記関節角速度から、前記関節角加速度を前記制御周期毎に算出することにより前記実行後の複数の制御周期における関節角加速度を算出する第1の加速度算出部と、
    前記関節角差分から、現在の制御周期の関節角加速度を算出する第2の加速度算出部と、
    前記実行後の複数の制御周期における関節角加速度及び前記現在の制御周期における関節角加速度から、前記実行前の制御周期における関節角加速度を予測する加速度予測部と、
    前記実行前の制御周期における関節角加速度から前記実行前の制御周期における関節角速度を予測する速度予測部
    とを備えることを特徴とする請求項1に記載のロボット制御装置。
  3. 関節を有するロボットを制御するロボット制御装置において、
    前記関節を制御周期毎に駆動するアクチュエータと、
    前記関節の関節角度を前記制御周期毎に検出する検出部と、
    前記関節角度から、前記ロボットの先端位置を前記制御周期毎に算出する位置算出部と、
    前記先端位置を制御するための先端位置指令値を前記制御周期毎に算出する位置指令値算出部と、
    前記先端位置と前記先端位置指令値との誤差を前記制御周期毎に算出する誤差算出部と、
    前記誤差から逆運動学計算により関節角差分を前記制御周期毎に算出する第1の関節角差分算出部と、
    前記関節角差分を積分することにより関節角度指令値を前記制御周期毎に算出する角度指令値算出部と、
    前記関節角度指令値に基づいて前記アクチュエータを前記制御周期毎に駆動させる駆動部と、
    前記位置指令値算出部により算出された前記先端位置指令値から関節角差分を順次算出することにより実行前の複数の前記制御周期における関節角差分をそれぞれ算出し、前記実行前の複数の制御周期における関節角差分から、前記実行前の複数の制御周期における関節角速度をそれぞれ予測する関節角速度予測部と、
    前記実行前の制御周期における関節角速度に対する最大速度を記憶する最大速度記憶装置と、
    前記実行前の複数の制御周期における関節角速度が前記最大速度を超えるかそれぞれ判定する速度判定部と、
    前記実行前の制御周期における関節角速度が前記最大速度を超えると判定された場合、前記最大速度を超えると判定された前記実行前の制御周期における関節角速度から、前記最大速度を超えると判定された前記実行前の制御周期における抑制関節角速度を算出する抑制速度算出部
    とを備えることを特徴とするロボット制御装置。
  4. 前記関節角速度予測部が、
    前記先端位置指令値から、前記実行前の複数の制御周期における先端速度をそれぞれ算出する先端速度算出部と、
    前記実行前の複数の制御周期における先端速度から、前記実行前の複数の制御周期における関節角差分をそれぞれ算出する第2の関節角差分算出部と、
    前記実行前の複数の制御周期における関節角差分から、前記実行前の複数の制御周期における関節角速度をそれぞれ予測する速度予測部
    とを備えることを特徴とする請求項に記載のロボット制御装置。
  5. 前記抑制速度算出部が、
    前記最大速度を超えると判定された前記実行前の制御周期における関節角加速度を、0又は前記最大速度を超えると判定されるまでの制御周期とは反対符号に設定し、
    前記設定された関節角加速度に基づいて、前記最大速度を超えると判定されるまでの制御周期における関節角加速度を設定し、
    設定された前記最大速度を超えると判定された前記実行前の制御周期における関節角加速度、及び設定された前記最大速度を超えると判定されるまでの制御周期における関節角加速度をそれぞれ積分することにより、前記抑制関節角速度を算出する
    ことを特徴とする請求項1〜4のいずれか1項に記載のロボット制御装置。
  6. 前記角度指令値算出部が、前記実行前の制御周期における前記関節角差分にゲインをかけ、前記実行前の制御周期における前記関節角度指令値に加えることを特徴とする請求項4に記載のロボット制御装置。
JP2008271373A 2008-10-21 2008-10-21 ロボット制御装置 Active JP5231935B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008271373A JP5231935B2 (ja) 2008-10-21 2008-10-21 ロボット制御装置
US12/597,954 US8543239B2 (en) 2008-10-21 2009-09-28 Robot control apparatus
PCT/JP2009/004949 WO2010047043A1 (en) 2008-10-21 2009-09-28 Robot control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008271373A JP5231935B2 (ja) 2008-10-21 2008-10-21 ロボット制御装置

Publications (2)

Publication Number Publication Date
JP2010102409A JP2010102409A (ja) 2010-05-06
JP5231935B2 true JP5231935B2 (ja) 2013-07-10

Family

ID=41403998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008271373A Active JP5231935B2 (ja) 2008-10-21 2008-10-21 ロボット制御装置

Country Status (3)

Country Link
US (1) US8543239B2 (ja)
JP (1) JP5231935B2 (ja)
WO (1) WO2010047043A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4821865B2 (ja) * 2009-02-18 2011-11-24 ソニー株式会社 ロボット装置及びその制御方法、並びにコンピューター・プログラム
JP5730179B2 (ja) * 2011-03-08 2015-06-03 株式会社神戸製鋼所 多関節型ロボットの制御装置,制御方法及び制御プログラム
JP5774552B2 (ja) * 2012-07-09 2015-09-09 株式会社東芝 ロボット制御装置
JP6238628B2 (ja) * 2013-08-06 2017-11-29 キヤノン株式会社 ロボット装置、ロボット制御方法、ロボット制御プログラム及びロボット装置を用いた部品の製造方法
US10299868B2 (en) * 2014-03-14 2019-05-28 Sony Corporation Robot arm apparatus, robot arm control method, and program
JP6595206B2 (ja) * 2015-04-30 2019-10-23 ライフロボティクス株式会社 多関節アーム機構の動作制御装置及びロボット装置
US10065311B1 (en) * 2016-06-08 2018-09-04 X Development Llc Singularity handling for robot jogging
CA2977489C (en) 2017-08-28 2019-11-26 Synaptive Medical (Barbados) Inc. Positioning arm for a surgical navigation system
CN111315309B (zh) * 2017-11-10 2023-06-02 直观外科手术操作公司 用于控制机器人操纵器或相关工具的系统和方法
JP7079881B2 (ja) * 2019-10-29 2022-06-02 シーエムアール・サージカル・リミテッド ロボットジョイント制御
GB2588630B (en) * 2019-10-29 2024-03-20 Cmr Surgical Ltd Robotic joint control

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57173486A (en) * 1981-04-15 1982-10-25 Fujitsu Fanuc Ltd Controlling system for robot
JPS63305407A (ja) * 1987-06-08 1988-12-13 Fujitsu Ltd ロボットの軌跡制御方式
JP3748454B2 (ja) * 1993-05-14 2006-02-22 株式会社安川電機 産業用ロボットの制御装置
JPH07104825A (ja) * 1993-09-30 1995-04-21 Toyoda Mach Works Ltd ロボットの制御装置
JP4049956B2 (ja) * 1999-10-01 2008-02-20 三菱電機株式会社 ロボット制御装置
JP2003001576A (ja) * 2001-06-25 2003-01-08 Matsushita Electric Ind Co Ltd ロボット制御装置およびその制御方法
US6845295B2 (en) * 2002-03-07 2005-01-18 Fanuc Robotics America, Inc. Method of controlling a robot through a singularity
JP4494247B2 (ja) 2005-02-15 2010-06-30 三菱電機株式会社 ロボットの制御装置および制御方法

Also Published As

Publication number Publication date
US20110218673A1 (en) 2011-09-08
WO2010047043A1 (en) 2010-04-29
JP2010102409A (ja) 2010-05-06
US8543239B2 (en) 2013-09-24

Similar Documents

Publication Publication Date Title
JP5231935B2 (ja) ロボット制御装置
JP6717768B2 (ja) 生産ラインにおける運用を考慮した学習制御を行うロボット及びその制御方法
JP5383911B2 (ja) ロボット制御装置
JP5242342B2 (ja) ロボット制御装置
JP6333795B2 (ja) 学習による教示作業の簡易化及び動作性能向上機能を備えたロボットシステム
JP4850956B2 (ja) 学習制御機能を備えたロボット
JP5025598B2 (ja) 干渉チェック制御装置および干渉チェック制御方法
JP5238885B2 (ja) ロボット制御装置
JP5480198B2 (ja) 学習制御機能を備えたスポット溶接ロボット
US10254741B2 (en) Robot apparatus having learning function
JP6386516B2 (ja) 学習機能を備えたロボット装置
EP3427905A1 (en) Motion generation method, motion generation device, system, and computer program
JP5318727B2 (ja) 情報処理方法及び装置並びにプログラム
JP5383756B2 (ja) 学習制御機能を備えたロボット
CN109382824B (zh) 用于操作机器人的方法和机器人系统
JP6564433B2 (ja) ロボットシステム
JP2009172721A (ja) ロボット軌道制御装置及びロボット軌道制御方法
JP2019021087A (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
JP2014174842A (ja) S字加減速制御プログラム、動作制御プログラム、記録媒体、コントローラ、s字加減速制御演算方法およびワーク動作制御システム
JP2009045678A (ja) ロボットの作業成否判定方法およびロボットシステム
JP6008766B2 (ja) 支援装置およびコンピュータプログラム
CN117083157A (zh) 用于控制机器人的位移的方法
JP5290934B2 (ja) 情報処理方法及び装置並びにプログラム
JP5028674B2 (ja) 移動体の指令生成方法および指令生成装置
US20230084968A1 (en) Object manipulation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121025

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5231935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151