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"
23 #include "sobec/fwd.hpp"
24 
25 namespace sobec {
26 namespace newcontacts {
27 
53 template <typename _Scalar>
55  : public crocoddyl::ResidualModelContactForceTpl<_Scalar> {
56  public:
57  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
58 
59  typedef _Scalar Scalar;
60  typedef crocoddyl::MathBaseTpl<Scalar> MathBase;
61  typedef crocoddyl::ResidualModelContactForceTpl<Scalar> Base;
62  typedef crocoddyl::ResidualDataContactForceTpl<Scalar> Data;
63  typedef crocoddyl::StateMultibodyTpl<Scalar> StateMultibody;
64  typedef crocoddyl::ResidualDataAbstractTpl<Scalar> ResidualDataAbstract;
65  typedef pinocchio::ForceTpl<Scalar> Force;
66  typedef typename MathBase::VectorXs VectorXs;
67  typedef typename MathBase::MatrixXs MatrixXs;
68 
79  ResidualModelContactForceTpl(boost::shared_ptr<StateMultibody> state,
80  const pinocchio::FrameIndex id,
81  const Force& fref, const std::size_t nc,
82  const std::size_t nu);
83  // const std::size_t type = 2);
84 
96  ResidualModelContactForceTpl(boost::shared_ptr<StateMultibody> state,
97  const pinocchio::FrameIndex id,
98  const Force& fref, const std::size_t nc);
100 
113  virtual void calc(const boost::shared_ptr<ResidualDataAbstract>& data,
114  const Eigen::Ref<const VectorXs>& x,
115  const Eigen::Ref<const VectorXs>& u);
116 
129  virtual void calcDiff(const boost::shared_ptr<ResidualDataAbstract>& data,
130  const Eigen::Ref<const VectorXs>& x,
131  const Eigen::Ref<const VectorXs>& u);
132 };
133 
134 } // namespace newcontacts
135 } // namespace sobec
136 
137 /* --- Details -------------------------------------------------------------- */
138 /* --- Details -------------------------------------------------------------- */
139 /* --- Details -------------------------------------------------------------- */
141 
142 #endif // SOBEC_CONTACT_FORCE_HPP_
sobec::newcontacts::ResidualModelContactForceTpl::StateMultibody
crocoddyl::StateMultibodyTpl< Scalar > StateMultibody
Definition: contact-force.hpp:63
sobec::newcontacts::ResidualModelContactForceTpl::~ResidualModelContactForceTpl
virtual ~ResidualModelContactForceTpl()
Definition: contact-force.hxx:27
sobec::newcontacts::ResidualModelContactForceTpl::Force
pinocchio::ForceTpl< Scalar > Force
Definition: contact-force.hpp:65
sobec::newcontacts::ResidualModelContactForceTpl::ResidualDataAbstract
crocoddyl::ResidualDataAbstractTpl< Scalar > ResidualDataAbstract
Definition: contact-force.hpp:64
sobec::newcontacts::ResidualModelContactForceTpl::ResidualModelContactForceTpl
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
sobec::newcontacts::ResidualModelContactForceTpl
Define a contact force residual function.
Definition: contact-force.hpp:54
fwd.hpp
sobec::newcontacts::ResidualModelContactForceTpl::calcDiff
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:87
contact6d.hpp
sobec
Definition: activation-quad-ref.hpp:19
contact3d.hpp
sobec::newcontacts::ResidualModelContactForceTpl::Scalar
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Definition: contact-force.hpp:59
sobec::newcontacts::x
@ x
Definition: contact1d.hpp:26
sobec::newcontacts::ResidualModelContactForceTpl::calc
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
sobec::newcontacts::ResidualModelContactForceTpl::Data
crocoddyl::ResidualDataContactForceTpl< Scalar > Data
Definition: contact-force.hpp:62
sobec::newcontacts::ResidualModelContactForceTpl::MathBase
crocoddyl::MathBaseTpl< Scalar > MathBase
Definition: contact-force.hpp:60
contact1d.hpp
sobec::newcontacts::ResidualModelContactForceTpl::VectorXs
MathBase::VectorXs VectorXs
Definition: contact-force.hpp:66
sobec::newcontacts::ResidualModelContactForceTpl::Base
crocoddyl::ResidualModelContactForceTpl< Scalar > Base
Definition: contact-force.hpp:61
contact-force.hxx
sobec::newcontacts::ResidualModelContactForceTpl::MatrixXs
MathBase::MatrixXs MatrixXs
Definition: contact-force.hpp:67