tsid  1.8.0
Efficient Task Space Inverse Dynamics for Multi-body Systems based on Pinocchio
task-capture-point-inequality.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 CNRS, NYU, MPI Tübingen, PAL Robotics
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_task_capture_point_inequality_hpp__
19 #define __invdyn_task_capture_point_inequality_hpp__
20 
24 #include <vector>
25 #include <pinocchio/multibody/model.hpp>
26 #include <pinocchio/multibody/data.hpp>
27 
28 namespace tsid {
29 namespace tasks {
30 
32  public:
33  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
34 
35  typedef math::Index Index;
42 
43  TaskCapturePointInequality(const std::string& name, RobotWrapper& robot,
44  const double timeStep);
45 
46  int dim() const override;
47 
49  Data& data) override;
50 
51  const ConstraintBase& getConstraint() const override;
52 
53  Vector getAcceleration(ConstRefVector dv) const override;
54 
55  const Vector& position() const override;
56 
57  void setSupportLimitsXAxis(const double x_min, const double x_max);
58 
59  void setSupportLimitsYAxis(const double y_min, const double y_max);
60 
61  void setSafetyMargin(const double x_margin, const double y_margin);
62 
63  protected:
69 
71 
75 
77  double m_delta_t;
78  double m_g;
79  double m_w;
80  double m_ka;
81  int m_dim;
82 
85 };
86 
87 } // namespace tasks
88 } // namespace tsid
89 
90 #endif // ifndef __invdyn_task_capture_point_inequality_hpp__
Abstract class representing a linear equality/inequality constraint. Equality constraints are represe...
Definition: constraint-base.hpp:35
Definition: constraint-inequality.hpp:26
Wrapper for a robot based on pinocchio.
Definition: robot-wrapper.hpp:37
const std::string & name() const
Definition: task-base.cpp:25
math::ConstRefVector ConstRefVector
Definition: task-base.hpp:39
pinocchio::Data Data
Definition: task-base.hpp:40
Definition: task-capture-point-inequality.hpp:31
Eigen::Index m_nv
Definition: task-capture-point-inequality.hpp:76
Vector m_drift_vec
Definition: task-capture-point-inequality.hpp:64
int m_dim
Definition: task-capture-point-inequality.hpp:81
Vector b_lower
Definition: task-capture-point-inequality.hpp:83
const Vector & position() const override
Definition: task-capture-point-inequality.cpp:66
Vector3 m_drift
Definition: task-capture-point-inequality.hpp:65
Vector m_v_com
Definition: task-capture-point-inequality.hpp:66
void setSupportLimitsXAxis(const double x_min, const double x_max)
Definition: task-capture-point-inequality.cpp:71
double m_g
Definition: task-capture-point-inequality.hpp:78
void setSafetyMargin(const double x_margin, const double y_margin)
Definition: task-capture-point-inequality.cpp:89
pinocchio::Data Data
Definition: task-capture-point-inequality.hpp:40
const ConstraintBase & compute(double t, ConstRefVector q, ConstRefVector v, Data &data) override
Definition: task-capture-point-inequality.cpp:95
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef math::Index Index
Definition: task-capture-point-inequality.hpp:35
math::Vector3 Vector3
Definition: task-capture-point-inequality.hpp:38
double m_ka
Definition: task-capture-point-inequality.hpp:80
Vector b_upper
Definition: task-capture-point-inequality.hpp:84
const ConstraintBase & getConstraint() const override
Definition: task-capture-point-inequality.cpp:67
int dim() const override
Return the dimension of the task. \info should be overloaded in the child class.
Definition: task-capture-point-inequality.cpp:60
Vector m_p_com
Definition: task-capture-point-inequality.hpp:66
double m_w
Definition: task-capture-point-inequality.hpp:79
void setSupportLimitsYAxis(const double y_min, const double y_max)
Definition: task-capture-point-inequality.cpp:80
math::ConstraintInequality ConstraintInequality
Definition: task-capture-point-inequality.hpp:39
Vector m_support_limits_x
Definition: task-capture-point-inequality.hpp:73
Vector m_support_limits_y
Definition: task-capture-point-inequality.hpp:74
math::Vector Vector
Definition: task-capture-point-inequality.hpp:36
TaskCapturePointInequality(const std::string &name, RobotWrapper &robot, const double timeStep)
Definition: task-capture-point-inequality.cpp:33
Vector m_rp_min
Definition: task-capture-point-inequality.hpp:67
Vector getAcceleration(ConstRefVector dv) const override
Definition: task-capture-point-inequality.cpp:62
double m_delta_t
Definition: task-capture-point-inequality.hpp:77
Vector m_safety_margin
Definition: task-capture-point-inequality.hpp:72
pinocchio::SE3 SE3
Definition: task-capture-point-inequality.hpp:41
Vector m_rp_max
Definition: task-capture-point-inequality.hpp:68
math::Matrix Matrix
Definition: task-capture-point-inequality.hpp:37
ConstraintInequality m_constraint
Definition: task-capture-point-inequality.hpp:70
Definition: task-motion.hpp:26
pinocchio::Data Data
Definition: inverse-dynamics-formulation-acc-force.cpp:30
std::size_t Index
Definition: fwd.hpp:53
Eigen::Matrix< Scalar, 3, 1 > Vector3
Definition: fwd.hpp:40
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
Definition: fwd.hpp:35
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Definition: fwd.hpp:36
pinocchio::SE3 SE3
Definition: trajectory-base.hpp:31
Definition: constraint-bound.hpp:25