13#define XRT_TRACKING_NAME_LEN 256
14#define XRT_TRACKING_MAX_SLAM_CAMS 5
77 char name[XRT_TRACKING_NAME_LEN];
159 } views[XRT_TRACKING_MAX_SLAM_CAMS];
325 sink->push_pose(sink, sample);
332 sink->push_hand_masks(sink, hand_masks);
349 psmv->
push_imu(psmv, timestamp_ns, sample);
378 psvr->
push_imu(psvr, timestamp_ns, sample);
int64_t timepoint_ns
Integer timestamp type.
Definition: u_time.h:77
xrt_input_name
Every internal input source known to monado with a baked in type.
Definition: xrt_defines.h:1359
xrt_tracking_type
What kind of tracking system is this.
Definition: xrt_tracking.h:46
@ XRT_TRACKING_TYPE_NONE
The device(s) are never tracked.
Definition: xrt_tracking.h:48
@ XRT_TRACKING_TYPE_MAGNETIC
The device(s) are tracked by magnetic fields, eg. Razer Hydra.
Definition: xrt_tracking.h:57
@ XRT_TRACKING_TYPE_LIGHTHOUSE
The device(s) are tracked by Ligthhouse.
Definition: xrt_tracking.h:54
@ XRT_TRACKING_TYPE_RGB
The device(s) are tracked by RGB camera(s).
Definition: xrt_tracking.h:51
@ XRT_TRACKING_TYPE_OTHER
The device(s) are tracked by other methods.
Definition: xrt_tracking.h:63
@ XRT_TRACKING_TYPE_ATTACHABLE
The device(s) are (re)attachable.
Definition: xrt_tracking.h:66
@ XRT_TRACKING_TYPE_EXTERNAL_SLAM
The device(s) are tracked by external SLAM.
Definition: xrt_tracking.h:60
Time-keeping state structure.
Definition: u_time.cpp:30
A 3 element colour with floating point channels.
Definition: xrt_defines.h:398
A single HMD or input device.
Definition: xrt_device.h:309
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:155
bool enabled
Whether a mask for this hand is being reported.
Definition: xrt_tracking.h:156
struct xrt_rect_f32 rect
The mask itself in pixel coordinates.
Definition: xrt_tracking.h:157
Definition: xrt_tracking.h:152
bool enabled
Whether any hand mask for this camera is being reported.
Definition: xrt_tracking.h:153
Masks (bounding boxes) of different hands from current views.
Definition: xrt_tracking.h:150
An object to push xrt_hand_masks_sample to.
Definition: xrt_tracking.h:196
IMU Sample.
Definition: xrt_tracking.h:131
An object to send IMU samples to.
Definition: xrt_tracking.h:173
void(* push_imu)(struct xrt_imu_sink *, struct xrt_imu_sample *sample)
Push an IMU sample into the sink.
Definition: xrt_tracking.h:177
Pose sample.
Definition: xrt_tracking.h:141
An object to send pairs of timestamps and poses to.
Definition: xrt_tracking.h:186
A pose composed of a position and orientation.
Definition: xrt_defines.h:479
Image rectangle.
Definition: xrt_defines.h:457
Container of pointers to sinks that could be used for a SLAM system.
Definition: xrt_tracking.h:206
struct xrt_pose_sink * gt
Can receive ground truth poses if available.
Definition: xrt_tracking.h:210
A relation with two spaces, includes velocity and acceleration.
Definition: xrt_defines.h:670
A single tracked PS Move controller, camera and ball are not synced.
Definition: xrt_tracking.h:222
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:235
struct xrt_device * xdev
Device owning this ball.
Definition: xrt_tracking.h:227
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:245
void(* destroy)(struct xrt_tracked_psmv *)
Destroy this tracked ball.
Definition: xrt_tracking.h:253
struct xrt_tracking_origin * origin
The tracking system origin for this ball.
Definition: xrt_tracking.h:224
struct xrt_colour_rgb_f32 colour
Colour of the ball.
Definition: xrt_tracking.h:230
A tracked PSVR headset.
Definition: xrt_tracking.h:264
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:280
struct xrt_tracking_origin * origin
The tracking system origin for this ball.
Definition: xrt_tracking.h:266
void(* destroy)(struct xrt_tracked_psvr *)
Destroy this tracked psvr.
Definition: xrt_tracking.h:287
struct xrt_device * xdev
Device owning this ball.
Definition: xrt_tracking.h:269
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:274
An adapter that wraps an external SLAM tracker to provide SLAM tracking.
Definition: xrt_tracking.h:298
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:303
Tracking factory.
Definition: xrt_tracking.h:94
int(* create_tracked_psmv)(struct xrt_tracking_factory *, struct xrt_tracked_psmv **out_psmv)
Create a tracked PSMV ball.
Definition: xrt_tracking.h:101
struct xrt_frame_context * xfctx
Internal frame context, exposed for debugging purposes.
Definition: xrt_tracking.h:96
int(* create_tracked_slam)(struct xrt_tracking_factory *, struct xrt_tracked_slam **out_slam)
Create a SLAM tracker.
Definition: xrt_tracking.h:113
int(* create_tracked_psvr)(struct xrt_tracking_factory *, struct xrt_tracked_psvr **out_psvr)
Create a tracked PSVR HMD.
Definition: xrt_tracking.h:106
A tracking system or device origin.
Definition: xrt_tracking.h:75
struct xrt_pose initial_offset
Read-only.
Definition: xrt_tracking.h:86
char name[256]
For debugging.
Definition: xrt_tracking.h:77
enum xrt_tracking_type type
What can the state tracker expect from this tracking system.
Definition: xrt_tracking.h:80
IMU Sample.
Definition: xrt_tracking.h:121
A 3 element vector with single doubles.
Definition: xrt_defines.h:301
A 3 element vector with single floats.
Definition: xrt_defines.h:289
Common defines and enums for XRT.
int64_t timepoint_ns
Definition: xrt_tracking.h:33