Monado OpenXR Runtime
Loading...
Searching...
No Matches
t_constellation_tracker.cpp File Reference

Implementation of the main logic for the constellation tracker. More...

#include "xrt/xrt_frame.h"
#include "util/u_debug.h"
#include "util/u_logging.h"
#include "util/u_var.h"
#include "util/u_threading.h"
#include "util/u_weak_ptr.hpp"
#include "tracking/t_constellation.h"
#include "math/m_api.h"
#include "correspondence_search.h"
#include "led_search_model.h"
#include "pose_optimize.h"
#include "t_constellation_tracker.h"
#include <vector>
#include <memory>
#include <mutex>
#include <shared_mutex>
#include <optional>
#include <stdexcept>
Include dependency graph for t_constellation_tracker.cpp:

Macros

#define CT_TRACE(ct, ...)   U_LOG_IFL_T(ct->log_level, __VA_ARGS__)
 
#define CT_DEBUG(ct, ...)   U_LOG_IFL_D(ct->log_level, __VA_ARGS__)
 
#define CT_INFO(ct, ...)   U_LOG_IFL_I(ct->log_level, __VA_ARGS__)
 
#define CT_WARN(ct, ...)   U_LOG_IFL_W(ct->log_level, __VA_ARGS__)
 
#define CT_ERROR(ct, ...)   U_LOG_IFL_E(ct->log_level, __VA_ARGS__)
 
#define MIN_ROT_ERROR   DEG_TO_RAD(30)
 
#define MIN_POS_ERROR   0.10
 

Functions

void constellation_tracker_camera_push_blobs (struct t_blob_sink *tbs, struct t_blob_observation *tbo)
 
void constellation_tracker_camera_destroy (struct t_blob_sink *tbs)
 
void * constellation_tracker_camera_slow_thread (void *ptr)
 
void * constellation_tracker_camera_fast_thread (void *ptr)
 
void constellation_tracker_node_break_apart (struct xrt_frame_node *node)
 
void constellation_tracker_node_destroy (struct xrt_frame_node *node)
 
static void mark_matching_blobs (ConstellationTracker *ct, struct t_blob_observation *bwobs, struct t_constellation_tracker_led_model *led_model, t_constellation_device_id_t device_id, struct pose_metrics_blob_match_info *blob_match_info)
 
static bool get_tracking_origin_pose (CameraMosaic &mosaic, timepoint_ns when_ns, struct xrt_pose &Txr_world_origin)
 
static void push_pose (Camera *camera, std::unique_ptr< Device > &device, struct xrt_pose &Tcv_cam_device, t_blob_observation &tbo)
 
static void slow_thread_process (Camera *camera, CameraSample &sample)
 
static void defer_to_slow_thread (Camera *camera, t_blob_observation &observation)
 
int t_constellation_tracker_create (struct xrt_frame_context *xfctx, struct t_constellation_tracker_params *params, struct t_constellation_tracker **out_tracker)
 
int t_constellation_tracker_add_device (struct t_constellation_tracker *raw_tracker, struct t_constellation_tracker_device_params *params, struct t_constellation_tracker_device *device, t_constellation_device_id_t *out_device_id)
 
int t_constellation_tracker_remove_device (struct t_constellation_tracker *raw_tracker, t_constellation_device_id_t device)
 

Detailed Description

Implementation of the main logic for the constellation tracker.

Author
Beyley Cardellio ep1cm.nosp@m.1n10.nosp@m.n123@.nosp@m.gmai.nosp@m.l.com