3 使用与开发 Getting Started
本部分主要介绍CLEAR割草机器人平台的基本操作与使用,介绍如何通过外部CAN口,通过CAN总线协议来对车体进行二次开发。
3.1 使用与操作
检查
检查车体状态。检查车体是否有明显异常;如有,请联系 售后支持;
检查急停开关状态。确认两个急停按钮均处于释放状态;
启动
旋转旋钮开关(电器面板中Q1),正常情况下,电压表正常显示 电池电压;
检查电池电压,如未有“滴-滴-滴…”连续蜂鸣器声音,表示电 池电压正常,若电量低,请充电;
关闭操作
旋转旋钮开关,即可切断电源。
急停
按下CLEAR割草机器人车体左右两侧的急停开关即可。
遥控控制基本操作流程
正常启动CLEAR割草机器人后,启动遥控器,将控制模式选择为遥控控制模式,即可通过遥控器控制CLEAR割草机器人。
3.2 充电
CLEAR割草机器人产品默认随车配备一个25A的充电器,可满足客户的充电需求。默认关机充电,正常充电时,底盘没有指示灯说 明。具体指示灯请看充电器上说明。
3.2.1充电具体操作流程
确保CLEAR割草机器人处于停机断电状态。充电前请确认尾部电气控制台中Q1(旋钮开关)处于关闭状态,把电池端和割草机器 人端插头拔掉;将充电器的插头插入电池仓的充电接口中;
将充电器连接电源,将充电器开关打开,即可进入充电状态。(请注意先插上接插头再开启充电器上电源)
3.2.2 更换电池
CLEAR割草机器人为了方便用户采取了可拆卸电池方案,在 一些特殊情况下直接可以更换电池,操作步骤和示意图如下 (操作之前确保CLEAR割草机器人是断电状态):
把CLEAR割草机器人电池上插头拔掉,然后将锁扣打开取出电池。
将电池上插头和车上插头链接,把电池插入电池仓。关闭锁扣。
确认连接无误之后然后上电测试;
3.3 开发
CLEAR割草机器人产品针对用户的开发提供了CAN接口,用户可以进行指令控制。
3.3.1 CAN线的连接
CLEAR割草机器人随车提供了一个航空插头公头如图3.3所示,线束定义参考图2.4下的表。
3.3.2 CAN指令控制的实现
正常启动CLEAR割草机器人,打开遥控器,然后将控制模式切换至 指令控制,即将遥控器SWB模式选择拨至最上方,此时CLEAR割草 机器人会接受来自CAN接口的指令,同时主机也可以通过CAN总线 回馈的实时数据,解析当前底盘的状态,具体协议内容参考CAN通 讯协议。
3.3.3 CAN接口协议
CLEAR割草机器人产品中CAN通信标准采用的是CAN2.0B标准,通讯波特率为500K,报文格式采用MOTOROLA 格式。通过外部CAN总线接口可以控制底盘移动的线速度以及旋转的角速度;CLEAR割草机器人会实时反馈当前 的运动状态信息以及CLEAR割草机器人的状态信息等。
协议包含系统状态回馈帧、运动控制回馈帧、控制帧,协议内容具体如下:
系统状态回馈指令包含了当前车体状态回馈、控制模式状态回馈、电池电压回馈以及故障回馈等,协议内容下表所示。
表格 3.1 CLEAR割草机系统状态回馈帧
指令名称
系统状态回馈指令
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
线控底盘
决策控制单元
0x211
100ms 无
数据长度
0x08
位置
功能
数据类型
说明
byte [0]
当前车体状态
unsigned int8
0x00 系统正常
0x01 紧急停车模式
0x02 系统异常
byte [1]
模式控制
unsigned int8
0x00 待机模式
0x01 CAN指令控制模式
0x03遥控控制模模式
byte [2]
byte [3]
电池电压高八位
电池电压低八位
unsigned int16
实际电压X 10 (精确到0.1V)
byte [4]
byte [5]
故障信息高八位
故障信息低八位
unsigned int16
详见如下表格[故障信息说明]
byte [6]
当前运动模型
signed int8
0×00-四轮差速 0×01-阿克曼
byte [7]
计数校验 (count)
unsigned int8
0~255循环计数,每发送一条指令计数加一次
表格 3.2 故障信息说明表
故障信息说明
字节
位
含义
bit [0]
驱动器状态错误(0:无故障1:故障)
bit [1]
上层通讯连接状态(0: 无故障 1: 故障)
bit [2]
预留,默认0
byte [4]
bit [3]
预留,默认0
bit [4]
预留,默认0
bit [5]
预留,默认0
bit [6]
预留,默认0
bit [7]
预留,默认0
bit [0]
电池欠压故障(0:无故障 1:故障)
bit [1]
电池欠压警告(0:无警告 1:警告) 报警电压为34.5V
bit [2]
遥控器失联保护(0: 无故障 1: 故障)
byte [5]
bit [3]
(1号电机)转向电机驱动器通讯故障(0:无故障 1:故障)
bit [4]
(2号电机)后右电机驱动器通讯故障(0:无故障 1:故障)
bit [5]
(3号电机)后左电机驱动器通讯故障(0:无故障 1:故障)
bit [6]
4号电机驱动器通讯故障(0:无故障 1:故障)
bit [7]
预留,默认0
运动控制回馈帧指令包含了当前车体的运动线速度、运动角速度回馈,协议具体内容如下表所示。
表格 3.3 运动控制回馈帧
指令名称
运动控制回馈指令
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
线控底盘
决策控制单元
0x221
20ms 无
数据长度
0x08
位置
功能
数据类型
说明
byte [0]
byte [1]
移动速度高八位
移动速度低八位
signed int16
实际速度X 1000 (精确到0.001m/s)
byte [2]
byte [3]
旋转速度高八位
旋转速度低八位
signed int16
实际速度X 1000 (精确到0.001rad/s)
byte [4]
保留
--
0x00
byte [5]
保留
--
0x00
byte [6]
byte [7]
转角高八位
转角低八位
signed int16
0x00
0x00
运动控制帧包含了线速度控制开度、角速度控制开度,其具体协议内容如下表所示。
表格 3.4 运动控制指令控制帧
指令名称
控制指令
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
决策控制单元
底盘节点
0x111
20ms 500ms
数据长度
0x08
位置
功能
数据类型
说明
byte [0]
byte [1]
线速度高八位
线速度低八位
signed int16
车体行进速度,单位mm/s,值域 [-1500,1500]
byte [2]
byte [3]
角速度高八位
角速度高八位
signed int16
车体旋转角速度,单位0.001rad/s, 值域[-1000,1000]
byte [4]
保留
--
0x00
byte [5]
保留
--
0x00
byte [6]
保留
--
0x00
byte [7]
保留
--
0x00
模式设定帧用于设定终端的控制接口,其具体协议内容如下表所示。
表格 3.5 控制模式设定帧
指令名称
控制模式设定指令
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
决策控制单元
底盘节点
0x421
无 无
数据长度
0x08
位置
功能
数据类型
说明
byte [0]
CAN控制使能
unsigned int8
0×00待机模式 0×01
can指令控制模式
上电默认进入待机模式
byte [1]
保留
--
0×00
byte [2]
保留
--
0×00
byte [3]
保留
--
0×00
byte [4]
保留
--
0×00
byte [5]
保留
--
0×00
byte [6]
保留
--
0×00
byte [7]
保留
--
0×00
控制模式说明:CLEAR割草车在开机上电,遥控器未连接的情况下,控制模式默认是待机模式,此时底盘只接收控制模式 指令,速度指令不做响应,要使用CAN控制就需要先使能CAN控制模式。若打开遥控器,遥控器具有最高权限,可以屏蔽指 令的控制,可以切换控制模式。
表格 3.6 割草控制指令0x4
指令名称
割草控制指令
节点ID
接收节点
帧ID
周期(ms) 接收超时(ms)
超时时间
底盘节点
0X141
20ms 500ms
数据长度
0x08
字节
描述
数据类型
说明
byte[0]
刀片启动控制
unsigned int8
0-刀片关闭 1-刀片转动
byte[1]
推杆位置
signed int8
不带编码器版本:0 停止 1 正推 -1反推
带编码版本:范围 0-100
byte[2]
保留
--
0x0
byte[3]
保留
--
0x0
byte[4]
保留
--
0x0
byte[5]
保留
--
0x0
byte[6]
保留
--
0x0
byte[7]
保留
--
0x0
注:需要固件版本1.3之后支持
状态置位帧用于清除系统错误,其具体协议内容如下表所示。
表格 3.7状态置位帧
指令名称
状态设定指令
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
决策控制单元
底盘节点
0x441
无 无
数据长度
0x01
位置
功能
数据类型
说明
byte [0]
错误清除指令
unsigned int8
0x00 清除所有错误
0x01 清除电机1错误
0x02 清除电机2错误
0x03 清除电机3错位
0x04 清除电机4错误
[注3]示例数据,以下数据仅供测试使用
1.小车以0.15m/S的速度前进
byte [0]
byte [1]
byte [2]
byte [3]
byte [4]
byte [5]
byte [6]
byte [7]
0x00
0x96
0x00
0x00
0x00
0x00
0x00
0x00
2.小车以0.2RAD/S旋转
byte [0]
byte [1]
byte [2]
byte [3]
byte [4]
byte [5]
byte [6]
byte [7]
0x00
0x00
0x00
0xc8
0x00
0x00
0x00
0x00
除了底盘的状态信息会进行反馈以外,底盘反馈的信息还包括电机的电流信息、编码器数据以及温度信息。下面的帧反馈 是电机的电流信息、编码器信息以及电机温度信息:
在底盘中四个电机电机编号对应为如下图所示:
表格 3.8 电机转速电流位置信息反馈
指令名称
电机驱动器高速信息反馈帧
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
线控底盘
决策控制单元
0x251~0x254
20ms 无
数据长度
0x08
位置
功能
数据类型
说明
byte [0]
byte [1]
电机转速高八位
电机转速低八位
signed int16
电机当前转速 单位RPM
byte [2]
byte [3]
电机电流高八位
电机电流低八位
signed int16
电机当前电流 单位0.1A
byte [4]
byte [5]
byte [6]
byte [7]
电机当前位置最高位
电机当前位置次高位
电机当前位置次低位
电机当前位置最低位
signed int32
电机当前位置 单位:脉冲数
表格 3.9 电机温度电压及状态信息反馈
指令名称
电机驱动器低速信息反馈帧
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
线控底盘
决策控制单元
0x261~0x264
20ms 无
数据长度
0x08
位置
功能
数据类型
说明
byte [0]
byte [1]
驱动器电压高八位
驱动器电压低八位
unsigned int16
当前驱动器电压 单位0.1V
byte [2]
byte [3]
驱动器温度高八位
驱动器温度低八位
signed int16
单位1℃
byte [4]
电机温度
signed int8
单位1℃
byte [5]
驱动器状态
unsigned int8
详见表3.9
byte [6]
保留
--
0x00
byte [7]
保留
--
0x00
表格 3.10驱动器状态
字节
位
说明
bit[0]
电源电压是否过低(0:正常 1:过低)
bit[1]
电机是否过温(0:正常 1:过温)
bit[2]
电机是否过流(0:正常 1:过流)
byte[5]
bit[3]
驱动器是否过温(0:正常 1:过温)
bit[4]
传感器状态(0:正常 1:异常)
bit[5]
驱动器错误状态(0:正常 1:异常)
bit[6]
驱动器使能状态(0:失能 1:使能)
bit[7]
回零状态(0:没有回零 1:已经回零,或已经回过零)
表格 3.11 里程计信息反馈
指令名称
里程计信息反馈
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
线控底盘
决策控制单元
0x311
20ms 无
数据长度
0x08
位置
功能
数据类型
说明
byte [0]
byte [1]
byte [2]
byte [3]
左轮里程计最高位
左轮里程计低高位
左轮里程计次低位
左轮里程计最低位
signed int32
底盘左轮里程计反馈
单位:mm
byte [4]
byte [5]
byte [6]
byte [7]
右轮里程计最高位
右轮里程计次高位
右轮里程计次低位
右轮里程计最低位
signed int32
底盘右轮里程计反馈
单位:mm
表格 3.12 遥控器信息反馈
指令名称
遥控器信息反馈帧
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
线控底盘
决策控制单元
0x241
20ms 无
数据长度
0x08
位置
功能
数据类型
说明
byte[0]
遥控SW反馈
unsigned int8
bit[0-1]: SWA :2-上档 3-下档
bit[2-3]: SWB:2-上档 1-中档 3-下档
bit[4-5]: SWC:2-上档 1-中档 3-下档
bit[6-7]: SWD:2-上档 3-下档
byte[1]
右边拨杆左右
signed int8
值域:[-100,100]
byte[2]
右边拨杆上下
signed int8
值域:[-100,100]
byte[3]
左边拨杆上下
signed int8
值域:[-100,100]
byte[4]
左边拨杆左右
signed int8
值域:[-100,100]
byte[5]
左边旋钮VRA
signed int8
值域:[-100,100]
byte[6]
保留
--
0x00
byte[7]
计数校验
unsigned int8
0-255循环计数
表格 3.13 BMS信息反馈帧
指令名称
BMS信息反馈帧
发送节点
接收节点
ID
周期(ms) 接收超时(ms)
线控底盘
决策控制单元
0x361
500ms 无
数据长度
0x08
位置
功能
数据类型
说明
byte[0]
电池SOC
unsigned int8
范围 0~100
byte[1]
电池SOH
unsigned int8
范围 0~100
byte[2]
电池电压值高八位
unsigned int16
单位:0.1V
byte[3]
电池电压值低八位
signed int8
值域:[-100,100]
byte[4]
电池电流值高八位
signed int16
单位:0.1A
byte[5]
电池电流值低八位
signed int8
值域:[-100,100]
byte[6]
byte[7]
电池温度高八位
电池温度低八位
signed int16
单位:0.1℃
Last updated
Was this helpful?