Skip to content

Proposal: HebiAdapter for URML's substrate-neutral robot-intent language (modular Series Elastic Actuator configurations via the HEBI API) #24

Description

@idoco2003

Proposing a HebiAdapter that targets your published Python / C++ API surface (hebi-python-examples, hebi-cpp-examples, hebi_ros2_examples, hebi_description, hebi_msgs, hebi_cpp_api_ros). 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 HEBI's Group.send_command() and Group.get_feedback() calls, parameterised by the customer-declared kinematic chain.

URML is an Apache 2.0 specification for substrate-neutral robot intent at urml.dev. HEBI's distinctive value proposition for URML is per-deployment kinematic modularity. A HEBI customer at a research lab assembles actuators into a custom geometry (a five-DOF arm for one experiment, a seven-DOF arm for another, a quadruped for a third), and the same URML adapter drives all configurations. URML's capability manifest's kinematic_chain declaration is the natural vocabulary for the declared geometry; HEBI is the first URML target where every customer writes their own. The static verifier reasons against the declared chain before any motion executes.

This is proposal-only, posted as part of URML's Move #4 outreach (adjacent niches). No adapter code in this PR. The kinematic-chain manifest shape, the example manifest set, the ROS 2 vs direct-API default, and the MATLAB-surface scope are observable choices worth your input before shipping.

Full RFC: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0070-hebi-robotics-outreach.md

Feedback we'd value

  1. Adapter home. URML repo (reference/cobot-runtime/src/cobot_runtime/hebi/), HebiRobotics contributed example, both?
  2. Kinematic-chain manifest shape. Is URML's kinematic_chain declaration the right shape for per-customer configurations, or would HEBI recommend a different vocabulary (URDF reference, MoveIt config import)?
  3. Example manifests. Are the proposed examples (5-DoF X-Series arm, 7-DoF X-Series arm, Igor balancing kit, Rosie double-shoulder) the right starting set?
  4. ROS 2 vs direct-API default. Should URML's adapter default to direct HEBI API calls or to the ROS 2 bridge?
  5. MATLAB surface. Is the MATLAB-only deployment population large enough that URML should expose a MATLAB-facing adapter, or is Python sufficient?
  6. Robotarium cross-link. Interest in coordinating with Robotarium @ Georgia Tech for a documented URML conformance deployment?
  7. Conformance lane. Open to a URML conformance line in the HEBI documentation site or in hebi_ros2_examples README?

Thanks for the HEBI ecosystem and for the modular Series Elastic Actuator design. The per-customer-geometry story is the most distinctive integration shape URML has encountered across four outreach waves, and HEBI is the natural first deployment for URML's kinematic_chain manifest field.

Ido Yahalomi (URML maintainer, urml.dev)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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