APP下载

ROS在移动机器人自动导航系统设计研究中的应用

2021-02-28德州职业技术学院王东霞

电子世界 2021年21期
关键词:移动机器人栅格导航系统

德州职业技术学院 王东霞

移动机器人由多个模块构成,自动导航系统是其中重要模块之一,直接关系到机器人的运动情况。基于此,本文对基于ROS的移动机器人自动导航系统进行了设计,为现代移动机器人领域的发展提供一定帮助。该系统包括硬件与软件两部分,由SLAM功能、导航功能等构成,可自动进行定位、绘图、导航等工作。

科学技术迅猛发展的今天,移动机器人技术更加成熟与完善,其已被广泛应用到各个领域。通过移动机器人的应用,减少了人员的参与,不仅提升了各项工作的开展效率,还降低了各种问题的发生率,对现代社会发展具有重要意义。所以,现代社会发展过程中,急需设计出一种性能良好且功能健全的移动机器人自动导航系统,以进一步提升移动机器人性能。

1 硬件设计

在硬件方面,其主要由两大模块构成,一个是移动底盘,在底盘的前端安装一对独立的驱动轮;在底盘的后端安装一对小脚轮,通过调节轮子的速度,以此达到控制机器人左右移动的目的。该方式机动性更强,控制效果更好,且成本相对较低。另一个是核心模块,主要包括:(1)上位机系统。选择了ROS机器人平台,内部安装了Ubuntul6.04系统,用于绘图、定位、导航等工作;(2)雷达系统。采用了型号为RPLIDAR A的激光雷达传感器,发出的信息接触到障碍物后则会立即返回,以此可以推算出两者间的距离。在设备内部,安装了可以360°旋转的探头,能够对所有角度进行检测,测距半径最大值是8m;(3)电机编码器。选择了旋转编码器,用于推算设备旋转圈数,并以此为基础,结合轮的周长,推导出设备的移动速度,机器所处的具体位置等;(4)下位机。用于命令的发布,选择了型号为STM32S103-ARM M3单片机;(5)驱动器,获得下位机传输的命令后,调节电机的转动,以此控制设备的运动状况。

2 软件设计

2.1 ROS操作系统

ROS是现代机器人当中的重要组成部分,主要用于机器人的控制,直接关系到机器人的性能。ROS属于开源操作系统,可完成多种系统操作工作,如硬件抽象描述、底层驱动程序管理、共用功能的执行、模块间信息的传输、模块发行包的管理等。与此同时,还包括采集、分析、整理数据等功能,在各节点的连接下,将所有程序连接到一起,并通过话题的方式完成程序间数据的传输。在基本框架方面,共包括三个Level,分别为计算图级、文件级与开源社区级。

2.2 系统整体设计

在下位机方面,主要由以下程序构成:驱动程序,用于控制驱动器的运行;格式包程序,用于对通讯信息的管理;电源程序,用于对电源的控制等,在各程序模块共同作用下,发放相应指令,并向系统提供电力能源,控制上位机正常运行。在上位机方面,主要包括:雷达驱动程序,用于发射并接收激光信息;无线接口,用于与ROS连接;同时,在ROS另一端,可连接到计算机中,以控制工作量较大的软件,如rive软件、Gazebo软件等,使得系统能够完成绘图、导航等工作。此外,本设计当中,还以前人的研究成果为基础,利用节点的方式将多种功能包连接到一起,从而形成性能良好且功能健全的ROS系统,确保该系统能够有序完成数据分析、绘图、导航等工作。

2.3 软件系统设计

本系统设计时以ROS为核心操作模块,在构架方面采用了分布式的形式,因而在软件设计时,可根据功能的不同,将其划分为多个模块,并针对各模块予以设计,一方面减少了设计时间,另一方面降低设计难度,有利于后期的运维。本自动导航系统内,共包括gmapping、base-controller、move-basey、ydrobot、与amcl功能包等;其中,gmapping功能包加载了Rao-BlackWellized粒子概率算法,能够准确对相关信息进行整理与分析,有利于栅格图的绘制;base-controller功能包属于一种控制器,主要用于对整个设备进行运动控制,该功能包接收到信息后,经过对这些信息的计算与分析,进而发布相关指令,以控制轮子速度,与此同时,还会展示设备的运动距离;move-basey功能包将会以里程信息为基础,结合激光测量结果制定出最佳的运动路径;ydrobot功能包为描述文件,能够展示出设备的坐标改变情况;amcl功能包则加载了蒙塔卡罗定位法,可动态分析设备的在map内的位置。

