×

HoverGames:空中战略家伴侣

消耗积分:0 | 格式:zip | 大小:0.17 MB | 2022-11-14

欲望都市

分享资料个

描述

抽象的

Air Strategist Companion 是一个由四旋翼无人机、Web 服务器和 Android 应用程序组成的系统,旨在提高森林消防人员的态势感知能力。该系统实时跟踪火点和消防人员,并在在线地图上显示他们的位置,该地图可以通过网络浏览器和安卓应用程序访问。无人机飞越火区,并使用带有计算机视觉的红外摄像机识别火点。它选择视野中最大的三个,以自主地遵循由它们组成的模式。如果火灾模式改变了形状、大小或位置,无人机将跟踪它并在没有人工干预的情况下重新定位。它还可以单独跟踪图案中的每个火点。每隔几秒,无人机将要在地图上绘制的检测到的火点的多边形近似值以及从其顶视图拍摄的相机照片上传到网络服务器。它还上传自己的 GPS 坐标、地速和全球/相对高度;笛卡尔坐标和每个火点的计算表面积和主要火灾模式,以及在其当前位置获取的地面温度读数。Web 服务器接收所有这些信息并将其可视化在网页上。该网页还有一个控制面板,可以从中选择多达七种无人机的自主跟踪任务模式。它还显示当前天气数据和未来 24 小时的预报天气数据。以及从其顶视图拍摄的相机照片。它还上传自己的 GPS 坐标、地速和全球/相对高度;笛卡尔坐标和每个火点的计算表面积和主要火灾模式,以及在其当前位置获取的地面温度读数。Web 服务器接收所有这些信息并将其可视化在网页上。该网页还有一个控制面板,可以从中选择多达七种无人机的自主跟踪任务模式。它还显示当前天气数据和未来 24 小时的预报天气数据。以及从其顶视图拍摄的相机照片。它还上传自己的 GPS 坐标、地速和全球/相对高度;笛卡尔坐标和每个火点的计算表面积和主要火灾模式,以及在其当前位置获取的地面温度读数。Web 服务器接收所有这些信息并将其可视化在网页上。该网页还有一个控制面板,可以从中选择多达七种无人机的自主跟踪任务模式。它还显示当前天气数据和未来 24 小时的预报天气数据。以及在其当前位置获取的地面温度读数。Web 服务器接收所有这些信息并将其可视化在网页上。该网页还有一个控制面板,可以从中选择多达七种无人机的自主跟踪任务模式。它还显示当前天气数据和未来 24 小时的预报天气数据。以及在其当前位置获取的地面温度读数。Web 服务器接收所有这些信息并将其可视化在网页上。该网页还有一个控制面板,可以从中选择多达七种无人机的自主跟踪任务模式。它还显示当前天气数据和未来 24 小时的预报天气数据。

定制开发的 Android 应用程序旨在安装在消防队员的移动设备中。该应用程序跟踪设备的 GPS 坐标并将其上传到 Web 服务器。系统检测到的所有机组人员的位置通过在线地图上的标记进行可视化,以及他们的姓名、ID 代码、GPS 坐标和当前状态。该应用程序在 GUI 中有一个“SOS 按钮”,机组成员可以在他们认为有必要的任何时候按下以向服务器发送“帮助”信号。可以从网络浏览器访问包含地图的网页,并且还显示在 Android 应用程序的 GUI 中。虽然这个原型使用红外摄像机来识别火点,但系统可以升级为使用热成像摄像机,只需极少的改动,以获得更强大的火灾探测系统。

 

框图、硬件和功能描述

poYBAGNxJO-AWnFtAARR5t0kk1E256.jpg
图 1:框图
 

图 1 显示了系统的主要功能组件。用于原型的无人机是 NXP 的 RDDRONE-FMUK66 HoverGames 四旋翼飞行器,带有 NXP RDDRONE-FMUK66 飞行管理单元 (FMU)。它配备了 Raspberry Pi 3 B+ 作为配套计算机和 Raspberry Pi NoIR V2.0 红外摄像头。为该原型选择了红外 (IR) 摄像头,因为火灾通常会发出红外辐射,可用于通过检测红外光而不是可见颜色来检测火灾,理论上即使在烟雾或灰尘后面也能检测到火点(假设相机能够检测给定燃烧类型发射的特定红外辐射波段)。

