qwe2231695 发表于 2013-4-27 04:06:52

【捷联惯导】 有点小成就,四轴起飞指日可待。

本帖最后由 qwe2231695 于 2013-4-27 11:20 编辑

最近在写飞控程序,花了几天时间在坛里学习四元素和捷联惯导。

今天在stm32上写好了框架,坛里大侠的:捷联惯导心得帖子果然是有货的!移植好这个DMP fitter以后,仔细调了一下参数。

发现其实就是一个平衡滤波+PID+四元数的算法,短短30行的代码句句都是公式的精华。

写了一个简单的VB上位机,是以前本人做平衡车用剩的。发现效果比传说中的卡尔曼简单易用好调试。

图中绿色线是加速度测量曲线,在静止状态下做横滚测试,没有运动加速度,可以视为真实角度。可以发现:红色的滤波器输出曲线能反应出角度(贴合绿色线)

在后面部分,做了测试轴上的满量程运动加速度叠加,发现滤波器很好的过滤了运动加速度。

Andre.Gorz 发表于 2013-4-27 04:38:01

期待楼主给我们带来惊喜~ :)

430504 发表于 2013-4-27 09:11:07

楼主头像深深刺痛了我!

jmp2002911911 发表于 2013-4-27 10:48:50

如果是运动起来以后,有加速、转弯、机体震动,那时候再看看这效果怎么样

oldbreadman 发表于 2013-4-30 19:28:51

关注,留个名先.

hanshuyujifen 发表于 2013-4-30 20:42:46

430504 发表于 2013-4-27 09:11 static/image/common/back.gif
楼主头像深深刺痛了我!

理解了捷联惯导之后就不用分了。这东西有点高深,俺没看懂

济南电子爱好者 发表于 2013-5-1 10:36:15

楼主说的 DMP fitter是不是论坛里的 imu.c 这个算法??

qwe2231695 发表于 2013-5-1 11:32:22

济南电子爱好者 发表于 2013-5-1 10:36 static/image/common/back.gif
楼主说的 DMP fitter是不是论坛里的 imu.c 这个算法??

是的。就是imu.c

lologame 发表于 2013-5-4 08:00:45

qwe2231695 发表于 2013-5-1 11:32 static/image/common/back.gif
是的。就是imu.c

支持楼主,有个问题还望楼主指点迷津~

void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az)

这个函数的参数
gx gy gz, 是陀螺仪直接读出来的数据,还是转换成了实际角速度数据?
ax ay az,是加速度计直接读出来3个轴的数据吗?

初次接触四轴,希望大神点拨~~

windancerhxw 发表于 2013-5-6 21:23:22

关注下,以后应该能用到

tree666 发表于 2013-5-7 10:51:59

关注下。

cls9811 发表于 2013-5-19 17:34:20

你好!我在做自动跟踪天线,想了解下捷联惯导,有偿求助,我QQ 490912416 谢谢

rantingting 发表于 2013-5-24 11:47:01

这个运动加速度 加速度计能检测出来吗,不是只能检测重力加速度吗

qwe2231695 发表于 2013-5-24 12:25:35

rantingting 发表于 2013-5-24 11:47 static/image/common/back.gif
这个运动加速度 加速度计能检测出来吗,不是只能检测重力加速度吗

这个是MEMS三轴加速度计,不是重力加速度计。要是真的有纯粹的重力加速度计就好了。

rantingting 发表于 2013-5-24 13:05:20

qwe2231695 发表于 2013-5-24 12:25 static/image/common/back.gif
这个是MEMS三轴加速度计,不是重力加速度计。要是真的有纯粹的重力加速度计就好了。 ...

是我搞错了吗,现在的加速度计不是只能通过检测重力加速度吗,要不怎么能计算角度呢,还请帮忙解释下

qwe2231695 发表于 2013-5-24 13:18:08

rantingting 发表于 2013-5-24 13:05 static/image/common/back.gif
是我搞错了吗,现在的加速度计不是只能通过检测重力加速度吗,要不怎么能计算角度呢,还请帮忙解释下 ...

