Hi FCL community,
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent. It declares clearances and spatial constraints in a safety envelope; it does not compute geometry. FCL is exactly the kind of library a runtime uses downstream to check the constraints URML declares, so I wanted to describe that division of labor and ask whether it is the right altitude.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
The division of labor: a URML safety envelope declares clearance volumes and spatial constraints (a lateral footprint, a vertical band; URML's cross-robot deconfliction model). When a runtime needs to verify a motion or a fleet separation against actual geometry, FCL's collision/distance queries are the computation behind that check. URML is the declarative, statically-auditable constraint; FCL is the geometric test. URML stays a declaration layer; the heavy query stays in a dedicated library.
Two real questions: (1) is "URML declares the clearance / spatial constraint, FCL is the geometric query that enforces it" an accurate and useful division of labor? (2) Is a collision library the right altitude to describe this, or is the seam better drawn at a planner / MoveIt-style layer that already wraps FCL?
Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0509-fcl-outreach.md
Thanks for FCL; it is the geometric-query layer beneath much of this ecosystem, which is exactly why the clearances-versus-check division is worth naming.
Ido Yahalomi (URML, greenvh@gmail.com)
AI-assisted prose, maintainer-reviewed before posting (see https://github.com/URML-MARS/URML/blob/main/VIBE.md). Human-only correspondence available on request.
Hi FCL community,
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent. It declares clearances and spatial constraints in a safety envelope; it does not compute geometry. FCL is exactly the kind of library a runtime uses downstream to check the constraints URML declares, so I wanted to describe that division of labor and ask whether it is the right altitude.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
The division of labor: a URML safety envelope declares clearance volumes and spatial constraints (a lateral footprint, a vertical band; URML's cross-robot deconfliction model). When a runtime needs to verify a motion or a fleet separation against actual geometry, FCL's collision/distance queries are the computation behind that check. URML is the declarative, statically-auditable constraint; FCL is the geometric test. URML stays a declaration layer; the heavy query stays in a dedicated library.
Two real questions: (1) is "URML declares the clearance / spatial constraint, FCL is the geometric query that enforces it" an accurate and useful division of labor? (2) Is a collision library the right altitude to describe this, or is the seam better drawn at a planner / MoveIt-style layer that already wraps FCL?
Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0509-fcl-outreach.md
Thanks for FCL; it is the geometric-query layer beneath much of this ecosystem, which is exactly why the clearances-versus-check division is worth naming.
Ido Yahalomi (URML, greenvh@gmail.com)
AI-assisted prose, maintainer-reviewed before posting (see https://github.com/URML-MARS/URML/blob/main/VIBE.md). Human-only correspondence available on request.