APP下载

基于ROS 的仓库巡逻机器人设计

2019-10-22瞿志二吐鲁逊江克热木袁良祺付建君田畅

现代计算机 2019年23期
关键词:树莓激光雷达仓库

瞿志二,吐鲁逊江·克热木,袁良祺,付建君,田畅

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

0 引言

随着人工智能等关键技术广泛应用,智能机器人发展迅速,其在提高生产效率与品质的同时人类体力上得到了极大的解放。在制造业、物流行业、农业、交通运输业、医院、银行、娱乐等领域以及日常生活中都能够见到各种应用机器人;如机场、车站的安全巡逻机器人,商场、超市的服务机器人,社区的安保机器人等;未来还将有农业机器人、道路交通执法机器人问世。智能机器在实际生活领域的运用越来越多,智能机器与人类社会的联系越来越紧,如何将机器人运用在各个行业中便成为了机器人领域发展的重中之重。

基于ROS(Robot Operating System)的仓库巡逻机器人采用卡片式电脑树莓派作为上位机控制中心,激光雷达RPLIDARA1 采集周围环境信息进行绘制地图,结合温度传感器、火焰传感器、烟雾传感器和热释电传感器等传感器检测外部环境。此仓库巡逻机器人事先学习并记录,以仓库外部构造为主体,仓库内部环境为核心,在实现仓库循环巡逻的功能的同时对于仓库的温度、湿度、烟雾、外来物体等信息进行阈值判断实现警告功能。

1 硬件结构设计

1.1 仓库巡逻机器人硬件组成

ROS 系统是控制机器人的一个框架,包含各种用于控制机器人的软件包,在编写机器人程序时,修改参数或者直接引用即可。每个执行程序可以独立设计,然后在运行时松散、实时的组合起来[2]。

巡逻机器人系统采用树莓派控制器作为控制核心平台,利用激光雷达采集环境信息,在ROS 分布式框架下进行软件算法的开发,实现基于扫描匹配算法的SLAM 功能、基于最优路径算法路径规划以及基于粒子滤波算法的导航功能[3]。

巡逻机器人采用卡片式电脑树莓派作为上位机控制中心来驱动整个机器人,激光雷达RPLIDARA1 采集周围环境信息进行绘制地图以避免障碍物。它具有SLAM(Simultaneous Localization And Mapping)功能,同步定位与地图构建[4]。摄像头能够把视频图像传输给监控中心。通过九轴运动处理传感器获取外界环境结合坐标系统进行坐标转换。传感器电路把外界信息提供给树莓派并判断外界环境情况。利用Arduino2560作下位机进行电机的驱动,采集电机编码器的数据发送给树莓派。报警电路根据树莓派获取到的传感器信息来进行报警。如图1 所示为仓库巡逻机器人的硬件系统。

图1 巡逻机器人的硬件系统

1.2 核心控制器

机器人的核心控制器是由英国慈善组织开发的基于ARM 架构的可以运行Linux 操作系统的卡片式电脑。ROS 机器人系统运行在基于Linux 内核的Ubuntu Mate 操作系统上。本文设计的仓库巡逻机器人上的树莓派是CPU 四核1.2GHz,内存1GB RAM,4 个USB接口,40 个GPIO,HDMI 接口,相机端口,TF 卡端口。除了树莓派,还有下位机ARDUINO2560,它可以驱动四个电机并把电机上编码器的数据发送给树莓派,树莓派上ROS 系统通过PID 来控制小车的运行。

1.3 激光雷达

机器人探测地图定位导航建立在激光雷达技术基础之上,本文设计的机器人上采用的是SLAMTEC——思岚科技研发的RPLIDAR。发动指令驱动rplidar_a1内电机运转,360 度发射激光并接受反射,得到的距离数据间隔为1 度,将360 度的数据以串口的形式发送给上位机,上位机软件解析协议,并转化成ROS 下标准的激光雷达数据格式Laser,通过/scan 这个主题发布。激光雷达是通过向目标发射激光束再接收目标反射的光束来测量与目标的距离等参数,并且基于三角测量原理,利用障碍物远近不同的反射角度测量距离建立地图。激光雷达是一种主动传感器,不受外界环境的影响,可以对环境的不确定性、时变性进行自适应调节,采集信息可靠,有利于机器人障碍检测[4]。TF 是一种可以提供给使用者进行调用的功能包,允许使用者跟踪数个参考系的数据,其利用树状数据结构在不同参考系的坐标之间进行缓冲并更新数据。

1.4 其他模块

巡逻机器人可以添加其他传感器,例如摄像头来获取图像信息、温度传感器检测外部环境温度、烟雾传感器检测烟雾浓度、热释电传感器检测红外线辐射等。机器人电源为充电电池,续航时间为3 个小时,电池电量过低时会有电压检测装置提示需要充电。mpu6050 是九轴传感器,包括重力加速计、陀螺仪和电子罗盘里程计。主要作用是获取加速度、角速度,通过I2C 将数据发送给树莓派,树莓派结合二者求出姿态四元数,在TF 坐标转换中进行运算。

