25 #ifndef SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_FUNCTIONS_MINIMUM_TIME_H_ 26 #define SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_FUNCTIONS_MINIMUM_TIME_H_ 38 using Ptr = std::shared_ptr<MinimumTime>;
89 #ifdef MESSAGE_SUPPORT 90 virtual bool fromMessage(
const messages::MinimumTime& message, std::stringstream* issues)
95 virtual void toMessage(messages::MinimumTime& message)
const { message.set_lsq_form(
_lsq_form); }
97 bool fromMessage(
const messages::StageCost& message, std::stringstream* issues)
override {
return fromMessage(message.minimum_time(), issues); }
98 void toMessage(messages::StageCost& message)
const override { toMessage(*message.mutable_minimum_time()); }
112 using Ptr = std::shared_ptr<MinimumTimeRegularized>;
136 #ifdef MESSAGE_SUPPORT 137 virtual bool fromMessage(
const messages::MinimumTimeRegularized& message, std::stringstream* issues)
139 _reg_factor = message.reg_factor();
142 virtual void toMessage(messages::MinimumTimeRegularized& message)
const { message.set_reg_factor(_reg_factor); }
144 bool fromMessage(
const messages::StageCost& message, std::stringstream* issues)
override 146 return fromMessage(message.minimum_time_regularized(), issues);
148 void toMessage(messages::StageCost& message)
const override { toMessage(*message.mutable_minimum_time_regularized()); }
152 double _reg_factor = 0.0;
158 #endif // SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_FUNCTIONS_MINIMUM_TIME_H_ std::shared_ptr< MinimumTime > Ptr
bool hasNonIntegralTerms(int k) const override
Generic interface class for discretization grids.
EIGEN_DEVICE_FUNC const SqrtReturnType sqrt() const
int getNonIntegralDtTermDimension(int k) const override
bool update(int n, double, ReferenceTrajectoryInterface &, ReferenceTrajectoryInterface &, ReferenceTrajectoryInterface *, bool, const Eigen::VectorXd &, StagePreprocessor::Ptr, const std::vector< double > &, const DiscretizationGridInterface *) override
bool hasIntegralTerms(int k) const override
StageCost::Ptr getInstance() const override
Return a newly created shared instance of the implemented class.
#define PRINT_DEBUG_NAMED(msg)
double getCustomWeight() const
int getNonIntegralDtTermDimension(int k) const override
std::shared_ptr< MinimumTimeRegularized > Ptr
#define FACTORY_REGISTER_STAGE_COST(type)
void computeNonIntegralDtTerm(int k, double dt, Eigen::Ref< Eigen::VectorXd > cost) const override
bool hasNonIntegralTerms(int k) const override
bool isLsqFormNonIntegralDtTerm(int k) const override
void setCustomWeight(double weight)
bool isLsqFormNonIntegralDtTerm(int k) const override
A matrix or vector expression mapping an existing expression.
StageCost::Ptr getInstance() const override
Return a newly created shared instance of the implemented class.
bool update(int n, double, ReferenceTrajectoryInterface &, ReferenceTrajectoryInterface &, ReferenceTrajectoryInterface *, bool single_dt, const Eigen::VectorXd &x0, StagePreprocessor::Ptr stage_preprocessor, const std::vector< double > &dts, const DiscretizationGridInterface *) override
Interface class for reference trajectories.
void computeNonIntegralDtTerm(int k, double dt, Eigen::Ref< Eigen::VectorXd > cost) const override
MinimumTime(bool lsq_form)
std::shared_ptr< StagePreprocessor > Ptr
std::shared_ptr< StageCost > Ptr
bool hasIntegralTerms(int k) const override
void setLsqForm(bool lsq_form)
void setRegularizationFactor(double reg_factor)