General presentation, features, capabilities, target user
This package is a framework for developing and testing Guidance, Navigation, and Control (GNC) projects. It defines an architecture to connect GNC algorithms to Unmanned Aerial Vehicles (UAV), and provides a suite of tools to help develop, qualify, and deploy your algorithms.
Note: This section presents the general features of this framework. For a step-by-step explanation on how to use it, please follow the tutorials.
This architecture defines the GNC architecture used in flight, as well as external communications such as with your flight computer, a simulator or a testing facility.
Each white box is a ROS node and the arrows represent communications using custom messages. This diagram shows the flight configuration with the GNC deployed on a dedicated microprocessor (for example a Raspberry Pi) and communicating with a flight computer for low-level actuator control and sensor data. These five nodes are contained in a ROS package (see template_gnc), so that it can be connected with no modifications to a simulator or a testing facility during the first phases of development.
Note: This package only contains the definition of custom messages and services used in this architecture. To implement the rest of this architecture, please see the template package
tools: simulator, GUI, config PiL + HiL ...
The most important tool implemented in this package is the real time simulator. It includes 6 DoF rigid-body dynamics, mass variation and simulation of aerodynamics effect. It is implemented following the same architecture as the GNC package, and thus interface with it without and modification, simply replacing the inputs/outputs of your flight computer.
As shown in the image above, the simulator package and GNC package can be both integrated in a complete test facility to measure your actuation system in real time. A simplified setup can also be used to directly connect your GNC to the simulator on a computer, without any additional hardware.
A graphical interface is provided to monitor in real-time your simulation. It renders a 3D view of your flight, plots the state of your vehicle, and allow to start the simulation.
All the data generated by the simulation and the GNC are recorded using rosbag. This allows for further analysis after the simulation. Three python applications are provided:
Bokeh application: Visualize data in an interactive, web-based application using bokeh.
Matplotlib application: a simple data plotter using the classic matplotlib library.
Jupyter notebook: A more flexible solution to easily manipulate data by scripting in python using a jupyter notebook.
- Running a simulation using the command line
Shows how to setup and run a basic simulation with only the real_time_simulator package.