ROS系统智能安保机器人设计

2020-02-01 15:23张智勇张学识钟一鸣郑鑫
现代计算机 2020年34期
关键词:树莓激光雷达障碍物

张智勇,张学识,钟一鸣,郑鑫

(北京信息科技大学仪器科学与光电工程学院,北京100192)

0 引言

近几年来物联网发展迅速,局部网络或互联网等通信技术把传感器、控制器、机器等通过新的方式联在一起达到了事半功倍的效果。这也提高了智能机器人的应用范围,在提高生产力和生产效率的同时,也可以利用智能机器人来辅助甚至替代需要人员的工作岗位。在高危行业、重体力行业、高强度工作行业都可以见到各种各样的智能机器人。为了保障2019年的双十一物流效率,各大企业纷纷引进采用机器人对快递进行分类和运输。不光快速高效的物流离不开智能机器人,在仓储防盗方面它也有很大的作用,基于ROS(Robot Operating System)的安保机器人采用树莓派作为主控制中心,激光雷达RPLIDARA1对周围范围内物体位置并进行实时监测。此安保机器人还可在扫描的地图上进行巡逻,在实现仓库循环巡逻的功能的同时还可用摄像头设备对物体或人员进行识别判断。

1 雷达

1.1 构成及连接

RPLIDAR A1主要分为激光测距核心以及使得激光测距核心高速旋转的机械部分。启动子系统后,RPLIDAR A1雷达开始工作,激光测距仪的核心开始顺时针旋转,实现对周围环境的360度全方位扫描测距仪,从而获得周围环境的等高线图。激光雷达的扫描距离数据可以通过RPLIDAR A1的通信接口(串口/USB等)获得。

图1 雷达示意图

RPLIDAR A1拥有自己的速度检测和自适应系统,采用激光三角测距技术,并与自行开发的高速视觉采集和处理机制配合使用,可以每秒执行8,000多次测距动作,并且扫描频率为雷达还将根据实际电动机速度自动进行调整。无需用户为RPLIDAR A1提供复杂的电源系统,从而降低了总成本。外部系统通过通信接口可以得到当前雷达的实际速度。

1.2 工作原理

RPLIDAR A1采用了激光三角测距技术,配合SLAMTEC研发的高速的视觉采集处理机构,全面改进了内部光学和算法系统,采样频率高大8000次/秒,让机器人能更快速、精确的建图。每次测距过程中,RPLIDAR A1将会发射经过调制的红外激光信号,该激光信号在照射到目标物体后激光雷达的视觉采集系统接收处理。经过嵌入在激光雷达内部的DSP处理器实时解析计算,被照射到的目标物体与激光雷达的距离值以及前的夹角信息将从通讯接口中输出。

图2 RPLIDAR A1工作原理

表1 性能参数[5]

表2 通信接口[5]

2 树莓派

ROS安保机器人,是搭建在树莓派3B+的Ubuntu 16.04操作系统下操作控制的。树莓派与PC端在同一局域网下通过VNC Viewer搭建互联平台实现远程操控ROS机器人[1]。在PC端,可以远程输入终端指令,实现ROS机器人的各种运行动作,并且可以视频图像实时传输给PC端。Ubuntu mate是Ubuntu Linux的一个分支,基于桌面环境mate,使用的mate桌面环境源自GNOME 2源代码,该源代码已经停止正式维护。ROS机器人采用多消息主题订阅方式,实现在同一平台上的多命令操作。人机交互是ROS机器人的优点之一,实时传输ROS机器人的硬件数据、视频画面及外界环境数据可以更便捷地得到我们需要的各类数据。机器人可识别已保存好的地图档案信息,进行既定路线自主导航、人工定点巡逻、自主选择最佳路径巡逻监控。如图3所示,为安防机器人的软件设计框架,通过感知执行层的激光雷达获取运动空间地图模型,利用导航控制层实现机器人主控系统和外界环境的信息交换,使用者可以在PC端远程无线监视机器人的监视操作层实现对安防机器人的可视化控制与界面监视。

图3 基本构架图

2.1 激光雷达构建地图的基本方法

ROS安保机器人需要使用激光雷达在陌生的环境下精确构建出地图并做出自身位置的定位,误差要达到厘米级别。激光雷达的工作方式有多种,我们采用SLAM技术进行地图扫描及定位。

