跳转到主要内容

底盘类CAN协议标准

为了更好的兼容不同设备,我们规范了CAN协议的标准,使得同类型不同型号设备能无缝切换,自动被ROS识别并直接使用,方便更换硬件时候的软件移植工作。以下为底盘使用的专用CAN协议。

请注意使用设备CANID替换表中XX部分

请先确保阅读了CAN协议构架说明再开始以下内容


底盘指令总表

此表展示了通用指令的所有指令内容,方便快速查询和定位

指令集

 

反馈集

重要性

说明

设备对象

命令内容

大类

(00~1F)

型号

(00~FF)

编号

(00~FF)

功能

(00~FF)

 

大类

(00~1F)

型号

(00~FF)

编号

(00~FF)

功能

(00~FF)

反馈内容

周期性

移动底盘



底盘状态设置

01

xx

xx

11

 

01

xx

xx

B1

底盘状态信息

周期反馈

必备

 

底盘运动控制

01

xx

xx

12

 

01

xx

xx

B2

底盘运动信息

周期反馈

必备

 

/

/

/

/

/

 

01

xx

xx

B3

主轮里程计

周期反馈

必备

 

/

/

/

/

/

 

01

xx

xx

B4

次轮里程计

周期反馈

选备

主要用于正交轮和麦克纳姆轮体系

遥控器信息发送使能

01

xx

xx

15

 

01

xx

xx

B5

车载遥控器信息

使能后周期反馈

必备

 

安全传感器发送使能

01

xx

xx

16

 

01

xx

xx

B6

车载安全传感器信息

使能后周期反馈

选备

 

驱动器运动信息发送使能

01

xx

xx

17

 

01

xx

xx

B7

驱动器运动信息

使能后周期反馈

选备

 

驱动器状态信息发送使能

01

xx

xx

18

 

01

xx

xx

B8

驱动器状态信息

使能后周期反馈

选备

 

底盘零点较准

01

xx

xx

19

 

01

xx

xx

B9

零点较准信息

对命令反馈

选备

主要用于阿克曼底盘的方向舵较准

/

/

/

/

/

 

01

xx

xx

BA

错误状态信息

周期反馈

必备

 

获取RTC时间

01

xx

xx

1B

 

01

xx

xx

BB

RTC时间信息

对命令反馈

选备

需要具有板载时钟芯片

设置RTC时间

01

xx

xx

1C

 

01

xx

xx

BC

设置RTC时间反馈

对命令反馈

选备

 

设置唤醒时间

01

xx

xx

1D

 

01

xx

xx

BD

设置唤醒时间反馈

对命令反馈

选备

用于需要睡眠模式的设备

电源输出控制

01

xx

xx

1E

 

01

xx

xx

BE

电源输出反馈

对命令反馈

选备

配合睡眠模式使用

机械参数设置

01

xx

xx

1F

 

01

xx

xx

BF

机械参数反馈

对命令反馈

必备


odom设置

01

xx

xx

20


01

xx

xx

C0

odom-位移反馈

周期反馈

选备


/

/

/

/

/


01

xx

xx

C1

odom-旋转反馈

周期反馈

选备

 

 


1. 底盘状态设置

 

底盘状态设置

发送方

接收方

CAN ID

数据长度

周期(ms

外部

本设备

0x 01 XX XX 11

4

/

数据位

功能

数据类型

说明

byte[0]

设置控制模式

unsigned int8

0x00: 待机 / 0x01: 遥控 / 0x02: CAN控制 / 0x03: 随动

byte[1]

使能蜂鸣器

unsigned int8

0x00: 关闭 / 0x01: 开启(默认)

手动控制蜂鸣器,不影响报警的蜂鸣器

byte[2]

使能刹车

unsigned int8

0x00: 松开 / 0x01: 锁止(如有刹车则默认)

byte[3]

使能特殊功能

unsigned int8

0x00: 关闭(默认) / 0x01: 开启

byte[4~7]

/

/

/

底盘状态信息

发送方

接收方

CAN ID

数据长度

周期(ms)

本设备

外部

0x 01 XX XX B1

8

100

数据位

功能

数据类型

说明

byte[0]

设备状态

unsigned int8

0x00: 正常 / 0x01: 异常(出现错误报警)

byte[1]

控制模式

unsigned int8

0x00: 待机 / 0x01: 遥控 / 0x02: CAN控制 / 0x03: 随动

byte[2]

电池电压低8位

unsigned int16

单位:0.1V

byte[3]

电池电压高8位

byte[4]

蜂鸣器状态

unsigned int8

0x00: 关闭 / 0x01: 开启(默认)

手动控制蜂鸣器,不影响报警的蜂鸣器

byte[5]

遥控器状态

unsigned int8

0: 在线 / 1: 离线

byte[6]

刹车状态

unsigned int8

0x00: 松开 / 0x01: 锁止(如有刹车则默认)

byte[7]

特殊功能状态

unsigned int8

0x00: 关闭(默认) / 0x01: 开启