Monado OpenXR Runtime
lm_defines.hpp File Reference

Defines for Levenberg-Marquardt kinematic optimizer. More...

Include dependency graph for lm_defines.hpp:

Go to the source code of this file.

Data Structures

class  xrt::tracking::hand::mercury::lm::HandStability
 
struct  xrt::tracking::hand::mercury::lm::Quat< Scalar >
 
struct  xrt::tracking::hand::mercury::lm::Vec3< Scalar >
 
struct  xrt::tracking::hand::mercury::lm::Vec2< Scalar >
 
struct  xrt::tracking::hand::mercury::lm::ResidualHelper< T >
 
struct  xrt::tracking::hand::mercury::lm::OptimizerMetacarpalBone< T >
 
struct  xrt::tracking::hand::mercury::lm::OptimizerFinger< T >
 
struct  xrt::tracking::hand::mercury::lm::OptimizerThumb< T >
 
struct  xrt::tracking::hand::mercury::lm::OptimizerHand< T >
 
struct  xrt::tracking::hand::mercury::lm::minmax
 
class  xrt::tracking::hand::mercury::lm::FingerLimit
 
class  xrt::tracking::hand::mercury::lm::HandLimit
 
struct  xrt::tracking::hand::mercury::lm::StereographicObservation< T >
 
struct  xrt::tracking::hand::mercury::lm::DepthObservation< T >
 
struct  xrt::tracking::hand::mercury::lm::ResidualTracker< T >
 
struct  xrt::tracking::hand::mercury::lm::KinematicHandLM
 
struct  xrt::tracking::hand::mercury::lm::Translations55< T >
 
struct  xrt::tracking::hand::mercury::lm::Orientations54< T >
 
struct  xrt::tracking::hand::mercury::lm::CostFunctor< optimize_hand_size >
 

Macros

#define LM_TRACE(lmh, ...)   U_LOG_IFL_T(lmh.log_level, __VA_ARGS__)
 
#define LM_DEBUG(lmh, ...)   U_LOG_IFL_D(lmh.log_level, __VA_ARGS__)
 
#define LM_INFO(lmh, ...)   U_LOG_IFL_I(lmh.log_level, __VA_ARGS__)
 
#define LM_WARN(lmh, ...)   U_LOG_IFL_W(lmh.log_level, __VA_ARGS__)
 
#define LM_ERROR(lmh, ...)   U_LOG_IFL_E(lmh.log_level, __VA_ARGS__)
 
#define USE_HAND_SIZE
 
#define USE_HAND_TRANSLATION
 
#define USE_HAND_ORIENTATION
 
#define USE_EVERYTHING_ELSE
 

Functions

template<typename T >
xrt::tracking::hand::mercury::lm::rad (T degrees)
 
constexpr size_t xrt::tracking::hand::mercury::lm::calc_input_size (bool optimize_hand_size)
 
constexpr size_t xrt::tracking::hand::mercury::lm::calc_residual_size (bool stability, bool optimize_hand_size, int num_views)
 

Variables

static constexpr size_t xrt::tracking::hand::mercury::lm::kNumNNJoints = 21
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kNumFingers = 5
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kNumJointsInFinger = 5
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kNumOrientationsInFinger = 4
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kMetacarpalBoneDim = 3
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kProximalBoneDim = 2
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kFingerDim = kProximalBoneDim + 2
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kThumbDim = kMetacarpalBoneDim + 2
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandSizeDim = 1
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandTranslationDim = 3
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandOrientationDim = 3
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_HandSize = 1
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_RootBoneTranslation = 3
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_RootBoneOrientation = 3
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_ThumbMCPSwingTwist = 3
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_ThumbCurls = 2
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_ProximalSimilarity = 2
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_FingerMCPSwingTwist = 0
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_FingerPXMSwing = 2
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_FingerCurls = 2
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHRTC_CurlSimilarity = 1
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualOneSideXY = (kNumNNJoints * 2)
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualOneSideDepth = 20
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualOneSideMatchCurls = 0
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualOneSideSize
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualTemporalConsistencyOneFingerSize
 
static constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualTemporalConsistencySize
 
static constexpr HandScalar xrt::tracking::hand::mercury::lm::kPlausibilityRoot = 1.0
 
static constexpr HandScalar xrt::tracking::hand::mercury::lm::kPlausibilityProximalSimilarity = 0.05f * kPlausibilityRoot
 
static constexpr HandScalar xrt::tracking::hand::mercury::lm::kPlausibilityCurlSimilarityHard = 0.10f * kPlausibilityRoot
 
static constexpr HandScalar xrt::tracking::hand::mercury::lm::kPlausibilityCurlSimilaritySoft = 0.05f * kPlausibilityRoot
 
static const class HandLimit xrt::tracking::hand::mercury::lm::the_limit = {}
 

Detailed Description

Defines for Levenberg-Marquardt kinematic optimizer.

Author
Moses Turner moses.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m
Charlton Rodda charl.nosp@m.ton..nosp@m.rodda.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Variable Documentation

◆ kHandResidualOneSideSize

constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualOneSideSize
staticconstexpr
Initial value:
=
kHandResidualOneSideXY + kHandResidualOneSideDepth + kHandResidualOneSideMatchCurls

◆ kHandResidualTemporalConsistencyOneFingerSize

constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualTemporalConsistencyOneFingerSize
staticconstexpr
Initial value:
=
kHRTC_FingerMCPSwingTwist +
kHRTC_FingerPXMSwing +
kHRTC_FingerCurls +
0

◆ kHandResidualTemporalConsistencySize

constexpr size_t xrt::tracking::hand::mercury::lm::kHandResidualTemporalConsistencySize
staticconstexpr
Initial value:
=
kHRTC_RootBoneTranslation +
kHRTC_RootBoneOrientation +
kHRTC_ThumbMCPSwingTwist +
kHRTC_ThumbCurls +
(kHandResidualTemporalConsistencyOneFingerSize * 4) +
0