gramods
|
The SampleCollector is a utility for sampling tracker data. More...
#include <SampleCollector.hh>
Public Member Functions | |
SampleCollector (Impl *impl=nullptr) | |
void | update (clock::time_point time, size_t frame) |
Updates the internal states. More... | |
void | setController (std::shared_ptr< Controller > controller) |
Sets the controller to use for reading tracker samples. More... | |
void | addTrackerPosition (Eigen::Vector3f p) |
Adds a tracker position. More... | |
void | addTrackerOrientation (Eigen::Quaternionf o) |
Adds a tracker orientation. More... | |
void | setSamplesPerSecond (float n) |
Sets the frequency at which samples are collected when the controller button is pressed. More... | |
void | setWarningThreshold (float d) |
Sets the data offset required to trigger a warning. More... | |
void | setInlierThreshold (float r) |
Set the maximum positional distance from the average allowed for a sample to be included in the average. More... | |
void | setOrientationWarningThreshold (float d) |
Sets the data offset required to trigger a warning. More... | |
void | setOrientationInlierThreshold (float r) |
Set the maximum orientational distance (in radians) from the average allowed for a sample to be included in the average. More... | |
const std::vector< Eigen::Vector3f > & | getTrackerPositions () const |
Returns the current list of tracker positions. More... | |
const std::vector< Eigen::Quaternionf > & | getTrackerOrientations () const |
Returns the current list of tracker orientations. More... | |
void | traverse (Visitor *visitor) override |
Propagates the specified visitor. More... | |
![]() | |
Object () | |
Initializes internal data. More... | |
virtual | ~Object () |
Cleaning up internal data. More... | |
virtual void | initialize () |
Called to initialize the Object. More... | |
virtual void | accept (Visitor *visitor) |
Calls the visitors apply method with this as argument. More... | |
virtual std::string | getDefaultKey () |
Returns the default key for the Object when automatically instantiated in a Configuration, i.e. More... | |
bool | isInitialized () |
Returns true if the Object is initialized. More... | |
![]() | |
Updateable (int priority=0) | |
Configures the Updateable properties to the specified priority. More... | |
Static Public Member Functions | |
static Eigen::Vector3f | getAverage (std::vector< Eigen::Vector3f > samples, float *stddev=nullptr, float *maxdev=nullptr, float inlier_dist=-1.f, size_t *inlier_count=nullptr) |
Calculates and returns the average point of a set of samples. More... | |
static Eigen::Quaternionf | getAverage (std::vector< Eigen::Quaternionf > samples, float *stddev=nullptr, float *maxdev=nullptr, float inlier_dist=-1.f, size_t *inlier_count=nullptr) |
Calculates and returns the average point of a set of samples. More... | |
![]() | |
static void | updateAll (clock::time_point t=clock::now(), std::optional< size_t > frame=std::nullopt) |
Updates all currently instanciated updateable objects. More... | |
Static Public Attributes | |
static gramods::gmCore::OFactory::OFactoryInformation | _gm_ofi |
Protected Attributes | |
std::unique_ptr< Impl > | _impl |
Additional Inherited Members | |
![]() | |
typedef std::chrono::steady_clock | clock |
The SampleCollector is a utility for sampling tracker data.
void gramods::gmTrack::SampleCollector::addTrackerOrientation | ( | Eigen::Quaternionf | o | ) |
Adds a tracker orientation.
XML-attribute: trackerOrientation
void gramods::gmTrack::SampleCollector::addTrackerPosition | ( | Eigen::Vector3f | p | ) |
Adds a tracker position.
XML-attribute: trackerPosition
|
static |
Calculates and returns the average point of a set of samples.
Optionally also standard deviation and maximum deviation can be estimated (expressed in radians).
[in] | samples | The samples to estimate average of |
[out] | stddev | Optional pointer to variable to write standard deviation to |
[out] | maxdev | Optional pointer to variable to write maximum deviation to |
[in] | inlier_dist | Optional threshold (in radians) for counting as inlier |
[out] | inlier_count | Optional pointer to variable to write inlier count to |
|
static |
Calculates and returns the average point of a set of samples.
Optionally also standard deviation and maximum deviation can be estimated.
[in] | samples | The samples to estimate average of |
[out] | stddev | Optional pointer to variable to write standard deviation to |
[out] | maxdev | Optional pointer to variable to write maximum deviation to |
[in] | inlier_dist | Optional threshold for counting as inlier |
[out] | inlier_count | Optional pointer to variable to write inlier count to |
const std::vector< Eigen::Quaternionf > & gramods::gmTrack::SampleCollector::getTrackerOrientations | ( | ) | const |
Returns the current list of tracker orientations.
const std::vector< Eigen::Vector3f > & gramods::gmTrack::SampleCollector::getTrackerPositions | ( | ) | const |
Returns the current list of tracker positions.
void gramods::gmTrack::SampleCollector::setController | ( | std::shared_ptr< Controller > | controller | ) |
Sets the controller to use for reading tracker samples.
XML-attribute: controller
void gramods::gmTrack::SampleCollector::setInlierThreshold | ( | float | r | ) |
Set the maximum positional distance from the average allowed for a sample to be included in the average.
Default is -1 meaning that all samples are included.
void gramods::gmTrack::SampleCollector::setOrientationInlierThreshold | ( | float | r | ) |
Set the maximum orientational distance (in radians) from the average allowed for a sample to be included in the average.
Default is -1 meaning that all samples are included.
void gramods::gmTrack::SampleCollector::setOrientationWarningThreshold | ( | float | d | ) |
Sets the data offset required to trigger a warning.
Default is π/4 radians.
XML-attribute: orientationWarningThreshold
void gramods::gmTrack::SampleCollector::setSamplesPerSecond | ( | float | n | ) |
Sets the frequency at which samples are collected when the controller button is pressed.
Default is 1. At most one sample per frame will be used regardless of this value.
XML-attribute: samplesPerSecond
void gramods::gmTrack::SampleCollector::setWarningThreshold | ( | float | d | ) |
Sets the data offset required to trigger a warning.
Default is 0.01, i.e. one cm.
XML-attribute: warningThreshold
|
overridevirtual |
Propagates the specified visitor.
Reimplemented from gramods::gmCore::Object.
|
virtual |
Updates the internal states.
Automatically called via gmCore::Updateable::updateAll().
Implements gramods::gmCore::Updateable.