File objects.hpp¶
Core API objects.
Includes the majority of the objects that are used when using the SLAMcore API. Along with their definition, we define load_minimal
, save_minimal
helper functions as well as the operator<<
for storing/dumping their types.
Note
Notice that the majority of the classes are suffixed with *Interface
. That’s because when you get access to the corresponding instance, you do via a pointer type (namely std::shared_ptr or the class member aliases Ptr
, CPtr
) and not through the actual class instance.
Helper functions for slamcore::ObjectType
-
template<class Archive>
static inline void load_minimal(const Archive&, ObjectType &obj, const std::string &value)¶
-
template<class Archive>
static inline std::string save_minimal(const Archive&, const ObjectType &obj)¶
-
static inline std::ostream &operator<<(std::ostream &os, const ObjectType obj)¶
Helper functions for slamcore::TaskType
Helper functions for slamcore::TaskStatusInterface::
-
template<class Archive>
static inline void load_minimal(const Archive&, TaskStatusInterface::TaskState &obj, const std::string &value)¶
Helper functions for slamcore::MapChannelType
-
template<class Archive>
static inline void load_minimal(const Archive&, MapChannelType &obj, const std::string &value)¶
-
template<class Archive>
static inline std::string save_minimal(const Archive&, const MapChannelType &obj)¶
-
static inline std::ostream &operator<<(std::ostream &os, const MapChannelType obj)¶
Enums
-
enum ObjectType¶
Object types. For every one of these enum cases there is a corresponding <enum-name>Interface class.
Values:
-
enumerator ErrorCode¶
-
enumerator Vector¶
-
enumerator Matrix¶
-
enumerator PoseCam¶
-
enumerator PoseIMU¶
-
enumerator PoseOdom¶
-
enumerator PoseListCam¶
-
enumerator PoseListIMU¶
-
enumerator PoseListOdom¶
-
enumerator VelocityCam¶
-
enumerator VelocityIMU¶
-
enumerator VelocityOdom¶
-
enumerator IMUSensorData¶
-
enumerator IMUList¶
-
enumerator IMUTriplet¶
-
enumerator IMUTripletList¶
-
enumerator Image¶
-
enumerator MultiFrame¶
-
enumerator Encoder¶
-
enumerator EncoderList¶
-
enumerator Landmark¶
-
enumerator SparseMap¶
-
enumerator FrameSync¶
-
enumerator MetaData¶
-
enumerator TaskStatus¶
-
enumerator MapChannel2D¶
-
enumerator Map2D¶
-
enumerator PointCloud¶
-
enumerator TrackingStatusList¶
-
enumerator Count¶
-
enumerator ErrorCode¶
-
namespace slamcore
Main namespace for the SLAMcore public API
Helper functions for slamcore::ObjectType
-
template<class Archive>
static inline void load_minimal(const Archive&, ObjectType &obj, const std::string &value)¶
-
template<class Archive>
static inline std::string save_minimal(const Archive&, const ObjectType &obj)¶
-
static inline std::ostream &operator<<(std::ostream &os, const ObjectType obj)¶
Helper functions for slamcore::TaskType
Helper functions for slamcore::TaskStatusInterface::
-
template<class Archive>
static inline void load_minimal(const Archive&, TaskStatusInterface::TaskState &obj, const std::string &value)¶
-
template<class Archive>
static inline std::string save_minimal(const Archive&, const TaskStatusInterface::TaskState &obj)¶
-
static inline std::ostream &operator<<(std::ostream &os, const TaskStatusInterface::TaskState &obj)¶
Helper functions for slamcore::MapChannelType
-
template<class Archive>
static inline void load_minimal(const Archive&, MapChannelType &obj, const std::string &value)¶
-
template<class Archive>
static inline std::string save_minimal(const Archive&, const MapChannelType &obj)¶
-
static inline std::ostream &operator<<(std::ostream &os, const MapChannelType obj)¶
Get information about the client library
Helper conversion methods
slamcore::ImageFormat \(\leftrightarrow\) BytesPerPixel
Enums
-
enum ObjectType¶
Object types. For every one of these enum cases there is a corresponding <enum-name>Interface class.
Values:
-
enumerator ErrorCode¶
-
enumerator Vector¶
-
enumerator Matrix¶
-
enumerator PoseCam¶
-
enumerator PoseIMU¶
-
enumerator PoseOdom¶
-
enumerator PoseListCam¶
-
enumerator PoseListIMU¶
-
enumerator PoseListOdom¶
-
enumerator VelocityCam¶
-
enumerator VelocityIMU¶
-
enumerator VelocityOdom¶
-
enumerator IMUSensorData¶
-
enumerator IMUList¶
-
enumerator IMUTriplet¶
-
enumerator IMUTripletList¶
-
enumerator Image¶
-
enumerator MultiFrame¶
-
enumerator Encoder¶
-
enumerator EncoderList¶
-
enumerator Landmark¶
-
enumerator SparseMap¶
-
enumerator FrameSync¶
-
enumerator MetaData¶
-
enumerator TaskStatus¶
-
enumerator MapChannel2D¶
-
enumerator Map2D¶
-
enumerator PointCloud¶
-
enumerator TrackingStatusList¶
-
enumerator Count¶
-
enumerator ErrorCode¶
-
class EncoderInterface : public ObjectInterface, public virtual MeasurementPointInterface<odometry_clock>
- #include <objects.hpp>
Representing a single encoder measurement.
Public Types
-
using Ptr = std::shared_ptr<EncoderInterface>
-
using CPtr = std::shared_ptr<const EncoderInterface>
-
using MeasurementPointT = MeasurementPointInterface<odometry_clock>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~EncoderInterface() = default
-
virtual const int64_t &getMeasurement() const = 0
Returns the number of ticks.
-
using Ptr = std::shared_ptr<EncoderInterface>
-
class EncoderListInterface : public ObjectInterface
- #include <objects.hpp>
Representing a list of Encoder measurements.
Convenient access to measurement @a i.
-
inline const EncoderInterface &operator[](const std::size_t i) const
-
inline const EncoderInterface &operator()(const std::size_t i) const
-
inline const EncoderInterface &get(const std::size_t i) const
Public Types
-
using Ptr = std::shared_ptr<EncoderListInterface>
-
using CPtr = std::shared_ptr<const EncoderListInterface>
-
using value_type = EncoderInterface
-
using iterator = RangeIterator<EncoderListInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~EncoderListInterface() = default
-
virtual std::size_t size() const = 0
Number of samples in the list.
Protected Functions
-
virtual const EncoderInterface &getItemImpl(const std::size_t idx) const = 0¶
Actual implementation to get measurement idx.
-
inline const EncoderInterface &operator[](const std::size_t i) const
-
class ErrorCodeInterface : public ObjectInterface
- #include <objects.hpp>
Interface to transfer error codes.
Public Types
-
using Ptr = std::shared_ptr<ErrorCodeInterface>
-
using CPtr = std::shared_ptr<const ErrorCodeInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~ErrorCodeInterface() = default
-
virtual std::error_code getValue() const = 0
-
using Ptr = std::shared_ptr<ErrorCodeInterface>
-
class FrameSyncInterface : public ObjectInterface
- #include <objects.hpp>
Frame sync token object. Received at the beginning of new frame.
Public Types
-
using Ptr = std::shared_ptr<FrameSyncInterface>
-
using CPtr = std::shared_ptr<const FrameSyncInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~FrameSyncInterface() = default
-
using Ptr = std::shared_ptr<FrameSyncInterface>
-
class ImageInterface : public ObjectInterface, public virtual MeasurementPointInterface<camera_clock>
- #include <objects.hpp>
Representing a single video frame.
Public Types
-
using Ptr = std::shared_ptr<ImageInterface>
-
using CPtr = std::shared_ptr<const ImageInterface>
-
using MeasurementPointT = MeasurementPointInterface<camera_clock>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~ImageInterface() = default
-
virtual ImageFormat getFormat() const = 0
Get the internal image data format.
-
virtual std::size_t getWidth() const = 0
Get image width in pixels.
-
virtual std::size_t getHeight() const = 0
Get image height in pixels.
-
virtual std::size_t getPitch() const = 0
Get image line stride in bytes.
-
virtual std::size_t getBytesPerPixel() const = 0
Bytes per pixel.
-
virtual std::size_t getBufferSize() const = 0
Get image total buffer size in bytes.
-
inline virtual camera_duration getExposureTime() const
[OPTIONAL] Get image exposure time.
-
inline virtual float getGain() const
[OPTIONAL] Get image gain.
-
inline virtual bool getAutoExposureEnabled() const
[OPTIONAL] Get image auto-exposure state.
-
inline virtual float getLaserPower() const
[OPTIONAL] Get IR laser projector state at the time of capture.
-
virtual bool isValid() const = 0
Check if the image contains valid data.
-
virtual const uint8_t *getData() const = 0
Returns the internal buffer with image data.
-
using Ptr = std::shared_ptr<ImageInterface>
-
class IMUListInterface : public ObjectInterface
- #include <objects.hpp>
Representing a list of IMU sensor measurements.
Convenient access to measurement @a i.
-
inline const IMUSensorDataInterface &operator[](const std::size_t i) const
-
inline const IMUSensorDataInterface &operator()(const std::size_t i) const
-
inline const IMUSensorDataInterface &get(const std::size_t i) const
Public Types
-
using Ptr = std::shared_ptr<IMUListInterface>
-
using CPtr = std::shared_ptr<const IMUListInterface>
-
using value_type = IMUSensorDataInterface
-
using iterator = RangeIterator<IMUListInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~IMUListInterface() = default
-
virtual std::size_t size() const = 0
Number of samples in the list.
Protected Functions
-
virtual const IMUSensorDataInterface &getItemImpl(const std::size_t idx) const = 0¶
Actual implementation to get measurement idx.
-
inline const IMUSensorDataInterface &operator[](const std::size_t i) const
-
class IMUSensorDataInterface : public ObjectInterface, public virtual MeasurementPointInterface<imu_clock>
- #include <objects.hpp>
Representing a single accelerometer/gyroscope/magnetometer measurement.
Public Types
-
using Ptr = std::shared_ptr<IMUSensorDataInterface>
-
using CPtr = std::shared_ptr<const IMUSensorDataInterface>
-
using MeasurementPointT = MeasurementPointInterface<imu_clock>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~IMUSensorDataInterface() = default
-
inline virtual ScalarT getTemperature() const
[OPTIONAL] Get temperature.
-
virtual const VectorInterface &getMeasurement() const = 0
Returns the 3-element vector with the measurements [m/s^2] / [rad/s] / [Gauss].
-
using Ptr = std::shared_ptr<IMUSensorDataInterface>
-
class IMUTripletInterface : public ObjectInterface
- #include <objects.hpp>
Representing an IMU measurement triplet.
Public Types
-
using Ptr = std::shared_ptr<IMUTripletInterface>
-
using CPtr = std::shared_ptr<const IMUTripletInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~IMUTripletInterface() = default
-
inline virtual bool haveAccelerometer() const
If we provide accelerometer data in this sample.
-
virtual const IMUSensorDataInterface &getAccelerometerData() const = 0
Returns the acceleration measurement.
-
inline virtual bool haveGyroscope() const
If we provide gyroscope data in this sample.
-
virtual const IMUSensorDataInterface &getGyroscopeData() const = 0
Returns the rate of rotation measurement.
-
inline virtual bool haveMagnetometer() const
If we provide magnetometer data in this sample.
-
virtual const IMUSensorDataInterface &getMagnetometerData() const = 0
Returns the rate of rotation measurement.
-
using Ptr = std::shared_ptr<IMUTripletInterface>
-
class IMUTripletListInterface : public ObjectInterface
- #include <objects.hpp>
Representing a list of IMU triplet measurements.
Convenient access to measurement @a i.
-
inline const IMUTripletInterface &operator[](const std::size_t i) const
-
inline const IMUTripletInterface &operator()(const std::size_t i) const
-
inline const IMUTripletInterface &get(const std::size_t i) const
Public Types
-
using Ptr = std::shared_ptr<IMUTripletListInterface>
-
using CPtr = std::shared_ptr<const IMUTripletListInterface>
-
using value_type = IMUTripletInterface
-
using iterator = RangeIterator<IMUTripletListInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~IMUTripletListInterface() = default
-
virtual std::size_t size() const = 0
Number of samples in the list.
Protected Functions
-
virtual const IMUTripletInterface &getItemImpl(const std::size_t idx) const = 0¶
Actual implementation to get measurement idx.
-
inline const IMUTripletInterface &operator[](const std::size_t i) const
-
class LandmarkInterface : public ObjectInterface
- #include <objects.hpp>
Representing a single landmark.
Public Types
-
using Ptr = std::shared_ptr<LandmarkInterface>
-
using CPtr = std::shared_ptr<const LandmarkInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~LandmarkInterface() = default
-
virtual MultiSessionID getID() const = 0
Landmark unique ID.
-
virtual const VectorInterface &getPosition() const = 0
3-element position vector of the Landmark.
-
inline virtual bool isGlobal() const
If the landmark is local or global.
-
using Ptr = std::shared_ptr<LandmarkInterface>
-
class Map2DInterface : public ObjectInterface, public virtual MeasurementPointInterface<camera_clock>
- #include <objects.hpp>
Interface to a 2D map.
Public Types
-
using Ptr = std::shared_ptr<Map2DInterface>
-
using CPtr = std::shared_ptr<const Map2DInterface>
-
using MeasurementPointT = MeasurementPointInterface<camera_clock>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~Map2DInterface() = default
-
virtual bool hasChannel(MapChannelType channel) const = 0
Return whether this map has a channel of the given type.
-
virtual bool hasChannel(MapChannelType channel, size_t group) const = 0
Return whether this map has a channel of the given type, of the given group.
-
virtual const MapChannel2DInterface &getChannel(MapChannelType channel) const = 0
Return the channel of the given type, of the group with the highest index.
Note
Throws std::out_of_range if the channel does not exist.
-
virtual const MapChannel2DInterface &getChannel(MapChannelType channel, size_t group) const = 0
Return the channel of the given type, of the given group.
Note
Throws std::out_of_range if the channel does not exist.
-
virtual size_t numGroups() const = 0
Returns the number of groups in the map.
-
virtual size_t numChannels() const = 0
Returns the number of channels in the map
-
virtual size_t numChannels(size_t group) const = 0
Returns the number of channels in the given group.
-
virtual ScalarT getCellSize() const = 0
Map cell size in metres.
-
virtual std::size_t getWidth() const = 0
Number of cells in the horizontal dimension.
-
virtual std::size_t getHeight() const = 0
Number of cells in the vertical dimension.
-
virtual const VectorInterface &getBoundsMin() const = 0
Min 2D coordinates of the map bounds, in metres.
The map bounds in metres define the rectangular area of 2D space covered by the [0,0]x[w,h] rectangle of integer cell coordinates.
The max 2D coordinates of the map bounds in metres are unambiguously determined as: max_x = min_x + resolution * width max_y = min_y + resolution * height
-
virtual IDT getMapId() const = 0
Map identifier for sub-mapped or tiled implementations.
-
using Ptr = std::shared_ptr<Map2DInterface>
-
class MapChannel2DInterface : public ObjectInterface
- #include <objects.hpp>
Interface to a 2D map channel.
Public Types
-
using Ptr = std::shared_ptr<MapChannel2DInterface>
-
using CPtr = std::shared_ptr<const MapChannel2DInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~MapChannel2DInterface() = default
-
virtual MapChannelType getType() const = 0
Type of channel.
-
virtual ImageFormat getFormat() const = 0
Data format.
-
virtual std::size_t getWidth() const = 0
Number of cells in the horizontal dimension.
-
virtual std::size_t getHeight() const = 0
Number of cells in the vertical dimension.
-
virtual std::size_t getPitch() const = 0
Data row stride in bytes.
-
virtual std::size_t getBytesPerPixel() const = 0
Bytes per pixel.
-
virtual std::size_t getBufferSize() const = 0
Total buffer size in bytes.
-
virtual bool isValid() const = 0
Check if the map channel contains valid data.
-
virtual const uint8_t *getData() const = 0
Internal data buffer.
-
virtual ScalarT getValueMin() const = 0
Minimum valid value. Smaller values should be treated as unknown.
-
virtual ScalarT getValueMax() const = 0
Maximum valid value. Greater values should be treated as unknown.
-
using Ptr = std::shared_ptr<MapChannel2DInterface>
-
class Matrix : public MatrixInterface
- #include <objects.hpp>
Simple matrix to adapt std::vector to MatrixInterface.
Public Functions
-
Matrix()
-
virtual ~Matrix() = default
-
Matrix(const Matrix &other) = default
-
Matrix(Matrix &&other) = default
-
Matrix(const MatrixInterface &other)
-
virtual std::size_t rows() const final override
Number of rows in the matrix.
-
virtual std::size_t cols() const final override
Number of columns in the matrix.
-
virtual std::size_t size() const final override
Total number of elements in the matrix.
Private Functions
-
Matrix()
-
class MatrixInterface : public ObjectInterface
- #include <objects.hpp>
Representing the matrix object.
Subclassed by Matrix
Convenient access to the element.
Public Types
-
using Ptr = std::shared_ptr<MatrixInterface>
-
using CPtr = std::shared_ptr<const MatrixInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~MatrixInterface() = default
-
virtual std::size_t rows() const = 0
Number of rows in the matrix.
-
virtual std::size_t cols() const = 0
Number of columns in the matrix.
-
virtual std::size_t size() const = 0
Total number of elements in the matrix.
-
using Ptr = std::shared_ptr<MatrixInterface>
-
template<typename ClockT>
class MeasurementPointInterface - #include <objects.hpp>
Common interface for measurement data (e.g. images or IMU samples).
Subclassed by PoseInterface< ClockT >, VelocityInterface< ClockT >
Public Types
-
using clock_t = ClockT
-
using time_point = typename ClockT::time_point
-
using duration = typename ClockT::duration
-
using host_time_point = host_clock::time_point
Public Functions
-
virtual ~MeasurementPointInterface() = default
-
inline virtual IDT getID() const
[OPTIONAL] Measurement ID, can be just sample counter.
-
inline virtual SensorIDT getSensorID() const
[OPTIONAL] ID of the measurement source, for example sensor number.
-
inline virtual time_point getHWTimestamp() const
[OPTIONAL] Get the measurement acquisition timestamp (sensor HW clock).
-
inline virtual host_time_point getAcquisitionTimestamp() const
[OPTIONAL] Get the measurement acquisition timestamp (remote OS clock).
-
inline virtual host_time_point getSourceAcquisitionTimestamp() const
Get the acquisition timestamp of this measurement
-
virtual const ReferenceFrameInterface &getReferenceFrame() const = 0
Get the reference frame of a sample.
-
using clock_t = ClockT
-
class MetaDataInterface : public ObjectInterface
- #include <objects.hpp>
Representing metadata.
Metadata value getters.
-
template<typename T>
inline std::error_code getValue(T &val, typename std::enable_if<std::is_integral<T>::value, T>::type* = 0) const
-
template<typename T>
inline std::error_code getValue(T &val, typename std::enable_if<std::is_enum<T>::value, T>::type* = 0) const
Public Types
-
enum ValueType
Values:
-
enumerator Integer
-
enumerator Floating
-
enumerator String
-
enumerator Count
-
enumerator Integer
-
using Ptr = std::shared_ptr<MetaDataInterface>
-
using CPtr = std::shared_ptr<const MetaDataInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual MetaDataID getID() const = 0
Get MetaData ID
-
virtual ValueType getValueType() const = 0
Type of the value we store.
-
inline virtual std::size_t getIndex() const
[OPTIONAL] Get index value.
-
template<typename T>
-
class MultiFrameInterface : public ObjectInterface
- #include <objects.hpp>
Representing a set of video frames.
Convenient access to frame @a i.
-
inline const ImageInterface &operator[](const std::size_t i) const
-
inline const ImageInterface &operator()(const std::size_t i) const
-
inline const ImageInterface &get(const std::size_t i) const
Public Types
-
using Ptr = std::shared_ptr<MultiFrameInterface>
-
using CPtr = std::shared_ptr<const MultiFrameInterface>
-
using value_type = ImageInterface
-
using iterator = RangeIterator<MultiFrameInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~MultiFrameInterface() = default
-
inline virtual bool isKeyFrame() const
Indicates if this MultiFrame is a key frame in our map.
-
virtual std::size_t size() const = 0
Number of frames in the MultiFrame.
Protected Functions
-
virtual const ImageInterface &getFrameImpl(const std::size_t idx) const = 0¶
Actual implementation to return idx frame.
-
inline const ImageInterface &operator[](const std::size_t i) const
-
class ObjectInterface
- #include <objects.hpp>
Common interface for all the objects - enables runtime polymorphism.
Subclassed by PoseInterface< odometry_clock >, EncoderInterface, EncoderListInterface, ErrorCodeInterface, FrameSyncInterface, ImageInterface, IMUListInterface, IMUSensorDataInterface, IMUTripletInterface, IMUTripletListInterface, LandmarkInterface, Map2DInterface, MapChannel2DInterface, MatrixInterface, MetaDataInterface, MultiFrameInterface, PointCloudInterface, PoseInterface< ClockT >, PoseListInterface< ClockT >, SparseMapInterface, TaskStatusInterface, TrackingStatusListInterface, VectorInterface, VelocityInterface< ClockT >
Public Types
-
using Ptr = std::shared_ptr<ObjectInterface>
-
using CPtr = std::shared_ptr<const ObjectInterface>
Public Functions
-
virtual ~ObjectInterface() = default
-
inline virtual ObjectType type() const
Type of the object.
Protected Functions
-
inline ObjectInterface()¶
-
using Ptr = std::shared_ptr<ObjectInterface>
-
class PointCloudInterface : public ObjectInterface, public virtual MeasurementPointInterface<camera_clock>
- #include <objects.hpp>
Interface to point cloud data. A point cloud is a linear list of 3D points. The reference coordinate frame of the point cloud is specified via the measurement point interface
getReferenceFrame()
.Public Types
-
using Ptr = std::shared_ptr<PointCloudInterface>
-
using CPtr = std::shared_ptr<const PointCloudInterface>
-
using MeasurementPointT = MeasurementPointInterface<camera_clock>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~PointCloudInterface() = default
- inline struct __attribute__ ((__packed__)) Point
-
virtual std::size_t size() const = 0
Returns the number of points in the point cloud.
-
virtual const Point *positions() const = 0
Read-only access to the list of point xyz coordinates.
-
using Ptr = std::shared_ptr<PointCloudInterface>
-
template<typename ClockT>
class PoseInterface : public ObjectInterface, public virtual slamcore::MeasurementPointInterface<ClockT> - #include <objects.hpp>
Representing the 3D pose.
Note
Covariance information is not supported yet.
Subclassed by PoseWriteInterface< ClockT >
Public Types
-
using Ptr = std::shared_ptr<PoseInterface>
-
using CPtr = std::shared_ptr<const PoseInterface>
-
using MeasurementPointT = MeasurementPointInterface<ClockT>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~PoseInterface() = default
-
virtual const VectorInterface &getRotation() const = 0
Returns the rotation part - Quaternion X,Y,Z,W.
-
virtual const VectorInterface &getTranslation() const = 0
Returns the translation vector part.
-
virtual bool haveCovarianceMatrix() const = 0
Check first if the covariance matrix is provided.
-
virtual const MatrixInterface &getCovariance() const = 0
Returns the covariance matrix - pose uncertainty.
-
virtual const ReferenceFrameInterface &getChildReferenceFrame() const = 0
Returns the frame of reference the pose defines
-
using Ptr = std::shared_ptr<PoseInterface>
-
template<typename ClockT>
class PoseListInterface : public ObjectInterface - #include <objects.hpp>
Representing the trajectory (list of poses).
Unnamed Group
-
inline const value_type &operator[](const std::size_t i) const
Convenient access to pose i.
-
inline const value_type &operator()(const std::size_t i) const
-
inline const value_type &get(const std::size_t i) const
Public Types
-
using Ptr = std::shared_ptr<PoseListInterface>
-
using CPtr = std::shared_ptr<const PoseListInterface>
-
using value_type = PoseInterface<ClockT>
-
using iterator = RangeIterator<PoseListInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual std::size_t size() const = 0
Number of poses in the poselist.
-
inline virtual IDT getSourceID() const
List type/source.
Protected Functions
-
virtual const value_type &getPoseImpl(const std::size_t idx) const = 0¶
Actual implementation to get pose idx.
-
inline const value_type &operator[](const std::size_t i) const
-
template<typename ClockT>
class PoseWriteInterface : public slamcore::PoseInterface<ClockT> - #include <objects.hpp>
Representing the writable matrix object.
Public Types
-
using Ptr = std::shared_ptr<PoseWriteInterface>
-
using CPtr = std::shared_ptr<const PoseWriteInterface>
Public Functions
-
virtual ~PoseWriteInterface() = default
-
virtual void setRotation(const VectorInterface &quat) const = 0
Sets the rotation part - Quaternion X,Y,Z,W.
-
virtual void setTranslation(const VectorInterface &tran) const = 0
Sets the translation vector part.
-
virtual void setCovariance(const MatrixInterface &cov) const = 0
Sets the covariance matrix - pose uncertainty.
-
using Ptr = std::shared_ptr<PoseWriteInterface>
-
class SparseMapInterface : public ObjectInterface, public virtual MeasurementPointInterface<camera_clock>
- #include <objects.hpp>
Representing the whole sparse map.
Convenient access to landmark @a i.
-
inline const LandmarkInterface &operator[](const std::size_t i) const
-
inline const LandmarkInterface &operator()(const std::size_t i) const
-
inline const LandmarkInterface &get(const std::size_t i) const
Public Types
-
enum MapType
Values:
-
enumerator Active
-
enumerator Global
-
enumerator Count
-
enumerator Active
-
using Ptr = std::shared_ptr<SparseMapInterface>
-
using CPtr = std::shared_ptr<const SparseMapInterface>
-
using value_type = LandmarkInterface
-
using iterator = RangeIterator<SparseMapInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~SparseMapInterface() = default
-
virtual std::size_t size() const = 0
Number of landmarks in the map.
-
inline virtual MapType getMapType() const
Map type.
Protected Functions
-
virtual const LandmarkInterface &getLandmarkImpl(const std::size_t idx) const = 0¶
Actual implementation to get landmark idx.
-
inline const LandmarkInterface &operator[](const std::size_t i) const
-
class TaskStatusInterface : public ObjectInterface
- #include <objects.hpp>
Task status object.
Public Types
-
enum TaskState
Values:
-
enumerator Idle
-
enumerator Progress
-
enumerator Success
-
enumerator Cancelled
-
enumerator Error
-
enumerator Count
-
enumerator Idle
-
using Ptr = std::shared_ptr<TaskStatusInterface>
-
using CPtr = std::shared_ptr<const TaskStatusInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~TaskStatusInterface() = default
-
virtual TaskType getType() const = 0
Return the type associated with this task.
-
virtual IDT getID() const = 0
Return the unique identifier among tasks of the same type.
-
virtual TaskState getState() const = 0
Return the current state of this task.
-
virtual std::error_code getError() const = 0
Return task error, if any.
Note
If the task has been cancelled,
std::errc::operation_canceled
is returned.
-
enum TaskState
-
class TrackingStatusListInterface : public ObjectInterface
- #include <objects.hpp>
Tracking Status List Interface.
Public Types
-
using Ptr = std::shared_ptr<std::vector<TrackingStatus>>
-
using CPtr = std::shared_ptr<const std::vector<TrackingStatus>>
-
using value_type = TrackingStatus
-
using iterator = RangeIterator<TrackingStatusListInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~TrackingStatusListInterface() = default
-
virtual std::size_t size() const = 0
Returns the number of Tracking Status.
-
inline const value_type &operator[](std::size_t i) const
Convenient access to Tracking Status at index i.
-
inline const value_type &operator()(std::size_t i) const
-
inline const value_type &get(std::size_t i) const
-
inline iterator begin() const
For range for loops.
-
inline iterator end() const
-
virtual const value_type *data() const = 0
Read-only access to the underlying array of Tracking Status.
Protected Functions
-
virtual const value_type &getImpl(std::size_t i) const = 0¶
Implementation to get Tracking Status at index i.
-
using Ptr = std::shared_ptr<std::vector<TrackingStatus>>
-
class Vector : public VectorInterface
- #include <objects.hpp>
Simple vector to adapt std::vector to VectorInterface.
Public Functions
-
Vector() = default
-
virtual ~Vector() = default
-
Vector(const Vector &other) = default
-
Vector(Vector &&other) = default
-
Vector(const ScalarT x)
-
Vector(const VectorInterface &other)
-
virtual std::size_t size() const final override
Number of components.
Private Functions
-
Vector() = default
-
class VectorInterface : public ObjectInterface
- #include <objects.hpp>
Representing the vector object.
Subclassed by Vector
Coordinate aliases
Getter methods for the common coordinates.
-
inline const ScalarT &x() const
-
inline const ScalarT &y() const
-
inline const ScalarT &z() const
-
inline const ScalarT &w() const
Coordinate access operators
Public Types
-
using Ptr = std::shared_ptr<VectorInterface>
-
using CPtr = std::shared_ptr<const VectorInterface>
-
using value_type = ScalarT
-
using iterator = RangeIterator<VectorInterface>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~VectorInterface() = default
-
virtual std::size_t size() const = 0
Number of components.
-
inline const ScalarT &x() const
-
template<typename ClockT>
class VelocityInterface : public ObjectInterface, public virtual slamcore::MeasurementPointInterface<ClockT> - #include <objects.hpp>
Representing the velocities.
Public Types
-
using Ptr = std::shared_ptr<VelocityInterface>
-
using CPtr = std::shared_ptr<const VelocityInterface>
-
using MeasurementPointT = MeasurementPointInterface<ClockT>
Public Functions
-
inline virtual ObjectType type() const
Type of the object.
-
virtual ~VelocityInterface() = default
-
virtual const VectorInterface &getLinear() const = 0
Returns 3-element vector for the velocities.
-
virtual const VectorInterface &getAngular() const = 0
Returns 3-element vector for the velocities.
-
virtual bool haveCovarianceMatrix() const = 0
Check first if the covariance matrix is provided.
-
virtual const MatrixInterface &getCovariance() const = 0
Returns the covariance matrix - velocities uncertainty (6x6).
-
using Ptr = std::shared_ptr<VelocityInterface>
-
class WheelOdometrySample : public PoseInterface<odometry_clock>
- #include <objects.hpp>
Simple class for feeding wheel odometry data.
Unnamed Group
-
virtual IDT getID() const final override
[OPTIONAL] Measurement ID, can be just sample counter.
-
void setID(const IDT id)
Unnamed Group
-
virtual time_point getHWTimestamp() const final override
[OPTIONAL] Get the measurement acquisition timestamp (sensor HW clock).
Unnamed Group
-
virtual host_time_point getSourceAcquisitionTimestamp() const final override
Get the acquisition timestamp of this measurement
-
void setSourceAcquisitionTimestamp(const host_time_point t)
Public Functions
-
WheelOdometrySample()
-
virtual ~WheelOdometrySample()
-
WheelOdometrySample(const WheelOdometrySample &other) = default
-
WheelOdometrySample(WheelOdometrySample &&other) = default
-
WheelOdometrySample &operator=(const WheelOdometrySample &other) = default
-
WheelOdometrySample &operator=(WheelOdometrySample &&other) = default
-
WheelOdometrySample(const PoseInterface<odometry_clock> &other)
-
virtual SensorIDT getSensorID() const final override
[OPTIONAL] ID of the measurement source, for example sensor number.
-
virtual host_time_point getAcquisitionTimestamp() const final override
[OPTIONAL] Get the measurement acquisition timestamp (remote OS clock).
-
virtual const ReferenceFrameInterface &getReferenceFrame() const final override
Get the reference frame of a sample.
-
virtual const VectorInterface &getRotation() const final override
Returns the rotation part - Quaternion X,Y,Z,W.
-
virtual const VectorInterface &getTranslation() const final override
Returns the translation vector part.
-
void setValue(const VectorInterface &t, const VectorInterface &r)
Sets the value.
- Parameters
t – Translation vector (X,Y,Z)
r – Rotation quaternion (X,Y,Z,W)
-
virtual bool haveCovarianceMatrix() const final override
Check first if the covariance matrix is provided.
-
virtual const MatrixInterface &getCovariance() const final override
Returns the covariance matrix - pose uncertainty.
-
virtual const ReferenceFrameInterface &getChildReferenceFrame() const final override
Returns the frame of reference the pose defines
-
virtual IDT getID() const final override
-
namespace internal¶
-
template<class Archive>