ADORe
ADORe is a modular open source software library and toolkit for decision making, planning, control and simulation of automated vehicles
adore::env::BorderBased::LaneChangeGeometry Class Reference

A class with a geometry description of a lane next to the current lane. More...

#include <lanechangegeometry.h>

Collaboration diagram for adore::env::BorderBased::LaneChangeGeometry:
Collaboration graph

Public Types

using function_type_xyz = adore::mad::function_type_xyz
 
using function_type2d = adore::mad::function_type2d
 
using function_type_scalar = adore::mad::function_type_scalar
 
using velocity_profile = function_type_scalar
 
typedef std::unordered_set< BorderBased::Node *, BorderBased::NodeHasherTBorderSubSet
 

Public Member Functions

 LaneChangeGeometry ()
 Construct a new LaneChangeGeometry object. More...
 
bool isValid () const
 Check whether the LaneChangeGeometry is valid. More...
 
void clearGeometry ()
 Clear the LaneChangeGeometry. More...
 
template<int lfg_a, int lfg_b>
void update (LaneFollowingGeometry< lfg_a, lfg_b > *lfg, BorderSet *borderSet, adore::env::VehicleMotionState9d *ego, int lfg_adjacency_i_start, adore::view::ALaneChangeView::direction direction, double review_distance, double preview_distance, double adjacency_lower_limit=0.0)
 update the road geometry More...
 
BorderSubSetgetInnerBorders ()
 Get the sequence of inner Borders. More...
 
BorderSubSetgetOuterBorders ()
 Get the sequence of outer Borders. More...
 
BorderSubSetgetLeftBorders ()
 Get the sequence of inner Borders. More...
 
BorderSubSetgetRightBorders ()
 Get the sequence of inner Borders. More...
 
double getViewingDistance () const
 Get the viewing distance. More...
 
adore::view::ALaneChangeView::direction getLCDirection () const
 Get the direction of the LaneChangeGeometry. More...
 
double getProgressOfWidthOpen () const
 Get the s-coordinate where the lane reaches the required width. More...
 
double getProgressOfWidthClosed () const
 Get the s-coordinate where the lane stops to have the required width. More...
 
double getOffsetOfLeftBorder (double s)
 Get the offset of the left border at a certain position. More...
 
double getOffsetOfRightBorder (double s)
 Get the offset of the right border at a certain position. More...
 
double getOffsetOfCenterBorder (double s)
 Get the offset of the center border at a certain position. More...
 
double getProgressOfGateOpen () const
 Get the s-coordinate where the lane starts to be in direct adjacency to the LaneFollowingGeometry whithout a barrier. More...
 
double getProgressOfGateClosed () const
 Get the s-coordinate where the lane ends to be in direct adjacency to the LaneFollowingGeometry whithout a barrier. More...
 

Public Attributes

function_type_xyz m_leftBorder_fct
 
function_type_xyz m_rightBorder_fct
 
function_type_xyz m_centerBorder_fct
 
function_type_xyz m_reference_fct
 
function_type_scalar m_leftBorderDistance_fct
 
function_type_scalar m_rightBorderDistance_fct
 
function_type_scalar m_centerBorderDistance_fct
 
double m_s_lane_width_open
 
double m_s_lane_width_closed
 
double m_s_viewing_distance
 
int m_lfg_adjacency_i0
 
int m_lfg_adjacency_i1
 
double m_adjacency_s0
 
double m_adjacency_s1
 
Borderm_lfg_adjacency_b0
 
Borderm_lfg_adjacency_b1
 
BorderBased::Nodem_lfg_adjacency_bn0
 
BorderBased::Nodem_lfg_adjacency_bn1
 
TBorderSubSet m_borderSubSet
 
BorderBased::BAContainer m_borderSequence
 
BorderBased::BAContainer m_innerBorderSequence
 
adore::view::ALaneChangeView::direction m_direction
 
double m_vehicle_width
 
bool m_view_valid
 

Detailed Description

A class with a geometry description of a lane next to the current lane.

Member Typedef Documentation

◆ function_type2d

◆ function_type_scalar

◆ function_type_xyz

◆ TBorderSubSet

◆ velocity_profile

Constructor & Destructor Documentation

◆ LaneChangeGeometry()

adore::env::BorderBased::LaneChangeGeometry::LaneChangeGeometry ( )
inline

