37 #ifndef PR2_ARM_IK_NODE_H 38 #define PR2_ARM_IK_NODE_H 48 #include <kinematics_msgs/GetPositionFK.h> 49 #include <kinematics_msgs/GetPositionIK.h> 50 #include <kinematics_msgs/GetKinematicSolverInfo.h> 51 #include <moveit_msgs/MoveItErrorCodes.h> 53 #include <kdl/chainfksolverpos_recursive.hpp> 55 #include <boost/shared_ptr.hpp> 88 virtual bool getPositionIK(kinematics_msgs::GetPositionIK::Request &request,
89 kinematics_msgs::GetPositionIK::Response &response);
96 bool getIKSolverInfo(kinematics_msgs::GetKinematicSolverInfo::Request &request,
97 kinematics_msgs::GetKinematicSolverInfo::Response &response);
104 bool getFKSolverInfo(kinematics_msgs::GetKinematicSolverInfo::Request &request,
105 kinematics_msgs::GetKinematicSolverInfo::Response &response);
112 bool getPositionFK(kinematics_msgs::GetPositionFK::Request &request,
113 kinematics_msgs::GetPositionFK::Response &response);
119 kinematics_msgs::GetPositionIK::Response &response);
122 const geometry_msgs::PoseStamped& pose_in,
123 geometry_msgs::PoseStamped& pose_out);
boost::shared_ptr< pr2_arm_kinematics::PR2ArmIKSolver > pr2_arm_ik_solver_
bool getPositionFK(kinematics_msgs::GetPositionFK::Request &request, kinematics_msgs::GetPositionFK::Response &response)
This is the basic forward kinematics service that will return information about the kinematics node...
ros::ServiceServer fk_solver_info_service_
tf::TransformListener * tf_
ros::ServiceServer fk_service_
Namespace for the PR2ArmKinematics.
bool getIKSolverInfo(kinematics_msgs::GetKinematicSolverInfo::Request &request, kinematics_msgs::GetKinematicSolverInfo::Response &response)
This is the basic kinematics info service that will return information about the kinematics node...
boost::shared_ptr< KDL::ChainFkSolverPos_recursive > jnt_to_pose_solver_
ros::NodeHandle node_handle_
virtual ~PR2ArmKinematics()
kinematics_msgs::KinematicSolverInfo fk_solver_info_
PR2ArmKinematics(bool create_transform_listener=true)
ros::ServiceServer ik_solver_info_service_
bool getFKSolverInfo(kinematics_msgs::GetKinematicSolverInfo::Request &request, kinematics_msgs::GetKinematicSolverInfo::Response &response)
This is the basic kinematics info service that will return information about the kinematics node...
ros::ServiceServer ik_service_
bool getPositionIKHelper(kinematics_msgs::GetPositionIK::Request &request, kinematics_msgs::GetPositionIK::Response &response)
double search_discretization_
ros::NodeHandle root_handle_
kinematics_msgs::KinematicSolverInfo ik_solver_info_
virtual bool transformPose(const std::string &des_frame, const geometry_msgs::PoseStamped &pose_in, geometry_msgs::PoseStamped &pose_out)
virtual bool getPositionIK(kinematics_msgs::GetPositionIK::Request &request, kinematics_msgs::GetPositionIK::Response &response)
This is the basic IK service method that will compute and return an IK solution.
bool isActive()
Specifies if the node is active or not.