Struct jalansim::dynamics::models::BicycleDynamics

template <typename T>

ClassList > jalansim > dynamics > models > BicycleDynamics

Dynamic bicycle model with tire slip and weight transfer. More...

  • #include <bicycle_dynamics.hpp>

Public Attributes

Type Name
T C_Sf = 4.718
Front cornering stiffness (N/rad)
T C_Sr = 5.4562
Rear cornering stiffness (N/rad)
T I_z = 0.04712
Yaw moment of inertia (kg⋅m²)
T a = 0.15875
Distance from center of gravity to front axle (m)
T acc_max = 3.0
Maximum acceleration (m/s²)
T acc_min = -5.0
Minimum acceleration (m/s²)
T b = 0.17145
Distance from center of gravity to rear axle (m)
T delta_dot_max = 3.2
Maximum steering rate (rad/s)
T delta_dot_min = -3.2
Minimum steering rate (rad/s)
T delta_max = 0.4189
Maximum steering angle (rad)
T delta_min = -0.4189
Minimum steering angle (rad)
T h = 0.074
Height of center of gravity (m)
T m = 3.74
Vehicle mass (kg)
T mu = 1.0489
Friction coefficient.
T v_max = 3.0
Maximum velocity (m/s)
T v_min = 0.0
Minimum velocity (m/s)

Public Static Attributes

Type Name
std::size_t INPUT_DIM = 2
Input dimension: [delta_dot, a_long].
std::size_t STATE_DIM = 7
State dimension: [x, y, psi, v, delta, psi_dot, beta].
T g = 9.81
Gravitational acceleration (m/s²)

Public Functions

Type Name
JALANSIM_HOST_DEVICE T accel_constraints (T v, T a_cmd) const
Apply acceleration constraints.
JALANSIM_HOST_DEVICE void reset ()
Reset the model to initial state.
JALANSIM_HOST_DEVICE void rhs (const T * x, const T * u_cmd, T * dx, T dt) const
Compute state derivatives using dynamic bicycle model.
JALANSIM_HOST_DEVICE T steering_constraints (T delta, T delta_dot_cmd) const
Apply steering rate constraints.

Public Static Functions

Type Name
JALANSIM_HOST_DEVICE T clamp (T v, T lo, T hi)
Clamp a value between lower and upper bounds.

Detailed Description

Implements a more sophisticated bicycle model that includes dynamic effects such as tire slip angles, lateral tire forces, and weight transfer during acceleration/braking. Uses Pacejka-like tire models and includes side slip angle dynamics. Switches between kinematic and dynamic models at low speeds.

State: [x, y, psi, v, delta, psi_dot, beta] Input: [delta_dot, acceleration]

Template parameters:

  • T Numeric type (float, double)

Public Attributes Documentation

variable C_Sf

Front cornering stiffness (N/rad)

T jalansim::dynamics::models::BicycleDynamics< T >::C_Sf;

variable C_Sr

Rear cornering stiffness (N/rad)

T jalansim::dynamics::models::BicycleDynamics< T >::C_Sr;

variable I_z

Yaw moment of inertia (kg⋅m²)

T jalansim::dynamics::models::BicycleDynamics< T >::I_z;

variable a

Distance from center of gravity to front axle (m)

T jalansim::dynamics::models::BicycleDynamics< T >::a;

variable acc_max

Maximum acceleration (m/s²)

T jalansim::dynamics::models::BicycleDynamics< T >::acc_max;

variable acc_min

Minimum acceleration (m/s²)

T jalansim::dynamics::models::BicycleDynamics< T >::acc_min;

variable b

Distance from center of gravity to rear axle (m)

T jalansim::dynamics::models::BicycleDynamics< T >::b;

variable delta_dot_max

Maximum steering rate (rad/s)

T jalansim::dynamics::models::BicycleDynamics< T >::delta_dot_max;

variable delta_dot_min

Minimum steering rate (rad/s)

T jalansim::dynamics::models::BicycleDynamics< T >::delta_dot_min;

variable delta_max

Maximum steering angle (rad)

T jalansim::dynamics::models::BicycleDynamics< T >::delta_max;

variable delta_min

Minimum steering angle (rad)

T jalansim::dynamics::models::BicycleDynamics< T >::delta_min;

variable h

Height of center of gravity (m)

T jalansim::dynamics::models::BicycleDynamics< T >::h;

variable m

Vehicle mass (kg)

T jalansim::dynamics::models::BicycleDynamics< T >::m;

variable mu

Friction coefficient.

T jalansim::dynamics::models::BicycleDynamics< T >::mu;

variable v_max

Maximum velocity (m/s)

T jalansim::dynamics::models::BicycleDynamics< T >::v_max;

variable v_min

Minimum velocity (m/s)

T jalansim::dynamics::models::BicycleDynamics< T >::v_min;

Public Static Attributes Documentation

variable INPUT_DIM

Input dimension: [delta_dot, a_long].

std::size_t jalansim::dynamics::models::BicycleDynamics< T >::INPUT_DIM;

variable STATE_DIM

State dimension: [x, y, psi, v, delta, psi_dot, beta].

std::size_t jalansim::dynamics::models::BicycleDynamics< T >::STATE_DIM;

variable g

Gravitational acceleration (m/s²)

T jalansim::dynamics::models::BicycleDynamics< T >::g;

Public Functions Documentation

function accel_constraints

Apply acceleration constraints.

inline JALANSIM_HOST_DEVICE T jalansim::dynamics::models::BicycleDynamics::accel_constraints (
    T v,
    T a_cmd
) const

Parameters:

  • v Current velocity
  • a_cmd Commanded acceleration

Returns:

Constrained acceleration


function reset

Reset the model to initial state.

inline JALANSIM_HOST_DEVICE void jalansim::dynamics::models::BicycleDynamics::reset () 

function rhs

Compute state derivatives using dynamic bicycle model.

inline JALANSIM_HOST_DEVICE void jalansim::dynamics::models::BicycleDynamics::rhs (
    const T * x,
    const T * u_cmd,
    T * dx,
    T dt
) const

Parameters:

  • x State vector [x, y, psi, v, delta, psi_dot, beta]
  • u_cmd Input vector [delta_dot, a_long]
  • dx Output state derivatives
  • dt Time step for constraint enforcement

function steering_constraints

Apply steering rate constraints.

inline JALANSIM_HOST_DEVICE T jalansim::dynamics::models::BicycleDynamics::steering_constraints (
    T delta,
    T delta_dot_cmd
) const

Parameters:

  • delta Current steering angle
  • delta_dot_cmd Commanded steering rate

Returns:

Constrained steering rate


Public Static Functions Documentation

function clamp

Clamp a value between lower and upper bounds.

static inline JALANSIM_HOST_DEVICE T jalansim::dynamics::models::BicycleDynamics::clamp (
    T v,
    T lo,
    T hi
) 

Parameters:

  • v Value to clamp
  • lo Lower bound

  • hi Upper bound

Returns:

Clamped value



The documentation for this class was generated from the following file include/jalansim/dynamics/models/bicycle_dynamics.hpp