C++ Architecture for Simulating UAVs

A conference paper describes the use of the CADAC++ software system for simulating operations of uninhabited aerial vehicles (UAVs) in conjunction with moving ground targets while interacting with other UAVs and with satellites that assist in targeting. CADAC++ was developed by rewriting the prior Fortran-language CADAC software to take advantage of features of C++ that enable multiple instantiation of UAVs, targets, and satellites, thereby enabling the study of such phenomena as fly-out trajectories, third-party targeting, and distributed information sharing. [CADAC (Com puter Aided Design of Aerospace Con cepts) is chiefly an engineering tool to aid in developing aerospace vehicles.] The architecture of CADAC++ is based on the hierarchical structure of inherited classes, wherein, among other things, every instantiated vehicle object is encapsulated with its methods and data. The paper discusses this architecture in more detail, outlining its class structure and a global data bus through which encapsulated vehicle-objects communicate. The paper then discusses a simulation involving a generic UAV model having five degrees of freedom in order to demonstrate the interactive features of the simulation and to support the conclusion that C++ is the programming environment of choice for networked simulations.

This work was done by Peter H. Zipfel of the Air Force Research Laboratory.AFRL-0056



This Brief includes a Technical Support Package (TSP).
Document cover
C++ Architecture for Simulating UAVs

(reference AFRL-0056) is currently available for download from the TSP library.

Don't have an account?



Magazine cover
Defense Tech Briefs Magazine

This article first appeared in the June, 2008 issue of Defense Tech Briefs Magazine (Vol. 2 No. 3).

Read more articles from the archives here.


Overview

The document titled "C++ Architecture for UAV Simulations" by Peter H. Zipfel, presented at the AIAA InfoTech @ Aerospace Conference in May 2007, discusses the development of a C++ architecture specifically designed for simulating unmanned aerial vehicles (UAVs). The paper emphasizes the importance of object-oriented programming (OOP) in creating net-centric aerospace simulations, which are essential for modern UAV operations.

The architecture described in the document is built around a hierarchical structure that utilizes abstract base classes, allowing for the modeling of various aerospace vehicles as derived classes. This design facilitates the creation of component modules that function as class methods, enabling a modular approach to simulation development. The CADAC++ framework is highlighted as a key example, featuring a five degrees of freedom (DoF) model for turbojet-driven bank-to-turn vehicles, as well as models for ground targets and satellites in orbit.

The document outlines the functionalities of the UAV simulations, including waypoint guidance and targeting capabilities. The UAV can navigate from waypoint to waypoint using onboard guidance systems and can engage targets using either its onboard seeker or satellite-derived coordinates. The autopilot system is described as comprising multiple controllers that manage various flight phases, including bank angle control, altitude control, and heading control.

Additionally, the paper addresses the importance of documentation and error checking within the simulation modules. It emphasizes the need for clear documentation of module variables, which govern input/output and data transfer between modules. The document also discusses the implementation of error-checking mechanisms to ensure compatibility and adherence to defined rules within the simulation environment.

The paper concludes by underscoring the significance of collaborative efforts in advancing UAV technology and the potential of the proposed C++ architecture to enhance the fidelity and effectiveness of UAV simulations. The open-source availability of the CADAC++ framework is also noted, promoting further development and research in the field.

Overall, the document serves as a comprehensive guide to the architecture and functionalities of UAV simulations, highlighting the role of C++ programming in creating sophisticated and reliable simulation environments for aerospace applications.