rpos::features::LocationProvider Class

Provides the localization and mapping (a.k.a SLAM) features of the SLAMWARE system.

Header File

rpos/features/location_provider.h

Applies to

  • Slamware
  • Mapper

Parent Class

rpos::core::Feature Class

Methods

/**
* Get all available map types.
*/
std::vector<rpos::features::location_provider::MapType> getAvailableMaps();

For details, please refer to rpos::features::location_provider::MapType.

/**
* Get the map data object with the specified map kind and areas.
*/
rpos::features::location_provider::Map getMap(
    rpos::features::location_provider::MapType,
    rpos::core::RectangleF,
    rpos::features::location_provider::MapKind
);

For details, please refer to rpos::features::location_provider::MapKind,rpos::features::location_provider::MapType, rpos::core::RectangleF and rpos::features::location_provider::Map.

/**
* Upload map data to the SLAMWARE system based on the map kind. 
*/
bool setMap(
    const rpos::features::location_provider::Map&,
    rpos::features::location_provider::MapType,
    rpos::features::location_provider::MapKind
);

For details, please refer to rpos::features::location_provider::Map, location_provider::MapType and location_provider::MapKind.

/**
* Upload map data along with the robot pose to the SLAMWARE system based on the map kind. 
*/
bool setMapAndPose(
    const core::Pose& pose,
    const location_provider::Map& map,
    const location_provider::MapType& type,
    const location_provider::MapKind& kind,
    bool partially
);

For details, please refer to core::Pose, location_provider::Map, location_provider::MapType and location_provider::MapKind.

/**
* Retrieve the explored(mapped) area of the current map. 
*/
rpos::core::RectangleF getKnownArea(
    rpos::features::location_provider::MapType,
    rpos::features::location_provider::MapKind
);

For details, please refer to rpos::core::RectangleF, rpos::location_provider::MapType and rpos::location_provider::MapKind.

/**
* Clear all map data inside the SLAMWARE system.
*/
bool clearMap();
/**
* Clear the specified map data inside the SLAMWARE system.
*/
bool clearMap(location_provider::MapKind kind);

For details, please refer to location_provider::MapKind.

/**
* Get the robot location calcuated by the SLAMWARE System.
*/
rpos::core::Location getLocation();

For details, please refer to rpos::core::Location.

/**
* Get the robot pose calcuated by the SLAMWARE System.
*/
rpos::core::Pose getPose();

For details, please refer to rpos::core::Pose.

/**
* Upload and set the robot pose to the SLAMWARE System.
*/
bool setPose(const rpos::core::Pose&);

For details, please refer to rpos::core::Pose.

/**
* Check whether the localization system is enabled in the SLAMWARE system.
* Deadreck data will be used once localization system is disabled.
*/
bool getMapLocalization();
/**
* Set the SLAMWARE system to enable or disable the localization system.
* Deadreck data will be used once localization system is disabled.
*/
bool setMapLocalization(bool);
/**
* Check wehther SLAMWARE system will perform map update to the specified map kind.
* SLAMWARE system enters localization enhanced mode once map update is disabled.
*/
bool getMapUpdate(
    rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP
);

For details, please refer to rpos::location_provider::MapKind.

/**
* Set whether SLAMWARE system will perform map update to the specified map kind.
* SLAMWARE system enters localization enhanced mode once map update is disabled.
*/
bool setMapUpdate(
    bool update,
    rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP
);

For details, please refer to rpos::location_provider::MapKind.

/**
* Get the localization quality indication value of the current pose.
*/
int getLocalizationQuality();
/** 
* Get the charging base (dock) pose base on the current explorer map.
*/
bool getHomePose(core::Pose&);

For details, please refer to core::Pose.

/**
* Set the charging base (dock) pose base on the current explorer map.
*/
bool setHomePose(core::Pose);

For details, please refer to core::Pose.

/**
* Get the Aux localization data (require external module support).
*/
location_provider::PointPDF getAuxLocation();
/**
* Get the Aux localization beacon status (require external module support).
*/
location_provider::AuxLocalizationStatus getAuxLocalizationStatus(
    location_provider::AuxLocalizationSource source
);
/**
* Get the imu data that represented in robot coordinate.
*/
bool getImuInRobotCoordinate(rpos::core::Imu&);

For details, please refer to rpos::core::Imu.