JP2628297B2 - ロボット制御方法およびその装置 - Google Patents

ロボット制御方法およびその装置

Info

Publication number
JP2628297B2
JP2628297B2 JP59137460A JP13746084A JP2628297B2 JP 2628297 B2 JP2628297 B2 JP 2628297B2 JP 59137460 A JP59137460 A JP 59137460A JP 13746084 A JP13746084 A JP 13746084A JP 2628297 B2 JP2628297 B2 JP 2628297B2
Authority
JP
Japan
Prior art keywords
interpolation
point
speed
data
passing
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.)
Expired - Lifetime
Application number
JP59137460A
Other languages
English (en)
Other versions
JPS6116305A (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.)
Shinmaywa Industries Ltd
Original Assignee
Shinmaywa Industries Ltd
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 Shinmaywa Industries Ltd filed Critical Shinmaywa Industries Ltd
Priority to JP59137460A priority Critical patent/JP2628297B2/ja
Priority to US06/744,601 priority patent/US4689756A/en
Publication of JPS6116305A publication Critical patent/JPS6116305A/ja
Application granted granted Critical
Publication of JP2628297B2 publication Critical patent/JP2628297B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/41Numerical 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 interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • 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/45Nc applications
    • G05B2219/45083Manipulators, robot

Landscapes

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

Description

