00001 /* 00002 * Software License Agreement (Apache License) 00003 * 00004 * Copyright (c) 2013, Southwest Research Institute 00005 * 00006 * Licensed under the Apache License, Version 2.0 (the "License"); 00007 * you may not use this file except in compliance with the License. 00008 * You may obtain a copy of the License at 00009 * 00010 * http://www.apache.org/licenses/LICENSE-2.0 00011 * 00012 * Unless required by applicable law or agreed to in writing, software 00013 * distributed under the License is distributed on an "AS IS" BASIS, 00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 * See the License for the specific language governing permissions and 00016 * limitations under the License. 00017 */ 00018 00019 00020 #ifndef GOAL_MID_JOINT_H 00021 #define GOAL_MID_JOINT_H 00022 00023 #include "constrained_ik/constraint.h" 00024 00025 namespace constrained_ik 00026 { 00027 namespace constraints 00028 { 00029 00032 class GoalMidJoint : public Constraint 00033 { 00034 public: 00035 GoalMidJoint(); 00036 virtual ~GoalMidJoint() {}; 00037 00041 virtual Eigen::MatrixXd calcJacobian(); 00042 00046 virtual Eigen::VectorXd calcError(); 00047 00051 virtual bool checkStatus() const { return true;}; //always return true 00052 00056 double getWeight() {return weight_;} 00057 00063 void init(const Constrained_IK *ik); 00064 00068 void setWeight(double weight) {weight_ = weight;}; 00069 00070 protected: 00071 double weight_; 00072 Eigen::VectorXd mid_range_; // mid-range of each joint 00073 00074 }; // class GoalMidJoint 00075 00076 } // namespace constraints 00077 } // namespace constrained_ik 00078 00079 00080 #endif // GOAL_MID_JOINT_H 00081