Skip to content

URML (open robot intent language): URML primitives and SkiROS2 skills — request for comment #121

@idoco2003

Description

@idoco2003

Hi SkiROS2 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. Of everything in robotics, SkiROS2's skill model is the closest match to URML's posture: a parameterized skill with pre/post-conditions over a world model is very near a URML primitive with a typed signature and a capability/envelope precondition. So I'm writing to ask how the two should meet.

Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment, and a genuine design question.

The alignment: a URML primitive (move_to / grasp / set_output, with capability preconditions) lines up with a SkiROS2 parameterized skill (parameters + world-model pre/post-conditions); a validated URML program could populate or drive a skill sequence. And URML's manifest checks -- capability match, workspace bounds, safety envelope -- are exactly the kind of precondition SkiROS2 reasons over before executing a skill, so URML's static gate complements SkiROS2's world-model gate.

Two real questions: (1) How close is a URML primitive (typed args + capability/envelope precondition) to a SkiROS2 skill (parameters + world-model conditions) -- and could one drive the other? (2) Could URML's capability/envelope checks serve as (or feed) SkiROS2 skill preconditions?

Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0475-skiros2-outreach.md

Thanks for SkiROS2; a skill-based platform with explicit pre/post-conditions is the nearest neighbour to what URML is trying to do, and I'd value your read.

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions