基于BP网络的AGV导航行程偏差修正方法与流程

文档序号:17178099发布日期:2019-03-22 20:40阅读:216来源:国知局
基于BP网络的AGV导航行程偏差修正方法与流程

本发明涉及agv导航技术领域,主要涉及一种基于bp网络的agv导航行程偏差修正方法。



背景技术:

随着室内移动机器人研究的发展,其应用范围也越来越广泛,无论在人们的日常生活中还是工业生产中都扮演着重要的角色。在自主式移动机器人研究的所有技术中,其中导航技术是实现其自主运行、自主决策和自主规划的前提关键技术,是这一研究领域的核心,是相关科研人员所聚焦的研究热点、重点和难点。

agv是一种无人驾驶、能够沿着设定好的路径行进并具有运载能力的搬运设备,生产制造环境中在运输、举重、检测等方面提供极大便利,是真正意义上的机器人。agv作为一类特殊的移动机器人,同时也存在移动机器人目前所面对的一些比较棘手的通用问题,其中最核心的问题就是定位导航问题。

随着导航技术的不断发展,agv可选择的导引方式也越来越丰富,目前比较成熟的导引方式有惯性导引、电磁轨道导引、磁条导引、光学导引、激光导引和视觉导引等。其中,惯性导引通过陀螺仪或编码器进行导航,路径布局灵活,不需导线,但由于导航信息经过积分而产生,包括传感器的测量误差也在定位误差上有积分效应,使得定位误差随时间的推移而不断增大,导致agv的定位不精确,影响了agv的工作效率。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种成本低廉且实现方式简单高效的基于bp网络的agv导航行程偏差修正方法。

为了解决上述技术问题,本发明采用以下技术方案:

基于bp网络的agv导航行程偏差修正方法,其包括agv行驶偏差修正数据获取过程、agv行驶偏差模型训练过程及agv行驶偏差修正过程。

agv行驶偏差修正数据获取过程,包括:准备阶段和获取阶段。

agv行驶偏差修正数据获取过程的准备阶段,包括以下步骤:

步骤a,在agv车身上安装rfid阅读器及磁传感器;

步骤b,在agv的工作区域内,根据具体情况建立直角坐标系,并以该直角坐标系作为agv导航的全局坐标系;

步骤c,在全局坐标系上,规划agv行驶路径,并将所规划的agv行驶路径分割为n段可用解析几何表达直线段或曲线段的轨迹线段;

步骤d,在agv的工作区域内,在所规划的agv行驶路径的n段轨迹直线段或轨迹曲线段上,根据具体情况或随机选取k个点作为agv行驶定位修正点d1,经人工测量获取d1的坐标为(x0,y0),在对应定位修正点附近选取z个磁钉定位点,其中z≥3,测量这z个磁钉定位点在全局坐标系上的坐标并安装磁钉,在该修正点d1上安装rfid电子标签,该rfid电子标签内存储z个磁钉定位点在全局坐标系上的坐标,z个磁钉定位点的坐标按照与该定位修正点的欧氏距离由近到远的顺序进行存储,其中,这z个磁钉定位点的坐标分别为a1(x1,y1),a2(x2,y2),a3(x3,y3),……,az(xz,yz),距离所述修正点d1的距离分别为d1'、d2',……,dz'(其中d1'<d2'<……<dz');

agv行驶偏差修正数据获取过程的获取阶段,包括以下步骤:

步骤e,agv在工作区域内开启并进行行驶,当agv行驶前方的rfid电子标签进入到agv车身上的rfid阅读器的扫描范围内,所述rfid阅读器将读取该rfid电子标签上所存储的z个磁钉定位点在全局坐标系上的坐标,并传输至控制器进行定位修正计算使用;

