ugv_nav4d
PathStatistic.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <traversability_generator3d/TravGenNode.hpp>
4 #include <traversability_generator3d/TraversabilityConfig.hpp>
5 #include <base/Pose.hpp>
6 
7 namespace ugv_nav4d
8 {
9 
14 {
15  const traversability_generator3d::TraversabilityConfig &config;
16 public:
17 
18  class Stats
19  {
20  size_t obstacles;
21  double minDistToObstacle;
22  size_t frontiers;
23 
26  std::vector<double> minDistance;
27  public:
28  Stats();
29 
30  size_t getNumObstacles() const
31  {
32  return obstacles;
33  };
34 
35  double getMinDistToObstacles() const;
36 
37  size_t getNumFrontiers() const
38  {
39  return frontiers;
40  };
41  double getMinDistToFrontiers() const;
42  void updateStatistic(const maps::grid::TraversabilityNodeBase* node);
43  void updateDistance(const maps::grid::TraversabilityNodeBase* node, double distance);
44  };
45 
46 protected:
51 public:
52 
53  PathStatistic(const traversability_generator3d::TraversabilityConfig &config);
54 
71  void calculateStatistics(const std::vector<const traversability_generator3d::TravGenNode*> &path, const std::vector<base::Pose2D> &poses,
72  const maps::grid::TraversabilityMap3d<traversability_generator3d::TravGenNode *> &trMap, const std::string &debugObstacleName = std::string());
73 
74  bool isPathFeasible(const std::vector<const traversability_generator3d::TravGenNode*> &path, const std::vector<base::Pose2D> &poses,
75  const maps::grid::TraversabilityMap3d<traversability_generator3d::TravGenNode *> &trMap);
76 
77  const Stats &getRobotStats() const
78  {
79  return robotStats;
80  }
81 
82  const Stats &getBoundaryStats() const
83  {
84  return boundaryStats;
85  }
86 
87 };
88 
89 }
Definition: PathStatistic.hpp:19
size_t getNumFrontiers() const
Definition: PathStatistic.hpp:37
double getMinDistToObstacles() const
Definition: PathStatistic.cpp:53
size_t getNumObstacles() const
Definition: PathStatistic.hpp:30
double getMinDistToFrontiers() const
Definition: PathStatistic.cpp:48
void updateStatistic(const maps::grid::TraversabilityNodeBase *node)
Definition: PathStatistic.cpp:27
Stats()
Definition: PathStatistic.cpp:7
void updateDistance(const maps::grid::TraversabilityNodeBase *node, double distance)
Definition: PathStatistic.cpp:43
Definition: PathStatistic.hpp:14
const Stats & getBoundaryStats() const
Definition: PathStatistic.hpp:82
const Stats & getRobotStats() const
Definition: PathStatistic.hpp:77
void calculateStatistics(const std::vector< const traversability_generator3d::TravGenNode * > &path, const std::vector< base::Pose2D > &poses, const maps::grid::TraversabilityMap3d< traversability_generator3d::TravGenNode * > &trMap, const std::string &debugObstacleName=std::string())
Definition: PathStatistic.cpp:63
bool isPathFeasible(const std::vector< const traversability_generator3d::TravGenNode * > &path, const std::vector< base::Pose2D > &poses, const maps::grid::TraversabilityMap3d< traversability_generator3d::TravGenNode * > &trMap)
Definition: PathStatistic.cpp:203
PathStatistic(const traversability_generator3d::TraversabilityConfig &config)
Definition: PathStatistic.cpp:58
Stats boundaryStats
Definition: PathStatistic.hpp:50
Stats robotStats
Definition: PathStatistic.hpp:48
Definition: Dijkstra.cpp:8