FGAIS: Difference between revisions

Jump to navigation Jump to search
1,628 bytes added ,  2 November 2012
Line 38: Line 38:
=== Milestone 4: Continue using extrapolation when no new data is available {{Pending }}===
=== Milestone 4: Continue using extrapolation when no new data is available {{Pending }}===
=== Milestone: Use FGExternalMotionData properly {{Pending}} ===
=== Milestone: Use FGExternalMotionData properly {{Pending}} ===
=== FGExternalMotionData ===
* "orientation" is where the nose of the aircraft is pointing
* "linearVel" is it's velocity vector (whereto it's flying)
* "angularVel": angular velocity vector (how it is rotating)
* and then the corresponging acceleration vectors
This data is used for displaying the orientation, velocity and
accelerations of the aircrafts in the simulation at the receiver of the
datagrams. Since the position is only updated at intervals (shortly after
the reception of each datagram), the velocity value is used for displaying
it in the meantime, between updates.  If velocity was zero but position
changes, then the aircraft would jump between positions at each new
datagram.
If the heading (included in "orientation") is zero, the nose of the
aircraft will always point north (I presume), regardless of where it's
flying. And so on. Of course, that may look funny in the simulation. But
that's as good as it can be without any data about orientation, velocity
and accelerations.
You could simply set the unknown data to zeros to begin with, to comply to
the protocol. (and live with aircrafts jumping around with their noses always
pointing north and never banking in turns)
Or you could try to design an algorithm to calculate/predict/guess them.
And then you have to find a compromise between correctness and time delay,
according to the sampling theorem. And live with strange flying aircraft
each time you guess wrong, depending on how much time delay you can
accept. (Aftermath is the only truly exact science.)
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg08430.html
=== Milestone: Make more use of smart pointers {{Pending}} ===
=== Milestone: Make more use of smart pointers {{Pending}} ===
=== Milestone: Get rid of threading issues {{Pending}} ===
=== Milestone: Get rid of threading issues {{Pending}} ===

Navigation menu