步骤f,agv车身上磁传感器测得agv与附近z个磁钉的距离分别为d1、d2,……,dz(其中d1<d2<……<dz),agv车身上rfid阅读器测得agv与rfid电子标签的距离为d0,若d0<d1,则行驶偏差修正输入向量为(x1,y1,d1,x2,y2,d2,……,xz,yz,dz),若d0>d3,则行驶偏差修正输入向量为(x1,y1,dz,x2,y2,d2,……,xz,yz,d1);

agv行驶偏差模型训练过程,包括以下步骤:

步骤g,从k个所述agv行驶行驶偏差修正点中随机或按照某一遍历规则选取其中一个行驶偏差修正点p,在点p附近随机选取一点测量点q,经人工测量获取测量点q与附近z个磁钉a1、a2、……、az的距离分别为d1”、d2”,……,dz”,获得一组未标定agv行驶偏差模型训练数据(x1,y1,d1”,x2,y2,d2”,……,xz,yz,dz”),经人工测量获取所述测量点q与所述行驶偏差修正点p所在轨迹线段的距离d',用d'作为标定值对训练数据(x1,y1,d1”,x2,y2,d2”,……,xz,yz,dz”)进行标定,从何获取一组已标定agv行驶偏差模型训练数据;

步骤h,重复执行步骤g一共n次,获得n组已标定agv行驶偏差模型训练数据,从该n组所述已标定agv行驶偏差模型训练数据中随机选取r组构成训练集r,剩余的n-r组构成测试集s;

步骤i,创建一个u层bp神经网络作为agv行驶偏差模型,u≥3,找到模型的隐藏层最佳神经元个数,按预设值设定学习率、神经元激活函数、训练最小均方误差目标、训练最小性能梯度及最大训练次数等模型超参数;

步骤j,所述agv行驶偏差模型进行第一次训练:训练出泛化能力满足用户实际需求的agv行驶偏差模型的所有权值和阈值,若该agv行驶偏差模型经第一次训练后,泛化能力满足用户实际要求,则该agv行驶偏差模型训练完成,可直接用于agv行驶偏差的预测,否则,对该agv行驶偏差模型进行第二次训练;

步骤k,所述agv行驶偏差模型进行第二次训练:通过微调,增强所述agv行驶偏差模型经第一次训练后的泛化能力,使该agv行驶偏差模型泛化能力能够满足用户实际要求,若该agv行驶偏差模型泛化能力仍未满足用户实际要求,则继续重复执行步骤f,从而增大所述训练集r,并继续执行步骤i及步骤j,直至完成第二次训练的所述agv行驶偏差模型泛化能力满足用户实际要求,此时所述agv行驶偏差模型训练完成;

步骤l,将步骤f获取的所述行驶偏差修正输入向量,输入至训练完成的所述agv行驶偏差模型中,模型的输出即为agv当前所在位置与所规划的agv行驶路径的偏差,agv控制器通过该行驶路径的偏差,利用电机速度控制算法对agv的行驶进行控制,从而消除agv的行驶路径的偏差。

与现有技术相比,本发明提供的基于bp网络的agv导航行程偏差修正方法,其利用rfid电子标签和磁钉获取agv惯性导航行驶偏差修正的所需数据,通过训练完成的所述agv行驶偏差模型直接获得agv惯性导航行驶过程中的偏差,从而方便控制电机对agv的行驶进行控制来消除行驶路径偏差,实现了agv通过车轮上编码器在室内能够高效导航,使惯性导航在成本低廉的情况下也能有优良的导航效果。

优选的,所述定位修正点的位置选择在所述轨迹直线段或者轨迹曲线段的两个端点之间,保证定位修正点只对应唯一的轨迹直线段或者轨迹曲线段。

