惯导类CAN协议标准
为了更好的兼容不同设备,我们规范了CAN协议的标准,使得同类型不同型号设备能无缝切换,自动被ROS识别并直接使用,方便更换硬件时候的软件移植工作。以下为惯导设备使用的专用CAN协议。
请先确保阅读了CAN协议构架说明再开始以下内容
请注意使用设备CANID替换表中XX部分
惯导类设备的大类ID为 0B
惯导传感器指令总表
此表展示了专用指令的所有指令内容,方便快速查询和定位
指令集 |
反馈集 |
重要性 |
说明 |
|||||||||||
设备对象 |
命令内容 |
大类 ( 00~1F) |
型号 (00~FF) |
编号 (00~FF) |
功能 (00~FF) |
大类 (00~1F) |
型号 (00~FF) |
编号 (00~FF) |
功能 (00~FF) |
反馈内容 |
周期性 |
|||
惯导传感器 |
角度信息设置 |
0B |
xx |
xx |
11 |
0B |
xx |
xx |
B1 |
传感器角度信息 |
周期反馈 |
必备 |
||
角速度信息设置 |
0B |
xx |
xx |
12 |
0B |
xx |
xx |
B2 |
传感器角速度信息 |
周期反馈 |
必备 |
|||
加速度信息设置 |
0B |
xx |
xx |
13 |
0B |
xx |
xx |
B3 |
传感器加速度信息 |
周期反馈 |
必备 |
|||
四元数信息设置 |
0B |
xx |
xx |
14 |
0B |
xx |
xx |
B4 |
传感器四元数信息1 |
使能后周期反馈 |
选备 |
|||
/ |
/ |
/ |
/ |
/ |
0B |
xx |
xx |
B5 |
传感器四元数信息2 |
使能后周期反馈 |
选备 |
1. 角度信息设置 / 传感器角度信息
角度信息设置 |
||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
外部 |
本设备 |
0x 0B XX XX 11 |
1 |
/ |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
发送周期设置 |
unsigned int8 |
0: 关闭/ 1~10: 10ms / 10~255:设定值(默认10ms) |
|
byte[1~7] |
/ |
/ |
/ |
传感器角度信息 | ||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
本设备 |
外部 |
0x 0B XX XX B1 |
8 |
默认10 |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
x轴旋转角[7:0] |
signed int16 |
单位:0.01deg(°) |
|
byte[1] |
x轴旋转角[8:15] |
|||
byte[2] |
y轴旋转角 [7:0] |
signed int16 |
单位:0.01deg(°) |
|
byte[3] |
y轴旋转角 [8:15] |
|||
byte[4] |
z轴旋转角[7:0] |
signed int16 |
单位:0.01deg(°) |
|
byte[5] |
z轴旋转角[8:15] |
|||
byte[6] |
发布时间戳[7:0] |
unsigned int16 |
单位:ms |
|
byte[7] |
发布时间戳[8:15] |
举例: 型号0x01 编号0x02 的IMU 设置10ms,反馈x=0.5° y=1.0° z=1.5°。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x0B 01 02 11
数据帧
扩展帧
1
14
上位机
0x0B 01 02 B1
数据帧
扩展帧
8
32 00 64 00 96 00 01 00
2. 角速度设置 / 角速度信息
角速度信息设置 |
||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
外部 |
本设备 |
0x 0B XX XX 12 |
1 |
/ |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
发送周期设置 |
unsigned int8 |
0: 关闭/ 1~10: 10ms / 10~255:设定值(默认10ms) |
|
byte[1~7] |
/ |
/ |
/ |
角速度信息 | ||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
本设备 |
外部 |
0x 0B XX XX B2 |
8 |
默认10 |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
x方向角速度[7:0] |
signed int16 |
单位:0.01 deg/s |
|
byte[1] |
x方向角速度 [8:15] |
|||
byte[2] |
y方向角速度 [7:0] |
signed int16 |
单位:0.01 deg/s |
|
byte[3] |
y方向角速度 [8:15] |
|||
byte[4] |
z方向角速度 [7:0] |
signed int16 |
单位:0.01 deg/s |
|
byte[5] |
z方向角速度 [8:15] |
|||
byte[6] |
发布时间戳[7:0] |
unsigned int16 |
单位:ms |
|
byte[7] |
发布时间戳[8:15] |
举例: 型号0x01 编号0x02 的IMU 设置10ms,反馈x=0.5°/s y=1.0°/s z=1.5°/s。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x0B 01 02 12
数据帧
扩展帧
1
14
上位机
0x0B 01 02 B2
数据帧
扩展帧
8
32 00 64 00 96 00 01 00
3. 加速度设置 / 加速度信息
加速度信息设置 |
||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
外部 |
本设备 |
0x 0B XX XX 13 |
1 |
/ |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
发送周期设置 |
unsigned int8 |
0: 关闭/ 1~10: 10ms / 10~255:设定值(默认10ms) |
|
byte[1~7] |
/ |
/ |
/ |
加速度信息 | ||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
本设备 |
外部 |
0x 0B XX XX B3 |
8 |
默认10 |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
x方向加速度[7:0] |
signed int16 |
单位:0.01m/s² |
|
byte[1] |
x方向加速度 [8:15] |
|||
byte[2] |
y方向加速度 [7:0] |
signed int16 |
单位:0.01m/s² |
|
byte[3] |
y方向加速度 [8:15] |
|||
byte[4] |
z方向加速度 [7:0] |
signed int16 |
单位:0.01m/s² |
|
byte[5] |
z方向加速度 [8:15] |
|||
byte[6] |
发布时间戳[7:0] |
unsigned int16 |
单位:ms |
|
byte[7] |
发布时间戳[8:15] |
举例: 型号0x01 编号0x02 的IMU 设置10ms,反馈x=0.5m/s y=1.0m/s z=1.5m/s。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x0B 01 02 13
数据帧
扩展帧
1
14
上位机
0x0B 01 02 B3
数据帧
扩展帧
8
32 00 64 00 96 00 01 00
4. 四元数信息设置
四元数信息设置 |
||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
外部 |
本设备 |
0x 0B XX XX 14 |
1 |
/ |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
发送周期设置 |
unsigned int8 |
0: 关闭(默认)/ 1~10: 10ms / 10~255:设定值 |
|
byte[1~7] |
/ |
/ |
/ |
四元数信息1 | ||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
本设备 |
外部 |
0x 0B XX XX B4 |
8 |
默认关闭 |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
四元数qw[0:7] |
float |
||
byte[1] |
四元数qw[8:15] |
|||
byte[2] |
四元数qw[16:23] |
|||
byte[3] |
四元数qw[24:31] |
|||
byte[4] |
四元数qx[0:7] |
float |
||
byte[5] |
四元数qx[8:15] |
|||
byte[6] |
四元数qx[16:23] |
|||
byte[7] |
四元数qx[24:31] |
四元数信息2 | ||||
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
本设备 |
外部 |
0x 0B XX XX B5 |
8 |
默认关闭 |
数据位 |
功能 |
数据类型 |
说明 |
|
byte[0] |
四元数qy[0:7] |
float |
||
byte[1] |
四元数qy[8:15] |
|||
byte[2] |
四元数qy[16:23] |
|||
byte[3] |
四元数qy[24:31] |
|||
byte[4] |
四元数qz[0:7] |
float |
||
byte[5] |
四元数qz[8:15] |
|||
byte[6] |
四元数qz[16:23] |
|||
byte[7] |
四元数qz[24:31] |