APP下载

基于ROS的服务机器人关键技术研究与实现

2019-12-19孙弋张松

软件 2019年11期
关键词:人机交互

孙弋 张松

摘  要: 针对服务机器人服务业务的无监督实现问题,设计并实现了一种基于ROS(机器人操作系统)的智能服务机器人系统。该系统包括管理中心、机器人本体和客户端,采用基于ROS系统的node节点分布式架构。管理中心由服务器组成,管理中心是任务管理与执行调度的核心组成部分,负责对系统内各种资源进行管理和调度,机器人本体使用高性能核心处理器搭载环境传感器,通过基于EKF(扩展卡尔曼滤波)的SLAM算法解决移动机器人导航问题,客户端与机器人本体的信息交互采用基于rosbridge的节点通信技术。机器人系统通过语音交互技术实现了语音自主导航。本设计在实验室环境采用Turtlebot机器人进行实际测试,测试结果表明本方案可以初步实现机器人基础服务场景中的自主定位与导航及语音控制功能。

关键词: ROS;自主导航;服务机器人;人机交互

【Abstract】: Aiming at the unsupervised implementation of service robot service business, an intelligent service robot system based on ROS (Robot Operating System) is designed and implemented. The system includes management center, robot ontology and client, and adopts node node distributed architecture based on ROS system. Robot ontology uses high-performance core processor to carry environmental sensors. SLAM algorithm based on EKF (Extended Kalman Filter) is used to solve the navigation problem of mobile robots. Rosbridge-based node communication technology is used for information interaction between client and robot ontology. Robot system realizes speech autonomous navigation through voice interaction technology. The design uses Turtlebot robot to test in the laboratory environment. The test results show that the scheme can initially realize autonomous positioning, navigation and voice control functions in the basic service scenario of the robot.

【Key words】: ROS; Autonomous navigation; Service robot; Human-computer interaction

0  引言

隨着人工智能和物联网技术的发展,服务机器人在服务行业开始得到广泛应用,服务机器人成为节约人力和经济成本,解决老龄人口护理等方面的一种可行方案[1],服务机器人在特定场景下的应用成为当前机器人应用研究领域的难点和重点,美国卡耐基梅隆大学与Intel公司共同研制出助老助残的服务机器人,可以完成摆放桌椅、端茶端菜等基本的日常生活服务[2],文献[3]研制的Care-O-bot4机器人为应对多样性的环境而采用了模块化设计,通过自身的携带传感器识别特定人员的手势或者语音来完成相应的指定任务。上海交通大学研制出“交龙”餐厅仿人双臂移动服务机器人利用人脸识别技术[4]可以和语音交互[5]。同时该机器人搭载激光雷达  可用于室内自主定位与导航[6],可用于餐厅和展览馆。本文针对服务机器人在服务场景中自主导航  及语音交互技术进行了分析,并设计实现了基于ROS[7]的服务型机器人以满足在不同场景下完成服务任务。

1  系统设计方案

服务机器人系统主要功能由管理中心、机器人本体和客户端实现,如图1所示。管理中心由服务器组成、机器人本体采用高性能处理器作为主控板,嵌入式计算单元作为从控制器。主控制板负责各个子模块,包括控制机器人运动底盘的运动功能实现,机载传感器数据采集及处理、系统各功能模块的数据交互及通信及服务业务的管理与实现等,从控制器负责运动底盘相关传感器数据采集与处理和电机的实时控制等;客户端系统主要负责服务对象在服务区域内服务任务的管理和人机交互界面的设计与实现,具体开发过程中,各模块硬件以及软件部分进行模块化开发,为今后的更新和后续升级提供  便利。

(1)管理中心:管理中心由服务器承载,负责将服务机器人的任务信息进行持久化及任务调度规划。在系统运行期间,因此数据持久化的实现对机器人的任务管理与调度、系统性能分析等具有重要的意义。

(2)机器人主控模块:即机器人的处理中心。本机器人采用interi5来实现。主要接收服务对象的请求命令、任务;机器人根据设定任务自主的导航和速度控制,并自主导航到指定服务区域。

(3)定位模块:本文中定位模块采用IMU模块,达到机器人准确的移动到指定位置区域。

(4)避障模块:为了避免机器人在运动过程中发生故障或碰撞,保障安全性,本系统在机器人上搭载激光雷达和碰撞检测模块,进行障碍物判断实时避障。

(5)运动驱动模块:主要由电机驱动器和两个大功率直流减速电机组成。驱动模块根据主控制器发送控制命令驱动电机运动。

(6)客户端系统:客户端由平板电脑承载,实现触摸、语音等人机交互,从而提高用户体验。

2  软件系统设计

系统软件主要包含三个部分,分别为管理中心、服务机器人系统和客户端。机器人控制系统软件主要负责服务机器人的动作自主导航,完成服务功能;客户端界面主要负责顾客的位置信息、发送请求服务指令等。

2.1  管理中心

