(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-14
(54)【発明の名称】連続的コントローラ較正
(51)【国際特許分類】
G06F 3/041 20060101AFI20220407BHJP
G06F 3/0354 20130101ALI20220407BHJP
G06F 3/044 20060101ALI20220407BHJP
【FI】
G06F3/041 520
G06F3/041 400
G06F3/0354 453
G06F3/044 Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021549743
(86)(22)【出願日】2020-01-28
(85)【翻訳文提出日】2021-10-05
(86)【国際出願番号】 US2020015435
(87)【国際公開番号】W WO2020176185
(87)【国際公開日】2020-09-03
(32)【優先日】2019-02-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】517160525
【氏名又は名称】バルブ コーポレーション
(74)【代理人】
【識別番号】110001737
【氏名又は名称】特許業務法人スズエ国際特許事務所
(72)【発明者】
【氏名】ニートフェルド、スコット・ダグラス
(72)【発明者】
【氏名】ラインバウ、ジェフリー・ジョージ
【テーマコード(参考)】
5B087
【Fターム(参考)】
5B087AB02
5B087AD01
(57)【要約】
方法は、近接センサーのための複数の値の範囲を決定することを含む。方法は、前記近接センサーから近接データを受信することを含む。方法は、最大値に関連付けられた限界を減衰させることを含む。方法は、最小値に関連付けられた限界を減衰させることを含む。方法は、前記近接センサーによって検出された複数の値の範囲を決定することを含む。さらに、方法は、前記近接センサーのための更新されたスケールファクターを決定することを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
方法であって、
近接センサーによって検出された近接値の範囲を決定することであって、前記近接値の範囲が、最大値および最小値を含む、前記決定することと、
前記近接センサーから近接値を受信することと、
前記最大値に関連付けられた限界を減衰させることと、
前記最小値に関連付けられた限界を減衰させることと、
前記最大値に関連付けられた前記限界および前記最小値に関連付けられた前記限界に少なくとも部分的に基づいて、前記近接センサーによって検出された近接値の更新された範囲を決定することと、
近接値の前記更新された範囲に少なくとも部分的に基づいて、前記近接センサーによって検出された前記近接値のためのスケールファクターを決定することと、を含む、方法。
【請求項2】
前記最大値に関連付けられた前記限界を前記減衰させることおよび前記最小値に関連付けられた前記限界を前記減衰させることが、前記近接センサーによって検出された近接値の前記範囲に少なくとも部分的に基づいている、請求項1に記載の方法。
【請求項3】
前記近接値が、従前のいくつかのフレームの間に受信され、前記方法は、前記従前のいくつかのフレームの間に受信された前記近接値に基づいて、平均値を決定することをさらに含み、前記最大値に関連付けられた前記限界を前記減衰させることおよび前記最小値に関連付けられた前記限界を前記減衰させることが、さらに前記平均値に少なくとも部分的に基づく、請求項1または2に記載の方法。
【請求項4】
前記最大値に関連付けられた前記限界を減衰させる第1の頻度を決定することであって、前記第1の頻度が、所定の数の従前のフレームの間に受信された前記近接値の変動性に少なくとも部分的に基づいている、前記決定することと、
前記最小値に関連付けられた前記限界を減衰させる第2の頻度を決定することであって、前記第2の頻度が、前記所定の数の従前のフレームの間に受信された前記近接値の前記変動性に少なくとも部分的に基づいている、前記決定することと、さらを含み、
前記最大値に関連付けられた前記限界を前記減衰させることが、前記第1の頻度に少なくとも部分的に基づいており、
前記最小値に関連付けられた前記限界を前記減衰させることが、前記第2の頻度に少なくとも部分的に基づいている、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記近接センサーによって検出された前記近接値が、コントローラに近接している物体に対応し、前記方法が、
前記コントローラに対する前記物体の近接に対応する表示を生成することと、
前記表示を1つ以上のコンピューティングデバイスに伝送することと、をさらに含む、請求項1乃至4のいずれか1項に記載の方法。
【請求項6】
前記近接値が、第1の近接値を含み、前記方法が、
第2の近接値を受信することと、
前記最大値に関連付けられた前記限界および前記最小値に関連付けられた前記限界を、前記第2の近接値に少なくとも部分的に基づいて、減衰させることと、
前記近接センサーによって検出された平均値を決定することと、
前記平均値が最大静電容量値に関連付けられた限界を超えること、または
前記平均値が最小静電容量値に関連付けられた限界未満であること、のうちの少なくとも1つを決定することと、をさらに含む、請求項1乃至5のいずれか1項に記載の方法。
【請求項7】
前記平均値が前記最大静電容量値に関連付けられた前記限界を超えることに少なくとも部分的に基づいて、前記最大値に関連付けられた更新された限界を決定すること、または
前記平均値が前記最小静電容量値に関連付けられた前記限界未満であることに少なくとも部分的に基づいて、前記最小値に関連付けられた更新された限界を決定すること、のうちの少なくとも1つをさらに含む、請求項1乃至6のいずれか1項に記載の方法。
【請求項8】
前記平均値が、所定の数の従前のフレームにわたって決定され、
前記最大値に関連付けられた前記更新された限界が、前記所定の数の従前のフレームにわたって決定された前記平均値に少なくとも部分的に基づいており、
前記最小値に関連付けられた前記更新された限界が、前記所定の数の従前のフレームにわたって決定された前記平均値に少なくとも部分的に基づいている、請求項1乃至7のいずれか1項に記載の方法。
【請求項9】
前記近接センサーが、静電容量式パッドを含み、
個々の静電容量式パッドが、前記近接値を生成するように構成されており、近接値が、コントローラに近接している物体に関連付けられている、請求項1乃至8のいずれか1項に記載の方法。
【請求項10】
コントローラであって、
センサーと、
1つ以上のプロセッサと、
コンピュータ実行可能命令を格納する1つ以上の非一時的なコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、
前記センサーから、第1のデータを受信することと、
前記第1のデータに少なくとも部分的に基づいて、近接値の範囲を決定することであって、近接値の前記範囲が、第1の最大近接値および第1の最小近接値を含む、前記決定することと、
第1のスケールファクターを決定することと、
前記センサーから、第2のデータを受信することと、
前記第1の最大近接値または前記第1の最小近接値のうちの少なくとも1つを減衰させることと、
近接値の更新された範囲を決定することであって、近接値の前記更新された範囲が、第2の最大近接値または第2の最小近接値のうちの少なくとも1つを含む、前記決定することと、
第2のスケールファクターを決定することと、
前記第2のスケールファクターに少なくとも部分的に基づいて、近接を決定することと、を含む行為を実行させる、1つ以上の非一時的なコンピュータ可読媒体と、を備える、コントローラ。
【請求項11】
前記第1の最大近接値が、前記センサーに対する物体の第1の近接に関連付けられており、前記第1の最小近接値が、前記センサーに対する前記物体の第2の近接に関連付けられており、
前記第2の最大近接値が、前記センサーに対する前記物体の前記第1の近接に関連付けられており、前記第2の最小近接値が、前記センサーに対する前記物体の前記第2の近接に関連付けられている、請求項10に記載のコントローラ。
【請求項12】
コンピュータ実行可能命令を格納する前記1つ以上の非一時的なコンピュータ可読媒体が、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、前記近接の表示をコンピューティングデバイスに伝送することと、をさらに含む行為を実行させる、請求項1または11に記載のコントローラ。
【請求項13】
コンピュータ実行可能命令を格納する前記1つ以上の非一時的なコンピュータ可読媒体が、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、
平均近接値を決定することと、
前記平均近接値が前記第2の最大近接値を超えること、または
前記平均近接値が前記第2の最小近接値未満であること、のうちの少なくとも1つを決定することと、
第3の最大近接値または第3の最小近接値のうちの少なくとも1つを決定することと、をさらに含む行為を実行させる、請求項10乃至12のいずれか1項に記載のコントローラ。
【請求項14】
前記第3の最大近接値または前記第3の最小近接値が、前記平均近接値のパーセンテージに少なくとも部分的に基づいている、請求項10乃至13のいずれか1項に記載のコントローラ。
【請求項15】
前記第2のデータが、近接値を含み、
前記第1の最大近接値を減衰させることが、前記1つ以上の近接値が閾値期間の間、前記第1の最大近接値の第1の閾値範囲外にあると決定することに少なくとも部分的に基づいており、
前記第1の最小近接値を減衰させることが、前記1つ以上の近接値が前記閾値期間の間、前記第1の最小近接値の第2の閾値範囲外にあると決定することに少なくとも部分的に基づいている、請求項10乃至14のいずれか1項に記載のコントローラ。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本特許出願は、2019年2月28日に出願された米国特許出願第16/289,259号の優先権を主張し、参照により本明細書に完全に組み込まれる。
【技術分野】
【0002】
[背景技術]
ハンドヘルドコントローラは、例えば、コンピューティングデバイスに入力を提供するための一連のアーキテクチャで使用される。例えば、ハンドヘルドコントローラは、ゲームアプリケーション、ゲームコンソール、ゲームサーバなどを実行するパーソナルコンピューティングデバイスとプレーヤが相互作用することを可能にするように、ゲーム業界において利用される。いくつかの事例では、ハンドヘルドコントローラは、仮想現実(VR)環境における使用を見つけ得、掴むこと、投げること、絞ることなどの自然な相互作用を模倣し得る。現在のハンドヘルドコントローラは、機能性の範囲を提供するが、さらなる技術的改善が、ユーザー経験を向上し得る。
【図面の簡単な説明】
【0003】
【
図1】本開示の例示的な実施形態による、手保持具が開位置にあるコントローラを示す。
【0004】
【
図2】本開示の例示的な実施形態による、ユーザーの開いた手のひらを上にした手の中にある
図1のコントローラを示す。
【0005】
【
図3】本開示の例示的な実施形態による、ユーザーの閉じた手の中にある
図1のコントローラを示す。
【0006】
【
図4】本開示の例示的な実施形態による、ユーザーの閉じた手のひらを下にした手の中にある
図1のコントローラを示す。
【0007】
【
図5】本開示の例示的な実施形態による、手保持具が開位置にある、一対のコントローラを示す。
【0008】
【
図6】本開示の例示的な実施形態による、
図1のコントローラの近接センサーを示す。
【0009】
【
図7】本開示の例示的な実施形態による、
図1のコントローラの近接センサーを構成するための例示的なプロセスを示す。
【0010】
【
図8】本開示の例示的な実施形態による、
図1のコントローラの近接センサーを構成するための例示的なプロセスを示す。
【0011】
【
図9】本開示の例示的な実施形態による、
図1のコントローラの近接センサーを構成するための例示的なプロセスを示す。
【0012】
【
図10】本開示の例示的な実施形態による、
図1のコントローラの近接センサーを構成するための例示的なプロセスを示す。
【0013】
【
図11】本開示の例示的な実施形態による、
図1のコントローラの近接センサーを構成することを示す例示的なチャートを示す。
【0014】
【
図12】本開示の例示的な実施形態による、
図1のコントローラの例示的な構成要素を示す。
【発明を実施するための形態】
【0015】
本明細書に記載されるのは、とりわけ、タッチセンシティブ制御部および/またはタッチセンシティブ制御部を連続的に較正するための方法を有するハンドヘルドコントローラである。いくつかの事例では、本明細書に記載されるハンドヘルドコントローラは、ビデオゲームプレイなどに関与するデバイス(例えば、テレビ、オーディオシステム、パーソナルコンピューティングデバイス、ゲームコンソールなど)を制御し得る。ハンドヘルドコントローラは、ジョイスティック、トラックパッド、トラックボール、ボタン、またはハンドヘルドコントローラのユーザーによって操作可能な他の制御部などの1つ以上の制御部を含み得る。追加的に、ハンドヘルドコントローラは、ユーザーの存在、近接、場所、および/またはジェスチャを検出するように構成されたセンサーを含み得る。例えば、ハンドヘルドコントローラは、ハンドヘルドコントローラに対する、ユーザーの指または指の一部などの1つ以上の物体の近接を検出するように構成された近接センサーを含み得る。しかしながら、ハンドヘルドコントローラは、赤外線センサー、音響音波を利用するセンサー、および/またはハンドヘルドコントローラでのタッチ入力および/またはハンドヘルドコントローラに対する1つ以上の物体の近接を検出するように構成された任意の他のタイプのセンサーを含み得る。
【0016】
いくつかの事例では、近接センサーは、行、列、グリッド、および/またはグループ(複数可)に配列された近接センサーまたは静電容量式パッド(キャパシティブパッド)のアレイを含み得る。静電容量式パッドは、ハンドヘルドコントローラに対する指の近接に対応する近接データ(例えば、静電容量値)を生成し得る。ハンドヘルドコントローラは、静電容量値をハンドヘルドコントローラの上での指のタッチまたは相対的ホバー(hover)に関連付けるように、個々の静電容量式パッドによって検出された静電容量値を連続的に監視し得る。例えば、近接データは、1つ以上の指がハンドヘルドコントローラに接触する(例えば、物理的にタッチする)ことを示し得る、および/または1つ以上の指がハンドヘルドコントローラの上にホバーすることを示し得る。近接データはまた、ハンドヘルドコントローラの上で、またはハンドヘルドコントローラに対して指がホバーする距離を決定するように、使用され得る。換言すれば、指がハンドヘルドコントローラの上にホバーする場合、近接データは、指がハンドヘルドコントローラの上に(またはそこから)どれだけ離れているか、または配置されているかを示し得る。静電容量値の範囲を使用して、指の相対位置(すなわち、完全に延在されていることと、ハンドヘルドコントローラにタッチすることとの間)は、決定され得る。
【0017】
いくつかの事例では、静電パッドは、ユーザーの特定の指(例えば、中指、薬指、小指など)または指の特定の部分(例えば、指先)に関連付けられ得る。静電容量式パッドをグループに配列するか、または特定の静電容量式パッドを指に関連付けることによって、ハンドヘルドコントローラは、静電容量値をユーザーの特定の指(または指の一部)にマッピングし得る。
【0018】
ハンドヘルドコントローラは、近接データを受信および/または分析するように、近接センサーに通信可能に連結する、1つ以上のプロセッサを含み得る。近接センサーが静電容量式パッドを含む事例では、1つ以上のプロセッサは、個々の静電容量式パッドから近接データ(例えば、静電容量値)を受信し得る。1つ以上のプロセッサ、または他の論理(例えば、ソフトウェア、ハードウェア、ファームウェアなど)は、近接データを分析して、検出された静電容量値を決定し、この静電容量値を、指のハンドヘルドコントローラへの相対的な近接に関連付け得る。換言すれば、ハンドヘルドコントローラは、指(複数可)の存在および/または指(複数可)の場所(または「位置」)を決定するように、近接データを利用し得る。追加的に、ハンドヘルドコントローラは、個々の静電容量式パッドから近接データを受信し得、近接データをユーザーの特定の指に関連付け、またはグループ化し得る。近接データを特定の指に関連付けることは、ゲームコンソール、リモートシステム、ヘッドマウントディスプレイ、仮想現実環境、または他のコンピューティングデバイスおよび/またはハンドヘルドコントローラが、ユーザーの手ジェスチャを表現する画像データを生成することを可能にし得る。
【0019】
実施例として、近接データは、ユーザーが彼らの中指および薬指でハンドヘルドコントローラを握るが、彼または彼女の小指では握らないことを示し得る。近接データはまた、ハンドヘルドコントローラに対する小指の相対的近接(すなわち、小指がハンドヘルドコントローラからどの程度の距離に配置されるか)を示し得る。近接データを利用し、近接データをユーザーの特定の指に関連付けることにより、ハンドヘルドコントローラ(または別の通信可能に連結されたデバイス)は、指位置を表す表示(または他の情報)を生成し得る。例えば、ゲームコンソールは、彼らの中指および薬指で物体を保持しているが、小指ではないユーザーを示す手ジェスチャに対応する画像データを生成する表示を利用し得る。
【0020】
ハンドヘルドコントローラ(または別の通信可能に連結されたデバイス)は、握りを変えること(例えば、異なるハンドサイズ、異なる指サイズなど)および/または環境条件(例えば、湿度、温度など)を変えることに対応するように、近接センサーを連続的に較正し得る。例えば、ハンドヘルドコントローラは、静電容量値をユーザーの指位置に関連付けるように、近接データを連続的に監視し得る。実施例として、検出された近接データ(例えば、静電容量値)は、ユーザーがハンドヘルドコントローラをどのように保持するか、ユーザーがどのようなゲームをプレイするか、および/またはユーザーの手の物理的特徴(例えば、指の長さ、指の幅など)など、ユーザーの握りに応じて変わり得る。いくつかの事例では、連続的に近接センサーを較正することは、個々の静電容量式パッドによって検出される静電容量値の範囲を決定することを含み得る。
【0021】
静電容量値の範囲は、ハンドヘルドコントローラにタッチする指に関連付けられた静電容量値と、ハンドヘルドコントローラから完全に延在される指に関連付けられた静電容量値とを含み得る。いくつかの事例では、これらの静電容量値は、それぞれ、最大静電容量値および最小静電容量値に対応し得る。個々の静電容量式パッドの静電容量値の範囲を知っていることは、後続の静電容量値が正規化されることを可能にし、次いで、指位置を決定するように使用され得る。近接センサーの個々の静電容量式パッドは、個々の静電容量式パッドから受信される後続の静電容量値が正規化され得るように、最大静電容量値および最小静電容量値を含み得る。すなわち、静電容量値の範囲を使用して、ハンドヘルドコントローラ、または別の通信可能に連結されたデバイスは、静電容量式パッドに関連付けられたスケールファクターおよび/またはバイアスを連続的に決定し得る。スケールファクターおよび/またはバイアスは、個々の静電容量式パッドで受信された静電容量値を正規化(または較正)するように、および/または近接センサーの静電容量式パッドの至る所で受信された静電容量値を正規化するように使用され得る。いくつかの事例では、個々の静電容量式パッドのためのバイアス、スケールファクター、および/または静電容量値の範囲は、静電容量式パッドが異なる応答および/または異なる静電容量値を生成し得るので、変化し得る。
【0022】
実施例として、静電容量式パッドで検出される静電容量値は、静電容量式パッドのサイズおよび/または製造条件に依存し得る。スケールファクターを計算すること、および/または個々の静電容量式パッドのバイアスを知っていることは、静電容量値を、近接センサーの他の静電容量式パッドから受信された静電容量値で正規化されることを可能にする。互いに対する静電容量式パッドの正規化および/または較正は、ユーザーによって実行された手ジェスチャを正確に決定し得る。
【0023】
近接センサーの静電容量式パッドによって検出される静電容量値は、ユーザーの手が湿っぽくなる(例えば、汗をかく)場合など、ゲームプレイ体験を通して変化し得る。例えば、静電容量式パッドによって測定または検出される近接度データは、例えば、ユーザーの手が湿っぽくなるにつれて、環境内の湿度が増加するにつれて、および/またはユーザーが彼または彼女の握りを調整するにつれて、変化し得る。したがって、所与の静電容量式パッドによって検出された静電容量値の範囲は、変化し得る。バイアスおよびスケールファクターは、それに応じて変化し得る。ユーザーの手ジェスチャを正確に描写するために、ハンドヘルドコントローラは、最大静電容量値に関連付けられた限界および/または最小静電容量値に関連付けられた限界を減衰させ得る。いくつかの事例では、受信静電容量値に少なくとも部分的に基づいて、ハンドヘルドコントローラは、検出された静電容量値に向けて最大静電容量値および/または最小静電容量値を連続的に減衰させ得る。そうすることで、静電容量値の範囲は、静電容量値の範囲が近接センサーで検出された静電容量値に対応するように連続的に変化し得る。いくつかの事例では、ハンドヘルドコントローラが、閾値時間量、いくつかのフレーム、またはいくつかのカウントについての最大静電容量値の所定の範囲内の静電容量値を検出しない場合、最大静電容量値は、減衰させ得る。例えば、最大静電容量値の所定の範囲は、ハンドヘルドコントローラによって検出された静電容量値の範囲(すなわち、最大静電容量値と最小静電容量値との間)の4分の1であり得、ハンドヘルドコントローラが最大静電容量値の所定の範囲内の静電容量値を検出しない場合、最大静電容量値は、検出された静電容量値に向かって減衰させ得る。換言すれば、静電容量値が最大静電容量値の所定の範囲内にない場合、最大静電容量値は、最小静電容量値に向かって減衰させ得る。他の例では、所定の時間量、いくつかのフレーム、またはいくつかのカウントにわたって決定された平均静電容量値が、最大静電容量値の所定の範囲内にない場合、最大静電容量値は、減衰させ得る。実施例として、指が湿潤になる場合、ハンドヘルドコントローラは、検出された静電容量値の減少を観察し得る。最大静電容量値は、新しい最大静電容量値を更新または決定するように、最小静電容量値に向かって減衰させ得る。最大静電容量値がハンドヘルドコントローラにタッチする物体(例えば、指)に関連付けられるとき、最大静電容量値を減衰させることによって、ハンドヘルドコントローラは、指位置を正確に決定し得る。最大静電容量値を減衰させることはまた、近接センサーの個々の静電容量式パッドについて更新された静電容量値の範囲、更新されたバイアス、および/または更新されたスケールファクターを決定するように使用され得る。
【0024】
最小静電容量値は、同様に減衰させ得る。すなわち、受信静電容量値に少なくとも部分的に基づいて、ハンドヘルドコントローラは、静電容量値の範囲が近接センサーで検出された静電容量値に対応するように変化するように、検出された静電容量値に向かって最小静電容量値を連続的に減衰させ得る。例えば、ハンドヘルドコントローラが、閾値時間量、いくつかのフレーム、またはいくつかのカウントについての最小静電容量値の所定の範囲内の静電容量値を検出しない場合、最小静電容量値は、減衰させ得る。いくつかの事例では、最小静電容量値の所定の範囲は、ハンドヘルドコントローラによって検出された静電容量値の範囲の4分の1であり得、ハンドヘルドコントローラが最小静電容量値の所定の範囲内の静電容量値を検出しない場合に、最小静電容量値は、減衰させ得る。他の事例では、従前の時間量、いくつかのフレーム、またはいくつかのカウントにわたって検出された静電容量値の平均が、最小静電容量値の所定の範囲内でない場合、最小静電容量値は、減衰させ得る。最小静電容量値がハンドヘルドコントローラから完全に延在されている物体(例えば、指)に関連付けられるので、最小静電容量値を減衰させることによって、ハンドヘルドコントローラ(または別の通信可能に連結されたデバイス)は、指位置を正確に決定し得る。最小静電容量値を減衰させることはまた、近接センサーの個々の静電容量式パッドのための更新された静電容量値の範囲、更新されたバイアス、および/または更新されたスケールファクターを決定するように使用され得る。
【0025】
いくつかの事例では、最大静電容量値の量および/または最小静電容量値の量の減衰は、1つ以上の可変減衰率、所定の数の過去のフレームにわたって検出された静電容量値の範囲、および/または最大静電容量値と最小静電容量値との間の静電容量値の範囲に基づき得る。例えば、減衰の量は、検出された静電容量値と、所定の数の過去のフレームにわたって検出された静電容量値の範囲との間の差のパーセンテージ、または検出された静電容量値と、最大静電容量値と最小静電容量値との間の静電容量値の範囲との間の差のパーセンテージに基づき得る。他の事例では、減衰の量は、検出された静電容量値と最大静電容量値または最小静電容量値との差のパーセンテージに基づき得る。他の事例では、指の近接を、それぞれ最大静電容量値および最小静電容量値と正確に関連付けるように、減衰、または可変減衰率は、最適化され得る。いくつかの事例では、最大静電容量値および最小静電容量値を減衰させることは、最小静電容量値および最大静電容量値が閾値量だけ分離されるように制限され得る。
【0026】
最大静電容量値または最小静電容量値が減衰する頻度は、測定された静電容量値の揮発性および/または変動性に依存し得る。例えば、所定の数の過去のフレームにわたって検出された静電容量値の間に大きな変動が存在する場合、最大静電容量値または最小静電容量値は、所定の数の過去のフレームにわたって検出された静電容量値の間に小さな変動が存在する場合と比較して、より速い頻度で減衰させ得る。例えば、第1のユーザーが、最大静電容量値および彼または彼女の握りに関連付けられた最小静電容量値を有し、第2のユーザーが、ハンドヘルドコントローラを操作する場合、第1のユーザーおよび第2のユーザーの最大静電容量値および/または最小静電容量値の間に、大きな変動が存在し得る。ここで、この差分(または大きな変動性)のために、または差分が閾値よりも大きい場合、減衰率は、これを考慮し、最大静電容量値および/または最小静電容量値をより速い頻度で減衰させられ得る。追加的に、または代替的に、最大静電容量値または最小静電容量値が減衰する頻度は、ハンドヘルドコントローラによって受信されたいくつかの静電容量値に依存し得る。例えば、ユーザーがハンドヘルドコントローラ上で彼らの指を急速にタップする場合、ハンドヘルドコントローラは、最大静電容量値(または限界)および/または最小静電容量値(または限界)を、より速い頻度で、およびユーザーがハンドヘルドコントローラを急速にタップしない場合、検出された静電容量値に減衰または収束させ得る。
【0027】
したがって、ゲームプレイ体験を通じて、近接センサーの静電容量式パッドを衰えさせ、連続的に較正することは、ユーザーの握りに調整し、指位置を正確に決定するように環境ファクターに適応し得る。換言すれば、最大静電容量値、または最大静電容量値に関連付けられた限界を崩壊させることに失敗することは、受信された静電容量値をハンドヘルドコントローラにタッチする指に正確に関連付けることをもたらし得る。すなわち、ハンドヘルドコントローラは、静電容量値を、ハンドヘルドコントローラにタッチする指に関連付けられた更新された最大静電容量値と比較しない場合がある。同様に、最小静電容量値、または最小静電容量値に関連付けられた限界を崩壊させることに失敗することは、受信された静電容量値をハンドヘルドコントローラから完全に延在された指と正確に関連付けることをもたらさない場合がある。すなわち、ハンドヘルドコントローラは、静電容量値を、ハンドヘルドコントローラから完全に延在されている指に関連付けられた更新された最小静電容量値と比較しない場合がある。さらに、上の議論は、特定の静電容量式パッドに関してではあるが、ハンドヘルドコントローラは、VR環境で表示される各フレームについての近接センサーの各静電容量式パッドについての静電容量値、バイアス、スケールファクター、減衰、および/または減衰率の範囲を同時に決定し得る。
【0028】
最大静電容量値および/または最小静電容量値を減衰させる結果として、いくつかの事例では、ハンドヘルドコントローラは、それぞれ最大静電容量値および/または最小静電容量値よりも大きいまたは小さい静電容量値を検出し得る。換言すれば、ハンドヘルドコントローラは、最大静電容量値および/または最小静電容量値を連続的に更新することにより、決定された最大静電容量値よりも大きい静電容量値を受信し得、および/または決定された最小静電容量値よりも小さい静電容量値を受信し得る。実施例として、ユーザーの指がより乾燥しなくなるとき、または異なるユーザーがハンドヘルドコントローラを操作するとき、ハンドヘルドコントローラは、増加した静電容量値を検出し、静電容量値は、最大静電容量値および/または最小静電容量値を「オーバーシュート」し、または超え得る。そのような場合、最大静電容量値および/または最小静電容量値は、過去のいくつかのフレームにわたって検出された静電容量値の平均に少なくとも部分的に基づいて、延長し、この差を埋め合わせ得る。追加的に、最大静電容量値および/または最小静電容量値が更新される頻度は、成長定数および過去のいくつかのフレームにわたって検出された平均静電容量値に基づき得る。そうすることで、ハンドヘルドコントローラ(または別の通信可能に連結されたデバイス)は、更新された最大静電容量値および/または最小静電容量、更新されたバイアス、更新されたスケールファクターなどを決定し得る。
【0029】
追加的に、いくつかの事例では、ハンドヘルドコントローラはまた、圧力センサーを介して、ハンドヘルドコントローラでのタッチ入力に関連付けられた力の量を感知、検出、または測定し得る。例えば、ユーザーの指がハンドヘルドコントローラに押し付けられると、圧力センサーの上に配置されたカバーなどのコントローラの一部は、圧力センサーに接触するように偏向し得る。圧力センサーは、タッチ入力が、1つ以上のプロセッサに力データが提供されることをもたらし得るように、1つ以上のプロセッサに連結し得る。いくつかの事例では、圧力センサーは、力感知抵抗(FSR)センサー、圧電センサー、ロードセル、ひずみゲージ、静電容量式力測定値を測定する静電容量式力センサー、または任意の他のタイプの圧力センサーを含み得る。追加的に、いくつかの事例では、近接データおよび力データは一緒に解釈され得、所定のコマンドまたは手ジェスチャ(例えば、絞り)に関連付けられ得る。
【0030】
上記に照らして、ハンドヘルドコントローラは、例えば、ユーザーの握りおよび/または環境条件の変化に適応するように、近接センサーを動的に較正し得る。そうすることで、ハンドヘルドコントローラは、指がハンドヘルドコントローラにタッチすることに関連付けられた静電容量値(例えば、最大静電容量値)を減衰し得、指がハンドヘルドコントローラから完全に延在されている(例えば、最小静電容量値)。静電容量値、バイアス、スケールファクターなどの範囲を決定することによって、後続の近接データを受信すると、ハンドヘルドコントローラは、ハンドヘルドコントローラに対する指の相対的場所および/または近接度を決定し得る。換言すれば、ゲームプレイ(例えば、VR環境)においてユーザーの手ジェスチャを正確に描写するために、ハンドヘルドコントローラ(または通信可能に連結されたデバイス)は、近接センサーを連続的に較正し得る。
【0031】
図1は、1つ以上のタッチセンシティブ制御部を含み得る、例示的なコントローラ100の正面図を図示する。いくつかの事例では、コントローラ100は、VRビデオゲームシステム、ロボット、武器、または医療デバイスなどの電子システムによって利用され得る。
【0032】
図示されるように、コントローラ100は、ハンドル112を有するコントローラ本体110と、手保持具120とを含み得る。コントローラ本体110は、ハンドル112と、1つ以上の親指操作式制御部114、115、116を含み得る、コントローラ100の遠位端111との間に配置されたヘッドを含み得る。例えば、親指操作式制御部は、コントローラ100がユーザーの手に保持されているときの通常の操作中に、ユーザーの親指によって便利に操作される、傾斜ボタン、および/または他のボタン、ノブ、ホイール、ジョイスティック、またはトラックボールを含み得る。いくつかの事例では、ハンドル112は、実質的に円筒形の管状ハウジングを含み得る。しかしながら、この文脈において、実質的に円筒形の形状は、一定の直径または円形の断面を有する必要はない。
【0033】
ハンドル112は、ハンドル112の外面の周りに少なくとも部分的または完全に空間的に分散された複数の近接センサーまたは静電容量式パッドを有する近接センサーを含み得る。例えば、静電容量式パッドは、ハンドル112の外面の下に空間的に分布し得、および/またはハンドル112の外面の下に埋め込まれ得る。静電容量式パッドは、ユーザーの1つ以上の指の存在、位置、近接度、および/またはジェスチャを識別するように、ユーザーがハンドル112にタッチすること、握ること、または掴むことに応答し得る。例えば、静電容量式パッドは、ハンドル112の上にホバリングする1つ以上の指に応答し得、ハンドル112の上の指の近接を示す近接データ(例えば、静電容量値)を生成し得る。いくつかの事例では、近接データは、コントローラ100に対する指の存在、場所、および/または近接を示し得る。近接データは、手ジェスチャを生成するように、コントローラ100および/または他の通信可能に連結されたデバイスによって利用され得る。指の近接度を検出するために、ハンドル112の外面は、電気絶縁材料を含み得る。
【0034】
手保持具120は、ハンドル112の外面に対してユーザーの手のひらを付勢するように、コントローラ100に連結し得る。
図1では、手保持具120は、開位置で示される。手保持具120は、手保持具120とコントローラ本体110との間への手の挿入を容易にするように、湾曲弾性部材122によって開位置で任意選択的に付勢され得る。例えば、湾曲弾性部材122は、弾性的に撓むナイロンなどの、可撓性金属ストリップまたはプラスチック材料を含み得る。
【0035】
布材料124(例えば、ネオプレンシース)は、ユーザーの快適さを緩和または増大させるように、湾曲弾性部材122を部分的または完全に覆い得る。代替的は、クッションまたは布材料124は、ユーザーの手に面する湾曲弾性部材122の側にのみ付着し得る。
【0036】
手保持具120は、例えば、ばね付勢チョック128によって締め付けられるドローコード126を含むことによって長さを調整し得る。ドローコード126は、首ひもとして使用するための余分な長さを任意選択的に有し得る。いくつかの実施例では、クッションまたは布材料124は、ドローコード126に取り付け得る。加えて、湾曲弾性部材122は、締め付けられたドローコード126の張力によって予荷重をかけられ得、そのような実施形態では、湾曲弾性部材122が(開位置に付勢するために)手保持具120に付与する張力は、ドローコード126が締め付けられていないときに手保持具120を自動的に開放させ得る。しかしながら、止め具、弾性バンド(手の甲に対して押し当てるように弾性張力を加えるように、手が挿入されると一時的に伸びる)長さ調整を可能にするフック&ループストラップアタッチメントなどの、手保持具120の長さを調節するための代替的な従来の手法は、使用され得る。
【0037】
手保持具120は、ハンドル112と追跡部材130との間に配置され得、ユーザーの手の甲に接触し得る。追跡部材130は、コントローラ本体110に固定され得、2つのノーズ132、134を任意選択的に含み得、ここで、各ノーズは、追跡部材130の2つの対向する遠位端のうちの対応する1つから突出し得る。いくつかの事例では、追跡部材130は、実質的に弧状形状を有する弧を含み得る。いくつかの事例では、追跡部材130は、その中で配置された追跡変換器を含み得、例えば、少なくとも1つの追跡変換器が、各突出ノーズ132、134内に配置されている。コントローラ本体110は、遠位端111に隣接して配置された追跡変換器などの追加の追跡変換器を含み得る。
【0038】
コントローラ100は、コントローラ本体110内に配設された再充電可能電池を含み得る。手保持具120は、再充電可能電池に電気的に連結された導電性充電ワイヤを含み得る。コントローラ100はまた、電子システムの残部(例えば、ゲームコンソール)と通信するための無線周波数(RF)伝送器を含み得る。再充電可能電池は、RF伝送器に電力を供給し得、伝送されたRFは、親指操作式制御部114、115、116、ハンドル112内の近接センサー(例えば、静電容量式パッド)、および/または追跡部材130内の追跡センサーに応答し得る。
【0039】
いくつかの事例では、コントローラ本体110は、ユーザーの指から近接センサーに力を伝達するのに十分に剛性であり、ユーザーの指と近接センサーとの間の静電容量式結合を可能にするのに十分に薄い、一片の射出成形プラスチックまたは任意の他の材料を含み得る。代替的に、コントローラ本体110および追跡部材130は、別々に製造され、次いで、一緒に組み立てられ得る。
【0040】
図2は、コントローラ100の正面図を図示しており、その中にユーザーの左手が挿入されているが、コントローラ本体110を掴んでいない、操作中のコントローラ100を示す。
図2では、手保持具120は、ユーザーの手のひらをハンドル112の外面に対して物理的に付勢するように、ユーザーの手の上で締め付けられている。ここで、手保持具120は、閉じられたとき、手がコントローラ本体110を掴んでいないときでさえ、コントローラ100をユーザーの手の中に保持し得る。示されるように、手保持具120がユーザーの手の周りでしっかりと閉じられているとき、手保持具120は、コントローラ100がユーザーの手から落ちることを防止し得る。したがって、いくつかの実施形態では、手保持具120は、コントローラ100を実際に手から分離され、投げられ、および/または降下されることなく、ユーザーがコントローラ100を「手放す」ことを可能にし得る。例えば、コントローラ本体110のハンドル112を掴んでいるユーザーの解放および復帰が感知される場合、そのような解放または掴むことは、投げる、または掴んでいる物体を表示する(例えば、VR内環境において)ように、ゲーム内に組み込まれ得る。手保持具120は、そのような機能が繰り返しかつ安全に達成されることを可能にし得る。さらに、手保持具120はまた、指の動き、近接、および/またはハンドル112上の配置をより確実に感知するように、ユーザーの指が近接センサーに対して過度に並進することを防止し得る。
【0041】
図3および
図4は、ユーザーの手にコントローラ100を保持するように、ユーザーの手がコントローラ本体110を掴んでいる間に、手保持具120が締め付けられたときの操作中のコントローラ100を図示する。
図3および
図4に示されるように、ユーザーの親指は、1つ以上の親指操作式制御部114、115、116を操作し得る。
【0042】
図5は、特定の実施形態では、コントローラ100が、同様の右コントローラ500を含む一対のコントローラにおける左コントローラであり得ることを図示する。特定の実施形態では、コントローラ100および500は、例えば、VR経験を増強するために、ユーザーの両手の動きおよび握りを(一緒に)追跡し得る。
【0043】
図6は、コントローラ100に対する1つ以上の物体(例えば、指)の近接を検出するように構成された複数の静電容量式パッド602を有する近接センサー600を図示する。しかしながら、いくつかの事例では、近接センサー600は、赤外線または音響センサーなどのコントローラ100に対する1つ以上の物体の近接を検出するように、静電容量式パッド602以外の異なるタイプのセンサーを追加的または代替的に含み得る。
【0044】
静電容量式パッド602は、可撓性プリント回路アセンブリ(FPCA)604に装着し、取り付け、または他の方法で結合し得る。FPCA604は、1つ以上のプロセッサを含むコントローラ100のプリント回路基板(PCB)に接続するためのコネクタ606を含み得る。静電容量式パッド602は、FPCA604上に配置されたトレース608を介してコネクタ606に通信可能に接続して、1つ以上のプロセッサに近接データ(例えば、静電容量値)を提供し得る。近接データは、ハンドル112などの、コントローラ100に対する指の近接を示し得る。したがって、近接センサー600は、静電容量値が、コントローラ100への指の近接に関連付けられ得る、個々の静電容量式パッド602の静電容量を測定または受信し得る。
【0045】
いくつかの事例では、近接センサー600は、コントローラ本体110のハンドル112内に装着された構造、またはコントローラ本体110のハンドル112の下に装着された構造など、コントローラ本体110内の内面に連結され得る。そうすることで、近接センサー600は、ハンドル112に対する指の近接を検出するように、ハンドル112の外面の下に配置され得る。コントローラ100に連結されるとき、近接センサー600は、ハンドル112の円周または一部の周りを角度よく横断し得る。例えば、FPCA604は、コントローラ本体110の内面に連結(例えば、接着)し得る。いくつかの実施形態では、近接センサー600は、ハンドル112の円周の周りに少なくとも100度であるが、170度以下で延在し得る。追加的に、または代替的に、近接センサー600は、ハンドル112の外面など、コントローラ110の外面に連結し得る。
【0046】
静電容量式パッド602は、異なる指、または指の異なる部分(例えば、指先)の近接を検出するように、互いに離間され得る。静電容量式パッド602は、行、列、グリッド、セット、サブセット、またはグループ610に配列され得る。例えば、
図6に示されるように、近接センサー600は、静電容量式パッド602の6つのグループ610を含み得、ここで、グループ610は、FPCA604の至る所で水平に延在し得る。しかしながら、いくつかの実施形態では、近接センサー600は、6つよりも多い、または少ないグループ610を含み得る。追加的に、
図6に示されるように、静電容量式パッド602は、必ずしも等しいサイズである必要はなく、それらの間の実質的に等しい間隔を必ずしも有し得ない。しかしながら、いくつかの実施形態では、静電容量式パッド602は、同様の形状であり得、および/またはそれらの間に実質的に等間隔のグリッドを含み得る。
【0047】
静電容量式パッド602の個々のグループ610は、ユーザーの特定の指(例えば、人差し指、中指、薬指、小指)に対応し得る。追加的に、または代替的に、静電容量式パッド602の複数のグループ610または複数のグループ610からの静電容量式パッド602は、ユーザーの単一の指に対応し得る。例えば、2つ以上のグループ610は、ユーザーの指(例えば、中指)に対応し得る。静電容量式パッド602をグループ610内に配列すること、または特定の静電容量式パッド602を特定のグループ610に割り当てることによって、コントローラ100(または別の通信可能に連結されたデバイス)は、ユーザーの手ジェスチャを生成するように、近接データを利用し得る。例えば、ユーザーが特定の指でコントローラ100を握り、および/またはコントローラ100の上の特定の指をホバーすると、静電場をもたらす電圧が静電容量式パッド602に印加される。指などの導体が静電容量式パッド602にタッチするか、または近づくと、静電容量における変化が、起り得る。静電容量は、RC発振器回路を近接センサー600に(コネクタ606を介して)接続し、時定数(したがって、発振の周期および周波数)が静電容量とともに変化することに留意することによって感知され得る。このようにして、ユーザーがコントローラ100から指を解放する、特定の指でコントローラ100を握るか、またはコントローラ100に近づくにつれて、コントローラ100は、静電容量における変化を検出し得る。静電容量式パッド602の静電容量値は、導体の場所、ならびに静電容量式パッド602に対する導体の近接を決定するように使用される。指が導体として行動するとき、ハンドル112の下にあるそれらの静電容量式パッド602は、静電容量値を測定し得る。
【0048】
いくつかの事例では、ユーザーの握りが、変化し得るか、または他のファクターが、近接データの値に影響を与え得る。例えば、ゲームプレイ体験全体を通して、ユーザーの手は、汗をかいて、湿っぽくなり得る。追加的に、または代替的に、ゲームがプレイされている環境の湿度が、変化し得る。これら、および他のファクターは、静電容量式パッド602によって検出された静電容量の量に影響を及ぼし得る。指位置を正確に感知するために、コントローラ100は、検出された静電容量値に基づいて近接センサー600を連続的に較正し得る。例えば、第1の事例で、静電容量式パッド602は、指がコントローラ100から完全に延在されたとき、第1の静電容量値を測定し得る。ユーザーがゲームをプレイする場合、第2の事例で、静電容量式パッド602は、ユーザーの指がコントローラ100から完全に延在されたとき、第2の静電容量値を測定し得る。しかしながら、コントローラ100(例えば、ハンドル112)に対する指の近接を正確に検出するために、コントローラ100(または別の通信可能に連結されたデバイス)は、静電容量式パッド602を較正し得る。そのような事例では、静電容量式パッド602(または近接センサー600)を較正することは、個々の静電容量式パッド602で検出された静電容量値の更新された範囲、またはコントローラ100でのタッチおよび/またはコントローラ100から完全に延在されている指に関連付けられた減衰させた静電容量値を決定することを含み得る。その中で、更新された範囲を知ることによって、検出された静電容量値は、正規化され得る。
【0049】
いくつかの事例では、静電容量式パッド602は、異なる指に対応するように再マッピングされ得る。例えば、ユーザーの握りまたはユーザーの手の大きさに応じて、近接センサー600の特定の行または複数の行は、ユーザーの特定の指(例えば、中指)に対応し得、一方、他の事例では、ユーザーの異なる指(例えば、薬指)に対応し得る。近接データを受信することを通じて、静電容量式パッド602は、再マッピングされ、ユーザーの異なる指に対応し得る。換言すれば、静電容量式パッド602は、いくつかの事例では、ハンドル112での特定のユーザーの握りに応じて、ユーザーの異なる指に対応するように指定され得る。したがって、コントローラ100は、異なる静電容量式パッド602を異なる指に関連付けるように、異なるコントローラ構成(すなわち、第1のコントローラ構成、第2のコントローラ構成、および/または第3のコントローラ構成)を含み得る。特定の指への静電容量式パッド602の、この動的な適応は、VR環境において生成される正確なジェスチャを可能性にし得る。追加的に、
図6は、特定のいくつかの静電容量式パッド602および/または特定のいくつかのグループ610を含む近接センサー600を図示するが、いくつかの事例では、近接センサー600は、
図6に図示されるよりも多いまたは少ない静電容量式パッド602を含み得る。
【0050】
さらに、いくつかの事例では、コントローラ100の1つ以上のプロセッサは、近接データをより良好に使用して、コントローラ100に対する、または互いに対するユーザーの手の開き、指差し、または指の他の動きを検出するように、解剖学的に可能な指の動きを具現化するアルゴリズムおよび/または機械学習技術を含み得る。このようにして、コントローラ100および/またはユーザーの指の動きは、VRゲームシステム、防衛システム、医療システム、産業用ロボットもしくは機械、または別のデバイスを制御することを助け得る。したがって、VRアプリケーション(例えば、ゲーム、訓練など)では、近接データは、ハンドル112の外面からのユーザーの指の感知された解放に基づいて、物体の解放をレンダリングするように、利用され得る。追加的に、または代替的に、コントローラ100が相互作用している通信可能に連結されたコンピューティングデバイス(例えば、ホストコンピューティングデバイス、ゲームコンソールなど)の1つ以上のプロセッサは、近接データを使用してジェスチャ(複数可)を検出し得る。
【0051】
図7~10は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されることができる一連の操作を表す、論理フローグラフ内のブロックの集合としての様々なプロセスを示している。ソフトウェアの文脈では、ブロックは、1つ以上のプロセッサによって実行されるとき、列挙された操作を実行する、コンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定の抽象データタイプを実装する、ルーチン、プログラム、物体、構成要素、データ構造などを含む。操作が記載される順序は、限定として解釈されることを意図するものではなく、任意のいくつかの記載されたブロックは、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
【0052】
図7は、近接センサー600を較正するためのプロセス700を図示する。いくつかの事例では、プロセス700は、コントローラ100によって実行され得る。
【0053】
702で、コントローラ100の論理は、近接センサー600から近接データを受信し得る。例えば、物体(例えば、指、親指など)は、コントローラ100に接触し得、またはコントローラ100の近接内に来得る(例えば、コントローラ100のハンドル112に隣接してホバーする)。近接データは、近接センサー600の静電容量式パッド602によって検出または測定された静電容量を示し得る。例えば、指がコントローラ100にタッチしている場合、静電容量値は、コントローラ100の上にホバリングする指と比較して大きくなり得る。この意味では、検出された静電容量値は、コントローラ100に対する指の近接を示し得、または表し得る。
【0054】
いくつかの事例では、コントローラ100の論理は、静電容量値をデジタル化された値に変換し得る。さらに、702で受信された近接データは、近接センサー600の静電容量式パッド602の至る所で受信された近接データで較正および/または正規化されていない生データを表し得る。すなわち、702で受信された近接データは、特定の静電容量式パッド602について、静電容量式パッド602は、静電容量値の範囲にわたって静電容量値を検出し得るという意味で、生データを表し得る。
【0055】
704で、コントローラ100の論理は、近接データを正規化し得る。例えば、個々の静電容量式パッド602は、静電容量式パッド602の製造条件、静電容量式パッド602のサイズなどに応じて、固有の静電容量値を生成し得る。近接データを正規化することは、静電容量式パッド602で受信された近接データを標準化するのに役立ち得る。いくつかの事例では、近接データを正規化することは、訓練済みモデルを利用して、静電容量式パッド602で測定された最大および最小静電容量値を決定することを含み得る。例えば、静電容量式パッド602で検出された静電容量値の範囲は、異なる静電容量式パッド602で検出された静電容量値の範囲と比較するときに、任意であり得る。訓練済みモデルは、近接センサー600の静電容量式パッド602の至る所で歴史的に検出された静電容量値の代表的なサンプル、または静電容量値の範囲を含み得る。実施例として、異なるコントローラ(例えば、コントローラ100)の同様の静電容量式パッド602から受信された静電容量値は、静電容量値を正規化するように使用され得る。
【0056】
706で、コントローラ100の論理は、近接センサー600を較正し得る。いくつかの事例では、近接センサー600を較正することは、静電容量式パッド602で検出された静電容量値に対するバイアス、静電容量値の範囲、および/またはスケールファクターを計算することを含み得る。換言すれば、近接センサー600を較正することは、個々の静電容量式パッド602について、検出された静電容量値の範囲、バイアス、および/またはスケールファクターを決定することを包含し得る。したがって、近接センサーを較正することは、受信した後続の静電容量値を正規化されることを可能にし得る。
図7のサブブロックによって示されるように、プロセス700は、近接センサー600を較正するためのより詳細な操作を包含し得る。例えば、近接センサー600を較正することは、サブブロック708および710を含み得る。
【0057】
サブブロック708によって示されるように、近接センサー600を較正することは、ユーザーによって実行された別個のジェスチャを表し(または対応し)得る、別個のジェスチャ認識を含み得る。例えば、静電容量式パッド602の全部、一部、または閾値パーセンテージが、静電容量値の突然の降下を感知した場合、コントローラ100は、この降下を、ユーザーがコントローラ100から彼らの手を解放するか、またはコントローラ100から特定の指を解放することに関連付け得る。すなわち、特定の静電容量式パッド602がユーザーの特定の指に関連付けられ得るので、コントローラ100は、静電容量の減少を検出し、静電容量値におけるこの減少を、ユーザーがコントローラ100から彼らの手を解放することに関連付け得る。
【0058】
ユーザーがコントローラ100から彼らの指を突然に解放するときに受信された静電容量値は、特定の静電容量式パッド602について検出された静電容量値の範囲内の最小静電容量値に対応し得る(例えば、静電容量値は、指がコントローラ100から完全に延在されたときを表す)。したがって、この最小静電容量値は、将来の事例で、指がコントローラ100からいつ完全に延在したかを決定するために使用され得る。いくつかの事例では、静電容量値におけるこの突然の減少の前に受信された静電容量値は、特定の静電容量式パッド602について検出された静電容量値の範囲の最大静電容量値に対応し得る(例えば、静電容量値は、指がコントローラ100にタッチするときを表す)。したがって、この最大静電容量値は、将来の事例で、指がコントローラ100にいつタッチしているかを決定するために使用され得る。
【0059】
最小静電容量値および最大静電容量値を利用して、コントローラ100の論理は、静電容量式パッド602で検出された静電容量値の範囲を決定し得る。このプロセスは、近接センサー600の各静電容量式パッド602について起り得る。したがって、コントローラ100が後続の近接データを受信するとき、コントローラ100は、検出された静電容量値を特定の静電容量式パッド602についての静電容量値の範囲と比較することによって、ユーザーの指の相対位置を決定し得る。
【0060】
サブブロック710によって示されるように、近接センサー600を較正することはまた、連続的な最小静電容量値および/または最大静電容量値検出を含み得る。例えば、コントローラ100は、近接センサー600から近接データを連続的に受信し得るので、コントローラ100は、近接データ(例えば、静電容量値)を監視して、最小静電容量値および/または最大静電容量値を再較正(例えば、減衰)し得る。本明細書で議論されるように、(例えば、ユーザーがコントローラ100と相互作用するときに)近接センサー600から近接データを繰り返し受信することを通して、近接データは、静電容量式パッド602によって測定された静電容量値を示し得る。経時的に、静電容量値は、個々の静電容量式パッド602によって検出された静電容量値の範囲を更新および/または修正するように、利用され得る。実施例として、静電容量式パッド602によって検出される静電容量値は、ユーザーの皮膚特性および/またはコントローラ100が存在する環境条件に基づいて変化し得る。したがって、710で、近接センサー600のそれぞれの静電容量式パッド602について、コントローラ100は、静電容量式パッド602についての最小静電容量値、最大静電容量値、および/または静電容量値の範囲を潜在的に更新するように、近接データを分析し得る。
【0061】
例えば、コントローラ100が静電容量値を静電容量式パッド602から受信することは、静電容量値がそれぞれ最大静電容量値および/または最小静電容量値よりも大きいか小さいかを決定するように、静電容量値を最大静電容量値および/または最小静電容量値と比較し得る。そうである場合、コントローラ100は、最大静電容量値および/または最小静電容量値をそれぞれ更新し得る。さらに、コントローラ100は、受信された静電容量値に向けて最大静電容量値および/または最小静電容量値を減衰させるように、静電容量値を利用し得る。
【0062】
706から、プロセス700は、プロセス700が近接センサー600から追加の近接データを受信し得る702にループし得る。近接データを反復的に受信することを通じて、プロセス700は、静電容量式パッド602によって検出される静電容量値の範囲を連続的に決定および/または更新し得る。近接データを利用して近接センサー600を連続的に較正する追加の詳細は、
図8に関して本明細書で議論される。
【0063】
712で、コントローラ100の論理は、近接センサー600および/または個々の静電容量式パッド602を較正することに少なくとも部分的に基づいて、較正された近接データを生成し得る。例えば、静電容量式パッド602で検出された静電容量値の範囲、バイアス、および/またはスケールファクターを利用して、コントローラ100は、較正された(または正規化された)静電容量値を計算し得る。較正された近接データは、特定の静電容量式パッド602で、および/または近接センサー600の静電容量式パッド602の至る所で受信された近接データを正規化し得る。
【0064】
714で、コントローラ100の論理は、静電容量式パッド602のグループについての近接データを合計し得る。上記のように、静電容量式パッド602は、ユーザーのそれぞれの指に関連付けられたグループ610に配列され得る。いくつかの事例では、グループ610は、2つ以上の静電容量式パッド602を含み得、静電容量式パッド602のグループの静電容量式パッド602についての静電容量値は、ユーザーの指位置を示すように合計され得、ここで、合計された静電容量値は、コントローラ100に対する指の近接を示し得る。いくつかの事例では、特定のグループ610についての合計された静電容量値は、[0,1]のスケールでの指値を含み得、ここで、指値は、コントローラ100に対する指の近接を示し得る。この意味で、個々の静電容量式パッド602から検出された静電容量値を使用して、プロセス700は、コントローラ100に対するユーザーの指位置を決定し得る。
【0065】
さらに、静電容量値は、静電容量式パッド602のグループ内の個々の静電容量式パッド602に適用される重みのセットを使用して合計され得る。例えば、4つの静電容量式パッド602がユーザーの中指に関連付けられている場合、等しい重みは、4つの静電容量式パッド602に割り当てられ得る。これらの静電容量式パッド602から受信された静電容量値は、指位置を決定するときに使用される4分の1の重みを有し得る。しかしながら、いくつかの事例では、静電容量式パッド602の静電容量値が信頼できない(例えば、大量のノイズを含む)場合、静電容量式パッド602からの特定の静電容量値は、加重和において無視され得る。静電容量式パッド602の重みは、残りの静電容量式パッドが3分の1の重みを有するように無視され得る。その中で、静電容量値は、合計され、使用されている静電容量式パッド602の重みの合計で除算される。
【0066】
716で、コントローラ100の論理は、近接データおよび/または指値を伝送し得る。例えば、特定の指または静電容量式パッド602のグループについての較正された近接データを決定した後、コントローラ100は、近接データおよび/または指値(位置)の表示を1つ以上のコンピューティングデバイスに伝送し得る。いくつかの事例では、1つ以上のコンピューティングデバイスは、コントローラ100上のユーザーの手のジェスチャに対応する画像データを生成するように、近接データおよび/または指値を利用し得る。
【0067】
いくつかの事例では、プロセス700は、各静電容量式パッド602について実行され得、近接センサー600が、その都度(例えば、カウント、フレーム毎)、近接データを生成する。例えば、コントローラ100がVR環境を制御または操作し得るので、近接センサー600は、VR環境内に表示される各フレームについての近接データを生成し得る。近接データは、静電容量式パッド602で検出されたそれぞれの静電容量値を表し得、プロセス700は、個々の静電容量式パッド602で測定された静電容量値に対して実行され得る。例えば、プロセス700は、第1の静電容量式パッド602で検出された第1の静電容量値および第2の静電容量式パッド602で検出された第2の静電容量値に対して実行され得る。いくつかの事例では、第1の静電容量式パッド602および第2の静電容量式パッド602についてのプロセス700は、並列に、および任意のいくつかの静電容量式パッド602について実行され得る。追加的に、プロセス700の一部または全部がコントローラ100によって実行されていると記載されているが、いくつかの事例では、1つ以上の通信可能に連結されたデバイスは、プロセス700のブロックの全部または一部を実行し得る。例えば、コンピューティングデバイスは、近接センサー600を較正するための増加した処理能力を含み得る。そのような場合、コンピューティングデバイスは、近接センサー600を較正するように、命令を伝送し得る。
【0068】
図8は、近接センサー600を較正するように、近接センサー600から受信された近接データを分析するための例示的なプロセス800を図示する。いくつかの事例では、プロセス800は、コントローラ100によって実行され得、しかしながら、1つ以上の通信可能に連結されたデバイスは、プロセス800の全部または一部を実行し得る。
【0069】
802で、コントローラ100の論理は、近接センサー600から静電容量値(例えば、近接データ)を受信し得る。いくつかの事例では、コントローラ100は、近接センサー600の個々の静電容量式パッド602から、およびVR環境内に表示される各フレームで、静電容量値を受信し得る。例えば、コントローラ100に近接した物体(例えば、指)を検出することに少なくとも部分的に基づいて、近接センサー600の静電容量式パッド602は、静電容量値を生成し得る。上で示されたように、物体と静電容量式パッド602との間の距離が減少するにつれて、測定された静電容量値は、増加し得る。
【0070】
804で、コントローラ100の論理は、静電容量式パッド602についての静電容量値の範囲、静電容量式パッド602に関連付けられたスケールファクター、および静電容量式パッド602に関連付けられたバイアスを使用して静電容量値を正規化し得る。
【0071】
806で、コントローラ100は、最大静電容量値を徐々に割り当てるか、または調整するように、最大静電容量値に関連付けられた限界またはレベルを減衰させ得る。最大静電容量値を減衰させることは、ユーザーの指(複数可)の変化する環境条件および/または特性に調整し得る。例えば、ゲームプレイ体験の過程で、ユーザーの手は、湿っぽくなり(例えば、汗をかく)得、ユーザーは、コントローラ100上で彼または彼女の握りを調整し得、および/または環境の条件は、変化し得る(例えば、湿度、温度など)。いくつかの事例では、これらのファクターは、近接センサー600によって検出された静電容量値に影響を及ぼし得、静電容量値の範囲は、更新され得、および/またはコントローラ100にタッチする指に関連付けられた静電容量値は、更新され得る。換言すれば、コントローラ100によって検出された静電容量値の範囲が、変化し得るため、コントローラ100にタッチする指に関連付けられた静電容量値は、変化し得る。したがって、ユーザーの指位置(または手ジェスチャ)(すなわち、指がコントローラ100にタッチしているとき)を正確に描写するために、最大静電容量値は、減衰させ得る。例示するために、時間内の第1の事例で、第1の静電容量値は、コントローラ100にタッチする指を表す、または対応し得、時間内の第2の事例で、第2の静電容量値は、コントローラ100にタッチする指を表す、または対応し得る。いくつかの事例では、第2の静電容量値は、第1の静電容量値未満であり得る。しかしながら、第2の事例でのユーザーの手ジェスチャを正確に描写するために、コントローラ100にタッチする指に関連付けられた静電容量値は、更新され得る。すなわち、第2の静電容量値は、ユーザーがコントローラ100をタッチすることを表すが、最大静電容量値が減衰しない場合、第2の静電容量値は、指がコントローラ100にタッチしているときを表す最大静電容量値に関連付けられない。そうすることで、画像データは、物体を保持しているユーザーを表現しないであろう。最大静電容量値を減衰させることを通じて、コントローラ100は、コントローラ100を掴む指に関連付けられた静電容量値を動的に調整し得る。
【0072】
いくつかの事例では、最大静電容量値を減衰させることは、最大静電容量値の所定の範囲内に無い、いくつかの静電容量値の閾値を受信することに少なくとも部分的に基づき得る。追加的に、または代替的に、最大静電容量値を減衰させることは、最大静電容量値の所定の範囲内の静電容量値および/または閾値量によって変化する静電容量値(例えば、可変性)を受信することなく、閾値時間量、いくつかのフレーム、またはいくつかのカウントが通過する場合に、生じ得る。他の事例では、従前の時間量、いくつかのフレーム、またはいくつかのカウントにわたって検出された静電容量値の平均が、最大静電容量値の所定の範囲内でない場合、最大静電容量値は、減衰し得る。追加的に、最大静電容量値を減衰させることは、静電容量値が最大静電容量値の所定の範囲内ではないことに関して記載されてきたが、いくつかの事例では、所定の範囲は、最小静電容量値に関するものであり得る。
【0073】
したがって、最大静電容量値は、静電容量値の範囲が連続的に更新されるように、連続的に減衰させ得る。減衰の量、または最大静電容量値が減衰する量は、従前のいくつかのフレーム(例えば、20フレーム、50フレーム、100フレームなど)にわたって検出された静電容量値の範囲、最大静電容量値と最小静電容量値との間の静電容量値の範囲、最大静電容量値と従前のいくつかのカウントまたはフレーム(例えば、20フレーム、50フレーム、100フレームなど)にわたって検出された平均静電容量値との差、および/または最大静電容量値と平均静電容量値との差のパーセンテージに基づき得る。いくつかの事例では、減衰は、(1)従前のいくつかのフレームにわたって検出された静電容量値の範囲、(2)最大静電容量値、最小静電容量値の間の静電容量値の範囲、および(3)減衰変数を計算することによって決定され得る。
【0074】
最大静電容量値についての減衰変数は、従前のいくつかのフレームにわたって検出される、最大静電容量値、最小静電容量値の間の静電容量値の変動率のパーセンテージであり得る。実施例として、最大静電容量値についての減衰変数は、各フレームについての最大静電容量値、最小静電容量値の間の静電容量値の範囲の10パーセントであり得る。換言すれば、すべてのフレームについて、減衰変数は、最大静電容量値、最小静電容量値の間の静電容量値の範囲に10パーセントを乗じることによって計算され得る。次いで、この減衰変数は、更新された最大静電容量値を決定するように、使用され得る。いくつかの事例では、最大静電容量値は、最大静電容量値と最小静電容量値との間の範囲のおよそ、または実質的に約13パーセント減衰させ得る。
【0075】
いくつかの事例では、最大静電容量値が最大静電容量値、最小静電容量値の間の静電容量値の範囲の50%を超えて減衰させないように、最大静電容量値が減衰する量は、制限され得る。この意味で、最大静電容量値は、最大静電容量値、最小静電容量値の間の静電容量値の範囲の半分以上に減衰させることに限定され得る。
【0076】
いくつかの事例では、最大静電容量値が減衰する量は、最大静電容量値、最小静電容量値の間の静電容量値の範囲に比例され得る。さらに、最大静電容量値は、最小静電容量値の特定の閾値以内に減衰させることに制限され得る。例えば、静電容量値内のノイズの影響力を低減するために、最大静電容量値は、最小静電容量値の閾値量内に減衰させ得ない。換言すれば、最大静電容量値および最小静電容量値は、ノイズの影響力を低減するために閾値範囲によって分離され得る。
【0077】
いくつかの事例では、最大静電容量値が減衰する頻度は、測定された静電容量値の可変性に依存し得る。例えば、過去のいくつかのフレームにわたって検出された静電容量値の間に大きな変動が存在する場合、最大静電容量値は、過去のいくつかのフレームにわたって検出された静電容量値の間に小さな変動が存在する場合と比較して、より速い頻度で減衰させ得る。追加的に、または代替的に、最大静電容量値が減衰する頻度は、受信されたいくつかの静電容量値に依存し得る。例えば、ユーザーがコントローラ100上で彼または彼女の指を急速に叩き、コントローラ100がいくつかの静電容量値を受信する場合、コントローラ100は、より速い頻度で最大静電容量値を減衰させ得る。
【0078】
最大静電容量値を減衰させることは、静電容量式パッド602についての更新された最大静電容量値を決定するように使用され得る。追加的に、更新された最大静電容量値はまた、近接センサー600の個々の静電容量式パッド602について更新された静電容量値の範囲、更新されたバイアス、および/または更新されたスケールファクターを決定するように使用され得る。
【0079】
808で、コントローラ100の論理は、最小静電容量値を徐々に割り当てるか、または調整するように、最小静電容量値に関連付けられた限界またはレベルを減衰させ得る。いくつかの事例では、最小静電容量値は、静電容量値の範囲が連続的に更新されるように、連続的に減衰させ得る。すなわち、最大静電容量値を減衰させることに関して上で議論されたように、ゲームプレイ体験の過程で、特定の条件は、近接センサー600で検出された静電容量値に影響を与え得る。例えば、コントローラ100から完全に延在されている指に関連付けられた静電容量値は、変化し得る。実施例として、時間内の第1の事例で、第1の静電容量値は、コントローラ100から完全に延在されている指を表す、または対応し得、時間内の第2の事例で、第2の静電容量値は、コントローラ100から完全に延在されている指を表す、または対応し得る。いくつかの事例では、第2の静電容量値は、第1の静電容量値未満であり得る。しかしながら、第2の事例でのユーザーの手ジェスチャを正確に描写するために、コントローラ100から完全に延在されている指に関連付けられた静電容量値は、更新され得る。すなわち、第2の静電容量値は、ユーザーがコントローラ100から彼らの指を完全に延在することを表し得るが、第2の静電容量値は、指が完全に延在されていることを表す最小静電容量値に関連付けられ得ない。最小静電容量値を減衰させることを通じて、コントローラ100は、指が完全に延在されていることに関連付けられた静電容量値を動的に調整し得る。
【0080】
最小静電容量値を減衰させることは、最小静電容量値の所定の範囲内に無い、静電容量値の閾値量を受信することに少なくとも部分的に基づき得る。追加的に、または代替的に、最小静電容量値を減衰させることは、最小静電容量値の所定の範囲内の受信静電容量値、および/または閾値量によって変化する所定の数の過去の静電容量値にわたる静電容量値以来の閾値時間量、いくつかのフレーム、または通過するいくつかのカウントに少なくとも部分的に基づき得る。
【0081】
減衰の量、または最小静電容量値が減衰する量は、従前のいくつかのフレーム(例えば、20フレーム、50フレーム、100フレームなど)にわたって検出された静電容量値の範囲、最小静電容量値と最大静電容量値との間の静電容量値の範囲、過去のフレームの所定のいくつかにわたって検出された最小静電容量値と平均静電容量値との差、および/または最小静電容量値と平均静電容量値との差のパーセンテージに基づき得る。他の事例では、従前のいくつかのフレームにわたって検出された静電容量値の平均が、最小静電容量値の所定の範囲内でない場合、最小静電容量値は、減衰し得る。いくつかの事例では、減衰は、(1)従前のいくつかのカウントまたはフレームにわたって検出された静電容量値の範囲、(2)最小静電容量値、最大静電容量値の間の静電容量値の範囲、および(3)減衰変数を計算することによって決定され得る。
【0082】
いくつかの事例では、最小静電容量値についての減衰変数は、従前のいくつかのフレームにわたって検出される、最小静電容量値、最大静電容量値の間の静電容量値の変動率のパーセンテージであり得る。例えば、最小静電容量値についての減衰変数は、各フレームの最小静電容量値と最大静電容量値との間の静電容量値の範囲の20パーセントであり得る。換言すれば、すべてのフレームについて、減衰変数は、最小静電容量値、最大静電容量値の間の静電容量値の範囲に20パーセントを乗じることによって計算され得る。
【0083】
いくつかの事例では、最小静電容量値は、最大静電容量値の2倍の頻度で減衰させるように許可され得る。すなわち、最小静電容量値、すなわち、静電容量値の低い範囲内の静電容量値は、ノイズの影響を受けやすいため、最小静電容量値は、最大静電容量値の2倍速く減衰し得る。しかしながら、いくつかの事例では、最小静電容量値が最大静電容量値、最小静電容量値の間の静電容量値の範囲の50%を超えて減衰させないように、最小静電容量値が減衰させる量は、制限され得る。この意味で、最小静電容量値は、最大静電容量値、最小静電容量値の間の静電容量値の範囲の半分以上に減衰させることに限定され得る。したがって、最小静電容量値が減衰させる量は、最大静電容量値、最小静電容量値の間の静電容量値の範囲に比例し得る。さらに、最小静電容量値は、ノイズを低減するように、最大静電容量値の特定の閾値以内に減衰させることに制限され得る。
【0084】
最小静電容量値を減衰させることは、静電容量式パッド602についての更新された最小静電容量値を決定するように使用され得る。追加的に、最大静電容量値を減衰させることと組み合わせて、更新された最小静電容量値はまた、近接センサー600の個々の静電容量式パッド602について更新された静電容量値の範囲、更新されたバイアス、および/または更新されたスケールファクターを決定するように使用され得る。
【0085】
いくつかの事例では、最小静電容量値が減衰する頻度は、測定された静電容量値の可変性に依存し得る。例えば、過去のいくつかのフレームにわたって検出された静電容量値の間に大きな変動が存在する場合、最小静電容量値は、過去のいくつかのフレームにわたって検出された静電容量値の間に小さな変動が存在する場合と比較して、より速い頻度で減衰させ得る。
【0086】
810で、コントローラ100は、従前のいくつかのカウントまたはフレームにわたって静電容量式パッド602によって検出された平均静電容量値を決定し得る。例えば、コントローラ100は、従前の20個のサンプルにわたって個々の静電容量式パッド602によって検出された平均静電容量値を決定し得る。しかしながら、上記のように、最大静電容量値および/または最小静電容量値を減衰させることは、従前のいくつかのフレームによって決定された平均静電容量値に基づき得る。したがって、平均静電容量値は、既知であり得る。
【0087】
812で、コントローラ100の論理は、810で決定された平均静電容量値が、806で決定された更新された最大静電容量値より大きいか否かを決定し得る。すなわち、平均静電容量値を決定することに少なくとも部分的に基づいて、コントローラ100は、平均静電容量値が静電容量式パッド602で検出された最大静電容量値より大きいかどうかを決定するように、平均静電容量値を最大静電容量値と比較し得る。換言すれば、各静電容量式パッド602は、最大静電容量値に関連付けられ得、コントローラ100は、平均静電容量値が最大静電容量値より大きいか否かを決定し得る。平均静電容量値が最大静電容量値を超えると決定すると、プロセス800は、コントローラ100の論理が新しい最大静電容量値を決定し得る、814への「はい」経路に従い得る。換言すれば、812での「はい」の結果として、コントローラ100の論理は、最大静電容量値が低すぎること、および平均静電容量値が最大静電容量値を超えていることを決定し得る。
【0088】
814で、コントローラ100の論理は、所定のいくつかのフレームにわたって受信された平均静電容量値のパーセンテージ、または重みに少なくとも部分的に基づいて、静電容量式パッド602についての新しい最大静電容量値を決定し得る。例えば、新しい最大静電容量値は、減衰する代わりに、従前の過去のいくつかのサンプルから決定された平均静電容量値に向かって延在し得る。いくつかの事例では、最大静電容量値が「成長する」量は、従前のいくつかのフレームからの平均静電容量値に、0.2などの変数を乗じることによって決定され得る。しかしながら、変数は、ユーザーの手ジェスチャを正確に決定するように、従前のいくつかのフレームにわたって決定された平均静電容量値に向かって最大静電容量値が「成長する」ように最適化され得る。いくつかの事例では、最大静電容量値の成長量はまた、平均静電容量値が最大静電容量値を超える量に少なくとも部分的に基づき得る。
【0089】
代替的に、平均静電容量値が静電容量式パッド602で検出された最大静電容量値より大きくない場合、プロセス800は、平均静電容量値が808で決定された最小静電容量値を下回るか否かをコントローラ100の論理が決定し得る、816への「いいえ」経路に従い得る。すなわち、平均静電容量値を決定することに少なくとも部分的に基づいて、コントローラ100は、平均静電容量値が静電容量式パッド602で検出された最小静電容量値より小さいかどうかを決定するように、平均静電容量値を最小静電容量値と比較し得る。換言すれば、各静電容量式パッド602は、最小静電容量値に関連付けられ得、コントローラ100の論理は、平均静電容量値が最小静電容量値より小さいか否かを決定し得る。平均静電容量値が最小静電容量値より小さいと決定すると、プロセス800は、コントローラ100の論理が新しい最小静電容量値を決定し得る、818への「はい」経路に従い得る。換言すれば、816での「はい」の結果として、コントローラ100の論理は、最小静電容量値が高すぎること、および平均静電容量値が最小静電容量値を超えていることを決定し得る。
【0090】
818で、コントローラ100は、従前のいくつかのフレームにわたる平均静電容量値のパーセンテージ、または重みに少なくとも部分的に基づいて、静電容量式パッド602についての新しい最小静電容量値を決定し得る。例えば、新しい最小静電容量値は、減衰する代わりに、従前のいくつかのフレームの平均静電容量値に向かって延在し得る。いくつかの事例では、最小静電容量値が「成長する」量は、所定のいくつかの従前の静電容量値の平均静電容量値に、0.4などの変数を乗じることによって決定され得る。しかしながら、変数は、ユーザーの手ジェスチャを正確に決定するように、従前のいくつかのフレームにわたって決定された平均静電容量値に向かって最小静電容量値が「成長する」ように最適化され得る。いくつかの事例では、最小静電容量値の成長量はまた、平均静電容量値が最小静電容量値を超える量に少なくとも部分的に基づき得る。
【0091】
816で、平均静電容量値が最小静電容量値より小さい場合、プロセス800は、コントローラ100が近接センサー600を較正し得る、820への「いいえ」経路に従い得る。
【0092】
近接センサー600(または静電容量式パッド602)を較正することはまた、新しい最大静電容量値を決定すること(例えば、814)、および/または新しい最小静電容量値を決定すること(例えば、818)から従い得る。上記のように、近接センサー600を較正することは、静電容量式パッド602についてのバイアスおよびスケールファクターを計算することを包含し得る。換言すれば、近接センサー600を較正することは、各静電容量式パッド602について、検出された静電容量値の範囲、バイアス、および/またはスケールファクターを決定することを包含し得る。したがって、近接センサー600を較正するために、コントローラ100は、新しい最大静電容量値および/または最小静電容量値を利用し得る。
【0093】
820から、プロセス800は、コントローラ100が後続の静電容量値を受信し得る、802にループし得る。すなわち、繰り返し受信する静電容量値を通じて、プロセス800は、最大静電容量値、最小静電容量値を連続的に減衰させ、静電容量式パッド602によって検出された静電容量値の範囲を決定および/または更新し、および/または静電容量値を正規化し得る。
【0094】
図9は、コントローラ100で手ジェスチャに関連付けられた静電容量値を受信し、近接センサー600を較正し、静電容量値および/またはコントローラ100に対する指の近接の表示を伝送するためのプロセス900を図示する。
【0095】
902で、プロセス900は、第1の静電容量値を受信し得る。例えば、コントローラ100の1つ以上のプロセッサは、近接センサー600から第1の静電容量値を受信し得る。第1の静電容量値は、近接センサー600の個々の静電容量式パッド602によって検出された静電容量値を表し得、ここで、第1の静電容量値は、コントローラ100に対するユーザーの個々の指の近接を表す。例えば、第1の静電容量値は、第1の手ジェスチャ904に対応し得、第1の静電容量値は、静電容量式パッド602に対するユーザーの指(複数可)の近接を示し得る。
【0096】
906で、プロセス900は、第1の静電容量値を正規化し得る。例えば、コントローラ100の1つ以上のプロセッサは、上記で議論および記載されたプロセス700および/または800の動作を利用して、個々の静電容量式パッド602から受信された第1の静電容量値を正規化し得る。
【0097】
908で、プロセス900は、第1の静電容量値に少なくとも部分的に基づいて近接センサー600を較正し得る。例えば、コントローラ100の1つ以上のプロセッサは、上記で議論および記載されたプロセス(複数可)700および/または800に関して上で議論されたように、静電容量式パッド602で検出された静電容量値の範囲、静電容量式パッド602に関連付けられたバイアス、および/または静電容量式パッド602に関連付けられたスケールファクターを決定することを通じて、近接センサー600を較正し得る。
【0098】
910で、プロセス900は、第1の静電容量値および/または指位置(複数可)の表示を伝送し得る。例えば、コントローラ100の1つ以上のプロセッサは、第1の静電容量値および/または指位置(複数可)の表示をコンピューティングデバイスに伝送するように、コントローラ100の1つ以上のインターフェースを利用し得る。いくつかの事例では、コンピューティングデバイスは、第1の手ジェスチャ904を表現する画像データを生成するように、第1の静電容量値および/または指位置(複数可)の表示を利用し得る。指位置(複数可)の表示は、コントローラ100に対する指(複数可)の相対位置に対応する[0,1]のスケール上の数値を示し得る。[0,1]スケールの値の1は、指がコントローラ100にタッチすることを示し得るのに対して、[0,1]スケールの値の0は、指がコントローラ100から完全に延在していることを示し得る。第1の手ジェスチャ904に目を向けると、第1の静電容量値を受信し、第1の静電容量値を正規化し、および/または近接センサー600を較正した後、コントローラ100は、コントローラ100に対する指の位置に対応する[0,1]のスケール上の指値を含む表示を伝送し得る。指値は、第1の手ジェスチャ904に対応する画像データを生成するように、その中で使用され得る。
【0099】
912で、プロセス900は、第2の静電容量値を受信し得る。例えば、コントローラ100の1つ以上のプロセッサは、近接センサー600から第2の静電容量値を受信し得る。第2の静電容量値は、近接センサー600の個々の静電容量式パッド602によって検出される静電容量値を表し得、ここで、第2の静電容量値は、コントローラ100に対するユーザーの個々の指の近接を表す。例えば、第2の静電容量値は、第2の手ジェスチャ914に対応し得、第2の静電容量値は、静電容量式パッド602に対する指の近接を示し得る。
【0100】
916で、プロセス900は、第2の静電容量値を正規化し得、918で、プロセス900は、近接センサー600を較正し得る(例えば、静電容量式パッド602に関連付けられた範囲、バイアス、および/またはスケールファクターを決定する)。
【0101】
920で、プロセス900は、第2の静電容量値および/または指位置(複数可)の表示を伝送し得る。例えば、コントローラ100の1つ以上のプロセッサは、第2の静電容量値および/または指位置(複数可)の表示をコンピューティングデバイスに伝送するように、コントローラ100の1つ以上のインターフェースを利用し得る。いくつかの事例では、コンピューティングデバイスは、第2の手ジェスチャ914を表現する画像データを生成するように、第2の静電容量値および/または指位置(複数可)の表示を利用し得る。例えば、指位置(複数可)の表示は、コントローラ100に対する指(複数可)の相対位置の[0,1]のスケール上の数値を示し得る。
【0102】
図10は、ユーザーによって実行される手ジェスチャを表す画像データを生成するように、コントローラ100の近接センサー600を較正し、近接データ内のノイズを低減し、近接データを利用するためのプロセス1000を図示する。
【0103】
1002で、プロセス1000は、近接センサー600から近接データを受信し得、ここで、近接データは、近接センサー600の静電容量式パッド602によって検出された生の静電容量値を表す、または示す。
図10に図示されるように、いくつかの事例では、プロセス1000は、a
1、a
i、およびa
Nによって図示されるように、個々の静電容量式パッド602から静電容量値を受信し得る。いくつかの事例では、プロセス1000は、VR環境で表示される各フレームについて、近接センサー600から生の静電容量値を受信し得る。
【0104】
1004で、プロセス1000は、生の静電容量値を正規化するように工場正規化を実行し得る。例えば、静電容量式パッド602は、製造条件、静電容量式パッド602のサイズなどに応じて、異なるバイアス、スケールファクター、およびオフセットを有し得る。いくつかの事例では、工場正規化は、静電容量値内のバイアスを除去する第1の順序の較正および静電容量値の正規化を包含し得る。
【0105】
1006で、プロセス1000は、握り較正を実行し得る。示されるように、握り較正は、次に詳細に議論される、サブブロック1008、1010、および1012を包含し得る。
【0106】
サブブロック1008で、プロセス1000は、各々の静電容量式パッド602についての静電容量値、受信された最大静電容量値、受信された最小静電容量値、平均静電容量値、および/または中央静電容量値の範囲を観察するように、統計分析を実行し得る。
【0107】
1010で、プロセス1000は、別個のジェスチャ検出を実行し得る。ここで、プロセス1000は、コントローラ100で別個のジェスチャを検出するように、工場正規化に従って正規化された後、近接データ(すなわち、静電容量値)を分析し得る。例えば、近接データが、静電容量式パッド602またはその一部の静電容量値が突然に降下することを示している場合、プロセス1000は、静電容量値のこの降下を、ユーザーがコントローラ100から彼または彼女の手を解放すること、またはコントローラ100から特定の指を解放することに関連付け得る。ユーザーがコントローラ100から彼または彼女の指を突然に解放するときに受信された静電容量値は、特定の静電容量式パッド602によって検出された静電容量値の範囲についての最小静電容量値に対応し得る(例えば、指がコントローラ100にタッチしていないとき)。突然の降下の前に受信された静電容量値は、特定の静電容量式パッド602によって検出された静電容量値の範囲の最大静電容量値に対応し得る(例えば、静電容量値は、指がコントローラ100にタッチしているときを表す)。静電容量値の範囲で、プロセス1000は、近接センサー600のそれぞれの静電容量式パッド602で受信された静電容量値を正規化するように、静電容量式パッド602の静電容量値についてのバイアスおよびスケールファクターを決定し得る。
【0108】
1012で、プロセス1000は、連続的な較正更新および減衰を実行し得る。プロセス1000が近接センサー600から連続的に近接データを受信し得るため、プロセス1000は、所与の静電容量式パッド602の静電容量値の範囲についての最小静電容量値および/または最大静電容量値を再較正またはリセットするように、近接データを連続的に監視し得る。換言すれば、個々の静電容量式パッド602から近接データを連続的に受信することを通じて、プロセス1000は、静電容量値が、範囲の従前に決定された最小静電容量値および/または範囲の最大静電容量値よりも低いか、それよりも高いかを決定し得る。
【0109】
例えば、静電容量がゲームプレイ体験全体を通して変化し得る(例えば、手が汗をかくまたは乾燥する、湿度、温度など)ため、プロセス1000は、新しい最小静電容量値または新しい最大静電容量値を決定または設定し得、それによって、静電容量式パッド602によって検出された静電容量値の範囲を調整する。追加的に、いくつかの事例では、連続的な較正は、1010で別個のジェスチャ検出を決定するプロセス1000への依存を減少させ得る。
【0110】
いくつかの事例では、プロセス1000は、それぞれ、最小静電容量値または最大静電容量値を更新するように、新たに検出された最小静電容量値または新たに検出された最大静電容量値に重みまたはパーセンテージを割り当て得る。例えば、プロセス1000が、特定の時間量、または特定のいくつかのフレームについて、従前に検出された最小静電容量値を下回る静電容量値を検出した場合、プロセス1000は、最小静電容量値を更新するように静電容量値を重み付けし得る。追加的に、最小静電容量値および/または最大静電容量値は、ユーザーがコントローラ100をどのように握るか、環境条件(例えば、湿度)、または他の特性(例えば、皮膚の湿り気)に応じて、経時的に減衰し得る。最小静電容量値および最大静電容量値の量が減衰し得る量は、最小静電容量値および最大静電容量値がセンサーノイズを低減するように閾値によって分離されるように、制限され得る。いくつかの事例では、減衰は、近接センサー600によって検出された静電容量値における時間および/または変化の頻度に依存し得る。例えば、コントローラ100が特定の期間またはフレーム内の静電容量値の閾値量を検出するように、またはコントローラ100がユーザーを切り替えるように、それによって、受信された静電容量値に大きな変化(または変動)を潜在的に引き起こすように、ユーザーがコントローラ100上で彼らの指をタップする場合、減衰頻度は、最小静電容量値および/または最大静電容量値を更新するために必要な時間量を減少させるように、増加し得る。
【0111】
1006での握り較正、およびサブブロック1008~1012の結果として、各静電容量式パッド602から感知された静電容量値は、[0,1]のスケールで正規化され得る。[0,1]のスケールは、ユーザーの特定の握りについて、および個々の静電容量式パッド602について、近接センサー600から感知された静電容量値について高レベルおよび低レベルを表し得る。
【0112】
1014で、プロセス1000は、静電容量値の加重和を実行し得る。静電容量値が[0,1]のスケールで正規化されるので、プロセス1010は、コントローラ構成に応じて、静電容量式パッド602からの静電容量値に重みを割り当て得る。すなわち、静電容量値は、[0,1]の間で正規化され、重みは、個々の静電容量式パッド602によって受信された個々の静電容量値に割り当てられる。例えば、特定のコントローラ構成が特定の指に割り当てられた5つの静電容量式パッド602を含む場合、静電容量値は、等しい重み(例えば、5分の1)を含み得る。換言すれば、静電容量式パッド602が最大静電容量値を検出するとき、加重和の出力は、1に等しくなり得る。
【0113】
示されるように、加重和を決定することは、サブブロック1016、1018、1020、および1022を包含し得る。サブブロック1016は、コントローラ100についてのコントローラ構成モデルを含み得る。上記のように、コントローラ構成は、特定の静電容量式パッド602をユーザーの特定の指に関連付けるように、近接センサー600の静電容量式パッド602のマッピングを指定する。
【0114】
サブブロック1018で、プロセス1000は、動的コントローラ構成選択を実行し得、ここで、プロセス1000は、ユーザーの握りに従って、最良の一致、または最も一致したコントローラ構成を決定するように、静電容量値をコントローラ構成モデル(複数可)に入力する。コントローラ構成を選択することは、(1)特定の指に割り当てられた静電容量式パッド602のグループの静電容量値の分散と、(2)静電容量式パッド602のグループ間の静電容量値の分散との比率を決定することを包含し得る。比率は、ユーザーの握りについて最も可能性の高い一致を決定するように、各コントローラ構成について計算される。
【0115】
サブブロック1020で、プロセス1000は、静電容量値内に含まれるノイズをフィルタリングし得る。例えば、指が完全に延在されているときのような、指がコントローラ100にタッチしていないとき、指がコントローラ100にタッチしていない(例えば、指が完全に延在されている)ことに関連付けられたそれらの静電容量式パッド602は、ノイズの影響を受けやすくなり得る。ここで、少量の静電容量を検出することは、受信された静電容量値内で大量のノイズを発生し得る。個々の静電容量式パッド602についての近接センサー600からの静電容量値が特定の閾値を下回る事例では、または静電容量値が静電容量式パッド602についての低レベル静電容量値の特定の限界内にある場合、プロセス1000は、検出された静電容量を抑制し得る。他の事例では、そのようなシナリオでは、プロセス1000は、静電容量値に低重みを割り当て得る。
【0116】
サブブロック1022で、プロセス1000は、近接センサー600の静電容量式パッド602および/またはそれぞれの静電容量式パッド602に関連付けられた指からの特定の静電容量値を拒絶し得る。例えば、1020で、プロセス1000は、最小静電容量値または最大静電容量値の間の小さな範囲を有する静電容量式パッド602を識別し得る。これらのシナリオでは、静電容量式パッド602によって受信された静電容量値は、ノイズを導入し得、特定の静電容量式パッド602、または静電容量式パッド602のグループを無視することは、近接データがユーザーの手ジェスチャに対応する信頼性を増加させ得る。すなわち、静電容量式パッド602によって検出された静電容量値の範囲が小さい場合、静電容量式パッド602は、大量のノイズの影響を受け得る。
【0117】
静電容量式パッドおよび指の拒絶は、サブブロック816で、最小静電容量値または最大静電容量値が互いの閾値範囲内にある静電容量式パッド602を識別することを含み得る。例えば、最小静電容量値および最大静電容量値が小さな範囲で分離されている場合、静電容量式パッド602は、十分詳細にユーザーの指位置を正確に感知および検出することができ得ない。ここで、静電容量式パッド602は、閾値範囲内の静電容量値を検出し得るため、測定された静電容量値は、指位置に正確に対応し得ない。追加的に、または代替的に、特定の指は、検出された静電容量値の信頼性を低下させるいくつかの静電容量式パッド602に関連付けられ得る。これらのシナリオでは、静電容量式パッド602によって受信された静電容量値は、ノイズを導入し得、特定の静電容量式パッド602、または静電容量式パッド602のグループを無視することは、静電容量値がユーザーの手ジェスチャに対応する信頼性を増加させ得る。追加的に、または代替的に、特定の指は、低い信頼性を有するいくつかの静電容量式パッド602に関連付けられ得る。特定の指、または静電容量式パッドのグループ602を拒絶することは、小さな手についてのコントローラ構成について不測の挙動を導入する。これらのシナリオでは、それぞれの指は、隣接する指に関連付けられ得る(例えば、小指は、薬指に関連付けられる)。
【0118】
1024で、プロセス1000は、最終的な正規化を実行し得る。例えば、いくつかの事例では、特定の指に割り当てられた静電容量式パッド602は、静電容量値を検出し得ず、または静電容量値は、信頼でき得ない。ここで、ユーザーは、手のサイズのために、またはユーザーが彼または彼女の握りを再調整した事例では、近接センサー600の特定の静電容量式パッド602にタッチし得ない。追加的に、最小静電容量値および最大静電容量値が狭い、または小さな範囲で分離されたいくつかの事例では、静電容量値は、信頼性がないことがあり得、ノイズは、指の動きに著しく影響を及ぼし得る。これらの静電容量式パッド(複数可)602からノイズを排除または低減するために、最終的な正規化1024は、静電容量値の信頼性を決定し得、信頼性が低い場合、静電容量式パッド602からの静電容量値の重みは、加重和から除去される。その中で、静電容量値は、合計され、使用されている静電容量式パッド602の重みの合計で除算される。
【0119】
1026で、プロセス1000は、ユーザーの手ジェスチャを表すように、近接データをフィルタリング、および曲線フィッティングし得る。フィルタリングおよび曲線フィッティングは、近接データと指の位置との間の線形関係(例えば、カールされた、延長された、中間延長されたなど)を達成するように、[0,1]スケールでの近接データの最終的な正規化を線形化することを包含し得る。例えば、1024で決定された最終的な正規化値は、ユーザーの手がコントローラ100の近くに来る、またはコントローラ100を握るにつれて、最終的な正規化値が指数関数的に増加するような指数曲線に従い得る。換言すれば、合計された静電容量値は、コントローラ100上に/周囲に配置された指との近接に指数関数的に関連され得る。静電容量値が指位置と相関されるように[0,1]スケールで値を線形化することは、感度を低下させ得、指がコントローラ100から延在されたとき、ならびに指がコントローラ100にタッチしたとき、またはコントローラ100に近接しているときに、ノイズがもたらす影響を低減し得る。
【0120】
示されるように、フィルタリングおよび曲線フィッティングは、手ジェスチャを生成するように利用される最終値を達成するために、様々なサブブロックを包含し得る。フィルタリングおよび曲線フィッティング段階1026で、プロセス1000は、曲線フィッティングの前または後にフィルタリングを適用し得る。例えば、サブブロックは、静電容量式パッド602がノイズの影響を受けやすいときに、静電容量値の低レベルの範囲内の静電容量値をフィルタリングすることを包含し得る。換言すれば、指がコントローラ100を握るとき、またはコントローラ100に近接しているときなどの高レベルの静電容量範囲内で、静電容量式パッド602は、ノイズの影響を受けにくい。
【0121】
プロセス1000は、静電容量値に対して実行されるフィルタリングの量を調整するように、1028で適応フィルタリングを適用し得る。適応フィルタリングは、静電容量値が静電容量値の高い範囲内にあるのと比較して、静電容量値の低い範囲内の静電容量値をより積極的にフィルタリングするように、適応的にフィルタリングし得る。図示されるように、適応フィルタリングは、サブブロック1030、1032、および1034を包含し得る。一般に、1026での適応フィルタリングは、正規化された値にどの程度のノイズが存在するかを決定し、正規化された静電容量値に適用されたフィルタリングの量を決定するように、サブブロック1030、1032、および1034の結果を利用し得る。静電容量値に存在するノイズの量を決定することは、どの静電容量式パッド602が静電容量値を生成するために使用されているか、ならびにそれぞれの静電容量式パッド602のための最小静電容量値および最大静電容量値を決定することを包含し得る。例えば、静電容量式パッド602は、ベースラインノイズを有し得、静電容量式パッド602についての最小静電容量値と最大静電容量値との間の範囲が低い場合、静電容量式パッド602のベースラインノイズは、大きな量の指の動きに相当し得る(すなわち、ベースラインノイズは、静電容量式パッド602が感知することができる静電容量値の範囲の大きな部分である)。ここで、信号対ノイズ比は、高くなり得る。比較的、静電容量式パッド602の最小静電容量値と最大静電容量値との間の範囲が大きい場合、静電容量式パッド602のベースラインノイズは、大量の指の動きを導入しない場合がある。これらのシナリオでは、静電容量値内のノイズを低減するために、静電容量値の範囲が小さいとき、プロセス1000は、静電容量値の範囲が大きいときよりも静電容量値をより重くフィルタリングし得る。フィルタリングおよび曲線フィッティング1026は、各静電容量式パッド602がそれぞれの高レベルおよび低レベルの静電容量値を含み得るので、各静電容量式パッド602について繰り返され得る。追加的に、1026で適用されるフィルタリングの量は、どの静電容量式パッド602か、および/またはどの静電容量式パッド602が拒絶されたか(例えば、パッドおよび指の拒絶1022)に依存し得る。
【0122】
1030での合計ノイズ予測は、どの静電容量式パッド602が使用されているか、静電容量式パッド602に割り当てられた重み、ならびに静電容量式パッド602のそれぞれのベースラインノイズに基づいて静電容量値をフィルタリングし得る。例えば、プロセス1000は、個々の静電容量式パッド602についての推定ベースラインノイズを表し得る、1028でのデフォルトの静電容量式パッドノイズを含み得る。したがって、1030での合計ノイズ予測ステップは、使用されているそれらの静電容量式パッド602について、それらのそれぞれのベースラインノイズ値を決定し得る。合計ノイズ予測ステップはまた、静電容量式パッド602についての予想または予測されるノイズを決定し得る。例えば、使用されている静電容量式パッド602が大きな範囲にわたって(すなわち、最小静電容量値と最大静電容量値との間の)静電容量値を感知する場合、静電容量値は、低いノイズ量を含み得、より少ないフィルタリングは、適用され得る。しかしながら、静電容量式パッド602の静電容量値の範囲が狭い場合(すなわち、最小静電容量値と最大静電容量値との間)、次いで、静電容量値は、大きな量のノイズを含み得、プロセス1000は、より多くの量のフィルタリングを適用し得る。
【0123】
1032でのdNorm/dtは、経時的な静電容量値における変化を考慮に入れ得る。例えば、静電容量式パッド602から受信された静電容量値が短時間(例えば、1つのフレーム)にわたって著しく変化する場合、静電容量値内に導入された電位ノイズは、それに応じて無視される、または重み付けされ得る。すなわち、静電容量値をフィルタリングし、レイテンシを導入する代わりに、静電容量値が閾値の時間量にわたって変化した場合、少ないフィルタリングは、静電容量値に適用され得る。この意味で、より少ないフィルタリングは、より大きな指の動きが検出されるとき、適用され得、より多くのフィルタリングは、より少ない指の動きが検出されるとき、適用され得る。
【0124】
1034でのdCurl/dNormは、検出された静電容量の量に基づいて、正規化された静電容量値をフィルタリングし得る。例えば、指がコントローラを握る、静電容量値の高域では、ノイズが指位置に少ない影響を及ぼし得るため、より少ないフィルタリングが、適用され得る。しかしながら、指がコントローラから変位する、または近接している、静電容量値の低い範囲では、静電容量値の小さな変化が指の位置に重大な影響を及ぼし得るため、より多くのフィルタリングが、適用され得る。ここで、静電容量値における小さな変化は、指ジェスチャの大きな変化をもたらし得る。
【0125】
サブブロック1038で、ローパスフィルタは、検出された静電容量値上のフィルタリングの量を調整する調整可能ローパス平均フィルタを表し得る。いくつかの事例では、フィルタリングの量は、[0,1]のスケールであり得、適応フィルタ1028で決定されたフィルタリングの量の結果に基づき得る。すなわち、ローパスフィルタは、適応フィルタリングから決定されるような静電容量値をフィルタリングし得る。
【0126】
サブブロック1040で、プロセス1000は、静電容量値を指の位置、または手アニメーションに関連付けるように、[0,1]スケールの静電容量値に曲線フィットし得る。各指について、曲線フィットの出力は、各指についての数値を含み得、ここで、数値は、手の各指の指位置を示す。
【0127】
サブブロック1042で、プロセス1000は、閾値を下回る静電容量値における変化をフィルタリングするように、曲線の後にバックラッシュフィルタを適用し得る。例えば、静電容量値が[0,1]スケールの閾値量によって変化しない場合、静電容量値は、フィルタリングされ得る。そのようなフィルタリングは、ユーザーによる知覚された指のひきつりおよび動きを減少させ得る。
【0128】
サブブロック1044で、関節モデルは、手アニメーション(例えば、ハンドスケルトン)に対応し得る。例えば、関節モデルは、1040で、曲線フィットから手の個々の指に割り当てられた数に対応する手アニメーションを生成し得る。
【0129】
図11は、近接センサー600に関連付けられた最小静電容量値を更新するための例示的なチャート1100を図示する。例示的なチャート1100は、近接センサー600の静電容量式パッド602から受信された静電容量値1102を図示して示される。いくつかの事例では、コントローラ100は、VR環境内に表示されるすべてのフレームで静電容量値1102を受信し得る。静電容量式パッド602は、静電容量式パッド602に近接した物体(例えば、指)に関連付けられた静電容量値1102を測定し得る。いくつかの事例では、物体と静電容量式パッド602との間の距離が減少するにつれて、静電容量式パッド602によって検出される静電容量値は、増加し得る。静電容量値1102を繰り返し受信することを通じて、コントローラ100は、最大静電容量値1104、最小静電容量値1106、および/または最大静電容量値1104と最小静電容量値1106との間の範囲1108を決定し得る。
【0130】
いくつかの事例では、最大静電容量値1104は、物体(例えば、指)がコントローラ100にタッチしているときに受信された静電容量値に対応し得る。例えば、コントローラ100は、この静電容量値を、最大静電容量値1104およびコントローラ100でのタッチに関連付け得る。この関連付けは、物体(例えば、武器、ボールなど)を保持するユーザーの画像データを生成するように、1つ以上のコンピューティングデバイスによって利用され得る。最小静電容量値1106は、物体(例えば、指)がコントローラ100にタッチしておらず、コントローラ100から完全に延在されたときに受信された静電容量値に対応し得る。例えば、静電容量値1102を受信することでは、コントローラ100は、この静電容量値を最小静電容量値1106に関連付け得、ユーザーが、コントローラ100から指を完全に延在する。この関連付けは、指を完全に延在する(例えば、ボールを降下する)ユーザーの画像データを生成するように、1つ以上のコンピューティングデバイスによって利用され得る。
【0131】
追加的に、静電容量値1102を受信することでは、コントローラ100は、平均静電容量値1110を決定し得る。いくつかの事例では、平均静電容量値1110は、所定のいくつかの過去のサンプルからの静電容量値から決定され得る。例えば、平均静電容量値1110は、受信された過去20個の静電容量値を使用して決定され得る。
【0132】
範囲1108を利用して、コントローラ100は、完全に延在されてからコントローラ100にタッチするまでの間のユーザーの相対的な指位置を決定するように、静電容量式パッド602についてのバイアス、および/またはスケールファクターを決定し得る。しかしながら、ゲームプレイ体験全体を通じて、1つ以上のファクターは、検出された静電容量値1102に影響を与え得る。例えば、コントローラ100が常駐する環境の温度は、低下し得、および/またはユーザーの手/指の湿り気は、増加し得る。いくつかの事例では、これらのファクターは、より低い静電容量値1102を結果とし得る。コントローラ100に対する物体の近接を正確に検出するために、最大静電容量値1104(またはそれに関連付けられたレベル/限界)は、減衰し得る。換言すれば、最大静電容量値1104は、(例えば、バイアス、スケールファクターなどを使用して)静電容量値1102(A)を正確に検出し、および/またはユーザーの指位置に関連付けるように、新しい静電容量値に減衰し得る。
【0133】
例えば、
図11は、最大静電容量値1104が減衰し得ることを図示する。いくつかの事例では、減衰は、コントローラ100が最大静電容量値1104の特定の閾値内の静電容量値1102を受信しない結果として生じ得る。いくつかの事例では、静電容量値1102が所定のいくつかのフレームについての最大静電容量値1104の特定の閾値内にない場合、最大静電容量値1104は、減衰し得る。追加的に、N個のサンプル1112の過去の数にわたる平均静電容量値1110が最大静電容量値1104の特定の閾値内にない場合、最大静電容量値1104は、減衰し得る。さらに他の事例では、最大静電容量1106値は、静電容量値1102および/または平均静電容量値1110に向かって収束するように、連続的に減衰し得る。
【0134】
いくつかの事例では、減衰の量は、過去のN個のサンプル1112にわたって決定された可変減衰頻度、範囲1108、および/または範囲1114に少なくとも部分的に基づき得る。いくつかの事例では、可変減衰頻度は、範囲1108の実質的に10パーセントであり得る。その結果、最大静電容量値1104は、検出された静電容量値1102および/または平均静電容量値1110に向かって収束するように、一定期間にわたって徐々に減衰し得る。追加的に、最大静電容量値1104が減衰する量は、最大静電容量値1104および最小静電容量値1106が閾値量によって分離されるように制限され得る。
【0135】
さらに、最大静電容量値1104が減衰する頻度は、いくつかのフレームに少なくとも部分的に基づき得、コントローラ100は、最大静電容量値1104の閾値内で静電容量値1102を受信されていない。最大静電容量値1104が減衰する頻度はまた、過去のN個のサンプル1112にわたって測定された静電容量値1102の変動に依存し得る。例えば、過去のN個のサンプル1112にわたって検出された静電容量値1102の間に大きな変動が存在する場合、最大静電容量値1104は、過去のN個のサンプル1112にわたって検出された静電容量値1102の間に小さい変動が存在する場合と比較して、より速い頻度で減衰させ得る。
【0136】
したがって、最大静電容量値1104は、新しい値に減衰され得、新しいバイアス、スケールファクター、および/または範囲1116は、決定され得る。
【0137】
最大静電容量値1104を減衰させることの結果、いくつかの事例では、コントローラ100は、最大静電容量値よりも大きい静電容量値1102を検出し得る。すなわち、最大静電容量値1104を連続的に更新することを通じて、コントローラ100は、決定された最大静電容量値よりも大きい静電容量値1102を受信し得る。これらの静電容量値1102は、最大静電容量値1104を「オーバーシュート」し得る。そのような事例では、静電容量値1102が最大静電容量値1104をオーバーシュートした場合、または平均静電容量値1110が最大静電容量値1104をオーバーシュートした場合、最大静電容量値1104は、静電容量値1102または平均静電容量値1110に向かって「成長し」または延在し得る。そのような事例では、最大静電容量値1104は、この差を埋め合わせ得る。最大静電容量値1104が更新される量および/または頻度は、成長変数(例えば、0.2)および過去のいくつかのフレームにわたって検出された平均静電容量値1110に基づき得る。そうすることで、ハンドヘルドコントローラは、最大静電容量値1104を更新し、更新されたバイアス、更新されたスケールファクターなどを決定し得る。最大静電容量値1104は、最大静電容量値1104が静電容量値1102および/または平均静電容量値1110に追いつくまで延在するように継続し得る。
【0138】
図示されていないが、最小静電容量値1106は、静電容量値1102および/または平均静電容量値1110に基づいて、同様に減衰し得る。例えば、最小静電容量値1106は、コントローラ100が、フレームの閾値数について最小静電容量値1106の閾値を超えて静電容量値1102を受信しなかった結果として、減衰し得る。そうすることで、最小静電容量値1106は、(例えば、バイアス、スケールファクターなどを使用して)静電容量値1102を正確に検出し、および/またはユーザーの指位置に関連付けるように、新しい静電容量値に減衰させ得る。最小静電容量値1106が減衰する量または頻度は、コントローラ100が最小静電容量値1106の閾値内で静電容量値1102を受信していない期間に少なくとも部分的に基づき得る。最小静電容量値1106が減衰する量は、最小静電容量値1106および最大静電容量値1104が閾値量または範囲によって分離されるように制限され得る。いくつかの事例では、大量のノイズが範囲1108のより低い範囲内での(すなわち、指がコントローラ100から延在されているときに)静電容量値1102内に存在し得るため、いくつかの事例では、最小静電容量値1106は、最大静電容量値1104の2倍の頻度で減衰し得る。
【0139】
追加的に、最大静電容量値1104および最小静電容量値1106が別々に議論されるが、最大静電容量値1104および最小静電容量値1106は、コントローラ100が静電容量値1102を受信することに基づいて同時に減衰し得る。次に、更新された範囲、更新されたバイアス、および/または更新されたスケールファクターは、静電容量式パッド602を較正すること、および/または静電容量式パッド602から受信された静電容量値1102を正規化することにおける使用について決定され得る。
【0140】
図12は、コントローラ100などの、コントローラ1200の例示的な構成要素を図示する。例示されるように、コントローラ100は、上記の制御部(例えば、ジョイスティック、トラックパッド、トリガなど)、近接センサー600、および/または潜在的に任意の他のタイプの入力または出力デバイスなどの、1つ以上の入力/出力(I/O)デバイス1202を含む。例えば、I/Oデバイス1202は、ユーザー音声入力などのオーディオ入力を受信するための1つ以上のマイクを含み得る。いくつかの実装形態では、1つ以上のカメラまたは他のタイプのセンサー(例えば、慣性測定ユニット(IMU))が、ハンドヘルドコントローラ100の動きなどのジェスチャ入力を受信するための入力デバイスとして機能し得る。いくつかの実施形態では、追加の入力デバイスが、キーボード、キーパッド、マウス、タッチスクリーン、ジョイスティック、制御ボタンなどの形態で提供され得る。入力デバイス(複数可)は、音量を増加/減少させるための基本音量制御ボタン、ならびに電源およびリセットボタンなどの制御機構をさらに含み得る。一方、出力デバイスは、ディスプレイ、光素子(例えば、LED)、触覚をもたらすバイブレータ、スピーカ(複数可)(例えば、ヘッドフォン)などを含み得る。コントローラ100の状態(例えば、電源投入)を示すための単純な光要素(例えば、LED)も存在し得る。
【0141】
いくつかの事例では、I/Oデバイスによる出力は、1つ以上の入力デバイスによって受信された入力に基づき得る。例えば、コントローラ100の近接センサー600を介して感知されたタッチは、近接センサー600に隣接して(例えば、下に)配置されたバイブレータによる触覚応答の出力をもたらし得る。いくつかの事例では、出力は、コントローラ100のハンドル112上/内に配置された静電容量式パッド602などの、近接センサー600に対する1つ以上の物体の近接の特性に少なくとも部分的に基づいて変化し得る。例えば、ハンドル112上の第1の場所でのタッチ入力(または物体の近接)は、第1の触覚出力をもたらし得、一方、ハンドル112上の第2の場所でのタッチ入力(または物体の近接)は、第2の触覚出力をもたらし得る。さらに、ハンドル112上の特定のジェスチャは、特定の触覚出力(または他の種類の出力)をもたらし得る。例えば、ハンドル112上でタップして保持するジェスチャ(近接センサー600によって検出された)は、第1のタイプの触覚出力をもたらし得、ハンドル112上でタップして解放するジェスチャは、第2のタイプの触覚出力をもたらし得、ハンドル112の強いタップは、第3のタイプの触覚出力をもたらし得る。しかしながら、2、3の実施例が提供されるが、コントローラ100は、追加的または代替的に、他のタイプのI/Oデバイスであり得る。
【0142】
加えて、コントローラ100は、ネットワークおよび/または1つ以上の遠隔システム(例えば、アプリケーション実行するホストコンピューティングデバイス、ゲームコンソールなど)への無線接続を容易にするための1つ以上の通信インターフェース1204を含み得る。通信インターフェース1204は、Wi-FiTM、BluetoothTM、無線周波数(RF)などの1つ以上の様々な無線技術を実装し得る。追加的に、または代替的に、コントローラ100は、ネットワーク、接続された周辺デバイス、または他の無線ネットワークと通信するプラグインネットワークデバイスへの有線接続を容易にする物理ポートを含み得る。
【0143】
例示された実装形態では、コントローラ100は、1つ以上のプロセッサ1206およびコンピュータ可読媒体1208をさらに含む。いくつかの実装形態では、プロセッサ(複数可)1206は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、CPUおよびGPUの両方、マイクロプロセッサ、デジタル信号プロセッサ、または他の既知の処理ユニットもしくは構成要素を含み得る。追加的に、または代替的に、本明細書に記載される機能は、少なくとも部分的に、1つ以上のハードウェア論理構成要素によって実行され得る。例えば、非限定的に、使用されることができるハードウェア論理構成要素の例示的なタイプは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などを含む。追加的に、プロセッサ(複数可)1206の各々は、プログラムモジュール、プログラムデータ、および/または1つ以上のオペレーティングシステムも格納し得る、その独自のローカルメモリを保有し得る。
【0144】
コンピュータ可読媒体1208は、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術で実装された、取り外し可能および取り外し不可能な媒体を含み得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。コンピュータ可読媒体1208は、コンピュータ可読媒体1208に記憶された命令を実行するためにプロセッサ(複数可)1206によってアクセス可能な任意の利用可能な物理媒体であり得る、コンピュータ可読ストレージ媒体(「CRSM」)として実装され得る。一実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実装形態では、CRSMは、限定されるものではないが、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ(複数可)1206によってアクセスされ得る、任意の他の有形媒体を含み得る。
【0145】
命令、データストア等々のような数個のモジュールは、コンピュータ可読媒体1208内に格納され、プロセッサ(複数可)1206上で実行するように構成され得る。数例の機能モジュールは、コンピュータ可読媒体1208に記憶され、プロセッサ(複数可)1206上で実行されるように示されるが、同じ機能が、代替的に、ハードウェア、ファームウェアで、またはシステムオンチップ(SOC)として実装されてもよい。オペレーティングシステムモジュール1210は、他のモジュールの利益のために、コントローラ100内でハードウェアを管理し、コントローラ100に連結されるように構成され得る。加えて、コンピュータ可読媒体1208は、コントローラ100が、1つ以上の通信インターフェース1204を介して、アプリケーション(例えば、ゲームアプリケーション)、ゲームコンソール、遠隔サーバ、他のコントローラ、コンピューティングデバイスなどを実行するパーソナルコンピューティングデバイスなどの1つ以上の他のデバイスと通信することを可能にするネットワーク通信モジュール1212を格納し得る。コンピュータ可読媒体1208は、コントローラ100上で、またはコントローラ100に連結されたコンピューティングデバイス上で実行するゲーム(または他のアプリケーション)に関連付けられたデータを記憶するためのゲームセッションデータベース1214をさらに含み得る。
【0146】
コンピュータ可読媒体1208はまた、パーソナルコンピューティングデバイス、ゲームコンソール、遠隔サーバなどの、コントローラ100に連結されたデバイスに関連付けられたデータを格納するデバイス記録データベース1216を含み得る。
【0147】
コンピュータ可読媒体1208は、コントローラ100をゲームコントローラとして機能するように構成するゲーム制御命令1218、およびコントローラ100を他の非ゲームデバイスのコントローラとして機能するように構成する汎用制御命令1220をさらに格納し得る。
【0148】
コンピュータ可読媒体1208は、コントローラ構成(複数可)1222を追加的に格納し得る。コントローラ構成1222は、特定の静電容量式パッド602をコントローラ100を操作するユーザーのそれぞれの指に関連付けるように、近接センサー600の静電容量式パッド602の割り当てに関連付けられたデータを表し、または含み得る。
【0149】
コンピュータ可読媒体1208は、静電容量値の範囲1224に関連付けられたデータを追加的に格納し得る。静電容量値の範囲1224は、近接センサー600の個々の静電容量式パッド602で検出された、または検出されることが可能な静電容量値の範囲を示し得る。例えば、上で記載されたように、近接センサー600から連続的に近接データを受信することを通じて、コントローラ100は、静電容量式パッド602で受信された静電容量値の範囲を計算および/または決定し得る。静電容量値の範囲で、コンピュータ可読媒体1208はまた、最小静電容量値1226および/または最大静電容量値1228を格納し得る。
【0150】
コンピュータ可読媒体1208はまた、スケールファクターおよびバイアス1230を格納し得る。スケールファクターおよびバイアス1230は、個々の静電容量式パッド602に関連付けられ得、静電容量値1224の範囲を利用して決定され得る。したがって、静電容量値1226および/またはスケールファクターおよびバイアス1230の範囲を利用して、コントローラ1200は、近接センサー600から受信された近接データを正規化および/または較正し得る。
【0151】
(結論)
上記の発明は、特定の実施例に関して記載されているが、本発明の範囲は、これらの特定の実施例に限定されないことを理解されたい。特定の動作要件および環境に適合するように変更された他の修正および変更は、当業者に明らかであるため、本発明は、開示の目的で選択された実施例に限定されたとみなされず、本発明の真の概念および範囲から逸脱しない全部の変更および修正に及ぶ。
【0152】
本出願は、特定の構造的特徴および/または方法論的行為を有する実施形態を記載するが、特許請求の範囲は、必ずしも説明される特定の特徴または行為に限定されないことを理解されたい。むしろ、特定の特徴および行為は、本出願の特許請求の範囲内にあるいくつかの実施形態を単に例示するものである。
[条項]
本開示の実施形態は、以下の条項を考慮して記載されることができる。
1.ハンドヘルドコントローラであって、
近接センサーであって、前記近接センサーに近接する物体に基づいて静電容量値を検出するように構成されている前記近接センサーと、
1つ以上のプロセッサと、
コンピュータ実行可能命令を格納する1つ以上の非一時的なコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、
前記近接センサーによって検出された第1の静電容量値を受信することと、
前記第1の静電容量値に少なくとも部分的に基づいて、
最大静電容量値と、
最小静電容量値と、
静電容量値の範囲と、を決定することと、
前記近接センサーのバイアスを決定することと、
前記近接センサーによって検出された前記静電容量値についてのスケールファクターを決定することと、
前記バイアスおよび前記スケールファクターに少なくとも部分的に基づいて、前記近接センサーを較正することと、
前記近接センサーによって検出された第2の静電容量値を受信することと、
前記第2の静電容量値に少なくとも部分的に基づいて、
更新された最大静電容量値、
更新された最小静電容量値、または
静電容量値の更新された範囲、のうちの少なくとも1つを決定することと、
前記近接センサーの更新されたバイアスまたは前記近接センサーによって検出された前記静電容量値についての更新されたスケールファクターのうちの少なくとも1つを決定することと、
前記更新されたバイアスまたは前記更新されたスケールファクターのうちの少なくとも1つに少なくとも部分的に基づいて、容量性センサーを較正することと、を含む行為を実行させる、前記1つ以上の非一時的なコンピュータ可読媒体と、を備える、ハンドヘルドコントローラ。
2.コンピュータ実行可能命令を格納する前記1つ以上の非一時的なコンピュータ可読媒体が、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、
前記第2の静電容量値に少なくとも部分的に基づいて、前記ハンドヘルドコントローラに対する前記物体の近接を決定することと、
前記近接物体の表示を生成することと、
前記表示をコンピューティングデバイスに伝送することと、をさらに含む行為を実行させる、条項1に記載のハンドヘルドコントローラ。
3.前記近接センサーが、複数の静電容量式パッドを含み、
前記複数の静電容量式パッドの個々の静電容量式パッドが、前記ハンドヘルドコントローラに対する前記物体の近接に関連付けられた静電容量値を生成するように構成されている、条項1に記載のハンドヘルドコントローラ。
4.コンピュータ実行可能命令を格納する前記1つ以上の非一時的なコンピュータ可読媒体が、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、少なくとも部分的に前記第2の静電容量値に基づいて、
前記更新された最大静電容量値に対する前記最大静電容量値、または
前記更新された最小静電容量値に対する前記最小静電容量値、のうちの少なくとも1つを減衰させることと、をさらに含む行為を実行させる、条項1に記載のコントローラ。
5.方法であって、
近接センサーによって検出された近接値の範囲を決定することであって、値の近接範囲が、最大値および最小値を含む、決定することと、
前記近接センサーから近接値を受信することと、
前記最大値に関連付けられた限界を減衰させることと、
前記最小値に関連付けられた限界を減衰させることと、
前記最大値に関連付けられた前記限界および前記最小値に関連付けられた前記限界に少なくとも部分的に基づいて、前記近接センサーによって検出された近接値の更新された範囲を決定することと、
前記近接値の更新された範囲に少なくとも部分的に基づいて、前記近接センサーによって検出された前記近接値のためのスケールファクターを決定することと、を含む、方法。
6.前記最大値に関連付けられた前記限界を減衰させることおよび前記最小値に関連付けられた前記限界を減衰させることが、前記近接センサーによって検出された前記近接値の範囲に少なくとも部分的に基づいている、条項5に記載の方法。
7.前記近接値が、従前のいくつかのフレームの間に受信され、前記方法は、前記従前のいくつかのフレームの間に受信された前記近接値に基づいて、平均値を決定することをさらに含み、前記最大値に関連付けられた前記限界を減衰させることおよび前記最小値に関連付けられた前記限界を減衰させることが、さらに前記平均値に少なくとも部分的に基づく、条項6に記載の方法。
8.前記最大値に関連付けられた前記限界を減衰させる第1の頻度を決定することであって、前記第1の頻度が、所定の数の従前のフレームの間に受信された前記近接値の変動性に少なくとも部分的に基づいている、決定することと、
前記最小値に関連付けられた前記限界を減衰させる第2の頻度を決定することであって、前記第2の頻度が、前記所定の数の従前のフレームの間に受信された前記近接値の前記変動性に少なくとも部分的に基づいている、決定することと、さらを含み、
前記最大値に関連付けられた前記限界を減衰させることが、前記第1の頻度に少なくとも部分的に基づいており、
前記最小値に関連付けられた前記限界を減衰させることが、前記第2の頻度に少なくとも部分的に基づいている、条項5に記載の方法。
9.前記近接センサーによって検出された前記近接値が、コントローラに近接している物体に対応し、前記方法が、
前記コントローラに対する前記物体の近接に対応する表示を生成することと、
前記表示を1つ以上のコンピューティングデバイスに伝送することと、をさらに含む、条項5に記載の方法。
10.前記近接値が、第1の近接値を含み、前記方法が、
第2の近接値を受信することと、
前記最大値に関連付けられた前記限界および前記最小値に関連付けられた前記限界を、前記第2の近接値に少なくとも部分的に基づいて、減衰させることと、
前記近接センサーによって検出された平均値を決定することと、
前記平均値が前記最大静電容量値に関連付けられた前記限界を超えること、または
前記平均値が前記最小静電容量値に関連付けられた前記限界未満であること、のうちの少なくとも1つを決定することと、をさらに含む、条項5に記載の方法。
11.前記平均値が前記最大静電容量値に関連付けられた前記限界を超えることに少なくとも部分的に基づいて、前記最大値に関連付けられた更新された限界を決定すること、または
前記平均値が前記最小静電容量値に関連付けられた前記限界未満であることに少なくとも部分的に基づいて、前記最小値に関連付けられた更新された限界を決定すること、のうちの少なくとも1つをさらに含む、条項10に記載の方法。
12.前記平均値が、所定の数の従前のフレームにわたって決定され、
前記最大値に関連付けられた前記更新された限界が、前記所定の数の従前のフレームにわたって決定された前記平均値に少なくとも部分的に基づいており、
前記最小値に関連付けられた前記更新された限界が、前記所定の数の従前のフレームにわたって決定された前記平均値に少なくとも部分的に基づいている、条項11に記載の方法。
13.前記近接センサーが、複数の静電容量式パッドを含み、
個々の静電容量式パッドが、前記近接値を生成するように構成されており、前記近接値が、コントローラに近接している物体に関連付けられている、条項5に記載の方法。
14.コントローラであって、
センサーと、
1つ以上のプロセッサと、
コンピュータ実行可能命令を格納する1つ以上の非一時的なコンピュータ可読媒体であって、コンピュータ実行可能命令は、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、
前記センサーから、第1のデータを受信することと、
前記第1のデータに少なくとも部分的に基づいて、近接値の範囲を決定することであって、前記近接値の範囲が、第1の最大近接値および第1の最小近接値を含む、決定することと、
第1のスケールファクターを決定することと、
前記センサーから、第2のデータを受信することと、
前記第1の最大近接値または前記第1の最小近接値のうちの少なくとも1つを減衰させることと、
近接値の更新された範囲を決定することであって、前記近接値の更新された範囲が、第2の最大近接値または第2の最小近接値のうちの少なくとも1つを含む、決定することと、
第2のスケールファクターを決定することと、
前記第2のスケールファクターに少なくとも部分的に基づいて、近接を決定することと、を含む行為を実行させる、前記1つ以上の非一時的なコンピュータ可読媒体と、を備える、コントローラ。
15.前記第1の最大近接値が、前記センサーに対する物体の第1の近接に関連付けられており、前記第1の最小近接値が、前記センサーに対する前記物体の第2の近接に関連付けられており、
前記第2の最大近接値が、前記センサーに対する前記物体の前記第1の近接に関連付けられており、前記第2の最小近接値が、前記センサーに対する前記物体の前記第2の近接に関連付けられている、条項14に記載のコントローラ。
16.前記1つ以上の非一時的なコンピュータ可読媒体が格納するコンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、前記近接の表示をコンピューティングデバイスに伝送することと、をさらに含む行為を実行させる、条項14に記載のコントローラ。
17.1つ以上の非一時的なコンピュータ可読媒体が格納するコンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、
平均近接値を決定することと、
前記平均近接値が前記第2の最大近接値を超えること、または
前記平均近接値が前記第2の最小近接値未満であること、のうちの少なくとも1つを決定することと、
第3の最大近接値または第3の最小近接値のうちの少なくとも1つを決定することと、をさらに含む行為を実行させる、条項14に記載のコントローラ。
18.前記第3の最大近接値または前記第3の最小近接値が、前記平均近接値のパーセンテージに少なくとも部分的に基づいている、条項17に記載のコントローラ。
19.前記第2のデータが、近接値を含み、
前記第1の最大近接値を減衰させることが、1つ以上の前記近接値が閾値期間の間、前記第1の最大近接値の第1の閾値範囲外にあると決定することに少なくとも部分的に基づいており、
前記第1の最小近接値を減衰させることが、1つ以上の前記近接値が閾値期間の間、前記第1の最小近接値の第2の閾値範囲外にあると決定することに少なくとも部分的に基づいている、条項14に記載のコントローラ。
20.前記第1の最大近接値を減衰させることが、前記近接値の範囲および前記近接値のサブセットからの近接値の範囲に少なくとも部分的に基づいており、
前記第1の最小近接値を減衰させることが、前記近接値の範囲および前記近接値の前記サブセットからの前記近接値の範囲に少なくとも部分的に基づいている、条項14に記載のコントローラ。
【国際調査報告】