An unmanned aerial vehicle system and a data communication method and device thereof

By employing the KCP protocol in the UAV system to package and perform error checking on data packets, the reliability problem of data transmission between the airborne and ground ends is solved, enabling accurate transmission and processing of data packets and adapting to diverse data type requirements.

CN116319453BActive Publication Date: 2026-06-16AVIC (CHENGDU) UAS CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
AVIC (CHENGDU) UAS CO LTD
Filing Date
2023-03-30
Publication Date
2026-06-16

AI Technical Summary

Technical Problem

In existing UAV systems, the reliability of data transmission between the airborne and ground ends is insufficient. Especially when the types of data being transmitted are diverse, the UDP multicast protocol cannot effectively identify and resolve errors in data packets, leading to inaccurate transmission.

Method used

The KCP protocol is used to package and check data packets. Data packets are received by listening to the UDP multicast address. When an error is detected, no response information is sent to prompt the client to re-upload the data packet, or out-of-order data packets are cached and reordered.

🎯Benefits of technology

It improves the accuracy and reliability of data transmission between airborne and ground terminals, ensures the integrity and correct ordering of data packets, and adapts to diverse data transmission needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116319453B_ABST
    Figure CN116319453B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of communication, and discloses a data communication method and device of a UAV system and the UAV system, the communication method is applied to a server; wherein the UAV system comprises an airborne terminal and a ground terminal which are in communication connection with each other, one of the ground terminal and the airborne terminal is the server, and the other is a client; the communication method comprises the following steps: listening to a UDP multicast address, receiving a data packet transmitted through a UDP multicast protocol; performing error checking on the data packet by using a KCP protocol; if the data packet has errors, not feeding back response information to the client, so that the client re-uploads the data packet. In the application, the client first packages the data to be transmitted by using the KCP protocol, so that the server can perform error checking on the data packet by using the KCP protocol, thereby guaranteeing the accuracy of data transmission between the airborne terminal and the ground terminal to a certain extent, and being beneficial to the wide application of the UAV system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communication technology, and in particular to an unmanned aerial vehicle (UAV) system and its data communication method and apparatus. Background Technology

[0002] Unmanned aerial vehicles (UAVs), also known as drones, are aircraft whose flight paths are directly or indirectly controlled using advanced electronic chips and wireless remote control devices. UAVs are characterized by their small size, ease of use, and flexible operation, with very low environmental requirements for their missions. The development and application of UAVs have attracted the interest of many enterprises and research institutions. UAVs utilize advanced technologies such as the Internet of Things (IoT), GPS, artificial intelligence (AI), and machine learning to collect real-time mission environment data and transmit this data to the controller, who then performs various application operations. UAVs have already been applied in many fields, including military applications such as reconnaissance aircraft or target drones, and civilian applications such as aerial photography, agricultural plant protection, disaster relief, news reporting, film and television production, and power line inspection. The following is a brief introduction to some of these applications.

[0003] During various flight missions, drones need to frequently exchange data with ground control. Ensuring the accuracy of this data transmission directly affects the reliability of the drone's actual operations. Therefore, ensuring accurate data transmission between the drone and the ground control is of paramount importance. Summary of the Invention

[0004] The purpose of this invention is to provide a data communication method, apparatus, and a drone system that can improve the reliability of data communication between the airborne end and the ground end of the drone system to a certain extent.

[0005] To address the aforementioned technical problems, this invention provides a data communication method for an unmanned aerial vehicle (UAV) system, applied to a server; wherein the UAV system includes an airborne terminal and a ground terminal connected to each other, one of the ground terminal and the airborne terminal being the server, and the other being the client, and the communication method includes:

[0006] By listening to the UDP multicast address, the system receives data packets transmitted by the client via the UDP multicast protocol; wherein, the data packets are data wrapped by the client using the KCP protocol.

[0007] The KCP protocol is used to perform error checking on the data packets;

[0008] If the data packet does not contain any errors, a response message is sent back to the client.

[0009] If the data packet contains an error, no response information will be sent to the client so that the client can re-upload the data packet.

[0010] Optionally, error checking of the data packets is performed using the KCP protocol, including:

[0011] If the data packet is lost, no response information will be sent to the client, and the client will be received as a re-uploaded data packet.

