一种基于改进Q-learning的农机路径优化方法与流程

文档序号:28218119发布日期:2021-12-28 22:59阅读:112来源:国知局
一种基于改进Q-learning的农机路径优化方法与流程
一种基于改进q

learning的农机路径优化方法
技术领域
1.本发明涉及农机路径优化技术领域,尤其涉及一种基于改进q

learning的农机路径优化方法。


背景技术:

2.根据农机的工作特点,农机在工作区域的行驶路径通常是直线路径,并要求在最少重复的情况下覆盖整个工作区域。连接相邻两条直线路径的转弯路径通常由相邻直线路径间的距离和农机转弯半径的关系确定,不同转弯路径的距离往往不同。因为相比直线行驶,转弯会严重影响工作效率,并且农机的转弯过程可以近似看作匀速,因此可以通过减少转弯次数和优化转弯路径来提高农机工作效率。
3.对于简单的凸多边形田块,所有的直线路径都可以通过简单的转弯路径进行连接,影响农机路径长度的主要因素是直线路径的连接顺序。因此,在给定直线路径的情况下可以通过调整其顺序来优化全局路径,这就可以将农机路径优化的问题进一步转换为混合优化问题。混合优化问题是一个np难的问题,传统的动态规划方法和回溯法等通过试错的方法计算量大,并且不好找到全局最优的解。
4.对于形状复杂或中间有障碍物的复杂田块,如果整个区域内的直线路径都按照同一个方向规划容易导致重复和遗漏的面积增加,降低工作效率。此外,转弯路径可能变得很复杂,给路径规划和路径跟踪都带来困难。


技术实现要素:

5.本发明提供一种基于改进q

learning的农机路径优化方法,以克服传统的动态规划方法和回溯法等通过试错的方法计算量大,并且不好找到全局最优的解的技术问题。
6.为了实现上述目的,本发明的技术方案是:
7.一种基于改进q

learning的农机路径优化方法,包括如下步骤:
8.s1:确定路径规划的初始参数,所述初始参数包括原始田块边界点集p、农机每一行扫描的宽度w、和农机的最小转弯半径r;
9.s2:将所述原始田块边界点集p向所述田块边界内部平移距离l,以确定农机工作区域的边界;
10.s3:建立x

y轴直角坐标系,计算所述农机工作区域的最小跨度,以确定原始田块的边界相对于x轴的最优旋转角度;
11.s4:生成所述农机工作区域平行于最优旋转角度时的边界的平行路径,以确定农机的直线路径;
12.s5:确定转弯路径的类型,并计算转弯路径的长度;
13.s6:基于改进的q

learning算法优化所述农机工作区域路径,以确定最优农机工作总长度。
14.进一步的,所述s3中,计算所述农机工作区域的最小跨度方法如下:
15.当农机工作区域的边界为凸多边形时,农机转弯的次数n为:
[0016][0017]
式中d是农机工作区域的一条边界到农机工作区域的顶点的距离,
[0018]
y=y
min
,x∈[x
min
,x
max
]
ꢀꢀꢀꢀꢀꢀ
(2)
[0019]
其中,y
min
是农机工作区域边界在y轴上的最小值;y
max
是农机工作区域边界在y轴上的最大值;x
min
是农机工作区域边界在x轴上的最小值;x
max
是农机工作区域边界在x轴上的最大值;
[0020]
所述原始田块每一次的旋转角度为:
[0021][0022]
式中,[x1,y1]是农机工作区域边界中与x轴平行的边的起点坐标;[x2,y2]是农机工作区域边界中与x轴平行的边的终点坐标,θ
t
是旋转角度,于是多次旋转后,当跨度d最小时的旋转角度即为农机工作区域的最优旋转角度θ
*

[0023]
进一步的,所述s4中,确定农机的直线路径的方法为:
[0024]
s41:以最优旋转角度为θ
*
的直线作为扫描线向农机工作区域的内部平移,每次平移w;每次平移后计算扫描线和农机工作区域的边界的交点的数量;
[0025]
s42:若交点的数量为2,则认为还在农机工作区域的边界内,记录两个交点的坐标,继续进行扫描;若交点的数量为1或者0,则判断超出农机工作区域的边界范围,停止扫描,完成平行路径的生成过程。
[0026]
进一步的,所述s5中的转弯路径包括半圆型、鱼尾型和π型;
[0027]
若相邻直线路径的间距等于两倍转弯半径,即w=2r,转弯路径为半圆型,此时转弯路径的长度为π
×
r;
[0028]
若相邻直线路径的间距小于两倍转弯半径时,即w<2r;转弯路径为鱼尾型;此时农机所需行驶的直线距离为:
[0029]
l
r
=2r

