一种与游戏互动的VR划船机的制作方法

文档序号:17633437发布日期:2019-05-11 00:15阅读:581来源:国知局
一种与游戏互动的VR划船机的制作方法

本发明属于运动器械技术领域,具体涉及一种与游戏互动的vr划船机。

技术背景

目前市面上有各式各样的划船机类的健身装置,通过安装在手桨上一个很小的嵌入式装置,采集用户拉桨时的次数,通过蓝牙发送给游戏端,来操作游戏中的角色,达到一边健身,一边游戏娱乐的效果。但市面上的划船机所带的运动数据采集装置并不能完全准确地采集用户拉桨的次数,当用户前后摆动手桨,会当作一次拉桨,从而导致数据采集上出现错。而且也不能采集用户拉桨的方向,这样的采集装置由于存在上述问题,严重影响了用户的产品体验。

而且,为了避免运动者在运动过程中产生无聊感,就需要将运动器械与虚拟现实游戏相结合,通过vr使运动与游戏的融合给予健身者高度的真实感和沉浸感。



技术实现要素:

本发明的目的是提供了一种与游戏互动的vr划船机,本发明使用微处理器搭配六轴姿态传感器及蓝牙模块来采集分析数据,从而消除重力加速度分量,精确的测定拉桨次数和拉桨的角度。所测定的拉桨次数和拉桨角度的数据与vr游戏进行互动,从而弥补现有技术的不足。

本发明所提供的划船机,包含有支架1,安装在支架1上的水箱5;拉杆4通过拉带2连接到水箱5上;在靠近水箱5的一侧安装有脚蹬6,在远离水箱5的一侧安装有坐垫滑轨7,坐垫滑轨7上安装有坐垫8;在拉杆4的中间位置还安装有传感器,所述的传感器3由微处理器、六轴姿态传感器、蓝牙模块以及电池组成;

本发明的划船机还包含有与传感器分析的运动数据进行互动的vr游戏展示屏幕。

上述的微处理器对运动数据进行如下步骤的分析:

s1:获取三轴角速度和三轴加速度的数据,

采用32位微处理器stm32f1,通过i2c协议对mpu6050六轴姿态传感器进行配置采集;

s2:对三轴角速度和三轴加速度的数据进行互补滤波处理获得三轴姿态角,步骤如下:

1)初始化四元数

姿态计算初始,将已知载体初始姿态角带入以下公式,求出初始时刻的四元数

其中φ、θ、ψ分别为三轴姿态角,初始值可取0;

2)将加速度数据的测量值进行单位化

利用如下公式将重力加速度在三轴上的分量转化为单位向量:

vx、vy、vz分三轴上的重力向量;

3)计算误差:

将重力加速度与加速度计的原始数据ax、ay、az进行叉乘得到用于修正陀螺仪姿态角的误差向量[exeyez]

ex=(ay*vz-az*vy)

ey=(az*vx-ax*vz)

ez=(ax*vy-ay*vx)

4)利用误差向量修正陀螺仪姿态角,将误差向量带入传递函数中,得到修正系数:

δ=kpe+kt∫e

5)利用修正后的陀螺仪姿态角更新四元数

q0(t)、q0(t+t)分别为前一时刻和后一时刻的四元数;

6)将更新后的四元数规范化

7)将四元数转化为欧拉角,根据以下公式可以将四元数转化为三轴姿态角φ、θ、ψ

s3:解算出姿态角后,根据俯仰角θ与重力加速度在x轴上的分量的关系,计算出重力加速度分量gx=g*sinθ

s4:三轴加速度减掉重力加速度分量即可就得用户拉桨时的加速度;通过加速度数据得到用户拉桨的次数及最大速度;

s5:用户拉桨的次数、最大速度和拉桨的方向数据发送给显示端;其中横滚角作为拉桨的左右倾角,即拉桨的方向。

s6:所述的游戏端接收到拉桨次数这个运动数据后,游戏中桨手会进行一次划桨,而前进的距离取决于拉桨的最大加速度这个参数,而拉桨的方向影响游戏中桨手划桨的方向。

本发明所提供的划船机,通过微处理器内的计算程序,能有效的消除拉浆数据的重力加速度分量,并且检测用户拉桨的方向或角度。这样不仅能使传输的拉桨次数精确,而且还可以确定拉桨的角度,并与游戏进行互动,使健身者获得最好的体验。

附图说明

图1:本发明的划船机的结构图,其中1为支架,2为拉带,3为传感器,4为拉杆,5为水箱,6为脚蹬,7为坐垫滑轨,8为坐垫;

图2:本发明的方法所依托的划船机的传感器的布局图;

图3:俯仰角θ与重力加速度在x轴上的分量的关系图;

图4:利用滤波后的加速度数据获得拉桨次数,拉桨次数及最大加速度采集的程序设计流程图。

图5:通讯协议示意图;

图6:vr游戏场景图。

具体实施方式