当物体静止时可以得到角度,因为测量轴上只有重力加速度的值。但是运动的时候,会有运动加速度叠加进去。所以就不完全可信了。就像你带着他坐电梯(或者坐赛车),电梯(赛车)启动和停止的时候度数不再是重力值(测量轴不完全重合的时候是重力加速度的分量),而是和电梯的运动有关了。

rantingting 发表于 2013-5-24 17:58:17

qwe2231695 发表于 2013-5-24 13:18 static/image/common/back.gif
当物体静止时可以得到角度,因为测量轴上只有重力加速度的值。但是运动的时候,会有运动加速度叠加进去。 ...

好的,学习恶劣,我需要再详细了解了解,一直还是认为只能检测到重力加速度

lidongxin 发表于 2013-6-3 14:43:08

qwe2231695 发表于 2013-5-24 13:18 static/image/common/back.gif
当物体静止时可以得到角度,因为测量轴上只有重力加速度的值。但是运动的时候,会有运动加速度叠加进去。 ...

非常正确。。。。。。。。

woshisangao 发表于 2013-6-6 20:18:32

一直对楼主表示关注

ngc501 发表于 2013-6-6 20:43:52

济南电子爱好者 发表于 2013-5-1 10:36 static/image/common/back.gif
楼主说的 DMP fitter是不是论坛里的 imu.c 这个算法??

弱弱的问一句,这个imu.c是?

灵魂重新 发表于 2013-6-30 10:47:28

好帖子总是要顶顶家收藏的

aki_studio 发表于 2013-6-30 11:17:30

楼主飞起来了吧?
imu.c代码是在哪个帖子呀?
9楼提的问题很有意思,我也很想知道

qwe2231695 发表于 2013-6-30 11:46:57

RE: 【捷联惯导】 有点小成就,四轴起飞指日可待。

aki_studio 发表于 2013-6-30 11:17 static/image/common/back.gif
楼主飞起来了吧?
imu.c代码是在哪个帖子呀?
9楼提的问题很有意思,我也很想知道 ...

飞起来了,屌丝回去学习自控原理去了。学好挑战MIT。

IMU.c 大致就是这个: gx单位为度秒, ax单位为牛米平方秒

void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az)
{
float qq0=0, qq1=0, qq2=0, qq3=0;
float norm;
float vx, vy, vz;// wx, wy, wz;
float ex, ey, ez;
float q0q0 = q0*q0;
float q0q1 = q0*q1;
float q0q2 = q0*q2;
//float q0q3 = q0*q3;
float q1q1 = q1*q1;
//float q1q2 = q1*q2;
float q1q3 = q1*q3;
float q2q2 = q2*q2;
float q2q3 = q2*q3;
float q3q3 = q3*q3;

halfT=(float)time; //得到采样时间
       
gx*=0.0174;gy*=0.0174;gz*=0.0174;//转换为弧度

// 单位化四元数 取模
norm = sqrtf(ax*ax + ay*ay + az*az);      
ax = ax /norm;
ay = ay / norm;
az = az / norm;
   // 估计方向的重力      
vx = 2*(q1q3 - q0q2);                                                                                               
vy = 2*(q0q1 + q2q3);
vz = q0q0 - q1q1 - q2q2 + q3q3 ;
// 误差和方向传感器测量参考方向之间的交叉乘积的总和
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;                                                                                          

qq0=q0;qq1=q1;qq2=q2;qq3=q3;

q0 = qq0 + (-qq1*gx - qq2*gy - qq3*gz)*halfT;
q1 = qq1 + (qq0*gx + qq2*gz - qq3*gy)*halfT;
q2 = qq2 + (qq0*gy - qq1*gz + qq3*gx)*halfT;
q3 = qq3 + (qq0*gz + qq1*gy - qq2*gx)*halfT;

//   // 整合四元数率和正常化                                          
//   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;

//四元数与欧拉角转换公式
Q_ANGLE.Pitch= asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3;
Q_ANGLE.Rool = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3;
Q_ANGLE.Yaw= atan2(2 * q2 * q1 + 2 * q0 * q3, -2 * q3 * q3 - 2 * q2* q2 + 1)* 57.3;
}

