云深处绝影四足机器人协议学习解析

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

本学习文档介绍了云深处 绝影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)

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

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

给定参数如下:

在这里插入图片描述

疑惑

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

参考资料

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值