-
摘要:为解决煤矿巷道环境复杂情况下巡检机器人在环境感知、导航避障方面智能较弱的问题,设计了一种基于ROS的煤矿巡检机器人。该机器人整体系统由决策层、感知层和执行层3部分组成。首先搭建机器人硬件平台;其次通过扩展卡尔曼滤波对里程计进行改进,提高机器人位姿估计的精度,用ORB-SLAM3算法将视觉-惯性-激光雷达信息进行融合,建立二维电子地图;最后使用A*算法和DWA算法对全局和局部进行路径规划,确保在建立好电子地图的环境中机器人能够实现自动导航。通过模拟环境验证机器人的导航和避障功能,结果表明该机器人在模拟环境中能够实现准确导航和自主避障,充分证明了该设计的可行性和实用性,在煤矿巷道内巡检和导航避障方面具有实际应用价值。
关键词:巡检机器人;扩展卡尔曼滤波;二维电子地图;自动导航
0引言
煤炭资源对我国经济发展发挥着举足轻重的作用。但目前矿山的巡视和检修工作大部分都由人工完成,而该场所中环境复杂、空间狭小且绝大部分是易燃、易爆、有毒、有腐蚀的危险品,对人工巡视造成了阻碍。因此,引入巡检机器人来辅助工人安全可靠地完成设备巡检工作,对煤矿企业的安全生产具有极其重要的意义[1]。目前,煤矿机器人主要用于日常生产、救援和安全监测等方面,根据功能将其分为煤矿生产机器人、智能救灾机器人与煤矿服务机器人[2]。然而,我国煤矿巡检机器人的研究仍处于初级阶段,尚未完全成熟,因此在市场上仍存在许多的应用空间。为解决煤矿巡检存在的问题,需要结合煤矿巷道环境和巡检要求,首先确定巡检机器人传感器的选型,进行硬件平台的搭建,以满足不同环境条件下的数据获取需求;然后运用多传感器信息融合的SLAM算法[3]
根据机器人收集到的传感器数据,实时构建矿山环境的地图,并更新机器人自身的位置信息,并且使用A*算法[4]和动态窗口法(Dynamic Window Ap⁃proach,DWA)算法[5]让机器人在建好的环境地图中实现机器人自主巡检,以及设计机器人实现远程监控功能。最后进行实验验证,基于ROS平台在Rviz中搭建仿真环境,对巡检机器人定位能力和直行与旋转精度进行测试和优化,提高机器人在实际环境中的导航准确性和稳定性;最后在实际环境中实现巡检机器人的自主导航。
1巡检机器人系统框架
整个机器人系统分为感知层、执行层和决策层。感知层主要对两个里程计输出的位姿通过扩展卡尔曼滤波[6]进行融合,其中轮式里程计是由编码器数据解算得到的里程计信息,视觉里程计是单目相机和IMU通过紧耦合算法ORB-SLAM3三维重建后得到的里程计信息,然后使用单线激光雷达实现二维电子地图的构建[7]。决策层的路径规划分为全局路径规划和局部路径规划。全局路径规划使用的是A*算法,负责机器人的全局导航,局部路径规划使用的是动态窗口法(Dynamic Window Approach,DWA)算法,该方法有效解决了机器人对动态障碍物的局部避障问题。执行层及系统实现层级如图1所示。
2硬件平台搭建
由于煤矿井下工作环境较为复杂,为实现机器人工作的自主移动,煤矿巷道巡检机器人不仅要满足防爆要求,底盘的执行机构还要具备良好的跨越障碍能力和极强的地形适应性[8]。本文所设计的巡检机器人底盘由4个单独驱动的全向轮组成,整个平台由树莓派、激光雷达、USB高清摄像头、STM32控制器、GY-85IMU传感器、电机驱动、带霍尔编码器的直流减速电机等部分构成。硬件系统按功能分为上层硬件和下层硬件。上层硬件主要负责数据的处理和节点之间的通信,机器人移动命令的下发,语音识别的上传和接收,图像的解码等,包括运行着Linux+ROS的树莓派3B+、激光雷达、USB摄像头和拾音器。下层硬件主要负责接收来自上层的机器人移动命令,打包上传霍尔编码器和IMU的数据,控制电机驱动机器人运行等,包括STM32ZET6、GY-85IMU、带霍尔编码器的直流减速电机、电源管理模块、电机驱动模块等。为了使机器人数据传输的更快,本系统采用USB串口与上层树莓派进行通信。硬件整体架构如图2所示。
考虑到机器人巡检时,SLAM算法与路径规划算法需要高性能的CPU计算,要求主控端树莓派运行速度能够尽可能地快,在设计系统时选用了拥有**位1.4 GHz四核处理器的Raspberry Pi 3B+。且下层系统需要快速向上层系统传输机器人当前的位姿信息,以保证整个系统获得更好的精度。因此,下层采用STM32F103ZET6,其拥有最高72 MHz的工作频率,和丰富的外设资源。
2.1激光雷达
该巡检机器人对角度和分辨频率要求不高,所以选取RPLIDAR A1型激光雷达,该激光雷达能够实现360°全方位激光测距扫描,覆盖半径12 m,为巡检机器人提供了高效的环境感知能力。通过生成空间的平面点云数据,机器人可以准确地感知周围环境的障碍物和结构,并在建图过程中提供关键的信息。本系统拟应用于室内建图,最大建图范围为50 m×50 m,此型号的激光雷达能满足需求,其优异的扫描性能和稳定的测距精度,使得机器人在建立室内地图时能够实现高质量的地图构建和定位。如图3所示。
2.2单目相机
单目相机使用的是杰瑞*通HF868的200万像素相机。由于ORB-SLAM3算法的输入图像分辨率要求为**0 pixel×480 pixel,故选用该款相机。使用该相机,巡检机器人能够获取高质量的图像数据,有利于SLAM算法的准确执行和地图构建。此外,相机本身具备良好的性能和稳定性,能够在复杂的煤矿巷道环境下稳定运行,并为机器人的自主导航和避障提供可靠的视觉信息。相机实物如图4所示。
2.3惯性测量单元
惯性测量单元(Interial Measurement Unit,IMU)是测量物体三轴姿态角(或角速率)以及加速度的装置。这里采用的是GY-85,可以通过I2C接口访问,IMU能够实时监测物体在三维空间中的姿态角和加速度。该IMU内部包含陀螺仪,能够准确测量物体相对于坐标系的角速率,从而推导出物体在空间中的姿态角度。同时,通过监测物体在3个方向上的加速度,可以计算出物体的加速度信息,进而得知物体在空间中的运动状态。使得机器人能够实时了解自身的姿态和运动情况,有利于精准导航和避障。
2.4监听拾音器
监听拾音器是用来采集周围环境声音信息的设备。集成专业的自动噪音识别技术和AGC及DTS降噪信号*处理电路。适用于-20~75℃的超强环境温度工作,保证后端高质量的录音效果,对室内环境同步监控录音。
3系统软件设计
软件基于Linux系统开发,使用的是Ubuntu16.04版本,所有算法均在机器人操作系统(Robot Operating Sys⁃tem,ROS)上实现。ROS是管理机器人硬件的一套操作系统架构,用于管理机器人底层驱动程序、消息管理系统,也是机器人软件运行平台[15]。
整个软件框架分为下位机、里程计、数据融合、SLAM和自动导航5个部分,如图5所示。
3.1下位机软件
系统的下位机软件部署在STM32上,主要负责接收上位机发布的车轮转速指令,通过PID调速实现电机的快速响应,它还负责将霍尔编码器数据和IMU数据打包上传给上位机,以提供姿态和运动状态信息。同时接收来自上位机的指令驱动机器人移动。通信方面,下位机与树莓派之间通过RosSerial传输数据。树莓派上位机部分在ROS中创建传感器数据发布节点,并订阅机器人控制节点数据,以接收并处理来自下位机的车轮转速指令。在硬件支持方面,Linux提供了通用USB摄像头和串口、网络设备驱动,使得树莓派可以方便地接入相应的硬件设备。
3.2里程计
里程计分为轮式里程计和视觉惯性里程计。
(1)轮式里程计。主要负责解析导航模块发布的线速度和角速度指令,并把计算得到的车轮转速发布给下位机。同时,轮式里程计还负责通过车轮转速等数据对当前机器人的位姿进行求解,并以10 Hz的频率发布位姿信息,为机器人的定位和导航提供重要支持。
(2)基于ORB-SLAM3的视觉惯性里程计。ORB-SLAM3是一个支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行[9]。
ORB-SLAM3采用特征点的方式进行紧耦合的视觉惯性里程计,仅在初始化时依赖最大后验估计[10],包括IMU数据。这意味着它可以利用相机图像和IMU数据来估计机器人的位姿。视觉惯性里程计使用ORB-SLAM3算法来估计机器人的位姿[11]。该算法通过提取图像中的特征点,并使用特征点的匹配关系来跟踪相机的运动。同时,它还利用IMU数据来辅助位姿估计,提高系统的鲁棒性和准确性。ORB-SLAM3系统工作流程如图6所示。
ORB-SLAM3算法的运行需要单目相机和IMU的参数,因此需要对单目相机和IMU标定。首先对这两种传感器各自单独标定,再联合标定[12]。相机标定使用ROS的功能包camera_calibration,采用棋盘标定法标定。IMU标定用的是ROS的功能包imu_utils,两者联合标定使用ROS的功能包Kalibr,能根据记录下的数据计算出联合标定结果。
3.3基于扩展卡尔曼滤波的数据融合
由编码器数据计算得到的里程计信息虽然精度较高,但是车轮与地面之间必然会出现打滑现象,机器人的位姿估计就会出现误差,随着路程的增加,累计误差会越来越大。因此,本文拟引入视觉惯性里程计(Visual-Inertial Odometry,VIO)来估计机器人的位姿,将来自轮式里程计和VIO的测量结果结合起来,采用扩展卡尔曼滤波(Ex⁃tended Kalman Filter,EKF)来实现多传感器的松耦合式数据融合,输出更高精度的位姿。数据融合框架如图7所示。
3.4室内二维地图的构建
经过上一步得到了机器人精确的位置信息,可以对室内场景进行建图[13]。为了提高地图的精度,在建图过程中,本文将激光雷达与视觉信息进行融合[14]。SLAM部分选择gmapping算法[15],基于改进的RBPF(Rao-Blackwellized Particle Filter,Rao-Blackwellized粒子滤波)方法[16]建图。
3.5自动导航
机器人自主导航软件部分采用的是A*算法和DWA算法。A*算法是一种常用的路径查找和图形遍历算法,有较好的性能和准确度。该算法是一种启发式搜索算法,启发式搜索是在状态空间中对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。
但是A*算法是一种静态规划算法,无法规避动态障碍物,因此,引入了动态窗口法实现局部路径规划,在以机器人为中心的一定范围内规避动态障碍物。
4实验验证
4.1构建地图测试
使用命令roslaunch rikirobot stm32bringup.launch启动机器人运行主节点,顺利执行,并在窗口打印里程计信息,如图8所示。
运行机器人基于激光雷达构建地图节点,在PC端使用命令打开rviz,并订阅机器人的map发布节点,可以看到,机器人将激光雷达采集到的数据上传到树莓派端,图中红色的点表示激光雷达当前与障碍的距离边界,黑色点表示机器人障碍点,白色点表示无障碍点,如图9所示。
可以看到机器人成功构建出和实际情况几乎相同的二维占用栅格地图,需要通过ssh到树莓派端运行保存地图数据的命令,为定位导航做准备。如图10所示使用ll-la查看保存是否成功,文件修改时间变化说明保存成功。
4.2定位与导航测试
在构建地图并保存地图的前提下,运行树莓派端的导航命令,页面如图11所示,说明启动成功。
在远程端使用rviz在地图上标点,机器人会根据软件算法自动进行全局和局部规划最优路径,最终到达目标点。
如图12所示,图中的绿色点表示粒子的置信度,这些粒子开始时均匀分布到地图上,通过增量式运动定位到机器人的可能的位置点,最终通过全部的粒子估计机器人最可能的位置,图中可以看到机器人成功定位到位置。
4.3网页监控与控制测试
在树莓派端运行roslaunch rikirobot stm32bringup.launch命令启动机器人控制节点,机器人底盘STM32控制器开始工作,使用roslaunch rikirobot camera.launch启动树莓派端的摄像头,将图像流数据通过一个节点发布出来,在虚拟机端使用roslaunch rikirobot_gui rosbring.launch启动http服务器,在浏览器中输入localhost://8181/simple_ gui.html,如图13所示,在虚拟机端可以看到机器人摄像头拍摄的图像,通过上下左右按钮,控制机器人移动。
4.4系统整体测试
机器人上电启动,运行构建地图命令,机器人开始构建地图,如图14所示。
测试结果表明,巡检机器人在模拟环境实验效果良好,使用激光雷达得到的电子地图,全局坐标系坐标原点和里程计坐标系的坐标原点有偏移,该误差来源于机器人的定位误差,所以机器人的定位精度越高,建立的电子地图就越精确。
5结束语
针对煤矿巷道复杂环境下,巡检机器人存在感知能力差和导航避障能力弱的问题,本文设计了一款基于ROS系统的煤矿巷道巡检机器人。该机器人充分利用了激光雷达、相机等传感器,通过数据融合算法将传感器获取的信息进行整合分析,实现了对环境的精准感知。同时,将视觉图像与激光雷达进行数据融合,实时建立环境地图,大幅地提升了地图的精度。此外使用A*算法和DWA算法对全局和局部进行路径规划,提高了巡检机器人对动态障碍物的规避能力,实现了在复杂的室内环境下完成自主导航巡检任务。本文设计的机器人能更好地适应复杂煤矿井下环境,灵活高效地完成巡检任务,提高了人机交互性。
参考文献:
[1]王国法.刘峰.孟祥军.等.煤矿智能化(初级阶段)研究与实践[J].煤炭科学技术,2019,47(8):1-36.
[2]王雷.煤矿机器人技术产业痛点及智能化分级标准[J].煤矿安全,2024,55(1):208-215.
[3]秦晓辉,周洪,廖毅霏等.动态环境下基于时序滑动窗口的鲁棒激光SLAM系统[J].湖南大学学报(自然科学版),2023,50(12):49-58.
[4]SONG Yu,MA Pengcheng.Research on mobile robot path plan⁃ning based on improved A-star algorithm[C]//2021 International Conference on Electronic Information Engineering and Computer Science(EIECS),2021.
[5]KALLIOKOSKI J,SAKCAK B,SUOMALAINEN M,et al.HI-DWA:human influenced dynamic window approach for shared control of a telepresence robot[J].Arxiv Preprint,Arxiv:2203.02703,2022.
[6]吴叶丽,行鸿彦,侯天浩,等.基于改进自适应扩展卡尔曼滤波的高精度姿态解算[J].探测与控制学报,2023,45(06):69-76.
[7]CAMPOS C,ELVIRA R,RODRIGUEZ J J G,et al,ORB-SLAM3:an accurate open-source library for visual,visual-inertial and multi-map SLAM[J].IEEE Transactions on Robotics:A publica⁃tion of the IEEE Robotics and Automation Society,2021,37(6):1874-1890.
[8]刘立发.防爆巡检机器人SLAM算法开发的关键问题研究[D].大连:大连理工大学,2021.
[9]熊亮.基于鱼眼相机模型的VI-SLAM系统应用研究[D].哈尔滨:哈尔滨工业大学,2020.
[10]杨鑫,杨春玲.基于MAP的多信息流梯度更新与聚合视频压缩感知重构算法[J].电子学报,2023,51(11):3320-3330.
[11]KOHLBRECHER S,VON STRYK O,MEYER J,et al.A flexible and scalable SLAM system with full 3D motion estimation[C]//
2011 IEEE International Symposium on Safety,Security,and Rescue Robotics,November 1-5 2011,Kyoto,Japan.New York:IEEE,2011:155-160.
[12]董文波,于海鹏,于龙.基于靶标内点与边缘角点双重约束的激光雷达与相机联合标定[J].传感技术学报,2023,36(1):30-35.
[13]HENTOUT A,BEGHNI A,NOURINE A B,el.Mobile robot RB⁃PF-SLAM with LMS sensor in indoor environments application on robuTER robot[C]//International Conference on Electrical Engineering,October 29-31 2017,Boumerdes,Algeria,2019,28(15):1-6.
[14]齐继超,何丽,袁亮,等.基于单目相机与激光雷达融合的SLAM方法[J].电光与控制,2022,29(2):99-102.
[15]薛金林,王培晓,周俊等.基于改进Gmapping算法的果园二维环境地图精准构建[J].农业机械学报,2023,54(7):26-34.
[16]吴正越,张超,林岩.基于RBPF的激光SLAM算法优化设计[J].计算机工程,2020,46(7):294-299.
| 后台-系统设置-扩展变量-手机广告位-内容正文底部 |
-
<< 上一篇
下一篇:没有了!