基于ROS的远程车辆控制和目标跟随系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《工业控制计算机》2019年第32卷第7期
摘要:针对机动车辆平台的远程控制,设计了一款基于ROS 的远程车辆控制和目标跟随系统。对系统的整体架构进行了说明,并重点描述了基于ROS 设计的通信框架,通过内部的各功能节点实现车辆端的感知、控制、通信功能。设计了操作人员端的控制界面,并使用UWB 定位模块实现了车辆跟随指定目标的功能。系统经过测试能够实现预设功能,并具有较高的可移植性。
关键词:远程控制,ROS ,目标跟随
Abstract 押A remote vehicle control and target following system based on ROS is designed for remote control of the ve⁃hicle platform in this paper.The overall architecture of the system is described熏and the communication framework designed based on ROS is mainly explained.The perception熏control and communication functions of the vehicle side are realized through the internal functional nodes.The control interface of the operator is designed熏and the function of the vehicle follow⁃ing the specified target is realized with the UWB location module.
Keywords 押remote control熏ROS熏target following
谢萌张世武(中国科学技术大学工程科学学院精密机械与精密仪器系,安徽合肥230031)李旺
房景仕(中国电子科技集团公司第三十八研究所,安徽合肥230088)
地面无人车辆的远程控制在军用和民用领域均有着广泛的应用前景。在军用领域,使用地面无人车辆平台能够有效减少人员和装备损伤,提高后勤保障效率,如负责爆炸装置的定位及引爆的小型排爆机器人[1]。在民用领域,无人驾驶汽车如特斯拉、无人货仓管理中的(AGV )自动导引运输车,都对提高运输效率、减小事故损失等有着重要作用。
在传统的无人车辆开发中,常采用嵌入式微处理器如STM32等作为核心主控硬件。但目前对于无人车辆的智能化需求不断提高,从而导致车辆所需要连接的传感器数量增加,数据处理速度需求提高,同时还要求系统有可移植性。针对这一需求,基于ROS (Robot Operating System 机器人操作系统)开发时间短、可移植性强[2]的特点,设计了一套以ROS 为核心通信架构的车辆主控系统,结合远程操作端软件,实现了车辆的远程控制,并采用UWB (Ultra Wideband 超宽带)定位模块实现了车辆目标跟随功能。1系统总体设计1.1系统概述与功能
为了实现远程控制车辆和目标跟随的功能,需要分别设计无人车辆平台端的主控系统和控制人员端的操作系统。在无人车辆平台上设计的一套核心主控系统,由研华嵌入式工控机及外围硬件构成,利用CAN 总线与无人车辆平台的运动控制接口通信,同时主控系统通过串口与DDL 图传电台通信,接收控制信号并发送车辆实时状态。DDL 图传电台与控制人员端电台相互通信,从而实现远程遥控无人车辆平台运动。在控制人员端设计一套远程控制软件,将电台和便携电脑连接,运行控制界面软件并选择不同的控制模式,最终实现远程控制。
系统现阶段已经实现了三项主要功能。首先,遥控人员通过控制端无线通信对无人车辆平台进行远程控制,使车辆平台进行启动、停止、前行、倒车、转向等机动动作;其次,遥控人员在控制端操作界面中能够实时获取车辆摄像头采集的图像信息,并监控车辆的实时运行速度、实时方向盘角度、经纬度等信息;最
后,遥控人员能够通过操控端选择目标跟随模式,并通过UWB 定位模块解算车辆与跟踪目标间的相对位置,使车辆根据相对位置自动设置车速和转向角度,实现目标跟踪。
图1系统整体架构图
1.2系统硬件设计
车辆平台侧的核心数据处理系统采用研华MIC-7500工控机。该型工控机具有很高的数据实时处理性能,同时又具有较多的接口种类和数量,从而连接车辆上安装的各类传感器和通信设备。工控机的USB 接口与车辆的底层控制器CAN 总线接口、毫米波雷达通过PCAN-USB 分析器转接,使工控机实时收发CAN 总线数据。组合惯导系统使用北斗星通KY110,系统通过RS232接口向工控机发送车辆的经纬度和姿态角数据。电台采用华夏盛DDL2350,与主控系统通过串口连接,通过2.304~2.364GHz 无线信号传输车辆和控制端之间的数据,其中与操作端电脑连接的DDL 图传电台设为主站,与工控机连接的DDL 图传电台设为从站。
另外,工控机还连接了VLP-16三维激光雷达及大陆电子ARS408-21毫米波雷达,两者分别将数据实时通过网口与CAN 总线接口发送到工控机,这一设计是为了在之后的开发中实现车辆周边三维地图构建和智能导航。
无人车辆平台远程遥控端在硬件上主要分为三个部分:输
基于ROS 的远程车辆控制和目标跟随系统设计
Design of Remote Vehicle Control and Target Following System Based on
ROS 29
基于ROS 的远程车辆控制和目标跟随系统设计
入设备(遥控器、麦克风、UWB 发射器)、显示设备(主机、显示器)、通讯设备(无线电台)。其中三种输入设备分别对应三种控制模式(遥控、语音、跟随)。1.3系统接口设计
系统在车辆平台端和远程监控端分别具有输入输出接口,从而实现系统内部的数据传输。在车辆平台端,输入接口包括组合惯导系统接口,通过RS232接口连接到工控机,输入车辆GPS 坐标和姿态角数据;摄像头接口通过RJ45网线连接到工控机,输入图像数据;电台串口输入电台接收到的控制数据流;CAN 总线接口输入车辆状态数据流。输出接口包括电台串口,输出经过整合的车辆状态反馈数据流;CAN 总线接口输出经过整合的车辆控制数据流。在远程监控端,输入接口包括遥控器串口,输入遥控器各硬件通道数值,与无人车辆的控制量对应;电台串口输入车辆状态反馈数据流;语音模块输入语音控制指令;UWB 模块输入跟踪目标与车辆的距离数据。输出接口为电台串口,输出车辆控制数据流。
图3系统接口示意图
2系统软件设计2.1系统工作原理
在工控机上搭载Ubuntu16.04系统,底层采用ROS 通信框架,并运行不同的功能节点。工控机与车辆上的硬件连接后,结合ROS 的硬件抽象描述功能[3],通过功能节点解析对应数据,进行数据解算,将解算后的数据按照通信协议的要求进行整合。系统中的节点按照功能进行分层设计,划分为感知、控制、通信层[4]。如果整合后的数据为表示车辆状态的数据,则数据经由电台回传到操作人员端,经过操作软件的解析最终显示在界面中。如果整合后的数据为控制数据,则数据通过整车的控制端口发送到执行机构,实现车辆控制。
2.2程序架构设计
无人车辆平台的软件系统为ROS (机器人操作系统),通过在ROS 中建立各种功能包并通过各包中的节点完成感知、控制和通信三类功能。图4表示了各个节点(方框表示)与话题(圆框表示)的订阅与发布关系。
图4ROS 程序架构图
感知部分包含功能包navigation_function (定位)。navi⁃gation_function 包含navigation 节点,收集组合惯导信息解算车辆GPS 坐标和姿态,通过navigation_data 话题发布数据。
控制部分包含功能包translate (转换)。translate 包含translate 节点、carcontrol 节点与carPID 节点。translate 节点获取cantest 节点的CAN 总线数据和navigation 节点的惯导数据,并将其解算并转化为串口回传协议数据,通过write 话题发送到stateback 节点;carcontrol 节点获取serial_exam⁃ple_node1节点接收的串口数据并进行解算,转化为车辆CAN 协议数据以及控制模式,将控制信号通过serialtocan 话题发送到carPID 节点。carPID 节点获取carcontrol 节点发出的CAN 协议数据(即设定速度)和控制模式,获取cantest 节点发出的车辆实际速度数据,并采用PID 算法,将车辆的设定速度与实际速度作为输入放入速度环PID ,解算得到车辆加速度,通过can⁃final 话题发送到can 节点。
通信部分包含功能包serial_msgs (串口节点),canfunction (CAN 总线)。Serial-node 包含serial 节点与stateback 节点,其中serial 节点将物理串口虚拟化,即将串口信息纳入到节点系统中,接收发送串口信息,并通过read 话题转发到carcontrol 节点中;stateback 节点向电台发送串口数据。canfunction 包含can 节点,将CAN 总线虚拟化,接收和发送CAN 总线信息。3远程控制端设计3.1人员操作界面设计
无人车辆平台的远程控制端需要实现多种控制模式的切换和车辆状态的显示,这首先要求界面上有车辆视野的图像信息显示,车辆的定位信息以及车辆速度转向等常规控制信息的反馈,同时根据所连接的不同硬件选取不同的串口接口。
图5操作界面架构图
用于远程控制的控制软件已有基于Web 和云端开发的例子[5-6],但考虑到车辆所处的环境多样性,选择不依赖网络的独立开发方式。远程控制端的界面使用Python 作为编程语言,利用PyQtGUI 库和PyCharm 工具进行开发。首先根据设计需
求
图2无人车辆平台实机结构
30