(57)【要約】【課題】  座標を精度良く入力する。【解決手段】  検出した受光部の位置関係の内、第１の組み合わせからなる２個の受光部に対する第１の位置関係に基づいて、第１の座標系を設定する。第１の組み合わせとは異なる第２の組み合わせからなる２個の受光部に対する第２の位置関係に基づいて、第２の座標系を設定する。受光部が検出する受光情報に基づいて、少なくとも３個の受光部から２個の受光部を選択する。選択した２個の受光部が検出する受光情報に基づいて、第１の座標系における指示位置の第１の座標値を算出する。選択した２個の受光部が検出する受光情報に基づいて算出される、第２の座標系における指示位置の座標値を、第１の座標系と第２の座標系との間で座標変換を行うためのパラメータを用いて、第１の座標系における第２の座標値を算出する。第１の座標値と第２の座標値を用いて、指示位置の座標値を決定する。【選択図】  図３
2016143400.tif 000002
【特許請求の範囲】
【請求項１】
座標入力面に対して投光を行う投光部と、到来光を受光する少なくとも３個の受光部を用いて、座標入力有効領域に対する指示位置を検出する座標入力装置であって、
前記少なくとも３個の受光部の位置関係を検出する検出手段と、
前記検出手段で検出した受光部の位置関係の内、前記少なくとも３個の受光部の内の第１の組み合わせからなる２個の受光部に対する第１の位置関係に基づいて、第１の座標系を設定する第１の設定手段と、
前記少なくとも３個の受光部の内の前記第１の組み合わせとは異なる第２の組み合わせからなる２個の受光部に対する第２の位置関係に基づいて、第２の座標系を設定する第２の設定手段と、
前記受光部が検出する受光情報に基づいて、前記少なくとも３個の受光部から２個の受光部を選択する選択手段と、
前記選択手段で選択した２個の受光部が検出する受光情報に基づいて、前記第１の座標系における前記指示位置の第１の座標値を算出する第１の算出手段と、
前記選択手段で選択した２個の受光部が検出する受光情報に基づいて算出される、前記第２の座標系における前記指示位置の座標値を、前記第１の座標系と前記第２の座標系との間で座標変換を行うためのパラメータを用いて、前記第１の座標系における第２の座標値を算出する第２の算出手段と、
前記第１の座標値と前記第２の座標値を用いて、前記指示位置の座標値を決定する決定手段と
を備えることを特徴とする座標入力装置。
【請求項２】
前記第１の座標系を規定する２つの軸の内の一方は、前記第１の組み合わせからなる２個の受光部を直線で結ぶ方向に設定され、
前記第２の座標系を規定する２つの軸方向の内の一方は、前記第２の組み合わせからなる２個の受光部を直線で結ぶ方向に設定される
ことを特徴とする請求項１に記載の座標入力装置。
【請求項３】
前記決定手段は、前記選択手段が選択した前記２個の受光部の組み合わせに基づいて、前記第１の座標値と前記第２の座標値の内、どちらかを選択する
ことを特徴とする請求項１または請求項２に記載の座標入力装置。
【請求項４】
前記決定手段は、前記第１の座標値が示す位置が前記座標入力有効領域の所定領域に含まれるか否かに基づいて、前記第１の座標値と前記第２の座標値の内、どちらかを選択する
ことを特徴とする請求項１または請求項２に記載の座標入力装置。
【請求項５】
前記決定手段は、前記第１の座標値と前記第２の座標値に基づいて、前記第１の座標値と前記第２の座標値を平均する比率を決定して、その決定した比率に基づいて平均計算した座標値を、前記指示位置の座標値として決定する
ことを特徴とする請求項１または請求項２に記載の座標入力装置。
【請求項６】
前記パラメータは、座標値を回転することで座標値を変換する回転処理における回転角、座標値を所定方向へ拡大することで座標値を変換する拡大処理における拡大率、座標値をオフセットすることで座標値を変換するオフセット処理におけるオフセット量の少なくとも１つを含む
ことを特徴とする請求項１乃至請求項５のいずれか１項に記載の座標入力装置。
【請求項７】
光を再帰的に反射する再帰反射手段を更に備え、
前記検出手段は、前記再帰反射手段を介して反射される光に対する前記少なくとも３個の受光部のそれぞれの受光情報に基づいて、前記少なくとも３個の受光部の位置関係を検出する
ことを特徴とする請求項１乃至６のいずれか１項に記載の座標入力装置。
【請求項８】
前記少なくとも３個の受光部における、第１の受光部の光軸と、前記第１の受光部の光軸中心と第２の受光部の光軸中心を結ぶ線分のなす角度を示す基準角度情報を記憶する記憶手段を更に備え、
前記検出手段は、前記第１の受光部、前記第２の受光部、及び第３の受光部のそれぞれの受光情報と、前記記憶手段に記憶される基準角度情報とに基づいて、前記少なくとも３個の受光部の位置関係を検出する
ことを特徴とする請求項１乃至７のいずれか１項に記載の座標入力装置。
【請求項９】
座標入力面に対して投光を行う投光部と、到来光を受光する少なくとも３個の受光部を用いて、座標入力有効領域に対する指示位置を検出する座標入力装置の制御方法であって、
前記少なくとも３個の受光部の位置関係を検出する検出工程と、
前記検出工程で検出した受光部の位置関係の内、前記少なくとも３個の受光部の内の第１の組み合わせからなる２個の受光部に対する第１の位置関係に基づいて、第１の座標系を設定する第１の設定工程と、
前記少なくとも３個の受光部の内の前記第１の組み合わせとは異なる第２の組み合わせからなる２個の受光部に対する第２の位置関係に基づいて、第２の座標系を設定する第２の設定工程と、
前記受光部が検出する受光情報に基づいて、前記少なくとも３個の受光部から２個の受光部を選択する選択工程と、
前記選択工程で選択した２個の受光部が検出する受光情報に基づいて、前記第１の座標系における前記指示位置の第１の座標値を算出する第１の算出工程と、
前記選択工程で選択した２個の受光部が検出する受光情報に基づいて算出される、前記第２の座標系における前記指示位置の座標値を、前記第１の座標系と前記第２の座標系との間で座標変換を行うためのパラメータを用いて、前記第１の座標系における第２の座標値を算出する第２の算出工程と、
前記第１の座標値と前記第２の座標値を用いて、前記指示位置の座標値を決定する決定工程と
を備えることを特徴とする座標入力装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の座標入力装置の各手段として機能させるための、または請求項９に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の入力や選択をするために指等の指示具によって座標入力面に入力された座標位置を光学的に検出する座標入力装置に関するものである。特に、着脱可能で、可搬性を有する座標入力装置に関するものである。
【背景技術】
【０００２】
従来、この種の座標入力装置として、各種方式の座標入力装置（タッチパネルやデジタイザ）が提案、または製品化されている。例えば、特殊な器具等を用いずに、指で画面上をタッチすることで、ＰＣ（パーソナルコンピュータ）等の端末の操作を簡単に行うことがきるタッチパネル等が広く用いられている。
【０００３】
座標入力方式としては、抵抗膜を用いたもの、または、超音波を用いたもの等、種々のものがある。光を用いたものとして、座標入力面外側に再帰性反射材を設け、投光部からの光を再帰反射材で反射し、その光量分布を受光部により検出する方式（光学遮光方式）が知られている（例えば、特許文献１参照）。この方式は、座標入力領域内の指等で遮光された遮光部分（領域）の方向を検出し、遮光位置、つまり、座標入力位置の座標を決定する。また、特許文献２では、座標入力装置を任意の位置に設置できるようにして使い勝手を向上するシステムが開示されている。
【０００４】
この種の座標入力装置を表示装置と一体にすることによって、表示装置の表示画面をタッチすることで、表示状態を制御したり、あたかも紙と鉛筆の様な関係で、指示位置の軌跡を筆跡として表示したりすることが可能となる。
【０００５】
表示装置としては、液晶表示装置等の各種方式のフラットパネルディスプレイやフロントプロジェクタが知られている。フラットパネルディスプレイの場合には、座標入力装置を重ねて配置すれば、このような操作環境を実現でき、スマートフォン等の携帯機器はその代表例と言える。フラットパネルディスプレイの大型化に伴い、大型のタッチパネルと組み合わせて、例えば、デジタルサイネージと言った分野でもその導入が進んでいる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２７２３５３号公報
【特許文献２】特開２０１４−４８９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このような装置では、構成上いくつかの誤差が発生する。誤差の要因の主なものをいくつか挙げると、例えば、光を検出する受光部には、ＣＣＤラインセンサやＣＭＯＳセンサ等の受光デバイスが使用される。受光デバイスにおける受光は画素単位で行われるから、この受光した光を画素単位で量子化する際には量子化誤差が発生する。また、受光デバイスが検出した画素の番号を角度値へ変換するときには、テーブル参照あるいは多項式近似による変換等の方法を用いるが、いずれの方法でも多少の誤差を発生する。更に、装置が筐体に固定的に取り付けられる場合には、座標算出に使用される基準角度を記録する等の処理が行われる。これは、例えば、装置の組立時に、水平方向等の基準となる角度を示す画素の番号を測定して、装置内のメモリに記録する。このときに、測定の誤差等が発生する。更に、経年変化等で装置の取付位置がずれると、更に誤差が発生することも考えられる。これらのさまざまな誤差要因によって、受光デバイスが検出する角度は誤差を持つことになる。
【０００８】
受光デバイスの検出角度が誤差を持つと、タッチされた位置に対して、算出した画面上の座標が合わないという問題が発生する。両者の差を小さくするには、受光デバイスの画素分解能や、装置の機械的精度を高くする等して、発生する誤差を小さくする必要がある。実際には、コストや機能／性能のバランスなどを考慮した上で設計レベルが決められる。
【０００９】
ここで、例えば、特許文献２の図１３（Ｂ）において、θ１７あるいはθ１８が鋭角であるときに誤差を持つと、算出される座標の誤差が大きな値となり、タッチした位置に対して実際に入力が行われる位置がずれてしまう。その結果、例えば、描画の位置がずれたり、ポインタがずれるために、オブジェクトのクリックや選択等の所望の操作ができなかったりすることがある。
【００１０】
本発明は上記の課題を解決するためになされたものであり、座標を精度良く入力することができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明による座標入力装置は以下の構成を備える。即ち、
座標入力面に対して投光を行う投光部と、到来光を受光する少なくとも３個の受光部を用いて、座標入力有効領域に対する指示位置を検出する座標入力装置であって、
前記少なくとも３個の受光部の位置関係を検出する検出手段と、
前記検出手段で検出した受光部の位置関係の内、前記少なくとも３個の受光部の内の第１の組み合わせからなる２個の受光部に対する第１の位置関係に基づいて、第１の座標系を設定する第１の設定手段と、
前記少なくとも３個の受光部の内の前記第１の組み合わせとは異なる第２の組み合わせからなる２個の受光部に対する第２の位置関係に基づいて、第２の座標系を設定する第２の設定手段と、
前記受光部が検出する受光情報に基づいて、前記少なくとも３個の受光部から２個の受光部を選択する選択手段と、
前記選択手段で選択した２個の受光部が検出する受光情報に基づいて、前記第１の座標系における前記指示位置の第１の座標値を算出する第１の算出手段と、
前記選択手段で選択した２個の受光部が検出する受光情報に基づいて算出される、前記第２の座標系における前記指示位置の座標値を、前記第１の座標系と前記第２の座標系との間で座標変換を行うためのパラメータを用いて、前記第１の座標系における第２の座標値を算出する第２の算出手段と、
前記第１の座標値と前記第２の座標値を用いて、前記指示位置の座標値を決定する決定手段と
を備える。
【発明の効果】
【００１２】
本発明によれば、座標を精度良く入力することができる技術を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１の座標入力装置の概略構成図である。
【図２】実施形態１の演算制御回路の第１の検出モードの動作を説明するための図である。
【図３】実施形態１の初期設定処理を示すフローチャートである。
【図４】実施形態１の検出信号波形を説明する図である。
【図５】実施形態１のセンサユニットの座標算出を説明する図である。
【図６】実施形態１の第２の座標系を説明する図である。
【図７】実施形態１の座標系の変換パラメータの算出を説明する図である。
【図８】実施形態１の通常動作及びキャリブレーションの処理を示すフローチャートである。
【図９】実施形態１の座標算出を説明する図である。
【図１０】実施形態１の座標算出を説明する図である。
【図１１】実施形態１の座標算出を説明する図である。
【発明を実施するための形態】
【００１４】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。尚、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１５】
＜実施形態１＞
実施形態１の座標入力装置の概略構成を、図１を用いて説明する。
【００１６】
１Ｌは少なくとも２個の角度検出センサ部であるところのセンサユニット２−Ｌ１及び２−Ｌ２（第１のセンサユニット及び第２のセンサユニット）を装備する筺体であるところのセンサバーである。また、１Ｒは、２−Ｒ１及び２−Ｒ２（第３のセンサユニット及び第４のセンサユニット）を装備する筺体であるところのセンサバーである。
【００１７】
まず、平面状のホワイトボード等の表示面上に、フロントプロジェクタ等の表示装置を用いて画像が投影表示される。画像が表示される領域を表示領域６とし、これは、座標入力有効領域５の範囲内に設定される。無論、表示面はホワイトボードに限定されるものではなく、壁面等であっても良い。
【００１８】
次に、センサバー１Ｌ及び１Ｒ（総称する場合は、センサバー１と表記）は、ユーザにより、表示領域６の外側に設置される。センサバー１には、例えば、マグネットが内蔵されていて、ホワイトボードに貼り付けることができるようになっている。
【００１９】
センサバー１Ｌ及び１Ｒの側面にはそれぞれ、図示のように再帰反射部４Ｌ及び４Ｒ（総称する場合は、再帰反射部４と表記）が装着されている。そして、再帰反射部４Ｌ及び４Ｒはそれぞれ、対向する辺に設けられたセンサバー１Ｌあるいは１Ｒのセンサユニットが投光した赤外光を再帰的に反射できるように構成してある。
【００２０】
センサバー１Ｌにはセンサユニット２−Ｌ１及び２−Ｌ２が内蔵され、センサバー１Ｒにはセンサユニット２−Ｒ１及び２−Ｒ２が内蔵されている。センサバー１Ｌに内蔵される演算制御回路３Ｌはセンサユニット２−Ｌ１及び２−Ｌ２を制御して、その出力結果を演算処理すると共に、センサバー１Ｒに内蔵される演算制御回路３Ｒを制御する。センサバー１Ｒの演算制御回路３Ｒは、センサユニット２−Ｒ１及び２−Ｒ２を制御して、その出力結果を演算処理して、センサバー１Ｌの演算制御回路３Ｌにその結果を送信する。そして、センサバー１Ｌの演算制御回路３Ｌは、４つのセンサユニット２−Ｌ１、２−Ｌ２、２−Ｒ１及び２−Ｒ２からの出力結果を処理して、指示位置（タッチ位置）を算出し、パーソナルコンピュータ等の外部機器へ結果を出力する。
【００２１】
センサユニット２−Ｌ１、２−Ｌ２、２−Ｒ１及び２−Ｒ２（総称する場合は、センサユニット２と表記）はそれぞれ、投光部及び受光部を内蔵する。投光部は、４つのセンサユニットによって囲まれた座標入力面に向けて光を投光する赤外ＬＥＤや投光レンズ等の光学系により構成される。また、受光部は、到来光を受光するラインＣＣＤ、受光レンズ等の光学系で構成される。ここで、投光部及び受光部の内部構造等については、例えば、特許文献２に詳細に開示されているので、ここでは、その詳細説明は省略する。
【００２２】
尚、図１では、センサバー１Ｌの演算制御回路３Ｌとセンサバー１Ｒの演算制御回路３Ｒとは、例えば、無線等の通信機能を互いに搭載して、それらの通信機能を使用してデータの送受信（無線接続）を行う構成となっているが、これに限定されない。有線通信機能を使用して、通信を行うようにしても良い。
【００２３】
図２は演算制御回路３のブロック図である。実施形態１におけるセンサバー１Ｌの演算制御回路３Ｌとセンサバー１Ｒの演算制御回路３Ｒは、外部へのインタフェース仕様を除き、いずれも同様の回路構成であり、接続される対応するセンサユニット２の制御、演算を行う。図２は、特に、センサバー１Ｌの演算制御回路３Ｌの構成を示している。
【００２４】
センサユニット２−Ｌ１及び２−Ｌ２のラインＣＣＤ用のＣＣＤ制御信号は、ワンチップマイコン等で構成されるＣＰＵ６１から出力され、ラインＣＣＤのシャッタータイミングやデータの出力制御等を行う。ＣＣＤ用のクロックはクロック発生回路ＣＬＫ６２から各センサユニット２−Ｌ１及び２−Ｌ２に送信されるとともに、ラインＣＣＤとの同期をとって各種制御を行うためにＣＰＵ６１にも入力されている。尚、センサユニット２−Ｌ１及び２−Ｌ２の赤外ＬＥＤ３１を駆動するＬＥＤ駆動信号は、ＣＰＵ６１から供給される。
【００２５】
センサユニット２−Ｌ１及び２−Ｌ２それぞれのラインＣＣＤからの検出信号は、Ａ／Ｄコンバータ６３に入力され、ＣＰＵ６１からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ６４に記憶され、角度計算に用いられる。そして、計算された角度情報から幾何学的な指示位置を算出し、外部ＰＣ等の情報処理装置にインタフェース６８（例えば、ＵＳＢインタフェース）を介して出力される。
【００２６】
先に示した通り、各センサバー１の演算制御回路３は、各々２つのセンサユニット２を制御している。仮に、センサバー１Ｌの演算制御回路３Ｌがメイン機能を果たすものとすれば、ＣＰＵ６１はシリアル通信部６７を介して、センサバー１Ｒの演算制御回路３Ｒに制御信号を送信して、回路間の同期を行う。そして、演算制御回路３Ｒから、必要なデータの取得を行うことになる。
【００２７】
演算制御回路３Ｌ及び３Ｒ間の動作は、マスター・スレーブ制御にて動作する。実施形態１の場合、演算制御回路３Ｌがマスターで、演算制御回路３Ｒがスレーブである。尚、各演算制御回路は、マスター・スレーブのどちらにもなりうるが、ディップスイッチ（不図示）等の切替部で、ＣＰＵ６１のポートに切替信号を入力することで、マスター・スレーブの切替が可能となっている。
【００２８】
マスターであるセンサバー１Ｌの演算制御回路３Ｌからは、対向する辺に設けられたセンサバー１Ｒのセンサユニット２−Ｒ１及び２−Ｒ２のデータを取得するために、制御信号がスレーブの演算制御回路３Ｒにシリアル通信部６７を介して送信される。そして、センサユニット２−Ｒ１及び２−Ｒ２で得られた角度情報が算出され、シリアル通信部６７を介してマスター側の演算制御回路３Ｌに送信される。
【００２９】
尚、インタフェース６８は、実施形態１の場合、マスター側の演算制御回路３Ｌに実装されることになる。また、６６は、指示具として、赤外線を発光する専用ペン（不図示）を使用した時の赤外線受光部である。６５は専用ペンからの信号をデコードするためのサブＣＰＵである。専用ペンは、ペン先が入力面を押圧したことを検知するスイッチや、ペン筺体サイド部に種々のスイッチを有する。それらのスイッチの状態やペンの識別情報を専用ペンに設けられた赤外線発光部で送信することにより、専用ペンの操作状態を検知することが可能となる。
【００３０】
図３は電源投入時からの初期設定処理を示すフローチャートである。尚、この初期設定処理は、ユーザが座標入力装置の電源を投入すると、ＣＰＵ６１がメモリ６４に記憶されているプログラムを読み出し、実行することにより実現される。
【００３１】
まず、投影画像である表示領域６の全領域を含む矩形状の座標入力有効領域５を形成するために、操作者によってセンサバー１が壁面に装着される。センサバー１には、例えば、マグネットが内蔵されていて、壁面に貼りつけることができるようになっている。電源投入が行われると、ＣＰＵ６１は、初期設定処理を開始して、入出力ポート設定、タイマ設定等の座標入力装置に係る各種初期化を行うとともに、光電変換素子に残っている余分な電荷を除去する等のラインＣＣＤの初期化を行う（Ｓ１０２）。
【００３２】
尚、本座標入力装置は、座標入力有効領域５に対して指等の指示具による指示（タッチ）があることを検出する第１の座標検出モードと、座標入力装置の設置位置を検出するための第２の座標検出モードを有する。第２の座標検出モードでは、センサバー１Ｌのセンサユニット２−Ｌ１及び２−Ｌ２は、対向するセンサバー１Ｒのセンサユニット２−Ｒ１及び２−Ｒ２が発光した赤外ＬＥＤの赤外光を直接検出する。同様に、センサバー１Ｒのセンサユニット２−Ｒ１及び２−Ｒ２は、対向するセンサバー１Ｌのセンサユニット２−Ｌ１及び２−Ｌ２が発光した赤外ＬＥＤの赤外光を直接検出する。
【００３３】
次に、ラインＣＣＤが検出する受光情報である光量の最適化を行う。ホワイトボードやや表示領域６のサイズは使用環境により様々であり、センサバー１間の距離は適宜ユーザによって設定される。従って、装着の状態によって、検出される光の強度は異なる。そのため、ＣＰＵ６１は、ラインＣＣＤのシャッター開放時間や赤外ＬＥＤの点灯時間、もしくは赤外ＬＥＤの駆動電流等を、予め決められた初期値に設定する動作設定を行う（Ｓ１０３）。動作設定とは、対向するセンサユニット２から直接光を受ける動作の状態（第２の検出モード）であって、４つのセンサユニット２の相対的な位置関係を導出することを目的とする。
【００３４】
次に、ＣＰＵ６１は、ラインＣＣＤの出力信号を取り込む（Ｓ１０４）。そして、ＣＰＵ６１は、センサユニットの配置をチェックすることで、光を検出できたか否かを判定する（Ｓ１０５）。
【００３５】
このとき、ラインＣＣＤから出力される信号波形を図４（Ｅ）に示す。対向する辺に設けられた２つのセンサユニット２の投光部からの発光をそれぞれ受光するため、図４（Ｅ）のように、２つのピークが形成されている状態が正常状態と言える。ここで、光が検出できない場合は、センサユニット２の受光部の視野範囲に、対向する位置にあるセンサユニット２が位置していない可能性がある。
【００３６】
そこで、光が検出できない場合（Ｓ１０５でＮＯ）、ユーザによるセンサバー１の配置／設置が不適な状態にあり、その旨を報知して、センサバーの再設置を促す（Ｓ１０６）。そして、ユーザによる再設置が完了すると、再度、Ｓ１０１を開始することになる。
【００３７】
一方、光が検出できる場合（Ｓ１０５でＹＥＳ）、ＣＰＵ６１は、検出信号の波形レベルのチェックを行う（Ｓ１０７）。対向する位置にあるセンサユニット２の光が強すぎる場合、例えば、検出信号の波形（波形レベル）の少なくとも一部が所定の閾値を超える場合（Ｓ１０７でＮＯ）、Ｓ１０３に戻り、例えば、露光時間をより短くする等の再設定を行う。そして、今度、Ｓ１０７でチェックされる検出信号波形は、より光強度が弱い状態となっているはずである。そして、検出信号波形の少なくとも一部が所定の閾値以下である場合（Ｓ１０７でＹＥＳ）、その信号レベルが適正であると判定する。
【００３８】
以上の動作を、各センサユニット（実施形態１の場合、４つ）で実行し、すべての信号が最適化されると、ＣＰＵ６１は、センサユニット２の相対的な位置関係を算出する位置関係算出処理を実行する（Ｓ１０８）。
【００３９】
Ｓ１０８における、各センサユニットの位置算出方法の一例を、図５を用いて説明する。まず、前述したように、各センサユニットで得られた検出信号の波形に基づいて、図５に示すθ１からθ４を算出する。そして、まず、検出信号の波形が図４（Ｅ）のようになったとすると、２つのピークに対応する画素番号を角度値に変換する。画素番号から角度値への変換には、テーブル参照や変換式を用いる。変換式は、例えば、高次の多項式を用いると精度を確保できるが、次数等は計算能力及び精度スペック等を鑑みて決定すればよい。
【００４０】
ここで、５次多項式を用いる場合の例を示す。まず、装置の組み立て時等に、センサユニットの画素番号と角度との関係を測定する。その測定結果から、５次多項式近似により画素番号を角度値へ変換するための係数データを算出する。そして、係数データを装置内の不揮発性メモリ等のメモリ６４に記憶する。５次多項式を用いる場合には係数データが６個必要になるので、出荷時等にこの係数データをメモリ６４に記憶しておけばよい。今、５次多項式の係数をＬ５、Ｌ４、Ｌ３、Ｌ２、Ｌ１、Ｌ０としたとき、角度値θは
θ=((((L5*Npr+L4)*Npr+L3)*Npr+L2)*Npr+L1)*Npr+L0                （１）
と表すことができる。式（１）により２つのピークに対応するそれぞれの画素番号を角度値へ変換する。そして、変換した２つの角度値の差がそれぞれθ１からθ４となる。例えば、センサユニット２−Ｌ１の検出波形から算出した２つの角度値の差がθ１となる。
【００４１】
次に、図５に示したように、センサユニット２−Ｌ１を原点として、原点からセンサユニット２−Ｒ１を直線で結ぶ方向をＸ軸、Ｘ軸の垂直方向をＹ軸とする。そして、センサユニット２−Ｒ１の座標値を、（１，０）という値に設定して、センサユニットの相対的な位置関係に基づく座標系の設定を行う。このセンサユニット２−Ｒ１及びセンサユニット２−Ｒ１の組み合わせに基づく座標系を第１の座標系（図５のＸ軸とＹ軸で規定される座標系）とする。
【００４２】
本座標入力装置では、図５に示したように、センサユニット２−Ｌ１の光軸と、センサユニット２−Ｌ１の光軸中心とセンサユニット２−Ｌ２の光軸中心を結ぶ線分のなす角度は、所定角度（π／２［ｒａｄ］）となるように設計されている。この値は、基準角度情報としてメモリ６４（基準角度情報記憶部）上に記憶されている。基準角度情報の記憶は、例えば、工場における装置の組み立て時等に、基準角度を測定してメモリ６４上に記憶させる作業によって実行される。また、各センサユニットの光軸方向の画素番号は予め測定されており、メモリ６４上に記憶されている。センサユニット２−Ｌ１の光軸方向の画素番号を角度値に変換した値をθｋ、センサユニット２−Ｌ１からセンサユニット２−Ｒ２を検出したピークに対応する画素番号を角度値に変換した値をθｊとすると、基準角度情報を用いて、θ５は次のように算出される。
【００４３】
θ５＝π／２−（θｊ−θｋ）                            （２）
次に、θ１からθ５を用いて、センサユニット２−Ｌ２及びセンサユニット２−Ｒ２の座標を算出する。ここで、センサユニット２−Ｌ２の座標を（ＸＬ，ＹＬ）、またセンサユニット２−Ｒ２の座標を（ＸＲ，ＹＲ）とすると、図５において、以下の式が成立する。
【００４４】
ＹＬ＝ＸＬ×ｔａｎ（θ１＋θ５）                          （３）
ＹＬ＝（１−ＸＬ）×ｔａｎθ３                            （４）
ＹＲ＝ＸＲ×ｔａｎθ１                                    （５）
ＹＲ−ＹＬ＝（ＸＲ−ＸＬ）×ｔａｎ（θ２−θ３）          （６）
式（３）及び式（４）より、
ＸＬ＝ｔａｎθ３／（ｔａｎ（θ１＋θ５）＋ｔａｎθ３）    （７）
また、式（５）及び式（６）より、
ＸＲ＝（ＹＬ−ＸＬ×ｔａｎ（θ２−θ３））／（ｔａｎθ１−ｔａｎ（θ２−θ３））                                                          （８）
まず、式（７）により、ＸＬを算出する。そして、算出されたＸＬと式（３）により、ＹＬを算出する。次に、算出されたＸＬ、ＹＬ、及び式（８）により、ＸＲを算出する。そして、算出されたＸＲと式（５）により、ＹＲを算出する。
【００４５】
以上の手順によって、センサユニット２−Ｌ２の座標（ＸＬ，ＹＬ）及びセンサユニット２−Ｒ２の座標（ＸＲ，ＹＲ）が算出される。尚、ここで説明した各センサユニットの座標値（位置）の算出方法は、一例であって、もちろん他の式や手順による算出を行っても良い。
【００４６】
次に、本実施形態における座標算出では、算出される座標の精度を改善するため、図５に示したＸＹ座標系とは別の第２の座標系を使用する。第２の座標系は、図６に示すように、センサユニット２−Ｌ２を原点として、センサユニット２−Ｒ２の座標値を（１，０）として、Ｘ軸の垂直方向をＹ軸とする。
【００４７】
後述する座標算出では、第１の座標系と第２の座標系との間で座標変換を行う。そのため、ＣＰＵ６１は、座標変換に必要となる変換パラメータを算出する（Ｓ１０９）。具体的には、図７に示すように、第１の座標系における、センサユニット２−Ｌ２とセンサユニット２−Ｒ２との間の距離Ｌｂ、及び、センサユニット２−Ｌ２とセンサユニット２−Ｒ２を結ぶ線がＸ軸方向となす角度θｂを変換パラメータとして算出する。
【００４８】
Ｌｂ＝ＳＱＲＴ（（ＸＲ−ＸＬ）2＋（ＹＲ−ＹＬ）2）      （９）
θｂ＝ＡＲＣＴＡＮ（（ＹＲ−ＹＬ）／（ＸＲ−ＸＬ））        （１０）
ここで、ＳＱＲＴ（）は平方根を求める関数、ＡＲＣＴＡＮ（）は逆正接関数である。そして、ＣＰＵ６１は、変換パラメータであるＬｂ及びθｂをメモリ６４に保存する（Ｓ１１０）。
【００４９】
Ｓ１１１以降では、ＣＰＵ６１は、センサユニット２が投光した赤外光が、対向するセンサバー１に設けられた再帰反射部４で再帰反射され、その光を自身の受光部４０で検出した時の信号レベルを最適化する。上述したとおり、センサバー１の配置は一意では無く、その配置に応じた検出レベルを最適化することで、安定した信号を得ることを目的とする。設定する項目は、ラインＣＣＤのシャッター開放時間や赤外ＬＥＤの点灯時間、もしくは赤外ＬＥＤの駆動電流の設定を含む第１の検出モードで動作設定を行う（Ｓ１１１）。仮に、最初の動作設定を光量が最大に得られるように設定する（Ｓ１１１）と、ＣＰＵ６１は、その時のラインＣＣＤの出力信号を取り込む（Ｓ１１２）。
【００５０】
取り込まれた出力信号は、照明時のデータであり、図４（Ｂ）に示すような波形となる。レベルＡが検出した光量の最大レベルであり、レベルＢが光を検出していないレベルである。光が強すぎると、ラインＣＣＤのダイナミックレンジの範囲を超え、出力が飽和することになるので、正確な角度を算出することが困難となる。そこで、ＣＰＵ６１は、検出信号の波形レベルのチェックを行う（Ｓ１１３）。チェックの結果、検出信号の波形が不適と判定されると（Ｓ１１３でＮＯ）、Ｓ１１１に戻り、検出信号の波形（波形レベル）がより小さくなるように、再設定を行う。尚、ここでは、再帰反射光を検出するので、Ｓ１０３〜Ｓ１０７での処理（つまり、第２の検出モード）でセンサユニット２の投光を直接受光部４０で検出する場合と比べて、格段に投光する光量が大きくなるように設定することになる。
【００５１】
そして、波形レベルが最適と判定される場合（Ｓ１１３でＹＥＳ）、ＣＰＵ６１は、センサユニットの投光部の照明無しの状態でラインＣＣＤの出力をＡ／Ｄコンバータ６３によりＡ／Ｄ変換する。そして、ＣＰＵ６１は、この値をＢａｓｅ＿Ｄａｔａ［Ｎ］としてメモリ６４に記憶する（Ｓ１１４）。これは、ラインＣＣＤのバイアスのばらつき等を含んだデータとなり、図４（Ａ）のレベルＢ付近のデータとなる。ここで、［Ｎ］はラインＣＣＤのＣＣＤ画素番号であり、有効な入力範囲に対応する画素番号が用いられる。
【００５２】
次に、ＣＰＵ６１は、センサユニットの投光部から投光した状態での光量分布を取得する。これは、図４（Ｂ）の実線で表されたデータであり、ＣＰＵ６１は、Ｒｅｆ＿Ｄａｔａ［Ｎ］としてメモリ６４に記憶する（Ｓ１１５）。
【００５３】
このようにして、全てのセンサユニットでのデータが取得されると、一連の初期設定処理が完了する。
【００５４】
次に、初期設定処理後の通常のサンプリング動作を示すフローチャートを図８（Ａ）に示し、処理の内容を説明する。
【００５５】
ＣＰＵ６１は、図３の初期設定処理を実行する（Ｓ１０１）。その後、ＣＰＵ６１は、通常の取込動作（第１の検出モード）として、センサユニット２が投光した赤外光が、対向するセンサバー１に設けられた再帰反射部４で再帰反射され、その光を自身の受光部４０で検出した時の信号を検出する（Ｓ２０１）。その時のデータは、Ｎｏｒｍ＿ｄａｔａ［Ｎ］であり、仮に、座標入力有効領域５の入力面に対するタッチ操作があって光路を遮ると、例えば、図４（Ｃ）のように、センサユニットは、画素番号Ｎｃの辺りで光信号を検出できなくなる。
【００５６】
ＣＰＵ６１は、いずれかのセンサユニット２で、このような光の遮光部分が生成されたか否か、つまり、入力の有無を判定する（Ｓ２０２）。入力が無いと判定される場合（Ｓ２０２でＮＯ）、再度、Ｓ２０１に戻り、サンプリングを繰り返すことになる。一方、入力が有ると判定される場合（Ｓ２０２でＹＥＳ）、ＣＰＵ６１は、出力信号に遮光部分が生成されているセンサユニットを選択する（Ｓ２０３）。ＣＰＵ６１は、その選択したセンサユニットを用いて、遮光部分が生成されている方向（角度）を各々算出する（Ｓ２０４）。ここで、この投光部の照明有りの状態で得られるサンプルデータをＮｏｒｍ＿Ｄａｔａ［Ｎ］と定義する。
【００５７】
そして、ＣＰＵ６１は、この図４（Ａ）〜図４（Ｃ）で示す信号を用いて、タッチ位置の方向、言い換えると、角度を算出することができる。
【００５８】
具体的には、ＣＰＵ６１は、メモリ６４に記憶されているＢａｓｅ＿Ｄａｔａ［Ｎ］とＲｅｆ＿Ｄａｔａ［Ｎ］を用いて、まずは、指示具の入力の有無、遮光部分の有無の判定を行う。まず、遮光部分を特定するために、データの変化量を各々の画素において算出し、予め設定してある閾値Ｖｔｈａと比較する。
【００５９】
Norm_Data0[N] = Norm_Data[N] - Ref_Data[N]                  （１１）
ここで、Norm_Data0[N]は、各画素における光量の絶対変化量であり、閾値比較により、ノイズ等による誤判定を防止し、所定量の確実な変化を検出する。そして、閾値を超えるデータが、例えば、所定数以上の連続した画素で発生した場合に、タッチ操作が有ると判定する。この処理は、差を取り比較するだけなので、短時間での演算が可能であり、入力の有無判定を高速に行うことができる。
【００６０】
次に、より高精度に検出するために、画素データの変化の比を計算して入力点の決定を式（１２）を用いて行う。
【００６１】
Norm_DataR[N] = Norm_Data0[N] / (Base_Data[N] - Ref_Data[N])  （１２）
この画素データ（光量分布）に対して、別途設定される閾値Ｖｔｈｒを適用する。そして、その閾値Ｖｔｈｒを横切る点に対応する、光量分布中の遮光部分に対応する光量変動領域の立ち上がり部と立ち下がり部の画素番号から、両者の中央を指示具による入力に対応する画素とすることで、角度を算出する。
【００６２】
図４（Ｄ）は画素データの変化の比を計算した例である。今、閾値Ｖｔｈｒで検出すると、遮光部分の立ち上がり部分は、Ｎｓ番目の画素でレベルＬｓとなり閾値Ｖｔｈｒを超えたとする。更に、Ｎｔ番目の画素でレベルＬｔとなり閾値Ｖｔｈｒを下まわったとする。
【００６３】
この時、出力すべきラインＣＣＤの画素番号Ｎｐを、立ち上がり部と立ち下がり部の画素番号の中央値として式（１３）のように計算しても良いが、そうすると、ラインＣＣＤの画素間隔が出力画素番号の分解能になる。
【００６４】
Np = ((Ns - 1) + Nt) / 2                                     （１３）
そこで、より高分解能に検出するために、それぞれの画素のデータレベルとその一つ前の隣接画素のデータレベルを用い、閾値Ｖｔｈｒを横切る仮想の画素番号を計算する。
【００６５】
画素ＮｓのレベルをＬｓ、画素Ｎｓ−１番のレベルをＬｓ−１、そして、画素ＮｔのレベルをＬｔ、画素Ｎｔ−１のレベルをＬｔ−１とすると、それぞれの仮想画素番号Ｎｓｖ、Ｎｔｖは、
Nsv = Ns-1 + ( Vthr - Ls-1 ) / ( Ls - Ls-1 )                  （１４）
Ntv = Nt-1 + ( Vthr - Lt-1 ) / ( Lt - Lt-1 )                  （１５）
と計算できる。この計算式によれば、出力レベルに応じた仮想画素番号、つまり、ラインＣＣＤの画素番号よりも細かい画素番号を取得できる。そして、これらの仮想画素番号Ｎｓｖ、Ｎｔｖの仮想中心画素Ｎｐｖは、式（１６）で決定される。
【００６６】
Npv = ( Nsv + Ntv ) / 2                                      （１６）
このように、閾値Ｖｔｈｒを越えるデータレベルの画素の画素番号とその隣接する画素番号と、それらのデータレベルから、所定レベルの閾値Ｖｔｈｒを横切る仮想的な仮想画素番号を計算することで、より分解能の高い検出を実現できる。
【００６７】
次に、タッチによる遮光部分（影）が発生したときの、画面上における位置を表す例を図９に示す。図９（Ａ）において、センサユニット２−Ｌ１が検出した遮光部分の角度をθ６、センサユニット２−Ｒ１が検出した遮光部分の角度をθ７とする。同様に、図９（Ｂ）において、センサユニット２−Ｌ２が検出した遮光部分の角度をθ８、センサユニット２−Ｒ２が検出した遮光部分の角度をθ９とする。ここで、θ８及びθ９は、各センサユニットとＸ軸に平行な方向（点線で示した方向）を基準としたときの角度となっている。
【００６８】
ここで、センサユニット２−Ｌ２とＸ軸に平行な方向は、図５に示したように、各センサユニットの相対座標を算出するとき、センサユニット２−Ｌ２からセンサユニット２−Ｒ１を検出した方向からθ３回転した方向（角度）として算出される。センサユニット２−Ｒ２においても同様で、Ｘ軸に平行な方向は、センサユニット２−Ｒ２からセンサユニット２−Ｌ１を検出した方向からθ１回転した方向（角度）として算出される。
【００６９】
ＣＰＵ６１は、この算出した角度に基づいて、相対座標系での指示位置の座標を算出する（Ｓ２０５）。指示位置の座標算出処理は、以下のように行われる。
【００７０】
図９（Ａ）より、センサユニット２−Ｌ１で検出した角度と遮光部分の座標（ｘ，ｙ）について、次の関係式が成立する。
【００７１】
ｙ＝ｘ×ｔａｎθ６                                        （１７）
同様に、センサユニット２−Ｒ１で検出した角度と遮光部分の座標については、次の関係式が成立する。
【００７２】
ｙ＝（１−ｘ）×ｔａｎθ７                                （１８）
同様に、図９（Ｂ）より、センサユニット２−Ｌ２で検出した角度と遮光部分の座標については、次の関係式が成立する。
【００７３】
ＹＬ−ｙ＝（ｘ−ＸＬ）×ｔａｎθ８                        （１９）
同様に、センサユニット２−Ｒ２で検出した角度と遮光部分の座標については、次の関係式が成立する。
【００７４】
ＹＲ−ｙ＝（ＸＲ−ｘ）×ｔａｎθ９                        （２０）
ここで、図１０は、画面座標との位置関係を示す図である。センサバー１Ｌのセンサユニット２−Ｌ１及びセンサユニット２−Ｌ１の視野範囲は、それぞれ２つの矢印で示された間の範囲となる。従って、センサユニット２−Ｌ１及びセンサユニット２−Ｌ２の視野範囲から、指示位置Ｐが図１０（Ａ）のハッチング部の範囲に有る場合のみ、その指示位置を算出することが可能である。指示位置がその範囲に無い場合には、図１０（Ｂ）、図１０（Ｃ）、及び図１０（Ｄ）に示す様に、演算に用いるセンサユニットの組み合わせを変更することで、座標入力有効領域５全域の指示位置を検出できるようになる。従って、各センサユニット２が検出した遮光方向の有無、及び遮光方向に基づき、座標算出に必要なセンサユニットを選択して、指示位置の座標を算出する。
【００７５】
尚、図１０（Ｅ）に示すように、センサユニット選択の境界領域近傍に指示位置Ｐが存在すると、この場合は、図１０（Ａ）もしくは図１０（Ｂ）の状態のセンサユニットの組み合わせで、その指示位置を算出できる。具体的な構成として、例えば、センサユニット２−Ｌ２の視野範囲と、センサユニット２−Ｒ１の視野範囲は、座標入力有効領域５の対角線方向で重複するように構成される。そして、重複した領域でタッチした場合には、複数通りのセンサユニットの組み合わせで座標算出が可能となる。その場合にあっては、両者の組み合わせで算出した座標値の平均値を確定座標として出力しても良い。
【００７６】
まず、図１０（Ａ）の領域においては、センサユニット２−Ｌ１及びセンサユニット２−Ｌ２で遮光部分が検出される。そこで、センサユニット２−Ｌ１で成立する式（１７）及びセンサユニット２−Ｌ２で成立する式（１９）より、
ｘ＝（ＹＬ＋ＸＬ×ｔａｎθ８）／（ｔａｎθ６＋ｔａｎθ８）  （２１）
が成立する。この式（２１）により、ｘを算出し、更に、この算出されたｘと式（１７）によりｙを算出する。
【００７７】
次に、図１０（Ｂ）の領域においては、センサユニット２−Ｌ１及びセンサユニット２−Ｒ１で遮光部分が検出される。そこで、センサユニット２−Ｌ１で成立する式（１７）及びセンサユニット２−Ｒ１で成立する式（１８）より、
ｘ＝ｔａｎθ７／（ｔａｎθ６＋ｔａｎθ７）                （２２）
が成立する。この式（２２）により、ｘを算出し、更に、この算出されたｘと式（１７）によりｙを算出する。
【００７８】
図１０（Ｃ）の領域においても同様に、センサユニット２−Ｒ１で成立する式（１８）及びセンサユニット２−Ｒ２で成立する式（２０）より、
ｘ＝（ｔａｎθ７＋ＸＲ×ｔａｎθ９―ＹＲ）／（ｔａｎθ７＋ｔａｎθ９）
（２３）
が成立する。この式（２３）によりｘを算出し、更に、この算出されたｘと式（１８）によりｙを算出する。
【００７９】
図１０（Ｄ）の領域においても同様に、センサユニット２−Ｌ２で成立する式（１９）及びセンサユニット２−Ｒ２で成立する式（２０）より、
ｘ＝（ＸＬ×ｔａｎθ８＋ＸＲ×ｔａｎθ９＋ＹＬ−ＹＲ）／（ｔａｎθ８＋ｔａｎθ９）                                            （２４）
が成立する。この式（２４）により、ｘを算出し、更に、この算出されたｘと式（１９）によりｙを算出する。
【００８０】
ここで、前述したように、センサユニット２−Ｌ２においてＸ軸に平行な方向は、図５に示したように、センサユニット２−Ｌ２からセンサユニット２−Ｒ１を検出した方向からθ３回転した方向（角度）として算出されている。センサユニット２−Ｒ２においても同様に、Ｘ軸に平行な方向は、センサユニット２−Ｒ２からセンサユニット２−Ｌ１を検出した方向からθ１回転した方向（角度）として算出される。
【００８１】
ここで、実際の座標入力装置では、様々な要因で誤差が発生する。誤差の要因の主なものをいくつか挙げると、例えば、ラインＣＣＤが検出する光を画素単位に量子化するときの量子化誤差が挙げられる。また、ラインＣＣＤが検出した画素番号を角度へ変換するときに、テーブル参照あるいは多項式近似による変換を行うが、このときに誤差が発生する。また、上述の基準角度情報は、例えば、工場での装置の組立時等に測定が行われるが、このときにも測定誤差が発生する。更に経年変化等で、例えば、センサユニットやその内部の光学系等の設置位置がずれる等すると、更に誤差が発生することになる。これらの様々な誤差要因のために、算出される角度値は誤差を含むことになる。
【００８２】
センサユニットの角度特性の誤差によりθ１あるいはθ３が誤差を含んでいると、Ｘ軸に平行であるはずの方向（図５の点線が示す方向）がずれることになる。図９に示したように、θ８及びθ９はＸ軸に平行な方向を基準として算出されるので、θ１、θ３の角度誤差は、そのままθ８、θ９の誤差として加算されることになる。
【００８３】
更に、θ８とθ９が鋭角となり小さな値になると、相対的にθ８、θ９に含まれる誤差成分であるθ１、θ３の角度誤差の比率が大きくなる。ここで、式（２４）においては、（ｔａｎθ８＋ｔａｎθ９）が除算の分母となっているため、θ８とθ９が小さな値になる程、算出結果に現れる誤差が所定値より大きいものとなる。従って、座標入力有効領域５の下辺に近い領域（座標入力有効領域内の所定領域）において、特に、誤差が大きくなるという傾向がある。本実施形態では、この問題を改善するため、図１０（Ｄ）の領域においては、別の方法で座標算出を行う。
【００８４】
まず、第２の座標系で検出した角度値を用いて座標値を算出する。図７より、
ｙ＝−ｘ×ｔａｎθ１０                                  （２５）
ｙ＝−（１−ｘ）×ｔａｎθ１１                          （２６）
式（２５）及び式（２６）より、
ｘ＝ｔａｎθ１１／（ｔａｎθ１０＋ｔａｎθ１１）          （２７）
が成立する。この式（２７）により、ｘを算出し、その算出されたｘと式（２５）によりｙを算出する。
【００８５】
次に、算出された第２の座標系の座標値を第１の座標系の座標値へ変換する。第２の座標系の座標値を（ｘ，ｙ）、第１の座標系の座標値を（ｘ’，ｙ’）とすると、Ｓ１０９で算出した変換パラメータ（距離Ｌｂ及び回転角θｂ）を用いて、次式のように、座標変換を行うことができる。尚、この座標値の変換には、座標値の回転、座標値の所定方向への拡大、座標値の平行移動（オフセット）の少なくとも１つを含んでいる。そのため、座標値を回転することで座標値を変換する場合には、変換パラメータはその回転処理における回転角となる。また、座標値を所定方向へ拡大することで座標値を変換する場合には、変換パラメータはその拡大処理における拡大率となる。更に、座標値を平行移動（オフセット）することで座標値を変換する場合には、変換パラメータは、そのオフセット処理におけるオフセット量となる。
【００８６】
ｘ’＝（ｘ×ｃｏｓθｂ−ｙ×ｓｉｎθｂ）×Ｌｂ＋ＸＬ        （２８）
ｙ’＝（ｘ×ｓｉｎθｂ−ｙ×ｃｏｓθｂ）×Ｌｂ＋ＹＬ        （２９）
図１０（Ｄ）の領域においては、式（２８）及び式（２９）を用いて算出した（ｘ’、ｙ’）を座標算出結果として採用する。
【００８７】
式（２７）におけるθ１０及びθ１１は、前述した装置の設置位置を検出する処理で対向するセンサユニットからの光を検出した方向を基準として角度が計測される。式（２４）のように、θ１やθ３の角度誤差が加算されることがないため、角度誤差を小さく抑えることができる。
【００８８】
尚、式（２８）及び式（２９）においては、θｂ及びＬｂ等の誤差が座標算出結果の誤差として現れることになる。しかし、式（２４）を用いた座標算出結果と比べると、発生する誤差の大きさははるかに小さくなるので、タッチ位置に対して算出される座標の精度が改善される。また、本実施形態では、センサユニットが４個で構成されるシステムを例として説明を行っているが、センサユニットを３個以上備えていれば、そのうち２個のセンサユニットを選択する組み合わせが複数存在する。従って、これらの複数の組み合わせによって、複数の座標系を設定することができるので、少なくとも３個のセンサユニットを構成すれば、本実施形態を適用することができる。
【００８９】
以上の処理によって、ＣＰＵ６１は、指示位置の相対座標系における指示位置の相対座標値（ｘ，ｙ）を算出し、その算出した指示位置の相対座標値を表示座標系の座標値に変換する（Ｓ２０６）。この算出した指示位置の相対座標値を表示座標系の座標値へ変換する方法としては、射影変換等の手法がある。これらは一般的な座標変換手法であるので、ここでは詳細な説明は省略する。また、この座標変換に必要なパラメータの取得するための処理については後述する。
【００９０】
そして、ＣＰＵ６１は、パーソナルコンピュータ等の外部機器に、変換した座標値を出力（送信）する（Ｓ２０７）。
【００９１】
尚、この際に、入力面をタッチしている状態であるか否かを示すタッチダウン信号／タッチアップ信号をあわせて出力しても良い。この種の座標入力装置にあっては、タッチ面をタッチすることで、光路は１００％遮断されることになるが、タッチ状態から少しずつ浮かせることによって、少しずつ光が透過するようになる。従って、光がどの程度遮られたかを演算することで、タッチ状態にあるのか、タッチはしてないが、光路を遮っている（角度演算は可能であり、その場合でもその位置を演算可能）状態であるのかを、閾値を設定することで判定できる。
【００９２】
次に、指示位置の相対座標系における相対座標値を表示座標系の座標値に変換するときに必要となるパラメータを取得するための処理について説明する。
【００９３】
表示座標系は、図１に示したように、ｄ１を原点としてｄＸ軸、ｄＹ軸からなる線形２次元座標系である。座標変換のためのパラメータを設定するためには、相対座標系と表示座標系の位置関係の情報（相関情報）が必要となる。必要な情報を得るためには、キャリブレーションと呼ばれる処理を行う。
【００９４】
通常、キャリブレーションを実現するためには、表示制御を行っているパーソナルコンピュータ（ＰＣ）に、専用のアプリケーションがインストールされる。アプリケーションを起動すると、表示画面には十字クロス等の指標が表示され、ユーザにその指標位置をタッチするように促す。その動作を異なる位置で所定回数繰り返すことで得られる相対座標系の座標値と、指標が表示されている位置の表示座標系の座標値とが一致するように、座標系の変換が行われる。
【００９５】
実施形態１の座標入力装置にあっては、アプリケーションソフトを使って指標の位置を表示させてタッチさせるのではなく、表示画面の四隅をタッチすることで、キャリブレーションを実現する。このように構成することで、その場にあるＰＣに接続することで、特別なソフトをインストールすることなく直ぐに使えると言う優れた効果が得られる。
【００９６】
このキャリブレーションモードへの遷移は、例えば、座標入力装置に備えられたスイッチ等の切替部の操作により実現する。キャリブレーションモードのフローチャートを図８（Ｂ）に示し、処理の内容を説明する。
【００９７】
キャリブレーションモードは、センサバー１を装着した直後、あるいは設置完了後であっても、何らかの拍子でディスプレイの表示位置がずれてしまった場合に行われる。キャリブレーションモードに遷移すると、先ずは、ＣＰＵ６１は、初期設定処理を行う（Ｓ１０１）。これは、センサバーが使用中に設置状態がずれた場合を想定して、光出力の最適化、センサの位置ずれを補正することになる。
【００９８】
そして、ユーザによる表示領域６の４隅のタッチ操作を行わせるために、Ｓ２０１及びＳ２０２を経て、ＣＰＵ６１は、そのひとつの位置のタッチが行われたかを判定する。Ｓ２０３及びＳ２０４で、ＣＰＵ６１は、必要な角度情報を算出する。その後、ＣＰＵ６１は、データの取得が完了したことを報知する（Ｓ３０１）。この報知は、例えば、完了を示すビープ音を出力する。
【００９９】
次に、ＣＰＵ６１は、表示領域６の４隅の全ての情報の取得が完了したか否かを判定する（Ｓ３０２）。取得が完了していない場合（Ｓ３０２でＮＯ）、Ｓ２０１に戻る。一方、取得が完了している場合（Ｓ３０２でＹＥＳ）、ＣＰＵ６１は、相対座標系から表示座標系へと変換するためのパラメータを算出する（Ｓ３０３）。相対座標系と表示座標系において対応する４か所の座標値がそれぞれ取得されているので、例えば、射影変換等の手法により座標変換が可能であり、必要なパラメータ（変換行列の要素の値等）を算出することができる。
【０１００】
以上の処理で、キャリブレーションモードを終了し、通常動作に戻る（図８（Ａ）のＳ２０１に進む）。キャリブレーションモードにおいて算出されたパラメータは、Ｓ２０６における座標変換で使用されることになる。
【０１０１】
上述のキャリブレーション処理によって、装置の設置位置に対する表示画面の位置を対応付けることができるので、このとき、表示画面が装置の有効範囲の中にあるかどうかを検査することができる。例えば、有効範囲の検査を行った結果、表示画面が有効範囲から外れていると判定した場合に、ユーザに対して、例えば、ビープ音や音声等によって表示画面の再調整を促す通知をする処理を行ってもよい。
【０１０２】
あるいは、接続されたＰＣに画面調整を行うためのドライバソフトウェアを予め動作させておく方法もある。この方法では、キャリブレーション処理によって表示画面が有効範囲から外れていると判定したとき、ドライバソフトウェアに対して、有効範囲に対する表示画面のずれ量を示す情報を送信する。ドライバソフトウェアはその情報を受信し、表示画面の調整を自動的に行うことができる。
【０１０３】
以上説明したように、実施形態１によれば、タッチ位置に対して算出される座標の精度を改善することができる。
【０１０４】
＜実施形態２＞
実施形態１では、図１０（Ａ）〜図１０（Ｄ）で示すそれぞれの領域に対して、演算に用いるセンサユニットの組み合わせを変更してタッチ座標の算出を行うと構成としている。このとき、座標入力有効領域５の下辺に近い領域において、特に、誤差が所定値より大きくなるという傾向があるために、図１０（Ｄ）で示す領域において別の方法で座標算出を行うことで、タッチ位置に対して算出される座標の精度を改善している。
【０１０５】
これに対し、実施形態２では、図８（Ａ）のＳ２０５における、図１０（Ｄ）の領域に対する座標算出処理の他の例について説明する。装置の構成等については実施形態１と同様なので説明は省略する。
【０１０６】
図１０（Ｄ）で示す領域において、まず、第１の座標系における座標算出を行う。実施形態１で説明したように、式（２４）により、ｘを算出し、更に、この算出されたｘと式（１９）によりｙを算出する。算出された座標値を（ｘ１，ｙ１）とする。
【０１０７】
次に、式（２５）から式（２９）を用いて、第２の座標系における座標算出を行う。算出された座標値を、ここでは（ｘ２，ｙ２）とする。次に、ｙ２の値により比率を決めて、（ｘ１，ｙ１）と（ｘ２，ｙ２）との平均を計算する。
【０１０８】
ここで、平均計算の比率を決定するために、２つの基準値を用いる。この基準値は、図３のＳ１０８で予め算出される。２つの基準値をＹ０、Ｙ１とすると、例えば、次のように算出される。
【０１０９】
Ｙ０＝ＭＩＮ（ＹＬ，ＹＲ）×０．６                        （３０）
Ｙ１＝ＭＩＮ（ＹＬ，ＹＲ）×０．８                        （３１）
ここで、ＭＩＮ（）は引数の中の最小値を返す関数である。Ｙ０、Ｙ１の位置は、例えば、図１１のようになる。この図では、ＹＲ＜ＹＬであるので、Ｙ０、Ｙ１はＹＲの値に対して、それぞれ０．６倍、０．８倍された値となる。ここで、０．６や０．８等の値は、平均計算を行う範囲を考慮した上で、予め固定値として定められている。平均計算した座標値を（ｘ３，ｙ３）とすると、ｙ２とＹ０、Ｙ１の大小関係によって、（ｘ３，ｙ３）を次のように算出する。
【０１１０】
ｙ２≦Ｙ０のとき、
ｘ３＝ｘ１                                                （３２）
ｙ３＝ｙ１                                                （３３）
Ｙ０＜ｙ２＜Ｙ１のとき、
ｘ３＝（（ｙ１−Ｙ０）×ｘ２＋（Ｙ１−ｙ１）×ｘ１）／（Ｙ１−Ｙ０））
（３４）
ｙ３＝（（ｙ１−Ｙ０）×ｙ２＋（Ｙ１−ｙ１）×ｙ１）／（Ｙ１−Ｙ０））
（３５）
Ｙ１≦ｙ２のとき、
ｘ３＝ｘ２                                                （３６）
ｙ３＝ｙ２                                                （３７）
図１０（Ｄ）に示す領域においては、式（３２）から式（３７）を用いて算出した（ｘ３、ｙ３）を座標算出結果として採用する。この算出方法では、まず、Ｙ１≦ｙ２の領域は、座標入力有効領域５の下辺に近い領域であり、座標値の検出誤差が特に大きくなるため、（ｘ２，ｙ２）が採用される。一方、ｙ２≦Ｙ０の領域では、（ｘ１，ｙ１）が採用される。その間の、Ｙ０＜ｙ２＜Ｙ１の領域では、ｙ２の位置に応じて（ｘ１，ｙ１）と（ｘ２，ｙ２）とが加重平均される。ここでは、領域の境界を滑らかに接続するために、Ｙ０＜ｙ２＜Ｙ１の領域において両者を加重平均するようにしている。他の例として、例えば、領域の境界付近において（ｘ１，ｙ１）と（ｘ２，ｙ２）との差が十分小さいような場合には、加重平均を行う領域を設けないようにしても良い。その場合は、一つの境界を定めて（ｘ１，ｙ１）と（ｘ２，ｙ２）のどちらかを選択するという処理となり、式（３４）、式（３５）を使用しないので演算を簡略化することができる。
【０１１１】
尚、本実施形態においては、ｙ２とＹ０、Ｙ１との大小関係による場合分けを行っているが、ｙ２に限らず、例えば、ｙ０を用いたり、ｙ０とｙ２を平均した値を用いても良い。あるいは、更に、ｘの値を用いることで、ｘ方向で場合分けを行うこともできる。誤差の発生の傾向を考慮した上で、領域の分け方を決定すれば良い。
【０１１２】
以上説明したように、実施形態２によれば、算出されたｙ座標を検査することで、タッチ位置の座標入力有効領域５の下辺からの距離に応じた座標算出を行う。その結果、座標算出誤差が、特に、他の領域に比べて大きくなる下辺に近い領域における座標の精度を改善することができる。
【０１１３】
＜実施形態３＞
上述の実施形態においては、センサユニットは、投光部に赤外ＬＥＤを内蔵し、受光部にラインＣＣＤセンサを内蔵する構成としているが、これに限定されない。例えば、他の形態として、撮像装置であるカメラを使用するシステムについても上記実施形態を適用することができる。
【０１１４】
この場合、図１を例にすると、センサユニット２−Ｌ１、２−Ｌ２、２−Ｒ１及び２−Ｒ２にはカメラが内蔵されている。各カメラは、座標入力有効領域５の方向の画像を撮像し、他のカメラの位置する角度を、マッチング等の画像認識処理を行うことで検出する。相互に検出した角度を用いて、実施形態１と、同様に、座標入力装置が設置された位置を検出することができる。
【０１１５】
尚、カメラ方式におけるタッチ検出は、画像認識処理で指等の入力を検出する方法や、ペンを用いる方法がある。ペンを用いる方法では、例えば、ペン先にＬＥＤを内蔵し、タッチ時にＬＥＤを発光させ、その光をカメラで検出することで入力の角度を検出する。そして、検出した角度に基づいてタッチ位置に対する座標値を算出することができる。
尚、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１６】
１：センサバー、２：センサユニット、３：演算制御回路、４：再帰反射部、５：座標入力有効領域、６：表示領域
【図１】
2016143400.tif 000003
【図２】
2016143400.tif 000004
【図３】
2016143400.tif 000005
【図４】
2016143400.tif 000006
【図５】
2016143400.tif 000007
【図６】
2016143400.tif 000008
【図７】
2016143400.tif 000009
【図８】
2016143400.tif 000010
【図９】
2016143400.tif 000011
【図１０】
2016143400.tif 000012
【図１１】
2016143400.tif 000013