1、本栏目责任编辑:闻翔军本期推荐Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)基于ROS无人车配送系统设计与实现赵伟成,毛恩兵,莫仁函,叶志毅,王嘉豪(西南民族大学 电气工程学院,四川 成都 610225)摘要:针对无人车配送系统的关键技术,设计并实现了一种基于ROS的无人车配送系统,以提高物流效率和降低成本。首先,根据ROS操作系统的特点分析了移动机器人系统结构,设计了无人车配送系统的硬件框架,并搭建出无人车。随后,利用ROS操作系统提供的工具包,设计了激光SLAM算法进行自主建图,设计了TEB算法和运动控制策略进行环境感知和
2、路径规划,实现了无人车的运动控制和自主导航。最后,为了实现远端操控,采用C#编写了远端客户端操控程序,对Socket编程实现了与无人车的通信,通过发布控制指令实现了无人车配送系统的运行控制。实验验证表明,所设计的无人车配送系统能够实现可靠的自主建图、定位和导航,运行稳定可靠,为无人车配送系统的实际应用提供了一种参考方案。关键词:ROS系统;激光SLAM;路径规划;TEB算法;Socket通信中图分类号:TP18 文献标识码:A文章编号:1009-3044(2023)18-0010-05开放科学(资源服务)标识码(OSID):0 引言随着物流业务的不断发展和市场需求的不断提高,无人车配送系统可以
3、极大地提高物流效率和降低成本,逐渐成为一个备受关注的领域,具有广泛的应用前景。然而,无人车配送系统的研发仍然面临着许多技术挑战,如何实现精准的自主导航和配送功能是一个关键问题。随着机器人技术和人工智能技术的快速发展,机器人操作系统(Robot Operating System,ROS)提供了一系列功能强大的工具和算法,帮助研究人员开展无人车自主导航、路径规划、环境感知和建图等功能的开发,被广泛应用于无人驾驶机器人的研究中。本文基于ROS设计并实现了一种无人车配送系统,采用二维激光雷达感知环境信息,利用步定位与地图构建(Simultaneous Localization And Mapping,
4、SLAM)技术进行自主建图,利用时间弹性带(Time Elastic Band,TEB)算法进行路径规划,实现无人车的运动控制、自主导航和配送功能。同时,为了实现与上位机的通信,本文采用C#编写了上位机客户端应用程序,并通过Socket接口实现上位机系统与无人车配送系统之间的通信,发布无人车启停、目标点位置指令,控制无人车自主将货物运动至目标位置。1 无人车配送系统硬件设计无人车配送系统实际上是一个无人驾驶的移动机器人,从控制的角度看,其结构框图如图1所示,主要包括控制系统、驱动与执行机构和传感器系统。图1 移动机器人系统结构控制系统类似于人的大脑,主要实现任务及信息的处理,输出控制命令信号,
5、实现机器人的算法处理、运动控制、人机交互、系统监督等功能。传感器系统包括内部传感器和外部传感器,相当于人体的感官和神经,主要完成信号的采集和反馈,实现机器人对所处环境的感知。驱动与执行机构包括驱动系统和执行机构,主要将控制系统下达的命令转化成执行机构收稿日期:2023-03-20基金项目:西南民族大学大学生创新创业训练计划项目(S202210656069)资助作者简介:赵伟成(2000),男,云南大理人,本科生,主要研究方向为图像识别与处理;毛恩兵(2001),男,湖南娄底人,本科生,主要研究方向为机器人运动控制;莫仁函(2001),男,广西来宾人,本科生,主要研究方向为移动机器人路径规划;叶
6、志毅(2002),男,广西来宾人,本科生,主要研究方向为集成电路设计;王嘉豪(2000),男,山东菏泽人,本科生,主要研究方向为计算机视觉。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.19,No.18,June 202310DOI:10.14004/ki.ckt.2023.0896本期推荐本栏目责任编辑:闻翔军Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)需要的信号,驱动
7、执行机构实现某种动作。移动机器人一般采用直流电机作为移动的执行机构,机械臂使用伺服系统作为执行机构。1.1无人车配送系统硬件结构无人车配送系统主要实现物品的无人配送,其系统硬件结构如图 2 所示,主要包括 ROS 主控制器、ROS 底层控制器、伺服电机、直流电机和相关传感器。ROS主控制器主要实现无人车的建图、路径规划与导航、控制命令的接收与输出;ROS 底层控制器实现无人车位姿状态参数的采集,并根据ROS主控制器下发的控制指令驱动直流电机或伺服电机进行行走;传感器主要用于感知环境信息,实现无人车的定位、路径规划与自主导航,包含轮式里程计、惯性测量单元IMU、位置编码器、超声波、激光雷达、深度
8、相机。图2 系统硬件框架图1.2无人车配送系统运动结构设计本文设计的无人车配送系统采用阿克曼运动型2来描述机器人的转弯行为,其具有良好的机动性能和控制精度,能够适应复杂的室内环境。车体结构由两个驱动轮和两个转向轮组成,其中驱动轮通过电机驱动,转向轮通过伺服电机实现。阿克曼运动模型是指基于车辆底盘的特殊运动模型,用于描述车辆的转弯行为。在阿克曼运动模型中,车辆前轮和后轮转向角度不同,通过转弯半径和车辆的轴距、前后轮之间的距离等参数来描述车辆转弯过程。设车辆的前轮转向角度为,则车辆前进方向与车辆前轮转向角度之间的夹角为,车辆转弯半径为r。根据车辆的运动学模型可得:|tan=LtanL+W2tanr
9、=Ltan (1)式中,L 表示车辆轴距,W 表示前后轮之间的距离。根据关系式(1)可以计算出车辆在转弯时的前进方向与转弯半径之间的关系。通过阿克曼运动模型,可以设计出更加精确的路径规划和运动控制算法,以实现车辆的准确导航和控制。通过考虑机器人的阿克曼运动模型,利用激光SLAM进行实时建图和路径规划,产生精确运动控制指令,实现无人车的自主导航和精准避障。在运动控制中,根据机器人的阿克曼运动模型,可实时计算出机器人的转弯半径和前进方向,实现更加准确地运动控制和转弯。1.3感知装置布局与设计为了实现室内环境的感知和建图,无人车采用激光雷达和摄像头3等传感器进行数据采集,系统各感知装置的安装位置如图
10、3所示。图3 感知装置安装布局二维激光雷达是无人车系统的主要感知装置,能够提供高精度的环境地图感知,为机器人的导航和路径规划提供重要支持。深度相机主要用于目标识别和定位,辅助机器人的导航。超声波传感器用于障碍物检测,用于路径规划和导航时的避障。IMU单元和编码器为激光SLAM和路径规划算法提供参考数据,实现高精度的建图和最优路径规划。当二维激光雷达存在局限时,系统通过深度相机进行路标和环境障碍物识别,辅助无人车进行路径规划和控制,形成多传感器融合建图策略。同时,深度相机可以检测环境中的动态障碍物,从而进行避障操作,以提高系统的稳定性和可靠性,适应不同工作环境下的无人车运行。1.4 ROS底层控
11、制器设计ROS主控制器采用英伟达Jetson Nano控制器,搭载四核Cortex-A57处理器、128核Maxwell GPU 以及4GB LPDDR内存,在ROS操作系统上运行激光SLAM建图和路径规划算法,实时依据激光雷达、深度相机产生无人车行驶指令。ROS 底层控制器负责执行ROS主控制器的控制指令,并为ROS主控制器提供辅助数据,协助实现无人车的自主导航和路径规划,是无人车中最为重要的部分之一。ROS 底层控制器采用STM32F103RCT6作为控制微处理器,负责驱动电机控制无人车的行走和转弯4。STM32F103RCT6的内核为ARM Cortex-M3,主频为72MHz,具有较强
12、的计 算 能 力 和 稳 定 性,支 持 SWD 和 JTAG 调 试。STM32F103RCT6微处理器具有51个I/O 引脚、8个定时器、2 个 I2C 接口、5 个串口、3 个 SPI 接口、1 个 CAN2.0,完全满足无人车运动控制所需的各种输入输11本栏目责任编辑:闻翔军本期推荐Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)出接口及各种传感器数据采集的需要。ROS 底层控制器主要驱动直流电机实现小车行走,驱动伺服电机实现转弯,采集惯性测量单元IMU、位置编码器、超声波传感器,实现对无人车位置信息的实时采集,并为无人
13、车的建图与自动导航提供数据依据。设计的ROS 底层控制器微处理器核心电路原理图如图4(a)所示,编码器和惯性测量单元IMU接口电路原理图如图4(b)所,电机驱动电路原理图如图4(c)所示,与ROS主控制器通信的串口转换电路原理图如图4(d)所示。(a)ROS 底层控制器核心电路原理图(b)惯性测量单元IMU接口电路原理图(c)电机驱动电路原理图(d)TTL串口转USB接口原理图图4 ROS 底层控制器电路原理图ROS 底层控制器采用 PID 控制算法,通过对速度、角速度、方向等参数的实时监测和调节,实现了无人车的精确运动控制。在实际控制过程中,还考虑了阿克曼运动模型的特点,通过合理地调整控制参
14、数和控制方式,有效提高了运动控制的精度和稳定性。为了与ROS主控制器进行通信,ROS 底层控制器配备了一个TTL串口转USB接口电路,方便与ROS主控制器连接,实现与 ROS 系统进行数据交换和控制指令传递。2 无人车配送系统软件设计无人车配送系统的软件主要是实现无人车的SLAM建图、路径规划和自主导航,其软件系统框架如图5所示。图5 系统软件框图2.1 激光SLAM算法激光SLAM算法是无人车配送系统中的重要组成部分,能够实现自主建图和定位。本设计由于使用的是二维激光雷达,支持Gmapping算法的数据格式,因此本文采用激光Gmapping算法进行SLAM建图5。该算法可以同时实现建图和定位
15、,并具有精度高和性能高效,占用的计算资源较少,能够满足实时性要求。通过Gmapping算法可以获取地图信息,并利用地图信息实现路径规划和导航。实现Gmapping算法流程如图6所示。图6 Gmapping算法流程图2.2 路径规划和控制策略在无人车配送系统中,路径规划和控制是核心问题。本文采用了TEB算法进行路径规划6,该算法可以生成平滑的轨迹,并适应阿克曼车模的运动特性。TEB算法实现流程如图7所示。在进行路径规划的同时,利用ROS提供的MoveBase功能包实现路径控制和导航,通过发布目标点指令,无人车可以实现自主导航,运行到目标点完成配送功能。然而,由于每辆无人车的硬件配置不同,需要对路
16、径规划配置文件进行修改和优化。鉴于考虑12本期推荐本栏目责任编辑:闻翔军Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)无人车运动模型和激光雷达测量存在误差、局部地图建立和更新频率因素的影响,需要对路径规划器的四个配置 文 件 costmap_common_params.yaml、global_costmap_params.yaml、local_costmap_params.yaml和teb_local_planner_params.yaml进行了优化修改,使之不受测量误差和更新频率的影响。在进行优化时,需要调整无人车的最大速度、加速度、最小曲率半径和最大加速度等参数,以适应无人车的阿克曼运动模型。同时,需要根据激光雷达的扫描范围和测量精度,调整局部地图的分辨率和更新频率,以提高路径规划的精度和实时性。经过参数优化后,将路径规划TEB算法和控制策略在仿真环境和实验平台上进行了测试,测试结果表明,路径规划TEB算法和控制策略能够在复杂环境中实现较为稳定和高效的路径规划和运动控制,为无人车的自主导航提供了可靠的支撑。2.3远