Joints tracking problem when coming back from out of range

I am using Astra device with SDK v2.0.8 running SimpleBodyViewer.
When tracked body going out of range (about 4 meters) the skeleton stopped to be detected. The problem appears when same body coming back inside the range. The body has same Id and BodyStatus is “tracking”, but skeleton (all the joints) is empty. There is no way to get skeleton detection back, only dispose the body.
Is it bug or feature?
Any advice to solve it?

More details:
Body tracking range < 9m
Joints tracking range < 4m

What happens in 4m < range <9m???
In that range Joint.Status = NotTracked, Body.Status = Tracking

What happens than same body coming back to range <4m???
So since Joints stopped tracking they never come back, even in range less than 4m

A way to renew Joints tracking is to take Body out of range (renew body tracking).

Any explanation why Joints tracking range lower than Body range?
Any option to set body and joints tracking range to be same?

1 Like

I can also confirm this

If i walk backwards away from the camera my body/skeleton stops being tracked. If i walk back up to the camera the skeleton doesn’t appear again.

Now I’ve checked the frame data and it does not report the body as being removed, nor does it report a new body being added… (I keep a list of body id’s to check this fact). in fact the Depth & Color outline renderers etc still show my original outline without disappearing… it’s just the BodyFrame (Skeleton) tracking that does not seem to be correct and fails to update.

I actually have to step out of the camera’s view entirely (eg left or right) and step back in, in order to register a new body (which gives a fresh body/skeleton and new Color outline)

This seems like a bug in the SDK rather than a bug in the specific implementation.

(You can test the issue directly in the provided Unity TestScene file)

thanks
J

1 Like

@jmp909 Hey,

The guy from support told me it’s not seems like a bug, but they will consider to fix it in final version.

The reason of the issue is that the depth camera can detect bodies up to 9m, but for the skeleton recognition it uses only the reliable range up to 4m.

it’s definitely a bug… when you come back into range (< 4m), the joints should show again

it still has the depth and body data in the stream (and Skeleton/Body data comes from the camera DepthBuffer anyway I believe)

you can see this in the Unity TestScene … I can still see the depth camera and the cutout color body outline with the same colour (meaning it’s the same body id) and they move fine… the data is there, they just haven’t picked it up again for the joints in the SDK

it’s not a sample code issue. you are right to begin with, the joints are NotTracked and do not become Tracked again within range

(Note: I tried stopping and starting the BodyStream again. It didn’t fix it…in case you were going to try that)

I tested it and also think it is bug.
This problem is very important and fatal for people who use skeleton tracking.
Can’t solve it at unity SDK.
Who can solve it? :frowning:

@younger

The developers are aware of it now and hopefully it might get fixed in the final non-beta release

I don’t think there’s a current solution on our side if it is at SDK level.

1 Like

Hello Shmlex,
could you please tell me how you are able to put the body tracking into work?

I have compiled the example code of ‘SimpleBodyViewer’, but when I try to run I get a black screen and no console output.

Any help would be greatly appreciated.’

Thanks,
Prasanna