aki_studio 发表于 2013-6-30 14:48:03

多谢分享,mark了
我炸了2套桨之后,就停滞不前了,改天再来看{:lol:}

rantingting 发表于 2013-7-2 14:09:01

qwe2231695 发表于 2013-6-30 11:46 static/image/common/back.gif
飞起来了,屌丝回去学习自控原理去了。学好挑战MIT。

IMU.c 大致就是这个: gx单位为度秒, ax单位为牛 ...

这个源码,貌似在哪里看到过……

qwe2231695 发表于 2013-7-2 18:40:31

rantingting 发表于 2013-7-2 14:09 static/image/common/back.gif
这个源码,貌似在哪里看到过……

是的,哪里都有,平衡车,各种开源四轴。现在有升级版的了,还没有移植{:dizzy:}

rock1943 发表于 2013-7-4 11:48:07

qwe2231695 发表于 2013-6-30 11:46 static/image/common/back.gif
飞起来了,屌丝回去学习自控原理去了。学好挑战MIT。

IMU.c 大致就是这个: gx单位为度秒, ax单位为牛 ...

你这个算法,航向角是会漂移的啊。没有磁力计的话,单纯用加速度计校正陀螺,只能校正俯仰、滚转方向的陀螺漂移。因为加速度计所反映的只是俯仰、滚转角信息,并不包括航向角。

qwe2231695 发表于 2013-7-4 11:51:03

rock1943 发表于 2013-7-4 11:48 static/image/common/back.gif
你这个算法,航向角是会漂移的啊。没有磁力计的话,单纯用加速度计校正陀螺,只能校正俯仰、滚转方向的陀 ...

是的,我使用磁阻在外面有修正一次了。

封缘 发表于 2013-7-22 21:57:30

发现阿莫的帖子技术含量越来越高了

yiyexiaozhoudz 发表于 2013-7-26 12:25:46

有用,楼主好人啊

yat 发表于 2013-7-26 13:22:27

qwe2231695 发表于 2013-6-30 11:46 static/image/common/back.gif
飞起来了,屌丝回去学习自控原理去了。学好挑战MIT。

IMU.c 大致就是这个: gx单位为度秒, ax单位为牛 ...

markimu.c代码

小伙仔小明 发表于 2013-8-1 11:14:20

想问下楼主,为什么你滤波后的曲线会超前实际曲线呢?而且滤波后的角度有时居然比实际测的要大?

qwe2231695 发表于 2013-8-1 13:00:04

小伙仔小明 发表于 2013-8-1 11:14 static/image/common/back.gif
想问下楼主,为什么你滤波后的曲线会超前实际曲线呢?而且滤波后的角度有时居然比实际测的要大?

...

原因如下: 1,加速度开启了MPU6050传感器的低通滤波功能反应较慢。2,滤波参数整定没有达到最好,陀螺仪积分过冲。3,你后面那个框表示的两条线的差值,是由于一个轴加速度和角度之间存在三角函数关系。0度 ,90度的时候两条曲线可以吻合,在中间的时候,要经过sin-1计算才能吻合的。

小伙仔小明 发表于 2013-8-1 13:39:12

qwe2231695 发表于 2013-8-1 13:00 static/image/common/back.gif
原因如下: 1,加速度开启了MPU6050传感器的低通滤波功能反应较慢。2,滤波参数整定没有达到最好,陀螺仪 ...

嗯我也觉得是参数没整定好。。。这样的波形误差感觉很大。。。

lukefan2008 发表于 2013-8-7 01:45:24

qwe2231695 发表于 2013-7-2 18:40 static/image/common/back.gif
是的,哪里都有,平衡车,各种开源四轴。现在有升级版的了,还没有移植...

楼主,升级版的能不能给个链接或者介绍一下哈?

lpp111 发表于 2013-8-12 20:30:11

我也被头像雷到了……

xiefy21 发表于 2013-8-12 21:35:08

mark……
顶一个…

