基于双核异构混合系统的智能餐厅助手服务机器人

2015-04-01 06:17顾菊芬
实验室研究与探索 2015年12期
关键词:餐盘双核异构

顾菊芬, 李 泓

(1. 江苏省无线传感系统应用工程技术开发中心, 江苏 无锡 214153;2. 无锡商业职业技术学院 物联网技术学院, 江苏 无锡 214153)



基于双核异构混合系统的智能餐厅助手服务机器人

顾菊芬1,2, 李 泓1,2

(1. 江苏省无线传感系统应用工程技术开发中心, 江苏 无锡 214153;2. 无锡商业职业技术学院 物联网技术学院, 江苏 无锡 214153)

智能餐厅服务机器人基于Zynq7020的双核异构混合系统“Linux操作系统+裸机应用系统”构建而成,其中高性能处理层采用Linux操作系统,主要完成系统摄像头的驱动、餐牌号的数字识别等功能;底层驱动层采用裸机应用系统,主要完成包括小车电机运动控制、舵机驱动、核间通信、超声波传感器、光电传感器、测速传感器等底层驱动任务,通过不断调用底层驱动函数完成实时交互性较强的智能送餐功能。餐厅服务机器人双核系统优势互补、性能稳定,实现了可靠的智能送餐,具有良好的人机交互性。

Zynq7020; 双核异构混合系统; 智能餐厅服务机器人; Linux; 数字识别

0 引 言

餐厅助手服务机器人属于面向餐饮领域的专用服务机器人,是一种能够自主或半自主地为顾客提供服务、改善员工工作强度的智能机器人[1-5]。目前在欧美、日本等科技发达国家,餐厅服务机器人已经成功应用于餐厅烹饪、迎宾及餐厅服务;近年来,国内餐厅服务机器人的研发也取得了较大的进步,但与国外先进水平相比仍然有很大的差距,主要表现为智能化水平不高,人机交互水平较低等[5]。

本文选用具有ARM+FPGA体系结构的高性能、低功耗的Zynq-7000处理器平台[6-8],借助FPGA完成硬件逻辑的设计,可以减少硬件体积;借助双Cortex-A9核强大的处理能力,实现服务机器人的复杂逻辑和服务功能[9]。

1 系统架构

智能餐厅助手服务机器人工作流程如下:由餐厅工作人员将客户点餐放置于餐盘,餐盘上放置顾客餐桌号牌;机器人在待命区识别到取餐盘区有准备好的餐盘,随即移动至取餐盘处,启动摄像头识别顾客餐桌号,并完成自动取餐盘的动作;机器人根据客户餐桌号自动规划路径执行送餐任务,将客户的点餐送至规定餐桌。

根据工作要求构建的餐厅助手服务机器人核心板采用Zynq7020全可编程工作平台,外扩了罗技公司USB摄像头的,用于采集服务数据;移动平台采用ZRobot-III智能小车;送餐工作平台是一个圆工作台附加固定餐盘的机构和机械手臂构成。系统组成结构如图1所示。

图1 智能餐厅助手服务机器人系统结构图

结合Zynq7020双核优势,构建非对称混合异构系统“Linux操作系统+裸机应用环境”的服务机器人软件开发环境。服务机器人高性能处理层采用Linux操作系统,完成图像采集、识别、双核通信等任务。Linux提供封装好的网络和视觉库API,易于使用,减少工作量[9-10]。硬件工程生成的超声波、电机、舵机等模块在应用过程中要求的实时性较高,采用裸机应用系统进行驱动程序的开发和调用。这样可以让两个系统优势互补,完成一个性能强大、功能完善的服务机器人应用平台。Zynq7020工作平台扩展外设后的应用体系结构如图2所示。

2 基于Zynq的软硬件协同设计

2.1 Vivado下生成硬件工程

对于Zynq7020芯片,Vivado除了将VHDL描述的功能模块进行综合、实现生成PL(FPGA)上电后能够加载的BIT流,还生成PS(ARM)的一些配置文件等。

图2 Zynq工作平台扩展后的应用体系结构图

本文所用的硬件工程Block design如图3所示,主要完成和硬件相关的外设IP核(如AXI_GPIO,Motor等)的设计。

图3 Vivado下构建的硬件工程

