Hi Stable-Baselines3 community,
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent: an intent is turned into a typed primitive, validated against the robot's declared capabilities and a safety envelope, then dispatched. A trained SB3 policy is a function from an observation space to an action space, trained inside a specific domain, and URML is interesting to that policy at the moment it's deployed on a robot, in a way that doesn't compete with SB3.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
URML has a "LearnedPolicy" declaration: a manifest can say "this capability is served by a learned policy trained within these bounds." Two seams for SB3: (1) envelope export -- a trained policy already knows its observation_space / action_space (Gymnasium Box/Discrete), and a VecNormalize wrapper knows the obs/return statistics it saw; those are exactly the bounds a URML deployment envelope wants, emitted as a small artifact next to the saved model. (2) validated deployment -- with the envelope declared, URML sits between the SB3 policy and the robot and checks each proposed action against the robot's declared capabilities + the active safety envelope before dispatch; the policy decides, URML is the typed gate that does.
Two real questions: (1) Does exporting a trained policy's spaces (and VecNormalize bounds) as a declared deployment envelope make sense as an optional artifact? (2) Is a validated-intent gate between an SB3 policy and a real robot interesting, or already covered by something you'd recommend -- and which is the cleaner first seam?
Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0485-stable-baselines3-outreach.md
Thanks for SB3; it's the reference RL library for a huge number of people, which is exactly why the deployment-envelope question is worth asking here first.
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 Stable-Baselines3 community,
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent: an intent is turned into a typed primitive, validated against the robot's declared capabilities and a safety envelope, then dispatched. A trained SB3 policy is a function from an observation space to an action space, trained inside a specific domain, and URML is interesting to that policy at the moment it's deployed on a robot, in a way that doesn't compete with SB3.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
URML has a "LearnedPolicy" declaration: a manifest can say "this capability is served by a learned policy trained within these bounds." Two seams for SB3: (1) envelope export -- a trained policy already knows its observation_space / action_space (Gymnasium Box/Discrete), and a VecNormalize wrapper knows the obs/return statistics it saw; those are exactly the bounds a URML deployment envelope wants, emitted as a small artifact next to the saved model. (2) validated deployment -- with the envelope declared, URML sits between the SB3 policy and the robot and checks each proposed action against the robot's declared capabilities + the active safety envelope before dispatch; the policy decides, URML is the typed gate that does.
Two real questions: (1) Does exporting a trained policy's spaces (and VecNormalize bounds) as a declared deployment envelope make sense as an optional artifact? (2) Is a validated-intent gate between an SB3 policy and a real robot interesting, or already covered by something you'd recommend -- and which is the cleaner first seam?
Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0485-stable-baselines3-outreach.md
Thanks for SB3; it's the reference RL library for a huge number of people, which is exactly why the deployment-envelope question is worth asking here first.
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.