Unmanned aerial vehicle software upgrading system and method

Through the interaction of the OTA protocol between the publishing equipment and the drone through the drone task computing system, the automation upgrade of drone software has been realized, the problem of low efficiency of artificial update in existing technology, improved the update efficiency and reduced the efficiency Cost.

CN119376756APending Publication Date: 2025-01-28CHENGDU AIRCRAFT INDUSTRY GROUP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411314042.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-20
Publication Date
2025-01-28

AI Technical Summary

Technical Problem

The software update process of existing drone mission computing systems mainly relies on manual operations, resulting in high labor costs and low efficiency, and it is impossible to quickly respond to the intelligent needs of modern large-scale drones.

Method used

Using the OTA protocol, the publishing device interacts with the UAV through the OTA protocol. The release of the equipment configuration software upgrade data, and send an update notification message to the drone. If the drone is determined to upgrade, the TCP connection is established with the publishing device. Receive and apply software upgrade data to upgrade.

Benefits of technology

The automation upgrade of drone task computing system software has been achieved, saving labor costs, improving the efficiency of software iterative updates, and can quickly respond to the needs of modern large unmanned wisdom and intelligence.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119376756A_ABST
    Figure CN119376756A_ABST
Patent Text Reader

Abstract

The invention discloses an unmanned aerial vehicle software upgrading system and method, and relates to the technical field of unmanned aerial vehicles. The system comprises a publishing device and at least one unmanned aerial vehicle, and the publishing device and each unmanned aerial vehicle interact through an OTA protocol; the publishing equipment is configured with software upgrading data and is used for sending an updating notification message to each unmanned aerial vehicle; and the unmanned aerial vehicle is used for receiving the updating notification message, establishing TCP connection with the publishing equipment under the condition that software upgrading is determined on the basis of the updating notification message, receiving software upgrading data sent by the publishing equipment on the basis of a TCP protocol, and performing software upgrading on the basis of the software upgrading data. Therefore, the manpower cost is saved, and the software iteration updating efficiency of the unmanned aerial vehicle task calculation system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of drone technology, and in particular to a drone software upgrade system and method. Background Art

[0002] Large UAVs are generally composed of multiple subsystems, among which the mission computing system is a very important subsystem. The mission computing subsystem is used to receive the raw data generated by various payload equipment or sensors, and perform calculations and decisions based on algorithms.

[0003] Nowadays, large UAVs are gradually developing towards intelligence and wisdom. Improving the intelligence and wisdom of UAV systems mainly relies on various software modules and algorithm models deployed by the mission computing system.

[0004] The software modules and algorithm models in the UAV mission computing system will involve an iterative update process. At present, the software update process of the UAV mission computing system is mainly implemented by manual update. This method of software update and upgrade has high labor costs and low efficiency, and cannot quickly respond to the demands for the intelligence of modern large-scale UAVs. Summary of the invention

[0005] The main purpose of this application is to provide a drone software upgrade system and method to save labor costs and improve the software iteration and update efficiency of the drone mission computing system.

[0006] To achieve the above-mentioned object, the present application provides a drone software upgrade system, comprising a publishing device and at least one drone, wherein the publishing device and each drone interact through an OTA protocol;

[0007] The publishing device is configured with software upgrade data, and the publishing device is used to send an update notification message to each of the drones;

[0008] The drone is used to receive the update notification message, and when determining to perform a software upgrade based on the update notification message, establish a TCP connection with the publishing device, receive software upgrade data sent by the publishing device based on the TCP protocol, and perform a software upgrade based on the software upgrade data.

[0009] Optionally, the publishing device includes a first protocol module and a software sending module, and the drone includes a second protocol module and a software receiving module; the first protocol module interacts with the second protocol module through an OTA protocol, and the first protocol module is used to send the update notification message to each of the second protocol modules; the second protocol module is used to receive the update notification message; the software receiving module is used to establish a TCP connection with the software sending module when determining to perform a software upgrade based on the update notification message, and receive the software upgrade data sent by the software sending module based on the TCP protocol.

[0010] Optionally, the publishing device and each of the drones further include a mode setting module; the mode setting module of the publishing device is used to control the publishing device to enter publisher mode; and the mode setting module of the drone is used to control the drone to enter subscriber mode.

[0011] Optionally, the update notification message includes at least software modules and basic software parameters; the drone is specifically used to obtain locally deployed software modules and basic software parameters, and determine whether to perform a software upgrade based on the software modules and basic software parameters in the update notification message and the locally deployed software modules and basic software parameters.

[0012] Optionally, the publishing device is a drone or a ground station.

[0013] In addition, to achieve the above-mentioned purpose, the present application also provides a drone software upgrade method, which is applied to the drone software upgrade system as described above, and the method is executed by a publishing device, and the publishing device is configured with software upgrade data. The method includes: interacting with each of the drones based on the OTA protocol, and determining the target drone from all the drones; receiving port information sent by each of the target drones based on the OTA protocol; and sending the software upgrade data to each of the target drones based on the port information, and the software upgrade data is used for software upgrade of each of the target drones.

[0014] Optionally, the interacting with each of the drones based on the OTA protocol to determine the target drone from all the drones includes: sending an update notification message to each of the drones; receiving an upgrade determination result sent by each of the drones, wherein the upgrade determination result is generated by the drone based on the update notification message; and determining a drone corresponding to a software upgrade according to the upgrade determination result as the target drone.

[0015] The present application also provides another drone software upgrade method, which is applied to the drone software upgrade system as described above, and the method is executed by a drone, and the method includes: receiving an update notification message sent by a publishing device based on the OTA protocol, and determining whether to perform a software upgrade based on the update notification message; when it is determined to perform a software upgrade, establishing a TCP connection with the publishing device based on the OTA protocol; receiving software upgrade data sent by the publishing device based on the TCP protocol, and performing a software upgrade based on the software upgrade data.

[0016] Optionally, establishing a TCP connection with the publishing device based on the OTA protocol includes: creating a TCP port; and sending port information of the TCP port to the publishing device based on the OTA protocol.

[0017] Optionally, the update notification message includes at least software modules and basic software parameters; determining whether to perform software upgrade based on the update notification message includes: obtaining locally deployed software modules and basic software parameters; determining whether to perform software upgrade based on the software modules and basic software parameters in the update notification message and the locally deployed software modules and basic software parameters.

[0018] In the drone software upgrade system of the present application, a publishing device interacts with each drone through the OTA protocol, wherein the publishing device is pre-configured with software upgrade data of the software to be upgraded, and the publishing device sends an update notification message to each drone to notify each drone of the software that can be upgraded; after the drone receives the update notification message, it determines whether a software upgrade is required. If it is determined to perform a software upgrade, the drone establishes a TCP connection with the publishing device, and the publishing device sends the software upgrade data to the drone through the TCP connection. The drone then uses the software upgrade data to perform a software upgrade operation. Therefore, by adopting the OTA protocol, the publishing device can establish interaction with multiple drones at the same time, perceive each other's device information and software version information, etc., so that the publishing device can send software upgrade data to the drone that needs to perform a software upgrade, thereby realizing automatic software upgrade of the drone mission computing system, greatly saving labor costs, and effectively improving the software iteration and update efficiency of the drone mission computing system. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Figure 1 This is an example of a scenario for the drone software upgrade system provided by this application;

[0020] Figure 2 is a structural diagram of a drone software upgrade system according to an embodiment of the present application;

[0021] Figure 3 This is one of the flow charts of a method for upgrading software of a drone according to an embodiment of the present application;

[0022] Figure 4 This is the second flowchart of the method for upgrading the software of a drone according to an embodiment of the present application;

[0023] Figure 5 is a flow chart of a method for upgrading drone software according to another embodiment of the present application;

[0024] Figure 6 An example of a physical structure diagram of an electronic device is provided;

[0025] In the figure, 110, Provider drone; 120, Subscriber drone; 130, manufacturer; 200, drone software upgrade system; 210, publishing device; 220, drone; 610, processor; 620, communication interface; 630, memory; 640, communication bus.

[0026] The realization of the purpose, functional features and advantages of this application will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION

[0027] In order to make the purpose, technical solutions and advantages of this application clearer, the technical solutions in this application will be clearly and completely described below in conjunction with the drawings in this application. Obviously, the described embodiments are part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0028] Large UAVs are usually composed of multiple subsystems, each responsible for different functions. The mission computing system is one of these subsystems, which is mainly responsible for processing the calculations and logic related to the UAV's mission. Its main business, for example, is to carry out mission planning, that is, to generate flight paths and action sequences according to mission requirements; data processing, that is, to process data from sensors, such as image recognition, target detection, etc.; mission decision-making, that is, to make real-time decisions based on environmental perception results, such as obstacle avoidance, target tracking, etc.; coordinated control, that is, to coordinate the behavior and task allocation between different UAVs in multi-machine collaborative operations; software upgrade, that is, to support remote updates of UAV software to ensure the latest and security of the system.

[0029] To support the aforementioned business objectives, the mission computing system needs to deploy a variety of software modules and algorithm models. In addition, a significant trend in large-scale UAV systems is that they are becoming increasingly intelligent and smarter. Improving the intelligence and smartness of UAV systems mainly relies on the various software modules and algorithm models deployed in the mission computing system. And the UAV system can be promoted to have stronger intelligence capabilities by quickly iterating the software modules and algorithm models deployed on the mission computing system.

[0030] At present, the iterative update process of software modules and algorithm models of large-scale UAV mission computing systems is mainly as follows: offline developers burn software modules and algorithm models to CDs, and then hand the CDs to deployment personnel. Deployment personnel carry the CDs through the maintenance system of the UAV to complete the iterative update of the software modules and algorithm models of the mission computing system. In short, it is necessary to manually upload the software modules and algorithm models that need to be updated to the mission computing system of each UAV.

[0031] Using the above method to implement iterative updates of software modules and algorithm models in the mission computing system will cause waste of manpower and high labor costs; secondly, this method is inefficient and the iterative update cycle of software modules and algorithm models is long; finally, using the above method to implement iterative updates cannot quickly respond to the intelligent demands of modern large-scale unmanned aerial vehicles.

[0032] To this end, the embodiment of the present application provides a drone software upgrade system and method, which divides drones located in the same data link network into two roles, one is a Provider drone, and the other is a Subscriber drone; in the application process, it is only necessary to configure the software upgrade data of the software to be upgraded on the Provider drone, and through the OTA (Over The Air) protocol, the Provider drone and each Subscriber drone establish interaction, perceive each other's device information and negotiate software version information, and then the Provider drone publishes the software upgrade data to each Subscriber drone, so that each Subscriber drone can perform software upgrades at the same time, and it is no longer necessary to manually upgrade the software for each drone, saving labor costs and improving the software iteration update efficiency of the drone mission computing system.

[0033] For ease of understanding, this specification provides an example scenario of a drone software upgrade system. The example scenario is applied in the following example: Figure 1In the application environment shown, the application scenario includes a Provider drone 110, several Subscriber drones 120, and a manufacturer 130; when the Provider drone 110 releases software upgrade data to each Subscriber drone 120, the Provider drone 110 and each Subscriber drone 120 need to be in the same data link network.

