一种模拟激光雷达的自主移动机器人虚拟墙方法

2020-10-22 01:13马小陆袁书生吴紫恒
导航定位学报 2020年5期
关键词:移动机器人激光雷达障碍物

马小陆,袁书生,王 兵,吴紫恒

(1. 安徽工业大学 电气与信息工程学院,安徽 马鞍山 243000;2. 特种重载机器人安徽省重点实验室,安徽 马鞍山 243000)

0 引言

基于机器人操作系统(robot operating system,ROS)自主移动机器人已经被广泛地应用到工业、农业、国防、航天和服务等行业中[1]。自主移动机器人首先需要构建其移动的环境地图,然后由自身传感器(如激光雷达)数据、初始位置和航迹推演算法来得出机器人的位姿并进行导航。为提高自主移动机器人的安全性,实际使用中的自主移动机器人必须解决如下的关键问题:一些特定区域,如楼梯、陡坡等,要求自主移动机器人不能经过这些区域。即要求移动机器人在路径规划时,将这些区域屏蔽,常用的方法是通过设定虚拟墙来阻止移动机器人进入。

当前,设置虚拟墙的方法主要是引导式虚拟墙,引导式虚拟墙的一般方法是在需要屏蔽的区域入口处设置“灯塔”来阻止机器人对该区域的访问,这里的“灯塔”指的是在该区域设置某种传感器,如磁条传感器。这种方法常用在扫地机器人中,当扫地机器人在接近磁条区域时,机器人会监测到磁条,依据磁条位置信息,控制算法会对机器人进行降速并重新规划局部路径来绕过该区域。此外用的比较多的还有红外、视觉等传感器,文献[2-3]中的扫地机器人使用红外传感器设置虚拟墙;文献[4-5]通过相机提取虚拟边界来设置虚拟墙;文献[6]对屏蔽区域照射红色激光;文献[7]对屏蔽区域用白色布基胶带进行环绕,然后通过视觉传感器来识别虚拟墙;文献[8]使用深度相机对要屏蔽的空间位置设置虚拟墙,用以监测行人是否处于安全区域。

这些引导式虚拟墙在实际应用中取得了较好的效果,但在实际应用中,存在如下问题:屏蔽的区域处要安装传感器(有些区域不适合安装);因传感器存在感知范围,则传感器的安装位置的选取非常重要,特别是一些不规则的屏蔽区域,基于引导式虚拟墙的方法难以实现。

针对上述问题,提出1 种基于模拟激光雷达的ROS 自主移动机器人虚拟墙方法。该方法在ROS环境中,对需要设置虚拟墙的区域使用激光雷达数据模拟该区域的屏蔽墙;同时在ROS 的导航架构中作为路径规划的输入模块,使得自主移动机器人在全局路径规划时不会进入该区域。

1 基于ROS 的自主移动机器人的环境地图

有关机器人地图的表现形式,国内外学者提出了多种表示方法,大致可以分为3 类:1)几何信息表示法;2)拓扑图表示法;3)栅格图表示法[9]。基于ROS 的自主移动机器人的环境地图一般常采用占据栅格地图(occupancy grid map,OGM)表示法。

在通常的尺度地图中,对于1 个点存在2 种情况:有障碍物(即occupied 状态,用1 表示)和无障碍物(即free 状态,用0 表示)。在占据栅格地图中,对于1 个点s,使用p(s=1)来表示free状态的概率,用p(s=0)来表示occupied 的概率,2 者之和为1,因1 个点使用2 个值的表达较麻烦,可以使用这个2 个概率的比值Odd 表示为

Odd 值越大,表示空概率越高。

对于1 个点,新的测量值为z={0,1},测量值也在这个点上有概率计算,由条件概率公式,比值公式更新为

在新的测量事件条件下,空的概率、占据概率根据贝叶斯公式可得:

将式(3)和式(4)带入式(2),同时2 边取对数得到

若使用log Odd(s)来表示位置s 的状态S 的话,则地图中的更新规则可为

式中:S+表示的是当前时刻位置s 的状态;S-表示之前一时刻位置s 的状态。

在使用激光雷达传感器构建地图时,激光雷达传感器实时获取测量数据(观测值),然后依据式(8)对占据栅格地图中的点的占用概率进行更新。

