Ardupilot Copter设置二

January 19, 2023 分类:FPV

AP飞控的操作逻辑和DJI一样,解锁,推油超过中间位置,飞机就会上升,油门置中,则在该高度悬停, 油门低于中点降落。所以如果油门摇杆能自动回中也不错。

AP固件对油门的控制比较依赖线性的油门,有三个因素影响油门的线性:电池的压降,电调正确的PWM数值范围,线性的拉力(桨、电机、电调的组合)。
首先确认电池参数的正确(下面的参数都指全部参数树里的参数):

MOT_BAT_VOLT_MAX: 4.2v x 电池节数

MOT_BAT_VOLT_MIN: 3.3v x 电池节数

然后是拉力曲线,专业的做法是测试使用的电机、电调、螺旋桨组合的拉力表。我们是模型级别的飞行器用一个估算的值尝试即可。修改 MOT_THST_EXPO值, 0.55 适合 5-7 寸桨, 0.65 适合 10 寸左右, 0.75 适合 20 寸。

电调输出设置:

MOT_PWM_MAX: 查阅电调说明书或填2000us

MOT_PWM_MIN: 查阅电调说明书或填1000us

MOT_SPIN_ARM: 使用前面提到的电机测试决定解锁时电机的转速值或默认

MOT_SPIN_MAX: 0.95

MOT_SPIN_MIN: 使用前面提到的电机测试查看电机能稳定旋转的最低值 或默认

MOT_THST_HOVER: 0.25  悬停油门,低了更安全。(MOT_HOVER_LEARN参数:0禁用,1学习,2学习并保存,使用2测试后,可以将此值改成0,并使用固定的MOT_THST_HOVER值)

扩展调参页面:

INS_ACCEL_FILTER: 10Hz

INS_GYRO_FILTER: 80Hz 适合 5 寸桨, 40Hz 适合 10 寸桨, 20Hz 适合20寸或更大。一般这个值低会有更多的滤波以减少抖动的产生。穿越机可尝试50-60

ATC_ACCEL_P_MAX: 110000 适合 10 寸桨, 50000 适合 20 寸桨, 20000 适合 30寸桨. 穿越机可以尝试使用更大的值比如200000,轴距越小值越大。

ATC_ACCEL_R_MAX: 110000 适合 10 寸桨, 50000 适合 20 寸桨, 20000 适合 30 寸桨。 穿越机可以尝试使用更大的值比如200000,轴距越小值越大。

ATC_ACCEL_Y_MAX: 27000 适合 10 寸桨, 18000 适合 20 寸桨, 9000适合 30 寸桨

Copter-4.1 (以上):

ATC_RAT_PIT_FLTD: INS_GYRO_FILTER / 2

ATC_RAT_PIT_FLTT: INS_GYRO_FILTER / 2

ATC_RAT_RLL_FLTD: INS_GYRO_FILTER / 2

ATC_RAT_RLL_FLTT: INS_GYRO_FILTER / 2

ATC_RAT_YAW_FLTE: 2

ATC_RAT_YAW_FLTT: INS_GYRO_FILTER / 2

PID数值最好可以用无线数传连接,把PID三个值都推到尽可能大。

黑匣子的使用:
用以下参数启用黑匣子分析震动信息:
LOG_BACKEND_TYPE: 黑匣子存储位置。数值 “0” 禁用记录, “1” 记录到SD卡, “2” 通过mavlink数传输出,数值 “4” 记录到板载flash如果配备.可直接勾选。
LOG_BITMASK: 都记录什么信息.一般使用默认参数, “0” 停止记录.可直接勾选。
LOG_DISARMED: 设置为1开启飞控通电就记录即便没有解锁,多用来记录和调试传感器。

INS_LOG_BAT_MASK 设置为 1 收集第一个陀螺仪的震动数据
INS_LOG_BAT_OPT = 2 记录滤波后的数据。
INS_LOG_BAT_OPT = 1 用于INVENSIVE的高于500hz的陀螺仪数据可能一般用不到动它。

当你记录了一个比较初始的飞行后就能查看震动情况。点击“飞行数据”,下方的选项卡切换到最后面的“数据闪存日志”,点击通过mavlink下载闪存日志,这里有一个列表,下载你要的日志,然后按键盘上的CTRL+F,弹出窗口中点击FFT,再点选下方的按钮就可以显示震动数据。