[0034] It should be noted that the data link network is a special communication network used to transmit data in the military and aviation fields. It allows high-speed and reliable information exchange between command centers, aircraft, drones, ships, vehicles and ground stations. In addition, the drone that provides mission computing software modules and algorithm models to other drones is the Provider drone 110; the drone that receives the mission computing software modules and algorithm models is the Subscriber drone 120.

[0035] In this scenario example, any one of the drones can be selected as the Provider drone 110, and the Provider drone 110 is returned to the manufacturer 130 to complete the upgrade deployment and test verification of the software module and algorithm model. Furthermore, the Provider drone 110 returns to the base with the iteratively updated software module and algorithm model to upgrade and deploy the software module and algorithm model for the remaining Subscriber drones 120.

[0036] Specifically, after the Provider drone 110 returns to the base, it needs to be in the same data link network as the other Subscriber drones 120; the Provider drone 110 then sends an update notification message to each Subscriber drone 120 through the OTA protocol. The update notification message may include the basic parameters of the software modules and algorithm models updated by the Provider drone 110.

[0037] After receiving the update notification message sent by the Provider drone 110, the Subscriber drone 120 parses the update notification message to obtain the basic parameters of the software module and algorithm model to be upgraded; based on the basic parameters of the software module and algorithm model to be upgraded, the Subscriber drone 120 confirms whether the software module or algorithm model of this version exists in its locally deployed software. If not, the software upgrade can be performed; if the software module or algorithm model exists or is not needed, the software upgrade can be chosen not to be performed.

[0038] After confirming the result of the determination of whether to perform software upgrade, the Subscriber drone 120 will feedback the determination result to the Provider drone 110. If the Subscriber drone 120 performs software upgrade, the Subscriber drone 120 can establish a TCP port and send the port information of the TCP port to the Provider drone 110, so that the Provider drone 110 and the Subscriber drone 120 can establish a TCP connection, so that the Provider drone 110 sends the software upgrade data to the Subscriber drone 120. After receiving the software upgrade data, the Subscriber drone 120 automatically performs software upgrade.

[0039] It is worth mentioning that in this scenario example, a ground station can also be used instead of the Provider drone 110 as the publisher, that is, the software upgrade data to be upgraded is pre-configured in the ground station, and then the ground station publishes the software upgrade data to each Subscriber drone 120.

[0040] Therefore, when it is necessary to update the software for each drone, only the software module and algorithm model need to be manually updated for one of the drones, and the remaining drones can be updated online through the OTA protocol, which effectively improves the software iteration and update efficiency of the drone mission computing system and greatly saves labor costs.

[0041] With reference to the scenario example of the drone software upgrade system in the aforementioned embodiment, the drone software upgrade system in the embodiment of the present application is described in detail below.

[0042] Figure 2 Schematic diagram of the structure of the drone software upgrade system in the embodiment of the present application. Figure 2 As shown, the drone software upgrade system 200 may include a publishing device 210 and at least one drone 220, and the publishing device 210 and each drone 220 interact through an OTA protocol.

[0043] Among them, the publishing device 210 is configured with software upgrade data, and the publishing device 210 is used to send update notification messages to each drone 220; the drone 220 is used to receive the update notification message, and when it is determined to perform a software upgrade based on the update notification message, establish a TCP connection with the publishing device 210, and receive the software upgrade data sent by the publishing device 210 based on the TCP protocol, and perform software upgrade based on the software upgrade data.

[0044] It should be noted that the OTA protocol generally refers to the technology of remotely updating and upgrading the software or firmware of terminal devices (such as smartphones, tablets, and vehicle systems) through wireless communication networks, such as mobile communication networks (2G, 3G, 4G, 5G, etc.). This technology enables device manufacturers or service providers to push new software versions or security patches to users without the need for users to connect their devices to computers for manual updates.

[0045] The embodiment of the present application adopts OTA technology, and uses the publishing device 210 as the device manufacturer or service provider in the OTA protocol to push the new version of the mission computing software module and algorithm model to the drone 220, so that the drone 220 can be updated online, which simplifies the iterative update process of the software modules and algorithm models of the drone 220 mission computing system and improves the efficiency of software upgrades.

[0046] In some embodiments, the publishing device 210 is a drone 220 or a ground station. Specifically, a drone 220 can be randomly selected from all drones 220 as the publishing device 210, or a ground station can be directly used as the publishing device 210. When a drone 220 is selected as the publishing device 210, the drone 220 can be recorded as a Provider drone; when it is necessary to upgrade the software modules and algorithm models in the task computing system, the Provider drone can be returned to the production factory first, and the software modules or algorithm models can be upgraded and deployed for the Provider drone. After deployment, the Provider drone can also be used to test and verify the upgraded software, so that the Provider drone has configured software upgrade data. When a ground station is selected as the publishing device 210, the updated software modules and algorithm models can be burned onto a CD, and then the deployment personnel can carry the CD and deploy it in the task computing system of the ground station, so that the ground station has configured software upgrade data.

[0047] It should be noted here that software upgrade data may include: firmware package, installation script, digital signature, metadata, update instructions, etc. Among them, the firmware package contains the new version of the flight control firmware; the installation script can automatically back up the old firmware, install the new firmware, and perform necessary calibration; the digital signature is used to ensure that the firmware comes from a trusted source and has not been tampered with; the metadata includes the version number, build date, etc.; the update instructions are used to list the functional improvements and fixed errors of the new version.

