Functions | Variables
katana_openrave_kinematics.cpp File Reference
#include <ros/ros.h>
#include <urdf/joint.h>
#include <urdf/model.h>
#include <kinematics_msgs/GetConstraintAwarePositionIK.h>
#include <kinematics_msgs/GetPositionIK.h>
#include <kinematics_msgs/GetKinematicSolverInfo.h>
#include <arm_navigation_msgs/JointLimits.h>
#include <orrosplanning/IK.h>
Include dependency graph for katana_openrave_kinematics.cpp:

Go to the source code of this file.

Functions

bool get_kinematic_solver_info (kinematics_msgs::GetKinematicSolverInfo::Request &req, kinematics_msgs::GetKinematicSolverInfo::Response &res)
bool getOpenRaveIK (kinematics_msgs::GetConstraintAwarePositionIK::Request &req, kinematics_msgs::GetConstraintAwarePositionIK::Response &resp)
int main (int argc, char **argv)

Variables

ros::ServiceClient client_
ros::ServiceServer ikService
ros::ServiceServer infoService
std::vector
< arm_navigation_msgs::JointLimits
joint_limits_
std::vector< std::string > joint_names_

Function Documentation

bool get_kinematic_solver_info ( kinematics_msgs::GetKinematicSolverInfo::Request &  req,
kinematics_msgs::GetKinematicSolverInfo::Response &  res 
)

Definition at line 95 of file katana_openrave_kinematics.cpp.

bool getOpenRaveIK ( kinematics_msgs::GetConstraintAwarePositionIK::Request &  req,
kinematics_msgs::GetConstraintAwarePositionIK::Response &  resp 
)

Definition at line 56 of file katana_openrave_kinematics.cpp.

int main ( int  argc,
char **  argv 
)

Definition at line 104 of file katana_openrave_kinematics.cpp.


Variable Documentation

This node provides the get_constraint_aware_ik (kinematics_msgs/GetConstraintAwarePositionIK) service. It just strips away all the constraint aware stuff and calls a the openrave IK service instead.

Normally, get_constraint_aware_ik checks the space of potential IK solutions for a solution that obeys all constraints (i.e., a solution that is not in self-collision or in collision with the environment). That only really makes sense for a redundant (>6 DoF) robot arm. Since the Katana only has 5 DoF, we only get at most one IK solution, so there is nothing to filter.

If we return a solution that violates constraints - for instance, that is in self-collision - then move_arm will abort with an error code. But if the solution is valid, everything should work.

Definition at line 49 of file katana_openrave_kinematics.cpp.

Definition at line 53 of file katana_openrave_kinematics.cpp.

Definition at line 54 of file katana_openrave_kinematics.cpp.

Definition at line 51 of file katana_openrave_kinematics.cpp.

std::vector<std::string> joint_names_

Definition at line 50 of file katana_openrave_kinematics.cpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends


katana_kinematics_constraint_aware
Author(s): Henning Deeken, Martin Günther
autogenerated on Tue Mar 5 2013 15:20:34