| Navigation technology is an important area of research for robots such as drones.Today,as the application scenarios for drones become increasingly complex,writing navigation systems for them is extremely challenging.Due to the significant hardware differences between different types of robots,much of the code cannot be reused.In response to these challenges,system frameworks such as Robot Operating System(ROS)have emerged.ROS allows developers to write software modules for robots using different programming languages,and connect and interact through communication protocols in ROS.Although operating system frameworks such as ROS solve the problem of software reuse to some extent,there is no reasonable programming paradigm to limit it.Most existing drone navigation systems are based on secondary development of ROS.However,due to the lack of reasonable programming paradigms,these systems are not flexible enough in terms of adding and maintaining functionality and executing programs.Therefore,a reasonable software engineering constraint is needed to address this issue.In response to the lack of reasonable software engineering constraints in current drone navigation systems,this paper proposes a behavior programming-based drone navigation system.This paper introduces the behavior programming method into drone navigation systems and designs the overall scheme of a behavior programming-based drone navigation system.Based on behavior programming theory,the navigation system is divided into navigation control behavior threads,global path planning behavior threads,and local path planning behavior threads,and a formal description of the drone navigation system is proposed.To address the feasibility verification problem of the behavior programming-based method,this paper builds a simulation experiment platform and an autonomously constructed drone platform to verify the feasibility of using behavior programming to design key functions of drone navigation systems.The contributions of this paper are mainly in the following aspects:Firstly,breaking down a complex software system into simpler and more manageable components is a common technique in software engineering.This article uses the behavior programming method to define simple protocols for waiting,blocking,and requesting events,in order to break down a complex software system into these simpler components.Secondly,this article introduces the behavior programming method into unmanned aerial vehicle(UAV)navigation systems and proposes that a UAV navigation system consists of navigation control behavior threads,global path planning behavior threads,and local path planning behavior threads.The use of behavior programming method reduces the complexity of navigation system design,making it easier to add and maintain additional functionalities in the future.Finally,this article has completed the design of a UAV navigation system based on the behavior programming method.Simulation experiments and UAV flight tests were conducted to validate the advantages of the behavior programming method.The results provide a reference for the application of behavior programming method in other intelligent systems. |