What does POSITIONAL_TRACKING_STATE = 5 indicate?

In a dataset, the POSITIONAL_TRACKING_STATE is usually 1 (OK), but intermittently it is 5. As far as I can tell from the API docs, the enum should only go up to 4 – see Positional Tracking Module | API Reference | Stereolabs

Context: I’m using a ZED2i, SDK v4.0.8. I’ve logged the ros traffic to a bag file, and am reading it with rosbag in python.

Does anyone know what 5 means?
Thanks!

Hi @thandal
5 is not a valid state.
Are you getting it by using the SDK natively (C++? Python?) or the ROS wrapper?

I’m using the ros wrapper, I see this in the /zed/zed_node/pose/status and /zed/zed_node/odom/status messages. Usually the status is 1, but it intermittently spikes to 5.

image

Maybe related: when I plot geo_pose status, it goes from 0 to 1 at exactly the same time that pose/odom status go from 1 to 5!

image

I am running ROS 1 noetic and I see the same status = 5. Did you figure this out ?

I think this 5 is SL_POSITIONAL_TRACKING_STATE_UNAVAILABLE, which was officially added in 4.1

See the enum from here: Blaming zed-c-api/include/sl/c_api/types_c.h at main · stereolabs/zed-c-api · GitHub

enum SL_POSITIONAL_TRACKING_STATE {
SL_POSITIONAL_TRACKING_STATE_SEARCHING, /**< \warn DEPRECATED: This state is no longer in use.*/
SL_POSITIONAL_TRACKING_STATE_OK, /**< The positional tracking is working normally.*/
SL_POSITIONAL_TRACKING_STATE_OFF, /**< The positional tracking is not enabled.*/
SL_POSITIONAL_TRACKING_STATE_FPS_TOO_LOW, /**< The effective FPS is too low to give proper results for motion tracking.\n Consider using performance parameters (\ref SL_DEPTH_MODE_PERFORMANCE, low camera resolution (\ref SL_RESOLUTION_VGA / \ref SL_RESOLUTION_SVGA or \ref SL_RESOLUTION_HD720).*/
SL_POSITIONAL_TRACKING_STATE_SEARCHING_FLOOR_PLANE, /**< The camera is searching for the floor plane to locate itself with respect to it.\n The \ref SL_REFERENCE_FRAME_WORLD will be set afterward.*/
SL_POSITIONAL_TRACKING_STATE_UNAVAILABLE, /**< The tracking module was unable to perform tracking from the previous frame to the current frame. */
};
1 Like

Yes, it’s indeed the value that replaced the old SEARCHING status