JP4101665B2 - 数値制御装置 - Google Patents
数値制御装置 Download PDFInfo
- Publication number
- JP4101665B2 JP4101665B2 JP2003008615A JP2003008615A JP4101665B2 JP 4101665 B2 JP4101665 B2 JP 4101665B2 JP 2003008615 A JP2003008615 A JP 2003008615A JP 2003008615 A JP2003008615 A JP 2003008615A JP 4101665 B2 JP4101665 B2 JP 4101665B2
- Authority
- JP
- Japan
- Prior art keywords
- joint
- interpolation
- posture
- tool
- range
- 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
Links
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Description
【発明の属する技術分野】
この発明は、回転自由度を有する機械の軌跡制御を行う数値制御装置に関するものである。
【0002】
【従来の技術】
5軸加工機、三次元レーザ加工機やロボットなどの回転軸自由度を備えた機械において、機械の先端に備えた切削工具、ロボットハンドあるいはレーザ加工機のトーチ等の工具の位置および姿勢を制御する方法として、与えられた指令を自動的に機械の各関節軸の座標値(関節座標)に座標変換して制御する方法がよく知られている。これは、5軸加工機分野においては工具先端点制御と呼ばれる方法である。
【0003】
ここで、工具の位置および姿勢を作業対象に固定された直交座標系(ワーク座標系)上で指令し、この座標系上で工具をある速度で動作させた場合、各関節の速度や加速度がその関節の許容値を超える場合がある。特に機械の動作範囲中に特異点(特異姿勢)が存在する機械においては、このような現象が顕著であることが一般に知られている。
このように、特異点あるいはその近傍を通過する際などには、速度や加速度が過大となり、サーボアラームを起こして機械停止したり、機械振動を起こしたりするおそれがある。
【0004】
この問題を解決するため、例えば、特許文献1、特許文献2および特許文献3で開示されている制御装置では、特異点近傍で速度が過大となった時に速度を下げる方法を採用している。
【0005】
この方法を用いると、軌跡誤差、すなわち工具の位置や姿勢の誤差は発生しないが、特異点近傍で関節の速度を下げるので必然的に移動時間が長くなるという問題があった。
また、解の切り換えを行う場合には効果がないという問題があった。つまり、与えられた工具位置と姿勢を満たす関節座標値の解は一般に複数組存在するが、ある解の組から別の解の組への切り換えを行ったときに発生する不連続性は解消されないという問題があった。
【0006】
また、別の解決方法として、例えば、特許文献4から特許文献8で開示されている制御装置では、特異点近傍において、ワーク座標系上で指令された工具の位置と姿勢ではなく、関節座標値を補間する方法を採用している。
【0007】
この方法によると、速度を下げず、また解の切り換えを行う場合にも有効であるが、大きな軌跡誤差が発生するという問題があった。特に、軌跡誤差の量を直接管理できないのが問題であった。
特異点近傍では特殊な補間処理を行うので軌跡誤差が生じやすく、その大きさは補間処理を行う範囲に依存する。従来の制御装置は、各関節軸の速度や加速度に基づいてこの範囲を決定しており、軌跡誤差を考慮してこの範囲を求める方法はこれまで検討されてこなかった。
【0008】
【特許文献1】
特開昭58−114888号公報
【特許文献2】
特開平3−066576号公報
【特許文献3】
特開平6−324730号公報
【特許文献4】
特開昭62−154006号公報
【特許文献5】
特開昭62−189504号公報
【特許文献6】
特開昭60−057408号公報
【特許文献7】
特開昭63−305407号公報
【特許文献8】
特開平2−218569号公報
【0009】
【発明が解決しようとする課題】
このように、従来の制御装置では、軌跡誤差の抑制と移動時間の短縮を両立することができなかった。
【0010】
この発明は上記のような課題を解決するためになされたもので、回転自由度を有する機械の軌跡制御において、特異点近傍など各関節の速度や加速度が過大となるような場合に、軌跡誤差に対する要求精度を満たしつつ、移動時間をできるだけ短縮することが可能な数値制御装置を得ることを目的とする。
【0011】
【課題を解決するための手段】
この発明に係る数値制御装置は、工具に与えられた2つの時点での姿勢に基づいて、両時点の間の全範囲において関節補間を行うときに生じる姿勢誤差が姿勢誤差許容値より大きい場合に、工具の姿勢誤差が姿勢誤差許容値以下となるまで関節補間範囲を小さくするように修正する関節補間範囲決定部と、関節補間範囲においては関節補間により工具の姿勢を制御する情報を算出し、その他の範囲においては回転主軸法により工具の姿勢を制御する情報を算出する補間部とを備えたものである。
【0012】
【発明の実施の形態】
以下、この発明の実施の様々な形態を説明する。
実施の形態1.
図1は、この発明の実施の形態1による数値制御装置10(図2参照)により軌跡制御を行うテーブルチルト形の5軸加工機1の斜視図である。図に示すように、5軸加工機1は、並進変位を与えるX,Y,Zの3つの直線軸、X軸回りの回転角度Aを与える傾斜テーブル2、およびZ軸回りの回転角度Cを与える旋回テーブル3を有する。ワーク5は5軸加工機1の作業対象であり、工具4によって加工される。
工具4は、数値制御装置10により、サーボ制御装置14(図2参照)を介してワーク5に対する位置と姿勢を制御され、ワーク5の加工を行う。
この5軸加工機1では、工具4はそれが指示された主軸と共に傾けられることはなく、常に垂直方向に向けられている。ワーク5が傾斜テーブル2、旋回テーブル3によって回転されることで、工具4とワーク5の相対姿勢が制御される。
【0013】
工具4の位置ベクトルpと姿勢ベクトルqは、作業対象であるワーク5に固定されたワーク座標系Σw上の座標値(ワーク座標値)として与えられる。
一方、X,Y,Z,A,C各軸上での座標値を関節座標値と呼ぶ。
また、以下の説明では、機械の備える軸数をnとし、各関節軸(直線軸と回転軸を含む)をθj(j=1〜n)とおく。
図1に示した機構の場合には、n=5であり、θ1,θ2,θ3,θ4,θ5はそれぞれX,Y,Z,A,Cに対応する。
【0014】
工具4のワーク座標値と関節座標値の間には、機械構造で決まる座標変換の関係が成り立ち、数値制御装置において、指令されたワーク座標値から関節座標値への変換が行われる。
【0015】
図1に示したような機構の場合、工具4のワーク座標値p,qとX,Y,Z,A,C各軸の関節座標値との関係は以下のようになる。
p=Rc(C)・(Ra(A)ξ−H2)−H3 (式1)
q={I,J,K}t (式2)
ただし、
ξ={X,Y,Z}t (式3)
I=sinA・sinC (式4)
J=−sinA・cosC (式5)
K=cosA (式6)
ここでRa(A),Rc(C)は、それぞれX軸、Z軸まわりにそれぞれ角度A,Cだけ回転を行う3×3の行列である。H2は、傾斜テーブル2の回転中心から旋回テーブル3の回転中心へのオフセットベクトル、H3は、旋回テーブル3の回転中心からワーク座標系原点へのオフセットベクトルである。また右肩添え字tは転置を示す。また、姿勢ベクトルqは単位ベクトルである。
【0016】
A=0、すなわち図1において旋回テーブル3の上面が水平となったとき、式2よりCの座標値Cは工具4のqの変化に寄与しなくなる。この時の工具4の状態が特異姿勢にあたる。よって、特異姿勢を示す姿勢ベクトルをqsとすると、
qs={0 0 1}t (式7)
となる。
【0017】
また、逆にワーク座標値から関節座標値を求めると次のようになる。
A=cos−1(K) (式8)
C=atan2(I/sinA,−J/sinA) (式9)
(ただし、atan2(X,Y)=tan−1(X/Y))
ξ=Ra(−A)・(Rc(−C)・(p+H3)+H2) (式10)
【0018】
図2は、この発明の実施の形態1による数値制御装置の構成を示すブロック図である。図に示すように、数値制御装置10は、関節補間範囲決定部11、補間部12、作業指令部13を備える。
【0019】
次に、数値制御装置10の動作について説明する。
実施の形態1では、工具4の姿勢の補間方法として、関節補間と回転主軸法の2つを用いる。
作業指令部13は、作業プログラムに従い、工具4の位置pと姿勢qを指令する。関節補間範囲決定部11は、指令された工具4の位置pと姿勢q、および誤差許容値に基づいて関節補間の範囲を決定する。関節補間範囲の決定方法については後述する。
補間部12は、決定された関節補間の範囲内では関節補間により、それ以外の範囲においては回転主軸法(下記参照)により補間を行い、工具4の位置pと姿勢qに従って各関節軸の関節座標値を計算し、サーボ制御装置14に送信する。サーボ制御装置14は、送られた関節座標値に基づいて5軸加工機1を駆動する。
なお、工具4の位置pおよび姿勢qは、作業プログラムによらず、マニュアル入力によりあるいは外部装置を通して指令されるようにしてもよい。
【0020】
ここで、実施の形態1で用いる2つの補間方法について簡単に説明する。
関節補間とは、工具4に与えられた始点と終点における位置ベクトルおよび姿勢ベクトルに基づいて、各軸の関節座標値を補間する方法である。この方法では、移動時間は短くできるが、姿勢誤差が生じる。
また、回転主軸法とは、与えられた始点と終点における姿勢ベクトルに直交する法線ベクトルを軸に姿勢を回転させることで補間を行う方法である。この方法では、特異点近傍で速度を下げる必要がある。詳細は、Paul著、吉川恒夫訳、ロボット・マニピュレータ、コロナ社、1984。この文献は、本願の開示の一部をなす。
【0021】
図3は、実施の形態1による数値制御装置10の関節補間範囲決定部11による関節補間範囲算出処理のフローチャートである。
【0022】
まず、関節補間範囲決定部11は、関節補間を行う範囲の始点tx0と終点tx1(tは媒介変数)の初期値を設定する(ステップST1)。この初期値の設定では、tx0=0、tx1=1とする。これは指令された経路の全範囲において関節補間を行うことを意味している。
【0023】
次に、工具4の姿勢誤差を計算する(ステップST2)。
姿勢誤差の計算方法を以下に示す。始点の姿勢ベクトルq(tx0)から、式8および式9に従って、始点におけるAおよびCの関節座標値Ax0、Cx0を求める。同様に終点の姿勢ベクトルq(tx1)から終点におけるAおよびCの関節座標値Ax1、Cx1を求める。
また、経路の中央txhにおけるA,C軸の関節座標値は、
Axh=(Ax0+Ax1)/2 (式11)
Cxh=(Cx0+Cx1)/2 (式12)
である。また、txhは、
txh=(tx0+tx1)/2
である。よって、tx0=0,tx1=1のときは、txh=0.5となる。
このAxh、Cxhを式2、式4、式5、式6に代入すると、式13に示すように経路の中央における姿勢ベクトルq(txh)が得られる。
q(txh)={sinAxh・sinCxh −sinAxh・cosCxh cosAxh}t (式13)
また、移動経路の中央における本来の姿勢ベクトルqhを次式により求める。ここで、本来の姿勢ベクトルとは、始点の姿勢ベクトルと終点の姿勢ベクトルのなす平面内にあり、かつ始点の姿勢ベクトルと終点の姿勢ベクトルのなす角度の2等分線上に位置するベクトルである。
qh=qs−(qs・qn)qn (式14)
ただし、qnは、q(tx0)とq(tx1)に直交するベクトルである。
姿勢ベクトルq(txh)と、本来の姿勢ベクトルqhとの姿勢誤差ε1は以下のようになる。
ε1=cos−1(qh・q(txh)) (式15)
【0024】
次に、姿勢誤差ε1と、姿勢誤差許容値εmaxの比較を行う(ステップST3)。比較の結果、ε1がεmaxより大きい場合には関節補間の範囲(tx0,tx1)を変更する(ステップST4)。一方、ε1がεmax以下の場合には処理を終了し、補間部12において、直前に求めた関節補間の範囲(tx0,tx1)で関節補間による5軸加工機1の制御を行う。
【0025】
ステップST4では、次のようにtx0およびtx1を変更する。
tx0’=txh−dtx/2 (式16)
tx1’=txh+dtx/2 (式17)
ただし、
dtx=(tx1−tx0)・εmax/ε1 (式18)
ここでは、関節補間を行う範囲の幅dtxと姿勢誤差εは近似的に比例すると仮定している。dtxを姿勢誤差εの比率に応じて求め、このようにして得られたdtxを用いて、(tx0’,tx1’)を求めている。また、ここでは、指令経路の中央で特異姿勢qsに最も近づくと仮定している。ステップST4では、tx0’,tx1’算出後、(tx0,tx1)は(tx0’,tx1’)に置き換えられる。
【0026】
実際には、関節座標A,Cと工具姿勢I,J,Kは、式8、式9に示したように非線形の関係にある。従って、より正確に関節補間を行う範囲(tx0,tx1)を求めるには、繰り返し計算を行うことが好ましい。そこで、実施の形態1では、ステップST4において変更された区間(tx0,tx1)を用いてステップST2で再度姿勢誤差ε1を求める。この手順を繰り返し行うことにより、正確な(tx0,tx1)の値を求めることができる。
【0027】
なお、より簡易的な方法としては、ステップST3でε1がεmaxより大きいと判断された場合に、ステップST4で範囲を変更した後、ステップST2に戻らずに、直接ステップST5に進むようにしてもよい。この場合には、正確に(tx0,tx1)を求められないので移動時間が若干長くなるが、計算処理が単純化されるのでより安価な計算機でも実現可能である。
【0028】
また、ステップST3では関節補間を行う範囲の中央における姿勢誤差を計算したが、中央以外の箇所における姿勢誤差を評価してもよい。これにより姿勢誤差の計算精度が向上する。また機構や指令経路によっては解析的に正確な姿勢誤差が求められる場合もある。この場合には、解析的に関節補間を行う範囲を求めることにより、計算量の削減と、関節補間を行う範囲を求める精度の向上が可能になる。
【0029】
また、ステップST3では、最も単純な収束判定条件として単に誤差が許容値以下となるような条件としたが、ε1とεmaxの差の絶対値あるいは比率の上限・下限を設け、ε1≒εmaxとなる解を求めることで、移動時間をさらに短くすることができる。また実用性を考えると、ステップST2からステップST4への繰り返し回数の上限および(tx0,tx1)の変化量の絶対値の下限を設けることが望ましい。
【0030】
次に、具体的な数値を用いて説明する。図4に示すように、工具4の指令された移動経路の始点でのワーク座標を(p0,q0)、終点におけるワーク座標の位置と姿勢を(p1,q1)とし、具体的に次のような値とする。
q0={0.7071,−0.0123,0.7070}t (式19)
q1={−0.7071,−0.0123,0.7070}t (式20)
このときq0とq1のなす角度φは90度である。始点、終点におけるA軸の座標値はいずれも45.0087度である。また始点、終点におけるC軸の座標値はそれぞれ89.0002,−89.0002度である。
この例の場合、q0とq1によって形成される平面は、工具4の移動経路の中央において特異姿勢qsに最も近づく。そのときの工具4の姿勢ベクトルqhは、
qh={0.0000,−0.0175,0.9998}t (式21)
である。この時、qhとqsのなす角度は約1度である。また、ここでの姿勢誤差(qがq0とq1のなす平面からずれる角度)の許容値εmaxは20度とする。
【0031】
図5から図8は、上記の指令経路に対して、実施の形態1による数値制御装置によって工具4の軌跡制御を行った場合(△印)と、従来の方法により行った場合の結果を示している。
図5は、工具4が始点から終点まで移動する間の姿勢ベクトルqの軌跡を示す図である。また、図6は、工具4が始点から終点まで移動する間のA軸およびC軸の角度の変化を示し、図7は、始点から終点まで移動する間のA軸およびC軸の角速度の変化を示す。さらに、図8は、始点から終点まで移動する間の姿勢誤差の変化を示している。
【0032】
図5から図8において、×印の軌跡は、従来技術に関連して述べた関節補間を適用した場合の結果を示している。関節補間では、図6に示すように、A軸の座標値は始点から終点まで同じであり、C軸だけが動く。その結果、姿勢ベクトルqの軌跡は図5に示すように本来あるべきq0とq1のなす平面から大きくずれた軌跡になる。すなわち、図8に示すように、約44度もの大きな姿勢誤差が生じる。
【0033】
また、○印の軌跡は、回転主軸法による補間である。回転主軸法では、図5および図8に示すように姿勢誤差は生じない。しかしそれを実現するためには、図6に示すように、特異点近傍(0.6秒近傍)で、急激にC軸を動作させる必要がある。その結果、特異点近傍において非常に大きなC軸の速度変化を引き起こし、その値は約−3000度/秒まで達する(図7参照)。実際にはこのようなきわめて高速で高加速度の動作をすることは不可能である場合がほとんどである。
【0034】
これに対し、△印の軌跡で示される本発明を適用した結果は、図8に示すように、姿勢誤差が約20度で許容範囲となり、かつ各関節速度(A,C軸の速度)が極端に大きくなることもない。
【0035】
なお、本例においては、変更された(tx0,tx1)による姿勢誤差ε1は許容値(20度)より若干小さい値となり処理は終了した。
【0036】
一般に工具の姿勢の誤差は多少許容される場合が多いが、工具の位置の誤差は可能な限り小さくしたい場合が多い。その場合には、直線軸(実施の形態1ではX,Y,Z軸)の関節座標値ξは、工具の位置ベクトルpと、回転軸(実施の形態1ではA,C軸)の関節座標値から式10に従って求める。式10に従って直線軸の関節座標値を求める限り、工具の位置の誤差は生じないため、工具の位置の誤差の発生を避けたい場合にはこの方法が好適である。なおこの場合には、関節補間範囲決定部11において位置ベクトルpの情報は必要としないため、作業指令部13から関節補間範囲決定部11への位置ベクトルpの情報の転送を省略することができる。
一方、工具の位置の誤差が所定の範囲内で許容される場合には、前述した関節補間範囲内においては式10に従わず、直線軸についても関節補間を行ってもよい。これにより、位置誤差が生じるが、直線軸の速度や加速度が急激に変化することを避けることができる。このような場合、さらに好ましくは、図3に示したフローチャートのステップST2において、姿勢誤差ε1だけでなく工具の位置誤差も求め、ステップST3で姿勢誤差と位置誤差のいずれかがそれぞれの許容値よりも大きいかどうかを判定するようにすれば、工具の位置誤差も許容値以下に制限できる。
【0037】
以上のように、この実施の形態1によれば、関節補間範囲決定部11が、姿勢誤差が姿勢誤差許容値以下となるように関節補間範囲を決定し、その他の範囲では回転主軸法を用いるようにしたので、関節速度を極端に大きくすることなく、かつ指定された姿勢誤差許容値以下に姿勢誤差を制限することができるという効果がある。また、解の切り換えを行う場合にも効果が得られる。
【0038】
実施の形態2.
実施の形態1は、工具4の姿勢誤差を制御するのに適しているが、さらに、各関節軸の許容速度を満たすように制御を行うことが望ましい。実施の形態2では、各関節の許容速度を満たすように、移動速度を制御する。
【0039】
図9は、この発明の実施の形態2による数値制御装置20の構成を示すブロック図である。図2と同一の符号は、同一の構成要素をあらわしている。速度決定部25は、指令された位置pと姿勢q、関節補間範囲決定部11が決定する関節補間の範囲、および各関節軸の許容速度から、各軸の速度Vj(j=1〜n)を求める。補間部22は、この速度Vjを用いて速度を決定し、補間を行う。
【0040】
次に、動作について説明する。
図10は、実施の形態2による数値制御装置20の速度決定部25による速度決定処理のフローチャートである。当処理は、関節補間範囲決定部11による関節補間範囲算出処理の後に行われる。実施の形態2による関節補間範囲算出処理は、実施の形態1と同様の処理である。
【0041】
まず、関節補間を行う範囲における各関節座標の変化量dθj(j=1〜n)を求める(ステップST21)。すなわち、関節補間を行う範囲が媒介変数tの範囲としてtx0<t<tx1と与えられたとき、q(tx0)から式8、式9に従い、Ax0,Cx0を求める。また同様にq(tx1)からAx1,Cx1を求める。関節補間を行う範囲における各関節座標の変化量は次のように求められる。
dA=|Ax1−Ax0| (式22)
dC=|Cx1−Cx0| (式23)
【0042】
次に、dθjおよび各関節の許容速度から、以下の式により各軸の移動時間のうち最大のものを求める(ステップST22)。
Tmax=max(dA/Vma,dC/Vmc) (式24)
ここでVma,Vmcは、それぞれA軸,C軸の許容速度である。
【0043】
さらに、この最大時間Tmaxと各関節座標の変化量(dA,dC)から、各軸の速度Va,Vcを求める(ステップST23)。
V4=Va=dA/Tmax (式25)
V5=Vc=dC/Tmax (式26)
【0044】
具体的な例を挙げて説明する。A軸、C軸の許容速度をそれぞれ20度/秒、100度/秒とする。
【0045】
図11は、工具4が始点から終点まで移動する間のA軸、C軸の角速度の変化を示している。図中、○印は従来の回転主軸法による補間に速度制限を加味した場合の軌跡である。すなわち、補間周期毎にA軸、C軸のいずれかが許容速度に一致するように時々刻々の速度を修正した。△印は、実施の形態2による軌跡を示している。どちらの方法も、許容速度の制約は満たしている。しかし図に示すように、C軸の速度の波形において、−100度/sで移動する時間は従来の方法に比べ、実施の形態2の方が長い。この余分に長い部分は、従来は姿勢の精度を保つためには速度を上げられなかったが、ある程度の姿勢誤差を許容することにより速度を上げている部分である。
結果として、移動時間を比較すると次のようになる。
従来の方法(回転主軸法) 移動時間=約5.7秒
実施の形態2 移動時間=約4.4秒
【0046】
このように、実施の形態2によれば、許容範囲の姿勢誤差をある程度許容する分、速度を高くすることができるので、従来の回転主軸法による補間に比べて、移動時間が短縮できる。
【0047】
なお姿勢誤差許容値を大きくしていくと、関節補間を行う範囲が広がり移動時間が短くなる。さらに関節補間を行う範囲を広げ、指令経路の全範囲で関節補間を用いるようにすると移動時間は最も短くなる。このとき姿勢誤差も大きくなるのは明らかである。今回のように、姿勢誤差が許容値の20度以下となる条件でもっとも移動時間が短いのは、実施の形態2の数値制御装置を用いることにより得られた解である。
【0048】
なお図10に示した手順では、各関節の回転軸に着目し、各軸の座標値の変化量と許容速度から最大時間を求めたが、より理想的なのは、直線軸(X,Y,Z)も含め全関節軸で同様の処理を行うことである。これにより全ての軸で許容速度の制約がみたされ、さらに滑らかな動作を実現することが可能となる。
逆に、実用上はもっとも速度が過大になりやすい特定の軸(上述の例ではC軸)のみに着目することで、計算量の削減を図ることも可能である。この場合は、他の軸の速度制約は別の手段、(例えば機構の工夫、指令経路や指令速度のプログラミングの工夫等)で回避する必要がある。
【0049】
実施の形態3.
実施の形態1および実施の形態2で述べた方法では、図7、図11から明らかなように、関節補間を行う範囲と、回転主軸法により補間を行う範囲との境界において速度が不連続となる。この速度不連続性は、機械振動やサーボの過負荷を生じさせるおそれがある。実施の形態3では、この不連続性を改善する。
【0050】
図12は、実施の形態3による数値制御装置30の構成を示すブロック図である。図2と同一の符号は、同一の構成要素をあらわしている。曲線決定部36は、指令された位置pと姿勢q、関節補間の範囲から、関節補間を行う範囲において用いる曲線のパラメータを計算し、補間部32に送る。補間部32は、指定されたパラメータで決まる曲線に従って曲線補間を行う。
【0051】
次に動作について説明する。
図13は、実施の形態3による数値制御装置30の曲線決定部36による曲線決定処理のフローチャートである。当処理は、関節補間範囲決定部11による関節補間範囲算出処理の後に行われる。実施の形態3による関節補間範囲算出処理は、実施の形態1と同様の処理である。
【0052】
まず、関節補間を行う範囲の両端における座標値と接線ベクトルを求める(ステップST31)。
具体的には、まずq(tx0)から式8、式9に従い、Ax0、Cx0を求める。同様に、q(tx1)からAx1、Cx1を求める。接線ベクトルは微小な媒介変数Δtだけ離れた箇所の角度との差分を用いて計算する。すなわちtx0−Δtの位置のA軸、C軸の座標値を同様に求め、Ax0pre、Cx0preとする。またtx1+Δtの位置のA軸、C軸の座標値を同様に求め、Ax1post、Cx1postとする。これらを用いて、始点接線ベクトル(uax0,ucx0)および終点接線ベクトル(uax1,ucx1)を次のように求める。
uax0=(Ax0−Ax0pre)/Δt (式27)
ucx0=(Cx0−Cx0pre)/Δt (式28)
uax1=(Ax1post−Ax1)/Δt (式29)
ucx1=(Cx1post−Cx1)/Δt (式30)
【0053】
次に、媒介変数tに対応するA軸、C軸の座標値を、次に示すように3次スプライン曲線を用いて、スプライン補間により求める(ステップST32)。
A=Ax0+B・M・{0 (Ax1-Ax0) Lx・uax0 Lx・uax1}t (式31)
C=Cx0+B・M・{0 (Cx1-Cx0) Lx・ucx0 Lx・uax1}t (式32)
ただし、
τ=(t−tx0)/Lx (式33)
Lx=tx1−tx0 (式34)
B={τ3 τ2 τ 1} (式35)
【数1】
【0054】
具体的な例を挙げて説明する。図14は、工具4が始点から終点まで移動する間のA軸、C軸の角速度の変化を示している。図中、○印は従来の回転主軸法による補間に速度制限を加味した場合の軌跡である。△印は、実施の形態3による軌跡を示している。
【0055】
実施の形態3によれば、A軸、C軸とも図11に見られた速度の不連続性が解消され、滑らかな波形となっていることがわかる。ただし速度を滑らかにした分、移動時間は実施の形態2より長くなり、約5.0秒となった。それでも従来の回転主軸法を用いた場合よりは移動時間が短い。
【0056】
このように、実施の形態3によれば、関節補間を行う範囲と回転主軸法による補間を行う範囲との境界部分に生じる速度の不連続性をなくすことができ、より滑らかな動作が実現できる。例えば、金型加工など特に滑らかな動作が要求される場合などに有効である。
【0057】
なお、実施の形態3では、差分により接線ベクトルを求めたが、解析的に求めても良い。
【0058】
また、実施の形態3では、3次スプライン曲線を用いたが、少なくとも位置、速度が連続となる曲線であれば他の曲線を用いても良い。例えばB−スプライン曲線、ベジェ曲線、NURBS曲線や三角関数等を用いてもよい。また多項式あるいは有理多項式で表現される曲線の場合は、その多項式の次数は少なくとも3次以上あればよい。特に、5次以上の曲線を用い、境界条件としてさらに二階微分係数を与えて加速度まで連続にすることにより、より滑らかな動作を実現することができる。
【0059】
実施の形態4.
実施の形態1から実施の形態3では、姿勢誤差として角度の許容値を与えた。しかし図15に示すような工具4の側面による加工の場合には、姿勢誤差が加工面の精度に直接的に影響する。工具4がワーク5に接触する最上部の位置をRとし、工具先端PからRまでの長さをLとする。図16に示すように、工具4の姿勢ベクトルqが角度ε1だけの誤差を持つ場合、Lと角度ε1の積であるδ1が最上部Rの加工誤差に対応する。
【0060】
実施の形態4では、実施の形態1の図3のフローチャートで示した関節補間範囲算出処理において、ε1のかわりに変位誤差δ1=L・ε1を用い、その許容誤差δ1maxと比較するように構成する。このとき、ステップST3の条件式は以下のように表せる。
δ1>δ1max (式37)
この方法では、加工面の精度を直接δ1max以下に抑制することができ、精度が安定する。逆にいえば、精度が一定の条件で移動時間を短くすることが可能である。特に、加工や指令経路によってLが異なる場合に有効である。
【0061】
このように、実施の形態4によれば、エンドミルの側面による加工などのように工具先端から所定の距離だけ離れた位置における変位誤差δ1が性能に関係する場合、関節補間範囲決定部11が、その位置における変位誤差を直接制限することにより範囲を決定するようにしたので、より精密な補間を行うことが可能になる。
【0062】
さらに、実施の形態4の変形例として、加工面に垂直な方向の誤差成分に着目するとよい。図17に示すように、加工面の単位法線ベクトルをVnとする。まず、誤差ベクトルVδ1は以下のようにあらわせる。
Vδ1=L(q’−q) (式38)
ここで、加工面の誤差δ2は、誤差ベクトルの法線成分なので、誤差ベクトルと単位法線ベクトルの内積をとることにより、
δ2= Vδ1・Vn (式39)
となる。このδ2を用いて評価する場合、図3に示したフローチャートにおいて、ε1のかわりにδ2を用い、その許容誤差δ2maxと比較するように構成する。すなわち、ステップST3の条件式を
|δ2|>δ2max
とする。
【0063】
式39におけるδ2は符号付きで、+は加工面から離れること(削り残し)、−は加工面に近づくこと(削り込み)を意味する。従って、+側、−側の許容誤差をそれぞれδ2maxp、δ2maxmとし、ステップST3の条件式を以下のようにすればさらに加工精度をきめ細かく指定することができる。
(δ2<δ2maxm)または(δ2>δ2maxp)
これにより、さらに加工精度をきめ細かく指定することができる。例えば、δ2maxmを0に近い値とすれば、加工面への削り込みを避けることができる。
【0064】
このように、エンドミルの側面による加工においては、工具先端から所定の距離だけ離れた位置における誤差ベクトルVδ1と加工面の法線ベクトルVnの内積の値が加工面の誤差そのものにあたる。このときその内積の値に基づいて関節補間範囲を決定することで、加工誤差を一定値以下に制限することが可能になる。
特に内積値は符号を有し、加工面を削り残す方向の誤差と、削りすぎる方向の誤差を区別することができる。これにより、削り残しの誤差と、削り過ぎの誤差を区別して制限することができるため、加工精度をきめ細かく管理することができる。
【0065】
なお、実施の形態4において、LやVnは加工方法あるいは指令経路に応じて加工プログラムやパラメータに設定しておく。またδ1max,δ2max,δ1maxm,δ1maxp,δ2maxm,δ2maxpは、加工面の要求精度に応じて加工プログラムあるいはパラメータに設定しておく。
【0066】
実施の形態5.
実施の形態5では、図18に示すような円錐型のワーク5の側面を工具4の側面で加工する場合を考える。この場合、工具4は、工具先端が円弧上を1周する間に、ワーク5に対する工具姿勢を変化させる必要がある。
このような場合、従来は、図19に示すように、指令経路を細かく分割し、工具姿勢を細かく指定することで対応していた。図の例では、経路を14個に分割し、q0からq14までの計15個のベクトルを指定している。経路を多数に分割すればするほど、工具姿勢の誤差は小さくなる。
しかし、経路を多数に分割すれば、加工プログラムに指令するデータが増え、大きな容量の加工プログラムの記憶領域が必要となってしまう。またこの加工プログラムに従って制御を行う数値制御装置においても、動作中に多数のデータを解釈するため、処理能力の高い高価なCPUを用いる必要がある。
【0067】
実施の形態5では、工具先端の経路が円弧等で与えられる場合のように、工具先端の経路が、ある平面内に存在する場合でも、多数の工具姿勢ベクトルを指定しなくてよい方法を実現する。
【0068】
図20は、実施の形態5による数値制御装置50の構成を示すブロック図である。数値制御装置50において、作業指令部53を構成する作業プログラムは、姿勢決定部57に対して、姿勢ベクトルq0、指令経路を表す曲線式C(t)および指令経路が含まれる平面の法線ベクトルWnを供給する。姿勢決定部57は、これらのパラメータおよび補間部52から供給される媒介変数tから、姿勢ベクトルq(t)を決定する。補間部52は、姿勢決定部57によって計算された姿勢ベクトルq(t)を用いて補間演算を行い、各関節軸の座標値θjを計算してサーボ制御装置14に送る。サーボ制御装置14は5軸加工機1を駆動し、所定の動作を行わせる。
【0069】
次に動作について説明する。
図21は、実施の形態5による数値制御装置50の姿勢決定部57による姿勢決定処理のフローチャートである。
【0070】
ここでは、作業指令部53から与えられた指令経路が図22に示す平面に含まれるとする。この平面の単位法線ベクトルをWn、指令経路の始点における工具の姿勢ベクトルをq0とし、始点における平面への接線ベクトルをW0とする。姿勢決定部57は、工具姿勢が工具の進行方向に対して一定の角度に保つように計算する。
【0071】
まず、媒介変数tに対応する接線ベクトルW(t)を指令経路を表す曲線式の微係数を用いて計算する(ステップST51)。すなわち、指令経路の曲線式をC(t)とし、その導関数をD(t)=dC(t)/dtとすると、
W(t)=D(t)/|D(t)| (式40)
で計算される。なお始点における接線ベクトルW0は、
W0=W(0)=D(0)/|D(0)| (式41)
である。
【0072】
次に、接線ベクトルW(t)と、始点における接線ベクトルW0とのなす角度βを以下の式により求める(ステップST52)。
β=cos−1(W0・W(t)) (式42)
【0073】
さらに、このβを用いて法線ベクトルWnを中心にq0を角度βだけ回転させることで、媒介変数tに対応する姿勢ベクトルq(t)を以下の式により求める(ステップST53)。
q(t)=Rot(Wn,β)・q0 (式43)
ここでRot(Wn,β)は、ベクトルWn回りに角度βだけ回転させるための3×3行列である。その具体的な数式は、実施の形態1に関連して述べたPaul著、吉川恒夫訳、ロボット・マニピュレータ、コロナ社、1984に示されている。
【0074】
以上のように、この実施の形態5によれば、工具先端の経路が、ある平面内にある場合に、姿勢決定部57工具の進行方向に対して一定の姿勢を保つように工具姿勢ベクトルを自動的に求めるようにしたので、多数の工具姿勢ベクトルを指定する必要がなく、大容量の記憶装置や、計算能力の高いCPUを用いる必要がない。
【0075】
【発明の効果】
以上のように、この発明によれば、工具に与えられた2つの時点での姿勢に基づいて、両時点の間における工具の姿勢誤差が姿勢誤差許容値以下となるように、関節補間範囲を決定する関節補間範囲決定部と、関節補間範囲においては関節補間により工具の姿勢を制御する情報を算出し、その他の範囲においては他の方法により工具の姿勢を制御する情報を算出する補間部とを備えるようにしたので、特異点近傍など各関節の速度や加速度が過大となるような場合に、軌跡誤差に対する要求精度を満たしつつ、移動時間をできるだけ短縮することが可能な数値制御装置を得られるという効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による、数値制御装置により軌跡制御を行う5軸加工機の斜視図である。
【図2】 この発明の実施の形態1による、数値制御装置の構成を示すブロック図である。
【図3】 この発明の実施の形態1による、数値制御装置の関節補間範囲決定部による関節補間範囲算出処理のフローチャートである。
【図4】 工具のワーク座標を説明するための図である。
【図5】 この発明の実施の形態1による、工具が始点から終点まで移動する間の姿勢ベクトルqの軌跡を示す図である。
【図6】 この発明の実施の形態1による、工具が始点から終点まで移動する間のA軸およびC軸の角度の変化を示す図である。
【図7】 この発明の実施の形態1による、工具が始点から終点まで移動する間のA軸およびC軸の角速度の変化を示す図である。
【図8】 この発明の実施の形態1による、工具が始点から終点まで移動する間の姿勢誤差の変化を示す図である。
【図9】 この発明の実施の形態2による、数値制御装置の構成を示すブロック図である。
【図10】 この発明の実施の形態2による、数値制御装置の速度決定部による速度決定処理のフローチャートである。
【図11】 この発明の実施の形態2による、工具が始点から終点まで移動する間のA軸およびC軸の角速度の変化を示す図である。
【図12】 この発明の実施の形態3による、数値制御装置の構成を示すブロック図である。
【図13】 この発明の実施の形態3による、数値制御装置の曲線決定部による曲線決定処理のフローチャートである。
【図14】 この発明の実施の形態3による、工具が始点から終点まで移動する間のA軸およびC軸の角速度の変化を示す図である。
【図15】 工具の側面による加工を説明する図である。
【図16】 この発明の実施の形態4による、関節補間範囲の決定方法を説明するための図である。
【図17】 この発明の実施の形態4の変形例による、関節補間範囲の決定方法を説明するための図である。
【図18】 工具の側面によるワークの円錐側面の加工を説明する図である。
【図19】 指令経路を細かく分割して工具姿勢を指定する方法を説明する図である。
【図20】 この発明の実施の形態5による、数値制御装置の構成を示すブロック図である。
【図21】 この発明の実施の形態5による、数値制御装置の姿勢決定部による姿勢決定処理のフローチャートである。
【図22】 この発明の実施の形態5による、姿勢決定方法を説明するための図である。
【符号の説明】
1 5軸加工機、2 傾斜テーブル、3 旋回テーブル、4 工具、5 ワーク、10,20,30,50 数値制御装置、11 関節補間範囲決定部、12,22,32,52 補間部、13,53 作業指令部、14 サーボ制御装置、25 速度決定部、36 曲線決定部、57 姿勢決定部。
Claims (4)
- 回転自由度を有し、作業対象に対する工具の姿勢を変更することが可能な機械の制御を行う数値制御装置において、
上記工具に与えられた2つの時点での姿勢に基づいて、両時点の間の全範囲において関節補間を行うときに生じる姿勢誤差が姿勢誤差許容値より大きい場合に、上記工具の姿勢誤差が上記姿勢誤差許容値以下となるまで関節補間範囲を小さくするように修正する関節補間範囲決定部と、
上記関節補間範囲においては関節補間により上記工具の姿勢を制御する情報を算出し、その他の範囲においては回転主軸法により上記工具の姿勢を制御する情報を算出する補間部とを備えたことを特徴とする数値制御装置。 - 決定された関節補間範囲に基づいて、機械の各関節の速度が、上記関節補間範囲では許容速度以下となるように決定する速度決定部を備え、
補間部は、上記速度決定部によって決定された各関節の速度に従って補間を行うことを特徴とする請求項1記載の数値制御装置。 - 決定された関節補間範囲に基づいて、関節補間範囲とその他の補間範囲との間での各関節の速度の変化を円滑にする補間曲線を決定する曲線決定部を備え、
補間部は、上記曲線決定部によって決定された曲線に従って曲線補間を行うことを特徴とする請求項1または請求項2記載の数値制御装置。 - 関節補間範囲決定部は、工具の姿勢誤差ベクトルと加工面の法線ベクトルとの内積に基づいて、関節補間範囲を決定することを特徴とする請求項1から請求項3のうちのいずれか1項記載の数値制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003008615A JP4101665B2 (ja) | 2003-01-16 | 2003-01-16 | 数値制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003008615A JP4101665B2 (ja) | 2003-01-16 | 2003-01-16 | 数値制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004220435A JP2004220435A (ja) | 2004-08-05 |
JP4101665B2 true JP4101665B2 (ja) | 2008-06-18 |
Family
ID=32898364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003008615A Expired - Lifetime JP4101665B2 (ja) | 2003-01-16 | 2003-01-16 | 数値制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4101665B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108582071A (zh) * | 2018-04-26 | 2018-09-28 | 华中科技大学 | 一种工业机器人编程轨迹诊断及速度优化的方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008287471A (ja) | 2007-05-17 | 2008-11-27 | Fanuc Ltd | 5軸加工機の数値制御方法 |
JP4637197B2 (ja) * | 2008-03-24 | 2011-02-23 | 三菱電機株式会社 | 数値制御装置 |
JP4607993B2 (ja) * | 2008-10-27 | 2011-01-05 | ファナック株式会社 | 5軸加工機の数値制御方法 |
JP5234772B2 (ja) * | 2008-10-28 | 2013-07-10 | オークマ株式会社 | 工作機械の振動抑制方法及び装置 |
JP5350766B2 (ja) * | 2008-12-12 | 2013-11-27 | ファナック株式会社 | 5軸加工機用数値制御装置 |
JP5426153B2 (ja) * | 2008-12-17 | 2014-02-26 | ファナック株式会社 | 回転軸を有する工作機械用の数値制御装置 |
JP5399881B2 (ja) * | 2009-05-19 | 2014-01-29 | ファナック株式会社 | 5軸加工機用数値制御装置 |
DE112009005397B4 (de) | 2009-11-26 | 2014-08-07 | Mitsubishi Electric Corp. | Numerische Steuervorrichtung |
JP5461980B2 (ja) * | 2009-12-22 | 2014-04-02 | ファナック株式会社 | ワーク設置誤差補正手段を有する5軸加工機を制御する数値制御装置 |
CN102033508B (zh) * | 2010-12-01 | 2012-07-25 | 沈阳工业大学 | 提高直接驱动xy平台轮廓加工精度方法 |
JP5255108B2 (ja) | 2011-11-04 | 2013-08-07 | ファナック株式会社 | 指令経路速度条件による速度制御を行う数値制御装置 |
JP7070114B2 (ja) * | 2018-06-06 | 2022-05-18 | 株式会社Ihi | ロボット制御装置及びロボット制御方法 |
-
2003
- 2003-01-16 JP JP2003008615A patent/JP4101665B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108582071A (zh) * | 2018-04-26 | 2018-09-28 | 华中科技大学 | 一种工业机器人编程轨迹诊断及速度优化的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2004220435A (ja) | 2004-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4101665B2 (ja) | 数値制御装置 | |
Yuwen et al. | Path, feedrate and trajectory planning for free-form surface machining: A state-of-the-art review | |
JP3749262B2 (ja) | 工具移動経路データの作成方法、その作成装置、加工方法、および加工システム | |
US7869897B2 (en) | Numerical control method for five-axis processing machine | |
Affouard et al. | Avoiding 5-axis singularities using tool path deformation | |
CN110900612B (zh) | 一种位姿同步的六轴工业机器人轨迹平顺方法 | |
JPS61173311A (ja) | マニピユレ−タを制御する方法および装置 | |
JP5565302B2 (ja) | ロボットの制御装置及びロボットの姿勢補間方法 | |
US7047107B2 (en) | Robot control apparatus | |
JP3207409B2 (ja) | ロボットのツール姿勢制御方法 | |
JP5790840B2 (ja) | ロボットの制御装置及びロボットの姿勢補間方法 | |
WO2014196066A1 (ja) | 数値制御装置 | |
Yang et al. | A high accuracy on-line estimation algorithm of five-axis contouring errors based on three-point arc approximation | |
Sun et al. | A cutter orientation modification method for five-axis ball-end machining with kinematic constraints | |
JP3034843B2 (ja) | 加工機の制御装置 | |
JPH01271102A (ja) | 非円形断面体ワーク加工用工作機械及びその制御方法 | |
JP5399881B2 (ja) | 5軸加工機用数値制御装置 | |
US6735495B2 (en) | Polynomial and spline interpolation of machine tool orientations | |
JP3511583B2 (ja) | 数値制御方法 | |
JPH08126938A (ja) | バイト工具による主軸回転角制御式切削加工方法 | |
CN110586960A (zh) | 用于加工工件的方法、数控装置以及机床 | |
JP3902310B2 (ja) | 産業用ロボットの姿勢生成方法 | |
JPWO2021177449A5 (ja) | ||
JP3690424B2 (ja) | 数値制御方法及びその装置 | |
JPH11194813A (ja) | 産業用機械の動作指令作成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051025 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070925 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20071107 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20071107 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071107 |
|
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: 20080219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080319 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4101665 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120328 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130328 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130328 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140328 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |