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;
MultiRobotRouterThreadedSrr(const uint32_t _nr_robots, const std::vector< uint32_t > &_robotDiameter, const uint32_t _threads)
constructor
standard multi robot router without multi threading (Works best in practice)
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)
RouteCoordinator * route_coordinator_
virtual void setRobotDiameter(const std::vector< uint32_t > &_diameter)
sets the robot diameter for every robot
virtual void setThreads(const uint32_t _threads)
sets the number of threads
bool usePriorityRescheduler_
std::vector< uint32_t > robotDiameter_
uint32_t priorityScheduleAttempts_
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
RouteCoordinatorTimed rct_
bool useSpeedRescheduler_
virtual void setCollisionResolver(const SegmentExpander::CollisionResolverType cRes)
sets the CollisionResolverType used to resolve occured robot collisions
PriorityScheduler priority_scheduler_
virtual void setRobotNr(const uint32_t _nr_robots)
sets the number of robots used
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
SpeedScheduler speed_scheduler_
uint32_t maxIterationsSingleRobot_
uint32_t speedScheduleAttempts_
virtual const uint32_t getSpeedScheduleAttempts() const
returns the number of attemps to limit the maximum speed of a robot taken
void resetAttempt(const std::vector< Segment > &_graph)
std::vector< SingleRobotRouter > srr
std::vector< std::vector< uint32_t > > robotCollisions_
SegmentExpander::CollisionResolverType cResType_
virtual void setPriorityRescheduling(const bool _status)
enables or disables priority rescheduling