[0012] If the data packet is out of order, the data packet is cached, reordered, and a response is sent back to the client.

[0013] Optionally, the server may include multiple application nodes;

[0014] Receiving data packets transmitted by the client via the UDP multicast protocol includes:

[0015] The multiple application nodes respectively receive the data packets transmitted by the UDP multicast protocol;

[0016] Each application node compares its corresponding application identifier with the application identifier in the data packet; wherein the application identifier in the data packet is pre-added to the data packet by the client;

[0017] The application node whose corresponding application identifier matches the application identifier in the data packet performs an error check on the data packet using the KCP protocol.

[0018] Optionally, before receiving the data packets transmitted by the client via the UDP multicast protocol, the method further includes:

[0019] A logical communication link is pre-created that corresponds one-to-one between multiple first computing processes and multiple second computing processes of the client; wherein, the second computing process and the corresponding first computing process that establishes the logical communication link correspond to the same session ID;

[0020] After sending the response information back to the client, the process also includes:

[0021] Based on the session ID in the data packet, the data packet is sent to the first processing process corresponding to the session ID for data processing; wherein, the session ID in the data packet is set by the client according to the second processing process that outputs the data packet.

[0022] A data communication device for an unmanned aerial vehicle (UAV) system, applied to a server; wherein the UAV system includes an airborne terminal and a ground terminal that are communicatively connected to each other, wherein one of the ground terminal and the airborne terminal is the server terminal, and the other is a client terminal, and the data communication device includes:

[0023] The data filtering module is used to receive data packets transmitted by the client via the UDP multicast protocol by listening to the UDP multicast address; wherein the data packets are data wrapped by the client using the KCP protocol.

[0024] The network communication module is used to perform error checking on the data packets using the KCP protocol; if the data packets are error-free, it sends a response message to the client; if the data packets are error-free, it does not send a response message to the client so that the client can re-upload the data packets.

[0025] Optionally, the network communication module is specifically configured to, if the data packet is lost, not send a response message to the client and receive the data packet re-uploaded by the client; if the data packet is out of order, cache the data packet, reorder it, and send a response message to the client.

[0026] Optionally, the server includes multiple application nodes; each application node contains a corresponding data filtering module.

[0027] Each of the data filtering modules is used to receive the data packets transmitted by the UDP multicast protocol; and to compare the application identifier of the corresponding application with the application identifier in the data packet; when the comparison results are consistent, the operation of performing error checking on the data packet using the KCP protocol is performed; wherein, the application identifier in the data packet is pre-added to the data packet by the client.

[0028] Optionally, it also includes a session management module, used to pre-create a logical communication link between a plurality of first computing processes and a plurality of second computing processes of the client before receiving data packets transmitted by the client via the UDP multicast protocol; wherein, the second computing process and the corresponding first computing process that establishes the logical communication link correspond to the same session ID;

[0029] The session management module is further configured to, after sending response information back to the client, send the data packet to the first processing process corresponding to the session ID for data processing based on the session ID in the data packet; wherein the session ID in the data packet is set by the client based on the second processing process that outputs the data packet.

[0030] An unmanned aerial vehicle (UAV) system includes: an airborne terminal, a ground terminal, an airborne radio, and a ground radio;

[0031] The airborne terminal and the ground terminal communicate via the airborne radio and the ground radio according to the UDP multicast protocol to execute the steps of implementing the data communication method of the UAV system as described above.

[0032] Optionally, it also includes a drone node that is communicatively connected to the airborne terminal; and multiple ground service nodes that are communicatively connected to the ground terminal;

[0033] Each UAV node and its corresponding ground service node are connected via a one-to-one communication link between the ground terminal and the airborne terminal.

[0034] This invention provides a data communication method, apparatus, and a drone system for use on a server. The drone system includes an airborne terminal and a ground terminal connected to each other, one of which is a server and the other a client. The communication method includes: receiving data packets transmitted by the client via the UDP multicast protocol by listening to a UDP multicast address; wherein the data packets are data packaged by the client using the KCP protocol; performing error checking on the data packets using the KCP protocol; if the data packets are error-free, sending a response message to the client; if the data packets contain errors, not sending a response message to the client so that the client can re-upload the data packets.