配套电脑自带独立电源,可在无人机关机换电池时保持运行。一个基于 OpenCV 的程序在其中运行,以访问摄像机的视频源并检测火点。摄像机安装在四旋翼的框架下方,向下指向地面。一旦检测到火点,算法就会选择三个最大的火点,并计算每个火点的几何近似多边形,以及它们在局部笛卡尔坐标中的对应位置以及它们对应的表面积。它还计算主火图案几何中心或质心的局部笛卡尔坐标。每隔几秒钟,还会从当前无人机的位置拍摄火区的顶视图,

pYYBAGNxJPSAFsyiAAYRkmzr4yo141.jpg
图 2:无人机完成。
 
poYBAGNxJPmAS3JRAAigapiu6CI284.jpg
图 3:完整的系统。
 

配套计算机通过 MAVLink 协议通过串行端口连接从飞行控制器接收无人机遥测数据(当前 GPS 坐标、全球和相对高度、地速等)。这些数据以及来自计算机视觉系统的火灾跟踪数据通过 HTTP 协议发送到 Web 服务器。配套计算机使用机器人操作系统 (ROS) 中间件“粘合”其所有软件组件:传感器接口、计算机视觉、自主飞行、与服务器的 HTTP 通信以及与无人机飞行控制器的 MAVLink 接口。两个用 Python 编写的 ROS 节点和两个用 C++ 编写的节点负责所有必需的任务。出于“概念验证”的目的,无人机依靠 WiFi 连接向服务器上传/下载所有数据,但它可以通过 GPRS 蜂窝调制解调器轻松升级,以便在相对偏远的地区运行。图 2 显示了完整的无人机构建,图 3 显示了完整的系统,包括指挥中心计算机和几个移动设备。图 4 显示了安装在四轴飞行器底盘上的配套计算机,以及摄像头和温度传感器。图 5 显示了连接图,包括与飞控的接口。

 
 
 
pYYBAGNxJP2AepsHAAW20wZClL4104.jpg
 
1 / 2图4a:配套计算机安装。
 
poYBAGNxJQCAdXeEAAJoVQIHT2Q015.jpg
图 5:连接图。
 

在从无人机和机组成员的移动设备接收到所有上述数据后,服务器将执行额外的计算和数据转换,以准备提供上述网页(见图 6)。网页中的所有信息每隔几秒就会自动刷新一次。

pYYBAGNxJQOAc-xMAAHoovNLJ2o053.jpg
图 6:系统的网页。
 

如前所述,已经为消防人员开发了一个定制的 Android 应用程序(参见图 7)。该应用程序从机组成员的移动设备中读取 GPS 坐标,并将这些数据连同他的姓名、身份 (ID) 代码和当前状态一起发送到网络服务器。它还在其 GUI 中显示来自网络服务器的地图,并有一个“SOS 按钮”,消防员可以在认为必要的任何时间向服务器发送 SOS 信号。它还有一个“开始位置跟踪”按钮来启动设备的 GPS 位置跟踪和一个“停止位置跟踪”按钮来停止它,以及一些用于监控辅助数据的额外文本视图。

pYYBAGNxJQWAU5l8AAMQKcyxmn8643.jpg
图 7:自定义 Android 应用程序。
 

