Skip to content

URML (open robot intent language): ROSPlan plans, URML validates + dispatches — request for comment #330

Description

@idoco2003

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.

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