本文硬件工程中用户自定义的IP核包括Motor、Speed、Servo、Ultrasonic,通过vivado将bit文件导入SDK就可以在xparameters.h里看到关于Motor、Speed、Servo、Ultrasonic的宏,Motor、Speed、Servo、Ultrasonic外设的物理地址已经通过vivado分配好了,这样就可以像操作寄存器一样操作FPGA控制逻辑。

2.2 SDK构建并编译软件应用程序

SDK可以创建工程、编译代码、制作镜像文件和擦写Flash、FPGA,与处理器进行通信,将文件装载到内存,读写任意内存单元与寄存器的值,很方便进行系统调试[11-12]。另外一项非常重要的工作是使用SDK制作开发板可以识别的系统镜像,直接与硬件交互进行开发调试工作。SDK制作系统镜像的实质是按照Xilinx预定义好的格式将编译好的FPGA文件、引导程序和操作系统的ELF文件、开发板配置文件打包成bin文件,使得开发板的固化的引导程序能够识别、解析、引导。

SDK构建bin文件流程:导出在Vivado生成的硬件工程zynq_system_wrapper.bit到SDK;运用SDK产生fsbl_zynq.elf(FSBL镜像文件);运用SDK编程裸机应用程序app_cpu1.c,保存后自动编译生成app_cpu1.elf;将上述3个文件另加u-boot.elf(linux BootLoader),创建BOOT.bin。

3 异构系统协同

首先将跳线帽设置成从SD卡启动,处理器上电后,并不会立即把两个处理器核心都启动,首先会启动 CPU0,同时让CPU1处于空转状态,等待 U-Boot 或者操作系统启动 CPU1。CPU0会首先执行固化在开发板的引导程序BOOT.bin,BOOT.bin中包含4个文件(FSBL,BIT流,U-boot,app-cpu1.elf)FSBL完成如下工作:对PS初始化;使用BIT流对PL配置;加载SSBL(即u-boot,引导Linux);在Linux运行后会唤醒cpu1执行app_cpu1.elf的程序。具体双核CPU0、CPU1的分工如图4所示。

图4 异构系统双核分工

4 应用程序开发与系统调试

4.1 Linux系统图像识别应用程序

Linux系统下的图像识别应用程序主要包括图像的获取、图像的处理和分析、输出或显示。图像的获取实际上是将被测物体的可视化图像和内在特征转换成能被计算机处理的一系列数据[12-13]。视觉信息的处理技术主要依赖于图像处理方法,它包括图像增强、数据编码和传输、平滑、边缘锐化、分割、特征抽取、图像识别与理解等内容[14-15]。经过这些处理后,输出图像的质量得到相当程度的改善,既改善了图像的视觉效果,又便于计算机对图像进行分析、处理和识别。

Linux系统中包含摄像头驱动和图像识别功能程序,这个程序会打开摄像头采集数据,并且会根据识别的结果写入OCM中开辟的空间中的寄存器中,CPU1中的standalone程序一直轮询。

4.2 SDK裸机应用程序设计

裸机应用程序主要实现服务机器人的服务功能,包括底层速度传感器、光电传感器、超声波等的驱动函数、机械手动作、电机控制(控制机器人前进、后退、拐弯等)、路径识别等,底层驱动函数包括:① 小车电机运动控制程序,对车轮电机的转速和方向进行控制;② 核间通信函数,异构系统之间的通信协同;③ 超声波模块驱动程序,实现避障功能;④ 光电传感器驱动程序,实现巡线功能和定位功能;⑤ 舵机驱动程序,实现机械手臂的抓握功能;⑥ 测速传感器驱动程序,实现小车速度的反馈功能;⑦ 液晶驱动程序,实现本地数据显示。裸机应用程序完成实时交互性较强的工作,实现过程不断调用底层驱动函数,系统框架程序流程图如图5所示。

4.3 运行调试

图6 智能餐厅服务机器人调试环境

运行调试过程如下:由餐厅工作人员将客户点餐放置于餐盘,餐盘上放置顾客餐桌2号;机器人启动摄像头识别顾客餐桌号,液晶上同时显示顾客餐桌号2号;机器人将客户的点餐送至2号餐桌;随即沿回程路线返回待命区。依次调试其他餐桌号,功能均正常。

5 结 语

