FlightGear Newsletter November 2015: Difference between revisions

Jump to navigation Jump to search
Some cleanup
(Some cleanup)
Line 25: Line 25:
== Development news ==
== Development news ==
=== AeromatiC++ 3.0 released ===
=== AeromatiC++ 3.0 released ===
Most [[JSBSim]] aircraft developers probably know about [[Aeromatic]], a web-based configuration file generator for JSBSim. In the past month, AeromatiC++ was created using the PHP code from Aeromatic2. AeromatiC++ is a flexible command line utility which, like Aeromatic2, can create JSBSim configuration files based an a minimal set of input variables. But AeromatiC++ is much more flexible by design which allows it to create appropriate subdirectories, engines and thruster files but also systems files.
Many [[JSBSim]] aircraft developers know about [[Aeromatic]], a web-based configuration file generator for JSBSim. In the past month, AeromatiC++ was created using the PHP code from Aeromatic2. AeromatiC++ is a flexible command line utility which, like Aeromatic2, can create JSBSim configuration files based on a minimal set of input variables. However, AeromatiC++ is much more flexible by design, which allows it to create appropriate subdirectories, engines and thruster files, and also systems files.


Engines now have code to reasonably guess the fuel consumption based on a minimal number of inputs. The turboprop engine is now transformed from a turbine simulated turboprop configuration to a true JSBSim turboprop engine with propeller. Support has also been added for the electric engine.
The fuel consumption of engines is now calculated to a reasonable degree of accuracy based on a minimal number of inputs. The turboprop engine is now transformed from a turbine-simulated turboprop configuration to a true JSBSim turboprop engine with propeller. Support has also been added for the electric engine.


The number of systems has been extended considerably. New systems supported include:  
The number of systems has been extended considerably. New systems supported include:  
Line 39: Line 39:
* Catapult system
* Catapult system


Every system adds its own lift, drag and/or side force and pitch, roll and/or yaw moments if selected.
Every system adds its own lift, drag and/or side forces, and pitch, roll and/or yaw moments if selected.


=== Early HLA Experiments ===
=== Early HLA Experiments ===
{{DeQuote}}
Stuart Buchanan has started looking at the [[High-Level Architecture]] (HLA) integration for FlightGear, after some very useful discussions with Mathias Froehlich. This is a summary of what he's looking at and how he's thinking of developing it. Comments and advice are welcome.


Stuart Buchanan has started looking at the [[HLA]] (High-Level Architecture) integration for FG, after some very useful discussion with Mathias Froehlich. This is just a note to say what he's looking at and how he's thinking of developing it. Any comments/advice is welcome.
Currently, there is a partial HLA implementation in [[SimGear]], which has a dependency on OpenRTI. As the name suggests, OpenRTI is an open-source {{wikipedia|Run-time infrastructure (simulation)|run-time infrastructure}} (RTI), and is in fact developed by Mathias himself.  


As background, we currently have a partial HLA implementation in SimGear which has a dependency on [[OpenRTI]]. As the name suggests, OpenRTI is an open-source RTI, which is developed by Mathias himself.  
This is all very well, but the HLA has evolved since this code was written, and the code doesn't support some of the modern technologies.  


This is all very well, but the HLA world has moved on since this code was written, and the code doesn't support some of the modern constructs.  
Mathias has been working on a toolkit that provides a lot of the "plumbing" required for a HLA client, in a much nicer package. This toolkit, called SimKit, would allow us to ditch most or all of the SimGear HLA code. Note that, like the current HLA dependency, this is completely optional and only required if one is compiling with the <code>ENABLE_RTI</code> CMake option.


