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_mingps_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

Betaflight 4.0

Betaflight 3.5.5

Betaflight 3.5.3

Betaflight 3.5

  • 被失控保护激活的GPS救援将检查飞机距返航点是远于100米,无论系统自检是否打开。如果距返航点100米以内,飞机将直接坠落。非失控保护激活的GPS救援仍按3.4版本运作。

Betaflight 3.4

  • 系统自检包括一个在GPS救援激活时,飞机距返航点不少于100米的检查。当系统自检被打开,如果GPS激活(手动或被失控保护)时飞机距返航点100米以内,飞机将直接坠落。

最后更新于