通信架构
basic_server 协议
Section titled “basic_server 协议”基于TCP或UDP协议(根据具体开发需要进行选择),适用于机器人本体与上位机(外部板卡或系统)通信使用。
| 本协议 | 应用层(第7层) |
|---|---|
| TCP/IP协议或UDP/IP协议 | 传输层(第4层) |
| 网络层(第3层) | |
| 以太网 | 链路层(第2层) |
| 物理层(第1层) | |
| 注: 第5,第6层未用 |
本协议使用时,机器人本体为TCP/UDP服务端,外部板卡或系统为TCP/UDP客户端。
- UDP服务端地址:10.21.31.103:30000
- TCP服务端地址:10.21.31.103:30001
本协议主要使用请求/响应机制。上位机可主动向机器人本体发起数据或状态查询请求,机器人本体通过响应回复部分请求。
应用协议数据单元
Section titled “应用协议数据单元”本协议APDU(应用协议数据单元)采用”协议头部+ASDU(应用服务数据单元)“结构,每个APDU可以携带1个ASDU。
| 序号 | 内容 | 长度 | 值/说明 |
|---|---|---|---|
| 1-4 | 同步字符 | 4 字节 | 0xeb 0x91 0xeb 0x90 |
| 5-6 | 长度 | 2 字节 | ASDU 字节段长度(小端字节序),最大 65535 |
| 7-8 | 报文 ID | 2 字节 | 请求帧/响应帧匹配标识(小端字节序) |
| 9 | ASDU 格式 | 1 字节 | 0x00=XML, 0x01=JSON |
| 10-16 | 预留 | 7 字节 | 填 0x00 |
ASDU(应用服务数据单元)
Section titled “ASDU(应用服务数据单元)”ASDU 采用 JSON 或 XML 格式,推荐使用 JSON 格式(处理性能更快且数据结构更全面),包含以下字段:
| 字段 | 含义 |
|---|---|
| Type | 消息类型 |
| Command | 消息命令码 |
| Time | 报文发送时间(YYYY-MM-DD HH:MM:SS) |
| Items | 参数项 |
ROS2/DDS 接口
Section titled “ROS2/DDS 接口”通过 DrDDS 中间件提供 ROS2 兼容的话题与服务接口,适用于复杂算法开发与多节点协同。
注意: 使用ROS2 工具接收话题、查看频率等前,需要
source /opt/robot/scripts/setup_ros2.sh环境变量。