9#ifndef CROCODDYL_CORE_GUIDANCE_BASE_HPP_ 10#define CROCODDYL_CORE_GUIDANCE_BASE_HPP_ 12#include "crocoddyl/core/fwd.hpp" 13#include "crocoddyl/core/mathbase.hpp" 45template <
typename _Scalar>
48 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
50 typedef _Scalar Scalar;
53 typedef typename MathBase::VectorXs VectorXs;
54 typedef typename MathBase::MatrixXs MatrixXs;
69 virtual std::shared_ptr<GuidanceDataAbstract>
createData()
const;
77 virtual void calc(
const std::shared_ptr<GuidanceDataAbstract>& data,
78 const Eigen::Ref<const VectorXs>& error)
const = 0;
86 virtual void calcDiff(
const std::shared_ptr<GuidanceDataAbstract>& data,
87 const Eigen::Ref<const VectorXs>& error)
const = 0;
101 virtual void print(std::ostream& os)
const;
104 void checkErrorDimension(
const Eigen::Ref<const VectorXs>& error)
const;
105 void checkRateDimension(
const Eigen::Ref<const VectorXs>& g)
const;
106 void checkJacobianDimension(
const Eigen::Ref<const MatrixXs>& Ge)
const;
111template <
typename Scalar>
112std::ostream& operator<<(std::ostream& os,
125template <
typename _Scalar>
127 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
129 typedef _Scalar Scalar;
132 typedef typename MathBase::VectorXs VectorXs;
133 typedef typename MathBase::MatrixXs MatrixXs;
141 : g(model->get_nr()), Ge(model->get_nr(), model->get_nr()) {
154#include "crocoddyl/core/guidance-base.hxx" Differentiable mapping from a task error to a desired task rate.
virtual std::shared_ptr< GuidanceDataAbstract > createData() const
Allocate the precomputed guidance data.
virtual void calcDiff(const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const =0
Compute .
virtual void print(std::ostream &os) const
Print relevant information about the guidance model.
GuidanceModelAbstractTpl(const std::size_t nr)
Initialize the guidance-model dimension.
virtual void calc(const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const =0
Compute the desired task rate .
std::size_t get_nr() const
Return the error and desired-rate dimension.
Preallocated values and derivatives produced by a guidance model.
GuidanceDataAbstractTpl(const GuidanceModelAbstract *const model)
Allocate guidance data with the size inferred from the model.