Construct a new LaneChangeGeometry object.

Member Function Documentation

◆ clearGeometry()

void adore::env::BorderBased::LaneChangeGeometry::clearGeometry ( )
inline

Clear the LaneChangeGeometry.

Here is the caller graph for this function:

◆ getInnerBorders()

BorderSubSet* adore::env::BorderBased::LaneChangeGeometry::getInnerBorders ( )
inline

Get the sequence of inner Borders.

Returns
BAContainer*
Here is the caller graph for this function:

◆ getLCDirection()

adore::view::ALaneChangeView::direction adore::env::BorderBased::LaneChangeGeometry::getLCDirection ( ) const
inline

Get the direction of the LaneChangeGeometry.

Returns
adore::view::ALaneChangeView::direction direction of the LaneChangeGeometry
Here is the caller graph for this function:

◆ getLeftBorders()

BorderSubSet* adore::env::BorderBased::LaneChangeGeometry::getLeftBorders ( )
inline

Get the sequence of inner Borders.

Returns
BAContainer*

◆ getOffsetOfCenterBorder()

double adore::env::BorderBased::LaneChangeGeometry::getOffsetOfCenterBorder ( double  s)
inline

Get the offset of the center border at a certain position.

Parameters
ss-coordinate of the position
Returns
double offset of the center border at the given position

◆ getOffsetOfLeftBorder()

double adore::env::BorderBased::LaneChangeGeometry::getOffsetOfLeftBorder ( double  s)
inline

Get the offset of the left border at a certain position.

Parameters
ss-coordinate of the position
Returns
double offset of the left border at the given position
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOffsetOfRightBorder()

double adore::env::BorderBased::LaneChangeGeometry::getOffsetOfRightBorder ( double  s)
inline

Get the offset of the right border at a certain position.

Parameters
ss-coordinate of the position
Returns
double offset of the right border at the given position
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOuterBorders()

BorderSubSet* adore::env::BorderBased::LaneChangeGeometry::getOuterBorders ( )
inline

Get the sequence of outer Borders.

Returns
BAContainer*
Here is the caller graph for this function:

◆ getProgressOfGateClosed()

double adore::env::BorderBased::LaneChangeGeometry::getProgressOfGateClosed ( ) const
inline

Get the s-coordinate where the lane ends to be in direct adjacency to the LaneFollowingGeometry whithout a barrier.

Returns
double s-coordinate where the direct adjacency ends
Here is the caller graph for this function:

◆ getProgressOfGateOpen()

double adore::env::BorderBased::LaneChangeGeometry::getProgressOfGateOpen ( ) const
inline

Get the s-coordinate where the lane starts to be in direct adjacency to the LaneFollowingGeometry whithout a barrier.

Returns
double s-coordinate where the direct adjacency starts
Here is the caller graph for this function:

◆ getProgressOfWidthClosed()

double adore::env::BorderBased::LaneChangeGeometry::getProgressOfWidthClosed ( ) const
inline

Get the s-coordinate where the lane stops to have the required width.

Returns
double s-coordinate of the position where the lane ends to have at least the required width

◆ getProgressOfWidthOpen()

double adore::env::BorderBased::LaneChangeGeometry::getProgressOfWidthOpen ( ) const
inline

Get the s-coordinate where the lane reaches the required width.

Returns
double s-coordinate of the position where the lane starts to have at least the required width

◆ getRightBorders()

BorderSubSet* adore::env::BorderBased::LaneChangeGeometry::getRightBorders ( )
inline

Get the sequence of inner Borders.

Returns
BAContainer*

◆ getViewingDistance()

double adore::env::BorderBased::LaneChangeGeometry::getViewingDistance ( ) const
inline

Get the viewing distance.

Returns
double viewing distance
Here is the caller graph for this function:

◆ isValid()

bool adore::env::BorderBased::LaneChangeGeometry::isValid ( ) const
inline

Check whether the LaneChangeGeometry is valid.

Returns
true if the LaneChangeGeometry is valid
false if the LaneChangeGeometry is invalid
Here is the caller graph for this function:

◆ update()

