基于MATLAB的移动机器人实验平台设计
2011-03-26章谦骅骆懿陈巍
章谦骅,骆懿,陈巍
(杭州电子科技大学通信工程学院,浙江杭州310018)
0 引言
智能车又称轮式移动机器人,集环境感知、规划决策、自动行驶等功能于一体,集中的运用到自动控制、模式识别、传感器技术、电气、计算机、机械等多个学科,是典型的高新技术综合体[1]。该文提出了一种基于MATLAB的移动机器人实验平台,该平台采用Math Works公司推出的一套高性能数值计算和可视化软件Matlab作为图像计算平台。可以较快速的构建基于视觉的移动机器人实验平台。驱动部分采用MC9S12系列单片机[2](也称为HCS12系列,简称S12系列),该单片机是基于速度更快的CPU12内核的单片机系列,具备片上纠错能力,并与68HC11和68HC12结构编码兼容,便于移植。装在移动小车上的笔记本电脑通过USB摄像头获取图像,经Matlab软件的图像算法,将最终的控制小车电机的运动的控制指令通过蓝牙接口发送给驱动模块[3]。该平台非常适合在高校中开展机器人实践教学和数字图像处理的实践教学,基于该移动机器人实验平台,可进一步开发出不同的移动机器人的原型应用系统。
1 平台设计
该平台总体结构如图1所示,总分4个部分:视频采集单元、视频处理单元、无线通信单元、移动机器人单元。本设计中视频采集单元采用普通的高清USB摄像头(USB CAM);视频处理单元为运行在移动计算机(PC)上的MATLAB程序;无线通信单元采用蓝牙短距离通信方案;移动机器人的主控制器(MCU)采用MC9S12单片机完成寻路及转向转速控制。
图1 系统总体结构
2 硬件设计
硬件设计主要围绕智能移动机器人的运动控制系统和无线数据传输模块来展开。运动控制系统的设计主要在于MCU单元设计和H桥电路设计,MCU是整个运动系统的控制中心,H桥电路和电机又是移动的主要部件,这两部份设计的好坏直接关系到整个系统的运行性能。
(1)MCU最小系统设计,根据所需实现功能,结合功耗、运行速率等综合考虑后,最终选择了飞思卡尔公司的MC9S12单片机座位运动系统的主控制器,该控制器也是飞思卡尔公司智能车竞赛所选用的处理器。MC9S12系列采用Motorola第三代Flash,容量为32~512kB,具有在线编程能力和保密机制,无需外加编程电压,最短整体擦除时间仅100ms,512字节页擦除时间仅20ms。典型的HC12总线速率是8MHz,而S12内部总线速率最高可达25MHz[2],即40ns的最小指令周期。最小系统核心板如图2所示。
图2 最小系统核心板
(2)驱动电路设计,移动机器人运动系统的驱动电路[3]在机器人的运动中也起着至关重要的作用。H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。H桥电路在功放、直流电机驱动或直流变换电路中被广泛使用。电路比较成熟稳定。
3 MCU程序设计
单片机MC9S12是移动机器人处理单元,PC的MATLAB分析摄像头数据后根据算法得出运行轨迹,然后通过蓝牙模块发给单片机,单片机根据得到的指令进行运动控制,使得运动机器人做出一些动作,同时提供一些附加功能。MCU程序流程图如图3所示。
4 MATLAB程序设计
图3 MCU程序处理流程图
通过Matlab编程完成视频处理[4],可以大大缩短应用程序的开发周期,提高编程效率和缩短理论方案研制周期,适合工程人员或初学者编程的需要。这是因为大量数学公式利用MATLAB语言及其所提供的函数进行数字图像处理,编程简单、操作方便、可靠性强,能够达到预期的效果。Matlab软件分为基本部分和专业扩展两个部分。基本部分包括代数方程和超越方程求解,矩阵运算和各种变换,数值积分、数据处理等可以满足大学本科理工科的多种计算需要。扩展部分包括控制系统、模糊集合、神经元网络、鲁棒控制、小波分析等数十个工具箱可用于实现某一类新算法,解决某一类专门问题,这一部分还在不断发展中,前景十分喜人[5]。本平台应用了MATLAB影像工具箱对从USB摄像头获得的视频图像进行处理,分析,然后根据处理结果生成运动指令。算法流程如图4所示。在Matlab中采用USB摄像头进行图像捕获的函数举例为:fp=videoinput('winvideo',1,'RGB24_640x480');该图像大小为640×480。取一帧图像的函数为:pic=getsnapshot(fp);线性滤波可以采用高通滤波器增强图像的边缘,举例:g8=pic-imfilter(pic,w8,'replicate');边缘检测MatLab可以采用的Matlab的canny函数,举例为:edge(f,'canny',[0.2 0.3],0.25)。蓝牙串口通信采用的函数举例为:s1=serial('COM1','BaudRate',9600);fprintf(s1,'abc')。
图4 MATLAB算法流程图
5 设计制作
通过多次的测试和调试,该试验平台达到了预想的标准。能完成一些功能的实现如寻迹。USB采集的路径图像如图5所示;采用prewitt边缘算法后计算路径如图6所示:
图5 路径USB采集图像
图6 采用边缘检测后的路径
6 结束语
本文提出了一种基于MATLAB的移动机器人实验平台,该试验平台采用了MATLAB的影像工具箱做视觉分析,移动机器人单元的核心处理器采用飞思卡尔公司的MC9S12单片机。利用MATLAB语言及其所提供的函数进行数字图像处理,编程简单、操作方便、稳定性强,达到了预期的效果。本文适合于高校的机器人实践教学和数字图像处理的实践教学,基于该移动机器人实验平台,可进一步开发出不同的移动机器人实验应用系统。
[1]李永乐,袁一,朱云江,等.基于MATLAB串行通信的智能车车速控制算法研究[J].军事交通学院学报,2009,11(3):4-7.
[2]曾爱群,张烈平.蓝牙技术的概述[J].电子测试,2007,(6):5-8.
[3]李晓静,罗永革,余建强,等.基于AMT直流电机的H桥驱动电路硬件研制[J].湖北汽车工业学院学报,2007,21(1):4-8.
[4]杨杰.数字图像处理及MATLAB实现-学习与实验指导[M].北京:电子工业出版社,2010:67-78.
[5]苏中义.MATLAB简介[J].上海电机技术高等专科学校学报,2003,6(4):1-3.