w
ꢀꢀꢀꢀꢀꢀ
(4)
[0030]
式中,l
r
是鱼尾型转弯路径农机转弯时所需行驶的直线距离;r是转弯半径;此时转弯路径的长度为(2+π)
×
r

w;
[0031]
若相邻直线路径的间距大于两倍转弯半径时,即w>2r;转弯路径为π型;此时农机所需行驶的直线距离为:
[0032]
l
f
=w

2r
ꢀꢀꢀꢀꢀꢀ
(5)
[0033]
式中,l
f
是π型转弯路径农机转弯时所需行驶的直线距离;此时转弯路径的长度为(π

2)
×
r+w。
[0034]
进一步的,所述步骤s6中基于q

learning算法优化全局路径的方法如下:
[0035]
s61:定义q值表并将其进行初始化,以开始进行计算;
[0036]
s62:定义状态标记表flag,以存储每条直线路径是否被连接的状态量;
[0037]
s63:随机选取农机的起始路径,以确定农机开始工作时的直线路径;
[0038]
s64:判断所述直线路径是否被连接;
[0039]
s65:若所述直线路径已经被连接,则直接判断q值表的收敛状况;
[0040]
若所述直线路径没有被连接,则选取一个基于农机当前状态的下一步动作集合,计算其奖励值,以获取奖励值最大时的下一步动作;更新q值表和状态标记表flag;继而判断q值表的收敛状况;
[0041]
s66:若计算q值表已经收敛,则计算结束;
[0042]
若计算q值表未收敛,则判断当前q值表中是否有收敛元素;
[0043]
s67:若判断当前q值表中没有收敛元素,则重复s65~s66;
[0044]
若断当前q值表中已有收敛元素,则锁存该状态,并更新q值表,重复所述s66。
[0045]
进一步的,所述s64中判断所述直线路径是否被连接的计算方法为:
[0046][0047]
其中:f(s
n
)是每条路径是否被连接的状态量。
[0048]
进一步的,所述步骤s65中判断q值表的收敛状况所建立的q值函数为:
[0049]
q(s
c
,a

c
)=q(s
l
,a

l
)+γ*max(r(s
c
,f(s
c
,δ)))
ꢀꢀꢀꢀ
(7)
[0050]
式中,q(s
c
,a

c
)是基于农机当前状态s
c
和农机当前状态奖励最大对应的动作a

c
的q值,s
l
是农机当前状态的上一个状态;a

l
是农机当前状态的上一个状态奖励最大对应的动作;γ的折扣因子;r(s
c
,s
n
)是从农机当前状态s
c
到农机当前状态的下一个状态s
n
的奖励函数,f(s
c
,δ)表示基于农机当前状态s
c
和在农机当前状态s
c
时可选的动作集合δ的状态集合,即:
[0051][0052]
其中,是第一个可选的动作,m是可选动作的数量。
[0053]
进一步的,所述步骤s65中所述计算奖励值的奖励函数设立为:
[0054][0055]
式中,d(s
c
,s
n
)是从农机当前状态,s
c
到农机当前状态的下一个状态s
n
的转弯路径的长度;l是加权系数。
[0056]
进一步的,在所述步骤s1~s6之前还包括:
[0057]
若待优化田块内部有障碍物或者待优化田块不是凸多边形田块,则首先将复杂的田块划分成若干凸多边形的子区域,以通过所述步骤s1

s6方法对若干所述凸多边形的子区域进行路径规划。
[0058]
进一步的,在所述步骤s1~s6之后还包括:对所述若干凸多边形的子区域进行路径规划,以获取整个田块的最优路径。
[0059]
有益效果:本发明提出的基于改进的q

learning的农机路径优化方法,通过计算原始田块旋转最优旋转角度,然后生成农机工作区域平行于最优旋转角度时的边界的平行路径,由于此时的平行路径与田块的其中一条边重合,因此极大的简化了计算,并且规划转弯路径,基于改进的q

learning算法优化全局路径,确定农机工作的最小总长度。使规划的农机全局路径最短、达到提高工作效率的目的。
附图说明
[0060]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0061]
图1为本发明整体的农机路径优化方法流程图;
[0062]
图2为本发明规划平行路径的示意图;
[0063]
图3为用cell