[0048] After the publishing device 210 is configured with the software upgrade data, the publishing device 210 can deploy the software modules and algorithm models of the task computing system for the drone 220 for online upgrade. In this embodiment, the drone 220 that receives the software module and algorithm model can be recorded as a Subscriber drone. Before the publishing device 210 upgrades and deploys the software modules and algorithm models for the drone 220, it is necessary to ensure that the publishing device 210 and each drone 220 are in the same data link network. When the publishing device 210 and the drone 220 are in the same data link network, the publishing device 210 and the drone 220 can interact through the OTA protocol. In short, the publishing device 210 can only send software upgrade data to the drones 220 in the same data link network and perform software upgrades.

[0049] Furthermore, the publishing device 210 may first send an update notification message to each drone 220, and the update notification message may include basic information such as the version and name of the software module updated in this iteration, so that each drone 220 can know what the software module updated in this iteration is, thereby facilitating the drone 220 to choose whether to perform a software upgrade. It should be noted that the update notification message is an OTA message.

[0050] In this embodiment, the publishing device 210 may send an update notification message in the following manner: the publishing device 210 may use UDP (User Datagram Protocol) broadcast to initiate an update notification message to notify the Subscriber drones in the same data link network: "The publishing device 210 in the network has deployed a new task computing software module or algorithm model"; the update notification message may be recorded as an OTA_Notify message.

[0051] After the publishing device 210 broadcasts the update notification message, the drone 220 receives the update notification message through the OTA protocol and determines whether to perform the software upgrade. The drone 220 can make the determination by first determining whether the task calculation software module or algorithm model is available locally. If the task calculation software module or algorithm model is available, determining whether the current version is an updated version. If the current version is not an updated version, the software upgrade can be selected. If the task calculation software module or algorithm model is not available, determining whether the task calculation software module or algorithm model is needed. If so, the software upgrade can be selected.

[0052] When the drone 220 confirms to perform a software upgrade, the drone 220 can establish a TCP connection with the publishing device 210, and the drone 220 can securely receive the software upgrade data sent by the publishing device 210 through the TCP port; after the drone 220 obtains the software upgrade data, it can deploy the new version of the task computing software module or algorithm model to the local task computing system.

[0053] In some embodiments, the publishing device 210 and each drone 220 also include a mode setting module; the mode setting module of the publishing device 210 is used to control the publishing device 210 to enter the publisher mode; the mode setting module of the drone 220 is used to control the drone 220 to enter the subscriber mode.

[0054] Specifically, the publishing device 210 includes a mode setting module. When the publishing device 210 configures the software upgrade data and establishes interaction with each drone 220 through the OTA protocol, the mode setting module of the publishing device 210 will control the publishing device 210 to enter the Provider mode (i.e., publisher mode). When the publishing device 210 is in the Provider mode, it can provide software module upgrade services to other drones 220 as a service provider. In this embodiment, the mode setting module mainly provides a mode_flag variable to indicate which mode the publishing device 210 is in. When mode_flag=Provider, the publishing device 210 enters the Provider mode.

[0055] Similarly, the drone 220 also includes a mode setting module. When the drone 220 establishes interaction with the publishing device 210 through the OTA protocol, the mode setting module of the drone 220 will control the drone 220 to enter the Subscriber mode (i.e., subscriber mode). When the drone 220 is in the Subscriber mode, it can receive the software upgrade data sent by the publishing device 210 as a subscriber to complete the software upgrade. In this embodiment, the mode setting module of the drone 220 also provides a mode_flag variable to indicate which mode the drone 220 is in. When mode_flag=Subscriber, the drone 220 enters the Subscriber mode.

[0056] In some embodiments, the publishing device 210 includes a first protocol module and a software sending module, and the drone 220 includes a second protocol module and a software receiving module.

[0057] Among them, the first protocol module and the second protocol module interact through the OTA protocol, the first protocol module is used to send update notification messages to each second protocol module; the second protocol module is used to receive update notification messages; the software receiving module is used to establish a TCP connection with the software sending module when determining to perform a software upgrade based on the update notification message, and receive the software upgrade data sent by the software sending module based on the TCP protocol.

[0058] It should be noted that the first protocol module of the publishing device 210 and the second protocol module of the drone 220 both use the OTA protocol for data exchange.

[0059] In this embodiment, the first protocol module and the second protocol module are mainly used to complete the device information perception and negotiate the software version information between devices, and prepare for the subsequent transmission of software upgrade data. Specifically, first, the first protocol module uses UDP broadcast to initiate an update notification message (OTA_Notify message) to notify each drone 220 in the same data link network that the publishing device 210 has deployed new task computing software.

[0060] In some embodiments, the update notification message includes at least a software module and basic software information. The software module is a task computing software module, and the basic software information may include the software name, version number, software dependency, drone model, device parameters, etc. of the algorithm model. The drone 220 is specifically used to obtain the locally deployed software module and basic software information, and determine whether to perform a software upgrade based on the software module and basic software information in the update notification message and the locally deployed software module and basic software information.

[0061] The update notification message sent by the first protocol module of the publishing device 210 carries the task computing software module, the software name of the algorithm model, the version number, the software dependency, the drone model, and the device parameters. The second protocol module of the drone 220 receives the update notification message and parses out the task computing software module, the software name of the algorithm model, the version number, the software dependency, the drone model, and the device parameters carried in the update notification message.

