四元数求角度和去重力分量,误差减少

This commit is contained in:
lmx
2025-11-18 18:47:05 +08:00
parent ad3ab64b72
commit 054ea8644a
3 changed files with 90 additions and 8 deletions

View File

@ -32,6 +32,7 @@ sensor_processing_task当中就进行了计算包括卡尔曼等在timer
# 11.13
代码主要文件夹apps\earphone\xtell_Sensor
- apps\earphone\xtell_Sensor\send_data.c xtell_task_create 函数,传感器计算程序逻辑开始位置,包括传感器读取数据的任务、蓝牙发送任务、速度距离计算任务
@ -63,3 +64,32 @@ sensor_processing_task当中就进行了计算包括卡尔曼等在timer
- 重复定位的数据?
- 静态时的角度误差?
定时器1的回调函数10ms调用一次**A**读取传感器数据放进buff
定时器2的回调函数5ms调用一次**B**读取buff的传感器数据去除重力分离的计算
- **数据没有对齐**A 的回调调用计数 > B 的回调调用计数
- **丢数据了**A 读取传感器数据的回调函数中打印了buff已满的log
- **重复定位**:移动后回到原先的位置,前后的计算得到的三轴角度相同
- **静态时的角度误差**1°左右
- 定时器2不进行重力分离计算只进行计数也仍然有数据没有对齐和丢数据的情况
将读取传感器数据、去除重力分量计算放到同一个任务下,同步进行
- 数据没有丢失,数据也对齐了
- 在小倾斜的坡面下,去除重力分量后的总的加速度,**小于0.1m/s^2**
- 在大倾斜的坡面下如旋转超过70°去除重力分量后的总的加速度在**0.4m/s^2上下**
- 貌似是角度越大,越接近方向锁,导致角度更容易漂移造错数据错误
采用四元数的方式做去除重力分量的计算:
- 将读取传感器数据、去除重力分量计算放到同一个任务下
- 在小倾斜的坡面下,去除重力分量后的总的加速度,低于**0.04m/s^2**
- 在大倾斜的坡面下如旋转超过70°去除重力分量后的总的加速度在**0.1m/s^2上下**
- 大倾斜角度的误差要靠磁力计来消除yaw无法通过加速度计来消除偏差