Drake
Lane Class Referenceabstract

A Lane represents a lane of travel in a road network. More...

#include <drake/automotive/maliput/api/lane.h>

Inheritance diagram for Lane:
[legend]

Public Member Functions

virtual ~Lane ()=default
 
const LaneId id () const
 Returns the persistent identifier. More...
 
const Segmentsegment () const
 Returns the Segment to which this Lane belongs. More...
 
int index () const
 Returns the index of this Lane within the Segment which owns it. More...
 
const Laneto_left () const
 Returns a pointer to the adjacent Lane to the left of this Lane. More...
 
const Laneto_right () const
 Returns a pointer to the adjacent Lane to the right of this Lane. More...
 
double length () const
 Returns the arc-length of the Lane along its reference curve. More...
 
RBounds lane_bounds (double s) const
 Returns the nominal lateral (r) bounds for the lane as a function of s. More...
 
RBounds driveable_bounds (double s) const
 Returns the driveable lateral (r) bounds of the lane as a function of s. More...
 
HBounds elevation_bounds (double s, double r) const
 Returns the elevation (h) bounds of the lane as a function of (s, r). More...
 
GeoPosition ToGeoPosition (const LanePosition &lane_pos) const
 Returns the GeoPosition corresponding to the given LanePosition. More...
 
LanePosition ToLanePosition (const GeoPosition &geo_position, GeoPosition *nearest_point, double *distance) const
 Determines the LanePosition corresponding to GeoPosition geo_position. More...
 
Rotation GetOrientation (const LanePosition &lane_pos) const
 Returns the rotation which expresses the orientation of the Lane-frame basis at lane_pos with respect to the world frame basis. More...
 
LanePosition EvalMotionDerivatives (const LanePosition &position, const IsoLaneVelocity &velocity) const
 Computes derivatives of LanePosition given a velocity vector velocity. More...
 
const BranchPointGetBranchPoint (const LaneEnd::Which which_end) const
 Returns the lane's BranchPoint for the end specified by which_end. More...
 
const LaneEndSetGetConfluentBranches (const LaneEnd::Which which_end) const
 Returns the set of LaneEnd's which connect with this lane on the same side of the BranchPoint at which_end. More...
 
const LaneEndSetGetOngoingBranches (const LaneEnd::Which which_end) const
 Returns the set of LaneEnd's which continue onward from this lane at the BranchPoint at which_end. More...
 
std::unique_ptr< LaneEndGetDefaultBranch (const LaneEnd::Which which_end) const
 Returns the default ongoing LaneEnd connected at which_end. More...
 
Does not allow copy, move, or assignment
 Lane (const Lane &)=delete
 
Laneoperator= (const Lane &)=delete
 
 Lane (Lane &&)=delete
 
Laneoperator= (Lane &&)=delete
 

Protected Member Functions

 Lane ()=default
 

Detailed Description

A Lane represents a lane of travel in a road network.

A Lane defines a curvilinear coordinate system covering the road surface, with a longitudinal 's' coordinate that expresses the arc-length along a central reference curve. The reference curve nominally represents an ideal travel trajectory along the Lane.

Lanes are grouped by Segment. All Lanes belonging to a Segment represent the same road surface, but with different coordinate parameterizations (e.g., each Lane has its own reference curve).

Constructor & Destructor Documentation

Lane ( const Lane )
delete
Lane ( Lane &&  )
delete
virtual ~Lane ( )
virtualdefault

Reimplemented in Lane, Lane, Lane, and Lane.

Lane ( )
protecteddefault

Here is the caller graph for this function:

Member Function Documentation

RBounds driveable_bounds ( double  s) const
inline

Returns the driveable lateral (r) bounds of the lane as a function of s.

These are the lateral bounds for a position that is considered to be "on pavement", reflecting the physical extent of the paved surface of the lane's segment.

Here is the caller graph for this function:

HBounds elevation_bounds ( double  s,
double  r 
) const
inline

Returns the elevation (h) bounds of the lane as a function of (s, r).

These are the elevation bounds for a position that is considered to be within the volume modelled by the RoadGeometry.

