Monado OpenXR Runtime
Loading...
Searching...
No Matches
pssense_led_model.h File Reference

PlayStation Sense controller LED models. More...

Include dependency graph for pssense_led_model.h:

Go to the source code of this file.

Variables

static const float LED_RADIUS_M = 0.006f
 
static const float LED_VISIBILITY_ANGLE = DEG_TO_RAD(90)
 
static const struct t_constellation_tracker_led_model_match_parameters DEFAULT_MATCH_PARAMETERS
 
const float pssense_imu_angle = DEG_TO_RAD(-50.2703f)
 Rotation on X axis from LED -> IMU.
 
static struct xrt_vec3 T_led_imu_left
 The offset from the LED origin -> IMU origin, for the left controller.
 
static struct xrt_vec3 T_led_imu_right
 The offset from the LED origin -> IMU origin, for the right controller.
 
static const struct t_constellation_tracker_led pssense_left_leds []
 
static const struct t_constellation_tracker_led pssense_right_leds []
 
static const struct xrt_vec3 pssense_led_emission_offsets []
 Sony forgot to factor in the plastic when computing the original model, this is a fixup on top of that.
 

Detailed Description

PlayStation Sense controller LED models.

Data extracted from Sony's PC driver.

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

Variable Documentation

◆ DEFAULT_MATCH_PARAMETERS

const struct t_constellation_tracker_led_model_match_parameters DEFAULT_MATCH_PARAMETERS
static
Initial value:
= {
.min_leds_for_correspondence_search_without_prior = 7,
.min_leds_for_correspondence_search_with_prior = 5,
}

◆ pssense_imu_angle

const float pssense_imu_angle = DEG_TO_RAD(-50.2703f)

Rotation on X axis from LED -> IMU.

Referenced by pssense_create().

◆ pssense_led_emission_offsets

const struct xrt_vec3 pssense_led_emission_offsets[]
static
Initial value:
= {
{0.000262, -0.001698, 0.000803},
{0.000599, -0.001296, -0.000481},
{0.001550, -0.001087, 0.000603},
{0.001588, -0.000457, -0.000046},
{0.001498, 0.000488, -0.000025},
{0.001238, 0.000888, 0.000272},
{-0.000983, -0.000921, 0.001300},
{-0.001169, -0.000671, -0.000025},
{-0.001315, -0.000090, -0.000021},
{-0.001246, 0.000856, 0.000855},
{-0.001071, 0.000414, -0.000405},
{-0.000537, 0.001162, 0.000544},
{-0.000372, 0.000718, -0.000602},
{0.000399, 0.001257, 0.000289},
{0.000331, 0.000033, -0.001030},
{-0.000125, 0.000117, -0.001062},
{-0.000648, 0.000286, -0.000970},
}

Sony forgot to factor in the plastic when computing the original model, this is a fixup on top of that.

This applies specifically to the right controller, and has X inverted for the left controller.

Computed via a bundle adjustment of a large controller tracking dataset with CV1.

Referenced by pssense_create().

◆ T_led_imu_left

struct xrt_vec3 T_led_imu_left
static
Initial value:
= {
.x = 0.0093727f,
.y = -0.0122481f,
.z = -0.0060039f,
}

The offset from the LED origin -> IMU origin, for the left controller.

Referenced by pssense_create().

◆ T_led_imu_right

struct xrt_vec3 T_led_imu_right
static
Initial value:
= {
.x = -0.0200727f,
.y = -0.0122481f,
.z = -0.0060039f,
}

The offset from the LED origin -> IMU origin, for the right controller.

Referenced by pssense_create().