《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于云平台的多机器人远程实时控制系统设计
基于云平台的多机器人远程实时控制系统设计
2014年微型机与应用第19期
姜媛媛, 魏衡华
中国科学技术大学 自动化系,安徽 合肥 230027
摘要: 目前由于机载设备的容量和处理能力有限,机器人完成复杂任务的能力受到限制。随着无线网络技术的快速发展,远程控制机器人成为了可能。以云平台为基础,设计了一种具有海量处理能力的多机器人远程实时控制系统,通过机载摄像头实时捕获画面并通过无线网络传给搭建在云平台上的后台处理系统,后台处理系统按照设定的规则对画面做出判断,并将控制指令返回给机器人执行相应动作。
Abstract:
Key words :

  摘 要: 目前由于机载设备的容量和处理能力有限,机器人完成复杂任务的能力受到限制。随着无线网络技术的快速发展,远程控制机器人成为了可能。以云平台为基础,设计了一种具有海量处理能力的多机器人远程实时控制系统,通过机载摄像头实时捕获画面并通过无线网络传给搭建在云平台上的后台处理系统,后台处理系统按照设定的规则对画面做出判断,并将控制指令返回给机器人执行相应动作。

  关键词机器人远程控制;云平台;后台控制系统;实时性

0 引言

  近年来由于技术发展和任务需要,仿人机器人的应用越来越广泛[1-2]。随着无线技术的快速发展,无线网络传输数据的速度和稳定性越来越高,使机器人的远程控制成为可能。国内外学者对仿人机器人做了大量研究。参考文献[3]详细介绍了国内外仿人机器人的研究及理论现状,提出了发展趋势;参考文献[4]实现了基于网络的机器人远程控制系统,操作者通过网络传输的现场实时画面实现对远程机器人的控制;参考文献[5]以环境感知为前提,提出了多机器人系统的合作即时定位与地图创建的方法;参考文献[6]介绍了多机器人在多个研究领域的进展;参考文献[7]以实时性和可靠性为前提,设计了一套远程控制系统和开发库;参考文献[8]提出了一种基于Linux的新的远程机器人控制系统的软件体系结构并对远程机器人的原理以及状态监控技术进行了详细阐述。

  当机器人遇到复杂情况时,由于机载设备容量和处理能力有限而显得能力不足。将机器人感知的当前环境实时传输给远程服务器,通过远程服务器对信息实时处理并做出响应是克服该困难的有效方法。当多个机器人同时完成任务时,简单的后台处理器无法满足计算需求,云计算为解决该问题提供了可能。

  云计算[9-10]是指通过互联网技术、虚拟化技术将大量异构的软硬件资源结合起来,以服务的形式提供给用户使用。

  本文采用的设备是Darwin-op高级版—达尔文机器人,该机器人是一款高智能仿人机器人,自带Ubuntu9.10操作系统,包含高清摄像头、陀螺仪、麦克风等专业传感器,能够稳步行走和保持自身的平衡性,可以通过无线网访问系统的资源,具有很好的视觉跟踪和人机交互能力。

  本文拟通过机载摄像头将监控信息实时传输给搭建在云计算平台上的后台集群,后台集群通过对画面的探测,搜索出目标信息,进而搜索数据库中保存的指令序列传给机器人,机器人做出相应的动作。

1 系统整体设计

  1.1 系统组成

  本系统有以下5部分组成,系统框架结构如图1所示。

001.jpg

  (1) 机载摄像头,每隔一定时间间隔采集一次当前所处的环境画面并传递给预处理模块。

  (2) 预处理模块,为减小传输带宽,对画面进行一定比例的压缩。

  (3) 通信模块,负责机器人与后台之间的交互,包括信息上传和指令接收。

  (4) 控制模块,根据后台发出的指令做出相应动作。

  (5) 后台数据处理集群,负责图像的解析,并根据解析结果查询数据库,调取相应的指令信息反馈给机器人。

  1.2 后台数据处理集群

  为了方便各个节点之间的协调工作,后台处理集群采用master-worker架构。master节点主要负责:计算节点的管理和任务的接收与分配。

  在计算节点管理方面,master节点维持一个计算节点列表,列表中的节点采用“心跳机制”,每隔一段时间向master节点报告其存活状况,只有处于存活状态的计算节点才参与任务的执行。为增强适应性,后台集群不仅要满足当前所需,还要满足将来不断增加的负载需求,另外,本设计希望集群能够在不停机的条件下扩展计算资源。为此,将计算节点设计为注册机制,当新计算节点加入时首先向master节点申请加入,master节点接受后将该计算节点的信息(名称、IP等)添加到计算节点列表中并反馈确认信息。

  算法1 (master节点运行算法):

  while true do

  receive a task Ti

  check next level process units’ workload

  find a minimum workload unit Uj

  allocate the task Ti to Uj

  end while

  在任务接收与分配方面,master通过TCP/IP协议与机器人进行通信。当master节点收到某个机器人上传的信息时,master节点根据各个计算节点的负载情况将信息分配给负载最小的计算节点处理以达到负载均衡的目的,如算法1所示。各个节点的负载用CPU和内存的利用率评定:

  RL4N0R1(V$YH_S3TRWE4}S8.png

  其中,ψ1和ψ2为权重,满足ψ1+ψ2=1。

  在集群master和计算节点之间通过φMQ通信中间件进行通信[11],该中间件具有较高的通信速度和良好的稳定性。为保证每个计算任务都能得到处理,采用REQ-REP通信模式。整个后台处理集群的结构如图2所示。

