CN111367950B - 一种基于Kubernetes的分布式AGV调度***及调度方法 - Google Patents
一种基于Kubernetes的分布式AGV调度***及调度方法 Download PDFInfo
- Publication number
- CN111367950B CN111367950B CN202010127902.7A CN202010127902A CN111367950B CN 111367950 B CN111367950 B CN 111367950B CN 202010127902 A CN202010127902 A CN 202010127902A CN 111367950 B CN111367950 B CN 111367950B
- Authority
- CN
- China
- Prior art keywords
- cluster
- path
- map
- kubernetes
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Remote Sensing (AREA)
- Game Theory and Decision Science (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提出了一种基于Kubernetes的分布式AGV调度***及其调度方法,包括路径管理集群、交通调度集群和缓存数据库,所述路径管理集群包括地图管理集群和路径规划器,所述地图管理集群和路径规划器通过Kubernetes服务接口进行信息传输,所述地图管理集群用于储存地图信息,所述路径规划器用于接收行程任务,并通过不同的路径规划后,并发送给下层应用;所述交通调度集群包括AGV车、与每个AGV对应的车体代理和节点集群,所述节点集群向所述缓存数据库发布状态信息,分布式AGV***将地图规划,交通调度拆分为不同的微服务,各种微服务协同生存在整个集群***中,单个微服务宕机可以通过Kubernetes的ReplictionController重新快速启动,基本不会影响到整体的***。
Description
技术领域
本发明涉及AGV领域,尤其涉及基于Kubernetes的分布式AGV调度***。
背景技术
目前在自动化行业,往往是由集中的统一的单体服务器向各种外部客户端提供集中式服务,这种集中统一的单体服务式架构往往由很多组件构成,各种组件紧密耦合在一起,难于横向扩展。而且在高可用性方面,集中式单体服务器往往储存管理着很多的应用状态,只能通过内存拷贝式热备防止服务宕机。在功能性扩展方面,集中式单体服务也会越来越难于协同开发,就算比较好的分层分模块设计,也会导致应用体积的臃肿与庞大,让各个开发人员的开发效率大为降低。
发明内容
为解决上述技术问题,本发明提出了一种基于Kubernetes的分布式AGV调度***,包括路径管理集群、交通调度集群和缓存数据库,
所述路径管理集群包括地图管理集群和路径规划器,所述地图管理集群和路径规划器通过Kubernetes服务接口进行信息传输,所述地图管理集群用于储存地图信息,并用于下层应用读取地图信息;所述路径规划器用于接收行程任务,并通过不同的路径规划后,并发送给下层应用;
所述交通调度集群包括AGV车、与每个AGV对应的车体代理和节点集群,所述节点集群向所述缓存数据库发布状态信息。
优选的,所述地图管理集群包括上层集群、缓存集群,上层集群包括分布在Kubernetes集群中的若干Docker容器,每个Docker容器内有MYSQL数据库,MYSQL数据库储存有地图信息;所述缓存集群包括若干Docker容器,每个Docker容器内有地图管理器,地图管理器通过Kubernetes服务接口读取上层集群的地图信息,下层应用通过Kubernetes服务接口读取企地图管理器的地图信息。
优选的,所述地图管理器内管理路径顺序点和路径属性。
优选的,所述路径规划器包括若干Docker容器,所述Docker容器内存储不同路径规划算法,下层应用通过Kubernetes服务接口读取Docker容器内的信息。
优选的,所述路径规划算法包括最短路径算法、带优先级的最短路径、权重式路径规则、动态规划路径算法。
优选的,所述车体代理与AGV车的车体控制***通过TCP/IP进行通信,并将车体控制***的信息转译成就能内部唯一的协议进行访问。
优选的,所述节点集群为地图信息中的单行路口。
优选的,所述节点集群绑定在HTTP服务中,并通过NodeJS实现节点集群的编译。
一种基于Kubernetes的分布式AGV调度方法,包括以下步骤:
将地图数据存储于地图管理集群的上层集群Docker存储器内,并通过Kunernetes服务接口缓存与下层的缓存集群的地图管理器内;
向AGV车体控制***发送任务信息;
AGV车体控制***接受到任务信息后,通过Kubernetes的集群服务接口向路径规划器发出任务请求,
路径规划器从上层的缓存集群中获取节点信息后,根据路径规划算法,发送给车体控制***。
优选的,节点集群需要将自己的状态发布到实时的缓存数据库,车体代理在请求节点占用时,先访问缓存数据库拿到正确的节点地址。
优选的,所述节点集群绑定至HTTP服务。
本发明提出的基于Kubernetes的分布式AGV调度***及其方法有以下有益效果:分布式AGV***将地图规划,交通调度拆分为不同的微服务,各种微服务协同生存在整个集群***中,同一种微服务都以集群的方式得以存在,单个微服务宕机可以通过Kubernetes的ReplictionController重新快速启动,基本不会影响到整体的***。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明的地图管理器工作流程的示意图;
图2为本发明的路径规划器的流程的示意图;
图3为本发明的车体代理的架构示意图;
图4为本发明的节点集群架构以及流程示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
发明提出了一种基于Kubernetes的分布式AGV调度***,包括路径管理集群、交通调度集群和缓存数据库,
所述路径管理集群包括地图管理集群和路径规划器,所述地图管理集群和路径规划器通过Kubernetes服务接口进行信息传输,所述地图管理集群用于储存地图信息,并用于下层应用读取地图信息;所述路径规划器用于接收行程任务,并通过不同的路径规划后,并发送给下层应用。
具体的说:AGV的地图数据存放在MySQL数据库中,各个MySQL数据库也是作为Docker容器分布在Kunernetes集群里,并进行数据同步。在路径规划集群中并不会修改AGV场地地图数据,AGV场地地图应该由上层的业务服务进行控制和修改。在路径规划集群里,地图管理器只是定时检查地图数据的有效性,并在地图失效时,实时读取MySQL数据库中的的唯一一份有效地图,并将地图以接口方式提供给各个路经规划器微服务以及交通调度集群,如图1所示,则为地图管理器的工作流程示意图。
下层应用(即为车体控制***)通过Kubernetes的服务接口访问分布式地图管理器,地图管理器可以通过Kubernetes的服务接口接收上层控制业务的服务器发出的地图更新通知,进而去数据库集群里获取最新的地图。路径规划一旦收到地图管理器的地图更新通知,便会重新生成自己的节点树已经关联路径。一般而言,地图管理器仅仅作为数据库的一个缓存层,提供给其他层次快速的数据访问方式,可以通过Redis来实现高效的地图管理器。
而路径规划集群路经规划器主要用于提供下层应用的路径规划功能,通过统一的接口,下层应用不必知道路径规划器的具体实现算法,而是回去一系列的顺序点和路径属性,顺序点和路径属性来源于地图管理器中管理的数据。这些点和路径属性规定了两点之间的动作规范,以及下层应用应该执行的动作,还有执行动作时需要包含的特殊属性值。其流程示意图如图2所示,路径规划集群同样是以Docker微服务的方式部署在Kubernetes集群中,单个AGV在完成一个任务时处于等待状态,当接收到一个新任务时需要根据任务节点和当前节点请求抵达路径,路径规划器此时通过Kubernetes的集群服务接口接收AGV单车控制***的请求,完成路径规划,不同的路径规划器采用不同的策略进行规划,但是通过一致的方式发送数据,因为数据格式是由上层的地图管理器定义。有的路径规划器规划静态路径,有的路径规划器规划的是基于现在***里动态节点占用情况,计算最新的地图截面,从而动态规划出路径。
当单个路径规划器因为某种原因而失效,并不会影响整个路径规划***的有效性,并且Kubernetes集群管理器能有效地通过保活探针检测某一个服务的运行状态,所有,在路径规划器设计时,可以预留保活探针接口,这样能快速高效地让Kubernetes重启僵死服务。
单个路径规划器通过无状态的HTTP服务提供接口,采用请求/响应方式接收客户端应用的请求,因为路径规划器不需要保存客户端应用状态。
而第二部分的所述交通调度集群包括AGV车、与每个AGV对应的车体代理和节点集群,所述节点集群向所述缓存数据库发布状态信息。
车体代理集群指单个AGV并不会直接请求集群里的服务,因为为了横向扩展性,集群中的服务会设计为无状态服务模式,通过HTTP进行访问,而集群***中为了对接到外部的单个车体,需要设置每个车体的车体代理。
车体代理管理作用有:
管理每个AGV的实时状态。
代理车体控制***的请求。
提供抽象接口,对接各种品牌或型号的AGV车型。
车体代理的框架图如图3所示,车体代理与车体控制***之间通过有状态的TCP/IP进行通信,提供服务端端口与客户端配置的两种方式供车体连接,接收车体控制***的各种格式和协议数据,并将不同AGV的各种自定义数据格式转译为集群内部唯一的协议进行访问。
其中,要说明的是:节点集群代表了交通控制里的一个单行路口,每个AGV获取路径后,在去向下一个节点之前,必须向对应的节点发起占用请求,只有在占有有效的前提下,AGV才能从当前节点移动到下一个节点。否则AGV不允许进入该节点,必须进行等待,或请求避开此节点的路径重新规划。
如图4所示,节点集群需要将自己的状态发布到一个实时的缓存数据库,因为每个节点集群在***中具有唯一性,车体代理在请求节点占用时,先要访问缓存数据库拿到正确的节点地址。另外,节点集群是一个抽象的概念,可以将一个节点单独绑定到一个HTTP服务中,也可以将多个节点绑定到一个HTTP服务中,这样可以根据当前***的负载调整***中的服务数量,将节点的请求分散开来。针对节点集群,我们采用NodeJS来实现,因为NodeJS是高性能的单进程的响应式异步应用,可以避免多线程应用中访问资源需要同步的复杂性,也可以充分利用事件响应的快速高效,除此之外,NodeJS有很好的生态***,能够比较容易的扩展开发,获得各种库的实现。
对实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种基于Kubernetes的分布式AGV调度***,其特征在于,包括路径管理集群、交通调度集群和缓存数据库,
所述路径管理集群包括地图管理集群和路径规划器,所述地图管理集群和路径规划器通过Kubernetes服务接口进行信息传输,所述地图管理集群用于储存地图信息,并用于下层应用读取地图信息;所述路径规划器用于接收行程任务,并通过不同的路径规划后,并发送给下层应用;
所述交通调度集群包括AGV车、与每个AGV对应的车体代理和节点集群,所述节点集群向所述缓存数据库发布状态信息;
车体代理与车体控制***之间通过有状态的TCP/IP进行通信,提供服务端端口与客户端配置的两种方式供车体连接,接收车体控制***的各种格式和协议数据,并将不同AGV的各种自定义数据格式转译为集群内部唯一的协议进行访问;
所述节点集群为地图信息中的单行路口。
2.根据权利要求1所述的基于Kubernetes的分布式AGV调度***,其特征在于,所述地图管理集群包括上层集群、缓存集群,上层集群包括分布在Kubernetes集群中的若干Docker容器,每个Docker容器内有MYSQL数据库,MYSQL数据库储存有地图信息;所述缓存集群包括若干Docker容器,每个Docker容器内有地图管理器,地图管理器通过Kubernetes服务接口读取上层集群的地图信息,下层应用通过Kubernetes服务接口读取地图管理器的地图信息。
3.根据权利要求2所述的基于Kubernetes的分布式AGV调度***,其特征在于,所述地图管理器内管理路径顺序点和路径属性。
4.根据权利要求1所述的基于Kubernetes的分布式AGV调度***,其特征在于,所述路径规划器包括若干Docker容器,所述Docker容器内存储不同路径规划算法,下层应用通过Kubernetes服务接口读取Docker容器内的信息。
5.根据权利要求4所述的基于Kubernetes的分布式AGV调度***,其特征在于,所述路径规划算法包括最短路径算法、带优先级的最短路径、权重式路径规则、动态规划路径算法。
6.根据权利要求1所述的基于Kubernetes的分布式AGV调度***,其特征在于,所述节点集群绑定在HTTP服务中,并通过NodeJS实现节点集群的编译。
7.一种基于Kubernetes的分布式AGV调度方法,其特征在于,包括以下步骤:
将地图数据存储于地图管理集群的上层集群Docker存储器内,并通过Kunernetes服务接口缓存于下层的缓存集群的地图管理器内;
向AGV车体控制***发送任务信息;
AGV车体控制***接受到任务信息后,通过Kubernetes的集群服务接口向路径规划器发出任务请求,
路径规划器从上层的缓存集群中获取节点信息后,根据路径规划算法,发送给车体控制***;节点集群需要将自己的状态发布到实时的缓存数据库,车体代理在请求节点占用时,先访问缓存数据库拿到正确的节点地址;所述节点集群绑定至HTTP服务,其中,每个AGV与车体代理和节点集群对应,所述节点集群向所述缓存数据库发布状态信息;
车体代理与车体控制***之间通过有状态的TCP/IP进行通信,提供服务端端口与客户端配置的两种方式供车体连接,接收车体控制***的各种格式和协议数据,并将不同AGV的各种自定义数据格式转译为集群内部唯一的协议进行访问;
所述节点集群为地图信息中的单行路口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127902.7A CN111367950B (zh) | 2020-02-28 | 2020-02-28 | 一种基于Kubernetes的分布式AGV调度***及调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127902.7A CN111367950B (zh) | 2020-02-28 | 2020-02-28 | 一种基于Kubernetes的分布式AGV调度***及调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367950A CN111367950A (zh) | 2020-07-03 |
CN111367950B true CN111367950B (zh) | 2023-08-08 |
Family
ID=71211549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010127902.7A Active CN111367950B (zh) | 2020-02-28 | 2020-02-28 | 一种基于Kubernetes的分布式AGV调度***及调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367950B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286151B (zh) * | 2020-10-21 | 2022-04-15 | 济南蓝图士智能技术有限公司 | 基于微服务的多种类集群agv导航调度***及方法 |
CN114564497A (zh) * | 2020-11-27 | 2022-05-31 | Tcl商用信息科技(惠州)有限责任公司 | 基于nodejs的缓存高可用方法、***及缓存服务器 |
CN112199435B (zh) * | 2020-12-04 | 2021-03-02 | 武汉绿色网络信息服务有限责任公司 | 访问嵌入式数据库的方法、装置、计算机设备及存储介质 |
CN113590666B (zh) * | 2021-09-30 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种ai集群中数据缓存方法、***、设备及计算机介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002062936A (ja) * | 2000-08-22 | 2002-02-28 | Matsuda Plantec Kk | 無人搬送車の運行管理装置 |
CN102508881A (zh) * | 2011-10-18 | 2012-06-20 | 国网电力科学研究院 | 一种电力信息***内存数据库的多节点集群方法 |
CN106444791A (zh) * | 2016-12-20 | 2017-02-22 | 南阳师范学院 | 一种多agv小车上位机统一调度***设计方法 |
CN108762277A (zh) * | 2018-06-11 | 2018-11-06 | 蚁群(上海)智能装备有限公司 | 一种分布式agv调度方法及调度*** |
CN110531987A (zh) * | 2019-07-30 | 2019-12-03 | 平安科技(深圳)有限公司 | 基于Kubernetes集群的管理方法、装置及计算机可读存储介质 |
-
2020
- 2020-02-28 CN CN202010127902.7A patent/CN111367950B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002062936A (ja) * | 2000-08-22 | 2002-02-28 | Matsuda Plantec Kk | 無人搬送車の運行管理装置 |
CN102508881A (zh) * | 2011-10-18 | 2012-06-20 | 国网电力科学研究院 | 一种电力信息***内存数据库的多节点集群方法 |
CN106444791A (zh) * | 2016-12-20 | 2017-02-22 | 南阳师范学院 | 一种多agv小车上位机统一调度***设计方法 |
CN108762277A (zh) * | 2018-06-11 | 2018-11-06 | 蚁群(上海)智能装备有限公司 | 一种分布式agv调度方法及调度*** |
CN110531987A (zh) * | 2019-07-30 | 2019-12-03 | 平安科技(深圳)有限公司 | 基于Kubernetes集群的管理方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111367950A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367950B (zh) | 一种基于Kubernetes的分布式AGV调度***及调度方法 | |
US8306979B2 (en) | Service query, selection, routing and propagation | |
US6662207B2 (en) | Agent system and information processing method for same | |
CN110166409A (zh) | 设备接入方法、相关平台及计算机存储介质 | |
CN114095577A (zh) | 资源请求方法、装置、算力网元节点及算力应用设备 | |
CN110658794B (zh) | 一种制造执行*** | |
CN111885550B (zh) | 一种分布式自主移动机器人调度*** | |
CN109677465B (zh) | 用于轨道交通综合监控***的分布式实时***架构 | |
CN102047226A (zh) | 分布式服务框架 | |
CN110768914B (zh) | 基于语义场景实例迁移的去中心化物联网关*** | |
Meneguette et al. | Vehicular clouds leveraging mobile urban computing through resource discovery | |
CN113204444B (zh) | 一种基于全局的现车管理***及其方法 | |
CN113139726A (zh) | 多租户派单方法和网约车*** | |
CN114826869B (zh) | 设备管理方法和设备管理*** | |
CN116708266A (zh) | 一种云服务拓扑图实时更新方法、装置、设备及介质 | |
Jafari Kaleibar et al. | TOPVISOR: Two‐level controller‐based approach for service advertisement and discovery in vehicular cloud network | |
CN112637037B (zh) | 跨地域容器通讯***、方法、存储介质及计算机设备 | |
WO2024109543A1 (zh) | 基于面向服务架构的车云通信方法和存储介质 | |
CN110011984A (zh) | 一种基于rest和rpc的分布式集群***及方法 | |
CN113247057B (zh) | 一种基于全局现车管理***的数据***及其数据处理方法 | |
JP2004302564A (ja) | ネームサービス提供方法及びその実施装置並びにその処理プログラム | |
US11461211B1 (en) | Method and system for provisioning workflows with data management services | |
CN111488324B (zh) | 一种基于消息中间件的分布式网络文件***及其工作方法 | |
US20210144212A1 (en) | Workflow engine framework for cross-domain extension | |
CN113114560B (zh) | 司机端即时通信方法、司机端和司乘*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |