Strong jitter for home-brewed HMD tracking


This post might end up as a duplicate for a previous post of mine, that I think has been eaten up by my browser instead of being published.

Anyway, I would like to implement an alternative head tracking solution of the VIVE in the following way:

Our software is working well with Unity and pure SteamVR, but is causing really bad jitter / frame jumping in Unreal.

I have create a plugin that accesses data from our IMU and implements a method called lpGetOrientationData() to retrieve the orientation quaternion from our IMU.

I’m using our plugin to control the orientation of a pawn with connected camera in the following way:

// Called every frame
void ALpmsVrPawn::Tick(float DeltaTime)
FQuat InQ = FQuat(1, 0, 0, 0);
ULpmsVrPluginBlue::lpGetOrientationData(InQ, 0.012);

SetActorRotation(InQ.Rotator(), ETeleportType::None);



Am I doing this wrong? In principle everything works, I can see the right output on the HMD, except for the strong jitter.