在指挥中心,负责人员可以监控系统提供的所有信息,同时控制无人机的自主跟踪任务模式,所有这些都来自同一个网页。可以从世界任何地方通过 Internet 连接访问该网页(因此系统应该授予访问权限,但这在此原型中被忽略了)。现场行动开始时,指挥中心的工作人员必须将无人机部署在火区周围;然后,他们必须激活无人机的“自主火力追踪模式”,让它完成任务。无人机被编程为在没有人为干预的情况下跟踪火点和机组人员。从网页(以及 Android 应用程序)可以命令它并将其置于七种不同的跟踪模式:

  • 追踪火纹:追踪主火纹的质心。
  • 跟踪火点 1:跟踪检测到的最大火点。
  • 跟踪火点 2:跟踪第二个火点的大小。
  • Track Fire Spot 3:跟踪第三个火点的大小。
  • 跟踪所有火点:在巡逻模式下跟踪所有三个火点,一个接一个,在每个火点暂停,然后再移动到下一个。
  • Track Crew Member:跟踪给定的消防人员,该成员也是从网页中选择的。
  • 跟踪所有船员:在巡逻模式下跟踪所有船员,一个接一个,在移动到下一个之前在每个船员中暂停。

无论火灾向哪个方向前进或撤退,无人机都会根据从其视觉传感器获取的数据,通过将自身重新定位在主要火灾区域上来自主跟踪火点。一旦电池耗尽,无人机将返回起飞位置并着陆以更换电池,而无需关闭配套计算机,之后可以再次重新部署。

在无线电控制 (RC) 发射器的帮助下,指挥中心始终可以重新获得对无人机的手动控制,并再次将其切换到自主跟踪模式。此外,通过使用 PX4 自动驾驶仪的软件生态系统,无人机的完整遥测数据可通过使用地面站软件(例如 QGroundControl)在指挥中心计算机上获得,该软件通过遥测模块永久连接到无人机。地面站软件还显示了无人机当前位置及其描述的轨迹以及无数遥测数据的地图,如果需要,还可用于在手动控制和自主模式之间切换。因为该系统基于 ROS、实时视频源、原始火灾跟踪数据、消防人员的数据和来自飞行控制器的遥测数据也可以通过默认的 ROS 工具从任何安装了 ROS 的 Linux 计算机上实时访问。例如,来自相机图像处理算法的所有视频输入都可以作为 ROS 主题实时获得。

配套电脑软件

Raspberry Pi 配套计算机运行安装了 ROS Kinetic 的 Ubuntu MATE 16.04。以下 ROS 节点负责所有必需的任务:

'opencv_node':用 Python 编写,负责访问 Raspberry Pi NoIR 摄像头的实时视频源,并运行火灾检测算法以找到火点。随时可用的“raspicam_node”ROS 节点(请参阅参考资料部分)用于访问摄像机的视频源。该节点与摄像机对话,以获取视频流并将其发布到“opencv_node”订阅的“/raspicam_node/image/compressed”视频主题。在检测到火点后,配套计算机计算构成主要火灾模式的三个最大火点的几何近似多边形。然后它将每个多边形的定义顶点作为 JSON 字符串发布到“/fire_polygons_json”主题;以及每个火点的面积,到“/fire_polygons_area_json”主题。'/fire_pattern/pose_point' 主题中也提供了火灾模式质心的局部笛卡尔坐标。它还发布了“/fire_tracking_image/compressed”主题,该主题带有摄像机的原始视频图像,检测到的火点和近似多边形叠加。从同样的视频内容中,该节点每隔几秒就会在配套计算机的文件系统中保存一个图片帧,然后将其发送到服务器以显示在网页上(参见图 6)。该节点还发布包含相机帧当前宽度和高度的“/modified_image/size”主题,该主题也必须上传到服务器,以便从像素单位计算转换系数,其中表示长度和面积在相机图像中,到米,

已经实施了“运行平均低通滤波器”来过滤火灾模式质心坐标,以过滤火灾检测过程中固有的高频噪声。

'mlx90614_sensor_node':C++编写,负责读取MLX9014红外温度传感器的温度【参考mlx90614教程】。它发布包含温度读数的“/mlx90614/temp”主题。