[0062] Furthermore, the second protocol module of the drone 220 can obtain the locally deployed software module and software basic information, and the second protocol module verifies and determines whether to perform a software upgrade based on the parsed message data and the locally deployed software basic information. Specifically, the second protocol module can first determine whether the software module or algorithm model can be installed based on the drone model. If it can be installed, it can check whether a new version of the software module has been deployed locally. If a new version of the software module is not currently deployed, the software can be updated and upgraded. If a new version of the software module is currently deployed, it can be chosen not to update and upgrade the software.

[0063] The second protocol module of the drone 220 can feed back the result of the determination of whether to perform the software upgrade to the publishing device 210 via UDP unicast. Specifically, the second protocol module sends an OTA_Notify_ACK message to the publishing device 210 via UDP unicast, and the OTA_Notify_ACK message carries the result of the checksum determination.

[0064] When the drone 220 determines that the software upgrade can be performed, the software receiving module of the drone 220 can be controlled to create a TCP port. Furthermore, the second protocol module of the drone 220 can send an OTA_Start message to the publishing device 210 in a UDP unicast manner. The OTA_Start message is used to notify the publishing device 210 that the drone 220 can receive software upgrade data. At the same time, the OTA_Start message also carries the port information of the TCP port so that the publishing device 210 can send the software upgrade data to the drone 220 later.

[0065] After receiving the OTA_Start message, the first protocol module of the publishing device 210 can parse the OTA_Start message to obtain the port information of the TCP port established by the software receiving module, so that the software sending module of the publishing device 210 establishes a TCP connection with the software receiving module of the drone 220. The first protocol module of the publishing device 210 also sends an OTA_Start_ACK message to the drone 220 via UDP unicast to inform the software receiving module of the drone 220 that it can start receiving software upgrade data. At this time, the software sending module of the publishing device 210 transmits the software upgrade data to the software receiving module of the drone 220 via the TCP port.

[0066] When the publishing device 210 has finished sending the software upgrade data, the first protocol module of the publishing device 210 can send an OTA_End message to the drone 220 via UDP unicast to inform the drone 220 that the software upgrade data has been sent. The second protocol module of the drone 220 receives the OTA_End message and parses the OTA_End message to confirm whether the received software upgrade data is complete. Furthermore, the second protocol module of the drone 220 sends an OTA_End_ACK message to the publishing device 210 via UDP unicast to inform the software sending module of the publishing device 210 that the TCP connection between the software receiving module and the software sending module can be terminated.

[0067] As an example, the message description and message structure of all the above messages can refer to the message description and message structure in Table 1. Table 1 shows the message description and message structure of OTA_Notify message, OTA_Notify_ACK message, OTA_Start message, OTA_Start_ACK message, OTA_End message and OTA_End_ACK message.

[0068] Table 1 Message description and message structure table

[0069]

[0070]

[0071] To facilitate understanding, the drone software upgrade system of the embodiment of the present application is described in detail below through a specific example.

[0072] Assume that there are three drones, namely: drone A, drone B and drone C. First, the task computing system can be deployed for drone A, drone B and drone C; wherein the task computing system of drone A deploys a mode setting module, a first protocol module and a software sending module; the task computing system of drone B and drone C deploys a mode setting module, a second protocol module and a software receiving module.

[0073] Furthermore, drone A returns to the production factory, and the software module or algorithm model is upgraded and deployed for drone A. After deployment, testing and verification are performed. At this time, drone A has the configured software upgrade data. Drone A enters the Provider mode through the mode setting module, that is, drone A is a Provider drone; drone B and drone C enter the Subscriber mode through the mode setting module, that is, drone B and drone C are both Subscriber drones. Drone A starts the first protocol module in the Provider mode, and drone B and drone C start the second protocol module in the Subscriber mode. Drone A establishes interaction with drone B and drone C through the OTA protocol, and exchanges device information and protocol software version information with each other.

[0074] Specifically, the first protocol module of UAV A initiates an OTA_Notify message by means of UDP broadcast to inform UAV B and UAV C in the same data link network that UAV A has deployed new mission computing software.

[0075] The second protocol modules of UAV B and UAV C receive the OTA_Notify message and parse out the task computing software module, software name, version number, software dependency, UAV model, and device parameters of the algorithm model carried in the OTA_Notify message.

[0076] Furthermore, the second protocol modules of drone B and drone C check and determine whether to perform software upgrade based on the parsed message data and the locally deployed software basic information. The second protocol modules of drone B and drone C send an OTA_Notify_ACK message to drone A via UDP unicast, and the OTA_Notify_ACK message carries the check and determination results.

[0077] When drone B and drone C determine that software upgrade is possible, the software receiving module of drone B and drone C creates a TCP port. Furthermore, the second protocol module of drone B and drone C sends an OTA_Start message to drone A via UDP unicast to inform drone A that it can receive software upgrade data and transmit the port information of the TCP port established by drone B and drone C.

[0078] After receiving the OTA_Start message, the first protocol module of drone A parses the OTA_Start message and obtains the port information of the TCP port established by drone B and drone C. The first protocol module of drone A also sends an OTA_Start_ACK message to drone B and drone C via UDP unicast to inform the software receiving modules of drone B and drone C that they can start receiving software upgrade data. At this time, the software sending module of drone A transmits the software upgrade data to the software receiving modules of drone B and drone C via the TCP port.

[0079] When drone A has finished sending the software upgrade data, the first protocol module of drone A sends an OTA_End message to drone B and drone C via UDP unicast to inform drone B and drone C that the software upgrade data has been sent. The second protocol modules of drone B and drone C receive the OTA_End message and parse the OTA_End message to confirm whether the received software upgrade data is complete. Furthermore, the second protocol modules of drone B and drone C send an OTA_End_ACK message to drone A via UDP unicast to inform the software sending module of drone A that it can end the TCP connection with the software receiving module.

