用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

CMAC网络在机器人手眼系统位置控制中的应用

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:55:58
【本文由PB创新网为您整理】
摘要:在机器人手眼系统位置控制中,用CMAC神经网络建立了机器人非线性视觉映射关系模型,实现了图像坐标到机器人坐标的变换。该模型采用了一种新的多维CMAC网络的处理方法——叠加处理法。实验,与BP网络相比,CMAC网络能以罗高的精度和较快的速度完成手眼系统的坐标变换。

    关键词:CMAC神经网络 BP网络 叠加处理器 机器人手眼系统

近年来,在智能机器人领域,关于机器人手眼系统位置控制问题的研究受到越来越多的关注。在研究中发现存在这样一个问题,即如何以较高的精度和较快的速度实现机器人手眼系统位置控制,以使机器人能快速实现对目标物体的准确定位和自动抓取。这个问题也就是机器人手眼系统中非线性视觉映射关系模型的建模问题。采用精确的数学模型是机器人视觉系统传统的建模方法。但由于这类问题是高度的非线性问题,参数多且其间的相关性强,故这种方法理论上虽然精确,但是建模困难、计算量大,实时性差且没有容错能力和自学习能力,而神经网络作为一种智能信息处理的新技术,具有极强的非线性映射能力。因此采用神经网络的建模方法与传统的方法相比具有极大的优越性。

作者已经采用BP网络建立了机器人视觉系统的映射模型,并作了初步的研究和实验。结果发现,采用神经网络建立机器人视觉映射模型是一种有效的建模方法。但采用BP网络建立模型存在网络规模大、训练时间长、容易陷入局部最小解、定位精度较低等缺点。本文采用CMAC神经网络建立了机器人视觉系统的映射模型,取得了十分令人满意的效果。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 CMAC神经网络简介

小脑模型关节控制器神经网络(Cerebellar Model Articulation Controller Neural Network,即CMAC神经网络)是Albus根据小脑的生物模型提出的一种人工神经网络。它学习速度快,具有局域泛化能力,能够克服BP网络容易陷入局部最小点的问题,且硬件易于实现。目前,CMAC神经网络被广泛应用于机器人控制、非线性函数映射、模式识别以及自适应控制等领域。

1.1 CMAC的基本结构和原理

CMAC神经网络的模型结构原理图如图1所示。它本质上可看作是一种用于表示复杂非线性函数的查表结构。

图1中,S为n维输入矢量空间;A为联想记忆空间;Y是输出响应矢量。输入空间S中的每一矢量S(…,Si,…,Sj,…)被量化后送人存锗区A,每个输入变量Si激活存储区A中C个连续存储单元。网络输出yi为这C个对应单元中值(即权wi)的累加结果,对某一输入样本,总可通过调整权值达到期望输出值。由图1可以看出,每一输入样本对应于存储区A中的C个单元,当各样本分散存储在A中时,在S中比较靠近的那些样本就会在A中出现交叠现象,其输出值也比较相近,即这C个单元遵循"输入相邻,输出相近"的原则,这种现象被称为CMAC神经网络的局部泛化特性,C为泛化参数:C越大,对样本的映射关系影响越大,泛化能力越好。

CMAC网络的学习采用误差纠正算法,计算量少敛速度快。其权值修正公式及输出可表示如下:

javascript:window.open(this.src);" style="cursor:pointer;"/>

式中,η为学习步长,yd为期望输出,mi为输入变量S激活存储单元的首地址。修正方法可以采用每个样本修正一次的增量学习方法,也可以采用所有样本都输入一轮后再修正的批量学习方法。

1.2 多维CMAC网络的计算方法

由上述CMAC模型的算法可知,应用传统的多维CMAC概念映射算法会因输入维数的增大而使存储空间剧烈增大,从而使网络计算量增大,收敛速度变慢。这里采用一种新的多维CMAC网络的处理方法--叠加处理法。即把输入空间为n维的多维CMAC网络看作是由n个一维CMAC网络叠加而成,其输出为n个一维子网络的输出的叠加。\par

当输入空间的维数n=1时,对于每一个输入变量,都激活C个连续存储单元,即有C个对应单元的权值输出非零。它的激励情况如表l所示。

表1 激活单元地址分布
sia1a2a3a4a5a6a7a8a9a10
01111000000
10111100000
20011110000
30001111000
40000111100
50000011110
60000001111

经归纳,输入变量Si激活存储单元的首地址mi的计算方法如下:

mi=Si(C-Δ)+1    (4)

其中,Si为输入量的量化值;C为泛化参数;△为相邻输入激活存储单元的重叠单元数大小。若输入矢量有q个量化级,则存储区A需要q(C-△)+C个存储单元。.

当输入空间的维数n>1时;设输入空间为n维矢量Si=(Si1,Si2,…,Sin),对于每个分量Sij,都可以看作图1所示结构模型的一维输入量。由式(3)可得其对应的输出为:

javascript:window.open(this.src);" style="cursor:pointer;"/>

其中,mj为Sij所激活存储单元的首地址。整个CMAC网络可看作由n个如图1所示的子网络组成,S对应的输出yi可看作n个子网络输出yij(j=1,2,…,n)的叠加。

javascript:window.open(this.src);" style="cursor:pointer;"/>

若每个输入分量有q个量化级,每个子网络中两相邻样本有△个单元重叠,采用上述叠加方法共需存储单元n×[q(C-△)+C]。而对于传统的多维概念映射算法来说,n维输入空间中可能的输入状态为qn个。对于一些实际系统,qn往往远远大于n×[q(C-△)+C]。例如8维输入,量化级为200个等级,泛化参数C取为40,相邻输入激活存储单元的重叠单元数大小△为35,则用叠加处理法需要11200个存储单元,而用传统的概念映射算法需要2008个存储单元。对于传统的概念映射算法所带来的要求存储空间过大的

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:25,515.63000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号