diff --git a/.gitattributes b/.gitattributes index 61e2f5cc6317f4a162684422e6c93770c37afa9f..2de741b244163f189bfb062396a61d2648d25b13 100644 --- a/.gitattributes +++ b/.gitattributes @@ -79,3 +79,10 @@ openpi/third_party/aloha/aloha2/RSd405[[:space:]]2020[[:space:]]Worms-eye[[:spac openpi/third_party/aloha/aloha2/aloha_gripper_assembly.pdf filter=lfs diff=lfs merge=lfs -text openpi/third_party/aloha/aloha2/workcell_v2/Aloha[[:space:]]workcell[[:space:]]v2.stl filter=lfs diff=lfs merge=lfs -text openpi/third_party/libero/images/fig1.png filter=lfs diff=lfs merge=lfs -text +openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.init filter=lfs diff=lfs merge=lfs -text +openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.init filter=lfs diff=lfs merge=lfs -text +openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.init filter=lfs diff=lfs merge=lfs -text +openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.init filter=lfs diff=lfs merge=lfs -text +openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.init filter=lfs diff=lfs merge=lfs -text +openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.init filter=lfs diff=lfs merge=lfs -text +openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.init filter=lfs diff=lfs merge=lfs -text diff --git a/openpi/third_party/libero/libero/libero/__init__.py b/openpi/third_party/libero/libero/libero/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..426ccc5c8d4c9540a45ea9b42a0540c6d59a4f6a --- /dev/null +++ b/openpi/third_party/libero/libero/libero/__init__.py @@ -0,0 +1,96 @@ +import os +import yaml + +# This is a default path for localizing all the benchmark related files +libero_config_path = os.environ.get( + "LIBERO_CONFIG_PATH", os.path.expanduser("~/.libero") +) +config_file = os.path.join(libero_config_path, "config.yaml") + + +def get_default_path_dict(custom_location=None): + if custom_location is None: + benchmark_root_path = os.path.dirname(os.path.abspath(__file__)) + else: + benchmark_root_path = custom_location + + # This is a default path for localizing all the default bddl files + bddl_files_default_path = os.path.join(benchmark_root_path, "./bddl_files") + + # This is a default path for localizing all the default bddl files + init_states_default_path = os.path.join(benchmark_root_path, "./init_files") + + # This is a default path for localizing all the default datasets + dataset_default_path = os.path.join(benchmark_root_path, "../datasets") + + # This is a default path for localizing all the default assets + assets_default_path = os.path.join(benchmark_root_path, "./assets") + + return { + "benchmark_root": benchmark_root_path, + "bddl_files": bddl_files_default_path, + "init_states": init_states_default_path, + "datasets": dataset_default_path, + "assets": assets_default_path, + } + + +def get_libero_path(query_key): + with open(config_file, "r") as f: + config = dict(yaml.load(f.read(), Loader=yaml.FullLoader)) + + # Give warnings in case the user needs to access the paths + for key in config: + if not os.path.exists(config[key]): + print(f"[Warning]: {key} path {config[key]} does not exist!") + + assert ( + query_key in config + ), f"Key {query_key} not found in config file {config_file}. You need to modify it. Available keys are: {config.keys()}" + return config[query_key] + + +def set_libero_default_path(custom_location=os.path.dirname(os.path.abspath(__file__))): + print( + f"[Warning] You are changing the default path for Libero config. This will affect all the paths in the config file." + ) + new_config = get_default_path_dict(custom_location) + with open(config_file, "w") as f: + yaml.dump(new_config, f) + + +if not os.path.exists(libero_config_path): + os.makedirs(libero_config_path) + +if not os.path.exists(config_file): + # Create a default config file + + default_path_dict = get_default_path_dict() + answer = input( + "Do you want to specify a custom path for the dataset folder? (Y/N): " + ).lower() + if answer == "y": + # If the user wants to specify a custom storage path, prompt them to enter it + custom_dataset_path = input( + "Enter the path where you want to store the datasets: " + ) + full_custom_dataset_path = os.path.join( + os.path.abspath(os.path.expanduser(custom_dataset_path)), "datasets" + ) + # Check if the custom storage path exists, and create if it doesn't + + print("The full path of the custom storage path you entered is:") + print(full_custom_dataset_path) + print("Do you want to continue? (Y/N)") + confirm_answer = input().lower() + if confirm_answer == "y": + if not os.path.exists(full_custom_dataset_path): + os.makedirs(full_custom_dataset_path) + default_path_dict["datasets"] = full_custom_dataset_path + print("Initializing the default config file...") + print(f"The following information is stored in the config file: {config_file}") + # write all the paths into a yaml file + with open(config_file, "w") as f: + yaml.dump(default_path_dict, f) + for key, value in default_path_dict.items(): + print(f"{key}: {value}") diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..6530a7778f9413f4b22b291a5a6606c04809d7c0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.bddl @@ -0,0 +1,68 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language turn on the stove and put the moka pot on it) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.19 -0.19 0.21000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + chefmate_8_frypan_1 - chefmate_8_frypan + moka_pot_1 - moka_pot + ) + + (:obj_of_interest + moka_pot_1 + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On moka_pot_1 kitchen_table_moka_pot_init_region) + ) + + (:goal + (And (Turnon flat_stove_1) (On moka_pot_1 flat_stove_1_cook_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..71d1a650ea4e109e0d13b8c4475bf2cbe0ae091b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl in the bottom drawer of the cabinet and close it) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_rack_init_region + (:target kitchen_table) + (:ranges ( + (-0.11 -0.31 -0.09000000000000001 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_bottle_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + wine_bottle_1 - wine_bottle + ) + + (:obj_of_interest + akita_black_bowl_1 + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On wine_bottle_1 kitchen_table_wine_bottle_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On wine_rack_1 kitchen_table_wine_rack_init_region) + (Open white_cabinet_1_bottom_region) + ) + + (:goal + (And (Close white_cabinet_1_bottom_region) (In akita_black_bowl_1 white_cabinet_1_bottom_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..f531a4ede009cff9e1b0cb928049a88d72070d86 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.bddl @@ -0,0 +1,83 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the yellow and white mug in the microwave and close it) + (:regions + (microwave_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.33999999999999997 0.01 0.36) + ) + ) + (:yaw_rotation ( + (0 0) + ) + ) + ) + (white_yellow_mug_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.275 -0.07500000000000001 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_front_region + (:target kitchen_table) + (:ranges ( + (-0.05 -0.3 0.05 -0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target microwave_1) + ) + (heating_region + (:target microwave_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + microwave_1 - microwave + ) + + (:objects + porcelain_mug_1 - porcelain_mug + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + white_yellow_mug_1 + microwave_1 + ) + + (:init + (On porcelain_mug_1 kitchen_table_porcelain_mug_init_region) + (On white_yellow_mug_1 kitchen_table_white_yellow_mug_init_region) + (On microwave_1 kitchen_table_microwave_init_region) + (Open microwave_1) + ) + + (:goal + (And (In white_yellow_mug_1 microwave_1_heating_region) (Close microwave_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b983d7285869b49d3b6fe1329a9b7574de67b41b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.bddl @@ -0,0 +1,69 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put both moka pots on the stove) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 -0.21000000000000002 -0.19 -0.19) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_right_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.225 -0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_left_init_region + (:target kitchen_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + moka_pot_1 moka_pot_2 - moka_pot + ) + + (:obj_of_interest + moka_pot_1 + moka_pot_2 + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On moka_pot_1 kitchen_table_moka_pot_right_init_region) + (On moka_pot_2 kitchen_table_moka_pot_left_init_region) + (Turnon flat_stove_1) + ) + + (:goal + (And (On moka_pot_1 flat_stove_1_cook_region) (On moka_pot_2 flat_stove_1_cook_region) (Turnon flat_stove_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..0f3ba3ce48af83e690bfe8bed3caad22d4bf4cdf --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.bddl @@ -0,0 +1,95 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put both the alphabet soup and the cream cheese box in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.175 -0.17500000000000002 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + basket_1 - basket + ) + + (:obj_of_interest + alphabet_soup_1 + cream_cheese_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In alphabet_soup_1 basket_1_contain_region) (In cream_cheese_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..071ec86f8b5d8f33d542a72f925fe89e42442657 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.bddl @@ -0,0 +1,134 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put both the alphabet soup and the tomato sauce in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (milk_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (orange_juice_init_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.275 0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + orange_juice_1 - orange_juice + milk_1 - milk + butter_1 - butter + basket_1 - basket + ) + + (:obj_of_interest + alphabet_soup_1 + tomato_sauce_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On milk_1 living_room_table_milk_init_region) + (On orange_juice_1 living_room_table_orange_juice_init_region) + (On butter_1 living_room_table_butter_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In alphabet_soup_1 basket_1_contain_region) (In tomato_sauce_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..bbd9b7eda1e3aff44a193003fb88a568fc803d86 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.bddl @@ -0,0 +1,134 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put both the cream cheese box and the butter in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (milk_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (orange_juice_init_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.275 0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + orange_juice_1 - orange_juice + milk_1 - milk + butter_1 - butter + basket_1 - basket + ) + + (:obj_of_interest + cream_cheese_1 + butter_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On milk_1 living_room_table_milk_init_region) + (On orange_juice_1 living_room_table_orange_juice_init_region) + (On butter_1 living_room_table_butter_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In cream_cheese_1 basket_1_contain_region) (In butter_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..32024734f78b9c469d45c9d50503c2099ad67c4d --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the white mug on the left plate and put the yellow and white mug on the right plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.325 0.025 -0.27499999999999997) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (-0.025 0.27499999999999997 0.025 0.325) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_yellow_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + white_yellow_mug_1 - white_yellow_mug + plate_1 plate_2 - plate + ) + + (:obj_of_interest + plate_1 + plate_2 + white_yellow_mug_1 + porcelain_mug_1 + ) + + (:init + (On plate_1 living_room_table_plate_left_region) + (On plate_2 living_room_table_plate_right_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On white_yellow_mug_1 living_room_table_white_yellow_mug_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On porcelain_mug_1 plate_1) (On white_yellow_mug_1 plate_2)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..437f0755b8fee33d2fba02bd4f898845f6ed150f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl @@ -0,0 +1,101 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the white mug on the plate and put the chocolate pudding to the right of the plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 -0.15000000000000002 0.2 -0.05) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 0.05 0.2 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target living_room_table) + (:ranges ( + (0.125 -0.025 0.175 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + plate_1 - plate + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + plate_1 + chocolate_pudding_1 + porcelain_mug_1 + ) + + (:init + (On plate_1 living_room_table_plate_init_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On porcelain_mug_1 plate_1) (On chocolate_pudding_1 living_room_table_plate_right_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..2f0ad4b2d57354113768bdc6575c97041037ef0c --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl @@ -0,0 +1,88 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the back compartment of the caddy) + (:regions + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (white_yellow_mug_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On white_yellow_mug_1 study_table_white_yellow_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_back_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_10/tasks_info.txt b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/tasks_info.txt new file mode 100644 index 0000000000000000000000000000000000000000..171640383efe903a781e381aeb2b90f144b4c603 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_10/tasks_info.txt @@ -0,0 +1,10 @@ +libero/bddl_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.bddl +libero/bddl_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.bddl +libero/bddl_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.bddl +libero/bddl_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.bddl +libero/bddl_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.bddl +libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.bddl +libero/bddl_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.bddl +libero/bddl_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.bddl +libero/bddl_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl +libero/bddl_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..ff55b5f6118e1f5ee2d5a4bfba85e6544ca3a2c0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.bddl @@ -0,0 +1,102 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language close the top drawer of the cabinet) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.025 -0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 0.17500000000000002 -0.07500000000000001 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_front_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.17500000000000002 0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.025 0.025 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + butter_1 butter_2 - butter + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + wooden_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On butter_1 kitchen_table_butter_front_init_region) + (On butter_2 kitchen_table_butter_back_init_region) + (On chocolate_pudding_1 kitchen_table_chocolate_pudding_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + (Open wooden_cabinet_1_top_region) + ) + + (:goal + (And (Close wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..9a472b5b81b7e84cc528738bd59949a4ad749ddd --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.bddl @@ -0,0 +1,103 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language close the top drawer of the cabinet and put the black bowl on top of it) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.025 -0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 0.17500000000000002 -0.07500000000000001 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_front_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.17500000000000002 0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.025 0.025 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + butter_1 butter_2 - butter + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + wooden_cabinet_1 + akita_black_bowl_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On butter_1 kitchen_table_butter_front_init_region) + (On butter_2 kitchen_table_butter_back_init_region) + (On chocolate_pudding_1 kitchen_table_chocolate_pudding_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + (Open wooden_cabinet_1_top_region) + ) + + (:goal + (And (Close wooden_cabinet_1_top_region) (On akita_black_bowl_1 wooden_cabinet_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..d104a26252f2907f6af8b898b6bfb2249674c6d4 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl @@ -0,0 +1,103 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl in the top drawer of the cabinet) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.025 -0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 0.17500000000000002 -0.07500000000000001 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_front_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.17500000000000002 0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.025 0.025 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + butter_1 butter_2 - butter + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + akita_black_bowl_1 + wooden_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On butter_1 kitchen_table_butter_front_init_region) + (On butter_2 kitchen_table_butter_back_init_region) + (On chocolate_pudding_1 kitchen_table_chocolate_pudding_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + (Open wooden_cabinet_1_top_region) + ) + + (:goal + (And (In akita_black_bowl_1 wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..bca2e025c5d834f528e7d65ae6141608ce317b61 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.bddl @@ -0,0 +1,103 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the butter at the back in the top drawer of the cabinet and close it) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.025 -0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 0.17500000000000002 -0.07500000000000001 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_front_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.17500000000000002 0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.025 0.025 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + butter_1 butter_2 - butter + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + butter_2 + wooden_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On butter_1 kitchen_table_butter_front_init_region) + (On butter_2 kitchen_table_butter_back_init_region) + (On chocolate_pudding_1 kitchen_table_chocolate_pudding_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + (Open wooden_cabinet_1_top_region) + ) + + (:goal + (And (In butter_2 wooden_cabinet_1_top_region) (Close wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..ec40909885b7d80b55f0375eb18f0e133b4c3a04 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.bddl @@ -0,0 +1,103 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the butter at the front in the top drawer of the cabinet and close it) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.025 -0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 0.17500000000000002 -0.07500000000000001 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_front_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.17500000000000002 0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.025 0.025 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + butter_1 butter_2 - butter + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + butter_1 + wooden_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On butter_1 kitchen_table_butter_front_init_region) + (On butter_2 kitchen_table_butter_back_init_region) + (On chocolate_pudding_1 kitchen_table_chocolate_pudding_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + (Open wooden_cabinet_1_top_region) + ) + + (:goal + (And (In butter_1 wooden_cabinet_1_top_region) (Close wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..45f823a34efa47072ee1036bd02d2917a8eb9bab --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.bddl @@ -0,0 +1,103 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the chocolate pudding in the top drawer of the cabinet and close it) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.025 -0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 0.17500000000000002 -0.07500000000000001 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_front_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.17500000000000002 0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.025 0.025 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + butter_1 butter_2 - butter + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + chocolate_pudding_1 + wooden_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On butter_1 kitchen_table_butter_front_init_region) + (On butter_2 kitchen_table_butter_back_init_region) + (On chocolate_pudding_1 kitchen_table_chocolate_pudding_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + (Open wooden_cabinet_1_top_region) + ) + + (:goal + (And (In chocolate_pudding_1 wooden_cabinet_1_top_region) (Close wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..d8eefdc202184491b9bd9a793f826302397a439c --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.bddl @@ -0,0 +1,76 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language open the bottom drawer of the cabinet) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.225 0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + wooden_cabinet_1 + ) + + (:init + (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) + ) + + (:goal + (And (Open wooden_cabinet_1_bottom_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..c87a4200db60b6db4aef468782b469312da50eac --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.bddl @@ -0,0 +1,76 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language open the top drawer of the cabinet) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.225 0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + wooden_cabinet_1 + ) + + (:init + (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) + ) + + (:goal + (And (Open wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..cbf10b380d32c722cc63d6dd13dd4f589a81333d --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.bddl @@ -0,0 +1,77 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language open the top drawer of the cabinet and put the bowl in it) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.225 0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + wooden_cabinet_1 + akita_black_bowl_1 + ) + + (:init + (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) + ) + + (:goal + (And (Open wooden_cabinet_1_top_region) (In akita_black_bowl_1 wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..0e4ced34ba178aea6b1aa1bdc1644c23fa44a1fc --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.bddl @@ -0,0 +1,77 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl on the plate) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.225 0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (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) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b97648138aecd39771de818c6b4013d1d4e11b1f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.bddl @@ -0,0 +1,77 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl on top of the cabinet) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 0.225 0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + wooden_cabinet_1 + ) + + (:init + (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) + ) + + (:goal + (And (On akita_black_bowl_1 wooden_cabinet_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..066e546253d2d7a20d1127d284b79d1cefcdfa96 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.bddl @@ -0,0 +1,100 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language open the top drawer of the cabinet) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_middle_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.17500000000000002 -0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_front_init_region + (:target kitchen_table) + (:ranges ( + (0.07500000000000001 0.125 0.125 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 akita_black_bowl_3 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + wooden_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_front_init_region) + (On akita_black_bowl_2 kitchen_table_akita_black_bowl_middle_init_region) + (On akita_black_bowl_3 kitchen_table_akita_black_bowl_back_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + ) + + (:goal + (And (Open wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..51252ea01b9aafbe87dbf62c2737d8e31b00fc04 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.bddl @@ -0,0 +1,101 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl at the back on the plate) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_middle_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.17500000000000002 -0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_front_init_region + (:target kitchen_table) + (:ranges ( + (0.07500000000000001 0.125 0.125 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 akita_black_bowl_3 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_3 + plate_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_front_init_region) + (On akita_black_bowl_2 kitchen_table_akita_black_bowl_middle_init_region) + (On akita_black_bowl_3 kitchen_table_akita_black_bowl_back_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + ) + + (:goal + (And (On akita_black_bowl_3 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..fba57f5e7562838d195c6a329e8c752de44f50bb --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.bddl @@ -0,0 +1,101 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl at the front on the plate) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_middle_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.17500000000000002 -0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_front_init_region + (:target kitchen_table) + (:ranges ( + (0.07500000000000001 0.125 0.125 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 akita_black_bowl_3 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_front_init_region) + (On akita_black_bowl_2 kitchen_table_akita_black_bowl_middle_init_region) + (On akita_black_bowl_3 kitchen_table_akita_black_bowl_back_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..13a674edb12ad3ea3204419bc2d933b9424ee253 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.bddl @@ -0,0 +1,101 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl in the middle on the plate) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_middle_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.17500000000000002 -0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_front_init_region + (:target kitchen_table) + (:ranges ( + (0.07500000000000001 0.125 0.125 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 akita_black_bowl_3 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_2 + plate_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_front_init_region) + (On akita_black_bowl_2 kitchen_table_akita_black_bowl_middle_init_region) + (On akita_black_bowl_3 kitchen_table_akita_black_bowl_back_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + ) + + (:goal + (And (On akita_black_bowl_2 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..6265211f855effd9229cddc3396684a1ab071b57 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.bddl @@ -0,0 +1,101 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the middle black bowl on top of the cabinet) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_middle_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.17500000000000002 -0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_front_init_region + (:target kitchen_table) + (:ranges ( + (0.07500000000000001 0.125 0.125 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 akita_black_bowl_3 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_2 + wooden_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_front_init_region) + (On akita_black_bowl_2 kitchen_table_akita_black_bowl_middle_init_region) + (On akita_black_bowl_3 kitchen_table_akita_black_bowl_back_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + ) + + (:goal + (And (On akita_black_bowl_2 wooden_cabinet_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.bddl new file mode 100644 index 0000000000000000000000000000000000000000..0ba2f4cba13a793f303e3261de4ec921c70305ca --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.bddl @@ -0,0 +1,101 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language stack the black bowl at the front on the black bowl in the middle) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_middle_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.17500000000000002 -0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_front_init_region + (:target kitchen_table) + (:ranges ( + (0.07500000000000001 0.125 0.125 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 akita_black_bowl_3 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + akita_black_bowl_2 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_front_init_region) + (On akita_black_bowl_2 kitchen_table_akita_black_bowl_middle_init_region) + (On akita_black_bowl_3 kitchen_table_akita_black_bowl_back_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + ) + + (:goal + (And (On akita_black_bowl_1 akita_black_bowl_2)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.bddl new file mode 100644 index 0000000000000000000000000000000000000000..0c8f4e12d64d871c458baa0096f9558691fefc5f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.bddl @@ -0,0 +1,101 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language stack the black bowl in the middle on the black bowl at the front) + (:regions + (wooden_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.31 0.01 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_middle_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.17500000000000002 -0.025 0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_front_init_region + (:target kitchen_table) + (:ranges ( + (0.07500000000000001 0.125 0.125 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_back_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target wooden_cabinet_1) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + wooden_cabinet_1 - wooden_cabinet + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 akita_black_bowl_3 - akita_black_bowl + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_2 + akita_black_bowl_3 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_front_init_region) + (On akita_black_bowl_2 kitchen_table_akita_black_bowl_middle_init_region) + (On akita_black_bowl_3 kitchen_table_akita_black_bowl_back_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On wooden_cabinet_1 kitchen_table_wooden_cabinet_init_region) + ) + + (:goal + (And (On akita_black_bowl_2 akita_black_bowl_3)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..9fab771bc2558c12edf1c231a3ae6c2731953672 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.bddl @@ -0,0 +1,68 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the frying pan on the stove) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.19 -0.19 0.21000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + chefmate_8_frypan_1 - chefmate_8_frypan + moka_pot_1 - moka_pot + ) + + (:obj_of_interest + chefmate_8_frypan_1 + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On moka_pot_1 kitchen_table_moka_pot_init_region) + ) + + (:goal + (And (On chefmate_8_frypan_1 flat_stove_1_cook_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..26b97b05f8321ff79f14efcb5c63a7245e05fb48 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.bddl @@ -0,0 +1,68 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the moka pot on the stove) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.19 -0.19 0.21000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + chefmate_8_frypan_1 - chefmate_8_frypan + moka_pot_1 - moka_pot + ) + + (:obj_of_interest + moka_pot_1 + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On moka_pot_1 kitchen_table_moka_pot_init_region) + ) + + (:goal + (And (On moka_pot_1 flat_stove_1_cook_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..2ee52e41828a4264c5e79211b801db9ae705e837 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.bddl @@ -0,0 +1,67 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language turn on the stove) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.19 -0.19 0.21000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + chefmate_8_frypan_1 - chefmate_8_frypan + moka_pot_1 - moka_pot + ) + + (:obj_of_interest + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On moka_pot_1 kitchen_table_moka_pot_init_region) + ) + + (:goal + (And (Turnon flat_stove_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b47d51e00c8d1df5a6a04a878aea373ddf4b8e64 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl @@ -0,0 +1,68 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language turn on the stove and put the frying pan on it) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.19 -0.19 0.21000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + chefmate_8_frypan_1 - chefmate_8_frypan + moka_pot_1 - moka_pot + ) + + (:obj_of_interest + chefmate_8_frypan_1 + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On moka_pot_1 kitchen_table_moka_pot_init_region) + ) + + (:goal + (And (Turnon flat_stove_1) (On chefmate_8_frypan_1 flat_stove_1_cook_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..f65b649fc22bfe463db1e7218498f7e63c36ee31 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.bddl @@ -0,0 +1,93 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language close the bottom drawer of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_rack_init_region + (:target kitchen_table) + (:ranges ( + (-0.11 -0.31 -0.09000000000000001 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_bottle_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + wine_bottle_1 - wine_bottle + ) + + (:obj_of_interest + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On wine_bottle_1 kitchen_table_wine_bottle_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On wine_rack_1 kitchen_table_wine_rack_init_region) + (Open white_cabinet_1_bottom_region) + ) + + (:goal + (And (Close white_cabinet_1_bottom_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.bddl new file mode 100644 index 0000000000000000000000000000000000000000..dc4c08fcf9c3b2bccc6a444d4648caa57a281ad0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.bddl @@ -0,0 +1,93 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language close the bottom drawer of the cabinet and open the top drawer) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_rack_init_region + (:target kitchen_table) + (:ranges ( + (-0.11 -0.31 -0.09000000000000001 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_bottle_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + wine_bottle_1 - wine_bottle + ) + + (:obj_of_interest + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On wine_bottle_1 kitchen_table_wine_bottle_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On wine_rack_1 kitchen_table_wine_rack_init_region) + (Open white_cabinet_1_bottom_region) + ) + + (:goal + (And (Close white_cabinet_1_bottom_region) (Open white_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..8c4ceb1691e356e552a80bd3eaaaedd1405c5dce --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl in the bottom drawer of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_rack_init_region + (:target kitchen_table) + (:ranges ( + (-0.11 -0.31 -0.09000000000000001 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_bottle_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + wine_bottle_1 - wine_bottle + ) + + (:obj_of_interest + akita_black_bowl_1 + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On wine_bottle_1 kitchen_table_wine_bottle_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On wine_rack_1 kitchen_table_wine_rack_init_region) + (Open white_cabinet_1_bottom_region) + ) + + (:goal + (And (In akita_black_bowl_1 white_cabinet_1_bottom_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..284cdceb616a545373c00358c85bdacecf2306d3 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl on top of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_rack_init_region + (:target kitchen_table) + (:ranges ( + (-0.11 -0.31 -0.09000000000000001 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_bottle_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + wine_bottle_1 - wine_bottle + ) + + (:obj_of_interest + akita_black_bowl_1 + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On wine_bottle_1 kitchen_table_wine_bottle_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On wine_rack_1 kitchen_table_wine_rack_init_region) + (Open white_cabinet_1_bottom_region) + ) + + (:goal + (And (On akita_black_bowl_1 white_cabinet_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..1e16887b3e6c79edec59bc7c803964dc16996a7e --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the wine bottle in the bottom drawer of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_rack_init_region + (:target kitchen_table) + (:ranges ( + (-0.11 -0.31 -0.09000000000000001 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_bottle_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + wine_bottle_1 - wine_bottle + ) + + (:obj_of_interest + wine_bottle_1 + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On wine_bottle_1 kitchen_table_wine_bottle_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On wine_rack_1 kitchen_table_wine_rack_init_region) + (Open white_cabinet_1_bottom_region) + ) + + (:goal + (And (In wine_bottle_1 white_cabinet_1_bottom_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b0e3eb7127cd41f1c28e76b9d0dbb9b7ad09e8c2 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the wine bottle on the wine rack) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_rack_init_region + (:target kitchen_table) + (:ranges ( + (-0.11 -0.31 -0.09000000000000001 -0.29) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wine_bottle_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.025 -0.125 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + wine_bottle_1 - wine_bottle + ) + + (:obj_of_interest + wine_bottle_1 + wine_rack_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On wine_bottle_1 kitchen_table_wine_bottle_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On wine_rack_1 kitchen_table_wine_rack_init_region) + (Open white_cabinet_1_bottom_region) + ) + + (:goal + (And (On wine_bottle_1 wine_rack_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..9108ccaf84a1de7eb5580baf6e66c520945c7193 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language close the top drawer of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.125 -0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ketchup_1 - ketchup + ) + + (:obj_of_interest + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On ketchup_1 kitchen_table_ketchup_init_region) + (Open white_cabinet_1_top_region) + ) + + (:goal + (And (Close white_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..242bc4539a3032d109e7759032f8e629e8d5b8da --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl @@ -0,0 +1,91 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl in the top drawer of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.125 -0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ketchup_1 - ketchup + ) + + (:obj_of_interest + akita_black_bowl_1 + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On ketchup_1 kitchen_table_ketchup_init_region) + (Open white_cabinet_1_top_region) + ) + + (:goal + (And (In akita_black_bowl_1 white_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..31e3ffd1e75d104e3f549e190d3f50eac2fc1ea1 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.bddl @@ -0,0 +1,91 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl on the plate) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.125 -0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ketchup_1 - ketchup + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On ketchup_1 kitchen_table_ketchup_init_region) + (Open white_cabinet_1_top_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..5ff66840e25b800960fbbd4228d8e447825c0be6 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.bddl @@ -0,0 +1,91 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the black bowl on top of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.125 -0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ketchup_1 - ketchup + ) + + (:obj_of_interest + akita_black_bowl_1 + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On ketchup_1 kitchen_table_ketchup_init_region) + (Open white_cabinet_1_top_region) + ) + + (:goal + (And (On akita_black_bowl_1 white_cabinet_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..cdd0e89076e01a741f5fe44ae0a397b1d7702ca9 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.bddl @@ -0,0 +1,91 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the ketchup in the top drawer of the cabinet) + (:regions + (white_cabinet_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.29 0.01 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_init_region + (:target kitchen_table) + (:ranges ( + (0.0049999999999999975 -0.07500000000000001 0.055 -0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.125 -0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 -0.275 -0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target white_cabinet_1) + ) + (top_region + (:target white_cabinet_1) + ) + (middle_region + (:target white_cabinet_1) + ) + (bottom_region + (:target white_cabinet_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + white_cabinet_1 - white_cabinet + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + plate_1 - plate + ketchup_1 - ketchup + ) + + (:obj_of_interest + ketchup_1 + white_cabinet_1 + ) + + (:init + (On akita_black_bowl_1 kitchen_table_akita_black_bowl_init_region) + (On plate_1 kitchen_table_plate_init_region) + (On white_cabinet_1 kitchen_table_white_cabinet_init_region) + (On ketchup_1 kitchen_table_ketchup_init_region) + (Open white_cabinet_1_top_region) + ) + + (:goal + (And (In ketchup_1 white_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE6_close_the_microwave.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE6_close_the_microwave.bddl new file mode 100644 index 0000000000000000000000000000000000000000..c523ad1a89044b92ae67cc09f2624ad02b38e09f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE6_close_the_microwave.bddl @@ -0,0 +1,82 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language close the microwave) + (:regions + (microwave_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.33999999999999997 0.01 0.36) + ) + ) + (:yaw_rotation ( + (0 0) + ) + ) + ) + (white_yellow_mug_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.275 -0.07500000000000001 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_front_region + (:target kitchen_table) + (:ranges ( + (-0.05 -0.3 0.05 -0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target microwave_1) + ) + (heating_region + (:target microwave_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + microwave_1 - microwave + ) + + (:objects + porcelain_mug_1 - porcelain_mug + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + microwave_1 + ) + + (:init + (On porcelain_mug_1 kitchen_table_porcelain_mug_init_region) + (On white_yellow_mug_1 kitchen_table_white_yellow_mug_init_region) + (On microwave_1 kitchen_table_microwave_init_region) + (Open microwave_1) + ) + + (:goal + (And (Close microwave_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.bddl new file mode 100644 index 0000000000000000000000000000000000000000..f752fc84acf1cee6d93057404aece75d6b0ce832 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.bddl @@ -0,0 +1,83 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the yellow and white mug to the front of the white mug) + (:regions + (microwave_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 0.33999999999999997 0.01 0.36) + ) + ) + (:yaw_rotation ( + (0 0) + ) + ) + ) + (white_yellow_mug_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target kitchen_table) + (:ranges ( + (-0.125 -0.275 -0.07500000000000001 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_front_region + (:target kitchen_table) + (:ranges ( + (-0.05 -0.3 0.05 -0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target microwave_1) + ) + (heating_region + (:target microwave_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + microwave_1 - microwave + ) + + (:objects + porcelain_mug_1 - porcelain_mug + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + porcelain_mug_1 + white_yellow_mug_1 + ) + + (:init + (On porcelain_mug_1 kitchen_table_porcelain_mug_init_region) + (On white_yellow_mug_1 kitchen_table_white_yellow_mug_init_region) + (On microwave_1 kitchen_table_microwave_init_region) + (Open microwave_1) + ) + + (:goal + (And (On white_yellow_mug_1 kitchen_table_porcelain_mug_front_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_open_the_microwave.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_open_the_microwave.bddl new file mode 100644 index 0000000000000000000000000000000000000000..15f4df2e4b3acd67582214df6f170e5556592d46 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_open_the_microwave.bddl @@ -0,0 +1,71 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language open the microwave) + (:regions + (microwave_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target kitchen_table) + (:ranges ( + (-0.05 0.05 0.05 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target microwave_1) + ) + (heating_region + (:target microwave_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + microwave_1 - microwave + ) + + (:objects + white_bowl_1 - white_bowl + plate_1 - plate + ) + + (:obj_of_interest + microwave_1 + ) + + (:init + (On white_bowl_1 microwave_1_top_side) + (On microwave_1 kitchen_table_microwave_init_region) + (Close microwave_1) + (On plate_1 kitchen_table_plate_init_region) + ) + + (:goal + (And (Open microwave_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..3aa59ae7839ae3d53c78399670ca89212f96ab07 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.bddl @@ -0,0 +1,72 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the white bowl on the plate) + (:regions + (microwave_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target kitchen_table) + (:ranges ( + (-0.05 0.05 0.05 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target microwave_1) + ) + (heating_region + (:target microwave_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + microwave_1 - microwave + ) + + (:objects + white_bowl_1 - white_bowl + plate_1 - plate + ) + + (:obj_of_interest + white_bowl_1 + plate_1 + ) + + (:init + (On white_bowl_1 microwave_1_top_side) + (On microwave_1 kitchen_table_microwave_init_region) + (Close microwave_1) + (On plate_1 kitchen_table_plate_init_region) + ) + + (:goal + (And (On white_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..a1b495dac27cd3da422b3d37ca1042d380dd2bb0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.bddl @@ -0,0 +1,72 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the white bowl to the right of the plate) + (:regions + (microwave_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (plate_init_region + (:target kitchen_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target kitchen_table) + (:ranges ( + (-0.05 0.05 0.05 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (top_side + (:target microwave_1) + ) + (heating_region + (:target microwave_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + microwave_1 - microwave + ) + + (:objects + white_bowl_1 - white_bowl + plate_1 - plate + ) + + (:obj_of_interest + white_bowl_1 + plate_1 + ) + + (:init + (On white_bowl_1 microwave_1_top_side) + (On microwave_1 kitchen_table_microwave_init_region) + (Close microwave_1) + (On plate_1 kitchen_table_plate_init_region) + ) + + (:goal + (And (On white_bowl_1 kitchen_table_plate_right_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..6cf5a777d26923b834ae545ea46abc6ee27814fe --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.bddl @@ -0,0 +1,68 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the right moka pot on the stove) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 -0.21000000000000002 -0.19 -0.19) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_right_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.225 -0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_left_init_region + (:target kitchen_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + moka_pot_1 moka_pot_2 - moka_pot + ) + + (:obj_of_interest + moka_pot_1 + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On moka_pot_1 kitchen_table_moka_pot_right_init_region) + (On moka_pot_2 kitchen_table_moka_pot_left_init_region) + (Turnon flat_stove_1) + ) + + (:goal + (And (On moka_pot_1 flat_stove_1_cook_region) (Turnon flat_stove_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..de277c48d258fe4e5dc62609434b09eb47979d06 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.bddl @@ -0,0 +1,67 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language turn off the stove) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 -0.21000000000000002 -0.19 -0.19) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_right_init_region + (:target kitchen_table) + (:ranges ( + (-0.07500000000000001 0.225 -0.025 0.275) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (moka_pot_left_init_region + (:target kitchen_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + ) + + (:objects + moka_pot_1 moka_pot_2 - moka_pot + ) + + (:obj_of_interest + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On moka_pot_1 kitchen_table_moka_pot_right_init_region) + (On moka_pot_2 kitchen_table_moka_pot_left_init_region) + (Turnon flat_stove_1) + ) + + (:goal + (And (Turnoff flat_stove_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b1e7a7169199c06253ce8e6c270c4900886d27ca --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the frying pan on the cabinet shelf) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.29 -0.19 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.07500000000000001 -0.125 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + white_bowl_1 - white_bowl + chefmate_8_frypan_1 - chefmate_8_frypan + ) + + (:obj_of_interest + chefmate_8_frypan_1 + wooden_two_layer_shelf_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On white_bowl_1 kitchen_table_white_bowl_init_region) + (On wooden_two_layer_shelf_1 kitchen_table_wooden_two_layer_shelf_init_region) + ) + + (:goal + (And (In chefmate_8_frypan_1 wooden_two_layer_shelf_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..a8619d2f2001e2b684b6c7a13e7ade7fb49fe3ce --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the frying pan on top of the cabinet) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.29 -0.19 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.07500000000000001 -0.125 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + white_bowl_1 - white_bowl + chefmate_8_frypan_1 - chefmate_8_frypan + ) + + (:obj_of_interest + chefmate_8_frypan_1 + wooden_two_layer_shelf_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On white_bowl_1 kitchen_table_white_bowl_init_region) + (On wooden_two_layer_shelf_1 kitchen_table_wooden_two_layer_shelf_init_region) + ) + + (:goal + (And (On chefmate_8_frypan_1 wooden_two_layer_shelf_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.bddl new file mode 100644 index 0000000000000000000000000000000000000000..aa9c5bd85e98ac888e85f748d96b2e7a8997ab29 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the frying pan under the cabinet shelf) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.29 -0.19 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.07500000000000001 -0.125 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + white_bowl_1 - white_bowl + chefmate_8_frypan_1 - chefmate_8_frypan + ) + + (:obj_of_interest + chefmate_8_frypan_1 + wooden_two_layer_shelf_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On white_bowl_1 kitchen_table_white_bowl_init_region) + (On wooden_two_layer_shelf_1 kitchen_table_wooden_two_layer_shelf_init_region) + ) + + (:goal + (And (In chefmate_8_frypan_1 wooden_two_layer_shelf_1_bottom_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..bb229f665f7a94bc56cb90ec1a00a30bf368bcf9 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language put the white bowl on top of the cabinet) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.29 -0.19 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.07500000000000001 -0.125 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + white_bowl_1 - white_bowl + chefmate_8_frypan_1 - chefmate_8_frypan + ) + + (:obj_of_interest + white_bowl_1 + wooden_two_layer_shelf_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On white_bowl_1 kitchen_table_white_bowl_init_region) + (On wooden_two_layer_shelf_1 kitchen_table_wooden_two_layer_shelf_init_region) + ) + + (:goal + (And (On white_bowl_1 wooden_two_layer_shelf_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..7f481303772b54e977276c49205de6e8bdcf38a4 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.bddl @@ -0,0 +1,89 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language turn on the stove) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.29 -0.19 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.07500000000000001 -0.125 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + white_bowl_1 - white_bowl + chefmate_8_frypan_1 - chefmate_8_frypan + ) + + (:obj_of_interest + flat_stove_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On white_bowl_1 kitchen_table_white_bowl_init_region) + (On wooden_two_layer_shelf_1 kitchen_table_wooden_two_layer_shelf_init_region) + ) + + (:goal + (And (Turnon flat_stove_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl new file mode 100644 index 0000000000000000000000000000000000000000..5a42fd99ecaa47746485df2163acf6bec9c331db --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Kitchen_Tabletop_Manipulation) + (:domain robosuite) + (:language turn on the stove and put the frying pan on it) + (:regions + (flat_stove_init_region + (:target kitchen_table) + (:ranges ( + (-0.21000000000000002 0.29 -0.19 0.31) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target kitchen_table) + (:ranges ( + (-0.01 -0.26 0.01 -0.24) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (frypan_init_region + (:target kitchen_table) + (:ranges ( + (0.025 -0.025 0.07500000000000001 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_bowl_init_region + (:target kitchen_table) + (:ranges ( + (-0.175 0.07500000000000001 -0.125 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cook_region + (:target flat_stove_1) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + kitchen_table - kitchen_table + flat_stove_1 - flat_stove + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + white_bowl_1 - white_bowl + chefmate_8_frypan_1 - chefmate_8_frypan + ) + + (:obj_of_interest + flat_stove_1 + chefmate_8_frypan_1 + ) + + (:init + (On flat_stove_1 kitchen_table_flat_stove_init_region) + (On chefmate_8_frypan_1 kitchen_table_frypan_init_region) + (On white_bowl_1 kitchen_table_white_bowl_init_region) + (On wooden_two_layer_shelf_1 kitchen_table_wooden_two_layer_shelf_init_region) + ) + + (:goal + (And (Turnon flat_stove_1) (On chefmate_8_frypan_1 flat_stove_1_cook_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..7308a2f4a44d34cb3192e879127dbebf8fe1ab79 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the alphabet soup and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.175 -0.17500000000000002 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + basket_1 - basket + ) + + (:obj_of_interest + alphabet_soup_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In alphabet_soup_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..c5eed4ad4913be8c2cad017f08172bf14551a829 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the cream cheese box and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.175 -0.17500000000000002 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + basket_1 - basket + ) + + (:obj_of_interest + cream_cheese_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In cream_cheese_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..c4a5b5b8a865a55d8c55488e372130625b6fdec0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the ketchup and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.175 -0.17500000000000002 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + basket_1 - basket + ) + + (:obj_of_interest + ketchup_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In ketchup_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..a01a0429fa0541f56786059c6cbce1100d4a268f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the tomato sauce and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.175 -0.17500000000000002 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + basket_1 - basket + ) + + (:obj_of_interest + tomato_sauce_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In tomato_sauce_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..23245afa54212b49436f611059caf89e6a25beb5 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl @@ -0,0 +1,133 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the alphabet soup and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (milk_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (orange_juice_init_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.275 0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + orange_juice_1 - orange_juice + milk_1 - milk + butter_1 - butter + basket_1 - basket + ) + + (:obj_of_interest + alphabet_soup_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On milk_1 living_room_table_milk_init_region) + (On orange_juice_1 living_room_table_orange_juice_init_region) + (On butter_1 living_room_table_butter_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In alphabet_soup_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..59d2481f1205670f4c34b488189400e037b9fde4 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.bddl @@ -0,0 +1,133 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the butter and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (milk_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (orange_juice_init_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.275 0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + orange_juice_1 - orange_juice + milk_1 - milk + butter_1 - butter + basket_1 - basket + ) + + (:obj_of_interest + butter_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On milk_1 living_room_table_milk_init_region) + (On orange_juice_1 living_room_table_orange_juice_init_region) + (On butter_1 living_room_table_butter_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In butter_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..299dcc86a210487b6c5a4c9b0580a491045cb0f5 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.bddl @@ -0,0 +1,133 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the milk and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (milk_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (orange_juice_init_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.275 0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + orange_juice_1 - orange_juice + milk_1 - milk + butter_1 - butter + basket_1 - basket + ) + + (:obj_of_interest + milk_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On milk_1 living_room_table_milk_init_region) + (On orange_juice_1 living_room_table_orange_juice_init_region) + (On butter_1 living_room_table_butter_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In milk_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..ab85e72d38d5130e8ad29f39ee00011c2a2136d3 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.bddl @@ -0,0 +1,133 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the orange juice and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (milk_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (orange_juice_init_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.275 0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + orange_juice_1 - orange_juice + milk_1 - milk + butter_1 - butter + basket_1 - basket + ) + + (:obj_of_interest + orange_juice_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On milk_1 living_room_table_milk_init_region) + (On orange_juice_1 living_room_table_orange_juice_init_region) + (On butter_1 living_room_table_butter_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In orange_juice_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..85873007a7bf3551d2883913864d09718cd6be63 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl @@ -0,0 +1,133 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the tomato sauce and put it in the basket) + (:regions + (basket_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (milk_init_region + (:target living_room_table) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (orange_juice_init_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.275 0.025 -0.225) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + orange_juice_1 - orange_juice + milk_1 - milk + butter_1 - butter + basket_1 - basket + ) + + (:obj_of_interest + tomato_sauce_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On milk_1 living_room_table_milk_init_region) + (On orange_juice_1 living_room_table_orange_juice_init_region) + (On butter_1 living_room_table_butter_init_region) + (On basket_1 living_room_table_basket_init_region) + ) + + (:goal + (And (In tomato_sauce_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..d9b79725e01a2b68cfa5bc4ff0a1ae654268e2f2 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.bddl @@ -0,0 +1,107 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the alphabet soup and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + butter_1 - butter + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + alphabet_soup_1 + wooden_tray_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On butter_1 living_room_table_butter_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In alphabet_soup_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..5c9a613022a41cf0cb1759d32f1e7f95547a20aa --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.bddl @@ -0,0 +1,107 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the butter and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + butter_1 - butter + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + butter_1 + wooden_tray_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On butter_1 living_room_table_butter_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In butter_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..86995232a64dcc71896cfbf114f0e94e0cf7ba2a --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.bddl @@ -0,0 +1,107 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the cream cheese and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + butter_1 - butter + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + cream_cheese_1 + wooden_tray_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On butter_1 living_room_table_butter_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In cream_cheese_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..6b8f7cda20916f4059c96b49cd179951a1465320 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.bddl @@ -0,0 +1,107 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the ketchup and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + butter_1 - butter + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + ketchup_1 + wooden_tray_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On butter_1 living_room_table_butter_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In ketchup_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..7f91faa3a45a5c50261f09264da77bea99a5e35d --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.bddl @@ -0,0 +1,107 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the tomato sauce and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (cream_cheese_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (tomato_sauce_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (alphabet_soup_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (butter_init_region + (:target living_room_table) + (:ranges ( + (0.025 0.025 0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (ketchup_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.175 -0.225 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + ketchup_1 - ketchup + butter_1 - butter + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + tomato_sauce_1 + wooden_tray_1 + ) + + (:init + (On alphabet_soup_1 living_room_table_alphabet_soup_init_region) + (On cream_cheese_1 living_room_table_cream_cheese_init_region) + (On tomato_sauce_1 living_room_table_tomato_sauce_init_region) + (On ketchup_1 living_room_table_ketchup_init_region) + (On butter_1 living_room_table_butter_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In tomato_sauce_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..8659499bd4cf9b78dfd4756fa50d748c7653476d --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.bddl @@ -0,0 +1,93 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the black bowl on the left and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_right_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_left_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (salad_dressing_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.125 -0.225 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + new_salad_dressing_1 - new_salad_dressing + chocolate_pudding_1 - chocolate_pudding + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + akita_black_bowl_1 + wooden_tray_1 + ) + + (:init + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On akita_black_bowl_1 living_room_table_akita_black_bowl_left_init_region) + (On akita_black_bowl_2 living_room_table_akita_black_bowl_right_init_region) + (On new_salad_dressing_1 living_room_table_salad_dressing_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In akita_black_bowl_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..020f82569191e7afc2952f0ba3ff7b2d1efdb609 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.bddl @@ -0,0 +1,93 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the chocolate pudding and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_right_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_left_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (salad_dressing_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.125 -0.225 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + new_salad_dressing_1 - new_salad_dressing + chocolate_pudding_1 - chocolate_pudding + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + chocolate_pudding_1 + wooden_tray_1 + ) + + (:init + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On akita_black_bowl_1 living_room_table_akita_black_bowl_left_init_region) + (On akita_black_bowl_2 living_room_table_akita_black_bowl_right_init_region) + (On new_salad_dressing_1 living_room_table_salad_dressing_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In chocolate_pudding_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..4a51ca7f9c5110621d8c66dff5e59c49bd987f4d --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.bddl @@ -0,0 +1,93 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the salad dressing and put it in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_right_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_left_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (salad_dressing_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.125 -0.225 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + new_salad_dressing_1 - new_salad_dressing + chocolate_pudding_1 - chocolate_pudding + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + new_salad_dressing_1 + wooden_tray_1 + ) + + (:init + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On akita_black_bowl_1 living_room_table_akita_black_bowl_left_init_region) + (On akita_black_bowl_2 living_room_table_akita_black_bowl_right_init_region) + (On new_salad_dressing_1 living_room_table_salad_dressing_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (In new_salad_dressing_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..e212831bdec4e3645a9e76dde7025b474d915a91 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language stack the left bowl on the right bowl and place them in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_right_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_left_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (salad_dressing_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.125 -0.225 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + new_salad_dressing_1 - new_salad_dressing + chocolate_pudding_1 - chocolate_pudding + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + akita_black_bowl_1 + akita_black_bowl_2 + wooden_tray_1 + ) + + (:init + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On akita_black_bowl_1 living_room_table_akita_black_bowl_left_init_region) + (On akita_black_bowl_2 living_room_table_akita_black_bowl_right_init_region) + (On new_salad_dressing_1 living_room_table_salad_dressing_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (On akita_black_bowl_1 akita_black_bowl_2) (In akita_black_bowl_2 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.bddl new file mode 100644 index 0000000000000000000000000000000000000000..39013a35ec6878ee55b52b6a2615ac7ae9ec7677 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.bddl @@ -0,0 +1,94 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language stack the right bowl on the left bowl and place them in the tray) + (:regions + (wooden_tray_init_region + (:target living_room_table) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_right_init_region + (:target living_room_table) + (:ranges ( + (-0.125 0.025 -0.07500000000000001 0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (akita_black_bowl_left_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (salad_dressing_init_region + (:target living_room_table) + (:ranges ( + (-0.275 -0.125 -0.225 -0.07500000000000001) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (contain_region + (:target wooden_tray_1) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + new_salad_dressing_1 - new_salad_dressing + chocolate_pudding_1 - chocolate_pudding + wooden_tray_1 - wooden_tray + ) + + (:obj_of_interest + akita_black_bowl_1 + akita_black_bowl_2 + wooden_tray_1 + ) + + (:init + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On akita_black_bowl_1 living_room_table_akita_black_bowl_left_init_region) + (On akita_black_bowl_2 living_room_table_akita_black_bowl_right_init_region) + (On new_salad_dressing_1 living_room_table_salad_dressing_init_region) + (On wooden_tray_1 living_room_table_wooden_tray_init_region) + ) + + (:goal + (And (On akita_black_bowl_2 akita_black_bowl_1) (In akita_black_bowl_1 wooden_tray_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..8fed99d89fe0da5ffed86ba252aca796d14ead7c --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the red mug on the left plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.325 0.025 -0.27499999999999997) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (-0.025 0.27499999999999997 0.025 0.325) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_yellow_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + white_yellow_mug_1 - white_yellow_mug + plate_1 plate_2 - plate + ) + + (:obj_of_interest + red_coffee_mug_1 + plate_1 + ) + + (:init + (On plate_1 living_room_table_plate_left_region) + (On plate_2 living_room_table_plate_right_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On white_yellow_mug_1 living_room_table_white_yellow_mug_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On red_coffee_mug_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..e18a33ddf65d92a6a55b75a21e9c05435c1a8dec --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the red mug on the right plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.325 0.025 -0.27499999999999997) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (-0.025 0.27499999999999997 0.025 0.325) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_yellow_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + white_yellow_mug_1 - white_yellow_mug + plate_1 plate_2 - plate + ) + + (:obj_of_interest + red_coffee_mug_1 + plate_2 + ) + + (:init + (On plate_1 living_room_table_plate_left_region) + (On plate_2 living_room_table_plate_right_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On white_yellow_mug_1 living_room_table_white_yellow_mug_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On red_coffee_mug_1 plate_2)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..c4d6ef03a8346396beb5d6f3631ea3239002a1d4 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the white mug on the left plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.325 0.025 -0.27499999999999997) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (-0.025 0.27499999999999997 0.025 0.325) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_yellow_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + white_yellow_mug_1 - white_yellow_mug + plate_1 plate_2 - plate + ) + + (:obj_of_interest + porcelain_mug_1 + plate_1 + ) + + (:init + (On plate_1 living_room_table_plate_left_region) + (On plate_2 living_room_table_plate_right_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On white_yellow_mug_1 living_room_table_white_yellow_mug_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On porcelain_mug_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..749628300fc27e2d305e19125585a726ee0a8af8 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.bddl @@ -0,0 +1,90 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the yellow and white mug on the right plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (-0.025 -0.325 0.025 -0.27499999999999997) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (-0.025 0.27499999999999997 0.025 0.325) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (white_yellow_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + white_yellow_mug_1 - white_yellow_mug + plate_1 plate_2 - plate + ) + + (:obj_of_interest + white_yellow_mug_1 + plate_2 + ) + + (:init + (On plate_1 living_room_table_plate_left_region) + (On plate_2 living_room_table_plate_right_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On white_yellow_mug_1 living_room_table_white_yellow_mug_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On white_yellow_mug_1 plate_2)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..76bc6b3a5961392c9a38eb4e92583626743352ce --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.bddl @@ -0,0 +1,100 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the chocolate pudding to the left of the plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 -0.15000000000000002 0.2 -0.05) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 0.05 0.2 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target living_room_table) + (:ranges ( + (0.125 -0.025 0.175 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + plate_1 - plate + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + chocolate_pudding_1 + plate_1 + ) + + (:init + (On plate_1 living_room_table_plate_init_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On chocolate_pudding_1 living_room_table_plate_left_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..e9c3920a8987980f40969ea76d4828a0cb553dc1 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl @@ -0,0 +1,100 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the chocolate pudding to the right of the plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 -0.15000000000000002 0.2 -0.05) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 0.05 0.2 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target living_room_table) + (:ranges ( + (0.125 -0.025 0.175 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + plate_1 - plate + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + chocolate_pudding_1 + plate_1 + ) + + (:init + (On plate_1 living_room_table_plate_init_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On chocolate_pudding_1 living_room_table_plate_right_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..73dbe58c44ac5dce2f472406e190e92c0bdc00b3 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.bddl @@ -0,0 +1,100 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the red mug on the plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 -0.15000000000000002 0.2 -0.05) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 0.05 0.2 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target living_room_table) + (:ranges ( + (0.125 -0.025 0.175 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + plate_1 - plate + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + red_coffee_mug_1 + plate_1 + ) + + (:init + (On plate_1 living_room_table_plate_init_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On red_coffee_mug_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..707d7b023ddbab932e068d32bc1f319523a39673 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.bddl @@ -0,0 +1,100 @@ +(define (problem LIBERO_Living_Room_Tabletop_Manipulation) + (:domain robosuite) + (:language put the white mug on the plate) + (:regions + (plate_left_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 -0.15000000000000002 0.2 -0.05) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_right_region + (:target living_room_table) + (:ranges ( + (0.09999999999999999 0.05 0.2 0.15000000000000002) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (plate_init_region + (:target living_room_table) + (:ranges ( + (0.125 -0.025 0.175 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.125 -0.175 -0.07500000000000001 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (chocolate_pudding_init_region + (:target living_room_table) + (:ranges ( + (-0.07500000000000001 0.07500000000000001 -0.025 0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_init_region + (:target living_room_table) + (:ranges ( + (-0.225 -0.025 -0.17500000000000002 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + ) + + (:fixtures + living_room_table - living_room_table + ) + + (:objects + porcelain_mug_1 - porcelain_mug + red_coffee_mug_1 - red_coffee_mug + plate_1 - plate + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + porcelain_mug_1 + plate_1 + ) + + (:init + (On plate_1 living_room_table_plate_init_region) + (On red_coffee_mug_1 living_room_table_red_coffee_mug_init_region) + (On chocolate_pudding_1 living_room_table_chocolate_pudding_init_region) + (On porcelain_mug_1 living_room_table_porcelain_mug_init_region) + ) + + (:goal + (And (On porcelain_mug_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..ed58210b4564ee00e3b91c73515af57a2439c88e --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl @@ -0,0 +1,88 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the front compartment of the caddy) + (:regions + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (white_yellow_mug_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On white_yellow_mug_1 study_table_white_yellow_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_front_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..1c6334771bbc0faba5b97ff5ba64749eec446730 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl @@ -0,0 +1,88 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the left compartment of the caddy) + (:regions + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (white_yellow_mug_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On white_yellow_mug_1 study_table_white_yellow_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_left_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..4506b0e967c9ca22b1e1a2325b70b61232451bcf --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl @@ -0,0 +1,88 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the right compartment of the caddy) + (:regions + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (white_yellow_mug_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On white_yellow_mug_1 study_table_white_yellow_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_right_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..091250f69dc425ae6fdc90c88e37f5bc77c955d0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.bddl @@ -0,0 +1,88 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the yellow and white mug and place it to the right of the caddy) + (:regions + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (white_yellow_mug_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + white_yellow_mug_1 - white_yellow_mug + ) + + (:obj_of_interest + white_yellow_mug_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On white_yellow_mug_1 study_table_white_yellow_mug_init_region) + ) + + (:goal + (And (On white_yellow_mug_1 study_table_desk_caddy_right_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..cd28e12cb1e870e600616cf489cb3733519d2974 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl @@ -0,0 +1,77 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the back compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.07500000000000001 0.025 -0.025) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_back_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..feaeff370431bd816489277a86d7d0245bb2386b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl @@ -0,0 +1,77 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the front compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.07500000000000001 0.025 -0.025) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_front_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..e0256cb4c8ad97677759c0bb4a322de92d5ce6e8 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl @@ -0,0 +1,77 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the left compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.07500000000000001 0.025 -0.025) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_left_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b11e1b4c69d2345695055db7419e522737679efe --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl @@ -0,0 +1,77 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the right compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 0.125 0.025 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.07500000000000001 0.025 -0.025) + ) + ) + (:yaw_rotation ( + (-1.5707963267948966 -0.7853981633974483) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_black_book_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_right_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..2aa4c04ddacc93fd62bed4827d20a455a29bb121 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl @@ -0,0 +1,123 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the front compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (0.17500000000000002 0.125 0.225 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_behind_region + (:target study_table) + (:ranges ( + (0.05 0.09999999999999999 0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (desk_caddy_front_left_contain_region + (:target study_table) + (:ranges ( + (-0.025 -0.175 0.025 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + porcelain_mug_1 - porcelain_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_desk_caddy_front_left_contain_region) + (On porcelain_mug_1 study_table_porcelain_mug_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_front_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..7e79a1de8457e356a5140bef50bdcf5bc668f23f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl @@ -0,0 +1,123 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the left compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (0.17500000000000002 0.125 0.225 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_behind_region + (:target study_table) + (:ranges ( + (0.05 0.09999999999999999 0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (desk_caddy_front_left_contain_region + (:target study_table) + (:ranges ( + (-0.025 -0.175 0.025 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + porcelain_mug_1 - porcelain_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_desk_caddy_front_left_contain_region) + (On porcelain_mug_1 study_table_porcelain_mug_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_left_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..bf7579042354a2856b073875d469b5fbd75ec1ce --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl @@ -0,0 +1,123 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book and place it in the right compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (0.17500000000000002 0.125 0.225 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_behind_region + (:target study_table) + (:ranges ( + (0.05 0.09999999999999999 0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (desk_caddy_front_left_contain_region + (:target study_table) + (:ranges ( + (-0.025 -0.175 0.025 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + porcelain_mug_1 - porcelain_mug + ) + + (:obj_of_interest + black_book_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_desk_caddy_front_left_contain_region) + (On porcelain_mug_1 study_table_porcelain_mug_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (In black_book_1 desk_caddy_1_right_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..5c4f26d4197cb8158a10e2bb33b8c4fbd469e91e --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.bddl @@ -0,0 +1,123 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the red mug and place it to the right compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (0.17500000000000002 0.125 0.225 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_behind_region + (:target study_table) + (:ranges ( + (0.05 0.09999999999999999 0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (desk_caddy_front_left_contain_region + (:target study_table) + (:ranges ( + (-0.025 -0.175 0.025 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + porcelain_mug_1 - porcelain_mug + ) + + (:obj_of_interest + red_coffee_mug_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_desk_caddy_front_left_contain_region) + (On porcelain_mug_1 study_table_porcelain_mug_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (On red_coffee_mug_1 study_table_desk_caddy_right_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.bddl new file mode 100644 index 0000000000000000000000000000000000000000..7a01e7e84794466fbeecae607bf7f7ac433de586 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.bddl @@ -0,0 +1,123 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the white mug and place it to the right compartment of the caddy) + (:regions + (red_coffee_mug_init_region + (:target study_table) + (:ranges ( + (0.17500000000000002 0.125 0.225 0.175) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (red_coffee_mug_behind_region + (:target study_table) + (:ranges ( + (0.05 0.09999999999999999 0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (porcelain_mug_init_region + (:target study_table) + (:ranges ( + (-0.025 -0.025 0.025 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.07500000000000001 -0.025 0.125 0.025) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_init_region + (:target study_table) + (:ranges ( + (-0.21000000000000002 -0.15000000000000002 -0.19 -0.13) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (desk_caddy_front_left_contain_region + (:target study_table) + (:ranges ( + (-0.025 -0.175 0.025 -0.125) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (desk_caddy_right_region + (:target study_table) + (:ranges ( + (-0.25 0.09999999999999999 -0.15000000000000002 0.2) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (right_contain_region + (:target desk_caddy_1) + ) + (left_contain_region + (:target desk_caddy_1) + ) + (back_contain_region + (:target desk_caddy_1) + ) + (front_contain_region + (:target desk_caddy_1) + ) + ) + + (:fixtures + study_table - study_table + desk_caddy_1 - desk_caddy + ) + + (:objects + black_book_1 - black_book + red_coffee_mug_1 - red_coffee_mug + porcelain_mug_1 - porcelain_mug + ) + + (:obj_of_interest + porcelain_mug_1 + desk_caddy_1 + ) + + (:init + (On desk_caddy_1 study_table_desk_caddy_init_region) + (On black_book_1 study_table_desk_caddy_front_left_contain_region) + (On porcelain_mug_1 study_table_porcelain_mug_init_region) + (On red_coffee_mug_1 study_table_red_coffee_mug_init_region) + ) + + (:goal + (And (On porcelain_mug_1 study_table_desk_caddy_right_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.bddl new file mode 100644 index 0000000000000000000000000000000000000000..848172a31891deccab4a9a68a6302b9e8f37d72e --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.bddl @@ -0,0 +1,86 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book in the middle and place it on the cabinet shelf) + (:regions + (yellow_book_right_init_region + (:target study_table) + (:ranges ( + (-0.01 -0.01 0.01 0.01) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (yellow_book_left_init_region + (:target study_table) + (:ranges ( + (-0.060000000000000005 -0.26 -0.04 -0.24) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.04 -0.16 0.060000000000000005 -0.13999999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target study_table) + (:ranges ( + (-0.01 0.27 0.01 0.29000000000000004) + ) + ) + (:yaw_rotation ( + (0 0) + ) + ) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + study_table - study_table + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + black_book_1 - black_book + yellow_book_1 yellow_book_2 - yellow_book + ) + + (:obj_of_interest + black_book_1 + wooden_two_layer_shelf_1 + ) + + (:init + (On wooden_two_layer_shelf_1 study_table_wooden_two_layer_shelf_init_region) + (On yellow_book_1 study_table_yellow_book_right_init_region) + (On yellow_book_2 study_table_yellow_book_left_init_region) + (On black_book_1 study_table_black_book_init_region) + ) + + (:goal + (And (In black_book_1 wooden_two_layer_shelf_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.bddl new file mode 100644 index 0000000000000000000000000000000000000000..c73a7e226f585e97d5939911fbc89d8dc7749f44 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.bddl @@ -0,0 +1,86 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book on the left and place it on top of the shelf) + (:regions + (yellow_book_right_init_region + (:target study_table) + (:ranges ( + (-0.01 -0.01 0.01 0.01) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (yellow_book_left_init_region + (:target study_table) + (:ranges ( + (-0.060000000000000005 -0.26 -0.04 -0.24) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.04 -0.16 0.060000000000000005 -0.13999999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target study_table) + (:ranges ( + (-0.01 0.27 0.01 0.29000000000000004) + ) + ) + (:yaw_rotation ( + (0 0) + ) + ) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + study_table - study_table + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + black_book_1 - black_book + yellow_book_1 yellow_book_2 - yellow_book + ) + + (:obj_of_interest + yellow_book_2 + wooden_two_layer_shelf_1 + ) + + (:init + (On wooden_two_layer_shelf_1 study_table_wooden_two_layer_shelf_init_region) + (On yellow_book_1 study_table_yellow_book_right_init_region) + (On yellow_book_2 study_table_yellow_book_left_init_region) + (On black_book_1 study_table_black_book_init_region) + ) + + (:goal + (And (On yellow_book_2 wooden_two_layer_shelf_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.bddl new file mode 100644 index 0000000000000000000000000000000000000000..360f49e3d227d7e5f9a3fb1c5d16beebb5b3199b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.bddl @@ -0,0 +1,86 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book on the right and place it on the cabinet shelf) + (:regions + (yellow_book_right_init_region + (:target study_table) + (:ranges ( + (-0.01 -0.01 0.01 0.01) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (yellow_book_left_init_region + (:target study_table) + (:ranges ( + (-0.060000000000000005 -0.26 -0.04 -0.24) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.04 -0.16 0.060000000000000005 -0.13999999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target study_table) + (:ranges ( + (-0.01 0.27 0.01 0.29000000000000004) + ) + ) + (:yaw_rotation ( + (0 0) + ) + ) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + study_table - study_table + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + black_book_1 - black_book + yellow_book_1 yellow_book_2 - yellow_book + ) + + (:obj_of_interest + yellow_book_1 + wooden_two_layer_shelf_1 + ) + + (:init + (On wooden_two_layer_shelf_1 study_table_wooden_two_layer_shelf_init_region) + (On yellow_book_1 study_table_yellow_book_right_init_region) + (On yellow_book_2 study_table_yellow_book_left_init_region) + (On black_book_1 study_table_black_book_init_region) + ) + + (:goal + (And (In yellow_book_1 wooden_two_layer_shelf_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.bddl new file mode 100644 index 0000000000000000000000000000000000000000..7584f79b5047250ef4c3103f8efdf7cb35efabe2 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.bddl @@ -0,0 +1,86 @@ +(define (problem LIBERO_Study_Tabletop_Manipulation) + (:domain robosuite) + (:language pick up the book on the right and place it under the cabinet shelf) + (:regions + (yellow_book_right_init_region + (:target study_table) + (:ranges ( + (-0.01 -0.01 0.01 0.01) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (yellow_book_left_init_region + (:target study_table) + (:ranges ( + (-0.060000000000000005 -0.26 -0.04 -0.24) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (black_book_init_region + (:target study_table) + (:ranges ( + (0.04 -0.16 0.060000000000000005 -0.13999999999999999) + ) + ) + (:yaw_rotation ( + (0.0 0.0) + ) + ) + ) + (wooden_two_layer_shelf_init_region + (:target study_table) + (:ranges ( + (-0.01 0.27 0.01 0.29000000000000004) + ) + ) + (:yaw_rotation ( + (0 0) + ) + ) + ) + (top_side + (:target wooden_two_layer_shelf_1) + ) + (top_region + (:target wooden_two_layer_shelf_1) + ) + (bottom_region + (:target wooden_two_layer_shelf_1) + ) + ) + + (:fixtures + study_table - study_table + wooden_two_layer_shelf_1 - wooden_two_layer_shelf + ) + + (:objects + black_book_1 - black_book + yellow_book_1 yellow_book_2 - yellow_book + ) + + (:obj_of_interest + yellow_book_1 + wooden_two_layer_shelf_1 + ) + + (:init + (On wooden_two_layer_shelf_1 study_table_wooden_two_layer_shelf_init_region) + (On yellow_book_1 study_table_yellow_book_right_init_region) + (On yellow_book_2 study_table_yellow_book_left_init_region) + (On black_book_1 study_table_black_book_init_region) + ) + + (:goal + (And (In yellow_book_1 wooden_two_layer_shelf_1_bottom_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_90/tasks_info.txt b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/tasks_info.txt new file mode 100644 index 0000000000000000000000000000000000000000..11930149d0b64de68fc710d7e53ae2950ec67263 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_90/tasks_info.txt @@ -0,0 +1,90 @@ +libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE6_close_the_microwave.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.bddl +libero/bddl_files/libero_90/KITCHEN_SCENE7_open_the_microwave.bddl +libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.bddl +libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.bddl +libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.bddl +libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.bddl +libero/bddl_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.bddl +libero/bddl_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.bddl diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/open_the_middle_drawer_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/open_the_middle_drawer_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..582fa1b35b9d32cf3c11cfb3fe3bdaba4b410bb3 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/open_the_middle_drawer_of_the_cabinet.bddl @@ -0,0 +1,127 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Open the middle layer of the drawer) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + wooden_cabinet_1_middle_region + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (Open wooden_cabinet_1_middle_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/open_the_top_drawer_and_put_the_bowl_inside.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/open_the_top_drawer_and_put_the_bowl_inside.bddl new file mode 100644 index 0000000000000000000000000000000000000000..d5d3322dbd90c45f0461779835088803070592fa --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/open_the_top_drawer_and_put_the_bowl_inside.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Open the top layer of the drawer and put the bowl inside) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + wooden_cabinet_1_top_region + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (In akita_black_bowl_1 wooden_cabinet_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/push_the_plate_to_the_front_of_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/push_the_plate_to_the_front_of_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b31490451ee3c938ba45321e4f900a699a20230b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/push_the_plate_to_the_front_of_the_stove.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Push the plate to the front of the stove) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + plate_1 + main_table_stove_front_region + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (On plate_1 main_table_stove_front_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..60eba979b3c660f26e2fabde5835e21a12a0f840 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_the_plate.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Put the bowl on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..f4d3c61daa4cde457a7b4dc6332ff1b208ac3e03 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_the_stove.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Put the bowl on the stove) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + flat_stove_1_cook_region + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (On akita_black_bowl_1 flat_stove_1_cook_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..4b03c35f2bc5432666d6ffd86f5d9b483773bdad --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_bowl_on_top_of_the_cabinet.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Put the bowl on the top of the drawer) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + wooden_cabinet_1_top_side + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (On akita_black_bowl_1 wooden_cabinet_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_cream_cheese_in_the_bowl.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_cream_cheese_in_the_bowl.bddl new file mode 100644 index 0000000000000000000000000000000000000000..a04a03bccb35991a6b3cd5bc0ccf81ff414679f2 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_cream_cheese_in_the_bowl.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Put the cream cheese on the bowl) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + cream_cheese_1 + akita_black_bowl_1 + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (On cream_cheese_1 akita_black_bowl_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_wine_bottle_on_the_rack.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_wine_bottle_on_the_rack.bddl new file mode 100644 index 0000000000000000000000000000000000000000..def509b60cbacdfdcbc605e37f02d67980985077 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_wine_bottle_on_the_rack.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Put the wine bottle on the rack) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + wine_bottle_1 + wine_rack_1_top_region + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (On wine_bottle_1 wine_rack_1_top_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_wine_bottle_on_top_of_the_cabinet.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_wine_bottle_on_top_of_the_cabinet.bddl new file mode 100644 index 0000000000000000000000000000000000000000..b86ebdc4205f2a5e24de3a2f80d2573e01ebb098 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/put_the_wine_bottle_on_top_of_the_cabinet.bddl @@ -0,0 +1,128 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Put the wine bottle on the top of the drawer) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + wine_bottle_1 + wooden_cabinet_1_top_side + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (On wine_bottle_1 wooden_cabinet_1_top_side)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/tasks_info.txt b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/tasks_info.txt new file mode 100644 index 0000000000000000000000000000000000000000..9fb3c29134ab7b0842185335b5e7951e73f3c467 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/tasks_info.txt @@ -0,0 +1,10 @@ +libero/bddl_files/libero_goal/put_the_wine_bottle_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_goal/open_the_top_drawer_and_put_the_bowl_inside.bddl +libero/bddl_files/libero_goal/turn_on_the_stove.bddl +libero/bddl_files/libero_goal/put_the_bowl_on_top_of_the_cabinet.bddl +libero/bddl_files/libero_goal/put_the_bowl_on_the_plate.bddl +libero/bddl_files/libero_goal/put_the_wine_bottle_on_the_rack.bddl +libero/bddl_files/libero_goal/put_the_cream_cheese_in_the_bowl.bddl +libero/bddl_files/libero_goal/open_the_middle_drawer_of_the_cabinet.bddl +libero/bddl_files/libero_goal/push_the_plate_to_the_front_of_the_stove.bddl +libero/bddl_files/libero_goal/put_the_bowl_on_the_stove.bddl diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/turn_on_the_stove.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/turn_on_the_stove.bddl new file mode 100644 index 0000000000000000000000000000000000000000..ae8b0e8bad4a895664665152c7e2c63dc8e0f3ce --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_goal/turn_on_the_stove.bddl @@ -0,0 +1,127 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Turn on the stove) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.04 -0.03 0.060000000000000005 -0.01) + ) + ) + ) + (akita_black_bowl_region + (:target main_table) + (:ranges ( + (-0.09999999999999999 -0.01 -0.08 0.01) + ) + ) + ) + (wine_bottle_region + (:target main_table) + (:ranges ( + (-0.21000000000000002 -0.060000000000000005 -0.19 -0.04) + ) + ) + ) + (cream_cheese_region + (:target main_table) + (:ranges ( + (-0.060000000000000005 0.12000000000000001 -0.04 0.14) + ) + ) + ) + (stove_front_region + (:target main_table) + (:ranges ( + (-0.09 0.16999999999999998 -0.010000000000000002 0.25) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.25 0.04 -0.23) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 0.2 -0.4 0.22) + ) + ) + ) + (wine_rack_region + (:target main_table) + (:ranges ( + (-0.27 -0.27 -0.25 -0.25) + ) + ) + (:yaw_rotation ( + (3.141592653589793 3.141592653589793) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + (right_region + (:target bowl_drainer_1) + ) + (left_region + (:target bowl_drainer_1) + ) + (top_region + (:target wine_rack_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + wine_rack_1 - wine_rack + ) + + (:objects + akita_black_bowl_1 - akita_black_bowl + cream_cheese_1 - cream_cheese + wine_bottle_1 - wine_bottle + plate_1 - plate + ) + + (:obj_of_interest + flat_stove_1 + ) + + (:init + (On wine_bottle_1 main_table_wine_bottle_region) + (On akita_black_bowl_1 main_table_akita_black_bowl_region) + (On plate_1 main_table_plate_region) + (On cream_cheese_1 main_table_cream_cheese_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + (On wine_rack_1 main_table_wine_rack_region) + ) + + (:goal + (And (Turnon flat_stove_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..51dfce0f0244b4d5118ba283fbb6c5ce8360ac89 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the alphabet soup and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + alphabet_soup_1 - alphabet_soup + basket_1 - basket + salad_dressing_1 - salad_dressing + cream_cheese_1 - cream_cheese + milk_1 - milk + tomato_sauce_1 - tomato_sauce + butter_1 - butter + ) + + (:obj_of_interest + alphabet_soup_1 + basket_1 + ) + + (:init + (On alphabet_soup_1 floor_target_object_region) + (On salad_dressing_1 floor_other_object_region_0) + (On cream_cheese_1 floor_other_object_region_1) + (On milk_1 floor_other_object_region_2) + (On tomato_sauce_1 floor_other_object_region_3) + (On butter_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In alphabet_soup_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..543355b1164f931cc6da9be8131e6b8924992397 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the bbq sauce and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + bbq_sauce_1 - bbq_sauce + basket_1 - basket + chocolate_pudding_1 - chocolate_pudding + ketchup_1 - ketchup + salad_dressing_1 - salad_dressing + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + ) + + (:obj_of_interest + bbq_sauce_1 + basket_1 + ) + + (:init + (On bbq_sauce_1 floor_target_object_region) + (On chocolate_pudding_1 floor_other_object_region_0) + (On ketchup_1 floor_other_object_region_1) + (On salad_dressing_1 floor_other_object_region_2) + (On alphabet_soup_1 floor_other_object_region_3) + (On cream_cheese_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In bbq_sauce_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..358024afc867808122cf9ea9dfbbdb82c86ad703 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the butter and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + butter_1 - butter + basket_1 - basket + tomato_sauce_1 - tomato_sauce + orange_juice_1 - orange_juice + chocolate_pudding_1 - chocolate_pudding + bbq_sauce_1 - bbq_sauce + ketchup_1 - ketchup + ) + + (:obj_of_interest + butter_1 + basket_1 + ) + + (:init + (On butter_1 floor_target_object_region) + (On tomato_sauce_1 floor_other_object_region_0) + (On orange_juice_1 floor_other_object_region_1) + (On chocolate_pudding_1 floor_other_object_region_2) + (On bbq_sauce_1 floor_other_object_region_3) + (On ketchup_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In butter_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..1df6bc98ea2e209103a43d5dd2c23620fea4f12c --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the chocolate pudding and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + chocolate_pudding_1 - chocolate_pudding + basket_1 - basket + orange_juice_1 - orange_juice + bbq_sauce_1 - bbq_sauce + ketchup_1 - ketchup + salad_dressing_1 - salad_dressing + alphabet_soup_1 - alphabet_soup + ) + + (:obj_of_interest + chocolate_pudding_1 + basket_1 + ) + + (:init + (On chocolate_pudding_1 floor_target_object_region) + (On orange_juice_1 floor_other_object_region_0) + (On bbq_sauce_1 floor_other_object_region_1) + (On ketchup_1 floor_other_object_region_2) + (On salad_dressing_1 floor_other_object_region_3) + (On alphabet_soup_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In chocolate_pudding_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..a4aa87fd74386ec9a1f034d45cb0e0beafda8def --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the cream cheese and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + cream_cheese_1 - cream_cheese + basket_1 - basket + alphabet_soup_1 - alphabet_soup + milk_1 - milk + tomato_sauce_1 - tomato_sauce + butter_1 - butter + orange_juice_1 - orange_juice + ) + + (:obj_of_interest + cream_cheese_1 + basket_1 + ) + + (:init + (On cream_cheese_1 floor_target_object_region) + (On alphabet_soup_1 floor_other_object_region_0) + (On milk_1 floor_other_object_region_1) + (On tomato_sauce_1 floor_other_object_region_2) + (On butter_1 floor_other_object_region_3) + (On orange_juice_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In cream_cheese_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..797e9f1cb35383e42c164d7ca311cefca4015869 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the ketchup and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + ketchup_1 - ketchup + basket_1 - basket + bbq_sauce_1 - bbq_sauce + salad_dressing_1 - salad_dressing + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + milk_1 - milk + ) + + (:obj_of_interest + ketchup_1 + basket_1 + ) + + (:init + (On ketchup_1 floor_target_object_region) + (On bbq_sauce_1 floor_other_object_region_0) + (On salad_dressing_1 floor_other_object_region_1) + (On alphabet_soup_1 floor_other_object_region_2) + (On cream_cheese_1 floor_other_object_region_3) + (On milk_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In ketchup_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..6b10f254cd992cdb1da1b2382b4dff396d43fc35 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the milk and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + milk_1 - milk + basket_1 - basket + cream_cheese_1 - cream_cheese + tomato_sauce_1 - tomato_sauce + butter_1 - butter + orange_juice_1 - orange_juice + chocolate_pudding_1 - chocolate_pudding + ) + + (:obj_of_interest + milk_1 + basket_1 + ) + + (:init + (On milk_1 floor_target_object_region) + (On cream_cheese_1 floor_other_object_region_0) + (On tomato_sauce_1 floor_other_object_region_1) + (On butter_1 floor_other_object_region_2) + (On orange_juice_1 floor_other_object_region_3) + (On chocolate_pudding_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In milk_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..517bb4eef4fb1ee89f85cfef4a200eb2a88d175a --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the orange juice and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + orange_juice_1 - orange_juice + basket_1 - basket + butter_1 - butter + chocolate_pudding_1 - chocolate_pudding + bbq_sauce_1 - bbq_sauce + ketchup_1 - ketchup + salad_dressing_1 - salad_dressing + ) + + (:obj_of_interest + orange_juice_1 + basket_1 + ) + + (:init + (On orange_juice_1 floor_target_object_region) + (On butter_1 floor_other_object_region_0) + (On chocolate_pudding_1 floor_other_object_region_1) + (On bbq_sauce_1 floor_other_object_region_2) + (On ketchup_1 floor_other_object_region_3) + (On salad_dressing_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In orange_juice_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..f83758a229d7a098eaaa1b2c1bd33093aa7c8e33 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the salad dressing and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + salad_dressing_1 - salad_dressing + basket_1 - basket + ketchup_1 - ketchup + alphabet_soup_1 - alphabet_soup + cream_cheese_1 - cream_cheese + milk_1 - milk + tomato_sauce_1 - tomato_sauce + ) + + (:obj_of_interest + salad_dressing_1 + basket_1 + ) + + (:init + (On salad_dressing_1 floor_target_object_region) + (On ketchup_1 floor_other_object_region_0) + (On alphabet_soup_1 floor_other_object_region_1) + (On cream_cheese_1 floor_other_object_region_2) + (On milk_1 floor_other_object_region_3) + (On tomato_sauce_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In salad_dressing_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.bddl new file mode 100644 index 0000000000000000000000000000000000000000..d48e7b34ce9325a9ba9f16aaf5bafb210ee1d028 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.bddl @@ -0,0 +1,92 @@ +(define (problem LIBERO_Floor_Manipulation) + (:domain robosuite) + (:language Pick the tomato sauce and place it in the basket) + (:regions + (bin_region + (:target floor) + (:ranges ( + (-0.01 0.25 0.01 0.27) + ) + ) + ) + (target_object_region + (:target floor) + (:ranges ( + (0.025 -0.125 0.07500000000000001 -0.07500000000000001) + ) + ) + ) + (other_object_region_0 + (:target floor) + (:ranges ( + (-0.145 -0.265 -0.095 -0.215) + ) + ) + ) + (other_object_region_1 + (:target floor) + (:ranges ( + (-0.175 0.034999999999999996 -0.125 0.08499999999999999) + ) + ) + ) + (other_object_region_2 + (:target floor) + (:ranges ( + (0.07500000000000001 -0.225 0.125 -0.17500000000000002) + ) + ) + ) + (other_object_region_3 + (:target floor) + (:ranges ( + (0.125 0.0049999999999999975 0.175 0.055) + ) + ) + ) + (other_object_region_4 + (:target floor) + (:ranges ( + (-0.225 -0.10500000000000001 -0.17500000000000002 -0.055) + ) + ) + ) + (contain_region + (:target basket_1) + ) + ) + + (:fixtures + floor - floor + ) + + (:objects + tomato_sauce_1 - tomato_sauce + basket_1 - basket + milk_1 - milk + butter_1 - butter + orange_juice_1 - orange_juice + chocolate_pudding_1 - chocolate_pudding + bbq_sauce_1 - bbq_sauce + ) + + (:obj_of_interest + tomato_sauce_1 + basket_1 + ) + + (:init + (On tomato_sauce_1 floor_target_object_region) + (On milk_1 floor_other_object_region_0) + (On butter_1 floor_other_object_region_1) + (On orange_juice_1 floor_other_object_region_2) + (On chocolate_pudding_1 floor_other_object_region_3) + (On bbq_sauce_1 floor_other_object_region_4) + (On basket_1 floor_bin_region) + ) + + (:goal + (And (In tomato_sauce_1 basket_1_contain_region)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_object/tasks_info.txt b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/tasks_info.txt new file mode 100644 index 0000000000000000000000000000000000000000..9ed64b7df73bd31bcddc5c756fdebdf7eb6397df --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_object/tasks_info.txt @@ -0,0 +1,10 @@ +libero/bddl_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.bddl +libero/bddl_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.bddl diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..6438652602192995ca5b3f4343ab475494c7b334 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl between the plate and the ramekin and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 main_table_between_plate_ramekin_region) + (On akita_black_bowl_2 main_table_next_to_ramekin_region) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..349fd74360adea9941d28c5ddef790f82ce30036 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl from table center and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 main_table_table_center) + (On akita_black_bowl_2 main_table_next_to_plate_region) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..0448f00dc390d8f2c52101deb25bb1e30045b693 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.bddl @@ -0,0 +1,136 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl in the top layer of the wooden cabinet and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (In akita_black_bowl_1 wooden_cabinet_1_top_region) + (On akita_black_bowl_2 wooden_cabinet_1_top_side) + (Open wooden_cabinet_1_top_region) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..826feca969f7d8f8486ed8844cc1263f2bfddf59 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl next to the cookies box and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 main_table_next_to_box_region) + (On akita_black_bowl_2 flat_stove_1_cook_region) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..953274bc90dffb2fd7b869f22e2bdfc28f49bf84 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl next to the plate and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 main_table_next_to_plate_region) + (On akita_black_bowl_2 main_table_next_to_ramekin_region) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..2ebb6cfbd7134c458d3db13c0ae9b7ce5a9f2610 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl next to the ramekin and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 main_table_next_to_ramekin_region) + (On akita_black_bowl_2 main_table_next_to_box_region) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..0d5ded52edd5095ea4538e94947cbe4d159aff48 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl on the cookies box and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 cookies_1) + (On akita_black_bowl_2 wooden_cabinet_1_top_side) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..eaff46f029e7eb560cba3b51c1cc6f7012ce9f50 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl on the ramekin and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 glazed_rim_porcelain_ramekin_1) + (On akita_black_bowl_2 cookies_1) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..0872c50dc5d0c32059bb7c43e69af4c5afdb30d5 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl on the stove and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 flat_stove_1_cook_region) + (On akita_black_bowl_2 wooden_cabinet_1_top_side) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.bddl b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.bddl new file mode 100644 index 0000000000000000000000000000000000000000..91bef9667d7aae9ec20759eac0b341c914b1b31e --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.bddl @@ -0,0 +1,135 @@ +(define (problem LIBERO_Tabletop_Manipulation) + (:domain robosuite) + (:language Pick the akita black bowl on the wooden cabinet and place it on the plate) + (:regions + (plate_region + (:target main_table) + (:ranges ( + (0.05 0.19 0.07 0.21) + ) + ) + ) + (next_to_plate_region + (:target main_table) + (:ranges ( + (0.0 0.3 0.02 0.32) + ) + ) + ) + (box_region + (:target main_table) + (:ranges ( + (0.06 0.02 0.08 0.04) + ) + ) + ) + (next_to_box_region + (:target main_table) + (:ranges ( + (0.12 -0.08 0.14 -0.06) + ) + ) + ) + (between_plate_ramekin_region + (:target main_table) + (:ranges ( + (-0.06 0.19 -0.04 0.21) + ) + ) + ) + (ramekin_region + (:target main_table) + (:ranges ( + (-0.21 0.19 -0.19 0.21) + ) + ) + ) + (next_to_ramekin_region + (:target main_table) + (:ranges ( + (-0.19 0.31 -0.17 0.33) + ) + ) + ) + (table_center + (:target main_table) + (:ranges ( + (-0.1 -0.01 -0.05 0.01) + ) + ) + ) + (table_front + (:target main_table) + (:ranges ( + (0.19 -0.01 0.21 0.01) + ) + ) + ) + (cabinet_region + (:target main_table) + (:ranges ( + (0.02 -0.28 0.04 -0.26) + ) + ) + (:yaw_rotation ( + (2.6613777765410678 2.7242096296128633) + ) + ) + ) + (stove_region + (:target main_table) + (:ranges ( + (-0.42 -0.15 -0.4 -0.13) + ) + ) + ) + (top_region + (:target wooden_cabinet_1) + ) + (middle_region + (:target wooden_cabinet_1) + ) + (bottom_region + (:target wooden_cabinet_1) + ) + (top_side + (:target wooden_cabinet_1) + ) + (cook_region + (:target flat_stove_1) + ) + ) + + (:fixtures + main_table - table + wooden_cabinet_1 - wooden_cabinet + flat_stove_1 - flat_stove + ) + + (:objects + akita_black_bowl_1 akita_black_bowl_2 - akita_black_bowl + cookies_1 - cookies + glazed_rim_porcelain_ramekin_1 - glazed_rim_porcelain_ramekin + plate_1 - plate + ) + + (:obj_of_interest + akita_black_bowl_1 + plate_1 + ) + + (:init + (On akita_black_bowl_1 wooden_cabinet_1_top_side) + (On akita_black_bowl_2 flat_stove_1_cook_region) + (On plate_1 main_table_plate_region) + (On cookies_1 main_table_box_region) + (On glazed_rim_porcelain_ramekin_1 main_table_ramekin_region) + (On wooden_cabinet_1 main_table_cabinet_region) + (On flat_stove_1 main_table_stove_region) + ) + + (:goal + (And (On akita_black_bowl_1 plate_1)) + ) + +) diff --git a/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/tasks_info.txt b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/tasks_info.txt new file mode 100644 index 0000000000000000000000000000000000000000..6ba183844c24aa3c9f2333f2454d97a04aafd96c --- /dev/null +++ b/openpi/third_party/libero/libero/libero/bddl_files/libero_spatial/tasks_info.txt @@ -0,0 +1,10 @@ +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.bddl +libero/bddl_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.bddl diff --git a/openpi/third_party/libero/libero/libero/benchmark/__init__.py b/openpi/third_party/libero/libero/libero/benchmark/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..2b833d0935163fb75a26ca77bf1e38eca6ccc31b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/benchmark/__init__.py @@ -0,0 +1,219 @@ +import abc +import os +import glob +import random +import torch + +from typing import List, NamedTuple, Type +from libero.libero import get_libero_path +from libero.libero.benchmark.libero_suite_task_map import libero_task_map + +BENCHMARK_MAPPING = {} + + +def register_benchmark(target_class): + """We design the mapping to be case-INsensitive.""" + BENCHMARK_MAPPING[target_class.__name__.lower()] = target_class + + +def get_benchmark_dict(help=False): + if help: + print("Available benchmarks:") + for benchmark_name in BENCHMARK_MAPPING.keys(): + print(f"\t{benchmark_name}") + return BENCHMARK_MAPPING + + +def get_benchmark(benchmark_name): + return BENCHMARK_MAPPING[benchmark_name.lower()] + + +def print_benchmark(): + print(BENCHMARK_MAPPING) + + +class Task(NamedTuple): + name: str + language: str + problem: str + problem_folder: str + bddl_file: str + init_states_file: str + + +def grab_language_from_filename(x): + if x[0].isupper(): # LIBERO-100 + if "SCENE10" in x: + language = " ".join(x[x.find("SCENE") + 8 :].split("_")) + else: + language = " ".join(x[x.find("SCENE") + 7 :].split("_")) + else: + language = " ".join(x.split("_")) + en = language.find(".bddl") + return language[:en] + + +libero_suites = [ + "libero_spatial", + "libero_object", + "libero_goal", + "libero_90", + "libero_10", +] +task_maps = {} +max_len = 0 +for libero_suite in libero_suites: + task_maps[libero_suite] = {} + + for task in libero_task_map[libero_suite]: + language = grab_language_from_filename(task + ".bddl") + task_maps[libero_suite][task] = Task( + name=task, + language=language, + problem="Libero", + problem_folder=libero_suite, + bddl_file=f"{task}.bddl", + init_states_file=f"{task}.pruned_init", + ) + + # print(language, "\n", f"{task}.bddl", "\n") + # print("") + + +task_orders = [ + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + [4, 6, 8, 7, 3, 1, 2, 0, 9, 5], + [6, 3, 5, 0, 4, 2, 9, 1, 8, 7], + [7, 4, 3, 0, 8, 1, 2, 5, 9, 6], + [4, 5, 6, 3, 8, 0, 2, 7, 1, 9], + [1, 2, 3, 0, 6, 9, 5, 7, 4, 8], + [3, 7, 8, 1, 6, 2, 9, 4, 0, 5], + [4, 2, 9, 7, 6, 8, 5, 1, 3, 0], + [1, 8, 5, 4, 0, 9, 6, 7, 2, 3], + [8, 3, 6, 4, 9, 5, 1, 2, 0, 7], + [6, 9, 0, 5, 7, 1, 2, 8, 3, 4], + [6, 8, 3, 1, 0, 2, 5, 9, 7, 4], + [8, 0, 6, 9, 4, 1, 7, 3, 2, 5], + [3, 8, 6, 4, 2, 5, 0, 7, 1, 9], + [7, 1, 5, 6, 3, 2, 8, 9, 4, 0], + [2, 0, 9, 5, 3, 6, 8, 7, 1, 4], + [3, 5, 9, 6, 2, 4, 8, 7, 1, 0], + [7, 6, 5, 9, 0, 3, 4, 2, 8, 1], + [2, 5, 0, 9, 3, 1, 6, 4, 8, 7], + [3, 5, 1, 2, 7, 8, 6, 0, 4, 9], + [3, 4, 1, 9, 7, 6, 8, 2, 0, 5], +] + + +class Benchmark(abc.ABC): + """A Benchmark.""" + + def __init__(self, task_order_index=0): + self.task_embs = None + self.task_order_index = task_order_index + + def _make_benchmark(self): + tasks = list(task_maps[self.name].values()) + if self.name == "libero_90": + self.tasks = tasks + else: + print(f"[info] using task orders {task_orders[self.task_order_index]}") + self.tasks = [tasks[i] for i in task_orders[self.task_order_index]] + self.n_tasks = len(self.tasks) + + def get_num_tasks(self): + return self.n_tasks + + def get_task_names(self): + return [task.name for task in self.tasks] + + def get_task_problems(self): + return [task.problem for task in self.tasks] + + def get_task_bddl_files(self): + return [task.bddl_file for task in self.tasks] + + def get_task_bddl_file_path(self, i): + bddl_file_path = os.path.join( + get_libero_path("bddl_files"), + self.tasks[i].problem_folder, + self.tasks[i].bddl_file, + ) + return bddl_file_path + + def get_task_demonstration(self, i): + assert ( + 0 <= i and i < self.n_tasks + ), f"[error] task number {i} is outer of range {self.n_tasks}" + # this path is relative to the datasets folder + demo_path = f"{self.tasks[i].problem_folder}/{self.tasks[i].name}_demo.hdf5" + return demo_path + + def get_task(self, i): + return self.tasks[i] + + def get_task_emb(self, i): + return self.task_embs[i] + + def get_task_init_states(self, i): + init_states_path = os.path.join( + get_libero_path("init_states"), + self.tasks[i].problem_folder, + self.tasks[i].init_states_file, + ) + init_states = torch.load(init_states_path) + return init_states + + def set_task_embs(self, task_embs): + self.task_embs = task_embs + + +@register_benchmark +class LIBERO_SPATIAL(Benchmark): + def __init__(self, task_order_index=0): + super().__init__(task_order_index=task_order_index) + self.name = "libero_spatial" + self._make_benchmark() + + +@register_benchmark +class LIBERO_OBJECT(Benchmark): + def __init__(self, task_order_index=0): + super().__init__(task_order_index=task_order_index) + self.name = "libero_object" + self._make_benchmark() + + +@register_benchmark +class LIBERO_GOAL(Benchmark): + def __init__(self, task_order_index=0): + super().__init__(task_order_index=task_order_index) + self.name = "libero_goal" + self._make_benchmark() + + +@register_benchmark +class LIBERO_90(Benchmark): + def __init__(self, task_order_index=0): + super().__init__(task_order_index=task_order_index) + assert ( + task_order_index == 0 + ), "[error] currently only support task order for 10-task suites" + self.name = "libero_90" + self._make_benchmark() + + +@register_benchmark +class LIBERO_10(Benchmark): + def __init__(self, task_order_index=0): + super().__init__(task_order_index=task_order_index) + self.name = "libero_10" + self._make_benchmark() + + +@register_benchmark +class LIBERO_100(Benchmark): + def __init__(self, task_order_index=0): + super().__init__(task_order_index=task_order_index) + self.name = "libero_100" + self._make_benchmark() diff --git a/openpi/third_party/libero/libero/libero/benchmark/libero_suite_task_map.py b/openpi/third_party/libero/libero/libero/benchmark/libero_suite_task_map.py new file mode 100644 index 0000000000000000000000000000000000000000..08144b4dd01d91fb0ca40e2c1d93ccaa85025fbc --- /dev/null +++ b/openpi/third_party/libero/libero/libero/benchmark/libero_suite_task_map.py @@ -0,0 +1,142 @@ +libero_task_map = { + "libero_spatial": [ + "pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate", + "pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate", + "pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate", + "pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate", + "pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate", + "pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate", + "pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate", + "pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate", + "pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate", + "pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate", + ], + "libero_object": [ + "pick_up_the_alphabet_soup_and_place_it_in_the_basket", + "pick_up_the_cream_cheese_and_place_it_in_the_basket", + "pick_up_the_salad_dressing_and_place_it_in_the_basket", + "pick_up_the_bbq_sauce_and_place_it_in_the_basket", + "pick_up_the_ketchup_and_place_it_in_the_basket", + "pick_up_the_tomato_sauce_and_place_it_in_the_basket", + "pick_up_the_butter_and_place_it_in_the_basket", + "pick_up_the_milk_and_place_it_in_the_basket", + "pick_up_the_chocolate_pudding_and_place_it_in_the_basket", + "pick_up_the_orange_juice_and_place_it_in_the_basket", + ], + "libero_goal": [ + "open_the_middle_drawer_of_the_cabinet", + "put_the_bowl_on_the_stove", + "put_the_wine_bottle_on_top_of_the_cabinet", + "open_the_top_drawer_and_put_the_bowl_inside", + "put_the_bowl_on_top_of_the_cabinet", + "push_the_plate_to_the_front_of_the_stove", + "put_the_cream_cheese_in_the_bowl", + "turn_on_the_stove", + "put_the_bowl_on_the_plate", + "put_the_wine_bottle_on_the_rack", + ], + "libero_10": [ + "LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket", + "LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket", + "KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it", + "KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it", + "LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate", + "STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy", + "LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate", + "LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket", + "KITCHEN_SCENE8_put_both_moka_pots_on_the_stove", + "KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it", + ], + "libero_90": [ + "KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet", + "KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it", + "KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet", + "KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it", + "KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it", + "KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it", + "KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet", + "KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet", + "KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it", + "KITCHEN_SCENE1_put_the_black_bowl_on_the_plate", + "KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet", + "KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet", + "KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate", + "KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate", + "KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate", + "KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet", + "KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle", + "KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl", + "KITCHEN_SCENE3_put_the_frying_pan_on_the_stove", + "KITCHEN_SCENE3_put_the_moka_pot_on_the_stove", + "KITCHEN_SCENE3_turn_on_the_stove", + "KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it", + "KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet", + "KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer", + "KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet", + "KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet", + "KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet", + "KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack", + "KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet", + "KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet", + "KITCHEN_SCENE5_put_the_black_bowl_on_the_plate", + "KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet", + "KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet", + "KITCHEN_SCENE6_close_the_microwave", + "KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug", + "KITCHEN_SCENE7_open_the_microwave", + "KITCHEN_SCENE7_put_the_white_bowl_on_the_plate", + "KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate", + "KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove", + "KITCHEN_SCENE8_turn_off_the_stove", + "KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf", + "KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet", + "KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf", + "KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet", + "KITCHEN_SCENE9_turn_on_the_stove", + "KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it", + "LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket", + "LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray", + "LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray", + "LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray", + "LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate", + "LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate", + "LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate", + "LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate", + "LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate", + "LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate", + "LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate", + "LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate", + "STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy", + "STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy", + "STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy", + "STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy", + "STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy", + "STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy", + "STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy", + "STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy", + "STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy", + "STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy", + "STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy", + "STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy", + "STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy", + "STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf", + "STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf", + "STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf", + "STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf", + ], +} diff --git a/openpi/third_party/libero/libero/libero/benchmark/mu_creation.py b/openpi/third_party/libero/libero/libero/benchmark/mu_creation.py new file mode 100644 index 0000000000000000000000000000000000000000..0725385c6fe20cc8b3af50d8cae7938d05af3ba3 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/benchmark/mu_creation.py @@ -0,0 +1,1575 @@ +import re +from libero.libero.envs import objects +from libero.libero.utils.bddl_generation_utils import * +from libero.libero.envs.objects import OBJECTS_DICT +from libero.libero.utils.object_utils import get_affordance_regions + +from libero.libero.utils.mu_utils import register_mu, InitialSceneTemplates + + +@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 + + +@register_mu(scene_type="kitchen") +class KitchenScene2(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "wooden_cabinet": 1, + } + + object_num_info = { + "akita_black_bowl": 3, + "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.05, 0.20], + region_name="akita_black_bowl_middle_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, 0.15], + region_name="akita_black_bowl_front_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.15, 0.05], + region_name="akita_black_bowl_back_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.0], + 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_front_init_region", + ), + ( + "On", + "akita_black_bowl_2", + "kitchen_table_akita_black_bowl_middle_init_region", + ), + ( + "On", + "akita_black_bowl_3", + "kitchen_table_akita_black_bowl_back_init_region", + ), + ("On", "plate_1", "kitchen_table_plate_init_region"), + ("On", "wooden_cabinet_1", "kitchen_table_wooden_cabinet_init_region"), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene3(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "flat_stove": 1, + } + + object_num_info = {"chefmate_8_frypan": 1, "moka_pot": 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.20, 0.20], + region_name="flat_stove_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.05, -0.25], + region_name="frypan_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.05, 0.0], + region_name="moka_pot_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", "flat_stove_1", "kitchen_table_flat_stove_init_region"), + ("On", "chefmate_8_frypan_1", "kitchen_table_frypan_init_region"), + ("On", "moka_pot_1", "kitchen_table_moka_pot_init_region"), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene4(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "white_cabinet": 1, + "wine_rack": 1, + } + + object_num_info = {"akita_black_bowl": 1, "wine_bottle": 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="white_cabinet_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.10, -0.30], + region_name="wine_rack_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.03, -0.05], + 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.15, 0.05], + region_name="wine_bottle_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", "wine_bottle_1", "kitchen_table_wine_bottle_init_region"), + ("On", "white_cabinet_1", "kitchen_table_white_cabinet_init_region"), + ("On", "wine_rack_1", "kitchen_table_wine_rack_init_region"), + ("Open", "white_cabinet_1_bottom_region"), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene5(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "white_cabinet": 1, + } + + object_num_info = { + "akita_black_bowl": 1, + "plate": 1, + "ketchup": 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="white_cabinet_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.03, -0.05], + 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.10, -0.10], + region_name="ketchup_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.05, -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", "white_cabinet_1", "kitchen_table_white_cabinet_init_region"), + ("On", "ketchup_1", "kitchen_table_ketchup_init_region"), + ("Open", "white_cabinet_1_top_region"), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene6(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "microwave": 1, + } + + object_num_info = { + "porcelain_mug": 1, + "white_yellow_mug": 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.35], + region_name="microwave_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + yaw_rotation=(0, 0), + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.0, 0.0], + region_name="white_yellow_mug_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.10, -0.25], + region_name="porcelain_mug_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="porcelain_mug_front_region", + target_name=self.workspace_name, + region_half_len=0.05, + ) + ) + + self.xy_region_kwargs_list = get_xy_region_kwargs_list_from_regions_info( + self.regions + ) + + @property + def init_states(self): + states = [ + ("On", "porcelain_mug_1", "kitchen_table_porcelain_mug_init_region"), + ("On", "white_yellow_mug_1", "kitchen_table_white_yellow_mug_init_region"), + ("On", "microwave_1", "kitchen_table_microwave_init_region"), + ("Open", "microwave_1"), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene7(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "microwave": 1, + } + + object_num_info = { + "white_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.25], + region_name="microwave_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="plate_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.10], + region_name="plate_right_region", + target_name=self.workspace_name, + region_half_len=0.05, + ) + ) + + self.xy_region_kwargs_list = get_xy_region_kwargs_list_from_regions_info( + self.regions + ) + + @property + def init_states(self): + states = [ + ("On", "white_bowl_1", "microwave_1_top_side"), + ("On", "microwave_1", "kitchen_table_microwave_init_region"), + ("Close", "microwave_1"), + ("On", "plate_1", "kitchen_table_plate_init_region"), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene8(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "flat_stove": 1, + } + + object_num_info = {"moka_pot": 2} + + 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.20, -0.20], + region_name="flat_stove_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.05, 0.25], + region_name="moka_pot_right_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.05, 0.05], + region_name="moka_pot_left_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", "flat_stove_1", "kitchen_table_flat_stove_init_region"), + ("On", "moka_pot_1", "kitchen_table_moka_pot_right_init_region"), + ("On", "moka_pot_2", "kitchen_table_moka_pot_left_init_region"), + ("Turnon", "flat_stove_1"), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene9(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "flat_stove": 1, + "wooden_two_layer_shelf": 1, + } + + object_num_info = { + "white_bowl": 1, + "chefmate_8_frypan": 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.20, 0.30], + region_name="flat_stove_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0, -0.25], + region_name="wooden_two_layer_shelf_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.05, 0.0], + region_name="frypan_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.15, 0.10], + region_name="white_bowl_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", "flat_stove_1", "kitchen_table_flat_stove_init_region"), + ("On", "chefmate_8_frypan_1", "kitchen_table_frypan_init_region"), + ("On", "white_bowl_1", "kitchen_table_white_bowl_init_region"), + ( + "On", + "wooden_two_layer_shelf_1", + "kitchen_table_wooden_two_layer_shelf_init_region", + ), + ] + return states + + +@register_mu(scene_type="kitchen") +class KitchenScene10(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "kitchen_table": 1, + "wooden_cabinet": 1, + } + + object_num_info = { + "akita_black_bowl": 1, + "butter": 2, + "chocolate_pudding": 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.10, 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.10, 0.20], + region_name="butter_back_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.20], + region_name="butter_front_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.05], + region_name="chocolate_pudding_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", "butter_1", "kitchen_table_butter_front_init_region"), + ("On", "butter_2", "kitchen_table_butter_back_init_region"), + ( + "On", + "chocolate_pudding_1", + "kitchen_table_chocolate_pudding_init_region", + ), + ("On", "wooden_cabinet_1", "kitchen_table_wooden_cabinet_init_region"), + ("Open", "wooden_cabinet_1_top_region"), + ] + return states + + +@register_mu(scene_type="living_room") +class LivingRoomScene1(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "living_room_table": 1, + } + + object_num_info = { + "alphabet_soup": 1, + "cream_cheese": 1, + "tomato_sauce": 1, + "ketchup": 1, + "basket": 1, + } + + super().__init__( + workspace_name="living_room_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.26], + region_name="basket_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.05, -0.10], + region_name="alphabet_soup_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.15, 0.06], + region_name="cream_cheese_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, -0.20], + region_name="tomato_sauce_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.20, -0.15], + region_name="ketchup_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", "alphabet_soup_1", "living_room_table_alphabet_soup_init_region"), + ("On", "cream_cheese_1", "living_room_table_cream_cheese_init_region"), + ("On", "tomato_sauce_1", "living_room_table_tomato_sauce_init_region"), + ("On", "ketchup_1", "living_room_table_ketchup_init_region"), + ("On", "basket_1", "living_room_table_basket_init_region"), + ] + return states + + +@register_mu(scene_type="living_room") +class LivingRoomScene2(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "living_room_table": 1, + } + + object_num_info = { + "alphabet_soup": 1, + "cream_cheese": 1, + "tomato_sauce": 1, + "ketchup": 1, + "orange_juice": 1, + "milk": 1, + "butter": 1, + "basket": 1, + } + + super().__init__( + workspace_name="living_room_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.26], + region_name="basket_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.05, -0.10], + region_name="milk_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, -0.20], + region_name="cream_cheese_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="orange_juice_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.1, 0.05], + region_name="tomato_sauce_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.10, -0.15], + region_name="alphabet_soup_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.05, 0.05], + region_name="butter_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.25, -0.15], + region_name="ketchup_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", "alphabet_soup_1", "living_room_table_alphabet_soup_init_region"), + ("On", "cream_cheese_1", "living_room_table_cream_cheese_init_region"), + ("On", "tomato_sauce_1", "living_room_table_tomato_sauce_init_region"), + ("On", "ketchup_1", "living_room_table_ketchup_init_region"), + ("On", "milk_1", "living_room_table_milk_init_region"), + ("On", "orange_juice_1", "living_room_table_orange_juice_init_region"), + ("On", "butter_1", "living_room_table_butter_init_region"), + ("On", "basket_1", "living_room_table_basket_init_region"), + ] + return states + + +@register_mu(scene_type="living_room") +class LivingRoomScene3(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "living_room_table": 1, + } + + object_num_info = { + "alphabet_soup": 1, + "cream_cheese": 1, + "tomato_sauce": 1, + "ketchup": 1, + "butter": 1, + "wooden_tray": 1, + } + + super().__init__( + workspace_name="living_room_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.26], + region_name="wooden_tray_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, -0.20], + region_name="cream_cheese_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.1, 0.05], + region_name="tomato_sauce_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.10, -0.15], + region_name="alphabet_soup_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.05, 0.05], + region_name="butter_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.25, -0.15], + region_name="ketchup_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", "alphabet_soup_1", "living_room_table_alphabet_soup_init_region"), + ("On", "cream_cheese_1", "living_room_table_cream_cheese_init_region"), + ("On", "tomato_sauce_1", "living_room_table_tomato_sauce_init_region"), + ("On", "ketchup_1", "living_room_table_ketchup_init_region"), + ("On", "butter_1", "living_room_table_butter_init_region"), + ("On", "wooden_tray_1", "living_room_table_wooden_tray_init_region"), + ] + return states + + +@register_mu(scene_type="living_room") +class LivingRoomScene4(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "living_room_table": 1, + } + + object_num_info = { + "akita_black_bowl": 2, + "new_salad_dressing": 1, + "chocolate_pudding": 1, + "wooden_tray": 1, + } + + super().__init__( + workspace_name="living_room_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.26], + region_name="wooden_tray_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, -0.20], + region_name="chocolate_pudding_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.1, 0.05], + region_name="akita_black_bowl_right_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.10, -0.15], + region_name="akita_black_bowl_left_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.25, -0.10], + region_name="salad_dressing_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", + "chocolate_pudding_1", + "living_room_table_chocolate_pudding_init_region", + ), + ( + "On", + "akita_black_bowl_1", + "living_room_table_akita_black_bowl_left_init_region", + ), + ( + "On", + "akita_black_bowl_2", + "living_room_table_akita_black_bowl_right_init_region", + ), + ( + "On", + "new_salad_dressing_1", + "living_room_table_salad_dressing_init_region", + ), + ("On", "wooden_tray_1", "living_room_table_wooden_tray_init_region"), + ] + return states + + +@register_mu(scene_type="living_room") +class LivingRoomScene5(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "living_room_table": 1, + } + + object_num_info = { + "porcelain_mug": 1, + "red_coffee_mug": 1, + "white_yellow_mug": 1, + "plate": 2, + } + + super().__init__( + workspace_name="living_room_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="plate_left_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.0, 0.30], + region_name="plate_right_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.10, -0.15], + region_name="porcelain_mug_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.05, 0.10], + region_name="white_yellow_mug_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.20, 0.0], + region_name="red_coffee_mug_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", "plate_1", "living_room_table_plate_left_region"), + ("On", "plate_2", "living_room_table_plate_right_region"), + ("On", "red_coffee_mug_1", "living_room_table_red_coffee_mug_init_region"), + ( + "On", + "white_yellow_mug_1", + "living_room_table_white_yellow_mug_init_region", + ), + ("On", "porcelain_mug_1", "living_room_table_porcelain_mug_init_region"), + ] + return states + + +@register_mu(scene_type="living_room") +class LivingRoomScene6(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "living_room_table": 1, + } + + object_num_info = { + "porcelain_mug": 1, + "red_coffee_mug": 1, + "plate": 1, + "chocolate_pudding": 1, + } + + super().__init__( + workspace_name="living_room_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.15, -0.10], + region_name="plate_left_region", + target_name=self.workspace_name, + region_half_len=0.05, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.15, 0.10], + region_name="plate_right_region", + target_name=self.workspace_name, + region_half_len=0.05, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.15, 0.0], + region_name="plate_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.10, -0.15], + region_name="porcelain_mug_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.05, 0.10], + region_name="chocolate_pudding_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.20, 0.0], + region_name="red_coffee_mug_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", "plate_1", "living_room_table_plate_init_region"), + ("On", "red_coffee_mug_1", "living_room_table_red_coffee_mug_init_region"), + ( + "On", + "chocolate_pudding_1", + "living_room_table_chocolate_pudding_init_region", + ), + ("On", "porcelain_mug_1", "living_room_table_porcelain_mug_init_region"), + ] + return states + + +@register_mu(scene_type="study") +class StudyScene1(InitialSceneTemplates): + def __init__(self): + + fixture_num_info = { + "study_table": 1, + "desk_caddy": 1, + } + + object_num_info = { + "black_book": 1, + "white_yellow_mug": 1, + } + + super().__init__( + workspace_name="study_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.20, -0.14], + region_name="desk_caddy_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.15], + region_name="black_book_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + yaw_rotation=(-np.pi / 2, -np.pi / 4), + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, 0.0], + region_name="white_yellow_mug_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.20, 0.15], + region_name="desk_caddy_right_region", + target_name=self.workspace_name, + region_half_len=0.05, + yaw_rotation=(np.pi, np.pi), + ) + ) + self.xy_region_kwargs_list = get_xy_region_kwargs_list_from_regions_info( + self.regions + ) + + @property + def init_states(self): + states = [ + ("On", "desk_caddy_1", "study_table_desk_caddy_init_region"), + ("On", "black_book_1", "study_table_black_book_init_region"), + ("On", "white_yellow_mug_1", "study_table_white_yellow_mug_init_region"), + ] + return states + + +@register_mu(scene_type="study") +class StudyScene2(InitialSceneTemplates): + def __init__(self): + fixture_num_info = { + "study_table": 1, + "desk_caddy": 1, + } + + object_num_info = { + "black_book": 1, + "red_coffee_mug": 1, + } + + super().__init__( + workspace_name="study_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.15], + region_name="red_coffee_mug_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.05], + region_name="black_book_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + yaw_rotation=(-np.pi / 2, -np.pi / 4), + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.20, -0.14], + region_name="desk_caddy_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + yaw_rotation=(np.pi, np.pi), + ) + ) + self.xy_region_kwargs_list = get_xy_region_kwargs_list_from_regions_info( + self.regions + ) + + @property + def init_states(self): + states = [ + ("On", "desk_caddy_1", "study_table_desk_caddy_init_region"), + ("On", "black_book_1", "study_table_black_book_init_region"), + ("On", "red_coffee_mug_1", "study_table_red_coffee_mug_init_region"), + ] + return states + + +@register_mu(scene_type="study") +class StudyScene3(InitialSceneTemplates): + def __init__(self): + fixture_num_info = { + "study_table": 1, + "desk_caddy": 1, + } + + object_num_info = { + "black_book": 1, + "red_coffee_mug": 1, + "porcelain_mug": 1, + } + + super().__init__( + workspace_name="study_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.20, 0.15], + region_name="red_coffee_mug_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, 0.15], + region_name="red_coffee_mug_behind_region", + target_name=self.workspace_name, + region_half_len=0.05, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.0, 0.0], + region_name="porcelain_mug_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.10, 0.0], + region_name="black_book_init_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.20, -0.14], + region_name="desk_caddy_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.15], + region_name="desk_caddy_front_left_contain_region", + target_name=self.workspace_name, + region_half_len=0.025, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.20, 0.15], + region_name="desk_caddy_right_region", + target_name=self.workspace_name, + region_half_len=0.05, + yaw_rotation=(np.pi, np.pi), + ) + ) + self.xy_region_kwargs_list = get_xy_region_kwargs_list_from_regions_info( + self.regions + ) + + @property + def init_states(self): + states = [ + ("On", "desk_caddy_1", "study_table_desk_caddy_init_region"), + ("On", "black_book_1", "study_table_desk_caddy_front_left_contain_region"), + ("On", "porcelain_mug_1", "study_table_porcelain_mug_init_region"), + ("On", "red_coffee_mug_1", "study_table_red_coffee_mug_init_region"), + ] + return states + + +@register_mu(scene_type="study") +class StudyScene4(InitialSceneTemplates): + def __init__(self): + fixture_num_info = { + "study_table": 1, + "wooden_two_layer_shelf": 1, + } + + object_num_info = { + "black_book": 1, + "yellow_book": 2, + } + + super().__init__( + workspace_name="study_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.0], + region_name="yellow_book_right_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[-0.05, -0.25], + region_name="yellow_book_left_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.05, -0.15], + region_name="black_book_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + ) + ) + self.regions.update( + self.get_region_dict( + region_centroid_xy=[0.0, 0.28], + region_name="wooden_two_layer_shelf_init_region", + target_name=self.workspace_name, + region_half_len=0.01, + yaw_rotation=(0, 0), + ) + ) + self.xy_region_kwargs_list = get_xy_region_kwargs_list_from_regions_info( + self.regions + ) + + @property + def init_states(self): + states = [ + ( + "On", + "wooden_two_layer_shelf_1", + "study_table_wooden_two_layer_shelf_init_region", + ), + ("On", "yellow_book_1", "study_table_yellow_book_right_init_region"), + ("On", "yellow_book_2", "study_table_yellow_book_left_init_region"), + ("On", "black_book_1", "study_table_black_book_init_region"), + ] + return states diff --git a/openpi/third_party/libero/libero/libero/envs/__init__.py b/openpi/third_party/libero/libero/libero/envs/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6b05794f91af1b444dabfe99c918c90078eb8d37 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/__init__.py @@ -0,0 +1,7 @@ +from .bddl_base_domain import TASK_MAPPING +from .base_object import OBJECTS_DICT +from .problems import * +from .robots import * +from .arenas import * +from .env_wrapper import OffScreenRenderEnv, SegmentationRenderEnv +from .venv import SubprocVectorEnv, DummyVectorEnv diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/__init__.py b/openpi/third_party/libero/libero/libero/envs/arenas/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3b627c9f8daf632164046baffa8d1a3160865639 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/__init__.py @@ -0,0 +1,6 @@ +from .table_arena import TableArena +from .empty_arena import EmptyArena +from .coffee_table_arena import CoffeeTableArena +from .living_room_arena import LivingRoomTableArena +from .study_arena import StudyTableArena +from .kitchen_arena import KitchenTableArena diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/coffee_table_arena.py b/openpi/third_party/libero/libero/libero/envs/arenas/coffee_table_arena.py new file mode 100644 index 0000000000000000000000000000000000000000..8b1ca547f7b2eafb540011e944280db65a8b941b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/coffee_table_arena.py @@ -0,0 +1,33 @@ +from robosuite.models.arenas import Arena +from robosuite.utils.mjcf_utils import xml_path_completion + +from libero.libero.envs.arenas.style import get_texture_filename + + +class CoffeeTableArena(Arena): + """Empty workspace.""" + + def __init__( + self, + xml="arenas/table_arena.xml", + floor_style="light-gray", + wall_style="light-gray-plaster", + ): + super().__init__(xml_path_completion(xml)) + self.coffee_table_body = self.worldbody.find("./body[@name='coffee_table']") + + texplane = self.asset.find("./texture[@name='texplane']") + plane_file = texplane.get("file") + plane_file = "/".join( + plane_file.split("/")[:-1] + + [get_texture_filename(type="floor", style=floor_style)] + ) + texplane.set("file", plane_file) + + texwall = self.asset.find("./texture[@name='tex-wall']") + wall_file = texwall.get("file") + wall_file = "/".join( + wall_file.split("/")[:-1] + + [get_texture_filename(type="wall", style=wall_style)] + ) + texwall.set("file", wall_file) diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/empty_arena.py b/openpi/third_party/libero/libero/libero/envs/arenas/empty_arena.py new file mode 100644 index 0000000000000000000000000000000000000000..0c4466da78bf0498c5e72394ed57e541cd0ebced --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/empty_arena.py @@ -0,0 +1,33 @@ +from robosuite.models.arenas import Arena +from robosuite.utils.mjcf_utils import xml_path_completion + +from libero.libero.envs.arenas.style import get_texture_filename + + +class EmptyArena(Arena): + """Empty workspace.""" + + def __init__( + self, + xml="arenas/empty_arena.xml", + floor_style="light-gray", + wall_style="light-gray-plaster", + ): + super().__init__(xml_path_completion(xml)) + self.floor_body = self.worldbody.find("./body[@name='floor']") + + texplane = self.asset.find("./texture[@name='texplane']") + plane_file = texplane.get("file") + plane_file = "/".join( + plane_file.split("/")[:-1] + + [get_texture_filename(type="floor", style=floor_style)] + ) + texplane.set("file", plane_file) + + texwall = self.asset.find("./texture[@name='tex-wall']") + wall_file = texwall.get("file") + wall_file = "/".join( + wall_file.split("/")[:-1] + + [get_texture_filename(type="wall", style=wall_style)] + ) + texwall.set("file", wall_file) diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/kitchen_arena.py b/openpi/third_party/libero/libero/libero/envs/arenas/kitchen_arena.py new file mode 100644 index 0000000000000000000000000000000000000000..185cbe6fbbab2108cae6e0124c5cf0d0214ab230 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/kitchen_arena.py @@ -0,0 +1,129 @@ +from libero.libero.envs.arenas.style import STYLE_MAPPING +import numpy as np + +from robosuite.models.arenas import Arena +from robosuite.utils.mjcf_utils import ( + array_to_string, + string_to_array, + xml_path_completion, +) + +from libero.libero.envs.arenas.style import get_texture_filename + + +class KitchenTableArena(Arena): + """ + Workspace that contains an empty table. + + + Args: + table_full_size (3-tuple): (L,W,H) full dimensions of the table + table_friction (3-tuple): (sliding, torsional, rolling) friction parameters of the table + table_offset (3-tuple): (x,y,z) offset from center of arena when placing table. + Note that the z value sets the upper limit of the table + has_legs (bool): whether the table has legs or not + xml (str): xml file to load arena + """ + + def __init__( + self, + table_full_size=(0.8, 0.8, 0.05), + table_friction=(1, 0.005, 0.0001), + table_offset=(0, 0, 0.8), + has_legs=True, + xml="arenas/table_arena.xml", + floor_style="light-gray", + wall_style="light-gray-plaster", + ): + super().__init__(xml_path_completion(xml)) + + self.table_full_size = np.array(table_full_size) + self.table_half_size = self.table_full_size / 2 + self.table_friction = table_friction + self.table_offset = table_offset + self.center_pos = ( + self.bottom_pos + + np.array([0, 0, -self.table_half_size[2]]) + + self.table_offset + ) + + self.table_body = self.worldbody.find("./body[@name='table']") + self.table_collision = self.table_body.find("./geom[@name='table_collision']") + self.table_visual = self.table_body.find("./geom[@name='table_visual']") + self.table_top = self.table_body.find("./site[@name='table_top']") + + self.has_legs = has_legs + self.table_legs_visual = [ + self.table_body.find("./geom[@name='table_leg1_visual']"), + self.table_body.find("./geom[@name='table_leg2_visual']"), + self.table_body.find("./geom[@name='table_leg3_visual']"), + self.table_body.find("./geom[@name='table_leg4_visual']"), + ] + + self.configure_location() + texplane = self.asset.find("./texture[@name='texplane']") + plane_file = texplane.get("file") + plane_file = "/".join( + plane_file.split("/")[:-1] + + [get_texture_filename(type="floor", style=floor_style)] + ) + texplane.set("file", plane_file) + + texwall = self.asset.find("./texture[@name='tex-wall']") + wall_file = texwall.get("file") + wall_file = "/".join( + wall_file.split("/")[:-1] + + [get_texture_filename(type="wall", style=wall_style)] + ) + texwall.set("file", wall_file) + + def configure_location(self): + """Configures correct locations for this arena""" + self.floor.set("pos", array_to_string(self.bottom_pos)) + + self.table_body.set("pos", array_to_string(self.center_pos)) + self.table_collision.set("size", array_to_string(self.table_half_size)) + self.table_collision.set("friction", array_to_string(self.table_friction)) + self.table_visual.set("size", array_to_string(self.table_half_size)) + # self.table_visual.set("rgba", array_to_string([0, 0, 0, 0])) + + self.table_top.set( + "pos", array_to_string(np.array([0, 0, self.table_half_size[2]])) + ) + + # If we're not using legs, set their size to 0 + if not self.has_legs: + for leg in self.table_legs_visual: + leg.set("rgba", array_to_string([1, 0, 0, 0])) + leg.set("size", array_to_string([0.0001, 0.0001])) + else: + # Otherwise, set leg locations appropriately + delta_x = [0.1, -0.1, -0.1, 0.1] + delta_y = [0.1, 0.1, -0.1, -0.1] + for leg, dx, dy in zip(self.table_legs_visual, delta_x, delta_y): + # If x-length of table is less than a certain length, place leg in the middle between ends + # Otherwise we place it near the edge + x = 0 + if self.table_half_size[0] > abs(dx * 2.0): + x += np.sign(dx) * self.table_half_size[0] - dx + # Repeat the same process for y + y = 0 + if self.table_half_size[1] > abs(dy * 2.0): + y += np.sign(dy) * self.table_half_size[1] - dy + # Get z value + z = (self.table_offset[2] - self.table_half_size[2]) / 2.0 + # Set leg position + leg.set("pos", array_to_string([x, y, -z])) + # Set leg size + leg.set("size", array_to_string([0.025, z])) + # leg.set("rgba", array_to_string([0, 0, 0, 0])) + + @property + def table_top_abs(self): + """ + Grabs the absolute position of table top + + Returns: + np.array: (x,y,z) table position + """ + return string_to_array(self.floor.get("pos")) + self.table_offset diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/living_room_arena.py b/openpi/third_party/libero/libero/libero/envs/arenas/living_room_arena.py new file mode 100644 index 0000000000000000000000000000000000000000..dd4b37d27fe37566e368968a0bcffb864003c107 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/living_room_arena.py @@ -0,0 +1,50 @@ +from robosuite.models.arenas import Arena +from robosuite.utils.mjcf_utils import xml_path_completion +import numpy as np + +from libero.libero.envs.arenas.style import get_texture_filename + + +class LivingRoomTableArena(Arena): + """Empty workspace.""" + + def __init__( + self, + table_full_size=(0.8, 0.8, 0.05), + table_friction=(1, 0.005, 0.0001), + table_offset=(0, 0, 0.41), + xml="arenas/empty_arena.xml", + floor_style="light-gray", + wall_style="light-gray-plaster", + ): + super().__init__(xml_path_completion(xml)) + + self.table_full_size = np.array(table_full_size) + self.table_half_size = self.table_full_size / 2 + self.table_friction = table_friction + self.table_offset = table_offset + self.center_pos = ( + self.bottom_pos + + np.array([0, 0, -self.table_half_size[2]]) + + self.table_offset + ) + + self.living_room_table_body = self.worldbody.find( + "./body[@name='living_room_table']" + ) + + texplane = self.asset.find("./texture[@name='texplane']") + plane_file = texplane.get("file") + plane_file = "/".join( + plane_file.split("/")[:-1] + + [get_texture_filename(type="floor", style=floor_style)] + ) + texplane.set("file", plane_file) + + texwall = self.asset.find("./texture[@name='tex-wall']") + wall_file = texwall.get("file") + wall_file = "/".join( + wall_file.split("/")[:-1] + + [get_texture_filename(type="wall", style=wall_style)] + ) + texwall.set("file", wall_file) diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/study_arena.py b/openpi/third_party/libero/libero/libero/envs/arenas/study_arena.py new file mode 100644 index 0000000000000000000000000000000000000000..75ca5902f14bbd96ef902041c9ddd5ba17ff8da8 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/study_arena.py @@ -0,0 +1,117 @@ +from libero.libero.envs.arenas.style import STYLE_MAPPING +import numpy as np + +from robosuite.models.arenas import Arena +from robosuite.utils.mjcf_utils import ( + array_to_string, + string_to_array, + xml_path_completion, +) + +from libero.libero.envs.arenas.style import get_texture_filename + + +class StudyTableArena(Arena): + """ + Workspace that contains an empty table. + + + Args: + table_full_size (3-tuple): (L,W,H) full dimensions of the table + table_friction (3-tuple): (sliding, torsional, rolling) friction parameters of the table + table_offset (3-tuple): (x,y,z) offset from center of arena when placing table. + Note that the z value sets the upper limit of the table + has_legs (bool): whether the table has legs or not + xml (str): xml file to load arena + """ + + def __init__( + self, + table_full_size=(0.8, 0.8, 0.05), + table_friction=(1, 0.005, 0.0001), + table_offset=(0, 0, 0.8), + has_legs=True, + xml="arenas/empty_arena.xml", + floor_style="light-gray", + wall_style="light-gray-plaster", + ): + super().__init__(xml_path_completion(xml)) + + self.table_full_size = np.array(table_full_size) + self.table_half_size = self.table_full_size / 2 + self.table_friction = table_friction + self.table_offset = table_offset + self.center_pos = ( + self.bottom_pos + + np.array([0, 0, -self.table_half_size[2]]) + + self.table_offset + ) + + self.table_body = self.worldbody.find("./body[@name='study_table']") + + texplane = self.asset.find("./texture[@name='texplane']") + plane_file = texplane.get("file") + plane_file = "/".join( + plane_file.split("/")[:-1] + + [get_texture_filename(type="floor", style=floor_style)] + ) + texplane.set("file", plane_file) + + texwall = self.asset.find("./texture[@name='tex-wall']") + wall_file = texwall.get("file") + wall_file = "/".join( + wall_file.split("/")[:-1] + + [get_texture_filename(type="wall", style=wall_style)] + ) + texwall.set("file", wall_file) + + def configure_location(self): + """Configures correct locations for this arena""" + self.floor.set("pos", array_to_string(self.bottom_pos)) + + self.table_body.set("pos", array_to_string(self.center_pos)) + self.table_collision.set("size", array_to_string(self.table_half_size)) + self.table_collision.set("friction", array_to_string(self.table_friction)) + self.table_visual.set("size", array_to_string(self.table_half_size)) + # self.table_visual.set("rgba", array_to_string([0, 0, 0, 0])) + + self.table_top.set( + "pos", array_to_string(np.array([0, 0, self.table_half_size[2]])) + ) + + # If we're not using legs, set their size to 0 + if not self.has_legs: + for leg in self.table_legs_visual: + leg.set("rgba", array_to_string([1, 0, 0, 0])) + leg.set("size", array_to_string([0.0001, 0.0001])) + else: + # Otherwise, set leg locations appropriately + delta_x = [0.1, -0.1, -0.1, 0.1] + delta_y = [0.1, 0.1, -0.1, -0.1] + for leg, dx, dy in zip(self.table_legs_visual, delta_x, delta_y): + # If x-length of table is less than a certain length, place leg in the middle between ends + # Otherwise we place it near the edge + x = 0 + if self.table_half_size[0] > abs(dx * 2.0): + x += np.sign(dx) * self.table_half_size[0] - dx + # Repeat the same process for y + y = 0 + if self.table_half_size[1] > abs(dy * 2.0): + y += np.sign(dy) * self.table_half_size[1] - dy + # Get z value + z = (self.table_offset[2] - self.table_half_size[2]) / 2.0 + # Set leg position + leg.set("pos", array_to_string([x, y, -z])) + # Set leg size + leg.set("size", array_to_string([0.025, z])) + # leg.set("rgba", array_to_string([0, 0, 0, 0])) + + @property + def table_top_abs(self): + """ + Grabs the absolute position of table top + + Returns: + np.array: (x,y,z) table position + """ + return string_to_array(self.floor.get("pos")) + self.table_offset diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/style.py b/openpi/third_party/libero/libero/libero/envs/arenas/style.py new file mode 100644 index 0000000000000000000000000000000000000000..912bddc3f2fe968aaf5b05caa79fb0c1c21ae9ad --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/style.py @@ -0,0 +1,31 @@ +FLOOR_STYLE = { + "dark": "dark_floor_texture.png", + "rustic": "rustic_floor.png", + "light-gray": "light-gray-floor-tile.png", + "white-marble": "white_marble_floor.png", + "wood-plank": "seamless_wood_planks_floor.png", + "brown-ceramic": "brown_ceramic_tile.png", + "gray-ceramic": "gray_ceramic_tile.png", + "tile_grigia_caldera": "tile_grigia_caldera_porcelain_floor.png", +} + +WALL_STYLE = { + "light-blue": "light_blue_wall.png", + "dark-blue": "dark_blue_wall.png", + "dark-gray-plaster": "dark_gray_plaster.png", + "gray-plaster": "gray_plaster.png", + "dark-green": "dark_green_plaster_wall.png", + "light-gray-plaster": "light-gray-plaster.png", + "ceramic": "ceramic.png", + "white": "white_wall.png", + "yellow-linen": "yellow_linen_wall_texture.png", +} + + +STYLE_MAPPING = {"floor": FLOOR_STYLE, "wall": WALL_STYLE} + + +def get_texture_filename(type, style): + assert type in STYLE_MAPPING.keys() + assert style in STYLE_MAPPING[type].keys() + return STYLE_MAPPING[type][style] diff --git a/openpi/third_party/libero/libero/libero/envs/arenas/table_arena.py b/openpi/third_party/libero/libero/libero/envs/arenas/table_arena.py new file mode 100644 index 0000000000000000000000000000000000000000..bc7a93eac876f6bdb7cc1df725f4ce0f9251c016 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/arenas/table_arena.py @@ -0,0 +1,129 @@ +from libero.libero.envs.arenas.style import STYLE_MAPPING +import numpy as np + +from robosuite.models.arenas import Arena +from robosuite.utils.mjcf_utils import ( + array_to_string, + string_to_array, + xml_path_completion, +) + +from libero.libero.envs.arenas.style import get_texture_filename + + +class TableArena(Arena): + """ + Workspace that contains an empty table. + + + Args: + table_full_size (3-tuple): (L,W,H) full dimensions of the table + table_friction (3-tuple): (sliding, torsional, rolling) friction parameters of the table + table_offset (3-tuple): (x,y,z) offset from center of arena when placing table. + Note that the z value sets the upper limit of the table + has_legs (bool): whether the table has legs or not + xml (str): xml file to load arena + """ + + def __init__( + self, + table_full_size=(0.8, 0.8, 0.05), + table_friction=(1, 0.005, 0.0001), + table_offset=(0, 0, 0.8), + has_legs=True, + xml="arenas/table_arena.xml", + floor_style="light-gray", + wall_style="light-gray-plaster", + ): + super().__init__(xml_path_completion(xml)) + + self.table_full_size = np.array(table_full_size) + self.table_half_size = self.table_full_size / 2 + self.table_friction = table_friction + self.table_offset = table_offset + self.center_pos = ( + self.bottom_pos + + np.array([0, 0, -self.table_half_size[2]]) + + self.table_offset + ) + + self.table_body = self.worldbody.find("./body[@name='table']") + self.table_collision = self.table_body.find("./geom[@name='table_collision']") + self.table_visual = self.table_body.find("./geom[@name='table_visual']") + self.table_top = self.table_body.find("./site[@name='table_top']") + + self.has_legs = has_legs + self.table_legs_visual = [ + self.table_body.find("./geom[@name='table_leg1_visual']"), + self.table_body.find("./geom[@name='table_leg2_visual']"), + self.table_body.find("./geom[@name='table_leg3_visual']"), + self.table_body.find("./geom[@name='table_leg4_visual']"), + ] + + self.configure_location() + texplane = self.asset.find("./texture[@name='texplane']") + plane_file = texplane.get("file") + plane_file = "/".join( + plane_file.split("/")[:-1] + + [get_texture_filename(type="floor", style=floor_style)] + ) + texplane.set("file", plane_file) + + texwall = self.asset.find("./texture[@name='tex-wall']") + wall_file = texwall.get("file") + wall_file = "/".join( + wall_file.split("/")[:-1] + + [get_texture_filename(type="wall", style=wall_style)] + ) + texwall.set("file", wall_file) + + def configure_location(self): + """Configures correct locations for this arena""" + self.floor.set("pos", array_to_string(self.bottom_pos)) + + self.table_body.set("pos", array_to_string(self.center_pos)) + self.table_collision.set("size", array_to_string(self.table_half_size)) + self.table_collision.set("friction", array_to_string(self.table_friction)) + self.table_visual.set("size", array_to_string(self.table_half_size)) + # self.table_visual.set("rgba", array_to_string([0, 0, 0, 0])) + + self.table_top.set( + "pos", array_to_string(np.array([0, 0, self.table_half_size[2]])) + ) + + # If we're not using legs, set their size to 0 + if not self.has_legs: + for leg in self.table_legs_visual: + leg.set("rgba", array_to_string([1, 0, 0, 0])) + leg.set("size", array_to_string([0.0001, 0.0001])) + else: + # Otherwise, set leg locations appropriately + delta_x = [0.1, -0.1, -0.1, 0.1] + delta_y = [0.1, 0.1, -0.1, -0.1] + for leg, dx, dy in zip(self.table_legs_visual, delta_x, delta_y): + # If x-length of table is less than a certain length, place leg in the middle between ends + # Otherwise we place it near the edge + x = 0 + if self.table_half_size[0] > abs(dx * 2.0): + x += np.sign(dx) * self.table_half_size[0] - dx + # Repeat the same process for y + y = 0 + if self.table_half_size[1] > abs(dy * 2.0): + y += np.sign(dy) * self.table_half_size[1] - dy + # Get z value + z = (self.table_offset[2] - self.table_half_size[2]) / 2.0 + # Set leg position + leg.set("pos", array_to_string([x, y, -z])) + # Set leg size + leg.set("size", array_to_string([0.025, z])) + # leg.set("rgba", array_to_string([0, 0, 0, 0])) + + @property + def table_top_abs(self): + """ + Grabs the absolute position of table top + + Returns: + np.array: (x,y,z) table position + """ + return string_to_array(self.floor.get("pos")) + self.table_offset diff --git a/openpi/third_party/libero/libero/libero/envs/base_object.py b/openpi/third_party/libero/libero/libero/envs/base_object.py new file mode 100644 index 0000000000000000000000000000000000000000..2a98820fa7306598eade675f9a8307c038e337cf --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/base_object.py @@ -0,0 +1,19 @@ +import re + +OBJECTS_DICT = {} +VISUAL_CHANGE_OBJECTS_DICT = {} + + +def register_object(target_class): + """We design the mapping to be case-INsensitive.""" + key = "_".join(re.sub(r"([A-Z0-9])", r" \1", target_class.__name__).split()).lower() + assert key not in OBJECTS_DICT + OBJECTS_DICT[key] = target_class + return target_class + + +def register_visual_change_object(target_class): + """We keep track of objects that might have visual changes to optimize the codebase""" + key = "_".join(re.sub(r"([A-Z0-9])", r" \1", target_class.__name__).split()).lower() + VISUAL_CHANGE_OBJECTS_DICT[key] = target_class + return target_class diff --git a/openpi/third_party/libero/libero/libero/envs/bddl_base_domain.py b/openpi/third_party/libero/libero/libero/envs/bddl_base_domain.py new file mode 100644 index 0000000000000000000000000000000000000000..0aa0f0c212a3ee0413980ff8d48c5100724115c5 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/bddl_base_domain.py @@ -0,0 +1,851 @@ +import numpy as np +import os +import robosuite.utils.transform_utils as T + +from copy import deepcopy +from robosuite.environments.manipulation.single_arm_env import SingleArmEnv +from robosuite.models.tasks import ManipulationTask +from robosuite.utils.placement_samplers import SequentialCompositeSampler +from robosuite.utils.observables import Observable, sensor +from robosuite.utils.mjcf_utils import CustomMaterial +import robosuite.macros as macros + +import mujoco + +import libero.libero.envs.bddl_utils as BDDLUtils +from libero.libero.envs.robots import * +from libero.libero.envs.utils import * +from libero.libero.envs.object_states import * +from libero.libero.envs.objects import * +from libero.libero.envs.regions import * +from libero.libero.envs.arenas import * + + +DIR_PATH = os.path.dirname(os.path.realpath(__file__)) + +TASK_MAPPING = {} + + +def register_problem(target_class): + """We design the mapping to be case-INsensitive.""" + TASK_MAPPING[target_class.__name__.lower()] = target_class + + +import time + + +class BDDLBaseDomain(SingleArmEnv): + """ + A base domain for parsing bddl files. + """ + + def __init__( + self, + bddl_file_name, + robots, + env_configuration="default", + controller_configs=None, + gripper_types="default", + initialization_noise="default", + use_latch=False, + use_camera_obs=True, + use_object_obs=True, + reward_scale=1.0, + reward_shaping=False, + placement_initializer=None, + object_property_initializers=None, + has_renderer=False, + has_offscreen_renderer=True, + render_camera="frontview", + render_collision_mesh=False, + render_visual_mesh=True, + render_gpu_device_id=-1, + control_freq=20, + horizon=1000, + ignore_done=False, + hard_reset=True, + camera_names="agentview", + camera_heights=256, + camera_widths=256, + camera_depths=False, + camera_segmentations=None, + renderer="mujoco", + table_full_size=(1.0, 1.0, 0.05), + workspace_offset=(0.0, 0.0, 0.0), + arena_type="table", + scene_xml="scenes/libero_base_style.xml", + scene_properties={}, + **kwargs, + ): + t0 = time.time() + # settings for table top (hardcoded since it's not an essential part of the environment) + self.workspace_offset = workspace_offset + # reward configuration + self.reward_scale = reward_scale + self.reward_shaping = reward_shaping + + # whether to use ground-truth object states + self.use_object_obs = use_object_obs + + # object placement initializer + self.placement_initializer = placement_initializer + self.conditional_placement_initializer = None + self.conditional_placement_on_objects_initializer = None + + # object property initializer + + if object_property_initializers is not None: + self.object_property_initializers = object_property_initializers + else: + self.object_property_initializers = list() + + # Keep track of movable objects in the tasks + self.objects_dict = {} + # Kepp track of fixed objects in the tasks + self.fixtures_dict = {} + # Keep track of site objects in the tasks. site objects + # (instances of SiteObject) + self.object_sites_dict = {} + # This is a dictionary that stores all the object states + # interface for all the objects + self.object_states_dict = {} + + # For those that require visual feature changes, update the state every time step to avoid missing state changes. We keep track of this type of objects to make predicate checking more efficient. + self.tracking_object_states_change = [] + + self.object_sites_dict = {} + + self.objects = [] + self.fixtures = [] + # self.custom_material_dict = {} + + self.custom_asset_dir = os.path.abspath(os.path.join(DIR_PATH, "../assets")) + + self.bddl_file_name = bddl_file_name + self.parsed_problem = BDDLUtils.robosuite_parse_problem(self.bddl_file_name) + + self.obj_of_interest = self.parsed_problem["obj_of_interest"] + + self._assert_problem_name() + + self._arena_type = arena_type + self._arena_xml = os.path.join(self.custom_asset_dir, scene_xml) + self._arena_properties = scene_properties + + super().__init__( + robots=robots, + env_configuration=env_configuration, + controller_configs=controller_configs, + mount_types="default", + gripper_types=gripper_types, + initialization_noise=initialization_noise, + use_camera_obs=use_camera_obs, + has_renderer=has_renderer, + has_offscreen_renderer=has_offscreen_renderer, + render_camera=render_camera, + render_collision_mesh=render_collision_mesh, + render_visual_mesh=render_visual_mesh, + render_gpu_device_id=render_gpu_device_id, + control_freq=control_freq, + horizon=horizon, + ignore_done=ignore_done, + hard_reset=hard_reset, + camera_names=camera_names, + camera_heights=camera_heights, + camera_widths=camera_widths, + camera_depths=camera_depths, + camera_segmentations=camera_segmentations, + renderer=renderer, + **kwargs, + ) + + def seed(self, seed): + np.random.seed(seed) + + def reward(self, action=None): + """ + Reward function for the task. + + Sparse un-normalized reward: + + - a discrete reward of 1.0 is provided if the task succeeds. + + Args: + action (np.array): [NOT USED] + + Returns: + float: reward value + """ + reward = 0.0 + + # sparse completion reward + if self._check_success(): + reward = 1.0 + + # Scale reward if requested + if self.reward_scale is not None: + reward *= self.reward_scale / 1.0 + + return reward + + def _assert_problem_name(self): + """Implement this to make sure the loaded bddl file has the correct problem name specification.""" + assert ( + self.parsed_problem["problem_name"] == self.__class__.__name__.lower() + ), "Problem name mismatched" + + def _load_fixtures_in_arena(self, mujoco_arena): + """ + Load fixtures based on the bddl file description. Please override the method in the custom problem file. + """ + raise NotImplementedError + + def _load_objects_in_arena(self, mujoco_arena): + """ + Load movable objects based on the bddl file description + """ + raise NotImplementedError + + def _load_sites_in_arena(self, mujoco_arena): + """ + Load sites information from each object to keep track of them for predicate checking + """ + raise NotImplementedError + + def _generate_object_state_wrapper( + self, skip_object_names=["main_table", "floor", "countertop", "coffee_table"] + ): + object_states_dict = {} + tracking_object_states_changes = [] + for object_name in self.objects_dict.keys(): + if object_name in skip_object_names: + continue + object_states_dict[object_name] = ObjectState(self, object_name) + if ( + self.objects_dict[object_name].category_name + in VISUAL_CHANGE_OBJECTS_DICT + ): + tracking_object_states_changes.append(object_states_dict[object_name]) + + for object_name in self.fixtures_dict.keys(): + if object_name in skip_object_names: + continue + object_states_dict[object_name] = ObjectState( + self, object_name, is_fixture=True + ) + if ( + self.fixtures_dict[object_name].category_name + in VISUAL_CHANGE_OBJECTS_DICT + ): + tracking_object_states_changes.append(object_states_dict[object_name]) + + for object_name in self.object_sites_dict.keys(): + if object_name in skip_object_names: + continue + object_states_dict[object_name] = SiteObjectState( + self, + object_name, + parent_name=self.object_sites_dict[object_name].parent_name, + ) + self.object_states_dict = object_states_dict + self.tracking_object_states_change = tracking_object_states_changes + + def _load_distracting_objects(self, mujoco_arena): + raise NotImplementedError + + def _load_custom_material(self): + """ + Define all the textures + """ + # self.custom_material_dict = dict() + + # tex_attrib = { + # "type": "cube" + # } + + # self.custom_material_dict["bread"] = CustomMaterial( + # texture="Bread", + # tex_name="bread", + # mat_name="MatBread", + # tex_attrib=tex_attrib, + # mat_attrib={"texrepeat": "3 3", "specular": "0.4","shininess": "0.1"} + # ) + + def _setup_camera(self, mujoco_arena): + # Modify default agentview camera + mujoco_arena.set_camera( + camera_name="canonical_agentview", + pos=[0.5386131746834771, 0.0, 1.4903500240372423], + quat=[ + 0.6380177736282349, + 0.3048497438430786, + 0.30484986305236816, + 0.6380177736282349, + ], + ) + mujoco_arena.set_camera( + camera_name="agentview", + pos=[0.5886131746834771, 0.0, 1.4903500240372423], + quat=[ + 0.6380177736282349, + 0.3048497438430786, + 0.30484986305236816, + 0.6380177736282349, + ], + ) + + def _load_model(self): + """ + Loads an xml model, puts it in self.model + """ + super()._load_model() + # Adjust base pose accordingly + + if self._arena_type == "table": + xpos = self.robots[0].robot_model.base_xpos_offset["table"]( + self.table_full_size[0] + ) + self.robots[0].robot_model.set_base_xpos(xpos) + mujoco_arena = TableArena( + table_full_size=self.table_full_size, + table_offset=self.workspace_offset, + table_friction=(0.6, 0.005, 0.0001), + xml=self._arena_xml, + **self._arena_properties, + ) + elif self._arena_type == "kitchen": + xpos = self.robots[0].robot_model.base_xpos_offset["kitchen_table"]( + self.kitchen_table_full_size[0] + ) + self.robots[0].robot_model.set_base_xpos(xpos) + mujoco_arena = KitchenTableArena( + table_full_size=self.kitchen_table_full_size, + table_offset=self.workspace_offset, + xml=self._arena_xml, + **self._arena_properties, + ) + + elif self._arena_type == "floor": + xpos = self.robots[0].robot_model.base_xpos_offset["empty"] + self.robots[0].robot_model.set_base_xpos(xpos) + + mujoco_arena = EmptyArena( + xml=self._arena_xml, + **self._arena_properties, + ) + elif self._arena_type == "coffee_table": + xpos = self.robots[0].robot_model.base_xpos_offset["coffee_table"]( + self.coffee_table_full_size[0] + ) + self.robots[0].robot_model.set_base_xpos(xpos) + mujoco_arena = CoffeeTableArena( + xml=self._arena_xml, + **self._arena_properties, + ) + + elif self._arena_type == "living_room": + xpos = self.robots[0].robot_model.base_xpos_offset["living_room_table"]( + self.living_room_table_full_size[0] + ) + self.robots[0].robot_model.set_base_xpos(xpos) + mujoco_arena = LivingRoomTableArena( + xml=self._arena_xml, + **self._arena_properties, + ) + + elif self._arena_type == "study": + xpos = self.robots[0].robot_model.base_xpos_offset["study_table"]( + self.study_table_full_size[0] + ) + self.robots[0].robot_model.set_base_xpos(xpos) + mujoco_arena = StudyTableArena( + xml=self._arena_xml, + **self._arena_properties, + ) + + # Arena always gets set to zero origin + mujoco_arena.set_origin([0, 0, 0]) + + self._setup_camera(mujoco_arena) + + self._load_custom_material() + + self._load_fixtures_in_arena(mujoco_arena) + + self._load_objects_in_arena(mujoco_arena) + + self._load_sites_in_arena(mujoco_arena) + + self._generate_object_state_wrapper() + + self._setup_placement_initializer(mujoco_arena) + + self.objects = list(self.objects_dict.values()) + self.fixtures = list(self.fixtures_dict.values()) + + # task includes arena, robot, and objects of interest + self.model = ManipulationTask( + mujoco_arena=mujoco_arena, + mujoco_robots=[robot.robot_model for robot in self.robots], + mujoco_objects=self.objects + self.fixtures, + ) + + for fixture in self.fixtures: + self.model.merge_assets(fixture) + + def _setup_placement_initializer(self, mujoco_arena): + self.placement_initializer = SequentialCompositeSampler(name="ObjectSampler") + self.conditional_placement_initializer = SiteSequentialCompositeSampler( + name="ConditionalSiteSampler" + ) + self.conditional_placement_on_objects_initializer = SequentialCompositeSampler( + name="ConditionalObjectSampler" + ) + self._add_placement_initializer() + + def _setup_references(self): + """ + Sets up references to important components. A reference is typically an + index or a list of indices that point to the corresponding elements + in a flatten array, which is how MuJoCo stores physical simulation data. + """ + super()._setup_references() + + # Additional object references from this env + self.obj_body_id = dict() + + for (object_name, object_body) in self.objects_dict.items(): + self.obj_body_id[object_name] = self.sim.model.body_name2id( + object_body.root_body + ) + + for (fixture_name, fixture_body) in self.fixtures_dict.items(): + self.obj_body_id[fixture_name] = self.sim.model.body_name2id( + fixture_body.root_body + ) + + def _setup_observables(self): + """ + Sets up observables to be used for this environment. Creates object-based observables if enabled + + Returns: + OrderedDict: Dictionary mapping observable names to its corresponding Observable object + """ + observables = super()._setup_observables() + + observables["robot0_joint_pos"]._active = True + + # low-level object information + if self.use_object_obs: + # Get robot prefix and define observables modality + pf = self.robots[0].robot_model.naming_prefix + sensors = [] + names = [s.__name__ for s in sensors] + + # Also append handle qpos if we're using a locked drawer version with rotatable handle + + # Create observables + for name, s in zip(names, sensors): + observables[name] = Observable( + name=name, + sensor=s, + sampling_rate=self.control_freq, + ) + + pf = self.robots[0].robot_model.naming_prefix + + @sensor(modality="object") + def world_pose_in_gripper(obs_cache): + return ( + T.pose_inv( + T.pose2mat((obs_cache[f"{pf}eef_pos"], obs_cache[f"{pf}eef_quat"])) + ) + if f"{pf}eef_pos" in obs_cache and f"{pf}eef_quat" in obs_cache + else np.eye(4) + ) + + sensors.append(world_pose_in_gripper) + names.append("world_pose_in_gripper") + + for (i, obj) in enumerate(self.objects): + obj_sensors, obj_sensor_names = self._create_obj_sensors( + obj_name=obj.name, modality="object" + ) + + sensors += obj_sensors + names += obj_sensor_names + + for name, s in zip(names, sensors): + if name == "world_pose_in_gripper": + observables[name] = Observable( + name=name, + sensor=s, + sampling_rate=self.control_freq, + enabled=True, + active=False, + ) + else: + observables[name] = Observable( + name=name, sensor=s, sampling_rate=self.control_freq + ) + + return observables + + def _create_obj_sensors(self, obj_name, modality="object"): + """ + Helper function to create sensors for a given object. This is abstracted in a separate function call so that we + don't have local function naming collisions during the _setup_observables() call. + + Args: + obj_name (str): Name of object to create sensors for + modality (str): Modality to assign to all sensors + + Returns: + 2-tuple: + sensors (list): Array of sensors for the given obj + names (list): array of corresponding observable names + """ + pf = self.robots[0].robot_model.naming_prefix + + @sensor(modality=modality) + def obj_pos(obs_cache): + return np.array(self.sim.data.body_xpos[self.obj_body_id[obj_name]]) + + @sensor(modality=modality) + def obj_quat(obs_cache): + return T.convert_quat( + self.sim.data.body_xquat[self.obj_body_id[obj_name]], to="xyzw" + ) + + @sensor(modality=modality) + def obj_to_eef_pos(obs_cache): + # Immediately return default value if cache is empty + if any( + [ + name not in obs_cache + for name in [ + f"{obj_name}_pos", + f"{obj_name}_quat", + "world_pose_in_gripper", + ] + ] + ): + return np.zeros(3) + obj_pose = T.pose2mat( + (obs_cache[f"{obj_name}_pos"], obs_cache[f"{obj_name}_quat"]) + ) + rel_pose = T.pose_in_A_to_pose_in_B( + obj_pose, obs_cache["world_pose_in_gripper"] + ) + rel_pos, rel_quat = T.mat2pose(rel_pose) + obs_cache[f"{obj_name}_to_{pf}eef_quat"] = rel_quat + return rel_pos + + @sensor(modality=modality) + def obj_to_eef_quat(obs_cache): + return ( + obs_cache[f"{obj_name}_to_{pf}eef_quat"] + if f"{obj_name}_to_{pf}eef_quat" in obs_cache + else np.zeros(4) + ) + + sensors = [obj_pos, obj_quat, obj_to_eef_pos, obj_to_eef_quat] + names = [ + f"{obj_name}_pos", + f"{obj_name}_quat", + f"{obj_name}_to_{pf}eef_pos", + f"{obj_name}_to_{pf}eef_quat", + ] + + return sensors, names + + def _add_placement_initializer(self): + + mapping_inv = {} + for k, values in self.parsed_problem["fixtures"].items(): + for v in values: + mapping_inv[v] = k + for k, values in self.parsed_problem["objects"].items(): + for v in values: + mapping_inv[v] = k + + regions = self.parsed_problem["regions"] + initial_state = self.parsed_problem["initial_state"] + problem_name = self.parsed_problem["problem_name"] + + conditioned_initial_place_state_on_sites = [] + conditioned_initial_place_state_on_objects = [] + conditioned_initial_place_state_in_objects = [] + + for state in initial_state: + if state[0] == "on" and state[2] in self.objects_dict: + conditioned_initial_place_state_on_objects.append(state) + continue + + # (Yifeng) Given that an object needs to have a certain "containing" region in order to hold the relation "In", we assume that users need to specify the containing region of the object already. + if state[0] == "in" and state[2] in regions: + conditioned_initial_place_state_in_objects.append(state) + continue + # Check if the predicate is in the form of On(object, region) + if state[0] == "on" and state[2] in regions: + object_name = state[1] + region_name = state[2] + target_name = regions[region_name]["target"] + x_ranges, y_ranges = rectangle2xyrange(regions[region_name]["ranges"]) + yaw_rotation = regions[region_name]["yaw_rotation"] + if ( + target_name in self.objects_dict + or target_name in self.fixtures_dict + ): + conditioned_initial_place_state_on_sites.append(state) + continue + if self.is_fixture(object_name): + # This is to place environment fixtures. + fixture_sampler = MultiRegionRandomSampler( + f"{object_name}_sampler", + mujoco_objects=self.fixtures_dict[object_name], + x_ranges=x_ranges, + y_ranges=y_ranges, + rotation=yaw_rotation, + rotation_axis="z", + z_offset=self.z_offset, # -self.table_full_size[2], + ensure_object_boundary_in_range=False, + ensure_valid_placement=False, + reference_pos=self.workspace_offset, + ) + self.placement_initializer.append_sampler(fixture_sampler) + else: + # This is to place movable objects. + region_sampler = get_region_samplers( + problem_name, mapping_inv[target_name] + )( + object_name, + self.objects_dict[object_name], + x_ranges=x_ranges, + y_ranges=y_ranges, + rotation=self.objects_dict[object_name].rotation, + rotation_axis=self.objects_dict[object_name].rotation_axis, + reference_pos=self.workspace_offset, + ) + self.placement_initializer.append_sampler(region_sampler) + if state[0] in ["open", "close"]: + # If "open" is implemented, we assume "close" is also implemented + if state[1] in self.object_states_dict and hasattr( + self.object_states_dict[state[1]], "set_joint" + ): + obj = self.get_object(state[1]) + if state[0] == "open": + joint_ranges = obj.object_properties["articulation"][ + "default_open_ranges" + ] + else: + joint_ranges = obj.object_properties["articulation"][ + "default_close_ranges" + ] + + property_initializer = OpenCloseSampler( + name=obj.name, + state_type=state[0], + joint_ranges=joint_ranges, + ) + self.object_property_initializers.append(property_initializer) + elif state[0] in ["turnon", "turnoff"]: + # If "turnon" is implemented, we assume "turnoff" is also implemented. + if state[1] in self.object_states_dict and hasattr( + self.object_states_dict[state[1]], "set_joint" + ): + obj = self.get_object(state[1]) + if state[0] == "turnon": + joint_ranges = obj.object_properties["articulation"][ + "default_turnon_ranges" + ] + else: + joint_ranges = obj.object_properties["articulation"][ + "default_turnoff_ranges" + ] + + property_initializer = TurnOnOffSampler( + name=obj.name, + state_type=state[0], + joint_ranges=joint_ranges, + ) + self.object_property_initializers.append(property_initializer) + + # Place objects that are on sites + for state in conditioned_initial_place_state_on_sites: + object_name = state[1] + region_name = state[2] + target_name = regions[region_name]["target"] + site_xy_size = self.object_sites_dict[region_name].size[:2] + sampler = SiteRegionRandomSampler( + f"{object_name}_sampler", + mujoco_objects=self.objects_dict[object_name], + x_ranges=[[-site_xy_size[0] / 2, site_xy_size[0] / 2]], + y_ranges=[[-site_xy_size[1] / 2, site_xy_size[1] / 2]], + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + rotation=self.objects_dict[object_name].rotation, + rotation_axis=self.objects_dict[object_name].rotation_axis, + ) + self.conditional_placement_initializer.append_sampler( + sampler, {"reference": target_name, "site_name": region_name} + ) + # Place objects that are on other objects + for state in conditioned_initial_place_state_on_objects: + object_name = state[1] + other_object_name = state[2] + sampler = ObjectBasedSampler( + f"{object_name}_sampler", + mujoco_objects=self.objects_dict[object_name], + x_ranges=[[0.0, 0.0]], + y_ranges=[[0.0, 0.0]], + ensure_object_boundary_in_range=False, + ensure_valid_placement=False, + rotation=self.objects_dict[object_name].rotation, + rotation_axis=self.objects_dict[object_name].rotation_axis, + ) + self.conditional_placement_on_objects_initializer.append_sampler( + sampler, {"reference": other_object_name} + ) + # Place objects inside some containing regions + for state in conditioned_initial_place_state_in_objects: + object_name = state[1] + region_name = state[2] + target_name = regions[region_name]["target"] + + site_xy_size = self.object_sites_dict[region_name].size[:2] + sampler = InSiteRegionRandomSampler( + f"{object_name}_sampler", + mujoco_objects=self.objects_dict[object_name], + # x_ranges=[[-site_xy_size[0] / 2, site_xy_size[0] / 2]], + # y_ranges=[[-site_xy_size[1] / 2, site_xy_size[1] / 2]], + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + rotation=self.objects_dict[object_name].rotation, + rotation_axis=self.objects_dict[object_name].rotation_axis, + ) + self.conditional_placement_initializer.append_sampler( + sampler, {"reference": target_name, "site_name": region_name} + ) + + def _reset_internal(self): + """ + Resets simulation internal configurations. + """ + super()._reset_internal() + + # Reset all object positions using initializer sampler if we're not directly loading from an xml + if not self.deterministic_reset: + + # Sample from the placement initializer for all objects + for object_property_initializer in self.object_property_initializers: + if isinstance(object_property_initializer, OpenCloseSampler): + joint_pos = object_property_initializer.sample() + self.object_states_dict[object_property_initializer.name].set_joint( + joint_pos + ) + elif isinstance(object_property_initializer, TurnOnOffSampler): + joint_pos = object_property_initializer.sample() + self.object_states_dict[object_property_initializer.name].set_joint( + joint_pos + ) + else: + print("Warning!!! This sampler doesn't seem to be used") + # robosuite didn't provide api for this stepping. we manually do this stepping to increase the speed of resetting simulation. + mujoco.mj_step1(self.sim.model._model, self.sim.data._data) + + object_placements = self.placement_initializer.sample() + object_placements = self.conditional_placement_initializer.sample( + self.sim, object_placements + ) + object_placements = ( + self.conditional_placement_on_objects_initializer.sample( + object_placements + ) + ) + for obj_pos, obj_quat, obj in object_placements.values(): + if obj.name not in list(self.fixtures_dict.keys()): + # This is for movable object resetting + self.sim.data.set_joint_qpos( + obj.joints[-1], + np.concatenate([np.array(obj_pos), np.array(obj_quat)]), + ) + else: + # This is for fixture resetting + body_id = self.sim.model.body_name2id(obj.root_body) + self.sim.model.body_pos[body_id] = obj_pos + self.sim.model.body_quat[body_id] = obj_quat + + def _check_success(self): + """ + This needs to match with the goal description from the bddl file + + Returns: + bool: True if drawer has been opened + """ + return False + + def visualize(self, vis_settings): + """ + In addition to super call, visualize gripper site proportional to the distance to the drawer handle. + + Args: + vis_settings (dict): Visualization keywords mapped to T/F, determining whether that specific + component should be visualized. Should have "grippers" keyword as well as any other relevant + options specified. + """ + # Run superclass method first + super().visualize(vis_settings=vis_settings) + + def step(self, action): + if self.action_dim == 4 and len(action) > 4: + # Convert OSC_POSITION action + action = np.array(action) + action = np.concatenate((action[:3], action[-1:]), axis=-1) + + obs, reward, done, info = super().step(action) + done = self._check_success() + + return obs, reward, done, info + + def _pre_action(self, action, policy_step=False): + super()._pre_action(action, policy_step=policy_step) + + def _post_action(self, action): + reward, done, info = super()._post_action(action) + + self._post_process() + + return reward, done, info + + def _post_process(self): + # Update some object states, such as light switching etc. + for object_state in self.tracking_object_states_change: + object_state.update_state() + + def get_robot_state_vector(self, obs): + return np.concatenate( + [obs["robot0_gripper_qpos"], obs["robot0_eef_pos"], obs["robot0_eef_quat"]] + ) + + def is_fixture(self, object_name): + """ + Check if an object is defined as a fixture in the task + + Args: + object_name (str): The name string of the object in query + """ + return object_name in list(self.fixtures_dict.keys()) + + @property + def language_instruction(self): + return self.parsed_problem["language"] + + def get_object(self, object_name): + for query_dict in [ + self.fixtures_dict, + self.objects_dict, + self.object_sites_dict, + ]: + if object_name in query_dict: + return query_dict[object_name] diff --git a/openpi/third_party/libero/libero/libero/envs/bddl_utils.py b/openpi/third_party/libero/libero/libero/envs/bddl_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..7902646b9475728d6eda655f0d51bb9ffa409cf4 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/bddl_utils.py @@ -0,0 +1,172 @@ +from bddl.parsing import * + +import itertools +import numpy as np + +pi = np.pi + + +def get_regions(t, regions, group): + group.pop(0) + while group: + region = group.pop(0) + region_name = region[0] + target_name = None + region_dict = { + "target": None, + "ranges": [], + "extra": [], + "yaw_rotation": [0, 0], + "rgba": [0, 0, 1, 0], + } + for attribute in region[1:]: + if attribute[0] == ":target": + assert len(attribute) == 2 + region_dict["target"] = attribute[1] + target_name = attribute[1] + elif attribute[0] == ":ranges": + for rect_range in attribute[1]: + assert ( + len(rect_range) == 4 + ), f"Dimension of rectangular range mismatched!!, supposed to be 4, only found {len(rect_range)}" + region_dict["ranges"].append([float(x) for x in rect_range]) + elif attribute[0] == ":yaw_rotation": + # print(attribute[1]) + for value in attribute[1]: + region_dict["yaw_rotation"] = [eval(x) for x in value] + elif attribute[0] == ":rgba": + assert ( + len(attribute[1]) == 4 + ), f"Missing specification for rgba color, supposed to be 4 dimension, but only got {attribute[1]}" + region_dict["rgba"] = [float(x) for x in attribute[1]] + else: + raise NotImplementedError + regions[target_name + "_" + region_name] = region_dict + + +def get_scenes(t, scene_properties, group): + group.pop(0) + while group: + scene_property = group.pop(0) + scene_properties_dict = {} + for attribute in region[1:]: + if attribute[0] == ":floor": + assert len(attribute) == 2 + scene_properties_dict["floor_style"] = attribute[1] + elif attribute[0] == ":wall": + assert len(attribute) == 2 + scene_properties_dict["wall_style"] = attribute[1] + else: + raise NotImplementedError + + +def get_problem_info(problem_filename): + domain_name = "unknown" + problem_filename = problem_filename + tokens = scan_tokens(filename=problem_filename) + if isinstance(tokens, list) and tokens.pop(0) == "define": + problem_name = "unknown" + language_instruction = "" + while tokens: + group = tokens.pop() + t = group[0] + if t == "problem": + problem_name = group[-1] + elif t == ":domain": + domain_name = "robosuite" + elif t == ":language": + group.pop(0) + language_instruction = group + return { + "problem_name": problem_name, + "domain_name": domain_name, + "language_instruction": " ".join(language_instruction), + } + + +def robosuite_parse_problem(problem_filename): + domain_name = "robosuite" + problem_filename = problem_filename + tokens = scan_tokens(filename=problem_filename) + if isinstance(tokens, list) and tokens.pop(0) == "define": + problem_name = "unknown" + objects = {} + obj_of_interest = [] + initial_state = [] + goal_state = [] + fixtures = {} + regions = {} + scene_properties = {} + language_instruction = "" + while tokens: + group = tokens.pop() + t = group[0] + if t == "problem": + problem_name = group[-1] + elif t == ":domain": + if domain_name != group[-1]: + raise Exception("Different domain specified in problem file") + elif t == ":requirements": + pass + elif t == ":objects": + group.pop(0) + object_list = [] + while group: + if group[0] == "-": + group.pop(0) + objects[group.pop(0)] = object_list + object_list = [] + else: + object_list.append(group.pop(0)) + if object_list: + if not "object" in objects: + objects["object"] = [] + objects["object"] += object_list + elif t == ":obj_of_interest": + group.pop(0) + while group: + obj_of_interest.append(group.pop(0)) + elif t == ":fixtures": + group.pop(0) + fixture_list = [] + while group: + if group[0] == "-": + group.pop(0) + fixtures[group.pop(0)] = fixture_list + fixture_list = [] + else: + fixture_list.append(group.pop(0)) + if fixture_list: + if not "fixture" in fixtures: + fixtures["fixture"] = [] + fixtures["fixture"] += fixture_list + elif t == ":regions": + get_regions(t, regions, group) + elif t == ":scene_properties": + get_scenes(t, scene_properties, group) + elif t == ":language": + group.pop(0) + language_instruction = group + + elif t == ":init": + group.pop(0) + initial_state = group + elif t == ":goal": + package_predicates(group[1], goal_state, "", "goals") + else: + print("%s is not recognized in problem" % t) + return { + "problem_name": problem_name, + "fixtures": fixtures, + "regions": regions, + "objects": objects, + "scene_properties": scene_properties, + "initial_state": initial_state, + "goal_state": goal_state, + "language_instruction": language_instruction, + "obj_of_interest": obj_of_interest, + } + else: + raise Exception( + f"Problem {behavior_activity} {activity_definition} does not match problem pattern" + ) diff --git a/openpi/third_party/libero/libero/libero/envs/env_wrapper.py b/openpi/third_party/libero/libero/libero/envs/env_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..b5a732b0d7e5d67ba5428fdf0edef150e80f6296 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/env_wrapper.py @@ -0,0 +1,278 @@ +import os +import numpy as np +import robosuite as suite +import matplotlib.cm as cm + +from robosuite.utils.errors import RandomizationError + +import libero.libero.envs.bddl_utils as BDDLUtils +from libero.libero.envs import * + + +class ControlEnv: + def __init__( + self, + bddl_file_name, + robots=["Panda"], + controller="OSC_POSE", + gripper_types="default", + initialization_noise=None, + use_camera_obs=True, + has_renderer=False, + has_offscreen_renderer=True, + render_camera="frontview", + render_collision_mesh=False, + render_visual_mesh=True, + render_gpu_device_id=-1, + control_freq=20, + horizon=1000, + ignore_done=False, + hard_reset=True, + camera_names=[ + "agentview", + "robot0_eye_in_hand", + ], + camera_heights=128, + camera_widths=128, + camera_depths=False, + camera_segmentations=None, + renderer="mujoco", + renderer_config=None, + **kwargs, + ): + assert os.path.exists( + bddl_file_name + ), f"[error] {bddl_file_name} does not exist!" + + controller_configs = suite.load_controller_config(default_controller=controller) + + problem_info = BDDLUtils.get_problem_info(bddl_file_name) + # Check if we're using a multi-armed environment and use env_configuration argument if so + + # Create environment + self.problem_name = problem_info["problem_name"] + self.domain_name = problem_info["domain_name"] + self.language_instruction = problem_info["language_instruction"] + self.env = TASK_MAPPING[self.problem_name]( + bddl_file_name, + robots=robots, + controller_configs=controller_configs, + gripper_types=gripper_types, + initialization_noise=initialization_noise, + use_camera_obs=use_camera_obs, + has_renderer=has_renderer, + has_offscreen_renderer=has_offscreen_renderer, + render_camera=render_camera, + render_collision_mesh=render_collision_mesh, + render_visual_mesh=render_visual_mesh, + render_gpu_device_id=render_gpu_device_id, + control_freq=control_freq, + horizon=horizon, + ignore_done=ignore_done, + hard_reset=hard_reset, + camera_names=camera_names, + camera_heights=camera_heights, + camera_widths=camera_widths, + camera_depths=camera_depths, + camera_segmentations=camera_segmentations, + renderer=renderer, + renderer_config=renderer_config, + **kwargs, + ) + + @property + def obj_of_interest(self): + return self.env.obj_of_interest + + def step(self, action): + return self.env.step(action) + + def reset(self): + success = False + while not success: + try: + ret = self.env.reset() + success = True + except RandomizationError: + pass + finally: + continue + + return ret + + def check_success(self): + return self.env._check_success() + + @property + def _visualizations(self): + return self.env._visualizations + + @property + def robots(self): + return self.env.robots + + @property + def sim(self): + return self.env.sim + + def get_sim_state(self): + return self.env.sim.get_state().flatten() + + def _post_process(self): + return self.env._post_process() + + def _update_observables(self, force=False): + self.env._update_observables(force=force) + + def set_state(self, mujoco_state): + self.env.sim.set_state_from_flattened(mujoco_state) + + def reset_from_xml_string(self, xml_string): + self.env.reset_from_xml_string(xml_string) + + def seed(self, seed): + self.env.seed(seed) + + def set_init_state(self, init_state): + return self.regenerate_obs_from_state(init_state) + + def regenerate_obs_from_state(self, mujoco_state): + self.set_state(mujoco_state) + self.env.sim.forward() + self.check_success() + self._post_process() + self._update_observables(force=True) + return self.env._get_observations() + + def close(self): + self.env.close() + del self.env + + +class OffScreenRenderEnv(ControlEnv): + """ + For visualization and evaluation. + """ + + def __init__(self, **kwargs): + # This shouldn't be customized + kwargs["has_renderer"] = False + kwargs["has_offscreen_renderer"] = True + super().__init__(**kwargs) + + +class SegmentationRenderEnv(OffScreenRenderEnv): + """ + This wrapper will additionally generate the segmentation mask of objects, + which is useful for comparing attention. + """ + + def __init__( + self, + camera_segmentations="instance", + camera_heights=128, + camera_widths=128, + **kwargs, + ): + assert camera_segmentations is not None + kwargs["camera_segmentations"] = camera_segmentations + kwargs["camera_heights"] = camera_heights + kwargs["camera_widths"] = camera_widths + self.segmentation_id_mapping = {} + self.instance_to_id = {} + self.segmentation_robot_id = None + super().__init__(**kwargs) + + def step(self, action): + return self.env.step(action) + + def reset(self): + obs = self.env.reset() + self.segmentation_id_mapping = {} + + for i, instance_name in enumerate(list(self.env.model.instances_to_ids.keys())): + if instance_name == "Panda0": + self.segmentation_robot_id = i + + for i, instance_name in enumerate(list(self.env.model.instances_to_ids.keys())): + if instance_name not in ["Panda0", "RethinkMount0", "PandaGripper0"]: + self.segmentation_id_mapping[i] = instance_name + + self.instance_to_id = { + v: k + 1 for k, v in self.segmentation_id_mapping.items() + } + return obs + + def get_segmentation_instances(self, segmentation_image): + # get all instances' segmentation separately + seg_img_dict = {} + segmentation_image[segmentation_image > self.segmentation_robot_id] = ( + self.segmentation_robot_id + 1 + ) + seg_img_dict["robot"] = segmentation_image * ( + segmentation_image == self.segmentation_robot_id + 1 + ) + + for seg_id, instance_name in self.segmentation_id_mapping.items(): + seg_img_dict[instance_name] = segmentation_image * ( + segmentation_image == seg_id + 1 + ) + return seg_img_dict + + def get_segmentation_of_interest(self, segmentation_image): + # get the combined segmentation of obj of interest + # 1 for obj_of_interest + # -1.0 for robot + # 0 for other things + ret_seg = np.zeros_like(segmentation_image) + for obj in self.obj_of_interest: + ret_seg[segmentation_image == self.instance_to_id[obj]] = 1.0 + # ret_seg[segmentation_image == self.segmentation_robot_id+1] = -1.0 + ret_seg[segmentation_image == 0] = -1.0 + return ret_seg + + def segmentation_to_rgb(self, seg_im, random_colors=False): + """ + Helper function to visualize segmentations as RGB frames. + NOTE: assumes that geom IDs go up to 255 at most - if not, + multiple geoms might be assigned to the same color. + """ + # ensure all values lie within [0, 255] + seg_im = np.mod(seg_im, 256) + + if random_colors: + colors = randomize_colors(N=256, bright=True) + return (255.0 * colors[seg_im]).astype(np.uint8) + else: + # deterministic shuffling of values to map each geom ID to a random int in [0, 255] + rstate = np.random.RandomState(seed=2) + inds = np.arange(256) + rstate.shuffle(inds) + seg_img = ( + np.array(255.0 * cm.rainbow(inds[seg_im], 10)) + .astype(np.uint8)[..., :3] + .astype(np.uint8) + .squeeze(-2) + ) + print(seg_img.shape) + cv2.imshow("Seg Image", seg_img[::-1]) + cv2.waitKey(1) + # use @inds to map each geom ID to a color + return seg_img + + +class DemoRenderEnv(ControlEnv): + """ + For visualization and evaluation. + """ + + def __init__(self, **kwargs): + # This shouldn't be customized + kwargs["has_renderer"] = False + kwargs["has_offscreen_renderer"] = True + kwargs["render_camera"] = "frontview" + + super().__init__(**kwargs) + + def _get_observations(self): + return self.env._get_observations() diff --git a/openpi/third_party/libero/libero/libero/envs/object_states/__init__.py b/openpi/third_party/libero/libero/libero/envs/object_states/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1589b695854a538a5bdd55b1ff7593e6b88af60b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/object_states/__init__.py @@ -0,0 +1 @@ +from .base_object_states import * diff --git a/openpi/third_party/libero/libero/libero/envs/object_states/base_object_states.py b/openpi/third_party/libero/libero/libero/envs/object_states/base_object_states.py new file mode 100644 index 0000000000000000000000000000000000000000..300f1daa99487328755820e46260bbe728894e40 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/object_states/base_object_states.py @@ -0,0 +1,220 @@ +import robosuite.utils.transform_utils as transform_utils +import numpy as np + + +class BaseObjectState: + def __init__(self): + pass + + def get_geom_state(self): + raise NotImplementedError + + def check_contact(self, other): + raise NotImplementedError + + def check_contain(self, other): + raise NotImplementedError + + def get_joint_state(self): + raise NotImplementedError + + def is_open(self): + raise NotImplementedError + + def is_close(self): + raise NotImplementedError + + def get_size(self): + raise NotImplementedError + + def check_ontop(self, other): + raise NotImplementedError + + +class ObjectState(BaseObjectState): + def __init__(self, env, object_name, is_fixture=False): + self.env = env + self.object_name = object_name + self.is_fixture = is_fixture + self.query_dict = ( + self.env.fixtures_dict if self.is_fixture else self.env.objects_dict + ) + self.object_state_type = "object" + self.has_turnon_affordance = hasattr( + self.env.get_object(self.object_name), "turn_on" + ) + + def get_geom_state(self): + object_pos = self.env.sim.data.body_xpos[self.env.obj_body_id[self.object_name]] + object_quat = self.env.sim.data.body_xquat[ + self.env.obj_body_id[self.object_name] + ] + return {"pos": object_pos, "quat": object_quat} + + def check_contact(self, other): + object_1 = self.env.get_object(self.object_name) + object_2 = self.env.get_object(other.object_name) + return self.env.check_contact(object_1, object_2) + + def check_contain(self, other): + object_1 = self.env.get_object(self.object_name) + object_1_position = self.env.sim.data.body_xpos[ + self.env.obj_body_id[self.object_name] + ] + object_2 = self.env.get_object(other.object_name) + object_2_position = self.env.sim.data.body_xpos[ + self.env.obj_body_id[other.object_name] + ] + return object_1.in_box(object_1_position, object_2_position) + + def get_joint_state(self): + # Return None if joint state does not exist + joint_states = [] + for joint in self.env.get_object(self.object_name).joints: + qpos_addr = self.env.sim.model.get_joint_qpos_addr(joint) + joint_states.append(self.env.sim.data.qpos[qpos_addr]) + return joint_states + + def check_ontop(self, other): + this_object = self.env.get_object(self.object_name) + this_object_position = self.env.sim.data.body_xpos[ + self.env.obj_body_id[self.object_name] + ] + other_object = self.env.get_object(other.object_name) + other_object_position = self.env.sim.data.body_xpos[ + self.env.obj_body_id[other.object_name] + ] + return ( + (this_object_position[2] <= other_object_position[2]) + and self.check_contact(other) + and ( + np.linalg.norm(this_object_position[:2] - other_object_position[:2]) + < 0.03 + ) + ) + + def set_joint(self, qpos=1.5): + for joint in self.env.get_object(self.object_name).joints: + self.env.sim.data.set_joint_qpos(joint, qpos) + + def is_open(self): + for joint in self.env.get_object(self.object_name).joints: + qpos_addr = self.env.sim.model.get_joint_qpos_addr(joint) + qpos = self.env.sim.data.qpos[qpos_addr] + if self.env.get_object(self.object_name).is_open(qpos): + return True + return False + + def is_close(self): + for joint in self.env.get_object(self.object_name).joints: + qpos_addr = self.env.sim.model.get_joint_qpos_addr(joint) + qpos = self.env.sim.data.qpos[qpos_addr] + if not (self.env.get_object(self.object_name).is_close(qpos)): + return False + return True + + def turn_on(self): + for joint in self.env.get_object(self.object_name).joints: + qpos_addr = self.env.sim.model.get_joint_qpos_addr(joint) + qpos = self.env.sim.data.qpos[qpos_addr] + if self.env.get_object(self.object_name).turn_on(qpos): + return True + return False + + def turn_off(self): + for joint in self.env.get_object(self.object_name).joints: + qpos_addr = self.env.sim.model.get_joint_qpos_addr(joint) + qpos = self.env.sim.data.qpos[qpos_addr] + if not (self.env.get_object(self.object_name).turn_off(qpos)): + return False + return True + + def update_state(self): + if self.has_turnon_affordance: + self.turn_on() + + +class SiteObjectState(BaseObjectState): + """ + This is to make site based objects to have the same API as normal Object State. + """ + + def __init__(self, env, object_name, parent_name, is_fixture=False): + self.env = env + self.object_name = object_name + self.parent_name = parent_name + self.is_fixture = self.parent_name in self.env.fixtures_dict + self.query_dict = ( + self.env.fixtures_dict if self.is_fixture else self.env.objects_dict + ) + self.object_state_type = "site" + + def get_geom_state(self): + object_pos = self.env.sim.data.get_site_xpos(self.object_name) + object_quat = transform_utils.mat2quat( + self.env.sim.data.get_site_xmat(self.object_name) + ) + return {"pos": object_pos, "quat": object_quat} + + def check_contain(self, other): + this_object = self.env.object_sites_dict[self.object_name] + this_object_position = self.env.sim.data.get_site_xpos(self.object_name) + this_object_mat = self.env.sim.data.get_site_xmat(self.object_name) + + other_object = self.env.get_object(other.object_name) + other_object_position = self.env.sim.data.body_xpos[ + self.env.obj_body_id[other.object_name] + ] + return this_object.in_box( + this_object_position, this_object_mat, other_object_position + ) + + def check_contact(self, other): + """ + There is no dynamics for site objects, so we return true all the time. + """ + return True + + def check_ontop(self, other): + this_object = self.env.object_sites_dict[self.object_name] + if hasattr(this_object, "under"): + this_object_position = self.env.sim.data.get_site_xpos(self.object_name) + this_object_mat = self.env.sim.data.get_site_xmat(self.object_name) + other_object = self.env.get_object(other.object_name) + other_object_position = self.env.sim.data.body_xpos[ + self.env.obj_body_id[other.object_name] + ] + # print(self.object_name, this_object_position) + # print(other_object_position) + + parent_object = self.env.get_object(self.parent_name) + if parent_object is None: + return this_object.under( + this_object_position, this_object_mat, other_object_position + ) + else: + return this_object.under( + this_object_position, this_object_mat, other_object_position + ) and self.env.check_contact(parent_object, other_object) + else: + return True + + def set_joint(self, qpos=1.5): + for joint in self.env.object_sites_dict[self.object_name].joints: + self.env.sim.data.set_joint_qpos(joint, qpos) + + def is_open(self): + for joint in self.env.object_sites_dict[self.object_name].joints: + qpos_addr = self.env.sim.model.get_joint_qpos_addr(joint) + qpos = self.env.sim.data.qpos[qpos_addr] + if self.env.get_object(self.parent_name).is_open(qpos): + return True + return False + + def is_close(self): + for joint in self.env.object_sites_dict[self.object_name].joints: + qpos_addr = self.env.sim.model.get_joint_qpos_addr(joint) + qpos = self.env.sim.data.qpos[qpos_addr] + if not (self.env.get_object(self.parent_name).is_close(qpos)): + return False + return True diff --git a/openpi/third_party/libero/libero/libero/envs/objects/__init__.py b/openpi/third_party/libero/libero/libero/envs/objects/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d7d8d66e34ee291f250c31d7358e8caf24e928b2 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/objects/__init__.py @@ -0,0 +1,18 @@ +import re + +from libero.libero.envs.base_object import OBJECTS_DICT, VISUAL_CHANGE_OBJECTS_DICT + +from .hope_objects import * +from .google_scanned_objects import * +from .articulated_objects import * +from .turbosquid_objects import * +from .site_object import SiteObject +from .target_zones import * + + +def get_object_fn(category_name): + return OBJECTS_DICT[category_name.lower()] + + +def get_object_dict(): + return OBJECTS_DICT diff --git a/openpi/third_party/libero/libero/libero/envs/objects/articulated_objects.py b/openpi/third_party/libero/libero/libero/envs/objects/articulated_objects.py new file mode 100644 index 0000000000000000000000000000000000000000..b90f09db2cd98a3a61d6cf6053801f606d6433e9 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/objects/articulated_objects.py @@ -0,0 +1,268 @@ +import os +import re +import numpy as np + +from dataclasses import dataclass +from robosuite.models.objects import MujocoXMLObject +from easydict import EasyDict + +import pathlib + +absolute_path = pathlib.Path(__file__).parent.parent.parent.absolute() + +from libero.libero.envs.base_object import ( + register_visual_change_object, + register_object, +) + + +class ArticulatedObject(MujocoXMLObject): + def __init__(self, name, obj_name, joints=[dict(type="free", damping="0.0005")]): + super().__init__( + os.path.join( + str(absolute_path), f"assets/articulated_objects/{obj_name}.xml" + ), + name=name, + joints=joints, + obj_type="all", + duplicate_collision_geoms=False, + ) + self.category_name = "_".join( + re.sub(r"([A-Z])", r" \1", self.__class__.__name__).split() + ).lower() + self.rotation = (np.pi / 4, np.pi / 2) + self.rotation_axis = "x" + + articulation_object_properties = { + "default_open_ranges": [], + "default_close_ranges": [], + } + self.object_properties = { + "articulation": articulation_object_properties, + "vis_site_names": {}, + } + + def is_open(self, qpos): + raise NotImplementedError + + def is_close(self, qpos): + raise NotImplementedError + + +@register_object +class Microwave(ArticulatedObject): + def __init__( + self, + name="microwave", + obj_name="microwave", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + self.object_properties["articulation"]["default_open_ranges"] = [-2.094, -1.3] + self.object_properties["articulation"]["default_close_ranges"] = [-0.005, 0.0] + + def is_open(self, qpos): + if qpos < max(self.object_properties["articulation"]["default_open_ranges"]): + return True + else: + return False + + def is_close(self, qpos): + if qpos > min(self.object_properties["articulation"]["default_close_ranges"]): + return True + else: + return False + + +@register_object +class SlideCabinet(ArticulatedObject): + def __init__( + self, + name="slide_cabinet", + obj_name="slide_cabinet", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class Window(ArticulatedObject): + def __init__( + self, + name="window", + obj_name="window", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.z_on_table = 0.13 + + +@register_object +class Faucet(ArticulatedObject): + def __init__( + self, + name="faucet", + obj_name="faucet", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class BasinFaucet(ArticulatedObject): + def __init__(self, name="basin_faucet", obj_name="basin_faucet", joints=None): + super().__init__(name, obj_name, joints) + + +@register_object +class ShortCabinet(ArticulatedObject): + def __init__( + self, + name="short_cabinet", + obj_name="short_cabinet", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + self.object_properties["articulation"]["default_open_ranges"] = [0.10, 0.16] + self.object_properties["articulation"]["default_close_ranges"] = [-0.005, 0.0] + + def is_open(self, qpos): + if qpos > min(self.object_properties["articulation"]["default_open_ranges"]): + return True + else: + return False + + def is_close(self, qpos): + if qpos < max(self.object_properties["articulation"]["default_close_ranges"]): + return True + else: + return False + + +@register_object +class ShortFridge(ArticulatedObject): + def __init__( + self, + name="short_fridge", + obj_name="short_fridge", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + self.object_properties["articulation"]["default_open_ranges"] = [2.0, 2.7] + self.object_properties["articulation"]["default_close_ranges"] = [-0.005, 0.0] + + def is_open(self, qpos): + if qpos > min(self.object_properties["articulation"]["default_open_ranges"]): + return True + else: + return False + + def is_close(self, qpos): + if qpos < max(self.object_properties["articulation"]["default_close_ranges"]): + return True + else: + return False + + # Sample initial joint positions for random door open or door closed + + +@register_object +class WoodenCabinet(ArticulatedObject): + def __init__( + self, + name="wooden_cabinet", + obj_name="wooden_cabinet", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.object_properties["articulation"]["default_open_ranges"] = [-0.16, -0.14] + self.object_properties["articulation"]["default_close_ranges"] = [0.0, 0.005] + + def is_open(self, qpos): + if qpos < max(self.object_properties["articulation"]["default_open_ranges"]): + return True + else: + return False + + def is_close(self, qpos): + if qpos > min(self.object_properties["articulation"]["default_close_ranges"]): + return True + else: + return False + + +@register_object +class WhiteCabinet(ArticulatedObject): + def __init__( + self, + name="white_cabinet", + obj_name="white_cabinet", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.object_properties["articulation"]["default_open_ranges"] = [-0.16, -0.14] + self.object_properties["articulation"]["default_close_ranges"] = [0.0, 0.005] + + def is_open(self, qpos): + if qpos < max(self.object_properties["articulation"]["default_open_ranges"]): + return True + else: + return False + + def is_close(self, qpos): + if qpos > min(self.object_properties["articulation"]["default_close_ranges"]): + return True + else: + return False + + +@register_object +@register_visual_change_object +class FlatStove(ArticulatedObject): + def __init__( + self, + name="flat_stove", + obj_name="flat_stove", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.rotation = (0, 0) + self.rotation_axis = "y" + + tracking_sites_dict = {} + tracking_sites_dict["burner"] = (self.naming_prefix + "burner", False) + self.object_properties["vis_site_names"].update(tracking_sites_dict) + self.object_properties["articulation"]["default_turnon_ranges"] = [0.5, 2.1] + self.object_properties["articulation"]["default_turnoff_ranges"] = [-0.005, 0.0] + + def turn_on(self, qpos): + if qpos >= min(self.object_properties["articulation"]["default_turnon_ranges"]): + # TODO: Set visualization sites to be true + self.object_properties["vis_site_names"]["burner"] = ( + self.naming_prefix + "burner", + True, + ) + return True + else: + self.object_properties["vis_site_names"]["burner"] = ( + self.naming_prefix + "burner", + False, + ) + return False + + def turn_off(self, qpos): + if qpos < max(self.object_properties["articulation"]["default_turnoff_ranges"]): + self.object_properties["vis_site_names"]["burner"] = ( + self.naming_prefix + "burner", + False, + ) + return True + else: + self.object_properties["vis_site_names"]["burner"] = ( + self.naming_prefix + "burner", + True, + ) + return False diff --git a/openpi/third_party/libero/libero/libero/envs/objects/google_scanned_objects.py b/openpi/third_party/libero/libero/libero/envs/objects/google_scanned_objects.py new file mode 100644 index 0000000000000000000000000000000000000000..4b35da55ecfe519ce8794173796e43b42220b6a2 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/objects/google_scanned_objects.py @@ -0,0 +1,88 @@ +import os +import numpy as np +import re + +from robosuite.models.objects import MujocoXMLObject +from robosuite.utils.mjcf_utils import xml_path_completion + +import pathlib + +absolute_path = pathlib.Path(__file__).parent.parent.parent.absolute() + +from libero.libero.envs.base_object import ( + register_visual_change_object, + register_object, +) + + +class GoogleScannedObject(MujocoXMLObject): + def __init__(self, name, obj_name, joints=[dict(type="free", damping="0.0005")]): + super().__init__( + os.path.join( + str(absolute_path), + f"assets/stable_scanned_objects/{obj_name}/{obj_name}.xml", + ), + name=name, + joints=joints, + obj_type="all", + duplicate_collision_geoms=False, + ) + self.category_name = "_".join( + re.sub(r"([A-Z])", r" \1", self.__class__.__name__).split() + ).lower() + self.rotation = (np.pi / 2, np.pi / 2) + self.rotation_axis = "x" + self.object_properties = {"vis_site_names": {}} + + +@register_object +class Rack(GoogleScannedObject): + def __init__( + self, + name="simple_rack", + obj_name="simple_rack", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints=joints) + self.rotation = (0, 0) + self.rotation_axis = "x" + + +@register_object +class WhiteBowl(GoogleScannedObject): + def __init__(self, name="white_bowl", obj_name="white_bowl"): + super().__init__(name, obj_name) + + +@register_object +class AkitaBlackBowl(GoogleScannedObject): + def __init__(self, name="akita_black_bowl", obj_name="akita_black_bowl"): + super().__init__(name, obj_name) + + +@register_object +class Plate(GoogleScannedObject): + def __init__(self, name="plate", obj_name="plate"): + super().__init__(name, obj_name) + + +@register_object +class Basket(GoogleScannedObject): + def __init__(self, name="basket", obj_name="basket"): + super().__init__(name, obj_name) + + +@register_object +class Chefmate8Frypan(GoogleScannedObject): + def __init__(self, name="chefmate_8_frypan", obj_name="chefmate_8_frypan"): + super().__init__(name, obj_name) + + +@register_object +class GlazedRimPorcelainRamekin(GoogleScannedObject): + def __init__( + self, + name="glazed_rim_porcelain_ramekin", + obj_name="glazed_rim_porcelain_ramekin", + ): + super().__init__(name, obj_name) diff --git a/openpi/third_party/libero/libero/libero/envs/objects/hope_objects.py b/openpi/third_party/libero/libero/libero/envs/objects/hope_objects.py new file mode 100644 index 0000000000000000000000000000000000000000..a3a1a4cf3ff923b895dd0b42da7b67e678a6e397 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/objects/hope_objects.py @@ -0,0 +1,240 @@ +import os +import re +import numpy as np +from robosuite.models.objects import MujocoXMLObject +from robosuite.utils.mjcf_utils import array_to_string + +import pathlib + +absolute_path = pathlib.Path(__file__).parent.parent.parent.absolute() + +from libero.libero.envs.base_object import register_object + + +class HopeBaseObject(MujocoXMLObject): + def __init__(self, name, obj_name): + super().__init__( + os.path.join( + str(absolute_path), + f"assets/stable_hope_objects/{obj_name}/{obj_name}.xml", + ), + name=name, + joints=[dict(type="free", damping="0.0005")], + obj_type="all", + duplicate_collision_geoms=False, + ) + self.category_name = "_".join( + re.sub(r"([A-Z])", r" \1", self.__class__.__name__).split() + ).lower() + self.rotation = (np.pi / 2, np.pi / 2) + self.rotation_axis = "x" + + self.object_properties = {"vis_site_names": {}} + + +@register_object +class AlphabetSoup(HopeBaseObject): + def __init__(self, name="alphabet_soup", obj_name="alphabet_soup"): + super().__init__(name, obj_name) + self.rotation_axis = "z" + + +@register_object +class BbqSauce(HopeBaseObject): + def __init__(self, name="bbq_sauce", obj_name="bbq_sauce"): + super().__init__(name, obj_name) + + +@register_object +class Butter(HopeBaseObject): + def __init__(self, name="butter", obj_name="butter"): + super().__init__(name, obj_name) + self.rotation = (0.0, 0.0) + self.rotation_axis = "x" + + +@register_object +class Cherries(HopeBaseObject): + def __init__(self, name="cherries", obj_name="cherries"): + super().__init__(name, obj_name) + + +@register_object +class ChocolatePudding(HopeBaseObject): + def __init__(self, name="chocolate_pudding", obj_name="chocolate_pudding"): + super().__init__(name, obj_name) + self.rotation = (0.0, 0.0) + self.rotation_axis = "x" + + +@register_object +class Cookies(HopeBaseObject): + def __init__(self, name="cookies", obj_name="cookies"): + super().__init__(name, obj_name) + + +@register_object +class Corn(HopeBaseObject): + def __init__(self, name="corn", obj_name="corn"): + super().__init__(name, obj_name) + + +@register_object +class CreamCheese(HopeBaseObject): + def __init__(self, name="cream_cheese", obj_name="cream_cheese"): + super().__init__(name, obj_name) + self.rotation = (0.0, 0.0) + self.rotation_axis = "x" + + +@register_object +class Ketchup(HopeBaseObject): + def __init__(self, name="ketchup", obj_name="ketchup"): + super().__init__(name, obj_name) + self.rotation = { + "x": (np.pi / 2, np.pi / 2), + "z": (np.pi / 2, np.pi / 2), + } + self.rotation_axis = None + + +@register_object +class MacaroniAndCheese(HopeBaseObject): + def __init__(self, name="macaroni_and_cheese", obj_name="macaroni_and_cheese"): + super().__init__(name, obj_name) + self.rotation = { + "x": (np.pi / 2, np.pi / 2), + "z": (np.pi / 2, np.pi / 2), + } + self.rotation_axis = None + + +@register_object +class Mayo(HopeBaseObject): + def __init__(self, name="mayo", obj_name="mayo"): + super().__init__(name, obj_name) + self.rotation = { + "x": (np.pi / 2, np.pi / 2), + "z": (np.pi / 2, np.pi / 2), + } + self.rotation_axis = None + + +@register_object +class Milk(HopeBaseObject): + def __init__(self, name="milk", obj_name="milk"): + super().__init__(name, obj_name) + self.rotation = { + "x": (np.pi / 2, np.pi / 2), + "z": (np.pi / 2, np.pi / 2), + } + + +# class Mushrooms(HopeBaseObject): +# def __init__(self, +# name="mushrooms", +# obj_name="mushrooms"): +# super().__init__(name, obj_name) + +# class Mustard(HopeBaseObject): +# def __init__(self, +# name="mustard", +# obj_name="mustard"): +# super().__init__(name, obj_name) +# self.rotation={ +# "x": (np.pi / 2, np.pi/2), +# "z": (np.pi / 2, np.pi/2), +# } +# self.rotation_axis= None + + +@register_object +class OrangeJuice(HopeBaseObject): + def __init__(self, name="orange_juice", obj_name="orange_juice"): + super().__init__(name, obj_name) + self.rotation = { + "x": (np.pi / 2, np.pi / 2), + "z": (np.pi / 2, np.pi / 2), + } + + +# class Parmesan(HopeBaseObject): +# def __init__(self, +# name="parmesan", +# obj_name="parmesan"): +# super().__init__(name, obj_name) + +# class Peaches(HopeBaseObject): +# def __init__(self, +# name="peaches", +# obj_name="peaches"): +# super().__init__(name, obj_name) + +# class PeasAndCarrots(HopeBaseObject): +# def __init__(self, +# name="peas_and_carrots", +# obj_name="peas_and_carrots"): +# super().__init__(name, obj_name) + +# class Pineapple(HopeBaseObject): +# def __init__(self, +# name="pineapple", +# obj_name="pineapple"): +# super().__init__(name, obj_name) + + +@register_object +class Popcorn(HopeBaseObject): + def __init__(self, name="popcorn", obj_name="popcorn"): + super().__init__(name, obj_name) + self.rotation = (0.0, 0.0) + self.rotation_axis = "x" + + +# class Raisins(HopeBaseObject): +# def __init__(self, +# name="raisins", +# obj_name="raisins"): +# super().__init__(name, obj_name) + + +@register_object +class SaladDressing(HopeBaseObject): + def __init__(self, name="salad_dressing", obj_name="salad_dressing"): + super().__init__(name, obj_name) + self.rotation = { + "x": (np.pi / 2, np.pi / 2), + "z": (np.pi / 2, np.pi / 2), + } + self.rotation_axis = None + + +@register_object +class NewSaladDressing(HopeBaseObject): + def __init__(self, name="new_salad_dressing", obj_name="new_salad_dressing"): + super().__init__(name, obj_name) + self.rotation = { + "x": (np.pi / 2, np.pi / 2), + "z": (np.pi / 2, np.pi / 2), + } + self.rotation_axis = None + + +@register_object +class TomatoSauce(HopeBaseObject): + def __init__(self, name="tomato_sauce", obj_name="tomato_sauce"): + super().__init__(name, obj_name) + self.rotation_axis = "z" + + +# class Tuna(HopeBaseObject): +# def __init__(self, +# name="tuna", +# obj_name="tuna"): +# super().__init__(name, obj_name) + +# class Yogurt(HopeBaseObject): +# def __init__(self, +# name="yogurt", +# obj_name="yogurt"): +# super().__init__(name, obj_name) diff --git a/openpi/third_party/libero/libero/libero/envs/objects/site_object.py b/openpi/third_party/libero/libero/libero/envs/objects/site_object.py new file mode 100644 index 0000000000000000000000000000000000000000..88eceb274d13b4774307d9d7f69f1674d52adda4 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/objects/site_object.py @@ -0,0 +1,80 @@ +import os +import numpy as np + +from robosuite.utils.mjcf_utils import string_to_array +import robosuite.utils.transform_utils as transform_utils + +import pathlib + +absolute_path = pathlib.Path(__file__).parent.parent.parent.absolute() + + +class SiteObject: + def __init__( + self, + name, + parent_name=None, + joints=None, + size=None, + rgba=None, + site_type="box", + site_pos="0 0 0", + site_quat="1 0 0 0", + object_properties={}, + ): + self.name = name + self.parent_name = parent_name + self.joints = joints + self.site_pos = string_to_array(site_pos) + self.site_quat = string_to_array(site_quat) + self.size = size if type(size) is not str else string_to_array(size) + self.rgba = rgba + self.site_type = site_type + self.object_properties = object_properties + + def in_box(self, this_position, this_mat, other_position): + """ + Checks whether the object is contained within this SiteObject. + Useful for when the CompositeObject has holes and the object should + be within one of the holes. Makes an approximation by treating the + object as a point, and the SiteObject as an axis-aligned grid. + Args: + this_position: 3D position of this SiteObject + other_position: 3D position of object to test for insertion + """ + + # (TODO) Yifeng: The transformation for size is a little bit + # hacky at the moment. Will dig deeper into it. + total_size = np.abs(this_mat @ self.size) + + ub = this_position + total_size + lb = this_position - total_size + + lb[2] -= 0.01 + # print(np.all(other_position > lb), np.all(other_position < ub)) + # print(lb, other_position, ub) + return np.all(other_position > lb) and np.all(other_position < ub) + + def __str__(self): + return ( + f"Object {self.name} : \n geom type: {self.site_type} \n size: {self.size}" + ) + + def under(self, this_position, this_mat, other_position, other_height=0.10): + """ + Checks whether an object is on this SiteObject. + Useful for when the CompositeObject has holes and the object should + be within one of the holes. Makes an approximation by treating the + object as a point, and the SiteObject as an axis-aligned grid. + Args: + this_position: 3D position of this SiteObject + other_position: 3D position of object to test for insertion + """ + total_size = self.size # np.abs(this_mat @ self.size) + + delta_position = this_mat @ (other_position - this_position) + # print(total_size, " | ", delta_position) + # print(total_size[2] < delta_position[2] < total_size[2] + other_height, np.all(np.abs(delta_position[:2]) < total_size[:2])) + return total_size[2] - 0.005 < delta_position[2] < total_size[ + 2 + ] + other_height and np.all(np.abs(delta_position[:2]) < total_size[:2]) diff --git a/openpi/third_party/libero/libero/libero/envs/objects/target_zones.py b/openpi/third_party/libero/libero/libero/envs/objects/target_zones.py new file mode 100644 index 0000000000000000000000000000000000000000..98c51c1ee323650d3940aabe426a7fd62b2ba438 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/objects/target_zones.py @@ -0,0 +1,92 @@ +import re +import numpy as np +import robosuite.utils.transform_utils as T +import pathlib + +absolute_path = pathlib.Path(__file__).parent.parent.parent.absolute() +from robosuite.models.objects import MujocoXMLObject +from robosuite.utils.mjcf_utils import ( + xml_path_completion, + array_to_string, + find_elements, + CustomMaterial, + add_to_dict, + RED, + GREEN, + BLUE, +) + +# from robosuite.models.objects import BoxObject +from libero.libero.envs.objects.site_object import SiteObject + +from libero.libero.envs.base_object import ( + register_visual_change_object, + register_object, +) + + +@register_object +class TargetZone(SiteObject): + def __init__( + self, + name, + zone_height=0.007, + z_offset=0.02, + rgba=(1, 0, 0, 1), + joints=None, + zone_size=(0.15, 0.05), + zone_centroid_xy=(0, 0), + # site_type="box", + # site_pos="0 0 0", + # site_quat="1 0 0 0", + ): + self.category_name = "_".join( + re.sub(r"([A-Z])", r" \1", self.__class__.__name__).split() + ).lower() + self.size = (zone_size[0], zone_size[1], zone_height) + self.pos = zone_centroid_xy + (z_offset,) + self.quat = (1, 0, 0, 0) + super().__init__( + name=name, + size=self.size, + rgba=rgba, + site_type="box", + site_pos=array_to_string(self.pos), + site_quat=array_to_string(self.quat), + ) + + def in_box(self, this_position, this_mat, other_position): + """ + Checks whether the object is contained within this SiteObject. + Useful for when the CompositeObject has holes and the object should + be within one of the holes. Makes an approximation by treating the + object as a point, and the SiteObject as an axis-aligned grid. + Args: + this_position: 3D position of this SiteObject + other_position: 3D position of object to test for insertion + """ + + total_size = np.abs(this_mat @ self.size) + + ub = this_position + total_size + lb = this_position - total_size + + lb[2] -= 0.01 + return np.all(other_position > lb) and np.all(other_position < ub) + + def on_top(self, this_position, this_mat, other_position): + """ + Checks whether the object is contained within this SiteObject. + Useful for when the CompositeObject has holes and the object should + be within one of the holes. Makes an approximation by treating the + object as a point, and the SiteObject as an axis-aligned grid. + Args: + this_position: 3D position of this SiteObject + other_position: 3D position of object to test for insertion + """ + + # (TODO) Yifeng: The transformation for size is a little bit + # hacky at the moment. Will dig deeper into it. + total_size = np.abs(this_mat @ self.size) + ub = this_position + total_size + return np.all(other_position > ub) diff --git a/openpi/third_party/libero/libero/libero/envs/objects/turbosquid_objects.py b/openpi/third_party/libero/libero/libero/envs/objects/turbosquid_objects.py new file mode 100644 index 0000000000000000000000000000000000000000..6ffcebdb8cef94fa8a59893fe004107bd3bc15e3 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/objects/turbosquid_objects.py @@ -0,0 +1,209 @@ +import os +import re +import numpy as np + +from robosuite.models.objects import MujocoXMLObject +from robosuite.utils.mjcf_utils import xml_path_completion + +import pathlib + +absolute_path = pathlib.Path(__file__).parent.parent.parent.absolute() + +from libero.libero.envs.base_object import ( + register_visual_change_object, + register_object, +) + + +class TurbosquidObjects(MujocoXMLObject): + def __init__(self, name, obj_name, joints=[dict(type="free", damping="0.0005")]): + super().__init__( + os.path.join( + str(absolute_path), + f"assets/turbosquid_objects/{obj_name}/{obj_name}.xml", + ), + name=name, + joints=joints, + obj_type="all", + duplicate_collision_geoms=False, + ) + self.category_name = "_".join( + re.sub(r"([A-Z])", r" \1", self.__class__.__name__).split() + ).lower() + self.rotation = (0, 0) + self.rotation_axis = "x" + self.object_properties = {"vis_site_names": {}} + + +@register_object +class WoodenTray(TurbosquidObjects): + def __init__( + self, + name="wooden_tray", + obj_name="wooden_tray", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class WhiteStorageBox(TurbosquidObjects): + def __init__( + self, + name="white_storage_box", + obj_name="white_storage_box", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.rotation = (0, 0) + self.rotation_axis = "y" + + +@register_object +class WoodenShelf(TurbosquidObjects): + def __init__( + self, + name="wooden_shelf", + obj_name="wooden_shelf", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class WoodenTwoLayerShelf(TurbosquidObjects): + def __init__( + self, + name="wooden_two_layer_shelf", + obj_name="wooden_two_layer_shelf", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class WineRack(TurbosquidObjects): + def __init__( + self, + name="wine_rack", + obj_name="wine_rack", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class WineBottle(TurbosquidObjects): + def __init__( + self, + name="wine_bottle", + obj_name="wine_bottle", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class DiningSetGroup(TurbosquidObjects): + """This dining set group is mostly for visualization""" + + def __init__( + self, + name="dining_set_group", + obj_name="dining_set_group", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class BowlDrainer(TurbosquidObjects): + def __init__( + self, + name="bowl_drainer", + obj_name="bowl_drainer", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class MokaPot(TurbosquidObjects): + def __init__( + self, + name="moka_pot", + obj_name="moka_pot", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class BlackBook(TurbosquidObjects): + def __init__( + self, + name="black_book", + obj_name="black_book", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.rotation = (-np.pi / 2, -np.pi / 4) + + +@register_object +class YellowBook(TurbosquidObjects): + def __init__( + self, + name="yellow_book", + obj_name="yellow_book", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.rotation = (-np.pi / 2, -np.pi / 4) + + +@register_object +class RedCoffeeMug(TurbosquidObjects): + def __init__( + self, + name="red_coffee_mug", + obj_name="red_coffee_mug", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.rotation = (-np.pi / 2, -np.pi / 2) + + +@register_object +class DeskCaddy(TurbosquidObjects): + def __init__( + self, + name="desk_caddy", + obj_name="desk_caddy", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + + +@register_object +class PorcelainMug(TurbosquidObjects): + def __init__( + self, + name="porcelain_mug", + obj_name="porcelain_mug", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.rotation = (-np.pi / 2, -np.pi / 2) + + +@register_object +class WhiteYellowMug(TurbosquidObjects): + def __init__( + self, + name="white_yellow_mug", + obj_name="white_yellow_mug", + joints=[dict(type="free", damping="0.0005")], + ): + super().__init__(name, obj_name, joints) + self.rotation = (-np.pi / 2, -np.pi / 2) diff --git a/openpi/third_party/libero/libero/libero/envs/predicates/__init__.py b/openpi/third_party/libero/libero/libero/envs/predicates/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f4c4ea790e11e43c28a391e5a4d92525a502b490 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/predicates/__init__.py @@ -0,0 +1,35 @@ +from .base_predicates import * + + +VALIDATE_PREDICATE_FN_DICT = { + "true": TruePredicateFn(), + "false": FalsePredicateFn(), + "in": In(), + # "incontact": InContactPredicateFn(), + "on": On(), + "up": Up(), + # "stack": Stack(), + # "temporal": TemporalPredicate(), + "printjointstate": PrintJointState(), + "open": Open(), + "close": Close(), + "turnon": TurnOn(), + "turnoff": TurnOff(), +} + + +def update_predicate_fn_dict(fn_key, fn_name): + VALIDATE_PREDICATE_FN_DICT.update({fn_key: eval(fn_name)()}) + + +def eval_predicate_fn(predicate_fn_name, *args): + assert predicate_fn_name in VALIDATE_PREDICATE_FN_DICT + return VALIDATE_PREDICATE_FN_DICT[predicate_fn_name](*args) + + +def get_predicate_fn_dict(): + return VALIDATE_PREDICATE_FN_DICT + + +def get_predicate_fn(predicate_fn_name): + return VALIDATE_PREDICATE_FN_DICT[predicate_fn_name.lower()] diff --git a/openpi/third_party/libero/libero/libero/envs/predicates/base_predicates.py b/openpi/third_party/libero/libero/libero/envs/predicates/base_predicates.py new file mode 100644 index 0000000000000000000000000000000000000000..b8cc0299ba4a53a37ab809db5bcf32eda249865e --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/predicates/base_predicates.py @@ -0,0 +1,118 @@ +from typing import List + + +class Expression: + def __init__(self): + raise NotImplementedError + + def __call__(self): + raise NotImplementedError + + +class UnaryAtomic(Expression): + def __init__(self): + pass + + def __call__(self, arg1): + raise NotImplementedError + + +class BinaryAtomic(Expression): + def __init__(self): + pass + + def __call__(self, arg1, arg2): + raise NotImplementedError + + +class MultiarayAtomic(Expression): + def __init__(self): + pass + + def __call__(self, *args): + raise NotImplementedError + + +class TruePredicateFn(MultiarayAtomic): + def __init__(self): + super().__init__() + + def __call__(self, *args): + return True + + +class FalsePredicateFn(MultiarayAtomic): + def __init__(self): + super().__init__() + + def __call__(self, *args): + return False + + +class InContactPredicateFn(BinaryAtomic): + def __call__(self, arg1, arg2): + return arg1.check_contact(arg2) + + +class In(BinaryAtomic): + def __call__(self, arg1, arg2): + return arg2.check_contact(arg1) and arg2.check_contain(arg1) + + +class On(BinaryAtomic): + def __call__(self, arg1, arg2): + return arg2.check_ontop(arg1) + + # if arg2.object_state_type == "site": + # return arg2.check_ontop(arg1) + # else: + # obj_1_pos = arg1.get_geom_state()["pos"] + # obj_2_pos = arg2.get_geom_state()["pos"] + # # arg1.on_top_of(arg2) ? + # # TODO (Yfeng): Add checking of center of mass are in the same regions + # if obj_1_pos[2] >= obj_2_pos[2] and arg2.check_contact(arg1): + # return True + # else: + # return False + + +class Up(BinaryAtomic): + def __call__(self, arg1): + return arg1.get_geom_state()["pos"][2] >= 1.0 + + +class Stack(BinaryAtomic): + def __call__(self, arg1, arg2): + return ( + arg1.check_contact(arg2) + and arg2.check_contain(arg1) + and arg1.get_geom_state()["pos"][2] > arg2.get_geom_state()["pos"][2] + ) + + +class PrintJointState(UnaryAtomic): + """This is a debug predicate to allow you print the joint values of the object you care""" + + def __call__(self, arg): + print(arg.get_joint_state()) + return True + + +class Open(UnaryAtomic): + def __call__(self, arg): + return arg.is_open() + + +class Close(UnaryAtomic): + def __call__(self, arg): + return arg.is_close() + + +class TurnOn(UnaryAtomic): + def __call__(self, arg): + return arg.turn_on() + + +class TurnOff(UnaryAtomic): + def __call__(self, arg): + return arg.turn_off() diff --git a/openpi/third_party/libero/libero/libero/envs/problems/__init__.py b/openpi/third_party/libero/libero/libero/envs/problems/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..055bd33546b74c917d2c0d7384967ec4eb8c3e2f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/problems/__init__.py @@ -0,0 +1,8 @@ +from .libero_tabletop_manipulation import Libero_Tabletop_Manipulation +from .libero_coffee_table_manipulation import Libero_Coffee_Table_Manipulation +from .libero_floor_manipulation import Libero_Floor_Manipulation +from .libero_study_tabletop_manipulation import Libero_Study_Tabletop_Manipulation +from .libero_living_room_tabletop_manipulation import ( + Libero_Living_Room_Tabletop_Manipulation, +) +from .libero_kitchen_tabletop_manipulation import Libero_Kitchen_Tabletop_Manipulation diff --git a/openpi/third_party/libero/libero/libero/envs/problems/libero_coffee_table_manipulation.py b/openpi/third_party/libero/libero/libero/envs/problems/libero_coffee_table_manipulation.py new file mode 100644 index 0000000000000000000000000000000000000000..39f193a8f2d9ca023983c08dac20ab12e70d67b2 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/problems/libero_coffee_table_manipulation.py @@ -0,0 +1,210 @@ +from robosuite.utils.mjcf_utils import new_site + +from libero.libero.envs.bddl_base_domain import BDDLBaseDomain, register_problem +from libero.libero.envs.robots import * +from libero.libero.envs.objects import * +from libero.libero.envs.predicates import * +from libero.libero.envs.regions import * +from libero.libero.envs.utils import rectangle2xyrange + + +@register_problem +class Libero_Coffee_Table_Manipulation(BDDLBaseDomain): + def __init__(self, bddl_file_name, *args, **kwargs): + self.workspace_name = "coffee_table" + self.visualization_sites_list = [] + if "coffee_table_full_size" in kwargs: + self.coffee_table_full_size = coffee_table_full_size + else: + self.coffee_table_full_size = (0.70, 1.6, 0.024) + self.coffee_table_offset = (0, 0, 0.41) + # For z offset of environment fixtures + self.z_offset = 0.01 - self.coffee_table_full_size[2] + kwargs.update( + {"robots": [f"OnTheGround{robot_name}" for robot_name in kwargs["robots"]]} + ) + kwargs.update({"workspace_offset": self.coffee_table_offset}) + kwargs.update({"arena_type": "coffee_table"}) + kwargs.update( + { + "scene_xml": "scenes/libero_coffee_table_base_style.xml", + "scene_properties": { + "floor_style": "wood-plank", + "wall_style": "light-gray-plaster", + }, + } + ) + + super().__init__(bddl_file_name, *args, **kwargs) + + def _load_fixtures_in_arena(self, mujoco_arena): + """Nothing extra to load in this simple problem.""" + for fixture_category in list(self.parsed_problem["fixtures"].keys()): + if fixture_category == "coffee_table": + continue + + for fixture_instance in self.parsed_problem["fixtures"][fixture_category]: + self.fixtures_dict[fixture_instance] = get_object_fn(fixture_category)( + name=fixture_instance, + joints=None, + ) + + def _load_objects_in_arena(self, mujoco_arena): + objects_dict = self.parsed_problem["objects"] + for category_name in objects_dict.keys(): + for object_name in objects_dict[category_name]: + self.objects_dict[object_name] = get_object_fn(category_name)( + name=object_name + ) + + def _load_sites_in_arena(self, mujoco_arena): + # Create site objects + object_sites_dict = {} + region_dict = self.parsed_problem["regions"] + for object_region_name in list(region_dict.keys()): + + if "coffee_table" in object_region_name: + ranges = region_dict[object_region_name]["ranges"][0] + assert ranges[2] >= ranges[0] and ranges[3] >= ranges[1] + zone_size = ((ranges[2] - ranges[0]) / 2, (ranges[3] - ranges[1]) / 2) + zone_centroid_xy = ( + (ranges[2] + ranges[0]) / 2, + (ranges[3] + ranges[1]) / 2, + ) + target_zone = TargetZone( + name=object_region_name, + rgba=region_dict[object_region_name]["rgba"], + zone_size=zone_size, + zone_centroid_xy=zone_centroid_xy, + ) + object_sites_dict[object_region_name] = target_zone + + mujoco_arena.coffee_table_body.append( + new_site( + name=target_zone.name, + pos=target_zone.pos, + quat=target_zone.quat, + rgba=target_zone.rgba, + size=target_zone.size, + type="box", + ) + ) + continue + # Otherwise the processing is consistent + for query_dict in [self.objects_dict, self.fixtures_dict]: + for (name, body) in query_dict.items(): + try: + if "worldbody" not in list(body.__dict__.keys()): + # This is a special case for CompositeObject, we skip this as this is very rare in our benchmark + continue + except: + continue + for part in body.worldbody.find("body").findall(".//body"): + sites = part.findall(".//site") + joints = part.findall("./joint") + if sites == []: + break + for site in sites: + site_name = site.get("name") + if site_name == object_region_name: + object_sites_dict[object_region_name] = SiteObject( + name=site_name, + parent_name=body.name, + joints=[joint.get("name") for joint in joints], + size=site.get("size"), + rgba=site.get("rgba"), + site_type=site.get("type"), + site_pos=site.get("pos"), + site_quat=site.get("quat"), + object_properties=body.object_properties, + ) + self.object_sites_dict = object_sites_dict + + # Keep track of visualization objects + for query_dict in [self.fixtures_dict, self.objects_dict]: + for name, body in query_dict.items(): + if body.object_properties["vis_site_names"] != {}: + self.visualization_sites_list.append(name) + + def _add_placement_initializer(self): + """Very simple implementation at the moment. Will need to upgrade for other relations later.""" + super()._add_placement_initializer() + + def _check_success(self): + """ + Check if the goal is achieved. Consider conjunction goals at the moment + """ + goal_state = self.parsed_problem["goal_state"] + result = True + for state in goal_state: + result = self._eval_predicate(state) and result + return result + + def _eval_predicate(self, state): + if len(state) == 3: + # Checking binary logical predicates + predicate_fn_name = state[0] + object_1_name = state[1] + object_2_name = state[2] + return eval_predicate_fn( + predicate_fn_name, + self.object_states_dict[object_1_name], + self.object_states_dict[object_2_name], + ) + elif len(state) == 2: + # Checking unary logical predicates + predicate_fn_name = state[0] + object_name = state[1] + return eval_predicate_fn( + predicate_fn_name, self.object_states_dict[object_name] + ) + + def _setup_references(self): + super()._setup_references() + + def _post_process(self): + super()._post_process() + + self.set_visualization() + + def set_visualization(self): + + for object_name in self.visualization_sites_list: + for _, (site_name, site_visible) in ( + self.get_object(object_name).object_properties["vis_site_names"].items() + ): + vis_g_id = self.sim.model.site_name2id(site_name) + if ((self.sim.model.site_rgba[vis_g_id][3] <= 0) and site_visible) or ( + (self.sim.model.site_rgba[vis_g_id][3] > 0) and not site_visible + ): + # We toggle the alpha value + self.sim.model.site_rgba[vis_g_id][3] = ( + 1 - self.sim.model.site_rgba[vis_g_id][3] + ) + + def _setup_camera(self, mujoco_arena): + mujoco_arena.set_camera( + camera_name="agentview", pos=[1.5, 0.0, 0.9], quat=[0.56, 0.43, 0.43, 0.56] + ) + mujoco_arena.set_camera( + camera_name="galleryview", + pos=[2.844547668904445, 2.1279684793440667, 3.128616846013882], + quat=[ + 0.42261379957199097, + 0.23374411463737488, + 0.41646939516067505, + 0.7702690958976746, + ], + ) + + # robosuite's default agentview camera configuration + mujoco_arena.set_camera( + camera_name="canonical_agentview", + pos=[0.5386131746834771, 0.0, 0.7903500240372423], + quat=[ + 0.6380177736282349, + 0.3048497438430786, + 0.30484986305236816, + 0.6380177736282349, + ], + ) diff --git a/openpi/third_party/libero/libero/libero/envs/problems/libero_floor_manipulation.py b/openpi/third_party/libero/libero/libero/envs/problems/libero_floor_manipulation.py new file mode 100644 index 0000000000000000000000000000000000000000..c054c48912b95fddc3e4e2d713847eb692ba172a --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/problems/libero_floor_manipulation.py @@ -0,0 +1,209 @@ +from robosuite.utils.mjcf_utils import new_site + +from libero.libero.envs.bddl_base_domain import BDDLBaseDomain, register_problem +from libero.libero.envs.robots import * +from libero.libero.envs.objects import * +from libero.libero.envs.predicates import * +from libero.libero.envs.regions import * +from libero.libero.envs.utils import rectangle2xyrange + + +@register_problem +class Libero_Floor_Manipulation(BDDLBaseDomain): + def __init__(self, bddl_file_name, *args, **kwargs): + self.workspace_name = "floor" + self.visualization_sites_list = [] + self.floor_offset = (0, 0, -0.035) + + self.z_offset = -0.025 + kwargs.update( + {"robots": [f"OnTheGround{robot_name}" for robot_name in kwargs["robots"]]} + ) + kwargs.update({"workspace_offset": self.floor_offset}) + kwargs.update({"arena_type": "floor"}) + + if "scene_xml" not in kwargs or kwargs["scene_xml"] is None: + kwargs.update({"scene_xml": "scenes/libero_floor_base_style.xml"}) + if "scene_properties" not in kwargs or kwargs["scene_properties"] is None: + kwargs.update( + { + "scene_properties": { + "floor_style": "light-gray", + "wall_style": "light-gray-plaster", + } + } + ) + + super().__init__(bddl_file_name, *args, **kwargs) + + def _load_fixtures_in_arena(self, mujoco_arena): + """Nothing extra to load in this simple problem.""" + for fixture_category in list(self.parsed_problem["fixtures"].keys()): + if fixture_category == "floor": + continue + + for fixture_instance in self.parsed_problem["fixtures"][fixture_category]: + self.fixtures_dict[fixture_instance] = get_object_fn(fixture_category)( + name=fixture_instance, + joints=None, + ) + + def _load_objects_in_arena(self, mujoco_arena): + objects_dict = self.parsed_problem["objects"] + for category_name in objects_dict.keys(): + for object_name in objects_dict[category_name]: + self.objects_dict[object_name] = get_object_fn(category_name)( + name=object_name + ) + + def _load_sites_in_arena(self, mujoco_arena): + # Create site objects + object_sites_dict = {} + region_dict = self.parsed_problem["regions"] + for object_region_name in list(region_dict.keys()): + + if "floor" in object_region_name: + ranges = region_dict[object_region_name]["ranges"][0] + assert ranges[2] >= ranges[0] and ranges[3] >= ranges[1] + zone_size = ((ranges[2] - ranges[0]) / 2, (ranges[3] - ranges[1]) / 2) + zone_centroid_xy = ( + (ranges[2] + ranges[0]) / 2, + (ranges[3] + ranges[1]) / 2, + ) + target_zone = TargetZone( + name=object_region_name, + rgba=region_dict[object_region_name]["rgba"], + zone_size=zone_size, + zone_centroid_xy=zone_centroid_xy, + ) + object_sites_dict[object_region_name] = target_zone + + mujoco_arena.floor_body.append( + new_site( + name=target_zone.name, + pos=target_zone.pos, + quat=target_zone.quat, + rgba=target_zone.rgba, + size=target_zone.size, + type="box", + ) + ) + continue + # Otherwise the processing is consistent + for query_dict in [self.objects_dict, self.fixtures_dict]: + for (name, body) in query_dict.items(): + try: + if "worldbody" not in list(body.__dict__.keys()): + # This is a special case for CompositeObject, we skip this as this is very rare in our benchmark + continue + except: + continue + for part in body.worldbody.find("body").findall(".//body"): + sites = part.findall(".//site") + joints = part.findall("./joint") + if sites == []: + break + for site in sites: + site_name = site.get("name") + if site_name == object_region_name: + object_sites_dict[object_region_name] = SiteObject( + name=site_name, + parent_name=body.name, + joints=[joint.get("name") for joint in joints], + size=site.get("size"), + rgba=site.get("rgba"), + site_type=site.get("type"), + site_pos=site.get("pos"), + site_quat=site.get("quat"), + object_properties=body.object_properties, + ) + self.object_sites_dict = object_sites_dict + + # Keep track of visualization objects + for query_dict in [self.fixtures_dict, self.objects_dict]: + for name, body in query_dict.items(): + if body.object_properties["vis_site_names"] != {}: + self.visualization_sites_list.append(name) + + def _add_placement_initializer(self): + """Very simple implementation at the moment. Will need to upgrade for other relations later.""" + super()._add_placement_initializer() + + def _check_success(self): + """ + Check if the goal is achieved. Consider conjunction goals at the moment + """ + goal_state = self.parsed_problem["goal_state"] + result = True + for state in goal_state: + result = self._eval_predicate(state) and result + return result + + def _eval_predicate(self, state): + if len(state) == 3: + # Checking binary logical predicates + predicate_fn_name = state[0] + object_1_name = state[1] + object_2_name = state[2] + return eval_predicate_fn( + predicate_fn_name, + self.object_states_dict[object_1_name], + self.object_states_dict[object_2_name], + ) + elif len(state) == 2: + # Checking unary logical predicates + predicate_fn_name = state[0] + object_name = state[1] + return eval_predicate_fn( + predicate_fn_name, self.object_states_dict[object_name] + ) + + def _setup_references(self): + super()._setup_references() + + def _post_process(self): + super()._post_process() + + self.set_visualization() + + def set_visualization(self): + + for object_name in self.visualization_sites_list: + for _, (site_name, site_visible) in ( + self.get_object(object_name).object_properties["vis_site_names"].items() + ): + vis_g_id = self.sim.model.site_name2id(site_name) + if ((self.sim.model.site_rgba[vis_g_id][3] <= 0) and site_visible) or ( + (self.sim.model.site_rgba[vis_g_id][3] > 0) and not site_visible + ): + # We toggle the alpha value + self.sim.model.site_rgba[vis_g_id][3] = ( + 1 - self.sim.model.site_rgba[vis_g_id][3] + ) + + def _setup_camera(self, mujoco_arena): + mujoco_arena.set_camera( + camera_name="agentview", + pos=[0.8965773716836134, 5.216182733499864e-07, 0.65], + quat=[ + 0.6182166934013367, + 0.3432307541370392, + 0.3432314395904541, + 0.6182177066802979, + ], + ) + + # For visualization purpose + mujoco_arena.set_camera( + camera_name="frontview", pos=[1.0, 0.0, 0.65], quat=[0.56, 0.43, 0.43, 0.56] + ) + mujoco_arena.set_camera( + camera_name="galleryview", + pos=[2.844547668904445, 2.1279684793440667, 3.128616846013882], + quat=[ + 0.42261379957199097, + 0.23374411463737488, + 0.41646939516067505, + 0.7702690958976746, + ], + ) diff --git a/openpi/third_party/libero/libero/libero/envs/problems/libero_kitchen_tabletop_manipulation.py b/openpi/third_party/libero/libero/libero/envs/problems/libero_kitchen_tabletop_manipulation.py new file mode 100644 index 0000000000000000000000000000000000000000..a7fd5fb37ba5e92eddde309d12841f231ce51da5 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/problems/libero_kitchen_tabletop_manipulation.py @@ -0,0 +1,218 @@ +from robosuite.utils.mjcf_utils import new_site + +from libero.libero.envs.bddl_base_domain import BDDLBaseDomain, register_problem +from libero.libero.envs.robots import * +from libero.libero.envs.objects import * +from libero.libero.envs.predicates import * +from libero.libero.envs.regions import * +from libero.libero.envs.utils import rectangle2xyrange + + +@register_problem +class Libero_Kitchen_Tabletop_Manipulation(BDDLBaseDomain): + def __init__(self, bddl_file_name, *args, **kwargs): + self.workspace_name = "kitchen_table" + self.visualization_sites_list = [] + if "table_full_size" in kwargs: + self.kitchen_table_full_size = table_full_size + else: + self.kitchen_table_full_size = (1.0, 1.2, 0.05) + self.kitchen_table_offset = (0.0, 0, 0.90) + # For z offset of environment fixtures + self.z_offset = 0.01 - self.kitchen_table_full_size[2] + kwargs.update( + {"robots": [f"Mounted{robot_name}" for robot_name in kwargs["robots"]]} + ) + kwargs.update({"workspace_offset": self.kitchen_table_offset}) + kwargs.update({"arena_type": "kitchen"}) + if "scene_xml" not in kwargs or kwargs["scene_xml"] is None: + kwargs.update( + {"scene_xml": "scenes/libero_kitchen_tabletop_base_style.xml"} + ) + if "scene_properties" not in kwargs or kwargs["scene_properties"] is None: + kwargs.update( + { + "scene_properties": { + "floor_style": "gray-ceramic", + "wall_style": "yellow-linen", + } + } + ) + + super().__init__(bddl_file_name, *args, **kwargs) + + def _load_fixtures_in_arena(self, mujoco_arena): + """Nothing extra to load in this simple problem.""" + for fixture_category in list(self.parsed_problem["fixtures"].keys()): + if fixture_category == "kitchen_table": + continue + for fixture_instance in self.parsed_problem["fixtures"][fixture_category]: + self.fixtures_dict[fixture_instance] = get_object_fn(fixture_category)( + name=fixture_instance, + joints=None, + ) + + def _load_objects_in_arena(self, mujoco_arena): + objects_dict = self.parsed_problem["objects"] + for category_name in objects_dict.keys(): + for object_name in objects_dict[category_name]: + self.objects_dict[object_name] = get_object_fn(category_name)( + name=object_name + ) + + def _load_sites_in_arena(self, mujoco_arena): + # Create site objects + object_sites_dict = {} + region_dict = self.parsed_problem["regions"] + for object_region_name in list(region_dict.keys()): + + if "kitchen_table" in object_region_name: + ranges = region_dict[object_region_name]["ranges"][0] + assert ranges[2] >= ranges[0] and ranges[3] >= ranges[1] + zone_size = ((ranges[2] - ranges[0]) / 2, (ranges[3] - ranges[1]) / 2) + zone_centroid_xy = ( + (ranges[2] + ranges[0]) / 2 + self.workspace_offset[0], + (ranges[3] + ranges[1]) / 2 + self.workspace_offset[1], + ) + target_zone = TargetZone( + name=object_region_name, + rgba=region_dict[object_region_name]["rgba"], + zone_size=zone_size, + z_offset=self.workspace_offset[2], + zone_centroid_xy=zone_centroid_xy, + ) + object_sites_dict[object_region_name] = target_zone + mujoco_arena.table_body.append( + new_site( + name=target_zone.name, + pos=target_zone.pos + np.array([0.0, 0.0, -0.90]), + quat=target_zone.quat, + rgba=target_zone.rgba, + size=target_zone.size, + type="box", + ) + ) + continue + # Otherwise the processing is consistent + for query_dict in [self.objects_dict, self.fixtures_dict]: + for (name, body) in query_dict.items(): + try: + if "worldbody" not in list(body.__dict__.keys()): + # This is a special case for CompositeObject, we skip this as this is very rare in our benchmark + continue + except: + continue + for part in body.worldbody.find("body").findall(".//body"): + sites = part.findall(".//site") + joints = part.findall("./joint") + if sites == []: + break + for site in sites: + site_name = site.get("name") + if site_name == object_region_name: + object_sites_dict[object_region_name] = SiteObject( + name=site_name, + parent_name=body.name, + joints=[joint.get("name") for joint in joints], + size=site.get("size"), + rgba=site.get("rgba"), + site_type=site.get("type"), + site_pos=site.get("pos"), + site_quat=site.get("quat"), + object_properties=body.object_properties, + ) + self.object_sites_dict = object_sites_dict + + # Keep track of visualization objects + for query_dict in [self.fixtures_dict, self.objects_dict]: + for name, body in query_dict.items(): + if body.object_properties["vis_site_names"] != {}: + self.visualization_sites_list.append(name) + + def _add_placement_initializer(self): + """Very simple implementation at the moment. Will need to upgrade for other relations later.""" + super()._add_placement_initializer() + + def _check_success(self): + """ + Check if the goal is achieved. Consider conjunction goals at the moment + """ + goal_state = self.parsed_problem["goal_state"] + result = True + for state in goal_state: + result = self._eval_predicate(state) and result + return result + + def _eval_predicate(self, state): + if len(state) == 3: + # Checking binary logical predicates + predicate_fn_name = state[0] + object_1_name = state[1] + object_2_name = state[2] + return eval_predicate_fn( + predicate_fn_name, + self.object_states_dict[object_1_name], + self.object_states_dict[object_2_name], + ) + elif len(state) == 2: + # Checking unary logical predicates + predicate_fn_name = state[0] + object_name = state[1] + return eval_predicate_fn( + predicate_fn_name, self.object_states_dict[object_name] + ) + + def _setup_references(self): + super()._setup_references() + + def _post_process(self): + super()._post_process() + + self.set_visualization() + + def set_visualization(self): + + for object_name in self.visualization_sites_list: + for _, (site_name, site_visible) in ( + self.get_object(object_name).object_properties["vis_site_names"].items() + ): + vis_g_id = self.sim.model.site_name2id(site_name) + if ((self.sim.model.site_rgba[vis_g_id][3] <= 0) and site_visible) or ( + (self.sim.model.site_rgba[vis_g_id][3] > 0) and not site_visible + ): + # We toggle the alpha value + self.sim.model.site_rgba[vis_g_id][3] = ( + 1 - self.sim.model.site_rgba[vis_g_id][3] + ) + + def _setup_camera(self, mujoco_arena): + mujoco_arena.set_camera( + camera_name="agentview", + pos=[0.6586131746834771, 0.0, 1.6103500240372423], + quat=[ + 0.6380177736282349, + 0.3048497438430786, + 0.30484986305236816, + 0.6380177736282349, + ], + ) + + # For visualization purpose + mujoco_arena.set_camera( + camera_name="frontview", pos=[1.0, 0.0, 1.48], quat=[0.56, 0.43, 0.43, 0.56] + ) + mujoco_arena.set_camera( + camera_name="galleryview", + pos=[2.844547668904445, 2.1279684793440667, 3.128616846013882], + quat=[ + 0.42261379957199097, + 0.23374411463737488, + 0.41646939516067505, + 0.7702690958976746, + ], + ) + mujoco_arena.set_camera( + camera_name="paperview", + pos=[2.1, 0.535, 2.075], + quat=[0.513, 0.353, 0.443, 0.645], + ) diff --git a/openpi/third_party/libero/libero/libero/envs/problems/libero_living_room_tabletop_manipulation.py b/openpi/third_party/libero/libero/libero/envs/problems/libero_living_room_tabletop_manipulation.py new file mode 100644 index 0000000000000000000000000000000000000000..3af12d6622a9ddcd02353cdce8dbbc8b0eae07a0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/problems/libero_living_room_tabletop_manipulation.py @@ -0,0 +1,218 @@ +from robosuite.utils.mjcf_utils import new_site + +from libero.libero.envs.bddl_base_domain import BDDLBaseDomain, register_problem +from libero.libero.envs.robots import * +from libero.libero.envs.objects import * +from libero.libero.envs.predicates import * +from libero.libero.envs.regions import * +from libero.libero.envs.utils import rectangle2xyrange + + +@register_problem +class Libero_Living_Room_Tabletop_Manipulation(BDDLBaseDomain): + def __init__(self, bddl_file_name, *args, **kwargs): + self.workspace_name = "living_room_table" + self.visualization_sites_list = [] + if "living_room_table_full_size" in kwargs: + self.living_room_table_full_size = living_room_table_full_size + else: + self.living_room_table_full_size = (0.70, 1.6, 0.024) + self.living_room_table_offset = (0, 0, 0.41) + # For z offset of environment fixtures + self.z_offset = 0.01 - self.living_room_table_full_size[2] + kwargs.update( + {"robots": [f"OnTheGround{robot_name}" for robot_name in kwargs["robots"]]} + ) + kwargs.update({"workspace_offset": self.living_room_table_offset}) + kwargs.update({"arena_type": "living_room"}) + if "scene_xml" not in kwargs or kwargs["scene_xml"] is None: + kwargs.update( + {"scene_xml": "scenes/libero_living_room_tabletop_base_style.xml"} + ) + if "scene_properties" not in kwargs or kwargs["scene_properties"] is None: + kwargs.update( + { + "scene_properties": { + "floor_style": "wood-plank", + "wall_style": "light-gray-plaster", + } + } + ) + + super().__init__(bddl_file_name, *args, **kwargs) + + def _load_fixtures_in_arena(self, mujoco_arena): + """Nothing extra to load in this simple problem.""" + for fixture_category in list(self.parsed_problem["fixtures"].keys()): + if fixture_category == "living_room_table": + continue + for fixture_instance in self.parsed_problem["fixtures"][fixture_category]: + self.fixtures_dict[fixture_instance] = get_object_fn(fixture_category)( + name=fixture_instance, + joints=None, + ) + + def _load_objects_in_arena(self, mujoco_arena): + objects_dict = self.parsed_problem["objects"] + for category_name in objects_dict.keys(): + for object_name in objects_dict[category_name]: + self.objects_dict[object_name] = get_object_fn(category_name)( + name=object_name + ) + + def _load_sites_in_arena(self, mujoco_arena): + # Create site objects + object_sites_dict = {} + region_dict = self.parsed_problem["regions"] + for object_region_name in list(region_dict.keys()): + + if "living_room_table" in object_region_name: + ranges = region_dict[object_region_name]["ranges"][0] + assert ranges[2] >= ranges[0] and ranges[3] >= ranges[1] + zone_size = ((ranges[2] - ranges[0]) / 2, (ranges[3] - ranges[1]) / 2) + zone_centroid_xy = ( + (ranges[2] + ranges[0]) / 2 + self.workspace_offset[0], + (ranges[3] + ranges[1]) / 2 + self.workspace_offset[1], + ) + target_zone = TargetZone( + name=object_region_name, + rgba=region_dict[object_region_name]["rgba"], + zone_size=zone_size, + z_offset=self.workspace_offset[2], + zone_centroid_xy=zone_centroid_xy, + ) + object_sites_dict[object_region_name] = target_zone + mujoco_arena.living_room_table_body.append( + new_site( + name=target_zone.name, + pos=target_zone.pos, + quat=target_zone.quat, + rgba=target_zone.rgba, + size=target_zone.size, + type="box", + ) + ) + continue + # Otherwise the processing is consistent + for query_dict in [self.objects_dict, self.fixtures_dict]: + for (name, body) in query_dict.items(): + try: + if "worldbody" not in list(body.__dict__.keys()): + # This is a special case for CompositeObject, we skip this as this is very rare in our benchmark + continue + except: + continue + for part in body.worldbody.find("body").findall(".//body"): + sites = part.findall(".//site") + joints = part.findall("./joint") + if sites == []: + break + for site in sites: + site_name = site.get("name") + if site_name == object_region_name: + object_sites_dict[object_region_name] = SiteObject( + name=site_name, + parent_name=body.name, + joints=[joint.get("name") for joint in joints], + size=site.get("size"), + rgba=site.get("rgba"), + site_type=site.get("type"), + site_pos=site.get("pos"), + site_quat=site.get("quat"), + object_properties=body.object_properties, + ) + self.object_sites_dict = object_sites_dict + + # Keep track of visualization objects + for query_dict in [self.fixtures_dict, self.objects_dict]: + for name, body in query_dict.items(): + if body.object_properties["vis_site_names"] != {}: + self.visualization_sites_list.append(name) + + def _add_placement_initializer(self): + """Very simple implementation at the moment. Will need to upgrade for other relations later.""" + super()._add_placement_initializer() + + def _check_success(self): + """ + Check if the goal is achieved. Consider conjunction goals at the moment + """ + goal_state = self.parsed_problem["goal_state"] + result = True + for state in goal_state: + result = self._eval_predicate(state) and result + return result + + def _eval_predicate(self, state): + if len(state) == 3: + # Checking binary logical predicates + predicate_fn_name = state[0] + object_1_name = state[1] + object_2_name = state[2] + return eval_predicate_fn( + predicate_fn_name, + self.object_states_dict[object_1_name], + self.object_states_dict[object_2_name], + ) + elif len(state) == 2: + # Checking unary logical predicates + predicate_fn_name = state[0] + object_name = state[1] + return eval_predicate_fn( + predicate_fn_name, self.object_states_dict[object_name] + ) + + def _setup_references(self): + super()._setup_references() + + def _post_process(self): + super()._post_process() + + self.set_visualization() + + def set_visualization(self): + + for object_name in self.visualization_sites_list: + for _, (site_name, site_visible) in ( + self.get_object(object_name).object_properties["vis_site_names"].items() + ): + vis_g_id = self.sim.model.site_name2id(site_name) + if ((self.sim.model.site_rgba[vis_g_id][3] <= 0) and site_visible) or ( + (self.sim.model.site_rgba[vis_g_id][3] > 0) and not site_visible + ): + # We toggle the alpha value + self.sim.model.site_rgba[vis_g_id][3] = ( + 1 - self.sim.model.site_rgba[vis_g_id][3] + ) + + def _setup_camera(self, mujoco_arena): + mujoco_arena.set_camera( + camera_name="agentview", + pos=[0.6065773716836134, 0.0, 0.96], + quat=[ + 0.6182166934013367, + 0.3432307541370392, + 0.3432314395904541, + 0.6182177066802979, + ], + ) + + # For visualization purpose + mujoco_arena.set_camera( + camera_name="frontview", pos=[1.5, 0.0, 0.9], quat=[0.56, 0.43, 0.43, 0.56] + ) + mujoco_arena.set_camera( + camera_name="galleryview", + pos=[2.844547668904445, 2.1279684793440667, 3.128616846013882], + quat=[ + 0.42261379957199097, + 0.23374411463737488, + 0.41646939516067505, + 0.7702690958976746, + ], + ) + mujoco_arena.set_camera( + camera_name="paperview", + pos=[2.1, 0.735, 1.875], + quat=[0.513, 0.353, 0.443, 0.645], + ) diff --git a/openpi/third_party/libero/libero/libero/envs/problems/libero_study_tabletop_manipulation.py b/openpi/third_party/libero/libero/libero/envs/problems/libero_study_tabletop_manipulation.py new file mode 100644 index 0000000000000000000000000000000000000000..c125d66cbeb4ca0b6bd1f51befbec1e0fd43f529 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/problems/libero_study_tabletop_manipulation.py @@ -0,0 +1,221 @@ +from robosuite.utils.mjcf_utils import new_site + +from libero.libero.envs.bddl_base_domain import BDDLBaseDomain, register_problem +from libero.libero.envs.robots import * +from libero.libero.envs.objects import * +from libero.libero.envs.predicates import * +from libero.libero.envs.regions import * +from libero.libero.envs.utils import rectangle2xyrange + + +@register_problem +class Libero_Study_Tabletop_Manipulation(BDDLBaseDomain): + def __init__(self, bddl_file_name, *args, **kwargs): + self.workspace_name = "study_table" + self.visualization_sites_list = [] + if "table_full_size" in kwargs: + self.study_table_full_size = table_full_size + else: + self.study_table_full_size = (1.0, 1.2, 0.05) + self.study_table_offset = (-0.2, 0, 0.867) + # For z offset of environment fixtures + self.z_offset = 0.01 - self.study_table_full_size[2] + kwargs.update( + {"robots": [f"Mounted{robot_name}" for robot_name in kwargs["robots"]]} + ) + kwargs.update({"workspace_offset": self.study_table_offset}) + kwargs.update({"arena_type": "study"}) + + if "scene_xml" not in kwargs or kwargs["scene_xml"] is None: + kwargs.update({"scene_xml": "scenes/libero_study_base_style.xml"}) + if "scene_properties" not in kwargs or kwargs["scene_properties"] is None: + kwargs.update( + { + "scene_properties": { + "floor_style": "light-gray", + "wall_style": "light-gray-plaster", + } + } + ) + + super().__init__(bddl_file_name, *args, **kwargs) + + def _load_fixtures_in_arena(self, mujoco_arena): + """Nothing extra to load in this simple problem.""" + for fixture_category in list(self.parsed_problem["fixtures"].keys()): + if fixture_category == "study_table": + continue + + for fixture_instance in self.parsed_problem["fixtures"][fixture_category]: + self.fixtures_dict[fixture_instance] = get_object_fn(fixture_category)( + name=fixture_instance, + joints=None, + ) + + def _load_objects_in_arena(self, mujoco_arena): + objects_dict = self.parsed_problem["objects"] + for category_name in objects_dict.keys(): + for object_name in objects_dict[category_name]: + self.objects_dict[object_name] = get_object_fn(category_name)( + name=object_name + ) + + def _load_sites_in_arena(self, mujoco_arena): + # Create site objects + object_sites_dict = {} + region_dict = self.parsed_problem["regions"] + for object_region_name in list(region_dict.keys()): + + if "study_table" in object_region_name: + ranges = region_dict[object_region_name]["ranges"][0] + assert ranges[2] >= ranges[0] and ranges[3] >= ranges[1] + zone_size = ((ranges[2] - ranges[0]) / 2, (ranges[3] - ranges[1]) / 2) + zone_centroid_xy = ( + (ranges[2] + ranges[0]) / 2 + self.workspace_offset[0], + (ranges[3] + ranges[1]) / 2 + self.workspace_offset[1], + ) + target_zone = TargetZone( + name=object_region_name, + rgba=region_dict[object_region_name]["rgba"], + zone_size=zone_size, + z_offset=self.workspace_offset[2], + zone_centroid_xy=zone_centroid_xy, + ) + object_sites_dict[object_region_name] = target_zone + + mujoco_arena.table_body.append( + new_site( + name=target_zone.name, + pos=target_zone.pos, + quat=target_zone.quat, + rgba=target_zone.rgba, + size=target_zone.size, + type="box", + ) + ) + continue + # Otherwise the processing is consistent + for query_dict in [self.objects_dict, self.fixtures_dict]: + for (name, body) in query_dict.items(): + try: + if "worldbody" not in list(body.__dict__.keys()): + # This is a special case for CompositeObject, we skip this as this is very rare in our benchmark + continue + except: + continue + for part in body.worldbody.find("body").findall(".//body"): + sites = part.findall(".//site") + joints = part.findall("./joint") + if sites == []: + break + for site in sites: + site_name = site.get("name") + if site_name == object_region_name: + object_sites_dict[object_region_name] = SiteObject( + name=site_name, + parent_name=body.name, + joints=[joint.get("name") for joint in joints], + size=site.get("size"), + rgba=site.get("rgba"), + site_type=site.get("type"), + site_pos=site.get("pos"), + site_quat=site.get("quat"), + object_properties=body.object_properties, + ) + self.object_sites_dict = object_sites_dict + + # Keep track of visualization objects + for query_dict in [self.fixtures_dict, self.objects_dict]: + for name, body in query_dict.items(): + if body.object_properties["vis_site_names"] != {}: + self.visualization_sites_list.append(name) + + def _add_placement_initializer(self): + """Very simple implementation at the moment. Will need to upgrade for other relations later.""" + super()._add_placement_initializer() + + def _check_success(self): + """ + Check if the goal is achieved. Consider conjunction goals at the moment + """ + goal_state = self.parsed_problem["goal_state"] + result = True + for state in goal_state: + result = self._eval_predicate(state) and result + # if not result: + # return False + # return True + return result + + def _eval_predicate(self, state): + if len(state) == 3: + # Checking binary logical predicates + predicate_fn_name = state[0] + object_1_name = state[1] + object_2_name = state[2] + return eval_predicate_fn( + predicate_fn_name, + self.object_states_dict[object_1_name], + self.object_states_dict[object_2_name], + ) + elif len(state) == 2: + # Checking unary logical predicates + predicate_fn_name = state[0] + object_name = state[1] + return eval_predicate_fn( + predicate_fn_name, self.object_states_dict[object_name] + ) + + def _setup_references(self): + super()._setup_references() + + def _post_process(self): + super()._post_process() + + self.set_visualization() + + def set_visualization(self): + for object_name in self.visualization_sites_list: + for _, (site_name, site_visible) in ( + self.get_object(object_name).object_properties["vis_site_names"].items() + ): + vis_g_id = self.sim.model.site_name2id(site_name) + if ((self.sim.model.site_rgba[vis_g_id][3] <= 0) and site_visible) or ( + (self.sim.model.site_rgba[vis_g_id][3] > 0) and not site_visible + ): + # We toggle the alpha value + self.sim.model.site_rgba[vis_g_id][3] = ( + 1 - self.sim.model.site_rgba[vis_g_id][3] + ) + + def _setup_camera(self, mujoco_arena): + mujoco_arena.set_camera( + camera_name="agentview", + pos=[0.4586131746834771, 0.0, 1.6103500240372423], + quat=[ + 0.6380177736282349, + 0.3048497438430786, + 0.30484986305236816, + 0.6380177736282349, + ], + ) + + # For visualization purpose + mujoco_arena.set_camera( + camera_name="frontview", pos=[1.0, 0.0, 1.48], quat=[0.56, 0.43, 0.43, 0.56] + ) + mujoco_arena.set_camera( + camera_name="galleryview", + pos=[2.844547668904445, 2.1279684793440667, 3.128616846013882], + quat=[ + 0.42261379957199097, + 0.23374411463737488, + 0.41646939516067505, + 0.7702690958976746, + ], + ) + mujoco_arena.set_camera( + camera_name="paperview", + pos=[2.1, 0.535, 2.075], + quat=[0.513, 0.353, 0.443, 0.645], + ) diff --git a/openpi/third_party/libero/libero/libero/envs/problems/libero_tabletop_manipulation.py b/openpi/third_party/libero/libero/libero/envs/problems/libero_tabletop_manipulation.py new file mode 100644 index 0000000000000000000000000000000000000000..43cd4a8540bac703547c58e99c10c65b622f85b1 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/problems/libero_tabletop_manipulation.py @@ -0,0 +1,212 @@ +from robosuite.utils.mjcf_utils import new_site +from libero.libero.envs.bddl_base_domain import BDDLBaseDomain, register_problem +from libero.libero.envs.robots import * +from libero.libero.envs.objects import * +from libero.libero.envs.predicates import * +from libero.libero.envs.regions import * +from libero.libero.envs.utils import rectangle2xyrange + + +@register_problem +class Libero_Tabletop_Manipulation(BDDLBaseDomain): + def __init__(self, bddl_file_name, *args, **kwargs): + self.workspace_name = "main_table" + self.visualization_sites_list = [] + if "table_full_size" in kwargs: + self.table_full_size = table_full_size + else: + self.table_full_size = (1.0, 1.2, 0.05) + self.table_offset = (0, 0, 0.90) + # For z offset of environment fixtures + self.z_offset = 0.01 - self.table_full_size[2] + kwargs.update( + {"robots": [f"Mounted{robot_name}" for robot_name in kwargs["robots"]]} + ) + kwargs.update({"workspace_offset": self.table_offset}) + kwargs.update({"arena_type": "table"}) + + if "scene_xml" not in kwargs or kwargs["scene_xml"] is None: + kwargs.update({"scene_xml": "scenes/libero_tabletop_base_style.xml"}) + if "scene_properties" not in kwargs or kwargs["scene_properties"] is None: + kwargs.update( + { + "scene_properties": { + "floor_style": "light-gray", + "wall_style": "light-gray-plaster", + } + } + ) + + super().__init__(bddl_file_name, *args, **kwargs) + + def _load_fixtures_in_arena(self, mujoco_arena): + """Nothing extra to load in this simple problem.""" + for fixture_category in list(self.parsed_problem["fixtures"].keys()): + if fixture_category == "table": + continue + + for fixture_instance in self.parsed_problem["fixtures"][fixture_category]: + self.fixtures_dict[fixture_instance] = get_object_fn(fixture_category)( + name=fixture_instance, + joints=None, + ) + + def _load_objects_in_arena(self, mujoco_arena): + objects_dict = self.parsed_problem["objects"] + for category_name in objects_dict.keys(): + for object_name in objects_dict[category_name]: + self.objects_dict[object_name] = get_object_fn(category_name)( + name=object_name + ) + + def _load_sites_in_arena(self, mujoco_arena): + # Create site objects + object_sites_dict = {} + region_dict = self.parsed_problem["regions"] + for object_region_name in list(region_dict.keys()): + + if "main_table" in object_region_name: + ranges = region_dict[object_region_name]["ranges"][0] + assert ranges[2] >= ranges[0] and ranges[3] >= ranges[1] + zone_size = ((ranges[2] - ranges[0]) / 2, (ranges[3] - ranges[1]) / 2) + zone_centroid_xy = ( + (ranges[2] + ranges[0]) / 2, + (ranges[3] + ranges[1]) / 2, + ) + target_zone = TargetZone( + name=object_region_name, + rgba=region_dict[object_region_name]["rgba"], + zone_size=zone_size, + zone_centroid_xy=zone_centroid_xy, + ) + object_sites_dict[object_region_name] = target_zone + + mujoco_arena.table_body.append( + new_site( + name=target_zone.name, + pos=target_zone.pos, + quat=target_zone.quat, + rgba=target_zone.rgba, + size=target_zone.size, + type="box", + ) + ) + continue + # Otherwise the processing is consistent + for query_dict in [self.objects_dict, self.fixtures_dict]: + for (name, body) in query_dict.items(): + try: + if "worldbody" not in list(body.__dict__.keys()): + # This is a special case for CompositeObject, we skip this as this is very rare in our benchmark + continue + except: + continue + for part in body.worldbody.find("body").findall(".//body"): + sites = part.findall(".//site") + joints = part.findall("./joint") + if sites == []: + break + for site in sites: + site_name = site.get("name") + if site_name == object_region_name: + object_sites_dict[object_region_name] = SiteObject( + name=site_name, + parent_name=body.name, + joints=[joint.get("name") for joint in joints], + size=site.get("size"), + rgba=site.get("rgba"), + site_type=site.get("type"), + site_pos=site.get("pos"), + site_quat=site.get("quat"), + object_properties=body.object_properties, + ) + self.object_sites_dict = object_sites_dict + + # Keep track of visualization objects + for query_dict in [self.fixtures_dict, self.objects_dict]: + for name, body in query_dict.items(): + if body.object_properties["vis_site_names"] != {}: + self.visualization_sites_list.append(name) + + def _add_placement_initializer(self): + """Very simple implementation at the moment. Will need to upgrade for other relations later.""" + super()._add_placement_initializer() + + def _check_success(self): + """ + Check if the goal is achieved. Consider conjunction goals at the moment + """ + goal_state = self.parsed_problem["goal_state"] + result = True + for state in goal_state: + result = self._eval_predicate(state) and result + return result + + def _eval_predicate(self, state): + if len(state) == 3: + # Checking binary logical predicates + predicate_fn_name = state[0] + object_1_name = state[1] + object_2_name = state[2] + return eval_predicate_fn( + predicate_fn_name, + self.object_states_dict[object_1_name], + self.object_states_dict[object_2_name], + ) + elif len(state) == 2: + # Checking unary logical predicates + predicate_fn_name = state[0] + object_name = state[1] + return eval_predicate_fn( + predicate_fn_name, self.object_states_dict[object_name] + ) + + def _setup_references(self): + super()._setup_references() + + def _post_process(self): + super()._post_process() + + self.set_visualization() + + def set_visualization(self): + + for object_name in self.visualization_sites_list: + for _, (site_name, site_visible) in ( + self.get_object(object_name).object_properties["vis_site_names"].items() + ): + vis_g_id = self.sim.model.site_name2id(site_name) + if ((self.sim.model.site_rgba[vis_g_id][3] <= 0) and site_visible) or ( + (self.sim.model.site_rgba[vis_g_id][3] > 0) and not site_visible + ): + # We toggle the alpha value + self.sim.model.site_rgba[vis_g_id][3] = ( + 1 - self.sim.model.site_rgba[vis_g_id][3] + ) + + def _setup_camera(self, mujoco_arena): + mujoco_arena.set_camera( + camera_name="agentview", + pos=[0.6586131746834771, 0.0, 1.6103500240372423], + quat=[ + 0.6380177736282349, + 0.3048497438430786, + 0.30484986305236816, + 0.6380177736282349, + ], + ) + + # For visualization purpose + mujoco_arena.set_camera( + camera_name="frontview", pos=[1.0, 0.0, 1.48], quat=[0.56, 0.43, 0.43, 0.56] + ) + mujoco_arena.set_camera( + camera_name="galleryview", + pos=[2.844547668904445, 2.1279684793440667, 3.128616846013882], + quat=[ + 0.42261379957199097, + 0.23374411463737488, + 0.41646939516067505, + 0.7702690958976746, + ], + ) diff --git a/openpi/third_party/libero/libero/libero/envs/regions/__init__.py b/openpi/third_party/libero/libero/libero/envs/regions/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..ca824daf118f6f35af341e721ce8b702b84860ba --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/regions/__init__.py @@ -0,0 +1,42 @@ +from .base_region_sampler import * +from .workspace_region_sampler import * +from .object_property_sampler import * + +""" + +Define different regions for different problem domains. + +Naming convention for registering region smapler: +key: lower-case naming, each word separated by hyphens +value: lower-case naming, {problem_name}.{region_sampler_class_name} + +""" +REGION_SAMPLERS = { + "libero_tabletop_manipulation": {"table": TableRegionSampler}, + "libero_floor_manipulation": {"floor": TableRegionSampler}, + "libero_coffee_table_manipulation": {"coffee_table": TableRegionSampler}, + "libero_living_room_tabletop_manipulation": { + "living_room_table": Libero100TableRegionSampler + }, + "libero_study_tabletop_manipulation": {"study_table": Libero100TableRegionSampler}, + "libero_kitchen_tabletop_manipulation": { + "kitchen_table": Libero100TableRegionSampler + }, +} + + +def update_region_samplers( + problem_name, region_sampler_name, region_sampler_class_name +): + """ + This is for registering customized region samplers without adding to / modifying original codebase. + """ + if problem_name not in REGION_SAMPLERS: + REGION_SAMPLERS[problem_name] = {} + REGION_SAMPLERS[problem_name][region_sampler_name] = eval( + f"{problem_name}.{region_sampler_class_name}" + ) + + +def get_region_samplers(problem_name, region_sampler_name): + return REGION_SAMPLERS[problem_name][region_sampler_name] diff --git a/openpi/third_party/libero/libero/libero/envs/regions/base_region_sampler.py b/openpi/third_party/libero/libero/libero/envs/regions/base_region_sampler.py new file mode 100644 index 0000000000000000000000000000000000000000..b2d9e8a7528defaf863ff0e2e3c42cc56d36f09f --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/regions/base_region_sampler.py @@ -0,0 +1,804 @@ +import collections +import numpy as np +import os +import robosuite +import xml.etree.ElementTree as ET + +from copy import copy +from robosuite.utils.errors import RandomizationError +from robosuite.utils.placement_samplers import ObjectPositionSampler +from robosuite.utils.transform_utils import quat_multiply +import robosuite.utils.transform_utils as T + + +class MultiRegionRandomSampler(ObjectPositionSampler): + """ + Places all objects within the table uniformly random. + Args: + name (str): Name of this sampler. + mujoco_objects (None or MujocoObject or list of MujocoObject): single model or list of MJCF object models + x_range (2-array of float): Specify the (min, max) relative x_range used to uniformly place objects + y_range (2-array of float): Specify the (min, max) relative y_range used to uniformly place objects + rotation (None or float or Iterable): + :`None`: Add uniform random random rotation + :`Iterable (a,b)`: Uniformly randomize rotation angle between a and b (in radians) + :`value`: Add fixed angle rotation + rotation_axis (str): Can be 'x', 'y', or 'z'. Axis about which to apply the requested rotation + ensure_object_boundary_in_range (bool): + :`True`: The center of object is at position: + [uniform(min x_range + radius, max x_range - radius)], [uniform(min x_range + radius, max x_range - radius)] + :`False`: + [uniform(min x_range, max x_range)], [uniform(min x_range, max x_range)] + ensure_valid_placement (bool): If True, will check for correct (valid) object placements + reference_pos (3-array): global (x,y,z) position relative to which sampling will occur + z_offset (float): Add a small z-offset to placements. This is useful for fixed objects + that do not move (i.e. no free joint) to place them above the table. + """ + + def __init__( + self, + name, + mujoco_objects=None, + x_ranges=[(0, 0)], + y_ranges=[(0, 0)], + rotation=None, + rotation_axis="z", + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + reference_pos=(0, 0, 0), + z_offset=0.0, + ): + self.x_ranges = x_ranges + self.y_ranges = y_ranges + assert len(self.x_ranges) == len(self.y_ranges) + self.num_ranges = len(self.x_ranges) + self.rotation = rotation + self.rotation_axis = rotation_axis + self.idx = 0 + + super().__init__( + name=name, + mujoco_objects=mujoco_objects, + ensure_object_boundary_in_range=ensure_object_boundary_in_range, + ensure_valid_placement=ensure_valid_placement, + reference_pos=reference_pos, + z_offset=z_offset, + ) + + def _sample_x(self, object_horizontal_radius): + """ + Samples the x location for a given object + Args: + object_horizontal_radius (float): Radius of the object currently being sampled for + Returns: + float: sampled x position + """ + minimum, maximum = self.x_ranges[self.idx] + if self.ensure_object_boundary_in_range: + minimum += object_horizontal_radius + maximum -= object_horizontal_radius + return np.random.uniform(high=maximum, low=minimum) + + def _sample_y(self, object_horizontal_radius): + """ + Samples the y location for a given object + Args: + object_horizontal_radius (float): Radius of the object currently being sampled for + Returns: + float: sampled y position + """ + minimum, maximum = self.y_ranges[self.idx] + if self.ensure_object_boundary_in_range: + minimum += object_horizontal_radius + maximum -= object_horizontal_radius + return np.random.uniform(high=maximum, low=minimum) + + def _sample_quat(self): + """ + Samples the orientation for a given object + Returns: + np.array: sampled (r,p,y) euler angle orientation + Raises: + ValueError: [Invalid rotation axis] + """ + if self.rotation is None: + rot_angle = np.random.uniform(high=2 * np.pi, low=0) + elif isinstance(self.rotation, collections.abc.Iterable): + rot_angle = np.random.uniform( + high=max(self.rotation), low=min(self.rotation) + ) + else: + rot_angle = self.rotation + + if self.rotation_axis == "x": + return np.array([np.cos(rot_angle / 2), np.sin(rot_angle / 2), 0, 0]) + elif self.rotation_axis == "y": + return np.array([np.cos(rot_angle / 2), 0, np.sin(rot_angle / 2), 0]) + elif self.rotation_axis == "z": + return np.array([np.cos(rot_angle / 2), 0, 0, np.sin(rot_angle / 2)]) + else: + # Invalid axis specified, raise error + raise ValueError( + "Invalid rotation axis specified. Must be 'x', 'y', or 'z'. Got: {}".format( + self.rotation_axis + ) + ) + + def sample(self, fixtures=None, reference=None, on_top=True): + """ + Uniformly sample relative to this sampler's reference_pos or @reference (if specified). + Args: + fixtures (dict): dictionary of current object placements in the scene as well as any other relevant + obstacles that should not be in contact with newly sampled objects. Used to make sure newly + generated placements are valid. Should be object names mapped to (pos, quat, MujocoObject) + reference (str or 3-tuple or None): if provided, sample relative placement. Can either be a string, which + corresponds to an existing object found in @fixtures, or a direct (x,y,z) value. If None, will sample + relative to this sampler's `'reference_pos'` value. + on_top (bool): if True, sample placement on top of the reference object. This corresponds to a sampled + z-offset of the current sampled object's bottom_offset + the reference object's top_offset + (if specified) + Return: + dict: dictionary of all object placements, mapping object_names to (pos, quat, obj), including the + placements specified in @fixtures. Note quat is in (w,x,y,z) form + Raises: + RandomizationError: [Cannot place all objects] + AssertionError: [Reference object name does not exist, invalid inputs] + """ + # Standardize inputs + placed_objects = {} if fixtures is None else copy(fixtures) + if reference is None: + base_offset = self.reference_pos + elif type(reference) is str: + assert ( + reference in placed_objects + ), "Invalid reference received. Current options are: {}, requested: {}".format( + placed_objects.keys(), reference + ) + ref_pos, ref_quat, ref_obj = placed_objects[reference] + base_offset = np.array(ref_pos) + if on_top: + base_offset += np.array((0, 0, ref_obj.top_offset[-1])) + else: + base_offset = np.array(reference) + assert ( + base_offset.shape[0] == 3 + ), "Invalid reference received. Should be (x,y,z) 3-tuple, but got: {}".format( + base_offset + ) + + # Sample pos and quat for all objects assigned to this sampler + for obj in self.mujoco_objects: + # First make sure the currently sampled object hasn't already been sampled + assert ( + obj.name not in placed_objects + ), "Object '{}' has already been sampled!".format(obj.name) + + horizontal_radius = obj.horizontal_radius + bottom_offset = obj.bottom_offset + success = False + for i in range(5000): # 5000 retries + self.idx = np.random.randint(self.num_ranges) + object_x = self._sample_x(horizontal_radius) + base_offset[0] + object_y = self._sample_y(horizontal_radius) + base_offset[1] + object_z = self.z_offset + base_offset[2] + if on_top: + object_z -= bottom_offset[-1] + + # objects cannot overlap + location_valid = True + if self.ensure_valid_placement: + for (x, y, z), _, other_obj in placed_objects.values(): + if ( + np.linalg.norm((object_x - x, object_y - y)) + <= other_obj.horizontal_radius + horizontal_radius + ) and ( + object_z - z <= other_obj.top_offset[-1] - bottom_offset[-1] + ): + location_valid = False + break + + if location_valid: + # random rotation + quat = self._sample_quat() + + # multiply this quat by the object's initial rotation if it has the attribute specified + if hasattr(obj, "init_quat"): + quat = quat_multiply(quat, obj.init_quat) + + # location is valid, put the object down + pos = (object_x, object_y, object_z) + placed_objects[obj.name] = (pos, quat, obj) + success = True + break + + if not success: + raise RandomizationError("Cannot place all objects ):") + + return placed_objects + + +class SiteRegionRandomSampler(ObjectPositionSampler): + """ + Places all objects on a site + Args: + name (str): Name of this sampler. + mujoco_objects (None or MujocoObject or list of MujocoObject): single model or list of MJCF object models + x_range (2-array of float): Specify the (min, max) relative x_range used to uniformly place objects + y_range (2-array of float): Specify the (min, max) relative y_range used to uniformly place objects + rotation (None or float or Iterable): + :`None`: Add uniform random random rotation + :`Iterable (a,b)`: Uniformly randomize rotation angle between a and b (in radians) + :`value`: Add fixed angle rotation + rotation_axis (str): Can be 'x', 'y', or 'z'. Axis about which to apply the requested rotation + ensure_object_boundary_in_range (bool): + :`True`: The center of object is at position: + [uniform(min x_range + radius, max x_range - radius)], [uniform(min x_range + radius, max x_range - radius)] + :`False`: + [uniform(min x_range, max x_range)], [uniform(min x_range, max x_range)] + ensure_valid_placement (bool): If True, will check for correct (valid) object placements + reference_pos (3-array): global (x,y,z) position relative to which sampling will occur + z_offset (float): Add a small z-offset to placements. This is useful for fixed objects + that do not move (i.e. no free joint) to place them above the table. + """ + + def __init__( + self, + name, + mujoco_objects=None, + x_ranges=[(0, 0)], + y_ranges=[(0, 0)], + rotation=None, + rotation_axis="z", + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + reference_pos=(0, 0, 0), + z_offset=0.0, + sim=None, + ): + self.x_ranges = x_ranges + self.y_ranges = y_ranges + assert len(self.x_ranges) == len(self.y_ranges) + self.num_ranges = len(self.x_ranges) + self.rotation = rotation + self.rotation_axis = rotation_axis + self.idx = 0 + self.sim = sim + super().__init__( + name=name, + mujoco_objects=mujoco_objects, + ensure_object_boundary_in_range=ensure_object_boundary_in_range, + ensure_valid_placement=ensure_valid_placement, + reference_pos=reference_pos, + z_offset=z_offset, + ) + + def _sample_x(self, object_horizontal_radius): + """ + Samples the x location for a given object + Args: + object_horizontal_radius (float): Radius of the object currently being sampled for + Returns: + float: sampled x position + """ + minimum, maximum = self.x_ranges[self.idx] + if self.ensure_object_boundary_in_range: + minimum += object_horizontal_radius + maximum -= object_horizontal_radius + return np.random.uniform(high=maximum, low=minimum) + + def _sample_y(self, object_horizontal_radius): + """ + Samples the y location for a given object + Args: + object_horizontal_radius (float): Radius of the object currently being sampled for + Returns: + float: sampled y position + """ + minimum, maximum = self.y_ranges[self.idx] + if self.ensure_object_boundary_in_range: + minimum += object_horizontal_radius + maximum -= object_horizontal_radius + return np.random.uniform(high=maximum, low=minimum) + + def _sample_quat(self): + """ + Samples the orientation for a given object + Add multiple rotation options + Returns: + np.array: sampled (r,p,y) euler angle orientation + Raises: + ValueError: [Invalid rotation axis] + """ + if self.rotation is None: + rot_angle = np.random.uniform(high=2 * np.pi, low=0) + elif isinstance(self.rotation, tuple) or isinstance(self.rotation, list): + rot_angle = np.random.uniform( + high=max(self.rotation), low=min(self.rotation) + ) + # multiple rotations + elif isinstance(self.rotation, dict): + quat = np.array( + [0.0, 0.0, 0.0, 1.0] + ) # \theta=0, in robosuite, quat = (x, y, z), w + for i in range(len(self.rotation.keys())): + rotation_axis = list(self.rotation.keys())[i] + rot_angle = np.random.uniform( + high=max(self.rotation[rotation_axis]), + low=min(self.rotation[rotation_axis]), + ) + + if rotation_axis == "x": + current_quat = np.array( + [np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "y": + current_quat = np.array( + [0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "z": + current_quat = np.array( + [0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)] + ) + + quat = quat_multiply(current_quat, quat) + + return quat + else: + rot_angle = self.rotation + + # Return angle based on axis requested + if self.rotation_axis == "x": + return np.array([np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "y": + return np.array([0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "z": + return np.array([0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)]) + else: + # Invalid axis specified, raise error + raise ValueError( + "Invalid rotation axis specified. Must be 'x', 'y', or 'z'. Got: {}".format( + self.rotation_axis + ) + ) + + def sample(self, sim, fixtures=None, reference=None, site_name="", on_top=True): + """ + Uniformly sample relative to this sampler's reference_pos or @reference (if specified). + Args: + fixtures (dict): dictionary of current object placements in the scene as well as any other relevant + obstacles that should not be in contact with newly sampled objects. Used to make sure newly + generated placements are valid. Should be object names mapped to (pos, quat, MujocoObject) + reference (str or 3-tuple or None): if provided, sample relative placement. Can either be a string, which + corresponds to an existing object found in @fixtures, or a direct (x,y,z) value. If None, will sample + relative to this sampler's `'reference_pos'` value. + on_top (bool): if True, sample placement on top of the reference object. This corresponds to a sampled + z-offset of the current sampled object's bottom_offset + the reference object's top_offset + (if specified) + Return: + dict: dictionary of all object placements, mapping object_names to (pos, quat, obj), including the + placements specified in @fixtures. Note quat is in (w,x,y,z) form + Raises: + RandomizationError: [Cannot place all objects] + AssertionError: [Reference object name does not exist, invalid inputs] + """ + # Standardize inputs + placed_objects = {} if fixtures is None else copy(fixtures) + if reference is None: + base_offset = self.reference_pos + elif type(reference) is str: + assert ( + reference in placed_objects + ), "Invalid reference received. Current options are: {}, requested: {}".format( + placed_objects.keys(), reference + ) + ref_pos, ref_quat, ref_obj = placed_objects[reference] + base_offset = np.array(ref_pos) + if on_top: + base_offset += np.array((0, 0, ref_obj.top_offset[-1])) + else: + base_offset = np.array(reference) + assert ( + base_offset.shape[0] == 3 + ), "Invalid reference received. Should be (x,y,z) 3-tuple, but got: {}".format( + base_offset + ) + + # Sample pos and quat for all objects assigned to this sampler + for obj in self.mujoco_objects: + # First make sure the currently sampled object hasn't already been sampled + assert ( + obj.name not in placed_objects + ), "Object '{}' has already been sampled!".format(obj.name) + + horizontal_radius = obj.horizontal_radius + bottom_offset = obj.bottom_offset + success = False + site_x, site_y, site_z = T.quat2mat( + T.convert_quat(ref_quat, to="xyzw") + ) @ sim.data.get_site_xpos(site_name) + for i in range(5000): # 5000 retries + self.idx = np.random.randint(self.num_ranges) + object_x = self._sample_x(horizontal_radius) + base_offset[0] + site_x + object_y = self._sample_y(horizontal_radius) + base_offset[1] + site_y + object_z = self.z_offset + base_offset[2] + site_z + if on_top: + object_z -= bottom_offset[-1] + + # objects cannot overlap + location_valid = True + if self.ensure_valid_placement: + for (x, y, z), _, other_obj in placed_objects.values(): + if ( + np.linalg.norm((object_x - x, object_y - y)) + <= other_obj.horizontal_radius + horizontal_radius + ) and ( + object_z - z <= other_obj.top_offset[-1] - bottom_offset[-1] + ): + location_valid = False + break + + if location_valid: + # random rotation + quat = self._sample_quat() + # multiply this quat by the object's initial rotation if it has the attribute specified + if hasattr(obj, "init_quat"): + quat = quat_multiply(quat, obj.init_quat) + + # location is valid, put the object down + pos = (object_x, object_y, object_z) + placed_objects[obj.name] = (pos, quat, obj) + success = True + break + + if not success: + raise RandomizationError("Cannot place all objects ):") + + return placed_objects + + +class InSiteRegionRandomSampler(SiteRegionRandomSampler): + """ + Places an object inside a site + Args: + name (str): Name of this sampler. + mujoco_objects (None or MujocoObject or list of MujocoObject): single model or list of MJCF object models + x_range (2-array of float): Specify the (min, max) relative x_range used to uniformly place objects + y_range (2-array of float): Specify the (min, max) relative y_range used to uniformly place objects + rotation (None or float or Iterable): + :`None`: Add uniform random random rotation + :`Iterable (a,b)`: Uniformly randomize rotation angle between a and b (in radians) + :`value`: Add fixed angle rotation + rotation_axis (str): Can be 'x', 'y', or 'z'. Axis about which to apply the requested rotation + ensure_object_boundary_in_range (bool): + :`True`: The center of object is at position: + [uniform(min x_range + radius, max x_range - radius)], [uniform(min x_range + radius, max x_range - radius)] + :`False`: + [uniform(min x_range, max x_range)], [uniform(min x_range, max x_range)] + ensure_valid_placement (bool): If True, will check for correct (valid) object placements + reference_pos (3-array): global (x,y,z) position relative to which sampling will occur + z_offset (float): Add a small z-offset to placements. This is useful for fixed objects + that do not move (i.e. no free joint) to place them above the table. + """ + + def __init__( + self, + name, + mujoco_objects=None, + x_ranges=[(0, 0)], + y_ranges=[(0, 0)], + rotation=None, + rotation_axis="z", + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + reference_pos=(0, 0, 0), + z_offset=0.0, + ): + + super().__init__( + name=name, + mujoco_objects=mujoco_objects, + ensure_object_boundary_in_range=ensure_object_boundary_in_range, + x_ranges=x_ranges, + y_ranges=y_ranges, + rotation=rotation, + rotation_axis=rotation_axis, + ensure_valid_placement=ensure_valid_placement, + reference_pos=reference_pos, + z_offset=z_offset, + ) + + def _sample_quat(self): + """ + Samples the orientation for a given object + Add multiple rotation options + Returns: + np.array: sampled (r,p,y) euler angle orientation + Raises: + ValueError: [Invalid rotation axis] + """ + if self.rotation is None: + rot_angle = np.random.uniform(high=2 * np.pi, low=0) + elif isinstance(self.rotation, tuple) or isinstance(self.rotation, list): + rot_angle = np.random.uniform( + high=max(self.rotation), low=min(self.rotation) + ) + # multiple rotations + elif isinstance(self.rotation, dict): + quat = np.array( + [0.0, 0.0, 0.0, 1.0] + ) # \theta=0, in robosuite, quat = (x, y, z), w + for i in range(len(self.rotation.keys())): + rotation_axis = list(self.rotation.keys())[i] + rot_angle = np.random.uniform( + high=max(self.rotation[rotation_axis]), + low=min(self.rotation[rotation_axis]), + ) + + if rotation_axis == "x": + current_quat = np.array( + [np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "y": + current_quat = np.array( + [0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "z": + current_quat = np.array( + [0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)] + ) + + quat = quat_multiply(current_quat, quat) + + return quat + else: + rot_angle = self.rotation + + # Return angle based on axis requested + if self.rotation_axis == "x": + return np.array([np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "y": + return np.array([0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "z": + return np.array([0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)]) + else: + # Invalid axis specified, raise error + raise ValueError( + "Invalid rotation axis specified. Must be 'x', 'y', or 'z'. Got: {}".format( + self.rotation_axis + ) + ) + + def sample(self, sim, fixtures=None, reference=None, site_name="", on_top=True): + """ + Uniformly sample relative to this sampler's reference_pos or @reference (if specified). + Args: + fixtures (dict): dictionary of current object placements in the scene as well as any other relevant + obstacles that should not be in contact with newly sampled objects. Used to make sure newly + generated placements are valid. Should be object names mapped to (pos, quat, MujocoObject) + reference (str or 3-tuple or None): if provided, sample relative placement. Can either be a string, which + corresponds to an existing object found in @fixtures, or a direct (x,y,z) value. If None, will sample + relative to this sampler's `'reference_pos'` value. + on_top (bool): if True, sample placement on top of the reference object. This corresponds to a sampled + z-offset of the current sampled object's bottom_offset + the reference object's top_offset + (if specified) + Return: + dict: dictionary of all object placements, mapping object_names to (pos, quat, obj), including the + placements specified in @fixtures. Note quat is in (w,x,y,z) form + Raises: + RandomizationError: [Cannot place all objects] + AssertionError: [Reference object name does not exist, invalid inputs] + """ + # Standardize inputs + placed_objects = {} if fixtures is None else copy(fixtures) + if reference is None: + base_offset = self.reference_pos + elif type(reference) is str: + assert ( + reference in placed_objects + ), "Invalid reference received. Current options are: {}, requested: {}".format( + placed_objects.keys(), reference + ) + ref_pos, ref_quat, ref_obj = placed_objects[reference] + base_offset = np.array(ref_pos) + # if on_top: + # base_offset += np.array((0, 0, ref_obj.top_offset[-1])) + else: + base_offset = np.array(reference) + assert ( + base_offset.shape[0] == 3 + ), "Invalid reference received. Should be (x,y,z) 3-tuple, but got: {}".format( + base_offset + ) + + # Sample pos and quat for all objects assigned to this sampler + for obj in self.mujoco_objects: + # First make sure the currently sampled object hasn't already been sampled + assert ( + obj.name not in placed_objects + ), "Object '{}' has already been sampled!".format(obj.name) + + horizontal_radius = obj.horizontal_radius + bottom_offset = obj.bottom_offset + success = False + site_x, site_y, site_z = T.quat2mat( + T.convert_quat(ref_quat, to="xyzw") + ) @ sim.data.get_site_xpos(site_name) + for i in range(5000): # 5000 retries + self.idx = np.random.randint(self.num_ranges) + object_x = self._sample_x(0) + base_offset[0] + site_x + object_y = self._sample_y(0) + base_offset[1] + site_y + object_z = self.z_offset + base_offset[2] + site_z + if on_top: + object_z -= bottom_offset[-1] + + # objects cannot overlap + location_valid = True + if self.ensure_valid_placement: + for (x, y, z), _, other_obj in placed_objects.values(): + if ( + np.linalg.norm((object_x - x, object_y - y)) + <= other_obj.horizontal_radius + horizontal_radius + ) and ( + object_z - z <= other_obj.top_offset[-1] - bottom_offset[-1] + ): + location_valid = False + break + + if location_valid: + # random rotation + quat = self._sample_quat() + + # multiply this quat by the object's initial rotation if it has the attribute specified + if hasattr(obj, "init_quat"): + quat = quat_multiply(quat, obj.init_quat) + + # location is valid, put the object down + pos = (object_x, object_y, object_z) + placed_objects[obj.name] = (pos, quat, obj) + success = True + break + + if not success: + import pdb + + pdb.set_trace() + raise RandomizationError("Cannot place all objects ):") + + return placed_objects + + +class SiteSequentialCompositeSampler(ObjectPositionSampler): + """ + Samples position for each object sequentially. Allows chaining + multiple placement initializers together - so that object locations can + be sampled on top of other objects or relative to other object placements. + Args: + name (str): Name of this sampler. + """ + + def __init__(self, name): + # Samplers / args will be filled in later + self.samplers = collections.OrderedDict() + self.sample_args = collections.OrderedDict() + + super().__init__(name=name) + + def append_sampler(self, sampler, sample_args=None): + """ + Adds a new placement initializer with corresponding @sampler and arguments + Args: + sampler (ObjectPositionSampler): sampler to add + sample_args (None or dict): If specified, should be additional arguments to pass to @sampler's sample() + call. Should map corresponding sampler's arguments to values (excluding @fixtures argument) + Raises: + AssertionError: [Object name in samplers] + """ + # Verify that all added mujoco objects haven't already been added, and add to this sampler's objects dict + for obj in sampler.mujoco_objects: + assert ( + obj not in self.mujoco_objects + ), f"Object '{obj.name}' already has sampler associated with it!" + self.mujoco_objects.append(obj) + self.samplers[sampler.name] = sampler + self.sample_args[sampler.name] = sample_args + + def hide(self, mujoco_objects): + """ + Helper method to remove an object from the workspace. + Args: + mujoco_objects (MujocoObject or list of MujocoObject): Object(s) to hide + """ + sampler = UniformRandomSampler( + name="HideSampler", + mujoco_objects=mujoco_objects, + x_range=[-10, -20], + y_range=[-10, -20], + rotation=[0, 0], + rotation_axis="z", + z_offset=10, + ensure_object_boundary_in_range=False, + ensure_valid_placement=False, + ) + self.append_sampler(sampler=sampler) + + def add_objects(self, mujoco_objects): + """ + Override super method to make sure user doesn't call this (all objects should implicitly belong to sub-samplers) + """ + raise AttributeError( + "add_objects() should not be called for SequentialCompsiteSamplers!" + ) + + def add_objects_to_sampler(self, sampler_name, mujoco_objects): + """ + Adds specified @mujoco_objects to sub-sampler with specified @sampler_name. + Args: + sampler_name (str): Existing sub-sampler name + mujoco_objects (MujocoObject or list of MujocoObject): Object(s) to add + """ + # First verify that all mujoco objects haven't already been added, and add to this sampler's objects dict + mujoco_objects = ( + [mujoco_objects] + if isinstance(mujoco_objects, MujocoObject) + else mujoco_objects + ) + for obj in mujoco_objects: + assert ( + obj not in self.mujoco_objects + ), f"Object '{obj.name}' already has sampler associated with it!" + self.mujoco_objects.append(obj) + # Make sure sampler_name exists + assert sampler_name in self.samplers.keys(), ( + "Invalid sub-sampler specified, valid options are: {}, " + "requested: {}".format(self.samplers.keys(), sampler_name) + ) + # Add the mujoco objects to the requested sub-sampler + self.samplers[sampler_name].add_objects(mujoco_objects) + + def reset(self): + """ + Resets this sampler. In addition to base method, iterates over all sub-samplers and resets them + """ + super().reset() + for sampler in self.samplers.values(): + sampler.reset() + + def sample(self, sim, fixtures=None, reference=None, on_top=True): + """ + Sample from each placement initializer sequentially, in the order + that they were appended. + Args: + fixtures (dict): dictionary of current object placements in the scene as well as any other relevant + obstacles that should not be in contact with newly sampled objects. Used to make sure newly + generated placements are valid. Should be object names mapped to (pos, quat, MujocoObject) + reference (str or 3-tuple or None): if provided, sample relative placement. This will override each + sampler's @reference argument if not already specified. Can either be a string, which + corresponds to an existing object found in @fixtures, or a direct (x,y,z) value. If None, will sample + relative to this sampler's `'reference_pos'` value. + on_top (bool): if True, sample placement on top of the reference object. This will override each + sampler's @on_top argument if not already specified. This corresponds to a sampled + z-offset of the current sampled object's bottom_offset + the reference object's top_offset + (if specified) + Return: + dict: dictionary of all object placements, mapping object_names to (pos, quat, obj), including the + placements specified in @fixtures. Note quat is in (w,x,y,z) form + Raises: + RandomizationError: [Cannot place all objects] + """ + # Standardize inputs + placed_objects = {} if fixtures is None else copy(fixtures) + + # Iterate through all samplers to sample + for sampler, s_args in zip(self.samplers.values(), self.sample_args.values()): + # Pre-process sampler args + if s_args is None: + s_args = {} + for arg_name, arg in zip(("reference", "on_top"), (reference, on_top)): + if arg_name not in s_args: + s_args[arg_name] = arg + # Run sampler + new_placements = sampler.sample(sim=sim, fixtures=placed_objects, **s_args) + # Update placements + placed_objects.update(new_placements) + + return placed_objects diff --git a/openpi/third_party/libero/libero/libero/envs/regions/object_property_sampler.py b/openpi/third_party/libero/libero/libero/envs/regions/object_property_sampler.py new file mode 100644 index 0000000000000000000000000000000000000000..ef3b81ec9a2128d4e8428c181d1d1f6dc6488252 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/regions/object_property_sampler.py @@ -0,0 +1,117 @@ +import collections +import numpy as np +import os +import robosuite +import xml.etree.ElementTree as ET + +from copy import copy + +from robosuite.models.objects import MujocoObject + + +class ObjectPropertySampler: + """ + Base class of object placement sampler. + Args: + name (str): Name of this sampler. + mujoco_objects (None or MujocoObject or list of MujocoObject): single model or list of MJCF object models + ensure_object_boundary_in_range (bool): If True, will ensure that the object is enclosed within a given boundary + (should be implemented by subclass) + ensure_valid_placement (bool): If True, will check for correct (valid) object placements + reference_pos (3-array): global (x,y,z) position relative to which sampling will occur + z_offset (float): Add a small z-offset to placements. This is useful for fixed objects + that do not move (i.e. no free joint) to place them above the table. + """ + + def __init__( + self, + name, + mujoco_objects=None, + ): + # Setup attributes + self.name = name + if mujoco_objects is None: + self.mujoco_objects = [] + else: + # Shallow copy the list so we don't modify the inputted list but still keep the object references + self.mujoco_objects = ( + [mujoco_objects] + if isinstance(mujoco_objects, MujocoObject) + else copy(mujoco_objects) + ) + + def add_objects(self, mujoco_objects): + """ + Add additional objects to this sampler. Checks to make sure there's no identical objects already stored. + Args: + mujoco_objects (MujocoObject or list of MujocoObject): single model or list of MJCF object models + """ + mujoco_objects = ( + [mujoco_objects] + if isinstance(mujoco_objects, MujocoObject) + else mujoco_objects + ) + for obj in mujoco_objects: + assert ( + obj not in self.mujoco_objects + ), "Object '{}' already in sampler!".format(obj.name) + self.mujoco_objects.append(obj) + + def reset(self): + """ + Resets this sampler. Removes all mujoco objects from this sampler. + """ + self.mujoco_objects = [] + + def sample(self, predicate_name=None): + """ + Uniformly sample on a surface (not necessarily table surface). + Args: + fixtures (dict): dictionary of current object placements in the scene as well as any other relevant + obstacles that should not be in contact with newly sampled objects. Used to make sure newly + generated placements are valid. Should be object names mapped to (pos, quat, MujocoObject) + reference (str or 3-tuple or None): if provided, sample relative placement. Can either be a string, which + corresponds to an existing object found in @fixtures, or a direct (x,y,z) value. If None, will sample + relative to this sampler's `'reference_pos'` value. + on_top (bool): if True, sample placement on top of the reference object. + Return: + dict: dictionary of all object placements, mapping object_names to (pos, quat, obj), including the + placements specified in @fixtures. Note quat is in (w,x,y,z) form + """ + raise NotImplementedError + + +class OpenCloseSampler(ObjectPropertySampler): + def __init__( + self, + name, + state_type, + mujoco_objects=None, + joint_ranges=(0.0, 0.0), + ): + assert state_type in ["open", "close"] + self.state_type = state_type + self.joint_ranges = joint_ranges + assert self.joint_ranges[0] <= self.joint_ranges[1] + super().__init__(name, mujoco_objects) + + def sample(self): + return np.random.uniform(high=self.joint_ranges[1], low=self.joint_ranges[0]) + + +class TurnOnOffSampler(ObjectPropertySampler): + def __init__( + self, + name, + state_type, + mujoco_objects=None, + joint_ranges=(0.0, 0.0), + ): + assert state_type in ["turnon", "turnoff"] + self.state_type = state_type + self.joint_ranges = joint_ranges + assert self.joint_ranges[0] <= self.joint_ranges[1] + super().__init__(name, mujoco_objects) + + def sample(self): + return np.random.uniform(high=self.joint_ranges[1], low=self.joint_ranges[0]) diff --git a/openpi/third_party/libero/libero/libero/envs/regions/workspace_region_sampler.py b/openpi/third_party/libero/libero/libero/envs/regions/workspace_region_sampler.py new file mode 100644 index 0000000000000000000000000000000000000000..0972ea2df251deb1fa2c4fb400d06db2882243e3 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/regions/workspace_region_sampler.py @@ -0,0 +1,274 @@ +import numpy as np + +from .base_region_sampler import MultiRegionRandomSampler +from robosuite.utils.transform_utils import quat_multiply + + +class TableRegionSampler(MultiRegionRandomSampler): + def __init__( + self, + object_name, + mujoco_objects=None, + x_ranges=None, + y_ranges=None, + rotation=(np.pi / 2, np.pi / 2), + rotation_axis="z", + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + reference_pos=(0, 0, 0), + z_offset=0.01, + ): + name = f"table-middle-{object_name}" + super().__init__( + object_name, + mujoco_objects, + x_ranges, + y_ranges, + rotation, + rotation_axis, + ensure_object_boundary_in_range, + ensure_valid_placement, + reference_pos, + z_offset, + ) + + def _sample_quat(self): + """ + Samples the orientation for a given object + Add multiple rotation options + Returns: + np.array: sampled (r,p,y) euler angle orientation + Raises: + ValueError: [Invalid rotation axis] + """ + if self.rotation is None: + rot_angle = np.random.uniform(high=2 * np.pi, low=0) + elif isinstance(self.rotation, tuple) or isinstance(self.rotation, list): + rot_angle = np.random.uniform( + high=max(self.rotation), low=min(self.rotation) + ) + # multiple rotations + elif isinstance(self.rotation, dict): + quat = np.array( + [0.0, 0.0, 0.0, 1.0] + ) # \theta=0, in robosuite, quat = (x, y, z), w + for i in range(len(self.rotation.keys())): + rotation_axis = list(self.rotation.keys())[i] + rot_angle = np.random.uniform( + high=max(self.rotation[rotation_axis]), + low=min(self.rotation[rotation_axis]), + ) + + if rotation_axis == "x": + current_quat = np.array( + [np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "y": + current_quat = np.array( + [0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "z": + current_quat = np.array( + [0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)] + ) + + quat = quat_multiply(current_quat, quat) + + return quat + else: + rot_angle = self.rotation + + # Return angle based on axis requested + if self.rotation_axis == "x": + return np.array([np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "y": + return np.array([0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "z": + return np.array([0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)]) + else: + # Invalid axis specified, raise error + raise ValueError( + "Invalid rotation axis specified. Must be 'x', 'y', or 'z'. Got: {}".format( + self.rotation_axis + ) + ) + + +class Libero100TableRegionSampler(MultiRegionRandomSampler): + def __init__( + self, + object_name, + mujoco_objects=None, + x_ranges=None, + y_ranges=None, + rotation=(np.pi / 2, np.pi / 2), + rotation_axis="z", + ensure_object_boundary_in_range=False, + ensure_valid_placement=True, + reference_pos=(0, 0, 0), + z_offset=0.01, + ): + name = f"table-middle-{object_name}" + super().__init__( + object_name, + mujoco_objects, + x_ranges, + y_ranges, + rotation, + rotation_axis, + ensure_object_boundary_in_range, + ensure_valid_placement, + reference_pos, + z_offset, + ) + + def _sample_quat(self): + """ + Samples the orientation for a given object + Add multiple rotation options + Returns: + np.array: sampled (r,p,y) euler angle orientation + Raises: + ValueError: [Invalid rotation axis] + """ + if self.rotation is None: + rot_angle = np.random.uniform(high=2 * np.pi, low=0) + elif isinstance(self.rotation, tuple) or isinstance(self.rotation, list): + rot_angle = np.random.uniform( + high=max(self.rotation), low=min(self.rotation) + ) + # multiple rotations + elif isinstance(self.rotation, dict): + quat = np.array( + [0.0, 0.0, 0.0, 1.0] + ) # \theta=0, in robosuite, quat = (x, y, z), w + for i in range(len(self.rotation.keys())): + rotation_axis = list(self.rotation.keys())[i] + rot_angle = np.random.uniform( + high=max(self.rotation[rotation_axis]), + low=min(self.rotation[rotation_axis]), + ) + + if rotation_axis == "x": + current_quat = np.array( + [np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "y": + current_quat = np.array( + [0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "z": + current_quat = np.array( + [0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)] + ) + + quat = quat_multiply(current_quat, quat) + + return quat + else: + rot_angle = self.rotation + + # Return angle based on axis requested + if self.rotation_axis == "x": + return np.array([np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "y": + return np.array([0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "z": + return np.array([0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)]) + else: + # Invalid axis specified, raise error + raise ValueError( + "Invalid rotation axis specified. Must be 'x', 'y', or 'z'. Got: {}".format( + self.rotation_axis + ) + ) + + +class ObjectBasedSampler(MultiRegionRandomSampler): + def __init__( + self, + object_name, + mujoco_objects=None, + x_ranges=None, + y_ranges=None, + rotation=(np.pi / 2, np.pi / 2), + rotation_axis="z", + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + reference_pos=(0, 0, 0), + z_offset=0.01, + ): + name = f"table-middle-{object_name}" + super().__init__( + object_name, + mujoco_objects, + x_ranges, + y_ranges, + rotation, + rotation_axis, + ensure_object_boundary_in_range, + ensure_valid_placement, + reference_pos, + z_offset, + ) + + def _sample_quat(self): + """ + Samples the orientation for a given object + Add multiple rotation options + Returns: + np.array: sampled (r,p,y) euler angle orientation + Raises: + ValueError: [Invalid rotation axis] + """ + if self.rotation is None: + rot_angle = np.random.uniform(high=2 * np.pi, low=0) + elif isinstance(self.rotation, tuple) or isinstance(self.rotation, list): + rot_angle = np.random.uniform( + high=max(self.rotation), low=min(self.rotation) + ) + # multiple rotations + elif isinstance(self.rotation, dict): + quat = np.array( + [0.0, 0.0, 0.0, 1.0] + ) # \theta=0, in robosuite, quat = (x, y, z), w + for i in range(len(self.rotation.keys())): + rotation_axis = list(self.rotation.keys())[i] + rot_angle = np.random.uniform( + high=max(self.rotation[rotation_axis]), + low=min(self.rotation[rotation_axis]), + ) + + if rotation_axis == "x": + current_quat = np.array( + [np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "y": + current_quat = np.array( + [0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)] + ) + elif rotation_axis == "z": + current_quat = np.array( + [0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)] + ) + + quat = quat_multiply(current_quat, quat) + + return quat + else: + rot_angle = self.rotation + + # Return angle based on axis requested + if self.rotation_axis == "x": + return np.array([np.sin(rot_angle / 2), 0, 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "y": + return np.array([0, np.sin(rot_angle / 2), 0, np.cos(rot_angle / 2)]) + elif self.rotation_axis == "z": + return np.array([0, 0, np.sin(rot_angle / 2), np.cos(rot_angle / 2)]) + else: + # Invalid axis specified, raise error + raise ValueError( + "Invalid rotation axis specified. Must be 'x', 'y', or 'z'. Got: {}".format( + self.rotation_axis + ) + ) diff --git a/openpi/third_party/libero/libero/libero/envs/robots/__init__.py b/openpi/third_party/libero/libero/libero/envs/robots/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..41071c7516f0e29574f9e74a86c0e91c5815d556 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/robots/__init__.py @@ -0,0 +1,12 @@ +from .mounted_panda import MountedPanda +from .on_the_ground_panda import OnTheGroundPanda + +from robosuite.robots.single_arm import SingleArm +from robosuite.robots import ROBOT_CLASS_MAPPING + +ROBOT_CLASS_MAPPING.update( + { + "MountedPanda": SingleArm, + "OnTheGroundPanda": SingleArm, + } +) diff --git a/openpi/third_party/libero/libero/libero/envs/robots/mounted_panda.py b/openpi/third_party/libero/libero/libero/envs/robots/mounted_panda.py new file mode 100644 index 0000000000000000000000000000000000000000..6c21f872853767c1f6ea0f6995e29cf1a662f5da --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/robots/mounted_panda.py @@ -0,0 +1,60 @@ +import numpy as np + +from robosuite.models.robots.manipulators.manipulator_model import ManipulatorModel +from robosuite.utils.mjcf_utils import xml_path_completion + + +class MountedPanda(ManipulatorModel): + """ + Panda is a sensitive single-arm robot designed by Franka. + Args: + idn (int or str): Number or some other unique identification string for this robot instance + """ + + def __init__(self, idn=0): + super().__init__(xml_path_completion("robots/panda/robot.xml"), idn=idn) + + # Set joint damping + self.set_joint_attribute( + attrib="damping", values=np.array((0.1, 0.1, 0.1, 0.1, 0.1, 0.01, 0.01)) + ) + + @property + def default_mount(self): + return "RethinkMount" + + @property + def default_gripper(self): + return "PandaGripper" + + @property + def default_controller_config(self): + return "default_panda" + + @property + def init_qpos(self): + return np.array( + [0, -1.61037389e-01, 0.00, -2.44459747e00, 0.00, 2.22675220e00, np.pi / 4] + ) + + @property + def base_xpos_offset(self): + return { + "bins": (-0.5, -0.1, 0), + "empty": (-0.6, 0, 0), + "table": lambda table_length: (-0.16 - table_length / 2, 0, 0), + "study_table": lambda table_length: (-0.25 - table_length / 2, 0, 0), + "kitchen_table": lambda table_length: (-0.16 - table_length / 2, 0, 0), + } + + @property + def top_offset(self): + return np.array((0, 0, 1.0)) + + @property + def _horizontal_radius(self): + return 0.5 + + @property + def arm_type(self): + return "single" diff --git a/openpi/third_party/libero/libero/libero/envs/robots/on_the_ground_panda.py b/openpi/third_party/libero/libero/libero/envs/robots/on_the_ground_panda.py new file mode 100644 index 0000000000000000000000000000000000000000..f7a8c55178fa647c6d4b6102d0ca4bc7f6c9aeaf --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/robots/on_the_ground_panda.py @@ -0,0 +1,64 @@ +import numpy as np + +from robosuite.models.robots.manipulators.manipulator_model import ManipulatorModel +from robosuite.utils.mjcf_utils import xml_path_completion + + +class OnTheGroundPanda(ManipulatorModel): + """ + Panda is a sensitive single-arm robot designed by Franka. + Args: + idn (int or str): Number or some other unique identification string for this robot instance + """ + + def __init__(self, idn=0): + super().__init__(xml_path_completion("robots/panda/robot.xml"), idn=idn) + + # Set joint damping + self.set_joint_attribute( + attrib="damping", values=np.array((0.1, 0.1, 0.1, 0.1, 0.1, 0.01, 0.01)) + ) + + @property + def default_mount(self): + return None + + @property + def default_gripper(self): + return "PandaGripper" + + @property + def default_controller_config(self): + return "default_panda" + + @property + def init_qpos(self): + return np.array( + [0, -1.61037389e-01, 0.00, -2.44459747e00, 0.00, 2.22675220e00, np.pi / 4] + ) + + @property + def base_xpos_offset(self): + return { + "bins": (-0.5, -0.1, 0), + "empty": (-0.6, 0, 0), + "table": lambda table_length: (-0.16 - table_length / 2, 0, 0), + "coffee_table": lambda table_length: (-0.16 - table_length / 2, 0, 0.41), + "living_room_table": lambda table_length: ( + -0.16 - table_length / 2, + 0, + 0.42, + ), + } + + @property + def top_offset(self): + return np.array((0, 0, 1.0)) + + @property + def _horizontal_radius(self): + return 0.5 + + @property + def arm_type(self): + return "single" diff --git a/openpi/third_party/libero/libero/libero/envs/textures.py b/openpi/third_party/libero/libero/libero/envs/textures.py new file mode 100644 index 0000000000000000000000000000000000000000..de8bfdac3e89c290734055af5877c8375c456199 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/textures.py @@ -0,0 +1,69 @@ +import os +from libero.libero import get_libero_path + +# This is the mapping from texture name to texture file name. Currently this has some duplication with style.py. We will fix this in the future. + +TEXTURE_MAPPING = { + "Porcelain_Floor_1": "grigia_caldera_porcelain_floor.png", + "Gray_Plaster_1": "gray_plaster.png", + "Marble_Floor_1": "marble_floor.png", + "Gray_Floor_1": "gray_floor.png", + "Blue_Wall_1": "dark_blue_wall.png", + "White_Marble_Floor_1": "white_marble_floor.png", + "Gray_Plaster_2": "new_light_gray_plaster.png", + "Wood_Floor_1": "seamless_wood_planks_floor.png", + "Rustic_Floor_1": "rustic_floor.png", + "Gray_Plaster_3": "light-gray-plaster.png", + "Light_Floor_1": "light_floor.png", + "Blue_Wall_2": "canvas_sky_blue.png", + "Dark_Floor_1": "dark_floor_texture.png", + "Beige_Plaster_1": "meeka-beige-plaster.png", + "Gray_Plaster_4": "dark_gray_plaster.png", + "Stucco_Wall_1": "stucco_wall.png", + "Light_Gray_Floor_1": "light-gray-floor-tile.png", + "Wood_Table_1": "martin_novak_wood_table.png", + "Sky_Image_1": "capriccio_sky.png", + "Gray_Ceramic_Tile_1": "gray_ceramic_tile.png", + "Yellow_Linen_Wall_Texture_1": "yellow_linen_wall_texture.png", + "Gray_Floor_2": "dapper_gray_floor.png", + "Ceramic_1": "ceramic.png", + "Cream_Plaster_1": "cream-plaster.png", + "Gray_Plaster_5": "smooth_light_gray_plaster.png", + "White_Wall_1": "white_wall.png", + "Blue_Wall_3": "light_blue_wall.png", + "Porcelain_Floor_2": "tile_grigia_caldera_porcelain_floor.png", + "Brown_Ceramic_Tile_1": "brown_ceramic_tile.png", + "Gray_Wall_1": "gray_wall.png", + "Kona_Gotham_1": "kona_gotham.png", + "Gray_Plaster_6": "light_gray_plaster.png", + "Green_Plaster_Wall_1": "dark_green_plaster_wall.png", + "Gray_Plaster_7": "light_grey_plaster.png", + "Wood_Table_2": "table_light_wood.png", +} + + +def get_texture_file_list(type=None, texture_path="../"): + texture_mapping_dict = {} + path = os.path.join(texture_path, "textures") + for (key, value) in sorted(TEXTURE_MAPPING.items()): + if type.lower() == "table": + # Only those with "table" in the name or no other element name will be included + if "table" in key.lower() or ( + "wall" not in key.lower() and "floor" not in key.lower() + ): + texture_mapping_dict[key] = value + elif type.lower() == "wall": + if "wall" in key.lower() or ( + "table" not in key.lower() and "floor" not in key.lower() + ): + texture_mapping_dict[key] = value + elif type.lower() == "floor": + if "floor" in key.lower() or ( + "wall" not in key.lower() and "table" not in key.lower() + ): + texture_mapping_dict[key] = value + + texture_list = [] + for key, value in texture_mapping_dict.items(): + texture_list.append((key, os.path.join(path, value))) + return texture_list diff --git a/openpi/third_party/libero/libero/libero/envs/utils.py b/openpi/third_party/libero/libero/libero/envs/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..2a43b73a2825d60db8065db2cc0ae44fa7b5353b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/utils.py @@ -0,0 +1,289 @@ +import collections +import numpy as np +import os +import robosuite +import xml.etree.ElementTree as ET + +from copy import copy +from robosuite.utils.mjcf_utils import find_elements, xml_path_completion +from robosuite.utils.placement_samplers import ObjectPositionSampler + + +class MultiRegionRandomSampler(ObjectPositionSampler): + """ + Places all objects within the table uniformly random. + Args: + name (str): Name of this sampler. + mujoco_objects (None or MujocoObject or list of MujocoObject): single model or list of MJCF object models + x_range (2-array of float): Specify the (min, max) relative x_range used to uniformly place objects + y_range (2-array of float): Specify the (min, max) relative y_range used to uniformly place objects + rotation (None or float or Iterable): + :`None`: Add uniform random random rotation + :`Iterable (a,b)`: Uniformly randomize rotation angle between a and b (in radians) + :`value`: Add fixed angle rotation + rotation_axis (str): Can be 'x', 'y', or 'z'. Axis about which to apply the requested rotation + ensure_object_boundary_in_range (bool): + :`True`: The center of object is at position: + [uniform(min x_range + radius, max x_range - radius)], [uniform(min x_range + radius, max x_range - radius)] + :`False`: + [uniform(min x_range, max x_range)], [uniform(min x_range, max x_range)] + ensure_valid_placement (bool): If True, will check for correct (valid) object placements + reference_pos (3-array): global (x,y,z) position relative to which sampling will occur + z_offset (float): Add a small z-offset to placements. This is useful for fixed objects + that do not move (i.e. no free joint) to place them above the table. + """ + + def __init__( + self, + name, + mujoco_objects=None, + x_ranges=[(0, 0)], + y_ranges=[(0, 0)], + rotation=None, + rotation_axis="z", + ensure_object_boundary_in_range=True, + ensure_valid_placement=True, + reference_pos=(0, 0, 0), + z_offset=0.0, + ): + self.x_ranges = x_ranges + self.y_ranges = y_ranges + assert len(self.x_ranges) == len(self.y_ranges) + self.num_ranges = len(self.x_ranges) + self.idx = 0 + self.rotation = rotation + self.rotation_axis = rotation_axis + self.idx = 0 + + super().__init__( + name=name, + mujoco_objects=mujoco_objects, + ensure_object_boundary_in_range=ensure_object_boundary_in_range, + ensure_valid_placement=ensure_valid_placement, + reference_pos=reference_pos, + z_offset=z_offset, + ) + + def _sample_x(self, object_horizontal_radius): + """ + Samples the x location for a given object + Args: + object_horizontal_radius (float): Radius of the object currently being sampled for + Returns: + float: sampled x position + """ + minimum, maximum = self.x_ranges[self.idx] + if self.ensure_object_boundary_in_range: + minimum += object_horizontal_radius + maximum -= object_horizontal_radius + return np.random.uniform(high=maximum, low=minimum) + + def _sample_y(self, object_horizontal_radius): + """ + Samples the y location for a given object + Args: + object_horizontal_radius (float): Radius of the object currently being sampled for + Returns: + float: sampled y position + """ + minimum, maximum = self.y_ranges[self.idx] + if self.ensure_object_boundary_in_range: + minimum += object_horizontal_radius + maximum -= object_horizontal_radius + return np.random.uniform(high=maximum, low=minimum) + + def _sample_quat(self): + """ + Samples the orientation for a given object + Returns: + np.array: sampled (r,p,y) euler angle orientation + Raises: + ValueError: [Invalid rotation axis] + """ + if self.rotation is None: + rot_angle = np.random.uniform(high=2 * np.pi, low=0) + elif isinstance(self.rotation, collections.Iterable): + rot_angle = np.random.uniform( + high=max(self.rotation), low=min(self.rotation) + ) + else: + rot_angle = self.rotation + + # Return angle based on axis requested + if self.rotation_axis == "x": + return np.array([np.cos(rot_angle / 2), np.sin(rot_angle / 2), 0, 0]) + elif self.rotation_axis == "y": + return np.array([np.cos(rot_angle / 2), 0, np.sin(rot_angle / 2), 0]) + elif self.rotation_axis == "z": + return np.array([np.cos(rot_angle / 2), 0, 0, np.sin(rot_angle / 2)]) + else: + # Invalid axis specified, raise error + raise ValueError( + "Invalid rotation axis specified. Must be 'x', 'y', or 'z'. Got: {}".format( + self.rotation_axis + ) + ) + + def sample(self, fixtures=None, reference=None, on_top=True): + """ + Uniformly sample relative to this sampler's reference_pos or @reference (if specified). + Args: + fixtures (dict): dictionary of current object placements in the scene as well as any other relevant + obstacles that should not be in contact with newly sampled objects. Used to make sure newly + generated placements are valid. Should be object names mapped to (pos, quat, MujocoObject) + reference (str or 3-tuple or None): if provided, sample relative placement. Can either be a string, which + corresponds to an existing object found in @fixtures, or a direct (x,y,z) value. If None, will sample + relative to this sampler's `'reference_pos'` value. + on_top (bool): if True, sample placement on top of the reference object. This corresponds to a sampled + z-offset of the current sampled object's bottom_offset + the reference object's top_offset + (if specified) + Return: + dict: dictionary of all object placements, mapping object_names to (pos, quat, obj), including the + placements specified in @fixtures. Note quat is in (w,x,y,z) form + Raises: + RandomizationError: [Cannot place all objects] + AssertionError: [Reference object name does not exist, invalid inputs] + """ + # Standardize inputs + placed_objects = {} if fixtures is None else copy(fixtures) + if reference is None: + base_offset = self.reference_pos + elif type(reference) is str: + assert ( + reference in placed_objects + ), "Invalid reference received. Current options are: {}, requested: {}".format( + placed_objects.keys(), reference + ) + ref_pos, _, ref_obj = placed_objects[reference] + base_offset = np.array(ref_pos) + if on_top: + base_offset += np.array((0, 0, ref_obj.top_offset[-1])) + else: + base_offset = np.array(reference) + assert ( + base_offset.shape[0] == 3 + ), "Invalid reference received. Should be (x,y,z) 3-tuple, but got: {}".format( + base_offset + ) + + # Sample pos and quat for all objects assigned to this sampler + for obj in self.mujoco_objects: + # First make sure the currently sampled object hasn't already been sampled + assert ( + obj.name not in placed_objects + ), "Object '{}' has already been sampled!".format(obj.name) + + horizontal_radius = obj.horizontal_radius + bottom_offset = obj.bottom_offset + success = False + for i in range(5000): # 5000 retries + self.idx = np.random.randint(self.num_ranges) + object_x = self._sample_x(horizontal_radius) + base_offset[0] + object_y = self._sample_y(horizontal_radius) + base_offset[1] + object_z = self.z_offset + base_offset[2] + if on_top: + object_z -= bottom_offset[-1] + + # objects cannot overlap + location_valid = True + if self.ensure_valid_placement: + for (x, y, z), _, other_obj in placed_objects.values(): + if ( + np.linalg.norm((object_x - x, object_y - y)) + <= other_obj.horizontal_radius + horizontal_radius + ) and ( + object_z - z <= other_obj.top_offset[-1] - bottom_offset[-1] + ): + location_valid = False + break + + if location_valid: + # random rotation + quat = self._sample_quat() + + # multiply this quat by the object's initial rotation if it has the attribute specified + if hasattr(obj, "init_quat"): + quat = quat_multiply(quat, obj.init_quat) + + # location is valid, put the object down + pos = (object_x, object_y, object_z) + + placed_objects[obj.name] = (pos, quat, obj) + success = True + break + + if not success: + raise RandomizationError("Cannot place all objects ):") + # print(placed_objects) + return placed_objects + + +def postprocess_model_xml(xml_str, cameras_dict={}, demo_generation=False): + """ + This function postprocesses the model.xml collected from a MuJoCo demonstration + in order to make sure that the STL files can be found. + + Args: + xml_str (str): Mujoco sim demonstration XML file as string + + Returns: + str: Post-processed xml file as string + """ + + path = os.path.split(robosuite.__file__)[0] + path_split = path.split("/") + + # replace mesh and texture file paths + tree = ET.fromstring(xml_str) + root = tree + asset = root.find("asset") + meshes = asset.findall("mesh") + textures = asset.findall("texture") + all_elements = meshes + textures + + # also replace paths for libero + libero_path = os.getcwd() + "/libero" + libero_path_split = libero_path.split("/") + + for elem in all_elements: + old_path = elem.get("file") + if old_path is None: + continue + old_path_split = old_path.split("/") + if "robosuite" in old_path_split: + ind = max( + loc for loc, val in enumerate(old_path_split) if val == "robosuite" + ) # last occurrence index + new_path_split = path_split + old_path_split[ind + 1 :] + new_path = "/".join(new_path_split) + elem.set("file", new_path) + elif "libero" in old_path_split and demo_generation: + ind = max( + loc for loc, val in enumerate(old_path_split) if val == "libero" + ) # last occurrence index + new_path_split = libero_path_split + old_path_split[ind + 1 :] + new_path = "/".join(new_path_split) + elem.set("file", new_path) + else: + continue + + # cameras = root.find("worldbody").findall("camera") + cameras = find_elements(root=tree, tags="camera", return_first=False) + for camera in cameras: + camera_name = camera.get("name") + if camera_name in cameras_dict: + camera.set("name", camera_name) + camera.set("pos", cameras_dict[camera_name]["pos"]) + camera.set("quat", cameras_dict[camera_name]["quat"]) + camera.set("mode", "fixed") + + return ET.tostring(root, encoding="utf8").decode("utf8") + + +def rectangle2xyrange(rect_ranges): + x_ranges = [] + y_ranges = [] + for rect_range in rect_ranges: + x_ranges.append([rect_range[0], rect_range[2]]) + y_ranges.append([rect_range[1], rect_range[3]]) + return x_ranges, y_ranges diff --git a/openpi/third_party/libero/libero/libero/envs/venv.py b/openpi/third_party/libero/libero/libero/envs/venv.py new file mode 100644 index 0000000000000000000000000000000000000000..ed1fd4025bef5e81fdf5dae6b4f36fd331c4bf45 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/envs/venv.py @@ -0,0 +1,972 @@ +import cloudpickle +import ctypes +import gym +import numpy as np +import numpy as np +import warnings +import time + +from abc import ABC, abstractmethod +from collections import OrderedDict +from multiprocessing import Array, Pipe, connection +from multiprocessing.context import Process +from typing import Any, Callable, List, Optional, Tuple, Union + + +gym_old_venv_step_type = Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray] +gym_new_venv_step_type = Tuple[ + np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray +] +warnings.simplefilter("once", DeprecationWarning) +_NP_TO_CT = { + np.bool_: ctypes.c_bool, + np.uint8: ctypes.c_uint8, + np.uint16: ctypes.c_uint16, + np.uint32: ctypes.c_uint32, + np.uint64: ctypes.c_uint64, + np.int8: ctypes.c_int8, + np.int16: ctypes.c_int16, + np.int32: ctypes.c_int32, + np.int64: ctypes.c_int64, + np.float32: ctypes.c_float, + np.float64: ctypes.c_double, +} + + +def deprecation(msg: str) -> None: + """Deprecation warning wrapper.""" + warnings.warn(msg, category=DeprecationWarning, stacklevel=2) + + +class CloudpickleWrapper(object): + """A cloudpickle wrapper used in SubprocVectorEnv.""" + + def __init__(self, data: Any) -> None: + self.data = data + + def __getstate__(self) -> str: + return cloudpickle.dumps(self.data) + + def __setstate__(self, data: str) -> None: + self.data = cloudpickle.loads(data) + + +GYM_RESERVED_KEYS = [ + "metadata", + "reward_range", + "spec", + "action_space", + "observation_space", +] + + +################################################################################ +# +# Workers +# +################################################################################ + + +class EnvWorker(ABC): + """An abstract worker for an environment.""" + + def __init__(self, env_fn: Callable[[], gym.Env]) -> None: + self._env_fn = env_fn + self.is_closed = False + self.result: Union[ + gym_old_venv_step_type, + gym_new_venv_step_type, + Tuple[np.ndarray, dict], + np.ndarray, + ] + # self.action_space = self.get_env_attr("action_space") # noqa: B009 + self.is_reset = False + + @abstractmethod + def get_env_attr(self, key: str) -> Any: + pass + + @abstractmethod + def set_env_attr(self, key: str, value: Any) -> None: + pass + + def send(self, action: Optional[np.ndarray]) -> None: + """Send action signal to low-level worker. + + When action is None, it indicates sending "reset" signal; otherwise + it indicates "step" signal. The paired return value from "recv" + function is determined by such kind of different signal. + """ + if hasattr(self, "send_action"): + deprecation( + "send_action will soon be deprecated. " + "Please use send and recv for your own EnvWorker." + ) + if action is None: + self.is_reset = True + self.result = self.reset() + else: + self.is_reset = False + self.send_action(action) + + def recv( + self, + ) -> Union[ + gym_old_venv_step_type, + gym_new_venv_step_type, + Tuple[np.ndarray, dict], + np.ndarray, + ]: # noqa:E125 + """Receive result from low-level worker. + + If the last "send" function sends a NULL action, it only returns a + single observation; otherwise it returns a tuple of (obs, rew, done, + info) or (obs, rew, terminated, truncated, info), based on whether + the environment is using the old step API or the new one. + """ + if hasattr(self, "get_result"): + deprecation( + "get_result will soon be deprecated. " + "Please use send and recv for your own EnvWorker." + ) + if not self.is_reset: + self.result = self.get_result() + return self.result + + @abstractmethod + def reset(self, **kwargs: Any) -> Union[np.ndarray, Tuple[np.ndarray, dict]]: + pass + + def step( + self, action: np.ndarray + ) -> Union[gym_old_venv_step_type, gym_new_venv_step_type]: + """Perform one timestep of the environment's dynamic. + + "send" and "recv" are coupled in sync simulation, so users only call + "step" function. But they can be called separately in async + simulation, i.e. someone calls "send" first, and calls "recv" later. + """ + self.send(action) + return self.recv() # type: ignore + + @staticmethod + def wait( + workers: List["EnvWorker"], wait_num: int, timeout: Optional[float] = None + ) -> List["EnvWorker"]: + """Given a list of workers, return those ready ones.""" + raise NotImplementedError + + def seed(self, seed: Optional[int] = None) -> Optional[List[int]]: + # return self.action_space.seed(seed) # issue 299 + pass + + @abstractmethod + def render(self, **kwargs: Any) -> Any: + """Render the environment.""" + pass + + @abstractmethod + def close_env(self) -> None: + pass + + def close(self) -> None: + if self.is_closed: + return None + self.is_closed = True + self.close_env() + + +class ShArray: + """Wrapper of multiprocessing Array.""" + + def __init__(self, dtype: np.generic, shape: Tuple[int]) -> None: + self.arr = Array(_NP_TO_CT[dtype.type], int(np.prod(shape))) # type: ignore + self.dtype = dtype + self.shape = shape + + def save(self, ndarray: np.ndarray) -> None: + assert isinstance(ndarray, np.ndarray) + dst = self.arr.get_obj() + dst_np = np.frombuffer(dst, dtype=self.dtype).reshape( + self.shape + ) # type: ignore + np.copyto(dst_np, ndarray) + + def get(self) -> np.ndarray: + obj = self.arr.get_obj() + return np.frombuffer(obj, dtype=self.dtype).reshape(self.shape) # type: ignore + + +def _setup_buf(space: gym.Space) -> Union[dict, tuple, ShArray]: + if isinstance(space, gym.spaces.Dict): + assert isinstance(space.spaces, OrderedDict) + return {k: _setup_buf(v) for k, v in space.spaces.items()} + elif isinstance(space, gym.spaces.Tuple): + assert isinstance(space.spaces, tuple) + return tuple([_setup_buf(t) for t in space.spaces]) + else: + return ShArray(space.dtype, space.shape) # type: ignore + + +def _worker( + parent: connection.Connection, + p: connection.Connection, + env_fn_wrapper: CloudpickleWrapper, + obs_bufs: Optional[Union[dict, tuple, ShArray]] = None, +) -> None: + def _encode_obs( + obs: Union[dict, tuple, np.ndarray], buffer: Union[dict, tuple, ShArray] + ) -> None: + if isinstance(obs, np.ndarray) and isinstance(buffer, ShArray): + buffer.save(obs) + elif isinstance(obs, tuple) and isinstance(buffer, tuple): + for o, b in zip(obs, buffer): + _encode_obs(o, b) + elif isinstance(obs, dict) and isinstance(buffer, dict): + for k in obs.keys(): + _encode_obs(obs[k], buffer[k]) + return None + + parent.close() + env = env_fn_wrapper.data() + try: + while True: + try: + cmd, data = p.recv() + except EOFError: # the pipe has been closed + p.close() + break + if cmd == "step": + env_return = env.step(data) + if obs_bufs is not None: + _encode_obs(env_return[0], obs_bufs) + env_return = (None, *env_return[1:]) + p.send(env_return) + elif cmd == "reset": + retval = env.reset(**data) + reset_returns_info = ( + isinstance(retval, (tuple, list)) + and len(retval) == 2 + and isinstance(retval[1], dict) + ) + if reset_returns_info: + obs, info = retval + else: + obs = retval + if obs_bufs is not None: + _encode_obs(obs, obs_bufs) + obs = None + if reset_returns_info: + p.send((obs, info)) + else: + p.send(obs) + elif cmd == "close": + p.send(env.close()) + p.close() + break + elif cmd == "render": + p.send(env.render(**data) if hasattr(env, "render") else None) + elif cmd == "seed": + if hasattr(env, "seed"): + p.send(env.seed(data)) + else: + env.reset(seed=data) + p.send(None) + elif cmd == "getattr": + p.send(getattr(env, data) if hasattr(env, data) else None) + elif cmd == "setattr": + setattr(env.unwrapped, data["key"], data["value"]) + elif cmd == "check_success": + p.send(env.check_success()) + elif cmd == "get_segmentation_of_interest": + p.send(env.get_segmentation_of_interest(data)) + elif cmd == "get_sim_state": + p.send(env.get_sim_state()) + elif cmd == "set_init_state": + obs = env.set_init_state(data) + p.send(obs) + else: + p.close() + raise NotImplementedError + except KeyboardInterrupt: + p.close() + + +class DummyEnvWorker(EnvWorker): + """Dummy worker used in sequential vector environments.""" + + def __init__(self, env_fn: Callable[[], gym.Env]) -> None: + self.env = env_fn() + super().__init__(env_fn) + + def get_env_attr(self, key: str) -> Any: + return getattr(self.env, key) + + def set_env_attr(self, key: str, value: Any) -> None: + setattr(self.env.unwrapped, key, value) + + def reset(self, **kwargs: Any) -> Union[np.ndarray, Tuple[np.ndarray, dict]]: + if "seed" in kwargs: + super().seed(kwargs["seed"]) + return self.env.reset(**kwargs) + + @staticmethod + def wait( # type: ignore + workers: List["DummyEnvWorker"], wait_num: int, timeout: Optional[float] = None + ) -> List["DummyEnvWorker"]: + # Sequential EnvWorker objects are always ready + return workers + + def send(self, action: Optional[np.ndarray], **kwargs: Any) -> None: + if action is None: + self.result = self.env.reset(**kwargs) + else: + self.result = self.env.step(action) # type: ignore + + def seed(self, seed: Optional[int] = None) -> Optional[List[int]]: + super().seed(seed) + try: + return self.env.seed(seed) # type: ignore + except (AttributeError, NotImplementedError): + self.env.reset(seed=seed) + return [seed] # type: ignore + + def render(self, **kwargs: Any) -> Any: + return self.env.render(**kwargs) + + def close_env(self) -> None: + self.env.close() + + def check_success(self): + return self.env.check_success() + + def get_segmentation_of_interest(self, segmentation_image): + return self.env.get_segmentation_of_interest(segmentation_image) + + def get_sim_state(self): + return self.env.get_sim_state() + + def set_init_state(self, init_state): + return self.env.set_init_state(init_state) + + +class SubprocEnvWorker(EnvWorker): + """Subprocess worker used in SubprocVectorEnv and ShmemVectorEnv.""" + + def __init__( + self, env_fn: Callable[[], gym.Env], share_memory: bool = False + ) -> None: + self.parent_remote, self.child_remote = Pipe() + self.share_memory = share_memory + self.buffer: Optional[Union[dict, tuple, ShArray]] = None + if self.share_memory: + dummy = env_fn() + obs_space = dummy.observation_space + dummy.close() + del dummy + self.buffer = _setup_buf(obs_space) + args = ( + self.parent_remote, + self.child_remote, + CloudpickleWrapper(env_fn), + self.buffer, + ) + self.process = Process(target=_worker, args=args, daemon=True) + self.process.start() + self.child_remote.close() + super().__init__(env_fn) + + def get_env_attr(self, key: str) -> Any: + self.parent_remote.send(["getattr", key]) + return self.parent_remote.recv() + + def set_env_attr(self, key: str, value: Any) -> None: + self.parent_remote.send(["setattr", {"key": key, "value": value}]) + + def _decode_obs(self) -> Union[dict, tuple, np.ndarray]: + def decode_obs( + buffer: Optional[Union[dict, tuple, ShArray]] + ) -> Union[dict, tuple, np.ndarray]: + if isinstance(buffer, ShArray): + return buffer.get() + elif isinstance(buffer, tuple): + return tuple([decode_obs(b) for b in buffer]) + elif isinstance(buffer, dict): + return {k: decode_obs(v) for k, v in buffer.items()} + else: + raise NotImplementedError + + return decode_obs(self.buffer) + + @staticmethod + def wait( # type: ignore + workers: List["SubprocEnvWorker"], + wait_num: int, + timeout: Optional[float] = None, + ) -> List["SubprocEnvWorker"]: + remain_conns = conns = [x.parent_remote for x in workers] + ready_conns: List[connection.Connection] = [] + remain_time, t1 = timeout, time.time() + while len(remain_conns) > 0 and len(ready_conns) < wait_num: + if timeout: + remain_time = timeout - (time.time() - t1) + if remain_time <= 0: + break + # connection.wait hangs if the list is empty + new_ready_conns = connection.wait(remain_conns, timeout=remain_time) + ready_conns.extend(new_ready_conns) # type: ignore + remain_conns = [conn for conn in remain_conns if conn not in ready_conns] + return [workers[conns.index(con)] for con in ready_conns] + + def send(self, action: Optional[np.ndarray], **kwargs: Any) -> None: + if action is None: + if "seed" in kwargs: + super().seed(kwargs["seed"]) + self.parent_remote.send(["reset", kwargs]) + else: + self.parent_remote.send(["step", action]) + + def recv( + self, + ) -> Union[ + gym_old_venv_step_type, + gym_new_venv_step_type, + Tuple[np.ndarray, dict], + np.ndarray, + ]: # noqa:E125 + result = self.parent_remote.recv() + if isinstance(result, tuple): + if len(result) == 2: + obs, info = result + if self.share_memory: + obs = self._decode_obs() + return obs, info + obs = result[0] + if self.share_memory: + obs = self._decode_obs() + return (obs, *result[1:]) # type: ignore + else: + obs = result + if self.share_memory: + obs = self._decode_obs() + return obs + + def reset(self, **kwargs: Any) -> Union[np.ndarray, Tuple[np.ndarray, dict]]: + if "seed" in kwargs: + super().seed(kwargs["seed"]) + self.parent_remote.send(["reset", kwargs]) + + result = self.parent_remote.recv() + if isinstance(result, tuple): + obs, info = result + if self.share_memory: + obs = self._decode_obs() + return obs, info + else: + obs = result + if self.share_memory: + obs = self._decode_obs() + return obs + + def seed(self, seed: Optional[int] = None) -> Optional[List[int]]: + super().seed(seed) + self.parent_remote.send(["seed", seed]) + ret = self.parent_remote.recv() + return ret + + def render(self, **kwargs: Any) -> Any: + self.parent_remote.send(["render", kwargs]) + return self.parent_remote.recv() + + def close_env(self) -> None: + try: + self.parent_remote.send(["close", None]) + # mp may be deleted so it may raise AttributeError + self.parent_remote.recv() + self.process.join() + except (BrokenPipeError, EOFError, AttributeError): + pass + # ensure the subproc is terminated + self.process.terminate() + + def check_success(self): + self.parent_remote.send(["check_success", None]) + return self.parent_remote.recv() + + def get_segmentation_of_interest(self, segmentation_image): + self.parent_remote.send(["get_segmentation_of_interest", segmentation_image]) + return self.parent_remote.recv() + + def get_sim_state(self): + self.parent_remote.send(["get_sim_state", None]) + return self.parent_remote.recv() + + def set_init_state(self, init_state): + self.parent_remote.send(["set_init_state", init_state]) + obs = self.parent_remote.recv() + if self.share_memory: + obs = self._decode_obs() + return obs + + +################################################################################ +# +# VecEnvs +# +################################################################################ + + +class BaseVectorEnv(object): + """Base class for vectorized environments. + + Usage: + :: + + env_num = 8 + envs = DummyVectorEnv([lambda: gym.make(task) for _ in range(env_num)]) + assert len(envs) == env_num + + It accepts a list of environment generators. In other words, an environment + generator ``efn`` of a specific task means that ``efn()`` returns the + environment of the given task, for example, ``gym.make(task)``. + + All of the VectorEnv must inherit :class:`~tianshou.env.BaseVectorEnv`. + Here are some other usages: + :: + + envs.seed(2) # which is equal to the next line + envs.seed([2, 3, 4, 5, 6, 7, 8, 9]) # set specific seed for each env + obs = envs.reset() # reset all environments + obs = envs.reset([0, 5, 7]) # reset 3 specific environments + obs, rew, done, info = envs.step([1] * 8) # step synchronously + envs.render() # render all environments + envs.close() # close all environments + + .. warning:: + + If you use your own environment, please make sure the ``seed`` method + is set up properly, e.g., + :: + + def seed(self, seed): + np.random.seed(seed) + + Otherwise, the outputs of these envs may be the same with each other. + + :param env_fns: a list of callable envs, ``env_fns[i]()`` generates the i-th env. + :param worker_fn: a callable worker, ``worker_fn(env_fns[i])`` generates a + worker which contains the i-th env. + :param int wait_num: use in asynchronous simulation if the time cost of + ``env.step`` varies with time and synchronously waiting for all + environments to finish a step is time-wasting. In that case, we can + return when ``wait_num`` environments finish a step and keep on + simulation in these environments. If ``None``, asynchronous simulation + is disabled; else, ``1 <= wait_num <= env_num``. + :param float timeout: use in asynchronous simulation same as above, in each + vectorized step it only deal with those environments spending time + within ``timeout`` seconds. + """ + + def __init__( + self, + env_fns: List[Callable[[], gym.Env]], + worker_fn: Callable[[Callable[[], gym.Env]], EnvWorker], + wait_num: Optional[int] = None, + timeout: Optional[float] = None, + ) -> None: + self._env_fns = env_fns + # A VectorEnv contains a pool of EnvWorkers, which corresponds to + # interact with the given envs (one worker <-> one env). + self.workers = [worker_fn(fn) for fn in env_fns] + self.worker_class = type(self.workers[0]) + assert issubclass(self.worker_class, EnvWorker) + assert all([isinstance(w, self.worker_class) for w in self.workers]) + + self.env_num = len(env_fns) + self.wait_num = wait_num or len(env_fns) + assert ( + 1 <= self.wait_num <= len(env_fns) + ), f"wait_num should be in [1, {len(env_fns)}], but got {wait_num}" + self.timeout = timeout + assert ( + self.timeout is None or self.timeout > 0 + ), f"timeout is {timeout}, it should be positive if provided!" + self.is_async = self.wait_num != len(env_fns) or timeout is not None + self.waiting_conn: List[EnvWorker] = [] + # environments in self.ready_id is actually ready + # but environments in self.waiting_id are just waiting when checked, + # and they may be ready now, but this is not known until we check it + # in the step() function + self.waiting_id: List[int] = [] + # all environments are ready in the beginning + self.ready_id = list(range(self.env_num)) + self.is_closed = False + + def _assert_is_not_closed(self) -> None: + assert ( + not self.is_closed + ), f"Methods of {self.__class__.__name__} cannot be called after close." + + def __len__(self) -> int: + """Return len(self), which is the number of environments.""" + return self.env_num + + def __getattribute__(self, key: str) -> Any: + """Switch the attribute getter depending on the key. + + Any class who inherits ``gym.Env`` will inherit some attributes, like + ``action_space``. However, we would like the attribute lookup to go straight + into the worker (in fact, this vector env's action_space is always None). + """ + if key in GYM_RESERVED_KEYS: # reserved keys in gym.Env + return self.get_env_attr(key) + else: + return super().__getattribute__(key) + + def get_env_attr( + self, + key: str, + id: Optional[Union[int, List[int], np.ndarray]] = None, + ) -> List[Any]: + """Get an attribute from the underlying environments. + + If id is an int, retrieve the attribute denoted by key from the environment + underlying the worker at index id. The result is returned as a list with one + element. Otherwise, retrieve the attribute for all workers at indices id and + return a list that is ordered correspondingly to id. + + :param str key: The key of the desired attribute. + :param id: Indice(s) of the desired worker(s). Default to None for all env_id. + + :return list: The list of environment attributes. + """ + self._assert_is_not_closed() + id = self._wrap_id(id) + if self.is_async: + self._assert_id(id) + + return [self.workers[j].get_env_attr(key) for j in id] + + def set_env_attr( + self, + key: str, + value: Any, + id: Optional[Union[int, List[int], np.ndarray]] = None, + ) -> None: + """Set an attribute in the underlying environments. + + If id is an int, set the attribute denoted by key from the environment + underlying the worker at index id to value. + Otherwise, set the attribute for all workers at indices id. + + :param str key: The key of the desired attribute. + :param Any value: The new value of the attribute. + :param id: Indice(s) of the desired worker(s). Default to None for all env_id. + """ + self._assert_is_not_closed() + id = self._wrap_id(id) + if self.is_async: + self._assert_id(id) + for j in id: + self.workers[j].set_env_attr(key, value) + + def _wrap_id( + self, + id: Optional[Union[int, List[int], np.ndarray]] = None, + ) -> Union[List[int], np.ndarray]: + if id is None: + return list(range(self.env_num)) + return [id] if np.isscalar(id) else id # type: ignore + + def _assert_id(self, id: Union[List[int], np.ndarray]) -> None: + for i in id: + assert ( + i not in self.waiting_id + ), f"Cannot interact with environment {i} which is stepping now." + assert ( + i in self.ready_id + ), f"Can only interact with ready environments {self.ready_id}." + + def reset( + self, + id: Optional[Union[int, List[int], np.ndarray]] = None, + **kwargs: Any, + ) -> Union[np.ndarray, Tuple[np.ndarray, Union[dict, List[dict]]]]: + """Reset the state of some envs and return initial observations. + + If id is None, reset the state of all the environments and return + initial observations, otherwise reset the specific environments with + the given id, either an int or a list. + """ + self._assert_is_not_closed() + id = self._wrap_id(id) + if self.is_async: + self._assert_id(id) + + # send(None) == reset() in worker + for i in id: + self.workers[i].send(None, **kwargs) + ret_list = [self.workers[i].recv() for i in id] + + reset_returns_info = ( + isinstance(ret_list[0], (tuple, list)) + and len(ret_list[0]) == 2 + and isinstance(ret_list[0][1], dict) + ) + if reset_returns_info: + obs_list = [r[0] for r in ret_list] + else: + obs_list = ret_list + + if isinstance(obs_list[0], tuple): + raise TypeError( + "Tuple observation space is not supported. ", + "Please change it to array or dict space", + ) + try: + obs = np.stack(obs_list) + except ValueError: # different len(obs) + obs = np.array(obs_list, dtype=object) + + if reset_returns_info: + infos = [r[1] for r in ret_list] + return obs, infos # type: ignore + else: + return obs + + def step( + self, + action: np.ndarray, + id: Optional[Union[int, List[int], np.ndarray]] = None, + ) -> Union[gym_old_venv_step_type, gym_new_venv_step_type]: + """Run one timestep of some environments' dynamics. + + If id is None, run one timestep of all the environments’ dynamics; + otherwise run one timestep for some environments with given id, either + an int or a list. When the end of episode is reached, you are + responsible for calling reset(id) to reset this environment’s state. + + Accept a batch of action and return a tuple (batch_obs, batch_rew, + batch_done, batch_info) in numpy format. + + :param numpy.ndarray action: a batch of action provided by the agent. + + :return: A tuple consisting of either: + + * ``obs`` a numpy.ndarray, the agent's observation of current environments + * ``rew`` a numpy.ndarray, the amount of rewards returned after \ + previous actions + * ``done`` a numpy.ndarray, whether these episodes have ended, in \ + which case further step() calls will return undefined results + * ``info`` a numpy.ndarray, contains auxiliary diagnostic \ + information (helpful for debugging, and sometimes learning) + + or: + + * ``obs`` a numpy.ndarray, the agent's observation of current environments + * ``rew`` a numpy.ndarray, the amount of rewards returned after \ + previous actions + * ``terminated`` a numpy.ndarray, whether these episodes have been \ + terminated + * ``truncated`` a numpy.ndarray, whether these episodes have been truncated + * ``info`` a numpy.ndarray, contains auxiliary diagnostic \ + information (helpful for debugging, and sometimes learning) + + The case distinction is made based on whether the underlying environment + uses the old step API (first case) or the new step API (second case). + + For the async simulation: + + Provide the given action to the environments. The action sequence + should correspond to the ``id`` argument, and the ``id`` argument + should be a subset of the ``env_id`` in the last returned ``info`` + (initially they are env_ids of all the environments). If action is + None, fetch unfinished step() calls instead. + """ + self._assert_is_not_closed() + id = self._wrap_id(id) + if not self.is_async: + assert len(action) == len(id) + for i, j in enumerate(id): + self.workers[j].send(action[i]) + result = [] + for j in id: + env_return = self.workers[j].recv() + env_return[-1]["env_id"] = j + result.append(env_return) + else: + if action is not None: + self._assert_id(id) + assert len(action) == len(id) + for act, env_id in zip(action, id): + self.workers[env_id].send(act) + self.waiting_conn.append(self.workers[env_id]) + self.waiting_id.append(env_id) + self.ready_id = [x for x in self.ready_id if x not in id] + ready_conns: List[EnvWorker] = [] + while not ready_conns: + ready_conns = self.worker_class.wait( + self.waiting_conn, self.wait_num, self.timeout + ) + result = [] + for conn in ready_conns: + waiting_index = self.waiting_conn.index(conn) + self.waiting_conn.pop(waiting_index) + env_id = self.waiting_id.pop(waiting_index) + # env_return can be (obs, reward, done, info) or + # (obs, reward, terminated, truncated, info) + env_return = conn.recv() + env_return[-1]["env_id"] = env_id # Add `env_id` to info + result.append(env_return) + self.ready_id.append(env_id) + return_lists = tuple(zip(*result)) + obs_list = return_lists[0] + try: + obs_stack = np.stack(obs_list) + except ValueError: # different len(obs) + obs_stack = np.array(obs_list, dtype=object) + other_stacks = map(np.stack, return_lists[1:]) + return (obs_stack, *other_stacks) # type: ignore + + def seed( + self, + seed: Optional[Union[int, List[int]]] = None, + ) -> List[Optional[List[int]]]: + """Set the seed for all environments. + + Accept ``None``, an int (which will extend ``i`` to + ``[i, i + 1, i + 2, ...]``) or a list. + + :return: The list of seeds used in this env's random number generators. + The first value in the list should be the "main" seed, or the value + which a reproducer pass to "seed". + """ + self._assert_is_not_closed() + seed_list: Union[List[None], List[int]] + if seed is None: + seed_list = [seed] * self.env_num + elif isinstance(seed, int): + seed_list = [seed + i for i in range(self.env_num)] + else: + seed_list = seed + return [w.seed(s) for w, s in zip(self.workers, seed_list)] + + def render(self, **kwargs: Any) -> List[Any]: + """Render all of the environments.""" + self._assert_is_not_closed() + if self.is_async and len(self.waiting_id) > 0: + raise RuntimeError( + f"Environments {self.waiting_id} are still stepping, cannot " + "render them now." + ) + return [w.render(**kwargs) for w in self.workers] + + def close(self) -> None: + """Close all of the environments. + + This function will be called only once (if not, it will be called during + garbage collected). This way, ``close`` of all workers can be assured. + """ + self._assert_is_not_closed() + for w in self.workers: + w.close() + self.is_closed = True + + +class DummyVectorEnv(BaseVectorEnv): + """Dummy vectorized environment wrapper, implemented in for-loop. + + .. seealso:: + + Please refer to :class:`~tianshou.env.BaseVectorEnv` for other APIs' usage. + """ + + def __init__(self, env_fns: List[Callable[[], gym.Env]], **kwargs: Any) -> None: + super().__init__(env_fns, DummyEnvWorker, **kwargs) + + def check_success(self): + return [w.check_success() for w in self.workers] + + def get_segmentation_of_interest(self, segmentation_images): + return [ + w.get_segmentation_of_interest(img) + for w, img in zip(self.workers, segmentation_images) + ] + + def get_sim_state(self): + return [w.get_sim_state() for w in self.workers] + + def set_init_state( + self, + init_state: Optional[Union[int, List[int], np.ndarray]] = None, + id: Optional[Union[int, List[int], np.ndarray]] = None, + **kwargs: Any, + ) -> Union[np.ndarray, Tuple[np.ndarray, Union[dict, List[dict]]]]: + """Reset the state of some envs and return initial observations. + If id is None, reset the state of all the environments and return + initial observations, otherwise reset the specific environments with + the given id, either an int or a list. + """ + self._assert_is_not_closed() + id = self._wrap_id(id) + if self.is_async: + self._assert_id(id) + + # send(None) == reset() in worker + obs_list = [] + for j, i in enumerate(id): + obs = self.workers[i].set_init_state(init_state[j]) + obs_list.append(obs) + obs = np.stack(obs_list) + return obs + + +class SubprocVectorEnv(BaseVectorEnv): + """Vectorized environment wrapper based on subprocess. + + .. seealso:: + + Please refer to :class:`~tianshou.env.BaseVectorEnv` for other APIs' usage. + """ + + def __init__(self, env_fns: List[Callable[[], gym.Env]], **kwargs: Any) -> None: + def worker_fn(fn: Callable[[], gym.Env]) -> SubprocEnvWorker: + return SubprocEnvWorker(fn, share_memory=False) + + super().__init__(env_fns, worker_fn, **kwargs) + + def check_success(self): + return [w.check_success() for w in self.workers] + + def get_segmentation_of_interest(self, segmentation_images): + return [ + w.get_segmentation_of_interest(img) + for w, img in zip(self.workers, segmentation_images) + ] + + def get_sim_state(self): + return [w.get_sim_state() for w in self.workers] + + def set_init_state( + self, + init_state: Optional[Union[int, List[int], np.ndarray]] = None, + id: Optional[Union[int, List[int], np.ndarray]] = None, + **kwargs: Any, + ) -> Union[np.ndarray, Tuple[np.ndarray, Union[dict, List[dict]]]]: + """Reset the state of some envs and return initial observations. + If id is None, reset the state of all the environments and return + initial observations, otherwise reset the specific environments with + the given id, either an int or a list. + """ + self._assert_is_not_closed() + id = self._wrap_id(id) + if self.is_async: + self._assert_id(id) + + # send(None) == reset() in worker + obs_list = [] + for j, i in enumerate(id): + obs = self.workers[i].set_init_state(init_state[j]) + obs_list.append(obs) + obs = np.stack(obs_list) + return obs diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.init new file mode 100644 index 0000000000000000000000000000000000000000..08dfa1a02a9952e9d25481e006246f23b9f7a5cf Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..4fb1577b8573f854dafecef0f5ab5e54b3eac5da Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.init new file mode 100644 index 0000000000000000000000000000000000000000..9cacc3b1ae0a65a59221ff85941c3080afd5707e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..ffb00fa61ae55083d4fed59acbdeaa833c89a750 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet_and_close_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.init new file mode 100644 index 0000000000000000000000000000000000000000..6afc0ab0d60d88db14d679b614fcfda5f2268158 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..fbca14051e52c8fc63e5f897cca54b5de43ceb67 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE6_put_the_yellow_and_white_mug_in_the_microwave_and_close_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.init new file mode 100644 index 0000000000000000000000000000000000000000..cfb005236a5d7d391c1ff59cad602e308f64dfeb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..a467b6242b44ba77dd88fe80fc55246613605022 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/KITCHEN_SCENE8_put_both_moka_pots_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..c555369e3e70656993e9e54ddb4ef35ace40c4b6 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..84202ee6e16892bc3f4a7f0a4e00894ae6ec1b53 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE1_put_both_the_alphabet_soup_and_the_cream_cheese_box_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..54db06e215bd4123d2fe326c72eb1993af534820 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.init @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cef6cd0973d5c125d3cba94469ee58b116825a8d1df32693fd48119647348c8 +size 117167 diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..70709f6618ad3ae625198987bd10978802252c6c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..16f16629cd6d56ebe28943ade6c4f9a7fcda3427 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.init @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2357ab3a089b11c99a932f3e05fb33252f564f9ad66d39a61984156c04e288f +size 117295 diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..bac663fcef87007831cda1920699185c8f906706 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE2_put_both_the_cream_cheese_box_and_the_butter_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..58d2ad0d7b877e4f1e13e70c6c4a26048a245514 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..0c78a021a8a4be6bd9b7670064fa4437f829a9b7 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate_and_put_the_yellow_and_white_mug_on_the_right_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..7bc34e25b474a794ae1c8370e314e3134c847e75 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..a42d27b07ae2b451e872d830534416027225075c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate_and_put_the_chocolate_pudding_to_the_right_of_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..2427fb400e2411af8a53f87210efa6b5f6ee74a9 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..82a10b23e883c82b9b9a7a38e837de476f1a53b0 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_10/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..fd0f0a1e6f7fede94d55484372b98110fde0d8bd Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..a2db8963736be88af8286fa96477eb87e0ca1571 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.init new file mode 100644 index 0000000000000000000000000000000000000000..6eb2c4c22d995619f089df5cf58cf788947de5b0 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..a7d7c9bdbf8b40324df26e8d38395a311e639446 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_close_the_top_drawer_of_the_cabinet_and_put_the_black_bowl_on_top_of_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..1b50fc3049360a17ff81bb0946c2ccf773806d45 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..4b40e95ff2a7804f526693c5ab38326741f832bc Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.init new file mode 100644 index 0000000000000000000000000000000000000000..460742e4b27ebf61dbbdcdaaec976da56e89719e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..7ea654b389fdf646dfc72114abc86119fd3f0597 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_back_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.init new file mode 100644 index 0000000000000000000000000000000000000000..8b1eb7359bce3f708691a247b5f54dc4fb402561 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..0569af6b9a83bde15c9a33750857645a5a34a8d6 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_butter_at_the_front_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.init new file mode 100644 index 0000000000000000000000000000000000000000..c26fa07bd72f5b0f3ebb21dc2b18cd243bee31b2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..42a1ae4aab652c1080027d1702e1e663d4acc545 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE10_put_the_chocolate_pudding_in_the_top_drawer_of_the_cabinet_and_close_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..00dc0ea5cafe3b42c6e35c9bda6d84c4d32c6a46 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..1d957e913913bff1ceb147d54e8a2e833a2dce97 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_bottom_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..5c50275158453df34bb376a284bc8501f05f753f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..cdcd65f318283b2a88aee925ca11cab9b4dea9d2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.init new file mode 100644 index 0000000000000000000000000000000000000000..0e87a00c1b179fbbe576785eb08dfe3d42a9628b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..fc33cb529e3d7782f36a7f50d3199b5c3e8ad150 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_open_the_top_drawer_of_the_cabinet_and_put_the_bowl_in_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..67318382704014b7e0c203d6cfeba15b3fec4572 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..0297cd43edbe09be54afff40397c4966fda4409e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..451b77a1e1c4105edf8526c062ec265d690b7f10 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..65d6435ee05a3c24d13088ac1801b82db198cbca Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE1_put_the_black_bowl_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..4bc669bfacee41293355039a8f71c651b9a2dec2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..49b64b8aef7de7d8659591a231b10031651f6170 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_open_the_top_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..b02e7480a65b78e33038c558120b102fe14f403f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..c7998552b89e97d52c50f743a27837beb29daddc Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_back_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..ccd0adb99193a0aa57c6d25972564bf9500cff43 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..35e0ae90255c788303f1a776b207c383c2336133 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_black_bowl_at_the_front_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..3f4c480f815bb58e511bee02d44bdea7324b76f7 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b2daeb3f34fbe5b7039660e6cd4d8096f57867ee Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..6be30e683151fbe1601f4e8f9b7d766f8d1ec668 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..c005580b8be36a0ef5f54991c55654e8f44dd671 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_put_the_middle_black_bowl_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.init new file mode 100644 index 0000000000000000000000000000000000000000..190a1a064fec98d5fc7ae6a5009fac281cdb3cbb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..838619fecba199d594f0e84ad6bc95eb1db7ff8a Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_black_bowl_at_the_front_on_the_black_bowl_in_the_middle.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.init new file mode 100644 index 0000000000000000000000000000000000000000..3650033c737af2c33f206215a7006771b7498600 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b989a9d40a3d26d58ba9c8f8f3912a974fa8a289 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE2_stack_the_middle_black_bowl_on_the_back_black_bowl.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.init new file mode 100644 index 0000000000000000000000000000000000000000..27978e0e40b52325be4e1da87f465b7e9f40bd65 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..4a9616c47385fa7e7420903681571a78a00b575c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_frying_pan_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.init new file mode 100644 index 0000000000000000000000000000000000000000..1cc4bf6f99e540002ad1102fa9dabc3070a13ac9 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..6fcccd445f6accd0b54a28f15b5019945d513e30 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_put_the_moka_pot_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.init new file mode 100644 index 0000000000000000000000000000000000000000..5a2852387587359eaa3d01b6aee9451c264b6b95 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..6de8fd1b5fc8353364ca934c29ce80b4876b0f8d Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.init new file mode 100644 index 0000000000000000000000000000000000000000..8db29e7e27174e17666691fd77c2fe04c8569f73 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..6be5b707fea9a80f51f98d392fff6a23aa88c135 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_frying_pan_on_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..5b8e5631ff33cdea66a565d59e27994239cabc7e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..5b32a1d503d2f9ee95df9c300381e555217c450f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.init new file mode 100644 index 0000000000000000000000000000000000000000..02168dbe05ada9be68333a1e3a85cd809ae5c353 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..aeb639f435e47513e967826be3ac9522d2a6c266 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_close_the_bottom_drawer_of_the_cabinet_and_open_the_top_drawer.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..5082da67e87fc547a740f95f4cf893e6ea420293 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..7d59fc3baafdbce86ef4f145ce0ff8b4109a6679 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_in_the_bottom_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..7d4bb7668ab7957cac54f632d510655d5608c563 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b067fec64960b3d7ba805af88d5caaa4893aae3f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_black_bowl_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..d2087136e4d79939fe316bae4e3825f7eeb483ea Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..e1a782c72ee95038e21f58236e228731df06ee3e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_in_the_bottom_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.init new file mode 100644 index 0000000000000000000000000000000000000000..a982d4ee3555c6c35c0488bac39baacd21222e67 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..bf00837f36e5dbbf924e2b4e7a0e78849883ae74 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE4_put_the_wine_bottle_on_the_wine_rack.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..6ecead8f20e3c62701f4c01e79ec14d80b627383 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b89fe88a45960f63a76cce2f8673cb9681ce46ed Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_close_the_top_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..d2230264c10974e2a3c4da66ac6f86cf88261545 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..20423f0190f95e72084151e5f6ebf6a4c3c8125d Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_in_the_top_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..20d4c5eace855040183962c598af84580940c17f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..06795c6b25a8b077d8d763b0123f9e3d47994aa8 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..aafa94d8f05b844129e86b3a23ac4aef865c801d Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..77ae2f75d51cf6cabacdc5202e0a1b56fa14928a Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_black_bowl_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..2db819ba2f4e00d2b5779bb6b25fd706a48a5eec Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..cc2c6428dff1b5b59123f7f1da6d311326bbedd9 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE5_put_the_ketchup_in_the_top_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_close_the_microwave.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_close_the_microwave.init new file mode 100644 index 0000000000000000000000000000000000000000..a9e60d4e54d47e49e98a5ac27d0dd226ad2c3360 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_close_the_microwave.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_close_the_microwave.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_close_the_microwave.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..18ad1f9aa399e1029d289b25cb1e12852af716da Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_close_the_microwave.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.init new file mode 100644 index 0000000000000000000000000000000000000000..2c8cdc4627e71d4187cf6828f0667f6369e14f37 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..909c7073dbfbaa61b93955d92108e096e939b624 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE6_put_the_yellow_and_white_mug_to_the_front_of_the_white_mug.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_open_the_microwave.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_open_the_microwave.init new file mode 100644 index 0000000000000000000000000000000000000000..9b6695e482e88cc2574400cbdbd2b5dfe33b23ea Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_open_the_microwave.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_open_the_microwave.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_open_the_microwave.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..0653ae994873f4bad1aaf21b45d10c37351da1ce Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_open_the_microwave.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..a75ea4202ebbf0ba31a2a8d6ab224c4d57538c3c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..d58f99ed1425df1f0b76ce5a0d4a6dfea6a0161b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..220cc5a94cb7333e8a80e8fdca9cbcb221cdbfef Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..749f55eb58e709622b85dc1bf2ab28dca5427fa4 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE7_put_the_white_bowl_to_the_right_of_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.init new file mode 100644 index 0000000000000000000000000000000000000000..b793d7b50571a8ad4e10c7d938cfcead0ba62b41 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..9d4c6dd122262eec14ee765d96ad92ea38361e9b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_put_the_right_moka_pot_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.init new file mode 100644 index 0000000000000000000000000000000000000000..33e60f5abbf67e174792760e648dcd0df0fc6f8f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..2b25e0e1c3074ec720bfb5d76a573aa3e4c6495a Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE8_turn_off_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.init new file mode 100644 index 0000000000000000000000000000000000000000..e6f418d101b272cd5f9e10f44eb8bf0d62c1cdf3 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..616e99d3986f2b4137979f55318a5ba095be61bb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_the_cabinet_shelf.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..b1029263fffb67bb15185af0c104b835846fcfa5 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..9d657692842dc678e88d8422e2a5affc68efd937 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.init new file mode 100644 index 0000000000000000000000000000000000000000..5ae498c66e1f8df1ccfa5464a14868011dde095f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..46877f0e5b0fb11623d6baad9baa30fd6e8c51d2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_frying_pan_under_the_cabinet_shelf.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.init new file mode 100644 index 0000000000000000000000000000000000000000..92f817f91c9413ce5239d1b496be54e49d4ae083 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b5b6d782f954af7324ad43663fc6d7d2053b95e6 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_put_the_white_bowl_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.init new file mode 100644 index 0000000000000000000000000000000000000000..2d14604a931c511548e1165094ba99383ffa441f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..cae5d6bdeeebde94feff4b09049ebc3cc07d7b84 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.init new file mode 100644 index 0000000000000000000000000000000000000000..06a01981654d607c61acdfbde6eb798c1a3bb82c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..ec1486bfdc9e1773ccf4f60175d9f84820a73dc0 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/KITCHEN_SCENE9_turn_on_the_stove_and_put_the_frying_pan_on_it.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..575085d6165c67d963a603026c41c28b4f4cbdd1 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..aefc7255ef54699976b6ab43d3bf7d9cec173656 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_alphabet_soup_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..7a134d190585e2686185ff9d6a46411269cdcbc9 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..f5aa6e63c9bb24e8a775ef6177875f5a65bccc57 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_cream_cheese_box_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..8225c5cffa199d29a4bbbd8b465d339cd2badf2c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..8b27ff2c95df1183de6ecc8bfbc3e9066f39d67c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_ketchup_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..426b606f26fb5b1b26344cf3ab8f67839067d349 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..eb5b33905bfa1cb086b1fb6c07919a1e3def9cda Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE1_pick_up_the_tomato_sauce_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..b57a16cb0c93b73ae2b05ab3f988083c4b918aba --- /dev/null +++ b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.init @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4704198722aab1252b9632f97a260117b658a33251f5d303bcc386ad52ed765e +size 117295 diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..3bf7d1bfc96a4536f565e64b33a1d3d1b4fd6aa1 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_alphabet_soup_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..f54cccf33286fe44bd1306e5c134bead5b444e1b --- /dev/null +++ b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.init @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b8dab7d093318de68bd8453ec532252cfc0c0840d4709c05d3b994d4bd9f89d +size 117167 diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..bfc753b0e64e9d8509c319429156ae1625e7c096 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_butter_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..bcda3f444652acffa1bc5dd97fdd3794b3c61cff --- /dev/null +++ b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.init @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c19d53f72f132176e7571a72ff4e411ae89ce3d06cd1b4b08c6180036d516fa6 +size 117231 diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..c93f4c33cf3fd9af0f535ccdad65ba50d3e4e98e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_milk_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..658797d8043dfe74ab210ed365d42bd12798f400 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.init @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d4aa684cf808d7ac7856e18eb2969e609da0e4bad1018b1e1b7a3b44542cd3a +size 117231 diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..de7d141607fb77098629f641c1c4cd2df65a3743 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_orange_juice_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..9dd35c4a4dc13f4af55d2991b715a2af7b26a15c --- /dev/null +++ b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.init @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9efef6222ad8159fdb9e6314959e2577650cce2db8bf5cda52e27285624f0f89 +size 117295 diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..a29beabadab4204b1281acbf4a265167651ea514 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE2_pick_up_the_tomato_sauce_and_put_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..af5efb6e455dc23b078527f8dc805407a6608cc5 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..74550c2479bf2006c201264be6a3936781600765 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_alphabet_soup_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..8b0c3c5c090e2bedf7c72ebb5cec75ba1cfba9fb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..eb2f4a31dd00f2c208e44d78fce15c48fd9d28b5 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_butter_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..6211a6e273cd9b5e798387b2b9d1ee1086e48590 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..6fa58e478b26f590a5d853ce196c23c5e94415d5 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_cream_cheese_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..24e063f2b65f6f2759d919969ef687a7e512159d Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..530ef132d2c3ffc5ef417c6b32fd8d38b6c917f3 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_ketchup_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..77ae0949e50ca648a3d75e64a35844223e9507ac Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..959add95eff96abbbc91fcb76d2614166a5375d0 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE3_pick_up_the_tomato_sauce_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..defb7844e61fa4f7363022b4a6956098897fd92c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..82c6828afc876ab0de42e7af156fc06497352eb6 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_black_bowl_on_the_left_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..540f82de8b52f544baaecc4c8eec5e8e16d78062 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..6db8ef0d5b9232d8a50f305b12f5d468adb918af Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_chocolate_pudding_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..5bbff2ebdd2dcfa2a121109dfc5b4a1c77367c36 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..6db3fc032d4d083c818137f1a1015c38c999cf63 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_pick_up_the_salad_dressing_and_put_it_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..cd0157031a6c852eaa3c0741bc80927033f3a53b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..566c4902b97f7b1f4219ce4ed7911e2d98854268 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_left_bowl_on_the_right_bowl_and_place_them_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.init new file mode 100644 index 0000000000000000000000000000000000000000..5dd3999d434256ada46d39d563a347c94657ec2a Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..04b6267e38d9c13ec08dd91bbc2b223e131a14f8 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE4_stack_the_right_bowl_on_the_left_bowl_and_place_them_in_the_tray.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..9a7eb19a3b5aa07d71179fb90d708ae8ff75afdb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..bc1143fe985aeb0bede8f28895d95e1306d1f95b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_left_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..d6d68cdf86028e08ace9fd311626d0e1277c1fd3 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..c2a4b41d39bb1083002ee4a82b2547a9486f5ed2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_red_mug_on_the_right_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..72c26c48dad4d53c344bc576400a56ae1971bd65 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..5d1485e736cbfdcde708836f5a053368a0cabcdd Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_white_mug_on_the_left_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..21c0e2efb25298f6545db23ad62e6c4dd700c236 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..c54272e35f07585e868474bad905041d9aa89263 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE5_put_the_yellow_and_white_mug_on_the_right_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..e99f94c10bf1b89ec73bdc0f0b225bd26a872d13 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..3d7a956f94b2ef9dceccd682b615f36ad43cfd11 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_left_of_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..7dda9dcd25aeadc49fc1e649fe09282ec85ce12e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..5e6da3113247aa710c90ee52536d753db3460102 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_chocolate_pudding_to_the_right_of_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..dd7ae379a22566e82785ecc3ebbbb6b019838103 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..f3e3177ec66b5602d61eba92b550588888df7f4c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_red_mug_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..b41ca12157c645fe7ab2425464320e7dda5162c6 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..32ede8f2c4a117fb4e78ef57cb2386e89d8141fc Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/LIVING_ROOM_SCENE6_put_the_white_mug_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..718c5c5ad7ba3416c0133b691ef3c2302fcfd41e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..a50922e76d9c25044dcd2ce5463a5a236314dfd3 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..1ad2f08a50edb195c2d2283e8d518c69d0c0fa4b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..5bd10a7e9a268927280306b0921d19410324d5d4 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..42e9173ed3744ec02521fe39d2be964ca09c298d Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..4c812cfd03f0e00c724b76dcbda68ce2c87c5326 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..92d892b54f8f474f0f6aee253bea282012b28819 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..56203cd3df372dcc6eed6d228034bad16fea7718 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE1_pick_up_the_yellow_and_white_mug_and_place_it_to_the_right_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..f052460d51ba9b234c8c89b1efb57b335bd9f7d3 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..1a4f1099aee33fcae905c7073ae684ea504f2e88 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_back_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..b00a850866b58b7da7e83f1353b9b9d016cedac2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..bbb0722b192073ef3536c7e298052f555aeceabe Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..d35e5601b990c833cc668ed47d2f2f0584dd72a7 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..055f62bb9c5c668c2990c9602f9a5954d9cea2db Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..aff2aeafdf6704c5eb7b7c70a615fd2705849f9a Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..33a1c745df4ad7813d03136faad4e2c30d291722 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE2_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..8791c4b6a077b6e224386c0fc19bf92cec62dade Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b7203f4fbc7b48df610dfaaaa7884dfebe01e824 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_front_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..433fc94514ace01e3b5444fb5f19befb46623f05 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..8bb5b58184d4cdf77e00c30e0100d56812518318 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_left_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..a69d37e8ec737a986c8513f1a4d7aea5d3db0b88 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..e1bb88307650c89be187858ad49eaead21b727e7 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_book_and_place_it_in_the_right_compartment_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..540c7067c8da34a2cc75e6c8af77d2c5ca0c1d4f Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..f9edf03619165fd9fcda69190016d18b6be33f78 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_red_mug_and_place_it_to_the_right_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.init new file mode 100644 index 0000000000000000000000000000000000000000..14e981d7bdfd881d9880171a248c18d448cc63b4 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..5fe0745d2c6fb168999ad14e3c0f8d76d957db35 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE3_pick_up_the_white_mug_and_place_it_to_the_right_of_the_caddy.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.init new file mode 100644 index 0000000000000000000000000000000000000000..8a9351dec0b760cb3230b0acfc9d5e6d76be5c5c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..7d1c1f53afc4f7a97d78a3e8da0bdd8639eae346 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_in_the_middle_and_place_it_on_the_cabinet_shelf.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.init new file mode 100644 index 0000000000000000000000000000000000000000..5b0a501c7fbfe87820734a935344e460ff7a93d8 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..63e2d10e04de34f628a1de65ffb2c66451526e3e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_left_and_place_it_on_top_of_the_shelf.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.init new file mode 100644 index 0000000000000000000000000000000000000000..13fb4f76888bf71e448cf75ddb671b27ca3d3090 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..e17db668ded6f70eb59d5cb036808ecce36b4e3b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_on_the_cabinet_shelf.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.init new file mode 100644 index 0000000000000000000000000000000000000000..7def5345233be50c98fb92d007f7f0e2f04733ed Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..4a0c2c9d22ee31c3813cf6e8614252328fe83ea4 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_90/STUDY_SCENE4_pick_up_the_book_on_the_right_and_place_it_under_the_cabinet_shelf.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/open_the_middle_drawer_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/open_the_middle_drawer_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..cb8b43662355718f225b73bbce3fdafaf2be695e Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/open_the_middle_drawer_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/open_the_top_drawer_and_put_the_bowl_inside.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/open_the_top_drawer_and_put_the_bowl_inside.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..9e5d56fad0911ead448c30098b327e6335b87bf2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/open_the_top_drawer_and_put_the_bowl_inside.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/push_the_plate_to_the_front_of_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/push_the_plate_to_the_front_of_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..871aa4adcdbdce0a69570277b9ee201243f6374a Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/push_the_plate_to_the_front_of_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..32cebd937a4cd1201e1c38dc878d2b95c8828290 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..10986104343f003b276e3545d1126ce16ab7fc49 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..d1da07dfe4b89764d0c484882b9335abd4016516 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_bowl_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_cream_cheese_in_the_bowl.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_cream_cheese_in_the_bowl.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b7ced3d90585b6f0fafc27a37d1b3ad6afd692fd Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_cream_cheese_in_the_bowl.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_wine_bottle_on_the_rack.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_wine_bottle_on_the_rack.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..eb2d7fa1bec250127ba2e121e0b0e9bf337f83d5 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_wine_bottle_on_the_rack.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_wine_bottle_on_top_of_the_cabinet.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_wine_bottle_on_top_of_the_cabinet.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..5ac3915119a75d20d4f416df5b11f2043dbf3e0d Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/put_the_wine_bottle_on_top_of_the_cabinet.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_goal/turn_on_the_stove.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_goal/turn_on_the_stove.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..b0373dce81adcbaf9236a28a9b98a668e9d44393 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_goal/turn_on_the_stove.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..c8a28024715175478a1d7c19de32b5fbdb01d2a7 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..c8a28024715175478a1d7c19de32b5fbdb01d2a7 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..5dc495ff7714960245c644c2c644d346da1409cf Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..5dc495ff7714960245c644c2c644d346da1409cf Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_bbq_sauce_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..53e1f79d98f962ad3061adbb96b25ed08f89e9fb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..53e1f79d98f962ad3061adbb96b25ed08f89e9fb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_butter_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..cd395608818b106b937da11840dc30edd79ae197 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..cd395608818b106b937da11840dc30edd79ae197 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_chocolate_pudding_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..cb56d5b03c033f2f29f37e68f5d0c91ccc23700b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..cb56d5b03c033f2f29f37e68f5d0c91ccc23700b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_cream_cheese_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..6df12c615f529ef72fe8e07145a0208852b28b61 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..6df12c615f529ef72fe8e07145a0208852b28b61 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_ketchup_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..f7538a01fcc9d5cddda158930f80d65cd68ee2bd Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..f7538a01fcc9d5cddda158930f80d65cd68ee2bd Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_milk_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..43326337c89f0981439b76d40700496b0136b2f0 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..43326337c89f0981439b76d40700496b0136b2f0 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_orange_juice_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..8618561525caad694bc640208a6cd4f5ab20fdf4 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..8618561525caad694bc640208a6cd4f5ab20fdf4 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_salad_dressing_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.init new file mode 100644 index 0000000000000000000000000000000000000000..47a87cb542111222e1501a17df82ca99836ecda2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..47a87cb542111222e1501a17df82ca99836ecda2 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_object/pick_up_the_tomato_sauce_and_place_it_in_the_basket.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..7892ccf602d5e874833cfe0da57028ddcf6b8e24 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..543deb5f5c1d2ca29426a7b77964c9273f71197d Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_between_the_plate_and_the_ramekin_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..e0f20422ea7fab02e9ddc5e569362e506944ec2b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..d2d1265c809a77a75676a16b19c97cca784ebf47 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_from_table_center_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..2a901deae62e7f5b911ca417be65ce081e678db4 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..c927f9b46e9d100902d5a08b061d600411249243 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_in_the_top_drawer_of_the_wooden_cabinet_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..d350e8e09756d728e983f2f50c7f4cffaa1ef012 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..688d7bc03932f62bbe2be5ffa481fdcfc193d4da Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_cookie_box_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..815425787bfcf6882e18604a387dcff2ef39adcb Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..f8e2aa1f726ae098dfd8007808bc3d9bec2289ee Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_plate_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..c0836692c504b2a7c0faaca810fbc997ae1d57da Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..83ad7a2aec0f77c4d6d0875560f3c36262894217 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_next_to_the_ramekin_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..b3f0009ac922b8bd2d14a79976a45ef5ca2c83d8 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..430596fcb23b3ee1bcab20b79d71ce1a71100c03 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_cookie_box_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..86c5d6b0738fc8c5e44f0a983d099f8a1bbbab5c Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..0e3ecf39dd742a3e93cfa0c94925176dc4d6a3a7 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_ramekin_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..b1de539d2977da5b7b983704ddc882ebd80d0b4b Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..9e2179796652ade754c4008387b69e516fcf2aed Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_stove_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.init new file mode 100644 index 0000000000000000000000000000000000000000..7a05059e70f16f0787166a176d0a730635e05db9 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.init differ diff --git a/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.pruned_init b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.pruned_init new file mode 100644 index 0000000000000000000000000000000000000000..847726c2c7cd1f3c32de485ab1238b6e29c45120 Binary files /dev/null and b/openpi/third_party/libero/libero/libero/init_files/libero_spatial/pick_up_the_black_bowl_on_the_wooden_cabinet_and_place_it_on_the_plate.pruned_init differ diff --git a/openpi/third_party/libero/libero/libero/utils/__init__.py b/openpi/third_party/libero/libero/libero/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0e28b9f1efc6f75f1783faccb20dcf11e7ba1bd0 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/__init__.py @@ -0,0 +1,52 @@ +import os +import yaml + +# This is a default path for localizing all the benchmark related files +libero_config_path = os.environ.get( + "LIBERO_CONFIG_PATH", os.path.expanduser("~/.libero") +) +config_file = os.path.join(libero_config_path, "config.yaml") + + +def get_path_dict(root_location=os.path.dirname(os.path.abspath(__file__))): + benchmark_root_path = root_location + + # This is a default path for localizing all the default bddl files + bddl_files_default_path = os.path.join(benchmark_root_path, "./bddl_files") + + # This is a default path for localizing all the default bddl files + init_states_default_path = os.path.join(benchmark_root_path, "./init_files") + + # This is a default path for localizing all the default datasets + dataset_default_path = os.path.join(benchmark_root_path, "../datasets") + + return { + "benchmark_root": benchmark_root_path, + "bddl_files": bddl_files_default_path, + "init_states": init_states_default_path, + "datasets": dataset_default_path, + } + + +def get_libero_path(key): + with open(config_file, "r") as f: + config = dict(yaml.load(f.read(), Loader=yaml.FullLoader)) + assert key in config, f"Key {key} not found in config file {config_file}" + return config[key] + + +def set_libero_path(custom_location=os.path.dirname(os.path.abspath(__file__))): + new_config = get_path_dict(custom_location) + with open(config_file, "w") as f: + yaml.dump(new_config, f) + + +if not os.path.exists(libero_config_path): + os.makedirs(libero_config_path) + +if not os.path.exists(config_file): + # Create a default config file + + # write all the paths into a yaml file + with open(config_file, "w") as f: + yaml.dump(get_path_dict(), f) diff --git a/openpi/third_party/libero/libero/libero/utils/bddl_generation_utils.py b/openpi/third_party/libero/libero/libero/utils/bddl_generation_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..be13045b12fe3108f001ef0f1fb1083c93b6696e --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/bddl_generation_utils.py @@ -0,0 +1,480 @@ +import os +import numpy as np + +INDENT = " " + + +def print_result(result): + print("\n".join(result)) + + +def get_result(result): + return "\n".join(result) + + +def save_to_file(result, scene_name, language, folder=""): + file_name = os.path.join( + folder, + f"{scene_name}".upper() + "_" + "_".join(language.lower().split(" ")) + ".bddl", + ) + with open(file_name, "w") as f: + f.write(result) + return file_name + + +class _PDDLDefinition: + def __init__(self, func, problem_name="", domain="robosuite"): + self.func = func + self.problem_name = problem_name + self.domain = domain + + def __call__(self, *args, **kwargs): + meta_strings = [] + content_strings = [] + meta_strings.append(f"(define (problem {self.problem_name})") + content_strings.append(f"(:domain {self.domain})") + content_strings += self.func(*args, **kwargs) + content_strings = [INDENT + each_line for each_line in content_strings] + meta_strings += content_strings + meta_strings.append(")\n") + return meta_strings + + +def PDDLDefinition(func=None, problem_name=""): + if func: + return _PDDLDefinition(func) + else: + + def wrapper(func): + return _PDDLDefinition(func, problem_name) + + return wrapper + + +class Language: + def __init__(self, func): + self.func = func + + def __call__(self, *args, **kwargs): + strings = [] + language = kwargs["language"] + strings.append(f"(:language {language})") + del kwargs["language"] + strings += self.func(*args, **kwargs) + # strings = [INDENT + each_line for each_line in strings] + return strings + + +class _LogicalState: + def __init__(self, func, state_type=""): + self.func = func + self.state_type = state_type + + def __call__(self, *args, **kwargs): + strings = [] + strings.append(f"(:{self.state_type}") + strings += self.func(*args, **kwargs) + strings.append(")\n") + # strings = [INDENT + each_line for each_line in strings] + return strings + + +def LogicalState(func=None, state_type="PLACEHOLDER"): + if func: + return _LogicalState(func) + else: + + def wrapper(func): + return _LogicalState(func, state_type) + + return wrapper + + +# Region definition + + +class RegionWrapper: + def __init__(self, func): + self.func = func + + def __call__(self, *args, **kwargs): + strings = [] + strings.append("(:regions") + strings += self.func(*args, **kwargs) + strings.append(")\n") + strings = [INDENT + each_line for each_line in strings] + return strings + + +class Region: + def __init__(self, func): + self.func = func + + def __call__(self, *args, **kwargs): + assert "target" in kwargs, "target property has to be defined!" + assert "region_name" in kwargs, "region name has to be defined" + strings = [] + region_name = kwargs["region_name"] + strings.append(f"({region_name}") + del kwargs["region_name"] + strings += self.func(*args, **kwargs) + strings.append(")") + strings = [INDENT + each_line for each_line in strings] + return strings + + +# Objects +class _ObjectDict: + def __init__(self, func, object_type): + self.func = func + self.object_type = object_type + + def __call__(self, *args, **kwargs): + strings = [] + strings.append(f"(:{self.object_type}") + strings += self.func(*args, **kwargs) + strings.append(")\n") + # strings = [INDENT + each_line for each_line in strings] + return strings + + +def ObjectDict(func=None, object_type="objects"): + if func: + return _ObjectDict(func) + else: + + def wrapper(func): + return _ObjectDict(func, object_type) + + return wrapper + + +@ObjectDict(object_type="fixtures") +def get_fixtures(**kwargs): + return get_dict_string(**kwargs) + + +@ObjectDict(object_type="objects") +def get_objects(**kwargs): + return get_dict_string(**kwargs) + + +@ObjectDict(object_type="obj_of_interest") +def get_objects_of_interest(l): + return get_list_string(l) + + +def general_get_str_func(v): + if type(v) is list: + return get_list_string(v) + elif type(v) is tuple: + return get_tuple_string(v) + elif type(v) is dict: + return get_dict_string(v) + elif type(v) is int or type(v) is float: + return str(v) + elif type(v) is str: + return v + + +def get_dict_string(**kwargs): + strings = [] + for k, v in kwargs.items(): + assert type(v) is list + object_names = " ".join(v) + strings.append(f"{object_names} - {k}") + strings = [INDENT + each_line for each_line in strings] + return strings + + +def get_list_string(l): + strings = [] + assert type(l) is list + for v in l: + strings.append(general_get_str_func(v)) + strings = [INDENT + each_line for each_line in strings] + return strings + + +def get_tuple_string(t): + strings = [] + assert type(t) is tuple + return "(" + " ".join([general_get_str_func(v) for v in t]) + ")" + + +def get_logical_expression_string(l): + strings = [] + assert type(l) is list + for v in l: + strings.append(general_get_str_func(v)) + strings = [INDENT + each_line for each_line in strings] + return strings + + +def get_property_string(**kwargs): + strings = [] + for k, v in kwargs.items(): + if type(v) is str: + strings.append(f"{INDENT}(:{k} {v})") + else: + strings.append(f"{INDENT}(:{k} (") + strings += [INDENT + INDENT + new_v for new_v in general_get_str_func(v)] + strings.append(f"{INDENT}{INDENT})") + strings.append(f"{INDENT})") + strings = [INDENT + each_line for each_line in strings] + return strings + + +def get_prediate_string(predicates): + # Handle init case and goal case + assert type(predicates) + strings = [] + + +@LogicalState(state_type="init") +def get_init_state(l): + return get_logical_expression_string(l) + + +@LogicalState(state_type="goal") +def get_goal_state(l): + return get_logical_expression_string(l) + + +@Region +def get_xy_region(**kwargs): + assert "ranges" in kwargs + for v in kwargs["ranges"]: + assert len(v) == 4 + return get_property_string(**kwargs) + + +@Region +def get_object_affordance_region(**kwargs): + new_kwargs = {"target": kwargs["target"]} + return get_property_string(**new_kwargs) + + +@RegionWrapper +def region_module(xy_region_kwargs_list=None, affordance_region_kwargs_list=None): + strings = [] + if xy_region_kwargs_list is not None: + for fixture_kwargs in xy_region_kwargs_list: + strings += get_xy_region(**fixture_kwargs) + if affordance_region_kwargs_list is not None: + for fixture_kwargs in affordance_region_kwargs_list: + strings += get_object_affordance_region(**fixture_kwargs) + return strings + + +def object_naming_mapping(category_name, object_id): + if category_name == "table": + if object_id > 1: + raise ValueError("Table can only be one for the moment.") + return "main_table" + elif category_name == "kitchen_table": + if object_id > 1: + raise ValueError("Kitchen table can only be one for the moment.") + return "kitchen_table" + elif category_name == "floor": + if object_id > 1: + raise ValueError("Floor can only be one.") + return "floor" + elif category_name == "coffee_table": + if object_id > 1: + raise ValueError("Coffee table can only be one for the moment.") + return "coffee_table" + elif category_name == "living_room_table": + if object_id > 1: + raise ValueError("Living room table can only be one for the moment.") + return "living_room_table" + elif category_name == "study_table": + if object_id > 1: + raise ValueError("Study table can only be one for the moment.") + return "study_table" + else: + return f"{category_name}_{object_id}" + + +def retrieve_fixture_property(category_name): + """Retrieve fixture property""" + property_dict = {} + return property_dict + + +def get_affordance_region_kwargs_list_from_fixture_info(fixture_info_dict): + kwargs_list = [] + for k, v in fixture_info_dict.items(): + for item in v: + kwargs_list.append({"target": k, "region_name": item}) + return kwargs_list + + +def get_xy_region_kwargs_list_from_regions_info(regions_info_dict): + kwargs_list = [] + for k, v in regions_info_dict.items(): + assert type(v) is dict + kwargs = { + "region_name": k, + } + kwargs.update(v) + kwargs_list.append(kwargs) + return kwargs_list + + +def get_object_dict(objects_num_info): + """ + A dctionary of objects that has "category_name": number_of_objects + """ + object_dict = {} + for category_name, num_objects in objects_num_info.items(): + object_dict[category_name] = [] + for object_id in range(1, num_objects + 1): + object_dict[category_name].append( + object_naming_mapping(category_name, object_id) + ) + return object_dict + + +@PDDLDefinition(problem_name="LIBERO_Tabletop_Manipulation") +@Language +def tabletop_task_suites_generator( + xy_region_kwargs_list, + affordance_region_kwargs_list, + fixture_object_dict, + movable_object_dict, + objects_of_interest, + init_states, + goal_states, +): + result = [] + result += region_module( + xy_region_kwargs_list=xy_region_kwargs_list, + affordance_region_kwargs_list=affordance_region_kwargs_list, + ) + result += get_fixtures(**fixture_object_dict) + result += get_objects(**movable_object_dict) + result += get_objects_of_interest(objects_of_interest) + result += get_init_state(init_states) + result += get_goal_state(goal_states) + return result + + +@PDDLDefinition(problem_name="LIBERO_Kitchen_Tabletop_Manipulation") +@Language +def kitchen_table_task_suites_generator( + xy_region_kwargs_list, + affordance_region_kwargs_list, + fixture_object_dict, + movable_object_dict, + objects_of_interest, + init_states, + goal_states, +): + result = [] + result += region_module( + xy_region_kwargs_list=xy_region_kwargs_list, + affordance_region_kwargs_list=affordance_region_kwargs_list, + ) + result += get_fixtures(**fixture_object_dict) + result += get_objects(**movable_object_dict) + result += get_objects_of_interest(objects_of_interest) + result += get_init_state(init_states) + result += get_goal_state(goal_states) + return result + + +@PDDLDefinition(problem_name="LIBERO_Floor_Manipulation") +@Language +def floor_task_suites_generator( + xy_region_kwargs_list, + affordance_region_kwargs_list, + fixture_object_dict, + movable_object_dict, + objects_of_interest, + init_states, + goal_states, +): + result = [] + result += region_module( + xy_region_kwargs_list=xy_region_kwargs_list, + affordance_region_kwargs_list=affordance_region_kwargs_list, + ) + result += get_fixtures(**fixture_object_dict) + result += get_objects(**movable_object_dict) + result += get_objects_of_interest(objects_of_interest) + result += get_init_state(init_states) + result += get_goal_state(goal_states) + return result + + +@PDDLDefinition(problem_name="LIBERO_Coffee_Table_Manipulation") +@Language +def coffee_table_task_suites_generator( + xy_region_kwargs_list, + affordance_region_kwargs_list, + fixture_object_dict, + movable_object_dict, + objects_of_interest, + init_states, + goal_states, +): + result = [] + result += region_module( + xy_region_kwargs_list=xy_region_kwargs_list, + affordance_region_kwargs_list=affordance_region_kwargs_list, + ) + result += get_fixtures(**fixture_object_dict) + result += get_objects(**movable_object_dict) + result += get_objects_of_interest(objects_of_interest) + result += get_init_state(init_states) + result += get_goal_state(goal_states) + return result + + +@PDDLDefinition(problem_name="LIBERO_Study_Tabletop_Manipulation") +@Language +def study_table_task_suites_generator( + xy_region_kwargs_list, + affordance_region_kwargs_list, + fixture_object_dict, + movable_object_dict, + objects_of_interest, + init_states, + goal_states, +): + result = [] + result += region_module( + xy_region_kwargs_list=xy_region_kwargs_list, + affordance_region_kwargs_list=affordance_region_kwargs_list, + ) + result += get_fixtures(**fixture_object_dict) + result += get_objects(**movable_object_dict) + result += get_objects_of_interest(objects_of_interest) + result += get_init_state(init_states) + result += get_goal_state(goal_states) + return result + + +@PDDLDefinition(problem_name="LIBERO_Living_Room_Tabletop_Manipulation") +@Language +def living_room_table_task_suites_generator( + xy_region_kwargs_list, + affordance_region_kwargs_list, + fixture_object_dict, + movable_object_dict, + objects_of_interest, + init_states, + goal_states, +): + result = [] + result += region_module( + xy_region_kwargs_list=xy_region_kwargs_list, + affordance_region_kwargs_list=affordance_region_kwargs_list, + ) + result += get_fixtures(**fixture_object_dict) + result += get_objects(**movable_object_dict) + result += get_objects_of_interest(objects_of_interest) + result += get_init_state(init_states) + result += get_goal_state(goal_states) + return result diff --git a/openpi/third_party/libero/libero/libero/utils/dataset_utils.py b/openpi/third_party/libero/libero/libero/utils/dataset_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..f2ae505ac96f80bbe604f5f483c928bf7817856d --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/dataset_utils.py @@ -0,0 +1,102 @@ +import h5py +import numpy as np +import json + + +def get_dataset_info(dataset_path, filter_key=None, verbose=True): + # extract demonstration list from file + all_filter_keys = None + f = h5py.File(dataset_path, "r") + if filter_key is not None: + # use the demonstrations from the filter key instead + print("NOTE: using filter key {}".format(filter_key)) + demos = sorted( + [elem.decode("utf-8") for elem in np.array(f["mask/{}".format(filter_key)])] + ) + else: + # use all demonstrations + demos = sorted(list(f["data"].keys())) + + # extract filter key information + if "mask" in f: + all_filter_keys = {} + for fk in f["mask"]: + fk_demos = sorted( + [elem.decode("utf-8") for elem in np.array(f["mask/{}".format(fk)])] + ) + all_filter_keys[fk] = fk_demos + + # put demonstration list in increasing episode order + inds = np.argsort([int(elem[5:]) for elem in demos]) + demos = [demos[i] for i in inds] + + # extract length of each trajectory in the file + traj_lengths = [] + action_min = np.inf + action_max = -np.inf + for ep in demos: + traj_lengths.append(f["data/{}/actions".format(ep)].shape[0]) + action_min = min(action_min, np.min(f["data/{}/actions".format(ep)][()])) + action_max = max(action_max, np.max(f["data/{}/actions".format(ep)][()])) + traj_lengths = np.array(traj_lengths) + + problem_info = json.loads(f["data"].attrs["problem_info"]) + + language_instruction = "".join(problem_info["language_instruction"]) + # report statistics on the data + print("") + print("total transitions: {}".format(np.sum(traj_lengths))) + print("total trajectories: {}".format(traj_lengths.shape[0])) + print("traj length mean: {}".format(np.mean(traj_lengths))) + print("traj length std: {}".format(np.std(traj_lengths))) + print("traj length min: {}".format(np.min(traj_lengths))) + print("traj length max: {}".format(np.max(traj_lengths))) + print("action min: {}".format(action_min)) + print("action max: {}".format(action_max)) + print("language instruction: {}".format(language_instruction.strip('"'))) + print("") + print("==== Filter Keys ====") + if all_filter_keys is not None: + for fk in all_filter_keys: + print("filter key {} with {} demos".format(fk, len(all_filter_keys[fk]))) + else: + print("no filter keys") + print("") + if verbose: + if all_filter_keys is not None: + print("==== Filter Key Contents ====") + for fk in all_filter_keys: + print( + "filter_key {} with {} demos: {}".format( + fk, len(all_filter_keys[fk]), all_filter_keys[fk] + ) + ) + print("") + env_meta = json.loads(f["data"].attrs["env_args"]) + print("==== Env Meta ====") + print(json.dumps(env_meta, indent=4)) + print("") + + print("==== Dataset Structure ====") + for ep in demos: + print( + "episode {} with {} transitions".format( + ep, f["data/{}".format(ep)].attrs["num_samples"] + ) + ) + for k in f["data/{}".format(ep)]: + if k in ["obs", "next_obs"]: + print(" key: {}".format(k)) + for obs_k in f["data/{}/{}".format(ep, k)]: + shape = f["data/{}/{}/{}".format(ep, k, obs_k)].shape + print( + " observation key {} with shape {}".format(obs_k, shape) + ) + elif isinstance(f["data/{}/{}".format(ep, k)], h5py.Dataset): + key_shape = f["data/{}/{}".format(ep, k)].shape + print(" key: {} with shape {}".format(k, key_shape)) + + if not verbose: + break + + f.close() diff --git a/openpi/third_party/libero/libero/libero/utils/download_utils.py b/openpi/third_party/libero/libero/libero/utils/download_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..d93d9b6f77aa6c4c0cee10e61541be50d941bdae --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/download_utils.py @@ -0,0 +1,251 @@ +""" +Download functionalities adapted from Mandlekar et. al.: https://github.com/ARISE-Initiative/robomimic/blob/master/robomimic/utils/file_utils.py +""" +import os +import time +from tqdm import tqdm +from termcolor import colored +from pathlib import Path +import zipfile +import io +import urllib.request +import shutil + +from libero.libero import get_libero_path + +try: + from huggingface_hub import snapshot_download + import shutil + HUGGINGFACE_AVAILABLE = True +except ImportError: + HUGGINGFACE_AVAILABLE = False + +import libero.libero.utils.download_utils as download_utils +from libero.libero import get_libero_path + + +class DownloadProgressBar(tqdm): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def update_to(self, b=1, bsize=1, tsize=None): + if tsize is not None: + self.total = tsize + self.update(b * bsize - self.n) + + +def url_is_alive(url): + """ + Checks that a given URL is reachable. + From https://gist.github.com/dehowell/884204. + Args: + url (str): url string + Returns: + is_alive (bool): True if url is reachable, False otherwise + """ + request = urllib.request.Request(url) + # request.get_method = lambda: 'HEAD' + + try: + urllib.request.urlopen(request) + return True + except urllib.request.HTTPError: + return False + + +def download_url(url, download_dir, check_overwrite=True, is_zipfile=True): + """ + First checks that @url is reachable, then downloads the file + at that url into the directory specified by @download_dir. + Prints a progress bar during the download using tqdm. + Modified from https://github.com/tqdm/tqdm#hooks-and-callbacks, and + https://stackoverflow.com/a/53877507. + Args: + url (str): url string + download_dir (str): path to directory where file should be downloaded + check_overwrite (bool): if True, will sanity check the download fpath to make sure a file of that name + doesn't already exist there + """ + + # check if url is reachable. We need the sleep to make sure server doesn't reject subsequent requests + assert url_is_alive(url), "@download_url got unreachable url: {}".format(url) + time.sleep(0.5) + + # infer filename from url link + fname = url.split("/")[-1] + file_to_write = os.path.join(download_dir, fname) + + # If we're checking overwrite and the path already exists, + # we ask the user to verify that they want to overwrite the file + user_response = None + if check_overwrite and os.path.exists(file_to_write): + user_response = input( + f"Warning: file {file_to_write} already exists. Overwrite? y/n\n" + ) + # assert user_response.lower() in {"yes", "y"}, f"Did not receive confirmation. Aborting download." + + if user_response is None or user_response.lower() in {"yes", "y"}: + with DownloadProgressBar( + unit="B", unit_scale=True, miniters=1, desc=fname + ) as t: + urllib.request.urlretrieve( + url, filename=file_to_write, reporthook=t.update_to + ) + if is_zipfile: + with zipfile.ZipFile(file_to_write, "r") as archive: + archive.extractall(path=download_dir) + if os.path.isfile(file_to_write): + os.remove(file_to_write) + + +DATASET_LINKS = { + "libero_object": "https://utexas.box.com/shared/static/avkklgeq0e1dgzxz52x488whpu8mgspk.zip", + "libero_goal": "https://utexas.box.com/shared/static/iv5e4dos8yy2b212pkzkpxu9wbdgjfeg.zip", + "libero_spatial": "https://utexas.box.com/shared/static/04k94hyizn4huhbv5sz4ev9p2h1p6s7f.zip", + "libero_100": "https://utexas.box.com/shared/static/cv73j8zschq8auh9npzt876fdc1akvmk.zip", +} + +HF_REPO_ID = "yifengzhu-hf/LIBERO-datasets" + + +def download_from_huggingface(dataset_name, download_dir, check_overwrite=True): + """ + Download a specific LIBERO dataset from Hugging Face. + + Args: + dataset_name (str): Name of the dataset to download (e.g., 'libero_spatial') + download_dir (str): Directory where the dataset should be downloaded + check_overwrite (bool): If True, will check if dataset already exists + """ + if not HUGGINGFACE_AVAILABLE: + raise ImportError( + "Hugging Face Hub is not available. Install it with 'pip install huggingface_hub'" + ) + + # Create the destination folder + os.makedirs(download_dir, exist_ok=True) + + # Check if dataset already exists + dataset_dir = os.path.join(download_dir, dataset_name) + if check_overwrite and os.path.exists(dataset_dir): + user_response = input( + f"Warning: dataset {dataset_name} already exists at {dataset_dir}. Overwrite? y/n\n" + ) + if user_response.lower() not in {"yes", "y"}: + print(f"Skipping download of {dataset_name}") + return + + # Remove existing directory + print(f"Removing existing folder: {dataset_dir}") + shutil.rmtree(dataset_dir) + + # Download the dataset + print(f"Downloading {dataset_name} from Hugging Face...") + folder_path = snapshot_download( + repo_id=HF_REPO_ID, + repo_type="dataset", + local_dir=download_dir, + allow_patterns=f"{dataset_name}/*", + local_dir_use_symlinks=False, # Prevents using symlinks to cached files + force_download=True # Forces re-downloading files + ) + + # Verify downloaded files + file_count = sum([len(files) for _, _, files in os.walk(os.path.join(download_dir, dataset_name))]) + print(f"Downloaded {file_count} files for {dataset_name}") + + +def libero_dataset_download(datasets="all", download_dir=None, check_overwrite=True, use_huggingface=False): + """Download libero datasets + + Args: + datasets (str, optional): Specify which datasets to save. Defaults to "all", downloading all the datasets. + download_dir (str, optional): Target location for storing datasets. Defaults to None, using the default path. + check_overwrite (bool, optional): Check if overwriting datasets. Defaults to True. + use_huggingface (bool, optional): Use Hugging Face instead of the original download links. Defaults to False. + """ + if download_dir is None: + download_dir = get_libero_path("datasets") + if not os.path.exists(download_dir): + os.makedirs(download_dir) + + assert datasets in [ + "all", + "libero_object", + "libero_goal", + "libero_spatial", + "libero_100", + ] + + datasets_to_download = [ + "libero_object", + "libero_goal", + "libero_spatial", + "libero_100", + ] if datasets == "all" else [datasets] + + for dataset_name in datasets_to_download: + print(f"Downloading {dataset_name}") + + if use_huggingface: + download_from_huggingface( + dataset_name=dataset_name, + download_dir=download_dir, + check_overwrite=check_overwrite + ) + else: + print("Using original download links (these may expire soon)") + download_url( + DATASET_LINKS[dataset_name], + download_dir=download_dir, + check_overwrite=check_overwrite, + ) + + +def check_libero_dataset(download_dir=None): + """Check the integrity of the downloaded datasets. + + Args: + download_dir (str, optional): The path where datasets are stored. Defaults to None, using the default path. + + Returns: + bool: True if the datasets are successfully downloaded, False otherwise. + """ + if download_dir is None: + download_dir = get_libero_path("datasets") + check_result = True + for dataset_name in [ + "libero_object", + "libero_goal", + "libero_spatial", + "libero_10", + "libero_90", + ]: + info_str = "" + dataset_status = False + dataset_dir = os.path.join(download_dir, dataset_name) + if os.path.exists(dataset_dir): + count = 0 + for path in Path(dataset_dir).glob("*.hdf5"): + count += 1 + if (count == 10 and dataset_name != "libero_90") or ( + count == 90 and dataset_name == "libero_90" + ): + dataset_status = True + info_str = colored( + f"[X] Dataset {dataset_name} is complete", "green", attrs=["bold"] + ) + else: + colored( + f"[?] Dataset {dataset_name} is not downloaded completely", + "yellow", + attrs=["bold"], + ) + else: + info_str = colored( + f"[ ] Dataset {dataset_name} not found!!!", "red", attrs=["bold"] + ) + + print(info_str) + check_result = check_result and dataset_status + return check_result diff --git a/openpi/third_party/libero/libero/libero/utils/log_utils.py b/openpi/third_party/libero/libero/libero/utils/log_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..e2cb5361ed0add944b9b8e520e1c7594a9433c5a --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/log_utils.py @@ -0,0 +1,40 @@ +import logging +from termcolor import colored + + +class LiberoColorFormatter(logging.Formatter): + """This color format is for logging user's project wise information""" + + format_str = "[Project %(levelname)s] " + debug_message_str = "%(message)s (%(filename)s:%(lineno)d)" + message_str = "%(message)s" + FORMATS = { + logging.DEBUG: format_str + debug_message_str, + logging.INFO: message_str, + logging.WARNING: colored(format_str, "yellow", attrs=["bold"]) + message_str, + logging.ERROR: colored(format_str, "red", attrs=["bold"]) + message_str, + logging.CRITICAL: colored(format_str, "red", attrs=["bold", "reverse"]) + + message_str, + } + + def format(self, record): + log_fmt = self.FORMATS.get(record.levelno) + formatter = logging.Formatter(log_fmt) + return formatter.format(record) + + +class LiberoDefaultLogger: + def __init__(self, logger_config_path, project_name="libero"): + config = YamlConfig(logger_config_path).as_easydict() + config["loggers"][project_name] = config["loggers"]["project"] + os.makedirs("logs", exist_ok=True) + logging.config.dictConfig(config) + + +ProjectDefaultLogger(logger_config_path, project_name) + + +def get_project_logger(project_name="libero", logger_config_path=None): + """This function returns a logger that follows the deoxys convention""" + logger = logging.getLogger(project_name) + return logger diff --git a/openpi/third_party/libero/libero/libero/utils/mu_utils.py b/openpi/third_party/libero/libero/libero/utils/mu_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..0543f55d26b6d60ae927fd4a42545ac60324f5dc --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/mu_utils.py @@ -0,0 +1,131 @@ +import re + +from libero.libero.envs.objects import OBJECTS_DICT +from libero.libero.utils.bddl_generation_utils import ( + get_affordance_region_kwargs_list_from_fixture_info, + get_object_dict, +) +from libero.libero.utils.object_utils import get_affordance_regions + +MU_DICT = {} + +SCENE_DICT = {} + + +def register_mu(scene_type="general"): + def _func(target_class): + """For reusing initial conditions easily, we register each pre-defined initial conditions in a dictionary.""" + key = "_".join( + re.sub(r"([A-Z])", r" \1", target_class.__name__).split() + ).lower() + MU_DICT[key.lower()] = target_class + if scene_type not in SCENE_DICT: + SCENE_DICT[scene_type.lower()] = [] + SCENE_DICT[scene_type.lower()].append(target_class) + return target_class + + return _func + + +def get_scene_dict(scene_type=None): + if scene_type is None: + return SCENE_DICT + else: + return SCENE_DICT[scene_type.lower()] + + +def get_scene_class(scene_name): + return MU_DICT[scene_name.lower()] + + +class InitialSceneTemplates: + def __init__( + self, workspace_name="main_table", fixture_num_info={}, object_num_info={} + ): + + self.workspace_name = workspace_name + # print(self.workspace_name) + + self.fixture_object_dict = get_object_dict(fixture_num_info) + self.movable_object_dict = get_object_dict(object_num_info) + + affordances = get_affordance_regions(OBJECTS_DICT) + affordance_fixture_info_dict = {} + for fixture_category_name in self.fixture_object_dict.keys(): + if ( + fixture_category_name != self.workspace_name + and fixture_category_name != "table" + and fixture_category_name != "living_room_table" + and fixture_category_name != "study_table" + and fixture_category_name != "kitchen_table" + ): + for fixture_name in self.fixture_object_dict[fixture_category_name]: + affordance_fixture_info_dict[fixture_name] = affordances[ + fixture_category_name + ] + for category_name in self.movable_object_dict.keys(): + if category_name in affordances: + for object_name in self.movable_object_dict[category_name]: + affordance_fixture_info_dict[object_name] = affordances[ + category_name + ] + # print(affordance_fixture_info_dict) + self.affordance_region_kwargs_list = ( + get_affordance_region_kwargs_list_from_fixture_info( + affordance_fixture_info_dict + ) + ) + + self.regions = {} + self.define_regions() + + @property + def possible_objects_of_interest(self): + # objects_of_interest = list(self.fixture_object_dict.keys()) + list(self.movable_object_dict.keys()) + # return objects_of_interest + objects_of_interest = [] + for category_name in self.fixture_object_dict.keys(): + objects_of_interest += self.fixture_object_dict[category_name] + for category_name in self.movable_object_dict.keys(): + objects_of_interest += self.movable_object_dict[category_name] + return objects_of_interest + + @property + def movable_objects(self): + return list(self.movable_object_dict) + + def define_regions(self): + """Override this method to define the layout of a scene.""" + raise NotImplementedError + + def get_region_dict( + self, + region_centroid_xy, + region_name, + target_name=None, + region_half_len=0.02, + yaw_rotation=(0.0, 0.0), + ): + """This is a function that creates a default region with rectangular shape.""" + if target_name is None: + target_name = self.workspace_name + region_key_value = { + region_name: { + "target": target_name, + "ranges": [ + ( + region_centroid_xy[0] - region_half_len, + region_centroid_xy[1] - region_half_len, + region_centroid_xy[0] + region_half_len, + region_centroid_xy[1] + region_half_len, + ) + ], + "yaw_rotation": [yaw_rotation], + } + } + print + return region_key_value + + @property + def init_states(self): + raise NotImplementedError diff --git a/openpi/third_party/libero/libero/libero/utils/object_utils.py b/openpi/third_party/libero/libero/libero/utils/object_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..a1a1321053395579efb5d7a0f5a70fac0d7b7767 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/object_utils.py @@ -0,0 +1,51 @@ +# This is a util file for various functions that retrieve object information +from xml.etree import ElementTree + +from libero.libero.envs.objects import OBJECTS_DICT, get_object_fn + +EXCEPTION_DICT = {"flat_stove": "flat_stove_burner"} + + +def update_exception_dict(object_name, site_name): + """Update EXCEPTION_DICT information. This is to handle some special case of affordance region naming. + + Args: + object_name (str): object name + site_name (str): site name + """ + EXCEPTION_DICT[object_name] = site_name + + +def get_affordance_regions(objects, verbose=False): + """_summary_ + + Args: + objects (MujocoObject): a dictionary of objects + verbose (bool, optional): Print additional debug information. Defaults to False. + + Returns: + dict: a dictionary of object names and their affordance regions. + """ + affordances = {} + for object_name in objects.keys(): + try: + obj = get_object_fn(object_name)() + # print(obj.root.findall(".//site")) + object_affordance = [] + for site in obj.root.findall(".//site"): + site_name = site.get("name") + if "site" not in site_name and ( + object_name not in EXCEPTION_DICT + or object_name in EXCEPTION_DICT + and site_name not in EXCEPTION_DICT[object_name] + ): + # print(site_name) + # object name is already added as prefix when the object is initialized. remove them for consistency in bddl files + object_affordance.append(site_name.replace(f"{object_name}_", "")) + if len(object_affordance) > 0: + affordances[object_name] = object_affordance + except: + if verbose: + print(f"Skipping {object_name}") + + return affordances diff --git a/openpi/third_party/libero/libero/libero/utils/task_generation_utils.py b/openpi/third_party/libero/libero/libero/utils/task_generation_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..a4d51f86236664ae056d255834fa9f867a3d95f8 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/task_generation_utils.py @@ -0,0 +1,91 @@ +import os +from collections import namedtuple + +from libero.libero.utils.mu_utils import get_scene_class +from libero.libero.utils.bddl_generation_utils import * + +TASK_INFO = {} + +TaskInfoTuple = namedtuple( + "TaskInfoTuple", "scene_name language objects_of_interest goal_states" +) + + +def register_task_info(language, scene_name, objects_of_interest=[], goal_states=[]): + + if scene_name not in TASK_INFO: + TASK_INFO[scene_name] = [] + + scene = get_scene_class(scene_name)() + possible_objects_of_interest = scene.possible_objects_of_interest + for object_name in objects_of_interest: + if object_name not in possible_objects_of_interest: + print(f"Error!! {scene_name} not having valid objects: {object_name}") + print(possible_objects_of_interest) + raise ValueError + task_goal = [("And", *goal_states)] + TASK_INFO[scene_name].append( + TaskInfoTuple(scene_name, language, objects_of_interest, task_goal) + ) + + +def get_task_info(scene_name=None): + if scene_name is None: + return TASK_INFO + else: + return TASK_INFO[scene_name] + + +def get_suite_generator_func(workspace_name): + if workspace_name == "main_table": + return tabletop_task_suites_generator + elif workspace_name == "kitchen_table": + return kitchen_table_task_suites_generator + elif workspace_name == "living_room_table": + return living_room_table_task_suites_generator + elif workspace_name == "study_table": + return study_table_task_suites_generator + elif workspace_name == "coffee_table": + return coffee_table_task_suites_generator + else: + return floor_task_suites_generator + + +def generate_bddl_from_task_info(folder="/tmp/pddl"): + results = [] + failures = [] + bddl_file_names = [] + os.makedirs(folder, exist_ok=True) + + registered_task_info_dict = get_task_info() + for scene_name in registered_task_info_dict: + for task_info_tuple in registered_task_info_dict[scene_name]: + scene_name = task_info_tuple.scene_name + language = task_info_tuple.language + objects_of_interest = task_info_tuple.objects_of_interest + goal_states = task_info_tuple.goal_states + scene = get_scene_class(scene_name)() + + try: + result = get_suite_generator_func(scene.workspace_name)( + language=language, + xy_region_kwargs_list=scene.xy_region_kwargs_list, + affordance_region_kwargs_list=scene.affordance_region_kwargs_list, + fixture_object_dict=scene.fixture_object_dict, + movable_object_dict=scene.movable_object_dict, + objects_of_interest=objects_of_interest, + init_states=scene.init_states, + goal_states=goal_states, + ) + result = get_result(result) + bddl_file_name = save_to_file( + result, scene_name=scene_name, language=language, folder=folder + ) + if bddl_file_name in bddl_file_names: + print(bddl_file_name) + bddl_file_names.append(bddl_file_name) + results.append(result) + except: + failures.append((scene_name, language)) + print(f"Succefully generated: {len(results)}") + return bddl_file_names, failures diff --git a/openpi/third_party/libero/libero/libero/utils/time_utils.py b/openpi/third_party/libero/libero/libero/utils/time_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..106888f088706349d39faf482a0c05ada107725a --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/time_utils.py @@ -0,0 +1,14 @@ +import time + + +class Timer: + def __enter__(self): + self.start_time = time.time_ns() + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + end_time = time.time_ns() + self.value = (end_time - self.start_time) / (10**9) + + def get_elapsed_time(self): + return self.value diff --git a/openpi/third_party/libero/libero/libero/utils/utils.py b/openpi/third_party/libero/libero/libero/utils/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..1f5a990a8e16b3876370345b6962b2a4fb1903e5 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/utils.py @@ -0,0 +1,75 @@ +import os +import xml.etree.ElementTree as ET +import robosuite +from robosuite.utils.mjcf_utils import find_elements +import numpy as np +import json +import torch +import random +from pathlib import Path + +DIR = os.path.dirname(__file__) + + +def postprocess_model_xml(xml_str, cameras_dict={}): + """ + This function postprocesses the model.xml collected from a MuJoCo demonstration + in order to make sure that the STL files can be found. + + Args: + xml_str (str): Mujoco sim demonstration XML file as string + + Returns: + str: Post-processed xml file as string + """ + + path = os.path.split(robosuite.__file__)[0] + path_split = path.split("/") + + # replace mesh and texture file paths + tree = ET.fromstring(xml_str) + root = tree + asset = root.find("asset") + meshes = asset.findall("mesh") + textures = asset.findall("texture") + all_elements = meshes + textures + + for elem in all_elements: + old_path = elem.get("file") + if old_path is None: + continue + old_path_split = old_path.split("/") + if "robosuite" not in old_path_split: + continue + ind = max( + loc for loc, val in enumerate(old_path_split) if val == "robosuite" + ) # last occurrence index + new_path_split = path_split + old_path_split[ind + 1 :] + new_path = "/".join(new_path_split) + elem.set("file", new_path) + + # cameras = root.find("worldbody").findall("camera") + cameras = find_elements(root=tree, tags="camera", return_first=False) + for camera in cameras: + camera_name = camera.get("name") + if camera_name in cameras_dict: + camera.set("name", camera_name) + camera.set("pos", cameras_dict[camera_name]["pos"]) + camera.set("quat", cameras_dict[camera_name]["quat"]) + camera.set("mode", "fixed") + return ET.tostring(root, encoding="utf8").decode("utf8") + + +def process_image_input(img_tensor): + # return (img_tensor / 255. - 0.5) * 2. + return img_tensor / 255.0 + + +def reconstruct_image_output(img_array): + # return (img_array + 1.) / 2. * 255. + return img_array * 255.0 + + +def update_env_kwargs(env_kwargs, **kwargs): + for (k, v) in kwargs.items(): + env_kwargs[k] = v diff --git a/openpi/third_party/libero/libero/libero/utils/video_utils.py b/openpi/third_party/libero/libero/libero/utils/video_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..6518231b3e18819ecdd381e6afcc6533d20ef217 --- /dev/null +++ b/openpi/third_party/libero/libero/libero/utils/video_utils.py @@ -0,0 +1,77 @@ +import os +import imageio +import numpy as np + + +class VideoWriter: + def __init__(self, video_path, save_video=False, fps=30, single_video=True): + self.video_path = video_path + self.save_video = save_video + self.fps = fps + self.image_buffer = {} + self.last_images = {} + self.single_video = single_video + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.save() + + def append_image(self, img, idx=0): + """Directly append an image to the video.""" + if self.save_video: + if idx not in self.image_buffer: + self.image_buffer[idx] = [] + self.image_buffer[idx].append(img) + + def append_obs(self, obs, done, idx=0, camera_name="agentview_image"): + """Append a camera observation to the video.""" + if self.save_video: + if idx not in self.image_buffer: + self.image_buffer[idx] = [] + if idx not in self.last_images: + self.last_images[idx] = None + if not done: + self.image_buffer[idx].append(obs[camera_name][::-1]) + else: + if self.last_images[idx] is None: + self.last_images[idx] = obs[camera_name][::-1] + original_image = np.copy(self.last_images[idx]) + blank_image = np.ones_like(original_image) * 128 + blank_image[:, :, 0] = 0 + blank_image[:, :, -1] = 0 + transparency = 0.7 + original_image = ( + original_image * (1 - transparency) + blank_image * transparency + ) + + self.image_buffer[idx].append(original_image.astype(np.uint8)) + + def reset(self): + if self.save_video: + self.last_images = {} + + def append_vector_obs(self, obs, dones, camera_name="agentview_image"): + if self.save_video: + for i in range(len(obs)): + self.append_obs(obs[i], dones[i], i, camera_name) + + def save(self): + if self.save_video: + os.makedirs(self.video_path, exist_ok=True) + if self.single_video: + video_name = os.path.join(self.video_path, f"video.mp4") + video_writer = imageio.get_writer(video_name, fps=self.fps) + for idx in self.image_buffer.keys(): + for im in self.image_buffer[idx]: + video_writer.append_data(im) + video_writer.close() + else: + for idx in self.image_buffer.keys(): + video_name = os.path.join(self.video_path, f"{idx}.mp4") + video_writer = imageio.get_writer(video_name, fps=self.fps) + for im in self.image_buffer[idx]: + video_writer.append_data(im) + video_writer.close() + print(f"Saved videos to {self.video_path}.")