[0080] The following is a further introduction to the drone software upgrade system of the embodiment of the present application through another specific example.

[0081] Assume that there are a ground station and two drones, namely: ground station A, drone B, and drone C. First, the task computing system can be deployed for ground station A, drone B, and drone C; wherein the task computing system of ground station A deploys a mode setting module, a first protocol module, and a software sending module; the task computing system of drones B and drone C deploys a mode setting module, a second protocol module, and a software receiving module.

[0082] Furthermore, the updated software modules and algorithm models are burned onto a CD, and then the deployment personnel carry the CD and deploy it in the mission computing system of ground station A. Thus, ground station A has the configured software upgrade data. Ground station A enters the Provider mode through the mode setting module, that is, ground station A is the Provider drone; drone B and drone C enter the Subscriber mode through the mode setting module, that is, drone B and drone C are Subscriber drones. Ground station A starts the first protocol module in the Provider mode, and drone B and drone C start the second protocol module in the Subscriber mode. Ground station A establishes interaction with drone B and drone C through the OTA protocol, and exchanges device information and protocol software version information with each other.

[0083] Specifically, the first protocol module of ground station A initiates an OTA_Notify message by means of UDP broadcast to inform UAV B and UAV C in the same data link network that ground station A has deployed new mission computing software.

[0084] The second protocol modules of UAV B and UAV C receive the OTA_Notify message and parse out the task computing software module, software name, version number, software dependency, UAV model, and device parameters of the algorithm model carried in the OTA_Notify message.

[0085] Furthermore, the second protocol module of UAV B and UAV C verifies and determines whether to perform software upgrade based on the parsed message data and the basic information of the locally deployed software. The second protocol module of UAV B and UAV C sends an OTA_Notify_ACK message to ground station A via UDP unicast, and the OTA_Notify_ACK message carries the result of the verification and determination.

[0086] When drone B and drone C determine that software upgrade is possible, the software receiving module of drone B and drone C creates a TCP port. Furthermore, the second protocol module of drone B and drone C sends an OTA_Start message to ground station A via UDP unicast to inform ground station A that it can receive software upgrade data and transmit the port information of the TCP port established by drone B and drone C.

[0087] After receiving the OTA_Start message, the first protocol module of ground station A parses the OTA_Start message to obtain the port information of the TCP port established by drone B and drone C. The first protocol module of ground station A also sends an OTA_Start_ACK message to drone B and drone C via UDP unicast to inform the software receiving modules of drone B and drone C that they can start receiving software upgrade data. At this time, the software sending module of ground station A transmits the software upgrade data to the software receiving modules of drone B and drone C via the TCP port.

[0088] When ground station A has finished sending the software upgrade data, the first protocol module of ground station A sends an OTA_End message to drone B and drone C via UDP unicast to inform drone B and drone C that the software upgrade data has been sent. The second protocol module of drone B and drone C receives the OTA_End message and parses the OTA_End message to confirm whether the received software upgrade data is complete. Furthermore, the second protocol module of drone B and drone C sends an OTA_End_ACK message to ground station A via UDP unicast to inform the software sending module of ground station A that it can end the TCP connection with the software receiving module.

[0089] Therefore, by adopting the OTA protocol, the publishing device can establish interaction with multiple drones at the same time, perceive each other's device information and software version information, etc., so that the publishing device can send software upgrade data to the drones that need software upgrades, thereby realizing automatic software upgrades of the drone mission computing system, greatly saving labor costs and effectively improving the software iteration and update efficiency of the drone mission computing system.

[0090] Based on the above embodiments, the embodiments of the present application also provide a drone software upgrade method, which can be applied to the drone software upgrade system described in any of the above embodiments. The drone software upgrade method can be executed by a publishing device, and the publishing device is configured with software upgrade data.

[0091] Figure 3 This is one of the flow charts of the method for upgrading the software of a drone according to an embodiment of the present application. Figure 3 As shown, the drone software upgrade method may include the following steps:

[0092] Step 310: Interact with each drone based on the OTA protocol to determine the target drone from all drones.

[0093] Step 320: Receive the port information sent by each target drone based on the OTA protocol.

[0094] Step 330: Send software upgrade data to each target UAV based on each port information, where the software upgrade data is used for each target UAV to perform software upgrade.

[0095] It should be noted that the target drone refers to the drone that needs to perform this software upgrade. In addition, each drone interacts with the release device through the OTA protocol.

[0096] In step 310, the publishing device interacts with each drone through the OTA protocol to sense each other's device information and negotiate software version information, so that the drone can determine whether to perform the software upgrade. If the drone needs to perform a software upgrade, the drone can be used as a target drone.

[0097] Furthermore, after the target drone determines to perform this software upgrade, it will create a TCP port to receive the software upgrade data sent by the publishing device; at the same time, the target drone sends the interface information of the established TCP port to the publishing device through the OTA protocol. After the publishing device receives the port information sent by each drone, it can send the software upgrade data to the corresponding TCP port according to the port information. After the drone receives the software upgrade data, it can perform the software upgrade operation. It should be noted here that the port information can include the port number, protocol type, service name, port status, permissions and other information of the TCP port.

[0098] Figure 4 This is the second flow chart of the method for upgrading the software of a drone according to an embodiment of the present application. Figure 4 As shown, in some embodiments, step 310 interacts with each drone based on the OTA protocol to determine the target drone from all drones, which may include the following steps:

[0099] Step 410: Send an update notification message to each drone.

