机器人通讯协议

学习来自-具身人型机器人测试机器人通讯协议有哪些?机器人的通信协议有哪些?机器人测试必须了解的通讯协议_哔哩哔哩_bilibili

黄色部分为云平台,绿色偏向于硬件测试,蓝色是ros相关。

一、云端 → 本体工控机:远程指令与状态同步

  • 接口设计 :/robot/status(机器人状态)、/mqtt/status/deviceid(设备级状态),路径里带 deviceid 说明是"一机一主题"的多设备寻址方式。
  • HTTP 与 MQTT 的分工:HTTP 是请求---响应模式,适合查询类操作(拉取一次状态、下发一次配置);MQTT 是长连接发布订阅,适合服务器主动推指令或持续上报,弱网下开销小。
  • 数据格式是 JSON:自描述、可读、跨语言,代价是体积大、解析慢,所以只能承载"低频、非实时"的业务。
  • 测试关注点:断网重连与消息补发、QoS 等级(0/1/2 决定是否丢消息、是否重复)、指令与时序乱序、状态上报延迟和一致性、鉴权与设备身份绑定。

二、App → 云端:人机交互与实时推送

  • 双通道设计:HTTPS 处理后端业务(登录鉴权、设备绑定、配置管理、历史数据查询),WebSocket 维持全双工长连接用于实时推送和遥控。
  • 数据格式同为 JSON:App 侧不需要高实时,通道分开是为了让"重业务"和"轻推送"互不干扰。
  • 测试关注点 :Token 有效期与刷新、WebSocket 心跳保活、弱网/切网重连、长连接并发数上限、消息乱序与去重、以及推送延迟(用户体感直接相关)。

三、App → 本体工控机:近场直连(配网与调试)

  • 三条并行通道 :/net/wifi/status、/net/ble/status 走 Wi-Fi 与蓝牙 BLE,ws://robot/status 走 WebSocket。BLE 的典型用途是设备还没入网时做配网------把 Wi-Fi 账号密码通过蓝牙传给机器人。
  • 数据格式出现 String 字符串:这是全图里唯一非结构化的一层,说明这一层有很多"人可读的调试信息",不是机器间的严格契约。
  • 测试关注点:配网成功率与失败回滚、Wi-Fi 与 BLE 双通道切换、蓝牙丢包/断连、中文字符编码乱码、以及在机器人本体上的实际信号强度测试。

四、传感器 → 工控机:高带宽数据入口

  • DDS 是核心 :FastDDS / Cyclone DDS 是 ROS 2 的默认中间件,采用发布订阅 + QoS 策略(可靠性、历史深度、时效性),可以按"尽力而为"或"可靠传输"灵活配置------这是它比 JSON over HTTP 高效得多的根本原因。
  • 硬件层是 USB3 / PCIe:工业相机、麦克风阵列靠这些高带宽总线接入,PCIe 用于采集卡类设备。
  • 数据是二进制:Raw Image / Raw Audio 是原始裸数据,封装后才用 Protobuf。一帧 1080p 图像就是几 MB,用文本格式根本传不动。
  • 测试关注点:带宽与吞吐(能否跑满帧率)、丢帧率、时间戳同步(多传感器融合的前提)、内存零拷贝是否生效、CPU/带宽占用瓶颈。

五、算法模块间:工控机内部的"算法总线"

  • 通道是 ROS 2 话题 + gRPC :/speech_text(语音识别结果)、/apple_pose(视觉位姿)、/task_plan(任务规划结果),三者串起感知 → 决策 → 规划流水线。跨语言、跨进程的大块调用用 gRPC。
  • 两种数据格式并存 :语义层用 JSON(如"去拿桌上的苹果"这类指令),几何/时序数据用 ROS Messages,例如 geometry_msgs/PoseStamped 是带时间戳和坐标系的标准位姿结构。
  • 测试关注点 :话题发布频率是否达标、消息字段完整性、TF 坐标变换链是否正确、单个节点的处理延迟、以及端到端时延(一句话从麦克风进去到规划输出用了多久)。

六、工控机 → 底层控制器:进入硬实时区

  • 总线选型有讲究:CAN 抗干扰、成本低、报文小(经典帧 8 字节),适合关节多但带宽需求分散的场景;EtherCAT 是工业以太网,微秒级同步、带宽高,适合高精度多轴;UART 多用于调试或单路低速设备。
  • 话题层是 /cmd_vel(速度指令)和 /joint_commands(关节指令)------前者是移动底盘语义,后者是全身关节语义。
  • 数据是二进制结构体:紧凑字节流,例如用 8 个字节表示"位置 + 速度",需要严格约定字节序、缩放系数和取值范围,人类不可读,必须靠工具解析。
  • 测试关注点 :控制周期与抖动 jitter(比平均延迟更致命)、丢帧对闭环的影响、打包/解包字节序错误、速度与力矩限幅(安全相关的硬边界,必须做越界测试)。

七、控制器 → 电机驱动 + 反馈回路:物理与闭环

  • 最底层没有"软件话题" :控制器到电机驱动是物理接口,输出 PWM / 模拟电压这种电信号,脉宽调制通过占空比控制等效电压,进而控制转速与力矩。这一层的测试已经属于示波器、HIL(硬件在环)和台架测试的范畴。
  • 反馈回路是闭环的另一半 :/joint_states(关节状态)、/imu/data(惯性测量)走 DDS 或 CAN 传回工控机,形成"下发指令 → 执行 → 回传状态 → 修正"的闭环。
  • 这条回路的测试核心是"时序一致性":反馈与控制周期不匹配、反馈延迟过大、丢一帧反馈,都会表现为机器人抖动、漂移甚至失稳------现象在机械上,根因往往在通信上。
相关推荐
life码农6 小时前
Nginx 配置允许指定 IP 段访问:从 192.168.1.1 到 192.168.1.124 及 /24 详解
网络·tcp/ip·nginx
javaDocker6 小时前
16.5 小时,我打掉了两只「SSL 握手失败」的怪
网络·网络协议·ssl
蜗牛互联网7 小时前
Python接入Gemini 3.8 Flash实现票据视觉抽取与规则校验
java·javascript·网络·人工智能·python
我就是不信7 小时前
TCP 原理详解:从三次握手到拥塞控制
网络·网络协议·tcp/ip
木白CPP7 小时前
USB(一): USB 概述&&介绍
linux·网络·嵌入式硬件
可乐鸡翅yeah_7 小时前
AES‑128 加密 M3U8,IV 初始化向量新手容易踩坑
前端·网络·数据库·ffmpeg·音视频·m3u8在线
HEJOO98 小时前
指针与结构体:C 语言进阶核心详解
c语言·开发语言·网络
workflower8 小时前
世界模型的内涵与发展
人工智能·机器人·云计算·无人机
en.en..8 小时前
IO 多路复用:select、poll、epoll 核心函数解析
网络
我就是不信8 小时前
TCP/IP 网络编程:从入门到实战
网络·网络协议·tcp/ip