杨 柳
(山西职业技术学院,山西 太原 030006)
基于惯性原理的头部运动跟踪系统的设计
杨 柳
(山西职业技术学院,山西 太原 030006)
在飞行模拟游戏中,需要头部运动跟踪系统采集解算人体头部的动作,以模拟飞行员实际的视野移动。目前市售的头部运动跟踪系统采用了红外跟踪原理,本文主要研究了基于惯性原理的头部运动跟踪系统的工作原理和系统设计,本系统可适用于多种飞行模拟游戏。
头部运动跟踪;惯性原理;MPU6050;Arduino
飞行模拟游戏是利用计算机技术模拟真实飞行器飞行特性和操作过程,此类游戏起源较早,并具有较高的模拟程度和带入感。玩家在飞行模拟游戏中扮演飞行员的角色,所以对外接设备要求很高,常用外设包括飞行控制器、节流阀、方向舵等。
在实际飞行中,为保证飞行安全,飞行员对视野范围要求较高,飞行器在设计过程中会考虑飞行员对视野的要求。但在飞行模拟游戏中,玩家的视野被面积有限的显示器限制,常规解决措施是安装头部运动跟踪系统,通过采集并解算头部姿态,在显示器中虚拟显示视野的移动,以满足玩家对视野范围的需求,同时提升游戏带入感。
目前市售的头部运动跟踪系统是NaturalPoint公司开发的Track IR系统,采用了红外跟踪原理,具备六自由度头部运动跟踪能力。Track IR系统主要由反光架和接收解算组件组成,其中接收解算组件包含红外光源、广角接收器、解算器和输出电路。其工作原理如图1所示。
图1 Track IR系统工作原理示意图
使用Track IR系统时需将反光架固定在头部,反光架上有3~4组反光镜,可反射红外光源发出的红外线。反射后红外线被广角接收器接收并处理成电子信号,再由解算输出组件计算处理并输出。由此可见,在Track IR系统使用中,人体面部将长期受到红外线照射。同时,反光架不能移出广角接收器的接收范围,否则系统无法正常工作。
数学上,头部运动跟踪属于刚体运动问题,而运动信息包含姿态和位置。目前,大多数情况下处理体感问题都采用光学法,如Track IR系统、F-35飞机采用JHMCS头盔显示系统等。该方法的最大优势在于原理简单、感受精确。如果在使用精度要求不高的情况下,还可以采用惯性原理采集和解算头部运动信息,即本文论述的基于惯性原理的头部运动跟踪系统。
1.1 头部运动的分析
在飞行模拟游戏中,玩家的头部运动与飞行员的头部运动一致,主要以旋转为主。采用惯性原理采集和计算头部运动信息,即是对头部运动的姿态进行解算。常用的惯性传感器感受的是物体的角速度。所以在数学上,该问题简化为已知刚体角速度求解姿态的问题,即经典的惯性姿态问题。
头部的旋转运动可分解为三个轴向的旋转运动,即左右摇摆、上下俯仰和水平滚转。因此,惯性传感器应能测量三个轴向的角速度,解算部分将传感器测得的角速度联合解算,得出头部的运动姿态。
1.2 惯性感测的数学原理
经典的惯性姿态问题有三种常用解法,即欧拉角法、方向余弦法和四元数法。欧拉角法是通过欧拉角微分方程求解得出刚体的姿态。欧拉角法的最大难点在于其解中包含“奇点”,故无法对全姿态进行求解,同时实施控制上难度很大,所以工程上几乎不采用。方向余弦法采用了方向余弦矩阵求解姿态,在算法上避免了“奇点”产生,但矩阵数据量大、计算量大、工作效率低,工程上也很少采用。四元数
属于超复数,四元数法是采用四元数表示刚体的姿态和旋转。四元数法算法简单、效率高、不存在“奇点”解,工程应用广泛。
四元数是形如q=q0+q1i+q2j+q3k的数,其中i、j、k满足i2=j2=k2=-1,ij=-ji=k,jk=-kj=i,ik=-ki=-j。解算刚体旋转问题时,需先将欧拉角转换成四元数,方程为:
其中:φ为刚体绕x轴旋转的角度;θ为刚体绕y轴旋转的角度;ψ为刚体绕z轴旋转的角度。
四元数表示了刚体的姿态和旋转,用四元数进行旋转刚体的姿态求解即是将两个四元数相乘,其中一个四元数表示刚体的初始姿态,另一个四元数表示本次旋转的角度和旋转轴,如下式所示。
qi=pqi-1p-1.
其中:qi为旋转后的刚体姿态四元数;qi-1为旋转前刚体姿态四元数;p为旋转四元数。
在刚体连续旋转过程中,旋转四元数p是单位时间内刚体旋转的角度,可由传感器获得的角速度值计算并进行坐标变换得到。而刚体旋转后的姿态可由旋转后的四元数变换为欧拉角得到。四元数转换为欧拉角的公式为:
基于惯性原理的头部运动跟踪系统需要安装在玩家头部,所以其系统需求为:体积小、重量轻,易安装拆卸,自供电,无线输出。
根据上述要求,系统由惯性传感器,解算器,输出部件和电源组成。惯性传感器选用具有三轴加速度和三轴角速度感受的MPU6050。解算器选用Arduino Nano单片机部件,其处理器核心为ATmega328(Nano3.0)单片机,同时具备14路数字输入/输出口(其中6路可作为PWM输出),8路模拟输入,一个16MHz晶体振荡器,一个mini-B USB口。输出部件以蓝牙模块为核心,采用SBM14580S小尺寸蓝牙4.0模块,使系统具备无线通讯的功能。系统电源供电方式可选用USB接口供电或5 V锂电池组供电。系统原理框图如图2所示。
图2 系统原理框图
系统单片机程序用Arduino IDE软件开发,烧写到Arduino Nano单片机部件中。流程如图3所示。
图3 程序流程图
本文主要研究了基于惯性原理的头部运动跟踪系统,证明惯性感测原理可以应用于头部运动的跟踪采集和处理。经过测试,本系统可以较好地应用于多种飞行模拟游戏。相对于Track IR系统而言,本系统无需对传感器的位置范围作出规定,也未采用红外线定位原理,解决了红外线持续照射玩家面部的问题。当前流行的虚拟现实和增强现实技术中,对身体运动的感受和处理是其核心技术之一,惯性传感器的工作不受外界条件和输入的限制,可以应用于身体其他部位运动的感受和处理,推广前景良好。
[1] 张荣辉,贾宏光,陈涛,等.基于四元数法的捷联式惯性导航系统的姿态解算[J].光学精密工程,2008,16(10):1963-1970.
[2] 刘俊峰.三维转动的四元数表述[J].大学物理,2004,23(4):39-62
Design of Head Tracking System Based on Inertial Principle
Yang Liu
(ShanxiPolytechnicCollege,TaiyuanShanxi030006,China)
In order to simulate the actual moving visual field of pilot, the head tracking system needs to collect and calculate the data of head movements in the flightsim. The head tracking system on sale uses infrared tracking principle at present. This paper mainly studies the working principle and system design of the head tracking system based on inertial principle. The system can be applied to varied flightsim.
head tracking system; inertial principle; MPU6050; Arduino
2017-01-04
杨 柳(1983- ),女,山西阳泉人,助教,工学硕士,主要从事电子信息技术专业相关教学及研究。
1674- 4578(2017)02- 0003- 02
TP391.41
A