优选的,在全局坐标系上定义逆时针方向为正方向,正方向左侧偏差为正,右侧偏差为负,确定所述定位修正点d1前三个磁钉定位点的方式为:以所述定位修正点d1为圆心,以d为半径作圆a1,以所述定位修正点d1为端点,以其在轨迹线段上切线的正方向为方向,作射线b1,射线b1与圆a1相交于点c1,在圆a1上点c1附近随机或根据具体情况选取一点a1,经人工测量得在全局坐标系上坐标a1(x1,y1);以点a1为圆心,以aa×d为半径作圆a2,圆a2与所述定位修正点d1所在轨迹线段相交于点c2,在圆a2上点c2附近随机或根据具体情况选取一点a2,经人工测量得在全局坐标系上坐标a2(x2,y2);以点a2为圆心,以bb×d为半径作圆a3,圆a3与所述定位修正点d1所在轨迹线段相交于点c3,在圆a3上点c3附近随机或根据具体情况选取一点a3,经人工测量得在全局坐标系上坐标a3(x3,y3);其中a1、a2及a3即为所选取的前三个所述磁钉定位点。

优选的,所述圆a1的半径d、系数aa和系数bb满足:d<aa<bb,所述rfid阅读器扫描半径设置为3×bb×d。

优选的,所述u的值为3,创建一个三层bp神经网络作为agv行驶偏差模型,分别为输入层、隐藏层和输出层,输入层神经元个数为3×z,输出层神经元个数为1。

隐藏层神经元个数设定范围在2.25×z到12×z之间(包括两个端点值2.25×z和12×z,共p个数);依次设定隐藏层神经元个数为所述隐藏层神经元个数设定范围内的所有整数,按遍历搜索的方式寻找隐藏层最佳神经元个数,此处寻找隐藏层最佳神经元个数过程中每次bp神经网络的训练中,训练集均为从所述训练集r中随机抽取其中的10%的训练数据组来组成训练集rp,测试集均为从所述测试集s中随机抽取其中的5%的训练数据组来组成测试集sp;隐藏层神经元个数从设置为2.25×z开始,利用所述训练集rp进行第一次训练,训练完成后预测所述测试集sp的数据,将所述测试集sp的预测值与标定值进行对比,计算出均方根误差rmse01,重新初始化所有权值和阈值并利用所述训练集rp进行第二次训练,训练完成后预测所述测试集sp的数据,将所述测试集sp的预测值与标定值进行对比,计算出均方根误差rmse02,重新初始化所有权值和阈值并利用所述训练集rp进行第三次训练,训练完成后预测所述测试集sp的数据,将所述测试集sp的预测值与标定值进行对比,计算出均方根误差rmse03,比较rmse01、rmse02和rmse03的大小,得到其中的最小值rmse(1)作为bp神经网络隐藏层神经元个数为2.25×z时所对应的该模型预测效果;重复上述步骤找到bp神经网络隐藏层神经元个数分别为2.25×z+1、2.25×z+2、2.25×z+3……12×z时所对应的rmse(2)、rmse(3)…rmse(p),找出rmse(1)、rmse(2)…rmse(p)中的最小值rmsem所对应的隐藏层神经元个数nn,则bp神经网络隐藏层最优神经元个数为nn,若有多个隐藏层神经元个数所对应的模型预测效果为rmsem,则取其中隐藏层神经元个数最少的个数作为bp神经网络隐藏层最优神经元个数。

将agv行驶偏差模型的隐藏层神经元个数设置为nn,利用高斯分布随机数初始化所述agv行驶偏差模型的所有权值和阈值;学习率初始化为t;所有神经元激活函数均采用tansig;训练最小均方误差目标设置为s;训练最小性能梯度设置为s';最大训练次数设置为nn;训练算法选取贝叶斯正则化算法;其中学习率t、最小均方误差目标s、训练最小性能梯度s'及最大训练次数nn等模型超参数按预设值进行设定。

