tsid 1.9.0
Efficient Task Space Inverse Dynamics for Multi-body Systems based on Pinocchio
Loading...
Searching...
No Matches
contact-base.hpp
Go to the documentation of this file.
1//
2// Copyright (c) 2017 CNRS
3//
4
5#ifndef __invdyn_contact_base_hpp__
6#define __invdyn_contact_base_hpp__
7
8#include "tsid/math/fwd.hpp"
11
12namespace tsid {
13namespace contacts {
14
19 public:
20 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
21
30 typedef pinocchio::Data Data;
32
33 ContactBase(const std::string& name, RobotWrapper& robot);
34
35 virtual ~ContactBase() = default;
36
37 const std::string& name() const;
38
39 void name(const std::string& name);
40
42 virtual unsigned int n_motion() const = 0;
43
45 virtual unsigned int n_force() const = 0;
46
47 virtual const ConstraintBase& computeMotionTask(const double t,
50 Data& data) = 0;
51
52 virtual const ConstraintInequality& computeForceTask(const double t,
55 const Data& data) = 0;
56
57 virtual const Matrix& getForceGeneratorMatrix() = 0;
58
60 const double t, ConstRefVector q, ConstRefVector v, const Data& data) = 0;
61
62 virtual const TaskMotion& getMotionTask() const = 0;
63 virtual const ConstraintBase& getMotionConstraint() const = 0;
64 virtual const ConstraintInequality& getForceConstraint() const = 0;
66
67 virtual double getMinNormalForce() const = 0;
68 virtual double getMaxNormalForce() const = 0;
69 virtual bool setMinNormalForce(const double minNormalForce) = 0;
70 virtual bool setMaxNormalForce(const double maxNormalForce) = 0;
71 virtual double getNormalForce(ConstRefVector f) const = 0;
72 virtual const Matrix3x& getContactPoints() const = 0;
73
74 protected:
75 std::string m_name;
78};
79
80} // namespace contacts
81} // namespace tsid
82
83#endif // ifndef __invdyn_contact_base_hpp__
virtual double getMaxNormalForce() const =0
virtual bool setMaxNormalForce(const double maxNormalForce)=0
virtual const ConstraintInequality & getForceConstraint() const =0
RobotWrapper & m_robot
Reference on the robot model.
Definition contact-base.hpp:77
math::ConstraintEquality ConstraintEquality
Definition contact-base.hpp:24
virtual unsigned int n_force() const =0
Return the number of force variables.
virtual double getNormalForce(ConstRefVector f) const =0
math::Matrix3x Matrix3x
Definition contact-base.hpp:27
virtual const Matrix & getForceGeneratorMatrix()=0
const std::string & name() const
Definition contact-base.cpp:12
virtual const TaskMotion & getMotionTask() const =0
virtual const ConstraintBase & getMotionConstraint() const =0
tasks::TaskSE3Equality TaskSE3Equality
Definition contact-base.hpp:28
tasks::TaskMotion TaskMotion
Definition contact-base.hpp:29
virtual const ConstraintEquality & computeForceRegularizationTask(const double t, ConstRefVector q, ConstRefVector v, const Data &data)=0
virtual const ConstraintEquality & getForceRegularizationTask() const =0
math::ConstRefVector ConstRefVector
Definition contact-base.hpp:25
virtual const ConstraintInequality & computeForceTask(const double t, ConstRefVector q, ConstRefVector v, const Data &data)=0
virtual const Matrix3x & getContactPoints() const =0
virtual double getMinNormalForce() const =0
ContactBase(const std::string &name, RobotWrapper &robot)
Definition contact-base.cpp:9
virtual unsigned int n_motion() const =0
Return the number of motion constraints.
std::string m_name
Definition contact-base.hpp:75
math::Matrix Matrix
Definition contact-base.hpp:26
virtual const ConstraintBase & computeMotionTask(const double t, ConstRefVector q, ConstRefVector v, Data &data)=0
pinocchio::Data Data
Definition contact-base.hpp:30
virtual ~ContactBase()=default
virtual bool setMinNormalForce(const double minNormalForce)=0
robots::RobotWrapper RobotWrapper
Definition contact-base.hpp:31
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef math::ConstraintBase ConstraintBase
Definition contact-base.hpp:22
math::ConstraintInequality ConstraintInequality
Definition contact-base.hpp:23
Abstract class representing a linear equality/inequality constraint. Equality constraints are represe...
Definition constraint-base.hpp:22
Definition constraint-equality.hpp:13
Definition constraint-inequality.hpp:13
Wrapper for a robot based on pinocchio.
Definition robot-wrapper.hpp:37
Definition task-motion.hpp:26
Definition task-se3-equality.hpp:31
Definition contact-6d.hpp:15
Eigen::Matrix< Scalar, 3, Eigen::Dynamic > Matrix3x
Definition fwd.hpp:29
const Eigen::Ref< const Vector > ConstRefVector
Definition fwd.hpp:35
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Definition fwd.hpp:23
Definition constraint-bound.hpp:25