基于忆阻交叉阵列与Q学习的机器人路径规划系统的制作方法

文档序号:11475310阅读:175来源:国知局
基于忆阻交叉阵列与Q学习的机器人路径规划系统的制造方法与工艺

本发明涉及忆阻交叉阵列与强化学习技术,具体涉及到一种基于忆阻交叉阵列与q学习的机器人路径规划系统。



背景技术:

强化学习是一种著名的无监督的机器智能学习算法,且被广泛应用于人工智能等领域。著名的强化学习算法包括:sutton在1988年提出的td算法;schwartz提出的r-learning算法;watkins在1989年提出的q-learning算法以及pengandwilliams在1996年提出的q(λ)算法等。其中相对重要的q-learning算法被广泛用于机器人路径规划。

但传统的q-learning利用lookup表格法来存储产生的q值,所以当状态空间逐渐增大时,可能会出现由于q-learning算法所需存储空间巨大而导致状态爆炸使得机器人不能有效工作,所以不得不让机器人携带更多的存储设备来满足需要,使得机器人工作效率大大降低。

鉴于忆阻器的良好特性,本申请人于2012年提出了专利申请201210188573.2,并公开了一种基于忆阻交叉阵列的q学习系统,该系统将新的电路元件——忆阻器成功应用到了强化学习中,解决了强化学习需要大量的存储空间问题,为以后强化学习的研究提供了一种新的思路。

但是,现有经过继续研究发现,现有的基于忆阻交叉阵列的q学习系统存在的缺陷是:收敛速度太慢,机器学习时间较长。



技术实现要素:

为了解决上述问题,本发明提供一种基于忆阻交叉阵列与q学习的机器人路径规划系统,该系统通过构建一种新的硬件架构,在实现机器人路径规划时,加快了收敛速度,缩短了机器学习时间。

为实现上述目的,本发明所采用的具体技术方案如下:

一种基于忆阻交叉阵列与q学习的机器人路径规划系统,包括忆阻交叉阵列,其关键在于,还包括读写控制开关、状态检测与选择模块、列选择开关、控制器、随机选择模块、第一比较器、第二比较器、延迟单元以及运算模块,其中:

读写控制开关:用于控制忆阻交叉阵列的读写操作,设置有读电压vr输入端和写电压vw输入端;

状态检测与选择模块:当需要根据状态执行相应动作时,用于检测当前环境状态st,执行动作at并得到环境回报rt;当需要对q值进行更新时,用于输出前一个时刻的环境状态,并选择相应的行线,使其加载写电压vw,并持续时间tw,更新忆阻阵列的输出值;

列选择开关:用于选择对应的列线;

控制器:用于控制当前时刻是随机选择模块工作还是第一比较器工作;

随机选择模块:通过生成一随机数作为列线选择的判断标准;

第一比较器:用于比较所有列线的电压值,并将电压值最大的一列选择送入延迟单元中;

第二比较器:用于比较所有列线的电压值,并将电压值最大的一列选择送入运算模块中;

延迟单元:将输出电压延迟一个时间步长;

运算模块:用于根据环境回报rt、延迟单元的输出电压以及第二比较器的输出电压计算得到写电压vw以及施加时间tw。

进一步,所述运算模块按照计算更新当前状态忆阻值所需要的写电压vw,其中α为学习率,γ为折扣率,rt为机器人在状态st下执行动作at后环境给的回报状态,v(st,at)为延迟单元输出的电压值,为第二比较器输出的电压值。

进一步,所述环境回报rt按照计算,其中系数c控制着收敛速度,dt是机器人与目标点之间的距离。

进一步地,系统利用(x,y,ω)表示机器人当前坐标位置和旋转角,θ表示机器人与目标点的相对位置,当dt≤l1,l1为预设阈值,调整ω让机器人朝向目标点,然后让机器人以直线的方式趋近于目标点;如果在机器人趋近目标点的过程中没有遇到障碍物,则执行动作按以下两种情况设置:

1)在每一个离散的时间步t内,当机器人与目标点在同一水平或垂直线上,机器人的位置调整为(x,y±d0,θy)或(x±d0,y,θx),直到它到达目标点,d0是预设的步进,且d0大于或等于0,其中:

θy=arcsin(|ytarget-y|/dt),θy∈[0,90°];

θx=arcsin(|xtarget-x|/dt),θx∈[0,90°];

(xtarget,ytarget)表示目标点的坐标位置;

2)在每一个离散的时间步t内,当机器人与目标点不在同一水平或垂直线上,有下列四种情况:

ⅰ:当机器人的坐标满足:x<xtarget|and|y<ytarge,计算出θ后将机器人的位置调整为(x+x′,y+y′,θ)直到它到达终点,x′和y′都是预设的步进;

ⅱ:当机器人的坐标满足:x>xtarget|and|y<ytarget,计算出θ后将机器人的位置调整为(x-x′,y+y′,180°-θ)直到它到达终点,x′和y′都是预设的步进;;

ⅲ:当机器人的坐标满足:x<xtarget|and|y>ytarget.计算出θ后将机器人的位置调整为(x+x′,y-y′,360°-θ)直到它到达终点,x′和y′都是预设的步进;;

ⅳ:当机器人的坐标满足:x>xtarget|and|y>ytarget.计算出θ后将机器人的位置调整为(x-x′,y-y′,180°+θ)直到它到达终点,x′和y′都是预设的步进。

进一步地,系统电路和控制程序设置在机器人控制芯片中。

进一步地,所述忆阻交叉阵列中的忆阻器由两层tio2薄膜夹在两个铂片电极板构成,其中一层为掺杂层,相应的氧空位使得这个区域具有较强的导电性,另一层为非掺杂层,具有较高的阻抗。

进一步地,系统设置有用于限定q学习次数的最小阈值和最大阈值,在机器人的一次学习过程中,最多只走t=limit个时间步,即最大阈值;另一个是为了避免偶然情况,机器人至少要成功到达目标点count次,即最少有count次的学习过程才有资格判断是否找到了最优路径,即最小阈值。

进一步地,所述环境回报rt根据每个传感器离障碍物的距离以及机器人到目标点的距离来确定。

采用上述的技术方案,具有以下优点:

本发明提出的一种基于忆阻阵列与q学习的机器人路径规划系统,通过对硬件架构和处理方式的改进,加快q学习的收敛速度,同时大大减少机器人的学习时间;系统利用忆阻器的存储特性解决了q学习所需存储空间大的问题,有效避免了q学习可能出现的状态爆炸问题,此外,忆阻器纳米级的尺寸使得机器人路径规划系统可以被嵌入到机器人的“大脑”中,当机器人救援时不用占用其额外的空间携带存储设备,大大提高了机器人的灵活性,方便了机器人的工作。

附图说明

图1为机器人与目标点的相对位置关系坐标分析图;

图2为忆阻器读写电路;

图3为本发明的系统原理框图;

图4为现有q学习算法的路径规划效果图;

图5为本发明实施例中的路径规划的第一实验效果图;

图6为本发明实施例中的路径规划的第二实验效果图。

具体实施方式

为了使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述,这里的描述不意味着对应于实施例中陈述的具体实例的所有主题都在权利要求中引用了。

本发明公开的技术方案相对于在先专利申请201210188573.2而言,主要提出两方面改进;

(1)基于改进q-learning(q学习)的基础上,引入并结合忆阻交叉阵列来存储q值;

(2)基于改进的q-learning与忆阻交叉阵列,实现了机器人路径规划。

具体的,机器人通过环境感知当前状态st∈s(s表示所有状态组成的集合),并执行相应动作at∈a(a表示所有动作组成的集合,包括直行,向左转,向右转),而后得到环境的回报rt(rt是一个范围为[-100,100]的整数)。在未知环境中机器人由st执行at后到达新状态st+1具有概率p[st+1|(st,at)]。机器人的学习任务是找到一个策略π:s->a,π是一个从状态到动作的映射,即当机器人处于状态st时,通过策略π可以确定要采取的动作at。从初始状态st重复使用策略π所得到的值称为被γ折算的累积期望值vπ

vπ=e[rt+γrt+1+γ2rt+2+…]

其中γ∈[0,1],是延迟回报与立即回报的比值,v*(st)表示按照最优策略π*得到的累积期望值,q(st,at)代表q-learning中的累积期望值,v*(st)与q(st,at)的关系如下:

其中,q(st,at)表示为:

对上式进行增量求和可得到经典的q值更新公式:

其中α∈[0,1]是学习率,控制着学习速度。

改进1:传统的机器人距离目标点的回报值是离散的,可能会导致q-learning的收敛速度很慢,因此,在本发明中,该回报被定义为一个函数rtarget:

其中系数c控制着收敛速度,dt是机器人与目标点之间的距离。假设机器人的坐标为(xt,yt),目标点mark的坐标为(xtarget,ytarget),因此,可以按照下列公式计算dt:

dt=sqr((xt-xtarget)2+(yt-ytarget)2)

执行改进1后,q-learning的收敛速度明显提高,但是当dt非常小时,机器人不能立即到达目标点,而是继续盲目地搜索,导致最终得到次优的路径。因此改进2应运而生。

改进2:利用(x,y,ω)表示机器人当前坐标位置和旋转角,θ表示机器人与目标点的相对位置,当dt≤l1,l1为预设阈值,调整ω让机器人朝向目标点,然后让机器人以直线的方式趋近于目标点;如果在机器人趋近目标点的过程中没有遇到障碍物,则执行动作按以下两种情况设置:

