Skip to content

Calling problem_generation_server changes my problem removing the disjunctive-preconditions #318

@bhomaidan1990

Description

@bhomaidan1990

Hi,

I'm using the modified ROSPlan which works well with ROS Noetic using ubuntu 20.04 according to this pull request.

I'm launching the FastDownward Planning Interface, I have downloaded the fastdownward planner inside the ROSPlan common/bin folder as follows:

git clone https://github.com/aibasel/downward.git
cd downward
./build.py

Whenever I call the rosservice call /rosplan_problem_interface/problem_generation_server it removes my disjunctive-preconditions causing my pddl problem to be non-solvable!

Click here to See The Modified Problem After Calling the `problem_generation_server` service
(define (problem task)
(:domain lego_simple)
(:objects
    rc1 rc2 rc3 rc4 - red_cube
    bc1 bc2 - blue_cube
    yc1 - yellow_cube
    lc1 lc2 - light_cube
    oc1 oc2 - olive_cube
    rb1 - red_brick
    bb1 bb2 - blue_brick
    yb1 yb2 yb3 - yellow_brick
    left_arm right_arm - robot
    operator - human
    p_02_09_0 p_06_13_0 p_05_13_3 p_02_10_4 p_05_14_0 p_05_13_2 p_02_10_3 p_05_12_2 p_05_12_1 p_02_11_3 p_02_10_2 p_02_11_2 p_05_13_1 p_05_14_1 p_03_11_0 p_04_11_0 p_02_10_0 p_02_11_0 p_02_10_1 p_02_11_1 p_05_12_0 p_05_13_0 platform - pos
)
(:init
    (in_stock rc1 left_arm)
    (in_stock rc2 operator)
    (in_stock rc3 operator)
    (in_stock rc4 operator)
    (in_stock yc1 operator)
    (in_stock bc1 left_arm)
    (in_stock bc2 operator)
    (in_stock lc1 operator)
    (in_stock lc2 operator)
    (in_stock oc1 left_arm)
    (in_stock oc2 operator)
    (in_stock yb1 left_arm)
    (in_stock yb2 operator)
    (in_stock yb3 operator)
    (in_stock bb1 left_arm)
    (in_stock bb2 operator)
    (in_stock rb1 operator)



    (empty p_02_09_0)
    (empty p_06_13_0)
    (empty p_05_13_3)
    (empty p_02_10_4)
    (empty p_05_14_0)
    (empty p_05_13_2)
    (empty p_02_10_3)
    (empty p_05_12_2)
    (empty p_05_12_1)
    (empty p_02_11_3)
    (empty p_02_10_2)
    (empty p_02_11_2)
    (empty p_05_13_1)
    (empty p_05_14_1)
    (empty p_03_11_0)
    (empty p_04_11_0)
    (empty p_02_10_0)
    (empty p_02_11_0)
    (empty p_02_10_1)
    (empty p_02_11_1)
    (empty p_05_12_0)
    (empty p_05_13_0)

    (under platform p_02_09_0)
    (under platform p_06_13_0)
    (under p_05_13_2 p_05_13_3)
    (under p_02_10_3 p_02_10_4)
    (under platform p_05_14_0)
    (under p_05_13_1 p_05_13_2)
    (under p_02_10_2 p_02_10_3)
    (under p_05_12_1 p_05_12_2)
    (under p_05_12_0 p_05_12_1)
    (under p_02_11_2 p_02_11_3)
    (under p_02_10_1 p_02_10_2)
    (under p_02_11_1 p_02_11_2)
    (under p_05_13_0 p_05_13_1)
    (under p_05_14_0 p_05_14_1)
    (under platform p_03_11_0)
    (under platform p_04_11_0)
    (under platform p_02_10_0)
    (under platform p_02_11_0)
    (under p_02_10_0 p_02_10_1)
    (under p_02_11_0 p_02_11_1)
    (under platform p_05_12_0)
    (under platform p_05_13_0)


)
(:goal (and
    (cube_at rc1 p_02_09_0)
    (cube_at rc2 p_06_13_0)
    (cube_at rc3 p_05_13_3)
    (cube_at rc4 p_02_10_4)
    (cube_at rc1 p_02_09_0)
    (cube_at rc2 p_06_13_0)
    (cube_at rc3 p_02_10_4)
    (cube_at rc4 p_05_13_3)
    (cube_at rc1 p_02_09_0)
    (cube_at rc2 p_05_13_3)
    (cube_at rc3 p_06_13_0)
    (cube_at rc4 p_02_10_4)
    (cube_at rc1 p_02_09_0)
    (cube_at rc2 p_05_13_3)
    (cube_at rc3 p_02_10_4)
    (cube_at rc4 p_06_13_0)
    (cube_at rc1 p_02_09_0)
    (cube_at rc2 p_02_10_4)
    (cube_at rc3 p_06_13_0)
    (cube_at rc4 p_05_13_3)
    (cube_at rc1 p_02_09_0)
    (cube_at rc2 p_02_10_4)
    (cube_at rc3 p_05_13_3)
    (cube_at rc4 p_06_13_0)
    (cube_at rc1 p_06_13_0)
    (cube_at rc2 p_02_09_0)
    (cube_at rc3 p_05_13_3)
    (cube_at rc4 p_02_10_4)
    (cube_at rc1 p_06_13_0)
    (cube_at rc2 p_02_09_0)
    (cube_at rc3 p_02_10_4)
    (cube_at rc4 p_05_13_3)
    (cube_at rc1 p_06_13_0)
    (cube_at rc2 p_05_13_3)
    (cube_at rc3 p_02_09_0)
    (cube_at rc4 p_02_10_4)
    (cube_at rc1 p_06_13_0)
    (cube_at rc2 p_05_13_3)
    (cube_at rc3 p_02_10_4)
    (cube_at rc4 p_02_09_0)
    (cube_at rc1 p_06_13_0)
    (cube_at rc2 p_02_10_4)
    (cube_at rc3 p_02_09_0)
    (cube_at rc4 p_05_13_3)
    (cube_at rc1 p_06_13_0)
    (cube_at rc2 p_02_10_4)
    (cube_at rc3 p_05_13_3)
    (cube_at rc4 p_02_09_0)
    (cube_at rc1 p_05_13_3)
    (cube_at rc2 p_02_09_0)
    (cube_at rc3 p_06_13_0)
    (cube_at rc4 p_02_10_4)
    (cube_at rc1 p_05_13_3)
    (cube_at rc2 p_02_09_0)
    (cube_at rc3 p_02_10_4)
    (cube_at rc4 p_06_13_0)
    (cube_at rc1 p_05_13_3)
    (cube_at rc2 p_06_13_0)
    (cube_at rc3 p_02_09_0)
    (cube_at rc4 p_02_10_4)
    (cube_at rc1 p_05_13_3)
    (cube_at rc2 p_06_13_0)
    (cube_at rc3 p_02_10_4)
    (cube_at rc4 p_02_09_0)
    (cube_at rc1 p_05_13_3)
    (cube_at rc2 p_02_10_4)
    (cube_at rc3 p_02_09_0)
    (cube_at rc4 p_06_13_0)
    (cube_at rc1 p_05_13_3)
    (cube_at rc2 p_02_10_4)
    (cube_at rc3 p_06_13_0)
    (cube_at rc4 p_02_09_0)
    (cube_at rc1 p_02_10_4)
    (cube_at rc2 p_02_09_0)
    (cube_at rc3 p_06_13_0)
    (cube_at rc4 p_05_13_3)
    (cube_at rc1 p_02_10_4)
    (cube_at rc2 p_02_09_0)
    (cube_at rc3 p_05_13_3)
    (cube_at rc4 p_06_13_0)
    (cube_at rc1 p_02_10_4)
    (cube_at rc2 p_06_13_0)
    (cube_at rc3 p_02_09_0)
    (cube_at rc4 p_05_13_3)
    (cube_at rc1 p_02_10_4)
    (cube_at rc2 p_06_13_0)
    (cube_at rc3 p_05_13_3)
    (cube_at rc4 p_02_09_0)
    (cube_at rc1 p_02_10_4)
    (cube_at rc2 p_05_13_3)
    (cube_at rc3 p_02_09_0)
    (cube_at rc4 p_06_13_0)
    (cube_at rc1 p_02_10_4)
    (cube_at rc2 p_05_13_3)
    (cube_at rc3 p_06_13_0)
    (cube_at rc4 p_02_09_0)
    (cube_at yc1 p_05_14_0)
    (cube_at bc1 p_05_13_2)
    (cube_at bc2 p_02_10_3)
    (cube_at bc1 p_02_10_3)
    (cube_at bc2 p_05_13_2)
    (cube_at lc1 p_05_12_2)
    (cube_at oc1 p_05_12_1)
    (cube_at oc2 p_02_11_3)
    (cube_at oc1 p_02_11_3)
    (cube_at oc2 p_05_12_1)
    (brick_at yb1 p_02_10_2 p_02_11_2)
    (brick_at yb2 p_05_13_1 p_05_14_1)
    (brick_at yb3 p_03_11_0 p_04_11_0)
    (brick_at yb1 p_02_10_2 p_02_11_2)
    (brick_at yb2 p_03_11_0 p_04_11_0)
    (brick_at yb3 p_05_13_1 p_05_14_1)
    (brick_at yb1 p_05_13_1 p_05_14_1)
    (brick_at yb2 p_02_10_2 p_02_11_2)
    (brick_at yb3 p_03_11_0 p_04_11_0)
    (brick_at yb1 p_05_13_1 p_05_14_1)
    (brick_at yb2 p_03_11_0 p_04_11_0)
    (brick_at yb3 p_02_10_2 p_02_11_2)
    (brick_at yb1 p_03_11_0 p_04_11_0)
    (brick_at yb2 p_02_10_2 p_02_11_2)
    (brick_at yb3 p_05_13_1 p_05_14_1)
    (brick_at yb1 p_03_11_0 p_04_11_0)
    (brick_at yb2 p_05_13_1 p_05_14_1)
    (brick_at yb3 p_02_10_2 p_02_11_2)
    (brick_at bb1 p_02_10_0 p_02_11_0)
    (brick_at bb2 p_02_10_1 p_02_11_1)
    (brick_at bb1 p_02_10_1 p_02_11_1)
    (brick_at bb2 p_02_10_0 p_02_11_0)
    (brick_at rb1 p_05_12_0 p_05_13_0)
))
)

I have tested my domain and my problem with the fast downward planner and they work well, there is a plan, but when I call the problem_generation_server service my problem changes (in particular the AND OR disjunctive-preconditions in the goal) causing me unsolvable issue! can you please tell me how can I solve that please? thanks in advance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions