室内移动机器人平台设计与实现
2019-06-24杨记周胡广宇许玉云骆永乐
杨记周,胡广宇,许玉云,骆永乐,双 丰,3
(1.中国科学院合肥智能机械研究所,安徽 合肥 230031;2.中国科学技术大学合肥物质科学研究院,安徽 合肥 230026;3.广西大学电气工程学院,广西 南宁 530004)
0 引言
随着机器人技术的快速发展,智能机器人广泛应用于各行各业。但是,目前这些机器人仅能在单楼层间完成导航任务,不能在各楼层间连续工作,影响了智能机器人的作业范围。
在相关的研究中,Ali A[1]等提出一种新的、用于移动机器人在半户外环境下操作电梯按钮的鲁棒性方法,检测电梯按钮的成功率达到99%和7 f/s的高速帧率。
本文基于机器人操作系统[2](robot operating system,ROS),并使用激光雷达、惯性测量元件(inertial measurement unit,IMU)超声波传感器搭建了一台多功能移动机器人平台IIMR-I。目前,该机器人平台已经可以实现即时定位与地图构建(simultaneous cocation and mapping,SLAM)、导航、定位以及避障的功能,并且能够通过自身搭载的深度相机,识别电梯按钮的位置。使用机械臂按下电梯按钮,以实现机器人在不同楼层间工作的能力。
1 IIMR-I机器人平台架构
IIMR-I移动机器人采用双轮差速驱动,提高了机器人越障、爬坡等能力;采用四个辅助轮结构,进一步提高机器人的平稳性;使用激光雷达,获取机器人周围环境信息,用来构建地图和进行路径规划;使用深度相机的彩色图像进行目标检测,并结合深度数据获取机械臂目标点的三维坐标;使用编码器、IMU,获取机器人运动信息;同时,为了防止机器人定位偏移而出现碰撞或跌落现象,增减了碰撞和防跌落传感器。IIMR-I机器人导航架构如图1所示。
图1 IIMR-I机器人导航架构图
IIMR-I机器人的导航系统可以分为ROS层和实时任务操作系统(real time operating system,RTOS)层,ROS层直接接收目标点信息(机器人任务),通过内部节点规划出一条全局路径和机器人运动速度相关命令并发送给RTOS层。RTOS层则根据接收到的速度命令控制机器人运动。ROS中的导航节点接收到目标点信息后,首先根据先验地图、当前位姿估计及激光雷达信息规划出全局路径,即初始位姿到目标点位姿的有效路径。然后,局部路径规划器在全局路径的基础上规划出局部路径用来躲避动态障碍物,并将控制命令发送给STM32,最终驱动电机运动。STM32将电机上的编码器数据发送给ROS层。ROS中的扩展卡尔曼滤波[3]节点通过融合编码器及IMU数据得到IIMR-I机器人的里程计信息。位姿估计节点[4](adaptive montecarlo localization,AMCL)根据机器人里程计信息、先验地图及激光雷达数据对机器人位姿进行实时估计。 IIMR-I机器人机械臂控制系统架构如图2所示。
图2 IIMR-I机器人机械臂控制系统架构图
IIMR-I机器人拥有独立的机械臂,可以用来实现按电梯的功能,同时还搭载了一款kinect[5-6]深度相机。它是微软公司开发的一款体感设备,可以同时获取彩色信息和深度信息。当机器人运动到目标点附近时,通过控制机械臂[7]使机器人完成指定功能,如按下电梯按钮等。ROS层中的目标检测节点接收到目标以后,根据深度相机的彩色图像检测到目标位置,再根据深度相机的深度图像得到目标三维坐标。机械臂控制节点根据目标三维坐标和舵机当前参数通过运动学反解得到控制命令,并发送至机械臂舵机。最后,机器人使用舵机完成预定任务。
2 IIMR-I机器人SLAM及导航定位
在室内环境下,机器人通常无法使用GPS实现精确定位。因此,需要使用SLAM技术预先构建地图存储在机器人本体内。根据使用传感器不同,并发建图与定位(simultaneous cocation and mapping,SLAM)技术可以分为激光SLAM和视觉SLAM;根据空间维度可分为二维SLAM和三维SLAM。环境地图可分为拓扑图、特征图和栅格图。拓扑图通常是根据环境的结构定义的,环境中的位置为节点,位置之间的连线为边。使用拓扑图时,机器人必须能够利用传感器识别节点,即要求节点具有明显可识别的特征或信标。特征图通常采用几何形状,如边、角、直线等特征信息,描述结构化环境,使用特征图定位相对准确。但是其通常需要人工标志,受传感器噪声影响较大,适用于结构化环境。占有栅格地图以栅格的形式划分环境空间,并给栅格中每一个栅格单元分配一个被障碍物占有的概率值。这种方法简单且易于维护,对障碍物环境以及传感器噪声不敏感。试验证明,采用栅格图的效果和特征图相差不大[8]。由于激光雷达具有测距准确、误差模型简单、受光照影响较弱等特点,因此,IIMR-I智能移动机器人平台采用10 m激光雷达SLAM构建二维栅格地图。在初始时刻,机器人利用激光雷达观测到某些障碍物时,可以根据当前机器人在地图坐标系中的位姿(初始时刻机器人坐标系与地图坐标系重合),以及障碍物在机器人坐标系中的位置,计算出障碍物在地图坐标系中的位置。此时,将障碍物加入到地图中(更新地图),并作为先验地图,如图3(a)所示。随着机器人运动,机器人位姿发生改变,机器人对比当前激光雷达观测到的障碍物和先验地图中的障碍物,计算出机器人当前在地图坐标系中的位姿(位置更新),然后将新的特征加入到栅格地图(地图更新),如图3(b)所示。最终,IIMR-I机器人构建出完整的栅格地图,如图3(c)所示。
图3 IIMR-I机器人SLAM过程图
不论采用何种导航方式,智能移动机器人主要完成的是路径规划、定位、避障等任务。根据机器人对环境信息知道的程度不同,路径规划可分为全局路径规划[9]和局部路径规划[10]。全局路径规划是利用存储在机器人内部的地图,规划一条从起点到终点的有效路径,以避开地图中的静态障碍物。局部路径规划是根据传感器测量的数据规划一条局部路径,以避开动态障碍物。
rviz是ROS提供的一个可视化工具,通过rviz可以查看机器人和传感器状态,以及为机器人设置目标点、校准机器人位姿等。当机器人接收到目标点以后,首先检验目标点的有效性。如果为有效目标点,将会规划出两条路径。通过在rviz中设置目标点,IIMR-I机器人规划出了两条导航路径,分别为利用静态地图规划出的全局路径,它给出了机器人的总体运动方;利用激光雷达构建出的局部路径,它是在全局路径的基础上规划出的动态路径。IIMR-I机器人路径规划如图4所示。
图4 IIMR-I机器人路径规划图
机器人定位就是利用传感器确定其在二维工作空间中的位姿的过程,它是机器人导航的基础。目前,常用的定位传感器有惯导、里程计、激光雷达、超声波、红外线等。由于现有传感器普遍存在较大的测量噪声,使用单一传感器不能获得较好的定位效果。在实际使用中,往往采用多传感器信息融合技术,对传感器数据进行综合、平衡处理,获得对环境信息的单一的综合描述。IIMR-I机器人采用扩展卡尔曼滤波[3]方法,融合了里程计和IMU信息用于定位,它使用泰勒级数将非线性系统线性化,放宽了卡尔曼滤波线的性化假设。IIMR-I机器人使用卡尔曼滤波定位效果如图5所示。可以明显看出,使用卡尔曼滤波后,机器人定位更加平稳、准确,随着机器人运动,累计误差也在不断增加。
图5 IIMR-I机器人使用卡尔曼滤波定位效果
为了消除IIMR-I机器人使用里程计和IMU定位的累计误差,在卡尔曼滤波之后,IIMR-I机器人还使用了自适应蒙特卡洛定位(adaptive montecarlo localization,AMCL)算法。IIMR-I机器人蒙特卡洛定位效果如图6所示。
图6 IIMR-I机器人蒙特卡洛定位效果
它是一种粒子滤波算法,使用一组带有权值的粒子模拟预估状态的后验概率。随着机器人运动,不断进行状态预测、更新权值、重采样等操作,使得粒子最终收敛到机器人的实际位姿,完成定位过程。它可以有效处理非线性、非高斯系统,近年来在机器人定位中得到了广泛的应用。
3 试验结果分析
对A、B、C、D、E、F六个位置作机器人定位测试。以上述六个位置为起点,在其周围任取10个位姿作为目标点,当机器人从起点导航到目标点后再返回到起点位姿,得到结果如表1所示,并计算出最大误差、最误差和均值误差。由于A点位置紧靠墙壁,当机器人返回起点时,激光雷达只能获取到墙壁的直线信息,有效特征较少,因此定位误差较大;在E点位置特征较多,定位误差较小,与试验结果相符。在机器人导航过程中,IMU、里程计、测距雷达等都会存在误差。为了避免机器人在目标点处陷入震荡,通常会让机器人在目标点附近一定范围内就认为已经到达目标点而停止运动,所以会导致机器人定位上存在误差。从表1可以看出,IIMR-I机器人的定位精度在10 cm范围内。
表1 六个位置定位测试误差
4 结束语
基于ROS的IIMR-I室内移动机器人平台可以使用激光雷达构建精准的二维栅格地图,并在此基础上实现全局和局部路径规划,利用历程计和IMU对机器人位姿进行实时定位。机器人运动平稳,能够即时避开动态障碍物,定位可靠,相对定位精度可以达到10 cm。后期将使用机器人机械臂和深度相机实现机器人抓取等动作,并利用该平台不断优化SLAM、导航等算法。