[0035] In this application, to ensure the accuracy of data transmission during wireless communication between the airborne and ground ends of the UAV system, the client first encapsulates the data to be transmitted using the KCP protocol. This allows the server to perform error checks on the data packets after they are sent from the client to the server via UDP multicast protocol. This addresses the problem of UDP multicast transmission failing to identify and determine data errors to some extent, and enables the client to re-upload data packets when errors are found. This, in turn, ensures the accuracy of data transmission between the airborne and ground ends and is beneficial for the widespread application of UAV systems. Attached Figure Description

[0036] To more clearly illustrate the technical solutions of the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0037] Figure 1 A flowchart illustrating the data communication method of the unmanned aerial vehicle system provided in this application embodiment;

[0038] Figure 2A KCP message structure provided for embodiments of this application;

[0039] Figure 3 This is a schematic diagram of the framework structure of the unmanned aerial vehicle system provided in the embodiments of this application;

[0040] Figure 4 This is another schematic diagram of the framework structure of the unmanned aerial vehicle system provided in an embodiment of this application. Detailed Implementation

[0041] To enable those skilled in the art to better understand the present invention, the invention will be further described in detail below with reference to the accompanying drawings and specific embodiments. Obviously, the described embodiments are merely some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0042] Currently, the airborne and ground terminals in UAV systems typically communicate using a radio-based UDP multicast protocol. However, UDP multicast cannot guarantee the reliability of data transmission between the airborne and ground terminals. For video data transmitted by the airborne terminal, even if one or two frames are missed, in most cases, it does not affect the overall information exchange between the airborne and ground terminals. However, with the development of various UAV applications, the data that needs to be transmitted between the airborne and ground terminals is not limited to video data. This places higher demands on the reliability of communication between the airborne and ground terminals, and the UDP multicast protocol currently used by the airborne and ground terminals cannot meet this requirement.

[0043] Therefore, this application proposes a technical solution that can improve the reliability of data transmission between the airborne end and the ground end in an unmanned aerial vehicle (UAV) system.

[0044] like Figure 1 As shown, Figure 1 This is a flowchart illustrating the data communication method of an unmanned aerial vehicle (UAV) system provided in an embodiment of this application.

[0045] It is understood that the unmanned aerial vehicle (UAV) system referred to in this application should at least include an airborne terminal and a ground terminal that are wirelessly connected to each other; the airborne terminal is the equipment that performs flight operations, such as UAVs or aircraft; the ground terminal refers to the equipment that controls the UAV to perform flight missions on the ground, or analyzes and processes various data collected by the UAV. In practical applications, frequent data exchange is required between the airborne terminal and the ground terminal, and obviously, the communication method between the two is wireless communication.

[0046] Because communication between the airborne and ground terminals is reciprocal, both the airborne and ground terminals can act as clients sending data or as servers receiving data. Therefore, in one specific embodiment of this application, the data communication method of the UAV system may include:

[0047] S11: By listening to the UDP multicast address, receive data packets transmitted by the client via the UDP multicast protocol; the data packets are data wrapped by the client using the KCP protocol.

[0048] S12: Perform error checking on the data packet using the KCP protocol;

[0049] S13: If there are no errors in the data packet, send a response message to the client;

[0050] S14: If the data packet contains errors, no response information is sent to the client so that the client can re-upload the data packet.

[0051] Wireless communication between the airborne and ground terminals can be achieved through UDP multicast data transmission between the airborne and ground radio stations.

[0052] UDP is short for User Datagram Protocol. It is a connectionless transport layer protocol in the OSI (Open System Interconnection) reference model that provides a simple, unreliable, transaction-oriented message delivery service.

[0053] When a client needs to upload data to a server, it can first encapsulate the data using the KCP protocol. KCP uses only one data packet format; both data and signaling data use the same structure and header. For example... Figure 2 As shown, Figure 2 A KCP message structure is provided for embodiments of this application. The meaning of each field in the KCP message structure is as follows:

[0054] 1) Conv, 32bit, 4Byte: An integer representing the session number. Similar to TCP's conv, both communicating parties must ensure that conv is the same for their data packets to be accepted. conv uniquely identifies a session, but both communicating parties can have multiple sessions simultaneously.