优选的,对于步骤j,利用所述训练集r通过贝叶斯正则化算法对步骤i所创建的agv行驶偏差模型进行训练,直至满足训练均方误差达到训练最小均方误差目标或训练性能梯度达到训练最小性能梯度或训练次数达到最大训练次数中任意一条训练结束条件后,完成该agv行驶偏差模型的第一次训练;该agv行驶偏差模型的第一次训练完成后,利用该完成第一次训练的agv行驶偏差模型对所述测试集s中的训练数据进行预测得到预测值,并将该预测值与对应的标定值进行对比,计算出训练数据的预测值与其对应的标定值间的均方根误差rmse及可决系数r^2;根据rmse结合r^2判断该agv行驶偏差模型完成第一次训练后的模型泛化能力;若该agv行驶偏差模型完成第一次训练后模型泛化能力能够满足用户要求,则保存该完成第一次训练的agv行驶偏差模型的所有权值w和阈值b,该agv行驶偏差模型训练完成,可直接用于agv行驶偏差的预测,否则,对该agv行驶偏差模型进行第二次训练。

优选的,所述rfid阅读器每隔一个扫描周期t′进行一次扫描,确保agv在设定好的路径上行驶。

附图说明

图1是本发明的基于bp网络的agv行驶偏差模型结构示意图;

图2是本发明磁钉定位点设置结果示意图;

图3是本发明的rfid电子标签内储存信息表。

具体实施方式

以下结合附图说明本发明的一种优选的具体实施方式。

参见图1至图3,基于bp网络的agv导航行程偏差修正方法,其包括agv行驶偏差修正数据获取过程、agv行驶偏差模型训练过程及agv行驶偏差修正过程。

agv行驶偏差修正数据获取过程,包括:准备阶段和获取阶段。

agv行驶偏差修正数据获取过程的准备阶段,包括以下步骤:

步骤a,在agv车身上安装rfid阅读器及磁传感器;

步骤b,在agv的工作区域内,根据具体情况建立直角坐标系,并以该直角坐标系作为agv导航的全局坐标系;

步骤c,在全局坐标系上,规划agv行驶路径,并将所规划的agv行驶路径分割为n段可用解析几何表达直线段或曲线段的轨迹线段;

步骤d,在agv的工作区域内,在所规划的agv行驶路径的n段轨迹直线段或轨迹曲线段上,根据具体情况或随机选取k个点作为agv行驶定位修正点d1,经人工测量获取d1的坐标为(x0,y0),在对应定位修正点附近选取z个磁钉定位点,其中z=3,测量这3个磁钉定位点在全局坐标系上的坐标并安装磁钉,在该修正点d1上安装rfid电子标签,该rfid电子标签内存储3个磁钉定位点在全局坐标系上的坐标,3个磁钉定位点的坐标按照与该定位修正点的欧氏距离由近到远的顺序进行存储,其中,这3个磁钉定位点的坐标分别为a1(x1,y1)、a2(x2,y2)、a3(x3,y3),距离所述修正点d1的距离分别为d1'、d2'、d3'(其中d1'<d2'<d3');

其中,在全局坐标系上定义逆时针方向为正方向,正方向左侧偏差为正,右侧偏差为负,确定所述定位修正点d1前三个磁钉定位点的方式为:以所述定位修正点d1为圆心,以d为半径作圆a1,其中d为10cm,以所述定位修正点为端点,以其在轨迹线段上切线的正方向为方向,作射线b1,射线b1与圆a1相交于点c1,在圆a1上点c1附近随机或根据具体情况选取一点a1,经人工测量得在全局坐标系上坐标a1(x1,y1);以点a1为圆心,以1.5×d为半径作圆a2,圆a2与所述定位修正点所在轨迹线段相交于点c2,在圆a2上点c2附近随机或根据具体情况选取一点a2,经人工测量得在全局坐标系上坐标a2(x2,y2);以点a2为圆心,以2×d为半径作圆a3,圆a3与所述定位修正点所在轨迹线段相交于点c3,在圆a3上点c3附近随机或根据具体情况选取一点a3,经人工测量得在全局坐标系上坐标a3(x3,y3);其中a1、a2及a3即为所选取的三个所述磁钉定位点;设置三个磁钉定位点既能保证修正的精确性,也能确保修正的响应速度。