有了震动数据我们可以配置基于双向电调的动态滤波和修改之前的INS_GYRO_FILETER

基于电调双向传输的动态滤波设置:
首先参数 SERVO_BLH_BDMASK点击数值,勾选前4个通道。写入参数。
设置INS_HNTCH_ENABLE = 1 开启第一个滤波通道然后刷新参数更多参数将会出现。设置 INS_HNTCH_MODE = 3 开启基于电调数传或双向传输的滤波。INS_HNTCH_REF设为1, INS_HNTCH_HMNCS 设为1(保守设置). INS_HNTCH_OPTS 对于微型机建议设置为6,大机型据说可设置为16以开启三倍滤波.

气压计温度补偿设置,在版本3.6以上中支持该特性。设置 TCAL_ENABLED 参数为 2 (学习并校准),保存后断开飞控使其冷却,然后上电飞控等待大约10分钟,此时不要移动飞控。这时连接并查看 TCAL_BARO_EXP 参数,应该已经被更新为一个非0的新数字。 这时再将 TCAL_ENABLED 改回 1保存。

目前我用到的参数只有这些。其它的诸如飞控板微调,飞行器响应,定点PID等可以根据自己的喜好再调整。硬件的安装,GPS最好位于最高点并且下方做金属贴纸屏蔽。气压计使用海绵缓冲或加一个非全密封的盖子缓冲。其它就和穿越机差不多了,电机和桨的动平衡要好。机架共振小等等。

Ardupilot Copter设置一

January 19, 2023 分类: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,修改电机的顺序,直到在测试电机中尝试正确。如果电机转向不对,需要用电调配置程序修改转向。

1 2

8,飞行模式,可以根据需要自己选择。如果要修改默认的模式通道,可以在配置/调试,全部参数树,修改 FLTMODE_CH 的参数为你想要的对应通道。默认的模式通道是第5通道,这对于ELRS接收机来说是必须要改的。

9,故障保护,右侧的”电台“框内,Enabled always RTL下方默认油门值减去10. ”电池“保护按自己需要填写。

10, 这时必要硬件下会多出之前没有的Initial Paramater,切换到这里,把4个数值改成你自己的,分别是桨的尺寸,电池节数,单节电池满电电压,单节电池空电电压。然后点下面的 计算初始参数数据按钮,可以去掉FENCE的勾,即电子围栏,如果没有请忽略。然后保存。

11,如果你没有去掉FENCE,来到配置/调试,地理围栏,去掉启用的勾。

12,配置/调试,基本调参,这里是推荐数值,对于穿越机通常是过大的。我们可以降到0.05左右。

13,扩展调参,这里先熟悉下各个选项。中下方有其它通道的功能设置,按需要设置。

14,标准参数,前面两项可以改变飞机的姿态控制速度,下面两项可以微调机架相对于飞控的角度。这里我们都先不动,去掉解锁检查的ALL的勾,在你需要解锁检查的选项前打勾。修改完可以点最上方的写入参数。

这时我们可以进行初步的试飞了。安装螺旋桨,做足准备,人离得足够远和安全。以左手油门遥控器为例,最低油门然后向右侧打偏航,飞行器就会解锁,推油起飞。如果飞机抖动,可降落调整基本调参,继续减小数值直到不抖动为止。

再说高清,一点拙见

January 11, 2023 分类:FPV

闲极无聊,再扯一点自己的看法。

对于FPV的老手来说,我觉得他们选什么系统,都有自己的偏好。而对于刚入门的玩家说,当前最合适的是蜗牛高清。蜗牛高清在上市初期,软件不成熟的情况下,可能会流失一点客户,但随着软件的逐渐完善,我觉得已经没有什么问题了,它显著优于旧版的DJI高清系统,在延迟表现方面。

而HDZERO,目前的步伐太慢了。我知道Carl的理想状态是让它百花齐开,但这么长时间过去了,依然没有响应。不知道是哪里出现了问题。前不久推出的Whoop bundle总算是给它的生态注入了一点新力量,几个Whoop品牌也都推出了相应的产品。但对于多数的“
野生型”FREESTYLE玩家来说,那个FREESTYLE实在是昂贵了一点,一样的价格,蜗牛可以买一整套天空端,而HDZERO就只能买到天空端本身而已,摄像头和连接线都要单独购买。“野生型”玩家应该比致力于比赛的玩家更多啊。

