1 #ifndef NUMERICAL_CSPACE_CONSTRAINT_H 2 #define NUMERICAL_CSPACE_CONSTRAINT_H 4 #include <KrisLibrary/math/InequalityConstraint.h> 5 #include <KrisLibrary/robotics/Stability.h> 6 #include <KrisLibrary/robotics/TorqueSolver.h> 7 #include "DistanceQuery.h" 8 #include <Klampt/Modeling/Robot.h> 9 #include <KrisLibrary/utils/ArrayMapping.h> 21 :LimitConstraint(_robot.qMin,_robot.qMax),robot(_robot)
23 virtual string Label()
const;
24 virtual string Label(
int i)
const;
33 virtual string Label()
const;
34 virtual int NumDimensions()
const;
35 virtual void PreEval(
const Vector& x);
36 virtual void Eval(
const Vector& x,Vector& v);
37 virtual Real Eval_i(
const Vector& x,
int i);
38 virtual void Jacobian(
const Vector& x,Matrix& J);
39 virtual void Jacobian_i(
const Vector& x,
int i,Vector& Ji);
40 virtual void Hessian_i(
const Vector& x,
int i,Matrix& Hi);
43 virtual Real Margin(
const Vector& x,
int& minConstraint);
44 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero);
48 LinearConstraint cmInequality;
54 DirtyData<Matrix> Jcom;
55 DirtyData<Matrix> Hcomx,Hcomy,Hcomz;
62 virtual string Label()
const;
63 virtual string Label(
int i)
const;
64 virtual int NumDimensions()
const {
68 return robot.links.size();
70 virtual void PreEval(
const Vector& x);
71 virtual void Eval(
const Vector& x, Vector& v);
72 virtual Real Eval_i(
const Vector& x,
int i);
73 virtual void Jacobian(
const Vector& x,Matrix& J);
74 virtual void Jacobian_i(
const Vector& x,
int i,Vector& Ji);
76 virtual void Hessian_i(
const Vector& x,
int i,Matrix& Hi);
78 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero);
81 Geometry::AnyCollisionGeometry3D& geometry;
82 vector<DistanceQuery> query;
83 ArrayMapping activeDofs;
90 virtual string Label()
const;
91 virtual string Label(
int i)
const;
92 virtual int NumDimensions()
const {
return (
int)collisionPairs.size(); }
93 virtual void PreEval(
const Vector& x);
94 virtual void Eval(
const Vector& x, Vector& v);
95 virtual Real Eval_i(
const Vector& x,
int i);
96 virtual void Jacobian(
const Vector& x,Matrix& J);
97 virtual void Jacobian_i(
const Vector& x,
int i,Vector& Ji);
99 virtual void Hessian_i(
const Vector& x,
int i,Matrix& Hi);
101 virtual bool Satisfies_i(
const Vector& x,
int i,Real d=Zero);
104 vector<pair<int,int> > collisionPairs;
105 vector<DistanceQuery> query;
112 virtual string Label()
const;
113 virtual int NumDimensions()
const;
114 virtual void PreEval(
const Vector& x);
115 virtual void Eval(
const Vector& x,Vector& v);
117 TorqueSolver& solver;
Definition: NumericalConstraint.h:87
The main robot type used in RobotSim.
Definition: Robot.h:79
Definition: NumericalConstraint.h:18
Definition: NumericalConstraint.h:109
Definition: NumericalConstraint.h:30
Definition: NumericalConstraint.h:59