本发明涉及游戏设备领域,具体是一种实时动态追踪的游戏手套。
背景技术:
目前大部分游戏控制方式为手柄、鼠标等。随着游戏产业和硬件水平的发展,为了提高用户的沉浸感和体验性,出现了许多可穿戴设备用于游戏控制。该专利可以实时动态追踪用户移动轨迹、识别手部姿态,实现精准高效的游戏控制。
目前可穿戴设备存在高延迟、操作难等问题,不能提高玩家的体验感,甚至会在游戏中增加不适感。
另外现有动作游戏主要操作方式为手柄和鼠标,这些操作方式游戏代入感差、操作复杂。
技术实现要素:
本发明的目的是解决现有技术中存在的问题。
为实现本发明目的而采用的技术方案是这样的,一种实时动态追踪的游戏手套,主要包括手套本体、感知模块、控制模块、通信模块、供电模块和游戏主机。
所述手套本体包括手掌部和手指部。
所述感知模块实时监测手套本体的姿态变化。
所述感知模块主要包括弯曲传感器和九轴惯性传感器。
所述弯曲传感器设置在手指部,监测手指部的弯曲程度,得到手指部弯曲信号,并发送至控制模块。
所述九轴惯性传感器设置在手掌部,监测手掌部的运动状态,得到手掌部运动信号,并发送至控制模块。
进一步,所述弯曲传感器在手指部范围内可移动。
所述九轴惯性传感器在手掌部范围内可移动。
所述弯曲传感器和九轴惯性传感器可拆卸。
所述控制模块对接收到的手指部弯曲信号和手掌部运动信号进行数据预处理和姿态解算,得到姿态解算结果,并将姿态解算结果发送至游戏主机。
进一步,控制模块对接收到的手掌部运动信号进行姿态解算的主要步骤如下:
1)基于卡尔曼滤波对手掌部运动信号进行滤波,主要步骤如下:
1.1)通过上一时刻手掌部运动状态x(k-1|k-1)预测当前的手掌部运动状态x(k|k-1),即:
x(k|k-1)=a·x(k-1|k-1)+b·u(k)(1)
式中,a和b为卡尔曼滤波系统参数。u(k)为当前手掌部运动状态的控制量。
当前的手掌部运动状态x(k|k-1)的协方差p(k|k-1)如下所示:
p(k|k-1)=a·p(k-1|k-1)at+q(2)
式中,p(k-1|k-1)是上一时刻手掌部运动状态x(k-1|k-1)的协方差。at是a的转置矩阵。q是卡尔曼滤波系统的噪声。
1.2)估计参考测量值x(k|k),即:
x(k|k)=x(k|k-1)+kg(k)·(z(k)-h·x(k|k-1))(3)
式中,kg(k)是卡尔曼增益。h是测量系统的参数。z(k)为k时刻待滤波信号。
卡尔曼增益kg(k)如下所示:
kg(k)=p(k|k-1)·ht/(h·p(k|k-1)·ht+r)(4)
式中,r为k时刻测量噪声协方差。
参考测量值x(k|k)的协方差p(k|k)如下所示:
p(k|k)=(1-kg(k)·h)·p(k|k-1)(5)
1.3)重复步骤1.1至步骤1.2,直至所有手掌部运动信号滤波完毕。
2)利用三轴加速度传感器和三轴地磁传感器对手掌部运动信号进行初始姿态解算,主要步骤如下:
2.1)设定地磁北极方向为参考坐标系的x轴正方向,重力方向为参考坐标系的z轴正方向。以方向余弦矩阵表示手掌部运动姿态。
2.2)以三轴地磁传感器读数
方向余弦矩阵
3)利用三轴陀螺仪进行姿态更新,主要步骤如下:
3.1)采用四元数表示三轴陀螺仪更新后的姿态,即:
式中,
3.2)对手掌部运动姿态
式中,qn为当前手掌部运动姿态归一化值。qn-1为上一时刻手掌部运动姿态归一化值。n表示时刻。
4)对方向余弦矩阵进行误差补偿,主要步骤如下:
4.1)将方向余弦矩阵转化为四元数形式,即:
qam=a+bi+cj+dk
式中,a、b、c和d为转换参数。i、j和k表示虚数单位。
转换参数a、转换参数b、转换参数c、转换参数d分别如下所示:
转换后,方向余弦矩阵dcm如下所示:
4.2)计算四元数qam与四元数qg之间的差
式中,其中qam为三轴地磁传感器和三轴加速度传感器数据构成的方向余弦矩阵所转化成的四元数,qg为三轴陀螺仪数据积分后表示姿态变化的四元数。
4.3)计算坐标系方向的单位向量
式中,re表示实部,im表示虚部。
4.4)建立虚拟角速度矢量
式中,s(*)表示函数。
5)利用公式(6)、公式(7)和公式(16)对四元数进行更新,从而实时表示手掌部运动姿态,并发送至游戏主机。
6)游戏主机获取姿态数据后,利用存储在游戏主机可读存储介质内的钟摆模型计算手掌部的运动轨迹,即所述钟摆模型利用三角函数,将手掌部的旋转角度转化为移动的距离,实现运动轨迹的实时追踪。
控制模块对接收到的手指部弯曲信号进行姿态解算的主要步骤如下:
1)设定弯曲阈值ε。
2)弯曲传感器串联定值电阻。
3)测量弯曲传感器两端电压值u,并判断电压u≥ε是否成立,若成立,则判断手指弯曲,若不成立,则判断手指未弯曲。
进一步,所述游戏主机主要包括电脑、游戏机和手机。
所述游戏主机获取姿态数据后,利用存储在游戏主机可读存储介质内的钟摆模型计算手掌部的运动轨迹。
所述控制模块通过通信模块接收游戏主机的指令信号。
进一步,所述通信模块为无线通信模块或有线串口通信模块。
所述供电模块为感知模块、控制模块和通信模块供电。
进一步,所述供电模块包括稳压模块和锂电池。
所述锂电池的电压经过稳压模块稳压后为感知模块、控制模块和通信模块供电。
本发明的技术效果是毋庸置疑的。本发明提供了一种有线/无线双模的实时动态追踪的游戏手套,将多个传感器融入手套中,配合低延时,高识别率的态势感知算法,能实时地感知手指和手掌的姿态变化,追踪手部移动轨迹,从而实现基于手套的高效精确游戏控制。
附图说明
图1为实时动态追踪的游戏手套的结构框图;
图2为实施例4中实时动态追踪的游戏手套的结构示意图;
图3为实施例4中实时动态追踪的游戏手套的使用状态示意图i;
图4为实施例4中实时动态追踪的游戏手套的使用状态示意图ii;
图5为实施例4中实时动态追踪的游戏手套的使用状态示意图iii;
图6为实施例4中实时动态追踪的游戏手套的使用状态示意图iv;
图中:手套本体1、感知模块2、控制模块3、通信模块4和供电模块5。
具体实施方式
下面结合实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的保护范围内。
实施例1:
参见图1,一种实时动态追踪的游戏手套,主要包括手套本体1、感知模块2、控制模块3、通信模块4、供电模块5和游戏主机。
所述手套本体1包括手掌部和至少一个手指部。
进一步,手套本体1设有总开关。
开启总开关,实时动态追踪的游戏手套开始工作。
所述感知模块2实时监测手套本体1的姿态变化。
所述感知模块2主要包括弯曲传感器和九轴惯性传感器。
所述弯曲传感器设置在手指部,监测手指部的弯曲程度,得到手指部弯曲信号,并发送至控制模块3。
所述九轴惯性传感器设置在手掌部,监测手掌部的运动状态,得到手掌部运动信号,并发送至控制模块3。
进一步,九轴惯性传感器包括三轴陀螺仪、三轴加速度传感器和三轴地磁传感器。
进一步,所述弯曲传感器在手指部范围内可移动。
所述九轴惯性传感器在手掌部范围内可移动。
所述弯曲传感器和九轴惯性传感器可拆卸。
因此,感知模块2可以针对不同用户手型大小进行调整。
所述控制模块3对接收到的手指部弯曲信号和手掌部运动信号进行数据预处理和姿态解算,得到姿态解算结果,从而实时监测手套本体1的姿态变化,并将姿态解算结果发送至游戏主机,提高控制的响应效率。
进一步,控制模块对接收到的手掌部运动信号进行姿态解算的主要步骤如下:
1)基于卡尔曼滤波对手掌部运动信号进行滤波,主要步骤如下:
1.1)通过上一时刻手掌部运动状态x(k-1|k-1)预测当前的手掌部运动状态x(k|k-1),即:
x(k|k-1)=a·x(k-1|k-1)+b·u(k)(1)
式中,a和b为卡尔曼滤波系统参数。u(k)为当前手掌部运动状态的控制量。
当前的手掌部运动状态x(k|k-1)的协方差p(k|k-1)如下所示:
p(k|k-1)=a·p(k-1|k-1)at+q(2)
式中,p(k-1|k-1)是上一时刻手掌部运动状态x(k-1|k-1)的协方差。at是a的转置矩阵。q是卡尔曼滤波系统的噪声。
1.2)估计参考测量值x(k|k),即:
x(k|k)=x(k|k-1)+kg(k)·(z(k)-h·x(k|k-1))(3)
式中,kg(k)是卡尔曼增益。h是测量系统的参数。z(k)为k时刻待滤波信号。
卡尔曼增益kg(k)如下所示:
kg(k)=p(k|k-1)·ht/(h·p(k|k-1)·ht+r)(4)
式中,r为k时刻测量噪声协方差。
参考测量值x(k|k)的协方差p(k|k)如下所示:
p(k|k)=(1-kg(k)·h)·p(k|k-1)(5)
1.3)重复步骤1.1至步骤1.2,直至所有手掌部运动信号滤波完毕。
2)利用三轴加速度传感器和三轴地磁传感器对手掌部运动信号进行初始姿态解算,主要步骤如下:
2.1)设定地磁北极方向为参考坐标系的x轴正方向,重力方向为参考坐标系的z轴正方向。以方向余弦矩阵表示手掌部运动姿态。
2.2)以三轴地磁传感器读数
方向余弦矩阵
3)利用三轴陀螺仪进行姿态更新,主要步骤如下:
3.1)采用四元数表示三轴陀螺仪更新后的姿态,即:
式中,
3.2)对手掌部运动姿态
式中,qn为当前手掌部运动姿态归一化值。qn-1为上一时刻手掌部运动姿态归一化值。n表示时刻。
4)对方向余弦矩阵进行误差补偿,主要步骤如下:
4.1)将方向余弦矩阵转化为四元数形式,即:
qam=a+bi+cj+dk
式中,a、b、c和d为转换参数。i、j和k表示虚数单位。
转换参数a、转换参数b、转换参数c、转换参数d分别如下所示:
转换后,方向余弦矩阵dcm如下所示:
m11、m12、m13、m21、m22、m23、m31、m32、m33表示方向余弦矩阵dcm中的元素,下标分别表示行号和列号。
4.2)计算四元数qam与四元数qg之间的差
式中,其中qam为三轴地磁传感器和三轴加速度传感器数据构成的方向余弦矩阵所转化成的四元数,qg为三轴陀螺仪数据积分后表示姿态变化的四元数。上标-1表示逆,上标t表示转置。
4.3)计算坐标系方向的单位向量
式中,re表示实部,im表示虚部。
4.4)建立虚拟角速度矢量
式中,s(*)表示角度函数。
5)利用公式(6)、公式(7)和公式(16)对四元数进行更新,从而实时表示手掌部运动姿态,并发送至游戏主机。
6)游戏主机获取姿态数据后,利用存储在游戏主机可读存储介质内的钟摆模型计算手掌部的运动轨迹,即所述钟摆模型利用三角函数,将手掌部的旋转角度转化为移动的距离,实现运动轨迹的实时追踪。
控制模块对接收到的手指部弯曲信号进行姿态解算的主要步骤如下:
1)设定弯曲阈值ε。
2)弯曲传感器串联定值电阻。
3)测量弯曲传感器两端电压值u,并判断电压u≥ε是否成立,若成立,则判断手指弯曲,若不成立,则判断手指未弯曲。
进一步,所述游戏主机主要包括电脑、游戏机和手机。
所述游戏主机获取姿态数据后,利用存储在游戏主机可读存储介质内的钟摆模型计算手掌部的运动轨迹。
所述控制模块3通过通信模块4接收游戏主机的指令信号。
进一步,所述通信模块4为基于蓝牙4.0ble协议的高速低功耗通信模块或有线串口通信模块。
所述供电模块5为感知模块2、控制模块3和通信模块4供电。
进一步,所述供电模块5包括稳压模块和锂电池。
所述锂电池的电压经过稳压模块稳压后为感知模块2、控制模块3和和通信模块4供电。
实施例2:
一种无线实时动态追踪的游戏手套,主要包括手套本体1、感知模块2、控制模块3、通信模块4、供电模块5和游戏主机。
所述手套本体1包括手掌部和手指部。
手套本体1设有总开关和蓝牙开关。
所述感知模块2主要包括弯曲传感器和九轴惯性传感器。
所述弯曲传感器设置在手指部,监测手指部的弯曲程度,得到手指部弯曲信号,并发送至控制模块3。
所述九轴惯性传感器设置在手掌部,监测手掌部的运动状态,得到手掌部运动信号,并发送至控制模块3。
所述控制模块3对接收到的手指部弯曲信号和手掌部运动信号进行数据预处理和姿态解算,得到姿态解算结果,从而实时监测手套本体1的姿态变化,并将姿态解算结果发送至游戏主机。
所述控制模块3通过通信模块4接收游戏主机的指令信号。
进一步,通信模块4为基于蓝牙4.0ble协议的高速低功耗通信模块。
通信模块4具有指示灯。
在无线模式下,需要先打开手套上的总开关和蓝牙开关,进行蓝牙配对,连接成功后通信模块上指示灯由闪烁变为常亮。
所述游戏主机获取姿态数据后,利用存储在游戏主机可读存储介质内的钟摆模型计算手掌部的运动轨迹。
所述供电模块5为感知模块2、控制模块3和通信模块4供电。
实施例3:
一种有线实时动态追踪的游戏手套,主要包括手套本体1、感知模块2、控制模块3、通信模块4、供电模块5和游戏主机。
所述手套本体1包括手掌部和手指部。
手套本体1设有总开关。
所述感知模块2主要包括弯曲传感器和九轴惯性传感器。
所述弯曲传感器设置在手指部,监测手指部的弯曲程度,得到手指部弯曲信号,并发送至控制模块3。
所述九轴惯性传感器设置在手掌部,监测手掌部的运动状态,得到手掌部运动信号,并发送至控制模块3。
所述控制模块3对接收到的手指部弯曲信号和手掌部运动信号进行数据预处理和姿态解算,得到姿态解算结果,从而实时监测手套本体1的姿态变化,并将姿态解算结果发送至游戏主机。
所述控制模块3通过通信模块4接收游戏主机的指令信号。
进一步,通信模块4为有线串口通信模块。
在有线模式下,将游戏手套通过数据线与游戏主机连接即可使用。
所述供电模块5为感知模块2、控制模块3和通信模块4供电。
实施例4:
进一步,一种有线实时动态追踪的游戏手套,主要结构见实施例2,其中,控制模块对接收到的手掌部运动信号进行姿态解算的主要步骤如下:
1)基于卡尔曼滤波对手掌部运动信号进行滤波,主要步骤如下:
1.1)并通过上一时刻状态x(k-1|k-1)预测当前的状态x(k|k-1),即:
x(k|k-1)=a·x(k-1|k-1)+b·u(k)(1)
式中,a和b为卡尔曼滤波系统参数。u(k)为当前状态的控制量。
当前的状态x(k|k-1)的协方差p(k|k-1)如下所示:
p(k|k-1)=a·p(k-1|k-1)at+q(2)
式中,p(k-1|k-1)是上一时刻状态x(k-1|k-1)的协方差。at是a的转置矩阵。q是卡尔曼滤波系统的噪声。
1.2)估计参考测量值x(k|k),即:
x(k|k)=x(k|k-1)+kg(k)·(z(k)-h·x(k|k-1))(3)
式中,kg是卡尔曼增益。h是测量系统的参数。
卡尔曼增益kg如下所示:
kg(k)=p(k|k-1)·ht/(h·p(k|k-1)·ht+r)(4)
参考测量值x(k|k)的协方差p(k|k)如下所示:
p(k|k)=(1-kg(k)·h)·p(k|k-1)(5)
1.3)重复步骤1.1至步骤1.2,直至所有手掌部运动信号滤波完毕。
2)利用三轴加速度传感器和三轴地磁传感器对手掌部运动信号进行初始姿态解算,主要步骤如下:
2.1)设定地磁北极方向为参考坐标系的x轴正方向,重力方向为参考坐标系的z轴正方向。以方向余弦矩阵表示手掌部运动姿态。
2.2)以三轴地磁传感器读数
方向余弦矩阵
3)利用三轴陀螺仪进行姿态更新,主要步骤如下:
3.1)采用四元数表示三轴陀螺仪更新后的姿态,即:
式中,
3.2)对手掌部运动姿态
式中,qn为当前手掌部运动姿态归一化值。qn-1为上一时刻手掌部运动姿态归一化值。
4)对方向余弦矩阵进行误差补偿,主要步骤如下:
4.1)将方向余弦矩阵转化为四元数形式,即:
qam=a+bi+cj+dk
式中,a、b、c和d为转换参数。
转换参数a、转换参数b、转换参数c、转换参数d分别如下所示:
转换后,方向余弦矩阵dcm如下所示:
4.2)计算四元数qam与四元数qg之间的差
4.3)计算坐标系方向的单位向量
4.4)建立虚拟角速度矢量
5)利用公式(6)、公式(7)和公式(16)对四元数进行更新,从而实时表示手掌部运动姿态,并发送至游戏主机。
6)游戏主机获取姿态数据后,利用存储在游戏主机可读存储介质内的钟摆模型计算手掌部的运动轨迹,即所述钟摆模型利用三角函数,将手掌部的旋转角度转化为移动的距离,实现运动轨迹的实时追踪。
控制模块对接收到的手指部弯曲信号进行姿态解算的主要步骤如下:
1)设定弯曲阈值ε。
2)弯曲传感器串联定值电阻。
3)测量弯曲传感器两端电压值u,并判断电压u≥ε是否成立,若成立,则判断手指弯曲,若不成立,则判断手指未弯曲。
实施例5:
参见图2至图6,一种使用实时动态追踪的游戏手套的示例,主要如下:
选取第一人称视角射击游戏,图2为实时动态追踪的游戏手套示意图,其中,i、ii、iii、iv和v表示弯曲传感器,vi和vii表示九轴惯性传感器。
图3为游戏的开始和瞄准手势,此手势为中指、无名指和小拇指弯曲。在此手势下开始进行游戏并处于瞄准状态,游戏视角随手的移动轨迹移动。图4为游戏的移动手势,此手势为中指、无名指弯曲,小拇指伸直。在此手势下处于移动状态,移动方向随手的移动轨迹变化。5为游戏的射击手势,此手势为食指弯曲一次,类似扣动扳机。图6为游戏的开关镜切换,此手势为大拇指弯曲一次。