1)如图1所示,在每一个离散的时间步t内,当机器人与目标点在同一水平或垂直线上,机器人的位置调整为(x,y±d0,θy)或(x±d0,y,θx),直到它到达目标点,d0是预设的步进,其中:

θy=arcsin(|ytarget-y|/dt),θy∈[0,90°];

θx=arcsin(|xtarget-x|/dt),θx∈[0,90°];

(xtarget,ytarget)表示目标点的坐标位置;

2)在每一个离散的时间步t内,当机器人与目标点不在同一水平或垂直线上,有下列四种情况:

ⅰ:当机器人的坐标满足:x<xtarget|and|y<ytarge,计算出θ后将机器人的位置调整为(x+x′,y+y′,θ)直到它到达终点,x′和y′都是预设的步进;

ⅱ:当机器人的坐标满足:x>xtarget|and|y<ytarget,计算出θ后将机器人的位置调整为(x-x′,y+y′,180°-θ)直到它到达终点,x′和y′都是预设的步进;;

ⅲ:当机器人的坐标满足:x<xtarget|and|y>ytarget.计算出θ后将机器人的位置调整为(x+x′,y-y′,360°-θ)直到它到达终点,x′和y′都是预设的步进;;

ⅳ:当机器人的坐标满足:x>xtarget|and|y>ytarget.计算出θ后将机器人的位置调整为(x-x′,y-y′,180°+θ)直到它到达终点,x′和y′都是预设的步进。

实施时,采用hp忆阻器作为经典的忆阻器模型,由两层tio2薄膜夹在两个铂片电极板构成,其中一层由于缺失了大量的氧原子所以叫做掺杂层,相应的氧空位使得这个区域具有较强的导电性。另一层叫做非掺杂层具有较高的阻抗。用d代表两层tio2/tio2-x的总厚度,w与d-w分别代表掺杂层与非掺杂层的厚度。

忆阻值m(t)被定义为:

其中ron与roff分别代表w=d和w=0的极限忆阻值,m(0)是t=0的初始忆阻值.x是范围为[0,1]的内部变量。

掺杂层与非掺杂层的边界的移动速度与许多因素有关,包括ron,d和电流i:

其中μv≈10-14m2s-1v-1是平均离子迁移率,k是边界移动速度与通过忆阻器电流的比例系数。事实上,离子的运动是非线性的,因为对一个纳米级的器件施加一个很小的电压就会产生很大的电场,这种情况在薄膜边界处更加明显。有很多窗函数来描述离子的这种非线性运动,在本发明中,采用joglekar窗函数,其形式为:

fp(x)=1-(2x-1)2p

其中控制参数p是一个正整数。当p逐渐增大时,离子的线性运动越来越明显。

本例以3×3的忆阻交叉阵列为例,其由3条水平的纳米线、3条垂直的纳米线以及9个位于交叉点的忆阻器构成。图2所示是单个忆阻器的读写电路。vr/w代表了读/写开关,vp代表可编程电压源。如果选择写开关,则意味着vp与vr/w接通,可以通过vp将忆阻器调整到想要的状态通过控制施加时间tw。相反地,如果读开关被选中,则意味着vp与vr/w断开,忆阻器进入外电路。这时,读电压vr被施加到相应的行线上,相应的列线获得输出电压vout。

更新忆阻值所需的电压vw可以通过下列推导得到:

根据q值的更新公式可得:

当更新现状态忆阻值时,只需要将忆阻器施加下列电压vw:

其中α为学习率,γ为折扣率,rt为状态st所对应的环境回报rt,v(st,at)为延迟单元输出的电压值,为第二比较器输出的电压值。

更新忆阻值所需的电压施加时间tw可以通过下列推导得到:

根据忆阻值的定义公式可得:

m(t)=roff-(roff-ron)x(t)

=roff-δrx(t)

其中δr代表roff-ron。对上式等号两端分别求导可得:

让p=1,并利用欧姆定律重写并化简上述公式:

假设初始忆阻值minitial到目标忆阻值mtarget需要花费t=tw的时间,那么有:

设置初始磁通量并根据磁通量与电压时间之间的关系可得时间tw:

其中δ代表补偿因子,当minitial与mtarget不等于极限忆阻值时,补偿因子δ=0;否则,δ是一个接近于0的常数。

基于上述改进思路,本实施例公开一种基于忆阻交叉阵列与q学习的机器人路径规划系统,如图3所示,包括忆阻交叉阵列、读写控制开关、状态检测与选择模块、列选择开关、控制器、随机选择模块、第一比较器、第二比较器、延迟单元以及运算模块,其中:

读写控制开关:用于控制忆阻交叉阵列的读写操作,设置有读电压vr输入端和写电压vw输入端;

