Monado OpenXR Runtime
xrt::auxiliary::tracking::psmv Namespace Reference

Namespace for PS Move tracking implementation. More...

Data Structures

struct  View
 Single camera. More...
 
struct  TrackerPSMV
 The core object of the PS Move tracking setup. More...
 
struct  FindLowestScore
 Helper struct that keeps the value that produces the lowest "score" as computed by your functor. More...
 

Functions

static void 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 > make_lowest_score_finder (FunctionType scoreFunctor)
 Factory function for FindLowestScore to deduce the functor type. More...
 
static cv::Point3f 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 process (TrackerPSMV &t, struct xrt_frame *xf)
 Perform tracking computations on a frame of video data. More...
 
static void run (TrackerPSMV &t)
 Tracker processing thread function. More...
 
static void 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 imu_data (TrackerPSMV &t, timepoint_ns timestamp_ns, struct xrt_tracking_sample *sample)
 
static void frame (TrackerPSMV &t, struct xrt_frame *xf)
 
static void break_apart (TrackerPSMV &t)
 

Detailed Description

Namespace for PS Move tracking implementation.

Function Documentation

◆ do_view()

static void xrt::auxiliary::tracking::psmv::do_view ( TrackerPSMV t,
View view,
cv::Mat &  grey,
cv::Mat &  rgb 
)
static

Perform per-view (two in a stereo camera image) processing on an image, before tracking math is performed.

Right now, this is mainly finding blobs/keypoints.

Todo:
Re-enable masks.

◆ get_pose()

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 
)
static

Retrieves a pose from the filter.

References xrt::auxiliary::tracking::psmv::TrackerPSMV::oth.

◆ make_lowest_score_finder()

template<typename ValueType , typename FunctionType >
static FindLowestScore<ValueType, FunctionType> xrt::auxiliary::tracking::psmv::make_lowest_score_finder ( FunctionType  scoreFunctor)
static

Factory function for FindLowestScore to deduce the functor type.

◆ process()

static void xrt::auxiliary::tracking::psmv::process ( TrackerPSMV t,
struct xrt_frame xf 
)
static

Perform tracking computations on a frame of video data.

Todo:
don't really need the square root to be done here.
Todo:
do we need to avoid claiming the same counterpart several times?
Todo:
tune cutoff for residual arbitrarily "too large"

◆ run()

static void xrt::auxiliary::tracking::psmv::run ( TrackerPSMV t)
static

Tracker processing thread function.

◆ world_point_from_blobs()

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 
)
static

Convert our 2d point + disparities into 3d points.