特開2017-161485(P2017-161485A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 中央発條株式会社の特許一覧

特開2017-161485渦巻きばねの形状を測定する装置、方法、及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2017-161485(P2017-161485A)
(43)【公開日】2017年9月14日
(54)【発明の名称】渦巻きばねの形状を測定する装置、方法、及びプログラム
(51)【国際特許分類】
   G01B 11/24 20060101AFI20170818BHJP
【FI】
   G01B11/24 K
【審査請求】未請求
【請求項の数】13
【出願形態】OL
【全頁数】32
(21)【出願番号】特願2016-48994(P2016-48994)
(22)【出願日】2016年3月11日
(71)【出願人】
【識別番号】000210986
【氏名又は名称】中央発條株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】特許業務法人快友国際特許事務所
(72)【発明者】
【氏名】竹内 英世
【テーマコード(参考)】
2F065
【Fターム(参考)】
2F065AA01
2F065AA03
2F065AA06
2F065AA12
2F065AA21
2F065AA27
2F065AA30
2F065AA31
2F065BB05
2F065FF04
2F065JJ19
2F065JJ26
2F065QQ06
2F065QQ08
2F065QQ17
2F065QQ23
2F065QQ24
2F065QQ25
2F065QQ31
2F065RR03
2F065RR08
2F065TT03
(57)【要約】      (修正有)
【課題】渦巻きばねの品質検査を適切に行うために、渦巻きばねの形状を適切に測定する装置を提供する。
【解決手段】形状測定装置10は、渦巻状に成形された渦巻きばね30の形状を測定する。形状測定装置10は、入力手段16と、関数算出手段22と、を備える。入力手段は、渦巻きばね30を撮影した撮影画像又は渦巻きばねの形状を測定した測定データを入力する。関数算出手段は、入力された撮影画像又は測定データを用いて、渦巻きばねの隣り合う素線間の隙間を表す線間隙間関数、渦巻きばねの隣り合う素線の芯線間の距離を表すピッチ関数、又は渦巻きばねの素線の厚みを表す素線厚み関数の少なくとも1つを算出する。
【選択図】図1
【特許請求の範囲】
【請求項1】
渦巻状に成形された渦巻きばねの形状を測定する形状測定装置であり、
渦巻きばねを撮影した撮影画像又は渦巻きばねの形状を測定した測定データを入力する入力手段と、
入力された撮影画像又は測定データを用いて、渦巻きばねの隣り合う素線間の隙間を表す線間隙間関数、渦巻きばねの隣り合う素線の芯線間の距離を表すピッチ関数、又は渦巻きばねの素線の厚みを表す素線厚み関数の少なくとも1つを算出する関数算出手段と、
を備える形状測定装置。
【請求項2】
予め定められた基準関数又は基準パラメータの少なくとも1つを記憶する記憶手段と、
関数算出手段で算出された線間隙間関数、ピッチ関数、又は素線厚み関数の少なくとも1つと、記憶手段に記憶されている基準関数又は基準パラメータの少なくとも1つを用いて、測定対象となる渦巻きばねの形状を定量的に評価する評価手段又は測定対象となる渦巻きばねの良否を判定する判定手段の少なくとも一方の手段と、をさらに備えている、請求項1に記載の形状測定装置。
【請求項3】
入力された撮影画像又は測定データを極座標変換した極座標画像を作成する画像変換手段をさらに備えており、
関数算出手段は、極座標画像の素線と背景との境界をトレースすることにより線間隙間関数又は素線厚み関数の少なくとも1つを算出する、請求項1又は2に記載の形状測定装置。
【請求項4】
関数算出手段は、極座標画像の素線の外側の境界をトレースすることにより外側エッジ関数e(θ)を算出し、極座標画像の素線の内側の境界をトレースすることにより内側エッジ関数e(θ)を算出し、外側エッジ関数e(θ)と内側エッジ関数e(θ)との差に基づいて、線間隙間関数又は素線厚み関数の少なくとも1つを算出する、請求項3に記載の形状測定装置。
【請求項5】
関数算出手段は、極座標画像の素線の外側の境界と内側の境界が接触している場合は、当該接触箇所でトレースを終了する、請求項3又は4に記載の形状測定装置。
【請求項6】
入力された撮影画像又は測定データを芯線化した芯線化画像を作成する画像変換手段をさらに備えており、
関数算出手段は、隣り合う芯線間の距離に基づいて線間隙間関数又はピッチ関数の少なくとも1つを算出する、請求項1又は2に記載の形状測定装置。
【請求項7】
芯線は、芯線化画像の画素の座標値群によって表され、
関数算出手段は、第1芯線と、第1芯線とその外周側で隣り合う第2芯線間との距離を、第1芯線を構成する座標値群に含まれる第1座標値と、第2芯線を構成する座標値群のうち、少なくとも前記第1座標値に最も近い第2座標値とを用いて算出する、請求項6に記載の形状測定装置。
【請求項8】
入力された撮影画像又は測定データから極座標変換は行わずに輪郭線を抽出した輪郭線画像を作成する画像変換手段をさらに備えており、
関数算出手段は、輪郭線画像の輪郭線を、素線の外周側の外側輪郭線と内周側の内側輪郭線とに分離し、隣り合う外側輪郭線と内側輪郭線との距離に基づいて線間隙間関数又は素線厚み関数の少なくとも1つを算出する、請求項1又は2に記載の形状測定装置。
【請求項9】
素線の外側輪郭線及び内側輪郭線のそれぞれは、輪郭線画像の画素の座標値群によって表され、
関数算出手段は、外側輪郭線と、当該外側輪郭線とその外周側で隣り合う内側輪郭線との距離を、当該外側輪郭線を構成する座標値群に含まれる第3座標値と、当該内側輪郭線を構成する座標値群のうち、少なくとも前記第3座標値に最も近い第4座標値とを用いて算出し、当該距離に基づいて線間隙間関数を算出する、請求項8に記載の形状測定装置。
【請求項10】
素線の外側輪郭線及び内側輪郭線のそれぞれは、輪郭線画像の画素の座標値群によって表され、
関数算出手段は、内側輪郭線と、当該内側輪郭線とその外周側で隣り合う外側輪郭線との距離を、当該内側輪郭線を構成する座標値群に含まれる第5座標値と、当該外側輪郭線を構成する座標値群のうち、少なくとも前記第5座標値に最も近い第6座標値とを用いて算出し、当該距離に基づいて素線厚み関数を算出する、請求項8又は9に記載の形状測定装置。
【請求項11】
記憶手段は、線間隙間の下限値を表す下限閾値関数又は線間隙間の上限値を表す上限閾値関数の少なくとも一方を記憶しており、
判定手段は、線間隙間関数が下限閾値関数を下回る場合又は上限閾値関数を上回る場合に不良と判定する、請求項2〜10のいずれか一項に記載の形状測定装置。
【請求項12】
渦巻状に成形された渦巻きばねの形状を測定する形状測定方法であり、コンピュータに下記の処理、即ち、
渦巻きばねを撮影した撮影画像又は渦巻きばねの形状を測定した測定データを取得する処理と、
取得された撮影画像又は測定データを用いて、渦巻きばねの隣り合う素線間の隙間を表す線間隙間関数、渦巻きばねの隣り合う素線の芯線間の距離を表すピッチ関数、又は渦巻きばねの素線の厚みを表す素線厚み関数の少なくとも1つを算出する関数算出処理と、
を実行させる形状測定方法。
【請求項13】
渦巻状に成形された渦巻きばねの形状を測定するためのプログラムであり、コンピュータに下記の処理、即ち、
渦巻きばねを撮影した撮影画像又は渦巻きばねの形状を測定した測定データを取得する処理と、
取得された撮影画像又は測定データを用いて、渦巻きばねの隣り合う素線間の隙間を表す線間隙間関数、渦巻きばねの隣り合う素線の芯線間の距離を表すピッチ関数、又は渦巻きばねの素線の厚みを表す素線厚み関数の少なくとも1つを算出する関数算出処理と、
を実行させるプログラム。


【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示の技術は、渦巻きばねの形状を測定する装置、方法、及びプログラムに関する。ここでいう渦巻きばねとは、平面視したときに、内周側の先端(内フック)から外周側の先端(外フック)まで渦巻状に成形されたばねを意味する。
【背景技術】
【0002】
渦巻きばね等の工業製品の品質検査工程では、製品の形状と設計図面に規定された形状との異同を調べ、製品が設計図面のとおりに成形されているか否かが検査される。設計図面に規定された形状とのずれが許容誤差の製品は良品と判定され、設計図面に規定された形状とのずれが許容誤差を超える製品は不良品として廃棄される。渦巻きばねの品質検査工程では、渦巻きばねの特定の部位の形状(例えば、内フック長さ、外フック長さ、内径、フリー角度)を測定し、これら特定の部位の形状と設計図面に規定された形状との異同を検査する(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−257950号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような検査方法では、実際には要求性能を満たさない渦巻きばねであっても良品と判定されてしまう可能性がある。即ち、渦巻きばねの素線が変形するなどして要求性能を満たさない場合であっても、特定の部位の形状が良品の判定基準を満たしていれば良品と判定されてしまうという問題がある。本明細書は、渦巻きばねの品質検査を適切に行うために、渦巻きばねの形状を適切に測定できる技術を開示する。
【課題を解決するための手段】
【0005】
本明細書は、渦巻状に成形された渦巻きばねの形状を測定する形状測定装置を開示する。この形状測定装置は、入力手段と、関数算出手段と、を備える。入力手段は、渦巻きばねを撮影した撮影画像又は渦巻きばねの形状を測定した測定データを入力する。関数算出手段は、入力された撮影画像又は測定データを用いて、渦巻きばねの隣り合う素線間の隙間を表す線間隙間関数、渦巻きばねの隣り合う素線の芯線間の距離を表すピッチ関数、又は渦巻きばねの素線の厚みを表す素線厚み関数の少なくとも1つを算出する。
【0006】
この形状測定装置では、関数算出手段が、線間隙間関数、ピッチ関数、又は素線厚み関数の少なくとも1つを算出する。これにより、従来では検査されていなかった、渦巻きばねの隣り合う素線間の隙間、渦巻きばねの隣り合う素線の芯線間の距離、又は渦巻きばねの素線の厚みの少なくとも1つを検査することが可能になる。このため、渦巻きばねの形状を適切に測定でき、結果として渦巻きばねの品質検査を適切に行うことが可能となる。
【0007】
また、本明細書は、渦巻状に成形された渦巻きばねの形状を測定する新規の形状測定方法を開示する。この形状測定方法は、コンピュータに、取得処理と、関数算出処理と、を実行させる。取得処理では、渦巻きばねを撮影した撮影画像又は渦巻きばねの形状を測定した測定データを取得する。関数算出処理では、取得された撮影画像又は測定データを用いて、渦巻きばねの隣り合う素線間の隙間を表す線間隙間関数、渦巻きばねの隣り合う素線の芯線間の距離を表すピッチ関数、又は渦巻きばねの素線の厚みを表す素線厚み関数の少なくとも1つが算出される。
この形状測定方法によると、渦巻きばねの形状を適切に測定でき、結果として渦巻きばねの品質検査を適切に行うことが可能となる。
【0008】
さらに、本明細書は、渦巻状に成形された渦巻きばねの形状を測定するための新規のプログラムを開示する。このプログラムは、コンピュータに、取得処理と、関数算出処理と、を実行させる。取得処理では、渦巻きばねを撮影した撮影画像又は渦巻きばねの形状を測定した測定データを取得する。関数算出処理では、取得された撮影画像又は測定データを用いて、渦巻きばねの隣り合う素線間の隙間を表す線間隙間関数、渦巻きばねの隣り合う素線の芯線間の距離を表すピッチ関数、又は渦巻きばねの素線の厚みを表す素線厚み関数の少なくとも1つが算出される。
このプログラムによると、コンピュータを用いて渦巻きばねの形状を適切に測定でき、結果として渦巻きばねの品質検査を適切に行うことが可能となる。
【図面の簡単な説明】
【0009】
図1】実施例1の形状測定装置の構成を示す図。
図2A】実施例1の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート(その1)。
図2B】実施例1の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート(その2)。
図2C】実施例1の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート(その3)。
図2D】実施例1の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート(その4)。
図3】渦巻きばねの撮影画像を示す図(第1タイプ)。
図4】第1タイプの渦巻きばねの極座標画像を示す図。
図5】線間隙間関数を表したグラフ。
図6】線間隙間関数、下限閾値関数、及び上限閾値関数を表したグラフ。
図7】隣り合う素線同士が接触している第1タイプの渦巻きばねの撮影画像を示す図。
図8図7の渦巻きばねの極座標画像を示す図。
図9】渦巻きばねの撮影画像を示す図(第2タイプ)。
図10】第2タイプの渦巻きばねの極座標画像を示す図。
図11】実施例1の変形例1の良否判定方法を説明するグラフ。
図12】実施例1の変形例5の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート。
図13】実施例1の変形例5のレーザ変位計を示す図。
図14】渦巻きばねの断面データを示す図。
図15図14の断面データから構成された渦巻きばねの3次元データを示す図。
図16図15の3次元データの極座標データを示す図。
図17図16の極座標データのθ=60°における断面を表したグラフ。
図18】実施例2の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート。
図19】第2タイプの渦巻きばねの芯線化画像を示す図。
図20】芯線系列の法線ベクトルを示す図。
図21】隣り合う素線の芯線間距離の算出方法を示す図。
図22】実施例3の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート。
図23】第2タイプの渦巻きばねの輪郭線画像を示す図。
図24】外側輪郭線の座標値群と内側輪郭線の座標値群を示す図。
図25】輪郭線系列の法線ベクトルを示す図。
図26】実施例3の変形例1の形状測定装置による渦巻きばねの形状測定の流れを示すフローチャート。
図27】素線厚みが異なる渦巻きばねの撮影画像を示す図。
図28図27の渦巻きばねの輪郭線画像を示す図。
図29】外側輪郭線の座標値群と内側輪郭線の座標値群を示す図。
図30】輪郭線系列の中間点の内側次点から始点までの法線ベクトルを示す図。
図31】輪郭線系列の中間点の外側次点から終点までの法線ベクトルを示す図。
【発明を実施するための形態】
【0010】
以下、本明細書で開示する実施例の技術的特徴の幾つかを記す。なお、以下に記す事項は、各々単独で技術的な有用性を有している。
【0011】
(特徴1)本明細書が開示する形状測定装置は、記憶手段と、評価手段又は判定手段の少なくとも一方の手段と、をさらに備えていてもよい。記憶手段は、予め定められた基準関数又は基準パラメータの少なくとも1つを記憶してもよい。評価手段は、関数算出手段で算出された線間隙間関数、ピッチ関数、又は素線厚み関数の少なくとも1つと、記憶手段に記憶されている基準関数又は基準パラメータの少なくとも1つを用いて、測定対象となる渦巻きばねの形状を定量的に評価してもよい。判定手段は、関数算出手段で算出された線間隙間関数、ピッチ関数、又は素線厚み関数の少なくとも1つと、記憶手段に記憶されている基準関数又は基準パラメータの少なくとも1つを用いて、測定対象となる渦巻きばねの良否を判定してもよい。この構成によると、渦巻きばねの品質を定量的に判定することができる。
【0012】
(特徴2)本明細書が開示する形状測定装置は、入力された撮影画像又は測定データを極座標変換した極座標画像を作成する画像変換手段をさらに備えていてもよい。関数算出手段は、極座標画像の素線と背景との境界をトレースすることにより線間隙間関数又は素線厚み関数の少なくとも1つを算出してもよい。この構成によると、画像にある程度のノイズが含まれていたとしても、素線と背景との境界を正確にトレースできる。また、比較的短時間で線間隙間関数又は素線厚み関数を算出できる。
【0013】
(特徴3)本明細書が開示する形状測定装置では、関数算出手段が、極座標画像の素線の外側の境界をトレースすることにより外側エッジ関数e(θ)を算出し、極座標画像の素線の内側の境界をトレースすることにより内側エッジ関数e(θ)を算出し、外側エッジ関数e(θ)と内側エッジ関数e(θ)との差に基づいて、線間隙間関数又は素線厚み関数の少なくとも1つを算出してもよい。
【0014】
(特徴4)本明細書が開示する形状測定装置では、関数算出手段は、極座標画像の素線の外側の境界と内側の境界が接触している場合は、当該接触箇所でトレースを終了してもよい。ここで、「極座標画像の素線の外側の境界と内側の境界が接触している」とは、渦巻きばねの隣り合う素線同士が接触(癒着)していることを意味する。上記の構成によると、関数算出手段は、素線の外側と内側の境界に接触箇所が存在する場合は、接触箇所においてトレースを終了し、それ以上のトレースは行わない。このため、素線同士の接触を短時間で検出でき、品質検査の作業効率が向上する。
【0015】
(特徴5)本明細書が開示する形状測定装置は、入力された撮影画像又は測定データを芯線化した芯線化画像を作成する画像変換手段をさらに備えていてもよい。関数算出手段は、隣り合う芯線間の距離に基づいて線間隙間関数又はピッチ関数の少なくとも1つを算出してもよい。
【0016】
(特徴6)本明細書が開示する形状測定装置では、芯線は、芯線化画像の画素の座標値群によって表されてもよい。関数算出手段は、第1芯線と、第1芯線とその外周側で隣り合う第2芯線間との距離を、第1芯線を構成する座標値群に含まれる第1座標値と、第2芯線を構成する座標値群のうち、少なくとも前記第1座標値に最も近い第2座標値とを用いて算出してもよい。この構成によると、隣り合う芯線間の距離を正確に算出することができる。
【0017】
(特徴7)本明細書が開示する形状測定装置は、入力された撮影画像又は測定データから極座標変換は行わずに輪郭線を抽出した輪郭線画像を作成する画像変換手段をさらに備えていてもよい。関数算出手段は、輪郭線画像の輪郭線を、素線の外周側の外側輪郭線と内周側の内側輪郭線とに分離し、隣り合う外側輪郭線と内側輪郭線との距離に基づいて線間隙間関数又は素線厚み関数の少なくとも1つを算出してもよい。
【0018】
(特徴8)本明細書が開示する形状測定装置では、素線の外側輪郭線及び内側輪郭線のそれぞれは、輪郭線画像の画素の座標値群によって表されてもよい。関数算出手段は、外側輪郭線と、当該外側輪郭線とその外周側で隣り合う内側輪郭線との距離を、当該外側輪郭線を構成する座標値群に含まれる第3座標値と、当該内側輪郭線を構成する座標値群のうち、少なくとも前記第3座標値に最も近い第4座標値とを用いて算出し、当該距離に基づいて線間隙間関数を算出してもよい。この構成によると、隣り合う素線間の距離を定量的に算出することができる。
【0019】
(特徴9)本明細書が開示する形状測定装置では、素線の外側輪郭線及び内側輪郭線のそれぞれは、輪郭線画像の画素の座標値群によって表されてもよい。関数算出手段は、内側輪郭線と、当該内側輪郭線とその外周側で隣り合う外側輪郭線との距離を、当該内側輪郭線を構成する座標値群に含まれる第5座標値と、当該外側輪郭線を構成する座標値群のうち、少なくとも前記第5座標値に最も近い第6座標値とを用いて算出し、当該距離に基づいて素線厚み関数を算出してもよい。この構成によると、素線の厚みを定量的に算出することができる。
【0020】
(特徴10)本明細書が開示する形状測定装置では、記憶手段は、線間隙間の下限値を表す下限閾値関数又は線間隙間の上限値を表す上限閾値関数の少なくとも一方を記憶していてもよい。判定手段は、線間隙間関数が下限閾値関数を下回る場合又は上限閾値関数を上回る場合に不良と判定してもよい。この構成によると、記憶手段に記憶させる閾値関数を制御することにより、渦巻きばねの線間隙間を所望の形状に制御でき、渦巻きばねの性能を向上することができる。
【実施例1】
【0021】
実施例1の形状測定装置10について図面を参照しながら説明する。図1に示すように、形状測定装置10は、ステージ12と、ステージ12上に配置された照明器14と、ステージ12に固定されているCCDカメラ16と、CCDカメラ16に通信線18を介して接続されているコンピュータ22と、コンピュータ22に接続されているディスプレイ20を備えている。
【0022】
照明器14は、面光源であり、その発光面上に渦巻きばね30が載置される。CCDカメラ16は、照明器14上に配置されており、照明器14上に載置された渦巻きばね30を撮影する。即ち、渦巻きばね30は照明器14によって下方から照明され、照明器14の透過光(渦巻きばね30の影)がCCDカメラ16によって撮影される。なお、照明器14は、本実施例のような透過照明に限定されず、渦巻きばね30を上方から照明するものでもよい。この場合、渦巻きばね30が全周方向から均等に照明されるように、複数の照明器やリング型の照明器を用いることが好ましい。
【0023】
CCDカメラ16が撮影した画像データは、通信線18を介してコンピュータ22に入力される。コンピュータ22には、後述する形状測定処理を実行するためのプログラムが記憶されている。コンピュータ22は、CCDカメラ16が撮影した撮影画像の画像データを処理し、渦巻きばね30の隣り合う素線間の隙間を表す線間隙間関数を算出する。コンピュータ22のメモリには、予め定められた閾値関数が記憶されている。コンピュータ22は、算出した線間隙間関数を閾値関数と比較して、渦巻きばね30の良否を判定し、判定結果をディスプレイ20に表示する。
【0024】
図2A図2Dは、形状測定装置10による渦巻きばね30の形状測定の流れを示すフローチャートである。形状測定装置10は、図2A図2Dに示す工程、処理を経て、渦巻きばね30の線間隙間関数を算出し、渦巻きばね30が良品であるか否かの判定を行う。以下、図2A図2Bに示すフローチャートに沿って、形状測定装置10による渦巻きばね30の形状測定の流れを説明する。
【0025】
まず、図2AのステップS10において、CCDカメラ16により、渦巻きばね30の撮影を行う。CCDカメラ16により撮影された撮影画像は、コンピュータ22に入力される。入力される撮影画像は、例えば、最も黒い画素の輝度値を「0」とし、最も白い画素の輝度値を「255」とする256階調の画像とすることができる。図3図9に、2種類の渦巻きばね30の撮影画像を例示する。図3図9に示す2種類の渦巻きばね30は、共に、内フック32から外フック34まで渦巻状に延びている。ただし、これら2種類の渦巻きばね30は、その内フック32の形状に有意な違いを有する。即ち、図3に示す渦巻きばね30は、その内フック32が渦巻きばね30の重心Gと重なっているが、図9に示す渦巻きばね30は、その内フック32が渦巻きばね30の重心Gと重なっていない。本明細書では、図3に示す渦巻きばね30を第1タイプと称し、図9に示す渦巻きばね30を第2タイプと称する。形状測定装置10は、第1タイプと第2タイプの双方の渦巻きばね30の形状測定を行うことができる。なお、特に区別した説明がない場合は、第1タイプと第2タイプで共通の処理が行われるものとする。なお、撮影画像は、画素(x,y)毎に輝度値を有する輝度値画像である。
【0026】
次に、ステップS12では、ステップS10で撮影された撮影画像を二値化する。すなわち、入力された撮影画像の各画素(x,y)に対して、輝度値が予め設定された設定値以上となる場合は濃度値「0」(白画素)とし、輝度値が予め設定された設定値未満となる場合は濃度値「1」(黒画素)とする。これによって、渦巻きばね30に対応する部分の画素群が濃度値「1」となり、それ以外の画素群が濃度値「0」となる。なお、このステップS12から後述するステップS36までの処理は、コンピュータ22によって実行される。
【0027】
次に、ステップS14では、ステップS12で得られた二値化画像を極座標変換して極座標画像を作成する。図4に、第1タイプの渦巻きばね30(図3参照)の極座標画像を示す。図10に、第2タイプの渦巻きばね30(図9参照)の極座標画像を示す。二値化画像から極座標画像を作成する処理は、公知の方法(例えば、特開2009−257950)を用いて行うことができる。具体的には、渦巻きばね30の重心Gを仮の中心として求めた後、公知の変換式を用いて極座標画像を作成することができる。
【0028】
次に、ステップS16では、ステップS14で作成した極座標画像に基づいて、外側エッジ関数e(θ)と内側エッジ関数e(θ)を作成する。外側・内側エッジ関数作成処理について図2Bを参照して説明する。
【0029】
(外側・内側エッジ関数作成処理)
図2Bに示すように、この処理では、ステップS30において、極座標画像を用いて座標値P,Pを検出する。図4図10に示すように、極座標画像は、濃度値1の複数の縞状の画素群を有する。以下では、説明の便宜上、これら縞状の画素群に符号を付して各々を区別する。第1タイプの渦巻きばね30の極座標画像では、図4に示すように、縞状の画素群をそれぞれ画素群40、画素群42、画素群44、画素群46、画素群48と称する。第2タイプの渦巻きばね30の極座標画像では、図10に示すように、縞状の画素群をそれぞれ画素群40、画素群42、画素群44、画素群46と称する。また、内フック32に相当する部分の画素群を画素群Aと称し、外フック34に相当する部分の画素群を画素群Bと称する。図4図10では、他の画素群と区別するために、画素群A、Bを含む範囲を破線で示す。破線内において濃度値1の画素群がそれぞれ画素群A、画素群Bである。画素群A、画素群Bは、公知の方法(例えば、特開2009−257950)を用いて特定することができる。いずれのタイプにおいても、画素群40の上端は内フック32に相当する部分の画素群Aと連続しており、画素群48の下端(第2タイプの場合は画素群46の下端)は外フック34に相当する部分の画素群Bと連続している。なお、画素群40の境界の座標値のθ成分の範囲は0°〜360°である。以下、各画素群42、44、46、48の境界の座標値のθ成分の範囲は、それぞれ360°〜720°、720°〜1080°、1080°〜1440°、1440°〜1800°である。
座標値P,Pは、具体的には次のように検出される。まず、極座標画像のθ=360°のライン上を左から右へトレースする。そして、画素の濃度値が最初に0から1に変化するときの濃度値0の画素の座標値をPとして検出し、その後で濃度値が最初に1から0に変化するときの濃度値1の画素の座標値をPとして検出する。座標値Pが画素群40の左側の境界を表し、座標値Pが画素群40の右側の境界を表す。以下では、各画素群40〜48の左側の境界を特に「内側エッジ」と称し、右側の境界を特に「外側エッジ」とも称する。また、内側エッジの座標値のr成分をrと称し、外側エッジの座標値のr成分をrとも称する。即ち、座標値Pのr成分はθ=360°におけるrであり、座標値Pのr成分はθ=360°におけるrである。
【0030】
次に、ステップS31では、座標値Pのr成分rをe(360)として記憶する。同様に、座標値Pのr成分rをe(360)として記憶する。これらはRAMに保存される。続いて、ステップS32では、画素群40の左側及び右側の境界を逆方向にトレースする。ここで、逆方向にトレースするとは、極座標画像の縦軸θの値が減少する方向に向かうトレースを意味する。逆方向トレース処理について、図2Cを参照して説明する。
【0031】
(逆方向トレース処理)
この処理では、θ=359°,358°,・・・0°のそれぞれのライン上を所定の範囲で左から右へトレースして、画素の濃度値が最初に0から1に変化するときの濃度値0の画素の座標値のr成分と、その後で濃度値が最初に1から0に変化するときの濃度値1の画素の座標値のr成分を検出する。以下では、座標値(θ,r)の画素の濃度値をD(θ,r)と表す。例えば、D(θ,r)=0のときは座標値(θ,r)の画素は白画素であり、D(θ,r)=1のときは座標値(θ,r)の画素は黒画素である。
【0032】
具体的な処理を説明する。図2Cに示すように、まず、ステップS50でj=1に設定し、ステップS51に進む。ステップS51では、θ=θ(θ=360°−j(j=1°〜360°))のときの画素群40の内側エッジの座標値のr成分rを検出する。rは、θ=θのライン上のr成分がe(θ+1)−δ≦r≦e(θ+1)+δとなる範囲内で、D(θ,r)=0かつD(θ,r+1)=1を満たすrによって定義される。例えば、j=1の場合は、θ=359°のライン上においてe(360)−δ≦r≦e(360)+δとなる範囲内で、D(θ,r)=0かつD(θ,r+1)=1を満たすrがθ=θの内側エッジの座標値のrとして検出される。ここで、e(360)は、ステップS31で記憶された座標値Pのr成分である。この処理によると、内側エッジの座標値のrの検出は、θ=θのライン上の所定の範囲のみで行われる。このため、処理速度を向上させることができる。
次に、ステップS52では、ステップS51で内側エッジの座標値のrを検出できたか否か判断する。上記の条件を満たすrが存在する場合は、rの検出に成功したと判断して(ステップS52のYES)、ステップS53に進む。一方、上記の条件を満たすrが存在しない場合は、rの検出に失敗したと判断して(ステップS52のNO)、ステップS59に進む(後述)。なお、ステップS52でNOの場合とは、θ=θのラインにおける上記rの範囲内で、隣接する2つの画素の濃度値が右方向に白画素から黒画素に変化しない場合である。即ち、具体的には、θ=θのときの画素群40に相当する部分の素線が、内フック32と接触しているか、他の部分の素線と接触しているか、その形状が規格外である場合などが考えられる。
ステップS53では、ステップS51で検出されたrをe(θ)として記憶する。例えば、j=1の場合は、θ=359°のときの内側エッジの座標値のrをe(359)として記憶する。e(θ)はRAMに保存される。
【0033】
ステップS54では、θ=θのときの画素群40の外側エッジの座標値のr成分rを検出する。rは、θ=θのライン上のr成分がe(θ+1)−δ≦r≦e(θ+1)+δとなる範囲内で、D(θ,r)=1かつD(θ,r+1)=0を満たすrによって定義される。例えば、j=1の場合は、θ=359°のライン上においてe(360)−δ≦r≦e(360)+δとなる範囲内で、D(θ,r)=1かつD(θ,r+1)=0を満たすrがθ=θの外側エッジの座標値のrとして検出される。ここで、e(360)は、ステップS31で記憶された座標値Pのr成分である。この処理によると、外側エッジの座標値のrの検出は、θ=θのライン上の所定の範囲のみで行われる。このため、処理速度を向上させることができる。
次に、ステップS55では、ステップS54で外側エッジの座標値のrを検出できたか否か判断する。上記の条件を満たすrが存在する場合は、rの検出に成功したと判断して(ステップS55のYES)、ステップS56に進む。一方、上記の条件を満たすrが存在しない場合は、rの検出に失敗したと判断して(ステップS55のNO)、ステップS59に進む(後述)。なお、ステップS55でNOの場合とは、θ=θのラインにおける上記rの範囲内で、隣接する2つの画素の濃度値が右方向に黒画素から白画素に変化しない場合である。即ち、具体的には、θ=θのときの画素群40に相当する部分の素線が、他の部分の素線と接触しているか、その形状が規格外である場合などが考えられる。
ステップS56では、ステップS54で検出されたrをe(θ)として記憶する。例えば、j=1の場合は、θ=359°のときの外側エッジの座標値のrをe(359)として記憶する。e(θ)はRAMに保存される。
【0034】
続いて、ステップS57では、j=360であるか否かを判断する。j=360ではない場合は、ステップS57でNOと判断してステップS58に進む。ステップS58では、jを1インクリメントしてステップS51に戻り、ステップS57までの処理を繰り返す。この処理は、ステップS57でYESと判断されるまで(即ち、j=360と判断されるまで)繰り返される。これにより、θ=360°−j(=359°,358°,・・・0°)のときの画素群40の内側エッジ及び外側エッジの座標値のr成分r、rを順次検出(逆方向トレース)し、それらをe(θ)、e(θ)としてRAMに記憶させることができる。一方、j=360の場合は、ステップS57でYESと判断してステップS59に進む(後述)。なお、ステップS57でYESの場合とは、画素群40に相当する部分の素線を一巻分、逆方向トレースした場合である。
【0035】
ステップS52でNO、ステップS55でNO、及びステップS57でYESの場合は、ステップS59に進む。ステップS59では、逆方向トレースができたところまでの画素群40の長さを部分素線長Sとして算出する。具体的には、ステップS52でNO又はステップS55でNOと判断されてステップS59に進んだ場合は、ステップS51又はステップS54においてθ=θにおけるr又はrの検出に失敗している。この場合、θ=360°からθまでのθ成分の長さである360°−θを部分素線長Sとして算出する。また、ステップS57でYESと判断されてステップS59に進んだ場合は、部分素線長Sは360°(即ち、θ成分の一巻分の長さ)となる。ステップS59の処理が終了すると、逆方向トレース処理は終了する。なお、上記の処理では、所定の範囲内においてD(θ,r)=0かつD(θ,r+1)=1を満たすrを内側エッジのrとして検出したが、条件式は上記に限られない。例えば、D(θ,r−2)=0、D(θ,r−1)=0、D(θ,r)=0、D(θ,r+1)=1、D(θ,r+2)=1、D(θ,r+3)=1の全てを満たすrを内側エッジのrとして検出してもよい。即ち、画素の濃度値が、左から右に向かって3画素連続して白画素となった後で、3画素連続して黒画素となるときの最も右側の白画素の座標値のr成分をrとして検出してもよい。この検出条件によると、突発的なノイズを誤って内側エッジとして検出してしまうことを抑制でき、rの検出精度をより向上させることができる。この検出条件は、外側エッジのrの検出に用いてもよい。また、後述する順方向トレース処理で用いてもよい。
【0036】
図2Bに戻って説明を続ける。ステップS32で逆方向トレースが終了すると、ステップS33に進む。ステップS33では、ステップS32の逆方向トレース処理で算出された部分素線長Sをエッジ関数長さLとして記憶する。即ち、ステップS31、S32の処理で記憶されたe(θ)をθ−r座標系でつなぎ合わせて近似すると、画素群40の内側エッジを表す関数(内側エッジ関数)を作成することが可能である。同様に、e(θ)をθ−r座標系でつなぎ合わせて近似すると、画素群40の外側エッジを表す関数(外側エッジ関数)を作成することが可能である。このため、部分素線長Sは、画素群40の内側及び外側エッジ関数の長さを表している。このため、ステップS33では、部分素線長Sをエッジ関数長さLとして記憶する。エッジ関数長さLは、RAMに保存される。
【0037】
続いて、ステップS34では、位置変数θを360°に設定し、ステップS35に進む。ステップS35では、e(360)をg(0)として記憶し、e(360)をg(0)として記憶する。ここで、g(0)は、θ=0°のときの画素群42の内側エッジの座標値のr成分rであり、g(0)は、θ=0°のときの画素群42の外側エッジの座標値のr成分rである。画素群40に相当する部分の渦巻きばね30と画素群42に相当する部分の渦巻きばねは連続している。このため、θ=360°における画素群40の内側エッジのr及び外側エッジのrは、θ=0°における画素群42の内側エッジr及び外側エッジrとそれぞれ等しい。即ち、ステップS35の処理では、画素群40のr及びrを利用して画素群42のr及びrを算出し、それぞれをg(0)、g(0)として記憶する。この処理によると、画素群40以外の画素群については、ステップS30のような処理が不要となり、処理効率を向上することができる。
【0038】
次に、ステップS36では、Kを1に設定し、ステップS37に進む。ステップS37では、画素群42の内側エッジ及び外側エッジを順方向にトレースする。ここで、順方向にトレースするとは、極座標画像の縦軸θの値が増加する方向に向かうトレースを意味する。順方向トレース処理は、トレースの方向がθの増加方向である点以外は、逆方向トレース処理と同様である。このため、逆方向トレース処理と同様の処理については詳細な説明を省略する。
【0039】
(順方向トレース処理)
図2Dに示すように、まず、ステップS60でk=1に設定し、ステップS61に進む。ステップS61では、θ=θ(θ=k(k=1°〜360°))のときの画素群42の内側エッジの座標値のrを検出する。rは、θ=θのライン上のr成分がg(θ−1)−δ≦r≦g(θ−1)+δとなる範囲内で、D(θ,r)=0かつD(θ,r+1)=1を満たすrによって定義される。例えば、k=1の場合は、θ=1°のライン上においてg(0)−δ≦r≦g(0)+δとなる範囲内で、D(θ,r)=0かつD(θ,r+1)=1を満たすrがθ=θの内側エッジの座標値のrとして検出される。
次に、ステップS62では、ステップS61で内側エッジの座標値のrを検出できたか否か判断する。上記の条件を満たすrが存在する場合(ステップS62のYES)は、ステップS63に進み、上記の条件を満たすrが存在しない場合(ステップS62のNO)は、ステップS69に進む。なお、ステップS62でNOの場合とは、θ=θのラインにおける上記rの範囲内で、隣接する2つの画素の濃度値が右方向に白画素から黒画素に変化しない場合である。即ち、具体的には、θ=θのときの画素群42に相当する部分の素線が、他の部分の素線と接触しているか、その形状が規格外である場合などが考えられる。
ステップS63では、ステップS61で検出されたrをg(θ)として記憶する。例えば、k=1の場合は、θ=1°のときの内側エッジの座標値のrをg(1)として記憶する。g(θ)はRAMに保存される。
【0040】
ステップS64では、θ=θのときの画素群42の外側エッジの座標値のr成分rを検出する。rは、θ=θのライン上のr成分がg(θ−1)−δ≦r≦g(θ−1)+δとなる範囲内で、D(θ,r)=1かつD(θ,r+1)=0を満たすrによって定義される。例えば、k=1の場合は、θ=1°のライン上においてg(0)−δ≦r≦g(0)+δとなる範囲内で、D(θ,r)=1かつD(θ,r+1)=0を満たすrがθ=θの外側エッジの座標値のrとして検出される。
次に、ステップS65では、ステップS64で外側エッジの座標値のrを検出できたか否か判断する。上記の条件を満たすrが存在する場合(ステップS65のYES)は、ステップS66に進み、上記の条件を満たすrが存在しない場合(ステップS65のNO)、ステップS69に進む。なお、ステップS65でNOの場合とは、θ=θのラインにおける上記rの範囲内で、隣接する2つの画素の濃度値が右方向に黒画素から白画素に変化しない場合である。即ち、具体的には、θ=θのときの画素群42に相当する部分の素線が、外フック32と接触しているか、他の部分の素線と接触しているか、その形状が規格外である場合などが考えられる。
ステップS66では、ステップS64で検出されたrをg(θ)として記憶する。例えば、k=1の場合は、θ=1°のときの外側エッジの座標値のrをg(1)として記憶する。g(θ)はRAMに保存される。
【0041】
続いて、ステップS67では、k=360であるか否かを判断する。k=360ではない場合は、ステップS67でNOと判断して、ステップS68においてkを1インクリメントしてステップS61に戻り、ステップS67までの処理を繰り返す。この処理は、ステップS67でYESと判断されるまで繰り返される。これにより、θ=k(=1°,2°,・・・360°)のときの画素群42の内側エッジ及び外側エッジの座標値のr成分r、rを順次検出(順方向トレース)し、それらをg(θ)、g(θ)としてRAMに記憶させることができる。一方、k=360の場合は、ステップS67でYESと判断してステップS69に進む。なお、ステップS67でYESの場合とは、画素群42に相当する部分の素線を一巻分、順方向トレースした場合である。
【0042】
ステップS69では、順方向トレースができたところまでの画素群42の長さを部分素線長Sとして算出する。具体的には、ステップS62でNO又はステップS65でNOと判断されてステップS69に進んだ場合は、ステップS61又はステップS64においてθ=θにおけるr又はrの検出に失敗している。この場合、θ=1°からθまでのθ成分の長さであるθ−0°を部分素線長Sとして算出する。また、ステップS67でYESと判断されてステップS69に進んだ場合は、部分素線長Sは360°(即ち、θ成分の一巻分の長さ)となる。ステップS69の処理が終了すると、順方向トレース処理は終了する。
【0043】
図2Bに戻って説明を続ける。ステップS37で順方向トレースが終了すると、ステップS38に進む。ステップS38では、ステップS37の順方向トレース処理で記憶されたg(θ)をe(360×K+θ)として記憶し、g(θ)をe(360×K+θ)として記憶する。例えば、K=1のときは、g(θ)はe(360+θ)として記憶され、g(θ)はe(360+θ)として記憶される。
続いて、ステップS39では、ステップS33で記憶されたエッジ関数長さLに、ステップS37で算出された部分素線長Sを足したものを、新たなエッジ関数長さLとして記憶(更新)する。ステップS37で算出された部分素線長Sは、画素群42の内側及び外側エッジ関数の長さを表している。このため、ステップS39では、ステップS33のエッジ関数長さL+ステップS37の部分素線長Sを、新たなエッジ関数長さLとして記憶する。新たなエッジ関数長さLは、RAMに保存される。
【0044】
次に、ステップS40では、ステップS34で設定された位置変数θに、ステップS37で算出された部分素線長Sを足したものを、新たな位置変数θとして記憶(更新)する。
続いて、ステップS41では、部分素線長S=360°が成立するか否かを判断する。S=360°が成立するのは、k=360のときである。別言すれば、画素群42に相当する部分の素線を一巻分、順方向トレースしたときである。この場合、ステップS41でYESと判断して、ステップS42に進む。一方、S=360°が成立しない場合は、ステップS41でNOと判断して、ステップS46に進む(後述)。
ステップS42では、g(360)をg(0)に更新し、g(360)をg(0)に更新する。ここで、g(360)は、θ=360°のときの画素群42の内側エッジの座標値のr成分rであり、g(360)は、θ=360°のときの画素群42の外側エッジの座標値のr成分rである。画素群42に相当する部分の渦巻きばね30と画素群44に相当する部分の渦巻きばね30は連続している。このため、θ=360°における画素群42の内側エッジのr及び外側エッジのrは、θ=0°における画素群44の内側エッジr及び外側エッジrとそれぞれ等しい。即ち、ステップS42の処理では、画素群42のr及びrを利用して画素群42のr及びrを算出し、それぞれをg(0)、g(0)として記憶する。
【0045】
次に、ステップS43では、K=Kmaxが成立するか否かを判断する。ここで、Kmaxは渦巻きばね30の巻き数の上限値を超える値であり、コンピュータ22に予め登録されている。上記等式が成立する場合(ステップS43でYES)はステップS46に進み(後述)、成立しない場合(ステップS43でNO)はステップS44に進む。
ステップS44では、Kを1インクリメントして、ステップS37に戻る。例えば、K=1、Kmax=8の場合は、ステップS43でNOと判断し、ステップS44でK=2に設定し、ステップS37で再度順方向トレース処理を行う。K=2のときは、上記のステップS60〜ステップS69までの処理が、画素群44に対して行われる。ステップS37の処理が終了したら、画素群44に対して、ステップS38〜ステップS44までの処理が行われる。図4に示す例では、以後、ステップS44でKを1ずつインクリメントしながら、ステップS37〜ステップS44までの処理が行われる。そして、ステップS44でKを1インクリメントして、K=4に設定されると、ステップS37では、画素群48に対して順方向トレース処理を行う。この場合、図4から明らかなように、ステップS65(図2D参照)でNOと判断され、ステップS69で部分素線長Sが算出される。その後、ステップS38〜S40の処理を経て、ステップS41でNOと判断され、ステップS46に進む。
【0046】
ステップS46では、外側エッジ関数e(θ)と内側エッジ関数e(θ)を作成する。外側エッジ関数e(θ)は、ステップS56(図2C参照)で記憶された座標値群e(θ)と、ステップS38で記憶された座標値群e(360×K+θ)とを、θ−r座標系でつなぎ合わせて近似することにより作成される。同様に、内側エッジ関数e(θ)は、ステップS53(図2C参照)で記憶された座標値群e(θ)と、ステップS38で記憶された座標値群e(360×K+θ)とを、θ−r座標系でつなぎ合わせて近似することにより作成される。ステップS46の処理が終了すると、外側・内側エッジ関数の作成処理が終了する。
【0047】
図2Aに戻って説明を続ける。ステップS16で外側・内側エッジ関数の作成処理が終了すると、ステップS18では、ステップS16で記憶されたエッジ関数長さL(図2BのステップS39参照)が下限閾値を超えるか否か判断する。ここで、下限閾値は、渦巻きばね30の巻き数の下限値(単位は角度[°])であり、コンピュータ22に予め登録されている。エッジ関数長さLが下限閾値を超える場合(ステップS18でYES)は、ステップS20に進む。一方、エッジ関数長さLが下限閾値以下の場合(ステップS18でNO)は、ステップS28に進む。なお、ステップS18でNOの場合とは、例えば、渦巻きばね30の巻き数が不足しているか(ケース1)、隣り合う素線同士が接触しているか(ケース2)、隣り合う素線の間に異物が挟まっている(ケース3)場合などが考えられる。
ステップS18でNOと判断した後のステップS28では、渦巻きばね30を不良品と判定し、不良箇所をディスプレイ20の渦巻きばね画像に反映させる。具体的には、ケース2、3の場合は、ステップS40(図2B参照)で記憶された位置変数θは、接触箇所又は異物がある箇所を表している。このため、ステップS28では、(θ,e(θ))又は(θ,e(θ))を極座標逆変換して、xy平面上における接触箇所又は異物がある箇所を算出し、これら不良箇所をディスプレイ20の渦巻きばね画像に反映させる。
【0048】
次に、ステップS20では、ステップS16で作成した外側エッジ関数e(θ)と内側エッジ関数e(θ)から、線間隙間関数ρ(θ)を算出する。図5に、線間隙間関数ρ(θ)の一例を示す。線間隙間関数ρ(θ)は、次の式;ρ(θ)=e(θ+360°)−e(θ)によって定義される。線間隙間関数ρ(θ)は、渦巻きばね30の隣り合う素線間の隙間を表す関数である。
【0049】
次に、ステップS22では、メモリから下限閾値関数ρ1min(θ)を読み出して、検査対象となる角度範囲において線間隙間関数ρ(θ)>下限閾値関数ρ1min(θ)が成り立つか否かを判定する。上記不等式が成り立つ場合(ステップS22でYES)は、ステップS24に進み、不成立の場合(ステップS22でNO)は、ステップS28で渦巻きばね30が不良品であると判定する(後述)。
【0050】
ステップS24では、メモリから上限閾値関数ρ1max(θ)を読み出して、検査対象となる角度範囲において、線間隙間関数ρ(θ)<上限閾値関数ρ1max(θ)が成り立つか否かを判定する。上記不等式が成り立つ場合(ステップS24でYES)は、ステップS26に進み、不成立の場合(ステップS24でNO)は、ステップS28で渦巻きばね30が不良品であると判定する(後述)。
【0051】
ステップS22、S24でNOと判断した後のステップS28では、渦巻きばね30を不良品と判定し、不良箇所をディスプレイ20の渦巻きばね画像に反映させる。具体的には、線間隙間関数ρ(θ)が異常値となるときのθをθerrとし、ρerr)に対応する外側・内側エッジ関数の座標値(θerr,e(θerr))、(θerr,e(θerr))を特定する。そして、当該座標値を極座標逆変換して、xy平面上における不良箇所を算出し、当該不良箇所をディスプレイ20の渦巻きばね画像に反映させる。
【0052】
ステップS26では、ステップS22、S24の判定結果に基づいて、渦巻きばね30が良品であると判定する。図6に、線間隙間関数ρ(θ)、下限閾値関数ρ1min(θ)、及び上限閾値関数ρ1max(θ)の例を示す。図6の例では、約120°<θ<約230°の範囲において、ρ(θ)<ρ1min(θ)となっている。このため、ステップS22においてNOと判断され、ステップS28で不良品と判定される。本実施例では、渦巻きばね30の良否判定を、ρ1min(θ)<ρ(θ)<ρ1max(θ)が成立するか否かに基づいて行う。この構成によると、予めメモリに記憶させておく下限閾値関数ρ1min(θ)及び上限閾値関数ρ1max(θ)を制御することにより、所望の線間隙間形状を有する渦巻きばねを製造することができる。これにより、渦巻きばねの特性を安定化することができる。
なお、下限閾値関数ρ1min(θ)及び上限閾値関数ρ1max(θ)は、設計図又は設計データなどから決定されてもよいし、設計データのFEM解析結果などを元に決定されてもよい。下限閾値関数ρ1min(θ)及び上限閾値関数ρ1max(θ)は、検査対象となる角度範囲において一定値であってもよい。また、ステップS22及びS24の処理は、いずれか一方のみが行われてもよい。
【0053】
また、上記のステップS20では線間隙間関数ρ(θ)を算出したが、ρ(θ)の代わりに、素線厚み関数ρ(θ)を算出してもよい。素線厚み関数ρ(θ)は、次の式;ρ(θ)=e(θ)−e(θ)によって定義される。素線厚み関数ρ(θ)は、渦巻きばね30の素線の厚み(線材の板厚)を表す関数である。この場合、予めメモリに素線厚みの下限閾値関数ρ2min(θ)及び上限閾値関数ρ2max(θ)を記憶しておき、ステップS22では、ρ(θ)>ρ2min(θ)が成り立つか否かを判定してもよい。ステップS24では、ρ(θ)<ρ2max(θ)が成り立つか否かを判定してもよい。
或いは、ステップS20では、線間隙間関数ρ(θ)と素線厚み関数ρ(θ)の両方を算出し、ステップS22、S24では、両方の関数について上記不等式を満たしているか否か判定してもよい。
【0054】
ここで、隣り合う素線同士が接触している場合について説明する。図7に、隣り合う素線同士が接触点Ctにおいて接触している渦巻きばね30の撮影画像を示し、図8に、当該渦巻きばね30の極座標画像を示す。図7図8から明らかなように、隣り合う素線同士が接触していると、極座標画像において、隣り合う縞状の画素群同士が接触する。この例では、画素群40と画素群42が接触しているため、コンピュータ22は、逆方向トレース処理(図2C参照)のステップS55でNOと判断し、ステップS59で部分素線長Sを算出する(逆方向トレースは接触点Ctで終了)。そして、ステップS33〜S36(図2B参照)の処理を経て、順方向トレース処理(図2D参照)を開始する。その後、コンピュータ22は、ステップS62でNOと判断し、ステップS69で部分素線長Sを算出する(順方向トレースは接触点Ctで終了)。続いて、ステップS38〜S40(図2B参照)の処理を経て、ステップS41でNOと判断し、トレースしたところまでの外側・内側エッジ関数を作成する。このとき、エッジ関数長さL=S+Sである。このため、コンピュータ22はステップS18(図2A参照)でNOと判断し、ステップS28で当該渦巻きばね30は不良品であると判定する。なお、上記の判定方法の代わりに、画素群Aを特定する処理を設けて、画素群40の逆方向トレース中に画素群Aを構成する画素の座標値を検出した場合は、逆方向トレースを終了する構成としてもよい。同様に、画素群Bを特定する処理を設けて、画素群48(図10では画素群46)の順方向トレース中に画素群Bを構成する画素の座標値を検出した場合は、順方向トレースを終了する構成としてもよい。
【0055】
上記の形状測定装置10の効果を説明する。隣り合う素線間の隙間(以下、線間隙間とも称する)が不自然な形状になっていると、渦巻きばねは要求性能を満たすことができない。例えば、線間隙間が狭すぎると、素線同士が接触して異音が発生したり、ヒステリシスが増大したり、折損が生じる場合がある。一方、線間隙間が広すぎると、規定されたトルクを確保できない場合がある。従来の検査方法では、このような渦巻きばねであっても、特定の部位の形状が良品の判定基準を満たしていれば良品と判定されてしまうため、検査方法に問題があった。これに対し、本明細書が開示する形状測定装置10では、コンピュータ22が線間隙間関数ρ(θ)を算出する。これにより、従来では検査されていなかった線間隙間を検査することが可能となる。このため、渦巻きばね30の形状を適切に測定でき、結果として渦巻きばねの品質検査を適切に行うことが可能となる。
また、渦巻きばねの中には、素線の厚みが一定ではない特殊な形状のものがある(例えば、図27に示すような、内フック及び外フックだけ素線の厚みが大きい渦巻きばね)。このような渦巻きばねの形状を適切に測定するためには、素線の厚みを測定することが求められる。上記の形状測定装置10では、コンピュータ22が素線厚み関数ρ(θ)を算出する。これにより、従来では検査されていなかった素線厚みを検査することが可能となり、渦巻きばねの形状を適切に測定できる。
【0056】
また、上記の形状測定装置10では、線間隙間形状及び/又は素線厚みの良否判定が、予めメモリに記憶された閾値関数(ρ1min(θ)、ρ1max(θ)、ρ2min(θ)、ρ2max(θ))を基準に行われる。このため、渦巻きばね30の品質を定量的に判定できる。
【0057】
また、上記の形状測定装置10では、コンピュータ22は撮影画像を極座標変換して極座標画像を作成する。線間隙間関数ρ(θ)及び/又は素線厚み関数ρ(θ)は、極座標画像の素線と背景との境界をトレースすることにより算出される。境界をトレースするアルゴリズムは、画像のノイズに強く、比較的シンプルに構築できる。このため、極座標画像にある程度のノイズが含まれていても境界を正確にトレースできる。また、線間隙間関数ρ(θ) 及び/又は素線厚み関数ρ(θ)を比較的短時間で算出できる。このため、実施例1のような極座標画像を用いた形状測定方法は、インラインでの検査に適している。
【0058】
次に、変形例1〜変形例4において、実施例1のステップS22、S24の処理の代わりとなる良否判定方法及び定量的評価方法について説明する。なお、以下の変形例では同一の文字を使用する場合がある。変形例ごとに文字の定義がある場合はその定義に従い、特に定義がない場合は共通の定義に従う。
【0059】
(変形例1)
本変形例では、まず、登録工程で、任意の方法により良品と判定された渦巻きばねをN個準備し(例えば、N=300)、実施例1のステップS10〜S20の処理を行って、それぞれの線間隙間関数ρ1n(θ)(n=1〜N)を算出する。そして、これらの線間隙間関数ρ1n(θ)の平均μ(θ)及び標準偏差σ(θ)を算出し、これらを用いて以下の数1、数2の判別関数を作成し、当該判別関数をコンピュータ22のメモリに登録する。ここで、以下の数式におけるθ(i:0〜m、m:整数)は、s°間隔ごとの角度を表し(即ち、θ=θ+i・s)、kは任意に設定される定数を表す。
【数1】
【数2】
そして、渦巻きばね検査工程、あるいは製造工程では、測定対象となる渦巻きばね30の線間隙間関数ρ(θ)を算出し、メモリに記憶された判別関数を用いて当該関数ρ(θ)のDを算出する。D=1の場合は良品と判定し(ステップS26)、D=0の場合は不良品と判定する(ステップS28)。図11に、線間隙間関数ρ(θ)と、平均μ(θ)及び標準偏差σ(θ)との関係を表すグラフを示す。図11のグラフでは、θ=10°、s=45°、k=5.0に設定されている。図11のグラフでは、各θにおけるD(θ)はいずれも1であるため、D=1となり、測定対象の渦巻きばね30は良品と判定される。s及びkの値を小さくするほど良否判定の判定基準が厳しくなる。なお、平均μ(θ)及び標準偏差σ(θ)は、設計図又は設計データから決定されてもよいし、設計データのFEM解析結果などを元に決定されてもよい。
さらに、渦巻きばね30の線間隙間が良品と比べてどれだけ変形しているかは、以下の数3に示すプラス変形度Tr+i)、及び数4に示すマイナス変形度Tr−i)を用いて定量的に評価することができる。プラス変形度Tr+i)は、角度θiにおける渦巻きばね30の線間隙間が「良品と比べてどれだけ大きいか」を定量化する尺度である。数4で示すマイナス変形度Tr−i)は、角度θiにおける渦巻きばね30の線間隙間が「良品と比べてどれだけ小さいか」を定量的に評価するための尺度である。
【数3】
【数4】
コンピュータ22は、数3、数4を用いてプラス変形度Tr+i)、マイナス変形度Tr−i)を算出し、「渦巻きばね30のどの部分でどれだけ変形が発生しているか」をディスプレイ20に表示する。渦巻きばね製造工程の作業者は、ディスプレイ20に表示された渦巻きばねの変形度Tr+i)、Tr−i)を確認し、渦巻きばね成形装置の成形パラメータを修正することにより、渦巻きばね製品の品質を改善することができる。
【0060】
(変形例2)
本変形例では、公知の手法であるマハラノビス田口法を用いて渦巻きばね30の良否を判定する。具体的には、まず、登録工程で、任意の方法により良品と判定された渦巻きばねをN個準備し(例えば、N=300)、それぞれの線間隙間関数ρ1n(θ)(n=1〜N)を算出する。そして、以下の数5を用いて、θ=θ(i:0〜m、m:整数)におけるN個の線間隙間ρ1n(θ)の平均μ(θ)及び分散{σ(θ)}を算出する。ここで、θは、s°間隔ごとの角度を表す(即ち、θ=θ+i・s)。渦巻きばねの良品形状を登録する工程では、品質管理者が「渦巻きばね形状登録ソフト」を操作し、各々の渦巻きばね品番ごとに算出された平均μ(θ)及び標準偏差σ(θ)を、コンピュータ22のメモリに記憶させる。
【数5】
次に、以下の数6を用いてN個の線間隙間関数ρ1n(θ)のそれぞれについて正規化平均隙間Xi,nを算出する。
【数6】
続いて、以下の数7〜数9を用いて相関行列Rを算出する。ここで、kはθの個数(即ち、k=m+1)を表す。また、p、qはn=1〜kのうちの任意の数を示す。
【数7】
【数8】
【数9】
続いて、以下の数10を用いて相関行列Rの逆行列Aを算出する。渦巻きばねの良品形状を登録する工程では、品質管理者が「渦巻きばね形状登録ソフト」を操作し、各々の渦巻きばね品番ごとに算出された逆行列Aをコンピュータ22のメモリに記憶させておく。
【数10】
【0061】
次に、渦巻きばねの検査工程(または製造工程)の処理について説明する。コンピュータ22のメモリには、予め以下の数11、数12の数式が記憶されている。渦巻きばねの検査工程(製造工程)では、測定対象となる渦巻きばね30の線間隙間関数ρ(θ)を算出し、以下の数11を用いて線間隙間ρ(θ)の正規化平均隙間Xを算出する。続いて、数12の数式に、正規化平均隙間X及びメモリに記憶されている逆行列Aを代入して、マハラノビス距離Dを算出する。
【数11】
【数12】
コンピュータ22のメモリには、予めマハラノビス距離Dの閾値が記憶されている。数12を用いてマハラノビス距離Dを算出したら、メモリに記憶されている閾値と比較する。D≦閾値であれば良品と判定し(ステップS26)、D>閾値であれば不良品と判定する(ステップS28)。本変形例の判定方法によると、不良品の判定基準の設定が困難な場合であっても適切に良否判定を行うことができる。
ここで、マハラノビス距離Dは、渦巻きばね30の変形度を定量的に評価する尺度とみなすことができる。コンピュータ22は、変形度Dをディスプレイ20に表示するように構成されていてもよい。この場合、渦巻きばね30の製造工程の作業者は、ディスプレイ20に表示された変形度Dを確認して、渦巻きばね成形装置の成形パラメータを修正することにより、渦巻きばね製品の品質を改善することができる。この構成は、変形例3に適用されてもよい。
【0062】
(変形例3)
本変形例においても、まず、任意の方法により良品と判定された渦巻きばねをN個準備し(例えば、N=300)、それぞれの線間隙間関数ρ1n(θ)(n=1〜N)を算出する。次に、各線間隙間関数ρ1n(θ)のFFTスペクトルF(i)(i:1〜M)を算出し、以下の数13を用いてN個のFFTスペクトルF(i)の平均μ(i)及び分散{σ(i)}を算出する。品質管理者は「渦巻きばね形状登録ソフト」を操作し、各渦巻きばね品番ごとに算出された平均μ(i)及び標準偏差σ(i)をコンピュータ22のメモリに予め記憶させておく。
【数13】
次に、以下の数14を用いてN個の線間隙間関数ρ1n(θ)のそれぞれについて正規化平均隙間Xi,nを算出する。
【数14】
続いて、変形例2の数7〜数9を用いて相関行列Rを算出し、変形例2の数10を用いて相関行列Rの逆行列Aを算出する。品質管理者は「渦巻きばね形状登録ソフト」を操作し、各渦巻きばね品番ごとに算出された逆行列Aをコンピュータ22のメモリに予め記憶させておく。
【0063】
コンピュータ22のメモリには、以下の数15及び変形例2の数12と同一の数式が記憶されている。渦巻きばねの検査工程(または製造工程)では、、測定対象となる渦巻きばね30の線間隙間関数ρ(θ)を算出し、そのFFTスペクトルF(i)を求め、以下の数15を用いて当該FFTスペクトルF(i)の正規化平均隙間Xを算出する。ここで、渦巻きばね30が変形している場合は、FFTスペクトルF(i)の低周波成分(i=m〜m、1≦m、m<M)に変形の特徴が現れる。このため、本変形例では、i=m〜mの範囲における正規化平均隙間Xが算出される。正規化平均隙間Xを算出したら、数12の数式に、X及びメモリに記憶されている逆行列Aを代入して、マハラノビス距離Dを算出する。
【数15】
コンピュータ22のメモリには、予めマハラノビス距離Dの閾値が記憶されている。数12を用いてマハラノビス距離Dを算出したら、メモリに記憶されている閾値と比較する。D≦閾値であれば良品と判定し(ステップS26)、D>閾値であれば不良品と判定する(ステップS28)。
【0064】
(変形例4)
本変形例では、変形例3と同様の方法でN個の良品の渦巻きばねの各線間隙間関数ρ1n(θ)のFFTスペクトルF(i)(i:1〜M)を算出する。渦巻きばねの良品形状を登録する工程では、以下の数16、数17を用いてFFTスペクトルF(i)の低周波成分の低周波パワーpの平均μと分散σを算出する。品質管理者は「渦巻きばね形状登録ソフト」を操作し、渦巻きばね品番ごとに算出された平均μ及び標準偏差σをコンピュータ22のメモリに記憶させておく。
【数16】
【数17】
次に、検査工程(または製造工程)では、測定対象となる渦巻きばね30の線間隙間関数ρ(θ)を算出し、そのFFTスペクトルF(i)を求め、以下の数18を用いて低周波パワーpを算出する。
【数18】
コンピュータ22のメモリには、予め以下の数19の不等式が記憶されている。ここで、kは任意に設定される定数である。数18を用いて低周波パワーを算出したら、以下の不等式に代入し、不等式が成り立つか否かを判定する。不等式が成り立つ場合は良品と判定し(ステップS26)、不成立の場合は不良品と判定する(ステップS28)。
【数19】
【0065】
(変形例5)
実施例1では、CCDカメラ16により撮影された撮影画像(の二値化画像)を画像変換して極座標画像を作成したが、画像変換の対象は撮影画像に限られず、例えばレーザ変位計などにより測定された測定データであってもよい。本変形例では、レーザ変位計により渦巻きばね30を測定したときの測定データを用いて線間隙間関数ρ(θ)及び素線厚み関数ρ(θ)を算出する2種類の方法について説明する。
【0066】
(方法1)
本変形例の形状測定装置は、図1のCCDカメラ16の代わりに、図13に示すレーザ変位計50を備える。図13に示すように、レーザ変位計50は、レーザ光を照射する照射部52と、対象物(渦巻きばね30)で反射した反射光を受光する受光面54を有する。レーザ変位計50はx方向に移動可能である。渦巻きばね30は、xy平面上に載置面を有するステージ(図示省略)上に配置されている。ステージはy方向に移動可能である。レーザ変位計50は渦巻きばね30の真上に配置され、その照射部52は下方(z方向)に向かってレーザ光を照射する。
図12は、本変形例の形状測定装置による渦巻きばね30の形状測定の流れを示すフローチャートである。まず、ステップS70において、レーザ変位計50により、渦巻きばね30の形状測定を行う。具体的には、ステージを固定した状態でレーザ変位計50をx方向に移動させて、渦巻きばね30のx方向における一端から他端まで、渦巻きばね30にレーザ光を照射する。この処理を、ステージをy方向に移動させながら繰り返し、渦巻きばね30の全体にレーザ光を照射する。
【0067】
次に、ステップS72では、ステップS70で測定した測定データに基づいて、3次元データを作成する。具体的には、ステージを固定してレーザ光を照射したときの測定データから、図14に示すような渦巻きばね30の断面データを作成する。この断面データは、y方向に沿って複数個作成される。これらの断面データを再構成して、図15に示すような3次元データを作成する。なお、このステップS72から後述するステップS86までの処理は、コンピュータ22によって実行される。
【0068】
続いて、ステップS74では、ステップS72で作成した3次元データを極座標変換して、図16に示すような3次元の極座標データを作成する。具体的には、3次元データから中心軸(例えば重心)を算出し(図15の破線参照)、中心軸を中心として、3次元データを極座標変換する。
次いで、ステップS76では、ステップS74で作成した3次元の極座標データを所定の角度ごとにrz平面(半径−高さ平面)で切断して、図17に示すようなrz断面のグラフを作成する。図17は、θ=60°におけるrz断面のグラフである。続いて、ステップS78では、ステップS76で作成したrz断面のグラフから線間隙間を算出し、線間隙間関数ρ(θ)を算出する。例えば、図17のグラフからは、θ=60°、420°、780°における線間隙間ρ(60°)、ρ(420°)、ρ(780°)が算出される。この処理を各rz断面のグラフに対して行い、得られた線間隙間をつなげて近似することにより、線間隙間関数ρ(θ)を算出する。続いて、ステップS80〜S86では、渦巻きばね30の良否判定を行う。これらの処理は実施例1のステップS22〜S28の処理(図2B参照)と同様である。
【0069】
なお、ステップS78では、線間隙間関数ρ(θ)の代わりに、隣り合う素線の芯線間の距離(ピッチ)を表すピッチ関数ρ(θ)を算出してもよい。具体的には、ステップS76のrz断面のグラフから芯線(素線の幅方向中央を通る線)を抽出して芯線間の距離を算出することによりピッチ関数ρ(θ)を算出してもよい。通常の渦巻きばね30では、素線厚みは内フック32から外フック34にかけて略一定である。ピッチ=線間隙間+素線厚みであるため、素線厚みが略一定であれば、線間隙間関数ρ(θ)とピッチ関数ρ(θ)の挙動は略同一となる。このため、ピッチ関数ρ(θ)に基づいて良否判定する方法も有用である。
【0070】
(方法2)
この方法では、ステップS72までは上記方法1と同様の処理を行う。そして、ステップS72で作成した3次元データを2次元画像に変換する。具体的には、3次元データのz軸の値を画像の濃淡に変換する。即ち、z軸の値が閾値より小さい座標値は濃度値0に変換し、z軸の値が閾値以上の座標値は濃度値1に変換する。これにより、二値化した極座標画像が作成される。その後の処理は、実施例1のステップS16以降の処理(図2A図2B参照)と同様である。
【0071】
なお、変形例5ではレーザ変位計50を用いて形状測定する方法を説明したが、変位計の種類はこれに限られない。例えば、パターン投影式センサ、波長コンフォーカル方式を用いた光学センサ、パルスレーザ型の3D−TOFカメラ、平行光LEDを搭載した変位センサを用いてもよい。即ち、照射光はレーザ光に限られず、マイクロ波、ミリ波、テラヘルツ波などの電波(電磁波)を含む、光全般であってもよい。
また、変形例1〜4の良否判定方法又は定量的評価方法は、変形例5の形状測定方法にも適用し得る。また、後述する実施例2、実施例3及びこれらの変形例にも適用し得る。
【実施例2】
【0072】
次に、図18〜20を参照して実施例2の形状測定装置について説明する。以下では、実施例1と相違する点についてのみ説明し、実施例1と同一の構成についてはその詳細な説明を省略する。実施例3についても同様である。なお、実施例2、実施例3では、第2タイプの渦巻きばね30を例にとって説明するが、第1タイプの渦巻きばね30にも同様の測定方法を適用し得る。
【0073】
図18は、本実施例の形状測定装置による渦巻きばね30の形状測定の流れを示すフローチャートである。本実施例で測定される渦巻きばね30は、素線厚み(線材の板厚)が略一定であることを前提としている。まず、ステップS90において、実施例1のステップS10(図2A参照)と同様の処理を行って渦巻きばね30を撮影する。次に、ステップS91では、ステップS90で撮影された撮影画像から芯線を抽出して(芯線化して)芯線化画像を作成する。ステップS92では、芯線化画像の作成に成功したか否かを判断する。芯線化画像を作成する処理は、公知の方法(例えば、特開2013−19845)を用いて行うことができる。ここで、隣り合う素線同士が接触している渦巻きばね(図7参照)では、接触点Ctにおいて芯線が枝分かれすることになり、芯線が一通りに決まらない。この場合、芯線化画像の作成に失敗したと判断し(ステップS92でNO)、ステップS106に進む。一方、図19に示すように、渦巻きばね30の内フック32から外フック34まで芯線を抽出できた場合は、芯線化画像の作成に成功したと判断し(ステップS92でYES)、ステップS94に進む。なお、このステップS91から後述するステップS106までの処理は、コンピュータ22によって実行される。
【0074】
ステップS91の処理により抽出された芯線は、芯線化画像の画素の座標値群によって表されている。ステップS94では、これらの座標値群をトレースして番号付けする。具体的には、内フック32の先端点から外フック34の先端点に向かって、順に(x,y)、(x,y)・・・(xn−1,yn−1)と各画素の座標値に番号を付す。この処理は、芯線化画像を構成する全ての画素に対して行ってもよいし、等間隔に位置する画素に対して行ってもよい。以下では、番号付けされた座標値群を、芯線系列とも称する。
次に、ステップS96では、図20に示すように、芯線系列上の各座標値(x,y)(i=0〜n−1)の法線ベクトルを算出する。例えば、座標値(x,y)の法線ベクトルを求めるときは、座標値(x,y)及びその近傍の座標値群を直線近似し、当該直線に直交する外向きのベクトルを、座標値(x,y)の法線ベクトルとして算出する。法線ベクトルの始点は、座標値(x,y)である。なお、「外向きのベクトル」とは、渦巻きばね30の中心(図示省略)から離れる方向に延びるベクトルを表す。
【0075】
続いて、ステップS98では、ステップS96で算出したn個の法線ベクトルを用いて、n個の線間隙間ρ)を算出し、これに基づいて線間隙間関数ρ(θ)を算出する。具体的には、まず、座標値(x,y)の法線ベクトルが最初に交わる芯線(即ち、座標値(x,y)を含む芯線とその外周側で隣り合う芯線)を構成する座標値群のうち、座標値(x,y)に最も近い座標値(xL1,yL1)(図20参照)を選択する。次に、座標値(x,y)と座標値(xL1,yL1)との距離から素線厚みdを引いた値をi=kにおける線間隙間ρ)として算出する(即ち、ρ)={(x−xL1+(y−yL1}1/2−d)。このようにして算出されたn個の線間隙間ρ)をつなげて近似することにより、線間隙間関数ρ(θ)を算出する。
次いで、ステップS100〜S106では、渦巻きばね30の良否判定を行う。これらの処理は実施例1のステップS22〜S28の処理(図2B参照)と同様である。
【0076】
実施例2の構成によっても、実施例1と同様の効果を奏することができる。また、本実施例では芯線系列の各座標値について法線ベクトルを算出し、これにより芯線間の距離を算出する。このため、線間隙間(又はピッチ)を正確に算出することができ、渦巻きばね30の線間隙間形状の品質検査精度を向上できる。実施例2のような芯線化画像を用いた形状測定方法は、例えば、設計時のFEM解析などの高い精度が要求される用途に適している。
【0077】
なお、本実施例では渦巻きばね30の素線厚みdが略一定であるため、線間隙間ρ)の代わりにピッチρ)を算出し、これに基づいてピッチ関数ρ(θ)を算出してもよい。この場合、i=kにおけるピッチρ)は、次式;ρ)={(x−xL1+(y−yL1}1/2のように定義される。
【0078】
なお、本実施例においても、実施例1の変形例5の方法2と同様の方法を用いることができる。即ち、レーザ変位計50(図13参照)で測定した測定データから作成された3次元データを2次元画像に変換し、その2次元画像に対してステップS91以降の処理を行ってもよい。
【0079】
(変形例1)
本変形例では、図21を参照して、ステップS98における線間隙間関数ρ(θ)の別の算出方法について説明する。まず、図21に示すように、座標値(x,y)の法線ベクトルが最初に交わる芯線を構成する座標値群のうち、座標値(x,y)に最も近い座標値(xLa,yLa)と、二番目に近い座標値(xLb,yLb)を選択する。次に、座標値(xLa,yLa)と座標値(xLb,yLb)を通る直線L(図21の破線参照)の式を算出する。そして、座標値(x,y)と直線Lとの距離から素線厚みdを引いた値をi=kにおける線間隙間ρ)として算出する。このようにして算出されたn個の線間隙間ρ)から線間隙間関数ρ(θ)を算出してもよい。なお、2つの座標値を直線近似する代わりに、スプライン曲線又は二次曲線で補間してもよい。二次曲線で補間する場合は、上記2つの座標値に加え、三番目に近い座標値も選択し、これら3つの座標値を用いて近似する。なお、素線厚みdを引かずにピッチρ)を算出し、ピッチ関数ρ(θ)を算出してもよい。
【実施例3】
【0080】
次に、図22図25を参照して実施例3の形状測定装置について説明する。図22は、本実施例の形状測定装置による渦巻きばね30の形状測定の流れを示すフローチャートである。まず、ステップS110において、実施例1のステップS10(図2A参照)と同様の処理を行って渦巻きばね30を撮影する。次に、ステップS111では、ステップS110で撮影された撮影画像から極座標変換は行わずに輪郭線を抽出して輪郭線画像を作成する。輪郭線画像を作成する処理は、公知の方法(例えば、特開2009−257950や特開2013−19845)を用いて行うことができる。ステップS111の処理により抽出された輪郭線は、輪郭線画像の画素の座標値群によって表されている。ステップS112では、図24に示すように、ステップS111の処理により抽出された輪郭線の座標値群をトレースして番号付けする。具体的には、輪郭線の内フック端点から外フック端点までを一巡するように、順に(x,y)、(x,y)・・・(x2n−1,y2n−1)と各画素の座標値に番号を付す。この処理は、輪郭線画像を構成する全ての画素に対して行ってもよいし、等間隔に位置する画素に対して行ってもよい。なお、このステップS111から後述するステップS128までの処理は、コンピュータ22によって実行される。
【0081】
ステップS114では、図24に示すように、これらの番号付けされた座標値群を外側輪郭線を構成する座標値群(破線参照)と、内側輪郭線を構成する座標値群(実線参照)とに分離する。この処理は、例えば、公知の方法により2つの内フック端点(内フックの先端面と側面とにより構成される2箇所の角部)及び2つの外フック端点(外フックの先端面と側面とにより構成される2箇所の角部)を特定することにより行うことができる。以下では、外側輪郭線を構成する番号付けされた座標値群を、特に、外側輪郭線系列とも称する。次に、ステップS116では、ステップS114において番号付けされた座標値群を外側輪郭線を構成する座標値群と、内側輪郭線を構成する座標値群とに分離できたか否かを判断する。ここで、隣り合う素線同士が接触している渦巻きばね(図7参照)には、接触点Ctが存在するため、外側輪郭線を構成する座標値群と内側輪郭線を構成する座標値群とを分離できない。この場合、輪郭線の分離に失敗したと判断し(ステップS116でNO)、ステップS128に進む。一方、座標値群を外側輪郭線を構成する座標値群と内側輪郭線を構成する座標値群とに分離できた場合は、輪郭線の分離に成功したと判断し(ステップS116でYES)、ステップS118に進む。
次に、ステップS118では、図25に示すように、輪郭線系列上の各座標値(x,y)(i=0〜n−1)の法線ベクトルを算出する。この処理は、実施例2のステップS96の処理と同様である。
【0082】
続いて、ステップS120では、ステップS118で算出したn個の法線ベクトルを用いて、n個の線間隙間ρ)を算出し、これに基づいて線間隙間関数ρ(θ)を算出する。具体的には、まず、座標値(x,y)の法線ベクトルが最初に交わる内側輪郭線(即ち、座標値(x,y)を含む外側輪郭線とその外周側で隣り合う内側輪郭線)を構成する座標値群のうち、座標値(x,y)に最も近い座標値(xL2,yL2)(図25参照)を選択する。座標値(x,y)と座標値(xL2,yL2)との距離をi=kにおける線間隙間ρ)として算出する(即ち、ρ)={(x−xL2+(y−yL2}1/2)。このようにして算出されたn個の線間隙間ρ)をつなげて近似することにより、線間隙間関数ρ(θ)を算出する。
次いで、ステップS122〜S128では、渦巻きばね30の良否判定を行う。これらの処理は実施例1のステップS22〜S28の処理(図2B参照)と同様である。
実施例3の構成によっても、実施例1と同様の効果を奏することができる。
なお、本実施例においても、ステップS120では、実施例2の変形例1と同様の方法を用いて線間隙間関数ρ(θ)を算出することができる。
【0083】
(変形例1)
本変形例では、図26図31を参照して、線間隙間関数ρ(θ)の代わりに素線厚み関数ρ(θ)を算出する方法について説明する。図26は、本変形例の形状測定装置による渦巻きばね30の形状測定の流れを示すフローチャートである。図26のステップS130〜ステップS136までの処理は、実施例3のステップS110〜ステップS116までの処理と同様である。図27は、ステップS130で撮影された渦巻きばね30の撮影画像を示す。図27から明らかなように、本変形例で測定対象となる渦巻きばね30は、素線厚みが一定ではない。図28は、ステップS131で作成された輪郭線画像を示し、図29は、ステップS136で輪郭線の分離に成功した場合(ステップS136でYES)の外側輪郭線の座標値群(破線参照)と内側輪郭線の座標値群(実線参照)を示す。以下では、内側輪郭線を構成する番号付けされた座標値群を、特に、内側輪郭線系列とも称する。
次に、ステップS138では、図30に示すように、内側輪郭線系列の中間の座標値における法線ベクトルを算出する。法線ベクトルの算出方法は、実施例3のステップS118と同様である。即ち、ステップS138で算出される法線ベクトルは、外向きのベクトル(渦巻きばね30の中心から離れる方向に延びるベクトル)である。
【0084】
続いて、ステップS140では、図30に示すように、中間座標(x(n+1)/2,y(n+1)/2)の隣の座標(x(n+1)/2−1,y(n+1)/2−1)から、内側輪郭線系列の始点までの各座標値(x,y)(i=(n+1)/2−1〜0)の法線ベクトルを算出する。なお、座標値(x,y)を始点とする法線ベクトルには「外向きの法線ベクトル」と「内向きの法線ベクトル(即ち、渦巻きばね30の中心に近づく方向に延びるベクトル)」の2種類がある。このステップでは、これら2種類の法線ベクトルのうち、「1つ前の座標値で算出された法線ベクトルとのなす角が小さい方の法線ベクトル」が選択される。
続いて、ステップS142では、図31に示すように、内側輪郭線系列の中間座標値とその外側で隣り合う座標値から終点までの各座標値(x,y)(i=(n+1)/2+1〜n−1)の法線ベクトルを算出する。このステップにおいても、ステップS140と同様に、「1つ前の座標値で算出された法線ベクトルとのなす角が小さい方の法線ベクトル」が選択される。
【0085】
次いで、ステップS144では、ステップS138〜S142で算出したn個の法線ベクトルを用いて、n個の素線厚みρ)を算出し、これに基づいて素線厚み関数ρ(θ)を算出する。具体的には、まず、座標値(x,y)の法線ベクトルが最初に交わる外側輪郭線(即ち、座標値(x,y)を含む内側輪郭線とその外周側で隣り合う外側輪郭線)を構成する座標値群のうち、座標値(x,y)に最も近い座標値(xL3,yL3)(図30参照)を選択する。座標値(x,y)と座標値(xL3,yL3)との距離をi=kにおける素線厚みρ)として算出する(即ち、ρ)={(x−xL3+(y−yL3}1/2)。このようにして算出されたn個の素線厚みρ)をつなげて近似することにより、素線厚み関数ρ(θ)を算出する。ステップS146〜S152までの処理は、実施例1のステップS22〜S28の処理と同様である。
なお、本変形例においても、ステップS144では、実施例2の変形例1と同様の方法を用いて素線厚み関数ρ(θ)を算出することができる。
【0086】
また、実施例3及びその変形例1においても、実施例1の変形例5の方法2と同様の方法を用いることができる。即ち、レーザ変位計50(図13参照)で測定した測定データから作成された3次元データを2次元画像に変換し、その2次元画像に対してステップS111以降の処理又はステップS132以降の処理を行ってもよい。
【0087】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【0088】
例えば、上述した実施例では、極座標変換するときの原点として、渦巻きばね30の重心Gを用いたが、本発明はこのような実施形態に限られない。例えば、極座標変換するときの原点は、渦巻きばね30の内側ではなく、渦巻きばね30の外側に設定してもよい。
【0089】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は、複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0090】
10:形状測定装置、30:渦巻きばね、32:内フック、34:外フック、40、42、44、46、48:画素群
図1
図2A
図2B
図2C
図2D
図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
【手続補正書】
【提出日】2017年2月28日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0040
【補正方法】変更
【補正の内容】
【0040】
ステップS64では、θ=θのときの画素群42の外側エッジの座標値のr成分rを検出する。rは、θ=θのライン上のr成分がg(θ−1)−δ≦r≦g(θ−1)+δとなる範囲内で、D(θ,r)=1かつD(θ,r+1)=0を満たすrによって定義される。例えば、k=1の場合は、θ=1°のライン上においてg(0)−δ≦r≦g(0)+δとなる範囲内で、D(θ,r)=1かつD(θ,r+1)=0を満たすrがθ=θの外側エッジの座標値のrとして検出される。
次に、ステップS65では、ステップS64で外側エッジの座標値のrを検出できたか否か判断する。上記の条件を満たすrが存在する場合(ステップS65のYES)は、ステップS66に進み、上記の条件を満たすrが存在しない場合(ステップS65のNO)、ステップS69に進む。なお、ステップS65でNOの場合とは、θ=θのラインにおける上記rの範囲内で、隣接する2つの画素の濃度値が右方向に黒画素から白画素に変化しない場合である。即ち、具体的には、θ=θのときの画素群42に相当する部分の素線が、外フック34と接触しているか、他の部分の素線と接触しているか、その形状が規格外である場合などが考えられる。
ステップS66では、ステップS64で検出されたrをg(θ)として記憶する。例えば、k=1の場合は、θ=1°のときの外側エッジの座標値のrをg(1)として記憶する。g(θ)はRAMに保存される。