delphyne
BicycleCar< T > Class Template Referencefinal

Detailed Description

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

BicycleCar implements a nonlinear rigid body bicycle model from Althoff & Dolan (2014) [1].

The three-DOF model captures the rigid-body dynamics in the lateral, longitudinal, and yaw directions but not in the roll and pitch directions. The model assumes a vehicle that has two wheels: one at the front and one at the rear. It has been demonstrated (e.g. [2]) that the representation reasonably approximates the dynamics of a four-wheeled vehicle; hence the model is useful as a simplified abstraction of car dynamics.

The states of the model are:

  • yaw angle Ψ [rad]
  • yaw rate Ψ_dot [rad/s]
  • slip angle at the center of mass β [rad]
  • velocity magnitude (vector magnitude at the slip angle) vel [m/s]
  • x-position of the center of mass sx [m]
  • y-position of the center of mass sy [m]

N.B. "slip angle" (β) is the angle made between the body and the velocity vector. Thus, the velocity vector can be resolved into the body-relative components vx_body = cos(β) and vy_body = sin(β). β = 0 means the velocity vector is pointing along the bicycle's longitudinal axis.

Inputs:

Output:

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 libdrakeAutomotive.

[1] M. Althoff and J.M. Dolan, Online verification of automated road vehicles using reachability analysis, IEEE Transactions on Robotics, 30(4), 2014, pp. 903-908. DOI: 10.1109/TRO.2014.2312453.

[2] M. Althoff and J. M. Dolan, Reachability computation of low-order models for the safety verification of high-order road vehicle models, in Proc. of the American Control Conference, 2012, pp. 3559–3566.

#include <src/systems/bicycle_car.h>

Inheritance diagram for BicycleCar< T >:
[legend]

Public Member Functions

 BicycleCar ()
 Default constructor. More...
 
template<typename U >
 BicycleCar (const BicycleCar< U > &)
 Scalar-converting copy constructor. More...
 
 ~BicycleCar () override
 
const drake::systems::InputPort< T > & get_steering_input_port () const
 Returns the input port that contains the steering angle. More...
 
const drake::systems::InputPort< T > & get_force_input_port () const
 Returns the input port that contains the applied powertrain force. More...
 
const drake::systems::OutputPort< T > & get_state_output_port () const
 Returns the output port that contains the bicycle states. More...
 

Constructor & Destructor Documentation

◆ BicycleCar() [1/2]

Default constructor.

◆ BicycleCar() [2/2]

BicycleCar ( const BicycleCar< U > &  )
explicit

Scalar-converting copy constructor.

◆ ~BicycleCar()

~BicycleCar
override

Member Function Documentation

◆ get_force_input_port()

const drake::systems::InputPort< T > & get_force_input_port

Returns the input port that contains the applied powertrain force.

◆ get_state_output_port()

const drake::systems::OutputPort< T > & get_state_output_port

Returns the output port that contains the bicycle states.

◆ get_steering_input_port()

const drake::systems::InputPort< T > & get_steering_input_port

Returns the input port that contains the steering angle.


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