发明内容
本发明的目的在于克服现有技术的不足,提供一种合计合理、效率高、安全性强的用于密集存储区域的移动机器人路径规划方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种用于密集存储区域的移动机器人路径规划方法,包括以下步骤:
步骤1:调度层服务器建立一初始化网状路径图;
步骤2:调度层服务器检测到有存取货物任务时,获取起始点和目标点信息,在起始点和目标点之间再划分若干个子任务,每个子任务又设有各自的起始点和目标点,每个子任务被划分以下任务类型之一:空车寻货子任务或负载运货子任务;
步骤3:调度层服务器根据存取货物的子任务和任务类型建立移动机器人动态规划路径并将移动机器人动态规划路径发送给移动机器人;
步骤4:移动机器人接收移动机器人动态规划路径并执行相应的子任务;
步骤5:移动机器人执行完相应的子任务后,向调度层服务器发送移动机器人的动态位置、货物的动态位置以及移动机器人的负载状态;
步骤6:调度层服务器根据移动机器人的报告,更新移动机器人的当前位置、负载状态、与原起始点及目标点相关的权值,循环执行步骤3至步骤6直至所有子任务完成。
而且,所述建立初始化网状路径图的方法包括以下步骤:
⑴获得存储位图纸,设所有存储位为空存储位;
⑵建立存储点:取每个存储中心点作为存储点;
⑶建立路点:沿着巷道行驶路线分别与两边各个存储点作垂线,其垂线的交点为路点;
⑷连接以上任意相邻两点之间的连线作为移动机器人行走路线,从而构成初始化网状路径图。
而且,所述移动机器人行走路线包括垂直方向两点之间的连线、水平方向两点之间的连线、倾斜角度方向两点之间的连线。
而且,所述的存储点包括如下属性:存储点在存储区中的位置、货物存放时的角度、存储位的长度、存储位的宽度;所述的路点包括如下属性:路点在存储区中的位置、停放货物时的角度、停放货物时的长度、停放货物时的宽度、路点是否可供移动机器人旋转。
而且,所述网状路径图上的每条线段设有权值,该权值等于距离的长度。
而且,所述权值的计算方法为:⑴在当前路径有障碍物的条件下,当任务类型为负载送货任务时,距离值为无穷大;⑵当任务类型为空车寻货时,其距离值为实际距离。
而且,所述调度层服务器建立动态规划路径的方法为:调度层服务器将起始点信息、目标点信息、移动机器人的负载状态以及权值传输给图搜索法,由图搜索法根据上述参数找出从起始点到目标点最短路径作为移动机器人当前路径,从而得到移动机器人动态规划路径。
而且,所述的移动机器人动态规划路径分为移动机器人空载动态规划路径和移动机器人负载动态规划路径。
而且,所述移动机器人在执行空车寻货子任务时,采用如下方式执行:移动机器人钻入货物托盘下面,在货物托盘下面行走;移动机器人在执行负载送货子任务时,采用如下方式执行:移动机器人钻入货物托盘下方并顶起货物托盘及其上面的货物在无障碍物的巷道或自由区域行走。
而且,所述的移动机器人为全自动搬运车,所述的货物托盘由四条托盘腿支撑地面且四条托盘腿略高于移动机器人的高度。
本发明的优点和积极效果是:
1、本规划方法将移动机器人每次执行的任务拆分为两种不同的任务类型,按照不同任务类型划分不同的行走区间,节省了移动机器人在行车时占用主干道或自由空间的二分之一的占用时间,当任务繁忙需要多移动机器人并发操作时,用此方法可以从根本上解决在主干道上多移动机器人安全避碰问题,同时也降低了多移动机器人安全避碰运算的复杂度,减少了运算的时空消耗。
2、本规划方法通过在总任务下划分子任务、在子任务下细分任务类型、执行子任务结束后向调度层服务器实时报告反馈的方法,将全局路径规划的重规划时间缩短到每个子任务执行的瞬间,从而提高了系统的实时性和有效性。
具体实施方式
以下结合附图对本发明实施例做进一步详述:
一种用于密集存储区域的移动机器人路径规划方法,如图1所示,是在三层架构的控制系统上实现的,该控制系统包括人机接口层、服务调度层和执行层,人机接口层采用用户操作终端实现存取货物操作功能,执行层采用移动机器人完成存取货物任务,服务调度层采用调度层服务器与用户操作终端和移动机器人进行通信,实现路径规划方法以控制移动机器人执行存取货物操作。人机接口层向服务调度层提出存取货物请求,服务调度层响应请求,根据任务的起始点和目标点预先做出一个无碰路径规划,并将这个无碰路径规划发送给执行层,执行层的移动机器人接受指令,按照预先规划的路径执行存取货物任务。
本规划方法基于在先专利申请(专利名称:一种高密度自动立体仓储系统,申请号:201210052054.3),移动机器人采用全自动搬运车,能够在保证车身不动的情况下,通过扭转车轮角度使货物斜线平移、水平横移和原地半径旋转运动。货物均放置在货物托盘上,货物托盘由四条托盘腿支撑地面,四条托盘腿的高度略高于移动机器人的高度,移动机器人可以在任意两条托盘腿之间行走。仓储区的巷道两边为多排多列式存储区域,巷道内设有供移动机器人旋转的区域,某些位置为0度或180度直行。
一种用于密集存储区域的移动机器人路径规划方法,如图2所示,包括以下步骤:
步骤1:调度层服务器建立一初始化网状路径图。
调度层服务器采用如下处理过程建立初始化网状路径图:
1、获得存储位图纸,设所有存储位为空存储位;
2、建立存储点:取每个仓位中心点作为仓位点;
3、建立路点:沿着巷道行驶路线分别与两边各个存储点作垂线,其垂线的交点为路点;
4、连接以上任意相邻两点之间的连线作为移动机器人行走路线:由于移动机器人可以在保证车头和车身姿态不变的情况下,通过转动车轮角度从而实现斜线方向运动以及横向运动,因此,移动机器人行走路线包括垂直方向两点之间的连线、水平方向两点之间的连线、倾斜角度方向两点之间的连线,将上述连线连接在一起构成初始化网状路径图。
通过以上处理过程建立的初始化网状路径图,如图3所示。该初始化网状路径图是针对没有任何货物的条件而设计的,全部存储区域为自由区域。该网状路径图由很多水平方向线段、垂直方向线段、倾斜角度方向的线段组成,这些线段共同构成移动机器人行走序列。初始化网状图的所有线段都为双向线段,凡是没有标识箭头的线段都为双向线段,双向线段意味着负载或空载的移动机器人在周围没有障碍物的地面上可以沿着左右、上下、左上、左下、右上、右下方向来回任意行走。
移动机器人行走序列分为两类,一类为移动机器人负载时绕开障碍物的行走序列,一类为移动机器人空载时钻到货物下面、在货物之间的行走序列。移动机器人之所以能够在货物下面行走是由于货物托盘具有移动机器人可在下面行走的特征:货物托盘由四条腿支撑地面,托盘腿的高度略高于移动机器人的高度,移动机器人可以在任意两条托盘腿之间行走。
网状路径图上各线段的端点称为存储点或路点,每个存储点和路点具有相应的属性。存储点包括如下多个属性:存储点在存储区中的位置(X、Y)、货物存放时的角度(θ)、存储位的长度(L)、存储位的宽度(W)。路点包括多个属性:路点在存储区中的位置(X、Y)、路点是否可供移动机器人旋转。
网状路径图上每条线段还设有权值,权值等于距离的长度,权值大则距离远,权值小则距离近。权值的计算方法如下:(1)在当前路径有障碍物的条件下,当任务类型为负载送货任务时,距离值为无穷大,也就是说,在当前路径有障碍物(货物)的条件下,当任务类型为存放货物、移动机器人为负载状态时,距离值为无穷大;(2)当任务类型为空车寻货时,其距离值为实际距离。也就是说,在当前路径有障碍物(货物)的条件下,当任务类型为提取货物、移动机器人为空载状态时,由于移动机器人可以钻入障碍物下面行走,所以视同有障碍物为无障碍物,其距离值为实际距离。
图搜索法根据权值不同,能够找出从起始点到目标点最短路径作为移动机器人当前路径。
步骤2:调度层服务器检测到有存取货物任务时,获取起始点和目标点信息,在起始点和目标点之间再划分若干个子任务,每个子任务又有各自的起始点和目标点,每个子任务再划分其任务类型,或者为空车寻货子任务,或者为负载运货子任务;在本步骤中,存取货物任务包括空车寻货子任务和负载送货子任务。由于目标点周围的状态可能存放有其他货物,因此,一次存取货物任务可能包括多个空车寻货子任务和负载送货子任务。
步骤3:调度层服务器根据存取货物的子任务建立移动机器人动态规划路径并将移动机器人动态规划路径发送给移动机器人。
调度层服务器建立动态规划路径的方法为:调度层服务器将起始点信息、目标点信息、移动机器人的负载状态以及权值传输给图搜索法,由图搜索法根据上述参数找出从起始点到目标点最短路径作为移动机器人当前路径,从而得到移动机器人动态规划路径。根据子任务的类型,移动机器人动态规划路径分为移动机器人空载动态规划路径和移动机器人负载动态规划路径。对于移动机器人空载动态规划路径,移动机器人的行走序列为:移动机器人钻入货物托盘下面,在货物托盘下面行走,而不占用主干道或自由空间。
步骤4:移动机器人接收移动机器人动态规划路径并执行相应的子任务。
移动机器人根据规划路径根据不同子任务规定不同的行走序列。移动机器人在执行空车寻货子任务时,采用如下方式执行:移动机器人钻入货物托盘下面,在货物托盘下面行走,而不占用主干道或自由空间;移动机器人在执行负载送货子任务时,采用如下方式执行:移动机器人钻入货物托盘下方并顶起货物托盘及其上面的货物,再沿着无障碍物的巷道或自由区域将货物运送到指定地点
步骤5:移动机器人执行完相应的子任务后,向调度层服务器发送移动机器人的动态位置和货物的动态位置,并且移动机器人通过开闭顶升装置切换移动机器人当前的负载状态,为下次任务做好准备。
步骤6:调度层服务器根据移动机器人的报告,更新移动机器人的当前位置、负载状态、与原起始点及目标点相关的权值。循环执行步骤3至步骤6直至所有子任务完成。
下面举例说明对本规划方法进行详细说明。
存入第一件货物的动态路径,如图4所示。①货物周围的连线都变成了带有箭头指向的连线,箭头所指方向的路径为有效路径,箭头相反方向路径为无效路径。其原理为:A、当存入货物后,以货物为目标点的所有相关路径因目标点已存入货物而不能再继续存入新的货物,因此,所有路径为阻塞状态,权值为无穷大;B、以货物为起始点向外连接任意相邻一点,由于任意临近点都为自由区域,此时,以货物为起始点,以其周围任意临近点的连线都为有效路径;C、根据以上分析,当货物存入以后,其周围初始化连线由双向有效变为单向有效;②移动机器人行走序列发生了变化:当存入货物后,其周围产生箭头的斜线不能走空车,因为移动机器人在货物下面空载行走只能沿着托盘下面每两条腿的对边作水平或垂直方向运动。
存入若干件货物的动态路径,图5所示。从图中看出,如果以各个货物为起始点,向外连接它们的临近点,由于各个货物周围临近点状态不同,因此它们被调度层服务器更新后的各自的网状图不同,变化如下:①2号和3号目标点,由于障碍物本身相互作为对方的目标点,所以,它们之间的载货路径不再存在;②由于2号和3号货物下面照样可允许空载移动机器人行走,因此用虚线表示这只是一条空载路径;③6号障碍物和5号障碍物相比,少了一条线,这是因为其中一条线所指目标点为障碍物7,故该条路径中断④图中带箭头的斜线段只能行走载货移动机器人,而带箭头的水平和垂直线段意味着双轨迹区域,既是载货路径又是空载路径,但是载货路径必须是箭头指向的位置为目标点。
存入所有货物的动态路径,如图6所示。从图中看出,当存入全部货物后,①在存满货物的区域全部为横向和纵向的虚线;②巷道两边的货物每个货物只有一条有效路径,而两边的对角线都为无效路径。因为,判断对角线是否有效的条件是:与这个对角线相交的另外一条对角线BF、CF的两个端点(也就是存储点或路点)上都没有存储货物,由于目前B、C两个端点上都有障碍物,所以,只有AF为有效路径。
图7至图17给出了一个提取货物的处理过程,包括如下处理过程:
1、如图7所示,在执行任务前,调度层服务器先作任务规划,包括4个方面:①确定总任务的起始点、目标点(图中标识为1,2)②确定货物取出后的存放地点(图中标识为3)(存放在巷道某个路点上)③确定障碍物临时存放地点(图中标识为4、5)④将取货任务划分为10子任务及各自的起始点和目标点(见下面)。
2、如图8所示,执行第1个子任务,该子任务执行过程如下:
A、调度层服务器判断执行第1个子任务的起始点为6-1,目标点为6-2;
B、判断移动机器人当前状态(移动机器人上次任务执行完毕后报告调度层服务器空载状态),根据移动机器人当前为空载状态,用图搜索法搜索出移动机器人空载路径,如图中6-1到6-2的粗箭头所指方向。
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于本任务中货物未发生移动,所以路径无变化。
D、移动机器人报告当前位置及当前状态。当移动机器人空载行走到6-2后,在将货物顶起的瞬间,向调度层服务器发送由空载变为负载的信号。
3、如图9所示,执行第2个子任务,该子任务执行过程如下:
A、调度层服务器判断执行第2个子任务的起始点为6-2,目标点为6-3;
B、判断当前移动机器人状态,根据移动机器人当前为负载状态,用图搜索法搜索移动机器人的负载路径,如图中6-2到6-3的粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径:由于6-2的障碍物已经挪走,路径变化为3根虚线到3根单向实线;由于6-3从没有障碍物到有障碍物,路径变化为从3根双向实线到3根单向实线。
D、移动机器人报告当前位置及当前状态。当移动机器人行走到6-3时,在关闭启顶升装置将货物放下的瞬间,向调度层服务器发送由负载变为空载的信号。
4、如图10所示,执行第3个子任务,该子任务执行过程如下:
A、调度层服务器判断第3个子任务的起始点为6-3,目标点为6-4;
B、判断当前移动机器人状态,根据移动机器人当前为空载状态,用图搜索法搜索移动机器人的空载路径(也可以选择实线路径,但本实施例选择虚线路径),如图中6-2到6-3的粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于本任务中货物未发生移动,所以路径无变化。
D、移动机器人报告当前位置及当前状态。当移动机器人空载行走到6-4后,在将货物顶起的瞬间,向调度层服务器发送由空载变为负载的信号。
5、如图11所示,执行第4个子任务,该子任务执行过程如下:
A、调度层服务器判断出第4个子任务的起始点为6-4,目标点为6-5;
B、判断当前移动机器人状态,根据移动机器人当前为负载状态,用图搜索法搜索移动机器人的负载路径:如图中6-4到6-5粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于6-4的障碍物已经挪走,路径变化为从原来3根虚线到3根单向实线;由于6-5从没有障碍物到有障碍物,路径变化为从原来的3根双向实线到3根单向实线。
D、移动机器人报告当前位置及当前状态。当移动机器人行走到6-5时,在关闭顶升装置将货物放下的瞬间,向调度层服务器发送由负载变为空载的信号。
6、如图12所示,执行第5个子任务,该子任务执行过程如下:
A、调度层服务器判断出第5个子任务的起始点为6-5,目标点为6-6;
B、判断当前移动机器人状态,根据移动机器人当前为空载状态,用图搜索法搜索移动机器人的空载路径(可以选择两条路径,但为今后扩充功能,尽量不占用实线路径,而使用虚线路径),如图中6-4到6-5粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于本任务中货物未发生移动,所以路径无变化。
D、移动机器人报告当前位置及当前状态。当移动机器人空载行走到6-6后,在将货物顶起的瞬间,向调度层服务器发送由空载变为负载的信号。
7、如图13所示,执行第6个子任务,该子任务执行过程如下:
A、调度层服务器判断出第6个子任务的起始点为6-6,目标点为6-7;
B、判断当前移动机器人状态,根据移动机器人当前为负载状态,用图搜索法搜索移动机器人的负载路径,如图中6-6到6-7粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于6-6的障碍物已经挪走,路径变化为从3根虚线到3根实线;由于6-7从没有障碍物到有障碍物,路径变化为从3根双向实线到3根单向实线。
D、移动机器人报告当前位置及当前状态。当移动机器人行走到6-7时,在关闭顶升装置将货物放下的瞬间,向调度层服务器发送由负载变为空载的信号。
8、如图14所示,执行第7个子任务,该子任务执行过程如下:
A、调度层服务器判断第7个子任务的起始点为6-7,目标点为6-5;
B、判断当前移动机器人状态,根据移动机器人当前为空载的状态,用图搜索法搜索移动机器人的空载路径,如图中6-7到6-5粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于本次任务是空车移动,障碍物没有发生变化,路径不变;
D、移动机器人报告当前位置及当前状态。当移动机器人空载行走到6-5后,在将货物顶起的瞬间,向调度层服务器发送由空载变为负载的信号。
9、如图15所示,执行第8个子任务,该子任务执行过程如下:
A、调度层服务器判断第8个子任务的起始点为6-5,目标点为6-4;
B、判断当前移动机器人状态,根据移动机器人当前为负载的状态,用图搜索法搜索移动机器人的负载路径,如图中6-5到6-4粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于6-5的障碍物已经挪走,路径变化为从3根单向实线到3根双线实线;由于6-4从没有障碍物到有障碍物,路径变化为2根单向实线到2根虚线;
D、移动机器人报告当前位置及当前状态。当移动机器人行走到6-4时,在关闭顶升装置将货物放下的瞬间,向调度层服务器发送由负载变为空载的信号。
10、如图16所示,执行第9个子任务,该子任务执行过程如下:
A、调度层服务器判断第9个子任务的起始点为6-4,目标点为6-3;
B、判断当前移动机器人状态,根据移动机器人当前为空载的状态,用图搜索法搜索移动机器人的空载路径,如图中6-4到6-3粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于本次任务是空车移动,障碍物没有发生变化,路径不变;
D、移动机器人报告当前位置及当前状态。当移动机器人空载移动到6-3后,在将货物顶起的瞬间,向调度层服务器发送由空载变为负载的信号。
11、如图17所示,执行第10个子任务,该子任务执行过程如下:
A、调度层服务器判断出第8个子任务的起始点为6-3,目标点为6-2;
B、调度层服务器判断当前移动机器人状态,根据移动机器人当前为负载的状态,用图搜索法搜索移动机器人的负载路径,如图中6-3到6-2最短空载路径如图中粗箭头所指方向;
C、调度层服务器更新路径:当子任务结束时,调度层服务器开始更新路径。由于6-3的障碍物已经挪走,路径变化为从3条单向实线到3条不带箭头的双向实线;由于6-2从没有障碍物到有障碍物,路径变化为增加了2条虚线。
D、移动机器人报告当前位置及当前状态。当移动机器人行走到6-2时,在关闭顶升装置将货物放下的瞬间,向调度层服务器发送由负载变为空载的信号。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。