状态检测与选择模块:当需要根据状态执行相应动作时,用于检测当前环境状态st,执行动作at并得到环境回报rt;当需要对q值进行更新时,用于输出前一个时刻的环境状态,并选择相应的行线,使其加载写电压vw,并持续时间tw,更新忆阻阵列的输出值;

列选择开关:用于选择对应的列线;

控制器:用于控制当前时刻是随机选择模块工作还是第一比较器工作;

随机选择模块:通过生成一随机数作为列线选择的判断标准;

第一比较器:用于比较所有列线的电压值,并将电压值最大的一列选择送入延迟单元中;

第二比较器:用于比较所有列线的电压值,并将电压值最大的一列选择送入运算模块中;

延迟单元:将输出电压延迟一个时间步长;

运算模块:用于根据环境回报rt、延迟单元的输出电压以及第二比较器的输出电压计算得到写电压vw以及施加时间tw。

基于图3所示硬件框架的机器人路径规划系统,其具体控制过程如下:

s1:读/写控制开关选择读有效,状态检测/选择模块检测机器人当前状态st,并且选中其对应的行线;

s2:控制器控制随机选择模块工作,通过列选择开关将所有列线连接到随机选择模块,随机选择模块生成一个随机数k∈[0,1],若k<ε(ε是为了实现动作选择策略ε-greedy的很小的数),则随机选择一条列线,执行该列线所对应的动作at,并将该列线连接到延迟单元,延迟单元将该列线的电压延迟一个时间步;若k>ε,控制器控制比较器1工作,则列选择开关将所有列线连接到比较器1,选出电压最大的列线,并将其连接到延迟单元,执行at后,机器人到达一个新状态,环境产生回报rt;

s3:状态检测/选择模块检测机器人的新状态st+1,并选中对应的行线,使用列选择开关将所有列线连接到比较器2,选出电压最大的列线并将其连接到运算模块,运算模块根据回报rt、延迟单元输出的电压以及比较器2的输出电压得到写电压vw,并计算出施加时间tw;

s4:读/写控制开关选择写有效,将写电压vw加在忆阻器两端,持续tw时间,即可改变忆阻器的阻值,相应地改变了q值;如果机器人到达一定次数后,更新忆阻值时对应的列线以及延迟单元会被连接到比较器1,对于s中的所有状态,如果相应列线的输出电压vt+1与延迟单元的输出电压vt满足条件|vt+1-vt|<η(η是一个很小的数),则停止学习;否则继续学习。

s5:重复以上步骤,直到机器人到达目标点并且满足学习条件或者达到学习步数上限时停止。

为了进一步理解本发明的显著效果,接下来通过仿真实验进行验证:

本例中采用matlab以及mobotsim软件进行了仿真和分析。下面对仿真中用到的参数进行说明。d1、d2与d3分别代表机器人的三个传感器探测到其与障碍物的距离;r1、r2与r3分别代表了相应的回报,limit表示机器人每次学习的步数上限。其他参数的设置如表1所示。

表1q-learning与忆阻器的有关参数

通过模糊逻辑对回报的定义如下:

用于q值更新的回报rt是r1、r2、r3以及rtarget的加权和。如果机器人在相邻的时间步内坐标不变,则认为其已经撞上障碍物,返回起点继续学习。因为巧合,机器人连续两次探测到的路径可能相同但不是最优路径,设置学习次数的下限值count(count=β,让β=8)以避免这种情况的出现。

基于改进q-learning以及忆阻交叉阵列的机器人路径规划算法如下:

仿真结果:

q-learning改进前的结果如图4所示,让函数rtarget的系数c为100,改进后的结果如图5、6所示,图5为起点在左上角的情况下运行路径图,图6为起点在中间的情况下运行路径图。

基于上述分析对比发现,本发明通过两方面对强化学习中的q-learning进行改进,并且推导了更新忆阻值所需的电压以及施加时间,进一步,将忆阻交叉阵列与改进q-learning结合起来提出了机器人路径规划系统。提出的改进算法会加快q-learning的收敛速度,同时大大减少机器人的学习时间;利用忆阻器的存储特性解决了q-learning所需存储空间大的问题,有效避免了q-learning可能出现的问题如状态爆炸;同时,忆阻器纳米级的尺寸使得机器人路径规划系统可以被嵌入到机器人的“大脑”中,即系统电路和控制程序设置在机器人控制芯片中,当机器人救援时不用占用其额外的空间携带存储设备,大大提高了机器人的灵活性,方便了机器人的工作。

最后需要说明的是,上述描述为本发明的优选实施例,本领域的普通技术人员在本发明的启示下,在不违背本发明宗旨及权利要求的前提下,可以做出多种类似的表示,这样的变换均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1