Real-time CARLA position consistency

CARLA version: 0.9.4
GPU: RTX 2080 Ti with server at ~40 FPS and client around ~60 FPS

We have an application that requires capturing a client’s position, speed, and heading in real time. We capture this information at 10Hz but have found the position updates seem have noticeable variation even on a perfectly straight roadway. For example, if a vehicle is traveling at 20 m/s, we’d expect the position to change (linearly) by 20 m/s * 0.1s = 2 meters. Instead, we see the average distance per sample 2 meters, but the value itself is either 3 meters or 1 meters – not 2 meters. I’ve tried to capture the behavior in the attached image. We’ve noticed that on a remote host with much less computational power the variation is even higher – likely computation and network related.

I know the GNSS sensor moved from client to server-side in 0.9.7. I tested 0.9.9 and saw similar behavior. Some initial testing with synchronous mode leads me to believe this isn’t an issue there so I believe that means the problem is the asynchronous nature of the UE and Carla client-server.

Any thoughts on how to improve this? My belief was that accurate position at a rate of 10Hz would be reasonable, but this seems to not be the case.

Thanks in advance!