'http_client_node' :用 Python 编写,订阅前面两个节点发布的所有上述主题,以及一些 MAVROS 主题。例如,它将订阅“/mavros/global_position/global”主题,从中获取无人机当前的纬度/经度坐标,以及全球海拔高度。它还将订阅“/mavros/global_position/rel_alt”,从中获取无人机相对于地面的当前相对高度;最后,到“/mavros/vfr_hud”主题,它将从中获取无人机的地面速度。然后,该节点将分四步继续与服务器交换数据:

  • 它将来自上述所有主题的数据累积到一个 XML 文件中,并通过 HTTP POST 请求将其发送到 Web 服务器。
  • 通过发出额外的 POST 请求,它还将发送火灾摄像机镜头,之前由“opencv_node”存储在配套计算机的文件系统中。
  • 通过发送 GET 请求,它将从 Web 服务器下载用户从网页发出的无人机当前任务模式命令。
  • 通过发送另一个 GET 请求,它将从 Web 服务器下载消防员数据,其中主要包含系统检测到的每个船员的姓名、ID 和 GPS 坐标。

这些数据每三秒在无人机和网络服务器之间交换一次。该节点接收到来自 web 服务器的数据后,会发布以下 ROS 主题:

  • '/drone_commands/task_mode_cmd' :包含从网页发出的当前无人机任务模式命令。以下选项可用:TRACK_PATTERN、TRACK_FIRE_SPOT_1、TRACK_FIRE_SPOT_2、TRACK_FIRE_SPOT_3、TRACK_ALL_SPOTS、TRACK_CREW_MEMBER、TRACK_ALL_CREW_MEMBERS);
  • '/drone_commands/fighter_crew_list' :包含每个机组成员的 GPS 坐标列表。
  • '/drone_commands/sel_crew_member_idx' :包含无人机必须跟踪的当前选定机组成员的索引。

'mavros_offboard_node':无人机通过使用MAVROS(这是MAVLink和ROS之间的桥梁)与同伴计算机接口,该节点负责通过发布到MAVROS主题来控制无人机的自主飞行能力,MAVLink命令将从派生并交付给无人机。该节点使用 C++ 编写,订阅以下主题:

  • '/mavros/local_position/pose' : 获取无人机的局部笛卡尔坐标
  • '/fire_pattern/pose_point' : 获取火焰图案的质心局部坐标。
  • '/fire_pattern/fire_spot1_pose_point', '/fire_pattern/fire_spot2_pose_point''/fire_pattern/fire_spot3_pose_point' : 获取三个主要火点的局部笛卡尔坐标。
  • '/drone_commands/task_mode_cmd ':获取当前从网页下发的任务模式命令。
  • '/drone_commands/sel_crew_member_idx ':获取无人机必须跟踪的当前选定机组成员的索引(对于 TRACK_CREW_MEMBER 任务命令选项)。
  • '/drone_commands/fighter_crew_list' :获取系统检测到的所有机组成员的GPS坐标列表。

该节点使用 PX4 “offboard” 飞行模式来控制无人机的位置,每次无人机的跟踪目标发生变化时,都会将新的位置坐标发布到 'mavros/setpoint_position/local' 主题。

安卓应用

Android 应用程序是使用 Android Studio IDE 在 Java 中开发的。GUI(参见图 7)由六个对象组成:

  • 一个“webView”对象,用于显示由 Web 服务器生成的地图。
  • 一个'开始位置。Tracking”按钮,启动设备的 GPS 位置监控。
  • 一个'停止位置。跟踪”按钮,停止它。
  • 一个“开始 SOS”按钮,用于向服务器发送“帮助”信号。
  • 一个“textView”,显示 HTTP POST 请求的结果,由应用程序发送到 Web 服务器以上传机组成员的数据。
  • 第二个“textView”显示移动设备的当前 GPS 坐标。

应用程序中有一个时间触发功能,负责收集 GPS 数据和当前状态(是否按下 SOS 按钮),并每隔几秒通过 HTTP POST 将数据发送到 Web 服务器。

网络服务器应用程序

网络服务器有一个带有 Javascript 代码的主网页,以及一组 PHP 脚本,负责接收来自无人机和机组成员移动设备的数据;以及从主网页的控制面板发出的无人机任务命令。让我们看看每个脚本的作用:

