(57)【特許請求の範囲】
【請求項１】
位置決め装置であり、
移動台を正方向と逆方向のいずれの方向にも移動させることができるアクチュエータと、
移動台の位置を計測するセンサと、
センサによる位置計測値に基づいて移動台を目標位置へ移動させるコントローラと、
を備えており、コントローラは、
移動台を正方向に移動させた場合における移動台の正確な位置とセンサによる位置計測値とのずれ量を複数の位置にて予め計測して対応付けた正方向用の補正マップと、
移動台を逆方向に移動させた場合における移動台の正確な位置とセンサによる位置計測値とのずれ量を複数の位置にて予め計測して対応付けた逆方向用の補正マップと、
移動台を移動させる際の基準位置と、
を記憶しているとともに、以下の処理、即ち、
移動台を基準位置から既定の移動量閾値以上離れた位置に移動した場合に移動先の位置を新たな基準位置に設定する基準位置更新処理と、
（１）基準位置と目標位置との間の距離が移動量閾値以上の場合、及び、（２）基準位置と目標位置との間の距離が移動量閾値未満であり、かつ、最新の基準位置が設定されてから１回も移動方向が反転していない場合には、現在位置から目標位置への移動方向と同一方向用の補正マップを用いてセンサによる位置計測値を補正し、（３）基準位置と目標位置との間の距離が移動量閾値未満であり、かつ、最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合には、両方向用の補正マップを用いてセンサによる位置計測値を補正する補正処理と、
補正後の位置計測値が目標位置に一致するようにアクチュエータを制御する駆動制御処理と、
を実行するものであり、
コントローラは、両方向用の補正マップを用いてセンサによる位置計測値を補正する場合、正方向用の補正マップに基づく補正量と逆方向用の補正マップに基づく補正量の平均値によって、センサによる位置計測値を補正することを特徴とする位置決め装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置決め装置に関する。本発明の位置決め装置は、例えば、半導体ウエハを位置決めする装置、あるいは、チップマウンタにおけるチップを位置決めする機構などに応用され得る。
【背景技術】
【０００２】
製品の高度化に伴い、製造装置などに要求される位置決め精度は高まるばかりである。位置決め精度を向上させる技術として、例えば、特許文献１には、予めその位置が厳密に計測された複数のマーカを記した基準スケールを位置決め装置の移動台に載せたカメラで撮影し、位置決め装置のセンサで計測した移動台の位置計測値をカメラで捉えた基準スケールの画像で補正する技術が開示されている。
【０００３】
なお、本明細書が開示する技術について次の点に留意されたい。ＸＹステージはＸとＹの２方向の位置決め自由度を有している。ある種のチップマウンタはＸとＹとＺの３方向の位置決め自由度を有している。また別の種類のチップマウンタはＸとＹ、及び、Ｚ軸周りの３方向の位置決め自由度を有している。本明細書が開示する技術は、１自由度の位置決め装置に関するが、複数自由度の夫々に適用することができ、複数自由度の位置決め装置にも適用可能である。また、本明細書における「位置」とは、併進方向の位置だけでなく、角度を含む概念であることにも留意されたい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−１９０７４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術は、位置決め装置が本来有する計測器（位置計測用のセンサ）の他に別の位置誤差補正用の機器（基準スケールと画像センサ）を必要とする。そのため、コストが嵩む。本明細書は、位置決め装置が本来有している位置計測用のセンサを巧みに使って位置決め精度を従来よりも向上させる技術を提供する。
【課題を解決するための手段】
【０００６】
通常の位置決め装置は、移動台を正方向と逆方向のいずれにも移動させることができる。なお、ここで、「正方向」とは特定の方向（例えばＸ軸の正方向や、Ｘ軸周りの時計回り方向）を意味せず、「逆方向」と対をなす言葉であることに留意されたい。移動台を正方向と逆方向に移動させる位置決め装置の場合、機構のバックラッシがセンサの計測誤差の要因となり得る。即ち、移動台の移動方向が反転することが位置決め精度低下の一因となる。「バックラッシレス」を謳い文句としている機構も存在するが、微視的にみると機構には必ずバックラッシが存在する。本明細書は、このバックラッシに起因する位置決め精度の低下を抑える技術を提供する。
【０００７】
移動方向が一方向に限られているのであれば、移動台をその一方向に移動させた場合における移動台の正確な位置とセンサによって計測された位置とのずれ量を複数の位置にて予め計測して対応付けた補正マップを用意し、その補正マップに基づいてセンサ出力（位置計測値）を補正することが考えられる。逆方向の移動についても同様の補正マップを用意することが考えられる。バックラッシの影響は、当然に移動方向が反転したときに現れる。バックラッシの影響を受ける場合は、目標位置への移動方向と同じ方向の補正マップを単純に適用するわけにはいかない。そこで本願の発明者らは、正方向の補正マップと逆方向の補正マップを巧みに用い、センサ出力を補正する際にバックラッシの影響を低減する手法を確立した。
【０００８】
本願の発明者らの検討によると、バックラッシの影響は、反転後の移動量が所定の大きさ以下であるときに現れることを見出した。本明細書が開示する技術の一つの特徴は、反転後の移動量が所定の大きさ以下であるとき、２つの補正マップを用いてセンサによる位置計測値を補正することにある。
【０００９】
本明細書が開示する位置決め装置の一態様は、移動台を正方向と逆方向のいずれの方向にも移動させることができるアクチュエータと、移動台の位置を計測するセンサと、センサによる位置計測値に基づいて移動台を目標位置へ移動させるコントローラと、を備える。そのコントローラは、以下のデータを記憶している。一つは、移動台を正方向に移動させた場合における移動台の正確な位置とセンサによる位置計測値とのずれ量を複数の位置にて予め計測して対応付けた正方向用の補正マップである。一つは、移動台を逆方向に移動させた場合における移動台の正確な位置とセンサによる位置計測値とのずれ量を複数の位置にて予め計測して対応付けた逆方向用の補正マップである。コントローラはさらに、移動台を移動させる際の基準位置を記憶している。「基準位置」は、後述するように適宜に更新される。基準位置の初期値は、例えば、装置に電源が入れられたときの移動台の位置に設定される。
【００１０】
コントローラは、次の処理を実行するように構成されている。
（１）移動台を基準位置から既定の移動量閾値以上離れた位置に移動した場合に移動先の位置を新たな基準位置に設定する基準位置更新処理。
（２）基準位置と目標位置との間の距離が移動量閾値以上の場合には、現在位置から目標位置への移動方向と同一方向用の補正マップを用いてセンサによる位置計測値を補正し、基準位置と目標位置との間の距離が移動量閾値未満であり、かつ、最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合には、両方向用の補正マップを用いてセンサによる位置計測値を補正する補正処理。ここで、「最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合」には、移動台の現在位置から目標位置への移動方向が、直前の移動方向（即ち、現在位置へ移動してきたときの移動方向）と異なる場合、即ち、次の移動で反転が生じる場合を含む。
（３）移動台の補正後の位置計測値が目標位置に一致するようにアクチュエータを制御する駆動制御処理。
【００１１】
いずれかの方向用の補正マップを用いる補正は、典型的には、補正マップにて離散的に与えられている位置とずれ量（即ち補正量）との関係を補間して位置計測値における補正量を求め、求めた補間量を位置計測値に加算（あるいは減算）する。両方向用の補正マップを用いてセンサによる位置計測値を補正する場合は、好適には、正方向用の補正マップに基づく補正量と逆方向用の補正マップに基づく補正量の平均値によって、センサによる位置計測値を補正する。「補正マップに基づく補正量」とは、典型的には、前述した補間によって求める補正量である。また、平均値は、２つの補正マップに基づく補正量の単純平均でもよいが、所定の重みを加えた加重平均であってもよい。
【００１２】
上記の処理、特に、補正処理の概要を、図１を参照して説明する。図１の横軸は位置決め装置の移動台の位置を示しており、縦軸は時間を示している。今、位置決め装置のコントローラは、移動台の位置をＰ１→Ｐ２→Ｐ３→Ｐ４→Ｐ５→Ｐ６→Ｐ７の順に移動すると仮定する。基準位置は、最初は位置Ｐ１に設定されている。第１回目の移動では、コントローラは移動台をＰ１からＰ２へ移動する（図１中の（１））。このとき、基準位置Ｐ１と目標位置Ｐ２との間の距離は移動量閾値ＤＬよりも大きいので、コントローラは、現在位置Ｐ１から目標位置Ｐ２への移動方向と同一方向用の補正マップ（即ち正方向用の補正マップ）を用いてセンサによる位置計測値を補正し、補正後の位置計測値に基づいてアクチュエータを駆動し、移動台を移動させる。このときの移動距離は移動量閾値ＤＬよりも大きいので、コントローラは基準位置を現在位置Ｐ２に更新する。
【００１３】
第２回目の移動では、コントローラは、移動台を現在位置Ｐ２から目標位置Ｐ３へ移動する（図１中の（２））。このときの移動距離は移動量閾値ＤＬよりも小さいが、最新の基準位置が設定されてから（即ち、基準位置がＰ２に設定されてから）１回も移動方向が反転していないので、コントローラは、現在位置Ｐ２から目標位置Ｐ３への移動の際には正方向用の補正マップを用いて位置計測値を補正し、補正後の位置計測値に基づいてアクチュエータを駆動し、移動台を移動させる。
【００１４】
第３回目の移動では、コントローラは、移動台を現在位置Ｐ３から目標位置Ｐ４に移動する（図１中の（３））。第３回目の移動では移動方向が反転する（移動方向は図中の左方向から右方向に反転する）。そして、基準位置Ｐ２と目標位置Ｐ４との間の距離が移動量閾値ＤＬよりも小さいので、コントローラは、現在位置Ｐ３から目標位置Ｐ４への移動の際には正方向用の補正マップと逆方向用の補正マップの両方を用いて位置計測値を補正し、補正後の位置計測値に基づいて移動台を移動させる。
【００１５】
第４回目の移動では、コントローラは、移動台を現在位置Ｐ４から目標位置Ｐ５に移動する（図１中の（４））。第４回目の移動でも移動方向が反転する。そして、基準位置Ｐ２と目標位置Ｐ５との間の距離が移動量閾値ＤＬよりも小さいので、コントローラは、現在位置Ｐ４から目標位置Ｐ５への移動の際にも正方向用の補正マップと逆方向用の補正マップの両方を用いて位置計測値を補正し、補正後の位置計測値に基づいて移動台を移動させる。
【００１６】
第５回目の移動では、コントローラは、移動台を現在位置Ｐ５から目標位置Ｐ６に移動する（図１中の（５））。第５回目の移動方向は、前回の移動方向と同じである（図中右方向）。しかし、最新の基準位置が設定されてから（即ち、基準位置がＰ２に設定されてから）、２回、移動方向が反転している（第３回目の移動時と第４回目の移動時）。そして、基準位置Ｐ２と目標位置Ｐ６との間の距離が移動量閾値ＤＬよりも小さいので、コントローラは、現在位置Ｐ５から目標位置Ｐ６への移動の際にも正方向用の補正マップと逆方向用の補正マップの両方を用いて位置計測値を補正し、補正後の位置計測値に基づいて移動台を移動させる。
【００１７】
第６回目の移動では、コントローラは、移動台を現在位置Ｐ６から目標位置Ｐ７に移動する（図１中の（６））。第６回目の移動方向は、前回の移動方向から反転している。しかし、基準位置Ｐ２と目標位置Ｐ７との間の距離が移動量閾値ＤＬよりも大きいので、コントローラは、現在位置Ｐ６から目標位置Ｐ７への移動の際には、逆方向用（図中の左方向）の補正マップだけを用いて位置計測値を補正し、補正後の位置計測値に基づいて移動台を移動させる。なお、第６回目の移動では、コントローラは、基準位置Ｐ２から移動量閾値ＤＬ以上離れた位置Ｐ７に移動台を移動したので、移動先の位置Ｐ７を新たな基準位置に設定する。
【００１８】
以上の説明から明らかなとおり、本発明の位置決め装置は、移動台が元の基準位置から移動量閾値ＤＬ以上移動した場合に移動先の位置を新たな基準位置に設定し、その後は新たな基準位置から移動量閾値の距離の範囲内での移動であれば（ただし、少なくとも１回は移動方向の反転が生じたのち）、正逆両方向用の補正マップを用いて位置計測値を補正する。他方、移動台を新たな基準位置から移動量閾値以上離れた位置に移動させる場合には、その移動方向に合致する補正マップだけを用いて位置計測値を補正する。発明者らの検討によると、移動量閾値の範囲内での移動ではバックラッシの影響が残るので、センサによる位置計測値を単純に一方の補正マップで補正するより、正逆両方向の補正マップで補正した方が、位置精度が向上することを見出した。上記説明したコントローラの処理は、発明者らのこの知見に基づくものである。
【００１９】
なお、前述したように、本明細書が開示する技術は、併進方向の位置決め装置だけでなく、回転方向の位置決め（角度決め）装置に適用することもできる。また、本明細書が開示する実施例は１次元（１自由度）の位置決め装置に関するものであるが、本明細書が開示する技術は多次元（多自由度）を有する位置決め装置の各自由度に適用することもできることに留意されたい。
【発明の効果】
【００２０】
本発明によれば、バックラッシに起因する位置決め精度の低下を抑えた位置決め装置を実現することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明による位置決め装置の処理を説明するタイムチャートである。
【図２】実施例の位置決め装置の模式図である。
【図３】補正マップの一例を示す。
【図４】位置決め制御処理のフローチャート図である。
【図５】移動指示処理のフローチャート図である。
【図６】移動方向記憶切替処理のフローチャート図である。
【図７】移動方向記憶切替処理のフローチャート図である（図６の続き）。
【図８】移動指示のシーケンス例を示す。
【図９】移動指示の他のシーケンス例を示す。
【発明を実施するための形態】
【実施例１】
【００２２】
第１実施例について説明する。実施例の位置決め装置１００の模式図を図２に示す。この位置決め装置１００は、半導体ウエハＷのノッチＷａを所定の方向に向ける回転ステージである。ウエハＷは、移動台２に載置される。移動台２の位置（回転角）は、リニアスケール４（移動台２の回転角を計測するセンサ）で計測される。リニアスケール４による位置計測値（移動台２の回転角の計測値）は、コントローラ１０に送られる。コントローラ１０では、Ｉ／Ｏ１２を介して位置計測値がＣＰＵ１６に送られる。ＣＰＵ１６が実行する処理は、記憶装置１８に格納されたプログラムに記述されている。ＣＰＵ１６は、プログラムに基づき、移動台２の現在位置（即ち位置計測値）が目標位置に一致するように、モータ６を制御する。より具体的には、ＣＰＵ１６は、モータドライバ１４に指令値を出力する。指令値に基づき、モータドライバ１４がモータ６を駆動する。
【００２３】
記憶装置１８には、ＣＰＵ１６が実行するプログラムの他に、正方向用の補正マップ、逆方向用の補正マップ、基準位置、及び、移動量閾値が記憶されている。また、「基準位置」は、後述するように適宜に更新される。最初は、ゼロ［ｄｅｇ］（リニアスケール４の位置計測値がゼロ［ｄｅｇ］）が基準位置に設定されている。移動量閾値は、補正マップを使い分けるための数値であり、予め定められている。
【００２４】
ここで、「正方向」とは、移動台２を上からみたときの時計回り方向に相当し、「逆方向」とは、反時計回り方向に相当する。なお、この定義は一例であり、全く正反対の定義をしてもかまわない。即ち、「正方向」と「逆方向」は対をなすことに意味があり、「正方向」だけに特定の意味があるのではないことに留意されたい。「正方向」を「第１方向」と称し、「逆方向」を「第１方向とは反対の第２方向」と称してもよいことに留意されたい。
【００２５】
正方向用の補正マップとは、リニアスケール４の位置計測値に基づいて、移動台２を正方向（時計回り方向）に１０度ずつ回転させたときの移動台２の正確な位置をリニアスケール４の位置計測値と対応付けたテーブルである。逆方向用の補正マップとは、リニアスケール４の位置計測値に基づいて、移動台２を逆方向（反時計回り方向）に１０度ずつ回転させたときの移動台２の正確な位置をリニアスケール４の位置計測値と対応付けたテーブルである。補正マップは、予め準備され記憶装置１８に記憶される。移動台２の正確な位置は、たとえばレーザ計測器によって求められる。例えば、リニアスケール４による計測精度の１００倍の高精度で移動台の位置を計測することができるレーザ計測器が用いられる。図３（Ａ）に、正方向用の補正マップの一例を示し、図３（Ｂ）に、逆方向用の補正マップの一例を示す。この例では、移動台２を正方向に回転させる場合において、リニアスケール４が１０．０［ｄｅｇ］を示すときの正確な位置は１０．２［ｄｅｇ］であり、その差（ずれ量）は＋０．２［ｄｅｇ］である。また、リニアスケール４が２０．０［ｄｅｇ］を示すときの正確な位置は２０．３［ｄｅｇ］であり、その差（ずれ量）は＋０．３［ｄｅｇ］である。また、移動台２を逆方向に回転させる場合において、リニアスケール４が−１０．０［ｄｅｇ］を示すときの正確な位置は−９．９［ｄｅｇ］であり、その差（ずれ量）は＋０．１［ｄｅｇ］である。また、リニアスケール４が−２０．０［ｄｅｇ］を示すときの正確な位置は−１９．５［ｄｅｇ］であり、その差（ずれ量）は＋０．５［ｄｅｇ］である。正方向用（逆方向用）の補正マップは、移動台２を正方向（逆方向）に移動させた場合における移動台２の正確な位置とリニアスケール４による位置計測値とのずれ量を複数の位置にて予め計測して対応付けたものである。
【００２６】
補正マップに記された「ずれ量」が、そのずれ量に対応付けられた位置計測値に対する補正量に相当する。例えば、リニアスケール４が０．０［ｄｅｇ］を示している状態から２０．０［ｄｅｇ］を示す状態まで、移動台２を正方向に回転させた場合、正方向の補正マップ（図３（Ａ））を参照し、リニアスケール４の位置計測値２０．０［ｄｅｇ］に、そのときのずれ量（補正量）＋０．３［ｄｅｇ］を加算した値が正確な位置（補正後の位置計測値）となる。コントローラ１０は、補正後の位置計測値が目標位置に一致するようにモータ６を制御する。
【００２７】
コントローラ１０が実行する位置決め制御処理を説明する。図４は、位置決め制御処理のフローチャート図である。図４以降のフローチャートの処理は、記憶装置１８に格納されたプログラムに記述されている。
【００２８】
図４の処理は、上位のコントローラから位置決め装置１００のコントローラ１０へ、移動台２の目標位置が与えられるとスタートする。コントローラ１０はまず、記憶装置１８に記憶されている基準位置を読み出すとともに、移動台２の現在位置を取得する（Ｓ２）。なお、リニアスケール４が計測する位置計測値が、移動台２の現在位置に相当する。
【００２９】
コントローラ１０は、基準位置と目標位置との間の距離を移動量閾値と比較する。基準位置と目標位置との間の距離が移動量閾値よりも大きい場合にはステップＳ４に処理が移り、そうでない場合にはステップＳ１３に処理が移る。なお、移動予定距離が移動量閾値に等しい場合に処理がステップＳ４とＳ１３のいずれに移るかは、適宜に定めればよい。
【００３０】
ステップＳ３以降の処理を概説すると次の通りである。コントローラ１０は、基準位置と目標位置との間の距離が移動量閾値よりも小さく、かつ、最新の基準位置が設定されてから過去に移動方向の反転が生じていれば、２つの補正マップを使ってリニアスケール４の位置計測値を補正し、そうでない場合は目標位置への移動方向に対応する補正マップを使ってリニアスケール４の位置計測値を補正する。そしてコントローラ１０は、補正後の位置計測値が目標位置に一致するように移動台２を駆動する。
【００３１】
図４のフローチャートに沿って説明を続ける。コントローラ１０は、基準位置と目標位置との間の距離が移動量閾値よりも大きい場合（ステップＳ３：ＹＥＳ）、あるいは、基準位置と目標位置との間の距離が移動量閾値よりも小さいが、最新の基準位置が設定された後に移動方向の反転がなかった場合（ステップＳ３：ＮＯ、ステップＳ１３：ＮＯ）、ステップＳ４の処理に移行する。ステップＳ４では、コントローラ１０は、移動台２の現在位置から目標位置への移動方向を特定し、その方向と同じ方向の補正マップを選択する。例えば、移動方向が正方向であれば、図３（Ａ）に示した正方向用の補正マップを選択する。
【００３２】
ステップＳ５からＳ８までのループは、移動台２の位置を目標位置まで移動させるためのモータ制御のルーチンである。ここでは、コントローラ１０は、まずリニアスケール４の位置計測値（即ち移動台２の現在位置）を取得する（Ｓ５）。次にコントローラ１０は、取得した位置計測値を、ステップＳ４にて選択した補正マップを使って補正する（Ｓ６）。具体的な補正処理は次の通りである。図３（Ａ）に示すように、補正マップには、１０［ｄｅｇ］間隔で、位置計測値と正確な値（高精度計測値）とそれらの間のずれ量が対応付けられている。コントローラ１０は、補正マップに記された位置のうち、ステップＳ５で取得した位置計測値に近い２地点を抽出し、それら２地点の間を補間し、位置計測値に対するずれ量を算出する。コントローラ１０は、ステップＳ５で取得した位置計測値に、算出したずれ量を加算する。即ち、「ずれ量」が補正量に相当する。ずれ量加算後の位置計測値が、補正後の位置計測値に相当する。コントローラ１０は、補正後の位置計測値が目標位置に一致するまで、モータ６を制御する（Ｓ７、Ｓ８）。
【００３３】
なお、基準位置と目標位置との間の距離が移動量閾値よりも大きかった場合（Ｓ３：ＹＥＳ）、コントローラ１０は、移動台２を目標位置まで移動させた後（Ｓ８：ＹＥＳ）、その目標位置（即ちそのときの現在位置）を新たな基準位置に設定する（Ｓ９）。ここで、図４のフローチャートでは図示を省略しているが、ステップＳ９の処理は、ステップＳ１３の判定がＮＯの場合（即ち、基準位置と目標位置との間の距離は移動量閾値よりも大きくはないが移動方向の反転が１回もなかった場合）は、実行されないことに留意されたい。
【００３４】
他方、基準位置と目標位置との間の距離が移動量閾値よりも大きくない場合（ステップＳ３：ＮＯ）、コントローラ１０は、最新の基準位置が設定されてから少なくとも１回は移動方向が反転しているか否かを判断する（Ｓ１３）。基準位置の更新については後述する。また、基準位置が一回も更新されていない場合は、初期値の基準位置が、「最新の基準位置」に相当する。さらに、「最新の基準位置が設定されてからの移動方向」には、移動台２の現在位置から目標位置へ向かう移動方向が含まれる。即ち、移動台２の現在位置から目標位置へ向かう移動方向が、直前の移動方向（現在位置へ至った際の移動方向）と異なる場合も、ステップＳ１３の判断は「ＹＥＳ］となる。移動方向の反転がなかった場合にはステップＳ４に移行する。ステップＳ４以降の処理については前述した。
【００３５】
最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合（Ｓ１３：ＹＥＳ）、コントローラ１０は、両方向の補正マップを選択する（Ｓ１４）。以降、コントローラ１０は、両方向の補正マップを使って位置計測値を補正しながら、移動台２が目標位置に到達するまでモータを制御する（Ｓ１５〜Ｓ１８）。ステップＳ１６における補正処理は、ステップＳ６における補正処理とは異なる。ステップＳ１６における補正処理は、具体的には次の通りである。コントローラ１０は、正方向用の補正マップと逆方向用の補正マップの夫々に対して補間演算を行い、ステップＳ１５で取得した位置計測値に対するずれ量（補正量）を算出する。即ち、正方向用の補正マップに基づく補正量（以下、正方向補正量と称する）と、逆方向用の補正マップに基づく補正量（以下、逆方向補正量と称する）を算出する。コントローラ１０は、正方向補正量と逆方向補正量の平均値を、最終的な補正量として位置計測値に加算する。
【００３６】
以上、説明したフローチャートに基づく動作の一例は、図１を使って説明した通りである。上記した位置計測値の補正処理の技術的意義を説明する。移動台を正方向（逆方向）に大きく移動する場合は、その方向に対応した補正マップに基づいて位置計測値を補正すればよい（ステップＳ４からＳ８の処理）。移動方向が反転すると、バックラッシの影響により、一方向の補正マップだけでは補正が適正ではなくなる。移動方向の反転が発生した場合、正方向の補正マップは適切ではなく、さりとて、逆方向の補正マップも適切ではない。そこで、移動方向の反転が発生した場合は、正方向用の補正マップに基づく補正量と逆方向用の補正マップに基づく補正量の平均で位置計測値を補正する。発明者らの知見によれば、この平均の補正量は、いずれかの補正マップを単独で用いた場合の補正量よりも、位置計測値を正確に補正する。なお、移動方向が反転しても大きく移動する場合にはバックラッシの影響が消滅するのでその移動方向に対応した補正マップに基づく補正で十分精度が保てる（ステップＳ３：ＹＥＳ、Ｓ４からＳ８）。従って、両方の補正マップを用いるケースは、最新の基準位置が設定されてから移動方向の反転が発生しており（あるいは目標位置への次の移動で発生する予定であり）、かつ、目標位置が基準位置から所定距離の範囲（移動量閾値の範囲）にあるときに限る。なお、基準位置から所定距離以上移動した場合に基準位置を更新するのは（Ｓ９）、相当の距離を移動すればバックラッシの影響がリセットされるからである。
【００３７】
図４のフローチャートにおけるステップＳ９の処理が、基準位置更新処理の一例に相当する。また、ステップＳ３とＳ１３の分岐判断条件に応じて、一方の補正マップで位置計測値を補正する処理（ステップＳ４〜Ｓ６）、及び、両方の補正マップで位置計測値を補正する処理（ステップＳ１４〜Ｓ１６）が、補正処理の一例に相当する。また、補正後の位置計測値に基づいて移動台２を目標位置まで移動させる処理（ステップＳ７、Ｓ８、Ｓ１７、Ｓ１８）が、駆動制御処理の一例に相当する。
【００３８】
また、補正処理では、基準位置と目標位置との間の距離が移動量閾値以上の場合には、現在位置から目標位置への移動方向と同一方向用の補正マップを用いて位置計測値を補正し、基準位置と目標位置との間の距離が移動量閾値未満であり、かつ、最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合（次の移動で移動方向が反転する予定である場合を含む）には、両方向用の補正マップを用いて位置計測値を補正する。今、「基準位置と目標位置との間の距離が移動量閾値未満であり、かつ、最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合」を、狭範囲内移動条件と名付けると、補正処理は、以下のように表現することもできる。即ち、コントローラ１０は、狭範囲内移動条件が成立する場合には両方向用の補正マップを用いてセンサによる位置計測値を補正し、狭範囲内移動条件が成立しない場合には現在位置から目標位置への移動方向と同一方向用の補正マップを用いてセンサによる位置計測値を補正する補正処理を実行する。
【実施例２】
【００３９】
第２実施例について説明する。第２実施例の位置決め装置のハードウエア構成は第１実施例と同じである。第２実施例の位置決め装置は、位置決めのアルゴリズムが第１実施例よりも複雑であり高度である。第２実施例のコントローラが実行する処理の概要を以下に述べる。
（１）後述する移動方向記憶Ａ＝Ｂの状態で移動方向（次に移動する予定の方向）が前回の移動方向と逆方向であり、かつ、現在位置から目標位置への移動距離が、移動量閾値以下の場合に、移動前の位置を新たな基準位置に設定する基準位置更新処理。
（２）基準位置と目標位置との間の距離が移動量閾値以上の場合には、現在位置から目標位置への移動方向と同一方向用の補正マップを用いてセンサによる位置計測値を補正し、基準位置と目標位置との間の距離が移動量閾値未満であり、かつ、最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合には、両方向用の補正マップを用いてセンサによる位置計測値を補正する補正処理。ここで、「最新の基準位置が設定されてから少なくとも１回は移動方向が反転している場合」には、移動台の現在位置から目標位置への移動方向が、直前の移動方向（即ち、現在位置へ移動してきたときの移動方向）と異なる場合、即ち、次の移動で反転が生じる場合を含む。
（３）移動台の補正後の位置計測値が目標位置に一致するようにアクチュエータを制御する駆動制御処理。
【００４０】
図５から図８を参照して、第２実施例のコントローラが実行する処理（位置計測値の補正処理）の詳細を説明する。以後の処理においては、コントローラ１０は２つのフラグ（パラメータ）、即ち、移動方向記憶Ａと移動方向記憶Ｂを利用する。これらのフラグには、正方向を意味する数値と、逆方向を意味する数値のいずれかが設定される。具体的には、正方向を意味する数値としては「ゼロ」が、逆方向を意味する数値としては「１」が採用される。なお、いずれのフラグも初期値は、共に「正方向」か、あるいは、共に「逆方向」が設定される。
【００４１】
コントローラ１０はまず、変換前の移動量を取得する（Ｓ５１）。この変換前の移動量は、リニアスケール４による位置計測値に相当する。次にコントローラ１０は、移動方向記憶切替処理を実行する（Ｓ５２）。この、移動方向記憶切替処理が、移動方向記憶ＡとＢを更新する処理に相当する。移動方向記憶切替処理については、後に、図６と図７を用いて説明するが、概要は次の通りである。移動方向記憶ＡとＢが異なる値である場合が、前述した、最新の基準位置が設定されてから移動方向の反転が発生しており、かつ、目標位置が基準位置から所定距離の範囲（移動量閾値の範囲）にある場合に相当する。移動方向記憶ＡとＢが同じ値である場合が、上記以外の場合に相当する。従って、移動方向記憶ＡとＢが等しいときは（Ｓ５３：ＹＥＳ）、移動方向に対応する補正マップを選択し（Ｓ５４）、選択された補正マップに基づいて位置計測値を補正する（Ｓ５５）。ステップＳ５５の処理は、前述したステップＳ６の処理に同じであるので説明は省略する。
【００４２】
他方、移動方向記憶ＡとＢの値が異なっている場合は（Ｓ５３：ＮＯ）、両方向の補正マップを選択し（Ｓ５６）、補正値を演算し（Ｓ５７）、各補正値の重みを演算し（Ｓ５８）、最終的な補正後の位置計測値を算出する（Ｓ５９）。なお、前述した図４のステップＳ１６は、ステップＳ５７からＳ５９の演算の一例に相当するが、ここでは、それとは異なる補正演算を説明する。ステップＳ５７からＳ５９の処理は、正逆両方の補正マップに基づく２つの補正量の加重平均をとった補正量で位置計測値を補正する処理である。ステップＳ５７では、各補正マップのテーブルを補間し、位置計測値に対応する補正量を算出する。次に、ステップＳ５８の重み演算は、例えば、次の式が用いられる。
【００４３】
［移動方向記憶Ａの重み］＝１−｜移動方向記憶Ａ基準位置−目標位置｜／移動量閾値
［移動方向記憶Ｂの重み］＝｜移動方向記憶Ａ基準位置−目標位置｜／移動量閾値
【００４４】
ステップＳ５９における最終補正演算は、例えば次の式が用いられる。
最終演算値＝［移動方向記憶Ａの重み］×［移動方向記憶Ａが示す移動方向に対応する移動方向の補正量］＋［移動方向記憶Ｂの重み］×［移動方向記憶Ｂが示す移動方向に対応する移動方向の補正量］
【００４５】
なお、上式で求められた最終演算値を位置計測値に加算した値が、補正後の位置計測値に相当する。次に、図６と図７を用いて、移動方向記憶切替処理を説明する。
【００４６】
まず、コントローラ１０は、移動方向記憶があるか否かをチェックする（Ｓ６１）。移動方向記憶がない場合（Ｓ６１：ＮＯ）、移動方向記憶ＡとＢの双方に、次の移動方向を代入する（Ｓ８４）。ここで、「次の移動方向」とは、現在位置から目標位置へ向かう移動方向である。
【００４７】
移動方向記憶がある場合（Ｓ６１：ＹＥＳ）、コントローラ１０は、移動方向記憶Ａと移動方向記憶が等しいか否かをチェックする（Ｓ６２）。移動方向記憶Ａと移動方向記憶Ｂが等しい場合（Ｓ６２：ＹＥＳ）、コントローラ１０は、次の移動方向が移動方向記憶と等しいか否かをチェックする（Ｓ６３）。ステップＳ６３における移動方向記憶は、移動方向記憶Ａでも移動方向記憶Ｂでもよい。なぜならば、両者は同じ値であるからである（ステップＳ６２を参照のこと）。次の移動方向が移動方向記憶と等しい場合（Ｓ６３：ＹＥＳ）、コントローラ１０は、移動方向記憶を変更することなく処理を終了する（Ｓ８５）。他方、次の移動方向が移動方向記憶と異なる場合（Ｓ６３：ＮＯ）、コントローラ１０は、現在位置から目標位置への移動距離が、移動量閾値以上であるか否かをチェックする（Ｓ６４）。ステップＳ６４の判断結果が「ＹＥＳ」の場合、コントローラ１０は、移動方向記憶Ａと移動方向記憶Ｂを同じ値に更新し（Ｓ６５）、処理を終了する。ステップＳ６４の判断結果が「ＮＯ」の場合、コントローラ１０は、移動方向記憶Ａ基準位置を記憶する（Ｓ６６）。次いでコントローラ１０は、移動方向記憶Ｂを次の移動方向に変更し（移動方向記憶Ａは変更せず）、処理を終了する（Ｓ６７）。
【００４８】
ステップＳ６２の判断結果が「ＮＯ」の場合、コントローラ１０は、次の移動方向が移動方向記憶Ｂと同じか否かをチェックする（Ｓ７１）。ステップＳ７１の判断結果が「ＹＥＳ」の場合、コントローラ１０は、目標位置と移動方向記憶Ａ基準位置との間の距離が移動量閾値以上であるか否かをチェックする（Ｓ７２）。ステップＳ７２の判断結果が「ＹＥＳ」の場合、コントローラ１０は、移動方向記憶Ａを移動方向記憶Ｂと同じ値に更新し（Ｓ７３）、処理を終了する。ステップＳ７２の判断結果が「ＮＯ」の場合、コントローラ１０は、移動方向記憶を変更することなく（Ｓ８５）、処理を終了する。
【００４９】
ステップＳ７１の判断結果が「ＮＯ」の場合、コントローラ１０は、移動方向記憶Ａに設定された移動方向をチェックする（Ｓ８１）。移動方向記憶Ａに正方向が記憶されている場合（Ｓ８１：正方向）、コントローラ１０は、目標位置から移動方向記憶Ａ基準位置を減算した結果がゼロ以上であるか否かをチェックする（Ｓ８２）。ステップＳ８２の判断結果が「ＹＥＳ」であれば、コントローラ１０は、移動方向記憶Ｂを移動方向記憶Ａと同じ値に更新し（Ｓ８６）、処理を終了する。他方、ステップＳ８２の判断結果が「ＮＯ」の場合、コントローラ１０は、移動方向記憶を変更することなく（Ｓ８５）、処理を終了する。
【００５０】
ステップＳ８１の判断において移動方向記憶Ａに逆方向が記憶されている場合（Ｓ８１：逆方向）、コントローラ１０は、目標位置から移動方向記憶Ａ基準位置を減算した結果がゼロ以下であるか否かをチェックする（Ｓ８３）。ステップＳ８３の判断結果が「ＹＥＳ」であれば、コントローラ１０は、移動方向記憶Ｂを移動方向記憶Ａと同じ値に更新し（Ｓ８６）、処理を終了する。他方、ステップＳ８３の判断結果が「ＮＯ」の場合、コントローラ１０は、移動方向記憶を変更することなく（Ｓ８５）、処理を終了する。
【００５１】
図５のステップＳ５３において、上記のごとく適宜に更新された移動方向記憶Ａと移動方向記憶Ｂの値に基づいて、目標位置への移動方向に対応する補正マップを用いるか、両方向の補正マップを用いるかが判断される。
【００５２】
図６と図７のフローチャートに沿った処理の例を説明する。図８に、移動台２の移動シーケンスの一例を示す。この例では、移動台２は最初に位置ゼロ［ｄｅｇ］に位置している。また、移動方向記憶Ａと移動方向Ｂには共に初期値「逆方向」に設定されているとする。さらに、移動量閾値は５［ｄｅｇ］に設定されているとする。
【００５３】
コントローラ１０は、移動台２を、まずゼロ［ｄｅｇ］から４５［ｄｅｇ］に移動する（シーケンス１）。このシーケンス１では現在位置がゼロ［ｄｅｇ］であり目標位置が４５［ｄｅｇ］である。次に、コントローラ１０は、移動台２を４５［ｄｅｇ］の位置から４３［ｄｅｇ］の位置に移動する(シーケンス２）。このシーケンス２では、現在位置が４５［ｄｅｇ］であり目標位置が４３［ｄｅｇ］である。即ち、シーケンス２の段階で移動方向が反転する。次にコントローラ１０は、移動台２を４３［ｄｅｇ］の位置から３５［ｄｅｇ］の位置へ移動する（シーケンス３）。なお、別の事例として、シーケンス２の後、移動台２を４３［ｄｅｇ］の位置から５５［ｄｅｇ］の位置へ移動させるシーケンス３’についても説明を加える。
【００５４】
シーケンス１における処理フローを説明する。動作方向記憶があるから、ステップＳ６１の判断結果は「ＹＥＳ」となる。次に、この段階では、移動方向記憶Ａ＝Ｂ＝「逆方向」（初期値）であるから、ステップＳ６２の判断結果も「ＹＥＳ」となる。シーケンス１では、現在位置（０［ｄｅｇ］）から目標位置（４５［ｄｅｇ］）への移動であるから、その移動方向（即ち「次の移動方向」）は「正方向」である。従って、ステップＳ６３の判断結果は「ＮＯ」となる。現在位置（０［ｄｅｇ］）から目標位置（４５［ｄｅｇ］）への移動距離は４５［ｄｅｇ］である。この距離は移動量閾値に設定されている５［ｄｅｇ］よりも大きい。従って、ステップＳ６４の判断結果は「ＹＥＳ」となる。次にステップＳ６５に進み、コントローラ１０は、移動方向記憶Ａと移動方向記憶Ｂに同じ値「正方向」を設定する。以上の処理の結果、シーケンス１においては、移動方向記憶ＡとＢには共に「正方向」が設定される。
【００５５】
シーケンス２における処理フローを説明する。なお、シーケンス２の直前では、移動方向記憶ＡとＢには共に「正方向」が設定されている。このシーケンスにおいても、動作方向記憶があるから、ステップＳ６１の判断結果は「ＹＥＳ」となる。次に、移動方向記憶Ａ＝Ｂ＝「正方向」（シーケンス１の結果）であるから、ステップＳ６２の判断結果も「ＹＥＳ」となる。シーケンス２では、現在位置（４５［ｄｅｇ］）から目標位置（４３［ｄｅｇ］）への移動であるから、その移動方向（即ち「次の移動方向」）は「逆方向」である。従って、ステップＳ６３の判断結果は「ＮＯ」となる。現在位置（４５［ｄｅｇ］）から目標位置（４３［ｄｅｇ］）への移動距離は２［ｄｅｇ］である。この移動距離は移動量閾値に設定されている５［ｄｅｇ］よりも小さい。従って、ステップＳ６４の判断結果は「ＮＯ」となる。次にステップＳ６６に進み、コントローラ１０は、現在位置４５［ｄｅｇ］を移動方向記憶Ａ基準位置として記憶する（移動方向記憶Ａ基準位置を更新する）。最後にコントローラ１０は、ステップＳ６７において、移動方向記憶Ｂに次の移動方向である「逆方向」を設定し、処理を終了する。なお、ステップＳ６７においては、移動方向記憶Ａは変更されない。結局、シーケンス２の終了時点で移動方向記憶Ａには「正方向」が設定され、移動方向記憶Ｂには「逆方向」が設定される。
【００５６】
シーケンス３における処理フローを説明する。このシーケンスにおいても、動作方向記憶があるから、ステップＳ６１の判断は「ＹＥＳ」となる。次に、移動方向記憶Ａ＝「正方向」、Ｂ＝「逆方向」（シーケンス２の結果）であるから、ステップＳ６２の判断結果は「ＮＯ」となり、ステップＳ７１に移行する。シーケンス３では、現在位置（４３［ｄｅｇ］）から目標位置（３５［ｄｅｇ］）への移動であるから、その移動方向（即ち「次の移動方向」）は「逆方向」である。従って、ステップＳ７１の判断結果は「ＹＥＳ」となる。現在位置（４３［ｄｅｇ］）から目標位置（３５［ｄｅｇ］）への移動距離は８［ｄｅｇ］である。この移動距離は移動量閾値に設定されている５［ｄｅｇ］よりも大きい。従って、ステップＳ７２の判断結果は「ＹＥＳ」となる。次にステップＳ７３に進み、コントローラ１０は、移動方向記憶Ａを、移動方向記憶Ｂと同じ「逆方向」に設定する。結局、シーケンス３の終了時点では移動方向記憶ＡとＢには共に「逆方向」が設定されることになる。
【００５７】
シーケンス２の次にシーケンス３’を実行する場合の処理フローを説明する。このシーケンスにおいても、動作方向記憶があるから、ステップＳ６１の判断結果は「ＹＥＳ」となる。次に、移動方向記憶Ａ＝「正方向」、移動方向記憶Ｂ＝「逆方向」（シーケンス２の結果）であるから、ステップＳ６２の判断結果は「ＮＯ」となりステップＳ７１に移行する。シーケンス３’では、現在位置（４３［ｄｅｇ］）から目標位置（５５［ｄｅｇ］）への移動であるから、その移動方向（即ち「次の移動方向」）は「正方向」である。従って、ステップＳ７１の判断結果は「ＮＯ」となる。次にコントローラ１０は、ステップＳ８１にて、移動方向記憶Ａをチェックする。この場合、移動方向記憶Ａには「正方向」が設定されている。従って処理はステップＳ８２に移る。現在位置（４３［ｄｅｇ］）から目標位置（５５［ｄｅｇ］）への移動距離は１２［ｄｅｇ］である。この移動距離は移動量閾値に設定されている５［ｄｅｇ］よりも大きい。従って、ステップＳ８２の判断結果は「ＹＥＳ」となる。最後にコントローラ１０は、ステップＳ８６に進み、移動方向記憶Ｂを移動方向記憶Ａと同じ「正方向」に更新し、処理を終了する。
【００５８】
以上例示したように、現在位置と目標位置、及び、移動方向記憶Ａ基準位置の値に応じて、移動方向記憶Ａと移動方向記憶Ｂの値が適宜に更新される。コントローラ１０は、それらの値に応じて、一方向の補正マップで位置計測値を補正するか、両方向の補正マップで位置計測値を補正するかを切り換える（図５のステップＳ５３）。
【００５９】
なお、位置決め装置１００は、移動台２を制御せず、移動台の現在位置を取得するだけの場合も、２つの補正マップを使い分けて位置計測値を補正する。その場合の処理は、図５のフローチャートの処理と同様である。
【００６０】
図５〜図７のフローチャートに沿った処理の他の例を説明する。図９に、移動台２の移動シーケンスの別の例を示す。なお、以下で用いる「ＳＱ」は「シーケンス」を意味し、図９の「シーケンスＮｏ」に相当することに留意されたい。例えば、「ＳＱ１」は図９のシーケンスＮｏが「１」の行に相当し、「ＳＱ４−１」は、図９のシーケンスＮｏが「４−１」の行に相当する。図９は、４通りの移動シーケンスの例を示している。即ち、（１）ＳＱ１→ＳＱ２→ＳＱ３→ＳＱ４−１→ＳＱ５→ＳＱ６、（２）ＳＱ１→ＳＱ２→ＳＱ３→ＳＱ４−２→ＳＱ５→ＳＱ６、（３）ＳＱ１→ＳＱ２→ＳＱ３→ＳＱ４−３→ＳＱ５→ＳＱ６、及び、（４）ＳＱ１→ＳＱ２→ＳＱ３→ＳＱ４−４→ＳＱ５→ＳＱ６、の４例を示している。図９に示す移動記憶Ａ、Ｂは、図５〜図７の処理の結果で定まり、コントローラが記憶する。移動シーケンスの一例は図８を参照して一通り説明しているので、ここでは詳しい説明は省略する。なお、図９の「基準位置記憶」の欄における丸印は、基準位置記憶を更新したことを示しており、「基準位置記憶」が空欄の箇所は、基準位置記憶が更新されなかったことを示していることに留意されたい。
【００６１】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００６２】
２：移動台
４：リニアスケール（位置を計測するセンサ）
６：モータ（アクチュエータ）
１０：コントローラ
１２：Ｉ／Ｏ
１４：モータドライバ
１６：ＣＰＵ
１８：記憶装置
１００：位置決め装置
【図１】
0005648511.tif 000002
【図２】
0005648511.tif 000003
【図３】
0005648511.tif 000004
【図４】
0005648511.tif 000005
【図５】
0005648511.tif 000006
【図６】
0005648511.tif 000007
【図７】
0005648511.tif 000008
【図８】
0005648511.tif 000009
【図９】
0005648511.tif 000010