1、众创空间科技创新与应用Technology Innovation and Application2023年8期基于 ROS 的机器人自主探索导航与地图构建研究邵连奇,张媛媛,袁田,淡睿哲,马帅辉,顾伟宏*(东北林业大学,哈尔滨 150000)ROS(Robot Operating System,下文简称“ROS”)全称为机器人操作系统,是适用于机器人开源的一种元操作系统,是管理机器人硬件的一个操作系统架构。其为操作系统提供了应有的服务,包括硬件抽象、底层设备控制、常用函数的实现和进程间消息传递,以及包管理。ROS 也提供了用于获取、编译、编写和跨计算机运行代码所常用的机器人开发通用工具和开源库
2、函数。ROS 系统的起源是 2007 年斯坦福大学人工智能实验室与 Wilow Garage 公司的一个机器人合作项目斯坦福人工智能机器人项目(the STAIR project)。2008 年之后由 Willow Garagre 来进行推动。ROS现己成为国内外大学进行机器人实验研发的首选平台。据调查可知,实现无人驾驶技术的最关键问题之一就是地图构建。地图构建的精准度,又受制于传感器所获取信息的时效性及准确性等。在 ROS 的基础上,利用摄像头和激光雷达对周围的环境的进行探测。相比于摄像头传感器,雷达的检测范围更大、检测角度更广。利用雷达检测这一优点可以快速对障碍物进行避障,进而提高了机器人
3、运行速度上限。但随着运动速度的提高,单一传感器检测易产生误判,因此加入摄像头进行识别辅助判断,通过对多传感器融合使用以及对数据的融合处理,降低误判的程度。1机器人系统设计框架1.1硬件系统设计机器人的整体结构与硬件组成如图 1 所示,该机器人主要由激光雷达、视觉模块、控制模块和移动平台4 个部分组成。其中移动平台由常规智能车底盘进行改造,选用航模电池进行供电。激光雷达采用三角测距原理,通过脉冲激光获取目标物的标点数据,该机器人采用的 LS01X 型激光雷达测距半径可达 16 m。视觉基金项目:国家级大学生创新创业计划资助项目(202210225209)*通信作者:顾伟宏(1982-),女,硕士
4、,工程师。研究方向为传感与检测。摘要:为提高四轮机器人在未知环境下自主导航与地图构建的能力。主要采用多种传感器的协调配合,并灵活运用多种传感器之间的优势。借助于信号滤波技术,对滤波后的传感器信息进行数据融合。在此数据基础上,基于 ROS 内部功能包 Navigation 的gmapping 算法,利用 A*算法实现全局规划,同时采用 TEB 局部规划控制器实现局部规划。最终成功实现地图构建,并实时反馈位置信息使机器人能够不断调整位姿。说明该方法能够实时提高自主导航与地图构建的精准性,高效实现环境地图的构建以及辅助导航。关键词:环境地图构建;自主导航;A*算法;gmapping 算法;系统设计中
5、图分类号:TP399文献标志码:A文章编号:2095-2945(2023)08-0037-04Abstract:In order to improve the ability of autonomous navigation and map construction of four-wheeled robot in unknownenvironment.It mainly uses the coordination and cooperation of a variety of sensors,and flexibly uses the advantages of a varietyof se
6、nsors.With the help of signal filtering technology,the filtered sensor information is fused.On the basis of this data,based onthe gmapping algorithm of the internal function package Navigation of the ROS system,the A*algorithm is used to realize theglobal planning,and the TEB local planning controll
7、er is used to realize the local planning.Finally,the map construction isrealized successfully,and the position information is fed back in real time so that the robot can constantly adjust its posture.Itshows that this method can improve the accuracy of autonomous navigation and map construction in r
8、eal time,and efficientlyrealize the construction of environmental map and auxiliary navigation.Keywords:environmental map construction;autonomous navigation;A*algorithm;gmapping algorithm;system designDOI:10.19981/j.CN23-1581/G3.2023.08.00937-2023年8期众创空间科技创新与应用Technology Innovation and Application模块
9、选取工业摄像头,利用 CCD 感光芯片,对外界环境进行探测与感知。控制系统的核心为 MiniPC,承载Ubuntu 20.04。移动平台在无刷电机、舵机、轮式编码器及散热模块与减震模块的协同下,可以在复杂的环境中进行快速行驶。图1机器人的整体结构与硬件组成1.2控制系统设计机器人的自主导航以及地图构建需要利用激光雷达、摄像头、IMU(惯性传感器)和编码器 4 种传感器所采集的信息,通过 MiniPC 将这些数据进行融合处理;并且借助 ROS 丰富的开源社区资源与 rviz 软件平台实现自主探索导航与二维可视化建图功能。2机器人移动平台的SLAM系统搭建2.1SLAM系统概述SLAM 是一种解决
10、移动机器人同步定位与导航的技术,机器人通过其所搭载的传感器对外界环境信息进行获取,从而进行增量式地图构建,进而利用所获取的环境信息对自身位姿进行获取与调整。SLAM 主要分为 4 个方面:激光 SLAM、视觉 SLAM、多传感器融合SLAM 和深度学习 SLAM,其中多传感器融合 SLAM相较于其他 SLAM 定位精度更高,拥有更好的鲁棒性。2.2视觉系统模型OpenCV 是一个开源的 BSD 许可库,由一系列的C 函数和少量 C+类构成,可以实现计算机视觉和图像处理方面的很多算法,具有强大的图像和矩阵计算能力。图像处理与分析函数、轮廓、几何学处理函数、目标跟踪与追踪函数及颜色识别函数是 Op
11、enCV 常用的几种函数,合理的应用 OPenCV 可以有效提高机器人的自主导航与避障能力。3机器人运动情况下的定位与对未知环境的地图构建3.1卡尔曼滤波算法研究卡尔曼滤波算法(Kalman Filter)通过系统的观测数据及系统状态对全局最优状态进行推算。通过上一状态和下一状态来预测当前状态,公式如下-=Att-1+Btut。式中:At指当前时刻的状态转移矩阵(就是指从上一状态转变为下一状态的关系矩阵);Bt为当前时刻的控制矩阵(就是指影响控制量的控制矩阵);ut为当前时刻的控制量;t-1为上一时刻最优估计值;-t为当前时刻估计值。预测均值的协方差来计算 Kalman 增益为,其中协方差为式
12、中:t-1为上一时刻预测值方差矩阵;Rt指当前时刻测量值噪声矩阵。Kalman 增益的计算公式为式中:KT为卡尔曼增益(指的就是权值);CT为测量方程;QT为观察量的协方差矩阵;通过 Kalman 增益来计算状态估计值预测当前状态需要用到上一状态的协方差,所还需要计算当前状态的协方差用于下一次迭代通过以上公式即可预测出物体的位置坐标及速度。3.2数据融合robot_pose_ekf 是 ROS Navigation stack 中的一个 package,通过扩展卡尔曼滤波器对 IMU、里程计odom、视觉里程计 vo 的数据进行融合,从而计算出机器人在平面上的真实位姿,并输出 odom_com
13、bined 消息。robot_pose_ekf 只适用于平面上的轮式移动机器人,因此 odom 信息中可以忽略 z,pitch 与 roll 分量。IMU 可以提供机器人坐标系相对于世界坐标系的姿态(RPY 角),其中 Roll 和 Pitch 是绝对角度,而偏航角Yaw 在 IMU 中没有集成电子罗盘测量地球磁场角作为参考则是一个相对角度。IMU 姿态的协方差矩阵代注:为陀螺仪模块;为激光雷达;为 Mini PC;为自制连接支架;为自制连杆;为编码器;为航模锂电池;为智能车主体。视觉模块移动平台激光雷达控制模块12345678T-1ttttt=+,AAR()1TTtttttttK=CCC+-
14、Q()ttttttu=u+K z-C m。()1ttttKC=-。38-众创空间科技创新与应用Technology Innovation and Application2023年8期表了姿态测量的不确定度。robot_pose_ekf 节点默认会从 odom、IMU_data、vo 这三个 topic 上订阅消息,通过remap 将其映射到新名称的 topic 上。每当节点使用重映射中的原始名时,ROS 客户端库就会将其默默地替换成其对应的新名称。IMU 信息的协方差矩阵中代表机器人航向角的分量方差为 10-6,而里程计信息的协方差矩阵中机器人姿态分量的协方差为 103,2 个值相差很大。而在
15、进行 EKF 融合时,会更“相信”IMU 提供的姿态信息,因其方差更小。3.3Gmapping建图算法Gmapping 是一种基于 Rao-Blackwellized 粒子滤波的二维激光 SLAM 方法,gmapping 的运行步骤一般为:采样计算权重重采样地图估计。gmapping 基于 RBpf 粒子滤波算法,即将定位和建图过程分离,先进行定位再进行建图。东北林业大学为了解决 RBpf 频繁重采样的缺点,gmapping 提出了选择性重采样,即减少重采样的次数,设定阈值;当粒子权重大于所设阈值才执行重采样,这样便减少了采样的次数,即减缓了粒子的退化。利用 gmapping 功能包订阅机器人
16、的深度信息、通过利用 IMU 信息和里程计信息以及卡尔曼滤波融合,进行小车的精确定位,同时进行一些必要的参数配置,例如对 gmapping 功能包中的雷达最大检测距离及地图刷新频率的调试,进而更好地实现同步定位与地图构建。编写 gmapping 节点相关 launch 文件,修改关键参数 map_update_interval(地图刷新频率)为 3,maxUrange(雷达最大检测范围)40 cm,其余参数保持不变,修改好base_frame(string,default:base_link)机器人基坐标。map_frame(string,default:map)地图坐标系。odom_frame(string,default:odom)里程计坐标系,运行 launch 文件,即可创建并输出基于概率的二维栅格地图,因为其方差更小。4机器人移动平台的路径规划算法研究4.1全局路径规划A*算法全局路径规划是指轮式机器人找到起点与目标点间可通行路径的过程,此过程仅包含路径的信息,同时构建一系列规划的目标,包括路径最短躲避障碍物等。本文研究是基于 ROS 的研究,故选取 A*算法作为全局路径规划