Skip to content

Latest commit

 

History

History
114 lines (82 loc) · 6.62 KB

dataprotocol.md

File metadata and controls

114 lines (82 loc) · 6.62 KB

一、UWB广播数据协议

字节号 取值 描述 备注
0 锚点ID
1 Bit7 里程计测量值状态 1:可用 0:不可用 本帧状态
2~5 一个半月长度 本帧UTC时间 单位:ms
6~9(4) 本帧UWB信号发送时刻 UWB本地时刻
10(1) Bit 7~Bit4 同步的锚点ID 1 Bit3 同步状态 Bit0 钟差的符号 第1个同步结果 9Byte
11~15(5) 与同步锚点的钟差
16~18(3) 与同步锚点的钟漂
Base= 10+(k-1)*9 (1) Bit 7~Bit4 同步的锚点ID k Bit3 同步状态 Bit0 钟差的符号 第5个同步结果 9Byte
Base+1~Base+5 (5) 与同步锚点的钟差
Base+6~Base+8 (3) 与同步锚点的钟漂
55~66(12) 6轴IMU
67~70(4) 里程计UTC时间戳
71(1) 轮式编码器积分时间
72~75(4) m 轮式编码器dx
76~79(4) m 轮式编码器dy
80-83(4) rad 轮式编码器dphi
84~124 0x 空白
125~126(2) CRC校验码 Decawave自动填充

二、UWB标签到PC数据格式

IMU信息:

字节号 取值和类型 描述 单位
0~1 0xA55A 消息头
2 0x12 (18) 消息长度,MSGID+payload
3 0x01,IMU 消息类型 MSGID
4~7 uint32 消息时间戳 ms
8 uint8 (0~5) 发送该消息的锚点ID
9~10 int16 加速度计x轴测量值 /8192.0*m/s^2
11~12 int16 加速度计y轴测量值 /8192.0*m/s^2
13~14 int16 加速度计z轴测量值 /8192.0*m/s^2
15~16 int16 陀螺仪x轴测量值 / 131.072*rad/s
17~18 int16 陀螺仪y轴测量值 / 131.072*rad/s
19~20 int16 陀螺仪z轴测量值 / 131.072*rad/s
21 0xDD 消息尾

轮式编码器信息:

字节号 取值和类型 描述 单位
0~1 0xA55A 消息头
2 0x13 (19) 消息长度,MSGID+payload
3 0x02,轮式编码器 消息类型 MSGID
4~7 uint32 消息时间戳 ms
8 0~5,uint8 发送该消息的锚点ID
9 uint8 轮式编码器积分时间
10~13 float32 轮式编码器dx m
14~17 float32 轮式编码器dy m
18~21 float32 轮式编码器dphi rad
22 0xDD 消息尾

UWB测距信息

字节号 取值和类型 描述 单位
0~1 0xA55A 消息头
2 0x0F(15) 消息长度,MSGID+payload
3 0x03,UWB双向测距消息类型 MSGID
4~7 uint32 消息时间戳 ms
8 0~5,uint8 测距锚点ID
9 0~5,uint8 测距锚点ID
10~17 double64 双向测距值 m
18 0xDD 消息尾

三、机器人底盘与UWB硬件通信协议

UWB –> MCU时间基准:

1)1PPS脉冲:GPIO

2)串口数据帧:0xA5 0x5A 0xDD

LEN: 8bit,长度为MSGID+payload,对于本消息,为9

MSGID: 8bit, 0x01

Timestamp: 64bit,分辨率1ms,参考linux timestamp

Checksum: 16bit, CRC32

3)1秒传一次,1PPS上升沿发送

MCU->UWB里程计信息:

1) 串口数据帧:0xA5 0x5A 0xDD

LEN:8bit,长度为MSGID+payload,对于本消息,为22

MSGID:8bit,0x02. (1byte)

Timestamp: 64bit, 分辨率1ms,参考linux timestamp. (8bytes)

Interval:8bit,分辨率1ms

Odom:dx:float,dy:float,dphi:float, 单位为(m, rad),共3x4=12bytes

Checksum:16bit,CRC32

2) 最好20Hz传输,需要保证时间戳的精度为10ms以上

注意事项

  1. 目前锚点号只能是0~5。