002.jpg

  1.3 系统实现方法

  信息流进入集群后以有向无环图的形式在各个计算节点之间流动,每个计算节点视为一个处理单元。为了适应大负载及快速响应的需求,将整个系统设计为可横向并行和纵向并行的形式。在横向方面,将负责某个任务的处理单元设置为多份。当信息接收模块接收到机器人的监控图像时,系统根据各个处理单元的负载情况将计算任务分配到负载较轻的处理单元。在纵向并行方面,采用分而治之的思想,每个计算任务分为多个阶段处理。本文将处理过程设计为两部分:一级处理单元和二级处理单元。如图3所示。

003.jpg

  将一级处理单元设置为检测图片中是否有人,二级处理单元设置为检测图片中是否有汽车。并且预设机器人执行指令情况如下:⑴图片中既无人又无汽车,机器人不动作;⑵图片中仅有人,机器人打招呼;⑶图中有汽车,机器人向一侧移动;⑷图中既有人又有汽车,机器人先打招呼再向一侧移动。例如,当机器人将实时图片上传到后台时,后台系统根据各个处理单元的负载情况,将其分配到2号处理单元,2号处理单元调用人物探测功能,探测到有人存在,然后将结果和图片传递到下游的二级处理单元中的6号,探测到没有汽车存在,最后将两个结果汇总提交给指令发送模块,指令发送模块查询数据库,向机器人发出打招呼指令。

  此外,为了保证各个计算节点之间的负载均衡,一、二级处理单元之间为多对多的关系,如图3所示。 在对机器人传递的图片进行处理时,挖掘出其中比较重要的元素(人、汽车),并根据图像中是否存在目标做出判断。

  图像处理选用opencv作为工具箱。opnecv中图像识别主要包括两部分:训练分类器和根据分类器对输入的图像进行检测。以人脸识别为例,目前分类器大多基于Haar特征训练得来(算法2)。具体操作如下:

  (1)根据Haar特征使用大量样本进行训练(所有参与训练的样本必须归一化为同样大小的图片),得到一个分类器。样本分为正样本和反样本,正样本为含有待检测目标的样本,反样本为含有其他图像的样本。

  (2)训练完成后根据训练产生的特征文件对感兴趣的区域进行检测。在人脸识别中当检测区域有人脸时结果输出1,表示含有目标图像;否则输出0,表示不含有目标图像。

  算法2(Haar训练分类器算法):

  begin

  create Haar characteristic

  number_of_classifier←0

  while true do

  input positive samples

  input negative sample

  if false alarm rate > R then

  break

  end if

  if number_of_classifier > N then

  break

  end if

  calculate Haar eigenvalue

  train a strong classifier

  Store classifier information into temp file

  end while

  store cascade information to XML file

  check the function of classifier

  end

  在算法2中首先创建一个Haar特征,然后重复输入正反样本,训练产生一个新的强分类器,此过程一直重复直到虚警率或产生分类器的数量达到规定的阈值为止。

  系统后台服务程序要对大量的物体进行检测,每个物体对应一个训练的分类器XML文件。前面提到为了增强纵向并行性将整个检测过程采用分而治之的思想。将后台程序设置为一级和二级处理单元,一级处理单元负责扫描前[N/2]数量的物体,二级处理单元负责扫描后[N/2]数量的物体。为了增强动态性,对处理的物体也采用动态注册的方式,当有新的物体需要识别时,需要在物体列表中注册,同时将XML文件放到指定的位置,将针对该物体的指令保存到数据库中,如图4所示。

004.jpg

  机器人每隔一段时间通过机载摄像头扫描当前环境,将采集当前环境的一幅图片tar压缩,然后通过TCP/IP协议传输到后台处理,等待该图片对应的指令。具体流程如图5所示。

