JP6647094B2 - 表面性状測定機用のパートプログラム生成装置 - Google Patents

表面性状測定機用のパートプログラム生成装置 Download PDF

Info

Publication number
JP6647094B2
JP6647094B2 JP2016052043A JP2016052043A JP6647094B2 JP 6647094 B2 JP6647094 B2 JP 6647094B2 JP 2016052043 A JP2016052043 A JP 2016052043A JP 2016052043 A JP2016052043 A JP 2016052043A JP 6647094 B2 JP6647094 B2 JP 6647094B2
Authority
JP
Japan
Prior art keywords
height
part program
measurement
point
obstacle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016052043A
Other languages
English (en)
Other versions
JP2017166955A (ja
Inventor
哲哉 古賀
哲哉 古賀
小島 司
司 小島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitutoyo Corp
Original Assignee
Mitutoyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitutoyo Corp filed Critical Mitutoyo Corp
Priority to JP2016052043A priority Critical patent/JP6647094B2/ja
Priority to DE102017203530.7A priority patent/DE102017203530B4/de
Priority to US15/457,005 priority patent/US10521923B2/en
Priority to CN201710157687.3A priority patent/CN107202547B/zh
Publication of JP2017166955A publication Critical patent/JP2017166955A/ja
Application granted granted Critical
Publication of JP6647094B2 publication Critical patent/JP6647094B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/2441Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures using interferometry
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • G01B21/04Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness by measuring coordinates of points
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/30Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring roughness or irregularity of surfaces
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B2210/00Aspects not specifically covered by any group under G01B, e.g. of wheel alignment, caliper-like sensors
    • G01B2210/50Using chromatic effects to achieve wavelength-dependent depth resolution
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37573In-cycle, insitu, during machining workpiece is measured continuously
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Description

本発明は、表面性状測定機用のパートプログラム生成装置に関する。具体的には、表面性状測定機で測定対象(以下、ワーク)を測定するにあたって、ワーク測定手順を測定機に指示するパートプログラムの作成を支援する装置に関する。
従来、CNC(Computer Numerical Control)タイプの画像測定機において、ワークの測定条件を記述したパートプログラムは、おおむね次の2つの方法を用いて作成される。
一つはオンラインティーチングである。
オンラインティーチングでは、測定機上に実際のワークを載置して、マニュアル操作で実際にワークを測定すると同時にその測定手順を画像測定機に記憶させる。
もう一つはオフラインティーチングである。
オフラインティーチングでは、ワークの2次元CADデータを取り込んで画面上に表示させ、この2次元CADデータを参照しながらマウスやキーボードといった入力手段によるコマンド打ち込みにより測定手順をプログラミングしていく(例えば特許文献1、2、3)。
オフラインティーチングで測定パートプログラムを作成する様子を概説する。
図1はオフラインティーチングで測定手順(測定条件)を設定していくためにユーザに提供されるGUI(グラフィカルユーザインターフェース)画面121の一例である。図1において、左上のウィンドウ125にはワークのCADデータが表示されている。ここで表示されているのは、ワークの平面図である。
例として、ワークの平面視において、左下に円C1があり、右上に円C2があるとする。そして、ユーザとしては、円C1を円測定(例えば中心および径の測定)した後、続けて円C2を円測定したいとする。
この場合、カメラを円C1の直上から円C2の直上に移動させるように測定手順(測定条件)を設定入力することになる。
GUI画面121には、測定手順(測定条件)の設定によく使うコマンドがアイコン140として用意されている。さらに、ユーザが設定入力した測定手順(測定条件)は、編集用ウィンドウ122にわかりやすく表示されるようになっている。
編集用ウィンドウ122は、日常使用される言語(編集用言語)でわかりやすく表示され、専門的なプログラミング言語ではないので、誰でも簡単に内容を理解できる。編集用ウィンドウ122を見ながら、測定手順(測定条件)を途中で挿入・削除・変更するといった編集作業も容易に行える。
ユーザは、用意されたコマンドアイコン140をマウスで操作したり、キーボードで数値入力したりすることにより測定手順(測定条件)を入力していく。
円C1を円測定してから円C2の測定に移行する測定手順(測定条件)を設定する場合、例えば次のようにする。
まずカメラを円C1の直上に移動させる移動命令1を設定する。移動命令のコマンドアイコンである移動コマンドアイコン141をクリックし、移動先である円C1の(中心)座標(x1、y1、z1)を入力する。円C1の中心座標をキーボードで直接打ち込んでもよいし、その他、例えば円C1の周上の任意の点をクリックすることで自動的にCADデータから円中心を認識させてもよい。その後、円測定のコマンドアイコンである円測定コマンドアイコン142をクリックする。
続いて、カメラを円C2の直上に移動させる移動命令2を設定する。すなわち、移動コマンドアイコン141をクリックし、円C2の中心座標(x2、y2、z2)を入力する。そして、円測定コマンドアイコン142をクリックする。このようにして測定手順(測定条件)が設定される。
画像測定システムは、設定入力された測定手順(測定条件)を画像測定機が読み取り実行できるパートプログラム言語に展開・変換する機能を有する。
ユーザが編集用言語で設定した測定条件の命令セットをパートプログラム言語の命令セットに変換することでユーザが意図した測定を画像測定機に実行させるパートプログラムができる。
このようにして、2次元CADデータを用いたオフラインティーチングでパートプログラムが作成される。このパートプログラムを画像測定機が読み取って実行することにより、ワークの測定が行われる。つまり、円C1を円測定した後、円C2の直上に移動して円C2の円測定が行われる。
特許3596753 (発行日2004年12月2日) 特許4812477 (発行日2011年11月9日) 特許4932202 (発行日2012年5月16日)
2次元CADデータは、3次元CADデータとは違って、立体体な情報を持っていない。したがって、2次元CADデータを用いたオフラインティーチングによってパートプログラムを作成した場合、画像測定システムは、ワークの立体形状に関する情報を取得できない。
カメラの移動経路上に段差や凸部が存在していても、画像測定システムはそのことを認識できず、もちろん、自動的に干渉チェックを行うこともできない。画像測定機がパートプログラムをそのまま実行してしまうと、例えば、図2に示すように、カメラ16が凸部B0に接触してしまうという問題が発生する。
従来、画像測定機は、比較的平坦なものを測定対象としていたので、移動経路上でカメラ16がワークWに接触することを心配する必要はなかった。しかし、今後は、比較的大きな凹凸を有するワークも画像測定機で測定したいというニーズに応えていく必要がある。したがって、2次元CADデータを用いたオフラインティーチングにおいて、カメラとワークとの干渉を回避するパートプログラムを容易に作成できるようにする画像測定機用パートプログラム生成装置が求められている。
本発明のパートプログラム生成装置は、
非接触でワークを測定するセンサを有し、前記センサと前記ワークとを相対移動させながら前記ワークの形状を測定する表面性状測定機の制御プログラムであるパートプログラムを生成するパートプログラム生成装置であって、
ユーザの入力操作を受けて測定手順を設定していく測定条件設定部と、
前記測定条件設定部で設定された測定手順をパートプログラム言語に変換するパートプログラム生成部と、を備え、
前記測定条件設定部は、ユーザーインターフェースとして、
編集用言語で測定手順を編集できるエディタと、
測定手順の設定に使う前記編集用言語の命令セットと、をユーザに提供し、
前記編集用言語の命令セットには、前記センサを出発点から目的点に向けて移動させる際に障害を越えるように指令する迂回移動命令が含まれる
ことを特徴とする。
本発明では、
前記迂回移動命令が障害高さのパラメータを含み、
ユーザによって前記迂回移動命令が選択された場合、前記測定条件設定部は、ユーザに対し、障害の高さの入力を促す
ことが好ましい。
本発明では、
ユーザにワークの最高点の高さを入力させ、
ユーザによって前記迂回移動命令のアイコンが選択された場合、
前記測定条件設定部または前記パートプログラム生成部は、前記最高点の高さを出発点から目的点に向けて移動する際の障害の高さとして自動設定する
ことが好ましい。
本発明では、
さらに、ワークの高さ分布データを記憶する高さ分布データ記憶部を有する
ことが好ましい。
本発明では、
前記パートプログラム生成部は、
出発点の座標値と、目的点の座標値と、を取得し、
前記ワークに存在する凸部あるいは段差であって前記センサの移動の妨げになり得る障害の高さデータを取得し、
前記センサが前記障害の上を移動する際に前記センサと前記障害との間に確保されるべき安全ギャップを設定し、
前記障害の高さと、前記センサの作動距離と、前記安全ギャップと、に基づいて、前記センサが前記障害の上を越える際に必要とされる安全高さを算出し、
出発点の座標値と、目的点の座標値と、前記安全高さと、に基づいて、前記出発点から前記目的点に至る経路において前記障害の上を前記安全高さ以上で通過する安全経路を求める
ことが好ましい。
オフラインティーチングで測定手順(測定条件)を設定していくためにユーザに提供されるGUI画面の一例を示す図である。 カメラが移動する様子を例示する図である。 画像測定システムの全体構成を示す図である。 パートプログラム生成装置の機能ブロック図である。 ユーザに提供されるGUI画面の一例を示す図である。 カメラが障害を迂回する様子を例示した図である。 ワークWの一例を例示する図である。 作成された測定手順の一例を示す図である。 測定手順をパートプログラム言語に変換する様子を例示する図である。 測定点Pから測定点Pへの移動を説明するための拡大図である。 パートプログラム生成の手順を説明するためのフローチャートである。 パートプログラム生成の手順を説明するためのフローチャートである。 測定手順をパートプログラム言語に変換する様子を例示する図である。 測定手順をパートプログラム言語に変換する様子を例示する図である。 測定点Pから測定点Pへの移動を説明するための拡大図である。 パートプログラム生成の手順を説明するためのフローチャートである。 測定手順をパートプログラム言語に変換する様子を例示する図である。 測定点Pから測定点Pへの移動を説明するための拡大図である。 測定手順をパートプログラム言語に変換する様子を例示する図である。 ユーザに提供されるGUI画面の一例を示す図である。 パートプログラム生成装置の機能ブロック図である。 ユーザに提供されるGUI画面の一例を示す図である。 測定手順をパートプログラム言語に変換する様子を例示する図である。 測定手順をパートプログラム言語に変換する様子を例示する図である。 カメラが移動する様子を例示する図である。 カメラが移動する様子を例示する図である。 変形例6において、第4迂回パターンと第5迂回パターンを模式的に示す図である。 変形例6において、第4迂回パターンを説明するためのフローチャートである。 変形例6において、測定手順をパートプログラム言語に変換する様子を例示する図である。 変形例6において、第5迂回パターンを模式的に示す図である。 変形例6において、第5迂回パターンを説明するためのフローチャートである。 変形例6において、測定手順をパートプログラム言語に変換する様子を例示する図である。 変形例7を模式的に示す図である。
本発明の実施形態を図示するとともに図中の各要素に付した符号を参照して説明する。
(第1実施形態)
図3は、表面性状測定機としての画像測定システム10の全体構成を示す図である。
画像測定システム10は、画像測定機1と、画像測定機1を駆動制御すると共に必要なデータ処理を実行する制御コンピュータユニット2と、を具備する。
画像測定機1は、次のように構成されている。
架台11上に被測定対象であるワークWを載置する測定テーブル13が装着されている。測定テーブル13は、図示しないY軸駆動機構によってY軸方向に駆動される。架台11の後端部には上方に延びるフレーム14が固定されている。フレーム14の上部から前面に張り出したカバー15の内部には図示しないX軸駆動機構およびZ軸駆動機構が配設されている。これらX軸駆動機構およびZ軸駆動機構によってCCDカメラ(以下、カメラ)16が支持されている。
カメラ16は、測定テーブル13を上部から臨むように取り付けられている。カメラ16の下端側には、ワークWに照明光を照射するためのリング状の照明装置17が設けられている。
制御コンピュータユニット2は、ホストコンピュータ21と、入出力手段25と、を有する。
入出力手段25としては、ディスプレイ24と、キーボード22と、マウス23と、プリンタ4と、が設けられている。なお、ディスプレイ24は、タッチパネルであってもよい。
ホストコンピュータ21は、CPUとメモリとを有するいわゆるコンピュータである。ホストコンピュータ21は、ユーザによる入力操作に応じて画像測定機1を駆動制御する。また、ホストコンピュータ21は、カメラ16で取得された画像データを処理してワーク(測定物)Wの形状解析等の処理を実行する。
また、ホストコンピュータ21は、ディスプレイ24の表示制御を行い、ユーザにグラフィカルユーザインターフェースを提供する。
本実施形態においては、2次元CADデータを用いたパートプログラムの生成方法およびその装置を説明するが、このホストコンピュータ21がパートプログラム生成装置となっている。
そして、主としてホストコンピュータ21が画像測定機1の動作を制御する「制御装置」となっている。
(パートプログラム生成装置)
図4は、パートプログラム生成装置100の機能ブロック図である。
パートプログラム生成装置100は、パートプログラム生成プログラムをCPUにロードすることにより、CPUおよび周辺回路(ROM、RAM等)によって実現される。
パートプログラム生成装置100は、CADデータ記憶部110と、測定条件設定部120と、パートプログラム生成部130と、を備える。
CADデータ記憶部110は、ワークの2次元CADデータを記憶するメモリである。
測定条件設定部120は、例えば図5に示すGUI画面121をユーザに提供するとともに、ユーザの入力操作を受けて測定手順(測定条件)を設定していく。
測定条件設定部120は、専門的なプログラミングのコマンドではなく、わかりやすい編集用言語で測定条件を編集できるエディタウィンドウ122をユーザに提供する。
また、測定条件設定部120は、測定手順(測定条件)の設定によく使う命令セットをコマンドアイコン140としてユーザに提供する。本実施形態において、図5に示されるように、"迂回移動"というコマンドアイコンの迂回移動コマンドアイコン124が新設されている。
迂回移動コマンドアイコン124によって提供される機能については後述する。
図5の左上のCADデータウィンドウ125にワークのCADデータが表示されている。ここでは、ワークの平面図が表示されている。
一例として、円C1を円測定した後、カメラ16を円C2の直上に移動させて、円C2を円測定したいとする。ただし、円C1と円C2とを結ぶ経路上には、凸部B0があるとする。
このような場合、カメラ16が移動中に凸部B0に接触してしまう可能性がある。
そこで、図6に例示するように、凸部B0を迂回するようにカメラ16を移動させなければならない。
"移動"命令を複数組み合わせることで迂回路を設定するのは原理的には可能なのであるが、編集用言語を用いるとしても、このような迂回路をユーザが一つ一つ設定入力するのは大変な労力を要する。
本実施形態では、測定条件の編集用言語に、迂回移動コマンドアイコン124が用意されている。
ユーザは、出発点である移動元(円C1)から目的点である移動先(円C2)にカメラ16を移動させるにあたり、途中に凸部B0があると判断する場合には、"迂回移動"命令である迂回移動コマンドアイコン124を用いて命令を設定する。
さて、ユーザが迂回移動コマンドアイコン124をクリックしたとする。すると、編集用ウィンドウ122に迂回移動命令に必要な入力事項として、移動先の座標値と、"障害の高さ"とを尋ねるメッセージ126が表示される。
ここでいう"障害の高さ"とは凸部B0の高さのことである。
ユーザは、例えば、平面図ではなく、側面図あるいは断面図のCADデータを別途参照して凸部B0の高さを入力しておけばよい。
あとは、後述のパートプログラム生成処理によって、凸部B0を適切に迂回しながら移動先に向かう経路をもったパートプログラムが自動的に生成される。
なお、図5のGUI画面121において、パラメータ設定のウィンドウ127が表示されている。パラメータとして、カメラ16の作動距離(ワーキングディスタンス)と安全ギャップとを設定入力しておく。
カメラ16の作動距離とは、カメラ16の下端面と焦点面との距離である。例えば図6を参照されたい。作動距離は、カメラ16の種類や倍率によって決まる値であるから、測定条件設定部120あるいはパートプログラム生成部130が自動取得するようにしてもよい。ここでは、作動距離が30mmのカメラ16を使用するとする。
安全ギャップとは、カメラ16が障害を跨ぐときにカメラ16の下端と障害との間に確保すべき間隔である。
数mm程度の値を設定しておけばよい。デフォルトとして所定の値が設定されていてもよいし、ユーザが任意の値を入力設定してもよい。
ここでは、安全ギャップが5mmに設定されているとする。
このようにしてユーザは測定条件設定部120に"迂回移動命令"を設定する。
迂回移動命令は新しい機能であるが、ユーザにとってみれば、既存の移動命令との差は"障害の高さ"を入力する手間があるかないかだけである。
カメラ16の移動経路をより詳細に、かつ、網羅的に説明するため、図7のようなワークWを考える。
点P〜点Pは測定点である。カメラ16は、点Pから点Pへ移動しながら各測定点(P〜P)を測定していくとする。
測定点と測定点との間には凸部がある。凸部を障害B1から障害B6と称することにする。
さらに、より具体的に説明するため、数値例を設定する。
図7において、測定点Pの高さ(Z座標値)を0(ゼロ)とする。
障害B1から障害B6の高さ(Z座標値)をすべて+6とする。
測定点Pから測定点Pの高さ(Z座標値)を、順に、−6、−23、−33、−23、−6、0、とする。
先に説明した迂回移動コマンドアイコン124を使用して測定条件を入力していくと図8のような測定手順が簡単に作成できる。
迂回移動コマンド124により、移動先の座標と、その途中にある障害の高さを入力していくだけである。
なお、測定点Pのx座標、y座標をx1、y1とし、以下、測定点PからPのx座標、y座標についても同様に添え字を用いて表わすこととした。
例えば測定点Pから測定点Pへ迂回移動を指令する場合、迂回移動命令Pとして、移動先である測定点Pの座標値(x2、y2、−10)と、その途中にある障害B1の高さ+6を入力しておけばよい。
さて、パートプログラム生成部130は、測定条件設定部120で設定された測定手順(測定条件)(図8)をパートプログラム言語に展開・変換する(図9参照)。すなわち、編集用言語の命令セットをパートプログラム言語の命令セットに変換する。
本実施形態においては、編集用言語に"迂回移動"の命令セットである迂回移動コマンドアイコン124が新設された。
これに伴って、パートプログラム生成部130においても"迂回移動"の命令を適切にパートプログラム言語の命令セットに展開・変換しなければならない。
この点を、図11、図12、図16のフローチャートおよび図10、図15、図18、の動作例を参照しながら説明する。
(パートプログラム生成方法)
パートプログラム生成部130の動作を図11、図12、図16のフローチャートを参照しながら順に説明していく。
編集用言語の命令セットとパートプログラム言語の命令セットとは原則的には一対一に対応しており、単純には、編集用言語の各命令セットをパートプログラム言語にコンパイルしてしまえばよい。
ただし、迂回移動命令のように新設された命令の場合、画像測定機1には迂回移動命令を直接実行する機能がなく、迂回移動命令を単一の命令にコンパイルすることができない場合がある。
この場合、迂回移動命令で意図していることを画像測定機1がすでに持っている機能で実現するように翻訳する必要がある。
本実施形態においては、まさに、迂回移動命令を画像測定機1に実行させる点に特徴を有するので、パートプログラム生成部130の動作として、測定条件設定部120に設定された迂回移動命令をパートプログラムに展開する処理を説明していく。
さて、カメラ16が一の測定点(出発点)から次の測定点(目的点)へ移動する際、カメラ16が障害に接触しないようにしなければならない。したがって、カメラ16は、測定点から測定点へ移動するにあたって、必要に応じ、直行するのではなく、迂回する経路(図7中の矢印)をとることになる。
障害を跨いで測定点から測定点に移動する場合、4つの移動パターンがある。
つまり、迂回不要、第1迂回パターン、第2迂回パターン、第3迂回パターンである。
具体例を参照しながら、これら4つの移動パターンを順に説明する。
(迂回不要の移動パターン)
測定点Pから測定点Pに移動する場合を考える。つまり、測定点Pが出発点であり、測定点Pが目的点である。
図10は、測定点Pから測定点Pへの移動を説明するための拡大図である。
また、図8の測定条件(測定手順)でいうと、迂回移動命令Pに注目して頂きたい。
図11のフローチャートに示すように、パートプログラム生成部130は、迂回移動命令をパートプログラムに展開するにあたって、まず、カメラ16の"現在高さ"を取得する(ST110)。
ここで、「カメラの高さ」とは、カメラ16の焦点面の高さを意味する。
また、"現在高さ"というのは、当該"迂回移動命令P"の実行開始時にカメラ16がある高さである。
言い換えると、当該"迂回移動命令"のひとつ前の命令(測定1)が終了した時点におけるカメラ16の高さのことである。
さて、現在高さを取得する(ST110)。測定点Pの高さは0である。
図8の測定条件(測定手順)中で当該迂回移動命令Pの一つ前の移動(移動命令P)で測定点Pに到達しているのであるから、移動命令Pで指示されている移動先を読み出せばよい。
次に、目的点高さを取得する(ST120)。
目的点とは移動先のことであり、ここでは測定点Pのことである。測定点Pの高さは、−6である。
続いて、パートプログラム生成部130は、"安全高さ"を算出する(ST130)。
ここで「安全高さ」とは、カメラ16が安全に障害B1を跨ぐときに必要とされる「焦点面の高さ」のことである。
例えば図6を参照して頂くと、カメラ16が障害を跨ぐ際には、カメラ16の下端と障害との間に安全ギャップが確保されなければならない。
したがって、カメラ16が安全に障害を跨ぐときに必要とされる焦点面の高さ(=安全高さ)は、次のように表される。
(安全高さ)=(障害の高さ)+(安全ギャップ)−(作動距離)
安全高さの算出(ST130)の具体的手順を図12のフローチャートに示す。
障害の高さ(ST131)、作動距離(ST132)、安全ギャップ(ST133)を取得し、前記の式で安全高さを算出する(ST134)。
ここでは、障害の高さ(ST131)が6で、作動距離(ST132)が30で、安全ギャップ(ST133)が5である。
(安全高さ)=(障害の高さ)+(安全ギャップ)−(作動距離)
=6+5−30
=−19
このようにして安全高さが求まる。
安全高さ(−19)が求まったら、次に、"安全高さ"を"現在高さ"および"目的高さ"と対比する(ST140、ST150)。
今の例では、"現在高さ"(=0)も"目的高さ"(=−6)も"安全高さ"(=−19)よりも高い。この場合、カメラ16が現在高さ(=0)から目的高さ(=−6)に直行しても、カメラ16の高さが"安全高さ"(=−19)を下回ることはない。
したがって、パートプログラム生成部130は、測定点Pから測定点Pへの迂回移動命令Pをパートプログラムに展開するにあたって迂回不要と判断し、迂回無しの単なる移動命令として変換する(図13参照)。すなわち、迂回移動命令Pがパートプログラムに展開されても、移動先に直行する一つの移動命令(moveP)になるだけである。
(第1迂回パターン)
次に、迂回が必要になる例として、測定点Pから測定点Pへの移動を考える(図7、図10)。
図8の測定条件(測定手順)でいうと、迂回移動命令Pに注目して頂きたい。
現在高さを取得すると(ST110)、測定点Pの高さは"−6"である。
目的点の高さを取得すると(ST120)、測定点Pの高さは"−23"である。
安全高さを算出すると(ST130)、障害B2の高さは+6であるから(ST131)、安全高さは先程と同じように"−19"である。
この安全高さ(−19)を現在高さ(−6)および目的点高さ(−23)と対比する(ST140、ST150)。
すると、現在高さ(−6)は安全高さ(−19)より大であるが(ST140:YES)、目的点高さ(−23)は安全高さ(−19)よりも小である(ST150:NO)。
目的点高さ(−23)が安全高さ(−19)よりも低いため、カメラ16が目的点に直行しようとすると、目的点に到達する前に、カメラ16が障害(B2)に接触してしまう可能性がある。この場合、パートプログラム生成部130は、測定条件の迂回移動命令をパートプログラムに展開するにあたって、第1迂回パターンの迂回路をとるようにする。
すなわち、パートプログラム生成部130は、迂回移動命令を2つの移動命令に展開する(図14参照)。
第1迂回パターンにおいては、図11のフローチャートに示すように、まず、カメラ16を水平移動によって目的点(ここでは点P)の直上へ移動させるようにする(ST170)(図10中の矢印A1)。それから、カメラ16を鉛直方向に沿って目的点の高さに降下させるようにする(ST180)(図10中の矢印A2)。
"現在高さ"(−6)は安全高さ(−19)よりも大なので、現在高さのまま水平移動すれば障害(B2)を安全に超えていけるはずである。
水平移動で安全に障害の上を通過したら、目的点に向かえばよい。
ただ、測定条件には、障害B2の高さ(+6)は入力されているが、障害B2の詳しい位置(座標)は入力されていない。
障害B2を確実に通過したといえるのは、目的点(測定点P)の直上に来たときである。したがって、目的点の直上まで水平移動させた後(ST170)、目的点へ降下する(ST180)、という経路が、安全を確保する最適の経路である。
(第2迂回パターン)
次に、第2迂回パターンを採用するケースを説明する。
例として、測定点Pから測定点Pへの移動を考える(図7、図15)。
図15は、測定点Pから測定点Pへの移動を説明するための拡大図である。
図8の測定条件(測定手順)でいうと、迂回移動命令Pに注目して頂きたい。
現在高さを取得すると(ST110)、測定点Pの高さは"−23"である。
目的点の高さを取得すると(ST120)、測定点Pの高さは"−6"である。
安全高さは、これまで同様、"−19"である(ST130)。
図11のフローチャートにおいて、安全高さ(−19)をまず現在高さ(−23)と対比する(ST140)。
すると、現在高さ(−23)が安全高さ(−19)よりも小さい(ST140:NO)。
続きのフローチャートは図16を参照されたい。
次に、目的点高さ(−6)を安全高さ(−19)と対比する(ST210)。
目的点高さ(−6)は安全高さ(−19)よりも大である(ST210:YES)。
目的点高さ(−6)は安全高さ(−19)よりも高いのであるが(ST210:YES)、現在高さ(−23)が安全高さ(−19)よりも低いので(ST140:NO)、カメラ16が現在位置(測定点P)から目的点(測定点P)に直行しようとすると、目的点(測定点P)に到達する前に、カメラ16が障害B5に接触する可能性がある。
そこで、この場合、パートプログラム生成部130は、測定条件の迂回移動命令Pをパートプログラムに展開するにあたって、第2迂回パターンの迂回路をとるようにする。すなわち、パートプログラム生成部130は、迂回移動命令を2つの移動命令に展開する(図15、図17参照)。
具体的には、まず、カメラ16を鉛直方向に沿って目的点(測定点P)の高さまで上昇させる(ST220)(図15中の矢印A3)(図17のmoveP6−1)。
現在高さ(−23)が安全高さ(−19)よりも低いので、現在の高さから高さを変えずに横方向に移動するとカメラ16が障害(B5)に接触する可能性がある。
そこで、まずは、カメラ16を鉛直方向に上昇させ(図15中の矢印A3)、少なくとも安全高さ(−19)よりも高く移動させておく必要がある。
ここで、安全高さ(−19)まで上昇していれば、カメラ16は障害B5の上を安全に通過できるのであるが、目的点(測定点P)の高さ(−6)が安全高さ(−19)よりも高いのであるから、一度の動作で目的点の高さまで上昇しておくのが合理的である。そしてその後、カメラ16を水平移動によって目的点(測定点P)へ移動させる(ST230)(図15中の矢印A4)(図17のmoveP6−2)。
現在高さ(−23)が安全高さ(−19)よりも小さく(ST140:NO)、かつ、目的点高さ(−6)が安全高さ(−19)よりも大である(ST210:YES)ような場合には、目的点の高さまで上昇した後(ST220)、水平移動によって目的点へ移動する(ST230)、という経路が安全を確保する最適の経路である。
(第3迂回パターン)
次に、第3迂回パターンを採用するケースを説明する。
例として、測定点Pから測定点Pへの移動を考える(図7、図18)。
図18は、測定点Pから測定点Pへの移動を説明するための拡大図である。
図8の測定条件(測定手順)でいうと、迂回移動命令Pに注目して頂きたい。
現在高さを取得すると(ST110)、測定点Pの高さは−23である。
目的点の高さを取得すると(ST120)、測定点Pの高さは−33である。
安全高さは、これまで同様"−19"である(ST130)。
さて、安全高さ(−19)を現在高さ(−23)および目的点高さ(−33)と対比すると、いずれも安全高さ(−19)よりも低い(ST140:NO、ST210:NO)。
このようなケースにおいては、まずはカメラ16が安全に障害B3の上を通過するように配慮しなければならない。パートプログラム生成部130は、測定条件の迂回移動命令をパートプログラムに展開するにあたって、第3迂回パターンの迂回路をとるようにする。
すなわち、パートプログラム生成部130は、迂回移動命令を3つの移動命令に展開する(図19参照)。
フローチャートとしては図16を参照されたい。
具体的には、まず、カメラ16を鉛直方向に沿って安全高さ(−19)まで上昇させる(ST240)(図18中の矢印A5)(図19のmoveP4−1)。この高さまで上昇すれば、カメラ16が障害B3に接触する心配はない。
続いて、水平移動で目的点(測定点P)の直上へ移動する(ST250)(図18中の矢印A6)(図19のmoveP4−2)。
さらに、鉛直方向に沿って目的点へ降下する(ST260)(図18中の矢印A7)(図19のmoveP4−3)。この迂回路により、カメラ16は安全に目的点に移動することができる。
現在高さも目的点高さも安全高さよりも低い(ST140:NO、ST210:NO)ような場合、まずはカメラを安全高さまで上昇させて安全を確保したうえで目的点に向かう。これにより、カメラは安全に障害を越えて目的点に達することができる。
(作用効果)
このような本実施形態によれば次の効果を奏する。
(1)本実施形態によれば、オフラインティーチングで障害を越えるような迂回路を設定する場合であっても、ユーザの作業としては障害の高さを入力するだけでよい。
障害の高さを入力すれば、パートプログラム生成部130の機能によって自動的に迂回の必要性を判定し、さらに、必要な安全高さで安全に障害を越えるように自動的に迂回路が設定される。
仮にこの迂回路をユーザが手作業で設定するとなると非常に煩雑である。
障害ごとに安全高さを計算したり、現在高さや目的高さと比較して迂回の必要性を判断したり、適切な迂回路を逐一入力するというのはあまりにも時間が掛かってしまう。しかも、計算や入力を間違えると、カメラもワークも破損するおそれがある。
この点、本実施形態によれば、ユーザの負担増がほとんど無しで迂回路を適切に設定できる。したがって、比較的凹凸が大きいワークを画像測定するような場合でもパートプログラムの作成が簡単、迅速、そして安全に行えるのである。
(2)本実施形態によれば、パートプログラム生成部130が障害ごとに必要な安全高さを求めたうえで、最適な迂回路が自動設定される。
ここで、障害を超えるにあたってカメラ16の高さを十分に高いところまで上昇させてしまえば、カメラとワークとが接触するおそれはなくなる。極端にいえば、Z軸ストロークの最高点までカメラ16を上昇させてしまえば、カメラ16とワークWとが接触することはもちろんない。しかし、障害を越えるたびにそんな遠回りばかりしていては測定時間が無駄に長くなり、測定効率が極めて悪くなる。
この点、本実施形態では、障害の高さから安全高さを算出し(ST130)、安全に安全高さを超えかつ最も合理的な迂回路を取るようにできる。
したがって、高い測定効率を維持することができる。
(3)本実施形態では、画像測定機が迂回移動命令を直接実行できなくても、既存の移動命令の組み合わせで迂回移動を実現するようにできる。
画像測定機1のモーションコントローラの機能として迂回移動を実現するコマンドを新設するとなるとやや面倒な設計変更を要するが、本実施形態のように測定条件(測定手順)をパートプログラムに展開する段階で既存の移動命令の組み合わせに変換すれば画像測定機自体の変更は必要ない。
したがって、本実施形態の実施にあたっては、最小の追加コストでよい。
(変形例1)
上記第1実施形態においては、迂回移動命令のたびに障害の高さの入力を要求していた。
ここで、変形例1として、障害の高さの入力を毎回要求しないようにしてもよい。その方法として、例えば、予め、ワークのなかの最高点を入力させておくという方法が考えられる。例えば、図20のように、パラメータ設定の項目の一つとして、ワークの最高点を入力させる。そして、迂回移動命令の処理にあたっては、ワークの最高点を障害の高さとする。
ワークの最高点を障害の高さとして迂回路を設定すれば、絶対に安全な迂回路になることは明白である。ユーザとしては、毎回障害の高さを入力しなくてもよいので、測定条件の設定が非常に簡便になる。
ただ、この方法で迂回路を作成すると、ワークの最高点を安全に超える高さまで毎回カメラが上昇することになる。すると、必要以上に余計な回り道をすることになり、測定時間がそれだけ余計に長くなるということになる。
しかしながら、測定時間そのものよりも測定条件の入力作業に多大な時間を浪費する方が問題となる場合もある。例えば、試作品や少数品を測定する場合である。同じ形状のワークを数百個、数千個、数万個、と連続測定する場合は別問題であるが、試作品や少数品を測定する場合であれば多少の回り道は問題ではなく、入力作業の簡便さが優先される。
(変形例2)
障害の高さの入力を毎回要求しない別法として、2次元CADデータに加えて、ホストコンピュータに高さのデータを予め入力しておく、という方法も考えられる。
図21において、CADデータ記憶部110に高さ分布データ記憶部111が付設されている。
例えば、図22において、CADデータウィンドウ125にワークの平面図が表示されており、ハッチングで塗り分けられている。
この塗り分けは、CADデータの読み込みのあと、ユーザが予め行っておく。
ここでは、ユーザが各範囲を指定し、高さを入力したとする。
ホストコンピュータのグラフィック処理により、例えば、高さに応じてハッチングの密度を変えるなどして高低を表現するようにする。もちろん、カラーで塗り分けるようにしてもよい。
あるいは、予め塗り分けたCADデータを読み込むようにしてもよい。
ユーザ補助として、CADデータウィンドウ125中で各領域にマウスカーソルを合わせると、設定しておいた高さがポップアップまたはステータスバーなどに表示されるようにしておいてもよい。
あるいは、高さスケール171の範囲インジケータ172の上端、下端、或いは全体をマウスでドラッグして、所望の範囲を指定するとその高さ(例えば9mm−10mm)の領域だけが際立つように色が付き、その他の領域は退色するようにしてもよい。
ユーザが範囲を指定するとしたが、ユーザが図形を描くようにして範囲を指定する方法もあるし、ホストコンピュータのグラフィック処理機能を利用して、CADデータの輪郭線で囲まれた領域をコンピュータが自動認識するようにしてもよい。
高さを塗り分ける際、領域が重なることが有り得る。例えば、ワークの一番広い平坦面Wpの高さを設定したあと、その平坦面Wpのなかに障害となる凸部B0の高さを設定する場合がある。すると、凸部B0には二つの値が設定されていることになってしまう。このように領域が重なって二つの値が設定されている場合、どちらを優先するかルールを決めておく必要がある。
一つの考え方は、後から設定入力された高さを優先する、というものである。後から設定入力された凸部B0の高さを優先する。通常、凸部や孔部の領域はあとから選択されると考えられるので上記のルールでも十分に有用であると考えられる。
もちろん、先に入力した値と後から入力した値とのどちらを優先させるかをその都度ユーザが選択的に変更できるようにしてもよい。
もう一つの考え方として、包含される方、或いは狭い方に設定入力された高さを優先する、という方法もある。通常、広域的に大まかな設定を行い、それを局所的に修正設定していくので、このルールでも十分に有用であると考えられる。
もちろん、包含される方の値と包含する方の値とのどちらを優先させるかをその都度ユーザが選択的に変更できるようにしてもよい。
エディタウィンドウ122で測定条件を設定入力するにあたって、ユーザが迂回移動を指令した場合、測定条件設定部120は、現在位置と目的位置とから経路上の最高点を障害の高さとして自動設定する。これにより、ユーザが測定条件の編集中に一々障害の高さを入力する必要はなくなる。
なお、測定条件設定部120が高さデータから経路上の最高点を読み出すのではなく、パートプログラムへの展開時にパートプログラム生成部130が高さデータから経路上の最高点を読み出すようにしてもよい。
(変形例3)
測定条件設定部120に設定された測定条件をパートプログラム言語に展開するにあたっては、図23に示すように、迂回移動命令をサブルーチン161としてパートプログラムに組み込むようにしてもよい。
ここで、サブルーチン161は、図11、図12、図16で説明した手順で迂回移動経路を生成し、その移動経路でカメラを移動させるサブルーチンである。
測定手順のなかの各迂回移動命令は、パートプログラムに変換されるとき、実引数として移動先の座標(X、Y、Z)と障害高さHとをもち、サブルーチン161を呼び出すコール命令に変換される。
パートプログラムの実行時には、各コール命令がサブルーチン161を呼び出し、サブルーチン161は実引数に基づいて迂回移動経路を生成し、移動を実行する。
(変形例4)
上記第1実施形態では、画像測定機自体は"迂回移動命令"を直接には実行できないという前提で説明した。
もちろん、画像測定機(言い換えると、画像測定機のモーションコントローラ)が"迂回移動命令"を直接実行できてもよい。
迂回移動命令に対応するパートプログラム言語の命令を一つ用意しておく。
そして、図24に例示するように、迂回移動命令は、対応するパートプログラム言語にコンパイルされる。
パートプログラムの実行時、画像測定機(画像測定機のモーションコントローラ)は、要するには、図11、図12、図16のフローチャートの手順に従って迂回移動のコマンドを実行すればよい。
この場合は、画像測定機(画像測定機のモーションコントローラ)が「制御装置」を内蔵しているということである。
さらには、画像測定機が、パラメータ(カメラの作動距離、安全ギャップ)の設定、変更、迂回移動命令の障害高さパラメータの設定、変更、高さ分布データ(ファイル等)のロード、利用の機能を有していてもよい。
高さ分布データ(ファイル等)の作成支援機能はホストコンピュータ側でも良い。
(変形例5)
ここまでの説明では、カメラ16は、出発点から目的点に直線的に"直行"するものとした。
ただ、カメラ16と測定テーブル13との相対移動は、X軸、Y軸、Z軸の3つの駆動軸の協働で実現するものであるため、実際的には、カメラ16が出発点から目的点に直線的に直行するとは限らない。
例えば、図25のケースを考えてみる。
図25のワークにおいては、障害B8は円C1と円C2とを結ぶ直線から少しずれた位置にある。円C1の測定の後、カメラ16が円C2に向けて直線的に直行するならば、カメラは障害B8に接触しない。
しかし、Y駆動軸とX駆動軸とが調和的に協働せず、それぞれが独立に目的点を目指すとカメラ16の移動経路は直線的にならない(例えば、図25中の破線A8)。この場合、障害B8は円C1と円C2とを結ぶ直線から少しずれた位置にあるにもかかわらず、カメラ16の位置が障害B8よりも低いと、カメラ16が障害B8に接触する可能性がでてくる。したがって、出発点から目的点にカメラ16が移動する際に考慮すべき障害は、出発点から目的点に至る直線経路上にあるものだけでは不十分となる。
そこで、カメラ16の移動経路が直線からずれる場合も考慮する。
カメラ16の移動経路が直線からどんなにずれたとしても、すべての移動経路は出発点と目的点とを対角とする、辺が駆動軸に平行な長方形のなかに包含される。例えば図26を参照されたい。したがって、ユーザが障害の高さを入力する場合には、出発点と目的点とを対角とする長方形のなかに包含される障害の最高点を障害の高さとして入力することが好ましい。
また、測定条件設定部120あるいはパートプログラム生成部130が障害の高さを自動取得する場合には、出発点と目的点とを対角とする長方形のなかに包含される障害の最高点を障害の高さとして設定するようにする。
この構成によれば、カメラの駆動軸が協働せず独立制御されるような場合であっても、適切に障害を超える経路で画像測定が行われる。
上記説明は、平面視(図26)の2次元的な説明であるが、3次元的に考えても安全は確保される。
カメラ16の移動経路が直線からどんなにずれたとしても、その移動経路は、出発点と目的点を対角として、辺が駆動軸に平行な直方体に包含される。ただし、カメラの上下動の経路は曲がらずZ軸に平行である。
したがって、出発点において安全高さまで上昇し、目的点の直上まで来たところで目的点まで降下する経路を取れば、直方体内の障害を安全に越え、かならず安全は確保される。
(変形例6)
変形例6を説明する。
上記第1実施形態において第1迂回パターンと第2迂回パターンとを説明した。
第1迂回パターンおよび第2迂回パターンにおいては、現在高さおよび目的点高さの一方が安全高さよりも低い場合、水平移動で障害の上を通過するとした。
この迂回方式は、ステップ実行や移動速度抑制モードでパートプログラムを実行し、干渉チェックなどの目的で移動経路を目視確認する際に、動きが直角的なので分かり易く、安心感がある。
また、余裕(安全ギャップ)をもってカメラが障害の上を通過するので、若干の設定ミスや制御動作の不安定があっても確実に障害を越えていくという利点もある。
ただし、迂回経路が長くなり、その分時間は掛かる。
そこで、安全を確保できる範囲で斜め移動も利用してもう少し移動時間を短縮できる変形例6を説明する。
図27を参照されたい。
これは図7に対応する図であり、第1迂回パターンに代えて第4迂回パターンとし、第2迂回パターンに代えて第5迂回パターンとしている。
第4迂回パターンを図28、図29を参照して説明する。
図28のフローチャートにおいて、目的点高さが安全高さ未満であるとき(ST150:NO)、目的点に直行することはできないので迂回が必要である。
このとき、第4迂回パターンとしては、「水平移動」で目的点の直上に移動するのではなく、目的点直上の安全高さに移動する(ST171)。
図29を図14と対比して頂くと、第1段階の移動(moveP3−1)において現在高さ(Z=−6)を保った水平移動ではなく、Z=−19に向けて移動している。
そして、目的点直上の安全高さに達した後、目的点へ降下する(ST180)。
カメラ16の高さが安全高さ以上であればカメラ16がどのように移動しても安全なのであり、したがって目的点直上の安全高さに斜めに直行しても当然に安全は確保される。
そして、経路が短くなる分だけ移動時間も短縮される。
続いて、図30、図31、図32を参照して第5迂回パターンを説明する。
図28および図31のフローチャートにおいて、目的点高さが安全高さ以上ではあるが(ST210:YES)、現在高さが安全高さ未満であるとき(ST140:NO)、目的点に直行することはできないので迂回が必要である。
このとき、第5迂回パターンとしては、目的点高さまで一気に上昇するのはなく、安全高さ(−19)までの上昇にとどめる(ST221)。
図32を図17と対比して頂くと、第1段階の移動(moveP6−1)において目的点高さ(Z=−6)まで上昇するのではなく、安全高さ(−19)までの上昇にとどめ(ST221)、その後、目的点に直行するように移動する(ST230)。
カメラ16の高さが安全高さまで上昇していればどのように移動しても安全なのであり、したがって目的点に斜めに直行しても当然に安全は確保される。
そして、経路が短くなる分だけ移動時間も短縮される。
(変形例7)
カメラの動きが直角的である方が見た目に分かりやすいという利点があるので、すべての移動経路を上下方向移動と水平移動とで構成するようにしてもよい。
例えば、図7において、点Pから点Pへの移動および点Pから点Pへの移動にあたって迂回不要としたので斜め移動で目的点に直行するとしが、図33に例示するように、まず上昇(あるいは下降)した後に水平移動するようにしてもよい。もちろん、順番を変えて、水平移動した後に上昇(あるいは下降)するようにしてもよい。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
ここまでの説明では、表面性状測定機として画像測定機を例示したが、本発明の要旨は、非接触式のセンサでワークを計測する測定機に広く適用できる。
例えば、非接触式センサでワークの形状や高さ(プロファイル)を計測する形状測定機が知られている。
センサとしては、光電式や静電容量式の検出方式があり、光電式であれば、レーザー測距でもよいが、その他、例えば特許5190330に開示されているようなクロマチックポイントセンサ(CPS)、あるいは、WLI(White Light Interferometer)の測定原理(白色光干渉)、なども知られている。
あるいは、色、光沢、膜厚などを測定するセンサであってもよい。
センサのワークに対する接近方向が上向きや横向きの測定機にも応用できる。
上記の説明では、CADデータ記憶部にワークのCADデータを記憶させ、ユーザ補助としてCADデータウィンドウにワークのCADデータを表示させるとした。
オフラインティーチングとしては、CADデータではなく、例えば、ワークの写真を使用するという方法もある。すなわち、ワークを平面視で撮像した画像データをデータ記憶部に記憶させ、ユーザ補助としてデータウィンドウにワークの写真データを表示させてもよい。この場合、予め測定機自体で長作動距離、広視野のレンズでワークを撮像しても良い。この撮影の際には、ユーザの手動操作で衝突を避けても良い。長作動距離の対物レンズを使用すればマニュアル操作も苦ではない。そして、複数の写真のスティッチング(継ぎ合せ)をしても良い。
1…画像測定機、
10…画像測定システム、
11…架台、13…測定テーブル、14…フレーム、15…カバー、16…カメラ、17…照明装置、
2…制御コンピュータユニット、
21…ホストコンピュータ、22…キーボード、23…マウス、24…ディスプレイ、25…入出力手段、
100…パートプログラム生成装置、
110…CADデータ記憶部、111…高さ分布データ記憶部、120…測定条件設定部、
121…GUI画面、122…エディタウィンドウ、
124…迂回移動コマンドアイコン、125…CADデータウィンドウ、127…パラメータ設定ウィンドウ、
130…パートプログラム生成部、
140…コマンドアイコン、141…移動コマンドアイコン、142…円測定コマンドアイコン。

Claims (5)

  1. 非接触でワークを測定するセンサを有し、前記センサと前記ワークとを相対移動させながら前記ワークの形状を測定する表面性状測定機の制御プログラムであるパートプログラムを生成するパートプログラム生成装置であって、
    ユーザの入力操作を受けて測定手順を設定していく測定条件設定部と、
    前記測定条件設定部で設定された測定手順をパートプログラム言語に変換するパートプログラム生成部と、を備え、
    前記測定条件設定部は、ユーザーインターフェースとして、
    編集用言語で測定手順を編集できるエディタと、
    測定手順の設定に使う前記編集用言語の命令セットと、をユーザに提供し、
    前記編集用言語の命令セットには、前記センサを出発点から目的点に向けて移動させる際に障害を越えるように指令する迂回移動命令が含まれる
    ことを特徴とするパートプログラム生成装置。
  2. 請求項1に記載のパートプログラム生成装置において、
    前記迂回移動命令が障害高さのパラメータを含み、
    ユーザによって前記迂回移動命令が選択された場合、前記測定条件設定部は、ユーザに対し、障害の高さの入力を促す
    ことを特徴とするパートプログラム生成装置。
  3. 請求項1に記載のパートプログラム生成装置において、
    ユーザにワークの最高点の高さを入力させ、
    ユーザによって前記迂回移動命令のアイコンが選択された場合、
    前記測定条件設定部または前記パートプログラム生成部は、前記最高点の高さを出発点から目的点に向けて移動する際の障害の高さとして自動設定する
    ことを特徴とするパートプログラム生成装置。
  4. 請求項1に記載のパートプログラム生成装置において、
    さらに、ワークの高さ分布データを記憶する高さ分布データ記憶部を有する
    ことを特徴とするパートプログラム生成装置。
  5. 請求項1から請求項4のいずれかに記載のパートプログラム生成装置において、
    前記パートプログラム生成部は、
    出発点の座標値と、目的点の座標値と、を取得し、
    前記ワークに存在する凸部あるいは段差であって前記センサの移動の妨げになり得る障害の高さデータを取得し、
    前記センサが前記障害の上を移動する際に前記センサと前記障害との間に確保されるべき安全ギャップを設定し、
    前記障害の高さと、前記センサの作動距離と、前記安全ギャップと、に基づいて、前記センサが前記障害の上を越える際に必要とされる安全高さを算出し、
    出発点の座標値と、目的点の座標値と、前記安全高さと、に基づいて、前記出発点から前記目的点に至る経路において前記障害の上を前記安全高さ以上で通過する安全経路を求める
    ことを特徴とするパートプログラム生成装置。
JP2016052043A 2016-03-16 2016-03-16 表面性状測定機用のパートプログラム生成装置 Active JP6647094B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016052043A JP6647094B2 (ja) 2016-03-16 2016-03-16 表面性状測定機用のパートプログラム生成装置
DE102017203530.7A DE102017203530B4 (de) 2016-03-16 2017-03-03 Vorrichtung zum Generieren eines Teileprogramms eines Geräts zum Messen einer Oberflächenbeschaffenheit
US15/457,005 US10521923B2 (en) 2016-03-16 2017-03-13 Part program generating device of surface texture measuring apparatus
CN201710157687.3A CN107202547B (zh) 2016-03-16 2017-03-16 表面性状测量设备的部件程序生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016052043A JP6647094B2 (ja) 2016-03-16 2016-03-16 表面性状測定機用のパートプログラム生成装置

Publications (2)

Publication Number Publication Date
JP2017166955A JP2017166955A (ja) 2017-09-21
JP6647094B2 true JP6647094B2 (ja) 2020-02-14

Family

ID=59751776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016052043A Active JP6647094B2 (ja) 2016-03-16 2016-03-16 表面性状測定機用のパートプログラム生成装置

Country Status (4)

Country Link
US (1) US10521923B2 (ja)
JP (1) JP6647094B2 (ja)
CN (1) CN107202547B (ja)
DE (1) DE102017203530B4 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6719815B2 (ja) * 2016-03-16 2020-07-08 株式会社ミツトヨ 表面性状測定機の制御方法
JP7065724B2 (ja) * 2018-07-31 2022-05-12 株式会社ミツトヨ 測定制御装置及びプログラム
JP2024113563A (ja) 2023-02-09 2024-08-22 株式会社東京精密 制御装置及び測定システム

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4932202B1 (ja) 1969-10-03 1974-08-28
JPS4812477B1 (ja) 1970-09-04 1973-04-20
JPS596753B2 (ja) 1976-11-25 1984-02-14 株式会社徳力本店 銀ろう合金
JPS596753A (ja) 1982-07-02 1984-01-13 Matsushita Electric Ind Co Ltd モ−ルドモ−タの製造方法
JP3596753B2 (ja) 2000-05-10 2004-12-02 株式会社ミツトヨ 画像測定装置用パートプログラム生成装置及び方法
JP2002350123A (ja) * 2001-05-24 2002-12-04 Olympus Optical Co Ltd 測定支援方法、測定システム、及び測定支援プログラム
JP2003065748A (ja) * 2001-08-29 2003-03-05 Mitsutoyo Corp 測定装置
JP2003099107A (ja) * 2001-09-21 2003-04-04 Mazda Motor Corp 移動体の移動経路の生成方法およびその装置
JP2004017198A (ja) * 2002-06-14 2004-01-22 Mitsutoyo Corp パートプログラム生成装置、パートプログラム生成方法及びパートプログラム生成用プログラム
JP3988588B2 (ja) * 2002-08-29 2007-10-10 日産自動車株式会社 三次元測定装置
JP4024117B2 (ja) * 2002-09-17 2007-12-19 株式会社ミツトヨ 測定支援装置
JP4932202B2 (ja) 2005-09-09 2012-05-16 株式会社ミツトヨ 画像測定装置用パートプログラム生成装置、画像測定装置用パートプログラム生成方法、及び画像測定装置用パートプログラム生成用プログラム
CN100462675C (zh) * 2005-12-23 2009-02-18 鸿富锦精密工业(深圳)有限公司 三次元离线扫描编程系统及方法
JP4812477B2 (ja) 2006-03-20 2011-11-09 株式会社ミツトヨ 画像計測装置用パートプログラム生成装置、画像計測装置用パートプログラム生成方法、及び画像計測装置用パートプログラム生成用プログラム
GB0716218D0 (en) * 2007-08-20 2007-09-26 Renishaw Plc Measurement path generation
US7990522B2 (en) 2007-11-14 2011-08-02 Mitutoyo Corporation Dynamic compensation of chromatic point sensor intensity profile data selection
US8271895B2 (en) 2010-03-22 2012-09-18 Mitutoyo Corporation GUI for programming step and repeat operations in a machine vision inspection system
JP5468981B2 (ja) 2010-05-11 2014-04-09 株式会社ミツトヨ 画像測定機、プログラム、及び画像測定機のティーチング方法
JP5870273B2 (ja) * 2010-08-03 2016-02-24 パナソニックIpマネジメント株式会社 物体検出装置、物体検出方法及びプログラム
CN102456079B (zh) * 2010-10-18 2016-08-03 赛恩倍吉科技顾问(深圳)有限公司 影像离线编程的尺寸引导系统及方法
US9223306B2 (en) 2011-11-15 2015-12-29 Mitutoyo Corporation System and method utilizing an editing initialization block in a part program editing environment in a machine vision system
US8957960B2 (en) * 2011-11-15 2015-02-17 Mitutoyo Corporation Machine vision system program editing environment including real time context generation features
JP6110720B2 (ja) * 2013-04-25 2017-04-05 株式会社ミツトヨ 三次元形状測定装置及びその制御用ソフトウェア
CN104679644B (zh) * 2013-11-28 2017-10-31 比亚迪股份有限公司 移动终端中应用程序的测试方法和系统
JP5788469B2 (ja) * 2013-11-29 2015-09-30 ファナック株式会社 アプローチ時間を短縮するレーザ加工装置の制御装置及び制御方法
CN103728917B (zh) * 2013-12-27 2016-05-04 天津大学 数控加工与测量设备的防碰撞方法
DE102015208337A1 (de) * 2014-06-17 2015-12-17 Mitutoyo Corp. Bearbeitungsumgebung eines maschinellen sichtsystems für ein teileprogramm, in dem ein durchgehender datenstrom von bilderfassungsvorgängen in einem laufmodus ausgeführt wird
JP6352117B2 (ja) 2014-09-01 2018-07-04 アンリツ株式会社 濾波装置および濾波方法
JP2016173703A (ja) 2015-03-17 2016-09-29 株式会社ミツトヨ タッチディスプレイを用いた入力操作を支援する方法
WO2016196512A1 (en) * 2015-05-29 2016-12-08 Abb Technology Ag Method and system for robotic adaptive production

Also Published As

Publication number Publication date
DE102017203530A1 (de) 2017-09-21
DE102017203530B4 (de) 2023-09-28
CN107202547A (zh) 2017-09-26
CN107202547B (zh) 2020-11-06
US20170270684A1 (en) 2017-09-21
US10521923B2 (en) 2019-12-31
JP2017166955A (ja) 2017-09-21

Similar Documents

Publication Publication Date Title
US6968080B2 (en) Method and apparatus for generating part programs for use in image-measuring instruments, and image-measuring instrument and method of displaying measured results therefrom
JP5981143B2 (ja) ロボットツールの制御方法
JP6071452B2 (ja) マシンビジョンシステムのパートプログラム編集環境内で編集初期化ブロックを利用するシステム及び方法
JP6647094B2 (ja) 表面性状測定機用のパートプログラム生成装置
JP2000346638A (ja) 測定手順ファイル生成方法、測定装置および記憶媒体
JP6719815B2 (ja) 表面性状測定機の制御方法
JP3853620B2 (ja) 画像測定装置用パートプログラム生成装置及びプログラム
JP4932202B2 (ja) 画像測定装置用パートプログラム生成装置、画像測定装置用パートプログラム生成方法、及び画像測定装置用パートプログラム生成用プログラム
JP6554695B2 (ja) 画像測定装置
JP6579682B2 (ja) 画像測定装置
JP6687229B2 (ja) 画像測定装置
JP2014215153A (ja) 画像測定装置及びその制御用プログラム
WO2024154218A1 (ja) プログラミング装置
JP7227083B2 (ja) 加工経路表示装置
JPH11281327A (ja) 線幅測定方法及び装置
JP6852502B2 (ja) ロボット装置及びロボット装置位置獲得方法
JP6996916B2 (ja) 処理装置、処理方法、及び処理プログラム
JP6840590B2 (ja) 校正用システム、校正治具、校正方法、及び校正用プログラム
JP3806269B2 (ja) アイコン生成方法、測定装置および記憶媒体
TW202430336A (zh) 程式編寫裝置
JP6366921B2 (ja) 画像測定装置、及び高さ測定方法
CN116945157A (zh) 信息处理系统和方法、机器人系统和控制方法、物品制造方法、以及记录介质
JP2019124705A (ja) 画像測定装置
JP2004078988A (ja) 画像測定装置及び測定結果表示方法
JP4727469B2 (ja) 画像測定システム、画像測定方法及び画像測定プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200114

R150 Certificate of patent or registration of utility model

Ref document number: 6647094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250