decomposition方法将复杂田块划分为多个凸多边形的示意图;
[0064]
图4a为本发明鱼尾型转弯路径及其参数的示意图;
[0065]
图4b为本发明半圆型转弯路径及其参数的示意图;
[0066]
图4c为本发明π型转弯路径及其参数的示意图;
[0067]
图5为本发明基于改进的q

learning的的农机路径优化方法流程图。
[0068]
其中:1、直线路径;2、农机工作区域边界。
具体实施方式
[0069]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0070]
本实施例提供了一种基于改进q

learning的农机路径优化方法,包括如下步骤,如附图1所示:
[0071]
s1:确定路径规划的初始参数,所述初始参数包括原始田块边界点集p、农机每一行扫描的宽度w、和农机的最小转弯半径;
[0072]
s2:将所述原始田块边界点集p向所述田块边界内部平移距离l,以确定农机工作区域的边界,进而规划农机工作区域的边界内的直线路径;
[0073]
s3:建立x

y轴直角坐标系,计算所述农机工作区域的最小跨度,以确定原始田块的边界相对于x轴的最优旋转角度;
[0074]
所述s3中,计算所述农机工作区域的最小跨度方法如下:由于直线路径的工作模式简单,覆盖率高,用于覆盖农机工作的主要区域。直线路径的规划重点是找到一个较优的前进方向,以减少转弯的次数。对于内部没有障碍物的凸多边形田块,所有方向的直线路径都是连续的,规划方法比较简单。因为农机的工作内容一般都比较固定,且要覆盖整个田块,因此每相邻两条直线路径间的距离是相等的,因此要使转弯次数最小,即是找到凸多边形在垂直于直线路径的方向上的最小跨度。由于凸多边形最小跨度总是出现在一个顶点和一条边组成的边界里如附图2。因此最优方向为平行于凸多边形的某一条边,具体确定方法为计算某一条边和离此边最远距离点之间的跨度,选择跨度最小对应边的方向作为该凸多边形田块最优的直线路径方向。
[0075]
具体的,当农机工作区域的边界为凸多边形时,农机转弯的次数n为:
[0076]
[0077]
式中d是农机工作区域的一条边界到农机工作区域的顶点的距离,所述扫描线是x

y轴直角坐标系中平行于x轴的直线;
[0078]
y=y
min
,x∈[x
min
,x
max
]
ꢀꢀꢀꢀꢀꢀ
(2)
[0079]
其中,y
min
是农机工作区域边界在y轴上的最小值;y
max
是农机工作区域边界在y轴上的最大值;x
min
是农机工作区域边界在x轴上的最小值;x
max
是农机工作区域边界在x轴上的最大值;d=y
max

y
min
,因此要减少转弯次数即减小d;
[0080]
所述原始田块每一次的旋转角度为:
[0081][0082]
式中,[x1,y1]是农机工作区域边界中与x轴平行的边的起点坐标;[x2,y2]是农机工作区域边界中与x轴平行的边的终点坐标,θ
t
是旋转角度,于是多次旋转后,当跨度d最小时的旋转角度即为农机工作区域的最优旋转角度θ
*

[0083]
s4:生成所述农机工作区域平行于最优旋转角度时的边界的平行路径,以确定农机的直线路径;具体为:
[0084]
s41:以最优旋转角度为θ
*
的直线作为扫描线向农机工作区域内部平移,每次平移w;每次平移后计算扫描线和农机工作区域的边界的交点的数量;
[0085]
s42:若交点的数量为2,则认为还在农机工作区域的边界内,记录两个交点的坐标,继续进行扫描;若交点的数量为1或者0,则判断超出农机工作区域的边界范围,停止扫描,完成平行路径的生成过程。
[0086]
s5:确定转弯路径的类型,并计算转弯路径的长度;
[0087]
具体的,所述s5中的转弯路径包括半圆型、鱼尾型和π型,如附图4所示;
[0088]
具体的,由于农机的行驶速度较慢,因此可以把农机转弯路径认为是固定半径的圆弧,假设规划路径的转弯半径为r。此外,相邻两条直线路径的间距即农机每一行扫描的宽度w相等,因此,转弯路径与相邻直线路径的间距和转弯半径有关。
[0089]
若相邻直线路径的间距等于两倍转弯半径,即w=2r,转弯路径为半圆型,此时转弯路径的长度为π
×
r;
[0090]
若相邻直线路径的间距小于两倍转弯半径时,即w<2r;转弯路径为鱼尾型;此时农机不能一次转弯实现180
°
调头。因此要先转四分之一圆,然后向后直线行驶l
r
距离后,再转四分之一圆完成调头,其中:
[0091]
l
r
=2r

