A class with a geometry description of the current lane. More...
#include <lanefollowinggeometry.h>
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 |
Public Member Functions | |
LaneFollowingGeometry () | |
Construct a new LaneFollowingGeometry object. More... | |
void | update (BorderSet *borderSet, BorderTrace *borderTrace, BorderCostMap *borderCost, Border *start, adore::env::VehicleMotionState9d *ego, double lookahead_distance, double lookbehind_distance, double smoothness=0.05, bool activate_navigation=false) |
update the road geometry More... | |
bool | computeNavigationCost (bool activate_navigation, BorderCostMap *borderCostMap) |
void | excludeObstaclePoint (double X, double Y, double s_min, double s_safety, double n_safety, double s_off=0.0) |
Modify a lane boundary to exclude a given point. More... | |
BorderAccumulator * | getRightBorders () |
Get the right borders of the LaneFollowingGeometry. More... | |
BorderAccumulator * | getLeftBorders () |
Get the left borders of the LaneFollowingGeometry. More... | |
Border * | getBestMatchingBorder (double X, double Y, double max_deviation) |
Get the best matching border for a given ego position. More... | |
bool | isValid () const |
Check whether the LaneFollowingGeometry is valid. More... | |
double | getViewingDistance () const |
Get the viewing distance. More... | |
double | getSMax () const |
double | getSMin () const |
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... | |
function_type_xyz * | getCenterline () |
Get the centerline of the lane. More... | |
function_type2d * | getCenterlineNormal () |
Get the Centerline Normal object. More... | |
double | getCurvature (double s, int derivative) |
Get the curvature of the lane at a certain position. More... | |
BAContainer::iterator | begin () |
Get the begin()-iterator of the BAContainer of the right borders. More... | |
BAContainer::iterator | end () |
Get the end()-iterator of the BAContainer of the right borders. More... | |
double | getHeading (double s) |
Get the heading at a certain position. More... | |
double | getOffsetOfLeftBorder (double s) |
Get the offset of the left border at a certain position. More... | |
function_type_scalar * | getOffsetOfLeftBorderFct () |
Get the function that holds the offset of left borders. More... | |
double | getOffsetOfRightBorder (double s) |
Get the offset of the right border at a certain position. More... | |
function_type_scalar * | getOffsetOfRightBorderFct () |
Get the function that holds the offset of right borders. More... | |
function_type_xyz * | getLeftBorderFct () |
function_type_xyz * | getRightBorderFct () |
void | toRelativeCoordinates (double Xg, double Yg, double &s, double &n) |
Transform from euclidian to relative coordinates. More... | |
void | toEucledianCoordinates (double s, double n, double &Xg, double &Yg, double &Zg) |
Transform from relative to euclidian coordinates. More... | |
A class with a geometry description of the current lane.
using adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::function_type2d = adore::mad::function_type2d |
using adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::function_type_scalar = adore::mad::function_type_scalar |
using adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::function_type_xyz = adore::mad::function_type_xyz |
using adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::velocity_profile = function_type_scalar |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Modify a lane boundary to exclude a given point.
Modifies left or right lane boundary in such a way that the specified point no longer resides inside the lane after the operation. The lane boundary with minimum distance to the point is chosen for modification.
X | x-coordinate of the point to exclude |
Y | y-coordinate of the point to exclude |
s_min | |
s_safety | |
n_safety | |
s_off |
|
inline |
Get the best matching border for a given ego position.
max_deviation | if a point located max_deviation from X,Y is inside lfg, a match can be found |
|
inline |
Get the centerline of the lane.
|
inline |
Get the Centerline Normal object.
|
inline |
Get the curvature of the lane at a certain position.
s | s-coordinate of the position |
derivative | which derivative of the curvature should be evaluated |
|
inline |
Get the heading at a certain position.
s | s-coordinate of the position |
|
inline |
|
inline |
Get the left borders of the LaneFollowingGeometry.
|
inline |
Get the offset of the left border at a certain position.
s | s-coordinate of the position |
|
inline |
Get the function that holds the offset of left borders.
|
inline |
Get the offset of the right border at a certain position.
s | s-coordinate of the position |
|
inline |
Get the function that holds the offset of right borders.
|
inline |
Get the s-coordinate where the lane stops to have the required width.
|
inline |
Get the s-coordinate where the lane reaches the required width.
|
inline |
|
inline |
Get the right borders of the LaneFollowingGeometry.
|
inline |
|
inline |
|
inline |
Get the viewing distance.
|
inline |
Check whether the LaneFollowingGeometry is valid.
|
inline |
Transform from relative to euclidian coordinates.
s | relative s-coordinate |
n | relative n-coordinate |
Xg | euclidian x-coordinate |
Yg | euclidian y-coordinate |
Zg | euclidian z-coordinate |
|
inline |
Transform from euclidian to relative coordinates.
Xg | euclidian x-coordinate |
Yg | euclidian y-coordinate |
s | relative s-coordinate |
n | relative n-coordinate |
|
inline |
update the road geometry
The chosen BorderAccumulationStrategy is BASFollowStraight by default
borderSet | set of all borders |
borderTrace | set of historical borders |
borderCost | navigation cost |
start | start/matched border |
ego | ego state |
lookahead_distance | how far to look in driving direction |
lookbehind_distance | how far to look behind. Note: this parameter requires a borderTrace length of at least equal value |
smoothness | smoothing value for polynom fit |
activate_navigation | flag whether navigation is activated (default: false) |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::dddXbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::dddYbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::ddXbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::ddYbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::dXbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::dYbuf[PolyEvaluatePoints] |
function_type_scalar adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerHeading_fct |
function_type2d adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerNormal_fct |
function_type_xyz adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerRaw_fct |
function: s-coordinate -> euclidian coordinates for raw centerline
function_type_xyz adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerSmoothed_fct |
function: s-coordinate -> euclidian coordinates for smoothed centerline
function_type_scalar adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerSmoothedCurvature_fct |
function_type_scalar adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerSmoothedCurvatureDerivative_fct |
function_type_xyz adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerSmoothedDerivative1_fct |
function_type_xyz adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_centerSmoothedDerivative2_fct |
int adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_egoBorderIndex |
function_type_xyz adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_leftBorder_fct |
function: s-coordinate -> euclidian coordinates for left borders
BorderAccumulator adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_leftBorders |
function_type_scalar adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_leftDistance_fct |
function: s-coordinate -> distance to left border
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_min_view_distance |
function_type_scalar adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_navigationCost_fct |
function: s-coordinate -> distance to goal
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_planning_time |
function_type_xyz adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_rightBorder_fct |
function: s-coordinate -> euclidian coordinates for right borders
BorderAccumulator adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_rightBorders |
function_type_scalar adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_rightDistance_fct |
function: s-coordinate -> distance to right border
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_s_lane_width_closed |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_s_lane_width_open |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_s_max |
s-coordinate of viewing horizon end
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_s_min |
s-coordinate of viewing horizon start
Border* adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_start |
int adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_startIndexInRightBorders |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_vehicle_width |
ego vehicle width
velocity_profile adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_velocity_fct |
bool adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::m_view_valid |
indicate whether view is valid
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::nXbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::nYbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::Sbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::Xbuf[PolyEvaluatePoints] |
double adore::env::BorderBased::LaneFollowingGeometry< PolyFitPoints, PolyEvaluatePoints >::Ybuf[PolyEvaluatePoints] |