飞控开发
长期更新,有单纯记录飞控的开发历程,也有对飞控的开源
“银之星”探空火箭航电平台发布
前言在目前部分社区开源的探空火箭航电项目中,飞控的主要功能仍集中于开伞判断,通常采用 IMU 原始读数、固定阈值和延时完成控制。这类方案简单实用,但在箭体姿态剧烈变化或任务条件改变时,适用性可能受到限制。同时,传感器数据处理、导航状态估计、遥测与日志记录等功能的不完善,也会增加飞行数据分析和故障定位
SilverStar飞控代码生成器0.0.10编写完成
这段时间我一直在考虑把探空火箭飞控平台化,现在已经做完了这个代码生成器。我是计划只做SilverStar飞控平台,下含三个软件FCCG(代码生成器)、GSHC(地面站上位机)、FLP(日志解析器)。依旧是插件化,可以兼容很多MCU(目前只包括STM32系列),传感器,算法,协议,飞行流程。当前的操作流程是:设计PCB->cubemx生成MCU内核代码->在FCCG配置硬件连接,算法等等并生成工程与
SS0.5完成日志解析器
完成了tf卡的日志测试与解析,让GPT做了个日志解析器。不得不说,5.6的前端审美提高了不少,我那个地面站的前端让也改了。如图,第一眼就能看到最重要的信息,还有蓝白配色真的挺好看的,总是让我想到亚雷斯塔的袜子和裙子,深色模式就是蓝深蓝配色。还有数据复算,可以根据记录的传感器原始数据重新计算导航值,不仅可以验证飞控飞行时运算是否正常,还可以在以后加入其他融合算法,比如15维EKF的时候比较各种算法的
SS0.5完成气压融合与飞行流程测试
最近进度的确有点慢……主要原因是我想要借此飞控开发一个开源探空火箭飞控平台(嗯,之前电文里说过,现在相当于正式预告了,我会先把这个飞控开发好,开源后,用一段时间继续做兼容性拓展性测试,再公布),能自由搭配传感器,选择各种校准,初对准,导航算法(当然控制算法以后再说吧……),做了很多兼容性操作,所以慢了点。还有就是我电脑炸了,还有新的三防本要配……总之完成了气压融合和飞行流程测试,卫星导航虽然可以用
SS0.5完成惯导测试
好吧这篇可能有点水。总之这是10s内惯导结果,因为上升段是重点关注的,再加上该飞控是按照500m的火箭设计的,所以上升段大概10s。图一是最剧烈的锥运动和振动叠加的情况,会激发出50多m的误差,图二也是锥运动和振动叠加,但是是我左手晃动飞控,可见频率没那么高,只激发出<15m的误差。考虑到500m的射高和探空火箭较为简单的运动(初始一段时间内发动机工作,剧烈振动但是主要加速度在z轴,接下来只有重力
SS0.5通过拉距测试
这三天我对SS0.5进行了3次拉距测试,也修改了几次代码,终于,今天中午的拉锯测试满足了500m的通讯目标。(镇楼图是拿GPT生的,可爱捏())当初SS0时我不了解无线电,听信了商家的抽象言论,真以为普通的NRF24L01能够传输1.1km,直到发射前的测试才知道实际传输距离在50-70m左右。后面我稍微了解了一下无线电相关的知识,决定使用lora技术的模块来回传。lora模块主要是传输距离远,但
ss0.5pcb焊接
终于东西都到了,这几天期末周,刚考完高数能休息一会,所以决定焊了。现在正在等加热台,于是就随便写点。焊接的时候发现几个问题,首先是我的pcb上电源接口和一般的电池是反的……何晨光的飞控了属于是……所以我计划电源部分外接一个遥控开关,自己焊线。另外我贴片的时候发现无线电模块的两个去耦电容画反了,应该是小电容放的接近模块,结果变成大电容接近模块了()不过都是0805的,我贴片的时候反过来贴了。还有天线
推迟与修改方案
一件不是很好的事情……这个学期比我想象得忙很多,最近又进期末周了,飞控开发一直在拖,好不容易造好了又不知道哪里出了问题……所以我决定先做SS0.5飞控。放弃使用各种工业级芯片,转为使用各种商品级的芯片,比如我很熟悉的JY901B(SS0完全没有开发完它的潜力,我当时脑残设置错传感器带宽了,200Hz回传频率,居然只设置了10Hz的带宽……)。为了方便焊接,贴片元件都做到0805以上。考虑到上次dc
地面站和上位机制作完毕
emm……搁了很久,不过地面站的代码做完了,上位机也是搞定了。当然,大量借助了ai编程,效率的确高了不少。重点是搞定了协议,上位机也加入了非常多的功能,和上一代不是一个东西了。这边飞控还在开发中,底层代码已经写完了,但是惯导和ESKF滤波算法还没加入,状态机也没搞好,这些我尽快,不过这个月也是很忙……这个专栏还是当个记录了,具体的我打算等完全做好,发射测试后在统一发一个文来开源。所以先上现在的协议
飞控和地面站焊接完成
最近比赛很忙,这边都无暇顾及了,抽空焊好了地面站,然后飞控找人代焊了,现在都到了,水一下。这是实物图:飞控那边上了freeRTOS,地面站是裸机。我这几天抽空做下无线模块的拉距测试,不过比赛那边这几天要调个麦轮底盘,可能会占用我很多时间(说下心得,最近在比赛中大量让ai参与核心部分的代码,发现它能大大提高效率,但是做大工程时会有结构问题与隐患。不过如果人工先和ai讨论出工程框架,然后人工分那些繁琐
好的,这下飞控的硬件是真的开发完毕了……
总之,进行了大量改动。删去惯性模块本质上是MPU6500的JY901b,改用更精确的BMI088传感器,ICM42688P作为备份,计划后期kalman滤波自己写,避开黑箱机制。GNSS改为可输出三轴位置和加速度的UBX协议的m8n。磁力计外置,之前SS0观察到可能的磁力计受影响的效果,而且计划只负责初对准。把LDO改为DCDC开关电源,使得电压更稳定。加了之前忘记的去耦电容、串联电阻、硬件上拉电
飞控SS1硬件开发完毕
(后期编辑提示:因为一些非常智熄的操作,PCB打样出错了,所以我打算干脆重画一个,大改这个板子还有的问题。后续画好了再发新文章放出来。但是地面站的板子能用,所以我就焊好了。)虽然软件还没有开始写,甚至组合导航还没有啃完,但是PCB画好了,所以水一水先发出来。这次的飞控使用了四层板,尽量使用贴片元器件,双面布设元器件,使得PCB的体积控制在了42mm*88mm,即便算上外壳,也能轻易在50mm级及更
开源一块飞控SS0
这块飞控是辰星引力的第一块飞控,也是我开发过的第一块飞控,由于两天前的发射出现了意外(具体报告见辰星梦人随后发的文),未收集到数据,再加上现在看它也有相当大的局限性(后续会讲明),所以我认为没有写成教程的必要(正在开发第二代飞控,如果顺利以后会做成教程)。但是我看了开源在论坛的飞控,我觉得本飞控在导
飞控SS0开源预告!
大家好!我改了专栏名字,本专栏将不止专注于惯性导航,而是飞控的各个方面。最近才决定把这个专栏改了,所以SS0飞控的开发记录没有写(懒)先说下SS0飞控,集成惯性导航,卫星导航和气压定高的组合导航,可以无线传回欧拉角,加速度,角速度,速度,位置。小规模实验及估算,对于平流层下的小型探空火箭,其定位精度可以达到米级。同时可以用tf卡记录纯卫星导航,纯惯性导航,纯气压定高的数据,与温度,气压,磁场这三组
算法、代码与测试(完)
OK,经过一系列的改代码与测试,这一代的惯性导航系统最终完成了。在继续前,先说几件事。首先jy901b的性能即便榨干了,但是作为低成本MEMS,它的误差还是很大的,但是我和辰星梦人讨论的结果是这一代先用着,对于千米以下的探空火箭是完全可以用的,以后再升级。它的误差很难标定,我只能给几个实验的结果,具体原因后面会说,现在预估在500m级探空火箭上定位会在最高点产生10m左右的位置误差和1m/s左右的
数据校准
嗯,前些时间考试一大堆,终于有时间更新了。大致说下校准。角速度不用校准,实测出厂校准够了。磁场校准用提供的上位机,我用的是维特智能的,这个问客服要就行,不同厂家应该一样,有校准程序,校准方法也很简单。基本就是在上位机里点进去,然后转动传感器,获取数据后停止校准并写入。当然,重点是不能在室内校准,因为室内的金属和电器会显著影响磁场的分布,可以在室外找个没人的地方,比如天台,这样防止校准失败,也能防止
硬件准备完成
这是制作出的pcb的工程,不知道为啥,下载不了,过几天再发吧。代码还没写好,最近期中考试,要慢一点……这个传感器效果非常好,价格也不会太贵,相当于金钱成本换时间成本了。以下是测试视频。
关于BNO055传感器
最近发现了BNO055传感器,价格20-40不等,我19.8入手了一块。似乎它内置的解算融合硬件比DMP优秀,而且库也写得很好,移植非常方便。可以省去大量的校准步骤。现在正在尝试。
1.5 磁力计校准
这一篇我们开始校准磁力计。误差模型和校准思路和加速度传感器基本相同:(8)然后误差函数同理,就不再详细叙述了。思路还是,先校准向量使其对应的点落在球心为原点的球面上,然后再校准姿态。然后椭球校准调用的库还是1.4里的那个程序,这次直接调用了,但是姿态校准有变化。这里只需要说四点。一是字母,可能有点混乱。我们规定在这里,以及在python程序里,用代表磁感应强度的字母b代表磁场(小写是为了区分矩阵与
1.4 加速度传感器的校准
OK,接下来是重头戏。我们按照文章2中说的方法对加速度进行校准。先通过最小二乘法校准使得测得向量模长与真实向量模长相等,再通过姿态矩阵把它和真实向量对齐。也就是(2)这个校准方法比那个论文里的,稍微复杂点,加了个校准后加速度数据校准前加速度数据、校准矩阵,前者3×3,后者3×1,共12个待定量,自由度12这里我们使用椭球校准。显然,如果没有误差,那么数据点会分布在一个球上,我们这样构造的误差函数:
1.3 均值滤波数的选择和温漂补偿
由于原始数据有噪声,所以我们需要均值滤波。然而,对过多数据均值会让传感器输出延迟大,进而增大误差,对过少数据均值又会无法有效抑制噪声,所以我们要选择一个合适的值。当然,如果要使得效果最好,应该分段。发动机工作阶段各物理量变化较为剧烈,应该略减小参与均值滤波的数据个数,发动机停止工作后,再增加。这个可以靠对加速度大小来判断发动机是否停止工作。比如,加速度大小小于某个值(停止工作后若无空气,传感器传回
1.2 mpu9250的标定思路
mpu的标定,简单来说就是校准,是个非常大的坑,所以要分五期,这一期先说总体思路,下一期分析均值滤波的最优值,接下来三期实现加速度传感器,磁力计和角速度传感器的校准。(用这个顺序大概是由易到难的,后面细说。)这里的标定,不止第一代可以使用,以后也都可以使用,只需要减去均值滤波的部分,然后加上卡尔曼滤波即可。mpl库的自带校准只有减去零偏,显然是不够的,而且实测他根本没有减。可能这个要哪里配置吧……
1.1 mpl库的移植
mpl库是Invensense公司针对mpu6050/9250系列MEMS传感器开发的,基于DMP硬件解算的商业闭源库。可以大大简化惯性导航姿态解算部分和传感器融合的运算。姿态解算是很复杂的,有多种算法需要利用四元数等等,不过因为有了mpl库,我们可以暂时免去这方面的学习。传感器融合也很复杂。因为陀螺仪有漂移,短时精确,长时不精确,加速度计和磁力计有数据抖动,静止情况下短时不精确,长时精确。为了互
1.0 前言
这是本专栏的第0个文章!本文我将写点自己的想法,讨论短时间惯性导航在业余探空火箭中的应用,并给出阅读本专栏的所需知识。首先,20世纪最伟大的魔法师,学园都市的缔造者,银之星,启示录之兽,我的妻子,亚雷斯塔·克劳利镇楼!其次,我和 辰星梦人 正在做一个探空火箭项目,这个项目中,他主要负责发动机,我主要负责航电。由于一些原因,我们的项目推迟了……不过肯定会在年内搞定的。这个探空火箭参数不会很出众,它会

通过审核即可在本专栏显示

主体信息
主体类型:个人
所属领域:无
认证方式:手机号
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 }}
文件下载
加载中...
{{ errorInfo }}
{{ downloadWarning }}
你在 {{ downloadTime }} 下载过当前文件。
文件名称:{{ resource.defaultFile.name }}
下载次数:{{ resource.hits }}
所需积分:{{ costScores }},{{ holdScores }}下载当前附件免费{{ description }}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试