本發(fā)明涉及一種虛擬現(xiàn)實設(shè)備姿態(tài)信息的捕捉方法,尤其是一種超低延時且信息安全性高的虛擬現(xiàn)實設(shè)備姿態(tài)信息的捕捉方法。
背景技術(shù):
:為了在虛擬現(xiàn)實中營造沉浸感,增強人機之間的互動性,需要實時獲取虛擬現(xiàn)實頭戴顯示設(shè)備當前的姿態(tài)信息,如設(shè)備轉(zhuǎn)動方向、轉(zhuǎn)動角度等,來調(diào)整顯示內(nèi)容。姿態(tài)信息采集一般要利用到IMU芯片(InertialMeasurementUnit,慣性測量單元),通常都會包含三軸的加速度計和三軸的陀螺儀,加速度計測量物體在三維空間中的加速度信號,陀螺儀則測量物體在三維空間中的角速度,并以此解算出物體的姿態(tài)。目前依賴HDMI(HighDefinitionMultimediaInterface,高清晰度多媒體接口)線與USB(UniversalSerialBus,通用串行總線)數(shù)據(jù)線進行數(shù)據(jù)傳輸?shù)奶摂M現(xiàn)實設(shè)備的方案通常都具有以下結(jié)構(gòu):下位機(即虛擬現(xiàn)實設(shè)備)采用一款控制芯片作為微控制單元(MCU),搭配一款I(lǐng)MU芯片及顯示控制器(以及顯示屏),通過USB線與上位機(即個人計算機PC)進行數(shù)據(jù)交換,通過HDMI線進行音視頻傳輸。常用的傳輸方法為:設(shè)計一個HID類全速USB設(shè)備(HIDclassFullSpeedUSBdevice),IMU的姿態(tài)信息數(shù)據(jù)上報使用中斷傳輸(InterruptTransfer),每隔2ms上報一次數(shù)據(jù)包,每個數(shù)據(jù)包包含2組IMU數(shù)據(jù);下位機配置使用控制傳輸(ControlTransfer)。這種“HID類全速USB設(shè)備、IMU數(shù)據(jù)上報使用中斷傳輸、下位機配置使用控制傳輸”方案具有中斷傳輸優(yōu)先級較高,PC響應(yīng)較快的優(yōu)點,但也存在明顯的不足:1.全速USB設(shè)備限制了所能傳輸?shù)淖畲髷?shù)據(jù)包長度為64字節(jié),在沒有定義額外的數(shù)據(jù)包包頭包尾的情況下,無法支持單個數(shù)據(jù)包超過64字節(jié)的數(shù)據(jù)傳輸,不利于設(shè)備功能擴展;2.對于有編程基礎(chǔ)的使用者,即使不通過下位機通訊協(xié)議,依然可以通過WindowsHID用戶應(yīng)用界面(API)中的控制傳輸接口對下位機進行非正常的控制,不利于虛擬現(xiàn)實設(shè)備的信息安全。為解決上述問題,本發(fā)明設(shè)計了一種虛擬現(xiàn)實設(shè)備姿態(tài)信息的捕捉方法,能夠降低虛擬現(xiàn)實設(shè)備姿態(tài)信息的捕捉延時、同時保證了姿態(tài)信息數(shù)據(jù)上行和下行的安全性,且兼顧通訊協(xié)議的可擴展性。技術(shù)實現(xiàn)要素:本發(fā)明目的是:提供一種虛擬現(xiàn)實設(shè)備姿態(tài)信息的捕捉方法,將整個姿態(tài)信息捕捉過程的延時降到最低,同時保證數(shù)據(jù)上行和下行的安全,并兼顧通訊協(xié)議的可擴展性。本發(fā)明的技術(shù)方案是:為達到低延時,高安全性和兼容性的目的,本發(fā)明技術(shù)方案采用HID類全速USB設(shè)備硬件,方案實現(xiàn)步驟為:1.虛擬現(xiàn)實設(shè)備及全速USB設(shè)備在使用前需要安裝驅(qū)動,因此只有通過下位機通訊協(xié)議獲取虛擬現(xiàn)實設(shè)備IMU中姿態(tài)信息數(shù)據(jù),而無法通過WindowsHIDAPI直接進行操作。2.本發(fā)明定義了一個私有的數(shù)據(jù)包封裝協(xié)議,以支持單個數(shù)據(jù)包超過64字節(jié)的情況,數(shù)據(jù)包封裝協(xié)議見實施例中表1,在數(shù)據(jù)的傳輸過程中,數(shù)據(jù)包的組包與解包步驟可參考附圖2與附圖3。3.數(shù)據(jù)包封裝協(xié)議中增加的數(shù)據(jù)校驗位,保證了整個數(shù)據(jù)包的完整性和正確性。4.IMU數(shù)據(jù)上報使用批量傳輸(BulkTransfer),因此克服了現(xiàn)有技術(shù)中數(shù)據(jù)上報采用中斷傳輸方式的查詢間隔限制,可以支持更大的數(shù)據(jù)帶寬,數(shù)據(jù)采集流程可參考附圖5。5.下位機配置采用批量傳輸(BulkTransfer),同樣具有數(shù)據(jù)包封裝的過程,在下位機不明確數(shù)據(jù)封裝格式的情況下,上位機向下位機發(fā)送的數(shù)據(jù)視作無效,校準數(shù)據(jù)流程可參考附圖4。6.上位機在未接收到下位機所傳輸?shù)奶摂M設(shè)備姿態(tài)信息數(shù)據(jù)時會被阻塞,以此保證當下位機發(fā)送了姿態(tài)信息數(shù)據(jù),上位機可在第一時間接收數(shù)據(jù),因此在本方案中傳輸延時基本等于USB數(shù)據(jù)傳輸本身的延時。7.每個慣性測量單元IMU向上位機上報的數(shù)據(jù)包中,都會包含至少2組姿態(tài)信息數(shù)據(jù),以保證對虛擬現(xiàn)實設(shè)備進行運動預(yù)測時,運動預(yù)測算法利用此兩組真實采集到的IMU姿態(tài)信息數(shù)據(jù)對之后的一定時間間隔內(nèi)的姿態(tài)信息進行預(yù)測,通過此方法可將IMU姿態(tài)信息數(shù)據(jù)傳輸過程中的延時也計算入總延時中,本發(fā)明中在理想情況下,傳輸延時基本等于USB數(shù)據(jù)傳輸本身的延時,因此可將此部分延時降低至接近0ms。(參考實施例中表2)可選的,本發(fā)明方案中定義的數(shù)據(jù)包大小能夠擴展,因此可以支持慣性測量單元IMU向上位機上報的數(shù)據(jù)包包含更多組姿態(tài)信息數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下創(chuàng)新點:1.在現(xiàn)有技術(shù)中,數(shù)據(jù)包封裝時無法超過64字節(jié),本發(fā)明方案定義了一個私有的數(shù)據(jù)包封裝協(xié)議,以支持單個數(shù)據(jù)包超過64字節(jié)的情況,以便于數(shù)據(jù)能夠更快速的傳輸,且減小了數(shù)據(jù)的組包與解包延時。2.數(shù)據(jù)包封裝協(xié)議中增加了數(shù)據(jù)校驗位,在數(shù)據(jù)的組包過程中計算校驗位,在數(shù)據(jù)包解包過程中檢查校驗位,因此保證了整個數(shù)據(jù)包的完整性和正確性。3.IMU數(shù)據(jù)上報采用批量傳輸(BulkTransfer)方式,因此克服了現(xiàn)有技術(shù)中數(shù)據(jù)上報采用中斷傳輸方式的查詢間隔限制,可以支持更大的數(shù)據(jù)帶寬,數(shù)據(jù)采集流程可參考附圖5。4.本發(fā)明方法中下位機的配置采用批量傳輸(BulkTransfer),同樣,具有數(shù)據(jù)包封裝的過程,在下位機不明確數(shù)據(jù)封裝格式的情況下,上位機向下位機發(fā)送的數(shù)據(jù)視作無效,以確保上位機安全、正確的提取數(shù)據(jù)。5.虛擬現(xiàn)實設(shè)備及全速USB設(shè)備在使用前需要安裝驅(qū)動,因此只有通過下位機通訊協(xié)議獲取虛擬現(xiàn)實設(shè)備IMU中姿態(tài)信息數(shù)據(jù),而無法通過WindowsHIDAPI直接進行操作,增強了數(shù)據(jù)的安全性。附圖說明圖1為IMU數(shù)據(jù)傳輸流程圖;圖2為數(shù)據(jù)包組包步驟流程圖;圖3為數(shù)據(jù)包解包步驟流程圖;圖4為配置IMU校準數(shù)據(jù)流程圖;圖5為IMU數(shù)據(jù)采集流程圖;具體實施方式如
背景技術(shù):
中所述,現(xiàn)有技術(shù)的虛擬現(xiàn)實頭戴顯示設(shè)備姿態(tài)信息的捕捉方法在實際應(yīng)用中仍然存在延時長、安全性低等問題。本發(fā)明技術(shù)方案為將通過驅(qū)動讀取到的IMU數(shù)據(jù)通過本發(fā)明方法定義的私有協(xié)議進行數(shù)據(jù)組包;將組包完成的數(shù)據(jù)采用批量傳輸方式進行傳輸;將接收端接收到的數(shù)據(jù)包按照私有協(xié)議的定義進行數(shù)據(jù)解包。尤其在數(shù)據(jù)量較大的情況下,本發(fā)明方法顯著的降低了延時,提高了數(shù)據(jù)的安全性。為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細的說明。參照附圖1所示為IMU數(shù)據(jù)傳輸流程圖,包括以下步驟:步驟101:虛擬現(xiàn)實設(shè)備及全速USB設(shè)備在使用前需要安裝驅(qū)動程序,通過下位機通訊協(xié)議獲取虛擬現(xiàn)實設(shè)備IMU中姿態(tài)信息數(shù)據(jù),并對數(shù)據(jù)進行組包操作,包括但不限于填充包頭、包身數(shù)據(jù);所述驅(qū)動程序的安裝目的在于使上位機只能通過通訊協(xié)議獲取虛擬現(xiàn)實設(shè)備IMU中姿態(tài)信息數(shù)據(jù),而無法通過WindowsHIDAPI直接進行操作,保證了數(shù)據(jù)的安全性;本發(fā)明方法定義了一個私有的數(shù)據(jù)包封裝協(xié)議,以支持單個數(shù)據(jù)包超過64字節(jié)的情況,數(shù)據(jù)包封裝協(xié)議見表1。包頭包身包尾特定標識符、包身長度、包類型有效數(shù)據(jù)校驗位、特定標識符表1.數(shù)據(jù)包封裝協(xié)議步驟102:計算校驗位數(shù)據(jù);所述的數(shù)據(jù)包封裝協(xié)議中增加的數(shù)據(jù)校驗位,保證了整個數(shù)據(jù)包的完整性和正確性。步驟103:填充包尾標識符,完成數(shù)據(jù)組包。步驟104:IMU數(shù)據(jù)上報采用批量傳輸(BulkTransfer)方式;所述批量傳輸方式克服了現(xiàn)有技術(shù)中數(shù)據(jù)上報采用中斷傳輸方式的查詢間隔限制,可以支持更大的數(shù)據(jù)帶寬。步驟105:接收端接收到數(shù)據(jù)包后,判斷包頭、包尾標識及包身長度,當其中任意一項不符合私有協(xié)議定義的要求時,判定為解包失敗,返回數(shù)據(jù);當包頭、包尾標識及包身長度判定后皆符合要求時,進入步驟106。步驟106:檢查校驗位,當校驗位數(shù)據(jù)不符合私有協(xié)議定義的要求時,判定為解包失敗,返回數(shù)據(jù);當校驗位數(shù)據(jù)符合要求時,進入步驟107。步驟107:當數(shù)據(jù)包標識信息判定通過后,提取有效數(shù)據(jù),完成數(shù)據(jù)解包操作。圖2為本發(fā)明實施例中數(shù)據(jù)包組包步驟流程圖,包括如下步驟;步驟201:填充包頭、包身;步驟202:計算包身長度;步驟203:填充包類型;步驟204:拷貝有效數(shù)據(jù);步驟205:計算校驗位;步驟206:填充包尾標識符;步驟207:組包完成。圖3為本發(fā)明實施例中數(shù)據(jù)包解包步驟流程圖,包括如下步驟;步驟301:判斷包頭標識符;步驟302:判斷包身長度;步驟303:判斷包尾標識符,當所述步驟301、302、303,其中任意一項不符合私有協(xié)議定義的要求時,進入步驟304,當所述步驟301、302、303皆符合要求時,進入步驟305;步驟304:解包失敗,返回;步驟305:檢查校驗位,當校驗位數(shù)據(jù)不符合私有協(xié)議定義的要求時,進入步驟304,當校驗位數(shù)據(jù)符合要求時,進入步驟306;步驟306:提取有效數(shù)據(jù);步驟307:解包完成。圖4為本發(fā)明實施例中配置IMU校準數(shù)據(jù)流程圖,步驟401為虛擬現(xiàn)實設(shè)備中的計算流程,步驟402為個人計算機中的計算流程。配置IMU校準數(shù)據(jù)的流程為:計算得出IMU校準參數(shù)后,通過USBhost組包,采用批量傳輸方式進行傳輸,在虛擬現(xiàn)實設(shè)備端通過USBdevice進行解包,再由微控制單元MCU向閃存中寫入IMU校準數(shù)據(jù)。所述的下位機配置采用批量傳輸(BulkTransfer),同樣具有數(shù)據(jù)包封裝的過程,在下位機不明確數(shù)據(jù)封裝格式的情況下,上位機向下位機發(fā)送的數(shù)據(jù)視作無效。圖5為本發(fā)明實施例中IMU數(shù)據(jù)采集流程圖,步驟501為虛擬現(xiàn)實設(shè)備中的數(shù)據(jù)處理流程,步驟502為個人計算機中的數(shù)據(jù)處理流程。IMU的數(shù)據(jù)采集至顯示流程為:微控制單元MCU通過下位機通信協(xié)議采集慣性測量單元IMU中的姿態(tài)信息數(shù)據(jù),并從閃存中讀取IMU校準數(shù)據(jù),整合后由USBdevice進行數(shù)據(jù)組包,采用批量傳輸方式進行數(shù)據(jù)傳輸,個人計算機PC接收端接收后由USBhost進行數(shù)據(jù)解包,完成姿態(tài)解算及預(yù)測,從而指導(dǎo)圖像的合成與渲染,經(jīng)過HDMI發(fā)送端發(fā)送數(shù)據(jù),接收端接收數(shù)據(jù),由顯示控制模塊控制虛擬現(xiàn)實設(shè)備顯示器進行顯示。本實施例中所述的每個慣性測量單元IMU向上位機上報的數(shù)據(jù)包中,都會包含至少2組姿態(tài)信息數(shù)據(jù),以保證對虛擬現(xiàn)實設(shè)備進行運動預(yù)測時,運動預(yù)測算法利用此兩組真實采集到的IMU姿態(tài)信息數(shù)據(jù)對之后的一定時間間隔內(nèi)的姿態(tài)信息進行預(yù)測,通過此方法可將IMU姿態(tài)信息數(shù)據(jù)傳輸過程中的延時也計算入總延時中,本發(fā)明中在理想情況下,傳輸延時基本等于USB數(shù)據(jù)傳輸本身的延時,因此可將此部分延時降低至接近0ms,(參考表2)。成員名稱功能描述時間戳MCU記錄的時間戳IMU數(shù)據(jù)采樣1-第一部分三軸陀螺儀數(shù)據(jù)IMU數(shù)據(jù)采樣1-第二部分三軸加速度數(shù)據(jù)IMU數(shù)據(jù)采樣2-第一部分三軸陀螺儀數(shù)據(jù)IMU數(shù)據(jù)采樣2-第二部分三軸加速度數(shù)據(jù)磁力計采樣三軸磁力計數(shù)據(jù)瞳距瞳距數(shù)據(jù)接近開關(guān)(ProximitySwitch)接近開關(guān)保留字節(jié)(Reserve)保留字節(jié),用于結(jié)構(gòu)體32bit對齊表2.IMU數(shù)據(jù)上報通訊協(xié)議可選的,本實施例中定義的數(shù)據(jù)包大小能夠擴展,因此可以支持慣性測量單元IMU向上位機上報的數(shù)據(jù)包包含更多組姿態(tài)信息數(shù)據(jù)。所述的上位機在未接收到下位機所傳輸?shù)奶摂M設(shè)備姿態(tài)信息數(shù)據(jù)時會被阻塞,以此保證當下位機發(fā)送了姿態(tài)信息數(shù)據(jù),上位機可在第一時間接收數(shù)據(jù),因此在本實施例中傳輸延時基本等于USB數(shù)據(jù)傳輸本身的延時。以上所述,僅為本發(fā)明具體實施方式。本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求所界定的保護范圍為準。當前第1頁1 2 3