concepts.simulator.pybullet.manipulation_utils.contact_samplers.sample_placement#
- sample_placement(robot, target_id, support_id, retain_target_orientation=False, batch_size=100, max_attempts=10000, placement_tol=0.03, support_dir_tol=30, np_random=None, verbose=False)[source]#
Sample a placement of the target object on the support object.
- Parameters:
robot (BulletArmRobotBase) – the robot.
target_id (int) – the id of the target object.
support_id (int) – the id of the support object.
retain_target_orientation (bool) – if True, the target object will be placed with the same orientation as the current one.
batch_size (int) – the number of samples in batch processing.
max_attempts (int) – the maximum number of attempts for sampling.
placement_tol (float) – the tolerance for the placement. To check collision, we will place the object at a position that is placement_tol away from the support surface and check for collision.
support_dir_tol (float) – the tolerance for the support direction. We will sample the placement direction such that the support direction is within support_dir_tol degree from the gravity direction.
np_random (RandomState | None) – the random state.
verbose (bool) – whether to print the sampling information.
- Yields:
the placement parameters.
- Return type: