李业谦 陈春苗
摘 要: 基于传统移动机器人导航系统存在横向偏差大的问题,为了缩小移动机器人行驶的横向偏差,提出基于ROS和激光雷达的移动机器人自动导航系统设计。通过激光雷达传感器设计和导航服务器端优化设计,完成系统的硬件设计;依托移动机器人导航程序设计和获取激光雷达数据,完成系统的软件设计,实现移动机器人自动导航系统的设计。在ROS和激光雷达的基础上,实现了移动机器人的自动导航。测试结果显示,基于ROS和激光雷达的移动机器人自动导航系统与传统导航系统相比,在移动机器人行驶过程中具有较小的偏差。
关键词: 移动机器人; 自动导航; 系统设计; ROS; 激光雷达; 系统测试
中图分类号: TN953?34; TP242 文献标识码: A 文章编号: 1004?373X(2020)10?0176?03
Design of mobile robot automatic navigation system based on ROS and laser radar
LI Yeqian, CHEN Chunmiao
(Nanfang College of Sun Yat?Sen University, Guangzhou 510970, China)
Abstract: In allusion to the large lateral deviation existing in the traditional mobile robot navigation system, a mobile robot automatic navigation system based on ROS and laser radar is proposed to reduce the lateral deviation of mobile robot running. The hardware design of the system is completed by means of the laser radar sensor design and the navigation server optimization design; the software design of the system is completed relying on the design of navigation program of mobile robot and the acquirement of laser radar data, so as to realize the design of the automatic navigation system of mobile robot. The automatic navigation of mobile robot is realized based on ROS and laser radar. The testing results show that, in comparison with the traditional navigation system, the mobile robot automatic navigation system based on ROS and laser radar has smaller deviation in the process of mobile robot moving.
Keywords: mobile robot; automatic navigation; system design; ROS; laser radar; system testing
0 引 言
如今工业机器人技术迅猛发展,工业上依靠人工来完成的工作大多被工业机器人承担,因此移动机器人的研究已从工业生产上向生活领域转换[1]。如果将工业机器人比作傻瓜式操作,不需过多脑力思考,那么移动机器人就会智能很多,因为移动机器人可以满足工业生产和社会上不同的需求[2]。移动机器人与工业机器人在种类和复杂程度方面都属于同一个级别,移动机器人的应用场景是多样化的。
尽管移动机器人在研发上仍有些困境,但选择高超技术手段还可以提高相应功能。导航技术作为移动机器人的研究核心,指移动机器人通过测量激光雷达传感器所感知到的环境信息和自身姿态,实现姿态之间的自主移动,在移动过程中还可以合理地避开障碍物[3]。因此本文在导航技术的基础上,引入ROS和激光雷达,设计一套移动机器人自动导航系统,更好为人类服务。
1 移动机器人自动导航系统硬件设计
1.1 激光雷达传感器设计
激光雷达通过自身不断接收反射的激光信息,来确定周围环境情况与移动机器人之间的距离,可以缩小移动机器人导航的横向偏差。采用激光雷达传感器的目的是可以感知到当前环境信息,并构建当前所处的环境地图,国外的激光雷达传感器虽有较高精度和扫描范围,但成本高[4]。本文设计的激光雷达传感器是成本超低的360°激光掃描测距雷达传感器,最大扫描范围可达6 m,可实现360°全方位扫描和自动导航功能[5]。激光雷达传感器内部结构如图1所示。
激光雷达传感器的采样频率可以达到10 Hz、4 000次/s,可以实现对周围环境逻辑信息的快速获取,帮助移动机器人实现快速精准的导航。相比传统导航系统中的传感器,激光雷达传感器中融合ROS原理,ROS可以实现导航路径规划的实时导航,自动将障碍物避开[6]。基于ROS的激光雷达传感器测距原理如图2所示。
基于ROS的激光雷达传感器在每次测距时,都采用激光三角测距技术,产生激光扫描区域周围的环境,在通过实时监测导航遇到障碍物反射回来的激光测距信号,就可以快速得到周围物体与移动机器人之间的距离,降低导航的横向偏差。
1.2 导航服务器端优化设计
导航系统的服务器端会随时接收到移动机器人的环境数据,必须要优化服务器端的设计,扩大服务器的容量,避免在行驶时造成较大的横向偏差。移动机器人自动导航系统的服务器端主要有两个组件,分别是地图创建和路径规划[7]。地图创建是在电子地图上面将坐标点标记出来,然后将电子地图上面的坐标点连接起来,形成一个全局式电子地图,并将坐标点和连接信息存放在数据库中,坐标点可以根据移动机器人发送过来的坐标点标记,也可以直接标记。路径规划可以为移动机器人提供导航路径,包括自动和手动两个功能,主要完成移动机器人自动导航系统的管理工作[8]。导航服务器的架构图如图3所示。
地图创建和路径规划都是在系统的后台实现的,前端是用网页的行驶操作每一个功能点,同时还要响应移动机器人自动导航系统中硬件端的路径请求。导航服务器端的后台管理为移动机器人自动导航系统的后台管理进行地图创建和路径规划,并通过控制器来修改地图上的坐标点[9]。后台管理的视图端口可以发送导航坐标点给导航服务器请求一条可行的路径,导航服务器端根据导航路径规划来完成自动导航任务,实现移动机器人的自动导航。
2 移动机器人自动导航系统软件设计
2.1 移动机器人导航程序设计
移动机器人在行驶时,会由于导航系统的程序运行不稳定,造成行驶的横向偏差大,因此在移动机器人自动导航系统硬件设计的基础上,采用VC++编程实现移动机器人导航程序设计[10]。移动机器人自动导航程序流程如图4所示。
移动机器人自动导航程序在设计过程中,要考虑到对自动导航系统各个构件的保护,导航位置角和姿态角同时都大于一個特殊值时,要是用移动机器人自动停止行走,并且系统控制器输出的控制值也要采取最大值限制。根据导航服务器的信号采集、信号滤波和传输等所需时间长短,确定移动机器人的导航周期为100 ms。
基于加强自动导航系统构件的保护,将系统软件操作界面融入导航程序设计中,确定了移动机器人的一个导航周期,实现了移动机器人的自动导航。
2.2 获取激光雷达数据
移动机器人开启自动导航模式时,要先根据获取到的激光雷达数据对周围环境定位,通过检测出移动机器人与周围物体之间的距离,来缩小行驶的横向偏差。对周围环境建立模型时,需通过观测平台控制移动机器人,使用激光雷达结合ROS构成里程计来测量移动机器人的周围环境。激光雷达获取测量的距离信息,里程计通过记录移动机器人中导航仪的读数,在设定的初始位置计算位姿估计。通过移动机器人自动导航系统自带的速度控制主题和控制节点,来控制移动机器人全向移动。
在移动机器人自动导航系统中,ROS Base Controller是常用的控制节点,通过监听在自动导航系统中的发布,利用ROS进行移动机器人的激光雷达数据获取,控制移动机器人的运动。
综上通过激光雷达传感器设计和导航服务器端优化设计,完成系统硬件设计;依托移动机器人导航程序和获取激光雷达数据,完成系统软件设计,基于ROS和激光雷达实现了移动机器人自动导航。
3 系统测试
3.1 搭建测试平台
根据本文设计的自动导航系统,实验室测试所用的移动机器人搭载了两个芯片处理单元,分别为树莓派和ART98G035LCY。
树莓派的型号选择3B+,主要特征有:内存为1 GB;双频903.77ac无线网卡;搭载1.4 GHz 四核中央处理器;可以搭载重量型的操作系统。
ART98G035LCY属于一种低端的微控制器,内核为72 MHz,主要特征有:最大可以承受64 KB的存储器;两个转换器,可以用于测距的传感器;两个控制器;三个USART接口,可以用于串口通信。
3.2 实验步骤
上文在导航服务器端设计中提到测试前先创建环境地图,证明实验的真实性。创建步骤如下:
1) 连接激光雷达并获取数据;
2) 将激光数据发布到ROS中;
3) 发布里程计数据;
4) 控制移动机器人的远程运动;
5) 控制移动机器人在实验环境中行走;
6) 记录实验结果。
3.3 实验结果分析
利用上述搭建的测试平台和测试步骤,采用移动机器人的行驶距离作为自变量,让移动机器人在宽为4 m的道路上行驶,得到移动机器人横向偏差变化曲线(向右为正,向左为负),如图5所示。
从变化曲线中可知,传统导航系统计算移动机器人行驶的横向偏差时,向右偏差都在0.6 m左右,而向左横向偏差达到0.7 m,行驶过程中产生的横向偏差较大;然而采用基于ROS和激光雷达的移动机器人自动导航系统计算移动机器人行驶的横向偏差时,左右偏差都在0.2 m内,行驶过程中产生横向偏差较小。因此可知基于ROS和激光雷达移动机器人自动导航系统可缩小移动机器人行驶的横向偏差。
4 结 语
本文提出基于ROS和激光雷达的移动机器人自动导航系统设计。通过移动机器人自动导航系统的硬件设计和软件设计,实现了移动机器人的自动导航。测试结果表明,基于ROS和激光雷达的移动机器人自动导航系统相比于传统导航系统,移动机器人行驶的横向偏差较小。
参考文献
[1] 寿佳鑫,张志明,苏永清.基于ROS和激光雷达的室内移动机器人定位和导航系统设计与实现[J].机械与电子,2018,36(11):78?82.
[2] 汪名飞,丑武胜,樊嘉欣.多功能巡检救援机器人系统设计及定位导航[J].机械设计与制造,2018(11):233?236.
[3] 兰建军,李春来,刘寅东.光伏电站巡检机器人电磁导航系统设计[J].电测与仪表,2017,54(9):30?34.
[4] 谭巧,徐启峰,谢楠.实现线性测量的光学电压传感器设计[J].电力系统自动化,2017,41(3):135?140.
[5] 石鑫,韩月,丁思红.粒子计数器的一种新型光学传感器设计[J].传感技术学报,2018,31(1):30?35.
[6] 杨梅芳,任尚坤,赵珍燕.基于磁导率检测技术的传感器设计研究[J].中国测试,2017,43(2):77?81.
[7] 仝青,张铮,张为华.拟态防御Web服务器设计与实现[J].软件学报,2017,28(4):883?897.
[8] 郭少敏,石军锋.基于Android和ZigBee的嵌入式Web服务器设计[J].现代电子技术,2018,41(8):100?103.
[9] 刘洪剑,王耀南,谭建豪.一种旋翼无人机组合导航系统设计及应用[J].传感技术学报,2017,30(2):331?336.
[10] 兰坤,张岩,沈旭昆.一种基于视觉的手术导航系统设计与实现[J].系统仿真学报,2017,29(9):2025?2034.