CN111367950B - Distributed AGV scheduling system and scheduling method based on Kubernetes - Google Patents
Distributed AGV scheduling system and scheduling method based on Kubernetes 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Remote Sensing (AREA)
- Small-Scale Networks (AREA)
Abstract
The invention provides a distributed AGV scheduling system based on Kubernetes and a scheduling method thereof, wherein the system comprises a path management cluster, a traffic scheduling cluster and a cache database, the path management cluster comprises a map management cluster and a path planner, the map management cluster and the path planner are used for information transmission through a Kubernetes service interface, the map management cluster is used for storing map information, and the path planner is used for receiving a journey task, planning through different paths and then sending the journey task to a lower layer application; the traffic scheduling cluster comprises AGVs, vehicle body agents corresponding to the AGVs and node clusters, the node clusters issue state information to the cache database, the distributed AGV system plans a map, traffic scheduling is split into different micro services, various micro services coexist in the whole cluster system, and single micro service downtime can be started up quickly through a ReplictionController of Kubernetes, so that the whole system is basically not affected.
Description
Technical Field
The invention relates to the field of AGVs, in particular to a distributed AGV scheduling system based on Kubernetes.
Background
At present, in the automation industry, centralized unified single server is often used for providing centralized services for various external clients, and the centralized unified single service architecture is often composed of a plurality of components, and the components are tightly coupled together and are difficult to transversely expand. In addition, in the aspect of high availability, the centralized monomer server often stores and manages a lot of application states, and service downtime can be prevented only through memory copy type hot standby. In the aspect of functional expansion, the centralized single service is more and more difficult to cooperatively develop, and even a better layered module design can lead to the bulkiness and huge application volume, so that the development efficiency of each developer is greatly reduced.
Disclosure of Invention
In order to solve the technical problems, the invention provides a distributed AGV scheduling system based on Kubernetes, which comprises a path management cluster, a traffic scheduling cluster and a cache database,
the path management cluster comprises a map management cluster and a path planner, wherein the map management cluster and the path planner are used for carrying out information transmission through a Kubernetes service interface, and the map management cluster is used for storing map information and reading the map information by lower-layer application; the path planner is used for receiving the travel task, planning through different paths and sending the path planning to the lower-layer application;
the traffic dispatching cluster comprises AGVs, vehicle body agents corresponding to the AGVs and node clusters, and the node clusters issue state information to the cache database.
Preferably, the map management cluster comprises an upper layer cluster and a cache cluster, wherein the upper layer cluster comprises a plurality of Docker containers distributed in the Kubernetes cluster, each Docker container is internally provided with a MYSQL database, and the MYSQL database stores map information; the cache cluster comprises a plurality of Docker containers, each Docker container is internally provided with a map manager, the map manager reads map information of an upper layer cluster through a Kubernetes service interface, and a lower layer application reads map information of an enterprise map manager through the Kubernetes service interface.
Preferably, the map manager manages path sequence points and path attributes.
Preferably, the path planner comprises a plurality of Docker containers, different path planning algorithms are stored in the Docker containers, and the lower-layer application reads information in the Docker containers through a Kubernetes service interface.
Preferably, the path planning algorithm comprises a shortest path algorithm, a shortest path with priority, a weighted path rule and a dynamic planning path algorithm.
Preferably, the body proxy communicates with the body control system of the AGV via TCP/IP and translates the body control system information into an internally unique protocol for access.
Preferably, the node cluster is a single-way intersection in the map information.
Preferably, the node cluster is bound in an HTTP service, and compiling of the node cluster is achieved through NodeJS.
A distributed AGV scheduling method based on Kubernetes comprises the following steps:
storing map data in an upper layer cluster Docker memory of a map management cluster, and caching the map data in a map manager of a lower layer cache cluster through a Kunernes service interface;
task information is sent to an AGV body control system;
after the AGV body control system receives the task information, a task request is sent to the path planner through a cluster service interface of Kubernetes,
and the path planner acquires node information from the upper cache cluster and sends the node information to the vehicle body control system according to a path planning algorithm.
Preferably, the node cluster needs to issue its own state to a real-time cache database, and when the vehicle body proxy requests the node to occupy, the vehicle body proxy accesses the cache database to obtain the correct node address.
Preferably, the cluster of nodes is bound to an HTTP service.
The distributed AGV scheduling system and the method based on the Kubernetes have the following beneficial effects: the distributed AGV system divides map planning and traffic scheduling into different micro services, various micro services coexist in the whole cluster system, the same micro services exist in a cluster mode, and single micro service downtime can be quickly started again through a ReplictionController of Kubernetes, so that the whole system is basically not affected.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings that are required to be used in the description of the embodiments will be briefly described below.
FIG. 1 is a schematic illustration of a map manager workflow of the present invention;
FIG. 2 is a schematic diagram of a flow of the path planner of the present invention;
FIG. 3 is a schematic diagram of the architecture of a vehicle body proxy according to the present invention;
FIG. 4 is a schematic diagram of a node cluster architecture and a flow chart according to the present invention;
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention.
The invention provides a distributed AGV scheduling system based on Kubernetes, which comprises a path management cluster, a traffic scheduling cluster and a cache database,
the path management cluster comprises a map management cluster and a path planner, wherein the map management cluster and the path planner are used for carrying out information transmission through a Kubernetes service interface, and the map management cluster is used for storing map information and reading the map information by lower-layer application; the path planner is used for receiving the journey task, planning through different paths and sending the journey task to the lower layer application.
The specific method is as follows: the map data of the AGV are stored in MySQL databases, and each MySQL database is also distributed in a Kunes cluster as a Docker container, and data synchronization is performed. The AGV floor map data is not modified in the path planning cluster, and the AGV floor map should be controlled and modified by the upper business services. In the route planning cluster, the map manager only checks the validity of the map data at regular time, reads only one valid map in the MySQL database in real time when the map fails, and provides the map to each route planner micro service and traffic scheduling cluster in an interface mode, as shown in fig. 1, the map manager is a work flow diagram.
The lower layer application (namely a vehicle body control system) accesses the distributed map manager through a service interface of the Kubernetes, and the map manager can receive a map update notification sent by a server of an upper layer control service through the service interface of the Kubernetes, so that the latest map is obtained in a database cluster. Path planning upon receiving a map update notification from a map manager, it regenerates its own node tree already associated path. In general, the map manager is only used as a cache layer of the database, provides other layers with quick data access modes, and can realize efficient map manager through Redis.
The path planning cluster path planner is mainly used for providing a path planning function of the lower-layer application, and the lower-layer application does not need to know a specific implementation algorithm of the path planner through a unified interface, but returns a series of sequence points and path attributes, wherein the sequence points and the path attributes are derived from data managed in the map manager. These points and path attributes specify the action specification between the two points, as well as the actions that the underlying application should perform, and the particular attribute values that need to be included when performing the actions. The flow diagram is shown in fig. 2, the path planning cluster is deployed in a Kubernetes cluster in a manner of a Docker micro-service, a single AGV is in a waiting state when completing a task, when a new task is received, the path planner needs to arrive at the path according to the task node and the current node request, at this time, the path planner receives the request of the AGV bicycle control system through a Kubernetes cluster service interface, and completes the path planning, and different path planners adopt different strategies for planning, but send data in a consistent manner, because the data format is defined by an upper map manager. Some path planners plan static paths, and some path planners plan paths dynamically by calculating the latest map sections based on the occupation condition of dynamic nodes in the existing system.
When a single path planner fails for some reason, the effectiveness of the whole path planning system is not affected, and the Kubernetes cluster manager can effectively detect the running state of a certain service through the keep-alive probes, and all the keep-alive probes can be reserved for interfaces when the path planner is designed, so that the Kubernetes can restart dead services quickly and efficiently.
The single path planner receives requests of client applications in a request/response manner through a stateless HTTP service provisioning interface, because the path planner does not need to save client application states.
And the traffic scheduling cluster in the second part comprises AGVs, a vehicle body agent corresponding to each AGV and a node cluster, wherein the node cluster issues state information to the cache database.
The vehicle body proxy cluster refers to a single AGV that does not directly request services in the cluster, because for lateral expansibility, the services in the cluster are designed to be stateless service modes, accessed through HTTP, and in the cluster system, a vehicle body proxy for each vehicle body needs to be set for interfacing to an external single vehicle body.
The agent management function of the car body is as follows:
managing the real-time status of each AGV.
The request of the vehicle body control system is proxied.
An abstract interface is provided for interfacing with AGV models of various brands or models.
The frame diagram of the vehicle body proxy is shown in fig. 3, the vehicle body proxy and the vehicle body control system communicate through stateful TCP/IP, two modes of server port and client configuration are provided for vehicle body connection, various formats and protocol data of the vehicle body control system are received, and various custom data formats of different AGVs are translated into unique protocols inside the cluster for access.
Wherein, to be explained is: the node cluster represents a single-way intersection in traffic control, after each AGV acquires a path, the AGV must initiate an occupation request to the corresponding node before going to the next node, and only on the premise that occupation is valid, the AGV can move from the current node to the next node. Otherwise the AGV is not allowed to enter the node, must wait, or request a path re-plan to avoid the node.
As shown in fig. 4, the node clusters need to issue their own status to a real-time cache database, because each node cluster has uniqueness in the system, when the vehicle body agent requests the node to occupy, the vehicle body agent first accesses the cache database to get the correct node address. In addition, the node cluster is an abstract concept, and can be used for independently binding one node into one HTTP service or binding a plurality of nodes into one HTTP service, so that the requests of the nodes can be dispersed according to the service quantity in the load adjustment system of the current system. Aiming at the node cluster, the node cluster is realized by adopting the NodeJS, because the NodeJS is a high-performance single-process responsive asynchronous application, the complexity of synchronizing the access resource in the multi-thread application can be avoided, the rapidness and the high efficiency of event response can be fully utilized, besides, the NodeJS has a good ecological system, and can be easily expanded and developed to obtain the realization of various libraries.
Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims (7)
1. A distributed AGV scheduling system based on Kubernetes is characterized by comprising a path management cluster, a traffic scheduling cluster and a cache database,
the path management cluster comprises a map management cluster and a path planner, wherein the map management cluster and the path planner are used for carrying out information transmission through a Kubernetes service interface, and the map management cluster is used for storing map information and reading the map information by lower-layer application; the path planner is used for receiving the travel task, planning through different paths and sending the path planning to the lower-layer application;
the traffic dispatching cluster comprises AGVs, vehicle body agents corresponding to the AGVs and node clusters, and the node clusters issue state information to the cache database;
the vehicle body proxy and the vehicle body control system communicate through a stateful TCP/IP, a service end port and a client end configuration mode are provided for the vehicle body to connect, various formats and protocol data of the vehicle body control system are received, and various custom data formats of different AGVs are translated into a unique protocol inside the cluster for access;
the node cluster is a single-way intersection in the map information.
2. The Kubernetes-based distributed AGV scheduling system according to claim 1, wherein the map management cluster comprises an upper layer cluster and a cache cluster, the upper layer cluster comprises a plurality of Docker containers distributed in the Kubernetes cluster, and a MYSQL database is stored in each Docker container and stores map information; the cache cluster comprises a plurality of Docker containers, each Docker container is internally provided with a map manager, the map manager reads map information of an upper layer cluster through a Kubernetes service interface, and a lower layer application reads map information of the map manager through the Kubernetes service interface.
3. The Kubernetes-based distributed AGV scheduling system of claim 2 wherein the map manager manages path sequence points and path attributes.
4. The Kubernetes-based distributed AGV scheduling system of claim 1 wherein the path planner comprises a number of Docker containers storing different path planning algorithms, the lower level applications reading information within the Docker containers through the Kubernetes service interface.
5. The Kubernetes-based distributed AGV scheduling system of claim 4 wherein the path planning algorithm comprises a shortest path algorithm, a prioritized shortest path, a weighted path rule, a dynamic planning path algorithm.
6. The Kubernetes-based distributed AGV scheduling system of claim 1, wherein the node cluster is bound in HTTP service and compiling of the node cluster is achieved through nodebes.
7. The distributed AGV scheduling method based on the Kubernetes is characterized by comprising the following steps of:
storing map data in an upper layer cluster Docker memory of a map management cluster, and caching the map data in a map manager of a lower layer cache cluster through a Kunernes service interface;
task information is sent to an AGV body control system;
after the AGV body control system receives the task information, a task request is sent to the path planner through a cluster service interface of Kubernetes,
the path planner acquires node information from the upper cache cluster and then sends the node information to the vehicle body control system according to a path planning algorithm; the node cluster needs to issue the state of the node cluster to a real-time cache database, and when a request node is occupied, a vehicle body agent accesses the cache database to obtain a correct node address; the node clusters are bound to HTTP service, wherein each AGV corresponds to a vehicle body agent and the node clusters, and the node clusters issue state information to the cache database;
the vehicle body proxy and the vehicle body control system communicate through a stateful TCP/IP, a service end port and a client end configuration mode are provided for the vehicle body to connect, various formats and protocol data of the vehicle body control system are received, and various custom data formats of different AGVs are translated into a unique protocol inside the cluster for access;
the node cluster is a single-way intersection in the map information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127902.7A CN111367950B (en) | 2020-02-28 | 2020-02-28 | Distributed AGV scheduling system and scheduling method based on Kubernetes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127902.7A CN111367950B (en) | 2020-02-28 | 2020-02-28 | Distributed AGV scheduling system and scheduling method based on Kubernetes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367950A CN111367950A (en) | 2020-07-03 |
CN111367950B true CN111367950B (en) | 2023-08-08 |
Family
ID=71211549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010127902.7A Active CN111367950B (en) | 2020-02-28 | 2020-02-28 | Distributed AGV scheduling system and scheduling method based on Kubernetes |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367950B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286151B (en) * | 2020-10-21 | 2022-04-15 | 济南蓝图士智能技术有限公司 | Multi-type cluster AGV navigation scheduling system and method based on micro-service |
CN114564497A (en) * | 2020-11-27 | 2022-05-31 | Tcl商用信息科技(惠州)有限责任公司 | Cache high availability method and system based on nodejs and cache server |
CN112199435B (en) * | 2020-12-04 | 2021-03-02 | 武汉绿色网络信息服务有限责任公司 | Method and device for accessing embedded database, computer equipment and storage medium |
CN113590666B (en) * | 2021-09-30 | 2022-02-18 | 苏州浪潮智能科技有限公司 | Data caching method, system, equipment and computer medium in AI cluster |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002062936A (en) * | 2000-08-22 | 2002-02-28 | Matsuda Plantec Kk | Operation management device for automatic guided vehicle |
CN102508881A (en) * | 2011-10-18 | 2012-06-20 | 国网电力科学研究院 | Method for clustering multiple nodes of memory database of power information system |
CN106444791A (en) * | 2016-12-20 | 2017-02-22 | 南阳师范学院 | Design method of multiple AGV (Automatic Guided Vehicle) unified dispatching system by upper computer |
CN108762277A (en) * | 2018-06-11 | 2018-11-06 | 蚁群(上海)智能装备有限公司 | A kind of distribution AGV dispatching methods and scheduling system |
CN110531987A (en) * | 2019-07-30 | 2019-12-03 | 平安科技(深圳)有限公司 | Management method, device and computer readable storage medium based on Kubernetes cluster |
-
2020
- 2020-02-28 CN CN202010127902.7A patent/CN111367950B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002062936A (en) * | 2000-08-22 | 2002-02-28 | Matsuda Plantec Kk | Operation management device for automatic guided vehicle |
CN102508881A (en) * | 2011-10-18 | 2012-06-20 | 国网电力科学研究院 | Method for clustering multiple nodes of memory database of power information system |
CN106444791A (en) * | 2016-12-20 | 2017-02-22 | 南阳师范学院 | Design method of multiple AGV (Automatic Guided Vehicle) unified dispatching system by upper computer |
CN108762277A (en) * | 2018-06-11 | 2018-11-06 | 蚁群(上海)智能装备有限公司 | A kind of distribution AGV dispatching methods and scheduling system |
CN110531987A (en) * | 2019-07-30 | 2019-12-03 | 平安科技(深圳)有限公司 | Management method, device and computer readable storage medium based on Kubernetes cluster |
Also Published As
Publication number | Publication date |
---|---|
CN111367950A (en) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367950B (en) | Distributed AGV scheduling system and scheduling method based on Kubernetes | |
US8306979B2 (en) | Service query, selection, routing and propagation | |
US6662207B2 (en) | Agent system and information processing method for same | |
CN114095577A (en) | Resource request method and device, calculation network element node and calculation application equipment | |
CN110166409A (en) | Equipment cut-in method, related platform and computer storage medium | |
CN110658794B (en) | Manufacturing execution system | |
CN111885550B (en) | Distributed autonomous mobile robot scheduling system | |
CN110162417B (en) | Data interaction method for industrial edge computing application and OPC UA address space | |
CN110768914B (en) | Decentralized Internet of things gateway system based on semantic scene instance migration | |
CN109677465B (en) | Distributed real-time system architecture for rail transit integrated monitoring system | |
CN102047226A (en) | Distributed service framework | |
Meneguette et al. | Vehicular clouds leveraging mobile urban computing through resource discovery | |
CN112637037B (en) | Cross-region container communication system, method, storage medium and computer equipment | |
CN114826869B (en) | Device management method and device management system | |
CN116708266A (en) | Cloud service topological graph real-time updating method, device, equipment and medium | |
US11461211B1 (en) | Method and system for provisioning workflows with data management services | |
CN110011984A (en) | A kind of distributed cluster system and method based on REST and RPC | |
CN113247057B (en) | Data system based on global present vehicle management system and data processing method thereof | |
JP2004302564A (en) | Name service providing method, execution device of the same, and processing program of the same | |
US11153388B2 (en) | Workflow engine framework for cross-domain extension | |
CN113163421B (en) | Method, device, terminal and medium for establishing hierarchical network | |
CN111488324B (en) | Distributed network file system based on message middleware and working method thereof | |
Gerhards | Digital twin for fleet management of connected vehicles | |
CN113114560B (en) | Driver end instant messaging method, driver end and driver and passenger system | |
CN110532000A (en) | A kind of kbroker distributed operating system and operation delivery system for runing publication |
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 |