Implementing VNAV support in FlightGear: Difference between revisions

Jump to navigation Jump to search
m
m (reorder, jsbsim section has become more detailed meanwhile)
Line 171: Line 171:
== JSBSim ==
== JSBSim ==
[[JSBSim]] is an open source [[Flight Dynamics Model]] (FDM) software library that models the flight dynamics of an aerospace vehicle. The library has been incorporated into [[FlightGear]] and [http://www.openeaagles.org/ OpenEaagles]. It can also be called from a small standalone program to create a scripted batch simulation tool. JSBSim has been in development and use since 1996, and has been built on all of the most popular platforms in use today including those running Linux, Macintosh, and Microsoft Windows operating systems. JSBSim is written in C++ and uses [[File Formats#|XML]] configuration files. To date, JSBSim is the most mature FDM engine supported by FlightGear, being independently developed and maintained. JSBSim includes extensive support for systems modeling and several building blocks to simulate complex systems, including autoflight/autopilot systems.  
[[JSBSim]] is an open source [[Flight Dynamics Model]] (FDM) software library that models the flight dynamics of an aerospace vehicle. The library has been incorporated into [[FlightGear]] and [http://www.openeaagles.org/ OpenEaagles]. It can also be called from a small standalone program to create a scripted batch simulation tool. JSBSim has been in development and use since 1996, and has been built on all of the most popular platforms in use today including those running Linux, Macintosh, and Microsoft Windows operating systems. JSBSim is written in C++ and uses [[File Formats#|XML]] configuration files. To date, JSBSim is the most mature FDM engine supported by FlightGear, being independently developed and maintained. JSBSim includes extensive support for systems modeling and several building blocks to simulate complex systems, including autoflight/autopilot systems.  
In comparison with the YASim section below, the section on JSBSim has become pretty detailed already - and unlike YASim, JSBSim is pretty straightforward to extend, in fact it is designed to be easily extensible via various infrastructure hooks, despite a lack of any detailed documentation, and it's also easy to build from source, as well as being actively maintained by a sizable community of developers (vs. YASim development being de-facto stalled, and patches next to imposible to get reviewed/committed).
JSBSim also contains many useful building blocks for creating sophisticated systems simulations, which will surely come in handy.
Last but not least, JSBSim provides a capability to easily run and test things in a standalone mode, without having to build FlightGear from source, and without requiring any external dependencies, it also already contains various aircraft, engine models, tests and scripted scenarios that only take seconds to get working.
In summary, without having had any previous JSBSim/FDM coding experience, I've been able to make working modifications within just 10-15 minutes of playing with the code (including cloning and building from source), and by looking at the reference manual every now and then. This speaks for itself and for JSBSim and as a viable testbed, which can be also seen in the amount of useful information that's been gathered here meanwhile.
For these reasons, current VNAV-related experiments are being conducted with a focus on JSBSim for the time being, even though it is understood that we will eventually need to identify common building blocks in order to also support YASim at some point. But so far, my impression is that extending JSBSim with the required building blocks is pretty straightforward, so that's what I'm going to use/focus on.


=== Getting started ===
=== Getting started ===

Navigation menu