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

#include <ocroadbasedprediction.h>

Inheritance diagram for adore::env::OCRoadBasedPrediction:
Inheritance graph
Collaboration diagram for adore::env::OCRoadBasedPrediction:
Collaboration graph

Classes

struct  SearchState
 

Public Member Functions

void setAngleErrorMax (double value)
 
void setTMaxUTC (double value)
 
void setLatPrecision (double value)
 
void setLatError (double value)
 
void setLonError (double value)
 
void setVMax (double value)
 
void setAMax (double value)
 
void setAMin (double value)
 
void setTimeHeadway (double value)
 
void setTimeLeeway (double value)
 
void setDelay (double value)
 
void setLaneWidthPredictions (bool value)
 
void setLateralPredictions (bool value)
 
void setWidthUB (double value)
 
void setWidthLB (double value)
 
 OCRoadBasedPrediction (adore::env::traffic::TrafficMap *trafficMap)
 
virtual bool predict (const traffic::Participant &p, OccupancyCylinderPredictionSet &set) const override
 
void setAngleErrorMax (double value)
 
void setTMaxUTC (double value)
 
void setLatPrecision (double value)
 
void setLatError (double value)
 
void setLonError (double value)
 
void setVMax (double value)
 
void setAMax (double value)
 
void setAMin (double value)
 
void setTimeHeadway (double value)
 
void setTimeLeeway (double value)
 
 OCRoadBasedPrediction (adore::env::traffic::TrafficMap *trafficMap)
 
virtual bool predict (const traffic::Participant &p, OccupancyCylinderPredictionSet &set) const override
 

Private Attributes

double t_max_utc_
 
double lat_precision_
 
double lat_error_
 
double lon_error_
 
double v_max_
 
double a_max_
 
double a_min_
 
double angle_error_max_
 
double time_headway_
 
double time_leeway_
 
double delay_
 
bool lane_width_predictions_
 
bool lateral_predictions_
 
double width_ub_
 
double width_lb_
 
adore::env::traffic::TrafficMaptrafficMap_
 

Detailed Description

A prediction along a given road-graph. Challenges:

  • splits in road graph: continue each arm
  • merges in road graph: continue target arm
  • priorities: do not follow arms, which are rated lower priority than arm followed by ego vehicle
  • narrowing lanes: keep width of object. typically extend object into parallel traffic lane (not head-on) Approach:
  • one border generates one prediction branch
  • objects associated with multiple borders (during lane change) fill initial set with all borders
  • prevent cycles and multi-predictions due to consecutive borders with unordered_set<BorderID> explored
  • compute boundary functions for fastest and slowest travel s->t, so that smax is known and [t0,t1] can be computed for cylinders
  • process a border:
    • retrieve a border from the open list
    • compute centerline between border and left neighbor
    • create a new prediction, which references predecessor prediction
    • generate cylinders along centerline, add to occupancy of prediction
    • add prediction to set
    • add all continuous successors of border to open list

Constructor & Destructor Documentation

◆ OCRoadBasedPrediction() [1/2]

adore::env::OCRoadBasedPrediction::OCRoadBasedPrediction ( adore::env::traffic::TrafficMap trafficMap)
inline

◆ OCRoadBasedPrediction() [2/2]

adore::env::OCRoadBasedPrediction::OCRoadBasedPrediction ( adore::env::traffic::TrafficMap trafficMap)
inline

Member Function Documentation

◆ predict() [1/2]

virtual bool adore::env::OCRoadBasedPrediction::predict ( const traffic::Participant p,
OccupancyCylinderPredictionSet set 
) const
inlineoverridevirtual

formulate one or more predictions for Participant p as an OccupancyCylinderTree (a set of cylinders in xyz and t)

Parameters
pthe participant state information
setthe resulting occupancy prediction is placed in set
Returns
true if prediction is successful

Implements adore::env::OCPredictionStrategy< traffic::Participant >.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ predict() [2/2]

virtual bool adore::env::OCRoadBasedPrediction::predict ( const traffic::Participant p,
OccupancyCylinderPredictionSet set 
) const
inlineoverridevirtual

formulate one or more predictions for Participant p as an OccupancyCylinderTree (a set of cylinders in xyz and t)

Parameters
pthe participant state information
setthe resulting occupancy prediction is placed in set
Returns
true if prediction is successful

Implements adore::env::OCPredictionStrategy< traffic::Participant >.

Here is the call graph for this function:

◆ setAMax() [1/2]

void adore::env::OCRoadBasedPrediction::setAMax ( double  value)
inline
Here is the caller graph for this function:

◆ setAMax() [2/2]

void adore::env::OCRoadBasedPrediction::setAMax ( double  value)
inline

◆ setAMin() [1/2]

void adore::env::OCRoadBasedPrediction::setAMin ( double  value)
inline
Here is the caller graph for this function:

◆ setAMin() [2/2]

void adore::env::OCRoadBasedPrediction::setAMin ( double  value)
inline

◆ setAngleErrorMax() [1/2]

void adore::env::OCRoadBasedPrediction::setAngleErrorMax ( double  value)
inline
Here is the caller graph for this function:

◆ setAngleErrorMax() [2/2]