w
ꢀꢀꢀꢀꢀꢀ
(4)
[0092]
式中,l
r
是鱼尾型转弯路径农机转弯时所需行驶的直线距离;r是转弯半径;此时转弯路径的长度为(2+π)
×
r

w;
[0093]
若相邻直线路径的间距大于两倍转弯半径时,即w>2r;转弯路径为π型;此时农机会先转四分之一圆,然后向前直线行驶l
f
距离后,再转四分之一圆完成调头,其中:
[0094]
l
f
=w

2r
ꢀꢀꢀꢀꢀꢀ
(5)
[0095]
式中,l
f
是π型转弯路径农机转弯时所需行驶的直线距离;此时转弯路径的长度为(π

2)
×
r+w。
[0096]
s6:基于q

learning算法优化所述农机工作区域路径,以确定最优农机工作总长度;
[0097]
基于q

learning算法是一种经典的强化学习算法,算法通过智能体和环境交互的结果来优化智能体的决策。具体来说,r(s,a)是智能体(即农机)在某一时刻的s状态下(s∈s),通过执行a动作(a∈a)时,环境(即农机在执行动作a时的直线路径)给智能体的即时奖励。智能体通过执行一系列动作,从初始状态到达目标状态,环境会针对每次动作做出评估,q

learning使奖励的最大化来选择最优的动作序列。
[0098]
所述基于改进的q

learning算法优化全局路径的方法如下:
[0099]
s61:定义q值表并将其进行初始化,以便于开始进行迭代计算;所述q值表初始值均为0;
[0100]
s62:定义状态标记表flag,以存储每条路径是否被连接的状态量;所述状态标记表flag初始值均为1;
[0101]
s63:随机选取农机的起始直线路径,以确定农机开始工作时的直线路径;
[0102]
s64:判断所述直线路径是否被连接;
[0103]
优选的,所述s64中判断所述直线路径是否被连接的计算方法为:
[0104]
f(s
n
)是每条路径是否被连接的状态量,用于记录该直线路径是否已经被连接,若s
n
已经被连接,则将其设为0,否则设为1,即:
[0105][0106]
s65:若所述直线路径已经被连接,则直接判断q值表的收敛状况;
[0107]
若所述直线路径没有被连接,则选取一个基于农机当前状态的下一步动作集合,计算其奖励值,以获取奖励值最大时的下一步动作;更新q值表和状态标记表flag;继而判断q值表的收敛状况;
[0108]
s66:若计算q值表已经收敛,则计算结束;
[0109]
若计算q值表未收敛,则判断当前q值表中是否有收敛元素;
[0110]
具体的,农机路径优化即是减少路径的总长度,在不重复走任何一条直线路径的前提下,全局路径长度和转弯路径的长度有关,并且转弯路径的长度和转弯路径的类型相关,因此可以通过调整转弯路径的类型以优化全局路径规划。同时,转弯路径的类型是根据相邻(即前后连接的)两条直线路径的距离和转弯半径的关系决定的,因此农机(即智能体)当前的直线路径可以看做当前的状态s
c
,下一条直线路径的选择是一个动作a
c
,选定的下一条直线路径是下一个时刻的状态s
n
,因此建立待优化的q值函数为:
[0111]
q(s
c
,a

c
)=q(s
l
,a

l
)+γ*max(r(s
c
,f(s
c
,δ)))
ꢀꢀꢀꢀ
(7)
[0112]
式中,q(s
c
,a

c
)是基于农机当前状态s
c
和农机当前状态奖励最大对应的动作a

c
的q值,s
l
是农机当前状态的上一个状态;a

l
是农机当前状态的上一个状态奖励最大对应的动作;γ的折扣因子(0<γ<1);r(s
c
,s
n
)是从农机当前状态s
c
到农机当前状态的下一个状态s
n
的奖励函数,f(s
c
,a)表示基于农机当前状态s
c
和在农机当前状态s
c
时可选的动作集合a的下一步可能的状态集合,即:
[0113][0114]
其中,是第一个可选的动作,m是可选动作的数量;
[0115]
针对农机路径优化的问题,所述步骤s65中所述计算奖励值的奖励函数设立为:
[0116][0117]
式中,d(s
c
,s
n
)是从农机当前状态(即直线路径)s
c
到农机当前状态的下一个状态s
n
的转弯路径的长度;l是加权系数,可以选择最长的转弯路径或直线路径的长度,使前后两项在同一个数量级;
[0118]
s67:若判断当前q值表中没有收敛元素,则重复s65~s66;
[0119]
若断当前q值表中已有收敛元素,则锁存该状态,并根据传递关系更新q值表,重复所述s66。
[0120]
优选地,本发明的基于改进的q

