Ocean
Ocean::Devices::VisualTracker Class Reference

This class is the base class for all tracker using visual input to create the tracking results. More...

Inheritance diagram for Ocean::Devices::VisualTracker:

Public Member Functions

Media::FrameMediumRefs input () const
 Returns the medium objects of this tracker used as visual input. More...
 
void setInput (const Media::FrameMediumRef &frameMedium)
 Sets the mono visual input of this tracker. More...
 
virtual void setInput (Media::FrameMediumRefs &&frameMediums)
 Sets the multi-view visual input of this tracker. More...
 
- Public Member Functions inherited from Ocean::Devices::Tracker
virtual Frequency frequency () const
 Returns the frequency of this tracker. More...
 
virtual bool isObjectTracked (const ObjectId &objectId) const
 Returns whether a specific object is currently actively tracked by this tracker. More...
 
TrackerObjectEventSubscription subscribeTrackerObjectEvent (TrackerObjectCallback &&callback)
 Subscribes a callback event function for tracker object (found or lost) events. More...
 
virtual HomogenousMatrixD4 reference () const
 Returns the reference coordinate system of this tracker. More...
 
- Public Member Functions inherited from Ocean::Devices::Measurement
size_t sampleCapacity () const
 Returns the capacity of the internal sample container. More...
 
bool setSampleCapacity (const size_t capacity)
 Sets the capacity of the internal sample container. More...
 
virtual SampleRef sample () const
 Returns the most recent sample. More...
 
virtual SampleRef sample (const Timestamp timestamp) const
 Returns the sample with a specific timestamp. More...
 
virtual SampleRef sample (const Timestamp &timestamp, const InterpolationStrategy interpolationStrategy) const
 Returns the sample best matching with a specified timestamp. More...
 
SampleEventSubscription subscribeSampleEvent (SampleCallback &&callback)
 Subscribes a callback event function for new measurement sample events. More...
 
ObjectId objectId (const std::string &description) const
 Returns the object id for an object description. More...
 
Strings objectDescriptions () const
 Returns descriptions of all objects currently available. More...
 
std::string objectDescription (const ObjectId objectId) const
 Returns the description of one object of this measurement. More...
 
- Public Member Functions inherited from Ocean::Devices::Device
const std::string & name () const
 Returns the name of this device. More...
 
virtual const std::string & library () const =0
 Returns the name of the owner library. More...
 
virtual bool isStarted () const
 Returns whether this device is active. More...
 
bool isValid () const
 Returns whether this device is valid. More...
 
bool isExclusive () const
 Returns whether this device can be use exclusively. More...
 
virtual bool start ()
 Starts the device. More...
 
virtual bool pause ()
 Pauses the device. More...
 
virtual bool stop ()
 Stops the device. More...
 
virtual bool setParameter (const std::string &parameter, const Value &value)
 Sets an abstract parameter of this device. More...
 
virtual bool parameter (const std::string &parameter, Value &value)
 Returns an abstract parameter of this device. More...
 
DeviceType type () const
 Returns the major and minor type of this device. More...
 

Protected Member Functions

 VisualTracker (const std::string &name, const DeviceType type)
 Creates a new visual tracker object. More...
 
 ~VisualTracker () override
 Destructs a visual tracker object. More...
 
- Protected Member Functions inherited from Ocean::Devices::Tracker
 Tracker (const std::string &name, const DeviceType type)
 Creates a new tracker object. More...
 
 ~Tracker () override
 Destructs a tracker object. More...
 
void postFoundTrackerObjects (const ObjectIdSet &objectIds, const Timestamp &timestamp)
 Posts a new found tracker objects event. More...
 
void postLostTrackerObjects (const ObjectIdSet &objectIds, const Timestamp &timestamp)
 Posts a new lost tracker objects event. More...
 
void unsubscribeTrackerObjectEvent (const SubscriptionId subscriptionId)
 Unsubscribes a tracker object event callback function. More...
 
- Protected Member Functions inherited from Ocean::Devices::Measurement
 Measurement (const std::string &name, const DeviceType type)
 Creates a new measurement object. More...
 
 ~Measurement () override
 Destructs a measurement object. More...
 
