Strong jitter for home-brewed HMD tracking

Hello,

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: LPVR-VIVE Large Room Scale Tracking (IMU+Optitrack+VIVE) on Vimeo

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);

Super::Tick(DeltaTime);

}

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

Thanks,
Klaus