×
嵌入式开发 > 详情

基于神经网络的自主吸尘机器人混合视觉研究

发布时间:2020-07-03 发布时间:
|

自主吸尘机器人的视觉系统主要采用超声波传感器红外传感器、碰撞传感器以及CMOS图像传感器等。自主吸尘机器人主要应用超声波传感器红外传感器作为接近视觉的传感器检测障碍物。CMOS图像传感器主要用于全局信息的获取,在自主吸尘机器人的障碍物检测、基于电子地图的定位以及路径规划等方面都有很好的应用前景。碰撞传感器作为辅助传感器,当其他传感器失效时,可通过与障碍物的接触感知障碍物的存在。但目前大多数视觉系统由单一传感器构成,对环境信息的感知不全面。为了获得更加全面的障碍物信息,更有效地实现实时避障,本系统融合了超声波传感器红外传感器及碰撞传感器,采用了基于BP神经网络的多传感器融合算法。神经网络能够根据传感器的输入实时输出,完成避障行为,从而使机器人更加自主和健壮地行走。

传感器布置及硬件电路实现

超声波传感器相对于光学传感器(如红外传感器)在障碍物检测上有突出的优点:超声波对色彩不敏感,能够识别深颜色的障碍物;对光照度不敏感,适于识别透明、半透明的物体(如窗户、玻璃门等)。

超声波传感器的角度特性不好,发射角是较宽的锥形角(典型值为15~30锥度),这意味着不能准确测得障碍物的位置。超声波传感器的另一个问题是镜面反射:当超声波束以较浅的角度射向光滑平面时发生镜面反射,波束向外反射而接收不到反射波。此外,超声波传感器还存在着窜绕信号,且易受环境温度、湿度等条件的影响。

红外传感器是近距离传感器,其探测视角小、方向性好,与超声传感器固有的锥形波相比,红外传感器具有角度分辨力高的优点,并且能在较短的时间内获得大量的测量数据。红外传感器的缺点为:易受户外光线的干扰;对障碍物的颜色敏感,深颜色特别是黑色识别效果不好;玻璃等光滑表面对红外线的反射特性影响很大。

综合以上分析可知,单一传感器存在有效探测范围小、数据可靠性低等缺点,很难得到好的避障效果。因此,自主吸尘机器人的视觉系统同时采用了超声波传感器和红外传感器,并且辅以碰撞传感器,利用各种传感器的信息互补,能够很好地提供机器人周围的障碍物信息。由于本系统的目标是廉价有效地避障,因此没有采用CMOS图像传感器。

如图1所示。由于自主吸尘机器人主要的避障行为是前进、停顿、转弯,因此采用7组传感器均布在机器人的正前方,覆盖180°的半圆范围,以充分探测障碍物。其中,第1、2、3、4组传感器由一对超声波传感器和一对红外传感器组成,其他几组由一对红外传感器组成。每组传感器共同提供某一时刻特定方位的障碍物信息。由于右侧需布置机器人自主回归电路,故减少一对超声波传感器。

在自主吸尘机器人的实时避障过程中,不需要测量距障碍物的精确距离,而只需检测超过门槛强度的回波。回波的强度与距障碍物的距离及障碍物的性质有关。若检测到超过门槛强度的回波时,则认为存在障碍物,需要执行相应的避障策略。门槛强度根据机器人行走过程中认定的最近障碍物的距离而定,一般可取最近障碍物的距离为2~5cm。对超声波传感器,有效回波比窜绕信号要大得多,因此设置合适的门槛强度可以屏蔽掉窜绕信号的影响。

硬件电路主要包括信号发射电路、信号接收电路、信号放大电路、门槛强度比较电路、鉴频电路以及路选电路。


神经网络多传感器融合算法在自主机器人避障以及自主行走应用上具有独特优势。本系统采用包含输入层、隐层和输出层三层结构的BP神经网络

BP神经网络决定了传感器输入与行为模式输出之间的通信,通过对连接权值的计算得出与输入相对应的输出。训练过程以随机的连接权值开始,BP神经网络不断比较实际输出与期望输出,通过调整连接权值减少两者之间的差值,直至输出期望值,同时得到连接权值。

BP神经网络的输入层为图1所示的7路传感器输入信号,隐层有3个单元,每个隐层单元根据7路输入的加权计算得到单一的实值输出。然后这3个隐层单元的输出作为第二层4个输出单元的输入。输出层有4路输出信号,每路输出信号对应机器人特定的运动行为,分别表示左转(L)、停顿(S)、前进(F)以及右转(R),或者是两种行为的组合,如前左转、前右转。

传感器的输入信号以及送到电机的输出信号都以二进制表示,并通过简单的开关控制电机。其中,0、1、2三路输入信号检测左侧是否存在障碍物,第3路输入信号检测正前方的障碍物信息。4、5、6输入信号检测右侧的障碍物信息。仅检测到左(右)侧障碍物输出前右(左)转指令;检测到左(右)侧及前方障碍物输出右(左)转指令;仅检测到前方障碍物及同时检测到左侧和右侧障碍物则输出应急停顿指令;无障碍物信号输出前进指令。另外碰撞传感器检测到碰撞信号也输出停顿指令,处理器收到停顿指令后采取相应的策略。

每个输出值是0和1之间的某个实数,对应于预测相应运动行为的置信度。可以根据置信度对输出进行简单处理,即当输出超过0.5时,则认为输出为1,否则认为输出为0。下面给出BP神经网络的算法推导。

设输入层为M,隐层为I,输出层为P,对应的小写字母表示任一信息单元。输入层与隐层的突触权值用Wmi表示,隐层与输出层的突触权值用Wip表示。

神经元的输入用u表示,激励输出用v表示,u、v的上标表示层,下标表示层中的某个神经元。对应于任一训练样本Xk=[xk1,xk2,…,xkm]T的实际输出为Yk=[yk1,yk2,…,ykp]T,期望输出dk=[dk1,dk2,…,dkp]T。设n为迭代次数,网络输入训练Xk,由工作信号的正向传播过程可得:

输出层的第p个神经元的误差信号为:
ekp(n)=dkp(n)-ykp(n)

定义神经元P的误差能量为,

则输出层所有神经元的误差能量总和。

在误差信号反向传递过程中,逐层修改连接权值。

下面计算误差信号的反向传播过程。

(1)隐层I与输出层P之间的权值修正量。
根据梯度下降和Delta法则,Wip(n)的修正量为:

其中,h是学习步长,为局部梯度。

当激励函数为Sigmoid函数,即

则下一次迭代时隐层J上任一节点与输出层P上任一节点之间的权值为:

Wip(n+1)=Wip(n)+"Wip(n)

(2)隐层I上的任一节点与输入层M上的任一节点的权值修正量。

与(1)中的推导类似,

其中:

则在下一次迭代时隐层I上任一节点与输入层M上任一节点之间的权值为:



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
scsi接口