Conscience Core
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
conscience_core::lidar Namespace Reference

Namespaces

 directions
 

Classes

class  CscEntityPositionManager
 
class  CscLidar2DEngineSimulated
 
class  CscLidarEngine
 
class  CscLidarEngineRplidar
 
class  CscPlaceCartography
 
class  CscPointCloudMatcher
 
class  CscSlamEngine
 
struct  LidarValues
 
struct  LikelihoodMonitor
 
struct  OdometryData
 

Typedefs

typedef uint64_t CscLidarMode
 
typedef PointMatcher< float > PM
 
typedef PM::DataPoints DP
 
typedef PointMatcherIO< float > PMIO
 
typedef Eigen::MatrixXf Matrix
 

Enumerations

enum  CscEntityPositionSource { Entity = 0, LidarLocalization = 1, Simulator = 2, CoreInstruction = 3 }
 
enum  CscLidarModeList : CscLidarMode { cscLidarModePaused = 1ULL << 0, cscLocalisation = 1ULL << 2, cscSlam = 1ULL << 4 }
 
enum  CscSlamCellOccupancyStatus : uint8_t { CscSlamCellOccupancyStatus::SlamCellOccupancyStatus_Unknown, CscSlamCellOccupancyStatus::SlamCellOccupancyStatus_Free, CscSlamCellOccupancyStatus::SlamCellOccupancyStatus_Occupied }
 

Functions

void toSimulatorPoint (CscPoint3dOriented *point)
 
void convertOdometryDeltaToRobotReferenceFrame (double &deltaPositionX, double &deltaPositionY, double &deltaPositionZ, double deltaYaw, double previousYaw)
 
void * updateLidarValuesThreadActionLoop (void *argument)
 
bool checkRPLIDARHealth (RPlidarDriver *drv)
 
DP cscPointsToPMDataPoints (const vector< const CscPoint3d * > &points, bool XZTo2DOnly)
 
ptr< CObservation2DRangeScan > lidarValuesToMrptObservation (const std::map< double, double > &scanDegreesCentimeters, double maxDistanceMeters=8.0)
 
CActionCollection::Ptr createOdometryActionFromDiff (const CPose2D &incr, bool isSimulatedEntity)
 
static std::string PFAlgorithmToString (CParticleFilter::TParticleFilterAlgorithm algo)
 
void resetSampling (size_t particlesCount, const ptr< COccupancyGridMap2D > &slamMap, CMonteCarloLocalization2D *slamLocalization, CscLogger *logger)
 
void injectRandomPosesPartial (mrpt::slam::CMonteCarloLocalization2D &pf, mrpt::maps::COccupancyGridMap2D &grid, const mrpt::bayes::CParticleFilter::TParticleFilterOptions &pfOpts, double percent)
 
double scanMapConsistency_LL_per_ray (const std::shared_ptr< mrpt::maps::COccupancyGridMap2D > &grid, const std::shared_ptr< mrpt::obs::CObservation2DRangeScan > &scan, const mrpt::poses::CPose2D &robotPose)
 
bool hasNearbySupportedStructureDT (const std::vector< std::pair< int, int >> &clusterCells, const std::vector< uint8_t > &support, int W, int H, int maxShiftCells)
 
string mrptPoseToJson (const TPose2D &pose)
 
string mrptPointToJson (const TPoint2D &point)
 
CscPoint2dOriented mrptPoseToCscPointOriented (const TPose2D &pose)
 
CscPoint2d mrptPointToCscPoint (const TPoint2D &point)
 
double distancePoints (const TPoint2D &pointA, const TPoint2D &pointB)
 
double distancePoints (const TPose2D &poseA, const TPose2D &poseB)
 
CscPoint2d toMrptReferenceFrame (const CscPoint3d &point)
 

Variables

static const string cartographyPointsFilename = "allPoints.csv"
 
const string PLACE_TAG_FROM_CARTOGRAPHY = "FromCartography"
 
constexpr double mrptGridSideMeters = 16
 
constexpr double mrptGridResolution = 0.04
 
const string CARTOGRAPHY_STORAGE_CARTO_PREFIX = "carto__"
 
const string CARTOGRAPHY_STORAGE_DIRECTORY = string(CSC_DEFAULT_OUT_DIR) + "/CscSLAMCartographies"
 
static CParticleFilter::TParticleFilterAlgorithm PF_algorithm = CParticleFilter::pfAuxiliaryPFOptimal
 
const double localizationOccupancyThreshold = 0.25
 
static LikelihoodMonitor lkmon
 
long long perturbationCounter = -1
 

Typedef Documentation

◆ CscLidarMode

◆ DP

typedef PM::DataPoints conscience_core::lidar::DP

◆ Matrix

typedef Eigen::MatrixXf conscience_core::lidar::Matrix

◆ PM

typedef PointMatcher<float> conscience_core::lidar::PM

◆ PMIO

typedef PointMatcherIO<float> conscience_core::lidar::PMIO

Enumeration Type Documentation

◆ CscEntityPositionSource

Enumerator
Entity 

position was sent by entity and its localisation system

LidarLocalization 

position was evaluated by lidar localisation

Simulator 

position is coming from core's environment simulator

CoreInstruction 

a process requested this position to be applied

◆ CscLidarModeList

Enumerator
cscLidarModePaused 
cscLocalisation 
cscSlam 

new lidar mode which allows concurrent cartography and localisation

◆ CscSlamCellOccupancyStatus

