GPS救援模式
这个模式能:
GPS救援模式用于在紧急情况(如图传链路或遥控链路丢失)时自动将飞机飞回。此功能唯一的目的是将飞机飞回一定范围内,以便您可以尽快重新控制飞机。这不是一个可靠的返航功能。请牢记这一点,并且仅在为了避免丢失飞机时才激活此模式(首次测试除外)。为了提高GPS救援的可靠性,请仔细阅读此文档,并依照飞行环境与飞行习惯尽可能好地配置系统。
这个模式不能:
GPS救援不是一个完整的返航功能。这意味着它不能自动将您的飞机飞回家,而且您也不应该尝试这样做。它没有自动降落的功能,并且会在靠近返航点的时候“轻轻地摔在地上”。此功能的唯一目的是在信号丢失的情况下将飞机飞回来一点,以便 飞手重新取得控制。 飞手应尽快接管控制权,而不要依赖GPS救援来进行返航。
需要条件
GPS。推荐使用Ublox M8N模块的变体。此功能已在18x18mm的M8N模块和北天BN880和其他类似型号上完成了测试。
必须启用并正确校准加速度计。GPS救援需要使用它以使飞机保持水平。
气压计是可选项,但推荐使用。板载气压计和外置气压计(I2C)均已通过我们的测试,可以正常使用。
此模式并不需要罗盘,但如果可用则会使用。
不支持3D模式。如果开启了3D模式,则GPS救援会被禁用。
免责声明
这是一个实验性的功能。
请小心使用。
此文档会经常更改,所以请经常来查看它。
除特殊说明外,此文档与最新的稳定版固件相配套。
如果想将此模式用于失控保护,则应启用沙盒自检功能。
必备条件
在配置或测试GPS救援之前,您必须校准加速度计,并确认自稳模式可正常工作。如果飞机无法正确保持水平,请重新校准加速度计并再次测试。GPS救援使用自稳模式,因此如果自稳模式无法正常工作,GPS救援将无法控制飞机,并导致其可能按错误的方向飞行。
设置GPS救援
为了在飞机上设置GPS救援,我们强烈推荐从头开始进行完整的设置过程。此步骤旨在受控环境中联系,并充分理解GPS救援的运行逻辑及短板。使用现成的GPS救援设置(复制他人的设置)会降低救援成功的几率。
在Betaflight“模式”页面为GPS救援模式添加一个控制通道。确认此模式可被正常激活(测试前请卸除螺旋桨)。
在CLI中设置如下参数:
set gps_rescue_initial_alt=[number] (默认为50)
这是最重要的参数。当GPS救援被激活,飞机将朝向起飞点,并尝试爬升至一个安全高度。这个高度可以在这里设置,也可以是飞行过程中记录到的的最大高度+15米,并取二者中的高者。我个人习惯将其设置为70或80米。
set gps_rescue_ground_speed=[number] (默认为2000)
这是飞机返航时的速度,以厘米/秒为单位。我习惯设为1500(约35mph,54km/h),此设置取决于具体的飞行情况。
set gps_rescue_angle=[number] (默认为32)
这是返航时的最大倾斜角度。这项设置可以防止飞机到达全速,所以在更改默认设置时最好进行测试。注意,角度越大,飞机就越难保持稳定的高度。由于有可能遇上返航时逆风的情况,我习惯把该参数设置为45。
set gps_rescue_descent_dist =[number] (默认为200)
这是飞机距起飞点多远开始下降的距离,以米为单位。
set gps_rescue_ascend_rate = [number] (默认为500)
(在BF4.1中加入)
这是飞机爬升时的垂直速度,以厘米/秒为单位。
set gps_rescue_descend_rate = [number] (默认为150)
(在BF4.1中加入)
这是飞机下降的垂直速度,以厘米/秒为单位。
gps_rescue_throttle_min
和 gps_rescue_throttle_max
在BF4.1中仅用于限制新PID控制器的干预(https://github.com/betaflight/betaflight/pull/8015)
gps_rescue_alt_mode = [MAX_ALT, FIXED_ALT, CURRENT_ALT]
(在BF4.1中加入)
现在我们可以设置GPS救援的高度了。
MAX_ALT是默认的设置,高度就是gps_rescue_initial_alt,
或者飞行过程中记录到的最大高度+15米。
FIXED_ALT,飞机总是尝试保持设置的高度值。(gps_rescue_initial_alt
)
CURRENT_ALT, 飞机保持触发GPS救援时的高度(不建议使用)。
现在可以去测试GPS救援了。
等待您的GPS模块获得良好的定位。默认情况下,如果卫星数少于gps_rescue_min_sats
(默认是8),飞机将无法被解锁。
我们建议按如下步骤进行测试。
沿着直线飞到比开始下降距离再远100米的地方。例如,如果开始下降距离设置为150米,那就飞250米。当保持直线飞行时,返航箭头应一直指向返航点。
非常重要:如果箭头没有指向返航点,请勿激活GPS救援。如果此时激活了GPS救援,飞机将飞向箭头所指的方向。
激活GPS救援。
重要:请做好飞机不向回飞的时候关闭GPS救援,并夺回控制权的准备
如果一切顺利,飞机会返回并开始下降。不要让飞机离地面或自己太近,因为目前的程序并不包括降落功能。飞机会直接在附近坠毁。
你可能会注意到,飞机很难保持稳定的高度。有时,这会在GPS高度读数不稳定时发生,因为高度控制器的期望值总在不断变化。如果GPS高度读数很稳定,但是飞机仍不能稳定在设定值附近10米的范围内,就需要调整高度油门的PID增益了。以下是这些参数:
gps_rescue_throttle_P
gps_rescue_throttle_I
gps_rescue_throttle_D
我们不希望大多数人都会精调返航速度增益,默认情况下的PID增益是:
gps_rescue_velocity_P = 80
gps_rescue_velocity_I = 10
gps_rescue_velocity_D = 20
当飞机可靠地返航一次之后,就可以逐步加大测试的距离和范围。当配置可靠的时候,就可以将GPS救援设置为失控保护。
set failsafe_procedure = GPS-RESCUE
完成上面这个设置后,GPS救援将在失控时被激活。
v4.0.x备注 - 当遥控信号恢复时,飞手将立即获得控制权。所以在失控时,飞手应手动激活GPS救援模式,这样就可以意外的控制权切换,或者做好在任何时刻接管控制的准备。我们推荐使用前者,这需要在将GPS救援用于失控保护的同时为其分配一个开关。
v4.1和更高版本 - 当遥控信号恢复后,仅当roll/pitch/yaw三个轴的杆量输入之和超过failsafe_stick_threshold
的百分比值时,失控保护才会被退出,飞手才将获得控制权。该参数的默认值是30,意味着roll,pitch,yaw需要从中点移动至少30%失控保护才会关闭。如果要减少切换过程的突变性,可以选择降低这个值。
另外,可以在配置程序中“失控保护”页面(需开启专家模式)配置失控保护,也可以使用OSD菜单(FEATURES > FAILSAFE
)来设置。OSD界面也可以很方便的在有限空间(如室内或树林中)飞行时禁用GPS救援功能。请确认在合适的时候将其重新启用。
处理错误情况/系统自检(非常重要)
如果GPS救援是在受控状态下(不用于失控保护)使用,或者在一个周边环境无危险(如不在水面上)的地方使用,那么系统自检就完全是可选项。但如果GPS救援被用于失控保护(一般情况下即使不用于失控保护),则强烈建议开启系统自检。
set gps_rescue_sanity_checks = RESCUE_SANITY_ON
如果想让系统自检仅在失控时启用,也可以将其设为RESCUE_SANITY_FS_ONLY
系统自检可以确保:
GPS仍然连接在飞控上
GPS的位置读数有效
飞机并未遭受剧烈冲击(由碰撞造成)
卫星数量不少于设定值
在到达初始高度之后,飞机开始靠近返航点
如果不满足任一条件,那么GPS救援操作将被终止,这意味着飞机将直接坠落。但是,最后两个条件在触发之后有几秒钟的容许时间。同样地,如果飞机没有开始靠近返航点,而且磁力计已被占用,GPS救援则会使用GPS的方向读数来作为第二次尝试。如果仍然检测到了飞机正在飞向错误的方向,GPS救援操作仍将被终止。
定位成功前解锁
默认情况下,如果已经为GPS救援配置了一个拨杆开关或将其作为失控保护程序,那么Betaflight在没有完成GPS定位前不会允许解锁。某些情况下,您可能会希望在没有完成GPS定位的情况下起飞(也许当地的GPS信号覆盖很差,或想在搜星时快速飞一圈),但又不想直接禁用GPS救援,那么可以通过以下命令实现:
set gps_rescue_allow_arming_without_fix = ON
开启此选项后,在没有GPS定位的情况下也能起飞,但是GPS救援会在此次飞行中被临时禁用。一条警告信息(RESCUE OFF)会显示在OSD上。如果在飞行中搜够了卫星数量,用“降落、锁定,再次解锁”的方法,开启GPS救援。
GPS救援不可用的情况
如果为GPS救援配置了一个是拨杆开关或将其用于失控保护,飞控会持续检测一些参数的状态( GPS与飞控的连接情况、有效的GPS定位、最少卫星数量)。如果以上条件有任意一项不满足,一条警告信息(RESCUE OFF)会显示在OSD上。这只是一个警告,如果此时GPS救援被激活,仍会正常进行系统自检。这条警告并不影响系统自检以及后续的动作。
常见问题
在测试GPS救援前,确保已飞出最小距离(默认是100米)的范围,这个最小距离可以在CLI中使用
set gps_rescue_min_dth = <meters>
设置。在最小距离之内,GPS救援将导致飞机坠毁。在一些特殊情况下加速度计会逐渐发生偏离,导致GPS救援无法正常工作。检查方法是飞行一段较长的时间,然后切换至自稳模式。如果飞机无法稳定的保持水平,请勿在这架飞机上使用GPS救援功能。
一些GPS模块需要对U-Center进行配置才能工作。参考这个由Painless360制作的视频进行设置。
GPS救援功能仍在持续开发,所以如果不在使用最新的稳定版BF固件,有几率会遇到一些故障情况。请确保使用的是最新的稳定版固件。
GPS救援不是也不会是完全可靠的。在OSD上显示GPS经纬度并用DVR录制飞行过程,在遥控器上记录遥测数据(包括GPS坐标),或者使用自动启动的蜂鸣器,这些是应该在测试GPS救援之前就使用的方法。
老版本的常见问题
对于早于BF4.0的版本,非常推荐启用Air Mode,选择性的精调一阶失控保护,作为GPS救援后的碰撞检测的应对方法。至少要确保飞机不会在进入二阶失控保护时直接自由落体。当使用等于或低于10.4版本的地面站更改失控保护设置时,失控保护的方式会被重置。在“失控保护”页面保存更改后,再去CLI手动设置失控保护的方式。
每次解锁时,返航点都会刷新。但在早于BF4.0的版本中,返航点是在锁定时刷新的,快速拨动解锁开关可能会导致刷新失败。在所有版本中,最好的做法是解锁并等待几秒钟,直到OSD中显示返航点距离为0米,然后再开始飞行。否则,锁定并等待几秒后再重复此操作。从BF4.0开始,可以使用此命令
set gps_set_home_point_once = ON
使返航点仅为上电后首次解锁时的位置如果使用黑羊接收机,请在“CROSSFIRE RX”菜单中设置失控保护行为为“Cut”。
版本历史
Betaflight 4.1
当GPS救援作为失控保护被激活时,使用摇杆以恢复控制。(https://github.com/betaflight/betaflight/pull/7936)
Betaflight 4.0
防止在进入GPS救援模式时立即触发碰撞检测。(https://github.com/betaflight/betaflight/pull/7034)
允许更改与返航点的最小距离。(https://github.com/betaflight/betaflight/pull/6404)
修复在初始阶段系统自检误报STALLED/FLYAWAY
增加了用于标明GPS救援功能不可靠的标识。(https://github.com/betaflight/betaflight/pull/7256)
增加了在没有GPS定位或卫星数量不足时允许解锁的明确设置项:gps_rescue_allow_arming_without_fix (https://github.com/betaflight/betaflight/pull/7320)
Betaflight 3.5.5
修复在初始阶段系统自检误报STALLED。 (https://github.com/betaflight/betaflight/pull/7254)
Betaflight 3.5.3
修复当“解锁时不转动电机”开始时在激活GPS救援时自动锁定的现象。(https://github.com/betaflight/betaflight/pull/6979);
Betaflight 3.5
被失控保护激活的GPS救援将检查飞机距返航点是远于100米,无论系统自检是否打开。如果距返航点100米以内,飞机将直接坠落。非失控保护激活的GPS救援仍按3.4版本运作。
Betaflight 3.4
系统自检包括一个在GPS救援激活时,飞机距返航点不少于100米的检查。当系统自检被打开,如果GPS激活(手动或被失控保护)时飞机距返航点100米以内,飞机将直接坠落。
最后更新于