基于多传感器融合的图书管理机器人的设计与实现*

2022-04-29 14:15韩竺秦
电气传动自动化 2022年2期
关键词:流程图粒子二维码

韩竺秦

(韶关学院智能工程学院,广东 韶关 512005)

目前,高校图书馆是大学生最喜欢去的学习场所,人流量大且比较集中。图书馆工作人员每天的任务主要是图书的借阅、分类、整理、上架等重复性工作。图书馆机器人在国外出现较早。1991年,美国加利福尼亚州立大学奥维亚特图书馆的自动存储与检索系统ASRS问世,这是ASRS系统第一次在图书馆领域使用[1]。从1991年到2018年,美国有28家图书馆加入了ASRS系统,除了美国之外,挪威国家图书馆、哥伦比亚大学图书馆等图书馆也加入了ASRS系统[2]。

随着机器人技术的不断发展,AGV机器人也应用到了图书馆领域,例如德国洪堡大学图书馆的AGV搬运机器人和日本大阪市立大学图书馆的AGV机器人运输车[3],AGV机器人本身工作效率高、结构简单,它能在图书馆内不断运送图书,将书籍运输到固定位置。

1 机器人硬件系统框架

1.1 机器人外形机械结构

管理机器人采用四轮底盘,两轮差分式转向驱动结构,相比于其它转向结构,两轮差分式结构更加适用于机器人导航的功能实现,能减轻控制器的运算量。机器人采用双层式的空间结构,以最大限度地利用激光雷达、单目摄像头、超声波等相关传感器,提高其性能。

1.2 机器人硬件总体框架

机器人硬件总体框架如图1所示,上位机工控机与下位机STM32驱动使用串口通信的方式,上位机主控与激光雷达使用USB串口连接,触摸屏、机械臂等通过USB等与下位机实现网络通信。

图1 机器人硬件总体框架

2 即时定位与地图构建算法研究

2.1 基于粒子滤波的Gmapping算法

RBpf粒子滤波算法是解决在大型复杂环境下的概率估计问题,其公式可以简要概括为

在式(1)中,p(x1∶t,m|z1∶t,u1∶t-1)为运动轨迹x1∶t和地图m的联合后验概率,p(m|z1∶t,u1∶t-1)为地图估计后验概率,p(x1∶t|z1∶t,u1∶t-1)为轨迹估计后验概率。根据机器人的轨迹进行估计,可以得到位姿信息,结合观测模型p(zt|xt,m)在每个观测点观测得到的数据即可构建地图[4]。由于RBpf需要大量粒子来构建地图,而每个粒子携带一份地图,因此会多次执行重采样,导致计算量和内存占用比较大。

Gmapping算法将定位过程和建图过程分离,且先进行定位再进行建图。该算法在RBpf粒子滤波算法上做了两个主要的改进,一是改进提议分布,二是选择性重采样[5]。

经过多次计算,剩下粒子的权重都比较高。在滤波过程中,粒子逐渐发生退化现象,需要定义有效粒子的目标函数如下:

式(2)采用选择性重采样减少重复采样次数,即设定一个阈值,将全部粒子数的一半作为阈值,当Neff低于阈值时,执行粒子重采样。从而降低采样频率,缓解粒子退化问题。

基于粒子滤波的Gmapping算法流程图如图2所示。

图2 基于粒子滤波的Gmapping流程图

2.2 多策略路径规划

A*算法规划的全局路径,缺乏对机器人环境和机器人本身状态的实时判断,而DWA算法规划的局部路径只是局部的最优解,对全局缺乏考量,将A*算法和DWA算法相结合得出的混合路径规划可以对导航效果进行优化。混合路径规划的处理步骤可以归纳为下面五步:

(1)读取地图,机器人读取基于RBPF的Gmapping算法创建的二维栅格地图。

(2)AMCl算法定位,机器人通过激光雷达数据,获取机器人在地图的定位。

(3)读取起始点A和目标点B,使用A*算法进行全局路径规划。

(4)以集合的形式记录全局路径的拐点。

(5)以一个个拐点为DWA算法的目标点,用DWA算法进行局部路径规划,如果存在拐点周围有障碍物,则以下一个拐点为目标点。

(6)机器人到达局部目标点后,判断该点是否为全局目标点,如果是,则机器人到达全局目标点,完成了路径规划,如果不是,则返回步骤⑤继续确定新的局部目标点。

混合路径规划流程图如图3所示。

图3 混合路径规划流程图

3 机器人语音交互系统的设计

3.1 语音唤醒

语音唤醒通过辨别输入的音频中预先设定的关键语句,成功识别到词语后,应用通过回调函数发布话题消息,机器人在听到特定的唤醒词后与用户进行语音交互,是机器人语音交互过程的第一步。在讯飞开发平台创建属于自己的语音唤醒应用[6],生成应用于Linux平台的专属SDK后将其移植到机器人控制程序中,添加语音唤醒结果的发布节点,语音唤醒程序流程图如图4所示。

图4 语音唤醒程序流程图

