29 #ifndef AVOIDANCE_RESOLUTION_H 30 #define AVOIDANCE_RESOLUTION_H 63 std::vector<std::reference_wrapper<Vertex>>
resolve(
Vertex &_current,
Vertex &_next, int32_t _collision);
85 void trackBack(
Vertex &_current,
Vertex &_next,
const int32_t _collision,
const float _freePotential);
87 void avoid(
Vertex &_current,
Vertex &_next,
const int32_t _collision,
const float _freePotential);
95 void avoidGoal(
Vertex &_current,
Vertex &_next,
const int32_t _collision,
const float _freePotential);
113 #endif // HEURISTIC_H
const std::vector< uint32_t > & getRobotCollisions() const
returns amount of robot collisions found in each resolve try after resetSession
std::vector< std::reference_wrapper< Vertex > > foundSolutions_
void resetSession(const RouteCoordinatorWrapper *_route_querry, const PotentialCalculator *_pCalc, const uint32_t _robot_radius)
resets the session (setting the new route querry and potential calculator)
void avoidStart(Vertex &_current, Vertex &_next, const int32_t _collision, const float _freePotential)
const RouteCoordinatorWrapper * route_querry_
void saveCollision(const uint32_t _coll)
increases the collision count of one robot
void avoidGoal(Vertex &_current, Vertex &_next, const int32_t _collision, const float _freePotential)
bool expandSegment(const Vertex &cSeg, Vertex &_current, Vertex &_next, const int32_t _collision, const float _freePotential)
void moveSegment(Vertex &_current, Vertex &_next, const int32_t _collision, const float _freePotential)
const PotentialCalculator * pCalc_
bool avoidStartSuccessorDone_
uint32_t resolutionAttemp_
std::vector< uint32_t > encounteredCollisions_
std::vector< std::vector< std::unique_ptr< Vertex > > > generatedSubgraphs_
std::vector< std::reference_wrapper< Vertex > > resolve(Vertex &_current, Vertex &_next, int32_t _collision)
resolves a found collision between two robots.
bool avoidStartPredecessorDone_
void avoid(Vertex &_current, Vertex &_next, const int32_t _collision, const float _freePotential)
void trackBack(Vertex &_current, Vertex &_next, const int32_t _collision, const float _freePotential)
std::queue< queueElement > queue_
void addCollision(const uint32_t robot)