Ardupilot Copter设置一
Time:January 19, 2023 Categories:FPV
准备写一篇相对详细的折腾记录。所有的内容只参考了官方的文档,因为官方文档已经非常详尽了。官方文档中也有连接到CNUAV的网址(中文说明),但是对比英文原版,简化了一些内容。如果想更好的了解这个固件,还是原版比较全面。写这个原因一是可以帮助一些不想花费较大时间成本去研究原版的人,二是日后方便自己查阅~毕竟好记性不如烂键盘。我是穿越机玩家,如果你和我一样,将会更容易阅读。
Ardupilot固件(以下简称AP)有个孪生的项目PX4,适合学术研究,飞行也是没有问题的。但AP固件还是比较适合直接拿来DIY用,支持旋翼机、固定翼(包括最新的垂起机型),车船等等,最为主要的是它也可以很方便地移植到大家已经拥有的穿越机飞控上(主要有F405、H743等)这些芯片在穿越机中很常见。如果你的飞控型号刚好在官方固件列表里(firmware.ardupilot.org)那就更方便了。其次是官方固件列表里相同目标的克隆飞控,有时候会有一些删减和小差异,但总体上也非常容易修改。第三种就是不在官方固件列表里的那些F405和H743等等飞控。需要参考官方的移植方法编译,基本上参考一些同芯片飞控,并在Betaflight的unified-target里对照资源也算容易。如果你的飞控不被Betaflight支持,那就需要更多的工作(F7飞控没有办法,因为它内存不满足最低要求,AP固件总归是比穿越机固件复杂)。AP固件依赖气压计和罗盘。如果你的飞控并没有集成,可以考虑使用I2C外接气压和罗盘,BMP280,MS5611都是可以的,罗盘可以选5883。如果默认没有I2C接口也没关系,例如F405飞控的USART3通常可以用来配置为I2C接口,具体可以参考STM32针脚功能列表。
AP固件能给我们的是接近DJI飞行器的飞行手感,包括定点悬停和返航,也可以增加各种传感器,固件支持的传感器类型也算比较多。它在自主导航方面的可靠程度还是高出inav固件不少的。对于飞行性能,目前我也是初级阶段,还没有研究能否实现尽可能在某一方面接近穿越机的响应速度。我感觉想让它和BF一样是不现实的。
另外本固件也推荐小推重比的搭配,比如1:3。这样你就可以参考DJI的某些配置,并使用小C大容量电池组装出一台接近DJI续航时间的机器来。至于它能干嘛,我目前想到的是你可以测试图传和接收机等设备的实际表现。
获取飞控固件的方式有,直接从上面的固件网址找到你飞控的固件,其中APJ格式用于已经是AP固件的飞控,直接使用地面站更新; 如果你第一次从BF改到AP固件,需要用ARDUPILOT_BL.hex固件。使用较低版本的INAV地面站,进入DFU模式刷机,就像刷INAV和BF一样简单,这是我推荐的刷写方法,简单可靠。下载固件时有普通固件和支持电调双向传输的固件,结尾为bdshot,之所以分开来且没有默认支持,是有些飞控bdshot可能会有问题。也因为即便不用bdshot(主要是开启rpm滤波)就已经能稳定地飞行了。因为飞控有成熟的卡尔曼滤波算法。bdshot配置好可以锦上添花,配置不好会适得其反。
如果你的飞控是某个飞控的克隆,对于F405一般可以直接刷,而有些高级飞控比如H743,可能有小配置不同,这时可以考虑自己修改编译固件(一般是屏蔽冗余传感器等操作),编译参考我前面的文章。当然略微麻烦了一些,但一旦掌握,过程也非常简单。大至步骤:在win10或win11中安装linux子系统,根据文档安装开发支持包,然后就是git clone AP固件的官方源。更新submodule,开始找到你要修改的飞控配置文件,修改完输入几个命令就可以了。对于这里的痛点可能有github时常不稳。建议主机开clash,然后linux用命令cat /etc/resolv.conf查看IP地址,然后export ALL_PROXY="http://yours:7890" 就可以愉快地使用git了。 对于官方列表没有的F405和H743可以对照其它飞控的配置文件修改,资源从BF的unified-target文档里找。
配置好文件先编译bootloader,把bootloader放到tools里可以方便以后自己更新编译固件。
有了固件还是和前面说到的一样用INAV地面站刷写,建议inav4xx版本。
刷好固件,就来到了飞控的配置。安全第一的原则,在准备起飞前永远不要上桨。且做好随时拔电的准备。
地面站建议使用MISSION PLANNER。 安装完毕打开,右上角选择对应的端口号,点击连接。这时会有mavlink进度条的小窗口。连接完毕,左上有六个选项卡,分别是飞行数据、
飞行计划、初始设置、配置/调式、模拟、帮助。 我们要配置飞控,主要在初始设置和配置/调试 这两个大项中进行。如果你足够pro,可以用配置/调试中的 全部参数树配置所有参数。
在配置参数前,我们最好打开飞控的官方文档信息页,这里包括你的飞控的大多数资料,如支持的特性,端口的配置等等。如果不看这个页面将会有一些麻烦,因为它的串口顺序并不总是和你之前的BF固件一样。有时候电压电流监测数值也需要对照修改,自己摸索是非常不现实的。自己编译的固件就按硬件信息里的顺序来。飞控信息的定位:打开官网ardupilot.org,最上方的导航栏中Documentation》左侧栏Copter》AutoPilot Hardware Options》Closed hardware - 这里就是支持的飞控列表了。
飞控的快速设置:
为了方便我们操作电调,配置/调试》全部参数树》SERVO-SERVO_BLH_AUTO值设为1,右侧点击“写入参数”,这样才打开BLHELI电调的飞控PASSTHROUGH。
1,设置飞行器的样式,可以在初始设置》必要硬件》机架类型下按要求选择。以常见的穿越机为例,第一行选四旋翼,第二行点击X型。第二种设置方法:配置/调试》全部参数树》FRAME》FRAME_CLASS值和FRAME_TYPE值都改成1。右侧点击“写入参数”。
2,加速度计校准,有三个按钮,第一个按钮为六面校准,点击按钮,根据按钮提示进行飞控六个面的校准,完毕后再用下面按钮校准水平,最后一个按钮似乎是多余的。这时可以切换到飞行数据选项卡,查看飞控各个方向是否正确:机头向下,仪表也指向地面,机头向上,仪表指向天空。向左倾斜飞控,左侧的地面升起,向右倾斜飞控,右侧的地面升起。
3, 指南针。 玩AP固件最主要的就是定点悬停,而指南针又是AP固件导航的关键,AP固件可以同时支持多个指南针同时工作,你甚至可以把多个指南针都接在I2C端口。一般情况下我们的指南针电源都是接在板载BEC上的,只有上电才能识别。所以上电,点击Start,开始在3个轴向上翻滚校正指南针。进度条结束后提示success,点击reboot,指南针校准结束,方向也会自动识别。无论是校准,还是以后飞行,都要远离金属物,磁场强度高也会影响,如果前面校准失败需要远离金属物再试直到提示成功。
4, 遥控器。 在配置/调试选项卡,全部参数树-SERIAL,找到你连接接收机的SERIAL,例如SERIAL2,修改SERIAL2_PROTOCOL数值为23,右侧写入参数,断开飞控,重新上电,在初始设置选项卡,必要硬件,遥控器校准,拨动遥控器的摇杆已经应该有反应了。点击校准遥控按钮,按提示校准行程和中点,对照图表确认就可以下一步了。需要注意的是俯仰控制,和其它通道相反,向上打杆俯仰的条应该向下增加才对。其它通道通常没有问题。(AP固件支持将一些针脚配置成rcin接口,可以无需经过serial设置直接连接sbus等单线接收机,比如我把Betafpv的F405飞控上的LED配置成rcin,上sbus接收机就会自动识别。对于某些带rcin飞控的bdshot固件,有些会屏蔽此接口来释放资源给双向电调传输用,这也许是bdshot固件总是作为可选固件的另一个原因)此时也可以继续配置GPS的端口,找到对应的SERIAL,比如SERIAL1,PROTOCOL修改为5,这里注意,如果这个SERIAL是USART,端口波特率一般不需要特别指定,因为默认是自动配置和匹配,而如果这个SERIAL是UART,需要手动填对波特率(如有误请指正)。I2C接口上的设备不需要进行手动设置。
5,Servo Output,这一项可以用来修改电机的顺序,暂时跳过。
6,ESC Calibration 我们假设飞行器已经是全部组装好的状态。根据介绍文字,点击开始按钮,断开飞控连接,然后给飞控电调上电。等待电调提示音出现,如果时间长也没有声音可以拔掉电池重新插一次,这时电调应该正常识别了。下面的数字保持默认就好。除非你有自己的要求。
7,这时点击可选硬件,电机测试,上电点击按钮测试电机序号。AP固件的序号从右上电机开始顺时针为ABCD。如果不对,回到Servo Output,修改电机的顺序,直到在测试电机中尝试正确。如果电机转向不对,需要用电调配置程序修改转向。
8,飞行模式,可以根据需要自己选择。如果要修改默认的模式通道,可以在配置/调试,全部参数树,修改 FLTMODE_CH 的参数为你想要的对应通道。默认的模式通道是第5通道,这对于ELRS接收机来说是必须要改的。
9,故障保护,右侧的”电台“框内,Enabled always RTL下方默认油门值减去10. ”电池“保护按自己需要填写。
10, 这时必要硬件下会多出之前没有的Initial Paramater,切换到这里,把4个数值改成你自己的,分别是桨的尺寸,电池节数,单节电池满电电压,单节电池空电电压。然后点下面的 计算初始参数数据按钮,可以去掉FENCE的勾,即电子围栏,如果没有请忽略。然后保存。
11,如果你没有去掉FENCE,来到配置/调试,地理围栏,去掉启用的勾。
12,配置/调试,基本调参,这里是推荐数值,对于穿越机通常是过大的。我们可以降到0.05左右。
13,扩展调参,这里先熟悉下各个选项。中下方有其它通道的功能设置,按需要设置。
14,标准参数,前面两项可以改变飞机的姿态控制速度,下面两项可以微调机架相对于飞控的角度。这里我们都先不动,去掉解锁检查的ALL的勾,在你需要解锁检查的选项前打勾。修改完可以点最上方的写入参数。
这时我们可以进行初步的试飞了。安装螺旋桨,做足准备,人离得足够远和安全。以左手油门遥控器为例,最低油门然后向右侧打偏航,飞行器就会解锁,推油起飞。如果飞机抖动,可降落调整基本调参,继续减小数值直到不抖动为止。