1 #ifndef CONTROLS_CONTROLLER_BASE_CONTROLLER_INTERFACE_H
2 #define CONTROLS_CONTROLLER_BASE_CONTROLLER_INTERFACE_H
18 std::shared_ptr<SystemDynamicsBase>
auv_;
21 std::shared_ptr<ControllerConfig>
config_;
33 :
auv_(std::move(auv)),
config_(std::move(config)) {
Eigen::Matrix< double, 6, 1 > Vector6d
Definition: Types.h:29
Abstract base class for a single-responsibility force controller.
Definition: BaseControllerInterface.h:15
BaseControllerInterface(std::shared_ptr< SystemDynamicsBase > auv, std::shared_ptr< ControllerConfig > config)
Constructs a controller with the given dynamics model and config.
Definition: BaseControllerInterface.h:32
virtual ~BaseControllerInterface()=default
std::shared_ptr< ControllerConfig > config_
Tuning parameters shared with all controllers in a stack.
Definition: BaseControllerInterface.h:21
virtual void reset()
Resets any internal state (e.g., integrator terms)
Definition: BaseControllerInterface.h:41
BaseControllerInterface()=default
virtual Vector6d getForce(const State &goal, const State &curr, double dt)=0
Computes the instantaneous 6DOF body force for the given goal and current state.
std::shared_ptr< SystemDynamicsBase > auv_
Vehicle dynamics model shared with all controllers in a stack.
Definition: BaseControllerInterface.h:18
Full kinematic state of the vehicle.
Definition: Types.h:63