Overview

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.

Architecture

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.

GNC_architecture_R02.png

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

tools: simulator, GUI, config PiL + HiL ...

Simulator

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 any modification, simply replacing the inputs/outputs of your flight computer.

GNC_and_simulator_architecture_R01.png

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 the same computer, without any additional hardware.

Graphical interface

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 controls the start of the simulation.

GUI_simulator.png

Flight analysis

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.

User Documentation

  1. Installation

  2. Quick Guide

Tutorials

  1. Running a simulation using the command line

    Shows how to setup and run a basic simulation with only the real_time_simulator package.

  1. Connecting your GNC project to the simulator

    Shows how to connect a GNC project to the simulator using the template_gnc package.

Report a Bug

Report a bug or request a feature. [ View active tickets ]

Wiki: real_time_simulator (last edited 2022-02-06 13:19:25 by Albéric de Lajarte)