rpos::features::ArtifactProvider类

器物功能特征,包括虚拟墙、虚拟轨道、运维区域、调度区域、禁行区域和兴趣点等功能。
相关器物部件都有最大的数量限制,其上限一般是由所采用的SLAMWARE系统决定的。比如高性能版本SLAMWARE对虚拟墙的上限在5000个,其他版本在1000。 虚拟轨道的上限一般是10000。 如果您需要更大的上限,可以和SLAMTEC的支持联系。当超过上限时,会抛出out_of_resource异常。

头文件

rpos/features/artifact_provider.h

适用于

  • Slamware

父类

继承自rpos::core::Feature

构造器

/**
* 该构造器仅限SDK内部使用。
*/

ArtifactProvider(boost::shared_ptr<detail::ArtifactProviderImpl>);
/**
* 拷贝构造函数。
*/
ArtifactProvider(const ArtifactProvider&);

运算符

/** 
* 赋值运算符。
*/
ArtifactProvider& operator=(const ArtifactProvider&);

方法

/**
* 获取系统中所有的某一类型矩形区域
*/
std::vector <artifact_provider::RectangleArea> getRectangleAreas(artifact_provider::ArtifactUsage usage);

相关类型说明:artifact_provider::RectangleAreaartifact_provider::ArtifactUsage

/**
* 添加矩形区域。
*/
bool addRectangleArea(artifact_provider::ArtifactUsage usage, const artifact_provider::RectangleArea& area);
/**
* 添加多个矩形区域。
*/
bool addRectangleAreas(artifact_provider::ArtifactUsage usage, const std::vector<artifact_provider::RectangleArea>& areas);
/**
* 移除指定的矩形区域。
*/
bool removeRectangleAreaByIds(artifact_provider::ArtifactUsage usage, const std::vector<core::SegmentID>& ids);
/**
* 清空某一类型的矩形区域。
*/
bool clearRectangleAreas(artifact_provider::ArtifactUsage usage);
/**
* 获取系统中所有的虚拟墙或者虚拟轨道。
*/
std::vector<core::Line> getLines(artifact_provider::ArtifactUsage usage);
/**
* 添加虚拟墙或者虚拟轨道。
*/
bool addLine(artifact_provider::ArtifactUsage usage, const core::Line& line);
/**
* 添加虚拟墙或者虚拟轨道。
*/
bool addLines(artifact_provider::ArtifactUsage usage, const std::vector<core::Line>& lines);
/**
* 移除指定的虚拟墙或者虚拟轨道。
*/
bool removeLineById(artifact_provider::ArtifactUsage usage, rpos::core::SegmentID id);
/**
* 清除所有的虚拟墙或者虚拟轨道。
*/
bool clearLines(artifact_provider::ArtifactUsage usage);
/**
* 移动虚拟墙或者虚拟轨道。
*/
bool moveLine(artifact_provider::ArtifactUsage usage, const core::Line& line);
/**
* 移动虚拟墙或者虚拟轨道。
*/
bool moveLines(artifact_provider::ArtifactUsage usage, const std::vector<core::Line>& lines);
/**
* 获取系统中所有的虚拟墙。
*/
std::vector<rpos::core::Line> getWalls();
/**
* 添加虚拟墙。
*/
bool addWall(const rpos::core::Line&);
/**
* 添加虚拟墙。
*/
bool addWalls(const std::vector<rpos::core::Line>&);
/**
* 清除指定的虚拟墙。
*/
bool clearWallById(const rpos::core::SegmentID&);
/**
* 清除所有的虚拟墙。
*/
bool clearWalls();
/**
* 获取系统中地图差异监控区域。
*/
std::vector<core::RectangleF> getMapDiscrepancyMonitorAreas();
/**
* 添加地图差异监控区域。
*/
bool addMapDiscrepancyMonitorArea(const core::RectangleF& area);
/**
* 添加地图差异监控区域。
*/
bool addMapDiscrepancyMonitorAreas(const std::vector<core::RectangleF>& areas);
/**
* 移除地图差异监控区域。
*/
bool removeMapDiscrepancyMonitorAreas(const std::vector<core::RectangleF>& areas);
/**
* 清除地图差异监控区域。
*/
bool clearMapDiscrepancyMonitorAreas();
/**
* 设置所有兴趣点。
*/
bool setPOIs(const core::PoseEntryMap& pois)
/**
* 获取所有兴趣点。
*/
core::PoseEntryMap getPOIs()
/**
* 添加兴趣点。
*/
bool addPOI(const core::PoseEntry& poi)
/**
* 在当前机器人位置添加兴趣点。
*/
core::PoseEntry addPOIOnCurrentPose(const std::string& name, const core::Metadata& metadata)
/**
* 根据名字查询兴趣点。
*/
std::pair<std::string, core::PoseEntry> queryPOI(const std::string& name)
/**
* 根据名字删除兴趣点。
*/
bool erasePOI(const std::string& name)
/**
* 清除所有兴趣点。
*/
bool clearPOIs()
/**
* 在建图模式下添加POI时,在闭环后通过该接口调整POI位姿。
*/
bool adjustPOIs()