An open unmanned vehicle navigation control software architecture implementation method

By decomposing the flight control software into functional nodes and adopting a loosely coupled message and parameter management model, the problems of high hardware dependence and high development complexity of flight control software in existing unmanned systems are solved. This enables multi-person collaborative development and efficient functional expansion, improving system performance and response speed.

CN115755974BActive Publication Date: 2026-04-14THE 715TH RES INST OF CHINA SHIPBUILDING IND CORP
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
THE 715TH RES INST OF CHINA SHIPBUILDING IND CORP
Filing Date
2022-11-24
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

Existing unmanned system flight control software lacks a general software architecture, resulting in high hardware dependence, high development complexity, and difficulty in achieving collaborative development by multiple people and efficient functional expansion.

Method used

An open unmanned aerial vehicle (UAV) flight control software architecture is adopted, which decomposes the flight control software into multiple functional nodes. A node message manager, a configuration parameter server, and a functional node manager are designed. A loosely coupled message passing and parameter management mode is adopted, and general control algorithm modules are supported.

Benefits of technology

It achieves high loose coupling, supports multi-person collaborative development, reduces system overhead and improves real-time performance, thereby enhancing the development efficiency of flight control software and the system response speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115755974B_ABST
    Figure CN115755974B_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of unmanned aerial vehicle software architecture, and particularly relates to an open unmanned vehicle navigation control software architecture implementation method, which comprises a functional node group, a node manager, a message transmission manager, a parameter server and a control algorithm library. The functional node group is a cluster of several independent functional nodes, the architecture unifies the external interface function form of each node and is uniformly managed by the node manager; the message manager is a low-overhead high-real-time message transmission mode used for message interaction between nodes; the software architecture is built-in with a parameter server capable of realizing parameter registration, storage and reading functions; meanwhile, some commonly used control algorithm libraries are configured for use by each node. The unmanned vehicle navigation control software architecture has the characteristics of low hardware overhead, high real-time performance, good scalability, supports multi-person collaborative development and can effectively reduce the software development threshold and cycle.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of unmanned aerial vehicle (UAV) system architecture technology, specifically to an open unmanned aerial vehicle (UAV) flight control software architecture implementation method. Background Technology

[0002] The rapid advancement of unmanned systems technology necessitates modular, loosely coupled development frameworks that enable low-barrier development and collaborative multi-user development. For example, the existing ROS (Robot OS) framework almost monopolizes open-source unmanned platform control systems. However, the ROS framework has certain hardware requirements and is difficult to use in low-overhead embedded systems. Unmanned system chassis control, such as chassis control for vehicles, ship control for surface vessels, and vehicle control for underwater vehicles, generally utilizes low-overhead, real-time embedded systems, ensuring system miniaturization, simplicity, and high reliability. Existing flight control system software generally lacks a universal software architecture, requiring direct development based on controller hardware, necessitating a certain hardware foundation. Furthermore, development based on embedded operating systems suffers from inconvenient message interaction and significant system overhead. As functional modules continue to increase and software complexity gradually rises, improving the development efficiency of flight control software, facilitating better multi-user collaboration, and developing powerful, stable, and reliable flight control systems are current concerns in the field of unmanned control. Summary of the Invention

[0003] To address the shortcomings of existing technologies, the present invention aims to provide an open unmanned aerial vehicle (UAV) flight control software architecture implementation method.

[0004] To achieve the above objectives, the present invention provides the following technical solution: a method for implementing an open unmanned aerial vehicle (UAV) flight control software architecture, comprising the following steps:

[0005] Step 1: Decompose the flight control software into multiple functional nodes, and combine all the functional node groups to realize the flight control function requirements; to ensure that these functional node groups can work together effectively, design a functional node message manager, a configuration parameter server, and a functional node manager, and at the same time design commonly used control algorithm modules for the architecture.

[0006] Step 2: Based on Step 1, design a program module to implement the node message manager for information exchange between nodes;

