File i_vehicle.h
Last update: 22.04.2026Location: autonomy/simulation/utilities/vehicle/i_vehicle.h
Classes
Namespaces
Includes
- autonomy/simulation/utilities/vehicle_controller/i_vehicle_controller.h
- autonomy/simulation/utilities/vehicle_model/i_vehicle_model.h
- autonomy/simulation/utilities/vehicle_state/vehicle_state.h
-
-
-
Source
#ifndef AUTONOMY_SIMULATION_UTILITIES_VEHICLE_IVEHICLE_H
#define AUTONOMY_SIMULATION_UTILITIES_VEHICLE_IVEHICLE_H
#include "autonomy/simulation/utilities/vehicle_controller/i_vehicle_controller.h"
#include "autonomy/simulation/utilities/vehicle_model/i_vehicle_model.h"
#include "autonomy/simulation/utilities/vehicle_state/vehicle_state.h"
#include <memory>
#include <utility>
#include <vector>
namespace simulation_framework
{
namespace utilities
{
namespace vehicle
{
class IVehicle
{
public:
virtual ~IVehicle() = default;
virtual std::pair<state::MotionState, state::ControlInput> RequestMotionState(
const state::MotionState& current,
const std::vector<state::MotionState>& request,
double dt) = 0;
virtual void RegisterController(std::unique_ptr<controller::IVehicleController> controller) = 0;
virtual void RegisterModel(std::unique_ptr<model::IVehicleModel<double>> model) = 0;
virtual const controller::IVehicleController* GetController() const = 0;
virtual const model::IVehicleModel<double>* GetModel() const = 0;
};
} // namespace vehicle
} // namespace utilities
} // namespace simulation_framework
#endif // AUTONOMY_SIMULATION_UTILITIES_VEHICLE_IVEHICLE_H