Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
VehicleModelInterface.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Dense>
4#include <array>
5#include <algorithm>
6#include "types.hpp"
7#include "configParser.hpp"
8
9// Interface for all vehicle models
11public:
12 virtual ~IVehicleModel() = default;
13
14 // Configuration
15 virtual bool readConfig(class ConfigElement& config) = 0;
16
17 // State getters
18 virtual Eigen::Vector3d getPosition() = 0;
19 virtual Eigen::Vector3d getOrientation() = 0;
20 virtual Eigen::Vector3d getVelocity() = 0;
21 virtual Eigen::Vector3d getAcceleration() = 0;
22 virtual Eigen::Vector3d getAngularVelocity() = 0;
23 virtual Eigen::Vector3d getAngularAcceleration() = 0;
24
25 virtual Wheels getSteeringAngles() = 0;
26 virtual double getSteeringWheelAngle() = 0;
27 virtual double getVoltageTS() = 0;
28 virtual double getCurrentTS() = 0;
29 virtual Wheels getWheelspeeds() = 0;
30 virtual Wheels getWheelOrientations() = 0;
31 virtual Wheels getTorques() = 0;
32
33 // State setters
34 virtual void setTorques(Wheels in) = 0;
35 virtual void setRpmSetpoints(Wheels in) = 0;
36 virtual void setMaxTorques(Wheels in) = 0;
37 virtual void setMinTorques(Wheels in) = 0;
38 virtual void setSteeringSetpointFront(double in) = 0;
39 virtual void setSteeringSetpointRear(double in) = 0;
40 virtual void setThrottle(Wheels in) = 0;
41 virtual void setPowerGroundSetpoint(double in) = 0;
42 virtual void setPosition(Eigen::Vector3d position) = 0;
43 virtual void setOrientation(Eigen::Vector3d orientation) = 0;
44
45 // Simulation methods
46 virtual void forwardIntegrate(double dt) = 0;
47 virtual std::array<Eigen::Vector3d, 4> getWheelPositions() = 0;
48};
virtual double getCurrentTS()=0
virtual double getSteeringWheelAngle()=0
virtual std::array< Eigen::Vector3d, 4 > getWheelPositions()=0
virtual void setMaxTorques(Wheels in)=0
virtual void forwardIntegrate(double dt)=0
virtual Eigen::Vector3d getVelocity()=0
virtual void setSteeringSetpointFront(double in)=0
virtual Eigen::Vector3d getOrientation()=0
virtual void setPosition(Eigen::Vector3d position)=0
virtual Eigen::Vector3d getAngularAcceleration()=0
virtual Eigen::Vector3d getPosition()=0
virtual Wheels getTorques()=0
virtual void setThrottle(Wheels in)=0
virtual void setRpmSetpoints(Wheels in)=0
virtual void setOrientation(Eigen::Vector3d orientation)=0
virtual Wheels getSteeringAngles()=0
virtual Wheels getWheelOrientations()=0
virtual Eigen::Vector3d getAngularVelocity()=0
virtual Wheels getWheelspeeds()=0
virtual void setTorques(Wheels in)=0
virtual void setMinTorques(Wheels in)=0
virtual void setSteeringSetpointRear(double in)=0
virtual ~IVehicleModel()=default
virtual Eigen::Vector3d getAcceleration()=0
virtual void setPowerGroundSetpoint(double in)=0
virtual bool readConfig(class ConfigElement &config)=0
virtual double getVoltageTS()=0