一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

连续控制器校准的制作方法

2021-10-08 22:39:00 来源:中国专利 TAG:专利申请 引用 优先权 校准 并入

连续控制器校准
1.相关申请的交叉引用
2.本专利申请要求于2019年2月28日提交的美国实用新型专利申请序列号16/289,259的优先权,其全部内容以引用方式并入本文。


背景技术:

3.手持式控制器在一系列架构中使用,以例如向计算设备提供输入。例如,在游戏行业中使用手持式控制器来允许玩家与执行游戏应用程序、游戏机、游戏服务器等的个人计算设备进行交互。在一些情况下,手持式控制器可以在虚拟现实(vr)环境中使用,并且可以模仿自然交互诸如抓持、投掷、挤压等。尽管当前的手持式控制器提供了一系列功能,但是进一步的技术改进可以增强用户体验。
附图说明
4.图1描绘了根据本公开的示例性实施方案的具有处于打开位置的手固定器的控制器。
5.图2描绘了根据本公开的示例性实施方案的在用户的手心朝上张开的手中的图1的控制器。
6.图3描绘了根据本公开的示例性实施方案的在用户紧握的手中的图1的控制器。
7.图4描绘了根据本公开的示例性实施方案的在用户的手心朝下紧握的手中的图1的控制器。
8.图5描绘了根据本公开的示例性实施方案的具有处于打开位置的手固定器的一对控制器。
9.图6描绘了根据本公开的示例性实施方案的图1的控制器的接近传感器。
10.图7描绘了根据本公开的示例性实施方案的用于配置图1的控制器的接近传感器的示例性过程。
11.图8描绘了根据本公开的示例性实施方案的用于配置图1的控制器的接近传感器的示例性过程。
12.图9描绘了根据本公开的示例性实施方案的用于配置图1的控制器的接近传感器的示例性过程。
13.图10描绘了根据本公开的示例性实施方案的用于配置图1的控制器的接近传感器的示例性过程。
14.图11描绘了示出根据本公开的示例性实施方案的配置图1的控制器的接近传感器的示例性图。
15.图12描绘了根据本公开的示例性实施方案的图1的控制器的示例性部件。
具体实施方式
16.除其他事项外,本文描述了具有触敏控件的手持式控制器和/或用于连续校准这
些触敏控件的方法。在一些情况下,本文所述的手持式控制器可以控制设备(例如,电视、音频系统、个人计算设备、游戏机等),以参与视频游戏等。手持式控制器可以包括一个或多个控件,诸如操纵杆、触控板、轨迹球、按钮或可由手持式控制器的用户操作的其他控件。另外,手持式控制器可以包括被配置为检测用户的存在、接近度、位置和/或手势的传感器。例如,手持式控制器可以包括接近传感器,该接近传感器被配置为检测一个或多个对象(诸如,用户的手指或手指的部分)相对于手持式控制器的接近度。然而,手持式控制器可以包括红外传感器、利用声波的传感器,以及/或者被配置为检测在手持式控制器处的触摸输入和/或一个或多个对象相对于手持式控制器的接近度的任何其他类型的传感器。
17.在一些情况下,接近传感器可以包括被布置成行、列、网格和/或组的接近传感器或电容垫的阵列。电容垫可以生成对应于手指相对于手持式控制器的接近度的接近度数据(例如,电容值)。手持式控制器可以连续地监测由各个电容垫检测到的电容值,以将这些电容值与在该手持式控制器上方手指的触摸或相对悬停相关联。例如,接近度数据可以指示一个或多个手指接触(例如,物理地触摸)手持式控制器,并且/或者可以指示一个或多个手指悬停在手持式控制器上方。接近度数据还可以用于确定手指悬停在手持式控制器上方的或相对于手持式控制器的距离。换句话说,如果手指悬停在手持式控制器上方,则接近度数据可以指示手指放置在该手持式控制器上方(或距该手持式控制器)的距离。使用电容值的范围,可以确定手指的相对位置(即,在完全伸展开与触摸手持式控制器之间)。
18.在一些情况下,电容垫可以与用户的特定手指(例如,中指、无名指、小拇指等)或手指的某些部分(例如,指尖)相关联。通过将电容垫布置成组,或者将某些电容垫与手指相关联,手持式控制器可以将电容值映射到用户的某些手指(或手指的一部分)。
19.手持式控制器可以包括一个或多个处理器,该一个或多个处理器通信地耦接到接近传感器以接收和/或分析接近度数据。在接近传感器包括电容垫的情况下,该一个或多个处理器可以从各个电容垫接收接近度数据(例如,电容值)。该一个或多个处理器或其他逻辑(例如,软件、硬件、固件等)可以分析接近度数据以确定所检测到的电容值并且将该电容值和手指与手持式控制器的相对接近度相关联。换句话说,手持式控制器可以利用接近度数据来确定手指的存在和/或手指的位置。另外,手持式控制器可以从各个电容垫接收接近度数据,并且可以将该接近度数据与用户的特定手指相关联或分组在一起。将接近度数据与某些手指相关联可以允许游戏机、远程系统、头戴式显示器、虚拟现实环境或其他计算设备和/或手持式控制器生成描绘用户的手势的图像数据。
20.作为示例,接近度数据可以指示用户用他们的中指和无名指抓握手持式控制器,但不用他或她的小拇指抓握手持式控制器。接近度数据还可以指示小拇指与手持式控制器的相对接近度(即,小指放置得距手持式控制器有多远)。利用接近度数据并将接近度数据与用户的某些手指相关联,手持式控制器(或另一个通信地耦接的设备)可以生成表示手指位置的指示(或其他信息)。例如,游戏机可以利用该指示来生成对应于手势的图像数据,该手势示出了用户用他们的中指和无名指握持对象,但不使用小拇指握持对象。
21.手持式控制器(或另一个通信耦接的设备)可以连续地校准接近传感器以适应变化的抓握(例如,不同的手大小、不同的手指大小等)和/或变化的环境条件(例如,湿度、温度等)。例如,手持式控制器可以连续地监测接近度数据以将电容值与用户的手指位置相关联。作为示例,所检测到的接近度数据(例如,电容值)可以根据用户的抓握诸如用户如何握
持手持式控制器、用户玩什么游戏和/或用户的手的物理特征(例如,手指的长度、手指的宽度等)而变化。在一些情况下,连续地校准接近传感器可以包括确定由各个电容垫检测到的电容值的范围。
22.电容值的范围可以包括与手指触摸手持式控制器相关联的电容值和与手指从手持式控制器完全伸展开相关联的电容值。在一些情况下,这些电容值可以分别对应于最大电容值和最小电容值。知道各个电容垫的电容值的范围允许后续电容值被归一化,这进而可以用于确定手指位置。接近传感器的各个电容垫可以包括最大电容值和最小电容值,使得从各个电容垫接收到的后续电容值可以被归一化。也就是说,使用电容值的范围,手持式控制器或另一个通信地耦接的设备可以连续地确定与电容垫相关联的缩放系数和/或偏差。缩放系数和/或偏差可以用于归一化(或校准)在各个电容垫处接收到的电容值和/或归一化在接近传感器的电容垫上接收到的电容值。在一些情况下,各个电容垫的偏差、缩放系数和/或电容值的范围可以由于电容垫可以不同地响应和/或生成不同的电容值而变化。
23.作为示例,在电容垫处检测到的电容值可以取决于电容垫的尺寸和/或制造条件。计算缩放系数和/或知道各个电容垫的偏差允许电容值与从接近传感器的其他电容垫接收到的电容值归一化。电容垫相对于彼此的归一化和/或校准可以准确地确定由用户执行的手势。
24.由接近传感器的电容垫检测到的电容值可以在整个游戏体验中变化,诸如在用户的手变得湿润(例如,出汗)的情况下变化。例如,由电容垫测量或检测到的接近度数据可以改变,例如,当用户的手变得潮湿时、当环境内的湿度增加时以及/或者当用户调节他或她的抓握时。因此,由给定电容垫检测到的电容值的范围可以改变。偏差和缩放系数可能会相应地改变。为了准确地描绘用户的手势,手持式控制器可以衰减与最大电容值相关联的极限和/或与最小电容值相关联的极限。在一些情况下,至少部分地基于接收到电容值,手持式控制器可以朝向所检测到的电容值连续地衰减最大电容值和/或最小电容值。在这样做时,电容值的范围可以连续地变化,使得电容值的范围对应于在接近传感器处检测到的电容值。在一些情况下,如果手持式控制器在阈值量的时间、阈值数量的帧或阈值数量的计数内没有检测到最大电容值的预先确定范围内的电容值,则最大电容值可以衰减。例如,最大电容值的预先确定范围可以是由手持式控制器检测到的电容值的范围(即,在最大电容值和最小电容值之间)的四分之一,并且如果手持式控制器没有检测到在最大电容值的预先确定范围内的电容值,则最大电容值可以朝向所检测到的电容值衰减。换句话说,如果电容值不在最大电容值的预先确定范围内,则最大电容值可以朝向最小电容值衰减。在其他情况下,如果在预先确定量的时间、预先确定数量的帧或预先确定数量的计数内确定的平均电容值不在最大电容值的预先确定范围内,则最大电容值可以衰减。作为示例,如果手指变得潮湿,则手持式控制器可以观察到所检测到的电容值的减小。最大电容值可以朝向最小电容值衰减以更新或确定新的最大电容值。由于最大电容值与对象(例如,手指)触摸手持式控制器相关联,因此通过衰减最大电容值,手持式控制器可以准确地确定手指位置。衰减最大电容值还可以用于确定接近传感器的各个电容垫的电容值的更新范围、更新的偏差和/或更新的缩放系数。
25.最小电容值可以类似地衰减。也就是说,至少部分地基于接收到电容值,手持式控制器可以朝向所检测到的电容值连续地衰减最小电容值,使得电容值的范围变化为对应于
在接近传感器处检测到的电容值。例如,如果手持式控制器在阈值量的时间、阈值数量的帧或阈值数量的计数内没有检测到在最小电容值的预先确定范围内的电容值,则最小电容值可以衰减。在一些情况下,最小电容值的预先确定范围可以是由手持式控制器检测到的电容值的范围的四分之一,并且如果手持式控制器没有检测到在最小电容值的预先确定范围内的电容值,则最小电容值可以衰减。在其他情况下,如果在先前量的时间、先前数量的帧或先前数量的计数内检测到的电容值的平均值不在最小电容值的预先确定范围内,则最小电容值可以衰减。由于最小电容值与对象(例如,手指)从手持式控制器完全伸展开相关联,因此通过衰减最小电容值,手持式控制器(或另一个通信地耦接的设备)可以准确地确定手指位置。衰减最小电容值还可以用于确定接近传感器的各个电容垫的电容值的更新范围、更新的偏差和/或更新的缩放系数。
26.在一些情况下,最大电容值和/或最小电容值衰减的量可以基于一个或多个可变衰减速率、在预先确定的过去数量的帧内检测到的电容值的范围,以及/或者最大电容值与最小电容值之间的电容值范围。例如,衰减的量可以基于所检测到的电容值与在预先确定的过去数量的帧内检测到的电容值的范围之间的差值的百分比,或者所检测到的电容值和最大电容值与最小电容值之间的电容值的范围之间的差值的百分比。在其他情况下,衰减的量可以分别基于所检测到的电容值与最大电容值或最小电容值之间的差值的百分比。在其他情况下,可以优化衰减或可变衰减速率,以分别准确地将手指的接近度与最大电容值和最小电容值相关联。在一些情况下,衰减最大电容值和最小电容值可以是有限的,使得最小电容值和最大电容值隔开阈值量。
27.最大电容值或最小电容值衰减的速率可以取决于所测量的电容值的波动性和/或可变性。例如,与如果在预先确定的过去数量的帧内检测到的电容值之间存在较小可变性相比,如果在预先确定的过去数量的帧内检测到的电容值之间存在较大可变性,则最大电容值或最小电容值可以更快的速率衰减。例如,如果第一用户具有与他或她的抓握相关联的最大电容值和最小电容值,并且第二用户操作手持式控制器,则第一用户和第二用户的最大电容值和/或最小电容值之间可能存在较大可变性。此时,由于这种差异(或较大可变性),或者如果差异大于阈值,则衰减速率可以考虑这一点,并且以更快的速率衰减最大电容值和/或最小电容值。除此之外或另选地,最大电容值或最小电容值衰减的速率可以取决于由手持式控制器接收到的电容值的数量。例如,如果用户在手持式控制器上快速敲击他们的手指,则手持式控制器可以更快的速率将最大电容值(或极限)和/或最小电容值(或极限)衰减或靠拢到所检测到的电容值,并且如果用户没有快速敲击手持式控制器。
28.因此,在整个游戏体验中,衰减和连续地校准接近传感器的电容垫可以适应用户的抓握并适应环境因素,以准确地确定手指位置。换句话说,未能衰减最大电容值或与最大电容值相关联的极限可能导致不准确地将所接收到的电容值与手指触摸手持式控制器相关联。也就是说,手持式控制器可能不将电容值和与手指触摸手持式控制器相关联的更新的最大电容值进行比较。类似地,未能衰减最小电容值或与最小电容值相关联的极限可能导致不准确地将所接收到的电容值与手指从手持式控制器完全伸展开相关联。也就是说,手持式控制器可能不将电容值和与手指从手持式控制器完全伸展开相关联的更新的最小电容值进行比较。此外,尽管以上讨论是关于特定电容垫的,但是对于在vr环境中显示的每个帧,手持式控制器可以同时确定接近传感器的每个电容垫的电容值的范围、偏差、缩放系
数、衰减和/或衰减速率。
29.作为衰减最大电容值和/或最小电容值的结果,在一些情况下,手持式控制器可以检测分别大于或小于最大电容值和/或最小电容值的电容值。换句话说,通过连续地更新最大电容值和/或最小电容值,手持式控制器可以接收大于所确定的最大电容值的电容值并且/或者可以接收小于所确定的最小电容值的电容值。作为示例,当用户的手指变得不那么潮湿时,或者如果不同用户操作手持式控制器,则手持式控制器可以检测到增大的电容值,并且电容值可以“超越”或超过最大电容值和/或最小电容值。在这种情况下,最大电容值和/或最小电容值可以至少部分地基于在过去数量的帧内检测到的电容值的平均值来扩展和弥补该差值。另外,最大电容值和/或最小电容值更新的速率可以基于增长常数以及在过去数量的帧内检测到的平均电容值。在这样做时,手持式控制器(或另一个通信地耦接的设备)可以确定更新的最大电容值和/或最小电容、更新的偏差、更新的缩放系数等。
30.另外,在一些情况下,手持式控制器还可以经由压力传感器感测、检测或测量与手持式控制器处的触摸输入相关联的力的大小。例如,当用户的手指按压手持式控制器时,控制器的一部分(诸如,设置在压力传感器上方的覆盖件)可以偏转至接触压力传感器。压力传感器可以耦接到该一个或多个处理器,使得触摸输入可以导致力数据被提供给该一个或多个处理器。在一些情况下,压力传感器可以包括力感测电阻(fsr)传感器、压电传感器、测力传感器、应变仪、测量电容力测量的电容式压力传感器或任何其他类型的压力传感器。另外,在一些情况下,接近度数据和力数据可以被一起解释并且与预定义的命令或手势(例如,挤压)相关联。
31.鉴于上述内容,例如,手持式控制器可以动态地校准接近传感器,以适应改变的用户的抓握和/或环境条件。在这样做时,手持式控制器可以衰减与手指触摸手持式控制器相关联的电容值(例如,最大电容值)以及与手指从手持式控制器完全伸展开相关联的电容值(例如,最小电容值)。通过确定电容值的范围、偏差、缩放系数等,在接收到后续接近度数据时,手持式控制器可以确定手指与手持式控制器的相对位置和/或接近度。换句话说,为了在游戏(例如,vr环境)中准确地描绘用户的手势,手持式控制器(或通信地耦接的设备)可以连续地校准接近传感器。
32.图1示出了可以包括一个或多个触敏控件的示例性控制器100的前视图。在一些情况下,控制器100可由电子系统诸如vr视频游戏系统、机器人、武器或医疗设备利用。
33.如图所示,控制器100可以包括具有手柄112和手固定器120的控制器主体110。控制器主体110可包括设置在手柄112与控制器100的远侧端部111之间的头部,该头部可包括一个或多个拇指操作的控件114、115、116。例如,拇指操作控件可以包括倾斜按钮,以及/或者当控制器100握持在用户手中时在正常操作期间由用户的拇指方便地操纵的任何其他按钮、旋钮、滚轮、操纵杆或轨迹球。在一些情况下,手柄112可以包括基本上圆柱形的管状壳体。然而,在这种情况下,基本上圆柱形的形状不必具有恒定的直径或圆形横截面。
34.手柄112可以包括接近传感器,该接近传感器具有在空间上至少部分地或完全围绕手柄112的外表面分布的多个接近传感器或电容垫。例如,电容垫可以在空间上分布在手柄112的外表面下方并且/或者可以嵌入在手柄112的外表面下方。电容垫可以响应于用户触摸、抓握或抓持手柄112来识别用户的一个或多个手指的存在、位置、接近度和/或手势。例如,电容垫可以响应于一个或多个手指悬停在手柄112上方,并且可以生成指示手指在手
柄112上方的接近度的接近度数据(例如,电容值)。在一些情况下,接近度数据可以指示手指相对于控制器100的存在、位置和/或接近度。接近度数据可以由控制器100和/或其他通信地耦接的设备用于生成手势。为了检测手指的接近度,手柄112的外表面可以包括电绝缘材料。
35.手固定器120可以联接到控制器100以偏置用户的手掌使其抵靠手柄112的外表面。在图1中,手固定器120被示出为处于打开位置。手固定器120可以通过弯曲的弹性构件122可选地偏置在打开位置,以有利于手插入手固定器120和控制器主体110之间。例如,弯曲的弹性构件122可以包括弹性弯曲的柔性金属条或塑料材料,诸如尼龙。
36.织物材料124(例如,氯丁橡胶护套)可以部分或完全覆盖弯曲的弹性构件122以缓冲或增加用户的舒适度。另选地,垫或织物材料124可以仅粘附到弯曲的弹性构件122的面向用户的手的一侧。
37.手固定器120的长度可以调节,例如通过包括由弹簧偏置的导绳器128收紧的拉绳126。拉绳126可以可选地具有多余的长度以用作挂绳。在一些示例中,垫或织物材料124可以附接到拉绳126。另外,弯曲的弹性构件122可以通过收紧拉绳126的张力而被预加载,并且在此类实施方案中,弯曲的弹性构件122施加到手固定器120的张力(以将其偏置在打开位置)可能导致手固定器120在未收紧拉绳126时自动打开。然而,可使用调节手固定器120的长度的另选常规方法,诸如防滑钉、橡皮筋(当手插入时会暂时拉伸,从而施加弹性张力以压靠在手背上)、允许调节长度的钩环带附件等。
38.手固定器120可以设置在手柄112与跟踪构件130之间,并且可以接触用户的手背。跟踪构件130可以固定到控制器主体110,并且可以可选地包括两个鼻状物132、134,其中每个鼻状物可以从跟踪构件130的两个相对的远侧端部中的对应远侧端部突出。在一些情况下,跟踪构件130可以包括具有基本上弓形的形状的弧。在一些情况下,跟踪构件130可以包括设置在其中的跟踪换能器,例如,至少一个跟踪换能器设置在每个突出的鼻状件132、134中。控制器主体110可以包括附加的跟踪换能器,诸如邻近远侧端部111设置的跟踪换能器。
39.控制器100可以包括设置在控制器主体110内的可再充电电池。手固定器120可以包括电耦接到可再充电电池的导电充电导线。控制器100还可包括用于与电子系统(例如,游戏控制台)的其余部分通信的射频(rf)发射器。可再充电电池可以为rf发射器供电,并且所发射的rf可以响应于拇指操作控件114、115、116、手柄112中的接近传感器(例如,电容垫)和/或跟踪构件130中的跟踪传感器。
40.在一些情况下,控制器主体110可以包括单个注塑成型的塑料件或足够坚硬以将力从用户的手指传递到接近传感器并且足够薄以允许用户的手指与接近传感器之间的电容性耦接的任何其他材料。另选地,控制器主体110和跟踪构件130可以分开地制造,然后组装在一起。
41.图2示出了控制器100的前视图,其示出了用用户的插入其中但未抓持控制器主体110的左手进行操作期间的控制器100。在图2中,将手固定器120在用户的手上方收紧,以物理地偏置用户的手掌使其抵靠手柄112的外表面。此时,即使在手未抓持控制器主体110时,手固定器120在闭合时也可以将控制器100保持在用户的手内。如图所示,当手固定器120围绕用户的手紧紧闭合时,手固定器120可以防止控制器100从用户的手中掉落。因此,在一些实施方案中,手固定器120可以允许用户“松开”控制器100,而控制器100实际上不会与手分
离、被抛出和/或掉落。例如,如果感测到用户对控制器主体110的手柄112的抓持的释放和恢复,则可将释放或抓持结合到游戏中以显示抛或抓持对象(例如,在vr环境中)。手固定器120可以允许重复而且安全地完成这种功能。此外,手固定器120还可以防止用户的手指相对于接近传感器过度平移,以更可靠地感测手柄112上的手指运动、接近度和/或放置。
42.图3和图4示出了在操作过程中当在用户的手抓持控制器主体110时收紧手固定器120以将控制器100保持在用户的手中时的控制器100。如图3和图4所示,用户的拇指可以操作拇指操作控件114、115、116中的一个或多个控件。
43.图5示出了在某些实施方案中,控制器100可以是包括相似的右控制器500的一对控制器中的左控制器。在某些实施方案中,控制器100和500可(一起)同时跟踪用户的两只手的运动和抓握,例如以增强vr体验。
44.图6示出了具有多个电容垫602的接近传感器600,该多个电容垫被配置为检测一个或多个对象(例如,手指)相对于控制器100的接近度。然而,在一些情况下,接近传感器600可以除此之外或另选地包括除电容垫602之外的不同类型的传感器(诸如红外传感器或声学传感器),以检测一个或多个对象相对于控制器100的接近度。
45.电容垫602可以安装、附接或以其他方式耦接到柔性印刷电路组件(fpca)604。fpca 604可以包括用于连接到包括一个或多个处理器的控制器100的印刷电路板(pcb)的连接器606。电容垫602可以经由设置在fpca 604上的迹线608通信地连接到连接器606,以向该一个或多个处理器提供接近度数据(例如,电容值)。接近度数据可以指示手指相对于控制器100(诸如手柄112)的接近度。因此,接近传感器600可以测量或接收各个电容垫602的电容,其中电容值可以和手指与控制器100的接近度相关联。
46.在一些情况下,接近传感器600可以耦接到控制器主体110内的内表面,诸如安装在控制器主体110的手柄112内的结构,或者安装在控制器主体110的手柄112下方的结构。在这样做时,接近传感器600可以设置在手柄112的外表面下方,以检测手指相对于手柄112的接近度。当耦接到控制器100时,接近传感器600可以成角度地跨越在手柄112的圆周或一部分周围。例如,fpca 604可以联接(例如,粘合)到控制器主体110的内表面。在一些实施方案中,接近传感器600可以围绕手柄112的圆周以至少100度但不超过170度延伸。除此之外或另选地,接近传感器600可以耦接到控制器110的外表面,诸如手柄112的外表面。
47.电容垫602可以彼此间隔开,以检测不同手指或手指的不同部分(例如,指尖)的接近度。电容垫602可以被布置成行、列、网格、集合、子集或组610。例如,如图6所示,接近传感器600可以包括电容垫602的六个组610,其中组610可以跨fpca 604水平地延伸。然而,在一些实施方案中,接近传感器600可以包括多于或少于六个组610。除此之外,如图6所示,电容垫602不必具有相同的尺寸,并且这些电容垫之间不必具有基本上相等的间隔。然而,在一些实施方案中,电容垫602可以是类似的形状并且/或者可以包括在这些电容垫之间具有基本上相等间隔的网格。
48.电容垫602的各个组610可以对应于用户的特定手指(例如,食指、中指、无名指、小拇指)。除此之外或另选地,电容垫602的多个组610或来自多个组610的电容垫602可以对应于用户的单个手指。例如,两个或更多个组610可以对应于用户的手指(例如,中指)。通过将电容垫602布置成组610中,或者将某些电容垫602分配给某些组610,控制器100(或另一个通信耦接的设备)可以利用接近度数据来生成用户的手势。例如,当用户用某些手指抓握控
制器100并且将某些手指悬停在控制器100上方时,电压被施加到电容垫602,这导致静电场。当导体诸如手指接触或靠近电容垫602时,电容可能发生变化。可以通过(经由连接器606)将rc振荡器电路连接到接近传感器600并注意时间常数(并且因此振荡的周期和频率)将随着电容而变化来感测电容。这样,当用户从控制器100释放手指、用某些手指抓握控制器100或靠近控制器100时,控制器100可以检测到电容变化。电容垫602的电容值用于确定导体的位置以及该导体相对于电容垫602的接近度。当手指充当导体时,在手柄112下方的那些电容垫602可以测量电容值。
49.在一些情况下,用户的抓握可能会改变,或者其他因素可能会影响接近度数据的值。例如,在整个游戏体验中,用户的手可能会出汗并变得潮湿。除此之外或另选地,正在玩游戏的环境的湿度可能会改变。这些因素和其他因素可能影响由电容垫602检测到的电容量。为了准确地感测手指位置,控制器100可以基于所检测到的电容值连续地校准接近传感器600。例如,在第一情况下,当手指从控制器100完全伸展开时,电容垫602可以测量第一电容值。当用户玩游戏时,在第二情况下,当用户的手指从控制器100完全伸展开时,电容垫602可以测量第二电容值。然而,为了准确地检测手指相对于控制器100(例如,手柄112)的接近度,控制器100(或另一个通信地耦接的设备)可以校准电容垫602。在这种情况下,校准电容垫602(或接近传感器600)可以包括确定在各个电容垫602处检测到的电容值的更新范围,或者衰减与控制器100处的触摸和/或手指从控制器100完全伸展开相关联的电容值。其中,知道更新范围,可以归一化所检测到的电容值。
50.在一些情况下,电容垫602可以重新映射以对应于不同的手指。例如,根据用户的抓握或用户的手大小,接近传感器600的一个或多个特定行可以对应于用户的特定手指(例如,中指),而在其他情况下,可以对应于用户的不同手指(例如,无名指)。通过接收接近度数据,电容垫602可以重新映射并对应于用户的不同手指。换句话说,在一些情况下,可以根据特定用户对手柄112的抓握,将电容垫602指定为对应于用户的不同手指。因此,控制器100可以包括不同的控制器配置(即,第一控制器配置、第二控制器配置和/或第三控制器配置)以将不同的电容垫602与不同的手指相关联。电容垫602对某些手指的这种动态适应可以允许在vr环境中生成准确手势。除此之外,虽然图6示出了包括一定数量的电容垫602和/或一定数量的组610的接近传感器600,但是在一些情况下,接近传感器600可以包括比图6所示的更多或更少的电容垫602。
51.此外,在一些情况下,控制器100的该一个或多个处理器可以包括体现手指在解剖学上可能的运动的算法和/或机器学习技术,以更好地使用接近度数据来检测用户的手的张开、手指指向或手指相对于控制器100或相对于彼此的其他运动。这样,控制器100和/或用户的手指的移动可帮助控制vr游戏系统、国防系统、医疗系统、工业机器人或机器或其他设备。因此,在(例如,用于游戏、训练等的)vr应用程序中,基于感测到用户的手指从手柄112的外表面释放,可将接近度数据用于渲染对象的释放。除此之外或另选地,控制器100正在与其交互的通信地耦接的计算设备(例如,主机计算设备、游戏机等)的一个或多个处理器可以使用接近度数据来检测手势。
52.图7至图10将各种过程示出为逻辑流程图中的框的集合,这些框表示可在硬件、软件或其组合中实现的一系列操作。在软件的环境中,这些框表示计算机可执行指令,这些计算机可执行指令在由一个或多个处理器执行时执行所列举的操作。通常,计算机可执行指
令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被理解为限制,并且可以任何顺序和/或并行地组合任意数量的所描述的框来实现这些过程。
53.图7示出了用于校准接近传感器600的过程700。在一些情况下,过程700可以由控制器100执行。
54.在702处,控制器100的逻辑可以从接近传感器600接收接近度数据。例如,对象(例如,手指、拇指等)可以接触控制器100或者可以接近控制器100(例如,悬停在控制器100的手柄112附近)。接近度数据可以指示由接近传感器600的电容垫602检测或测量的电容。例如,如果手指正在触摸控制器100,则与手指悬停在控制器100上方相比,电容值可以较大。在这个意义上,电容值可以指示或表示手指相对于控制器100的接近度。
55.在一些情况下,控制器100的逻辑可以将电容值转换为数字化值。此外,在702处接收到的接近度数据可以表示未利用在接近传感器600的电容垫602上接收到的接近度数据校准和/或归一化的原始数据。也就是说,对于特定电容垫602而言,在702处接收到的接近度数据可以表示原始数据,电容垫602可以检测在电容值的范围内的电容值。
56.在704处,控制器100的逻辑可以归一化接近度数据。例如,各个电容垫602可以产生唯一的电容值,这取决于电容垫602的制造条件、电容垫602的尺寸等。归一化接近度数据可以有助于标准化在电容垫602处接收到的接近度数据。在一些情况下,归一化接近度数据可以包括利用经训练的模型来确定在电容垫602处测量的最大和最小电容值。例如,当与在不同电容垫602处检测到的电容值的范围相比时,在电容垫602处检测到的电容值的范围可以是任意的。经训练的模型可以包括过去在接近传感器600的电容垫602上检测到的电容值或电容值的范围的代表性样本。作为示例,可以使用从不同控制器(例如,控制器100)的类似电容垫602接收到的电容值来对电容值进行归一化。
57.在706处,控制器100的逻辑可以校准接近传感器600。在一些情况下,校准接近传感器600可以包括针对在电容垫602处检测到的电容值计算偏差、电容值的范围和/或缩放系数。换句话说,校准接近传感器600可以涉及针对各个电容垫602确定所检测到的电容值的范围、偏差和/或缩放系数。因此,校准接近传感器可以允许所接收到的后续电容值被归一化。如图7中的子框所示,过程700可以涉及用于校准接近传感器600的更详细操作。例如,校准接近传感器600可以包括子框708和710。
58.如子框708所示,校准接近传感器600可以包括离散手势识别,该离散手势识别可以表示(或对应于)由用户执行的离散手势。例如,如果全部、一部分或阈值百分比的电容垫602感测到电容值的突然下降,则控制器100可以将该下降与用户从控制器100释放他们的手或从控制器100释放特定手指相关联。也就是说,由于某些电容垫602可以与用户的某些手指相关联,因此控制器100可以检测电容的减小,并将电容值的这种减小与用户从控制器100释放他们的手相关联。
59.在用户突然从控制器100释放他们的手指时接收到的电容值可以对应于针对特定电容垫602检测到的电容值的范围内的最小电容值(例如,该电容值表示此时手指从控制器100完全伸展开)。因此,在将来的情况下,该最小电容值可以用于确定手指何时从控制器100完全伸展开。在一些情况下,在电容值的这种突然减小之前接收到的电容值可以对应于针对特定电容垫602检测到的电容值的范围内的最大电容值(例如,该电容值表示此时手指
触摸控制器100)。因此,在将来的情况下,该最大电容值可用于确定手指何时触摸控制器100。
60.利用最小电容值和最大电容值,控制器100的逻辑可以确定在电容垫602处检测到的电容值的范围。可针对接近传感器600的每个电容垫602进行该过程。因此,在控制器100接收后续接近度数据时,控制器100可以通过将所检测到的电容值与特定电容垫602的电容值范围进行比较来确定用户的手指的相对位置。
61.如子框710所示,校准接近传感器600还可以包括连续的最小电容值和/或最大电容值检测。例如,由于控制器100可以连续地从接近传感器600接收接近度数据,所以控制器100可以监测接近度数据(例如,电容值)来重新校准(例如,衰减)最小电容值和/或最大电容值。如本文将讨论的,通过迭代地从接近传感器600接收接近度数据(例如,当用户与控制器100交互时),接近度数据可以指示由电容垫602测量的电容值。随着时间的推移,电容值可以用于更新和/或修改由各个电容垫602检测到的电容值的范围。作为示例,由电容垫602检测到的电容值可以基于用户的皮肤特性和/或控制器100所处的环境条件而改变。因此,在710处,对于接近传感器600的相应电容垫602,控制器100可以分析接近度数据以潜在地更新针对电容垫602的最小电容值、最大电容值和/或电容值的范围。
62.例如,在从电容垫602接收到电容值时,控制器100可以将这些电容值与最大电容值和/或最小电容值进行比较,以分别确定这些电容值是否大于或小于最大电容值和/或最小电容值。如果是,则控制器100可以分别更新最大电容值和/或最小电容值。此外,控制器100可以利用电容值来使最大电容值和/或最小电容值朝向所接收到的电容值衰减。
63.过程700可以从706循环到702,在702处,过程700可以从接近传感器600接收附加接近度数据。通过迭代地接收接近度数据,过程700可以连续地确定和/或更新由电容垫602检测到的电容值的范围。利用接近度数据连续地校准接近传感器600的附加细节在本文中参考图8进行讨论。
64.在712处,控制器100的逻辑可以至少部分地基于校准接近传感器600和/或各个电容垫602来生成经校准的接近度数据。例如,利用在电容垫602处检测到的电容值的范围、偏差和/或缩放系数,控制器100可以计算经校准的(或归一化的)电容值。经校准的接近度数据可以归一化在特定电容垫602处和/或在接近传感器600的电容垫602上接收到的接近度数据。
65.在714处,控制器100的逻辑可以对一组电容垫602的接近度数据进行求和。如上所述,电容垫602可以被布置成与用户的相应手指相关联的组610。在一些情况下,由于组610可以包括多于一个电容垫602,因此一组电容垫602中的电容垫602的电容值可以被求和以指示用户的手指位置,其中,总电容值可以指示手指相对于控制器100的接近度。在一些情况下,特定组610的总电容值可以包括在数值范围[0,1]内的手指值,其中该手指值可以指示手指相对于控制器100的接近度。在这个意义上,使用从各个电容垫602检测到的电容值,过程700可以确定用户的相对于控制器100的手指位置。
[0066]
此外,可以使用施加到一组电容垫602内的各个电容垫602的一组权重来对电容值进行求和。例如,如果四个电容垫602与用户的中指相关联,则可以将相等的权重分配给四个电容垫602。从这些电容垫602接收到的电容值的权重可以是在确定手指位置时使用的权重的四分之一。然而,在一些情况下,如果电容垫602的电容值不可靠(例如,包含大量噪
声),则在加权和中可以忽略来自电容垫602的某些电容值。电容垫602的权重可以被忽略,使得剩余的电容垫具有三分之一的权重。其中,电容值被求和并除以正在使用的电容垫602的权重总和。
[0067]
在716处,控制器100的逻辑可以传输接近度数据和/或手指值。例如,在确定了特定手指或一组电容垫602的经校准的接近度数据之后,控制器100可以将接近度数据和/或对手指值(位置)的指示传输到一个或多个计算设备。在一些情况下,该一个或多个计算设备可以利用接近度数据和/或手指值来生成与用户的手在控制器100上的手势对应的图像数据。
[0068]
在一些情况下,可以针对每个电容垫602执行过程700,并且每当(例如,每个计数、每个帧)接近传感器600生成接近度数据时执行过程700。例如,由于控制器100可以控制或操作vr环境,所以接近传感器600可以针对vr环境中显示的每个帧生成接近度数据。接近度数据可以表示在电容垫602处检测到的相应电容值,并且可以针对在各个电容垫602处测量的电容值执行过程700。例如,可以针对在第一电容垫602处检测到的第一电容值和在第二电容垫602处检测到的第二电容值执行过程700。在一些情况下,针对第一电容垫602和第二电容垫602的过程700可以并行执行,并且针对任何数量的电容垫602并行执行。除此之外,尽管描述了由控制器100执行过程700的一些或全部,但是在一些情况下,该一个或多个通信地耦接的设备可以执行过程700的框的全部或部分。例如,计算设备可以包括用于校准接近传感器600的增加的处理能力。在这种情况下,计算设备可以传输校准接近传感器600的指令。
[0069]
图8示出了用于分析从接近传感器600接收到的接近度数据以校准接近传感器600的示例性过程800。在一些情况下,过程800可以由控制器100执行,然而,一个或多个通信地耦接的设备可以执行过程800的全部或一部分。
[0070]
在802处,控制器100的逻辑可以从接近传感器600接收电容值(例如,接近度数据)。在一些情况下,控制器100可以从接近传感器600的各个电容垫602以及在vr环境中显示的每个帧处接收电容值。例如,至少部分地基于检测到对象(例如,手指)接近控制器100,接近传感器600的电容垫602可以生成电容值。如上所述,当对象与电容垫602之间的距离减小时,所测量的电容值可以增大。
[0071]
在804处,控制器100的逻辑可以使用电容垫602的电容值的范围、与电容垫602相关联的缩放系数以及与电容垫602相关联的偏差来对电容值进行归一化。
[0072]
在806处,控制器100可以衰减与最大电容值相关联的极限或水平,以逐渐分配或调节该最大电容值。衰减最大电容值可以适应变化的环境条件和/或用户的手指的特性。例如,在游戏体验的过程中,用户的手可能变得潮湿(例如,出汗),用户可以调节他或她对控制器100的抓握,并且/或者环境的条件可能改变(例如,湿度、温度等)。在一些情况下,这些因素可以影响由接近传感器600检测到的电容值,并且电容值的范围可以被更新,并且/或者与手指触摸控制器100相关联的电容值可以被更新。换句话说,因为由控制器100检测到的电容值的范围可以改变,所以与手指触摸控制器100相关联的电容值可以改变。因此,为了准确地描绘用户的手指位置(或手势)(即,当手指正在触摸控制器100时),最大电容值可以衰减。为了说明,在适时的第一情况下,第一电容值可以表示或对应于手指触摸控制器100,并且在适时的第二情况下,第二电容值可以表示或对应于手指触摸控制器100。在一些
情况下,第二电容值可以小于第一电容值。然而,为了在第二情况下准确地描绘用户的手势,可以更新与手指触摸控制器100相关联的电容值。也就是说,虽然第二电容值表示用户触摸控制器100,但是如果最大电容值不衰减,则第二电容值将不与表示此时手指触摸控制器100的最大电容值相关联。在这样做时,图像数据将不会描绘握持对象的用户。通过衰减最大电容值,控制器100可以动态地调节与抓持控制器100的手指相关联的电容值。
[0073]
在一些情况下,衰减最大电容值可以至少部分地基于接收到不在最大电容值的预先确定范围内的阈值数量的电容值。除此之外或另选地,如果经过阈值量的时间、阈值数量的帧或阈值数量的计数而没有接收到在最大电容值的预先确定范围内的电容值以及/或者电容值改变(例如,可变性)阈值量,则可发生衰减最大电容值。在其他情况下,如果在先前量的时间、先前数量的帧或先前数量的计数内检测到的电容值的平均值不在最大电容值的预先确定范围内,则最大电容值可以衰减。另外,虽然衰减最大电容值已相对于电容值不在最大电容值的预先确定范围内进行了描述,但是在一些情况下,预先确定范围可以是关于最小电容值的。
[0074]
因此,最大电容值可以连续地衰减,使得电容值的范围连续地更新。衰减的量或最大电容值衰减的量可以基于在先前数量的帧(例如,20帧、50帧、100帧等)内检测到的电容值的范围、最大电容值与最小电容值之间的电容值范围、在先前数量的计数或帧(例如,20帧、50帧、100帧等)内检测到的最大电容值与平均电容值之间的差值,以及/或者最大电容值与平均电容值之间的差值的百分比。在一些情况下,可以通过计算以下值来确定衰减:(1)在先前数量的帧内检测到的电容值的范围,(2)最大电容值与最小电容值之间的电容值范围,以及(3)衰减变量。
[0075]
最大电容值的衰减变量可以是在先前数量的帧内检测到的最大电容值与最小电容值之间的电容值的可变性的百分比。作为示例,最大电容值的衰减变量可以是每个帧的最大电容值与最小电容值之间的电容值范围的10%。换句话说,对于每个帧,可以通过将最大电容值与最小电容值之间的电容值范围乘以10%来计算衰减变量。然后可以使用该衰减变量来确定更新的最大电容值。在一些情况下,最大电容值可以衰减大约或基本上大约最大电容值与最小电容值之间的范围的13%。
[0076]
在一些情况下,可以限制最大电容值衰减的量,使得最大电容值衰减不超过最大电容值与最小电容值之间的电容值范围的50%。在这个意义上,最大电容值可以被限制为衰减不超过最大电容值与最小电容值之间的电容值范围的一半。
[0077]
在一些情况下,最大电容值衰减的量可以和最大电容值与最小电容值之间的电容值范围成比例。此外,最大电容值可以被限制为衰减到最小电容值的某个阈值内。例如,为了减小电容值内的噪声的影响,最大电容值可以不衰减到最小电容值的阈值量内。换句话说,可以将最大电容值与最小电容值隔开阈值范围,以减小噪声的影响。
[0078]
在一些情况下,最大电容值衰减的速率可以取决于所测量的电容值的可变性。例如,与如果在过去数量的帧内检测到的电容值之间存在较小可变性相比,如果在过去数量的帧内检测到的电容值之间存在较大可变性,则最大电容值可以更快的速率衰减。除此之外或另选地,最大电容值衰减的速率可以取决于所接收到的电容值的数量。例如,如果用户在控制器100上快速敲击他或她的手指并且控制器100接收到大量的电容值,则控制器100可以更快的速率衰减最大电容值。
[0079]
衰减最大电容值可以用于确定电容垫602的更新的最大电容值。另外,更新的最大电容值还可以用于确定接近传感器600的各个电容垫602的电容值的更新范围、更新的偏差和/或更新的缩放系数。
[0080]
在808处,控制器100的逻辑可以衰减与最小电容值相关联的极限或水平,以逐渐分配或调节最小电容值。在一些情况下,最小电容值可以连续衰减,使得电容值的范围连续地更新。也就是说,如上面关于衰减最大电容值所讨论的,在游戏体验的过程中,某些条件可能影响在接近传感器600处检测到的电容值。例如,与手指从控制器100完全伸展开相关联的电容值可以改变。作为示例,在适时的第一情况下,第一电容值可以表示或对应于手指从控制器100完全伸展开,并且在适时的第二情况下,第二电容值可以表示或对应于手指从控制器100完全伸展开。在一些情况下,第二电容值可以小于第一电容值。然而,为了在第二情况下准确地描绘用户的手势,可以更新与手指从控制器100完全伸展开相关联的电容值。也就是说,虽然第二电容值可以表示用户从控制器100完全伸展开他们的手指,但是第二电容值可以不与表示手指完全伸展开的最小电容值相关联。通过衰减最小电容值,控制器100可以动态地调节与手指完全伸展开相关联的电容值。
[0081]
衰减最小电容值可以至少部分地基于接收到不在最小电容值的预先确定范围内的阈值量的电容值。除此之外或另选地,衰减最小电容值可以至少部分地基于自接收到最小电容值的预先确定范围内的电容值以来经过的阈值量的时间、阈值数量的帧或阈值数量的计数,以及/或者预先确定的过去数量的电容值内的电容值改变阈值量。
[0082]
衰减的量或最小电容值衰减的量可以基于在先前数量的帧(例如,20帧、50帧、100帧等)内检测到的电容值的范围、最小电容值与最大电容值之间的电容值范围、在预先确定数量的过去的帧内检测到的最小电容值与平均电容值之间的差值,以及/或者最小电容值与平均电容值之间的差值的百分比。在其他情况下,如果在先前数量的帧内检测到的电容值的平均值不在最小电容值的预先确定范围内,则最小电容值可以衰减。在一些情况下,可以通过计算以下值来确定衰减:(1)在先前数量的计数或帧内检测到的电容值的范围,(2)最小电容值与最大电容值之间的电容值范围,以及(3)衰减变量。
[0083]
在一些情况下,最小电容值的衰减变量可以是在先前数量的帧内检测到的最小电容值与最大电容值之间的电容值的可变性的百分比。例如,最小电容值的衰减变量可以是每个帧的最小电容值与最大电容值之间的电容值范围的20%。换句话说,对于每个帧,可以通过将最小电容值与最大电容值之间的电容值范围乘以20%来计算衰减变量。
[0084]
在一些情况下,可以允许最小电容值的衰减速度是最大电容值的衰减速度的两倍。也就是说,因为最小电容值或电容值的较低范围内的电容值可能容易受噪声的影响,所以最小电容值的衰减速度可能是最大电容值的衰减速度的两倍。然而,在一些情况下,可以限制最小电容值衰减的量,使得最小电容值衰减不超过最大电容值与最小电容值之间的电容值范围的50%。在这个意义上,最小电容值可以被限制为衰减不超过最大电容值与最小电容值之间的电容值范围的一半。因此,最小电容值衰减的量可以与最大电容值与最小电容值之间的电容值范围成比例。此外,最小电容值可以被限制为衰减到最大电容值的某个阈值内,以减少噪声。
[0085]
衰减最小电容值可用于确定电容垫602的更新的最小电容值。另外,与衰减最大电容值相结合,更新的最小电容值还可以用于确定接近传感器600的各个电容垫602的电容值
的更新范围、更新的偏差和/或更新的缩放系数。
[0086]
在一些情况下,最小电容值衰减的速率可以取决于所测量的电容值的可变性。例如,与如果在过去数量的帧内检测到的电容值之间存在较小可变性相比,如果在过去数量的帧内检测到的电容值之间存在较大可变性,则最小电容值可以更快的速率衰减。
[0087]
在810处,控制器100可以确定由电容垫602在先前数量的计数或帧内检测到的平均电容值。例如,控制器100可以确定先前的二十个样本内的、由各个电容垫602检测到的平均电容值。然而,如上所述,衰减最大电容值和/或最小电容值可以基于在先前数量的帧内确定的平均电容值。因此,平均电容值可以是已知的。
[0088]
在812处,控制器100的逻辑可以确定在810处确定的平均电容值是否大于在806处确定的更新的最大电容值。也就是说,至少部分地基于确定平均电容值,控制器100可以将该平均电容值与最大电容值进行比较,以确定该平均电容值是否大于在电容垫602处检测到的最大电容值。换句话说,每个电容垫602可以与最大电容值相关联,并且控制器100可以确定平均电容值是否大于最大电容值。在确定平均电容值超过最大电容值时,过程800可以遵循“是”路线至814,在814处,控制器100的逻辑可以确定新的最大电容值。换句话说,作为812处的“是”的结果,控制器100的逻辑可以确定最大电容值过于低并且平均电容值已超过最大电容值。
[0089]
在814处,控制器100的逻辑可以至少部分地基于在预先确定数量的帧内接收到的平均电容值的百分比或权重来确定电容垫602的新的最大电容值。例如,新的最大电容值可以朝向根据先前数量的过去样本确定的平均电容值扩展,而不是衰减。在一些情况下,最大电容值“增长”的量可以通过将来自先前数量的帧的平均电容值乘以变量诸如0.2来确定。然而,该变量可以被优化,使得最大电容值朝向在先前数量的帧内确定的平均电容值“增长”,以准确地确定用户的手势。在一些情况下,最大电容值的增长量还可以至少部分地基于平均电容值超过最大电容值的量。
[0090]
或者,如果平均电容值不大于在电容垫602处检测到的最大电容值,则过程800可以遵循“否”路线至816,在816处,控制器100的逻辑可以确定平均电容值是否低于在808处确定的最小电容值。也就是说,至少部分地基于确定平均电容值,控制器100可以将该平均电容值与最小电容值进行比较,以确定该平均电容值是否小于在电容垫602处检测到的最小电容值。换句话说,每个电容垫602可以与最小电容值相关联,并且控制器100的逻辑可以确定平均电容值是否小于最小电容值。在确定平均电容值小于最小电容值时,过程800可以遵循“是”路线至818,在818处,控制器100的逻辑可以确定新的最小电容值。换句话说,作为816处的“是”的结果,控制器100的逻辑可以确定最小电容值过于高并且平均电容值超过最小电容值。
[0091]
在818处,控制器100可以至少部分地基于在先前数量的帧内的平均电容值的百分比或权重来确定电容垫602的新的最小电容值。例如,新的最小电容值可以朝向先前数量的帧的平均电容值扩展,而不是衰减。在一些情况下,最小电容值“增长”的量可以通过将预先确定数量的先前电容值的平均电容值乘以诸如变量0.4来确定。然而,该变量可以被优化,使得最小电容值朝向在先前数量的帧内确定的平均电容值“增长”,以准确地确定用户的手势。在一些情况下,最小电容值的增长量还可以至少部分地基于平均电容值超过最小电容值的量。
[0092]
如果在816处平均电容值不小于最小电容值,则过程800可以遵循“否”路线至820,在820处,控制器100可以校准接近传感器600。
[0093]
还可以通过确定新的最大电容值(例如,814)和/或确定新的最小电容值(例如,818)来校准接近传感器600(或电容垫602)。如上所述,校准接近传感器600可以涉及计算电容垫602的偏差和缩放系数。换句话说,校准接近传感器600可以涉及针对每个电容垫602确定所检测到的电容值的范围、偏差和/或缩放系数。因此,为了校准接近传感器600,控制器100可以利用新的最大电容值和/或最小电容值。
[0094]
过程800可以从820循环到802,在802处,控制器100可以接收后续电容值。也就是说,通过迭代地接收电容值,过程800可以连续地衰减最大电容值、最小电容值,确定和/或更新由电容垫602检测到的电容值的范围,并且/或者归一化电容值。
[0095]
图9示出了用于在控制器100处接收与手势相关联的电容值、校准接近传感器600以及传输电容值和/或对手指相对于控制器100的接近度的指示的过程900。
[0096]
在902处,过程900可以接收第一电容值。例如,控制器100的一个或多个处理器可以从接近传感器600接收第一电容值。第一电容值可以表示由接近传感器600的各个电容垫602检测到的电容值,其中第一电容值表示用户的各个手指相对于控制器100的接近度。例如,第一电容值可以对应于第一手势904,并且第一电容值可以指示用户的手指相对于电容垫602的接近度。
[0097]
在906处,过程900可以归一化第一电容值。例如,控制器100的该一个或多个处理器可以利用上文讨论和解释的过程700和/或800的操作来归一化从各个电容垫602接收到的第一电容值。
[0098]
在908处,过程900可以至少部分地基于第一电容值来校准接近传感器600。例如,控制器100的该一个或多个处理器可以通过确定在电容垫602处检测到的电容值的范围、与电容垫602相关联的偏差和/或与电容垫602相关联的缩放系数来校准接近传感器600,如上面关于上文所讨论和解释的过程700和/或800所讨论的。
[0099]
在910处,过程900可以传输第一电容值和/或对手指位置的指示。例如,控制器100的该一个或多个处理器可以利用控制器100的一个或多个接口来向计算设备传输第一电容值和/或对手指位置的指示。在一些情况下,计算设备可以利用第一电容值和/或对手指位置的指示来生成描绘第一手势904的图像数据。对手指位置的指示可以指示和手指与控制器100的相对位置对应的数值范围[0,1]内的数值。数值范围[0,1]内的值1可以指示手指接触控制器100,而数值范围[0,1]内的值0可以指示手指从控制器100完全伸展开。转向第一手势904,在接收到第一电容值、归一化第一电容值以及/或者校准接近传感器600之后,控制器100可以传输指示,该指示包括与手指相对于控制器100的位置对应的数值范围[0,1]内的手指值。其中手指值可以用于生成与第一手势904对应的图像数据。
[0100]
在912处,过程900可以接收第二电容值。例如,控制器100的该一个或多个处理器可以从接近传感器600接收第二电容值。第二电容值可以表示由接近传感器600的各个电容垫602检测到的电容值,其中第二电容值表示用户的各个手指相对于控制器100的接近度。例如,第二电容值可以对应于第二手势914,并且第二电容值可以指示手指相对于电容垫602的接近度。
[0101]
在916处,过程900可以归一化第二电容值,并且在918处,过程900可以校准接近传
感器600(例如,通过确定与电容垫602相关联的范围、偏差和/或缩放系数)。
[0102]
在920处,过程900可以传输第二电容值和/或对手指位置的指示。例如,控制器100的该一个或多个处理器可以利用控制器100的一个或多个接口来向计算设备传输第二电容值和/或对手指位置的指示。在一些情况下,计算设备可以利用第二电容值和/或对手指位置的指示来生成描绘第二手势914的图像数据。例如,对手指位置的指示可以指示数值范围[0,1]—手指相对于控制器100的相对位置—内的数值。
[0103]
图10示出了用于校准控制器100的接近传感器600、降低接近度数据内的噪声以及利用接近度数据来生成表示由用户执行的手势的图像数据的过程1000。
[0104]
在1002处,过程1000可以从接近传感器600接收接近度数据,其中该接近度数据表示或指示由接近传感器600的电容垫602检测到的原始电容值。如图10所示,在一些情况下,过程1000可以从各个电容垫602接收电容值,如a1、a
i
和a
n
所示。在一些情况下,过程1000可以从接近传感器600接收针对在vr环境中显示的每个帧的原始电容值。
[0105]
在1004处,过程1000可以执行工厂式归一化(factory normalization)以归一化原始电容值。例如,根据制造条件、电容垫602的尺寸等,电容垫602可以具有不同的偏差、缩放系数和偏移量。在一些情况下,工厂式归一化可以涉及一阶校准,以消除电容值内的偏差并对电容值进行归一化。
[0106]
在1006处,过程1000可以执行抓握校准。如图所示,抓握校准可以涉及子框1008、1010和1012,这些子框将依次详细地进行讨论。
[0107]
在子框1008处,过程1000可以执行统计分析以观察相应电容垫602的电容值的范围、接收到的最大电容值、接收到的最小电容值、平均电容值和/或中值电容值。
[0108]
在1010处,过程1000可以执行离散手势检测。此时,过程1000可以在根据工厂式归一化进行归一化之后分析接近度数据(即,电容值),以检测控制器100处的离散手势。例如,如果接近度数据指示电容垫602或其一部分的电容值突然下降,则过程1000可以将该电容值的下降与用户从控制器100释放他或她的手或从控制器100释放特定手指相关联。在用户突然从控制器100释放他或她的手指时接收到的电容值可以对应于由特定电容垫602检测到的电容值的范围内的最小电容值(例如,当手指未触摸控制器100时)。在突然下降之前接收到的电容值可以对应于由特定电容垫602检测到的电容值的范围内的最大电容值(例如,其中电容值表示此时手指触摸控制器100)。利用电容值的范围,过程1000可以确定电容垫602的电容值的偏差和缩放系数,以对在接近传感器600的相应电容垫602处接收到的电容值进行归一化。
[0109]
在1012处,过程1000可以执行连续的校准更新和衰减。由于过程1000可以连续地从接近传感器600接收接近度数据,因此过程1000可以连续地监测接近度数据以重新校准或重置给定电容垫602的电容值范围内的最小电容值和/或最大电容值。换句话说,通过连续地从各个电容垫602接收接近度数据,过程1000可以分别确定电容值是否低于或高于先前确定的该范围内的最小电容值和/或该范围内的最大电容值。
[0110]
例如,由于电容可以在整个游戏体验中(例如,由于手出汗或干燥、湿度、温度等)改变,因此过程1000可以确定或设置新的最小电容值或新的最大电容值,从而调节由电容垫602检测到的电容值的范围。另外,在一些情况下,连续校准可以减少对在1010处确定离散手势检测的过程1000的依赖性。
[0111]
在一些情况下,过程1000可以将权重或百分比分配给新检测到的最小电容值或新检测到的最大电容值,以分别更新最小电容值或最大电容值。例如,如果过程1000在一定量的时间或一定数量的帧内检测到低于先前检测到的最小电容值的电容值,则过程1000可以对该电容值进行加权以更新最小电容值。另外,最小电容值或最大电容值可以随着时间的推移而衰减,这取决于用户如何抓握控制器100、环境条件(例如,湿度)或其他特性(例如,皮肤湿度)。最小电容值和最大电容值可以衰减的量可以是有限的,使得最小电容值和最大电容值隔开阈值量,以减少传感器噪声。在一些情况下,衰减可以取决于时间和/或由接近传感器600检测到的电容值的变化速率。例如,如果用户在控制器100上敲击他们的手指,使得控制器100在一定时间段或帧内检测到阈值量的电容值,或者控制器100切换了用户,从而潜在地导致所接收到的电容值发生大变化(或可变性),则衰减速率可以增大以减少更新最小电容值和/或最大电容值所需的时间量。
[0112]
作为在1006和子框1008至1012处的抓握校准的结果,从每个电容垫602感测到的电容值可以在数值范围[0,1]内进行归一化。对于用户的特定抓握和各个电容垫602,数值范围[0,1]可以表示从接近传感器600感测到的高水平电容值和低水平电容值。
[0113]
在1014处,过程1000可以执行电容值的加权和。当电容值在数值范围[0,1]内进行归一化时,过程1010可以根据控制器配置将权重分配给来自电容垫602的电容值。也就是说,电容值在[0,1]之间进行归一化,并将权重分配给从各个电容垫602接收到的各个电容值。例如,如果某个控制器配置包括分配给特定手指的五个电容垫602,则电容值可以包括相等的权重(例如,五分之一)。换句话说,当电容垫602检测到最大电容值时,加权和的输出可以等于1。
[0114]
如图所示,确定加权和可以涉及子框1016、1018、1020和1022。子框1016可以包括用于控制器100的控制器配置模型。如上所述,控制器配置指定接近传感器600的电容垫602的映射,以将某些电容垫602与用户的某些手指相关联。
[0115]
在子框1018处,过程1000可以执行动态控制器配置选择,其中过程1000将电容值输入到控制器配置模型中以根据用户的抓握确定最匹配或最高度匹配的控制器配置。选择控制器配置可以涉及确定(1)分配给特定手指的一组电容垫602的电容值的方差与(2)各组电容垫602之间的电容值的方差的比率。针对每个控制器配置计算比率,以确定与用户的抓握最可能匹配的配置。
[0116]
在子框1020处,过程1000可以符包含在电容值内的噪声进行滤波。例如,当手指未触摸控制器100时诸如当手指完全伸展开时,与未触摸控制器100的手指(例如,手指完全伸展开)相关联的那些电容垫602可能易受噪声的影响。此时,检测到少量的电容会在接收到的电容值内引起大量的噪声。在来自接近传感器600的各个电容垫602的电容值低于某个阈值的情况下,或者如果电容值在电容垫602的低水平电容值的某个极限之内,则过程1000可以降低检测到的电容。在其他情况下,在此类场景中,过程1000可以将低权重分配给电容值。
[0117]
在子框1022处,过程1000可以拒绝来自接近传感器600的电容垫602和/或与相应电容垫602相关联的手指的某些电容值。例如,在1020处,过程1000可以识别具有在最小电容值与最大电容值之间的小范围的电容垫602。在这些场景中,由电容垫602接收到的电容值可能引起噪声,并且忽略某些电容垫602或电容垫602的组可以增加接近度数据对应于用
户的手势的可靠性。即,如果由电容垫602检测到的电容值的范围较小,则电容垫602可能易受大量噪声的影响。
[0118]
在子框816处,电容垫和手指拒绝可以包括识别其最小电容值或最大电容值在彼此的阈值范围内的电容垫602。例如,如果最小电容值和最大电容值隔开的范围较小,则电容垫602可能无法足够详细且准确地感测和检测用户的手指位置。此时,由于电容垫602可以检测到阈值范围内的电容值,因此所测量的电容值可能不准确地对应于手指位置。除此之外或另选地,某些手指可以与多个电容垫602相关联,这降低了检测到的电容值的可靠性。在这些场景中,由电容垫602接收到的电容值可能引起噪声,并且忽略某些电容垫602或电容垫602的组可以增加电容值对应于用户的手势的可靠性。除此之外或另选地,某些手指可以与具有低可靠性的多个电容垫602相关联。拒绝某些手指或一组电容垫602会引起用于小手的控制器配置的意外性行为。在这些场景中,相应手指可以与相邻手指关联(例如,小拇指与无名指相关联)。
[0119]
在1024处,过程1000可以执行最终归一化。例如,在一些情况下,分配给特定手指的电容垫602可能无法检测到电容值,或者电容值可能不可靠。此时,由于手的大小或者在用户重新调节他或她的抓握的情况下,用户可能未触摸接近传感器600的某些电容垫602。除此之外,在最小电容值与最大电容值较窄或隔开较小范围的一些情况下,电容值可能不可靠,并且噪声可能严重影响手指运动。为了消除或减少来自这些电容垫602的噪声,最终归一化1024可以确定电容值的可靠性,并且如果可靠性较低,则从加权和中去除来自电容垫602的电容值的权重。其中,电容值被求和并除以正在使用的电容垫602的权重总和。
[0120]
在1026处,过程1000可以对接近度数据进行滤波和曲线拟合以表示用户的手势。滤波和曲线拟合可以涉及线性化在数值范围[0,1]内的接近度数据的最终归一化,以实现接近度数据与手指位置(例如,卷曲、伸展、半伸展等)之间的线性关系。例如,在1024处确定的最终归一化值可以遵循指数曲线,使得当用户的手接近控制器100或抓握控制器100时,最终归一化值呈指数增加。换句话说,总电容值可以与放置在控制器100上/周围的手指的接近度成指数关系。线性化数值范围[0,1]内的值使得电容值与手指位置相关,可以降低灵敏度以及在手指从控制器100伸展开时以及在手指触摸或紧密接近控制器100时噪声可能产生的影响。
[0121]
如图所示,滤波和曲线拟合可以涉及各种子框,以实现用于生成手势的最终值。在滤波和曲线拟合阶段1026处,过程1000可以在曲线拟合之前或之后应用滤波。例如,当电容垫602易受噪声影响时,子框可以涉及对电容值的低水平范围内的电容值进行滤波。换句话说,在高水平电容范围内,诸如在手指抓握控制器100或紧密接近控制器100时,电容垫602不太容易受噪声影响。
[0122]
过程1000可以在1028处应用自适应滤波以调节对电容值执行的滤波的量。自适应滤波可以自适应地进行滤波,以对电容值的低范围内的电容值进行比电容值的高范围内的电容值更积极的滤波。如图所示,自适应滤波可以涉及子框1030、1032和1034。一般来讲,在1026处,自适应滤波可以利用子框1030、1032和1034的结果来确定归一化值中存在多少噪声,以确定要应用于已归一化电容值的滤波的量。确定电容值中存在的噪声量可以涉及确定正在使用哪些电容垫602来生成电容值,以及相应电容垫602的最小电容值和最大电容值。例如,电容垫602可具有基线噪声,并且如果电容垫602的最小电容值与最大电容值之间
的范围较小,则电容垫602的基线噪声可以等于大量的手指移动(即,基线噪声是电容垫602能够感测到的电容值的范围的很大一部分)。此时,信噪比可能较高。相比之下,如果电容垫602的最小电容值与最大电容值之间的范围较大,则电容垫602的基线噪声可能不会引起大量的手指移动。在这些场景中,为了减少电容值内的噪声,当电容值的范围较小时,过程1000可以对电容值进行比电容值的范围较大时更大程度的滤波。可以针对每个电容垫602重复滤波和曲线拟合1026,因为每个电容垫602可以包括相应的高水平电容值和低水平电容值。另外,在1026处应用的滤波的量可以取决于哪些电容垫602和/或哪些电容垫602已经被拒绝(例如,垫和手指拒绝1022)。
[0123]
在1030处,总噪声预测可以基于正在使用哪些电容垫602、分配给电容垫602的权重以及电容垫602的相应基线噪声来对电容值进行滤波。例如,过程1000可以在1028处包括默认电容垫噪声,其可以表示各个电容垫602的估计基线噪声。因此,在1030处,总噪声预测步骤可以为正在使用的那些电容垫602确定其相应的基线噪声值。总噪声预测步骤还可以确定电容垫602的预期或预测噪声。例如,如果正在使用的电容垫602感测大范围内(即,在最小电容值与最大电容值之间)的电容值,则电容值可以包括少量的噪声并且可以应用较少的滤波。然而,如果电容垫602的电容值的范围较窄(即,在最小电容值与最大电容值之间的范围较窄),则电容值可能包括大量的噪声,并且过程1000可以应用较大量的滤波。
[0124]
在1032处,dnorm/dt可以考虑电容值随着时间推移的变化。例如,如果从电容垫602接收到的电容值在短时间段(例如,一帧)内发生显著变化,则电容值内引起的潜在噪声可以相应地被忽略或加权。也就是说,如果电容值在阈值量的时间内变化超过阈值量,则可以对电容值应用较少的滤波,而不是对电容值进行滤波并引起延迟。在这个意义上,当检测到较大的手指移动时可以应用较少的滤波,并且当检测到较小的手指移动时可以应用较多的滤波。
[0125]
在1034处,dcurl/dnorm可以基于检测到的电容的量来对归一化电容值进行滤波。例如,在电容值的高范围内(在手指抓握控制器的情况下),由于噪声可对手指位置产生较小影响,因此可以应用较少的滤波。但是,在电容值的低范围内(在手指从控制器移位或紧密接近控制器的情况下),由于电容值的小变化可对手指位置产生显著影响,因此可以应用更多的滤波。此时,电容值的小变化可导致手指手势的大变化。
[0126]
在子框1038处,低通滤波器可以表示可调谐低通均值滤波器,该可调谐低通均值滤波器调节对检测到的电容值进行的滤波的量。在一些情况下,滤波的量可以在数值范围[0,1]内,并且可以基于在自适应滤波器1028处确定的滤波的量的结果。即,低通滤波器可以如通过自适应滤波确定的那样对电容值进行滤波。
[0127]
在子框1040处,过程1000可以对数值范围[0,1]内的电容值进行曲线拟合,以将电容值与手指位置或手动画相关联。对于每个手指,曲线拟合的输出可以包括针对每个手指的数值,其中该数值指示手的每个手指的手指位置。
[0128]
在子框1042处,过程1000可以在曲线之后应用齿隙式滤波器(backlash filter),以对低于阈值的电容值的变化进行滤波。例如,如果电容值在[0,1]数值范围内未改变至阈值量,则可以对电容值进行滤波。这种滤波可以减少用户感觉到的手指抽搐和运动。
[0129]
在子框1044处,关节模型可以对应于手动画(例如,手骨骼)。例如,关节模型可以生成与在1040处通过曲线拟合分配给手的各个手指的数值相对应的手动画。
[0130]
图11示出了用于更新与接近传感器600相关联的最小电容值的示例性图1100。示例性图1100示出了从接近传感器600的电容垫602接收到的电容值1102。在一些情况下,控制器100可以在vr环境中显示的每个帧处接收电容值1102。电容垫602可以测量与对象(例如,手指)接近电容垫602相关联的电容值1102。在一些情况下,随着对象与电容垫602之间的距离减小,由电容垫602检测到的电容值可以增大。通过迭代地接收电容值1102,控制器100可以确定最大电容值1104、最小电容值1106和/或最大电容值1104与最小电容值1106之间的范围1108。
[0131]
在一些情况下,最大电容值1104可以对应于当对象(例如,手指)正在触摸控制器100时接收到的电容值。例如,控制器100可以将该电容值与最大电容值1104和控制器100处的触摸相关联。该关联可以由一个或多个计算设备用于生成握持对象(例如,武器、球等)的用户的图像数据。最小电容值1106可以对应于当对象(例如,手指)未接触控制器100并且从控制器100完全伸展开时接收到的电容值。例如,在接收到电容值1102时,控制器100可以将该电容值与最小电容值1106以及用户从控制器100完全伸展开他或她的手指相关联。该关联可以由一个或多个计算设备用于生成用户完全伸展开他或她的手指(例如,丢掉球)的图像数据。
[0132]
除此之外,在接收到电容值1102时,控制器100可以确定平均电容值1110。在一些情况下,平均电容值1110可以根据来自预先确定数量的过去样本的电容值来确定。例如,平均电容值1110可以使用所接收到的过去二十个电容值来确定。
[0133]
利用范围1108,控制器100可以确定电容垫602的偏差和/或缩放系数,以确定用户的在完全伸展开与触摸控制器100之间的相对手指位置。然而,在整个游戏体验中,一个或多个因素可能影响所检测到的电容值1102。例如,控制器100所处的环境的温度可能降低和/或用户手/手指的湿度可能增加。在一些情况下,这些因素可导致较低的电容值1102。为了准确地检测对象相对于控制器100的接近度,最大电容值1104(或与其相关联的水平/极限)可以衰减。换句话说,最大电容值1104可以衰减到新的电容值,以准确地检测电容值1102(a)并且/或者将其与用户的手指位置相关联(例如,使用偏差、缩放系数等)。
[0134]
例如,图11示出了最大电容值1104可以衰减。在一些情况下,衰减可能由于控制器100未接收到在最大电容值1104的某个阈值内的电容值1102而发生。在一些情况下,如果在预先确定数量的帧内电容值1102不在最大电容值1104的某个阈值内,则最大电容值1104可以衰减。除此之外,如果关于过去的n个样本1112的平均电容值1110不在最大电容值1104的某个阈值内,则最大电容值1104可以衰减。在另外其他情况下,最大电容值1106可以连续地衰减以向电容值1102和/或平均电容值1110靠拢。
[0135]
在一些情况下,衰减的量可以至少部分地基于可变衰减速率、范围1108和/或根据过去的n个样本1112确定的范围1114。在一些情况下,可变衰减速率可以是基本上范围1108的10%。因此,最大电容值1104可以在一段时间内逐渐衰减以向所检测到的电容值1102和/或平均电容值1110靠拢。另外,可以限制最大电容值1104衰减的量,使得最大电容值1104和最小电容值1106隔开阈值量。
[0136]
此外,最大电容值1104衰减的速率可以至少部分地基于帧的数量,控制器100还没有接收到在最大电容值1104的阈值内的电容值1102。最大电容值1104衰减的速率还可以取决于过去的n个样本1112内的所测量的电容值1102的可变性。例如,与如果在过去的n个样
本1112内的所检测到的电容值1102之间存在较小可变性相比,如果在过去的n样本1112内的所检测到的电容值1102之间存在较大可变性,则最大电容值1104可以更快的速率衰减。
[0137]
因此,最大电容值1104可以衰减到新值,并且可以确定新的偏差、缩放系数和/或范围1116。
[0138]
作为衰减最大电容值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。
[0139]
虽然未示出,但是最小电容值1106可以基于电容值1102和/或平均电容值1110类似地衰减。例如,最小电容值1106可能由于控制器100在阈值数量的帧内未接收到在最小电容值1106的阈值内的电容值1102而衰减。在这样做时,最小电容值1106可以衰减到新的电容值,以准确地检测电容值1102并且/或者将其与用户的手指位置相关联(例如,使用偏差、缩放系数等)。最小电容值1106衰减的量或速率可以至少部分地基于控制器100尚未接收到在最小电容值1106的阈值内的电容值1102的时间段。最小电容值1106衰减的量可以是有限的,使得最小电容值1106和最大电容值1104隔开阈值量或范围。在一些情况下,因为在范围1108的较低范围内(即,当手指从控制器100伸展开时)的电容值1102内可能存在大量噪声,所以在一些情况下,最小电容值1106可以最大电容值1104的两倍的速率衰减。
[0140]
另外,虽然最大电容值1104和最小电容值1106被分开讨论,但是最大电容值1104和最小电容值1106可以基于控制器100接收到电容值1102而同时衰减。进而,可以确定更新范围、更新的偏差和/或更新的缩放系数,以用于校准电容垫602和/或归一化从电容垫602接收到的电容值1102。
[0141]
图12示出了控制器1200诸如控制器100的示例性部件。如图所示,控制器100可以包括一个或多个输入/输出(i/o)设备1202,诸如上述控件(例如,操纵杆、触控板、触发器等)、接近传感器600和/或潜在的任何其他类型的输入或输出设备。例如,i/o设备1202可包括一个或多个麦克风以接收音频输入,诸如用户语音输入。在一些具体实施中,一个或多个相机或其他类型的传感器(例如,惯性测量单元(imu))可用作输入设备以接收手势输入,诸如控制器100的运动。在一些实施方案中,可以键盘、小键盘、鼠标、触摸屏、操纵杆、控制按钮等的形式提供附加的输入设备。输入设备还可包括控制机构,诸如用于增大/减小音量的基本音量控制按钮,以及电源和复位按钮。同时,输出设备可包括显示器、发光元件(例如,led)、产生触觉的振动器、扬声器(例如,耳机)等。还可以存在简单的发光元件(例如,led)来指示控制器100的状态(例如,通电)。
[0142]
在一些情况下,i/o设备的输出可以基于由输入设备中的一个或多个输入设备接收到的输入。例如,经由控制器100的接近传感器600感测的触摸可以导致位于接近传感器600附近(例如,下方)的振动器输出触觉响应。在一些情况下,输出可以至少部分地基于一
个或多个对象相对于接近传感器600(诸如,设置在控制器100的手柄112上/内的电容垫602)的接近度的特性而变化。例如,在手柄112上的第一位置处的触摸输入(或对象的接近度)可以导致第一触觉输出,而在手柄112上的第二位置处的触摸输入(或对象的接近度)可以导致第二触觉输出。此外,手柄112上的特定手势可以导致特定的触觉输出(或其他类型的输出)。例如,手柄112上(由接近传感器600检测到)的敲击并保持手势可以导致第一类型的触觉输出,而手柄112上的敲击并释放手势可以导致第二类型的触觉输出,而用力敲击手柄112可以导致第三类型的触觉输出。然而,虽然提供了一些示例,但是控制器100可以除此之外或另选地包括其他类型的i/o设备。
[0143]
另外,控制器100可以包括一个或多个通信接口1204,以促进到网络和/或一个或多个远程系统(例如,执行应用程序的主机计算设备、游戏机、其他控制器等)的无线连接。通信接口1204可实现各种无线技术中的一种或多种,诸如wi