蓝色の理想 发表于 2013-9-3 19:53:45

楼主飞起来了 吗

qwe2231695 发表于 2013-9-3 21:36:08

蓝色の理想 发表于 2013-9-3 19:53 static/image/common/back.gif
楼主飞起来了 吗

飞腻了{:lol:}

yzaka 发表于 2013-9-4 16:45:48

mark一下

蓝色の理想 发表于 2013-9-4 23:16:52

qwe2231695 发表于 2013-9-3 21:36 static/image/common/back.gif
飞腻了

四轴 上面加个倒立摆呢,有没有试过?

磊磊映画 发表于 2013-9-24 10:30:29

高手,请教啊{:loveliness:}{:loveliness:}

-阿发- 发表于 2013-10-20 10:49:27

真心有用 标记了再说

xlw_tmu 发表于 2013-10-24 20:49:43

楼主,你好,我也用的是捷联惯导,滤出的波形效果也和你的差不多,但是控制依然滞后是什么原因呢

wenziheni 发表于 2013-11-6 20:45:33

好强悍。

onlyzore 发表于 2014-1-28 23:11:44

网上传的基本上都是IMU.C

babyhua 发表于 2014-1-29 10:57:01

markimu.c代码

茶亦爽 发表于 2014-1-31 14:51:59

多谢分享

williamzhang533 发表于 2014-2-19 21:40:28

qwe2231695 发表于 2013-6-30 11:46
飞起来了,屌丝回去学习自控原理去了。学好挑战MIT。

IMU.c 大致就是这个: gx单位为度秒, ax单位为牛 ...

楼主,为什么要把屏蔽掉的替换成这样.这两个不一样么??

qq0=q0;qq1=q1;qq2=q2;qq3=q3;

q0 = qq0 + (-qq1*gx - qq2*gy - qq3*gz)*halfT;
q1 = qq1 + (qq0*gx + qq2*gz - qq3*gy)*halfT;
q2 = qq2 + (qq0*gy - qq1*gz + qq3*gx)*halfT;
q3 = qq3 + (qq0*gz + qq1*gy - qq2*gx)*halfT;

//   // 整合四元数率和正常化                                          
//   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;

qwe2231695 发表于 2014-2-19 22:10:01

williamzhang533 发表于 2014-2-19 21:40
楼主,为什么要把屏蔽掉的替换成这样.这两个不一样么??

qq0=q0;qq1=q1;qq2=q2;qq3=q3;


结果是差不多的,运算差一步而已。两个都能用。

williamzhang533 发表于 2014-2-21 14:27:56

为什么我用楼主方法做出来的角度,和我用DMP(MPU6050传感芯片)做出来的, 角度值两个比较接近,就是正负相反.
楼主帮我看看哪里出了问题.谢谢!

