OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5822|回复: 16

沉了删帖沉了删帖沉了删帖沉了删帖沉了删帖

[复制链接]

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-5-10
在线时间
84 小时
发表于 2016-9-5 21:30:55 | 显示全部楼层 |阅读模式
本帖最后由 东尼菌 于 2020-4-8 11:00 编辑

删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖删帖
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-5-10
在线时间
84 小时
 楼主| 发表于 2016-9-5 21:31:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-5-10
在线时间
84 小时
 楼主| 发表于 2016-9-5 21:33:59 | 显示全部楼层
占楼留着更新
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-7-5
在线时间
24 小时
发表于 2016-9-6 13:53:32 | 显示全部楼层
:)
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-7-5
在线时间
24 小时
发表于 2016-9-6 13:54:46 | 显示全部楼层
#define Kp 0.8f                        // proportional gain governs rate of convergence to accelerometer/magnetometer
#define Ki 0.001f                       // integral gain governs rate of convergence of gyroscope biases
#define halfT 0.005f                   // half the sample period采样周期的一半

float q0 = 1, q1 = 0, q2 = 0, q3 = 0;    // quaternion elements representing the estimated orientation
float exInt = 0, eyInt = 0, ezInt = 0;    // scaled integral error




//定义系统的欧拉角
typedef struct
{
        float ROLL;
        float PITCH;
        float YAW;
}ANGLE;

ANGLE Q_ANGLE;




/*******************************************************************************
快速计算 1/Sqrt(x),源自雷神3的一段代码,神奇的0x5f3759df!比正常的代码快4倍        
*******************************************************************************/
float invSqrt(float x)
{
        float halfx = 0.5f * x;
        float y = x;
        long i = *(long*)&y;
        i = 0x5f3759df - (i>>1);
        y = *(float*)&i;
        y = y * (1.5f - (halfx * y * y));
        return y;
}


void IMUupdate1(float gx, float gy, float gz, float ax, float ay, float az)
{
        float norm;
//  float hx, hy, hz, bx, bz;
        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;
       


        if(ax*ay*az==0)
                return;
       
  norm = invSqrt(ax*ax + ay*ay + az*az);       //acc数据归一化
  ax = ax /norm;
  ay = ay / norm;
  az = az / norm;

  // estimated direction of gravity and flux (v and w)              估计重力方向和流量/变迁
  vx = 2*(q1q3 - q0q2);                                                                                                //四元素中xyz的表示
  vy = 2*(q0q1 + q2q3);
  vz = q0q0 - q1q1 - q2q2 + q3q3 ;
        OLED_ShowNum(0,50,q0q2,2,16);
  // error is sum of cross product between reference direction of fields and direction measured by sensors
  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;

  // adjusted gyroscope measurements
  gx = gx + Kp*ex + exInt;                                                                                                   //将误差PI后补偿到陀螺仪,即补偿零点漂移
  gy = gy + Kp*ey + eyInt;
  //gz = gz + Kp*ez+ ezInt;                                                                                           //这里的gz由于没有观测者进行矫正会产生漂移,表现出来的就是积分自增或自减
       
       
       
  //四元素的微分方程
  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 = invSqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);
  q0 = q0 / norm;
  q1 = q1 / norm;
  q2 = q2 / norm;
  q3 = q3 / norm;
       
        //四元数转化成欧拉角
  //Q_ANGLE.YAW =  0.002 * MPU6050_GYRO_LAST.Z*Gyro_Gain;  // yaw GYRO_I.Z;  atan2(2 * q1 * q2 + 2 * q0 * q3, -2 * q2*q2 - 2 * q3* q3+1)* 57.3;
        Q_ANGLE.YAW = atan2(2 * q1 * q2 + 2 * q0 * q3, -2 * q2*q2 - 2 * q3* q3+1)* 57.3;//yaw
        Q_ANGLE.PITCH = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; // pitch
  Q_ANGLE.ROLL = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // roll
       

       
}

;楼主,能看下我的互补拿错了吗?
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-5-10
在线时间
84 小时
 楼主| 发表于 2016-9-6 22:26:15 | 显示全部楼层
小爱1314 发表于 2016-9-6 13:54
#define Kp 0.8f                        // proportional gain governs rate of convergence to accelerom ...

不能,太长不看
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-7-5
在线时间
24 小时
发表于 2016-9-9 14:02:20 | 显示全部楼层
楼主的四轴帖呢?期待
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-5-10
在线时间
84 小时
 楼主| 发表于 2016-9-19 19:56:49 | 显示全部楼层
没想到居然才这么几个回复啊,看来群众都是娱乐至死的
回复 支持 反对

使用道具 举报

2

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2015-9-20
在线时间
147 小时
发表于 2016-9-20 13:43:17 | 显示全部楼层
吃瓜群众路过...........
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2016-5-6
在线时间
5 小时
发表于 2016-10-3 19:12:28 | 显示全部楼层
很不错,大学里随便弄能把飞机飞起来。其实我以前已经做过大四轴飞控了,在amobbs里面,呵呵,不过现在不做开源了,因为中国开源环境太差了,一个人开源,其他人就抄,抄无所谓,结果MB自己抄别人代码也来搞开源,不知道是什么个意思。网上那些STC15系列飞机的代码都能找到我在STC官网的影子,哎。。。  不过我现在的飞控不自吹的讲哈,能达到精灵3的水平了。
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-5-10
在线时间
84 小时
 楼主| 发表于 2016-10-4 01:15:04 | 显示全部楼层
hhdjz13813 发表于 2016-10-3 19:12
很不错,大学里随便弄能把飞机飞起来。其实我以前已经做过大四轴飞控了,在amobbs里面,呵呵,不过现在不做 ...

没想到还能得到大大的回复,您是西南那个是吧,我有看过一部分您的代码,吼吼,据说stc官网那个有您的功劳是不
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2016-1-17
在线时间
32 小时
发表于 2016-10-4 11:13:50 | 显示全部楼层
感谢楼主,最近也打算做四轴,现在先看看你们大神的心得,准备充足之后就下水
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2016-5-6
在线时间
5 小时
发表于 2016-10-4 13:50:35 | 显示全部楼层

‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭

本帖最后由 hhdjz13813 于 2016-10-5 22:54 编辑

‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭‭
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-5-10
在线时间
84 小时
 楼主| 发表于 2016-10-6 18:31:47 | 显示全部楼层

哈,您说了啥,这几天放假了在玩,没看这网呢
回复 支持 反对

使用道具 举报

bingolin 该用户已被删除
发表于 2016-12-8 17:05:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

13

主题

276

帖子

0

精华

高级会员

Rank: 4

积分
696
金钱
696
注册时间
2014-6-20
在线时间
146 小时
发表于 2017-2-16 12:21:00 | 显示全部楼层
看来没消息了,学校还没网?
回复 支持 反对

使用道具 举报

9

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2016-11-6
在线时间
38 小时
发表于 2017-2-23 18:01:12 | 显示全部楼层
好期待楼主的更新
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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