tsid 1.9.0
Efficient Task Space Inverse Dynamics for Multi-body Systems based on Pinocchio
Loading...
Searching...
No Matches
constraint-base.hpp
Go to the documentation of this file.
1//
2// Copyright (c) 2017 CNRS
3//
4
5#ifndef __invdyn_math_constraint_base_hpp__
6#define __invdyn_math_constraint_base_hpp__
7
8#include "tsid/math/fwd.hpp"
9#include <string>
10#include <pinocchio/macros.hpp>
11
12namespace tsid {
13namespace math {
14
23 public:
24 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
25
26 ConstraintBase(const std::string& name);
27
28 ConstraintBase(const std::string& name, const unsigned int rows,
29 const unsigned int cols);
30
31 ConstraintBase(const std::string& name, ConstRefMatrix A);
32 virtual ~ConstraintBase() = default;
33
34 virtual const std::string& name() const;
35 virtual unsigned int rows() const = 0;
36 virtual unsigned int cols() const = 0;
37 virtual void resize(const unsigned int r, const unsigned int c) = 0;
38
39 virtual bool isEquality() const = 0;
40 virtual bool isInequality() const = 0;
41 virtual bool isBound() const = 0;
42
43 virtual const Matrix& matrix() const;
44 virtual const Vector& vector() const = 0;
45 virtual const Vector& lowerBound() const = 0;
46 virtual const Vector& upperBound() const = 0;
47
48 virtual Matrix& matrix();
49 virtual Vector& vector() = 0;
50 virtual Vector& lowerBound() = 0;
51 virtual Vector& upperBound() = 0;
52
53 virtual bool setMatrix(ConstRefMatrix A);
54 virtual bool setVector(ConstRefVector b) = 0;
55 virtual bool setLowerBound(ConstRefVector lb) = 0;
56 virtual bool setUpperBound(ConstRefVector ub) = 0;
57
58 virtual bool checkConstraint(ConstRefVector x, double tol = 1e-6) const = 0;
59
60 protected:
61 std::string m_name;
63};
64
65} // namespace math
66} // namespace tsid
67
68#endif // ifndef __invdyn_math_constraint_base_hpp__
Matrix m_A
Definition constraint-base.hpp:62
virtual void resize(const unsigned int r, const unsigned int c)=0
virtual bool setUpperBound(ConstRefVector ub)=0
virtual unsigned int cols() const =0
virtual unsigned int rows() const =0
virtual Vector & vector()=0
virtual bool isBound() const =0
virtual const Matrix & matrix() const
Definition constraint-base.cpp:22
virtual const Vector & upperBound() const =0
std::string m_name
Definition constraint-base.hpp:61
virtual bool setVector(ConstRefVector b)=0
virtual bool checkConstraint(ConstRefVector x, double tol=1e-6) const =0
virtual bool isInequality() const =0
virtual ~ConstraintBase()=default
virtual const std::string & name() const
Definition constraint-base.cpp:20
virtual Vector & upperBound()=0
virtual Vector & lowerBound()=0
virtual const Vector & lowerBound() const =0
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ConstraintBase(const std::string &name)
Definition constraint-base.cpp:9
virtual const Vector & vector() const =0
virtual bool isEquality() const =0
virtual bool setMatrix(ConstRefMatrix A)
Definition constraint-base.cpp:26
virtual bool setLowerBound(ConstRefVector lb)=0
Definition constraint-base.hpp:13
const Eigen::Ref< const Matrix > ConstRefMatrix
Definition fwd.hpp:38
const Eigen::Ref< const Vector > ConstRefVector
Definition fwd.hpp:35
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
Definition fwd.hpp:22
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Definition fwd.hpp:23
Definition constraint-bound.hpp:25