传统的划船机运动数据采集装置往往采用微处理器搭配三轴加速度计及蓝牙模块的硬件组成。当用户做拉桨运动时,手桨会产生加速度,三轴加速度计会采集到运动过程中的加速度数据保存在寄存器中,微处理器通过特定的协议,循环读取这些数据,如果加速度数据达到一定值,说明用户进行了拉桨运动,并累积拉桨的次数,将该次数通过蓝牙模块发送出去。

但这个过程中存在一个问题,那就是三轴加速度计采集的加速度数据含有重力加速度分量,这个分量的大小取决于数据采集装置与水平面的夹角,夹角越大,重力加速度分量越大。

因此当用户摆动手桨时,会使数据采集装置与水平面产生夹角,这时候微处理器也会读取到数值较大的加速度数据,会误判用户在进行拉桨运动,因此会造成传输出去的拉桨次数与用户实际拉桨次数不符,从而影响游戏体验。

在发现了上述缺点的基础上,本发明使用微处理器搭配六轴姿态传感器及蓝牙模块来采集分析数据,从而消除重力加速度分量,精确的测定拉桨次数和拉桨的角度。

申请人在划船机拉杆的正中位置安装传感器,传感器由微处理器、六轴姿态传感器、蓝牙模块以及电池组成。当用户进行拉桨运动时传感器会采集用户拉拽的加速度与拉杆左右倾斜的角度。经过算法的处理,将加速度数据与角度数据融合为拉桨的次数、力度和方向等运动数据,并通过蓝牙模块发送到显示屏上。

如图1所示,本发明所提供的划船机,包含有支架1,安装在支架1上的水箱5;拉杆4通过拉带2连接到水箱5上;在靠近水箱5的一侧安装有脚蹬6,在远离水箱5的一侧安装有坐垫滑轨7,坐垫滑轨7上安装有坐垫8;在拉杆4的中间位置还安装有传感器,所述的传感器3由微处理器、六轴姿态传感器、蓝牙模块以及电池组成;

本发明的划船机还包含有与传感器分析的运动数据进行互动的vr游戏展示屏幕。

当划船机的水箱注入一定量的水后,使用者坐于坐垫之上,双脚蹬在脚蹬上,双手握紧拉杆,并使拉杆处于水平状态,这样利于传感器进行数据采集。开始进行拉拽运动后,使用者握紧拉杆用力后拉,这时水箱中与拉锁固联的旋桨叶片会飞速转动,但由于水的存在,会给叶片产生一定的阻力,这个阻力会随拉带传递到使用者的手臂上,这样使用者就会感受到来自划船机的阻力。反复拉拽拉杆,会起到锻炼身体的效果。

本发明的方法所依托的划船机的传感器硬件组成为微处理器搭配六轴姿态传感器及蓝牙模块,其一种配制布局如图2所示。其中六轴姿态传感器mpu6050包含三轴陀螺仪和三轴加速度计,可以采集手桨运动过程中的角速度及加速度,融合成三轴姿态角。其中前后摆动的姿态角和重力加速度分量成三角函数关系。通过这个姿态角与重力加速度分量之间的数学关系可以将这个重力加速度分量解算出来,然后用采集到的加速度减去这个重力加速度分量,便可获得不包含重力加速度分量的加速度数据,从而消除了重力加速度的干扰,而表示左右摆动的姿态角也就是拉桨的方向。

划船机数据处理,是采用微处理器stm32f1+六轴姿态传感器mpu6050来完成,微处理器通过i2c协议驱动mpu6050,读取mpu6050数据寄存器中的三轴角速度、三轴加速度,进行四元数姿态融合互补滤波,解算出划船机手桨的前后倾斜的角度,通过该角度与重力加速度之间的关系解算出重力加速度分量,然后利用采集到的加速度减去该重力加速度分量,得到运动加速度,从而消除重力加速度对测算拉桨次数带来的干扰,并将左右倾斜的姿态角作为拉桨的方向角,将一次拉桨产生的最大加速度作为拉桨的力度。

本发明的vr划船器的运动数据分析方法,完成以上数据处理操作的具体步骤如下:

s1:获取三轴角速度和三轴加速度的数据,

该步骤采用32位微处理器stm32f1,通过i2c协议对mpu6050六轴姿态传感器进行配置采集,包括角速度量程、加速度量程、采样频率的数据。配置完成后通过i2c对mpu6050进行复位与唤醒,即可进入数据采集过程。然后微处理器读取mpu6050特定寄存器中的加速度数据。

s2:对三轴角速度和三轴加速度的数据进行互补滤波处理获得三轴姿态角;

鉴于加速度计低频特性比较好,因为加速度的角度可以直接算出来,没有累积误差,所以长时间后也比较准。而陀螺仪长时间后由于积分误差的累加,会造成输出误差比较大,甚至无法使用。所以用互补滤波法根据它们的特性取长补短进行姿态解算,每过一段时间就让加速度计去校准一下陀螺仪。互补滤波就是在短时间内采用陀螺仪得到的角度做为最优值,定时对加速度采样来的加速度值进行取平均值来校正陀螺仪的得到的角度。短时间内用陀螺仪比较准确,以它为主;长时间用加速度计比较准确,这时候加大它的比重,这就是互补滤波,这个过程中加速度计要滤掉高频信号,陀螺仪要滤掉低频信号。互补滤波的具体过程如下:

