00001 00026 #ifndef GOAL_MINIMIZE_CHANGE_H 00027 #define GOAL_MINIMIZE_CHANGE_H 00028 00029 #include "constrained_ik/constraint.h" 00030 00031 namespace constrained_ik 00032 { 00033 namespace constraints 00034 { 00042 class GoalMinimizeChange : public Constraint 00043 { 00044 public: 00045 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 00046 GoalMinimizeChange(); 00047 00049 constrained_ik::ConstraintResults evalConstraint(const SolverState &state) const override; 00050 00052 void loadParameters(const XmlRpc::XmlRpcValue &constraint_xml) override; 00053 00059 virtual Eigen::MatrixXd calcJacobian(const ConstraintData &cdata) const; 00060 00066 virtual Eigen::VectorXd calcError(const ConstraintData &cdata) const; 00067 00073 virtual bool checkStatus(const ConstraintData &cdata) const { return true;} 00074 00079 virtual double getWeight() const {return weight_;} 00080 00085 virtual void setWeight(double weight) {weight_ = weight;} 00086 00087 protected: 00088 double weight_; 00090 }; // class GoalMinimizeChange 00091 00092 } // namespace constraints 00093 } // namespace constrained_ik 00094 00095 00096 #endif // GOAL_MINIMIZE_CHANGE_H 00097