Mathias has been working on a toolkit that provides a lot of the "plumbing" required for a HLA client, in a much nicer package. This toolkit doesn't yet have a name, but would allow us to ditch most/all of the SimGear HLA code. (Note that like the current HLA dependency, this is completely optional and only required if one is compiling with the ENABLE_RTI boolean cmake option.)
As a first use-case, Stuart expects to start looking at a very basic [[AI]] integration, so other aircraft in the {{wikipedia|High-level architecture#Common HLA terminology|federation|noicon=1}} are displayed within FlightGear (see also [[Decoupling the AI Traffic System]]). That doesn't really leverage the power of HLA, but should at least allow developers to get to grips with the problems and architecture before moving onto more ambitious plans, including the "Holy Grail" of separating the viewer from the [[Flight Dynamics Model]].  


As a first use-case Stuart expects to start looking at a very basic AI integration so other aircraft in the federation are displayed within FG (see [[Decoupling the AI Traffic System]]). That doesn't really leverage the power of HLA, but should at least allow us to get to grips with the problems and architecture before moving onto more ambitious plans, including the Holy Grail of separating the viewer from the FDM.  
A lot of the challenge is likely to be in designing the data to be shared across the RTI, which will require a lot more thought than one might naively assume.<ref>{{cite web
|url    = http://sourceforge.net/p/flightgear/mailman/message/34600516/
|title  = <nowiki>[Flightgear-devel] HLA developments</nowiki>
|author = <nowiki>Stuart Buchanan</nowiki>
|date  = Nov 6th, 2015
}}</ref>.


A lot of the challenge is likely to be in designing the data to be shared across the RTI, which will require a lot more thought than one might naively assume. <ref>http://sourceforge.net/p/flightgear/mailman/message/34600516/</ref>.
Stuart has successfully replaced the HLA implemented in SimGear with SimKit. This has allowed Stuart to replace about 17,000 lines of SimGear/FlightGear code with just 500 in FlightGear alone. He has also successfully joined an OpenRTI HLA federation, and received updates from an external source, which are displayed as an MP aircraft in the property tree.<ref>{{cite web
|url    = http://sourceforge.net/p/flightgear/mailman/message/34622571/
|title  = <nowiki>Re: [Flightgear-devel] HLA developments</nowiki>
|author = <nowiki>Stuart Buchanan</nowiki>
|date  = Nov 16th, 2015
}}</ref> More recently, he has got an external HLA federate to be displayed in FlightGear. The implementation right now is very basic: a [[KC-135]] circling above [[LOWI]] at 10 kt and 500 ft. But it's enough to build on.  


Stuart has now successfully replaced the HLA implemented in SimGear with SimKit (the name of Mathias' abstracting layer). This has allowed Stuart to replace ~ 17000 lines of code in simgear/flightgear with 500 in flightgear alone. Stuart also has successfully joined an OpenRTI HLA federation, and received updates from an external source, which are displayed as an MP aircraft in the property tree<ref>http://sourceforge.net/p/flightgear/mailman/message/34622571/</ref>.
The next steps Stuart is planning are as follows:
 
* Flesh out the viewer federate implementation, possibly to include mapping of HLA data to properties.
Stuart has now got an external HLA Federate being displayed in FlightGear. The implementation right now is very basic: a KC-135 circling above LOWI at 10kts and 500ft AGL - but it's enough to build on.
* Publish the FlightGear aircraft instance position to the RTI so it can be picked up by other viewers.
 
* Create a multiplayer proxy as a federate that proxies between the [[Howto:Multiplayer|MP network]] and the RTI. This will run in a separate thread or as a separate executable.
The next steps Stuart is planning are as follows: - Flesh out the Viewer Federate implementation, possibly to include mapping of HLA data to properties. - Publish the FlightGear aircraft instance position to the RTI so it can be picked up by other viewers. - Create a Multiplayer Proxy as a Federate that proxies between the MP network and the RTI. This will run in a separate thread or as a separate executable. - Split out the traffic Manager in a similar way. This is obviously focussing on the viewer aspect, and doesn't address splitting out the FDM or control elements.<ref>http://sourceforge.net/p/flightgear/mailman/message/34625641/</ref>
* Split out the [[Interactive traffic|Traffic Manager]] in a similar way. This is obviously focused on the viewer aspect, but it does not address splitting out the FDM or control elements.<ref>{{cite web
|url    = http://sourceforge.net/p/flightgear/mailman/message/34625641/
|title  = <nowiki>Re: [Flightgear-devel] HLA developments</nowiki>
|author = <nowiki>Stuart Buchanan</nowiki>
|date  = Nov 17th, 2015
}}</ref>


<references/>
<references/>

Navigation menu