3 使用与开发 Getting Started
本部分主要介绍SCOUT2.0平台的基本操作与使用,介绍如何通过外部CAN口,通过CAN总线协议来对车体进行二次开发。
3.1 使用与操作
检查
检查车体状态。检查车体是否有明显异常;如有,请联系 售后支持;
检查急停开关状态。确认两个急停按钮均处于释放状态;
启动
旋转旋钮开关(电气面板中Q4),正常情况下,电压表正常显示 电池电压,前后尾灯均正常亮起;
检查电池电压,如未有“滴-滴-滴…”连续蜂鸣器声音,表示电 池电压正常,若电量低,请充电;
关闭操作
旋转旋钮开关,即可切断电源。
急停
按下SCOUT2.0车体左右两侧的急停开关即可。
遥控控制基本操作流程
正常启动SCOUT2.0移动机器底盘后,启动遥控器,将控制模式选择为遥控控制模式,即可通过遥控器控制SCOUT2.0平台运动。
3.2 充电
SCOUT2.0产品默认随车配备一个10A的充电器,可满足客户的充电需求。默认关机充电,正常充电时,底盘没有指示灯说明。具体 指示灯请看充电器上说明。
3.2.1充电具体操作流程
确保SCOUT2.0底盘处于停机断电状态。充电前请确认尾部电 气控制台中Q1(旋钮开关)处于关闭状态;
将充电器的插头插入车尾电气控制面板中Q2充电界面中;
将充电器连接电源,将充电器开关打开,即可进入充电状态。
注意:当前电池从22V充满电状态大约需要3小时,电池 充满电电压约为29.2V(此处的电池电压为三元锂电池 类型,如果电池类型为磷酸铁锂最高电压为26.8V);充 电时间计算30aH÷10A=3H。
3.2.2 更换电池
SCOUT2.0为了方便用户采取了可拆卸电池方案,在一些特殊情 况下直接可以更换电池,操作步骤和示意图如下(操作之前确保 SCOUT2.0是断电状态):
把SCOUT2.0上面舱室面板打开,将主控板上两个XT60电源接 头(两个接头是等效的)和电源CAN线接头拔掉;
把SCOUT2.0悬空,从底部用国标内六角扳手拧下八颗螺钉,然 后将电池拖出;
将需要更换的电池装上,把底部螺钉固定;
把XT60接口和电源CAN线接口插到主控板,确认所有连接线正 确之后然后上电测试;
3.3 开发
SCOUT2.0产品针对用户的开发提供了CAN和RS232的接口,用户可选择其中一种接口对车体进行指令控制。
3.3.1 CAN线的连接
SCOUT2.0随车发货提供了两个航空插头公头如图3.2。线的定义可 参考表2.2。
3.3.2 CAN指令控制的实现
正常启动SCOUT2.0移动机器人底盘,打开遥控器,然后将控制模 式切换至指令控制,即将遥控器SWB模式选择拨至最上方,此时 SCOUT2.0底盘会接受来自CAN接口的指令,同时主机也可以通过 CAN总线回馈的实时数据,解析当前底盘的状态,具体协议内容参 考CAN通讯协议。
3.3.3 CAN接口协议
SCOUT2.0产品中CAN通信标准采用的是CAN2.0B标准,通讯波特率为500K,报文格式采用MOTOROLA格式。通 过外部CAN总线接口可以控制底盘移动的线速度以及旋转的角速度;SCOUT2.0会实时反馈当前的运动状态信息 以及SCOUT2.0底盘的状态信息等。
协议包含系统状态回馈帧、运动控制回馈帧、控制帧,协议内容具体如下:
系统状态回馈指令包含了当前车体状态回馈、控制模式状态回馈、电池电压回馈以及故障回馈等,协议内容如表 3.1所示。
注[1]:机器人底盘固件版本V1.2.8后续版本支持,之前版本需要升级固件方可支持 注[2]:电池欠压警告标志置位时蜂鸣器响,但是底盘控制不受影响,欠压故障后会切断动力输出
运动控制回馈帧指令包含了当前车体的运动线速度、运动角速度回馈,协议具体内容如表3.3所示。
运动控制帧包含了线速度控制开度、角速度控制开度,其具体协议内容如表3.4所示。
模式设定帧用于设定终端的控制接口,其具体协议内容如表3.5所示。
控制模式说明:SCOUT 2.0在开机上电,遥控器未连接的情况下,控制模式默认是待机模式,此时底盘只接收控制模式指 令,速度指令不做响应,要使用CAN控制就需要先使能CAN控制模式。若打开遥控器,遥控器具有最高权限,可以屏蔽指令 的控制,可以切换控制模式。
状态置位帧用于清除系统错误,其具体协议内容如表3.6所示。
[注3]示例数据,以下数据仅供测试使用
1.小车以0.15m/S的速度前进
2.小车以0.2RAD/S旋转
除了底盘的状态信息会进行反馈以外,底盘反馈的信息还包括电机的电流信息、编码器数据以及温度信息。下面的帧反馈 是电机的电流信息、编码器信息以及电机温度信息:
在底盘中四个电机电机编号对应为如下图所示:
前部和外部的灯光也支持指令控制,下表为控制的指令:
注[5]: 此值只在自定义模式下有效
3.4串口通信协议
3.4.1 串口协议介绍
它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯 的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用 一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。后来IBM的PC机 将RS232简化成了DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般只使用RXD、TXD、GND三条线。
3.4.2 串口的连接
使用我们的通讯配套工具里面的USB转RS232串口线,与车尾部的串口相连,使用串口工具,设置好相应波特率,使用上 面提供的示例数据即可测试,如果遥控器是开启的状态,需要将遥控器切换至指令控制模式,如果遥控器未开启,直接发 送控制指令即可,需要注意的是,指令必须要是周期性的发送,如果底盘超过500MS未接收到串口指令,进入失联保护状 态。
3.4.3 串口协议内容
通讯基本参数
协议说明
协议包含起使位,帧长度,帧指令类型,指令ID,数据域,帧ID, 校验和组成。其中帧长度是指除去起始位和校验和以外的长 度,校验和为起使位到帧ID所有数据求和;帧ID位0~255循环计数,每发送一条指令计数自加一次。
串口校验算法代码示例
协议内容
注[1]:机器人底盘固件版本V1.2.8后续版本支持,之前版本需要升级固件方可支持
运动控制回馈指令
运动控制指令
控制模式设定指令
状态设定指令
电机驱动器高频信息反馈帧
电机驱动器低频信息反馈帧
灯光控制帧
灯光控制反馈帧
里程计反馈帧
版本信息请求帧
版本信息反馈帧
遥控信息反馈帧
BMS反馈帧
示例数据
通过控制底盘以0.15m/s的线速度进行前进运动,下面是具体数据内容
下面是数据域内容:
整串数据内容为:5A A5 0A 55 01 00 96 00 00 00 00 00 F5
其他说明:本协议需要固件版本V1.5.12以上
3.5固件升级
为了方便用户对SCOUT2.0所使用的固件版本进行升级, 给客户带来更加完善的体验,SCOUT2.0提供了固件升级 的硬件接口以及与之对应的客户端软件。其客户端界面如 图3.3所示
升级准备
串口线 X 1
USB转串口 X 1
SCOUT2.0 底盘 X 1
电脑(WINDOWS 操作系统) X 1
固件升级软件
升级过程
连接前保证机器人底盘电源处于断开状态;
使用串口线连接至SCOUT2.0底盘顶部串口;
串口线连接至电脑;
打开客户端软件;
选择端口号;
SCOUT2.0底盘上电,立即点击开始连接(SCOUT2.0底 盘会在上电前3S,如果时间超过3S则会进入应用程序);
若连接成功,会在文本框提示“连接成功”;
加载BIN文件;
点击升级,等待升级完成的提示即可;
断开串口线,底盘断电,再次通电即可。
3.6 SCOUT2.0 SDK 使用示例
为了使用户更加便捷的进行机器人相关方面的开发,我 们针对SCOUT2.0移动机器人平台开发了相应的跨平台 支持的SDK。SDK软件包中提供一个基于C++接口,用于 与SCOUT2.0移动机器人底盘进行通讯,可以获取机器人 的最新状态和控制机器人的基本动作。目前通讯适配的 有CAN和RS232。我们在NVIDIA JETSON TX2进行了相关 测试。
3.7 SCOUT2.0 ROS Package 使用示例
ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一 种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。目前ROS主要支持 UBUNTU。
开发准备
硬件准备:
CANlight can通讯模块 X1
Thinkpad E470 笔记本电脑 X1
AGILEX SCOUT 2.0 移动机器人底盘 X1
AGILEX SCOUT 2.0配套遥控器FS-i6s X1
AGILEX SCOUT 2.0顶部航空插座 X1
使用示例环境说明:
Ubuntu 16.04 LTS(此为测试版本,在Ubuntu 18.04 LTS测试过)
ROS Kinetic (后续版本亦测试过)
Git
硬件连接与准备
将SCOUT2.0顶部航空插头或者尾部插头CAN线引出,将CAN线中的CAN_H和CAN_L分别与CAN_TO_USB适配器相连;
打开SCOUT2.0移动机器人底盘旋钮开关,检查来两侧的急停开关是否释放;
将CAN_TO_USB连接至笔记本的usb口。连接示意如图3.4所示。
ROS 安装和环境设置
安装具体可以参考http://wiki.ros.org/kinetic/Installation/Ubuntu
测试CANABLE硬件与CAN 通讯
设置CAN-TO-USB适配器
使能 gs_usb 内核模块
$ sudo modprobe gs_usb
设置500k波特率和使能can-to-usb适配器
$ sudo ip link set can0 up type can bitrate 500000
如果在前面的步骤中没有发生错误,您应该可以使用 命令立即查看can设备
$ ifconfig -a
安装并使用can-utils来测试硬件
$ sudo apt install can-utils
若此次can-to-usb已经和SCOUT 2.0 机器人相连,且 小车已经开启的情况下,使用下列指令可以监听来自 SCOUT 2.0底盘的数据了
$ candump can0
参考来源:
[1]https://github.com/agilexrobotics/agx_sdk [2]https://wiki.rdu.im/_pages/Notes/Embedded-System/Linux/can-bus-in-linux.html
AGILEX SCOUT 2.0 ROS PACKAGE 下载与编译
下载ros 依赖包
$ sudo apt install ros-$ROS_DISTRO-teleop-twist-keyboard
$ sudo apt install libasio-dev
克隆编译scout_ros源码
$ cd ~/catkin_ws/src
$ git clone --recursive https://github.com/agilexrobotics/ugv_sdk.git
$ git clone
https://github.com/agilexrobotics/scout_ros.git
$ cd ..
$ catkin_make
参考来源:https://github.com/agilexrobotics/scout_ros
启动ROS 节点
启动基础节点
$ roslaunch scout_bringup scout_minimal.launch
启动键盘远程操作节点
$ roslaunch scout_bringup scout_teleop_keyboard.launch
Last updated
Was this helpful?