JP3366213B2 - 曲線の微小線分化方法およびスプライン補間機能を有する数値制御装置 - Google Patents
曲線の微小線分化方法およびスプライン補間機能を有する数値制御装置Info
- Publication number
- JP3366213B2 JP3366213B2 JP4183897A JP4183897A JP3366213B2 JP 3366213 B2 JP3366213 B2 JP 3366213B2 JP 4183897 A JP4183897 A JP 4183897A JP 4183897 A JP4183897 A JP 4183897A JP 3366213 B2 JP3366213 B2 JP 3366213B2
- Authority
- JP
- Japan
- Prior art keywords
- curve
- point
- section
- spline curve
- vector
- 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 - Fee Related
Links
Description
化方法およびスプライン補間機能を有する数値制御装置
に関するものであり、特に、CAD/CAM装置におい
て曲線を数値制御装置で加工軌跡が通過することを指定
する点列データに変換するための曲線の微小線分化方
法、およびスプライン補間機能により与えられた点列を
通過して滑らかな補間制御を行うスプライン補間機能を
有する数値制御装置に関するものである。
自由曲線を移動経路として制御する場合に、予め、自由
曲線を微小区間に分割し、自由曲線を微小線分データと
して近似して数値制御装置に与え、この微小線分データ
を用いて移動経路を直線補間し制御する方法が一般的に
採られてきた。
法としては、図19(a)、(b)に示されているよう
に、許容誤差εを設定し、曲線Ps 〜Pe 上の指定点P
i 〜Pi+1 を結ぶ線分と曲線との距離(弦誤差di )が
許容誤差εを越えないように指定点Pi ,Pi+1 を設定
することにより点列を生成していた。
かな曲線軌道に制御するためには、許容誤差εを小さく
設定する必要があるが、加工指令プログラム長や、直線
補間した際の加工速度の要因により、許容誤差εは無制
限には小さくできず、現実的には許容誤差εをある程度
の値に設定し、曲線Ps 〜Pe 上を、指定点P1,P2,・
・・を通過する折れ線で近似していた。
から滑らかな加工軌跡を得る必要がある場合には、指定
点間を直線補間するのではなく、スプライン補間によっ
て軌跡制御を行う技術が採用されている。
でサンプリングされた指定点をスプライン補間した場
合、通常は元の曲線に極めて近い曲線軌跡が得られる
が、サンプリングされた指定点の配置によっては大きな
ひずみを生じる場合がある。
線で示す曲線B(t) を許容誤差εで微小線分近似を行っ
た場合であるが、指定点P1,P2,・・・P9 をとった時
に、指定点P5 とP6 の間に変曲点があるので、許容誤
差ε以内の弦誤差が線分の両側で取れるため(dp 、d
q で示す)、結果として線分P5 〜P6 がその両側の線
分に比較して非常に長くなってしまう。
値制御装置で、スプライン補間した場合、結果として得
られる補間軌跡は図20において破線に示すように(波
線で示していない区間は波線で示すべき曲線が実線の曲
線と重なっているものと見なす)、指定点P5 とP6 の
間で、元の曲線に対して相当な誤差を有するものになり
良好な加工結果が得られないと云う問題が生じる。
されたものであり、曲線を微小線分近似した際の出力デ
ータである通過点列を、数値制御装置側で直線補間して
も、スプライン補間しても補間軌跡が元の曲線に対して
十分な誤差精度を保証するような曲線の微小線分近似方
法、および、従来の許容誤差で近似された微小線分デー
タの指定通過点から、元の曲線データに対して許容誤差
を保証するようなスプライン補間を行う数値制御装置を
得ることを目的としている。
めに、この発明による曲線の微小線分化方法は、数値制
御装置の入力データとして供する自由曲線を微小線分化
した点列データを生成する際に、弦誤差が許容値以内と
なるように折れ線近似を行うことにより点列を生成し、
当該点列を通過する3次スプライン曲線を生成し、各通
過点間の区間が区間内に曲線の変曲点を持つか否かを評
価し、変曲点を持つと判定された区間に対しては元の曲
線と発生した3次スプライン曲線の誤差が許容値以内で
あるかを評価し、誤差が許容値を超える場合には当該区
間内に通過点を追加して前記点列を再構成するものであ
る。
は、変曲点を持つと判定された区間に対して元の曲線と
発生した3次スプライン曲線の誤差が許容値以内である
かを評価し、誤差が許容値を超える場合には当該区間内
に通過点を追加することが行われ、元の曲線に対して変
曲点近傍は必要に応じてより高密度に点列が設定され
る。これにより元の曲線に近い形状のスプライン曲線が
得られる。
は、上述の発明による曲線の微小線分化方法において、
通過点の追加があった場合には、再構成した点列から再
度この点列を通過する3次スプライン曲線を生成し、各
通過点間の区間が区間内に曲線の変曲点を持つか否かを
評価し、変曲点を持つと判定された区間に対して元の曲
線と発生した3次スプライン曲線の誤差が許容値以内で
あるかを評価し、誤差が許容値を超える場合には当該区
間内に通過点を追加して前記点列を再構成する過程を、
新規の通過点の追加がなくなるまで繰り返すものであ
る。
は、変曲点を持つと判定された区間に対して元の曲線と
発生した3次スプライン曲線の誤差が許容値以内である
かを評価し、誤差が許容値を超える場合には当該区間内
に通過点を追加することが、新規の通過点の追加がなく
なるまで繰り返し行われ、元の曲線に対して変曲点近傍
は必要に応じてより高密度に点列が設定される。これに
より元の曲線に極めて近い形状のスプライン曲線が得ら
れる。
は、上述の発明による曲線の微小線分化方法において、
前記区間内に曲線の変曲点を持つか否かの評価を、当該
区間のスプライン曲線の始点ベクトル、区間の線分の方
向ベクトル、スプライン曲線の終点ベクトルがジグザグ
状に連続するか否かと、線分の方向ベクトルに対するス
プライン曲線の始点ベクトルおよび終点ベクトルの2つ
の角度の比が基準値よりも大きいか否かの判別により行
うものである。
は、区間内に曲線の変曲点を持つか否かの評価が、簡単
かつ確実に行われる。
発明によるスプライン補間機能を有する数値制御装置
は、曲線加工軌道上に離散的にとられた通過点列に対し
て、各通過点間を滑らかに接続する各区間におけるスプ
ライン曲線を決定するスプライン曲線決定手段と、各区
間において決定されたスプライン曲線と該区間の線分と
の誤差が許容値を超えるか否かを判定し、前記誤差が許
容値を超える場合には該区間におけるスプライン曲線を
前記線分に近づくように修正するスプライン曲線修正手
段とを有しているものである。
る数値制御装置では、スプライン曲線決定手段が各通過
点間を滑らかに接続する各区間におけるスプライン曲線
を決定し、スプライン曲線修正手段が各区間において決
定されたスプライン曲線と該区間の線分との誤差が許容
値を超えるか否かを判定し、前記誤差が許容値を超える
場合には該区間におけるスプライン曲線を前記線分に近
づくように修正する。
する数値制御装置は、上述の発明による数値制御装置に
おいて、前記スプライン曲線修正手段によるスプライン
曲線の修正が、当該区間の両端点におけるスプライン曲
線の接線ベクトルを、当該区間のスプライン曲線と線分
との誤差が許容値以内になるよう当該区間の両端点にお
けるスプライン曲線の接線ベクトルの大きさを小さくす
ることにより行うものである。
る数値制御装置では、スプライン曲線修正手段が、当該
区間の両端点におけるスプライン曲線の接線ベクトル
を、当該区間のスプライン曲線と線分との誤差が許容値
以内になるよう当該区間の両端点におけるスプライン曲
線の接線ベクトルの大きさを小さくすることにより、ス
プライン曲線の修正を行う。
する数値制御装置は、上述の発明による数値制御装置に
おいて、前記スプライン曲線修正手段によるスプライン
曲線の修正が、当該区間の両端点におけるスプライン曲
線の接線ベクトルを、当該区間のスプライン曲線と線分
との変曲点を誤差が許容値以内になるよう当該区間の両
端点におけるスプライン曲線の接線ベクトルの方向を当
該線分に平行なベクトルの方向に近づけることにより行
うものである。
る数値制御装置では、スプライン曲線修正手段が、当該
区間の両端点におけるスプライン曲線の接線ベクトル
を、当該区間のスプライン曲線と線分との変曲点を誤差
が許容値以内になるよう当該区間の両端点におけるスプ
ライン曲線の接線ベクトルの方向を当該線分に平行なベ
クトルの方向に近づけることにより、スプライン曲線の
修正を行う。
発明に係る曲線の微小線分化方法およびスプライン補間
機能を有する数値制御装置の実施の形態を詳細に説明す
る。
小線分化方法の一つの実施の形態における処理の流れを
図1を参照して説明する。
をB(t) とし、曲線B(t) から、従来例の図20に示し
たものと同様に、曲線を許容誤差εで微小線分データに
近似する(ステップS101)。本例では、図20に示
されているように、曲線B(t) が、P1 ,P2 ,・・・
Pn-1 からなるn個(本例ではn=10)の通過点で表
現される。
P2 ,・・・Pn-1 からスプライン曲線を発生する(ス
テップS102)。
(1)」,山口富士夫著、日刊工業新聞社刊)による
と、n個の指定点P1 ,P2 ,P3 ,…Pn を滑らかに
通過する3次スプライン曲線上の点P(t) は、指定点P
j-1 から指定点Pj の図2に例示する区間において、式
(1)で表現される。
線ベクトルであり、cj はPj-1 からPj までの距離で
ある。また、tは曲線パラメータであり、0≦t≦1で
ある。
は、指定点Pj (j=1,2,3,…,n)を必ず通過
するが、単位接線ベクトルqj が適切に設定されない
と、各指定点において2次微分が連続的にならない。2
次微分が各指定点Pj (j=2,3,…,n−1)にお
いて連続となるための条件は、式(2)で表される。
の曲率を0として、以下の条件を追加する。
立方程式を解くことによって、接線ベクトルqj を求め
ることにより、全区間の3次スプライン曲線が求められ
る。
て、始点をPs =Pj 、終点をPe =Pj+1 、始点にお
ける単位接線ベクトルをqs =qj 、終点における接線
ベクトルをqe =qj+1 、線分の長さをc=cj+1 とす
ると、 K0 =Ps ・・・(4a) K1 =cqs ・・・(4b) K2 =3(Pe −Ps )−2cqs −cqe ・・・(4c) K3 =2(Ps −Pe )+cqs +cqe ・・・(4d) とおくと、Pj 〜Pj+1 の区間におけるスプライン曲線
上の各点P(t) は、 P(t) =K3 t3 +K2 t2 +K1 t+K0 ・・・(5) (但し、0≦t≦1) で与えられる。
プS103)、スプラインの各区間において、区間内部
に曲線の変曲点を有するかを評価する(ステップS10
4)。
(c)、図4を参照して説明する。図3(a)〜(c)
はそれぞれ、区間Pj 〜Pj+1 の線分の単位ベクトルu
と、その区間Pj 〜Pj+1 に張られたスプライン曲線の
始点ベクトルqs と終点ベクトルqe を、単位ベクトル
uと始点ベクトルqs が存在する平面に投影したもので
ある。
る場合で、始点ベクトルqs と終点ベクトルqe は単位
ベクトルuに対して反対方向にほぼ等しい角度をなす。
つの場合で、始点ベクトルqs と終点ベクトルqe は単
位ベクトルuに対して同一方向の角度をなす。すなわ
ち、始点ベクトルqs と区間の方向を表すベクトルと終
点ベクトルqe がジグザグ状に連続している場合であ
る。
う一つの場合で、始点ベクトルqsと終点ベクトルqe
は単位ベクトルuに対して反対方向の角度をなすが、そ
れぞれの角度の比が比較的大きくなる。
ず、始点ベクトルqs 、単位ベクトルu、終点ベクトル
qe がジグザグ状に連続するか否かを判定する(ステッ
プS1001)。
ルuと始点ベクトルqs とがなすベクトル角度θs を次
式によって求める。
ルqs は図5に示されているベクトルqshとqsvに分解
できる。ただし、分解ベクトルqshはベクトルqs の線
分Ps 〜Pe に平行な成分、分解ベクトルqsvはベクト
ルqs の線分Ps 〜Pe に垂直な成分であり、次式によ
って求められる。
(qs ,u)・u qs =qs −qsh
svと終点ベクトルqe の内積をとれば、分解ベクトルq
svと終点ベクトルqe のなす角度θが判定でき、 (qsv,qe )≦0のとき、 0°≦θ≦90° (qsv,qe )>0のとき、90°<θ≦180° となる。
qe はuに対してqs と同じ方向にあるとみなされるの
で、qs 、u、qe がジグザグ状に連続すると判定す
る。
、単位ベクトルu、終点ベクトルqe がジグザグ状に
連続すると判定された場合にはステップS1004へ移
行し、区間内に変曲点を持つと判定して処理を終了す
る。
トルu、終点ベクトルqe がジグザグ状に連続しないと
判定された場合にはステップS1002へ移行し、始終
点のベクトル角度θs 、θe の比が許容値以上であるか
否かを判定する。
点ベクトルの角度の判定を行う。
る。ただし、SQRT(__)は平方根を求める関数で
ある。
るので、これら正弦により角度の大きさの比を評価す
る。すなわち、あらかじめ定められた閾値thに対し
て、 sin(θs )/sin(θe )>th あるい
は、 sin(θe )/sin(θs )>th の場合には、始点ベクトルqs と終点ベクトルqe のそ
れぞれが区間の方向を示すベクトルuとのなす角度の比
が大きいと判定する。
と区間ベクトルuとがなす角度と、区間ベクトルuと終
点ベクトルqe とがなす角度との比が設定値(許容値)
より大きいと判定された場合には、ステップS1003
に移行し、区間内に変曲点を持つと判定して処理を終了
する。
移行し、区間内に変曲点を持たないと判定して処理を終
了する。
ローに戻り、区間内に変曲点を持つと判定された場合に
は(ステップS105肯定)、スプライン曲線の各区間
Pj〜Pj+1 における誤差を評価する(ステップS10
6)。
の区間において、上述の式(5)で表されるスプライン
曲線上の点P(t) を、パラメータtをΔt刻みで動かし
ながら、各点P(t) と対応する元の曲線上の点B(t')と
の距離の最大値を求め、これを誤差dj とする(図6参
照)。
の曲線上の点B(t')の求め方は、つぎのようにすればよ
い。式(5)より、 P(t) =K3 t3 +K2 t2 +K1 t+K0 (但し、
0≦t≦1) であるから、点P(t) における接線ベクトルvは、 dP(t) /dt=3K3 t2 +2K2 t+K1 により容易に求められる。
終点P(1) を与える元の曲線の各点B(t')のパラメータ
をそれぞれts 、te とすれば、点P(t) (但し、0≦
t≦1)に対応する元の曲線上の点の初期点として、B
(t')(但し、t’=ts +t・(te −ts ))を与え
る(図7(a)参照)。
トルrをとり、ベクトルrと接線ベクトルvの内積
(r,v)を求める。ベクトルrと接線ベクトルvとが
なす角をθとすると、この内積の符号を調べれば、 (r,v)>0のときθ<90° (r,v)=0のときθ=90° (r,v)<0のときθ>90° となる。
t’−dt’→t’、(r,v)<0のときには、t’
+dt’→t’に更新し、再度、曲線上の点B(t')およ
びベクトルrをとり、内積(r,v)を求める処理を繰
り返す。
ラメータの微小増分値であり、t’が増加すれば角度θ
は減少し、t’が減少すれば角度θは増加する。
反転する度に、微小増分値dt’を半減すれば、繰り返
し処理の度にベクトルrは接線ベクトルvに垂直に近づ
くことになる。
し処理の時点で、繰り返し処理を中断してスプライン曲
線上の点P(t) に対応する元の曲線上の点B(t')を得る
(図7(c)参照)。
差dj が許容誤差εを超えないか否か評価する(ステッ
プS107)。dj ≦εであれば、誤差が許容誤差以内
にあるとしてステップS109に進み、これに対し、d
j >εであれば、誤差が許容誤差を超えたものとしてス
テップS108に進む。
には、区間Pj 〜Pj+1 内に曲線上の通過点を1点追加
し(ステップS108)、この後に、ステップS109
へ進む。
B(t')上の点Pj 、Pj+1 を与えるパラメータをそれぞ
れtj 、tj+1 とすれば、パラメータt’を、 t’=tj +(tj-1 −tj )/2 として、新たな通過点Pj'=B(t’)とする。
j+1 となるように、パラメータt’を収束演算によって
求めてもよい。
6 において、スプライン曲線が元の曲線B(t')から大き
く外れた軌跡を描いているため、誤差が大きくなり、d
5 >εとなったため、新たに通過点P5'が追加されてい
る。
についての評価が終了したかを調べ、j<(n−1)で
あれば(ステップS109否定)、j+1→jに更新し
(ステップS110)、ステップS104〜ステップS
108を繰り返す。
ならば(ステップS109肯定)、新たな通過点の追加
があったか否かを調べ(ステップS111)、通過点の
追加があったならば(ステップS111肯定)、それら
の通過点を加えて新たな通過点列を生成する(ステップ
S112)。
分増加する。本例では、追加された通過点P5'を加えて
新たな点列P1 ,P2 、・・・、P10が生成される。
P8 ,P9 ,P10がそれぞれ図20に示されている元の
P6 ,P7 ,P8 ,P9 に対応する。
された通過点列によって再度スプライン曲線を生成し直
し、新たに生成されたスプライン曲線の誤差の評価を繰
り返す。
スプライン曲線と元の曲線の誤差が十分小さくなれば、
新たに通過点を追加することがなくなり、通過点の追加
がなくなったことをもって(ステップS111否定)、
処理を終了する。
が元の曲線と大きく誤差を持つような場合には、その区
間に元の曲線上に通過点を追加して点列を再構成するか
ら、再構成された点列にスプライン曲線を張った場合に
は元の曲線に極めて近いスプライン曲線となり、最終出
力としての点列を数値制御装置でスプライン補間した場
合に所望の誤差精度が得られ、良好な加工軌跡が得られ
るようになり、この点列では直線補間にもスプライン補
間にも供する事ができる。
曲線を張り、各区間で区間内に変曲点が存在すると判定
された場合で、スプライン曲線と元の曲線線分とスプラ
イン曲線との誤差が許容値を超える場合には、その区間
に通過点を追加することによって点列を再構成すること
を新たな通過点の追加がなくなるまで繰り返すようにし
たから、結果として得られる点列にスプライン補間を実
行した場合に、補間軌跡と元の曲線との誤差が許容値以
内にあることが保証され良好な加工軌跡が得られる。
該区間のスプライン曲線の始点ベクトル、区間の線分の
方向ベクトル、スプライン曲線の終点ベクトルの3つの
連続するベクトルががジグザグ状に連続するか否かの判
別と、線分の方向ベクトルに対するスプライン曲線の始
点ベクトルおよび終点ベクトルの2つの角度の比が基準
値よりも大きいか否かの判別により行われるから、当該
区間の変曲点の有無が簡便に評価できる。
数値制御装置の一つの実施の形態の要部構成を示してい
る。この数値制御装置は、指令入力部1と、スプライン
曲線計算部2と、スプライン曲線修正部3と、補間演算
部4と、サーボ駆動部5とを有している。
j (但し、j = 1,2,...,n )のデータを入力し、通過点
列Pj 、通過点列間の区間ベクトルuj 、距離cj のデ
ータをスプライン曲線計算部2へ出力する。
Pj 、通過点列間の区間ベクトルuj 、距離cj のデー
タを指令入力部1より与えられ、各区間毎のスプライン
曲線を決定する。
線計算部2で求められたスプライン曲線と当該区間の線
分との誤差が許容誤差ε以内にあるかを評価し、誤差が
許容誤差εを超えた場合にはスプライン曲線を修正す
る。
で計算された各軸のスプライン係数、補間速度からサン
プリング時間毎の曲線補間の演算を行う。
た各軸座標値Px(t), Py(t), Pz(t)により制御される
各軸サーボ系で構成されている。
における3次スプライン曲線を求めるには、前述の式
(2), (3a), (3b)のn個の連立方程式を解く
必要がある。このためにはn×nの逆行列を求めると云
う膨大な計算量が必要となるため、リアルタイム性を要
求される数値制御装置においては、完全なスプライン曲
線の数式を求めることは一般に困難である。このことか
ら、本例においては、数値制御装置において要求される
リアルタイム性を確保するために、近似的なスプライン
曲線を導出する。
算部2へのデータの流れ、およびスプライン曲線計算部
2における演算内容を説明するために、この実施の形態
におけるスプライン曲線計算原理について説明する。こ
こで、式(2)を変形すると式(6)となる。
向かう単位ベクトルであり、式(7)により示される。
似的な接線ベクトルを求め、繰り返し計算によって、そ
の精度を段階的に向上させることを基本的なスプライン
曲線計算原理としている。
る単位接線ベクトルをqj [k] で表し、その計算手順を
示す。
j-1 ,Pj およびPj+1 を通過し、指定点Pj- 1 におけ
る単位ベクトルがuj 、点Pj+1 における単位ベクトル
がuj+1 となるようなスプライン曲線を求める。すなわ
ち、式(6)から指定点Pj における接線ベクトルqj
[1] は、つぎの式(8)により算出する。
は、端点における曲率を0として、式(4a)、式(4
b)よりそれぞれ、式(9)、(10)で求める。
つの指定点Pj-1 ,Pj およびPj+1 を通過し、指定点
Pj-1 における接線ベクトルがqj-1 [k] 、指定点P
j+1 における接線ベクトルがqj+1 [k] となるようなス
プライン曲線を求める。ここでは、式(6)より、式
(11)とする。
しては、過程1における場合と同様に、それぞれ式
(9),(10)から求める。
す。
に設定すれば、理論的なスプライン曲線に近い近似的な
スプライン曲線を得ることができる。実際には繰り返し
回数2回(qj [2] まで求め)程度で、実用的なスプラ
イン曲線を得ることができる。
終点)として、qj [2] まで求める過程を概念的に示し
ている。
指令入力部1およびスプライン曲線決定部2における計
算内容を説明する。以下、j=1、2、・・・、8(n
=8)とし、P8 が終点として説明する。
フローを示している。
力されると、図12に示されている処理フローが起動さ
れる。
の3個の指定点P1 、P2 、P3 の座標値を入力し、ス
テップS202では、指定点P1 から指定点P2 までの
距離c2 、および指定点P2 から指定点P3 までの距離
c3 を求め、つぎに式(7)によりそれぞれの単位ベク
トルu2 、u3 を求める。
し、ステップS204では、j+1→j(j=4)とす
る。
の座標値を入力し、ステップS206では、指定点P3
から指定点P4 までの距離c4 およびその単位ベクトル
u4を計算する。
1は指定点座標P1 、P2 、P3 、P4 、各指定点間距
離c2 、c3 、c4 および単位ベクトルu2 、u3 、u
4 をスプライン曲線決定部2に出力する。ステップS2
07では、スプライン曲線決定部2が出力したデータを
受け取ったことを確認した後、つぎのステップS208
に進む。この時後述するようにスプライン曲線決定部2
では指定点P1 〜P2の区間のスプライン曲線を決定す
る。
か、すなわちPj が終点であるか否かをチェックし、j
≠n(j=4,n=8)であれば、ステップS204に
ループし、j+1→jとする。
定点Pj の座標値を入力し、ステップS106で指定点
Pj-1 から指定点Pj までの距離cj およびその単位ベ
クトルuj を計算する。
1は指定点座標Pj 、指定点間距離cj 、および単位ベ
クトルuj をスプライン曲線決定部2に出力する。ステ
ップS107ではスプライン曲線決定部2が出力したデ
ータを受け取ったことを確認した後、つぎのステップに
進む。この時後述するようにスプライン曲線決定部2で
は指定点Pj-3 〜Pj-2 の区間のスプライン曲線を決定
する。
か、すなわちPj が終点であるか否かをチェックし、j
≠nであれば、ステップS204にループし、j=nで
あれば、処理を終了する。
2の処理について説明する。
らデータが入力される(図12のステップS207)
と、図13に示されている処理フローが起動される。
れば、指定点座標P1 、P2 、P3、P4 、各指定点間
距離c2 、c3 、c4 、および単位ベクトルu2 、
u3 、u 4 を入力する。また、j≧5であれば、指定点
座標Pj 、指定点間距離cj および単位ベクトルuj を
入力する。
るか否か(始点を含む処理か?)をチェックし、j=4
であれば、ステップS303にて、式(8)から次式
(12)により指定点P2 の接線ベクトルq2 [1] を求
める。
ら次式(13)により開始点P1 の接線ベクトルq1
[1] を求める。
4)により指定点Pj-1 の接線ベクトルqj-1 [1] を求
める。
5)により指定点Pj-2 の接線ベクトルqj-2 [1] を求
める。
るか否か(始点を含む処理か?)をチェックし、j=4
であれば、次式(16)により開始点P1 の接線ベクト
ルq [2] を求める。
線ベクトルqj-3 [2] 、qj-2 [2]が確定するので、ス
テップS309において、Pj-3 〜Pj-2 の区間におけ
るスプライン曲線を決定する。すなわち、式(1)から K0 =Pj-3 ・・・(17a) K1 =cj-2 qj-3 [2] ・・・(17b) K2 =3(Pj-2 −Pj-3 )−2cj-2 qj-3 [2] −cj-2 qj-2 [2] ・・・(17c) K3 =3(Pj-3 −Pj-2 )+cj-2 qj-3 [2] +cj-2 qj-2 [2] ・・・(17d) とおくと、Pj-3 〜Pj-2 の区間におけるスプライン曲
線P(t) は、 P(t) =K3 t3 +K2 t2 +K1 t+K0 (0≦t≦1) ・・・(18) で与えられる。
(Pj が終点か?)をチェックし、j≠nであれば、処
理を終了するが、j=n(Pj が終点)の場合は以下に
示す終点の処理を行う。
0)から次式(19)により終点Pnにおける接線ベク
トルqn [1] を求める。
(20)により指定点Pn-1 の接線ベクトルqn-1 [2]
を求める。
〜Pj-2 の区間におけるスプライン曲線P(t) を式(1
7a)〜(17d)で、j=n+1とおくことにより、
式(18)によって求める。
プライン曲線を求める。ステップS314で終点Pn に
おける接線ベクトルqn [2] を式(10)から次式(2
1)によって求める。
〜Pj-2 の区間におけるスプライン曲線P(t) を式(1
7a)〜(17d)で、j=n+2とおくことにより、
式(18)によって求める。
フローから明らかなように、指令入力部1が、開始点を
含む4点P1 、P2 、P3 、P4 を入力した段階で、ス
プライン曲線決定部2は最初の区間P1 〜P2 のスプラ
イン曲線を決定する(図14のA)。その後、新しい指
定点Pj (j>4)を入力するごとに区間Pj-3 〜P
j-2 のスプライン曲線が決定する(図14のB)。そし
て、終点Pn を入力した段階で3つの区間Pn-3 〜P
n-2 、Pn-2 〜Pn-1 、Pn-1 〜Pn に対応するスプラ
イン曲線が決定する(図14のC,(n=8の例))。
似的に計算し、その計算の繰り返し回数をk回とする
と、終点までの全通過点を読み取らなくとも、k点先の
通過点を読み取っていけば、接線ベクトルを簡単な計算
によって求め通過点との間のスプライン曲線を逐次発生
するから、リアルタイムにスプライン曲線を発生するこ
とができる。
プライン曲線が確定するごとに計算結果をスプライン曲
線修正部3に出力する。図15はスプライン曲線修正部
3の処理フロー図である。以下、本フロー図にしたがっ
て処理の内容を説明する。
プS401で、スプライン曲線計算部からスプライン曲
線を決定する各種のデータ、すなわち、スプライン曲線
式P(t) と、その各係数を導出するに使用した両端点に
おける位置ベクトルPs 、Pe と、単位接線ベクトルq
s 、qe および線分Ps 〜Pe の長さcを入力する。
(図16参照)。
インの各区間における誤差を評価する。誤差の計算方法
としては、例えばPs 〜Pe の区間において式(5)で
表される曲線P(t) を、パラメータtをΔt刻みで動か
しながら、各点P(t) と線分Ps 〜Pe との距離の最大
値を求め、これを誤差dmax とする。
dmax が許容誤差εを超えないか評価し、dmax ≦εで
あれば、誤差が許容誤差以内にあるとしてステップS4
05に進み、これに対しdmax >εであれば、誤差が許
容誤差を超えたものとしてステップS404に進む。
プS404において、以下の要領でスプライン曲線式を
修正する。
クトルと接線ベクトルによって決定するが、接線ベクト
ルは両端点における曲線の勢い(速度)を表すため、接
線ベクトルの傾きは同一でも大きさが異なると、曲線の
形状が異なり、一般に接線ベクトルの大きさが小さいほ
ど曲線は線分により近づいたものとなる。なお、曲線の
形状によってはパラメータt(0≦t≦1)の全域にお
いて接線ベクトルが小さいほど線分に近づくとはいえな
い場合もあるが、曲線上の点の線分からの最大距離は小
さくなる。
する接線ベクトルはcqs 、cqeであり、cが接線ベ
クトルの大きさを表すものとなる。
に更新することによって接線ベクトルの大きさを小さく
し、スプライン曲線の形状を、より線分に近づいたもの
に修正する。具体的には計算された最大誤差dmax と許
容誤差εに対して、 c・ε/dmax →c で、cを更新して式(4a)〜(4b)からスプライン
曲線式(5)を求め直す。
それぞれc’、P’(t) で表し、更新前の曲線との差異
を示した。
て修正したスプライン曲線P(t) と線分Ps 〜Pe との
最大誤差を求め、以下同様の処理を繰り返す。
以内であると判定された場合には、ステップS405に
移行し、そのときのスプライン曲線式を補間演算部4に
出力して処理を終了する。ここで出力されるスプライン
曲線式は両端点において、その両側の区間と1次微分が
連続で曲線と線分の最大誤差が許容誤差以内のものとな
っている。
して補間演算部4では、曲線上に補間周期ΔTごとに、
速度指令値Fに従って、現在の点からの長さが指定した
補間長さ( =目標補間長さ) となるような点(補間点)
を求め、その座標値をサーボ駆動部5に出力する。
当該区間の線分と許容値を超える誤差を有する場合に
は、当該区間の両端点におけるスプライン曲線の接線ベ
クトルの大きさを小さくすることにより、線分との誤差
が許容値以内になるようにスプライン曲線を修正するか
ら、各区間において線分との誤差が許容値以内であり各
区間の継ぎ目で接線ベクトルの方向が連続である滑らか
なスプライン補間軌跡が得られる。
曲線修正処理は、図17に示されているように、以下の
要領でスプライン曲線式を修正することもできる。な
お、図17において、図15と同一内容のステップにつ
いては、同一のステップ番号を付けてその説明を省略す
る。
には(ステップS403否定)、ステップS404’に
おいて、以下の要領でスプライン曲線式を修正する。
求め、単位ベクトルuと始点ベクトルqs とがなす角度
θs を次式によって求める。
て、ベクトルqs は図5に示すベクトルqshとqsvに分
解できる。ただし、qshはベクトルqs の線分Ps 〜P
e に平行な成分、qsvはベクトルqs の線分Ps 〜Pe
に垂直な成分であり、 qsh=|qs |・cos(θs )・u=(qs ,u)・
u qsv=qs −qsh である。
て、 qs ’=qsh+gqsv (但し、0<g<1) とすれば、qs ’はベクトルqs を線分Ps 〜Pe の方
向に傾けたものとなる。定数gの決め方としては、ステ
ップS502で求めた最大誤差dmax と許容誤差εを用
いてg=ε/dmax とすればよい。
を線分Ps 〜Pe の方向に傾けたベクトルqe ’を求
め、qs 、qe をqs ’→qs 、qe ’→qe に更新し
て式(4a)〜(4b)からスプライン曲線式(5)を
求め直す。
は両端点の接線の傾きを線分Ps 〜Pe に近づくように
修正しているため、結果として得られる曲線は前回の曲
線よりも線分Ps 〜Pe に対する最大誤差が小さくなっ
ている。図18は更新後の接線ベクトルqs 、qe 、曲
線式P(t) をそれぞれqs ’、qe ’、曲線式P’(t)
で表して更新前後の曲線の変化の様子を示したものであ
る。
したスプライン曲線が当該区間の線分と許容値を超える
誤差を有すれば、当該区間の両端点におけるスプライン
曲線の接線ベクトルの傾きを線分のベクトル方向に近づ
けることにより、線分との誤差が許容値以内になるよう
にスプライン曲線を修正するから、各区間において線分
との誤差が許容値以内のスプライン補間軌跡が得られ
る。
による曲線の微小線分化方法によれば、自由曲線を弦誤
差が許容値以内になるように微小線分化することによっ
て点列を生成した後に、この点列を通過するようにスプ
ライン曲線を張って、各区間において区間内に変曲点が
存在すると判定された場合で、スプライン曲線と元の曲
線の誤差が許容値を超える場合はその区間に通過点を追
加することによって点列を再構成するようにしたため、
当初の点列では元の曲線形状によってはある区間でスプ
ライン曲線が元の曲線と大きく誤差を持つような場合に
は、その区間に元の曲線上の通過点を追加して点列が再
構成され、結果として再構成された点列にスプライン曲
線を張った場合には元の曲線に極めて近いスプライン曲
線となり、最終出力としての点列を数値制御装置でスプ
ライン補間した場合に所望の誤差精度が得られて良好な
加工軌跡が得られると云う効果がある。また、この点列
は直線補間にもスプライン補間にも供する事ができると
云う効果がある。
よれば、再構成された点列に再度スプライン曲線を張り
各区間で区間内に変曲点が存在すると判定された場合
で、スプライン曲線と元の曲線線分とスプライン曲線と
の誤差が許容値を超える場合はその区間に通過点を追加
することによって点列を再構成することを新たな通過点
の追加がなくなるまで繰り返すようにしたため、結果と
して得られる点列にスプライン補間を実行した場合に、
補間軌跡と元の曲線との誤差が許容値以内にあることが
保証され、良好な加工軌跡が得られると云う効果があ
る。
よれば、区間内に曲線の変曲点を持つか否かの評価を、
当該区間のスプライン曲線の始点ベクトル、区間の線分
の方向ベクトル、スプライン曲線の終点ベクトルがジグ
ザグ状に連続するか否かと、線分の方向ベクトルに対す
るスプライン曲線の始点ベクトルおよび終点ベクトルの
2つの角度の比が基準値よりも大きいか否かの判別によ
り行うから、この評価が、簡単かつ確実に行われると云
う効果がある。
する数値制御装置によれば、スプライン曲線決定手段が
各通過点間を滑らかに接続する各区間におけるスプライ
ン曲線を決定し、スプライン曲線修正手段が各区間にお
いて決定されたスプライン曲線と該区間の線分との誤差
が許容値を超えるか否かを判定し、前記誤差が許容値を
超える場合には該区間におけるスプライン曲線を前記線
分に近づくように修正するから、リアルタイムに許容誤
差を保証するスプライン曲線を発生できると云う効果が
ある。
する数値制御装置によれば、スプライン曲線修正手段
が、当該区間の両端点におけるスプライン曲線の接線ベ
クトルを、当該区間のスプライン曲線と線分との誤差が
許容値以内になるよう当該区間の両端点におけるスプラ
イン曲線の接線ベクトルの大きさを小さくすることによ
り、スプライン曲線の修正を行うから、各区間において
線分との誤差が許容値以内であり、各区間の継ぎ目で接
線ベクトルの方向が連続である滑らかなスプライン補間
軌跡が得られると云う効果がある。
する数値制御装置によれば、スプライン曲線修正手段
が、当該区間の両端点におけるスプライン曲線の接線ベ
クトルを、当該区間のスプライン曲線と線分との変曲点
を誤差が許容値以内になるよう当該区間の両端点におけ
るスプライン曲線の接線ベクトルの方向を当該線分に平
行なベクトルの方向に近づけることにより、線分との誤
差が許容値以内になるようにスプライン曲線の修正を行
うから、各区間において線分との誤差が許容値以内のス
プライン補間軌跡が得られるという効果がある。
手順を示す処理フロー図である。
プライン曲線を示す説明図である。
終点ベクトルの特徴を示す説明図である。
ある。
る手法を示す説明図である。
対応する元の曲線状の点の求め方を示す説明図である。
図である。
る。
示すブロック図である。
接線ベクトルが求まっていくときの計算手順を表す概念
図である。
線計算処理の概略フロー図である。
れていくことを表す概念図である。
線修正処理の概略フロー図である。
状の変化を示す説明図である。
ン曲線修正処理の概略フロー図である。
の変化を示す説明図である。
示す説明図である。
に対してスプライン補間をした場合に本来の曲線に対し
て大きな誤差を生ずるケースを示す説明図である。
ライン曲線修正部,4 補間演算部,5 サーボ駆動
部,Pj 曲線経路上の通過点列,uj 通過点列間の
区間ベクトル,cj 通過点列間の距離,qj 単位接
線ベクトル。
Claims (6)
- 【請求項1】 数値制御装置の入力データとして供する
自由曲線を微小線分化した点列データを生成する際に、
弦誤差が許容値以内となるように折れ線近似を行うこと
により点列を生成し、当該点列を通過する3次スプライ
ン曲線を生成し、各通過点間の区間が区間内に曲線の変
曲点を持つか否かを評価し、変曲点を持つと判定された
区間に対しては元の曲線と発生した3次スプライン曲線
の誤差が許容値以内であるかを評価し、誤差が許容値を
超える場合には当該区間内に通過点を追加して前記点列
を再構成することを特徴とする曲線の微小線分化方法。 - 【請求項2】 通過点の追加があった場合には、再構成
した点列から再度この点列を通過する3次スプライン曲
線を生成し、各通過点間の区間が区間内に曲線の変曲点
を持つか否かを評価し、変曲点を持つと判定された区間
に対して元の曲線と発生した3次スプライン曲線の誤差
が許容値以内であるかを評価し、誤差が許容値を超える
場合には当該区間内に通過点を追加して前記点列を再構
成する過程を、新規の通過点の追加がなくなるまで繰り
返すことを特徴とする請求項1に記載の曲線の微小線分
化方法。 - 【請求項3】 前記区間内に曲線の変曲点を持つか否か
の評価を、当該区間のスプライン曲線の始点ベクトル、
区間の線分の方向ベクトル、スプライン曲線の終点ベク
トルがジグザグ状に連続するか否かと、線分の方向ベク
トルに対するスプライン曲線の始点ベクトルおよび終点
ベクトルの2つの角度の比が基準値よりも大きいか否か
の判別により行うことを特徴とする請求項1または2に
記載の曲線の微小線分化方法。 - 【請求項4】 曲線加工軌道上に離散的にとられた通過
点列に対して、各通過点間を滑らかに接続する各区間に
おけるスプライン曲線を決定するスプライン曲線決定手
段と、 各区間において決定されたスプライン曲線と該区間の線
分との誤差が許容値を超えるか否かを判定し、前記誤差
が許容値を超える場合には該区間におけるスプライン曲
線を前記線分に近づくように修正するスプライン曲線修
正手段と、 を有していることを特徴とするスプライン補間機能を有
する数値制御装置。 - 【請求項5】 前記スプライン曲線修正手段によるスプ
ライン曲線の修正は、当該区間の両端点におけるスプラ
イン曲線の接線ベクトルを、当該区間のスプライン曲線
と線分との誤差が許容値以内になるよう当該区間の両端
点におけるスプライン曲線の接線ベクトルの大きさを小
さくすることにより行うことを特徴とする請求項4に記
載のスプライン補間機能を有する数値制御装置。 - 【請求項6】 前記スプライン曲線修正手段によるスプ
ライン曲線の修正は、当該区間の両端点におけるスプラ
イン曲線の接線ベクトルを、当該区間のスプライン曲線
と線分との変曲点を誤差が許容値以内になるよう当該区
間の両端点におけるスプライン曲線の接線ベクトルの方
向を当該線分に平行なベクトルの方向に近づけることに
より行うことを特徴とする請求項4に記載のスプライン
補間機能を有する数値制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4183897A JP3366213B2 (ja) | 1997-02-26 | 1997-02-26 | 曲線の微小線分化方法およびスプライン補間機能を有する数値制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4183897A JP3366213B2 (ja) | 1997-02-26 | 1997-02-26 | 曲線の微小線分化方法およびスプライン補間機能を有する数値制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10240329A JPH10240329A (ja) | 1998-09-11 |
JP3366213B2 true JP3366213B2 (ja) | 2003-01-14 |
Family
ID=12619409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4183897A Expired - Fee Related JP3366213B2 (ja) | 1997-02-26 | 1997-02-26 | 曲線の微小線分化方法およびスプライン補間機能を有する数値制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3366213B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016103206A (ja) * | 2014-11-28 | 2016-06-02 | ファナック株式会社 | 形状誤差を保証する工具経路の曲線化方法および曲線化装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034774A (ja) * | 1999-07-21 | 2001-02-09 | Ricoh Co Ltd | 自由曲線の近似変換方法、装置及び記録媒体 |
JP4566370B2 (ja) * | 2000-09-06 | 2010-10-20 | サンデン株式会社 | 車両用空調装置 |
JP4736607B2 (ja) * | 2005-08-05 | 2011-07-27 | 株式会社デンソーウェーブ | ロボット制御装置 |
JP4969484B2 (ja) * | 2008-02-25 | 2012-07-04 | 三菱重工業株式会社 | 数値制御装置 |
JP2011096077A (ja) * | 2009-10-30 | 2011-05-12 | Makino Milling Mach Co Ltd | 工具経路の生成方法及び装置 |
JP5615377B2 (ja) * | 2010-10-25 | 2014-10-29 | 株式会社牧野フライス製作所 | 工具経路の生成方法および生成装置 |
WO2017019869A1 (en) * | 2015-07-28 | 2017-02-02 | The Regents Of The University Of Michigan | Use of filtered basis splines to compensate servo-induced motion errors |
JP7037457B2 (ja) * | 2018-09-05 | 2022-03-16 | オークマ株式会社 | 数値制御装置および数値制御方法 |
CN109348156B (zh) * | 2018-11-29 | 2020-07-17 | 广州视源电子科技股份有限公司 | 课件录制和播放方法、装置、智能交互平板及存储介质 |
WO2020178978A1 (ja) * | 2019-03-05 | 2020-09-10 | 三菱電機株式会社 | 加工プログラム変換装置、数値制御装置および加工プログラム変換方法 |
JP6863497B1 (ja) * | 2020-03-11 | 2021-04-21 | オムロン株式会社 | コントローラシステムおよびその制御方法 |
CN113687629B (zh) * | 2020-05-19 | 2022-09-20 | 大族激光科技产业集团股份有限公司 | 激光cam加工的圆弧直线拟合方法、系统、设备及存储介质 |
CN113721551A (zh) * | 2020-05-26 | 2021-11-30 | 沈机(上海)智能系统研发设计有限公司 | 数控加工方法和数控加工设备 |
CN114488941A (zh) * | 2020-11-11 | 2022-05-13 | 沈机(上海)智能系统研发设计有限公司 | 微小线段的轨迹光顺方法、介质及机床数控设备 |
CN113835397B (zh) * | 2021-06-30 | 2024-02-09 | 浙江大学 | 基于b样条曲线和路径积分的线性数控加工路径平滑方法 |
-
1997
- 1997-02-26 JP JP4183897A patent/JP3366213B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016103206A (ja) * | 2014-11-28 | 2016-06-02 | ファナック株式会社 | 形状誤差を保証する工具経路の曲線化方法および曲線化装置 |
US10088825B2 (en) | 2014-11-28 | 2018-10-02 | Fanuc Corporation | Tool path curve generation method and tool path curve generation apparatus |
Also Published As
Publication number | Publication date |
---|---|
JPH10240329A (ja) | 1998-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3366213B2 (ja) | 曲線の微小線分化方法およびスプライン補間機能を有する数値制御装置 | |
KR880002556B1 (ko) | 곡면 생성방법 | |
CN104793560B (zh) | 用于生成轨迹的方法和系统 | |
KR900003123B1 (ko) | 자유표면 평가방법 및 그의 nc 시스템 | |
JP3396342B2 (ja) | スプライン補間機能を有する数値制御装置 | |
CN106826829A (zh) | 一种可控误差的工业机器人光顺运动轨迹生成方法 | |
JPS6282486A (ja) | オンライン手書き図形認識装置 | |
JPS61246877A (ja) | 図形変換装置 | |
CN113687629B (zh) | 激光cam加工的圆弧直线拟合方法、系统、设备及存储介质 | |
JPH04243487A (ja) | 三次元立体形状処理方式 | |
CN114237161B (zh) | 一种基于数字滤波的工业机器人nurbs曲线插补方法 | |
US6609045B1 (en) | File conversion apparatus for machining program of numerical control system and computer readable recording medium for storing program for computer to execute file conversion process | |
CN111610751B (zh) | 过点集nurbs插值曲线的插值误差多次细分迭代计算方法 | |
KR100501907B1 (ko) | 방향지도를 이용한 기하도형의 모핑 방법 | |
JP4610873B2 (ja) | ソリッドモデル上に数値制御ツールパスを生成する方法、コンピュータ記憶媒体及びシステム | |
CN115857432A (zh) | 基于曲率极大值优化的刀具轨迹光顺方法和系统 | |
CN114019911B (zh) | 一种基于速度规划的曲线拟合方法 | |
JPH07160870A (ja) | 近似曲線生成装置 | |
JPH0613213B2 (ja) | 文字画像データ圧縮用ブロック設定方法 | |
JPH0561980A (ja) | 線分描画装置 | |
JP2001229407A (ja) | 数値解析用モデル作成装置、数値解析用モデル作成方法および記憶媒体 | |
JPH03245209A (ja) | ロボットの経路補間方法 | |
CN117601135B (zh) | 智能砌墙机器人姿态调整方法及系统 | |
JPH06274308A (ja) | ベジェ曲線均等肉付け作成処理方法 | |
CN114748100B (zh) | 超声波扫查的控制方法、视觉伺服系统及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071101 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081101 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081101 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091101 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091101 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101101 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111101 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121101 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131101 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |