Classes | |
struct | seg_occupation_t |
Public Member Functions | |
bool | addCrossingSegment (const uint32_t _startTime, const int32_t _endTime, const uint32_t _segId, const uint32_t _robotNr, const uint32_t _robotSize, const bool &_mainSeg) |
adds a segment in a crossing (neighbours > 1) to the timeline and checks if the occupation is valid More... | |
bool | addSegment (const uint32_t _startTime, const int32_t _endTime, const uint32_t _segId, const uint32_t _robotNr, const uint32_t _robotSize, bool _mainSeg) |
adds a segment to the timeline and checks if the occupation is valid More... | |
bool | checkCrossingSegment (const uint32_t _startTime, const int32_t _endTime, const uint32_t _segId, const uint32_t _robotNr, const uint32_t _robotSize, int32_t &_lastCollisionRobot) const |
checks if a robot can enter a segment at a specific time if located in a crossing (neighbours > 1) More... | |
bool | checkSegment (const uint32_t _startTime, const int32_t _endTime, const uint32_t _segId, const uint32_t _robotNr, const uint32_t _robotSize, int32_t &_lastCollisionRobot) const |
checks if a robot can enter a segment at a specific time More... | |
int32_t | findSegId (const int32_t _robot, const uint32_t _timestep) const |
returns the segment id at which the robot is at timepoint _potential More... | |
std::vector< std::pair< uint32_t, float > > | getListOfRobotsHigherPrioritizedRobots (const uint32_t _robot, const uint32_t _segId, const int32_t _potential) const |
returns all robots which pass the segment before the given robot and a given time More... | |
uint32_t | getSize () const |
returns the length of the timeline (max Time) More... | |
int32_t | getTimeUntilRobotOnSegment (const int32_t _robotNr, const uint32_t _segId) const |
returns the time point, when a robot leaves a vertex More... | |
void | removeRobot (const uint32_t _robot) |
removes a Robot from the Routing Table More... | |
void | reset (const std::vector< Segment > &_graph, const uint32_t _nrRobots) |
resets the planning session of multiple robots More... | |
Timeline () | |
Private Types | |
typedef struct multi_robot_router::RouteCoordinatorTimed::Timeline::seg_occupation_t | seg_occupation |
Private Attributes | |
uint32_t | maxTime_ = 0 |
uint32_t | nrRobots_ = 0 |
std::vector< std::vector< uint32_t > > | robotSegments_ |
std::vector< float > | segmentSpace_ |
std::vector< std::vector< seg_occupation > > | timeline_ |
uint32_t | tmpRobot_ = 0 |
Definition at line 40 of file route_coordinator_timed.h.
|
private |
multi_robot_router::RouteCoordinatorTimed::Timeline::Timeline | ( | ) |
Definition at line 223 of file route_coordinator_timed.cpp.
bool multi_robot_router::RouteCoordinatorTimed::Timeline::addCrossingSegment | ( | const uint32_t | _startTime, |
const int32_t | _endTime, | ||
const uint32_t | _segId, | ||
const uint32_t | _robotNr, | ||
const uint32_t | _robotSize, | ||
const bool & | _mainSeg | ||
) |
adds a segment in a crossing (neighbours > 1) to the timeline and checks if the occupation is valid
_startTime | the time when the robot enters the segment |
_endTime | the time when the robot leaves the segment |
_segId | the segment id |
_robotNr | the robot Id |
_robotSize | the robot Size |
_mainSeg | saves if this is a main segment (A segment which is passed by the robot and not overlapping with the path) |
Definition at line 269 of file route_coordinator_timed.cpp.
bool multi_robot_router::RouteCoordinatorTimed::Timeline::addSegment | ( | const uint32_t | _startTime, |
const int32_t | _endTime, | ||
const uint32_t | _segId, | ||
const uint32_t | _robotNr, | ||
const uint32_t | _robotSize, | ||
bool | _mainSeg | ||
) |
adds a segment to the timeline and checks if the occupation is valid
_startTime | the time when the robot enters the segment |
_endTime | the time when the robot leaves the segment |
_segId | the segment id |
_robotNr | the robot Id |
_robotSize | the robot Size |
_mainSeg | saves if this is a main segment (A segment which is passed by the robot and not overlapping with the path) |
Definition at line 241 of file route_coordinator_timed.cpp.
bool multi_robot_router::RouteCoordinatorTimed::Timeline::checkCrossingSegment | ( | const uint32_t | _startTime, |
const int32_t | _endTime, | ||
const uint32_t | _segId, | ||
const uint32_t | _robotNr, | ||
const uint32_t | _robotSize, | ||
int32_t & | _lastCollisionRobot | ||
) | const |
checks if a robot can enter a segment at a specific time if located in a crossing (neighbours > 1)
_startTime | the time the current robot enters the segment |
_endTime | the time the current robot leaves the segment |
_segId | the segment to check |
_robotNr | the id of the robot to check |
_robotSize | the diameter of the robot |
_lastCollisionRobot | returns the robot wich causes a collision (if no collision -1) |
Definition at line 279 of file route_coordinator_timed.cpp.
bool multi_robot_router::RouteCoordinatorTimed::Timeline::checkSegment | ( | const uint32_t | _startTime, |
const int32_t | _endTime, | ||
const uint32_t | _segId, | ||
const uint32_t | _robotNr, | ||
const uint32_t | _robotSize, | ||
int32_t & | _lastCollisionRobot | ||
) | const |
checks if a robot can enter a segment at a specific time
_startTime | the time the current robot enters the segment |
_endTime | the time the current robot leaves the segment |
_segId | the segment to check |
_robotNr | the id of the robot to check |
_robotSize | the diameter of the robot |
_lastCollisionRobot | returns the robot wich causes a collision (if no collision -1) |
Definition at line 289 of file route_coordinator_timed.cpp.
int32_t multi_robot_router::RouteCoordinatorTimed::Timeline::findSegId | ( | const int32_t | _robot, |
const uint32_t | _timestep | ||
) | const |
returns the segment id at which the robot is at timepoint _potential
_robot | the robot id |
_potential | the timepoint on the robots path execution |
Definition at line 382 of file route_coordinator_timed.cpp.
std::vector< std::pair< uint32_t, float > > multi_robot_router::RouteCoordinatorTimed::Timeline::getListOfRobotsHigherPrioritizedRobots | ( | const uint32_t | _robot, |
const uint32_t | _segId, | ||
const int32_t | _potential | ||
) | const |
returns all robots which pass the segment before the given robot and a given time
_robot | the robotId |
_segId | the Vertex to check |
_potential | the maximum potential |
Definition at line 418 of file route_coordinator_timed.cpp.
uint32_t multi_robot_router::RouteCoordinatorTimed::Timeline::getSize | ( | ) | const |
returns the length of the timeline (max Time)
Definition at line 377 of file route_coordinator_timed.cpp.
int32_t multi_robot_router::RouteCoordinatorTimed::Timeline::getTimeUntilRobotOnSegment | ( | const int32_t | _robotNr, |
const uint32_t | _segId | ||
) | const |
returns the time point, when a robot leaves a vertex
_robotNr | the robotId |
_segId | the segmentId where the time is searched |
Definition at line 403 of file route_coordinator_timed.cpp.
void multi_robot_router::RouteCoordinatorTimed::Timeline::removeRobot | ( | const uint32_t | _robot | ) |
removes a Robot from the Routing Table
_robot | the robot to remove |
Definition at line 451 of file route_coordinator_timed.cpp.
void multi_robot_router::RouteCoordinatorTimed::Timeline::reset | ( | const std::vector< Segment > & | _graph, |
const uint32_t | _nrRobots | ||
) |
resets the planning session of multiple robots
_graph | the graph |
_nrRobots | the nr of robots to plan |
Definition at line 227 of file route_coordinator_timed.cpp.
|
private |
Definition at line 147 of file route_coordinator_timed.h.
|
private |
Definition at line 148 of file route_coordinator_timed.h.
|
private |
Definition at line 145 of file route_coordinator_timed.h.
|
private |
Definition at line 146 of file route_coordinator_timed.h.
|
private |
Definition at line 144 of file route_coordinator_timed.h.
|
private |
Definition at line 150 of file route_coordinator_timed.h.