APP下载

基于ROS系统的仓库巡逻机器人*

2022-02-18陈凯凯阳映雯彭俊豪王世超付天应

南方农机 2022年4期
关键词:激光雷达仓库摄像头

陈凯凯 , 邓 鹏 , 阳映雯 , 彭俊豪 , 王世超 , 付天应

(荆楚理工学院电子信息工程学院,湖北 荆门 448000)

0 引言

随着人工智能技术与机器人关键技术的发展[1-2],智能机器人的发展也随之加快,同时机器人的发展减少了企业在人工方面的投入,提高了企业生产效率与产品质量。在智能制造、智能物流、智慧农业、智能交通等领域都大量应用了机器人,在日常生活中也可见服务型机器人,如在超市、医院、警用、机场、火车站、银行等所使用的服务型机器人。

基于ROS(Robot Operating System)系统的仓库巡逻机器人以工控机为核心,驱动一体控制器为上位机控制中心,通过激光雷达采集外部环境信息来绘制地图,并结合各类传感器进行巡逻,如温度传感器、湿度传感器、烟雾传感器和火焰传感器获取外界环境参数。该仓库巡逻机器人通过激光雷达构建仓库巡逻地图,同时对仓库内的温度、湿度、烟雾、火情及外人进入进行判断,实现报警的功能。

1 硬件结构设计

1.1 硬件系统的搭建

机器人操作系统ROS具有点对点、免费的开源软件包等特点,同时机器人操作系统ROS作为机器人软件开发平台可以提供不同机器人的软件包,使开发者可将原有的软件包进行改写、修改参数和直接引用;将原本松散的框架进行耦合,为他们提供通信框架。ROS操作系统中适用的编程语言也非常丰富,如C++、python和java等,为消息之间的相互交互提供高效的支持。而在机器人编程中主要采用的是C++和python语言编程。ROS是通信机制、工具软件包、机器人技能和机器人生态系统的集合体。而现在ROS已被多种机器人在研究开发中使用,如服务型机器人、无人机、移动机器人等相关机器人。

仓库巡逻机器人系统其上位机为工控机,且以工控机为核心控制器的卡片式电脑作为控制核心平台,在ROS的软件开发框架下可通过激光雷达采集外部环境信息,实现可以集扫描、SLAM和最优路径规划为一体的导航功能,通过其他传感器对仓库内外环境进行扫描与检测,将信息传输到驱动一体控制器,最后通过驱动一体控制器将数据传输到工控机后,通过工控机再传输给监控界面,进而实现仓库巡逻机器人的巡逻、监控、报警等相关功能,同时对自身防撞与防跌进行防范。仓库巡逻机器人硬件系统框架图如图1所示。

图1 仓库巡逻机器人硬件系统框架图

1.2 二维激光雷达

机器人定位导航、物体环境建模均建立在激光雷达所采集的信息的基础上[3-4]。本设计的仓库巡逻机器人采用思岚RPLIDAR A1激光雷达。测距范围为15 cm~600 cm,扫描角度为0~360°,扫描频率为5 Hz~15 Hz。发送指令控制机器人电机驱动,通过激光雷达360°发射激光并接收激光信息,将激光雷达数据和机器人运动的坐标变换关系TF再以串口的形式传递给上位机,通过上位机来发布地图信息。激光雷达是通过发射器发射激光束并接收目标反射的激光束来对目标进行测量距离的,并利用三角测距的原理,推算出目标或被测物体的距离并生成平面点云地图信息,进而建立巡逻地图。激光雷达对环境的要求比较低,基本不受外界环境的影响,同时激光雷达测量精确,可以比较精准地提供角度信息和测量距离信息,使测量角度达到小于1°的精准度和厘米级的距离测量精度。

1.3 深度相机

