framework/cg/freecad/Frames/my_problem.pddl
2023-07-03 16:31:48 +03:00

69 lines
2.1 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(define (problem my_problem)
(:domain roboarm)
(:objects
ur_manipulator_gripper - arm
printer - printer
world - zone
box1 box2 box3 box4 box5 box6 - part
asm0 asm1 asm2 asm3 asm4 asm5 asm6 - assembly
)
(:init
not(part_at box1 world)
not(part_at box2 world)
not(part_at box3 world)
not(part_at box4 world)
not(part_at box5 world)
not(part_at box6 world)
(part_of box1 asm1)
(part_of box2 asm2)
(part_of box3 asm3)
(part_of box4 asm4)
(part_of box5 asm5)
(part_of box6 asm6)
(assembly_order asm0 asm1)
(assembly_order asm1 asm2)
(assembly_order asm2 asm3)
(assembly_order asm3 asm4)
(assembly_order asm4 asm5)
(assembly_order asm5 asm6)
(printer_available printer)
(arm_available ur_manipulator_gripper)
(assembly_at asm0 world)
(assembled asm0)
)
(:goal (and
(assembled asm6)
))
)
; нужно указать желаемое конечное состояние
; (эффект в конце действия)
; в нашем случае, допустим, будет asm6
; чтобы включить принтер в процесс, у нас должны спавниться детали
; будет что-то типа (not part_at box1 workzone)
; и action print
; начальные условия: not part_at box workzone
; принтер доступен
; в ходе дела парт печатается, принтер не доступен
; в конце - принтер доступен, деталь в зоне
; нужно в генераторе добавить поддержку условий at start и at end
; но пока что это можно прописать текстом
; предикаты -
; рука доступна - рука
; сборка в зоне - сборка зона
; деталь часть сборки - деталь сборка
; собрана - сборка
; сборочный порядок - предсборка следсборка
; +
; деталь в зоне - деталь зона
; принтер доступен - принтер