本发明涉及一种手柄姿态精准计算,尤其涉及一种vr手柄姿态初始算法、vr手柄及存储介质。
背景技术:
目前,市面上普通的vr手柄设备的初始姿态一般采用(w,x,y,z)=(1,0,0,0)作为初始化姿态,用欧拉角表示为(yaw,pitch,roll)=[0,0,0],这种姿态初始化值,是继承于普通ahrs或imu设备算法,通过一点时间的收敛可以到达一个稳定状态。
但是,现有的技术存在以下缺陷:
(1)传统方法对于传统产品,如无人机不存在任何问题,但是对于vr手柄来讲,初始化姿态漂移会导致在收敛过程中一直存在漂移。
技术实现要素:
为了克服现有技术的不足,本发明的目的之一在于提供一种vr手柄姿态初始算法,其基于传统的ahrs和imu算法,让vr手柄瞬间进入稳态。
本发明的目的之二在于提供一种vr手柄,其基于传统的ahrs和imu算法,让vr手柄瞬间进入稳态。
本发明的目的之三在于提供一种计算机可读存储介质,其基于传统的ahrs和imu算法,让vr手柄瞬间进入稳态。
本发明的目的之一采用如下技术方案实现:
vr手柄姿态初始化算法,包括如下步骤:
标定步骤:将加速度和磁力计分别通过公式
归一步骤:通过公式
计算步骤:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。
进一步地,标定步骤中,将加速度和磁力计分别进行滤波后再进行标定。
进一步地,计算步骤中,包括如下子步骤:
翻滚角计算子步骤:通过公式
俯仰角计算子步骤:预设
偏航角计算子步骤:通过公式
本发明的目的之二采用如下技术方案实现:
一种vr手柄,该手柄内设有处理器、存储器和存储在存储器中并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
标定步骤:将加速度和磁力计分别通过公式
归一步骤:通过公式
计算步骤:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。
进一步地,标定步骤中,将加速度和磁力计分别进行滤波后再进行标定。
进一步地,计算步骤中,包括如下子步骤:
翻滚角计算子步骤:通过公式
俯仰角计算子步骤:预设
偏航角计算子步骤:通过公式
本发明的目的之三采用如下技术方案实现:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如本发明目的之一所述的算法。
相比现有技术,本发明的有益效果在于:
(1)按照传统ahrs和imu算法,对于初始化姿态都采用(w,x,y,z)=(1,0,0,0),通过该方法解决姿态初始化问题,能够让vrvr交互手柄瞬间进入稳态,从而解决漂移问题。
附图说明
图1为本发明的vr手柄姿态初始化算法流程图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
如图1所示,本发明提供一种vr手柄姿态初始化算法,其包括如下步骤:
s1:将加速度和磁力计分别通过公式
s2:通过公式
s3:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。
本发明的算法主要适用于xyz系统的ahrs系统,其中z轴旋转影响yaw方向,x轴旋转影响roll方向,y轴旋转影响pitch方向。
在步骤s1中,还对加速度和磁力计分别先进行滤波操作,对滤波后的加速度和磁力计再进行标定。加速度的标定参数和磁力计的标定参数都是提前设定,是已知量。
s3中,包括如下子步骤:
翻滚角计算子步骤:通过公式
俯仰角计算子步骤:预设
偏航角计算子步骤:通过公式
本发明还提供一种vr手柄,其内部设有处理器、存储器和存储在存储器中并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
标定步骤:将加速度和磁力计分别通过公式
归一步骤:通过公式
计算步骤:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。
另外还提供一种计算机可读存储介质,其存储有计算机程序,计算机程序可被处理器执行,在被执行时实现本发明的算法流程。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。