对于导航机器人关于SLAM实现的研究
2019-10-22金展
金展
对于导航机器人关于SLAM实现的研究
金展
(哈尔滨理工大学,黑龙江 哈尔滨 150080)
传统工业机器人执行一般业务的工作效率低下,智能化程度不高。但随着时代的发展,机器人智能化的程度逐年升高,其中,在如何实现未知环境中的实时定位与环境地图构建(SLAM)是实现机器人广泛工业化和应用在智能家居、智能出行等领域的一个问题。针对这个问题,设计了基于机器人操作系统(ROS)的导航机器人,在硬件设计和SLAM算法上给出了结构和思想。目的是使导航机器人具有建图、导航、规划路径、环境信息的检测收集等功能,完成机器人的设计初衷和对已有技术的创新和再创造。
SLAM算法;同步定位;地图构建;激光雷达
1 引言
随着人工智能科技的迅速发展,该领域的产业迅速崛起。为了满足越来越大的室内业务和智能导航的需求,本文根据需要设计了基于机器人操作系统(robot operating system ROS)的智能导航机器人。导航机器人可以通过激光雷达采集周围环境数据估算自身位姿信息,并利用位姿信息绘制环境地图,进而实现即时定位和制图技术,即SLAM技术。传统卫星定位系统中的精度对于室内来说很大,无法满足其精细操作的需求,所以对于导航机器人的室内定位来说,本文采用了探测器手段来获取环境信息,从而实现室内导航功能[1]。与一般探测器相比,激光雷达具有许多显著的优点,对于速度、距离、角度有较高的分辨率,能很好地适应环境,并能通过对速度的测量域宽,呈现物体的尺寸体积等因素。在成本上也比其他昂贵的设备有更好的性价比,能够充分满足测距和工业成本要求。
目前在实现SLAM的过程中,需要进一步使其满足高稳定性、低复杂度和高一致性这三大要求[2],为了实现导航机器人路径算法计算完成,克服原有卡尔曼滤波器精度不高及稳定性较差的缺点,使用一种基于平滑滤波的改进建图算法。改进之后,SLAM 算法精度和抗干扰性都有所升高,能较好地实现导航机器人的建图和定位,有效提升机器人的性能。SLAM问题的难点之一是定位与制图两者相互关联,机器人的运动定位结果又会受到地图构造时误差的影响[3]。另外,机器人与外界交互所使用的传感器的噪声和精度也会较大程度地影响最终的结果,所以提高系统的稳定性也是一个难点所在。
在本文中主要讨论了设计机器人所采用的SLAM算法的原理和具体实现的步骤和想法,还有对导航机器人硬件层面的设计,因为要同时考虑工业成本及精确性,所以测试了不同种的原件,介绍了相对较优的组合。同时介绍了如何很好地实现和达到机器人的预期设计目标和其未来前景。
2 SLAM原理及应用
2.1 HectorSLAM算法原理
通过机器人的传感器,可以获取外部环境的深层信息,因此,HectorSLAM算法在实际运用过程中,会有很多的干扰因素,如外部环境中的噪声等。在实际应用的过程中,这些误差往往会迭代进行累加,进一步偏离期望值。所以为了得到更好的结果,通常会对这些误差进行消除和避免。其中SLAM算法有以下三个阶段。
扫描匹配。机器人自身坐标系与模拟地图坐标系的原点已知且重合,机器人在模拟地图中起始位置已知,第一次扫描数据在模拟地图中各个点的坐标已知,相对于地图坐标系的坐标来说第二次扫描数据的坐标也可测出。机器人的前后位姿是通过前后次激光点间的、变换后得到的结果。
将两次的数据进行匹配。此时假设两次采集的数据是接近的,即概率接近1。接着对其用最小二乘法构造函数,再对函数内部展开,使误差偏导等于0,进而求解高斯-牛顿方程。再在其中使用方程对地图求偏导,本文在这里使用双线性插值的方法求出旋转矩阵、,并通过前后位姿的关系,求出机器人在后一次采集时刻的位姿,SLAM定位完成。
建图。后一次的机器人位姿求出,因为已知后一次采集的激光投射在环境下的坐标,所以可根据后一次机器人位姿得后一次激光投射在环境中坐标,就可以映射到模拟地图。
2.2 同步定位与地图构建具体过程
SLAM中有一个关键的环节是特征提取[4],特征提取的目的是特征的形式来表示周围特定的环境,这样大大减少了计算的复杂性,特征提取的质量直接影响基于特征的SLAM算法的效果。
在SLAM算法的实际环境运用中,数据匹配具有非常大的影响,传感器每次对多个特征进行测量,其中包括几个方面:地图中不存在的特征、地图中已经存在的特征和虚假的特征。为了使机器人位姿和地图中路标估计更准确,所以必须保证正确的数据关联,只有这样,才可以保证获得的观测与造成此观测的环境特征之间建立正确的对应关系,所以应该保证测量得出的值和模拟网络地图中的特征相匹配,这是构建精确环境地图的前提。一旦观测与地图之间发生了错误的关联匹配,就会使机器人定位和环境地图之间构建的失败,在实现同步定位与建图过程中,机器人位姿和一些参量具有不确定性,这都会造成同步定位与地图构建的失败,正是因为如此,SLAM过程中具有很多不确定性的参量,导致机器人的位姿无法准确地表达。因为在传感器对机器人运动的辨别存在固有的不确定性,这种影响还包括了外部环境的噪声影响,需要在地图构建的每一次迭代中,每次对产生的误差增量进行累加,这会对地图构建以及机器人定位产生巨大影响,严重影响同步定位与地图构建的准确性[5]。所以需要使用一种新的匹配方法——图像匹配法,卡尔曼滤波可以对这种误差进行相应的补偿。这种滤波可以进行如下的表述:一个移动机器人在未知的环境中,在这个移动过程中传感器将会检测到一定的位置坐标,然后机器人会利用这种系统的控制输入产生运动,可以利用获得的周围环境的观测信息和通过机器人运动过程中对系统的控制输入,可以估计机器人在环境中的位置。
3 硬件设置
由于基于Ubuntu的ROS操作系统是离散的分时系统,而并不是实时系统,但是导航车的运动控制对实时性有一定要求,所以需要供电系统中也采用分立式的电源设计来满足MCU与车载控制器不同的电压需求,使用了电压转换模块,并通过译码器处理电平相匹配,因此需要使用额外的控制器来控制运动中的机器人,在这里使用stm32F407最小系统。伺服电机与电子调速器均使用控制周期为20 ms的控制信号。ROS中上位机和机器人的信息交互使用局域网的构建来完成。核心控制器是Raspberry Pi 3B+,这是一款基于ARM架构,运行Linux操作系统的微机。其中Raspberry Pi 3B+的激光雷达RPLIDAR A1之间使用高速串口通信完成数据和命令的发送和驱动控制算法的接收,并作为运行平台实现建图及导航等功能。
激光雷达是通过发射激光束并接收反射激光束来实现测距功能的一种测距系统。可以用三角测距原理对环境进行激光测距,反馈到上位机绘制平面点云地图,实现实时的建图。而本文使用激光雷达的是在低成本下稳定性能更好的RPLIDAR A1,可在扇形区域内对6 m内的信息进行收集。机器人车载主机RK3399模块是一款低功耗、高性能的应用处理芯片,用来当作驱动机器人底盘的芯片是较适合的选择。导航机器人组装过程中的调试如图1所示。SLAM测试过程中的可视化如图2所示。
图1 导航机器人组装过程中的调试
图2 SLAM测试过程中的可视化
4 地图构建模拟实际测试
实际操作步骤具体如下:①ROS首先加载有关的URDF文件,输出相关连接信息和坐标系转换关系信息;②启动用于解析当前控制指令,获取当前速度值及累计路程获取、转换等的base_controller和odom_publisher节点,同时启动远程键盘控制节点和车载驱动控制装置;③启动激光雷达机器人开始移动;④启动用于建图的节点hector_mapping,可以实现HectorSLAM算法;⑤启动Rviz,实时观察模拟地图的构建和正移动的机器人的当前位姿情况;⑥记录所得数据及图形。
5 结果及自主导航的应用
根据地图构建模拟实际测试的结果来看,机器人的各项性能指标和导航建图,包括环境信息等各项功能都达到预期精度要求。随着经济的发展和科技的进步,人们对智能机器人等设备早以司空见惯。近年来服务型机器人、智能无人驾驶等领域逐渐被人们所重视,因此实现了机器人在不确定环境中自主导航能够带来一系列的机器人设备的革新,如在生活中的快递物流机器人、老年人的智能轮椅和军事上的侦查任务等功能,所以导航机器人在未来很可能将会被工业化制造并且广泛普及。
[1]李玲玲.高精度室内定位系统伪卫星布局研究[D].哈尔滨:哈尔滨工业大学,2015 .
[2]夏汉均.基于ROS的机器人即时定位与地图构建技术的研究[D].沈阳:东北大学,2013.
[3]李昊.基于激光雷达的二维即时定位与制图技术研究[D].南京:东南大学,2018.
[4]曹彦超.基于B样条特征的SLAM算法研究[D].青岛:中国海洋大学,2012.
[5]徐曙.基于SLAM的移动机器人导航系统研究[D].武汉:华中科技大学,2014.
TP242
A
10.15913/j.cnki.kjycx.2019.19.060
2095-6835(2019)19-0142-02
金展(1999—),男,安徽黄山人,哈尔滨理工大学电气学院电力电子专业在读本科生,主要研究方向为机器智能。
〔编辑:王霞〕