新闻详情

新闻详情

首页 / 资讯中心 / 详情

PX4 RAPTOR:基于强化学习的自适应四旋翼神经网络控制模块实战指南

发布时间:2026/10/2 8:10:37来源:尧图网络
PX4 RAPTOR:基于强化学习的自适应四旋翼神经网络控制模块实战指南
嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载RAPTOR 是 PX4 中一个基于强化学习Reinforcement Learning, RL的端到端四旋翼控制模块用一个仅 2084 个参数的微型神经网络即可控制从 32 g 到 2.4 kg 的多种真实四旋翼平台无需重新调参。本文以官方文档 docs/en/neural_networks/raptor.md 为主体结合仓库源码 src/modules/mc_raptor 深入讲解其架构原理、参数体系以及从 SITL 仿真到真机飞行的完整使用流程帮助你快速上手这一实验性控制模式。适用版本PX4 v1.18Experimental 实验性模块使用风险自负背景与核心思想RAPTORRobust Adaptive Policy for Quadrotor via Reinforcement Learning是一种端到端的自适应四旋翼控制策略其灵感来自人类将已学行为迁移到相似情境的能力有多年驾驶经验的人面对一辆新车时不需要重新学习驾驶只需短暂感受几次刹车/加速/转向响应就能调整既有行为。RAPTOR 试图让飞行控制器具备同样的即插即用适应能力。传统模块化飞控架构估计器 → 位置环 → 姿态环 → 速率环 → 混控存在两个固有限制信息在模块边界处丢失、整机参数依赖专家调参。而强化学习通过试错方式学习控制策略恰好可以绕开这些问题。RL 已在高性能四旋翼飞行领域取得显著成功但以往的策略对新的机架与机型适配性不佳。RAPTOR 正是为填补这一空白而设计单个微型神经网络策略即可控制多种不同尺寸与构型的四旋翼官方已在真实四旋翼32 g 至 2.4 kg上完成验证。训练 RAPTOR 策略所采用的方法称为Meta-Imitation Learning元模仿学习先在大规模异构四旋翼仿真数据上预训练一个基础策略再让策略在部署时通过极少量在线交互快速适应新平台从而获得跨机型的泛化能力。读者可以在浏览器端通过官方提供的交互演示对策略进行压力测试在 raptor.rl.tools 打开即可体验文档中亦以 iframe 形式内嵌该方法的细节可参考 RAPTOR 相关学术论文。系统结构与工作原理从源码 mc_raptor.hpp 可以看到RAPTOR 的策略网络位于rlt::checkpoint::actor命名空间其网络结构由 RLtools 库构建多层感知机 MLP、GRU 循环层、标准化层与采样层组合并通过rl_tools::inference::applications::l2fL2FLearning to Fly执行器在飞控上运行推理。端到端输入输出RAPTOR 是一个端到端策略其输入为位置position姿态orientation线速度linear velocity角速度angular velocity输出为actuator_motors电机指令4 路 PWM 归一化输出。换言之它直接从状态估计数据映射到电机命令中间不存在任何传统控制环路。相关主题订阅在 mc_raptor.hpp 中清晰列出vehicle_local_position、vehicle_attitude、vehicle_angular_velocity、trajectory_setpoint等。与 PX4 的集成方式RAPTOR 通过 PX4 的外部模式注册机制external mode registration接入飞行模式管理系统与mc_nn_control内部模式演示所验证的机制相同因此mc_raptor模块与 PX4 其他逻辑完全解耦。源码中EXT_COMPONENT_REQUEST_ID 1337见 mc_raptor.hpp模块通过发布register_ext_component_request/ 订阅register_ext_component_reply完成外部模式注册并参与arming_check_request/arming_check_reply的上电安全检查。设定值Setpoint来源与超时机制默认情况下RAPTOR 模块通过trajectory_setpoint消息接收期望轨迹。源码 mc_raptor.hpp 定义了多组观测超时信号超时阈值说明角速度10 msOBSERVATION_TIMEOUT_ANGULAR_VELOCITY姿态50 msOBSERVATION_TIMEOUT_ATTITUDE本地位置100 msOBSERVATION_TIMEOUT_LOCAL_POSITION轨迹设定值200 msTRAJECTORY_SETPOINT_TIMEOUT如果在 200 ms 内未收到任何trajectory_setpoint消息模块将以当前的位置与姿态线速度为零作为设定值即进入悬停保持状态。由于通过遥测链路稳定发送设定值仍然是一个工程挑战模块还内置了一个简单的内部参考轨迹生成器由MC_RAPTOR_INTREF参数控制用于演示与基准测试详见下文。推理频率与执行配置执行器配置mc_raptor.hpp显示策略推理频率为500 HzCONTROL_INTERVAL_INTERMEDIATE_NS 2.5 ms训练时的原生控制频率为100 HzCONTROL_INTERVAL_NATIVE_NS 10 ms。在 Gazebo SITL 中会放宽时序抖动告警阈值因为 SITL 的 IMU 频率250 Hz不是训练频率的整数倍而在真实飞控上使用更严格的阈值RAPTOR 对控制频率偏差整体较为鲁棒。特性一览微型神经网络仅 2084 个参数CPU 占用极低可在飞控上实时运行。易于维护简单的 CMake 配置见 CMakeLists.txt完全自包含不干扰其他模块仅依赖一个维护良好的库RLtools。从 SD 卡加载神经网络权重Flash 占用极小有望纳入默认固件构建开发便捷训练好新网络后只需通过 MAVLink FTP 上传无需重新烧录固件。跨平台验证已在 10 种不同真实平台包括柔性机架、有刷电机上测试。由社区积极开发维护。注若想直接将策略嵌入固件而非从 SD 卡加载可在 mc_raptor.hpp 取消注释#define MC_RAPTOR_EMBED_POLICY但可能需要关闭部分无关功能以腾出 Flash 空间。参数体系RAPTOR 的所有参数定义在 module.yaml 中参数组Multicopter Raptor参数类型默认值说明MC_RAPTOR_ENABLE布尔false启用 Raptor 飞行模式。启用后该模式可用请根据用例设置MC_RAPTOR_OFFB。MC_RAPTOR_VERBOS布尔false启用后向控制台输出详细日志。MC_RAPTOR_OFFB布尔false是否用 Raptor 模式替换 Offboard 模式。启用时 Raptor 替代 Offboard需要外部设定值才能激活禁用时 Raptor 作为独立外部模式存在无需外部设定值即可悬停保持。MC_RAPTOR_INTREF枚举0是否使用内部参考替代trajectory_setpoint。0关闭/激活位置跟踪1Lissajous 轨迹。此外模块还读取全局参数IMU_GYRO_RATEMAX陀螺仪速率上限用于校验控制频率是否符合策略预期。相关DEFINE_PARAMETERS声明见 mc_raptor.hpp。SITL 仿真使用构建与启动使用带 Raptor 的 SITL 目标构建并启动 Gazebo 仿真机型 x500make px4_sitl_raptor gz_x500启动后执行以下参数设置禁用 QGC 连接要求、避免着陆检测器在空中引起解锁并将IMU_GYRO_RATEMAX调整到与仿真 IMU 频率匹配仿真中 IMU 为 250 Hz真实飞控上官方实测为 400 Hzparam set NAV_DLL_ACT 0 param set COM_DISARM_LAND -1 # 在 offboard 起飞时着陆检测器可能导致空中解锁 param set IMU_GYRO_RATEMAX 250 # 仅用于 SITL。真实飞控实测 IMU_GYRO_RATEMAX400 param set MC_RAPTOR_ENABLE 1 # 启用 mc_raptor 模块 param save上传神经网络权重checkpoint在另一个终端中启动 mavproxy通过 FTP 将策略权重上传到仿真的SD 卡mavproxy.py --master udp:127.0.0.1:14540 ftp mkdir /raptor # 真实飞控使用: /fs/microsd/raptor ftp put src/modules/mc_raptor/blob/policy.tar /raptor/policy.tar权重文件policy.tar位于仓库 src/modules/mc_raptor/blob作为 git submodule 引入见 CMakeLists.txt。启动时模块会从PX4_STORAGEDIR /raptor/policy.tar加载策略见 mc_raptor.cpp并运行一次内置的 checkpoint 一致性校验用保存的已知输入-输出对验证加载是否正确误差阈值 1e-5见 mc_raptor.cpp。重启仿真CtrlC 后重新执行make px4_sitl_raptor gz_x500然后起飞并查询状态commander takeoff commander status在状态报告中记录 RAPTOR 的外部模式 ID然后切换到该模式commander mode ext{RAPTOR_MODE_ID}内部参考轨迹生成Internal Reference Trajectory官方经验表明通过 MAVLink即使经由 WiFi 遥测发送trajectory_setpoint并不可靠因此模块内置了简单的内部参考轨迹生成器用于测试与基准评测。它支持位置保持恒定位置与偏航设定值以及可配置的Lissajous 轨迹利萨茹曲线例如平滑的8 字轨迹包含适合基准测试的有趣加速度。启用 Lissajous 内部参考1 Lissajous0 关闭/激活位置跟踪param set MC_RAPTOR_INTREF 1重启后依次执行commander takeoff commander mode ext{RAPTOR_MODE_ID} mc_raptor intref lissajous 0.5 1 0 2 1 1 10 3轨迹相对 RAPTOR 模式激活时刻或参数变更时刻若已激活的飞机位置与偏航生成。mc_raptor intref lissajous命令的参数格式为命令用法见 mc_raptor.cppmc_raptor intref lissajous A B C fa fb fc duration ramp各参数含义默认值参考 lissajous.hpp参数默认值含义A0.5X 轴方向振幅mB1.0Y 轴方向振幅mC0.0Z 轴方向振幅mfa2.0X 轴频率与fb比值决定轨迹形状fb1.0Y 轴频率fc1.0Z 轴频率duration10.0一个周期的持续时间sramp3.0速度斜坡ramp时间s用于平滑起止例如0.5 1 0 2 1 1 10 3表示 A0.5、B1、C0、fa2、fb1、fc1、duration10s、ramp3s。轨迹生成实现lissajous.hpp在斜坡阶段对速度进行平滑过渡输出位置、线速度、偏航恒为 0与偏航速率恒为 0设定值。官方还提供了可视化轨迹配置工具内嵌于文档页面可直观调整各参数并生成对应的 CLI 字符串便于复制到飞控执行。真机使用固件构建与上传mc_raptor模块主要在Holybro X500 V2上完成测试但也应可开箱即用地运行于其他平台见下文其他平台。构建并烧录带 Raptor 的固件以 FMU v6C 为例make px4_fmu-v6c_raptor upload建议使用死手开关逐步验证官方建议初期测试 Raptor 模式时使用死手开关dead mans switch将模式选择通道接到一个按钮或带弹簧自动回位的开关上。默认位置配置为如Stabilized Mode稳定模式按下位置配置为External Mode 1外部模式名只在运行时传输因此需用外部模式序号。这样你可以手动起飞然后瞬间触发 Raptor 模式观察其表现再松开开关立即回到稳定模式。官方实验中该策略极其稳定零坠机但仍建议循序渐进地延长激活时间以建立信心。::: warning 请确保你的平台采用标准 PX4 四旋翼电机布局 1: 前右front-right2: 后左back-left3: 前左front-left4: 后右back-right :::需要说明的是策略输出遵循 Crazyflie 的电机映射模块在内部完成到 PX4 Quadrotor X 布局的重映射11, 24, 32, 43见 mc_raptor.hpp 的REMAP_FROM_CRAZYFLIE因此外部物理布局必须符合上述标准。其他平台启用要在其他平台启用mc_raptor只需在对应.px4board配置中添加两项 Kconfig 配置CONFIG_MODULES_MC_RAPTORy与CONFIG_LIB_RL_TOOLSy。官方提供的 diff 示例基于 raptor.px4board b/boards/px4/fmu-v6c/raptor.px4board -35,2 35,3 CONFIG_DRIVERS_UAVCANy CONFIG_LIB_RL_TOOLSy CONFIG_MODULES_AIRSPEED_SELECTORy -64,2 65,3 CONFIG_MODULES_MC_POS_CONTROLy CONFIG_MODULES_MC_RAPTORy CONFIG_MODULES_MC_RATE_CONTROLySITL 目标 boards/px4/sitl/raptor.px4board 同样同时启用了CONFIG_MODULES_MC_RAPTORy与CONFIG_LIB_RL_TOOLSy。模块在 Kconfig 中默认关闭default n见 src/modules/mc_raptor/Kconfig并支持在受保护板卡上以用户态模块方式运行USER_MC_RAPTOR。实测结果官方在约 5 m/s 的中等风速下进行了测试8 字Lissajous轨迹跟踪在最高 12 m/s 的速度下仍保持良好的轨迹跟踪精度直线高速飞行RAPTOR 策略可稳定飞行于 17 m/s 以上测试时风向与航线正交。故障排查与日志记录如需以最大速率记录所有相关 uORB 主题请创建如下日志配置文件cat logger_topics.txt EOF raptor_status 0 raptor_input 0 trajectory_setpoint 0 vehicle_local_position 0 vehicle_angular_velocity 0 vehicle_attitude 0 vehicle_status 0 actuator_motors 0 EOF随后使用 mavproxy 的 FTP 上传该配置mavproxy.py真机上传至 microSD 卡的日志配置目录ftp mkdir /fs/microsd/etc ftp mkdir /fs/microsd/etc/logging ftp put logger_topics.txt /fs/microsd/etc/logging/logger_topics.txtSITLftp mkdir etc ftp mkdir logging ftp put logger_topics.txt etc/logging/logger_topics.txt其中raptor_status与raptor_input是模块自发布的状态/输入主题定义于 msg/RaptorStatus.msg 与 msg/RaptorInput.msg发布端见 mc_raptor.hpp用于诊断策略执行状态与观测输入其余为主题级日志覆盖设定值、状态估计与最终电机指令可完整还原控制链路。源码结构导读如需深入阅读可按以下路径继续探索src/modules/mc_raptor/mc_raptor.cpp主模块实现——策略加载与校验、外部模式注册/注销、观测构建、内部参考切换与mc_raptor intref命令处理src/modules/mc_raptor/mc_raptor.hpp类声明、执行器配置、超时阈值与MC_RAPTOR_EMBED_POLICY编译开关src/modules/mc_raptor/trajectories/lissajous.hppLissajous 轨迹生成实现src/modules/mc_raptor/module.yaml模块参数定义src/modules/mc_raptor/README.md补充的 SIH 硬件在环仿真、外部px4Python 工具发送 Lissajous 设定值px4 udp:localhost:14540 track lissajous ...等进阶用法boards/px4/sitl/raptor.px4board 与 boards/px4/fmu-v6c/raptor.px4boardSITL 与真机参考板配置。总体而言RAPTOR 展示了小模型 强化学习 灵活集成的新一代飞控控制范式策略从 SD 卡热加载、通过外部模式注册融入现有飞行模式体系、以 500 Hz 实时推理直接输出电机指令并在 SITL、SIH 与真实硬件上均可快速验证。对想要尝试端到端神经控制策略的开发者而言它是一条低门槛、可复现的实践路径。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐Graceful深度解析10个关键配置项优化你的HTTP服务器关闭流程Graceful深度解析10个关键配置项优化你的HTTP服务器关闭流程 在Go语言Web开发中实现HTTP服务器的优雅关闭是确保服务稳定性的关键环节。后端运维四旋翼无人机轨迹优化PX4-Autopilot基于jerk的平滑控制四旋翼无人机轨迹优化PX4 Autopilot基于jerk的平滑控制 PX4 Autopilot作为开源无人机飞控系统的佼佼者其核心优势之一在于对四旋翼无人嵌入式物联网机器人自动驾驶智能硬件多旋翼无人机敏捷控制PX4-Autopilot基于模型的设计多旋翼无人机敏捷控制PX4 Autopilot基于模型的设计 PX4 Autopilot作为领先的开源无人机飞控系统为多旋翼无人机提供了强大的敏捷控制能力。嵌入式物联网机器人自动驾驶智能硬件上一篇猫抓完全指南浏览器资源嗅探网页视频一键下载m3u8 流媒体合并解析下一篇3分钟让你的Windows任务栏焕然一新TranslucentTB透明美化指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