1)初始化四元数

姿态计算初始,将已知载体初始姿态角带入以下公式,求出初始时刻的四元数

其中φ、θ、ψ分别为三轴姿态角,分别为横滚角、俯仰角、偏航角,初始值可取0;

2)将加速度数据的测量值进行单位化

利用如下公式将重力加速度在三轴上的分量转化为单位向量:

vx、vy、vz分三轴上的重力向量;

3)计算误差:

将重力加速度与加速度计的原始数据ax、ay、az进行叉乘得到用于修正陀螺仪姿态角的误差向量[exeyez]。

ex=(ay*vz-az*vy)

ey=(az*vx-ax*vz)

ez=(ax*vy-ay*vx)

4)利用误差向量修正陀螺仪姿态角

将误差向量带入传递函数中,得到修正系数:

δ=kpe+kt∫e

5)利用修正后的陀螺仪姿态角更新四元数

q0(t)、q0(t+t)分别为前一时刻和后一时刻的四元数。

6)将更新后的四元数规范化

7)将四元数转化为欧拉角,根据以下公式可以将四元数转化为三轴姿态角φ、θ、ψ

s3:解算出姿态角后,根据俯仰角θ与重力加速度在x轴上的分量的关系,计算出重力加速度分量。

如图3所示:θ为陀螺仪在x轴上的倾角,即俯仰角。当俯仰角为0时,即陀螺仪水平时,重力加速度g在x轴上的分量为0,当俯仰角大于0时,g在x轴上的分量也大于0,这时加速度计采集到的x轴上的加速度开始受到了重力加速度分量的加成,而这个分量的加成会干扰通过加速度来计算拉桨的次数。通过以下公式重力加速度分量gx=g*sinθ

可以计算出g在x轴上的分量。

s4:测得的加速度减掉重力加速度分量即可就得用户拉桨时的运动加速度;通过运动加速度数据得到用户拉桨的次数及最大速度;

图4为利用滤波后的加速度数据获得拉桨次数,拉桨次数及最大加速度采集的程序设计流图,其中a为正向加速度大于设定值(该值按划船机的阻力设定进行预设定,其中本发明设定为7)时的累积次数,b为负向加速度小于该值时的累积,当a达到设定值时,说明进行了一次拉桨,当b达到设定值时,说明拉桨结束后回推,这时一次完整的拉桨运动结束,进行拉桨次数累计。d为最大加速度值,如果当前加速度大于d,就将当前加速度的值赋给d。c为静止时的加速度次数累计,当c达到一定值时,说明没有进行拉桨运动,这时要将a置零。

s5:用户拉桨的次数、最大速度和拉桨的方向数据发送给显示端将姿态解算得到的横滚角φ作为拉桨的左右倾角,即拉桨的方向,将每次拉桨的最大加速度作为拉桨的力度,以及拉桨的次数打包通过蓝牙串口模块发送给vr游戏端,用于控制游戏中的角色。

通讯协议如下图5所示,其中start1、start2为数据包起始位,data1、data2分别为拉桨时左右倾角,data3为拉桨的力度,data4为拉桨的次数。

通过上述的步骤,本发明方法有效的消除重力加速度分量,并且检测用户拉桨的方向或角度。这样不仅能使传输的拉桨次数精确,而且还可以确定拉桨的角度,从而使运动数据检测更精确。

s6:vr游戏中的主要角色是一名桨手与他所乘坐的一艘快艇,当用户拉桨时,传感器会将拉桨次数累加、每次拉桨的最大加速度、拉桨的角度发送给游戏端。游戏端接收到拉桨次数这个运动数据后,会与之前的次数比较,如果大于之前次数,则桨手会进行一次划桨,这时快艇会前进一段距离,而前进的距离取决于拉桨的最大加速度这个参数,如果用户拉桨力度较大,则传感器采集到的最大加速度就大,进而使游戏中快艇前进的距离就远,这也符合实际情况。

在这个vr游戏中,另一个角色就是神出鬼没的鲨鱼,桨手在划船的过程中,vr头盔会看到有鲨鱼从水面跃出,这时如果被咬中,桨手的血量就会下降,当血量下降为零时,游戏就会失败。这时桨手需要规避鲨鱼,当鲨鱼扑来时,桨手需要超其他方向用力划桨,躲避鲨鱼的袭击(图6)。

躲避鲨鱼的袭击主要取决于用户左右拉桨的角度,当用户在vr头盔里看到有鲨鱼袭来时,需要改变手桨拉拽的角度,来改变桨手划桨的方向,从而躲避鲨鱼的袭击。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1