[0007] Step 3: Based on Step 1, design a program module to implement the configuration parameter server for centralized management of configuration parameters;

[0008] Step 4: Based on Step 1, design a program module to implement the functional node manager, which is used for centralized management of the node's external interfaces;

[0009] Step 5: Design a general-purpose air control algorithm module based on Step 1.

[0010] Preferably, the messages in the node message manager are in a pattern that combines message pointers and message names.

[0011] Preferably, the message pointer includes the message itself and the message content; when registering a message, a value is assigned to the allocated memory space; when retrieving a message, the message sender calls the corresponding message pointer based on the name of the registered message;

[0012] Message name retrieval uses a dynamic sequence numbering mode, which remembers the sequence number of the sent message to improve retrieval efficiency when reading messages. When sending, message retrieval will traverse all registered message function blocks and send messages to all function blocks to ensure that all registered message function nodes can read the message.

[0013] Preferably, the configuration parameter server is a shared parameter server for unified parameter management; the interface functions for parameter registration, parameter setting, and parameter reading are designed and encapsulated to ensure that parameters have a unified management interface and reduce program coupling; in the implementation of parameter setting and reading functions, a dynamic sequence number mode is adopted to remember the sequence number of the parameter setting, improve the retrieval efficiency of the next parameter setting and the current parameter reading, and make it meet the requirements of low overhead.

[0014] Preferably, the node manager identifies the external interfaces of functional nodes using serial numbers. Each type of node has three unified external interfaces, which are automatically called by the node manager. The node interfaces are implemented according to user needs. The number of nodes can be expanded according to user needs, and individual functional nodes can be combined into functional node groups.

[0015] Preferably, according to step 5, the general-purpose air control algorithm module is designed to have derivation capabilities, and multiple algorithm modules can be derived according to user needs; the algorithm module is mainly aimed at general air control needs, and mainly includes a cascaded PID control algorithm module for air control, which can meet PID control for different input requirements.

[0016] Compared with existing technologies, the beneficial effects of this invention are: by designing an open unmanned aerial vehicle (UAV) flight control software architecture, the internal performance of the control system can be effectively improved.

[0017] Loose coupling: Functions are independent and can be tested and upgraded independently; supports multi-person collaborative development, effectively improving the development efficiency of unmanned aerial vehicle flight control software;

[0018] It features high real-time performance and low overhead under loose coupling.

[0019] High real-time performance: It can ensure that the response speed of the aircraft control can meet the requirements of different algorithms;

[0020] Low overhead: Low system resource utilization and fast system response. Attached Figure Description

[0021] Figure 1 This is a system block diagram of the present invention;

[0022] Figure 2 This is a flowchart of the message passing mode of the present invention;

[0023] Figure 3 This is a schematic diagram illustrating the working principle of the parameter server of the present invention;

[0024] Figure 4 This is a diagram showing the interface composition of the functional nodes of the present invention. Detailed Implementation

[0025] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only 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.

[0026] Please see Figure 1-4 This invention provides a technical solution: an implementation method for an open unmanned aerial vehicle (UAV) flight control software architecture, comprising the following steps:

[0027] Step 1: For low-overhead embedded hardware platforms, the goal is to decompose the required functionality of the project into different functional nodes. These functional nodes are decoupled using a low-overhead message passing pattern, becoming independent nodes. This involves designing a functional node message manager, a configuration parameter server, and a functional node manager, as well as designing commonly used control algorithm modules for the architecture.

[0028] Step 2: Based on Step 1, design a program module to implement the node message manager. Design the message interaction methods between functional nodes and design the message interaction interface; implement and encapsulate the program module for the message interaction function; consider message retrieval efficiency and improve message traversal efficiency in the message retrieval method; ensure that the message interaction method supports a single functional node sending the same message, and multiple functional nodes sending the same message; ensure that the message interaction method supports a single functional node receiving messages sent by other single nodes, and also supports multiple functional nodes receiving messages sent by other single nodes; and ensure the real-time requirements of message sending and receiving.

