rpos::features::LocationProvider类

定位功能特征,包括了自动建图和定位的功能(亦即SLAM功能)。

头文件

rpos/features/location_provider.h

适用于

  • Slamware
  • Mapper

父类

继承自rpos::core::Feature

构造器

/**
* 该构造器仅限SDK内部使用。
*/
LocationProvider(boost::shared_ptr<detail::LocationProviderImpl>);   
/**
* 拷贝构造函数。
*/
LocationProvider(const LocationProvider&);   

运算符

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

方法

/**
* 获得该定位功能特征提供的所有地图类型。
*/
std::vector< rpos::features::location_provider::MapType> getAvailableMaps();   

相关类型说明:rpos::features::location_provider::MapType

/**
* 获得该定位功能特征提供的指定地图类型指定区域的地图数据。
*/
rpos::features::location_provider::Map getMap(rpos::features::location_provider::MapType,rpos::core::RectangleF, rpos::features::location_provider::MapKind);   

相关类型说明:rpos::features::location_provider::MapKind

/**
* 上载指定地图类型指定区域的地图数据到该定位功能特征,返回是否成功。
*/
bool setMap(const rpos::features::location_provider::Map&,rpos::features::location_provider::MapType,rpos::features::location_provider::MapKind);   
/*
* 上载指定地图类型指定区域的地图数据和位姿到该定位功能特征,返回是否成功。
*/
bool setMapAndPose(const core::Pose& pose, const location_provider::Map& map, const location_provider::MapType& type, const location_provider::MapKind& kind, bool partially);   
/**
* 获得指定地图类型的地图中,已经完成建图的区域。
*/
rpos::core::RectangleF getKnownArea(rpos::features::location_provider::MapType, rpos::features::location_provider::MapKind);   
/**
* 清除地图数据。
*/ 
bool clearMap();   
/**
* 清除给定数据类型的地图数据。
*/ 
bool clearMap(location_provider::MapKind kind);   
/**
* 获得机器人在上述地图坐标系统中的坐标。
*/
rpos::core::Location getLocation();   
/**
* 获得机器人在上述地图坐标系统中的姿态。
*/ 
rpos::core::Pose getPose();   
/**
* 上载当前机器人的姿态到上述地图坐标系统中,返回是否成功。
*/ 
bool setPose(const rpos::core::Pose&);   
/**
* 获得机器人是否启用定位功能。
*/ 
bool getMapLocalization();   
/**
* 设置机器人是否启用定位功能。
*/ 
bool setMapLocalization(bool);   
/**
* 获取机器人指定地图类型的更新功能,默认地图类型为探索地图。
*/ 
bool getMapUpdate(rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP);   
/**
* 设置机器人指定类型的更新功能。
*/ 
bool setMapUpdate(bool update, rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP);   
/**
* 获取机器人定位质量。
*/
int getLocalizationQuality();   
/**
* 获取当前充电桩在地图中的位姿。
*/
bool getHomePose(core::Pose&);   
/**
* 设定当前充电桩的位姿。
*/
bool setHomePose(core::Pose);   
/**
* 获取辅助定位信标的定位位置(需要系统提供额外的传感器支持)。
*/
location_provider::PointPDF getAuxLocation();   
/** 
* 获取额外定位信标的状态。
*/
location_provider::AuxLocalizationStatus getAuxLocalizationStatus(location_provider::AuxLocalizationSource source);   
/**
* 获取imu在机体坐标系之中的值,返回是否成功。
*/
bool getImuInRobotCoordinate(rpos::core::Imu&);
/**
* 获取所有充电桩
*/
bool getHomeDocks(rpos::core::Imu&);
/**
* 获取所有充电桩
*/
std::vector<core::PoseEntry> getHomeDocks();
/**
* 设置所有充电桩
*/
bool setHomeDocks(const std::vector<core::PoseEntry>& docks); 
/**
* 根据机器人当前位姿注册充电桩
*/
core::PoseEntry registerHomeDock(const rpos::core::Metadata& metadata); 
/**
* 添加一个充电桩
* 如果添加了多个充电桩,需要通过setHomePose设置当前所用的充电桩。
*/
core::PoseEntry addHomeDock(const core::PoseEntry& dock); 
/**
* 修改充电桩信息
*/
bool editHomeDock(const core::PoseEntry& dock); 
/**
* 删除一个充电桩
*/
bool eraseHomeDock(const std::string& id); 
/**
* 清空所有充电桩
*/
bool clearHomeDocks(); 
/**
* 重置定位状态, 删除运行过程中记录的环境变化信息,恢复到上传地图时的状态。
*/
bool resetLocalizationStatus();