【发布时间】:2013-10-26 12:46:48
【问题描述】:
我尝试让 GY-521 (MPU 6050) 的 Z 角旋转,但如果我不移动传感器,角度也会静态上升。有没有办法“过滤”他对我的情况正确的角度?
代码:
float accel_z = accel_t_gyro.value.z_accel;
float accel_angle_z = 0;
float gyro_angle_z = gyro_z*dt + get_last_z_angle();
float unfiltered_gyro_angle_z = gyro_z*dt + get_last_gyro_z_angle();
float alpha = 0.96;
float angle_z = alpha*gyro_angle_z + (1.0 - alpha)*accel_angle_z;
传感器不移动时输出:
x = x-旋转角度 z = z-roatation- 天使
x z
8.37 4.24
8.35 4.22
8.33 4.21
8.32 4.19
8.31 4.18
8.29 4.17
8.28 4.15
8.26 4.14
8.25 4.12
8.23 4.12
8.22 4.10
8.21 4.09
8.19 4.07
8.18 4.05
【问题讨论】:
-
看起来你已经有了一个低通滤波器——也许你需要增加
alpha的值来获得更多的平滑? -
为我的问题找到了解决方案。由于没有重力将陀螺仪保持在正确的位置,因此无法读取 z 轴上的旋转角度变化;)
标签: c++ arduino sensors gyroscope i2c