文章目录
前言
1 通用设置
2 围栏类型
3 破坏栅栏行动
4 使用 RC 通道辅助开关启用栅栏
5 自动高度规避
6 在任务规划器中启用围栏
7 用于遥控飞行训练
8 MAVLink 支持
前言
ArduPilot 支持基于本机的圆柱形(“TinCan”)和多边形和/或圆柱形、包容和/或排除区域。在任务计划器中的计划屏幕下,可以轻松定义包容和排斥栅栏,并使用下拉框中的栅栏项目将其加载到自动驾驶仪中,就像计划任务或集结点一样。
有些飞行器还有最大和/或最小高度限制。某些飞行模式会尝试自动防止超出这些限制,如果超出限制,所有模式下都会宣布突破栅栏。
一旦突破栅栏,将采取可选择的行动。
1 通用设置
设置 FENCE_ENABLE = 1 可启用围栏。这将启用任何已设置的栅栏,但 ALT_MIN 栅栏除外,该栅栏必须通过任何栅栏启用方法(GCS 信息、飞机上的自动启用、RC 开关)启用。
将 FENCE_ACTION = 设置为你希望的破坏动作。这些将根据飞行器类型而有所不同。请参阅上面的栅栏破坏动作(Fence Breach Actions)。
将 FENCE_OPTIONS 设置为 “1”,以防止突破栅栏后改变模式,直到飞行器返回栅栏边界内(仅限固定翼,旋翼机/无人车在突破栅栏时不允许改变模式)。
将 FENCE_ALT_MAX = 设为所需的高度限制(以米为单位)。这在无人车中不可用。
设置 FENCE_MARGIN = 为飞行器为防止突破而必须保持的与围栏水平边界的距离。
将 FENCE_ALT_MIN 设置为最小突破高度边界。
设置 FENCE_AUTOENABLE =(仅限固定翼)以允许在某些飞行器条件下(如解锁或起飞时)自动启用栅栏(与 FENCE_ENABLE 不同)。值为 0 则禁用此功能。如果启用此功能,FENCE_ENABLE 将被忽略。仅建议使用 FENCE_AUTOENABLE = 3(在 ARM 时启用)。由于 “1”或 “2”功能可能会在遏制方面产生不良结果,因此很快就会被淘汰。
FENCE_RET_RALLY 允许返回最近的集结点(见:集结点)(如果已加载),而不是返回 “主页”。
设置 FENCE_TYPE = 是一个位图设置,用于启用各种栅栏类型: 最小或最大高度、“本垒”周围的简单 CIRCLE 锡罐或 POLYGON 栅栏。POLYGON 栅栏还必须通过地面控制站的栅栏列表加载才能激活。有关圆柱形栅栏(Cylindrical Fence)以及包含和排除栅栏(Inclusion and Exclusion Fences)的详细设置,请参阅下文。
!Note
多边形围栏类型包括包含/排除围栏列表中指定的圆形围栏。以家庭为中心的简单 CIRCLE 栅栏是一种独立的栅栏。如果设置了高度,Rover 会忽略高度。
FENCE_TYPE 的默认值为:
- 无人车:圆环和多边形;
- 旋翼飞机:ALT MAX、CIRCLE 和 POLYGON;
- 固定翼:多边形。
详细资料
- Cylindrical Fence Failsafe
- Inclusion/Exclusion Fence Failsafe
2 围栏类型
TYPE OF FENCE | FENCE_TYPE bit | PLANE | COPTER | ROVER |
Global Maximum Altitude
| 0 | X | X | |
Cylindrical (“TinCan”)
| 1 | X | X | X |
Inclusion/Exclusion Zones
| 2 | X | X | X |
Global Minimum Altitude
| 3 | X |
!Note
如果 FENCE_TYPE = 2 包含区重叠,则即使在另一个包含区内,在跨越边界时也会出现栅栏破损,除非 FENCE_OPTIONS 位 1 被设置为使所有包含区成为一个联合集。
3 破坏栅栏行动
无人车行动
无人车没有高度动作,但如果在转向模式或 Acro 模式下到达圆柱形栅栏边界,则会直接停止,不再移动。在其他模式下,它会执行 FENCE_ACTION。
旋翼行动
在 Loiter、PosHold 和 AltHold 模式下,旋翼机将在 FENCE_ALT_MAX 处停止增加高度。
在 Loiter 模式下,它会尝试停在水平边界上,但如果超过边界就会宣布突破。
在其他模式下,如果达到高度或边界,它将执行下面的 FENCE_ACTION。
FENCE_ACTION | Rover | ||
0 | Report Only | ||
1 | RTL/LAND | RTL/HOLD | |
2 | LAND | HOLD | |
3 | SmartRTL/RTL/LAND | SmartRTL/RTL/HOLD | |
4 | BRAKE/LAND | SmartRTL/HOLD | |
5 | SmartRTL or LAND | not applicable | |
!Note
RTL/HOLD 等意味着它将首先尝试 RTL,但如果无法切换到该模式(即 RTL 时 GPS 锁定丢失),它将尝试切换到下一模式,在本例中为 HOLD。
如果设置了“物体避开”(Object Avoidance),RTL 行动在返回时将尝试避开任何栅栏。
当围栏被突破时,会在 20 米开外(或上方)建立一个备用围栏。如果飞行器突破了这一后备栅栏(例如,飞行器未正确设置或操作员控制了飞行器但无法将其带回原点),飞行器将再次执行 FENCE_ACTION(如果再次突破,将在 20 米外建立另一个后备栅栏)。
如果尽管有后备栅栏,但飞行器最终还是超出了配置的栅栏距离 100 米,则飞行器将切换到 “降落”模式(无人车模式为“保持”)。这样做的目的是,飞行器显然不可能返回 Home,因此最好将其降下/停止。当然,驾驶员仍然可以通过飞行模式开关重新获得控制权。与之前的栅栏一样,在 20 米外还会竖起另一道栅栏,如果飞行器继续远离原点,这道栅栏会再次将飞行器切换到 “降落”模式(无人车保持)。
4 使用 RC 通道辅助开关启用栅栏
无需设置开关来启用或禁用栅栏,但如果希望使用开关控制栅栏,请按照以下步骤操作:
可以通过配置/调谐 > 完整参数列表屏幕设置 RCx_OPTION,例如使用 RC 通道 7:
- 设置 RC7_OPTION = 11(围栏启用);
- 将开关设置为高电平(即 PWM > 1800)将启用所有配置的栅栏,低电平(低于 1800)将禁用所有栅栏。
!Note
如果在地面上通过开关启用了最小高度栅栏并解除了解锁,则会出现预解锁故障,无法解锁。
5 自动高度规避
对于 Copter 和 Plane 的着陆模式(NAV_LAND、QLAND、LAND 等),FENCE_ALT_MIN 限制将自动禁用。
对于多边形栅栏,在 Loiter、PosHold 和 AltHold 模式下,Copter 将在 FENCE_ALT_MAX 时停止增加高度。
!Note
除非 FENCE_MARGIN 参数足够宽松以适应这些缺陷,否则高度控制缺陷仍会导致漏洞。
6 在任务规划器中启用围栏
要启用栅栏,请进入任务规划器完整参数列表(配置->完整参数树),搜索带有 FENCE_ 的项目:
Copter GeoFence 标签
Copter 和 Traditional Heli 与任务规划器连接后,会出现一个名为 GeoFence 的 CONFIG 选项卡,提供了在这些飞行器中访问这些参数的另一种方式。
7 用于遥控飞行训练
地理围栏的主要用途之一是教自己(或其他人)驾驶无线电遥控飞行器。有了正确配置的地理围栏,就很难发生坠机,你可以尝试一些通常很可能导致坠机的操作,相信自动驾驶仪会在飞行以灾难告终之前将飞行器“弹出”地理围栏。
地理围栏可与任何飞行模式相结合。因此,对于初学者来说,可以将其与其中一种稳定飞行模式结合使用。一旦飞行员有了一定的信心,就可以将其与 Copter 的 ACRO 模式或 Plane 的 MANUAL 模式相结合,这样就可以直接控制飞行器,做出最有趣的特技飞行动作。
8 MAVLink 支持
ArduPilot 将通过 MAVLink GCS 协议报告围栏状态。关键状态数据包称为 FENCE_STATUS,定义在“ardupilotmega.xml”中。典型的 FENCE_STATUS 数据包如下所示:
2011-12-20 16:36:35.60: FENCE_STATUS breach_status : 1, breach_count : 15, breach_type : 1, breach_time : 1706506
如果在围栏内,则 breach_status 字段为 0;如果在围栏外,则为 1。breach_count 字段表示你在本次飞行中违反围栏的次数。breach_type 是最后一次突破的类型(请参阅 ardupilotmega.xml 中的 FENCE_BREACH 枚举)。breach_time 是自 APM 启动以来发生违规的时间(以毫秒为单位)。
SYS_STATUS 信息中 MAV_SYS_STATUS_SENSOR 部分的 MAV_SYS_STATUS_GEOFENCE 位表示是否突破了地理围栏。目前只有 MAVProxy GCS 能够识别该状态位并报告地理围栏的状态。未来,任务规划器、APM 规划器和其他 GCS 应用程序应支持在飞行过程中公布地理围栏状态。
MAV_CMD_DO_FENCE_ENABLE MAVLink 命令消息允许 GCS 以交互方式启用或禁用栅栏。截至目前,只有 MAVProxy 支持使用“启用围栏”或“禁用围栏”命令来发送该消息。未来,任务规划器、APM 规划器和其他 GCS 应用程序可能会支持交互式启用和禁用地理围栏,而无需使用手动发射器。