/*******for angle cal************/
#define Kp 1.0f//2.0f                  // proportional gain governs rate of convergence to accelerometer/magnetometer
#define Ki 0.001f//0.005f                // integral gain governs rate of convergence of gyroscope biases
#define halfT 0.002f               // half the sample period
//float halfT;
//#define qu301073741824.0f
float q0=1.0f,q1=0.0f,q2=0.0f,q3=0.0f;
float exInt = 0, eyInt = 0, ezInt = 0;      // scaled integral error
float AcceRatio = 16384.0;                  //加速度计比例系数
float GyroRatio = 131.0;//16.4;//32.8;//                  //陀螺仪比例系数
void Get_Tiltangle(void)          //4ms 中断调用
{
        float norm;
      float vx, vy, vz;
      float ex, ey, ez;
//        if(MPU6050_is_DRY())
//        {          
             MPU6050_getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

               gyrox= (gx-mpuoffsetx)/GyroRatio;//*mpukx;                                                // gx单位为度秒, ax单位为牛米平方秒
         gyroy= (gy-mpuoffsety)/GyroRatio;//*mpuky;
         gyroz= (gz-mpuoffsetz)/GyroRatio;//*mpukz;
               accx= ax/AcceRatio;
         accy= ay/AcceRatio;
         accz= az/AcceRatio;
   
                gyrox*=0.0174;gyroy*=0.0174;gyroz*=0.0174;//转换为弧度

      // normalise the measurements单位化四元数 取模
      norm = sqrt(accx*accx + accy*accy + accz*accz);      
      accx = accx / norm;
      accy = accy / norm;
      accz = accz / norm;   
                  
                // estimated direction of gravity估计方向的重力
      vx = 2*(q1*q3 - q0*q2);
      vy = 2*(q0*q1 + q2*q3);
      vz = q0*q0 - q1*q1 - q2*q2 + q3*q3;

                // error is sum of cross product between reference direction of field and direction measured by sensor
      // 误差和方向传感器测量参考方向之间的交叉乘积的总和
                ex = (accy*vz - accz*vy);
      ey = (accz*vx - accx*vz);
      ez = (accx*vy - accy*vx);

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

      // adjusted gyroscope measurements
                // 调整后的陀螺仪测量
      gyrox = gyrox + Kp*ex + exInt;
      gyroy = gyroy + Kp*ey + eyInt;
      gyroz = gyroz + Kp*ez + ezInt;

                // integrate quaternion rate and normalise
                // 整合四元数率和正常化
      q0 = q0 + (-q1*gyrox - q2*gyroy - q3*gyroz)*halfT;
      q1 = q1 + (q0*gyrox + q2*gyroz - q3*gyroy)*halfT;
      q2 = q2 + (q0*gyroy - q1*gyroz + q3*gyrox)*halfT;
      q3 = q3 + (q0*gyroz + q1*gyroy - q2*gyrox)*halfT;

                // normalise quaternion
      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; // roll
               Yaw =         atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;
}

qwe2231695 发表于 2014-2-21 16:49:05

williamzhang533 发表于 2014-2-21 14:27
为什么我用楼主方法做出来的角度,和我用DMP(MPU6050传感芯片)做出来的, 角度值两个比较接近,就是正负相反.
...

很正常· 加个符号反过来就行了。也可以将传感器数据反过来,也可以把传感器焊背面{:lol:}

williamzhang533 发表于 2014-2-21 23:08:31

qwe2231695 发表于 2014-2-21 16:49
很正常· 加个符号反过来就行了。也可以将传感器数据反过来,也可以把传感器焊背面...

{:lol:} ,非常感谢。我知道,软件加个负号修正,控制板方向方过来安装,都可以解决问题。我只是奇怪怎么就反了呢!研究了很久,没整明白根源。{:handshake:}

qwe2231695 发表于 2014-2-22 00:14:34

williamzhang533 发表于 2014-2-21 23:08
,非常感谢。我知道,软件加个负号修正,控制板方向方过来安装,都可以解决问题。我只是奇怪怎么 ...

你把那段程序一个不漏读懂就知道啦,就是四元数坐标转换欧拉角的公式上,自由度很大。所以不要纠结。

williamzhang533 发表于 2014-2-22 19:53:32

今晚继续调试楼主的算法. 在桌面上做水平运动加速的时候,运动方向的倾角有+ -3度的波动误差. 水平运动时,运动方向的倾角应该是保持不变化才合理.
附上调试图:

绿色的是沿X轴运动加速,对应的PITCH有 上下3度波动. 红色是沿Y轴,对应ROLL角波动. 调整KI,KP,HalfT参数,都没效果.不知道楼主是怎么处理这种波动的.
还望指点,非常感谢!

qwe2231695 发表于 2014-2-22 20:19:37

williamzhang533 发表于 2014-2-22 19:53
今晚继续调试楼主的算法. 在桌面上做水平运动加速的时候,运动方向的倾角有+ -3度的波动误差. 水平运动时,运 ...

减小内部PI滤波的P,并且一定要保证陀螺仪数据的质量。

williamzhang533 发表于 2014-2-24 17:39:58

qwe2231695 发表于 2014-2-22 20:19
减小内部PI滤波的P,并且一定要保证陀螺仪数据的质量。

非常感谢!楼主的算法很棒,静态误差在0.02以内,动态误差已经减小到+-0.8了.

