CN106648085A - 一种虚拟现实设备姿态信息的捕捉方法 - Google Patents
一种虚拟现实设备姿态信息的捕捉方法 Download PDFInfo
- Publication number
- CN106648085A CN106648085A CN201611134219.6A CN201611134219A CN106648085A CN 106648085 A CN106648085 A CN 106648085A CN 201611134219 A CN201611134219 A CN 201611134219A CN 106648085 A CN106648085 A CN 106648085A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- virtual reality
- attitude information
- reality device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种虚拟现实设备姿态信息的捕捉方法,其特征在于,定义了一个私有的数据包封装协议,使数据包大小可超过64字节;数据包封装协议中增加了数据校验位;数据传输时采用批量传输(Bulk Transfer)方式,以支持更大的数据带宽;且虚拟现实设备及全速USB设备在使用前都需要安装驱动程序。本发明的优点在于,采用本发明所述方法能够降低虚拟现实设备姿态信息的捕捉延时、同时保证了姿态信息数据上行和下行的安全性,且兼顾通讯协议的可扩展性。
Description
技术领域
本发明涉及一种虚拟现实设备姿态信息的捕捉方法,尤其是一种超低延时且信息安全性高的虚拟现实设备姿态信息的捕捉方法。
背景技术
为了在虚拟现实中营造沉浸感,增强人机之间的互动性,需要实时获取虚拟现实头戴显示设备当前的姿态信息,如设备转动方向、转动角度等,来调整显示内容。姿态信息采集一般要利用到IMU芯片(Inertial Measurement Unit,惯性测量单元),通常都会包含三轴的加速度计和三轴的陀螺仪,加速度计测量物体在三维空间中的加速度信号,陀螺仪则测量物体在三维空间中的角速度,并以此解算出物体的姿态。
目前依赖HDMI(High Definition Multimedia Interface,高清晰度多媒体接口)线与USB(Universal Serial Bus,通用串行总线)数据线进行数据传输的虚拟现实设备的方案通常都具有以下结构:下位机(即虚拟现实设备)采用一款控制芯片作为微控制单元(MCU),搭配一款IMU芯片及显示控制器(以及显示屏),通过USB线与上位机(即个人计算机PC)进行数据交换,通过HDMI线进行音视频传输。
常用的传输方法为:设计一个HID类全速USB设备(HID class Full Speed USBdevice),IMU的姿态信息数据上报使用中断传输(Interrupt Transfer),每隔2ms上报一次数据包,每个数据包包含2组IMU数据;下位机配置使用控制传输(Control Transfer)。
这种“HID类全速USB设备、IMU数据上报使用中断传输、下位机配置使用控制传输”方案具有中断传输优先级较高,PC响应较快的优点,但也存在明显的不足:
1.全速USB设备限制了所能传输的最大数据包长度为64字节,在没有定义额外的数据包包头包尾的情况下,无法支持单个数据包超过64字节的数据传输,不利于设备功能扩展;
2.对于有编程基础的使用者,即使不通过下位机通讯协议,依然可以通过WindowsHID用户应用界面(API)中的控制传输接口对下位机进行非正常的控制,不利于虚拟现实设备的信息安全。
为解决上述问题,本发明设计了一种虚拟现实设备姿态信息的捕捉方法,能够降低虚拟现实设备姿态信息的捕捉延时、同时保证了姿态信息数据上行和下行的安全性,且兼顾通讯协议的可扩展性。
发明内容
本发明目的是:提供一种虚拟现实设备姿态信息的捕捉方法,将整个姿态信息捕捉过程的延时降到最低,同时保证数据上行和下行的安全,并兼顾通讯协议的可扩展性。
本发明的技术方案是:
为达到低延时,高安全性和兼容性的目的,本发明技术方案采用HID类全速USB设备硬件,方案实现步骤为:
1.虚拟现实设备及全速USB设备在使用前需要安装驱动,因此只有通过下位机通讯协议获取虚拟现实设备IMU中姿态信息数据,而无法通过Windows HID API直接进行操作。
2.本发明定义了一个私有的数据包封装协议,以支持单个数据包超过64字节的情况,数据包封装协议见实施例中表1,在数据的传输过程中,数据包的组包与解包步骤可参考附图2与附图3。
3.数据包封装协议中增加的数据校验位,保证了整个数据包的完整性和正确性。
4.IMU数据上报使用批量传输(Bulk Transfer),因此克服了现有技术中数据上报采用中断传输方式的查询间隔限制,可以支持更大的数据带宽,数据采集流程可参考附图5。
5.下位机配置采用批量传输(Bulk Transfer),同样具有数据包封装的过程,在下位机不明确数据封装格式的情况下,上位机向下位机发送的数据视作无效,校准数据流程可参考附图4。
6.上位机在未接收到下位机所传输的虚拟设备姿态信息数据时会被阻塞,以此保证当下位机发送了姿态信息数据,上位机可在第一时间接收数据,因此在本方案中传输延时基本等于USB数据传输本身的延时。
7.每个惯性测量单元IMU向上位机上报的数据包中,都会包含至少2组姿态信息数据,以保证对虚拟现实设备进行运动预测时,运动预测算法利用此两组真实采集到的IMU姿态信息数据对之后的一定时间间隔内的姿态信息进行预测,通过此方法可将IMU姿态信息数据传输过程中的延时也计算入总延时中,本发明中在理想情况下,传输延时基本等于USB数据传输本身的延时,因此可将此部分延时降低至接近0ms。(参考实施例中表2)
可选的,本发明方案中定义的数据包大小能够扩展,因此可以支持惯性测量单元IMU向上位机上报的数据包包含更多组姿态信息数据。
与现有技术相比,本发明具有以下创新点:
1.在现有技术中,数据包封装时无法超过64字节,本发明方案定义了一个私有的数据包封装协议,以支持单个数据包超过64字节的情况,以便于数据能够更快速的传输,且减小了数据的组包与解包延时。
2.数据包封装协议中增加了数据校验位,在数据的组包过程中计算校验位,在数据包解包过程中检查校验位,因此保证了整个数据包的完整性和正确性。
3.IMU数据上报采用批量传输(Bulk Transfer)方式,因此克服了现有技术中数据上报采用中断传输方式的查询间隔限制,可以支持更大的数据带宽,数据采集流程可参考附图5。
4.本发明方法中下位机的配置采用批量传输(Bulk Transfer),同样,具有数据包封装的过程,在下位机不明确数据封装格式的情况下,上位机向下位机发送的数据视作无效,以确保上位机安全、正确的提取数据。
5.虚拟现实设备及全速USB设备在使用前需要安装驱动,因此只有通过下位机通讯协议获取虚拟现实设备IMU中姿态信息数据,而无法通过Windows HID API直接进行操作,增强了数据的安全性。
附图说明
图1为IMU数据传输流程图;
图2为数据包组包步骤流程图;
图3为数据包解包步骤流程图;
图4为配置IMU校准数据流程图;
图5为IMU数据采集流程图;
具体实施方式
如背景技术中所述,现有技术的虚拟现实头戴显示设备姿态信息的捕捉方法在实际应用中仍然存在延时长、安全性低等问题。
本发明技术方案为将通过驱动读取到的IMU数据通过本发明方法定义的私有协议进行数据组包;将组包完成的数据采用批量传输方式进行传输;将接收端接收到的数据包按照私有协议的定义进行数据解包。尤其在数据量较大的情况下,本发明方法显著的降低了延时,提高了数据的安全性。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参照附图1所示为IMU数据传输流程图,包括以下步骤:
步骤101:虚拟现实设备及全速USB设备在使用前需要安装驱动程序,通过下位机通讯协议获取虚拟现实设备IMU中姿态信息数据,并对数据进行组包操作,包括但不限于填充包头、包身数据;
所述驱动程序的安装目的在于使上位机只能通过通讯协议获取虚拟现实设备IMU中姿态信息数据,而无法通过Windows HID API直接进行操作,保证了数据的安全性;
本发明方法定义了一个私有的数据包封装协议,以支持单个数据包超过64字节的情况,数据包封装协议见表1。
包头 | 包身 | 包尾 |
特定标识符、包身长度、包类型 | 有效数据 | 校验位、特定标识符 |
表1.数据包封装协议
步骤102:计算校验位数据;
所述的数据包封装协议中增加的数据校验位,保证了整个数据包的完整性和正确性。
步骤103:填充包尾标识符,完成数据组包。
步骤104:IMU数据上报采用批量传输(Bulk Transfer)方式;
所述批量传输方式克服了现有技术中数据上报采用中断传输方式的查询间隔限制,可以支持更大的数据带宽。
步骤105:接收端接收到数据包后,判断包头、包尾标识及包身长度,当其中任意一项不符合私有协议定义的要求时,判定为解包失败,返回数据;当包头、包尾标识及包身长度判定后皆符合要求时,进入步骤106。
步骤106:检查校验位,当校验位数据不符合私有协议定义的要求时,判定为解包失败,返回数据;当校验位数据符合要求时,进入步骤107。
步骤107:当数据包标识信息判定通过后,提取有效数据,完成数据解包操作。
图2为本发明实施例中数据包组包步骤流程图,包括如下步骤;
步骤201:填充包头、包身;
步骤202:计算包身长度;
步骤203:填充包类型;
步骤204:拷贝有效数据;
步骤205:计算校验位;
步骤206:填充包尾标识符;
步骤207:组包完成。
图3为本发明实施例中数据包解包步骤流程图,包括如下步骤;
步骤301:判断包头标识符;
步骤302:判断包身长度;
步骤303:判断包尾标识符,当所述步骤301、302、303,其中任意一项不符合私有协议定义的要求时,进入步骤304,当所述步骤301、302、303皆符合要求时,进入步骤305;
步骤304:解包失败,返回;
步骤305:检查校验位,当校验位数据不符合私有协议定义的要求时,进入步骤304,当校验位数据符合要求时,进入步骤306;
步骤306:提取有效数据;
步骤307:解包完成。
图4为本发明实施例中配置IMU校准数据流程图,步骤401为虚拟现实设备中的计算流程,步骤402为个人计算机中的计算流程。
配置IMU校准数据的流程为:计算得出IMU校准参数后,通过USB host组包,采用批量传输方式进行传输,在虚拟现实设备端通过USB device进行解包,再由微控制单元MCU向闪存中写入IMU校准数据。
所述的下位机配置采用批量传输(Bulk Transfer),同样具有数据包封装的过程,在下位机不明确数据封装格式的情况下,上位机向下位机发送的数据视作无效。
图5为本发明实施例中IMU数据采集流程图,步骤501为虚拟现实设备中的数据处理流程,步骤502为个人计算机中的数据处理流程。
IMU的数据采集至显示流程为:微控制单元MCU通过下位机通信协议采集惯性测量单元IMU中的姿态信息数据,并从闪存中读取IMU校准数据,整合后由USB device进行数据组包,采用批量传输方式进行数据传输,个人计算机PC接收端接收后由USB host进行数据解包,完成姿态解算及预测,从而指导图像的合成与渲染,经过HDMI发送端发送数据,接收端接收数据,由显示控制模块控制虚拟现实设备显示器进行显示。
本实施例中所述的每个惯性测量单元IMU向上位机上报的数据包中,都会包含至少2组姿态信息数据,以保证对虚拟现实设备进行运动预测时,运动预测算法利用此两组真实采集到的IMU姿态信息数据对之后的一定时间间隔内的姿态信息进行预测,通过此方法可将IMU姿态信息数据传输过程中的延时也计算入总延时中,本发明中在理想情况下,传输延时基本等于USB数据传输本身的延时,因此可将此部分延时降低至接近0ms,(参考表2)。
成员名称 | 功能描述 |
时间戳 | MCU记录的时间戳 |
IMU数据采样1-第一部分 | 三轴陀螺仪数据 |
IMU数据采样1-第二部分 | 三轴加速度数据 |
IMU数据采样2-第一部分 | 三轴陀螺仪数据 |
IMU数据采样2-第二部分 | 三轴加速度数据 |
磁力计采样 | 三轴磁力计数据 |
瞳距 | 瞳距数据 |
接近开关(ProximitySwitch) | 接近开关 |
保留字节(Reserve) | 保留字节,用于结构体32bit对齐 |
表2.IMU数据上报通讯协议
可选的,本实施例中定义的数据包大小能够扩展,因此可以支持惯性测量单元IMU向上位机上报的数据包包含更多组姿态信息数据。
所述的上位机在未接收到下位机所传输的虚拟设备姿态信息数据时会被阻塞,以此保证当下位机发送了姿态信息数据,上位机可在第一时间接收数据,因此在本实施例中传输延时基本等于USB数据传输本身的延时。
以上所述,仅为本发明具体实施方式。本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
Claims (6)
1.一种虚拟现实设备姿态信息的捕捉方法,其特征在于,包括:
将通过驱动读取到的IMU数据通过本发明方法定义的私有协议进行数据组包;
将组包完成的数据采用批量传输方式进行传输;
将接收端接收到的数据包按照私有协议的定义进行数据解包。
所述数据组包过程包括填充包头、包身,计算包身长度,填充包类型,拷贝有效数据,计算校验位,填充包尾标识符步骤;
所述数据解包过程包括判断包头标识符,判断包身长度,判断包尾标识符,检查校验位,提取有效数据步骤。
所述数据解包过程中只有当判断包头标识符,判断包身长度,判断包尾标识符,检查校验位步骤全部通过时,才能进行提取数据包中有效数据步骤,当判断包头标识符,判断包身长度,判断包尾标识符,检查校验位步骤中任一步骤不符合协议要求,则数据解包失败。
2.根据权利要求1所述的一种虚拟现实设备姿态信息的捕捉方法,其特征在于,虚拟现实设备及全速USB设备在使用前都需要安装驱动程序,保证只能通过下位机通讯协议获取虚拟现实设备IMU中姿态信息数据。
3.根据权利要求1所述的一种虚拟现实设备姿态信息的捕捉方法,其特征在于,定义了一个私有的数据包封装协议,以支持单个数据包超过64字节的情况。
4.根据权利要求1所述的一种虚拟现实设备姿态信息的捕捉方法,其特征在于,数据包封装协议中增加了数据校验位,在数据的组包过程中计算校验位,在数据包解包过程中检查校验位。
5.根据权利要求1所述的一种虚拟现实设备姿态信息的捕捉方法,其特征在于,IMU姿态信息数据上报采用批量传输(Bulk Transfer)方式,可以支持更大的数据带宽。
6.根据权利要求1所述的一种虚拟现实设备姿态信息的捕捉方法,其特征在于,下位机的配置采用批量传输(Bulk Transfer)方式,在下位机不明确数据封装格式的情况下,上位机向下位机发送的数据视作无效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611134219.6A CN106648085A (zh) | 2016-12-12 | 2016-12-12 | 一种虚拟现实设备姿态信息的捕捉方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611134219.6A CN106648085A (zh) | 2016-12-12 | 2016-12-12 | 一种虚拟现实设备姿态信息的捕捉方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106648085A true CN106648085A (zh) | 2017-05-10 |
Family
ID=58824410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611134219.6A Pending CN106648085A (zh) | 2016-12-12 | 2016-12-12 | 一种虚拟现实设备姿态信息的捕捉方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648085A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563325A (zh) * | 2018-03-09 | 2018-09-21 | 深圳市亿境虚拟现实技术有限公司 | 虚拟现实***数据传输方法 |
CN108959159A (zh) * | 2018-07-04 | 2018-12-07 | 珠海迈科智能科技股份有限公司 | 一种基于Android的微型投影仪的交互方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021827A (zh) * | 2007-03-14 | 2007-08-22 | 北京飞天诚信科技有限公司 | 实现通用串行总线键的复合设备的方法 |
CN101836857A (zh) * | 2010-04-30 | 2010-09-22 | 天津大学 | 高速多路同步针灸体表电信号采集*** |
CN102055765A (zh) * | 2010-12-30 | 2011-05-11 | 恒生电子股份有限公司 | 一种网络通信*** |
US20120096194A1 (en) * | 2010-10-13 | 2012-04-19 | Yung-Ta Chan | Universal serial bus device and bulk transfer control circuit and control method thereof |
CN103259616A (zh) * | 2012-02-20 | 2013-08-21 | 联想(北京)有限公司 | 一种数据传输方法 |
CN104834623A (zh) * | 2015-04-28 | 2015-08-12 | 常州听觉工坊智能科技有限公司 | 音频播放方法及装置 |
CN105208016A (zh) * | 2015-09-07 | 2015-12-30 | 山东大学 | 农业物联网多种数据传输及处理的方法 |
CN105404385A (zh) * | 2014-05-30 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种智能显示终端与体感设备实现数据交互的方法及装置 |
CN105652442A (zh) * | 2015-12-31 | 2016-06-08 | 北京小鸟看看科技有限公司 | 头戴显示设备及该头戴显示设备与智能终端的交互方法 |
-
2016
- 2016-12-12 CN CN201611134219.6A patent/CN106648085A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021827A (zh) * | 2007-03-14 | 2007-08-22 | 北京飞天诚信科技有限公司 | 实现通用串行总线键的复合设备的方法 |
CN101836857A (zh) * | 2010-04-30 | 2010-09-22 | 天津大学 | 高速多路同步针灸体表电信号采集*** |
US20120096194A1 (en) * | 2010-10-13 | 2012-04-19 | Yung-Ta Chan | Universal serial bus device and bulk transfer control circuit and control method thereof |
CN102055765A (zh) * | 2010-12-30 | 2011-05-11 | 恒生电子股份有限公司 | 一种网络通信*** |
CN103259616A (zh) * | 2012-02-20 | 2013-08-21 | 联想(北京)有限公司 | 一种数据传输方法 |
CN105404385A (zh) * | 2014-05-30 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种智能显示终端与体感设备实现数据交互的方法及装置 |
CN104834623A (zh) * | 2015-04-28 | 2015-08-12 | 常州听觉工坊智能科技有限公司 | 音频播放方法及装置 |
CN105208016A (zh) * | 2015-09-07 | 2015-12-30 | 山东大学 | 农业物联网多种数据传输及处理的方法 |
CN105652442A (zh) * | 2015-12-31 | 2016-06-08 | 北京小鸟看看科技有限公司 | 头戴显示设备及该头戴显示设备与智能终端的交互方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563325A (zh) * | 2018-03-09 | 2018-09-21 | 深圳市亿境虚拟现实技术有限公司 | 虚拟现实***数据传输方法 |
CN108959159A (zh) * | 2018-07-04 | 2018-12-07 | 珠海迈科智能科技股份有限公司 | 一种基于Android的微型投影仪的交互方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130159595A1 (en) | Serial Interface for FPGA Prototyping | |
EP2568665B1 (en) | Methods and devices for transmitting scsi packets on a pcie bus | |
CN108476155A (zh) | 不正当消息检测装置、方法、程序、以及电子控制装置 | |
KR101675006B1 (ko) | 인터럽트 패킷 전송 | |
CN106648085A (zh) | 一种虚拟现实设备姿态信息的捕捉方法 | |
CN107332747A (zh) | 基于PCIExpress 2.0接口的Arinc818航空音视频总线数据分析仪 | |
CN109450912A (zh) | 数据传输方法、装置和设备 | |
EP1998265A1 (en) | Method for designing LSI (Large Scale Integration) system and design support device for LSI system | |
CN103825768B (zh) | 报文传输方法和装置 | |
EP3767882B1 (en) | Network traffic monitoring device | |
CN111147175A (zh) | 时间触发以太网数据帧捕获、存储装置及方法 | |
CN107197232A (zh) | 基于usb3.0接口的arinc818航空音视频总线数据分析仪 | |
CN104426866B (zh) | 一种数据传输方法及装置 | |
US20120331179A1 (en) | Network-to-network bridge | |
CN110708359A (zh) | 一种基于usb通信的仪表信息传输装置及方法 | |
CN109144937B (zh) | 一种多路串口高可靠性传输方法 | |
JP6399105B2 (ja) | 情報処理システム、情報処理方法、情報処理装置および制御プログラム | |
CN104009957A (zh) | 一种基于串口的以太网通讯方法及装置 | |
EP1687922B1 (en) | Backward-compatible parallel ddr bus for use in host-daughtercard interface | |
CN105930293A (zh) | 串行收发接口模块与usb接口模块共用端口电路及工作方法 | |
CN101969355A (zh) | 网络传输速度测试方法及其网络装置 | |
KR101502147B1 (ko) | 네트워크 상에서 usb 호스트와 usb 디바이스 간의 통신 방법, 장치 및 기록매체 | |
CN105550976B (zh) | 用于总线带宽偶发性不足的图像数据实时接收容错方法 | |
CN202975735U (zh) | 一种用于高速摄像球机的i2c光纤通讯驱动*** | |
CN114064547B (zh) | 一种基于PCIe的通信协议栈硬件加速架构构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170510 |
|
WD01 | Invention patent application deemed withdrawn after publication |