信息处理系统、信息处理装置以及姿势计算方法

文档序号:6491552阅读:154来源:国知局
信息处理系统、信息处理装置以及姿势计算方法
【专利摘要】提供一种信息处理系统、信息处理装置以及姿势计算方法。信息处理装置计算具备磁传感器的输入部的姿势。信息处理装置反复获取由磁传感器检测出的检测磁矢量。信息处理装置反复估计球状体的中心位置,该球状体具有基于多个检测磁矢量的各终点位置而估计出的曲面。基于表示从中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出输入部的姿势。在每次获取到检测磁矢量时,信息处理装置对中心位置进行更新,使得从中心位置到在该中心位置的估计中使用的各检测磁矢量的终点为止的各长度中的至少一部分长度分别接近该各长度的平均值。
【专利说明】信息处理系统、信息处理装置以及姿势计算方法
【技术领域】
[0001]本发明涉及一种用于计算输入部的姿势的信息处理系统、信息处理装置以及姿势计算方法。
【背景技术】
[0002]以往,存在使用磁传感器来计算装置的姿势的技术。例如,能够通过利用磁传感器检测磁场的朝向来计算出装置相对于磁场的朝向的姿势。

【发明内容】

[0003]发明要解决的问题
[0004]在使用磁传感器来计算姿势的情况下,期望高精确度地计算姿势。
[0005]因此,本发明的目的在于提供一种能够高精确度地计算装置的姿势的信息处理系统、信息处理装置以及姿势计算方法。
_6] 用于解决问题的方案
[0007]为了解决上述的问题,本发明采用了下面的(1(13)的结构。
[0008](I)
[0009]本发明的一例是计算具备磁传感器的输入部的姿势的信息处理系统。信息处理系统具备获取单元、中心估计单元以及姿势计算单元。
[0010]获取单元反复获取由磁传感器检测出的检测磁矢量。中心估计单元估计球状体的中心位置,该球状体具有基于多个检测磁矢量的各终点位置而估计出的曲面。姿势计算单元基于表示从中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出输入部的姿势。
[0011]在每次获取到检测磁矢量时,中心估计单元对中心位置进行更新,使得从中心位置到在该中心位置的估计中使用的各检测磁矢量的终点为止的各长度中的至少一部分长度分别接近该各长度的平均值。
[0012]根据上述(I)的结构,在每次获取到检测磁矢量时,对中心位置进行更新使得各长度接近均等,因此能够根据最新的检测磁矢量来计算更正确的中心位置。由此,能够更高精确度地计算输入部的姿势。另外,在每次获取到检测磁矢量时对中心位置进行更新,因此能够在获取到足够多的检测磁矢量之前开始中心位置的计算,能够提早开始姿势的计算。
[0013](2)
[0014]中心估计单元根据多个检测磁矢量满足了规定的条件的情况,来基于该多个检测磁矢量估计中心位置。
[0015]根据上述(2)的结构,根据满足了规定的条件的情况来估计中心位置,因此能够降低计算出不正确到无法在姿势的计算中使用的程度的中心位置的可能性,能够更高精确度地计算姿势。
[0016](3)[0017]中心估计单元也可以以下面的情况作为规定的条件:以包括多个检测磁矢量的各终点位置的方式决定出的区域大于规定的大小。
[0018]根据上述(3)的结构,在基于多个检测磁矢量的各终点位置的区域大于规定的大小的情况下计算中心位置。由此,能够高精确度地计算中心位置,进而能够更高精确度地计算姿势。
[0019](4)
[0020]中心估计单元也可以以下面的情况作为规定的条件:多个检测磁矢量的各朝向所形成的范围大于规定的范围。
[0021]根据上述(4)的结构,在多个检测磁矢量的各朝向所形成的范围大于规定的范围的情况下计算中心位置。由此,能够高精确度地计算中心位置,进而能够更高精确度地计算姿势。
[0022](5)
[0023]中心估计单元也可以根据满足了规定的条件的情况,来将最初的中心位置设定在基于多个检测磁矢量的各终点位置而估计出的曲面的凹侧的位置处。
[0024]根据上述(5)的结构,最初的中心位置被设定在上述曲面的凹侧的位置处。由此,通过在之后对中心位置进行更新,能够更可靠地使中心位置收敛到正确的位置。
[0025](6)
[0026]中心估计单元也可以将最初的中心位置设定在以包括多个检测磁矢量的各终点位置的方式决定出的区域的内部。
[0027]根据上述(6)的结构,最初的中心位置被设定于以包括多个检测磁矢量的各终点位置的方式决定出的区域的内部。由此,通过在之后对中心位置进行更新,能够使中心位置逐渐接近球状体的实际的中心位置。根据上述,能够降低将中心位置设定于偏离到难以通过更新接近球状体的实际中心的程度的位置的可能性,能够高精确度地估计中心位置。
[0028](7)
[0029]中心估计单元也可以将最初的中心位置设定在包括多个检测磁矢量的各终点位置且大小为最小的长方体的内部。
[0030]根据上述(7)的结构,能够容易地将最初的中心位置设定在以包括多个检测磁矢量的各终点位置的方式决定出的区域的内部。
[0031](8)
[0032]中心估计单元也可以将最初的中心位置设定在多个检测磁矢量的各终点位置的重心位置处。
[0033]根据上述(8)的结构,能够可靠地将最初的中心位置设定在上述曲面的凹侧的位置处。
[0034](9)
[0035]姿势计算单元也可以至少以满足了规定的条件为条件来进行基于方向矢量的输入部的姿势的计算。
[0036]根据上述(9)的结构,能够降低使用不正确的中心位置计算出不正确的姿势的可能性,能够更高精确度地计算姿势。
[0037](10)[0038]也可以是,中心位置在更新前后的变化量越大,姿势计算单元使新获取到的检测磁矢量的影响相对越小来计算姿势。
[0039]根据上述(10)的结构,在中心位置的变化量(移动量)大的情况下,新的检测磁矢量对姿势计算的影响变小。在此,在中心位置的变化量大的情况下,认为中心位置有可能不正确。因而,根据上述(10)的结构,能够降低由于使用有可能不正确的中心位置而计算出不正确的姿势的可能性,进而能够高精确度地计算姿势。
[0040](11)
[0041]也可以是,从当前的中心位置到在该中心位置的估计中使用的各检测磁矢量的终点位置为止的各长度的偏差越大,姿势计算单元使新获取到的检测磁矢量的影响相对越小来计算姿势。
[0042]根据上述(11)的结构,在上述的偏差大的情况下,新的检测磁矢量对姿势计算的影响变小。在此,在上述的偏差大的情况下,认为中心位置有可能不正确。因而,根据上述
(11)的结构,能够降低由于使用有可能不正确的中心位置而计算出不正确的姿势的可能性,进而能够高精确度地计算姿势。
[0043](12)
[0044]另外,本发明的另一例是计算具备磁传感器的输入部的姿势的信息处理系统。信息处理系统具备获取单元、中心估计单元以及姿势计算单元。
[0045]获取单元反复获取由磁传感器检测出的检测磁矢量。中心估计单元反复估计球状体的中心位置,该球状体具有基于多个检测磁矢量的各终点位置而估计出的曲面。姿势计算单元基于表示从中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出输入部的姿势。
[0046]获取到的新的检测磁矢量的终点位置距在中心位置的估计中使用的各检测磁矢量的终点位置越远,姿势计算单元使新的检测磁矢量的影响相对越小来计算姿势。
[0047]根据上述(12)的结构,在新获取到的检测磁矢量的终点位置距到此为止获取到的各检测磁矢量的终点位置相对远的情况下,信息处理装置使新的检测磁矢量的影响相对小来计算输入部的姿势。由此,在上述的情况下,能够降低基于不正确的方向矢量计算出姿势的可能性。由此,能够高精确度地计算输入部的姿势。
[0048]另外,根据上述(12)的结构,在新获取到的检测磁矢量的终点位置距到此为止获取到的各检测磁矢量的终点位置相对近的情况下,信息处理装置使新的检测磁矢量的影响相对大来计算输入部的姿势。由此,即使在估计出的中心位置未充分收敛到实际的中心位置附近的情况下,也能够使用能够预计为某种程度上正确的方向矢量来计算姿势。即,根据上述,即使在估计出的中心位置未充分收敛到实际的中心位置附近的情况下,也能够在不会计算出不正确的姿势的范围内使用方向矢量来进行姿势计算。因而,根据上述(12)的结构,能够提早计算出姿势。
[0049](13)
[0050]另外,本发明的另一例是计算具备磁传感器的输入部的姿势的信息处理系统。信息处理系统具备获取单元、存储控制单元、中心估计单元以及姿势计算单元。
[0051]获取单元获取由磁传感器检测出的检测磁矢量。存储控制单元根据从基于检测磁矢量确定出的基准位置向检测磁矢量的终点位置的方向,来将检测磁矢量进行分类并存储在存储部中。中心估计单元估计球状体的中心位置,该球状体具有基于从分类后的多个检测磁矢量中针对一个分类至少提取一个检测磁矢量而得到的各检测磁矢量的终点位置而估计出的曲面。姿势计算单元基于表示从中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出输入部的姿势。
[0052]根据上述(13)的结构,根据从基准位置向检测磁矢量的终点的方向对检测磁矢量进行分类。在此,通过使用朝向各种方向的方向矢量,易于更正确地计算出要估计的中心位置。即,通过如上述(13)的结构那样根据从基准位置向检测磁矢量的终点的方向对检测磁矢量进行分类,能够使用朝向各种方向的检测磁矢量来估计中心位置。由此,能够更正确地估计中心位置,能够高精确度地计算输入部的姿势。
[0053]此外,本发明的其它一例既可以是具备与上述(I广(13)的信息处理系统中的各单元同等的单元的信息处理装置,也可以是在上述(I广(13)中执行的姿势计算方法。
[0054]发明的效果
[0055]根据本发明,在每次获取到检测磁矢量时对中心位置进行更新等,由此能够更高精确度地计算出输入部的姿势。
【专利附图】

【附图说明】
[0056]图1是表示本实施方式所涉及的信息处理系统的一例的框图。
[0057]图2是表示检测磁矢量和方向矢量的一例的图。
[0058]图3是表示所设定的初始中心位置的一例的图。
[0059]图4是表示通过更新处理进行更新前后的中心位置的一例的图。
[0060]图5是将图4所示的区域的一部分放大后得到的图。
[0061]图6是表示使用方向矢量来校正输入装置2的姿势的方法的一例的图。
[0062]图7是表示第一校正率的设定方法的一例的图。
[0063]图8是表示第二校正率的设定方法的一例的图。
[0064]图9是表示将可靠度计算得高的情况下的中心位置的一例的图。
[0065]图10是表示缓冲器的结构的一例的图。
[0066]图11是表示检测磁矢量的分类方法的一例的图。
[0067]图12是表示配置在三维空间中的各分类矢量的终点位置的一例的图。
[0068]图13是表示在信息处理系统的存储部中设定的数据区域的一例的图。
[0069]图14是表示由信息处理装置的CPU执行的信息处理的流程的一例的流程图。
[0070]图15是表示基于检测磁矢量的姿势计算处理的详细流程的一例的流程图。
[0071]图16是表示校正处理的详细流程的一例的流程图。
[0072]附图标记说明
[0073]1:信息处理系统;2:输入装置;3:信息处理装置;4:磁传感器;5:陀螺传感器(gyrosensor) ;6:加速度传感器;7:操作部;8 =CPU ;9:存储器;12:信息处理程序;27:缓冲器区域。
【具体实施方式】
[0074][1.信息处理系统的结构][0075]下面,说明本实施方式的一例所涉及的信息处理系统、信息处理装置、信息处理程序以及姿势计算方法。图1是表示本实施方式所涉及的信息处理系统的一例的框图。在图1中,信息处理系统I具备输入装置2和信息处理装置3。本实施方式中的信息处理系统I使用对与输入装置2的姿势相应的值进行检测的传感器(磁传感器等)来计算输入装置2的姿势。
[0076]信息处理系统I包括输入装置2。输入装置2是便携式的装置,换言之是用户所能够把持的装置。输入装置2能够与信息处理装置3进行通信。输入装置2将表示对输入装置2进行的操作的操作数据发送到信息处理装置3。输入装置2与信息处理装置3之间的通信既可以是无线发送也可以是有线通信。
[0077]输入装置2具有磁传感器4。磁传感器4检测磁场的大小和方向。在此,将表不由磁传感器4检测出的磁场的大小和方向的矢量称为检测磁矢量。输入装置2将表示检测磁矢量的数据作为操作数据发送到信息处理装置3。磁传感器4在本实施方式中以三维的值来检测磁场的大小和方向,但是也可以以二维以上的值来检测磁场的大小和方向。在本说明书中,详细说明基于磁传感器4的检测结果来计算姿势的方法。
[0078]输入装置2具备陀螺传感器5。陀螺传感器5检测与以输入装置2的规定轴向(在本实施方式中为三个轴向,但是一个轴以上即可)为轴的旋转有关的角速度。另外,输入装置2具有加速度传感器6。加速度传感器6检测与输入装置2的规定轴向(在本实施方式中为三个轴向,但是一个轴以上即可)有关的加速度。输入装置2将由陀螺传感器5和加速度传感器6检测出的数据作为操作数据发送到信息处理装置3。陀螺传感器5和加速度传感器6用于计算输入装置2的姿势。即,在本实施方式中,信息处理系统I能够通过除使用磁传感器4的方法以外的其它方法来计算输入装置2的姿势。此外,在其它实施方式中,信息处理系统I也可以不具备通过上述其它方法来计算姿势的手段(陀螺传感器5和加速度传感器6)。另外,上述其它方法可以是任何方法,例如,信息处理系统I也可以基于由能够拍摄输入装置2的照相机、或者设置于输入装置2中的照相机拍摄到的图像来计算输入装置2的姿势。
[0079]输入装置2具有操作部7。操作部7是按钮(按键)、摇杆以及触摸面板等任意的操作装置。输入装置2将表示对操作部7进行的操作的数据作为操作数据发送到信息处理装置3。
[0080]此外,输入装置2是具备输出与输入装置2的姿势相应的值的传感器的任意的结构即可。例如在其它实施方式中,既可以构成为不具备图1所示的结构的若干结构,也可以具备除上述以外的其它结构。
[0081]信息处理系统I包括信息处理装置3。信息处理装置3接收从输入装置2发送的操作数据(检测磁矢量的数据),基于该数据来计算输入装置2的姿势。另外,在本实施方式中,信息处理装置3将计算出的姿势作为输入来执行规定的信息处理。该规定的信息处理可以是任何处理,例如也可以是游戏处理(根据姿势来控制配置于虚拟空间中的游戏对象的动作的处理)。另外,信息处理装置3也可以通过上述信息处理来生成图像,使所生成的图像显示在显示装置上。显示装置既可以与输入装置2和信息处理装置3相独立地设置,也可以是信息处理装置3或输入装置2所具有的显示部。
[0082]在本实施方式中,信息处理装置3具有CPU (控制部)8和存储器9,由CPU8使用存储器9来执行规定的信息处理程序,由此实现信息处理装置3的各种功能(图14~图16所示的信息处理)。此外,信息处理装置3只要能够执行计算输入装置2的姿势的处理就可以是任何结构。
[0083] 此外,在其它实施方式中,信息处理系统I也可以由一个装置构成。即,也可以将输入装置(输入部)2与信息处理装置3构成为一体的装置。例如,信息处理系统I也可以是智能电话、便携式游戏装置等的便携终端。
[0084][2.姿势计算的方法]
[0085]下面,说明基于磁传感器4的检测结果来计算输入装置2的姿势的方法。在本实施方式中,信息处理系统I (信息处理装置3)基于由磁传感器4检测出的检测磁矢量来计算姿势。在此,由磁传感器4检测出的磁场被分为磁场的方向不依赖于输入装置2的姿势的分量以及磁场的方向依赖于输入装置2的姿势的分量。磁场的方向不依赖于输入装置2的姿势的分量是指例如由输入装置2本身产生的磁场(输入装置2所带有的磁性)。关于该分量,即使输入装置2的姿势发生变化,磁传感器4所检测出的方向也不变化。
[0086]另一方面,磁场的方向依赖于输入装置2的姿势的分量是指基于例如地磁场等在输入装置2的周围的空间产生的磁场的分量。关于该分量,与输入装置2的姿势发生变化的情况相应地,磁传感器4所检测出的方向发生变化。因而,信息处理装置3基于检测磁矢量来计算(估计)依赖于输入装置2的姿势的分量,由此计算输入装置2的姿势。下面,将基于检测磁矢量计算出的表示依赖于输入装置2的姿势的分量的矢量、即表示与姿势相应的方向的矢量称为“方向矢量”。
[0087]图2是表示检测磁矢量和方向矢量的一例的图。此外,在图2中,在以检测磁矢量Vd的起点为原点的xyz坐标系中示出各矢量。上述检测磁矢量Vd的大小和方向与输入装置2的姿势的变化相应地发生变化。在输入装置2朝向所有方向地改变姿势的情况下,检测磁矢量Vd的终点(顶端)如图2所示那样形成球状体的面。该球状体理想的是球体,但是严格地说也存在不会成为球体而稍有变形(变为椭圆球状)的情况(即,方向矢量的大小根据输入装置2的姿势而发生少许变化)。下面,将上述的球状体称为“磁球体”。
[0088]在此,检测磁矢量Vd能够分为矢量Vo和矢量Va。矢量Vo是以原点(检测磁矢量Vd的起点)为起点、以磁球体的中心位置P为终点的矢量,表示不依赖于输入装置2的姿势的分量。另一方面,矢量Va是以中心位置P为起点、以检测磁矢量Vd的终点为终点的矢量。矢量Va是表示依赖于输入装置2的姿势的分量的矢量、即方向矢量。
[0089]据以上,能够通过估计磁球体的中心位置P并根据它计算出方向矢量Va,来计算输入装置2的姿势。即,信息处理系统I (信息处理装置3)获取由磁传感器4检测出的检测磁矢量Vd。然后,估计球状体(磁球体)的中心位置P,该球状体具有基于多个检测磁矢量Vd的各终点位置而估计出的曲面。进一步基于表示从中心位置P向检测磁矢量Vd的终点位置的方向的方向矢量Va来计算输入装置2的姿势。下面,进一步详细地说明用于计算输入装置2的姿势的姿势计算处理。
[0090][3.姿势计算处理]
[0091](3-1:姿势计算处理的流程)
[0092]在本实施方式中,在姿势计算处理中,信息处理装置3执行下面的第一处理~第三处理。[0093].第一处理:反复获取检测磁矢量并在获取到的多个检测磁矢量满足规定的条件的情况下估计磁球体的中心位置(初始中心位置)的处理
[0094].第二处理:在估计出初始中心位置之后基于获取到的检测磁矢量对中心位置进行更新的处理
[0095].第三处理:在计算出初始中心位置之后使用基于中心位置决定出的方向矢量来计算输入装置2的姿势的处理
[0096]姿势计算处理可以在任何时刻开始,但是在本实施方式中,根据用户进行了规定的操作的情况,来开始该姿势计算处理。当开始姿势计算处理时,首先执行上述第一处理。在第一处理中,信息处理装置3从输入装置2反复获取检测磁矢量。另外,信息处理装置3在获取到的多个检测磁矢量满足规定的条件的情况下,基于该多个检测磁矢量来估计初始中心位置。此外,初始中心位置是指在姿势计算处理中最初估计(计算)出的中心位置。
[0097]当通过上述第一处理计算出中心位置时,执行上述第二处理和第三处理。在第二处理中,信息处理装置3在每次获取到检测磁矢量时,考虑新获取到的检测磁矢量来对中心位置进行更新。由此,能够将中心位置修正为更正确的位置,从而能够高精确度地计算输入装置2的姿势。
[0098]另外,在第三处理中,能够通过使用中心位置来基于检测磁矢量计算方向矢量。在本实施方式中,信息处理装置3在规定的条件被满足的情况下计算与新获取到的检测磁矢量对应的方向矢量,使用计算出的方向矢量来计算输入装置2的姿势。
[0099]此外,上述第二处理和第三处理是并行执行的。即,在计算出中心位置之后,反复执行第二处理和第三处理。因而,在计算出中心位置之后,反复执行检测磁矢量的获取处理、中心位置的更新处理以及基于方向矢量的姿势的计算处理。
[0100]下面,具体地说明上述第一处理?第三处理。此外,在下面的说明中使用的附图中,以易于理解附图为目的,使用二维平面来进行说明。但是,在本实施方式中,实际上是使用三维空间中的三维的矢量和位置等来进行计算。此外,在其它实施方式中,也可以为了计算输入装置2在二维平面中的姿势而使用二维平面中的二维的矢量和位置等来执行第一处理?第三处理。
[0101](3-2:第一处理)
[0102]在第一处理中,信息处理装置3反复获取检测磁矢量。获取到的检测磁矢量被存储在缓冲器中,该缓冲器设置于能够由信息处理装置3进行访问的存储部中。在本实施方式中,存储在缓冲器中的检测磁矢量的最大数量是受限的,将满足规定的条件的检测磁矢量留在缓冲器中,从缓冲器中删除被判断为不需要的检测磁矢量,详情在后面叙述。而且,将存储在缓冲器中的检测磁矢量使用于中心位置的估计(计算)。此外,下面,为了与由信息处理装置3估计(计算)出的中心位置加以区分,将磁球体的正确的中心位置记载为“实际的中心位置”。
[0103](关于是否计算初始中心位置的判断)
[0104]在第一处理中,信息处理装置3在每次获取到检测磁矢量时判断是否计算初始中心位置。即,信息处理装置3在每次获取到检测磁矢量时,判断到此为止获取到的检测磁矢量是否满足规定的条件。然后,在满足了规定的条件的情况下,估计(计算)最初的中心位置(初始中心位置)。上述规定的条件是用于判断是否获取到了足以估计中心位置的检测磁矢量的条件。根据本实施方式,根据规定的条件已被满足的情况来估计中心位置,因此能够降低计算出不正确到无法在姿势的计算中使用的程度的中心位置的可能性,能够更高精确度地计算姿势。
[0105]但是,本实施方式中的姿势计算处理并不是为了估计中心位置而需要非常多的检测磁矢量。在本实施方式中的姿势计算处理中,只要获取与上述磁球体的球面的一部分相当的检测磁矢量就能够估计出中心位置,详情在后面叙述。即,在本实施方式中,无需为了估计中心位置而使输入装置2朝向各个方向,即使在输入装置2几乎朝向一个方向的状态下也能够估计出中心位置。此外,考虑以下的方法:为了估计上述中心位置,使用户进行将输入装置2例如沿8字移动的操作,从而获取朝向各个方向的检测磁矢量。在本实施方式中,能够不使用户进行这种操作(也可以以更高精确度地估计中心位置等为目的而进行这种操作)而估计出中心位置。
[0106]在本实施方式中,信息处理装置3以下面的情况为条件来计算初始中心位置:以包括多个检测磁矢量的各终点位置的方式决定出的区域达到规定的大小。具体地说,信息处理装置3基于检测磁矢量来设定记录范围,判断所设定的记录范围是否达到规定的大小。下面,参照图3来详细说明是否计算初始中心位置的判断。
[0107]图3是表示所设定的初始中心位置的一例的图。信息处理装置3在每次获取到检测磁矢量时设定记录范围(参照图3)。记录范围被设定成包括存储在缓冲器中的各检测磁矢量的各终点。在本实施方式中,记录范围被设定为包括上述各终点的、大小为最小的长方体。更具体地说,为了易于计算,记录范围被设定为由与包括用于表示检测磁矢量的三维坐标系(xyz坐标系)中的任意两个轴的平面(xy平面、yz平面以及χζ平面)平行的面构成的长方体。此外,记录范围也可以是基于检测磁矢量(检测磁矢量的终点位置)决定出的任意的区域。例如,记录范围的形状并不限于长方体,也可以是球体等的任何形状。
[0108]当设定了记录范围时,信息处理装置3执行记录范围是否大于规定的大小的判断处理。具体地说,信息处理装置3判断作为记录范围的长方体的任一个边是否比规定长度长。此外,该规定长度是比预计能够计算姿势的最小的磁球体的直径短的长度,也可以被设定为例如图12所示的多面体的一个边的一半的长度左右(与直径相比足够短的程度),详情在后面叙述。这样,在本实施方式中,即使没有大幅改变输入装置2的姿势,也能够开始中心位置的计算。
[0109]在上述判断处理中判断为记录范围大于规定的大小的情况下,计算初始中心位置。此外,也可以利用判断记录范围的大小的任意的判断方法来进行上述判断处理。例如,信息处理装置3也可以判断记录范围的体积是否大于规定的大小。
[0110]如上,在本实施方式中,以下面的情况为条件来计算初始中心位置:以包括在中心位置的计算中使用的多个检测磁矢量的各终点位置的方式决定出的区域(记录范围)大于规定的大小。此外,在其它实施方式中,信息处理装置3也可以将上述多个检测磁矢量的各方向所形成的范围大于规定的范围的情况作为条件来计算初始中心位置。例如,也可以将下面的情况作为条件来计算初始中心位置:以包括上述多个检测磁矢量的各方向的方式决定出的立体角大于规定的大小。
[0111](初始中心位置的计算方法)
[0112]基于存储在缓冲器中的多个检测磁矢量来计算初始中心位置。在本实施方式中,初始中心位置被设定在以包括上述多个检测磁矢量的各终点位置的方式决定出的区域(在此为上述记录范围)的内部。换言之,初始中心位置被设定在作为上述记录范围的长方体的内部。由此,初始中心位置被设定在上述多个检测磁矢量的各终点的周围,能够通过后述的中心位置的更新处理(第二处理)而逐渐接近磁球体的中心。即,能够降低初始中心位置被设定在(难以通过更新处理接近磁球体的中心的程度地)大幅偏离的位置处的可能性,能够将初始中心位置设定在适当的位置处。
[0113]如图3所示,初始中心位置pi被设定在从存储在缓冲器中的各检测磁矢量(VdrVd3)中的基准磁矢量的终点Si向记录范围的中心c的方向延伸的直线L上的、与该终点Si相距规定距离的位置Pl处。上述基准磁矢量可以通过任何方式来决定,而在本实施方式中,设为最初获取到的检测磁矢量Vdl。此外,在其它实施方式中,也可以将上述各检测磁矢量中的、朝向与从原点向记录范围的中心c的方向最接近的方向的检测磁矢量设为基准磁矢量。
[0114]如上所述,通过将初始中心位置设定在从基准磁矢量的终点的位置Si向记录范围的中心c的方向延伸的直线L上,初始中心位置pi被设定在相对于基于上述各检测磁矢量的各终点sf s3而估计出的曲面(在图3中为弧s2s3)的凹侧的位置处。此外,如果将初始中心位置设定在上述曲面的凸侧的位置处,则存在以下的可能:通过后述的中心位置的更新处理(第二处理),中心位置进一步向凸侧移动,从而不会正确地收敛到磁球体的实际的中心位置P。与此相对,通过将初始中心位置设定在上述曲面的凹侧的位置处,能够通过上述更新处理使中心位置更可靠地收敛(能够降低错误地向凸侧收敛的可能性)。
[0115]另外,上述规定距离可以通过任何方式来决定,而在本实施方式中,设定为记录范围的最长边的一半的长度(参照图3)。由此,能够可靠地使初始中心位置pi处于记录范围内的位置。另外,通过将上述规定距离设为最长边的一半的长度,能够将初始中心位置设定在相对于基于各检测磁矢量的各终点而估计出的曲面的更为凹侧的位置处。由此,能够将初始中心位置Pl设定在更接近磁球体的实际的中心位置P的(可能性高的)位置处,因此中心位置易于收敛到实际的中心位置P。此外,在其它实施方式中,初始中心位置也可以被设定在上述直线L上的其它位置处,例如也可以被设定在上述直线L与记录范围的面的交点处。
[0116]此外,在其它实施方式中,信息处理装置3也可以将初始中心位置设定在上述各检测磁矢量的各终点的重心位置处。另外,在其它实施方式中,也可以使用上述重心位置来代替上述记录范围的中心的位置。通过这些方式,也能够将初始中心位置设定在以包括各检测磁矢量的各终点位置的方式决定出的区域(记录范围)的内部,能够将初始中心位置设定在上述曲面的凹侧的位置处。
[0117]另外,在其它实施方式中,信息处理装置3也可以采用以下的方法:计算(估计)与上述各检测磁矢量的各终点相隔相同距离的位置、即实际的中心位置P。此外,根据本实施方式,与上述的方法相比能够更容易且迅速地计算出初始中心位置。
[0118](3-3:第二处理)
[0119]在如上所述那样设定了初始中心位置之后,信息处理装置3逐次更新中心位置。即,在每次获取到检测磁矢量时,基于获取到的检测磁矢量来计算新的中心位置。在本实施方式中,信息处理装置3使用与从中心位置到检测磁矢量的终点位置为止的线段(半径)的长度有关的条件来计算(更新后的)中心位置。具体地说,信息处理装置3在新获取到检测磁矢量的情况下,对中心位置进行更新使得从中心位置到(在该中心位置的估计中使用的)各检测磁矢量的终点为止的各半径的长度分别接近该各半径的长度的平均值。下面,参照图4来说明中心位置的更新处理的详情。
[0120]图4是表示通过更新处理进行更新前后的中心位置的一例的图。在图4中,示出了在设定图3所示的初始中心位置pi之后获取到新的检测磁矢量Vd4的情况。在这种情况下,信息处理装置3分别计算从当前的中心位置pi到各检测磁矢量(VdfVd4)的终点的各线段rl\4的长度。此外,从中心位置到检测磁矢量的终点的线段也可以说是磁球体的半径。因此在本说明书中,有时将上述线段记载为“半径”。此外,要注意存在以下的情况:在估计出的中心位置与实际的中心位置不一致的情况下,从估计出的中心位置到多个检测磁矢量的各终点位置的各个“半径”并非是相同的长度。另外,信息处理装置3计算上述各线段的平平均值(平均半径)。
[0121]信息处理装置3对中心位置pi进行更新,使得上述各半径rll4的长度接近平均半径。具体地说,信息处理装置3针对每个检测磁矢量进行以下的处理:将半径的长度变更半径与平均半径之差的规定比例(例如差的20%)。该处理换言之是使中心位置沿该半径的方向移动以变更半径的长度的处理。图5是将图4所示的区域的一部分放大后得到的图。在图4和图5所示的例子中,通过对半径rl进行变更的处理,中心位置pi向与半径rl平行的方向移动。此外,在该例中平均半径大于半径rl,因此中心位置pi向使半径rl变大的方向移动(参照图5所示的箭头)。同样地,通过对半径r2进行变更的处理,中心位置pi向与半径r2平行的方向移动,通过对半径r3进行变更的处理,中心位置pi向与半径r3平行的方向移动,通过对半径r4进行变更的处理,中心位置pi向与半径r4平行的方向移动(参照图5所示的箭头)。对上述半径rll4的长度进行变更的处理的结果是,中心位置pi移动到中心位置p2。
[0122]如上所述,通过中心位置的更新处理,各半径被变更为接近平均半径,即各半径被变更为接近均等。即,中心位置被更新为接近磁球体的实际的中心位置P (参照图5)。因而,通过更新处理,能够更高精确度地计算中心位置,能够更正确地计算输入装置2的姿势。此夕卜,在本实施方式中,将初始中心位置设定在各检测磁矢量的终点的周围(上述记录范围内)。因此,在本实施方式中,相对于实际的中心位置P和各终点,初始中心位置(很有可能)被设定在与各终点更近的一侧。因而,上述更新处理可以说是使中心位置向远离各终点的方向移动的处理。
[0123]此外,在本实施方式中,信息处理装置3将使中心位置移动的处理只执行与检测磁矢量的数量相应的次数,来作为一次更新处理。该处理并非是反复移动中心位置直到各半径变为平均半径为止的处理,因此信息处理装置3能够迅速地进行一次更新处理。
[0124]此外,在其它实施方式中,在一次更新处理中也可以关于存储在缓冲器中的多个检测磁矢量中的一部分执行使中心位置移动的处理。即,信息处理装置3在新获取到检测磁矢量的情况下,也可以针对在中心位置的估计中使用的各检测磁矢量中的若干检测磁矢量对中心位置进行更新,使得从中心位置到该若干检测磁矢量的终点为止的半径的长度分别接近各半径(与在中心位置的估计中使用的各检测磁矢量对应的各半径)的长度的平均值。例如,在一次更新处理中也可以针对上述多个检测磁矢量的一半检测磁矢量执行中心位置的移动处理,在下一次更新处理中针对剩下的一半检测磁矢量执行中心位置的移动处理,其结果是,通过两次更新处理,针对该多个检测磁矢量的全部进行了中心位置的移动。由此,能够减轻一次更新处理中的信息处理装置3的处理负担。
[0125]在本实施方式中,信息处理装置3在每次新获取到检测磁矢量时,至少使用新获取到的检测磁矢量来对中心位置进行更新。因而,在每次获取到检测磁矢量时,中心位置逐渐接近实际的中心位置P。其结果是,当经过某种程度的时间时,中心位置变为实际的中心位置P附近的位置。
[0126]此外,在本实施方式中,即使在估计出中心位置已位于实际的中心位置P附近的情况下(例如,通过更新处理,中心几乎不移动的情况下),信息处理装置3也在每次新获取到检测磁矢量时执行更新处理。由此,即使在输入装置2的周围的磁场由于某些原因而发生变化从而磁球体发生变化的情况下,也可以根据变化来变更中心位置,因此能够更正确地计算中心位置。
[0127](3_4:第三处理)
[0128]在通过上述第一处理设定了中心位置之后,能够计算方向矢量。因而,信息处理装置3在第三处理中,基于中心位置来计算方向矢量,基于方向矢量来计算输入装置2的姿势。
[0129]此外,如上所述,信息处理装置3至少以根据获取到的各检测磁矢量的终点位置而决定出的区域(记录范围)大于规定的基准的情况为条件,来进行使用了方向矢量的姿势计算(第三处理)。由此,能够降低计算出不正确的中心位置而使用不正确的中心位置计算出不正确的姿势的可能性,能够更高精确度地计算姿势。
[0130]另外,如上所述,信息处理装置3在每次新获取到检测磁矢量时,至少使用新获取到的检测磁矢量来对中心位置进行更新(第二处理)。而且,信息处理装置3在每次新获取到检测磁矢量时基于根据更新后的中心位置决定出的方向矢量来计算输入装置2的姿势。由此,通过基于更正确的中心位置,能够更高精确度地计算输入装置2的姿势。此外,如上所述,在一次更新处理中,也可以关于存储在缓冲器中的多个检测磁矢量中的一部分检测磁矢量执行中心位置的移动处理。
[0131](通过其它方法进行的姿势校正)
[0132]在本实施方式中,信息处理装置3使用方向矢量来对通过使用与磁传感器4不同的传感器(陀螺传感器5和加速度传感器6)的方法得到的输入装置2的姿势进行校正,由此计算出输入装置2的姿势。S卩,信息处理装置3基于方向矢量对通过与使用检测磁矢量的方法不同的方法计算出的输入装置2的姿势进行校正。下面,参照图6来说明使用了方向矢量的输入装置2的姿势的校正方法。
[0133]图6是表示使用方向矢量对输入装置2的姿势进行校正的方法的一例的图。首先,信息处理装置3设定规定的基准时的方向矢量(基准方向矢量)Va(图6所示的(a))。基准方向矢量Va例如是与基准磁矢量对应的方向矢量。此外,在检测基准磁矢量时尚未计算出中心位置,但是在计算出中心位置之后能够基于中心位置和基准磁矢量来计算出基准方向矢量。此外,方向矢量是以输入装置2为基准来计算出的,因此信息处理装置3事先计算出以空间为基准的坐标系(用于表示输入装置2的姿势的坐标系)中的基准方向矢量Va的值。即,信息处理装置3将基准方向矢量的坐标系从上述xyz坐标系转换为表示输入装置2的姿势的坐标系。
[0134]在设定了中心位置之后的某个时间点,信息处理装置3使用上述其它方法来计算输入装置2的姿势。此外,图6的(b)栏所示的输入装置2的姿势是使用上述其它方法计算出的姿势。另外,信息处理装置3计算出该时间点的方向矢量Val。
[0135]在此,方向矢量相对于空间是固定的,因此上述某个时间点的方向矢量Val的朝向应该与基准方向矢量Va的朝向相同。(如果立足于基于检测磁矢量的姿势正确这个前提)认为方向矢量Val与基准方向矢量Va之间的偏移是从上述基准时间点到上述某个时间点为止所产生的、利用上述其它方法计算出的姿势的误差。因此,信息处理装置3进行以下的校正:使利用其它方法计算出的输入装置2的姿势旋转,使得上述方向矢量Val的朝向与基准方向矢量Va的朝向相同(参照图6所示的(b)的箭头)。此外,图6的(C)栏所示的输入装置2的姿势表示利用方向矢量进行校正后的输入装置2的姿势。
[0136](校正度的计算)
[0137]此外,在图6中,设进行校正以使方向矢量Val与基准方向矢量Va—致来进行了说明,但是在本实施方式中,信息处理装置3以如下方式进行校正:使方向矢量Val向基准方向矢量Va的方向接近与校正度相应的比例。校正度可以通过任何方式来决定,而在本实施方式中,基于若干要素来计算出多种校正率(第一校正率和第二校正率),基于这些校正度来设定最终使用的校正度。下面,说明校正度的设定方法。
[0138](第一校正率)
[0139]根据新获取到的检测磁矢量(的终点)相对于到此为止获取到的检测磁矢量(的终点)分离的程度(称为“相离度”)来设定第一校正率。此外,“到此为止获取到的检测磁矢量”是指该时间点的在中心位置的估计中使用的检测磁矢量,换言之是指存储在缓冲器中的检测磁矢量。信息处理装置3将第一校正率设定成上述相离度越大则校正率越小。例如以O以上且100以下的值来表示第一校正率,值越大则基于检测磁矢量的校正量越大(以图6的例来说,方向矢量Val越接近基准方向矢量Va)。
[0140]图7是表示第一校正率的设定方法的一例的图。在图7中,示出了在获取到包括基准磁矢量Vdl在内的多个检测磁矢量的状态下获取到矢量Vd2作为新的检测磁矢量的情况、以及获取到矢量Vd3作为新的检测磁矢量的情况。另外,图7所示的斜线部分表示上述多个检测磁矢量的范围。即,设该多个检测磁矢量是在斜线部分的范围内被获取到的。另夕卜,将获取到新的检测磁矢量(Vd2或Vd3)时的中心位置设为位置P。设中心位置P是基于上述多个检测磁矢量而设定的,与实际的中心位置P稍有不同。
[0141]在图7中,考虑获取到检测磁矢量Vd2的情况。检测磁矢量Vd2远离到此为止获取到的上述多个检测磁矢量的范围。在此,在新的检测磁矢量Vd2远离上述范围的情况下,与该新的检测磁矢量对应的方向矢量Va2的方向有可能与正确的方向(从实际的中心位置P向检测磁矢量Vd2的终点的矢量Va2’的方向)之间的差异大(参照图7)。S卩,存在方向矢量Va2不正确的可能性。因而,在上述情况下,将第一校正率设定得相对小。
[0142]另一方面,在图7中,考虑获取到检测磁矢量Vd3的情况。检测磁矢量Vd3包含于到此为止获取到的上述多个检测磁矢量的范围内(与范围接近)。在像这样新的检测磁矢量Vd3与上述范围接近的情况下,与该新的检测磁矢量对应的方向矢量Va3的方向与正确的方向(从实际的中心位置P向检测磁矢量Vd3的终点的矢量Va3’的方向)之间的差异小。即,能够认为方向矢量Va3在某种程度上是正确的。因而,在上述情况下,第一校正率被设定得相对大。
[0143]如上,在本实施方式中,新获取到的检测磁矢量的终点位置距在中心位置的估计中使用的检测磁矢量的终点位置越远,信息处理装置3将校正度(第一校正率)设定得越小。由此,在与新的检测磁矢量对应的方向矢量有可能不正确的情况下例如将校正度设定得低,能够减小该方向矢量的影响地计算输入装置2的姿势。由此,能够降低计算出不正确的姿势的可能性。另外,例如在认为与新的检测磁矢量对应的方向矢量正确的情况下例如将校正度设定得高,能够增大该方向矢量的影响地计算输入装置2的姿势。由此,能够提高计算出正确的姿势的可能性。通过像这样根据上述相离度来设定校正度,能够高精确度地计算输入装置2的姿势。
[0144]另外,在本实施方式中,信息处理装置3使用从中心位置到新的检测磁矢量的终点位置为止的长度(半径)与根据在该中心位置的估计中使用的检测磁矢量决定出的半径之差来判断上述相离度。即,在上述差大的情况下,能够判断为相离度大,在上述差小的情况下,能够判断为相离度小。因而,在本实施方式中,信息处理装置3根据上述差来设定校正度(第一校正率)。通过像这样使用半径的差,能够正确地判断相离度。
[0145]此外,上述“根据在该中心位置的估计中使用的检测磁矢量决定出的半径”是指根据从中心位置到在该中心位置的估计中使用的检测磁矢量的各终点位置为止的长度(半径)决定出的半径。例如,将该半径既可以决定为与基准磁矢量对应的半径(图7所示的方向矢量Val的大小),也可以决定为上述的平均半径。
[0146]如上所述,在本实施方式中,上述相离度越大,信息处理装置3使新的检测磁矢量的影响相对越小来计算输入装置2的姿势。即,在本实施方式中,作为针对输入装置2的姿势计算调整新的检测磁矢量的影响的方法,使用校正度。在此,在其它实施方式中,上述方法可以是任何方法,并不限于使用校正度的方法。例如在其它实施方式中,也可以在相离度大于规定的基准的情况下,不进行使用方向矢量的校正(使校正度为“O” ),在相离度为该规定的基准以下的情况下,进行使用方向矢量的校正。
[0147]另外,在不使用与利用磁传感器4计算姿势的方法不同的其它姿势计算方法的情况下,信息处理装置3也可以根据上述相离度来改变新的检测磁矢量的影响来计算输入装置2的姿势。例如,信息处理装置3也可以根据基于过去获取到的检测磁矢量计算出的第一姿势和基于新获取到的检测磁矢量计算出的第二姿势来计算当前的姿势。换言之,信息处理装置3也可以基于新获取到的检测磁矢量(与该检测磁矢量对应的方向矢量)对过去计算出的输入装置的姿势进行校正。此时,信息处理装置3也可以根据相离度来决定使第二姿势反映到当前的姿势的比例。
[0148]如上,在本实施方式中,新获取到的检测磁矢量的终点位置距在中心位置的估计中使用的各检测磁矢量的终点位置越远,信息处理装置3使新的检测磁矢量的影响(对姿势计算的影响)相对越小来计算输入装置2的姿势。由此,即使在估计出的中心位置未收敛到实际的中心位置附近的情况下,也能够计算输入装置2的姿势。当例如以图7为例来进行说明时,估计出的中心位置P处于稍微远离实际的中心位置P的状态。在这种状态下,方向矢量有可能不正确,因此看起来似乎无法正确地计算姿势。然而,即使在这种状态下,会根据情况的不同(即,在上述相离度小的情况下)而也认为方向矢量在某种程度上是正确的,使得能够计算姿势。即,在本实施方式中,即使在估计出的中心位置未充分收敛到实际的中心位置附近的情况下,信息处理装置3也在不会计算出不正确的姿势的范围内使用方向矢量来进行姿势计算。由此,在中心位置充分收敛之前能够计算姿势,因此能够提早计算出姿势。另外,即使在无法获取到计算实际的中心位置所需的足够的检测磁矢量的情况下也能够计算姿势,因此能够有更多的机会计算出姿势。因而,例如无需使用户进行上述的将输入装置2沿8字移动那样的预备的操作,在使用输入装置2进行通常的操作的期间内能够计算出输入装置2的姿势。
[0149]另外,磁传感器4有时会由于某些原因而检测出异常的检测磁矢量。异常的检测磁矢量典型的是终点位于与基于其它检测磁矢量估计出的磁球体的面完全不同的位置的矢量。当使用这种异常的检测磁矢量来估计中心位置时,有可能无法正确地计算出中心位置。在此,如上所述,通过根据相离度来改变新的检测磁矢量的影响,能够减小该异常的检测磁矢量的影响,能够高精确度地计算输入装置2的姿势。
[0150]另外,在本实施方式中,信息处理装置3使用上述的半径的差来判断上述相离度。在此,在本实施方式中,当通过上述更新处理而中心位置变得正确(接近实际的中心位置)时,半径的差变小。因而,信息处理装置3通过使用半径的差,能够除了考虑上述相离度以外还考虑中心位置的正确度,来调整新的检测磁矢量对姿势计算的影响。另外,在本实施方式中,通过上述更新处理而中心位置随着时间的经过逐渐变得正确,因此能够使上述的影响随着时间的经过而增大。即,根据本实施方式,即使最初进行基于检测磁矢量的姿势计算的范围(或者该姿势计算的影响大的范围)是被限定的,也能够随着时间的经过而将该范围扩大。另外,能够随着时间的经过而正确地计算出姿势。
[0151]此外,上述相离度能够通过任何方法来判断。例如,在其它实施方式中,也可以基于各检测磁矢量的终点位置来计算相离度。具体地说,也可以根据上述记录范围与新的检测磁矢量之间的距离来计算相离度。另外,在其它实施方式中,还可以根据与新的检测磁矢量对应的方向矢量的方向和与到此为止获取到的检测磁矢量对应的方向矢量的方向之差来计算相离度。
[0152]另外,在本实施方式中,与上述第一校正率的值相独立地(与第一校正率的值无关地)执行上述的中心位置的更新处理(第二处理)。即,信息处理装置3独立于新的检测磁矢量的终点位置与在中心位置的估计中使用的各检测磁矢量的终点位置之间的关系,使用该新的检测磁矢量来对中心位置进行更新。由此,即使在由于上述的相离度大而不进行姿势的计算(或者,基于检测磁矢量的姿势计算的影响小)的情况下,中心位置也会被更新为正确的位置。因此,能够高精确度地计算中心位置,并且即使在某个时间点未进行姿势的计算的情况下也能够在之后进行姿势的计算。
[0153](第二校正率)
[0154]根据与新获取到的检测磁矢量对应的方向矢量的方向和与用户进行了规定的操作时的检测磁矢量(在此为基准磁矢量)对应的方向矢量的方向之差来设定第二校正率。信息处理装置3将第二校正率设定成上述的方向之差越大则校正率越小。与第一校正率同样地,例如以O以上且100以下的值来表示第二校正率,值越大则基于检测磁矢量的校正量越大。
[0155]图8是表示第二校正率的设定方法的一例的图。在图8中,示出了在获取到包括基准磁矢量Vdl在内的多个检测磁矢量的状态下获取到矢量Vd4作为新的检测磁矢量的情况、以及获取到矢量Vd5作为新的检测磁矢量的情况。另外,将获取到新的检测磁矢量(Vd4或Vd5)时的中心位置设为位置P。
[0156]在图8中,考虑获取到检测磁矢量Vd4的情况。与检测磁矢量Vd4对应的方向矢量Va4的方向和与基准磁矢量Vdl对应的基准方向矢量Val的方向之差(角度Θ I)比较大。在此,在上述的方向之差大的情况下,认为输入装置2的姿势从基准时(开始使用输入装置2时)的姿势发生了大幅变化。另外,当输入装置2的姿势从基准时的姿势发生了大幅变化时,有可能输入装置2的周围的磁场发生了变化。例如,由于改变了输入装置2的姿势,位置也发生变化,其结果是周围的磁场也有可能会发生变化。具体地说,考虑由于输入装置2接近金属的壁而周围的磁场发生变化的情况。当像这样输入装置2的姿势从基准时的姿势发生了大幅变化时,有可能无法正确地进行基于检测磁矢量的姿势计算。因此,在上述的方向之差大的情况下,信息处理装置3将第二校正率设定得相对小。
[0157]另一方面,在图8中,考虑获取到检测磁矢量Vd5的情况。与检测磁矢量Vd5对应的方向矢量Va5的方向和与基准磁矢量Vdl对应的基准方向矢量Val的方向之差(角度Θ2)比较小。在像这样上述的方向之差小的情况下,输入装置2的周围的磁场发生变化的可能性低,因此认为无法正确地进行姿势计算的可能性也低。因此,在上述的方向之差小的情况下,信息处理装置3将第二校正率设定得相对大。
[0158]如上,在本实施方式中,信息处理装置3将在用户进行了规定的操作时检测出的检测磁矢量设定为基准磁矢量。而且,从中心位置向新的检测磁矢量的方向越偏离于从该中心位置向基准磁矢量的方向,使该新的检测磁矢量的影响相对越小来计算输入装置2的姿势。由此,能够降低由于输入装置2的周围的磁场发生变化而导致计算出不正确的姿势的可能性,进而能够高精确度地计算姿势。
[0159](最终的校正度的计算)
[0160]在本实施方式中,基于上述第一校正率和第二校正率来计算最终的校正度。例如,信息处理装置3计算出使第一校正率与第二校正率相乘后再乘以规定的系数而得到的校正度。此外,在其它实施方式中,也可以基于上述第一校正率和第二校正率中的任一方来计算出最终的校正度。例如,在假设输入装置2的姿势向所有方向变化这样的操作方法的情况下,也可以不使用第二校正率而计算校正度。另外,信息处理装置3也可以防止校正度急剧增大(参照后述的步骤S36和S37)。这是为了防止由信息处理装置3计算出的输入装置2的姿势由于使用方向矢量进行的校正而发生急剧变化。
[0161]此外,在本实施方式中,设利用方向矢量来对通过其它方法(使用陀螺传感器5和加速度传感器6的方法)计算出的输入装置2的姿势进行校正。在此,在其它实施方式中,信息处理装置3也可以不使用其它方法而基于方向矢量来计算输入装置2的姿势。
[0162](关于是否计算姿势的判断)
[0163]在本实施方式中,在第三处理中,在满足了与中心位置有关的规定的条件的情况下,信息处理装置3计算基于方向矢量的输入装置2的姿势。即,在估计出的中心位置能够被信任为表示磁球体的实际中心位置的程度低的情况下,信息处理装置3通过不计算基于检测磁矢量的输入装置2的姿势,来降低计算出不正确的姿势的可能性。
[0164]在本实施方式中,信息处理装置3基于中心位置和存储在缓冲器中的各检测磁矢量来计算中心位置的可靠度。然后,在可靠度高于规定的基准的情况下计算输入装置2的姿势,在可靠度低于规定的基准的情况下不计算输入装置2的姿势。
[0165]具体地说,通过上述更新处理对中心位置进行更新的情况下的更新前后的移动量越大,信息处理装置3将可靠度计算得越低。另外,将上述各检测磁矢量的终点与中心位置连接的各半径的长度的偏差越大,信息处理装置3将可靠度计算得越低。这是因为,在更新前后的移动量大的情况以及各半径的长度的偏差大的情况下,中心位置未充分收敛,不正确的可能性高。例如在图4所示的情况下,各半径rll4的长度的偏差大,中心位置的移动大。因此,将可靠度计算得低,其结果是不进行姿势的计算。另一方面,图9是表示将可靠度计算得高的情况下的中心位置的一例的图。在图9所示的情况下,各半径r1-r4的长度的偏差小,中心位置的移动小。因此,将可靠度计算得高,其结果是进行姿势的计算。
[0166]此外,在本实施方式中,使用将平均半径与半径之差的平方针对各半径进行累计相加后得到的值,来作为表示各半径的长度的偏差的指标。此外,该指标可以是任何指标,例如也可以是最大的半径与最小的半径之差、平均半径与最大或最小的半径之差以及各半径的标准偏差等。
[0167]另外,在本实施方式中,根据输入装置2的姿势的变化大于规定的基准的情况来进行可靠度的计算。即,信息处理装置3在每次获取到检测磁矢量时,判断与检测磁矢量对应的方向矢量的方向的变化是否大于规定的基准。然后,在方向矢量的方向的变化大于规定的基准的情况下,信息处理装置3重新计算可靠度。另一方面,在方向矢量的方向的变化不大于规定的基准的情况下,不重新计算可靠度,因此维持以前的可靠度。这是因为,在输入装置2的姿势(检测磁矢量)未发生变化的情况下,认为中心位置能够被信任的程度也未发生变化。这样,根据本实施方式,能够减轻可靠度的计算所导致的处理负荷。此外,在其它实施方式中,也可以以每规定期间进行一次的比例(例如在每次获取到检测磁矢量时)计算可靠度。
[0168]如上,在本实施方式中,信息处理装置将中心位置的更新前后的移动量以及各半径的长度的偏差用作反映中心位置的可靠度的指标,基于该指标来决定是否计算输入装置2的姿势。在此,在其它实施方式中,信息处理装置3也可以根据上述指标来改变获取到的检测磁矢量对姿势计算产生的影响。例如,信息处理装置3也可以基于上述指标来设定上述的校正度。
[0169]如上所述,中心位置在更新前后的变化量越大,信息处理装置3使新的检测磁矢量的影响相对越小来计算输入装置2的姿势。由此,能够降低计算出不正确的姿势的可能性,能够提高姿势计算的精确度。
[0170]另外,从当前的中心位置到在该中心位置的估计中使用的各检测磁矢量的终点位置为止的各长度(各半径的长度)的偏差越大,信息处理装置3使新获取到的检测磁矢量的影响相对越小来计算姿势。由此,能够降低计算出不正确的姿势的可能性,能够提高姿势计算的精确度。
[0171]此外,在其它实施方式中,信息处理装置3也可以基于中心位置的更新前后的移动量和各半径的长度的偏差中的任一个来计算可靠度。即,也可以基于中心位置的更新前后的移动量和各半径的长度的偏差中的任一个来调整新的检测磁矢量对姿势计算的影响。
[0172](3-5:存储检测磁矢量的方法)[0173]在本实施方式中,信息处理装置3使用将检测磁矢量根据条件进行分类并存储的缓冲器。然后,使用存储在缓冲器中的检测磁矢量来估计(计算)中心位置。即,在本实施方式中,在中心位置的估计中不使用已从缓冲器删除的检测磁矢量。信息处理装置3为了高效且高精确度地计算中心位置,使用上述的缓冲器来对要在中心位置的计算中使用的检测磁矢量进行挑选。下面,说明将获取到的检测磁矢量存储在缓冲器中的方法。
[0174]在本实施方式中,信息处理装置3将检测磁矢量分类为与从基准位置向获取到的检测磁矢量的终点位置的方向相应的类别来存储在上述缓冲器中。此外,根据从基准位置向检测磁矢量的终点位置的方向来设定各类别。上述基准位置是基于检测磁矢量而确定的,在本实施方式中,在设定了中心位置的情况下,即是中心位置。即,在本实施方式中,与检测磁矢量对应的方向矢量的朝向相同或相近的检测磁矢量被分类到相同类别。下面,参照图10和图11来说明详情。
[0175]图10是表示本实施方式中的缓冲器的结构的一例的图。如图10所示,缓冲器中设置有按多个(在图10中为16个)分类矢量来保存检测磁矢量的区域。分类矢量是表示在用于表示检测磁矢量的空间(xyz空间)中的方向的矢量(在此为单位矢量)。各分类矢量VcfVcie分别表示不同的方向。另外,各分类矢量VcfVcie被设定成其方向均匀地分散,详情在后面叙述。另外,各分类矢量是预先设定的。分类矢量的数量可以是任何数量。在本实施方式中,分类矢量的数量是固定的。
[0176]此外,上述缓冲器只要是能够由信息处理装置3进行访问的存储部即可。例如,在本实施方式中,在信息处理装置3所具备的存储器9中准备上述缓冲器。
[0177]图11是表示检测磁矢量的分类方法的一例的图。在图11中,设获取到检测磁矢量Vdx,此时的中心位置为位置p。此时,信息处理装置3计算与检测磁矢量Vdx对应的方向矢量Vax。然后,从上述多个分类矢量VcfVcie中选出方向最接近方向矢量Vax的矢量。在图11的例中,选出了方向最接近方向矢量Vax的分类矢量Veil。信息处理装置3将获取到的检测磁矢量存储在与所选出的分类矢量对应的区域中。在图11的例中,由于选出了方向最接近方向矢量Vax的分类矢量Veil,因此与方向矢量Vax对应的检测磁矢量Vdx被保存在与分类矢量Vcll对应的区域中(参照图10)。此外,在本实施方式中,在要保存新的检测磁矢量的区域中已经保存了检测磁矢量的情况下,将新的检测磁矢量覆盖存储到该区域,删除之前的检测磁矢量。
[0178]如上,在本实施方式中,根据从基准位置向检测磁矢量的终点的方向来对检测磁矢量进行分类,使用被分类到相同类别的一个检测磁矢量来估计中心位置。由此,能够将在中心位置的估计中使用的检测磁矢量的数量限制为固定数量,能够减轻中心位置的估计处理的处理负荷。
[0179]另外,在本实施方式中,根据从基准位置向检测磁矢量的终点的方向来对检测磁矢量进行分类。在此,通过使用朝向各种方向的方向矢量,易于更正确地计算出要估计的中心位置。因而,通过根据从基准位置向检测磁矢量的终点的方向来对检测磁矢量进行分类,能够使用朝向各种方向的检测磁矢量来更正确地估计出中心位置。
[0180]另外,在本实施方式中,上述基准位置被设定为中心位置。即,信息处理装置3将基准位置设定在磁球体的面或该面的内侧。由此,能够将与朝向各种方向的方向矢量对应的检测磁矢量存储在缓冲器中,因此能够更正确地估计出中心位置。[0181]此外,在本实施方式中,在设定中心位置之前,基准磁矢量的终点位置被设定为基准位置。另外,在设定中心位置之前,在每次获取到新的检测磁矢量时,通过与中心位置的更新处理同样的方法来对基准位置进行更新。因而,即使在设定中心位置之前,基准位置也被设定在磁球体的面或该面的内侧。
[0182]另外,在设定了中心位置之后,信息处理装置3在每次获取到检测磁矢量时将最新的中心位置作为基准位置来对获取到的检测磁矢量进行分类。由此,能够使在分类中使用的方向矢量更为正确。由此,能够更正确地进行检测磁矢量的分类。此外,如上所述,信息处理装置3在每次新存储检测磁矢量时对中心位置进行更新。因而,在每次获取到检测磁矢量时对中心位置和基准位置进行更新,因此能够使在分类中使用的方向矢量更为正确。
[0183]另外,在本实施方式中,使用分类矢量来对检测磁矢量进行分类。即,信息处理装置3从朝向互不相同的方向的多个分类矢量中选择朝向与从基准位置向检测磁矢量的终点的方向最接近的方向的分类矢量,将选择不同的分类矢量的检测磁矢量分类到不同的类别中。由此,能够容易地对检测磁矢量进行分类。例如,能够通过计算分类矢量与表示从基准位置向检测磁矢量的终点的方向的矢量的内积,来容易地对检测磁矢量进行分类。
[0184]此外,在其它实施方式中,也可以对缓冲器的各区域设定与方向有关的范围,以代替分类矢量。此时,信息处理装置3在对各区域设定的范围中选择从基准位置向检测磁矢量的终点的方向所属的范围,将检测磁矢量保存到与所选择出的范围对应的区域中。由此,也能够容易地对检测磁矢量进行分类。
[0185]另外,在本实施方式中,信息处理装置3将分类到相同类别的检测磁矢量汇总为一个来存储在缓冲器中。即,将基于属于相同分类的检测磁矢量得到的一个检测磁矢量存储在缓冲器中。由此,能够将存储在缓冲器中的检测磁矢量的数量限制为固定数量,从而能够降低缓冲器的数据大小。
[0186]此外,在其它实施方式中,也可以将分类到各类别的检测磁矢量针对一个类别存储多个(也可以全部)。此时,信息处理装置3也能够以针对一个类别提取规定数量(例如一个)的检测磁矢量的方式从各类别中提取检测磁矢量,使用提取出的检测磁矢量来估计中心位置。由此也能够与本实施方式同样地挑选要在中心位置的估计中使用的检测磁矢量,能够高效地计算中心位置。
[0187]并且,在本实施方式中,在缓冲器内的相同区域中已经保存了检测磁矢量的情况下,用新的检测磁矢量来覆盖存储(保存)。即,信息处理装置3在获取到新的检测磁矢量的情况下,如果在要将该新的检测磁矢量分类到的类别中已经存储了检测磁矢量,则用该新的检测磁矢量覆盖已经存储的检测磁矢量来进行存储。由此,相同区域中已经保存的检测磁矢量被删除。
[0188]此外,如上所述,磁传感器4有时会由于某些原因而检测出异常的检测磁矢量。在本实施方式中,检测磁矢量会被覆盖,因此即使将异常的检测磁矢量存储在缓冲器中,也通过在之后用不异常的检测磁矢量进行覆盖,能够消除异常的检测磁矢量的影响来计算中心位置。由此,能够高精确度地计算中心位置。
[0189]此外,作为将分类到相同类别的检测磁矢量汇总为一个来存储在缓冲器中的方法,除了用新的检测磁矢量进行覆盖的方法以外,还存在以下的方法:存储基于分类到相同类别的多个检测磁矢量而生成的检测磁矢量。例如,在其它实施方式中,也可以基于分类到相同类别的多个检测磁矢量来生成平均的矢量,将该平均的矢量存储在缓冲器中。由此,能够减小异常的检测磁矢量的影响来计算中心位置。
[0190]在本实施方式中,上述各分类矢量被设定成方向均匀地分散。即,多个分类矢量被设定成:在将各分类矢量的起点配置于球体的中心的情况下,各分类矢量的终点在该球体的球面上(如后所述,在使分类矢量的数量为一半的情况下,也可以是在球面的一半的面上)均匀地分散配置。图12是表示在本实施方式中被配置在三维空间中的各分类矢量的终点位置的一例的图。此外,在图11中,示为各分类矢量被配置在平面上,但是在本实施方式中,实际上是如图12所示那样,各分类矢量被配置在三维空间中。各分类矢量例如被设定成以图12所示的多面体的中心为起点、以该多面体的各顶点为终点的矢量。如图12所示,多个分类矢量被设定成方向均匀地分散。由此,能够使用均匀地分散的检测磁矢量来估计中心位置,因此能够更正确地估计中心位置。此外,各分类矢量无需被设定成方向严格地均匀分散,只要被设定成大致均匀地分散,就能够得到正确地估计出中心位置的效果。
[0191]另外,在本实施方式中,分类矢量被设定成存在方向相反的其它分类矢量。S卩,信息处理装置3将朝向互为相反的方向的两个分类矢量作为一组,来设定多组分类矢量。另夕卜,信息处理装置3通过计算两个矢量的内积来选择分类矢量。即,信息处理装置3计算分类矢量与表示从基准位置向检测磁矢量的终点的方向的方向矢量的内积,选择内积值最大的分类矢量。
[0192]在此,在本实施方式中,将分类矢量设定成存在方向相反的其它分类矢量,因此信息处理装置3能够通过对每个组执行关于一组分类矢量中的某一个分类矢量计算上述内积的处理,来选择分类矢量。具体地说,确定内积值的绝对值最大的分类矢量,在该内积值的符号为正的情况下,只要选择所确定的该分类矢量即可,在该内积值的符号为负的情况下,只要选择朝向所确定的该分类矢量的反方向的分类矢量即可。通过像这样使用方向互为相反的一组分类矢量,能够将用于选择分类矢量的内积计算的次数变为一半。
[0193]此外,在其它实施方式中,信息处理装置3也可以使用上述实施方式的一半的分类矢量来进行检测磁矢量的分类。即,在其它实施方式中,也可以仅设定上述各组分类矢量中的某一方。此时,信息处理装置3首先基于内积的绝对值来进行分类矢量的选择。具体地说,与本实施方式同样地对每个分类矢量执行计算内积的处理,选择绝对值最大的分类矢量。并且,信息处理装置3根据内积值的正负将检测磁矢量分类到不同的类别。由此,能够使内积计算的次数变为一半,并且能够减少要准备的分类矢量的数量。
[0194][4.由信息处理系统执行的具体处理例]
[0195]下面,参照图13?图16来说明在本实施方式中由信息处理系统I (信息处理装置3)执行的具体处理的一例。图13是表示在本实施方式中在信息处理系统I的存储部(存储器9)中设定的数据区域的一例的图。如图13所示,在信息处理装置3的存储器9中,设定有程序保存区域11、操作数据保存区域13、处理用数据保存区域15以及缓冲器区域27。此外,在存储器9中,也可以设定用于保存除了图13所示的数据以外的要输出到显示装置的图像、为了生成该图像而使用的图像的数据等的区域。
[0196]程序保存区域11中存储有信息处理程序12。信息处理程序12是用于使信息处理装置3的计算机(CPU8)执行的程序。此外,信息处理程序12存储在设置于信息处理装置3的内部或外部的能够由信息处理装置3进行访问的程序保存部(存储装置或存储介质等)中。在适当的时刻读入存储在程序保存部中的信息处理程序12的一部分或全部来存储在存储器9中,由CPU8执行该程序。另外,也可以将信息处理程序12的一部分或全部(例如作为库)预先存储在执行信息处理程序12的信息处理装置内。
[0197]在操作数据保存区域13中存储有从输入装置2发送过来的操作数据。在本实施方式中,在操作数据保存区域13中,作为操作数据存储有表示上述检测磁矢量的检测磁数据14。另外,在操作数据保存区域13中存储有表示陀螺传感器5的检测结果(角速度)的数据、表示加速度传感器6的检测结果(加速度)的数据以及表示对操作部7进行的操作的数据。
[0198]在处理用数据保存区域15中存储有在信息处理装置3中执行的信息处理(图14所示的信息处理)中所使用的各种数据。在处理用数据保存区域15中存储有第一姿势数据16、第二姿势数据17、基准磁数据18、平均半径数据19、中心位置数据20、记录范围数据21、方向矢量数据22、可靠度数据23、第一校正率数据24、第二校正率数据25以及校正度数据26。
[0199]第一姿势数据16是表示通过除使用磁传感器4 (检测磁矢量)的方法以外的其它方法计算出的输入装置2的姿势的数据。第二姿势数据17是表示基于检测磁矢量计算出的输入装置2的姿势的数据。在本实施方式中,第二姿势数据17是表示使用方向矢量对第一姿势数据16所表示的姿势进行校正后得到的姿势的数据。
[0200]基准磁数据18是表示上述基准磁矢量的数据。平均半径数据19是表示上述平均半径的长度的数据。中心位置数据20是表示由信息处理装置3估计出的上述中心位置的数据。记录范围数据21是表示上述记录范围的区域的数据。
[0201]在此,在本实施方式中,在设定了中心位置之后,中心位置被设定为基准位置。另夕卜,在设定中心位置之前,以与中心位置相同的方法对基准位置进行更新。因而,基准位置与中心位置是相同的值,因此信息处理装置3也可以不将基准位置与中心位置存储为相分开的数据,能够事先存储为一个数据。因此,在此处说明的处理例中,信息处理装置3使用中心位置数据20来作为用于表示基准位置和中心位置的数据。即,中心位置数据20在设定初始中心位置之前的阶段表示基准位置。
[0202]方向矢量数据22是表示上述方向矢量的数据。在此,方向矢量数据22所表示的方向矢量是基于最新的中心位置决定出的方向矢量。另外,方向矢量数据22所表示的方向矢量是与新获取到的检测磁矢量(最新的检测磁矢量)对应的方向矢量。
[0203]可靠度数据23是表示上述可靠度的数据。第一校正率数据24是表示上述第一校正率的数据。第二校正率数据25是表示上述第二校正率的数据。校正度数据26是表示以基于方向矢量的姿势对第一姿势数据16所表示的姿势进行校正时的校正程度的数据。校正度数据26表示基于上述第一校正率和第二校正率计算出的校正度。
[0204]缓冲器区域27是用于存储检测磁矢量的上述缓冲器的区域。在缓冲器区域27中,存储有作为上述检测磁数据14而存储的数据中的通过上述“ (3-5:将检测磁矢量存储在缓冲器中的方法)”中叙述的方法进行分类后的检测磁数据。
[0205]除了上述的数据以外,在存储器9中还存储有上述分类矢量、判断中所使用的阈值等在信息处理装置的处理(图14)中使用的数据。
[0206]接着,说明本实施方式中的信息处理的详细流程。图14是表示在本实施方式中由信息处理装置3的CPU8执行的信息处理的流程的一例的流程图。在本实施方式中,当启动信息处理系统I时,信息处理装置3的CPU8将存储器9等存储部初始化,将信息处理程序12从程序保存部读入到存储器9中。然后,由CPU8开始执行该信息处理程序12。
[0207]此外,图14?图16所示的流程图中的各步骤的处理不过是单纯的一个例子,只要能够得到同样的结果,则既可以调换各步骤的处理顺序,也可以除了各步骤的处理以外还(或代替各步骤的处理)执行其它处理。另外,在本实施方式中,设由CPU8执行上述流程图的各步骤的处理来进行说明,但是也可以由CPU8以外的处理器、专用电路来执行上述流程图中的一部分步骤的处理。
[0208]在本实施方式中,首先在步骤SI中,CPU8获取从输入装置2发送过来的操作数据。在本实施方式中,输入装置2以每规定期间发送一次的比例向信息处理装置3反复发送操作数据。与此相应地,信息处理装置3逐次接收操作数据。信息处理装置3将接收到的操作数据存储在存储器9的操作数据保存区域13中。由此,获取包含检测磁数据14的操作数据。
[0209]在步骤S2中,CPU8通过除使用磁传感器4的方法以外的其它方法来计算输入装置2的姿势。在本实施方式中,CPU8使用陀螺传感器5和加速度传感器6来计算输入装置2的姿势。作为具体的处理,CPU8从存储器9读出操作数据,基于操作数据所包含的由陀螺传感器5和加速度传感器6检测出的数据来计算姿势。此外,用于基于由陀螺传感器5检测出的角速度和由加速度传感器6检测出的加速度来计算输入装置2的姿势的具体方法可以是任何方法。CPU8将表示计算出的姿势的数据作为第一姿势数据存储在存储器9中。
[0210]在步骤S3中,CPU8执行基于检测磁矢量的姿势计算处理。基于检测磁矢量的姿势计算处理是基于检测磁矢量来计算输入装置2的姿势的处理。在本实施方式中,在基于检测磁矢量的姿势计算处理中,执行使用检测磁矢量对通过步骤S2计算出的姿势进行校正的处理。下面,参照图15来说明基于检测磁矢量的姿势计算处理的详情。
[0211]图15是表示基于检测磁矢量的姿势计算处理的详细流程的一例的流程图。在基于检测磁矢量的姿势计算处理中,首先在步骤Sll中,CPU8判断是否执行基于检测磁矢量的姿势计算处理。根据是否处于在后述的步骤S12中判断为开始姿势计算处理之后来进行步骤Sll的判断。在步骤Sll的判断结果为肯定的情况下,执行步骤S12的处理。另一方面,在步骤Sll的判断结果为否定的情况下,CPU8结束基于检测磁矢量的姿势计算处理。
[0212]在步骤S12中,CPU8判断是否开始姿势计算处理。在本实施方式中,步骤S12的判断是基于用户是否进行了规定的操作来判断的。即,CPU8参照存储在存储器9中的操作数据来判断是否对输入装置2的操作部7进行了规定的操作。在步骤S12的判断结果为肯定的情况下,执行步骤S13的处理。另一方面,在步骤S12的判断结果为否定的情况下,执行后述的步骤S15的处理。此外,在从图14所示的信息处理开始起已是第二次以上进行上述规定的操作的情况下,CPU8也可以忽视该规定的操作而执行步骤S15的处理。或者,在上述情况下,CPU8也可以执行步骤S12的处理(即,也可以将姿势计算处理复位)。
[0213]在步骤S13中,CPU8存储基准磁矢量。即,CPU8将获取到的最新的检测磁矢量存储为基准磁矢量。作为具体的处理,CPU8读出存储在存储器9的操作数据保存区域13中的检测磁数据14,将其作为基准磁数据18存储在存储器中。
[0214]在步骤S14中,CPU8执行初始化处理。初始化处理是将姿势计算处理中使用的各种信息(数据)初始化的处理。在本实施方式中,CPU8执行下面的处理。S卩,CPU8将存储检测磁矢量的缓冲器(缓冲器区域27)清空。另外,基准位置(中心位置)是基于基准磁矢量而设定的。在此,基准磁矢量的终点位置被设定为基准位置。CPU8将表示该终点位置的数据作为中心位置数据20存储在存储器9中。另外,上述记录范围、平均半径以及校正度分别被设定为O。CPU8在存储器9中存储表示O的数据作为平均半径数据19、记录范围数据21以及校正度数据26。另外,在姿势计算处理中的处理阶段被设定为第一阶段。在此,姿势计算处理中的处理阶段被分为设定初始中心位置为止的第一阶段和设定了初始中心位置后的第二阶段。第一阶段是不能进行基于检测磁矢量的姿势计算的阶段。第二阶段是能够进行基于检测磁矢量的姿势计算的阶段。
[0215]另外,在上述步骤S14中,CPU8将当前时间点的使用上述其它方法计算出的姿势(第一姿势数据16)作为基准姿势存储在存储器9中。在以下的情况下使用该基准姿势:在后述的校正处理(步骤S25)中,利用检测磁矢量对使用上述其它方法计算出的姿势进行校正。
[0216]在以上的步骤S14之后,CPU8结束基于检测磁矢量的姿势计算处理。之后,在下次以后的步骤Sf S5的处理循环中的步骤S3的处理中,执行步骤S15以后的处理。
[0217]在步骤S15中,CPU8获取检测磁矢量。S卩,CPU8读出存储在存储器9的操作数据保存区域中的检测磁数据。此外,在其它实施方式中,CPU8也可以在步骤S15的时间点从输入装置2获取操作数据(检测磁数据)。
[0218]在步骤S16中,CPU8计算方向矢量。方向矢量是基于基准位置(中心位置)和新获取到的检测磁矢量而计算出的。例如,通过从新获取到的检测磁矢量减去从该检测磁矢量的起点(原点)向基准位置的矢量来计算出方向矢量。作为具体的处理,CPU8从存储器9读出中心位置数据20,基于通过步骤S15获取到的检测磁矢量和该中心位置数据20来计算方向矢量。CPU8将表示计算出的方向矢量的数据作为方向矢量数据22存储在存储器9中。
[0219]在步骤S17中,CPU8将新获取到的检测磁矢量存储在缓冲器中。即,CPU8从存储器9读出方向矢量数据22和分类矢量,基于方向矢量和分类矢量来选出方向最接近方向矢量的分类矢量。然后,将上述检测磁矢量(在步骤S15中读出的检测磁数据)存储在缓冲器的各区域中的与所选出的分类矢量对应的区域中。此外,例如通过在上述的“(3-5:将检测磁矢量存储在缓冲器中的方法)”中说明的方法来进行分类矢量的选出。
[0220]在步骤S18中,CPU8基于存储在缓冲器中的多个检测磁矢量来计算平均半径。即,CPU8从存储器9读出存储在缓冲器区域27中的检测磁数据和中心位置数据20,基于各检测磁矢量和中心位置(基准位置)来计算平均半径。此外,平均半径能够计算为从中心位置到各检测磁矢量的终点为止的各距离(各半径)的平均值。CPU8将表示计算出的平均半径的数据作为平均半径数据19存储在存储器9中。此外,在本实施方式中,在后述的步骤S32的处理中使用各半径,因此CPU8事先将表示该各半径的数据存储在存储器9中。
[0221]在步骤S19中,CPU8对中心位置(基准位置)进行更新。基于在中心位置(基准位置)的计算中使用的各检测磁矢量、更新前的中心位置(基准位置)以及平均半径来进行中心位置(基准位置)的更新。此外,作为中心位置(基准位置)的具体的更新方法,例如使用在上述的“(3-3:第二处理)”中说明的方法(参照图5)。作为具体的处理,CPU8从存储器9读出存储在缓冲器区域27中的检测磁数据、中心位置数据20以及平均半径数据19,基于这些数据来计算更新后的中心位置。CPU8将表示计算出的中心位置的数据作为新的中心位置数据20存储在存储器9中。此外,在本实施方式中,在后述的步骤S32的处理中使用更新前的中心位置,因此CPU8事先将表示更新前的中心位置的数据存储在存储器9中。
[0222]此外,信息处理装置3也可以将上述的步骤S18的处理和步骤S19的处理并行地执行。例如,CPU8首先读出中心位置数据20和平均半径数据19。接着,CPU8执行包括以下处理的一系列处理:从缓冲器区域27读出一个检测磁矢量;对与该检测磁矢量对应的半径进行累计相加;以及沿与该检测磁矢量对应的半径的方向移动中心位置(参照图5)。CPU8针对存储在缓冲器区域27中的每个检测磁矢量(在每次读出检测磁矢量时)执行上述一系列处理。最后,CPU8使用累计相加得到的半径的值来计算平均半径。此时,计算出的平均半径使用于下一次的处理循环中。此外,在其它实施方式中,CPU8也可以在每次移动中心位置时计算平均半径。CPU8也可以通过以上的处理来执行步骤S18和S19的处理。
[0223]在步骤S20中,CPU8判断处理阶段是否为第一阶段。在后述的步骤S24中处理阶段被设定为第二阶段之前,判断为处理阶段为第一阶段。在步骤S20的判断结果为肯定的情况下,执行步骤S21的处理。另一方面,在步骤S20的判断结果为否定的情况下,执行后述的步骤S25的处理。
[0224]在步骤S21中,CPU8计算记录范围。记录范围可以通过任何方式来进行计算,例如在设定长方体的记录范围的情况下,能够基于当前时间点的记录范围(记录范围数据21)和新获取到的检测磁矢量(通过步骤S15获取到的检测磁矢量)来计算该记录范围。SP,在新获取到的检测磁矢量的终点位于当前时间点的记录范围的外侧的情况下,CPU8对记录范围的一个面进行更新以包含该终点。另外,在该终点位于当前时间点的记录范围的内侧的情况下,不对记录范围进行更新。作为具体的处理,CPU8从存储器9读出记录范围数据21,基于通过步骤S15获取到的检测磁数据和记录范围数据21来计算记录范围。然后,将表示计算出的记录范围的数据作为新的记录范围数据21存储在存储器9中。
[0225]在步骤S22中,CPU8判断记录范围是否大于规定的基准。例如根据作为记录范围的长方体的某一个边是否比规定的阈值(表示规定长度)长来进行该判断。作为具体的处理,CPU8从存储器9读出记录范围数据21和表示上述阈值的数据,来进行上述的判断。在步骤S22的判断结果为肯定的情况下,执行步骤S23的处理。另一方面,在步骤S22的判断结果为否定的情况下,CPU8结束基于检测磁矢量的姿势计算处理。在这种情况下,在接下来的处理循环中执行步骤S11、S12以及S15飞22的处理。然后,在步骤S3的姿势计算处理中执行步骤SI 1、S12以及S15飞22的处理,直到步骤S22的判断结果变为肯定为止。
[0226]在步骤S23中,CPU8计算初始中心位置。例如基于基准磁矢量和记录范围来计算初始中心位置。作为初始中心位置的具体的计算方法,例如使用在上述的“(3-2:第一处理)”中说明的方法(参照图3)。作为具体的处理,CPU8从存储器9读出基准磁数据18和记录范围数据21,基于这些数据来计算初始中心位置。表示计算出的初始中心位置的数据作为新的中心位置数据20存储在存储器9中。由此,中心位置数据20成为表示中心位置(以及基准位置)的数据。
[0227]在步骤S24中,CPU8将处理阶段设定为第二阶段。在步骤S24之后,CPU8结束基于检测磁矢量的姿势计算处理。通过步骤S24的处理,在接下来的处理循环中的步骤S3的处理中,接着步骤S20执行步骤S25的处理。
[0228]在步骤S25中,CPU8执行校正处理。校正处理是使用方向矢量对通过上述的其它方法计算出的输入装置2的姿势进行校正的处理。下面,参照图16来说明校正处理的详情。
[0229]图16是表示校正处理的详细流程的一例的流程图。在校正处理中,首先在步骤S31中,CPU8判断输入装置2的姿势的变化是否大于规定的基准。例如根据输入装置2的姿势的变化量是否为规定量以上来进行步骤S31的判断。在本实施方式中,使用上述的缓冲器来进行上述的判断。即,CPU8判断新获取到的检测磁矢量是否被分类到与之前获取到的检测磁矢量不同的类别中。此外,上述的判断可以通过任何方式来进行。例如在其它实施方式中,也可以使用通过上述其它方法计算出的姿势来进行上述的判断。在步骤S31的判断结果为肯定的情况下,执行步骤S32的处理。另一方面,在步骤S31的判断结果为否定的情况下,跳过步骤S32的处理,执行步骤S33的处理。
[0230]在步骤S32中,CPU8计算可靠度。在本实施方式中,基于中心位置的更新前后的移动量和与各检测磁矢量对应的各半径的长度的偏差来计算可靠度。作为可靠度的具体的计算方法,例如使用在上述的“(关于是否计算姿势的判断)”中说明的方法。作为具体的处理,CPU8从存储器9读出通过上述步骤S19存储的表示更新前后的中心位置的数据和通过上述步骤S18存储的表示各半径的数据,使用这些数据来计算可靠度。表示计算出的可靠度的数据作为可靠度数据23存储在存储器9中。
[0231]在步骤S33中,CPU8判断可靠度是否大于规定的基准。例如根据可靠度是否大于规定的阈值来进行该判断。作为具体的处理,CPU8从存储器9读出可靠度数据23和表示上述阈值的数据,来进行上述的判断。在步骤S33的判断结果为肯定的情况下,执行步骤S34的处理。另一方面,在步骤S33的判断结果为否定的情况下,CPU8结束校正处理。
[0232]在步骤S34中,CPU8计算第一校正率。在本实施方式中,基于从中心位置到新的检测磁矢量的终点位置为止的半径和与基准磁矢量对应的半径(也可以是上述平均半径)之差来计算第一校正率。作为第一校正率的具体的计算方法,例如使用在上述的“(第一校正率)”中说明的方法。作为具体的处理,CPU8读出基准磁数据18和中心位置数据20,使用读出的数据和通过步骤S15获取到的检测磁数据14来计算第一校正率。CPU8将表示计算出的第一校正率的数据作为第一校正率数据24存储在存储器9中。
[0233]在步骤S35中,CPU8计算第二校正率。在本实施方式中,基于与新获取到的检测磁矢量对应的方向矢量的方向和与基准磁矢量对应的方向矢量的方向之差来设定第二校正率。作为第二校正率的具体的计算方法,例如使用在上述的“(第二校正率)”中说明的方法。作为具体的处理,CPU8读出方向矢量数据22、基准磁数据18以及中心位置数据20,使用读出的数据来计算第二校正率。CPU8将表示计算出的第二校正率的数据作为第二校正率数据25存储在存储器9中。
[0234]在步骤S36中,CPU8计算校正度的目标值。在本实施方式中,基于上述第一校正率和第二校正率来计算校正度的目标值。具体地说,通过使第一校正率与第二校正率相乘后再乘以规定的系数来计算校正度的目标值。作为具体的处理,CPU8从存储器9读出第一校正率数据24、第二校正率数据25以及表示上述规定的系数的数据,使用读出的数据来计算校正度的目标值。CPU8将表示计算出的目标值的数据存储在存储器9中。[0235]在步骤S37中,CPU8计算校正度。在本实施方式中,基于上述校正度的目标值来计算校正度。具体地说,在目标值大于当前的校正度的情况下(增大校正度的情况下),CPU8通过使当前的校正度向上述目标值接近规定的比例来计算新的校正度。由此,能够抑制校正度的急剧增加,能够抑制所计算的输入装置2的姿势由于校正度的急剧增加而发生急剧变化的情况。另一方面,在目标值小于当前的校正度的情况下(减小校正度的情况下),CPU8将上述目标值作为新的校正度。此外,在校正度变小的情况下,即使校正度发生急剧变化,输入装置2的姿势也不会发生急剧变化,因此也可以不抑制校正度的急剧变化。作为具体的处理,CPU8从存储器9读出校正度数据26和表示上述目标值的数据,使用读出的数据来计算新的校正度。CPU8将表示计算出的校正度的数据作为校正度数据26存储在存储器9中。
[0236]在步骤S38中,CPU8使用方向矢量来对姿势进行校正。即,基于与最新的检测磁矢量对应的方向矢量来对通过其它方法计算出的姿势进行校正。作为步骤S38中的校正方法,例如使用在上述的“(通过其它方法进行的姿势校正)”和“(校正度的计算)”中说明的方法。作为具体的处理,CPU8从存储器9读出第一姿势数据16、方向矢量数据22以及校正度数据26,使用读出的数据来计算校正后的姿势。CPU8将表示计算出的姿势的数据作为第二姿势数据17存储在存储器9中。由此,计算出基于检测磁矢量的输入装置2的姿势。
[0237]在步骤S38之后,CPU8结束图16所示的校正处理(步骤S25)。另外,在步骤S25之后,CPU8结束图15所示的基于检测磁矢量的姿势计算处理(步骤S3)。
[0238]在图14所示的步骤S4中,CPU8执行基于输入装置2的姿势的信息处理。将通过步骤S3计算出的姿势作为输入来执行该信息处理。例如,CPU8使与上述姿势相应的信息处理的结果所得到的图像显示在显示装置上。
[0239]在步骤S5中,CPU8判断是否结束信息处理。该判断可以通过任何方式来进行,例如根据是否由用户进行了规定的结束指示来进行该判断。在步骤S5的判断结果为否定的情况下,再次执行步骤SI的处理。另一方面,在步骤S5的判断结果为肯定的情况下,CPU8结束图14所示的信息处理。以后,反复执行步骤Sf S5的一系列处理,直到在步骤S5中判断为结束信息处理为止。以上,结束图14所示的信息处理的说明。
[0240][5.其它实施方式]
[0241]在上述实施方式中,以将磁传感器用作检测根据输入装置的姿势而发生变化的值的传感器的情况为例来进行说明。在此,在其它实施方式中,检测根据输入装置的姿势而发生变化的值的传感器也可以是其它传感器。本实施方式中的姿势计算处理在以下情况下有效:从检测根据输入装置的姿势而发生变化的值的传感器获取的检测矢量包含不依赖于输入装置的姿势的分量和依赖于输入装置的姿势的分量。即,信息处理装置3也可以获取上述检测矢量,估计具有基于检测矢量的各终点位置而估计出的曲面的球状体的中心位置,基于表示从中心位置向检测矢量的终点位置的方向的方向矢量来计算输入装置的姿势。
[0242]产业h的可利用件
[0243]如上,本发明以高精确度地计算出输入装置的姿势等为目的,能够作为例如为了游戏操作而使用输入装置的游戏系统、游戏程序等来利用。
【权利要求】
1.一种信息处理系统,计算具备磁传感器的输入部的姿势,该信息处理系统具备: 获取单元,其反复获取由上述磁传感器检测出的检测磁矢量; 中心估计单元,其估计球状体的中心位置,该球状体具有基于多个上述检测磁矢量的各终点位置而估计出的曲面;以及 姿势计算单元,其基于表示从上述中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出上述输入部的姿势, 其中,在每次获取到上述检测磁矢量时,上述中心估计单元对中心位置进行更新,使得从中心位置到在该中心位置的估计中使用的各检测磁矢量的终点为止的各长度中的至少一部分长度分别接近该各长度的平均值。
2.根据权利要求1所述的信息处理系统,其特征在于, 上述中心估计单元根据多个上述检测磁矢量满足了规定的条件的情况,来基于多个该检测磁矢量估计上述中心位置。
3.根据权利要求2所述的信息处理系统,其特征在于, 上述中心估计单元以下面的情况作为上述规定的条件:以包括多个上述检测磁矢量的各终点位置的方式决定出的区域大于规定的大小。
4.根据权利要求2所述的信息处理系统,其特征在于, 上述中心估计单元以下面的情况作为上述规定的条件:多个上述检测磁矢量的各朝向所形成的范围大于规定的范围。
5.根据权利要求2~4中的任一`项所述的信息处理系统,其特征在于, 上述中心估计单元根据满足了上述规定的条件的情况,来将最初的中心位置设定在基于多个上述检测磁矢量的各终点位置而估计出的曲面的凹侧的位置处。
6.根据权利要求2~4中的任一项所述的信息处理系统,其特征在于, 上述中心估计单元将最初的中心位置设定在以包括多个上述检测磁矢量的各终点位置的方式决定出的区域的内部。
7.根据权利要求2~4中的任一项所述的信息处理系统,其特征在于, 上述中心估计单元将最初的中心位置设定在包括多个上述检测磁矢量的各终点位置且大小为最小的长方体的内部。
8.根据权利要求2~4中的任一项所述的信息处理系统,其特征在于, 上述中心估计单元将最初的中心位置设定在多个上述检测磁矢量的各终点位置的重心位置处。
9.根据权利要求2~8中的任一项所述的信息处理系统,其特征在于, 上述姿势计算单元至少以满足了上述规定的条件为条件来进行基于上述方向矢量的上述输入部的姿势的计算。
10.根据权利要求1、中的任一项所述的信息处理系统,其特征在于, 上述中心位置在更新前后的变化量越大,上述姿势计算单元使新获取到的检测磁矢量的影响相对越小来计算上述姿势。
11.根据权利要求f10中的任一项所述的信息处理系统,其特征在于, 从当前的中心位置到在该中心位置的估计中使用的各检测磁矢量的终点位置为止的各长度的偏差越大,上述姿势计算单元使新获取到的检测磁矢量的影响相对越小来计算上述姿势。
12.一种信息处理装置,计算具备磁传感器的输入部的姿势,该信息处理装置具备: 获取部,其反复获取由上述磁传感器检测出的检测磁矢量; 中心估计部,其估计球状体的中心位置,该球状体具有基于多个上述检测磁矢量的各终点位置而估计出的曲面;以及 姿势计算部,其基于表示从上述中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出上述输入部的姿势, 其中,在每次获取到上述检测磁矢量时,上述中心估计部对中心位置进行更新,使得从中心位置到在该中心位置的估计中使用的各检测磁矢量的终点为止的各长度中的至少一部分长度分别接近该各长度的平均值。
13.一种姿势计算方法,计算具备磁传感器的输入部的姿势,该姿势计算方法包括以下步骤: 获取步骤,反复获取由上述磁 传感器检测出的检测磁矢量; 中心估计步骤,估计球状体的中心位置,该球状体具有基于多个上述检测磁矢量的各终点位置而估计出的曲面;以及 姿势计算步骤,基于表示从上述中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出上述输入部的姿势, 其中,在上述中心估计步骤中,在每次获取到上述检测磁矢量时对中心位置进行更新,使得从中心位置到在该中心位置的估计中使用的各检测磁矢量的终点为止的各长度中的至少一部分长度分别接近该各长度的平均值。
14.一种信息处理系统,计算具备磁传感器的输入部的姿势,该信息处理系统具备: 获取单元,其反复获取由上述磁传感器检测出的检测磁矢量; 中心估计单元,其反复估计球状体的中心位置,该球状体具有基于多个上述检测磁矢量的各终点位置而估计出的曲面;以及 姿势计算单元,其基于表示从上述中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出上述输入部的姿势, 其中,获取到的新的检测磁矢量的终点位置距在中心位置的估计中使用的各检测磁矢量的终点位置越远,上述姿势计算单元使新的检测磁矢量的影响相对越小来计算上述姿势。
15.根据权利要求14所述的信息处理系统,其特征在于, 从上述中心位置到新的检测磁矢量的终点位置为止的长度与根据从该中心位置到在该中心位置的估计中使用的检测磁矢量的各终点位置为止的长度而决定出的长度之差越大,上述姿势计算单元使该新的检测磁矢量的影响相对越小来计算上述姿势。
16.根据权利要求14或15所述的信息处理系统,其特征在于, 上述中心估计单元独立于新的检测磁矢量的终点位置与在中心位置的估计中使用的各检测磁矢量的终点位置之间的关系,使用该新的检测磁矢量来对上述中心位置进行更新。
17.根据权利要求1-16中的任一项所述的信息处理系统,其特征在于, 上述姿势计算单元基于上述方向矢量对通过与使用上述检测磁矢量的方法不同的方法计算出的上述输入部的姿势进行校正。
18.根据权利要求17所述的信息处理系统,其特征在于, 还具备校正度设定单元,该校正度设定单元根据从上述中心位置到新的检测磁矢量的终点位置为止的长度与根据从该中心位置到在该中心位置的估计中使用的检测磁矢量的各终点位置为止的长度而决定出的长度之差来设定校正度, 上述姿势计算单元根据上述校正度来改变使用上述方向矢量进行的校正的校正量。
19.根据权利要求14~18中的任一项所述的信息处理系统,其特征在于, 还具备基准设定单元,该基准设定单元将在用户进行了规定的操作时检测出的检测磁矢量设定为基准磁矢量, 从中心位置向新的检测磁矢量的方向越偏离于从该中心位置向上述基准磁矢量的方向,上述姿势计算单元使该新的检测磁矢量的影响相对越小来计算上述姿势。
20.一种姿势计算方法,计算具备磁传感器的输入部的姿势,该姿势计算方法包括以下步骤: 获取步骤,反复获取由上述磁传感器检测出的检测磁矢量; 中心估计步骤,反复估计球状体的中心位置,该球状体具有基于多个上述检测磁矢量的各终点位置而估计出的曲面;以及 姿势计算步骤,基于表示从上述中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出上述输入部的姿势, 其中,在上述姿势计算步骤中,获取到的新的检测磁矢量的终点位置距在中心位置的估计中使用的各检测磁矢量的终点位置越远,使新的检测磁矢量的影响相对越小来计算上述姿势。
21.一种信息处理系统,计算具备磁传感器的输入部的姿势,该信息处理系统具备: 获取单元,其获取由上述磁传感器检测出的检测磁矢量; 存储控制单元,其根据从基于上述检测磁矢量确定出的基准位置向检测磁矢量的终点位置的方向,来将上述检测磁矢量进行分类并存储在存储部中; 中心估计单元,其估计球状体的中心位置,该球状体具有基于从分类后的多个检测磁矢量中针对一个分类至少提取一个检测磁矢量而得到的各检测磁矢量的终点位置而估计出的曲面;以及 姿势计算单元,其基于表示从上述中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出上述输入部的姿势。
22.根据权利要求21所述的信息处理系统,其特征在于, 上述存储控制单元将获取到的检测磁矢量分类到根据从基于上述检测磁矢量确定出的基准位置向检测磁矢量的终点位置的方向而设定的多个类别中的、与从该基准位置向该获取到的检测磁矢量的终点位置的方向相应的类别中。
23.根据权利要求21或22所述的信息处理系统,其特征在于, 上述存储控制单元将基于属于相同分类的一个以上的检测磁矢量得到的一个检测磁矢量存储在上述存储部中, 上述中心估计单元估计球状体的中心位置,该球状体具有基于存储在上述存储部中的检测磁矢量的终点位置而估计出的曲面。
24.根据权利要求23所述的信息处理系统,其特征在于, 在获取到新的检测磁矢量而已经存储有与该新的检测磁矢量属于相同分类的检测磁矢量的情况下,上述存储控制单元用该新的检测磁矢量覆盖已经存储的检测磁矢量来进行存储。
25.根据权利要求24中的任一项所述的信息处理系统,其特征在于, 在计算出上述中心位置之后,在每次获取到上述检测磁矢量时,上述存储控制单元将由上述中心估计单元计算出的最新的中心位置作为上述基准位置来将获取到的该检测磁矢量进行分类并存储。
26.根据权利要求25所述的信息处理系统,其特征在于, 上述中心估计单元在每次新存储了上述检测磁矢量时对上述中心位置进行更新。
27.—种姿势计算方法,计算具备磁传感器的输入部的姿势,该姿势计算方法包括以下步骤: 获取步骤,获取由上述磁传感器检测出的检测磁矢量; 存储控制步骤,根据从基于上述检测磁矢量确定出的基准位置向检测磁矢量的终点位置的方向来将上述检测磁矢量进行分类并存储在存储部中; 中心估计步骤,其估计球状体的中心位置,该球状体具有基于从分类后的多个检测磁矢量中针对一个分类至少提取一个检测磁矢量而得到的各检测磁矢量的终点位置而估计出的曲面;以及 姿势计算步骤,基于表示从上述中心位置向检测磁矢量的终点位置的方向的方向矢量来计算出上述输入部的姿势。
【文档编号】G06F3/01GK103576849SQ201210483689
【公开日】2014年2月12日 申请日期:2012年11月23日 优先权日:2012年7月20日
【发明者】太田敬三 申请人:任天堂株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1