ZED SDK Asynchronous Positional Tracking

Hi StereoLabs,

I’ve been experimenting with the Positional Tracking features and have noticed that at low frame rates the Positional Tracking gets significantly worse. My software stack currently runs at 5 - 10 FPS which causes the positional tracking to jump around at times. With the GEN 3 Positional Tracking it doesn’t seem to need the depth so I’m wondering if the Positional tracking can be computed asynchronously each camera frame regardless if zed.grab() was called for that frame.

I know I could implement something similar in my project, but it would be much cleaner if the SDK could handle it automatically.

Thanks

No, you must call grab to process the positional tracking information.
In any case, depth processing is not required, so you can disable it at runtime and enable it only when you need it.

You must simply set enable_depth to false.

A simple C++ example:

[...]
sl::RuntimeParameters rt_par;
rt_par.enable_depth=false;

if(zed.grab(rt_par) <= sl::ERROR_CODE::SUCCESS) {
    sl::Pose camera_pose;
    auto pt_status = zed.getPosition	(camera_pose);
    # Do what you want with `camera_pose`
}
[...]