2.4 SLAM功能设计

本系统设计中选择的是gmapping,其是一种开源功能包,主要利用RBPF粒子概率算法为基础而开发的。对于该功能包来说,安装了相应的编码器,以此采集里程信息,对信息要求相对较低,因而在激光雷达方面,仅需要选择精度一般的雷达即可,无需投入较高成本。该功能包刚刚开发时,主要是帮助机器人绘制图像,并确定出设备所处的位置。gmapping运行时,首先利用scan工具采集设备初始状态的各种信息;然后以此为基础,添加适当的IMU数据,以提升信息的准确性,并得到更加稳定的图像;最后,绘制栅格图,并利用rivz展示出来。具体如图1所示。

图1 SLAM功能流程图

2.5 导航功能设计

ROS导航时主要利用move-base与amcl两个功能包,传感器采集到相关数据后,会传输到move-base功能包,通过该功能包的分析,以此调节设备的运行状况并设计出最佳的运动路线。在另一个功能包的作用下,能够确定设备在整个栅格图中的位置,本系统所设计中,mave-base应符合下述几个要求:(1)可绘制出准确的外界环境图;(2)安装了激光雷达装置;(3)安装了编码器,可采集里程信息。该功能包内由两个costmap构成,一个用于设计全局路径,另一个用于设计本地实时路径,以此构建出环境图像。该图像内,长方形为设备检测的范围大小,灰度值为存在障碍物,进而可以得到设备的运行路线。设备导航时主要流程为:将设备启动,先分析给定坐标,确定目标点,并以此为基础,根据障碍物检测结果确定出最佳的运行路径,保证设备运行到目标点的同时,不会与周边物体发生碰撞。

3 调试分析

3.1 SLAM功能测试

按照设计内容完成设备安装后,将机器人驱动,通过ssh连接到移动平台的上位机计算机中,之后在系统内录入相应指令,观察各节点是否能够正常运行,能够获取相关信息。若未发现问题,将gmapping打开,则会使雷达、rivz模块运行,在rivz界面内会出现大量红色小点,且在界面左侧能够展示出具体信息。最后,观察系统是否能够绘制出栅格图。若上述全部未发现问题,则表明SLAM功能符合要求。本次研究中,选择了某办公室进行了验证,可绘制出较为清晰的栅格图,且通过与实物图对比后发现,两者结构基本相同,表示该功能符合要求。

3.2 导航功能测试

在电脑终端处,打开move-base内的launch文件,之后在rivz页面内选择“2DNav Goal”选项,界面内会形成绿色箭头,由此展示设备移动方向即机器人的运动路线。通过测试发现,本系统可在无碰撞的状态下自动移动到目标点,基本达到了预期要求。

总结:综上所述,自动导航系统是现代移动机器人当中的重要组成部分,直接关系到机器人的运动情况。基于此,本研究设计出了一款性能良好且功能健全的自动导航系统,通过该系统的应用能够绘制出较为准确的栅格图,并确定出无障碍运行路线,可为机器人的运行提供良好引导,符合移动机器人的开发要求。

猜你喜欢

移动机器人栅格导航系统
移动机器人自主动态避障方法
基于邻域栅格筛选的点云边缘点提取方法*
说说“北斗导航系统”
“北斗”导航系统是怎样炼成的
基于Twincat的移动机器人制孔系统
一种GNSS/SINS容错深组合导航系统设计
解读全球第四大导航系统
不同剖面形状的栅格壁对栅格翼气动特性的影响
基于CVT排布的非周期栅格密度加权阵设计
极坐标系下移动机器人的点镇定