Public Member Functions | Private Member Functions | Private Attributes | List of all members
multi_robot_router::MultiRobotRouter Class Reference

standard multi robot router without multi threading (Works best in practice) More...

#include <multi_robot_router.h>

Inheritance diagram for multi_robot_router::MultiRobotRouter:
Inheritance graph
[legend]

Public Member Functions

virtual const uint32_t getPriorityScheduleAttempts () const
 returns the number of attemps to reschedul the priorities taken More...
 
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 More...
 
virtual const uint32_t getSpeedScheduleAttempts () const
 returns the number of attemps to limit the maximum speed of a robot taken More...
 
 MultiRobotRouter (const uint32_t _nr_robots, const std::vector< uint32_t > &_robotDiameter)
 constructor More...
 
 MultiRobotRouter (const uint32_t _nr_robots)
 constructor More...
 
virtual void setCollisionResolver (const SegmentExpander::CollisionResolverType cRes)
 sets the CollisionResolverType used to resolve occured robot collisions More...
 
virtual void setPriorityRescheduling (const bool _status)
 enables or disables priority rescheduling More...
 
virtual void setRobotDiameter (const std::vector< uint32_t > &_diameter)
 sets the robot diameter for every robot More...
 
virtual void setRobotNr (const uint32_t _nr_robots)
 sets the number of robots used More...
 
virtual void setSpeedRescheduling (const bool _status)
 enables or disables speed rescheduling More...
 

Private Member Functions

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)
 
void resetAttempt (const std::vector< Segment > &_graph)
 

Private Attributes

SegmentExpander::CollisionResolverType cResType_
 
uint32_t maxIterationsSingleRobot_
 
uint32_t min_diameter_
 
uint32_t nr_robots_
 
PriorityScheduler priority_scheduler_
 
uint32_t priorityScheduleAttempts_
 
RouteCoordinatorTimed rct_
 
std::vector< std::vector< uint32_t > > robotCollisions_
 
std::vector< uint32_t > robotDiameter_
 
RouteCoordinatorroute_coordinator_
 
SpeedScheduler speed_scheduler_
 
uint32_t speedScheduleAttempts_
 
SingleRobotRouter srr
 
bool usePriorityRescheduler_ = true
 
bool useSpeedRescheduler_ = true
 

Additional Inherited Members

- Protected Member Functions inherited from multi_robot_router::RouteGenerator
std::vector< std::vector< Checkpoint > > generatePath (const std::vector< std::vector< RouteVertex >> &_paths, const RouteCoordinator &routeQuerry_) const
 generates a final Routing Table containing Segment List and Preconditions to other robots More...
 

Detailed Description

standard multi robot router without multi threading (Works best in practice)

Definition at line 47 of file multi_robot_router.h.

Constructor & Destructor Documentation

multi_robot_router::MultiRobotRouter::MultiRobotRouter ( const uint32_t  _nr_robots,
const std::vector< uint32_t > &  _robotDiameter 
)

constructor

Parameters
_nr_robotsthe number of robots to plan
_robotDiametera vector with size _nr_robots which contains every robots diameter

Definition at line 38 of file multi_robot_router.cpp.

multi_robot_router::MultiRobotRouter::MultiRobotRouter ( const uint32_t  _nr_robots)

constructor

Parameters
_nr_robotsthe number of robots to plan

Definition at line 45 of file multi_robot_router.cpp.

Member Function Documentation

const uint32_t multi_robot_router::MultiRobotRouter::getPriorityScheduleAttempts ( ) const
virtual

returns the number of attemps to reschedul the priorities taken

Returns
the number of attemps to reschedul the priorities taken

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 89 of file multi_robot_router.cpp.

bool multi_robot_router::MultiRobotRouter::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 
)
virtual

computes the routing table according to the given start and goal _goalSegments

Parameters
_graphthe base graph used to plan a path
_startSegmentsfor each robot the id of the start segment
_goalSegmentsfor each robot the id of the goal segment
_routingTablethe reference to the found routing table
_timeLimitthe (approximate) maximum time the planner is allowed to use
Returns
if a routing table is found

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 99 of file multi_robot_router.cpp.

