| """This is a standalone file for create a task in libero.""" |
| import numpy as np |
|
|
| from libero.libero.utils.bddl_generation_utils import ( |
| get_xy_region_kwargs_list_from_regions_info, |
| ) |
| from libero.libero.utils.mu_utils import register_mu, InitialSceneTemplates |
| from libero.libero.utils.task_generation_utils import ( |
| register_task_info, |
| get_task_info, |
| generate_bddl_from_task_info, |
| ) |
|
|
|
|
| @register_mu(scene_type="kitchen") |
| class KitchenScene1(InitialSceneTemplates): |
| def __init__(self): |
|
|
| fixture_num_info = { |
| "kitchen_table": 1, |
| "wooden_cabinet": 1, |
| } |
|
|
| object_num_info = { |
| "akita_black_bowl": 1, |
| "plate": 1, |
| } |
|
|
| super().__init__( |
| workspace_name="kitchen_table", |
| fixture_num_info=fixture_num_info, |
| object_num_info=object_num_info, |
| ) |
|
|
| def define_regions(self): |
| self.regions.update( |
| self.get_region_dict( |
| region_centroid_xy=[0.0, -0.30], |
| region_name="wooden_cabinet_init_region", |
| target_name=self.workspace_name, |
| region_half_len=0.01, |
| yaw_rotation=(np.pi, np.pi), |
| ) |
| ) |
|
|
| self.regions.update( |
| self.get_region_dict( |
| region_centroid_xy=[0.0, 0.0], |
| region_name="akita_black_bowl_init_region", |
| target_name=self.workspace_name, |
| region_half_len=0.025, |
| ) |
| ) |
|
|
| self.regions.update( |
| self.get_region_dict( |
| region_centroid_xy=[0.0, 0.25], |
| region_name="plate_init_region", |
| target_name=self.workspace_name, |
| region_half_len=0.025, |
| ) |
| ) |
| self.xy_region_kwargs_list = get_xy_region_kwargs_list_from_regions_info( |
| self.regions |
| ) |
|
|
| @property |
| def init_states(self): |
| states = [ |
| ("On", "akita_black_bowl_1", "kitchen_table_akita_black_bowl_init_region"), |
| ("On", "plate_1", "kitchen_table_plate_init_region"), |
| ("On", "wooden_cabinet_1", "kitchen_table_wooden_cabinet_init_region"), |
| ] |
| return states |
|
|
|
|
| def main(): |
| |
| scene_name = "kitchen_scene1" |
| language = "Your Language 1" |
| register_task_info( |
| language, |
| scene_name=scene_name, |
| objects_of_interest=["wooden_cabinet_1", "akita_black_bowl_1"], |
| goal_states=[ |
| ("Open", "wooden_cabinet_1_top_region"), |
| ("In", "akita_black_bowl_1", "wooden_cabinet_1_top_region"), |
| ], |
| ) |
|
|
| scene_name = "kitchen_scene1" |
| language = "Your Language 2" |
| register_task_info( |
| language, |
| scene_name=scene_name, |
| objects_of_interest=["wooden_cabinet_1", "akita_black_bowl_1"], |
| goal_states=[ |
| ("Open", "wooden_cabinet_1_top_region"), |
| ("In", "akita_black_bowl_1", "wooden_cabinet_1_bottom_region"), |
| ], |
| ) |
| bddl_file_names, failures = generate_bddl_from_task_info() |
| print(bddl_file_names) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|