语音唤醒程序开始首先初始化ROS节点和话题消息,接着判断是否成功登录讯飞语音,登录成功后开启语音唤醒功能,发布控制命令打开麦克风进行录音。当麦克风录到完整的唤醒词,语音唤醒程序就会发布唤醒成功的话题信息给语音识别程序,进行下一步操作。唤醒词在生成SDK前可自由定制,唤醒成功后机器人会做出回应并进入倾听转态。

3.2 语音交互系统

语音唤醒、语音识别和语音合成所发布的话题消息由语音交互系统整合并处理,该系统包含语音交流部分和语音控制部分。语音交流部分用于处理人机对话中的日常交流互动以及书籍的相关内容问答,而语音控制部分则用于处理人机对话当中的命令词,完成动作上的回应。

语音交互系统首先订阅语音唤醒成功的消息,只有语音唤醒成功才会给语音识别模块发送指令触发语音识别,同时订阅语音识别的结果,并将语音识别的结果分为三类,一类是书籍相关知识,一类是命令词,还有一类是日常交流语句。相应把语音系统设计为三级顺序,第一顺序寻找问题关键词是否为设定的书籍相关内容,若是则在本地文本库中检索答案;若否则进入第二顺序寻找问题关键词是否为控制命令词,若是则驱动机器人进行相应动作;若否则进去第三顺序,此时意味着问题既不是关于图书馆也不是控制命令,而是普通的日常交流,因此调用腾讯云闲聊机器人接口,获取回答的文本消息发布后进行语音合成,播放合成后的音频文件。整个语音系统流程图如图5所示。

图5 语音系统流程图

4 管理机器人UI系统的设计

4.1 UI系统界面设计

Qt对ROS的兼容性和Qt框架能迅速上手和操作的简易性,都非常方便用户对上位机进行UI设计。并且对于ROS与Qt的交互环境搭建问题。

UI界面上,系统主要实现了三方面的功能。如图6所示,①登录界面登录之后,可使用上位机的控件进行机器人的控制和信息反馈。②协助读者找书。用户在找书栏输入所要找的书籍名字后,点击找书,界面将以弹框的形式汇报用户所找书籍的编码,若图书馆没有收录用户所找图书,弹框将显示为“未找到该图书”。③还书。当用户点击我要还书时,机器人将导航到还书区,机器人到位后导航系统会发布指令给机械臂运动系统,机械臂按照事先编写好的动作组运动,自动夹取图书;然后用户输入所还书籍编码并点击还书后,机器人将自动导航到所还书籍存放位置,到达相应位置后,机械臂自动释放图书,最后机器人自动复位到还书区。

图6 机器人UI设计界面

4.2 Kinect相机识别QR码

二维码是很流行的一种编码方式,最常见的形式是二维码。QR码将数据符号信息按照一定的几何图形规律记录在二维平面分布的黑白相间的图形中,这种编码巧妙地利用计算机内部逻辑基础的“0”“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示各种类型的数据信息。Zbar库是一个开源软件套件,主要用于从各种来源读取QR码或者条形码信息。

图书二维码识别是通过已有的二维码进行识别的,而二维码的创建可以通过ROS提供的开源功能包ar_track_alvar[7],通过该功能包可以快速的创建二维码,并且可以设置二维码参数和扫描二维码出现的结果。

5 系统实验和测试

5.1 Gmapping建图测试

Gmapping建图适用于小场景的室内环境,因此本次实验地点为实验室建立地图。首先,启动Gmapping节点,打开相应rviz界面,经过多次实验后,得到的室内地图精度非常理想,无明显畸变。如图7所示,展示的为其中一次最终生成的地图,此过程只对主要干道过了一遍,没有进入一些小通道,但不能看出主通道部分地图的高精度。

图7 Gmapping最终生成地图

5.2 人机交互系统测试

当读者需要查询书籍时,只要按照UI界面提示,输入需要查找的书名,机器人会寻找图书并显示位置,且进行导航取书。如图8所示为找书成功的界面。

图8 找书成功界面

在导航过程中,机器人从起始位置到目标位置后的状态,红色箭头是机器人的最优规划路径方向。如图9所示为导航路径规划图。

图9 导航路径规划图

在导航系统运行过程中,可以使用rqt_graph工具获取当前某个节点的计算图。其中订阅了里程计、坐标变换tf、地图、激光雷达、定位、服务通讯等信息,发布运动控制信息给底盘,驱动电机做出运动,从而实现了导航。

6 结论

为应对图书馆智能化趋势的发展,本文设计了一个基于ROS的图书馆还书管理机器人,包括硬件设计和软件设计两部分。硬件设计包括机器人机械结构、上位机、下位机和传感器的设计。软件设计主要是自主导航系统的设计、机械臂运动系统的设计、语音交互系统设计、人机交互系统的设计、图书二维码识别的设计。目前,人机交互界面实现了机器人的控制、目标点导航控制达到了预期目的。

猜你喜欢
流程图粒子二维码
云的识别指南
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
基于Matlab GUI的云粒子图像回放及特征值提取
一种用于抗体快速分离的嗜硫纳米粒子的制备及表征
二维码
二维码让政务公开更直接
二维码,别想一扫了之
问:超对称是什么?
流程图学习指南