contact-force.hpp
Go to the documentation of this file.
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2021, LAAS-CNRS, University of Edinburgh
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
8 
9 #ifndef SOBEC_CONTACT_FORCE_HPP_
10 #define SOBEC_CONTACT_FORCE_HPP_
11 
12 #include "crocoddyl/core/residual-base.hpp"
13 #include "crocoddyl/core/utils/exception.hpp"
14 #include "crocoddyl/multibody/contact-base.hpp"
15 #include "crocoddyl/multibody/contacts/contact-6d.hpp"
16 #include "crocoddyl/multibody/data/contacts.hpp"
17 #include "crocoddyl/multibody/fwd.hpp"
18 #include "crocoddyl/multibody/residuals/contact-force.hpp"
19 #include "crocoddyl/multibody/states/multibody.hpp"
22 #include "sobec/fwd.hpp"
23 
24 namespace sobec {
25 namespace newcontacts {
26 
52 template <typename _Scalar>
54  : public crocoddyl::ResidualModelContactForceTpl<_Scalar> {
55  public:
56  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
57 
58  typedef _Scalar Scalar;
59  typedef crocoddyl::MathBaseTpl<Scalar> MathBase;
60  typedef crocoddyl::ResidualModelContactForceTpl<Scalar> Base;
61  typedef crocoddyl::ResidualDataContactForceTpl<Scalar> Data;
62  typedef crocoddyl::StateMultibodyTpl<Scalar> StateMultibody;
63  typedef crocoddyl::ResidualDataAbstractTpl<Scalar> ResidualDataAbstract;
64  typedef pinocchio::ForceTpl<Scalar> Force;
65  typedef typename MathBase::VectorXs VectorXs;
66  typedef typename MathBase::MatrixXs MatrixXs;
67 
78  ResidualModelContactForceTpl(boost::shared_ptr<StateMultibody> state,
79  const pinocchio::FrameIndex id,
80  const Force& fref, const std::size_t nc,
81  const std::size_t nu);
82  // const std::size_t type = 2);
83 
95  ResidualModelContactForceTpl(boost::shared_ptr<StateMultibody> state,
96  const pinocchio::FrameIndex id,
97  const Force& fref, const std::size_t nc);
99 
112  virtual void calc(const boost::shared_ptr<ResidualDataAbstract>& data,
113  const Eigen::Ref<const VectorXs>& x,
114  const Eigen::Ref<const VectorXs>& u);
115 
128  virtual void calcDiff(const boost::shared_ptr<ResidualDataAbstract>& data,
129  const Eigen::Ref<const VectorXs>& x,
130  const Eigen::Ref<const VectorXs>& u);
131 };
132 
133 } // namespace newcontacts
134 } // namespace sobec
135 
136 /* --- Details -------------------------------------------------------------- */
137 /* --- Details -------------------------------------------------------------- */
138 /* --- Details -------------------------------------------------------------- */
140 
141 #endif // SOBEC_CONTACT_FORCE_HPP_
Define a contact force residual function.
Definition: contact-force.hpp:54
virtual void calc(const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
Compute the contact force residual.
Definition: contact-force.hxx:30
crocoddyl::StateMultibodyTpl< Scalar > StateMultibody
Definition: contact-force.hpp:62
MathBase::VectorXs VectorXs
Definition: contact-force.hpp:65
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Definition: contact-force.hpp:58
virtual void calcDiff(const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
Compute the derivatives of the contact force residual.
Definition: contact-force.hxx:78
pinocchio::ForceTpl< Scalar > Force
Definition: contact-force.hpp:64
ResidualModelContactForceTpl(boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex id, const Force &fref, const std::size_t nc, const std::size_t nu)
Initialize the contact force residual model.
Definition: contact-force.hxx:15
crocoddyl::ResidualDataContactForceTpl< Scalar > Data
Definition: contact-force.hpp:61
crocoddyl::MathBaseTpl< Scalar > MathBase
Definition: contact-force.hpp:59
MathBase::MatrixXs MatrixXs
Definition: contact-force.hpp:66
crocoddyl::ResidualDataAbstractTpl< Scalar > ResidualDataAbstract
Definition: contact-force.hpp:63
crocoddyl::ResidualModelContactForceTpl< Scalar > Base
Definition: contact-force.hpp:60
virtual ~ResidualModelContactForceTpl()
Definition: contact-force.hxx:27
@ x
Definition: contact1d.hpp:26
Definition: activation-quad-ref.hpp:19