|
Enpose API — C
Enpose 6-DoF tracking API
|
Pose of one tracked marker in world coordinates. More...
#include <enpose_api.h>
Data Fields | |
| uint64_t | timestamp |
| Microseconds since the device started. | |
| uint16_t | marker_id |
| Marker identifier. | |
| double | x |
| World position in meters (first model emitter). | |
| double | y |
| double | z |
| double | rotation [9] |
| Row-major 3x3 rotation, model frame to world. | |
| double | position_rmse |
| RMS position error, in meters (units of x/y/z). | |
| double | rotation_rmse |
| RMS rotation error (radians, axis-angle magnitude). | |
| uint8_t | sensors |
| Number of sensors that contributed. | |
| uint8_t | observed_emitters |
| Number of marker emitters (LEDs) whose measurements contributed to this pose. | |
Pose of one tracked marker in world coordinates.
Mirrors the Rust MarkerPose type field-for-field (the Rust type is #[repr(C)]).
Units: x/y/z and position_rmse are in meters; rotation_rmse is in radians.
Coordinate system: the world frame is right-handed, and where its origin and axes lie is decided by the device's extrinsics calibration. By default it is the reference sensor's optical frame — origin at that sensor, +X to its right, +Y down and +Z into the scene, so a marker in front of the device has a positive z. Calibrating against a measured origin puts the frame there instead, and measuring a ground plane makes that plane z = 0 with +Z pointing up out of it. Treat the axes as a property of the calibration rather than a fixed convention: recalibrating a device can move the frame.
| uint64_t EnposeMarkerPose::timestamp |
Microseconds since the device started.
| uint16_t EnposeMarkerPose::marker_id |
Marker identifier.
| double EnposeMarkerPose::x |
World position in meters (first model emitter).
| double EnposeMarkerPose::y |
| double EnposeMarkerPose::z |
| double EnposeMarkerPose::rotation[9] |
Row-major 3x3 rotation, model frame to world.
| double EnposeMarkerPose::position_rmse |
RMS position error, in meters (units of x/y/z).
| double EnposeMarkerPose::rotation_rmse |
RMS rotation error (radians, axis-angle magnitude).
| uint8_t EnposeMarkerPose::sensors |
Number of sensors that contributed.
| uint8_t EnposeMarkerPose::observed_emitters |
Number of marker emitters (LEDs) whose measurements contributed to this pose.
The standard marker carries four; a lower count means some were occluded or could not be decoded, so the pose was fitted from a reduced set of points and might be correspondingly biased. 0 on a pose carried purely by prediction. Filter on this to reject poses from a partial view.