本文根据餐厅服务机器人的工作要求,构建了基于zynq7020的双核异构混合系统“Linux操作系统+裸机应用系统”的餐厅服务机器人移动平台。高性能处理层采用Linux操作系统完成了系统摄像头的驱动、餐牌号的数字识别等功能;在裸机应用系统进行包括小车电机运动控制、舵机驱动、核间通信、超声波传感器、光电传感器、测速传感器等底层驱动函数的开发,通过不断调用底层驱动函数完成实时交互性较强的智能送餐功能。两个系统利用各自的优势,弥补不足之处,完成了性能强大、功能完善的餐厅服务机器人。相信随着功能的不断完善,在劳动力短缺的当下智能餐厅服务机器人会发挥越来越大的作用。

[1] 舒 畅,熊 蓉,傅周东.基于模块化设计方法的服务机器人结构设计[J].机电工程, 2010,27(2):1-4.

[2] 上海市机器人学会.服务机器人的技术发展趋势[J].机器人技术与应用,2009(5):5-11.

[3] 张 炜.环境智能化与机器人技术的发展[J].机器人技术与应用,2008(3):13-16.

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

[5] 闫维新.多功能中式菜肴自动烹饪机器人研究[D].上海:上海交通大学,2010:3-10.

[6] 杨晓安,罗 杰,苏 豪,等.基于Zynq-7000高速图像采集与实时处理系统[J].电子科技,2014,27(7):151-154.

[7] 邢艳芳,张延冬.基于Zynq的OLED驱动设计[J].液晶与显示,2014,29(2):224-228.

[8] 高伟林,曹 峰,佟 川,等.基于Zynq的图形生成电路设计与实现[J].液晶与显示,2014,29( 6):944-949.

[9] 张 磊.基于双核ARM平台的双操作系统移植的研究与实现[D].西安:西安电子科技大学,2013:7-10.

[10] 俞 辉,李 永,刘 凯,等.ARM嵌入式Linux系统设计与开发[M].北京:机械工业出版社,2010.

[11] 王晓娟.基于多传感器信息的移动机器人定位研究[D].杭州:浙江大学,2010:5-12.

[12] 赵立军.室内服务机器人移动定位技术研究[D].哈尔滨:哈尔滨工业大学, 2009:3-9.

[13] 王丽军,王景川,陈卫东.动态环境下智能轮椅的规划与导航[J].上海交通大学学报,2010,44(11):1524-1528.

[14] 贺继林,郑海华,赵喻明,等.基于视觉的探测机器人导航[J].华中科技大学学报(自然科学版), 2013,41(增刊):267-270.

[15] 赵 坤,赵书涛.基于引导线的变电站巡检机器人视觉导航[J].电源技术应用,2013(6):421-421.

Smart Restaurant Assistant Service Robot Based on Dual Core Heterogeneous Mixing System

GUJu-fen1,2,LIHong1,2

(1. Jiangsu Research and Development Center of Application Technology for Wireless Sensing System,Wuxi 214153, China; 2. Department of Electronic,Wuxi Institute of Commerce, Wuxi 214153, China)

Smart restaurant service robot is developed based on Zynq7020 heterogeneous dual core hybrid system. The robot can provide customer service automatically or semi-automatically can improve staff's working intensity. The high performance processing layer uses Linux operating system, it completes the drive, recognition of meal number system; bare metal application system includes the car motor control, servo driven, and communication with inter core, ultrasonic sensor, photoelectric sensor, speed sensor and other driver functions. The system can complete real-time interactive intelligent room service function by constantly calling the bottom drive function. The two subsystems use their own advantages to make up for the shortfall, and complete a powerful performance.

Zynq7020; dual core heterogeneous mixing system; smart restaurant service robot; Linux; digital identification

2015-03-12

2014年江苏省大学生创新创业训练项目(201412702014Y)

顾菊芬(1980-),女,江苏苏州人,硕士,讲师,工程师,主要研究嵌入式系统应用、机电一体化应用。

Tel.:1396132487; E-mail:gujufen@163.com

TP 242.3

A

1006-7167(2015)12-0057-04

猜你喜欢
餐盘双核异构
试论同课异构之“同”与“异”
全球金融“F20”在此召开!横沥进入“双核”时代
动物世界
卡通娃娃收纳包
当春日落入餐盘中
异构醇醚在超浓缩洗衣液中的应用探索
overlay SDN实现异构兼容的关键技术
LTE异构网技术与组网研究
新型夹心双核配和物[Zn2(ABTC)(phen)2(H2O)6·2H2O]的合成及其荧光性能
三螺旋N-N桥连的双核Co(Ⅲ)配合物的合成、结构和性质