APP下载

基于ROS的铁路客站自主移动机器人关键技术研究

2020-06-02杨国元吕晓军李依诺

铁路计算机应用 2020年5期
关键词:搜索算法移动机器人定位

杨国元,吕晓军,李 超,李依诺

(中国铁道科学研究院集团有限公司 电子计算技术研究所,北京100081)

随着人工智能、机器人技术的发展,国内外研究机构、学者、企业纷纷对工业机器人、服务机器人展开研究。工业机器人已成功应用于制造、纺织、喷绘等行业,服务机器人也占据了较大的国内市场份额,通过利用智能化、信息化以及网络化等技术,加速推进服务机器人在众多领域的发展及落地[1]。其中,自主移动机器人成为一个重要的研究方向和热点,相对于传统的固定式服务机器人,自主移动机器人具有更强的实用性,能够自主移动,部分代替人从事一些复杂或重复性的工作。目前,在广州南站、上海虹桥站、郑州东站、大连北站等铁路客运车站内,已展开服务机器人的应用,但其功能还相对单一,仅限于语音问询,虽能部分代替客运服务人员的语音问询工作,尚未实现自主移动为旅客提供便捷的移动服务。

目前,国内外学者及研究机构在移动机器人领域展开了深入研究。2010年1月,美国Willow Garage公司发布了机器人操作系统(ROS,RobotOperating System)1.0版本;该系统具有开源、分布式管理等优点,底层为操作系统[2],上层为实现定位、导航、路径规划等具体功能的软件包。E.Voisan[3]设计了基于ROS的服务机器人,可在巡视区域内,通过人像识别、图像处理等技术实现人机交互。I.Afanasyev[4]设计了基于ROS的机器人,通过在未知环境中构建3D环境地图,验证机器人在此地图环境中定位导航的可行性。左轩尘等人[5]以ROS为基础,利用人体姿态和语音技术,实现空间机器人的人机交互,解决了传统空间机器人操纵不便的难题。寿佳鑫[6]以ROS为核心,研究设计了移动机器人系统的定位、导航、认知与决策、以及运动控制模块,论证了移动机器人平台设计理念的可行性。

本文主要从移动机器人的硬件、软件架构两方面展开研究,在此基础上,研究适用于铁路客运车站移动服务机器人(简称:移动机器人)的地图构建技术、定位技术、路径规划技术,提出路径规划算法,以满足移动机器人在铁路客运车站复杂场景下自主定位、导航及路径规划等功能需求。

1 基于ROS的移动机器人架构

1.1 硬件架构

铁路客运移动机器人主要满足在铁路客运车站场景下机器人的定位、行走、避障等。移动机器人硬件主要包括:移动底盘和环境感知传感器。其中,移动底盘主要实现机器人的前行、后退、左转、右转、避障、停止等;环境感知传感器主要实现机器人对环境信息的采集、识别、分析等,主要有激光雷达、超声、红外、视觉等传感器。

移动机器人的硬件架构如图1所示。

ROS是基于Linux 二次开发的系统,是移动机器人的控制核心,将机器人的定位、地图构建、基于已知地图的导航、机器人底盘驱动控制等功能模块化。

图1 基于ROS的移动机器人硬件架构

移动机器人利用环境感知传感器采集环境信息,上传到机器人ROS,经ROS识别、分析、处理后,发布指令,通知移动底盘停止、前行、避障等,实现由ROS对底盘电机的驱动控制;移动底盘根据指令执行相应动作,并将执行结果反馈给ROS,从而实现机器人的定位、移动、避障等功能。

1.2 软件架构

软件层面上,移动机器人将机器人的控制、感知、定位导航等功能模块进行集成整合,通过各功能模块的驱动,利用以太网、USB等进行数据交互,将机器人采集的环境信息发送到驱动层;驱动层通过驱动软件控制传感器正常工作,并将接收到的环境信息发送至算法层,进行复杂算法处理,然后再将处理结果反馈给驱动层,由驱动电机执行相应的任务;同时,表现层将处理结果通过可视化界面展示出来。移动机器人的软件架构如图2所示。

图2 移动机器人软件架构

软件架构划分为4个层次:数据层,驱动层,算法层,表现层[7]。

(1)数据层:主要通过移动机器人传感器之间的相互协同,获取机器人的运行状态信息、位置信息、电量信息以及机器人周围的环境信息等。

(2)驱动层:主要是机器人的底层驱动函数,其组件包括传感器、执行器以及运行驱动软件的硬件;驱动层实现传感器正常工作,还可以将传感器数据上传至算法层。

