校正跟踪系统中的角度误差相关申请
本申请要求在2008年12月17日提交的美国临时申请No.61/138,516和在2009年5月4日提交的美国非临时申请No.12/435,285的优先权,所述申请由此通过引用并入。
技术领域
本发明一般地涉及一种跟踪系统,并且更加具体地涉及补偿跟踪系统的角度中的误差。
背景技术
在计算机游戏工业中的正在增长的趋势是研制增加在用户和游戏系统之间的交互的游戏。实现更加丰富的交互体验的一种方式是使用其移动由游戏系统跟踪从而跟踪玩家的移动并且使用这些移动作为游戏的输入的游戏控制器。一般地说,姿态输入指的是使得例如计算系统、视频游戏控制台、智能器具等的电子装置对于由摄影机或者跟踪对象的其它位置传感器捕捉的某个姿态作出反应。
通常,为了产生用户的地点和运动的可靠测量,需要对游戏系统进行校准。通常每次使用游戏系统时这种校准都是有必要的。校准过程确定控制器相对于位置传感器的角度(例如偏航、俯仰和滚转)的初始值。因为用户通常频繁地移动控制器,并且这些移动能够以很多不同的加速度变化,所以这些初始角度可能需要被频繁地更新。可以通过积分来自控制器上的惯性传感器的角速率测量而估计这些更新的角度。然而,每次执行这个积分时均引入轻微的误差。因此,随着时间的过去,角度的值将漂移,从而导致特定量的角度误差。
在特定情况中,可以通过当控制器不在加速时测量重力的方向而绝对地确定俯仰和滚转角度。可以使用磁力计确定绝对偏航角度,但是磁力计受到金属和磁干扰的影响。
附图说明
通过与附图相结合参考以下说明,可以最好地理解本发明,在附图中:
图1示意根据本发明的一个实施例的跟踪系统的透视图;
图2A示意根据本发明的一个实施例的具有球部的游戏控制器;
图2B示意根据本发明的另一实施例的具有球部的另一游戏控制器;
图2C示意根据本发明的一个实施例的被置放在用户上的多个运动捕捉球;
图3示意根据本发明的一个实施例的移动通过路径的对象的一个示例;
图4示意根据本发明的一个实施例的跟踪系统的框图;
图5示出根据本发明的一个实施例的多玩家环境的示意图;
图6是示意根据本发明的一个实施例的补偿跟踪系统中的角度误差的示例性方法的流程图;
图7是示意根据本发明的一个实施例的确定在经变换惯性数据和位置传感器加速度数据之间的误差量的一种方法的流程图;
图8是示意根据本发明的一个实施例的确定在经变换惯性数据和位置传感器加速度数据之间的误差量的另一种方法的流程图;
图9是示意根据本发明的一个实施例的确定在经变换惯性数据和位置传感器加速度数据之间的误差量的另一种方法的流程图;
图10示意根据本发明的一个实施例的可以被用于确定控制器地点的硬件和用户接口;并且
图11示意根据本发明的一个实施例的可以被用于处理指令的另外的硬件。
具体实施方式
在这里描述了一种用于校正用于在游戏系统中使用的跟踪系统中的角度误差的方法和设备。在本发明的一个实施例中,为了校正角度误差,接收在被跟踪对象的参考系中的对应于该被跟踪对象的加速度数据。从位置传感器接收被跟踪对象的位置数据,并且从所接收的位置数据计算位置传感器加速度数据。使用旋转估计将加速度数据变换到位置传感器参考系中。确定在经变换加速度数据和位置传感器加速度数据之间的误差量。响应于所确定的误差量更新旋转估计。
在以下说明中,阐述了许多细节。然而,对于本领域技术人员而言将明显的是,可以在没有这些具体细节的情况下实践本发明。在一些情形中,众所周知的结构和装置以框图形式而非详细地示出,从而避免模糊本发明。
随后的详细说明的某些部分是按照在计算机存储器内的数据位上的操作的算法和符号表示给出的。这些算法说明和表示是数据处理领域中的技术人员用以最有效地向本领域其它技术人员传达他们的工作实质的手段。算法在这里,并且通常地,被认为是产生所期结果的、自身一致的步骤序列。所述步骤是要求物理量的物理操控的那些步骤。通常,但是并不是必要地,这些量采取能够被存储、传输、组合、比较和以其它方式操控的电气或者磁信号的形式。主要由于普遍使用的原因,已经证明有时方便的是,将这些信号称为位、值、元素、符号、字符、项、数字等。
然而,应该记住,所有的这些和类似的术语将被与适当的物理量相关联并且仅仅是被应用于这些量的方便的标签。如根据以下讨论明显的,除非另有具体声明,应该理解,在本说明全文中,利用例如“处理”、“计算”、“转换”、“调节”、“确定”等术语的讨论,指的是计算机系统或者类似的电子计算装置的动作和过程,该计算机系统或者类似的电子计算装置操控被表示成在计算机系统的寄存器和存储器内的物理(例如,电子)量的数据并且将其变换成被类似地表示成在计算机系统存储器或者寄存器或者其它这种信息存储、传输或者显示装置内的物理量的其它数据。
本发明还涉及一种用于执行本文的操作的设备。该设备可以被专门地构造用于所要求的意图,或者它可以包括由存储在计算机中的计算机程序选择性地激活或者重新配置的通用计算机。在一个实施例中,用于执行本文的操作的设备包括游戏控制台(例如,Sony Playstation?、Nintendo Wii?、Microsoft Xbox?等)。计算机程序可以被存储在计算机可读存储介质中,例如但是不限于:任何类型的盘,包括软盘、光盘(例如,紧致盘只读存储器(CD-ROM)、数字视频盘(DVD)、蓝光盘?等)和磁光盘;只读存储器(ROM);随机存取存储器(RAM);EPROM;EEPROM;磁卡或者光卡;或者适用于存储电子指令的任何类型的介质。
机器可读介质包括用于以机器(例如,计算机)可读的形式存储或者传输信息的任何机构。例如,机器可读介质包括机器可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪存装置等)、机器可读传输介质(电、光、声或者其它形式的传播信号(例如,载波、红外信号、数字信号、等))等。
图1示意根据本发明的一个实施例的跟踪系统100的透视图。跟踪系统100包括位置传感器105、被位置传感器105跟踪的对象110,和处理由位置传感器105和由对象110接收的数据的计算装置115。在一个实施例中,跟踪系统100是游戏系统的构件。可替代地,跟踪系统100可以是运动捕捉系统的构件。
位置传感器105是测量在二维或者三维空间中对象110相对于位置传感器105的位置的传感器。位置传感器105可以是摄影机、Z照相机、立体照相机、web照相机、超声传感器阵列、光子探测器或者能够测量对象110的位置的其它装置。例如,如果位置传感器105是照相机,则在对象110移动时位置传感器105产生包括对象110的多个图像。
由位置传感器105进行的位置测量是在位置传感器105的参考系150中的,参考系150是由位置传感器测量平面和垂直于位置传感器测量平面的矢量限定的。参考系在这里被限定为一种坐标系统,将在该坐标系统内测量对象的位置、定向和其它性质。在该申请全文中,术语参考系和坐标系统被可互换地使用。
如所示那样,位置传感器105定位于电视机120的顶部上,具有相对于地板150的负俯仰145。俯仰145是在处于位置传感器105的测量平面中的位置传感器的参考系150的水平轴线和垂直于重力135的平面之间的角度。只要俯仰145是非零值,位置传感器105便具有不同于地球参考系140(被定义为具有与重力135相对准的轴线(例如,y2)的参考系)的参考系150。
在本发明的一个实施例中,位置传感器105是标准摄影机。在这种实施例中,位置传感器105可以基于识别对象110的尺寸的预定信息和/或基于识别位置传感器105的视场(FOV)125的预定信息捕捉深度信息(在位置传感器105和对象110之间的距离130)。视场125是由位置传感器105成像的给定场景的角度范围。该视场限定由照相机镜头引起的图像的失真(例如,缩放量)。当对象110进一步从位置传感器105移动时(即,当距离130增加时),如由位置传感器105捕捉的对象110的图像变得更小。因此,假设位置传感器105的视场125是已知的,能够基于被跟踪对象110的图像尺寸(例如,如以像素为单位测量的)与被跟踪对象110的已知的实际尺寸的比率确定对象110到位置传感器105的距离130。
在本发明的另一实施例中,位置传感器105是Z照相机(能够捕捉具有深度信息的视频的单镜头摄影机)或者立体照相机(能够捕捉三维图像的、带有2个或者更多镜头的摄影机)。在这种实施例中,位置传感器105能够捕捉深度信息,而无需预先配置有识别对象110的尺寸的信息。
在本发明的又一个实施例中,位置传感器105是传感器阵列例如超声传感器阵列或者光子探测器。这种位置传感器105使用(例如,光或者声音的)行进时间或者相位相干性探测在位置传感器105和对象110之间的距离,并且使用三角测量探测对象110的竖直和水平位置。
对象110是包括一个或者多个惯性传感器的电子装置。惯性传感器可以测量沿着单一轴线或者多条轴线的加速度,并且可以测量线性以及角加速度。在一个实施例中,对象110是手持式电子装置或者手持式电子装置的一部分,该手持式电子装置例如游戏控制器,如在图2A和2B中所示。在另一实施例中,对象110是运动捕捉(mocap)球,如在图2C中所示。对象110可以具有任意形状,例如方形、球形、三角形或者更加复杂的形状。在一个实施例中,对象110具有球形形状。
图2A示意根据本发明的一个实施例的具有球部205的游戏控制器200。图2B示意根据本发明的另一实施例的具有球部215的另一游戏控制器210。在某些实施例中,球部205和215对应于图1的对象110。
球部205、215能够具有不同的颜色,并且在一个实施例中,球部205、215能够被照亮。虽然示意了球形球部,但是球部205、215能够具有用于视觉跟踪意图的其它形状,例如部分球体、不完美球体、细长球(类似在美式橄榄球中或者在橄榄球中使用的球)、立方状形状等。在一个实施例中,球部205、215具有4cm.的直径。然而,其它更大或者更小的尺寸也是可能的。更大的尺寸帮助视觉辨识。例如,与4cm.球相比,具有5cm.直径的球能够提供用于图像辨识的多大约百分之五十五的像素。
图2C示意根据本发明的一个实施例的被置放在用户225上的多个mocap球220。mocap球220是由用户225靠近每一个关节佩带以使得位置传感器能够基于mocap球220之间的位置或者角度捕捉并且识别用户的运动的标记器。在一个实施例中,mocap球220被附接到运动捕捉套件(suit)。
转向图1,对象110和位置传感器105通过有线和/或无线连接而与计算装置115连接。有线连接的示例包括经由IEEE 1394(火线)电缆、以太网电缆和通用串行总线(USB)电缆等实现的连接。无线连接的示例包括无线保真(WiFi?)连接、蓝牙?连接、Zigbee?连接,等等。在所示意的实施例中,对象110被与计算装置115无线连接并且位置传感器105经由有线连接与计算装置115连接。
计算装置115可以是视频游戏控制台、个人计算机、游戏亭或者其它计算设备。计算装置115可以执行游戏或者能够响应于来自对象110的用户输入的其它应用。对象110被跟踪,并且对象110的运动提供用户输入。
在跟踪系统100能够准确地跟踪对象110之前,需要校准跟踪系统100。例如,校准跟踪系统100可以包括计算位置传感器105的俯仰145和计算在位置传感器105和对象110之间的相对偏航。在对象110和位置传感器105之间的相对偏航代表在对象110和位置传感器105之间的前进方向(heading)的差异。在一个实施例中,零偏航被定义为当对象垂直于位置传感器105的成像平面指向时在位置传感器105和对象110之间得以实现。可替代地,零偏航可以被定义为当对象110直接地朝向位置传感器105指向时得以实现。如果位置传感器105是带有未知视场125的照相机,则校准跟踪系统100还包括计算位置传感器105的视场125。如果对象110具有未知的尺寸,则校准跟踪系统100还可以包括确定对象110的尺寸。
为了使得被置放在对象110中的惯性传感器收集用于校准的、足够的惯性数据,对象110应该被用户移动。对象110应该在位置传感器105的视场125内移动以保证每一个惯性数据测量均具有由位置传感器105测量的、对应的位置。如果对象110通过位置传感器105的视场125内的路径移动从而它超过最小阀值并且在至少两个维度(例如,平面)中发生,则校准的有效性能够被增加。该路径可以包括朝向和/或远离位置传感器105的移动。如将在下文中描述的,当校正跟踪系统中的角度误差时也需要对应于对象110的惯性数据。
所接收的惯性数据具有由伴随惯性数据的信号噪声的量限定的不确定性。当由对象110测量的加速度的量值降低时,信噪比(信号功率与损害信号的噪声功率的比率)增加。信噪比的降低使得惯性数据变得不那么准确。在一个实施例中,最小加速度阀值被设为防止惯性数据降至低于最小信噪比。
在图3中示意了根据本发明的一个实施例的正在移动通过路径的对象的一个示例。如所示那样,对象是被附接到游戏控制器310的端部的球305并且路径315是围绕用户的头部的圆形路径。圆形路径是有利的,因为沿着圆的移动提供恒定的加速度。因此,圆形路径提供增加的惯性数据。整个路径315在位置传感器的视场320内发生,并且包括朝向和远离位置传感器的运动。
图4示意根据本发明的一个实施例的跟踪系统400的框图。跟踪系统400包括与位置传感器405物理连接并且与由位置传感器405跟踪的对象410无线连接的计算装置415。当然,应该理解,在本发明的一些实施例中,位置传感器405被与计算装置415无线连接。在一个实施例中,跟踪系统400对应于图1的跟踪系统100。
在本发明的一个实施例中,对象410包括在对象410内的固定位置中的一个或者多个惯性传感器420,然而,在本发明的可替代实施例中(一个或者多个)惯性传感器420在对象410外部(例如,在与对象110耦合的控制器内)。在一个实施例中,惯性传感器420包括一个或者多个陀螺仪和一个或者多个加速度计。陀螺仪使用角动量的原理来探测定向的改变(例如,俯仰、滚转和扭曲的改变)。加速度计测量沿着一条或者多条轴线的加速度。陀螺仪和加速度计可以是分离的传感器,或者可以被组合到单一传感器中。在一个实施例中,陀螺仪和加速度计是微机电系统(MEMS)装置。当对象410移动时,惯性传感器420收集对应于对象410的惯性数据(例如,加速度数据)并且将该数据传输到计算装置415。由惯性传感器420收集的惯性数据是处于对象410的参考系中的。
当对象410移动时,位置传感器405捕捉可以包括图像尺寸和图像地点信息的、对象410的位置测量。例如,在位置传感器是照相机的情形中,位置传感器405在对象移动时产生对象410的多个图像(当然,应该理解在本发明的一个实施例中,位置传感器405与对象410是否正在移动无关地产生对象410的图像)。位置传感器405然后将位置测量传输到计算装置415。在一个实施例中,在捕捉测量时,位置传感器405实时地将位置测量流传送到计算装置415。
在本发明的一个实施例中,当对象410被位置传感器405跟踪时,对象410的变化位置被用作计算装置415的输入以控制游戏、计算机应用等。例如,对象410的变化位置能够被用于控制第一人称或者第三人称视角游戏中的角色、在屏幕上移动鼠标光标,等等。在另一实施例中,从对象410接收的惯性数据被用作到计算装置415的输入。可替代地,可以与由位置传感器405获得的位置测量数据相组合地使用惯性数据以为计算装置415提供精确和准确的输入。
计算装置415可以是视频游戏控制台、个人计算机、游戏亭等。在本发明的一个实施例中,计算装置415包括惯性数据逻辑构件425、位置测量逻辑构件430和角度误差估计逻辑构件435,每一个构件执行不同的操作。
位置测量逻辑构件430分析从位置传感器405接收的位置测量数据(例如,图像)以寻找对象410的位置(例如,在位置传感器参考系150中)。例如,如果位置传感器405是数字照相机,则位置测量逻辑构件430分析所接收的图像以在图像中找到对象410。在本发明的一个实施例中,通过分析图像中代表对象410的像素组以找到对象的质心而确定对象410的图像地点。在一个实施例中,每一个像素的高斯分布能够得以计算并且被用于提供具有子像素准确度的质心地点。
在本发明的一个实施例中,位置测量逻辑构件430将位置地点信息转换成位置传感器405的三维坐标系统。可以使用以下等式将位置测量地点转换成三维坐标系统:
(等式1)
(等式2)
(等式3)
其中Xw 是对象参考系中的水平位置,Yw是对象参考系中的竖直位置,Xi是水平位置,Yi是竖直位置,Zw是在位置传感器和对象之间的距离,f是位置传感器的焦距(与视场成比例的值),R是对象的尺寸(例如,以mm为单位的球体半径),并且r是对象的尺寸(例如,以像素为单位的球体的投影的半径)。
一旦位置测量数据被转换到三维坐标系统中,位置测量逻辑构件430便求取地点信息关于时间的二阶导数以基于对象410随着时间改变的位置计算对象410在位置传感器405的三维坐标系统中的加速度。位置测量逻辑构件430然后向角度误差估计逻辑构件435提供所计算的位置传感器加速度数据。
惯性数据逻辑构件425处理惯性数据。在本发明的一个实施例中,对于将被校正的每一个角度,惯性数据逻辑构件425从惯性数据移除由重力引起的加速度,并且使用该角度的旋转估计将剩余的加速度从对象410的参考系变换到位置传感器405的参考系。所得到的数据(在它的经变换状态中)被传送到角度误差估计逻辑构件435。根据本发明的一个实施例,旋转估计是基于先前确定的角度值的。例如,在首次执行误差校正过程时,旋转估计是基于角度的初始值的。
在本发明的一个实施例中,仅当所接收的惯性数据满足特定阀值(例如,数据具有大于预定噪声基底的量值)时,才执行惯性数据从对象的参考系到位置传感器的参考系的变换。如果惯性数据的确满足该特定阀值,则将不进行变换并且将不继续误差校正过程。
在本发明的一个实施例中,所接收的惯性数据基于该惯性数据的量值而被加权。例如,任何误差校正的准确度通常随着所接收的加速度数据的量值的增加而增加。因此,与所接收的较低量值的加速度数据相比,(经由(一个或者多个)惯性传感器420)从对象410接收的较大量值的所接收的加速度数据被更多地加权。
角度误差估计逻辑构件435比较来自位置传感器逻辑构件430的、计算的加速度与来自惯性数据逻辑构件425的惯性数据以估计在跟踪系统400中的角度(例如,被跟踪对象410相对于位置传感器405的偏航角度、俯仰角度或者滚转角度)的误差量。应该理解,每一个角度均具有初始值(例如,在跟踪系统的校准期间计算的等)。例如,在校正偏航角度漂移的情形中,位置传感器405的俯仰是已知的并且在位置传感器405和被跟踪对象410之间的初始相对偏航已经得以确定。因为用户通常频繁地移动被跟踪对象410,并且这些移动能够以很多不同的加速度变化,所以这些初始角度需要频繁地得以更新。在本发明的一个实施例中,可以通过积分来自(一个或者多个)惯性传感器420的角速率测量而估计更新的角度。例如,在偏航角度的情形中,可以通过积分来自(一个或者多个)惯性传感器420的数据而连续地计算被跟踪对象410的偏航角度。然而,每次执行这个积分时,均存在轻微的误差。因此,随着时间过去,偏航角度值将漂移。因此,偏航角度在已知(初始偏航角度)的情况下开始但是将随着时间漂移。作为另一示例,在倾斜(俯仰和滚转角度)的情形中,如果对象410在特定量的时间(例如,通常小于一秒)中保持静止,则可以根据重力连续地确定对象410的倾斜。然而,如果对象410未被移动(例如,用户在特定量的时间中没有移动与对象410耦合的游戏控制器),则不可根据重力确定倾斜。
经变换的惯性数据能够由第一矢量集合表示,并且(根据从位置传感器405收集的位置数据计算的)位置传感器加速度数据能够被表示成第二矢量集合。位置传感器加速度数据和经变换的惯性数据代表同一对象运动的不同的测量。因此,位置传感器加速度数据和经变换的惯性数据包括匹配的矢量集合,其中在第一矢量集合中的每一个矢量均对应于在第二矢量集合中的矢量。对应的矢量具有相同的原点和相同的量值。相应地,经变换的惯性数据能够被与位置传感器加速度数据相比较以确定角度的误差量(如果该两个数据集合匹配,则旋转估计是准确的并且角度没有待校正的误差)。
在本发明的一个实施例中,为了确定由于漂移引起的角度(例如,偏航、俯仰或者滚转)的误差量,通过将位置传感器加速度数据的矢量旋转多个可能的角度来变换位置传感器加速度数据,并且所述变换被与经变换的惯性数据矢量相比较。可以尝试可能角度的很多不同的组合。在位置传感器加速度的经旋转的矢量和经变换的惯性数据矢量之间给出最小差值的、可能角度的组合是估计的正确角度。所估计的误差量是在通过积分来自(一个或者多个)惯性传感器420的角速率测量(惯性数据)而估计的角度和估计的正确角度之间的差值。可以使用梯度下降技术、部分最小二乘技术、最小二乘拟合技术,或者其它误差最小化技术来最小化为了找到估计的正确角度而测试的可能角度的组合的数目。
例如,构成对象运动的每一个矢量Vi在第一矢量集合中被表示成Vi1(位置传感器加速度数据矢量)并且在第二矢量集合中被表示成Vi2(经变换的惯性数据矢量)。对于在第一矢量集合中的所有的矢量Vi1,通过基于可能角度的三维旋转变换矢量Vi1,从而最后产生经变换的矢量Vi1’。然后对于每一个矢量Vi找到Vi1’和Vi2之间的差值Dθ。然后使用以下等式计算在第一矢量集合的经旋转矢量Vi1’和第二矢量集合的匹配矢量Vi2之间的差值之和:
(等式4)。
产生最小Dθ的角度θ是正确的估计的三维角度。因此,构成三维角度θ的可能角度代表估计的正确角度。可以由在通过积分来自(一个或者多个)惯性传感器410的角速率测量(惯性数据)估计的角度和估计的正确角度之间的差值确定估计的误差量。虽然已经描述了位置传感器加速度数据矢量被变换并且被与经变换的惯性数据矢量相比较,但是应该理解,旋转哪一个矢量集合是无关紧要的,因为在两个矢量集合之间的角度是相同的,而与旋转哪一个集合无关。
在本发明的另一实施例中,为了确定由于漂移引起的角度(例如,偏航、俯仰或者滚转)的误差量,对准经变换的惯性数据和位置传感器加速度数据的坐标系统的三维旋转得以计算。三维旋转能够由轴线和角度定义。能够如下地通过获取第一矢量集合的矢量Vi1与第二矢量集合的矢量Vi2的叉积而求解三维旋转的旋转轴线ê:
(等式5)
还能够获取Vi1和Vi2的点积以找到代表Vi1到Vi2上的投影的标量s,如下所示:
(等式6)
然后能够使用该旋转轴线和标量求解三维旋转的角度θ,如下所示:
(等式7)。
该三维旋转然后可以被分解到任一参考系中以确定围绕该参考系的每一条轴线的旋转角度。例如,该三维旋转能够被投影到x轴线上以确定围绕x轴线发生的旋转的量,并且能够被投影到y轴线上以确定围绕y轴线发生的旋转的量。如果该三维角度被投影到对象参考系中,则围绕与重力相对准的轴线的旋转是偏航,并且围绕垂直于重力并且在位置传感器的位置传感器平面中的轴线的旋转是俯仰。该三维旋转能够使用例如三个正交矩阵、旋转矩阵或者四元数(quaternion)而被分解成围绕参考系的轴线的旋转。
四元数在实数上形成四维赋范可除代数。四元数提供坐标变换的有用表示,因为它们能够比矩阵变换更快地得以计算,并且绝不会损失它们的正交性。旋转的四元数表示被写作四维矢量:
q = [q1q2q-3q4]T(等式8)
按照地球参考系,四元数的元素被如下表示:
q1 =
(等式9)
q2 =
(等式10)
q3 =
(等式11)
q4 = cos(
)(等式12)
其中êx、êy、和êz代表单位矢量,分别地代表沿着对象参考系的x、y和z轴线的单位矢量。
四元数充分地代表为了对准参考系而必需的偏航和俯仰旋转这两者。然而,为了提供更加直观的结果,可以根据以下公式将四元数转换成俯仰和偏航的Euler角:
偏航 = arctan
(等式13)
俯仰 = arcsin(2(q4q1-q2q3))(等式14)
分解的角度对应于估计的正确角度。能够通过计算在通过积分来自(一个或者多个)惯性传感器410的角速率测量(惯性数据)而估计的角度和估计的正确角度之间的差值而确定估计的误差量。
在本发明的另一实施例中,矢量集合可以被投影到平面上并且执行计算以计算二维角度。例如,位置传感器加速度数据矢量(Vi1)和经变换的惯性数据矢量(Vi2)被投影到平面上并且围绕该平面的法线的旋转得以计算,所述旋转在该平面中对准两个矢量集合。例如,对于偏航角度校正,经变换的惯性数据矢量(加速度数据矢量)和位置传感器加速度数据矢量被投影到XZ平面上,并且找到围绕Y轴线的旋转。通常,可以当至少一个角度是已知的时执行这个计算。例如,通常根据跟踪系统的初始校准,位置传感器405的俯仰是已知的(即,位置传感器405通常是固定的)。给定该平面的单位长度法向矢量?,可以使用以下等式来将位置传感器加速度数据矢量(Vi1)和经变换的惯性数据矢量(Vi2)投影到平面上:
投影矢量 (v-i1′) = vi1 – ?(vi1??) (等式15)
投影矢量 (v-i2′) = vi2 – ?(vi2??) (等式16)。
投影矢量然后围绕该平面的法线旋转。例如,等式9、10和11可以被用于分别地围绕x、y和z轴线旋转投影矢量。投影矢量然后被比较以确定估计的正确角度。角度的误差量是基于在估计的正确角度和根据惯性数据的积分计算的角度之间的差值计算的。
在估计误差得以确定之后,对于旋转估计进行校正。根据本发明的一个实施例,校正量是估计误差的一部分(例如,估计误差的百分比)。因此,根据校正量更新被用于将从对象410的(一个或者多个)传感器420接收的加速度从对象410的参考系变换到位置传感器405的参考系的旋转估计。
根据本发明的一个实施例,该校正量是自以前的校正起已经过去的时间量的函数。因此,在本发明的一个实施例中,自上一次校正起逝去的时间越多,则校正量越大。例如,如果用户在特定的时间量中(例如,5-10分钟)没有移动对象410(例如,如果用户已经放下与对象410耦合的控制器),则相当量的漂移可能已经发生。在此情形中,校正量可能是估计误差的大百分比,或者甚至是估计误差的全百分比。根据本发明的一个实施例,如果用户在特定的时间量中没有移动对象410,则将锁定用户而使其不能在跟踪系统中使用对象410,直至用户沿着给出最小阀值的加速度和位置数据的运动路径移动对象410为止。在本发明的一个实施例中,当用户需要移动对象410以产生最小阀值的加速度和位置数据时,对象410发射特定颜色的光和/或声音。
在本发明的另一实施例中,校正量是关于矢量集合的量值的函数。例如,如先前描述的,在本发明的一个实施例中,矢量被加权(矢量的量值越大,则权重越大)。矢量的权重越大,则校正量越大。当然,应该理解,可以使用以上实施例的任何组合(例如,估计误差的百分比、已经过去的时间量的函数,和/或关于与矢量量值相关联的权重的函数)。
图5示出根据一个实施例的多玩家环境500的示意图,其中使用视觉信息来确定由玩家持有的不同控制器的地点。在多玩家环境500中,位置传感器508(在下面被示意和描述为照相机)获得游戏场518的图像数据,并且该图像数据被分析以获得附接球的控制器C1、C2、C4和C5的地点。通过分析在所捕捉的图像中的相应球的形状和尺寸而估计距离dz1、dz2、dz4和dZ5。计算装置502使用所获得的坐标和距离来产生玩家在屏幕504中的表示、分别为化身512a和512b。用于良好的图像辨识的典型距离是大约10英尺(3米)。使用视觉辨识的一个优点在于,能够在不必改变控制器的情况下在系统中包括图像捕捉和图像辨识的改进。
图6是示意根据本发明的一个实施例的补偿跟踪系统中的角度误差的示例性方法600的流程图。该方法可以由处理逻辑执行,处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如在处理装置上运行的指令)或其组合。在一个实施例中,方法600由图4的计算装置415执行。
参考图6,在方框605处,当被跟踪对象410移动时计算装置415从位置传感器405接收位置数据。在本发明的一个实施例中,该计算装置接收在成像装置的二维参考系中的对象的图像。流程从方框605移动到方框610。
在方框610处,当被跟踪对象移动时计算装置415从被跟踪对象410接收惯性数据(例如,经由(一个或者多个)惯性传感器420)。惯性数据是处于对象410的参考系中的。流程从方框610移动到方框615。在方框615处,计算装置415将位置数据转换到位置传感器405的坐标系统。流程从方框615移动到方框620,在此处计算装置415根据位置数据计算对象410的位置传感器加速度数据。例如,计算装置415可以获取位置数据关于时间的二阶导数以计算对象410的位置传感器加速度数据。在本发明的一个实施例中,当位置传感器数据被接收时实时地计算位置传感器加速度数据。可替代地,可以周期性地(例如,每10毫秒、每半秒等),或者当运动结束时计算位置传感器加速度数据。流程从方框620移动到方框625。
在方框625处,计算装置415使用旋转估计将所接收的惯性数据变换到位置传感器的参考系中。根据本发明的一个实施例,旋转估计是基于先前确定的角度值的。例如,在首次执行误差校正过程时,旋转估计是基于角度的初始值(例如,在跟踪系统的配置期间确定)的。流程从方框625移动到方框630。
在方框630处,计算装置415确定在经变换的惯性数据和位置传感器加速度数据之间的误差量。图7是示意根据本发明的一个实施例的确定在经变换的惯性数据和位置传感器加速度数据之间的误差量的一种方法的流程图。因此,根据本发明的一个实施例,图7的操作是在方框630内执行的。在方框705处,计算装置415按照多个可能的角度变换位置传感器加速度矢量。流程从方框705移动到方框710,在此处计算装置415确定在经变换的位置传感器加速度矢量和经变换的惯性数据矢量之间的差值。流程从方框710移动到方框715,在此处计算装置415将这些矢量之间的最小差值设置为估计的正确角度。流程从方框715移动到方框720,在此处计算装置415基于在估计的正确角度和通过积分来自(一个或者多个)惯性传感器420的角速率测量(惯性数据)而导出的角度之间的差值来确定角度的误差量。
图8是示意根据本发明的一个实施例的确定在经变换的惯性数据和位置传感器加速度数据之间的误差量的另一方法的流程图。因此,根据本发明的一个实施例,图8的操作是在方框630内执行的。在方框805处,计算装置415确定对准经变换的惯性数据和位置传感器加速度数据的坐标系统的三维旋转。流程从方框805移动到方框810,在此处计算装置415将三维角度分解成正被校正的角度。流程从方框810移动到方框815,在此处计算装置415将分解的角度设置成估计的正确角度。流程从方框815移动到方框820,在此处计算装置415基于在估计的正确角度和通过积分来自(一个或者多个)惯性传感器420的角速率测量(惯性数据)而导出的角度之间的差值来确定角度的误差量。
图9是示意根据本发明的一个实施例的确定在经变换的惯性数据和位置传感器加速度数据之间的误差量的又一方法的流程图。因此,根据本发明的一个实施例,图9的操作是在方框630内执行的。在方框905处,计算装置415将位置传感器加速度数据矢量和经变换的惯性数据矢量投影到同一二维平面上(例如,使用上述等式15和16)。流程从方框905移动到方框910,在此处计算装置415围绕平面的法线旋转投影(例如,使用上述等式9、10或者11之一)。流程从方框910移动到方框915,在此处计算装置415基于在估计的正确角度和通过积分惯性数据计算的角度之间的差值而确定角度的误差量。
回过来参考图6,流程从方框630移动到方框635。在方框635处,计算装置415响应于所确定的误差更新旋转估计。因此,如在方框625中描述的被用于将所接收的惯性数据变换到位置传感器的参考系中的旋转估计响应于所确定的误差量而被更新。根据本发明的一个实施例,更新的旋转估计的量是估计误差的一部分(例如,所确定的估计误差的百分比)。
根据本发明的一个实施例,校正量是自先前的旋转估计更新起已经过去的时间量的函数。因此,在本发明的一个实施例中,自上一次更新起逝去的时间越多,则校正量越大。例如,如果用户在特定的时间量中(例如,5-10分钟)没有移动对象410(例如,如果用户已经放下与对象410耦合的控制器),则相当量的漂移可能已经发生。在此情形中,校正量可以是估计误差的大百分比,或者甚至是估计误差的全百分比。根据本发明的一个实施例,如果用户在特定的时间量中没有移动对象410,则将用户锁定而使其不能在跟踪系统中使用对象410,直至用户沿着给出最小阀值的加速度和位置数据的运动路径移动对象410为止。在本发明的一个实施例中,当用户需要移动对象410以产生最小阀值的加速度和位置数据时,对象410发射特定颜色的光和/或声音。
在本发明的另一实施例中,校正量是关于矢量集合的量值的函数。例如,如先前描述的,在本发明的一个实施例中,矢量被加权(矢量的量值越大,则权重越大)。矢量的量值越大,则矢量受噪声的影响越小。矢量的权重越大,则校正量越大。因此,通过对矢量加权,估计误差的准确度增加。当然,应该理解,可以使用以上实施例的任何组合(例如,估计误差的百分比、已经过去的时间量的函数和/或关于与矢量量值相关联的权重的函数)。
图10示意根据本发明的一个实施例的可以被用于确定控制器地点的硬件和用户接口。图10概略地示意根据本发明的一个实施例的Sony? Playstation 3?娱乐装置的总体系统架构,该娱乐装置是可以兼容用于实现三维控制器定位系统的控制台。提供了系统单元1400,其中各种外围装置能够连接到系统单元1400。系统单元1400包括:Cell处理器1428;Rambus?动态随机存取存储器(XDRAM)单元1426;带有专用视频随机存取存储器(VRAM)单元1432的Reality Synthesizer(现实合成器)图形单元1430;和I/O桥1434。系统单元1400还包括可通过I/O桥1434访问的用于从盘1440a读取的Blu Ray? Disk BD-ROM?光盘读取器1440和可移除吸入式硬盘驱动器(HDD)1436。可选地,系统单元1400还包括类似地可通过I/O桥1434访问的、用于读取紧凑式闪存记忆卡、Memory Stick?记忆卡等的记忆卡读取器1438。
I/O桥1434还连接到多个通用串行总线(USB)2.0端口1424;吉比特以太网端口1422;IEEE 802.11b/g无线网络(Wi-Fi)端口1420;和能够支持高达七个蓝牙连接的蓝牙?无线链路端口1418。
在操作中,I/O桥1434处理所有的无线、USB和以太网数据,包括来自一个或者多个游戏控制器1402-1403的数据。例如当用户正在玩游戏时,I/O桥1434经由蓝牙链路从游戏控制器1402-1403接收数据并且将其引导至Cell处理器1428,Cell处理器1428相应地更新当前游戏状态。
除了游戏控制器1402-1403之外,无线、USB和以太网端口还提供用于其它外围装置的连接性,例如:遥控器1404;键盘1406;鼠标1408;便携式娱乐装置1410例如Sony Playstation Portable?娱乐装置;摄影机例如EyeToy?摄影机1412;麦克风耳机1414;和麦克风1415。这种外围装置因此在原则上可以被以无线方式连接到系统单元1400;例如便携式娱乐装置1410可以经由Wi-Fi专设连接通信,而麦克风耳机1414可以经由蓝牙链路通信。
提供这些接口意味着Playstation 3装置还可能与其它外围装置(例如数字视频记录机(DVR)、机顶盒、数字照相机、便携式媒体播放器、网络电话、移动电话、打印机和扫描仪)相兼容。
另外,遗留记忆卡读取器1416可以经由USB端口1424而连接到系统单元,从而使得能够读取由Playstation?或者Playstation 2?装置使用的那种记忆卡1448。
游戏控制器1402-1403在操作中用于经由蓝牙链路与系统单元1400无线通信,或者被连接到USB端口,由此还提供用于对游戏控制器1402-1403的电池充电的功率。游戏控制器1402-1403还能够包括存储器、处理器、记忆卡读取器、永久存储器(例如闪存)、光发射器(例如LED或者红外灯)、用于超声通信的麦克风和扬声器、声室、数字照相机、内部时钟、可辨识形状(例如面向游戏控制台的球形截面),和使用例如蓝牙?、WiFi?等协议的无线通信。
如先前在图1A-4A中描述的,游戏控制器1402是被设计成用双手使用的控制器,并且游戏控制器1403是带有球附接的单手控制器。除了一个或者多个模拟操纵杆和传统的控制按钮之外,游戏控制器容许三维地点确定。因此,除了或者替代传统按钮或者操纵杆命令,游戏控制器的用户的姿态和移动可以被转变为游戏的输入。可选地,其它以无线方式启用的外围装置(例如Playstation?Portable装置)可以被用作控制器。在Playstation?Portable装置的情形中,可以在装置的屏幕上提供附加的游戏或者控制信息(例如,控制指令或者生命数目)。还可以使用其它的可替代或者补充性控制装置,例如跳舞垫(未示出)、光枪(未示出)、方向盘和踏板(未示出)或者定制控制器,例如用于快速响应答问游戏(也未示出)的单一或者几个大的按钮。
遥控器1404也在操作中用于经由蓝牙链路与系统单元1400无线通信。遥控器1404包括适用于Blu Ray?Disk BD-ROM读取器1440的操作和盘内容导航的控件。
除了传统的预记录和可记录CD,以及所谓的Super Audio(超级音频) CD,Blu Ray? Disk BD-ROM读取器1440在操作中用于读取与Playstation和Playstation 2装置相兼容的CD-ROM。除了传统的预记录和可记录DVD,读取器1440还在操作中用于读取与Playstation 2和Playstation 3装置相兼容的DVD-ROM。读取器1440进一步在操作中用于读取与Playstation 3装置相兼容的BD-ROM,以及传统的预记录和可记录Blu-Ray Disk。
系统单元1400在操作中用于通过音频和视频连接器向显示和声音输出装置1442(例如具有显示器1444和一个或者多个扬声器1446的监视器或者电视机)供应由Playstation 3装置经由Reality Synthesizer图形单元1430产生或者解码的音频和视频。音频连接器1450可以包括传统的模拟和数字输出,而视频连接器1452可以不同地包括分量视频、S-视频、合成视频和一个或者多个高清晰度多媒体接口(HDMI)输出。因此,视频输出可以具有例如PAL或者NTSC的格式,或者具有720p、1080i或者1080p的高清晰度。
音频处理(产生、解码等等)由Cell处理器1428执行。Playstation 3装置的操作系统支持Dolby?5.1环绕声、Dolby? Theatre Surround (影院环绕声)(DTS)和来自Blu-Ray?盘的7.1环绕声的解码。
在本实施例中,摄影机1412包括单一电荷耦合器件(CCD)、LED指示器,和基于硬件的实时数据压缩和编码设备从而压缩的视频数据可以被以合适的格式(例如基于图像内MPEG(活动图像专家组)标准)传输以由系统单元1400解码。照相机LED指示器被布置成响应于来自系统单元1400的适当的控制数据而进行照明,以例如表示不利的光照状况。摄影机1412的实施例可以经由USB、蓝牙或者Wi-Fi通信端口而不同地连接到系统单元1400。摄影机的实施例可以包括一个或者多个相关联的麦克风并且还能够传输音频数据。在摄影机的实施例中,CCD可以具有适用于高清晰度视频捕捉的分辨率。在使用中,由摄影机捕捉的图像可以例如被结合在游戏内或者被解释成游戏控制输入。在另一实施例中,该照相机是适用于探测红外光的红外照相机。
通常,为了使得经由系统单元1400的通信端口之一与例如摄影机或者遥控器的外围装置进行成功的数据通信,应该提供适当的软件组件(例如装置驱动器)。装置驱动器技术是众所周知的,并且除了提到技术人员将知晓在所描述的本实施例中可能需要装置驱动器或者类似的软件接口之外,这里将不予详细描述。
图11示意根据本发明的一个实施例的可以被用于处理指令的另外的硬件。图10的Cell处理器1428具有包括四个基本构件的架构:包括存储器控制器1560和双总线接口控制器1570A、B的外部输入和输出结构;被称作控制处理元件(Power Processing Element)的主处理器1550;被称作协处理元件(SPE)的八个协处理器1510A-H;和被称作元件互连总线的、连接以上构件的圆形数据总线1580。与Playstation 2装置的Emotion Engine(情感引擎)的6.2 GFLOP相比,Cell处理器的总浮点性能是218 GFLOPS。
控制处理元件(PPE)1550基于以3.2GHz的内部时钟运行的双路同时多线程的符合Power 1470的PowerPC核(PPU)1555。它包括512 kB 的2级(L2)高速缓冲存储器和32 kB的1级(L1)高速缓冲存储器。PPE 1550每时钟周期能够实现八个单位置操作,从而转换成在3.2GHz下的25.6 GFLOP。PPE 1550的主要作用是充当处理大部分的计算工作负荷的协处理元件1510A-H的控制器。在操作中,PPE 1550维持作业队列,为协处理元件1510A-H调度作业并且监视它们的进展。因此每一个协处理元件1510A-H运行其作用是取回作业,执行该作业并且与PPE 1550同步的内核。
每一个协处理元件(SPE)1510A-H包括相应的协处理单元(SPU)1520 A-H,和相应的存储器流控制器(MFC)1540A-H,所述相应的存储器流控制器(MFC)1540A-H又包括相应的动态存储器存取控制器(DMAC)1542A-H、相应的存储器管理单元(MMU)1544A-H和总线接口(未示出)。每一个SPU 1520A-H是以3.2GHz进行时钟控制并且包括原则上可扩展到4GB的256kB本地RAM 1530A-H的RISC处理器。每一个SPE给出理论上为25.6 GFLOPS的单精度性能。在单一时钟周期中,SPU能够在4个单精度浮点项、4个32位数字、8个16位整数或者16个8位整数上操作。在同一时钟周期中,它还能够执行存储器操作。SPU 1520A-H并不直接访问系统存储器XDRAM 1426;由SPU 1520 A-H形成的64-位地址被传送到MFC1540A-H,MFC1540A-H指令它的DMA控制器1542A-H经由元件互连总线1580和存储器控制器1560访问存储器。
元件互连总线(EIB)1580是连接以上处理器元件(即PPE 1550、存储器控制器1560、双总线接口1570A、B和8 个SPE 1510A- H,总共12个参与者)的、在Cell处理器1428内部的、在逻辑上为圆形的通信总线。参与者能够同时以每时钟周期8字节的速率读写总线。如先前指出的,每一个SPE 1510A-H均包括用于调度较长的读或者写序列的DMAC 1542A-H。EIB包括四个通道,沿着顺时针和逆时针方向各两个。因此对于十二个参与者,在任何两个参与者之间的最长的步进式数据流是沿着适当方向的六步。在通过参与者之间的仲裁而充分利用的情形中,用于12个时隙的理论峰值瞬时EIB带宽因此是96B每时钟。这等于在3.2GHz的时钟速率下的307.2GB/s(吉字节每秒)的理论峰值带宽。
存储器控制器1560包括由Rambus Incorporated研制的XDRAM接口1562。存储器控制器以25.6GB/s的理论峰值带宽与Rambus XDRAM 1426对接。
双总线接口1570A、B包括Rambus FlexIO?系统接口1572A、B。该接口被组织成12个通道,每一个通道均具有8位宽度,其中五条路径是进入的并且七条路径是外出的。这经由控制器170A在Cell处理器与I/O桥700之间以及经由控制器170B在Cell处理器与Reality Simulator(现实模拟器)图形单元200之间提供了62.4GB/s(36.4GB/s外出,26GB/s进入)的理论峰值带宽。
由Cell处理器1428发送到Reality Simulator图形单元1430的数据通常将包括显示列表,该显示列表是用于绘制顶点、向多边形施加纹理、指定光照条件等等的命令的序列。
虽然在图中的流程图示出由本发明的特定实施例执行的操作的特定次序,但是应该理解这种次序是示例性的(例如,可替代实施例可以以不同的次序执行操作、组合特定的操作、交迭特定的操作等)。
虽然已经参考校正单一角度误差(例如,偏航、俯仰或者滚转)描述了本发明的实施例,但是应该理解,在本发明的其它实施例中,可以同时校正多个角度误差。
应该理解以上说明旨在是示意性的而非限制性的。在阅读和理解以上说明后,对于本领域技术人员而言,很多其它的实施例将是明显的。虽然已经参考具体的示例性实施例描述了本发明,但是将会认识到,本发明不限于所描述的实施例,而是能够以在所附权利要求的精神和范围内的修改和更改进行实践。相应地,应该在示意性的意义上而非限制性的意义上考虑说明书和附图。因此,应该参考所附权利要求、连同这种权利要求有资格具有的等价形式的全部范围一起确定本发明的范围。