编译Ardupilot会遇到的坑

作者:Harrandi 发布时间:August 5, 2022 分类:FPV

使用WINDOWS11,WSL2 - ubuntu22.04进行编译。

需要安装Virtual Machine Platform和Windows Subsystem for Linux两个模块。当然还要打开bios的cpu虚拟化。

编译需要在非root下执行,所以建立新的用户 adduser 然后再赋予sudo组: usermod -a -G 可能我的ubuntu安装步骤不完整,理论上应该提示创建不需要手动。

使用git克隆项目。

编译环境按手册搭建好之后默认在master分支下,趁机编译bootloader(其它的版本比如Copter4.1.5编译会出错)如果你已经切换至其它tag那么需要回来编译bootloader: git branch, git checkout master

更新submodule: git submodule update --init --recursive --force
有时候需要git submodule update --remote --merge
开始编译:
./waf distclean
./waf configure --board yourboard --bootloader
./waf clean
./waf bootloader

使用自动配置环境有时下载C编译器会失败,配置waf时提示没有编译器,重新执行自动配置并不能识别这个错误,需手动重新下载。

复制并改名Ap_bootloader.bin至Tools/bootloader 为 yourboard_bl.bin
切换至目标tag, 如:

git checkout tags/Copter-4.1.5

git submodule update --init --recursive

./waf distclean
./waf configure --board yourboard
./waf copter

如遇错误可能是网络的问题,需要确认你的文件完整,更新也没有报错。

如何用F4飞控玩ardupilot固件

作者:Harrandi 发布时间:July 31, 2022 分类:FPV

一直在飞5寸穿越机,也较浅层面地体验了固定翼,在一套5块钱的7寸桨的驱动下(滑稽),终于决定组个所谓的“长航时”7寸机。最初目的非常简单,就是能自动回家,用来测试我的接收机的性能。

omnibus F4不是专门的Ardupilot硬件,但代码是原汁原味的。相信很多人都已经体验过了。记录一下折腾的过程,算是方便自己和他人~ 由于只是粗略接触,细节会缓慢补充。大多设置和解释都以官方文档为参考。如果你不想看我的山寨文,可以直接参考官方文档或CUAV的中文文档:https://doc.cuav.net/tutorial/copter/

做了简单的研究,加上之前的一点印象,了解如下,可能有错误和偏见(本文涉及内容全部基于多旋翼Copter系列,因为Ardupilot是多才多艺的控制系统还可用来控制其它载具如固定翼、车、船等):
Ardupilot和PX4项目的选择和区别:前者似乎有着更好的飞行性能,操作系统为高效的实时系统(RTOS)--ChibiOS,算法从简易惯性导航inav到目前最新的扩展卡尔曼滤波3代的过度,有着非常成熟的飞行性能,每一版稳定版的发布都经历了飞行性能验证。PX4,前者的孪生兄弟,基于BSD创作协议,企业完全可以利用其代码开发自己的产品且不需要向公众开源。故其主要面向开发者和学习者。据说,其代码会在短短几天内更新发布版本,在Ardupilot用户看来,可能没有时间经历过足够多的飞行验证。简单说就是,你要是用来飞的就选Ardupilot,你要是用来学习和创作,就选PX4。

地面站的选择,选全功能的MissionPlanner(以下简称MP),而Apm Planner更像是一个轻量化的多平台版本。

然后来到Ardupilot的copter固件版本选择,最新版是4.2.2,固件下载网址:firmware.ardupilot.org 而由于我用的飞控是飞蝶F4,STM32 F405系列由于只有1M的ROM(最低要求),功能受限,建议的固件是4.1的最后一个版本,我个人测试4.2版本似乎去掉了对光流的支持,所以就让我们暂时留在4.1.5,Copter4.1的最后一个版本,固定翼是4.1.6。 而如果你还没有或打算买新的飞控,则可以选择更高规格的飞控。或者你不想要太多额外功能,也可以用最新版本固件(待核实)。注意,你的飞控最好在固件下载列表里。(更新:最新版固件目前也没有发现什么问题,而且加入了msp_display)

