APP下载

基于ROS的实验室服务机器人的设计与实现

2019-10-19刘德健吴健马英歌张昕祁东升

科技创新导报 2019年13期

刘德健 吴健 马英歌 张昕 祁东升

摘   要:为满足实验室的管理需求,设计了一款基于ROS的实验室服务机器人。该机器人样机采用PC为控制平台,通过二维激光雷达采集位置距离数据,在ROS分布式框架下进行算法设计,实现了同步定位及地图构建的功能。并通过二维码储存实验室中实验柜的物资信息,通过摄像头采集数据在python中识别二维码,实现了实验室信息管理的功能。通过实验证明,该机器人可以准确的构建地图并自身定位。并能准确识别二维码,读取存储的信息。该实验室服务机器人具有开源、灵活、易于管理的优点。

关键词:机器人操作系统  实验室服务机器人  同步定位及地图构建

中图分类号:TP242                                 文献标识码:A                        文章编号:1674-098X(2019)05(a)-0001-02

随着全球机器人市场规模持续扩大, 工业、特种和服务机器人等领域应用持续开拓, 服务机器人市场规模高速增长, 据IFR统计,2017年, 用于专业用途的服务机器人的销售额增长12%[1]。与此同时,机器人的工作环境也变得越来越复杂,这就对服务移动机器人自主完成各种任务的能力提出了更高的要求。高校实验室物品种类繁多,各实验室环境不同,也正需要一种服务机器人来管理实验室。本文设计一种基于ROS的实验室智能服务机器人,能够做到迅速清点仪器,准确查询物品位置,使得实验室的物资信息够清晰地呈现在实验室使用者的眼前,提高实验效率。其中主要的技术包括同步定位与地图构建技术与二维码生成识别技术。

1   实验室服务机器人的硬件与软件组成

室内导航机器人采用PC机与机器人控制器和激光雷达进行数据交互,实现激光雷达与PC数据传输,机器人控制器与PC机的信息交互。整体架构如图1所示。

硬件层采用移动机器人车体作为机械平台,在其上搭建了HOUKUYO UST-10LX激光雷达和STM32F407硬件控制系统。其中HOUKUYO UST-10LX激光雷达通过网络接口作为ROS的运行平台,实现室内地图构建及导航的主要功能。STM32F407主要驱动电机、编码器和陀螺仪,为上层提供运动计算数据。采用STM32F407作为底盘驱动主控制模块,驱动电机与编码器,选用激光雷达作为核心传感器,采集室内环境的深度信息后进行数据转换与处理,然后使用ROS实现地图构建、定位的功能。

2  同步定位与地图构建

本文选用Gmapping算法和扫描匹配算法进行二位栅格地图的构建。Gmapping算法基于Rao-Blackwellized粒子滤波器(RBPF),其建立的栅格地图具有良好的性能。

SLAM算法通过机器人操作系统(ROS)中SLAM-GMapping包实现,其中包含SLAM-GMapping的节点,通过激光扫描数据和机器人移动可以得到二维栅格地图。SLAM-GMapping 节点订阅激光数据scan(sensor _ msgs/LaserScan)和传输数据( tf/tfMessage) ,输出发布的栅格地图。并将构建的地图通过运行 map_sever保存,存储在图像文件和YAML文件中。YAML文件描述地图元数据并命名图像文件对占用数据进行编码。

Gmapping算法节点关系图如图2所示。启动 hukuyo_node 节点保持机器人与PC上位机的连接,通过base_link与 base_laser之间静态坐标变换来确定安装激光测距仪的位置,将里程计信息使用 odom_tf发布并广播,发布/pose_topic 获得的里程计位姿。控制小车的运动,启动 GMapping; 运行/map与/odom 之间的坐标变换,然后运行 rviz进行地图显示,设置 LaserScan 的话题为/laser,Map的话题为/map 用以显示构造环境地图。

3  实验结果

3.1 同步定位与地图构建实验结果

通过机器人操作系统(ROS)中SLAM-GMapping包对环境较为简单的实验室走廊环境实验结果如图3所示。同时还对环境较为复杂的实验室内部环境进行了环境地图构建,实验结果如图4所示,從实验结果可以看出实验室服务机器人可以对走廊以及内部环境进行精准的建图并自身定位。可以满足实验室服务机器人的工作要求。

3.2 实验室信息管理实验结果

此研究中通过快速响应码(Quick Response),即QR Code完成对信息的读取。二维码的生成及识别采用Anacoda Pytho3.6编程实现:二维码的生成利用依赖于PIL模块和 qrcode库的第三方开源模块——python-qrcod实现;二维码的识别依赖Opencv以及pyzbar包实现,先调用Opencv库开启摄像头进行灰度化处理并定位,再利用pyzbar.decode()解码函数读取二维码信息,包括判断版本信息及纠错级别、进制转换、将获取数据与解码关联等操作,最后提取出二维码的数据内容和类型,并打印到终端,流程图5所示。

最后通过与SQlite库[7]的结合录入和存储相应二维码中实验器材的信息,并用Pyqt将个信息采集到信息读取的过程打包,方便管理人员操作和信息浏览。最终的扫描结果如图6所示。扫描到的数据存储到数据库中,便于管理。4  结语

实验室服务器人样机采用PC为控制平台,通过二维激光雷达采集位置距离数据,在ROS分布式框架下进行算法设计,实现了同步定位及地图构建以及导航的功能。并通过二维码储存实验室中实验柜的物资信息,通过摄像头采集数据在python中识别二维码,实现了实验室信息管理的功能。通过实验表明该机器人具有开源、灵活、易于管理的优点,为实验室机器人的进一步研发打下了基础。

参考文献

[1] 陶永,王田苗,刘辉,等.智能机器人研究现状及发展趋势的思考与建议[J].高技术通讯,2019,29(2):149-163.

[2] 寿佳鑫,张志明,苏永清,等.基于ROS和激光雷达的室内移动机器人定位和导航系统设计与实现[J].机械与电子,2018,36(11):76-80.

[3] 任祥华. 激光雷达室内SLAM方法[D].哈尔滨工程大学,2018.