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
7namespace ugv_nav4d
8{
9
14{
15 const traversability_generator3d::TraversabilityConfig &config;
16public:
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
46protected:
51public:
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:56
size_t getNumObstacles() const
Definition PathStatistic.hpp:30
double getMinDistToFrontiers() const
Definition PathStatistic.cpp:51
void updateStatistic(const maps::grid::TraversabilityNodeBase *node)
Definition PathStatistic.cpp:30
Stats()
Definition PathStatistic.cpp:10
void updateDistance(const maps::grid::TraversabilityNodeBase *node, double distance)
Definition PathStatistic.cpp:46
Definition PathStatistic.hpp:14
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:66
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:206
const Stats & getBoundaryStats() const
Definition PathStatistic.hpp:82
Stats boundaryStats
Definition PathStatistic.hpp:50
const Stats & getRobotStats() const
Definition PathStatistic.hpp:77
Stats robotStats
Definition PathStatistic.hpp:48
Definition Dijkstra.cpp:8