[0100] Step 420: receiving the upgrade determination result sent by each drone, where the upgrade determination result is generated by the drone based on the update notification message.

[0101] Step 430: The UAV corresponding to the software upgrade as the upgrade determination result is determined as the target UAV.

[0102] It should be noted that the upgrade determination result may include software upgrade and software non-upgrade.

[0103] Specifically, the publishing device can first send an update notification message to each drone. The update notification message can include basic information such as the version and name of the software module updated in this iteration, so that each drone can know what the software module updated in this iteration is, thereby facilitating the drone to choose whether to upgrade the software.

[0104] When the drone determines the upgrade result according to the update notification message, the drone sends the upgrade result to the publishing device through the OTA protocol. After the publishing device receives the upgrade result, if the upgrade result is a software upgrade, the corresponding drone can be determined as the target drone. If the upgrade result is not a software upgrade, the software upgrade data will not be sent to the drone.

[0105] It should be noted that for details not disclosed in the drone software upgrade method of this embodiment, please refer to the details disclosed in the embodiment of the drone software upgrade system in the embodiments of this specification, and no further details will be given here.

[0106] Based on the above embodiments, the embodiments of the present application also provide another drone software upgrade method, which can be applied to the drone software upgrade system described in any of the above embodiments, and the drone software upgrade method can be executed by a drone.

[0107] Figure 5 FIG. 1 is a flowchart of a method for upgrading the software of a drone according to another embodiment of the present invention. Figure 5 As shown, the drone software upgrade method may include the following steps:

[0108] Step 510: receiving an update notification message sent by a publishing device based on the OTA protocol, and determining whether to perform a software upgrade based on the update notification message.

[0109] Step 520: When it is determined to perform a software upgrade, a TCP connection is established with the publishing device based on the OTA protocol.

[0110] Step 530: Receive the software upgrade data sent by the publishing device based on the TCP protocol, and perform software upgrade based on the software upgrade data.

[0111] Specifically, the drone receives the update notification message sent by the publishing device through the OTA protocol. The drone can parse the update notification message and learn that the publishing device has deployed a new mission computing software module or algorithm model and the basic information of the new mission computing software module or algorithm model; the drone determines whether to perform this software upgrade based on the basic information of the new mission computing software module or algorithm model.

[0112] In some embodiments, the update notification message includes at least software modules and software basic information; determining whether to perform software upgrade based on the update notification message in step 510 may include: obtaining locally deployed software modules and software basic information; determining whether to perform software upgrade based on the software modules and software basic information in the update notification message and the locally deployed software modules and software basic information. It should be noted that the software basic information may include the software name, version number, software dependency, drone model, and device parameters of the algorithm model.

[0113] In this embodiment, after receiving the update notification message, the drone parses the task computing software module, the software name of the algorithm model, the version number, the software dependency, the drone model, and the device parameters carried in the update notification message. Furthermore, the drone can obtain the locally deployed software module and software basic information, and verify and determine whether to perform a software upgrade based on the above-parsed message data and the locally deployed software basic information.

[0114] Specifically, the drone can first determine whether it can install a new software module or algorithm model based on the drone model. If it can be installed, it can check whether the new version of the software module has been deployed locally. If the new version of the software module is not currently deployed, the software can be updated and upgraded. If the new version of the software module is currently deployed, you can choose not to update and upgrade the software. The drone can feedback the judgment result of whether to perform the software upgrade to the publishing device through UDP unicast.

[0115] In some implementations, step 520 establishes a TCP connection with the publishing device based on the OTA protocol, which may include: creating a TCP port; and sending port information of the TCP port to the publishing device based on the OTA protocol.

[0116] Specifically, when the drone determines to perform a software upgrade, the drone can create a TCP port and send the port information of the TCP port and information confirming that the software upgrade data can be received to the publishing device through UDP unicast, thereby establishing a TCP connection between the drone and the publishing device. Furthermore, the drone receives the software upgrade data sent by the publishing device through the TCP port and iterates and updates the software module according to the software upgrade data.

[0117] It should be noted that for details not disclosed in the drone software upgrade method of this embodiment, please refer to the details disclosed in the embodiment of the drone software upgrade system in the embodiments of this specification, and no further details will be given here.

[0118] Based on the above embodiments, Figure 6 An example of a physical structure diagram of an electronic device is shown in FIG. Figure 6As shown, the electronic device may include: a processor 610, a communication interface 620, a memory 630 and a communication bus 640, wherein the processor 610, the communication interface 620, and the memory 630 communicate with each other through the communication bus 640. The processor 610 may call the logic instructions in the memory 630 to execute the first drone software upgrade method or the second drone software upgrade method. The first drone software upgrade method includes: interacting with each drone based on the OTA protocol to determine the target drone from all drones; receiving the port information sent by each target drone based on the OTA protocol; sending software upgrade data to each target drone based on each port information, and the software upgrade data is used for each target drone to perform software upgrade. The second drone software upgrade method includes: receiving the update notification message sent by the publishing device based on the OTA protocol, and determining whether to perform software upgrade based on the update notification message; in the case of determining to perform software upgrade, establishing a TCP connection with the publishing device based on the OTA protocol; receiving the software upgrade data sent by the publishing device based on the TCP protocol, and performing software upgrade based on the software upgrade data.

[0119] In addition, the logic instructions in the above-mentioned memory 630 can be implemented in the form of a software functional unit and can be stored in a computer-readable storage medium when it is sold or used as an independent product. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program codes.