(3)算法层:主要是机器人的控制算法, 为机器人构建环境地图,使机器人能在行走过程中根据周围的障碍物进行动态路径规划,生成控制代码,然后发送至驱动层,以驱动电机。

(4)表现层:主要为机器人与用户之间的人机互动,或在图形化界面显示相关信息,主要包括机器人走行速度、方向角、坐标、机器人电量、环境信息等。

2 关键技术研究

2.1 基于SLAM的移动机器人地图构建技术

即时定位与地图构建(SLAM,Simultaneous LocalizationandMapping)主要用于研究机器人移动的智能化,即在未知的环境中,通过配置激光雷达、红外等核心传感器,帮助机器人实现自主构建地图、自主定位、路径规划及以避障。

基于SLAM 的移动机器人所构建的地图采用栅格来表示,即将整个环境分为若干大小相同的栅格,然后标记出每个栅格是否存在障碍物,再将这些栅格拼接在一起,形成机器人定位、避障的地图。采用SLAM 构建地图的优点在于创建、维护地图数据较为容易,可保留整个环境的信息;利用该地图,机器人可以快速地定位、导航、路径规划和避障。

SLAM地图构建算法(如图3所示)描述如下:

(1)机器人使用环境感知传感器测量地标相对于机器人的距离和角度,记录环境的特征位置,提取特征,在地图上标记,进行数据关联;

(2)机器人运动一段距离后,通过运动方程预测新位置,进行状态估计,估计当前姿态相对于上一时刻姿态的变化量;

(3)机器人在新的位置上,通过环境感知传感器重新测量地标相对于机器人的距离和角度,并通过激光点修正上一步的估计,进行状态更新;

(4)如此反复,机器人将指定区域完整地扫描一遍,记录下整个区域的特征,标注在地图上,完成地图构建。

图3 SLAM地图创建过程

图3 中,R表示机器人的位置,C表示地标,即机器人周围环境中的静止点(或特征点)。当机器人从位置R1移动到位置R5的过程中,通过激光雷达和视觉传感器不断记录地标C1、C2、C3的特征信息,并进行数据融合,然后通过卡尔曼滤波对数据进行预处理,作为整个环境感知传感器的输入;最后,通过SLAM算法构建出地图。本文选取车站办公区域走廊,利用SLAM 地图构建算法,所绘制的地图如图4所示。

图4 SLAM构建地图

图4 中,白色区域为机器人可通行区域,灰色区域为机器人不可通行区域。其中,白色区域中灰色点为障碍物(即地标),当机器人移动到灰黑色点位置附近时,会自动绕过灰黑色点,即实现自动避障。

2.2 基于SLAM的移动机器人自主定位技术

移动机器人精准移动的关键要素之一是可靠的定位性能。目前,机器人定位[8]的方法主要分为自主和非自主定位两类。自主定位是指机器人仅依靠自身的传感器进行定位。非自主定位是指在定位的过程中,机器人需要借助自身以外的装置(如GPS定位系统、北斗定位系统等)进行定位。在室内,因信号遮挡,移动机器人无法使用GPS,安装其它辅助定位系统较为复杂;而基于基站的定位和基于iBeacon的定位,其精度又无法达到机器人移动避障的需求。因此,移动机器人一般采用自主定位的方法。

机器人定位就是在地图上估测机器人的坐标和姿势形态。通过机器人运动状态估测,所得到的位置信息通常具有较大误差,还需要使用测距单元得到周围环境信息,对机器人位置进行更新。测距单元主要包括激光、超声波以及图像测距3种。其中,激光具有良好的指向性和高度聚焦性,因此激光雷达成为移动机器人的核心测距传感器,激光测距技术也是目前最可靠、最稳定的测距定位技术。

采用基于SLAM创建的地图,可以对里程计的误差进行修正,使得机器人的位姿误差不会随着机器人运动距离的增加而无限增加,从而提高机器人的定位精度。

2.3 基于地图的导航技术

移动机器人定位和地图创建是自主导航的基础,机器人的自主导航就是在没有人为干预的情况下,机器人依据预定的信息及传感器获取的外部环境信息,规划出一条适合在该环境中行走的路径,并沿着规划的路径自主移动到目标位置。机器人导航涉及地图、定位、路径搜索、路径规划,其中路径搜索算法决定了导航路径优劣及耗费时间。

2.3.1 改进型A*路径搜索算法

A*路径搜索算法是一种启发式搜索算法,利用估价函数来确定路径中节点的价值,最后再决定如何搜索。A*路径搜索算法的估价函数表示:

其中,f(n)是从初始点经由节点n到目标点的距离估计;g(n)是从初始点到节点n的实际距离;h(n)是从节点n到目标点的最佳路径估计距离。