'receive_telemetry_xml.php' :此脚本从配套计算机接收 XML 遥测文件,其中包含以下数据:

  • 无人机的 GPS 坐标、全球/相对高度和地面速度。
  • 局部笛卡尔坐标中每个火点的近似多边形顶点及其对应的表面积,均以像素为单位。
  • 火焰图案的质心笛卡尔坐标,以像素为单位。
  • 相机图像帧的宽度和高度,也以像素为单位。
  • 在无人机当前位置测量的地面温度,以摄氏度为单位。

收到 XML 文件后,脚本会继续将其副本保存在服务器的本地文件系统中。由于 XML 字符串的副本仍在 RAM 内存中,它会继续将所有接收到的距离和区域(以“相机像素”单位)转换为米。为此,它将计算“$pixel_to_meters”转换因子以将所有测量值从像素单位转换为米。图 8 显示了如何通过使用无人机相对于地面的相对高度、相机的视场角、相机图像大小和勾股定理来计算转换因子。预先做出一些假设以保持计算简单。接下来,借助这个转换因子,火焰多边形顶点和火焰图案质心的笛卡尔坐标从以像素为单位的局部笛卡尔坐标转换为极坐标,距离以米为单位,角度以弧度为单位。然后,将这些极坐标转换为全球经纬度坐标[参考 PHP 距离方位到 GPS]。

poYBAGNxJQiAVhr_AAFGIvoyWn4589.jpg
图 8:像素单位到米的转换。
 

然后,该脚本将用新转换的 GPS 坐标替换 XML 字符串中的所有原始本地坐标,并将 XML 字符串作为名为“drone_telemetry_conv.xml”的新副本再次存储在服务器的本地文件系统中。该网页将使用新转换的 GPS 坐标来可视化地图中的火灾多边形。

'receive_image.php' : 该脚本负责接收消防摄像机镜头,之前由同伴计算机中的'opencv_node'保存;然后将显示在网页上并每隔几秒钟刷新一次。

'receive_fighter_data.php' :负责处理来自机组成员移动设备中 Android 应用程序的 HTTP POST 请求。该脚本以一组 [key:value] 对的形式接收消防员数据,其中包含以下可用键:“unix_time”、“name”、“id_code”、“latitude”、“longitude”和“status”。特别是“状态”键携带有关应用程序中的“SOS 按钮”是否被按下的信息。'unix_time' 是获得的 GPS 坐标和其余键的时间戳,我认为是不言自明的。该脚本将接收来自所有正在执行任务的消防员的数据,该应用程序当前在他们的移动设备上运行。然后它将数据存储在服务器本地文件系统中的单个文本文件中,

'dump_fighter_data_xml.php' :该脚本应主网页('index.html')的请求,将每个消防员的可用数据转储为 XML 字符串;网页每隔几秒异步请求一次,以在网页上可视化机组成员的信息。

receive_drone_task_cmd.php ”:负责从网页接收无人机任务命令,并将其存储在“drone_commands.xml”文件中。该文件由配套计算机中的“http_client_node”请求,以控制无人机的自主跟踪任务。

'index.html' : 是主网页,运行 Javascript 代码与 Google Maps API、OpenWeatherMap API 和我们自己的网络服务器进行交互,以实现以下任务:

  • 从网络服务器读取无人机提供的所有数据,并与 Google Maps API 接口以绘制地图、火灾多边形和代表无人机位置的所有地图标记、火灾模式的质心位置以及所有消防人员的位置。
  • 从网页的控制面板读取用户发出的无人机任务命令,并将这些数据发送到网络服务器。
  • 与 OpenWeatherMap API 交互,请求当前天气和预报天气数据;然后显示在网页底部(参见图 9 和图 10)。
pYYBAGNxJQyAbPULAAKm5-5FSEM864.jpg
图 9:从 Web 浏览器访问的天气数据。
 
poYBAGNxJQ-AIvEXAAQAxUoBWB8710.jpg
图 10:从 Android 应用程序访问的天气数据。
 

Ajax 技术用于异步刷新上述所有动态数据,而无需重新加载页面。要访问 Google Maps API 和 OpenWeatherMap API,必须在网页的源代码中配置相应的 API 密钥才能访问这两种服务。

地图上显示的数据