Enumerator
SlamCellOccupancyStatus_Unknown 
SlamCellOccupancyStatus_Free 
SlamCellOccupancyStatus_Occupied 

Function Documentation

◆ checkRPLIDARHealth()

bool conscience_core::lidar::checkRPLIDARHealth ( RPlidarDriver *  drv)

◆ convertOdometryDeltaToRobotReferenceFrame()

void conscience_core::lidar::convertOdometryDeltaToRobotReferenceFrame ( double &  deltaPositionX,
double &  deltaPositionY,
double &  deltaPositionZ,
double  deltaYaw,
double  previousYaw 
)
inline

◆ createOdometryActionFromDiff()

CActionCollection::Ptr conscience_core::lidar::createOdometryActionFromDiff ( const CPose2D &  incr,
bool  isSimulatedEntity 
)

◆ cscPointsToPMDataPoints()

DP conscience_core::lidar::cscPointsToPMDataPoints ( const vector< const CscPoint3d * > &  points,
bool  XZTo2DOnly 
)

◆ distancePoints() [1/2]

double conscience_core::lidar::distancePoints ( const TPoint2D &  pointA,
const TPoint2D &  pointB 
)
inline

◆ distancePoints() [2/2]

double conscience_core::lidar::distancePoints ( const TPose2D &  poseA,
const TPose2D &  poseB 
)
inline

◆ hasNearbySupportedStructureDT()

bool conscience_core::lidar::hasNearbySupportedStructureDT ( const std::vector< std::pair< int, int >> &  clusterCells,
const std::vector< uint8_t > &  support,
int  W,
int  H,
int  maxShiftCells 
)

◆ injectRandomPosesPartial()

void conscience_core::lidar::injectRandomPosesPartial ( mrpt::slam::CMonteCarloLocalization2D &  pf,
mrpt::maps::COccupancyGridMap2D &  grid,
const mrpt::bayes::CParticleFilter::TParticleFilterOptions &  pfOpts,
double  percent 
)

◆ lidarValuesToMrptObservation()

ptr<CObservation2DRangeScan> conscience_core::lidar::lidarValuesToMrptObservation ( const std::map< double, double > &  scanDegreesCentimeters,
double  maxDistanceMeters = 8.0 
)

◆ mrptPointToCscPoint()

CscPoint2d conscience_core::lidar::mrptPointToCscPoint ( const TPoint2D &  point)

◆ mrptPointToJson()

string conscience_core::lidar::mrptPointToJson ( const TPoint2D &  point)

◆ mrptPoseToCscPointOriented()

CscPoint2dOriented conscience_core::lidar::mrptPoseToCscPointOriented ( const TPose2D &  pose)

◆ mrptPoseToJson()

string conscience_core::lidar::mrptPoseToJson ( const TPose2D &  pose)

◆ PFAlgorithmToString()

static std::string conscience_core::lidar::PFAlgorithmToString ( CParticleFilter::TParticleFilterAlgorithm  algo)
static

◆ resetSampling()

void conscience_core::lidar::resetSampling ( size_t  particlesCount,
const ptr< COccupancyGridMap2D > &  slamMap,
CMonteCarloLocalization2D *  slamLocalization,
CscLogger logger 
)

◆ scanMapConsistency_LL_per_ray()

double conscience_core::lidar::scanMapConsistency_LL_per_ray ( const std::shared_ptr< mrpt::maps::COccupancyGridMap2D > &  grid,
const std::shared_ptr< mrpt::obs::CObservation2DRangeScan > &  scan,
const mrpt::poses::CPose2D &  robotPose 
)

◆ toMrptReferenceFrame()

CscPoint2d conscience_core::lidar::toMrptReferenceFrame ( const CscPoint3d point)
inline

◆ toSimulatorPoint()

void conscience_core::lidar::toSimulatorPoint ( CscPoint3dOriented point)

This method is used to convert the euler with a standard euler format to the one used in the simulator

◆ updateLidarValuesThreadActionLoop()

void* conscience_core::lidar::updateLidarValuesThreadActionLoop ( void *  argument)

Variable Documentation

◆ CARTOGRAPHY_STORAGE_CARTO_PREFIX

const string conscience_core::lidar::CARTOGRAPHY_STORAGE_CARTO_PREFIX = "carto__"

◆ CARTOGRAPHY_STORAGE_DIRECTORY

const string conscience_core::lidar::CARTOGRAPHY_STORAGE_DIRECTORY = string(CSC_DEFAULT_OUT_DIR) + "/CscSLAMCartographies"

◆ cartographyPointsFilename

const string conscience_core::lidar::cartographyPointsFilename = "allPoints.csv"
static

◆ lkmon

LikelihoodMonitor conscience_core::lidar::lkmon
static

◆ localizationOccupancyThreshold

const double conscience_core::lidar::localizationOccupancyThreshold = 0.25

◆ mrptGridResolution

constexpr double conscience_core::lidar::mrptGridResolution = 0.04
constexpr

◆ mrptGridSideMeters

constexpr double conscience_core::lidar::mrptGridSideMeters = 16
constexpr

◆ perturbationCounter

long long conscience_core::lidar::perturbationCounter = -1

◆ PF_algorithm

CParticleFilter::TParticleFilterAlgorithm conscience_core::lidar::PF_algorithm = CParticleFilter::pfAuxiliaryPFOptimal
static

◆ PLACE_TAG_FROM_CARTOGRAPHY

const string conscience_core::lidar::PLACE_TAG_FROM_CARTOGRAPHY = "FromCartography"