[0055] 2) cmd, 8 bits, 1 byte: Used to distinguish the function of fragmentation. IKCP_CMD_PUSH: Data fragmentation; IKCP_CMD_ACK: Acknowledge fragmentation; IKCP_CMD_WASK: Request window size; IKCP_CMD_WINS: Inform window size.

[0056] 3) frag, 8 bits, 1 byte: User data may be sent in multiple KCP packets. The frag identifies the segment ID (the index in the data packet, from largest to smallest, 0 indicates the last segment).

[0057] 4) wnd, 16bit, 2Byte: Remaining receive window size (receive window size - receive queue size). The sender's send window cannot exceed the value given by the receiver.

[0058] 5) ts, 32bit, 4Byte: Timestamp of the time the data packet was sent.

[0059] 6) sn, 32bit, 4Byte: The sequence number of the data segment, incremented by 1 each time.

[0060] 7) una, 32bit, 4Byte: Sequence number of the message to be received (left end of the receive sliding window). For networks without packet loss, una is the next acceptable sequence number. For example, if a packet with sn=10 is received, una is 11.

[0061] 8) len, 32bit, 4Byte: data length.

[0062] Based on the KCP message structure described above, it is clear that when data uploaded by the client is packaged using the KCP protocol, it needs to be fragmented to form multiple KCP packets, which are the data packets sent by the client to the server. Therefore, after the same set of data is fragmented into multiple data packets, there should be a specific order among these packets. If there are missing or out-of-order packets, these can be identified directly through the sequence number (SN) and unordered number (UA) of each packet. Thus, when the server receives the data packet sent by the client, it can use the KCP protocol to perform error checking. If the received data packet is error-free, the server can send an ACK response to the client to indicate that the data has been successfully received; if the received data packet contains errors, no ACK response is sent. If the client does not receive an ACK response signal from the server within a preset time period after sending the data packet, it will re-upload the data packet, thereby ensuring the accuracy and reliability of the data received by the server.

[0063] In practical applications, when data is transmitted between the airborne and ground terminals, two types of data errors may occur:

[0064] The first type is data packet loss; that is, during the process of the client uploading data to the server, one or more data packets are missed or fail to be uploaded, resulting in data packet loss. In this case, the server can make the client re-upload the data packets by not sending an ACK response to the client.

[0065] The second scenario involves out-of-order data. As mentioned above, when a set of data is divided into multiple fragments and packaged into multiple data packets, there is a specific order among these data packets. However, during the upload process, it cannot be guaranteed that the server receives the data packets in the specified order, and out-of-order data may occur. In this case, retransmission of the data packets is not necessary. The received data packets can be buffered first, and an ACK response can be sent to the client. Then, the data packets can be reordered according to their sequence numbers (SN and UA) to obtain the correctly ordered data packets.

[0066] In summary, in the UAV system of this application, when the airborne end and the ground end transmit data, the data can first be packaged with KCP and then transmitted to the other party through the UDP multicast protocol. This allows the receiving server to use the KCP protocol to perform error checking on the data packet after receiving it, so that if the data packet has errors, the client can resend the data packet in a timely manner. This, to a certain extent, ensures the reliability of data transmission between the airborne end and the ground end, which is conducive to the widespread application of UAV systems.

[0067] Based on the above discussion, in another optional embodiment of this application, S11 may further include:

[0068] Multiple application nodes on the server side receive data packets transmitted via the UDP multicast protocol.

[0069] Each application node compares its corresponding application identifier with the application identifier in the data packet; the application identifier in the data packet is pre-added to the data packet by the client.

[0070] The application node whose corresponding application identifier matches the application identifier in the data packet performs error checking on the data packet using the KCP protocol.

