20 class vtkStructuredGrid;
    27 #if defined(MRPT_IS_X86_AMD64)  // Pragma defined to ensure no structure    44 #if defined(MRPT_IS_X86_AMD64)    95         double x_min = -2, 
double x_max = 2, 
double y_min = -2,
    96         double y_max = 2, 
double z_min = -2, 
double z_max = 2,
    97         double voxel_size = 0.5, 
bool call_initialize_now = 
true);
   100     void clear() 
override;
   154         double new_x_min, 
double new_x_max, 
double new_y_min, 
double new_y_max,
   155         double new_z_min, 
double new_z_max,
   157         double additionalMarginMeters = 2.0) 
override;
   163         const double x_min, 
const double x_max, 
const double y_min,
   164         const double y_max, 
const double z_min, 
const double z_max,
   165         const double resolution_xy, 
const double resolution_z = -1.0,
   186             size_t icx, 
size_t icy, 
size_t icz,
   188             size_t jcx, 
size_t jcy, 
size_t jcz,
   191             double& out_edge_information) = 0;
   210         const double sensorReading,
   212         const double sensorVariance,
   220         const bool update_map);
   229         vtkStructuredGrid* output,
   272         void evalJacobian(
double& dr_dx_i, 
double& dr_dx_j) 
const override;
 void dumpToTextStream(std::ostream &out) const override
See utils::CLoadableOptions. 
 
bool GMRF_skip_variance
(Default:false) Skip the computation of the variance, just compute the mean 
 
Simple, scalar (1-dim) constraint (edge) for a GMRF. 
 
TObservationGMRF(CRandomFieldGridMap3D &parent)
 
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
 
mrpt::graphs::ScalarFactorGraph m_gmrf
 
The contents of each voxel in a CRandomFieldGridMap3D map. 
 
virtual bool getEdgeInformation(const CRandomFieldGridMap3D *parent, size_t icx, size_t icy, size_t icz, size_t jcx, size_t jcy, size_t jcz, double &out_edge_information)=0
Implement the check of whether node i=(icx,icy,icz) is connected with node j=(jcx,jcy,jcy). 
 
double GMRF_lambdaPrior
The information (Lambda) of fixed map constraints. 
 
void evalJacobian(double &dr_dx) const override
Returns the derivative of the residual wrt the node value. 
 
void internal_initialize(bool erase_prev_contents=true)
Internal: called called after each change of resolution, size, etc. 
 
double getInformation() const override
Return the inverse of the variance of this constraint. 
 
double evaluateResidual() const override
Return the residual/error of this observation. 
 
double getInformation() const override
Return the inverse of the variance of this constraint. 
 
virtual ~ConnectivityDescriptor()=default
 
void setVoxelsConnectivity(const ConnectivityDescriptor::Ptr &new_connectivity_descriptor)
Sets a custom object to define the connectivity between voxels. 
 
double evaluateResidual() const override
Return the residual/error of this observation. 
 
This class allows loading and storing values and vectors of different types from a configuration text...
 
double Lambda
"Information" of the observation (=inverse of the variance) 
 
A 3D rectangular grid of dynamic size which stores any kind of data at each voxel. 
 
void resize(double new_x_min, double new_x_max, double new_y_min, double new_y_max, double new_z_min, double new_z_max, const TRandomFieldVoxel &defaultValueNewvoxels, double additionalMarginMeters=2.0) override
Changes the size of the grid, maintaining previous contents. 
 
Versatile class for consistent logging and management of output messages. 
 
std::vector< std::deque< TObservationGMRF > > m_mrf_factors_activeObs
Vector with the active observations and their respective Information, for each map cell...
 
double Lambda
"Information" of the observation (=inverse of the variance) 
 
void clear() override
Erases all added observations and start again with an empty gridmap. 
 
CRandomFieldGridMap3D(double x_min=-2, double x_max=2, double y_min=-2, double y_max=2, double z_min=-2, double z_max=2, double voxel_size=0.5, bool call_initialize_now=true)
Constructor. 
 
ConnectivityDescriptor::Ptr m_gmrf_connectivity
Empty: default. 
 
GLsizei const GLchar ** string
 
double mean_value
Mean and sigma (standard deviation) estimated values for the voxel. 
 
TInsertionOptions()
Default values loader. 
 
double obsValue
Observation value. 
 
bool saveAsCSV(const std::string &filName_mean, const std::string &filName_stddev=std::string()) const
Save the current estimated mean values to a CSV file (compatible with Paraview) with fields x y z mea...
 
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
 
CRandomFieldGridMap3D represents a 3D regular grid where each voxel is associated one real-valued pro...
 
TVoxelInterpolationMethod
 
void getAsVtkStructuredGrid(vtkStructuredGrid *output, const std::string &label_mean=std::string("mean"), const std::string &label_stddev=std::string("stddev")) const
Returns the 3D grid contents as an VTK grid. 
 
bool saveAsVtkStructuredGrid(const std::string &fil) const
Save the current estimated grid to a VTK file (.vts) as a "structured grid". 
 
GLsizei GLsizei GLchar * source
 
The virtual base class which provides a unified interface for all persistent objects in MRPT...
 
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
See utils::CLoadableOptions. 
 
Parameters common to any derived class. 
 
CRandomFieldGridMap3D * m_parent
 
bool insertIndividualReading(const double sensorReading, const double sensorVariance, const mrpt::math::TPoint3D &point, const TVoxelInterpolationMethod method, const bool update_map)
Direct update of the map with a reading in a given position of the map. 
 
void updateMapEstimation()
Run the method-specific procedure required to ensure that the mean & variances are up-to-date with al...
 
Simple, scalar (1-dim) constraint (edge) for a GMRF. 
 
TPriorFactorGMRF(CRandomFieldGridMap3D &parent)
 
CRandomFieldGridMap3D * m_parent
 
void evalJacobian(double &dr_dx_i, double &dr_dx_j) const override
Returns the derivative of the residual wrt the node values. 
 
static bool ENABLE_GMRF_PROFILER
[default:false] Enables a profiler to show a performance report at application end. 
 
void setSize(const double x_min, const double x_max, const double y_min, const double y_max, const double z_min, const double z_max, const double resolution_xy, const double resolution_z=-1.0, const TRandomFieldVoxel *fill_value=nullptr) override
Changes the size of the grid, erasing previous contents.If resolution_z<0, the same resolution will b...
 
std::deque< TPriorFactorGMRF > m_mrf_factors_priors
Vector with the precomputed priors for each GMRF model. 
 
TInsertionOptions insertionOptions
 
Base class for user-supplied objects capable of describing voxels connectivity, used to build prior f...
 
TRandomFieldVoxel(double _mean_value=.0, double _stddev_value=.0)
Constructor. 
 
Sparse solver for GMRF (Gaussian Markov Random Fields) graphical models.