Conscience Core
Classes | Public Member Functions | Static Public Attributes | List of all members
conscience_core::lidar::CscSlamEngine Class Reference

#include <CscSlamEngine.h>

Classes

struct  MapToImageParams
 
struct  PhantomCluster
 
struct  PhantomClusterTracked
 

Public Member Functions

 CscSlamEngine (const string &entitySerialNumber, bool isSimulatedEntity, CscEntityPositionManager *positionManager, CscLidarEngine *lidarEngine)
 
 ~CscSlamEngine ()
 
void stop ()
 
void start (CscPoint3dOriented *initialPosition=nullptr)
 
const CscPoint3dgetRobotStartPosition () const
 
const CscQuaterniongetRobotStartOrientation () const
 
CscPoint3dOrientedgetRobotPose3d () const
 
fs::path saveCartography ()
 
bool loadCartography (const fs::path &cartographyDir)
 
bool loadLatestCartography ()
 
bool hasLoadedCartography ()
 
bool isStarted () const
 
bool isStartedAndReady () const
 
void consumeLidarValues ()
 
void forceLocalisationPosition (double xInMeters, double zInMeters, double headingInRad)
 
void saveMrptMapToPng (const string &filename, const MapToImageParams &params)
 
CscPoint3dtransformToWorld3dPosition (const TPoint2D &pointSlam2d) const
 
vector< CscPoint3d * > getMapAsWorldPoints (double threshold=defaultCellOccupiedThreshold) const
 
constexpr CscSlamCellOccupancyStatus getCellStatus (float cellValue, double occupiedThreshold=defaultCellOccupiedThreshold)
 
CscSlamCellOccupancyStatus getCellStatus (const COccupancyGridMap2D *map, int i, int j, double occupiedThreshold=defaultCellOccupiedThreshold)
 
void clearCartography ()
 
mrpt::math::TPose2D getRobotPose () const
 
ptr< CObservation2DRangeScan > getLidarScan () const
 
ptr< COccupancyGridMap2D > getSLAMMap () const
 

Static Public Attributes

static constexpr double defaultCellOccupiedThreshold = 0.14
 

Constructor & Destructor Documentation

◆ CscSlamEngine()

conscience_core::lidar::CscSlamEngine::CscSlamEngine ( const string &  entitySerialNumber,
bool  isSimulatedEntity,
CscEntityPositionManager positionManager,
CscLidarEngine lidarEngine 
)

◆ ~CscSlamEngine()

conscience_core::lidar::CscSlamEngine::~CscSlamEngine ( )

Member Function Documentation

◆ clearCartography()

void conscience_core::lidar::CscSlamEngine::clearCartography ( )

◆ consumeLidarValues()

void conscience_core::lidar::CscSlamEngine::consumeLidarValues ( )

◆ forceLocalisationPosition()

void conscience_core::lidar::CscSlamEngine::forceLocalisationPosition ( double  xInMeters,
double  zInMeters,
double  headingInRad 
)

◆ getCellStatus() [1/2]

CscSlamCellOccupancyStatus conscience_core::lidar::CscSlamEngine::getCellStatus ( const COccupancyGridMap2D *  map,
int  i,
int  j,
double  occupiedThreshold = defaultCellOccupiedThreshold 
)
inline

use this method to check if cell is occuped

Parameters
icell's coordinate horizontally (x axis) -> from left to right
jcell's coordinate vertically (y axis) -> from top to bottom
occupiedThresholddefaults to defaultCellOccupiedThreshold, max cell value for occupancy
mapoptional map on which get cell value, defaults to current slam map
Returns
cell's status

◆ getCellStatus() [2/2]

constexpr CscSlamCellOccupancyStatus conscience_core::lidar::CscSlamEngine::getCellStatus ( float  cellValue,
double  occupiedThreshold = defaultCellOccupiedThreshold 
)
inlineconstexpr

◆ getLidarScan()

ptr< CObservation2DRangeScan > conscience_core::lidar::CscSlamEngine::getLidarScan ( ) const

returns internal mrpt last lidar scan - DO NOT USE except for string optimization purpose

◆ getMapAsWorldPoints()

vector< CscPoint3d * > conscience_core::lidar::CscSlamEngine::getMapAsWorldPoints ( double  threshold = defaultCellOccupiedThreshold) const

◆ getRobotPose()

TPose2D conscience_core::lidar::CscSlamEngine::getRobotPose ( ) const

returns internal mrpt pose - DO NOT USE except for string optimization purpose

See also
CscSlamEngine::getRobotPose3d()

◆ getRobotPose3d()

CscPoint3dOriented * conscience_core::lidar::CscSlamEngine::getRobotPose3d ( ) const
Returns
entity pose in 3D, WARNING : only yaw (Y axis) is filled in rotation fields

◆ getRobotStartOrientation()

const CscQuaternion & conscience_core::lidar::CscSlamEngine::getRobotStartOrientation ( ) const

◆ getRobotStartPosition()

const CscPoint3d & conscience_core::lidar::CscSlamEngine::getRobotStartPosition ( ) const

◆ getSLAMMap()

ptr< COccupancyGridMap2D > conscience_core::lidar::CscSlamEngine::getSLAMMap ( ) const

returns internal mrpt map - DO NOT USE except for string optimization purpose

See also
CscSlamEngine::getMapAsWorldPoints()

◆ hasLoadedCartography()

bool conscience_core::lidar::CscSlamEngine::hasLoadedCartography ( )

◆ isStarted()

bool conscience_core::lidar::CscSlamEngine::isStarted ( ) const

◆ isStartedAndReady()

bool conscience_core::lidar::CscSlamEngine::isStartedAndReady ( ) const

◆ loadCartography()

bool conscience_core::lidar::CscSlamEngine::loadCartography ( const fs::path &  cartographyDir)

◆ loadLatestCartography()

bool conscience_core::lidar::CscSlamEngine::loadLatestCartography ( )

◆ saveCartography()

fs::path conscience_core::lidar::CscSlamEngine::saveCartography ( )

saves SLAM cartography in a dedicated and optimized format to a new subdirectory of CARTOGRAPHY_STORAGE_DIRECTORY

Returns
the path to the directory containing the cartography

◆ saveMrptMapToPng()

void conscience_core::lidar::CscSlamEngine::saveMrptMapToPng ( const string &  filename,
const MapToImageParams params 
)

◆ start()

void conscience_core::lidar::CscSlamEngine::start ( CscPoint3dOriented initialPosition = nullptr)

◆ stop()

void conscience_core::lidar::CscSlamEngine::stop ( )

◆ transformToWorld3dPosition()

CscPoint3d * conscience_core::lidar::CscSlamEngine::transformToWorld3dPosition ( const TPoint2D &  pointSlam2d) const

Member Data Documentation

◆ defaultCellOccupiedThreshold

constexpr double conscience_core::lidar::CscSlamEngine::defaultCellOccupiedThreshold = 0.14
staticconstexpr

The documentation for this class was generated from the following files: