Implement VATSIM Velocity compatible "interpolator" #241
Labels
bug
Something isn't working
enhancement
New feature or request
simplify
Reduce application complexity
velocity
Vatsim Velocity 5Hz position updates feature
Milestone
VATSIM Velocity introduced new network packets (i.a.
VisualPilotDataUpdate
andVisualPilotDataPeriodic
) that also contain the aircraft velocity in cartesian direction, as well as the pitch, roll and yaw velocities and a nose gear angle.Further, these new packets are published much more frequent (5 Hz) by aircraft in the vicinity.
Currently swift supports two interpolation modes:
Both of them are not using the new velocity information yet:
pilotclient/src/blackcore/fsd/fsdclient.cpp
Lines 1293 to 1296 in 46e6eab
But also without velocity information, there seem to be issues with the interpolators after the Velocity upgrade (aircraft warping mostly into the moving direction, especially when starting to move).
This may be caused by:
VisualPilotDataUpdate
andVisualPilotDataPeriodic
but alsoPilotDataUpdate
packets are used in the interpolator (which could somehow overlap)My proposal would be to add a new "interpolator" which uses the velocity information. This can be done by extrapolating the aircraft position and rotation, using the velocity information. The extrapolation error could be smoothly reduced with the next incoming update by adding the position/rotation error vector to the new velocities for some time.
I began implementing this some time ago (see feature/extrapolator) but encountered several difficulties and tasks that must be addressed:
CInterpolator
) is quite large and may contain some functionality that is not required for the proposed extrapolation method. Perhaps this could be simplified and cleaned up.The text was updated successfully, but these errors were encountered: