FlightGear Newsletter November 2015: Difference between revisions

Jump to navigation Jump to search
m
m (→‎In the hangar: http://forum.flightgear.org/viewtopic.php?f=4&t=27814)
Line 40: Line 40:


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 force and pitch, roll and/or yaw moments if selected.
=== Early HLA Experiments ===
{{DeQuote}}
{{FGCquote|1= I've started looking at the HLA integration for FG, after some very useful discussion with Mathias Froehlich. This is just a note to say what I'm looking at and how I'm thinking of developing it. Any comments/advice is welcome - this is a new area for me. 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 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 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 I expect to start looking at a very basic AI integration so other aircraft in the federation are displayed within FG. That doesn't really leverage the power of HLA, but should at least allow me 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 I think will require a lot more thought than one might naively assume. -Stuart|2= {{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  }}}}
{{FGCquote
|1= I've successfully replaced the HLA implemented in SimGear with SimKit (the name of Mathias' abstracting layer). This has allowed me to replace ~ 17000 lines of code in simgear/flightgear with 500 in flightgear alone. I'll need some help with the cmake plumbing before it can be checked in. I've 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.
|2= {{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
  }}
}}
{{FGCquote
|1= I've now got an external HLA Federate being displayed in FlightGear. The implementation right now is very basic - I have a KC-135 circling above LOWI at 10kts and 500ft AGL - but it's enough to build on. The next steps I'm planning are as follows: - Flesh out the Viewer Federate implementation, possibly to include mapping of HLA data to properties (not sure exactly how to do this yet). - 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.
|2= {{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
  }}
}}


== About dragons, pterosaurs, a BirdFDM and goats ==
== About dragons, pterosaurs, a BirdFDM and goats ==

Navigation menu