9#ifndef CROCODDYL_CORE_GUIDANCE_LINEAR_HPP_ 10#define CROCODDYL_CORE_GUIDANCE_LINEAR_HPP_ 12#include "crocoddyl/core/guidance-base.hpp" 25template <
typename _Scalar>
28 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
31 typedef _Scalar Scalar;
34 typedef typename Base::GuidanceDataAbstract GuidanceDataAbstract;
35 typedef typename MathBase::VectorXs VectorXs;
36 typedef typename MathBase::MatrixXs MatrixXs;
67 virtual void calc(
const std::shared_ptr<GuidanceDataAbstract>& data,
68 const Eigen::Ref<const VectorXs>& error)
const override;
76 virtual void calcDiff(
const std::shared_ptr<GuidanceDataAbstract>& data,
77 const Eigen::Ref<const VectorXs>& error)
const override;
89 template <
typename NewScalar>
104 virtual void print(std::ostream& os)
const override;
109 using Base::checkErrorDimension;
110 using Base::checkJacobianDimension;
111 using Base::checkRateDimension;
118#include "crocoddyl/core/guidance/linear.hxx" GuidanceModelAbstractTpl(const std::size_t nr)
Initialize the guidance-model dimension.
Linear converging guidance model.
virtual void calc(const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const override
Compute .
const MatrixXs & get_gain() const
Return the feedback-gain matrix.
virtual void calcDiff(const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const override
Compute .
GuidanceModelLinearTpl< NewScalar > cast() const
Cast the guidance model to a different scalar type.
GuidanceModelLinearTpl(const MatrixXs &gain)
Initialize the model from a full gain matrix.
GuidanceModelLinearTpl(const std::size_t nr, const Scalar &gain)
Initialize the model from a scalar gain.
GuidanceModelLinearTpl(const VectorXs &diagonal_gain)
Initialize the model from a diagonal gain vector.
virtual void print(std::ostream &os) const override
Print the model parameters.
void set_gain(const MatrixXs &gain)
Set the feedback-gain matrix.