[0071] Reference Figure 3 , Figure 3This is a schematic diagram of the framework structure of the unmanned aerial vehicle (UAV) system provided in this application embodiment. In this application, multiple different applications can be built into both the airborne and ground-based terminals. Therefore, when an application on the client sends a data packet to a corresponding application on the server, requiring data processing by the server's corresponding application, the server needs to first determine which application should process the received data packet. In this process, each application can be considered an application node. When the client needs to upload data to the server, an application identifier can be added to the data packet during the KCP protocol encapsulation process. This application identifier is the application identifier corresponding to the application node on the server that needs to process the data packet. After the client adds an application identifier to the data packet, it can upload the packet to the server via UDP multicast. Each application node on the server can simultaneously receive data packets uploaded by the client. However, obviously, not every application node needs to process the data packet. Therefore, after receiving the data packet, each application node performs preliminary parsing to obtain the application identifier. Each application node compares the application identifier in the data packet with its own corresponding application identifier. If they match, the data packet is the one that the application node needs to process; if they do not match, the data packet can be discarded or deleted, thus saving subsequent data processing steps.

[0072] Based on the above discussion, in practical applications, frequent data transmission is often required between the airborne and ground terminals, and different data requires different processing. If a data packet in one set encounters a problem during processing, it may affect subsequent data processing steps. Therefore, in an optional embodiment of this application, it may further include:

[0073] Before receiving data packets transmitted by the client via the UDP multicast protocol, multiple logical communication links are pre-created that correspond one-to-one between multiple first processing processes and multiple second processing processes of the client; wherein, the second processing process and the corresponding first processing process that establishes the logical communication link share the same session ID;

[0074] After sending the response information back to the client, it also includes:

[0075] Based on the session ID in the data packet, the data packet is sent to the first processing process corresponding to the session ID for data processing; wherein, the session ID in the data packet is set by the client according to the second processing process of the output data packet.

[0076] In this embodiment, both the client and server contain multiple concurrently running processing processes, enabling both the client and server to process multiple different data packets in parallel. Each processing process on the server is designated as a first processing process, and each processing process on the client is designated as a second processing process. Logical communication links corresponding one-to-one between each first and second processing process can be pre-created; and each logical link corresponds to a session ID.

[0077] When a second processing process in the client generates business data, during the KCP protocol encapsulation process of that business data, the session ID of the logical communication link corresponding to that second processing process can be simultaneously added to the data packet, such as... Figure 2 The Conv shown is the session ID that identifies the logical communication link. When the client sends a data packet with the session ID to the server, the server can obtain the session ID carried in the data packet by parsing the data packet, and then send the data packet to the corresponding first processing process for data processing.

[0078] However, it's understandable that in practical applications, each first processing process is not limited to corresponding to only one second processing process. The logical communication links between the various first and second processing processes can be one-to-many or many-to-many. When a second processing process on the client generates business data, it can choose one of the multiple logical communication links and add the corresponding session ID to the data packet. This allows the server to send the data packet to the corresponding first processing process for processing based on the session ID.

[0079] It should be noted that the logical communication links between the various first processing processes and the various second processing processes can be stored using a HashMap.

[0080] Furthermore, during the data interaction between the client and server, the client can create new logical communication links at any time based on actual needs. Therefore, when the server receives a data packet and parses it to obtain a session ID, if the session ID does not exist in the HashMap, it means that the logical communication link corresponding to that session ID is newly created. In this case, the session ID can be cached in the HashMap, and the corresponding callback can be called via a coroutine to process the data on that logical communication link.

[0081] Understandably, in unmanned aerial vehicle (UAV) systems, UAVs often perform different tasks simultaneously in swarms; correspondingly, multiple ground terminal devices are often configured on the ground. (Refer to...) Figure 4 , Figure 4This is another schematic diagram of the frame structure of the unmanned aerial vehicle system provided in an embodiment of this application. Figure 4 The unmanned aerial vehicle (UAV) system shown includes an airborne terminal and a ground terminal, as well as an airborne radio and a ground radio for communication between them. It further includes a UAV swarm, which comprises multiple UAVs connected to the airborne terminal. The airborne terminal can be considered the UAV host, which has a built-in master transmission module. Each of the other UAVs can be considered a slave, and each slave has a slave transmission module. Communication between the slaves and the host is achieved through the slave and master transmission modules. Correspondingly, the ground terminal further includes a ground terminal swarm, which comprises multiple ground terminal nodes connected to the ground terminal.

[0082] Therefore, in practical applications, communication links between each UAV slave and each ground terminal node can be pre-created, and identifiers for each communication link can be added to the data packets.

