1 Open.MEMS目前支持的扩展运动算法库有:
osxMotionAC: 基于STM32Cube的实时加速度计校准扩展软件包
osxMotionGC: 陀螺仪校准扩展软件包
osxMotionMC: 磁力计校准扩展软件包
osxMotionCP: 佩戴位置扩展软件包
osxMotionPE: 姿态估算扩展软件包
osxMotionGR: 手势识别扩展软件包
osxMotionAR: 动作识别扩展软件包
osxMotionAW: 手腕动作识别扩展软件包
osxMotionID: 运动强度识别扩展软件包
osxMotionPM: 计步算法扩展软件包
osxMotionFX: 传感器融合算法软件包
2 osxMotionAC的介绍
2.1 功能
算法库获取加速度计的实时数据,然后计算offset和scalefactor coefficients,再用offset和scalefactor coefficients去补偿从加速度计中读取出来的原始数据,最后得到校准之后的数据。
2.2 特点
. offset补偿可以达到0.2g
. scalefactor补偿的范围在每个方向是从0.2到1.2
. 更新频率范围从20到100Hz
. 使用15KBcode和3KBdata内存
. 这库可以用于ARMCortex-M3 and Cortex-M4架构
2.3 加速度计校准示例
- /*******************Init phase ********************/
- // Setupdate period, 40 ms -> 25 Hz
- osx_MotionAC_Initialize(40);
- /***************************************************/
- Timer_OR_DataRate_Interrupt_Handler()
- {
- int16 raw_x, raw_y, raw_z;
- int16 cal_x, cal_y, cal_z;
- osx_MAC_CalQuality_t goodness;
- float sf[3][3]; int16 bias[3];
- //Get x,y,z in mg
- MEMS_Read_AccValue(&raw_x,&raw_y, &raw_z);
- //Update algorithm
- osx_MotionAC_Update(raw_x,raw_y, raw_z, timestamp_ms);
- //Get correction
- goodness =osx_MotionAC_GetCalParams(bias, sf);
- //Apply correction
- cal_x = (int16) ((raw_x -bias[0])* sf[0][0]);
- cal_y = (int16) ((raw_y -bias[1])* sf[1][1]);
- cal_z = (int16) ((raw_z -bias[2])* sf[2][2]);
- }
2.4 校准流程
按照下面的指示,先从位置1慢慢的旋转到位置4,再旋转到位置1。旋转过程中,尽快以一个平滑的路径和固定的速度。
也可以用6点校准方法,拿着设备稳定在6个不同的方向(X,Y, Z的正负方向)。