|
Formula Student Autonomous Systems
The code for the main driverless system
|
#include <VehicleModelBicycle.hpp>


Classes | |
| struct | AerodynamicsModel |
| struct | PowertrainModel |
| struct | SteeringModel |
| struct | TireModel |
Public Member Functions | |
| VehicleModelBicycle () | |
| bool | readConfig (ConfigElement &config) override |
| Eigen::Vector3d | getPosition () override |
| Eigen::Vector3d | getOrientation () override |
| Eigen::Vector3d | getVelocity () override |
| Eigen::Vector3d | getAcceleration () override |
| Eigen::Vector3d | getAngularVelocity () override |
| Eigen::Vector3d | getAngularAcceleration () override |
| Wheels | getSteeringAngles () override |
| double | getSteeringWheelAngle () override |
| double | getVoltageTS () override |
| double | getCurrentTS () override |
| Wheels | getWheelspeeds () override |
| Wheels | getWheelOrientations () override |
| Wheels | getTorques () override |
| void | setTorques (Wheels in) override |
| void | setRpmSetpoints (Wheels in) override |
| void | setMaxTorques (Wheels in) override |
| void | setMinTorques (Wheels in) override |
| void | setSteeringSetpointFront (double in) override |
| void | setSteeringSetpointRear (double in) override |
| void | setThrottle (Wheels in) override |
| void | setPowerGroundSetpoint (double in) override |
| void | setPosition (Eigen::Vector3d position) override |
| void | setOrientation (Eigen::Vector3d orientation) override |
| void | forwardIntegrate (double dt) override |
| std::array< Eigen::Vector3d, 4 > | getWheelPositions () override |
| const AerodynamicsModel & | getAeroModel () const |
| const void | getLongitudinalForces (double &Fx_FL, double &Fx_FR, double &Fx_RL, double &Fx_RR) const |
| const PowertrainModel & | getPowertrainModel () const |
| const void | getNormalForces (double &Fz_Front, double &Fz_Rear) const |
| const void | getSlipAngles (double &kappaFront, double &kappaRear) const |
| const SteeringModel & | getSteeringModel () const |
| const void | getWheelGeometry (double &steeringFront, Eigen::Vector3d &rFL, Eigen::Vector3d &rFR, Eigen::Vector3d &rRL, Eigen::Vector3d &rRR, Eigen::Vector3d &rFront, Eigen::Vector3d &rRear, Eigen::Vector3d &vFL, Eigen::Vector3d &vFR, Eigen::Vector3d &vRL, Eigen::Vector3d &vRR) const |
| const Eigen::Vector3d | getCalculateAccelerations (double steeringFront, double Fx_FL, double Fx_FR, double Fx_RL, double Fx_RR, double Fy_Front, double Fy_Rear, double drag, const Eigen::Vector3d &friction) const |
| Eigen::Vector3d | getGetDynamicStates (double dt) |
| void | setVelocity (const Eigen::Vector3d &vel) |
| void | setWheelSpeedsTester (const Eigen::Vector3d &vFL, const Eigen::Vector3d &vFR, const Eigen::Vector3d &vRL, const Eigen::Vector3d &vRR) |
Public Member Functions inherited from IVehicleModel | |
| virtual | ~IVehicleModel ()=default |
Static Public Attributes | |
| static constexpr double | GRAVITY = 9.81 |
| static constexpr double | ROLLING_RESISTANCE_COEFF = 0.015 |
| static constexpr double | AIR_DENSITY = 1.29 |
| static constexpr double | VELOCITY_THRESHOLD = 0.1 |
| static constexpr double | ANGULAR_VELOCITY_THRESHOLD = 0.001 |
| static constexpr double | TORQUE_THRESHOLD = 0.5 |
| static constexpr double | VELOCITY_MIN_THRESHOLD = 0.3 |
| static constexpr double | TWO_PI = 2.0 * M_PI |
Private Member Functions | |
| void | calculateWheelGeometry (double &steeringFront, Eigen::Vector3d &rFL, Eigen::Vector3d &rFR, Eigen::Vector3d &rRL, Eigen::Vector3d &rRR, Eigen::Vector3d &rFront, Eigen::Vector3d &rRear, Eigen::Vector3d &vFL, Eigen::Vector3d &vFR, Eigen::Vector3d &vRL, Eigen::Vector3d &vRR) const |
| void | calculateLongitudinalForces (double &Fx_FL, double &Fx_FR, double &Fx_RL, double &Fx_RR) const |
| Eigen::Vector3d | calculateAccelerations (double steeringFront, double Fx_FL, double Fx_FR, double Fx_RL, double Fx_RR, double Fy_Front, double Fy_Rear, double drag, const Eigen::Vector3d &friction) const |
| void | updateWheelSpeeds (const Eigen::Vector3d &vFL, const Eigen::Vector3d &vFR, const Eigen::Vector3d &vRL, const Eigen::Vector3d &vRR) |
| Eigen::Vector3d | getDynamicStates (double dt) |
| void | calculateNormalForces (double &Fz_Front, double &Fz_Rear) const |
| void | calculateWeightTransfer (double &Fz_Front, double &Fz_Rear, double &Fx_FL, double &Fx_FR, double &Fx_RL, double &Fx_RR) const |
| void | calculateSlipAngles (double &kappaFront, double &kappaRear) const |
| void | updateWheelSpeeds (double dt) |
| double | processSlipAngleLat (double alpha_input, double Fz) |
Private Attributes | |
| Eigen::Vector3d | position = Eigen::Vector3d::Zero() |
| Eigen::Vector3d | orientation = Eigen::Vector3d::Zero() |
| Eigen::Vector3d | velocity = Eigen::Vector3d::Zero() |
| Eigen::Vector3d | angularVelocity = Eigen::Vector3d::Zero() |
| Eigen::Vector3d | acceleration = Eigen::Vector3d::Zero() |
| Eigen::Vector3d | angularAcceleration = Eigen::Vector3d::Zero() |
| Wheels | steeringAngles = {0.0, 0.0, 0.0, 0.0, 0.0} |
| Wheels | wheelspeeds = {0.0, 0.0, 0.0, 0.0, 0.0} |
| Wheels | wheelOrientations = {0.0, 0.0, 0.0, 0.0, 0.0} |
| Wheels | torques = {0.0, 0.0, 0.0, 0.0, 0.0} |
| Wheels | rpmSetpoints = {0.0, 0.0, 0.0, 0.0, 0.0} |
| Wheels | maxTorques = {0.0, 0.0, 0.0, 0.0, 0.0} |
| Wheels | minTorques = {0.0, 0.0, 0.0, 0.0, 0.0} |
| double | throttleActuationFL = 0.0 |
| double | throttleActuationFR = 0.0 |
| double | throttleActuationRL = 0.0 |
| double | throttleActuationRR = 0.0 |
| double | powerGroundSetpoint = 0.0 |
| double | lf |
| double | lr |
| double | sf |
| double | sr |
| double | m |
| double | Izz |
| double | h_cg |
| AerodynamicsModel | aeroModel |
| TireModel | tireModel |
| PowertrainModel | powertrainModel |
| SteeringModel | steeringModel |
Definition at line 7 of file VehicleModelBicycle.hpp.
| VehicleModelBicycle::VehicleModelBicycle | ( | ) |
Definition at line 10 of file VehicleModelBicycle.cpp.
|
private |
|
private |
Definition at line 362 of file VehicleModelBicycle.cpp.


