JP2016143400A - 座標入力装置及びその制御方法 - Google Patents
座標入力装置及びその制御方法 Download PDFInfo
- Publication number
- JP2016143400A JP2016143400A JP2015021490A JP2015021490A JP2016143400A JP 2016143400 A JP2016143400 A JP 2016143400A JP 2015021490 A JP2015021490 A JP 2015021490A JP 2015021490 A JP2015021490 A JP 2015021490A JP 2016143400 A JP2016143400 A JP 2016143400A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate
- light receiving
- light
- coordinate value
- receiving units
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/042—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
- G06F3/0428—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means by sensing at the edges of the touch surface the interruption of optical paths, e.g. an illumination plane, parallel to the touch surface which may be virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
Abstract
【課題】 座標を精度良く入力する。【解決手段】 検出した受光部の位置関係の内、第1の組み合わせからなる2個の受光部に対する第1の位置関係に基づいて、第1の座標系を設定する。第1の組み合わせとは異なる第2の組み合わせからなる2個の受光部に対する第2の位置関係に基づいて、第2の座標系を設定する。受光部が検出する受光情報に基づいて、少なくとも3個の受光部から2個の受光部を選択する。選択した2個の受光部が検出する受光情報に基づいて、第1の座標系における指示位置の第1の座標値を算出する。選択した2個の受光部が検出する受光情報に基づいて算出される、第2の座標系における指示位置の座標値を、第1の座標系と第2の座標系との間で座標変換を行うためのパラメータを用いて、第1の座標系における第2の座標値を算出する。第1の座標値と第2の座標値を用いて、指示位置の座標値を決定する。【選択図】 図3
Description
本発明は、情報の入力や選択をするために指等の指示具によって座標入力面に入力された座標位置を光学的に検出する座標入力装置に関するものである。特に、着脱可能で、可搬性を有する座標入力装置に関するものである。
従来、この種の座標入力装置として、各種方式の座標入力装置(タッチパネルやデジタイザ)が提案、または製品化されている。例えば、特殊な器具等を用いずに、指で画面上をタッチすることで、PC(パーソナルコンピュータ)等の端末の操作を簡単に行うことがきるタッチパネル等が広く用いられている。
座標入力方式としては、抵抗膜を用いたもの、または、超音波を用いたもの等、種々のものがある。光を用いたものとして、座標入力面外側に再帰性反射材を設け、投光部からの光を再帰反射材で反射し、その光量分布を受光部により検出する方式(光学遮光方式)が知られている(例えば、特許文献1参照)。この方式は、座標入力領域内の指等で遮光された遮光部分(領域)の方向を検出し、遮光位置、つまり、座標入力位置の座標を決定する。また、特許文献2では、座標入力装置を任意の位置に設置できるようにして使い勝手を向上するシステムが開示されている。
この種の座標入力装置を表示装置と一体にすることによって、表示装置の表示画面をタッチすることで、表示状態を制御したり、あたかも紙と鉛筆の様な関係で、指示位置の軌跡を筆跡として表示したりすることが可能となる。
表示装置としては、液晶表示装置等の各種方式のフラットパネルディスプレイやフロントプロジェクタが知られている。フラットパネルディスプレイの場合には、座標入力装置を重ねて配置すれば、このような操作環境を実現でき、スマートフォン等の携帯機器はその代表例と言える。フラットパネルディスプレイの大型化に伴い、大型のタッチパネルと組み合わせて、例えば、デジタルサイネージと言った分野でもその導入が進んでいる。
このような装置では、構成上いくつかの誤差が発生する。誤差の要因の主なものをいくつか挙げると、例えば、光を検出する受光部には、CCDラインセンサやCMOSセンサ等の受光デバイスが使用される。受光デバイスにおける受光は画素単位で行われるから、この受光した光を画素単位で量子化する際には量子化誤差が発生する。また、受光デバイスが検出した画素の番号を角度値へ変換するときには、テーブル参照あるいは多項式近似による変換等の方法を用いるが、いずれの方法でも多少の誤差を発生する。更に、装置が筐体に固定的に取り付けられる場合には、座標算出に使用される基準角度を記録する等の処理が行われる。これは、例えば、装置の組立時に、水平方向等の基準となる角度を示す画素の番号を測定して、装置内のメモリに記録する。このときに、測定の誤差等が発生する。更に、経年変化等で装置の取付位置がずれると、更に誤差が発生することも考えられる。これらのさまざまな誤差要因によって、受光デバイスが検出する角度は誤差を持つことになる。
受光デバイスの検出角度が誤差を持つと、タッチされた位置に対して、算出した画面上の座標が合わないという問題が発生する。両者の差を小さくするには、受光デバイスの画素分解能や、装置の機械的精度を高くする等して、発生する誤差を小さくする必要がある。実際には、コストや機能/性能のバランスなどを考慮した上で設計レベルが決められる。
ここで、例えば、特許文献2の図13(B)において、θ17あるいはθ18が鋭角であるときに誤差を持つと、算出される座標の誤差が大きな値となり、タッチした位置に対して実際に入力が行われる位置がずれてしまう。その結果、例えば、描画の位置がずれたり、ポインタがずれるために、オブジェクトのクリックや選択等の所望の操作ができなかったりすることがある。
本発明は上記の課題を解決するためになされたものであり、座標を精度良く入力することができる技術を提供することを目的とする。
上記の目的を達成するための本発明による座標入力装置は以下の構成を備える。即ち、
座標入力面に対して投光を行う投光部と、到来光を受光する少なくとも3個の受光部を用いて、座標入力有効領域に対する指示位置を検出する座標入力装置であって、
前記少なくとも3個の受光部の位置関係を検出する検出手段と、
前記検出手段で検出した受光部の位置関係の内、前記少なくとも3個の受光部の内の第1の組み合わせからなる2個の受光部に対する第1の位置関係に基づいて、第1の座標系を設定する第1の設定手段と、
前記少なくとも3個の受光部の内の前記第1の組み合わせとは異なる第2の組み合わせからなる2個の受光部に対する第2の位置関係に基づいて、第2の座標系を設定する第2の設定手段と、
前記受光部が検出する受光情報に基づいて、前記少なくとも3個の受光部から2個の受光部を選択する選択手段と、
前記選択手段で選択した2個の受光部が検出する受光情報に基づいて、前記第1の座標系における前記指示位置の第1の座標値を算出する第1の算出手段と、
前記選択手段で選択した2個の受光部が検出する受光情報に基づいて算出される、前記第2の座標系における前記指示位置の座標値を、前記第1の座標系と前記第2の座標系との間で座標変換を行うためのパラメータを用いて、前記第1の座標系における第2の座標値を算出する第2の算出手段と、
前記第1の座標値と前記第2の座標値を用いて、前記指示位置の座標値を決定する決定手段と
を備える。
座標入力面に対して投光を行う投光部と、到来光を受光する少なくとも3個の受光部を用いて、座標入力有効領域に対する指示位置を検出する座標入力装置であって、
前記少なくとも3個の受光部の位置関係を検出する検出手段と、
前記検出手段で検出した受光部の位置関係の内、前記少なくとも3個の受光部の内の第1の組み合わせからなる2個の受光部に対する第1の位置関係に基づいて、第1の座標系を設定する第1の設定手段と、
前記少なくとも3個の受光部の内の前記第1の組み合わせとは異なる第2の組み合わせからなる2個の受光部に対する第2の位置関係に基づいて、第2の座標系を設定する第2の設定手段と、
前記受光部が検出する受光情報に基づいて、前記少なくとも3個の受光部から2個の受光部を選択する選択手段と、
前記選択手段で選択した2個の受光部が検出する受光情報に基づいて、前記第1の座標系における前記指示位置の第1の座標値を算出する第1の算出手段と、
前記選択手段で選択した2個の受光部が検出する受光情報に基づいて算出される、前記第2の座標系における前記指示位置の座標値を、前記第1の座標系と前記第2の座標系との間で座標変換を行うためのパラメータを用いて、前記第1の座標系における第2の座標値を算出する第2の算出手段と、
前記第1の座標値と前記第2の座標値を用いて、前記指示位置の座標値を決定する決定手段と
を備える。
本発明によれば、座標を精度良く入力することができる技術を提供することができる。
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。尚、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
実施形態1の座標入力装置の概略構成を、図1を用いて説明する。
実施形態1の座標入力装置の概略構成を、図1を用いて説明する。
1Lは少なくとも2個の角度検出センサ部であるところのセンサユニット2−L1及び2−L2(第1のセンサユニット及び第2のセンサユニット)を装備する筺体であるところのセンサバーである。また、1Rは、2−R1及び2−R2(第3のセンサユニット及び第4のセンサユニット)を装備する筺体であるところのセンサバーである。
まず、平面状のホワイトボード等の表示面上に、フロントプロジェクタ等の表示装置を用いて画像が投影表示される。画像が表示される領域を表示領域6とし、これは、座標入力有効領域5の範囲内に設定される。無論、表示面はホワイトボードに限定されるものではなく、壁面等であっても良い。
次に、センサバー1L及び1R(総称する場合は、センサバー1と表記)は、ユーザにより、表示領域6の外側に設置される。センサバー1には、例えば、マグネットが内蔵されていて、ホワイトボードに貼り付けることができるようになっている。
センサバー1L及び1Rの側面にはそれぞれ、図示のように再帰反射部4L及び4R(総称する場合は、再帰反射部4と表記)が装着されている。そして、再帰反射部4L及び4Rはそれぞれ、対向する辺に設けられたセンサバー1Lあるいは1Rのセンサユニットが投光した赤外光を再帰的に反射できるように構成してある。
センサバー1Lにはセンサユニット2−L1及び2−L2が内蔵され、センサバー1Rにはセンサユニット2−R1及び2−R2が内蔵されている。センサバー1Lに内蔵される演算制御回路3Lはセンサユニット2−L1及び2−L2を制御して、その出力結果を演算処理すると共に、センサバー1Rに内蔵される演算制御回路3Rを制御する。センサバー1Rの演算制御回路3Rは、センサユニット2−R1及び2−R2を制御して、その出力結果を演算処理して、センサバー1Lの演算制御回路3Lにその結果を送信する。そして、センサバー1Lの演算制御回路3Lは、4つのセンサユニット2−L1、2−L2、2−R1及び2−R2からの出力結果を処理して、指示位置(タッチ位置)を算出し、パーソナルコンピュータ等の外部機器へ結果を出力する。
センサユニット2−L1、2−L2、2−R1及び2−R2(総称する場合は、センサユニット2と表記)はそれぞれ、投光部及び受光部を内蔵する。投光部は、4つのセンサユニットによって囲まれた座標入力面に向けて光を投光する赤外LEDや投光レンズ等の光学系により構成される。また、受光部は、到来光を受光するラインCCD、受光レンズ等の光学系で構成される。ここで、投光部及び受光部の内部構造等については、例えば、特許文献2に詳細に開示されているので、ここでは、その詳細説明は省略する。
尚、図1では、センサバー1Lの演算制御回路3Lとセンサバー1Rの演算制御回路3Rとは、例えば、無線等の通信機能を互いに搭載して、それらの通信機能を使用してデータの送受信(無線接続)を行う構成となっているが、これに限定されない。有線通信機能を使用して、通信を行うようにしても良い。
図2は演算制御回路3のブロック図である。実施形態1におけるセンサバー1Lの演算制御回路3Lとセンサバー1Rの演算制御回路3Rは、外部へのインタフェース仕様を除き、いずれも同様の回路構成であり、接続される対応するセンサユニット2の制御、演算を行う。図2は、特に、センサバー1Lの演算制御回路3Lの構成を示している。
センサユニット2−L1及び2−L2のラインCCD用のCCD制御信号は、ワンチップマイコン等で構成されるCPU61から出力され、ラインCCDのシャッタータイミングやデータの出力制御等を行う。CCD用のクロックはクロック発生回路CLK62から各センサユニット2−L1及び2−L2に送信されるとともに、ラインCCDとの同期をとって各種制御を行うためにCPU61にも入力されている。尚、センサユニット2−L1及び2−L2の赤外LED31を駆動するLED駆動信号は、CPU61から供給される。
センサユニット2−L1及び2−L2それぞれのラインCCDからの検出信号は、A/Dコンバータ63に入力され、CPU61からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ64に記憶され、角度計算に用いられる。そして、計算された角度情報から幾何学的な指示位置を算出し、外部PC等の情報処理装置にインタフェース68(例えば、USBインタフェース)を介して出力される。
先に示した通り、各センサバー1の演算制御回路3は、各々2つのセンサユニット2を制御している。仮に、センサバー1Lの演算制御回路3Lがメイン機能を果たすものとすれば、CPU61はシリアル通信部67を介して、センサバー1Rの演算制御回路3Rに制御信号を送信して、回路間の同期を行う。そして、演算制御回路3Rから、必要なデータの取得を行うことになる。
演算制御回路3L及び3R間の動作は、マスター・スレーブ制御にて動作する。実施形態1の場合、演算制御回路3Lがマスターで、演算制御回路3Rがスレーブである。尚、各演算制御回路は、マスター・スレーブのどちらにもなりうるが、ディップスイッチ(不図示)等の切替部で、CPU61のポートに切替信号を入力することで、マスター・スレーブの切替が可能となっている。
マスターであるセンサバー1Lの演算制御回路3Lからは、対向する辺に設けられたセンサバー1Rのセンサユニット2−R1及び2−R2のデータを取得するために、制御信号がスレーブの演算制御回路3Rにシリアル通信部67を介して送信される。そして、センサユニット2−R1及び2−R2で得られた角度情報が算出され、シリアル通信部67を介してマスター側の演算制御回路3Lに送信される。
尚、インタフェース68は、実施形態1の場合、マスター側の演算制御回路3Lに実装されることになる。また、66は、指示具として、赤外線を発光する専用ペン(不図示)を使用した時の赤外線受光部である。65は専用ペンからの信号をデコードするためのサブCPUである。専用ペンは、ペン先が入力面を押圧したことを検知するスイッチや、ペン筺体サイド部に種々のスイッチを有する。それらのスイッチの状態やペンの識別情報を専用ペンに設けられた赤外線発光部で送信することにより、専用ペンの操作状態を検知することが可能となる。
図3は電源投入時からの初期設定処理を示すフローチャートである。尚、この初期設定処理は、ユーザが座標入力装置の電源を投入すると、CPU61がメモリ64に記憶されているプログラムを読み出し、実行することにより実現される。
まず、投影画像である表示領域6の全領域を含む矩形状の座標入力有効領域5を形成するために、操作者によってセンサバー1が壁面に装着される。センサバー1には、例えば、マグネットが内蔵されていて、壁面に貼りつけることができるようになっている。電源投入が行われると、CPU61は、初期設定処理を開始して、入出力ポート設定、タイマ設定等の座標入力装置に係る各種初期化を行うとともに、光電変換素子に残っている余分な電荷を除去する等のラインCCDの初期化を行う(S102)。
尚、本座標入力装置は、座標入力有効領域5に対して指等の指示具による指示(タッチ)があることを検出する第1の座標検出モードと、座標入力装置の設置位置を検出するための第2の座標検出モードを有する。第2の座標検出モードでは、センサバー1Lのセンサユニット2−L1及び2−L2は、対向するセンサバー1Rのセンサユニット2−R1及び2−R2が発光した赤外LEDの赤外光を直接検出する。同様に、センサバー1Rのセンサユニット2−R1及び2−R2は、対向するセンサバー1Lのセンサユニット2−L1及び2−L2が発光した赤外LEDの赤外光を直接検出する。
次に、ラインCCDが検出する受光情報である光量の最適化を行う。ホワイトボードやや表示領域6のサイズは使用環境により様々であり、センサバー1間の距離は適宜ユーザによって設定される。従って、装着の状態によって、検出される光の強度は異なる。そのため、CPU61は、ラインCCDのシャッター開放時間や赤外LEDの点灯時間、もしくは赤外LEDの駆動電流等を、予め決められた初期値に設定する動作設定を行う(S103)。動作設定とは、対向するセンサユニット2から直接光を受ける動作の状態(第2の検出モード)であって、4つのセンサユニット2の相対的な位置関係を導出することを目的とする。
次に、CPU61は、ラインCCDの出力信号を取り込む(S104)。そして、CPU61は、センサユニットの配置をチェックすることで、光を検出できたか否かを判定する(S105)。
このとき、ラインCCDから出力される信号波形を図4(E)に示す。対向する辺に設けられた2つのセンサユニット2の投光部からの発光をそれぞれ受光するため、図4(E)のように、2つのピークが形成されている状態が正常状態と言える。ここで、光が検出できない場合は、センサユニット2の受光部の視野範囲に、対向する位置にあるセンサユニット2が位置していない可能性がある。
そこで、光が検出できない場合(S105でNO)、ユーザによるセンサバー1の配置/設置が不適な状態にあり、その旨を報知して、センサバーの再設置を促す(S106)。そして、ユーザによる再設置が完了すると、再度、S101を開始することになる。
一方、光が検出できる場合(S105でYES)、CPU61は、検出信号の波形レベルのチェックを行う(S107)。対向する位置にあるセンサユニット2の光が強すぎる場合、例えば、検出信号の波形(波形レベル)の少なくとも一部が所定の閾値を超える場合(S107でNO)、S103に戻り、例えば、露光時間をより短くする等の再設定を行う。そして、今度、S107でチェックされる検出信号波形は、より光強度が弱い状態となっているはずである。そして、検出信号波形の少なくとも一部が所定の閾値以下である場合(S107でYES)、その信号レベルが適正であると判定する。
以上の動作を、各センサユニット(実施形態1の場合、4つ)で実行し、すべての信号が最適化されると、CPU61は、センサユニット2の相対的な位置関係を算出する位置関係算出処理を実行する(S108)。
S108における、各センサユニットの位置算出方法の一例を、図5を用いて説明する。まず、前述したように、各センサユニットで得られた検出信号の波形に基づいて、図5に示すθ1からθ4を算出する。そして、まず、検出信号の波形が図4(E)のようになったとすると、2つのピークに対応する画素番号を角度値に変換する。画素番号から角度値への変換には、テーブル参照や変換式を用いる。変換式は、例えば、高次の多項式を用いると精度を確保できるが、次数等は計算能力及び精度スペック等を鑑みて決定すればよい。
ここで、5次多項式を用いる場合の例を示す。まず、装置の組み立て時等に、センサユニットの画素番号と角度との関係を測定する。その測定結果から、5次多項式近似により画素番号を角度値へ変換するための係数データを算出する。そして、係数データを装置内の不揮発性メモリ等のメモリ64に記憶する。5次多項式を用いる場合には係数データが6個必要になるので、出荷時等にこの係数データをメモリ64に記憶しておけばよい。今、5次多項式の係数をL5、L4、L3、L2、L1、L0としたとき、角度値θは
θ=((((L5*Npr+L4)*Npr+L3)*Npr+L2)*Npr+L1)*Npr+L0 (1)
と表すことができる。式(1)により2つのピークに対応するそれぞれの画素番号を角度値へ変換する。そして、変換した2つの角度値の差がそれぞれθ1からθ4となる。例えば、センサユニット2−L1の検出波形から算出した2つの角度値の差がθ1となる。
θ=((((L5*Npr+L4)*Npr+L3)*Npr+L2)*Npr+L1)*Npr+L0 (1)
と表すことができる。式(1)により2つのピークに対応するそれぞれの画素番号を角度値へ変換する。そして、変換した2つの角度値の差がそれぞれθ1からθ4となる。例えば、センサユニット2−L1の検出波形から算出した2つの角度値の差がθ1となる。
次に、図5に示したように、センサユニット2−L1を原点として、原点からセンサユニット2−R1を直線で結ぶ方向をX軸、X軸の垂直方向をY軸とする。そして、センサユニット2−R1の座標値を、(1,0)という値に設定して、センサユニットの相対的な位置関係に基づく座標系の設定を行う。このセンサユニット2−R1及びセンサユニット2−R1の組み合わせに基づく座標系を第1の座標系(図5のX軸とY軸で規定される座標系)とする。
本座標入力装置では、図5に示したように、センサユニット2−L1の光軸と、センサユニット2−L1の光軸中心とセンサユニット2−L2の光軸中心を結ぶ線分のなす角度は、所定角度(π/2[rad])となるように設計されている。この値は、基準角度情報としてメモリ64(基準角度情報記憶部)上に記憶されている。基準角度情報の記憶は、例えば、工場における装置の組み立て時等に、基準角度を測定してメモリ64上に記憶させる作業によって実行される。また、各センサユニットの光軸方向の画素番号は予め測定されており、メモリ64上に記憶されている。センサユニット2−L1の光軸方向の画素番号を角度値に変換した値をθk、センサユニット2−L1からセンサユニット2−R2を検出したピークに対応する画素番号を角度値に変換した値をθjとすると、基準角度情報を用いて、θ5は次のように算出される。
θ5=π/2−(θj−θk) (2)
次に、θ1からθ5を用いて、センサユニット2−L2及びセンサユニット2−R2の座標を算出する。ここで、センサユニット2−L2の座標を(XL,YL)、またセンサユニット2−R2の座標を(XR,YR)とすると、図5において、以下の式が成立する。
次に、θ1からθ5を用いて、センサユニット2−L2及びセンサユニット2−R2の座標を算出する。ここで、センサユニット2−L2の座標を(XL,YL)、またセンサユニット2−R2の座標を(XR,YR)とすると、図5において、以下の式が成立する。
YL=XL×tan(θ1+θ5) (3)
YL=(1−XL)×tanθ3 (4)
YR=XR×tanθ1 (5)
YR−YL=(XR−XL)×tan(θ2−θ3) (6)
式(3)及び式(4)より、
XL=tanθ3/(tan(θ1+θ5)+tanθ3) (7)
また、式(5)及び式(6)より、
XR=(YL−XL×tan(θ2−θ3))/(tanθ1−tan(θ2−θ3)) (8)
まず、式(7)により、XLを算出する。そして、算出されたXLと式(3)により、YLを算出する。次に、算出されたXL、YL、及び式(8)により、XRを算出する。そして、算出されたXRと式(5)により、YRを算出する。
YL=(1−XL)×tanθ3 (4)
YR=XR×tanθ1 (5)
YR−YL=(XR−XL)×tan(θ2−θ3) (6)
式(3)及び式(4)より、
XL=tanθ3/(tan(θ1+θ5)+tanθ3) (7)
また、式(5)及び式(6)より、
XR=(YL−XL×tan(θ2−θ3))/(tanθ1−tan(θ2−θ3)) (8)
まず、式(7)により、XLを算出する。そして、算出されたXLと式(3)により、YLを算出する。次に、算出されたXL、YL、及び式(8)により、XRを算出する。そして、算出されたXRと式(5)により、YRを算出する。
以上の手順によって、センサユニット2−L2の座標(XL,YL)及びセンサユニット2−R2の座標(XR,YR)が算出される。尚、ここで説明した各センサユニットの座標値(位置)の算出方法は、一例であって、もちろん他の式や手順による算出を行っても良い。
次に、本実施形態における座標算出では、算出される座標の精度を改善するため、図5に示したXY座標系とは別の第2の座標系を使用する。第2の座標系は、図6に示すように、センサユニット2−L2を原点として、センサユニット2−R2の座標値を(1,0)として、X軸の垂直方向をY軸とする。
後述する座標算出では、第1の座標系と第2の座標系との間で座標変換を行う。そのため、CPU61は、座標変換に必要となる変換パラメータを算出する(S109)。具体的には、図7に示すように、第1の座標系における、センサユニット2−L2とセンサユニット2−R2との間の距離Lb、及び、センサユニット2−L2とセンサユニット2−R2を結ぶ線がX軸方向となす角度θbを変換パラメータとして算出する。
Lb=SQRT((XR−XL)2+(YR−YL)2) (9)
θb=ARCTAN((YR−YL)/(XR−XL)) (10)
ここで、SQRT()は平方根を求める関数、ARCTAN()は逆正接関数である。そして、CPU61は、変換パラメータであるLb及びθbをメモリ64に保存する(S110)。
θb=ARCTAN((YR−YL)/(XR−XL)) (10)
ここで、SQRT()は平方根を求める関数、ARCTAN()は逆正接関数である。そして、CPU61は、変換パラメータであるLb及びθbをメモリ64に保存する(S110)。
S111以降では、CPU61は、センサユニット2が投光した赤外光が、対向するセンサバー1に設けられた再帰反射部4で再帰反射され、その光を自身の受光部40で検出した時の信号レベルを最適化する。上述したとおり、センサバー1の配置は一意では無く、その配置に応じた検出レベルを最適化することで、安定した信号を得ることを目的とする。設定する項目は、ラインCCDのシャッター開放時間や赤外LEDの点灯時間、もしくは赤外LEDの駆動電流の設定を含む第1の検出モードで動作設定を行う(S111)。仮に、最初の動作設定を光量が最大に得られるように設定する(S111)と、CPU61は、その時のラインCCDの出力信号を取り込む(S112)。
取り込まれた出力信号は、照明時のデータであり、図4(B)に示すような波形となる。レベルAが検出した光量の最大レベルであり、レベルBが光を検出していないレベルである。光が強すぎると、ラインCCDのダイナミックレンジの範囲を超え、出力が飽和することになるので、正確な角度を算出することが困難となる。そこで、CPU61は、検出信号の波形レベルのチェックを行う(S113)。チェックの結果、検出信号の波形が不適と判定されると(S113でNO)、S111に戻り、検出信号の波形(波形レベル)がより小さくなるように、再設定を行う。尚、ここでは、再帰反射光を検出するので、S103〜S107での処理(つまり、第2の検出モード)でセンサユニット2の投光を直接受光部40で検出する場合と比べて、格段に投光する光量が大きくなるように設定することになる。
そして、波形レベルが最適と判定される場合(S113でYES)、CPU61は、センサユニットの投光部の照明無しの状態でラインCCDの出力をA/Dコンバータ63によりA/D変換する。そして、CPU61は、この値をBase_Data[N]としてメモリ64に記憶する(S114)。これは、ラインCCDのバイアスのばらつき等を含んだデータとなり、図4(A)のレベルB付近のデータとなる。ここで、[N]はラインCCDのCCD画素番号であり、有効な入力範囲に対応する画素番号が用いられる。
次に、CPU61は、センサユニットの投光部から投光した状態での光量分布を取得する。これは、図4(B)の実線で表されたデータであり、CPU61は、Ref_Data[N]としてメモリ64に記憶する(S115)。
このようにして、全てのセンサユニットでのデータが取得されると、一連の初期設定処理が完了する。
次に、初期設定処理後の通常のサンプリング動作を示すフローチャートを図8(A)に示し、処理の内容を説明する。
CPU61は、図3の初期設定処理を実行する(S101)。その後、CPU61は、通常の取込動作(第1の検出モード)として、センサユニット2が投光した赤外光が、対向するセンサバー1に設けられた再帰反射部4で再帰反射され、その光を自身の受光部40で検出した時の信号を検出する(S201)。その時のデータは、Norm_data[N]であり、仮に、座標入力有効領域5の入力面に対するタッチ操作があって光路を遮ると、例えば、図4(C)のように、センサユニットは、画素番号Ncの辺りで光信号を検出できなくなる。
CPU61は、いずれかのセンサユニット2で、このような光の遮光部分が生成されたか否か、つまり、入力の有無を判定する(S202)。入力が無いと判定される場合(S202でNO)、再度、S201に戻り、サンプリングを繰り返すことになる。一方、入力が有ると判定される場合(S202でYES)、CPU61は、出力信号に遮光部分が生成されているセンサユニットを選択する(S203)。CPU61は、その選択したセンサユニットを用いて、遮光部分が生成されている方向(角度)を各々算出する(S204)。ここで、この投光部の照明有りの状態で得られるサンプルデータをNorm_Data[N]と定義する。
そして、CPU61は、この図4(A)〜図4(C)で示す信号を用いて、タッチ位置の方向、言い換えると、角度を算出することができる。
具体的には、CPU61は、メモリ64に記憶されているBase_Data[N]とRef_Data[N]を用いて、まずは、指示具の入力の有無、遮光部分の有無の判定を行う。まず、遮光部分を特定するために、データの変化量を各々の画素において算出し、予め設定してある閾値Vthaと比較する。
Norm_Data0[N] = Norm_Data[N] - Ref_Data[N] (11)
ここで、Norm_Data0[N]は、各画素における光量の絶対変化量であり、閾値比較により、ノイズ等による誤判定を防止し、所定量の確実な変化を検出する。そして、閾値を超えるデータが、例えば、所定数以上の連続した画素で発生した場合に、タッチ操作が有ると判定する。この処理は、差を取り比較するだけなので、短時間での演算が可能であり、入力の有無判定を高速に行うことができる。
ここで、Norm_Data0[N]は、各画素における光量の絶対変化量であり、閾値比較により、ノイズ等による誤判定を防止し、所定量の確実な変化を検出する。そして、閾値を超えるデータが、例えば、所定数以上の連続した画素で発生した場合に、タッチ操作が有ると判定する。この処理は、差を取り比較するだけなので、短時間での演算が可能であり、入力の有無判定を高速に行うことができる。
次に、より高精度に検出するために、画素データの変化の比を計算して入力点の決定を式(12)を用いて行う。
Norm_DataR[N] = Norm_Data0[N] / (Base_Data[N] - Ref_Data[N]) (12)
この画素データ(光量分布)に対して、別途設定される閾値Vthrを適用する。そして、その閾値Vthrを横切る点に対応する、光量分布中の遮光部分に対応する光量変動領域の立ち上がり部と立ち下がり部の画素番号から、両者の中央を指示具による入力に対応する画素とすることで、角度を算出する。
この画素データ(光量分布)に対して、別途設定される閾値Vthrを適用する。そして、その閾値Vthrを横切る点に対応する、光量分布中の遮光部分に対応する光量変動領域の立ち上がり部と立ち下がり部の画素番号から、両者の中央を指示具による入力に対応する画素とすることで、角度を算出する。
図4(D)は画素データの変化の比を計算した例である。今、閾値Vthrで検出すると、遮光部分の立ち上がり部分は、Ns番目の画素でレベルLsとなり閾値Vthrを超えたとする。更に、Nt番目の画素でレベルLtとなり閾値Vthrを下まわったとする。
この時、出力すべきラインCCDの画素番号Npを、立ち上がり部と立ち下がり部の画素番号の中央値として式(13)のように計算しても良いが、そうすると、ラインCCDの画素間隔が出力画素番号の分解能になる。
Np = ((Ns - 1) + Nt) / 2 (13)
そこで、より高分解能に検出するために、それぞれの画素のデータレベルとその一つ前の隣接画素のデータレベルを用い、閾値Vthrを横切る仮想の画素番号を計算する。
そこで、より高分解能に検出するために、それぞれの画素のデータレベルとその一つ前の隣接画素のデータレベルを用い、閾値Vthrを横切る仮想の画素番号を計算する。
画素NsのレベルをLs、画素Ns−1番のレベルをLs−1、そして、画素NtのレベルをLt、画素Nt−1のレベルをLt−1とすると、それぞれの仮想画素番号Nsv、Ntvは、
Nsv = Ns-1 + ( Vthr - Ls-1 ) / ( Ls - Ls-1 ) (14)
Ntv = Nt-1 + ( Vthr - Lt-1 ) / ( Lt - Lt-1 ) (15)
と計算できる。この計算式によれば、出力レベルに応じた仮想画素番号、つまり、ラインCCDの画素番号よりも細かい画素番号を取得できる。そして、これらの仮想画素番号Nsv、Ntvの仮想中心画素Npvは、式(16)で決定される。
Nsv = Ns-1 + ( Vthr - Ls-1 ) / ( Ls - Ls-1 ) (14)
Ntv = Nt-1 + ( Vthr - Lt-1 ) / ( Lt - Lt-1 ) (15)
と計算できる。この計算式によれば、出力レベルに応じた仮想画素番号、つまり、ラインCCDの画素番号よりも細かい画素番号を取得できる。そして、これらの仮想画素番号Nsv、Ntvの仮想中心画素Npvは、式(16)で決定される。
Npv = ( Nsv + Ntv ) / 2 (16)
このように、閾値Vthrを越えるデータレベルの画素の画素番号とその隣接する画素番号と、それらのデータレベルから、所定レベルの閾値Vthrを横切る仮想的な仮想画素番号を計算することで、より分解能の高い検出を実現できる。
このように、閾値Vthrを越えるデータレベルの画素の画素番号とその隣接する画素番号と、それらのデータレベルから、所定レベルの閾値Vthrを横切る仮想的な仮想画素番号を計算することで、より分解能の高い検出を実現できる。
次に、タッチによる遮光部分(影)が発生したときの、画面上における位置を表す例を図9に示す。図9(A)において、センサユニット2−L1が検出した遮光部分の角度をθ6、センサユニット2−R1が検出した遮光部分の角度をθ7とする。同様に、図9(B)において、センサユニット2−L2が検出した遮光部分の角度をθ8、センサユニット2−R2が検出した遮光部分の角度をθ9とする。ここで、θ8及びθ9は、各センサユニットとX軸に平行な方向(点線で示した方向)を基準としたときの角度となっている。
ここで、センサユニット2−L2とX軸に平行な方向は、図5に示したように、各センサユニットの相対座標を算出するとき、センサユニット2−L2からセンサユニット2−R1を検出した方向からθ3回転した方向(角度)として算出される。センサユニット2−R2においても同様で、X軸に平行な方向は、センサユニット2−R2からセンサユニット2−L1を検出した方向からθ1回転した方向(角度)として算出される。
CPU61は、この算出した角度に基づいて、相対座標系での指示位置の座標を算出する(S205)。指示位置の座標算出処理は、以下のように行われる。
図9(A)より、センサユニット2−L1で検出した角度と遮光部分の座標(x,y)について、次の関係式が成立する。
y=x×tanθ6 (17)
同様に、センサユニット2−R1で検出した角度と遮光部分の座標については、次の関係式が成立する。
同様に、センサユニット2−R1で検出した角度と遮光部分の座標については、次の関係式が成立する。
y=(1−x)×tanθ7 (18)
同様に、図9(B)より、センサユニット2−L2で検出した角度と遮光部分の座標については、次の関係式が成立する。
同様に、図9(B)より、センサユニット2−L2で検出した角度と遮光部分の座標については、次の関係式が成立する。
YL−y=(x−XL)×tanθ8 (19)
同様に、センサユニット2−R2で検出した角度と遮光部分の座標については、次の関係式が成立する。
同様に、センサユニット2−R2で検出した角度と遮光部分の座標については、次の関係式が成立する。
YR−y=(XR−x)×tanθ9 (20)
ここで、図10は、画面座標との位置関係を示す図である。センサバー1Lのセンサユニット2−L1及びセンサユニット2−L1の視野範囲は、それぞれ2つの矢印で示された間の範囲となる。従って、センサユニット2−L1及びセンサユニット2−L2の視野範囲から、指示位置Pが図10(A)のハッチング部の範囲に有る場合のみ、その指示位置を算出することが可能である。指示位置がその範囲に無い場合には、図10(B)、図10(C)、及び図10(D)に示す様に、演算に用いるセンサユニットの組み合わせを変更することで、座標入力有効領域5全域の指示位置を検出できるようになる。従って、各センサユニット2が検出した遮光方向の有無、及び遮光方向に基づき、座標算出に必要なセンサユニットを選択して、指示位置の座標を算出する。
ここで、図10は、画面座標との位置関係を示す図である。センサバー1Lのセンサユニット2−L1及びセンサユニット2−L1の視野範囲は、それぞれ2つの矢印で示された間の範囲となる。従って、センサユニット2−L1及びセンサユニット2−L2の視野範囲から、指示位置Pが図10(A)のハッチング部の範囲に有る場合のみ、その指示位置を算出することが可能である。指示位置がその範囲に無い場合には、図10(B)、図10(C)、及び図10(D)に示す様に、演算に用いるセンサユニットの組み合わせを変更することで、座標入力有効領域5全域の指示位置を検出できるようになる。従って、各センサユニット2が検出した遮光方向の有無、及び遮光方向に基づき、座標算出に必要なセンサユニットを選択して、指示位置の座標を算出する。
尚、図10(E)に示すように、センサユニット選択の境界領域近傍に指示位置Pが存在すると、この場合は、図10(A)もしくは図10(B)の状態のセンサユニットの組み合わせで、その指示位置を算出できる。具体的な構成として、例えば、センサユニット2−L2の視野範囲と、センサユニット2−R1の視野範囲は、座標入力有効領域5の対角線方向で重複するように構成される。そして、重複した領域でタッチした場合には、複数通りのセンサユニットの組み合わせで座標算出が可能となる。その場合にあっては、両者の組み合わせで算出した座標値の平均値を確定座標として出力しても良い。
まず、図10(A)の領域においては、センサユニット2−L1及びセンサユニット2−L2で遮光部分が検出される。そこで、センサユニット2−L1で成立する式(17)及びセンサユニット2−L2で成立する式(19)より、
x=(YL+XL×tanθ8)/(tanθ6+tanθ8) (21)
が成立する。この式(21)により、xを算出し、更に、この算出されたxと式(17)によりyを算出する。
x=(YL+XL×tanθ8)/(tanθ6+tanθ8) (21)
が成立する。この式(21)により、xを算出し、更に、この算出されたxと式(17)によりyを算出する。
次に、図10(B)の領域においては、センサユニット2−L1及びセンサユニット2−R1で遮光部分が検出される。そこで、センサユニット2−L1で成立する式(17)及びセンサユニット2−R1で成立する式(18)より、
x=tanθ7/(tanθ6+tanθ7) (22)
が成立する。この式(22)により、xを算出し、更に、この算出されたxと式(17)によりyを算出する。
x=tanθ7/(tanθ6+tanθ7) (22)
が成立する。この式(22)により、xを算出し、更に、この算出されたxと式(17)によりyを算出する。
図10(C)の領域においても同様に、センサユニット2−R1で成立する式(18)及びセンサユニット2−R2で成立する式(20)より、
x=(tanθ7+XR×tanθ9―YR)/(tanθ7+tanθ9)
(23)
が成立する。この式(23)によりxを算出し、更に、この算出されたxと式(18)によりyを算出する。
x=(tanθ7+XR×tanθ9―YR)/(tanθ7+tanθ9)
(23)
が成立する。この式(23)によりxを算出し、更に、この算出されたxと式(18)によりyを算出する。
図10(D)の領域においても同様に、センサユニット2−L2で成立する式(19)及びセンサユニット2−R2で成立する式(20)より、
x=(XL×tanθ8+XR×tanθ9+YL−YR)/(tanθ8+tanθ9) (24)
が成立する。この式(24)により、xを算出し、更に、この算出されたxと式(19)によりyを算出する。
x=(XL×tanθ8+XR×tanθ9+YL−YR)/(tanθ8+tanθ9) (24)
が成立する。この式(24)により、xを算出し、更に、この算出されたxと式(19)によりyを算出する。
ここで、前述したように、センサユニット2−L2においてX軸に平行な方向は、図5に示したように、センサユニット2−L2からセンサユニット2−R1を検出した方向からθ3回転した方向(角度)として算出されている。センサユニット2−R2においても同様に、X軸に平行な方向は、センサユニット2−R2からセンサユニット2−L1を検出した方向からθ1回転した方向(角度)として算出される。
ここで、実際の座標入力装置では、様々な要因で誤差が発生する。誤差の要因の主なものをいくつか挙げると、例えば、ラインCCDが検出する光を画素単位に量子化するときの量子化誤差が挙げられる。また、ラインCCDが検出した画素番号を角度へ変換するときに、テーブル参照あるいは多項式近似による変換を行うが、このときに誤差が発生する。また、上述の基準角度情報は、例えば、工場での装置の組立時等に測定が行われるが、このときにも測定誤差が発生する。更に経年変化等で、例えば、センサユニットやその内部の光学系等の設置位置がずれる等すると、更に誤差が発生することになる。これらの様々な誤差要因のために、算出される角度値は誤差を含むことになる。
センサユニットの角度特性の誤差によりθ1あるいはθ3が誤差を含んでいると、X軸に平行であるはずの方向(図5の点線が示す方向)がずれることになる。図9に示したように、θ8及びθ9はX軸に平行な方向を基準として算出されるので、θ1、θ3の角度誤差は、そのままθ8、θ9の誤差として加算されることになる。
更に、θ8とθ9が鋭角となり小さな値になると、相対的にθ8、θ9に含まれる誤差成分であるθ1、θ3の角度誤差の比率が大きくなる。ここで、式(24)においては、(tanθ8+tanθ9)が除算の分母となっているため、θ8とθ9が小さな値になる程、算出結果に現れる誤差が所定値より大きいものとなる。従って、座標入力有効領域5の下辺に近い領域(座標入力有効領域内の所定領域)において、特に、誤差が大きくなるという傾向がある。本実施形態では、この問題を改善するため、図10(D)の領域においては、別の方法で座標算出を行う。
まず、第2の座標系で検出した角度値を用いて座標値を算出する。図7より、
y=−x×tanθ10 (25)
y=−(1−x)×tanθ11 (26)
式(25)及び式(26)より、
x=tanθ11/(tanθ10+tanθ11) (27)
が成立する。この式(27)により、xを算出し、その算出されたxと式(25)によりyを算出する。
y=−x×tanθ10 (25)
y=−(1−x)×tanθ11 (26)
式(25)及び式(26)より、
x=tanθ11/(tanθ10+tanθ11) (27)
が成立する。この式(27)により、xを算出し、その算出されたxと式(25)によりyを算出する。
次に、算出された第2の座標系の座標値を第1の座標系の座標値へ変換する。第2の座標系の座標値を(x,y)、第1の座標系の座標値を(x’,y’)とすると、S109で算出した変換パラメータ(距離Lb及び回転角θb)を用いて、次式のように、座標変換を行うことができる。尚、この座標値の変換には、座標値の回転、座標値の所定方向への拡大、座標値の平行移動(オフセット)の少なくとも1つを含んでいる。そのため、座標値を回転することで座標値を変換する場合には、変換パラメータはその回転処理における回転角となる。また、座標値を所定方向へ拡大することで座標値を変換する場合には、変換パラメータはその拡大処理における拡大率となる。更に、座標値を平行移動(オフセット)することで座標値を変換する場合には、変換パラメータは、そのオフセット処理におけるオフセット量となる。
x’=(x×cosθb−y×sinθb)×Lb+XL (28)
y’=(x×sinθb−y×cosθb)×Lb+YL (29)
図10(D)の領域においては、式(28)及び式(29)を用いて算出した(x’、y’)を座標算出結果として採用する。
y’=(x×sinθb−y×cosθb)×Lb+YL (29)
図10(D)の領域においては、式(28)及び式(29)を用いて算出した(x’、y’)を座標算出結果として採用する。
式(27)におけるθ10及びθ11は、前述した装置の設置位置を検出する処理で対向するセンサユニットからの光を検出した方向を基準として角度が計測される。式(24)のように、θ1やθ3の角度誤差が加算されることがないため、角度誤差を小さく抑えることができる。
尚、式(28)及び式(29)においては、θb及びLb等の誤差が座標算出結果の誤差として現れることになる。しかし、式(24)を用いた座標算出結果と比べると、発生する誤差の大きさははるかに小さくなるので、タッチ位置に対して算出される座標の精度が改善される。また、本実施形態では、センサユニットが4個で構成されるシステムを例として説明を行っているが、センサユニットを3個以上備えていれば、そのうち2個のセンサユニットを選択する組み合わせが複数存在する。従って、これらの複数の組み合わせによって、複数の座標系を設定することができるので、少なくとも3個のセンサユニットを構成すれば、本実施形態を適用することができる。
以上の処理によって、CPU61は、指示位置の相対座標系における指示位置の相対座標値(x,y)を算出し、その算出した指示位置の相対座標値を表示座標系の座標値に変換する(S206)。この算出した指示位置の相対座標値を表示座標系の座標値へ変換する方法としては、射影変換等の手法がある。これらは一般的な座標変換手法であるので、ここでは詳細な説明は省略する。また、この座標変換に必要なパラメータの取得するための処理については後述する。
そして、CPU61は、パーソナルコンピュータ等の外部機器に、変換した座標値を出力(送信)する(S207)。
尚、この際に、入力面をタッチしている状態であるか否かを示すタッチダウン信号/タッチアップ信号をあわせて出力しても良い。この種の座標入力装置にあっては、タッチ面をタッチすることで、光路は100%遮断されることになるが、タッチ状態から少しずつ浮かせることによって、少しずつ光が透過するようになる。従って、光がどの程度遮られたかを演算することで、タッチ状態にあるのか、タッチはしてないが、光路を遮っている(角度演算は可能であり、その場合でもその位置を演算可能)状態であるのかを、閾値を設定することで判定できる。
次に、指示位置の相対座標系における相対座標値を表示座標系の座標値に変換するときに必要となるパラメータを取得するための処理について説明する。
表示座標系は、図1に示したように、d1を原点としてdX軸、dY軸からなる線形2次元座標系である。座標変換のためのパラメータを設定するためには、相対座標系と表示座標系の位置関係の情報(相関情報)が必要となる。必要な情報を得るためには、キャリブレーションと呼ばれる処理を行う。
通常、キャリブレーションを実現するためには、表示制御を行っているパーソナルコンピュータ(PC)に、専用のアプリケーションがインストールされる。アプリケーションを起動すると、表示画面には十字クロス等の指標が表示され、ユーザにその指標位置をタッチするように促す。その動作を異なる位置で所定回数繰り返すことで得られる相対座標系の座標値と、指標が表示されている位置の表示座標系の座標値とが一致するように、座標系の変換が行われる。
実施形態1の座標入力装置にあっては、アプリケーションソフトを使って指標の位置を表示させてタッチさせるのではなく、表示画面の四隅をタッチすることで、キャリブレーションを実現する。このように構成することで、その場にあるPCに接続することで、特別なソフトをインストールすることなく直ぐに使えると言う優れた効果が得られる。
このキャリブレーションモードへの遷移は、例えば、座標入力装置に備えられたスイッチ等の切替部の操作により実現する。キャリブレーションモードのフローチャートを図8(B)に示し、処理の内容を説明する。
キャリブレーションモードは、センサバー1を装着した直後、あるいは設置完了後であっても、何らかの拍子でディスプレイの表示位置がずれてしまった場合に行われる。キャリブレーションモードに遷移すると、先ずは、CPU61は、初期設定処理を行う(S101)。これは、センサバーが使用中に設置状態がずれた場合を想定して、光出力の最適化、センサの位置ずれを補正することになる。
そして、ユーザによる表示領域6の4隅のタッチ操作を行わせるために、S201及びS202を経て、CPU61は、そのひとつの位置のタッチが行われたかを判定する。S203及びS204で、CPU61は、必要な角度情報を算出する。その後、CPU61は、データの取得が完了したことを報知する(S301)。この報知は、例えば、完了を示すビープ音を出力する。
次に、CPU61は、表示領域6の4隅の全ての情報の取得が完了したか否かを判定する(S302)。取得が完了していない場合(S302でNO)、S201に戻る。一方、取得が完了している場合(S302でYES)、CPU61は、相対座標系から表示座標系へと変換するためのパラメータを算出する(S303)。相対座標系と表示座標系において対応する4か所の座標値がそれぞれ取得されているので、例えば、射影変換等の手法により座標変換が可能であり、必要なパラメータ(変換行列の要素の値等)を算出することができる。
以上の処理で、キャリブレーションモードを終了し、通常動作に戻る(図8(A)のS201に進む)。キャリブレーションモードにおいて算出されたパラメータは、S206における座標変換で使用されることになる。
上述のキャリブレーション処理によって、装置の設置位置に対する表示画面の位置を対応付けることができるので、このとき、表示画面が装置の有効範囲の中にあるかどうかを検査することができる。例えば、有効範囲の検査を行った結果、表示画面が有効範囲から外れていると判定した場合に、ユーザに対して、例えば、ビープ音や音声等によって表示画面の再調整を促す通知をする処理を行ってもよい。
あるいは、接続されたPCに画面調整を行うためのドライバソフトウェアを予め動作させておく方法もある。この方法では、キャリブレーション処理によって表示画面が有効範囲から外れていると判定したとき、ドライバソフトウェアに対して、有効範囲に対する表示画面のずれ量を示す情報を送信する。ドライバソフトウェアはその情報を受信し、表示画面の調整を自動的に行うことができる。
以上説明したように、実施形態1によれば、タッチ位置に対して算出される座標の精度を改善することができる。
<実施形態2>
実施形態1では、図10(A)〜図10(D)で示すそれぞれの領域に対して、演算に用いるセンサユニットの組み合わせを変更してタッチ座標の算出を行うと構成としている。このとき、座標入力有効領域5の下辺に近い領域において、特に、誤差が所定値より大きくなるという傾向があるために、図10(D)で示す領域において別の方法で座標算出を行うことで、タッチ位置に対して算出される座標の精度を改善している。
実施形態1では、図10(A)〜図10(D)で示すそれぞれの領域に対して、演算に用いるセンサユニットの組み合わせを変更してタッチ座標の算出を行うと構成としている。このとき、座標入力有効領域5の下辺に近い領域において、特に、誤差が所定値より大きくなるという傾向があるために、図10(D)で示す領域において別の方法で座標算出を行うことで、タッチ位置に対して算出される座標の精度を改善している。
これに対し、実施形態2では、図8(A)のS205における、図10(D)の領域に対する座標算出処理の他の例について説明する。装置の構成等については実施形態1と同様なので説明は省略する。
図10(D)で示す領域において、まず、第1の座標系における座標算出を行う。実施形態1で説明したように、式(24)により、xを算出し、更に、この算出されたxと式(19)によりyを算出する。算出された座標値を(x1,y1)とする。
次に、式(25)から式(29)を用いて、第2の座標系における座標算出を行う。算出された座標値を、ここでは(x2,y2)とする。次に、y2の値により比率を決めて、(x1,y1)と(x2,y2)との平均を計算する。
ここで、平均計算の比率を決定するために、2つの基準値を用いる。この基準値は、図3のS108で予め算出される。2つの基準値をY0、Y1とすると、例えば、次のように算出される。
Y0=MIN(YL,YR)×0.6 (30)
Y1=MIN(YL,YR)×0.8 (31)
ここで、MIN()は引数の中の最小値を返す関数である。Y0、Y1の位置は、例えば、図11のようになる。この図では、YR<YLであるので、Y0、Y1はYRの値に対して、それぞれ0.6倍、0.8倍された値となる。ここで、0.6や0.8等の値は、平均計算を行う範囲を考慮した上で、予め固定値として定められている。平均計算した座標値を(x3,y3)とすると、y2とY0、Y1の大小関係によって、(x3,y3)を次のように算出する。
Y1=MIN(YL,YR)×0.8 (31)
ここで、MIN()は引数の中の最小値を返す関数である。Y0、Y1の位置は、例えば、図11のようになる。この図では、YR<YLであるので、Y0、Y1はYRの値に対して、それぞれ0.6倍、0.8倍された値となる。ここで、0.6や0.8等の値は、平均計算を行う範囲を考慮した上で、予め固定値として定められている。平均計算した座標値を(x3,y3)とすると、y2とY0、Y1の大小関係によって、(x3,y3)を次のように算出する。
y2≦Y0のとき、
x3=x1 (32)
y3=y1 (33)
Y0<y2<Y1のとき、
x3=((y1−Y0)×x2+(Y1−y1)×x1)/(Y1−Y0))
(34)
y3=((y1−Y0)×y2+(Y1−y1)×y1)/(Y1−Y0))
(35)
Y1≦y2のとき、
x3=x2 (36)
y3=y2 (37)
図10(D)に示す領域においては、式(32)から式(37)を用いて算出した(x3、y3)を座標算出結果として採用する。この算出方法では、まず、Y1≦y2の領域は、座標入力有効領域5の下辺に近い領域であり、座標値の検出誤差が特に大きくなるため、(x2,y2)が採用される。一方、y2≦Y0の領域では、(x1,y1)が採用される。その間の、Y0<y2<Y1の領域では、y2の位置に応じて(x1,y1)と(x2,y2)とが加重平均される。ここでは、領域の境界を滑らかに接続するために、Y0<y2<Y1の領域において両者を加重平均するようにしている。他の例として、例えば、領域の境界付近において(x1,y1)と(x2,y2)との差が十分小さいような場合には、加重平均を行う領域を設けないようにしても良い。その場合は、一つの境界を定めて(x1,y1)と(x2,y2)のどちらかを選択するという処理となり、式(34)、式(35)を使用しないので演算を簡略化することができる。
x3=x1 (32)
y3=y1 (33)
Y0<y2<Y1のとき、
x3=((y1−Y0)×x2+(Y1−y1)×x1)/(Y1−Y0))
(34)
y3=((y1−Y0)×y2+(Y1−y1)×y1)/(Y1−Y0))
(35)
Y1≦y2のとき、
x3=x2 (36)
y3=y2 (37)
図10(D)に示す領域においては、式(32)から式(37)を用いて算出した(x3、y3)を座標算出結果として採用する。この算出方法では、まず、Y1≦y2の領域は、座標入力有効領域5の下辺に近い領域であり、座標値の検出誤差が特に大きくなるため、(x2,y2)が採用される。一方、y2≦Y0の領域では、(x1,y1)が採用される。その間の、Y0<y2<Y1の領域では、y2の位置に応じて(x1,y1)と(x2,y2)とが加重平均される。ここでは、領域の境界を滑らかに接続するために、Y0<y2<Y1の領域において両者を加重平均するようにしている。他の例として、例えば、領域の境界付近において(x1,y1)と(x2,y2)との差が十分小さいような場合には、加重平均を行う領域を設けないようにしても良い。その場合は、一つの境界を定めて(x1,y1)と(x2,y2)のどちらかを選択するという処理となり、式(34)、式(35)を使用しないので演算を簡略化することができる。
尚、本実施形態においては、y2とY0、Y1との大小関係による場合分けを行っているが、y2に限らず、例えば、y0を用いたり、y0とy2を平均した値を用いても良い。あるいは、更に、xの値を用いることで、x方向で場合分けを行うこともできる。誤差の発生の傾向を考慮した上で、領域の分け方を決定すれば良い。
以上説明したように、実施形態2によれば、算出されたy座標を検査することで、タッチ位置の座標入力有効領域5の下辺からの距離に応じた座標算出を行う。その結果、座標算出誤差が、特に、他の領域に比べて大きくなる下辺に近い領域における座標の精度を改善することができる。
<実施形態3>
上述の実施形態においては、センサユニットは、投光部に赤外LEDを内蔵し、受光部にラインCCDセンサを内蔵する構成としているが、これに限定されない。例えば、他の形態として、撮像装置であるカメラを使用するシステムについても上記実施形態を適用することができる。
上述の実施形態においては、センサユニットは、投光部に赤外LEDを内蔵し、受光部にラインCCDセンサを内蔵する構成としているが、これに限定されない。例えば、他の形態として、撮像装置であるカメラを使用するシステムについても上記実施形態を適用することができる。
この場合、図1を例にすると、センサユニット2−L1、2−L2、2−R1及び2−R2にはカメラが内蔵されている。各カメラは、座標入力有効領域5の方向の画像を撮像し、他のカメラの位置する角度を、マッチング等の画像認識処理を行うことで検出する。相互に検出した角度を用いて、実施形態1と、同様に、座標入力装置が設置された位置を検出することができる。
尚、カメラ方式におけるタッチ検出は、画像認識処理で指等の入力を検出する方法や、ペンを用いる方法がある。ペンを用いる方法では、例えば、ペン先にLEDを内蔵し、タッチ時にLEDを発光させ、その光をカメラで検出することで入力の角度を検出する。そして、検出した角度に基づいてタッチ位置に対する座標値を算出することができる。
尚、本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
尚、本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1:センサバー、2:センサユニット、3:演算制御回路、4:再帰反射部、5:座標入力有効領域、6:表示領域
Claims (10)
- 座標入力面に対して投光を行う投光部と、到来光を受光する少なくとも3個の受光部を用いて、座標入力有効領域に対する指示位置を検出する座標入力装置であって、
前記少なくとも3個の受光部の位置関係を検出する検出手段と、
前記検出手段で検出した受光部の位置関係の内、前記少なくとも3個の受光部の内の第1の組み合わせからなる2個の受光部に対する第1の位置関係に基づいて、第1の座標系を設定する第1の設定手段と、
前記少なくとも3個の受光部の内の前記第1の組み合わせとは異なる第2の組み合わせからなる2個の受光部に対する第2の位置関係に基づいて、第2の座標系を設定する第2の設定手段と、
前記受光部が検出する受光情報に基づいて、前記少なくとも3個の受光部から2個の受光部を選択する選択手段と、
前記選択手段で選択した2個の受光部が検出する受光情報に基づいて、前記第1の座標系における前記指示位置の第1の座標値を算出する第1の算出手段と、
前記選択手段で選択した2個の受光部が検出する受光情報に基づいて算出される、前記第2の座標系における前記指示位置の座標値を、前記第1の座標系と前記第2の座標系との間で座標変換を行うためのパラメータを用いて、前記第1の座標系における第2の座標値を算出する第2の算出手段と、
前記第1の座標値と前記第2の座標値を用いて、前記指示位置の座標値を決定する決定手段と
を備えることを特徴とする座標入力装置。 - 前記第1の座標系を規定する2つの軸の内の一方は、前記第1の組み合わせからなる2個の受光部を直線で結ぶ方向に設定され、
前記第2の座標系を規定する2つの軸方向の内の一方は、前記第2の組み合わせからなる2個の受光部を直線で結ぶ方向に設定される
ことを特徴とする請求項1に記載の座標入力装置。 - 前記決定手段は、前記選択手段が選択した前記2個の受光部の組み合わせに基づいて、前記第1の座標値と前記第2の座標値の内、どちらかを選択する
ことを特徴とする請求項1または請求項2に記載の座標入力装置。 - 前記決定手段は、前記第1の座標値が示す位置が前記座標入力有効領域の所定領域に含まれるか否かに基づいて、前記第1の座標値と前記第2の座標値の内、どちらかを選択する
ことを特徴とする請求項1または請求項2に記載の座標入力装置。 - 前記決定手段は、前記第1の座標値と前記第2の座標値に基づいて、前記第1の座標値と前記第2の座標値を平均する比率を決定して、その決定した比率に基づいて平均計算した座標値を、前記指示位置の座標値として決定する
ことを特徴とする請求項1または請求項2に記載の座標入力装置。 - 前記パラメータは、座標値を回転することで座標値を変換する回転処理における回転角、座標値を所定方向へ拡大することで座標値を変換する拡大処理における拡大率、座標値をオフセットすることで座標値を変換するオフセット処理におけるオフセット量の少なくとも1つを含む
ことを特徴とする請求項1乃至請求項5のいずれか1項に記載の座標入力装置。 - 光を再帰的に反射する再帰反射手段を更に備え、
前記検出手段は、前記再帰反射手段を介して反射される光に対する前記少なくとも3個の受光部のそれぞれの受光情報に基づいて、前記少なくとも3個の受光部の位置関係を検出する
ことを特徴とする請求項1乃至6のいずれか1項に記載の座標入力装置。 - 前記少なくとも3個の受光部における、第1の受光部の光軸と、前記第1の受光部の光軸中心と第2の受光部の光軸中心を結ぶ線分のなす角度を示す基準角度情報を記憶する記憶手段を更に備え、
前記検出手段は、前記第1の受光部、前記第2の受光部、及び第3の受光部のそれぞれの受光情報と、前記記憶手段に記憶される基準角度情報とに基づいて、前記少なくとも3個の受光部の位置関係を検出する
ことを特徴とする請求項1乃至7のいずれか1項に記載の座標入力装置。 - 座標入力面に対して投光を行う投光部と、到来光を受光する少なくとも3個の受光部を用いて、座標入力有効領域に対する指示位置を検出する座標入力装置の制御方法であって、
前記少なくとも3個の受光部の位置関係を検出する検出工程と、
前記検出工程で検出した受光部の位置関係の内、前記少なくとも3個の受光部の内の第1の組み合わせからなる2個の受光部に対する第1の位置関係に基づいて、第1の座標系を設定する第1の設定工程と、
前記少なくとも3個の受光部の内の前記第1の組み合わせとは異なる第2の組み合わせからなる2個の受光部に対する第2の位置関係に基づいて、第2の座標系を設定する第2の設定工程と、
前記受光部が検出する受光情報に基づいて、前記少なくとも3個の受光部から2個の受光部を選択する選択工程と、
前記選択工程で選択した2個の受光部が検出する受光情報に基づいて、前記第1の座標系における前記指示位置の第1の座標値を算出する第1の算出工程と、
前記選択工程で選択した2個の受光部が検出する受光情報に基づいて算出される、前記第2の座標系における前記指示位置の座標値を、前記第1の座標系と前記第2の座標系との間で座標変換を行うためのパラメータを用いて、前記第1の座標系における第2の座標値を算出する第2の算出工程と、
前記第1の座標値と前記第2の座標値を用いて、前記指示位置の座標値を決定する決定工程と
を備えることを特徴とする座標入力装置の制御方法。 - コンピュータを、請求項1乃至8のいずれか1項に記載の座標入力装置の各手段として機能させるための、または請求項9に記載の制御方法をコンピュータに実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015021490A JP2016143400A (ja) | 2015-02-05 | 2015-02-05 | 座標入力装置及びその制御方法 |
US15/012,952 US9958989B2 (en) | 2015-02-05 | 2016-02-02 | Coordinate input apparatus, control method thereof, and non-transitory computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015021490A JP2016143400A (ja) | 2015-02-05 | 2015-02-05 | 座標入力装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016143400A true JP2016143400A (ja) | 2016-08-08 |
Family
ID=56565417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015021490A Pending JP2016143400A (ja) | 2015-02-05 | 2015-02-05 | 座標入力装置及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9958989B2 (ja) |
JP (1) | JP2016143400A (ja) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0493894A (ja) * | 1990-08-03 | 1992-03-26 | Canon Inc | 文字処理方法および装置 |
JP3952896B2 (ja) * | 2002-07-30 | 2007-08-01 | キヤノン株式会社 | 座標入力装置及びその制御方法、プログラム |
JP2004272353A (ja) | 2003-03-05 | 2004-09-30 | Canon Inc | 座標入力装置 |
JP2006121240A (ja) * | 2004-10-20 | 2006-05-11 | Sharp Corp | 画像投射方法、プロジェクタ、及びコンピュータプログラム |
JP5560771B2 (ja) * | 2010-02-26 | 2014-07-30 | セイコーエプソン株式会社 | 画像補正装置、画像表示システム、画像補正方法 |
JP5973849B2 (ja) * | 2012-03-08 | 2016-08-23 | キヤノン株式会社 | 座標入力装置および座標入力装置に用いられるセンサバー |
JP5875445B2 (ja) * | 2012-03-30 | 2016-03-02 | キヤノン株式会社 | 座標入力装置 |
JP6021531B2 (ja) | 2012-08-31 | 2016-11-09 | キヤノン株式会社 | 座標入力装置及びその制御方法、プログラム |
CN104808836B (zh) * | 2014-01-23 | 2017-12-01 | 京瓷办公信息***株式会社 | 电子设备及操作支援方法 |
-
2015
- 2015-02-05 JP JP2015021490A patent/JP2016143400A/ja active Pending
-
2016
- 2016-02-02 US US15/012,952 patent/US9958989B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9958989B2 (en) | 2018-05-01 |
US20160231867A1 (en) | 2016-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5973849B2 (ja) | 座標入力装置および座標入力装置に用いられるセンサバー | |
US9335865B2 (en) | Coordinate input apparatus, control method therefor, and computer-readable medium | |
US8941622B2 (en) | Coordinate input apparatus | |
US8791925B2 (en) | Coordinate input apparatus, control method therefor and program | |
JP6031293B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
JP6218590B2 (ja) | 座標入力装置及びその制御方法 | |
JP2016143400A (ja) | 座標入力装置及びその制御方法 | |
JP6334980B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
JP2015225466A (ja) | 座標入力装置、その制御方法、及びプログラム | |
JP5950767B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
US20170052642A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP5969794B2 (ja) | 座標入力装置 | |
JP2007072506A (ja) | 座標入力装置 | |
JP2015230562A (ja) | 座標入力装置及びその制御方法、プログラム | |
JP2017016531A (ja) | 座標入力装置、その制御方法及びプログラム | |
JP2016018282A (ja) | 座標入力装置、その制御方法およびプログラム | |
JP2017045336A (ja) | 入力装置及び検出方法 | |
JP5738112B2 (ja) | 座標入力装置及びその制御方法、プログラム | |
JP2017041078A (ja) | 座標入力装置、情報処理方法及びプログラム | |
JP2007072589A (ja) | 座標入力装置 | |
JP2016058046A (ja) | 座標入力装置、座標入力装置の制御方法、プログラム、座標入力システム、座標入力システムの制御方法 | |
JP2005071022A (ja) | 座標入力装置、座標入力方法 | |
JP2006065654A (ja) | 座標入力装置、座標入力装置の制御方法、制御プログラム及び記憶媒体 | |
JP2015207063A (ja) | 座標入力装置、座標入力装置の制御方法およびプログラム | |
JP2017045152A (ja) | 座標入力装置、情報処理方法及びプログラム |