Go to the documentation of this file.
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_
35 class MinimumTime :
public StageCost
38 using Ptr = std::shared_ptr<MinimumTime>;
52 bool update(
int n,
double , ReferenceTrajectoryInterface& , ReferenceTrajectoryInterface& ,
53 ReferenceTrajectoryInterface* ,
bool single_dt,
const Eigen::VectorXd& x0,
StagePreprocessor::Ptr stage_preprocessor,
54 const std::vector<double>& dts,
const DiscretizationGridInterface* )
override
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()); }
109 class MinimumTimeRegularized :
public StageCost
112 using Ptr = std::shared_ptr<MinimumTimeRegularized>;
136 #ifdef MESSAGE_SUPPORT
137 virtual bool fromMessage(
const messages::MinimumTimeRegularized& message, std::stringstream* issues)
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()); }
158 #endif // SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_FUNCTIONS_MINIMUM_TIME_H_
const EIGEN_DEVICE_FUNC SqrtReturnType sqrt() const
StageCost::Ptr getInstance() const override
Return a newly created shared instance of the implemented class.
std::shared_ptr< StagePreprocessor > Ptr
std::shared_ptr< MinimumTime > Ptr
Interface class for reference trajectories.
void setCustomWeight(double weight)
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
bool isLsqFormNonIntegralDtTerm(int k) const override
bool hasNonIntegralTerms(int k) const override
void computeNonIntegralDtTerm(int k, double dt, Eigen::Ref< Eigen::VectorXd > cost) const override
std::shared_ptr< StageCost > Ptr
bool hasIntegralTerms(int k) const override
#define PRINT_DEBUG_NAMED(msg)
std::shared_ptr< MinimumTimeRegularized > Ptr
bool isLsqFormNonIntegralDtTerm(int k) const override
void computeNonIntegralDtTerm(int k, double dt, Eigen::Ref< Eigen::VectorXd > cost) const override
#define FACTORY_REGISTER_STAGE_COST(type)
MinimumTimeRegularized()=default
StageCost::Ptr getInstance() const override
Return a newly created shared instance of the implemented class.
A matrix or vector expression mapping an existing expression.
double getCustomWeight() const
void setLsqForm(bool lsq_form)
bool update(int n, double, ReferenceTrajectoryInterface &, ReferenceTrajectoryInterface &, ReferenceTrajectoryInterface *, bool, const Eigen::VectorXd &, StagePreprocessor::Ptr, const std::vector< double > &, const DiscretizationGridInterface *) override
bool hasNonIntegralTerms(int k) const override
void setRegularizationFactor(double reg_factor)
int getNonIntegralDtTermDimension(int k) const override
int getNonIntegralDtTermDimension(int k) const override
bool hasIntegralTerms(int k) const override
Generic interface class for discretization grids.
control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:05:58