24 #include <unordered_map> 26 #include "modules/canbus/proto/canbus_conf.pb.h" 27 #include "modules/canbus/proto/chassis.pb.h" 28 #include "modules/canbus/proto/chassis_detail.pb.h" 29 #include "modules/control/proto/control_cmd.pb.h" 32 #include "modules/common/proto/error_code.pb.h" 44 using ::apollo::drivers::canbus::CanSender;
45 using ::apollo::drivers::canbus::MessageManager;
63 virtual common::ErrorCode
Init(
64 const VehicleParameter ¶ms,
65 CanSender<ChassisDetail> *
const can_sender,
66 MessageManager<ChassisDetail> *
const message_manager) = 0;
72 virtual bool Start() = 0;
77 virtual void Stop() = 0;
90 virtual common::ErrorCode
Update(
const control::ControlCommand &command);
105 virtual void Emergency() = 0;
107 virtual common::ErrorCode EnableAutoMode() = 0;
108 virtual common::ErrorCode DisableAutoMode() = 0;
109 virtual common::ErrorCode EnableSteeringOnlyMode() = 0;
110 virtual common::ErrorCode EnableSpeedOnlyMode() = 0;
115 virtual void Gear(Chassis::GearPosition state) = 0;
121 virtual void Brake(
double acceleration) = 0;
126 virtual void Throttle(
double throttle) = 0;
132 virtual void Acceleration(
double acc) = 0;
138 virtual void Steer(
double angle) = 0;
144 virtual void Steer(
double angle,
double angle_spd) = 0;
149 virtual void SetEpbBreak(
const control::ControlCommand &command) = 0;
150 virtual void SetBeam(
const control::ControlCommand &command) = 0;
151 virtual void SetHorn(
const control::ControlCommand &command) = 0;
152 virtual void SetTurningSignal(
const control::ControlCommand &command) = 0;
154 virtual void SetLimits() {}
virtual ~VehicleController()=default
bool is_reset_
Definition: vehicle_controller.h:167
virtual common::ErrorCode Update(const control::ControlCommand &command)
update the vehicle controller.
virtual void Stop()=0
stop the vehicle controller.
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
The class of MessageManager.
virtual void set_driving_mode(const Chassis::DrivingMode &driving_mode)
CanSender< ChassisDetail > * can_sender_
Definition: vehicle_controller.h:163
std::mutex mode_mutex_
Definition: vehicle_controller.h:168
virtual common::ErrorCode SetDrivingMode(const Chassis::DrivingMode &driving_mode)
set vehicle to appointed driving mode.
common::VehicleParam vehicle_params_
Definition: vehicle_controller.h:162
Defines SenderMessage class and CanSender class.
virtual bool Start()=0
start the vehicle controller.
virtual Chassis chassis()=0
calculate and return the chassis.
bool is_initialized_
Definition: vehicle_controller.h:165
This is the interface class of vehicle controller. It defines pure virtual functions, and also some implemented common functions.
Definition: vehicle_controller.h:53
virtual Chassis::DrivingMode driving_mode()
MessageManager< ChassisDetail > * message_manager_
Definition: vehicle_controller.h:164
Chassis::DrivingMode driving_mode_
Definition: vehicle_controller.h:166
The class of ProtocolData.
virtual common::ErrorCode Init(const VehicleParameter ¶ms, CanSender< ChassisDetail > *const can_sender, MessageManager< ChassisDetail > *const message_manager)=0
initialize the vehicle controller.
canbus::VehicleParameter params_
Definition: vehicle_controller.h:161