Skeleton Smoothing, how to disable it

We’ve just noticed that the Astra SDK applies some sort of smoothing filtering to the skeleton points.

It’s noticeable when you overlay the skeleton over the depth frame, if you move your arms very fast, we noticed there’s a lag between the depth image and the skeleton points.

Among other things, we use skeleton tracking to measure certain features such as velocity. These kind of measurements cannot be done over a smoothed skeleton.

Is there a way to disable the smoothing?

If such an option doesn’t exist, please, include it in the next SDK.


FWIW - you really dont want to see the skeleton data without some form of smoothing - dig back to the old sdk if you can find it - its a jittery mess that is unusable for pretty much anything.

Pretty much all tracking systems use some sort of low latency smoothing - exponential or kalman are both common with some also using prediction algorithms as well - to cope with the fact that the raw depth data is very noise prone with data errors and dead spot holes that effect the accuracy of the tracking considerably.

You may want to look at Nuitrack if you want more control over the skeletal system - it has more adjustment options when it comes to the operation of the tracking system.


Our solution let us switch between NuiTrack, Orbbec and Kinect, so we’re leveraging each skeleton tracking solution against the other.

Both Kinect and NuiTrack have almost no lag between the incoming depth frame and the processed skeleton, either because the tracking is good, or because they use much better filters that cancel the lag.

But Orbbec has a quite heavy smoothing filter that makes it unusable for some of our scenarios. In particular, we perform our own specialised filtering on the analysed results.

For scientific analysis you usually need the data as raw and close to the source as possible. Having a noisy skeleton is less problematic in this particular case.