2#include <base/Eigen.hpp>
3#include <maps/grid/TraversabilityMap3d.hpp>
4#include <boost/serialization/serialization.hpp>
27 double likelihoodConcrete,
28 double likelihoodGravel,
29 double likelihoodRocks)
33 if (likelihoodSand < 0 || likelihoodConcrete < 0 ||
34 likelihoodGravel < 0 || likelihoodRocks < 0) {
35 std::cerr <<
"Error: Negative likelihoods provided!\n";
39 double evidence = likelihoodSand *
probSand +
44 if (evidence <= 1e-9) {
45 std::cerr <<
"Error: Evidence is too small or zero.\n";
66 template<
class Archive>
67 void serialize(Archive& ar,
const unsigned int version) {
76typedef maps::grid::TraversabilityNode<SoilData>
SoilNode;
77typedef maps::grid::TraversabilityMap3d<SoilNode *>
SoilMap3d;
Definition SoilNode.hpp:9
maps::grid::TraversabilityMap3d< SoilNode * > SoilMap3d
Definition SoilNode.hpp:77
maps::grid::TraversabilityNode< SoilData > SoilNode
Definition SoilNode.hpp:76
const float PRIOR_PROB
Definition SoilNode.hpp:10
SoilType
Definition SoilSample.hpp:9
@ ROCKS
Definition SoilSample.hpp:12
@ SAND
Definition SoilSample.hpp:13
@ GRAVEL
Definition SoilSample.hpp:14
@ UNKNOWN_SOIL
Definition SoilSample.hpp:10
@ CONCRETE
Definition SoilSample.hpp:11
Definition SoilNode.hpp:14
void serialize(Archive &ar, const unsigned int version)
Definition SoilNode.hpp:67
double probGravel
Definition SoilNode.hpp:15
double probRocks
Definition SoilNode.hpp:15
bool updateProbabilities(double likelihoodSand, double likelihoodConcrete, double likelihoodGravel, double likelihoodRocks)
Definition SoilNode.hpp:26
SoilType soilType
Definition SoilNode.hpp:16
double probConcrete
Definition SoilNode.hpp:15
SoilData()
Definition SoilNode.hpp:18
double probSand
Definition SoilNode.hpp:15