信息處理系統(tǒng)、信息處理裝置以及姿勢計算方法
【專利摘要】提供一種信息處理系統(tǒng)、信息處理裝置以及姿勢計算方法。信息處理裝置計算具備磁傳感器的輸入部的姿勢。信息處理裝置反復(fù)獲取由磁傳感器檢測出的檢測磁矢量。信息處理裝置反復(fù)估計球狀體的中心位置,該球狀體具有基于多個檢測磁矢量的各終點位置而估計出的曲面?;诒硎緩闹行奈恢孟驒z測磁矢量的終點位置的方向的方向矢量來計算出輸入部的姿勢。在每次獲取到檢測磁矢量時,信息處理裝置對中心位置進(jìn)行更新,使得從中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點為止的各長度中的至少一部分長度分別接近該各長度的平均值。
【專利說明】信息處理系統(tǒng)、信息處理裝置以及姿勢計算方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于計算輸入部的姿勢的信息處理系統(tǒng)、信息處理裝置以及姿勢計算方法。
【背景技術(shù)】
[0002]以往,存在使用磁傳感器來計算裝置的姿勢的技術(shù)。例如,能夠通過利用磁傳感器檢測磁場的朝向來計算出裝置相對于磁場的朝向的姿勢。
【發(fā)明內(nèi)容】
[0003]發(fā)明要解決的問題
[0004]在使用磁傳感器來計算姿勢的情況下,期望高精確度地計算姿勢。
[0005]因此,本發(fā)明的目的在于提供一種能夠高精確度地計算裝置的姿勢的信息處理系統(tǒng)、信息處理裝置以及姿勢計算方法。
_6] 用于解決問題的方案
[0007]為了解決上述的問題,本發(fā)明采用了下面的(1(13)的結(jié)構(gòu)。
[0008](I)
[0009]本發(fā)明的一例是計算具備磁傳感器的輸入部的姿勢的信息處理系統(tǒng)。信息處理系統(tǒng)具備獲取單元、中心估計單元以及姿勢計算單元。
[0010]獲取單元反復(fù)獲取由磁傳感器檢測出的檢測磁矢量。中心估計單元估計球狀體的中心位置,該球狀體具有基于多個檢測磁矢量的各終點位置而估計出的曲面。姿勢計算單元基于表示從中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出輸入部的姿勢。
[0011]在每次獲取到檢測磁矢量時,中心估計單元對中心位置進(jìn)行更新,使得從中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點為止的各長度中的至少一部分長度分別接近該各長度的平均值。
[0012]根據(jù)上述(I)的結(jié)構(gòu),在每次獲取到檢測磁矢量時,對中心位置進(jìn)行更新使得各長度接近均等,因此能夠根據(jù)最新的檢測磁矢量來計算更正確的中心位置。由此,能夠更高精確度地計算輸入部的姿勢。另外,在每次獲取到檢測磁矢量時對中心位置進(jìn)行更新,因此能夠在獲取到足夠多的檢測磁矢量之前開始中心位置的計算,能夠提早開始姿勢的計算。
[0013](2)
[0014]中心估計單元根據(jù)多個檢測磁矢量滿足了規(guī)定的條件的情況,來基于該多個檢測磁矢量估計中心位置。
[0015]根據(jù)上述(2)的結(jié)構(gòu),根據(jù)滿足了規(guī)定的條件的情況來估計中心位置,因此能夠降低計算出不正確到無法在姿勢的計算中使用的程度的中心位置的可能性,能夠更高精確度地計算姿勢。
[0016](3)[0017]中心估計單元也可以以下面的情況作為規(guī)定的條件:以包括多個檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域大于規(guī)定的大小。
[0018]根據(jù)上述(3)的結(jié)構(gòu),在基于多個檢測磁矢量的各終點位置的區(qū)域大于規(guī)定的大小的情況下計算中心位置。由此,能夠高精確度地計算中心位置,進(jìn)而能夠更高精確度地計算姿勢。
[0019](4)
[0020]中心估計單元也可以以下面的情況作為規(guī)定的條件:多個檢測磁矢量的各朝向所形成的范圍大于規(guī)定的范圍。
[0021]根據(jù)上述(4)的結(jié)構(gòu),在多個檢測磁矢量的各朝向所形成的范圍大于規(guī)定的范圍的情況下計算中心位置。由此,能夠高精確度地計算中心位置,進(jìn)而能夠更高精確度地計算姿勢。
[0022](5)
[0023]中心估計單元也可以根據(jù)滿足了規(guī)定的條件的情況,來將最初的中心位置設(shè)定在基于多個檢測磁矢量的各終點位置而估計出的曲面的凹側(cè)的位置處。
[0024]根據(jù)上述(5)的結(jié)構(gòu),最初的中心位置被設(shè)定在上述曲面的凹側(cè)的位置處。由此,通過在之后對中心位置進(jìn)行更新,能夠更可靠地使中心位置收斂到正確的位置。
[0025](6)
[0026]中心估計單元也可以將最初的中心位置設(shè)定在以包括多個檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域的內(nèi)部。
[0027]根據(jù)上述(6)的結(jié)構(gòu),最初的中心位置被設(shè)定于以包括多個檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域的內(nèi)部。由此,通過在之后對中心位置進(jìn)行更新,能夠使中心位置逐漸接近球狀體的實際的中心位置。根據(jù)上述,能夠降低將中心位置設(shè)定于偏離到難以通過更新接近球狀體的實際中心的程度的位置的可能性,能夠高精確度地估計中心位置。
[0028](7)
[0029]中心估計單元也可以將最初的中心位置設(shè)定在包括多個檢測磁矢量的各終點位置且大小為最小的長方體的內(nèi)部。
[0030]根據(jù)上述(7)的結(jié)構(gòu),能夠容易地將最初的中心位置設(shè)定在以包括多個檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域的內(nèi)部。
[0031](8)
[0032]中心估計單元也可以將最初的中心位置設(shè)定在多個檢測磁矢量的各終點位置的重心位置處。
[0033]根據(jù)上述(8)的結(jié)構(gòu),能夠可靠地將最初的中心位置設(shè)定在上述曲面的凹側(cè)的位置處。
[0034](9)
[0035]姿勢計算單元也可以至少以滿足了規(guī)定的條件為條件來進(jìn)行基于方向矢量的輸入部的姿勢的計算。
[0036]根據(jù)上述(9)的結(jié)構(gòu),能夠降低使用不正確的中心位置計算出不正確的姿勢的可能性,能夠更高精確度地計算姿勢。
[0037](10)[0038]也可以是,中心位置在更新前后的變化量越大,姿勢計算單元使新獲取到的檢測磁矢量的影響相對越小來計算姿勢。
[0039]根據(jù)上述(10)的結(jié)構(gòu),在中心位置的變化量(移動量)大的情況下,新的檢測磁矢量對姿勢計算的影響變小。在此,在中心位置的變化量大的情況下,認(rèn)為中心位置有可能不正確。因而,根據(jù)上述(10)的結(jié)構(gòu),能夠降低由于使用有可能不正確的中心位置而計算出不正確的姿勢的可能性,進(jìn)而能夠高精確度地計算姿勢。
[0040](11)
[0041]也可以是,從當(dāng)前的中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點位置為止的各長度的偏差越大,姿勢計算單元使新獲取到的檢測磁矢量的影響相對越小來計算姿勢。
[0042]根據(jù)上述(11)的結(jié)構(gòu),在上述的偏差大的情況下,新的檢測磁矢量對姿勢計算的影響變小。在此,在上述的偏差大的情況下,認(rèn)為中心位置有可能不正確。因而,根據(jù)上述
(11)的結(jié)構(gòu),能夠降低由于使用有可能不正確的中心位置而計算出不正確的姿勢的可能性,進(jìn)而能夠高精確度地計算姿勢。
[0043](12)
[0044]另外,本發(fā)明的另一例是計算具備磁傳感器的輸入部的姿勢的信息處理系統(tǒng)。信息處理系統(tǒng)具備獲取單元、中心估計單元以及姿勢計算單元。
[0045]獲取單元反復(fù)獲取由磁傳感器檢測出的檢測磁矢量。中心估計單元反復(fù)估計球狀體的中心位置,該球狀體具有基于多個檢測磁矢量的各終點位置而估計出的曲面。姿勢計算單元基于表示從中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出輸入部的姿勢。
[0046]獲取到的新的檢測磁矢量的終點位置距在中心位置的估計中使用的各檢測磁矢量的終點位置越遠(yuǎn),姿勢計算單元使新的檢測磁矢量的影響相對越小來計算姿勢。
[0047]根據(jù)上述(12)的結(jié)構(gòu),在新獲取到的檢測磁矢量的終點位置距到此為止獲取到的各檢測磁矢量的終點位置相對遠(yuǎn)的情況下,信息處理裝置使新的檢測磁矢量的影響相對小來計算輸入部的姿勢。由此,在上述的情況下,能夠降低基于不正確的方向矢量計算出姿勢的可能性。由此,能夠高精確度地計算輸入部的姿勢。
[0048]另外,根據(jù)上述(12)的結(jié)構(gòu),在新獲取到的檢測磁矢量的終點位置距到此為止獲取到的各檢測磁矢量的終點位置相對近的情況下,信息處理裝置使新的檢測磁矢量的影響相對大來計算輸入部的姿勢。由此,即使在估計出的中心位置未充分收斂到實際的中心位置附近的情況下,也能夠使用能夠預(yù)計為某種程度上正確的方向矢量來計算姿勢。即,根據(jù)上述,即使在估計出的中心位置未充分收斂到實際的中心位置附近的情況下,也能夠在不會計算出不正確的姿勢的范圍內(nèi)使用方向矢量來進(jìn)行姿勢計算。因而,根據(jù)上述(12)的結(jié)構(gòu),能夠提早計算出姿勢。
[0049](13)
[0050]另外,本發(fā)明的另一例是計算具備磁傳感器的輸入部的姿勢的信息處理系統(tǒng)。信息處理系統(tǒng)具備獲取單元、存儲控制單元、中心估計單元以及姿勢計算單元。
[0051]獲取單元獲取由磁傳感器檢測出的檢測磁矢量。存儲控制單元根據(jù)從基于檢測磁矢量確定出的基準(zhǔn)位置向檢測磁矢量的終點位置的方向,來將檢測磁矢量進(jìn)行分類并存儲在存儲部中。中心估計單元估計球狀體的中心位置,該球狀體具有基于從分類后的多個檢測磁矢量中針對一個分類至少提取一個檢測磁矢量而得到的各檢測磁矢量的終點位置而估計出的曲面。姿勢計算單元基于表示從中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出輸入部的姿勢。
[0052]根據(jù)上述(13)的結(jié)構(gòu),根據(jù)從基準(zhǔn)位置向檢測磁矢量的終點的方向?qū)z測磁矢量進(jìn)行分類。在此,通過使用朝向各種方向的方向矢量,易于更正確地計算出要估計的中心位置。即,通過如上述(13)的結(jié)構(gòu)那樣根據(jù)從基準(zhǔn)位置向檢測磁矢量的終點的方向?qū)z測磁矢量進(jìn)行分類,能夠使用朝向各種方向的檢測磁矢量來估計中心位置。由此,能夠更正確地估計中心位置,能夠高精確度地計算輸入部的姿勢。
[0053]此外,本發(fā)明的其它一例既可以是具備與上述(I廣(13)的信息處理系統(tǒng)中的各單元同等的單元的信息處理裝置,也可以是在上述(I廣(13)中執(zhí)行的姿勢計算方法。
[0054]發(fā)明的效果
[0055]根據(jù)本發(fā)明,在每次獲取到檢測磁矢量時對中心位置進(jìn)行更新等,由此能夠更高精確度地計算出輸入部的姿勢。
【專利附圖】
【附圖說明】
[0056]圖1是表示本實施方式所涉及的信息處理系統(tǒng)的一例的框圖。
[0057]圖2是表示檢測磁矢量和方向矢量的一例的圖。
[0058]圖3是表示所設(shè)定的初始中心位置的一例的圖。
[0059]圖4是表示通過更新處理進(jìn)行更新前后的中心位置的一例的圖。
[0060]圖5是將圖4所示的區(qū)域的一部分放大后得到的圖。
[0061]圖6是表示使用方向矢量來校正輸入裝置2的姿勢的方法的一例的圖。
[0062]圖7是表示第一校正率的設(shè)定方法的一例的圖。
[0063]圖8是表示第二校正率的設(shè)定方法的一例的圖。
[0064]圖9是表示將可靠度計算得高的情況下的中心位置的一例的圖。
[0065]圖10是表示緩沖器的結(jié)構(gòu)的一例的圖。
[0066]圖11是表示檢測磁矢量的分類方法的一例的圖。
[0067]圖12是表示配置在三維空間中的各分類矢量的終點位置的一例的圖。
[0068]圖13是表示在信息處理系統(tǒng)的存儲部中設(shè)定的數(shù)據(jù)區(qū)域的一例的圖。
[0069]圖14是表示由信息處理裝置的CPU執(zhí)行的信息處理的流程的一例的流程圖。
[0070]圖15是表示基于檢測磁矢量的姿勢計算處理的詳細(xì)流程的一例的流程圖。
[0071]圖16是表示校正處理的詳細(xì)流程的一例的流程圖。
[0072]附圖標(biāo)記說明
[0073]1:信息處理系統(tǒng);2:輸入裝置;3:信息處理裝置;4:磁傳感器;5:陀螺傳感器(gyrosensor) ;6:加速度傳感器;7:操作部;8 =CPU ;9:存儲器;12:信息處理程序;27:緩沖器區(qū)域。
【具體實施方式】
[0074][1.信息處理系統(tǒng)的結(jié)構(gòu)][0075]下面,說明本實施方式的一例所涉及的信息處理系統(tǒng)、信息處理裝置、信息處理程序以及姿勢計算方法。圖1是表示本實施方式所涉及的信息處理系統(tǒng)的一例的框圖。在圖1中,信息處理系統(tǒng)I具備輸入裝置2和信息處理裝置3。本實施方式中的信息處理系統(tǒng)I使用對與輸入裝置2的姿勢相應(yīng)的值進(jìn)行檢測的傳感器(磁傳感器等)來計算輸入裝置2的姿勢。
[0076]信息處理系統(tǒng)I包括輸入裝置2。輸入裝置2是便攜式的裝置,換言之是用戶所能夠把持的裝置。輸入裝置2能夠與信息處理裝置3進(jìn)行通信。輸入裝置2將表示對輸入裝置2進(jìn)行的操作的操作數(shù)據(jù)發(fā)送到信息處理裝置3。輸入裝置2與信息處理裝置3之間的通信既可以是無線發(fā)送也可以是有線通信。
[0077]輸入裝置2具有磁傳感器4。磁傳感器4檢測磁場的大小和方向。在此,將表不由磁傳感器4檢測出的磁場的大小和方向的矢量稱為檢測磁矢量。輸入裝置2將表示檢測磁矢量的數(shù)據(jù)作為操作數(shù)據(jù)發(fā)送到信息處理裝置3。磁傳感器4在本實施方式中以三維的值來檢測磁場的大小和方向,但是也可以以二維以上的值來檢測磁場的大小和方向。在本說明書中,詳細(xì)說明基于磁傳感器4的檢測結(jié)果來計算姿勢的方法。
[0078]輸入裝置2具備陀螺傳感器5。陀螺傳感器5檢測與以輸入裝置2的規(guī)定軸向(在本實施方式中為三個軸向,但是一個軸以上即可)為軸的旋轉(zhuǎn)有關(guān)的角速度。另外,輸入裝置2具有加速度傳感器6。加速度傳感器6檢測與輸入裝置2的規(guī)定軸向(在本實施方式中為三個軸向,但是一個軸以上即可)有關(guān)的加速度。輸入裝置2將由陀螺傳感器5和加速度傳感器6檢測出的數(shù)據(jù)作為操作數(shù)據(jù)發(fā)送到信息處理裝置3。陀螺傳感器5和加速度傳感器6用于計算輸入裝置2的姿勢。即,在本實施方式中,信息處理系統(tǒng)I能夠通過除使用磁傳感器4的方法以外的其它方法來計算輸入裝置2的姿勢。此外,在其它實施方式中,信息處理系統(tǒng)I也可以不具備通過上述其它方法來計算姿勢的手段(陀螺傳感器5和加速度傳感器6)。另外,上述其它方法可以是任何方法,例如,信息處理系統(tǒng)I也可以基于由能夠拍攝輸入裝置2的照相機(jī)、或者設(shè)置于輸入裝置2中的照相機(jī)拍攝到的圖像來計算輸入裝置2的姿勢。
[0079]輸入裝置2具有操作部7。操作部7是按鈕(按鍵)、搖桿以及觸摸面板等任意的操作裝置。輸入裝置2將表示對操作部7進(jìn)行的操作的數(shù)據(jù)作為操作數(shù)據(jù)發(fā)送到信息處理裝置3。
[0080]此外,輸入裝置2是具備輸出與輸入裝置2的姿勢相應(yīng)的值的傳感器的任意的結(jié)構(gòu)即可。例如在其它實施方式中,既可以構(gòu)成為不具備圖1所示的結(jié)構(gòu)的若干結(jié)構(gòu),也可以具備除上述以外的其它結(jié)構(gòu)。
[0081]信息處理系統(tǒng)I包括信息處理裝置3。信息處理裝置3接收從輸入裝置2發(fā)送的操作數(shù)據(jù)(檢測磁矢量的數(shù)據(jù)),基于該數(shù)據(jù)來計算輸入裝置2的姿勢。另外,在本實施方式中,信息處理裝置3將計算出的姿勢作為輸入來執(zhí)行規(guī)定的信息處理。該規(guī)定的信息處理可以是任何處理,例如也可以是游戲處理(根據(jù)姿勢來控制配置于虛擬空間中的游戲?qū)ο蟮膭幼鞯奶幚?。另外,信息處理裝置3也可以通過上述信息處理來生成圖像,使所生成的圖像顯示在顯示裝置上。顯示裝置既可以與輸入裝置2和信息處理裝置3相獨立地設(shè)置,也可以是信息處理裝置3或輸入裝置2所具有的顯示部。
[0082]在本實施方式中,信息處理裝置3具有CPU (控制部)8和存儲器9,由CPU8使用存儲器9來執(zhí)行規(guī)定的信息處理程序,由此實現(xiàn)信息處理裝置3的各種功能(圖14~圖16所示的信息處理)。此外,信息處理裝置3只要能夠執(zhí)行計算輸入裝置2的姿勢的處理就可以是任何結(jié)構(gòu)。
[0083] 此外,在其它實施方式中,信息處理系統(tǒng)I也可以由一個裝置構(gòu)成。即,也可以將輸入裝置(輸入部)2與信息處理裝置3構(gòu)成為一體的裝置。例如,信息處理系統(tǒng)I也可以是智能電話、便攜式游戲裝置等的便攜終端。
[0084][2.姿勢計算的方法]
[0085]下面,說明基于磁傳感器4的檢測結(jié)果來計算輸入裝置2的姿勢的方法。在本實施方式中,信息處理系統(tǒng)I (信息處理裝置3)基于由磁傳感器4檢測出的檢測磁矢量來計算姿勢。在此,由磁傳感器4檢測出的磁場被分為磁場的方向不依賴于輸入裝置2的姿勢的分量以及磁場的方向依賴于輸入裝置2的姿勢的分量。磁場的方向不依賴于輸入裝置2的姿勢的分量是指例如由輸入裝置2本身產(chǎn)生的磁場(輸入裝置2所帶有的磁性)。關(guān)于該分量,即使輸入裝置2的姿勢發(fā)生變化,磁傳感器4所檢測出的方向也不變化。
[0086]另一方面,磁場的方向依賴于輸入裝置2的姿勢的分量是指基于例如地磁場等在輸入裝置2的周圍的空間產(chǎn)生的磁場的分量。關(guān)于該分量,與輸入裝置2的姿勢發(fā)生變化的情況相應(yīng)地,磁傳感器4所檢測出的方向發(fā)生變化。因而,信息處理裝置3基于檢測磁矢量來計算(估計)依賴于輸入裝置2的姿勢的分量,由此計算輸入裝置2的姿勢。下面,將基于檢測磁矢量計算出的表示依賴于輸入裝置2的姿勢的分量的矢量、即表示與姿勢相應(yīng)的方向的矢量稱為“方向矢量”。
[0087]圖2是表示檢測磁矢量和方向矢量的一例的圖。此外,在圖2中,在以檢測磁矢量Vd的起點為原點的xyz坐標(biāo)系中示出各矢量。上述檢測磁矢量Vd的大小和方向與輸入裝置2的姿勢的變化相應(yīng)地發(fā)生變化。在輸入裝置2朝向所有方向地改變姿勢的情況下,檢測磁矢量Vd的終點(頂端)如圖2所示那樣形成球狀體的面。該球狀體理想的是球體,但是嚴(yán)格地說也存在不會成為球體而稍有變形(變?yōu)闄E圓球狀)的情況(即,方向矢量的大小根據(jù)輸入裝置2的姿勢而發(fā)生少許變化)。下面,將上述的球狀體稱為“磁球體”。
[0088]在此,檢測磁矢量Vd能夠分為矢量Vo和矢量Va。矢量Vo是以原點(檢測磁矢量Vd的起點)為起點、以磁球體的中心位置P為終點的矢量,表示不依賴于輸入裝置2的姿勢的分量。另一方面,矢量Va是以中心位置P為起點、以檢測磁矢量Vd的終點為終點的矢量。矢量Va是表示依賴于輸入裝置2的姿勢的分量的矢量、即方向矢量。
[0089]據(jù)以上,能夠通過估計磁球體的中心位置P并根據(jù)它計算出方向矢量Va,來計算輸入裝置2的姿勢。即,信息處理系統(tǒng)I (信息處理裝置3)獲取由磁傳感器4檢測出的檢測磁矢量Vd。然后,估計球狀體(磁球體)的中心位置P,該球狀體具有基于多個檢測磁矢量Vd的各終點位置而估計出的曲面。進(jìn)一步基于表示從中心位置P向檢測磁矢量Vd的終點位置的方向的方向矢量Va來計算輸入裝置2的姿勢。下面,進(jìn)一步詳細(xì)地說明用于計算輸入裝置2的姿勢的姿勢計算處理。
[0090][3.姿勢計算處理]
[0091](3-1:姿勢計算處理的流程)
[0092]在本實施方式中,在姿勢計算處理中,信息處理裝置3執(zhí)行下面的第一處理~第三處理。[0093].第一處理:反復(fù)獲取檢測磁矢量并在獲取到的多個檢測磁矢量滿足規(guī)定的條件的情況下估計磁球體的中心位置(初始中心位置)的處理
[0094].第二處理:在估計出初始中心位置之后基于獲取到的檢測磁矢量對中心位置進(jìn)行更新的處理
[0095].第三處理:在計算出初始中心位置之后使用基于中心位置決定出的方向矢量來計算輸入裝置2的姿勢的處理
[0096]姿勢計算處理可以在任何時刻開始,但是在本實施方式中,根據(jù)用戶進(jìn)行了規(guī)定的操作的情況,來開始該姿勢計算處理。當(dāng)開始姿勢計算處理時,首先執(zhí)行上述第一處理。在第一處理中,信息處理裝置3從輸入裝置2反復(fù)獲取檢測磁矢量。另外,信息處理裝置3在獲取到的多個檢測磁矢量滿足規(guī)定的條件的情況下,基于該多個檢測磁矢量來估計初始中心位置。此外,初始中心位置是指在姿勢計算處理中最初估計(計算)出的中心位置。
[0097]當(dāng)通過上述第一處理計算出中心位置時,執(zhí)行上述第二處理和第三處理。在第二處理中,信息處理裝置3在每次獲取到檢測磁矢量時,考慮新獲取到的檢測磁矢量來對中心位置進(jìn)行更新。由此,能夠?qū)⒅行奈恢眯拚秊楦_的位置,從而能夠高精確度地計算輸入裝置2的姿勢。
[0098]另外,在第三處理中,能夠通過使用中心位置來基于檢測磁矢量計算方向矢量。在本實施方式中,信息處理裝置3在規(guī)定的條件被滿足的情況下計算與新獲取到的檢測磁矢量對應(yīng)的方向矢量,使用計算出的方向矢量來計算輸入裝置2的姿勢。
[0099]此外,上述第二處理和第三處理是并行執(zhí)行的。即,在計算出中心位置之后,反復(fù)執(zhí)行第二處理和第三處理。因而,在計算出中心位置之后,反復(fù)執(zhí)行檢測磁矢量的獲取處理、中心位置的更新處理以及基于方向矢量的姿勢的計算處理。
[0100]下面,具體地說明上述第一處理?第三處理。此外,在下面的說明中使用的附圖中,以易于理解附圖為目的,使用二維平面來進(jìn)行說明。但是,在本實施方式中,實際上是使用三維空間中的三維的矢量和位置等來進(jìn)行計算。此外,在其它實施方式中,也可以為了計算輸入裝置2在二維平面中的姿勢而使用二維平面中的二維的矢量和位置等來執(zhí)行第一處理?第三處理。
[0101](3-2:第一處理)
[0102]在第一處理中,信息處理裝置3反復(fù)獲取檢測磁矢量。獲取到的檢測磁矢量被存儲在緩沖器中,該緩沖器設(shè)置于能夠由信息處理裝置3進(jìn)行訪問的存儲部中。在本實施方式中,存儲在緩沖器中的檢測磁矢量的最大數(shù)量是受限的,將滿足規(guī)定的條件的檢測磁矢量留在緩沖器中,從緩沖器中刪除被判斷為不需要的檢測磁矢量,詳情在后面敘述。而且,將存儲在緩沖器中的檢測磁矢量使用于中心位置的估計(計算)。此外,下面,為了與由信息處理裝置3估計(計算)出的中心位置加以區(qū)分,將磁球體的正確的中心位置記載為“實際的中心位置”。
[0103](關(guān)于是否計算初始中心位置的判斷)
[0104]在第一處理中,信息處理裝置3在每次獲取到檢測磁矢量時判斷是否計算初始中心位置。即,信息處理裝置3在每次獲取到檢測磁矢量時,判斷到此為止獲取到的檢測磁矢量是否滿足規(guī)定的條件。然后,在滿足了規(guī)定的條件的情況下,估計(計算)最初的中心位置(初始中心位置)。上述規(guī)定的條件是用于判斷是否獲取到了足以估計中心位置的檢測磁矢量的條件。根據(jù)本實施方式,根據(jù)規(guī)定的條件已被滿足的情況來估計中心位置,因此能夠降低計算出不正確到無法在姿勢的計算中使用的程度的中心位置的可能性,能夠更高精確度地計算姿勢。
[0105]但是,本實施方式中的姿勢計算處理并不是為了估計中心位置而需要非常多的檢測磁矢量。在本實施方式中的姿勢計算處理中,只要獲取與上述磁球體的球面的一部分相當(dāng)?shù)臋z測磁矢量就能夠估計出中心位置,詳情在后面敘述。即,在本實施方式中,無需為了估計中心位置而使輸入裝置2朝向各個方向,即使在輸入裝置2幾乎朝向一個方向的狀態(tài)下也能夠估計出中心位置。此外,考慮以下的方法:為了估計上述中心位置,使用戶進(jìn)行將輸入裝置2例如沿8字移動的操作,從而獲取朝向各個方向的檢測磁矢量。在本實施方式中,能夠不使用戶進(jìn)行這種操作(也可以以更高精確度地估計中心位置等為目的而進(jìn)行這種操作)而估計出中心位置。
[0106]在本實施方式中,信息處理裝置3以下面的情況為條件來計算初始中心位置:以包括多個檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域達(dá)到規(guī)定的大小。具體地說,信息處理裝置3基于檢測磁矢量來設(shè)定記錄范圍,判斷所設(shè)定的記錄范圍是否達(dá)到規(guī)定的大小。下面,參照圖3來詳細(xì)說明是否計算初始中心位置的判斷。
[0107]圖3是表示所設(shè)定的初始中心位置的一例的圖。信息處理裝置3在每次獲取到檢測磁矢量時設(shè)定記錄范圍(參照圖3)。記錄范圍被設(shè)定成包括存儲在緩沖器中的各檢測磁矢量的各終點。在本實施方式中,記錄范圍被設(shè)定為包括上述各終點的、大小為最小的長方體。更具體地說,為了易于計算,記錄范圍被設(shè)定為由與包括用于表示檢測磁矢量的三維坐標(biāo)系(xyz坐標(biāo)系)中的任意兩個軸的平面(xy平面、yz平面以及χζ平面)平行的面構(gòu)成的長方體。此外,記錄范圍也可以是基于檢測磁矢量(檢測磁矢量的終點位置)決定出的任意的區(qū)域。例如,記錄范圍的形狀并不限于長方體,也可以是球體等的任何形狀。
[0108]當(dāng)設(shè)定了記錄范圍時,信息處理裝置3執(zhí)行記錄范圍是否大于規(guī)定的大小的判斷處理。具體地說,信息處理裝置3判斷作為記錄范圍的長方體的任一個邊是否比規(guī)定長度長。此外,該規(guī)定長度是比預(yù)計能夠計算姿勢的最小的磁球體的直徑短的長度,也可以被設(shè)定為例如圖12所示的多面體的一個邊的一半的長度左右(與直徑相比足夠短的程度),詳情在后面敘述。這樣,在本實施方式中,即使沒有大幅改變輸入裝置2的姿勢,也能夠開始中心位置的計算。
[0109]在上述判斷處理中判斷為記錄范圍大于規(guī)定的大小的情況下,計算初始中心位置。此外,也可以利用判斷記錄范圍的大小的任意的判斷方法來進(jìn)行上述判斷處理。例如,信息處理裝置3也可以判斷記錄范圍的體積是否大于規(guī)定的大小。
[0110]如上,在本實施方式中,以下面的情況為條件來計算初始中心位置:以包括在中心位置的計算中使用的多個檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域(記錄范圍)大于規(guī)定的大小。此外,在其它實施方式中,信息處理裝置3也可以將上述多個檢測磁矢量的各方向所形成的范圍大于規(guī)定的范圍的情況作為條件來計算初始中心位置。例如,也可以將下面的情況作為條件來計算初始中心位置:以包括上述多個檢測磁矢量的各方向的方式?jīng)Q定出的立體角大于規(guī)定的大小。
[0111](初始中心位置的計算方法)
[0112]基于存儲在緩沖器中的多個檢測磁矢量來計算初始中心位置。在本實施方式中,初始中心位置被設(shè)定在以包括上述多個檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域(在此為上述記錄范圍)的內(nèi)部。換言之,初始中心位置被設(shè)定在作為上述記錄范圍的長方體的內(nèi)部。由此,初始中心位置被設(shè)定在上述多個檢測磁矢量的各終點的周圍,能夠通過后述的中心位置的更新處理(第二處理)而逐漸接近磁球體的中心。即,能夠降低初始中心位置被設(shè)定在(難以通過更新處理接近磁球體的中心的程度地)大幅偏離的位置處的可能性,能夠?qū)⒊跏贾行奈恢迷O(shè)定在適當(dāng)?shù)奈恢锰帯?br>
[0113]如圖3所示,初始中心位置pi被設(shè)定在從存儲在緩沖器中的各檢測磁矢量(VdrVd3)中的基準(zhǔn)磁矢量的終點Si向記錄范圍的中心c的方向延伸的直線L上的、與該終點Si相距規(guī)定距離的位置Pl處。上述基準(zhǔn)磁矢量可以通過任何方式來決定,而在本實施方式中,設(shè)為最初獲取到的檢測磁矢量Vdl。此外,在其它實施方式中,也可以將上述各檢測磁矢量中的、朝向與從原點向記錄范圍的中心c的方向最接近的方向的檢測磁矢量設(shè)為基準(zhǔn)磁矢量。
[0114]如上所述,通過將初始中心位置設(shè)定在從基準(zhǔn)磁矢量的終點的位置Si向記錄范圍的中心c的方向延伸的直線L上,初始中心位置pi被設(shè)定在相對于基于上述各檢測磁矢量的各終點sf s3而估計出的曲面(在圖3中為弧s2s3)的凹側(cè)的位置處。此外,如果將初始中心位置設(shè)定在上述曲面的凸側(cè)的位置處,則存在以下的可能:通過后述的中心位置的更新處理(第二處理),中心位置進(jìn)一步向凸側(cè)移動,從而不會正確地收斂到磁球體的實際的中心位置P。與此相對,通過將初始中心位置設(shè)定在上述曲面的凹側(cè)的位置處,能夠通過上述更新處理使中心位置更可靠地收斂(能夠降低錯誤地向凸側(cè)收斂的可能性)。
[0115]另外,上述規(guī)定距離可以通過任何方式來決定,而在本實施方式中,設(shè)定為記錄范圍的最長邊的一半的長度(參照圖3)。由此,能夠可靠地使初始中心位置pi處于記錄范圍內(nèi)的位置。另外,通過將上述規(guī)定距離設(shè)為最長邊的一半的長度,能夠?qū)⒊跏贾行奈恢迷O(shè)定在相對于基于各檢測磁矢量的各終點而估計出的曲面的更為凹側(cè)的位置處。由此,能夠?qū)⒊跏贾行奈恢肞l設(shè)定在更接近磁球體的實際的中心位置P的(可能性高的)位置處,因此中心位置易于收斂到實際的中心位置P。此外,在其它實施方式中,初始中心位置也可以被設(shè)定在上述直線L上的其它位置處,例如也可以被設(shè)定在上述直線L與記錄范圍的面的交點處。
[0116]此外,在其它實施方式中,信息處理裝置3也可以將初始中心位置設(shè)定在上述各檢測磁矢量的各終點的重心位置處。另外,在其它實施方式中,也可以使用上述重心位置來代替上述記錄范圍的中心的位置。通過這些方式,也能夠?qū)⒊跏贾行奈恢迷O(shè)定在以包括各檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域(記錄范圍)的內(nèi)部,能夠?qū)⒊跏贾行奈恢迷O(shè)定在上述曲面的凹側(cè)的位置處。
[0117]另外,在其它實施方式中,信息處理裝置3也可以采用以下的方法:計算(估計)與上述各檢測磁矢量的各終點相隔相同距離的位置、即實際的中心位置P。此外,根據(jù)本實施方式,與上述的方法相比能夠更容易且迅速地計算出初始中心位置。
[0118](3-3:第二處理)
[0119]在如上所述那樣設(shè)定了初始中心位置之后,信息處理裝置3逐次更新中心位置。即,在每次獲取到檢測磁矢量時,基于獲取到的檢測磁矢量來計算新的中心位置。在本實施方式中,信息處理裝置3使用與從中心位置到檢測磁矢量的終點位置為止的線段(半徑)的長度有關(guān)的條件來計算(更新后的)中心位置。具體地說,信息處理裝置3在新獲取到檢測磁矢量的情況下,對中心位置進(jìn)行更新使得從中心位置到(在該中心位置的估計中使用的)各檢測磁矢量的終點為止的各半徑的長度分別接近該各半徑的長度的平均值。下面,參照圖4來說明中心位置的更新處理的詳情。
[0120]圖4是表示通過更新處理進(jìn)行更新前后的中心位置的一例的圖。在圖4中,示出了在設(shè)定圖3所示的初始中心位置pi之后獲取到新的檢測磁矢量Vd4的情況。在這種情況下,信息處理裝置3分別計算從當(dāng)前的中心位置pi到各檢測磁矢量(VdfVd4)的終點的各線段rl\4的長度。此外,從中心位置到檢測磁矢量的終點的線段也可以說是磁球體的半徑。因此在本說明書中,有時將上述線段記載為“半徑”。此外,要注意存在以下的情況:在估計出的中心位置與實際的中心位置不一致的情況下,從估計出的中心位置到多個檢測磁矢量的各終點位置的各個“半徑”并非是相同的長度。另外,信息處理裝置3計算上述各線段的平平均值(平均半徑)。
[0121]信息處理裝置3對中心位置pi進(jìn)行更新,使得上述各半徑rll4的長度接近平均半徑。具體地說,信息處理裝置3針對每個檢測磁矢量進(jìn)行以下的處理:將半徑的長度變更半徑與平均半徑之差的規(guī)定比例(例如差的20%)。該處理換言之是使中心位置沿該半徑的方向移動以變更半徑的長度的處理。圖5是將圖4所示的區(qū)域的一部分放大后得到的圖。在圖4和圖5所示的例子中,通過對半徑rl進(jìn)行變更的處理,中心位置pi向與半徑rl平行的方向移動。此外,在該例中平均半徑大于半徑rl,因此中心位置pi向使半徑rl變大的方向移動(參照圖5所示的箭頭)。同樣地,通過對半徑r2進(jìn)行變更的處理,中心位置pi向與半徑r2平行的方向移動,通過對半徑r3進(jìn)行變更的處理,中心位置pi向與半徑r3平行的方向移動,通過對半徑r4進(jìn)行變更的處理,中心位置pi向與半徑r4平行的方向移動(參照圖5所示的箭頭)。對上述半徑rll4的長度進(jìn)行變更的處理的結(jié)果是,中心位置pi移動到中心位置p2。
[0122]如上所述,通過中心位置的更新處理,各半徑被變更為接近平均半徑,即各半徑被變更為接近均等。即,中心位置被更新為接近磁球體的實際的中心位置P (參照圖5)。因而,通過更新處理,能夠更高精確度地計算中心位置,能夠更正確地計算輸入裝置2的姿勢。此夕卜,在本實施方式中,將初始中心位置設(shè)定在各檢測磁矢量的終點的周圍(上述記錄范圍內(nèi))。因此,在本實施方式中,相對于實際的中心位置P和各終點,初始中心位置(很有可能)被設(shè)定在與各終點更近的一側(cè)。因而,上述更新處理可以說是使中心位置向遠(yuǎn)離各終點的方向移動的處理。
[0123]此外,在本實施方式中,信息處理裝置3將使中心位置移動的處理只執(zhí)行與檢測磁矢量的數(shù)量相應(yīng)的次數(shù),來作為一次更新處理。該處理并非是反復(fù)移動中心位置直到各半徑變?yōu)槠骄霃綖橹沟奶幚?,因此信息處理裝置3能夠迅速地進(jìn)行一次更新處理。
[0124]此外,在其它實施方式中,在一次更新處理中也可以關(guān)于存儲在緩沖器中的多個檢測磁矢量中的一部分執(zhí)行使中心位置移動的處理。即,信息處理裝置3在新獲取到檢測磁矢量的情況下,也可以針對在中心位置的估計中使用的各檢測磁矢量中的若干檢測磁矢量對中心位置進(jìn)行更新,使得從中心位置到該若干檢測磁矢量的終點為止的半徑的長度分別接近各半徑(與在中心位置的估計中使用的各檢測磁矢量對應(yīng)的各半徑)的長度的平均值。例如,在一次更新處理中也可以針對上述多個檢測磁矢量的一半檢測磁矢量執(zhí)行中心位置的移動處理,在下一次更新處理中針對剩下的一半檢測磁矢量執(zhí)行中心位置的移動處理,其結(jié)果是,通過兩次更新處理,針對該多個檢測磁矢量的全部進(jìn)行了中心位置的移動。由此,能夠減輕一次更新處理中的信息處理裝置3的處理負(fù)擔(dān)。
[0125]在本實施方式中,信息處理裝置3在每次新獲取到檢測磁矢量時,至少使用新獲取到的檢測磁矢量來對中心位置進(jìn)行更新。因而,在每次獲取到檢測磁矢量時,中心位置逐漸接近實際的中心位置P。其結(jié)果是,當(dāng)經(jīng)過某種程度的時間時,中心位置變?yōu)閷嶋H的中心位置P附近的位置。
[0126]此外,在本實施方式中,即使在估計出中心位置已位于實際的中心位置P附近的情況下(例如,通過更新處理,中心幾乎不移動的情況下),信息處理裝置3也在每次新獲取到檢測磁矢量時執(zhí)行更新處理。由此,即使在輸入裝置2的周圍的磁場由于某些原因而發(fā)生變化從而磁球體發(fā)生變化的情況下,也可以根據(jù)變化來變更中心位置,因此能夠更正確地計算中心位置。
[0127](3_4:第三處理)
[0128]在通過上述第一處理設(shè)定了中心位置之后,能夠計算方向矢量。因而,信息處理裝置3在第三處理中,基于中心位置來計算方向矢量,基于方向矢量來計算輸入裝置2的姿勢。
[0129]此外,如上所述,信息處理裝置3至少以根據(jù)獲取到的各檢測磁矢量的終點位置而決定出的區(qū)域(記錄范圍)大于規(guī)定的基準(zhǔn)的情況為條件,來進(jìn)行使用了方向矢量的姿勢計算(第三處理)。由此,能夠降低計算出不正確的中心位置而使用不正確的中心位置計算出不正確的姿勢的可能性,能夠更高精確度地計算姿勢。
[0130]另外,如上所述,信息處理裝置3在每次新獲取到檢測磁矢量時,至少使用新獲取到的檢測磁矢量來對中心位置進(jìn)行更新(第二處理)。而且,信息處理裝置3在每次新獲取到檢測磁矢量時基于根據(jù)更新后的中心位置決定出的方向矢量來計算輸入裝置2的姿勢。由此,通過基于更正確的中心位置,能夠更高精確度地計算輸入裝置2的姿勢。此外,如上所述,在一次更新處理中,也可以關(guān)于存儲在緩沖器中的多個檢測磁矢量中的一部分檢測磁矢量執(zhí)行中心位置的移動處理。
[0131](通過其它方法進(jìn)行的姿勢校正)
[0132]在本實施方式中,信息處理裝置3使用方向矢量來對通過使用與磁傳感器4不同的傳感器(陀螺傳感器5和加速度傳感器6)的方法得到的輸入裝置2的姿勢進(jìn)行校正,由此計算出輸入裝置2的姿勢。S卩,信息處理裝置3基于方向矢量對通過與使用檢測磁矢量的方法不同的方法計算出的輸入裝置2的姿勢進(jìn)行校正。下面,參照圖6來說明使用了方向矢量的輸入裝置2的姿勢的校正方法。
[0133]圖6是表示使用方向矢量對輸入裝置2的姿勢進(jìn)行校正的方法的一例的圖。首先,信息處理裝置3設(shè)定規(guī)定的基準(zhǔn)時的方向矢量(基準(zhǔn)方向矢量)Va(圖6所示的(a))。基準(zhǔn)方向矢量Va例如是與基準(zhǔn)磁矢量對應(yīng)的方向矢量。此外,在檢測基準(zhǔn)磁矢量時尚未計算出中心位置,但是在計算出中心位置之后能夠基于中心位置和基準(zhǔn)磁矢量來計算出基準(zhǔn)方向矢量。此外,方向矢量是以輸入裝置2為基準(zhǔn)來計算出的,因此信息處理裝置3事先計算出以空間為基準(zhǔn)的坐標(biāo)系(用于表示輸入裝置2的姿勢的坐標(biāo)系)中的基準(zhǔn)方向矢量Va的值。即,信息處理裝置3將基準(zhǔn)方向矢量的坐標(biāo)系從上述xyz坐標(biāo)系轉(zhuǎn)換為表示輸入裝置2的姿勢的坐標(biāo)系。
[0134]在設(shè)定了中心位置之后的某個時間點,信息處理裝置3使用上述其它方法來計算輸入裝置2的姿勢。此外,圖6的(b)欄所示的輸入裝置2的姿勢是使用上述其它方法計算出的姿勢。另外,信息處理裝置3計算出該時間點的方向矢量Val。
[0135]在此,方向矢量相對于空間是固定的,因此上述某個時間點的方向矢量Val的朝向應(yīng)該與基準(zhǔn)方向矢量Va的朝向相同。(如果立足于基于檢測磁矢量的姿勢正確這個前提)認(rèn)為方向矢量Val與基準(zhǔn)方向矢量Va之間的偏移是從上述基準(zhǔn)時間點到上述某個時間點為止所產(chǎn)生的、利用上述其它方法計算出的姿勢的誤差。因此,信息處理裝置3進(jìn)行以下的校正:使利用其它方法計算出的輸入裝置2的姿勢旋轉(zhuǎn),使得上述方向矢量Val的朝向與基準(zhǔn)方向矢量Va的朝向相同(參照圖6所示的(b)的箭頭)。此外,圖6的(C)欄所示的輸入裝置2的姿勢表示利用方向矢量進(jìn)行校正后的輸入裝置2的姿勢。
[0136](校正度的計算)
[0137]此外,在圖6中,設(shè)進(jìn)行校正以使方向矢量Val與基準(zhǔn)方向矢量Va—致來進(jìn)行了說明,但是在本實施方式中,信息處理裝置3以如下方式進(jìn)行校正:使方向矢量Val向基準(zhǔn)方向矢量Va的方向接近與校正度相應(yīng)的比例。校正度可以通過任何方式來決定,而在本實施方式中,基于若干要素來計算出多種校正率(第一校正率和第二校正率),基于這些校正度來設(shè)定最終使用的校正度。下面,說明校正度的設(shè)定方法。
[0138](第一校正率)
[0139]根據(jù)新獲取到的檢測磁矢量(的終點)相對于到此為止獲取到的檢測磁矢量(的終點)分離的程度(稱為“相離度”)來設(shè)定第一校正率。此外,“到此為止獲取到的檢測磁矢量”是指該時間點的在中心位置的估計中使用的檢測磁矢量,換言之是指存儲在緩沖器中的檢測磁矢量。信息處理裝置3將第一校正率設(shè)定成上述相離度越大則校正率越小。例如以O(shè)以上且100以下的值來表示第一校正率,值越大則基于檢測磁矢量的校正量越大(以圖6的例來說,方向矢量Val越接近基準(zhǔn)方向矢量Va)。
[0140]圖7是表示第一校正率的設(shè)定方法的一例的圖。在圖7中,示出了在獲取到包括基準(zhǔn)磁矢量Vdl在內(nèi)的多個檢測磁矢量的狀態(tài)下獲取到矢量Vd2作為新的檢測磁矢量的情況、以及獲取到矢量Vd3作為新的檢測磁矢量的情況。另外,圖7所示的斜線部分表示上述多個檢測磁矢量的范圍。即,設(shè)該多個檢測磁矢量是在斜線部分的范圍內(nèi)被獲取到的。另夕卜,將獲取到新的檢測磁矢量(Vd2或Vd3)時的中心位置設(shè)為位置P。設(shè)中心位置P是基于上述多個檢測磁矢量而設(shè)定的,與實際的中心位置P稍有不同。
[0141]在圖7中,考慮獲取到檢測磁矢量Vd2的情況。檢測磁矢量Vd2遠(yuǎn)離到此為止獲取到的上述多個檢測磁矢量的范圍。在此,在新的檢測磁矢量Vd2遠(yuǎn)離上述范圍的情況下,與該新的檢測磁矢量對應(yīng)的方向矢量Va2的方向有可能與正確的方向(從實際的中心位置P向檢測磁矢量Vd2的終點的矢量Va2’的方向)之間的差異大(參照圖7)。S卩,存在方向矢量Va2不正確的可能性。因而,在上述情況下,將第一校正率設(shè)定得相對小。
[0142]另一方面,在圖7中,考慮獲取到檢測磁矢量Vd3的情況。檢測磁矢量Vd3包含于到此為止獲取到的上述多個檢測磁矢量的范圍內(nèi)(與范圍接近)。在像這樣新的檢測磁矢量Vd3與上述范圍接近的情況下,與該新的檢測磁矢量對應(yīng)的方向矢量Va3的方向與正確的方向(從實際的中心位置P向檢測磁矢量Vd3的終點的矢量Va3’的方向)之間的差異小。即,能夠認(rèn)為方向矢量Va3在某種程度上是正確的。因而,在上述情況下,第一校正率被設(shè)定得相對大。
[0143]如上,在本實施方式中,新獲取到的檢測磁矢量的終點位置距在中心位置的估計中使用的檢測磁矢量的終點位置越遠(yuǎn),信息處理裝置3將校正度(第一校正率)設(shè)定得越小。由此,在與新的檢測磁矢量對應(yīng)的方向矢量有可能不正確的情況下例如將校正度設(shè)定得低,能夠減小該方向矢量的影響地計算輸入裝置2的姿勢。由此,能夠降低計算出不正確的姿勢的可能性。另外,例如在認(rèn)為與新的檢測磁矢量對應(yīng)的方向矢量正確的情況下例如將校正度設(shè)定得高,能夠增大該方向矢量的影響地計算輸入裝置2的姿勢。由此,能夠提高計算出正確的姿勢的可能性。通過像這樣根據(jù)上述相離度來設(shè)定校正度,能夠高精確度地計算輸入裝置2的姿勢。
[0144]另外,在本實施方式中,信息處理裝置3使用從中心位置到新的檢測磁矢量的終點位置為止的長度(半徑)與根據(jù)在該中心位置的估計中使用的檢測磁矢量決定出的半徑之差來判斷上述相離度。即,在上述差大的情況下,能夠判斷為相離度大,在上述差小的情況下,能夠判斷為相離度小。因而,在本實施方式中,信息處理裝置3根據(jù)上述差來設(shè)定校正度(第一校正率)。通過像這樣使用半徑的差,能夠正確地判斷相離度。
[0145]此外,上述“根據(jù)在該中心位置的估計中使用的檢測磁矢量決定出的半徑”是指根據(jù)從中心位置到在該中心位置的估計中使用的檢測磁矢量的各終點位置為止的長度(半徑)決定出的半徑。例如,將該半徑既可以決定為與基準(zhǔn)磁矢量對應(yīng)的半徑(圖7所示的方向矢量Val的大小),也可以決定為上述的平均半徑。
[0146]如上所述,在本實施方式中,上述相離度越大,信息處理裝置3使新的檢測磁矢量的影響相對越小來計算輸入裝置2的姿勢。即,在本實施方式中,作為針對輸入裝置2的姿勢計算調(diào)整新的檢測磁矢量的影響的方法,使用校正度。在此,在其它實施方式中,上述方法可以是任何方法,并不限于使用校正度的方法。例如在其它實施方式中,也可以在相離度大于規(guī)定的基準(zhǔn)的情況下,不進(jìn)行使用方向矢量的校正(使校正度為“O” ),在相離度為該規(guī)定的基準(zhǔn)以下的情況下,進(jìn)行使用方向矢量的校正。
[0147]另外,在不使用與利用磁傳感器4計算姿勢的方法不同的其它姿勢計算方法的情況下,信息處理裝置3也可以根據(jù)上述相離度來改變新的檢測磁矢量的影響來計算輸入裝置2的姿勢。例如,信息處理裝置3也可以根據(jù)基于過去獲取到的檢測磁矢量計算出的第一姿勢和基于新獲取到的檢測磁矢量計算出的第二姿勢來計算當(dāng)前的姿勢。換言之,信息處理裝置3也可以基于新獲取到的檢測磁矢量(與該檢測磁矢量對應(yīng)的方向矢量)對過去計算出的輸入裝置的姿勢進(jìn)行校正。此時,信息處理裝置3也可以根據(jù)相離度來決定使第二姿勢反映到當(dāng)前的姿勢的比例。
[0148]如上,在本實施方式中,新獲取到的檢測磁矢量的終點位置距在中心位置的估計中使用的各檢測磁矢量的終點位置越遠(yuǎn),信息處理裝置3使新的檢測磁矢量的影響(對姿勢計算的影響)相對越小來計算輸入裝置2的姿勢。由此,即使在估計出的中心位置未收斂到實際的中心位置附近的情況下,也能夠計算輸入裝置2的姿勢。當(dāng)例如以圖7為例來進(jìn)行說明時,估計出的中心位置P處于稍微遠(yuǎn)離實際的中心位置P的狀態(tài)。在這種狀態(tài)下,方向矢量有可能不正確,因此看起來似乎無法正確地計算姿勢。然而,即使在這種狀態(tài)下,會根據(jù)情況的不同(即,在上述相離度小的情況下)而也認(rèn)為方向矢量在某種程度上是正確的,使得能夠計算姿勢。即,在本實施方式中,即使在估計出的中心位置未充分收斂到實際的中心位置附近的情況下,信息處理裝置3也在不會計算出不正確的姿勢的范圍內(nèi)使用方向矢量來進(jìn)行姿勢計算。由此,在中心位置充分收斂之前能夠計算姿勢,因此能夠提早計算出姿勢。另外,即使在無法獲取到計算實際的中心位置所需的足夠的檢測磁矢量的情況下也能夠計算姿勢,因此能夠有更多的機(jī)會計算出姿勢。因而,例如無需使用戶進(jìn)行上述的將輸入裝置2沿8字移動那樣的預(yù)備的操作,在使用輸入裝置2進(jìn)行通常的操作的期間內(nèi)能夠計算出輸入裝置2的姿勢。
[0149]另外,磁傳感器4有時會由于某些原因而檢測出異常的檢測磁矢量。異常的檢測磁矢量典型的是終點位于與基于其它檢測磁矢量估計出的磁球體的面完全不同的位置的矢量。當(dāng)使用這種異常的檢測磁矢量來估計中心位置時,有可能無法正確地計算出中心位置。在此,如上所述,通過根據(jù)相離度來改變新的檢測磁矢量的影響,能夠減小該異常的檢測磁矢量的影響,能夠高精確度地計算輸入裝置2的姿勢。
[0150]另外,在本實施方式中,信息處理裝置3使用上述的半徑的差來判斷上述相離度。在此,在本實施方式中,當(dāng)通過上述更新處理而中心位置變得正確(接近實際的中心位置)時,半徑的差變小。因而,信息處理裝置3通過使用半徑的差,能夠除了考慮上述相離度以外還考慮中心位置的正確度,來調(diào)整新的檢測磁矢量對姿勢計算的影響。另外,在本實施方式中,通過上述更新處理而中心位置隨著時間的經(jīng)過逐漸變得正確,因此能夠使上述的影響隨著時間的經(jīng)過而增大。即,根據(jù)本實施方式,即使最初進(jìn)行基于檢測磁矢量的姿勢計算的范圍(或者該姿勢計算的影響大的范圍)是被限定的,也能夠隨著時間的經(jīng)過而將該范圍擴(kuò)大。另外,能夠隨著時間的經(jīng)過而正確地計算出姿勢。
[0151]此外,上述相離度能夠通過任何方法來判斷。例如,在其它實施方式中,也可以基于各檢測磁矢量的終點位置來計算相離度。具體地說,也可以根據(jù)上述記錄范圍與新的檢測磁矢量之間的距離來計算相離度。另外,在其它實施方式中,還可以根據(jù)與新的檢測磁矢量對應(yīng)的方向矢量的方向和與到此為止獲取到的檢測磁矢量對應(yīng)的方向矢量的方向之差來計算相離度。
[0152]另外,在本實施方式中,與上述第一校正率的值相獨立地(與第一校正率的值無關(guān)地)執(zhí)行上述的中心位置的更新處理(第二處理)。即,信息處理裝置3獨立于新的檢測磁矢量的終點位置與在中心位置的估計中使用的各檢測磁矢量的終點位置之間的關(guān)系,使用該新的檢測磁矢量來對中心位置進(jìn)行更新。由此,即使在由于上述的相離度大而不進(jìn)行姿勢的計算(或者,基于檢測磁矢量的姿勢計算的影響小)的情況下,中心位置也會被更新為正確的位置。因此,能夠高精確度地計算中心位置,并且即使在某個時間點未進(jìn)行姿勢的計算的情況下也能夠在之后進(jìn)行姿勢的計算。
[0153](第二校正率)
[0154]根據(jù)與新獲取到的檢測磁矢量對應(yīng)的方向矢量的方向和與用戶進(jìn)行了規(guī)定的操作時的檢測磁矢量(在此為基準(zhǔn)磁矢量)對應(yīng)的方向矢量的方向之差來設(shè)定第二校正率。信息處理裝置3將第二校正率設(shè)定成上述的方向之差越大則校正率越小。與第一校正率同樣地,例如以O(shè)以上且100以下的值來表示第二校正率,值越大則基于檢測磁矢量的校正量越大。
[0155]圖8是表示第二校正率的設(shè)定方法的一例的圖。在圖8中,示出了在獲取到包括基準(zhǔn)磁矢量Vdl在內(nèi)的多個檢測磁矢量的狀態(tài)下獲取到矢量Vd4作為新的檢測磁矢量的情況、以及獲取到矢量Vd5作為新的檢測磁矢量的情況。另外,將獲取到新的檢測磁矢量(Vd4或Vd5)時的中心位置設(shè)為位置P。
[0156]在圖8中,考慮獲取到檢測磁矢量Vd4的情況。與檢測磁矢量Vd4對應(yīng)的方向矢量Va4的方向和與基準(zhǔn)磁矢量Vdl對應(yīng)的基準(zhǔn)方向矢量Val的方向之差(角度Θ I)比較大。在此,在上述的方向之差大的情況下,認(rèn)為輸入裝置2的姿勢從基準(zhǔn)時(開始使用輸入裝置2時)的姿勢發(fā)生了大幅變化。另外,當(dāng)輸入裝置2的姿勢從基準(zhǔn)時的姿勢發(fā)生了大幅變化時,有可能輸入裝置2的周圍的磁場發(fā)生了變化。例如,由于改變了輸入裝置2的姿勢,位置也發(fā)生變化,其結(jié)果是周圍的磁場也有可能會發(fā)生變化。具體地說,考慮由于輸入裝置2接近金屬的壁而周圍的磁場發(fā)生變化的情況。當(dāng)像這樣輸入裝置2的姿勢從基準(zhǔn)時的姿勢發(fā)生了大幅變化時,有可能無法正確地進(jìn)行基于檢測磁矢量的姿勢計算。因此,在上述的方向之差大的情況下,信息處理裝置3將第二校正率設(shè)定得相對小。
[0157]另一方面,在圖8中,考慮獲取到檢測磁矢量Vd5的情況。與檢測磁矢量Vd5對應(yīng)的方向矢量Va5的方向和與基準(zhǔn)磁矢量Vdl對應(yīng)的基準(zhǔn)方向矢量Val的方向之差(角度Θ2)比較小。在像這樣上述的方向之差小的情況下,輸入裝置2的周圍的磁場發(fā)生變化的可能性低,因此認(rèn)為無法正確地進(jìn)行姿勢計算的可能性也低。因此,在上述的方向之差小的情況下,信息處理裝置3將第二校正率設(shè)定得相對大。
[0158]如上,在本實施方式中,信息處理裝置3將在用戶進(jìn)行了規(guī)定的操作時檢測出的檢測磁矢量設(shè)定為基準(zhǔn)磁矢量。而且,從中心位置向新的檢測磁矢量的方向越偏離于從該中心位置向基準(zhǔn)磁矢量的方向,使該新的檢測磁矢量的影響相對越小來計算輸入裝置2的姿勢。由此,能夠降低由于輸入裝置2的周圍的磁場發(fā)生變化而導(dǎo)致計算出不正確的姿勢的可能性,進(jìn)而能夠高精確度地計算姿勢。
[0159](最終的校正度的計算)
[0160]在本實施方式中,基于上述第一校正率和第二校正率來計算最終的校正度。例如,信息處理裝置3計算出使第一校正率與第二校正率相乘后再乘以規(guī)定的系數(shù)而得到的校正度。此外,在其它實施方式中,也可以基于上述第一校正率和第二校正率中的任一方來計算出最終的校正度。例如,在假設(shè)輸入裝置2的姿勢向所有方向變化這樣的操作方法的情況下,也可以不使用第二校正率而計算校正度。另外,信息處理裝置3也可以防止校正度急劇增大(參照后述的步驟S36和S37)。這是為了防止由信息處理裝置3計算出的輸入裝置2的姿勢由于使用方向矢量進(jìn)行的校正而發(fā)生急劇變化。
[0161]此外,在本實施方式中,設(shè)利用方向矢量來對通過其它方法(使用陀螺傳感器5和加速度傳感器6的方法)計算出的輸入裝置2的姿勢進(jìn)行校正。在此,在其它實施方式中,信息處理裝置3也可以不使用其它方法而基于方向矢量來計算輸入裝置2的姿勢。
[0162](關(guān)于是否計算姿勢的判斷)
[0163]在本實施方式中,在第三處理中,在滿足了與中心位置有關(guān)的規(guī)定的條件的情況下,信息處理裝置3計算基于方向矢量的輸入裝置2的姿勢。即,在估計出的中心位置能夠被信任為表示磁球體的實際中心位置的程度低的情況下,信息處理裝置3通過不計算基于檢測磁矢量的輸入裝置2的姿勢,來降低計算出不正確的姿勢的可能性。
[0164]在本實施方式中,信息處理裝置3基于中心位置和存儲在緩沖器中的各檢測磁矢量來計算中心位置的可靠度。然后,在可靠度高于規(guī)定的基準(zhǔn)的情況下計算輸入裝置2的姿勢,在可靠度低于規(guī)定的基準(zhǔn)的情況下不計算輸入裝置2的姿勢。
[0165]具體地說,通過上述更新處理對中心位置進(jìn)行更新的情況下的更新前后的移動量越大,信息處理裝置3將可靠度計算得越低。另外,將上述各檢測磁矢量的終點與中心位置連接的各半徑的長度的偏差越大,信息處理裝置3將可靠度計算得越低。這是因為,在更新前后的移動量大的情況以及各半徑的長度的偏差大的情況下,中心位置未充分收斂,不正確的可能性高。例如在圖4所示的情況下,各半徑rll4的長度的偏差大,中心位置的移動大。因此,將可靠度計算得低,其結(jié)果是不進(jìn)行姿勢的計算。另一方面,圖9是表示將可靠度計算得高的情況下的中心位置的一例的圖。在圖9所示的情況下,各半徑r1-r4的長度的偏差小,中心位置的移動小。因此,將可靠度計算得高,其結(jié)果是進(jìn)行姿勢的計算。
[0166]此外,在本實施方式中,使用將平均半徑與半徑之差的平方針對各半徑進(jìn)行累計相加后得到的值,來作為表示各半徑的長度的偏差的指標(biāo)。此外,該指標(biāo)可以是任何指標(biāo),例如也可以是最大的半徑與最小的半徑之差、平均半徑與最大或最小的半徑之差以及各半徑的標(biāo)準(zhǔn)偏差等。
[0167]另外,在本實施方式中,根據(jù)輸入裝置2的姿勢的變化大于規(guī)定的基準(zhǔn)的情況來進(jìn)行可靠度的計算。即,信息處理裝置3在每次獲取到檢測磁矢量時,判斷與檢測磁矢量對應(yīng)的方向矢量的方向的變化是否大于規(guī)定的基準(zhǔn)。然后,在方向矢量的方向的變化大于規(guī)定的基準(zhǔn)的情況下,信息處理裝置3重新計算可靠度。另一方面,在方向矢量的方向的變化不大于規(guī)定的基準(zhǔn)的情況下,不重新計算可靠度,因此維持以前的可靠度。這是因為,在輸入裝置2的姿勢(檢測磁矢量)未發(fā)生變化的情況下,認(rèn)為中心位置能夠被信任的程度也未發(fā)生變化。這樣,根據(jù)本實施方式,能夠減輕可靠度的計算所導(dǎo)致的處理負(fù)荷。此外,在其它實施方式中,也可以以每規(guī)定期間進(jìn)行一次的比例(例如在每次獲取到檢測磁矢量時)計算可靠度。
[0168]如上,在本實施方式中,信息處理裝置將中心位置的更新前后的移動量以及各半徑的長度的偏差用作反映中心位置的可靠度的指標(biāo),基于該指標(biāo)來決定是否計算輸入裝置2的姿勢。在此,在其它實施方式中,信息處理裝置3也可以根據(jù)上述指標(biāo)來改變獲取到的檢測磁矢量對姿勢計算產(chǎn)生的影響。例如,信息處理裝置3也可以基于上述指標(biāo)來設(shè)定上述的校正度。
[0169]如上所述,中心位置在更新前后的變化量越大,信息處理裝置3使新的檢測磁矢量的影響相對越小來計算輸入裝置2的姿勢。由此,能夠降低計算出不正確的姿勢的可能性,能夠提高姿勢計算的精確度。
[0170]另外,從當(dāng)前的中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點位置為止的各長度(各半徑的長度)的偏差越大,信息處理裝置3使新獲取到的檢測磁矢量的影響相對越小來計算姿勢。由此,能夠降低計算出不正確的姿勢的可能性,能夠提高姿勢計算的精確度。
[0171]此外,在其它實施方式中,信息處理裝置3也可以基于中心位置的更新前后的移動量和各半徑的長度的偏差中的任一個來計算可靠度。即,也可以基于中心位置的更新前后的移動量和各半徑的長度的偏差中的任一個來調(diào)整新的檢測磁矢量對姿勢計算的影響。
[0172](3-5:存儲檢測磁矢量的方法)[0173]在本實施方式中,信息處理裝置3使用將檢測磁矢量根據(jù)條件進(jìn)行分類并存儲的緩沖器。然后,使用存儲在緩沖器中的檢測磁矢量來估計(計算)中心位置。即,在本實施方式中,在中心位置的估計中不使用已從緩沖器刪除的檢測磁矢量。信息處理裝置3為了高效且高精確度地計算中心位置,使用上述的緩沖器來對要在中心位置的計算中使用的檢測磁矢量進(jìn)行挑選。下面,說明將獲取到的檢測磁矢量存儲在緩沖器中的方法。
[0174]在本實施方式中,信息處理裝置3將檢測磁矢量分類為與從基準(zhǔn)位置向獲取到的檢測磁矢量的終點位置的方向相應(yīng)的類別來存儲在上述緩沖器中。此外,根據(jù)從基準(zhǔn)位置向檢測磁矢量的終點位置的方向來設(shè)定各類別。上述基準(zhǔn)位置是基于檢測磁矢量而確定的,在本實施方式中,在設(shè)定了中心位置的情況下,即是中心位置。即,在本實施方式中,與檢測磁矢量對應(yīng)的方向矢量的朝向相同或相近的檢測磁矢量被分類到相同類別。下面,參照圖10和圖11來說明詳情。
[0175]圖10是表示本實施方式中的緩沖器的結(jié)構(gòu)的一例的圖。如圖10所示,緩沖器中設(shè)置有按多個(在圖10中為16個)分類矢量來保存檢測磁矢量的區(qū)域。分類矢量是表示在用于表示檢測磁矢量的空間(xyz空間)中的方向的矢量(在此為單位矢量)。各分類矢量VcfVcie分別表示不同的方向。另外,各分類矢量VcfVcie被設(shè)定成其方向均勻地分散,詳情在后面敘述。另外,各分類矢量是預(yù)先設(shè)定的。分類矢量的數(shù)量可以是任何數(shù)量。在本實施方式中,分類矢量的數(shù)量是固定的。
[0176]此外,上述緩沖器只要是能夠由信息處理裝置3進(jìn)行訪問的存儲部即可。例如,在本實施方式中,在信息處理裝置3所具備的存儲器9中準(zhǔn)備上述緩沖器。
[0177]圖11是表示檢測磁矢量的分類方法的一例的圖。在圖11中,設(shè)獲取到檢測磁矢量Vdx,此時的中心位置為位置p。此時,信息處理裝置3計算與檢測磁矢量Vdx對應(yīng)的方向矢量Vax。然后,從上述多個分類矢量VcfVcie中選出方向最接近方向矢量Vax的矢量。在圖11的例中,選出了方向最接近方向矢量Vax的分類矢量Veil。信息處理裝置3將獲取到的檢測磁矢量存儲在與所選出的分類矢量對應(yīng)的區(qū)域中。在圖11的例中,由于選出了方向最接近方向矢量Vax的分類矢量Veil,因此與方向矢量Vax對應(yīng)的檢測磁矢量Vdx被保存在與分類矢量Vcll對應(yīng)的區(qū)域中(參照圖10)。此外,在本實施方式中,在要保存新的檢測磁矢量的區(qū)域中已經(jīng)保存了檢測磁矢量的情況下,將新的檢測磁矢量覆蓋存儲到該區(qū)域,刪除之前的檢測磁矢量。
[0178]如上,在本實施方式中,根據(jù)從基準(zhǔn)位置向檢測磁矢量的終點的方向來對檢測磁矢量進(jìn)行分類,使用被分類到相同類別的一個檢測磁矢量來估計中心位置。由此,能夠?qū)⒃谥行奈恢玫墓烙嬛惺褂玫臋z測磁矢量的數(shù)量限制為固定數(shù)量,能夠減輕中心位置的估計處理的處理負(fù)荷。
[0179]另外,在本實施方式中,根據(jù)從基準(zhǔn)位置向檢測磁矢量的終點的方向來對檢測磁矢量進(jìn)行分類。在此,通過使用朝向各種方向的方向矢量,易于更正確地計算出要估計的中心位置。因而,通過根據(jù)從基準(zhǔn)位置向檢測磁矢量的終點的方向來對檢測磁矢量進(jìn)行分類,能夠使用朝向各種方向的檢測磁矢量來更正確地估計出中心位置。
[0180]另外,在本實施方式中,上述基準(zhǔn)位置被設(shè)定為中心位置。即,信息處理裝置3將基準(zhǔn)位置設(shè)定在磁球體的面或該面的內(nèi)側(cè)。由此,能夠?qū)⑴c朝向各種方向的方向矢量對應(yīng)的檢測磁矢量存儲在緩沖器中,因此能夠更正確地估計出中心位置。[0181]此外,在本實施方式中,在設(shè)定中心位置之前,基準(zhǔn)磁矢量的終點位置被設(shè)定為基準(zhǔn)位置。另外,在設(shè)定中心位置之前,在每次獲取到新的檢測磁矢量時,通過與中心位置的更新處理同樣的方法來對基準(zhǔn)位置進(jìn)行更新。因而,即使在設(shè)定中心位置之前,基準(zhǔn)位置也被設(shè)定在磁球體的面或該面的內(nèi)側(cè)。
[0182]另外,在設(shè)定了中心位置之后,信息處理裝置3在每次獲取到檢測磁矢量時將最新的中心位置作為基準(zhǔn)位置來對獲取到的檢測磁矢量進(jìn)行分類。由此,能夠使在分類中使用的方向矢量更為正確。由此,能夠更正確地進(jìn)行檢測磁矢量的分類。此外,如上所述,信息處理裝置3在每次新存儲檢測磁矢量時對中心位置進(jìn)行更新。因而,在每次獲取到檢測磁矢量時對中心位置和基準(zhǔn)位置進(jìn)行更新,因此能夠使在分類中使用的方向矢量更為正確。
[0183]另外,在本實施方式中,使用分類矢量來對檢測磁矢量進(jìn)行分類。即,信息處理裝置3從朝向互不相同的方向的多個分類矢量中選擇朝向與從基準(zhǔn)位置向檢測磁矢量的終點的方向最接近的方向的分類矢量,將選擇不同的分類矢量的檢測磁矢量分類到不同的類別中。由此,能夠容易地對檢測磁矢量進(jìn)行分類。例如,能夠通過計算分類矢量與表示從基準(zhǔn)位置向檢測磁矢量的終點的方向的矢量的內(nèi)積,來容易地對檢測磁矢量進(jìn)行分類。
[0184]此外,在其它實施方式中,也可以對緩沖器的各區(qū)域設(shè)定與方向有關(guān)的范圍,以代替分類矢量。此時,信息處理裝置3在對各區(qū)域設(shè)定的范圍中選擇從基準(zhǔn)位置向檢測磁矢量的終點的方向所屬的范圍,將檢測磁矢量保存到與所選擇出的范圍對應(yīng)的區(qū)域中。由此,也能夠容易地對檢測磁矢量進(jìn)行分類。
[0185]另外,在本實施方式中,信息處理裝置3將分類到相同類別的檢測磁矢量匯總為一個來存儲在緩沖器中。即,將基于屬于相同分類的檢測磁矢量得到的一個檢測磁矢量存儲在緩沖器中。由此,能夠?qū)⒋鎯υ诰彌_器中的檢測磁矢量的數(shù)量限制為固定數(shù)量,從而能夠降低緩沖器的數(shù)據(jù)大小。
[0186]此外,在其它實施方式中,也可以將分類到各類別的檢測磁矢量針對一個類別存儲多個(也可以全部)。此時,信息處理裝置3也能夠以針對一個類別提取規(guī)定數(shù)量(例如一個)的檢測磁矢量的方式從各類別中提取檢測磁矢量,使用提取出的檢測磁矢量來估計中心位置。由此也能夠與本實施方式同樣地挑選要在中心位置的估計中使用的檢測磁矢量,能夠高效地計算中心位置。
[0187]并且,在本實施方式中,在緩沖器內(nèi)的相同區(qū)域中已經(jīng)保存了檢測磁矢量的情況下,用新的檢測磁矢量來覆蓋存儲(保存)。即,信息處理裝置3在獲取到新的檢測磁矢量的情況下,如果在要將該新的檢測磁矢量分類到的類別中已經(jīng)存儲了檢測磁矢量,則用該新的檢測磁矢量覆蓋已經(jīng)存儲的檢測磁矢量來進(jìn)行存儲。由此,相同區(qū)域中已經(jīng)保存的檢測磁矢量被刪除。
[0188]此外,如上所述,磁傳感器4有時會由于某些原因而檢測出異常的檢測磁矢量。在本實施方式中,檢測磁矢量會被覆蓋,因此即使將異常的檢測磁矢量存儲在緩沖器中,也通過在之后用不異常的檢測磁矢量進(jìn)行覆蓋,能夠消除異常的檢測磁矢量的影響來計算中心位置。由此,能夠高精確度地計算中心位置。
[0189]此外,作為將分類到相同類別的檢測磁矢量匯總為一個來存儲在緩沖器中的方法,除了用新的檢測磁矢量進(jìn)行覆蓋的方法以外,還存在以下的方法:存儲基于分類到相同類別的多個檢測磁矢量而生成的檢測磁矢量。例如,在其它實施方式中,也可以基于分類到相同類別的多個檢測磁矢量來生成平均的矢量,將該平均的矢量存儲在緩沖器中。由此,能夠減小異常的檢測磁矢量的影響來計算中心位置。
[0190]在本實施方式中,上述各分類矢量被設(shè)定成方向均勻地分散。即,多個分類矢量被設(shè)定成:在將各分類矢量的起點配置于球體的中心的情況下,各分類矢量的終點在該球體的球面上(如后所述,在使分類矢量的數(shù)量為一半的情況下,也可以是在球面的一半的面上)均勻地分散配置。圖12是表示在本實施方式中被配置在三維空間中的各分類矢量的終點位置的一例的圖。此外,在圖11中,示為各分類矢量被配置在平面上,但是在本實施方式中,實際上是如圖12所示那樣,各分類矢量被配置在三維空間中。各分類矢量例如被設(shè)定成以圖12所示的多面體的中心為起點、以該多面體的各頂點為終點的矢量。如圖12所示,多個分類矢量被設(shè)定成方向均勻地分散。由此,能夠使用均勻地分散的檢測磁矢量來估計中心位置,因此能夠更正確地估計中心位置。此外,各分類矢量無需被設(shè)定成方向嚴(yán)格地均勻分散,只要被設(shè)定成大致均勻地分散,就能夠得到正確地估計出中心位置的效果。
[0191]另外,在本實施方式中,分類矢量被設(shè)定成存在方向相反的其它分類矢量。S卩,信息處理裝置3將朝向互為相反的方向的兩個分類矢量作為一組,來設(shè)定多組分類矢量。另夕卜,信息處理裝置3通過計算兩個矢量的內(nèi)積來選擇分類矢量。即,信息處理裝置3計算分類矢量與表示從基準(zhǔn)位置向檢測磁矢量的終點的方向的方向矢量的內(nèi)積,選擇內(nèi)積值最大的分類矢量。
[0192]在此,在本實施方式中,將分類矢量設(shè)定成存在方向相反的其它分類矢量,因此信息處理裝置3能夠通過對每個組執(zhí)行關(guān)于一組分類矢量中的某一個分類矢量計算上述內(nèi)積的處理,來選擇分類矢量。具體地說,確定內(nèi)積值的絕對值最大的分類矢量,在該內(nèi)積值的符號為正的情況下,只要選擇所確定的該分類矢量即可,在該內(nèi)積值的符號為負(fù)的情況下,只要選擇朝向所確定的該分類矢量的反方向的分類矢量即可。通過像這樣使用方向互為相反的一組分類矢量,能夠?qū)⒂糜谶x擇分類矢量的內(nèi)積計算的次數(shù)變?yōu)橐话搿?br>
[0193]此外,在其它實施方式中,信息處理裝置3也可以使用上述實施方式的一半的分類矢量來進(jìn)行檢測磁矢量的分類。即,在其它實施方式中,也可以僅設(shè)定上述各組分類矢量中的某一方。此時,信息處理裝置3首先基于內(nèi)積的絕對值來進(jìn)行分類矢量的選擇。具體地說,與本實施方式同樣地對每個分類矢量執(zhí)行計算內(nèi)積的處理,選擇絕對值最大的分類矢量。并且,信息處理裝置3根據(jù)內(nèi)積值的正負(fù)將檢測磁矢量分類到不同的類別。由此,能夠使內(nèi)積計算的次數(shù)變?yōu)橐话?,并且能夠減少要準(zhǔn)備的分類矢量的數(shù)量。
[0194][4.由信息處理系統(tǒng)執(zhí)行的具體處理例]
[0195]下面,參照圖13?圖16來說明在本實施方式中由信息處理系統(tǒng)I (信息處理裝置3)執(zhí)行的具體處理的一例。圖13是表示在本實施方式中在信息處理系統(tǒng)I的存儲部(存儲器9)中設(shè)定的數(shù)據(jù)區(qū)域的一例的圖。如圖13所示,在信息處理裝置3的存儲器9中,設(shè)定有程序保存區(qū)域11、操作數(shù)據(jù)保存區(qū)域13、處理用數(shù)據(jù)保存區(qū)域15以及緩沖器區(qū)域27。此外,在存儲器9中,也可以設(shè)定用于保存除了圖13所示的數(shù)據(jù)以外的要輸出到顯示裝置的圖像、為了生成該圖像而使用的圖像的數(shù)據(jù)等的區(qū)域。
[0196]程序保存區(qū)域11中存儲有信息處理程序12。信息處理程序12是用于使信息處理裝置3的計算機(jī)(CPU8)執(zhí)行的程序。此外,信息處理程序12存儲在設(shè)置于信息處理裝置3的內(nèi)部或外部的能夠由信息處理裝置3進(jìn)行訪問的程序保存部(存儲裝置或存儲介質(zhì)等)中。在適當(dāng)?shù)臅r刻讀入存儲在程序保存部中的信息處理程序12的一部分或全部來存儲在存儲器9中,由CPU8執(zhí)行該程序。另外,也可以將信息處理程序12的一部分或全部(例如作為庫)預(yù)先存儲在執(zhí)行信息處理程序12的信息處理裝置內(nèi)。
[0197]在操作數(shù)據(jù)保存區(qū)域13中存儲有從輸入裝置2發(fā)送過來的操作數(shù)據(jù)。在本實施方式中,在操作數(shù)據(jù)保存區(qū)域13中,作為操作數(shù)據(jù)存儲有表示上述檢測磁矢量的檢測磁數(shù)據(jù)14。另外,在操作數(shù)據(jù)保存區(qū)域13中存儲有表示陀螺傳感器5的檢測結(jié)果(角速度)的數(shù)據(jù)、表示加速度傳感器6的檢測結(jié)果(加速度)的數(shù)據(jù)以及表示對操作部7進(jìn)行的操作的數(shù)據(jù)。
[0198]在處理用數(shù)據(jù)保存區(qū)域15中存儲有在信息處理裝置3中執(zhí)行的信息處理(圖14所示的信息處理)中所使用的各種數(shù)據(jù)。在處理用數(shù)據(jù)保存區(qū)域15中存儲有第一姿勢數(shù)據(jù)16、第二姿勢數(shù)據(jù)17、基準(zhǔn)磁數(shù)據(jù)18、平均半徑數(shù)據(jù)19、中心位置數(shù)據(jù)20、記錄范圍數(shù)據(jù)21、方向矢量數(shù)據(jù)22、可靠度數(shù)據(jù)23、第一校正率數(shù)據(jù)24、第二校正率數(shù)據(jù)25以及校正度數(shù)據(jù)26。
[0199]第一姿勢數(shù)據(jù)16是表示通過除使用磁傳感器4 (檢測磁矢量)的方法以外的其它方法計算出的輸入裝置2的姿勢的數(shù)據(jù)。第二姿勢數(shù)據(jù)17是表示基于檢測磁矢量計算出的輸入裝置2的姿勢的數(shù)據(jù)。在本實施方式中,第二姿勢數(shù)據(jù)17是表示使用方向矢量對第一姿勢數(shù)據(jù)16所表示的姿勢進(jìn)行校正后得到的姿勢的數(shù)據(jù)。
[0200]基準(zhǔn)磁數(shù)據(jù)18是表示上述基準(zhǔn)磁矢量的數(shù)據(jù)。平均半徑數(shù)據(jù)19是表示上述平均半徑的長度的數(shù)據(jù)。中心位置數(shù)據(jù)20是表示由信息處理裝置3估計出的上述中心位置的數(shù)據(jù)。記錄范圍數(shù)據(jù)21是表示上述記錄范圍的區(qū)域的數(shù)據(jù)。
[0201]在此,在本實施方式中,在設(shè)定了中心位置之后,中心位置被設(shè)定為基準(zhǔn)位置。另夕卜,在設(shè)定中心位置之前,以與中心位置相同的方法對基準(zhǔn)位置進(jìn)行更新。因而,基準(zhǔn)位置與中心位置是相同的值,因此信息處理裝置3也可以不將基準(zhǔn)位置與中心位置存儲為相分開的數(shù)據(jù),能夠事先存儲為一個數(shù)據(jù)。因此,在此處說明的處理例中,信息處理裝置3使用中心位置數(shù)據(jù)20來作為用于表示基準(zhǔn)位置和中心位置的數(shù)據(jù)。即,中心位置數(shù)據(jù)20在設(shè)定初始中心位置之前的階段表示基準(zhǔn)位置。
[0202]方向矢量數(shù)據(jù)22是表示上述方向矢量的數(shù)據(jù)。在此,方向矢量數(shù)據(jù)22所表示的方向矢量是基于最新的中心位置決定出的方向矢量。另外,方向矢量數(shù)據(jù)22所表示的方向矢量是與新獲取到的檢測磁矢量(最新的檢測磁矢量)對應(yīng)的方向矢量。
[0203]可靠度數(shù)據(jù)23是表示上述可靠度的數(shù)據(jù)。第一校正率數(shù)據(jù)24是表示上述第一校正率的數(shù)據(jù)。第二校正率數(shù)據(jù)25是表示上述第二校正率的數(shù)據(jù)。校正度數(shù)據(jù)26是表示以基于方向矢量的姿勢對第一姿勢數(shù)據(jù)16所表示的姿勢進(jìn)行校正時的校正程度的數(shù)據(jù)。校正度數(shù)據(jù)26表示基于上述第一校正率和第二校正率計算出的校正度。
[0204]緩沖器區(qū)域27是用于存儲檢測磁矢量的上述緩沖器的區(qū)域。在緩沖器區(qū)域27中,存儲有作為上述檢測磁數(shù)據(jù)14而存儲的數(shù)據(jù)中的通過上述“ (3-5:將檢測磁矢量存儲在緩沖器中的方法)”中敘述的方法進(jìn)行分類后的檢測磁數(shù)據(jù)。
[0205]除了上述的數(shù)據(jù)以外,在存儲器9中還存儲有上述分類矢量、判斷中所使用的閾值等在信息處理裝置的處理(圖14)中使用的數(shù)據(jù)。
[0206]接著,說明本實施方式中的信息處理的詳細(xì)流程。圖14是表示在本實施方式中由信息處理裝置3的CPU8執(zhí)行的信息處理的流程的一例的流程圖。在本實施方式中,當(dāng)啟動信息處理系統(tǒng)I時,信息處理裝置3的CPU8將存儲器9等存儲部初始化,將信息處理程序12從程序保存部讀入到存儲器9中。然后,由CPU8開始執(zhí)行該信息處理程序12。
[0207]此外,圖14?圖16所示的流程圖中的各步驟的處理不過是單純的一個例子,只要能夠得到同樣的結(jié)果,則既可以調(diào)換各步驟的處理順序,也可以除了各步驟的處理以外還(或代替各步驟的處理)執(zhí)行其它處理。另外,在本實施方式中,設(shè)由CPU8執(zhí)行上述流程圖的各步驟的處理來進(jìn)行說明,但是也可以由CPU8以外的處理器、專用電路來執(zhí)行上述流程圖中的一部分步驟的處理。
[0208]在本實施方式中,首先在步驟SI中,CPU8獲取從輸入裝置2發(fā)送過來的操作數(shù)據(jù)。在本實施方式中,輸入裝置2以每規(guī)定期間發(fā)送一次的比例向信息處理裝置3反復(fù)發(fā)送操作數(shù)據(jù)。與此相應(yīng)地,信息處理裝置3逐次接收操作數(shù)據(jù)。信息處理裝置3將接收到的操作數(shù)據(jù)存儲在存儲器9的操作數(shù)據(jù)保存區(qū)域13中。由此,獲取包含檢測磁數(shù)據(jù)14的操作數(shù)據(jù)。
[0209]在步驟S2中,CPU8通過除使用磁傳感器4的方法以外的其它方法來計算輸入裝置2的姿勢。在本實施方式中,CPU8使用陀螺傳感器5和加速度傳感器6來計算輸入裝置2的姿勢。作為具體的處理,CPU8從存儲器9讀出操作數(shù)據(jù),基于操作數(shù)據(jù)所包含的由陀螺傳感器5和加速度傳感器6檢測出的數(shù)據(jù)來計算姿勢。此外,用于基于由陀螺傳感器5檢測出的角速度和由加速度傳感器6檢測出的加速度來計算輸入裝置2的姿勢的具體方法可以是任何方法。CPU8將表示計算出的姿勢的數(shù)據(jù)作為第一姿勢數(shù)據(jù)存儲在存儲器9中。
[0210]在步驟S3中,CPU8執(zhí)行基于檢測磁矢量的姿勢計算處理。基于檢測磁矢量的姿勢計算處理是基于檢測磁矢量來計算輸入裝置2的姿勢的處理。在本實施方式中,在基于檢測磁矢量的姿勢計算處理中,執(zhí)行使用檢測磁矢量對通過步驟S2計算出的姿勢進(jìn)行校正的處理。下面,參照圖15來說明基于檢測磁矢量的姿勢計算處理的詳情。
[0211]圖15是表示基于檢測磁矢量的姿勢計算處理的詳細(xì)流程的一例的流程圖。在基于檢測磁矢量的姿勢計算處理中,首先在步驟Sll中,CPU8判斷是否執(zhí)行基于檢測磁矢量的姿勢計算處理。根據(jù)是否處于在后述的步驟S12中判斷為開始姿勢計算處理之后來進(jìn)行步驟Sll的判斷。在步驟Sll的判斷結(jié)果為肯定的情況下,執(zhí)行步驟S12的處理。另一方面,在步驟Sll的判斷結(jié)果為否定的情況下,CPU8結(jié)束基于檢測磁矢量的姿勢計算處理。
[0212]在步驟S12中,CPU8判斷是否開始姿勢計算處理。在本實施方式中,步驟S12的判斷是基于用戶是否進(jìn)行了規(guī)定的操作來判斷的。即,CPU8參照存儲在存儲器9中的操作數(shù)據(jù)來判斷是否對輸入裝置2的操作部7進(jìn)行了規(guī)定的操作。在步驟S12的判斷結(jié)果為肯定的情況下,執(zhí)行步驟S13的處理。另一方面,在步驟S12的判斷結(jié)果為否定的情況下,執(zhí)行后述的步驟S15的處理。此外,在從圖14所示的信息處理開始起已是第二次以上進(jìn)行上述規(guī)定的操作的情況下,CPU8也可以忽視該規(guī)定的操作而執(zhí)行步驟S15的處理?;蛘?,在上述情況下,CPU8也可以執(zhí)行步驟S12的處理(即,也可以將姿勢計算處理復(fù)位)。
[0213]在步驟S13中,CPU8存儲基準(zhǔn)磁矢量。即,CPU8將獲取到的最新的檢測磁矢量存儲為基準(zhǔn)磁矢量。作為具體的處理,CPU8讀出存儲在存儲器9的操作數(shù)據(jù)保存區(qū)域13中的檢測磁數(shù)據(jù)14,將其作為基準(zhǔn)磁數(shù)據(jù)18存儲在存儲器中。
[0214]在步驟S14中,CPU8執(zhí)行初始化處理。初始化處理是將姿勢計算處理中使用的各種信息(數(shù)據(jù))初始化的處理。在本實施方式中,CPU8執(zhí)行下面的處理。S卩,CPU8將存儲檢測磁矢量的緩沖器(緩沖器區(qū)域27)清空。另外,基準(zhǔn)位置(中心位置)是基于基準(zhǔn)磁矢量而設(shè)定的。在此,基準(zhǔn)磁矢量的終點位置被設(shè)定為基準(zhǔn)位置。CPU8將表示該終點位置的數(shù)據(jù)作為中心位置數(shù)據(jù)20存儲在存儲器9中。另外,上述記錄范圍、平均半徑以及校正度分別被設(shè)定為O。CPU8在存儲器9中存儲表示O的數(shù)據(jù)作為平均半徑數(shù)據(jù)19、記錄范圍數(shù)據(jù)21以及校正度數(shù)據(jù)26。另外,在姿勢計算處理中的處理階段被設(shè)定為第一階段。在此,姿勢計算處理中的處理階段被分為設(shè)定初始中心位置為止的第一階段和設(shè)定了初始中心位置后的第二階段。第一階段是不能進(jìn)行基于檢測磁矢量的姿勢計算的階段。第二階段是能夠進(jìn)行基于檢測磁矢量的姿勢計算的階段。
[0215]另外,在上述步驟S14中,CPU8將當(dāng)前時間點的使用上述其它方法計算出的姿勢(第一姿勢數(shù)據(jù)16)作為基準(zhǔn)姿勢存儲在存儲器9中。在以下的情況下使用該基準(zhǔn)姿勢:在后述的校正處理(步驟S25)中,利用檢測磁矢量對使用上述其它方法計算出的姿勢進(jìn)行校正。
[0216]在以上的步驟S14之后,CPU8結(jié)束基于檢測磁矢量的姿勢計算處理。之后,在下次以后的步驟Sf S5的處理循環(huán)中的步驟S3的處理中,執(zhí)行步驟S15以后的處理。
[0217]在步驟S15中,CPU8獲取檢測磁矢量。S卩,CPU8讀出存儲在存儲器9的操作數(shù)據(jù)保存區(qū)域中的檢測磁數(shù)據(jù)。此外,在其它實施方式中,CPU8也可以在步驟S15的時間點從輸入裝置2獲取操作數(shù)據(jù)(檢測磁數(shù)據(jù))。
[0218]在步驟S16中,CPU8計算方向矢量。方向矢量是基于基準(zhǔn)位置(中心位置)和新獲取到的檢測磁矢量而計算出的。例如,通過從新獲取到的檢測磁矢量減去從該檢測磁矢量的起點(原點)向基準(zhǔn)位置的矢量來計算出方向矢量。作為具體的處理,CPU8從存儲器9讀出中心位置數(shù)據(jù)20,基于通過步驟S15獲取到的檢測磁矢量和該中心位置數(shù)據(jù)20來計算方向矢量。CPU8將表示計算出的方向矢量的數(shù)據(jù)作為方向矢量數(shù)據(jù)22存儲在存儲器9中。
[0219]在步驟S17中,CPU8將新獲取到的檢測磁矢量存儲在緩沖器中。即,CPU8從存儲器9讀出方向矢量數(shù)據(jù)22和分類矢量,基于方向矢量和分類矢量來選出方向最接近方向矢量的分類矢量。然后,將上述檢測磁矢量(在步驟S15中讀出的檢測磁數(shù)據(jù))存儲在緩沖器的各區(qū)域中的與所選出的分類矢量對應(yīng)的區(qū)域中。此外,例如通過在上述的“(3-5:將檢測磁矢量存儲在緩沖器中的方法)”中說明的方法來進(jìn)行分類矢量的選出。
[0220]在步驟S18中,CPU8基于存儲在緩沖器中的多個檢測磁矢量來計算平均半徑。即,CPU8從存儲器9讀出存儲在緩沖器區(qū)域27中的檢測磁數(shù)據(jù)和中心位置數(shù)據(jù)20,基于各檢測磁矢量和中心位置(基準(zhǔn)位置)來計算平均半徑。此外,平均半徑能夠計算為從中心位置到各檢測磁矢量的終點為止的各距離(各半徑)的平均值。CPU8將表示計算出的平均半徑的數(shù)據(jù)作為平均半徑數(shù)據(jù)19存儲在存儲器9中。此外,在本實施方式中,在后述的步驟S32的處理中使用各半徑,因此CPU8事先將表示該各半徑的數(shù)據(jù)存儲在存儲器9中。
[0221]在步驟S19中,CPU8對中心位置(基準(zhǔn)位置)進(jìn)行更新?;谠谥行奈恢?基準(zhǔn)位置)的計算中使用的各檢測磁矢量、更新前的中心位置(基準(zhǔn)位置)以及平均半徑來進(jìn)行中心位置(基準(zhǔn)位置)的更新。此外,作為中心位置(基準(zhǔn)位置)的具體的更新方法,例如使用在上述的“(3-3:第二處理)”中說明的方法(參照圖5)。作為具體的處理,CPU8從存儲器9讀出存儲在緩沖器區(qū)域27中的檢測磁數(shù)據(jù)、中心位置數(shù)據(jù)20以及平均半徑數(shù)據(jù)19,基于這些數(shù)據(jù)來計算更新后的中心位置。CPU8將表示計算出的中心位置的數(shù)據(jù)作為新的中心位置數(shù)據(jù)20存儲在存儲器9中。此外,在本實施方式中,在后述的步驟S32的處理中使用更新前的中心位置,因此CPU8事先將表示更新前的中心位置的數(shù)據(jù)存儲在存儲器9中。
[0222]此外,信息處理裝置3也可以將上述的步驟S18的處理和步驟S19的處理并行地執(zhí)行。例如,CPU8首先讀出中心位置數(shù)據(jù)20和平均半徑數(shù)據(jù)19。接著,CPU8執(zhí)行包括以下處理的一系列處理:從緩沖器區(qū)域27讀出一個檢測磁矢量;對與該檢測磁矢量對應(yīng)的半徑進(jìn)行累計相加;以及沿與該檢測磁矢量對應(yīng)的半徑的方向移動中心位置(參照圖5)。CPU8針對存儲在緩沖器區(qū)域27中的每個檢測磁矢量(在每次讀出檢測磁矢量時)執(zhí)行上述一系列處理。最后,CPU8使用累計相加得到的半徑的值來計算平均半徑。此時,計算出的平均半徑使用于下一次的處理循環(huán)中。此外,在其它實施方式中,CPU8也可以在每次移動中心位置時計算平均半徑。CPU8也可以通過以上的處理來執(zhí)行步驟S18和S19的處理。
[0223]在步驟S20中,CPU8判斷處理階段是否為第一階段。在后述的步驟S24中處理階段被設(shè)定為第二階段之前,判斷為處理階段為第一階段。在步驟S20的判斷結(jié)果為肯定的情況下,執(zhí)行步驟S21的處理。另一方面,在步驟S20的判斷結(jié)果為否定的情況下,執(zhí)行后述的步驟S25的處理。
[0224]在步驟S21中,CPU8計算記錄范圍。記錄范圍可以通過任何方式來進(jìn)行計算,例如在設(shè)定長方體的記錄范圍的情況下,能夠基于當(dāng)前時間點的記錄范圍(記錄范圍數(shù)據(jù)21)和新獲取到的檢測磁矢量(通過步驟S15獲取到的檢測磁矢量)來計算該記錄范圍。SP,在新獲取到的檢測磁矢量的終點位于當(dāng)前時間點的記錄范圍的外側(cè)的情況下,CPU8對記錄范圍的一個面進(jìn)行更新以包含該終點。另外,在該終點位于當(dāng)前時間點的記錄范圍的內(nèi)側(cè)的情況下,不對記錄范圍進(jìn)行更新。作為具體的處理,CPU8從存儲器9讀出記錄范圍數(shù)據(jù)21,基于通過步驟S15獲取到的檢測磁數(shù)據(jù)和記錄范圍數(shù)據(jù)21來計算記錄范圍。然后,將表示計算出的記錄范圍的數(shù)據(jù)作為新的記錄范圍數(shù)據(jù)21存儲在存儲器9中。
[0225]在步驟S22中,CPU8判斷記錄范圍是否大于規(guī)定的基準(zhǔn)。例如根據(jù)作為記錄范圍的長方體的某一個邊是否比規(guī)定的閾值(表示規(guī)定長度)長來進(jìn)行該判斷。作為具體的處理,CPU8從存儲器9讀出記錄范圍數(shù)據(jù)21和表示上述閾值的數(shù)據(jù),來進(jìn)行上述的判斷。在步驟S22的判斷結(jié)果為肯定的情況下,執(zhí)行步驟S23的處理。另一方面,在步驟S22的判斷結(jié)果為否定的情況下,CPU8結(jié)束基于檢測磁矢量的姿勢計算處理。在這種情況下,在接下來的處理循環(huán)中執(zhí)行步驟S11、S12以及S15飛22的處理。然后,在步驟S3的姿勢計算處理中執(zhí)行步驟SI 1、S12以及S15飛22的處理,直到步驟S22的判斷結(jié)果變?yōu)榭隙橹埂?br>
[0226]在步驟S23中,CPU8計算初始中心位置。例如基于基準(zhǔn)磁矢量和記錄范圍來計算初始中心位置。作為初始中心位置的具體的計算方法,例如使用在上述的“(3-2:第一處理)”中說明的方法(參照圖3)。作為具體的處理,CPU8從存儲器9讀出基準(zhǔn)磁數(shù)據(jù)18和記錄范圍數(shù)據(jù)21,基于這些數(shù)據(jù)來計算初始中心位置。表示計算出的初始中心位置的數(shù)據(jù)作為新的中心位置數(shù)據(jù)20存儲在存儲器9中。由此,中心位置數(shù)據(jù)20成為表示中心位置(以及基準(zhǔn)位置)的數(shù)據(jù)。
[0227]在步驟S24中,CPU8將處理階段設(shè)定為第二階段。在步驟S24之后,CPU8結(jié)束基于檢測磁矢量的姿勢計算處理。通過步驟S24的處理,在接下來的處理循環(huán)中的步驟S3的處理中,接著步驟S20執(zhí)行步驟S25的處理。
[0228]在步驟S25中,CPU8執(zhí)行校正處理。校正處理是使用方向矢量對通過上述的其它方法計算出的輸入裝置2的姿勢進(jìn)行校正的處理。下面,參照圖16來說明校正處理的詳情。
[0229]圖16是表示校正處理的詳細(xì)流程的一例的流程圖。在校正處理中,首先在步驟S31中,CPU8判斷輸入裝置2的姿勢的變化是否大于規(guī)定的基準(zhǔn)。例如根據(jù)輸入裝置2的姿勢的變化量是否為規(guī)定量以上來進(jìn)行步驟S31的判斷。在本實施方式中,使用上述的緩沖器來進(jìn)行上述的判斷。即,CPU8判斷新獲取到的檢測磁矢量是否被分類到與之前獲取到的檢測磁矢量不同的類別中。此外,上述的判斷可以通過任何方式來進(jìn)行。例如在其它實施方式中,也可以使用通過上述其它方法計算出的姿勢來進(jìn)行上述的判斷。在步驟S31的判斷結(jié)果為肯定的情況下,執(zhí)行步驟S32的處理。另一方面,在步驟S31的判斷結(jié)果為否定的情況下,跳過步驟S32的處理,執(zhí)行步驟S33的處理。
[0230]在步驟S32中,CPU8計算可靠度。在本實施方式中,基于中心位置的更新前后的移動量和與各檢測磁矢量對應(yīng)的各半徑的長度的偏差來計算可靠度。作為可靠度的具體的計算方法,例如使用在上述的“(關(guān)于是否計算姿勢的判斷)”中說明的方法。作為具體的處理,CPU8從存儲器9讀出通過上述步驟S19存儲的表示更新前后的中心位置的數(shù)據(jù)和通過上述步驟S18存儲的表示各半徑的數(shù)據(jù),使用這些數(shù)據(jù)來計算可靠度。表示計算出的可靠度的數(shù)據(jù)作為可靠度數(shù)據(jù)23存儲在存儲器9中。
[0231]在步驟S33中,CPU8判斷可靠度是否大于規(guī)定的基準(zhǔn)。例如根據(jù)可靠度是否大于規(guī)定的閾值來進(jìn)行該判斷。作為具體的處理,CPU8從存儲器9讀出可靠度數(shù)據(jù)23和表示上述閾值的數(shù)據(jù),來進(jìn)行上述的判斷。在步驟S33的判斷結(jié)果為肯定的情況下,執(zhí)行步驟S34的處理。另一方面,在步驟S33的判斷結(jié)果為否定的情況下,CPU8結(jié)束校正處理。
[0232]在步驟S34中,CPU8計算第一校正率。在本實施方式中,基于從中心位置到新的檢測磁矢量的終點位置為止的半徑和與基準(zhǔn)磁矢量對應(yīng)的半徑(也可以是上述平均半徑)之差來計算第一校正率。作為第一校正率的具體的計算方法,例如使用在上述的“(第一校正率)”中說明的方法。作為具體的處理,CPU8讀出基準(zhǔn)磁數(shù)據(jù)18和中心位置數(shù)據(jù)20,使用讀出的數(shù)據(jù)和通過步驟S15獲取到的檢測磁數(shù)據(jù)14來計算第一校正率。CPU8將表示計算出的第一校正率的數(shù)據(jù)作為第一校正率數(shù)據(jù)24存儲在存儲器9中。
[0233]在步驟S35中,CPU8計算第二校正率。在本實施方式中,基于與新獲取到的檢測磁矢量對應(yīng)的方向矢量的方向和與基準(zhǔn)磁矢量對應(yīng)的方向矢量的方向之差來設(shè)定第二校正率。作為第二校正率的具體的計算方法,例如使用在上述的“(第二校正率)”中說明的方法。作為具體的處理,CPU8讀出方向矢量數(shù)據(jù)22、基準(zhǔn)磁數(shù)據(jù)18以及中心位置數(shù)據(jù)20,使用讀出的數(shù)據(jù)來計算第二校正率。CPU8將表示計算出的第二校正率的數(shù)據(jù)作為第二校正率數(shù)據(jù)25存儲在存儲器9中。
[0234]在步驟S36中,CPU8計算校正度的目標(biāo)值。在本實施方式中,基于上述第一校正率和第二校正率來計算校正度的目標(biāo)值。具體地說,通過使第一校正率與第二校正率相乘后再乘以規(guī)定的系數(shù)來計算校正度的目標(biāo)值。作為具體的處理,CPU8從存儲器9讀出第一校正率數(shù)據(jù)24、第二校正率數(shù)據(jù)25以及表示上述規(guī)定的系數(shù)的數(shù)據(jù),使用讀出的數(shù)據(jù)來計算校正度的目標(biāo)值。CPU8將表示計算出的目標(biāo)值的數(shù)據(jù)存儲在存儲器9中。[0235]在步驟S37中,CPU8計算校正度。在本實施方式中,基于上述校正度的目標(biāo)值來計算校正度。具體地說,在目標(biāo)值大于當(dāng)前的校正度的情況下(增大校正度的情況下),CPU8通過使當(dāng)前的校正度向上述目標(biāo)值接近規(guī)定的比例來計算新的校正度。由此,能夠抑制校正度的急劇增加,能夠抑制所計算的輸入裝置2的姿勢由于校正度的急劇增加而發(fā)生急劇變化的情況。另一方面,在目標(biāo)值小于當(dāng)前的校正度的情況下(減小校正度的情況下),CPU8將上述目標(biāo)值作為新的校正度。此外,在校正度變小的情況下,即使校正度發(fā)生急劇變化,輸入裝置2的姿勢也不會發(fā)生急劇變化,因此也可以不抑制校正度的急劇變化。作為具體的處理,CPU8從存儲器9讀出校正度數(shù)據(jù)26和表示上述目標(biāo)值的數(shù)據(jù),使用讀出的數(shù)據(jù)來計算新的校正度。CPU8將表示計算出的校正度的數(shù)據(jù)作為校正度數(shù)據(jù)26存儲在存儲器9中。
[0236]在步驟S38中,CPU8使用方向矢量來對姿勢進(jìn)行校正。即,基于與最新的檢測磁矢量對應(yīng)的方向矢量來對通過其它方法計算出的姿勢進(jìn)行校正。作為步驟S38中的校正方法,例如使用在上述的“(通過其它方法進(jìn)行的姿勢校正)”和“(校正度的計算)”中說明的方法。作為具體的處理,CPU8從存儲器9讀出第一姿勢數(shù)據(jù)16、方向矢量數(shù)據(jù)22以及校正度數(shù)據(jù)26,使用讀出的數(shù)據(jù)來計算校正后的姿勢。CPU8將表示計算出的姿勢的數(shù)據(jù)作為第二姿勢數(shù)據(jù)17存儲在存儲器9中。由此,計算出基于檢測磁矢量的輸入裝置2的姿勢。
[0237]在步驟S38之后,CPU8結(jié)束圖16所示的校正處理(步驟S25)。另外,在步驟S25之后,CPU8結(jié)束圖15所示的基于檢測磁矢量的姿勢計算處理(步驟S3)。
[0238]在圖14所示的步驟S4中,CPU8執(zhí)行基于輸入裝置2的姿勢的信息處理。將通過步驟S3計算出的姿勢作為輸入來執(zhí)行該信息處理。例如,CPU8使與上述姿勢相應(yīng)的信息處理的結(jié)果所得到的圖像顯示在顯示裝置上。
[0239]在步驟S5中,CPU8判斷是否結(jié)束信息處理。該判斷可以通過任何方式來進(jìn)行,例如根據(jù)是否由用戶進(jìn)行了規(guī)定的結(jié)束指示來進(jìn)行該判斷。在步驟S5的判斷結(jié)果為否定的情況下,再次執(zhí)行步驟SI的處理。另一方面,在步驟S5的判斷結(jié)果為肯定的情況下,CPU8結(jié)束圖14所示的信息處理。以后,反復(fù)執(zhí)行步驟Sf S5的一系列處理,直到在步驟S5中判斷為結(jié)束信息處理為止。以上,結(jié)束圖14所示的信息處理的說明。
[0240][5.其它實施方式]
[0241]在上述實施方式中,以將磁傳感器用作檢測根據(jù)輸入裝置的姿勢而發(fā)生變化的值的傳感器的情況為例來進(jìn)行說明。在此,在其它實施方式中,檢測根據(jù)輸入裝置的姿勢而發(fā)生變化的值的傳感器也可以是其它傳感器。本實施方式中的姿勢計算處理在以下情況下有效:從檢測根據(jù)輸入裝置的姿勢而發(fā)生變化的值的傳感器獲取的檢測矢量包含不依賴于輸入裝置的姿勢的分量和依賴于輸入裝置的姿勢的分量。即,信息處理裝置3也可以獲取上述檢測矢量,估計具有基于檢測矢量的各終點位置而估計出的曲面的球狀體的中心位置,基于表示從中心位置向檢測矢量的終點位置的方向的方向矢量來計算輸入裝置的姿勢。
[0242]產(chǎn)業(yè)h的可利用件
[0243]如上,本發(fā)明以高精確度地計算出輸入裝置的姿勢等為目的,能夠作為例如為了游戲操作而使用輸入裝置的游戲系統(tǒng)、游戲程序等來利用。
【權(quán)利要求】
1.一種信息處理系統(tǒng),計算具備磁傳感器的輸入部的姿勢,該信息處理系統(tǒng)具備: 獲取單元,其反復(fù)獲取由上述磁傳感器檢測出的檢測磁矢量; 中心估計單元,其估計球狀體的中心位置,該球狀體具有基于多個上述檢測磁矢量的各終點位置而估計出的曲面;以及 姿勢計算單元,其基于表示從上述中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出上述輸入部的姿勢, 其中,在每次獲取到上述檢測磁矢量時,上述中心估計單元對中心位置進(jìn)行更新,使得從中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點為止的各長度中的至少一部分長度分別接近該各長度的平均值。
2.根據(jù)權(quán)利要求1所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元根據(jù)多個上述檢測磁矢量滿足了規(guī)定的條件的情況,來基于多個該檢測磁矢量估計上述中心位置。
3.根據(jù)權(quán)利要求2所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元以下面的情況作為上述規(guī)定的條件:以包括多個上述檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域大于規(guī)定的大小。
4.根據(jù)權(quán)利要求2所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元以下面的情況作為上述規(guī)定的條件:多個上述檢測磁矢量的各朝向所形成的范圍大于規(guī)定的范圍。
5.根據(jù)權(quán)利要求2~4中的任一`項所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元根據(jù)滿足了上述規(guī)定的條件的情況,來將最初的中心位置設(shè)定在基于多個上述檢測磁矢量的各終點位置而估計出的曲面的凹側(cè)的位置處。
6.根據(jù)權(quán)利要求2~4中的任一項所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元將最初的中心位置設(shè)定在以包括多個上述檢測磁矢量的各終點位置的方式?jīng)Q定出的區(qū)域的內(nèi)部。
7.根據(jù)權(quán)利要求2~4中的任一項所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元將最初的中心位置設(shè)定在包括多個上述檢測磁矢量的各終點位置且大小為最小的長方體的內(nèi)部。
8.根據(jù)權(quán)利要求2~4中的任一項所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元將最初的中心位置設(shè)定在多個上述檢測磁矢量的各終點位置的重心位置處。
9.根據(jù)權(quán)利要求2~8中的任一項所述的信息處理系統(tǒng),其特征在于, 上述姿勢計算單元至少以滿足了上述規(guī)定的條件為條件來進(jìn)行基于上述方向矢量的上述輸入部的姿勢的計算。
10.根據(jù)權(quán)利要求1、中的任一項所述的信息處理系統(tǒng),其特征在于, 上述中心位置在更新前后的變化量越大,上述姿勢計算單元使新獲取到的檢測磁矢量的影響相對越小來計算上述姿勢。
11.根據(jù)權(quán)利要求f10中的任一項所述的信息處理系統(tǒng),其特征在于, 從當(dāng)前的中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點位置為止的各長度的偏差越大,上述姿勢計算單元使新獲取到的檢測磁矢量的影響相對越小來計算上述姿勢。
12.一種信息處理裝置,計算具備磁傳感器的輸入部的姿勢,該信息處理裝置具備: 獲取部,其反復(fù)獲取由上述磁傳感器檢測出的檢測磁矢量; 中心估計部,其估計球狀體的中心位置,該球狀體具有基于多個上述檢測磁矢量的各終點位置而估計出的曲面;以及 姿勢計算部,其基于表示從上述中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出上述輸入部的姿勢, 其中,在每次獲取到上述檢測磁矢量時,上述中心估計部對中心位置進(jìn)行更新,使得從中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點為止的各長度中的至少一部分長度分別接近該各長度的平均值。
13.一種姿勢計算方法,計算具備磁傳感器的輸入部的姿勢,該姿勢計算方法包括以下步驟: 獲取步驟,反復(fù)獲取由上述磁 傳感器檢測出的檢測磁矢量; 中心估計步驟,估計球狀體的中心位置,該球狀體具有基于多個上述檢測磁矢量的各終點位置而估計出的曲面;以及 姿勢計算步驟,基于表示從上述中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出上述輸入部的姿勢, 其中,在上述中心估計步驟中,在每次獲取到上述檢測磁矢量時對中心位置進(jìn)行更新,使得從中心位置到在該中心位置的估計中使用的各檢測磁矢量的終點為止的各長度中的至少一部分長度分別接近該各長度的平均值。
14.一種信息處理系統(tǒng),計算具備磁傳感器的輸入部的姿勢,該信息處理系統(tǒng)具備: 獲取單元,其反復(fù)獲取由上述磁傳感器檢測出的檢測磁矢量; 中心估計單元,其反復(fù)估計球狀體的中心位置,該球狀體具有基于多個上述檢測磁矢量的各終點位置而估計出的曲面;以及 姿勢計算單元,其基于表示從上述中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出上述輸入部的姿勢, 其中,獲取到的新的檢測磁矢量的終點位置距在中心位置的估計中使用的各檢測磁矢量的終點位置越遠(yuǎn),上述姿勢計算單元使新的檢測磁矢量的影響相對越小來計算上述姿勢。
15.根據(jù)權(quán)利要求14所述的信息處理系統(tǒng),其特征在于, 從上述中心位置到新的檢測磁矢量的終點位置為止的長度與根據(jù)從該中心位置到在該中心位置的估計中使用的檢測磁矢量的各終點位置為止的長度而決定出的長度之差越大,上述姿勢計算單元使該新的檢測磁矢量的影響相對越小來計算上述姿勢。
16.根據(jù)權(quán)利要求14或15所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元獨立于新的檢測磁矢量的終點位置與在中心位置的估計中使用的各檢測磁矢量的終點位置之間的關(guān)系,使用該新的檢測磁矢量來對上述中心位置進(jìn)行更新。
17.根據(jù)權(quán)利要求1-16中的任一項所述的信息處理系統(tǒng),其特征在于, 上述姿勢計算單元基于上述方向矢量對通過與使用上述檢測磁矢量的方法不同的方法計算出的上述輸入部的姿勢進(jìn)行校正。
18.根據(jù)權(quán)利要求17所述的信息處理系統(tǒng),其特征在于, 還具備校正度設(shè)定單元,該校正度設(shè)定單元根據(jù)從上述中心位置到新的檢測磁矢量的終點位置為止的長度與根據(jù)從該中心位置到在該中心位置的估計中使用的檢測磁矢量的各終點位置為止的長度而決定出的長度之差來設(shè)定校正度, 上述姿勢計算單元根據(jù)上述校正度來改變使用上述方向矢量進(jìn)行的校正的校正量。
19.根據(jù)權(quán)利要求14~18中的任一項所述的信息處理系統(tǒng),其特征在于, 還具備基準(zhǔn)設(shè)定單元,該基準(zhǔn)設(shè)定單元將在用戶進(jìn)行了規(guī)定的操作時檢測出的檢測磁矢量設(shè)定為基準(zhǔn)磁矢量, 從中心位置向新的檢測磁矢量的方向越偏離于從該中心位置向上述基準(zhǔn)磁矢量的方向,上述姿勢計算單元使該新的檢測磁矢量的影響相對越小來計算上述姿勢。
20.一種姿勢計算方法,計算具備磁傳感器的輸入部的姿勢,該姿勢計算方法包括以下步驟: 獲取步驟,反復(fù)獲取由上述磁傳感器檢測出的檢測磁矢量; 中心估計步驟,反復(fù)估計球狀體的中心位置,該球狀體具有基于多個上述檢測磁矢量的各終點位置而估計出的曲面;以及 姿勢計算步驟,基于表示從上述中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出上述輸入部的姿勢, 其中,在上述姿勢計算步驟中,獲取到的新的檢測磁矢量的終點位置距在中心位置的估計中使用的各檢測磁矢量的終點位置越遠(yuǎn),使新的檢測磁矢量的影響相對越小來計算上述姿勢。
21.一種信息處理系統(tǒng),計算具備磁傳感器的輸入部的姿勢,該信息處理系統(tǒng)具備: 獲取單元,其獲取由上述磁傳感器檢測出的檢測磁矢量; 存儲控制單元,其根據(jù)從基于上述檢測磁矢量確定出的基準(zhǔn)位置向檢測磁矢量的終點位置的方向,來將上述檢測磁矢量進(jìn)行分類并存儲在存儲部中; 中心估計單元,其估計球狀體的中心位置,該球狀體具有基于從分類后的多個檢測磁矢量中針對一個分類至少提取一個檢測磁矢量而得到的各檢測磁矢量的終點位置而估計出的曲面;以及 姿勢計算單元,其基于表示從上述中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出上述輸入部的姿勢。
22.根據(jù)權(quán)利要求21所述的信息處理系統(tǒng),其特征在于, 上述存儲控制單元將獲取到的檢測磁矢量分類到根據(jù)從基于上述檢測磁矢量確定出的基準(zhǔn)位置向檢測磁矢量的終點位置的方向而設(shè)定的多個類別中的、與從該基準(zhǔn)位置向該獲取到的檢測磁矢量的終點位置的方向相應(yīng)的類別中。
23.根據(jù)權(quán)利要求21或22所述的信息處理系統(tǒng),其特征在于, 上述存儲控制單元將基于屬于相同分類的一個以上的檢測磁矢量得到的一個檢測磁矢量存儲在上述存儲部中, 上述中心估計單元估計球狀體的中心位置,該球狀體具有基于存儲在上述存儲部中的檢測磁矢量的終點位置而估計出的曲面。
24.根據(jù)權(quán)利要求23所述的信息處理系統(tǒng),其特征在于, 在獲取到新的檢測磁矢量而已經(jīng)存儲有與該新的檢測磁矢量屬于相同分類的檢測磁矢量的情況下,上述存儲控制單元用該新的檢測磁矢量覆蓋已經(jīng)存儲的檢測磁矢量來進(jìn)行存儲。
25.根據(jù)權(quán)利要求24中的任一項所述的信息處理系統(tǒng),其特征在于, 在計算出上述中心位置之后,在每次獲取到上述檢測磁矢量時,上述存儲控制單元將由上述中心估計單元計算出的最新的中心位置作為上述基準(zhǔn)位置來將獲取到的該檢測磁矢量進(jìn)行分類并存儲。
26.根據(jù)權(quán)利要求25所述的信息處理系統(tǒng),其特征在于, 上述中心估計單元在每次新存儲了上述檢測磁矢量時對上述中心位置進(jìn)行更新。
27.—種姿勢計算方法,計算具備磁傳感器的輸入部的姿勢,該姿勢計算方法包括以下步驟: 獲取步驟,獲取由上述磁傳感器檢測出的檢測磁矢量; 存儲控制步驟,根據(jù)從基于上述檢測磁矢量確定出的基準(zhǔn)位置向檢測磁矢量的終點位置的方向來將上述檢測磁矢量進(jìn)行分類并存儲在存儲部中; 中心估計步驟,其估計球狀體的中心位置,該球狀體具有基于從分類后的多個檢測磁矢量中針對一個分類至少提取一個檢測磁矢量而得到的各檢測磁矢量的終點位置而估計出的曲面;以及 姿勢計算步驟,基于表示從上述中心位置向檢測磁矢量的終點位置的方向的方向矢量來計算出上述輸入部的姿勢。
【文檔編號】G06F3/01GK103576849SQ201210483689
【公開日】2014年2月12日 申請日期:2012年11月23日 優(yōu)先權(quán)日:2012年7月20日
【發(fā)明者】太田敬三 申請人:任天堂株式會社