(57)【特許請求の範囲】
【請求項１】
ポインティング・デバイスの動作に応じて操作対象を位置制御する情報処理装置であって、
前記ポインティング・デバイスにより指し示される操作画面上の座標値を取得する取得手段と、
前記座標値から前記操作対象の位置の目標値を算出する手段と、
前記操作対象の前記位置の目標値と現在値との差分を算出する手段と、
前記座標値の取得時間間隔内に前記操作対象を前記差分だけ移動させるために必要な速度から、予め設定された平滑化係数に応じて減速した値として、前記操作対象を駆動する同期モータのパルススピードの目標値を算出する算出手段と、
前記差分が有り、かつ、順方向の駆動信号が出力されている場合に、前記パルススピードの目標値を設定し、前記パルススピードの目標値に向けた加減速制御を指令する制御手段と
を含む、情報処理装置。
【請求項２】
前記算出手段は、前記パルススピードの目標値を、所与のパルススピード上限値以下、かつ所与のパルススピード下限値以上に制限することを特徴する、請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記差分が有るが、逆方向の駆動信号が出力されている場合には、前記同期モータを一旦減速停止させ、前記同期モータが停止した場合には、前記差分に応じた駆動方向を設定し、算出された前記パルススピードの目標値を設定して、所与のパルススピード下限値から駆動信号の出力を開始させる、請求項１または２に記載の情報処理装置。
【請求項４】
前記操作対象は、２軸以上の精密ステージである、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記ポインティング・デバイスおよび前記操作画面を表示するディスプレイ装置は、当該情報処理装置と通信する他の情報処理装置に接続されている、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
当該情報処理装置は、パーソナルコンピュータ、サーバ、ワークステーションまたはインテリジェント型モーションコントローラである、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
ポインティング・デバイスの動作に応じて操作対象を位置制御する方法であって、情報処理装置が、
前記ポインティング・デバイスにより指し示される操作画面上の座標値を取得するステップと、
前記座標値から前記操作対象の位置の目標値を算出するステップと、
前記操作対象の前記位置の目標値と現在値との差分を算出するステップと、
前記座標値の取得時間間隔内に前記操作対象を前記差分だけ移動させるために必要な速度から、予め設定された平滑化係数に応じて減速した値として、前記操作対象を駆動する同期モータのパルススピードの目標値を算出するステップと、
前記差分が有り、かつ、順方向の駆動信号が出力されている場合に、前記パルススピードの目標値を設定し、前記パルススピードの目標値に向けた加減速制御を指令するステップと
を実行することを特徴とする、位置制御方法。
【請求項８】
前記パルススピードの目標値を算出するステップは、前記パルススピードの目標値を、所与のパルススピード上限値以下、かつ所与のパルススピード下限値以上に制限するサブステップをさらに含む、請求項７に記載の位置制御方法。
【請求項９】
前記情報処理装置が、さらに、
前記差分が有るが、逆方向の駆動信号が出力されている場合に、前記同期モータを一旦減速停止させるステップと、
前記同期モータが停止した場合に、前記差分に応じた駆動方向を設定し、算出された前記パルススピードの目標値を設定して、所与のパルススピード下限値から駆動信号の出力を開始させるステップと
を実行することを特徴とする、請求項７または８に記載の位置制御方法。
【請求項１０】
請求項１〜６のいずれか１項に記載の各手段として情報処理装置を機能させるためのコンピュータ実行可能なプログラム。
【請求項１１】
請求項１０に記載のコンピュータ実行可能なプログラムをコンピュータ可読に記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マウス、トラックボールなどのポインティング・デバイスを用いた位置制御技術に関し、より詳細には、ポインティング・デバイスを用いて、顕微鏡システムにおけるステージなどの操作対象を位置制御するための情報処理装置、位置制御方法、プログラム、および記録媒体に関する。
【背景技術】
【０００２】
従来より、顕微鏡システム等においては、ジョイスティック、マウスなどのポインティング・デバイスを用いてステージ制御する技術が知られている。例えば、特開２００８−１５９２８８号公報（特許文献１）は、観察画像上の目的の観察点にカーソルを配置し、マウスを押しながらカーソル位置を移動させたときにその観察点がカーソル位置に伴って移動するように観察点を移動する、観察点移動モードを備えた試料表面観察システムを開示している。
【０００３】
また近年、種々の技術分野において、顕微鏡観察視野下での微細作業が求められることが多くなっている。この場合、対象物が非常に微細であるため、人の手で直接操作することは困難である。このような背景から、操作者がタイムラグのない直感的な操作により、安定かつ正確に微細作業することを可能とする技術の開発が望まれており、マウスなどのポインティング・デバイスの動きに追従させて、ステージまたはマニピュレータをリアルタイムに制御する技術の重要性がますます高まっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１５９２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、これまでの従来技術では、ポインティング・デバイスの動きに同期させてステージまたはマニピュレータを制御する際に、操作者により不規則かつ急激な操作が行われてしまうと、ステージまたはマニピュレータを駆動するパルスモータが脱調してしまい、安定した動作を得ることが困難であるという問題があった。パルスモータが脱調してしまうと、ステージまたはマニピュレータの動きがぎこちなくなり、位置決め精度を保証することが困難となるなどの問題点を発生させてしまう。また、操作者は、エラーや不具合を発生させないように操作に慎重な注意を払わなければならず、操作性の観点からも充分なものではない。
【０００６】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、本発明は、ポインティング・デバイスを用いて、顕微鏡システムなどにおける操作対象の相対位置を、不規則かつ急激な操作が行われた場合であっても、操作対象を駆動するパルスモータを脱調させることなく、滑らかに制御することを可能とし、かつ、ポインティング・デバイスにより指し示す位置まで操作対象の相対位置を確実に移動させることが可能な情報処理装置、位置制御方法、プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では、上記課題を解決するために、本発明の情報処理装置は、ポインティング・デバイスにより指し示される操作画面上の座標値を取得する取得手段と、取得された座標値から操作対象の位置の目標値を算出する手段と、操作対象の位置の目標値と現在値との差分を算出する手段と、座標値の取得時間間隔（例えば所定のサンプリング周期）内に操作対象を差分だけ移動させるために必要な速度から、予め設定された平滑化係数に応じて減速した値として、操作対象を駆動する同期モータのパルススピードの目標値を算出する算出手段とを備えることを特徴とする。そして、本発明の情報処理装置は、上記差分が有り、かつ、上記差分が示す方向に対し順方向の駆動信号が出力されている場合に、算出されたパルススピードの目標値に設定し、このパルススピードの目標値に向けた加減速制御を指令する。これを受けて、この目標値に向けた加減速制御が行われる。このようにして本発明の情報処理装置は、ポインティング・デバイスの動作に応じて同期モータを駆動し、操作対象の位置制御を実行する。
【０００８】
さらに本発明によれば、上記情報処理装置が実行する位置制御方法が提供される。本発明の位置制御方法は、情報処理装置が、ポインティング・デバイスにより指し示される操作画面上の座標値を取得するステップと、取得された座標値から操作対象の位置の目標値を算出するステップと、操作対象の前記位置の目標値と現在値との差分を算出するステップと、座標値の取得時間間隔（例えば所定のサンプリング周期）内に操作対象を差分だけ移動させるために必要な速度から、予め設定された平滑化係数に応じて減速した値として、操作対象を駆動する同期モータのパルススピードの目標値を算出するステップと、差分が有り、かつ順方向の駆動信号が出力されている場合に、算出されたパルススピードの目標値を設定するステップとを実行することを特徴とする。
【発明の効果】
【０００９】
上記構成によれば、座標値取得時間間隔内に上記差分の距離だけ操作対象を移動させるために必要な速度から、所与の平滑化係数に応じて減速した値としてパルススピードの目標値が算出され、さらにこのパルススピードの目標値に向かって加減速制御されるため、操作者により不規則かつ急激な操作が行われた場合であっても、操作対象を駆動する同期モータを脱調させることなく、ポインティング・デバイスに追従する操作対象の動きをより滑らかに制御することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態によるステージ制御システムの概略構成を示す図。
【図２】本発明の実施形態によるステージ制御システムにおいて、コンピュータ装置とパルスモータドライバとを接続するモーションコントローラのブロック図。
【図３】本発明の実施形態のステージ制御システムにおいて、コンピュータ装置上に実現される機能ブロック図。
【図４】本発明の実施形態のコンピュータ装置が実行する２軸ステージの位置制御方法を示すフローチャート（１／２）。
【図５】本発明の実施形態のコンピュータ装置が実行する２軸ステージの位置制御方法を示すフローチャート（２／２）。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を説明するが、本発明の実施形態は、以下の実施形態に限定されるものではない。
【００１２】
図１は、本発明の実施形態によるステージ制御システムの概略構成を示す。図１に示すステージ制御システム１００は、コンピュータ装置１１０と、２軸ステージ１３０と、各軸に沿って２軸ステージ１３０のワークテーブルを移動させるパルスモータ（以下、一方の軸をＸ軸と、このＸ軸に垂直な他方の軸をＹ軸と参照する。）１２２と、Ｘ軸およびＹ軸の各パルスモータ１２２Ｘ，１２２Ｙをドライブする各パルスモータドライバ１２０Ｘ，１２０Ｙとを含んで構成される。
【００１３】
なお、図１に示す実施形態では、２軸ステージ１３０のワークテーブル、またはこの２軸ステージ１３０のワークテーブルに固定される他の物品が操作対象となり、２軸ステージ１３０の基盤に対するワークテーブルの相対位置が制御される。光学系を固定とし、２軸ステージ１３０のワークテーブルを試料台として顕微鏡システムを構成した場合には、観察視野中の試料の相対位置が制御されることになる。この２軸ステージ１３０のワークテーブルの基盤に対する相対位置を、以下、「ステージの位置」のように参照する。
【００１４】
コンピュータ装置１１０には、ディスプレイ装置１１２が接続され、当該２軸ステージ１３０の位置決めするための操作画面が表示される。コンピュータ装置１１０には、さらに、ポインティング・デバイスであるマウス１１４が接続され、操作者がこのマウス１１４を動かしてディスプレイ装置１１２に表示された操作画面上でポインタを移動させることにより、当該２軸ステージ１３０を位置決め(移動)することができるように構成されている。なお、ポインティング・デバイスとしては、マウス１１４を例示するが、少なくとも２軸方向の座標を指定できるものであれば、特に限定されるものではなく、マウス、トラックボール、タッチパッド、タッチパネル、スタイラスペン、ペンタブレットまたはハプティック・デバイスを使用することができる。
【００１５】
パルスモータ１２２は、精密リードスクリューを回転駆動し、２軸ステージ１３０のワークテーブルを一の軸に沿って直線移動させるよう構成されている。なお、パルスモータ１２２は、ステッピングモータとも呼ばれ、パルス電力に同期して動作する同期モータである。パルスモータドライバ１２０は、入力される駆動パルス信号（＋ＣＷパルス信号または−ＣＣＷパルス信号）を、パルスモータを実際に駆動するためのモータ駆動電流に変換し、パルスモータ１２２を駆動する。
【００１６】
パルスモータドライバ１２０とコンピュータ装置１１０との間には、図示しないモーションコントローラが配置されて、パルスモータドライバ１２０およびコンピュータ装置１１０は、これを介して接続される。説明する実施形態では、Ｘ軸およびＹ軸の２軸対応のモーションコントローラ・ボードがＰＣＩ接続等によりコンピュータ装置１１０に内蔵されている場合を一例に説明するが、これに限定されるものではない。他の実施形態では、モーションコントローラをコンピュータ装置１１０外部の構成要素とし、例えばＵＳＢ、ワイヤレスＵＳＢ、ＲＳ−２３２Ｃ、ＧＰＩＢなどのインタフェースを介して通信する構成としてもよい。また、単一軸対応のモーションコントローラを複数用いてもよい。
【００１７】
また説明する実施形態では、パルスモータドライバ１２０は、コンピュータ装置１１０外部の構成要素として参照するが、パルスモータドライバ１２０をコンピュータ装置１１０内蔵の構成要素とし、コンピュータ装置１１０からモータ駆動電流を直接出力するよう構成してもよい。さらに、説明する実施形態では、Ｘ軸およびＹ軸の２軸ステージ１３０を制御する場合を例としているが、３軸以上のうちの２軸を制御するように構成してもよい。
【００１８】
以下、図２を参照しながら、本発明の実施形態で使用されるモーションコントローラの詳細について説明する。図２は、本発明の実施形態によるステージ制御システムにおいて、コンピュータ装置とパルスモータドライバとを接続するモーションコントローラのブロック図を示す。図２には、モーションコントローラ１４０のＸ軸ブロック１５０ＸおよびＹ軸ブロック１５０Ｙが示されているが、Ｙ軸ブロック１５０Ｙは、Ｘ軸のものと同一であるため、その詳細なブロック構成が省略されている点に留意されたい。以下、モーションコントローラ１４０のＸ軸ブロック１５０Ｘについて、その詳細を説明する。
【００１９】
図２に示すＸ軸ブロック１５０Ｘは、加減速タイミング信号作成部１５２と、目標パルススピード設定部１５４と、加減速判定部１５６と、現在パルススピード保持部１５８とを含む。加減速タイミング信号作成部１５２は、所定のパルス加減速度ａ［ｐ／ｓ２］が設定され、パルススピードの現在値ＶＣ（Ｘ軸についてはＶＣＸ、Ｙ軸についてはＶＣＹ）を加速または減速するためのタイミング信号を作成する。ここで、パルススピードとは、詳細は後述するが、パルスモータ１２２の駆動パルス信号を規定する値である。また、パルス加減速度ａ［ｐ／ｓ２］は、パルススピードを加速または減速する場合の加減速率をいい、パルスモータ特性、モータの１ステップ当たりのステージ移動距離、メカの負荷等を考慮し、予め最適なパラメータとして与えられるものである。パルススピードが［ｐ／ｓ］単位であるため、作成されるタイミング信号はまさにａ［Ｈｚ］となる。
【００２０】
目標パルススピード設定部１５４は、コンピュータ装置１１０側からパルススピードの目標値ＶＴ（Ｘ軸についてはＶＴＸ、Ｙ軸についてはＶＴＹ）の設定を受けて、目標として制御するべきパルススピードの目標値ＶＴを保持する。現在パルススピード保持部１５８は、駆動パルス信号を作成しているパルススピードの現在値ＶＣを保持する。加減速判定部１５６は、パルススピードの目標値ＶＴと現在値ＶＣとを比較し、加速するべきか、減速するべきかを判定する。加減速判定部１５６は、パルススピードの現在値が目標値未満の場合（ＶＣ＜ＶＴ）には、加速タイミング信号を現在パルススピード保持部１５８に出力する。一方、加減速判定部１５６は、パルススピードの現在値が目標値を越える場合（ＶＣ＞ＶＴ）には、減速タイミング信号を現在パルススピード保持部１５８に出力する。
【００２１】
現在パルススピード保持部１５８は、駆動パルス信号の出力を開始する際にパルススピードの下限値ＶＬで初期設定され、加減速判定部１５６からの加速タイミング信号または減速タイミング信号に応じてパルススピードの現在値ＶＣを増減させる。このように、パルススピードの現在値ＶＣが、パルススピードの目標値ＶＴに向けて、パルス加減速度ａの値に応じて加減速制御される。ドライブ減速停止の指令が行われた場合には、パルススピードの目標値ＶＴを下限値ＶＬに一旦設定し、パルススピードの現在値ＶＣが下限値ＶＬに達した後、駆動パルス信号の出力を停止する。
【００２２】
なお、上記パルススピードの下限値ＶＬは、パルスモータを停止または起動する際の最低速度のパルススピードであり、パルス加減速度ａと同様に、パルスモータ特性等を考慮し、予め最適なパラメータとして与えられるものである。同様に本実施形態においては、パルスモータが脱調しないで回転可能な最高速度のパルススピードである上限値も、予め最適なパラメータとして与えられる。
【００２３】
図２に示すＸ軸ブロック１５０Ｘは、さらに、駆動パルス作成部１６０と、ドライブ方向切替部１６２と、現在位置計数部１６４とを含む。駆動パルス作成部１６０は、現在パルススピード保持部１５８が保持するパルススピードの現在値ＶＣに従い、パルスモータドライバ１２０へ出力するための駆動パルス信号の周波数信号を作成し、ドライブ方向切替部１６２に出力する。ドライブ方向切替部１６２は、コンピュータ装置１１０側から設定されたドライブ方向の値を保持し、この値に従って、周波数信号を＋方向駆動パルス信号（＋ＣＷパルス）または−方向駆動パルス信号（−ＣＣＷ）に分配し、モータドライバ１２０Ｘに出力する。なお、指令等によりドライブ停止している場合には、＋方向駆動パルス信号（＋ＣＷパルス）および−方向駆動パルス信号（−ＣＣＷ）のいずれも出力されない状態となる。
【００２４】
現在位置計数部１６４は、ステージの現在位置（理論値）を管理するレジスタを含む。ステージの現在位置は、パルス数を単位とした値であり、起動時等に初期設定され、ドライブ方向切替部１６２からの＋方向駆動パルス信号（＋ＣＷパルス）または−方向駆動パルス信号（−ＣＣＷ）の入力を受けて、値を増減させる。より具体的には、現在位置計数部１６４は、＋方向駆動パルス信号（＋ＣＷパルス）が入力されると、ステージの現在位置を増加（１パルスにつき＋１）させ、−方向駆動パルス信号（−ＣＣＷパルス）が入力されると、ステージの現在位置を減少（１パルスにつき−１）させる。現在位置計数部１６４は、コンピュータ装置１１０側からステージの現在位置の取得要求を受けた場合、ステージの現在位置を返す。
【００２５】
以下、図３を参照しながら、モーションコントローラを制御するためのコンピュータ装置側の機能構成について説明する。図３は、本発明の実施形態のステージ制御システム１００におけるコンピュータ装置１１０上に実現される機能ブロックを示す。
【００２６】
コンピュータ装置１１０の機能ブロック１７０は、マウス１１４の動作を監視するマウス動作モニタ部１７２と、目標位置算出部１７４と、差分算出部１７６と、現在位置取得部１７８とを含む。マウス動作モニタ部１７２は、コンピュータ装置１１０のオペレーティング・システムが提供するＡＰＩ（アプリケーション・プログラミング・インタフェース）関数を介して、一定周期でポインタが指す操作画面上の座標値（ｘ，ｙ）を取得して、目標位置算出部１７４に渡す。マウス動作モニタ部１７２は、本実施形態の取得手段を提供する。なお、座標値（ｘ，ｙ）は、操作画面上の相対座標またはディスプレイ全体画面上の絶対座標とすることができる。このポインタが指す座標値（ｘ，ｙ）は、２軸ステージ１３０の移動先目標位置に関連付けられるものである。
【００２７】
目標位置算出部１７４は、マウス動作モニタ部１７２が取得した座標値（ｘ，ｙ）に従って、パルスモータ１２２の駆動パルス数を単位とした各軸のステージの位置の目標値（以下、ステージ位置目標値と参照する。）ＸＴ，ＹＴを算出する手段である。各ステージ位置目標値ＸＴ，ＹＴは、具体的には、下記式（１）により算出される。下記式（１）中、Ｓは、予めパラメータとして与えられるステージ倍率であり、ポインタの座標値１の変化に対するパルスモータの駆動パルス数を示す。
【００２８】
【数１】
0005494023.tif 000002
【００２９】
差分算出部１７６は、目標位置算出部１７４が算出した各ステージ位置目標値ＸＴ，ＹＴと、現在位置計数部１６４Ｘ，１６４Ｙが保持するステージの現在位置との差分λＸ，λＹを算出する手段である。この差分は、ポインタが指し示すステージ目標位置と現在位置との距離を定量するものである。現在位置取得部１７８は、各軸ブロック１５０Ｘ，１５０Ｙの各現在位置計数部１６４Ｘ，１６４Ｙと通信して、現在位置計数部１６４が保持する現在位置ＸＣ，ＹＣを取得し、差分算出部１７６に渡す。ステージ位置の差分λＸ，λＹは、パルス数の単位であり、下記式（２）により算出される。
【００３０】
【数２】
0005494023.tif 000003
【００３１】
コンピュータ装置１１０の機能ブロック１７０は、さらに、パルススピード算出部１８０と、ドライブ方向判定部１８２と、モーションコントローラ制御部（以下、単に制御部と参照する。）１８４と、パラメータ記憶部１８６とを含んで構成される。パルススピード算出部１８０は、差分算出部１７６が算出したステージ位置の差分λＸ，λＹを受け取り、各軸のパルススピードの目標値ＶＴＸ，ＶＴＹを算出する。パルススピードの目標値ＶＴＸ，ＶＴＹは、差分λＸ，λＹを用いて下記式（３）により算出される。
【００３２】
【数３】
0005494023.tif 000004
【００３３】
上記式（３）中、Ｔは、ポインタ座標値を取得するサンプリング周期であり、例えば１０ｍｓ〜２０ｍｓの値が好適に与えられる。本実施形態では、このサンプリング周期Ｔ毎に座標値を取得し、パルススピードの目標値の更新が行われることになる。一方、Ｎは、ポインタが指し示す目標位置に追従するために上記サンプリング周期内に移動させるべきステージの移動量を平均化処理するための平滑化係数である。この平滑化係数Ｎは、パルスモータ１２２の特性にもよるが、例えば２〜４の値が好適に与えられる。パラメータ記憶部１８６は、これらサンプリング周期Ｔおよび平滑化係数Ｎを設定値として記憶する。
【００３４】
直感的には、次回座標値の取得までの期間内、すなわちサンプリング周期Ｔ内に上記差分λＸ，λＹの距離だけステージ位置を移動させるよう必要なパルススピードを設定する方が、ステージ位置をマウス１１４の動きに完全に同期させられ、好ましいようにも思われる。しかし、この場合、操作者によるマウス１１４の急激な動きや不規則な動きに対処することが困難となる。一方、上記式（３）によれば、サンプリング周期Ｔ内に上記差分λＸ，λＹの距離だけステージ位置を移動させるために必要な速度から、さらに平滑化係数に応じて減速した値として、パルススピードの目標値が算出される。このため、マウス１１４の動きに追従して移動するステージの動きをより滑らかに制御することができる。
【００３５】
パルススピード算出部１８０は、さらに、上記差分λＸ，λＹに従って算出したパルススピードの目標値ＶＴＸ，ＶＴＹが所与のパルススピードの上限値ＶＨを越える場合には、パルススピードの目標値ＶＴＸ，ＶＴＹを上限値ＶＨで書き換える。これにより、パルスモータが脱調する可能性を低減することができる。さらに、パルススピード算出部１８０は、算出したパルススピードの目標値ＶＴＸ，ＶＴＹが下限値ＶＬを下まわる場合には、算出したパルススピードの目標値ＶＴＸ，ＶＴＹを下限値ＶＬに書き換える。なお、上記パルススピードの下限値ＶＬは、サンプリング周期Ｔ内に２以上のパルスを発生させないように、ＶＬ≦１／Ｔの関係を満たすことが好ましい。
【００３６】
ドライブ方向判定部１８２は、差分算出部１７６が算出したステージ位置の差分λＸ，λＹを受け取り、各軸について進めるべきドライブ方向を判定する。ドライブ方向判定部１８２は、Ｘ軸の差分λＸが０以上であれば、＋方向と判定し、差分λＸが０未満であれば−方向と判定する。同様にドライブ方向判定部１８２は、Ｙ軸の差分λＹが０以上であれば、＋方向と判定し、差分λＹが０未満であれば−方向と判定する。
【００３７】
制御部１８４は、パルススピード算出部１８０が算出したパルススピードの目標値ＶＴＸ，ＶＴＹと、差分λＸ，λＹが示すドライブ方向の値とを受け取り、モーションコントローラ１４０を制御する。
【００３８】
所定の軸について、算出された差分λがゼロであれば、当該軸のステージ位置がポインタが指し示した所望の位置に到達しているため、制御部１８４は、当該軸のブロック１５０に減速停止を指令し、当該軸のパルスモータ１２２を減速停止させる。一方、差分λがゼロでなければ、当該軸は未だ所望の位置に到達していないため、制御部１８４は以下の制御をさらに行う。
【００３９】
すなわち、制御部１８４は、その軸のパルス出力が停止中であれば、パルスモータ１２２を起動する必要があるため、上記ドライブ方向判定部１８２が判定したドライブ方向をドライブ方向切替部１６２に設定すると共に、上記算出されたパルススピードの目標値ＶＴを目標パルススピード設定部１５４に設定する。制御部１８４は、また、現在パルススピード保持部１５８が保持するパルススピードの現在値をＶＬで初期設定し、当該軸のブロック１５０に駆動パルス信号の出力開始を指令する。これにより、当該軸のブロック１５０は、最低パルススピードから出力を始め、設定されたパルススピードの目標値ＶＴにむけて加速を開始する。
【００４０】
一方、駆動パルス信号が出力中であり、ドライブ方向切替部１６２Ｘ，１６２Ｙに現在設定されているドライブ方向と、差分λＸ，λＹが示すドライブ方向とが逆方向であれば、パルスモータ１２２の回転方向を逆転させる必要があるため、制御部１８４は、当該軸のブロック１５０に一旦減速停止を指令する。この場合、停止後のサンプリング時に、逆方向への駆動パルス信号の出力が開始されることになる。一方、順方向の駆動パルス信号が出力中であれば、制御部１８４は、そのまま上記算出されたパルススピードの目標値ＶＴを目標パルススピード設定部１５４に設定する。この場合、設定された目標値ＶＴに向けて加減速制御されることになる。
【００４１】
以下、図４および図５に示すフローチャートを参照しながら、本実施形態のコンピュータ装置が実行する制御フローについて説明する。図４および図５は、本発明の実施形態のコンピュータ装置が実行する２軸ステージの位置制御方法を示すフローチャートである。なお、図４および図５は、それぞれの図中で示した連結点１および連結点２で接続されていることに留意されたい。
【００４２】
図４および図５に示す制御は、例えば、ステージ制御用のアプリケーションが起動したことに応答して、または操作者からの明示的なステージ制御開始の指示を受領したことに応答して、ステップＳ１００から開始される。特に限定されるものではないが、説明のため例示すると、例えばマウス１１４の左ボタンを下げるイベント（OnMouseDown）を明示的な制御開始の指令とし、マウス１１４の左ボタンが下げられている間中、ステージ制御が行われるように構成することができる。
【００４３】
ステップＳ１０１では、コンピュータ装置１１０は、マウス動作モニタ部１７２により、現在のポインタが指す操作画面上の座標値（ｘ，ｙ）を読み込み、Ｘ軸およびＹ軸について、上記式（１）と同様の式を用いて、初期の座標値（ｘ０，ｙ０）に対応する初期のステージ位置（Ｘ０，Ｙ０）を算出する。ステップＳ１０２では、コンピュータ装置１１０は、算出された初期のステージ位置（Ｘ０，Ｙ０）を現在位置として、モーションコントローラ１４０の各現在位置計数部１６４Ｘ，１６４Ｙに設定する。
【００４４】
ステップＳ１０３では、コンピュータ装置１１０は、サンプリング周期Ｔが経過したか否かを判定し、サンプリング周期Ｔが経過するまでの間（ＮＯの間）、ステップＳ１０３をループする。一方、ステップＳ１０３で、サンプリング周期Ｔが経過したと判定された場合（ＹＥＳ）には、ステップＳ１０４へ処理を進める。ステップＳ１０４では、コンピュータ装置１１０は、マウス動作モニタ部１７２により、ポインタの座標値（ｘ，ｙ）を読み込み、目標位置算出部１７４により、Ｘ軸およびＹ軸についてのステージ位置目標値（ＸＴ，ＹＴ）を算出する。ステップＳ１０５では、コンピュータ装置１１０は、現在位置取得部１７８により、ステージ位置の現在位置（ＸＣ，ＹＣ）を取得し、差分算出部１７６により、ステージ位置目標値（ＸＴ，ＹＴ）をと現在位置（ＸＣ，ＹＣ）との差分（λＸ，λＹ）を算出する。
【００４５】
ステップＳ１０６では、コンピュータ装置１１０は、パルススピード算出部１８０により、Ｘ軸およびＹ軸についてのパルススピードの目標値（ＶＴＸ，ＶＴＹ）を算出する。このステップＳ１０６では、パルススピード算出部１８０は、上述したように、差分算出部１７６により算出されたステージ位置の差分（λＸ，λＹ）と、パラメータ記憶部１８６が記憶する平滑化係数Ｎと、サンプリング周期Ｔとを使用して、上記式（３）に従い、各軸のパルススピードの目標値（ＶＴＸ，ＶＴＹ）を算出する。算出されたパルススピードの目標値ＶＴは、サンプリング周期Ｔ内に上記差分λの距離だけステージ位置を移動させるために必要なパルススピードの所要値を平滑化係数で割った値として算出される。ステップＳ１０７では、コンピュータ装置１１０は、ドライブ方向判定部１８２により、ステージ位置の差分（λＸ，λＹ）から、各軸の進めるべきドライブ方向（＋ＣＷ／−ＣＣＷ）を判定し、連結点２を介して図５のステップＳ１０８へ処理を進める。
【００４６】
図５を参照すると、ステップＳ１０８では、コンピュータ装置１１０は、制御部１８４により、Ｘ軸差分λＸがゼロであるか否かを判定する。ステップＳ１０８で、Ｘ軸差分λＸがゼロでないと判定された場合（ＮＯ）には、ステップＳ１０９へ処理を進める。ステップＳ１０９では、コンピュータ装置１１０は、制御部１８４により、Ｘ軸がパルス出力中であるか否かを判定する。ステップＳ１０９で、Ｘ軸がパルス出力中であると判定された場合（ＹＥＳ）には、ステップＳ１１０へ処理を進める。
【００４７】
ステップＳ１１０では、コンピュータ装置１１０は、制御部１８４により、ステップＳ１０７で判定したＸ軸のドライブ方向と、ドライブ方向切替部１６２Ｘに現在設定されているドライブ方向とが一致するか否かを判定する。ステップＳ１１０で、ドライブ方向が一致すると判定した場合（ＹＥＳ）には、ステップＳ１１１へ処理を進める。ステップＳ１１１では、コンピュータ装置１１０は、制御部１８４により、ステップＳ１０６で算出されたＸ軸パルススピードＶＴＸを目標パルススピード設定部１５４Ｘに設定し、ステップＳ１１６へ処理を進める。
【００４８】
一方、ステップＳ１０８で、Ｘ軸差分λＸがゼロであると判定された場合（ＹＥＳ）には、ステップＳ１１２へ処理を進める。またステップＳ１１０で、Ｘ軸のドライブ方向が判定した値と設定されている値とで一致しないと判定された場合（ＮＯ）にも、ステップＳ１１２へ処理を進める。ステップＳ１１２では、コンピュータ装置１１０は、モーションコントローラ１４０のＸ軸ブロック１５０Ｘに、減速停止を指令し、パルスモータ１２２Ｘを減速停止させ、ステップＳ１１６へ処理を進める。
【００４９】
ステップＳ１０９で、Ｘ軸がパルス出力中ではないと判定された場合（ＮＯ）には、ステップＳ１１３へ処理を進める。ステップＳ１１３では、コンピュータ装置１１０は、制御部１８４により、ステップＳ１０７で判定されたＸ軸のドライブ方向を、ドライブ方向切替部１６２Ｘに対して設定する。ステップＳ１１４では、コンピュータ装置１１０は、制御部１８４により、ステップＳ１０６で算出されたＸ軸パルススピードＶＴＸを目標パルススピード設定部１５４Ｘに対し設定し、ステップＳ１１５で、Ｘ軸ブロック１５０Ｘに対し起動を指令し、所定のドライブ方向への駆動パルス信号の出力を開始させ、ステップＳ１１６へ処理を進める。上記ステップＳ１１５では、現在パルススピード保持部１５８Ｘは、パルススピードの下限値に初期設定され、この下限値から加速を伴ってパルス出力が開始される。
【００５０】
ステップＳ１１６〜ステップＳ１２３では、ステップＳ１０８〜ステップＳ１１５と同様の処理がＹ軸について行われる。ステップＳ１１６では、コンピュータ装置１１０は、Ｙ軸差分λＹがゼロであるか否かを判定し、Ｙ軸差分λＹがゼロでないと判定された場合（ＮＯ）には、ステップＳ１１７へ処理を進める。ステップＳ１１７では、コンピュータ装置１１０は、Ｙ軸がパルス出力中であるか否かを判定し、Ｙ軸がパルス出力中であると判定された場合（ＹＥＳ）には、ステップＳ１１８へ処理を進める。ステップＳ１１８では、コンピュータ装置１１０は、ステップＳ１０７で判定したＹ軸のドライブ方向と、ドライブ方向切替部１６２Ｙに現在設定されているドライブ方向とが一致するか否かを判定する。
【００５１】
ステップＳ１１８で、Ｙ軸のドライブ方向が一致すると判定した場合（ＹＥＳ）には、ステップＳ１１９へ進め、コンピュータ装置１１０は、算出されたＹ軸パルススピードＶＴＹを目標パルススピード設定部１５４Ｙに設定し、ステップＳ１２４へ処理を進める。一方、ステップＳ１１６で、Ｙ軸差分λＹがゼロであると判定された場合（ＹＥＳ）には、ステップＳ１２０へ処理を進める。またステップＳ１１８で、Ｙ軸のドライブ方向が一致しないと判定された場合（ＮＯ）にも、ステップＳ１２０へ処理を進める。ステップＳ１２０では、コンピュータ装置１１０は、Ｙ軸ブロック１５０Ｙに減速停止を指令し、ステップＳ１２４へ処理を進める。
【００５２】
一方、ステップＳ１１７で、Ｙ軸がパルス出力中ではないと判定された場合（ＮＯ）には、ステップＳ１２１へ処理を進め、コンピュータ装置１１０は、ステップＳ１０７で判定されたＹ軸のドライブ方向をドライブ方向切替部１６２Ｙに対して設定し、ステップＳ１２２で、ステップＳ１０６で算出されたＹ軸パルススピードＶＴＹを目標パルススピード設定部１５４Ｙに対し設定し、ステップＳ１２３で、Ｙ軸ブロック１５０Ｙに対し起動を指令し、所定のドライブ方向への駆動パルス信号の出力を開始させ、ステップＳ１２４へ処理を進める。上記ステップＳ１２３では、現在パルススピード保持部１５８Ｙは、パルススピードの下限値に初期設定され、この下限値から加速を伴ってパルス出力が開始される。
【００５３】
ステップＳ１２４では、コンピュータ装置１１０は、Ｘ軸差分λＸおよびＹ軸差分λＹが共にゼロであるか否かを判定する。ステップＳ１２４で、いずれか一方でもゼロでないと判定された場合（ＮＯ）には、連結点１を介して図４に示すステップＳ１０３へ処理をループさせ、次ぎのサンプリング周期毎の処理を繰り返させる。一方、ステップＳ１２４で、Ｘ軸差分λＸおよびＹ軸差分λＹが共にゼロであると判定された場合（ＹＥＳ）には、ステップＳ１２５へ処理を進める。
【００５４】
ステップＳ１２５では、コンピュータ装置１１０は、Ｘ軸およびＹ軸共にパルス出力が停止中であるか否かを判定する。ステップＳ１２５で、いずれか一方でもパルス出力中であると判定された場合（ＮＯ）には、連結点１を介して図４に示すステップＳ１０３へ処理をループさせる。一方、ステップＳ１２５で、Ｘ軸およびＹ軸が共にパルス出力停止中であると判定された場合（ＹＥＳ）には、ステップＳ１２６へ処理を進める。
【００５５】
ステップＳ１２６では、コンピュータ装置１１０は、制御を終了する指示を受けているか否かを判定する。例えばマウスボタン押し下げ（Onmousedown）イベントを明示的な制御開始の指令とし、マウス１１４の左ボタンが下げられている間中ステージ制御が行われるよう構成する上述した例においては、ここではマウス１１４の左ボタンが離されたことを示すOnmouseupイベントを受けて制御終了と判定することができる。ステップＳ１２６で、未だ制御の終了が指示されていないと判定された場合（ＮＯ）には、連結点１を介して図４に示すステップＳ１０３へ処理をループさせる。一方、ステップＳ１２６で、制御の終了が指示されていると判定された場合（ＹＥＳ）には、ステップＳ１２７で、本制御フローを終了させる。
【００５６】
以上説明した実施形態によれば、次回座標値取得までの間（上記例ではサンプリング周期）内に上記差分λＸ，λＹの距離だけステージを移動させるために必要なパルススピードの所要値から平滑化係数Ｎに応じて減速した値、より具体的には所要値（＝λ／Ｔ）を平滑化係数Ｎで割った値（＝λ／ＮＴ）としてパルススピードの目標値ＶＴが算出される。このため、不規則かつ急激なマウス操作が行われた場合であっても、２軸ステージ１３０を駆動するパルスモータ１２２を脱調させることなく、マウス１１４に追従するステージの動きを、滑らかに制御することが可能となる。
【００５７】
パルスモータの脱調が防止されるため、ポインタにより操作画面上で指し示した所望の位置までステージ位置を確実に到達させて停止することができ、位置決め精度が保証されることになる。さらに、操作者は、自然な動きをしている限り、マウスの軌跡に対するステージの軌跡のずれも気にならない程度に収まり、操作のリアルタイム性も充分に備えている。
【００５８】
通常、パルススピードが短周期に更新される制御においては、加減速制御は必ずしも要するものではなく、余分な構成の追加となり得るが、本発明の実施形態では、更新されるパルススピードまで加減速を伴って変化させる制御を行うことにより、より好適にパルスモータ１２２の脱調を防止することができる。すなわち、マウス１１４を急激に反転させた場合に発生する駆動パルス信号の急停止、急発進は、脱調の要因となってしまうが、かかる加減速制御をすることにより駆動パルス信号が急激に変化してしまうことを防止することができる。本実施形態のように、加減速制御が行われていれば、どんなに急激にマウスを移動させた場合でも、指定された加減速度以上での加減速は行われず、ドライブ方向を反転させる場合でも、一旦駆動パルスを減速停止させ、改めて反転方向への加速を開始するという制御が行われ、脱調を好適に防ぐことができる。
【００５９】
以上説明したように本発明の実施形態によれば、ポインティング・デバイスを用いて、顕微鏡システムなどにおける操作対象の相対位置を、不規則かつ急激な操作が行われた場合であっても、操作対象を駆動するパルスモータを脱調させることなく、滑らかに制御することを可能とし、かつ、ポインティング・デバイスにより指し示す位置まで操作対象の相対位置を確実に移動させることができる情報処理装置、位置制御方法、プログラムおよび記録媒体を提供することができる。
【００６０】
なお、上述した実施形態では、コンピュータ装置１１０上に図３に示す機能ブロック１７０が構成され、コンピュータ装置１１０が図４および図５に示す制御フローを実行するものとして説明した。しかしながら、これに限定されるものではなく、他の実施形態では、モーションコントローラ１４０をＭＰＵ等を備えるインテリジェントタイプのものとし、モーションコントローラ１４０上に図３に示す機能ブロック１７０を構成し、図４および図５に示した制御フローを実行させるようにしてもよい。その場合、モーションコントローラ１４０が本発明の実施形態による情報処理装置を構成し、コンピュータ装置１１０側では、初期値としてマウスの値を読み込み、サンプリング周期毎にマウスの座標値を読み込み、モーションコントローラ１４０のＭＰＵへ引き渡すことが主な処理となる。モーションコントローラ１４０は、コンピュータ装置１１０側から通信により座標値を取得することとなる。
【００６１】
本発明の実施形態によるステージ制御システムによれば、精密ステージをカメラによりモニタしながら、精密ステージの位置決めや位置の微調整をマウスの操作により行うことができる。さらに、精密ステージ上の微生物等を顕微鏡カメラにより観察しながら、その動きをマウスの操作によって追いかけることができる。さらに、精密ステージ上の検査対象物をカメラにより観察し、検査対象物の不良箇所などをマウスの操作により検査することもできる。さらに、人間が入る事の出来ない環境、または目視することのできない環境に配置されたステージをモニタしながらポインティング・デバイスで制御することができる。さらに、ステージ上の複数ポイントをティーチングする場合、効率よくステージを移動させ位置決めすることができる。また、２軸ステージ上の対象物に、マウスなどのポインティング・デバイスを使用して、レーザーなどで文字を書いたり、マーキングを行ったりすることもできる。
【００６２】
また上述までの実施形態では、単一のポインティング・デバイスを用いて単一の２軸ステージを制御する場合を一例に説明してきたが、他の実施形態では、単一のポインティング・デバイスで、複数の２軸ステージの制御を行うこともできる。例えば、マウスの一方のボタンを一方の２軸ステージに関連付け、マウスの他方のボタンを他方の２軸ステージに関連付け、マウスの左ボタンを押し下げた状態と、右ボタンを押し下げた状態とで異なる２軸ステージを制御するよう構成することもできる。
【００６３】
さらに、上述した実施形態では、ステージ倍率Ｓを固定値としたが、ステージ倍率を押し下げるボタンで異ならしめ、粗動と微動とを切り替えられるよう構成してもよい。さらに、本実施形態では、ステージ制御を行うものとして説明してきたが、リペア装置に適用する場合、工具部を操作対象とし、同様の制御を行うことができる。
【００６４】
本発明の実施形態における各機能部は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００６５】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００６６】
１００…ステージ制御システム、１１０…コンピュータ装置、１１２…ディスプレイ装置、１１４…マウス、１２０…パルスモータドライバ、１２２…パルスモータ、１３０…２軸ステージ、１４０…モーションコントローラ、１５０…ブロック、１５２…加減速タイミング信号作成部、１５４…目標パルススピード設定部、１５６…加減速判定部、１５８…現在パルススピード保持部、１６０…駆動パルス作成部、１６２…ドライブ方向切替部、１６４…現在位置計数部、１７０…機能ブロック、１７２…マウス動作モニタ部、１７４…目標位置算出部、１７６…差分算出部、１７８…現在位置取得部、１８０…パルススピード算出部、１８２…ドライブ方向判定部、１８４…モーションコントローラ制御部、１８６…パラメータ記憶部
【図１】
0005494023.tif 000005
【図２】
0005494023.tif 000006
【図３】
0005494023.tif 000007
【図４】
0005494023.tif 000008
【図５】
0005494023.tif 000009