在飞碟F4上刷固件很顺利,因为它的目标明确-OMNIBUS F4相同固件(如果你的飞控不在这个固件下载列表里就只能自己编译了),设置和参考都按它(Omnibus F4)来就行。需要特别设置的也就是电流电压计的参数,串口的搭配参数(是否保留I2C端口或改为普通UART端口)。我见过论坛上的教程是用STM32的专用程序来刷,官方也有相应介绍。但是太麻烦了,懒人还是用最方便可靠的办法。首先下载xx_BL格式的固件(固件排序并没有严格按字母顺序,按ctrl+F查找下),(apj是MP地面站可以识别的格式,第一次刷AP固件需要带有BOOTLOADER的inav地面站可惜识别的hex格式)打开inav地面站的固件更新(BF地面站不行,大概修改了验证逻辑~)和刷BF本地固件一样,加载arducopter_with_bl.hex 开刷就好了。最后断开连接重插一次,这次就可以用MP地面站连接了。
第一件事儿你想做的应该是熟悉下MP的界面,它的菜单栏有六个项目,DATA,PLAN,SETUP,CONFIG,SIMULATION,HELP。我们要做设置的地方全部在SETUP和CONFIG这两项。接下来建议首先打开BLHELI PASSTHROUGH,这样才能连接电调的调参软件。点CONFIG菜单,再点开完整参数树FullParameterTree,飞控的所有参数应该都在这里了。最右侧菜单有刷新和保存参数等按钮,在搜索栏输入“ SERVO_BLH_AUTO” ,在出现的窗口把数值改成1,然后右侧写入参数。如果让它立刻生效需要重新连接一下飞控。这里的参数最好养成定时备份的习惯。

现在配置一下各个外设的端口及其参数,让它们先被识别,比如遥控接收机、GPS和罗盘,如果你有其它传感器也一并设置完成,就可以进行进一步的设置了。官方文档有针对OMNIBUSF4的端口说明https://ardupilot.org/copter/docs/common-omnibusf4pro.html,我使用SBUS接收机,先焊接到PPM-(原版标注的rcin)针脚上,飞碟f4无需短接跳线实际上我也没看见有,原版上需要短接ppm端。原先的sbus端和板子上uart6是直接连通的,在固件的原始参数里UART6(AP对应Serial3)已经被配置为反相器关闭,所以你可以用它连接GPS信号,然后修改Serial3的协议为5(比如GPS,protocol 改成5),这时没有意外GPS就被识别了;GPS带的罗盘连接板子上的Uart3(默认配置为I2C),罗盘也工作了。如果你是CRSF接收机可以连接到uart1,对应的AP固件配置也刚好是Serial1,配置协议protocol 23,就应该工作了。按文档BRD_ALT_CONFIG还可以进行其它特殊端口配置,开启额外的uart4等等.

外设全部工作后,点击SETUP选择机架类型,四旋翼,X4。然后进行传感器的校准,包括陀螺6面校准和简易找平校准。再依次向下走电调校准(我没有使用ESC_CALIBRATION参数),接收机通道校准。

电压电流计参数:BATT_VOLT_PIN 12

BATT_CURR_PIN 11

BATT_VOLT_MULT 11.0

BATT_AMP_PERVLT 38.0

设置飞行模式,如果常规遥控器的两位三位拨杆不够用,还可以用参数树进行其它通道的飞行模式增加。在对应的RC通道数内设置功能。

然后是Failsafe验证,按官方文档关控,油门值没有变化。但DATA页面的OSD已经显示触发了接收机失控保护。设置油门失控检测PWM值比你的遥控器油门值少10左右。

确定参数树里配置飞行器为X型四轴模式(Frame项目,class和type参数1)。一旦设置好上面的参数,Initial Parameter Setup就会出现,这是一个向导。接电池进行电机序号和方向校准,如果有反转可以连接BLHELI地面站进行更改。顺便检查发现电压电流检测正常。这时就可以走向导,进行第一次试飞前的最后自动参数配置。

现在可以修改OSD的显示内容和位置。

可以在起飞检查里去掉不需要的约束,比如不用等gps锁定解锁,方法是反向的,也就是需要去掉all,只开启几个你需要的硬件和参数检查。

参考DATA屏幕最后验证各个开关的功能,没有问题的话,开始第一次试飞吧。

如果是穿越机,pid一般过高,需要拉到低一半的位置。接下来的进阶调试就需要一点耐心了。改天再写。

FPV入门之摄像头

作者:Harrandi 发布时间:May 2, 2022 分类:FPV

Categories:随便写写 May 2, 2022

今天和一个F友聊摄像头,他说他买了新暴龙,后来发现是Foxeer的Falkor 3,而我的是T-Rex,然后都感叹摄像头种类之多。之余想到吐槽下FPV摄像头。

【哦,最近还有个大消息是Carl Zhou把HDZERO开源了。】

