2.2.3.7. vehicle_model module¶
Module implementing vehicle model to translate different values into others.
Translate steering wheel angle to ackermann angle and the other way around as well as translating acceleration to necessary motor torque and service brake pressure.
- class vehicle_model.VehicleModel(m: float, radius: float, gear_ratio: float, steering_wheel_angle_range: float, steering_wheel_angle_offset: float, steering_wheel_to_ackermann_angle_factor: float)[source]¶
Bases:
objectVehicle Model class to implement functionalities to translate different values into others.
Translate steering wheel angle to ackermann angle and the other way around as well as translating acceleration to necessary motor torque and service brake pressure.
- steering_wheel_angle_range¶
Range of steering [degrees] from most left to most right steering wheel angle.
- Type:
- steering_wheel_angle_offset¶
Offset of steering wheel angle, where the vehicle really drives straight.
- Type:
- steering_wheel_to_ackermann_angle_factor¶
Factor to convert steering wheel angles [rad] to ackermann angle [rad].
- Type:
- ackermann_to_steering_wheel_angle_lut¶
LookUpTable between ackermann angle [rad] and steering wheel angle [degrees].
- Type:
interp1d
- steering_wheel_to_ackermann_angle_lut¶
LookUpTable between steering wheel angle [degrees] and ackermann angle [rad].
- Type:
interp1d
Initialize Vehicle Model.
Static Parmaters derived by Benjamin Deml, Birk Blumhoff and Oliver Zbaranski.
- Parameters:
m (float) – Vehicle mass [kg].
radius (float) – Wheel radius [m].
gear_ratio (float) – Ratio of gear on rear axle.
steering_wheel_angle_range (float) – Range of steering [degrees] from most left to most right steering wheel angle.
steering_wheel_angle_offset (float) – Offset of steering wheel angle, where the vehicle really drives straight.
steering_wheel_to_ackermann_angle_factor (float) – Factor to convert steering wheel angles [rad] to ackermann angle [rad].
- acceleration_to_motor_torque(acceleration: ndarray[Any, dtype[ScalarType]] | float) ndarray[Any, dtype[ScalarType]] | float[source]¶
Translate reference acceleration [m/s^2] into necessary motor torque for total powertrain [Nm].
Calculations derived by Oliver Zbaranski.
- acceleration_to_pneumatic_pressure(brake_acceleration: ndarray[Any, dtype[ScalarType]] | float) ndarray[Any, dtype[ScalarType]] | float[source]¶
Translate reference acceleration [m/s^2] into necessary pneumatic pressure for the service brake [bar].
Calculations based on Benjamin Deml.
- ackermann_to_steering_wheel_angle(ackermann_angle: float) float[source]¶
Translate ackermann angle [rad] to steering wheel angle [degrees].
- motor_torque(acceleration: float) float[source]¶
Translate reference acceleration [m/s^2] into necessary motor torque for total powertrain [Nm].
Calculations derived by Oliver Zbaranski.
- pneumatic_pressure(acceleration: float) float[source]¶
Translate reference acceleration [m/s^2] into necessary pneumatic pressure for the service brake [bar].
Calculations based on Benjamin Deml.
- prepare_steering_look_up_tables()[source]¶
Prepare look up table between steering wheel angle and ackermann angle and vice versa.
- steering_wheel_to_ackermann_angle(steering_wheel_angle: float) float[source]¶
Translate steering wheel angle [degrees] to ackermann angle [rad].
Uses the previously calculated look up table.
- steering_wheel_to_ackermann_angle_precise(steering_wheel_angle: ndarray[Any, dtype[ScalarType]] | float) ndarray[Any, dtype[ScalarType]] | float[source]¶
Precisely calculate ackermann angle(s) [rad] for given steering wheel angle(s) [rad] based on steering model.
Steering Model derived by Birk Blumhoff. Overwritten by linear relationship defined by an steering wheel offset and steering wheel angle factor.