管理中心包括访问用户管理模块、服务管理模块以及任务调度模块。其主要功能有:

(1)信息管理:信息管理包含了对用户的信息管理及服务业务的信息管理,常见有插入记录、删除记录、更新记录、清除数据和查询记录等。

(2)服务任务的调度:通过获取和处理任务请求信息:负责提取请求(Request)中的信息,并根据请求类型调用相应逻辑处理函数;完成任务调   度规划返回响应(Response),管理中心设计如图2所示。

2.2  机器人本体软件设计

机器人接受的消息主要包括目标点坐标信息及机器人交互信息,机器人接受服务请求后明确目标点坐标信息后导航系统根据环境进行机器人的导航,并将导航的处理结果以转速和转矩的方式发送到运动控制层;运动控制层控制电机的转动,实现运动的控制,使机器人移动到目标点。服务机器人工作流程图如图3所示。

服务机器人导航过程中可能需要对原始地图据处理,且可能会遇到一些静态和动态障碍物,需要实时获取机器人位置信息以及障碍物位置信息,并对这些障碍物进行避让。本文使用自适应蒙特卡洛定位算法(AMCL),AMCL是自主移动机器人在二维环境下的基于概率的定位系统,它主要使用粒子滤波对机器人在已知的地图中进行定位。导航时机器人首先会进行全局路径规划,从而计算出移动机器人从出发点到目标点的运动路线。路径规划是通过Dijkstra最短路径的算法实现。导航过程中的局部路径规划会对局部进行避障的规划,其实现的算法是动态窗口法(Dynamic Windows Approach)[8],最终机器人依照局部的最优路径运动,通过对路径的分解融合,生成实时环境中的运动控制序列发布给里程计,让移动机器人进行自主导航。

2.3  客户端软件设计

客户端作为服务机器人系统的一部分,为了有效的完成与机器人之间的交互就需要客户端的机器人配合一起使用,如图4所示用户通过客户端与后

台通信完成登录及授权等业务内容后,客户端将会把该用户的位置的信息发送到机器人。同时客户端能显示机器人所在的位置。机器人在接收到请求后会对请求做出响应,如自动导航到指定的位置等。

本项目中使用了语音识别、义识别、语音合成等功能模块。配合了ROS机器人操作系统,同时使用离线与在线功能结合的方式构建整个语音交互系统活,更加智能的与机器人进行交互。

3  关键技术

服务机器人的在服务区完成自主导航的同步定位与建图技术,客户端节点,管理中心节点,机器人节点之间的通信技术,用户与机器人语音交互技术等复杂多任务的处理是实现服务机器人业务能力关键,因此需采用分布式的系统管理架构对各个节点进行管理,机器人操作系统(Robot Operating  System)是一个应用于机器人上的操作系统,通过点对点的设计让机器人的进程可以分别独立运行,适用于机器人这种多任务的复杂场景。

3.1  分布式系统框架

ROS作为一款次级操作系统,运行与Linux之上提供类似于操作系统的功能。ROS的分布式架构,使得每个程序运行节点都是独立的,且可根据要求使其独立或松耦合运行。程序运行时,所有进程以及所进行的数据处理,将会通过一种点对点的网络形式表现出来,主要包括:节点(node)、节点管理器(Master)、消息(message)、主题(topic)、服务(service)。

(1)节点(Node):表示可执行任务程序。在ROS中每一个节点负责一个任务,从而对每个节点实现松散耦合,不同的节点可以构成成一个完整的系统。

(2)节点管理器(Master):主要用于管理节点的名称注册和查找。同时可以设置节点之间的通信。

(3)消息(Message)是节点之间通信的内容,消息包含一个节点到另一个节点的信息数据。

(4)主题(Topic):表示消息通信媒介。每条消息发布到相应的主题,主题对其名称和内容进行识别。节点可以通过订阅某个主题,接收来自其他节点的消息。

(5)服务(Service):是节点间另一种通信方式,在ROS中,发布主题时,正在发送的数据能够以多对多的方式交互。但要求请求和回复是成对的消息结构时需要通过服务来进行。

3.2  同时定位与地图构建(SLAM)技术

移动机器人SLAM问题是移动机器人在陌生环境中,通过外部传感器(如测距传感器和深度传感器等)开始采集周围环境信息。然后将里程计采集到的机器人数据和外部传感器采集到的环境信息相融合构建环境地图,最后通过构建好的环境地图来实现移动机器人的自定位。基于EKF的SLAM算法能够很好地处理不确定信息,可用来处理移动机器人导航问题。整个扩展卡尔曼SLAM(EKF—SLAM)算法的过程可分为下列四个过程:预测、观测、数据关联、更新。其中定义A、H分别是f、h对X偏导的雅可比矩阵:

3.3  机器人系统通信技术