在初始状态下,1 个点的初始状态为

网格占用概率更新示例如图1 所示。

图1 网格占用概率更新示例

图1 中,机器人底盘上射出1 条激光束,被挡住的网格标为深色,并且中心有黑点,表示激光束打在该网格的障碍物上,光束被挡住即表示该部分被物体占据,假设传感器测量模型值:占用为0.9,空闲为-0.7。由式(9)可知,栅格初始值S 为0。从t0到t1时刻,图1(a)所示的激光束在穿过5 个栅格后被第6 个栅格挡住,在观测值z=1 的情况下,S=0+0.9=0.9,于是被挡住栅格占据率更新为0.9,在z=0 的情况下,S=0-0.7= -0.7,顺利通过的那5 个栅格占据率更新为-0.7。如图1(b)所示,从t1到t2时刻,再次根据激光雷达扫描的数据来更新,图1(b)中又有3 个新的被激光束通过的网格占据率更新为-0.7,1 个新的挡住激光束的网格更新为0.9,而有3 个上次通过激光的网格在这次通过激光束之后,其占据率S=-0.7-0.7=-1.4。就是通过这样的方式来对网格的占据率进行更新,通常在这里会对占据率的数值设置2 个阈值,上限阈值和下限阈值,假设这里设置的下限阈值为-2,在t2时刻有3 个点占据率为-1.4,当下1 次测量时,激光仍然通过该网格,那么该网格占据率数值就S=-1.4-0.7=-2.1,由于设置了下限阈值,该网格占据率为-2.0,同理上限也是这样。

依据以上原理,可以得到地图上已经探测到的各个部分是否被占据,即该区域是否有障碍物,从而得出地图中的各种信息,包括障碍物的位置以及轮廓等。

在移动机器人导航时,首先要载入环境地图,环境地图中包含整个环境的信息,主要是障碍物的分布等,它是以1 张图片和配置文件形式保存的。地图配置文件中主要有的参数有地图名、分辨率、初始位置、完全占据阈值、完全空白阈值等。

而移动机器人实际使用的环境地图是以灰度值形式表现的,因此还要进行“占用概率-灰度值”之间的转换。转换方法如图2 所示,当灰度值大于等于完全占据阈值时(黑色部分),表示该部分是有障碍物;当灰度值小于等于空白阈值时(白色部分),表示该部分无障碍物;而当阈值介于2 者之间时(灰色部分),表示该区域为未知区域。但在移动机器人行走过程中,该部分的占用率会更新,若发现该区域并没障碍物时,机器人可以移动到该区域,同时会更新地图。

图2 基于ROS 的移动机器人环境地图

2 基于ROS 的自主移动机器人的代价地图

第1 节介绍的环境地图在基于ROS 的移动机器人路径规划中被称为代价地图,也被称为单源代价地图,早期的ROS 工程中,普遍采用这种代价地图。但因存储空间有限,地图的更新存在问题。文献[10]提出了分层代价地图,如图3 所示,从下到上依次为静态地图层、障碍物层、膨胀层以及主控地图层。

图3 分层代价地图

ROS 中分层代价的地图层主要分为3 层,即新功能层、人机交互层和标准地图层。

新功能层是在分层代价地图中添加了更加复杂的某些功能,比如声呐层的分层代价地图就增加了如何处理声呐数据的选项;人机交互层使得人与机器人之间交互更加有效,比如过道层,在不同国家,行人有靠不同侧行走的习惯,文献[11]在人机交互层中就使用了类似的模型,使得机器人在走道里偏向于右侧移动;标准地图层是分层代价地图中最为基础的图层,前面介绍的新功能层和人机交互层在应用中不一定有,但标准地图层一定会存在,标准地图层主要分为静态地图层、障碍层、体素层和膨胀层。静态地图层是接收第1 节中的环境地图数据,返回1 个覆盖整个地图的边框,该地图层是静态的,因而其边缘的尺寸在后续的迭代中是不会增大的;障碍层从高精度的传感器(激光雷达或RGB-D 等)获取数据,并将其放置于网格中,传感器的数据如第1 节所述的对占据栅格进行更新,在每个更新周期将新的传感器数据放入图层的代价地图中,且边缘会自适应扩展;体素层和障碍层的功能相同,但体素层是以3 维的形式跟踪传感器数据,文献[12]介绍的3 维体素网格方法,能够更加智能地检测障碍物,可以观测障碍物的多个高度信息;膨胀层,实际上是障碍层或者静态层外侧加入1 段的缓冲区域,如图4所示。

