logo资料库

V0.2 版机器人通用底盘协议.pdf

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
1.协议说明
2.底盘说明
3.串口通讯
3.1串口通讯介绍
3.2串口通讯说明
3.3串口通讯内容
·上层控制指令
系统(底盘)状态控制指令
运动控制指令
灯光控制指令
机械臂控制指令
·系统反馈指令
系统状态反馈指令
底盘轮速反馈指令
IMU反馈指令
超声波反馈指令
GPS反馈指令
机械臂状态反馈指令
灯光反馈指令
·调试指令
PID调参指令
底盘反馈日志指令
3.4串口通讯示例
4.CAN通讯
4.1 CAN通讯介绍
4.2 CAN通讯说明
4.3 CAN通讯内容
·上层控制指令
·系统反馈指令
通用底盘协议 作者:嵌入式小白 Woods CSDN 博客:嵌入式小白 Woods Github:freshman-woods 时间:2020/8/12
版本 更改时间 嵌入式小白 Woods V0.1 2020/8/12 2020/11/2 整体修改 嵌入式小白 Woods V0.2 更改类型 创建 版本管理 责任人 备注 无 无
目录 1.协议说明..................................................................................................................................1 2.底盘说明..................................................................................................................................1 3.串口通讯..................................................................................................................................2 3.1 串口通讯介绍...............................................................................................................2 3.2 串口通讯说明...............................................................................................................2 3.3 串口通讯内容...............................................................................................................3 ·上层控制指令.........................................................................................................4 系统(底盘)状态控制指令............................................................................ 4 运动控制指令.....................................................................................................5 灯光控制指令.....................................................................................................5 机械臂控制指令.................................................................................................6 ·系统反馈指令.........................................................................................................6 系统状态反馈指令.............................................................................................6 底盘轮速反馈指令.............................................................................................7 IMU 反馈指令.....................................................................................................8 超声波反馈指令.................................................................................................8 GPS 反馈指令.....................................................................................................8 机械臂状态反馈指令.........................................................................................9 灯光反馈指令.....................................................................................................9 ·调试指令...............................................................................................................10 PID 调参指令....................................................................................................10 底盘反馈日志指令...........................................................................................10 3.4 串口通讯示例.............................................................................................................11 4.CAN 通讯................................................................................................................................14 4.1 CAN 通讯介绍.............................................................................................................14 4.2 CAN 通讯说明.............................................................................................................14 4.3 CAN 通讯内容.............................................................................................................15 ·上层控制指令.......................................................................................................15 ·系统反馈指令.......................................................................................................16 1
1.协议说明 为加强机器人设计过程中内部通讯方案统一性,协调遥控端,决策段及底盘 间的信息,特设计此协议。 通讯分为串口通讯及 can 通讯两种,可根据机器人所具有的实际接口选择适 合的通讯方式。 此协议适用为遥控端(平板)/决策端(工控机)至执行层(单片机)的通 讯协议。 此协议适用于自主版及遥控版机器人。 2.底盘说明 常见的底盘模型有三轮全向底盘,四麦克纳姆轮底盘,四轮全向底盘,两轮 差速底盘,四轮差速底盘及阿克曼底盘,其中较为常用的为图四所示底盘。 针对上述四幅图显示的底盘模型进行描述(俯视底盘角度观察),以前进方 向为 X 轴正方向(如图箭头方向),垂直箭头朝右方向为 Y 轴正方向,垂直两轴 方向且垂直屏幕向外方向为 Z 轴正方向,即采用右手坐标系作为系统坐标系。 在底盘中,从 X 轴正方向以顺时针方向旋转,遇到的车轮依次标号为 A 轮, B 轮,C 轮,D 轮。当仅使用部分轮进行驱动时,其他轮速可设置为 0,底盘自动 忽略。 注 1:履带式机器人可简化为两轮差速底盘。 注 2:其余未在上图中出现的底盘,均采用以上方法进行底盘车轮命名。 1
3.串口通讯 3.1 串口通讯介绍 它是在 1970 年由美国电子工业协会( EIA )联合贝尔系统、调制解调器厂 家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终 端设备( DTE )和数据通讯设备( DCE )之间串行二进制数据交换接口技术标准” 该标准规定采用一个 25 个脚的 DB-25 连接器,对连接器的每个引脚的信号内 容加以规定,还对各种信号的电平加以规定。后来 IBM 的 PC 机将 RS232 简化 成了 DB-9 连接器,从而成为事实标准。而工业控制的 RS-232 口一般只使用 RXD、TXD、GND 三条线。 3.2 串口通讯说明 ·通讯基本参数 项目 波特率 数据位 停止位 校验位 流控制 参数 115200 8 1 None None ·硬件接口 串口通讯接口选择为 RS232 串口线,采用通用 DB9 接口。典型的 RS-232 信 号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V, 负电平在-5~-15V 电平。当无数据传输时,线上为 TTL,从开始传送数据到结束, 线上电平从 TTL 电平到 RS-232 电平再返回 TTL 电平。接收器典型的工作电平在 +3~+12V 与-3~-12V。 ·通讯方式 通讯内容包括上层控制指令、底盘反馈指令及调试指令。 上层控制指令包括但不限于系统(底盘)状态控制指令、运动控制指令、灯 光控制指令、机械臂控制指令。 系统反馈指令包括但不限于系统(底盘)状态反馈指令、运动控制反馈指令、 灯光控制反馈指令,IMU 反馈指令,GPS 反馈指令,超声波反馈指令。 调试指令包括 PID 调参指令和系统(底盘)执行反馈日志指令,PID 调参指 2
令用于对 PID 参数进行设定并调试,系统(底盘)执行反馈日志指令用于监测单 片机是否正常执行上位机指令,以日志形式打印保存在决策层,方便查看并检查 错误。 上层控制指令以事件触发形式发送,无固定周期,但相同类型两帧控制指令 的间隔时间建议大于等于 40ms。 系统反馈指令以固定周期形式发送,周期为 40ms。 调试指令中 PID 调参指令以事件触发形式发送,无固定周期,但相同类型两 帧控制指令的间隔时间建议大于等于 40ms;系统(底盘)执行反馈日志指令以 固定周期形式发送,周期为 40ms。 3.3 串口通讯内容 起始位 帧长度 指令 ID 数据域 帧 ID 校验和 SOF Frame_L CMD_ID Data[0] … Data[n-1] Frame_ID_H Frame_ID_L check_sum Byte0 Byte1 Byte2 Byte3 Byte3+1 … Byte 3+n Byte 4+n Byte 5+n Byte 6+n 0xAA 0x55 协议包含起始位,帧长度,指令 ID,数据域,帧 ID, 校验和组成。其中起 始位为 0xAA,0X55,帧长度是指除去起始位和校验和以外的长度,校验和为起始 位到帧 ID 所有数据求和;帧 ID 位 0~65535 循环计数,每发送一条指令计数 自加一次。 指令 ID 中 0x00~0x7F 属于上层控制指令,0x80~0xBF 属于底盘反馈指令, 0xC2 属于 PID 调参指令,0xC2 属于系统(底盘)执行反馈日志指令。 ·校验程序示例 /** * @brief serial message checksum example code * @param[in] *data : serial message data struct pointer * @param[in] len :serial message data length * @return the checksum result */ static uint8 SerialMsgChecksum(const uint8 *data, uint8 len) { uint8 checksum = 0x00; for(uint8 i = 0 ; i < (len-1); i++) { checksum += data[i]; } return checksum; } 3
·上层控制指令 指令名称 发送节点 接收节点 指令 ID 位置 Byte[0] Byte[1] Byte[2] Byte[3] Byte[4] Byte[5] Byte[6] Byte[7] 字节 Byte[0] 字节 Byte[2] 系统(底盘)状态控制指令 工控机(决策层) 底盘(执行层) 0x01 功能 系统状态 镜头焦距 机械臂功能 抓手夹持力百分比 预留 预留 预留 预留 周期 帧长度 数据域长度 数据类型 unsigned int8 signed int8 signed int8 unsigned int8 unsigned int8 unsigned int8 unsigned int8 unsigned int8 40ms 0x0C 8 说明 详见系统状态信息说明 范围:[-100~100] 详见机械臂功能说明 单位:% 默认 0 默认 0 默认 0 默认 0 位 Bit[0] Bit[1] Bit[2] Bit[3] Bit[4] Bit[5] Bit[6] Bit[7] 位 Bit[0] Bit[1] Bit[2] Bit[3] Bit[4] Bit[5] Bit[6] Bit[7] 系统状态信息说明 含义 急停(1:进入(处于)急停状态 0:退出急停状态) 休眠(1:进入(处于)休眠状态 0:退出休眠状态) 自主导航(1:进入(处于)自主状态 0:退出自主状态) 充电状态(1:开始(处于)充电状态 0:退出充电状态) 预留,默认 0 预留,默认 0 预留,默认 0 预留,默认 0 机械臂功能说明 含义 一键展开(1:开始(正在)动作 一键回收(1:开始(正在)动作 观察车顶姿态(1:开始(正在)动作 观察车底姿态(1:开始(正在)动作 观察坑洞姿态(1:开始(正在)动作 0:(处于)静止) 0:(处于)静止) 0:(处于)静止) 0:(处于)静止) 0:(处于)静止) 机械臂功能位预留,默认 0 机械臂功能位预留,默认 0 机械臂功能位预留,默认 0 4
指令名称 发送节点 接收节点 指令 ID 位置 Byte[0] Byte[1] Byte[2] Byte[3] Byte[4] Byte[5] Byte[6] Byte[7] 指令名称 发送节点 接收节点 指令 ID 位置 Byte[0] Byte[1] Byte[2] Byte[3] Byte[4] Byte[5] Byte[6] Byte[7] 字节 Byte[0]/ Byte[4] 工控机(决策层) 底盘(执行层) 0x02 功能 A 轮转速高 8 位 A 轮转速低 8 位 B 轮转速高 8 位 B 轮转速低 8 位 C 轮转速高 8 位 C 轮转速低 8 位 D 轮转速高 8 位 D 轮转速低 8 位 工控机(决策层) 底盘(执行层) 0x03 功能 灯光 1 模式 灯光 1 Red 亮度 灯光 1 Green 亮度 灯光 1 Blue 亮度 灯光 2 模式 灯光 2 Red 亮度 灯光 2 Green 亮度 灯光 2 Blue 亮度 位 Bit[0] Bit[1] Bit[2] Bit[3] Bit[4] Bit[5] Bit[6] Bit[7] 运动控制指令 周期 帧长度 数据域长度 数据类型 signed int16 signed int16 signed int16 signed int16 灯光控制指令 周期 帧长度 数据域长度 数据类型 unsigned int8 unsigned int8 unsigned int8 unsigned int8 unsigned int8 unsigned int8 unsigned int8 unsigned int8 40ms 0x0C 8 说明 轮速信息 单位:RPM 数值=轮速*100 精度:0.01RPM 范围:-327.68~327.67 40ms 0x0C 8 说明 详见灯光模式说明 范围:0~256 范围:0~256 范围:0~256 详见灯光模式说明 范围:0~256 范围:0~256 范围:0~256 灯光模式说明 含义 开关(1:常开 自定义亮度(1:自定义 常亮模式(1:常亮模式 闪烁模式(1:闪烁模式 呼吸灯模式(1:呼吸灯模式 0:常关) 0:默认) 0:常亮) 0:常亮) 0:常亮) 功能位预留,默认 0 功能位预留,默认 0 功能位预留,默认 0 5
分享到:
收藏