void postNewSample (const SampleRef &newSample)
 Posts a new measurement sample. More...
 
ObjectId addUniqueObjectId (const std::string &description)
 Creates a unique object id for a new object (e.g., a tracking object like an image, a marker, or a location). More...
 
void unsubscribeSampleEvent (const SubscriptionId subscriptionId)
 Unsubscribes a sample event callback function. More...
 
- Protected Member Functions inherited from Ocean::Devices::Device
 Device (const Device &device)=delete
 Disabled copy constructor. More...
 
 Device (const std::string &name, const DeviceType type)
 Creates a new device by is name. More...
 
virtual ~Device ()
 Destructs a device. More...
 
Deviceoperator= (const Device &device)=delete
 Disabled copy operator. More...
 

Protected Attributes

Media::FrameMediumRefs frameMediums_
 Visual input media objects. More...
 
- Protected Attributes inherited from Ocean::Devices::Tracker
TrackerObjectSubscriptionMap trackerObjectSubscriptionMap_
 Map holding all tracker object event subscriptions. More...
 
SubscriptionId nextTrackerObjectSubscriptionId_ = SubscriptionId(invalidSubscriptionId() + 1u)
 The subscription id of the next event subscription. More...
 
- Protected Attributes inherited from Ocean::Devices::Measurement
Lock samplesLock_
 Sample lock. More...
 
Lock subscriptionLock_
 Subscription lock. More...
 
- Protected Attributes inherited from Ocean::Devices::Device
std::string deviceName
 Name of this device. More...
 
DeviceType deviceType
 Major and minor type of this device. More...
 
bool deviceIsValid
 Flag determining whether this device is valid. More...
 
Lock deviceLock
 Device lock. More...
 

Additional Inherited Members

- Public Types inherited from Ocean::Devices::Tracker
enum  TrackerType : uint32_t {
  TRACKER_INVALID = MINOR_INVALID , TRACKER_ORIENTATION_3DOF = (1u << 0u) , TRACKER_POSITION_3DOF = (1u << 1u) , TRACKER_6DOF = TRACKER_ORIENTATION_3DOF | TRACKER_POSITION_3DOF ,
  SCENE_TRACKER_6DOF = (1u << 2u) | TRACKER_6DOF , TRACKER_GPS = (1u << 3u) , TRACKER_MAGNETIC = (1u << 4u) , TRACKER_VISUAL = (1u << 5u) ,
  TRACKER_OBJECT = (1u << 6u)
}
 Definition of different minor device types. More...
 
enum  ReferenceSystem { RS_OBJECT_IN_DEVICE , RS_DEVICE_IN_OBJECT }
 Definition of different tracking reference system. More...
 
typedef float Frequency
 Definition of a tracker frequency in Hz. More...
 
typedef SmartObjectRef< TrackerSample, SampleTrackerSampleRef
 Definition of a smart object reference for tracker samples. More...
 
typedef Callback< void, const Tracker *, const bool, const ObjectIdSet &, const Timestamp & > TrackerObjectCallback
 Definition of a callback function to subscribe for lost and found tracker events. More...
 
- Public Types inherited from Ocean::Devices::Measurement
enum  InterpolationStrategy { IS_INVALID , IS_TIMESTAMP_NEAREST , IS_TIMESTAMP_INTERPOLATE }
 Definition of individual interpolation strategies for samples. More...
 
typedef unsigned int ObjectId
 Definition of an object id. More...
 
typedef std::vector< ObjectIdObjectIds
 Definition of a vector holding object ids. More...
 
typedef std::unordered_set< ObjectIdObjectIdSet
 Definition of an unordered set holding object ids. More...
 
typedef std::unordered_map< std::string, ValueMetadata
 Definition of an unordered map mapping keys to values. More...
 
typedef ObjectRef< SampleSampleRef
 Definition of an object reference for samples. More...
 
typedef Callback< void, const Measurement *, const SampleRef & > SampleCallback
 Definition of a callback function to subscribe for new measurement sample events. More...
 
- Public Types inherited from Ocean::Devices::Device
enum  MajorType : uint32_t { DEVICE_INVALID = 0u , DEVICE_MEASUREMENT = (1u << 0u) , DEVICE_SENSOR = (1u << 1u) | DEVICE_MEASUREMENT , DEVICE_TRACKER = (1u << 2u) | DEVICE_MEASUREMENT }
 Definition of all major device types. More...
 
