NFYG2022 发表于 2024-4-2 20:12:44

陀螺仪正转反转角度不同

陀螺仪正转90°姿态解算也得到90°,但反转90°却算出只转了~70°。
测的是yaw偏航角,roll和pitch通过融合加速度计(MAHONY算法)可以比较精确,yaw则会漂移。
但是短时间内正反转90°却出现20°的回程差,已经超出yaw的自然漂移太多了。
有大佬知道是什么原因吗?

qwe2231695 发表于 2024-4-2 22:42:46

当前姿态和水平误差太多,导致陀螺仪Z轴更新到其他轴去了。 让你的水平角度恢复到0度,再旋转看下。

NFYG2022 发表于 2024-4-3 08:13:48

qwe2231695 发表于 2024-4-2 22:42
当前姿态和水平误差太多,导致陀螺仪Z轴更新到其他轴去了。 让你的水平角度恢复到0度,再旋转看下。 ...
(引用自2楼)

感觉不是这个原因,我用四元数解算的,roll和pitch基本都是水平,偏差不到1°

天下乌鸦一般黑 发表于 2024-4-3 08:33:55

qwe2231695 发表于 2024-4-2 22:42
当前姿态和水平误差太多,导致陀螺仪Z轴更新到其他轴去了。 让你的水平角度恢复到0度,再旋转看下。 ...
(引用自2楼)

又见大佬。有个问题,能提供个思路么。
六轴传感器放置于会动的设备上,姿态解算时候除了重力加速度,还有其他有害加速度,方向不确定,有什么办法能降低这个有害加速度的影响么,现在它影响我俯仰角和横滚角了。。。

智涅 发表于 2024-4-3 08:34:58

先不用四元素不用姿态,直接测陀螺仪的三个轴角速度,看看偏差大不大(绕x轴顺时钟转x度,逆时针转x度,看gyro_X积分偏差,以此类推)。

qwe2231695 发表于 2024-4-3 10:03:53

天下乌鸦一般黑 发表于 2024-4-3 08:33
又见大佬。有个问题,能提供个思路么。
六轴传感器放置于会动的设备上,姿态解算时候除了重力加速度,还 ...
(引用自4楼)

如果一直有有害加速度就很麻烦,无人机和云台上我们的算法都是检测加速度计模长,大于1就暂时不能使用重力矢量。

可以考虑使用磁场矢量,在上海地区是一个北-6度(磁偏角)偏下45度(磁倾角)的矢量。

NFYG2022 发表于 2024-4-3 10:57:20

好吧,找出原因了,用SPI读取寄存器时每次交换16bit数据,真正有用的是LSB 8bit数据(即寄存器的数据),但高8bit数据不一定全部为0【连续读取who am i寄存器发现返回值居然偶尔会跳变!!】
因此不能把SPI收到的16bit数据直接拿来用,要先用按位与把高8bit强制置零,或转为uint8_t强制丢弃才行。

天下乌鸦一般黑 发表于 2024-4-3 17:22:45

qwe2231695 发表于 2024-4-3 10:03
如果一直有有害加速度就很麻烦,无人机和云台上我们的算法都是检测加速度计模长,大于1就暂时不能使用重 ...
(引用自6楼)

感谢啊,我试试这个思路。

NFYG2022 发表于 2024-4-3 22:28:18

天下乌鸦一般黑 发表于 2024-4-3 17:22
感谢啊,我试试这个思路。
(引用自8楼)

我看simpleBGC的代码,里面关于AHRS姿态解算是给加速度修正的Kp,Ki乘1个可信度因子(0~1之间),可信度因子是根据测得加速度模长和真实重力加速度模长地差算出来的
页: [1]
查看完整版本: 陀螺仪正转反转角度不同