crocoddyl  1.9.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
control-gravity-contact.hpp
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2020-2021, LAAS-CNRS, University of Edinburgh, INRIA
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
8 
9 #ifndef CROCODDYL_CORE_COSTS_CONTROL_GRAVITY_CONTACT_HPP_
10 #define CROCODDYL_CORE_COSTS_CONTROL_GRAVITY_CONTACT_HPP_
11 
12 #include "crocoddyl/core/costs/residual.hpp"
13 #include "crocoddyl/multibody/states/multibody.hpp"
14 #include "crocoddyl/multibody/residuals/contact-control-gravity.hpp"
15 #include "crocoddyl/core/utils/exception.hpp"
16 
17 namespace crocoddyl {
18 
37 template <typename _Scalar>
39  public:
40  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
41 
42  typedef _Scalar Scalar;
49  typedef typename MathBase::VectorXs VectorXs;
50  typedef typename MathBase::MatrixXs MatrixXs;
51 
59  CostModelControlGravContactTpl(boost::shared_ptr<StateMultibody> state,
60  boost::shared_ptr<ActivationModelAbstract> activation, const std::size_t nu);
61 
70  CostModelControlGravContactTpl(boost::shared_ptr<StateMultibody> state,
71  boost::shared_ptr<ActivationModelAbstract> activation);
72 
82  CostModelControlGravContactTpl(boost::shared_ptr<StateMultibody> state, const std::size_t nu);
83 
93  explicit CostModelControlGravContactTpl(boost::shared_ptr<StateMultibody> state);
95 
96  protected:
97  using Base::activation_;
98  using Base::nu_;
99  using Base::residual_;
100  using Base::state_;
101  using Base::unone_;
102 };
103 
104 } // namespace crocoddyl
105 
106 /* --- Details -------------------------------------------------------------- */
107 /* --- Details -------------------------------------------------------------- */
108 /* --- Details -------------------------------------------------------------- */
109 #include "crocoddyl/multibody/costs/control-gravity-contact.hxx"
110 
111 #endif // CROCODDYL_MULTIBODY_COSTS_CONTROL_GRAVITY_CONTACT_HPP_
crocoddyl::CostModelResidualTpl
Residual-based cost.
Definition: residual.hpp:36
crocoddyl::ActuationModelAbstractTpl
Abstract class for the actuation-mapping model.
Definition: actuation-base.hpp:39
crocoddyl::MathBaseTpl< Scalar >
crocoddyl::CostModelAbstractTpl::unone_
VectorXs unone_
No control vector.
Definition: cost-base.hpp:244
crocoddyl::CostModelAbstractTpl::activation_
boost::shared_ptr< ActivationModelAbstract > activation_
Activation model.
Definition: cost-base.hpp:241
crocoddyl::CostModelAbstractTpl
Abstract class for cost models.
Definition: cost-base.hpp:49
crocoddyl::ResidualModelContactControlGravTpl
Control gravity residual under contact.
Definition: fwd.hpp:122
crocoddyl::StateMultibodyTpl
State multibody representation.
Definition: fwd.hpp:305
crocoddyl::CostModelAbstractTpl::state_
boost::shared_ptr< StateAbstract > state_
State description.
Definition: cost-base.hpp:240
crocoddyl::CostModelAbstractTpl::residual_
boost::shared_ptr< ResidualModelAbstract > residual_
Residual model.
Definition: cost-base.hpp:242
crocoddyl::CostModelControlGravContactTpl::CostModelControlGravContactTpl
CostModelControlGravContactTpl(boost::shared_ptr< StateMultibody > state, boost::shared_ptr< ActivationModelAbstract > activation, const std::size_t nu)
Initialize the control gravity contact cost model.
crocoddyl::ActivationModelAbstractTpl< Scalar >
crocoddyl::CostModelControlGravContactTpl
Control gravity cost.
Definition: control-gravity-contact.hpp:38
crocoddyl::CostModelAbstractTpl::nu_
std::size_t nu_
Control dimension.
Definition: cost-base.hpp:243