File: object_manipulation_msgs/Pickup.action
Action Definition
# An action for picking up an object
# which arm to be used for grasping
string arm_name
# the object to be grasped
manipulation_msgs/GraspableObject target
# a list of grasps to be used
# if empty, the grasp executive will call one of its own planners
manipulation_msgs/Grasp[] desired_grasps
# how the object should be lifted after the grasp
# the frame_id that this lift is specified in MUST be either the robot_frame
# or the gripper_frame specified in your hand description file
GripperTranslation lift
# the name that the target object has in the collision map
# can be left empty if no name is available
string collision_object_name
# the name that the support surface (e.g. table) has in the collision map
# can be left empty if no name is available
string collision_support_surface_name
# whether collisions between the gripper and the support surface should be acceptable
# during move from pre-grasp to grasp and during lift. Collisions when moving to the
# pre-grasp location are still not allowed even if this is set to true.
bool allow_gripper_support_collision
# whether reactive grasp execution using tactile sensors should be used
bool use_reactive_execution
# whether reactive object lifting based on tactile sensors should be used
bool use_reactive_lift
# set this to true if you only want to query the manipulation pipeline as to what
# grasps it thinks are feasible, without actually executing them. If this is set to
# true, the atempted_grasp_results field of the result will be populated, but no arm
# movement will be attempted
bool only_perform_feasibility_test
# set this to true if you want to ignore all collisions throughout the pickup
# and also move directly to the pre-grasp using Cartesian controllers
bool ignore_collisions
# OPTIONAL (These will not have to be filled out most of the time)
# constraints to be imposed on every point in the motion of the arm
arm_navigation_msgs/Constraints path_constraints
# OPTIONAL (These will not have to be filled out most of the time)
# additional collision operations to be used for every arm movement performed
# during grasping. Note that these will be added on top of (and thus overide) other
# collision operations that the grasping pipeline deems necessary. Should be used
# with care and only if special behaviors are desired
arm_navigation_msgs/OrderedCollisionOperations additional_collision_operations
# OPTIONAL (These will not have to be filled out most of the time)
# additional link paddings to be used for every arm movement performed
# during grasping. Note that these will be added on top of (and thus overide) other
# link paddings that the grasping pipeline deems necessary. Should be used
# with care and only if special behaviors are desired
arm_navigation_msgs/LinkPadding[] additional_link_padding
# an optional list of obstacles that we have semantic information about
# and that can be moved in the course of grasping
manipulation_msgs/GraspableObject[] movable_obstacles
# the maximum contact force to use while grasping (<=0 to disable)
float32 max_contact_force
---
# The overall result of the pickup attempt
ManipulationResult manipulation_result
# The performed grasp, if attempt was successful
manipulation_msgs/Grasp grasp
# the complete list of attempted grasp, in the order in which they have been attempted
# the successful one should be the last one in this list
manipulation_msgs/Grasp[] attempted_grasps
# the outcomes of the attempted grasps, in the same order as attempted_grasps
GraspResult[] attempted_grasp_results
---
# The number of the grasp currently being attempted
int32 current_grasp
# The total number of grasps that will be attempted
int32 total_grasps