(7)(7.2) 围栏

devtools/2025/1/21 10:43:08/

文章目录

前言

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/devtools/152325.html

相关文章

Conmi的正确答案——Rider中引入WebView2包(C#)

C#版本&#xff1a;.net 8.0 Rider版本&#xff1a;#RD-243.22562.250&#xff08;非商业使用版&#xff09; 1、在“MainWindow.xaml”文件中添加“WebView2”的wpf包信息&#xff1b; 2、在其下的“Grid”元素中添加“WebView2”的wpf映射对象&#xff1b; <Window x:Cla…

大语言模型增强推荐系统:分类、趋势、应用与未来

论文地址&#xff1a;https://arxiv.org/pdf/2412.13432v1 1. 引言 大语言模型&#xff08;LLM&#xff09;在语言理解和推理方面展现出了前所未有的能力【3, 69, 87】。传统的推荐系统&#xff08;RS&#xff09;主要依赖于协同信号【2, 65, 66】&#xff0c;而通过LLM补充语…

直驱式风电储能制氢仿真模型matlab/simulink

接着还是以直驱式风电为DG中的研究对象&#xff0c;上篇博客考虑的风电并网惯性的问题&#xff0c;这边博客主要讨论功率消纳的问题。 考虑到风速是随机变化的&#xff0c;导致风电输出功率的波动性和间歇性问题突出&#xff1b;随着其应用规模的不断扩大以及风电在电网中渗透率…

Qt 5.14.2 学习记录 —— 십칠 窗口和菜单

文章目录 1、Qt窗口2、菜单栏设置快捷键添加子菜单添加分割线和菜单图标 3、工具栏 QToolBar4、状态栏 QStatusBar5、浮动窗口 QDockWidget 1、Qt窗口 QWidget&#xff0c;即控件&#xff0c;是窗口的一部分。在界面中创建控件组成界面时&#xff0c;Qt自动生成了窗口&#xf…

Leiden算法一种用于社区检测的图聚类算法

Leiden算法是一种用于社区检测的图聚类算法&#xff0c;其灵感来源于Louvain算法&#xff0c;但进行了多项改进以提高社区划分的质量和效率。Leiden算法由荷兰莱顿大学的研究人员在2018年提出&#xff0c;旨在解决Louvain算法在某些情况下可能出现的不连通社区问题&#xff0c;…

Linux之网络套接字

Linux之网络套接字 一.IP地址和端口号二.TCP和UDP协议2.1网络字节序 三.socket编程的常见API四.模拟实现UDP服务器和客户端五.模拟实现TCP服务器和客户端 一.IP地址和端口号 在了解了网络相关的基础知识之后我们知道了数据在计算机中传输的流程并且发现IP地址在其中占据了确定…

深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)

深入了解Text2SQL开源项目&#xff08;Chat2DB、SQL Chat 、Wren AI 、Vanna&#xff09; 前言 1.Chat2DB2.SQL Chat3.Wren AI4.Vanna 前言 在数据驱动决策的时代&#xff0c;将自然语言查询转化为结构化查询语言&#xff08;SQL&#xff09;的能力变得日益重要。无论是小型…

Centos7搭建PHP项目,环境(Apache+PHP7.4+Mysql5.7)

###项目地址 商城系统&#xff08;PC.小程序.APP.架构SaaS&#xff09;当PHP遇上了Java&#xff0c;还来个GO: ???本仓库同时含JAVA与PHP源码??? 做电商&#xff0c;就找来客推&#xff0c;涵盖多种商业模式&#xff0c;注重界面美感与用户体验&#xff0c;打造独特电商…