本发明涉及虚拟现实领域,尤其公开了一种基于伺服电缸技术的vr场景动作展示方法及系统。
背景技术:
在现有气缸控制系统的模拟掉落的设备中,通过程序控制可以实现下降和上升的功能,但是不能很好地模拟其他动作,由于齿间容积周期性地与吸、排气口连通,故压缩机噪声高,而且需要380v电压支撑,而且基本只能实现下降和上升的运动轨迹,不易实现其它辅助性的动作,这种只能实现下降和上升的运动轨迹,可以实现的动作比较单一,不能很好的配合vr场景情节和路线的需求,传统的气缸不能体现出震动、旋转、倾斜、和摇晃的功能。
现有气缸控制系统主要缺陷在于:
一、单一的下降和上升动作不能很好的配合vr场景的情节和镜头需求。
二、噪声大、气压不足时对承重有要求(有局限性)。
三、使用设备前要投入时间调试到合适的气压值。
因此,现有气缸控制系统存在的上述缺陷,是一件亟待解决的技术问题。
技术实现要素:
本发明提供了一种基于伺服电缸技术的vr场景动作展示方法及系统,旨在解决现有气缸控制系统存在的上述技术问题。
本发明的一方面涉及一种基于伺服电缸技术的vr场景动作展示方法,包括以下步骤:
vr头显设备的控制端发送控制数据至动作展示装置;
动作展示装置根据vr头显设备发送的控制数据,在vr头显设备中展示相应的三维虚拟现实场景,同时把动作展示数据传送给伺服器进行处理;
伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作。
进一步地,伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作的步骤包括:
将设定的运动轨迹配置于动作表中,动作表中预先配置有三维虚拟现实场景与运动轨迹的映射关系;
伺服器读取动作表,控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。
进一步地,伺服器读取动作表,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹的步骤之后包括:
若识别到运动轨迹结束,则跳出三维虚拟现实场景,控制电缸回归初始运行位置。
进一步地,伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作包括:
动作展示装置与伺服器建立udp连接,通过udp协议将动作展示数据传送给伺服器;
如果识别到动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,舍弃uvw三轴数据。
进一步地,伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作包括:
接收动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码;
根据执行时间,计算出带动电缸动作的电机的转速;
确定动作展示数据的udp指令中的轴数;
根据确定的轴数,设置相对应数量的位置信息;
在对应数量的位置信息中加入计算出来的用于控制电缸动作的脉冲数;
通过加入脉冲数的位置信息和计算出来的电机的转速来控制电缸做倾斜、升降或旋转动作。
本发明的另一方面涉及一种基于伺服电缸技术的vr场景动作展示系统,包括vr头显设备、动作展示装置、伺服器和电缸,其中,
vr头显设备,用于在控制端发送控制数据至动作展示装置;
动作展示装置与vr头显设备相连,用于根据vr头显设备发送的控制数据,在vr头显设备中展示相应的三维虚拟现实场景,同时把动作展示数据传送给伺服器进行处理;
伺服器分别与动作展示装置和电缸相连,用于根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作。
进一步地,伺服器包括配置模块和调试模块,
配置模块,用于将设定的运动轨迹配置于动作表中,动作表中预先配置有三维虚拟现实场景与运动轨迹的映射关系;
调试模块,用于读取动作表,控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。
进一步地,伺服器还包括第一控制模块,
第一控制模块,用于若识别到运动轨迹结束,则跳出三维虚拟现实场景,控制电缸回归初始运行位置。
进一步地,动作展示装置包括通讯模块,
通讯模块,用于与伺服器建立udp连接,通过udp协议将动作展示数据传送给伺服器;
伺服器包括调取模块,
调取模块,用于如果识别到动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,舍弃uvw三轴数据。
进一步地,伺服器包括接收模块、计算模块、确定模块、设置模块、加入模块和第二控制模块,
接收模块,用于接收动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码;
计算模块,用于根据执行时间,计算出带动电缸动作的电机的转速;
确定模块,用于确定动作展示数据的udp指令中的轴数;
设置模块,用于根据确定的轴数,设置相对应数量的位置信息;
加入模块,用于在对应数量的位置信息中加入计算出来的用于控制电缸动作的脉冲数;
第二控制模块,用于通过加入脉冲数的位置信息和计算出来的电机的转速来控制电缸做倾斜、升降或旋转动作。
本发明所取得的有益效果为:
本发明提供了一种基于伺服电缸技术的vr场景动作展示方法及系统,通过vr头显设备的控制端发送控制数据至动作展示装置;动作展示装置根据vr头显设备发送的控制数据,在vr头显设备中展示相应的三维虚拟现实场景,同时把动作展示数据传送给伺服器进行处理;伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作。本发明提供了一种基于伺服电缸技术的vr场景动作展示方法及系统,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控。
附图说明
图1为本发明提供的基于伺服电缸技术的vr场景动作展示方法一实施例的流程示意图;
图2为图1中所示的伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作的步骤第一实施例的细化流程示意图;
图3为图1中所示的伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作的步骤第二实施例的细化流程示意图;
图4为图1中所示的伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作的步骤第三实施例的细化流程示意图;
图5为图1中所示的伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作的步骤第四实施例的细化流程示意图;
图6为本发明提供的基于伺服电缸技术的vr场景动作展示系统一实施例的功能框图;
图7为图6中所示的伺服器第一实施例的功能模块示意图;
图8为图6中所示的伺服器第二实施例的功能模块示意图;
图9为图6中所示的动作展示装置和伺服器一实施例的功能模块连接示意图;
图10为图6中所示的伺服器第三实施例的功能模块示意图。
附图标号说明:
10、vr头显设备;20、动作展示装置;30、伺服器;40、电缸;31、配置模块;32、调试模块;331、第一控制模块;21、通讯模块;34、调取模块;35、接收模块;36、计算模块;37、确定模块;38、设置模块;39、加入模块;332、第二控制模块。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
如图1所示,本发明第一实施例提出一种基于伺服电缸技术的vr场景动作展示方法,包括以下步骤:
步骤s100、vr头显设备的控制端发送控制数据至动作展示装置。
vr头显设备将控制数据发送给动作展示装置,控制数据中携带有场景展示指令和动作展示指令。
步骤s200、动作展示装置根据vr头显设备发送的控制数据,在vr头显设备中展示相应的三维虚拟现实场景,同时把动作展示数据传送给伺服器进行处理。
动作展示装置判断电缸是否复位,电缸是否恢复到初始运行位置,若识别到电缸恢复到初始运行位置后,则根据vr头显设备发送的控制数据中的场景展示指令和动作展示指令,构建三维虚拟现实场景,并将构建的三维虚拟现实场景分别在显示器或vr头显设备中进行显示;同时将动作展示数据传送给伺服器进行处理。其中,动作展示装置可以为计算机主机、可编辑逻辑控制器或单片机等。
步骤s300、伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作。
伺服器接收动作展示装置传送过来的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸实现相应动作。其中,可实现的动作包括有倾斜、上升和下降、旋转、震动等,需要强调的是速度也是可以控制的。
本实施例提供的基于伺服电缸技术的vr场景动作展示方法,与现有技术相比,通过vr头显设备的控制端发送控制数据至动作展示装置;动作展示装置根据vr头显设备发送的控制数据,在vr头显设备中展示相应的三维虚拟现实场景,同时把动作展示数据传送给伺服器进行处理;伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作。本实施例提供的基于伺服电缸技术的vr场景动作展示方法,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控。
进一步地,请见图2,图2为图1中所示的步骤s300第一实施例的细化流程示意图,在本实施例中,步骤s300包括:
步骤s310、将设定的运动轨迹配置于动作表中,动作表中预先配置有三维虚拟现实场景与运动轨迹的映射关系。
将设定的运动轨迹配置于数据库的动作表中,其中,动作表中预先配置有三维虚拟现实场景与运动轨迹一一对应的映射关系。
步骤s320、伺服器读取动作表,控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。
伺服器读取动作表,从动作表中搜寻到与三维虚拟现实场景相对应的运动轨迹,根据搜寻到的运动轨迹控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。
本实施例提供的基于伺服电缸技术的vr场景动作展示方法,与现有技术相比,将设定的运动轨迹配置于动作表中,动作表中预先配置有三维虚拟现实场景与运动轨迹的映射关系;伺服器读取动作表,控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。本实施例提供的基于伺服电缸技术的vr场景动作展示方法,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控;通过模拟配置动作系统,在unity中实现读取动作表,实现在观看视频时的动作展示和体感以及在非视频场景中特定的位置不通过模拟系统也可以单独配置出符合特定条件的电缸运动轨迹和动作。
优选地,请见图3,图3为图1中所示的步骤s300第二实施例的细化流程示意图,在第一实施例中,步骤s300还包括:
步骤s330、若识别到运动轨迹结束,则跳出三维虚拟现实场景,控制电缸回归初始运行位置。
伺服器若识别到电缸的运动轨迹结束,则控制vr头显设备跳出三维虚拟现实场景,控制电缸回归到初始运行位置,以便于电缸下次正常做动作。
本实施例提供的基于伺服电缸技术的vr场景动作展示方法,与现有技术相比,若识别到运动轨迹结束,则跳出三维虚拟现实场景,控制电缸回归初始运行位置。本实施例提供的基于伺服电缸技术的vr场景动作展示方法,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控。
进一步地,参见图4,图4为图1中所示的步骤s300第三实施例的细化流程示意图,在本实施例中,步骤s300包括:
步骤s340、动作展示装置与伺服器建立udp连接,通过udp协议将动作展示数据传送给伺服器。
动作展示装置主要是通过udp协议和伺服器建立连接,并通过相应的数值的转换来实现电缸的不同的运动轨迹。
步骤s350、如果识别到动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,舍弃uvw三轴数据。
伺服器若识动到动作展示装置传送的动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,而舍弃uvw三轴数据,从而兼容三轴vr行走平台。
本实施例通信技术与伺服器完美结合,通过场景展示系统,电缸动作与场景里面的镜头和逻辑流程,让vr场景更加逼真、沉浸式感觉更加强烈,可以模拟地震和台风,编程时,都使用六轴数据。如果udp(userdatagramprotocol,用户数据报协议)指令为xyzuvw六轴数据,而vr行走的轴数为三轴,mbox会跟据vr行走平台的实际轴数调取udp指令中的xyz三轴数据,而舍弃后边uvw三轴数据。因此,六轴的udp指令是兼容所有小于六轴的平台的。电缸动作通过调试器配置场景所要模拟的工作参数,以txt文档格式输出,在vr场景动作展示系统里面,通过读取配置好一系列的动作参数,实现电缸的运动轨迹,达到更好配合虚拟场景的真实度和体验感。
本实施例提供的基于伺服电缸技术的vr场景动作展示方法,与现有技术相比,动作展示装置与伺服器建立udp连接,通过udp协议将动作展示数据传送给伺服器;如果识别到动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,舍弃uvw三轴数据,从而可兼容三轴行走平台。本实施例提供的基于伺服电缸技术的vr场景动作展示方法,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控;通过模拟配置动作系统,在unity中实现读取动作表,实现在观看视频时的动作展示和体感以及在非视频场景中特定的位置不通过模拟系统也可以单独配置出符合特定条件的电缸运动轨迹和动作。
优选地,请见图5,图5为图1中所示的步骤s300第四实施例的细化流程示意图,在本实施例中,步骤s300包括:
步骤s361、接收动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码。
伺服器接收动作展示装置传送过来的动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码。
步骤s362、根据执行时间,计算出带动电缸动作的电机的转速。
根据绝对时间播放功能码和相对时间播放功能码,计算出带动电缸动作的电机的转速。
步骤s363、确定动作展示数据的udp指令中的轴数。
确定动作展示数据的udp指令中的轴数,例如,udp指令可以是xyz三轴、xyzuvw六轴、或xyzuvwabcd十轴控制指令。
步骤s364、根据确定的轴数,设置相对应数量的位置信息。
根据确定的udp指令中的轴数,设置相对应数量的位置信息。例如,如果udp指令中的轴数为xyz三轴时,则设置3个相对应的位置信息。
步骤s365、在对应数量的位置信息中加入计算出来的用于控制电缸动作的脉冲数。
在3个相对应的位置信息中加入计算出来的用于控制电缸动作的脉冲数,其中脉冲数的计算结果通过公式得出。
步骤s366、通过加入脉冲数的位置信息和计算出来的电机的转速来控制电缸做倾斜、升降或旋转动作。
通过加入脉冲数的位置信息、以及计算出来的电机的转速来控制电缸做倾斜、升降或旋转等动作,从而完成行走平台的动作展示。
下面为本实施例提供的基于伺服电缸技术的vr场景动作展示方法的一个具体实施例:
一、动作指令udp数据区分析:
1、验证码
固定值,0x55aa,十六进制,2个byte。
2、通过码
固定值,0x0000,十六进制,2个byte。
3、功能码
分为两类0x1301,0x1401,十六进制,2个byte。
其中绝对时间播放功能码是0x1301,相对播放时间功能码是0x1401。
绝对时间0x1301是匹配影片的,绝对时间播放时,指令的执行时间是当前指令里的绝对时间减去上一条指令里的绝对时间,比如上一条指令的绝对时间是15000ms,现在发送的这一条是15100ms,那么现在这一条指令的执行完成的时间是100ms(15100ms-1500ms)。
相对时间播放功能码0x1401是当前指令里的deltatime,就是当前指令的执行时间。
mbox是根据这个执行时间来计算电机的转速的。
如果用绝对时间播放功能码1301,时间码为0,那么每一帧数据的播放时间将按内部时间播放(默认100ms);如果用相对时间功能码,时间码为0,那么每一帧数据的播放时间也将按内部时间播放(默认100ms)。
但是建议不要把时间码设置成0,请根据实际的执行时间来设置。
4、通道号
十六进制,2个byte。
确定当前指令是三轴、六轴、十轴控制指令,三轴指令为0x0000,六轴指令为0x0001,十轴指令为0x0002。
5、谁接受,谁回复
十六进制,每个2个byte,共4个byte。
每台mbox都有ip地址,出厂默认为192.168.15.201(可以修改,修改方法见mbox说明书),且支持对每条控制指令进行应答。
如发送的指令希望ip地址为192.168.15.201接收并回复,则谁接收为0x0fc9(0x0f=15,0xc9=201),谁回复为0x0fc9(0x0f=15,0xc9=201)。如同时控制多个平台,希望每个平台都可以接收,每个平台都回复,则谁接收为0ffff,谁回复为0fxfff。将谁回复设置为0x0000,则平台不对接收到的指令进行回复;将谁回复设置为某个固定值,则对应的就回复(如谁回复为0x0510,则对应ip地址后连个为192.168.5.16进行指令回复)。
6、udp指令的序号
十六进制,共4个byte。
仅校验用,可以设置为0x0000000。
7、时间码
十六进制,共4个byte。单位是毫秒。
如果第3功能码选择为0x1301,则时间码为绝对时间,例如希望本条指令100毫秒内执行完,则需要计算本条指令减去上一条指令的时间差值。
如果第3功能码选择为0x1401,则时间码为相对对时间,例如希望本条指令100毫秒内执行完,则本条指令里的时间码需设置为0x0000064。
绝对时间0x1301是匹配影片的,绝对时间播放时,指令的执行时间是当前指令里的绝对时间减去,上一条指令里的绝对时间,比如你上一条指令的绝对时间是15000ms,现在发送的这一条是15100ms,那么现在这一条指令的执行完成的时间是100ms(15100ms-1500ms)。
相对时间播放功能码0x1401是当前指令里的deltatime,就是当前指令的执行时间。
mbox是根据这个执行时间来计算电机的转速的。
如果用绝对时间播放功能码1301,时间码为0,那么每一帧数据的播放时间将按内部时间播放(默认100ms);如果用相对时间功能码,时间码为0,那么每一帧数据的播放时间也将按内部时间播放(默认100ms)。
但是建议不要把时间码设置成0,请根据实际的执行时间来设置。
8、位置信息
十六进制,每个位置信息4个byte。单位是脉冲个数。
有多少位置信息是由第4通道号来决定,如果通道号是三轴指令0x0000,则需要些3个位置信息分别为x、y、z(对应1-3轴),共12个byte;如果通道号是六轴指令0x0001,则需要些6个位置信息分别为x、y、z、u、v、w(对应六轴),共24个byte;如果通道号是十轴指令0x0002,则需要些10个位置信息分别为x、y、z、u、v、w、a、b、c、d(对应十轴),共40个byte。
脉冲的计算方式:出厂默认电机转一圈的脉冲数是10000个。
(1)、电动缸举例:
假如,电动缸导程是5毫米,一圈脉冲数是10000。电机转一圈,电动缸升高一个导程。
电动缸都从0到25毫米,计算所需脉冲数:25/5*10000=50000,转换成十六进制是0x0000c350,(注:可以根据需要设置每个缸伸长的长度。)
(2)、旋转轴举例:
旋转轴一般都有减速,假如减速比是1∶60,就是电机转60圈,转台转一圈。如果转台需要旋转30度,计算所需脉冲数30/360*(60*10000)=50000,转换为十六进制是0x0000c350。
二、过程
在unity中传六个数值来实现,本系统可以实现场景里特定的位置,通过调试出不同的位置值和逻辑判断,配置理想的运动轨迹,可以实现上下移动,各个方向的倾斜、旋转、摇晃、或震动等动作,而且速度也是可控制的,比较人性化也可以通过视频形式的观看,从视频开始到结束,使用动作调试系统配好动作表,读取动作表,实现配合视频想要调试出的动作。
本实施例提供的基于伺服电缸技术的vr场景动作展示方法,与现有技术相比,通过接收动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码;根据执行时间,计算出带动电缸动作的电机的转速;确定动作展示数据的udp指令中的轴数;根据确定的轴数,设置相对应数量的位置信息;在对应数量的位置信息中加入计算出来的用于控制电缸动作的脉冲数;通过加入脉冲数的位置信息和计算出来的电机的转速来控制电缸做倾斜、升降或旋转动作。本实施例提供的基于伺服电缸技术的vr场景动作展示方法,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控;动作展示主要是通过udp协议和伺服器连接、以及相应的数值的转换来实现电缸的不同的轨迹;通过模拟配置动作系统,在unity中实现读取动作表,实现在观看视频时的动作展示和体感以及在非视频场景中特定的位置不通过模拟系统也可以单独配置出符合特定条件的电缸运动轨迹和动作。
如图6所示,图6为本发明提供的基于伺服电缸技术的vr场景动作展示系统一实施例的功能框图,在本实施例中,该基于伺服电缸技术的vr场景动作展示系统包括vr头显设备10、动作展示装置20、伺服器30和电缸40,其中,vr头显设备10,用于在控制端发送控制数据至动作展示装置20;动作展示装置20与vr头显设备10相连,用于根据vr头显设备10发送的控制数据,在vr头显设备10中展示相应的三维虚拟现实场景,同时把动作展示数据传送给伺服器30进行处理;伺服器30分别与动作展示装置20和电缸40相连,用于根据动作展示装置20传送的动作展示数据,控制电缸参数,结合动作展示装置20展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸40动作。
vr头显设备10将控制数据发送给动作展示装置20,控制数据中携带有场景展示指令和动作展示指令。
动作展示装置20判断电缸是否复位,电缸40是否恢复到初始运行位置,若识别到电缸40恢复到初始运行位置后,则根据vr头显设备10发送的控制数据中的场景展示指令和动作展示指令,构建三维虚拟现实场景,并将构建的三维虚拟现实场景分别在显示器或vr头显设备10中进行显示;同时将动作展示数据传送给伺服器30进行处理。其中,动作展示装置20可以为计算机主机、可编辑逻辑控制器或单片机等。
伺服器30接收动作展示装置20传送过来的动作展示数据,控制电缸参数,结合动作展示装置20展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸实现相应动作。其中,可实现的动作包括有倾斜、上升和下降、旋转、震动等,需要强调的是速度也是可以控制的。
本实施例提供的基于伺服电缸技术的vr场景动作展示系统,与现有技术相比,通过vr头显设备的控制端发送控制数据至动作展示装置;动作展示装置根据vr头显设备发送的控制数据,在vr头显设备中展示相应的三维虚拟现实场景,同时把动作展示数据传送给伺服器进行处理;伺服器根据动作展示装置传送的动作展示数据,控制电缸参数,结合动作展示装置展示的三维虚拟现实场景,按照设定的运动轨迹控制电缸动作。本实施例提供的基于伺服电缸技术的vr场景动作展示系统,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控。
进一步地,请见图7,图7为图6中所示的伺服器第一实施例的功能模块示意图,在本实施例中,伺服器30包括配置模块31和调试模块32,其中,配置模块31用于将设定的运动轨迹配置于动作表中,动作表中预先配置有三维虚拟现实场景与运动轨迹的映射关系;调试模块32用于读取动作表,控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。
配置模块31将设定的运动轨迹配置于数据库的动作表中,其中,动作表中预先配置有三维虚拟现实场景与运动轨迹一一对应的映射关系。
伺服器30中的调试模块32读取动作表,从动作表中搜寻到与三维虚拟现实场景相对应的运动轨迹,根据搜寻到的运动轨迹控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。
本实施例提供的基于伺服电缸技术的vr场景动作展示系统,与现有技术相比,将设定的运动轨迹配置于动作表中,动作表中预先配置有三维虚拟现实场景与运动轨迹的映射关系;伺服器读取动作表,控制电缸动作,在vr头显设备中展示的三维虚拟现实场景中调试出相对应的运动轨迹。本实施例提供的基于伺服电缸技术的vr场景动作展示系统,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控;通过模拟配置动作系统,在unity中实现读取动作表,实现在观看视频时的动作展示和体感以及在非视频场景中特定的位置不通过模拟系统也可以单独配置出符合特定条件的电缸运动轨迹和动作。
优选地,参见图8,图8为图6中所示的伺服器第二实施例的功能模块示意图,在第一实施例的基础上,伺服器30还包括第一控制模块331,第一控制模块331用于若识别到运动轨迹结束,则跳出三维虚拟现实场景,控制电缸回归初始运行位置。
伺服器中的第一控制模块331若识别到电缸的运动轨迹结束,则控制vr头显设备10跳出三维虚拟现实场景,控制电缸40回归到初始运行位置,以便于电缸10下次正常做动作。
本实施例提供的基于伺服电缸技术的vr场景动作展示系统,与现有技术相比,若识别到运动轨迹结束,则跳出三维虚拟现实场景,控制电缸回归初始运行位置。本实施例提供的基于伺服电缸技术的vr场景动作展示系统,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控。
进一步地,请见图9,图9为图6中所示的动作展示装置和伺服器一实施例的功能模块连接示意图,在本实施例中,动作展示装置20包括通讯模块21,通讯模块21用于与伺服器30建立udp连接,通过udp协议将动作展示数据传送给伺服器30。伺服器30包括调取模块34,调取模块34用于如果识别到动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,舍弃uvw三轴数据。
动作展示装置20中通讯模块21的主要是通过udp协议和伺服器30建立连接,并通过相应的数值的转换来实现电缸40的不同的运动轨迹。
伺服器30中的调取模块34若识动到动作展示装置20传送的动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,而舍弃uvw三轴数据,从而兼容三轴vr行走平台。
本实施例通信技术与伺服器完美结合,通过场景展示系统,电缸动作与场景里面的镜头和逻辑流程,让vr场景更加逼真、沉浸式感觉更加强烈,可以模拟地震和台风,编程时,都使用六轴数据。如果udp(userdatagramprotocol,用户数据报协议)指令为xyzuvw六轴数据,而vr行走的轴数为三轴,mbox会跟据vr行走平台的实际轴数调取udp指令中的xyz三轴数据,而舍弃后边uvw三轴数据。因此,六轴的udp指令是兼容所有小于六轴的平台的。电缸动作通过调试器配置场景所要模拟的工作参数,以txt文档格式输出,在vr场景动作展示系统里面,通过读取配置好一系列的动作参数,实现电缸的运动轨迹,达到更好配合虚拟场景的真实度和体验感。
本实施例提供的基于伺服电缸技术的vr场景动作展示系统,与现有技术相比,动作展示装置与伺服器建立udp连接,通过udp协议将动作展示数据传送给伺服器;如果识别到动作展示数据中的udp指令为xyzuvw六轴数据,而vr行走平台的轴数为三轴时,则根据vr行走平台的实际轴数调取udp指令中xyzuvw六轴数据中的xyz三轴数据,舍弃uvw三轴数据,从而可兼容三轴行走平台。本实施例提供的基于伺服电缸技术的vr场景动作展示系统,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控;通过模拟配置动作系统,在unity中实现读取动作表,实现在观看视频时的动作展示和体感以及在非视频场景中特定的位置不通过模拟系统也可以单独配置出符合特定条件的电缸运动轨迹和动作。
进一步地,如图10所示,图10为图6中所示的伺服器第三实施例的功能模块示意图,在本实施例中,伺服器30包括接收模块35、计算模块36、确定模块37、设置模块38、加入模块39和第二控制模块332,其中,接收模块35用于接收动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码;计算模块36用于根据执行时间,计算出带动电缸动作的电机的转速;确定模块37用于确定动作展示数据的udp指令中的轴数;设置模块38用于根据确定的轴数,设置相对应数量的位置信息;加入模块39用于在对应数量的位置信息中加入计算出来的用于控制电缸动作的脉冲数;第二控制模块332用于通过加入脉冲数的位置信息和计算出来的电机的转速来控制电缸做倾斜、升降或旋转动作。
伺服器30中的接收模块35接收动作展示装置传送过来的动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码。
计算模块36根据绝对时间播放功能码和相对时间播放功能码,计算出带动电缸动作的电机的转速。
确定模块37确定动作展示数据的udp指令中的轴数,例如,udp指令可以是xyz三轴、xyzuvw六轴、或xyzuvwabcd十轴控制指令。
设置模块38根据确定的udp指令中的轴数,设置相对应数量的位置信息。例如,如果udp指令中的轴数为xyz三轴时,则设置3个相对应的位置信息。
加入模块39在3个相对应的位置信息中加入计算出来的用于控制电缸动作的脉冲数,其中脉冲数的计算结果通过公式得出。
第二控制模块332通过加入脉冲数的位置信息、以及计算出来的电机的转速来控制电缸做倾斜、升降或旋转等动作,从而完成行走平台的动作展示。
下面为本实施例提供的基于伺服电缸技术的vr场景动作展示系统的一个具体实施例:
一、动作指令udp数据区分析:
1、验证码
固定值,0x55aa,十六进制,2个byte。
2、通过码
固定值,0x0000,十六进制,2个byte。
3、功能码
分为两类0x1301,0x1401,十六进制,2个byte。
其中绝对时间播放功能码是0x1301,相对播放时间功能码是0x1401。
绝对时间0x1301是匹配影片的,绝对时间播放时,指令的执行时间是当前指令里的绝对时间减去上一条指令里的绝对时间,比如上一条指令的绝对时间是15000ms,现在发送的这一条是15100ms,那么现在这一条指令的执行完成的时间是100ms(15100ms-1500ms)。
相对时间播放功能码0x1401是当前指令里的deltatime,就是当前指令的执行时间。
mbox是根据这个执行时间来计算电机的转速的。
如果用绝对时间播放功能码1301,时间码为0,那么每一帧数据的播放时间将按内部时间播放(默认100ms);如果用相对时间功能码,时间码为0,那么每一帧数据的播放时间也将按内部时间播放(默认100ms)。
但是建议不要把时间码设置成0,请根据实际的执行时间来设置。
4、通道号
十六进制,2个byte。
确定当前指令是三轴、六轴、十轴控制指令,三轴指令为0x0000,六轴指令为0x0001,十轴指令为0x0002。
5、谁接受,谁回复
十六进制,每个2个byte,共4个byte。
每台mbox都有ip地址,出厂默认为192.168.15.201(可以修改,修改方法见mbox说明书),且支持对每条控制指令进行应答。
如发送的指令希望ip地址为192.168.15.201接收并回复,则谁接收为0x0fc9(0x0f=15,0xc9=201),谁回复为0x0fc9(0x0f=15,0xc9=201)。如同时控制多个平台,希望每个平台都可以接收,每个平台都回复,则谁接收为0ffff,谁回复为0fxfff。将谁回复设置为0x0000,则平台不对接收到的指令进行回复;将谁回复设置为某个固定值,则对应的就回复(如谁回复为0x0510,则对应ip地址后连个为192.168.5.16进行指令回复)。
6、udp指令的序号
十六进制,共4个byte。
仅校验用,可以设置为0x0000000。
7、时间码
十六进制,共4个byte。单位是毫秒。
如果第3功能码选择为0x1301,则时间码为绝对时间,例如希望本条指令100毫秒内执行完,则需要计算本条指令减去上一条指令的时间差值。
如果第3功能码选择为0x1401,则时间码为相对对时间,例如希望本条指令100毫秒内执行完,则本条指令里的时间码需设置为0x0000064。
绝对时间0x1301是匹配影片的,绝对时间播放时,指令的执行时间是当前指令里的绝对时间减去,上一条指令里的绝对时间,比如你上一条指令的绝对时间是15000ms,现在发送的这一条是15100ms,那么现在这一条指令的执行完成的时间是100ms(15100ms-1500ms)。
相对时间播放功能码0x1401是当前指令里的deltatime,就是当前指令的执行时间。
mbox是根据这个执行时间来计算电机的转速的。
如果用绝对时间播放功能码1301,时间码为0,那么每一帧数据的播放时间将按内部时间播放(默认100ms);如果用相对时间功能码,时间码为0,那么每一帧数据的播放时间也将按内部时间播放(默认100ms)。
但是建议不要把时间码设置成0,请根据实际的执行时间来设置。
8、位置信息
十六进制,每个位置信息4个byte。单位是脉冲个数。
有多少位置信息是由第4通道号来决定,如果通道号是三轴指令0x0000,则需要些3个位置信息分别为x、y、z(对应1-3轴),共12个byte;如果通道号是六轴指令0x0001,则需要些6个位置信息分别为x、y、z、u、v、w(对应六轴),共24个byte;如果通道号是十轴指令0x0002,则需要些10个位置信息分别为x、y、z、u、v、w、a、b、c、d(对应十轴),共40个byte。
脉冲的计算方式:出厂默认电机转一圈的脉冲数是10000个。
(1)、电动缸举例:
假如,电动缸导程是5毫米,一圈脉冲数是10000。电机转一圈,电动缸升高一个导程。
电动缸都从0到25毫米,计算所需脉冲数:25/5*10000=50000,转换成十六进制是0x0000c350,(注:可以根据需要设置每个缸伸长的长度。)
(2)、旋转轴举例:
旋转轴一般都有减速,假如减速比是1∶60,就是电机转60圈,转台转一圈。如果转台需要旋转30度,计算所需脉冲数30/360*(60*10000)=50000,转换为十六进制是0x0000c350。
二、过程
在unity中传六个数值来实现,本系统可以实现场景里特定的位置,通过调试出不同的位置值和逻辑判断,配置理想的运动轨迹,可以实现上下移动,各个方向的倾斜、旋转、摇晃、或震动等动作,而且速度也是可控制的,比较人性化也可以通过视频形式的观看,从视频开始到结束,使用动作调试系统配好动作表,读取动作表,实现配合视频想要调试出的动作。
本实施例提供的基于伺服电缸技术的vr场景动作展示系统,与现有技术相比,通过接收动作展示数据,动作展示数据的udp指令中设置有电缸动作的执行时间,执行时间包括绝对时间播放功能码和相对时间播放功能码;根据执行时间,计算出带动电缸动作的电机的转速;确定动作展示数据的udp指令中的轴数;根据确定的轴数,设置相对应数量的位置信息;在对应数量的位置信息中加入计算出来的用于控制电缸动作的脉冲数;通过加入脉冲数的位置信息和计算出来的电机的转速来控制电缸做倾斜、升降或旋转动作。本实施例提供的基于伺服电缸技术的vr场景动作展示系统,通过电缸技术和通信技术相融合,结合现有的软件场景和后续要开发的场景,通过控制伺服器,计算电缸摆放的位置和角度,通过计算使电缸按照设定的运动轨迹运行,很好的结合软件场景;通过在unity引擎中开发出来,通过通信协议将数据传至伺服器,经过数据传送和处理,体验者通过vr头显设备沉浸式的漫游场景,结合电缸动作,让体验者尽情的漫游场景,沉浸在虚拟的世界中,效果更加逼真,动作展示系统可以实现有倾斜、上升和下降、旋转、震动等动作,并且电缸的运转速度可控;动作展示主要是通过udp协议和伺服器连接、以及相应的数值的转换来实现电缸的不同的轨迹;通过模拟配置动作系统,在unity中实现读取动作表,实现在观看视频时的动作展示和体感以及在非视频场景中特定的位置不通过模拟系统也可以单独配置出符合特定条件的电缸运动轨迹和动作。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。