rpos::features::ArtifactProvider Class

Manipulates all artifacts objects like virtual walls, virtual tracks, maintenance areas, schedule areas, forbidden areas and point of interest.

The maximum number of artifacts objects is limited by the specifc SLAMWARE model. Commonly, on PRO edition SLAMWARE model, the maximum number of virtual walls is limited to 5000, for the rest of SLAMWARE models, this number is limited to 1000.

For all models, the max number of virtual tracks is limited to 10000.

The maximum artifacts limit can be changed based on customer needs, please contact SLAMTEC support for details.

Once the number of artifacts objects reaches the limits, an out_of_resource exception will be raised.

Header file

rpos/features/artifact_provider.h

Applies to

  • Slamware

Parent Class

rpos::core::Feature

Constructor

ArtifactProvider(boost::shared_ptr<detail::ArtifactProviderImpl>)

Used only by SDK itself

Enums

rpos::features::artifact_provider::ArtifactUsage

For details, please refer to rpos::features::artifact_provider::ArtifactUsage.

Methods

/**
* Retrieves all rectangle areas of specified usage stored in the current SLAMWARE system.
*/
std::vector <artifact_provider::RectangleArea> getRectangleAreas(artifact_provider::ArtifactUsage usage);

For details, please refer to artifact_provider::RectangleAreaartifact_provider::ArtifactUsage.

/**
* add rectangle area.
*/
bool addRectangleArea(artifact_provider::ArtifactUsage usage, const artifact_provider::RectangleArea& area);
/**
* add rectangle areas.
*/
bool addRectangleAreas(artifact_provider::ArtifactUsage usage, const std::vector<artifact_provider::RectangleArea>& areas);
/**
* erase rectangle areas.
*/
bool removeRectangleAreaByIds(artifact_provider::ArtifactUsage usage, const std::vector<core::SegmentID>& ids);
/**
* clear all rectangle areas of specified usage
*/
bool clearRectangleAreas(artifact_provider::ArtifactUsage usage);
/**
* Retrieves all the virtual walls and virtual tracks stored in the current SLAMWARE system.
*/
std::vector<core::Line> getLines(artifact_provider::ArtifactUsage usage);
/**
* Add on virtual track or virtual wall object.
*/
bool addLine(artifact_provider::ArtifactUsage usage, const core::Line& line);
/**
* Add one or more virtual track or virtual wall objects in batch.
*/
bool addLines(artifact_provider::ArtifactUsage usage, const std::vector<core::Line>& lines);
/**
* Remove specified virtual wall or virtual track based on the object id.
*/
bool removeLineById(artifact_provider::ArtifactUsage usage, rpos::core::SegmentID id);
/**
* Clear all virtual walls or virtual tracks specified by the usage parameter.
*/
bool clearLines(artifact_provider::ArtifactUsage usage);
/**
* Set artifact object (virtual wall or virtual track) specified by the line object with the same id to a new position.
*/
bool moveLine(artifact_provider::ArtifactUsage usage, const core::Line& line);
/**
* Set multiple artifact objects (virtual walls or virtual tracks) specified by the line objects with the same ids to new positions. 
*/
bool moveLines(artifact_provider::ArtifactUsage usage, const std::vector<core::Line>& lines);
/**
* Get all virtual wall objects stored in the SLAMWARE system.
*/
std::vector<rpos::core::Line> getWalls();
/**
* Add one virtual wall line.
*/
bool addWall(const rpos::core::Line&);
/**
* Add one or more virtual walls.
*/
bool addWalls(const std::vector<rpos::core::Line>&);
/**
* Remove the virtual wall object specified by the id.
*/
bool clearWallById(const rpos::core::SegmentID&);
/**
* Clear all virtual wall objects.
*/
bool clearWalls();
/*
* Get all map discrepancy monitor areas stored in the SLAMWARE system. 
*/
std::vector<core::RectangleF> getMapDiscrepancyMonitorAreas();
/**
* Add a map discrepancy monitor areas. 
*/
bool addMapDiscrepancyMonitorArea(const core::RectangleF& area);
/**
* Add one or more map discrepancy monitor areas. 
*/
bool addMapDiscrepancyMonitorAreas(const std::vector<core::RectangleF>& areas);
/**
* Remove map discrepancy monitor areas. 
*/
bool removeMapDiscrepancyMonitorAreas(const std::vector<core::RectangleF>& areas);
/**
* Clear all map discrepancy monitor areas stored in the SLAMWARE system. 
*/
bool clearMapDiscrepancyMonitorAreas();

Clear all rectangle areas of specified type.

/**
* Set all point of interest in map 
*/
bool setPOIs(const core::PoseEntryMap& pois);
/**
* Get all point of interest in map
*/
core::PoseEntryMap getPOIs()
/**
* Add a point of interest in map
*/
bool addPOI(const core::PoseEntry& poi)
/**
* Add point of interest in current robot pose
*/
core::PoseEntry addPOIOnCurrentPose(const std::string& name, const core::Metadata& metadata)
/**
* Query poi based on qoi name
*/
std::pair<std::string, core::PoseEntry> queryPOI(const std::string& name)
/**
* Erase poi based on name
*/
bool erasePOI(const std::string& name)
/**
* Clear all point of interest
*/
bool clearPOIs()