delphyne
|
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:
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:
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>
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... | |
Default constructor.
|
explicit |
Scalar-converting copy constructor.
|
override |
const drake::systems::InputPort< T > & get_force_input_port |
Returns the input port that contains the applied powertrain force.
const drake::systems::OutputPort< T > & get_state_output_port |
Returns the output port that contains the bicycle states.
const drake::systems::InputPort< T > & get_steering_input_port |
Returns the input port that contains the steering angle.