摘要:为了保护贵重物品储藏室的安全,设计了一种室内巡检机器人,该机器人使用麦克纳姆全向轮进行移动,可以灵活转向。以此机器人为研究对象,基于机器人操作系统(ROS)对机器人的软件和硬件进行架构,基于ROS提供的各种功能包,设计开发巡检机器人建图导航系统。对SLAM建图算法进行了研究,选择Cartographer算法作为建图算法。实验表明,机器人可以完成建图导航和巡视功能。
關键词:机器人操作系统;建图算法;全向移动;巡检
0 引言
随着人工智能和机器人技术快速发展,移动机器人在生产车间、物流仓库、变电站等场合的应用逐渐增加。由于机器人所处的工作环境较为复杂,其建图导航和运动控制的难度也相应增加。机器人的定位与导航逐渐成为该领域研究的热点问题,解决该问题的关键是同时定位和地图构建(Simultaneous Localization and Mapping,SLAM)技术。SLAM技术可以分为激光SLAM和视觉SLAM两大类[1],目前激光雷达SLAM在全向移动机器人平台上的应用还比较少见,存在较大的发展空间。
本文通过硬件和软件架构,设计了一种可以全向行驶的巡检机器人,在此基础上,对SLAM建图算法进行研究,并使用Cartographer算法作为建图算法。
1 机器人全向移动平台
本文设计的机器人的硬件主要包括麦克纳姆全向移动平台[2]和各种传感器,麦克纳姆轮是由瑞典麦克纳姆公司发明生产的。许多室内环境具有拐角、长廊等狭小部分,而差速移动机器人灵活性差,不能很好地完成转向,所以不适合在室内进行建图导航等工作,麦克纳姆轮因为其独特的构造,可以很好地完成平移和旋转等功能,具有很好的机动性和灵活性,可以在室内全向运动。
2 机器人硬件系统设计
该系统使用树莓派4B作为上位机控制整个机器人,相比于大多数ROS控制器,树莓派4B具有更高的性能。机器人采用STM32运动控制器实现电机的驱动,支持4路直流电机闭环控制,下位机搭载了IMU加速度陀螺仪传感器,用来校准各种参数。
巡检机器人在移动过程中,需要激光雷达获取周围障碍物的具体位置信息和周围环境的轮廓信息,通过这些信息才能完成地图构建和自主导航的功能。激光雷达通过USB接口与树莓派相连,将外部环境信息发送给树莓派进行处理。巡检机器人在巡检过程中使用摄像头实现巡视功能,摄像头与树莓派相连,可以实时上传拍摄信息。机器人通过运动控制器连接4个直流电机来进行运动,IMU加速度陀螺仪搭载在STM32运动控制器上,将收集到的信息上传到树莓派,树莓派通过获取到的信息来判断外界情况并进行控制,最终实现地图的精准建模、机器人的准确定位和机器人路径实时规划。当摄像头拍摄到可疑人员后,报警电路会启动进行报警。机器人可以通过USB接口来扩展其他传感器,以实现更多的功能。
3 机器人软件架构设计
本文机器人的软件架构设计是基于ROS的模块化、层次化框架[3]。ROS是一种分布式结构,ROS系统中的每个功能模块都可以单独进行设计和编译,在运行时以松耦合的形式结合在一起。ROS可以提高机器人的软件复用率,这也是ROS使用方便的原因之一。为了更好地驱动机器人,ROS将每一个程序细分化,成为不同的节点(Node)。节点与节点之间是松耦合的,因此开发者可以灵活开发程序,节点也是ROS中最小的处理器单元,每个节点都是以功能包的形式组织在一起。在ROS中多个节点可以组合成大的功能包,比如用于导航的功能包就包含建图、定位、导航等多个功能包。
本文设计的机器人软件架构分成三个层次,分别是可视化操作层、节点应用层、驱动层。机器人的软件架构如图1所示。
使用者通过监控操作界面连接机器人,可以获取机器人的所有信息,观看摄像头拍摄的录像,并对机器人进行操控;节点应用层包含了实现机器人所有功能的节点,机器人通过节点应用层的各个节点去实现相应的功能。通过启动底盘控制节点控制机器人移动,并同时启动SLAM建图节点来实现地图构建,构建好的地图可以保存;通过启用自动导航节点以及图像处理节点、报警节点,可以根据保存好的地图实现自主巡检、最优路径规划和报警等功能。
4 机器人SLAM与自主导航系统实现
SLAM研究主要应用于机器人移动的自主化,即机器人在一个未知的环境下,从任意一个位置出发,进行移动,在移动的过程中通过自身的估算和地图进行自身的定位,并且实时构建增量式地图,实现机器人的自主定位和导航。
SLAM算法经过30多年的发展形成了显著的成果,其使用的具体方法可分为两大类,分别是基于滤波的方法和基于优化的方法。Gmapping[4]算法是基于滤波的常见算法,该算法存在更新效率随地图扩建下降、缺少闭环检测、消耗资源等问题,因此不适用于室内面积较大的储藏室;而基于优化的方法可以较好地解决这一问题,因此本文采用Cartographer算法作为建图算法。Cartographer算法采用基于图优化的SLAM理论框架,分为局部SLAM(前端)和全局SLAM(后端)两部分。局部SLAM主要负责Scan-to-Submap与闭环检测,将扫描的激光数据与子图进行配比,然后会生成一个表达模型为栅格地图的子图,当子图没有新的数据帧插入时会进行闭环检测,子图创建之后会寻找与当前估算位姿匹配的最优结果,并将其添加到闭环约束中;全局SLAM主要消除局部SLAM累积的误差,通过分支定界与预先计算的网格来实现全局闭环检测。
巡检机器人在导航过程中离不开定位和路径规划。一般来说,机器人的全局路径规划主要使用Dijkstra和A*算法,根据地图的所有信息和指定的目标位置进行计算,从而得到一个全局的最优解。局部路径规划是因为巡检机器人在全局路径行驶中随时会遇到障碍物,这就需要机器人在局部移动时能够实时自主修正路径,避免与障碍物发生碰撞。本文主要使用move_base功能包来完成机器人的路径规划。在导航过程中,本文通过蒙特卡洛定位算法实时计算出机器人所在地图中的位置。
5 结语
本文基于麦克纳姆移动平台设计并实现了一种适合在室内运动的巡检机器人,用于保护储藏室的安全。设计了基于ROS的软硬件框架,研究了SLAM建图算法,使用Cartographer建图算法进行建图,下一阶段将进行摄像头功能的研究和开发。本文为机器人硬件与软件的设计提供了一个切实可行的设计方案,在机器人的定位导航和室内安防领域具有一定的参考价值。
[参考文献]
[1] 朱福利.基于SLAM的移动机器人室内环境感知和地图构建研究[D].广州:广东工业大学,2016.
[2] 张鹏,高放,双丰.基于ROS的全向移动机器人控制系统的设计与实现[J].组合机床与自动化加工技术,2018(7):89-92.
[3] 刘昊.基于ROS的移动操作机器人设计与开发[D].上海:上海交通大学,2018.
[4] 常皓,杨巍.基于全向移动模型的Gmapping算法[J].计量与测试技术,2016(10):1-4.
收稿日期:2020-08-19
作者简介:管晨曦(1996—),男,河南驻马店人,硕士在读,研究方向:智能机器人。