通信规范
电控通信优先沿用 XRobot / LibXR 的 Topic、Event 和 SharedTopic。新增接口先看这些机制是否已经覆盖,再考虑设备私有协议。
1. 通信分工
Topic:连续状态和数据流,例如姿态、电机状态、控制目标。Event:离散动作和模式切换,例如遥控器输入触发模块模式。SharedTopic/SharedTopicClient:把 Topic 数据转发到另一块板或主机。RamFS/Terminal:调试命令和状态查看入口。CAN/UART:电机、裁判系统、串口设备和板间链路。
2. 配置位置
电控工程的通信关系主要看 User/RobotConfig/*.yaml。
- 模块实例通过配置文件创建。
- 模块依赖通过配置文件连接。
- Topic 名、UART 名、CAN 总线名以机器人配置为准。
EventBinder用来连接输入事件和模块事件。- SharedTopic 的串口名、收发 topic 清单也在机器人配置里。
3. 跨组接口
算法组和电控组之间共享的数据,以 坐标系规范 为准。
- 坐标系、单位、时间戳含义保持一致。
- Topic 名和字段语义改动前,确认两侧使用方同步更新。
- 串口名、相机配置、手眼外参等运行差异写在对应运行配置里。
4. 排查顺序
通信异常通常按这个顺序排查:
- 物理链路:线束、电源、终端电阻、串口设备。
- 传输配置:CAN ID、UART 名、波特率。
- 框架配置:Topic 名、Event 绑定、SharedTopic 配置。
- 业务状态:模式、超时、离线保护。