西门子6ES7136-6RA00-0BF0
集控式足球机器人视觉系统,分图像输入和数字化、图像预处理、图像分割和图像识别几步进行。其图像识别通过图像采集卡、图像增强、去噪处理、边缘增强技术,HIS模型,及基于连续图像相关性的顺序网格和种子填充相结合的目标搜索方法实现。
关键词:足球机器人;图像处理;HSI颜色模式
0 引言
RoboCup小型组足球机器人系统包括视觉、决策、无线通讯和机器人小车等。机器人在比赛中,视觉系统按所处的位置和作用,分2种模式:①分布式视觉系统,每个机器人小车有独立的视觉机构,用于目标捕捉和自身定位;②集控式视觉系统,所有机器人小车共用1个视觉机构,为机器人小车和目标定位。故对视觉系统以讨论。
1 视觉系统
1.1 图像输入和数字化
采用CCD彩色摄像机和图像采集卡实现图像输入。用CCD摄像机采集整个场地信息,CCD摄像头的输出信号采用电视标准,每幅图像为1帧,1帧由两场组成;每场240行;采用隔行扫描方式,输出信号有2种制式NTSC和PAL,其中NTSC每秒30帧,PAL为25帧,所以一般采用NTSC。像机输出的是模拟信号,要用计算机来处理这些信息须由图像采集卡来完成信息的转换。
1.2 图像预处理
机器人视觉系统中,常用预处理技术有:①图像增强,一般采用直方图均衡化技术,以一定的映射关系修改原始黑种人的像素灰度,产生1个比原方图更为平坦的直方图,对图像有明显增强效果;②图像的去噪声处理,即图像的平滑。一般采用邻域平均技术,用邻点灰度的平均值取代该点的灰度。也可用平滑技术,即模板技术;③边缘增强处理,即图像的锐化。一般用微分尖锐化处理技术采用梯度法,使用每个像素位置的梯度值。除上述几种预处理技术外,考虑到足球机器人系统实时性要求较高,比赛环境可变,可对所摄取图像的容量和质量进行调整,包括图像调整和压缩。在满足精度的前提下,可采用“场”方式或“TARGET”采集方式,来减小图像容量,提高采集速度[1]。
1.3 图像分割
在图像识别过程中,其颜色信息是主要的识别依据,色彩模型的选取对正确识别颜色有很大的影响,目前常用的色彩模型有RGB和HIS。RGB模型是线性表示系统,其优点是较简单、直观。但实践结果表明,对同一颜色属性物体,在不同条件(光照、光源种类、亮度、物体反射特性等)下,其测得的RGB颜色分布很分散,3个分量互相关联变化波段很宽,占据空间比例很大,很难确定识别RGB的阈值范围,非常容易把并非指定颜色的物体包括进去,而漏掉应该识别的部分物体。
HSI模型是基于视觉原理的模型,其定义了3个互不相关、容易预测的颜色属性:色度(Hue)、饱和度(Saturation)和明亮度(Illumination),其中的色度属性能较准确地反映颜色种类,对外界光照条件的变化敏感程度低。对同一颜色属性物体,具有较稳定和较窄的数值变化范围。饱和度S可作为辅助判断条件,亮度I一般不作判断。所以系统采用HIS模型。
RGB空间到HSI空间的变换公式如下:
通过上述公式,将图像和各像素的RGB分量值转换到HIS空间,在HIS空间完成图像分割和图像识别的等工作。
1.4 图像识别
图像识别采用基于连续图像相关性的顺序网络和种子填充相结合的目标搜索方法。所谓顺序网格,就是将搜索区域人为地按一定的准则分割为一定数量、大小相等的正方形小区域,并按一定的顺序在该小区域中扫描目标,搜索出目标物体的大概位置。种子填充是以该点为种子点,以一定的颜色信息为标准向四周扩散,直到将满足要求的所有像素点全部找到[3]。
通过对机器人小车设计参数的分析,可知其大运行速度是1个确定不变的数值,即在连续2幅图像中,同一辆机器人小车间的运行距离的大值是恒定不变的。因此考虑利用相邻2幅图像间的相关性,在以前1幅图像中机器人小车的位置为扫描中心,以机器人小车的大运行距离为半径的区域内搜索目标物体,既减少整幅图像顺序网格扫描的目标点数,同时由于使用种子填充的方法,在一定的程度上降低了噪声干扰的影响,从而使系统的实时性和可靠性得到提高。区域中心处为扫描起始点,箭头为顺序搜索方向,每次搜索的网格大小视色标而定。
引言
随着汽车、航空和船舶工业的飞速发展,对发动机的性能要求不断提高,中高速发动机的关键部件活塞经常被设计成非圆截面(中凸变椭圆)。目前,同内外活塞制造主要采用硬靠模,这种加工方法不利于多品种、小批量特种环的生产和新产品的研究与开发。活塞的“软靠模”技术就是把活塞的横截面形状或数据输入计算机,再由计算机控制刀具运动,完成活塞变椭圆截面的车削加工。它不仅能切削各种复杂的截面形状,而且具有切削效率高、加工精度高、柔性好等优点。活塞中凸变椭圆数控车削时,X轴进给机构的性能和控制方法决定了加T精度和表面质量,因而对机床进给系统的伺服性能提出了更高的要求:要有很高的驱动推力、快速进给速度和进给加速度。对于一般数控机床,由于受到传统机械结构(即旋转电动机+滚珠丝杠)进给方式的限制,其有关伺服性能指标(特别是快速响应性)难以突破提高。而直线电机驱动机构作为一种新的高速进给方式能提供120—200m/min的速度和5~10g的加速度。进给机构由直线电机直接驱动,消除了中间环节的机械滞后及螺距误差,其运动精度取决于反馈装置、控制系统和直线导轨,从而可达到很高的精度。
1、数控活塞车床X轴进给机构结构及原理
本文将直线电机作为X轴进给驱动部件,设计的数控车床X轴进给机构结构如图1所示。直线电机对称立式安装,滑台和简易刀架采用轻质高强度合金材料,优化的结构设计尽可能减小滑台质量以提高进给系统的快速响应性能和加速度,导轨采用直线滚动导轨。进给系统行程限位采用接近开关和弹簧空气阻尼式机械挡块二级安全过冲防护,以确保滑台不会因为误操作而冲出导轨。光栅位置反馈装置位于滑台内部,以免受到外界油污和铁屑污染。系统具有全封闭防护结构和由内向外的吹风冷却功能(图1中未表示)。由于采用无铁芯动子(初级)结构,发热量小,散热容易,这使得加工中受热变形的影响小。整个活塞车床的结构如图2所示。
图1 活塞车床的X轴进给机构结构
图2 活塞车床整体结构图
2、活塞车床数控系统设计
已成为数控系统发展趋势的开放式数控系统是计算机硬件技术、信息技术、控制技术融人数控技术的产物,它具有强大的适应性和灵活配置能力,能适应各种数控设备,可灵活配置,随意集成。该系统遵循统一的标准体系结构规范,模块之问具有兼容性,部件具有互换性和互操作性。目前的开放式数控系统主要有以下3种结构:
(1) PC机+数控专用模块
即在Pc机上嵌入数控专用模板。这种数控系统的开放性只限于PC微机部分,其的数控部分仍处于封闭状态。
(2) PC机+可编程运动控制器
这种基于开放式可编程运动控制器的系统结构以通用微机为平台,以PC机标准插件形式的可编程运动控制器为控制核心,双CPU并行通信,是一种便于开发的全方位开放式体系结构。
(3) 纯PC机
即完全采用PC机的全软件形式的数控系统。这类系统由于受到PC机实时性的限制,目前正处于探索阶段。
本数控系统采用的是第二种方式,即IPC十PMAC(programmable multi-axes controller)的开放式结构体系,系统运行速度快、控制精度高、开发周期短。数控系统软件采用VC+6.0开发,使用美国Delta Tau公司提供的动态链接库PComm32。
2.1 数控系统硬件设计
本系统硬件结构如图3所示。工控机采用研祥的PCl04/PⅢ800型嵌入式: 控机,主板上配有104总线接口。运动控制卡采用美国Delta Tau公司的PMAC2/PC104型控制卡,可以直接和104总线接口的工控机相连。PMAC的核心是MOTOROLA的DSP56001/56002数字信号处理器,可同时控制1~8个轴,既可单独执行存储于其内部的程序,也可执行运动程序和PLC程序,并进行伺服环更新及以串口、总线两种方式与上位机进行通信。PMAC还可自动对任务优先级进行判别,从而进行实时多任务处理。由于PMAC卡具有强大的数字运算能力来完成数控捅补、PLC程序运行等实时任务,简化了实现数控系统实时性任务的开发T作,只需根据要求开发上位机界面、NC程序编辑、机床状态量读取等非实时任务。工控机和PMAC之间通过104总线通信,只需通过调用动态链接库PComm32就可实现两者间的实时通信。
图3 数控系统硬件结构
2.2 数控系统软件设计
活塞车床数控系统的软件采用模块化没计,用面向对象的语言VC++ 6.0编写,通过PMAC提供的动态链接库管理实时运动程序。系统软件主要包括上位机人机界面、上下位机通信程序和PLC程序等几部分。软件的结构如图4所示。上位机人机界面为用户提供一个系统操作界面,在此界面下,系统的各功能模块以菜单和对话框的形式被调用。PLC控制程序用于机床系统开关量的逻辑控制。动态链接库PComm32提供函数同底层的虚拟设备驱动程序进行数据交换,然后由虚拟设备驱动程序直接和PMAC交换数据。
图4 数控系统软件结构
(1) 人机界面程序编制
数控活塞车床的上位人机界面程序主要是将数控系统的操作界面显示在屏幕上,为操作者提供一个直观的操作环境。这是数控软件开发中较重要的一部分,主要包括程序编辑、系统参数配置、加上运行、状态显示、自诊断和在线帮助等。程序编辑界面主要用于数控文件的编辑、复制、存储和删除等操作,实现文档和系统内部数据的管理。系统参数配置界面可以方便地配置M变量、I变量、电机参数等各个系统参数。加工运行界面用于将NC代码进行解释并下载到PMAC巾,通过PMAC去执行插补等功能。状态显示界面用于显示电机的实际位置、命令位置、速度以及运动时间等各种状态参数,通过显示的参数来了解加工性能的好坏,从而根据需要在系统配置界面中调整参数设置。自诊断界面用于显示各种主要故障原因及其初步解决方案。在线帮助界面为用户提供该人机界面的使用帮助说明。整个人机界面基于bbbbbbs环境,采用菜单式按钮,具有很好的人机交互性。
(2) 上下位机通信程序编制
为了便于PMAC与上层bbbbbbs进行通信,Delta Tau公司提供r PComm32动态链接库作为上层应用程序与PMAC之间通信的桥梁。PComm32是一个非常有效的开发工具,它包括了所有与PMAC的通信方法,并且与VC++等开发软件有很好的兼容性,开发者只需要往VC程序中调用动态链接库就能完成上位机同PMAC之间的数据交换。下面介绍在VC++6.0环境下调用PComm32动态链接库及库函数的方法。PComm32共包含丁250多个函数,但常用的并不多,只要掌握了下面几个就可以完成大部分的通信功能:
Open Pmac Device()//为应用程序使用PMAC打开一个通道;
Close Pmac Device()//当程序运行完毕后关闭所打开的通道;
Pmac Get PesponseA()//发送一个命令字符串给PMAC,并从缓冲区得到PMAC的反馈;
Pmac Configure()//调出配置对话框并修改PMAC的参数;
Pmac Down LoadA()//将程序从Pc下载到PMAC;
Pmac Send CommandA()//发送一个命令字符串给PMAC。
掌握了这几个函数的使用方法,就可在VC++6.0环境下凋用PComm32动念链接库,还需要用到bbbbbbs的几个API函数:
LoadLibrary//加载动态库;
GetProcAddress//取得相应函数地址、FreeLibrary//卸载动态库。
要调用动态库函数,首先要在头文件巾为所需的函数定义函数指针类型,其参数要和动态库的函数原型相同。接下来要在该文件中定义3个函数指针:
Open Pmac open、Close Pmac close、Pmac Get pmaeget,然后在执行文件中加载动态库,获得相应的函数地址并赋值给所定义的函数指针,程序段如下:
hMyD1 1=LoadLibrary(“pmac”)//加载动态库;
open=(OpenPmac)GetProcAddress(hMy D1 1),“Open Piilac Device”//得到函数地址并赋给函数指针;
close = (ClosePmac)GetProcAddress(hMyD1 1,“ClosePmac Device”)
pmacget= (PmacGet)GetProcAddress(hMyD 1 1,“Pmac Get ResponseA”)//通过指向函数的指针调用该函数;
if(open!=NULL)
{
( opeil)(0)//初始化函数;
SetTimer(1,lo,NULL)//设定定时器采集时间为lOOms:
︳
void CP comm Dig::On Timer(UINT nlDEvent)//定时器响应函数;
︳
( pmacget)(0,buf,255,“rx0”)//读取PMAC寄存器xO的值并存放在buf中;
Update(FALSE)
CDialog::On Timer(nIDEvent)
︳
//在退出程序的时候要卸载动态库;
BOOL CPcommDlg::Destroy bbbbbb()
{
( close)(0)//关断与PMAC的通信;
Free Library(hMy DLL)//卸载动态库;
Return CDialog::Destroy bbbbbb()
}
(3) PLC程序的编制
系统的PLC程序主要完成系统的初始化和对各种输入输出量进行监控,主要包括限位、冷却、润滑、指示灯管理、主轴电机启停等子程序。PMAC带有内置的软PLC功能,其运行是由PMAC来实现的。当运动程序在前台有序运行时,PMAC可以在后台运行多达32个异步PLC程序。PLC程序可以以极高的采样速率监视模拟和数字输入、设定输出值、发送信息、改变增益,命令运动停止/启动等作业。PLC程序的语法采用IF—ELSE结构的类C语言,开发者很容易就能写出所需的PLC程序,然后可利用PMAC自带的软件开发平台进行编辑、编译,后下载到PMAC卡中运行。
3、结束语
(1) 采用直线电机驱动和直线导轨保证了非圆车削的快速响应性和高刚度要求。
(2) 基于IPC+PMAC结构的活塞车床数控系统,充分利用了PMAC控制器强大的伺服控制功能、直线电机的高频响应特性和PC机高效灵活的编程功能,硬件组成简单,软件开发方便,整个系统开发周期短,开放性和可扩展性较强,适合于多品种、小批量活塞的开发和生产。