学习来自-具身人型机器人测试机器人通讯协议有哪些?机器人的通信协议有哪些?机器人测试必须了解的通讯协议_哔哩哔哩_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 传回工控机,形成"下发指令 → 执行 → 回传状态 → 修正"的闭环。 - 这条回路的测试核心是"时序一致性":反馈与控制周期不匹配、反馈延迟过大、丢一帧反馈,都会表现为机器人抖动、漂移甚至失稳------现象在机械上,根因往往在通信上。