[0029] Step 3: Based on Step 1, design a program module to implement the configuration parameter server. In practical applications, a large number of configuration parameters will be used. These parameters need to be easy to use and track. Therefore, a built-in configuration parameter server is designed to store the configuration parameters, implement the registration, setting, and reading function interfaces for the configuration parameters, and encapsulate them. An optimization mechanism is adopted for parameter reading to improve traversal efficiency.

[0030] Step 4: Based on Step 1, design a program module to implement the functional node manager. The node manager reads the interfaces of the registered functional nodes and calls these interfaces; implement and encapsulate the interface reading and calling module; the functional node interfaces are divided into node initialization interface, node task execution interface, and node termination interface.

[0031] Step 5: Based on the node initialization interface 1 in Step 4, the node initialization phase needs to clarify the message content that the functional node needs to obtain, call the message acquisition interface in the message interaction interface, and implement the message acquisition interface function.

[0032] Step 6: Execute interface 2 of the node task in step 4. This interface is used to drive the execution of the node function. The interface will introduce a timer, which the user can use to set the frequency of function execution.

[0033] Step 7: Based on the termination interface 3 in Step 4, the content that needs to be executed when this interface node is closed.

[0034] Step 8: Based on Step 1, design a general-purpose air control algorithm module. Implement commonly used control algorithms, such as cascaded PID control algorithms.

[0035] Based on the above scheme and its specific embodiments

[0036] The basic solution of this invention is to modularize and componentize the algorithm of the navigation control system, adopt an open system architecture, and the architecture consists of modular functional components. The components are loosely coupled and through standardized data interfaces, the system can support plug-and-play functionality of the functional components in an open manner, thereby enabling functional expansion and system evolution.

[0037] like Figure 1 The diagram shown is a schematic of an open unmanned aerial vehicle (UAV) flight control software architecture in one embodiment of the present invention. The software architecture mainly includes a functional node group, a node manager, a message passing manager, a configuration parameter server, and a control algorithm library.

[0038] The aforementioned functional node group refers to several functionally independent nodes, each responsible for implementing a specific function. Functional nodes only constrain the interface; their functionality is to be developed by the user based on project requirements. This functional node design enables the software architecture to support collaborative development by multiple users, reducing the software development cycle.

[0039] The node manager is used to implement unified management of node interfaces.

[0040] The message passing manager described is a message passing pattern that uses function pointers and dynamic indexing technology to achieve low-overhead, high-real-time message sending, registration, and reading between nodes, while reducing coupling between nodes.

[0041] The configuration parameter server is used to store a large number of parameters in the software. Based on the uniqueness of each parameter name, the registration and storage of configuration parameters are realized through the configuration parameter setting function, and the parameters are retrieved through the read function.

[0042] The aforementioned control algorithm library contains commonly used and general-purpose algorithms, including at least a cascaded PID control algorithm module, a data conversion algorithm module, and a frequency-configurable on / off control module. The control algorithm library is available for use by various nodes to achieve closed-loop control of the unmanned aerial vehicle's trajectory, speed, and heading; to perform data decoding and encoding; and to control the unmanned aerial vehicle's signal lights and alarm buzzers.

[0043] The design of the navigation control software architecture for this unmanned aerial vehicle may include the following steps:

[0044] Step 1: Design the program modules of the message manager, such as... Figure 2 The flowchart shown is a message passing mode described in this invention. The message passing manager has built-in interface functions for message initialization, message retrieval, and message sending. When the message passing manager runs, it first initializes the message and allocates message memory space, then registers the message and callback. When a message needs to be sent, it searches for and finds the corresponding callback function and triggers the callback execution.