除了前面描述的在网页中可视化的对象之外,还有由地图上的点击事件触发的其他数据。图 11 显示了它们。例如,当单击代表无人机当前位置的地图标记时,会出现一个信息窗口,显示无人机的相对高度、地速、GPS 坐标以及在其当前位置测量的地面温度。单击代表火灾模式中心的地图标记时,类似的信息窗口会显示火灾覆盖的总面积(以平方米为单位)和中心的 GPS 坐标。通过单击三个火灾多边形中的任何一个,相应的信息窗口将显示所选火点的覆盖面积(以平方米为单位)以及发出鼠标单击的确切点的 GPS 坐标。最后一项功能有助于轻松获取任何被火覆盖的点的 GPS 坐标,可用于规划工作策略。最后,当单击任何代表机组成员的标记时,会显示消防员的姓名、状态(是否按下 SOS 按钮)、ID 代码和 GPS 坐标。此外,当战斗机状态为“正常”时,其对应的标记图标显示为绿色,当状态变为“帮助”时(按下 SOS 按钮后),标记图标变为红色。

poYBAGNxJReAOseBAAU8U3Oh4SU144.png
图 11:地图元素信息窗口。
 

发展

与控制无人机相关的代码是使用模拟开发的。我使用了 PX4 Gazebo 'Software in The Loop' (SITL) 模拟器,在安装了 ROS melodic 的 Ubuntu 18.04 PC 上运行。

该系统在模拟中进行了广泛的测试并且表现非常好。遗憾的是,直到该项目的最终提交日期,没有足够的时间来测试该系统与真正的无人机飞行,但它已准备好进行现场测试,这将在不久的将来进行。

