PX4 1.14.3 物流无人机开发 | 模块概述与分析

PX4 1.14.3 物流无人机开发 | 模块概述与分析

课程介绍

随着无人机技术的快速发展及其在各个行业中的广泛应用,低空经济 (Low Altitude Economy) 成为了一个炙手可热的领域。低空经济主要指在低空飞行范围内,利用无人机、飞艇等航空器进行的商业活动。无人机快递服务作为低空经济的重要组成部分,正在不断改变传统物流行业的运作模式,尤其是在提升运输效率、降低成本和增加服务灵活性方面表现突出。

美团无人机
PX4 作为一款开源的飞控系统,其高度的可配置性和灵活性使其在无人机开发和应用领域中得到了广泛的关注和使用。PX4 的核心功能包括飞行控制、导航、通信等,这使得它成为开发复杂任务如快递抛投系统的理想平台。本课程旨在介绍如何基于 PX4 飞控系统创建一个高效的快递抛投功能,探索其在低空经济中的应用与拓展。

应用领域

  • 城市物流:在城市快递领域,无人机可以减少交通拥堵,缩短配送时间。通过精准的抛投系统,无人机能够在指定地点进行物品投放,例如高楼大厦的阳台或指定的收货点。这种方式特别适用于高密度的城市环境和对时间要求高的服务场景。
    城市物流无人机
    城市物流无人机
  • 医疗急救:在医疗急救领域,无人机快递抛投系统可以用于快速运送紧急药品、急救设备或样本。特别是在偏远地区或交通不便的地区,无人机可以大大提高急救物资的配送速度,挽救生命。
    医疗航线无人机
    医疗航线无人机
  • 农田管理:在农业领域,无人机可以用来投放种子、肥料或农药,提高农业生产效率。通过精准的抛投功能,无人机能够均匀分布物资,从而优化农业资源的使用。
    农田管理无人机
    农田管理无人机

技术挑战

  • 精准投放:快递抛投系统的核心技术之一是确保物品在空中准确投放。PX4 飞控系统支持多种传感器和定位系统,如:GPS、视觉传感器和激光雷达,这些可以用于提高投放的准确性。同时,通过对飞行轨迹的精确控制,可以确保物品落点的稳定性。
  • 环境适应性:无人机在不同天气条件下的稳定性是另一个挑战。为提高系统的适应性,需要在 PX4 飞控系统中集成高性能的气象监测模块和自适应控制算法,以应对风速变化、气温波动等环境因素。
  • 安全性与合规性:在低空经济中,无人机的安全性和合规性至关重要。课程将探讨如何在 PX4 系统中实现避障功能、实现地理围栏限制,并遵守相关航空法规,以确保无人机操作的安全性和合法性。

拓展方向

  • 智能算法与大数据:未来的发展方向包括结合人工智能和大数据技术,以优化快递抛投的路径规划和任务调度。通过对大量飞行数据的分析,可以进一步提高系统的效率和可靠性。
  • 无人机集群协作:无人机集群技术可以使多个无人机协同工作,提高投放效率和服务覆盖范围。PX4 系统的模块化设计支持集群控制和协调,为这一领域的创新提供了基础。
  • 商业模式创新:随着技术的成熟,新的商业模式将不断涌现,例如:无人机订阅服务、按需快递等。这些新模式将推动低空经济的进一步发展和扩展。

基于 PX4 飞控系统的快递抛投功能开发不仅具备技术挑战,也有广阔的应用前景。通过深入学习和实践,我们可以充分利用 PX4 系统的优势,推动无人机在低空经济中的应用,并探索新的商业机会。

代码梳理

首先,在 PX4 的源码文件夹中找到以下内容:

payload_deliverer模块
payload_deliverer模块

通过工作队列的方式将快递快递投放功能封装成一个模块。

下面将调用快递投放模块的初始化函数:

payload_init
payload_init

该函数的主要功能如下:

  1. 设置任务调度:
  • 调用 ScheduleOnInterval(100_ms),使该任务或方法每隔 100 毫秒执行一次。
  1. 注册回调函数:
  • 尝试通过 _vehicle_command_sub.registerCallback() 注册一个与无人机指令相关的回调函数。 如果注册失败,将输出错误信息 callback registration failed 并返回 false
  1. 配置抓取器:
  • 调用 configure_gripper() 方法来配置抓取器,确保其处于正确的工作状态。

若上述步骤均成功,则返回 true 表示初始化成功;否则返回 false

接下来,就是该模块的 run() 函数部分,也就是飞控运行时,会一直调用的部分:

payload_run
payload_run

