Ocean
Ocean::Devices::ObjectTracker Class Reference

This class is the base class for all tracker allowing to track an object or location. More...

Inheritance diagram for Ocean::Devices::ObjectTracker:

Public Member Functions

virtual ObjectId registerObject (const std::string &description, const Vector3 &dimension=Vector3(0, 0, 0))
 Registers (adds) a new object to be tracked. More...
 
virtual bool unregisterObject (const ObjectId objectId)
 Unregisters (removes) a previously registered object. 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

 ObjectTracker (const std::string &name, const DeviceType type)
 Creates a new object tracker object. More...
 
 ~ObjectTracker () override
 Destructs an object 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...
 

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...
 
- 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...
 

Detailed Description

This class is the base class for all tracker allowing to track an object or location.

Constructor & Destructor Documentation

◆ ObjectTracker()

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

Creates a new object tracker object.

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

◆ ~ObjectTracker()

Ocean::Devices::ObjectTracker::~ObjectTracker ( )
overrideprotected

Destructs an object tracker object.

Member Function Documentation

◆ registerObject()

virtual ObjectId Ocean::Devices::ObjectTracker::registerObject ( const std::string &  description,
const Vector3 dimension = Vector3(0, 0, 0) 
)
virtual

Registers (adds) a new object to be tracked.

The object can be e.g., a unique mark, an image, a feature map, or a location.

Parameters
descriptionThe information describing the object, e.g., a filename, or an id, or a location
dimensionThe dimension of the object if known, e.g. a 1D or 2D sizeof of a marker, can be zero if unknown
Returns
Object id associated with the defined object, an invalid object id if the function failed
See also
unregisterObject().

Reimplemented in Ocean::Devices::RMV::RMVTracker6DOF, Ocean::Devices::Pattern::StaticPatternTracker6DOF, Ocean::Devices::Pattern::PatternTracker6DOF, Ocean::Devices::MapBuilding::OnDeviceRelocalizerTracker6DOF, and Ocean::Devices::ARKit::AKGeoAnchorsTracker6DOF.

◆ unregisterObject()

virtual bool Ocean::Devices::ObjectTracker::unregisterObject ( const ObjectId  objectId)
virtual

Unregisters (removes) a previously registered object.

Parameters
objectIdUnique object id of the object to be removed
Returns
True, if succeeded
See also
registerObject().

Reimplemented in Ocean::Devices::ARKit::AKGeoAnchorsTracker6DOF.


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