移动平台类CAN协议标准
为了更好的兼容不同设备,我们规范了CAN协议的标准,使得同类型不同型号设备能无缝切换,自动被ROS识别并直接使用,方便更换硬件时候的软件移植工作。以下为移动平台用的专用CAN协议。
请先确保阅读了CAN协议构架说明再开始以下内容
请注意使用设备CANID替换表中XX部分
移动平台类设备的大类ID为 03
移动平台指令总表
此表展示了专用指令的所有指令内容,方便快速查询和定位
|
指令集 |
反馈集 |
重要性 |
说明 |
|||||||||||
|
设备对象 |
命令内容 |
大类 (00~1F) |
型号 (00~FF) |
编号 (00~FF) |
功能 (00~FF) |
大类 (00~1F) |
型号 (00~FF) |
编号 (00~FF) |
功能 (00~FF) |
反馈内容 |
周期性 |
|||
|
移动平台 |
平台状态设置 |
03 |
xx |
xx |
11 |
03 |
xx |
xx |
B1 |
平台状态信息 |
周期反馈 |
必备 |
||
|
平台移动范围查询 |
03 |
xx |
xx |
12 |
03 |
xx |
xx |
B2 |
移动范围信息 |
对命令反馈 |
必备 |
|||
|
平台转动范围查询 |
03 |
xx |
xx |
13 |
03 |
xx |
xx |
B3 |
转动范围信息 |
对命令反馈 |
必备 |
|||
|
平台移动速度控制 |
03 |
xx |
xx |
14 |
03 |
xx |
xx |
B4 |
平台移动信息 |
周期反馈 |
选备 |
适用于有移动轴的平台 |
||
|
平台转动速度控制 |
03 |
xx |
xx |
15 |
03 |
xx |
xx |
B5 |
平台转动信息 |
周期反馈 |
选备 |
适用于有旋转轴的平台 |
||
|
平台移动位置控制 |
03 |
xx |
xx |
16 |
03 |
xx |
xx |
B6 |
平台位置信息 |
周期反馈 |
选备 |
适用于有移动轴的平台 |
||
|
平台转动位置控制 |
03 |
xx |
xx |
17 |
03 |
xx |
xx |
B7 |
平台角度信息 |
周期反馈 |
选备 |
适用于有旋转轴的平台 |
||
1. 平台状态设置/ 平台状态信息
|
平台状态设置 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
外部 |
本设备 |
0x 03 XX XX 11 |
1 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
启动零点较准 |
uint8 |
0x00: 不启动 / 0x01:启动 | |
|
byte[1~7] |
/ |
/ |
/ |
|
|
平台状态信息 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
本设备 |
外部 |
0x 03 XX XX B1 |
4 |
100 |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
设备状态 |
uint8 |
0x00: 正常 / 0x01:异常 |
|
|
byte[1] |
零点较准状态 | uint8 | 0x00: 较准完成 / 0x01:校准中 | |
|
byte[2] |
特殊状态 | uint16 | 查看特殊状态表 | |
|
byte[3] |
||||
|
byte[4~7] |
/ |
/ |
/ |
|
|
拨动开关档位表 |
||
|
位 |
值 |
说明 |
|
bit[0] |
0: 正常 / 1:触发 |
x平移限位触发 |
|
bit[1] |
0: 正常 / 1:触发 |
y平移限位触发 |
|
bit[2] |
0: 正常 / 1:触发 |
z平移限位触发 |
|
bit[3] |
0: 正常 / 1:触发 |
x轴旋转限位触发 |
|
bit[4] |
0: 正常 / 1:触发 |
y轴旋转限位触发 |
|
bit[5] |
0: 正常 / 1:触发 |
z轴旋转限位触发 |
|
bit[6] |
0: 正常 / 1:堵转 |
x电机堵转 |
|
bit[7] |
0: 在线 / 1:堵转 |
y电机堵转 |
|
bit[8] |
0: 正常 / 1:堵转 |
z电机堵转 |
|
bit[9] |
0: 正常 / 1:过温 |
x电机过温 |
|
bit[10] |
0: 在线 / 1:过温 |
y电机过温 |
|
bit[11] |
0: 正常 / 1:过温 |
z电机过温 |
|
bit[12~15] |
/ |
/ |
启动校准后平台会缓慢寻找零点并停在零点处
举例: 型号0x02 编号0x03 的平台启动校准,发送CANID:0x03 02 03 11 数据:01。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x03 02 03 11
数据帧
扩展帧
1
01
上位机
0x03 02 03 B1
数据帧
扩展帧
4
00 01 00 00
2. 平台移动范围查询 / 平台移动范围信息
用于获得平台移动轴的运动范围,是设备的固定参数
|
平台移动范围查询 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
外部 |
本设备 |
0x 03 XX XX 12 |
0 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0~7] |
/ |
/ |
/ |
|
|
平台移动范围信息 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
本设备 |
外部 |
0x 03 XX XX B2 |
6 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x移动范围低8位 |
signed int16 |
单位:mm |
|
|
byte[1] |
x移动范围高8位 |
|||
|
byte[2] |
y移动范围低8位 |
signed int16 |
单位:mm |
|
|
byte[3] |
y移动范围高8位 |
|||
|
byte[4] |
z移动范围低8位 |
signed int16 |
单位:mm |
|
|
byte[5] |
z移动范围高8位 |
|||
|
byte[6~7] |
/ |
/ |
/ |
|
当有移动轴时候才有效
举例: 型号0x02 编号0x03 的平台获取移动范围x=1000mm,发送CANID:0x03 02 03 12。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x03 02 03 12
数据帧
扩展帧
0
/
上位机
0x03 02 03 B2
数据帧
扩展帧
6
E8 03 00 00 00 00
3. 平台旋转范围查询 / 平台旋转范围信息
用于获得平台旋转轴的运动范围,是设备的固定参数
|
平台旋转范围查询 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
外部 |
本设备 |
0x 03 XX XX 13 |
0 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0~7] |
/ |
/ |
/ |
|
|
平台旋转范围信息 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
本设备 |
外部 |
0x 03 XX XX B3 |
6 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x旋转范围低8位 |
signed int16 |
单位:mrad |
|
|
byte[1] |
x旋转范围高8位 |
|||
|
byte[2] |
y旋转范围低8位 |
signed int16 |
单位:mrad |
|
|
byte[3] |
y旋转范围高8位 |
|||
|
byte[4] |
z旋转范围低8位 |
signed int16 |
单位:mrad |
|
|
byte[5] |
z旋转范围高8位 |
|||
|
byte[6~7] |
/ |
/ |
/ |
|
当有转动轴时候才有效
举例: 型号0x02 编号0x03 的平台获取旋转范围x=2rad,发送CANID:0x03 02 03 13。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x03 02 03 13
数据帧
扩展帧
0
/
上位机
0x03 02 03 B3
数据帧
扩展帧
6
D0 07 00 00 00 00
4. 平台移动控制 / 平台移动信息
通过控制速度来移动平台
|
平台移动控制 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
外部 |
本设备 |
0x 03 XX XX 14 |
6 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x方向速度低8位 |
signed int16 |
单位:mm/s |
|
|
byte[1] |
x方向速度高8位 |
|||
|
byte[2] |
y方向速度低8位 |
signed int16 |
单位:mm/s |
|
|
byte[3] |
y方向速度高8位 |
|||
|
byte[4] |
z方向速度低8位 |
signed int16 |
单位:mm/s |
|
|
byte[5] |
z方向速度高8位 |
|||
|
byte[6~7] |
/ |
/ |
/ |
|
|
平台移动信息 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
本设备 |
外部 |
0x 03 XX XX B4 |
6 |
50 |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x方向速度低8位 |
signed int16 |
单位:mm/s |
|
|
byte[1] |
x方向速度高8位 |
|||
|
byte[2] |
y方向速度低8位 |
signed int16 |
单位:mm/s |
|
|
byte[3] |
y方向速度高8位 |
|||
|
byte[4] |
z方向速度低8位 |
signed int16 |
单位:mm/s |
|
|
byte[5] |
z方向速度高8位 |
|||
|
byte[6~7] |
/ |
/ |
/ |
|
需要实时读取位置信息,可能会出现超限
当有移动轴时候才有效
举例: 型号0x02 编号0x03 的平台设置移动x=1m/s,发送CANID:0x03 02 03 14。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x03 02 03 14
数据帧
扩展帧
6
E8 03 00 00 00 00
上位机
0x03 02 03 B4
数据帧
扩展帧
6
E8 03 00 00 00 00
5. 平台转动控制 / 平台转动信息
通过控制速度来转动平台
|
平台转动控制 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
外部 |
本设备 |
0x 03 XX XX 15 |
6 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x轴角速度低8位 |
signed int16 |
单位:mrad/s |
|
|
byte[1] |
x轴角速度高8位 |
|||
|
byte[2] |
y轴角速度低8位 |
signed int16 |
单位:mrad/s |
|
|
byte[3] |
y轴角速度高8位 |
|||
|
byte[4] |
z轴角速度低8位 |
signed int16 |
单位:mrad/s |
|
|
byte[5] |
z轴角速度高8位 |
|||
|
byte[6~7] |
/ |
/ |
/ |
|
|
平台转动信息 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
本设备 |
外部 |
0x 03 XX XX B5 |
6 |
50 |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x轴角速度低8位 |
signed int16 |
单位:mrad/s |
|
|
byte[1] |
x轴角速度高8位 |
|||
|
byte[2] |
y轴角速度低8位 |
signed int16 |
单位:mrad/s |
|
|
byte[3] |
y轴角速度高8位 |
|||
|
byte[4] |
z轴角速度低8位 |
signed int16 |
单位:mrad/s |
|
|
byte[5] |
z轴角速度高8位 |
|||
|
byte[6~7] |
/ |
/ |
/ |
|
需要实时读角度置信息,可能会出现超限
当有转动轴时候才有效
举例: 型号0x02 编号0x03 的平台设置转动速度x=1rad/s,发送CANID:0x03 02 03 15。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x03 02 03 15
数据帧
扩展帧
6
E8 03 00 00 00 00
上位机
0x03 02 03 B5
数据帧
扩展帧
6
E8 03 00 00 00 00
6. 平台位置控制 / 平台位置信息
通过控制速度来转动平台
|
平台位置控制 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
外部 |
本设备 |
0x 03 XX XX 16 |
8 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x方向位置低8位 |
signed int16 |
单位:mm |
|
|
byte[1] |
x方向位置高8位 |
|||
|
byte[2] |
y方向位置低8位 |
signed int16 |
单位:mm |
|
|
byte[3] |
y方向位置高8位 |
|||
|
byte[4] |
z方向位置低8位 |
signed int16 |
单位:mm |
|
|
byte[5] |
z方向位置高8位 |
|||
|
byte[6] |
最大移动速度低8位 |
unsigned int16 |
单位:mm/s |
|
|
byte[7] |
最大移动速度高8位 |
|||
|
平台位置信息 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
本设备 |
外部 |
0x 03 XX XX B6 |
8 |
50 |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x方向位置低8位 |
signed int16 |
单位:mm |
|
|
byte[1] |
x方向位置高8位 |
|||
|
byte[2] |
y方向位置低8位 |
signed int16 |
单位:mm |
|
|
byte[3] |
y方向位置高8位 |
|||
|
byte[4] |
z方向位置低8位 |
signed int16 |
单位:mm |
|
|
byte[5] |
z方向位置高8位 |
|||
|
byte[6] |
最大移动速度低8位 |
unsigned int16 |
单位:mm/s |
|
|
byte[7] |
最大移动速度高8位 |
|||
当有移动轴时候才有效
举例: 型号0x02 编号0x03 的平台设置移动到位置 x=1m 速度1m/s,发送CANID:0x03 02 03 16。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x03 02 03 16
数据帧
扩展帧
8
E8 03 00 00 00 00 E8 03
上位机
0x03 02 03 B6
数据帧
扩展帧
8
E8 03 00 00 00 00 E8 03
7. 平台角度控制 / 平台角度信息
通过控制速度来转动平台
|
平台角度控制 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
外部 |
本设备 |
0x 03 XX XX 17 |
8 |
/ |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x轴角度低8位 |
signed int16 |
单位:mrad |
|
|
byte[1] |
x轴角度高8位 |
|||
|
byte[2] |
y轴角度低8位 |
signed int16 |
单位:mrad |
|
|
byte[3] |
y轴角度高8位 |
|||
|
byte[4] |
z轴角度低8位 |
signed int16 |
单位:mrad |
|
|
byte[5] |
z轴角度高8位 |
|||
|
byte[6] |
最大转动速度低8位 |
unsigned int16 |
单位:mrad/s |
|
|
byte[7] |
最大转动速度高8位 |
|||
|
平台角度信息 |
||||
|
发送方 |
接收方 |
CAN ID |
数据长度 |
周期(ms) |
|
本设备 |
外部 |
0x 03 XX XX B7 |
8 |
50 |
|
数据位 |
功能 |
数据类型 |
说明 |
|
|
byte[0] |
x轴角度低8位 |
signed int16 |
单位:0.001rad |
|
|
byte[1] |
x轴角度高8位 |
|||
|
byte[2] |
y轴角度低8位 |
signed int16 |
单位:0.001rad |
|
|
byte[3] |
y轴角度高8位 |
|||
|
byte[4] |
z轴角度低8位 |
signed int16 |
单位:0.001rad |
|
|
byte[5] |
z轴角度高8位 |
|||
|
byte[6] |
最大转动速度低8位 |
unsigned int16 |
单位:mrad/s |
|
|
byte[7] |
最大转动速度高8位 |
|||
当有移动轴时候才有效
举例: 型号0x02 编号0x03 的平台设置转动到角度 x=1rad 速度1rad/s,发送CANID:0x03 02 03 17。
发送实例
传输目标
CAN ID
帧格式
帧类型
数据长度
数据位(L->H)
设备
0x03 02 03 17
数据帧
扩展帧
6
E8 03 00 00 00 00 E8 03
上位机
0x03 02 03 B7
数据帧
扩展帧
6
E8 03 00 00 00 00 E8 03