Class Graph::Lane¶
Defined in File Graph.hpp
Nested Relationships¶
This class is a nested type of Class Graph.
Nested Types¶
Class Documentation¶
-
class
rmf_traffic::agv::Graph::Lane Add a lane to connect two waypoints.
Public Types
-
using
EventPtr= rmf_utils::clone_ptr<Event>
Public Functions
-
Node &
entry() Get the entry node of this Lane. The lane represents an edge in the graph that goes away from this node.
-
Node &
exit() Get the exit node of this Lane. The lane represents an edge in the graph that goes into this node.
-
Properties &
properties() Get the properties of this Lane.
-
const Properties &
properties() const const-qualified properties()
-
class
Dock Public Functions
-
Dock(std::string dock_name, Duration duration) Constructor
- Parameters
[in] Name: of the dock that will be approached[in] How: long the robot will take to dock
-
const std::string &
dock_name() const Get the name of the dock.
-
Dock &
dock_name(std::string name) Set the name of the dock.
-
Duration
duration() const Get an estimate for how long the docking will take.
-
-
class
Door A door in the graph which needs to be opened before a robot can enter a certain lane or closed before the robot can exit the lane.
Subclassed by rmf_traffic::agv::Graph::Lane::DoorClose, rmf_traffic::agv::Graph::Lane::DoorOpen
Public Functions
-
Door(std::string name, Duration duration) Constructor
- Parameters
[in] name: Unique name of the door.[in] duration: How long the door takes to open or close.
-
const std::string &
name() const Get the unique name (ID) of this Door.
-
Duration
duration() const Get the duration incurred by waiting for this door to open or close.
-
-
class
Event An abstraction for the different kinds of Lane events.
Public Functions
-
virtual Duration
duration() const = 0 An estimate of how long the event will take.
-
template<typename
DerivedExecutor>
inline DerivedExecutor &execute(DerivedExecutor &executor) const
-
virtual EventPtr
clone() const = 0 Clone this event.
-
virtual
~Event() = default
Public Static Functions
-
static EventPtr
make(LiftSessionBegin open)
-
static EventPtr
make(LiftSessionEnd close)
-
static EventPtr
make(LiftDoorOpen open)
-
virtual Duration
-
class
Executor A customizable Executor that can carry out actions based on which Event type is present.
Public Types
-
using
LiftSessionBegin= Lane::LiftSessionBegin
-
using
LiftDoorOpen= Lane::LiftDoorOpen
-
using
LiftSessionEnd= Lane::LiftSessionEnd
Public Functions
-
virtual void
execute(const DoorOpen &open) = 0
-
virtual void
execute(const DoorClose &close) = 0
-
virtual void
execute(const LiftSessionBegin &begin) = 0
-
virtual void
execute(const LiftDoorOpen &open) = 0
-
virtual void
execute(const LiftSessionEnd &end) = 0
-
virtual void
execute(const LiftMove &move) = 0
-
virtual void
execute(const Dock &dock) = 0
-
virtual void
execute(const Wait &wait) = 0
-
virtual
~Executor() = default
-
using
-
class
LiftDoorOpen: public rmf_traffic::agv::Graph::Lane::LiftSession
-
class
LiftMove: public rmf_traffic::agv::Graph::Lane::LiftSession
-
class
LiftSession A lift door in the graph which needs to be opened before a robot can enter a certain lane or closed before the robot can exit the lane.
Subclassed by rmf_traffic::agv::Graph::Lane::LiftDoorOpen, rmf_traffic::agv::Graph::Lane::LiftMove, rmf_traffic::agv::Graph::Lane::LiftSessionBegin, rmf_traffic::agv::Graph::Lane::LiftSessionEnd
Public Functions
-
LiftSession(std::string lift_name, std::string floor_name, Duration duration) Constructor
- Parameters
[in] lift_name: Name of the lift that this door belongs to.[in] floor_name: Name of the floor that this door belongs to.[in] duration: How long the door takes to open or close.
-
const std::string &
lift_name() const Get the name of the lift that the door belongs to.
-
LiftSession &
lift_name(std::string name) Set the name of the lift that the door belongs to.
-
const std::string &
floor_name() const Get the name of the floor that this door is on.
-
LiftSession &
floor_name(std::string name) Set the name of the floor that this door is on.
-
Duration
duration() const Get an estimate of how long it will take the door to open or close.
-
LiftSession &
duration(Duration duration) Set an estimate of how long it will take the door to open or close.
-
-
class
LiftSessionBegin: public rmf_traffic::agv::Graph::Lane::LiftSession
-
class
LiftSessionEnd: public rmf_traffic::agv::Graph::Lane::LiftSession
-
class
Node A Lane Node wraps up a Waypoint with constraints. The constraints stipulate the conditions for entering or exiting the lane to reach this waypoint.
Public Functions
-
Node(std::size_t waypoint_index, rmf_utils::clone_ptr<Event> event = nullptr, rmf_utils::clone_ptr<OrientationConstraint> orientation = nullptr) Constructor
- Parameters
waypoint_index: The index of the waypoint for this Nodeevent: An event that must happen before/after this Node is approached (before if it’s an entry Node or after if it’s an exit Node).orientation: Any orientation constraints for moving to/from this Node (depending on whether it’s an entry Node or an exit Node).
-
Node(std::size_t waypoint_index, rmf_utils::clone_ptr<OrientationConstraint> orientation) Constructor. The event parameter will be nullptr.
-
std::size_t
waypoint_index() const Get the index of the waypoint that this Node is wrapped around.
-
const Event *
event() const Get a reference to an event that must occur before or after this Node is visited.
- Note
Before if this is an entry node or after if this is an exit node
-
Node &
event(rmf_utils::clone_ptr<Event> new_event) Set the event that must occur before or after this Node is visited.
-
const OrientationConstraint *
orientation_constraint() const Get the constraint on orientation that is tied to this Node.
-
-
class
Properties The Lane Properties class contains properties that apply across the full extent of the lane.
Public Functions
-
Properties() Construct a default set of properties
speed_limit: nullopt
-
std::optional<double>
speed_limit() const Get the speed limit along this lane. If a std::nullopt is returned, then there is no specified speed limit for the lane.
-
Properties &
speed_limit(std::optional<double> value) Set the speed limit along this lane. Providing a std::nullopt indicates that there is no speed limit for the lane.
-
-
class
Wait
-
using