delphyne
IdmPlanner< T > Class Template Reference

Detailed Description

template<typename T>
class delphyne::IdmPlanner< T >

IdmPlanner implements the IDM (Intelligent Driver Model) equation governing longitudinal accelerations of a vehicle in single-lane traffic [1, 2].

It is derived based on qualitative observations of actual driving behavior and captures objectives such as keeping a safe distance behind a lead vehicle, maintaining a desired speed, and accelerating and decelerating within comfortable limits.

The IDM equation produces accelerations that realize smooth transitions between the following three modes:

  • Free-road behavior: when the distance to the leading car is large, the IDM regulates acceleration to match the desired speed v_0.
  • Fast-closing-speed behavior: when the target distance decreases, an interaction term compensates for the velocity difference, while keeping deceleration comfortable according to parameter b.
  • Small-distance behavior: within small net distances to the lead vehicle, comfort is ignored in favor of increasing this distance to s_0.

See the corresponding .cc file for details about the IDM equation.

Instantiated templates for the following kinds of T's are provided:

  • double
  • drake::AutoDiffXd
  • drake::symbolic::Expression

They are already available to link against in the containing library.

[1] Martin Treiber and Arne Kesting. Traffic Flow Dynamics, Data, Models, and Simulation. Springer, 2013.

[2] https://en.wikipedia.org/wiki/Intelligent_driver_model.

#include <src/systems/idm_planner.h>

Public Member Functions

 IdmPlanner ()=delete
 

Static Public Member Functions

static const T Evaluate (const IdmPlannerParameters< T > &params, const T &ego_velocity, const T &target_distance, const T &target_distance_dot)
 Evaluates the IDM equation for the chosen planner parameters params, given the current velocity ego_velocity, distance to the lead car target_distance, and the closing velocity target_distance_dot. More...
 

Constructor & Destructor Documentation

◆ IdmPlanner()

IdmPlanner ( )
delete

Member Function Documentation

◆ Evaluate()

const T Evaluate ( const IdmPlannerParameters< T > &  params,
const T &  ego_velocity,
const T &  target_distance,
const T &  target_distance_dot 
)
static

Evaluates the IDM equation for the chosen planner parameters params, given the current velocity ego_velocity, distance to the lead car target_distance, and the closing velocity target_distance_dot.

The returned value is a longitudinal acceleration.


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