该函数主要内容如下:

  1. 根据should_exit()判断该次是否需要运行以下内容,该部分调度的讲解将放在第六课程详细说明。
  2. 通过 _parameter_update_sub.updated()判断是否有新的参数更新消息,如果有参数更新,那么将更新这些参数。该模块中主要参数如下:
  • PD_GRIPPER_EN (bool):是否在该模块中使能抓取结构,1 表示使能,0 表示不使能。
  • PD_GRIPPER_TO (float):抓取动作确认成功的超时时间,当抓取动作未被识别时,抓取将等待的最大时间。如果执行器没有反馈传感器,它将简单地等待这个时间发布一个 VehicleCommandAck 信号,表示抓取动作成功。
  • PD_GRIPPER_TYPE (enum):抓取器的类型,-1 表示未定义,0 表示伺服机构。
  1. gripper_update(now); 函数中,主要更新抓取器件的状态是否达到期望的状态,并将结果通过 vehicle_command 主题反馈到 Navigator 模块中;当然如果抓取器没有初始化的话,该函数就什么事都不用做了。
  2. 其实第 4 步才是该模块中最核心的部分,该模块通过 vehicle_command 接收来自地面站或者飞控其他模块的指令,主要是接收到了指令才会执行,没接受到就啥事也不干。

讲到这里,就需要提下 MAVLink 里面的抓取的指令,在 MAVLink 中定义如下:

MAV_CMD_DO_GRIPPER(211)

Param (Label) Describe Value
1(实例化个数) 抓取器实例化序号 最小为1
2 动作 GRIPPER_ACTION
3 Empty
4 Empty
5 Empty
6 Empty
7 Empty

其中:GRIPPER_ACTION 数据为 0 时,表示释放动作;数据为 1 时,表示抓取动作。

应用实操

货运投送任务需要一些配置,必须先完成这些配置,才能执行任务。

货运投送任务的规划与航点任务大致相同,包括任务开始、起飞航点、各种路径航点,可能还有一个返航点。唯一的区别是包裹递送任务必须包括一个任务项,指示包裹应该在地面 (Land) 还是空中 (Waypoint) 释放,然后还有就是部署包裹的任务项 (Gripper Mechanism)。

是否着陆取决于飞行时包裹是否可以安全展开,以及飞行器是否能够在目标位置降落。因此,在使用夹取器时,多旋翼和 VTOL 飞行器通常会着陆以再释放包裹。释放包裹完成后,无人机将前往下一个航点。值得注意的是,如果着陆后释放包裹,那么下一个航点应该是另一个 Waypoint 或 Takeoff 任务项目(不能是 RETURN)。

创建货运投送任务

在创建货运投送任务之前,首先需要正确配置好抓取器,然后执行以下步骤:

  1. 开始创建飞行任务,设置普通的 Takeoff 点,然后为所需的飞行路径创建其他的航点。
  2. 如果需要无人机在目标点将落后释放包裹,那么我们需要将 Waypoint 更改为 Land 点。通过选择任务项,然后在弹出对话框中选择 Land 来执行此操作。
    payload_land
    payload_land
  3. 选择 Waypoint 标题,然后在弹出窗口中将组更改为 Advanced,然后选择 Gripper Mechanism
  4. 在编辑器中配置夹持器的操作。将其设置为 Release 以释放包。当前不需要设置夹取器的设备 ID
  5. 为路径的其余部分添加其他路径点。如果飞机着陆了,请记住,在添加 Return 航点之前,必须在 Gripper Mechanism 之后包含一个航点。

课程总结

本课程深入探讨了基于 PX4 飞控系统开发无人机快递抛投功能的全过程。随着无人机技术的迅猛发展,低空经济尤其是无人机快递服务已经在各行业中展现出巨大的潜力。本课程主要围绕以下几个核心内容展开:

  1. 低空经济与应用领域 我们首先介绍了低空经济的背景及其主要应用领域,包括城市物流、医疗急救和农田管理。在城市物流方面,无人机可以有效缓解交通拥堵,提高配送效率;在医疗急救领域,无人机能够快速运送紧急物资;在农业领域,无人机的精准抛投功能能够优化资源的使用。
  2. 技术挑战 课程详细讲解了 PX4 飞控系统在快递抛投中的核心技术挑战。包括确保物品精准投放的技术要求,环境适应性以及如何实现系统的安全性和合规性。通过高性能传感器和自适应控制算法,我们可以有效应对这些挑战,提升无人机在复杂环境下的作业能力。
  3. 代码实现与模块配置 我们深入分析了 PX4 系统中快递抛投功能的代码实现。讲解了如何通过工作队列将快递投放功能封装成一个模块,并逐步实现初始化函数和运行时函数。特别强调了模块的关键部分——通过 vehicle_command 接收和处理地面站或飞控其他模块的指令,执行抓取和释放动作。
  4. 实操应用 在实操部分,我们介绍了如何创建和配置货运投送任务。包括:设置飞行任务、定义航点、配置抓取器以及设置包裹释放方式。特别指出了在任务规划中需注意的事项,如任务的起飞、飞行路径、包裹释放位置以及返航点的设置。
  5. 拓展方向 课程还探讨了未来的发展方向,包括智能算法与大数据的应用、无人机集群协作的潜力以及商业模式的创新。这些方向有望进一步推动无人机在低空经济中的应用,并开辟新的商业机会。

通过本课程的学习,我们不仅掌握了如何基于 PX4 飞控系统设计高效的快递抛投功能,还理解了无人机在低空经济中应用的广泛前景和技术挑战。随着技术的不断进步和应用场景的扩展,未来无人机快递服务将变得更加高效、智能和多样化;希望大家能将所学知识应用于实际项目中,推动无人机技术在各个领域的创新和发展。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注