【発明の詳細な説明】 (発明の分野) この発明は、ロボット制御方法およびその装置に関す
るもので、特に、被制御部の出発時や停止時などにおけ
る補間制御に改良を加えたロボット制御方法およびその
装置に関する。
(先行技術の説明) プレイバック方式その他のロボットにおいては、ティ
ーチングなどの方法によって得られた離散的な通過点
(出発点や停止点などを含む。)の間を補間する補間演
算を行ない、それに基づいて、被制御部の運動を制御す
る必要が生ずる。
このうち、被制御部の出発時や停止時における制御で
は、速度0の通過点に相当する出発点や停止点と、有限
の速度で通過すべき、隣接する通過点との間の区間で、
かなりの大きさの速度変化を被制御部に与えなければな
らない。ところが、出発点や停止点での高精度の位置決
めが要求される場合には、通常、各制御軸のサーボ系の
ザーボゲインを高く設定しているため、従来の直線補間
などの方法に基いて被制御部に大きな速度変化を直接に
与えると加減速時の衝撃が大きくなってしまう。しかし
ながら、このような衝撃に耐えるだけの剛性をロボット
の各部に持たせようとすれば、必然的に各部の重量が大
きくなってしまい、被制御部の慣性もまた大きいものと
なる。慣性の大きな被制御部に対する高精度の位置決め
を維持するためにはサーボゲインをさらに高めなければ
ならず、結局、これらの問題の解決は非常に困難となっ
てくる。
このような事情は、高慣性負荷を有するロボット、た
とえば大型のロボットや複合ロボット、それに、重量物
を移動させる機能を有するロボットなどにおいて、特に
大きな問題となっている。
(発明の目的) この発明は、出発時や停止時などの衝撃を小さくし、
それによって高精度の位置決めを確保することのできる
ロボット制御方法およびその装置を提供することを目的
としている。
(発明の構成) この発明のロボット制御方法は、駆動機構を有するロ
ボットの作業点に、所定の順序で所定の離散的な通過点
を通過する運動を行なわせるためのロボット制御方法で
あって、前記通過点のそれぞれの位置を表現する位置デ
ータと、前記通過点のそれぞれにおいて前記作業点が有
すべき速度を表現する速度データとを準備するステップ
と、前記位置データと前記速度データとに基づいて、所
定の時間間隔ごとの値を有し、かつ前記通過点の間にお
ける前記作業点の運動を補間する補間データを求めるス
テップと、前記補間データに基づいて前記駆動機構を駆
動するステップとを含んでいる。
そして、前記補間データを求めるステップは、前記所
定の順序に沿って隣接する2つの通過点Xa,Xbのうちの
少なくとも一方Xaにおける前記速度データの値が略0で
ある場合に、前記作業点の加速度の絶対値が、 (a)通過点Xaにおいて最大になるという条件と、 (b)通過点Xaから見て他方の通過点Xbの側に設定され
た所定点に近づくに従って減少するという条件と、 の双方を記述した微分方程式に基づいて、前記2つの通
過点の間を補間する補間データを演算して求める工程と
を備える。
この微分方程式は、 第1の時間間隔Δt1ごとに更新計算される位置につい
ての第1の差分方程式と、 第2の時間間隔Δt2ごとに更新計算される速度につい
ての第2の差分方程式と、 の組み合わせによって近似されている。
上記第1と第2の時間間隔Δt1,Δt2は、互いに異な
る整数値N,Mに対して、 上記第1の差分方程式に含まれる第1の乗算の係数が
2Nとなり、 上記第2の差分方程式に含まれる第2の乗算の係数が
2Mとなる、 ように決定される。
そして、前記補間データを求めるステップは、 前記第1と第2の差分方程式の前記第1と第2の乗算
とに相当する演算を、直前に計算された補間値を含んだ
値のNビットシフトおよびMビットシフトによって達成
しつつ、新しい位置および速度の補間値を求めるステッ
プを含む。
また、この発明のロボット制御装置は、上記方法を達成
する手段を含んでいる。
後述する実施例においては、上記第1と第2の時間間
隔Δt1、Δt2はそれぞれΔt,Δt/Sに相当し、整数N,Mは
それぞれN,(N+k′)に相当する。
ただし、この明細書で用いる「作業点」という用語
は、ロボットのツールの先端やエンドエフェクタの先
端、さらにはレーザ熔断ロボットなどではレーザの焦点
位置など、ロボットが実際に作業を行なう位置を指すも
のとしている。
(発明の実施例) (1)実施例の全体的構成と動作 第1図は、この発明の一実施例であるロボット制御装
置と、この制御装置を用いて制御されるロボットとを例
示した全体図である。第1図に示したロボットRBは、直
角座標型のレーザ熔断ロボットであるが、この発明のロ
ボット制御装置は他の種類のロボット、たとえば各種の
座標型や多関節型の、溶接ロボットや組立ロボットなど
の制御にも用いることができるということを、あらかじ
め指摘しておく。
第1図において、このロボットRBは基台1を有してお
り、この基台1は、水平方向すなわち図のX方向に延び
た作業台2と、この作業台2の両側部から、X方向に対
して直角に延びた、支持台3とを備えている。作業台2
の上には、X方向に移動自在な移動台4が載置されてお
り、この移動台4は、モータM1(図示せず)によって駆
動されて、X方向に往復運動を行なう。支持台3の上に
は、2本のコラム5が略平行に立設されており、これら
のコラム5の頂部の間には、図のY方向に延びたビーム
6が架設されている。このビーム6には、鉛直方向すな
わち図のZ方向に延びた移動コラム7が、Y方向に移動
自在に取りつけられている。モータM2は、この移動コラ
ム7をY方向に往復運動させるための動力源である。移
動コラム7には、その下端に取りつけられたモータM4
Z方向に上下させるためのモータM3が設けられている。
モータM4の下部には、Z方向に延びたアーム8が、モー
タM4の回転軸からはずれた位置に取りつけられており、
モータM4の回転に伴なって、このアーム8は図のθ方向
に回転する。また、アーム8の下側部には、レーザトー
チTが取りつけられたモータM5が設けられており、この
モータM5が回転することによって、レーザトーチTが図
のψ方向に旋回する。これらのモータM1〜M5には、それ
ぞれのモータの回転角をエンコードするためのエンコー
ダE1〜E5(図示せず)が、それぞれ取りつけられてい
る。
レーザ発振装置9は、熔断作業に必要とされるだけの
パワーを有するレーザ光を発振し、レーザガイドパイプ
10を通して、このレーザ光をレーザトーチTへと与える
ことができる。制御装置11は、このロボットRBとレーザ
発振装置9とを制御するためのものであって、この発明
の実施例であるロボット制御装置である。
第2図は、前述した制御装置11の中に含まれる制御回
路20のブロック図である。この制御回路20は、主制御回
路として、たとえばマイクロコンピュータ21を含んでい
る。マイクロコンピュータ21は、バス213を介して互い
に接続されたCPU211、メモリ212およびI/Oポート214を
備えている。また、制御回路20には、I/Oポート214を介
してマイクロコンピュータ21の内部へと接続された補間
回路22が含まれている。この補間回路22は、後に詳しく
説明するように、出発時や停止時などにおいてティーチ
ング点の間の補間演算を行なうための回路である。この
補間回路22は、この図に示したように、専用の回路とし
て設けてもよく、また、マイクロコンピュータ21内にお
いて、プログラムに基いく補間演算を行なわせることに
よって、この補間回路22を省略することも可能である。
I/Oポート214にはまた、前述したモータM1〜M5とエン
コーダE1〜E5とをそれぞれ含んだサーボ系Sα1〜S
α5、ティーチングボックス23、ティーチングスイッチ
SWおよびレーザ発振装置9が接続されている。ティーチ
ングボックス23は、ティーチング,テスト,再生の各モ
ードを切替えるモード切替スイッチや、各種制御条件を
入力する入力スイッチなど(図示せず)を備えている。
また、ティーチングスイッチSWを押すことによって、エ
ンコーダE1〜E5からの情報がティーチング情報として、
マイクロコンピュータ21の中に取り込まれる。
第1図に示したロボットRBに再生動作を行なわせるに
は、まず、ワーク(図示せず)を、移動台4の上に固定
する。その後、ティーチングボックス23を操作すること
によって、再生モードとする。すると、CPU211は、メモ
リ212に記憶されているティーチング情報を順次読み出
し、バス213およびI/Oポート214を介して、この情報を
補間回路22へと与える。この補間回路22は、後に詳しく
説明するような構成と動作とを有しており、入力された
出発時のティーチング情報の補間演算を行なって得られ
た補間指令値をモータM1〜M6へと出力する。モータM1
M6は、この補間指令値に基づいて回転し、それによって
レーザトーチTの先端は、出発点から加速して次のティ
ーチング点へと至る。その後、CPU211は出発時および停
止時以外の区間すなわち中間区間の補間演算を行なう。
レーザトーチTの先端は、この演算結果に基づいて、ワ
ークに対する相対位置と相対速度とを変化させながら、
所定の軌跡を描く。CPU211は、これらと同時に、レーザ
発振装置9へと出力制御信号を与える。レーザ発振装置
9は、この出力制御信号に基づいて、そのレーザ出力
を、所定の出力値に固定するか、または必要に応じて変
化させる。このような動作によって、レーザトーチTか
らのレーザがワークに照射され、所望の軌跡に従ったワ
ークの熔断が行なわれる。停止点のひとつ手前のティー
チング点に至ると、再び補間回路22が動作し、停止時の
補間演算を行なって、レーザトーチTを所定の停止点に
停止させる。
(2)補間制御の原理 ここで、前述した制御回路20において実行される補間
の原理を、ロボット作業点の滑らかな出発(軟出発)、
作業点の滑らかな停止(軟停止)、そして軟出発と軟停
止とを組合わせたもとのの順序に従って具体的に則して
説明する。
第3図は、軟出発の原理を説明するための図であっ
て、時刻t=0において位置ベクトルの位置に停止
していた作業点を、の位置を速度で通過させる
という条件を示している。このうち、は、テ
ィーチングその他の方法によってあらかじめ与えられた
値であるが、速度については、少なくともその大き
さu1があらかじめ与えられていればよく、その方向は、
たとえばからへ向かう方向と、から
(次のティーチング点の位置)へと向かう方向の中間
の方向とするなどの方法によって、演算によって求めた
ものであってもよい。
この発明においては、出発時などにおいて、作業点の
加速度(t)を、所定の位置からの距離に相関するよ
うに構成するのであるが、軟出発の場合においては、前
記所定の位置としてたとえばを採用し、前記相関関
係の例として比例関係を採用することができる。する
と、出発点では加速度が最大になり、最初の通過点
で加速度がゼロになるような動きを実現することが
できる。
ここにおいて、出発点において加速度を最大にす
ることは、一見すると「軟出発」という目的に反するよ
うに見える。しかしながら、出発点と最初の通過点
とを含む区間付近の全体を考えることによって、こ
の実施例が「軟出発」に対応していることがわかる。
すなわち、物理的な1点としての出発点だけを考
えると、そこでの加速度(したがって駆動力)を小さく
する方が機構的な衝撃は少ないが、そのようにしてあま
りにゆっくりと出発させると、最初の通過点付近に
なって、(その通過点では、あらかじめ指定されて
いる速度に到達させなければならないために)短時
間で速度を急激に上昇させる必要がある。すると、この
部分での加速度(従ってロボットへの駆動力)も極めて
大きくなり、衝撃も大きくなる。
これに対してこの実施例のように出発点で加速度
を最大にするということは、最初の通過点までにま
だ十分に余裕があるうちに加速しておくということであ
るから短期間で速度を急激に上昇させる必要がなく、全
体としては大きな加速度を使用しなくても済むことにな
る。
このように、この実施例のように出発点での加速
度を最大にすることは、出発点から最初の通過点
付近までの区間の全体を考えたときに「軟出発」を実
現していることになる。
また、後述する「軟停止」については、この「軟出
発」とは時間的に逆の動きとなり、上記と同様の原理で
衝撃を抑制可能である。
次に、この軟出発の制御をより定量的に解析すると、
kを定数としたとき、次の式が成立する。
ここで、(t),(t)はそれぞれ、時刻tの関
数としての作業点の位置および速度である。次の(2)
式の関係を(1)式に代入すると、時刻tに関する、位
置(t)についての2階の微分方程式である(3)式
が得られる。
(3)式は容易に解くことができて、次の(4),
(5)式が得られる。
(t)=()cos(kt)+ …(4) (t)=−k()sin(kt) …(5) ここで、作業点がに至るまでの移動時間をTとす
ると、その時間Tは(4)式においてx(T)=
なるという条件から、 cos(kT)=0 …(5A) すなわち、 kT=π/2 …(5B) という関係が得られる。
また、時刻t=Tに時点おける速度(T)を
書くと、(5)式の右辺においてt=Tを代入するとと
もに(5B)式を使用することによって、 =−k() …(6) が得られる。第3図にこの量が示されており、この
は、実際の装置での演算の際に利用する量であ
る。
なお、後の参照の便宜のために上記(5B)式を次の
(7)式として再録しておく。
kT=π/2 …(7) 軟出発の制御にあたっては、(4),(5)式をそのま
ま演算することも可能であるが、ここでは、加算の繰返
しによって、微分方程式を解くという方法を採用する。
そこで、(2)式と(3)式とを微小時間幅Δtに対す
る式と考え、時刻tにおける作業点の位置と速度とをそ
れぞれoldoldとし、時刻t+Δtにおけるそれら
をそれぞれnewnewとすれば、次の(8)式および
(9)式が得られる。
これらの式を整理すると、次の式を得る。newoldold・Δt …(10)newold+k2(−old)・Δt …(11) これらの式において、Δt=2-N(Nは整数)ととれ
ば、oldや(−old)とΔtとの掛算は、これ
らの量を下位側へNビットだけシフトさせる操作に置換
することができる。ところが、(11)式の右辺における
k2の掛算がまだ残っている。このため、 2k′・Δt′=k2・Δt …(12) が成立するように、整数k′および微小時間幅Δt′を
定義すると、(11)式の右辺第2項は、次の(14)式の
ように書き換えることができる。
k′(−old)Δt′ =2k′(−old)S・Δt …(14) ただし、 である。このような変形をすることによって、k2の掛算
は2k′の掛算へと置換され、さらに、2k′の掛算は
k′ビットだけの、上位側へのシフトによって置換える
ことができることになる。ところが、S・Δtというフ
ァクタがあるために、今度はSの掛算という問題が生ず
る。これを解決するためには、速度についての繰返し演
算をΔt/Sごとに行なえばよい。つまり、Δt/Ssecごと
に、2k′(−old)・Δtだけの増加分を
oldに加算して行けば平均として、Δtあたり、 だけの増加分がoldに加算されるから、上記(14)式
の第1辺と等価な加算がなされることになる。Δtの掛
算は、Δt=2-N(Nは整数)ととることによって、シ
フトに置換される。すなわち、(10)〜(16)式によっ
て得られる次の(17),(18)式の加算を、(19)式の
初期条件のもとで、位置についてはΔtの時間間隔で、
速度についてはΔt/Sの時間間隔で、それぞれ繰返せば
よいことになる。newoldold・Δt …(17)newold+2k′(−old)・Δt …(18)iniini= …(19) (17)式を[T/Δt]回繰返し(記号[ ]は整数化
に関するガウスの記号を示す)、この繰返しと並行して
(18)式を[T/Δt]回繰返すと、軟出発に関する補間
制御は終了する。その後、CPU211が次のティーチング点
の情報を取り込んで、中間区間における補間制御を行
う。この中間区間における補間制御については、この発
明において何らの限定を行なうものではなく、任意の補
間法に基づくものであってよい。
このように、シフト演算と加算のみで微分方程式を解
くことによって、演算時間は短縮化され、専用のハード
ウェアでこの演算を行なわせることも容易になる。累積
誤差は、上記の例では1デシット以下となり、この近似
による誤差は、実用上、問題とならない。
ところで、この実施例では最初の通過点の位置は
種々の指定が可能であるが、どのような指定であっても
軟出発の性質は保持される。
すなわち、第3図の軌跡はの関数で
あるため、これらの値が異なると異なる軌跡になるが、
において加速度が最大となり、に近づくに従
って加速度が減少する」という性質は常に保持させるこ
とができる。
それは、この条件を表現した微分方程式((1)式)
の解である(4)式は、これらの諸量
をパラメータとして含んでいるにすぎず、その微分方程
式の本質を変更するものではないためである。((4)
式中のkは、(6)式によってから定
まる値である) 次に、軟停止の方法を説明する。軟停止における条件
は、第4図に示すように、=-1を速度-1で通過し
た作業点を=′で停止させるということである。
この場合も(1)式と同様に、作業点の加速度(t)
が、通過点-1からの距離に比例するような、次の(2
0)式を基礎とすることができる。
(t),kなどの意味は、前と同様である。境界条件が
軟出発と異なるため、この微分方程式の解は、次のよう
になる。
(t)=(′-1)sin kt+-1 …(21) (t)=k(′-1)cos kt …(21) ただし、-1 =k(′-1) …(23) kT=π/2 …(24) である。
これらの式の演算も、軟出発と同様に加算の繰返しに
よって微分方程式を解くという方法に置換することが可
能であって、前述した(17)〜(19)式に対応する式と
して、次の(25)〜(27)式が得られる。newoldold・Δt …(25)newold+2k′(−old-1)・Δt …(26)ini-1ini-1 …(27) ここでも同様に、速度についての加算の繰返しは、Δt/
Sごとに行なわれる。
次に、ひとつのティーチング点から出発し、次のティ
ーチング点において停止するような場合を考える。この
場合には、第5図に示すように、作業点が=で軟
出発した後に、次のティーチング点=に軟停止さ
せることが必要になってくる。この場合の例として、出
発点と停止点との中間点において、作業点の加速度
(t)を最小にし、それから離れるに従って、加速度
(t)を増加させるという方法をとる。したがって、基
本方程式は、 である。ただし、この場合は、 kT=π (29) である。この方程式の解は次のようになる。
前と同様に、加算の繰返しのための式は、次のように
なる。newoldold・Δt …(32) iniini= …(34) ここでもやはり、速度についての加算の繰返しは、t/
Sごとに行なわれる。尚、この場合には、最大速度は−k
/2である。
(3)補間回路22の構成と動作 上述した補間法に基づく演算を行なう補間回路22の詳
細を、第6図にブロック図として示す。
この補間回路22のうち、I/Oポート214,バス213を介し
てCPU211およびメモリ212へと接続されたバッファ101,1
02はそれぞれ、速度および位置に関する初期値ini
iniをバッファするためのものであって、その出力は
それぞれ、速度および位置の値をバッファするバッファ
105,107へと与えられている。加算器104は、入力する2
つの信号を、下に述べる形で加算して、その出力をバッ
ファ105へと与えるようになっている。このバッファ105
の出力は、加算器104および次段の加算器106へと与えら
れるとともに、ライン118を介してI/Oポート214へと与
えられている。I/Oポート214へのこの出力は速度指令値
として用いられる。加算器106は、バッファ105,107の出
力を、やはり下に述べる形で加算して、その加算結果を
バッファ107へと与えるようになっている。バッファ107
の出力は、加算器106,減算器108に与えられているほ
か、位置指令値として、ライン117を介してI/Oポート21
4へ与えられている。バッファ103は、I/Oポート214を介
してCPU211から送られてくる所定の位置に関するデータ
をバッファするためのものであって、その出力は減算器
108に与えられる。減算器108の出力は、入力する信号を
k′ビットだけ上位側にヒフトさせるためのシフタ109
を介して加算器104に与えられている。
この補間回路22はまた、Δt(=2-10sec)ごとにク
ロック信号φを発生する第1のクロック発生回路110
と、Δt/S(=2-10/Ssec)ごとにクロック信号φを発
生する第2のクロック発生回路111とを備えている。第
1のクロック発生回路110は、メモリ212からΔtの値を
受け取ってバッファする第1のクロック用バッファ112
と、タイマ114およびこの第1のクロック用バッファ112
のそれぞれの出力を受けて第1のクロック信号φを出
力する第1のカウンタ113とを備えている。また、第2
のクロック発生回路111も同様に、メモリ212からΔt/S
の値を受け取ってバッファする第2のクロック用バッフ
ァ115と、タイマ114およびこの第2のクロック用バッフ
ァ115の出力を受けて第2のクロック信号φを出力す
る第2のカウンタ116とを備えている。これらのクロッ
ク発生回路は、それぞれΔt,Δt/Sの時間ごとに、第1
と第2のカウンタ113,116のキャリ信号を、それぞれ第
1と第2のクロック信号φ,φとして出力する。こ
のうち、第1のクロック信号φはバッファ107へ、ま
た、第2のクロック信号φはバッファ105へと与えら
れている。
上述した加算器104は、その2つの入力のうち、前段
のシフタ109の出力として得られる入力を下位側に10ビ
ットだけシフトさせて、残りの入力つまり後段のバッフ
ァ105の出力と加算するように構成されている。したが
って、前段のシフタ109からの入力をQ1とし、後段のバ
ッファ105からの残りの入力をQ2とすると、この加算器1
04によって得られる加算出力Qは、 Q=Q2+Q1×2-10 …(35) となっている。また、加算器106も同様に、前段のバッ
ファ105からの入力を下位側に10ビットだけシフトさせ
て、後段のバッファ107からの入力と加え合わせる。こ
のため、加算器106においても、(35)式と同様の演算
が行なわれる。
次に補間回路22を用いて軟出発の制御を行なう場合の
動作を説明する。まず、速度の初期値iniとして
が、また、位置の初期値iniとして最初のティーチン
グ点の位置が、CPU211からバッファ101,102へとそ
れぞれ入力される((19)式参照)。バッファ103に
は、次のティーチング点の位置がCPU211から入力さ
れる。
次に、iniiniはそれぞれ、バッファ105,107へ
と移される。クロック信号φが与えられると、バッフ
ァ105はその中に格納していたiniを加算器104へと与
える。これと同時に、iniは加算器106へも与えられ
る。一方、バッファ107の中に格納されていたiniは、
加算器106に与えられて、iniを10ビットだけ下位側へ
シフトした信号と加算される。したがって、加算器106
では(iniini・Δt)の加算が行なわれる。
バッファ107の出力であるiniは、減算器108にも与
えられる。減算器108は、このxiniを、バッファ103の
出力であるから差し引いて、(−ini)を
シフタ109に与える。シフタ109はこの信号をk′ビット
だけ上位側にシフトして加算器104に与える。このた
め、加算器104の他の入力は2k′(−ini)と
なる。加算器104はこの入力を下位側に10ビットだけシ
フトさせて、バッファ105の出力であるiniと加え合わ
せる。したがって、加算器104の出力はini+2
k′(−ini)・Δtとなる。バッファ105は、
第2のクロック信号φの次のサイクルにおいて、この
加算器104の出力をoldとしてバッファする。第2のク
ロック信号φの各サイクルにおいて、加算器104とバ
ッファ105とは、同様の動作を繰返す。このため、バッ
ファ105,107にそれぞれ格納されている値をそれぞれ
oldoldとすれば加算器104は、(18)式の演算を行
なってnewを求め、これをバッファ105へと与えること
になる。このnewは、次のサイクルにおいてoldとし
て取扱われる。加算器106とバッファ107もまた同様に、
第1のクロック信号φのサイクルに従って(17)式の
演算を繰返す。
クロック信号としてφとφの2つの信号を用いて
いるため、(17)式と(18)式のそれぞれの演算のサイ
クルは互いに異なったものとなっている。このため、た
とえばφ<φの場合には、速度についての繰返しが
位置についての繰返しよりも遅くなり、それだけ加算回
数が減ることになるが、(18)式に関連して既に説明し
たように、繰返しごとの増加分を多くとっているため、
現実にバッファ105,107からそれぞれ出力される速度指
令値および位置指令値は、その時点における指令値とし
て適当なものとなっている。
位置についての演算の繰返しが[T/Δt]回行なわれ
ると、軟出発の制御が完了し、CPU211による中間区間の
制御に移る。この中間区間の制御はCPU211そのものが行
なってもよく、I/Oポート214に、中間区間専用の第2の
補間回路(図示せず)を接続し、この第2の補間回路に
よって、補間演算を行なってもよい。中間区間における
補間演算を位置,速度,加速度などについての微分方程
式の繰返し演算によって行なう場合には、位置と速度に
ついての繰返し演算を行なう回路部分を第6図の回路と
共用できるため、補間回路22を兼用のものとして構成し
てもよい。
次に、中間区間における補間制御が完了すると、補間
回路22による軟停止の制御に移る。軟停止の制御におい
ては、バッファ101,102に与えられる初期値はそれぞれ
-1-1であり、バッファ103には-1が与えられる
((25)〜(27)式参照)。(17)〜(19)式と(25)
〜(27)式とは、定数値が異なるほかは同じ構造を有し
ているため、この後の動作は軟出発に関して説明した動
作と同様である。軟停止の補間演算が、位置について
[T/Δt]回行なわれると、補間制御は完了する。
軟出発後そのまま軟停止を行なうような場合には、中
間区間の補間制御を行なうことなく、(32)〜(34)式
による繰返しを行ないさえすればよい。この場合には、
初期値ini=およびiniをそれぞれバッファ
101,102へと与えることになる。また、バッファ103には
/2を与えれば、上述した軟出発・軟停止を別
個に行なうものと同様の動作によって補間制御が行なわ
れる。第6図に示した例では、メモリ212からの
のデータを用いてCPU211が/2の値を計算
するように構成している。しかしながら、第6図のバッ
ファ103のかわりに、第7図に示した所定位置演算回路3
00を用いれば、この演算をCPU211で行なわせずにすむこ
とになる。このこ所定位置演算回路300は、I/Oポート21
4を介して入力された、メモリからのの値を
それぞれバッファするバッファ301,302と、この2つの
バッファ301,302の出力のそれぞれを下位側に1ビット
分だけシフトして加算する加算器303とを含んでいる。
この回路では、最初にをバッファ302にバッファさ
せ、次のステップでをバッファ301に移すとともに
をバッファ302に入力する。次に、これらのバッフ
ァ301,302のそれぞれの出力を加算器303へと
与える。したがって、加算器303からはシフトと加算と
によって得られた/2の値が出力され、第6図
に示した減算器108へと与えることになる。他の動作
は、第6図の回路と同様である。
このような補間演算を行なうことによって、第3図〜
第5図に曲線として示したような、滑らかな作業点の軌
跡が得られる。このため、出発時や停止時における衝撃
は大幅に緩和されることになる。また、微分方程式を基
礎にすることによって、補間演算を高速に行なうことが
できる。
(4)制御回路20の変形例 ところで、上述した実施例では、軟出発や軟停止の補
間演算は、専用のハードウェアである補間回路22におい
て行なわれており、これによって、高速の補間演算が可
能となっている。しかしながら、軟出発や軟停止の補間
演算もCPU211の中で行うように構成し、補間回路22を省
略することも可能である。そこで以下では、CPU211によ
って軟出発・軟停止の補間演算を行なう場合の動作を、
第8図に示したフローチャートを参照して説明する。
まず、ティーチングボックス23を操作して再生モード
とすると、CPU211はメモリ212から、x0,x1および整数
Nを読取る(ステップS1)。次に、Δt=2-N,k,「およ
び[T/2-N]を計算し(ステップS2)、これらの値を用
いて、k′,Δt′,SおよびΔt/Sを計算する(ステッ
プS3)。とを用いてoldoldとを定義し、こ
れらの値をそれぞれ位置指令値,速度指令値として出力
する(ステップS4)。CPU211内部のタイマ(図示せず)
をt=0にセットし(ステップS5)、その後、繰返しカ
ウントi,jを共に1とする(ステップS6)。次に、時刻
tを読取り(ステップS7)、この時刻tがi×Δtより
も大きいか否かを判断する(ステップS8)。tがi×Δ
tよりも大きいときには、newを求める(ステップS
9)。この演算のうち、Δtの掛算は、oldをNビット
だけ下位側にシフトすることによって達成することがで
きる。繰返しカウントをi=i+1とし(ステップS1
0)、newを新たな位置指令値として出力する(ステッ
プS11)。newoldしておく(ステップS12)。もち
ろん現実のプログラム作成においては、これらを区別せ
ず単一の量に対するメモリ領域を用いればよいが、第
8図では「new」で示す量と「old」で示す量の関係を明
確にする目的で、これらの量を別個に書いている。ステ
ップS8においてt<i×Δtの場合には、ステップS9〜
S12は迂回される。したがって、ここまでのステップで
は、Δtの時間が経過するごとに、新たな位置指令値が
出力されることを示している。ステップS13では、iが
[T/2-N]よりも大きいか否か、すなわち位置について
の所定の繰返し回数に相当する繰返しが行なわれたか否
かを判断し、i<[T/2-N]の場合には、ステップS14に
おいて、tがj×Δt/Sよりも大きいか否かが判断され
る。tがj×Δt/Sよりも大きいときにはステップS15に
おいてnewが求められる。繰返しカウントjをj+1
とし(ステップS16)、newを新たな速度指令値として
出力する(ステップS17)。newoldとし(ステッ
プS18)、ステップS7へと戻る。ステップS14において、
tがj×Δt/Sよりも小さいときには、速度についての
値の更新は行なわれず、直接にステップS7へ戻る。した
がって、newの演算は、Δt/Sごとに行なわれることに
なる。
ステップS13において、位置についての繰返し回数が
所定の回数[T/2-N]に達すると、任意の補間法に基い
た中間区間の補間制御に移る(ステップS19)。この中
間区間の補間制御は、直線補間その他の任意の補間法に
基づいたものでよい。中間区間の補間制御が完了する
と、軟停止の補間制御(ステップS20)に移る。このス
テップS20の詳細は図示していないが、定数
がそれぞれ-1,′となり、速度の初期値が
なるほかは、ステップS1からステップS18までの手続と
同様であり、重複説明は省略する。ステップS20が終了
すると、補間演算は完了する。
軟出発の後に引き続いて軟停止を行なう場合は、第8
図において、をそれぞれとし、ス
テップS3において/2の計算ステップを付加す
るなどの変形を加えればよい。この場合は、ステップS1
9およびS20は不要である。
(5)参考技術との比較 ところで、このような制御方法に若干類似した原理を
用いた技術(以下、「参考技術」と言う)が、昭和59年
3月26日にこの出願の出願人によって出願された特願昭
59−58645号で提案されいている。この参考技術では、
出発時や停止時における位置指令を、時間に関する三角
関数を用いて演算している。一方、本願発明において
も、前述した(21),(22)式などのように、時間に関
する三角関数が出現するような実施例を包含している
が、次の点において、参考技術と本願発明とは明確に区
別される。
すなわち、参考技術では三角関数を直接に演算するこ
とによって位置についての指令値を求めることを前提と
しているのに対し、本願発明では、微分方程式を基礎に
して指令値を求めることを原理としている。この微分方
程式の数学的な解としては三角関数が得られる場合もあ
るが、所定の微分方程式を基礎とすることと、その微分
方程式の解のみに着目することとは、数学的には類似し
たものであっても、実際の技術としての構成と効果にお
いては大きな違いがある。特に、演算の高速性が確保で
きるということは、本願発明のきわめて重要な性質であ
る。
(6)備考 以上説明した実施例・変形例では、繰返し時間を2-N
(Nは整数)secととることによって、シフト動作と加
算だけで上記微分方程式を解き、それによって高速な演
算制御が得られるが、この発明の補間制御はこのような
繰返し時間の導入を必須とするものではない。
また、ここで言う「出発」「停止」とは、それぞれロ
ボット作業の開始および完了時のみを指すものではな
く、作業の途中ではあるが作業点の速度として略0とな
るような通過点における振舞をも包含する用語と理解さ
れたい。
(発明の効果) 以上説明したように、この発明によれば、出発時や停
止時などの衝撃を小さくし、それによって高精度の位置
決めを確保することのできるロボット制御方法およびそ
の装置を得ることができる。
特に、この発明では、速度データの値が略0である通
過点Xaの付近で前記作業点の加速度の絶対値が大きくな
る。
このため、通過点Xaが出発点の場合には、出発後、比
較的早い時期に加速をしていることになる。したがっ
て、この場合には速度が早く上昇し、その後の加速度が
減少しても通過点Xbへの到達時刻が早い。
また、通過点Xaが停止点の場合には、停止点の近くま
で、比較的高い速度を維持する。
このため、アームの剛性などの問題でポイントとなる
最大加速度の上限を制限したとしても、平均速度が大き
く、時間のロスが少ない。
また、微分方程式を基礎にした制御を行なっているた
め、制御を高速に行なうことができる。
さらに、微分方程式を2つの差分方程式で近似し、2
種類の時間間隔で繰返し演算を行うとともに、その演算
を直前の補間値のビットシフトによて実行できるため、
演算時間を要する掛算(乗算)が不要になってロボット
制御が高速化する。
【図面の簡単な説明】
第1図はこの発明の実施例であるロボット制御装置を用
いたシステムの全体図である。第2図は第1図のロボッ
ト制御装置に含まれる制御回路の全体的構成を示す図で
ある。第3図ないし第5図はこの発明の実施例に用いら
れる補間法を説明するための図である。第6図はこの発
明の実施例に含まれる補間回路の例を示すブロック図で
ある。第7図は第6図の補間回路の変形例を説明するた
めの図である。第8図はこの発明の変形例を説明するた
めのフロー図である。 11……制御装置、20……制御回路、21……マイクロコン
ピュータ、22……補間回路、101〜103,105,107,301,30
2,……バッファ、104,106,……加算器、108……減算
器、109……シフタ、
フロントページの続き (72)発明者 野口 文雄 西宮市田近野町6番107号 新明和工業 株式会社開発センター内 (72)発明者 藤長 茂樹 西宮市田近野町6番107号 新明和工業 株式会社開発センター内 (56)参考文献 特開 昭57−178689(JP,A) 特開 昭58−58609(JP,A) 特開 昭58−1208(JP,A) 特開 昭49−8677(JP,A) 特開 昭58−114207(JP,A) 特開 昭49−62913(JP,A) 特開 昭58−154009(JP,A) 特開 昭59−90107(JP,A) 実開 昭49−109094(JP,U)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】駆動機構を有するロボットの作業点に、所
    定の順序で所定の離散的な通過点を通過する運動を行な
    わせるためのロボット制御方法であって、 前記通過点のそれぞれの位置を表現する位置データと、
    前記通過点のそれぞれにおいて前記作業点が有すべき速
    度を表現する速度データとを準備するステップと、 前記位置データと前記速度データとに基づいて、所定の
    時間間隔ごとの値を有し、かつ前記通過点の間における
    前記作業点の運動を補間する補間データを求めるステッ
    プと、 前記補間データに基づいて前記駆動機構を駆動するステ
    ップとを含み、 前記補間データを求めるステップは、 前記所定の順序に沿って隣接する2つの通過点Xa,Xbの
    うちの少なくとも一方Xaにおける前記速度データの値が
    略0である場合に、 前記作業点の加速度の絶対値が、 (a)通過点Xaにおいて最大になるという条件と、 (b)通過点Xaから見て他方の通過点Xbの側に設定され
    た所定点に近づくに従って減少するという条件と、 の双方を記述した微分方程式に基づいて、前記2つの通
    過点の間を補間する補間データを演算して求める工程と
    を備え、 前記微分方程式は、 第1の時間間隔Δt1ごとに更新計算される位置について
    の第1の差分方程式と、 第2の時間間隔Δt2ごとに更新計算される速度について
    の第2の差分方程式と、 の組み合わせによって近似され、 前記第1と第2の時間間隔Δt1,Δt2は、互いに異なる
    整数値N,Mに対して、 上記第1の差分方程式に含まれる第1の乗算の係数が2N
    となり、 上記第2の差分方程式に含まれる第2の乗算の係数が2M
    となる、 ように決定され、 前記補間データを求めるステップは、 前記第1と第2の差分方程式の前記第1と第2の乗算と
    に相当する演算を、直前に計算された補間値を含んだ値
    のNビットシフトおよびMビットシフトによって達成し
    つつ、新しい位置および速度の補間値を求めるステップ
    を含むことを特徴とするロボット制御方法。
  2. 【請求項2】駆動機構を有するロボットの作業点に、所
    定の順序で所定の離散的な通過点を通過する運動を行な
    わせるためのロボット制御装置であって、 前記通過点のそれぞれの位置を表現する位置データと、
    前記通過点のそれぞれにおいて前記作業点が有すべき速
    度を表現する速度データとを記憶する記憶手段と、 前記記憶手段から、前記位置データと前記速度データと
    を読出す読出手段と、 前記読出手段から読出された前記位置データと前記速度
    データとを入力して、所定の時間間隔ごとの値を有し、
    かつ前記通過点の間における前記作業点の運動を補間す
    る補間データを発生する補間データ発生手段と、 前記補間データ発生手段で発生された前記補間データを
    前記駆動機構に出力して前記駆動機構を駆動させる出力
    手段とを備え、 前記補間データ発生手段は、 前記所定の順序に沿って隣接する2つの通過点Xa,Xbの
    うちの少なくとも一方Xaにおける前記速度データの値が
    略0である場合に、 前記作業点の加速度の絶対値が、 (a)通過点Xaにおいて最大になるという条件と、 (b)通過点Xaから見て他方の通過点Xbの側に設定され
    た所定点に近づくに従って減少するという条件と、 の双方を記述した微分方程式に基づいて、前記2つの通
    過点の間を補間する補間データを演算して求める微分方
    程式演算手段を含み、 前記微分方程式は、 第1の時間間隔Δt1ごとに更新計算される位置について
    の第1の差分方程式と、 第2の時間間隔Δt2ごとに更新計算される速度について
    の第2の差分方程式と、 の組み合わせによって近似され、 前記第1と第2の時間間隔Δt1,Δt2は、互いに異なる
    整数値N,Mに対して、 前記第1の差分方程式に含まれる第1の乗算の係数が2N
    となり、 前記第2の差分方程式に含まれる第2の乗算の係数が2M
    となる、 ように決定され、 前記微分方程式演算手段は、 前記第1と第2の差分方程式の前記第1と第2の乗算と
    に相当する演算を、直前に計算された補間値を含んだ値
    のNビットシフトおよびMビットシフトによって達成し
    つつ、新しい位置および速度の補間値を求める手段を含
    むことを特徴とするロボット制御装置。