005.jpg

  另外,在机器人中预先设定各种动作的代号及相关的动作代码,当一个指令序列到来时,机器人根据序列内容解析出动作代号,并根据代号执行相应的动作。当需要改变面对某种情况所执行的动作时,只要修改后台数据库中代号序列就可以重新编排动作,增强了灵活性。

2 实验

  在本实验中测试整个系统的性能。首先测试利用opencv的图像识别技术;然后通过模拟负载,测试后台的处理性能;最后在真实环境中测试可行性。

  实验中使用Darwin-op机器人,后台建立在由中国科学技术大学中科大-联想云计算实验室开发的瀚海星云云计算服务平台上。该平台目前提供IaaS层的服务,可以提供多种配置的Linux虚拟机。

  2.1 Opencv图像识别测试

  在图像识别测试中,以人脸识别和车辆识别为例进行测试。

006.jpg

  在人脸识别中,使用opencv[12]示例中自带的haarcascade_frontalface_alt.xml人脸识别分类器进行测试。如图6所示,分别在无背景、单人真实环境以及多人真实环境下进行测试。通过对不同场景的测试,识别系统均可较好地识别出图像中出现的人脸。

  在对车辆进行识别时,建立了一个规模较小、包含2 000个样本的数据集来训练产生分类器,能识别图片中出现的车辆(车辆识别中使用的训练集仅限于小汽车)。如图7所示。

007.jpg

  2.2 后台负载测试

  在该部分中,通过模拟负载,不停地向后台系统批量传送大量监控图像来模拟多机器人远程实时控制。在该实验中,使用4台单核处理器作为后台服务集群,其中2台负责人脸识别,2台负责车辆识别。

008.jpg

  如图8所示,由于后台系统在分配任务时总是将其分配到负载较轻的计算节点上,因此在整个运行过程中各个节点的负载保持在相对均衡的状态。同时,由于使用多计算节点模式,从而能够满足同时控制多机器人的需求。

  2.3 系统测试

  在该部分根据预设指令测试整个系统的可行性。

  在实验过程中,使机器人1处于有人环境中,机器人2处于有汽车的环境中,这里用一个玩具车来代替。机器人1在遇到人时会做出打招呼的动作,机器人2在遇到车时会做出避让动作。实验表明两个机器人都能够完成预设的指令,整个过程检验了一个系统同时控制多个处于不同环境中的机器人的可行性。

3 结论

  本文将机器人与云计算结合起来,把机器人作为信息的获取媒介和任务的最终执行者,将后台处理系统架设在云平台上,利用云平台的海量处理能力来解决多机器人的控制问题,实验表明本设计取得了良好的效果。但是,由于实验条件所限,机器人采集的只有图像信息,在未来的工作中会将其他传感器获得的信息加入到其中,使机器人能够更加全面地感知周围环境,并根据这些信息做出更加准确的决定。

参考文献

  [1] 徐莉,刘振方,王建丞,等.仿生机器人综述[J].黑龙江科学,2013,4(7):57-61.

  [2] 王田苗,陶永,陈阳.服务机器人技术研究现状与发展趋势[J].中国科学,2012,42(9):1049-1066.

  [3] 陈兵,骆敏舟,冯宝林,等.类人机器人的研究现状及展望[J].机器人技术与应用,2013(4):25-30.

  [4] 张晓晖,刘丁,李攀.基于网络的机器人远程控制系统的实现与研究[J].机械科学与技术,2007,26(6):808-811.

  [5] Cheng Liying, Xue Dingyu, Cong Yang, et al. The research of environment perception based on the cooperration of muti-robot [C]. Chinese Control and Decision Conference,2012:1914-1919.

  [6] Arai T, Pagllo E, Parker L E. Advances in multi-robot systems [J]. IEEE Transctions on Robotics and Automation, 2002,18(5):655-661.

  [7] 陈洋,陆宇平.机器人实时远程控制系统及其开发库的设计与实现[J]. 电子技术应用,2006,32(2):7-10.

  [8] 薛广涛,陈一民,张涛.基于Linux的远程机器人控制系统研究[J]. 机器人,2001, 23( 3):261-265.

  [9] 王波.虚拟化与云计算[M].北京:电子工业出版社,2009.

  [10]陈全,邓倩妮.云计算及其关键技术[J].计算机应用,2009,29(9):2562-2566.

  [11] Hinthens P. ZeroMQ [M]. O’REILLY, 2013.

  [12] Bradski G. Learning OpenCV [M]. O’REILLY, 2008.


此内容为AET网站原创,未经授权禁止转载。