General configuration parameters. More...
#include </home/jenkins/root/workspace/OSVR-Core-Docs/plugins/unifiedvideoinertialtracker/ConfigParams.h>
Public Member Functions | |
ConfigParams () | |
ConfigParams () | |
Public Attributes | |
bool | performingOptimization = false |
bool | silent = false |
For optimization usage. | |
bool | logRawBlobs = false |
bool | logUsableLeds = false |
TuningParams | tuning |
BlobParams | blobParams |
Parameters specific to the blob-detection step of the algorithm. | |
EdgeHoleParams | extractParams |
Parameters specific to the edge hole based LED extraction algorithm. | |
BuiltInTargetSets | targetSet = BuiltInTargetSets::HDK1xChassis |
When using hard-coded target sets, which one to use. | |
bool | continuousReporting = true |
bool | highGain = true |
Should we open the camera in high-gain mode? | |
double | additionalPrediction = 0. |
Seconds beyond the current time to predict, using the Kalman state. | |
double | maxResidual = 0.03631354168383816 |
double | initialBeaconError = 1e-7 |
double | blobMoveThreshold = 3.5 |
bool | debug = false |
Whether to show the debug windows and debug messages. | |
int | numThreads = 1 |
double | processNoiseAutocorrelation [6] |
double | linearVelocityDecayCoefficient = 0.9040551503451977 |
double | angularVelocityDecayCoefficient = 0.8945437897688864 |
double | noBeaconLinearVelocityDecayCoefficient = 0.005878868009089861 |
double | measurementVarianceScaleFactor = 1.5 |
bool | offsetToCentroid = false |
double | manualBeaconOffset [3] |
bool | includeRearPanel = true |
double | headCircumference = 55.75 |
double | headToFrontBeaconOriginDistance = 0 |
double | backPanelMeasurementError = BaseMeasurementVariance |
double | beaconProcessNoise = 1.e-19 |
double | highResidualVariancePenalty = 7.513691210865344 |
bool | streamBeaconDebugInfo = false |
float | boundingBoxFilterRatio = 5.f / 4.f |
double | maxZComponent = -0.3 |
bool | shouldSkipBrightLeds = false |
double | brightLedVariancePenalty = 28.32749811268542 |
bool | blobsKeepIdentity = false |
bool | extraVerbose = false |
Extra verbose developer debugging messages. More... | |
std::string | calibrationFile = "" |
IMUInputParams | imu |
IMU input-related parameters. | |
double | cameraPosition [3] |
x, y, z, with y up, all in meters. | |
bool | cameraIsForward = true |
bool | permitKalman = true |
std::int32_t | cameraMicrosecondsOffset = -27000 |
bool | softResets = false |
double | softResetPositionVarianceScale = 1.e-1 |
double | softResetOrientationVariance = 1.e0 |
Soft reset data incorporation parameter: Orientation variance. | |
General configuration parameters.
Definition at line 82 of file ConfigParams.h.
osvr::vbtracker::ConfigParams::ConfigParams | ( | ) |
If you use manual beacon offset (aka turn off offsetToCentroid), this is a good default since it's the best beacon offset for the HDK we've found so far.
Definition at line 36 of file ConfigParams.cpp.
|
inline |
bool osvr::vbtracker::ConfigParams::performingOptimization = false |
Not intended to be manually configurable - enabled when doing things like running an optimization algorithm so some things like a debug view might need to change.
Definition at line 86 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::logRawBlobs = false |
For recording tuning data - whether we should record the raw blob data.
Definition at line 93 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::logUsableLeds = false |
For recording tuning data - whether we should record the data from just the usable LEDs each frame after they're associated.
Definition at line 97 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::continuousReporting = true |
Should we have the tracking thread update the reporting vector for every (IMU) message, instead of waiting/buffering for a few milliseconds between updates?
Definition at line 113 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::maxResidual = 0.03631354168383816 |
Max residual, in meters at the expected XY plane of the beacon in space, for a beacon before applying a variance penalty.
Max residual (pixel units) for a beacon before applying a variance penalty.
Definition at line 123 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::initialBeaconError = 1e-7 |
Initial beacon error for autocalibration (units: m^2). 0 effectively turns off beacon auto-calib. This is a variance number, so std deviation squared, but it's pretty likely to be between 0 and 1, so the variance will be smaller than the standard deviation.
Initial beacon error for autocalibration (units: mm^2). 0 effectively turns off beacon auto-calib. This is a variance number, so std deviation squared, but it's pretty likely to be between 0 and 1, so the variance will be smaller than the standard deviation.
Definition at line 130 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::blobMoveThreshold = 3.5 |
Maximum distance a blob can move, in multiples of its previous "keypoint diameter", and still be considered the same blob.
Definition at line 134 of file ConfigParams.h.
int osvr::vbtracker::ConfigParams::numThreads = 1 |
How many threads to let OpenCV use. Set to 0 or less to let OpenCV decide (that is, not set an explicit preference)
Definition at line 141 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::processNoiseAutocorrelation |
This is the autocorrelation kernel of the process noise. The first three elements correspond to position, the second three to incremental rotation.
Definition at line 146 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::linearVelocityDecayCoefficient = 0.9040551503451977 |
The value used in exponential decay of linear velocity: it's the proportion of that velocity remaining at the end of 1 second. Thus, smaller = faster decay/higher damping. In range [0, 1]
Definition at line 151 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::angularVelocityDecayCoefficient = 0.8945437897688864 |
The value used in exponential decay of angular velocity: it's the proportion of that velocity remaining at the end of 1 second. Thus, smaller = faster decay/higher damping. In range [0, 1]
Definition at line 156 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::noBeaconLinearVelocityDecayCoefficient = 0.005878868009089861 |
The value used in an additional exponential decay of linear velocity when we've lost sight of all beacons, to quickly attenuate coasting. it's the proportion of that velocity remaining at the end of 1 second. Thus, smaller = faster decay/higher damping. In range [0, 1]
Definition at line 162 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::measurementVarianceScaleFactor = 1.5 |
The measurement variance (units: m^2) is included in the plugin along with the coordinates of the beacons. Some beacons are observed with higher variance than others, due to known difficulties in tracking them, etc. However, for testing you may fine-tine the measurement variances globally by scaling them here.
The measurement variance (units: mm^2) is included in the plugin along with the coordinates of the beacons. Some beacons are observed with higher variance than others, due to known difficulties in tracking them, etc. However, for testing you may fine-tine the measurement variances globally by scaling them here.
Definition at line 169 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::offsetToCentroid = false |
Whether the tracking algorithm internally adjusts beacon positions based on the centroid of the input beacon positions.
Definition at line 173 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::manualBeaconOffset |
Manual beacon offset (in m) - only really sensible if you only have one target, only used if offsetToCentroid is false.
Manual beacon offset (in mm) - only really sensible if you only have one target, only used if offsetToCentroid is false.
Definition at line 177 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::includeRearPanel = true |
If true, this will replace the two sensors with just a single one, including the beacons at the back of the head "rigidly" as a part of it. If true, recommend offsetToCentroid = false, and manualBeaconOffset to be 0, 0, -75.
Definition at line 183 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::headCircumference = 55.75 |
Head circumference at the head strap, in cm - 55.75 is our estimate for an average based on some hat sizing guidelines. Only matters if includeRearPanel is true.
Definition at line 188 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::headToFrontBeaconOriginDistance = 0 |
This is the distance fron the front of the head to the origin of the front sensor coordinate system in the Z axis, in mm. This is a rough estimate - the origin of the coordinate system is roughly the flat part of the hard plastic.
Definition at line 194 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::backPanelMeasurementError = BaseMeasurementVariance |
This used to be different than the other beacons, but now it's mostly the same.
Definition at line 198 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::beaconProcessNoise = 1.e-19 |
This is the process-model noise in the beacon-auto-calibration, in mm^2/s. Not fully accurate, since it only gets applied when a beacon gets used for a measurement, but it should be enough to keep beacons from converging in a bad local minimum.
Definition at line 204 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::highResidualVariancePenalty = 7.513691210865344 |
This is the multiplicative penalty applied to the variance of measurements with a "bad" residual
Definition at line 208 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::streamBeaconDebugInfo = false |
When true, will stream debug info (variance, pixel measurement, pixel residual) on up to the first 34 beacons of your first sensor as analogs.
Definition at line 213 of file ConfigParams.h.
float osvr::vbtracker::ConfigParams::boundingBoxFilterRatio = 5.f / 4.f |
This should be the ratio of lengths of sides that you'll permit to be filtered in. Larger side first, please.
Not currently being used.
Definition at line 219 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::maxZComponent = -0.3 |
This should be a negative number - it's the largest the z component of the camera-space LED emission vector is permitted to be and still be used in estimation. acos(this number) is the maximum angle away from pointing at the camera that we'll accept an LED pointing.
Definition at line 225 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::shouldSkipBrightLeds = false |
Should we attempt to skip bright-mode LEDs? The alternative is to just give them slightly higher variance.
Definition at line 229 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::brightLedVariancePenalty = 28.32749811268542 |
If shouldSkipBrightLeds is false, we use this value as a factor to increase the measurement variance of bright LEDs, to account for the fact that they are less accurate because they tend to refract through surrounding materials, etc.
Definition at line 235 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::blobsKeepIdentity = false |
If this option is set to true, then while some of the pattern identifier is run each frame, an "early-out" will be taken if the blob/LED already has a valid (non-negative) ID assigned to it. This can help keep IDs on hard to identify blobs, but it can also persist errors longer. That's why it's an option.
Defaulting to off because it adds some jitter for some reason.
Definition at line 244 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::extraVerbose = false |
Extra verbose developer debugging messages.
Extra verbose developer debugging messages (right now just "hey, you can't possibly be that beacon, I shouldn't be able to see you" messages)
Definition at line 247 of file ConfigParams.h.
std::string osvr::vbtracker::ConfigParams::calibrationFile = "" |
If non-empty, the file to load (or save to) for calibration data. Only make sense for a single target.
Definition at line 251 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::cameraIsForward = true |
Whether we should adjust transforms to assume the camera looks along the YZ plane in the +Z direction.
Definition at line 261 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::permitKalman = true |
Should we permit the whole system to enter Kalman mode? Not doing so is usually a bad idea, unless you're doing something special like development on the tracker itself...
Definition at line 266 of file ConfigParams.h.
std::int32_t osvr::vbtracker::ConfigParams::cameraMicrosecondsOffset = -27000 |
Time offset for the camera timestamp, in microseconds. Default is measured on Windows 10 version 1511.
Definition at line 270 of file ConfigParams.h.
bool osvr::vbtracker::ConfigParams::softResets = false |
Should we permit a reset to be "soft" (blended by a Kalman) rather than a hard state setting, in certain conditions? Only available in the Unified tracker.
Definition at line 275 of file ConfigParams.h.
double osvr::vbtracker::ConfigParams::softResetPositionVarianceScale = 1.e-1 |
Soft reset data incorporation parameter: Positional variance scale - multiplied by the square of the distance from the camera.
Definition at line 279 of file ConfigParams.h.