object_manipulation_msgs/Pickup Action

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
GraspableObject target

# a list of grasps to be used
# if empty, the grasp executive will call one of its own planners
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
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
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
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