25 #ifndef SRC_CONTROLLERS_INCLUDE_CORBO_CONTROLLERS_STEP_RESPONSE_GENERATOR_H_
26 #define SRC_CONTROLLERS_INCLUDE_CORBO_CONTROLLERS_STEP_RESPONSE_GENERATOR_H_
47 class StepResponseGenerator :
public ControllerInterface
64 Ptr getInstance()
const override {
return std::make_shared<StepResponseGenerator>(); }
68 void setControl(
const Eigen::VectorXd& u_step) {
_u = u_step; }
73 bool step(
const StateVector&
x, ReferenceTrajectoryInterface& xref, ReferenceTrajectoryInterface& uref,
const Duration& dt,
const Time& t,
75 ReferenceTrajectoryInterface* sref =
nullptr, ReferenceTrajectoryInterface* xinit =
nullptr,
76 ReferenceTrajectoryInterface* uinit =
nullptr,
const std::string& ns =
"")
override
78 if (!u_sequence)
return false;
80 u_sequence->add(0.0,
_u);
85 void getAvailableSignals(SignalTargetInterface& signal_target,
const std::string& ns =
"")
const override {}
87 #ifdef MESSAGE_SUPPORT
88 void toMessage(messages::StepResponseGenerator& message)
const
91 message.mutable_u_step()->Resize(
_u.size(), 0);
94 void fromMessage(
const messages::StepResponseGenerator& message, std::stringstream* issues =
nullptr)
97 if (message.u_step_size() > 0)
104 void toMessage(messages::Controller& message)
const override { toMessage(*message.mutable_step_response_generator()); }
106 void fromMessage(
const messages::Controller& message, std::stringstream* issues =
nullptr)
override
108 fromMessage(message.step_response_generator(), issues);
124 #endif // SRC_CONTROLLERS_INCLUDE_CORBO_CONTROLLERS_STEP_RESPONSE_GENERATOR_H_