[三次元測定機の全体構成]
図1は、三次元測定機(CMM:Coordinate Measuring Machine)10の外観斜視図である。三次元測定機10は、プローブ24aの位置及び姿勢を変位させながら被測定物9(ワークともいう、既述の図13参照)の測定位置における座標値(X軸方向の座標値、Y軸方向の座標値、及びZ軸方向の座標値)を測定する測定機であり、座標測定機又は三次元座標測定機とも称される。なお、図1中のX軸、Y軸、及びZ軸は、三次元測定機10に固有の機械座標原点に基づいて定められる座標系である機械座標系である。また、本例では既述の図13に示した被測定物9を測定するが、測定対象の被測定物9の種類は特に限定はされない。
被測定物9は、既述の図13に示したように多面体であり、被測定物9の各面には複数の測定要素E(1)〜E(10)が形成されている。以下、測定要素E(1)〜E(10)を適宜「測定要素E」と略す。ここで、測定要素Eとは被測定物9に形成される穴(円穴)、凸部、又は溝などであり、被測定物9には複数の測定要素Eが含まれている。本例では測定要素Eとして円穴を測定する。なお、測定要素Eには被測定物9の外形が含まれていてもよい。
図1に示すように、三次元測定機10は、架台12と、架台12上に設けられたテーブル14(定盤)と、テーブル14の両端部に立設された右Yキャリッジ16R及び左Yキャリッジ16Lと、右Yキャリッジ16R及び左Yキャリッジ16Lの上部を連結するXガイド18と、を備える。右Yキャリッジ16Rと左Yキャリッジ16LとXガイド18とにより門型フレーム26が構成される。
テーブル14の両端部の上面と側面には、Y軸方向に沿って右Yキャリッジ16R及び左Yキャリッジ16Lが摺動する摺動面が形成されている。また、右Yキャリッジ16R及び左Yキャリッジ16Lには、テーブル14の摺動面に対向する位置にエアベアリング(図示は省略)が設けられている。これにより、右Yキャリッジ16R及び左Yキャリッジ16Lは、Xガイド18と共にY軸方向に移動自在になっている。
Xガイド18には、Xキャリッジ20が取り付けられている。このXガイド18には、Xキャリッジ20が摺動する摺動面がX軸方向に沿って形成されている。また、Xキャリッジ20には、Xガイド18の摺動面に対向する位置にエアベアリング(図示は省略)が設けられている。これにより、Xキャリッジ20はX軸方向に移動自在になっている。
Xキャリッジ20には、Zキャリッジ(Zスピンドルともいう)22が取り付けられている。また、Xキャリッジ20には、Zキャリッジ22をZ軸方向に案内するZ軸方向案内用のエアベアリング(図示せず)が設けられている。これにより、Zキャリッジ22は、Xキャリッジ20によってZ軸方向に移動可能に保持されている。
Zキャリッジ22の下端には、プローブヘッド24が取り付けられている。
図2は、プローブヘッド24の外観斜視図である。図2に示すように、プローブヘッド24は、例えば無段階位置決め機構を備えた5軸同時制御プローブヘッドであり、接触式タッチトリガのプローブ24aの基端を保持している。プローブ24aの先端には、スタイラス24bの基端が取り付けられている。このスタイラス24bの先端には、接触子24cが取り付けられている。スタイラス24b及び接触子24cは、プローブ24aの測定子を構成する。なお、プローブ24aの種類は特に限定されるものではない。
プローブヘッド24には、プローブ24aを互いに直交する2つの回転軸A及び回転軸B(図1参照)の軸周りに回転させるモータなどの第1駆動部35(図3参照)が設けられている。これにより、プローブ24aの回転軸Aの軸周りの回転角φと、プローブ24aの回転軸Bの軸周りの回転角θとをそれぞれ無段階に調整することができ、その結果、プローブ24a(スタイラス24b)の姿勢を任意に変位(回転)させることができる。
図1に戻って、三次元測定機10には、図示は省略するが門型フレーム26をY軸方向に移動させるY軸駆動部と、Xキャリッジ20をX軸方向に移動させるX軸駆動部と、Zキャリッジ22をZ軸方向に移動させるZ軸駆動部と、を含む第2駆動部36(図3参照)が設けられている。これにより、プローブヘッド24及びプローブ24aを、互いに直交する3軸方向(XYZ方向)に移動させることができる。これら第1駆動部35及び第2駆動部36によりプローブ24aの位置及び姿勢が変位自在となり、プローブ24aを任意に変位(移動及び回転)させることができる。
テーブル14の右Yキャリッジ16R側の端部には、Y軸方向位置検出用リニアスケール(図示せず)が設けられている。また、Xガイド18にはX軸方向位置検出用リニアスケール(図示せず)が設けられ、Zキャリッジ22にはZ軸方向位置検出用リニアスケール(図示せず)が設けられている。
一方、右Yキャリッジ16Rには、Y軸方向位置検出用リニアスケールを読み取るY軸方向位置検出ヘッド(図示せず)が設けられている。また、Xキャリッジ20には、X軸方向位置検出用リニアスケール及びZ軸方向位置検出用リニアスケールをそれぞれ読み取るX軸方向位置検出ヘッド(図示せず)とZ軸方向位置検出ヘッド(図示せず)とが設けられている。さらに、プローブヘッド24には、プローブ24aの回転角θ,φをそれぞれ検出するロータリエンコーダ等の回転角検出部(図示せず)が設けられている。XYZ軸方向検出ヘッドの検出結果と、回転角検出部の検出結果とに基づき、プローブ24a(スタイラス24b)の先端の接触子24cが被測定物9の測定位置に接触したときの測定位置のXYZ軸方向の座標値を検出することができる。
三次元測定機10は、第1駆動部35及び第2駆動部36を制御して、プローブヘッド24の動き、すなわち、プローブ24a(スタイラス24b)の位置及び姿勢の変位を制御する駆動コントローラ28を備えている。ここで三次元測定機10は、測定を自動で行う自動測定モードと、測定を手動で行う手動測定モードとを有している。従って、駆動コントローラ28は、自動測定モード時には後述のコンピュータ32の制御の下、第1駆動部35及び第2駆動部36を制御して、プローブ24aの位置及び姿勢を変位させる。
また、駆動コントローラ28には、プローブ24a(スタイラス24b)の位置及び姿勢の変位を手動操作するためのジョイスティック等のプローブ操作部28aが設けられている。従って、駆動コントローラ28は、手動測定モード時にはプローブ操作部28aに対する操作入力に応じて、第1駆動部35及び第2駆動部36を制御することにより、プローブ24aの位置及び姿勢を変位させる。
駆動コントローラ28には、前述の接触タッチトリガのプローブ24aの接触検知センサ(図示せず)と、前述のXYZ軸方向検出ヘッド及び回転角検出部とが接続されている。そして、駆動コントローラ28は、接触検知センサによりプローブ24a(接触子24c)が被測定物9の測定位置に接触したことを検知した瞬間に、XYZ軸方向検出ヘッド及び回転角検出部の各々の検出結果を取得して、測定位置のXYZ軸方向の座標値を検出する。この測定位置のXYZ軸方向の座標値は、駆動コントローラ28からコンピュータ32へ出力される。
コンピュータ32は、LAN(Local Area Network)等の各種の通信インタフェース30により駆動コントローラ28に対してデータ通信可能に接続されている。このコンピュータ32は、前述の駆動コントローラ28と共に本発明の三次元測定機の測定制御装置として機能する。
コンピュータ32には、本発明の測定プログラムに相当するソフトウエアプログラム32aがインストールされている。コンピュータ32は、ソフトウエアプログラム32aを実行することにより、プローブ24aの測定経路[例えば測定要素Eの測定位置を示す座標値、測定位置の測定順番、及び測定位置の中間点の座標値]を表すパートプログラム37(図3参照)を作成する。そして、コンピュータ32は、三次元測定機10の自動測定モード時においては、パートプログラム37に基づき、駆動コントローラ28を介して第1駆動部35及び第2駆動部36を駆動(制御)して、プローブ24aにより被測定物9を自動測定する。
一方、コンピュータ32は、三次元測定機10の手動測定モード時においては、パートプログラム37に基づき、測定要素Eの測定位置を表示部38に表示する。これにより、オペレータは、プローブ操作部28aにより駆動コントローラ28を介して第1駆動部35及び第2駆動部36を駆動して、プローブ24aにより被測定物9を手動測定することができる。
表示部38は、コンピュータ32に接続されている。コンピュータ32は、三次元測定機10における諸情報、例えば、手動測定モード時(自動測定モード時にも可)にプローブ24aによる測定位置、及び操作指示等を表示部38に表示させる。
[コンピュータの機能]
図3は、コンピュータ32の機能ブロック図である。図3に示すように、コンピュータ32のCPU(Central Processing Unit)及びメモリ等により構成される制御部40は、ソフトウエアプログラム32aを実行する。これにより、制御部40は、表示制御部42と、記憶部43と、CAD(computer aided design)データ取得部44と、ワーク座標系設定部45と、要素及び課題作成部46と、法線ベクトル検出部47と、グループ化部48と、ソート部49と、パートプログラム作成部50と、ワーク座標系測定部51と、測定要素測定部52として機能する。
表示制御部42は、表示部38の表示を制御する。記憶部43には、前述のソフトウエアプログラム32a及びパートプログラム37の他に、詳しくは後述するワーク座標系57などの三次元測定機10による被測定物9の測定に係る各種情報が記憶されている。
CADデータ取得部44は、図示しない各種インターフェース(通信インタフェース)を介して、外部から本発明の被測定物9の設計図面に相当するCADデータ55を取得する。CADデータ55には、被測定物9の形状、寸法、及び測定要素Eの配置等を示す被測定物9の設計情報が記録されている。CADデータ取得部44は、被測定物9のCADデータ55が存在している場合、外部からCADデータ55を取得してワーク座標系設定部45と法線ベクトル検出部47とにそれぞれ出力する。
ワーク座標系設定部45と、要素及び課題作成部46と、法線ベクトル検出部47と、グループ化部48と、ソート部49と、パートプログラム作成部50とは、被測定物9を基準とした測定経路を示すパートプログラム37を作成する。ここでいう被測定物9を基準とした測定経路とは、被測定物9の原点及び基準軸(XYZ軸:図13参照)を基準とした測定経路、すなわち、後述の被測定物9のワーク座標系57を基準とした測定経路である。従って、テーブル14上での被測定物9の位置及び姿勢が検出されていれば、パートプログラム37(被測定物9を基準とした測定経路)に従って、被測定物9の測定を行うことができる。
パートプログラム37は、CADデータ取得部44が被測定物9のCADデータ55を取得できなかった場合には、三次元測定機10で被測定物9を実測した結果に基づき作成する。また、CADデータ取得部44が被測定物9のCADデータ55を取得した場合には、このCADデータ55を用いてコンピュータ32上で作成する。
<パートプログラムの作成:CADデータ無し>
ワーク座標系設定部45は、CADデータ取得部44が被測定物9のCADデータ55を取得できなかった場合、三次元測定機10で被測定物9を実測した結果に基づき、被測定物9を基準とするワーク座標系57を設定する。ワーク座標系57は、被測定物9の原点及び基準軸(XYZ軸)を設定したものである。
ワーク座標系57の設定は、空間補正、原点設定、及び基準軸設定に大別される。以下に、空間補正、原点設定、及び基準軸設定の順に説明をする。なお、図面の煩雑化を防止するために、被測定物9とは異なる被測定物9A(図4参照)のワーク座標系57の設定を例に挙げて説明を行う。
空間補正の開始前に、三次元測定機10のプローブヘッド24に取り付けるプローブ24a(スタイラス24b)の作成又は選択と、プローブ24a(スタイラス24b)の校正と、が行われる。なお、プローブ24aの校正は、詳しくは後述する測定要素測定部52の制御の下で実施されるものであり、ここでは具体的な説明は省略する。
図4は、ワーク座標系設定部45による空間補正の説明図である。なお、図中のX0Y0Z0軸は三次元測定機10の機械座標系の基準軸であり、符号406は機械座標系の原点である。図4に示すように空間補正では、最初に被測定物9Aにおける任意の平面400が測定される。具体的には、オペレータがプローブ操作部28aを操作して、プローブ24aで平面400の3点以上を測定(プロービング)する。プローブ24aによる平面400の測定結果(座標値)は、駆動コントローラ28を介してワーク座標系設定部45に入力される。ワーク座標系設定部45は、平面400の測定結果に基づき、平面400とZ0軸との交点402、及び平面400の法線ベクトル404を決定する。
次いで、ワーク座標系設定部45は、平面400の法線ベクトル404とZ0軸とを平行にする。これにより、図中の実線で表されたX0Y0Z0座標系は、図中の破線で表されたX1Y1Z1座標系に空間補正処理される。
そして、ワーク座標系設定部45は、交点402に原点406を平行移動させる。そうすると、X1Y1Z1座標系は、図中の長破線で表されたX2Y2Z2座標系とされる。以上の処理を経て、ワーク座標系設定部45は、ワーク座標系57のZ軸の方向、及びワーク座標系57の原点を決定する。
図5は、ワーク座標系設定部45による原点設定の説明図である。図5に示すように原点設定では、オペレータがプローブ操作部28aを操作して、プローブ24aで平面400に形成されている円穴410を測定(円穴410の中心測定に必要な箇所を測定)する。この測定結果は、駆動コントローラ28を介してワーク座標系設定部45に入力される。ワーク座標系設定部45は、駆動コントローラ28から入力された円穴410の測定結果に基づき、円穴410の中心412を求める。
次いで、ワーク座標系設定部45は、円穴410の中心に原点406を平行移動させる。これにより、図中の実線で表されたX2Y2Z2座標系は、図中の破線で表されたX3Y3Z3座標系に補正される。以上の処理を経て、ワーク座標系57のXY軸の原点がX3Y3Z3座標系の原点として設定される。
図6は、ワーク座標系設定部45による基準軸設定の説明図である。図6に示すように基準軸設定では、オペレータがプローブ操作部28aを操作して、プローブ24aで平面400に形成されている円穴420を測定(円穴420の中心測定に必要な箇所を測定)する。この測定結果は、駆動コントローラ28を介してワーク座標系設定部45に入力される。ワーク座標系設定部45は、駆動コントローラ28から入力された円穴420の測定結果に基づき、円穴420の中心422を求める。
次いで、ワーク座標系設定部45は、X3軸を円穴420の中心422を通る位置まで回転させる。ここで図中の符号αはX3軸を回転させる角度を表している。これにより、図中の実線で表されたX3Y3座標系は、図中の破線で表されたX4Y4座標系に補正される。以上の処理を経て、ワーク座標系57のXY軸の方向として、図中のX4Y4座標系が決定される。
このように、空間補正、原点設定、及び基準軸設定を経て、図中のX4軸はワーク座標系57のX軸とされる。また、図中のY4軸はワーク座標系57のY軸とされる。また、既述の図4に示されたZ3軸はワーク座標系57のZ軸とされる。以上でワーク座標系57の設定が完了する。
ワーク座標系設定部45は、上述の空間補正、原点設定、及び基準軸設定を経て、被測定物9のワーク座標系57を設定し、このワーク座標系57の情報を記憶部43に記憶させる。なお、ここで説明したワーク座標系57の設定方法は一例であり、ワーク座標系57の設定方法として、三次元測定機10に適用可能な他の公知の方法を採用してもよい。
また、ワーク座標系設定部45は、他の装置で既に被測定物9のワーク座標系57が設定されている場合、図示しないインタフェースを介してワーク座標系57の情報を記憶している装置(インターネット上のサーバを含む)又は記憶媒体から、ワーク座標系57の情報を取得し、取得した情報に基づきワーク座標系57を設定してもよい。
図3に戻って、要素及び課題作成部46は、被測定物9に形成されている複数の測定要素Eの中で、測定対象とする測定要素Eの情報を作成(すなわち、測定対象の測定要素E選択)すると共に、測定の課題(測定内容)を作成する。
具体的にオペレータは、プローブ操作部28aを操作して、プローブ24aで被測定物9の各面に形成されている複数の測定要素Eの中で測定対象とする測定要素E(ここでは測定要素E(1)〜E(10))をプロービングする。このプロービングは、測定要素Eの位置座標、及び法線ベクトル60(図7参照)を測定可能な箇所に対して行われる。測定要素Eのプロービング測定の結果は、駆動コントローラ28を介して要素及び課題作成部46及び後述の法線ベクトル検出部47にそれぞれ入力される。
要素及び課題作成部46は、測定要素Eのプロービング測定の結果に基づき、測定要素Eの位置座標を検出して、測定対象の測定要素E(測定要素E(1)〜E(10))の位置座標等を示す測定要素情報を作成し、この測定要素情報を後述の法線ベクトル検出部47及びソート部49及びパートプログラム作成部50へ出力する。
また、要素及び課題作成部46は、オペレータからの測定要素Eを測定する際の課題(測定内容)の入力を受けて、測定対象の測定要素E(測定要素E(1)〜E(10))の課題を作成する。例えば測定要素Eが円穴である場合の課題は、円穴の中心の位置座標測定、及び円穴の真円度測定などである。そして、要素及び課題作成部46は、測定対象の測定要素Eの課題を示す課題情報をパートプログラム作成部50へ出力する。
図7は、図3に示した法線ベクトル検出部47による法線ベクトル検出処理、グループ化部48によるグループ化処理、及びソート部49による第1ソート処理をそれぞれ説明するための説明図である。なお、図中のXYZ軸はワーク座標系57の基準軸である。
図7に示すように、法線ベクトル検出部47は、要素及び課題作成部46から入力された測定要素情報と、駆動コントローラ28を介して入力された測定要素Eのプロービング測定の結果とに基づき、測定対象の測定要素E(測定要素E(1)〜E(10))の法線ベクトル60をそれぞれ検出する。既述の通り、測定要素Eのプロービングは、測定要素Eの法線ベクトル60を測定可能な箇所に対して行われているので、法線ベクトル検出部47は、測定対象の測定要素Eの法線ベクトル60を検出することができる。そして、法線ベクトル検出部47は、測定対象の測定要素Eの法線ベクトル60の検出結果を、グループ化部48へ出力する。
グループ化部48は、法線ベクトル検出部47から入力された法線ベクトル60の検出結果に基づき、測定対象の測定要素E(測定要素E(1)〜E(10))を、法線ベクトル60の方向ごとにグループ化する。すなわち、グループ化部48は、法線ベクトル60の方向が同一(略同一を含む)となる測定要素Eにより構成されるグループ(本例ではグループG1〜G3)をそれぞれ生成する。なお、被測定物9内での測定対象の測定要素Eの数及び配置に応じてグループの数は増減する。
グループG1は、被測定物9のZ面62に形成されている測定要素E(1)〜E(4)により構成される。グループG2は、被測定物9のY面63に形成されている測定要素E(5),E(6)により構成される。グループG3は、被測定物9のX面64に形成されている測定要素E(7)〜E(10)により構成される。そして、グループ化部48は、グループ化の結果を示すグループ情報(例えば、グループの数と各グループを構成する測定要素Eを示す情報)を、ソート部49へ出力する。
ソート部49は、本発明の測定順番決定部に相当するものであり、測定対象の測定要素Eの測定順番を決定する。ソート部49は、グループ化部48から入力されたグループ情報に基づき、測定対象の測定要素Eの測定順番を、グループG1〜G3ごとにそれぞれ測定する順番に決定する。すなわち、ソート部49は、グループG1〜G3の中のいずれかのグループに含まれる測定要素Eの測定を最初に行い、次に残りの2つのグループの一方に含まれる測定要素Eの測定を行い、最後に残りの1つのグループに含まれる測定要素Eの測定が行われるように、測定対象の測定要素Eの測定順番を決定する。
次いで、ソート部49は、グループG1〜G3ごとにそれぞれグループ内の測定要素Eの測定順番を、プローブ24aの移動距離が最短となる順番にソートする第1ソート処理を行う。グループG1〜G3内における測定要素Eの位置座標は、既述の要素及び課題作成部46から入力される測定要素情報に基づき判別可能である。従って、本例のソート部49は測定要素情報に基づきプローブ24aの移動距離が最短となる順番を決定する。これにより、ソート部49は、グループG1〜G3ごとに第1ソート処理を行って、図中の矢印で示すようにグループG1〜G3内での測定要素Eの測定順番を決定する。
また、ソート部49は、グループG1〜G3間の測定順番を決定する。具体的に、ソート部49は、グループG1〜G3を、最初に測定するグループに対して法線ベクトル60の方向が近い順にソートする第2ソート処理を行う。ここで、本例のグループG1〜G3の法線ベクトル60は互いに直交しているので、グループG1〜G3間の測定順番は特に限定されず、例えば最初に測定するグループG3である場合、ソート部49はグループG3→グループG2→グループG1の順番又はグループG3→グループG1→グループG2の順番に第2ソート処理を行って、グループG1〜G3間の測定順番を決定する。
図8は、ソート部49による第2ソート処理の他の実施例を説明するための説明図である。ここでは、被測定物9のカット面65及びX面66にも測定対象の測定要素E(グループ)があり、且つ最初に測定するグループがZ面62のグループG1である場合を例に挙げて説明する。この場合、図8に示すようにソート部49は、図中の括弧付き数字(1)〜(5)に示すように、グループG1に対して法線ベクトル60の方向が近い順に各グループを第2ソート処理して、各グループ間の測定順番を決定する。
なお、第2ソート処理において最初に測定するグループは特に限定されないが、プローブ24aの測定開始時姿勢が回転角φ=0°の姿勢(Z軸に平行な姿勢)である場合は、グループG1を最初に測定するグループに決定することが好ましい。これにより、プローブ24aを回転させることなくグループG1の測定要素Eの測定を開始できる。また、Z面62のグループG1が存在しない場合には、プローブ24aの回転を最小の回転角で測定可能なグループを最初に測定するグループに決定する。すなわち、測定開始時(初期状態)のプローブ24aの姿勢に応じて、最初に測定するグループを決定する。これにより、測定時間を短縮することができる。
ソート部49による第1ソート処理及び第2ソート処理を経て、測定対象の測定要素E(測定要素E(1)〜E(10))の測定順番が決定する。そして、ソート部49は、測定要素Eの測定順番を示す測定順番情報を、パートプログラム作成部50へ出力する。
図3に戻って、パートプログラム作成部50は、オペレータからのプログラミング操作の入力を受けて或いは自動作成プログラムを実行することにより、パートプログラム37を作成する。具体的にパートプログラム作成部50は、要素及び課題作成部46から入力された測定要素情報及び課題情報と、ソート部49から入力された測定順番情報とに基づき、被測定物9を基準としたプローブ24aの測定経路を設定して、この測定経路を示すパートプログラム37を作成する。なお、プローブ24aの測定経路は、プローブ24aを被測定物9に衝突させない経路、すなわち、プローブ24aを被測定物9から退避させた経路に設定されるため、プローブ24aの測定経路の設定は退避面の設定ともいう。
パートプログラム作成部50は、作成したパートプログラム37を記憶部43に記憶させる。以上でCADデータ取得部44が被測定物9のCADデータ55を取得できなかった場合のパートプログラム37の作成が完了する。
なお、パートプログラム作成部50は、既に他の装置で被測定物9に対応したパートプログラム37が作成されている場合、図示しないインタフェースを介してパートプログラム37の情報を記憶している装置又は記憶媒体から、パートプログラム37を取得して記憶部43に記憶させてもよい。
<パートプログラムの作成:CADデータ有り>
一方、CADデータ取得部44が被測定物9のCADデータ55を取得した場合、このCADデータ55から測定対象の測定要素Eの位置座標、形状、法線ベクトル60等を取得することができる。このため、前述のワーク座標系設定部45によるワーク座標系57の設定と、要素及び課題作成部46による測定要素情報及び課題情報の作成と、法線ベクトル検出部47による法線ベクトル60の検出と、をコンピュータ32上で行うことができる。すなわち、三次元測定機10で被測定物9の測定(プローブ24aの選択及び校正を含む)を行うことなく、オフライン状態のコンピュータ32によりワーク座標系57の設定から法線ベクトル60の検出までを行うことができる。
なお、グループ化部48によるグループ情報の生成と、ソート部49による測定順番情報の生成と、パートプログラム作成部50によるパートプログラム37の作成及び記憶とについては、前述のCADデータ55を取得できなかった場合と同様である。
[被測定物の測定に係る構成]
ワーク座標系測定部51は、本発明の位置姿勢測定部を構成するものであり、三次元測定機10のテーブル14上にセットされた被測定物9の測定要素Eの測定開始前に、テーブル14上にセットされた被測定物9の位置及び姿勢を測定する。このワーク座標系測定部51は、最初に表示制御部42を制御して、被測定物9のZ面62とY面63とX面64(他の3面でも可)に対するプロービングを促す表示を表示部38に表示させる。
図9は、テーブル14上にセットされた被測定物9の位置及び姿勢の測定を説明するための説明図である。オペレータは、プローブ操作部28aを操作して、プローブ24aで被測定物9のZ面62上の任意の3点以上をプロービングする。この際のプローブ24aの姿勢は、測定開始時(初期状態)におけるZ軸に平行な姿勢である。そして、Z面62のプロービング測定の結果は、駆動コントローラ28を介してワーク座標系測定部51に入力される。
次いで、オペレータは、プローブ操作部28aを操作して、プローブ24aの姿勢を回転させることなく、プローブ24aで被測定物9のY面63上の任意の2点以上をプロービングする。このY面63のプロービング測定の結果は、駆動コントローラ28を介してワーク座標系測定部51に入力される。ワーク座標系測定部51は、Z面62及びY面63のプロービング測定の結果に基づき、テーブル14上の被測定物9のY原点及びX軸の向きを判別する。
そして、オペレータは、プローブ操作部28aを操作して、プローブ24aの姿勢を回転させることなく、プローブ24aで被測定物9のX面64上の任意の1点以上をプロービングする。このX面64のプロービング測定の結果は、駆動コントローラ28を介してワーク座標系測定部51に入力される。ワーク座標系測定部51は、Z面62、Y面63、及びX面64のプロービング測定の結果に基づき、テーブル14上の被測定物9のX原点と、Y軸及びZ軸の向きを判別する。これにより、ワーク座標系測定部51は、テーブル14上の被測定物9の位置及び姿勢を測定することができ、被測定物9の位置及び姿勢の測定結果を測定要素測定部52へ出力する。
なお、三次元測定機10のテーブル14上にセットされた被測定物9の位置及び姿勢を測定する方法は上述の方法に限定されるものではない。例えば、三次元測定機10に設けられたカメラでテーブル14上の被測定物9を撮像して得られた画像を解析する方法、及び被測定物9に設けられた位置センサ及び姿勢センサの検出結果を取得する方法などの各種方法を用いて、被測定物9の位置及び姿勢を測定してもよい。
図3に戻って、測定要素測定部52は、ワーク座標系測定部51から入力された被測定物9の位置及び姿勢の測定結果に基づき、記憶部43から読み出したパートプログラム37を実行する。これにより、被測定物9の測定対象の測定要素Eをソート部49が決定した測定順番でグループG1〜G3ごとに測定する測定要素測定が実行される。
図10は、測定要素測定部52による測定要素測定を説明するための説明図である。この測定要素測定は、回転処理と、校正処理と、グループ内測定処理と、を含む。
<回転処理>
図10に示すように、回転処理は、プローブ24a(スタイラス24b)の姿勢を、グループG1〜G3の中で測定対象のグループ(以下、測定対象グループという)の測定要素Eの法線ベクトル60(図7参照)の方向に合わせて回転させる処理である。すなわち、プローブ24aの姿勢(向き)を、プローブ24aの先端の接触子24cが測定対象グループの測定要素Eに対向し且つ測定要素Eの法線ベクトル60に平行となる姿勢(以下、平行姿勢という)に回転させる。
具体的に測定要素測定部52は、三次元測定機10が自動測定モードであれば、測定対象グループの測定要素Eの測定開始前に、パートプログラム37に基づき駆動コントローラ28を介して第1駆動部35を駆動して、プローブ24aを、測定対象グループの測定要素Eの法線ベクトル60の方向に対応した平行姿勢に回転させる。なお、プローブ24aの回転処理は、被測定物9から退避した位置で行われる。
また、測定要素測定部52は、三次元測定機10が手動測定モードであれば、測定対象グループの測定要素Eの測定開始前に、パートプログラム37に基づき表示制御部42を制御して、測定対象グループの測定要素Eに対応した平行姿勢に関する情報を表示部38に表示させる。これにより、オペレータがプローブ操作部28aを操作して、被測定物9から退避した位置においてプローブ24aの姿勢を、測定対象グループの測定要素Eに対応した平行姿勢に回転させる。なお、自動測定モードにおいても手動測定モードと同様に、オペレータの手動操作によりプローブ24aの姿勢を回転させてもよい。
<校正処理>
校正処理は、プローブ24a(スタイラス24b)の姿勢を校正する処理であり、前述の回転処理後で且つ測定対象グループの測定要素Eの測定前に行われる。ここでいう姿勢の校正とは、プローブ24aの姿勢が、測定対象グループの測定要素Eに対応した平行姿勢からずれている場合に、このずれを補正することである。
測定要素測定部52は、三次元測定機10の自動測定モード及び手動測定モードにおいて、回転処理後で且つ測定対象グループの測定要素Eの測定前に、表示制御部42を制御して、プローブ24aの校正を促す表示を表示部38に表示させる。オペレータは、プローブ24aの校正を促す表示が表示部38に表示された場合、テーブル14上に校正用の図示しない基準球(校正球ともいう)をセットした後、プローブ操作部28aを操作して、プローブ24aで基準球の所定の基準点をプロービングする。この基準球のプロービング測定の結果は、駆動コントローラ28を介して測定要素測定部52に入力される。
測定要素測定部52は、基準球のプロービング測定の結果をプローブ校正用プログラムにインプットしてプローブ24aの姿勢を計算し、計算したプローブ24aの姿勢が前述の平行姿勢がずれていた場合には、駆動コントローラ28を介して第1駆動部35を駆動してプローブ24aの姿勢を平行姿勢に校正処理(ここでは回転)する。
なお、ここで説明したプローブ24aの校正方法は一例であり、プローブ24aの姿勢の校正方法として、三次元測定機10に適用可能な他の校正方法を採用してもよい。
<グループ内測定処理>
グループ内測定処理は、測定対象グループ内の測定要素Eを、ソート部49が第1ソート処理で定めた測定順番に従って測定する処理である。測定要素測定部52は、三次元測定機10が自動測定モードであれば、ワーク座標系測定部51からの位置及び姿勢の測定結果に基づきパートプログラム37を実行し、駆動コントローラ28を介して第1駆動部35及び第2駆動部36を駆動する。これにより、測定対象グループ内の測定要素Eをパートプログラム37で定められている測定順番及び課題に従ってプローブ24aで自動測定することができる。この自動測定の測定結果(座標値)は、駆動コントローラ28を介して測定要素測定部52に入力される。
また、測定要素測定部52は、三次元測定機10が手動測定モードであれば、ワーク座標系測定部51からの位置及び姿勢の測定結果とパートプログラム37とに基づき表示制御部42を制御して、測定対象グループ内の測定要素Eの位置、測定順番、及び課題を示す情報を表示部38に表示させる。オペレータは、表示部38の表示内容に従ってプローブ操作部28aを操作して、測定対象グループ内の測定要素Eをプローブ24aで手動測定する。この手動測定の測定結果(座標値)は、駆動コントローラ28を介して測定要素測定部52に入力される。
[三次元測定機の作用]
次に、図11及び図12を用いて上記構成の三次元測定機10、駆動コントローラ28、及びコンピュータ32による被測定物9の測定要素Eの測定処理(測定方法)について説明を行う。
図11は、被測定物9の測定要素Eの測定処理の流れを示すフローチャートである。図12は、図11中のステップS4のソート処理の流れを示すフローチャートである。ここではワーク座標系57は事前に設定されておらず、且つパートプログラム37も事前に作成されていないものとして説明を行う。なお、ワーク座標系57が事前に設定及び記憶されている場合にはステップS3から開始し、パートプログラム37が事前に作成及び記憶されている場合にはステップS7から開始する。
<パートプログラムの作成>
図11に示すように、最初にオペレータはパートプログラム37の作成を開始する。オペレータは、被測定物9のCADデータ55が存在しない場合には、被測定物9の測定に用いるプローブ24a(スタイラス24b)の作成又は選択を行った後、このプローブ24aをプローブヘッド24に取り付ける(ステップS1)。
次いで、オペレータは、テーブル14上に校正用の基準球をセットした後、プローブ操作部28aを操作して、プローブ24aで基準球の所定の基準点をプロービングする。この基準球のプロービング測定の結果は、駆動コントローラ28を介して測定要素測定部52に入力される。これにより、測定要素測定部52によるプローブ24aの校正が行われる(ステップS1)。なお、ここで行う校正は、プローブ24aの姿勢の校正に限らず、接触子24cの形状(直径)等の他の校正も行ってもよい。
プローブ24aの校正後、オペレータは、ワーク座標系57の設定のための被測定物9をテーブル14上にセットする。そして、オペレータは、プローブ操作部28aを操作して、既述の図4から図6で説明した空間補正、原点設定、及び基準軸設定を行う。これにより、ワーク座標系設定部45は、被測定物9のワーク座標系57を設定し、このワーク座標系57の情報を記憶部43に記憶させる(ステップS2、本発明のワーク座標系設定ステップに相当)。
ワーク座標系57の設定後、オペレータは、プローブ操作部28aを操作して、プローブ24aで被測定物9に形成されている複数の測定要素Eの中で測定対象とする測定要素E(本例では測定要素E(1)〜E(10))をプロービングする。これにより、測定要素Eのプロービング測定の結果が、駆動コントローラ28を介して要素及び課題作成部46及び法線ベクトル検出部47にそれぞれ入力される。
プロービング測定の結果の入力を受けた要素及び課題作成部46は、測定対象の測定要素Eを示す測定要素情報を作成して、この測定要素情報を法線ベクトル検出部47及びソート部49及びパートプログラム作成部50へ出力する(ステップS3)。また、要素及び課題作成部46は、オペレータからの測定の課題(測定内容)の入力を受けて課題情報を作成し、この課題情報をパートプログラム作成部50へ出力する(ステップS3)。
図12に示すように、測定要素情報及び課題情報の作成後、測定対象の測定要素Eの測定順番を決定する測定要素Eのソート処理が開始される(ステップS4)。
既述の図7で説明したように、法線ベクトル検出部47は、要素及び課題作成部46から入力された測定要素情報と、駆動コントローラ28から入力された測定要素Eのプロービング測定の結果とに基づき、測定対象の測定要素Eの法線ベクトル60を検出する(ステップS4A)。このステップS4Aは本発明の法線ベクトル検出ステップに相当する。そして、法線ベクトル検出部47は、法線ベクトル60の検出結果をグループ化部48へ出力する。
法線ベクトル検出部47から法線ベクトル60の検出結果の入力を受けたグループ化部48は、既述の図7で説明したように、法線ベクトル60の方向が同一(略同一)となる測定要素Eにより構成されるグループ(本例ではグループG1〜G3)を生成する(ステップS4B)。このステップS4Bは本発明のグループ化ステップに相当する。そして、グループ化部48は、グループ化の結果を示すグループ情報をソート部49へ出力する。
グループ化部48からグループ情報の入力を受けたソート部49は、要素及び課題作成部46から入力される測定要素情報を参照して、グループG1〜G3ごとに第1ソート処理を行う(ステップS4C)。これにより、既述の図7で説明したように、グループG1〜G3の個々のグループ内の測定要素Eの測定順番がプローブ24aの移動距離が最短となる順番にソートされる。その結果、グループG1〜G3ごとの測定時間を短縮することができる。
次いで、ソート部49は、既述の図8で説明したように、グループG1〜G3を最初に測定するグループに対して法線ベクトル60の方向が近い順にソートする第2ソート処理を行って、グループG1〜G3間の測定順番を決定する(ステップS4D)。なお、既述の通り、測定開始時(初期状態)のプローブ24aの姿勢に応じて、最初に測定するグループを決定することにより、測定時間を短縮することができる。
以上のステップS4AからステップS4Dの処理により、被測定物9の測定対象の測定要素Eの測定順番、すなわち、測定要素Eをグループごとに測定する測定順番(グループ内の測定順番、及びグループ間の測定順番を含む)が決定される。すなわち、ステップS4AからステップS4Dの処理は本発明の測定順番決定ステップに相当する。そして、ソート部49は、測定対象の測定要素Eの測定順番を示す測定順番情報を、パートプログラム作成部50へ出力する。
従来、オペレータが手動操作で行っていた測定要素Eのソート(並べ替え)を自動で行うことができるので、プローブ24aの回転回数を考慮した測定効率の高いパートプログラム37(測定プラン)の作成を自動で行うことができる。その結果、オペレータの作業を減らすことができる。
なお、被測定物9のCADデータ55が存在している場合、オペレータの操作の下、CADデータ取得部44が被測定物9のCADデータ55を取得する。これにより、オペレータは、ステップS1からS4Aまでの処理についても、三次元測定機10で被測定物9の測定を行うことなく、オフライン状態のコンピュータ32で行うことができる。その結果、パートプログラム37の作成をより効率良く行うことでき、オペレータの作業をより減らすことができる。
図11に戻って、パートプログラム作成部50は、要素及び課題作成部46から入力された測定要素情報及び課題情報と、ソート部49から入力された測定順番情報とに基づき、被測定物9を基準としたプローブ24aの測定経路(退避面)を設定する(ステップS5、本発明の測定経路設定ステップに相当)。次いで、パートプログラム作成部50は、プローブ24aの測定経路を示すパートプログラム37を作成して記憶部43に記憶させる(ステップS6)。以上でパートプログラム37の作成が完了する。
<被測定物の測定>
パートプログラム37の作成及び記憶後、被測定物9の測定対象の測定要素Eの測定が開始される。最初にオペレータは、三次元測定機10のテーブル14上に測定を行う被測定物9をセットする(ステップS7)。
次いで、オペレータは、プローブ操作部28aを操作して、既述の図9で説明したように、プローブ24aで被測定物9のZ面62上の任意の3点以上をプロービングする。そして、オペレータは、プローブ24aの姿勢を回転させることなく、プローブ24aでY面63上の任意の2点以上と、X面64上の任意の1点以上とをそれぞれプロービングする。これにより、Z面62、Y面63、及びX面のプロービング測定の結果が、駆動コントローラ28を介してワーク座標系測定部51に入力される。
ワーク座標系測定部51は、Z面62、Y面63、及びX面のプロービング測定の結果に基づき、テーブル14上の被測定物9の位置及び姿勢(すなわち、ワーク座標系57)を測定することができる(ステップS8)。このステップS8は本発明の位置姿勢測定ステップに相当する。これにより、テーブル14上での被測定物9の位置及び姿勢に関係なく、共通のパートプログラム37を使用して常に同じ条件で測定を行うことができる。ワーク座標系測定部51による被測定物9の位置及び姿勢の測定結果は、測定要素測定部52に入力される。
ワーク座標系測定部51からの位置及び姿勢の測定結果の入力を受けた測定要素測定部52は、この測定結果に基づき、記憶部43から読み出したパートプログラム37を実行して、既述の図10で説明したように被測定物9の測定対象の測定要素Eの測定を開始する(ステップS9)。
測定要素測定部52は、三次元測定機10が自動測定モードであれば、パートプログラム37に基づき駆動コントローラ28を介して第1駆動部35を駆動して、プローブ24aを、最初の測定対象グループの測定要素Eの法線ベクトル60の方向に対応した平行姿勢に回転させる回転処理を行う(ステップS10)。
一方、測定要素測定部52は、三次元測定機10が手動測定モードであれば、パートプログラム37に基づき表示制御部42を制御して、最初の測定対象グループの測定要素Eの法線ベクトル60の方向に対応した平行姿勢に関する情報を表示部38に表示させる。これにより、オペレータがプローブ操作部28aを操作して、被測定物9から退避した位置においてプローブ24aの姿勢を、平行姿勢に回転させる回転処理を行う(ステップS10)。
なお、プローブ24aの測定開始時(初期状態)の姿勢がZ軸に平行な姿勢であり、且つ最初の測定対象グループがZ面62上のグループG1である場合、前述の回転処理によるプローブ24aの回転角は0°である。すなわち、本発明の回転処理には、プローブ24aの姿勢が測定対象グループの測定要素Eの法線ベクトル60の方向に平行であった場合に、プローブ24aの姿勢を回転させないことも含まれる。
次いで、測定要素測定部52は、三次元測定機10の自動測定モード及び手動測定モードのいずれにおいても、表示制御部42を制御して、プローブ24aの校正を促す表示を表示部38に表示させる。この表示を受けて、オペレータがテーブル14上に基準球をセットした後、プローブ操作部28aを操作して、プローブ24aで基準球の所定の基準点をプロービングする。この基準球のプロービング測定の結果は、駆動コントローラ28を介して測定要素測定部52に入力される。
プロービング測定の結果の入力を受けた測定要素測定部52は、プローブ24aの姿勢を計算し、計算したプローブ24aの姿勢が前述の平行姿勢がずれていた場合には、駆動コントローラ28を介して第1駆動部35を駆動してプローブ24aの姿勢を平行姿勢に校正処理する(ステップS11)。これにより、プローブ24aの姿勢を回転させた際に回転誤差が発生したとしても、この回転誤差を校正することができるので、より測定精度を向上することができる。なお、校正処理として、プローブ24aの姿勢の校正に限らず、接触子24cの形状(直径)等の他の校正も行ってもよい。
校正処理後、測定要素測定部52は、最初の測定対象グループ内の測定要素Eを測定するグループ内測定処理を開始する。測定要素測定部52は、三次元測定機10が自動測定モードであれば、ワーク座標系測定部51からの位置及び姿勢の測定結果に基づきパートプログラム37を実行して、駆動コントローラ28を介して第1駆動部35及び第2駆動部36を駆動する。これにより、最初の測定対象グループ内の測定要素Eが、パートプログラム37で定められている測定順番及び課題に従ってプローブ24aにより自動測定される(ステップS12)。この自動測定の測定結果は、駆動コントローラ28を介して測定要素測定部52に入力される。
一方、測定要素測定部52は、三次元測定機10が手動測定モードであれば、ワーク座標系測定部51からの位置及び姿勢の測定結果とパートプログラム37とに基づき表示制御部42を制御して、最初の測定対象グループ内の測定要素Eの位置、測定順番、及び課題を示す情報を表示部38に表示させる。これにより、オペレータは、表示部38の表示内容に従ってプローブ操作部28aを操作して、プローブ24aで測定対象グループ内の測定要素Eを手動測定する(ステップS12)。この手動測定の測定結果は、駆動コントローラ28を介して測定要素測定部52に入力される。
自動測定モード及び手動測定モードのいずれにおいても、前述の第1ソート処理で定めた測定順番に従って測定対象グループ内の測定要素Eの測定を行うため、プローブ24aの移動距離を最短に抑えることができ、測定時間を短縮することができる。
以上で測定要素測定部52による最初の測定対象グループ内の測定要素Eの測定が完了する。そして、測定要素測定部52は、グループG1〜G3のうちの残りのグループについても、前述のステップS10からステップS12までの処理を繰り返し実行する(ステップS13でNO)。グループG1〜G3ごとに測定要素Eを測定する際に、前述の第2ソート処理で定めたグループの測定順番に従って測定を行うので、次のグループの測定を行う前に回転させるプローブの回転角を最小にすることができ、測定時間を短縮することができる。
ステップS13でYESの場合、被測定物9の測定対象の測定要素Eの全てが、プローブ24aによりステップS4で決定した測定順番に従ってグループG1〜G3ごとに測定される。すなわち、ステップS10からステップS12は本発明の測定要素測定ステップに相当する。以上で被測定物9の測定対象の測定要素Eの測定が完了する。
[本実施形態の効果]
以上のように本実施形態では、被測定物9の測定対象の測定要素Eを法線ベクトル60の方向ごとにグループ化して、測定要素Eの測定順番をグループごとに測定する順番に決定し、決定した測定順番に従って測定対象の測定要素Eをグループごとに測定するので、プローブ24aの回転回数を最小限に抑えることができる。
例えば、既述の図13で説明したように、プローブ24aの測定経路が最短となるように測定要素Eのソートを行った場合には、プローブ24aを4回回転させる必要があるが、既述の図10で説明したように本実施形態ではプローブ24aの回転回数を2回に減らすことができる。すなわち、プローブ24aの移動よりも時間がかかるプローブ24aの回転回数を減らすことができるため、測定効率(測定時間)を従来よりも向上させることができる。さらに、プローブ24aの回転回数を減らすことで、プローブ24aの姿勢を回転させた際の回転誤差の発生を減らすことができるので、測定精度を向上することができる。その結果、測定要素Eを測定する際の測定効率と測定精度とを向上させることができる。
また、プローブ24aの回転後(測定要素Eの測定前)にプローブ24aの校正を行うため、プローブ24aの姿勢を回転させた際の回転誤差を校正することができ、三次元測定機10の測定精度をさらに向上させることができる。
[その他]
上記実施形態では、門移動型の三次元測定機10を例に挙げて説明を行ったが、各種タイプの三次元測定機に本発明を適用可能であり、三次元測定機10で使用するプローブの種類も特に限定はされない。また、上記実施形態では、三次元測定機10と駆動コントローラ28とコンピュータ32とがそれぞれ別体であるが、三次元測定機10と、駆動コントローラ28及びコンピュータ32の少なくとも一方とが一体化されていてもよい。
上記実施形態では、ワーク座標系57の設定(パートプログラム37の作成)と、テーブル14上の被測定物9の位置及び姿勢の測定及び測定要素Eの測定と、を別々のタイミングで行っているが、テーブル14上に被測定物9をセットした際にこれらを連続して行ってもよい。
上述実施形態で説明したコンピュータ32として機能させるための測定プログラム(ソフトウエアプログラム32a)を光ディスク、磁気ディスク、又はその他のコンピュータ可読媒体(有体物たる非一時的な情報記憶媒体)に記録し、これらを通じて測定プログラムを提供することが可能である。このような情報記憶媒体に測定プログラムを記憶させて提供する態様に代えて、インターネットなどの通信ネットワークを利用して測定プログラム信号をダウンロードサービスとして提供することも可能である。