安保机器人在未知的工作场地中构建地图的时候,需要人为帮助它在工作场地中行进。此时便需要机器人与PC端无线连接,通过机器人搭载的树莓派3B+自身发出的热点无线信号,便可实现机器人与PC的无线交互。操作者可以在PC端实时监控到机器人的位置和姿态并且能根据地图构建的情况判断下一步对机器人的操控。基于激光雷达的SLAM法只能依靠激光雷达在工作场地中构建地图环境和自身定位,而机器人在自身定位的时候需要使用车轮转动的时间、速度和车身的旋转角度等数据作为辅助参考[2]。因此,机器人需要人为操作它在工作空间内避障运动,这样可以使地图构建以及机器人自身定位的数据更精确,方便之后自动导航时对自身位置的精确判断。地图构建依赖于激光雷达,其中包括单光束窄带激光器和接收系统。单个窄带激光器发出光脉冲,该脉冲撞击到对象并将其反射回去,最后被接收系统接收。接收系统可准确地计算光脉冲从发射到被物体反射回的光传播时间。因为光脉冲以光速传播,所以接收系统总会在下一个光脉冲发出之前收到前一个被反射回的脉冲。假定在给定的介质中确定了光速,则可以将计算传播时间转换为距离的度量。结合激光的高度和激光扫描的角度,可以精确计算出地面上每个点的坐标x和y。

2.2 基于激光雷达的自动导航方法

根据已完成的工作地点,ROS机器人可以自动规划路径以避开障碍物并进行导航。人工操作构建地图之后,机器人会保存一份原始的地图信息,自动规划路径时机器人会基于已保存的地图信息计算出最优路径。在自由航线巡航期间,激光雷达将连续扫描周围环境。当激光雷达扫描到动态物体或未知障碍物时,机器人会根据局部动态信息快速确定运动的方向和速度。当避障行为的优先级高于沿原规划路径行进的优先级时,避障规划模块就能够通过对比获得运动执行系统的控制权,使得机器人按照避障系统重新规划的路径进行避障运动。完成对当前障碍物的躲避行为后,路径规划模块再次取得执行系统的控制权,使得机器人重新回到全局规划路径上,继续按着先前规划的路径运动。

2.3 人脸识别模块的工作原理

机器人搭载高清RGB彩色摄像头,可实现图像采集功能。在构建人脸面部数据库的时候,需要在不同时间、不同光照、不同面部表情、不同面部细节的多种环境下采集较多的面部图像,然后将图片信息转化成数字信息,并人工将人脸库导入到机器人的存储系统中,以供人脸识别模块工作的时候可以随时调用数据库中的人脸特征点面部数据[3]。图像采集完成后要重新测试人脸识别模块,该操作主要是消除信息转变过程中的算法误差,使得正式使用人脸识别模块时能快速精确地与数据库信息进行比对并输出正确的比对信息。

3 程序框架

ROS安保机器人,是搭建在树莓派3B+的Ubuntu 16.04操作系统下操作控制的。树莓派与PC端在同一局域网下通过VNC Viewer搭建互联平台实现远程操控ROS机器人。在PC端,可以远程输入终端指令,实现ROS机器人的各种运行动作,并且可以视频图像实时传输给PC端。

Ubuntu Mate是基于桌面环境Mate的Ubuntu Linux的官方派生产品,该桌面环境Mate源自已停止官方维护的GNOME2源代码。在ROS机器人中使用多消息主题订阅,可以实现在同一平台上同时执行多个命令的操作。人机交互是ROS机器人的优点之一,实时传输ROS机器人的硬件数据、视频画面及外界环境数据可以更便捷的得到我们需要的各类数据。

ROS安保机器人在SLAM地图构建完成之后,订阅地图导航节点话题,借助激光雷达的辅助,可以实现自动导航运动功能。在ROS安保机器人导航的同时,可以实时传输视频画面并开启人脸识别功能。当遇到“坏人”的面部图像之后,ROS安保机器人可以触发安保装置工作单元,实现对“坏人”的攻击工作。

图4 总体流程图

比赛中采用地图加障碍物的形式模拟现实环境,并将“坏人”的面部图像贴至气球前,让ROS安保机器人自动识别“坏人”面部特征并实现自动导航扎破气球的功能。这需要ROS机器人多话题多消息的互联互通完成,要求ROS机器人可以准确构建地图,精准快速地识别面部特征,有序执行程序命令,进而达到安防的目的。

4 系统测试

在导航系统的设计中,我们主要使用了ROS系统中的三个工具包:move_ubase、gmap和AMCL。其中,move_uBase工具箱用于使ROS安全机器人在指定地图范围内移动到目标位置;映射工具包用于从激光雷达收集的数据中绘制地图;AMCL工具箱用于定位机器人在当前地图中的相对位置。

