Skip to content

[Feature]: Proposal: RobotnikAdapter family for URML's substrate-neutral robot-intent language (Summit XL / RB-1 / RB-VOGUI / AGVS / rbcar) #8

Description

@idoco2003

What do we want to achieve?

Proposing a RobotnikAdapter family that covers your published ROS 2 platforms under one URML adapter family: Summit XL / XL HL / X, RB-1, RB-VOGUI, AGVS, and rbcar. URML Layer-2 primitives (move_to, grasp, release, measure, wait_for, report) plus the industrial-profile extensions (pick_from, place_at, swap_tool) map onto each platform's ROS 2 surface, with mounted-arm composition (Summit XL + UR5 or Franka) handled via URML's manifest composition pattern.

URML is an Apache 2.0 specification for substrate-neutral robot intent at urml.dev. Robotnik fills a distinctive niche in URML's outreach landscape between Move #4 PAL Robotics (Spanish commercial humanoid mobile manipulator) and Move #4 AgileX (Chinese research-grade mobile bases): commercial industrial mobile robotics with 456 public repos, 161 followers, and BSD-3-Clause predominant licensing.

This is proposal-only, posted as URML's first Move #5 outreach (Tier 2 candidates promoted from URML's Move #4 adjacent-niches research pass). No adapter code in this PR. The canonical per-platform repos, the mounted-arm composition design, and the AGVS coordination with URML's RFC-0022 warehouse profile are observable choices worth your input before shipping.

Full RFC: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0071-robotnik-outreach.md

Feedback we'd value

  1. Adapter home. URML repo (reference/mobile-runtime/src/mobile_runtime/robotnik/), RobotnikAutomation contributed example, both?
  2. Canonical per-platform repos. Could you confirm the canonical first-class repos for Summit XL, RB-1, RB-VOGUI, AGVS, and rbcar in your 456-repo org?
  3. Mounted-arm composition. What is your recommended approach to URML composing a Summit-XL-base manifest with a UR5-arm manifest at validation time?
  4. AGVS coordination. Is there interest in coordinating with URML's RFC-0022 warehouse-profile draft on the AGVS use case?
  5. Per-platform variant manifests. Per-variant manifests (Summit XL / XL HL / X) or parametric with a variant: field?
  6. Conformance lane. Open to a URML conformance line on the platform-repo READMEs or at robotnik.eu?

Thanks for the breadth of the Robotnik ROS 2 catalog and the long-standing BSD-3-Clause posture. The European commercial industrial-mobile-robotics anchor is exactly what URML's outreach landscape needs.

Ido Yahalomi (URML maintainer, urml.dev)

How do we plan to do it?

Proposal-only. The RFC at https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0071-robotnik-outreach.md documents the proposed RobotnikAdapter family layout, per-primitive mapping, and per-platform manifest sketches.

No adapter code lives in this Issue. Implementation follows your input:

  1. Maintainer feedback on the six numbered questions in the RFC (adapter home, canonical per-platform repos, mounted-arm composition, AGVS / warehouse-profile coordination, variant manifests, conformance lane).
  2. URML drafts the adapter package reference/mobile-runtime/src/mobile_runtime/robotnik/ against the per-platform repos you point to as canonical.
  3. URML ships per-platform mock conformance lanes (URML_ROBOTNIK_INTEGRATION=1 env-gated CI) before any hardware-in-the-loop step.
  4. Any hardware verification happens only after the maintainers signal interest in URML's involvement.

How can it be tested?

  1. Static: python -c "import yaml; yaml.safe_load(open(...))" over per-platform manifests in URML's repo.
  2. Hermetic: each platform adapter runs against a mock that replays joint-state / odometry / scan responses; emitted commands match recorded golden traces.
  3. Hardware-in-the-loop: out of scope for this Issue. A future PR after maintainer engagement.
  4. No code in this PR. The Issue is request-for-comment per URML's outreach pattern (RFCs 0023–0070 follow the same shape).

Subtasks

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions