基于ROS的巡逻机器人系统设计
2024-08-03胡兵王德文刘欣
摘要:针对厂房、银行和大型超市等需要人工巡逻的场所,文章设计了一款基于ROS的巡逻机器人自主导航系统。文章将ROS系统部署到基于树莓派硬件开发的巡逻机器人上,对巡逻机器人的环境感知模块、导航模块和监控模块等进行研究设计。该系统使用同步定位与建图(Simultaneous Localization and Mapping,SLAM)技术,通过激光雷达和里程计实现定位、建图与导航功能。实验结果表明,该系统定位收敛速度快,构建地图精度高,路径规划稳定性好,能替代人类巡逻。
关键词:ROS;巡逻机器人;SLAM;Gmapping算法;自适应蒙特卡罗定位算法
中图分类号:TP242.6文献标志码:A
0 引言
厂房、银行和大型超市等场所需要大量的人力执行日常的安保和巡逻任务,该任务具有一定的不确定性和危险性。随着智能机器人技术的发展,其融合了机械工程、电子技术、计算机科学、自动化控制、人工智能等多个方面的知识和技术。种类繁多的机器人逐渐进入人们的日常生活中,为人类的生活和工作提供了诸多便利,重复性高且危险系数大的任务可以让机器人代替人执行。现代机器人广泛应用于军事、工业制造、医疗、物流、家庭服务、娱乐等领域。因此,面向厂房、银行和大型超市等场景开发一款价格低、功能丰富、智能化程度高的巡逻机器人,巡逻机器人代替人类在任务区域内进行现场巡逻以及监控,节约了人力成本,降低了巡逻人员安全风险,提高了突发情况响应速度。
1 巡逻机器人总体设计
文章的巡逻机器人具体有3个部分,分别是环境感知模块、导航模块和监控模块。ROS(Robot Operating System)是部署在Ubuntu系统上的机器人元操作系统,其包含了大量的工具软件、库代码和约定协议用于连接操作系统和机器人的驱动接口。不同的节点模块间使用P2P的松耦合的连接。运用ROS搭建的巡逻机器人在生产生活中具有很高的实用价值,能够有效地节省人力资源。在室内场景,如库房、银行和酒店等场所,其能够实现实时的安防监控和巡逻功能。环境感知模块采用激光雷达、深度相机和里程计等传感器,能够使系统实现激光同步定位与建图(Simultaneous Localization and Mapping,SLAM)功能,而里程计配合激光雷达可以提高建图精度。深度相机也能实现定位和建图的功能,在本系统中使用深度相机实现视频监控功能和人体跟随功能。底盘驱动模块采用编码电机驱动麦克纳姆轮,STM32驱动板作为下位机负责电机的控制和供电,部件安装在较为轻便的亚克力板底盘上。
树莓派作为上位机,安装了Ubuntu20.04系统用来搭建ROS环境。其能够实现定位、建图、导航、视频监控、底盘控制等功能。上位机树莓派自带Wi-Fi模块,本巡逻机器人具有网络通信功能,可以通过PC端进行远程控制,查看监控摄像头拍摄的实时画面。
1.1 机械结构设计
机器人采用合金连接件、亚克力板和3D打印件作为机身结构件,在获得坚固外观的同时实现轻量化和较低的制造成本,为后续的升级拓展和维护提供了便捷性。激光雷达和底盘驱动板置于机器人的第二层。深度相机置于第三层,使其具有良好的监控视野。电子设备均匀分布在车身上,降低车身重心提高稳定性。底盘采用独立电机驱动麦克纳姆轮,使巡逻机器人具有全向移动功能,可以自由通过多障碍物复杂地形。
1.2 系统架构设计
在硬件系统中,上位机采用树莓派作为机器人的数据处理和控制中心,下位机采用STM32驱动板实现底盘移动控制。树莓派中将ROS-noetic环境配置到Ubuntu 20.04系统,负责接收激光雷达、深度相机、惯性传感器和下位机的数据,将收集的数据进行处理、分析后发布指令,实现对机器人的控制。同时,所提设计方案将车身周围环境信息发布在网络,通过PC或移动手机端访问控制。下位机作为小车底盘的控制中心,集成了一套对麦克纳姆轮小车移动的控制算法,负责电机的供电与控制,收集编码电机数据,上传到上位机,通过分析转换为里程计信息,实现巡逻机器人定位和建图的误差校正。
2 环境感知模块
2.1 定位
巡逻机器人采用自适应蒙特卡罗定位(Adaptive Monte Carlo Localization,AMCL)[1]。AMCL算法主要解决传统蒙特卡罗定位(Monte Carlo Localization,MCL)算法中机器人被“绑架”的问题。具体的解决方案为在迭代过程中随机注入粒子:算法通过引入虚拟的“粒子”来模拟机器人可能的位置状态;每个粒子都代表机器人在某一时刻的一种可能的位姿;算法的准确性通过调整这些粒子的“权重”来体现,权重越高意味着这个粒子的位姿估计越可信。
算法包括2个主要步骤:预测和更新。在预测步骤中,算法通过使用机器人的运动模型结合激光扫描数据来预估当前时刻机器人的位姿,并估计其运动轨迹。在更新步骤中,算法会对照实际的激光扫描数据来调整每个粒子的位姿估计,根据预测位姿与实际观测数据的匹配程度来调整粒子的权重。算法包含一个自适应的重采样过程,会检查粒子的数量是否低于某个设定的阈值。如果粒子数量较少,说明当前的位姿估计不够准确,这时算法会进行重采样,即创建新的粒子来丰富位姿估计的多样性。如果粒子数量足够,算法则直接输出当前的位姿估计结果,并准备进行下一轮的预测和更新。这个过程不断迭代,使得机器人的位姿估计越来越准确。
2.2 建图
巡逻机器人通过获取周围环境信息来实现自主导航,目前在机器人领域被广泛应用的建图算法是Gmapping[2],其在RBPF-SLAM的基础上通过粒子重采样和改进提议分布的方法缓解了粒子的退化问题,提高了定位和建图的准确度。该算法在范围较小的非结构化环境中具有出色的性能优势,建图效果好、计算量小且性能优异。设x1:k为位置和位姿的集合,m为地图估计。算法过程可以用式(1)表示。
p(x1∶k,m|z1∶k,u1∶k-1)=p(x1∶k|z1∶k,u1∶k-1)×p(m|x1∶k,z1∶k)(1)
其中,x1∶k=x1,x2,x3,…,xk表示k个机器人位姿的集合,p(x1∶k|z1∶k,u1∶k-1)表示先验概率估计,p(m|x1∶k,z1∶k)表示基于当前机器人位姿和观测数据构建的全局地图的集合。
3 导航模块
巡逻机器人的路径规划算法分为全局路径规划算法和局部路径规划算法。全局路径规划算法是根据已知的全局代价地图,在当前位置和目标位置之间计算出最短路径。而局部路径规划算法是在机器人自身周围较小空间内,实现实时动态避障。
在ROS系统中内置了Navigation功能模块,其主要运用ROS机器人的各类传感器数据和静态地图数据进行自主路径规划。文章在局部路径规划选择动态窗口法[3](Dynamic Window Approach,DWA),而全局路径规划选择了A*算法[4]。
3.1 局部路径规划
动态窗口法是一类经典的机器人局部路径规划算法[5]。其主要分为2个部分:一是速度空间(v,ω)线速度和角速度的计算,取值范围如式(2)所示,具体取值范围受机器人自身机体重量和电机性能等情况限制;另一个选择当前情况下最优的速度空间作为当前速度。
V={(v,ω)|v1≤v≤v2,ω1≤ω≤ω2}(2)
3.2 全局路径规划
全局路径规划算法采用A*算法,是一种图形搜索算法,常用于机器人路径规划中。A*算法寻找初始节点到目标节点的最短路径。以下是A*算法的基本流程。
(1)初始化:创建2个集合,开集和闭集。开集存储待检查的节点,初始时只包含起始节点。闭集用于存储已经检查过的节点,初始为空。
(2)选定节点:从开集中选择代价小的节点。若其为目标点,则算法结束;否则将其移至闭集,表示已检查。
(3)拓展节点:通过计算当前选中的节点的邻接节点的代价,如果该节点不在开集或者代价不是最小则移入闭集。
(4)重建路径:当找到目标节点时,通过目标节点的父节点逆向追踪到起始节点,得到最终的最短路径。如果找到目标节点,则算法结束,输出找到的最短路径。如果开集为空,说明无法找到目标节点,算法结束。
A*算法的效率与其使用的启发式函数(h值)有关,通过该函数判断当前节点是否值得进一步检查,这使得算法能够优先考虑最有可能包含最短路径的节点,如式(3)所示。
f=g+h(3)
其中, f为总代价,g为当前代价,h为预估代价。通过这种方式,A*算法能够在大多数情况下找到最短路径,在实际应用中表现良好。
4 监控模块
监控模块包括视频监控和人体检测与跟踪功能。
4.1 视频监控
文章通过巡逻机器人机顶安装的相机,可以实现视频监控功能。视频监控与物联网相结合,增加了远程控制模块。监控画面通过网络实时上传到移动端或者PC端,如有突发情况发生,可以通过Wi-Fi模块直接与下位机STM32进行串口通信,人工介入操控巡逻机器人进行移动。
4.2 人体检测与跟踪
当激光雷达实时探测到的地图与静态地图存在不同时,监控模块便会通过巡逻机器人机顶安装的深度相机,调用ROS系统预置的人体骨骼识别PoseNet,当识别到人体时,将警报信息上传到PC端或移动端。同时,监控模块通过激光雷达识别人体位置信息,通过上位机树莓派进行处理并向下位机发送移动指令,自主进行人体跟踪,直到有人员介入控制。
5 实验与结果分析
为了验证文章的所使用相关算法的有效性,在真实室内环境中进行实验。
5.1 定位与建图
在真实室内环境中,文章的全局定位方法能够在人为不干预的条件下进行随机粒子生成,并通过机器人移动实现收敛,这充分证明了文章全局定位方法的有效性。Gmapping算法在真实室内环境下能够准确建图,如图1所示。建图完成后系统可以将地图数据保存,如图2所示。结果充分证明了文章建图算法的有效性。
5.2 路径规划
文章使用的局部路径规划算法如图3所示。全局路径规划算法如图4所示。在真实室内环境下,系统能够快速准确地规划路径,这充分证明了文章路径规划算法的有效性和鲁棒性。
5.3 视频监控与人体跟踪
视频监控实验画面如图5所示。在真实室内环境中,其能将深度相机拍摄画面实时上传网络,当发现可疑人体时,上报PC端并进行自主跟踪。
6 结语
本文通过对多传感器数据的融合处理,实现对巡逻机器人的AMCL重定位、Gmapping地图构建、局部和全局路径规划、区域监控和人体跟踪等功能。该系统在真实室内环境中进行了实验论证,实验结果表明该系统设计在定位、构建地图、路径规划和区域监控等具有良好的效果。在默认模式下,系统能够自主执行巡逻监控任务。在主动控制模式下,系统能够对通过互联网发送的远程指令实时精准执行。由于该系统采用深度相机作为监控摄像头,后续研究可以融合相机的深度信息,提高建图的准确度和精度,以提高系统整体的鲁棒性。该系统设计目的是替代人员执行巡逻任务以保护人员安全,可以在库房、银行等地进行巡逻监控,并能将深度相机识别的可疑信息上传到PC端,同时具备自主跟踪功能。
参考文献
[1]游刚,李世芸,仇隽挺,等.基于改进AMCL与点云匹配校正的落布机器人定位分析[J].机械设计与研究,2024(1):56-62.
[2]邵连奇,张媛媛,袁田,等.基于ROS的机器人自主探索导航与地图构建研究[J].科技创新与应用,2023(8):37-40.
[3]张振涛.基于ROS的室内移动机器人路径规划算法研究与应用[D].杭州:浙江理工大学,2023.
[4]辛鹏.基于A*算法的移动机器人路径规划研究[D].邯郸:河北工程大学,2022.
[5]王超.基于多传感器的机器人导航研究[D].西安:西安工业大学,2023.
Design of patrol robot system based on ROS
Abstract: This paper designs an autonomous navigation system of patrol robot based on ROS for factories, banks, supermarkets and other places that need manual patrol. In this paper, ROS system is deployed on a patrol robot developed based on Raspberry PI hardware, and the environmental awareness module, navigation module and monitoring module of the patrol robot are studied and designed. The system uses simultaneous localization and mapping (SLAM) technology to achieve positioning, mapping and navigation functions through laser radar and odometer. The experimental results show that the system has fast convergence speed, high precision of map construction, good stability of path planning, and can replace human patrol.
Key words: ROS; patrol robot; SLAM; Gmapping algorithm; AMCL algorithm