本发明涉及一种手柄姿态精准计算,尤其涉及一种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手柄姿态初始化算法,包括如下步骤:

标定步骤:将加速度和磁力计分别通过公式进行标定以得到初始姿态信息,其中,Acc为加速度,Mag为磁力计,Acc′为加速度的标定,Mag′为磁力计的标定,Ca为加速度的标定参数,Cm为磁力计的标定参数;

归一步骤:通过公式对标定后的加速度和磁力计进行归一化处理;为加速度的归一化,为磁力计的归一化;

计算步骤:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。

进一步地,标定步骤中,将加速度和磁力计分别进行滤波后再进行标定。

进一步地,计算步骤中,包括如下子步骤:

翻滚角计算子步骤:通过公式计算得到翻滚角;其中,Accx为加速度在X方向上的大小,Accy为加速度在Y方向上的大小;

俯仰角计算子步骤:预设判断pitch_b是否为零,若是,则通过公式计算得到俯仰角,否则,通过公式计算得到俯仰角;

偏航角计算子步骤:通过公式

计算得到偏航角。

本发明的目的之二采用如下技术方案实现:

一种VR手柄,该手柄内设有处理器、存储器和存储在存储器中并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

标定步骤:将加速度和磁力计分别通过公式进行标定以得到初始姿态信息,其中,Acc为加速度,Mag为磁力计,Acc′为加速度的标定,Mag′为磁力计的标定,Ca为加速度的标定参数,Cm为磁力计的标定参数;

归一步骤:通过公式对标定后的加速度和磁力计进行归一化处理;为加速度的归一化,为磁力计的归一化;

计算步骤:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。

进一步地,标定步骤中,将加速度和磁力计分别进行滤波后再进行标定。

进一步地,计算步骤中,包括如下子步骤:

翻滚角计算子步骤:通过公式计算得到翻滚角;其中,Accx为加速度在X方向上的大小,Accy为加速度在Y方向上的大小;

俯仰角计算子步骤:预设判断pitch_b是否为零,若是,则通过公式计算得到俯仰角,否则,通过公式计算得到俯仰角;

偏航角计算子步骤:通过公式

计算得到偏航角。

本发明的目的之三采用如下技术方案实现:

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如本发明目的之一所述的算法。

相比现有技术,本发明的有益效果在于:

(1)按照传统AHRS和IMU算法,对于初始化姿态都采用(w,x,y,z)=(1,0,0,0),通过该方法解决姿态初始化问题,能够让VRVR交互手柄瞬间进入稳态,从而解决漂移问题。

附图说明

图1为本发明的VR手柄姿态初始化算法流程图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

如图1所示,本发明提供一种VR手柄姿态初始化算法,其包括如下步骤:

S1:将加速度和磁力计分别通过公式进行标定以得到初始姿态信息,其中,Acc为加速度,Mag为磁力计,Acc′为加速度的标定,Mag′为磁力计的标定,Ca为加速度的标定参数,Cm为磁力计的标定参数;

S2:通过公式对标定后的加速度和磁力计进行归一化处理;为加速度的归一化,为磁力计的归一化;

S3:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。

本发明的算法主要适用于XYZ系统的AHRS系统,其中Z轴旋转影响yaw方向,X轴旋转影响roll方向,Y轴旋转影响pitch方向。

在步骤S1中,还对加速度和磁力计分别先进行滤波操作,对滤波后的加速度和磁力计再进行标定。加速度的标定参数和磁力计的标定参数都是提前设定,是已知量。

S3中,包括如下子步骤:

翻滚角计算子步骤:通过公式计算得到翻滚角;Accx为加速度在X方向上的大小,Accy为加速度在Y方向上的大小。

俯仰角计算子步骤:预设判断pitch_b是否为零,若是,则通过公式计算得到俯仰角,否则,通过公式计算得到俯仰角;本步骤中如果不判断为零,否则pitch_b会作为分母进行除法,从而导致无穷大。

偏航角计算子步骤:通过公式

计算得到偏航角。

本发明还提供一种VR手柄,其内部设有处理器、存储器和存储在存储器中并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

标定步骤:将加速度和磁力计分别通过公式进行标定以得到初始姿态信息,其中,Acc为加速度,Mag为磁力计,Acc′为加速度的标定,Mag′为磁力计的标定,Ca为加速度的标定参数,Cm为磁力计的标定参数;

归一步骤:通过公式对标定后的加速度和磁力计进行归一化处理;为加速度的归一化,为磁力计的归一化;

计算步骤:根据标定后的加速度和磁力计进行初始化姿态计算,得到姿态初始化值,该姿态初始化值以欧垃角表示。