所述rfid电子标签内储存的信息,具体包括:定位修正点所在的对应所述轨迹直线段或所述轨迹曲线段的所述二维几何解析式f(x,y)=0、a1的坐标(x1,y1)、a2的坐标(x2,y2)和a3的坐标(x3,y3)。

agv行驶偏差修正数据获取过程的获取阶段,包括以下步骤:

步骤e,agv在工作区域内开启并进行行驶,当agv行驶前方的rfid电子标签进入到agv车身上的rfid阅读器的扫描范围内,其中,所述rfid阅读器扫描半径设置为6×d所述rfid阅读器将读取该rfid电子标签上所存储的3个磁钉定位点在全局坐标系上的坐标,并传输至控制器进行定位修正计算使用;

步骤f,agv车身上磁传感器测得agv与附近z个磁钉的距离分别为d1、d2、d3(其中d1<d2<d3),agv车身上rfid阅读器测得agv与rfid电子标签的距离为d0,若d0<d1,则行驶偏差修正输入向量为(x1,y1,d1,x2,y2,d2,x3,y3,d3),若d0>d3,则行驶偏差修正输入向量为(x1,y1,d3,x2,y2,d2,,x3,y3,d1);

agv行驶偏差模型训练过程,包括以下步骤:

步骤g,从k个所述agv行驶行驶偏差修正点中随机或按照某一遍历规则选取其中一个行驶偏差修正点p,在点p附近随机选取一点测量点q,经人工测量获取测量点q与附近z个磁钉a1、a2、a3的距离分别为d1”、d2”、d3”,获得一组未标定agv行驶偏差模型训练数据(x1,y1,d1”,x2,y2,d2”,x3,y3,d3”),经人工测量获取所述测量点q与所述行驶偏差修正点p所在轨迹线段的距离d',用d'作为标定值对训练数据(x1,y1,d1”,x2,y2,d2”,x3,y3,d3”)进行标定,从何获取一组已标定agv行驶偏差模型训练数据;

步骤h,重复执行步骤g一共n次,获得n组已标定agv行驶偏差模型训练数据,从该n组所述已标定agv行驶偏差模型训练数据中随机选取r组构成训练集r,剩余的n-r组构成测试集s;

步骤i,创建一个三层bp神经网络作为agv行驶偏差模型,找到模型的隐藏层最佳神经元个数,按预设值设定学习率、神经元激活函数、训练最小均方误差目标、训练最小性能梯度及最大训练次数等模型超参数;

其具体过程为:所述u的值为3,创建一个三层bp神经网络作为agv行驶偏差模型,分别为输入层、隐藏层和输出层,输入层神经元个数为9,输出层神经元个数为1。

隐藏层神经元个数设定范围在6.75到36之间(包括两个端点值7和36,共30个数);依次设定隐藏层神经元个数为所述隐藏层神经元个数设定范围内的所有整数,按遍历搜索的方式寻找隐藏层最佳神经元个数,此处寻找隐藏层最佳神经元个数过程中每次bp神经网络的训练中,训练集均为从所述训练集r中随机抽取其中的10%的训练数据组来组成训练集rp,测试集均为从所述测试集s中随机抽取其中的5%的训练数据组来组成测试集sp;隐藏层神经元个数从设置为7开始,利用所述训练集rp进行第一次训练,训练完成后预测所述测试集sp的数据,将所述测试集sp的预测值与标定值进行对比,计算出均方根误差rmse01,重新初始化所有权值和阈值并利用所述训练集rp进行第二次训练,训练完成后预测所述测试集sp的数据,将所述测试集sp的预测值与标定值进行对比,计算出均方根误差rmse02,重新初始化所有权值和阈值并利用所述训练集rp进行第三次训练,训练完成后预测所述测试集sp的数据,将所述测试集sp的预测值与标定值进行对比,计算出均方根误差rmse03,比较rmse01、rmse02和rmse03的大小,得到其中的最小值rmse(1)作为bp神经网络隐藏层神经元个数为7时所对应的该模型预测效果;重复上述步骤找到bp神经网络隐藏层神经元个数分别8、9、10……36时所对应的rmse(2)、rmse(3)…rmse(30),找出rmse(1)、rmse(2)…rmse(30)中的最小值rmsem所对应的隐藏层神经元个数nn,则bp神经网络隐藏层最优神经元个数为nn,若有多个隐藏层神经元个数所对应的模型预测效果为rmsem,则取其中隐藏层神经元个数最少的个数作为bp神经网络隐藏层最优神经元个数。