[0083] When the airborne terminal acts as the server and the ground terminal acts as the client, after data generated by a ground terminal node is sent to the ground terminal, the corresponding communication link session identifier can be added during the KCP packaging process based on the communication link corresponding to that ground terminal node. The resulting data packet is then sent to the airborne terminal. The airborne terminal can determine which UAV slave device needs to process the data packet through preliminary parsing. This establishes a communication connection between the UAV slave device and the ground terminal node. Similarly, when a UAV slave device needs to send data to a ground terminal node, it can be processed in a similar manner, which will not be elaborated further in this embodiment.

[0084] Reference Figure 3 In one optional embodiment of this application, the data communication method between the ground end and the airborne end in the unmanned aerial vehicle system may include:

[0085] Step 1: The business logic in the ground application initiates a request (in this example, an HTTP request); at this point, the specific implementation of the communication protocol needs to call the session management module to create a reliable logical communication link, which the subsequent implementation of the communication protocol can then use for communication.

[0086] Step 2: After receiving the communication protocol call, the ground-based session management module, based on the UDP multicast address and application identifier configuration passed from the upper layer, calls the network management module to obtain a reliable logical communication link packaged with the KCP protocol. When creating the logical communication link, the session management module generates a unique session ID. Subsequently, when sending data, the session management module will divide the data passed from the upper layer into packets of fixed size and add the session ID to the packets to be sent to distinguish between different sessions.

[0087] Step 3: After receiving the call to create a logical communication link from the session management module, the network management module will invoke the underlying data communication module and communicate with the corresponding program on the onboard end using UDP multicast. If data loss, corruption, or out-of-order data occurs during data transmission, mechanisms such as retransmission and buffer reordering will be used to ensure that the data processed by the session management module is ordered and that no data packets are lost.

[0088] Step 4: When the data communication module receives the data packet sent by the network management module, it will add the user-configured application identifier to the data packet to ensure that when the application receives the data, it can determine whether it is data of its own program. Then, the data packet will be sent to the airborne radio via the ground radio using the UDP multicast protocol.

[0089] Step 5: After receiving the data, the airborne radio broadcasts the data to all applications on the airborne terminal that are listening to the corresponding UDP multicast address.

[0090] Step 6: When the airborne data communication module receives a data packet broadcast by the radio, it parses the data packet and determines whether it is a data packet corresponding to the current application based on the application identifier in the data packet. If not, the data packet is simply discarded; if it is, the data packet is sent to the network management module without modification.

[0091] Step 7: Upon receiving a data packet (or if no ACK data packet is received within a specified time), the network management module determines, according to the KCP protocol, whether the data packet has timed out, been lost, or is corrupted. It then sorts the data packets in its buffer and notifies the session management module of the data packets in an ordered and reliable manner. Upon receiving a data packet, the network management module also sends an ACK response to the application on the ground end for each data packet according to the KCP protocol, ensuring that both communicating parties can confirm the data packet's delivery through the ACK response.

[0092] Step 8: After receiving the data packet, the session management module parses the data packet content. Based on the session ID, it checks whether the session ID exists in the HashMap that stores the relationship between the session ID and the processing coroutine. If it does not exist, it is a new session request. A new coroutine is created to process the data in the data packet, and the session ID and the corresponding coroutine are recorded in the HashMap. If it exists, the data packet is marked as an existing communication session. The corresponding processing coroutine is found in the HashMap, and the data to be processed is handed over to the corresponding coroutine for processing. If the received data packet does not contain any business data, it is regarded as a client actively closing the connection request, and the corresponding ID is deleted from the HashMap.

[0093] Step 9: After receiving the corresponding data packet, the airborne HTTP protocol (upper-layer communication protocol) notifies the specific business processing logic of the data packet according to its own specifications, implements the specific business processing, and transmits the processing result back to the ground application through the above logic. The application can then complete a reliable business interaction, reuse various current upper-layer communication protocols, and simply implement specific business requirements. The cloud platform system of the ground environment and the airborne environment can also communicate accordingly, realizing the function of unified management of the ground environment and the airborne environment.

[0094] The data communication device for the unmanned aerial vehicle (UAV) system provided in the embodiments of the present invention will be described below. The data communication device for the UAV system described below can be referred to in correspondence with the data communication method for the UAV system described above.