而对于大众的FREESTYLE玩家,尽管蜗牛不像HDZERO那样是事实上的零延迟设计,但在主观感受上,已经可以胜任绝大多数的场景了。我想这几乎足够了。

所以,HDZERO需要加快步伐了。这是一个软硬件开源的系统,理应会有比蜗牛更好的生态。时间的滞后,我在之前的手机界发现是致命的。一个好的设计,如果能早那么一年,会产生决定性的影响。尽管FPV市场是小众的,也应该尽可能的完善起来。这样才能保持竞争力,毕竟,对手的下一个产品是什么样也不好说。

隐藏的实力还有,HDZERO是自主设计,蜗牛是方案整合。HDZERO是完全可以主动起来的。

DJI高清:更能获得影视工作者和高端玩家的青睐,当然还有粉丝们。G2眼镜本身也是事实上最好的眼镜。

Walksnail & HDZERO

January 4, 2023 分类:FPV

Wow.
这两个系统都给我带来很大的惊喜。我分别用一个HDZERO和WalkSnail的接收机搭配肥鲨HDO2,表现都出乎意料的好,当然不是最好,因为肥鲨HDO2的HDMI仅仅是能用而已,它在搭配HDZERO的时候还好,搭配WalkSnail时画面有一点波纹。由于HDO2是原生4:3的屏幕,HDMI只能工作在16:9的裁切模式下,屏幕变小了一圈,更何况它也不支持大于60帧的刷新率,所以体验是不完整的。
即便这样我也仍感觉这是两个非常有意思的系统。首先它们都消除了模拟摄像头奇怪的颜色变化,隔行变逐行,这在视觉体验上有质的飞跃。最让我兴奋的是它们在延迟上的表现。我不想说它们有多低的延迟,而是它们的延迟变化都低于我的感觉。而不像老版的DJI高清一样,会更频繁地感觉到它的存在。
WalkSnail的延迟处理让我感觉非常顺滑,大概就和大疆的O3一样,有“天地帧同步”技术(Emm,听起来很熟悉),我相信它们的核心技术是一样的,大疆的宣传也并不虚。这样一来我用这套图传,和其他人一起飞就不用担心被干扰了。
HDZERO这边也非常好,虽然我在最初的一次尝试遭遇到了卡顿。这套系统是没有延迟变化的,但在信号非常微弱或受到较大干扰时有丢失关键同步信息的可能(Carl在一个采访中透露其系统的同步帧有最高优先权。等等,难道?…),导致画面卡顿,从而你不自觉地和模拟对比,感觉到沮丧。
但经过多次起飞后,发现这种情况是较少出现且能避免的。它和模拟图传类似,是单向传输,所以我把它放在我的小远航机上使用感觉也非常合适。而据说ws系统如果遭遇黑屏,恢复画面的时间会比较长,未经亲自验证,但之前用老dji系统是有这个现象。
这次都只使用了它们的迷你图传,一来便宜,二来它们不像大图传那么臃肿可怕。它们的表现完全可以满足我5寸机的多数飞行场景。要知道我最喜欢的模拟图传是黑羊的“指甲盖”,方寸间可以达到500mW,而重量只有1克。

我也不想说用高清替代模拟这种话。总之,无论是WS还是HDZERO,DJIO3,高清时代真的来了。

当然我还是最希望有人和我一起用模拟炸楼。

ps: My opinion about Dji Goggles 2, definitely the best quality I ever seen, best optical modules, a decent appearance design, comfortable material all around. Just, it's impossible to feed any analog or HD signal to it, only a wireless cast thing. What a waste! But that's not their fault, it is my problem though. Guess I need to make more money first. LOL

穿越机的进阶练习要点

September 23, 2022 分类:FPV

作为一项准体育运动,穿越机的进阶练习,装备的一致性非常重要。
给射击运动员一把不一样的枪,我相信他能比业余选手打得更准,但和他自己训练的装备相比仍会有较大差距。
穿越机装备的选择是一个让人头疼的事儿,因为用不了多长时间,更好的设备就会出来。
对于影响体验的配件例如摄像头,眼镜,图传,动力等等,每次更换大脑都要新的适应。这对精准操控影响较大,特别是对新人进阶来说。保持设备不变,直到有较大的进步为止,我认为是很关键的一点。

更不要说rate值的差异。

一起进步吧。