crocoddyl  1.8.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
contact-wrench-cone.hpp
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2020-2021, University of Edinburgh, INRIA
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
8 
9 #ifndef CROCODDYL_MULTIBODY_COSTS_CONTACT_WRENCH_CONE_HPP_
10 #define CROCODDYL_MULTIBODY_COSTS_CONTACT_WRENCH_CONE_HPP_
11 
12 #include "crocoddyl/multibody/fwd.hpp"
13 #include "crocoddyl/core/costs/residual.hpp"
14 #include "crocoddyl/multibody/states/multibody.hpp"
15 #include "crocoddyl/multibody/residuals/contact-wrench-cone.hpp"
16 #include "crocoddyl/multibody/frames.hpp"
17 #include "crocoddyl/core/utils/exception.hpp"
18 
19 namespace crocoddyl {
20 
21 template <typename _Scalar>
23  public:
24  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
25 
26  typedef _Scalar Scalar;
33  typedef typename MathBase::VectorXs VectorXs;
34  typedef typename MathBase::MatrixXs MatrixXs;
35  typedef typename MathBase::MatrixX6s MatrixX6s;
36 
37  CostModelContactWrenchConeTpl(boost::shared_ptr<StateMultibody> state,
38  boost::shared_ptr<ActivationModelAbstract> activation, const FrameWrenchCone& fref,
39  const std::size_t nu);
40  CostModelContactWrenchConeTpl(boost::shared_ptr<StateMultibody> state,
41  boost::shared_ptr<ActivationModelAbstract> activation, const FrameWrenchCone& fref);
42  CostModelContactWrenchConeTpl(boost::shared_ptr<StateMultibody> state, const FrameWrenchCone& fref,
43  const std::size_t nu);
44  CostModelContactWrenchConeTpl(boost::shared_ptr<StateMultibody> state, const FrameWrenchCone& fref);
46 
47  protected:
48  virtual void set_referenceImpl(const std::type_info& ti, const void* pv);
49  virtual void get_referenceImpl(const std::type_info& ti, void* pv);
50 
51  using Base::activation_;
52  using Base::nu_;
53  using Base::residual_;
54  using Base::state_;
55  using Base::unone_;
56 
57  private:
58  FrameWrenchCone fref_;
59 };
60 
61 } // namespace crocoddyl
62 
63 /* --- Details -------------------------------------------------------------- */
64 /* --- Details -------------------------------------------------------------- */
65 /* --- Details -------------------------------------------------------------- */
66 #include "crocoddyl/multibody/costs/contact-wrench-cone.hxx"
67 
68 #endif // CROCODDYL_MULTIBODY_COSTS_CONTACT_WRENCH_CONE_HPP_
boost::shared_ptr< ResidualModelAbstract > residual_
Residual model.
Definition: cost-base.hpp:236
Abstract class for cost models.
Definition: cost-base.hpp:49
Residual-based cost.
Definition: residual.hpp:36
boost::shared_ptr< ActivationModelAbstract > activation_
Activation model.
Definition: cost-base.hpp:235
State multibody representation.
Definition: fwd.hpp:300
virtual void set_referenceImpl(const std::type_info &ti, const void *pv)
Contact wrench cone residual function.
Definition: fwd.hpp:117
VectorXs unone_
No control vector.
Definition: cost-base.hpp:238
virtual void get_referenceImpl(const std::type_info &ti, void *pv)
std::size_t nu_
Control dimension.
Definition: cost-base.hpp:237
boost::shared_ptr< StateAbstract > state_
State description.
Definition: cost-base.hpp:234