(57)【特許請求の範囲】
【請求項１】
測定物の表面にＸ座標とＹ座標の定まった多数の格子点を設定する格子点設定手段と、各格子点での前記測定物の表面のＺ座標を検出するＺ座標検出手段と、前記測定物の表面を各格子点を頂点とする三角形の面とした多面体の表面で近似する多面体近似手段と、前記測定物表面上の２点を結ぶ線分を前記多面体の表面に投影し、前記線分の長さを前記多面体の各面に投影された部分の部分長の合計から算出する長さ測定手段とを備え、
前記長さ測定手段は、前記線分を前記多面体の表面に投影した平面図において、前記線分が通る三角形を選択する三角形選択手段と、前記線分と選択された三角形の位置関係を分類する位置関係分類手段と、前記線分と選択された三角形の位置関係に応じて前記線分の選択された三角形内部の部分平面長を算出する部分平面長算出手段と、選択された三角形の頂点のＺ座標に応じて前記部分平面長を補正して、前記線分の前記多面体の各面に投影された部分の部分長を算出する長さ補正手段と、前記部分長を合計する全長算出手段とを備えることを特徴とする二次元座標測定機。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、種々の製品の寸法形状が設計図面と一致しているかどうかの検査に用いられる二次元座標測定機に関し、さらに詳細には、測定テーブルの平面度に完全でない場合でも測定物表面の２点間の正確な長さを測定できるようにした二次元座標測定機に関する。
【背景技術】
【０００２】
従来の二次元座標測定機は、図１２に示したように、測定物を載置する測定テーブル２１と、測定テーブル２１と平行な面内に位置するＸ軸に平行に配置されるとともにＹ軸方向に移動できるＸ軸フレーム１４と、Ｘ軸フレーム１４に沿って移動可能なＣＣＤカメラ１８とを備え、ＣＣＤカメラ１８を測定テーブル２１上の任意の点へ移動させ、ＣＣＤカメラ１８で得られた画像に基づいて測定物表面の各点の座標や、測定物表面の２点間の長さを測定していた（下記特許文献１参照）。
【０００３】
このような二次元座標測定機では、測定物を測定テーブル２１上に真空吸着して測定しているが、測定テーブル２１が完全な平面でない場合には、測定物が測定テーブル２１に従って変形する。すると、測定物表面が所定の平面に対して傾斜していることにより発生するコサイン誤差と、測定物が撓むことによって測定物表面に生じる圧縮又は引張に起因する圧縮引張誤差とを生じる。
【０００４】
近年、二次元座標測定機の高精度化に伴い、測定テーブルが完全な平面でないため、測定物が変形した場合でも、測定物表面上の２点間の長さを正確に求めることが要求されるようになってきた。このような要求に対して、下記特許文献２に開示されたようなものが知られている。
【０００５】
この二次元座標測定機は、図１３に示したように、測定物２０をＣＣＤカメラ１０で撮像して、得られた撮像データをインターフェース７を介してＣＰＵ３に入力している。そして、ＣＰＵ３では、ＣＣＤカメラ１０による撮像データを基に、測定物表面のＺ座標（高さ）データをマトリックス状に取得し、このＺ座標データに基づいてコサイン誤差補正テーブルと圧縮引張誤差補正テーブルを作成し、両補正テーブルを用いてコサイン誤差補正と圧縮引張誤差補正を行い、測定物表面上の２点間の正確な長さを求める技術を開示している。
【特許文献１】特許第２８８９０８３号公報
【特許文献２】特開２００１−２９６１１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記特許文献２に開示された二次元座標測定機では、測定物表面のＺ座標データをマトリックス状に取得し、このＺ座標データに基づいてコサイン誤差補正テーブルと圧縮引張誤差補正テーブルを作成する必要があるが、両補正テーブルを作成するには、複雑で膨大な計算が必要で、正確な長さを算出するまでに時間がかかるという問題があった。
【０００７】
本発明は、前記問題に鑑みてなされたもので、二次元座標測定機において、測定テーブルが完全な平面でないために測定物が変形した場合でも、測定物表面上の２点間の正確な長さを簡単な計算で迅速に測定ができるようにすることを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、請求項１に係る発明の二次元座標測定機では、
測定物の表面にＸ座標とＹ座標の定まった多数の格子点を設定する格子点設定手段と、各格子点での前記測定物の表面のＺ座標を検出するＺ座標検出手段と、前記測定物の表面を各格子点を頂点とする三角形の面とした多面体の表面で近似する多面体近似手段と、前記測定物表面上の２点を結ぶ線分を前記多面体の表面に投影し、前記線分の長さを前記多面体の各面に投影された部分の部分長の合計から算出する長さ測定手段とを備え、
前記長さ測定手段は、前記線分を前記多面体の表面に投影した平面図において、前記線分が通る三角形を選択する三角形選択手段と、前記線分と選択された三角形の位置関係を分類する位置関係分類手段と、前記線分と選択された三角形の位置関係に応じて前記線分の選択された三角形内部の部分平面長を算出する部分平面長算出手段と、選択された三角形の頂点のＺ座標に応じて前記部分平面長を補正して、前記線分の前記多面体の各面に投影された部分の部分長を算出する長さ補正手段と、前記部分長を合計する全長算出手段とを備える。
【０００９】
【発明の効果】
【００１０】
請求項１に係る発明によれば、測定物表面を三角形の面からなる多面体の表面で近似し、測定物表面上の２点を結ぶ線分の長さを前記多面体の各面に投影された線分の部分長の合計から算出するから、測定物が変形してその表面が完全な平面でない場合でも、測定物表面の２点を結ぶ線分の正確な長さを簡単な計算によって迅速に算出できる。
【００１１】
また、前記長さ測定手段は、前記線分を前記多面体の表面に投影した平面図において、前記線分が通る三角形を選択する三角形選択手段と、前記線分と選択された三角形の位置関係を分類する位置関係分類手段と、前記線分と選択された三角形の位置関係に応じて前記線分の選択された三角形内部の部分平面長を算出する部分平面長算出手段と、選択された三角形の頂点のＺ座標に応じて前記部分平面長を補正して、前記線分の前記多面体の各面に投影された部分の部分長を算出する長さ補正手段と、前記部分長を合計する全長算出手段とを備えたから、測定物表面の２点を結ぶ線分の正確な長さを特に簡単な計算によって迅速に算出できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例について添附図面を参照して詳細に説明する。図１は、測定テーブル上に置かれた測定物の平面図である。図２は、図１におけるII−II線に沿う断面図である。図３及び図４は、本実施例を説明するために必要な数学的予備知識を説明する図である。図５〜図７は、測定物表面に設定された線分の正確な長さを測定する手順を説明するフローチャートである。図８は、線分と三角形の位置関係を分類した図である。図９は、線分の選択された三角形内部の部分平面長の算出方法を説明する図である。図１０は、三角形内に位置する点のＺ座標を算出する方法を説明する図である。図１１は、三角形の１辺と線分の交点のＺ座標を算出する方法を説明する図である。
【００１３】
本実施例の二次元座標測定機は、図１２に示した従来のものと同じく、測定テーブル上の任意の点へ移動させることができるＣＣＤカメラを備え、ＣＣＤカメラの脇にはレーザ変位計を備えている。そして、ＣＣＤカメラを移動させて、図１及び図２に示したように、測定物３０表面の任意のＸ座標及びＹ座標の点のＺ座標（高さ）をレーザ変位計により測定できるようになっている。また、この二次元座標測定機は、後述するように、測定物３０表面が完全な平面でない場合でも、測定物３０表面の２点間を結んで設定された線分３２の正確な長さを算出するためのプログラムを内蔵している。この二次元座標測定機は、これ以外は従来の二次元座標測定機と同じである。
【００１４】
前記プログラムを説明する前に、予備知識として、任意の点Ｐが与えられた直線のどちら側にあるか、任意の点Ｐが与えられた三角形ＡＢＣの内部にあるか否か、任意の２点Ｃ、Ｄを結ぶ線分ＣＤが、任意の２点Ａ、Ｂを通る直線と交差するか否かを判断する方法を説明する。
【００１５】
ＸＹ平面内において、２点Ａ（Ｘ１，Ｙ１）、Ｂ（Ｘ２，Ｙ２）を通る直線の式は、次式で表される。
【００１６】
（Ｙ１−Ｙ２）Ｘ−（Ｘ１−Ｘ２）Ｙ＋Ｘ１Ｙ２−Ｘ２Ｙ１＝０          （１）
【００１７】
この（１）式の左辺に、任意の点Ｐの座標（Ｘｐ，Ｙｐ）を代入したとき、その正負により、その点が直線のどちら側にあるか判断できる。もちろん、その値が０のときは、その点は直線上にある。
【００１８】
さて、図３に示したように、三角形ＡＢＣの各頂点の座標を（Ｘａ，Ｙａ）、（Ｘｂ，Ｙｂ）、（Ｘｃ，Ｙｃ）としたとき、座標が（Ｘｐ，Ｙｐ）である点Ｐが三角形ＡＢＣの内部にあるか否か調べる方法について、次に説明する。
【００１９】
２点Ａ、Ｂを通る直線ＡＢの式（１）の左辺に、頂点Ｃと点Ｐの座標を代入して、その値を求める。その値の符号が同じであれば、頂点Ｃと点Ｐは直線ＡＢに対して同じ側にあり、その値の符号が異なれば、頂点Ｃと点Ｐは直線ＡＢに対して同じ側になく、すなわち互いに反対側にあることが分かる。同様に、点Ｂと点Ｐは２点Ａ、Ｃを通る直線ＡＣに対して同じ側にあるか否か、点Ａと点Ｐは２点Ｂ、Ｃを通る直線ＢＣに対して同じ側にあるか否かを調べる。そして、いずれの場合でも、頂点Ａ、Ｂ、Ｃと点Ｐとが、各辺を延長した直線ＢＣ，ＡＣ，ＡＢに対して、それぞれ同じ側にあれば、点Ｐが三角形ＡＢＣの内部にあると判断することができる。
【００２０】
また、図４に示したように、２点Ａ、Ｂを通る直線ＡＢと２点Ｃ、Ｄを結ぶ線分ＣＤに関して、直線ＡＢの式（１）の左辺に、点Ｃと点Ｄの座標を代入して、その値の符号が異なれば、点Ｃと点Ｄは直線ＡＢに対して互いに反対側あり、線分ＣＤと直線ＡＢが交差することが分かる。
【００２１】
以上の予備知識を前提にして、この二次元座標測定機で、測定物３０表面に設定された線分３２の正確な長さを測定する手順を図５〜図９に基づいて説明する。
【００２２】
測定開始すると、図５に示したようにステップＳ１に進み、図１に示したように、測定物３０表面に等間隔にＸ座標及びＹ座標が定まった基準マトリックス状の多数の格子点３４を設定する。次に、ステップＳ２に進み、ＣＣＤカメラを各格子点３４上に移動させて、レーザ変位計で各格子点３４のＺ座標（高さ）を測定する。そして、Ｘ座標、Ｙ座標及びＺ座標からなる各格子点３４の位置データを記憶する。次に、ステップＳ３に進み、前記位置データを用いて、測定物３０表面を隣接する格子点３４どうしを結んだ線分３６を辺とした三角形３８で分割して、測定物３０表面を三角形３８の面を有する多面体表面で近似する。さらに、線分３２の各三角形３８内部分の部分長の計算結果を記憶するための補正テーブルを作成する。
【００２３】
次に、ステップＳ４に進み、長さ測定をしようとする線分３２を、測定物３０の表面を前記多面体の表面で近似した表面上に投影した平面図において、投影された線分３２が通る三角形３８を選択する。このステップＳ４の詳細を図６に基づいて説明する。
【００２４】
まず、ステップＳ４１に進み、多面体表面の平面図だけを考え、線分３２を両側に延長した直線３２’が通る三角形３８を選択する。これには、直線３２’の式（１）の左辺に注目した三角形３８の３つの頂点の座標（Ｘ座標、Ｙ座標）をそれぞれ代入して、その値を計算する。そして、その値の符号が３つとも同じ場合は、３つの頂点とも直線３２’に対して同じ側にあり、明らかに直線３２’が当該三角形３８を通らないことが分かるので、当該三角形３８を不選択とする。一方、その値の符号が３つとも同じでない場合は、直線３２’が当該三角形３８を通る可能性があるので、ステップＳ４２に進む。
【００２５】
ステップＳ４２に進むと、線分３２上に注目した三角形３８の１つの頂点が存在するか否か調べる。１つの頂点が線分３２上にある場合は、ステップＳ４３に進み、１つの頂点も線分３２上にない場合は、ステップＳ４５に進む。
【００２６】
ステップＳ４２からステップＳ４３に進むと、注目した三角形３８の２つの頂点が線分３２上にあるか否か調べる。２つの頂点が線分３２上にある場合は、図８の（Ｅ）又は（Ｉ）に示したように線分３２が当該三角形を通るので、当該三角形３８を選択する。２つの頂点が線分３２上にない場合は、ステップＳ４４に進んで、線分３２上にない２つの頂点を結ぶ辺ｍ（図８の（Ｂ）、（Ｄ）、（Ｆ）、（Ｈ）、（Ｊ）参照）が直線３２’と交差するか否かを調べる。線分３２と辺ｍが交差する場合は、図８の（Ｂ）、（Ｄ）、（Ｆ）、（Ｈ）、（Ｊ）に示したように、線分３２が三角形３８上を通ることが分かるので、当該三角形３８を選択する。それらが交差しない場合は、当該三角形３８を非選択とする。なお、辺ｍと直線３２’が平行な場合（図８の（Ｄ）の特別な場合）は、当該三角形３８は非選択とされるが、このときの線分３２の部分長は０であるから問題ない。
【００２７】
ステップＳ４２からステップＳ４５に進むと、注目した三角形３８の１辺を延長した直線ｍ’（図８の（Ａ）、（Ｃ）、（Ｇ）参照）の式を求める。そして、ステップＳ４６に進んで、線分３２の両端が直線ｍ’に対して互いに反対側にあるかどうか調べる。線分３２の両端が直線ｍ’して互いに反対側にあれば、図８の（Ｃ）又は（Ｇ）に示したように、線分３２が三角形３８を通ることが分かるので、当該三角形３８を選択する。線分３２の両端が直線ｍ’に対して互いに反対側になければ、ステップＳ４７に進む。
【００２８】
ステップＳ４７に進むと、線分３２の少なくとも一端が三角形３８内にあるか否か調べる。線分３２の一端が三角形３８内にあると、図８の（Ａ）に示したように、線分３２が三角形３８を通ることが分かるので、当該三角形３８を選択する。線分３２の両端とも三角形３８内にない場合は、線分３２が三角形３８を通らないことがわかるので、当該三角形３８を非選択とする。こうして、線分３２が通る三角形３８を選択する。
【００２９】
ステップＳ４に続いて、ステップＳ５に進むと、当該三角形３８と線分３２との位置関係を、図８の（Ａ）〜（Ｇ）に示したように７つに分類する。このステップＳ５の詳細を図７に基づいて説明する。なお、図８の（Ｈ）〜（Ｊ）は、紛らわしいが、図示したように分類する。
【００３０】
ステップＳ５では、まず、ステップＳ５１に進んで、線分３２の一端が当該三角形３８の内部にあるかどうか調べる。線分３２の少なくとも一端が当該三角形３８の内部にあれば、ステップＳ５２に進み、線分３２の両端とも三角形３８の内部になければ、ステップＳ５４に進む。
【００３１】
ステップＳ５２に進むと、線分３２の両端とも三角形３８の内部にあるかどうか調べる。図８の（Ａ）に示したように、線分３２の両端とも三角形３８の内部にあれば、「２点内点」に分類する。線分３２の他端が三角形３８の内部になければ、ステップＳ５３に進む。
【００３２】
ステップＳ５３に進むと、三角形３８の１つの頂点が線分３２上にあるか否か調べる。三角形３８の1つの頂点が線分３２上にあれば、図８の（Ｂ）又は（Ｈ）に示したように、線分３２の一端が三角形内で、三角形３８の１つの頂点が線分３２上に位置するので、「１点内点＋１点頂点」に分類する。三角形３８の頂点が線分３２上になければ、図８の（Ｃ）に示したように、線分３２の一端が三角形３８内で、三角形３８の辺と線分３２が交差するので、「１点内点＋１点交点」に分類する。
【００３３】
ステップＳ５１からステップＳ５４に進むと、三角形３８の少なくとも１つの頂点が線分３２上にあるか否か調べる。三角形３８のいずれの頂点も線分３２上になければ、図８の（Ｇ）に示したように、線分３２と三角形３８が２点で交差するので、「２点交点」に分類する。三角形３８の１つの頂点が線分３２上にあれば、ステップＳ５５に進み、三角形３８の２つの頂点が線分３２上に存在するか否かを調べる。
【００３４】
ステップＳ５５で、三角形３８の２つの頂点が線分３２上にあれば、図８の（Ｅ）又は（Ｉ）に示したように、三角形２頂点が線分上に存在するので、「２点頂点」に分類する。線分３２上に三角形３８の２つの頂点がなければ、ステップＳ５６に進む。
【００３５】
ステップＳ５６に進むと、線分３２上に存在しない２つの頂点が直線３２’の同じ側にあるか否か調べる。２つの頂点が直線３２’の同じ側にあれば、図８の（Ｄ）又は（Ｊ）に示したように、三角形３８の１頂点が線分３２上に位置するので、「１点頂点」に分類する。２つの頂点が直線３２’の同じ側になければ、図８の（Ｆ）に示したように、三角形３８の１頂点が線分３２上で、線分３２と三角形３８の１辺が交差するので、「１点頂点＋１点交点」に分類する。
【００３６】
こうして、線分３２と三角形３８の位置関係を分類した後、ステップＳ６に進んで、その分類に応じて、図９に示したようにして、線分３２の三角形３８内部分の部分平面長を算出する。
【００３７】
次に、ステップＳ７に進んで、線分３２の三角形３８内部分の両端のＺ座標（高さ）を考慮して、前述した部分平面長を補正して、線分３２の三角形３８内部分の部分長を算出する。三角形３８の各頂点のＺ座標は、ステップＳ２で既に求まっていて、図１０に示したように、それぞれ、Ｚａ、Ｚｂ、Ｚｃとする。この二次元座標測定機により三角形３８内の点Ｐの座標が測定されると、点Ｐと三角形３８の各頂点間の距離ａ、ｂ、ｃも求まる。これで、点ＰのＺ座標Ｚｐは、次式から求まる。
【００３８】
Ｚｐ＝｛Ｚａ（ｂ+ｃ）＋Ｚｂ（ａ＋ｃ）＋Ｚｃ（ａ＋ｂ）｝／｛２（ａ＋ｂ＋ｃ）｝                                                          （２）
【００３９】
図１１に示したように、線分３２が三角形３８の１辺と交差する場合の交点ＱのＺ座標Ｚｑは、当該辺両端の頂点のＺ座標をそれぞれＺｇ、Ｚｈとし、交点Ｐが当該辺をｇ：ｈに内分している場合、次式から求まる。
【００４０】
Ｚｐ＝（Ｚｇ・ｈ＋Ｚｈ・ｇ）／（ｇ＋ｈ）                （３）
【００４１】
（２）式と（３）式を用いると、線分３２の三角形３８内部分の両端が三角形３８の頂点にない場合でも、その両端のＺ座標を算出できる。こうして、線分３２の三角形３８内部分の両端の座標がそれぞれ（Ｘ１，Ｙ１，Ｚ１）、（Ｘ2，Ｙ2，Ｚ2）と求まると、線分３２の三角形３８内部分の部分長Ｌは、正確に次式で求まる。
【００４２】
Ｌ＝√｛（Ｘ１−Ｘ２）２＋（Ｙ１−Ｙ２）２＋（Ｚ１−Ｚ２）２｝    （４）
【００４３】
次に、ステップＳ８に進んで、線分３２の各三角形３８内部分の部分長Ｌを、線分３２が通る全三角形について合計して、線分３２の全長を算出する。これで、測定物３０表面に設定された線分３２の正確な長さが得られる。この際、マトリクス状の格子点３４の間隔を小さくすれば、さらに精度を上げることができる。
【００４４】
本実施例によれば、測定テーブルが完全な平面でなくて、測定物３０が変形して、その表面が完全な平面にならない場合でも、簡単な計算によって測定物３０表面に設定された線分３２の正確な長さを簡単な計算で迅速に算出できる。
【００４５】
ところで、本発明は、前記実施例に限るものではなく、種々の変形が可能である。たとえば、前記実施例では等間隔に格子点３４を設定したが、格子点３４は必ずしも等間隔に設定する必要はない。一例を挙げれば、最初に等間隔に設定した格子点３４に関する位置データから、各格子点３４付近の曲率を概算して、測定物３０表面の曲率が小さいところでは適当に格子点３４を間引いて、格子点３４は、測定物３０表面の曲率が大きいところでは密に、測定物３０表面の曲率が小さいところでは疎らに設定してもよい。また、線分３２の三角形３８内部分の部分長を求める方法は、前記実施例の方法に限るものではなく、前記実施例の方法以外の適宜方法で算出してもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明の二次元座標測定機の測定テーブル上に置かれた測定物の平面図である。
【図２】図１におけるII−II線に沿う断面図である。
【図３】任意の点が三角形内にあるか否かを調べる方法を説明する図である。
【図４】直線と線分か交差するか否かを調べる方法を説明する図である。
【図５】前記測定物表面に設定された線分の長さを求める手順を説明するフローチャートである。
【図６】図５におけるステップＳ４の詳細を説明する図である。
【図７】図５におけるステップＳ５の詳細を説明する図である。
【図８】線分と三角形の位置関係を分類した図である。
【図９】線分の三角形内部分の部分平面長の算出方法を説明する図である。
【図１０】三角形内の任意の点のＺ座標を算出する方法を説明する図である。
【図１１】三角形の１辺と線分の交点のＺ座標を算出する方法を説明する図である。
【図１２】従来の二次元座標測定機の斜視図である。
【図１３】従来の二次元座標測定機のブロック図である。
【符号の説明】
【００４７】
３０    測定物
３２    線分
３２’  線分を延長した直線
３４    格子点
３６    辺
３８    三角形
【図１】
0005276297.tif 000002
【図２】
0005276297.tif 000003
【図３】
0005276297.tif 000004
【図４】
0005276297.tif 000005
【図５】
0005276297.tif 000006
【図６】
0005276297.tif 000007
【図７】
0005276297.tif 000008
【図８】
0005276297.tif 000009
【図９】
0005276297.tif 000010
【図１０】
0005276297.tif 000011
【図１１】
0005276297.tif 000012
【図１２】
0005276297.tif 000013
【図１３】
0005276297.tif 000014