rpos::features::LocationProvider类
定位功能特征,包括了自动建图和定位的功能(亦即SLAM功能)。
头文件
rpos/features/location_provider.h
适用于
- Slamware
- Mapper
父类
构造器
/**
* 该构造器仅限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::Map getMap(rpos::features::location_provider::MapType,rpos::core::RectangleF, 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();