本文中,估价函数f(n)就是机器人路径搜索,节点是栅格地图中的每个栅格。

h(n)是由“欧拉距离”通过计算节点n到目标点之间的距离所得,而节点n与目标点之间多数情况下可能存在障碍物,可有多种路径选择供机器人行走。为了寻找最短路径,本文采用改进型A*路径搜索算法,通过逆向搜寻最优路径;为提高搜索效率,对估价函数f(n)进行加权处理,令:

式(2)中,KD为D点的搜索权值,D(Xk-1,Ki+KT)表示从当前节点到子节点的距离。式(3)中,D(Xn,G)表示从当前节点到目标点的距离。

算法求解步骤如下:

(1)在式(1)构建的估计函数f(n)中,g(n)表示从起点A(每个点为一个栅格方块)到当前点n的实际距离,h(n)表示当前点n到终点B的估算距离,g值表示从起点A到达当前点n的移动量;

(2)创建open 表、close表、p 表,计算每个点的h值;open 表记录寻找最短路径上所有被考虑的方块;close表记录所有不会再被考虑的方块;p表记录当前节点的父节点;h 值采用“曼哈顿距离”[8]或者“城市街区距离”,计算出点n到目标点B的水平与垂直方块的数量和;

(3)初始化open 表,即把起始点A添加到open表中;

(4)计算f值,在open 表中寻找f值最小的点n;

(5)从open表中将n删除,加入到close 表中;

(6)判断目标点B是否被添加到close表中;若是,则最优路径被找到,跳到步骤(11);若不是,继续下述步骤;

(7)分别考虑与n相邻的每一个格中的点T;

(8)如果点T已经在close表中或不可通过,忽略该方块;

(9)如果点T不在open 表中并且可通过,加入到open表中;然后计算T的f、g值,把点n作为点T的父节点(p(T)=n);

(10)如果点T已经在open 表中,用g值作为参考标准,检查新的路径(A→n→T)是否更优(g值越低表明路径更优);如果更优,把T的父节点改为点n,重新计算T的f、g值;将open 表按f值升序排序,返回(4);

(11)算法结束。

2.3.2 路径规划

机器人导航的路径规划(move_base),就是安排机器人如何从起点到达目标点,导航过程如图5所示。

图5 机器人导航过程示意

机器人在导航时,move_base负责整个导航行为的调度,监视导航状态适时更换导航策略等。具体的路径规划逻辑流程如下:

(1)move_base 首先启动全局规划和局部规划两个规划器,分别生成全局和局部权值地图;

(2)根据全局路径规划,计算出机器人到目标位置的全局路线,即采用基于栅格地图的改进型A*路径搜索算法来寻找最优路线;

(3)通过局部规划,完成局部避障的规划;

(4)机器人在行走过程中,根据其状态做出规划,控制底盘,执行行走动作。

3 试验验证

为了验证改进型A*路径搜索算法的合理性和先进性,选择大连北站作为移动机器人试点车站,进行移动机器人路径搜索、路径规划试验。通过多次试验验证,对传统A*路径搜索算法与改进型A*路径搜索算法的搜索效率进行比较,如图6所示。

从图6可知,采用传统A*路径搜索算法,距离每增加1格,搜索节点个数增加约3个;而采用改进型A*路径搜索算法,距离每增加1格,搜索节点个数增加约1个,改进后的算法效率提高约30%,显著节约了搜索时间,降低了搜索复杂度。

4 结束语

图6 算法搜索效率比较

本文以铁路客运车站移动服务机器人为研究对象,分析国内外移动服务机器人研究趋势,确定了基于ROS的移动机器人软硬件框架,构建基于SLAM的地图,提出改进型A*路径搜索算法,设计了移动机器人的导航框架,并选择试点车站,对该算法进行试验验证;试验结果表明:该算法合理,优化了导航路径规划,提高了最优路径的寻优能力,能够满足在铁路客运车站场景下,机器人自主定位、导航及路径规划的需求。

猜你喜欢

搜索算法移动机器人定位
移动机器人自主动态避障方法
一种基于分层前探回溯搜索算法的合环回路拓扑分析方法
基于粒子滤波的欠驱动移动机器人多目标点跟踪控制
基于backstepping方法的两轮移动机器人轨迹跟踪控制
移动机器人路径规划算法综述
改进的非结构化对等网络动态搜索算法
改进的和声搜索算法求解凸二次规划及线性规划
《导航定位与授时》征稿简则
银行业对外开放再定位
基于莱维飞行的乌鸦搜索算法