基于激光SLAM的室内移动机器人设计
2021-01-20李博昊罗咏涵彭克勤北京信息科技大学
李博昊 罗咏涵 彭克勤 北京信息科技大学
1 引言
移动机器人是一种具备自动、可移动性、人工智能等多方面能够半自主或全自主工作的机器。自1961年美国诞生世界上第一台工业机器人诞生后,经过近60年发展,机器人已经逐渐步入工业、教育、军事、管理、科研、医疗、服务等行业。机器人与人类社会的融合,逐渐改变了人类的生活方式。
如今机器人产业在我国市场快速发展,国内机器人许多企业的生产线上可以看到我国自行生产的机器人,但是也逐渐衍生出了很多问题等待我们的处理与解决。我国主要存在的问题有:基础零件部件制造能力差,关键零件技术缺失;机器人没有形成自己的品牌,中国从事机器人研究的企业没有形成较大规模,缺乏市场品牌的认知度,面临外国品牌的竞争压力。我国需要开展关键技术研究,机器人技术不断的发展,需要满足不同产品需求的机器人构形。
国内现在缺乏拓展性高且又性价比高的设备框架,不利于在原有的基础上加入一些新的功能,面对不同需求,产品的局限性较高,升级改造的时候十分麻烦。本文所研发设计的基于激光雷达SLAM的自主导航机器人系统,可基于设计人的需求在原有的机器人平台上进行拓展研发,增加更多的功能,并且根据时代的需求进行不同层面的升级,在保证经济利益的同时最便利的提高了产品的扩展性,符合当下与时俱进的快节奏的更新换代,解决了当下机器人的一大问题。
2 本系统功能特色简介
(1)本系统支持操作者选择区域构建地图。
(2)本机器人系统可供操作者对周围环境进行实时监控。
(3)本系统支持机器人进行移动路径的数据记录和地图保存。
(4)使用Gmapping算法进行建图,ACML算法进行定位。
3 硬件系统设计
本机器人系统的主控制器采用的是运行Linux系统的树莓派4B板,用来处理计算机器人的里程数据和雷达等数据。树莓派是由注册于英国的慈善组织“Raspberry Pi 基金会”开发的一种微型电脑,其中搭载Linux嵌入式系统,拥有体积小、易操作功能强大等优点。
树莓派共有40个IO接口,其中GPIO(General Purpose I/O Ports)接口数量为26个,26个GPIO端口可以输出或者输入高低电平,用户通过这一特点可以使树莓派和其他传感器进行数据交互。
树莓派4B的一些GPIO接口具有I2C接口、SPI接口、UART接口、PWM接口的功能。I2C是一种同步串行总线,它可以实现连接在总线上的两个器件进行信息传输,树莓派通过I2C端口可以实现多个设备间的交互。SPI是串行外设接口,这种接口用来控制多个控制器之间的主从关系。UART是通用异步收发传输器,在树莓派上启用了串口终端,可以使用电脑来控制树莓派,树莓派通过异步收发传输器就可以直接控制Arduino单片机。
机器采用激光测距的方式测量距离。激光测距与超声波测距测量相比精度较高,而且与计算机视觉测距相比处理数据的复杂度较低。采用的激光雷达测距范围是12cm-350cm,测距分辨率1°,测距精度为2cm,这样的激光雷达虽然配置较低,但是可以满足室内测距的要求。
在SLAM导航系统中机器自身位姿的计算是非常重要的,这就需要IMU(惯性测量单元)装置来测量物体的角速度和加速度。MPU9250芯片是一个包含三个单站的加速度计和三个单轴的陀螺仪,加速度计检测独立三轴的重力加速度信号,陀螺仪检测角速度信号,测量出移动机器人在三维空间中的角速度和加速度,并进行计算解出移动机器人的姿态。
图1 机器人系统构结构
如今移动机器人底盘常用的驱动方式为履带式驱动和轮式驱动。采用履带式底盘驱动的机器人在面对复杂地形时移动能力强于轮式驱动的机器人模型,但是履带式驱动模型安装复杂,控制较困难;轮式驱动的优势在于结构设计较简易、功耗较小、便于控制,但是轮式驱动方式无法跨越障碍物,本文设计的机器人系统主要应用于室内环境,主要的移动地面较平整,遇到障碍物机器人可以通过路径规划的方式绕过障碍物。综合考虑设计机器人的复杂度、成本和移动灵活性,结合本机器人系统主要应用的环境为室内,地形较平坦,没有复杂的障碍物,本机器人系统采用轮式底盘结构的方式进行驱动。
4 软件系统设计
4.1 Gmapping算法
本机器人系统采用Gmapping算法进行建图,Gmapping算法是在RBPF的粒子滤波算法的基础上改进而来的。RBPF粒子滤波算法是将定位和建图根据贝叶斯法则将两个过程分离,即将该SLAM问题分解成移动机器人位姿估计和移动机器人的地图估计。这样大大降低了该SLAM问题的难度。该算法的主要步骤如下:
(1)首先以移动机器人的初始位置开始构建地图,在初始位置生成N个的粒子,每个粒子权重为1/N。
(2)机器根据前一时刻的例子状态和当前机器人的位姿,采样产生新的粒子。
(3)根据每一时刻的观测值,为每个粒子重新计算权值,越有可能获得观测的例子,获得新的权重越高。
(4)随着计算的次数越多,某些粒子的权重越来越低趋近于0,某些粒子的权重越来越高趋近于1,为了能准确的估计移动机器人的位姿,将重采样过后的粒子集输入到状态转移方程中,获得新的观测粒子。
(5)根据粒子的轨迹和观测记录,对每个粒子携带的地图与历史地图匹配后更新到全局地图中。
图2 建图流程
4.2 AMCL算法
在SLAM导航问题中,机器人的精确定位是十分重要的,因为如果无法准确定位机器人的当前位置,那么规划出到目的地的路径必然是错误的。
AMCL(adaptive Monte Carlo localization)算法是蒙特卡洛定位方法的一种升级版,使用自适应的 KLD 方法来更新粒子。
4.3 RVIZ工具使用
本系统使用ROS中提供的rviz三维可视化平台操作机器人。rviz是ROS官方提供的一款3D可视化工具,它以图形化界面的方式将移动机器人的各种参数展示给操作者,并且操作者可以对ROS的程序进行图像化操作。在此界面上可以显示机器人构建成功地图、机器人深度摄像头返回的点云数据、机器人规划的移动路径等数据,还可以操作机器人的运动,使用户更为直观的得到机器人的位姿和构建成功的地图。
图3 Rviz运行界面
5 总结
基于激光SLAM的室内移动机器人在设计中运用了多种传感器,本系统运用了激光雷达模块进行测距、建图,并使用树莓派作为系统的主控制器,相较于单独使用单片机来进行数据处理,树莓派获得的数据更准确、更可靠。
系统室内建图使用Gmapping算法,通过雷达返回的数据使用AMCL算法进行定位,此设计方案具有可靠性高、性价比好及框架易用性高等优点。并且在此平台上还可以加装其他的硬件设施和其他功能,具有较高的扩展性。