(7)(7.2) 围栏

文章目录

前言

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/956819.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ARP 表、MAC 表、路由表、跨网段 ARP

文章目录 一、ARP 表1、PC2、路由器 - AR22203、交换机 - S57004、什么样的设备会有 ARP 表? 二、MAC 表什么样的设备会有 MAC 表? 三、路由表什么样的设备会有路由表? 四、抓取跨网段 ARP 包 所谓 “透明” 就是指不用做任何配置 一、ARP 表…

信号与系统学习(二)

1.3信号的分类:能量与功率信号,因果与反因果 1.能量信号和功率信号 将信号f(t)施加与1Ω电阻上,它所消耗的瞬时功率为|f(t)|,在区间(-∞,∞)的能量和平均功率定义为 能量有限信号:…

k8s的CICD实施项目

环境需求: 目前领导需要做一个需求,临时把我从运维岗位,把我调度到到专家组让我主导cicd的项目实施 目前环境资源 k8s环境,28台服务器,上面是k8s集群,要实施一个测试环境的cicd以及一个生产环境的cicd gitl…

python轻量级框架-flask

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

uniapp——App 监听下载文件状态,打开文件(三)

5 实现下载文件并打开 这里演示,导出Excel 表格 文章目录 5 实现下载文件并打开DEMO监听下载进度效果图为什么 totalSize 一直为0? 相关Api: downloader DEMO 提示: 请求方式支持:GET、POST;POST 方式需要…

Java设计模式—观察者模式

观察者模式 目录 观察者模式1、什么是观察者模式?2、观察者模式优缺点及注意事项?3、观察者模式实现?4、手写线程安全的观察者模式? 1、什么是观察者模式? - 实例:现实生活中很多事物都是依赖存在的&#x…

大象机器人发布首款穿戴式数据采集器myController S570,助力具身智能数据收集!

myController S570 具有较高的数据采集速度和远程控制能力,大大简化了人形机器人的编程。 myController S570 是一款可移动的轻量级外骨骼,具有 14 个关节、2 个操纵杆和 2 个按钮,它提供高数据采集速度,出色的兼容性&#xff0c…

模型部署工具01:Docker || 用Docker打包模型 Build Once Run Anywhere

Docker 是一个开源的容器化平台,可以让开发者和运维人员轻松构建、发布和运行应用程序。Docker 的核心概念是通过容器技术隔离应用及其依赖项,使得软件在不同的环境中运行时具有一致性。无论是开发环境、测试环境,还是生产环境,Do…

二、点灯基础实验

嵌入式基础实验第一个就是点灯,地位相当于编程界的hello world。 如下为LED原理图,要让相应LED发光,需要给I/O口设置输出引脚,低电平,二极管才会导通 2.1 打开初始工程,编写代码 以下会实现BLINKY常亮&…

推荐一个开源的轻量级任务调度器!TaskScheduler!

大家好,我是麦鸽。 这次推荐一款轻量级的嵌入式任务调度器,目前已经有1.4K的star,这个项目比较轻量化,只有5个源文件,可以作为学习的一个开源项目。 核心文件 项目概述: 这是一个轻量级的协作式多任务处理&…

【Vim Masterclass 笔记21】S09L39:Vim 设置与 vimrc 文件的用法示例(二)

文章目录 S09L39 Vim Settings and the Vimrc File - Part 21 Vim 的配色方案与 color 命令2 map 命令3 示例:用 map 命令快速生成 HTML 代码片段4 Vim 中的 Leader 键5 用 mkvimrc 命令自动生成配置文件 写在前面 本篇为 Vim 自定义配置的第二部分。当中的每个知识…

StarRocks 怎么让特定的SQL路由到FE master节点的

背景 本文基于 StarRocks 3.1.7 大家都知道对于Starrocks来说 FE 是分 master和follower的,而只有master节点才能对元数据进行写操作。但是为什么呢?哪里有体现呢? 这其中的原因在网上是搜不到的,所以大家只知道只有master节点才…

抽奖系统(4——活动模块)

1. 活动创建 需求回顾 创建的活动信息包含: 活动名称活动描述关联的一批奖品,关联时需要选择奖品等级(一等奖、二等奖、三等奖),及奖品库存圈选一批人员参与抽奖 tip:什么时候设置奖品数量和奖品等级&am…

探索 Stable-Diffusion-Webui-Forge:更快的AI图像生成体验

目录 简介🌟 主要特点📥 安装步骤1. 下载2. 配置环境和安装依赖3. 模型目录说明 🚀 运行 Stable-Diffusion-Webui-Forge1. 进入项目目录2. 运行项目3. 打开页面 🎨 使用体验常见问题📝 小结 简介 Stable-Diffusion-We…

电梯系统的UML文档04

这个版本的类图是直接从4.2节中用例图的描述得来的,这个视图中的类覆盖了系统所有的功能。我们用电梯类和电梯控制器类(ElevatorControl)移动或停止电梯;用门类开门或关门;用指示器类让乘客知道电梯的位置和方向&#…

我的创作纪念日——我与CSDN一起走过的365天

目录 一、机缘:旅程的开始 二、收获:沿路的花朵 三、日常:不断前行中 四、成就:一点小确幸 五、憧憬:梦中的重点 一、机缘:旅程的开始 最开始开始写博客是在今年一二月份的时候,也就是上一…

详解Redis的Zset类型及相关命令

目录 Zset简介 ZADD ZCARD ZCOUNT ZRANGE ZREVRANGE ZRANGEBYSCORE ZPOPMAX BZPOPMAX ZPOPMIN BZPOPMIN ZRANK ZREVRANK ZSCORE ZREM ZREMRANGEBYRANK ZREMRANGEBYSCORE ZINCRBY ZINTERSTORE 内部编码 应用场景 Zset简介 有序集合相对于字符串、列表、哈希…

Flask:后端框架使用

文章目录 1、介绍2、demo演示3、Flask请求和响应 3.1 演示demo3.2 request获取请求体数据3.3 requests发送请求3.4 响应返回和接收 4、特殊路由 4.1 路由重定向4.2 路由拦截器 1、介绍 Flask是由python语言编写的轻量级Web应用框架,主要应用于后端框架&#xff…

【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析

前言 本文分析的实例来源于nacos在github上的开源仓库 nacos配置的增删查改 先具体来看一段代码,我将逐步分析每一段的作用 package mainimport ("fmt""time""github.com/nacos-group/nacos-sdk-go/clients""github.com/naco…

Nvidia Blackwell架构深度剖析:深入了解RTX 50系列GPU的升级

在CES 2025上,英伟达推出了基于Blackwell架构的GeForce RTX 50系列显卡,包括RTX 5090、RTX 5080、RTX 5070 Ti和RTX 5070。一段时间以来,我们已经知晓了该架构的各种细节,其中许多此前还只是传闻。不过,英伟达近日在20…