[FEATURE] Free flight simulations
Problem Statement
Currently, simulations in Ptera Software are analogous to wind tunnel tests in that the Airplane's motion relative to the freestream is not affected by the aerodynamic loads it experiences, similar to a model in a wind tunnel experiment being bolted to a force sensor. Simulations like this are useful and considered standard by aerodynamists. However, roboticists are typically more interested in the motion of a vehicle rather than just on the forces it experiences. This requires a coupling between an aerodynamics and dynamics solver.
Proposed Solution
I'm in the process of coupling Ptera Software's aerodynamics simulations to a multi-body dynamics engine. After some consideration, I decided to go with MuJoCo for the dynamics solver as it is fast and widely adopted by the robotics community.
Alternative Solutions
There were a few options for multi-body dynamics solver that we could have chosen. We could have even written our own dynamics engine, but I decided to go with MuJoCo for now. Hopefully, the coupling will be agnostic to the choice of engine, and once it is stable, we'll be able to try different options (e.g. PyBullet, Drake, Webots, etc.).
Additional Context
I've been working on this for the last few months in a separate private repository. Unfortunately, it became a bit difficult to maintain given all the recent changes in the public Ptera Software repo. Therefore, I'm going to make a new branch and start dropping in and committing the work from my private version.