[0095] Figure 3 This is a structural block diagram of a drone system provided in an embodiment of the present invention. The data communication device server for the drone system in this embodiment is described. The drone system includes an airborne terminal and a ground terminal that are interconnected. One of the ground terminal and the airborne terminal is the server, and the other is the client. The data communication device of the drone system may include:

[0096] The data filtering module 100 is used to receive data packets transmitted by the client via the UDP multicast protocol by listening to the UDP multicast address; wherein the data packets are data wrapped by the client using the KCP protocol.

[0097] The network communication module 200 is used to perform error checking on the data packet using the KCP protocol; if the data packet does not contain errors, it sends a response message to the client; if the data packet contains errors, it does not send a response message to the client so that the client can re-upload the data packet.

[0098] In another optional embodiment of this application, the network communication module is specifically used to: if the data packet is lost, not send a response message to the client and receive the data packet re-uploaded by the client; if the data packet is out of order, cache the data packet, reorder it, and send a response message to the client.

[0099] In another optional embodiment of this application, the server includes multiple application nodes; each application node contains a corresponding data filtering module;

[0100] Each of the data filtering modules is used to receive the data packets transmitted by the UDP multicast protocol; and to compare the application identifier of the corresponding application with the application identifier in the data packet; when the comparison results are consistent, the operation of performing error checking on the data packet using the KCP protocol is performed; wherein, the application identifier in the data packet is pre-added to the data packet by the client.

[0101] In an optional embodiment of this application, a session management module is further included, which is used to pre-create a logical communication link between a plurality of first computing processes and a plurality of second computing processes of the client before receiving the data packets transmitted by the client via the UDP multicast protocol; wherein, the second computing processes and the corresponding first computing processes that establish the logical communication links correspond to the same session ID;

[0102] The session management module is further configured to, after sending response information back to the client, send the data packet to the first processing process corresponding to the session ID for data processing based on the session ID in the data packet; wherein the session ID in the data packet is set by the client based on the second processing process that outputs the data packet.

[0103] The data communication device of the UAV system in this embodiment is used to implement the aforementioned data communication method of the UAV system. Therefore, the specific implementation of the data communication device of the UAV system can be found in the embodiment section of the data communication method of the UAV system above, and will not be repeated here.

[0104] This application also provides an embodiment of an unmanned aerial vehicle system, with reference to... Figure 4 The drone system may include:

[0105] Airborne terminal, ground terminal, airborne radio and ground radio;

[0106] The airborne terminal and the ground terminal communicate via an airborne radio and a ground radio according to the UDP multicast protocol to execute the steps of the data communication method of the UAV system described above.

[0107] Optionally, it also includes a drone node that is communicatively connected to the airborne terminal; and multiple ground service nodes that are communicatively connected to the ground terminal;

[0108] Each UAV node and its corresponding ground service node are connected via a one-to-one communication link between the ground terminal and the airborne terminal.

[0109] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that the elements inherent in a process, method, article, or apparatus that includes a list of elements are included. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element. Additionally, portions of the technical solutions provided in the embodiments of this application that are consistent with the implementation principles of corresponding technical solutions in the prior art have not been described in detail to avoid excessive elaboration.

[0110] This article uses specific examples to illustrate the principles and implementation methods of the present invention. The descriptions of the above embodiments are only for the purpose of helping to understand the method and core ideas of the present invention. It should be noted that those skilled in the art can make several improvements and modifications to the present invention without departing from the principles of the present invention, and these improvements and modifications also fall within the protection scope of the claims of the present invention.

Claims

1. A data communication method for an unmanned aerial vehicle (UAV) system, characterized in that, The system is applied to the server side; wherein the unmanned aerial vehicle (UAV) system includes an airborne terminal and a ground terminal that are interconnected, one of which is the server and the other is the client, and the communication method includes: By listening to the UDP multicast address, the system receives data packets transmitted by the client via the UDP multicast protocol; wherein, the data packets are data wrapped by the client using the KCP protocol. The KCP protocol is used to perform error checking on the data packets; If the data packet does not contain any errors, a response message is sent back to the client. If the data packet contains an error, no response information will be sent to the client so that the client can re-upload the data packet.

