The Efficient Parafoil Grid generates efficient guidance strategies for parafoil systems. The project's primary focus is on guiding a parafoil system toward a circular target with fixed initial coordinates and deployment velocity while minimizing energy consumption.
The codebase consists of several key components:
attributes.cppandattributes.h: Define the attributes of the parafoil system, including dynamics and control functions.cmdlineoptions.cppandcmdlineoptions.h: Handle command-line options for the program.main.cppandmain.h: The main entry point of the program, responsible for initializing the system and starting the simulation.parameters.cppandparameters.h: Define the parameters of the parafoil system and the simulation.state.cppandstate.h: Represent the state of the parafoil system, including position, velocity, and orientation.visualizer.cppandvisualizer.h: Provide visualization tools for the simulation.
The efficientparafoilgrid executable requires the following command-line arguments:
- The first argument is an integer representing the depth of the grid.
- The second argument is a double representing the velocity
V. - The third argument is a double representing the time step
dt. - The fourth argument is a double representing the initial angle
psi_init. - All subsequent arguments are doubles representing possible control inputs
us.
Example usage:
./efficientparafoilgrid 10 5.0 0.1 0.5 1.2 1.4 1.6In this example, the depth of the grid is 10, the velocity V is 5.0, the time step dt is 0.1, the initial angle psi_init is 0.5, and the control inputs us are 1.2, 1.4, and 1.6.
- CMake (version 3.25 or higher)
- C++ compiler supporting C++23 standard
- ALGLIB library for mathematical calculations
- OpenMP for parallel programming
To build the project, navigate to the project directory and use CMake:
mkdir build && cd build
cmake ..
makeTo run the program, execute the binary from the build directory with desired options:
./efficientparafoilgrid --target 200 200 --radius 10 --velocity 2.5This project is used for the article "A Hybrid Optimal Controller for Parafoil Systems" by Rémi Pédenon-Orlanducci, Ahmad Zaydan, Sofiane Achiche, and David Saussié.