[0045] Specifically, the message passing manager has a built-in message structure A and a callback function structure B. Structure B contains two variables: message name and function pointer. Then, an array C[n] with structure B as its element is created. The message initialization interface function initializes the array C[n]. The message retrieval interface function has two formal parameters: function pointer and message name. When the actual parameter is passed in, it first checks whether the function pointer in array element C[0] is a null pointer. If not, it then checks C[1] until it finds that the function pointer in C[i] is a null pointer. Then, it assigns the callback function in the actual parameter to the function pointer variable in C[i] and assigns the message name in the actual parameter to the message name variable in C[i]. This completes the binding of the message name and the callback function. The message sending interface function has two formal parameters: message content and message name. When the actual parameter is passed in, it first checks whether the message name in array element C[0] matches the passed message name. If they do not match, it continues to check C[1] until it finds that the message name in C[i] matches the passed message name. Then, the message content in the actual parameter is passed to the function pointed to by the function pointer in C[i]. At this time, the callback function is immediately triggered. In this mode, the message interaction between nodes is not carried out by directly sending data. The node sending the message does not need to know which node received the message. The node can send the message periodically or when the conditions are met. At this time, all other nodes that receive the message will immediately execute their required callback functions.

[0046] Furthermore, to reduce system overhead, message name retrieval uses a dynamic indexing model, remembering the index number of the sent message to improve retrieval efficiency when reading messages.

[0047] Based on the message passing mode described in this invention, each node can be a sender, a receiver, or both. The message passing mode supports a single node publishing the same message and a single node / multiple nodes subscribing to the message; it also supports multiple nodes publishing the same message and a single node / multiple nodes subscribing to the message.

[0048] Compared to the typical loosely coupled client-server model, the message interaction model described in this invention has the following advantages:

[0049] (1) Good real-time performance;

[0050] (2) It consumes few hardware system resources;

[0051] Step 2: Design the program module for configuring the parameter server, such as... Figure 3The diagram illustrates the working principle of the parameter server described in this invention. The parameter server provides a unified parameter access service for the software architecture and mainly consists of three interface functions: initialization, parameter setting, and parameter retrieval. The parameter server defines a parameter structure D and a structure array E[n] with D as its elements. D contains at least two members: parameter name and parameter value. The parameter server initialization interface function primarily initializes the structure array E. The parameter setting interface function registers, stores, and updates parameters. When a parameter is passed to the parameter setting interface function, it searches the structure array E[n]. If the parameter name matches the passed parameter name, the parameter value is updated; otherwise, the parameter name and value are written to the smallest unregistered element in array E[n]. The parameter retrieval interface function reads parameters. When a node needs to read a parameter, it first passes the parameter name to the interface function, searches the structure array E[n] for the corresponding array element, and then reads the parameter value from that element.

[0052] Furthermore, to improve the search efficiency of the parameter server, a static variable is created to represent the array index number when the current search is completed. The parameter setting interface function and the parameter retrieval interface function are both assigned a value after execution. The next search starts from the array element with the index of this variable. The traversal is immediately terminated after the search is successful, which can significantly improve efficiency and reduce system overhead.

[0053] Step 3: Design the program module for the functional node manager and implement the program module for interface calls. The node manager needs to design a node configuration file reading function. Each node is assigned a unique and fixed serial number. The node manager calls the node registration interface based on the node serial number in the configuration file.

[0054] like Figure 4 The diagram shows the interface composition of a functional node. This invention standardizes the form of node interfaces, meaning that each node must include at least a node initialization interface, a node task execution interface, and a node termination interface.

[0055] Furthermore, the node initialization interface is called within the program architecture initialization module. This initialization interface, implemented within the functional nodes, handles the message content the functional nodes need to acquire, completes message subscription and parameter registration, and initializes other inherent parameters, such as the node running frequency setting.

[0056] Furthermore, a timer is implemented for timed interrupts within the program architecture, and the node task execution interface is called within the main loop of the architecture. The node task execution interface is the interface that keeps the node running even when it hasn't terminated. This interface uses a timer to set the required time interval to drive the node's operation. Each node contains multiple user-designed functions. Each node can set its running frequency according to its own characteristics and needs; therefore, each node operates in an asynchronous calling mode. This asynchronous calling mode reduces software coupling and system overhead.