人机交互在早期经历了命令行交互阶段和图形用户阶段,而现在人机交互在各方面有着广泛应用,如可以用在人体测温中。本设计中仓库巡逻机器人所采用的深度相机为orbbec深度相机,它的视场为水平70°、垂直60°,工作范围为80 cm~400 cm,它对仓库物品的温度、人员温度测量起着重要作用,同时机器人可通过深度相机扫描对人员信息进行存储,当外来人员入侵时对其进行扫描并与库中人员信息进行对比,以防范盗窃等情况的发生。

1.4 超声波传感器

仓库巡逻机器人在移动底盘上装有三组超声波传感器。超声波传感器工作电源为5 V、工作电流小于20 mA、有效测距为4 cm~500 cm、分辨率为1 cm,并且内置温度补偿电路。通过超声波传感器可测量机器人与物体之间的距离。

1.5 碰撞防跌传感器

碰撞防跌传感器是由碰撞机械传感器和红外灯防跌传感器组合在一块构建而成的,其主要是起到使机器人在运动过程中达到一个辅助避障的作用,防止机器人在走到路坑时发生跌倒的情况。机械碰撞传感器适用电源为3.3 V~5 V,触点耐压值为交流125 V,触点寿命可达到10万次。红外防跌传感器的检测距离为0.1 cm~60 cm可调,距离越近性能越稳定,白色反射距离最远,其工作温度范围为-10 ℃~50 ℃,工作电流为1 A以上的电源供电。并且,红外防跌传感器可直接与单片机I/O连接,碰撞防跌传感器可以防止机器人在运动过程中跌落。

1.6 其他传感器

仓库巡逻机器人也可以添加一些其他的传感器来实现其巡逻的功能[5]。例如,烟雾传感器,对于机器人在发现火灾时起着检测与防范的作用并对烟雾浓度进行检测;温湿度传感器对仓库内环境进行温度检测,检测温度的同时将相关数据上传到上位机与监控界面;摄像头获取图像信息等。同时,仓库巡逻机器人包括里程计、陀螺仪和加速度计来获取机器人的角速度和加速度。将数据传输到工控机,由工控机结合二者将其姿态数求出,同时在TF坐标变换中进行计算。

2 软件设计

ROS Master是ROS的调度中枢,可以看作一个服务器,其余的节点是发布者(tallker)或订阅者(listener)。在软件系统设计方面可以将其分为两层:1)监控操作层。通过装有的Ubuntu系统来连接巡逻机器人,同时在监控操作层获取机器人的相关信息。2)感知执行层。通过传感器获取外部数据,通过监控界面,使巡逻机器人按既定线路巡逻;通过图像传输节点将图像信息进行保存,通过运动控制节点使机器人运动,通过激光雷达数据建立地图信息。巡逻机器人通过已保存的地图信息实现最优路径规划、自主导航、自主定位的功能,最终完成仓库巡逻机器人的巡逻监控。仓库巡逻机器人软件设计框架图如图2所示,通过人机交互节点将Unbtun系统与ROS Master进行连接,再通过姿态、自主导航、运动控制、图像控制、环境感知和报警节点将信息传输到ROS Master。

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

2.1 SLAM构建

SLAM(Simultaneous Localization And Mapping)也称同步定位与地图构建[6-7]。SLAM地图构建离不开TF坐标变换和激光雷达数据。机器人从未知环境的未知地点运动,通过运动过程观测地图目标、特征定位、自身位置和姿态。仓库巡逻机器人巡逻地图是基于激光雷达来建立SLAM地图的。机器人操作系统ROS首先通过map的消息格式来定义地图的原点和地图长宽等相关信息,再将自行填充的map数据进行数据发布;通过mappub实现地图数据初始化填充和地图数据发布,其初始化主要包括地图原点、长度、宽度及各点的状态值,再通过创建发布者,并在map上发布地图数据;通过TF从外部接收消息,并确定base_link与map的坐标变换关系,通过tfbrd来发布坐标变换关系。创建类用于控制建图,对其进行初始化发布者并创建激光雷达接收数据,利用bresenham算法存储激光雷达扫描过的地图栅格点。最后通过机器人操作系统ROS的可视化工具Rviz便可看到地图信息。SLAM地图如图3所示。