其实无论是传统的模拟图传摄像头还是大疆的数字图传摄像头,还是HDzero,他们使用的摄像头都是某种方案组合,也就是说传感器都不是自己开发的。这些摄像头从传感器类型上分两大类,早期的CCD和目前主流的CMOS,这些传感器的参数各不相同,尺寸也不一样,法兰距不一样,需要搭配的镜头也就不一样。所以造成了一个比较混乱的状况,几乎各个型号之间的摄像头图像都不是完全一致的。除去画面表现之外,镜头的畸变表现,视场角全TM不一样。

就拿我相对了解的Foxeer来说,早期的Arrow pro mini有两种镜头,一个2.5mm一个1.8mm,前者搭配SONY SUPER CCD的视场角是140°,后者是185°。Arrow pro micro版本的镜头一个是2.1mm一个1.8mm,前者视场角135°,后者160°。此次聊天的F友新买的暴龙3 micro版本 只有一个镜头是1.7mm,视场角是172°。据我所知另外一个比较受欢迎的摄像头caddx ratel 2的视场角是165°。而我这个号称全能镜头的T-rex的镜头是1.7mm视场角150°。大疆air unit摄像头的镜头是2.1mm 视场角160°。

what d heck man

当然,现在我感觉在各个不同的摄像头之间切换没有太大的问题。但就是有点不爽。唯一的保持相同体验的办法是尽可能固定使用一个型号的摄像头。特别是如果你刚刚入门的话。

一些错误更新

作者:Harrandi 发布时间:October 23, 2021 分类:FPV

之前信誓旦旦地说F4电调很牛逼,但尴尬的是目前HOLYBRO的F4有些小BUG,我没有深入了解,因为目前不想用BL电调,但信息应该无误。所以已经入手的同学可能大概也许会遇到一些小问题。表示歉意。 希望开发者能尽快通过更新固件解决。另外从我之前收集到的一些信息看,比如某些厂商会要求在固件选项上锁定电调的响应频率,最低就只能选择48KHZ,而有的用户通过github请求开发者提供更低的24Khz响应频率的固件,不仅得到了满足,而且反馈结果很不错。一味地追求高频率并不总是能得到好的结果,有时会遇到和电机的兼容性问题,比如电机的磁力过大KV值同时不够高时。

还有关于睿思凯RACE MODE的问题。我说到如果你使用睿思凯自家的支持RACE MODE的接收机,你甚至不需要使用最新的ELRS或者TRACER或GHOST的低延迟模式。我自己在多次验证后发现,延迟是没有问题的,但是遭遇了一次近距离失控(O_O)。当时我和飞机的距离大约在80米之内,中间有低矮的植物和几棵树,飞机距离地面低于1米的距离,失控。接收机是ARCHER RS,RACE MODE开启。天线固定方式是模仿Steele的固定方式。 我还没有搞清楚怎么回事,望知悉~

再说说图传的问题。模拟图传我觉得很长时间不玩就会很想,没办法彻底放弃。而大疆数字图传的延迟它确实就在那儿,你没有办法完全无视它,你可以尽情地FPV,特别是用我5寸机改的4寸WHOOP,用大疆数字飞行也是一种享受。唯一的问题是,有很多时候飞行受到明显限制,不能完全像模拟图传那样操作,尽管你能用它做到绝大多数的操作。而说到我之前不建议新手接触的肥鲨高清,也就是现在主要称呼的HD-ZERO,我现在真的很有兴趣尝试它,话说目前接收价格很不错。只是还想等下肥鲨的专用OLED高清版眼镜。从很多手动更换玻璃镜头的DVR看,效果还是非常不错的,目前的问题是无线链路可能还有进步空间。我不知道如果HDZERO换用更高帧速的摄像头会不会进一步降低延迟。它在设计之初就是无缓存的超低延迟设计。对于常常只在近处飞行的我,应该不成问题。装在小型机和微型机上也会明显比大疆数字更轻。从第三者的角度看,大疆数字系统更像是一个完善的商业产品。

还有最近的FCFC ULTRA飞控,本来Alex甩了链接后我就去拍了一个,等了一天后卖家终于出现,但居然要临时起价,想想Alex当初的做法,真实天壤之别(首发时网页错误导致超卖了库存,没有货发给已经付款的顾客,然后退款,并待有货后免费赠送)~ 退了,不是特别急于尝试它。Fettec的G4看起来也不错,以及新出的35A AIO飞控,总算看起来就比之前那个设计蹩脚的15A好得多。

FPV入门需要的准备工作

作者:Harrandi 发布时间:September 6, 2021 分类:FPV

