Hi ROSPlan community,
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent: it validates a request against a capability manifest and a safety envelope, then dispatches. Where URML's Layer-3 is authored control flow, a PDDL planner synthesizes it -- and the two compose. I'm writing to ask how a validated-intent layer should sit next to ROSPlan.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
Two complementary pieces: (1) ROSPlan plans, URML validates + dispatches -- ROSPlan synthesizes an action sequence from a goal, and each action lowers to a URML primitive that is capability- and envelope-checked before dispatch, so a synthesized plan cannot ask for what the robot cannot honestly do. (2) URML primitives as PDDL actions -- a URML primitive's typed signature + capability precondition maps onto a PDDL durative-action with parameters and preconditions, so the planner reasons over the same capability surface URML validates against. The acid test holds: ROSPlan decides what sequence; URML checks each step is typed, capable, and in-envelope before it runs. (This is distinct from a separate engagement with the PlanSys2 PDDL lineage.)
Two real questions: (1) Is "ROSPlan plans -> URML validates + dispatches each action" a sensible division, and where would the plan-to-primitive lowering live (the plan-dispatch layer)? (2) Could a URML primitive's capability/envelope precondition be expressed as a PDDL action precondition, so planning and validation share a surface?
Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0476-rosplan-outreach.md
Thanks for ROSPlan; a long-running open PDDL task-planning framework is the right place to think about where planning ends and validated dispatch begins.
Ido Yahalomi (URML, greenvh@gmail.com)
AI-assisted prose, maintainer-reviewed before posting (see VIBE.md). Human-only correspondence available on request.
Hi ROSPlan community,
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent: it validates a request against a capability manifest and a safety envelope, then dispatches. Where URML's Layer-3 is authored control flow, a PDDL planner synthesizes it -- and the two compose. I'm writing to ask how a validated-intent layer should sit next to ROSPlan.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
Two complementary pieces: (1) ROSPlan plans, URML validates + dispatches -- ROSPlan synthesizes an action sequence from a goal, and each action lowers to a URML primitive that is capability- and envelope-checked before dispatch, so a synthesized plan cannot ask for what the robot cannot honestly do. (2) URML primitives as PDDL actions -- a URML primitive's typed signature + capability precondition maps onto a PDDL durative-action with parameters and preconditions, so the planner reasons over the same capability surface URML validates against. The acid test holds: ROSPlan decides what sequence; URML checks each step is typed, capable, and in-envelope before it runs. (This is distinct from a separate engagement with the PlanSys2 PDDL lineage.)
Two real questions: (1) Is "ROSPlan plans -> URML validates + dispatches each action" a sensible division, and where would the plan-to-primitive lowering live (the plan-dispatch layer)? (2) Could a URML primitive's capability/envelope precondition be expressed as a PDDL action precondition, so planning and validation share a surface?
Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0476-rosplan-outreach.md
Thanks for ROSPlan; a long-running open PDDL task-planning framework is the right place to think about where planning ends and validated dispatch begins.
Ido Yahalomi (URML, greenvh@gmail.com)
AI-assisted prose, maintainer-reviewed before posting (see VIBE.md). Human-only correspondence available on request.