firstzys 发表于 2014-3-13 11:26:35

markimu.c代码

a457738242 发表于 2014-3-26 20:42:53

williamzhang533 发表于 2014-2-22 19:53
今晚继续调试楼主的算法. 在桌面上做水平运动加速的时候,运动方向的倾角有+ -3度的波动误差. 水平运动时,运 ...

熟悉的Labview 界面= =后来通过调整P I 参数把运动加速度的影响减小了?

xyq665513 发表于 2014-3-27 19:43:44

含金量很高的帖子,感谢,收走了{:smile:}

陶新成 发表于 2014-3-27 22:41:05

我特别喜欢航模,交流一下

agaoxingyu 发表于 2014-3-28 15:39:07

mark!以后慢慢研究

shuiyingzi5 发表于 2014-4-2 23:09:58

不错,学习了

DarrenXu 发表于 2014-4-18 21:44:15

厉害,我落后了很多啊

xuanfong1 发表于 2014-4-19 20:04:16

我是来学习的。顺便帮楼主顶

秀scut 发表于 2014-4-21 16:49:53

楼主有试过不用加速度校正陀螺仪数据,直接用陀螺仪数据去更新四元数?我试着把校正的代码注释了,和没注释的基本一致,开动电机不抖也不漂(过了好几分钟)。。。用的是MPU6050,我还把低通滤波都关了

jiang887786 发表于 2014-4-21 17:19:34

学习一下,虽然什么都不懂。纯顶!

danju 发表于 2014-4-25 21:44:37

学习,imu.c

xy-mcu 发表于 2014-5-8 00:47:44

看了一遍,没有看懂,先收藏

wei4350 发表于 2014-9-17 20:08:17

{:handshake:} 好贴,必须顶!

Puppey 发表于 2014-9-20 14:26:00

为什么我的加速度曲线上下波动很大,没楼主光滑。我也做了平均滤波了。
还有怎么看曲线响应的很好了呢?

tianzhiying 发表于 2014-11-26 12:02:00

halfT=(float)time; //得到采样时间
      
gx*=0.0174;gy*=0.0174;gz*=0.0174;//转换为弧度

请问楼主:为什么陀螺仪角度在这里要转换成弧度呢??

xgzn 发表于 2014-11-26 12:22:16

不明觉厉,顶!

sunnykai 发表于 2014-11-26 12:38:39

祝一切顺利。。。。

ゞ從此消失╭ァ 发表于 2015-4-6 16:03:50

搂住太厉害了,有思路了

natty0715 发表于 2015-4-6 23:09:18

马住关注一下,imu,楼主加油

chaojikoushuige 发表于 2015-4-17 08:21:10

期望自己的四轴早早飞起来

GHmcu 发表于 2015-4-22 21:48:17

值得学习,谢谢楼主。

正十七 发表于 2015-5-15 08:35:21

楼主的这个IMU算法我也在用,但有个疑问,6050出来的数据是直接进这个函数呢还是滤一下波(均值、卡尔曼之类的),我直接进这个函数,但效果不好

xiuhao 发表于 2015-5-21 10:21:56

williamzhang533 发表于 2014-2-24 17:39
非常感谢!楼主的算法很棒,静态误差在0.02以内,动态误差已经减小到+-0.8了.

...

你好 你是用imu.c的程序调的么?你是如何提高动态精度的?

梦幻之旅 发表于 2015-5-21 16:48:00

捷联导航,留个记号

zengmiao 发表于 2015-7-17 16:50:27

楼主真厉害,几天就能搞定!

destiny、 发表于 2015-9-2 09:37:02

楼主能不能传一份6050完整的代码,调了好几天始终有问题,谢谢了

hswkcg 发表于 2016-5-30 11:03:07

学习一下 !!!

SAILUO30 发表于 2016-11-24 14:31:58

好贴,学习,帮顶!!!

wilderujs 发表于 2019-1-31 11:14:10

有没有用mpu6050做惯性动捕的?
页: [1]
查看完整版本: 【捷联惯导】 有点小成就,四轴起飞指日可待。