机器人的服务能力是通过组件之间通信交互,rosbridge是ROS官方为开发者提供的ROS与非ROS通信功能包,rosbridge主要包含两个部分,Rosbridge Protocol和Rosbridge Implementation。其中Protocol部分提供了非ROS系统和ROS系统通信的具体格式,包括话题的订阅,消息的發布,服务的调用,参数的设置和获取,图片信息的传递等等,Implementation部分是rosbridge的具体实现。

ROS的通信核心是节点,由服务节点发出话题,其他节点进行订阅,来完成数据交换。如图5所示,rosbridge忽略掉ROS内部通信规则,提升了抽象级别,内部用topic和services完成通信,在外部用JSON数据格式进行通信,目前支持的外部协议有websocket、TCP以及UDP[9]计中使用基于TCP协议的rosbridge。

3.4  语音交互技术

系统获得语音识别结果后,利用本地相对粗糙的语言模型预先对说话人的意图进行推理,如果本地推理机接受推理,则会通过资源搜索模块对本地资源进行调度以作出相应的决倘若无法在本地解析出说话人的意图,则转向云端后台接入语音云服务,最终将结果返回。语音合成将返回的文本信息转换成音频输出。

4  系统测试

本文采用Turtlebot两轮差分式运动机器人作为实验平台,使用Inter i5作为核心处理器,机器人上搭载思岚公司激光雷达rplidear A1作为视觉传感器模块。

客户端与机器人通过Rosbridge完成websocke连接然后按照协议接收或者发送ROS消息将地图显示在客户端(如图7)。

(2)自主导航功能

在客户端点击目标点A,会将目标点A的位置信息发送到机器人,机器人在接受到目标点信息后将进行自主导航,同时客户端可以实时显示机器人导航的位置信息如图10所示。机器人使用Dijkstra算法规划的全局路径,在实验环境中设置动态未知障碍物,会显示局部规划路径功能。局部规划路径如图8红线所示。

从调试结果来看,在机器人行驶过程中,行人走到机器人前方阻止机器人行驶,图中红色轨迹是遇到动态障碍物后的轨迹,和全局路径有一定的偏差,但可以正常到达目标点,可以看出在局部路径规划中机器人能够完成对未知动态障碍物的避障。

(3)语音交互实现

在语音交互模式下,系统开启后会进入语音唤醒监听状态,机器人会等待用户使用预设关键词来开启语音交互功能。当语音状态唤醒后,机器人会进入语音识别监听状态,该状态下,会根据用户的不同语音指令来开启相应的语音服务,本实验以寻找商品为例,当机器人接收到用户语音指令信息后,机器人将启动机器人导航模块,包括机器人路径规划等,带领用户到达商品的所在位置如图10所示。

5  结论

针对服务机器人服务业务的需求及关键技术,本文将机器人开发技术、物联网技术、语音识别技术等多项前沿的技术进行整合,综合实现信息之间的高效地连接,实现了一种基于ROS的分布式管理的服务机器人系统。在管理中心实现了对用户和任务的管理,基于rosbridge客户端实现了基础业务中的机器人位置信息交互及与控制中心服务信息交互,通过语音交互技术实现了用户语音控制机器人,同时机器人本体实行了自主导航功能,测试结果表明本方案可以初步满足机器人基础场景中业务服务功能。为满足不同业务场景下的机器人服务任务奠定了基础。

参考文献

[1]于清晓. 轮式餐厅服务机器人移动定位技术研究[D]. 上海: 上海交通大学, 2013.

[2]Srinivasa S S, Ferguson D, Helfrich C J, et al. HERB: a home exploring robotic butler[J]. Autonomous Robots, 2010, 28(1): 5-20.

[3]Kittmann R, Frohlich T, Schafer J, et al. Let me introduce myself: I am Care-O-bot4, a gentleman robot[J]. Mensch and Computer 2015-Proceedings, 2015: 223-232.

[4]Liu. M, Li S, Shan S, et al. AU-inspired Deep Networks for Facial Expression Feature Learing[J]. Neurocompting, 2015, 159(C): 126-136.

[5]譚耀. 基于语音控制的移动机器人控制系统设计与实现[D]. 哈尔滨: 哈尔滨工业大学, 2012: 50-55.

[6]张文. 基于多传感器融合的室内机器人自主导航方法研究[D]. 中国科学技术大学, 2017.

[7]左轩尘, 韩亮亮, 庄杰, 等. 基于ROS的空间机器人人机交互系统设计[J]. 计算机工程与设计, 2015(12): 3370-3374.

[8]张华. 基于ROS的自主移动机器人系统设计与实现[D]. 哈尔滨: 哈尔滨工业大学, 2016.

[9]金光, 江先亮. 无线网络技术教程(第三版)[M]. 清华大学出版社, 2017.

[10]王瑶, 曾庆宁, 毛维. 低信噪比环境下语音端点检测改进方发[J]. 技术, 2018, 37(5): 457-467.

猜你喜欢

人机交互
人机交互课程创新实验
图像处理耦合模板定位的答题卡识别研究与应用