基于EXP-LM3S811的全智能无轨餐厅服务机器人的设计与实现*
2020-03-04黄东栋
黄东栋 程 莉
(武汉工程大学电气信息学院 武汉 430205)
1 引言
随着计算机技术、网络技术以及现代控制技术的高速发展,机器人的种类变得越来越丰富,功能也越来越齐全,并逐步从传统的工业领域走进人们的日常生活。
现今,服务业的发展越发受到人们的重视,在近十年里,餐饮业发展速度远远超过GDP的发展度。随着国民经济的不断增长,餐饮业也有着很大的增长空间,依我国餐饮业持续增长的态势,餐饮业将跨入新的发展阶段。于是,将智能机器人应用于餐饮业显得新颖且非常有必要。但目前,餐厅服务机器人在国内外基本处于空白,且非常不成熟。
1999年,第一台餐厅服务机器人Alfred在加拿大诞生[1],该机器人仅仅只有简单的语音迎客功能;2008年北京一家餐厅服务机器人,具有简单的点菜功能;2015年山东科技大学某实验室设计了一款基于STC89C52的智能餐厅服务机器人,具有自动送餐、循迹功能,但也存在着依赖轨迹、无路径规划等缺点。现如今,餐厅服务机器人变得日趋智能,但仍存在着需依赖轨迹、无路径规划、无法自主定位、无自动避障等方面的问题。本文结合之前的研究及缺点,提出了一套完善的视觉定位和自动避障算法,以达到全智能的准确快速送餐服务。
2 系统结构
2.1 机器人总体描述
机器人大小:40*40*50cm。
机器人结构:前轮控制转向,后轮由双直流减速电机提供动力。
机器人功能:在无轨的情况下自主有效地完成传菜功能。
2.2 设计方案
顾客来到餐厅,前台服务员安排就坐。顾客通过餐桌上二维码扫描点餐并提交,厨房准备好餐饮后通过2.4G[2~4]通信模块向机器人下达送餐指令。
机器人拿到餐后由 EXP-LM3S811 ARM[5-6]微控制器计算出最佳路径并自主驶向顾客所在的餐桌。
通过DSP[7-9]视觉识别模块识别桌子特定色标实现其在餐厅中的自我定位,并根据当前位置实时更新路径。
通过EXP-LM3S811 ARM微控制器输出PWM[10]波驱动双直流减速电机并给电机调速。在每个双直流减速电机的输出轴尾端安装一个光耦模块,用来检测机器人的行进速度。
通过红外传感器[11]和超声波测距传感器[12]模块检测机器人与周围障碍物的距离,达到自主避障。
通过三轴磁场传感器[13~14]和倾斜传感器[15]模块,用来检测机器人是否倾斜。
3 硬件设计
餐厅服务机器人系统硬件设计核心包括动力转向部分、定位部分、避障部分、无线通信部分。
3.1 动力及转向部分
餐厅服务机器人模型较重,一般小型马达难以提供足够的后轮动力,本文系统选择了型号为25GA98-280的直流电机,为餐厅服务机器人提供充足动力,25GA98-280直流电机参数如表1所示。通过L6203芯片直流电机控制板驱动器驱动电机,驱动电路如图1所示。
表1 直流减速电机参数
图1 L6203芯片直流电机控制板驱动器电路图
为了精确控制转向角度,系统前轮转向由舵机完成,舵机型号为辉盛MG-996R,驱动电路如图2所示。
图2 舵机驱动电路图
3.2 避障部分
机器人通过红外传感器和超声波测距传感器模块检测机器人与周围障碍物的距离,达到自主避障。
3.3 定位部分
机器人通过DSP视觉识别模块识别桌子特定色标实现其在餐厅中的自我定位,并根据当前位置实时更新路径。
本文选用TMS320DM642 DSP芯片,在600MHz的时钟频率下峰值处理速度达到4800MI/s,具有丰富的片上接口,非常适合于视频/图像处理。
摄像头作为视频传感器输出的模拟视频信号不能直接被DSP处理,需要利用视频解码芯片完成图像的数字化。本文采用视频解码器TVP5150。数字化过程后,将视频数据存储到视频接口内的FIFO中,当FIFO的数据量达到预定阈值时,EDMA将把数据从FIFO中送入到DSP的内存里,这样DSP就可以完成图像处理。
TMS320DM642 DSP处理器集成了3个功能丰富的视频口VP0、VP1、VP2,每个视频口包括20个数据信号、2个时钟信号、3个控制信号。基于TMS320DN642的数字视频处理系统如图3所示。
图3 基于TMS320DN642的数字视频处理系统
3.4 无线通信部分
本文选用NRF24L01无线模块作为机器人的通信模块,NRF24L01工作在全球免申请的ISM频道2400M-2483M范围内,模块开机后能自动扫频,有125个可选工作频道,可以同时供6个用户在同一场合同时工作。NRF24L01模块的基本参数表如表2所示,工作电路图如图4所示。
图4 工作电路图设计
4 软件设计
系统的软件设计核心部分包括机器人视觉定位、自动避障算法。
4.1 机器人视觉定位
机器人通过DSP视觉识别模块识别桌子特定色标实现其在餐厅中的自我定位,并根据当前位置实时更新路径。
摄像头捕捉到桌上特定色标即视频模拟信号,并将模拟信号传输给视频解码芯片TVP5150进行数字化,然后将数字化后的的数据存储到视频接口内的FIFO中。当FIFO的数据量达到阈值时,EDMA将把数据从FIFO中送入到DSP的内存里。TVP5150芯片进行模拟信号的数字化过程如下。
视频模拟信号进入TVP5150芯片后,先由芯片中的自动检测模块确认输入的模拟视频信号的制式,然后通过内部钳位、滤波、模数转换后形成亮度和色度信号;亮度和色度信号经过相应的处理模块转换成Y、Cb、Cr数字信号;Y、Cb、Cr数字信号在输出控制模块的作用下形成YCbCr视频数据流。视频信号AD转换过程如图5所示。RGB色彩空间转换为YCrCb色彩空间算法如下:
图5 视频信号的A/D转换
其中,Y表示亮度,也就是灰阶值。Cr、Cb表示表示色度,用来描述图像的色彩及饱和度,用于指定像素的颜色。把RGB信号按式(1)计算,得到“亮度”值。对式(2)和(3)分析得:Cr描述了RGB信号中的红色信号值与RGB信号亮度值之间的差异。而Cb反映的是RGB信号中的蓝色信号值与RGB信号亮度值之间的差异。
虽然一般的图像都是基于RGB空间的,但在RGB空间里颜色受亮度影响相当大,这为颜色准确识别带来了麻烦。但是把RGB色彩空间转为YCrCb色彩空间的话,可以忽略Y即亮度的影响,这样就把三维的色彩空间降为二维的CrCb矩阵,可以像处理灰度图像一样进行色彩判决。通过对比Cr、Cb的值来判断不同的颜色。因此本系统选用YCrCb空间。颜色标记示意图如图6所示,中间一行为桌子标识色,其他为背景色(为矫正白平衡用),为了提高RGB转YCrCb精度,本文采取提高颜色采集块的颜色纯度,对区域内方差计算筛选,颜色越纯方差值越小至趋近于0(颜色越趋近于黑)。Matlab仿真核心代码如下:
%获取方差计算函数的函数句柄
fun1=@(block_struct)std2(block_struct.data(:,:,1));%RGB色彩空间中的--R
fun2=@(block_struct)std2(block_struct.data(:,:,2));%RGB色彩空间中的--G
fun3=@(block_struct)std2(block_struct.data(:,:,3));%RGB色彩空间中的--B
I1=blockproc(I,[32 32],fun1); %以32*32的块为操作单元
I2=blockproc(I,[32 32],fun2);
I3=blockproc(I,[32 32],fun3);
图6 颜色标记示意图
效果图如图7所示,图像区域中黑色方块部分即为采样点区域,在此区域可以得到单色的RGB色块,转换为YCrCb后计算CrCb的阈值即可判断不同的颜色。
图7 色块采样区域
4.2 自动避障
餐厅地图可以看成一个N*N的平面,模拟场景如图8所示。
图8 静态障碍物模拟餐厅示意图
在N*N的平面中,假设一点为机器人要到达的终点,经过EXP-LM3S811 ARM微控制器的计算后规划出一条时间最短送餐路径,机器人在送餐路上通过超声波测距模块扫描前方障碍物,如果前方存在障碍物则舵机转动超声波测距模块,检测其他方向是否有障碍物,若没有则选择一个最接近原始路径的路口,调用视觉系统定位自己在电子地图中的位置,并更新电子地图,重新规划最短时间路径,若都有障碍物则调用机器视觉系统,选择动态障碍物较少的路口,并语音提示让路,待障碍物消失后继续前进。具体流程图如图9所示。
图9 厅服务机器人行径流程图
超声波检测障碍物算法如图10所示,障碍物与机器人间的距离y,如式(4)所示:
障碍物与机器人两边的距离x1,x2,如式(5)、(6)所示:
图10 超声波检测障碍物算法辅助图
为了提高测量精度和反应速度,本文采用了双超声波测距模块,由两个舵机分别控制超声波模块的测量方位角度并拥有不同的扫描方式。超声波模块测量方位角度如图11所示。
当某个超声波测距模块检测到障碍物时,会使机器人减速停止前进,并将自己的角度参数a传给另一个超声波测距模块,使其转动120-a,将两个超声波模块的测量结果进行对比,可得到更加精确的结果。同时也使测距避障模块的稳定性得到了极大的提升。测量方位角关系如表3所示。
图11 超声波模块的测量方位角度示意图
表3 方位角关系
为了保持机器人与桌椅墙壁的安全距离,将机器人的侧边安装了红外测距模块,同时也能以桌子、墙壁为参照物来判断机器人是否走斜。当前方有动态障碍物时,机器人会语音提示对方避让,同时定位其避让后的方位,然后从障碍物身边走过,示意图如图12所示。
图12 餐厅服务员避动态障碍物路线示意图
5 结语
通过模拟场景对系统进行一系列测试。
自动避障测试,通过指令告知机器人给指定位置送餐,并让若干人站在道路上,发现机器人能很好地避开行人顺利送餐到达目的地。
视觉定位测试,在送餐过程中,将机器人从中途搬到另一地点,发现,机器人能很好地通过DSP视觉识别模块识别桌子特定色标实现其在餐厅中的自我定位,并根据当前位置实时更新路径,最后将餐正确送到目的地。
另外,在上面的测试过程中机器人都是按最佳路径行驶,即最佳路径规划成功。因此,本文描述的以EXP-LM3S811 ARM微控制器为核心的控制系统设计方案很好地达到了防倾斜、自主行驶、自主避让、自我定位、最短路径规划的效果。该方案具有很好的推广价值。