(57)【要約】      （修正有）【課題】速度パターンの加減速変更のタイミングを制御サンプリング周期に適合させ、制御ズレが生じないようにする形状測定装置の制御方法を提供する。【解決手段】予め得られている測定対象物の形状データに基づいて設定された移動経路の形状に基づき、移動経路を移動するための速度パターンを生成する（ＳＴ１３０）。速度パターンの速度変更のタイミングが形状測定装置の制御サンプリング周期に適合しているか判定する。速度パターンの速度変更のタイミングが制御サンプリング周期に適合していない場合には、速度パターンの速度変更のタイミングが形状測定装置の制御サンプリング周期に適合するように速度パターンを修正する（ＳＴ２００）。【選択図】図１３
2019049464.tif 000002
【特許請求の範囲】
【請求項１】
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正し、
前記修正後の速度パターンの加速区間および減速区間に対して、
加速区間では初速Ｖｓから単調に加速して修正最高速度Ｖｍに到達し、減速区間では修正最高速度Ｖｍから単調に減速して終速度Ｖｅに至ると仮定して仮Ｓ字速度曲線を算出し、
仮Ｓ字速度曲線に従った移動では不足する距離Ｄａを算出し、
前記不足分の距離Ｄａを加速区間または減速区間の制御サンプリング回数で補完するように速度補量ΔＶを算出し、
各制御サンプリングタイミングにおいて前記仮Ｓ字速度曲線に前記速度補量ΔＶを加算した値を修正後の速度とする
ことを特徴とする形状測定装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形状測定装置の制御方法に関する。
【背景技術】
【０００２】
測定対象物の表面に沿ってプローブを倣い移動させることで測定対象物の形状を測定する形状測定装置が知られている（例えば、特許文献１、２、３参照）。倣い測定にあたっては、倣い測定の経路を生成しておく必要がある。
特許文献１に記載の装置では、ＣＡＤデータ等に基づいた設計値（例えばＮＵＲＢＳ（Ｎｏｎ−ＵｎｉｆｏｒｍＲａｔｉｏｎａｌＢ−Ｓｐｌｉｎｅ：非一様有理Ｂスプライン）データ）を所定次数の多項式曲線群に変換する。
【０００３】
この手順を簡単に説明すると、まず、外部のＣＡＤシステム等から経路情報を含んだＣＡＤデータ（例えばＮＵＲＢＳデータ）を受け取り、このＣＡＤデータを点群のデータに変換する。各点のデータは、座標値（ｘ、ｙ、ｚ）と法線方向（Ｐ、Ｑ、Ｒ）とを組み合わせたデータである（つまり、（ｘ、ｙ、ｚ、Ｐ、Ｑ、Ｒ）である。）
本明細書では、以後の説明のため、（ｘ、ｙ、ｚ、Ｐ、Ｑ、Ｒ）の情報をもつ点群のデータを輪郭点データと称することにする。
【０００４】
次に、各点の座標値を法線方向に所定量だけオフセットする。（所定量とは、具体的には、測定子半径ｒ―基準押込み量Ｅ０である。）このようにして求めた点群データをオフセット済み輪郭点データと称することにする。
【０００５】
そして、オフセット済み輪郭点データを所定次数の多項式曲線群に変換する。
ここでは、多項式として三次関数を用い、ＰＣＣ曲線群（Ｐａｒａｍｅｔｒｉｃ  Ｃｕｂｉｃ  Ｃｕｒｖｅｓ）とする。
このＰＣＣ曲線を元に倣い測定の経路を生成する。さらに、ＰＣＣ曲線を分割して分割ＰＣＣ曲線群とする。
【０００６】
分割ＰＣＣ曲線群から速度曲線を算出してプローブの移動速度（移動ベクトル）を算出する。例えば分割ＰＣＣ曲線群の各セグメントの曲率などに基づいてプローブの移動速度（移動ベクトル）を設定する。このように算出された移動速度に基づいてプローブを移動させ、測定対象物の表面に沿ってプローブを移動させる（パッシブ設計値倣い測定）。
【０００７】
さらに、プローブの押し込み量を一定にするように押込み修正ベクトルを時々刻々算出して、軌道修正しながら倣い測定する方法も知られている（アクティブ設計値倣い測定）。
【０００８】
特許文献２（特開２０１３−２３８５７３号公報）に開示された「アクティブ設計値倣い測定」を簡単に紹介する。「アクティブ設計値倣い測定」では、次の（式１）で表わされる合成ベクトルＶをプローブのベクトル移動指令とする。
プローブが合成ベクトルＶに基づく移動を行うと、プローブ（測定子）はＰＣＣ曲線に沿うように移動しつつ、押込み量を一定としたワーク表面倣い測定、つまり、「アクティブ設計値倣い測定」が実現される。
【０００９】
Ｖ＝Ｇｆ×Ｖｆ＋Ｇｅ×Ｖｅ＋Ｇｃ×Ｖｃ  ・・・（式１）
【００１０】
図１を参照しながら式の意味を簡単に説明する。
図１において、設計データ（輪郭点データ）から所定量（測定子半径ｒ―基準押込み量Ｅ０）オフセットしたところにＰＣＣ曲線（つまり、倣い経路）がある。
また、図１においては、実際のワークが設計データから少しずれている。
【００１１】
ベクトルＶｆは経路速度ベクトルである。経路速度ベクトルＶｆは、ＰＣＣ曲線上の補間点（ｉ）から次の補間点（ｉ＋１）に向かう方向をもつ。なお、経路速度ベクトルＶｆの大きさは、例えば、補間点（ｉ）におけるＰＣＣ曲線の曲率に基づいて決定される（例えば特許文献３）。
【００１２】
ベクトルＶｅは、押込み量修正ベクトルであり、プローブの押込み量Ｅｐが所定の基準押込み量Ｅ０（例えば０．３ｍｍ）になるようにするためのベクトルである。（押込み量修正ベクトルＶｅは、必然的に、ワーク表面の法線に平行となる。）
【００１３】
ベクトルＶｃは、軌道修正ベクトルである。軌道修正ベクトルは、プローブ位置からＰＣＣ曲線に下ろした垂線に平行である。
Ｇｆ、Ｇｅ、Ｇｃはそれぞれ倣い駆動ゲイン、押込み方向修正ゲイン、軌道修正ゲインである。
【００１４】
ＰＣＣ曲線を図２に例示する。
点Ｐ１から点Ｐ７まで一続きのＰＣＣ曲線Ｌ＿ＰＣＣがあり、このＰＣＣ曲線Ｌ＿ＰＣＣは、点Ｐにより複数のセグメントに分割されている。（各セグメントもＰＣＣ曲線である。）
各セグメントの終了点は、次のセグメント（ＰＣＣ曲線）の開始点となっている。セグメントの開始点の座標を（ＫＸ０、ＫＹ０、ＫＺ０）と表わし、そのＰＣＣ曲線における始点と終点との間の直線の長さをＤとする。
このように定義すると、ＰＣＣ曲線上の任意の位置における座標｛Ｘ（Ｓ）、Ｙ（Ｓ）、Ｚ（Ｓ）｝は、３次曲線を表わすための係数（ＫＸ３、ＫＸ２・・・・ＫＺ１、ＫＺ０）を用い、次の式で表される。
【００１５】
Ｘ（Ｓ）＝ＫＸ３Ｓ３＋ＫＸ２Ｓ２＋ＫＸ１Ｓ＋ＫＸ０
Ｙ（Ｓ）＝ＫＹ３Ｓ３＋ＫＹ２Ｓ２＋ＫＹ１Ｓ＋ＫＹ０
Ｚ（Ｓ）＝ＫＺ３Ｓ３＋ＫＺ２Ｓ２＋ＫＺ１Ｓ＋ＫＺ０
【００１６】
ワークが平面や曲率一定の円で構成されているような単純形状であれば、倣い測定の経路も直線や円といった単純形状でよく、ＰＣＣ曲線を数多くのセグメントに分割する必要はない。
一方、ワークの測定部位が複雑な形状をしており、かつ、このような測定部位に精度良く追随しながら高精度の倣い測定を行うためには、ＰＣＣ曲線を細かく分割してセグメント数を増やさなければならない。例えば、図３のような曲線の輪郭形状を倣い測定する場合、図４に例示するように曲率が変化するところでセグメントに分割する。そして、セグメントごとに適切な速度パターンが設定される（特許文献３）。つまり、曲線に精度よく追随しながら、かつ、できる限り高速に移動する速度パターンが各セグメントに応じて設定される。
図５に速度パターンの一例を示す。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００８−２４１４２０号公報
【特許文献２】特開２０１３−２３８５７３号公報
【特許文献３】特開２０１４−２１００４号公報（特許６０６３１６１）
【発明の概要】
【発明が解決しようとする課題】
【００１８】
例えば図５のように求められた速度パターンに従って移動速度の加減速制御を行えばよいのであるが、実際には、次のような問題が生じていた。
図５の速度パターンは、ＰＣＣ曲線の曲率等の形状をもとに、速度パターンの当てはめと演算処理で求められるものである。しかし実際に形状測定装置を駆動制御する場合、命令の実行は制御サンプリング周期単位で行われることになる。
一例として図６を参照して頂きたい。
図６は、速度パターンに対し、時間軸に制御サンプリング周期単位（Ｔ）で目盛りを入れたものである。この図６の速度パターンは、偶然にも制御サンプリング周期にピッタリ合っている場合の例である。
最初、速度Ｖｓから加速して、定速度Ｖに達し、定速度Ｖで進行した後、速度Ｖｅまで減速する。速度パターンの加減速を設定された時間通りに実行すれば、目標地点に達するはずである。
【００１９】
一方、図７の速度パターンでは、制御サンプリング周期に合っていない場合である。
速度パターンでは速度Ｖｓから加速して定速度Ｖに達するが、加速の終わり時間が制御サンプリング周期の最後に合っていない。そのため、制御サンプリング周期の最後まで加速が継続することになる。すると、目標の定速度Ｖを超えてしまうし、プローブの位置は演算上の目標地点を過ぎてしまうことになる。さらに、定速度Ｖで進行した後、減速区間に移行するが、減速の開始が制御サンプリング周期の先頭に合っていない。そのため、制御サンプリング周期の最後まで定速度Ｖが継続することになる。減速タイミングが遅れると、最終的なプローブの位置は演算上の目標地点を通過してしまう。
このように、加減速の変更タイミングと制御サンプリング周期とにズレがあるたびに制御誤差が積み重なっていくことになる。
【００２０】
これまでの形状測定装置の駆動制御にあっては、最高速度や最高加速度の大きさがそれほど大きくなかったので、制御ズレが致命的な大きさにはならなかった。（あるいは、制御ズレが大きくなりすぎないように最高速度および最高加速度を抑制していた。）しかし、測定効率の向上が望まれている現在にあっては、最高速度や最高加速度が大きくなってくると前記制御ズレが重要な解決課題となってくる。
【００２１】
本発明の目的は、速度パターンの加減速変更のタイミングを制御サンプリング周期に適合させ、制御ズレが生じないようにする形状測定装置の制御方法を提供することにある。
【課題を解決するための手段】
【００２２】
本発明の形状測定装置の制御方法は、
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正する
ことを特徴とする。
【００２３】
本発明では、
前記速度パターンの初速と終速とがゼロであって、かつ、前記速度パターンが台形パターンである場合には、
加速区間の制御サンプリング回数Ｎａと等速区間の制御サンプリング回数Ｎｆとの和の小数点以下を切り上げたＮｍを算出し、
全体の移動距離をＳ、一の制御サンプリング周期をＴとするとき、等速区間の速度である修正最高速度ＶｍをＳ／（Ｔ×Ｎｍ）で算出し、
さらに、修正前の加速度をαで表わすとき、加速区間の制御サンプリング回数Ｎａを整数化した値ＮａｍをＲＯＵＮＤＵＰ（Ｎａ'、０）（ただしＮａ'＝Ｖｍ／（Ｔ×α））とし、
これに合わせて等速区間の制御サンプリング回数Ｎｆｍ＝Ｎｍ−Ｎａｍ、として、前記速度パターンを制御サンプリング周期に適合するように修正する
ことが好ましい。
【００２４】
本発明では、
前記速度パターンの初速と終速とがゼロであって、かつ、前記速度パターンが三角パターンである場合には、
全体の移動距離をＳ、修正前の加速度をα、一の制御サンプリング周期をＴで表わすとき、
整数化された加速区間の制御サンプリング回数Ｎａｎを次の値とする。
Ｎａｎ＝Ｒｏｕｎｄｕｐ（Ｎａ、０）
ただし、Ｎａは、Ｓ＝α×（Ｎａ×Ｔ）２である。
【００２５】
また、本発明の形状測定装置の制御方法は、
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正する
ことを特徴とする。
【００２６】
本発明では、
前記速度パターンが台形パターンである場合には、
修正前の、加速区間の制御サンプリング回数をＮａ、減速区間の制御サンプリング回数をＮｄ、等速区間の制御サンプリング回数をＮｆ、全体の制御サンプリング回数をＮｔとするとき、
修正後の全体の制御サンプリング回数Ｎｔｍは、前記修正前の全体の制御サンプリング回数Ｎｔの小数点以下を切り上げた数Ｎｔｍとし、
修正後の加速区間の制御サンプリング回数は前記Ｎａを切り上げた値Ｎａｍとし、
修正後の減速区間の制御サンプリング回数は前記Ｎｄを切り上げた値Ｎｄｍとし、
修正後の等速区間の制御サンプリング回数Ｎｆｔは、Ｎｔｍ−（Ｎａｍ＋Ｎｄｍ）−２とし、
さらに、加速区間と等速区間との間、および、等速区間と減速区間との間にそれぞれ一制御サンプリング周期分の調整区間を挿入する
ことが好ましい。
【００２７】
本発明では、
前記調整区間の加速度が修正前の加速度と対比したときに、符号が反対になる場合には、
さらに、前記Ｎａｍから１を減じ、前記Ｎｄｍから１を減じる
ことが好ましい。
【００２８】
本発明では、
前記速度パターンが三角パターンである場合には、
修正前の、加速区間の制御サンプリング回数をＮａ、減速区間の制御サンプリング回数をＮｄ、全体の制御サンプリング回数をＮｔとするとき、
修正後の全体の制御サンプリング回数Ｎｔｍは、前記修正前の全体の制御サンプリング回数Ｎｔの小数点以下を切り上げた数Ｎｔｍとし、
修正後の加速区間の制御サンプリング回数は前記Ｎａを切り上げた値からさらに１を減じた値Ｎａｍとし、
修正後の減速区間の制御サンプリング回数は前記Ｎｄを切り上げた値からさらに１を減じた値Ｎｄｍとし、
修正後の等速区間の制御サンプリング回数Ｎｆｔは、Ｎｔｍ−（Ｎａｍ＋Ｎｄｍ）−２とし、
さらに、加速区間と等速区間との間、および、等速区間と減速区間との間にそれぞれ一制御サンプリング周期分の調整区間を挿入する
ことが好ましい。
【００２９】
また、本発明の形状測定装置の制御方法は、
プローブを測定対象物の表面に沿って移動させて前記測定対象物の形状を測定する形状測定装置の制御方法であって、
予め得られている前記測定対象物の形状データに基づいて設定された移動経路の形状に基づき、前記移動経路を移動するための速度パターンを生成し、
前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合しているか判定し、
前記速度パターンの速度変更のタイミングが前記制御サンプリング周期に適合していない場合には、前記速度パターンの速度変更のタイミングが前記形状測定装置の制御サンプリング周期に適合するように前記速度パターンを修正し、
前記修正後の速度パターンの加速区間および減速区間に対して、
加速区間では初速Ｖｓから単調に加速して修正最高速度Ｖｍに到達し、減速区間では修正最高速度Ｖｍから単調に減速して終速度Ｖｅに至ると仮定して仮Ｓ字速度曲線を算出し、
仮Ｓ字速度曲線に従った移動では不足する距離Ｄａを算出し、
前記不足分の距離Ｄａを加速区間または減速区間の制御サンプリング回数で補完するように速度補量ΔＶを算出し、
各制御サンプリングタイミングにおいて前記仮Ｓ字速度曲線に前記速度補量ΔＶを加算した値を修正後の速度とする
ことを特徴とする。
【図面の簡単な説明】
【００３０】
【図１】設計データ（輪郭点データ）とＰＣＣ曲線と実際のワークとの関係を例示する図である。
【図２】ＰＣＣ曲線を例示するである。
【図３】曲線状の輪郭（ＰＣＣ曲線）を例示する図である。
【図４】ＰＣＣ曲線をセグメントに分割した一例を示す図である。
【図５】速度パターンの一例を示す図である。
【図６】速度パターンに対し、時間軸に制御サンプリング周期単位（Ｔ）で目盛りを入れた図であって、速度パターンと制御サンプリング周期とがピッタリ合っている場合の例を示す図である。
【図７】速度パターンに対し、時間軸に制御サンプリング周期単位（Ｔ）で目盛りを入れた図であって、速度パターンと制御サンプリング周期とが合っていない場合の例を示す図である。
【図８】形状測定システムの全体構成を示す図である。
【図９】モーションコントローラおよびホストコンピュータの機能ブロック図である。
【図１０】移動指令生成部の構成を示す図である。
【図１１】開始速度Ｖｓおよび終了速度Ｖｅがゼロである台形パターンの一例を示す図である。
【図１２】開始速度Ｖｓおよび終了速度Ｖｅがゼロである三角パターンの一例を示す図である。
【図１３】モーションコントローラの制御動作を表わす全体フローチャートである。
【図１４】速度パターン修正部による速度パターン修正処理の手順を説明するためのフローチャートである。
【図１５】速度パターン修正処理の手順を説明するためのフローチャートである。
【図１６】修正された速度パターンを示す図である。
【図１７】速度パターン修正処理の手順を説明するためのフローチャートである。
【図１８】修正された速度パターンを示す図である。
【図１９】初速Ｖｓおよび終速Ｖｅがゼロではない台形パターンを例示する図である。
【図２０】速度パターン修正処理の手順を説明するためのフローチャートである。
【図２１】整数化処理の手順を説明するためのフローチャートである。
【図２２】整数化処理の手順を説明するためのフローチャートである。
【図２３】修正された速度パターンを示す図である。
【図２４】初速Ｖｓおよび終速Ｖｅがゼロではない三角パターンを例示する図である。
【図２５】速度パターン修正処理の手順を説明するためのフローチャートである。
【図２６】修正された速度パターンを示す図である。
【図２７】Ｓ字加減速処理を説明するためのフローチャートである。
【図２８】単純化した修正速度パターンに対しての仮のＳ字速度曲線を例示する図である。
【図２９】Ｓ字加減速処理によって直線的加減速パターンからＳ字速度曲線を得る方法を説明するための図である。
【図３０】Ｓ字加減速処理によって直線的加減速パターンからＳ字速度曲線を得る方法を説明するための図である。
【図３１】距離の補正量を例示する図である。
【図３２】速度補正量を例示する図である。
【発明を実施するための形態】
【００３１】
本発明の実施形態を図示するとともに図中の各要素に付した符号を参照して説明する。
（第１実施形態）
図８は、形状測定システム１００の全体構成を示す図である。
形状測定システム１００は、三次元測定機２００と、三次元測定機２００の駆動を制御するモーションコントローラ３００と、モーションコントローラ３００を制御すると共に必要なデータ処理を実行するホストコンピュータ５００と、を備える。
【００３２】
三次元測定機２００自体はよく知られているものであるが、簡単に例示しておく。
三次元測定機２００は、定盤２１０と、移動機構２２０と、プローブ２３０と、を備える。
【００３３】
移動機構２２０は、定盤２１０上をＹ方向にスライド可能に設けられた門型のＹスライダ２２１と、Ｙスライダ２２１のＸ方向のビームに沿ってスライドするＸスライダ２２２と、Ｘスライダ２２２に固定されたＺ軸コラム２２３と、Ｚ軸コラム２２３内をＺ方向に昇降するＺスピンドル２２４と、を備える。
【００３４】
Ｙスライダ２２１、Ｘスライダ２２２およびＺスピンドル２２４には、それぞれ駆動モータ（不図示）とエンコーダ（不図示）とが付設されている。モーションコントローラ３００からの駆動制御信号によって各駆動モータが駆動制御される。エンコーダは、Ｙスライダ２２１、Ｘスライダ２２２およびＺスピンドル２２４それぞれの移動量を検出し、検出値をモーションコントローラ３００に出力する。Ｚスピンドル２２４の下端にプローブ２３０が取り付けられている。
【００３５】
プローブ２３０は、測定子２３２を先端側（−Ｚ軸方向側）に有するスタイラス２３１と、スタイラス２３１の基端側（＋Ｚ軸方向側）を支持する支持部２３３と、を備える。測定子２３２は、球状であって、測定対象物Ｗに接触する。
【００３６】
支持部２３３は、スタイラス２３１に外力が加わった場合、すなわち測定子２３２が測定対象物に当接した場合にはスタイラス２３１が一定の範囲内でＸ、Ｙ、Ｚ軸の各軸方向に移動可能となるようにスタイラス２３１を支持している。さらに、支持部２３３は、スタイラス２３１の各軸方向の位置をそれぞれ検出するためのプローブセンサー（不図示）を備える。プローブセンサは検出値をモーションコントローラ３００に出力する。
【００３７】
（モーションコントローラ３００の構成）
図９は、モーションコントローラ３００およびホストコンピュータ５００の機能ブロック図である。
モーションコントローラ３００は、測定指令取得部３１０と、カウンタ部３３０と、移動指令生成部３４０と、駆動制御部３５０と、を備える。
【００３８】
測定指令取得部３１０は、ホストコンピュータ５００からＰＣＣ曲線データを取得する。カウンタ部３３０は、エンコーダから出力される検出信号をカウントして各スライダの変位量を計測するとともに、プローブセンサから出力される検出信号をカウントしてプローブ２３０（スタイラス２３１）の変位量を計測する。計測されたスライダおよびプローブ２３０の変位から測定子２３２の座標位置ＰＰ（以下、プローブ位置ＰＰ）が得られる。また、カウンタ部３３０にて計測されたスタイラス２３１の変位（プローブセンサの検出値（Ｐｘ，Ｐｙ，Ｐｚ））から、測定子２３２の押込み量（ベクトルＥｐの絶対値）が得られる。
【００３９】
移動指令生成部３４０は、プローブ２３０（測定子２３２）で測定対象物表面を測定するためのプローブ２３０（測定子２３２）の移動経路を算出し、その移動経路に沿った速度ベクトルを算出する。
移動指令生成部３４０の構成を図１０に示す。
移動指令生成部３４０は、速度パターン計画部３４１と、ベクトル指令生成部３４８と、を備える。
速度パターン計画部３４１は、速度パターン演算部３４２と、速度パターン修正部３４３と、加減速調整部３４４と、を備える。
各機能部の動作についてはフローチャートを参照しながら後述する。
【００４０】
駆動制御部３５０は、移動指令生成部３４０にて算出された移動ベクトルに基づいて、各スライダを駆動制御する。
【００４１】
なお、モーションコントローラ３００には、手動コントローラ４００が接続されている。
手動コントローラ４００は、ジョイスティックおよび各種ボタンを有し、ユーザからの手動入力操作を受け付け、ユーザの操作指令をモーションコントローラ３００に送る。この場合、モーションコントローラ３００（駆動制御部３５０）は、ユーザの操作指令に応じて各スライダを駆動制御する。
【００４２】
（ホストコンピュータ５００の構成）
ホストコンピュータ５００は、ＣＰＵ５１１（ＣｅｎｔｒａｌＰｒｏｃｅｓｓｉｎｇＵｎｉｔ）やメモリ等を備えて構成され、モーションコントローラ３００を介して三次元測定機２００を制御する。
ホストコンピュータ５００は、さらに、記憶部５２０と、形状解析部５３０と、を備える。記憶部５２０は、測定対象物（ワーク）Ｗの形状に関する設計データ（ＣＡＤデータや、ＮＵＲＢＳデータ等）、測定で得られた測定データ、および、測定動作全体を制御する測定制御プログラムを格納する。
【００４３】
形状解析部５３０は、モーションコントローラ３００から出力された測定データに基づいて測定対象物の表面形状データを算出し、算出した測定対象物の表面形状データの誤差や歪み等を求める形状解析を行う。また、形状解析部５３０は、設計データ（ＣＡＤデータや、ＮＵＲＢＳデータ等）からＰＣＣ曲線への変換等の演算処理も担う。
【００４４】
ＣＰＵ５１１（中央処理装置）で測定制御プログラムを実行することにより本実施形態の測定動作が実現される。
【００４５】
ホストコンピュータ５００には、必要に応じて、出力装置（ディスプレイやプリンタ）および入力装置（キーボードやマウス）が接続されている。
【００４６】
（制御方法）
フローチャートを参照しながら本実施形態に係る形状測定装置の制御方法を説明する。
前述のように、本発明は、速度パターンの加減速変更のタイミングを「制御サンプリング周期」に適合させ、制御ズレが生じないようにするものである。加減速変更のタイミングが制御サンプリング周期に適合していない速度パターン（例えば図７）を修正して、加減速変更のタイミングが制御サンプリング周期に適合するようにしたい。
なお、第１実施形態としては、図１１や図１２のように、開始速度Ｖｓと終了速度Ｖｅとが両方ともにゼロである速度パターンについて考える。（開始速度Ｖｓおよび終了速度Ｖｅのうちの一方でもゼロではない速度パターンについては第２実施形態で説明する。）
【００４７】
図１３は、モーションコントローラ３００の制御動作を表わす全体フローチャートである。
モーションコントローラ３００は、ホストコンピュータ５００で生成された測定指令としてのＰＣＣ曲線データを受信する（ＳＴ１１０）。速度パターン計画部３４１は、このＰＣＣ曲線データに従ってプローブ２３０を倣い移動させるための速度パターンを生成する（ＳＴ１２０）。速度パターン演算部３４２は、ＰＣＣ曲線に精度よく追随しながら、かつ、できる限り高速に移動する速度パターンをセグメントごとに生成する（ＳＴ１３０）。
この工程自体は従来と同じであり、例えば背景技術で説明した図５のような速度パターンが生成されるのであるが、本第１実施形態では、図１１あるいは図１２のように、開始速度Ｖｓと終了速度Ｖｅとが両方ともにゼロである速度パターンができたとする。例えば、ＰＣＣ曲線（のセグメント）が単純な図形（例えば直線や曲率一定の曲線）である場合を想定されたい。
【００４８】
図１１の速度パターンは、開始速度Ｖｓがゼロの状態からスタートし、等加速度で加速していって最高速度Ｖｍａｘに達し、この最高速度Ｖｍａｘで一定時間等速移動した後、等減速度で減速していって終了速度Ｖｅ＝０で終わる。
このとき、加速度の大きさと減速度の大きさは同じであるとする。つまり、加速時間と減速時間とは同じである。この図１１の例のように、最高速度Ｖｍａｘによる等速移動の区間がある速度パターンを台形パターンと称することにする。
【００４９】
ここで、加速区間および減速区間における加速度（または減速度）の大きさは、マシン（三次元測定機）の耐加速度に応じて設定される。加速区間および減速区間における加速度（または減速度）は、最大の場合、マシン（三次元測定機）の耐加速度と同じ値にしてもよい。実際的には、安全性および滑らかな加減速動作（具体的にはＳ字加減速処理）を考慮して、加速区間および減速区間における加速度（または減速度）は、マシン（三次元測定機）の耐加速度の半分に設定するのがよい。この場合、マシン（三次元測定機）の耐加速度の大きさをβとすれば、加速区間および減速区間における加速度（または減速度）の大きさαは、α＝β／２、である。
等速区間における最高速度Ｖｍａｘも、マシン（三次元測定機）の耐速度に応じて設定される。等速区間における最高速度Ｖｍａｘは、最大限、マシン（三次元測定機）の耐速度と同じ値にすることももちろんできるし、オーバーライドを見込んだ安全率Ｑ（１．０未満の数値、例えば０．９など）を掛けておいてもよい。
【００５０】
図１２の速度パターンは、開始速度Ｖｓがゼロの状態からスタートし、等加速度で加速していって最高速度Ｖｍａｘに達する前に減速が始まって、等減速度で減速していって終了速度Ｖｅ＝０で終わる。この場合も、加速度の大きさと減速度の大きさは同じであるとする。つまり、加速時間と減速時間とは同じである。この図１２の例のように、等速移動の区間がなく、加速区間のあとすぐに減速区間に移行する速度パターンを三角パターンと称することにする。
【００５１】
図１１あるいは図１２の速度パターンは、加減速変更タイミングが制御サンプリング周期に合っていない。そこで、速度パターン修正部３４３により、制御サンプリング周期に合うように前記速度パターン（図１１、図１２）を微調整する（ＳＴ２００）。
なお、この第１実施形態では、修正後の速度パターンも修正前と同じく等加速度（等減速度）運動するようにする。つまり、加速区間（あるいは減速区間）において加速度（または減速度）は一定であるとする。別言すれば、加速区間（あるいは減速区間）において加速度（または減速度）を切り替えたりはしない。
また、修正後の速度パターンにおいても加速度の大きさと減速度の大きさは同じであるとする。つまり、修正後の速度パターンにおいても加速時間と減速時間とは同じである。（加速度および減速度を途中で切り替える考え方については第２実施形態で紹介する。）
【００５２】
図１４は、速度パターン修正部３４３による速度パターン修正処理の手順を説明するためのフローチャートである。
速度パターンが台形パターンである場合と三角パターンである場合とで若干処理が異なってくるので、場合分けを行う（ＳＴ２１０）。
台形パターンを使わずに三角パターンだけで移動できる最大距離をＳｔと表わすと、Ｓｔ＝Ｖｍａｘ２／αである。したがって、開始位置と目標位置との間の移動距離Ｓが前記Ｓｔよりも大きいか小さいかで速度パターンが三角パターンになるか台形パターンになるか決まる。単純なケースとして仮に移動経路が直線であるとして、開始位置Ｐｓ（Ｘｓ、Ｙｓ、Ｚｓ）から目標位置Ｐｅ（Ｘｅ、Ｙｅ、Ｚｅ）に至る移動距離をＳとすると、
【００５３】
Ｓ２＝（Ｘｅ−Ｘｓ）２＋（Ｙｅ−Ｙｓ）２＋（Ｚｅ−Ｚｓ）２
【００５４】
である。
Ｓ≦Ｓｔの場合は三角パターンであり（ＳＴ２２０：ＮＯ）、Ｓ＞Ｓｔの場合は台形パターンである（ＳＴ２２０：ＹＥＳ）。
【００５５】
さて、速度パターンが台形パターン（図１１）である場合を考える（ＳＴ２２０：ＹＥＳ）。
図１５のフローチャートを参照しながら順に説明する。
いま、加速区間の制御サンプリング回数をＮａで表わし、等速区間の制御サンプリング回数をＮｆで表わすとする。加速時間と減速時間とは同じであるので、減速区間の制御サンプリング回数Ｎｄは同じくＮａである。そして、制御サンプリング周期をＴで表わす。
すると、
（Ｎａ＋Ｎｆ）＝Ｓ／（Ｔ×Ｖｍａｘ）  ・・・（式１）
が成り立つ。
【００５６】
（式１）は、次の関係式から導かれる。
Ｖｍａｘ＝α×Ｎａ×Ｔ
２×α×Ｓａ＝Ｖｍａｘ２  なお、Ｓａは加速区間の距離である。
Ｓｆ＝Ｎｆ×Ｔ×Ｖｍａｘ  なお、Ｓｆは等速区間の距離である。
Ｓ＝２×Ｓａ＋Ｓｆ
【００５７】
制御サンプリング回数が整数値になるようにし、それに合わせた修正最高速度Ｖｍをまずは求める（ＳＴ２２１）
ここで、（式１）の"Ｎａ＋Ｎｆ"は加速区間と等速区間と合わせた制御サンプリング回数に相当する値である。そこで、小数点以下を切り上げて、Ｎｍ＝ＲＯＵＮＤＵＰ｛（Ｎａ＋Ｎｆ）、０｝となる整数値Ｎｍを生成する。そのうえで、整数値Ｎｍに対応する速度Ｖｍを求める。
（Ｎａ＋Ｎｆ）の小数点以下を切り上げてＮｍとしたので、ＶｍはＶｍａｘよりは小さい値になる。
【００５８】
Ｎｍ＝Ｓ／（Ｔ×Ｖｍ）
Ｖｍ＝Ｓ／（Ｔ×Ｎｍ）  ・・・（式１−１）
【００５９】
（なぜ（式１−１）になるかというと、例えば図１１で減速区間の距離分の三角形を加速区間に移動してみるとすぐにご理解いただけるでしょう。）
【００６０】
このように求まる速度Ｖｍを等速区間における速度とする。このＶｍを修正最高速度とする（ＳＴ２２１）。
【００６１】
さて、等速区間の速度は修正最高速度Ｖｍである。
ここで、加速度がαのままであると仮定して、修正最高速度Ｖｍに到達するための加速回数Ｎａ'を逆算してみる。すると、Ｎａ'＝Ｖｍ／（Ｔ×α）である。そのうえで、この加速回数Ｎａ'を整数に延長してみる（ＳＴ２２２）。
Ｎａｍ＝ＲＯＵＮＤＵＰ｛Ｎａ'、０｝
【００６２】
この整数値Ｎａｍが整数化された加速回数である。減速回数も同じＮａｍを採用する。
【００６３】
そして、加速回数Ｎａｍが求まったわけであるから、これに合わせて等速区間の制御サンプリング回数が決まる。つまり、Ｎｆｍ＝Ｎｍ−Ｎａｍ、とする。これで、等速区間の制御サンプリング回数も整数値Ｎｆｍとして求まった（ＳＴ２２３）。
【００６４】
加速区間の制御サンプリング回数をＮａｍとし、等速区間の速度は修正最高速度Ｖｍであるから、加速回数Ｎａｍで修正最高速度Ｖｍになる加速度αｍを求めればよい（ＳＴ２２４）。
αｍ＝Ｖｍ／（Ｔ×Ｎａｍ）
このように求まる加速度αｍを修正加速度とする。
【００６５】
修正加速度αｍおよび修正最高速度Ｖｍを用いて速度パターン（図１１）を修正すると図１６の修正速度パターンが得られる。
【００６６】
（速度パターンが三角パターンの場合の修正処理）
さて、図１４のフローチャートに戻って、速度パターンが三角パターンであった場合を考える（ＳＴ２２０：ＮＯ）。
速度パターンが三角パターンであった場合の修正処理を図１７のフローチャートを参照しながら説明する。
この場合、移動距離Ｓと加速度（減速度）αと関係は、加速区間の制御サンプリング回数をＮａとおいてみると、Ｓ＝α×（Ｎａ×Ｔ）２である。
まず、この式で求まる加速回数Ｎａを整数値に延長する（ＳＴ２３１）。
Ｎａｎ＝Ｒｏｕｎｄｕｐ（Ｎａ、０）
【００６７】
この整数値Ｎａｎが整数化された加速回数である。（減速回数も同じＮａｎを採用する。）そこで、整数値Ｎａｎに対応する加速度αｎを求める（ＳＴ２３２）。
【００６８】
Ｓ＝αｎ×（Ｎａｎ×Ｔ）２
αｎ＝Ｓ／（Ｎａｎ×Ｔ）２
【００６９】
この加速度αｎが修正加速度である。この修正加速度を用いて速度パターンを修正すると図１８のようになる（ＳＴ２３３）。ちなみに、この修正加速度αｎに対応した中間最高速度をＶｎで表わすと、Ｖｎ＝αｎ×Ｎａｎ×Ｔである。
【００７０】
図１６および図１８に例示したように速度パターンの加減速変更のタイミングが「制御サンプリング周期」に適合するように速度パターンが修正できた（ＳＴ２００）。あとは、この修正された速度パターンに従った移動速度でプローブを移動させていけばよい。ベクトル指令部で合成ベクトル指令を生成し（ＳＴ１４０）、プローブの駆動制御を実行すればよい（ＳＴ１５０）。このとき、速度パターンが「制御サンプリング周期」に適合するように修正されているので、制御ズレがなく、極めて高精度な倣い測定動作が実現できる。
【００７１】
（第２実施形態）
次に本発明の第２実施形態を説明する。
第２実施形態では、速度パターンの開始速度Ｖｓおよび終了速度Ｖｅのうちの一方または両方がゼロではない場合であっても、速度パターンを制御サンプリング周期に適合するように修正する。
第２実施形態の考え方としては、加速度（あるいは減速度）の値は極力変更しないようにする。その分、加速区間から等速区間に切り替わるところと、等速区間から減速区間に切り替わるところと、に調整区間を挿入することとする。
【００７２】
図１３の全体フローチャートと図１４の場合分けのフローチャートは第１実施形態と第２実施形態とで基本的には同じである。速度パターン演算部３４２で生成された速度パターンが例えば図１９のような台形パターンであった場合について考える。図１９の速度パターンでは、初速Ｖｓおよび終速Ｖｅがゼロではない。
【００７３】
図２０のフローチャートを参照しながら、速度パターンを制御サンプリング周期に合うように調整する処理動作を順に説明していく。
速度パターン修正部３４３は、加速区間の制御サンプリング回数Ｎａ、等速区間の制御サンプリング回数Ｎｆ、減速区間の制御サンプリング回数Ｎｄを算出する（ＳＴ３１０）。
Ｎａ＝（Ｖｍａｘ−Ｖｓ）／（α×Ｔ）
Ｎｄ＝＝（Ｖｍａｘ−Ｖｅ）／（α×Ｔ）
さらに、等速区間の距離をＳｆで表わす。
Ｎｆ＝Ｓｆ／Ｖｍａｘ    
【００７４】
等速区間の距離Ｓｆは、全体移動距離Ｓから加速区間の距離Ｓａと減速区間の距離Ｓｄとを減算したものである。
【００７５】
Ｓｆ＝Ｓ−（Ｓａ＋Ｓｄ）
２×α×Ｓａ＝Ｖｍａｘ２−Ｖｓ２
２×α×Ｓｄ＝Ｖｍａｘ２−Ｖｅ２
【００７６】
加速区間の制御サンプリング回数Ｎａ、等速区間の制御サンプリング回数Ｎｆおよび減速区間の制御サンプリング回数Ｎｄのすべてが整数値となっているか判定する（ＳＴ３２０）。
Ｎａ、ＮｆおよびＮｄがすべて整数値（あるいは整数値として扱ってよい程度の許容範囲内）であれば速度パターンの修正は不要である（ＳＴ３２０：ＹＥＳ）。Ｎａ、ＮｆおよびＮｄのひとつでも整数値ではない場合（ＳＴ３２０：ＮＯ）、次の整数化処理を行う（ＳＴ３３０）。
整数化処理（ＳＴ３３０）を図２１、図２２のフローチャートを参照しながら順を追って説明する。
【００７７】
まず、トータルの制御サンプリング回数Ｎｔを算出し、さらに、トータル制御サンプリング回数Ｎｔを切り上げた整数値Ｎｔｍを算出する（ＳＴ３３１）。
Ｎｔｍ＝Ｒｏｕｎｄｕｐ（Ｎｔ、０）
Ｎｔ＝Ｎａ＋Ｎｆ＋Ｎｄ
【００７８】
次に、加速区間の制御サンプリング回数Ｎａおよび減速区間の制御サンプリング回数Ｎｄについては切り下げて整数化する（ＳＴ３３２）。
Ｎａｍ＝ＩＮＴ（Ｎａ）
Ｎｄｍ＝ＩＮＴ（Ｎｄ）
【００７９】
そして、整数化された等速区間の制御サンプリング回数Ｎｆｍを次のように求める（ＳＴ３３３）。
Ｎｆｍ＝Ｎｔｍ−（Ｎａｍ＋Ｎｄｍ）−２  ・・・（式２）
【００８０】
ここで、（式２）では、最後に"２"を引いている。
いま、図１９に、ＮｆｍとＮａｍとＮｄｍとの関係を模式的に表わす。
この図１９でおよそご理解頂けるように、整数化したトータル制御サンプリング回数Ｎｔｍに対し、ＮｆｍとＮａｍとＮｄｍとの和を対比してみると、２回分少ない。その分、加速区間から等速区間に切り替わるところと、等速区間から減速区間に切り替わるところと、に１制御サンプリング周期分の調整区間を挿入する（ＳＴ３３４）（図２３も参照されたい）。
【００８１】
加速区間から等速区間に切り替わるところに挿入する調整区間を第１調整区間とする。
等速区間から減速区間に切り替わるところに挿入する調整区間を第２調整区間とする。
【００８２】
そして、調整区間の加速度αｃ１，αｃ２を求める（ＳＴ３３５）
いま、第１調整区間の加速度をαｃ１とおく。
αｃ１を第１修正加速度と称することにする。
第２調整区間の第２修正加速度をαｃ２とする。
整数化後の加速区間の移動距離をＳａｍ、
整数化後の等速区間の移動距離をＳｆｍ、
整数化後の減速区間の移動距離をＳｄｍ、とする。
【００８３】
また、第１調整区間の移動距離をＳ１ｍ、
第２調整区間の移動距離をＳ２ｍ、とする。
【００８４】
Ｓａｍ＝Ｖｓ×Ｎａｍ×Ｔ＋α×（Ｎａｍ×Ｔ）２／２
Ｓｆｍ＝Ｖｃ×Ｎｆｍ×Ｔ
ただし、Ｖｃ＝Ｖｓ＋α×Ｎａｍ×Ｔ＋αｃ×Ｔ
Ｓｄｍ＝Ｖｅ×Ｎｄｍ×Ｔ＋α×（Ｎｄｍ×Ｔ）２／２
【００８５】
Ｓ１ｍ＝（Ｖｓ＋α×Ｎａｍ×Ｔ）×Ｔ＋αｃ１×Ｔ２／２
Ｓ２ｍ＝（Ｖｅ＋α×Ｎｄｍ×Ｔ）×Ｔ＋αｃ２×Ｔ２／２
【００８６】
全体移動距離Ｓは、
Ｓ＝Ｓａｍ＋Ｓｆｍ＋Ｓｄｍ＋Ｓ１ｍ＋Ｓ２ｍ
となるはずである。
【００８７】
また、修正後の速度パターンの最高速度をＶｍとおく。
速度変化が全体に繋がっている必要があるわけであるから次の関係が要請される。
Ｖｍ＝Ｖｓ＋α×Ｎａｍ×Ｔ＋αｃ１×Ｔ
Ｖｍ＝Ｖｅ＋α×Ｎｄｍ×Ｔ＋αｃ２×Ｔ
【００８８】
以上の関係式から調整区間の修正加速度（減速度）αｃ１、αｃ２を逆算できる（ＳＴ３３５）。
【００８９】
もし、修正加速度αｃ１、αｃ２が最大加速度αを超えてしまっていたら（ＳＴ３３６）、エラー信号を発生させて、終了処理を行う。
（ただし、理論上、上記計算で算出される修正加速度αｃ１、αｃ２（の大きさ）が加速度α（の大きさ）を超えることはないはずである。）
【００９０】
次に、第１修正加速度αｃ１がマイナスになっていないか確認する（ＳＴ３３７）。
もし、第１修正加速度αｃ１がマイナスになっていたら、調整区間での速度変化が大きすぎる。この場合（ＳＴ３３７：ＮＯ）、加速区間で加速し過ぎなのであるから、加速区間を短くしたうえで（ＳＴ３３８）、再計算を行う。
すなわち、Ｎａｍ＝ＩＮＴ（Ｎａ）−１とする。
同じく、Ｎｄｍ＝ＩＮＴ（Ｎｄ）−１とする。
【００９１】
なお、ＳＴ３３７では第１修正加速度αｃ１が正の値になっているはずであると説明したが、これには１つ前提がある。
本実施形態では図５に例示するように、速度パターンとして、加速→等速→減速か、ずっと等速か、・・・という所定パターンの当てはめを行うが（特許６０６３１６１）、「減速→等速→加速」などのようにいきなり減速する区間を作らないようにしている。したがって、第１調整区間の第１修正加速度がマイナスになるということは、最初の加速区間で加速し過ぎて第１調整区間で無駄な減速を行っていることになる。
【００９２】
ただし、速度パターンの作り方として、「減速→等速→加速」のパターンを認めてももちろんよい。この場合には、最初の加速区間（あるいは減速区間）の加速度と第１調整区間の加速度との符号が反転してしまっていないかどうかを確かめればよいだろう。
【００９３】
このようにして、調整区間の修正加速度αｃ１、αｃ２が求まったら整数化処理は成功なので、速度パターンを修正する（図２０のＳＴ３４０）。
【００９４】
図１４のフローチャートに戻って、速度パターンが三角パターン（図２４）であった場合について考える（ＳＴ２２０：ＮＯ）。
速度パターンが三角パターン（図２４）である場合の修正方法は、台形パターンのときと基本的には同じなのであるが、一点だけ留意する点があるので、以下説明する。
図２５のフローチャートを参照されたい。
まず、速度パターン修正部３４３は、加速区間の制御サンプリング回数Ｎａ、減速区間の制御サンプリング回数Ｎｄを算出する（ＳＴ３１０Ａ）。
Ｎａ、Ｎｄは、以下の関係式を解けば求まる。
ここで、Ｖｕは、この三角速度パターンのなかの最高速度Ｖｕ、ｔａは加速時間（秒）、ｔｄは減速時間（秒）である。
【００９５】
Ｖｕ２−Ｖｓ２＝２×α×Ｓ
Ｖｕ２−Ｖｓ２＝２×α×Ｓ
Ｓ＝Ｓａ＋Ｓｄ
Ｓａ＝Ｖｓ×ｔａ＋α×ｔａ２／２
Ｓｄ＝Ｖｅ×ｔｄ＋α×ｔｄ２／２
Ｎａ＝ｔａ／Ｔ
Ｎｄ＝ｔｄ／Ｔ
【００９６】
ＮａとＮｄとのうちいずれかでも整数値ではないときは、整数化処理を行う（ＳＴ３２０Ａ：ＮＯ）。
【００９７】
トータルの制御サンプリング回数Ｎｔを算出し、さらに、トータル制御サンプリング回数Ｎｔを切り上げた整数値Ｎｔｍを算出する（ＳＴ３３１Ａ）。
Ｎｔｍ＝Ｒｏｕｎｄｕｐ（Ｎｔ、０）
Ｎｔ＝Ｎａ＋Ｎｄ
【００９８】
加速区間の制御サンプリング回数Ｎａおよび減速区間の制御サンプリング回数Ｎｄについては切り下げて整数化し、さらに、"１"を減じておく（ＳＴ３３２Ａ）。これは、調整区間を挿入する余地を必ず確保できるようにするための処置である。ここが先ほどの台形パターンのとき（図２１のＳＴ３３２）との違いである。
Ｎａｍ＝ＩＮＴ（Ｎａ）−１
Ｎｄｍ＝ＩＮＴ（Ｎｄ）−１
【００９９】
これ以降の整数化処理は台形パターンのときと同じになるので図２１および図２２で続きのステップを参照されたい。
調整区間を挿入したうえで（ＳＴ３３４）、修正加速度αｃ１、αｃ２を求めればよい（ＳＴ３３５）。すると、図２６に例示するように制御サンプリング周期に適合した速度パターンが得られる。
【０１００】
図２３および図２６に例示したように速度パターンの加減速変更のタイミングが「制御サンプリング周期」に適合するように速度パターンが修正できたので（ＳＴ２００）、あとは、この修正された速度パターンに従った移動速度でプローブを移動させていけばよい。
ベクトル指令生成部３４８で合成ベクトル指令を生成し（図１３のＳＴ１４０）、移動機構２２０の駆動制御を実行してプローブ２３０を倣い移動させればよい（ＳＴ１５０）。このとき、速度パターンが「制御サンプリング周期」に適合するように修正されているので、制御ズレがなく、極めて高精度な倣い測定動作が実現できる。
第２実施形態によれば、初速あるいは終速がゼロではないような速度パターンに対しても「制御サンプリング周期」に適合するように速度パターンを修正できる。
【０１０１】
（第３実施形態）
第３実施形態では、Ｓ字加減速処理を説明する。
これまでの速度パターンの算出においては加速度を一定とし、したがって速度は時間に関して一次関数で表わされていた。
しかしながら、実際のマシンの駆動制御では徐々に加速し、徐々に減速する、というように滑らかな制御を行っている。つまり、Ｓ字加減速処理を行っている。
図１９や図２４のような速度パターンが得られたあと、この速度パターンに適合したＳ字加減速処理を行う方法は既に本出願人によって提案されている（例えば特許６０５０６３６）。
【０１０２】
第３実施形態においては、図２７のフローチャートを参照しつつ、第２実施形態のように制御サンプリング回数の整数化を行った場合（図２３や図２６）のＳ字加減速処理について説明する。この第３実施形態の加減速調整処理は、加減速調整部３４４（図１０）で行われる。
【０１０３】
第２実施形態の処理によって図１９を修正した結果、図２３のように修正速度パターンが得られたとする。
さて、まずは単純に、加速区間では初速Ｖｓから単調に加速して修正最高速度Ｖｍに到達し、減速区間では修正最高速度Ｖｍから単調に減速して終速度Ｖｅに至ると考えてみる（図２８参照）。この単純化した修正速度パターンに対して仮のＳ字速度曲線を算出する（ＳＴ４１０）。このような単純な直線的加減速パターンをＳ字加減速処理によってＳ字の速度曲線にするのは既に知られた方法である。
【０１０４】
例えば図２９、図３０を参照して頂くとご理解頂けるであろう。
まずは、（Ｎａｍ＋１）×Ｔの時間で初速Ｖｓから修正最高速度Ｖｍにまで一次関数で加速したとした場合の加速度をαａで表わす。
また、式が簡単になるように、時間ｔｈａを２×ｔｈａ＝（Ｎａｍ＋１）×Ｔとする。
すると、速度カーブを二次曲線とした場合、０＜ｔ＜ｔｈａの時刻ｔにおける速度Ｖ（ｔ）は、
Ｖ（ｔ）＝Ｖｓ＋（αａ／ｔｈａ）×ｔ２、
と表わされる（図２９参照）。
同じく、ｔｈａ＜ｔ＜２ｔｈａの時刻ｔにおける速度Ｖ（ｔ）は、
Ｖ（ｔ）＝Ｖｍ−（αａ／ｔｈａ）×（２ｔｈａ−ｔ）２、
と表わされる（図３０参照）。
このようにして仮Ｓ字速度曲線に対して各時刻ｔの速度が得られる。
【０１０５】
次に、距離の補正量Ｄａ、Ｄｄを求める。
さきほどは、単純化した修正速度パターンに対して仮のＳ字速度曲線を算出した（ＳＴ４１０）。
そのため捨象した部分が発生している（図３１参照）。
加速区間および第１調整区間で考えてみると、距離の補正量Ｄａは次のようになる。
【０１０６】
Ｄａ＝｛（α−αａ）×（Ｎａｍ×Ｔ）２＋（αｃ１−αａ）×Ｔ２｝／２
αａは、前述のように、初速Ｖｓから修正最高速度Ｖｍにまで一次関数で加速した場合の加速度を表わす。
【０１０７】
同じく、減速区間および第２調整区間で考えてみると、距離の補正量Ｄｄは次のようになる。
Ｄｄ＝｛−（α−αｄ）×（Ｎｄｍ×Ｔ）２＋（αｃ１−αａ）×Ｔ２｝／２
αｄは、修正最高速度Ｖｍから終速Ｖｅまで一次関数で減速した場合の減速度を表わす。
【０１０８】
この補正量Ｄａ、Ｄｄ分が足りないわけであるから、先ほどの仮Ｓ字速度曲線に加えていけばよい（図３２参照）。
例えば、加速区間では、仮Ｓ字速度曲線に対して一回の制御サンプリングあたり、
速度補正量ΔＶａ＝Ｄａ／（Ｎａｍ×Ｔ）分の速度を加算すればよい。
同じく、減速区間では、仮Ｓ字速度曲線に対して一回の制御サンプリングあたり、
速度補正量ΔＶｄ＝Ｄｄ／（Ｎｄｍ×Ｔ）分の速度を加算すればよい。
（このようにできあがった速度カーブはもはや二次曲線ではない。）
【０１０９】
このようにして擬似Ｓ字カーブの速度曲線が求まったので、この速度パターンに従った移動速度でプローブを移動させていけばよい。速度パターンが「制御サンプリング周期」に適合するように修正されているうえに、擬似Ｓ字カーブの速度曲線により、制御ズレがなく、極めて高精度で、かつ、滑らかな加減速による倣い測定動作が実現できる。
【０１１０】
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【０１１１】
１００…形状測定システム、
２００…三次元測定機、
２１０…定盤、２２０…移動機構、２２１…Ｙスライダ、２２２…Ｘスライダ、２２３…Ｚ軸コラム、２２４…Ｚスピンドル、
２３０…プローブ、２３１…スタイラス、２３２…測定子、２３３…支持部、
３００…モーションコントローラ、
３１０…測定指令取得部、３３０…カウンタ部、３４０…移動指令生成部、
３４１…速度パターン計画部、
３４２…速度パターン演算部、３４３…速度パターン修正部、３４４…加減速調整部、３４８…ベクトル指令生成部、
３５０…駆動制御部、
４００…手動コントローラ、
５００…ホストコンピュータ、５２０…記憶部、５３０…形状解析部。
【図１】
2019049464.tif 000003
【図２】
2019049464.tif 000004
【図３】
2019049464.tif 000005
【図４】
2019049464.tif 000006
【図５】
2019049464.tif 000007
【図６】
2019049464.tif 000008
【図７】
2019049464.tif 000009
【図８】
2019049464.tif 000010
【図９】
2019049464.tif 000011
【図１０】
2019049464.tif 000012
【図１１】
2019049464.tif 000013
【図１２】
2019049464.tif 000014
【図１３】
2019049464.tif 000015
【図１４】
2019049464.tif 000016
【図１５】
2019049464.tif 000017
【図１６】
2019049464.tif 000018
【図１７】
2019049464.tif 000019
【図１８】
2019049464.tif 000020
【図１９】
2019049464.tif 000021
【図２０】
2019049464.tif 000022
【図２１】
2019049464.tif 000023
【図２２】
2019049464.tif 000024
【図２３】
2019049464.tif 000025
【図２４】
2019049464.tif 000026
【図２５】
2019049464.tif 000027
【図２６】
2019049464.tif 000028
【図２７】
2019049464.tif 000029
【図２８】
2019049464.tif 000030
【図２９】
2019049464.tif 000031
【図３０】
2019049464.tif 000032
【図３１】
2019049464.tif 000033
【図３２】
2019049464.tif 000034