Drake
IdmPlanner< T > Class Template Reference

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

#include <drake/automotive/idm_planner.h>

Public Member Functions

 IdmPlanner ()=delete
 
Does not allow copy, move, or assignment
 IdmPlanner (const IdmPlanner &)=delete
 
IdmPlanneroperator= (const IdmPlanner &)=delete
 
 IdmPlanner (IdmPlanner &&)=delete
 
IdmPlanneroperator= (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...
 

Detailed Description

template<typename T>
class drake::automotive::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:

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.

Constructor & Destructor Documentation

IdmPlanner ( const IdmPlanner< T > &  )
delete
IdmPlanner ( IdmPlanner< T > &&  )
delete
IdmPlanner ( )
delete

Member Function Documentation

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.

Here is the call graph for this function:

Here is the caller graph for this function:

IdmPlanner& operator= ( const IdmPlanner< T > &  )
delete
IdmPlanner& operator= ( IdmPlanner< T > &&  )
delete

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