搜索
bottom↓
回复: 25

MPU6050姿态解算 后YAW轴角度不停向一个方向漂怎么处理

[复制链接]

出0入0汤圆

发表于 2016-5-30 15:33:43 | 显示全部楼层 |阅读模式
不使用电子罗盘 用附件中的姿态解算函数算出来的YAW角度一直向一个方向漂这个问题有谁遇到过

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-5-30 18:00:39 | 显示全部楼层
你的陀螺仪 Z 方向没有校准零漂吧。

出0入0汤圆

发表于 2016-5-31 12:41:10 | 显示全部楼层
请问你的问题解决了吗?

出0入0汤圆

 楼主| 发表于 2016-5-31 17:04:23 | 显示全部楼层
没有解决啊有没人帮帮我

出0入0汤圆

发表于 2016-5-31 19:12:49 | 显示全部楼层
你吧6050采样的原始数据画个图贴出来看看。
我猜就是你的零点矫正问题。
X,Y 方向因为有重力可以融合矫正,
Z 方向没有传感器可以矫正。
你本来考角速度信息就不可能得到没有零漂的 AHRS。
任何角速度的误差经过积分就会累积扩大,Z 方向没有
修正的传感器,有漂移很正常。

当然你修正过零点会好很多。

出0入0汤圆

 楼主| 发表于 2016-6-1 15:27:40 | 显示全部楼层
用dmp得到四元数 再算出姿态也在漂

出0入0汤圆

发表于 2016-6-1 15:30:35 | 显示全部楼层
YAW需要用地磁或者GPS来修正

出0入0汤圆

发表于 2016-6-8 11:05:03 | 显示全部楼层
兄弟,你的问题解决了没,yaw轴在没有地磁的情况下,都会漂移的。静态漂移的小。动态情况漂移大,我的也是这种情况,还有想请教一个问题,不知你是否遇到yaw实际旋转的角度和解算出来的角度不一致,必要我旋转Z轴实际从0开始旋转90度,但是yaw解算出来的角度只是变化60度左右,你有没遇到这种情况

出0入0汤圆

 楼主| 发表于 2016-6-8 15:42:30 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-8 11:05
兄弟,你的问题解决了没,yaw轴在没有地磁的情况下,都会漂移的。静态漂移的小。动态情况漂移大,我的也是 ...

你是做什么产品

出0入0汤圆

发表于 2016-6-8 15:58:21 来自手机 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-8 11:05
兄弟,你的问题解决了没,yaw轴在没有地磁的情况下,都会漂移的。静态漂移的小。动态情况漂移大,我的也是 ...

你的陀螺仪初始化的时候是水平放置还是任意的?是否放置方向会有影响?

出0入0汤圆

发表于 2016-6-8 16:07:46 | 显示全部楼层
guzhen24 发表于 2016-6-8 15:58
你的陀螺仪初始化的时候是水平放置还是任意的?是否放置方向会有影响? ...

你好 我的传感器水平放置,然后手动旋转Z轴90度,然后观察解算的yaw角只有差不多变化只有60度左右,代码是参照匿名的四元数解算,不知道问题出在哪里
以下是我的参照代码

#include<math.h>
#include "stm32f10x.h"
//---------------------------------------------------------------------------------------------------
// 变量定义

#define Kp 2.0f                        // 比例增益支配率收敛到加速度计/磁强计
#define Ki 0.001f                // 积分增益支配率的陀螺仪偏见的衔接
#define halfT 0.001f                // 采样周期的一半

float q0 = 1, q1 = 0, q2 = 0, q3 = 0;          // 四元数的元素,代表估计方向
float exInt = 0, eyInt = 0, ezInt = 0;        // 按比例缩小积分误差

float Yaw,Pitch,Roll;  //偏航角,俯仰角,翻滚角


void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az)
{
        float norm;
        float vx, vy, vz;
        float ex, ey, ez;  

        // 测量正常化
        norm = sqrt(ax*ax + ay*ay + az*az);      
        ax = ax / norm;                   //单位化
        ay = ay / norm;
        az = az / norm;      

        // 估计方向的重力
        vx = 2*(q1*q3 - q0*q2);
        vy = 2*(q0*q1 + q2*q3);
        vz = q0*q0 - q1*q1 - q2*q2 + q3*q3;

        // 错误的领域和方向传感器测量参考方向之间的交叉乘积的总和
        ex = (ay*vz - az*vy);
        ey = (az*vx - ax*vz);
        ez = (ax*vy - ay*vx);

        // 积分误差比例积分增益
        exInt = exInt + ex*Ki;
        eyInt = eyInt + ey*Ki;
        ezInt = ezInt + ez*Ki;

        // 调整后的陀螺仪测量
        gx = gx + Kp*ex + exInt;
        gy = gy + Kp*ey + eyInt;
        gz = gz + Kp*ez + ezInt;

        // 整合四元数率和正常化
        q0 = q0 + (-q1*gx - q2*gy - q3*gz)*halfT;
        q1 = q1 + (q0*gx + q2*gz - q3*gy)*halfT;
        q2 = q2 + (q0*gy - q1*gz + q3*gx)*halfT;
        q3 = q3 + (q0*gz + q1*gy - q2*gx)*halfT;  

        // 正常化四元
        norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);
        q0 = q0 / norm;
        q1 = q1 / norm;
        q2 = q2 / norm;
        q3 = q3 / norm;

        Pitch  = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; // pitch ,转换为度数
        Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // rollv
        Yaw = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;               
}

