用于机器人路径规划的方法及装置
技术领域
本发明涉及计算机信息处理领域,具体而言,涉及一种用于机器人路径规划的方法及装置。
背景技术
随着机器人技术的普及,大量的工作通过机器人实现,特别是在仓储物流类的工作中。在使用货到人拣选模式的仓库中,如图1所示,出库拣选工位位于仓库的一边,搬运机器人空闲时随机的分布在储位下方,储位上放有货架,一个货架有两个面,每个面上存放了若干种商品。出库拣选流程为搬运机器人负责把货架搬运到对应的拣选工位,拣选人员开始拣货,拣选完成后搬运机器人再把货架搬运的一个空闲的储位存储。在这种货到人的拣选模式中,搬运机器人的行走线路直接影响着出库拣货的效率。
目前,在对这种拣选模式进行仿真时,路径的计算是通过和数据库的交互实现的。即使用一些高级编程语言,如C++、Java等,即算出搬运机器人行走的线路,并记录到数据库中,然后仿真再从数据库中去读取,调度搬运机器人按照读取的路径来行走。这种和数据库交互的方式简化了仿真的逻辑,但是限制了仿真的规模。对于大规模的拣选库,储位、拣选工位和搬运机器人的数量比较大时,实时在数据库中更新搬运机器人的位置信息,导致交互的数据量增大、交互的频次也有所增加,从而使得仿真模型无法运行,影响仿真的效果。
因此,需要一种新的用于机器人路径规划的方法及装置。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种用于机器人路径规划的方法及装置,能够在仿真中直接计算搬运机器人的行走路径,减少了与数据库交互的频次,并且提高了仿真运行的速度。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提出一种用于机器人路径规划的方法,该方法包括:获取机器人待处理任务的起点与终点;对机器人地图进行初始化处理,所述机器人地图包括空车地图与满车地图;通过所述机器人地图与最短路径算法获取所述起点与所述终点的最短路径;以及通过反向追踪算法确定所述机器人处理任务的行进路线。
在本公开的一种示例性实施例中,还包括:创建所述机器人地图。
在本公开的一种示例性实施例中,所述创建所述机器人地图,包括:通过节点与边创建所述机器人地图;其中,所述节点包括多个类型,多个属性,所述边包括多个状态。
在本公开的一种示例性实施例中,所述节点的类型包括路径节点,储位节点,充电桩节点,柱子节点,出库工作站节点;所述节点的属性包括满车节点与空车节点。
在本公开的一种示例性实施例中,所述边的状态包括联通边和非联通边。
在本公开的一种示例性实施例中,所述对机器人地图进行初始化处理,所述机器人地图包括空车地图与满车地图,包括:将所述机器人地图通过N行N列的从至表进行表示;行标与列标为所述机器人地图中的所述节点的标识;以及通过权重表示所述机器人地图中的所述联通边与所述非联通边;其中,N为所述机器人地图中的所述节点的数量。
在本公开的一种示例性实施例中,所述通过所述机器人地图与最短路径算法获取所述起点与所述终点的最短路径,包括:在所述机器人地图中确定距离所述起点最近的第二点;判断所述第二点是否为所述终点;以及如果所述第二点为所述终点则生成最短路径。
在本公开的一种示例性实施例中,还包括:如果所述第二点不是所述终点则以第二点为源点;对所有以所述源点为起点的边进行松弛操作;如果所述松弛操作成功,则更新路径表,并继续寻找距离源点最近的其他节点,直至所述其他节点为所述终点为止。
在本公开的一种示例性实施例中,还包括:在进行所述最短路径算法之前,建立所述路径表;建立包含所述终点的边的集合。
在本公开的一种示例性实施例中,所述通过反向追踪算法确定所述机器人处理任务的行进路线,包括:通过所述终点的边的集合与所述路径表通过反向追踪确定所述起点与所述终点间的行进路线。
根据本发明的一方面,提出一种用于机器人路径规划的装置,该装置包括:接收模块,用于获取机器人路径的起点与终点;初始化模块,用于对机器人地图进行初始化处理,所述机器人地图包括空车地图与满车地图;搜索模块,用于通过所述机器人地图与最短路径算法获取所述起点与所述机器人地图中所有点的最短路径;以及路径模块,用于通过反向追踪算法确定所述起点与所述终点间的最短路径。
根据本发明的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本发明的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本发明的用于机器人路径规划的方法及装置,能够在仿真中直接计算搬运机器人的行走路径,减少了与数据库交互的频次,并且提高了仿真运行的速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中仓库布置示意图。
图2是根据一示例性实施例示出的一种用于机器人路径规划的方法的系统框图。
图3是根据一示例性实施例示出的一种用于机器人路径规划的方法的流程图。
图4是根据一示例性实施例示出的一种用于机器人路径规划的方法的示意图。
图5是根据另一示例性实施例示出的一种用于机器人路径规划的方法的示意图。
图6是根据另一示例性实施例示出的一种用于机器人路径规划的方法的示意图。
图7是根据另一示例性实施例示出的一种用于机器人路径规划的方法的示意图。
图8是根据另一示例性实施例示出的一种用于机器人路径规划的方法的示意图。
图9是根据另一示例性实施例示出的一种用于机器人路径规划的方法的示意图。
图10是根据一示例性实施例示出的一种用于机器人路径规划的装置的框图。
图11是根据一示例性实施例示出的一种电子设备的框图。
图12示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。
具体实施例
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
图2是根据一示例性实施例示出的一种用于机器人路径规划的方法的系统框图。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
使用终端设备101、102、103可以通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯类客户端应用。
在本申请中,终端设备101、102、103可以各种机器人类的电子设备,终端设备101、102、103可以接受与发送消息,并根据接收到的指令进行相应的运作。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103的运行路线提供支持的服务器,用于接收终端设备的位置数据,并根据仓库的布局计算设备的运行最佳路径,并将处理结果(最短路径)反馈给终端设备。
需要说明的是,本申请实施例所提供的最短路径生成的方法一般由服务器105执行,相应地,最短路径的执行工作一般由终端设备完成。
图3是根据一示例性实施例示出的一种用于机器人路径规划的方法的流程图。
如图3所示,在S302中,获取机器人待处理任务的起点与终点。
在S304中,对机器人地图进行初始化处理,所述机器人地图包括空车地图与满车地图。地图就是搬运机器人可以行走的线路,由点的坐标和点的连通性组成。对于空车来说,是可以在储位下面行走的,但是满车不行,所以空车和满车使用的是不同的地图。
在一个实施例中,将所述机器人地图通过N行N列的从至表进行表示;行标与列标为所述机器人地图中的所述节点的标识;以及通过权重表示所述机器人地图中的所述联通边与所述非联通边;其中,N为所述机器人地图中的所述节点的数量。
在另一个实施例中,通过以上方法分别对空车地图与满车地图进行初始化处理。
在S306中,通过所述机器人地图与最短路径算法获取所述起点与所述终点的最短路径。
在一个实施例中,在所述机器人地图中确定距离所述起点最近的第二点;判断所述第二点是否为所述终点;以及如果所述第二点为所述终点则生成最短路径。还包括:如果所述第二点不是所述终点则以第二点为源点;对所有以所述源点为起点的边进行松弛操作;如果所述松弛操作成功,则更新路径表,并继续寻找距离源点最近的其他节点,直至所述其他节点为所述终点为止。在本公开的一种示例性实施例中,还包括:在进行所述最短路径算法之前,建立所述路径表;建立包含所述终点的边的集合。
在S308中,通过反向追踪算法确定所述机器人处理任务的行进路线。可例如,通过所述终点的边的集合与所述路径表通过反向追踪确定所述起点与所述终点间的行进路线。
根据本发明的用于机器人路径规划的方法,对应于机器人空车与满车的状态分别建立地图,并且基于新建立的地图进行最短路径规划的方法,能够在仿真中直接计算搬运机器人的行走路径,减少了与数据库交互的频次,并且提高了仿真运行的速度。
应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施例。
在本公开的一种示例性实施例中,还包括:创建所述机器人地图。
在本申请中,机器人地图就是搬运机器人可以行走的线路,由点的坐标和点的连通性组成。对于空车来说,是可以在储位下面行走的,但是满车不行,所以空车和满车使用的是不同的地图。地图的结构如图4所示。
其中:Type表示点的类型,取值为1到5之间的整数,1表示路径节点,2表示储位节点,3表示充电桩节点,4表示柱子节点,5表示出库工作站。x和y表示节点的坐标,All_Car表示所有车即满车和空车都可以通过这个点到达的点,Free_Car表示空车可以通过这个点到达的点。例如第4行,点(1,4)是一个路径节点,满车和空车都可以通过点(1,4)到达点(1,3)和(2,4),空车还可以通过点(1,4)到达点(1,5)。
地图包含了所有点的信息,这些点在仿真中可以用网络节点表示,类型和坐标为点的属性,如图5所示,可到达的点可以通过网络节点的联通性快速确定,如图6所示,白色的点为网络节点,不同颜色的箭头表示不同路线的状态,可例如绿色箭头表示线路是通的,红色箭头表示线路不通(箭头颜色图中未示出)。
在一个实施例中,在机器人地图的使用过程中,首先进行初始化处理,初始化包括以下4个方面的内容:
1.如图7所示初始化边,地图上点的个数用为N,边就可以用一张N行N列的从至表表示,行标和列标为点的ID,取值为x*1000+y,单元格的数值为行节点到列节点的边的权重,如第1行(点的ID为0)第2列(点的ID为1)的取值为99999999,表示这两个点之间的边是不存在的,如第4行(点的ID为3)第3列(点的ID为2)的取值为1,表示这两点之间的边是存在的,且从点3到点2的成本为1。由于空车和满车是不同的地图,所以有两张表分别记录空车和满车的边。
2.起点用S表示,终点用E表示,寻找S点在边中的行R,为3)做准备,寻找E点在边中的列C,为4)做准备。
3.初始化起点S到所有点的路径表,这个路径表是一个2行N列的表格,如图8所示。第一行表示通过点S直接到达的所有点的权重,即边中第R行的数值;第二行用于记录通过哪个点到达列标标记的点。
4.初始化集合Q,Q用于记录已知最短路径的顶点,初始时只有一个起点S。
在本申请实施例中,可例如通过Dijkstra计算最短路径。在机器人地图的所有的点中找到一个离起点S最近的顶点U加入到集合Q中,并判断U点是不是终点(通过比较U点所在的列是否为终点所在的列C),如果是得到最终的路径表,如图9所示,并执行反向追踪过程;如果不是,考虑所有以U点为起点的边,对每一条边进行松弛操作,如果松弛成功就记录路径长度到路径表的第一行,点U所在的列到路径表的第二行,继续执行Dijkstra计算最短路径。
反向追踪构成最短路径:E=10时,C=11,即10这个点位于路径表的11列,路径表11列第2行的数值(10),记录的是到达点10的点所在的列,第10列的列标是9,所以是通过点9到达点10的,依次倒推,直到找的某一列第2行值为0时结束,就可以输出最短路径了,图7中点3到点10的最短路径为4—5—7—8—9—10。
根据本发明的用于机器人路径规划的方法,在仿真中直接计算搬运机器人的行走路径,减少了与数据库交互的频次,提高了仿真运行的速度。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图10是根据一示例性实施例示出的一种用于机器人路径规划的装置的框图。
接收模块1002用于获取机器人路径的起点与终点。
初始化模块1004用于对机器人地图进行初始化处理,所述机器人地图包括空车地图与满车地图。地图就是搬运机器人可以行走的线路,由点的坐标和点的连通性组成。对于空车来说,是可以在储位下面行走的,但是满车不行,所以空车和满车使用的是不同的地图。
在一个实施例中,将所述机器人地图通过N行N列的从至表进行表示;行标与列标为所述机器人地图中的所述节点的标识;以及通过权重表示所述机器人地图中的所述联通边与所述非联通边;其中,N为所述机器人地图中的所述节点的数量。
在另一个实施例中,通过以上方法分别对空车地图与满车地图进行初始化处理。
搜索模块1006用于通过所述机器人地图与最短路径算法获取所述起点与所述机器人地图中所有点的最短路径。在一个实施例中,在所述机器人地图中确定距离所述起点最近的第二点;判断所述第二点是否为所述终点;以及如果所述第二点为所述终点则生成最短路径。还包括:如果所述第二点不是所述终点则以第二点为源点;对所有以所述源点为起点的边进行松弛操作;如果所述松弛操作成功,则更新路径表,并继续寻找距离源点最近的其他节点,直至所述其他节点为所述终点为止。在本公开的一种示例性实施例中,还包括:在进行所述最短路径算法之前,建立所述路径表;建立包含所述终点的边的集合。
路径模块1008用于通过反向追踪算法确定所述起点与所述终点间的最短路径。可例如,通过所述终点的边的集合与所述路径表通过反向追踪确定所述起点与所述终点间的行进路线。
根据本发明的用于机器人路径规划的装置,对应于机器人空车与满车的状态分别建立地图,并且基于新建立的地图进行最短路径规划的方法,能够在仿真中直接计算搬运机器人的行走路径,减少了与数据库交互的频次,并且提高了仿真运行的速度。
图11是根据一示例性实施例示出的一种电子设备的框图。
下面参照图11来描述根据本发明的这种实施方式的电子设备200。图11显示的电子设备200仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元210执行,使得所述处理单元210执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元210可以执行如图3中所示的步骤。
所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述电子处方流转处理方法。
图12示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。
参考图12所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品400,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:获取机器人待处理任务的起点与终点;对机器人地图进行初始化处理,所述机器人地图包括空车地图与满车地图;通过所述机器人地图与最短路径算法获取所述起点与所述终点的最短路径;以及通过反向追踪算法确定所述机器人处理任务的行进路线。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。
以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
此外,本说明书说明书附图所示出的结构、比例、大小等,均仅用以配合说明书所公开的内容,以供本领域技术人员了解与阅读,并非用以限定本公开可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本公开所能产生的技术效果及所能实现的目的下,均应仍落在本公开所公开的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“第一”、“第二”及“一”等的用语,也仅为便于叙述的明了,而非用以限定本公开可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当也视为本发明可实施的范畴。