const uint32_t multi_robot_router::MultiRobotRouter::getSpeedScheduleAttempts ( ) const
virtual

returns the number of attemps to limit the maximum speed of a robot taken

Returns
the number of attemps to limit the maximum speed of a robot taken

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 94 of file multi_robot_router.cpp.

bool multi_robot_router::MultiRobotRouter::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 
)
private

Definition at line 154 of file multi_robot_router.cpp.

void multi_robot_router::MultiRobotRouter::resetAttempt ( const std::vector< Segment > &  _graph)
private

Definition at line 78 of file multi_robot_router.cpp.

void multi_robot_router::MultiRobotRouter::setCollisionResolver ( const SegmentExpander::CollisionResolverType  cRes)
virtual

sets the CollisionResolverType used to resolve occured robot collisions

Parameters
cResthe CollisionResolver typ

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 54 of file multi_robot_router.cpp.

void multi_robot_router::MultiRobotRouter::setPriorityRescheduling ( const bool  _status)
virtual

enables or disables priority rescheduling

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 198 of file multi_robot_router.cpp.

void multi_robot_router::MultiRobotRouter::setRobotDiameter ( const std::vector< uint32_t > &  _diameter)
virtual

sets the robot diameter for every robot

Parameters
_diametervector with length _nr_robots to set all robo diameters

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 66 of file multi_robot_router.cpp.

void multi_robot_router::MultiRobotRouter::setRobotNr ( const uint32_t  _nr_robots)
virtual

sets the number of robots used

Parameters
_nr_robotthe number of robots

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 60 of file multi_robot_router.cpp.

void multi_robot_router::MultiRobotRouter::setSpeedRescheduling ( const bool  _status)
virtual

enables or disables speed rescheduling

Reimplemented in multi_robot_router::MultiRobotRouterThreadedSrr.

Definition at line 203 of file multi_robot_router.cpp.

Member Data Documentation

SegmentExpander::CollisionResolverType multi_robot_router::MultiRobotRouter::cResType_
private

Definition at line 123 of file multi_robot_router.h.

uint32_t multi_robot_router::MultiRobotRouter::maxIterationsSingleRobot_
private

Definition at line 125 of file multi_robot_router.h.

uint32_t multi_robot_router::MultiRobotRouter::min_diameter_
private

Definition at line 118 of file multi_robot_router.h.

uint32_t multi_robot_router::MultiRobotRouter::nr_robots_
private

Definition at line 117 of file multi_robot_router.h.

PriorityScheduler multi_robot_router::MultiRobotRouter::priority_scheduler_
private

Definition at line 110 of file multi_robot_router.h.

uint32_t multi_robot_router::MultiRobotRouter::priorityScheduleAttempts_
private

Definition at line 121 of file multi_robot_router.h.

RouteCoordinatorTimed multi_robot_router::MultiRobotRouter::rct_
private

Definition at line 113 of file multi_robot_router.h.

std::vector<std::vector<uint32_t> > multi_robot_router::MultiRobotRouter::robotCollisions_
private

Definition at line 120 of file multi_robot_router.h.

std::vector<uint32_t> multi_robot_router::MultiRobotRouter::robotDiameter_
private

Definition at line 119 of file multi_robot_router.h.

RouteCoordinator* multi_robot_router::MultiRobotRouter::route_coordinator_
private

Definition at line 112 of file multi_robot_router.h.

SpeedScheduler multi_robot_router::MultiRobotRouter::speed_scheduler_
private

Definition at line 111 of file multi_robot_router.h.

uint32_t multi_robot_router::MultiRobotRouter::speedScheduleAttempts_
private

Definition at line 122 of file multi_robot_router.h.

SingleRobotRouter multi_robot_router::MultiRobotRouter::srr
private

Definition at line 124 of file multi_robot_router.h.

bool multi_robot_router::MultiRobotRouter::usePriorityRescheduler_ = true
private

Definition at line 115 of file multi_robot_router.h.

bool multi_robot_router::MultiRobotRouter::useSpeedRescheduler_ = true
private

Definition at line 114 of file multi_robot_router.h.


The documentation for this class was generated from the following files:


tuw_multi_robot_router
Author(s): Benjamin Binder
autogenerated on Mon Jun 10 2019 15:42:49