|
private |
Definition at line 261 of file VehicleModelBicycle.cpp.


|
private |
It seems like this isn't needed anymore with the approach of applying friction to the opposite of the velocity vector instead of Vx only. Drag also applied opposite of Vx instead of simply adding the negative value.
Definition at line 301 of file VehicleModelBicycle.cpp.

|
private |
|
private |
|
overridevirtual |
Implements IVehicleModel.
Definition at line 487 of file VehicleModelBicycle.cpp.

|
overridevirtual |
Implements IVehicleModel.
Definition at line 62 of file VehicleModelBicycle.cpp.
|
inline |
Definition at line 268 of file VehicleModelBicycle.hpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 66 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 64 of file VehicleModelBicycle.cpp.
|
inline |
|
overridevirtual |
Implements IVehicleModel.
Definition at line 76 of file VehicleModelBicycle.cpp.

|
private |
Definition at line 434 of file VehicleModelBicycle.cpp.


|
inline |
|
inline |
|
inline |
|
overridevirtual |
Implements IVehicleModel.
Definition at line 58 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 56 of file VehicleModelBicycle.cpp.
|
inline |
Definition at line 270 of file VehicleModelBicycle.hpp.
|
inline |
|
overridevirtual |
Implements IVehicleModel.
Definition at line 68 of file VehicleModelBicycle.cpp.
|
inline |
Definition at line 274 of file VehicleModelBicycle.hpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 70 of file VehicleModelBicycle.cpp.

|
overridevirtual |
Implements IVehicleModel.
Definition at line 84 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 60 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 74 of file VehicleModelBicycle.cpp.
|
inline |
|
overridevirtual |
Implements IVehicleModel.
Definition at line 82 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 527 of file VehicleModelBicycle.cpp.

|
overridevirtual |
Implements IVehicleModel.
Definition at line 80 of file VehicleModelBicycle.cpp.
|
private |
Definition at line 119 of file VehicleModelBicycle.cpp.


|
overridevirtual |
Implements IVehicleModel.
Definition at line 17 of file VehicleModelBicycle.cpp.


|
overridevirtual |
Implements IVehicleModel.
Definition at line 90 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 92 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 115 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 113 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 109 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 88 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 94 of file VehicleModelBicycle.cpp.

|
overridevirtual |
Implements IVehicleModel.
Definition at line 98 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 102 of file VehicleModelBicycle.cpp.
|
overridevirtual |
Implements IVehicleModel.
Definition at line 86 of file VehicleModelBicycle.cpp.
|
inline |
Definition at line 298 of file VehicleModelBicycle.hpp.
|
inline |
|
private |
|
private |
|
private |
Definition at line 234 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 261 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 13 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 17 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 235 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 233 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 11 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 258 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 257 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 254 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 254 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 256 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 243 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 244 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 231 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 230 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 251 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 263 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 12 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 242 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 255 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 255 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 238 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 264 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 247 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 248 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 249 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 250 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 262 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 18 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 241 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 22 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 232 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 19 of file VehicleModelBicycle.hpp.
|
staticconstexpr |
Definition at line 16 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 240 of file VehicleModelBicycle.hpp.
|
private |
Definition at line 239 of file VehicleModelBicycle.hpp.