Conscience Core
Classes | Namespaces | Macros | Functions | Variables
CscSlamEngine.cpp File Reference
#include "Lidar/CscSlamEngine.h"
#include <mrpt/bayes/CParticleFilter.h>
#include <Simulator/CscEnvironmentSimulator.h>
#include <Axiomes/CscTimestamp.h>
#include <Lidar/CscLidarEngine.h>
#include <Util/geom.h>
#include <Util/json.h>
#include <fstream>
#include "CoreObjects/Exchange/Common/CscWorldElementsFactory.h"
#include "Util/system.h"
#include <Configuration/CscKeyDirectories.h>
#include <pcl/io/pcd_io.h>
#include <mrpt/config/CConfigFileMemory.h>
#include <mrpt/img/CImage.h>
#include <mrpt/maps/COccupancyGridMap2D.h>
#include <mrpt/obs/CActionCollection.h>
#include <mrpt/obs/CActionRobotMovement2D.h>
#include <mrpt/io/CFileGZOutputStream.h>
#include <mrpt/io/CFileGZInputStream.h>
#include <mrpt/serialization/archiveFrom_std_vector.h>
#include <mrpt/obs/CObservation2DRangeScan.h>
#include <mrpt/poses/CPose2D.h>
#include <mrpt/slam/CMetricMapBuilderRBPF.h>
#include <mrpt/slam/CMonteCarloLocalization2D.h>
#include <opencv2/opencv.hpp>

Classes

struct  conscience_core::lidar::LikelihoodMonitor
 

Namespaces

 conscience_core
 
 conscience_core::lidar
 
 conscience_core::lidar::directions
 

Macros

#define SAVE_SLAM_MAP_TO_PNG   0
 

Functions

ptr< CObservation2DRangeScan > conscience_core::lidar::lidarValuesToMrptObservation (const std::map< double, double > &scanDegreesCentimeters, double maxDistanceMeters=8.0)
 
CActionCollection::Ptr conscience_core::lidar::createOdometryActionFromDiff (const CPose2D &incr, bool isSimulatedEntity)
 
static std::string conscience_core::lidar::PFAlgorithmToString (CParticleFilter::TParticleFilterAlgorithm algo)
 
void conscience_core::lidar::resetSampling (size_t particlesCount, const ptr< COccupancyGridMap2D > &slamMap, CMonteCarloLocalization2D *slamLocalization, CscLogger *logger)
 
void conscience_core::lidar::injectRandomPosesPartial (mrpt::slam::CMonteCarloLocalization2D &pf, mrpt::maps::COccupancyGridMap2D &grid, const mrpt::bayes::CParticleFilter::TParticleFilterOptions &pfOpts, double percent)
 
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)
 
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)
 
string conscience_core::lidar::mrptPoseToJson (const TPose2D &pose)
 
string conscience_core::lidar::mrptPointToJson (const TPoint2D &point)
 
CscPoint2dOriented conscience_core::lidar::mrptPoseToCscPointOriented (const TPose2D &pose)
 
CscPoint2d conscience_core::lidar::mrptPointToCscPoint (const TPoint2D &point)
 
double conscience_core::lidar::directions::estimateFreeDistanceForLidarScan (double directionYawRads, const mrpt::obs::CObservation2DRangeScan &scan, double robotWidthMeters, double robotLengthMeters, double minClusterDistanceMeters, int minClusterSize, double maxDepthMeters)
 
optional< pair< int, double > > conscience_core::lidar::directions::getBestDirectionForScan (CObservation2DRangeScan *scan, const vector< CscAvailableDirection > &authorizedDirections, double robotWidth, double robotLength, map< int, double > *computedDirections)
 
void conscience_core::lidar::directions::saveScanWithBestDirectionAsPng (const mrpt::obs::CObservation2DRangeScan &scan, double bestYaw, const std::string &bestDirName, const fs::path &filename, double robotWidth, double robotLength)
 

Variables

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

Macro Definition Documentation

◆ SAVE_SLAM_MAP_TO_PNG

#define SAVE_SLAM_MAP_TO_PNG   0