enum  MinorType : uint32_t { MINOR_INVALID = 0u }
 Base definition of a minor type. More...
 
- Static Public Member Functions inherited from Ocean::Devices::Tracker
static std::string translateTrackerType (const TrackerType trackerType)
 Translates the tracker type to a readable string. More...
 
static TrackerType translateTrackerType (const std::string &trackerType)
 Translates the tracker type from a readable string to a value. More...
 
static constexpr Frequency unknownFrequency ()
 Definition of a constant as unknown frequency. More...
 
- Static Public Member Functions inherited from Ocean::Devices::Measurement
static constexpr ObjectId invalidObjectId ()
 Returns an invalid object id. More...
 
- Static Public Member Functions inherited from Ocean::Devices::Device
static std::string translateMajorType (const MajorType majorType)
 Translates the major devices type to a readable string. More...
 
static MajorType translateMajorType (const std::string &majorType)
 Translates the major devices type from a readable string to a value. More...
 
- Protected Types inherited from Ocean::Devices::Tracker
typedef std::unordered_map< SubscriptionId, TrackerObjectCallbackTrackerObjectSubscriptionMap
 Definition of a map mapping subscription ids to tracker object event callback functions. More...
 
- Protected Types inherited from Ocean::Devices::Measurement
typedef std::map< Timestamp, SampleRefSampleMap
 Definition of a map holding the most recent samples. More...
 
typedef std::unordered_map< std::string, ObjectIdObjectDescriptionToIdMap
 Definition of an unordered map mapping descriptions to unique object ids. More...
 
typedef std::unordered_map< ObjectId, std::string > ObjectIdToDescriptionMap
 Definition of an unordered map mapping unique object ids to descriptions. More...
 
typedef std::unordered_map< SubscriptionId, SampleCallbackSampleSubscriptionMap
 Definition of a map mapping subscription ids to event sample callback functions. More...
 
- Protected Types inherited from Ocean::Devices::Device
typedef unsigned int SubscriptionId
 Definition of a subscription id for event callbacks. More...
 
- Static Protected Member Functions inherited from Ocean::Devices::Tracker
static ObjectIdSet determineFoundObjects (const ObjectIdSet &previousObjects, const ObjectIdSet &currentObjects)
 Determines the ids which were not tracked in the previous iteration but tracked in the current iteration. More...
 
static ObjectIdSet determineLostObjects (const ObjectIdSet &previousObjects, const ObjectIdSet &currentObjects)
 Determines the ids which were tracked in the previous iteration but not tracked in the current iteration. More...
 
- Static Protected Member Functions inherited from Ocean::Devices::Device
static constexpr SubscriptionId invalidSubscriptionId ()
 Returns an invalid subscription id. More...
 

Detailed Description

This class is the base class for all tracker using visual input to create the tracking results.

Constructor & Destructor Documentation

◆ VisualTracker()

Ocean::Devices::VisualTracker::VisualTracker ( const std::string &  name,
const DeviceType  type 
)
protected

Creates a new visual tracker object.

Parameters
nameThe name of the tracker
typeMajor and minor device type of the device

◆ ~VisualTracker()

Ocean::Devices::VisualTracker::~VisualTracker ( )
overrideprotected

Destructs a visual tracker object.

Member Function Documentation

◆ input()

Media::FrameMediumRefs Ocean::Devices::VisualTracker::input ( ) const
inline

Returns the medium objects of this tracker used as visual input.

The majority of tracker will be based on mono camera inputs, while some tracker may use stereo or multi-view vision.

Returns
Visual input media object

◆ setInput() [1/2]

void Ocean::Devices::VisualTracker::setInput ( const Media::FrameMediumRef frameMedium)
inline

Sets the mono visual input of this tracker.

Parameters
frameMediumThe visual input medium object to set

◆ setInput() [2/2]

Field Documentation

◆ frameMediums_

Media::FrameMediumRefs Ocean::Devices::VisualTracker::frameMediums_
protected

Visual input media objects.


The documentation for this class was generated from the following file: