00001 00026 #ifndef GOAL_ZERO_JVEL_H 00027 #define GOAL_ZERO_JVEL_H 00028 00029 #include "constrained_ik/constraint.h" 00030 00031 namespace constrained_ik 00032 { 00033 namespace constraints 00034 { 00043 class GoalZeroJVel: public Constraint 00044 { 00045 public: 00046 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 00047 GoalZeroJVel(); 00048 00050 constrained_ik::ConstraintResults evalConstraint(const SolverState &state) const override; 00051 00053 void loadParameters(const XmlRpc::XmlRpcValue &constraint_xml) override; 00054 00060 virtual Eigen::MatrixXd calcJacobian(const ConstraintData &cdata) const; 00061 00067 virtual Eigen::VectorXd calcError(const ConstraintData &cdata) const; 00068 00074 virtual bool checkStatus(const ConstraintData &cdata) const {return true;} //always return true 00075 00080 virtual double getWeight() const {return weight_;} 00081 00086 virtual void setWeight(double weight) {weight_ = weight;} 00087 00088 protected: 00089 double weight_; 00091 }; // class GoalZeroJVel 00092 00093 } // namespace constraints 00094 } // namespace constrained_ik 00095 00096 00097 #endif // GOAL_ZERO_JVEL_H 00098