IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ミツトヨの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-05
(45)【発行日】2022-01-20
(54)【発明の名称】形状測定装置の制御方法
(51)【国際特許分類】
   G01B 5/20 20060101AFI20220113BHJP
   G01B 21/20 20060101ALI20220113BHJP
【FI】
G01B5/20 C
G01B21/20 C
G01B21/20 D
【請求項の数】 1
(21)【出願番号】P 2017173576
(22)【出願日】2017-09-08
(65)【公開番号】P2019049464
(43)【公開日】2019-03-28
【審査請求日】2020-08-04
(73)【特許権者】
【識別番号】000137694
【氏名又は名称】株式会社ミツトヨ
(74)【代理人】
【識別番号】100143720
【弁理士】
【氏名又は名称】米田 耕一郎
(74)【代理人】
【識別番号】100080252
【氏名又は名称】鈴木 征四郎
(72)【発明者】
【氏名】野田 孝
【審査官】櫻井 仁
(56)【参考文献】
【文献】特開2008-241420(JP,A)
【文献】特開2013-238573(JP,A)
【文献】特開2014-021004(JP,A)
【文献】特開2014-048095(JP,A)
【文献】特開平06-273154(JP,A)
【文献】米国特許第05895442(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 21/00-21/32
G01B 5/00- 5/30
(57)【特許請求の範囲】
【請求項1】
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正し、
前記修正後の速度パターンの加速区間および減速区間に対して、
加速区間では初速Vsから単調に加速して修正最高速度Vmに到達し、減速区間では修正最高速度Vmから単調に減速して終速度Veに至ると仮定して仮S字速度曲線を算出し、
仮S字速度曲線に従った移動では不足する距離の補正量Dを算出し、
前記不足する距の補正量Dを加速区間または減速区間の制御サンプリング回数で補完するように速度補量ΔVを算出し、
各制御サンプリングタイミングにおいて前記仮S字速度曲線に前記速度補量ΔVを加算した値を修正後の速度とする
ことを特徴とする形状測定装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、形状測定装置の制御方法に関する。
【背景技術】
【0002】
測定対象物の表面に沿ってプローブを倣い移動させることで測定対象物の形状を測定する形状測定装置が知られている(例えば、特許文献1、2、3参照)。倣い測定にあたっては、倣い測定の経路を生成しておく必要がある。
特許文献1に記載の装置では、CADデータ等に基づいた設計値(例えばNURBS(Non-UniformRationalB-Spline:非一様有理Bスプライン)データ)を所定次数の多項式曲線群に変換する。
【0003】
この手順を簡単に説明すると、まず、外部のCADシステム等から経路情報を含んだCADデータ(例えばNURBSデータ)を受け取り、このCADデータを点群のデータに変換する。各点のデータは、座標値(x、y、z)と法線方向(P、Q、R)とを組み合わせたデータである(つまり、(x、y、z、P、Q、R)である。)
本明細書では、以後の説明のため、(x、y、z、P、Q、R)の情報をもつ点群のデータを輪郭点データと称することにする。
【0004】
次に、各点の座標値を法線方向に所定量だけオフセットする。(所定量とは、具体的には、測定子半径r―基準押込み量E0である。)このようにして求めた点群データをオフセット済み輪郭点データと称することにする。
【0005】
そして、オフセット済み輪郭点データを所定次数の多項式曲線群に変換する。
ここでは、多項式として三次関数を用い、PCC曲線群(Parametric Cubic Curves)とする。
このPCC曲線を元に倣い測定の経路を生成する。さらに、PCC曲線を分割して分割PCC曲線群とする。
【0006】
分割PCC曲線群から速度曲線を算出してプローブの移動速度(移動ベクトル)を算出する。例えば分割PCC曲線群の各セグメントの曲率などに基づいてプローブの移動速度(移動ベクトル)を設定する。このように算出された移動速度に基づいてプローブを移動させ、測定対象物の表面に沿ってプローブを移動させる(パッシブ設計値倣い測定)。
【0007】
さらに、プローブの押し込み量を一定にするように押込み修正ベクトルを時々刻々算出して、軌道修正しながら倣い測定する方法も知られている(アクティブ設計値倣い測定)。
【0008】
特許文献2(特開2013-238573号公報)に開示された「アクティブ設計値倣い測定」を簡単に紹介する。「アクティブ設計値倣い測定」では、次の(式1)で表わされる合成ベクトルVをプローブのベクトル移動指令とする。
プローブが合成ベクトルVに基づく移動を行うと、プローブ(測定子)はPCC曲線に沿うように移動しつつ、押込み量を一定としたワーク表面倣い測定、つまり、「アクティブ設計値倣い測定」が実現される。
【0009】
V=Gf×Vf+Ge×Ve+Gc×Vc ・・・(式1)
【0010】
図1を参照しながら式の意味を簡単に説明する。
図1において、設計データ(輪郭点データ)から所定量(測定子半径r―基準押込み量E0)オフセットしたところにPCC曲線(つまり、倣い経路)がある。
また、図1においては、実際のワークが設計データから少しずれている。
【0011】
ベクトルVfは経路速度ベクトルである。経路速度ベクトルVfは、PCC曲線上の補間点(i)から次の補間点(i+1)に向かう方向をもつ。なお、経路速度ベクトルVfの大きさは、例えば、補間点(i)におけるPCC曲線の曲率に基づいて決定される(例えば特許文献3)。
【0012】
ベクトルVeは、押込み量修正ベクトルであり、プローブの押込み量Epが所定の基準押込み量E0(例えば0.3mm)になるようにするためのベクトルである。(押込み量修正ベクトルVeは、必然的に、ワーク表面の法線に平行となる。)
【0013】
ベクトルVcは、軌道修正ベクトルである。軌道修正ベクトルは、プローブ位置からPCC曲線に下ろした垂線に平行である。
Gf、Ge、Gcはそれぞれ倣い駆動ゲイン、押込み方向修正ゲイン、軌道修正ゲインである。
【0014】
PCC曲線を図2に例示する。
点P1から点P7まで一続きのPCC曲線L_PCCがあり、このPCC曲線L_PCCは、点Pにより複数のセグメントに分割されている。(各セグメントもPCC曲線である。)
各セグメントの終了点は、次のセグメント(PCC曲線)の開始点となっている。セグメントの開始点の座標を(KX0、KY0、KZ0)と表わし、そのPCC曲線における始点と終点との間の直線の長さをDとする。
このように定義すると、PCC曲線上の任意の位置における座標{X(S)、Y(S)、Z(S)}は、3次曲線を表わすための係数(KX3、KX2・・・・KZ1、KZ0)を用い、次の式で表される。
【0015】
X(S)=KX3+KX2+KX1S+KX0
Y(S)=KY3+KY2+KY1S+KY0
Z(S)=KZ3+KZ2+KZ1S+KZ0
【0016】
ワークが平面や曲率一定の円で構成されているような単純形状であれば、倣い測定の経路も直線や円といった単純形状でよく、PCC曲線を数多くのセグメントに分割する必要はない。
一方、ワークの測定部位が複雑な形状をしており、かつ、このような測定部位に精度良く追随しながら高精度の倣い測定を行うためには、PCC曲線を細かく分割してセグメント数を増やさなければならない。例えば、図3のような曲線の輪郭形状を倣い測定する場合、図4に例示するように曲率が変化するところでセグメントに分割する。そして、セグメントごとに適切な速度パターンが設定される(特許文献3)。つまり、曲線に精度よく追随しながら、かつ、できる限り高速に移動する速度パターンが各セグメントに応じて設定される。
図5に速度パターンの一例を示す。
【先行技術文献】
【特許文献】
【0017】
【文献】特開2008-241420号公報
【文献】特開2013-238573号公報
【文献】特開2014-21004号公報(特許6063161)
【発明の概要】
【発明が解決しようとする課題】
【0018】
例えば図5のように求められた速度パターンに従って移動速度の加減速制御を行えばよいのであるが、実際には、次のような問題が生じていた。
図5の速度パターンは、PCC曲線の曲率等の形状をもとに、速度パターンの当てはめと演算処理で求められるものである。しかし実際に形状測定装置を駆動制御する場合、命令の実行は制御サンプリング周期単位で行われることになる。
一例として図6を参照して頂きたい。
図6は、速度パターンに対し、時間軸に制御サンプリング周期単位(T)で目盛りを入れたものである。この図6の速度パターンは、偶然にも制御サンプリング周期にピッタリ合っている場合の例である。
最初、速度Vsから加速して、定速度Vに達し、定速度Vで進行した後、速度Veまで減速する。速度パターンの加減速を設定された時間通りに実行すれば、目標地点に達するはずである。
【0019】
一方、図7の速度パターンでは、制御サンプリング周期に合っていない場合である。
速度パターンでは速度Vsから加速して定速度Vに達するが、加速の終わり時間が制御サンプリング周期の最後に合っていない。そのため、制御サンプリング周期の最後まで加速が継続することになる。すると、目標の定速度Vを超えてしまうし、プローブの位置は演算上の目標地点を過ぎてしまうことになる。さらに、定速度Vで進行した後、減速区間に移行するが、減速の開始が制御サンプリング周期の先頭に合っていない。そのため、制御サンプリング周期の最後まで定速度Vが継続することになる。減速タイミングが遅れると、最終的なプローブの位置は演算上の目標地点を通過してしまう。
このように、加減速の変更タイミングと制御サンプリング周期とにズレがあるたびに制御誤差が積み重なっていくことになる。
【0020】
これまでの形状測定装置の駆動制御にあっては、最高速度や最高加速度の大きさがそれほど大きくなかったので、制御ズレが致命的な大きさにはならなかった。(あるいは、制御ズレが大きくなりすぎないように最高速度および最高加速度を抑制していた。)しかし、測定効率の向上が望まれている現在にあっては、最高速度や最高加速度が大きくなってくると前記制御ズレが重要な解決課題となってくる。
【0021】
本発明の目的は、速度パターンの加減速変更のタイミングを制御サンプリング周期に適合させ、制御ズレが生じないようにする形状測定装置の制御方法を提供することにある。
【課題を解決するための手段】
【0022】
本発明の形状測定装置の制御方法は、
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正する
ことを特徴とする。
【0023】
本発明では、
前記速度パターンの初速と終速とがゼロであって、かつ、前記速度パターンが台形パターンである場合には、
加速区間の制御サンプリング回数Naと等速区間の制御サンプリング回数Nfとの和の小数点以下を切り上げたNmを算出し、
全体の移動距離をS、一の制御サンプリング周期をTとするとき、等速区間の速度である修正最高速度VmをS/(T×Nm)で算出し、
さらに、修正前の加速度をαで表わすとき、加速区間の制御サンプリング回数Naを整数化した値NamをROUNDUP(Na'、0)(ただしNa'=Vm/(T×α))とし、
これに合わせて等速区間の制御サンプリング回数Nfm=Nm-Nam、として、前記速度パターンを制御サンプリング周期に適合するように修正する
ことが好ましい。
【0024】
本発明では、
前記速度パターンの初速と終速とがゼロであって、かつ、前記速度パターンが三角パターンである場合には、
全体の移動距離をS、修正前の加速度をα、一の制御サンプリング周期をTで表わすとき、
整数化された加速区間の制御サンプリング回数Nanを次の値とする。
Nan=Roundup(Na、0)
ただし、Naは、S=α×(Na×T)である。
【0025】
また、本発明の形状測定装置の制御方法は、
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正する
ことを特徴とする。
【0026】
本発明では、
前記速度パターンが台形パターンである場合には、
修正前の、加速区間の制御サンプリング回数をNa、減速区間の制御サンプリング回数をNd、等速区間の制御サンプリング回数をNf、全体の制御サンプリング回数をNtとするとき、
修正後の全体の制御サンプリング回数Ntmは、前記修正前の全体の制御サンプリング回数Ntの小数点以下を切り上げた数Ntmとし、
修正後の加速区間の制御サンプリング回数は前記Naを切り上げた値Namとし、
修正後の減速区間の制御サンプリング回数は前記Ndを切り上げた値Ndmとし、
修正後の等速区間の制御サンプリング回数Nftは、Ntm-(Nam+Ndm)-2とし、
さらに、加速区間と等速区間との間、および、等速区間と減速区間との間にそれぞれ一制御サンプリング周期分の調整区間を挿入する
ことが好ましい。
【0027】
本発明では、
前記調整区間の加速度が修正前の加速度と対比したときに、符号が反対になる場合には、
さらに、前記Namから1を減じ、前記Ndmから1を減じる
ことが好ましい。
【0028】
本発明では、
前記速度パターンが三角パターンである場合には、
修正前の、加速区間の制御サンプリング回数をNa、減速区間の制御サンプリング回数をNd、全体の制御サンプリング回数をNtとするとき、
修正後の全体の制御サンプリング回数Ntmは、前記修正前の全体の制御サンプリング回数Ntの小数点以下を切り上げた数Ntmとし、
修正後の加速区間の制御サンプリング回数は前記Naを切り上げた値からさらに1を減じた値Namとし、
修正後の減速区間の制御サンプリング回数は前記Ndを切り上げた値からさらに1を減じた値Ndmとし、
修正後の等速区間の制御サンプリング回数Nftは、Ntm-(Nam+Ndm)-2とし、
さらに、加速区間と等速区間との間、および、等速区間と減速区間との間にそれぞれ一制御サンプリング周期分の調整区間を挿入する
ことが好ましい。
【0029】
また、本発明の形状測定装置の制御方法は、
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正し、
前記修正後の速度パターンの加速区間および減速区間に対して、
加速区間では初速Vsから単調に加速して修正最高速度Vmに到達し、減速区間では修正最高速度Vmから単調に減速して終速度Veに至ると仮定して仮S字速度曲線を算出し、
仮S字速度曲線に従った移動では不足する距離の補正量Dを算出し、
前記不足する距離の補正量Dを加速区間または減速区間の制御サンプリング回数で補完するように速度補量ΔVを算出し、
各制御サンプリングタイミングにおいて前記仮S字速度曲線に前記速度補量ΔVを加算した値を修正後の速度とする
ことを特徴とする
【図面の簡単な説明】
【0030】
図1】設計データ(輪郭点データ)とPCC曲線と実際のワークとの関係を例示する図である。
図2】PCC曲線を例示するである。
図3】曲線状の輪郭(PCC曲線)を例示する図である。
図4】PCC曲線をセグメントに分割した一例を示す図である。
図5】速度パターンの一例を示す図である。
図6】速度パターンに対し、時間軸に制御サンプリング周期単位(T)で目盛りを入れた図であって、速度パターンと制御サンプリング周期とがピッタリ合っている場合の例を示す図である。
図7】速度パターンに対し、時間軸に制御サンプリング周期単位(T)で目盛りを入れた図であって、速度パターンと制御サンプリング周期とが合っていない場合の例を示す図である。
図8】形状測定システムの全体構成を示す図である。
図9】モーションコントローラおよびホストコンピュータの機能ブロック図である。
図10】移動指令生成部の構成を示す図である。
図11】開始速度Vsおよび終了速度Veがゼロである台形パターンの一例を示す図である。
図12】開始速度Vsおよび終了速度Veがゼロである三角パターンの一例を示す図である。
図13】モーションコントローラの制御動作を表わす全体フローチャートである。
図14】速度パターン修正部による速度パターン修正処理の手順を説明するためのフローチャートである。
図15】速度パターン修正処理の手順を説明するためのフローチャートである。
図16】修正された速度パターンを示す図である。
図17】速度パターン修正処理の手順を説明するためのフローチャートである。
図18】修正された速度パターンを示す図である。
図19】初速Vsおよび終速Veがゼロではない台形パターンを例示する図である。
図20】速度パターン修正処理の手順を説明するためのフローチャートである。
図21】整数化処理の手順を説明するためのフローチャートである。
図22】整数化処理の手順を説明するためのフローチャートである。
図23】修正された速度パターンを示す図である。
図24】初速Vsおよび終速Veがゼロではない三角パターンを例示する図である。
図25】速度パターン修正処理の手順を説明するためのフローチャートである。
図26】修正された速度パターンを示す図である。
図27】S字加減速処理を説明するためのフローチャートである。
図28】単純化した修正速度パターンに対しての仮のS字速度曲線を例示する図である。
図29】S字加減速処理によって直線的加減速パターンからS字速度曲線を得る方法を説明するための図である。
図30】S字加減速処理によって直線的加減速パターンからS字速度曲線を得る方法を説明するための図である。
図31】距離の補正量を例示する図である。
図32】速度補正量を例示する図である。
【発明を実施するための形態】
【0031】
本発明の実施形態を図示するとともに図中の各要素に付した符号を参照して説明する。
(第1実施形態)
図8は、形状測定システム100の全体構成を示す図である。
形状測定システム100は、三次元測定機200と、三次元測定機200の駆動を制御するモーションコントローラ300と、モーションコントローラ300を制御すると共に必要なデータ処理を実行するホストコンピュータ500と、を備える。
【0032】
三次元測定機200自体はよく知られているものであるが、簡単に例示しておく。
三次元測定機200は、定盤210と、移動機構220と、プローブ230と、を備える。
【0033】
移動機構220は、定盤210上をY方向にスライド可能に設けられた門型のYスライダ221と、Yスライダ221のX方向のビームに沿ってスライドするXスライダ222と、Xスライダ222に固定されたZ軸コラム223と、Z軸コラム223内をZ方向に昇降するZスピンドル224と、を備える。
【0034】
Yスライダ221、Xスライダ222およびZスピンドル224には、それぞれ駆動モータ(不図示)とエンコーダ(不図示)とが付設されている。モーションコントローラ300からの駆動制御信号によって各駆動モータが駆動制御される。エンコーダは、Yスライダ221、Xスライダ222およびZスピンドル224それぞれの移動量を検出し、検出値をモーションコントローラ300に出力する。Zスピンドル224の下端にプローブ230が取り付けられている。
【0035】
プローブ230は、測定子232を先端側(-Z軸方向側)に有するスタイラス231と、スタイラス231の基端側(+Z軸方向側)を支持する支持部233と、を備える。測定子232は、球状であって、測定対象物Wに接触する。
【0036】
支持部233は、スタイラス231に外力が加わった場合、すなわち測定子232が測定対象物に当接した場合にはスタイラス231が一定の範囲内でX、Y、Z軸の各軸方向に移動可能となるようにスタイラス231を支持している。さらに、支持部233は、スタイラス231の各軸方向の位置をそれぞれ検出するためのプローブセンサー(不図示)を備える。プローブセンサは検出値をモーションコントローラ300に出力する。
【0037】
(モーションコントローラ300の構成)
図9は、モーションコントローラ300およびホストコンピュータ500の機能ブロック図である。
モーションコントローラ300は、測定指令取得部310と、カウンタ部330と、移動指令生成部340と、駆動制御部350と、を備える。
【0038】
測定指令取得部310は、ホストコンピュータ500からPCC曲線データを取得する。カウンタ部330は、エンコーダから出力される検出信号をカウントして各スライダの変位量を計測するとともに、プローブセンサから出力される検出信号をカウントしてプローブ230(スタイラス231)の変位量を計測する。計測されたスライダおよびプローブ230の変位から測定子232の座標位置PP(以下、プローブ位置PP)が得られる。また、カウンタ部330にて計測されたスタイラス231の変位(プローブセンサの検出値(Px,Py,Pz))から、測定子232の押込み量(ベクトルEpの絶対値)が得られる。
【0039】
移動指令生成部340は、プローブ230(測定子232)で測定対象物表面を測定するためのプローブ230(測定子232)の移動経路を算出し、その移動経路に沿った速度ベクトルを算出する。
移動指令生成部340の構成を図10に示す。
移動指令生成部340は、速度パターン計画部341と、ベクトル指令生成部348と、を備える。
速度パターン計画部341は、速度パターン演算部342と、速度パターン修正部343と、加減速調整部344と、を備える。
各機能部の動作についてはフローチャートを参照しながら後述する。
【0040】
駆動制御部350は、移動指令生成部340にて算出された移動ベクトルに基づいて、各スライダを駆動制御する。
【0041】
なお、モーションコントローラ300には、手動コントローラ400が接続されている。
手動コントローラ400は、ジョイスティックおよび各種ボタンを有し、ユーザからの手動入力操作を受け付け、ユーザの操作指令をモーションコントローラ300に送る。この場合、モーションコントローラ300(駆動制御部350)は、ユーザの操作指令に応じて各スライダを駆動制御する。
【0042】
(ホストコンピュータ500の構成)
ホストコンピュータ500は、CPU511(CentralProcessingUnit)やメモリ等を備えて構成され、モーションコントローラ300を介して三次元測定機200を制御する。
ホストコンピュータ500は、さらに、記憶部520と、形状解析部530と、を備える。記憶部520は、測定対象物(ワーク)Wの形状に関する設計データ(CADデータや、NURBSデータ等)、測定で得られた測定データ、および、測定動作全体を制御する測定制御プログラムを格納する。
【0043】
形状解析部530は、モーションコントローラ300から出力された測定データに基づいて測定対象物の表面形状データを算出し、算出した測定対象物の表面形状データの誤差や歪み等を求める形状解析を行う。また、形状解析部530は、設計データ(CADデータや、NURBSデータ等)からPCC曲線への変換等の演算処理も担う。
【0044】
CPU511(中央処理装置)で測定制御プログラムを実行することにより本実施形態の測定動作が実現される。
【0045】
ホストコンピュータ500には、必要に応じて、出力装置(ディスプレイやプリンタ)および入力装置(キーボードやマウス)が接続されている。
【0046】
(制御方法)
フローチャートを参照しながら本実施形態に係る形状測定装置の制御方法を説明する。
前述のように、本発明は、速度パターンの加減速変更のタイミングを「制御サンプリング周期」に適合させ、制御ズレが生じないようにするものである。加減速変更のタイミングが制御サンプリング周期に適合していない速度パターン(例えば図7)を修正して、加減速変更のタイミングが制御サンプリング周期に適合するようにしたい。
なお、第1実施形態としては、図11図12のように、開始速度Vsと終了速度Veとが両方ともにゼロである速度パターンについて考える。(開始速度Vsおよび終了速度Veのうちの一方でもゼロではない速度パターンについては第2実施形態で説明する。)
【0047】
図13は、モーションコントローラ300の制御動作を表わす全体フローチャートである。
モーションコントローラ300は、ホストコンピュータ500で生成された測定指令としてのPCC曲線データを受信する(ST110)。速度パターン計画部341は、このPCC曲線データに従ってプローブ230を倣い移動させるための速度パターンを生成する(ST120)。速度パターン演算部342は、PCC曲線に精度よく追随しながら、かつ、できる限り高速に移動する速度パターンをセグメントごとに生成する(ST130)。
この工程自体は従来と同じであり、例えば背景技術で説明した図5のような速度パターンが生成されるのであるが、本第1実施形態では、図11あるいは図12のように、開始速度Vsと終了速度Veとが両方ともにゼロである速度パターンができたとする。例えば、PCC曲線(のセグメント)が単純な図形(例えば直線や曲率一定の曲線)である場合を想定されたい。
【0048】
図11の速度パターンは、開始速度Vsがゼロの状態からスタートし、等加速度で加速していって最高速度Vmaxに達し、この最高速度Vmaxで一定時間等速移動した後、等減速度で減速していって終了速度Ve=0で終わる。
このとき、加速度の大きさと減速度の大きさは同じであるとする。つまり、加速時間と減速時間とは同じである。この図11の例のように、最高速度Vmaxによる等速移動の区間がある速度パターンを台形パターンと称することにする。
【0049】
ここで、加速区間および減速区間における加速度(または減速度)の大きさは、マシン(三次元測定機)の耐加速度に応じて設定される。加速区間および減速区間における加速度(または減速度)は、最大の場合、マシン(三次元測定機)の耐加速度と同じ値にしてもよい。実際的には、安全性および滑らかな加減速動作(具体的にはS字加減速処理)を考慮して、加速区間および減速区間における加速度(または減速度)は、マシン(三次元測定機)の耐加速度の半分に設定するのがよい。この場合、マシン(三次元測定機)の耐加速度の大きさをβとすれば、加速区間および減速区間における加速度(または減速度)の大きさαは、α=β/2、である。
等速区間における最高速度Vmaxも、マシン(三次元測定機)の耐速度に応じて設定される。等速区間における最高速度Vmaxは、最大限、マシン(三次元測定機)の耐速度と同じ値にすることももちろんできるし、オーバーライドを見込んだ安全率Q(1.0未満の数値、例えば0.9など)を掛けておいてもよい。
【0050】
図12の速度パターンは、開始速度Vsがゼロの状態からスタートし、等加速度で加速していって最高速度Vmaxに達する前に減速が始まって、等減速度で減速していって終了速度Ve=0で終わる。この場合も、加速度の大きさと減速度の大きさは同じであるとする。つまり、加速時間と減速時間とは同じである。この図12の例のように、等速移動の区間がなく、加速区間のあとすぐに減速区間に移行する速度パターンを三角パターンと称することにする。
【0051】
図11あるいは図12の速度パターンは、加減速変更タイミングが制御サンプリング周期に合っていない。そこで、速度パターン修正部343により、制御サンプリング周期に合うように前記速度パターン(図11図12)を微調整する(ST200)。
なお、この第1実施形態では、修正後の速度パターンも修正前と同じく等加速度(等減速度)運動するようにする。つまり、加速区間(あるいは減速区間)において加速度(または減速度)は一定であるとする。別言すれば、加速区間(あるいは減速区間)において加速度(または減速度)を切り替えたりはしない。
また、修正後の速度パターンにおいても加速度の大きさと減速度の大きさは同じであるとする。つまり、修正後の速度パターンにおいても加速時間と減速時間とは同じである。(加速度および減速度を途中で切り替える考え方については第2実施形態で紹介する。)
【0052】
図14は、速度パターン修正部343による速度パターン修正処理の手順を説明するためのフローチャートである。
速度パターンが台形パターンである場合と三角パターンである場合とで若干処理が異なってくるので、場合分けを行う(ST210)。
台形パターンを使わずに三角パターンだけで移動できる最大距離をStと表わすと、St=Vmax/αである。したがって、開始位置と目標位置との間の移動距離Sが前記Stよりも大きいか小さいかで速度パターンが三角パターンになるか台形パターンになるか決まる。単純なケースとして仮に移動経路が直線であるとして、開始位置Ps(Xs、Ys、Zs)から目標位置Pe(Xe、Ye、Ze)に至る移動距離をSとすると、
【0053】
=(Xe-Xs)+(Ye-Ys)+(Ze-Zs)
【0054】
である。
S≦Stの場合は三角パターンであり(ST220:NO)、S>Stの場合は台形パターンである(ST220:YES)。
【0055】
さて、速度パターンが台形パターン(図11)である場合を考える(ST220:YES)。
図15のフローチャートを参照しながら順に説明する。
いま、加速区間の制御サンプリング回数をNaで表わし、等速区間の制御サンプリング回数をNfで表わすとする。加速時間と減速時間とは同じであるので、減速区間の制御サンプリング回数Ndは同じくNaである。そして、制御サンプリング周期をTで表わす。
すると、
(Na+Nf)=S/(T×Vmax) ・・・(式1)
が成り立つ。
【0056】
(式1)は、次の関係式から導かれる。
Vmax=α×Na×T
2×α×Sa=Vmax なお、Saは加速区間の距離である。
Sf=Nf×T×Vmax なお、Sfは等速区間の距離である。
S=2×Sa+Sf
【0057】
制御サンプリング回数が整数値になるようにし、それに合わせた修正最高速度Vmをまずは求める(ST221)
ここで、(式1)の"Na+Nf"は加速区間と等速区間と合わせた制御サンプリング回数に相当する値である。そこで、小数点以下を切り上げて、Nm=ROUNDUP{(Na+Nf)、0}となる整数値Nmを生成する。そのうえで、整数値Nmに対応する速度Vmを求める。
(Na+Nf)の小数点以下を切り上げてNmとしたので、VmはVmaxよりは小さい値になる。
【0058】
Nm=S/(T×Vm)
Vm=S/(T×Nm) ・・・(式1-1)
【0059】
(なぜ(式1-1)になるかというと、例えば図11で減速区間の距離分の三角形を加速区間に移動してみるとすぐにご理解いただけるでしょう。)
【0060】
このように求まる速度Vmを等速区間における速度とする。このVmを修正最高速度とする(ST221)。
【0061】
さて、等速区間の速度は修正最高速度Vmである。
ここで、加速度がαのままであると仮定して、修正最高速度Vmに到達するための加速回数Na'を逆算してみる。すると、Na'=Vm/(T×α)である。そのうえで、この加速回数Na'を整数に延長してみる(ST222)。
Nam=ROUNDUP{Na'、0}
【0062】
この整数値Namが整数化された加速回数である。減速回数も同じNamを採用する。
【0063】
そして、加速回数Namが求まったわけであるから、これに合わせて等速区間の制御サンプリング回数が決まる。つまり、Nfm=Nm-Nam、とする。これで、等速区間の制御サンプリング回数も整数値Nfmとして求まった(ST223)。
【0064】
加速区間の制御サンプリング回数をNamとし、等速区間の速度は修正最高速度Vmであるから、加速回数Namで修正最高速度Vmになる加速度αmを求めればよい(ST224)。
αm=Vm/(T×Nam)
このように求まる加速度αmを修正加速度とする。
【0065】
修正加速度αmおよび修正最高速度Vmを用いて速度パターン(図11)を修正すると図16の修正速度パターンが得られる。
【0066】
(速度パターンが三角パターンの場合の修正処理)
さて、図14のフローチャートに戻って、速度パターンが三角パターンであった場合を考える(ST220:NO)。
速度パターンが三角パターンであった場合の修正処理を図17のフローチャートを参照しながら説明する。
この場合、移動距離Sと加速度(減速度)αと関係は、加速区間の制御サンプリング回数をNaとおいてみると、S=α×(Na×T)である。
まず、この式で求まる加速回数Naを整数値に延長する(ST231)。
Nan=Roundup(Na、0)
【0067】
この整数値Nanが整数化された加速回数である。(減速回数も同じNanを採用する。)そこで、整数値Nanに対応する加速度αnを求める(ST232)。
【0068】
S=αn×(Nan×T)
αn=S/(Nan×T)
【0069】
この加速度αnが修正加速度である。この修正加速度を用いて速度パターンを修正すると図18のようになる(ST233)。ちなみに、この修正加速度αnに対応した中間最高速度をVnで表わすと、Vn=αn×Nan×Tである。
【0070】
図16および図18に例示したように速度パターンの加減速変更のタイミングが「制御サンプリング周期」に適合するように速度パターンが修正できた(ST200)。あとは、この修正された速度パターンに従った移動速度でプローブを移動させていけばよい。ベクトル指令部で合成ベクトル指令を生成し(ST140)、プローブの駆動制御を実行すればよい(ST150)。このとき、速度パターンが「制御サンプリング周期」に適合するように修正されているので、制御ズレがなく、極めて高精度な倣い測定動作が実現できる。
【0071】
(第2実施形態)
次に本発明の第2実施形態を説明する。
第2実施形態では、速度パターンの開始速度Vsおよび終了速度Veのうちの一方または両方がゼロではない場合であっても、速度パターンを制御サンプリング周期に適合するように修正する。
第2実施形態の考え方としては、加速度(あるいは減速度)の値は極力変更しないようにする。その分、加速区間から等速区間に切り替わるところと、等速区間から減速区間に切り替わるところと、に調整区間を挿入することとする。
【0072】
図13の全体フローチャートと図14の場合分けのフローチャートは第1実施形態と第2実施形態とで基本的には同じである。速度パターン演算部342で生成された速度パターンが例えば図19のような台形パターンであった場合について考える。図19の速度パターンでは、初速Vsおよび終速Veがゼロではない。
【0073】
図20のフローチャートを参照しながら、速度パターンを制御サンプリング周期に合うように調整する処理動作を順に説明していく。
速度パターン修正部343は、加速区間の制御サンプリング回数Na、等速区間の制御サンプリング回数Nf、減速区間の制御サンプリング回数Ndを算出する(ST310)。
Na=(Vmax-Vs)/(α×T)
Nd==(Vmax-Ve)/(α×T)
さらに、等速区間の距離をSfで表わす。
Nf=Sf/Vmax
【0074】
等速区間の距離Sfは、全体移動距離Sから加速区間の距離Saと減速区間の距離Sdとを減算したものである。
【0075】
Sf=S-(Sa+Sd)
2×α×Sa=Vmax-Vs
2×α×Sd=Vmax-Ve
【0076】
加速区間の制御サンプリング回数Na、等速区間の制御サンプリング回数Nfおよび減速区間の制御サンプリング回数Ndのすべてが整数値となっているか判定する(ST320)。
Na、NfおよびNdがすべて整数値(あるいは整数値として扱ってよい程度の許容範囲内)であれば速度パターンの修正は不要である(ST320:YES)。Na、NfおよびNdのひとつでも整数値ではない場合(ST320:NO)、次の整数化処理を行う(ST330)。
整数化処理(ST330)を図21図22のフローチャートを参照しながら順を追って説明する。
【0077】
まず、トータルの制御サンプリング回数Ntを算出し、さらに、トータル制御サンプリング回数Ntを切り上げた整数値Ntmを算出する(ST331)。
Ntm=Roundup(Nt、0)
Nt=Na+Nf+Nd
【0078】
次に、加速区間の制御サンプリング回数Naおよび減速区間の制御サンプリング回数Ndについては切り下げて整数化する(ST332)。
Nam=INT(Na)
Ndm=INT(Nd)
【0079】
そして、整数化された等速区間の制御サンプリング回数Nfmを次のように求める(ST333)。
Nfm=Ntm-(Nam+Ndm)-2 ・・・(式2)
【0080】
ここで、(式2)では、最後に"2"を引いている。
いま、図19に、NfmとNamとNdmとの関係を模式的に表わす。
この図19でおよそご理解頂けるように、整数化したトータル制御サンプリング回数Ntmに対し、NfmとNamとNdmとの和を対比してみると、2回分少ない。その分、加速区間から等速区間に切り替わるところと、等速区間から減速区間に切り替わるところと、に1制御サンプリング周期分の調整区間を挿入する(ST334)(図23も参照されたい)。
【0081】
加速区間から等速区間に切り替わるところに挿入する調整区間を第1調整区間とする。
等速区間から減速区間に切り替わるところに挿入する調整区間を第2調整区間とする。
【0082】
そして、調整区間の加速度αc1,αc2を求める(ST335)
いま、第1調整区間の加速度をαc1とおく。
αc1を第1修正加速度と称することにする。
第2調整区間の第2修正加速度をαc2とする。
整数化後の加速区間の移動距離をSam、
整数化後の等速区間の移動距離をSfm、
整数化後の減速区間の移動距離をSdm、とする。
【0083】
また、第1調整区間の移動距離をS1m、
第2調整区間の移動距離をS2m、とする。
【0084】
Sam=Vs×Nam×T+α×(Nam×T)/2
Sfm=Vc×Nfm×T
ただし、Vc=Vs+α×Nam×T+αc×T
Sdm=Ve×Ndm×T+α×(Ndm×T)/2
【0085】
S1m=(Vs+α×Nam×T)×T+αc1×T/2
S2m=(Ve+α×Ndm×T)×T+αc2×T/2
【0086】
全体移動距離Sは、
S=Sam+Sfm+Sdm+S1m+S2m
となるはずである。
【0087】
また、修正後の速度パターンの最高速度をVmとおく。
速度変化が全体に繋がっている必要があるわけであるから次の関係が要請される。
Vm=Vs+α×Nam×T+αc1×T
Vm=Ve+α×Ndm×T+αc2×T
【0088】
以上の関係式から調整区間の修正加速度(減速度)αc1、αc2を逆算できる(ST335)。
【0089】
もし、修正加速度αc1、αc2が最大加速度αを超えてしまっていたら(ST336)、エラー信号を発生させて、終了処理を行う。
(ただし、理論上、上記計算で算出される修正加速度αc1、αc2(の大きさ)が加速度α(の大きさ)を超えることはないはずである。)
【0090】
次に、第1修正加速度αc1がマイナスになっていないか確認する(ST337)。
もし、第1修正加速度αc1がマイナスになっていたら、調整区間での速度変化が大きすぎる。この場合(ST337:NO)、加速区間で加速し過ぎなのであるから、加速区間を短くしたうえで(ST338)、再計算を行う。
すなわち、Nam=INT(Na)-1とする。
同じく、Ndm=INT(Nd)-1とする。
【0091】
なお、ST337では第1修正加速度αc1が正の値になっているはずであると説明したが、これには1つ前提がある。
本実施形態では図5に例示するように、速度パターンとして、加速→等速→減速か、ずっと等速か、・・・という所定パターンの当てはめを行うが(特許6063161)、「減速→等速→加速」などのようにいきなり減速する区間を作らないようにしている。したがって、第1調整区間の第1修正加速度がマイナスになるということは、最初の加速区間で加速し過ぎて第1調整区間で無駄な減速を行っていることになる。
【0092】
ただし、速度パターンの作り方として、「減速→等速→加速」のパターンを認めてももちろんよい。この場合には、最初の加速区間(あるいは減速区間)の加速度と第1調整区間の加速度との符号が反転してしまっていないかどうかを確かめればよいだろう。
【0093】
このようにして、調整区間の修正加速度αc1、αc2が求まったら整数化処理は成功なので、速度パターンを修正する(図20のST340)。
【0094】
図14のフローチャートに戻って、速度パターンが三角パターン(図24)であった場合について考える(ST220:NO)。
速度パターンが三角パターン(図24)である場合の修正方法は、台形パターンのときと基本的には同じなのであるが、一点だけ留意する点があるので、以下説明する。
図25のフローチャートを参照されたい。
まず、速度パターン修正部343は、加速区間の制御サンプリング回数Na、減速区間の制御サンプリング回数Ndを算出する(ST310A)。
Na、Ndは、以下の関係式を解けば求まる。
ここで、Vuは、この三角速度パターンのなかの最高速度Vu、taは加速時間(秒)、tdは減速時間(秒)である。
【0095】
Vu-Vs=2×α×S
Vu-Vs=2×α×S
S=Sa+Sd
Sa=Vs×ta+α×ta/2
Sd=Ve×td+α×td/2
Na=ta/T
Nd=td/T
【0096】
NaとNdとのうちいずれかでも整数値ではないときは、整数化処理を行う(ST320A:NO)。
【0097】
トータルの制御サンプリング回数Ntを算出し、さらに、トータル制御サンプリング回数Ntを切り上げた整数値Ntmを算出する(ST331A)。
Ntm=Roundup(Nt、0)
Nt=Na+Nd
【0098】
加速区間の制御サンプリング回数Naおよび減速区間の制御サンプリング回数Ndについては切り下げて整数化し、さらに、"1"を減じておく(ST332A)。これは、調整区間を挿入する余地を必ず確保できるようにするための処置である。ここが先ほどの台形パターンのとき(図21のST332)との違いである。
Nam=INT(Na)-1
Ndm=INT(Nd)-1
【0099】
これ以降の整数化処理は台形パターンのときと同じになるので図21および図22で続きのステップを参照されたい。
調整区間を挿入したうえで(ST334)、修正加速度αc1、αc2を求めればよい(ST335)。すると、図26に例示するように制御サンプリング周期に適合した速度パターンが得られる。
【0100】
図23および図26に例示したように速度パターンの加減速変更のタイミングが「制御サンプリング周期」に適合するように速度パターンが修正できたので(ST200)、あとは、この修正された速度パターンに従った移動速度でプローブを移動させていけばよい。
ベクトル指令生成部348で合成ベクトル指令を生成し(図13のST140)、移動機構220の駆動制御を実行してプローブ230を倣い移動させればよい(ST150)。このとき、速度パターンが「制御サンプリング周期」に適合するように修正されているので、制御ズレがなく、極めて高精度な倣い測定動作が実現できる。
第2実施形態によれば、初速あるいは終速がゼロではないような速度パターンに対しても「制御サンプリング周期」に適合するように速度パターンを修正できる。
【0101】
(第3実施形態)
第3実施形態では、S字加減速処理を説明する。
これまでの速度パターンの算出においては加速度を一定とし、したがって速度は時間に関して一次関数で表わされていた。
しかしながら、実際のマシンの駆動制御では徐々に加速し、徐々に減速する、というように滑らかな制御を行っている。つまり、S字加減速処理を行っている。
図19図24のような速度パターンが得られたあと、この速度パターンに適合したS字加減速処理を行う方法は既に本出願人によって提案されている(例えば特許6050636)。
【0102】
第3実施形態においては、図27のフローチャートを参照しつつ、第2実施形態のように制御サンプリング回数の整数化を行った場合(図23図26)のS字加減速処理について説明する。この第3実施形態の加減速調整処理は、加減速調整部344(図10)で行われる。
【0103】
第2実施形態の処理によって図19を修正した結果、図23のように修正速度パターンが得られたとする。
さて、まずは単純に、加速区間では初速Vsから単調に加速して修正最高速度Vmに到達し、減速区間では修正最高速度Vmから単調に減速して終速度Veに至ると考えてみる(図28参照)。この単純化した修正速度パターンに対して仮のS字速度曲線を算出する(ST410)。このような単純な直線的加減速パターンをS字加減速処理によってS字の速度曲線にするのは既に知られた方法である。
【0104】
例えば図29図30を参照して頂くとご理解頂けるであろう。
まずは、(Nam+1)×Tの時間で初速Vsから修正最高速度Vmにまで一次関数で加速したとした場合の加速度をαaで表わす。
また、式が簡単になるように、時間thaを2×tha=(Nam+1)×Tとする。
すると、速度カーブを二次曲線とした場合、0<t<thaの時刻tにおける速度V(t)は、
V(t)=Vs+(αa/tha)×t
と表わされる(図29参照)。
同じく、tha<t<2thaの時刻tにおける速度V(t)は、
V(t)=Vm-(αa/tha)×(2tha-t)
と表わされる(図30参照)。
このようにして仮S字速度曲線に対して各時刻tの速度が得られる。
【0105】
次に、距離の補正量Da、Ddを求める。
さきほどは、単純化した修正速度パターンに対して仮のS字速度曲線を算出した(ST410)。
そのため捨象した部分が発生している(図31参照)。
加速区間および第1調整区間で考えてみると、距離の補正量Daは次のようになる。
【0106】
Da={(α-αa)×(Nam×T)+(αc1-αa)×T}/2
αaは、前述のように、初速Vsから修正最高速度Vmにまで一次関数で加速した場合の加速度を表わす。
【0107】
同じく、減速区間および第2調整区間で考えてみると、距離の補正量Ddは次のようになる。
Dd={-(α-αd)×(Ndm×T)+(αc1-αa)×T}/2
αdは、修正最高速度Vmから終速Veまで一次関数で減速した場合の減速度を表わす。
【0108】
この補正量Da、Dd分が足りないわけであるから、先ほどの仮S字速度曲線に加えていけばよい(図32参照)。
例えば、加速区間では、仮S字速度曲線に対して一回の制御サンプリングあたり、
速度補正量ΔVa=Da/(Nam×T)分の速度を加算すればよい。
同じく、減速区間では、仮S字速度曲線に対して一回の制御サンプリングあたり、
速度補正量ΔVd=Dd/(Ndm×T)分の速度を加算すればよい。
(このようにできあがった速度カーブはもはや二次曲線ではない。)
【0109】
このようにして擬似S字カーブの速度曲線が求まったので、この速度パターンに従った移動速度でプローブを移動させていけばよい。速度パターンが「制御サンプリング周期」に適合するように修正されているうえに、擬似S字カーブの速度曲線により、制御ズレがなく、極めて高精度で、かつ、滑らかな加減速による倣い測定動作が実現できる。
【0110】
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0111】
100…形状測定システム、
200…三次元測定機、
210…定盤、220…移動機構、221…Yスライダ、222…Xスライダ、223…Z軸コラム、224…Zスピンドル、
230…プローブ、231…スタイラス、232…測定子、233…支持部、
300…モーションコントローラ、
310…測定指令取得部、330…カウンタ部、340…移動指令生成部、
341…速度パターン計画部、
342…速度パターン演算部、343…速度パターン修正部、344…加減速調整部、348…ベクトル指令生成部、
350…駆動制御部、
400…手動コントローラ、
500…ホストコンピュータ、520…記憶部、530…形状解析部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32