template<int lfg_a, int lfg_b>
void adore::env::BorderBased::LaneChangeGeometry::update ( LaneFollowingGeometry< lfg_a, lfg_b > *  lfg,
BorderSet borderSet,
adore::env::VehicleMotionState9d ego,
int  lfg_adjacency_i_start,
adore::view::ALaneChangeView::direction  direction,
double  review_distance,
double  preview_distance,
double  adjacency_lower_limit = 0.0 
)
inline

update the road geometry

Parameters
lfgassociated LaneFollowingGeometry
borderSetset of all borders
egoego state
lfg_adjacency_i_start
directiondirection of the LaneChangeGeometry
review_distancehow far to look backwards
preview_distancehow far to look forwards
adjacency_lower_limit
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_adjacency_s0

double adore::env::BorderBased::LaneChangeGeometry::m_adjacency_s0

◆ m_adjacency_s1

double adore::env::BorderBased::LaneChangeGeometry::m_adjacency_s1

◆ m_borderSequence

BorderBased::BAContainer adore::env::BorderBased::LaneChangeGeometry::m_borderSequence

◆ m_borderSubSet

TBorderSubSet adore::env::BorderBased::LaneChangeGeometry::m_borderSubSet

◆ m_centerBorder_fct

function_type_xyz adore::env::BorderBased::LaneChangeGeometry::m_centerBorder_fct

function: s-coordinate -> euclidian coordinates for center borders

◆ m_centerBorderDistance_fct

function_type_scalar adore::env::BorderBased::LaneChangeGeometry::m_centerBorderDistance_fct

function: s-coordinate -> distance to center border

◆ m_direction

adore::view::ALaneChangeView::direction adore::env::BorderBased::LaneChangeGeometry::m_direction

direction of lane change view

◆ m_innerBorderSequence

BorderBased::BAContainer adore::env::BorderBased::LaneChangeGeometry::m_innerBorderSequence

◆ m_leftBorder_fct

function_type_xyz adore::env::BorderBased::LaneChangeGeometry::m_leftBorder_fct

function: s-coordinate -> euclidian coordinates for left borders

◆ m_leftBorderDistance_fct

function_type_scalar adore::env::BorderBased::LaneChangeGeometry::m_leftBorderDistance_fct

function: s-coordinate -> distance to left border

◆ m_lfg_adjacency_b0

Border* adore::env::BorderBased::LaneChangeGeometry::m_lfg_adjacency_b0

◆ m_lfg_adjacency_b1

Border* adore::env::BorderBased::LaneChangeGeometry::m_lfg_adjacency_b1

◆ m_lfg_adjacency_bn0

BorderBased::Node* adore::env::BorderBased::LaneChangeGeometry::m_lfg_adjacency_bn0

◆ m_lfg_adjacency_bn1

BorderBased::Node* adore::env::BorderBased::LaneChangeGeometry::m_lfg_adjacency_bn1

◆ m_lfg_adjacency_i0

int adore::env::BorderBased::LaneChangeGeometry::m_lfg_adjacency_i0

◆ m_lfg_adjacency_i1

int adore::env::BorderBased::LaneChangeGeometry::m_lfg_adjacency_i1

◆ m_reference_fct

function_type_xyz adore::env::BorderBased::LaneChangeGeometry::m_reference_fct

◆ m_rightBorder_fct

function_type_xyz adore::env::BorderBased::LaneChangeGeometry::m_rightBorder_fct

function: s-coordinate -> euclidian coordinates for right borders

◆ m_rightBorderDistance_fct

function_type_scalar adore::env::BorderBased::LaneChangeGeometry::m_rightBorderDistance_fct

function: s-coordinate -> distance to right border

◆ m_s_lane_width_closed

double adore::env::BorderBased::LaneChangeGeometry::m_s_lane_width_closed

s-coordinate where lane ends to have the required width

◆ m_s_lane_width_open

double adore::env::BorderBased::LaneChangeGeometry::m_s_lane_width_open

s-coordinate where lane starts to have the required width for driving on that lane

◆ m_s_viewing_distance

double adore::env::BorderBased::LaneChangeGeometry::m_s_viewing_distance

s-coordinate of the end of the viewing horizon

◆ m_vehicle_width

double adore::env::BorderBased::LaneChangeGeometry::m_vehicle_width

ego vehicle width

◆ m_view_valid

bool adore::env::BorderBased::LaneChangeGeometry::m_view_valid

flag whether view is valid


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