adding assembly_order case
This commit is contained in:
parent
5239e6d091
commit
8dfbe38878
2 changed files with 13 additions and 4 deletions
|
@ -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()
|
||||
|
|
|
@ -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'),
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue