25 #ifndef SRC_CONTROLLERS_INCLUDE_CORBO_CONTROLLERS_SIMPLE_STATE_CONTROLLER_H_ 26 #define SRC_CONTROLLERS_INCLUDE_CORBO_CONTROLLERS_SIMPLE_STATE_CONTROLLER_H_ 63 Ptr getInstance()
const override {
return std::make_shared<SimpleStateController>(); }
84 #ifdef MESSAGE_SUPPORT 86 void toMessage(corbo::messages::Controller& message)
const override;
88 void fromMessage(
const corbo::messages::Controller& message, std::stringstream* issues =
nullptr)
override;
92 void reset()
override;
107 #endif // SRC_CONTROLLERS_INCLUDE_CORBO_CONTROLLERS_SIMPLE_STATE_CONTROLLER_H_
void reset() override
Reset internal controller state and caches.
State feedback controller wigh feedback gain matrix K.
void getAvailableSignals(SignalTargetInterface &signal_target, const std::string &ns="") const override
Retrieve available signals from the controller.
void setFilterMatrixV(const Eigen::Ref< const Eigen::MatrixXd > &V)
Set reference filter matrix V [control input dimension x output dimension].
void setPublishError(bool publish)
Specify whether the state error should be published via signal.
bool providesFutureControls() const override
void setGainMatrixK(const Eigen::Ref< const Eigen::MatrixXd > &K)
Set feedback gain matrix K [control input dimension x state dimension].
Interface class for signal targets.
Representation of time stamps.
int getControlInputDimension() const override
Return the control input dimension.
bool providesFutureStates() const override
SimpleStateController()=default
#define FACTORY_REGISTER_CONTROLLER(type)
A matrix or vector expression mapping an existing expression.
Ptr getInstance() const override
Return a newly created shared instance of the implemented class.
Interface class for reference trajectories.
Eigen::VectorXd StateVector
bool hasPiecewiseConstantControls() const override
Return true if the controller returns piecewise constant control pieces.
bool initialize(const StateVector &x, ReferenceTrajectoryInterface &expected_xref, ReferenceTrajectoryInterface &expected_uref, const Duration &expected_dt, const Time &t, ReferenceTrajectoryInterface *sref=nullptr) override
Initialize the controller.
Interface class for controllers.
std::shared_ptr< TimeSeries > Ptr
Representation of time durations.
std::shared_ptr< ControllerInterface > Ptr
bool step(const StateVector &x, ReferenceTrajectoryInterface &xref, ReferenceTrajectoryInterface &uref, const Duration &dt, const Time &t, TimeSeries::Ptr u_sequence, TimeSeries::Ptr x_sequence, SignalTargetInterface *signal_target=nullptr, ReferenceTrajectoryInterface *sref=nullptr, ReferenceTrajectoryInterface *xinit=nullptr, ReferenceTrajectoryInterface *uinit=nullptr, const std::string &ns="") override
int getStateDimension() const override
Return the dimension of the required plant state/output.