[0057] Furthermore, implement the node termination interface in the power-down termination interface (this function can be omitted if the hardware does not support power-down detection). The node termination interface is the content that needs to be executed when the node is shut down. After the hardware system is powered off, if an instance node needs to save some parameters, the function code for saving the parameters during power-down can be implemented in this interface.

[0058] Step 4: Design the program module for the general control algorithm:

[0059] The following is an example of an algorithm module.

[0060] (1) High robust PID control algorithm module. This module integrates conventional PID control algorithm and anti-interference PID algorithm, which can be switched through the module interface settings. At the same time, this module comes with anti-integral saturation and output limiting algorithms, which are highly reliable.

[0061] (2) Data conversion algorithm module, which includes at least a 2-byte module for merging an int type, a 4-byte module for merging a float type, an 8-byte module for merging a double type, a module for decomposing an int type into 2 bytes, a module for decomposing a float type into 4 bytes, and a module for decomposing a double type into 8 bytes. Each of the above data conversion modules has big-endian storage mode conversion and little-endian storage mode conversion. In addition, there is a two's complement module and a maximum / minimum value calculation module.

[0062] (3) On / off control module. This module provides an interface for setting the on / off frequency and the total number of on / off cycles. It is particularly suitable for controlling the signal lights of unmanned aerial vehicles and the alarm buzzer of the system.

[0063] Although embodiments of the invention have been shown and described, it will be understood by those skilled in the art that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims and their equivalents.

Claims

1. A method for implementing an open-source unmanned aerial vehicle (UAV) flight control software architecture, characterized in that: The steps are as follows: Step 1: Decompose the flight control software into multiple functional nodes, and combine all the functional node groups to realize the flight control function requirements; to ensure that these functional node groups can work together effectively, design a functional node message manager, a configuration parameter server, and a functional node manager, and at the same time design commonly used control algorithm modules for the architecture. Step 2: Based on Step 1, design a program module to implement the node message manager for information exchange between nodes; Step 3: Based on Step 1, design a program module to implement the configuration parameter server for centralized management of configuration parameters; Step 4: Based on Step 1, design a program module to implement the functional node manager, which is used for centralized management of the node's external interfaces; Step 5: Design a general-purpose air control algorithm module based on Step 1; The messages in the node message manager are generated using a combination of message pointers and message names. The message pointer includes the message itself and the message content; when registering a message, a value is assigned to the allocated memory space; when retrieving a message, the message sender calls the corresponding message pointer based on the name of the registered message; The message name retrieval uses a dynamic sequence number mode to remember the sequence number of the sent message, thereby improving the retrieval efficiency when reading messages. When sending, the message retrieval will traverse all functional blocks of registered messages and send messages to all functional blocks to ensure that all functional nodes of registered messages can read the messages. The configuration parameter server is designed to build a shared parameter server for unified parameter management. Interface functions for parameter registration, setting, and reading are designed and encapsulated to ensure a unified management interface and reduce program coupling. In the implementation of parameter setting and reading functions, a dynamic sequence number mode is adopted to remember the parameter setting sequence number, improving the retrieval efficiency for subsequent parameter settings and readings, thus meeting the requirement of low overhead. The node manager identifies the external interfaces of functional nodes using serial numbers. Each type of node has three unified external interfaces, which are automatically called by the node manager. The node interfaces are implemented according to user needs. The number of nodes can be expanded according to user needs, and functional nodes can be combined into functional node groups. According to step 5, the general-purpose air control algorithm module is designed to have the ability to derive algorithms, and multiple algorithm modules can be derived according to user needs. The algorithm module is mainly designed for general air control needs and mainly includes a cascaded PID control algorithm module for air control. The algorithm module can meet the PID control requirements of different input requirements.

Citation Information

Patent Citations

  • Intelligent open type service robot operating system and method

    CN108406764A