一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟物体控制方法、系统、介质及终端与流程

2022-05-18 06:32:52 来源:中国专利 TAG:


1.本发明涉及虚拟现实技术领域,具体地,涉及一种虚拟物体控制方法、系统、介质及终端。


背景技术:

2.虚拟现实技术(英文名称:virtual reality,缩写为vr),是一项全新的实用技术,虚拟现实技术囊括计算机、电子信息、仿真技术,其基本实现方式是计算机模拟虚拟环境从而给人以环境沉浸感。随着社会生产力和科学技术的不断发展,各行各业对vr技术的需求日益旺盛,vr技术也取得了巨大进步,并逐步成为一个新的科学技术领域。相关技术中,通常在vr客户端下直接读取传感器数据,无法实现多个传感器的数据传输。


技术实现要素:

3.本发明的目的是提供一种虚拟物体控制方法、系统、介质及终端,以提高虚拟物体控制的准确性和精准度。
4.为了实现上述目的,第一方面,本发明提供一种虚拟物体控制方法,应用于虚拟现实数据接收端,所述方法包括:
5.接收多个传感器数据读取端各自发送的加密传感器数据,其中,所述虚拟现实数据接收端与所述传感器数据读取端之间通过tcp协议进行数据传输,不同传感器数据读取端与所述虚拟现实数据接收端之间建立的tcp协议地址不同,所述传感器数据读取端通过usb hid协议读取传感器采集的数据;
6.针对每一所述加密传感器数据,对所述加密传感器数据进行解析,以得到传感器采集的速度数据和方向数据;
7.根据所述速度数据和所述方向数据,对虚拟现实设备下的虚拟物体进行移动和转向的控制。
8.可选地,所述传感器数据读取端通过如下方式生成并发送所述加密传感器数据:
9.每隔预设时长读取建立usb hid连接的传感器采集的速度数据和方向数据;
10.判断与所述虚拟现实数据接收端之间的tcp连接是否正常;
11.在连接正常的情况下,将预设前缀加密报头、传感器数据字节长度、传感器速度数据和方向数据、预设数据字节长度、预设数据字节进行拼接,得到所述加密传感器数据,并通过tcp连接向所述虚拟现实数据接收端发送所述加密传感器数据。
12.可选地,所述传感器数据读取端与传感器之间通过如下方式建立usb hid通信:
13.判断传感器设备路径是否已存储;
14.在传感器设备路径未存储的情况下,获取传感器的供应商识别码和产品识别码,通过所述供应商识别码和所述产品识别码读取传感器的连接信号,若传感器的连接信号符合指定传感器编号的连接信号,则打开传感器的usb hid通信连接,以及获取并存储传感器设备路径;
15.在传感器设备路径已存储的情况下,判断传感器usb hid信号能否正常打开,在传感器usb hid信号能够正常打开的情况下,确定传感器数据读取端与传感器之间建立usb hid通信。
16.可选地,所述对所述加密传感器数据进行解析,以得到传感器采集的速度数据和方向数据,包括:
17.从所述加密传感器数据中截取预设前缀加密报头;
18.在截取的所述预设前缀加密报头验证通过的情况下,继续从所述加密传感器数据中截取传感器采集的速度数据和方向数据。
19.可选地,所述根据所述速度数据和所述方向数据,对虚拟现实设备下的虚拟物体进行移动和转向的控制,包括:
20.将传感器采集的方向数据与虚拟现实设备的头盔方向数据进行向量乘积,根据向量乘积结果控制所述虚拟物体的转向;
21.将传感器采集的速度数据作为虚拟物体的速度,采用unity中每帧物体移动计算方式,将物体移动方向及移动速度与每帧时间间隔差进行乘积计算,得到每一帧虚拟物体的移动数据量,并将移动结果作为虚拟物体的实际坐标和旋转值,以控制虚拟物体的移动。
22.第二方面,本发明提供一种虚拟物体控制系统,所述系统包括虚拟现实数据接收端和多个传感器数据读取端,所述虚拟现实数据接收端包括接收模块、解析模块、控制模块;
23.所述接收模块,用于接收多个传感器数据读取端各自发送的加密传感器数据,其中,所述虚拟现实数据接收端与所述传感器数据读取端之间通过tcp协议进行数据传输,不同传感器数据读取端与所述虚拟现实数据接收端之间建立的tcp协议地址不同,所述传感器数据读取端通过usb hid协议读取传感器采集的数据;
24.所述解析模块,用于针对每一所述加密传感器数据,对所述加密传感器数据进行解析,以得到传感器采集的速度数据和方向数据;
25.所述控制模块,用于根据所述速度数据和所述方向数据,对虚拟现实设备下的虚拟物体进行移动和转向的控制。
26.可选地,所述传感器数据读取端通过如下模块生成并发送所述加密传感器数据:
27.读取模块,用于每隔预设时长读取建立usb hid连接的传感器采集的速度数据和方向数据;
28.第一判断模块,用于判断与所述虚拟现实数据接收端之间的tcp连接是否正常;
29.发送模块,用于在连接正常的情况下,将预设前缀加密报头、传感器数据字节长度、传感器速度数据和方向数据、预设数据字节长度、预设数据字节进行拼接,得到所述加密传感器数据,并通过tcp连接向所述虚拟现实数据接收端发送所述加密传感器数据。
30.可选地,所述传感器数据读取端与传感器之间通过如下模块建立usb hid通信:
31.第二判断模块,用于判断传感器设备路径是否已存储;
32.存储模块,用于在传感器设备路径未存储的情况下,获取传感器的供应商识别码和产品识别码,通过所述供应商识别码和所述产品识别码读取传感器的连接信号,若传感器的连接信号符合指定传感器编号的连接信号,则打开传感器的usb hid通信连接,以及获取并存储传感器设备路径;
33.确定模块,用于在传感器设备路径已存储的情况下,判断传感器usb hid信号能否正常打开,在传感器usb hid信号能够正常打开的情况下,确定传感器数据读取端与传感器之间建立usb hid通信。
34.第三方面,本发明提供一种可读存储介质,其上存储有程序,所述程序被处理器执行时,实现如本发明第一方面提供的虚拟物体控制方法的步骤。
35.第四方面,本发明提供一种控制终端,包括存储器和处理器,所述存储器用于存储程序,所述处理器用于执行所述程序,以实现如本发明第一方面提供的虚拟物体控制方法的步骤。
36.通过上述技术方案,虚拟现实数据接收端可以同时接收多个传感器数据读取端各自发送的加密传感器数据,可以实现多个传感器数据的传输,同时根据多个传感器采集的数据进行虚拟物体的控制,可以提高控制的准确性和精准度。并且,虚拟现实数据接收端与传感器数据读取端之间通过tcp协议进行数据传输,传感器数据读取端通过usb hid协议读取传感器采集的数据,基于usb hid串行通信数据读取及tcp通信协议连接,由多个传感器数据读取端读取传感器数据,并通过tcp协议传输至同一个虚拟现实数据接收端,实现根据多个传感器数据对虚拟物体进行控制。同时,传输加密传感器数据在很好地实现多传感器数据读取与传输的同时,可以防止恶意数据植入,提高数据安全性。
附图说明
37.图1是根据一示例性实施例提供的一种虚拟物体控制方法的流程图。
38.图2是传感器数据读取与发送逻辑图。
39.图3是虚拟现实数据接收端数据解析流程逻辑图。
40.图4为虚拟数据接收端与传感器数据读取端之间的交互图。
具体实施方式
41.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
42.图1是根据一示例性实施例提供的一种虚拟物体控制方法的流程图,该方法可应用于虚拟现实数据接收端,该虚拟现实数据接收端可集成于虚拟现实设备中,如vr设备、智能头盔等。如图1所示,该方法可包括步骤11至步骤13。
43.在步骤11中,接收多个传感器数据读取端各自发送的加密传感器数据。
44.在步骤12中,针对每一加密传感器数据,对加密传感器数据进行解析,以得到传感器采集的速度数据和方向数据。
45.在步骤13中,根据速度数据和方向数据,对虚拟现实设备下的虚拟物体进行移动和转向的控制。
46.其中,虚拟现实数据接收端与传感器数据读取端之间通过tcp协议进行数据传输,不同传感器数据读取端与所述虚拟现实数据接收端之间建立的tcp协议地址不同,传感器数据读取端通过usb hid协议读取传感器采集的数据。tcp协议即传输控制协议(tcp,transmission control protocol),是一种面向连接的、可靠的、基于字节流的传输层通信
协议,usb-hid是universal serial bus-human interface device的缩写。
47.传感器数据读取端通过usb hid协议读取传感器采集的数据,无需安装驱动即可实现传感器数据的读取,tcp传输协议具有数据传输完整、可靠、及时的特点,通过tcp协议将传感器数据统一传输至虚拟现实数据接收端,可实现在虚拟现实数据接收端中接收多个传感器的信号,实现在虚拟现实设备中进行虚拟物体的移动及转向控制。
48.通过上述技术方案,虚拟现实数据接收端可以同时接收多个传感器数据读取端各自发送的加密传感器数据,可以实现多个传感器数据的传输,同时根据多个传感器采集的数据进行虚拟物体的控制,可以提高控制的准确性和精准度。并且,虚拟现实数据接收端与传感器数据读取端之间通过tcp协议进行数据传输,传感器数据读取端通过usb hid协议读取传感器采集的数据,基于usb hid串行通信数据读取及tcp通信协议连接,由多个传感器数据读取端读取传感器数据,并通过tcp协议传输至同一个虚拟现实数据接收端,实现根据多个传感器数据对虚拟物体进行控制。同时,传输加密传感器数据在很好地实现多传感器数据读取与传输的同时,可以防止恶意数据植入,提高数据安全性。
49.在一实施例中,传感器数据读取端可通过如下方式生成并发送加密传感器数据:
50.每隔预设时长读取建立usb hid连接的传感器采集的速度数据和方向数据;
51.判断与虚拟现实数据接收端之间的tcp连接是否正常;
52.在连接正常的情况下,将预设前缀加密报头、传感器数据字节长度、传感器速度数据和方向数据、预设数据字节长度、预设数据字节进行拼接,得到所述加密传感器数据,并通过tcp连接向所述虚拟现实数据接收端发送所述加密传感器数据。
53.其中,预设时长可预先设置,例如通过在窗体应用程序中建立定时器每隔预设时长进行数据读取。预设前缀加密报头即设定的约定好的前缀报头,用于对数据进行加密,防止数据传输过程中恶意数据植入,同时保证数据类型的正确判断。示例地,传感器数据字节长度及预设数据字节长度可约定设置为4个或8个字节长度,不做限制。
54.在一实施例中,传感器数据读取端与传感器之间通过如下方式建立usb hid通信:
55.判断传感器设备路径是否已存储;
56.在传感器设备路径未存储的情况下,获取传感器的供应商识别码和产品识别码,通过供应商识别码和产品识别码读取传感器的连接信号,若传感器的连接信号符合指定传感器编号的连接信号,则打开传感器的usb hid通信连接,以及获取并存储传感器设备路径;
57.在传感器设备路径已存储的情况下,判断传感器usb hid信号能否正常打开,在传感器usb hid信号能够正常打开的情况下,确定传感器数据读取端与传感器之间建立usb hid通信。
58.图2是传感器数据读取与发送逻辑图,可应用于传感器数据读取端,如图2所示,winform即windows form系统窗体,在传感器数据读取端设备上插入usb传感器硬件,通过winform窗体应用程序编写插件库可读取usb hid数据。winform程序可用于定时器定时行为,即上述的每隔预设时长读取传感器数据,以及读取usb hid数据。在读取usb hid数据时,可首先判断传感器设备路径是否已存储,如果未存储,获取传感器的供应商识别码和产品识别码,根据usb通用串行总线协议规定,每个usb设备都包含pid(供应商识别码)及vid(产品识别码),通过pid与vid读取usb连接信号,检查目前设备上连接的所有usb通信连接
的信号,遍历其中符合指定传感器编号的连接信号,打开usb hid通信连接,并获取相应的设备路径,存储在本地缓存中用于之后再次运行时快速打开传感器。打开传感器usb信号后,读取相应编号的传感器数据,可包括方向数据和速度数据,数据类型为字节数据,通过在窗体应用程序中建立定时器进行数据读取及数据发送。如果设备路径已存储,可判断传感器usb hid信号能否正常打开,如果能够正常打开,可确定传感器数据读取端与传感器之间建立usb hid通信,可打开usb hid通信读取,进行传感器方向与速度字节数据的读取。之后判断与虚拟现实数据接收端之间的tcp连接是否正常,如果正常可进行数据的拼接,即上述提及的将预设前缀加密报头、传感器数据字节长度、传感器速度数据和方向数据、预设数据字节长度、预设数据字节进行拼接,得到加密传感器数据,该加密传感器数据即图2所示的tcp协议数据,之后将拼接数据发送至虚拟现实数据接收端。
59.在一实施例中,步骤12中对所述加密传感器数据进行解析,以得到传感器采集的速度数据和方向数据,可包括:
60.从加密传感器数据中截取预设前缀加密报头;
61.在截取的所述预设前缀加密报头验证通过的情况下,继续从加密传感器数据中截取传感器采集的速度数据和方向数据。
62.其中,首先对加密报头进行验证,可防止恶意数据植入,通过对数据池对象的存储校验及判断,达到数据正确匹配。
63.在一实施例中,步骤13中根据所述速度数据和所述方向数据,对虚拟现实设备下的虚拟物体进行移动和转向的控制,可包括:
64.将传感器采集的方向数据与虚拟现实设备的头盔方向数据进行向量乘积,根据向量乘积结果控制所述虚拟物体的转向;
65.将传感器采集的速度数据作为虚拟物体的速度,采用unity中每帧物体移动计算方式,将物体移动方向及移动速度与每帧时间间隔差进行乘积计算,得到每一帧虚拟物体的移动数据量,并将移动结果作为虚拟物体的实际坐标和旋转值,以控制虚拟物体的移动。
66.图3是虚拟现实数据接收端数据解析流程逻辑图。如图3所示,prefix加密头为预设前缀加密报头,图像字节可包括传感器速度数据和方向数据,自定义数据字节长度即预设数据字节长度,自定义数据字节即预设数据字节。虚拟现实数据接收端在unity vr客户端建立与windows窗体应用程序的tcp通信协议,当虚拟现实数据接收端接收到加密传感器数据时,首先对约定好的数据加密报头长度进行截取,判断数据加密报头是否匹配,如果不匹配即验证未通过,则结束,如果匹配,则继续截取相应字节数据长度进行截取,获取到相应的传感器数据。如图3所示的示例,在加密报头正确的情况下,可继续截取4或8位长度字节,该示例仅作为可选实施方式,不构成对本发明的限制,之后转换int型长度即图像字节长度,截取相应长度的图像字节数据存入数据对象池中,再截取4或8位长度字节,转换int型长度,即自定义数据字节长度,并解析自定义数据字节,存入数据对象池中。通过对数据对象池中的数据进行解析,进行虚拟物体坐标赋值计算,传感器字节数据内容包含速度数据及方向数据,通过判断vr客户端中vr的头盔方向,将接收到的传感器方向数据与头盔方向进行向量乘积,获取到传感器交互时正确的移动方向,将虚拟物体的方向向量设置为乘积后的方向,并将传感器的速度赋予虚拟物体,使用unity vr中的每帧物体移动计算方式,将物体移动方向及移动速度与每帧时间间隔差的乘积计算,得到每一帧虚拟物体的移动数
据量,并将移动结果赋值给虚拟物体的实际坐标及旋转值,以实现虚拟物体的移动。其中,不同的传感器数据读取端建立的tcp协议地址不同,通过多个传感器数据发送至unity vr客户端中并存储在数据对象池中,实现一个虚拟现实终端接收多个传感器数据的目的。
67.图4为虚拟数据接收端与传感器数据读取端之间的交互图,其中步骤的实施方式已在上文介绍。
68.基于同一发明构思,本发明还提供一种虚拟物体控制系统,所述系统包括虚拟现实数据接收端和多个传感器数据读取端,所述虚拟现实数据接收端包括接收模块、解析模块、控制模块;
69.所述接收模块,用于接收多个传感器数据读取端各自发送的加密传感器数据,其中,所述虚拟现实数据接收端与所述传感器数据读取端之间通过tcp协议进行数据传输,不同传感器数据读取端与所述虚拟现实数据接收端之间建立的tcp协议地址不同,所述传感器数据读取端通过usb hid协议读取传感器采集的数据;
70.所述解析模块,用于针对每一所述加密传感器数据,对所述加密传感器数据进行解析,以得到传感器采集的速度数据和方向数据;
71.所述控制模块,用于根据所述速度数据和所述方向数据,对虚拟现实设备下的虚拟物体进行移动和转向的控制。
72.可选地,所述传感器数据读取端通过如下模块生成并发送所述加密传感器数据:
73.读取模块,用于每隔预设时长读取建立usb hid连接的传感器采集的速度数据和方向数据;
74.第一判断模块,用于判断与所述虚拟现实数据接收端之间的tcp连接是否正常;
75.发送模块,用于在连接正常的情况下,将预设前缀加密报头、传感器数据字节长度、传感器速度数据和方向数据、预设数据字节长度、预设数据字节进行拼接,得到所述加密传感器数据,并通过tcp连接向所述虚拟现实数据接收端发送所述加密传感器数据。
76.可选地,所述传感器数据读取端与传感器之间通过如下模块建立usb hid通信:
77.第二判断模块,用于判断传感器设备路径是否已存储;
78.存储模块,用于在传感器设备路径未存储的情况下,获取传感器的供应商识别码和产品识别码,通过所述供应商识别码和所述产品识别码读取传感器的连接信号,若传感器的连接信号符合指定传感器编号的连接信号,则打开传感器的usb hid通信连接,以及获取并存储传感器设备路径;
79.确定模块,用于在传感器设备路径已存储的情况下,判断传感器usb hid信号能否正常打开,在传感器usb hid信号能够正常打开的情况下,确定传感器数据读取端与传感器之间建立usb hid通信。
80.可选地,解析模块可包括:
81.第一截取子模块,用于从所述加密传感器数据中截取预设前缀加密报头;
82.第二截取子模块,用于在截取的所述预设前缀加密报头验证通过的情况下,继续从所述加密传感器数据中截取传感器采集的速度数据和方向数据。
83.可选地,控制模块可包括:
84.第一控制子模块,用于将传感器采集的方向数据与虚拟现实设备的头盔方向数据进行向量乘积,根据向量乘积结果控制所述虚拟物体的转向;
85.第二控制子模块,用于将传感器采集的速度数据作为虚拟物体的速度,采用unity中每帧物体移动计算方式,将物体移动方向及移动速度与每帧时间间隔差进行乘积计算,得到每一帧虚拟物体的移动数据量,并将移动结果作为虚拟物体的实际坐标和旋转值,以控制虚拟物体的移动。
86.本实施例公开了一种可读存储介质,其上存储有程序,所述程序被处理器执行时,实现如上述的虚拟物体控制方法的各个步骤。虚拟物体控制终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过程序来指令相关的硬件来完成,程序可存储于一可读存储介质中,该程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,程序包括程序代码,程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。可读介质可以包括:能够携带程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,random access memory)以及软件分发介质等。
87.本实施例还公开了一种控制终端,包括存储器和处理器,所述存储器用于存储程序,所述处理器用于执行所述程序,以实现上述的虚拟物体控制方法的各个步骤。
88.进一步地,作为一个可执行方案,处理器可以是中央处理单元(centralprocessing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是虚拟物体控制终端的控制中心,利用各种接口和线路连接整个虚拟物体控制终端设备的各个部分。
89.存储器可用于存储程序和/或模块,处理器通过运行或执行存储在存储器内的程序和/或模块,以及调用存储在存储器内的数据,实现虚拟物体控制控制终端的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
90.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献