JP59137460A 1984-06-29 1984-07-03 ロボット制御方法およびその装置 Expired - Lifetime JP2628297B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP59137460A JP2628297B2 (ja) 1984-07-03 1984-07-03 ロボット制御方法およびその装置
US06/744,601 US4689756A (en) 1984-06-29 1985-06-14 Robot interpolation control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59137460A JP2628297B2 (ja) 1984-07-03 1984-07-03 ロボット制御方法およびその装置

Publications (2)

Publication Number Publication Date
JPS6116305A JPS6116305A (ja) 1986-01-24
JP2628297B2 true JP2628297B2 (ja) 1997-07-09

Family

ID=15199119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59137460A Expired - Lifetime JP2628297B2 (ja) 1984-06-29 1984-07-03 ロボット制御方法およびその装置

Country Status (1)

Country Link
JP (1) JP2628297B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4962776A (en) * 1987-03-26 1990-10-16 Regents Of The University Of Minnesota Process for surface and fluid cleaning
JP2000280889A (ja) 1999-03-30 2000-10-10 Fuji Heavy Ind Ltd ブレーキ倍力装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS498677A (ja) * 1972-05-29 1974-01-25
US4403281A (en) * 1981-04-03 1983-09-06 Cincinnati Milacron Industries, Inc. Apparatus for dynamically controlling the tool centerpoint of a robot arm off a predetermined path
JPS581208A (ja) * 1981-06-26 1983-01-06 Motoda Electronics Co Ltd 軌道制御方式
JPH0695294B2 (ja) * 1981-10-05 1994-11-24 株式会社日立製作所 産業用ロボットの軌跡補間方法
JPS58114207A (ja) * 1981-12-28 1983-07-07 Fujitsu Ltd ロボツトの軌道制御方式

