三自由度 VR/AR 遥控器系统设计

2019-07-20 13:24吴海全姜德军张恩勤
电子技术与软件工程 2019年10期
关键词:磁力计陀螺仪遥控器

吴海全 姜德军 张恩勤

摘要:本文提出了一套三自由度的VR/AR遥控器系统设计,其具有高灵敏度、高精确度和低功耗的特点,实际使用效果非常好,已经批量生产

[关键词]遥控器低功耗蓝牙三自由度虚拟现实增强虚拟现实

过去几年VR/AR在教育、医疗、设计和制造等领域得到广泛应用。以教育市场为例,IDC市场调查报告显示,2018年国内教育市场VR/AR出货量份额将占整体市场接近7.0%。在生产领域VR/AR也已经成为的重要工具之一,IDC预计到2024年,55%的中国大中型企业将为部分员工部署VR/AR硬件,其关键驱动因素是VR/AR可以有效提升工作效率。随着相关政策的推动,VR/AR还将在更多细分垂直领域得到快速发展。各種行业应用的发展同时也对VR/AR的最重要人机交互接口遥控器提出了更高要求。如何准确实时地还原遥控器控制信息来提升用户体验是遥控器设计的一个难点。

本文从硬件设计、软件系统架构、传感器校验和算法优化调整等多角度研究分析,设计实现速度更快,精度更高,功耗更低的三自由度VR/AR遥控器。

1硬件设计

硬件整体设计如图1所示,核心器件包含无线微处理器、九轴传感器(磁力计、加速计和陀螺仪)、触摸微处理芯片、充电管理芯片、按键和LED指示灯。

作为核心主控的无线微处理器选用了Nordic51822(以下简称主控)。Nordic51822是一颗基于ARMCorte一M0的微处理器,支持单模BLE通信,并内部集成Flash。其通过I2C和GPIO连接诸多外设,对外设和传感器数据进行采样并对采样数据进行姿态融合处理,同时承担着通过BLE连接主机。16MHz和32.768KHz的两颗晶振分别为系统在工作和休眠模式(Sleep)下提供主时钟。

姿态控制是VR/AR遥控器的核心功能之一,设计采用两颗MEMS传感器提供姿态原始数据。遥控器不同于手机等PCB空间较小的设备,可以选择两个分离的MEMS器件,这样件经济性更好。LSM6DS3集成了加速计和陀螺仪,通过I2C连接到主控I2C1端口,同时必须将INT1连接到主控的一个GPIO作为中断源,因为中断模式比轮询模式具有及时性更好,功耗更低的优点,其缺点是软件复杂度较高。

区别于目前不少三自由度遥控器的六轴设计,为了控制精度更高,本设计采用九轴设计,附加使用磁力计,磁力计能有效校准陀螺仪的长时间使用时的数据漂移。磁力计LIS3MDL是通过I2C连接到主控I2C1端口,同时也需要将DRDY和INT管脚连接到主控的两个GPIO上用于中断响应和数据状态监测。

触摸芯片IQS525通过I2C连接到主控I2C2端口上,NRST和DRY连接到主控的两个GPIO脚上。触摸芯片芯片需要烧写固件和调试灵敏度,以上的四个管脚加上1.8vVDDHI和GND需要留测试点(TestPoint)或者烧录接口。

充电芯片PG和CHG都需要同时接主控GPIO,用于检测USB充电口是否插入和是否处于充电状态。电量检测采用两颗分压电阻直接对锂电池VBAT进行分压,分压后接入主控的AIO,主控内部的ADC会定时对AIO端口采样,通过换算即可的到当前电池电源,在结合电池放电曲线由软件得出电量百分比。

尽管传感器芯片和触摸控制芯片都有低功耗模式,但是这些芯片本身不是遥控器系统的中断唤醒源,所以我们可以进一步优化设计,通过一个GPIO控制的开关电路直接控制所有外设的供电,这样在待机模式下的功耗进一步降低。如图2通过主控的一个GPIO来控制CTP_PWREN可以控制AVDD是否导通。

金属影响磁力线的走向,设计需要避免磁力计附件有大块金属,磁力计还需要避免布局在电源线附近和逻辑主芯片板对面。机械应力会影响陀螺仪和加速计的准确度,其位置必须要远离按键、螺丝、USB插口,需要固定,避免布局在FPC上。工艺上也比必须考虑,例如胶水会热胀冷缩改变机械应力,生成中不能超声波焊接,超声波清洗,超声波检测虚焊等。传感器对温度非常敏感,设计上需要远离发热器件,从而降低温飘概率。触控板PCB背面需要网状铺铜,避免背面器件的工作引起触控误报操作。

2软件设计

2.1软件框架设计

软件系统的主要功能是驱动各种外设进行数据采集,并将采集的数据融合处理后发给被控制的VR/AR设备。

整体软件分为三层,最底层为操作系统(RTOS)和设备驱动层,RTOS由芯片厂商提供,设备驱动层主要是实现九轴传感器驱动、触摸板驱动、基于PWM的LED驱动和系统休眠唤醒管理等。

中间层为数据服务和硬件抽象层,主要实现定制的蓝牙通信协议、陀螺仪高通滤波算法、磁力计数据校准应用算法和九轴姿态融合算法等。

最上层为应用层,主要实现各种功能模块如开机、低压关机、连接和数据汇报等,采用基于状态机迁移的设计模式。

2.2优化设计要点

遥控器控制数据从传感器到VR/AR历经数据采集、数据缓存、数据预处理、数据融合和数据传输这样一个很长的链路,为了提高系统的灵敏度和精确度需要软件多方面的优化设计。

