马琼雄 邱育波 文宗明
1.华南理工大学广州学院工程研究院机器人应用研究所,广东省广州市 510800
2.华南理工大学广州学院机械工程学院,广东省广州市 510800
Android系统是目前移动设备市场占有率最高的操作系统,由于其为开源系统,所以各大移动设备厂商都对它情有独钟。
文中所述移动机器人开发方案,采用WIFI通讯方式,使用现有的Android设备作为主控处理器,运用Socket协议、HTTP协议对信号进行处理,不需计算机即可现实通讯,降低移动机器人的复杂度和成本,操作简单,实用性高。
文章第二部分介绍系统整体结构;第三部分是对系统各部分进行详细介绍;第四部分展示利用系统进行实验的效果;最后是总结。
本系统由Android客户端及机器人两大部分组成,两者间以WIFI信号的形式进行通信。整体结构如图1整体结构图所示,硬件部分主要由机器人本体、WIFI模块、单片机系统、电源模块组成。软件部分包含程序的编写通讯模块及界面设计,本系统文所提出的方案适用于任何一款使用Android系统且带WIFI收发功能的移动设备。
图1 整体结构图
Android客户端主要使用Java语言作为编程语言,通过Socket协议和Http协议实现与机器人的通讯,其中分为两大部分,一是视频采集部分,二是机器人控制部分,其中视频部分采用的是Http协议,而控制部分采用的则是Socket协议,将两部分开实现,避免了数据交换时产生互相干涉的情况,有利于数据的处理和功能的实现。
图2为客户端使用界面,左边是控制区域,右边是视频区域。
图2 客户端使用界面
2.1.1 视频区域
视频区域主要使用的是HTTP协议,连接作为服务器端的WIFI模块,获取所挂载摄像头的数据流并转换成图片,然后建立一个线程在SurfaceView中频繁刷新,形成视频流。
图3 视频区域程序流程图
2.1.2 控制区域
图4为控制区域所实现的程序流程图,控制部分主要使用是的Socket协议通信,通过与WIFI模块进行连接,连接之后根据相应的按钮发送不同的控制指令。
本系统采用80C51单片机作为下位机,其主要作用是负责控制机器人的移动,即控制驱动桥。
图4 控制区域程序流程图
因为单字符数据位太少,很容易受到外围信号的干扰,因此我们自定义了通讯协议,格式如下:
包头标志位+字节控制指令+包尾标志位
采用以上自定义的数据包形式,可以很好地解决数据的干扰问题。
图6 实验平台结构图
本项目的移动机器人主要组成结构为:WIFI模块:703N 无线路由;下位机:STC89C52单片机最小系统;驱动模块:L298N电机驱动板1块,可以同时驱动两个电机;通信方式:无线WIFI通信、TTL电平通信;底盘:履带式移动,自带2个电机(7.2V,传动比86.8:1,1km/hr);电源:1个5V蓄电池,1个12V 3s 锂电池。
图6为实验平台结构图。
WIFI模块系统采用改造后的路由作为WIFI模块。它可将从客户端接受到的控制指令完整地转发给下位机,进而通过下位机控制机器人的移动。
图7为改造后的WIFI模块。
图7 WIFI模块
机器人实际运行效果如图8。
图中可见图像反馈清晰;实际操作中,机器人响应速度快,图像传输流畅。
图8 运行效果图
综上所述,本机器人使用现有的Android设备作为主控处理器,降低移动机器人的复杂度和成本。通过Socket协议和Http协议实现Android设与机器人之间的通信;下位机控制和视频流传输两部分开实现,避免了数据交换时产生相互干扰的情况,有利于数据的处理和功能的实现。使用数据包传输的方式大大降低了外围信号的干扰,使机器人运行更加稳定。
[1](美)塞若,Head First Java[M].中国电力出版社,2007
[2]Mark L Murphy. Beginning Android 2[M].人民邮电出版社,2008
[3]David Gourley. HTTP The Definitive Guide[M] O'Reilly Media出版社,2002
[4](美)卡尔弗特,(美)多纳霍. Java TCP/IP Socket编程[M].机械工业出版社,2009