JP5849095B2 - タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法 - Google Patents

タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法 Download PDF

Info

Publication number
JP5849095B2
JP5849095B2 JP2013518583A JP2013518583A JP5849095B2 JP 5849095 B2 JP5849095 B2 JP 5849095B2 JP 2013518583 A JP2013518583 A JP 2013518583A JP 2013518583 A JP2013518583 A JP 2013518583A JP 5849095 B2 JP5849095 B2 JP 5849095B2
Authority
JP
Japan
Prior art keywords
input events
touch
events
event
candidate key
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.)
Active
Application number
JP2013518583A
Other languages
English (en)
Other versions
JP2013534111A (ja
Inventor
マースデン、ランダル・ジェイ.
ホール、スティーブ
Original Assignee
クリーンキーズ・インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by クリーンキーズ・インコーポレイテッド filed Critical クリーンキーズ・インコーポレイテッド
Publication of JP2013534111A publication Critical patent/JP2013534111A/ja
Application granted granted Critical
Publication of JP5849095B2 publication Critical patent/JP5849095B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • G06F3/04186Touch location disambiguation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/043Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using propagating acoustic waves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04106Multi-sensing digitiser, i.e. digitiser using at least two different sensing technologies simultaneously or alternatively, e.g. for detecting pen and finger, for saving power or for improving position detection

Description

本発明は、イベント(event)を始動させることなく、ユーザが手又は指を表面に載せることができる、滑らかな、固体のタッチ及び振動センシティブ表面(a smooth, solid touch- and vibration-sensitive surface)に関する。より具体的には、表面は、テキストとコマンドとを入力するコンピュータのキーボードとして使用され得る。
人から機械へテキスト及びデータを入力する主要な方法としての現代のキーボードの起源は、19世紀の初期のタイプライタに逆戻る。コンピュータが開発されると、タイプライタのキーボードを、テキスト及びデータを入力する主要な方法として使用されるように適応させることは、自然な進化であった。タイプライタにおけるキーと、その後の、コンピュータのキーボードの実施は、メカニカルなものから、電動式、最終的に電子式に進化し、一方で、キー自体のサイズと、レイアウトと、メカニカルな特徴は、ほとんど変化しないままである。
コンピュータと、コンピュータに付いているキーボードは、多数の産業にわたる環境で普及し、これらの環境の多くは、コンピュータ及びキーボードの設計において当初は考えられていなかった厳しい条件を有する。例えば、コンピュータは、レストランの厨房と、製造設備の生産フロアと、石油採掘装置とで、現在使用されている。これらは、極めて汚れた状態であるために、清掃せずに、あまり長い期間にわたって、従来のキーボードが動作可能なままでいられない環境である。
キーボードの清掃し易さの問題を克服するために、キーボードの表面自体が平らな又はほぼ平らな表面であり得る場合は、キーボードを拭いてキーボードを清潔にすることが、はるかにより容易になると直感的に考えられる。しかしながら、これは、キーボードの物理的なメカニカルキー又はメンブレンキー(physical mechanical or membrane keys)に代わるものを見付ける必要があることを意味する。
部分的にこれを受けて、新しいコンピュータのフォームファクタ(form factor)は、外付けのキーボードを完全に無くして、データ入力のためにソフトウェアベースの「仮想」キーボードを備えたタッチセンシティブフラットディスプレイスクリーン(touch-sensitive flat display screen)のみから構成されるように発展した。手をキーボードに載せる動作は、キーボードから望ましくないキーの作動をもたらすので、手をキーボードに載せるように訓練されたタイピストにとって、タッチスクリーンの仮想キーボードは、速い速度で使用するのが難しい。
従って、清掃し易く、ユーザがキーを触って感じることができ、ユーザが指をキーに載せることができ、標準的なキーボード上でキーを押下する力と同じ又はそれよりも小さい力を必要とし、人間のタッチに応答し、従来のメカニカルキーボードのときと同じ又はそれよりも速くユーザがタイプできるやり方で、上述のキーボード入力方法を改善する必要がある。
本発明は、タッチセンシティブ表面に取付けられた振動センサを使用して、表面に対する指接触イベント(finger contact events)の検出と位置特定との両者を行なうことを可能にする、システムと方法とに関する。特に、本発明は、意識的なタイピングイベントと、通常のタイピング動作からもたらされる偶発的な又は望ましくない接触とを区別する。このアプローチは、普通のキーボードに対して行うように、ユーザが指をキーに載せて、指でタイプすることを可能にする。
ユーザが表面に指を置くと、(1つのキー当たり1つ以上の)タッチセンサと、振動センサが、同時に作動する。タッチセンサと振動センサとの両者からの信号は、一連の入力イベントに変換される。次に、指が接触する位置と、対応するキーの作動とを決定するために、入力イベントを時間的に相関させる。対応する「タップ」(即ち、振動)のないタッチイベントは、無視される。次に、相関イベント(correlated events)をフィルタにかけ、望ましくないイベントを取り除き、曖昧な又は矛盾する結果を解決する。例えば、本発明は、意識的なキー押下と、ユーザがタイピングに備えて手をキーボード上にセットダウンする(set down)ときとの差異を検出することができる。
本発明は、従来のタッチセンシティブ入力デバイスに対してかなりの長所を有する。1つのこのような長所は、キーの作動を起こさせることなく、ユーザが指をキーに載せることができることである。別の長所は、ユーザが、キーボードを見る必要なく、タッチによってタイプできるということである。
本発明の好ましい代わりの例は、次の図面を参照して、以下で詳しく説明される。
本発明の実施形態に従って形成されたシステムの代表的なハードウェアコンポーネントを示すハードウェアのブロック図である。 表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。 表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。 表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。 表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。 表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。 有効なキーの作動を検出し、タップ(振動)センサのデータからタッチ及びタップの入力イベントを発生させるために、本発明の方法を実施するソフトウェアアルゴリズムの実施形態を示している。 タッチ及びタップの入力イベントを相関させるソフトウェアアルゴリズムの実施形態を示している。 タッチ及びタップの入力イベントを相関させるソフトウェアアルゴリズムの実施形態を示している。 相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。 相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。 相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。 相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
図1は、タッチ/タップセンシティブキーボードデバイス(touch/tap-sensitive keyboard device)100の実施形態のハードウェアコンポーネントの単純化されたブロック図を示している。デバイス100は、近接センサ(proximity sensor)120と、容量性タッチセンサ(capacitive touch sensor)130と、振動センサ(vibration sensor)140とを収めた平坦な表面を含む。センサコンポーネント120と、130と、140は、入力をCPU110(プロセッサ)110に与える。CPUは、キーボードの表面にユーザの手が近付いた、又はキーボードの表面がユーザの手によってタッチされたときに、センサコンポーネント120と、130と、140とから受信した生の信号の解釈に基づいて、接触イベントを通知する。
メモリ170は、CPU110とデータ通信する。メモリ170は、プログラムメモリ180とデータメモリ190とを含む。プログラムメモリ180は、オペレーティングシステムソフトウェア181と、タップ/タッチ検出ソフトウェア182と、他のアプリケーションソフトウェア183とを含む。データメモリ190は、タッチ容量性センサの履歴配列(history array)191と、ユーザオプション/プリファランス(user options/preference)192と、他のデータ193とを含む。
ユーザの指が平らで平坦な表面に接触すると、容量性タッチセンサ130はアサート(assert)される。周期的に、CPU110は、キーボードのオペレーティングシステムソフトウェア181を実行し、タッチセンサ130とタップセンサ140とから生のセンサのデータを収集し、生のセンサの日付をデータメモリ191に記憶する。
異なる実行スレッドにおいて、CPU110は、連続的に、ここに記載されているタップ及びタッチの検出及び位置特定のソフトウェア(アルゴリズム)を実行し、キーボードによって生成されたセンサのデータを処理し、キーの「アップ」及び「ダウン」の一連の状態にする。アルゴリズムの各実行は、「サイクル」を構成する。「サイクル」は、アルゴリズムのための基本的なタイミングの単位(basic timing unit)である。有効なキーの作動が検出されると、CPU110は、タッチ/タップ検出ソフトウェア182によって支援され、メモリ191に収められているセンサのデータのアルゴリズム的分析を行ない、平坦な表面のどのエリアがタッチ及びタップされたかを決定する。有効なタップ/タッチの位置がアルゴリズム182によって計算されると、それは、キーボードのオペレーティングシステムソフトウェア181に渡され、特定のキーボードのファンクションコードにマップされる。典型的なキーボードの機能は、標準的なキーボードの英数字キーと、ファンクション及びナビゲーションキーとを含む。次に、マップされたファンクションコードは、標準的な周辺装置/ホストインターフェイス、例えば、USB又はPS/2を通じて、接続されたホストコンピュータ端末194に送られる。
図2Aは、タッチ及びタップセンシティブ表面に対するユーザのキーの作動の位置を特定する例示的な方法を実施するソフトウェアの実施形態のフローチャートを示している。方法は、5つの別個のステージに分けられる。各ステージは、「マネージャ」と呼ばれる異なるシステムソフトウェアコンポーネントによって指示される。
ステージ1 センサのデータの収集200
ステージ2 センサのデータの分析及び入力イベントの発生300
ステージ3 入力イベントの相関付け(correlation)400
ステージ4 入力イベントのフィルタリング500
ステージ5 キーの状態の変化の分析600
ステージ1(図2Aの200)では、タッチ及びタップ(振動)センサ140からデータを収集し、将来処理するためにメモリに入れる。図2Bは、タッチ及びタップセンサから信号値を収集及び要約する(summarize)ソフトウェアアルゴリズムの実施形態のフローチャートを示している。CPU110は、SensorChannelManagerによって制御され、SCM GetSensorData方法200を通じて呼び出される(invoke)。SensorChannelManager200は、1つ以上のSensorChannelコンポーネントを呼び出す。1つ以上のSensorChannelコンポーネントは、センサデータを収集し、要約し、記憶する。SensorChannelは、特定の収集及び要約アルゴリズムをセンサの信号に適用し、タッチ又はタップセンサのデータの記録を生成する。次のステージで将来処理するために、センサのデータの記録は、関連付けられているタイムスタンプと共に記憶される。
SC Tap CaptureData方法200によって呼び出されたタップSensorChannel(Tap SensorChannel)は、表面に対して指が起こしたタップの時間の発生を識別する。図3は、タップイベントを検出するソフトウェアアルゴリズムの実施形態のフローチャートを示している。タップセンサチャネル方法(Tap sensor channel method)220は、現在のサイクルのために、振動センサのデータ記録に記憶されているタップのアナログデータをサンプリングする221。収集されたデータからなる組は、現在のサイクルの開始時間に定められた開始時間と共に、各振動センサに対する波形として表わされる。収集された信号値と平均信号との差が閾値(平均からの差の偏差(difference deviation))を超えている場合に222、信号波形における対応する点は、可能性のあるイベント(possible event)を表わす。アルゴリズムは、同時に実行する2つの状態機械を起動する。第1の状態機械は、最初のタップの反響(reverberation)によって複数のタップイベントが発生するのを抑制する(フィルタをかける)。ブロック223を参照。第2の状態機械は、閾値を越えた波形における第1の最小値(最低点)を検出することによって、タップが発生した正確な時間を計算することを試みる。最小値の時間の位置は、各サンプル点(sample point)における波形の「第2の傾斜合計(second slope sum)」を計算することによって検出される。CPUは、各サンプル点における波形線の瞬間的な傾斜(instantaneous slope)を計算する224。サンプル点における傾斜が負(下向き)から正(上向き)に変わる場合に、サンプルは最小値である可能性のあるもの(possible minima)を表し、サンプル時間はタップイベントの時間である。次に、CPUは、その最小値を真の最小値として適格とする(qualify)かどうかを検出する。それまでの5つのサンプル点の傾斜を現在のサンプル点の傾斜に加えることによって、CPUは、サンプル点に対する「第1の傾斜合計(first slope sum)」を計算する。次に、システムは、それまでの5つのサンプル点の第1の傾斜合計を現在のサンプル点の第1の傾斜合計に加えることによって、「第2の傾斜合計」を計算する。ブロック227を参照。その結果は、サンプル点における傾斜の差を拡大したものであり、これは閾値と容易に比較でき、最小値の特徴を示す主要な傾斜の逆転(下降から上昇)が識別される。決定ブロック228を参照。閾値を超えると、タップイベントが発生され、チャネルによって、タップセンサのデータオブジェクトとして記憶される。ブロック229を参照。
ステージ2(図2Aの300)では、履歴のセンサのデータを分析し、「入力イベント」オブジェクトのストリームを生成する。「入力イベント」オブジェクトのストリームは、表面に対する可能性のあるキーの作動を表わす。図2Cは、センサのデータを分析して入力イベントを生成するソフトウェアアルゴリズムの実施形態のフローチャートを示している。CPU110は、InputChannelManagerによって制御され、ICM GerInputEvents方法300によって呼び出される。InputChannelManager300は、1つ以上のInputChannelコンポーネントを呼び出す。1つ以上のInputChannelコンポーネントは、ステージ1で収集され、要約され、記憶された、センサのデータを分析する。InputChannelは、特定の分析アルゴリズムをセンサのデータに適用し、状態を検出し、入力イベントを生成する。
IC Touch GetEvents方法310によって呼び出されたタッチInputChannelプロセス(Touch InputChannel process)は、ユーザのタッチの入力イベント(user touch input event)を探す(look for)。CPU110は、タッチInputChannelプロセスを実行し、記憶されているタッチ容量性センサのデータを分析し、閾値を超えた各信号に対して、タッチの入力イベントを生成する。
IC TapMultilateration GetEvents方法330によって呼び出されたタップマルチラテレーションInputChannel(tap multilateration InputChannel)は、各振動センサにおけるタップイベントの相対到達時間差(time difference of arrival ,TDOA)を使用し、キーボードに対するタップ位置の座標を計算し、入力イベントを生成する。定められた既知の位置に信号の検出器が3つ以上あるとすれば、CPU110は、マルチラテレーション(multilateration)の技術を使用して、信号の源の位置を三角法で測定する(triangulate)。マルチラテレーションを使用するCPU110は、タップイベントの記録に記憶されている各加速度計への相対到達時間をとって、表面における振動波の、実験により測定された伝搬速度に基づいて、タップが行われたキーボード上の最も可能性の高い位置を計算する。計算されたタップ位置の近くにあるキーを、発生させた入力イベントにおける候補キーとして選ぶ。
図4Aは、タップマルチラテレーションのためのソフトウェアアルゴリズムの実施形態のフローチャートを示している。ブロック322において、センサの各々におけるタップイベントの到達時間の時間デルタ又は差を計算する。表面に対するタップによって発生する音波は、ほぼ一定の速度で表面の物質を通って各センサへ進む。実際は、波の伝搬速度は、一定ではなく、表面上の位置によって、及び実施形態の個々の例によって異なる。ばらつきを調整するために、プロセスでは、位置ルックアップテーブルへのインデックスとして相対到達時間を使用してもよい。位置ルックアップテーブルは、三つ組(triple)の相対到達時間をキーの座標にマップする。ブロック324を参照。テーブルの値は、表面に対する反復的なテストと測定とによって、実験により導き出される。正確に整合する(match)可能性は低く、且つその正確な整合は信頼できないので、プロセスでは、相対到達時間に最も密接に整合する記録からなる組を選択する。記録からなる組は、一定でない速度によって生成される統計誤差範囲に相当する、候補キーからなる組を含む領域の位置を定める。領域内の候補キーは、領域の縁端部から中央へ、増加する確率勾配(increasing probability gradient)を有する。最も可能性の高いキーは、領域の真ん中にある。プロセス320では、マップされた領域によって特定される候補キーで、入力イベントを生成する。ブロック326を参照。
1つの実施形態では、タップマルチラテレーションアルゴリズムは、外部(キーボードの外)の振動を検出し、タップイベントとして考慮することから外す方法を含む。外部の振動源が振動センサを作動させるのと同時に、ユーザが、キーボードの表面上で、タップしているのではなく、指を動かしているときに、よく起こる問題(common problem)が生じる。外部のタップ(external tap)がフィルタにかけられない限り、その振動がタッチセンサにおける変化と相関しているとして、これは誤検出(false positive)をもたらす。従って、外部の振動を検出し、それらをフィルタにかけて除去できることが、重要である。タップマルチラテレーションアルゴリズムは、表面の物理的構造の特性を使用して、外部のタップを検出する。外部のタップは、中央の加速度計よりも前に、左と右の両者の加速度計を始動させる。その理由は、外部の振動は、中央の検出器に伝搬する前に、キーボードの左と右の最下部(feet)を通じて、左と右の加速度計に伝わり、中央の検出器が最後になるからである。両者のアプローチの条件が満たされる場合に、信号は、外部の振動として生じている確率が高く、タップイベントから外すことができる。
IC TapAmplitude GetEvents方法330によって呼び出されるタップ振幅InputChannelプロセス(Tap Amplitude InputChannel Process)は、タップの信号振幅における相対的な差を使用し、キーボードに対するタップの位置の座標を計算し、入力イベントの位置を生成する。振幅変動アルゴリズムは、加速度計の各々によって記録された相対振幅をとって、表面の物質における振動波の、実験により測定された線形力応答の近似値(linear false response approximation)に基づいて、キーボード上のタップ位置の座標を三角法で測定して計算する。計算された振幅のタップ位置の近くにあるキーは、候補出力キーとして選ばれる。
1つの実施形態では、タップ振幅差プロセス330は、外部の振動を検出し、タップイベントとして不適格とするアプローチを含む。キーボードの表面上の幾つかの既知の座標を除いて、キーボードの表面に対してタップが行われると、各加速度計によって検出された振幅には、通常は大きな差があり、タップ振幅差プロセス330の基準の特性である。しかしながら、外部のタップが生じたときに、各センサによって検出された振幅は、多くの場合に、そのタップを潜在的な(potential)外部のタップとして識別するのに使用できる振幅に非常に近く、それを更なる検討から不適格とする。
図4Bは、タップの振幅差のためのソフトウェアアルゴリズムの実施形態のフローチャート(330)を示している。センサの各々におけるタップイベントの振幅差が計算される。ブロック332を参照。表面に対するタップから発生する音波は、信号振幅のほぼ線形の減衰(力の低下)を伴って、表面の物質を通って各センサに伝搬する。振幅差アルゴリズム330は、タップイベントの記録に記憶されている相対振幅を使用し、信号波が表面を渡るときに伝導物質における吸収によって生じる信号振幅における想定される線形の一定の減衰の線形力応答の近似値に基づいて、タップが行われたキーボード上の最も可能性の高い位置を計算する。信号源が信号検出器から更に遠くなるほど、信号はより小さくなる。実際には、波の減衰は一定ではなく、表面上の位置によって、及び実施形態の個々の例によって異なる。ばらつきを調整するために、プロセスでは、位置ルックアップテーブルへのインデックスとして振幅値を使用してもよい。位置ルックアップテーブルは、三つ組の振幅差をキーの座標にマップする。ブロック334を参照。テーブルの値は、表面に対する反復的なテストと測定とによって、実験により導き出される。正確に整合する可能性は低く、且つその正確な整合は信頼できないので、プロセスでは、振幅差に最も密接に整合する記録からなる組を選択する。記録からなる組は、一定でない減衰によって生成される統計誤差範囲に相当する、候補キーからなる組を含む領域の位置を定める。領域内の候補キーは、領域の縁端部から中央へ、増加する確率勾配を有する。最も可能性の高いキーは、領域の真ん中にある。プロセス330は、ブロック336において、マップされた領域によって特定される候補キーで、入力イベントを生成する。
IC Press GetEvents方法340によって呼び出される押下InputChannelプロセス(Press InputChannel Process)は、載せている指がキーボードの表面上に強く押下されているときに生じる入力イベントを検出する。これは、載せている指のタッチ信号強度を認識して記憶に留めて、載せている指と押下した指との差を測定する。信号強度の差が閾値を超えると、入力イベントが発生される。
IC TapWaveform GetEvents方法350によって呼び出されるタップ波形InputChannelプロセス(Tap waveform InputChannel Process)は、タップ信号の波形の形状を比較し、既知の形状を認識し、キーボード上のタップ位置の座標を計算し、入力イベントを生成する。複数の使用環境における表面上の位置毎に、典型的な振動波形が記録及び記憶される。1つの実施形態では、記録された波形の各々を分析し、完全な波形ではなく、波形の幾つかの固有の特性(「フィンガープリント(fingerprint)」)を記憶する。ユーザが起こすタップの発生の各々の特性を、データベース中の各キーに対する記憶されている特性と比較し、最も良く整合するものを見付ける。各タップ位置を一意に識別するのに寄与できる波形の特性は、波形の最小ピークと、波形の最大ピークと、波形の減衰率と、波形の標準偏差と、波形の高速フーリエ変換と、波形の平均周波数と、波形の平均絶対振幅と、他のものとを含むが、これらに制限されるわけではない。
ステージ3(図2Aの400)では、入力イベントと、時間的及び空間的に関係するイベントとを相関させる。時間的及び空間的に関係付けられるイベントは、作動の位置と、内容と、期間とに対する相互の一致に基づいて、キーの作動を定める。図2Dは、入力イベントを相関させるソフトウェアアルゴリズムの実施形態のフローチャートを示している。システムは、InputCorrelationManagerによって制御され、ICOR CorrelationInputEvents方法400によって呼び出される。相関付けは、タッチと、押下と、タップ入力チャネルとによって生成される、関係付けられた入力イベントを、1つの相関入力イベントの中に合体させる(coalesce)。相関付けは、6つの個別の段階で進む。
ブロック410に示されている相関付け段階1は、入力イベントを分析して、履歴において幾つのイベントが利用可能であり、相互からの相対時間差がどれだけであるかを決定する。
ブロック420に示されている相関付け段階2は、可能性のある組み合わせであるイベントのペア(デュプル(duple))を生成する。
ブロック430に示されている相関付け段階3は、計算されたデュプルからなる組から、タプル(tuple)(3つ以上のイベント)を生成する。
ブロック440に示されている相関付け段階4は、候補のタプルとデュプルとからなる組を減らして、十分に反射するように(reflexively)サポートしていない組み合わせのうちの何れかを削除する。
ブロック450に示されている相関付け段階5は、新たな相関入力イベントをタプルからなる組から生成し、タプルを構成する個々の入力イベントを、1つの相関入力イベントに置き換える。
InputCorrelationManagerプロセス400は、InputEventManagerから履歴の入力イベントのデータを要求し、入力イベントの履歴から冗長のイベントを削除し、新たな相関入力イベントを生成する。相関イベントに寄与した全ての入力イベントは、入力イベントの履歴データベースから取り除かれる。図5A乃至5Dは、相関プロセスを詳しく示している。
図5Aは、段階2の入力イベントのペアリング(pairing)アルゴリズムの実施形態を示している。RunPairingRule方法420は、ブロック421において、入力イベントのペアの組み合わせ(デュプル)からなる組を生成し、次に、一連のルールを適用して、相関ペアとしての潜在性について、それらを評価する。ペア相関のためのルールは、次のものを含む。時間の相関付け(ブロック422)では、イベントが相互に時間的に近いかをチェックして確かめる。キーの共通部分(intersection)の相関付け(ブロック424)では、入力イベントが候補キーを共有するかをチェックして確かめる。チャネルの相関付け(ブロック426)では、イベントを発生した入力チャネルが互換性をもつことをチェックして保証する。ルールの実行結果を、ペアに対する総スコアの中に論理的に組み合わせる。スコアが閾値を越えている場合は、デュプルは、有効な相関ペアであり、ブロック428において、デュプルの出力リストに加えられる。
図5Bは、段階3の入力イベントの組み合わせアルゴリズムの実施形態を示している。ブロック430では、ペアリングアルゴリズム420によって生成されたデュプルを、3つ以上のイベントの組み合わせの中に更に組み合わせて、一連の「タプル」を作成する。ブロック432では、各タプルを評価し、タプル内の入力イベントの組み合わせが、寄与している各デュプルを十分に反射していることを確実にする。例えば、3つのイベントAと、Bと、Cがあるとすれば、相関デュプルABと、BCと、ACが存在する場合に、タプルABCは有効である。ブロック436では、タプルの評価の結果を、有効なデュプルのリストに付加する。ブロック437では、元のデュプルを付加し、ブロック438では、可能性のある全ての相関イベントのリストにおいて、非相関イベントを1つにする。より多数の寄与イベントを有するタプルは、より強い相関関係を有し、従って、(一般に)より高いスコアを有する。
図5Cは、段階3の入力イベントの削減アルゴリズム(ブロック440)の実施形態を示している。タプルと、デュプルと、単集合(singleton)とのイベントは、入力イベントの信頼度と相関の強度に基づいて割り当てられた数値のスコアを評価される。ブロック442を参照。入力イベントが2つ以上のタプル又はデュプルのメンバである場合は、最も高いスコアを有するタプル又はデュプルが、イベントを獲得し、より低いスコアを付けられたタプル又はデュプルを、候補からなる組から削除する(削減する)444。ブロック444では、残りのタプルと、デュプルと、単集合とのイベントからなる組が、共有する1つの入力イベントを含まず、任意の他の組み合わせからの重複しない入力イベントのメンバ構成を有するまで、削減し続ける。次に、残りのタプルと、デュプルと、単集合とのイベントを、降順のスコアで分類する446。
図5Dは、段階4の相関入力イベントの生成の実施形態(ブロック450)を示している。ブロック452では、削減されたタプルと、デュプルと、単集合とのイベントからなる組の中の要素が、後の処理のために遅らせる制約を有する場合に、それらを放出(release)できるかどうかを確かめるために、各要素をテストする。ブロック452に通った(pass)ものは、ブロック454において、新たな相関入力イベントに変換される。タプルと、デュプルと、単集合とのイベントに寄与した元の入力チャネルの発生された入力イベントは、ブロック456において、処理済みとしてマークを付され、従って、それらは再び処理されない。相関イベントの結果として得られた組は、ユーザによるキーの作動に対する真の候補を表わす。
ステージ4(図2Aの500)では、相関イベントのストリームを分析して、望ましくないイベントを取り除き、イベント内の曖昧なキー候補を決める。図2Eは、入力イベントをフィルタにかけるソフトウェアアルゴリズムの実施形態のフローチャートを示している。CPU110は、InputFilterManagerによって制御され、IFM FilterInputEvents方法500によって呼び出される。InputManagerは、InputFilterManagerを呼び出して、望ましくない相関入力イベントを入力イベントのストリームから削除し、イベント内の候補キーを削減して、1つのキーにする。InputFilterManagerは、ホストコンピュータのオペレーティングシステムに転送するのに適したキー作動コードに処理するために、最終的な一連の入力イベントを、KeyStateManagerに渡す。
実施形態では、フィルタのルールを相関入力イベントの組に連続的に適用するために、ルール実行エンジンを実施する。各フィルタは、入力イベントの組の特定の状況に作用し、スコアを変更し、InputManagerシステムの長期間の状態(long term state)を更新するルールとして定義される。フィルタは、入力イベントからなる組の全体にアクセスし、処理を検討することからイベントを取り除く、及び/又は、イベント内の候補キーからなる組を削減することができる。更に、フィルタは、長期間の傾向と振る舞い分析とを支援して、入力マネージャの長期間(マルチサイクル)の状態にアクセスして更新することができる。長期間の状態は、入力イベントの処理の他のステージにフィードバックする。
InputCorrelationManagerによって計算された相関入力イベントからなる組は、IFM FilterEvents(ブロック500)を通じて、InputFilterManagerに渡される。ブロック520では、ルールエンジンが、フィルタのルールを入力イベントの組の中の各要素に、ルールの登録順に適用する。ルールの結果は、ブロック530において、(フィルタにかけられた)入力イベントに適用される変更の組であり、ブロック540において、これは次の処理ステージに出力される。実施形態では、キーの入力についての特別なケースに対処する幾つかのルールを実施する。
実施形態は、垂直タッチフィルタのルールを含む。垂直タッチフィルタは、垂直に隣接する候補キーで、イベントに対するキーの確率を調節する。ユーザがホームロー(home row)よりも上のキーをタイプするときに、指が伸びて、キーボードの「外に位置し」、しばしば、ホームローよりも上の目的のキーと、その直ぐ下のホームロー上のキーとの両者を作動させる。フィルタは、その状況の特徴を検出し、タイプされる可能性の最も高いものとして、垂直に隣接するものの中の最も上の候補キーのスコアを上昇させる(boost)。垂直に隣接するキー間におけるミスタイプが、より下のキーに対する強い信号に打ち勝たないように、上昇係数は適切にスケーリングされる。従って、上昇は、より上のキーの境界に部分的なミスタイプをしたときに、より上のキーに有利に働く(favor)のに十分小さいが、より下のキーの選択を妨げない。
実施形態は、次のキーのフィルタ(next key filter)を含む。次のキーのフィルタは、曖昧な(等しいスコアを付けられた)候補キーを有するイベントについて、キーの確率を調節する。フィルタは、簡単な確率データベースを使用する。簡単な確率データベースは、現在の対象言語(target language)における任意の所定の文字に対して、その任意の所定の文字に続く可能性の最も高いキーを定める。現在の言語は、キーボードの対象公用語のキーのレイアウトによって特定される。次の文字の確率は、対象言語の単語又は文法構造と関係がない。それは、対象言語における文字のペアの確率分布である。
1つの実施形態では、セットダウンフィルタ(set down filter)は、ユーザがキーボードのホームロー上の載せる位置(rest position)に手を置く結果として生じる入力イベントの特徴を検出する。「セットダウン」は、キーボードを使用していない期間の後で、又は、機敏な(active)タイピングにおける休止中に行われ得る。フィルタは、セットダウン中に指がホームローのキーと接触したときに生じる望ましくないキーの作動を削除する。
セットダウンフィルタは、入力イベントのキューと入力マネージャの長期間の状態とを更新し、それらに依存する(rely on)、マルチサイクルフィルタ(multicycle filter)である。セットダウンフィルタは、2つの異なる段階で処理する。段階1は、検出段階(detection phase)であり、相関入力イベントの組を分析し、2つ以上の同時のホームローイベントを探す。2つ以上の同時のホームローイベントは、時間的に近い、ホームローに対する複数のタッチ作動を含む。セットダウンが検出されると、その後の処理サイクルと、キーの作動へのイベントの変換とに対して、長期間のセットダウン状態がアサートされる。セットダウン状態がアサートされると、セットダウンが完結するまで、全ての入力イベントが延期される(defer)。段階2は、完結段階(completion phase)であり、延期された及び新たなイベントを分析し、イベントがセットダウンに加わるのを適格とするか又は不適格とする。セットダウンの終了は、セットダウンに対する最大期間を超えるか、セットダウン内における個々のイベント間の最大期間(ギャップ閾値)を超えるか、又は、非ホームローの入力イベントを検出することのうちの何れかによって決定される。セットダウンの終了条件のうちの何れかが満たされると、セットダウン状態はフィルタによってクリアされる。任意の延期イベントは、セットダウンの一部として取り除かれるか、又は処理のために解除される。セットダウンの完結が、ホームローイベントがセットダウンに加わるのを不適格とする終了を検出することがあるので、セットダウンの検出は、イベントが取り除かれる結果に常になるわけではない。
1つの実施形態では、タイピングスタイルフィルタ(typing style filter)は、InputManagerの長期間の状態と入力イベントとを分析し、現在のユーザのタイピングスタイルがどんなものであるかを決定する。次に、タイピングスタイルフィルタは、様々な制御パラメータと長期間の状態の値とを設定する。これらは他のフィルタにフィードバックする(他のフィルタによって使用される)。他のフィルタは、セットダウンと特別なケースとを含む。
1つの実施形態では、マルチプルモディファイヤフィルタ(a multiple modifier filter)は、ミスタイプによる2つ以上のモディファイヤキーの偶然の作動を防ぐ。モディファイヤキーは、一般に、キーボードの周囲を占め、特にタッチタイピストに対して、適切に動作し難くする。マルチプルモディファイヤフィルタは、モディファイヤキーを用いたイベントに対するキーの確率を調節し、最もよく使用されるモディファイヤとして、シフトキー(shift key)に有利に働き、めったに使用されないキーとして、キャップスロックキー(caps lock key)に対するスコアを下げる。調節されたスコアは、シフトキーに手を伸ばしたときの不注意によるキャップスロックの作動の多くを無くす。
KeyStateManagerによって制御され、KSM CalculateKeyState方法600によって呼び出される、ステージ5(図2Aの600)では、フィルタにかけられたイベントのシーケンスを、キーのアップダウン作動のストリームに変換する。次に、これはホストコンピュータに送られる。
ここに記載されている実施形態の焦点は、キーボードの応用に関するが、このシステムを何等かのタイプのタッチスクリーンデバイスに応用するのにも成功し得ることが、当業者に分かるであろう。
本発明の好ましい実施形態を例示して説明したが、本発明の意図及び範囲から逸脱することなく、多くの変更を行なうことができる。従って、本発明の範囲は、好ましい実施形態の開示によって制限されない。その代わりに、本発明は、請求項を参照することによって全体的に決定されるべきである。
排他的な所有権又は特権に対する権利を主張する本発明の実施形態は、請求項によって定められる。
以下に、本出願時の特許請求の範囲に記載された発明を付記する。
[1] 固体の平坦なタッチセンシティブ表面に対するユーザの入力を検出し、ユーザの入力の位置を決定する方法であって、
前記方法は、前記タッチセンシティブ表面に含まれる複数のセンサと信号で通信するプロセッサデバイスによって行なわれ、
前記方法は、
複数のタッチセンサに基づいて、前記タッチセンシティブ表面へのユーザの複数のタッチを記録することと、
3つ以上の振動センサによって感知されたタップイベントに基づいて、前記タッチセンシティブ表面に接続されている1つ以上の振動センサから、タップイベントの信号を受信することと、
前記記録されたユーザの複数のタッチに基づいて、前記タップイベントの信号が受信された後で、選択をアサートすることと、
を含む、方法。
[2] アサートすることは、タッチ及び振動センサの複数の信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップセンサのデータのイベントに変換することを含む、前記[1]の方法。
[3] アサートすることは、定められた閾値を超えた、前記1つ以上の振動センサからの複数の信号の振幅に基づいて、タップセンサのデータのイベントの信号の発生を検出することを含む、前記[2]の方法。
[4] アサートすることは、複数の傾斜合計値を使用して、振動波形の最小値の位置に基づいて、前記タップセンサのデータのイベントの信号の発生時間を検出することを含む、前記[2]の方法。
[5] アサートすることは、センサのデータの複数のイベントを一連の個別の入力イベントに変換することを含み、
前記一連の個別の入力イベントは、前記センサのデータに関連付けられているタイプによって分類され、
前記一連の個別の入力イベントは、複数の候補キーからなる組と、関連付けられている位置情報とを含む、前記[2]の方法。
[6] アサートすることは、複数の振動センサにおけるタップイベントの到達時間の差に基づいて、前記タッチセンシティブ表面に対する前記タップセンサのデータのイベントの物理的座標を三角法で測定することを含む、前記[5]の方法。
[7] アサートすることは、
マルチラテレーションの計算結果を既知の表面の座標にマップすることによって、物理的な物質とアセンブリとにおける差異を調節することと、
可能性のある複数の座標からなる組を選択することと、
を含み、
前記可能性のある複数の座標からなる組は、前記タップイベントの源の座標である0乃至1の確率を割り当てられる、前記[6]の方法。
[8] 三角法で測定することは、複数の振動センサにおけるタップイベントの振幅の差と、線形力応答の近似値とを使用し、物理的座標を三角法で測定することを含む、前記[5]の方法。
[9] アサートすることは、振幅の差の計算結果を既知の表面の座標にマップし、可能性ある複数の座標からなる組を選択することによって、物理的な物質及びアセンブリにおける差異を調整することを含み、
前記可能性ある複数の座標からなる組は、前記タップイベントの源の座標である0乃至1の確率を割り当てられる、前記[8]の方法。
[10] アサートすることは、複数の例示的な波形からなる組と比較することによってタップの波形を認識することに基づいて、前記タップセンサのデータのイベントの信号の発生時間を検出すること、を含む、前記[5]の方法。
[11] 前記信号の波形を認識することは、前記波形の全体ではなく、前記波形の計算された特性を使用して行われる、前記[10]の方法。
[12] アサートすることは、複数のルールを使用して、相互に支援する複合入力イベントからなる組を生成することを含み、
前記相互に支援する複合入力イベントからなる組は、複数の元のイベントのデータの全てを含む、前記[5]の方法。
[13] 相関させることは、時間的に近い位置によって相関させることを含む、前記[12]の方法。
[14] 相関させることは、前記センサのデータの源に基づいて相関させることを含む、前記[12]の方法。
[15] 相関させることは、前記入力イベントが表す候補キーの複数の作動の共通性に基づいて相関させることを含む、前記[12]の方法。
[16] アサートすることは、前記複数の入力イベントからなる組からの複数の望ましくない入力イベントを、複数のフィルタによって取り除くことを含む、前記[12]の方法。
[17] アサートすることは、目的のキーより下にあるキーの不注意による作動を検出して、取り除くことを含む、前記[16]の方法。
[18] アサートすることは、タイプする直前にキーボードのホームローの位置に手を載せた結果としてのキーの複数の作動を検出して、取り除くことを含む、前記[16]の方法。
[19] アサートすることは、キャップスロックキーよりも、シフトキーの最もよく行われる使用に有利に働くように、複数のモディファイヤキーの偶然の又は部分的な複数の作動のうちの少なくとも1つを選択的に検出して、抑制することを含む、前記[16]の方法。
[20] アサートすることは、機敏なタイピング中に、複数の同時のモディファイヤキーの作動を選択的に検出して、抑制することを含む、前記[16]の方法。
[21] アサートすることは、履歴のタッチ作動のデータに基づいて、「タッチする」又は「躊躇する」タイピストとして、ユーザのタイピングスタイルを検出することと、
その情報を複数の他のフィルタリング機構にフィードバックすることと、
を含む、前記[16]の方法。
[22] アサートすることは、前記複数の入力イベントからなる組を、一連のキーアップ及びキーダウンの作動に変換することを含む、前記[16]の方法。

Claims (19)

  1. タッチセンシティブ表面に対するユーザが意図したキー作動を決定する方法であって、
    前記方法は、
    複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを記録することと、
    前記複数の入力イベントを相関させて、時間が互いに近く且つ候補キーを共有する少なくとも2つの関連する入力イベントを識別することと、
    前記少なくとも2つの関連する入力イベントの相関の強度に基づいて1つの候補キー作動イベントを決定することと、
    1つ以上の振動センサから受信した信号に少なくとも部分的に基づいて、前記1つの候補キー作動イベントを、ユーザが意図したキー作動イベント又はキー作動イベントとして意図していないユーザ接触、の何れかと認定することと、
    を含む、方法。
  2. 前記複数の入力イベントを記録することは、
    前記複数のタッチセンサと前記1つ以上の振動センサとからの信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップデータに変換すること、
    を含む、請求項1の方法。
  3. 前記複数の入力イベントを相関させることは、
    前記複数のタッチセンサから受信した信号間の時間的な近さに少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
    を含む、請求項1の方法。
  4. 前記複数の入力イベントを相関させることは、
    前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの相対的な位置に少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
    を含む、請求項1の方法。
  5. 前記複数の入力イベントを相関させることは、
    時間的な近さ、空間的な近さ、又は時間的な期間のうちの少なくとも1つを基準にしている相互の一致に少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
    を含請求項1の方法。
  6. 前記1つの候補キー作動イベントをキー作動イベントとして意図していないユーザ接触と認定することは、
    前記タッチセンシティブ表面上に見えるキーボードのホームローにユーザの手を載せた結果として生じた前記1つの候補キー作動イベントを決定すること、
    を含む、請求項1の方法。
  7. 前記複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを記録することは、
    (i)前記複数のタッチセンサから受信した信号と、(ii)前記1つ以上の振動センサから受信した信号と、に少なくとも部分的に基づいて、複数の入力イベントを記録すること、
    を含む、請求項1の方法。
  8. 前記複数の入力イベントを記録することは、
    前記複数のタッチセンサから受信した信号に基づいて、複数のタッチイベントを記録することと、
    前記1つ以上の振動センサから受信した信号に基づいて、1つ以上のタップイベントを記録することと、
    を含む、請求項の方法。
  9. 前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別することは、
    以下の基準、即ち、
    時間的な近さ、
    前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの位置、
    前記1つ以上の振動センサからの信号が受信された場合における、前記1つ以上の振動センサの位置、
    前記複数のタッチセンサから受信した信号によって示される候補キー間の相互の一致、
    前記1つ以上の振動センサから受信した信号によって示される候補キー間の相互の一致、又は、
    前記複数のタッチセンサから受信した信号と、前記1つ以上の振動センサから受信した信号と、によって示される候補キー間の相互の一致、
    のうちの少なくとも1つに基づいて、前記タッチイベントと前記タップイベントとを相関させること、
    を含む、請求項の方法。
  10. 前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別することは、
    前記複数の入力イベントから成るそれぞれのグループを、前記1つの候補キー作動イベントに関連付けること、
    を含み、
    前記複数の入力イベントから成るそれぞれのグループは、1つ以上のタッチイベント及び/又は1つ以上のタップイベントを含み、
    前記1つの候補キー作動イベントを認定することは、
    前記複数の入力イベントから成るそれぞれのグループがタップイベントを欠いていると決定すること、
    を含む、請求項の方法。
  11. 前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別することは、
    前記複数の入力イベントを相関させて、前記1つの候補キー作動イベントを含む、1つ以上の候補キー作動イベントから成る組を識別すること、
    を含み
    前記1つ以上の候補キー作動イベントのうちの任意の1つの候補キー作動イベントを、キー作動イベントとして意図していないユーザ接触と認定することは、
    前記組から、その候補キー作動イベントを削除すること、
    を含む、請求項1の方法。
  12. タッチ/タップセンシティブキーボードを有する装置であって、
    前記装置は、
    平坦な表面を有するハウジングと、
    前記ハウジング内の、前記平坦な表面の下に配置されている複数のタッチセンサと、
    前記ハウジング内に配置されている1つ以上の振動センサと、
    前記複数のタッチセンサと前記1つ以上の振動センサとから信号を受信するために結合されているプロセッサと、
    プログラムコードを記憶するメモリと、
    を具備し、
    前記プログラムコードは、前記プロセッサによって実行された場合に、前記プロセッサに、
    複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを前記メモリ内に記録させ、
    前記複数の入力イベントを相関させて、時間が互いに近く且つ候補キーを共有する少なくとも2つの関連する入力イベントを識別させ、
    前記少なくとも2つの関連する入力イベントの相関の強度に基づいて1つの候補キー作動イベントを決定させ、
    1つ以上の振動センサから受信した信号に少なくとも部分的に基づいて、前記1つの候補キー作動イベントを、ユーザが意図したキー作動イベント又はキー作動イベントとして意図していないユーザ接触、の何れかと認定させる、装置。
  13. 前記メモリは、
    前記プログラムコードを記憶するプログラムメモリと、
    前記複数の入力イベントを記録するデータメモリと、
    を具備し、
    実行された場合に、前記プロセッサに、複数の入力イベントを記録させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、前記複数のタッチセンサと前記1つ以上の振動センサとからの信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップデータに変換させるプログラムコード、
    を含む、請求項12の装置。
  14. 実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、(i)前記複数のタッチセンサから受信した信号間の時間的な近さ、(ii)前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの相対的な位置、又は(iii)前記複数の入力イベントにそれぞれ対応する候補キー間の相互の一致、のうちの少なくとも1つに基づいて、前記複数の入力イベントを相関させるプログラムコード、
    を含む、請求項12の装置。
  15. 実行された場合に、前記プロセッサに、前記複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、前記複数の入力イベントを記録させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、(i)前記複数のタッチセンサから受信した信号と、(ii)前記1つ以上の振動センサから受信した信号と、に少なくとも部分的に基づいて、複数の入力イベントを記録させるプログラムコード、
    を含む、請求項12の装置。
  16. 実行された場合に、前記プロセッサに、前記複数の入力イベントを記録させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、前記複数のタッチセンサから受信した信号に基づいて、複数のタッチイベントを記録させ、前記1つ以上の振動センサから受信した信号に基づいて、1つ以上のタップイベントを記録させるプログラムコード、
    を含む、請求項15の装置。
  17. 実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、以下の基準、即ち、
    時間的な近さ、
    前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの位置、
    前記1つ以上の振動センサからの信号が受信された場合における、前記1つ以上の振動センサの位置、
    前記複数のタッチセンサから受信した信号によって示される候補キー間の相互の一致、
    前記1つ以上の振動センサから受信した信号によって示される候補キー間の相互の一致、又は、
    前記複数のタッチセンサから受信した信号と、前記1つ以上の振動センサから受信した信号とによって示される、候補キー間の相互の一致、
    のうちの少なくとも1つに基づいて、前記タッチイベントと前記タップイベントとを相関させるプログラムコード、
    を含む、請求項16の装置。
  18. 実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくも2つの関連する入力イベントを識別させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、前記複数の入力ベントから成るそれぞれのグループを、前記1つの候補キー作動イベントに関連付けさせるプログラムコード、
    を含み、
    前記複数の入力イベントから成るそれぞれのグループは、1つ以上のタッチイベント及び/又は1つ以上のタップイベントを含み、
    実行された場合に、前記プロセッサに、前記1つの候補キー作動イベントを認定させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、前記複数の入力イベントから成るそれぞれのグループがタップイベントを欠いていると決定させるプログラムコード、
    を含む、請求項16の装置。
  19. 実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記1つの候補キー作動イベントを含む、1つ以上の候補キー作動イベントから成る組を識別させるプログラムコード、
    を含み
    実行された場合に、前記プロセッサに、前記1つ以上の候補キー作動イベントのうちの任意の1つの候補キー作動イベントを、キー作動イベントとして意図していないユーザ接触と認定させる前記プログラムコードは、
    実行された場合に、前記プロセッサに、前記組から、その候補キー作動イベントを削除させるプログラムコード、
    を含む、請求項12の装置。
JP2013518583A 2010-06-28 2011-06-28 タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法 Active JP5849095B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US35923510P 2010-06-28 2010-06-28
US61/359,235 2010-06-28
PCT/US2011/042225 WO2012006108A2 (en) 2010-06-28 2011-06-28 Method for detecting and locating keypress-events on touch-and vibration-sensitive flat surfaces

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015233734A Division JP2016066365A (ja) 2010-06-28 2015-11-30 タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法

Publications (2)

Publication Number Publication Date
JP2013534111A JP2013534111A (ja) 2013-08-29
JP5849095B2 true JP5849095B2 (ja) 2016-01-27

Family

ID=45441736

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013518583A Active JP5849095B2 (ja) 2010-06-28 2011-06-28 タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法
JP2015233734A Pending JP2016066365A (ja) 2010-06-28 2015-11-30 タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015233734A Pending JP2016066365A (ja) 2010-06-28 2015-11-30 タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法

Country Status (6)

Country Link
US (1) US20120113028A1 (ja)
EP (1) EP2585897A4 (ja)
JP (2) JP5849095B2 (ja)
CN (1) CN103154860B (ja)
CA (1) CA2804014A1 (ja)
WO (1) WO2012006108A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10126942B2 (en) 2007-09-19 2018-11-13 Apple Inc. Systems and methods for detecting a press on a touch-sensitive surface
US9454270B2 (en) 2008-09-19 2016-09-27 Apple Inc. Systems and methods for detecting a press on a touch-sensitive surface
US10203873B2 (en) 2007-09-19 2019-02-12 Apple Inc. Systems and methods for adaptively presenting a keyboard on a touch-sensitive display
US9489086B1 (en) 2013-04-29 2016-11-08 Apple Inc. Finger hover detection for improved typing
US8587422B2 (en) 2010-03-31 2013-11-19 Tk Holdings, Inc. Occupant sensing system
JP5805974B2 (ja) 2010-03-31 2015-11-10 ティーケー ホールディングス,インコーポレーテッド ステアリングホイールセンサ
JP5759230B2 (ja) 2010-04-02 2015-08-05 ティーケー ホールディングス,インコーポレーテッド 手センサを有するステアリング・ホイール
DE102011084345A1 (de) * 2011-10-12 2013-04-18 Robert Bosch Gmbh Bediensystem und Verfahren zur Darstellung einer Bedienfläche
TWI590134B (zh) * 2012-01-10 2017-07-01 義隆電子股份有限公司 觸控面板掃描方法
WO2013154720A1 (en) 2012-04-13 2013-10-17 Tk Holdings Inc. Pressure sensor including a pressure sensitive material for use with control systems and methods of using the same
US20150106041A1 (en) * 2012-04-30 2015-04-16 Hewlett-Packard Development Company Notification based on an event identified from vibration data
WO2014043664A1 (en) 2012-09-17 2014-03-20 Tk Holdings Inc. Single layer force sensor
TWI637312B (zh) 2012-09-19 2018-10-01 三星電子股份有限公司 用於在透明顯示裝置顯示資訊的方法、顯示裝置及電腦可讀記錄媒體
US20150035759A1 (en) * 2013-08-02 2015-02-05 Qeexo, Co. Capture of Vibro-Acoustic Data Used to Determine Touch Types
US10289302B1 (en) 2013-09-09 2019-05-14 Apple Inc. Virtual keyboard animation
US9207794B2 (en) 2013-12-30 2015-12-08 Google Inc. Disambiguation of user intent on a touchscreen keyboard
CN106940545A (zh) * 2017-03-31 2017-07-11 青岛海尔智能技术研发有限公司 一种家用电器及其触控按键组件、触控方法
CN109474266B (zh) * 2017-09-08 2023-04-14 佛山市顺德区美的电热电器制造有限公司 输入装置、输入装置的检测方法以及家用电器
CN111263927B (zh) * 2017-10-20 2024-01-23 雷蛇(亚太)私人有限公司 用户输入设备及用于在用户输入设备中识别用户输入的方法
CN110377175B (zh) * 2018-04-13 2023-02-03 矽统科技股份有限公司 触控面板上敲击事件的识别方法及系统,及终端触控产品
CN111103998A (zh) * 2018-10-26 2020-05-05 泰科电子(上海)有限公司 触控检测装置
US10901524B2 (en) 2019-01-23 2021-01-26 Microsoft Technology Licensing, Llc Mitigating unintentional triggering of action keys on keyboards
CN110658975B (zh) * 2019-09-17 2023-12-01 华为技术有限公司 一种移动终端操控方法及装置
DE102021129781A1 (de) 2021-11-16 2023-05-17 Valeo Schalter Und Sensoren Gmbh Sensorvorrichtung für eine Bedieneingabevorrichtung mit einem berührsensitiven Bedienelement, Verfahren zum Betrieb einer Sensorvorrichtung und Bedieneingabevorrichtung mit einer Sensorvorrichtung

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2211705B (en) * 1987-10-28 1992-01-02 Video Technology Electronics L Electronic educational video system apparatus
JPH0769762B2 (ja) * 1991-12-04 1995-07-31 株式会社アスキー 同時打鍵と逐次打鍵の判定方法及びその装置
JP3154614B2 (ja) * 1994-05-10 2001-04-09 船井テクノシステム株式会社 タッチパネル入力装置
JPH1185352A (ja) * 1997-09-12 1999-03-30 Nec Corp 仮想現実体感キーボード
US7030863B2 (en) * 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7746325B2 (en) * 2002-05-06 2010-06-29 3M Innovative Properties Company Method for improving positioned accuracy for a determined touch input
CN1666169B (zh) * 2002-05-16 2010-05-05 索尼株式会社 输入方法和输入装置
JP2005204251A (ja) * 2004-01-19 2005-07-28 Sharp Corp ユーザ入力制御装置、ユーザ入力制御方法、プログラムおよび記録媒体
JP2006323589A (ja) * 2005-05-18 2006-11-30 Giga-Byte Technology Co Ltd 仮想キーボード
US9019209B2 (en) * 2005-06-08 2015-04-28 3M Innovative Properties Company Touch location determination involving multiple touch location processes
US20070109279A1 (en) * 2005-11-15 2007-05-17 Tyco Electronics Raychem Gmbh Method and apparatus for identifying locations of ambiguous multiple touch events
US7554529B2 (en) * 2005-12-15 2009-06-30 Microsoft Corporation Smart soft keyboard
US7777728B2 (en) * 2006-03-17 2010-08-17 Nokia Corporation Mobile communication terminal
US7903092B2 (en) * 2006-05-25 2011-03-08 Atmel Corporation Capacitive keyboard with position dependent reduced keying ambiguity
JP5794781B2 (ja) * 2007-09-19 2015-10-14 クリーンキーズ・インコーポレイテッド 洗浄可能なタッチおよびタップ感知性表面
JP2010066899A (ja) * 2008-09-09 2010-03-25 Sony Computer Entertainment Inc 入力装置

Also Published As

Publication number Publication date
WO2012006108A3 (en) 2012-03-29
CN103154860A (zh) 2013-06-12
CA2804014A1 (en) 2012-01-12
US20120113028A1 (en) 2012-05-10
WO2012006108A2 (en) 2012-01-12
EP2585897A4 (en) 2016-03-30
CN103154860B (zh) 2016-03-16
JP2013534111A (ja) 2013-08-29
JP2016066365A (ja) 2016-04-28
EP2585897A2 (en) 2013-05-01

Similar Documents

Publication Publication Date Title
JP5849095B2 (ja) タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法
JP6429981B2 (ja) ユーザ入力の意図の分類
US9454270B2 (en) Systems and methods for detecting a press on a touch-sensitive surface
US9104260B2 (en) Systems and methods for detecting a press on a touch-sensitive surface
US20090066659A1 (en) Computer system with touch screen and separate display screen
KR101551133B1 (ko) 터치-감응 디스플레이 스크린에서의 압력차 이용
KR101555795B1 (ko) 터치-감응 디스플레이 스크린에서의 압력차 이용
US20140028624A1 (en) Systems and methods for detecting a press on a touch-sensitive surface
US20140247245A1 (en) Method for triggering button on the keyboard
US20060279551A1 (en) Method for object detection on a capacitive touchpad
CN103164067B (zh) 判断触摸输入的方法及电子设备
CN104407793B (zh) 触摸信号处理方法及设备
US10241590B2 (en) Capacitive keyboard having variable make points
TW202111500A (zh) 觸控面板裝置、操作識別方法、以及儲存操作識別程式的儲存媒體
US20150103010A1 (en) Keyboard with Integrated Pointing Functionality
US20220342530A1 (en) Touch sensor, touch pad, method for identifying inadvertent touch event and computer device
US10558306B2 (en) In-cell touch apparatus and a water mode detection method thereof
JP2007025804A (ja) 静電容量式タッチパネルの複数物品検出方法
US8896568B2 (en) Touch sensing method and apparatus using the same
US20140078064A1 (en) Pointer control method and device
CN115145366A (zh) 一种设备的合盖确认方法
CN104679360A (zh) 整合输入装置及其方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140526

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140825

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20150108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150309

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150423

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150528

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151130

R150 Certificate of patent or registration of utility model

Ref document number: 5849095

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250