2. The data communication method for an unmanned aerial vehicle system as described in claim 1, characterized in that, Error checking of the data packets is performed using the KCP protocol, including: If the data packet is lost, no response information will be sent to the client, and the client will be received as a re-uploaded data packet. If the data packet is out of order, the data packet is cached, reordered, and a response is sent back to the client.

3. The data communication method for an unmanned aerial vehicle system as described in claim 1, characterized in that, The server includes multiple application nodes; Receiving data packets transmitted by the client via the UDP multicast protocol includes: The multiple application nodes respectively receive the data packets transmitted by the UDP multicast protocol; Each application node compares its corresponding application identifier with the application identifier in the data packet; wherein the application identifier in the data packet is pre-added to the data packet by the client; The application node whose corresponding application identifier matches the application identifier in the data packet performs an error check on the data packet using the KCP protocol.

4. The data communication method for an unmanned aerial vehicle system as described in claim 1, characterized in that, Before receiving the data packets transmitted by the client via the UDP multicast protocol, the method further includes: A logical communication link is pre-created that corresponds one-to-one between multiple first computing processes and multiple second computing processes of the client; wherein, the second computing process and the corresponding first computing process that establishes the logical communication link correspond to the same session ID; After sending the response information back to the client, the process also includes: Based on the session ID in the data packet, the data packet is sent to the first processing process corresponding to the session ID for data processing; wherein, the session ID in the data packet is set by the client according to the second processing process that outputs the data packet.

5. A data communication device for an unmanned aerial vehicle (UAV) system, characterized in that, Application on the server side; wherein, the unmanned aerial vehicle system includes an airborne terminal and a ground terminal that are interconnected, one of the ground terminal and the airborne terminal is the server, and the other is the client, and the data communication device includes: The data filtering module is used to receive data packets transmitted by the client via the UDP multicast protocol by listening to the UDP multicast address; wherein the data packets are data wrapped by the client using the KCP protocol. The network communication module is used to perform error checking on the data packets using the KCP protocol; if the data packets are error-free, it sends a response message to the client; if the data packets are error-free, it does not send a response message to the client so that the client can re-upload the data packets.

6. The data communication device for an unmanned aerial vehicle system as described in claim 5, characterized in that, The network communication module is specifically used to, if the data packet is lost, not to send a response message to the client and to receive the data packet re-uploaded by the client; if the data packet is out of order, to cache the data packet, reorder it, and send a response message to the client.

7. The data communication device for an unmanned aerial vehicle system as described in claim 5, characterized in that, The server includes multiple application nodes; each application node contains a corresponding data filtering module. Each of the data filtering modules is used to receive the data packets transmitted by the UDP multicast protocol; and to compare the application identifier of the corresponding application with the application identifier in the data packet. If the comparison results are consistent, the operation of performing error checking on the data packet using the KCP protocol is executed; wherein, the application identifier in the data packet is that the client has pre-added it to the data packet.

8. The data communication device for an unmanned aerial vehicle system as described in claim 5, characterized in that, It also includes a session management module, which is used to pre-create a logical communication link between a plurality of first computing processes and a plurality of second computing processes of the client before receiving data packets transmitted by the client via the UDP multicast protocol; wherein, the second computing process and the corresponding first computing process that establishes the logical communication link correspond to the same session ID; The session management module is further configured to, after sending response information back to the client, send the data packet to the first processing process corresponding to the session ID for data processing based on the session ID in the data packet; wherein the session ID in the data packet is set by the client based on the second processing process that outputs the data packet.

9. An unmanned aerial vehicle (UAV) system, characterized in that, include: Airborne terminal, ground terminal, airborne radio and ground radio; The airborne terminal and the ground terminal communicate via the airborne radio and the ground radio according to the UDP multicast protocol to execute the steps of implementing the data communication method of the UAV system as described in any one of claims 1 to 4.

10. The unmanned aerial vehicle system as described in claim 9, characterized in that, It also includes unmanned aerial vehicle (UAV) nodes that are connected to the airborne terminal; and multiple ground service nodes that are connected to the ground terminal. Each UAV node and its corresponding ground service node are connected via a one-to-one communication link between the ground terminal and the airborne terminal.