我们再来回顾一下之前说过的核心内容。如果你只是想大概体验一下FPV,你不必花费太多,也许BETAFPV新出的新手套件就足够了,它能定高定点悬停,非常小,在你的床上就能飞。但如果你想成为MCK那样的高手,你就最好有更多的准备。当然,多数人可能是介于这二者之间的,只是有的人更热情,有的人会有更多重要的事要做,因人而异。比如我的收入只有3000,但我愿意投入至少1500以上购买FPV设备;而有的人收入3万,也只想花1000块购买FPV设备。
所有的设备都不求顶级,但一定要够用。而有些设备,最好从一开始就上最好的,比如FPV眼镜和一台趁手的电烙铁。从来没有好好地码过字,也没读过几本书,仅仅从个人经验,尽量有条理地整理一下我们需要用到的设备。

尽早飞起来,就必然需要一个遥控器。价格从低到高: Jumper T-lite,单协议就够了,有特殊需求除外。睿思凯X9-LITE,以及X9-LITE S,QX7,QX7S,X9D。这里注意,睿思凯的控最好都选择ACCESS协议的,ACCST不推荐,该过去的就让它过去吧时代总要进步。ACCST还会让你在扩展高频头的时候遇到一些小麻烦,况且ACCESS这个东西真的不错,商家的行为就不探讨了,没办法,有点能耐都会这样。至于JUMPER和radiomaster的大控,如果你喜欢也是可以的,但你最好买额外的高频头。而使用ACCESS,你真的可以试下原厂接收机(近处练习够用)。黑羊和ETHIX你也可以选择,如果你喜欢。它们都没有问题。至于其它品牌,我就没发现有什么亮点。

有了遥控器,你可以来个模拟器,买正版吧,DRL的赛事都会从模拟器上选拔。velocidrone的手感也很棒。其实steam上的模拟器我都有,可以从这两个选一个。然后你就可以练起来了。哦,如果你还不会目视飞四轴,就找个凤凰模拟器练习,当然你应该还需要加密狗那种设备。

工具从烙铁说起,早先用过很多从本地杂货店购买的60W烙铁,因为平时修一下小东西会用得到。而接触FPV后发现这种烙铁根本没办法用,它最多能焊一下飞控上的线,如果焊接电机线,极有可能造成虚焊,焊点也奇丑无比,更不用说每次要等到永远烙铁才热起来。试过黄花烙铁,没有试过T系列的长头烙铁,据说也不错。我是直接选择了FX888,小巧好用,升温迅速,烙铁头可以很方便地更换,开始用原装的,现在用2块钱一个的,也很好用,300度以内比较不容易把烙铁头弄坏。记得有一次忘记关,开了一晚上。至今已经5年了,依然好用,它从不会给你找任何麻烦。正品价格应该在400-500RMB这样,如果你觉得贵,或许可以试一下国产的936,或者T长头系列,取决于你的选择了。还有一款外场烙铁值得推荐,那就是TS100,很多圈内人士在用。焊锡丝也同样重要,记得不要购买便宜的杂牌,至少也得是香港维修佬。顺便把使用注意事项提前说一下,有时候焊电调线时会产生一些小锡球,它们非常小,在你完工之后一定要仔细检查,我曾有一次因为一个小锡球短路了电调的MOS。助焊剂可以使用回流焊剂,效果好。

剥线钳,硅胶线,压线钳(现在我已经可以自己压SH1.0和PH1.25了,当然还是不如成品好)。可以看自己的需求购买,常用的硅胶线有12AWG(现在我很少用到),14AWG(6S适用),26AWG、28AWG(颜色可以多一点,除了红和黑还要最好另外两种颜色,以区分你常用的TX和RX线的颜色).穿越机用不到太多其它型号的硅胶线,或是杜邦线。热缩管,可以买些4mm,3mm,2mm的,以及10mm和12mm。

然后就是飞控减震柱这些,尼龙柱(个人不用通体长螺丝)。以及M3的螺丝若干,我目前在用钛螺丝。没办法,自己画的架子有点偏重。有的商家有新手包,可以考虑。

充电器,不要买便宜的入门产品。HOTA的D6,很主流。如果你讨厌流行,可以试试新出的PWMWAVE的产品。更高级的icharger 308,4030这些我觉得用不到,它们更像是给大四轴用的产品。电源可以选择服务器电源,可以让人改好,或者你自己改。

电池,大黄狗,格式4.0,都可以的,注意一定不要过放,不要贪飞,电池很贵的,一次过放它就基本残废了。过充一般是不存在的,只要你选择了上面的产品而且正确使用它们。我确实用高压锂电的选项充过普通电压锂电,所以电池类型最好单一。

先到这里。