葡萄叶片病害检测数据集:VOC/COCO/YOLO格式转换与YOLO训练全流程 2026/10/2 8:53:52

葡萄叶片病害检测数据集:VOC/COCO/YOLO格式转换与YOLO训练全流程

简介:YOLO葡萄叶片病害检测数据集包含5000张真实场景葡萄叶片图像,内容贴近田间实际,图像清晰、背景多样,可支撑病害识别、生长监测等农业视觉任务。数据已同时提供VOC(xml)、COCO(json&#xf…

阅读更多 →
便携式恒温槽厂家价格公道不玩套路:华慧电子广受信赖 2026/10/2 8:53:52

便携式恒温槽厂家价格公道不玩套路:华慧电子广受信赖

什么是便携式恒温槽?一文带你看懂基础常识 什么是便携式恒温槽,核心属性是什么恒温槽是热工测温领域用来提供稳定恒温场的计量设备,核心作用是为温度传感器、温度计、一体化温度变送器的检测校准提供符合精度要求的恒温环境,是计量检测、生产…

阅读更多 →
Redis缓存三大经典问题:穿透、击穿、雪崩的成因与治理方案 2026/10/2 8:53:52

Redis缓存三大经典问题:穿透、击穿、雪崩的成因与治理方案

做了这么多年后端,Redis 缓存几乎成了高并发系统的标配,但真正决定系统能不能扛住流量的,往往不是 Redis 本身,而是围绕缓存那三个经典问题——“缓存穿透、缓存击穿、缓存雪崩”有没有治理到位。面试的时候大家都能背出定义&…

阅读更多 →
C# WinForms + OpenVSharp 实现玉米粒计数完整教程 2026/10/2 8:53:52

C# WinForms + OpenVSharp 实现玉米粒计数完整教程

简介:面向C#图像处理开发者和机器视觉学习者的玉米粒计数演示源码,基于WinForm与OpenCVSharp实现,可在VS2019、.NET Framework 4.7.2及OpenCvSharp 4.8.0环境中运行。演示以自动计数为核心,涉及图像分割、特征提取等关键环节&…

阅读更多 →
继续教育学生降AI率实战指南:九大工具与避坑攻略 2026/10/2 8:53:52

继续教育学生降AI率实战指南:九大工具与避坑攻略

如果你也打开过自己的AIGC检测报告,大概率见过那句话:"疑似AI生成内容占比43%"。继续教育学生和全日制学生有个完全不同的处境——白天要上班,晚上写论文,时间是一小时一小时抠出来的。越缺时间,就越容易把A…

阅读更多 →
十类动物图片数据集:清洗、划分与YOLOv8分类训练实战 2026/10/2 8:53:44

十类动物图片数据集:清洗、划分与YOLOv8分类训练实战

简介:这份动物图像数据集包含约两万八千张图片,覆盖狗、猫、马、蜘蛛、蝴蝶、鸡、羊、牛、松鼠、大象十个类别,每类数量从两千到五千不等,为图像分类与迁移学习提供现成训练语料,适合深度学习初学者和生物图像识别研究…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