图4 膨胀层示意图

图4 中,黑色线条的为静态图层中的墙壁和障碍物,围绕其外层的浅灰色1 圈为膨胀层。

3 模拟激光雷达虚拟墙原理

本文提出的激光雷达模拟虚拟墙的原理,是通过在ROS 环境中模拟发送激光雷达数据,以这个激光数据来模拟激光传感器打在墙壁上的状态,这样在障碍层和膨胀层就会加入障碍物的数据。

对于ROS 的路径规划来说,首先会有个全局路径规划,这主要是依据静态地图层得出的路线,然后机器人还有1 个局部路径规划,局部路径规划会通过激光雷达等传感器的数据实时动态规划出1 条拟合向全局路径的路径,这样移动机器人就能从起点导航到目标点,具体步骤如下:

ROS 的Map_Server 启动时,会将静态地图层和膨胀层加入,主要是整个环境的边框、已经探测好的墙壁和一些静态障碍物;

当全局路径规划器接受了1 个目标点坐标后,根据静态地图层和膨胀层以及当前传感器所探测的范围内的障碍层和膨胀层(传感器有个测量范 围)信息就会规划出1 条从当前位置到目标点位置的全局路径;

这条全局路径接着会交给局部路径规划器,局部路径规划器通过对规划好的全局路径进行分段裁剪,然后再依据传感器检测到的动态障碍物进行动态规划,将规划的结果交给底层执行部分来进行控制,经过一段一段的控制,最终机器人会从起点走到目标点。

而在有虚拟墙条件下,基于ROS 的路径规划架构如图5 所示。

图5 基于ROS 的路径规划架构

图5 中深色模块为模拟的虚拟墙,可见它也是作为整个路径规划的输入部分。 ROS 的Map_Server 启动后,就将激光模拟虚拟墙初始化,并且设置成不清理的状态,这样虚拟墙就会一直存在于该处。不像实际激光雷达探测到的动态障碍物,当机器人的传感器探测范围已不在该区域时,该障碍物就在地图上去掉。这样的虚拟墙就如同是静态障碍物,在全局路径规划器规划出的路径时就已经绕开虚拟墙屏蔽的区域。

而对于其他方法设置的虚拟墙,全局路径规划时不会考虑虚拟墙区域,它只会影响局部路径规划。因此这些方法的缺点是:只有当虚拟墙在局部路径规划器有效范围内时,才会重新规划局部路径绕开虚拟墙区域,因此规划出来的路径速度会更缓慢,且由于突然规划出绕开虚拟墙区域,规划出的路径相对来说比较的曲折。

本文提出的模拟的虚拟墙在全局路径规划时就考虑到该区域,因此规划出的路径会更加平滑。

4 实验与结果分析

4.1 实验平台

实验平台为实际使用的移动机器人底盘,其系统架构如图6 所示,图6 中箭头表示数据的流向,实线连接表示物理上存在连接。

图6 移动机器人底盘系统架构

实验平台主要分为3 个部分,即底盘运动控制部分、中间决策部分、监测部分。底盘运动控制部分,主要采用STM32 单片机来处理来自决策部分的控制命令,主要有机器人速度的控制,编码器、惯性测量单元(Inertial Measurement Unit, IMU)等各种传感器数据的采集以及上传,底盘运动控制部分和中间层通过RS-232 接口来进行数据交换。中间决策部分是1 台搭载了Ubuntu16.04 的x86 工控机。在该系统上已搭建好ROS 环境,主要负责机器人的实时定位、路径规划等运算量比较大的部分。上层监测部分使用的是1 台已经搭建好ROS环境的笔记本电脑,该电脑通过无线网络接入整个系统,这样可通过远程的方式对决策部分下发命令,同时可以实时监控导航的效果。移动机器人的底盘的实物如图7 和图8 所示。