图3 SLAM地图

通过对机器人SLAM地图的构建,可实现机器人巡逻、自主导航和运动控制的功能。机器人SLAM的搭建,可以将机器人所获得的信息与实际情况进行有效结合。同时,工程师可以更加方便地更改机器人的路径并实时监控机器人的自身定位。

2.2 路径规划

路径规划主要是建立在可靠的栅格地图基础上,机器人通过路径规划来完成自主导航的功能,而机器人巡逻则是通过全局路径规划和局部路径规划来实现最优路径的选择,使机器人可以更加高效地完成相关功能。本设计中全局路径规划主要采用A*算法来实现,而相对于传统的Dijkstra算法而言,A*算法更加高效,并且使机器人获得了全局最优路径,通过局部路径规划进而完善全局路径规划,A*算法综合了最良优先搜索和Dijkstra算法的优点,在进行启发式搜索提高算法效率的同时,保证找到一条最优路径(基于评估函数)。A*算法核心公式就是F值的计算:F=G+H(F代表方块总移动代价,G表示开始点到当前方块的移动代价,H表示当前方块到结束点的预估移动代价),而对于局部路径规划常用的方法为动态窗口法(dwa算法),此算法主要在速度空间中采样多组速度值,并模拟机器人在下一个时间的轨迹。通过对采样结果的评价后选择一条最优的路径,实现使机器人具有自主避开障碍物和自主移动的能力与功能。通过python编程实现A*算法路径规划图和dwa算法路径规划图,分别如图4、图5所示。

图4 A*算法路径规划图

图5 dwa算法路径规划图

3 系统测试

3.1 机器人仿真环境搭建

机器人仿真地图通过gazebo仿真来对机器人和地图进行搭建。1)首先通过URDF创建机器人模型,然后对机器人的摄像头、激光雷达、深度相机、红外传感器和碰撞传感器进行仿真配置,并通过命令将机器人模型启动,通过gazebo功能包调用激光仿真器插件,通过对机器人模型的更新并启动,最后可以通过rostopic echo命令来查看仿真传感器数据。2)通过gazebo里的模型搭建机器人运行环境,在gazebo中将机器人仿真环境搭建完成后进行保存,保存完成后可生成.sqt文件。3)通过launch文件将机器人导入到搭建的仿真环境。通过机器人仿真对机器人的相关性能进行模拟,可以有效地解决机器人在实际情况中出现的问题,而机器人仿真环境提高了建立真实机器人的效率,可以使开发者和工程师能够更好地配置机器人,同时使开发者和工程师更加快捷和有效地解决问题,进而提高效率。经过多次建立仿真环境,生成的仓库巡逻机器人仿真环境图如图6所示。

图6 仓库巡逻机器人仿真环境图

3.2 机器人仿真环境自主导航

在室内环境中机器人的自主移动导航是机器人对环境进行监控的前提,为实现机器人自主导航,该虚拟机器人搭载激光雷达对机器人实时环境进行更新,摄像头对机器人在运动过程中的实时环境进行可视化。

自主导航是由acml、odom以及路径规划算法构成的。amcl是一个机器人在二维地图中移动的定位系统;odom原点就是机器人启动时候的点,通过粒子滤波可以将odom的位置在map上估算出来,在tf中发布。

