Monado OpenXR Runtime
t_tracker_psmv.cpp File Reference

PS Move tracker code. More...

#include "xrt/xrt_tracking.h"
#include "tracking/t_tracking.h"
#include "tracking/t_calibration_opencv.hpp"
#include "tracking/t_tracker_psmv_fusion.hpp"
#include "tracking/t_helper_debug_sink.hpp"
#include "util/u_var.h"
#include "util/u_misc.h"
#include "util/u_debug.h"
#include "util/u_frame.h"
#include "util/u_format.h"
#include "util/u_trace_marker.h"
#include "math/m_api.h"
#include "os/os_threading.h"
#include <stdio.h>
#include <assert.h>
#include <pthread.h>
#include <type_traits>
Include dependency graph for t_tracker_psmv.cpp:

Data Structures

struct  xrt::auxiliary::tracking::psmv::View
 Single camera. More...
 
struct  xrt::auxiliary::tracking::psmv::TrackerPSMV
 The core object of the PS Move tracking setup. More...
 
struct  xrt::auxiliary::tracking::psmv::FindLowestScore< ValueType, FunctionType >
 Helper struct that keeps the value that produces the lowest "score" as computed by your functor. More...
 

Namespaces

namespace  xrt::auxiliary::tracking::psmv
 Namespace for PS Move tracking implementation.
 

Functions

static void xrt::auxiliary::tracking::psmv::do_view (TrackerPSMV &t, View &view, cv::Mat &grey, cv::Mat &rgb)
 Perform per-view (two in a stereo camera image) processing on an image, before tracking math is performed. More...
 
template<typename ValueType , typename FunctionType >
static FindLowestScore< ValueType, FunctionType > xrt::auxiliary::tracking::psmv::make_lowest_score_finder (FunctionType scoreFunctor)
 Factory function for FindLowestScore to deduce the functor type. More...
 
static cv::Point3f xrt::auxiliary::tracking::psmv::world_point_from_blobs (const cv::Point2f &left, const cv::Point2f &right, const cv::Matx44d &disparity_to_depth)
 Convert our 2d point + disparities into 3d points. More...
 
static void xrt::auxiliary::tracking::psmv::process (TrackerPSMV &t, struct xrt_frame *xf)
 Perform tracking computations on a frame of video data. More...
 
static void xrt::auxiliary::tracking::psmv::run (TrackerPSMV &t)
 Tracker processing thread function. More...
 
static void xrt::auxiliary::tracking::psmv::get_pose (TrackerPSMV &t, enum xrt_input_name name, timepoint_ns when_ns, struct xrt_space_relation *out_relation)
 Retrieves a pose from the filter. More...
 
static void xrt::auxiliary::tracking::psmv::imu_data (TrackerPSMV &t, timepoint_ns timestamp_ns, struct xrt_tracking_sample *sample)
 
static void xrt::auxiliary::tracking::psmv::frame (TrackerPSMV &t, struct xrt_frame *xf)
 
static void xrt::auxiliary::tracking::psmv::break_apart (TrackerPSMV &t)
 
void t_psmv_push_imu (struct xrt_tracked_psmv *xtmv, timepoint_ns timestamp_ns, struct xrt_tracking_sample *sample)
 
void t_psmv_get_tracked_pose (struct xrt_tracked_psmv *xtmv, enum xrt_input_name name, timepoint_ns when_ns, struct xrt_space_relation *out_relation)
 
void t_psmv_fake_destroy (struct xrt_tracked_psmv *xtmv)
 
void t_psmv_sink_push_frame (struct xrt_frame_sink *xsink, struct xrt_frame *xf)
 
void t_psmv_node_break_apart (struct xrt_frame_node *node)
 
void t_psmv_node_destroy (struct xrt_frame_node *node)
 
void * t_psmv_run (void *ptr)
 
int t_psmv_start (struct xrt_tracked_psmv *xtmv)
 
int t_psmv_create (struct xrt_frame_context *xfctx, struct xrt_colour_rgb_f32 *rgb, struct t_stereo_camera_calibration *data, struct xrt_tracked_psmv **out_xtmv, struct xrt_frame_sink **out_sink)
 

Detailed Description