当前位置: 首页 > news >正文

(6)用于无GPS导航的Nooploop

文章目录

前言

1 所需的硬件

2 准备锚具

3 放置锚具

4 准备标签

5 将标签连接至飞行控制器

6 通过地面站进行配置

7 地面测试

8 飞行测试

9 数据闪存记录


前言

本文介绍了如何使用基于 UWB(超宽带)技术的 Nooploop 系统作为 GPS 的短程替代品,实现 Loiter、PosHold、RTL、Auto indoors 等定位控制模式。


1 所需的硬件

  • 5 个 Nooploop LinkTrack 节点;
  • 一个 Arduino Nano Every(可选);
  • 4 个带 A 型 USB 端口的便携式充电器(portable chargers),为锚点供电(可选);
  • 4 个用于安装锚点的三脚架(tripods)(可选)。

2 准备锚具

需要配置 4 个 Nooploop 节点作为锚点。请按照 LinkTrack user manual 用户手册进行设置和校准。

3 放置锚具

锚点应放置成矩形。锚点 0 将作为 “原点”,Nooploop 系统的 Y 轴将作为 “正北”。如果从 0 号锚点到 1 号锚点之间的直线是正北方向,配置会稍微简单一些,但这并不是必需的,因为 BCN_ORIENT_YAW 参数可用于解释这种差异。

4 准备标签

使用 Nooploop NAssistant 工具配置一个节点作为标记。

  • 将协议设置为 Node_Frame2
  • 将波特率设置为 921600
  • 将更新率设置为 25
  • 将滤波系数设为 0

5 将标签连接至飞行控制器

可以将标签的 UART 端口直接连接到 FC。不过,某些 FC 的 UART Tx 与 Nooploop的 UART Rx 不兼容(据 Nooploop 开发人员称,这似乎是 Nooploop 节点内的 CP2012 造成的。删除 CP2012 有可能解决这个问题)。它会导致 FC 无法与标签通信。Pixhawk 4 mini 和 Kakute F7 已确认存在此问题。在这种情况下,可以使用 Arduino Nano Every 作为一种变通办法。使用 Ardnio IDE 将 Nooploop 解决方法草图(Nooploop work-around sketch)上传到 Arduino Nano Every,并将其 UART Tx 连接到标签的 UART Rx。在下文中,我们假设标签连接到 FC 的 UART 端口(对应 SERIAL1)。

6 通过地面站进行配置

确保在自动驾驶仪上加载 Copter-4.1(或更高版本),并与地面站(即任务规划器)连接。

  • 将 BCN_TYPE 设置为 3(表示使用 Nooploop 系统);
  • 将 BCN_LATITUDE、BCN_LONGITUDE 和 BCN_ALT 设置为与实际位置一致。这些值是否完全正确并不特别重要,但为了能从 ArduPilot 内的数据库中正确查找指南针的偏角,还是需要将它们设置为接近的值;
  • 将 BCN_ORIENT_YAW 设置为从原点锚点到第二个锚点的航向。获取该值的一种方法是,站在原点控制飞行器,使其机头指向第二个信标。从 HUD 上读取飞行器的航向,并将该值输入 BCN_ORIENT_YAW;
  • 将 EK3_BCN_DELAY 设置为 20;
  • 将 EK3_SRC1_POSXY 设置为 4 (“Beacon”);
  • 将 EK3_SRC1_POSZ 设置为 4(“Beacon”)以使用 NoopLoop 获取高度,或保留为 “1”以使用气压计;
  • 将 EK3_SRC1_VELXY 设置为 0(无);
  • 将 EK3_SRC1_VELZ 设置为 0(无);
  • 将 EK3_SRC1_YAW 设置为 1(“指南针”),因为指南针必须与此设备一起使用;
  • 将 GPS1_TYPE 设置为 0 以禁用 GPS;
  • 将 ARMING_CHECK 设置为 -9 以禁用 GPS 解锁检查;
  • 将 SERIAL1_BAUD 设置为 921,将 SERIAL1 的波特率设置为 921600;
  • 将 SERIAL1_PROTOCOL 设置为 13,以便读取 IndoorLoiter2 协议;
  • 将 BRD_SER1_RTSCTS 设置为 0,以确保 SERIAL1 不使用流量控制(假设它具有此功能)。

7 地面测试

  • 自动驾驶仪连接到地面站;
  • 大约 1 分钟后,飞行器的位置应跳转到你在配置步骤(上文)中输入的经度和纬度;
  • 检查飞行器的位置是否相对稳定(即移动距离不超过一米);
  • 在锚点之间走动飞行器,确保其在地图上的位置更新正确。

8 飞行测试

将发射机设置为 Stabilize、AltHold 和 Loiter 飞行模式。在 AltHold 模式下起飞并保持稳定悬停。切换到 Loiter模式,但随时准备在飞行器位置或高度不稳定时切换回 AltHold 或 Stabilize 模式。

9 数据闪存记录

与信标的距离可在数据闪存日志 BCN 报文的 D0、D1、D2 和 D3 字段中找到。

相关文章:

  • [原创](Modern C++)现代C++的关键性概念: 灵活多变的绑定: std::bind
  • 化学工业领域 - 石油化工、高分子化工、生物化工极简理解
  • 软考 中级软件设计师 考点知识点笔记总结 day05
  • E1-数组的平衡点2(前缀和)
  • .[OnlyBuy@cyberfear.com].REVRAC勒索mysql恢复---惜分飞
  • 基于 ELK、Python、OLaMA 和飞书群的 AI 自动化巡检方案
  • 25. K 个一组翻转链表(C++)
  • 微服务面试题:远程调用
  • 注解与设计模式:解锁Java编程的魔法与艺术!
  • mac npm run dev报错 error:0308010C:digital envelope routines::unsupported
  • Redis基础:命令行操作实践指南
  • QML与C++交互
  • Flink读取Kafka数据写入IceBerg(HiveCatalog)
  • 汽车一键启动系统使用方便,舒适出行,轻松匹配
  • Java 中线程废弃方法(stop、suspend、resume)原因及替代方案
  • 2025年春季学期《算法分析与设计》练习4
  • 碰一碰发视频saas系统技术源头一站式开发文档
  • Tomcat虚拟主机配置详解:Centos环境下多域名部署(详细教程!)
  • 输入输出 数组 冒泡排序举例
  • 基于Spring Boot的大学校园生活信息平台的设计与实现(LW+源码+讲解)
  • 浙江理工大学传播系原系主任刘曦逝世,年仅44岁
  • 南京艺术学院博导、雕塑家尹悟铭病逝,年仅45岁
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 盐城经济技术开发区党工委书记王旭东接受纪律审查和监察调查
  • 广西百色“致富果”:高品质芒果直供香港,带动近五千户增收
  • 刘国中将出席第78届世界卫生大会并顺访瑞士、访问白俄罗斯