实现头戴显示设备与多维运动平台联动的运动控制方法
技术领域
本发明涉及一种VR运动控制方法,尤其涉及一种可实现头戴显示设备与多维运动平台联动的运动控制方法。
背景技术
目前的VR运动平台均是基于4d/5d等影院座椅技术改装的,主要结构为三电缸,双电缸或六电缸作为运动平台驱动,其中六电缸成本高,较为少见。使用时通过专用软件读取事先录好的电缸坐标记录,控制电缸运动,实现多个自由度的运动控制。由于是电缸支撑结构,除六电缸平台能进行较小幅度旋转外(不大于30°),三或双电缸结构均无法旋转运动。除此之外,该方案由电缸负责承重,致使整体重量较大,导致整体功率要达到上千瓦才能正常工作,对环境要求较高。
发明内容
本发明目的是提供一种可实现头戴显示设备与多维运动平台联动的运动控制方法,其通过识别操作者头部旋转的动作,实现座椅自动跟进旋转的具体功能,同时结合独有的运动平台设计,将旋转和晃动效果有机结合,实现全新的VR运动体验。
本发明的技术解决方案是:
一种实现头戴显示设备与多维运动平台联动的运动控制方法,包括以下步骤:
1)设置头戴显示设备相对于多维运动平台的死区角度,设置头部旋转角度系数的最值,设置多维运动平台自转速度参数和摇摆行程参数;所述多维运动平台为可实现自转和自由摇摆的运动平台;所述最值为绝对值的最大值;
2)校准多维运动平台与头戴显示设备,获取多维运动平台的水平方向角度和最大摇摆角度;
3)参数获取:
3.1)方向参数获取:
3.1.1)头戴显示设备内置或外置的角速度传感器和加速度传感器分别输出角速度的累计值与加速度的累计值;
3.1.2)根据积分获得头部加速度的瞬时值与头部角速度的瞬时值;
3.1.3)根据瞬时值计算头戴显示设备绝对方向向量;
3.1.4)将信息头和绝对方向向量封装成头戴显示设备追踪数据包;
3.2)动作参数获取:
3.2.1)根据VR游戏的状态获取被控物体的瞬时状态参数;或者直接获取视频中指定场景的预设动作参数;
3.2.2)将信息头和瞬时状态参数或者信息头和预设动作参数封装成动作控制数据包;
4)控制器接收头戴显示设备追踪数据包和/或动作控制数据包;
5)判断:
提取信息头,如是头戴显示设备追踪数据则进入步骤6,如是动作参数数据则进入步骤7,如都不是则丢弃该数据包;
6)根据数据包中的绝对方向向量计算出头戴显示设备当前偏转角度,再根据该角度与多维运动平台当前偏转角度计算实时角度差,并实时判断该实时角度差是否大于设定的死区角度;若是,则输出瞬时旋转脉冲,送入多维运动平台的旋转电机;若否,则根据下一个头戴显示设备追踪数据包继续计算实时角度差;
7)根据瞬时状态参数或预设动作参数,计算出头戴显示设备当前角度与多维运动平台的当前状态的差值,送入多维运动平台的动作控制系统以消除差值。
上述运动控制方法中步骤6的第一种步骤具体如下:
6.1)提取所设定的死区角度;
6.2)从数据包中的绝对方向向量中提取头戴显示设备当前偏转角度,根据其与多维运动平台当前偏转角度计算实时角度差;
6.3)将死区角度与实时角度差进行对比,若实时角度差小于死区角度,则返回步骤6.2;若实时角度差大于等于死区角度,则用实时角度差的绝对值减去死区角度,得出控制角度差;
6.4)判断控制角度差是否大于头部旋转角度系数的最值,若大于则固定为头部旋转角度系数的最值;
6.5)按下式计算实际旋转速度:
实际旋转速度=(控制角度差/头部旋转角度系数的最值)×自转速度参数;
6.6)将实际旋转速度转换为瞬时旋转脉冲,送入多维运动平台的旋转电机。
上述运动控制方法中步骤6的第二种步骤具体如下:
6.1)提取头戴显示设备当前偏转角度与平台当前偏转角度,得到实时角度差;
6.2)判断实时角度差是否大于头部旋转角度系数的最值,若大于则固定为头部旋转角度系数的最值,并进行以下计算:
新的实时角度差=(实时角度差/头部旋转角度系数的最值)×90度
6.3)以该实时角度差的正弦值作为速度系数;
6.4)按下式计算实际旋转速度:
实际旋转速度=速度系数×自转速度参数;
6.5)将实际旋转速度转换为瞬时旋转脉冲,送入多维运动平台的旋转电机。
上述运动控制方法中步骤6的第三种步骤具体如下:
6.1)提取所设定的死区角度;
6.2)提取头戴显示设备当前偏转角度与多维运动平台当前偏转角度,得到实时角度差;
6.3)将死区角度与实时角度差进行对比,若实时角度差小于死区角度,则返回步骤6.2;若实时角度差大于等于死区角度,则用实时角度差的绝对值减去死区角度,得出控制角度差;
6.4)判断实时角度差是否大于头部旋转角度系数的最值,若大于则固定为头部旋转角度系数的最值,并进行以下计算:
新的实时角度差=(实时角度差/头部旋转角度系数的最值)×90度
6.5)以该实时角度差的正弦值作为速度系数;
6.6)按下式计算实际旋转速度:
实际旋转速度=速度系数×自转速度参数;
6.7)将实际旋转速度转换为瞬时旋转脉冲,送入多维运动平台的旋转电机。
为了提高控制精度,上述运动控制方法中,还包括根据头戴显示设备内置或外置的磁力传感器进行轨迹矫正的步骤。
为了防止误动作,上述信息头优选设备识别ID;
为了防止抖动,上述当前状态计算差值送入动作控制系统的发送速率最好大于10数据包/秒。
上述运动控制方法中的多维运动平台,具体结构包括支撑单元和牵引单元,所述支撑单元包括运动平台、推力万向关节轴承、承重平台、运动旋转牵引杆及承重支架;所述推力万向关节轴承包括轴圈和座圈;所述运动旋转牵引杆的上端固定于推力万向关节轴承的轴圈内;所述运动平台下底面与推力万向关节轴承关节轴圈上端面固连;所述推力万向关节轴承的座圈与承重平台固连;所述承重平台通过承重支架设置在承重基础上;所述牵引单元包括万向伸缩联轴器、旋转电机、牵引平台以及至少一个牵引组件;所述运动旋转牵引杆的下端通过万向伸缩联轴器与旋转电机的输出端连接;所述旋转电机固定在牵引平台上;
所述牵引组件的一端连接在牵引平台上,另一端连接在承重支架上,用于调整牵引平台的倾角。
上述的牵引组件有两钟不同类型:
其一,滚珠丝杠副类型。牵引单元的牵引组件的数量为一个、两个或三个;所述牵引组件包括牵引电机、滚珠丝杠副;所述牵引电机与承重支架铰接,所述牵引电机输出轴与滚珠丝杠副的丝杠固连;所述滚珠丝杠副的螺母与牵引平台铰接;当牵引组件为两个时,所述两个牵引组件的牵引方向或牵引方向的投影呈90°夹角;当牵引组件为三个时,任意两个牵引单元的牵引方向之间的夹角相等。
其二,电动丝杆滑轨型。牵引单元的牵引组件数量为一个或两个;当牵引组件的数量为一个时,所述牵引组件为电动丝杆滑轨,其滑轨固定在承重支架或承重基础上,其滑块与牵引平台固定;当牵引组件的数量为二个时,第一个牵引组件为电动丝杆滑轨,其滑轨固定在承重支架或承重基础上;第二个牵引组件为电动丝杆滑轨,其滑轨固定在第一个牵引组件的滑块上,其滑块与牵引平台固定;所述两个电动丝杆滑轨的夹角为90°。
本发明的优点:
1、现有技术是通过双手控制外接设备从而达到运动控制。本发明方法解放了体验者的双手,直接通过传感器达成运动平台控制。
2、本发明通过设置死区角度,防止平台的误动作,死区角度可出厂设定,也可体验者自行设定。
3、本发明方法自带传感器,避免了运动平台与头戴设备的不兼容问题。
4、本发明方法还可采用正弦曲线的运动方式,极大了提升了体验者的体验度,运动状态更加平滑,过度更加平缓,加速度体验更真实。
5、本发明方法通过正弦曲线取值方法限定了旋转最大速度,避免运动平台转速过快带来的安全隐患。
附图说明
图1是本发明方法的方向参数获取步骤流程图;其中的无线发送可采用2.4-2.5g无线通讯协议;
图2是本发明方法的动作参数获取步骤流程图;
图3是本发明方法的旋转或摇摆控制流程图;
图4是本发明方法的带死区控制的旋转控制流程图;
图5是本发明方法的带曲线控制的旋转控制流程图;
图6是本发明方法所使用的第一种多维运动平台的结构示意图;
图7是本发明方法所使用的第二种多维运动平台的结构示意图;
图8是本发明方法计算速度系数所采用的正弦响应曲线;
图9是本发明方法计算速度系数所采用的响应直线;
其中,图8和图9的X轴为旋转角度差,X为死区的最值,Y轴为速度系数,对应曲线最高处的系数为1。
具体实施方式
本发明是一种实现头戴显示设备与多维运动平台联动的运动控制方法,包括以下步骤:
1)设置头戴显示设备相对于多维运动平台的死区角度,设置头部旋转角度系数的最值,设置多维运动平台自转速度参数和摇摆行程参数;当校准多维运动平台的座椅与头盔角度时,座椅零位为值;
2)校准多维运动平台与头戴显示设备,获取多维运动平台的水平方向角度和最大摇摆角度;
3)参数获取:
3.1)方向参数获取:
3.1.1)角速度传感器和加速度传感器分别输出角速度与加速度的累计值;此处的角速度传感器和加速度传感器可以采用头戴显示设备的固有传感器,也可以是独立外置的传感器;
3.1.2)根据积分获得头部加速度与头部角速度的瞬时值,并进行滤波、增稳;
3.1.3)根据瞬时值计算绝对方向向量;
3.1.4)将信息头和绝对方向向量封装成头戴显示设备追踪数据包;
3.2)动作参数获取:
3.2.1)根据随动游戏的状态,获取被控物体的瞬时状态参数;或者通过动作文件播放器获取指定场景的预设动作参数;
3.2.2)将信息头和瞬时状态参数或者信息头和预设动作参数封装成动作控制数据包;
4)控制器通过无线方式接收头戴显示设备追踪数据包,同时通过485总线方式接收动作控制数据包;
5)判断:
提取信息头,如为头戴显示设备追踪数据则进入步骤6,如为动作参数数据则进入步骤7,否则丢弃该数据;
6)根据头戴显示设备当前头部方向的偏转角度与多维运动平台当前偏转角度计算实时角度差,并实时判断该角度差是否大于设定的死区角度,若是,则输出瞬时旋转脉冲,送入多维运动平台的旋转电机;若否,则继续计算实时角度差;
7)根据动作参数的当前角度与运动平台的当前状态计算位移差值,得出瞬时控制脉冲,送入动作控制系统的牵引电机。送入的速率最好大于10数据包/秒,以实现无抖动控制。
其中的步骤6有多种实现方式,第一种实现方式不使用曲线控制,具体如下:
6.1)提取所设定的死区角度;
6.2)提取头戴显示设备当前偏转角度与多维运动平台当前偏转角度,得到实时角度差;
6.3)将死区角度与实时角度差进行对比,若实时角度差小于死区角度,则返回步骤6.2;若实时角度差大于等于死区角度,则用实时角度差的绝对值减去死区角度,得出控制角度差;
6.4)判断控制角度差是否大于头部旋转角度系数的最值,若大于则固定为头部旋转角度系数的最值;
6.5)按下式计算实际旋转速度:
实际旋转速度=(控制角度差/头部旋转角度系数的最值)×自转速度参数;
6.6)将实际旋转速度转换为瞬时旋转脉冲,送入多维运动平台的旋转电机。
其中步骤6的第二种实现方式不适用死区控制,具体如下:
6.1)提取头戴显示设备当前偏转角度与平台当前偏转角度,得到实时角度差;
6.2)判断实时角度差是否大于头部旋转角度系数的最值,若大于则固定为头部旋转角度系数的最值,并进行以下计算:
新的实时角度差=(实时角度差/头部旋转角度系数的最值)×90度
6.3)以该实时角度差的正弦值作为速度系数;
6.4)按下式计算实际旋转速度:
实际旋转速度=速度系数×自转速度参数;
6.5)将实际旋转速度转换为瞬时旋转脉冲,送入多维运动平台的旋转电机。
其中步骤6的第三种实现方式采用死区和曲线综合控制,具体如下:
6.1)提取所设定的死区角度;
6.2)提取头戴显示设备当前偏转角度与多维运动平台当前偏转角度,得到实时角度差;
6.3)将死区角度与实时角度差进行对比,若实时角度差小于死区角度,则返回步骤6.2;若实时角度差大于等于死区角度,则用实时角度差的绝对值减去死区角度,得出控制角度差;
6.4)判断实时角度差是否大于头部旋转角度系数的最值,若大于则固定为头部旋转角度系数的最值,并进行以下计算:
新的实时角度差=(实时角度差/头部旋转角度系数的最值)×90度
6.5)以该实时角度差的正弦值作为速度系数;
6.6)按下式计算实际旋转速度:
实际旋转速度=速度系数×自转速度参数;
6.7)将实际旋转速度转换为瞬时旋转脉冲,送入多维运动平台的旋转电机。
本发明方法的原理:
通过将一个包含有9轴传感器模块的设备固定在操作者头部的感应设备(例如3轴陀螺仪+3轴加速度计,必要时还可以增加3轴磁感应计)所采集的数据通过一定算法(3轴加速度计用于计算确定头部姿态,3轴陀螺仪用于计算识别头部实时旋转角度,3轴磁感应计用于计算纠正偏移量)计算出实际空间状态向量,也就是人头部的实际朝向。并将该数据与设备ID通过无线或有线发送给控制系统。
控制系统可以接收多种控制信号,当接收到头部实际朝向信号后,将该朝向与自身底座朝向进行比较,如果度数大于事先设定的死区大小,则驱动旋转电机进行旋转补偿,直到该偏角小于死区角度(死区角度是指:旋转角度小于一定角度时系统不做反应)
此处的选择转补偿通过多种算法进行计算,以达到平缓的旋转,防止产生眩晕,将旋转角与事先设定的最值进行比较,先确定最大角度,大于该最大角度的,均按最大角度进行计算,以保证达到最大速度后能够匀速运动,然后将计算的区间角伸缩到-90到90度的范围区间,响应曲线见图8和9。
将以上数据代入算法,目前考虑两种算法:
第一种算法,使用正弦曲线进行计算,得到-1至1的抛物线曲线,再乘以设定的电机旋转脉冲数,得到实际驱动电机旋转的脉冲数。
第二种算法,使用匀速直线加速进行计算,得到从-1至1的直线段,同样乘以设定的电机旋转脉冲数计算实际脉冲数。
除了通过控制着头部控制旋转外,本系统还支持同时或独立的与运动平台的运动进行结合,运动平台通过控制系统接收的运动平台控制信号进行控制,运动信号是一个包含了方向、仰角和旋转角度的向量,与传统的运动平台不同(传统的运动平台使用的是每个电缸位移分量数据,该数据的缺点是不同结构的运动平台都有其自身独立的数据规则和结构)其优点是可适应未来任何结构的运动平台。而其中的旋转角数据,可以选择与上文中的控制着头部旋转数据进行和计算,来实现共同控制的效果。
当然,整个系统中,头部控制与运动平台是可以各自独立或分拆工作,既可以单独使用头部追踪控制,也可以仅使用运动平台,也可以两者结合使用。
为了提高控制精度,上述运动控制方法中,还包括根据头戴显示设备内置或外置的磁力传感器进行轨迹矫正的步骤。为了防止误动作,上述信息头优选设备识别ID;为了防止抖动,上述当前状态计算差值送入动作控制系统的发送速率最好大于10数据包/秒。
运动控制方法中的多维运动平台,具体结构包括支撑单元和牵引单元,所述支撑单元包括运动平台1、推力万向关节轴承14、承重平台2、运动旋转牵引杆3及承重支架4;所述推力万向关节轴承14包括轴圈和座圈;所述运动旋转牵引杆的上端固定于推力万向关节轴承的轴圈内;所述运动平台下底面与推力万向关节轴承关节轴圈上端面固连;所述推力万向关节轴承的座圈与承重平台固连;所述承重平台通过承重支架设置在承重基础5上;所述牵引单元包括万向伸缩联轴器、旋转电机7、牵引平台10以及至少一个牵引组件;所述运动旋转牵引杆的下端通过万向伸缩联轴器与旋转电机的输出端连接;所述旋转电机固定在牵引平台上;
所述牵引组件的一端连接在牵引平台上,另一端连接在承重支架上,用于调整牵引平台的倾角。
上述的牵引组件有两钟不同类型:
其一,滚珠丝杠副类型。牵引单元的牵引组件的数量为一个、两个或三个;所述牵引组件包括牵引电机6、滚珠丝杠副8;所述牵引电机与承重支架铰接,所述牵引电机输出轴与滚珠丝杠副的丝杠固连;所述滚珠丝杠副的螺母与牵引平台铰接;当牵引组件为两个时,所述两个牵引组件的牵引方向或牵引方向的投影呈90°夹角;当牵引组件为三个时,任意两个牵引单元的牵引方向之间的夹角相等。
其二,电动丝杆滑轨型。牵引单元的牵引组件数量为一个或两个;当牵引组件的数量为一个时,所述牵引组件为电动丝杆滑轨11,其滑轨固定在承重支架或承重基础上,其滑块与牵引平台固定;当牵引组件的数量为二个时,第一个牵引组件为电动丝杆滑轨,其滑轨固定在承重支架或承重基础上;第二个牵引组件为电动丝杆滑轨,其滑轨固定在第一个牵引组件的滑块上,其滑块与牵引平台固定;所述两个电动丝杆滑轨的夹角为90°。