本發明涉及空鼠技術領域,尤其涉及一種空鼠的位移獲取方法和裝置。
背景技術:
空鼠是一種無線鼠標,其具有體積小,攜帶方便,操作舒適,不受空間限制等特點,應用越來越廣泛,在諸如耳機、虛擬現實(virtualreality,簡稱vr)、增強現實(augmentedreality,簡稱ar)等體感交互領域備受關注。比如在游戲應用中,在一些體感設備中實現空鼠功能(也稱為體感空鼠),可以使廣大游戲玩家可以擺脫傳統的機械鼠標進行游戲操作,體驗更佳。
實際應用中,往往會遇到這樣的情況:用戶實際上并不想要讓空鼠移動,但是由于某些原因空鼠卻發生小幅度的移動,由于空鼠的敏感度過高很可能導致顯示屏上顯示的空鼠的坐標位置發生抖動,不能穩定停留在某個位置。因此,迫切需要提供一種有效的空鼠的真實位移的獲取方法,避免空鼠的過敏感對確定空鼠在顯示屏上的坐標位置的不利影響。
技術實現要素:
有鑒于此,本發明實施例提供一種空鼠的位移獲取方法和裝置,用以克服空鼠的過敏感對確定空鼠在顯示屏上的坐標位置的不利影響。
第一方面,本發明實施例提供一種空鼠的位移獲取方法,包括:
采集空鼠當前對應的三軸方向的重力加速度;
根據所述重力加速度確定所述空鼠當前對應的第一姿態角;
對所述第一姿態角進行校正處理;
根據校正后的第一姿態角與第二姿態角的比較結果,確定所述空鼠的移動速度;
根據所述空鼠的移動速度和原坐標,確定所述空鼠對應的當前坐標,其中,所述第二姿態角與所述原坐標對應,所述原坐標為根據所述移動速度移動前所述空鼠對應的坐標。
可選地,所述第一姿態角包括:俯仰角和翻滾角,以及,所述根據校正后的第一姿態角與第二姿態角的比較結果,確定所述空鼠的移動速度,包括:
根據如下分段函數確定所述空鼠的在x軸方向的移動速度vxn以及在y軸方向的移動速度vyn:
其中,
可選地,所述根據所述空鼠的移動速度和原坐標,確定所述空鼠對應的當前坐標,包括:
根據如下公式確定所述空鼠對應的當前坐標(xn,yn):
xn=xn-1+vxn·δt
yn=yn-1+vyn·δt
其中,(xn-1,yn-1)為所述原坐標,δt為所述原坐標的獲取時刻與當前時刻的時間差。
第二方面,本發明實施例提供一種空鼠的位移獲取裝置,包括:
采集模塊,用于采集空鼠當前對應的三軸方向的重力加速度;
第一確定模塊,用于根據所述重力加速度確定所述空鼠當前對應的第一姿態角;
校正模塊,用于對所述第一姿態角進行校正處理;
第二確定模塊,用于根據校正后的第一姿態角與第二姿態角的比較結果,確定所述空鼠的移動速度;
第三確定模塊,用于根據所述空鼠的移動速度和原坐標,確定所述空鼠對應的當前坐標,其中,所述第二姿態角與所述原坐標對應,所述原坐標為根據所述移動速度移動前所述空鼠對應的坐標。
本發明實施例提供的空鼠的位移獲取方法和裝置,通過加速度傳感器可以采集空鼠當前對應的三軸方向的重力加速度,并根據采集到的重力加速度確定空鼠當前對應的第一姿態角。之后,通過對該第一姿態角進行校正處理,比如進行平滑、去噪等處理,以得到平滑的、干凈的姿態角信息。進而,比較校正后的第一姿態角與空鼠上一次穩定停留在顯示屏上的坐標稱為原坐標時所對應的第二姿態角,以根據比較結果確定空鼠當前的移動速度,進而確定空鼠對應的當前坐標。通過第一姿態角與第二姿態角的比較,可以防止用戶無意導致的空鼠抖動對空鼠在顯示屏中坐標位置確定的不利影響,進而提高用戶使用空鼠進行交互操作的使用體驗,比如可以避免由于用戶對空鼠的無意識晃動使得顯示屏中空鼠坐標位置移動而導致空鼠不能穩定停留在用戶希望的屏幕位置的現象。綜上,基于對第一姿態角的校正和第一姿態角與第二姿態角的比較,可以克服空鼠的過敏感對確定空鼠在顯示屏上的坐標位置的不利影響。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的空鼠的位移獲取方法實施例一的流程圖;
圖2為空鼠的姿態角與空鼠在顯示屏的坐標系中的位移變化的對應關系示意圖;
圖3為本發明實施例提供的空鼠的位移獲取方法實施例二的流程圖;
圖4為本發明實施例提供的空鼠的位移獲取裝置的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
在本發明實施例中使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本發明。在本發明實施例和所附權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義,“多種”一般包含至少兩種,但是不排除包含至少一種的情況。
應當理解,本文中使用的術語“和/或”僅僅是一種描述關聯對象的關聯關系,表示可以存在三種關系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。另外,本文中字符“/”,一般表示前后關聯對象是一種“或”的關系。
應當理解,盡管在本發明實施例中可能采用術語第一、第二、第三等來描述xxx,但這些xxx不應限于這些術語。這些術語僅用來將xxx區分開。例如,在不脫離本發明實施例范圍的情況下,第一xxx也可以被稱為第二xxx,類似地,第二xxx也可以被稱為第一xxx。
取決于語境,如在此所使用的詞語“如果”、“若”可以被解釋成為“在……時”或“當……時”或“響應于確定”或“響應于檢測”。類似地,取決于語境,短語“如果確定”或“如果檢測(陳述的條件或事件)”可以被解釋成為“當確定時”或“響應于確定”或“當檢測(陳述的條件或事件)時”或“響應于檢測(陳述的條件或事件)”。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的商品或者系統中還存在另外的相同要素。
進一步值得說明的是,本發明各實施例中各步驟之間的順序是可以調整的,不是必須按照以下舉例的順序執行。
圖1為本發明實施例提供的空鼠的位移獲取方法實施例一的流程圖,本實施例提供的該空鼠的位移獲取方法可以由一空鼠的位移獲取裝置來執行,該空鼠的位移獲取裝置可以實現為軟件,或者實現為軟件和硬件的組合,該空鼠的位移獲取裝置可以集成設置在某體感設備中,比如耳機、ar或vr應用場景使用的頭戴式設備等。如圖1所示,該方法包括如下步驟:
101、采集空鼠當前對應的三軸方向的重力加速度。
本實施例中,假設空鼠具體可以實現為耳機,可以在耳機中設置運動傳感器以實現空鼠耳機。可選地,該運動傳感器可以是加速度傳感器,用于檢測空鼠在xyz三軸方向上分別對應的重力加速度(gx,gy,gz),其中,gx為x軸方向對應的重力加速度,gy為y軸方向對應的重力加速度,gz為z軸方向對應的重力加速度。
可以理解的是,該三軸方向相當于是建立物理空間對應的三維坐標系,坐標原點可以是加速度傳感器在耳機中的設置位置。gx,gy,gz相當于是加速度傳感器當前測得的重力加速度在三軸方向的分量。
實際應用中,可以預先設置加速度傳感器的采集間隔,使得加速度傳感器可以每隔該采集間隔采集一次重力加速度。
102、根據重力加速度確定空鼠當前對應的第一姿態角。
可選地,第一姿態角可以包括:俯仰角和翻滾角。具體地,根據當前采集到的重力加速度(gx,gy,gz)確定空鼠當前對應的第一姿態角,可以實現為:
確定空鼠當前對應的俯仰角為:pitchn=-arcsin(gx/g);確定空鼠當前對應的翻滾角為:rolln=-arctan(gy/gz);其中,g為預設重力加速度常數,n代表當前時刻。
103、對第一姿態角進行校正處理。
實際應用中,空鼠可能由于某些原因發送用戶并不希望出現的抖動現象,即實際上用戶并不想要讓空鼠移動,但是客觀上卻發生了空鼠的抖動現象,此時,可能導致在顯示屏上空鼠對應的坐標位置發生位移變化,而該位移變化是不希望出現的,即是由空鼠的過敏感導致的。
因此,為避免空鼠在顯示屏的坐標系中的坐標位置不發生抖動現象,可選地,可以預先對用于確定空鼠在顯示屏中的坐標位置的第一姿態角進行校正,以獲得真實可靠的姿態角信息。其中,對第一姿態角的校正處理比如可以包括平滑處理、去噪處理等。
104、根據校正后的第一姿態角與第二姿態角的比較結果,確定空鼠的移動速度,第二姿態角與原坐標對應。
其中,該原坐標為根據移動速度移動前空鼠對應的坐標,亦即空鼠在顯示屏中最近一次穩定停留在的坐標位置。
105、根據空鼠的移動速度和原坐標,確定空鼠對應的當前坐標。
可以預先保存空鼠在顯示屏中之前時刻所位于的坐標位置,稱為原坐標,并且保存用于確定該原坐標的姿態角,稱為第二姿態角。
從而,在根據當前確定出的第一姿態角確定空鼠在顯示屏中的坐標位置是否需要改變,改變到何處時,可以比較第一姿態角與第二姿態角,以根據第一姿態角相對于第二姿態角發生的角度改變的程度,確定是否需要改變空鼠在顯示屏中的坐標位置以及改變到何處。
當確定需要改變空鼠在顯示屏中的坐標位置時,可以根據預先設定的姿態角改變程度與空鼠移動速度的對應關系,確定出當前在顯示屏中空鼠坐標的移動速度,進而基于該移動速度和原坐標確定空鼠在顯示屏中當前對應的坐標位置。
另外,值得說明的是,在確定空鼠在顯示屏中當前對應的坐標位置時,是一個確定空鼠在顯示屏中相對于原坐標向什么方向移動多少距離的過程。其中,移動方向可以根據第一姿態角相對于第二姿態角的差值來確定,即根據第一姿態角相對于第二姿態角的改變方向來確定。如圖2所示,俯仰角的改變會引起空鼠在顯示屏中x軸方向坐標的改變,翻滾角的改變會引起空鼠在顯示屏中y軸方向坐標的改變。
本實施例中,首先采集空鼠當前對應的三軸方向的重力加速度,并根據采集到的重力加速度確定空鼠當前對應的第一姿態角。之后,通過對該第一姿態角進行校正處理,比如進行平滑、去噪等處理,以得到平滑的、干凈的姿態角信息。進而,比較校正后的第一姿態角與空鼠上一次位于原坐標時所對應的第二姿態角,以根據比較結果確定空鼠當前的移動速度,進而確定空鼠對應的當前坐標。通過第一姿態角與第二姿態角的比較,可以防止用戶無意導致的空鼠抖動對空鼠在顯示屏中坐標位置確定的不利影響。綜上,基于對第一姿態角的校正和第一姿態角與第二姿態角的比較,可以克服空鼠的過敏感對確定空鼠在顯示屏上的坐標位置的不利影響。
圖3為本發明實施例提供的空鼠的位移獲取方法實施例二的流程圖,如圖3所示,可以包括如下步驟:
201、采集空鼠當前對應的三軸方向的重力加速度。
202、采用預先獲得的標定參數對重力加速度進行標定。
假設當前采集到的重力加速度為(gx,gy,gz),標定后的重力加速度為(gx',gy',gz')。
具體地,對重力加速度(gx,gy,gz)進行標定的過程可以是:
gx'=kxxgx+kxygy+kxzgz+offset_x;
gy'=kyxgx+kyygy+kyzgz+offset_y;
gz'=kzxgx+kzygy+kzzgz+offset_z.
其中,kxx,kxy,kxz,offset_x,kyx,kyy,kyz,offset_y,kzx,kzy,kzz,offset_z為標定參數。
這些標定參數的確定過程可以采用“六位置”法進行確定。以空鼠具體實現為耳機為例,可以在耳機出廠時對標定參數進行確定。具體來說,可以調整加速度傳感器在耳機中的安放位置,使得加速度傳感器分別位于六個不同位置,該安放位置的調整可以理解為是調整物理空間三維坐標系中xyz三軸的指向。另外,在每個安放位置處,如果加速度傳感器都處于理想工作狀態,則會具有對應的理論重力加速度值,從而,結合加速度傳感器在各安放位置處對應的理論重力加速度值以及實際測得的重力加速度值,可以求解標定參數。
加速度傳感器的安放位置與理論重力加速度值的情況如下表所示:
表1:加速度傳感器的標定參考表
結合上述表格可知加速度傳感器分別在六個不同安放位置處時對應的理論重力加速度值的情況,進而,結合加速度傳感器在各安放位置處實際測得的重力加速度值,根據如下的公式,可以求解各標定參數:
gx實測=kxxgx理論+kxygy理論+kxzgz理論+offset_x;
gy實測=kyxgx理論+kyygy理論+kyzgz理論+offset_y;
gz實測=kzxgx理論+kzygy理論+kzzgz理論+offset_z.
203、根據標定后的重力加速度確定空鼠當前對應的第一姿態角。
第一姿態角的確定過程參照前述實施例實現,在此不贅述。
204、結合k個第三姿態角對第一姿態角進行平滑處理,k個第三姿態角與在所述重力加速度之前采集到的k個重力加速度對應。
205、對平滑處理后的第一姿態角進行去噪處理。
本實施例中,可以采用平滑處理的方式克服空鼠抖動的問題。具體來說,針對當前獲得的第一姿態角,可以向前取k個第三姿態角,以采用這k個第三姿態角對該第一姿態角進行平滑處理。
由于加速度傳感器被預先設置為以一定的采集間隔不斷采集重力加速度,從而可以根據姿態角的確定方法,確定出每次采集的重力加速度所對應的姿態角。上述k個第三姿態角即為:與采集到第一姿態角對應的重力加速度之前采集到的k個重力加速度分別相對應的姿態角。
實際應用中,可以預先設置合理的取值范圍,k的取值可以在該取值范圍內隨機選擇;或者,也可以預先設置k取某個固定的數值。該取值范圍的設定可以結合加速度傳感器的采集間隔來設定,采集間隔越短,取值范圍上限可以越大。
以k=5為例,對第一姿態角的平滑處理具體可以為:
之后,可以采用比如fft(傅里葉)濾波方法對平滑后的第一姿態角進行去噪處理,以濾除第一姿態角中的高頻噪聲部分。該fft濾波方法運行速度快,功耗低。
206、采用預設分段函數比較去噪后的第一姿態角與第二姿態角,以確定空鼠的移動速度,第二姿態角與原坐標對應。
其中,原坐標的含義參見前述實施例中的說明,在此不贅述。
207、根據空鼠的移動速度和原坐標,確定空鼠對應的當前坐標。
具體地,可以根據如下分段函數確定空鼠在顯示屏中x軸方向的移動速度vxn以及y軸方向的移動速度vyn:
其中,
由上述分段函數可知:針對翻滾角來說,如果翻滾角的變化程度較小,則空鼠在顯示屏中的x軸方向位置不變,如果翻滾角的變化程度較大,則空鼠在顯示屏中的x軸方向的坐標移動速度與翻滾角的變化程度具有正比關系。同樣地,針對俯仰角來說,如果俯仰角的變化程度較小,則空鼠在顯示屏中的y軸方向位置不變,如果俯仰角的變化程度較大,則空鼠在顯示屏中的y軸方向的坐標移動速度與俯仰角的變化程度具有正比關系。
基于分段函數進行空鼠在顯示屏中移動速度的確定,一方面可以去除噪聲和空鼠抖動對空鼠在顯示屏中移動的不利影響;另一方面可以讓空鼠‘滯空’停留,即停留在需要的位置,以便用戶可以在該位置處觸發對空鼠的其他控制操作,比如通過敲擊空鼠而觸發對該位置處的某個應用圖標進行打開操作,等等。
在確定出空鼠在顯示屏中x軸方向的移動速度vxn以及y軸方向的移動速度vyn后,可以根據如下公式確定空鼠在顯示屏中對應的當前坐標(xn,yn):
xn=xn-1+vxn·δt
yn=yn-1+vyn·δt
其中,(xn-1,yn-1)為原坐標,δt為原坐標的獲取時刻與當前時刻的時間差。
實際應用中,對空鼠在顯示屏中坐標位置進行確定處理的時間間隔與加速度傳感器的采集間隔可以一致,也可以略大于采集間隔。當與采集間隔一致時,該坐標的獲取時刻與當前時刻的時間差可以為采集間隔的時長。
綜上,本實施例中,在采集到空鼠當前對應的三軸方向的重力加速度之后,通過對該重力加速度的標定處理,對基于該重力加速度確定的第一姿態角的平滑、去噪處理,可以保證用于確定空鼠在顯示屏中坐標位置的姿態角信息的準確、可靠。進而,基于分段函數對空鼠在顯示屏中的坐標移動速度進行確定,可以實現空鼠在顯示屏中的滯空停留效果。
圖4為本發明實施例提供的空鼠的位移獲取裝置的結構示意圖,如圖4所示,該裝置包括:采集模塊11、第一確定模塊12、校正模塊13、第二確定模塊14、第三確定模塊15。
采集模塊11,用于采集空鼠當前對應的三軸方向的重力加速度。
第一確定模塊12,用于根據所述重力加速度確定所述空鼠當前對應的第一姿態角。
校正模塊13,用于對所述第一姿態角進行校正處理。
第二確定模塊14,用于根據校正后的第一姿態角與第二姿態角的比較結果,確定所述空鼠的移動速度。
第三確定模塊15,用于根據所述空鼠的移動速度和原坐標,確定所述空鼠對應的當前坐標,其中,所述第二姿態角與所述原坐標對應,所述原坐標為根據所述移動速度移動前所述空鼠對應的坐標。
可選地,該裝置還包括:標定模塊16。
標定模塊16,用于采用預先獲得的標定參數對所述重力加速度進行標定。
可選地,所述校正模塊13包括:平滑單元131、去噪單元132。
平滑單元131,用于結合k個第三姿態角對所述第一姿態角進行平滑處理,所述k個第三姿態角與在所述重力加速度之前采集到的k個重力加速度對應,k為大于1的預設值。
去噪單元132,用于對平滑處理后的第一姿態角進行去噪處理。
可選地,所述第一姿態角包括:俯仰角和翻滾角,以及,所述第一確定模塊12具體用于:
確定所述空鼠當前對應的俯仰角為:pitchn=-arcsin(gx/g);
確定所述空鼠當前對應的翻滾角為:rolln=-arctan(gy/gz);
其中,g為預設重力加速度常數,gx為x軸方向對應的重力加速度,gy為y軸方向對應的重力加速度,gz為z軸方向對應的重力加速度。
可選地,所述第二確定模塊14具體用于:
根據如下分段函數確定所述空鼠的在x軸方向的移動速度vxn以及在y軸方向的移動速度vyn:
其中,
從而可選地,所述第三確定模塊15具體用于:
根據如下公式確定所述空鼠對應的當前坐標(xn,yn):
xn=xn-1+vxn·δt
yn=yn-1+vyn·δt
其中,(xn-1,yn-1)為所述原坐標,δt為所述原坐標的獲取時刻與當前時刻的時間差。
圖4所示裝置可以執行圖1、圖3所示實施例的方法,本實施例未詳細描述的部分,可參考對圖1、圖3所示實施例的相關說明。該技術方案的執行過程和技術效果參見圖1、圖3所示實施例中的描述,在此不再贅述。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。