Also Published As

Publication number Publication date
JPS6116305A (ja) 1986-01-24

Similar Documents

Publication Publication Date Title
US4689756A (en) Robot interpolation control method
US11975452B2 (en) Motion control method, device and system, and storage medium
JP2001296912A (ja) モータの速度・加速度決定方法、加減速生成方法、加減速制御方法、加減速制御装置及びモータ制御装置
US4764883A (en) Industrial robot having selective teaching modes
KR880001647B1 (ko) 로보트 제어장치
JPH06214630A (ja) ロボットの駆動経路制御方法
JP2007000954A (ja) ロボット教示装置及び方法
JP2628297B2 (ja) ロボット制御方法およびその装置
JP2005052913A (ja) ロボット制御装置
JPH0522921B2 (ja)
JPH09244725A (ja) 軌道補間装置及びその方法並びに制御装置
JPH10286788A (ja) 軌跡制御装置
JPS58155189A (ja) 産業用ロボツトの位置制御装置
JPH02144705A (ja) ロボットアームの制御方法
JP2521449B2 (ja) 軌跡制御装置
JPS6049868A (ja) 産業用ロボツトのテイ−チング方法
JP2787207B2 (ja) 多軸位置サーボ装置
JPH11114858A (ja) 軌跡制御方法および軌跡制御装置
JP3194829B2 (ja) ロボットの動作プログラム生成装置
JPH06182682A (ja) ロボットの速度制御方法
JP2739827B2 (ja) 数値制御装置およびその方法
JPH0325802B2 (ja)
JPS63268005A (ja) 産業用ロボツトの補間方式
JPS6160446B2 (ja)
JP2803403B2 (ja) 多関節ロボットの制御方法