配置机器人,导航功能包集将使其运动。使用导航功能包集的先决条件:1)TF坐标变换的配置。导航功能包集需要机器人一直发布坐标系之间的关系信息。2)传感器相关信息。导航功能包集通过调用来自传感器的信息避开实际环境中的障碍物,它假定这些传感器在ROS上不断发布消息来躲避障碍物。3)里程信息。导航功能包集需要使用和nav_msgs消息发布的里程信息。4)底盘控制器。导航功能包集假定它可以通过话题“cmd_vel”来发布geometry_msgs/Twist类型的消息,这个消息是基于机器人的底座坐标系,它传递的是运动命令。5)地图服务器。将代价地图作为ROS的服务器参数发布,提供了map_saver节点,可以通过命令进行存储地图[8-9]。

在以上相关条件下,通过激光雷达来获取相关数据,acml粒子估算机器人自身定位,这就将底层数据完整地概括,通过地图服务器将地图数据加载出来,然后根据地图的目标位置,做一个全局路径规划,在机器人行驶过程中,若出现障碍物时,再通过局部路径规划重新规划一条路径。自主导航图示如图7所示。

图7 自主导航图示

3.3 机器人仿真环境中的摄像头模拟

通过gazebo来对机器人摄像头传感器进行仿真实现,在创建好机器人模型的前提下,编写一个摄像头传感器单独的xacro文件,来对机器人摄像头传感器进行配置。将此文件集成到xacro文件中,再通过gazebo仿真并且通过rviz来对机器人摄像头传感器的数据进行显示。通过机器人摄像头的仿真模拟,对于机器人在自主移动过程中,可以使得机器人对外部环境的实时画面进行显示与检测。机器人在仿真环境中的摄像头配置以及摄像头在仿真环境中的实时图像显示如图8所示。

图8 仿真环境中的实时图像显示

3.4 机器人检测异常情况

智能机器人摄像头检测异常情况的方法为差影法[10]。仓库巡逻机器人通过对某一场景进行学习,再将所学习到的场景保存为图片或者视频,当有外来物体进入到机器人所保存的场景下时,将机器人所保存的场景与外来物体所产生的场景进行场景抵消,最后产生此外来物体的影子图像,以达到机器人对外来物体的检测。

智能机器人深度相机通过扫描将人体信息进行保存后,再次进行扫描后对其阈值进行对比以达到检测的效果。通过机器人的跟随节点,编写launch文件,当打开launch文件时出现图像,当人物进入时做出动作后,深度图像上则会有15个骨骼点,构成人的骨骼特征是目标到机器人实际距离与默认距离的差值,其反映机器人应该运动的距离与方向。通过机器人扫描的人体信息与保存的人体信息不同时,则机器人对其进行跟随报警提示。

智能机器人通过烟雾报警器来对机器人场景中的火灾进行检测,并结合红外传感器、碰撞传感器来判断火情,以达到多传感器融合巡逻的效果,进而实现仓库巡逻机器人巡逻和巡视的功能。

4 结论

本研究基于ROS系统的仓库巡逻机器人,是以工控机为核心控制器,通过激光雷达来采集仓库内部环境信息来建立实时地图,完成并实现SLAM的相关功能。其他传感器通过获取外界环境信息与存储信息对比以达到巡逻警戒的目的。机器人操作系统ROS使机器人在编程方面简便化、系统化,提高了机器人在二次开发时的效率。相对于ROS机器人而言,其最为重要的技术是SLAM地图构建和自主定位导航。而对于仓库巡逻机器人而言,其关键技术不仅要达到ROS机器人关键技术,同时也要达到巡逻的目的,通过摄像头对外界环境的特定位置进行拍摄后与在原有库中的信息进行对比来初步实现监控、巡逻及报警的目的,最终实现基于ROS系统的仓库巡逻机器人。

猜你喜欢

激光雷达仓库摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
法雷奥第二代SCALA?激光雷达
基于激光雷达夜间观测提取重力波方法的定量比较
填满仓库的方法
四行仓库的悲壮往事
基于激光雷达的多旋翼无人机室内定位与避障研究
Velodyne激光雷达宣布将GaN技术用于小型化低成本固态激光雷达传感器的新设计
小猫看仓库
消防设备