in Luminous4Alfred/TaskParser/cdf_gene/utils.py [0:0]
def get_task_goals_and_script(example):
targets = get_targets(example)
if example['task_type'] == "look_at_obj_in_light":
task_goal = {
"goal_id": 0,
"object_states": [
{
"name": "{}_1".format(targets['toggle']),
"isToggled": True
},
{
"name": "{}_1".format(targets['object']),
"isPickedUp": True
}
],
"object_states_relation": "and"
}
script = [
{
"action": "GotoLocation",
"name": "{}_1".format(targets['object'])
},
{
"action": "PickupObject",
"name": "{}_1".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format(targets['toggle'])
},
{
"action": "ToggleObjectOn",
"name": "{}_1".format(targets['toggle'])
}]
elif example['task_type'] == "pick_and_place_simple":
task_goal = {
"goal_id": 0,
"object_states": [{
"name": "{}_1".format(targets['object']),
"receptacle_name": "{}_1".format(targets['parent'])
}],
"object_states_relation": "and"
}
script = get_sliced_script_from_targets(targets)
script += [
{
"action": "PickupObject",
"name": "{}_1".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format(targets['parent'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['parent'])
}]
elif example['task_type'] == "pick_and_place_with_movable_recep":
task_goal = {
"goal_id": 0,
"object_states": [{
"name": "{}_1".format(targets['object']),
"receptacle_name": "{}_1".format(targets['mrecep'])
},{
"name": "{}_1".format(targets['mrecep']),
"receptacle_name": "{}_1".format(targets['parent'])
}
],
"object_states_relation": "and"
}
script = get_sliced_script_from_targets(targets)
script += [
{
"action": "PickupObject",
"name": "{}_1".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format(targets['mrecep'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['mrecep'])
},
{
"action": "PickupObject",
"name": "{}_1".format(targets['mrecep'])
},
{
"action": "GotoLocation",
"name": "{}_1".format(targets['parent'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['parent'])
}
]
elif example['task_type'] == "pick_two_obj_and_place":
task_goal = {
"goal_id": 0,
"object_states": [{
"name": "{}_1".format(targets['object']),
"receptacle_name": "{}_1".format(targets['parent'])
},{
"name": "{}_2".format(targets['object']),
"receptacle_name": "{}_1".format(targets['parent'])
}
],
"object_states_relation": "and"
}
script = get_sliced_script_from_targets(targets)
script += [
{
"action": "PickupObject",
"name": "{}_1".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format(targets['parent'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['parent'])
},
{
"action": "GotoLocation",
"name": "{}_2".format(targets['object'])
},
{
"action": "PickupObject",
"name": "{}_2".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format(targets['parent'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['parent'])
},
]
elif example['task_type'] == "pick_cool_then_place_in_recep":
target_obj_temperature = "Cold"
task_goal = {
"goal_id": 0,
"object_states": [{
"name": "{}_1".format(targets['object']),
"receptacle_name": "{}_1".format(targets['parent'])
},{
"name": "{}_1".format(targets['object']),
"ObjectTemperature": target_obj_temperature
}
],
"object_states_relation": "and"
}
script = get_sliced_script_from_targets(targets)
script += [{
"action": "PickupObject",
"name": "{}_1".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format("Fridge")
},
{
"action": "CoolObject",
"name": "{}_1".format(targets['object'])
},
# {
# "action": "OpenObject",
# "name": "{}_1".format("Fridge")
# },
# {
# "action": "PutObject",
# "name": "{}_1".format("Fridge")
# },
# # haven't closed frigde, may close and re-open it for sure
# {
# "action": "PickupObject",
# "name": "{}_1".format(targets['object'])
# },
{
"action": "GotoLocation",
"name": "{}_1".format(targets['parent'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['parent'])
},
]
elif example['task_type'] == "pick_heat_then_place_in_recep":
target_obj_temperature = "Hot"
task_goal = {
"goal_id": 0,
"object_states": [{
"name": "{}_1".format(targets['object']),
"receptacle_name": "{}_1".format(targets['parent'])
},{
"name": "{}_1".format(targets['object']),
"ObjectTemperature": target_obj_temperature
}
],
"object_states_relation": "and"
}
script = get_sliced_script_from_targets(targets)
script += [
{
"action": "PickupObject",
"name": "{}_1".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format("Microwave")
},
{
"action": "HeatObject",
"name": "{}_1".format(targets['object'])
},
# {
# "action": "OpenObject",
# "name": "{}_1".format("Microwave")
# },
# {
# "action": "PutObject",
# "name": "{}_1".format("Microwave")
# },
# {
# "action": "CloseObject",
# "name": "{}_1".format("Microwave")
# },
# {
# "action": "ToggleObjectOn",
# "name": "{}_1".format("Microwave")
# },
# {
# "action": "ToggleObjectOff",
# "name": "{}_1".format("Microwave")
# },
# {
# "action": "OpenObject",
# "name": "{}_1".format("Microwave")
# },
# {
# "action": "PickupObject",
# "name": "{}_1".format(targets['object'])
# },
{
"action": "GotoLocation",
"name": "{}_1".format(targets['parent'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['parent'])
},
]
elif example['task_type'] == "pick_clean_then_place_in_recep":
task_goal = {
"goal_id": 0,
"object_states": [{
"name": "{}_1".format(targets['object']),
"receptacle_name": "{}_1".format(targets['parent'])
},{
"name": "{}_1".format(targets['object']),
"isDirty": False,
}
],
"object_states_relation": "and"
}
script = get_sliced_script_from_targets(targets)
script += [
{
"action": "PickupObject",
"name": "{}_1".format(targets['object'])
},
{
"action": "GotoLocation",
"name": "{}_1".format("SinkBasin")
},
{
"action": "CleanObject",
"name": "{}_1".format(targets['object'])
},
# {
# "action": "PutObject",
# "name": "{}_1".format("SinkBasin")
# },
# {
# "action": "ToggleObjectOn",
# "name": "{}_1".format("SinkBasin")
# },
# {
# "action": "ToggleObjectOff",
# "name": "{}_1".format("SinkBasin")
# },
# {
# "action": "PickupObject",
# "name": "{}_1".format(targets['object'])
# },
{
"action": "GotoLocation",
"name": "{}_1".format(targets['parent'])
},
{
"action": "PutObject",
"name": "{}_1".format(targets['parent'])
},
]
else:
task_goal = None
script = None
#raise("no implemeted for task type: {}".format(example['task_type']))
return task_goal, script