[其他] Open.MEMS扩展算法库介绍(1) 【ST工程师文章】

nmg   2017-6-26 13:15 楼主
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 加速度计校准示例
  1. /*******************Init phase ********************/
  2. // Setupdate period, 40 ms -> 25 Hz
  3. osx_MotionAC_Initialize(40);
  4. /***************************************************/
  5. Timer_OR_DataRate_Interrupt_Handler()
  6. {
  7.                 int16 raw_x, raw_y, raw_z;
  8.                 int16 cal_x, cal_y, cal_z;
  9.                 osx_MAC_CalQuality_t goodness;
  10.                 float sf[3][3]; int16 bias[3];
  11.                 //Get x,y,z in mg
  12.                 MEMS_Read_AccValue(&raw_x,&raw_y, &raw_z);
  13.                 //Update algorithm
  14.                 osx_MotionAC_Update(raw_x,raw_y, raw_z, timestamp_ms);
  15.                 //Get correction
  16.                 goodness =osx_MotionAC_GetCalParams(bias, sf);
  17.                 //Apply correction
  18.                 cal_x = (int16) ((raw_x -bias[0])* sf[0][0]);
  19.                 cal_y = (int16) ((raw_y -bias[1])* sf[1][1]);
  20.                 cal_z = (int16) ((raw_z -bias[2])* sf[2][2]);
  21. }


2.4 校准流程
按照下面的指示,先从位置1慢慢的旋转到位置4,再旋转到位置1。旋转过程中,尽快以一个平滑的路径和固定的速度。

0?wx_fmt=png


也可以用6点校准方法,拿着设备稳定在6个不同的方向(X,Y, Z的正负方向)。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复