绝影四足机器人通信协议学习解析

本学习文档介绍了云深处 绝影X20 四足机器人的通信协议,并对相关的通信机制和命令格式进行了简单的解析。该协议在机器人系统和上位机(例如外部板卡或系统)之间进行TCP通信时使用。

1. 协议端口号

在此协议中,机器人本体作为TCP服务端上位机作为TCP客户端。协议的TCP服务端端口号为30000

2. 基于Service:Request/Response机制通讯

通信协议基于请求/响应模式进行交互,具体的通信帧结构如下:

通信帧

  • 通信帧协议帧头:

通信帧协议帧头

  • 通信帧数据部分:

数据部分采用XML格式进行交互。

<?xml version="1.0" encoding="UTF-8" ?>
<PatrolDevice>
<Type>1002</Type>  # 消息类型
<Command>1</Command>  # 命令码
<Time>2023-01-01 00:00:00</Time>  # 时间戳
<Items/>  # 参数项
</PatrolDevice>

消息类型对应表如下:

消息类型对应表

3. 常见的通信

下面列出了一些常见的通信示例,其他的可以查看上述消息类型对应表进行理解。

3.1 获取状态(Get State)

请求(Request):

<?xml version="1.0" encoding="UTF-8"?>
<PatrolDevice>
<Type>1002</Type>  # Get state
<Command>1</Command>  # default
<Time>2023-01-01 00:00:00</Time> 
<Items/>  # None
</PatrolDevice>

响应(Response):

<?xml version="1.0" encoding="UTF-8"?>
<PatrolDevice>
<Type>1002</Type>
<Command>1</Command>
<Time>2023-01-01 00:00:01</Time>
<Items>
<MotionState>0</MotionState>  # 运动状态
<PosX>0.0</PosX>  # 地图坐标系下的坐标x
<PosY>0.0</PosY>  # 地图坐标系下的坐标y
<PosZ>0.0</PosZ>  # 地图坐标系下的坐标z
<Yaw>0.0</Yaw>  # 地图坐标系下的偏航角
<Res>0.0</Res>  # 地图像素到真实地图长度比例
<X0>0.0</X0>  # 地图坐标系基准点
<Y0>0.0</Y0>  # 地图坐标系基准点

在这里插入图片描述
状态解释如下图:

状态基

运动状态对应表如下:

运动状态表

疑惑

为何此处不反馈机器人自身姿态的pitch和roll?

3.2 导航请求(Navigation)

导航请求是一个异步请求,适用于ROS Action模型。

请求(Request):

<?xml version="1.0" encoding="UTF-8"?>
<PatrolDevice>
<Type>1003</Type>  # 下发导航消息类型
<Command>1</Command>
<Time>2023-01-01 00:00:00</Time>
<Items>
<Value>100</Value>  # 该地图中的目标点编号
<MapID>1</MapID>  # 地图编号
<PosX>0.0</PosX>  # 目标点在地图坐标系的坐标x
<PosY>0.0</PosY>  # 目标点在地图坐标系的坐标y
<PosZ>0.0</PosZ>  # 目标点在地图坐标系的坐标z
<AngleYaw>0.0</AngleYaw>  # 目标点与地图基准点偏航角度值
<PointInfo>0</PointInfo>  # 目标点类型过渡/任务/充电(0,1,3)
<Gait>0</Gait>  # 步态(行走/楼梯/斜坡)
<Speed>0</Speed>  # 速度(0~2,low~high)
<Manner>0</Manner>  # 前进或后退(0/1)
<ObsMode>0</ObsMode>  # 障碍物检测开关(0/1)
<NavMode>0</NavMode>  # 导航方式直线或规划(0/1)
</Items>
</PatrolDevice>
目标点及障碍物检测

过渡点仅用于克服地形和约束路径;任务点可执行巡检任务,如识别表计;充电点是在充电桩前用于识别定位充电桩二维码的目标点。
障碍物检测分为避障和停障两种方式:当导航方式选用自主导航时,机器人在遇到障碍物时会自动规划路径绕开障碍物;当导航方式选用直线导航时,机器人在遇到障碍物时将减速至原地踏步,直到障碍物消失。

疑惑

0 # 目标点类型过渡/任务/充电(0,1,3)
2呢? 预留位,间隔位或什么原因删除了?

3.3 导航任务执行状态查询

对应的导航任务执行状态查询如下:

导航任务执行状态查询

疑惑

似乎没有做过程反馈?只有执行状态,可能需要改进,ROS2中的Action机制可提供导航过程中的实时反馈
在这里插入图片描述

3.3 运动控制(Motion Control)

常见的运动类型对应码表如下:

Command Description
1 W
2 S
3 Turn Left
4 Turn Right
5
6 walking in place
7
8
9
10
11 A
12 D
13 Soft Stop
14 Stop Walking
15 Get down on the ground

给定参数如下:

在这里插入图片描述

疑惑

5呢?预留位,间隔位或历史遗留问题?

参考资料

绝影 X20-巡检机器人本体监控协议V1.1.1 2023.6. 27

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