Spaces:
Runtime error
Runtime error
import numpy as np | |
from shapely.geometry import * | |
from shapely.affinity import * | |
from env_utils import denormalize_xy, parse_obj_name, get_obj_names, get_obj_pos | |
# a 30cm horizontal line in the middle with 3 points. | |
middle_pos = denormalize_xy([0.5, 0.5]) | |
start_pos = middle_pos + [-0.3/2, 0] | |
end_pos = middle_pos + [0.3/2, 0] | |
line = make_line(start=start_pos, end=end_pos) | |
points = interpolate_pts_on_line(line=line, n=3) | |
ret_val = points | |
# a 20cm vertical line near the right with 4 points. | |
middle_pos = denormalize_xy([1, 0.5]) | |
start_pos = middle_pos + [0, -0.2/2] | |
end_pos = middle_pos + [0, 0.2/2] | |
line = make_line(start=start_pos, end=end_pos) | |
points = interpolate_pts_on_line(line=line, n=4) | |
ret_val = points | |
# a diagonal line from the top left to the bottom right corner with 5 points. | |
top_left_corner = denormalize_xy([0, 1]) | |
bottom_right_corner = denormalize_xy([1, 0]) | |
line = make_line(start=top_left_corner, end=bottom_right_corner) | |
points = interpolate_pts_on_line(line=line, n=5) | |
ret_val = points | |
# a triangle with size 10cm with 3 points. | |
polygon = make_triangle(size=0.1, center=denormalize_xy([0.5, 0.5])) | |
points = get_points_from_polygon(polygon) | |
ret_val = points | |
# the corner closest to the sun colored block. | |
block_name = parse_obj_name('the sun colored block', f'objects = {get_obj_names()}') | |
corner_positions = np.array([denormalize_xy(pos) for pos in [[0, 0], [0, 1], [1, 1], [1, 0]]]) | |
closest_corner_pos = get_closest_point(points=corner_positions, point=get_obj_pos(block_name)) | |
ret_val = closest_corner_pos | |
# the side farthest from the right most bowl. | |
bowl_name = parse_obj_name('the right most bowl', f'objects = {get_obj_names()}') | |
side_positions = np.array([denormalize_xy(pos) for pos in [[0.5, 0], [0.5, 1], [1, 0.5], [0, 0.5]]]) | |
farthest_side_pos = get_farthest_point(points=side_positions, point=get_obj_pos(bowl_name)) | |
ret_val = farthest_side_pos | |
# a point above the third block from the bottom. | |
block_name = parse_obj_name('the third block from the bottom', f'objects = {get_obj_names()}') | |
ret_val = get_obj_pos(block_name) + [0.1, 0] | |
# a point 10cm left of the bowls. | |
bowl_names = parse_obj_name('the bowls', f'objects = {get_obj_names()}') | |
bowl_positions = get_all_object_positions_np(obj_names=bowl_names) | |
left_obj_pos = bowl_positions[np.argmin(bowl_positions[:, 0])] + [-0.1, 0] | |
ret_val = left_obj_pos | |
# the bottom side. | |
bottom_pos = denormalize_xy([0.5, 0]) | |
ret_val = bottom_pos | |
# the top corners. | |
top_left_pos = denormalize_xy([0, 1]) | |
top_right_pos = denormalize_xy([1, 1]) | |
ret_val = [top_left_pos, top_right_pos] |