A non-transitory computer-readable storage device comprising computer-executable instructions that, when executed by the processor, cause a processor to perform operations, for planning a grasping-device approach to an object by a grasping device, a pre-grasp device position, and a pre-grasp device pose, comprising:
- obtaining input data including grasping-device data, object data, and environmental-constraint data;
- determining, based on at least the grasping-device data, a grasp volume model;
- determining a test approach vector;
- determining, using the test approach vector, the environmental-constraint data, and the grasp volume model, whether modification to the test approach vector is needed;
- modifying, if it is determined that the modification is needed, the test approach vector, yielding a resulting approach vector;
- determining, if it is determined that the modification is not needed, that the test approach vector is the resulting approach vector;
- determining virtual floor data indicating a position below which the grasping device cannot move;
- and
- determining, based on the resulting approach vector, the virtual floor data, the grasp volume model, and the object data, the grasping-device approach, the pre-grasp device position, and the pre-grasp device pose.