ardupilot固件移植

本文介绍了如何根据自己的硬件设计编写硬件描述文件,包括STM32配置、接口定义与IMU校准,详细讲述了BootLoader和飞控固件的编译与烧写过程。适合想要DIY飞控的开发者参考。


前言

ardupilot和PX4作为开源飞控的两大巨头,他们的完整的生态,科学的架构设计,完整的功能,和强大的二次开发能力等吸引了很多玩家和科研人员的眼球。有很多有趣的研究和设计都在他们的基础上完成。当然优秀的固件离不开实际的硬件平台,虽然pixhawk的硬件设计也非常优秀,又或者一些专业厂商如CUAV,holybro,Hex,QIOTEK,Matek等基于pixhawk硬件标准设计的硬件也很棒且具有官方固件支持。但是善于折腾的玩家向来不愿意轻易满足,基于开源的标准和原理图,我们其实可以自己设计属于自己的板子来满足自己一些奇奇怪怪的要求。(当然这付出的精力和金钱觉得比直接买高的多的多!)基于两大固件的优秀移植设计,只要你选用的器件目前官方都支持,那么其实移植的工作量也还可以接受。想想或者自己专属的硬件和固件还是一件很酷的事情!好了,言归正传,开始介绍ardupilot的移植(PX4的还没研究,应该类似)


一、编写硬件描述文件

首先把自己的飞控硬件的各引脚的定义以及选取的晶振频率等做成简明的table(当然只要其实画板子的时候这些话不多就弄好了)
然后我们进入ardupilot\libraries\AP_HAL_ChibiOS\hwdef文件。如下图所示,这里存放了一大堆的硬件描述文件。市面上我们能买到的飞控的硬件描述文件都在这里了。所以如果我说就直接照着葫芦画瓢弄一个自己的硬件描述文件这部分就可以完事儿了。当然,这显然太坑了。也许会坑到以后我自己忘了回来翻看一下都忍不住骂出声,所以还是要大概介绍一下。
在这里插入图片描述
目前市面上的飞控基本都是FMUV5标准的,所以我们就看看V5系列的飞控,其他就不看了。那么打开V5系列的亲儿子pixhawk4。
在这里插入图片描述
显然最后两个文件呢,不是必要的。道理很简单,不可能用图片和md文本来指导生成我们的最终文件嘛。这两个打开文件打开就是描述飞控硬件定义的可读信息,我们也可以学着弄两个。
在这里插入图片描述
那么接下来是重点了:

  • defaults.parm:
    这个文件定义了针对该电路板的默认参数设置。比如不使用串口流控制,电源电压检测的比例系数等。注意:只是硬件相关的默认设置参数,而不是飞控的飞行控制算法相关参数。所以该文件不是必须的,没有它,我们完全可以在地面站对相关硬件设置参数进行手动更改。

    举个栗子:
    在这里插入图片描述
    上面两个参数是defaults.parm里常定义的两个参数。实际上,我们完全可以连上飞控在地面站设置。
    在这里插入图片描述

  • hwdef.dat:
    这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值