图7 机器人底盘实物外部

4.2 实验过程

实验的环境为所在的实验室,其扫描得出的环境地图如图9 所示。为了更好地验证本文设置虚拟墙的方法的有效性,实验分为3 个部分:

图8 底盘实物图内部

图9 实验环境地图

1)不设置虚拟墙,查看从起点到终点的规划出来的路径以及导航的结果;

2)将虚拟墙设置在1)中规划出的路径上,查看此时规划的路径以及导航结果,同时增加虚拟墙的长度到封锁整个无障碍区,查看此时的结果;

3)设置复杂区域(此处设置的是个方形区域),查看复杂区域的虚拟墙效果。

图10(a)为第1 部分的实验结果;图10(b)、图10(c)及图10(d)为第2 部分的实验结果;图11为第3 部分实验结果。

图10 中,起点为椭圆形圈起来的黑色圆点,目标点为椭圆形圈起来的带有方向的箭头(表示位置和方向),图10 中设置的虚拟墙是以矩形框圈起来部分,全局路径为图10 中标注的从起点到目标点的线条,局部路径为图10 中标出的从起点引出来的小段线条。

对比图10(a)、图10(b)可见,图10(b)设置的虚拟墙,移动机器人不是在到达附近才绕开的,在全局路径开始就已经绕开了设置的虚拟墙区域,因而要比其他类的虚拟墙由局部路径规划才绕开 虚拟墙得到的路径要平滑,达到了预期的效果。

图10 第1 部分和第2 部分实验结果图

图10(c)和图10(d)中,将虚拟墙进行延伸,使用虚拟墙把整个实验室完全隔开,在虚拟墙的另一侧的多个地方下发目标点。这里只保留2 个点的结果,图10(c)和图10(d)显示的为目标点1 和目标点2 下发之后的结果。会发现并没有出现规划的路径,这是因为整个虚拟墙将实验室分成2 个独立的部分,无法找到能过去的地方,所以并没有出现路径,此时的机器人行为则表现为原地转圈,转圈用来尝试清理障碍物后,最后还是发现寻 找路径失败,则放弃此次的导航。

在第3 部分实验中,主要针对复杂区域的虚拟墙,要屏蔽的区域为方形区域,如图11 所示,图11 中的虚拟墙隔离的方形区域已用椭圆形圈出来。

由图 11(a)可知,全局路径和局部路径因要绕开设置的虚拟墙区域,其规划的路径明显弯向虚拟墙围成方形区域的另一侧。图 11(b)将机器人置于虚拟墙圈的区域内,在区域外下发导航点;图11(c)将机器人置于虚拟墙围成的区域外,导 航点放在隔离区内。发现这2 次都没有出现规划路径,并且机器人的行为也是原地转圈一段时间后机器人停止运动,在监测端出现如图11(d)中的放弃导航结果的提示。

图11 第3 部分实验结果图

5 结束语

本文提出了1 种基于模拟激光雷达的ROS 自主移动机器人虚拟墙方法,该方法在ROS 环境中,对需要设置虚拟墙的区域使用模拟的激光雷达数据模拟该区域的屏蔽墙,且作为路径规划的输入模块。并进行了实验验证,通过在无虚拟墙时规划的路径处设置虚拟墙,查看此时路径规划的结果及导航效果,以及在此基础上对虚拟墙进行延伸至分割地图,查看此时虚拟墙的效果。此外,还通过虚拟墙来隔离整个区域,在此基础上,对整个区域,内部隔离、外部隔离的效果都分别进行了实验验证。实验结果表明,该方法能够很好地实现虚拟墙的功能。该方法不用在屏蔽区域安装传感器,成本低;同时该方法不受屏蔽区域的形状的影响,具有设置灵活的优点。

猜你喜欢
移动机器人激光雷达障碍物
移动机器人自主动态避障方法
激光雷达实时提取甘蔗垄间导航线
基于粒子滤波的欠驱动移动机器人多目标点跟踪控制
法雷奥第二代SCALA?激光雷达
移动机器人路径规划算法综述
融合激光雷达与超声波数据的障碍物检测方法
Ouster发布首款全固态数字激光雷达
高低翻越
赶飞机
月亮为什么会有圆缺