(57)【要約】【課題】３次元測定器によりワークの表面形状を測定する際、のロボットの動作を簡便且つ短時間に教示設定するとともに、３次元測定器とワークとの干渉を回避する。【解決手段】ワークＷの面から離間させたまま該ワークＷの面における略Ｚ方向に沿ってレーザスキャナ１２を所定距離動作させる基本経路１２２を、ワークＷの面におけるＹ方向に沿って複数回複写して、ブロックデータ１２０をうる。レーザスキャナ１２をブロックデータ１２０に沿って移動させながら、且つ、レーザ変位計２０の計測値である距離Ｌｍに基づいてレーザスキャナ１２を進退させて、ワークＷとの倣い量Ｌ０を制御しながらワークＷの表面形状を測定する。レーザスキャナ１２がブロックデータ１２０の基本経路１２２を超えてワークＷに接近することを制限する。【選択図】図１８
2005308613.tif 000002
【特許請求の範囲】
【請求項１】
ワークとの距離を計測する非接触変位計を備えた３次元測定器をロボットに取着して移動させながら、前記ワークの表面形状を測定する３次元形状測定方法であって、
前記ワークの面から離間させたまま該ワークの面に沿って前記３次元測定器を所定距離動作させる基本経路を、前記ワークの面に沿って複数回複写して、前記３次元測定器の倣いデータとして設定する第１ステップと、
前記３次元測定器を前記倣いデータに沿って移動させながら、且つ、前記非接触変位計の計測値に基づいて前記３次元測定器を進退させて、前記ワークとの距離を制御しながら前記ワークの表面形状を測定する第２ステップと、
を有し、
前記第２ステップにおいて、前記３次元測定器が設定された倣い制限位置を超えて前記ワークに接近することを制限することを特徴とする３次元形状測定方法。
【請求項２】
請求項１記載の３次元形状測定方法において、
前記倣い制限位置は、前記倣いデータによって形成される面であることを特徴とする３次元形状測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元測定器をロボットに取着した状態でワークの表面に倣わせながら該ワークの表面形状を測定する３次元形状測定方法に関する。
【背景技術】
【０００２】
自動車の開発においては、デザイン形状の検討及び確認のためにクレーモデル、実車及びインスツルメントパネル等をワークとして表面形状を３次元測定器で計測することがある。３次元測定器によればワークの表面に倣わせることによってワークの位置、形状などを測定することができる。
【０００３】
従来、３次元測定器は測定者が手で持ってワークの表面に倣わせたり、専用の門柱型座標測定器に取着して測定している。測定者が３次元測定器を直接持って計測する場合には、測定時間が長くなると測定者に対する負担が大きい。また、門柱型座標測定器は、構造が複雑であって高価である。このような背景から、近時、３次元測定器をロボットのアームに取着して動作させ、ワークの表面形状を測定する取り組みがなされている。
【０００４】
また、固定式の形状測定装置として、非接触変位計を用いてワークに対して非接触な状態で形状を測定する測定装置が提案されている（例えば、特許文献１参照）。非接触式の形状測定装置によれば、ワークとして硬質のものはもとより、柔らかいもの、壊れやすいもの、又は傷つきやすいもの（例えば、光学部品や金型等）を変質、変形させることなく計測することができる。
【０００５】
【特許文献１】特開平８−４３０４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、自動車にはタイヤのホイールハウス部やインスツルメントパネルなどの凹凸の激しい複雑な表面形状の箇所がある。このような箇所に対して非接触変位計を用いてワークとの距離を制御する従来の倣い制御では３次元計測器がワークに干渉してしまうおそれがある。特に、幅の狭い窪み部を有する形状部では、非接触変位計がちょうどその窪み部に対する距離を計測する位置に達すると、３次元測定器を過度に前進させて窪み部の縁に干渉するおそれがある。
【０００７】
干渉を回避するために、ワークの各部位に対して個別にティーチングを行うという対応策も考えられるが、この場合、ティーチングに要する工数が増大して作業担当者の負担が大きく、作業効率が低下する。また、ティーチングデータの各種のワークに対する汎用性が低くなる。
【０００８】
本発明はこのような課題を考慮してなされたものであり、ロボットに取着した３次元測定器をワークの表面に倣わせて移動させて該ワークの表面形状を測定する際、ロボットの動作を簡便且つ短時間に教示設定することができ、しかも３次元測定器とワークとの干渉を回避することのできる３次元形状測定方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る３次元形状測定方法は、
ワークとの距離を計測する非接触変位計を備えた３次元測定器をロボットに取着して移動させながら、前記ワークの表面形状を測定する３次元形状測定方法であって、
前記ワークの面から離間させたまま該ワークの面に沿って前記３次元測定器を所定距離動作させる基本経路を、前記ワークの面に沿って複数回複写して、前記３次元測定器の倣いデータとして設定する第１ステップと、
前記３次元測定器を前記倣いデータに沿って移動させながら、且つ、前記非接触変位計の計測値に基づいて前記３次元測定器を進退させて、前記ワークとの距離を制御しながら前記ワークの表面形状を測定する第２ステップと、
を有し、
前記第２ステップにおいて、前記３次元測定器が設定された倣い制限位置を超えて前記ワークに接近することを制限することを特徴とする。
【００１０】
このように、基本経路を複数回複写した倣いデータに基づいて３次元測定器を移動させながら計測を行うことによりティーチングに要する時間が大幅に短縮される。また、倣い制限位置を超えて３次元測定器がワークに接近することを制限するために、３次元測定器とワークとの干渉を回避することができ、凹凸の激しい形状の箇所に対しても倣いデータを適用可能である。
【００１１】
この場合、前記倣い制限位置は、前記倣いデータによって形成される面としてもよい。この面は倣い制限位置として簡便に設定可能である。
【発明の効果】
【００１２】
本発明に係る３次元形状測定方法によれば、ロボットに取着した３次元測定器をワークの表面に倣わせて移動させて該ワークの表面形状を測定する際、ロボットの動作を、簡便且つ短時間に教示設定することができる。また、３次元測定器が設定された倣い制限面を超えて前記ワークに接近することを制限することにより、３次元測定器とワークとの干渉を回避することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明に係る３次元形状測定方法について実施の形態を挙げ、添付の図１〜図２０を参照しながら説明する。
【００１４】
図１に示すように、本実施の形態に係る３次元形状測定方法を適用する３次元形状測定装置１０は、ワークＷの３次元形状を測定するシステムであって、ワークＷの表面形状を測定するレーザスキャナ（３次元測定器）１２をエンドエフェクタとして備えた多関節ロボット１４と、レーザスキャナ１２の位置を検出する位置検出装置１６と、多関節ロボット１４及び位置検出装置１６から供給されるデータを処理するデータ処理部１８とを有する。多関節ロボット１４は、移動台車２２上に載置されており、該移動台車２２の内部には、多関節ロボット１４を制御する制御部１９が設けられている。
【００１５】
ワークＷは、例えば、実車であって、３次元形状測定装置１０により表面形状を計測することによって、設計形状が実現されていることを確認を行うことができる。また、インスツルメントパネルや、形状がデータ化されていないクレーモデル等をワークＷとすることもできる。
【００１６】
多関節ロボット１４は７軸の関節を備え、姿勢の冗長性を有する。すなわち、多関節ロボット１４は、レーザスキャナ１２の位置及び姿勢を保持したまま様々な姿勢（理論上、無限大個の姿勢）をとりうる。多関節ロボット１４の先端部３６には、支持部２０ａを介してワークＷまでの距離Ｌｍ（図３参照）を測定するレーザ変位計（非接触変位計）２０が設けられている。
【００１７】
多関節ロボット１４は、矢印２１で示される基本のティーチングデータに基づきワークＷの面に沿ってレーザスキャナ１２を移動させる。このとき、レーザ変位計２０のデータを参照しながら、レーザスキャナ１２をワークＷの表面から所定の距離であるＬ±εとなるように維持しながら移動させる。
【００１８】
また、多関節ロボット１４が載置される移動台車２２上は自走可能であり、ワークＷの車軸２４と平行に延在するレール２６に沿って移動することができる。多関節ロボット１４は移動可能であることから、ワークＷの所定区域毎の測定を行った後に多関節ロボット１４を移動させて次の区域の測定を行うことができる。
【００１９】
図２に示すように、多関節ロボット１４は、ベース部３０と、該ベース部３０を基準にして、順に第１アーム３２、第２アーム３４を有し、第２アーム３４の先の先端部３６に前記レーザスキャナ１２が設けられている。第１アーム３２はベース部３０に対して水平及び垂直に回動可能な軸Ｊ１、Ｊ２によって接続されている。また、第１アーム３２は途中の軸Ｊ３によって捻り回転が可能である。
【００２０】
第２アーム３４は第１アーム３２と軸Ｊ４で回動可能に連結されている。第２アーム３４は途中の軸Ｊ５によって捻り回転が可能である。
【００２１】
先端部３６は第２アーム３４と軸Ｊ６で回動可能に連結されており、軸Ｊ７により捻り回転が可能である。
【００２２】
このように多関節ロボット１４は７軸の関節を有することから、前記の通り姿勢の冗長性を有し、人間の腕のように自由な動作が可能である。
【００２３】
多関節ロボット１４の軸Ｊ１〜Ｊ７は、全てが回転動作を行う軸である必要はなく、姿勢の冗長性を有する構成であれば、伸縮動作、平行リンク動作等の動作部を有するものであってもよい。関節の構成数は８以上であってもよい。
【００２４】
図３に示すように、レーザスキャナ１２は、３つの突起部にそれぞれ赤外線ＬＥＤ４０を備えている。位置検出装置１６（図１参照）は、１次元ＣＣＤからなる３つの検出部４２により赤外線ＬＥＤ４０が発光する赤外線を検出して３次元空間上におけるレーザスキャナ１２の位置を正確に検出することができる。検出部４２は、２個以上の２次元ＣＣＤでもよい。
【００２５】
具体的には、３つの赤外線ＬＥＤ４０からのエネルギーを検出部４２によってそれぞれ検出し、各検出部４２から赤外線ＬＥＤ４０の方向を認識する。これにより、レーザスキャナ１２の空間的位置及び姿勢を求めることができる。この処理はリアルタイムで行われる。
【００２６】
レーザスキャナ１２は、投光部５０からレーザを矢印Ｂ方向に走査しながらワークＷに照射して検出幅Ｄの区間の表面形状を測定することができる。また、レーザスキャナ１２は計測可能な範囲があり、ワークＷの表面から投光部５０までの距離がＬ±εの範囲に設定されている必要があり、レーザ変位計２０によってこの距離を測定している。該レーザ変位計２０による測定データは、制御部１９に供給されて処理され、レーザスキャナ１２が適切な位置となるように多関節ロボット１４の姿勢を制御する。
【００２７】
図４に示すように、制御部１９はサーボドライバ５２を介して多関節ロボット１４を動作させる運動制御ボード５４と、入出力インターフェース５６と、コンピュータ５８とを有する。コンピュータ５８は、運動制御ボード５４及び入出力インターフェース５６と接続されており、制御部１９全体の制御を行う。また、コンピュータ５８は、所定のプログラム記録部からプログラムをロードして実行することにより作用し、処理の主体であるＣＰＵと、記録部であるＲＯＭ、ＲＡＭ等を含む。
【００２８】
移動台車２２は、周辺を監視する安全装置である２つのエリアセンサ６１ａ、６１ｂを有する。制御部１９は、エリアセンサ６１ａ、６１ｂとのインターフェースであるエリアセンサインターフェース６０に接続されており、障害物の有無を検出することができる。また、制御部１９は、アンプ６２を介して走行軸モータ６４を動作させ、移動台車２２を自走させることができる。さらに、制御部１９は、基本のティーチングデータとなるブロックデータ（倣いデータ）１２０（図９参照）を設定するためのティーチングボックス（データ入力部）６６及び操作ボックス６８と接続されており、相互にデータ通信が可能である。ティーチングボックス６６には、表示手段としてのモニタ画面６６ａが設けられている。
【００２９】
移動台車２２には無停電電源を搭載し、該無停電電源を介して制御部１９等に電源を供給するようにすると、動作信頼性が向上する。
【００３０】
図５に示すように、コンピュータ５８は、所定面積に対して前記レーザスキャナ１２を倣わせる測定動作を示すブロックデータ１２０（図９参照）を設定し、記録するブロックデータ設定記録部１００と、複数の基本形状タイプから前記ワークＷの形状に類似する１つを選択する基本形状選択部１０２と、選択された基本形状タイプと、ワークＷの長さＵ（図１５参照）と高さｈに応じて、ブロックデータ１２０を示す仮想ブロックが、仮想空間上のワークＷの投影面のうち、測定を行う部分を覆うようにブロックデータ１２０を複写設定するブロックデータ複写部１０４と、複写設定したブロックデータ１２０に基づいて多関節ロボット１４と走行軸モータ６４を動作させる計測実行部１０６とを有する。計測実行部１０６は、多関節ロボット１４を動作させるロボット姿勢計算部１０６ａと、走行軸モータ６４を動作させる台車位置計算部１０６ｂとを有する。
【００３１】
また、コンピュータ５８は、操作ボックス６８等から供給されるスイッチ信号に基づいて、多関節ロボット１４及び走行軸モータ６４をマニュアル操作又は非常停止させる外部信号監視部１１０を有する。
【００３２】
ワークＷの長さＵ（図１５参照）と高さｈは、ティーチングボックス６６を用いて入力され、パラメータ記録部１０８に保持される。パラメータ記録部１０８に保持されたデータや、ブロックデータ設定記録部１００で設定されたブロックデータ１２０等は、モニタ画面６６ａに表示させることが可能である。
【００３３】
なお、図５は、一部を簡略化して、コンピュータ５８内部の処理部と外部機器との関係を理解しやすいように表した概略ブロック図であって、入出力インターフェース５６（図４参照）等を省略して図示している。
【００３４】
図６に示すように、ロボット姿勢計算部１０６ａは、レーザ変位計２０の計測値である距離Ｌｍ（図３参照）を入出力インターフェース５６を介して読み込む距離算出部１１２と、距離Ｌｍに基づきレーザスキャナ１２とワークＷと距離である倣い量Ｌ０を求める倣い量算出部１１４とを有する。また、ロボット姿勢計算部１０６ａは、ブロックデータ複写部１０４によって複写されたブロックデータ１２０から多関節ロボット１４の基本位置（倣い制限位置）Ｐ０（図１８参照）と基本姿勢を求めるロボット基本目標位置算出部１１６と、多関節ロボット１４の基本位置Ｐ０及び基本姿勢に対して倣い量算出部１１４から供給される信号による軌道オフセットを行いレーザスキャナ１２の目標位置Ｐｐを求める目標位置算出部１１８と、求められた目標位置Ｐｐをロボット基本目標位置算出部１１６で求めた基本位置Ｐ０で制限する目標位置比較修正部１１９とを有する。
【００３５】
次に、このように構成される３次元形状測定装置１０を用いて、多関節ロボット１４に取着されたレーザスキャナ１２をワークＷの表面に倣わせて移動させることにより、該ワークＷの表面形状を測定する方法について図７を参照しながら説明する。図７に示す処理においては、ティーチングボックス６６（図４参照）及び操作ボックス６８を用いた入力処理とモニタ画面６６ａによる確認処理はオペレータが行い、それ以外の処理は基本的にコンピュータ５８によるプログラム処理によって実行される。なお、以下の説明では車軸の方向をＹ方向（図１５参照）、ワークＷの高さ方向をＺ方向（図１５参照）として、Ｙ方向とＺ方向に垂直な方向（図１５の紙面に垂直な方向）をＸ方向とする。
【００３６】
この処理は、先ず前処理であるステップＳ１において、主にブロックデータ設定記録部１００（図５参照）の作用によって、ブロックデータ１２０（図９参照）の設定記録を行う。このステップＳ１の処理は、基本的に一度行えば、その後省略可能である。
【００３７】
次に、主にブロックデータ複写部１０４の作用によって、ワークＷの基本形状タイプに基づきブロックデータ１２０を複写設定する。
【００３８】
具体的には、先ずステップＳ２において、ワークＷの形状に基づいて、ブロックデータ１２０を縦方向であるＺ方向に複写設定する。
【００３９】
その後、ステップＳ３において、ワークＷの形状に基づいて、ブロックデータ１２０を横方向であるＹ方向に複写設定する。
【００４０】
このステップＳ２及びＳ３の処理は、ワークＷの形状が類似であるものに対しては省略可能である。また、ステップＳ２及びＳ３の処理は、基本的にコンピュータ５８によるプログラム処理であって、仮想空間上においてワークＷをブロックデータ１２０で覆うように複写設定する。この場合、オペレータが処理の適否を判断しやすいように、仮想空間上におけるワークＷやブロックデータ１２０をモニタ画面６６ａにグラフィック形式で表示しながら処理を行ってもよい。
【００４１】
次に、ステップＳ４において、主に計測実行部１０６の作用によって多関節ロボット１４と走行軸モータ６４を動作させてワークＷの３次元形状を測定する。
【００４２】
次に、前記ステップＳ１の処理、つまりブロックデータ１２０の設定記録を行う処理について、図８及び図９を参照しながら説明する。
【００４３】
また、以下の説明では、レーザスキャナ１２のツール座標を、Ｐａ（Ｘ、Ｙ、Ｚ、φ、θ、ψ）又はＱａ（Ｘ、Ｙ、Ｚ、φ、θ、ψ）として表す。ここで、Ｘ、Ｙ及びＺの各パラメータは、絶対座標におけるＸ方向、Ｙ方向及びＺ方向の各値を示し、φ、θ及びψの各パラメータは、ロール、ピッチ及びヨーの姿勢値を示す。添え字ａは、動作順序、教示順序等を示す自然数である。便宜上、Ｐａ（Ｘ、Ｙ、Ｚ、φ、θ、ψ）をＰａ、Ｑａ（Ｘ、Ｙ、Ｚ、φ、θ、ψ）をＱａとしても表記する。
【００４４】
図９に示すように、ブロックデータ１２０は、レーザスキャナ１２（図３参照）を一方向に所定距離動作させて設定される基本経路１２２と、該基本経路１２２を直角方向に、入力設定された回数ｎ本分を複写した複写経路１２４からなるデータであり、レーザスキャナ１２をワークＷに倣わせる測定動作を示す。この基本経路１２２及び複写経路１２４は、前記矢印２１（図１参照）に相当するものである。
【００４５】
図９のブロックデータ１２０は、ｎ＝５として、基本経路１２２を５回複写して複写経路１２４を設定した例である。基本経路１２２及び複写経路１２４の相互間隔ｐ（図１１参照）は入力設定される値であり、レーザスキャナ１２の検出幅Ｄ（図３参照）と同値に設定する。回数ｎ、相互間隔ｐは、ティーチングボックス６６を用いて入力される。
【００４６】
ブロックデータ１２０は、基本経路１２２及び複写経路１２４のそれぞれの開始点と終了点におけるレーザスキャナ１２のツール座標Ｐ１、Ｐ２、…Ｐｅ（図１１参照）として表される。ここで添え字のパラメータｅは、最終の順番を示す数字であり、ｅ＝２（ｎ−１）＋４として表される。例えば、ｎ＝５であるとき、ｅ＝１２である。
【００４７】
図８のステップＳ１０１において、ブロックデータ１２０の基礎となるＺ方向の基本経路１２２のデータを作成するために、多関節ロボット１４をティーチングボックス６６を用いて操作し、レーザスキャナ１２をＺ方向に適当な距離動作させて、その移動経路を記録する。
【００４８】
次に、ステップＳ１０２において、記録した移動経路のうち開始点と終了点におけるレーザスキャナ１２の姿勢をＰ１（Ｘ1、Ｙ1、Ｚ1、φ1、θ1、ψ1）及びＰ２（Ｘ2、Ｙ2、Ｚ2、φ2、θ2、ψ2）として記録する。
【００４９】
次に、ステップＳ１０３において、回数ｎ、相互間隔ｐをティーチングボックス６６を用いて入力する。
【００５０】
次に、ステップＳ１０４において、カウンタｉを「１」に初期化する。
【００５１】
次に、ステップＳ１０５において、カウンタｉと回数ｎとを比較する。ｉ＞ｎであるときには、ブロックデータ１２０を示すツール座標であるＰ１、Ｐ２、…Ｐｅが全て求められたことになり、この一連の処理を終了して前記ステップＳ２（図７参照）へ移る。ｉ≦ｎであるときには、次のステップＳ１０６へ移る。
【００５２】
ステップＳ１０６においては、カウンタｉが奇数であるか偶数であるかを確認し、奇数であるときにはステップＳ１０７へ移り、偶数であるときにはステップＳ１０９へ移る。
【００５３】
ステップＳ１０７（ｉが奇数であるとき）においては、複写経路１２４のｉ本目の開始点であるＰαを計算する。添え字αは、α＝２（ｉ−１）＋３として表される。この場合、ＰαはＰ２をＹ方向に距離（ｉ×ｐ）だけ移動させたデータとして表されることから、Ｐα（Ｘ2、Ｙ2＋（ｉ×ｐ）、Ｚ2、φ2、θ2、ψ2）として計算され、求めたＰαを記録する。
【００５４】
次に、ステップＳ１０８において、複写経路１２４のｉ本目の終了点であるＰβを計算する。添え字βは、β＝α＋１＝２（ｉ−１）＋４として表される。この場合、ＰβはＰ１をＹ方向に距離（ｉ×ｐ）だけ移動させたデータとして表されることから、Ｐβ（Ｘ1、Ｙ1＋（ｉ×ｐ）、Ｚ1、φ1、θ1、ψ1）として計算され、求めたＰβを記録する。
【００５５】
一方、ステップＳ１０９（ｉが偶数であるとき）においては、複写経路１２４のｉ本目の開始点であるＰαを計算する。この場合、ＰαはＰ１をＹ方向に距離（ｉ×ｐ）だけ移動させたデータとして表されることから、Ｐα（Ｘ1、Ｙ1＋（ｉ×ｐ）、Ｚ1、φ1、θ1、ψ1）として計算され、求めたＰαを記録する。
【００５６】
次に、ステップＳ１１０において、複写経路１２４のｉ本目の終了点であるＰβを計算する。この場合、ＰβはＰ２をＹ方向に距離（ｉ×ｐ）だけ移動させたデータとして表されることから、Ｐβ（Ｘ2、Ｙ2＋（ｉ×ｐ）、Ｚ2、φ2、θ2、ψ2）として計算され、求めたＰβを記録する。
【００５７】
ステップＳ１０８又はＳ１１０の後、ステップＳ１１１において、カウンタｉを「＋１」更新し、ステップＳ１０５へ戻る。
【００５８】
このようにカウンタｉを更新しながら、ブロックデータ１２０を示すツール座標であるＰ１、Ｐ２、…Ｐｅを計算することができる。計算して求められたブロックデータ１２０はブロックデータ設定記録部１００に記録される。
【００５９】
ブロックデータ１２０は、レーザスキャナ１２の検出幅Ｄで往復動作させる動作パターンを示す。これにより、ブロックデータ１２０の作成、及び、ワークＷの表面形状の測定を効率的に行うことができる。
【００６０】
また、ブロックデータ１２０は１本の基本経路１２２を複写することにより設定可能であり、設定手順が容易である。
【００６１】
さらに、実際上、基本経路１２２を表すデータは開始点Ｐ１及び終了点Ｐ２のみでよく、この間の線である経路は必ずしも記録する必要はない。また、開始点Ｐ１及び終了点Ｐ２は、前記の通りレーザスキャナ１２の位置と姿勢を示す６つのパラメータで表すことができ、多関節ロボット１４の各軸Ｊ１〜Ｊ７の角度は記録する必要はない。複写経路１２４についても同様である。
【００６２】
次に、前記ステップＳ１（図７参照）の後に実行される前記ステップＳ２の処理、つまりブロックデータ１２０を縦方向（Ｚ方向）に複写する処理について、図１０及び図１１を参照しながら説明する。
【００６３】
このステップＳ２の処理は、ワゴン（又はミニバン等）と呼ばれる車種に対してはブロックデータ１２０を下方向に１つ複写し、セダン（又はクーペ等）と呼ばれる車種に対してはブロックデータ１２０を上方向に１つ複写する。以下の説明では、便宜上、元のブロックデータ１２０を小ブロックＡ、ワゴンの場合に下方向に複写するブロックデータ１２０を小ブロックＢ１（図１１、図１５参照）、セダンの場合に上方向に複写するブロックデータ１２０を小ブロックＢ２（図１６参照）と表記する。小ブロックＡ、Ｂ１及びＢ２は、ブロックデータ１２０を示す仮想ブロックとみなすことができる。
【００６４】
ワゴンの形状は、トランク部がないとともに車高が高く、またリヤウインド部分の傾斜が大きいという特徴がある。一方、セダンの形状は車高が低く、またリヤウインド部分の傾斜が緩いという特徴がある。このように、形状が異なる車種に応じてブロックデータ１２０の複写パターンを変えることにより、それぞれの形状に応じて適切な計測を行うことができるようになる。
【００６５】
図１１に示すように、小ブロックＡと小ブロックＢ１、及び小ブロックＡと小ブロックＢ２は、それぞれラップ量ｒを重複して計測し、境界部における計測漏れを防ぐ。また、ワークＷの高さｈをカバーすることができるように、小ブロックＢ１及びＢ２は、それぞれ小ブロックＡに対して、延長量ｄだけＺ方向に延長するように変形して複写する。ラップ量ｒ及び高さｈは、ティーチングボックス６６を用いて入力され、延長量ｄは、高さｈに基づいて算出される。
【００６６】
先ず、ステップＳ２０１において、ラップ量ｒ、高さｈをティーチングボックス６６を用いて入力する。高さｈに基づいて延長量ｄを計算して記録する。
【００６７】
次に、ステップＳ２０２において、ワークＷの基本形状タイプ、つまり車種を選択する。選択する車種は基本形状選択部１０２（図５参照）に記録されており、この中から選択設定するが、具体的には、ティーチングボックス６６を操作することにより選択すればよい。選択する車種は、本実施の形態では、ワゴンやセダンを例示しているが、これに限らず、例えば、トラック等の車種を選択可能としてもよい。
【００６８】
次に、ステップＳ２０３において、ブロックデータ１２０のＰ１とＰ２のＺ方向の距離ΔＺを求める。距離ΔＺは、ΔＺ＝Ｚ１−Ｚ２として求められる。Ｚ１、Ｚ２は、それぞれＰ１、Ｐ２を構成するパラメータのうちＺ方向成分の値である。
【００６９】
次に、ステップＳ２０４において、カウンタｉ及びｊをそれぞれ「１」に初期化する。
【００７０】
次に、ステップＳ２０５において、ワークＷの車種に基づいて処理の分岐を行う。ワークＷがワゴンである場合には、ステップＳ２０６へ移り小ブロックＡを下方向へ複写して小ブロックＢ１を求める。ワークＷがセダンである場合には、ステップＳ２０７へ移り小ブロックＡを上方向へ複写して小ブロックＢ２を求める。
【００７１】
次に、ステップＳ２０６、つまりワークＷがワゴンである場合の処理について図１２を参照しながら説明する。
【００７２】
先ず、ステップＳ３０１において、カウンタｊとパラメータｅとを比較する。パラメータｅは、前記の通り、ｅ＝２（ｎ−１）＋４である。ｊ＞ｅであるときには、小ブロックＢ１を示すツール座標であるＱ１、Ｑ２、…Ｑｅが全て求められたことになり、この一連の処理を終了して前記ステップＳ３（図７参照）へ移る。ｊ≦ｅであるときには、次のステップＳ３０２へ移る。
【００７３】
次に、ステップＳ３０２においては、カウンタｉが奇数であるか偶数であるかを確認し、奇数であるときにはステップＳ３０３へ移り、偶数であるときにはステップＳ３０６へ移る。
【００７４】
ステップＳ３０３（ｉが奇数であるとき）においては、小ブロックＢ１を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＰｊを−Ｚ方向に距離（ΔＺ−ｒ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj−（ΔＺ−ｒ）、φj、θj、ψj）として計算され、求めたＱｊを記録する。このようにＱｊを求めることにより小ブロックＡと小ブロックＢ１は、ラップ量ｒだけ重複する。
【００７５】
次に、ステップＳ３０４において、カウンタｊを「＋１」更新する。
【００７６】
次に、ステップＳ３０５において、小ブロックＢ１を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＰｊを−Ｚ方向に距離（ΔＺ＋ｄ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj−（ΔＺ＋ｄ）、φj、θj、ψj）として計算され、求めたＱｊを記録する。このようにＱｊを求めることにより、小ブロックＢ１は下方に延長量ｄだけ延長されるように変形され、ワークＷの高さｈをカバーするように設定される。
【００７７】
一方、ステップＳ３０６（ｉが偶数であるとき）においては、小ブロックＢ１を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＰｊを−Ｚ方向に距離（ΔＺ＋ｄ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj−（ΔＺ＋ｄ）、φj、θj、ψj）として計算され、求めたＱｊを記録する。
【００７８】
次に、ステップＳ３０７において、カウンタｊを「＋１」更新する。
【００７９】
次に、ステップＳ３０８において、小ブロックＢ１を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＰｊを−Ｚ方向に距離（ΔＺ−ｒ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj−（ΔＺ−ｒ）、φj、θj、ψj）として計算され、求めたＱｊを記録する。
【００８０】
ステップＳ３０５又はＳ３０８の後、ステップＳ３０９において、カウンタｉ及びｊを「＋１」更新し、ステップＳ３０１へ戻る。
【００８１】
このようにカウンタｉを更新しながら、小ブロックＢ１を示すツール座標であるＱ１、Ｑ２、…Ｑｅを計算することができる。計算して求められた小ブロックＢ１は、ブロックデータ設定記録部１００に記録される。
【００８２】
また、小ブロックＢ１は小ブロックＡを変形させながら複写設定することから、多種多様のワークＷに対して、高い融通性がある。
【００８３】
次に、ステップＳ２０７、つまりワークＷがセダンである場合の処理について図１３を参照しながら説明する。
【００８４】
先ず、ステップＳ４０１において、カウンタｊとパラメータｅとを比較する。パラメータｅは、前記の通り、ｅ＝２（ｎ−１）＋４である。ｊ＞ｅであるときには、小ブロックＢ２を示すツール座標であるＱ１、Ｑ２、…Ｑｅが全て求められたことになり、この一連の処理を終了して前記ステップＳ３（図７参照）へ移る。ｊ≦ｅであるときには、次のステップＳ４０２へ移る。
【００８５】
次に、ステップＳ４０２においては、カウンタｉが奇数であるか偶数であるかを確認し、奇数であるときにはステップＳ４０３へ移り、偶数であるときにはステップＳ４０６へ移る。
【００８６】
ステップＳ４０３（ｉが奇数であるとき）においては、小ブロックＢ２を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＰｊを＋Ｚ方向に距離（ΔＺ−ｒ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj＋（ΔＺ−ｒ）、φj、θj、ψj）として計算され、求めたＱｊを一時記録する。このようにＱｊを求めることにより小ブロックＡと小ブロックＢ２は、ラップ量ｒだけ重複する。
【００８７】
なお、セダンでは、小ブロックＢ２が不要であるトランク部やボンネット部が広いため、Ｑｊは書き換えを考慮した一時的な記録とする。後述するステップＳ４０５、Ｓ４０６及びＳ４０８においても同様に求めたＱｊは一時的な記録とする。
【００８８】
次に、ステップＳ４０４において、カウンタｊを「＋１」更新する。
【００８９】
次に、ステップＳ４０５において、小ブロックＢ２を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＰｊを＋Ｚ方向に距離（ΔＺ＋ｄ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj＋（ΔＺ＋ｄ）、φj、θj、ψj）として計算され、求めたＱｊを一時記録する。
【００９０】
このようにＱｊを求めることにより、小ブロックＢ２は上方に延長量ｄだけ延長されるように変形され、ワークＷの高さｈをカバーするように設定される。なお、実際上、セダンは車高が低いことから延長量ｄをマイナス値として設定し、小ブロックＢ２を低く設定してもよい。
【００９１】
一方、ステップＳ４０６（ｉが偶数であるとき）においては、小ブロックＢ２を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の終了点であるＰｊを＋Ｚ方向に距離（ΔＺ＋ｄ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj＋（ΔＺ＋ｄ）、φj、θj、ψj）として計算され、求めたＱｊを一時記録する。
【００９２】
次に、ステップＳ４０７において、カウンタｊを「＋１」更新する。
【００９３】
次に、ステップＳ４０８において、小ブロックＢ２を構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＱｊを計算する。この場合、Ｑｊは、小ブロックＡを構成する（ｎ＋１）本の基本経路１２２及び複写経路１２４のうちｉ本目の開始点であるＰｊを＋Ｚ方向に距離（ΔＺ−ｒ）だけ移動させたデータとして表されることから、Ｑｊ（Ｘj、Ｙj、Ｚj＋（ΔＺ−ｒ）、φj、θj、ψj）として計算され、求めたＱｊを一時記録する。
【００９４】
ステップＳ４０５又はＳ４０８の後、ステップＳ４０９において、カウンタｉ及びｊを「＋１」更新し、ステップＳ４０１へ戻る。
【００９５】
このようにカウンタｉを更新しながら、小ブロックＢ２を示すツール座標であるＱ１、Ｑ２、…Ｑｅを計算することができる。計算して求められた小ブロックＢ２は、ブロックデータ設定記録部１００に一時記録される。
【００９６】
次に、前記ステップＳ２（図７参照）の後に実行される前記ステップＳ３の処理、つまりブロックデータ１２０を横方向（Ｙ方向）に複写する処理について、図１４〜図１６を参照しながら説明する。このステップＳ３の処理は、図１５に示すように、ワゴンに対しては小ブロックＡ及び小ブロックＢ１からなる大ブロックＣをそれぞれＹ方向にｍ回複写し、図１６に示すように、セダンに対しては小ブロックＡをＹ方向に複数回複写するとともに、キャビン部２００に対しては一時記録した小ブロックＢ２を複写する。
【００９７】
隣接する小ブロックＡ同士（又は大ブロックＣ同士）の間隔である計測ピッチｔは、境界部における計測漏れのないように設定される。また、ワークＷの長さＵをカバーすることができるように、小ブロックＡ又は大ブロックＣをｍ個設定する。つまり、小ブロックＡ又は大ブロックＣを（ｍ−１）回複写する。
【００９８】
計測ピッチｔ及び長さＵは、ティーチングボックス６６を用いて入力され、個数ｍは、長さＵに基づいて算出される。
【００９９】
また、ステップＳ４（図７参照）において、ワークＷの３次元形状を計測する際に、所定の小ブロックＡ又は大ブロックＣに基づく計測を行った後に、隣接する小ブロックＡ又は大ブロックＣに基づく計測を行う。このとき、走行軸モータ６４（図４参照）を動作させて移動台車２２を移動させることから、ステップＳ３においてブロックデータ１２０を横方向（Ｙ方向）に複写する際には、適応する移動台車２２の位置データｂｋを同時に算出する（ステップＳ５１１参照）。
【０１００】
先ず、ステップＳ５０１において、計測ピッチｔ、長さＵをティーチングボックス６６を用いて入力する。長さＵに基づいて個数ｍを計算して記録する。
【０１０１】
次に、ステップＳ５０２において、ワークＷがセダンであるときに、キャビン部２００に小ブロックＢ２を複写する箇所を示すパラメータｍａ及びｍｂを入力する。パラメータｍａ及びｍｂは、個数ｍに対応した値であり、複写する回数がｍａ回からｍｂ回までの間に小ブロックＢ２を複写する。図１６に示す例では、ｍａ＝２、ｍｂ＝３である。このステップＳ５０２の処理は、ワークＷがワゴンである場合には不要である。
【０１０２】
次に、ステップＳ５０３において、ブロックデータ１２０のＰ１とＰｅのＹ方向の距離ΔＹを求める。距離ΔＹは、ΔＹ＝Ｙｅ−Ｙ１として求められる。Ｙ１、Ｙｅは、それぞれＰ１、Ｐ２を構成するパラメータのうちＹ方向成分の値である。
【０１０３】
次に、ステップＳ５０４において、カウンタｋを「１」に初期化する。
【０１０４】
次に、ステップＳ５０５において、カウンタｋと個数ｍとを比較する。ｋ＞ｍであるときには、ブロックデータ１２０をＹ方向に複写する処理を終了したことになり、この一連の処理を終了して前記ステップＳ４（図７参照）へ移る。ｋ≦ｍであるときには、次のステップＳ５０６へ移る。
【０１０５】
ステップＳ５０６においては、小ブロックＡを横方向（Ｙ方向）に複写する。具体的には、ｋ番目の小ブロックＡはＰｉk（ｉk＝２ｋ・（２・（ｎ−１）＋４）＋ｉ）で表され、これらの前記ステップＳ１で作成した小ブロックＡを示すＰｉ（ｉ＝１〜ｅ）に基づき、次のように添え字だけを変更させながらそのまま複写を行うことができる。
Ｐｉk（Ｘi、Ｙi、Ｚi、φi、θi、ψi）←Ｐｉ（Ｘi、Ｙi、Ｚi、φi、θi、ψi）
【０１０６】
この場合、Ｐｉ及びＰｉkに基づく３次元計測を行う際には、それぞれ多関節ロボット１４がＹ方向に移動することから、多関節ロボット１４から見た各座標値は全く同じでよい。従って、Ｙ方向の座標値である「Ｙi」についても同値でよく、複写手順が容易である。
【０１０７】
次に、ステップＳ５０７において、ワークＷの車種に基づいて処理の分岐を行う。ワークＷがワゴンである場合には、ステップＳ５０８へ移り、ワークＷがセダンである場合には、ステップＳ５０９へ移る。
【０１０８】
ステップＳ５０８においては、小ブロックＢ１を横方向（Ｙ方向）に複写する。この処理は、前記ステップＳ５０６と類似の処理であり、具体的には、ｋ番目の小ブロックＢ１をＱｉkで表したとき、Ｑｉk（Ｘi、Ｙi、Ｚi、φi、θi、ψi）←Ｑｉ（Ｘi、Ｙi、Ｚi、φi、θi、ψi）という処理により複写を行う。この後ステップＳ５１１へ移る。このステップＳ５０８及び前記ステップＳ５０６の複写処理により、大ブロックＣが複写されたことになる。
【０１０９】
また、ステップＳ５０９においては、その時点におけるカウンタｋの値を確認し、ｍｂ≧ｋ≧ｍａであるときにはステップＳ５０９へ移り、ｋ＞ｍｂ又はｋ＜ｍａであるときにはステップＳ５１１へ移る。つまり、キャビン部２００の処理時のみステップＳ５１０を実行する。
【０１１０】
ステップＳ５１０においては、一時記録された小ブロックＢ２を複写する。この処理は、前記ステップＳ５０６と類似の処理であり、具体的には、ｋ番目の小ブロックＢ２をＱｉkで表したとき、Ｑｉk（Ｘi、Ｙi、Ｚi、φi、θi、ψi）←Ｑｉ（Ｘi、Ｙi、Ｚi、φi、θi、ψi）という処理により複写を行う。この後ステップＳ５１１へ移る。
【０１１１】
次のステップＳ５１１においては、移動台車２２の位置データｂｋを算出する。位置データｂｋは、ｂｋ←ｂ０＋（ｋ−１）・ΔＹ＋ｔとして求められる。ここで、ｂ０は最初の小ブロックＡに対応する移動台車２２の初期位置を示すデータである。
【０１１２】
次に、ステップＳ５１２において、前記ステップＳ５０６、Ｓ５０８、Ｓ５１０で求めた小ブロックＡ、Ｂ１、Ｂ２を前記ステップＳ５１１で求めた位置データｂｋと対応させて記録する。
【０１１３】
次に、ステップＳ５１３において、カウンタｋを「＋１」更新し、ステップＳ５０５へ戻る。
【０１１４】
このように、カウンタｋをインクリメントしながら小ブロックＡ、Ｂ１、Ｂ２を複写するとともに対応する位置データｂｋを求めて記録することにより、選択されたワークＷの基本形状タイプに基づき、仮想ブロックである小ブロックＡ、Ｂ１、Ｂ２を複写設定し、仮想空間上のワークＷの投影面のうち、測定を行う部分を覆うように設定することができる。
【０１１５】
複写設定された小ブロックＡ、Ｂ１及びＢ２は、ワークＷの投影面のうち、計測を行う部分を覆うように設定される。例えば、フロントウィンド部に関しては、別途、多関節ロボット１４をワークＷの正面に移動させて計測する計画である場合には、該フロントウィンド部は側面から見た小ブロックＡ、Ｂ１、Ｂ２で覆わないようにしてもよい。
【０１１６】
なお、ワークＷがワゴンである場合には、小ブロックＡ及び小ブロックＢ１からなる大ブロックＣを複写することになるが、図１５に示すように、小ブロックＡのうち、ボンネット上部に位置することになる小ブロックＡｘ1は不要となる場合があることから、オペレータがティーチングボックス６６を操作することによって、小ブロックＡｘ1を削除してもよい。また、小ブロックＡのうち、フロントウィンド部に位置することになる小ブロックＡｘ2はやや低い高さであっても構わない。従って、オペレータがティーチングボックス６６を操作することによって、小ブロックＡｘ2を構成するデータを書き換えたやや低い高さの小ブロックＡｘ3で置き換えてもよい。さらに、小ブロックＢ１のうち、フロントフェンダ部に位置することになる小ブロックＢ１ｘ1は、幅がやや狭くなっていても構わない。従って、オペレータがティーチングボックス６６を操作することによって、小ブロックＢ１ｘ1を構成する複写経路１２４（図９参照）を数本削除した小ブロックＢ１ｘ2で置き換えてもよい。
【０１１７】
次に、前記ステップＳ３（図７参照）の後に実行される前記ステップＳ４の処理、すなわちワークＷの３次元形状を計測する処理について図１７〜図２０を参照しながら説明する。なお、図１７に示す処理は、基本的にはロボット姿勢計算部１０６ａ（図６参照）によって行われ、微小時間毎に繰り返し実行されることによりリアルタイム処理が行われる。
【０１１８】
先ず、図１７のステップＳ６０１において、ブロックデータ１２０を読み込み、計測を行うための倣い経路を認識する。
【０１１９】
次に、ステップＳ６０２において、多関節ロボット１４の基本位置Ｐ０及び基本姿勢を求める。つまり、図１８に示すように、レーザスキャナ１２の現位置Ｐｔから基本経路１２２（又は複写経路１２４）上の最も近い点を基本位置Ｐ０とするとともに、基本位置Ｐ０におけるレーザスキャナ１２の姿勢をブロックデータ１２０に基づいて求める。
【０１２０】
ステップＳ６０３において、レーザ変位計２０の計測値である距離Ｌｍを入出力インターフェース５６を介して読み込む。
【０１２１】
ステップＳ６０４において、距離Ｌｍに基づき、その時点におけるレーザスキャナ１２とワークＷと距離である倣い量Ｌ０を求める。
【０１２２】
ステップＳ６０５において、前記ステップＳ６０２で求めた基本位置Ｐ０及び基本姿勢と、前記ステップＳ６０４で求めた倣い量Ｌ０との軌道オフセット処理を行い目標位置Ｐｐを求める。つまり、現位置Ｐｔと基本位置Ｐ０とを結ぶ直線上において、現位置Ｐｔにおけるレーザスキャナ１２を距離Ｌ０−Ｌだけ軌道オフセットさせた位置を目標位置Ｐｐとして設定する。
【０１２３】
この際、現位置ＰｔがＬ±εの範囲内に入っているときには、現位置Ｐｔをそのまま目標位置Ｐｐとしてもよい。
【０１２４】
ステップＳ６０６において、目標位置Ｐｐと基本位置Ｐ０とを比較し、目標位置Ｐｐが基本位置Ｐ０よりもワークＷに近い位置にある場合には、ステップＳ６０７へ移り、遠い位置にある場合にはステップＳ６０８へ移る。目標位置Ｐｐと基本位置Ｐ０との位置の比較は、例えば、Ｘ座標値の大小に基づいて行えばよい。
【０１２５】
このステップＳ６０６における比較処理は、目標位置Ｐｐと基本位置Ｐ０とを直接的に比較する方法の他に、目標位置Ｐｐと基本経路１２２（又は複写経路１２４）との位置関係を２次元的に調べる方法や、目標位置Ｐｐとブロックデータ１２０（図９参照）で形成される面との位置関係を３次元的に調べる方法を採りうる。また、目標位置Ｐｐの比較対象とする位置は基本位置Ｐ０以外にも、このステップＳ６０６の比較処理専用に設けられた倣い制限面１３０（図１８参照）に基づいて設定される位置Ｐｘを倣い制限位置としてもよい。
【０１２６】
ステップＳ６０７においては、目標位置Ｐｐを修正する。つまり、Ｐｐ←Ｐ０という代入処理を行うことによって目標位置Ｐｐを基本位置Ｐ０の位置で制限して、目標位置Ｐｐが基本位置Ｐ０を超えてワークＷに接近することを制限する修正を行う。また、このステップＳ６０７では、データ処理部１８に対して、目標位置Ｐｐが修正されている状態であることを通知する。これにより、データ処理部１８では供給されたデータに対して所定の補正を行うことができる。
【０１２７】
ステップＳ６０６又はＳ６０７の後、ステップＳ６０８において、レーザスキャナ１２が目標位置Ｐｐに配置されるように多関節ロボット１４の動作を制御する。
【０１２８】
この後、レーザスキャナ１２によりワークＷの表面を走査することによって形状を計測し、得られたデータをデータ処理部１８へ供給する。
【０１２９】
このような３次元形状測定方法によって移動するレーザスキャナ１２の動作経路を実験的に検証した結果を図１９に示す。この検証における理論的な倣い目標経路１３２は、断面矩形である検証用ワークＷ１の表面から距離Ｌだけ離間した矩形となり、一部は検証用ワークＷ１の窪み部１３４の端部１３４ａ及び１３４ｂに接近する。本実施の形態に係る３次元形状測定方法におけるステップＳ６０６及びＳ６０７の比較処理及び修正処理を行わない場合には、レーザスキャナ１２は倣い軌跡１３６に示すように、倣い目標経路１３２に対して略沿った動作を行い、端部１３４ａ及び１３４ｂに対して非常に接近し、干渉のおそれがある。一方、本実施の形態に係る３次元形状測定方法によれば、倣い軌跡１３８に示すように、基本経路１２２を超えることがなく、干渉のおそれがない。
【０１３０】
上述したように、本実施の形態に係る３次元形状測定方法では、略Ｚ方向に沿って設定された基本経路１２２をＹ方向に複数回複写してブロックデータ１２０をうることができ、該ブロックデータ１２０をさらに複写してワークＷの側面全域を覆うように設定することができる。従って、ティーチングに要する時間が短時間で足りて作業効率の向上が図られるとともにオペレータの負担が少ない。
【０１３１】
また、本実施の形態に係る３次元形状測定方法では、レーザスキャナ１２がブロックデータ１２０によって規定される基本位置Ｐ０を超えてワークＷに接近することを制限する処理を行う。従って、例えば、図２０に示すように、レーザ変位計２０による計測点がちょうどホイールハウス１４０におけるタイヤ１４２以外の窪み部に達したときであっても、レーザスキャナ１２の前進量は基本位置Ｐ０で制限される。これにより、レーザスキャナ１２が過度に前進してホイールハウス１４０の端部やタイヤ１４２に対して干渉することが回避される。つまり、このようなホイールハウス１４０に対してもブロックデータ１２０を汎用的にそのまま適用することができ、ホイールハウス１４０に対する専用のティーチングが不要である。
【０１３２】
さらに、前進の制限基準となる基本位置Ｐ０は予め設定されているブロックデータ１２０に基づいて簡便に求められる。
【０１３３】
なお、本実施の形態に係る３次元形状測定方法では、インスツルメントパネルなどの凹凸の激しい複雑な表面形状のワークを３次元形状測定装置１０により計測する場合においても、レーザスキャナ１２とワークとの干渉を回避することができる。
【０１３４】
本発明に係る３次元形状測定方法は、上述の実施の形態に限らず、本発明の要旨を逸脱することなく、種々の構成乃至手順を採りうることはもちろんである。
【図面の簡単な説明】
【０１３５】
【図１】３次元形状測定装置の概略斜視図である。
【図２】レーザスキャナを備える多関節ロボット及び該多関節ロボットが載置される移動台車を示す斜視図である。
【図３】レーザスキャナ及びレーザ変位計を用いてワークの表面形状を測定する様子を示す概略斜視図である。
【図４】３次元形状測定装置の概略ブロック図である。
【図５】コンピュータの内部処理の概略ブロック図である。
【図６】ロボット姿勢計算部の機能ブロック図である。
【図７】本実施の形態に係る３次元形状測定方法の手順を示すフローチャートである。
【図８】ブロックデータの設定記録を行う手順を示すフローチャートである。
【図９】ブロックデータを示す模式図である。
【図１０】ワークの形状に基づいてブロックデータを縦方向に複写設定する手順を示すフローチャートである。
【図１１】２つの小ブロックからなる大ブロックを示す模式図である。
【図１２】ワークがワゴンである場合、ブロックデータを縦方向に複写設定する手順を示すフローチャートである。
【図１３】ワークがセダンである場合、ブロックデータを縦方向に複写設定する手順を示すフローチャートである。
【図１４】ワークの形状に基づいてブロックデータを縦方向に複写設定する手順を示すフローチャートである。
【図１５】ワークがワゴンである場合、ブロックデータを横方向に複写する様子を示す模式図である。
【図１６】ワークがセダンである場合、ブロックデータを横方向に複写する様子を示す模式図である。
【図１７】本実施の形態に係る３次元形状測定方法のうち、ワークの３次元形状を測定する手順を示すフローチャートである。
【図１８】ワークに倣いながらレーザスキャナを移動させる際、ワーク、基本経路及びレーザスキャナの位置関係を示す説明図である。
【図１９】レーザスキャナの動作経路を断面矩形の検証用ワークに対して適用した結果を示すグラフである。
【図２０】レーザスキャナによりホイールハウスの窪み部を計測する様子を示す模式斜視図である。
【符号の説明】
【０１３６】
１０…３次元形状測定装置            １２…レーザスキャナ
１４…多関節ロボット                １６…位置検出装置
１８…データ処理部                  １９…制御部
２０…レーザ変位計                  ２２…移動台車
３６…先端部                        ５８…コンピュータ
６４…走行軸モータ                  ６６…ティーチングボックス
６６ａ…モニタ画面                  ６８…操作ボックス
１００…ブロックデータ設定記録部    １０２…基本形状選択部
１０４…ブロックデータ複写部        １０６…計測実行部
１０６ａ…ロボット姿勢計算部        １０６ｂ…台車位置計算部
１０８…パラメータ記録部            １１０…外部信号監視部
１２０…ブロックデータ              １２２…基本経路
１２４…複写経路                    ２００…キャビン部
Ａ、Ｂ１、Ｂ２…小ブロック          Ｃ…大ブロック
ｄ…延長量                          ｈ…高さ
ｉ、ｊ、ｋ…カウンタ                Ｌ０…倣い量
Ｌｍ…距離                          ｐ…相互間隔
Ｐ０…基本位置（倣い制限位置）      Ｐｐ…目標位置
Ｐｔ…現位置                        Ｗ…ワーク
【図１】
2005308613.tif 000003
【図２】
2005308613.tif 000004
【図３】
2005308613.tif 000005
【図４】
2005308613.tif 000006
【図５】
2005308613.tif 000007
【図６】
2005308613.tif 000008
【図７】
2005308613.tif 000009
【図８】
2005308613.tif 000010
【図９】
2005308613.tif 000011
【図１０】
2005308613.tif 000012
【図１１】
2005308613.tif 000013
【図１２】
2005308613.tif 000014
【図１３】
2005308613.tif 000015
【図１４】
2005308613.tif 000016
【図１５】
2005308613.tif 000017
【図１６】
2005308613.tif 000018
【図１７】
2005308613.tif 000019
【図１８】
2005308613.tif 000020
【図１９】
2005308613.tif 000021
【図２０】
2005308613.tif 000022