Data interaction method and device of AGV cluster, cluster and medium
By using packet identification and processing object identification methods in AGV cluster, the communication pressure and real-time problems of AGV devices when processing large amounts of data are solved, and the data equalization and efficient transmission are achieved.
Patent Information
- Application Number
- CN202410070068.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-17
- Publication Date
- 2025-04-18
AI Technical Summary
When AGV devices process large amounts of data, the pressure on data communication increases dramatically, and data blockage and long-term waiting for transmission are problems, which cannot meet real-time requirements.
By introducing packet identification and processing object identification into the AGV cluster, the data to be sent are encapsulated and sent to the bus, the data equalization and allocation of data are achieved.
It effectively avoids AGV equipment to process a large amount of data, reduces data communication pressure, and improves the real-time and efficiency of data transmission.
Smart Images

Figure CN119847073A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of automation technology, and more specifically, to a data interaction method for an AGV cluster, an AGV device, a server, an AGV cluster, and a computer-readable storage medium. Background Art
[0002] With the development of unmanned factories and smart warehousing technologies, more and more modern factories are handing over some simple tasks to automated guided vehicles (AGVs).
[0003] However, AGV has the characteristics of multiple interfaces and multiple AGV devices, which exposes the communication problems of AGV. Specifically, there is a lot of data to be processed on AGV, which increases the pressure of AGV data communication. There are problems such as data blocking and waiting to be sent for a long time, which leads to the data processed by AGV equipment not meeting the real-time requirements.
[0004] Therefore, how to effectively prevent AGV from processing large amounts of data has become a technical problem that needs to be solved urgently. Summary of the invention
[0005] One purpose of the present application is to provide a new technical solution for data interaction of AGV clusters.
[0006] According to a first aspect of the present application, a data interaction method of an AGV cluster is provided, wherein the AGV cluster includes a server and multiple AGV devices connected to a bus, and the method is applied to any of the AGV devices, including:
[0007] Obtain a first group identifier;
[0008] Determine, according to the data to be sent by the AGV device, a processing object identifier of a processing object of the data to be sent, wherein the processing object is the AGV device, an AGV group leader device in the group where the AGV device is located, and one of the servers;
[0009] Encapsulating the data to be sent according to the first grouping identifier of the AGV device and the processing object identifier to obtain the sent data;
[0010] Sending the transmission data to the bus;
[0011] Among them, the multiple AGV devices are divided into at least one group of AGV devices, a group of AGV devices have the same first grouping identifier, a group of AGV devices includes an AGV group leader device, any of the AGV group leader devices and the server have the same second grouping identifier, and the first grouping identifier and the second grouping identifier correspond to different communication spaces.
[0012] Optionally, the AGV device is an AGV group leader device or an AGV member device, and the method further includes:
[0013] Detecting whether a first group identifier in the first flow data on the bus is the same as a first group identifier of the AGV device, and whether the object identifier matches the AGV device;
[0014] When the first group identifier in the first flow data is the same as the first group identifier of the AGV device, and the object identifier matches the AGV device, determining that the AGV device is the processing object;
[0015] And, performing a matching processing operation on the first flow data to obtain a first processing result.
[0016] Optionally, determining the processing object identifier of the processing object of the data to be sent according to the data to be sent by the AGV device includes:
[0017] Determine the processing logic complexity and real-time performance of the data to be sent according to the data to be sent by the AGV device;
[0018] Determining the communication level of the data to be sent according to the complexity of the processing logic and the real-time performance;
[0019] A processing object identifier of a processing object of the data to be sent is determined according to the communication level.
[0020] Optionally, determining the processing object identifier of the processing object of the data to be sent according to the communication level includes:
[0021] In a case where the communication level points to the server, determining that the processing object of the data to be sent is the AGV group leader device of the AGV device;
[0022] The step of encapsulating the data to be sent according to the first grouping identifier of the AGV device and the processing object identifier to obtain the sent data includes:
[0023] According to the first grouping identifier of the AGV device, the processing object identifier and the communication level, the data to be sent is encapsulated to obtain the sending data.
[0024] Optionally, the AGV device is an AGV group leader device, and the method further includes:
[0025] Detecting whether the first group identifier in the second flow data on the bus is the same as the first group identifier of the AGV leader device, and whether the object identifier matches the AGV leader device;
[0026] When the first group identifier in the second flow data is the same as the first group identifier of the AGV leader device, and the object identifier matches the AGV leader device, determining whether the communication classification in the second flow data matches the AGV leader device;
[0027] In the case where the communication classification in the second flow data does not match the AGV group leader device, the object identifier in the second flow data is modified to the object identifier corresponding to the server, and the first group identifier in the second flow data is modified to the second group identifier, to obtain the modified second flow data;
[0028] The modified second flow data is sent to the bus.
[0029] Optionally, encapsulating the data to be sent according to the first grouping identifier of the AGV device and the processing object identifier to obtain the sent data includes:
[0030] Determining, according to the data to be sent, a communication type of the data to be sent;
[0031] According to the first grouping identifier of the AGV device, the processing object identifier and the communication type of the data to be sent, the data to be sent is encapsulated to obtain the sending data.
[0032] Optionally, the communication type identifier includes: topic communication, action communication and service communication.
[0033] Optionally, the AGV device is an AGV member device and the method further includes:
[0034] Encapsulate the first processing result according to the object identifier of the AGV group leader device of the AGV device and the first group identifier to obtain a second processing result;
[0035] The second processing result is sent to the bus.
[0036] Optionally, the AGV device is an AGV group leader device, and the method further includes:
[0037] receiving the second processing result from the bus;
[0038] The second processing result is stored.
[0039] Optionally, after receiving the second processing result from the bus, the method further includes:
[0040] Determining the importance value of the second processing result;
[0041] When the importance value is greater than or equal to a preset value, encapsulating the second processing result according to the second grouping identifier and the processing object identifier of the server to obtain a third processing result;
[0042] The third processing result is sent to the bus.
[0043] Optionally, the method further comprises:
[0044] When the server fails and the communication classification in the second flow data does not match the AGV device, a matching processing operation is performed on the second flow data to obtain a fourth processing result.
[0045] Optionally, the method further comprises:
[0046] In the case where a first feedback result of the server to the modified second flow data is not received from the bus, determining that the server is faulty;
[0047] Wherein, when the server is not faulty and receives the modified second flow data from the bus, the server sends a first feedback result including a signal pointing to the AGV group leader device that sent the modified second flow data to the bus.
[0048] Optionally, the AGV device is an AGV member device, and the method further includes:
[0049] In the case where the AGV group leader device fails and the processing object is the AGV group leader device, encapsulating the data to be sent according to the pre-selected and stored second grouping identifier of the AGV device and the object identifier of the server to obtain the sent data;
[0050] The transmit data is transmitted to the bus.
[0051] Optionally, the AGV device is an AGV group leader device, and the method further includes:
[0052] In a non-faulty situation, receiving the transmission data from the bus;
[0053] When the transmission data is received, a second feedback result including an identifier pointing to the AGV device that sent the transmission data is sent to the bus.
[0054] Optionally, the AGV device is an AGV member device, and the method further includes:
[0055] In the case where the second feedback result is not received from the bus, it is determined that the AGV group leader device is faulty.
[0056] According to a second aspect of the present application, a data interaction method of an AGV cluster is provided, wherein the AGV cluster includes a server and multiple AGV devices hung on a bus, and the method is applied to the server, including:
[0057] When the group identifier of the third flow data on the bus is the second group identifier and the object identifier is the object identifier of the server, acquiring the third flow data;
[0058] A matching processing operation is performed on the third flow data to obtain a fifth processing result.
[0059] Optionally, the method further comprises:
[0060] Sending a feedback result of the AGV group leader device pointing to the third flow data to the bus.
[0061] According to a third aspect of the present application, an AGV device is provided, comprising a first memory and a first processor, wherein the first memory is used to store computer instructions, and the first processor is used to call the computer instructions from the first memory to execute a method as described in any one of the first aspects.
[0062] According to a fourth aspect of the present application, a server is provided, comprising a second memory and a second processor, wherein the second memory is used to store computer instructions, and the second processor is used to call the computer instructions from the second memory to execute the method described in the second aspect.
[0063] According to a fifth aspect of the present application, an AGV cluster is provided, comprising a plurality of AGV devices as described in the third aspect and a server as described in the fourth aspect.
[0064] According to a sixth aspect of the present application, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the method according to any one of the first aspect and the second aspect is implemented.
[0065] In an embodiment of the present application, a data interaction method for an AGV cluster includes a server and multiple AGV devices hanging on a bus, and the method is applied to any AGV device, including: obtaining a first grouping identifier; determining a processing object identifier of a processing object of the data to be sent according to the data to be sent of the AGV device, the processing object being one of the AGV device, the AGV group leader device in the group where the AGV device is located, and the server; encapsulating the data to be sent according to the first grouping identifier and the processing object identifier of the AGV device to obtain the sending data; sending the sending data to the bus; wherein the multiple AGV devices are divided into at least one group of AGV devices, a group of AGV devices has the same first grouping identifier, a group of AGV devices includes an AGV group leader device, any AGV group leader device and the server have the same second grouping identifier, and the first grouping identifier and the second grouping identifier correspond to different communication spaces. The data interaction method for an AGV cluster provided by the embodiment of the present application can realize balanced processing of data on AGV devices, thereby avoiding large amounts of data processing by AGV devices.
[0066] Other features and advantages of the present application will become apparent from the following detailed description of exemplary embodiments of the present application with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0067] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the application and, together with the description, serve to explain the principles of the application.
[0068] Figure 1 This is a schematic diagram of the structure of an AGV cluster provided in an embodiment of the present application. Figure 1 ;
[0069] Figure 2 This is a schematic diagram of the structure of an AGV cluster provided in an embodiment of the present application. Figure 2 ;
[0070] Figure 3 This is a schematic diagram of a networking architecture of an AGV cluster provided in an embodiment of the present application;
[0071] Figure 4 This is a flow diagram of a data interaction method for an AGV cluster provided in an embodiment of the present application. Figure 1 ;
[0072] Figure 5 This is a schematic diagram of a communication level division system provided in an embodiment of the present application;
[0073] Figure 6 This is a flow diagram of a data interaction method for an AGV cluster provided in an embodiment of the present application. Figure 2 ;
[0074] Figure 7 It is a structural schematic diagram of an AGV device provided in an embodiment of the present application;
[0075] Figure 8 It is a structural diagram of a server provided in an embodiment of the present application. DETAILED DESCRIPTION
[0076] Various exemplary embodiments of the present application will now be described in detail with reference to the accompanying drawings. It should be noted that unless otherwise specifically stated, the relative arrangement of components and steps, numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present application.
[0077] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the present application, its application, or uses.
[0078] Technologies, methods, and equipment known to ordinary technicians in the relevant art may not be discussed in detail, but where appropriate, the technologies, methods, and equipment should be considered as part of the specification.
[0079] In all examples shown and discussed herein, any specific values should be interpreted as merely exemplary and not as limiting. Therefore, other examples of the exemplary embodiments may have different values.
[0080] It should be noted that like reference numerals and letters refer to similar items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.
[0081] The present application provides a data interaction method for an AGV cluster, wherein the AGV cluster is as follows: Figure 1 Specifically, it includes multiple AGV devices and servers mounted on the bus.
[0082] Further, such as Figure 2 As shown, multiple AGV devices are divided into at least one group of AGV devices, a group of AGV devices has the same first grouping identifier, a group of AGV devices includes an AGV group leader device, any AGV group leader device and the server have the same second grouping identifier, and the first grouping identifier and the second grouping identifier correspond to different communication spaces.
[0083] Based on the above content, it can be understood that a group of AGV devices includes an AGV group leader device and AGV member devices other than the AGV group leader device.
[0084] AGV devices with the same first grouping identifier are in a communication space and can perform data communication with each other through the bus.
[0085] The AGV group leader device and the server have the same second grouping identifier. The AGV group leader and the server are in a communication space and can communicate data with each other through the bus.
[0086] Furthermore, the first group identifier and the second group identifier correspond to different communication spaces, and AGV member devices in a group of AGV devices cannot perform data communication with the server through the bus.
[0087] In summary, the AGV cluster in the embodiment of the present application is a cluster with a three-layer architecture.
[0088] It should be noted that Figure 1 and Figure 2 In the example, 12 AGV devices are used, and every 3 AGV devices form a group of AGV devices. The present application does not limit the number of AGV devices in the AGV cluster.
[0089] In one embodiment of the present application, the above-mentioned AGV cluster can be realized by using the DDS communication protocol and setting a multicast group of the 802.11 protocol.
[0090] And, in one embodiment of the present application, the AC+AP networking mode can be used to achieve a large-scale local area network coverage of the same network segment of AGV devices and servers in the AGV cluster. Figure 3 shown.
[0091] Based on the above AGV cluster, the present application provides an AGV cluster data interaction method applied to any AGV device in the AGV cluster, such as Figure 4 As shown, the following steps S110 to S140 are included.
[0092] Step S110, obtaining a first group identifier.
[0093] In this embodiment, the technician groups the AGV devices according to experience, sets the same first grouping identifier for each group of AGV devices, and stores the same first grouping identifier set for each group of AGV devices in each AGV device of the group. On this basis, the AGV device obtains its own first grouping identifier according to its own storage content.
[0094] In one embodiment of the present application, when the above-mentioned AGV cluster is realized by using the DDS communication protocol and setting a multicast group of the 802.11 protocol, the first group identifier can be realized by using the DOMAIN-ID.
[0095] Step S120: determining the object identifier of the processing object of the data to be sent according to the data to be sent by the AGV device.
[0096] The processing object is an AGV device, an AGV group leader device in the group where the AGV device belongs, and one of the servers.
[0097] In this embodiment, the AGV device includes multiple sensors, such as a radar sensor, a camera, etc. The raw data to be sent may be data collected by any sensor.
[0098] In one embodiment of the present application, different processing objects may be assigned to different types of data to be sent. On this basis, the processing object identifier of the processing object of the data to be sent is determined as the identifier of the processing object assigned to the data to be sent.
[0099] In another embodiment of the present application, the above step S120 can be specifically implemented through the following steps S1201 to S1203.
[0100] Step S1201, determining the processing logic complexity and real-time performance of the data to be sent according to the data to be sent by the AGV device.
[0101] In an example, as shown in Table 1 below, logic complexity and real-time performance can be divided into three levels respectively.
[0102] Table 1
[0103]
[0104] Further, based on the above Table 1, the communication level of the data to be sent can be divided into 9 levels as shown in the following Table 2.
[0105] Table 2 Communication Detailed Classification Table
[0106] Communication Level Message Type Level 1 Complex logic at millisecond level or below Level 2 Complex logic in seconds Level 3 Complex logic above seconds Level 4 Medium logic at millisecond level or below Level 5 Second-level medium logic Level 6 Medium logic above seconds Level 7 Simple logic at millisecond level or below Level 8 Simple logic in seconds Level 9 Simple logic in seconds or more
[0107] In this embodiment, the technicians determine based on experience that different data to be sent correspond to different processing logic complexity and real-time performance. On this basis, the type of data to be sent and the corresponding processing logic complexity and real-time performance are stored in the AGV device. The AGV device determines the processing logic complexity and real-time performance of the data to be sent by querying the aforementioned storage method.
[0108] Step S1202: Determine the communication level of the data to be sent according to the complexity and real-time performance of the processing logic.
[0109] In this embodiment, according to the complexity and real-time performance of the processing logic, the communication level of the data to be sent is obtained by querying the above Table 2.
[0110] Step S1203: determining the processing object identifier of the processing object of the data to be sent according to the communication level.
[0111] In an embodiment of the present application, different processing objects are allocated to data to be sent at different communication levels.
[0112] In one embodiment of the present application, Figure 5 As shown, when the communication level of the data to be sent is level 2 or level 3, it is determined that the processing object of the data to be sent is the server.
[0113] When the communication level of the data to be sent is level 4 or level 7, it is determined that the processing object of the data to be sent is the AGV device itself corresponding to the data to be sent.
[0114] When the communication level of the data to be sent is level 5, level 6, level 8 or level 9, it is determined that the processing object of the data to be sent is the AGV group leader device of the group to which the AGV device corresponding to the data to be sent belongs.
[0115] Through the above step S1203, a processing object that meets the needs can be allocated to the data to be sent.
[0116] It should be noted that level 1 communication should be avoided as much as possible. Millisecond-level communication with responsible logic can be avoided by controlling the speed of AGV equipment, hierarchical processing of tasks, and other operations.
[0117] Step S130: encapsulate the data to be sent according to the first grouping identifier and the processing object identifier of the AGV device to obtain the sent data.
[0118] In this embodiment, the first grouping identifier of the AGV device and the processing object identifier are encapsulated with the data to be sent to obtain the sending data.
[0119] In one embodiment of the present application, the processing object identifier may be encapsulated by setting a topic pointing to the processing object identifier.
[0120] Step S140, sending the transmission data to the bus.
[0121] In this embodiment, the transmission data obtained based on the above step S130 is sent to the bus to be received and processed by the processing object connected to the bus. Since the processing object is the AGV device, the AGV group leader device in the group where the AGV device is located, and one of the servers, that is, different data on an AGV device can be processed by itself, other AGVs, and one of the servers, which can achieve balanced processing of data on the AGV device, thereby avoiding the AGV device from processing a large amount of data.
[0122] In an embodiment of the present application, a data interaction method for an AGV cluster includes a server and multiple AGV devices hanging on a bus, and the method is applied to any AGV device, including: obtaining a first grouping identifier; determining a processing object identifier of a processing object of the data to be sent according to the data to be sent of the AGV device, the processing object being one of the AGV device, the AGV group leader device in the group where the AGV device is located, and the server; encapsulating the data to be sent according to the first grouping identifier and the processing object identifier of the AGV device to obtain the sending data; sending the sending data to the bus; wherein the multiple AGV devices are divided into at least one group of AGV devices, a group of AGV devices has the same first grouping identifier, a group of AGV devices includes an AGV group leader device, any AGV group leader device and the server have the same second grouping identifier, and the first grouping identifier and the second grouping identifier correspond to different communication spaces. The data interaction method for an AGV cluster provided by the embodiment of the present application can realize balanced processing of data on AGV devices, thereby avoiding large amounts of data processing by AGV devices.
[0123] In one embodiment of the present application, the AGV device is an AGV group leader device or an AGV member device, and the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following steps S150 to S170.
[0124] Step S150 , detecting whether the first group identifier in the first flow data on the bus is the same as the first group identifier of the AGV device, and whether the object identifier matches the AGV device.
[0125] In this embodiment, the first streaming data is data sent to the bus by any AGV device in the AGV cluster.
[0126] And, detect whether the first group identifier in the first flow data on the bus is the same as the first group identifier of the AGV device that executes the data interaction method of the AGV cluster provided in this embodiment. If they are the same, it means that the AGV device that sends the first flow data and the AGV device that executes the data interaction method of the AGV cluster provided in this embodiment belong to the same group and can communicate with each other. Otherwise, they are not the same group and cannot communicate with each other.
[0127] Further, it is detected whether the object identifier in the first flow data matches the AGV device that executes the data interaction method of the AGV cluster provided in this embodiment. If it matches, it means that the AGV device that executes the data interaction method of the AGV cluster provided in this embodiment is the processing object of the first flow data, and the first flow data can be processed. Otherwise, the first flow data cannot be processed.
[0128] Step S160: When the first grouping identifier in the first flow data is the same as the first grouping identifier of the AGV device and the object identifier matches the AGV device, determine that the AGV device is a processing object.
[0129] In this embodiment, when the first group identifier in the first flow data is the same as the first group identifier of the AGV device, and the object identifier matches the AGV device, it means that the AGV device executing the data interaction method of the AGV cluster provided in this embodiment and the AGV device sending the first flow data to the bus can communicate with each other. Further, when the AGV device executing the data interaction method of the AGV cluster provided in this embodiment matches the object identifier in the first flow data, the AGV device executing the data interaction method of the AGV cluster provided in this embodiment is determined to be the processing object of the first flow object.
[0130] Corresponding to the above step S160, when the first grouping identifier in the first flow data is the same as the first grouping identifier of the AGV device, and / or the object identifier matches the AGV device, it is determined that the AGV device is not the processing object of the first flow data. At this time, no processing is performed on the first flow data.
[0131] It should be noted that, when the first group identifier in the first flow data is the same as the first group identifier of the AGV device, and the object identifier matches the AGV device, there are two situations in which the processing object is to send the first flow data to the AGV device on the bus, or to send the first flow data to the AGV group leader device of the group to which the AGV device on the bus belongs.
[0132] Step S170, performing a matching processing operation on the first flow data to obtain a first processing result.
[0133] In the embodiment of the present application, the first flow data is marked with a corresponding processing method identifier, and the AGV device performs a matching processing operation on the first flow data according to the processing method identifier, thereby obtaining a first processing result.
[0134] In the first embodiment of the present application, the processing operation may be exemplarily a storage operation, and of course, may also be other operations.
[0135] In this embodiment, through the above steps S150 to S170, the AGV device can complete the matching processing operation on the first flow data directed to itself on the bus.
[0136] In one embodiment of the present application, when the communication level points to the server, the above step S1203 is specifically implemented by the following step S1203-1.
[0137] S1203-1, when the communication level points to the server, determining that the processing object of the data to be sent is the AGV group leader device of the AGV devices.
[0138] In this embodiment, when the communication level points to the server, since the AGV member device cannot communicate with the server through the bus, at this time, no matter whether the AGV device corresponding to the data to be sent is an AGV member device or an AGV group leader device, the processing object of the data to be sent is determined to be the AGV group leader device of the group to which the AGV device belongs.
[0139] On the basis of the above step S1203-1, the above step S130 is specifically implemented through the following step S1301.
[0140] Step S1301: encapsulate the data to be sent according to the first grouping identifier, the processing object identifier and the communication level of the AGV device to obtain the sending data.
[0141] In this embodiment, the first grouping identifier, the processing object identifier and the communication level of the AGV device are all encapsulated in the data to be sent, and the encapsulated data is obtained and recorded as the sending data.
[0142] In this embodiment, a method for encapsulating data to be sent with a communication level pointing to a server is provided.
[0143] In one embodiment of the present application, based on the above embodiment, when the AGV device is an AGV group leader device, the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following steps S170 to S1100.
[0144] Step S170, detecting whether the first group identifier in the second flow data on the bus is the same as the first group identifier of the AGV leader device, and whether the object identifier matches the AGV leader device.
[0145] The second flow data is data monitored by the AGV leader device from the bus. Exemplarily, it can be data transmitted to the bus by the sending data in the above step S1301.
[0146] The specific implementation of the above step S170 is the same as that of the above step S150, which will not be repeated here.
[0147] Step S180, when the first group identifier in the first flow data is the same as the first group identifier of the AGV leader device and the object identifier matches the AGV leader device, determine whether the communication classification in the first flow data matches the AGV leader device.
[0148] In this embodiment, the first group identifier in the first flow data is the same as the first group identifier of the AGV leader device, and the object identifier matches the AGV leader device, specifically in the following two cases:
[0149] Case 1: The first group identifier in the first flow data is the same as the first group identifier of the AGV leader device, and the object identifier matches the AGV leader device, and the communication level in the first flow data points to the server. That is, the object identifier in the first flow data does not match the AGV leader device.
[0150] Case 2: The first group identifier in the first flow data is the same as the first group identifier of the AGV leader device, and the object identifier matches the AGV leader device, and the communication hierarchy in the first flow data points to the AGV leader device. That is, the object identifier in the first flow data matches the AGV leader device.
[0151] For the above situation 2, specifically the situation corresponding to the above steps S1201 to S1203, it is implemented through the embodiments shown in the above steps S1201 to S1203.
[0152] For the above-mentioned situation 1, the following step S190 is performed.
[0153] Step S190, when the communication classification in the second flow data does not match the AGV group leader device, the object identifier in the second flow data is modified to the object identifier corresponding to the server, and the first group identifier in the second flow data is modified to the second group identifier to obtain the modified second flow data.
[0154] In this embodiment, if the communication classification in the second flow data does not match the AGV group leader device, it means that the communication classification in the second flow data points to the server. At this time, the object identifier in the second flow data is modified to the object identifier corresponding to the server, and the first group identifier in the second flow data is modified to the second group identifier to obtain the modified second flow data.
[0155] Step S1100, sending the modified second flow data to the bus.
[0156] In this embodiment, after the AGV group leader device sends the modified second flow data to the bus, since the object identifier of the modified second flow data points to the server and includes the same second group identifier as the server, the server can receive the modified second flow data from the bus. Further, the server performs matching processing on the modified second flow data.
[0157] In this embodiment, the AGV group leader device acts as a relay and sends the second flow data with a communication level pointing to the server to the server.
[0158] In one embodiment of the present application, the above step S130 can also be implemented through the following steps S1302 and S1303.
[0159] Step S1302: Determine the communication type of the data to be sent according to the data to be sent.
[0160] In one embodiment of the present application, the communication types include topic communication, action communication, and service communication.
[0161] In this embodiment, the AGV device pre-stores first preset mapping data, which reflects the mapping relationship between different types of data to be sent and their corresponding communication types. The AGV device determines the communication type of the data to be sent based on the first preset mapping data and the data to be sent.
[0162] Step S1303: encapsulate the data to be sent according to the first grouping identifier of the AGV device, the processing object identifier, and the communication type of the data to be sent to obtain the sending data.
[0163] In this embodiment, the communication type, the first grouping identifier of the AGV device, and the processing object identifier are all encapsulated in the data to be sent to obtain the sent data. In this way, when the sent data is subsequently processed, the sent data can be processed appropriately according to the communication type corresponding to the sent data.
[0164] On the basis of the embodiment shown in the above steps S1201 to S1203, when the AGV device is an AGV member device, the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following steps S1110 and S1120.
[0165] Step S1110, encapsulating the first processing result according to the object identifier of the AGV group leader device of the AGV device and the first group identifier to obtain the second processing result.
[0166] Step S1120, sending the second processing result to the bus.
[0167] In this embodiment, by encapsulating the first processing result in the above step S1110, the first processing result can be sent to the AGV group leader device corresponding to the AGV device.
[0168] In one embodiment of the present application, the AGV device is an AGV group leader device, and the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following steps S1130 and S1140.
[0169] Step S1130, receiving the second processing result from the bus.
[0170] In this embodiment, since the object identifier in the second processing result points to the AGV group leader device, the AGV group leader device can receive the second processing result from the bus.
[0171] Step S1140, storing the second processing result.
[0172] In this embodiment, the second processing result is stored in the AGV group leader device, so that the second processing result can be backed up by the AGV group leader device.
[0173] In one embodiment of the present application, the data interaction method of the AGV cluster provided in the embodiment of the present application further includes the following steps S1150 to S1170 after the above step S1130.
[0174] Step S1150, determining the importance value of the second processing result.
[0175] In an embodiment of the present application, the AGV device pre-stores second preset mapping data, which reflects the mapping relationship between different processing results and corresponding importance values. The AGV leader device determines the importance value of the second processing result based on the aforementioned second preset mapping data and the data to be sent.
[0176] Of course, the importance value of the second processing result may also be determined by other methods, which is not limited in this application.
[0177] Step S1160: When the importance value is greater than or equal to the preset value, the second processing result is encapsulated according to the second grouping identifier and the processing object identifier of the server to obtain a third processing result.
[0178] In the embodiment of the present application, the preset value can be set according to experience, and the preset value is specifically the minimum importance value that requires the server to perform storage backup. When the importance value is greater than or equal to the preset value, it means that the second processing result requires the server to perform storage backup. At this time, the second processing result is encapsulated according to the second grouping identifier and the processing object identifier of the server to obtain the third processing result.
[0179] Corresponding to the above step S1160, when the importance value is less than the preset value, no further processing is performed, and the AGV device only needs to store the second processing result.
[0180] Step S1170, sending the third processing result to the bus.
[0181] In this embodiment, the server may obtain the third processing result from the bus, and store and back up the third processing result.
[0182] In this embodiment, through the above steps S1150 to S1170, storage backup of processing results of different importance values can be achieved, so as to avoid the possibility of loss of processing results when one device in the AGV cluster fails.
[0183] Of course, when the AGV team leader device processes a flow data on the bus and obtains a corresponding processing result, the above-mentioned steps S1150 to S1170 can also be used to realize the backup of the above-mentioned processing result.
[0184] In one embodiment of the present application, based on the embodiments shown in the above steps S170 to S1100, the data communication method of the AGV cluster provided in the embodiment of the present application further includes the following step S1180.
[0185] Step S1180: When the server fails and the communication classification in the first flow data does not match the AGV device, a matching processing operation is performed on the first flow data to obtain a fourth processing result.
[0186] In one embodiment of the present application, the server may periodically send a first ACK message, such as a heartbeat, to any AGV. If the AGV device does not receive the first ACK message within a first preset time, the AGV group leader device determines that the server is faulty. The first preset time can be set based on experience.
[0187] In this embodiment, if the communication classification in the first flow data does not match the AGV group leader device, it means that the communication classification in the first flow data points to the server, but the server is faulty at this time. In this case, the AGV group leader device acts as the server and processes the first flow data to obtain the fourth processing result.
[0188] Through the above step S1180, the situation of server failure can be dealt with.
[0189] In one embodiment of the present application, whether the server is faulty may be determined according to the following step S1190.
[0190] Step S1190: When a first feedback result of the server to the modified second flow data is not received from the bus, it is determined that the server is faulty.
[0191] Wherein, when the server is not faulty and receives the modified second flow data from the bus, the server sends a first feedback result including a signal pointing to the AGV group leader device that sent the modified second flow data to the bus.
[0192] In this embodiment, if the server is not faulty, it can obtain the data that needs to be processed by itself from the bus. In the case of obtaining the data that needs to be processed by itself, the server sends a feedback result pointing to the sender of the data to the bus. For example, in the case of receiving the modified second flow data from the bus, the first feedback result pointing to the AGV leader device that sent the modified second flow data is sent to the bus. On this basis, the AGV leader device will receive the first feedback result from the bus.
[0193] Correspondingly, if the server fails, it cannot obtain the data that needs to be processed by itself from the bus, and further, it cannot send feedback results pointing to the sender of the data to the bus. For example, the server cannot obtain the modified second flow data from the bus, and cannot send the first feedback result pointing to the AGV leader device that sent the modified second flow data to the bus. On this basis, the AGV leader device cannot receive the first feedback result.
[0194] In combination with the above content, the AGV group leader device determines that the server is faulty when not receiving the first feedback result of the server on the modified second flow data from the bus.
[0195] In this embodiment, a method for determining server failure is provided, in which the server does not need to provide regular feedback, which can reduce the power consumption of the server and the amount of data on the bus.
[0196] In one embodiment of the present application, based on the above steps S110 to S140, the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following steps S1200 and S1210.
[0197] Step S1200, when the AGV leader device fails and the processing object is the AGV leader device, encapsulate the data to be sent according to the pre-selected and stored second grouping identifier of the AGV device and the object identifier of the server to obtain the data to be sent.
[0198] In one embodiment of the present application, the AGV leader device may periodically send a second ACK message, such as a heartbeat, to any AGV member device. If the AGV member device does not receive the second ACK message within the second preset time, the AGV member device determines that the AGV leader device is faulty. The second preset time can be set based on experience.
[0199] In this embodiment, when the AGV leader device fails and the processing object is the AGV leader device, the AGV leader device cannot complete the corresponding processing of the data to be sent, and the server needs to replace the AGV leader device to realize the corresponding processing of the data to be sent. On this basis, the AGV device encapsulates the data to be sent according to the pre-selected and stored second grouping identifier of the AGV device and the object identifier of the server to obtain the sent data.
[0200] Step S1210, sending the transmission data to the bus.
[0201] In this embodiment, the server communicates directly with the AGV member devices to cope with the situation of AGV group leader device failure.
[0202] In one embodiment of the present application, based on the above steps S1200 and S1210, if the AGV group leader is not faulty, the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following steps S1220 and S1230.
[0203] Step S1220, when there is no fault, receiving and sending data from the bus.
[0204] In this embodiment, based on step S1200 and step S1210, it can be known that the transmitted data is directed to the AGV leader device. Therefore, the AGV leader device can receive the transmitted data from the bus in the case of no failure.
[0205] Step S1230: When the transmission data is received, a second feedback result including an identifier pointing to the AGV device that transmits the transmission data is transmitted to the bus.
[0206] In this embodiment, if the AGV leader device is not faulty, it can obtain the data that needs to be processed by itself from the bus. In the case of obtaining the data that needs to be processed by itself, the AGV leader device sends a feedback result pointing to the sender of the data to the bus. For example, in the case of receiving the sent data from the bus, the second feedback result pointing to the AGV member device that sent the sent data is sent to the bus. On this basis, the AGV member device will receive the second feedback result from the bus.
[0207] If the corresponding AGV leader device fails, it will not be able to obtain the data that needs to be processed by itself from the bus, and further, it will not be able to send feedback results pointing to the sender of the data to the bus. For example, the AGV leader device cannot obtain the sent data from the bus, and cannot send the second feedback result pointing to the AGV member device that sent the sent data to the bus. On this basis, the AGV member device cannot receive the second feedback result.
[0208] In combination with the above content, when the AGV member device does not receive the second feedback result of the AGV leader device on the sent data from the bus, it determines that the AGV leader device is faulty. That is, the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following step S1240.
[0209] Step S1240: If the second feedback result is not received from the bus, it is determined that the AGV group leader device is faulty.
[0210] The present application also provides a data interaction method of an AGV cluster applied to a server in the above AGV cluster, such as Figure 6 As shown, the method includes the following steps S210 and S220.
[0211] Step S210: When the group identifier of the third flow data on the bus is the second group identifier and the object identifier is the object identifier of the server, the third flow data is acquired.
[0212] In one embodiment of the present application, the third flow data may be the modified second flow data involved in the data interaction method of the AGV cluster using the AGV devices in the AGV cluster. Of course, it may also be the third processing result.
[0213] In this embodiment, when the group identifier of the second flow data on the bus is the second group identifier and the object identifier is the object identifier of the server, it means that the second flow data needs to be processed by the server and can be read by the server. At this time, the following step S220 is executed.
[0214] Step S220, performing a matching processing operation on the third flow data to obtain a fifth processing result.
[0215] In one embodiment of the present application, when the second flow data is the third processing result, the operation matching the second flow data is specifically a storage operation.
[0216] In one embodiment of the present application, the data interaction method of the AGV cluster provided in the embodiment of the present application also includes the following step S230.
[0217] Step S230: Send a feedback result of the AGV group leader device pointing to the third flow data to the bus.
[0218] In this embodiment, when the third flow data may be the modified second flow data sent by the AGV group leader device, the feedback result is specifically the first feedback result in the above step S1190.
[0219] The present application also provides an AGV device 700, such as Figure 7As shown, the AGV device 700 includes a first memory 710 and a first processor 720, the first memory 710 is used to store computer instructions, and the first processor 720 is used to call the computer instructions from the first memory 710 to execute any method in the data interaction method embodiment of the AGV cluster as mentioned above applied to any AGV device in the AGV cluster.
[0220] The present application also provides a server 800, such as Figure 8 As shown, the server 800 includes a second memory 810 and a second processor 820, the second memory 810 is used to store computer instructions, and the second processor 820 is used to call the computer instructions from the second memory 810 to execute any one of the methods in the above-mentioned data interaction method embodiments of the AGV cluster applied to the server in the AGV cluster.
[0221] The present application also provides an AGV cluster, which includes a plurality of AGV devices 700 of any type provided by the above-mentioned AGV device embodiments and a server 800 of any type provided by the above-mentioned server embodiments.
[0222] The present application also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the data interaction method of the AGV cluster according to any of the above embodiments is implemented.
[0223] The present application may be a system, a method and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present application.
[0224] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be interpreted as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
[0225] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0226] The computer program instructions for performing the operation of the present application can be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions can be executed completely on a user's computer, partially on a user's computer, executed as an independent software package, partially on a user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an Internet service provider to connect through the Internet). In some embodiments, by using the state information of a computer-readable program instruction to personalize an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA), the electronic circuit can execute a computer-readable program instruction, thereby realizing various aspects of the present application.
[0227] Various aspects of the present application are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present application. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0228] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0229] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0230] The flowchart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the specified logical function. In some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of the boxes in the block diagram and / or flowchart can be implemented by a dedicated hardware-based system that performs the specified function or action, or can be implemented by a combination of dedicated hardware and computer instructions. It is well known to those skilled in the art that it is equivalent to implement it by hardware, implement it by software, and implement it by combining software and hardware.
[0231] The embodiments of the present application have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and changes will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the present application is defined by the appended claims.
Claims
1. A data interaction method for an AGV cluster, characterized in that: The AGV cluster includes a server and multiple AGV devices connected to a bus. The method is applied to any of the AGV devices, including: Obtain a first group identifier; Determine, according to the data to be sent by the AGV device, a processing object identifier of a processing object of the data to be sent, wherein the processing object is the AGV device, an AGV group leader device in the group where the AGV device is located, and one of the servers; Encapsulating the data to be sent according to the first grouping identifier of the AGV device and the processing object identifier to obtain the sent data; Sending the transmission data to the bus; Among them, the multiple AGV devices are divided into at least one group of AGV devices, a group of AGV devices have the same first grouping identifier, a group of AGV devices includes an AGV group leader device, any of the AGV group leader devices and the server have the same second grouping identifier, and the first grouping identifier and the second grouping identifier correspond to different communication spaces.
2. The method according to claim 1, characterized in that The AGV device is an AGV group leader device or an AGV member device, and the method further includes: Detecting whether a first group identifier in the first flow data on the bus is the same as a first group identifier of the AGV device, and whether the object identifier matches the AGV device; When the first group identifier in the first flow data is the same as the first group identifier of the AGV device, and the object identifier matches the AGV device, determining that the AGV device is the processing object; And, performing a matching processing operation on the first flow data to obtain a first processing result.
3. The method according to claim 1, characterized in that The step of determining the processing object identifier of the processing object of the data to be sent according to the data to be sent by the AGV device includes: Determine the processing logic complexity and real-time performance of the data to be sent according to the data to be sent by the AGV device; Determining the communication level of the data to be sent according to the complexity of the processing logic and the real-time performance; A processing object identifier of a processing object of the data to be sent is determined according to the communication level.
4. The method according to claim 3, characterized in that The step of determining the processing object identifier of the processing object of the data to be sent according to the communication level includes: In a case where the communication level points to the server, determining that the processing object of the data to be sent is the AGV group leader device of the AGV device; The step of encapsulating the data to be sent according to the first grouping identifier of the AGV device and the processing object identifier to obtain the sent data includes: According to the first grouping identifier of the AGV device, the processing object identifier and the communication level, the data to be sent is encapsulated to obtain the sending data.
5. The method according to claim 4, characterized in that The AGV device is an AGV group leader device, and the method further includes: Detecting whether the first group identifier in the second flow data on the bus is the same as the first group identifier of the AGV leader device, and whether the object identifier matches the AGV leader device; When the first group identifier in the second flow data is the same as the first group identifier of the AGV leader device, and the object identifier matches the AGV leader device, determining whether the communication classification in the second flow data matches the AGV leader device; In the case where the communication classification in the second flow data does not match the AGV group leader device, the object identifier in the second flow data is modified to the object identifier corresponding to the server, and the first group identifier in the second flow data is modified to the second group identifier, to obtain the modified second flow data; The modified second flow data is sent to the bus.
6. The method according to claim 1, characterized in that The step of encapsulating the data to be sent according to the first grouping identifier of the AGV device and the processing object identifier to obtain the sent data includes: Determining, according to the data to be sent, a communication type of the data to be sent; According to the first grouping identifier of the AGV device, the processing object identifier and the communication type of the data to be sent, the data to be sent is encapsulated to obtain the sending data.
7. The method according to claim 6, characterized in that The communication type identifier includes: topic communication, action communication and service communication.
8. The method according to claim 2, characterized in that: The AGV device is an AGV member device, and the method further includes: Encapsulate the first processing result according to the object identifier of the AGV group leader device of the AGV device and the first group identifier to obtain a second processing result; The second processing result is sent to the bus.
9. The method according to claim 8, characterized in that The AGV device is an AGV group leader device, and the method further includes: receiving the second processing result from the bus; The second processing result is stored.
10. The method according to claim 9, characterized in that After receiving the second processing result from the bus, the method further includes: Determining the importance value of the second processing result; When the importance value is greater than or equal to a preset value, encapsulating the second processing result according to the second grouping identifier and the processing object identifier of the server to obtain a third processing result; The third processing result is sent to the bus.
11. The method according to claim 5, characterized in that The method further comprises: When the server fails and the communication classification in the second flow data does not match the AGV device, a matching processing operation is performed on the second flow data to obtain a fourth processing result.
12. The method according to claim 11, characterized in that The method further comprises: In the case where a first feedback result of the server to the modified second flow data is not received from the bus, determining that the server is faulty; Wherein, when the server is not faulty and receives the modified second flow data from the bus, the server sends a first feedback result including a signal pointing to the AGV group leader device that sent the modified second flow data to the bus.
13. The method according to claim 1, characterized in that The AGV device is an AGV member device, and the method further includes: In the case where the AGV group leader device fails and the processing object is the AGV group leader device, encapsulating the data to be sent according to the pre-selected and stored second grouping identifier of the AGV device and the object identifier of the server to obtain the sent data; The transmission data is transmitted to the bus.
14. The method according to claim 13, characterized in that The AGV device is an AGV group leader device, and the method further includes: In a non-faulty situation, receiving the transmission data from the bus; When the transmission data is received, a second feedback result including an identifier pointing to the AGV device that sent the transmission data is sent to the bus.
15. The method according to claim 14, characterized in that The AGV device is an AGV member device, and the method further includes: In the case where the second feedback result is not received from the bus, it is determined that the AGV group leader device is faulty.
16. A data interaction method for an AGV cluster, characterized in that: The AGV cluster includes a server and multiple AGV devices connected to a bus. The method is applied to the server and includes: When the group identifier of the third flow data on the bus is the second group identifier and the object identifier is the object identifier of the server, acquiring the third flow data; A matching processing operation is performed on the third flow data to obtain a fifth processing result.
17. The method according to claim 16, characterized in that The method further comprises: Sending a feedback result of the AGV group leader device pointing to the third flow data to the bus.
18. An AGV device, characterized in that: The AGV device includes a first memory and a first processor, the first memory is used to store computer instructions, and the first processor is used to call the computer instructions from the first memory to execute the method according to any one of claims 1-15.
19. A server, characterized in that: The server comprises a second memory and a second processor, wherein the second memory is used to store computer instructions, and the second processor is used to call the computer instructions from the second memory to execute the method according to claim 16 or 17.
20. An AGV cluster, characterized in that: It comprises a plurality of AGV devices as claimed in claim 18 and a server as claimed in claim 19.
21. A computer-readable storage medium, characterized in that: A computer program is stored thereon, which, when executed by a processor, implements the method according to any one of claims 1 to 17.
Citation Information
Cited By
AGV dynamic scheduling method and system
CN122111098A