-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem solving ode #62
Comments
Hi Alelafar
Thanks for this report. I will take a look at it.
Cheers
Derek
…________________________________
From: Alelafar ***@***.***>
Sent: 25 January 2024 16:47
To: KCL-Planning/VAL ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [KCL-Planning/VAL] Problem solving ode (Issue #62)
I tried to use VAL in a very simple case of a durative action with continuous change.
We have a robot and one action with fixed duration. We have also a numeric function, 'battery_level', that decrease during the action continuously according the ode
d(battery_level)/dt = - 0.01* battery_level
whose solution is a simple exponential. Here the code:
(:durative-action move
:parameters ( ?l_from - location ?l_to - location)
:duration (= ?duration 5)
:condition (and
(at start (connected ?l_from ?l_to))
(at start (robot_at ?l_from))
(over all (<= 0 battery_level))
)
:effect (and
(at start (not (robot_at ?l_from)))
(at end (robot_at ?l_to))
(decrease (battery_level) (* #t (* 0.01 battery_level) ))
)
)
As you see I put as condition the invariant
(over all (>= battery_level 0) )
and the validation is fine.
Unfortunately, if I just change the previous condition with the equivalent
(over all (<= 0 battery_level))
VAL fails. Here the error message:
Plan failed because of unsatisfied precondition in:
Invariant for (move l0 l1)
Plan failed to execute
Plan Repair Advice:
Invariant for (move l0 l1) has its condition unsatisfied between time 0 to 5, the condition is satisfied on [ 0 , 5 ].
(Invariant -100e^{ - 0.01t} >= 0 for t in (0,5) is only satisfied on [ 0 , 5 ])
The problem is in the first minus sign in the solution of the ode that should not be there and that fails the invariant condition. Why does it happen?
I leave the domain, problem and plan files.
ODE_problem.txt<https://github.com/KCL-Planning/VAL/files/14055136/ODE_problem.txt>
ODE_domain.txt<https://github.com/KCL-Planning/VAL/files/14055141/ODE_domain.txt>
ODE_plan.txt<https://github.com/KCL-Planning/VAL/files/14055144/ODE_plan.txt>
—
Reply to this email directly, view it on GitHub<#62>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AB2KOVHI43AANPQ55TOD3DDYQKECRAVCNFSM6AAAAABCK23AVKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGEYDANZYHAYDQNI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Can you just check for me what happens if you use (<= 0 (battery-level)) (ie with parentheses around the numeric fluent)?
Thanks
Derek
…________________________________
From: Alelafar ***@***.***>
Sent: 25 January 2024 16:47
To: KCL-Planning/VAL ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [KCL-Planning/VAL] Problem solving ode (Issue #62)
I tried to use VAL in a very simple case of a durative action with continuous change.
We have a robot and one action with fixed duration. We have also a numeric function, 'battery_level', that decrease during the action continuously according the ode
d(battery_level)/dt = - 0.01* battery_level
whose solution is a simple exponential. Here the code:
(:durative-action move
:parameters ( ?l_from - location ?l_to - location)
:duration (= ?duration 5)
:condition (and
(at start (connected ?l_from ?l_to))
(at start (robot_at ?l_from))
(over all (<= 0 battery_level))
)
:effect (and
(at start (not (robot_at ?l_from)))
(at end (robot_at ?l_to))
(decrease (battery_level) (* #t (* 0.01 battery_level) ))
)
)
As you see I put as condition the invariant
(over all (>= battery_level 0) )
and the validation is fine.
Unfortunately, if I just change the previous condition with the equivalent
(over all (<= 0 battery_level))
VAL fails. Here the error message:
Plan failed because of unsatisfied precondition in:
Invariant for (move l0 l1)
Plan failed to execute
Plan Repair Advice:
Invariant for (move l0 l1) has its condition unsatisfied between time 0 to 5, the condition is satisfied on [ 0 , 5 ].
(Invariant -100e^{ - 0.01t} >= 0 for t in (0,5) is only satisfied on [ 0 , 5 ])
The problem is in the first minus sign in the solution of the ode that should not be there and that fails the invariant condition. Why does it happen?
I leave the domain, problem and plan files.
ODE_problem.txt<https://github.com/KCL-Planning/VAL/files/14055136/ODE_problem.txt>
ODE_domain.txt<https://github.com/KCL-Planning/VAL/files/14055141/ODE_domain.txt>
ODE_plan.txt<https://github.com/KCL-Planning/VAL/files/14055144/ODE_plan.txt>
—
Reply to this email directly, view it on GitHub<#62>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AB2KOVHI43AANPQ55TOD3DDYQKECRAVCNFSM6AAAAABCK23AVKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGEYDANZYHAYDQNI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Yes, I tried but nothing changes. There is always the same error message. Thanks, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I tried to use VAL in a very simple case of a durative action with continuous change.
We have a robot and one action with fixed duration. We have also a numeric function, 'battery_level', that decrease during the action continuously according the ode
whose solution is a simple exponential. Here the code:
As you see I put as condition the invariant
and the validation is fine.
Unfortunately, if I just change the previous condition with the equivalent
VAL fails. Here the error message:
The problem is in the first minus sign in the solution of the ode that should not be there and that fails the invariant condition. Why does it happen?
I leave the domain, problem and plan files.
ODE_problem.txt
ODE_domain.txt
ODE_plan.txt
The text was updated successfully, but these errors were encountered: