| | from collections import OrderedDict |
| | import os |
| | |
| | |
| |
|
| | DEBUG = True |
| | EVAL = False |
| | LOG_FILE = 'logs_gen' |
| |
|
| | RECORD_VIDEO_IMAGES = True |
| | RECORD_SMOOTHING_FACTOR = 1 |
| | DATA_SAVE_PATH = "dataset/new_trajectories" |
| |
|
| | OPEN_LOOP = True |
| | FULL_OBSERVABLE_STATE = True |
| |
|
| | |
| | |
| |
|
| | MAX_NUM_OF_OBJ_INSTANCES = 3 |
| | PICKUP_REPEAT_MAX = 4 |
| | RECEPTACLE_SPARSE_POINTS = 50 |
| | RECEPTACLE_EMPTY_POINTS = 200 |
| |
|
| | MIN_VISIBLE_RATIO = 0.0011 |
| | PLANNER_MAX_STEPS = 100 |
| | MAX_EPISODE_LENGTH = 1000 |
| |
|
| | FORCED_SAMPLING = False |
| | PRUNE_UNREACHABLE_POINTS = True |
| |
|
| | |
| | |
| |
|
| | GOALS = ["pick_and_place_simple", |
| | "pick_two_obj_and_place", |
| | "look_at_obj_in_light", |
| | "pick_clean_then_place_in_recep", |
| | "pick_heat_then_place_in_recep", |
| | "pick_cool_then_place_in_recep", |
| | "pick_and_place_with_movable_recep"] |
| |
|
| | GOALS_VALID = {"pick_and_place_simple": {"Kitchen", "LivingRoom", "Bathroom", "Bedroom"}, |
| | "pick_two_obj_and_place": {"Kitchen", "LivingRoom", "Bathroom", "Bedroom"}, |
| | "look_at_obj_in_light": {"LivingRoom", "Bedroom"}, |
| | "pick_clean_then_place_in_recep": {"Kitchen", "Bathroom"}, |
| | "pick_heat_then_place_in_recep": {"Kitchen"}, |
| | "pick_cool_then_place_in_recep": {"Kitchen"}, |
| | "pick_and_place_with_movable_recep": {"Kitchen", "LivingRoom", "Bedroom"}} |
| |
|
| | pddl_goal_type = "pick_and_place_simple" |
| |
|
| | |
| | |
| |
|
| | |
| | BEFORE = 0 |
| | MIDDLE = 1 |
| | AFTER = 2 |
| |
|
| | |
| | SAVE_FRAME_BEFORE_AND_AFTER_COUNTS = { |
| | 'OpenObject': [2, 0, 2], |
| | 'CloseObject': [2, 0, 2], |
| | 'PickupObject': [5, 0, 10], |
| | 'PutObject': [5, 0, 10], |
| | 'CleanObject': [3, 0, 5], |
| | 'HeatObject': [3, 0, 5], |
| | 'CoolObject': [3, 30, 5], |
| | 'ToggleObjectOn': [3, 0, 15], |
| | 'ToggleObjectOff': [1, 0, 5], |
| | 'SliceObject': [3, 0, 7] |
| | } |
| |
|
| | |
| | VIDEO_FRAME_RATE = 30 |
| |
|
| | |
| | |
| |
|
| | save_path = DATA_SAVE_PATH |
| | data_dict = OrderedDict() |
| |
|
| | |
| | |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | BUILD_PATH = '/home/user/Desktop/builds/thor-Linux64-local/thor-Linux64-local' |
| |
|
| | X_DISPLAY = '1' |
| |
|
| | AGENT_STEP_SIZE = 0.25 |
| | AGENT_HORIZON_ADJ = 15 |
| | AGENT_ROTATE_ADJ = 90 |
| | CAMERA_HEIGHT_OFFSET = 0.75 |
| | VISIBILITY_DISTANCE = 1.5 |
| | HORIZON_GRANULARITY = 15 |
| |
|
| | RENDER_IMAGE = True |
| | RENDER_DEPTH_IMAGE = True |
| | RENDER_CLASS_IMAGE = True |
| | RENDER_OBJECT_IMAGE = True |
| |
|
| | MAX_DEPTH = 5000 |
| | STEPS_AHEAD = 5 |
| | SCENE_PADDING = STEPS_AHEAD * 3 |
| | SCREEN_WIDTH = DETECTION_SCREEN_WIDTH = 300 |
| | SCREEN_HEIGHT = DETECTION_SCREEN_HEIGHT = 300 |
| | MIN_VISIBLE_PIXELS = 10 |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| |
|
| | TRAIN_SCENE_NUMBERS = list(range(7, 31)) |
| | TRAIN_SCENE_NUMBERS.extend(list(range(207, 231))) |
| | TRAIN_SCENE_NUMBERS.extend(list(range(307, 331))) |
| | TRAIN_SCENE_NUMBERS.extend(list(range(407, 431))) |
| |
|
| | TEST_SCENE_NUMBERS = list(range(1, 7)) |
| | TEST_SCENE_NUMBERS.extend(list(range(201, 207))) |
| | TEST_SCENE_NUMBERS.extend(list(range(301, 307))) |
| | TEST_SCENE_NUMBERS.extend(list(range(401, 407))) |
| |
|
| | SCENE_NUMBERS = TRAIN_SCENE_NUMBERS + TEST_SCENE_NUMBERS |
| |
|
| | |
| | SCENE_TYPE = {"Entire": range(1, 151), |
| | "Splitted": range(201, 301)} |
| |
|
| | OBJECTS = [ |
| | "AirConditioner", |
| | "AirPurifier", |
| | "AlarmClock", |
| | "Apple", |
| | "ArmChair", |
| | "Banana", |
| | "BaseballBat", |
| | "Basket", |
| | "BasketBall", |
| | "Bathtub", |
| | "BathtubBasin", |
| | "Bed", |
| | "Book", |
| | "Bottle", |
| | "Bowl", |
| | "Box", |
| | "Bread", |
| | "BreadSliced", |
| | "ButterKnife", |
| | "CD", |
| | "Cabinet", |
| | "Caculator", |
| | "Candle", |
| | "CannedFood", |
| | "CellPhone", |
| | "Chair", |
| | "Cloth", |
| | "CoffeeMachine", |
| | "CoffeeTable", |
| | "Comb", |
| | "ComputerMouse", |
| | "Controller", |
| | "Cookie", |
| | "CounterTop", |
| | "CreditCard", |
| | "Cup", |
| | "CuttingBoard", |
| | "Desk", |
| | "DeskLamp", |
| | "Desktop", |
| | "DiningTable", |
| | "DishSponge", |
| | "Drawer", |
| | "Dresser", |
| | "DressingTable", |
| | "Dumbbell", |
| | "Egg", |
| | "Eggplant", |
| | "Fan", |
| | "Faucet", |
| | "FloorLamp", |
| | "Flute", |
| | "Footstool", |
| | "Fork", |
| | "Fridge", |
| | "GarbageCan", |
| | "Grape", |
| | "Hammer", |
| | "HandTowel", |
| | "HandTowelHolder", |
| | "Headband", |
| | "Kettle", |
| | "KeyChain", |
| | "Keyboard", |
| | "Knife", |
| | "Ladle", |
| | "Laptop", |
| | "Lemon", |
| | "Lettuce", |
| | "Mango", |
| | "Microwave", |
| | "Mirror", |
| | "Monitor", |
| | "Mug", |
| | "Newspaper", |
| | "Onion", |
| | "Ottoman", |
| | "Pan", |
| | "Peach", |
| | "Pen", |
| | "Pencil", |
| | "PencilCase", |
| | "PepperShaker", |
| | "Pillow", |
| | "Plate", |
| | "Plum", |
| | "Plunger", |
| | "Pot", |
| | "Potato", |
| | "Pumpkin", |
| | "RemoteControl", |
| | "Safe", |
| | "SaltShaker", |
| | "Scissors", |
| | "Shelf", |
| | "ShelvingUnit", |
| | "ShowerCurtain", |
| | "ShowerHead", |
| | "SideTable", |
| | "Sink", |
| | "SinkBasin", |
| | "SoapBar", |
| | "SoapBottle", |
| | "Sofa", |
| | "Spatula", |
| | "Spoon", |
| | "SprayBottle", |
| | "Statue", |
| | "Stool", |
| | "StoveBurner", |
| | "Strawberry", |
| | "TVStand", |
| | "Table", |
| | "Tambourine", |
| | "Television", |
| | "TennisRacket", |
| | "TissueBox", |
| | "Toilet", |
| | "ToiletPaper", |
| | "Tomato", |
| | "Towel", |
| | "TowelHolder", |
| | "Undefined", |
| | "Vase", |
| | "WashingMachine", |
| | "Watch", |
| | "WateringCan", |
| | "Watermelon", |
| | "WineBottle" |
| | ] |
| | OBJECTS_WSLICED = sorted(OBJECTS + |
| | ["AppleSliced", "BreadSliced", "LettuceSliced", "EggCracked", "PotatoSliced", "TomatoSliced", "OnionSliced", "StrawberrySliced", "LemonSliced", "BananaSliced", "EggplantSliced"]) |
| |
|
| |
|
| | OBJECTS_LOWER_TO_UPPER = {obj.lower(): obj for obj in OBJECTS} |
| |
|
| |
|
| | MOVABLE_RECEPTACLES = [ |
| | 'Bowl', |
| | 'Box', |
| | 'Cup', |
| | 'Mug', |
| | 'Plate', |
| | 'Pan', |
| | 'Pot', |
| | ] |
| |
|
| | MOVABLE_RECEPTACLES_SET = set(MOVABLE_RECEPTACLES) |
| | OBJECTS_SET = set(OBJECTS) | MOVABLE_RECEPTACLES_SET |
| |
|
| | OBJECT_CLASS_TO_ID = {obj: ii for (ii, obj) in enumerate(OBJECTS)} |
| |
|
| | RECEPTACLES = { |
| | 'BathtubBasin', |
| | 'Bowl', |
| | 'Cup', |
| | 'Drawer', |
| | 'Mug', |
| | 'Plate', |
| | 'Shelf', |
| | 'SinkBasin', |
| | 'Box', |
| | 'Cabinet', |
| | 'CoffeeMachine', |
| | 'CounterTop', |
| | 'Fridge', |
| | 'GarbageCan', |
| | 'HandTowelHolder', |
| | 'Microwave', |
| | 'PaintingHanger', |
| | 'Pan', |
| | 'Pot', |
| | 'StoveBurner', |
| | 'DiningTable', |
| | 'CoffeeTable', |
| | 'SideTable', |
| | 'ToiletPaperHanger', |
| | 'TowelHolder', |
| | 'Safe', |
| | 'Bathtub', |
| | 'ArmChair', |
| | 'Toilet', |
| | 'Sofa', |
| | 'Ottoman', |
| | 'Dresser', |
| | 'LaundryHamper', |
| | 'Desk', |
| | 'Bed', |
| | 'Cart', |
| | 'TVStand', |
| | 'Toaster', |
| | 'DressingTable', |
| | 'Sink', |
| | 'Table' |
| | } |
| |
|
| | NON_RECEPTACLES = OBJECTS_SET - RECEPTACLES |
| |
|
| | NUM_RECEPTACLES = len(RECEPTACLES) |
| | NUM_CLASSES = len(OBJECTS) |
| |
|
| | |
| | QUESTION_OBJECT_CLASS_LIST = [ |
| | 'Spoon', |
| | 'Potato', |
| | 'Fork', |
| | 'Plate', |
| | 'Egg', |
| | 'Tomato', |
| | 'Bowl', |
| | 'Lettuce', |
| | 'Apple', |
| | 'Knife', |
| | 'Container', |
| | 'Bread', |
| | 'Mug', |
| | ] |
| |
|
| | RECEPTACLES_SB = set(RECEPTACLES) | {'Sink', 'Bathtub'} |
| | OBJECTS_DETECTOR = (set(OBJECTS_WSLICED) - set(RECEPTACLES_SB)) | set(MOVABLE_RECEPTACLES) |
| | OBJECTS_DETECTOR -= {'Blinds', 'Boots', 'Cart', 'Chair', 'Curtains', 'Footstool', 'Mirror', 'LightSwtich', 'Painting', 'Poster', 'ShowerGlass', 'Window'} |
| | STATIC_RECEPTACLES = set(RECEPTACLES_SB) - set(MOVABLE_RECEPTACLES) |
| |
|
| | OBJECTS_DETECTOR = sorted(list(OBJECTS_DETECTOR)) |
| | STATIC_RECEPTACLES = sorted(list(STATIC_RECEPTACLES)) |
| | ALL_DETECTOR = sorted(list(set(OBJECTS_DETECTOR) | set(STATIC_RECEPTACLES))) |
| |
|
| |
|
| |
|
| | VAL_RECEPTACLE_OBJECTS = { |
| | 'Pot': {'Apple', |
| | 'AppleSliced', |
| | 'ButterKnife', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Fork', |
| | 'Knife', |
| | 'Ladle', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Spatula', |
| | 'Spoon', |
| | 'Tomato', |
| | 'TomatoSliced'}, |
| | 'Pan': {'Apple', |
| | 'AppleSliced', |
| | 'ButterKnife', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Fork', |
| | 'Knife', |
| | 'Ladle', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Spatula', |
| | 'Spoon', |
| | 'Tomato', |
| | 'TomatoSliced'}, |
| | 'Bowl': {'Apple', |
| | 'AppleSliced', |
| | 'ButterKnife', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Fork', |
| | 'Knife', |
| | 'Ladle', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Spatula', |
| | 'Spoon', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'DishSponge', |
| | 'KeyChain', |
| | 'Mug', |
| | 'PaperTowel', |
| | 'Pen', |
| | 'Pencil', |
| | 'RemoteControl', |
| | 'Watch'}, |
| | 'CoffeeMachine': {'Mug'}, |
| | 'Microwave': {'Apple', |
| | 'AppleSliced', |
| | 'Bowl', |
| | 'Bread', |
| | 'BreadSliced', |
| | 'Cup', |
| | 'Egg', |
| | 'Glassbottle', |
| | 'Mug', |
| | 'Plate', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Tomato', |
| | 'TomatoSliced'}, |
| | 'StoveBurner': {'Kettle', |
| | 'Pan', |
| | 'Pot'}, |
| | 'Fridge': {'Apple', |
| | 'AppleSliced', |
| | 'Bowl', |
| | 'Bread', |
| | 'BreadSliced', |
| | 'Cup', |
| | 'Egg', |
| | 'Glassbottle', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Mug', |
| | 'Pan', |
| | 'Plate', |
| | 'Pot', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'WineBottle'}, |
| | 'Mug': {'ButterKnife', |
| | 'Fork', |
| | 'Knife', |
| | 'Pen', |
| | 'Pencil', |
| | 'Spoon', |
| | 'KeyChain', |
| | 'Watch'}, |
| | 'Plate': {'Apple', |
| | 'AppleSliced', |
| | 'ButterKnife', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Fork', |
| | 'Knife', |
| | 'Ladle', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Mug', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Spatula', |
| | 'Spoon', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'AlarmClock', |
| | 'Book', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'DishSponge', |
| | 'Glassbottle', |
| | 'KeyChain', |
| | 'Mug', |
| | 'PaperTowel', |
| | 'Pen', |
| | 'Pencil', |
| | 'TissueBox', |
| | 'Watch'}, |
| | 'Cup': {'ButterKnife', |
| | 'Fork', |
| | 'Spoon'}, |
| | 'Sofa': {'BasketBall', |
| | 'Book', |
| | 'Box', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'KeyChain', |
| | 'Laptop', |
| | 'Newspaper', |
| | 'Pillow', |
| | 'RemoteControl'}, |
| | 'ArmChair': {'BasketBall', |
| | 'Book', |
| | 'Box', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'KeyChain', |
| | 'Laptop', |
| | 'Newspaper', |
| | 'Pillow', |
| | 'RemoteControl'}, |
| | 'Box': {'AlarmClock', |
| | 'Book', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'DishSponge', |
| | 'Glassbottle', |
| | 'KeyChain', |
| | 'Mug', |
| | 'PaperTowel', |
| | 'Pen', |
| | 'Pencil', |
| | 'RemoteControl', |
| | 'Statue', |
| | 'TissueBox', |
| | 'Vase', |
| | 'Watch'}, |
| | 'Ottoman': {'BasketBall', |
| | 'Book', |
| | 'Box', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'KeyChain', |
| | 'Laptop', |
| | 'Newspaper', |
| | 'Pillow', |
| | 'RemoteControl'}, |
| | 'Dresser': {'AlarmClock', |
| | 'BasketBall', |
| | 'Book', |
| | 'Bowl', |
| | 'Box', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'Cup', |
| | 'Glassbottle', |
| | 'KeyChain', |
| | 'Laptop', |
| | 'Mug', |
| | 'Newspaper', |
| | 'Pen', |
| | 'Pencil', |
| | 'Plate', |
| | 'RemoteControl', |
| | 'SprayBottle', |
| | 'Statue', |
| | 'TennisRacket', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Vase', |
| | 'Watch', |
| | 'WateringCan', |
| | 'WineBottle'}, |
| | 'LaundryHamper': {'Cloth'}, |
| | 'Desk': {'AlarmClock', |
| | 'BasketBall', |
| | 'Book', |
| | 'Bowl', |
| | 'Box', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'Cup', |
| | 'Glassbottle', |
| | 'KeyChain', |
| | 'Laptop', |
| | 'Mug', |
| | 'Newspaper', |
| | 'Pen', |
| | 'Pencil', |
| | 'Plate', |
| | 'RemoteControl', |
| | 'SoapBottle', |
| | 'SprayBottle', |
| | 'Statue', |
| | 'TennisRacket', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Vase', |
| | 'Watch', |
| | 'WateringCan', |
| | 'WineBottle'}, |
| | 'Bed': {'BaseballBat', |
| | 'BasketBall', |
| | 'Book', |
| | 'CellPhone', |
| | 'Laptop', |
| | 'Newspaper', |
| | 'Pillow', |
| | 'TennisRacket'}, |
| | 'Toilet': {'Candle', |
| | 'Cloth', |
| | 'DishSponge', |
| | 'Newspaper', |
| | 'PaperTowel', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'SprayBottle', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'HandTowel'}, |
| | 'ToiletPaperHanger': {'ToiletPaper', |
| | 'ToiletPaperRoll'}, |
| | 'TowelHolder': {'Towel'}, |
| | 'HandTowelHolder': {'HandTowel'}, |
| | 'Cart': {'Candle', |
| | 'Cloth', |
| | 'DishSponge', |
| | 'Mug', |
| | 'PaperTowel', |
| | 'Plunger', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'SprayBottle', |
| | 'Statue', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Vase', |
| | 'HandTowel'}, |
| | 'BathtubBasin': {'Cloth', |
| | 'DishSponge', |
| | 'SoapBar', |
| | 'HandTowel'}, |
| | 'SinkBasin': {'Apple', |
| | 'AppleSliced', |
| | 'Bowl', |
| | 'ButterKnife', |
| | 'Cloth', |
| | 'Cup', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Glassbottle', |
| | 'Fork', |
| | 'Kettle', |
| | 'Knife', |
| | 'Ladle', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Mug', |
| | 'Pan', |
| | 'Plate', |
| | 'Pot', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'SoapBar', |
| | 'Spatula', |
| | 'Spoon', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'HandTowel'}, |
| | 'Cabinet': {'Book', |
| | 'Bowl', |
| | 'Box', |
| | 'Candle', |
| | 'CD', |
| | 'Cloth', |
| | 'Cup', |
| | 'DishSponge', |
| | 'Glassbottle', |
| | 'Kettle', |
| | 'Ladle', |
| | 'Mug', |
| | 'Newspaper', |
| | 'Pan', |
| | 'PepperShaker', |
| | 'Plate', |
| | 'Plunger', |
| | 'Pot', |
| | 'SaltShaker', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'SprayBottle', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Vase', |
| | 'WateringCan', |
| | 'WineBottle', |
| | 'HandTowel'}, |
| | 'TableTop': {'AlarmClock', |
| | 'Apple', |
| | 'AppleSliced', |
| | 'BaseballBat', |
| | 'BasketBall', |
| | 'Book', |
| | 'Bowl', |
| | 'Box', |
| | 'Bread', |
| | 'BreadSliced', |
| | 'ButterKnife', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'Cup', |
| | 'DishSponge', |
| | 'Glassbottle', |
| | 'Egg', |
| | 'Fork', |
| | 'Kettle', |
| | 'KeyChain', |
| | 'Knife', |
| | 'Ladle', |
| | 'Laptop', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Mug', |
| | 'Newspaper', |
| | 'Pan', |
| | 'PaperTowel', |
| | 'Pen', |
| | 'Pencil', |
| | 'PepperShaker', |
| | 'Plate', |
| | 'Pot', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'RemoteControl', |
| | 'SaltShaker', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'Spatula', |
| | 'Spoon', |
| | 'SprayBottle', |
| | 'Statue', |
| | 'TennisRacket', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'Vase', |
| | 'Watch', |
| | 'WateringCan', |
| | 'WineBottle', |
| | 'HandTowel'}, |
| | 'CounterTop': {'AlarmClock', |
| | 'Apple', |
| | 'AppleSliced', |
| | 'BaseballBat', |
| | 'BasketBall', |
| | 'Book', |
| | 'Bowl', |
| | 'Box', |
| | 'Bread', |
| | 'BreadSliced', |
| | 'ButterKnife', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'Cup', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Glassbottle', |
| | 'Fork', |
| | 'Kettle', |
| | 'KeyChain', |
| | 'Knife', |
| | 'Ladle', |
| | 'Laptop', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Mug', |
| | 'Newspaper', |
| | 'Pan', |
| | 'PaperTowel', |
| | 'Pen', |
| | 'Pencil', |
| | 'PepperShaker', |
| | 'Plate', |
| | 'Pot', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'RemoteControl', |
| | 'SaltShaker', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'Spatula', |
| | 'Spoon', |
| | 'SprayBottle', |
| | 'Statue', |
| | 'TennisRacket', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'Vase', |
| | 'Watch', |
| | 'WateringCan', |
| | 'WineBottle', |
| | 'HandTowel'}, |
| | 'Shelf': {'AlarmClock', |
| | 'Book', |
| | 'Bowl', |
| | 'Box', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'Cup', |
| | 'DishSponge', |
| | 'Glassbottle', |
| | 'Kettle', |
| | 'KeyChain', |
| | 'Mug', |
| | 'Newspaper', |
| | 'PaperTowel', |
| | 'Pen', |
| | 'Pencil', |
| | 'PepperShaker', |
| | 'Plate', |
| | 'Pot', |
| | 'RemoteControl', |
| | 'SaltShaker', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'SprayBottle', |
| | 'Statue', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Vase', |
| | 'Watch', |
| | 'WateringCan', |
| | 'WineBottle', |
| | 'HandTowel'}, |
| | 'Drawer': {'Book', |
| | 'ButterKnife', |
| | 'Candle', |
| | 'CD', |
| | 'CellPhone', |
| | 'Cloth', |
| | 'CreditCard', |
| | 'DishSponge', |
| | 'Fork', |
| | 'KeyChain', |
| | 'Knife', |
| | 'Ladle', |
| | 'Newspaper', |
| | 'Pen', |
| | 'Pencil', |
| | 'PepperShaker', |
| | 'RemoteControl', |
| | 'SaltShaker', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'Spatula', |
| | 'Spoon', |
| | 'SprayBottle', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Watch', |
| | 'WateringCan', |
| | 'HandTowel'}, |
| | 'GarbageCan': {'Apple', |
| | 'AppleSliced', |
| | 'Bread', |
| | 'BreadSliced', |
| | 'CD', |
| | 'Cloth', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Newspaper', |
| | 'PaperTowel', |
| | 'Pen', |
| | 'Pencil', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'SoapBar', |
| | 'SoapBottle', |
| | 'SprayBottle', |
| | 'TissueBox', |
| | 'ToiletPaper', |
| | 'ToiletPaperRoll', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'WineBottle', |
| | 'HandTowel'}, |
| | 'Safe': {'CD', |
| | 'CellPhone', |
| | 'CreditCard', |
| | 'KeyChain', |
| | 'Statue', |
| | 'Vase', |
| | 'Watch'}, |
| | 'TVStand': {'TissueBox'}, |
| | 'Toaster': {'BreadSliced'}, |
| | } |
| | VAL_RECEPTACLE_OBJECTS['DiningTable'] = VAL_RECEPTACLE_OBJECTS['TableTop'] |
| | VAL_RECEPTACLE_OBJECTS['CoffeeTable'] = VAL_RECEPTACLE_OBJECTS['TableTop'] |
| | VAL_RECEPTACLE_OBJECTS['SideTable'] = VAL_RECEPTACLE_OBJECTS['TableTop'] |
| | del VAL_RECEPTACLE_OBJECTS['TableTop'] |
| |
|
| | NON_RECEPTACLES_SET = (OBJECTS_SET - set(VAL_RECEPTACLE_OBJECTS.keys())) | set(MOVABLE_RECEPTACLES) |
| |
|
| | VAL_ACTION_OBJECTS = { |
| | 'Heatable': {'Apple', |
| | 'AppleSliced', |
| | 'Bread', |
| | 'BreadSliced', |
| | 'Cup', |
| | 'Egg', |
| | 'Mug', |
| | 'Plate', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Tomato', |
| | 'TomatoSliced'}, |
| | 'Coolable': {'Apple', |
| | 'AppleSliced', |
| | 'Bowl', |
| | 'Bread', |
| | 'BreadSliced', |
| | 'Cup', |
| | 'Egg', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Mug', |
| | 'Pan', |
| | 'Plate', |
| | 'Pot', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'Tomato', |
| | 'TomatoSliced', |
| | 'WineBottle'}, |
| | 'Cleanable': {'Apple', |
| | 'AppleSliced', |
| | 'Bowl', |
| | 'ButterKnife', |
| | 'Cloth', |
| | 'Cup', |
| | 'DishSponge', |
| | 'Egg', |
| | 'Fork', |
| | 'Kettle', |
| | 'Knife', |
| | 'Ladle', |
| | 'Lettuce', |
| | 'LettuceSliced', |
| | 'Mug', |
| | 'Pan', |
| | 'Plate', |
| | 'Pot', |
| | 'Potato', |
| | 'PotatoSliced', |
| | 'SoapBar', |
| | 'Spatula', |
| | 'Spoon', |
| | 'Tomato', |
| | 'TomatoSliced'}, |
| | 'Toggleable': {'DeskLamp', |
| | 'FloorLamp'}, |
| | 'Sliceable': {'Apple', |
| | 'Bread', |
| | 'Egg', |
| | 'Lettuce', |
| | 'Potato', |
| | 'Tomato'} |
| | } |
| |
|
| | |
| | OBJ_PARENTS = {obj: obj for obj in OBJECTS} |
| | OBJ_PARENTS['AppleSliced'] = 'Apple' |
| | OBJ_PARENTS['BreadSliced'] = 'Bread' |
| | OBJ_PARENTS['LettuceSliced'] = 'Lettuce' |
| | OBJ_PARENTS['PotatoSliced'] = 'Potato' |
| | OBJ_PARENTS['TomatoSliced'] = 'Tomato' |
| | OBJ_PARENTS['EggCracked'] = 'Egg' |
| | OBJ_PARENTS['OnionSliced'] = 'Onion' |
| | OBJ_PARENTS['StrawberrySliced'] = 'Strawberry' |
| | OBJ_PARENTS['LemonSliced'] = 'Lemon' |
| | OBJ_PARENTS['BananaSliced'] = 'Banana' |
| | OBJ_PARENTS['EggplantSliced'] = 'Eggplant' |
| |
|
| | |
| | |
| | FORCED_HORIZON_OBJS = { |
| | ('FloorLamp', None): 0, |
| | ('Fridge', 18): 30, |
| | ('Toilet', None): 15, |
| | } |
| |
|
| | |
| | FORCED_OPEN_STATE_ON_PICKUP = { |
| | 'Laptop': False, |
| | } |
| |
|
| | |
| | OPENABLE_CLASS_LIST = ['Fridge', 'Cabinet', 'Microwave', 'Drawer', 'Safe', 'Box'] |
| | OPENABLE_CLASS_SET = set(OPENABLE_CLASS_LIST) |
| | |
| | |