ROS4HRI Alignment¶
This page explains how ROBIN aligns with the ROS4HRI concepts of operator intent, skill, task, and mission. It shows, for each operator action, the dashboard control that triggers it, the API and ROS interfaces that carry it, the skill that runs it, and where each part lives in the code.
Start with the Supported Action Mapping table for the full picture, then use the Implementation Evidence section to find the matching files.
Scope¶
ROBIN aligns with ROS4HRI through four explicit integration points:
Operator intents - typed
Intentvalues issued by an authorized operator.Dashboard actions - the Live Ops controls that emit those intents.
Profile-defined skills - robot capabilities declared per domain in
config/profiles/*.yamland implemented as ROS 2 skill action servers.ROS and API integration points - the
POST /intentendpoint, the process-control REST endpoints, and the ROS 2/intentstopic that connect them.
ROBIN is not a full human-robot interaction perception stack. It does not
implement speech recognition, gesture recognition, human-pose estimation, or human
tracking, and it does not provide the ROS4HRI /humans perception layer. The
Intent message follows the ROS4HRI intent structure so the same routing would apply
if a perception front-end were added later, but today every intent comes from an explicit
dashboard control (a touchscreen or button press) or from an internal supervisor
decision.
User Roles¶
ROBIN recognizes three operator-facing roles. Role separation is organizational; it is not enforced by authentication in this baseline.
Process engineer¶
Defines the process envelope: sets geometry targets and tolerance thresholds, chooses the
operation mode (parameter_driven or geometry_driven), and launches a new Design
of Experiments (DoE) campaign. Reads telemetry, deviation history, and AI model evidence
to judge process quality.
Maintainer / integrator¶
Adapts ROBIN to a new domain or deployment: edits the profile YAML
(config/profiles/) to declare vocabulary, ROS 2 topics, and skills; wires skill
action servers to real hardware; and runs the stack with Docker Compose.
Intent, Skill, Task, and Mission Model¶
ROBIN uses the following terms consistently, in line with the ROS4HRI vocabulary:
Operator intent - a typed value of
welding_msgs/msg/Intent(for exampleSTART_PROCESSorMANUAL_ADJUST). The message followshri_actions_msgs/msg/Intentand carriesintent, a JSONdatapayload, and thesource,modality,priority, andconfidencefields.Dashboard action - the Live Ops control an operator presses to emit an intent. Each button maps to exactly one intent.
API equivalent - the REST endpoint that carries the intent or its effect.
POST /intentpublishes an operator intent for the FIWARE-to-ROS 2 bridge, while the process-control endpoints (for examplePOST /process/{id}/stop) apply the same effect directly.ROS equivalent - the ROS 2
/intentstopic carrying awelding_msgs/msg/Intentmessage, consumed by thewelding_supervisor.Skill - a ROS 2 action server that implements one robot capability (a
welding_*_skillpackage). Skills are also declared per domain in the profileskills:block.Task - a single skill goal execution (one
ExecuteSeamgoal, oneMoveToHomegoal, and so on).Mission - a sequence of tasks orchestrated by the supervisor. For example,
Abortis a mission that cancels all active tasks, runs a move-to-home task, and publishes an operator error. (Pauseis a single task: it freezes the in-progress bead in place via theweld/pauseservice rather than cancelling it.)
End to end, an intent travels this path:
Dashboard control
-> POST /intent (Alert Engine)
-> Orion-LD (NGSI-LD entity)
-> DDS / notify bridge
-> ROS 2 /intents topic (welding_msgs/msg/Intent)
-> welding_supervisor (routes intent to a skill)
-> welding_*_skill/execute (action goal = task)
Supported Action Mapping¶
User action / intent |
Dashboard control |
API equivalent |
ROS equivalent |
Skill / task / mission |
Implementation evidence |
Current status |
|---|---|---|---|---|---|---|
Start / execute ( |
Start |
|
|
|
|
Implemented (sim + HW path) |
Pause ( |
Pause |
|
|
|
|
Implemented |
Resume ( |
Resume |
|
|
|
|
Implemented |
Stop ( |
Stop |
|
|
cancel all + move home - mission |
|
Implemented |
Abort / home / E-stop ( |
Abort |
|
|
cancel all + move home + publish |
|
Implemented (MoveIt |
Manual adjustment ( |
Manual adjust |
|
|
|
|
Implemented (Fronius services) |
Request AI recommendation ( |
AI retry |
|
|
|
|
Implemented (calls |
Launch new DoE ( |
New DOE |
|
|
stop weld + |
|
Partial / external |
Implementation Evidence¶
Each behavior in the table is backed by concrete files, grouped by layer.
Dashboard controls¶
robin-dashboard/src/components/features/live-ops/LiveOps.tsx- start, pause, resume, stop, abort controls.robin-dashboard/src/components/features/live-ops/ProcessControlsPanel.tsx- mode selection, parameter and target-geometry adjustment, apply settings.robin-dashboard/src/components/features/live-ops/DeviationMonitor.tsx- deviation alert actions, including manual adjust and request AI recommendation.
API endpoints (Alert Engine)¶
Defined in robin/alert_engine.py:
POST /intent- publish an operator intent for the FIWARE-to-ROS 2 bridge.POST /process/{process_id}/stop/POST /process/{process_id}/resume- process lifecycle control.POST /process/{process_id}/mode- setparameter_driven/geometry_driven.POST /process/{process_id}/input-params- update process parameters.POST /process/{process_id}/target- set geometry target.POST /ai-recommendation- request an advisory parameter recommendation.POST /check-deviation- evaluate geometry deviation and return operator options.
Profile-defined skills¶
The skills: block of config/profiles/welding.yaml declares each robot capability
as a ROS 2 service or action, for example:
skills:
start_process:
ros_type: service
ros_name: /welding/start
srv_type: robin_interfaces/srv/StartWeld
description: Start the welding arc
run_experiment:
ros_type: action
ros_name: /weld_experiment
action_type: robin_interfaces/action/WeldExperiment
description: Execute a multi-bead welding experiment
ROS 2 messages, actions, and skill nodes¶
vulcanexus_ws/src/welding_msgs/msg/Intent.msg- intent message followinghri_actions_msgs/msg/Intent; defines all intent, source, and modality constants.vulcanexus_ws/src/welding_msgs/action/*.action- each action file declares its ROS4HRI mapping in a header comment:ExecuteSeam.action-motion_skills/action/ExecuteCartesianTrajectoryMoveToHome.action-motion_skills/action/ExecuteJointTrajectoryManualAdjust.action-process_skills/action/ManualParameterAdjustRequestAIRecommendation.action-ai_skills/action/RequestRecommendation
Skill action servers:
vulcanexus_ws/src/welding_seam_skill,welding_home_skill,welding_manual_skill,welding_recommendation_skill.Hardware-mode backends (adopter-provided): the
/move_homeaction server thatwelding_home_skilldelegates to and the/execute_beadaction server thatwelding_seam_skilldelegates to when launched withuse_simulation:=false. The open module ships simulation behavior for both skills.
Launch and orchestration¶
vulcanexus_ws/src/welding_demo/launch/welding_robin_demo.launch.py- brings up the skill nodes, HTTP bridge, and supervisor (no-hardware demo viawelding_robin_sim.launch.py).docker-compose.yaml- composes Orion-LD, the DDS bridge, the Vulcanexus ROS 2 workspace, the Alert Engine, and the dashboard.docs/LAUNCH_AND_VERIFY_INTENTS.md- step-by-step guide to launch and verify the intent path end to end.
Architecture Diagrams¶
The three diagrams below trace the same intent path, from the wide system view down to the data bridge that carries each intent into ROS 2. Read them top to bottom: the system layer shows where the intent flow sits within ROBIN, the intent layer zooms into the routing from dashboard control to skill, and the bridge flow shows the FIWARE-to-ROS 2 transport that connects the two.
System layer¶
The ROS 2 layer in context: the ROS4HRI-inspired intent flow, skill routing, and the hardware interfaces that the skills ultimately drive. This is where the operator intents from the Supported Action Mapping table enter the robot system.
ROS 2 / ROS4HRI system layer: intent flow, skill routing, and ROBIN hardware interfaces.¶
Intent layer¶
A focused view of the intent routing: the dashboard intent bridge publishes onto
/intents, the welding_supervisor routes each Intent to the matching skill, and
the skill action servers run the resulting task.
ROS4HRI intent layer: dashboard intent bridge, /intents, supervisor routing, and
skill action servers.¶
Bridge flow¶
The FIWARE-to-ROS 2 transport: how the POST /intent data stored in Orion-LD crosses
the DDS / notify bridge to reach the ROS 2 /intents topic and the intent layer above.
Bridge flow connecting Orion-LD / DDS data with the ROS4HRI intent layer.¶
These diagrams are maintained alongside the other evidence under media/architecture/;
see media/README.md for the full evidence index.
Current Limitations¶
The following are the current gaps relative to a full ROS4HRI implementation:
No human perception layer. Speech, gesture, human-pose, and human-tracking are not implemented, and the ROS4HRI
/humanstopics are absent. TheIntentschema reservesSPEECHandGESTUREmodality constants, but onlyTOUCHSCREENandINTERNALmodalities are wired today.No formal ROS4HRI message packages. ROBIN uses its own
welding_msgspackage that follows the ROS4HRI structure rather than depending onhri_actions_msgsorhri_msgs.Recommendation skill preconditions.
welding_recommendation_skillcallsPOST /ai-recommendationand therefore needs the process state the endpoint reads: a geometry target (geometry_driven) or current input parameters (parameter_driven) must already be set, otherwise the skill returns a failure.DoE launch supersedes the current run.
LAUNCH_NEW_DOEannounces the new experiment on/doe/launch, then stops the active weld and returns the robot to home (the supervisor cancels all goals and callswelding_home_skill/execute). On hardware it also opens an external configuration GUI; in the no-hardware simulation that GUI is skipped.
Human authority. ROBIN provides monitoring, deviation detection, and AI-assisted recommendations. These recommendations are advisory: the human operator remains the final authority for process decisions and can accept, reject, override, or adjust recommendations before any action is taken.
For configuration and profile details, see Configuration Reference. For the overall data flow, see User Guide Overview.