pathfinder-for-autonomous-navigation / psim

Six DOF flight simulator and related GNC implementations.
MIT License
4 stars 6 forks source link

Simulation, simulation runner, and the plugin system for PSim standalone #246

Closed kylekrol closed 3 years ago

kylekrol commented 3 years ago

Closes #237.

This is the last PSim infrastructure PR! (hopefully at least)

Overview

Opening this up as a draft for the time being so we can have more eyes on this before it's the architecture we go with. What I'm going for here is to develop two main entry points an end user of PSim can interact with.

The first is just the raw Simulation class. I see this as the entrypoint for PTest so PTest can "own" the sim as opposed to the other way around.

The second is the simulation runner and plugin system. In this case, the SimulationRunner class contains the "main loop" and the end user just kicks it off. We'll then write plugins to do extra interaction with the simulation such as different stopping conditions, data logging, plotting, and even plugging in control algorithms to perform some tests. Currently, there is a simple stop condition plugin that just looks at step count and a basic 2D/3D data driven plotting tool.

Both of these could be improved in the future.