[0120] On the basis of the above embodiments, on the other hand, the present invention also provides a computer program product, the computer program product includes a computer program, the computer program can be stored on a non-transitory computer-readable storage medium, and when the computer program is executed by a processor, the computer can execute the above-mentioned first drone software upgrade method or the second drone software upgrade method. The first drone software upgrade method includes: interacting with each drone based on the OTA protocol, and determining the target drone from all drones; receiving the port information sent by each target drone based on the OTA protocol; sending software upgrade data to each target drone based on each port information, and the software upgrade data is used for each target drone to perform software upgrade. The second drone software upgrade method includes: receiving an update notification message sent by a publishing device based on the OTA protocol, and determining whether to perform software upgrade based on the update notification message; in the case of determining to perform software upgrade, establishing a TCP connection with the publishing device based on the OTA protocol; receiving the software upgrade data sent by the publishing device based on the TCP protocol, and performing software upgrade based on the software upgrade data.

[0121] On the basis of the above embodiments, on another aspect, the present invention also provides a non-transitory computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, it is implemented to execute the above-mentioned first drone software upgrade method or the second drone software upgrade method, and the first drone software upgrade method includes: interacting with each drone based on the OTA protocol, and determining the target drone from all drones; receiving the port information sent by each target drone based on the OTA protocol; sending software upgrade data to each target drone based on each port information, and the software upgrade data is used for each target drone to perform software upgrade. The second drone software upgrade method includes: receiving the update notification message sent by the publishing device based on the OTA protocol, and determining whether to perform software upgrade based on the update notification message; in the case of determining to perform software upgrade, establishing a TCP connection with the publishing device based on the OTA protocol; receiving the software upgrade data sent by the publishing device based on the TCP protocol, and performing software upgrade based on the software upgrade data.

[0122] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without paying creative labor.

[0123] Through the description of the above implementation methods, those skilled in the art can clearly understand that each implementation method can be implemented by means of software plus a necessary general hardware platform, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a software product, and the computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, a disk, an optical disk, etc., including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.

Claims

1. A drone software upgrade system, characterized in that: It includes a publishing device and at least one drone, wherein the publishing device and each drone interact via an OTA protocol; The publishing device is configured with software upgrade data, and the publishing device is used to send an update notification message to each of the drones; The drone is used to receive the update notification message, and when determining to perform a software upgrade based on the update notification message, establish a TCP connection with the publishing device, receive software upgrade data sent by the publishing device based on the TCP protocol, and perform a software upgrade based on the software upgrade data.

2. The drone software upgrade system according to claim 1, characterized in that: The publishing device includes a first protocol module and a software sending module, and the drone includes a second protocol module and a software receiving module; The first protocol module interacts with the second protocol module through the OTA protocol, and the first protocol module is used to send the update notification message to each of the second protocol modules; The second protocol module is used to receive the update notification message; The software receiving module is used to establish a TCP connection with the software sending module when determining to perform software upgrade based on the update notification message, and receive the software upgrade data sent by the software sending module based on the TCP protocol.

3. The drone software upgrade system according to claim 2, characterized in that: The publishing device and each of the drones also include a mode setting module; The mode setting module of the publishing device is used to control the publishing device to enter the publisher mode; The mode setting module of the drone is used to control the drone to enter the subscriber mode.

4. The drone software upgrade system according to claim 1, characterized in that: The update notification message includes at least a software module and basic software parameters; The drone is specifically used to obtain locally deployed software modules and basic software parameters, and determine whether to perform a software upgrade based on the software modules and basic software parameters in the update notification message and the locally deployed software modules and basic software parameters.

5. The drone software upgrade system according to any one of claims 1 to 4, characterized in that: The publishing device is a drone or a ground station.

6. A method for upgrading drone software, applied to the drone software upgrading system according to any one of claims 1 to 5, the method being executed by a publishing device, characterized in that: The publishing device is configured with software upgrade data, and the method comprises: Interacting with each of the drones based on the OTA protocol, and determining a target drone from all the drones; Receiving port information sent by each of the target drones based on the OTA protocol; The software upgrade data is sent to each of the target UAVs based on each of the port information, and the software upgrade data is used for performing software upgrade on each of the target UAVs.

7. The method for upgrading the software of a UAV according to claim 6, characterized in that: The interacting with each of the drones based on the OTA protocol to determine the target drone from all the drones includes: Sending an update notification message to each of the drones; receiving an upgrade determination result sent by each of the drones, wherein the upgrade determination result is generated by the drone based on the update notification message; The UAV corresponding to the software upgrade as determined by the upgrade result is determined as the target UAV.

8. A method for upgrading unmanned aerial vehicle software, applied to the unmanned aerial vehicle software upgrading system according to any one of claims 1 to 5, wherein the method is executed by an unmanned aerial vehicle, and is characterized in that: The method comprises: Receive an update notification message sent by a publishing device based on the OTA protocol, and determine whether to perform a software upgrade based on the update notification message; In the case of determining to perform software upgrade, establishing a TCP connection with the publishing device based on the OTA protocol; The software upgrade data sent by the publishing device is received based on the TCP protocol, and the software upgrade is performed based on the software upgrade data.

9. The method for upgrading the software of a UAV according to claim 8, characterized in that: The establishing a TCP connection with the publishing device based on the OTA protocol includes: Create a TCP port; The port information of the TCP port is sent to the publishing device based on the OTA protocol.

10. The method for upgrading the software of a UAV according to claim 8, characterized in that: The update notification message includes at least a software module and basic software parameters; The determining whether to perform software upgrade based on the update notification message includes: Obtain locally deployed software modules and basic software parameters; Determine whether to perform a software upgrade based on the software modules and basic software parameters in the update notification message and the locally deployed software modules and basic software parameters.