1.一种基于a*算法改进的agv路径规划方法,其特征在于,包括以下步骤:
步骤s1,对a*算法的估计启发函数h(n)进行改进,增加了估计启发函数包含的信息;
步骤s2,对a*算法的数据结构和存储方式采用优先队列储存数据的方式,对改进a*算法中open列表根据堆序性使用最小二叉堆进行优化;
步骤s3,对a*算法的节点的扩展方式进行改进;
步骤s4,对a*算法中agv的运动遇障处理进行改进。
2.根据权利要求1所述的一种基于a*算法改进的agv路径规划方法,其特征在于:步骤s1中,基于仓储环境模型,对估计启发函数h(n)进行改进,采用如下式(1)所示的估计启发函数h(n)处理多agv的路径规划:
其中,d为切比雪夫距离d=|xd-xn|+|yd-yn|,m、n分别表示路径nn1和路径nn2上的运行agv的数量,当m、n都为0且α为1时,即为单agv的a*路径规划算法。
3.根据权利要求1所述的一种基于a*算法改进的agv路径规划方法,其特征在于:步骤s2中,为了提高a*算法的搜索效率,采用优先队列的方式进行数据的存储,不同于一般的队列,优先队列总是将当前队列中的最大或最小元素出队,优先队列的实现常选用二叉堆,考虑到a*算法在搜索过程中总是从open表中选取最小评价值的节点进行节点扩展,将优先队列这一数据结构应用于a*算法,根据堆序性,获取最小评价值节点的时间复杂度仅为o(1),可以提高a*算法的搜索效率。
4.根据权利要求1所述的一种基于a*算法改进的agv路径规划方法,其特征在于:步骤s2中,对改进a*算法中open列表根据堆序性使用最小二叉堆进行优化的步骤为:
步骤(1),初始化open表、closed表和初始节点s:建立open表和closed表,将起始节点s存入open表,open表采用优先队列这一数据结构存放刚生成的节点s,并对优先队列按照与原行驶方向相同的节点最优进行重排序,closed表存放已经被扩展或者将要被扩展的节点;
步骤(2),判断与起始节点相连接的节点集p中是否包含目标节点e:如果是,则将节点e移入closed表中,算法规划成功;如果否,则将节点集p中的所有节点移入open表,将节点s移入closed表中;
步骤(3),按照评价函数f(n)的值对open表中的所有节点进行排序;
步骤(4),将排序后open表的第一个节点作为下一个被扩展的节点n并移入closed表中,将与节点n相连接且不在closed表中的节点存入open表,重复步骤(4),直到open表中有目标点;
步骤(5),如果在agv的运动过程中发生故障或者遇到障碍物,更新环境地图并以当前节点作为路径规划的起始节点s,跳转至步骤(2)。
5.根据权利要求4所述的一种基于a*算法改进的agv路径规划方法,其特征在于:步骤s3中,如果某节点n的多个后继节点具有相同的评价值f(n),优先选择与原行驶方向相同的节点进行扩展,减少agv行驶路径的转向次数;如果该节点n仍存在多个相同评价值f(n)的后继节点,优先选择open表中靠前的节点进行扩展。
6.根据权利要求1所述的一种基于a*算法改进的agv路径规划方法,其特征在于:步骤s4,在agv的运动过程中发生故障或者遇到障碍物时,更新环境地图并以当前节点作为路径规划的起始节点s。
7.根据权利要求6所述的一种基于a*算法改进的agv路径规划方法,其特征在于:步骤s4中,使用rfid以及光电信号传感器对自身和障碍物的位置进行定位。
8.根据权利要求1所述的一种基于a*算法改进的agv路径规划方法,其特征在于:步骤s1中,对仓储环境模型选用拓扑建模法进行建模。