(57)【特許請求の範囲】
【請求項１】
第１オブジェクトとの接触位置を検出可能なディスプレイと、
少なくともハードウェアに起因する誤差に関する第１データであって、前記第１オブジェクトと前記ディスプレイとが接触する第１位置と、前記第１オブジェクトと前記ディスプレイとの前記第１位置での接触に応じて取得される第１位置情報にしたがって前記ディスプレイが描画する第２位置との誤差に関する第１データを記憶する記憶手段と、
第２オブジェクトと前記ディスプレイとの接触状態の違いに関する第２データであって、前記第２オブジェクトと前記ディスプレイとの第３位置での接触に応じて取得される第２位置情報にしたがって前記ディスプレイが描画する第４位置を決定するために用いられる第２データを生成する生成手段と、
前記ディスプレイが検出する接触位置を、前記第１データを用いて補正する第１補正手段と、
前記ディスプレイが検出する接触位置であって前記第１補正手段により補正される接触位置を、前記第２データを用いて補正する第２補正手段と、
を有する電子機器。
【請求項２】
前記ディスプレイの向きを判別する第１判別手段をさらに具備し、
前記生成手段は、前記ディスプレイの複数の向きに対応する複数の第２データを生成し、
前記第２補正手段は、前記ディスプレイの向きに応じて、前記複数の第２データのうちの１つを用いる請求項１記載の電子機器。
【請求項３】
前記電子機器の動作状況を判別する第２判別手段をさらに有し、
前記生成手段は、前記電子機器の複数の動作状況に対応する複数の第２データを生成し、
前記第２補正手段は、前記動作状況に応じて、前記複数の第２データのうちの１つを用いる請求項１記載の電子機器。
【請求項４】
前記生成手段は、前記電子機器を使用する第１ユーザと第２ユーザに応じて前記複数の第２データを生成し、
前記第２判別手段は、前記動作状況として前記電子機器を使用するユーザが、前記第１ユーザあるいは前記第２ユーザの何れであるか判別する請求項３記載の電子機器。
【請求項５】
前記生成手段は、前記電子機器で実行される第１アプリケーションと第２アプリケーションに応じて前記複数の第２データを生成し、
前記第２判別手段は、前記動作状況として前記電子機器で実行されるアプリケーションが、前記第１アプリケーションあるいは前記第２アプリケーションの何れであるか判別する請求項３記載の電子機器。
【請求項６】
第１オブジェクトとの接触位置を検出可能なディスプレイを有する電子機器の前記接触位置の補正方法であって、
少なくともハードウェアに起因する誤差に関する第１データであって、前記第１オブジェクトと前記ディスプレイとが接触する第１位置と、前記第１オブジェクトと前記ディスプレイとの前記第１位置での接触に応じて取得される第１位置情報にしたがって前記ディスプレイが描画する第２位置との誤差に関する第１データを記録しておき、
第２オブジェクトと前記ディスプレイとの接触状態の違いに関する第２データであって、前記第２オブジェクトと前記ディスプレイとの第３位置での接触に応じて取得される第２位置情報にしたがって前記ディスプレイが描画する第４位置を決定するために用いられる第２データを生成し、
前記ディスプレイが検出する接触位置を、前記第１データを用いて補正し、
前記ディスプレイが検出する接触位置であって前記第１データを用いて補正される接触位置を、前記第２データを用いて補正する補正方法。
【請求項７】
前記ディスプレイの向きを判別し、
前記ディスプレイの複数の向きに対応する複数の第２データを生成し、
前記ディスプレイの向きに応じて、前記複数の第２データのうちの１つを用いて前記接触位置を補正する請求項６記載の補正方法。
【請求項８】
前記電子機器の動作状況を判別し、
前記電子機器の複数の動作状況に対応する複数の第２データを生成し、
前記動作状況に応じて、前記複数の第２データのうちの１つを用いて前記接触位置を補正する請求項６記載の補正方法。
【請求項９】
前記電子機器を使用する第１ユーザと第２ユーザに応じて前記複数の第２データを生成し、
前記動作状況として前記電子機器を使用するユーザが、前記第１ユーザあるいは前記第２ユーザの何れであるか判別する請求項８記載の補正方法。
【請求項１０】
前記電子機器で実行される第１アプリケーションと第２アプリケーションに応じて前記複数の第２データを生成し、
前記動作状況として前記電子機器で実行されるアプリケーションが、前記第１アプリケーションあるいは前記第２アプリケーションの何れであるか判別する請求項８記載の補正方法。
【請求項１１】
第１オブジェクトとの接触位置を検出可能なディスプレイを有するコンピュータを、
少なくともハードウェアに起因する誤差に関する第１データであって、前記第１オブジェクトと前記ディスプレイとが接触する第１位置と、前記第１オブジェクトと前記ディスプレイとの前記第１位置での接触に応じて取得される第１位置情報にしたがって前記ディスプレイが描画する第２位置との誤差に関する第１データを記憶させる記憶手段と、
第２オブジェクトと前記ディスプレイとの接触状態の違いに関する第２データであって、前記第２オブジェクトと前記ディスプレイとの第３位置での接触に応じて取得される第２位置情報にしたがって前記ディスプレイが描画する第４位置を決定するために用いられる第２データを生成する生成手段と、
前記ディスプレイが検出する接触位置を、前記第１データを用いて補正する第１補正手段と、
前記ディスプレイが検出する接触位置であって前記第１補正手段により補正される接触位置を、前記第２データを用いて補正する第２補正手段、
として機能させるためのプログラム。
【請求項１２】
前記コンピュータを、
さらに前記ディスプレイの向きを判別する第１判別手段として機能させ、
前記生成手段は、前記ディスプレイの複数の向きに対応する複数の第２データを生成し、
前記第２補正手段は、前記ディスプレイの向きに応じて、前記複数の第２データのうちの１つを用いるように機能させるための請求項１１記載のプログラム。
【請求項１３】
前記コンピュータを、
さらに前記コンピュータの動作状況を判別する第２判別手段として機能させ、
前記生成手段は、前記コンピュータの複数の動作状況に対応する複数の第２データを生成し、
前記第２補正手段は、前記動作状況に応じて、前記複数の第２データのうちの１つを用いるように機能させるための請求項１１記載のプログラム。
【請求項１４】
前記生成手段は、前記コンピュータを使用する第１ユーザと第２ユーザに応じて前記複数の第２データを生成し、
前記第２判別手段は、前記動作状況として前記コンピュータを使用するユーザが、前記第１ユーザあるいは前記第２ユーザの何れであるか判別するように機能させるための請求項１３記載のプログラム。
【請求項１５】
前記生成手段は、前記コンピュータで実行される第１アプリケーションと第２アプリケーションに応じて前記複数の第２データを生成し、
前記第２判別手段は、前記動作状況として前記コンピュータで実行されるアプリケーションが、前記第１アプリケーションあるいは前記第２アプリケーションの何れであるか判別するように機能させるための請求項１３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ディスプレイ上のペン入力に関する。
【背景技術】
【０００２】
電磁誘導式電子ペンによる入力デバイス（デジタイザ）を搭載する電子機器では、実際にユーザがペンを用いて指示した点と機器により認識される点とで位置ズレ（誤差）が生じる場合がある。位置ズレは、たとえばセンサの組み込みズレや電磁誘導式電子ペンの特性など、ハードウェアの実装に起因して発生してしまう。このような状況において、ユーザの指示した点と端末で認識される点とのズレを解消する方法が求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０６−１６１６６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、ペン先と機器側で認識される座標の位置ズレ（誤差）を補正するために位置補正処理（キャリブレーション処理）を行うことが多い。位置ズレが生じる要因は複数あり、センサの組み込み誤差による位置ズレといったハードウェア起因のものと、電子ペンの傾け方やディスプレイのガラス面の厚みによる視差といった、ユーザの使い方の違いによって生じるものがある。【０００５】
従来のキャリブレーション処理では、それらを区別することなく一定の補正処理を行うため、電子機器を回転させて入力デバイス（デジタイザ）の方向を変える、あるいはペンの傾きを変えるといった、ペン入力する状態が変化してしまうと、適正な位置補正ができなかった。このため、キャリブレーション処理を行っても、ユーザの指示した点と機器側で認識される点とが一致しないことがあった。【０００６】
本発明が解決しようとする課題は、ハードウェアに起因する誤差と入力状態の違いに起因する誤差とを適正に補正することができる電子機器、補正方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、電子機器は、第１オブジェクトとの接触位置を検出可能なディスプレイと、記録手段と、生成手段と、第１補正と、第２補正手段とを有する。記録手段は、少なくともハードウェアに起因する誤差に関する第１データであって、前記第１オブジェクトと前記ディスプレイとが接触する第１位置と、前記第１オブジェクトと前記ディスプレイとの前記第１位置での接触に応じて取得される第１位置情報にしたがって前記ディスプレイが描画する第２位置との誤差に関する第１データを記憶する。生成手段は、第２オブジェクトと前記ディスプレイとの接触状態の違いに関する第２データであって、前記第２オブジェクトと前記ディスプレイとの第３位置での接触に応じて取得される第２位置情報にしたがって前記ディスプレイが描画する第４位置を決定するために用いられる第２データを生成する。第１補正手段は、前記ディスプレイが検出する接触位置を、前記第１データを用いて補正する。第２補正手段は、前記ディスプレイが検出する接触位置であって前記第１補正手段により補正される接触位置を、前記第２データを用いて補正する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係るタブレットコンピュータの外観を示す斜視図である。
【図２】図２は、実施形態のタブレットコンピュータのシステム構成を示す図である。
【図３】図３は、実施形態のキャリブレーションユーティリティプログラムにより実現される機能構成を示すブロック図である。
【図４】図４は、実施形態の第２補正データ生成モジュールにより生成される第２補正データの一例を示す図である。
【図５】図５は、実施形態の第２補正データ生成モジュールにより生成される第２補正データの一例を示す図である。
【図６】図６は、実施形態の位置ズレ（誤差）を説明するための概念図である。
【図７】図７は、実施形態のＬＣＤとセンサシートとの位置関係を示す図である。
【図８】図８は、実施形態のＬＣＤとセンサシートとの位置関係を示す図である。
【図９】図９は、実施形態のハードウェアに起因する位置ズレと、ユーザの使い方に起因する位置ズレとの関係を示す図である。
【図１０】図１０は、実施形態のタブレットコンピュータを９０度左方向に回転させて、タッチスクリーンディスプレイの向きを変更した例を示す図である。
【図１１】図１１は、実施形態のキャリブレーションユーティリティプログラムによる補正処理を説明するための図である。
【図１２】図１２は、実施形態の第１補正データを生成する第１補正データ生成処理のフローチャートである。
【図１３】図１３は、実施形態の第１補正データ生成処理におけるキャリブレーション用の画面の一例を示す図である。
【図１４】図１４は、実施形態の第２補正データを生成する第２補正データ生成処理のフローチャートである。
【図１５】図１５は、実施形態の手書き入力操作の例を示す図である。
【図１６】図１６は、実施形態のキャリブレーション用の画面の一例を示す図である。
【図１７】図１７は、実施形態のペンの傾きを説明するための概念図である。
【図１８】図１８は、実施形態のキャリブレーション用の画面の一例を示す図である。
【図１９】図１９は、実施形態のキャリブレーション用の画面の一例を示す図である。
【図２０】図２０は、実施形態のキャリブレーション用の画面の一例を示す図である。
【図２１】図２１は、実施形態の入力操作時のペンを持つ手が画面に触れている状態を示す図である。
【図２２】図２２は、実施形態の補正データ生成用のデータを収集する原理を説明するための図である。
【図２３】図２３は、実施形態のずれ成分を抽出する原理を説明するための図である。
【図２４】図２４は、実施形態の第１補正データと第２補正データとを用いた補正処理を示すフローチャートである。
【図２５】図２５は、実施形態のタブレットコンピュータの使用状態の一例を示す図である。
【図２６】図２６は、実施形態のタブレットコンピュータの使用状態の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態について説明する。  
図１は、実施形態に係るタブレットコンピュータ１０の外観を示す斜視図である。タブレットコンピュータ１０は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に取り付けられている。
【００１０】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下の例では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１１】
デジタイザに対応するセンサは、ペンとタッチスクリーンディスプレイ１７との接触を検出可能なセンサであればどのようなものであっても良い。
【００１２】
タッチパネルに対応するセンサは、物体（例えば、人間の手や指）とタッチスクリーンディスプレイ１７との接触を検出可能なセンサであればどのようなものであっても良い。例えば、静電容量方式でマルチタッチを検出可能な場合、隣接する複数のポイントで接触を検出することができる。
【００１３】
デジタイザ及びタッチパネルタッチの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡（筆跡）がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡（筆跡）の集合が手書き文書を構成する。
【００１４】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報は、概して、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１５】
図２は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図２に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０５、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８、加速度センサ１０９等を備える。
【００１６】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、及び各種アプリケーションプログラムが含まれている。
【００１７】
ＯＳ２０１は、例えば起動時にユーザによって入力されるパスワード等をもとに、タブレットコンピュータ１０を利用するユーザを識別することができる。
【００１８】
アプリケーションプログラムには、ペン１００などの外部オブジェクトを用いて入力されるストロークデータを処理する複数のアプリケーションプログラム２０２，２０３、ペン１００の入力操作により入力される座標データの誤差を補正するキャリブレーションユーティリティプログラム２０４が含まれている。
【００１９】
アプリケーションプログラム２０２は、例えば、主に文字を表すストロークを入力して手書き文書を作成、表示、編集する機能を有し、アプリケーションプログラム２０３は、例えば、線画や色の塗りつぶしなど表すストロークを入力して絵画などを作成、表示する機能を有している。アプリケーションプログラム２０２，２０３は、ストロークデータに応じて描画する線種や色などを切り替える機能が設けられている。
【００２０】
アプリケーションプログラム２０３を利用する場合、ユーザは、文字を手書き入力する場合と異なる持ち方でペン１００を操作する場合がある。すなわち、アプリケーションプログラム２０３を実行する場合、タッチスクリーンディスプレイ１７に対するペン１００の傾きが、アプリケーションプログラム２０２を利用して文字を手書き入力する場合と異なる。
【００２１】
キャリブレーションユーティリティプログラム２０４は、タッチスクリーンディスプレイ１７に対するペン１００によるユーザが意図した接触位置と、接触位置に応じてタッチスクリーンディスプレイ１７に描画される線（ストローク）との位置ズレ（誤差）を補正するための処理を実行する。キャリブレーションユーティリティプログラム２０４は、ハードウェアの実装に起因する接触位置の検出誤差と、タッチスクリーンディスプレイ１７に対するペン１００の接触状態の違いに起因する接触位置の検出誤差とを、２段階に分けて補正する機能を有する。キャリブレーションユーティリティプログラム２０４は、不揮発性メモリ１０６に記録された第１補正データ１０６Ａと第２補正データ１０６Ｂとを主メモリ１０３にロードする。キャリブレーションユーティリティプログラム２０４は、主メモリ１０３にロードされた第１補正データ２０５と第２補正データ２０６をもとに、タッチスクリーンディスプレイ１７（デジタイザ１７Ｃ）により検出される座標データを補正して、ＯＳ２０１やアプリケーションプログラム２０２，２０３に出力する。
【００２２】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００２３】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００２４】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂ及びデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７Ｃは、画面上の接触位置を示す座標を出力する。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。
【００２５】
ペン１００が接触される画面上のペン１００の位置（座標）及びペン１００の位置の動き等はデジタイザ１７Ｃによって検出される。デジタイザ１７Ｃは、画面上のペン１００による接触位置を示す座標データを出力する。
【００２６】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００２７】
加速度センサ１０９は、タブレットコンピュータ１０の動きや重力方向（静的加速度）を検出するセンサである。ＯＳ２０１は、加速度センサ１０９による検出結果をもとに、タブレットコンピュータ１０の設置状態を検出し、タッチスクリーンディスプレイ１７の向きを判別する。タッチスクリーンディスプレイ１７の向きを判別することで、タッチスクリーンディスプレイ１７に表示する画面の向きを変更することができる。また、タッチスクリーンディスプレイ１７に対して、ユーザが何れの方向からペン１００を用いた入力操作をするか判別することができる。
【００２８】
次に、キャリブレーションユーティリティプログラム２０４の機能構成について説明する。図３は、キャリブレーションユーティリティプログラム２０４により実現される機能構成を示すブロック図である。
【００２９】
図３に示すように、キャリブレーションユーティリティプログラム２０４は、ＣＰＵ１０１により実行されることにより、データ入力モジュール３０１、第１補正データ生成モジュール３０３、第２補正データ生成モジュール３０２、補正モジュール３０４（第１補正モジュール３０５、第２補正モジュール３０６）、判別モジュール３０７が含まれる。
【００３０】
データ入力モジュール３０１は、デジタイザ１７Ｃから出力される検出信号を入力するモジュールである。デジタイザ１７Ｃから出力される検出信号には、ペン１００によるタッチスクリーンディスプレイ１７への接触位置を示す座標データが含まれる。なお、データ入力モジュール３０１は、タッチパネル１７Ｂからの検出信号を入力することもできる。
【００３１】
第１補正データ生成モジュール３０３は、データ入力モジュール３０１から入力される座標データをもとに、ハードウェアの実装に起因する接触位置の検出誤差を補正するための第１補正データを生成して、不揮発性メモリ１０６に記録する。
【００３２】
第２補正データ生成モジュール３０２は、タッチスクリーンディスプレイ１７に対するペン１００の接触状態の違いに起因する接触位置の検出誤差を補正するための第２補正データを生成して、不揮発性メモリ１０６に記録する。なお、第２補正データは、タブレットコンピュータ１０の動作状態の違いに対応する複数の補正データを含むことができる。
【００３３】
補正モジュール３０４は、タッチスクリーンディスプレイ１７（デジタイザ１７Ｃ）によって検出されるペン１００の接触位置を示す座標データを補正するもので、第１補正モジュール３０５と第２補正モジュール３０６とを含む。第１補正モジュール３０５は、第１補正データ生成モジュール３０３によって生成された第１補正データ２０５をもとに座標データを補正する。第２補正モジュール３０６は、第２補正データ生成モジュール３０２によって生成された第２補正データ２０６をもとに、第１補正モジュール３０５により補正された座標データを補正する。すなわち、補正モジュール３０４は、デジタイザ１７Ｃにより検出される座標データを２段階で補正する。
【００３４】
判別モジュール３０７は、ユーザによるタブレットコンピュータ１０の使い方を判別して、第２補正モジュール３０６に通知する。すなわち、判別モジュール３０７は、ＯＳ２０１や、アプリケーションプログラム２０３，２０３からの通知に基づいて、タッチスクリーンディスプレイ１７に対するペン１００の接触状態の違いが発生する動作状態を判別して、第２補正モジュール３０６に通知する。判別モジュール３０７により判別される動作状態には、例えばタッチスクリーンディスプレイ１７の向き、タブレットコンピュータ１０を使用するユーザ、デジタイザ１７Ｃから入力される座標データを処理するアクティブなアプリケーション、アプリケーションで実行される機能（ストロークデータに応じて描画する線の線種など）、ユーザがペン１００を持つ手（右手、左手）などがある。
【００３５】
第２補正モジュール３０６は、判別モジュール３０７から通知される動作状態に応じて、複数の補正データの何れかを選択して補正処理に使用することができる。
【００３６】
図４及び図５は、第２補正データ生成モジュール３０２により生成される第２補正データ２０６の一例を示す図である。
【００３７】
図４は、タブレットコンピュータ１０を使用する複数のユーザ（ユーザＡ、ユーザＢ，…）のそれぞれに対応する補正データを含む第２補正データ２０６の例を示す図である。図４に示すように、第２補正データ２０６には、複数のユーザ（ユーザＡ、ユーザＢ，…）に対応する、複数のユーザ用補正データ２０７Ａ、ユーザＢ用補正データ２０７Ｂ，…が含まれている。
【００３８】
一般に、ペン１００の持ち方は、ユーザによって異なる。従って、タッチスクリーンディスプレイ１７に対してペン１００を用いて手書き入力する場合、タッチスクリーンディスプレイ１７に対するペン１００の傾斜角度がユーザによって異なるため、検出誤差もユーザによって異なる。こうした、ユーザによって異なる検出誤差を、ユーザのそれぞれに対応する補正データを用いて補正することで適正な補正が可能となる。
【００３９】
図５は、タブレットコンピュータ１０で実行される複数のアプリケーション（アプリケーションＡ、アプリケーションＢ，…）のそれぞれに対応する補正データを含む第２補正データ２０６の例を示す図である。図５に示すように、第２補正データ２０６には、複数のアプリケーション（アプリケーションＡ、アプリケーションＢ，…）に対応する、複数のアプリケーションＡ用補正データ２０８Ａ、アプリケーションＢ用補正データ２０８Ｂ，…が含まれている。
【００４０】
一般に、ユーザが文字を手書き入力する場合と、絵など手書きによって描画する場合とでは、ペン１００の持ち方が異なる。従って、手書きによって文字を入力するアプリケーションを実行する場合と、手書きによって絵などを作成するアプリケーションを実行する場合とでは、タッチスクリーンディスプレイ１７に対するペン１００の傾斜角度が異なるため、検出誤差もアプリケーションによって異なる。こうした、アプリケーションによって異なる検出誤差を、アプリケーションのそれぞれに対応する補正データを用いて補正することで適正な補正が可能となる。
【００４１】
なお、図４及び図５には、第２補正データ２０６に、ユーザ用補正データあるいはアプリケーション用補正データが含まれる例を示しているが、ペン１００の接触状態の違いが発生する他の動作状態に対応する複数の補正データが第２補正データ２０６に含まれるようにしても良い。例えば、アプリケーションで実行される複数の機能（ストロークデータに応じて描画する線の線種）に応じた複数の補正データ、１人のユーザが右手と左手を用いてペン１００を操作した場合に対応する右手用補正データと左手用補正データなどがある。
【００４２】
本実施形態におけるキャリブレーションユーティリティプログラム２０４は、ハードウェアの実装に起因する接触位置の検出誤差を、第１補正データ２０５を用いて第１段階の補正処理により補正する。すなわち、固定的に発生する検出誤差については第１補正データにより補正されるため、動作状態に応じて第２段階の補正処理のみを動的に対応させることにより、ハードウェアの実装に起因する検出誤差とユーザの使い方に起因して発生する検出誤差の両方を補正した適正な補正が実現できる。
【００４３】
次に、タッチスクリーンディスプレイ１７に対するペン１００によるユーザが意図した接触位置と、接触位置に応じてタッチスクリーンディスプレイ１７に描画される線（ストローク）との位置ズレ（誤差）が生じる原因について説明する。  
図６は、位置ズレ（誤差）を説明するための概念図である。図６に示すように、ペン１００を持って手書き入力する場合、ペン１００が傾斜状態でペン先がタッチスクリーンディスプレイ１７の入力面上に接触される。ユーザが入力画面上の点Ａで入力操作を行うと、電磁コイル１０１から電磁波が発信され、この電磁波はデジタイザ１７Ｃのセンサ面上の点Ｂで最も強く受信される。従って、デジタイザ１７Ｃ上のＢ点がペン１００による接触位置として検出され、ＬＣＤ１７Ａにおいてタッチ位置を示す線がＢ点の垂直上の点Ｃに表示されることになる。
【００４４】
また、電磁誘導方式では、ペン１００に内蔵された電磁コイル１０１とデジタイザ１７Ｃのセンサシート面が最も近い位置がペン先により接触された位置として検出されるため、実際のペン先と座標として検出される位置にずれが生じ、ペン１００を傾けるほど、ペン１００の傾きによる位置ずれＦは大きくなる。
【００４５】
また、ＬＣＤ１７Ａを保護するための保護材（ガラスなど）５０１が表面にあるため、ＬＣＤ１７Ａ上に実際に表示される線の位置と、ユーザが目線の先に想定するペン先の位置との間に視差Ｅが生じる。
【００４６】
このため、保護材５０１の厚みによる視差Ｅとペン１００の傾きによる位置ずれＦにより、図６に示すように、ユーザが線の描画を期待する線の位置Ｄと、実際に表示される線の位置Ｃとの間に位置ずれ（検出誤差）が生じる。
【００４７】
次に、ハードウェアの実装に起因する、ペン１００による接触位置とデジタイザ１７Ｃにより検出される座標との検出誤差について説明する。  
電磁誘導方式のペン１００を使用するデジタイザ１７Ｃを搭載したタブレットコンピュータ１０は、ＬＣＤ１７Ａの下にデジタイザ１７Ｃのセンサシート１７Ｃ１を配置している。デジタイザ１７Ｃは、センサシート１７Ｃ１によってペン１００から発生される電磁波を検出する。
【００４８】
ＬＣＤ１７Ａとセンサシート１７Ｃ１とは、例えば図７に示すように、センサシート１７Ｃ１とＬＣＤ１７Ａの左上に設定される原点が一致するように組み立てられる。しかしながら、組み立て時に組み込み誤差が発生して、例えば図８に示すように、ＬＣＤ１７Ａとセンサシート１７Ｃ１とに位置ズレＥ１，Ｅ２が生じることがある。図８に示す例では、ＬＣＤ１７Ａの原点位置（０，０）が右下にずれた例を示している。
【００４９】
このため、ペン１００によりストロークを手書きした場合に、センサシート１７Ｃ１により検出されるペン先の軌跡を表す座標データ列と、座標データ列に応じてＬＣＤ１７Ａに表示される線との間に位置ズレ（検出誤差）が生じる。
【００５０】
図９は、ハードウェアに起因する位置ズレと、ユーザの使い方に起因する位置ズレとの関係を示す図である。  
図９では、ユーザが意図してＬＣＤ１７Ａ上の点（Ｘ，Ｙ）に、ペン１００のペン先を接触させた例を示す。この場合、ハードウェア起因による位置ズレを（Ｄｘｈ、Ｄｙｈ）、ユーザの使い方に依存する位置ズレを（Ｄｘｕ、Ｄｙｕ）とすると、ユーザが意図する点（Ｘ，Ｙ）と、タブレットコンピュータ１０がユーザにより指示されたと認識される点（Ｘ１、Ｙ１）との関係は、次の式（１）（２）により示される。  
Ｘ＝Ｘ１−Ｄｘｈ−Ｄｘｕ    …（１）  
Ｙ＝Ｙ１−Ｄｙｈ−Ｄｙｕ    …（２）
図１０は、タブレットコンピュータ１０を９０度左方向に回転させて、タッチスクリーンディスプレイ１７の向きを変更した例を示している。図１０に示す動作状態の場合、ユーザの使い方に依存する位置ズレは、デジタイザ１７Ｃ（センサシート１７Ｃ１）の座標系に対して９０度方向が異なるため、ユーザの指示したＬＣＤ１７Ａ上の本来の点（Ｘ，Ｙ）とタブレットコンピュータ１０により認識される点（Ｘ２、Ｙ２）との関係は、次の式（３）（４）により示される。  
Ｘ＝Ｘ２−Ｄｘｈ＋Ｄｙｕ    …（３）  
Ｙ＝Ｙ２−Ｄｙｈ−Ｄｘｕ    …（４）
このように、座標データの補正は、タブレットコンピュータ１０（タッチスクリーンディスプレイ１７）の向きによって計算方法が異なる。
【００５１】
しかし、本実施形態のキャリブレーションユーティリティプログラム２０４は、図１１（Ａ）に示すハードウェア起因による位置ズレに対する補正と、図１１（Ｂ）に示すユーザの使い方に依存する位置ズレに対する補正とを分離し、まず、ハードウェア起因による位置ズレに対する補正を行ってから、次にユーザの使い方に依存する位置ズレに対する補正を行う２段階とする。これにより、タブレットコンピュータ１０が回転されてタッチスクリーンディスプレイ１７の向き、すなわちペン１００によるタッチスクリーンディスプレイ１７に対する入力操作の向きが変更される場合であっても、動的に補正処理の計算方法を変更することで、タッチスクリーンディスプレイ１７の向きに応じた適正な補正処理ができる。
【００５２】
次に、本実施形態におけるキャリブレーションユーティリティプログラム２０４による動作について説明する。  
まず、第１補正データを生成する第１補正データ生成処理について、図１２に示すフローチャートを参照しながら説明する。第１補正データ生成処理は、ハードウェアの実装に起因して発生する検出誤差を補正する第１補正データを生成するための処理である。
【００５３】
第１補正データは、タブレットコンピュータ１０に固有の補正データである。このため、第１補正データ生成処理は、例えばタブレットコンピュータ１０の製造ライン中で管理者の操作によって実施する。
【００５４】
まず、タブレットコンピュータ１０は、管理者の操作に応じて、キャリブレーションユーティリティプログラム２０４によるハードウェア誤差補正用キャリブレーションユーティリティを起動する（ステップＡ１）。第１補正データ生成モジュール３０３は、キャリブレーション用の画面をタッチスクリーンディスプレイ１７において表示させる（ステップＡ２）。
【００５５】
図１３は、第１補正データ生成処理におけるキャリブレーション用の画面の一例を示す図である。  
図１３に示すように、キャリブレーション用の画面では、表示画面の四隅に“＋”マークを表示すると共に、「ペンをパネルに垂直になるようにして十字の中心をタップしてください」のメッセージを表示する。
【００５６】
第１補正データ生成処理では、ペン１００の傾きなどによる位置ズレの影響を排除するため、ペン１００をタッチスクリーンディスプレイ１７（ＬＣＤ１７Ａ）に対して垂直に立てて入力操作を実行させる。
【００５７】
管理者は、ペン１００が垂直となるように保持して、ペン先が“＋”マークと一致するようにして、タッチスクリーンディスプレイ１７に対して入力操作をする。
【００５８】
データ入力モジュール３０１は、デジタイザ１７Ｃから、ペン１００による入力操作に応じて検出される座標データを入力する（ステップＡ３）。
【００５９】
第１補正データ生成モジュール３０３は、ＬＣＤ１７Ａに表示した“＋”マークの位置と、入力された座標データが示す位置との差を算出して、ハードウェア誤差補正用の第１補正データとする（ステップＡ４）。すなわち、図９における（Ｄｘｈ、Ｄｙｈ）を算出する。
【００６０】
第１補正データ生成モジュール３０３は、第１補正データを不揮発性メモリ１０６に記録する（ステップＡ５）。タブレットコンピュータ１０は、第１補正データが不揮発性メモリ１０６に記録された状態で出荷される。
【００６１】
従って、ユーザは、タブレットコンピュータ１０に固有の第１補正データが予め記録された状態でタブレットコンピュータ１０を利用することができる。
【００６２】
なお、前述した説明では、第１補正データ生成処理は、製造ラインにおいて管理者によって実行されるものとしたが、ユーザにより実行されるようにしても良い。例えば、ユーザは、手書き入力した際に、位置ズレが生じていることを認識した場合に、キャリブレーションユーティリティプログラム２０４を起動して前述した第１補正データ生成処理を実行する。これにより、前述と同様にして、第１補正データを生成して、不揮発性メモリ１０６に記録することができる。
【００６３】
ＬＣＤ１７Ａとセンサシート１７Ｃ１との組み立て誤差が生じていない場合には、第１補正データ生成処理を不要とすることができる。また、ユーザによって第１補正データ生成処理を実行することにより、製造ラインにおける作業工程を削減して、コストダウンを図ることができる。
【００６４】
次に、第２補正データを生成する第２補正データ生成処理について、図１４に示すフローチャートを参照しながら説明する。第２補正データ生成処理は、ユーザの使い方に起因する検出誤差を補正する第２補正データを生成するための処理である。
【００６５】
まず、タブレットコンピュータ１０は、ユーザの操作に応じて、キャリブレーションユーティリティプログラム２０４によるユーザ別誤差補正用キャリブレーションユーティリティを起動する（ステップＢ１）。第２補正データ生成モジュール３０２は、キャリブレーション用の画面をＬＣＤ１７Ａにおいて表示させる（ステップＢ２）。キャリブレーション用の画面の具体例については後述する。
【００６６】
第２補正データ生成処理では、ユーザが通常の入力操作をした際に生じる位置ズレを補正するための第２補正データを生成する。例えば、図１５に示すように、ユーザがタッチスクリーンディスプレイ１７上においてペン１００のペン先をラインＬ１に沿って移動させた際に、ペン１００の傾斜により発生する検出誤差により、ラインＬ１と異なる位置にラインＬ２が描画される。
【００６７】
第２補正データは、ラインＬ１とラインＬ２との差を補正するためのデータである。このため、第２補正データ生成処理では、キャリブレーション用の画面に表示した線に対して、ユーザに通常通りにペン１００を持って、線をなぞるように入力操作させる。
【００６８】
第２補正データ生成モジュール３０２は、データ入力モジュール３０１を通じて座標データ列を入力し（ステップＢ３）、ＬＣＤ１７Ａに表示した線の位置と、入力された座標データ列との差を算出して、ユーザ別誤差補正用の第２補正データとする（ステップＢ４）。すなわち、図９における（Ｄｘｕ、Ｄｙｕ）を算出する。
【００６９】
第２補正データ生成モジュール３０２は、第２補正データをユーザ識別情報と対応づけて不揮発性メモリ１０６に記録する（ステップＢ５）。
【００７０】
なお、タブレットコンピュータ１０を複数のユーザによって使用する場合、各ユーザが前述した第２補正データ生成処理を実行することにより、各ユーザに対応する第２補正データを不揮発性メモリ１０６に記録することができる。
【００７１】
次に、第２補正データ生成処理においてキャリブレーション用の画面に表示する線の具体例について説明する。  
第２補正データ生成モジュール３０２は、例えば、図１６に示すように、キャリブレーション用の画面に複数の線で構成される図形（矩形Ｒ１）を表示する。第２補正データ生成モジュール３０２は、ユーザによりペン１００で矩形Ｒ１をなぞらせることで、ユーザが期待する線Ｒ２の位置と、ペン先の接触位置として検知される座標データが示す位置とのずれ量を算出する。第２補正データ生成モジュール３０２は、ずれ量をもとに第２補正データを生成することで、ユーザに応じた、目線の角度やペン１００の傾きを考慮した補正を可能にする。
【００７２】
ユーザによって目線やペンの傾きは異なり、また、ペン１００の持ち方も異なるが、ユーザが図形や文字を書くときの自然な目線やペン１００の傾きでの位置補正ができるようになり、ユーザ毎のペンで何かを書くときの癖に合わせた位置補正が可能となる。
【００７３】
また、図１７に示すように、利き手から遠い場所で入力操作をするほどペン１００が斜めになり、利き手側に近いほどペンが垂直になる傾向がある。図１７は、右手でペン１００を持った場合を示している。
【００７４】
このため、図１８や図１９に示すように、タッチスクリーンディスプレイ１７上の複数の場所にキャリブレーション用の図形を表示し、それぞれの場所での位置ずれを算出して、それぞれの位置に応じた複数の第２補正データを生成するようにしても良い。これにより、タッチスクリーンディスプレイ１７上の入力操作がされた領域に応じて、異なる位置に対応する第２補正データを選択して補正処理をすることで、より正確に位置ズレを補正することができる。
【００７５】
ペン１００による入力操作をする場所（領域）によって第２補正データを変更することで、同じユーザでもペン１００を用いて入力操作をする場所によってペン１００の傾きや目線の角度が異なるとしても、より正確な位置補正が可能となる。
【００７６】
図１８は、キャリブレーション用の図形として、３つの矩形Ｒ１１，Ｒ１２，Ｒ１３を表示した例である。矩形Ｒ１１，Ｒ１２，Ｒ１３は、画面の上下方向の中央に横方向に並んで配置されている。
【００７７】
図１９は、キャリブレーション用の図形として、５つの矩形Ｒ２１，Ｒ２２，Ｒ２３，Ｒ２４，Ｒ２５を表示した例である。矩形Ｒ２１は、タッチスクリーンディスプレイ１７の左上隅に表示されている。矩形Ｒ２２は、タッチスクリーンディスプレイ１７の右上隅に表示されている。矩形Ｒ２３は、タッチスクリーンディスプレイ１７の中央に表示されている。矩形Ｒ２４は、タッチスクリーンディスプレイ１７の左下隅に表示されている。矩形Ｒ２５は、タッチスクリーンディスプレイ１７の右下隅に表示されている。
【００７８】
なお、キャリブレーション用の図形は、図２０に示すように、図形の代わりに文字を使ってもよい。図２０は、キャリブレーション用の図形として、５つの文字Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５を表示した例である。文字Ｔ１は、タッチスクリーンディスプレイ１７の左上隅に表示されている。文字Ｔ２は、タッチスクリーンディスプレイ１７の右上隅に表示されている。文字Ｔ３は、タッチスクリーンディスプレイ１７の中央に表示されている。文字Ｔ４は、タッチスクリーンディスプレイ１７の左下隅に表示されている。文字Ｔ５は、タッチスクリーンディスプレイ１７の右下隅に表示されている。
【００７９】
文字を手書き入力する場合、ユーザは、図形を手書き入力する場合と異なる持ち方で、ペン１００を持つ場合がある。従って、図形の代わりに文字を使って第２補正データを生成することで、この第２補正データを用いて文字が手書き入力される場合に補正処理をすることで、より正確に位置ズレを補正することができる。
【００８０】
また、第２補正データ生成モジュール３０２は、データ入力モジュール３０１を通じて、デジタイザ１７Ｃによって検出される座標データと共に、タッチパネル１７Ｂにより検出されるユーザの手の位置を示すデータを入力して、第２補正データを生成することもできる。
【００８１】
例えば、図２１に示すように、ペン１００を持つ手Ｈがタッチスクリーンディスプレイ１７に触れている場合、第２補正データ生成モジュール３０２は、ペン１００のペン先の接触位置を示す座標データと手Ｈの位置を示すデータとをもとに、ユーザが右手と左手の何れでペン１００を持っているかを判別する。すなわち、ペン先の接触位置を示す座標データより、手Ｈの位置を示すデータが右側にある場合には、ユーザが右手でペン１００を持って入力操作をしたと判別することができる。同様にして、ペン先の接触位置を示す座標データより、手Ｈの位置を示すデータが左側にある場合には、ユーザが左手でペン１００を持って入力操作をしたと判別することができる。第２補正データ生成モジュール３０２は、入力された座標データをもとに算出した第２位置データに、右手入力用あるいは左手入力用のデータを付加して不揮発性メモリ１０６に記録する。補正処理では、ユーザが右手あるいは左手の何れでペン１００を持っているかを判別できる場合、右手あるいは左手に応じて第２補正データを選択して補正処理をすることで、より正確な補正が可能となる。
【００８２】
次に、キャリブレーション用の図形に対する入力操作により応じて、第２補正データを算出するために用いる座標データの入力方法について説明する。
【００８３】
例えば、デジタイザ１７Ｃによるタッチ操作の検出が１００Ｈｚのサイクルで実行されているものとする。この場合、例えば図２２に示すように、線分（ｂ１）がペン１００の操作により筆記されると、１秒間に１００回、つまり１０ｍｓ（ｃ１）毎に検出信号が出力されることになる。従って、データ入力モジュール３０１は、ユーザの１回の筆記から数多くの検出信号を収集できる。
【００８４】
データ入力モジュール３０１によって入力される複数の検出信号は、第２補正データ生成モジュール３０２に供給される。第２補正データ生成モジュール３０２は、手書きデータ入力部３０１から供給される複数の検出信号の中からキャリブレーションに用いるべき検出信号を選び出す。
【００８５】
第２補正データ生成モジュール３０２は、タッチスクリーンディスプレイ１７（ＬＣＤ１７Ａ）に表示したキャリブレーション用の図形の位置と、図形をなぞる入力操作によりデジタイザ１７Ｃにより検出された位置とのずれに関する成分を抽出する。
【００８６】
デジタイザ１７Ｃから出力される検出信号には、座標データが含まれている。座標データによれば、この検出信号に対応するタッチ操作がタッチスクリーンディスプレイ１７上のどの位置で行われたのかを知ることができる。しかしながら、（例えば点状のオブジェクトに対するタッチ操作とは異なり）タッチスクリーンディスプレイ１７上に表示された図形で示される線分をなぞるようにユーザがタッチスクリーンディスプレイ１７上で線分を筆記したことに伴って取得される検出信号の場合、その検出信号に含まれる座標データで示されるタッチ操作の位置が、ユーザが図形で示される線分上のどの位置をなぞろうとした時に得られたものであるのかがわからない。
【００８７】
そこで、第２補正データ生成モジュール３０２は、タッチ操作の検出位置に対する向きがその線分と直交する向きとなる線分上の位置を、そのタッチ操作の位置と対応するものであると推定する。
【００８８】
第２補正データ生成モジュール３０２は、各タッチ操作の位置について、対応する線分上の位置を推定すると、両者間の距離を各々算出し、かつ、その平均値を算出する。これにより、第２補正データ生成モジュール３０２は、図２３に示すように、タッチスクリーンディスプレイ１７上での１本の横線の筆記によって、複数の検出信号に基づき、縦方向のずれ成分（ｄ１）を算出でき（図２３の（Ａ））、また、タッチスクリーンディスプレイ１７上での１本の縦線の筆記によって、複数の検出信号に基づき、横方向のずれ成分（ｄ２）を算出できる（図２３の（Ｂ））。また、この縦横２方向のずれ成分からは、タッチスクリーンディスプレイ１７（ＬＣＤ１７Ａ）の表示位置とタッチスクリーンディスプレイ１７（デジタイザ１７Ｃ）による検出位置とを一致させるための補正値（ｄ３）を算出できる。
【００８９】
第２補正データ生成モジュール３０２は、抽出されたずれ成分に基づき補正値を算出し、この補正値を、タッチスクリーンディスプレイ１７（ＬＣＤ１７Ａ）の表示位置とタッチスクリーンディスプレイ１７（タッチパネル１７Ｂまたはデジタイザ１７Ｃ）による検出位置とを一致させるための第２補正データとして設定する。
【００９０】
なお、前述したように、ペン１００によるタッチスクリーンディスプレイ１７上への接触位置は、電磁誘導式のポインティングデバイスであるデジタイザ１７Ｃによって検出される。デジタイザ１７Ｃによって検出される接触位置は、タッチスクリーンディスプレイ１７上の同一位置であっても、ペン１００がタッチスクリーンディスプレイ１７に対してどのような角度で接触したかによって異なり得る。そこで、第２補正データ生成モジュール３０２によって表示される図形で示される線分の長さは、線分の筆記中にペン１００の角度が著しく（閾値を超えて）変わらない範囲内に収まるようにする。
【００９１】
次に、第１補正データと第２補正データとを用いた補正処理について、図２４に示すフローチャートを参照しながら説明する。  
キャリブレーションユーティリティプログラム２０４は、ペン１００による入力操作がされる場合、常駐して動作するものとする。タブレットコンピュータ１０の起動時に、パスワードの入力などによって、タブレットコンピュータ１０を使用するユーザが識別された場合、キャリブレーションユーティリティプログラム２０４は、不揮発性メモリ１０６から、タブレットコンピュータ１０を使用するユーザに対応する第２補正データ１０６Ｂを、ユーザ識別情報をもとに検索し、第１補正データ１０６Ａと共に主メモリ１０３にロードする。
【００９２】
補正モジュール３０４は、データ入力モジュール３０１を通じて座標データが入力されると（ステップＣ１）、第１補正データ２０５を用いて座標データを補正する（ステップＣ２）。すなわち、第１段階の補正によって、ハードウェアに起因する誤差を補正する。
【００９３】
次に、第２補正モジュール３０６は、第１補正モジュール３０５によって補正された座標データを、第２補正データ２０６を用いて補正する。すなわち、第２段階の補正によって、ユーザの使い方に起因する誤差を補正する。これにより、ハードウェアに起因する誤差とユーザの使い方に起因する誤差の両方を考慮した補正された補正データを、アプリケーションあるいはＯＳ２０１に出力することができる（ステップＣ５）。
【００９４】
なお、第２補正モジュール３０６は、判別モジュール３０７により判別される動作状態に応じて、第２段階の補正処理を切り替えることができる。
【００９５】
例えば、タブレットコンピュータ１０を回転させた場合、判別モジュール３０７は、ＯＳ２０１からの通知によって、タッチスクリーンディスプレイ１７の向きを判別し、第２補正モジュール３０６によってタブレットコンピュータ１０の向きに応じた補正処理を実行させる。
【００９６】
例えば、タブレットコンピュータ１０が図９に示す状態で使用される場合、前述したように、次の式（１）（２）に示す計算により座標データが補正される。  
Ｘ＝Ｘ１−Ｄｘｈ−Ｄｘｕ    …（１）  
Ｙ＝Ｙ１−Ｄｙｈ−Ｄｙｕ    …（２）
また、タブレットコンピュータ１０が図１０に示す状態（左方向に９０度回転した状態）で使用される場合、前述したように、次の式（３）（４）に示す計算により座標データが補正される。  
Ｘ＝Ｘ２−Ｄｘｈ＋Ｄｙｕ    …（３）  
Ｙ＝Ｙ２−Ｄｙｈ−Ｄｘｕ    …（４）
また、タブレットコンピュータ１０が図２５に示す状態（左方向に１８０度回転した状態）で使用される場合、次の式（５）（６）に示す計算により座標データが補正される。  
Ｘ＝Ｘ３−Ｄｘｈ＋Ｄｘｕ    …（５）  
Ｙ＝Ｙ３−Ｄｙｈ＋Ｄｙｕ    …（６）
また、タブレットコンピュータ１０が図２６に示す状態（左方向に２７０度回転した状態）で使用される場合、次の式（７）（８）に示す計算により座標データが補正される。  
Ｘ＝Ｘ４−Ｄｘｈ−Ｄｙｕ    …（７）  
Ｙ＝Ｙ４−Ｄｙｈ＋Ｄｘｕ    …（８）
このように、第１段階の補正処理によりハードウェアに起因する誤差が補正されているため、タブレットコンピュータ１０の向きに応じて計算方法を変更することで、１つの第２補正データ２０６によって座標データの補正が可能である。すなわち、タブレットコンピュータ１０の各向きに応じた第２補正データを予め生成しておく必要がない。
【００９７】
また、アプリケーションプログラム２０２，２０３のそれぞれに対応する第２補正データ２０６が生成されている場合、第２補正モジュール３０６は、判別モジュール３０７により判別されるアクティブなアプリケーションに対応する第２補正データを選択して座標データを補正する。
【００９８】
また、アプリケーションプログラム２０２，２０３の機能（例えば、線種など）が切り替えられたことが、判別モジュール３０７によりアプリケーションからの通知により検出した場合、第２補正モジュール３０６は、アプリケーションの機能に応じた第２補正データを選択して座標データを補正する。
【００９９】
また、タッチパネル１７Ｂによってユーザの手Ｈが検出される場合、第２補正モジュール３０６は、デジタイザ１７Ｃにより検出される座標データが示す位置と手Ｈの位置との関係に基づいて、ユーザが右手と左手の何れにペン１００を持っているかを判別して、右手あるいは左手に応じた第２補正データを選択して、座標データを補正することもできる。
【０１００】
さらに、前述した説明では、タブレットコンピュータ１０の向きとして９０度毎に回転させた状態を例にして説明しているが、例えばユーザがタブレットコンピュータ１０を持った状態でペン１００を用いた入力操作をする場合がある。この場合、タブレットコンピュータ１０とペン１００のそれぞれに姿勢検出センサ（ジャイロ）を設け、タブレットコンピュータ１０は、ペン１００の姿勢検出センサにより検出された姿勢状態を示すデータを受信し、このデータをもとにタブレットコンピュータ１０とペン１００との相対的な位置関係を算出する。すなわち、タッチスクリーンディスプレイ１７に対して、ペン１００が何れの方向から何れの傾斜角度で接触されているかを算出する。第２補正モジュール３０６は、タブレットコンピュータ１０とペン１００との相対的な位置関係に応じて動的に第２補正データを決定して座標データを補正する。本実施形態におけるタブレットコンピュータ１０は、第１段階の補正処理によりハードウェアに起因する補正がされているため、タブレットコンピュータ１０の状態変化に応じて動的に座標データを補正することも可能となる。
【０１０１】
このようにして、本実施形態におけるタブレットコンピュータ１０では、キャリブレーション処理を、ハードウェアの実装に起因して固定的に特定方向に生じる位置ズレ（誤差）に対する補正処理と、ユーザの使い方に起因してタブレット端末の状態（回転）によって生じる方向が異なる位置ズレに対する補正処理との２段階に分けて行うことができる。
【０１０２】
また、ハードウェアに起因する位置ズレの補正と、ユーザの使い方に起因する位置ズレの補正とに分離することで、１台のタブレットコンピュータ１０を複数のユーザが使用する場合であっても、ハードウェアに起因する位置ズレの補正はそのタブレットコンピュータ１０で共通の補正（第１補正データを用いた補正）として予め完了させておき、その上でユーザ毎にキャリブレーション処理ができるようにすることで、ユーザのそれぞれの好みに適した位置補正を行うことができる。
【０１０３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１０４】
また、前述した実施の形態において記載した処理は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。コンピュータは、記録媒体に記録されたプログラムを読み込み、または通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【要約】
実施形態によれば、電子機器は、第１オブジェクトとの接触位置を検出可能なディスプレイと、記録手段と、生成手段と、決定手段とを有する。記録手段は、前記第１オブジェクトと前記ディスプレイとが接触する第１位置と、前記第１オブジェクトと前記ディスプレイとの前記第１位置での接触に応じて取得される第１位置情報にしたがって前記ディスプレイが描画する第２位置との誤差に関する第１データを記憶する。生成手段は、第２オブジェクトと前記ディスプレイとの第３位置での接触に応じて取得される第２位置情報にしたがって前記ディスプレイが描画する第４位置を決定するために用いられる第２データを生成する。決定手段は、前記ディスプレイが検出する接触位置を、前記第１データと前記第２データとを用いて決定する。【図１】
0005606635.tif 000002
【図２】
0005606635.tif 000003
【図３】
0005606635.tif 000004
【図４】
0005606635.tif 000005
【図５】
0005606635.tif 000006
【図６】
0005606635.tif 000007
【図７】
0005606635.tif 000008
【図８】
0005606635.tif 000009
【図９】
0005606635.tif 000010
【図１０】
0005606635.tif 000011
【図１１】
0005606635.tif 000012
【図１２】
0005606635.tif 000013
【図１３】
0005606635.tif 000014
【図１４】
0005606635.tif 000015
【図１５】
0005606635.tif 000016
【図１６】
0005606635.tif 000017
【図１７】
0005606635.tif 000018
【図１８】
0005606635.tif 000019
【図１９】
0005606635.tif 000020
【図２０】
0005606635.tif 000021
【図２１】
0005606635.tif 000022
【図２２】
0005606635.tif 000023
【図２３】
0005606635.tif 000024
【図２４】
0005606635.tif 000025
【図２５】
0005606635.tif 000026
【図２６】
0005606635.tif 000027