资料介绍
描述
该项目由 Matthew Hurley 撰写,是为 NXP HoverGames 挑战 2 提交的作品:帮助无人机,在大流行期间帮助他人。
动机
围绕当前的大流行,蝙蝠受到了广泛的关注。更准确地说,负面关注是因为它们被确定为 SARS-CoV-2 链的携带者和潜在来源。当然,由于我们的团队成员之一是野生动物生物学博士生,专门研究蝙蝠,我们认为这个项目和比赛是促进和阐明蝙蝠研究的绝佳机会。特别是,我们的努力集中在寻找带有无线电标签的蝙蝠的过程上。
你可能会想,“蝙蝠研究与流行病有什么关系?” 由于蝙蝠是一些重要疾病的携带者,包括狂犬病、埃博拉病毒和如前所述的 SARS-CoV-2,蝙蝠的基础研究在全球流行病防治中发挥着至关重要的作用。虽然蝙蝠携带新病毒链的能力肯定不是独一无二的(大多数致命病毒来自其他哺乳动物),但它们携带的病毒往往具有特别强的毒性。此外,它们独特的免疫系统以及它们是唯一会飞行的哺乳动物这一事实,使蝙蝠物种成为研究引起大流行的病毒的绝佳案例。随着人类对蝙蝠栖息地的侵占越来越多,这反过来又意味着与它们接触的机会越来越多,现在正是我们将蝙蝠研究游戏提升到一个新水平的最佳时机。
问题
如果读者对蝙蝠研究过程有简短的背景,就更容易理解我们要解决的问题。一般情况如下:
从傍晚开始,在蝙蝠似乎可能会捕猎的地方架起大而轻的网。当蝙蝠被抓到时,科学家们会进行多次测量,记录它们的性别,注意物种,最后,剃掉蝙蝠的背部,并在上面粘上一个电池供电的无线电标签。标签会在那里停留一两天,直到头发长得足够长并且标签脱落。在那个短暂的窗口期间,通常意味着标记蝙蝠后的早晨,研究人员必须前往树林并开始追踪。这里的兴趣是在标签脱落之前找到蝙蝠的栖息地,或者蝙蝠在第二天晚上离开范围。对于世界各地的大多数团队来说,这意味着使用手持八木(定向)天线进行驾驶、远足和丛林探险。这是一个费时费力的过程,而且鉴于追踪蝙蝠的时间如此之短,这可能不利于成功的研究工作。大流行只会加剧这些问题,需要更小的团队,并限制时间和资源。
我们的解决方案:
我们的目标是加快跟踪过程,并减少资源密集型。无人机有很多方法可以做到这一点,但我们坚持使用简单的方法:将定向天线绑在无人机上,让它在不同的位置绕圈飞行,然后使用三角测量蝙蝠的位置收集到的数据。此过程可用作蝙蝠位置的粗略表征,或告知研究人员从哪里开始搜索。请注意,这种方法显然不仅限于研究蝙蝠;它可用于定位任何类型的无线电信标。但是,由于蝙蝠标签必须很小,而 GPS 模块又太大,因此该解决方案在蝙蝠研究领域具有特殊的优势。我们希望这不仅能帮助研究工作,还能帮助受疫情限制的研究人员。
建造蝙蝠直升机
现在已经涵盖了基础知识,让我们进入构建蝙蝠跟踪无人机的细节。为此需要三个主要类别的组件:
- 无人机 - 在这种情况下是NXP Hovergames KIT-HGDRONEK66
- 配套计算机 - 我们使用的是 Raspberry Pi Zero W
- 天线/接收器系统 - 我们使用 RTL-SDR 软件定义无线电和 DIY Yagi 天线(KD5IVP Backpacker Yagi )
该项目还需要某种可以“跟踪”的无线电信标。我们使用了 Raspberry Pi 3B+ 和morrolinux 的 mpradio 。
希望以下内容不仅可以作为有关项目设置的有用信息,还可以作为未来用户的指南。
无人机组装
建造始于无人机组装。NXP 有一个很棒的 gitbook 用于完整设置无人机,以及与开发和离线控制相关的其他资源:https ://nxp.gitbook.io/hovergames/
安装和连接配套计算机(RPi 零 W)
接下来我们必须安装 Raspberry Pi 零 W 和相关硬件。DROK 90010 5V 降压转换器用于从无人机电池中获取电力。该案例和其他 Hovergames 附件可以在Thingiverse 上找到。
电源线焊接到引脚 4(5V 输入)和 6(接地),然后可以通过 WAGO 或线螺母连接到降压转换器。转换器的电源输入线焊接在无人机的配电板上。JST-GH 连接器也焊接到引脚 8 (Tx)、10 (Rx) 和 9 (Gnd),与FMU 上 telem2 端口的引脚排列描述相匹配。telem2 端口是我们用来与无人机 fmu 通信的端口,通过 mavsdk-python。安装对mavsdk-python 的支持后,
pip3 install --user --upgrade mavsdk
使用 GitHub 页面示例文件夹中的 firmware_version.py 测试了连接。注意必须调用正确的系统地址,
system_address=“serial:///dev/serial0:921600”
必须禁用蓝牙,并且还必须禁用 Linux 串行控制台。
特设网络
配套计算机难题的最后一块是找出远程启动跟踪任务的方法。显然,对于 mavsdk-python,没有用于监控 RC 开关状态的现有 API。由于这不是我们的专业领域,我们选择在树莓派上建立一个 Ad Hoc 网络。以下是树莓派上的编辑/etc/network/interfaces
文件,它将允许树莓派广播网络:
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 10.2.1.1
netmask 255.255.255.0
wireless-channel 1
wireless-essid PiAdHocNetwork
wireless-mode ad-hoc
还必须从终端执行以下操作:
systemctl stop dhcpcd.service
设置好这个网络后,您所要做的就是通过 ssh 连接到 Ad Hoc 网络,然后从那里运行 python 脚本。这种方法很粗糙,但提供了完整的功能,因为您可以启动程序、终止它们并监控终端的打印消息。
连接软件定义无线电
下一步是连接 RTL-SDR 并在树莓派上安装对它的支持。所需要的只是一根微型 USB 到 USB-A 电缆,无线电可以通过它连接到 Raspberry Pi。然后收音机被用拉链绑在无人机上。
遵循从源代码手动安装 RTL-SDR 驱动程序的说明,并通过-roger 的 pyrtlsdr添加了 python 支持。跑步
rtl_test
就是测试连接所需要的一切。
建造天线
提出的用于定位无线电源的方法需要定向天线。Yagi 天线在指向信号时具有高增益,KD5IVP Backpacker Yagi是一种轻量级的解决方案,看起来很有希望,因为它必须由无人机携带。我们使用与原始设计者相同的尺寸,制作 2 米波段的天线,因为蝙蝠发射器标签通常以 150MHz 左右的频率广播。我们使用箭头轴作为中央支撑、10 规格剥线用于元件以及用于连接驱动元件的 SMA 连接器/鳄鱼夹(焊接在一起)来构建天线。这个旧的 YouTube 视频为组装天线提供了一些良好的视觉效果和说明。天线使用两块小木板和扎带安装在无人机起落架上,确保轴与无人机上的数字罗盘一致。
创建无线电信标
最后一步是想出一个可以被无人机定位的无线电信标。为此,我们使用了带有morrolinux mpradio 的Raspberry Pi 3B+ 。Pi 被设置为以 150MHz 的频率广播,以匹配天线的设计。在 Pi 的 GPIO 引脚 4 上添加了一小段电线,用作它自己的发射天线。
请注意,在没有许可证的情况下以 VHF 频率广播是非法的,建议仅使用低功率(我们这样做)这样做。
测试
在测试无人机的全部功能之前,有必要测试组件(除了简单的连接测试)。
执行了大量的 SITL 模拟运行,并在开发过程中发挥了重要作用,允许一次添加和测试一个代码。根据PX4 开发人员指南中的说明,使用了与 PX4 SITL 实例结合运行的 jMAVSim 。所有的模拟和初始开发都是在 Linux 虚拟环境中完成的,与 PX4 实例的通信是通过 mavsdk-python 执行的。这两个过程都在PX4 开发者指南、mavsdk-python文档和NXP gitbook中有详细记录。
为了测试 SDR、天线和信标的功能,在 Linux 虚拟环境中使用了一个名为 CubicSDR 的程序。该程序以视觉友好的方式将光谱功率分布显示为频率的函数。我们用它来测试信标广播频率和强度,以及天线接收。它还用于对八木天线的增益和方向性进行定性表征。
该项目的“代码”部分还附加了代码,详细说明了通过终端的连接以及从原始无线电数据生成图。生成这些图被证明是一个必要的测试。与可能进行大量滤波和平均的 CubicSDR 不同,终端生成的图显示了 RTL-SDR 硬件固有的中心频率尖峰。这个峰值(据我粗略理解)是由硬件 FFT 引起的,必须在软件中加以考虑。为了解决这个问题,中心频率简单地移动了 500kHz。这导致了 2MHz 的采样带宽,以 150.5MHz 为中心,使感兴趣的频率 (150MHz) 不受中心频率尖峰的任何影响。
最后,将无人机仿真代码和无线电数据代码结合起来,在模拟器中运行。本文档的“代码”部分附有经过模拟器测试的最终代码,可提供完整的理论功能。
使用 GitHub 页面中的更多示例代码(包括武装、健康和遥测)对无人机本身进行了测试(在 SITL 或 HITL 之外)。这些示例简单明了,不言自明,因此这里不再赘述。
简要代码说明
正如所附代码的描述所引用的:
无人机将飞行 10 米,然后缓慢旋转一圈,以每 3 度增量记录数据。它记录经度、纬度、罗盘方向(从北方看的度数,从上方看时顺时针方向)、信号频率(无线电扫描一个频带)和以 dB 为单位的实值功率谱值。请注意,频率偏离中心,以避免由 rtl-sdr 固有硬件设计导致的中心频率尖峰。然后,您可以在所需频率(在本例中为 150 MHz)附近平均几个频率。
少女追踪任务和结果
由于项目最后两周的时间限制和不间断的降雨,我们只执行了一次定位信标的任务。有/有错误需要解决,但总体而言,这个概念确实得到了证明。请记住,目标是在两个不同的位置获得罗盘方位,指示最强信号的方向和(希望)信标位置。结果详述如下:
该任务是在一个大场地中执行的,信标在场地中心附近处于活动状态,而无人机则在场地一端相对两侧的两个位置发射。下着毛毛雨,微风,所以我们当然可以要求更好的条件,但至少天气表明硬件具有弹性。
航班#1
第一次飞行出现了一些错误,包括代码连接错误块的问题,我们最终将其删除。
async for state in drone.core.connection_state():
if state.is_connected:
print(f"Drone discovered with UUID: {state.uuid}")
break
在第一次成功起飞后,无人机卡在了下一个街区(可能是因为它的高度不够高),所以它也在飞行中被移除,并用一个 15 秒的睡眠呼叫代替。
async for position in drone.telemetry.position():
altitude = position.relative_altitude_m
if altitude > 9.5:
break
经过这两次修复后,任务成功了……
除了着陆!
请注意,我们在起飞时遇到了天线接触地面的问题(您可以在上面的第一个视频中看到弯曲的反射器元件),这绝对是不可取的,并且可能指向未来的一些问题。
航班 #1 数据
第一次飞行的数据看起来非常好。以 3 度为增量收集了 2MHz 的带宽,该频带内的 256 个样本。对于每个罗盘增量,对 150MHz 附近的六个最接近频率处的功率谱(Pxx;单位有些随意,并且更具比较性)进行平均。正如预期的那样,Pxx 中有两个“尖峰”(一个可能是因为信号直接在天线前面,一个在天线后面)大约 190 度和 0 度。在这种情况下,采用了最大 Pxx 的罗盘方位。
这次飞行本身就是一个很好的概念证明,因为我们有额外的好处知道信标在哪里,这与这个位置本身的方位很好地对齐。
航班#2
在飞行一坠毁后,删除了以下代码以防止另一次 action.return_to_launch 灾难:
print("Returning to launch")
await drone.action.return_to_launch()
值得注意的是,坠机后无人机遭受了一些损坏,尽管伤害很小。然而,天线严重弯曲(所以我们将它向后弯曲!),这可能影响了第二次飞行的性能。同样的任务是在一个新的地点进行的。我们还应该提到,天线在起飞时再次触地,将其中一个驱动元件弯曲不对齐。
航班 #2 数据
第二次飞行的数据更脏,下面简要讨论。
这次飞行的问题有点棘手。看起来无人机开始接收到相对较强的信号,然后在转弯时下降,然后又开始回升——这一趋势与我们对八木天线性能的预期一致。然而,在大约 130 度时,发生了一些奇怪的事情,表明某处发生了故障。这可能是影响 SDR 的车载电源波动(坠机造成的未知损坏),但看起来更像是信标发生了什么事。此外,由于其中一个驱动元件在起飞时弯曲,因此预计此处的数据至少部分不可靠。
选择使用哪个数据点来获得方位并不一定很简单。但是,由于选择最大(接近 0 度)的方位会导致方位不相交,并且鉴于数据在“奇怪”事件发生之前呈 130 度上升趋势,我们选择了之前的点急剧下降。当然,这在一定程度上得益于了解信标的大致位置,但趋势肯定存在,即使没有一些先前的信标知识,这似乎也不是不合理的分析。
计算最终位置
每个位置有两个位置和方位,兴趣点的计算很简单:
Given point (x1,y1) with bearing D1, and point (x2,y2) with bearing D2, the intersection of those two bearings can be found by equating the following two formulas, where (x3,y3) is the point of interest:
y3 = s1(x3 - x1) + y1 , y3 = s2(x3 - x2) + y2
where s1 = tan(90 - D1) , s2 = tan(90 - D2)
这将产生以下最终地图:
最后,三角测量的位置离实际位置大约 10m。这是一个非常好的结果,有明显的改进空间。
最后的想法和未来的想法
虽然结果显着,但主要有以下三个方面需要改进:
- 天线设计和安装
在我们看来,这是最大的问题。拥有更精确的设计(例如,改进用于元件的 10 规格的剥线),并使天线不易受应力影响,应该会大大改善我们想要的窄接收带宽。此外,天线确实需要以更好的方式安装,以防止它在起飞时被夹住。
- 过滤 SDR 输入/输出
有许多方法可以做到这一点,目标再次是缩小接收带宽。
- 天线与指南针对齐
我们并没有过多谈论这个,因为,嗯,它真的只是目不转睛。未对准可以作为偏移进行校正(非常稳定的安装需要更多的运行),但是最好有一个夹具和/或校准程序来正确对齐所有东西。
还希望一次扫描多个频率,并可能让无人机飞到多个 GPS 位置,从而限制起飞和着陆的次数。这里的挑战将是优化扫描速度,以便在电池电量不足之前完成所有任务。
将来,我们希望尝试使用更小的八木天线来处理 UHF 频率(大约 800-900MHz)。这种系统的优势在于拥有更小、更实惠、更耐用的标签和天线(解决了上述大部分问题)。这里明显的缺点是较高的频率不会传播得那么远。这个问题可以相对容易地解决,方法是让无人机飞行搜索模式,直到它找到一个重要的信号(或某种形式的信号,例如 1Hz 载波上的 900MHz),然后它会像以前一样在几个位置旋转,三角测量, 并返回。这绝对是一个更复杂的系统,具有很大的潜力。
- 无人机结构与系统 8次下载
- DragonFly无人机原理图免费下载 26次下载
- 基于无人机图像的两阶段销钉缺陷检测模型 39次下载
- 一种通过轨迹和形态识别检测无人机的方法 18次下载
- 小型电动无人机的总体参数设计方法研究说明 19次下载
- 无人机的飞行原理的简介和设计资料说明 15次下载
- 警用无人机关键技术及发展趋势 13次下载
- 如何使用云计算进行无人机云操作系统的详细资料说明 8次下载
- 无人机和无人机控制方法及无人机远程操控系统方法说明 69次下载
- 如何使用无线电对无人机进行管控 7次下载
- 无人机中继模块和无人机图传控制系统介绍 60次下载
- 无人机柔性装配工装应用 2次下载
- 基于无人机的分类 20次下载
- 基于STM32的无人机姿态测量系统设计 44次下载
- 无人机侦测和反制系统 30次下载
- 无人机群的神秘面纱 无人机的未来发展路线 1451次阅读
- 关于如何制作一个无人机 3.7w次阅读
- 无人机是如何充电的? 2w次阅读
- 怎样使无人机安全飞行?无人机飞行需要掌握什么安全知识 1.5w次阅读
- 新疆为什么禁飞无人机_新疆无人机禁飞区域 5.7w次阅读
- 水下无人机的用途和优势有哪些 9214次阅读
- 水下无人机原理分析 1.3w次阅读
- nixie微型无人机的功能介绍_nixie微型无人机多少钱 1.3w次阅读
- 微型无人机发展前景_无人机发展趋势 8416次阅读
- 大疆做不做军用无人机 2w次阅读
- 中国有哪些军用无人机_国内军用无人机排名 11.2w次阅读
- 大疆无人机如何在禁飞区起飞 15.1w次阅读
- 电动无人机和油动无人机性能的对比 2710次阅读
- 无人机新手入门指南 1.5w次阅读
- 无人机发展的技术难点分析 4159次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多