ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PX4 与 DroneCAN 电永磁抓取器(Zubax FluxGrip FG40 / EPM)的接入与配置指南

PX4 与 DroneCAN 电永磁抓取器(Zubax FluxGrip FG40 / EPM)的接入与配置指南 嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载导读本文以 PX4 v1.18 中新增的 DroneCAN 电永磁抓取器EPM支持为主线完整讲解如何将 Zubax FluxGrip FG40 通过 DroneCANCAN 总线接入 PX4 飞控从固件配置、硬件接线、QGroundControl 参数设置到基于 MAVLink Shell 的状态验证与抓取/释放测试并深入源码级调用链payload_deliverer模块与uavcan驱动中的 hardpoint 转发逻辑。读完本文你将能够在 PX4 上独立完成一套 DroneCAN EPM 抓取器的接线、编译、配置、调试与排障并理解其底层命令流转机制。什么是电永磁抓取器EPM电永磁抓取器Electro-Permanent MagnetEPM与传统电磁铁的关键区别在于它只需一个短暂的电流脉冲即可切换自身的磁化状态吸合/释放在持有载荷的整个过程中不持续耗电。这意味着无人机在执行投递任务时抓取器本身几乎不增加持续功耗负担电池续航与发热表现都优于持续通电的电磁铁方案。PX4 通过 Grippers 总览 支持多类抓取器其中DroneCAN EPM一类即由本文的 FluxGrip 方案覆盖其余为 PWM 舵机抓取器与 MAVLink 抓取器。抓取器既可以在投递任务Payload Delivery Mission中自动触发也可以通过 QGroundControl 的摇杆按键或 MAVLink 命令手动操作。本文所描述的这套配置已在 Holybro Pixhawk 6X Pro 与 FluxGrip 固件502e1f5上验证通过。产品专属的接口定义、电源要求与运行限制请以 FluxGrip 官方硬件文档为准。PX4 固件支持与编译DroneCAN EPM 支持自PX4 v1.18起引入这是首个通过DroneCAN hardpoint 消息uavcan.equipment.hardpoint转发抓取器命令的 PX4 版本。固件裁剪要求飞控固件必须同时包含以下两个模块且板卡本身支持 CANCONFIG_DRIVERS_UAVCANy CONFIG_MODULES_PAYLOAD_DELIVERERy你可以在boards/vendor/board/目录下的default.px4board文件中检查或添加这两项也可以使用 PX4 板卡配置工具menuconfig 进行图形化配置。例如 Pixhawk 6X 系列板卡的配置位于 boards/px4/fmu-v6x 下其中对应.px4board文件即存放这些开关。编译与烧录配置完成后参考构建 PX4 与烧录固件的完整流程。对于 FMUv6X 飞控命令如下请将px4_fmu-v6x_default替换为你所用飞控的构建目标例如 boards/px4/fmu-v5 对应的px4_fmu-v5_defaultgit submodule update --init --recursive make px4_fmu-v6x_default make px4_fmu-v6x_default upload底层模块与命令流转源码解读理解命令如何在固件内部流转有助于后续排障。从源码结构看抓取器命令的流转分为两层payload_deliverer模块src/modules/payload_deliverer/payload_deliverer.cpp接收外部MAV_CMD_DO_GRIPPER车辆命令校验后通过内部 uORB 发布gripper_s抓取器命令uavcan驱动src/drivers/uavcan/actuators/hardpoint.cpp订阅车辆命令当收到VEHICLE_CMD_DO_GRIPPER时将param1hardpoint ID与param2动作填入 hardpoint 消息并按固定周期广播到 CAN 总线if (vehicle_command.command vehicle_command_s::VEHICLE_CMD_DO_GRIPPER) { _cmd.hardpoint_id vehicle_command.param1; _cmd.command vehicle_command.param2; _next_publish_time 0; }FluxGrip 收到该 hardpoint 消息后执行对应的磁化脉冲切换动作。这条链路也解释了为什么 DroneCAN EPM不需要映射任何飞控执行机构输出——命令完全走 CAN 总线而非 PWM 通道。硬件接线::: warning FluxGrip 在切换磁化状态瞬间会短暂拉取较大电流。仅用于测试时可以临时从飞控电源轨取电但前提是该电源轨满足 FluxGrip 的电压与电流要求正常作业时请为 EPM 使用独立、合适的电源以降低飞控电源轨的负载并改善切换性能。电压、电流与布线要求请严格遵循 FluxGrip 官方硬件文档。 :::接线步骤如下将 FluxGrip 连接到飞控的CAN1端口将 FluxGrip 连接到其专用电源按 CAN 布线规范 检查 CAN 总线接线与终端电阻termination为飞控与 FluxGrip 上电。当通信正常时FluxGrip 左侧的 CAN LED 常亮其相邻的另一个 CAN LED 呈闪烁状态即表示设备已在总线上被识别。PX4 参数配置在 QGroundControl 中设置以下参数然后重启飞控| 参数 | 值 | 说明 | | ---- | -- | ---- | | UAVCAN_ENABLE |Sensors Automatic Config2 | 启用 DroneCAN 与动态节点分配若载具同时使用 DroneCAN ESC则改为3| | UAVCAN_BITRATE |1000000| 将 CAN 总线波特率设为 1 Mbit/s | | PD_GRIPPER_TYPE |Binary Grab/Release0 | 启用 EPM 所需的二进制抓取/释放抓取器接口 |::: info 通过 DroneCAN 控制 EPM 时不需要映射飞控的某个执行机构输出也不需要任何 DroneCAN 订阅/发布参数UAVCAN_SUB_*、UAVCAN_PUB_*、CANNODE_SUB_*、CANNODE_PUB_*。只要启用 DroneCANPX4 便会自动发布 hardpoint 命令。 :::参数底层实现源码解读PD_GRIPPER_TYPE与超时参数定义于 src/modules/payload_deliverer/module.yamlPD_GRIPPER_TYPE枚举型取值为-1Undefined未定义或0Binary Grab/Release二进制抓取/释放默认值0。在 payload_deliverer.cpp 的configure_gripper()中该参数被转换为GripperConfig::GripperType::GRAB_RELEASE并据此初始化抓取器实例PD_GRIPPER_TO抓取器动作确认超时单位秒默认1。当抓取器没有反馈传感器时模块在等待该时间后即认为动作成功并发布VehicleCommandAck。建议在 Grippers 总览 的“Gripper Actuation Timeout”一节指导下实测抓取器开合耗时后设置。状态机与超时判定源码解读在 src/modules/payload_deliverer/gripper.cpp 中抓取器维护IDLE / GRABBING / GRABBED / RELEASING / RELEASED五态状态机。由于当前版本尚不支持反馈传感器GripperSensorType::NONE状态迁移完全依赖超时命令发出后若在PD_GRIPPER_TO时间内未收到反馈实际即超时到点即认为抓取/释放成功并置位一次性读取标志grabbed_read_once()/released_read_once()由 payload_deliverer.cpp 发出VEHICLE_CMD_RESULT_ACCEPTED应答。这也解释了为什么投递任务中需要合理设置超时——它决定了任务流程能否按预期继续。测试抓取器::: warning 测试前请拆除螺旋桨并固定载具。投递模块payload deliverer启动时会将抓取器命令为 grab抓取状态因此 EPM 在启动阶段就会磁化吸合——务必确保现场安全。 :::在 QGroundControl 中打开 MAVLink Shell先验证 DroneCAN 驱动与投递模块正在运行uavcan status payload_deliverer status然后分别测试两种抓取器状态# 释放载荷消磁磁铁关闭 payload_deliverer gripper_open # 抓取载荷励磁磁铁打开 payload_deliverer gripper_close命令语义与应答机制源码解读从 payload_deliverer.cpp 可以看到gripper_open/gripper_close分别发布GRIPPER_ACTION_RELEASE与GRIPPER_ACTION_GRAB的MAV_CMD_DO_GRIPPER车辆命令对应 hardpoint ID0释放命令动作为0抓取命令动作为1。同时该模块对每条命令执行严格的应答管理handle_vehicle_command若当前正在执行与前一条冲突的动作新命令会使旧命令被标记为CANCELLED若收到相同动作的命令则临时拒绝TEMPORARILY_REJECTED动作执行中回IN_PROGRESS附带result_param1 UINT8_MAX表示进度完成后回ACCEPTED非法动作则回DENIED。这套机制保证了任务投递流程如投递任务能获得明确的抓取/释放完成确认。测试通过后EPM 即可通过 Grippers 总览 中描述的任何方式操作任务自动触发、摇杆按键、MAVLink 命令。LED 状态指示FluxGrip 上位于 CAN LED 右侧的Magnet LED磁铁指示灯用于指示 EPM 状态状态含义Detect/Unknown检测/未知FluxGrip 上电后的初始状态On点亮EPM 已磁化正在持有载荷Off熄灭EPM 已消磁载荷已释放Fade-in渐亮FluxGrip 正在切换到磁化状态Fade-out渐暗FluxGrip 正在切换到消磁状态若 Magnet LED快速闪烁说明 FluxGrip 磁化失败。请检查电源与接线若问题持续存在请联系 Zubax 官方支持。故障排查若 FluxGrip 无响应按以下顺序排查运行uavcan status确认 DroneCAN 驱动正在运行且 FluxGrip 在总线上可见检查UAVCAN_ENABLE与UAVCAN_BITRATE是否按上文设置检查 CAN 接线、总线终端电阻以及 EPM 电源运行payload_deliverer status确认抓取器有效输出中Gripper valid: True若payload_deliverer不可用说明固件未包含投递模块请重新编译并启用CONFIG_MODULES_PAYLOAD_DELIVERERy。延伸阅读Grippers抓取器总览抓取器类型、摇杆配置、PD_GRIPPER_TO与MIS_COMMAND_TOUT的设置方法DroneCANDroneCAN 协议、动态节点分配与 CAN 布线投递任务Package Delivery Mission在任务中自动触发抓取与释放MAVLink Shell使用飞行控制台执行上述测试命令相关源码src/modules/payload_deliverer、src/drivers/uavcan/actuators/hardpoint.cpp、src/modules/payload_deliverer/module.yaml赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐PX4 集成 Zubax Telega 电调指南无感 FOC 电调在 DroneCAN 总线上的接线、配置与调试PX4 集成 Zubax Telega 电调指南无感 FOC 电调在 DroneCAN 总线上的接线、配置与调试 Zubax Telega 是 Zubax R嵌入式物联网机器人自动驾驶智能硬件PX4 DroneCAN ESC 配置与使用指南电调接入、总线分配与可逆电机实战PX4 DroneCAN ESC 配置与使用指南电调接入、总线分配与可逆电机实战 PX4 Autopilot 原生支持 DroneCAN原 UAVCAN v嵌入式物联网机器人自动驾驶智能硬件PX4 通过 DroneCAN 接入 VESC 电调从接线到飞控配置的完整指南PX4 通过 DroneCAN 接入 VESC 电调从接线到飞控配置的完整指南 本文以 PX4 官方文档《VESC ESCs DroneCAN 》为核心系统嵌入式物联网机器人自动驾驶智能硬件上一篇从PHP超全局变量创建ServerRequestNyholm/psr7-server使用教程下一篇AI Comic Factory高级技巧优化LLM提示词提升漫画生成质量创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表