最终数据精度的决定因素首先来自原始数据的采样精度。精度来自两个方面,一是数据的位宽,另外一个是传感器的量程。目前主流九轴传感器的位宽皆为16位,基本不可以设置。在固定位宽的情况下,量程越大其数据精度越低,但是并非量程低了就好,量程低了可能会有数据溢出。以加速计为例,结合实际测试大多人的使用习惯,选择-4G到+4G的量程效果比较理想。

各种传感器的采样率也是各不相同,例如磁力计普遍频率较低一般为80Hz,陀螺仪和加速计可以工作到8KHz。这样不同的采样频率会带来数据的延时不同,也就是用于计算当前状态的数值可能是传感器在不同的时间采集的。这也是影响用户体验的一个非常重要的因素。我们需要在理解姿态融合算计的基础之上对数据做预处理,例如陀螺仪数据是主要是对时间积分用于短时间的内的移动侦测,长时间时会有漂移,可以采样高采样率,首先通过零偏校正,再通过高通滤波后,然后累计平均,取最新的一次数据传入姿态融合算法同时清除所有缓存。加速计和磁力计的数据更多用于决定运动的最终位置,所以他们的采样点需要尽量晚,尽量接近数据被使用的时间点。

最接近被使用的时间点如何选择呢,Nordic51822支持一种RadioNotfication的中断,通过如下示意代码的配置,我们可以在BLE无线启动接受主机数据包前得一个中断,软件响应中断,然后在中断响应函数内采集和处理数据。

voidinit_radioIrq(void){

sd_nvic_ClearPendingIRQ(SWI1_IRQn);

sd_nvic_SetPriority(SWI1_IRQn,3);

sd_nvic_EnableIRQ(SWI1_IRQn);

sd_radio_notification_cfg_set(NRF_

RADIO_NOTIFICATION_TYPE_INT_ON_ACTIVE,

NRF_RADIO_NOTIFICATION_DISTANCE800US);

voidRADIO_NOTIFICATION_IRQHandler(void){

app_sched_event_put(NULL,8,radio_scheduler_event_handler);

最后姿态融合算法生成的数据附加上序列号、时间戳和按键状态等信息一起组成数据包,通过GATT发送给VR/AR主机。BLE的通讯特点决定了只有当主机(Master)询问从设备(Slave)时,从设备才能发送数据包。当主从连接建立后Master以固定的连接间隔(ConnectionInterval)询问Slave,所以尽量考虑使用最小的连接间隔。Apple设备的最小连接间隔为20ms,而安卓系统可以为7.5ms。蓝牙4.2以前的版本不支持长数据包(DLE),超过GTAAMTU(MTU=23)的数据将会被拆分成多个包,为了提高传输速度降低延时并兼容4.0/4.1版本我们设计每个数据包大小为20字节,这是不分包情况下BLE允许的最大有效数据长度。

2.3系统状态机

应用层定义如图3更多细分的状态,更加有助状态控制从而降低工作功耗。例如傳感器不在系统初始化进行初始化,也不在蓝牙建立连接时初始化,而是选择在主机系统订阅姿态数据的最后时刻才上电并初始化传感器。对应地当主机断开连接也是首先传感器。

当设备打开但是没有主机来连接时,快速广播、慢速广播和系统休眠这三种状态,它们的功耗由高到低,连接延时(对应着用户体验)由快到慢,通过快速广播、慢速广播和系统休眠三种状态的切换有效平衡待机功耗和用户体验。

3遥控器系统传感器校准

对于有九轴传感器的3DOF遥控器而言,MEMS传感器的个体差异比较大,传感器校准也十分重要。

陀螺仪可以采用静态校准技术,遥控器安装完成后,按组合键进入校准模式(CalibrationMode),然后水平静态放置一段时间,软件自动采集500至1000组数据计算出陀螺仪的零飘。

手机为代表的移动设备,磁力计校准一般采用空中画8字,得到的数据直接在移动设备里面做椭圆拟合,但是这种方法其算法比较复杂,在遥控器这种资源有限的小系统里面无法实现。我们选择设计一个独立的磁力计在线校验模式,这种模式下BLE将直接输出磁力计原始数据,通过一个PC端应用程序读取这些数据并在PC环境下做校准,校准后的矩阵再通过BLE回写到遥控器的Flash,这样出厂的每个遥控器都可以工作在其最佳状态。

4结语

本系统设计之初就从硬件、软件和算法等角度考虑提高精度和降低延时,实际配合VR/AR系统测试效果很好,具有延时小、动作还原准确度高的特点。功耗测试也非常出色,一次充满电情况下可以连续工作1周或者待机12个月以上。

参考文献

[1]Madgwick S 0 H,Harrison A J L,Vaidyanathan R. Estimat ion ofIMU and MARG orientation using agradient descent algorithm[C]//Rehabilitation Robotics (ICORR),2011 IEEE International Conferenceon. IEEE,2011: 1-7.

[2]禹发来,杨云飞,基于蓝牙通信和GSM的单片机智能家居系统设计[J].科技广场,2016(03):185-188.

猜你喜欢
磁力计陀螺仪遥控器
基于EMD的MEMS陀螺仪随机漂移分析方法
我是“糊涂虫”
基于递推最小二乘法加速度计信息辅助的磁力计标定方法∗
六轴IMU补偿的磁力计动态稳定校准
时间遥控器
爸妈有个“遥控器”
我国著名陀螺仪专家——林士谔
微机械陀螺仪概述和发展
MEMS三轴陀螺仪中不匹配干扰抑制方法