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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

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

mybatis的多对一、一对多的用法

目录 1、使用VO聚合对象(可以解决这两种情况) 多对一: 一对多: 2、非聚合的多对一做法: 3、非聚合的一对多做法: 1、使用VO聚合对象(可以解决这两种情况) 当我需要多对一、一对…

Vscode:问题解决办法 及 Tips 总结

Visual Studio Code(简称VSCode)是一个功能强大的开源代码编辑器,广泛用于各种编程语言和开发场景,本博客主要记录在使用 VSCode 进行verilog开发时遇到的问题及解决办法,使用过程中的技巧 文章目录 扩展安装失败调试配…

MySQL 窗口函数

MySQL 窗口函数 1,窗口函数 1.1,什么是窗口函数1.2,基本语法 2,函数详解 2.1,聚合函数2.2,排序函数2.3,偏移函数2.4,值函数 3,进阶用法 1,窗口函数 1.1&am…

基于vite+vue3+mapbox-gl从零搭建一个项目

下面是基于 Vite、Vue 3 和 Mapbox GL 从零搭建一个项目的完整步骤,包括环境搭建、依赖安装、配置和代码示例。 文章目录 1. 初始化项目2. 安装 mapbox-gl 依赖3. 配置 Mapbox Access Token4. 实现地图组件5. 在 App.vue 中使用地图组件6. 启动开发服务器7. 添加自定…

Data Filtering Network 论文阅读和理解

目录 一、TL;DR 二、Introduction 2.1 apple的结论 2.2 业界做法: 2.3 我们的做法(Apple) 2.4 如何获取好的DFN 三、未完待续(这周出去购物了,下周继续补充) 一、TL;DR 核心…

ingress-nginx代理tcp使其能外部访问mysql

一、helm部署mysql主从复制 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo updatehelm pull bitnami/mysql 解压后编辑values.yaml文件,修改如下(storageclass已设置默认类) 117 ## param architecture MySQL archit…

浅谈安科瑞电能质量监测和治理产品在分布式光伏电站的应用-安科瑞 蒋静

1 概述 随着对可再生能源需求的增加,分布式光伏电站的建设和发展迅速。然而,分布式光伏电站的运行过程中面临着一系列问题,比如导致企业关口计量点功率因数过低、谐波污染等。这些问题不仅影响光伏电站自身的运行效率,还会对企业…

CSS实现实现票据效果 mask与切图方式

一、“切图”的局限性 传统的“切图”简单暴力,但往往缺少适应性。 适应性一般有两种,一是尺寸自适应,二是颜色可以自定义。 举个例子,有这样一个优惠券样式 关于这类样式实现技巧,之前在这篇文章中有详细介绍: CSS 实现优惠券的技巧 不过这里略微不一样的地方是,两个…

ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档

一、云电脑:电竞新宠崛起 在电竞游戏不断发展的今天,硬件性能成为了决定游戏体验的关键因素。为了追求极致的游戏画面与流畅度,玩家们往往需要投入大量资金购置高性能电脑。然而,云电脑技术的出现,为玩家们提供了一种…

Kotlin Bytedeco OpenCV 图像图像50 仿射变换 图像缩放

Kotlin Bytedeco OpenCV 图像图像50 仿射变换 图像缩放 1 添加依赖2 测试代码3 测试结果 在OpenCV中,仿射变换(Affine Transformation)和透视变换(Perspective Transformation)是两种常用的图像几何变换方法。 变换方…

回归预测 | MATLAB基于TCN-BiGRU时间卷积神经网络结合双向门控循环单元多输入单输出回归预测

效果一览 基本介绍 回归预测 | MATLAB基于TCN-BiGRU时间卷积神经网络结合双向门控循环单元多输入单输出回归预测 一、引言 1.1、研究背景及意义 在当今数据驱动的时代,时间序列预测已成为金融、气象、工业控制等多个领域的关键技术。随着人工智能和机器学习技术的…

TMC2208替代A4988

前言 TMC2208 是一款先进的 1 轴步进驱动器,支持 stealthChop ™和 256 微步。本应用说明介绍了如何设置 TMC2208 以替代 A4988(传统模式)。 引脚比较 与其他电机驱动器相比,TMC2208 具有附加功能:256 微步。 自动…

多层 RNN原理以及实现

数学原理 多层 RNN 的核心思想是堆叠多个 RNN 层,每一层的输出作为下一层的输入,从而逐层提取更高层次的抽象特征。 1. 单层 RNN 的数学表示 首先,单层 RNN 的计算过程如下。对于一个时间步 t t t,单层 RNN 的隐藏状态 h t h_t…

数据结构——AVL树的实现

Hello,大家好,这一篇博客我们来讲解一下数据结构中的AVL树这一部分的内容,AVL树属于是数据结构的一部分,顾名思义,AVL树是一棵特殊的搜索二叉树,我们接下来要讲的这篇博客是建立在了解搜索二叉树这个知识点…

【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析

【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础,提供集中日志记录和分析,以及端到端可见性。因此,分析师可以更有效地管理安全状态,将安全流程自动化,并快速响应威胁。具有分析和自动化功能的集成…

【KOA框架】koa框架基础及swagger接口文档搭建

koa是express的一层封装,语法比express更加简洁。所以有必要了解下koa的相关开发方法。 代码实现 package.json {"name": "koapp","version": "1.0.0","main": "index.js","scripts": {…

[深度学习]机器学习和深度学习

机器学习和深度学习 文章目录 机器学习和深度学习人工智能与机器学习和深度学习的关系侠义的机器学习深度学习的概念常见的神经网络的输入形式想要的输出(任务类别)深度学习的流程 线性函数与多层神经元 人工智能与机器学习和深度学习的关系 所谓人工智能就是,让计算…

【QT】已解决:Qt4.11.0无法使用MSVC编译器问题

目录 一、背景 1.本机环境 2.问题描述 3.问题解决前后对比图 二、详细操作 1.下载项目二所需qt环境 2.解决思路 3.安装VS2017 4.安装MSVC调试器 5.打开qtCreator查看编译器 5.编译运行项目二 三、参考 一、背景 1.本机环境 windows11 qtCreator4.11.0 minGW 64位…

C++ 模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…