按交互方式选择接口

ROS 2 的话题适合连续数据流,服务适合简短的请求/响应交互,动作适合带反馈与可取消的较长任务。一个原创设计用话题传递图像与飞行器状态,用服务做快速状态查询,用动作执行拍摄序列。ROS 2 不会自动取代厂商的飞行 API。它连接各个组件;相机驱动、飞行桥接、坐标变换和执行条件仍需实现与验证。为每个组件记录它消费什么状态、产生什么状态。 模块边界应当让延迟、故障和替换更容易理解,而不只是让图表更整洁。无论系统大小,都为每个组件写一段简短的职责说明。

让时间、坐标系与质量随数据一起传递

仅有主体偏移量,就缺少了观测时刻、来源相机以及是否可靠的信息。随观测一起携带时间戳、坐标系、相机校准以及有效性或置信度。按顺序处理每一帧旧图像对归档可能是理想的,但对控制可能并不合适。根据新鲜度、容忍丢失的程度和记录要求来选择通信与队列行为。日志流可以保留所有可用数据,而控制消费者则应拒绝过期的观测。不要把这些不同的要求塞进一个未经审视的默认设置。 名为 confidence 的值不一定是经过校准的概率。定义它的计算方式和局限,区分过期或无效的观测,而不是呈现一个无法解释却令人安心的数字。 关于利用超声波信标定位飞行的研究,见巡检指南的论文卡片 Autonomous UAVs for Structural Health Monitoring Using Deep Learning and an Ultrasonic Beacon System with Geo-Tagging。

让取消贯穿整个系统

如果拍摄动作停止了,而下游的路径生成或飞行器适配器仍在发送旧目标,那么取消就是不完整的。在我们原创的练习中,先画出感知、构图、飞行指令与监督,再追踪取消如何经过每个阶段。把正常完成、用户中断、目标丢失和通信故障记录为不同的结果。停止录制与让飞行器进入保守状态不必是同一时刻的同一个决策。回放日志并检查各组件状态是否一致。模块越多,归属越要清晰,而不是相反。 明确恢复时是保留中间状态还是重新开始任务。中断期间主体可能已经移动,盲目返回旧路径可能违背镜头的前提假设。 把地面机器人与飞行器组合成一套监测系统,在巡检领域已走得更远。见将四足与地面机器人同无人机结合用于巡检(Airffic Inspection)。

YOUR NEXT STEP

付诸实践。

留意这些陷阱
  • 仅使用 ROS 2 并不能确立实时性能或安全性。
  • 停止一个节点并不能确认飞行器已收到恰当的停止指令。

来源与编辑范围

说明和练习均为原创编辑内容。与产品相关的具体条件,请对照所链接的文档版本核实。

  1. ROS 2 — Topics vs Services vs Actions, official source ↗
  2. ROS 2 — Official documentation repository ↗

研究日期:2026年10月21日。请核对链接所指版本、支持的硬件和适用条件。证据包括直接审读的文本和官方检索索引记录。

阅读方法论与未解问题 →