Classes | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
GraspSequenceValidator Class Reference

Uses an interpolated IK approach from pregrasp to final grasp. More...

#include <GraspSequenceValidator.h>

Inheritance diagram for GraspSequenceValidator:
Inheritance graph
[legend]

List of all members.

Classes

struct  GraspSequenceDetails

Public Member Functions

void getGroupJoints (const std::string &group_name, std::vector< std::string > &group_links)
void getGroupLinks (const std::string &group_name, std::vector< std::string > &group_links)
 GraspSequenceValidator (planning_environment::CollisionModels *cm=NULL, const std::string &plugin_name="")
 Also adds a grasp marker at the pre-grasp location.
void setPlanningSceneState (planning_models::KinematicState *state)
virtual void testGrasp (const object_manipulation_msgs::PickupGoal &pickup_goal, const object_manipulation_msgs::Grasp &grasp, object_manipulator::GraspExecutionInfo &execution_info)
virtual void testGrasps (const object_manipulation_msgs::PickupGoal &pickup_goal, const std::vector< object_manipulation_msgs::Grasp > &grasps, std::vector< object_manipulator::GraspExecutionInfo > &execution_info, bool return_on_first_hit)
virtual void testGrasps (const object_manipulation_msgs::PickupGoal &pickup_goal, const std::vector< object_manipulation_msgs::Grasp > &grasps, double twistAngle, std::vector< GraspSequenceDetails > &execution_info, bool return_on_first_hit)
 ~GraspSequenceValidator ()

Public Attributes

pluginlib::ClassLoader
< kinematics::KinematicsBase
kinematics_loader_

Protected Member Functions

planning_environment::CollisionModelsgetCollisionModels ()
bool getInterpolatedIK (const std::string &arm_name, const tf::Transform &first_pose, const tf::Vector3 &direction, const double &distance, const std::vector< double > &ik_solution, const bool &reverse, const bool &premultiply, trajectory_msgs::JointTrajectory &traj)
bool getInterpolatedIK (const std::string &arm_name, const tf::Transform &initialTransform, const tf::Quaternion &rot, const std::vector< double > &ikSolutionAtStart, std::vector< double > &ikSolutionAtEnd, trajectory_msgs::JointTrajectory &traj)
planning_models::KinematicStategetPlanningSceneState ()
virtual std::vector
< arm_navigation_msgs::LinkPadding
linkPaddingForGrasp (const object_manipulation_msgs::PickupGoal &pickup_goal)
 Dynamic link padding to be used for grasp operation.

Protected Attributes

planning_environment::CollisionModelscm_
double consistent_angle_
std::map< std::string,
arm_kinematics_constraint_aware::ArmKinematicsSolverConstraintAware * > 
ik_solver_map_
unsigned int num_points_
unsigned int redundancy_
planning_models::KinematicStatestate_
ros::Publisher vis_marker_array_publisher_
ros::Publisher vis_marker_publisher_

Detailed Description

Uses an interpolated IK approach from pregrasp to final grasp.

Initial check consists of IK for the pre-grasp, followed by generation of an interpolated IK path from pre-grasp to grasp. This is then followed by computation of an interpolated IK path from grasp to lift.

Execution consists of using move arm to go to the pre-grasp, then execution of the interpolated IK paths for grasp. Lift is executed separately, called from the higher level executor.

Note that we do not use the pre-grasp from the database directly; rather, the pre-grasp is obtained by backing up the grasp by a pre-defined amount. This allows us more flexibility in choosing the pre-grasp. However, we can no longer always assume the pre-grasp is collision free, which we could if we used the pre-grasp from the database directly.

In the most recent database version, the pre-grasp was obtained by backing up 10 cm, so we know at least that that is not colliding with the object.

Definition at line 36 of file GraspSequenceValidator.h.


Constructor & Destructor Documentation

GraspSequenceValidator::GraspSequenceValidator ( planning_environment::CollisionModels cm = NULL,
const std::string &  plugin_name = "" 
)

Also adds a grasp marker at the pre-grasp location.

Definition at line 19 of file GraspSequenceValidator.cpp.

Definition at line 60 of file GraspSequenceValidator.cpp.


Member Function Documentation

Definition at line 65 of file GraspSequenceValidator.cpp.

void GraspSequenceValidator::getGroupJoints ( const std::string &  group_name,
std::vector< std::string > &  group_links 
)

Definition at line 114 of file GraspSequenceValidator.cpp.

void GraspSequenceValidator::getGroupLinks ( const std::string &  group_name,
std::vector< std::string > &  group_links 
)

Definition at line 104 of file GraspSequenceValidator.cpp.

bool GraspSequenceValidator::getInterpolatedIK ( const std::string &  arm_name,
const tf::Transform first_pose,
const tf::Vector3 &  direction,
const double &  distance,
const std::vector< double > &  ik_solution,
const bool &  reverse,
const bool &  premultiply,
trajectory_msgs::JointTrajectory &  traj 
) [protected]

Definition at line 124 of file GraspSequenceValidator.cpp.

bool GraspSequenceValidator::getInterpolatedIK ( const std::string &  arm_name,
const tf::Transform initialTransform,
const tf::Quaternion rot,
const std::vector< double > &  ikSolutionAtStart,
std::vector< double > &  ikSolutionAtEnd,
trajectory_msgs::JointTrajectory &  traj 
) [protected]

Definition at line 165 of file GraspSequenceValidator.cpp.

Definition at line 77 of file GraspSequenceValidator.cpp.

Dynamic link padding to be used for grasp operation.

Zero padding on fingertip links

Definition at line 96 of file GraspSequenceValidator.cpp.

Definition at line 92 of file GraspSequenceValidator.h.

virtual void GraspSequenceValidator::testGrasp ( const object_manipulation_msgs::PickupGoal pickup_goal,
const object_manipulation_msgs::Grasp &  grasp,
object_manipulator::GraspExecutionInfo execution_info 
) [inline, virtual]

Definition at line 103 of file GraspSequenceValidator.h.

void GraspSequenceValidator::testGrasps ( const object_manipulation_msgs::PickupGoal pickup_goal,
const std::vector< object_manipulation_msgs::Grasp > &  grasps,
std::vector< object_manipulator::GraspExecutionInfo > &  execution_info,
bool  return_on_first_hit 
) [virtual]

Definition at line 226 of file GraspSequenceValidator.cpp.

void GraspSequenceValidator::testGrasps ( const object_manipulation_msgs::PickupGoal pickup_goal,
const std::vector< object_manipulation_msgs::Grasp > &  grasps,
double  twistAngle,
std::vector< GraspSequenceDetails > &  execution_info,
bool  return_on_first_hit 
) [virtual]

Definition at line 855 of file GraspSequenceValidator.cpp.


Member Data Documentation

Definition at line 79 of file GraspSequenceValidator.h.

Definition at line 69 of file GraspSequenceValidator.h.

Definition at line 68 of file GraspSequenceValidator.h.

Definition at line 84 of file GraspSequenceValidator.h.

unsigned int GraspSequenceValidator::num_points_ [protected]

Definition at line 70 of file GraspSequenceValidator.h.

unsigned int GraspSequenceValidator::redundancy_ [protected]

Definition at line 71 of file GraspSequenceValidator.h.

Definition at line 80 of file GraspSequenceValidator.h.

Definition at line 73 of file GraspSequenceValidator.h.

Definition at line 74 of file GraspSequenceValidator.h.


The documentation for this class was generated from the following files:


object_manipulation_tools
Author(s): Jnicho
autogenerated on Mon Oct 6 2014 00:56:17