飞控开发
长期更新,有单纯记录飞控的开发历程,也有对飞控的开源
文号D927399
3456
0
收藏
编辑文章

1.0 前言

关键词

惯性导航

这是本专栏的第0个文章!本文我将写点自己的想法,讨论短时间惯性导航在业余探空火箭中的应用,并给出阅读本专栏的所需知识。

E3F25F8C50810C7D21AC17EECC9C48B8.jpg

首先,20世纪最伟大的魔法师,学园都市的缔造者,银之星,启示录之兽,我的妻子,亚雷斯塔·克劳利镇楼!

其次,我和 辰星梦人 正在做一个探空火箭项目,这个项目中,他主要负责发动机,我主要负责航电。由于一些原因,我们的项目推迟了……不过肯定会在年内搞定的。这个探空火箭参数不会很出众,它会当做一个测试平台使用。这个惯性导航系统将在其上测试。

再次,我想声明的是,本专栏仅是开发记录,现在已经开发出第0代,差强人意,但是没经过实验,而且我们也想进一步迭代,所以更新不会很快……不过放心,一定会长期更新。这个项目完全开源,因为我们也希望它能够被更多人使用,这样我们能获得数据进一步改进,不过以后可能会低价出售开源的飞控。

最后,我想说下,做惯导是我高中就开始的想法,当时我甚至不知道何为惯性导航,就是觉得可以靠一个传感器完全不依赖外界测得火箭的位置。当时不出意料失败了。后面才慢慢学习了解了惯性导航,发现是个大坑……现在能搞出来个廉价的惯导,我还是挺开心的。不过各位放心,这个系列前期一直使用官方mpl库,不会有太难的数学或者算法。后期的话再说吧。


这里1.0而不是0.0,是因为这是第一代惯导,第0代已经开发成功,不过有局限性所以不放上来了。

好了,接下来我们讨论下短时间惯性导航在业余探空火箭中的应用价值吧。

[修改于 1年1个月前 - 2025/09/26 11:08:23]

5
tmn_A 作者
1年1个月前 修改于 1年1个月前 IP:广东
D927406

惯性导航,是什么呢?定义的话大家都能搜到,我就说说自己的理解。惯性导航是利用加速度和角速度数据(为了稳定,也常会融合磁场数据),在已知初始姿态,速度,位置的条件下,通过对每一段微小的时间,获取微元的姿态、速度、位置变化,并积分,以得到当前的姿态、速度、位置的导航方式。这就像解物理题,只不过不是人来解,而是计算机。


惯性导航拥有了独特的优缺点。


优点是,在已知路径中每点重力加速度和磁感应强度的条件下,他不依赖于外界。这对于军事、航天等领域非常重要,对业余探空火箭来说也不例外。对于业余探空火箭,航电必然要求包含导航系统。无线电遥测等方式对业余爱好者来说太困难了,卫星定位系统又存在高速锁定问题,视觉定位对探空火箭来说不现实,气压定高又会受到复杂的流体力学效应影响且无法获得水平位移。而且几乎所有其他的导航方式都无法像惯性导航那样获取箭体姿态。


缺点是,惯性导航的算法必然包含着积分过程(程序实现上一般为求和),这会导致误差的快速积累。惯性导航的误差模型是包含时间三次方项的,这注定了惯性导航的误差会快速累积。而且,对于业余探空火箭,成本的限制让我们不能使用高精度惯性器件,这进一步加重了这个问题。

tmn_A作者
1年1个月前 IP:广东
D927418

然而,业余探空火箭基本只需要在上升段运用导航,即便按照飞跃卡门线计算,也只需要143秒,这是相当短的时间。在短时间内,惯性导航的误差累积是可以接受的。(误差模型我一会儿会发别人的文章链接,有点难,但是近期用不上)

所以这里我们确定一下以后判断导航系统能不能用的标准——两分钟内的误差。对大多数业余探空火箭,这是绰绰有余的了。

不过需要强调一点,惯性导航系统不是航电,不是飞控,它只是其中一个板块,肯定要搭配不同导航系统使用。

所以我们可以得出结论了,惯性导航系统在业余探空火箭的航电开发中有重要价值,可以作为可选的项目。

这里再说下目前的状况。由于大家普遍使用mpu6050/mpu9250等等低成本惯性器件,不校准并使用一些算法的话,漂移量是很大的,一般都只是用于获取姿态,而且偏航角还不准。目前我们开发的第零代可以做到获取相对准确的姿态,和短时间内的相对准确的高度。偏航角的问题我们暂时也没解决,这也导致了水平方向位移不准确,目前怀疑是硬件问题,也正在迭代。以后我们会直接开始记录第一代的开发。

tmn_A作者
1年1个月前 修改于 1年1个月前 IP:广东
D927436

接下来说下需要的基础知识。由于我也不知道以后会用多少,这里先把最基础的写上,以后要用再说。

1.高数和线代,不用多说了。不用多好,会基本的微积分运算,矩阵运算,二次型就行。

2.stm32。这个我要说下,我们选择stm32f103rct6单片机。不选择arduino的原因一是个人不熟悉,二是stm32的相关例程更多,三是直接用标准库或者hal的话,可以操作非常底层的代码,这对这个项目有好处。而用这个型号是因为他flash足够大,本程序大概64KB多一点,stm32f103c8t6肯定不够用了,这个型号单片机flash256KB。而且,开发板也只要20元。正点原子用的是stm32f407,但是太贵了。若以往只用过arduino,推荐看b站江协科技的课程。本项目使用标准库,和该课程一致。

3.惯性导航的理论,这个对本程序不重要,完全可以不用看,但是好奇的话可以看《惯性导航》这本书,前排提示,难!不过短期内最多出现其中三个公式,一二是姿态矩阵的欧拉角和四元数表示方式,三是速度更新算法。

不过呢,如果没有最后自己二次开发的需求的话,以上知识都不是必要的,我会在必要的时候讲清楚,不过有这个知识背景那还是看起来轻松很多的

tmn_A作者
1年1个月前 修改于 1年1个月前 IP:广东
D927533

OK下集预告。mpl库的移植。DMP是mpu6050/9250系列自动带硬件解算系统,但是没有磁力矫正,偏航角有漂移,mpl库就是基于DMP融合各传感器数据的库。mpl库是商业闭源的,核心代码我们接触不到,但是目前我们调用就行。先把mpl移植到stm32上,然后先不读姿态,因为在此之前(下下集)我们先要手动校准一波。(mpl自带的校准太简陋了,只有减零偏,而且实测没用)

tmn_A作者
1年1个月前 IP:广东
D927570

补充一点,目前计划低成本短时间惯性导航系统1.0将在第9篇开发完毕。我尽快更新。

想参与大家的讨论?现在就 登录 或者 注册。

主体信息
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:广东
 内容统计
2026年10月
1 篇
2026年09月
1 篇
2026年08月
3 篇
2026年07月
2 篇
2026年06月
1 篇
2026年05月
1 篇
2026年04月
1 篇
2026年03月
1 篇
2026年02月
2 篇
2026年01月
1 篇
2025年
10 篇
ID: {{ user.uid }}
投诉或举报
加载中...
{{ tip }}
请选择违规类型:
{{ reason.type }}

空空如也

加载中...
回复
设为精选取消精选
评学术分
鼓励
编辑
查看历史
通过审核
移动文章
加入收藏取消收藏
退修或删除
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{ format('YYYY/MM/DD HH:mm:ss', toc) }}
回复
加入收藏取消收藏