| """Put an object away inside a roofed fixture: grasp it, then slide it in horizontally.""" | |
| from .base import approach_and_grasp, place_into | |
| def solve(env, obj, target, arm="right", jaw="auto", max_gap=0.045, approach=(0.0, -1.0), | |
| standoff=0.16, tilt_deg=0.0): | |
| a = env.arms[arm] | |
| res, ext = approach_and_grasp(env, a, obj, jaw=jaw, max_gap=max_gap) | |
| if not res.ok: | |
| env.recorder.phase = "ABORT: the object was never grasped" | |
| return {"grasped": False, "reason": res.reason} | |
| env._last_placed = obj | |
| err = place_into(env, a, target, float(ext[2])/2.0, approach=approach, standoff=standoff, | |
| tilt_deg=tilt_deg) | |
| return {"grasped": True, "place_err": err} | |