adding assembly_order case

This commit is contained in:
IDONTSUDO 2023-07-04 16:32:15 +03:00
parent 5239e6d091
commit 8dfbe38878
2 changed files with 13 additions and 4 deletions

View file

@ -5,7 +5,7 @@ from src.model.asm4_structure import Asm4Structure
from src.usecases.assembly_to_pddl_use_case import AssemblyToPddlUseCase
# python3 main.py --stepStructurePath /home/idontsudo/t/framework/asp-review-app/server/public/cubes/generation/step-structure.json --outPath /home/idontsudo/t/framework/pddl/
# python3 main.py --stepStructurePath /Users/idontsudo/robo/step-structure.json --outPath /Users/idontsudo/robo/pddl/out/
if __name__ == "__main__":
parser = argparse.ArgumentParser()

View file

@ -7,13 +7,11 @@ import os
class AssemblyToPddlUseCase:
def call(assembly: List[str], rootLabel: str):
print(assembly)
partType = UserType("part")
assemblyType = UserType('assembly')
objectsPartPddl = []
objectsAsmToPddl = []
i = 0
for el in assembly:
objectsPartPddl.append(Object(el, partType))
@ -30,15 +28,26 @@ class AssemblyToPddlUseCase:
connected = Fluent('part-of', BoolType(),
l_from=partType, l_to=assemblyType)
assemblyOrder = Fluent('assembly_order', BoolType(),
l_from=assemblyType, l_to=assemblyType)
i = 0
for el in objectsPartPddl:
problem.set_initial_value(connected(el, objectsAsmToPddl[i]), True)
i = i+1
goal = Fluent(rootLabel)
problem.add_goal(connected(objectsPartPddl[objectsPartPddl.__len__(
) - 1], objectsAsmToPddl[objectsAsmToPddl.__len__() - 1]),)
i = 0
for el in objectsAsmToPddl:
if objectsAsmToPddl[i-1] != objectsAsmToPddl[objectsAsmToPddl.__len__() - 1]:
problem.set_initial_value(assemblyOrder(objectsAsmToPddl[i-1], el), True)
i = i+1
problem.add_goal(assemblyOrder(objectsAsmToPddl[objectsAsmToPddl.__len__(
) - 1], objectsAsmToPddl[objectsAsmToPddl.__len__() - 1]),)
return {
"problem": unified_planning.io.PDDLWriter(problem).get_problem(),
'domain': FS.readFile(os.path.dirname(os.path.realpath(__file__)) + '/../../mocks' + '/domain.txt'),
}