learning算法优化全局路径的方法如附图5所示:假设某一问题有i个状态和j个输入,结合农机路径优化问题,首先定义一个元素初始值均为0的q值表,和一个元素初始值为1的状态标记表flag,所述状态标记表flag用于存储每条路径是否被连接的状态量。在本实施例中,所述q值表的维度为(k*4),这里的m=[d/w],其中[]是取整计算,k是直线路径的数量;所述状态标记表flag的维度为(k*1);其次确定计算的初始状态(即农机起始直线路径),然后通过所述基于q

learning算法优化全局路径的方法找到最优路径。
[0121]
具体某一次的迭代方法是根据当前状态确定可能的下一个状态集合,计算集合中每个状态对应的奖励值,选择奖励最大的状态更新q值表和状态标记表flag;一直循环迭代过程,直到q值表收敛,即找到最优路径。值得注意的是,在迭代过程中,当q值表的某一个元素收敛时,就将其锁定,也即是不再优化该元素对应状态下的动作的抉择。因为一个状态对应的动作为有限个,因此当有一个元素锁定后,就可以确定下一个最优状态,也就可以同时锁定该状态。本发明的计算方法能够避免每次计算所有可能的下一个状态的奖励值,并且当一个最优状态确定后可以根据传递关系,即根据当前状态快速确定下一个状态,极大地减少计算量。
[0122]
理论上所有直线路径都可以成为下一个状态,这样会大大增加q

learning算法迭代复杂度。并且,重复走过的路径会增加路径的长度,有悖于优化的目标,如果将太远的路径作为可选路径会使计算量变大。此外,对于π型转弯路径,若l
f
过大不利于使总路径长度最小,因此,本发明将下一步可能的状态集合f(s
c
,δ)限制在距离当前直线路径附近,具体来说是被连接的农机当前状态(即直线路径)s
c
与农机当前状态的下一个状态s
n
之间的距离≤4w。
[0123]
优选的,本实施例中,在所述步骤s1

s6之前还包括:若待优化田块内部有障碍物或者待优化田块不是凸多边形田块,会导致路径规划过程复杂,路径也会变得复杂,提高农机工作路径的重复率和遗漏率。于是首先将复杂的田块采用成熟的cell

decomposition方法划分成若干凸多边形的子区域,如附图3所示,具体的,通过农田所有边界(包括外边界和障碍物等)上的顶点做平行线,将农田划分为多个小区域,如图3中编号为1

7的区域。这样划分的区域都是凸多边形,本发明将验证相邻(有共同边界)的子区域组成的区域是否为凸多边形,如果为凸多边形(如图3中子区域1和2以及5和6组成的区域),则用组成的区域为最终划分的子区域。以通过所述步骤s1

s6方法对若干所述凸多边形的子区域进行路径规划。
[0124]
优选的,在所述步骤s1

s6之后还包括:对所述若干凸多边形的子区域进行路径规划,以获取整个田块的最优路径。具体的,对于复杂田块,对每个小的凸多边形的子区域内
的路径规划完成后,将各个小的凸多边形的路径连接起来,完成整个田块的路径规划。为了使总的路径长度最短,子区域间的路径为直线路径。自动化农机一般在大型农田里工作,因此凸多边形数量远远低于凸多边形中的直线路径数量。本实施例通过枚举的方法选择出最短的凸多边形间的连接路径。具体为首先选择一个初始田块,然后选择任意一个凸多边形作为待连接的目标,直至所有的凸多边形都被连接完。将所有田块连接起来的顺序作为一种组合,计算出所有组合的路径长短,选择出最短的一个组合作为最优的连接方案,至此完成整个田块的路径规划。
[0125]
本发明的优点在于:
[0126]
1:本发明将复杂农田的分解成数个简单的子区域,将全局路径的规划问题分解成子区域内路径规划和子区域间路径规划问题,降低了农田路径规划的复杂度。同时引入基于改进的q

learning的农机路径优化方法进行路径规划,提高了农机的工作效率。
[0127]
2:本发明在引入的基于改进的q

learning算法解决了传统算法计算量大的问题,并结合农机路径的特点引入状态标记表,设计合适的路径规划终止条件。
[0128]
3:本发明在算法迭代过程中锁定已经达到最优的状态,然后通过传递关系快速完成相邻状态的优化。可以极大减小迭代过程的计算量。
[0129]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1