另外还提供一种计算机可读存储介质,其存储有计算机程序,计算机程序可被处理器执行,在被执行时实现本发明的算法流程。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

手柄的姿态算法_VR手柄姿态初始算法、VR手柄及存储介质的制作方法相关推荐

  1. Project Caliper:目标是打造最佳VR手柄

    一提到Valve Index,人们很快联想到它的五指追踪VR手柄,这款支持手势追踪和体感反馈的高端VR手柄,是市面上最强大的C端VR手柄之一.尽管如此,它依然存在许多缺陷,比如配备的小型摇杆质量不佳. ...

  2. 【XR】VR手柄设计之LED光点布局

    1. 如何设计一台VR手柄(设计一台VR手柄需要考虑以下几个方面:) 功能:VR手柄需要具备一定的交互功能,例如触摸板.按键.扳机等,以及能够感知手部动作和姿态的传感器. 舒适性:VR手柄需要舒适地握 ...

  3. 基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了

    作者 | 站长 pursueYfuture 来源 | AI专栏(ID: pursue-Y-future) 计算机视觉的一大研究热点是人体姿态估计,还有很多问题急需解决,比如遮挡,交互等等.在最近的CV ...

  4. 高、低成本MEMS惯导系统姿态、位置、速度更新算法的对比

    高.低成本MEMS惯导系统姿态.位置.速度更新算法的对比 一.高成本MEMS惯导系统姿态.位置.速度更新算法 1.速度更新 2.位置更新 3.姿态更新 4.程序仿真及实验结果 4.1 主函数 4.2 ...

  5. 看完这篇AI算法和笔记,跟面试官扯皮没问题了 | 基于深度学习和传统算法的人体姿态估计

    点击蓝色"AI专栏"关注我哟 重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹配算法的双目立体视觉]大受好评.这次 ...

  6. AI算法和笔记 | 基于深度学习和传统算法的人体姿态估计

    点击蓝色"AI专栏"关注我哟 选择"星标",重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文, 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹 ...

  7. 看完这篇AI算法和笔记,跟面试官扯皮没问题了 | 基于深度学习和传统算法的人体姿态估计...

    点击蓝色"AI专栏"关注我哟 重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹配算法的双目立体视觉]大受好评.这次 ...

  8. 看完这篇AI算法和笔记,让面试官刮目相看没问题了 | 基于深度学习和传统算法的人体姿态估计...

    点击蓝色"AI专栏"关注我哟 重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹配算法的双目立体视觉]大受好评.这次 ...

  9. 姿态控制算法前期准备(四元数+PID算法理论+欧拉角理论)

    姿态控制算法前期准备(四元数+PID算法理论+欧拉角理论) 一.需要的知识储备: 由于输入数据为四元组,因此需要对四元组有一些初步的了解: **什么是四元数?**形如: q = a + b ∗ i + ...

最新文章

  1. AutoIt3(AU3)开发的智能驱动安装工具,用于系统封装,支持参数静默启动
  2. abap 中modify 的使用
  3. ArcGis Desktop10 注册机授权方法与安装步骤
  4. CSS——可视化格式模型
  5. linux系统下/proc深度解析
  6. python中int什么意思_python3中int(整型)的使用教程
  7. IIS下配置跨域设置Access-Control-Allow-Origin
  8. ubuntu snappy 记事
  9. MySQL 双主单写,主库偶尔出现大量延迟的原因
  10. 教授先生带你学习链表:双向链表3
  11. python—模块-sys
  12. 更改自定义按钮显示值并对单元格赋值
  13. VLC解码播放H264文件
  14. matlab做聚类分析(简单的直接用clusterdata)
  15. 缅甸文字库 缅甸语字库 缅甸字库算法
  16. 有趣的java代码_求一些有趣的java小程序?
  17. 2013年3月TIOBE编程语言排行榜,Ruby超越Perl
  18. nib but the view outlet was not set 错误的解决办法。
  19. 【Unity3D】相机
  20. 百度Paddle免费课程——从零开始学视觉Transformer

热门文章

  1. windows svn 忽略文件夹
  2. Lasso算法理论介绍
  3. 陕西银行服务器项目中标,【新闻】西安金盾成功中标西安银行金融外包服务项目 陕西地区行业领先地位得到进一步稳固...
  4. 关于视频修改md5问题!
  5. 13.56M读卡器开发详解二(RC522驱动程序)
  6. 如何做一个基于python校园网站系统毕业设计毕设作品(Django框架)
  7. db2判断字符为空_DB2函数——常用函数整理
  8. linux系统下SVN服务器搭建
  9. vc.net matlab,基于Excel、Matlab和VC net实现立体天线方向图的重构和电平估算_
  10. 分析DAT与MPG文件格式的区别