如何让系统运行

  • 按照 NXP HoverGames 官方无人机构建说明 ( https://nxp.gitbook.io/HoverGames/userguide/getting-started)构建您的无人机必须为无人机配置以下飞行模式:“Position”,用于安全起飞,“Offboard”用于启用自主模式,“Return”用于将无人机返回到起飞位置,特别是尝试在紧急情况下或电池耗尽时恢复无人机。“终止开关”还必须配置为在发生任何不可恢复或严重紧急情况时切断电机电源。
  • 下载适用于 Raspberry Pi 的 Ubuntu MATE 16.04 映像并将其刻录在微型 SD 卡(至少 16GB)上,安装所有软件并进行“rpi_configuration.md”文件中描述的所有配置,该文件可在项目的代码存储库中找到。
  • 将 ROS 工作区文件夹“airstrategist_ws”从存储库复制到“/home/pi”覆盆子目录并编译工作区。如果您是 ROS 新手,请查看参考资料部分以获取基本 ROS 教程的链接。
  • 打开 '/home/pi/airstrategist_ws/src/opencv_tracking/scripts' 文件夹中的 'http_client_node.py' 文件并更改对我服务器根目录的所有引用 ('http://tec.bo/airstrategist/...' )为您的,以便将 HTTP POST 请求发送到您自己的服务器。
  • 通过安装 HTTP 服务器软件和 PHP,或使用商业 Web 托管服务,在局域网中配置您自己的 Web 服务器。不需要数据库软件。
  • 将存储库中“WebServer”文件夹中的“airstrategist”文件夹上传到本地或 Web 托管服务器的根目录。
  • 进行图 5 所示的连接,并将 Raspberry Pi 配套计算机及其移动电源安装在无人机框架中,如图 4a 和图 4b 所示。
  • 在您的开发 PC 中安装 Android Studio,打开 Android 应用程序项目,然后在“MainActivity.java”文件中,更改对我服务器根目录的所有引用(“http://tec.bo/airstrategist/...' )给你的。编译并上传应用程序到一部或多部手机。该应用程序使用三星 Galaxy Note 8 SM-N950F 设备进行了测试。为其他设备型号编译应用程序可能需要更改目标 Android API 和其他附加配置。
  • 启动无人机,但不要武装它。
  • 通过将 Raspberry Pi 连接到其移动电源来启动它。它使用 2 节锂离子 18650 电池“移动电源”,因此无人机可以在无需关闭配套计算机的情况下更换电池。
  • 至少在两个单独的终端窗口中从您的 PC 中打开到 Raspberry Pi 的 SSH 连接。在第一个窗口中运行 MAVROS 'px4.launch' 启动文件;此文件运行 ROS 服务器并实例化 MAVROS 节点以通过 ROS 消息与无人机的飞行控制器进行通信。在第二个终端窗口中运行“hovergames_drone.launch”文件;此文件运行为项目编写的所有 ROS 节点。运行此代码后,Web 服务器将开始接收所有数据,主网页将位于“http:///airstrategist/”;可以通过任何网络浏览器访问。我用 Chrome 和 Firefox 测试了页面没有问题。查看上面的视频演示,了解有关在模拟中热运行它的说明。
  • 在移动设备中打开 Android 应用程序。该应用程序将显示包含该地图的同一网页。单击“开始位置”。跟踪”按钮开始将您的移动设备的 GPS 坐标和其他数据发送到服务器。几秒钟后,您的位置将作为绿色标记出现在地图上。
  • 将遥测模块连接到您的 PC 并打开 QGroundControl 以连接无人机。
  • 武装无人机并以“位置”飞行模式起飞到方便的高度进行测试。对于测试,跟踪高度固定为 10 米,文件中的“OFFBOARD_FLYING_ALTITUDE”常量来更改此高度。为安全起见,除非您知道自己在做什么,否则请勿在海拔超过 15 米的地方使用真正的无人机测试系统。
  • 一旦无人机到达所需高度,通过遥控发射器或地面控制软件将无人机的飞行模式更改为“离机”,进行自主飞行,无人机将开始跟踪选定的目标;再次更改为“位置”模式以脱离自主飞行并重新获得手动控制。
  • 使用遥控器手动降落无人机,或将飞行模式更改为“返回”,无人机将返回起飞点。

警告:建议使用适当的增量测试/调试策略,从第一个到最后一个分别仔细测试所有描述的步骤,以确保所有软件和硬件正常工作;在没有适当测试的情况下在真正的无人机上运行系统可能非常危险。您可以使用“testing_in_simulation.md”文件中详述的工作流程在模拟中首先测试系统。

结论和未来的改进

该系统在仿真中表现得非常好。还需要用真正的四轴飞行器进行广泛的现场测试。计算机视觉火灾追踪效果很好;虽然火灾检测算法容易出现误报,因为相机还可以检测来自其他来源的红外光。当然,普通的红外热像仪并不是探测火灾的最佳方式。然而,它非常适合构建这个“概念验证”原型的目的。HoverGames 无人机硬件成本低廉且相对实惠。无人机本身经过了广泛的测试(尽管没有足够的时间与系统的其余部分进行测试)并且性能非常好。它对开发非常有用;然而,在某些情况下,对硬件进行一些升级是可取的,甚至是必要的。Raspberry Pi 3 B+ 配套计算机很好地管理了所有计算任务。有必要安装散热器和冷却风扇。在没有散热风扇的情况下,处理器温度轻松升高到 60+°C;随着冷却风扇的出现,温度降至 48°C 左右。

我希望将来对系统进行的一些改进如下:

  • 用合适的热像仪升级系统会很棒;火灾识别代码所需的更改将是最小的。
  • 可以添加一个 GPRS 调制解调器,也许还可以添加一个备用 LoraWAN 连接,这样它就可以在偏远地区工作。
  • 使无人机不时自动改变高度和方向,以获得额外的地面视角。
  • 使用测得的地面温度来调整无人机的高度。众所周知,热量会降低空气密度,从而降低升力(空气动力)。如果空气太热,无人机应该爬升到更高的高度以提高升力并使用更少的电池电量,从而保持飞行自主权。
  • 实现无人机在火区上空的自动起飞和重新定位会很棒,尤其是在更换电池之后。无人机起飞后会进行相机平移,以检测火区。然后飞过它继续跟踪任务。
  • 使用机器学习和人工智能实施在线数据库来存储历史数据以供进一步分析。

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !