打印

[小应用]GD32F103+MPU9150 四轴飞行器第一步:9DOF姿态融合

[复制链接]
楼主: zkcaptain
手机看帖
扫描二维码
随时随地手机跟帖
141
标记,对飞行器很感兴趣,但是自己做不了飞行员,只能努力当个驾驶员

使用特权

评论回复
142
ZZ4903| | 2014-1-11 21:33 | 只看该作者
楼主作的很棒, 我对9150也很感兴趣, 楼主的代码得我帮助很大, 非常感谢.楼主可否开源一下电路图, 对照电路图看代码会更容易些. 再次感谢搂主.

使用特权

评论回复
143
duckduckgo| | 2014-1-13 10:14 | 只看该作者
楼主,你的资料很详细,代码写得非常清晰,谢了!!

使用特权

评论回复
144
zkcaptain|  楼主 | 2014-1-13 10:34 | 只看该作者
ZZ4903 发表于 2014-1-11 21:33
楼主作的很棒, 我对9150也很感兴趣, 楼主的代码得我帮助很大, 非常感谢.楼主可否开源一下电路图, 对照电路 ...

这一版的电路图我就不发了,没什么东西,就1个I2C,1个串口,1个灯而已,下一版再说

这一版:
PB11:SDA
PB10:SCL
TX:PA2
RX:PA3

使用特权

评论回复
145
qfmy| | 2014-1-13 19:36 | 只看该作者
小白正在学习中,谢楼主分享!

使用特权

评论回复
146
ZZ4903| | 2014-1-14 21:02 | 只看该作者
感谢楼主的回复,因为我是个初学者,对9150只是一知半解,我想问的是:例程中9150是否只用了I2C的两引脚,其他引脚如INT、AD0、FSYNC等都没接到CPU上?

使用特权

评论回复
147
zkcaptain|  楼主 | 2014-1-15 11:18 | 只看该作者
ZZ4903 发表于 2014-1-14 21:02
感谢楼主的回复,因为我是个初学者,对9150只是一知半解,我想问的是:例程中9150是否只用了I2C的两引脚, ...

只用了I2C,AD0我直接接的地,其他的脚都引出来了,想用可以直接飞线

使用特权

评论回复
148
ZZ4903| | 2014-1-15 13:21 | 只看该作者
谢谢楼主!

使用特权

评论回复
149
zhengxingzu| | 2014-1-19 19:42 | 只看该作者
好强大的作品

使用特权

评论回复
150
fangxingyi| | 2014-1-19 19:58 | 只看该作者
是从蝴蝶系列转过来了?

使用特权

评论回复
151
baoliguo| | 2014-1-23 15:30 | 只看该作者
你好,lz,我在调void init_quaternion(void)这个函数时,读取dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors, &more);进不了加速计的开启状态。我使用的版本就是你的旧版本,就是GD32F103CB IMU.rar,在void init_quaternion(void)之前的都通过了。

使用特权

评论回复
152
zkcaptain|  楼主 | 2014-1-23 16:43 | 只看该作者
本帖最后由 zkcaptain 于 2014-1-23 16:49 编辑
baoliguo 发表于 2014-1-23 15:30
你好,lz,我在调void init_quaternion(void)这个函数时,读取dmp_read_fifo(gyro, accel, quat, &sensor_t ...

“进不了加速计的开启状态”是什么意思?debug一下看哪地方没过,新版本我测试过,应该没问题的

旧版本的话,我旁边有注释://循环20次是因为第一次执行dmp_read_fifo时,无法进入if(sensors & INV_XYZ_ACCEL),需要多循环几次

难道你的意思是执行完dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors, &more);以后不会进入if(sensors & INV_XYZ_ACCEL)里面的代码?


使用特权

评论回复
153
baoliguo| | 2014-2-9 14:04 | 只看该作者
最近我调程序有一些进展,使用dmp,当使用selftest程序后,校准的加速剂的值为:-17600 26204 -17920,陀螺仪的:-5202 -32051 18407
后来进入到初始化四元数的函数中,经过20次读,读到两组加速剂的值:6 -680 -7176;28 -676 -7119
我想问楼主,这个值可以吗?这个值显示我的dmp工作正常吗?

使用特权

评论回复
154
zkcaptain|  楼主 | 2014-2-10 13:47 | 只看该作者
baoliguo 发表于 2014-2-9 14:04
最近我调程序有一些进展,使用dmp,当使用selftest程序后,校准的加速剂的值为:-17600 26204 -17920,陀螺 ...

