Conscience Core
Classes | Namespaces | Enumerations | Functions | Variables
CscMrptAutonomousExploration.cpp File Reference
#include "./CscMrptAutonomousExploration.h"
#include <Simulator/CscEnvironmentSimulator.h>
#include "../Lidar/CscSlamEngine.h"
#include "Bridging/EnvironmentInteractionCommands/environmentEntitiesCommands.h"
#include "CoreObjects/CscStringCommandsBuilder.h"
#include "Util/fs.h"
#include "Util/system.h"
#include <Bridging/EnvironmentInteractionCommands/CommandEntityFollowPath.h>
#include <Configuration/CscKeyDirectories.h>
#include <ArtificialIntelligence/CscEntityReflexion.h>
#include <SequenceProcessor/CscSequencesProcessor.h>
#include <ArtificialIntelligence/Algorithms/pathFinding.h>
#include <opencv2/opencv.hpp>
#include <mrpt/maps/COccupancyGridMap2D.h>
#include <mrpt/math/TPoint2D.h>
#include <mrpt/math/TPose2D.h>
#include <queue>
#include <unordered_map>
#include <vector>
#include <cmath>
#include <limits>
#include <algorithm>

Classes

struct  conscience_core::ai::MrptGrid
 
struct  conscience_core::ai::NodeHash
 

Namespaces

 conscience_core
 
 conscience_core::ai
 

Enumerations

enum  conscience_core::ai::PickFrontierMode { conscience_core::ai::PickFrontierMode_Closest, conscience_core::ai::PickFrontierMode_Furthest }
 

Functions

void conscience_core::ai::exportMapToText (const mrpt::maps::COccupancyGridMap2D *map, const std::string &filename="slam_map.txt")
 
MrptGrid conscience_core::ai::fromMap (const COccupancyGridMap2D &m)
 
bool conscience_core::ai::xy2ij (const MrptGrid &g, double x, double y, int &i, int &j)
 
void conscience_core::ai::ij2xy (const MrptGrid &g, int i, int j, double &x, double &y)
 
double conscience_core::ai::normAng (double a)
 
fs::path conscience_core::ai::generateOutPath (const std::string &filenameSuffix, const string &ext)
 
static pair< size_t, TPoint2D > conscience_core::ai::pickFrontier (const std::vector< TPoint2D > &fs, const TPose2D &robotPose)
 
static void conscience_core::ai::eraseFrontier (std::vector< TPoint2D > &fs, const TPoint2D &f)
 
static void conscience_core::ai::eraseFrontier (std::vector< TPoint2D > &fs, size_t idx)
 
void conscience_core::ai::clusterFrontiers (std::vector< TPoint2D > &frontiers, double maxDist)
 
void conscience_core::ai::filterCloseFrontiers (std::vector< TPoint2D > &frontiers, const TPose2D &pose, double minDist)
 
string conscience_core::ai::gridToJson (const Grid &grid)
 
vector< TPose2D > conscience_core::ai::planHybridAStar (const TPose2D &robotPose, const TPoint2D &targetPose, const COccupancyGridMap2D &map, CscSlamEngine *slamEngine, const CscPoint2d &robotDimensions)
 

Variables

unique_ptr< CscLoggerconscience_core::ai::logger = CscLogger::getForCategory("CscMrptAutonomousExploration")
 
const double conscience_core::ai::maxLinearSpeed = 0.4
 
const double conscience_core::ai::maxAngularSpeed = 0.8
 
const double conscience_core::ai::obstacleClearance = 0.05
 
const double conscience_core::ai::occThreshold = 0.22
 
const size_t conscience_core::ai::minFrontierSize = 3
 
const double conscience_core::ai::replanCooldownSeconds = 8
 
const size_t conscience_core::ai::noFrontiersStopThreshold = 40
 
const double conscience_core::ai::restoreExplorationMoveFactor = .35
 
constexpr int conscience_core::ai::pathFindingMarginCells = 0
 
constexpr bool conscience_core::ai::savePathFindingDebugFilesEnabled = false
 
constexpr bool conscience_core::ai::saveExplorationDebugFilesEnabled = false
 
constexpr PickFrontierMode conscience_core::ai::pickFrontierMode = PickFrontierMode_Closest
 
unsigned long long conscience_core::ai::last = 0