12#define XRT_TRACKING_NAME_LEN 256
13#define XRT_TRACKING_MAX_SLAM_CAMS 5
47 XRT_TRACKING_TYPE_NONE,
50 XRT_TRACKING_TYPE_RGB,
53 XRT_TRACKING_TYPE_LIGHTHOUSE,
56 XRT_TRACKING_TYPE_HYDRA,
59 XRT_TRACKING_TYPE_EXTERNAL_SLAM,
62 XRT_TRACKING_TYPE_OTHER,
73 char name[XRT_TRACKING_NAME_LEN];
155 } views[XRT_TRACKING_MAX_SLAM_CAMS];
321 sink->push_pose(sink, sample);
328 sink->push_hand_masks(sink, hand_masks);
345 psmv->
push_imu(psmv, timestamp_ns, sample);
374 psvr->
push_imu(psvr, timestamp_ns, sample);
int64_t timepoint_ns
Integer timestamp type.
Definition: u_time.h:70
xrt_input_name
Every internal input source known to monado with a baked in type.
Definition: xrt_defines.h:1298
xrt_tracking_type
What kind of tracking system is this.
Definition: xrt_tracking.h:45
Time-keeping state structure.
Definition: u_time.cpp:30
A 3 element colour with floating point channels.
Definition: xrt_defines.h:384
A single HMD or input device.
Definition: xrt_device.h:241
Object used to track all sinks and frame producers in a graph.
Definition: xrt_frame.h:108
A object that is sent frames.
Definition: xrt_frame.h:58
Definition: xrt_tracking.h:151
bool enabled
Whether a mask for this hand is being reported.
Definition: xrt_tracking.h:152
struct xrt_rect_f32 rect
The mask itself in pixel coordinates.
Definition: xrt_tracking.h:153
Definition: xrt_tracking.h:148
bool enabled
Whether any hand mask for this camera is being reported.
Definition: xrt_tracking.h:149
Masks (bounding boxes) of different hands from current views.
Definition: xrt_tracking.h:146
An object to push xrt_hand_masks_sample to.
Definition: xrt_tracking.h:192
IMU Sample.
Definition: xrt_tracking.h:127
An object to send IMU samples to.
Definition: xrt_tracking.h:169
void(* push_imu)(struct xrt_imu_sink *, struct xrt_imu_sample *sample)
Push an IMU sample into the sink.
Definition: xrt_tracking.h:173
Pose sample.
Definition: xrt_tracking.h:137
An object to send pairs of timestamps and poses to.
Definition: xrt_tracking.h:182
A pose composed of a position and orientation.
Definition: xrt_defines.h:465
Image rectangle.
Definition: xrt_defines.h:443
Container of pointers to sinks that could be used for a SLAM system.
Definition: xrt_tracking.h:202
struct xrt_pose_sink * gt
Can receive ground truth poses if available.
Definition: xrt_tracking.h:206
A relation with two spaces, includes velocity and acceleration.
Definition: xrt_defines.h:657
A single tracked PS Move controller, camera and ball are not synced.
Definition: xrt_tracking.h:218
void(* push_imu)(struct xrt_tracked_psmv *, timepoint_ns timestamp_ns, struct xrt_tracking_sample *sample)
Push a IMU sample into the tracking system.
Definition: xrt_tracking.h:231
struct xrt_device * xdev
Device owning this ball.
Definition: xrt_tracking.h:223
void(* get_tracked_pose)(struct xrt_tracked_psmv *, enum xrt_input_name name, timepoint_ns when_ns, struct xrt_space_relation *out_relation)
Called by the owning xrt_device xdev to get the pose of the ball in the tracking space at the given t...
Definition: xrt_tracking.h:241
void(* destroy)(struct xrt_tracked_psmv *)
Destroy this tracked ball.
Definition: xrt_tracking.h:249
struct xrt_tracking_origin * origin
The tracking system origin for this ball.
Definition: xrt_tracking.h:220
struct xrt_colour_rgb_f32 colour
Colour of the ball.
Definition: xrt_tracking.h:226
A tracked PSVR headset.
Definition: xrt_tracking.h:260
void(* get_tracked_pose)(struct xrt_tracked_psvr *, timepoint_ns when_ns, struct xrt_space_relation *out_relation)
Called by the owning xrt_device xdev to get the pose of the psvr in the tracking space at the given t...
Definition: xrt_tracking.h:276
struct xrt_tracking_origin * origin
The tracking system origin for this ball.
Definition: xrt_tracking.h:262
void(* destroy)(struct xrt_tracked_psvr *)
Destroy this tracked psvr.
Definition: xrt_tracking.h:283
struct xrt_device * xdev
Device owning this ball.
Definition: xrt_tracking.h:265
void(* push_imu)(struct xrt_tracked_psvr *, timepoint_ns timestamp_ns, struct xrt_tracking_sample *sample)
Push a IMU sample into the tracking system.
Definition: xrt_tracking.h:270
An adapter that wraps an external SLAM tracker to provide SLAM tracking.
Definition: xrt_tracking.h:294
void(* get_tracked_pose)(struct xrt_tracked_slam *, timepoint_ns when_ns, struct xrt_space_relation *out_relation)
Called by the owning xrt_device to get the last estimated pose of the SLAM tracker.
Definition: xrt_tracking.h:299
Tracking factory.
Definition: xrt_tracking.h:90
int(* create_tracked_psmv)(struct xrt_tracking_factory *, struct xrt_tracked_psmv **out_psmv)
Create a tracked PSMV ball.
Definition: xrt_tracking.h:97
struct xrt_frame_context * xfctx
Internal frame context, exposed for debugging purposes.
Definition: xrt_tracking.h:92
int(* create_tracked_slam)(struct xrt_tracking_factory *, struct xrt_tracked_slam **out_slam)
Create a SLAM tracker.
Definition: xrt_tracking.h:109
int(* create_tracked_psvr)(struct xrt_tracking_factory *, struct xrt_tracked_psvr **out_psvr)
Create a tracked PSVR HMD.
Definition: xrt_tracking.h:102
A tracking system or device origin.
Definition: xrt_tracking.h:71
struct xrt_pose initial_offset
Read-only.
Definition: xrt_tracking.h:82
char name[256]
For debugging.
Definition: xrt_tracking.h:73
enum xrt_tracking_type type
What can the state tracker expect from this tracking system.
Definition: xrt_tracking.h:76
IMU Sample.
Definition: xrt_tracking.h:117
A 3 element vector with single doubles.
Definition: xrt_defines.h:283
A 3 element vector with single floats.
Definition: xrt_defines.h:271
Common defines and enums for XRT.
int64_t timepoint_ns
Definition: xrt_tracking.h:32