contact-base.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2017 CNRS
3 //
4 // This file is part of tsid
5 // tsid is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 // tsid is distributed in the hope that it will be
10 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
11 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Lesser Public License for more details. You should have
13 // received a copy of the GNU Lesser General Public License along with
14 // tsid If not, see
15 // <http://www.gnu.org/licenses/>.
16 //
17 
18 #ifndef __invdyn_contact_base_hpp__
19 #define __invdyn_contact_base_hpp__
20 
21 #include "tsid/math/fwd.hpp"
22 #include "tsid/robots/fwd.hpp"
24 
25 namespace tsid {
26 namespace contacts {
27 
31 class ContactBase {
32  public:
33  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
34 
45 
46  ContactBase(const std::string& name, RobotWrapper& robot);
47 
48  virtual ~ContactBase() = default;
49 
50  const std::string& name() const;
51 
52  void name(const std::string& name);
53 
55  virtual unsigned int n_motion() const = 0;
56 
58  virtual unsigned int n_force() const = 0;
59 
60  virtual const ConstraintBase& computeMotionTask(const double t,
63  Data& data) = 0;
64 
65  virtual const ConstraintInequality& computeForceTask(const double t,
68  const Data& data) = 0;
69 
70  virtual const Matrix& getForceGeneratorMatrix() = 0;
71 
73  const double t, ConstRefVector q, ConstRefVector v, const Data& data) = 0;
74 
75  virtual const TaskMotion& getMotionTask() const = 0;
76  virtual const ConstraintBase& getMotionConstraint() const = 0;
77  virtual const ConstraintInequality& getForceConstraint() const = 0;
78  virtual const ConstraintEquality& getForceRegularizationTask() const = 0;
79 
80  virtual double getMinNormalForce() const = 0;
81  virtual double getMaxNormalForce() const = 0;
82  virtual bool setMinNormalForce(const double minNormalForce) = 0;
83  virtual bool setMaxNormalForce(const double maxNormalForce) = 0;
84  virtual double getNormalForce(ConstRefVector f) const = 0;
85  virtual const Matrix3x& getContactPoints() const = 0;
86 
87  protected:
88  std::string m_name;
91 };
92 
93 } // namespace contacts
94 } // namespace tsid
95 
96 #endif // ifndef __invdyn_contact_base_hpp__
tsid::contacts::ContactBase::getForceRegularizationTask
virtual const ConstraintEquality & getForceRegularizationTask() const =0
tsid::contacts::ContactBase::TaskMotion
tasks::TaskMotion TaskMotion
Definition: contact-base.hpp:42
demo_quadruped.v
v
Definition: demo_quadruped.py:80
tsid::contacts::ContactBase::ConstraintInequality
math::ConstraintInequality ConstraintInequality
Definition: contact-base.hpp:36
tsid::contacts::ContactBase::TaskSE3Equality
tasks::TaskSE3Equality TaskSE3Equality
Definition: contact-base.hpp:41
tsid::contacts::ContactBase::ConstraintEquality
math::ConstraintEquality ConstraintEquality
Definition: contact-base.hpp:37
tsid::contacts::ContactBase
Base template of a Contact.
Definition: contact-base.hpp:31
pinocchio::DataTpl
tsid::contacts::ContactBase::RobotWrapper
robots::RobotWrapper RobotWrapper
Definition: contact-base.hpp:44
tsid::math::ConstraintEquality
Definition: math/constraint-equality.hpp:26
tsid::contacts::ContactBase::~ContactBase
virtual ~ContactBase()=default
tsid::math::ConstraintBase
Abstract class representing a linear equality/inequality constraint. Equality constraints are represe...
Definition: constraint-base.hpp:35
tsid::contacts::ContactBase::Matrix
math::Matrix Matrix
Definition: contact-base.hpp:39
setup.data
data
Definition: setup.in.py:48
tsid::contacts::ContactBase::getMinNormalForce
virtual double getMinNormalForce() const =0
demo_quadruped.robot
robot
Definition: demo_quadruped.py:51
tsid::math::Matrix3x
Eigen::Matrix< Scalar, 3, Eigen::Dynamic > Matrix3x
Definition: math/fwd.hpp:42
tsid::contacts::ContactBase::computeForceRegularizationTask
virtual const ConstraintEquality & computeForceRegularizationTask(const double t, ConstRefVector q, ConstRefVector v, const Data &data)=0
tsid::contacts::ContactBase::computeForceTask
virtual const ConstraintInequality & computeForceTask(const double t, ConstRefVector q, ConstRefVector v, const Data &data)=0
tsid::contacts::ContactBase::ConstraintBase
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef math::ConstraintBase ConstraintBase
Definition: contact-base.hpp:35
tsid::contacts::ContactBase::m_robot
RobotWrapper & m_robot
Reference on the robot model.
Definition: contact-base.hpp:90
demo_quadruped.q
q
Definition: demo_quadruped.py:74
tsid::contacts::ContactBase::getForceGeneratorMatrix
virtual const Matrix & getForceGeneratorMatrix()=0
tsid::contacts::ContactBase::getMotionConstraint
virtual const ConstraintBase & getMotionConstraint() const =0
tsid::contacts::ContactBase::getNormalForce
virtual double getNormalForce(ConstRefVector f) const =0
tsid::contacts::ContactBase::getMotionTask
virtual const TaskMotion & getMotionTask() const =0
fwd.hpp
tsid::contacts::ContactBase::getForceConstraint
virtual const ConstraintInequality & getForceConstraint() const =0
tsid::math::Matrix
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Definition: math/fwd.hpp:36
task-se3-equality.hpp
tsid::math::ConstraintInequality
Definition: math/constraint-inequality.hpp:26
demo_quadruped.contacts
int contacts
Definition: demo_quadruped.py:98
tsid::tasks::TaskMotion
Definition: task-motion.hpp:26
tsid::math::ConstRefVector
const typedef Eigen::Ref< const Vector > ConstRefVector
Definition: math/fwd.hpp:48
tsid::contacts::ContactBase::name
const std::string & name() const
Definition: contact-base.cpp:25
tsid::contacts::ContactBase::n_motion
virtual unsigned int n_motion() const =0
Return the number of motion constraints.
tsid::contacts::ContactBase::n_force
virtual unsigned int n_force() const =0
Return the number of force variables.
tsid::contacts::ContactBase::computeMotionTask
virtual const ConstraintBase & computeMotionTask(const double t, ConstRefVector q, ConstRefVector v, Data &data)=0
fwd.hpp
tsid::contacts::ContactBase::Matrix3x
math::Matrix3x Matrix3x
Definition: contact-base.hpp:40
tsid
Definition: bindings/python/constraint/constraint-bound.cpp:21
tsid::contacts::ContactBase::m_name
std::string m_name
Definition: contact-base.hpp:88
tsid::contacts::ContactBase::getContactPoints
virtual const Matrix3x & getContactPoints() const =0
tsid::robots::RobotWrapper
Wrapper for a robot based on pinocchio.
Definition: robots/robot-wrapper.hpp:37
tsid::contacts::ContactBase::Data
pinocchio::Data Data
Definition: contact-base.hpp:43
t
Transform3f t
tsid::tasks::TaskSE3Equality
Definition: tasks/task-se3-equality.hpp:31
tsid::contacts::ContactBase::getMaxNormalForce
virtual double getMaxNormalForce() const =0
tsid::contacts::ContactBase::setMaxNormalForce
virtual bool setMaxNormalForce(const double maxNormalForce)=0
tsid::contacts::ContactBase::ConstRefVector
math::ConstRefVector ConstRefVector
Definition: contact-base.hpp:38
tsid::contacts::ContactBase::setMinNormalForce
virtual bool setMinNormalForce(const double minNormalForce)=0
tsid::contacts::ContactBase::ContactBase
ContactBase(const std::string &name, RobotWrapper &robot)
Definition: contact-base.cpp:22


tsid
Author(s): Andrea Del Prete, Justin Carpentier
autogenerated on Thu Apr 3 2025 02:47:15