fi、蓝牙、射频(rf)等。除此之外或另选地,控制器100可以包括物理端口,以有利于与网络、连接的外围设备或与其他无线网络通信的插入式网络设备的有线连接。
[0144]
在所示的具体实施中,控制器100还包括一个或多个处理器1206和计算机可读介质1208。在一些具体实施中,处理器1206可包括中央处理单元(cpu)、图形处理单元(gpu)、cpu和gpu两者、微处理器、数字信号处理器或其他已知的处理单元或部件。除此之外或另选地,本文所述的功能可以至少部分地由一个或多个硬件逻辑部件执行。例如但不限于,可使用的例示性类型的硬件逻辑部件包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统系统(soc)、复杂的可编程逻辑器件(cpld)等。此外,处理器1206中的每个可拥有自己的本地存储器,这些存储器也可存储程序模块、程序数据和/或一个或多个操作系统。
[0145]
计算机可读介质1208可包括采用用于存储信息(诸如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性存储器和非易失性存储器、可移动介质和不可移动介质。此类存储器包括但不限于ram、rom、eeprom、闪存存储器或其他存储器技术、cd

rom、数字多功能盘(dvd)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、raid存储系统,或可用于存储所需信息并可由计算设备访问的任何其他介质。计算机可读介质1208可被实现为计算机可读存储介质(“crsm”),该crsm可以是处理器1206可访问以执行存储在计算机可读介质1208上的指令的任何可用物理介质。在一个具体实施中,crsm可包括随机存取存储器(“ram”)和闪存存储器。在其他具体实施中,crsm可包括但不限于只读存储器(“rom”)、电可擦除可编程只读存储器(“eeprom”)或可用于存储所需信息并可由处理器1206访问的任何其他有形介质。
[0146]
若干模块诸如指令、数据存储等可存储在计算机可读介质1208内并且被配置为在处理器1206上执行。一些示例性功能模块被示为存储在计算机可读介质1208中并在处理器1206上执行,但是相同的功能可另选地采用硬件、固件或片上系统(soc)来实现。为了其他模块的利益,操作系统模块1210可被配置为管理控制器100内且耦接到该控制器的硬件。另外,计算机可读介质1208可以存储网络通信模块1212,该网络通信模块使得控制器100能够经由通信接口1204中的一个或多个通信接口与一个或多个其他设备(诸如,执行应用程序(例如,游戏应用程序)的个人计算设备、游戏机、远程服务器、其他控制器、计算设备等)进行通信。计算机可读介质1208还可包括游戏会话数据库1214,以存储与在控制器100上或耦
接到控制器100的计算设备上执行的游戏(或其他应用程序)相关联的数据。
[0147]
计算机可读介质1208还可包括设备记录数据库1216,该设备记录数据库存储与耦接到控制器100的设备(诸如,个人计算设备、游戏机、远程服务器等)相关联的数据。
[0148]
计算机可读介质1208还可存储将控制器100配置为用作游戏控制器的游戏控制指令1218,以及将控制器100配置为用作其他非游戏设备的控制器的通用控制指令1220。
[0149]
计算机可读介质1208还可以存储控制器配置1222。控制器配置1222可以表示或包括与接近传感器600的电容垫602的分配相关联的数据,以将某些电容垫602与操作控制器100的用户的相应手指相关联。
[0150]
计算机可读介质1208还可以存储与电容值的范围1224相关联的数据。电容值的范围1224可以指示在接近传感器600的各个电容垫602处检测到或能够检测到的电容值的范围。例如,如上所述,通过从接近传感器600连续地接收接近度数据,控制器100可以计算和/或确定在电容垫602处接收到的电容值的范围。利用电容值的范围,计算机可读介质1208还可以存储最小电容值1226和/或最大电容值1228。
[0151]
计算机可读介质1208还可以存储缩放系数和偏差1230。缩放系数和偏差1230可以与各个电容垫602相关联,并且可以利用电容值的范围1224来确定。因此,利用电容值的范围1226和/或缩放系数和偏差1230,控制器1200可以归一化和/或校准从接近传感器600接收到的接近度数据。
[0152]
结论
[0153]
虽然参照特定示例描述了前述发明,但是应当理解,本发明的范围不限于这些特定示例。由于为适应特定的操作要求和环境而改变的其他修改形式和改变形式对本领域的技术人员将是显而易见的,因此本发明不应被认为限于为公开目的而选择的示例,并且本发明涵盖不构成与本发明的真正实质和范围的偏离的全部改变形式和修改形式。
[0154]
虽然本技术描述了具有特定结构特征和/或方法动作的实施方案,但应当理解,权利要求书不一定限于所描述的特定特征或动作。相反,该特定特征和动作仅举例说明落入本技术的权利要求的范围内的一些实施方案。
[0155]
条款
[0156]
可以参考以下条款来描述本公开的实施方案。
[0157]
1.一种手持控制器,包括:
[0158]
接近传感器,所述接近传感器被配置为基于对象接近所述接近传感器来检测电容值;
[0159]
一个或多个处理器;和
[0160]
存储计算机可执行指令的一个或多个非暂态计算机可读介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行包括以下项的动作:
[0161]
接收由所述接近传感器检测到的第一电容值;
[0162]
至少部分地基于所述第一电容值来确定:
[0163]
最大电容值,
[0164]
最小电容值,以及
[0165]
电容值的范围;
[0166]
确定所述接近传感器的偏差;
[0167]
确定由所述接近传感器检测到的所述电容值的缩放系数;
[0168]
至少部分地基于所述偏差和所述缩放系数来校准所述接近传感器;
[0169]
接收由所述接近传感器检测到的第二电容值;
[0170]
至少部分地基于所述第二电容值来确定以下项中的至少一项:
[0171]
更新的最大电容值,
[0172]
更新的最小电容值,或者
[0173]
电容值的更新范围;
[0174]
确定所述接近传感器的更新的偏差或由所述接近传感器检测到的所述电容值的更新的缩放系数中的至少一者;以及
[0175]
至少部分地基于所述更新的偏差或所述更新的缩放系数中的所述至少一者来校准所述电容传感器。
[0176]
2.根据条款1所述的手持式控制器,其中所述一个或多个非暂态计算机可读介质存储计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行还包括以下项的动作:
[0177]
至少部分地基于所述第二电容值来确定所述对象相对于所述手持式控制器的接近度;
[0178]
生成对所述对象的所述接近度的指示;以及
[0179]
将所述指示传输到计算设备。
[0180]
3.根据条款1所述的手持式控制器,其中:
[0181]
所述接近传感器包括电容垫;并且
[0182]
所述电容垫中的各个电容垫被配置为生成与所述对象相对于所述手持式控制器的接近度相关联的电容值。
[0183]
4.根据条款1所述的手持式控制器,其中所述一个或多个非暂态计算机可读介质存储计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行还包括以下项的动作:至少部分地基于所述第二电容值来进行以下操作中的至少一项:
[0184]
将所述最大电容值衰减到所述更新的最大电容值;或者
[0185]
将所述最小电容值衰减到所述更新的最小电容值。
[0186]
5.一种方法,包括:
[0187]
确定由接近传感器检测到的接近度值的范围,所述接近度值的所述范围包括最大值和最小值;
[0188]
从所述接近传感器接收接近度值;
[0189]
衰减与所述最大值相关联的极限;
[0190]
衰减与所述最小值相关联的极限;
[0191]
至少部分地基于与所述最大值相关联的所述极限和与所述最小值相关联的所述极限来确定由所述接近传感器检测到的接近度值的更新范围;以及
[0192]
至少部分地基于所述接近度值的所述更新范围来确定由所述接近传感器检测到的所述接近度值的缩放系数。
[0193]
6.根据条款5所述的方法,其中所述衰减与所述最大值相关联的所述极限以及所述衰减与所述最小值相关联的所述极限至少部分地基于由所述接近传感器检测到的所述接近度值的所述范围。
[0194]
7.根据条款6所述的方法,其中在先前数量的帧期间接收所述接近度值,所述方法还包括:基于在所述先前数量的帧期间接收到的所述接近度值来确定平均值,并且其中所述衰减与所述最大值相关联的所述极限以及所述衰减与所述最小值相关联的所述极限还至少部分地基于所述平均值。
[0195]
8.根据条款5所述的方法,还包括:
[0196]
确定衰减与所述最大值相关联的所述极限的第一速率,其中所述第一速率至少部分地基于在预先确定数量的先前帧期间接收到的所述接近度值的可变性;以及
[0197]
确定衰减与所述最小值相关联的所述极限的第二速率,其中所述第二速率至少部分地基于在所述预先确定数量的先前帧期间接收到的所述接近度值的所述可变性,
[0198]
其中:
[0199]
所述衰减与所述最大值相关联的所述极限至少部分地基于所述
[0200]
第一速率;并且
[0201]
所述衰减与所述最小值相关联的所述极限的至少部分地基于所
[0202]
述第二速率。
[0203]
9.根据条款5所述的方法,其中由所述接近传感器检测到的所述接近度值对应于对象接近控制器,所述方法还包括:
[0204]
生成与所述对象相对于所述控制器的接近度对应的指示;以及
[0205]
将所述指示传输到一个或多个计算设备。
[0206]
10.根据条款5所述的方法,其中所述接近度值包括第一接近度值,所述方法还包括:
[0207]
接收第二接近度值;
[0208]
至少部分地基于所述第二接近度值来衰减与所述最大值相关联的所述极限和与所述最小值相关联的所述极限;
[0209]
确定由所述接近传感器检测到的平均值;以及
[0210]
确定以下中的至少一项:
[0211]
所述平均值大于与所述最大电容值相关联的所述极限;或者
[0212]
所述平均值小于与所述最小电容值相关联的所述极限。
[0213]
11.根据条款10所述的方法,还包括以下中的至少一项:
[0214]
至少部分地基于所述平均值大于与所述最大电容值相关联的所述极限来确定与所述最大值相关联的更新的极限;或者
[0215]
至少部分地基于所述平均值小于与所述最小电容值相关联的所述极限来确定与所述最小值相关联的更新的极限。
[0216]
12.根据条款11所述的方法,其中:
[0217]
在预先确定数量的先前帧内确定所述平均值;
[0218]
与所述最大值相关联的所述更新的极限至少部分地基于在所述预先确定数量的先前帧内确定的所述平均值;并且
[0219]
与所述最小值相关联的所述更新的极限至少部分地基于在所述预先确定数量的先前帧内确定的所述平均值。
[0220]
13.根据条款5所述的方法,其中:
[0221]
所述接近传感器包括电容垫;并且
[0222]
各个电容垫被配置为生成所述接近度值,其中所述接近度值与对象接近控制器相关联。
[0223]
14.一种控制器,所述控制器包括:
[0224]
传感器;
[0225]
一个或多个处理器;和
[0226]
存储计算机可执行指令的一个或多个非暂态计算机可读介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行包括以下项的动作:
[0227]
从所述传感器接收第一数据;
[0228]
至少部分地基于所述第一数据来确定接近度值的范围,所述接近度值的所述范围包括第一最大接近度值和第一最小接近度值;
[0229]
确定第一缩放系数;
[0230]
从所述传感器接收第二数据;
[0231]
衰减所述第一最大接近度值或所述第一最小接近度值中的至少一者;
[0232]
确定接近度值的更新范围,所述接近度值的所述更新范围包括第二最大接近度值或第二最小接近度值中的至少一者;
[0233]
确定第二缩放系数;以及
[0234]
至少部分地基于所述第二缩放系数来确定接近度。
[0235]
15.根据条款14所述的控制器,其中:
[0236]
所述第一最大接近度值与对象相对于所述传感器的第一接近度相关联,并且所述第一最小接近度值与所述对象相对于所述传感器的第二接近度相关联;以及
[0237]
所述第二最大接近度值与所述对象相对于所述传感器的所述第一接近度相关联,并且所述第二最小接近度值与所述对象相对于所述传感器的所述第二接近度相关联。
[0238]
16.根据条款14所述的控制器,其中所述一个或多个非暂态计算机可读介质存储计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行还包括以下项的动作:将对所述接近度的指示传输到计算设备。
[0239]
17.根据条款14所述的控制器,其中所述一个或多个非暂态计算机可读介质存储计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行还包括以下项的动作:
[0240]
确定平均接近度值;
[0241]
确定以下中的至少一项:
[0242]
所述平均接近度值大于所述第二最大接近度值;或者
[0243]
所述平均接近度值小于所述第二最小接近度值;以及
[0244]
确定第三最大接近度值或第三最小接近度值中的至少一者。
[0245]
18.根据条款17所述的控制器,其中所述第三最大接近度值或所述第三最小接近
度值至少部分地基于所述平均接近度值的百分比。
[0246]
19.根据条款14所述的控制器,其中所述第二数据包括接近度值,并且其中:
[0247]
衰减所述第一最大接近度值至少部分地基于确定所述接近度值中的一个或多个接近度值在阈值时间段内处于所述第一最大接近度值的第一阈值范围之外;并且
[0248]
衰减所述第一最小接近度值至少部分地基于确定所述接近度值中的一个或多个接近度值在所述阈值时间段内处于所述第一最小接近度值的第二阈值范围之外。
[0249]
20.根据条款14所述的控制器,其中:
[0250]
所述衰减所述第一最大接近度值至少部分地基于所述接近度值的所述范围和来自所述接近度值的子集的接近度值的范围;以及
[0251]
所述衰减所述第一最小接近度值至少部分地基于所述接近度值的所述范围和来自所述接近度值的所述子集的接近度值的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