出0入0汤圆

发表于 2016-6-8 16:48:35 来自手机 | 显示全部楼层
lz 可以先对测得的数据进行统计处理,得到漂移的常值项和随机项。分析一下,是常值项为主变化量,还是随机项为主变化量。若主变化量为常值项,可以用加热入相反角速率方法补偿掉。若主变化量是随机项,一般是陀螺性能较差导致的,没有什么方法可以补偿。

出0入0汤圆

发表于 2016-6-8 19:36:34 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-8 16:07
你好 我的传感器水平放置,然后手动旋转Z轴90度,然后观察解算的yaw角只有差不多变化只有60度左右,代码 ...

代码我还没有看,你如果正反方向转都是差那么多度吗?
如果一个多些一个小些那就是零点漂移。因为这个误差
会累积所以产生客观的影响也正常。

出0入0汤圆

发表于 2016-6-8 19:41:49 | 显示全部楼层
helislayer 发表于 2016-6-8 19:36
代码我还没有看,你如果正反方向转都是差那么多度吗?
如果一个多些一个小些那就是零点漂移。因为这个误 ...

哈,兄弟帮忙看一下,漂移是存在,但是我这个还有一个主要问题就是不管我水平放置还是垂直放置,人为转动传感器的时候,yaw角解算出来的角度和实际转动的角度不一致,偏差非常大!就比如水平放置的时候我手动转动传感器偏航方向90度左右,不管我正转还是反转。yaw解算的角度的转动的变化最多只有60度

出0入0汤圆

发表于 2016-6-8 19:45:08 | 显示全部楼层

自己动手研究一下云台

出0入0汤圆

发表于 2016-6-8 22:04:45 来自手机 | 显示全部楼层
换个陀螺仪试试,你的陀螺仪设置对不?输出速率,量程选择之类的

出0入0汤圆

发表于 2016-6-12 22:21:41 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-8 16:07
你好 我的传感器水平放置,然后手动旋转Z轴90度,然后观察解算的yaw角只有差不多变化只有60度左右,代码 ...

之前用AlienTek的开发板,上面有MPU6500的例程,用下来没什么问题,当时没发现有漂移

之后淘宝上买了mpu9250的模块连其他的板子,程序根据9250改成了SPI的通信模式,也发现有yaw漂移的问题,尤其是当角度90°或者180°的时候。
大多数时间初始化一开始就开始漂了。

但我发现有些时候会很正常。感觉是芯片初始化的问题,试了很多次,代码也改过还是有问题,但是大概10次里面会有一次会是正常的,很奇怪。
后来怀疑可能是买的模块有问题,想找个时间买个新的来试试。

出0入0汤圆

发表于 2016-6-13 09:11:25 | 显示全部楼层
helislayer 发表于 2016-5-31 19:12
你吧6050采样的原始数据画个图贴出来看看。
我猜就是你的零点矫正问题。
X,Y 方向因为有重力可以融合矫正 ...

GPS速度不是可以纠正yaw吗?

出0入0汤圆

发表于 2016-6-13 12:29:48 | 显示全部楼层
wkllq1314 发表于 2016-6-13 09:11
GPS速度不是可以纠正yaw吗?

楼主没有说有 GPS。就是 MPU6050。
这个真的要看原始数据,光看这个程序没有用的。
你要先看出原始数据有没有yaw 漂移然后才看
后面。

你也可以模拟一个 MPU6050 数据输出给你的
姿态运算验证一下输出合理不。

出0入0汤圆

发表于 2016-6-13 13:44:25 来自手机 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-8 16:07
你好 我的传感器水平放置,然后手动旋转Z轴90度,然后观察解算的yaw角只有差不多变化只有60度左右,代码 ...

是否陀螺比例系数代错了?

出0入0汤圆

发表于 2016-6-13 15:14:29 | 显示全部楼层
wiser803 发表于 2016-6-13 13:44
是否陀螺比例系数代错了?

搞清楚了,是积分时间出错导致的,谢啦

出0入0汤圆

发表于 2016-6-13 19:49:32 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-13 15:14
搞清楚了,是积分时间出错导致的,谢啦

搞清楚就好,现在多少秒钟漂移一度?

出0入0汤圆

发表于 2016-7-20 14:05:40 | 显示全部楼层
没纠正,主要是陀螺的bias影响,会造成积分飘逸的

出0入0汤圆

发表于 2016-7-22 08:34:09 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-8 16:07
你好 我的传感器水平放置,然后手动旋转Z轴90度,然后观察解算的yaw角只有差不多变化只有60度左右,代码 ...

不知道你的问题解决了没有,看你的代码是自己采集了角加速度来计算四元数的,
我之前看到的例程里是通过这个芯片内部的dmp来进行采集和计算,直接输出四元数
因为这个计算的误差受采样频率影响挺大的,不知道你程序的采样频率是否能达到要求

出0入0汤圆

发表于 2017-10-5 15:49:32 | 显示全部楼层
linlonghuazbdx 发表于 2016-6-8 16:07
你好 我的传感器水平放置,然后手动旋转Z轴90度,然后观察解算的yaw角只有差不多变化只有60度左右,代码 ...

将Gyro_Gr的值乘以1.5就可以是90度了

出0入0汤圆

发表于 2017-10-5 15:50:39 | 显示全部楼层
楼主啊,你有没有解决yaw的零飘啊,我加入了磁力计还不如不加啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 21:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表