(7)(7.2) 围栏

server/2025/1/21 15:05:21/

文章目录

前言

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 MAXCIRCLEPOLYGON
  • 固定翼:多边形。

详细资料

  • Cylindrical Fence Failsafe
  • Inclusion/Exclusion Fence Failsafe

2 围栏类型

TYPE OF FENCE

FENCE_TYPE bit

PLANE

COPTER

ROVER

Global Maximum Altitude

  • FENCE_ALT_MAX defines max altitude

0

X

X

Cylindrical (“TinCan”)

  • Circle Centered on Home
  • Parameters for radius, height

1

X

X

X

Inclusion/Exclusion Zones

  • Arbitrary Locations
  • Polygonal or Circular
  • Inclusion or Exclusion
  • Defined by list, like missions
  • No height/altitude restriction

2

X

X

X

Global Minimum Altitude

  • FENCE_ALT_MIN defines min altitude

3

X

Note

如果 FENCE_TYPE = 2 包含区重叠,则即使在另一个包含区内,在跨越边界时也会出现栅栏破损,除非 FENCE_OPTIONS1 被设置为使所有包含区成为一个联合集。

3 破坏栅栏行动

无人车行动

无人车没有高度动作,但如果在转向模式或 Acro 模式下到达圆柱形栅栏边界,则会直接停止,不再移动。在其他模式下,它会执行 FENCE_ACTION

旋翼行动

LoiterPosHoldAltHold 模式下,旋翼机将在 FENCE_ALT_MAX 处停止增加高度。

Loiter 模式下,它会尝试停在水平边界上,但如果超过边界就会宣布突破。

在其他模式下,如果达到高度或边界,它将执行下面的 FENCE_ACTION

FENCE_ACTION

Copter

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,但如果无法切换到该模式(即 RTLGPS 锁定丢失),它将尝试切换到下一模式,在本例中为 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 自动高度规避

对于 CopterPlane 的着陆模式(NAV_LANDQLANDLAND 等),FENCE_ALT_MIN 限制将自动禁用。

对于多边形栅栏,在 LoiterPosHoldAltHold 模式下,Copter 将在 FENCE_ALT_MAX 时停止增加高度。

Note

除非 FENCE_MARGIN 参数足够宽松以适应这些缺陷,否则高度控制缺陷仍会导致漏洞。

6 在任务规划器中启用围栏

要启用栅栏,请进入任务规划器完整参数列表(配置->完整参数树),搜索带有 FENCE_ 的项目:

Copter GeoFence 标签

CopterTraditional Heli 与任务规划器连接后,会出现一个名为 GeoFenceCONFIG 选项卡,提供了在这些飞行器中访问这些参数的另一种方式。

7 用于遥控飞行训练

地理围栏的主要用途之一是教自己(或其他人)驾驶无线电遥控飞行器。有了正确配置的地理围栏,就很难发生坠机,你可以尝试一些通常很可能导致坠机的操作,相信自动驾驶仪会在飞行以灾难告终之前将飞行器“弹出”地理围栏。

地理围栏可与任何飞行模式相结合。因此,对于初学者来说,可以将其与其中一种稳定飞行模式结合使用。一旦飞行员有了一定的信心,就可以将其与 CopterACRO 模式或 PlaneMANUAL 模式相结合,这样就可以直接控制飞行器,做出最有趣的特技飞行动作。

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;如果在围栏外,则为 1breach_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 应用程序可能会支持交互式启用和禁用地理围栏,而无需使用手动发射器。


http://www.ppmy.cn/server/160210.html

相关文章

梯度提升决策树树(GBDT)公式推导

### 逻辑回归的损失函数 逻辑回归模型用于分类问题,其输出是一个概率值。对于二分类问题,逻辑回归模型的输出可以表示为: \[ P(y 1 | x) \frac{1}{1 e^{-F(x)}} \] 其中 \( F(x) \) 是一个线性组合函数,通常表示为&#xff…

javaEE初阶(计算机是如何工作的(2) )

前言 在信息化时代,计算机已经成为我们日常生活中不可或缺的工具。从个人使用的智能手机和电脑,到庞大的企业服务器和高效的超级计算机,计算机无处不在,深刻影响着我们的工作、学习、娱乐甚至社会结构。了解计算机的工作原理和结…

Unix 与 Linux:操作系统的核心区别

Unix 和 Linux 是两种广泛使用的操作系统,它们在设计理念、架构、许可和使用场景等方面存在一些核心区别。以下是两者的详细比较: 1. 起源与发展 Unix 起源:Unix 系统最早在 1969 年由 AT&Ts Bell Labs 开发。发展:Unix 是…

python轻量级框架-flask

简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用,适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架,是因为它与一些大型 Web 框架…

Selenium爬取HTTP网站自动跳转问题的解决

在Linux服务器上我编写了一个爬虫程序,通过SeleniumChrome Driver的方式来进行数据爬取,其中有一个网站是HTTP的,没有启用HTTPS,在Linux上运行没有问题。最近打算把这个程序迁移到Windows上运行,但是遇到一个奇怪的问题…

iOS面试模版

iOS基础面试题:iOS基础知识| ProcessOn免费在线作图,在线流程图,在线思维导图 iOS高级面试题:https://juejin.cn/post/6844903752835530765 先自我介绍,看有无亮点,了解一下做过的项目类型 了解技术栈(oc、swift、sw…

第五章:VRRP和HSRP的网关冗余配置与管理

一、HRSP 1、简介 在骨干网的设备连接中,单一的设备容易出现故障造成网络的中断,可靠性较差,如图所示,如果核心交换机出现问题,不能正常工作,会影响整个网络的通信,因为整个网络的数据转发是通…

leetcode 62. 不同路径

题目如下 数据范围 因为机器人只能向下或者向右所以当机器人所处坐标为(i,j)时机器人仅能从(i - 1,j) 或者(i,j - 1)到达。所以这道题的思路很好得到:令f(i,j)为机器人到达此处的路径数 则f(i,j) f(i - 1,j) f(i,j - 1)通过代码 class Solution { public:int un…