Go to the documentation of this file.
29 #ifndef MRR_THREADED_SRR_H
30 #define MRR_THREADED_SRR_H
61 virtual void setRobotNr(
const uint32_t _nr_robots);
66 virtual void setThreads(
const uint32_t _threads);
81 virtual bool getRoutingTable(
const std::vector<Segment> &_graph,
const std::vector<uint32_t> &_startSegments,
const std::vector<uint32_t> &_goalSegments, std::vector<std::vector<Checkpoint>> &_routingTable,
const float &_timeLimit);
109 bool planPaths(
const std::vector<uint32_t> &_priorityList,
const std::vector<float> &_speedList,
const std::vector<uint32_t> &_startSegments,
const std::vector<uint32_t> &_goalSegments,
const uint32_t _firstSchedule, std::vector<std::vector<RouteVertex>> &_routeCandidates, uint32_t &_robot);
126 std::vector<SingleRobotRouter>
srr;
RouteCoordinatorTimed rct_
SegmentExpander::CollisionResolverType cResType_
bool planPaths(const std::vector< uint32_t > &_priorityList, const std::vector< float > &_speedList, const std::vector< uint32_t > &_startSegments, const std::vector< uint32_t > &_goalSegments, const uint32_t _firstSchedule, std::vector< std::vector< RouteVertex >> &_routeCandidates, uint32_t &_robot)
uint32_t speedScheduleAttempts_
std::vector< uint32_t > robotDiameter_
virtual bool getRoutingTable(const std::vector< Segment > &_graph, const std::vector< uint32_t > &_startSegments, const std::vector< uint32_t > &_goalSegments, std::vector< std::vector< Checkpoint >> &_routingTable, const float &_timeLimit)
computes the routing table according to the given start and goal _goalSegments
standard multi robot router without multi threading (Works best in practice)
uint32_t maxIterationsSingleRobot_
RouteCoordinator * route_coordinator_
uint32_t priorityScheduleAttempts_
virtual void setRobotNr(const uint32_t _nr_robots)
sets the number of robots used
PriorityScheduler priority_scheduler_
virtual const uint32_t getPriorityScheduleAttempts() const
returns the number of attemps to reschedul the priorities taken
virtual void setSpeedRescheduling(const bool _status)
enables or disables speed rescheduling
virtual void setThreads(const uint32_t _threads)
sets the number of threads
virtual void setPriorityRescheduling(const bool _status)
enables or disables priority rescheduling
bool usePriorityRescheduler_
std::vector< SingleRobotRouter > srr
SpeedScheduler speed_scheduler_
virtual void setCollisionResolver(const SegmentExpander::CollisionResolverType cRes)
sets the CollisionResolverType used to resolve occured robot collisions
bool useSpeedRescheduler_
std::vector< std::vector< uint32_t > > robotCollisions_
virtual void setRobotDiameter(const std::vector< uint32_t > &_diameter)
sets the robot diameter for every robot
virtual const uint32_t getSpeedScheduleAttempts() const
returns the number of attemps to limit the maximum speed of a robot taken
MultiRobotRouterThreadedSrr(const uint32_t _nr_robots, const std::vector< uint32_t > &_robotDiameter, const uint32_t _threads)
constructor
void resetAttempt(const std::vector< Segment > &_graph)