maliput
|
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).
#include <include/maliput/api/lane.h>
Public Member Functions | |
virtual | ~Lane ()=default |
LaneId | id () const |
Returns the persistent identifier. More... | |
const Segment * | segment () 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 Lane * | to_left () const |
Returns a pointer to the adjacent Lane to the left of this Lane. More... | |
const Lane * | to_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 | segment_bounds (double s) const |
Returns the lateral segment (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... | |
InertialPosition | ToInertialPosition (const LanePosition &lane_pos) const |
Returns the InertialPosition corresponding to the given LanePosition. More... | |
LanePositionResult | ToLanePosition (const InertialPosition &inertial_pos) const |
Determines the LanePosition corresponding to InertialPosition inertial_pos . More... | |
LanePositionResult | ToSegmentPosition (const InertialPosition &inertial_pos) const |
Determines the LanePosition corresponding to InertialPosition inertial_pos . 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 Inertial -frame basis. More... | |
LanePosition | EvalMotionDerivatives (const LanePosition &position, const IsoLaneVelocity &velocity) const |
Computes derivatives of LanePosition given a velocity vector velocity . More... | |
const BranchPoint * | GetBranchPoint (const LaneEnd::Which which_end) const |
Returns the lane's BranchPoint for the end specified by which_end . More... | |
const LaneEndSet * | GetConfluentBranches (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 LaneEndSet * | GetOngoingBranches (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::optional< LaneEnd > | GetDefaultBranch (const LaneEnd::Which which_end) const |
Returns the default ongoing LaneEnd connected at which_end , or std::nullopt if no default branch has been established at which_end . More... | |
bool | Contains (const LanePosition &lane_position) const |
Returns if this lane contains lane_position . More... | |
Protected Member Functions | |
Lane ()=default | |
|
protecteddefault |
bool Contains | ( | const LanePosition & | lane_position | ) | const |
Returns if this lane contains lane_position
.
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 Lane's volume modeled by the RoadGeometry.
s
is within [0, length()
] of this Lane and r
is within lane_bounds(s)
.
LanePosition EvalMotionDerivatives | ( | const LanePosition & | position, |
const IsoLaneVelocity & | velocity | ||
) | const |
Computes derivatives of LanePosition given a velocity vector velocity
.
velocity
is a isometric velocity vector oriented in the Lane
-frame at position
.
Lane
-frame derivatives packed into a LanePosition struct. const BranchPoint * GetBranchPoint | ( | const LaneEnd::Which | which_end | ) | const |
Returns the lane's BranchPoint for the end specified by which_end
.
const LaneEndSet * GetConfluentBranches | ( | 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
.
At a minimum, this set will include this Lane.
std::optional< LaneEnd > GetDefaultBranch | ( | const LaneEnd::Which | which_end | ) | const |
Returns the default ongoing LaneEnd connected at which_end
, or std::nullopt if no default branch has been established at which_end
.
const LaneEndSet * GetOngoingBranches | ( | const LaneEnd::Which | which_end | ) | const |
Returns the set of LaneEnd's which continue onward from this lane at the BranchPoint at which_end
.
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 Inertial
-frame basis.
LaneId id | ( | ) | const |
Returns the persistent identifier.
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".
double length | ( | ) | const |
Returns the lateral segment (r) bounds of the lane as a function of s.
These are the lateral bounds for a position that is considered to be "on segment", reflecting the physical extent of the surface of the lane's segment.
const Lane * to_left | ( | ) | const |
const Lane * to_right | ( | ) | const |
InertialPosition ToInertialPosition | ( | const LanePosition & | lane_pos | ) | const |
Returns the InertialPosition corresponding to the given LanePosition.
lane_pos
must be in domain [0, Lane::length()]. lane_pos
must be in domain [Rmin, Rmax] derived from Lane::segment_bounds(). LanePositionResult ToLanePosition | ( | const InertialPosition & | inertial_pos | ) | const |
Determines the LanePosition corresponding to InertialPosition inertial_pos
.
The LanePosition is expected to be contained within the lane's boundaries.
This method guarantees that its result satisfies the condition that ToInertialPosition(result.lane_position)
is within linear_tolerance()
of result.nearest_position
.
LanePositionResult ToSegmentPosition | ( | const InertialPosition & | inertial_pos | ) | const |
Determines the LanePosition corresponding to InertialPosition inertial_pos
.
The LanePosition is expected to be contained within the segment's boundaries.
This method guarantees that its result satisfies the condition that ToInertialPosition(result.lane_position)
is within linear_tolerance()
of result.nearest_position
.