Here is the caller graph for this function:

LanePosition EvalMotionDerivatives ( const LanePosition position,
const IsoLaneVelocity velocity 
) const
inline

Computes derivatives of LanePosition given a velocity vector velocity.

velocity is a isometric velocity vector oriented in the Lane-frame at position.

Returns
Lane-frame derivatives packed into a LanePosition struct.

Here is the caller graph for this function:

const BranchPoint* GetBranchPoint ( const LaneEnd::Which  which_end) const
inline

Returns the lane's BranchPoint for the end specified by which_end.

Here is the caller graph for this function:

const LaneEndSet* GetConfluentBranches ( const LaneEnd::Which  which_end) const
inline

Returns the set of LaneEnd's which connect with this lane on the same side of the BranchPoint at which_end.

At a minimum, this set will include this Lane.

std::unique_ptr<LaneEnd> GetDefaultBranch ( const LaneEnd::Which  which_end) const
inline

Returns the default ongoing LaneEnd connected at which_end.

Returns
nullptr if no default branch has been established at which_end.

Here is the call graph for this function:

Here is the caller graph for this function:

const LaneEndSet* GetOngoingBranches ( const LaneEnd::Which  which_end) const
inline

Returns the set of LaneEnd's which continue onward from this lane at the BranchPoint at which_end.

Here is the caller graph for this function:

Rotation GetOrientation ( const LanePosition lane_pos) const
inline

Returns the rotation which expresses the orientation of the Lane-frame basis at lane_pos with respect to the world frame basis.

Here is the caller graph for this function:

const LaneId id ( ) const
inline

Returns the persistent identifier.

Here is the caller graph for this function:

int index ( ) const
inline

Returns the index of this Lane within the Segment which owns it.

Here is the caller graph for this function:

RBounds lane_bounds ( double  s) const
inline

Returns the nominal lateral (r) bounds for the lane as a function of s.

These are the lateral bounds for a position that is considered to be "staying in the lane".

Here is the caller graph for this function:

double length ( ) const
inline

Returns the arc-length of the Lane along its reference curve.

The value of length() is also the maximum s-coordinate for this Lane; i.e., the domain of s is [0, length()].

Here is the caller graph for this function:

Lane& operator= ( const Lane )
delete
Lane& operator= ( Lane &&  )
delete
const Segment* segment ( ) const
inline

Returns the Segment to which this Lane belongs.

Here is the caller graph for this function:

const Lane* to_left ( ) const
inline

Returns a pointer to the adjacent Lane to the left of this Lane.

Left is considered the +r direction with regards to the (s,r,h) frame, e.g., "to the left along the +s direction".

Returns
nullptr iff parent Segment has no Lane to the left.

Here is the caller graph for this function:

const Lane* to_right ( ) const
inline

Returns a pointer to the adjacent Lane to the right of this Lane.

Right is considered the -r direction with regards to the (s,r,h) frame, e.g., "to the right along the +s direction".

Returns
nullptr iff parent Segment has no Lane to the right.

Here is the caller graph for this function:

GeoPosition ToGeoPosition ( const LanePosition lane_pos) const
inline

Returns the GeoPosition corresponding to the given LanePosition.

Precondition
The s component of lane_pos must be in domain [0, Lane::length()].
The r component of lane_pos must be in domain [Rmin, Rmax] derived from Lane::driveable_bounds().

Here is the caller graph for this function:

LanePosition ToLanePosition ( const GeoPosition geo_position,
GeoPosition nearest_point,
double distance 
) const
inline

Determines the LanePosition corresponding to GeoPosition geo_position.

The return value is the LanePosition of the point within the Lane's driveable-bounds which is closest to geo_position (as measured by the Cartesian metric in the world frame). If nearest_point is non-null, then it will be populated with the GeoPosition of that nearest point. If distance is non-null, then it will be populated with the Cartesian distance from geo_position to that nearest point.

This method guarantees that its result satisfies the condition that ToGeoPosition(result) is within linear_tolerance() of *nearest_position.

Here is the caller graph for this function:


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