void adore::env::OCRoadBasedPrediction::setAngleErrorMax ( double  value)
inline

◆ setDelay()

void adore::env::OCRoadBasedPrediction::setDelay ( double  value)
inline
Here is the caller graph for this function:

◆ setLaneWidthPredictions()

void adore::env::OCRoadBasedPrediction::setLaneWidthPredictions ( bool  value)
inline
Here is the caller graph for this function:

◆ setLateralPredictions()

void adore::env::OCRoadBasedPrediction::setLateralPredictions ( bool  value)
inline
Here is the caller graph for this function:

◆ setLatError() [1/2]

void adore::env::OCRoadBasedPrediction::setLatError ( double  value)
inline
Here is the caller graph for this function:

◆ setLatError() [2/2]

void adore::env::OCRoadBasedPrediction::setLatError ( double  value)
inline

◆ setLatPrecision() [1/2]

void adore::env::OCRoadBasedPrediction::setLatPrecision ( double  value)
inline
Here is the caller graph for this function:

◆ setLatPrecision() [2/2]

void adore::env::OCRoadBasedPrediction::setLatPrecision ( double  value)
inline

◆ setLonError() [1/2]

void adore::env::OCRoadBasedPrediction::setLonError ( double  value)
inline
Here is the caller graph for this function:

◆ setLonError() [2/2]

void adore::env::OCRoadBasedPrediction::setLonError ( double  value)
inline

◆ setTimeHeadway() [1/2]

void adore::env::OCRoadBasedPrediction::setTimeHeadway ( double  value)
inline
Here is the caller graph for this function:

◆ setTimeHeadway() [2/2]

void adore::env::OCRoadBasedPrediction::setTimeHeadway ( double  value)
inline

◆ setTimeLeeway() [1/2]

void adore::env::OCRoadBasedPrediction::setTimeLeeway ( double  value)
inline
Here is the caller graph for this function:

◆ setTimeLeeway() [2/2]

void adore::env::OCRoadBasedPrediction::setTimeLeeway ( double  value)
inline

◆ setTMaxUTC() [1/2]

void adore::env::OCRoadBasedPrediction::setTMaxUTC ( double  value)
inline
Here is the caller graph for this function:

◆ setTMaxUTC() [2/2]

void adore::env::OCRoadBasedPrediction::setTMaxUTC ( double  value)
inline

◆ setVMax() [1/2]

void adore::env::OCRoadBasedPrediction::setVMax ( double  value)
inline
Here is the caller graph for this function:

◆ setVMax() [2/2]

void adore::env::OCRoadBasedPrediction::setVMax ( double  value)
inline

◆ setWidthLB()

void adore::env::OCRoadBasedPrediction::setWidthLB ( double  value)
inline
Here is the caller graph for this function:

◆ setWidthUB()

void adore::env::OCRoadBasedPrediction::setWidthUB ( double  value)
inline
Here is the caller graph for this function:

Member Data Documentation

◆ a_max_

double adore::env::OCRoadBasedPrediction::a_max_
private

maximum acceleration. set a_max_=a_min_ to get no divergence.

◆ a_min_

double adore::env::OCRoadBasedPrediction::a_min_
private

minimum acceleration. set a_max_=a_min_ to get no divergence.

◆ angle_error_max_

double adore::env::OCRoadBasedPrediction::angle_error_max_
private

maximum angle error, which is permitted to associate with a border

◆ delay_

double adore::env::OCRoadBasedPrediction::delay_
private

delay after which acceleration is applied

◆ lane_width_predictions_

bool adore::env::OCRoadBasedPrediction::lane_width_predictions_
private

select whether to predict motion of objects up to lane border or only the width of objects relative to lane center

◆ lat_error_

double adore::env::OCRoadBasedPrediction::lat_error_
private

◆ lat_precision_

double adore::env::OCRoadBasedPrediction::lat_precision_
private

maximum lateral overapproximation of the vehicle body

◆ lateral_predictions_

bool adore::env::OCRoadBasedPrediction::lateral_predictions_
private

select whether to predict radius based on lateral motion up to lane width

◆ lon_error_

double adore::env::OCRoadBasedPrediction::lon_error_
private

initial (and constant) (measurement) error to the side of the vehicle

◆ t_max_utc_

double adore::env::OCRoadBasedPrediction::t_max_utc_
private

time at which the prediction ends. (prediciton starts at time stamp of object.)

◆ time_headway_

double adore::env::OCRoadBasedPrediction::time_headway_
private

arriving earlier than expected

◆ time_leeway_

double adore::env::OCRoadBasedPrediction::time_leeway_
private

leaving later than expected

◆ trafficMap_

adore::env::traffic::TrafficMap * adore::env::OCRoadBasedPrediction::trafficMap_
private

a data object, which allows to map between borders and traffic participants

◆ v_max_

double adore::env::OCRoadBasedPrediction::v_max_
private

initial (measurement) error in movement direction of the vehicle maximum speed up until which participant could accelerate. only relevant, if a_max>0

◆ width_lb_

double adore::env::OCRoadBasedPrediction::width_lb_
private

lower bound on prediction width

◆ width_ub_

double adore::env::OCRoadBasedPrediction::width_ub_
private

upper bound on prediction width


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