将agv行驶偏差模型的隐藏层神经元个数设置为nn,利用高斯分布随机数初始化所述agv行驶偏差模型的所有权值和阈值;学习率初始化为t;所有神经元激活函数均采用tansig;训练最小均方误差目标设置为s;训练最小性能梯度设置为s';最大训练次数设置为nn;训练算法选取贝叶斯正则化算法;其中学习率t、最小均方误差目标s、训练最小性能梯度s'及最大训练次数nn等模型超参数按预设值进行设定。

步骤j,所述agv行驶偏差模型进行第一次训练:训练出泛化能力满足用户实际需求的agv行驶偏差模型的所有权值和阈值,若该agv行驶偏差模型经第一次训练后,泛化能力满足用户实际要求,则该agv行驶偏差模型训练完成,可直接用于agv行驶偏差的预测,否则,对该agv行驶偏差模型进行第二次训练;

其中,其具体过程为:利用所述训练集r通过贝叶斯正则化算法对步骤i所创建的agv行驶偏差模型进行训练,直至满足训练均方误差达到训练最小均方误差目标或训练性能梯度达到训练最小性能梯度或训练次数达到最大训练次数中任意一条训练结束条件后,完成该agv行驶偏差模型的第一次训练;该agv行驶偏差模型的第一次训练完成后,利用该完成第一次训练的agv行驶偏差模型对所述测试集s中的训练数据进行预测得到预测值,并将该预测值与对应的标定值进行对比,计算出训练数据的预测值与其对应的标定值间的均方根误差rmse及可决系数r^2;根据rmse结合r^2判断该agv行驶偏差模型完成第一次训练后的模型泛化能力;若该agv行驶偏差模型完成第一次训练后模型泛化能力能够满足用户要求,则保存该完成第一次训练的agv行驶偏差模型的所有权值w和阈值b,该agv行驶偏差模型训练完成,可直接用于agv行驶偏差的预测,否则,对该agv行驶偏差模型进行第二次训练;

步骤k,所述agv行驶偏差模型进行第二次训练:通过微调,增强所述agv行驶偏差模型经第一次训练后的泛化能力,使该agv行驶偏差模型泛化能力能够满足用户实际要求,若该agv行驶偏差模型泛化能力仍未满足用户实际要求,则继续重复执行步骤f,从而增大所述训练集r,并继续执行步骤i及步骤j,直至完成第二次训练的所述agv行驶偏差模型泛化能力满足用户实际要求,此时所述agv行驶偏差模型训练完成;

步骤l,将步骤f获取的所述行驶偏差修正输入向量,输入至训练完成的所述agv行驶偏差模型中,模型的输出即为agv当前所在位置与所规划的agv行驶路径的偏差,agv控制器通过该行驶路径的偏差,利用电机速度控制算法对agv的行驶进行控制,从而消除agv的行驶路径的偏差。

作为优选方案,用户根据自身需求设置所述rfid阅读器每隔一段时间t′进行一次扫描,确保agv在设定好的路径上行驶。

根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对本发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。

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