如果加了自校准功能,并且还是用DMP读出来的.

那么加速度计在水平放置状态下,正负4g的测量范围内,其理论值应该是0 0 8192;
以此类推加速度计在水平放置状态下,正负8g的测量范围内,其理论值应该是0 0 4096;

陀螺仪在静止不动的状态下,其理论值应该是0 0 0

使用特权

评论回复
155
baoliguo| | 2014-2-10 14:12 | 只看该作者
zkcaptain 发表于 2014-2-10 13:47
如果加了自校准功能,并且还是用DMP读出来的.

那么加速度计在水平放置状态下,正负4g的测量范围内,其理 ...

按照正负4g的量程,加了自校准功能,并且还是用dmp读出的两组加速剂数据,6 -680 -7176;28 -676 -7119。这数据与标准数据比较发现,x轴差的不多,但y,z轴差距很大。附加说明一下,没有开启磁传感器。我还想问,是否可以修准接近到理论值?

使用特权

评论回复
156
zkcaptain|  楼主 | 2014-2-10 15:28 | 只看该作者
baoliguo 发表于 2014-2-10 14:12
按照正负4g的量程,加了自校准功能,并且还是用dmp读出的两组加速剂数据,6 -680 -7176;28 -676 -7119。 ...

跟磁力计没什么关系,修正是可以修正的,用零漂校准(水平静止时的读数偏差)和零点校准(同一个轴正负1g的读数的绝对值是否相等)。

DMP不是很好用,之前我用的dmp,后来还是自己弄了。

使用特权

评论回复
157
wuzhiliang1234| | 2014-2-11 18:28 | 只看该作者
楼主,我使用你提供的方法使用dmp库,读出的四元数经过计算得出欧拉角。我将mpu6050模块在桌子上放平,然后慢慢抬起(只动pitch),在pitch角大于80°时,就会导致yaw和roll角度非常不准确。请问你知道是什么原因吗?怎么能解决这个问题?

使用特权

评论回复
158
zkcaptain|  楼主 | 2014-2-12 09:13 | 只看该作者
本帖最后由 zkcaptain 于 2014-2-12 09:15 编辑
wuzhiliang1234 发表于 2014-2-11 18:28
楼主,我使用你提供的方法使用dmp库,读出的四元数经过计算得出欧拉角。我将mpu6050模块在桌子上放平,然后 ...

当pitch等于正负90度时,会出现欧拉角的奇异点,这个奇异点是欧拉角本身的缺陷造成的,有个名词叫什么来着?万向节死锁?也就是说用欧拉角来控制四轴,如果不在代码上做全角度欧拉角处理,那么就不能使用欧拉角使四轴进行全姿态飞行。我主楼帖子里有说,至于你说pitch=80度就会出现这个现象是因为加速度计没校准,校准以后会在pitch=90度附近出现这种情况

一般飞行时,pitch最多也就是个正负20-30多度左右,会在pitch和roll上做角度限制,不然四轴容易失控。我没飞过,只是猜想。

使用特权

评论回复
159
wuzhiliang1234| | 2014-2-12 10:28 | 只看该作者
本帖最后由 wuzhiliang1234 于 2014-2-12 10:30 编辑


我用的mpu6050没有磁力计,以下是我向上抬起mpu6050,理想的结果是只有pitch从0°~90°增长,但是在pitch超过80°后,yaw和roll就会有很大的增量。我的陀螺仪和加速度计都经过    run_self_test();成功校准过的。还是不行,结果在pitch从80°到90°变化时yaw,pitch,roll角度都不能使用,以上是我的截图:

使用特权

评论回复
160
zkcaptain|  楼主 | 2014-2-12 14:00 | 只看该作者
本帖最后由 zkcaptain 于 2014-2-12 14:05 编辑
wuzhiliang1234 发表于 2014-2-12 10:28
我用的mpu6050没有磁力计,以下是我向上抬起mpu6050,理想的结果是只有pitch从0°~90°增长,但是在pitch ...

上面我回复过你了啊,这是欧拉角的奇异点,本来就会出现你说这个的情况,除非做过全姿态欧拉角的处理,不然谁都会有这种情况发生,正常现象,你百度一下“万向节死锁”或者“欧拉角奇异点”

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
wuzhiliang1234 + 1 赞一个!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则