2 软件设计

ROS Master 是ROS 的调度中枢,可以看作是一个服务器,其余节点是发布者或订阅者[5],通过话题或者服务来进行交流。在监控操作层,通过装有Ubuntu 的系统连接巡逻机器人,在监控界面能够获取巡逻机器人的相关信息。巡逻机器人的核心为装有ROS 的Ubuntu 系统。使用者通过监控界面,控制巡逻机器人进行巡逻监控;巡逻机器人通过视频图像传输节点获取当前的图像,并且利用运动节点控制巡逻机器人运动,并建立地图档案信息。巡逻机器人通过保存好的地图档案信息能够进行自主导航、定点巡逻、自主选择最佳路径巡逻监控。如图2 所示为仓库巡逻机器人软件框架,通过感知执行层获取外部信息的获取,利用导航控制层实现内外部的信息传输,使用者通过监视操作层实现对巡逻机器人的控制与监视。

图2 仓库巡逻机器人软件框架

判断仓库中是否有外来物体的侵入,仓库中的物体他是否发生过移动,可以采取差影法进行检测。差影法实际上是对图像进行代数运算的一种不同的叫法,代数运算是指对两幅输入图像进行点对点加、减、乘、除计算而得到输出图像的运算[6]。本文运用到的是图像的减运算方法,对两张图像进行差值处理,删除图像中相同的部分(背景信息)留下不相同的部分(外来信息)。其目的是为了过滤掉图像中所不需要的部分信息只保留关键信息部分,再对差值处理后的图像进行开运算或者滤波等操作。这样的处理方法首先可以减少背景信息的干扰,利于使用者对于关键信息的处理;其次也减少了由于摄像机抖动或者外部干扰因素的影响。

一般实际生活中采取间隔时间拍摄图像对比的方法进行差影分析,例如银行金库、森林火灾、水库水位等等情况的发生,差影法在实际生活中的自动现场监测应用非常广泛。若A(x,y)为库中保存的原始背景图像、B(x,y)为摄像机输入图像,C(x,y)为系统输出图像,则三种图像的关系可以通过差影法公式(1)来表示:

3 系统测试

3.1 建立巡逻地图

设计制作的巡逻机器人能够有效实现巡逻、自主导航和运动控制等功能,这样的功能大大的简化了工程师在实际运用时的工作量,能够有效的将机器人所获得的信息与实际情况结合起来实时获取外界环境信息的,查看机器人所拍摄的视频图像,建立循环地图,方便工程师监控并设置机器人行走路线,且根据使用者需要自由的设置巡逻路线。经过多次试验,生成了实验室的地图如图3 所示,建立的图像为巡逻机器人可以进入到的位置,这种地图不具有普遍性,当且仅当此巡逻机器人可以探测到的巡逻位置。

3.2 检测外来物体

智能巡逻机器人巡逻并检测外来物体可以利用差影法进行处理,检测系统的判定如图4 所示,可以检测到图像的变化且能直接提取出在背景中掺杂外来物体。如图4(a)所示是仓库巡逻机器人先将某一个场景的信息以事先学习并记录的图像或视频形式保存在库中。当巡逻机器人巡视到某个地方时,拍摄此处的图像并与库中的信息进行对比,当超过某个阈值时产生报警信息。如图4(b)所示为某个场景中进加入了外来物体,此时将图像与库中的信息进行对比如图4(c)所示为背景与加入外来物体图像的差值图片。单片机将得到图像的差值进行灰度变化计算,就可以利用图像的灰度值大小来设定阈值。

图3 巡逻导航测试

图4 利用差影法检测外来物体判定

4 结语

本文提出了一种基于ROS 的仓库巡逻机器人的系统设计方案。以树莓派为核心控制器,利用激光雷达获取外界环境信息建立地图,实现SLAM 功能。其他传感器获取外界环境信息达到巡逻警戒目的。ROS的设计加快了机器人的模块化编程,提高了代码复用率。仓库巡逻机器人的技术关键是地图构建和定位导航,在特定位置将拍摄到的图像与库中存储的图像进行差影法处理,初步实现进行室内监控、巡逻、报警等功能。巡逻小车机器人的实现主要是将静态多摄像头转换为动态单摄像头的实现,这种方法一般性的将监控报警功能实时的流动在多个区域,可以实现流动监控、动态监测的功能,与传统的静态摄像头相比灵活性高、自由性强、监控强度大、监控区域广、监控细节多的优点,实现了动态智能巡逻功能。

猜你喜欢

树莓激光雷达仓库
仓库里的小偷
手持激光雷达应用解决方案
法雷奥第二代SCALA?激光雷达
填满仓库的方法
四行仓库的悲壮往事
基于树莓派的骑行智能头盔设计
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
基于树莓派的远程家居控制系统的设计
响应面法优化红树莓酒发酵工艺