8 #ifndef META_OCEAN_DEVICES_PATTERN_STATIC_PATTERN_TRACKER_6DOF_H
9 #define META_OCEAN_DEVICES_PATTERN_STATIC_PATTERN_TRACKER_6DOF_H
22 #include <unordered_map>
141 static inline std::string deviceNameStaticPatternTracker6DOF();
147 static inline DeviceType deviceTypeStaticPatternTracker6DOF();
244 size_t maximalNumberForAlignment_ = 5;
247 double maximalIntervalForAlignment_ = 10.0;
254 maximalDistance_(maximalDistance),
255 pattern_T_world_(false)
262 return pattern_T_world_;
267 return transformationMap_;
272 return std::string(
"Static Pattern 6DOF Tracker");
Definition of a class holding the major and minor device type.
Definition: devices/Device.h:62
This class implements a helper class to simplify the mapping between internal object ids (of the actu...
Definition: Measurement.h:239
This class manages the lifetime of an event subscription for sample events.
Definition: Measurement.h:154
This class implements the base class for all devices providing measurement samples.
Definition: Measurement.h:40
unsigned int ObjectId
Definition of an object id.
Definition: Measurement.h:46
std::unordered_set< ObjectId > ObjectIdSet
Definition of an unordered set holding object ids.
Definition: Measurement.h:56
This class is the base class for all tracker allowing to track an object or location.
Definition: ObjectTracker.h:38
This class implements a base class for all devices of the Pattern library.
Definition: PatternDevice.h:29
This class implements a device factory for the Pattern feature based tracking system.
Definition: PatternFactory.h:29
This class implements a static Pattern feature-based tracker.
Definition: StaticPatternTracker6DOF.h:42
ObjectMapper< ObjectId > objectIdMapper_
The mapper between internal and external object ids.
Definition: StaticPatternTracker6DOF.h:250
SampleEventSubscription worldTrackerSampleEventSubscription_
The subscription object for samples events from the world tracker.
Definition: StaticPatternTracker6DOF.h:217
bool isStarted() const override
Returns whether this device is active.
ObjectId registerObject(const std::string &description, const Vector3 &dimension) override
Adds a new tracking pattern.
static std::string deviceNameStaticPatternTracker6DOF()
Returns the name of this tracker.
Definition: StaticPatternTracker6DOF.h:270
bool start() override
Starts the device.
static DeviceType deviceTypeStaticPatternTracker6DOF()
Returns the type of this tracker.
Definition: StaticPatternTracker6DOF.h:275
void reportNotAlignedPoses(const Timestamp ×tamp)
Reports all pattern poses without aligning the poses with the world tracker.
Lock sampleMapLock_
The look for all transformation maps.
Definition: StaticPatternTracker6DOF.h:241
TrackerObjectEventSubscription worldTrackerObjectSubscription_
The subscription object for tracker object events from the world tracker.
Definition: StaticPatternTracker6DOF.h:223
void setInput(Media::FrameMediumRefs &&frameMediums) override
Sets the multi-view visual input of this tracker.
void reportAlignedPoses(const Timestamp ×tamp)
Reports all pattern poses by aligning them with the world tracker.
Tracker6DOFRef worldTracker_
The 6-DOF world tracker.
Definition: StaticPatternTracker6DOF.h:211
ObjectIdSet lostPatternTrackerObjects_
The ids of all objects currently not actively tracked.
Definition: StaticPatternTracker6DOF.h:232
std::map< Timestamp, HomogenousMatrix4 > TransformationMap
Definition of a sorted map combining timestamp with transformations.
Definition: StaticPatternTracker6DOF.h:50
bool stop() override
Stops the device.
ObjectIdSet worldTrackedPatternObjects_
The ids of all objects currently connected with a world pose.
Definition: StaticPatternTracker6DOF.h:226
Tracker6DOFRef patternTracker_
The 6-DOF pattern tracker.
Definition: StaticPatternTracker6DOF.h:208
StaticPatternTracker6DOF()
Creates a new Static Pattern feature based 6DOF tracker object.
void onPatternTrackerObject(const Tracker *tracker, const bool found, const ObjectIdSet &objectIds, const Timestamp ×tamp)
Event function for new tracking object event from the pattern tracker.
void onWorldTrackerSample(const Measurement *measurement, const SampleRef &sample)
Event function for new tracking samples from the world tracker.
~StaticPatternTracker6DOF() override
Destructs an Static Pattern feature based 6DOF tracker object.
SampleEventSubscription patternTrackerSampleEventSubscription_
The subscription object for samples events from the pattern tracker.
Definition: StaticPatternTracker6DOF.h:214
void onWorldTrackerObject(const Tracker *tracker, const bool found, const ObjectIdSet &objectIds, const Timestamp ×tamp)
Event function for new tracking object event from the world tracker.
std::unordered_map< ObjectId, PatternTransformations > PatternTransformationsMap
Definition of an unsorted map combining object ids with pattern transformations.
Definition: StaticPatternTracker6DOF.h:102
ObjectIdSet foundPatternTrackerObjects_
The ids of all objects detected and currently actively tracked.
Definition: StaticPatternTracker6DOF.h:229
PatternTransformationsMap patternTrackerTransformationsMap_
Individual transformations (the history of recent poses) of all (pattern) objects.
Definition: StaticPatternTracker6DOF.h:235
void onPatternTrackerSample(const Measurement *measurement, const SampleRef &sample)
Event function for new tracking samples from the pattern tracker.
TrackerObjectEventSubscription patternTrackerObjectSubscription_
The subscription object for tracker object events from the pattern tracker.
Definition: StaticPatternTracker6DOF.h:220
TransformationMap worldTrackerTransformationMap_
The transformation map (the history of recent poses) of the world tracker.
Definition: StaticPatternTracker6DOF.h:238
This class implements the base for all 6DOF trackers.
Definition: Tracker6DOF.h:39
static DeviceType deviceTypeTracker6DOF()
Definition of this device type.
Definition: Tracker6DOF.h:100
This class manages the lifetime of an event subscription for tracker object events.
Definition: devices/Tracker.h:141
This class implements the base class for all tracker devices.
Definition: devices/Tracker.h:39
@ TRACKER_VISUAL
Tracker using a visual input for their measurements.
Definition: devices/Tracker.h:62
@ TRACKER_OBJECT
Tracker allowing to register tracking objects at runtime.
Definition: devices/Tracker.h:64
This class is the base class for all tracker using visual input to create the tracking results.
Definition: devices/VisualTracker.h:41
This class implements a recursive lock object.
Definition: Lock.h:31
static constexpr T eps()
Returns a small epsilon.
This template class implements a object reference with an internal reference counter.
Definition: base/ObjectRef.h:58
This class implements a timestamp.
Definition: Timestamp.h:36
float Scalar
Definition of a scalar type.
Definition: Math.h:128
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15