4.1 使用move_base包进行路径规划和障碍物躲避

move_base工具包实现导航,移动到指定目标的ROS行为,在移动过程中会对比已探测的障碍物和已被标记成未知的区域,ROS安保机器人会根据传感器数据,选择合适的线速度和角速度让机器人移动到相应位置。

4.2 使用gmapping包创建地图

在ROS中,地图是一张位图,表示空间网络被占据的情况,其中白色像素表示没有被占据的网格,黑色像素表示障碍物,灰色像素表示未知点。由于ROS安保机器人配有机器视觉传感器,所以机器人在其规定范围内人工干预控制行动时可以自行创建地图。运行时让机器人在一个封闭区域内活动,同时记录激光雷达测量的数据并放入ros bag文件中,然后运行SLAM节点生成一张地图。设计制作的ROS安保机器人能够有效实现自主导航和人脸识别等功能,这样的功能可以大大简化日常使用中工作流程,能够有效地将机器人所获得的信息与实际情况结合起来,实行安防。经过测试生成的地图如图所示,ROS安保机器人在指定地图进行自动导航,同时自动识别“坏人”面部特征并实现自动“攻击”。

图5 地图创建

图6 地图创建

图7 面部识别

4.3 使用amcl包导航和定位

amcl工具包用于让机器人在已录入的地图里利用机器视觉传感器中得到的数据进行定位。在设定初始方位时,可以在RViz可视化工具中在地图上确定ROS安保机器人的位置,当确定机器人位置时会出现一个绿色箭头,调整箭头方向和ROS安保机器人方向一致。当ROS安全机器人移动时,界面上的机器人将被绿色箭头包围。为了验证所涉及的导航系统能够实现在未知环境下的定位与导航功能,接下来对ROS安保机器人的障碍物躲避能力进行了测试。距离障碍物一定距离外启动ROS安保机器人,在机器人已规划的运动路径内放置障碍物。在测试过程中,机器人将按照计划的路径在障碍物之前行进,然后重新规划路径以避开障碍物,最后继续移动至目标。

图8 地图中定位和巡航

在正式进行系统测试时,首先将ROS安保机器人放入特定的地图框架中,之后进行创建地图的工作,通过人工控制机器人移动,在RViz可视化工具中规划出现实中整个地图的框架,利用激光雷达及传感器,记录激光雷达测量的数据并放入ros bag文件中,然后运行SLAM节点生成一张地图。在生成地图后,进行了下一步图像传输及人脸识别,预先将“坏人”的面部图像进行图像传输录入,不断改变ROS安保机器人所在位置,以便于机器人更好进行识别,并将图像存到库中。最后,把ROS安全机器人放在起点。在rviz可视化工具中,单击地图上的鼠标左键时,将显示一个绿色箭头。移动鼠标,使箭头方向指向要识别的“坏人”气球方向,之后机器人会进行自主路径规划,并进行自动导航定位[4]。在接近“坏人”气球时,打开人脸识别功能,ROS安保机器人会自动根据库中保存的图像识别出“thief”,并进行自主移动,接近坏人达到安防目的。

5 结语

本文介绍了一种安保机器人设计方案,基于ROS并以树莓派为上机位控制中心,通过激光雷达构建周围地图。应用自身视觉传感器以达到安保的目的。ROS机器人的扩展性强,而且可以进行模块化编程,提高了安保机器人的应用范围。安保机器人技术的基础是地图构建和定位,在执行任务过程中可以将识别到的人脸与数据库中的人脸进行识别以达到对特定区域监管、人员识别的目的。而且还可以通过无线连接接收机器人的画面和位置信息,当识别到数据库中的人脸时还可以给监控人员进行反馈。相比于传统的固定摄像头,它的灵活性更高,根据场地可以构建地图自主移动从而解决了传统摄像头有监控盲区的问题。同时他又可以对人脸进行识别又节省了安保人力。安保机器人的灵活性和安保效率上都有很大优势。

猜你喜欢
树莓激光雷达障碍物
激光雷达实时提取甘蔗垄间导航线
法雷奥第二代SCALA?激光雷达
融合激光雷达与超声波数据的障碍物检测方法
Ouster发布首款全固态数字激光雷达
高低翻越
赶飞机
月亮为什么会有圆缺
黄金水果红树莓
树莓红了 游人醉了
e络盟率先推出第三代树莓派