1、本栏目责任编辑:闻翔军 本期推荐Computer Knowledge and Technology 电脑知识与技术 第19 卷第18 期(2023 年6 月)基于ROS 无人车配送系统设计与实现赵伟成,毛恩兵,莫仁函,叶志毅,王嘉豪(西南民族大学 电气工程学院,四川 成都 610225)摘 要:针 对 无 人 车 配 送 系 统 的 关 键 技 术,设 计 并 实 现 了 一 种 基 于 ROS 的 无 人 车 配 送 系 统,以 提 高 物 流 效 率 和 降 低 成 本。首 先,根 据 ROS 操 作 系 统 的 特 点 分 析 了 移 动 机 器 人 系 统 结 构,设 计 了 无 人
2、车 配 送 系 统 的 硬 件 框 架,并 搭 建 出 无 人 车。随后,利 用 ROS 操 作 系 统 提 供 的 工 具 包,设 计 了 激 光 SLAM 算 法 进 行 自 主 建 图,设 计 了 TEB 算 法 和 运 动 控 制 策 略 进 行 环 境感 知 和 路 径 规 划,实 现 了 无 人 车 的 运 动 控 制 和 自 主 导 航。最 后,为 了 实 现 远 端 操 控,采 用 C#编 写 了 远 端 客 户 端 操 控 程序,对 Socket 编 程 实 现 了 与 无 人 车 的 通 信,通 过 发 布 控 制 指 令 实 现 了 无 人 车 配 送 系 统 的 运 行
3、 控 制。实 验 验 证 表 明,所 设计 的 无 人 车 配 送 系 统 能 够 实 现 可 靠 的 自 主 建 图、定 位 和 导 航,运 行 稳 定 可 靠,为 无 人 车 配 送 系 统 的 实 际 应 用 提 供 了 一 种参考方案。关键词:ROS 系统;激光 SLAM;路径规划;TEB 算法;Socket 通信中图分类号:TP18 文献标识码:A文章编号:1009-3044(2023)18-0010-05开放科学(资源服务)标识码(OSID):0 引言随着物流业务的不断发展和市场需求的不断提高,无人车配送系统可以极大地提高物流效率和降低成本,逐渐成为一个备受关注的领域,具有广泛的应
4、用前景。然而,无人车配送系统的研发仍然面临着许多技术挑战,如何实现精准的自主导航和配送功能是一个关键问题。随着机器人技术和人工智能技术的快速发展,机器人操作系统(Robot Operating System,ROS)提供了一系列功能强大的工具和算法,帮助研究人员开展无人车自主导航、路径规划、环境感知和建图等功能的开发,被广泛应用于无人驾驶机器人的研究中。本文基于 ROS 设计并实现了一种无人车配送系统,采用二维激光雷达感知环境信息,利用步定位与 地 图 构 建(Simultaneous Localization And Mapping,SLAM)技 术 进 行 自 主 建 图,利 用 时 间
5、弹 性 带(Time Elastic Band,TEB)算法进行路径规划,实现无人车的运动控制、自主导航和配送功能。同时,为了实现与上位机的通信,本文采用 C#编写了上位机客户端应用程序,并通过 Socket 接口实现上位机系统与无人车配送系统之间的通信,发布无人车启停、目标点位置指令,控制无人车自主将货物运动至目标位置。1 无人车配送系统硬件设计无人车配送系统实际上是一个无人驾驶的移动机器人,从控制的角度看,其结构框图如图 1 所示,主要包括控制系统、驱动与执行机构和传感器系统。图 1 移动机器人系统结构控制系统类似于人的大脑,主要实现任务及信息的处理,输出控制命令信号,实现机器人的算法处理
6、、运动控制、人机交互、系统监督等功能。传感器系统包括内部传感器和外部传感器,相当于人体的感官和神经,主要完成信号的采集和反馈,实现机器人对所处环境的感知。驱动与执行机构包括驱动系统和执行机构,主要将控制系统下达的命令转化成执行机构收稿日期:2023-03-20基金项目:西南民族大学大学生创新创业训练计划项目(S 202210656069)资助作 者 简 介:赵 伟 成(2000),男,云 南 大 理 人,本 科 生,主 要 研 究 方 向 为 图 像 识 别 与 处 理;毛 恩 兵(2001),男,湖 南 娄 底 人,本 科 生,主要 研 究 方 向 为 机 器 人 运 动 控 制;莫 仁 函
7、(2001),男,广 西 来 宾 人,本 科 生,主 要 研 究 方 向 为 移 动 机 器 人 路 径 规 划;叶 志 毅(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
8、.2023.0896本期推荐 本栏目责任编辑:闻翔军Computer Knowledge and Technology 电脑知识与技术 第19 卷第18 期(2023 年6 月)需要的信号,驱动执行机构实现某种动作。移动机器人一般采用直流电机作为移动的执行机构,机械臂使用伺服系统作为执行机构。1.1 无人车配送系统硬件结构无人车配送系统主要实现物品的无人配送,其系统硬件结构如图 2 所示,主要包括 ROS 主控制器、ROS 底层控制器、伺服电机、直流电机和相关传感器。ROS 主控制器主要实现无人车的建图、路径规划与导航、控制命令的接收与输出;ROS 底层控制器实现无人车位姿状态参数的采集,并根
9、据 ROS 主控制器下发的控制指令驱动直流电机或伺服电机进行行走;传感器主要用于感知环境信息,实现无人车的定位、路径规划与自主导航,包含轮式里程计、惯性测量单元IMU、位置编码器、超声波、激光雷达、深度相机。图 2 系统硬件框架图1.2 无人车配送系统运动结构设计本文设计的无人车配送系统采用阿克曼运动型2来描述机器人的转弯行为,其具有良好的机动性能和控制精度,能够适应复杂的室内环境。车体结构由两个驱动轮和两个转向轮组成,其中驱动轮通过电机驱动,转向轮通过伺服电机实现。阿克曼运动模型是指基于车辆底盘的特殊运动模型,用于描述车辆的转弯行为。在阿克曼运动模型中,车辆前轮和后轮转向角度不同,通过转弯半
10、径和车辆的轴距、前后轮之间的距离等参数来描述车辆转弯过程。设车辆的前轮转向角度为,则车辆前进方向与车辆前轮转向角度之间的夹角为,车辆转弯半径为 r。根据车辆的运动学模型可得:|tan=L tan L+W2tan r=Ltan(1)式中,L 表示车辆轴距,W 表示前后轮之间的距离。根据关系式(1)可以计算出车辆在转弯时的前进方向与转弯半径之间的关系。通过阿克曼运动模型,可以设计出更加精确的路径规划和运动控制算法,以实现车辆的准确导航和控制。通过考虑机器人的阿克曼运动模型,利用激光 SLAM 进行实时建图和路径规划,产生精确运动控制指令,实现无人车的自主导航和精准避障。在运动控制中,根据机器人的阿
11、克曼运动模型,可实时计算出机器人的转弯半径和前进方向,实现更加准确地运动控制和转弯。1.3 感知装置布局与设计为了实现室内环境的感知和建图,无人车采用激光雷达和摄像头3等传感器进行数据采集,系统各感知装置的安装位置如图3 所示。图 3 感知装置安装布局二维激光雷达是无人车系统的主要感知装置,能够提供高精度的环境地图感知,为机器人的导航和路径规划提供重要支持。深度相机主要用于目标识别和定位,辅助机器人的导航。超声波传感器用于障碍物检测,用于路径规划和导航时的避障。IMU 单元和编码器为激光 SLAM 和路径规划算法提供参考数据,实现高精度的建图和最优路径规划。当二维激光雷达存在局限时,系统通过深
12、度相机进行路标和环境障碍物识别,辅助无人车进行路径规划和控制,形成多传感器融合建图策略。同时,深度相机可以检测环境中的动态障碍物,从而进行避障操作,以提高系统的稳定性和可靠性,适应不同工作环境下的无人车运行。1.4 ROS 底层控制器设计ROS 主控制器采用英伟达 Jetson Nano 控制器,搭载四核 Cortex-A57 处理器、128 核 Maxwell GPU 以及4GB LPDDR 内存,在 ROS 操作系统上运行激光 SLAM建图和路径规划算法,实时依据激光雷达、深度相机产生无人车行驶指令。ROS 底层控制器负责执行ROS 主控制器的控制指令,并为 ROS 主控制器提供辅助数据,
13、协助实现无人车的自主导航和路径规划,是无人车中最为重要的部分之一。ROS 底层控制器采用 STM32F103RCT6 作为控制微处理器,负责驱动电机控制无人车的行走和转弯4。STM32F103RCT6 的内核为 ARM Cortex-M3,主频为 72MHz,具有较强的计 算 能 力 和 稳 定 性,支 持 SWD 和 JTAG 调 试。STM32F103RCT6 微处理器具有 51 个 I/O 引脚、8 个定时 器、2 个 I2C 接 口、5 个 串 口、3 个 SPI 接 口、1 个 CAN2.0,完全满足无人车运动控制所需的各种输入输11本栏目责任编辑:闻翔军 本期推荐Computer
14、Knowledge and Technology 电脑知识与技术 第19 卷第18 期(2023 年6 月)出接口及各种传感器数据采集的需要。ROS 底层控制器主要驱动直流电机实现小车行走,驱动伺服电机实现转弯,采集惯性测量单元 IMU、位置编码器、超声波传感器,实现对无人车位置信息的实时采集,并为无人车的建图与自动导航提供数据依据。设计的 ROS 底层控制器微处理器核心电路原理图如图 4(a)所示,编码器和惯性测量单元 IMU 接口电路原理图如图 4(b)所,电机驱动电路原理图如图 4(c)所示,与 ROS 主控制器通信的串口转换电路原理图如图4(d)所示。(a)ROS 底层控制器核心电路原
15、理图(b)惯性测量单元 IMU 接口电路原理图(c)电机驱动电路原理图(d)TTL 串口转 USB 接口原理图图 4 ROS 底层控制器电路原理图ROS 底层控制器采用 PID 控制算法,通过对速度、角速度、方向等参数的实时监测和调节,实现了无人车的精确运动控制。在实际控制过程中,还考虑了阿克曼运动模型的特点,通过合理地调整控制参数和控制方式,有效提高了运动控制的精度和稳定性。为了与 ROS 主控制器进行通信,ROS 底层控制器配备了一个 TTL 串口转 USB 接口电路,方便与 ROS 主控制器连接,实现与 ROS 系统进行数据交换和控制指令传递。2 无人车配送系统软件设计无人车配送系统的软
16、件主要是实现无人车的SLAM 建图、路径规划和自主导航,其软件系统框架如图5 所示。图 5 系统软件框图2.1 激光SLAM 算法激光 SLAM 算法是无人车配送系统中的重要组成部分,能够实现自主建图和定位。本设计由于使用的是二维激光雷达,支持 Gmapping 算法的数据格式,因此本文采用激光 Gmapping 算法进行 SLAM 建图5。该算法可以同时实现建图和定位,并具有精度高和性能高效,占用的计算资源较少,能够满足实时性要求。通过 Gmapping 算法可以获取地图信息,并利用地图信息实现路径规划和导航。实现 Gmapping 算法流程如图6 所示。图 6 Gmapping 算法流程图
17、2.2 路径规划和控制策略在无人车配送系统中,路径规划和控制是核心问题。本文采用了 TEB 算法进行路径规划6,该算法可以生成平滑的轨迹,并适应阿克曼车模的运动特性。TEB 算法实现流程如图7 所示。在进行路径规划的同时,利用 ROS 提供的 MoveBase 功能包实现路径控制和导航,通过发布目标点指令,无人车可以实现自主导航,运行到目标点完成配送功能。然而,由于每辆无人车的硬件配置不同,需要对路径规划配置文件进行修改和优化。鉴于考虑12本期推荐 本栏目责任编辑:闻翔军Computer Knowledge and Technology 电脑知识与技术 第19 卷第18 期(2023 年6 月
18、)无人车运动模型和激光雷达测量存在误差、局部地图建立和更新频率因素的影响,需要对路径规划器的四个配置 文 件 costmap_common_params.yaml、global_costmap_params.yaml、local_costmap_params.yaml 和 teb_local_planner_params.yaml 进行了优化修改,使之不受测量误差和更新频率的影响。在进行优化时,需要调整无人车的最大速度、加速度、最小曲率半径和最大加速度等参数,以适应无人车的阿克曼运动模型。同时,需要根据激光雷达的扫描范围和测量精度,调整局部地图的分辨率和更新频率,以提高路径规划的精度和实时性。
19、经过参数优化后,将路径规划 TEB 算法和控制策略在仿真环境和实验平台上进行了测试,测试结果表明,路径规划 TEB 算法和控制策略能够在复杂环境中实现较为稳定和高效的路径规划和运动控制,为无人车的自主导航提供了可靠的支撑。2.3 远端操控PC 客户端设计远端操控 PC 主要实现无人车货物配送的初始设置、启动/停止控制和运行过程的监管。要实现与无人车的操控,需要与无人车的 ROS 主控制器进行通信,实现控制命令及参数的交互。随着 5G 技术的发展,大多场所均覆盖了 5G 信号,本文设计的无人车通过 5G 信号与远端操控 PC 成一个局域网络,通过无线网络进行连接,实现上位机与 ROS 之间的通信
20、。为方便对无人车的操控,本文采用 C#编写了 PC 客户端,其操作界面如图 8 所示。客户端程序通过 Socket7编程,实现远端操控 PC 与 ROS 主控制器之间的网络通信,向 ROS 主控制器发布控制指令,实现机器人的远程控制和配送功能。同时,客户端程序还可以接收无人车发送的状态信息,实现对无人车状态的实时监测。远程控制和配送是通过订阅和发布不同的话题来实现的。具体而言,是利用 ROS 提供的导航功能包、视觉功能包以及 Socket 通信包来实现与远端操控PC 的通信,进而实现无人车的操控。首先,需要订阅amcl_pose 话题来获取小车在当前地图中的位姿,从而确定小车的当前状态;然后,
21、通过上位机发布初始坐标(启动位置)、装货点坐标(货物位置)和卸货点坐标(目的地位置)等信息给 MoveBase 功能包;最后,ROS 主控制器根据接收到的位置点信息进行建图、定位,以实现无人车的自主导航和配送功能。2.4 深度相机辅助导航策略当二维激光雷达受到限制时,如遇到复杂的障碍物或无法准确检测到墙角等细节时,可以通过深度相机进行辅助导航。本文设计的无人车安装了深度相机,可通过 OpenCV 库进行图像处理,获取环境辅助信息,与激光雷达信息进行融合,辅助无人车的自主导航。首先在运行环境路径中预定义一些路标,例如不同形状和颜色的标志,如图 9 所示。通过预处理让深度相机可以识别出这些标志并提
22、取其特征。然后通过模板匹配技术来检测这些标志,从而确定无人车的位置和姿态。图 9 路径上的导航路标示意图在实际使用中,首先使用激光雷达进行建图和路径规划,当无人车遇到障碍物或无法准确检测到细节时,再通过深度相机获取周围环境信息,并将其与已有的地图信息结合起来进行决策,调整无人车的行驶方向。采用深度相机辅助导航策略能够提高系统的鲁棒性,使其能够适应更复杂的环境。但使用中需要注意的是,深度相机的安装位置和视野有限,不能完全依赖深度相机进行导航,因此在控制算法中需要合理安排激光雷达和深度相机的融合机制。3 实验验证及分析为验证所设计的无人车配送系统的可行性,在实验室环境下进行自主导航和配送实验验证。
23、本文利用英伟达 Jetson Nano 控制器、自行设计的 ROS 底层控制器、二维激光雷达、深度相机、惯性测量单元IMU、位置编码器、超声波传感器、直流电机、伺服电机等硬件设备,搭建了如图3所示的无人车,并采用ROS 作为主要的软件开发平台设计了软件系统。测试时通过远端操控PC客户端向无人车发送目标点指令,无人车根据接图7 TEB 算法实现流程图图 8 远端操控 PC 客户端界面13本栏目责任编辑:闻翔军 本期推荐Computer Knowledge and Technology 电脑知识与技术 第19 卷第18 期(2023 年6 月)收到的指令进行路径规划和导航,并实时将无人车的当前状态
24、反馈回远端操控PC客户端,包括位置、姿态、实时获取的激光雷达和深度相机数据等信息。针对搭建的包括直线行驶、曲线行驶、障碍物避障等多个实验场景,来验证机器人系统的建图、路径规划和自主导航功能,测试结果如图10 所示。图 10 无人车自主导航过程的路径规划图在实验过程中,笔者对机器人的路径规划和运动控制进行了详细的分析和优化,并进行了参数调整和实时监测。经过多次实验验证了所设计的无人车配送系统的可行性和适用性,控制系统能够在复杂环境中实现较为稳定和高效的路径规划和运动控制。在直线行驶和曲线行驶实验中,无人车能够准确跟踪预设的轨迹,实现较为平稳的运动控制。在障碍物避难实验中,无人车能够实时检测障碍物
25、并进行避让,保证了系统的安全性和可靠性。参考文献:1 安峰.基于开源操作系统 ROS 的机器人软件开发J.单片机与嵌入式系统应用,2017,17(5):27-29,33.2 曾锦锋,陈晨,杨蒙爱.基于阿克曼转向原理的四轮转向机构设计J.轻工机械,2013,31(3):13-16,19.3 林晨浩,彭育辉.一种融合视觉与IMU的车载激光雷达建图与定位方法J.福州大学学报(自然科学版),2022,50(1):82-88.4 宣丽萍,李艳丽.基于 STM32F103RCT6 两轮自平衡小车设计J.黑龙江工程学院学报,2018,32(4):6-10.5 孙涛,冯玉田.基于改进粒子群最优化算法的 Gma
26、pping 研究J.工业控制计算机,2022,35(2):64-66,69.6 郑凯林,韩宝玲,王新达.基于改进 TEB 算法的阿克曼机器人运动规划系统J.科学技术与工程,2020,20(10):3997-4003.7 薛哲,张功学,何凯,等.基于 Socket 通信的 AGV 上位机控制系统J.现代机械,2021(5):99-102.【通联编辑:唐一东】(上接第 3 页)其中 label 是 ResNet50 分类模型识别出来的表情,score 是 PaddleDetection 识别出来的人脸准确度。最终多人脸表情识别效果如图7 所示。图 7 表情识别效果展示4 结束语项目基于 Paddl
27、eDetection 检测人脸+ResNet50 分类模型情绪识别,经过评估验证分析在 fer2013 数据集上识别人脸表情的准确率在 65%左右,实际情况可能有些许波动,但已经达到预期结果。因为 fer_2013数据集存在错标的情况,所以正确率还有待提高,人眼的正确率就是 60%70%,所以目前的精度已经在可接受的范围内。目前的方法处于项目应用的第一阶段,由于数据集大小和 GPU 计算力等因素的限制,模型的泛化性不强,网络的结构仍需要优化,还不能满足实际生活中实时检测的要求,如人脸识别、情绪识别与人物活动场景氛围识别等。后续的工作还需进一步研究与实现,如需要提高模型的泛化能力、增加 ResN
28、et50 模型的精确度,对于一些模糊的人脸应该加以判断并进行其他处理,筛除过于模糊而不能判断情绪的人脸。参考文献:1 He K M,Zhang X Y,Ren S Q,et al.Deep residual learning for image recognitionC/2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR).June 27-30,2016,Las Vegas,NV,USA.IEEE,2016:770-778.2 He K M,Zhang X Y,Ren S Q,et al.Delving de
29、ep into rectifiers:surpassing human-level performance on ImageNet classificationC/2015 IEEE International Conference on Computer Vision(ICCV).December 7-13,2015,Santiago,Chile.IEEE,2016:1026-1034.3 He K M,Zhang X Y,Ren S Q,et al.Identity mappings in deep residual networksM/Computer Vision-ECCV 2016.Cham:Springer International Publishing,2016:630-645.4 郑耀东,李旭峰.基于 Paddlepaddle 的新冠疫情期间文本情感分析模型J.信息与电脑(理论版),2021,33(7):189-191.5 谢鑫.基于 ResNet50 的人脸识别模型J.科技资讯,2020,18(35):9-11.【通联编辑:唐一东】14