跳转到主要内容

惯导类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]