This repository bundles a complete set of Vulcanexus Human–Robot Interaction (HRI) packages, completely compatible and ready-to-use in the Vulcanexus ecosystem (ROS 2).
Each hri_<package> directory is an independent package that can be built separately.
For an overview of Vulcanexus HRI concepts and components, see the official docs.
Human-Robot Interaction (HRI) studies how humans and robots can effectively perceive, communicate, and collaborate. It combines computer vision, speech, emotion recognition, and higher-level behavioral models so robots can interact with people naturally and safely.
Vulcanexus HRI provides a set of ROS 2–based components for:
- Shared HRI message definitions (hri_msgs)
- Face detection and recognition
- Human pose recognition
- Emotion recognition
- Speech-to-Text (STT)
- Text-to-Speech (TTS)
- Visual displays
All of these components are designed to work together on top of ROS 2 and Fast DDS.
Core message definitions used by all Vulcanexus HRI modules.
Main features:
- Defines custom message types for HRI (faces, skeletons, emotions, regions of interest, etc.)
- Uses topic keys (Fast DDS keyed topics) so multiple individuals can be represented efficiently on shared topics
- Provides a common interface layer so all HRI components can interoperate
Any HRI-based application will typically depend on hri_msgs.
Face detection and recognition module.
Main features:
- Detects human faces from video streams
- Publishes HRI messages describing 2D face positions and landmarks
- Integrates with
hri_id_managerto assign consistent IDs to faces across frames and sessions
This is a perception component that lets your robot see and track human faces.
Human body pose and gesture recognition module.
Main features:
- Detects human skeletons and keypoints from RGB / RGB-D input
- Publishes HRI messages describing 2D (and optionally 3D) body poses
- Integrates with
hri_id_managerto assign consistent IDs to bodies across frames and sessions
This is a perception component that lets your robot see and track human bodies.
Emotion recognition module.
Main features:
- Estimates human emotional state from visual cues
- Publishes emotion-related HRI messages for each tracked person
This enables more socially aware behaviors (e.g., adapting interaction or feedback depending on user emotion).
Speech-to-Text (STT) module.
Main features:
- Converts spoken language (audio input) into text
- Publishes recognized text on ROS 2 topics using HRI-related messages
Use this to let humans talk to the robot using natural speech.
Text-to-Speech (TTS) module.
Main features:
- Converts arbitrary text into speech audio
- Publishes audio on ROS 2 topics or plays it through a speaker
- Can be used from other nodes or via HRI APIs to vocalize responses
Use this to make the robot speak back to humans.
Tools and nodes to render HRI information on a display, for example:
- Overlaying face, pose or emotion detections on camera images
- Visualizing tracked humans and their IDs
- Providing a simple on-screen debugging UI for the HRI stack
Useful for demos, debugging, and building robot UIs that show what the robot “perceives”.
Identity management module.
Main features:
- Assigns and manages unique IDs for detected humans
- Ensures the same person keeps the same ID across different HRI modules (face, pose, emotion, etc.)
- Exposes services or topics for mapping detections to identities
This is the glue that lets you tie together data from multiple perception modules into coherent “human entities”.
High-level API and helpers to work with the Vulcanexus HRI stack from your own applications. It provides a library totally API compatible with the ROS4HRI stack.
Typical responsibilities:
- Provide convenience wrappers and utilities around HRI topics/services
- Simplify subscribing to multiple HRI components from a single node
- Offer a more user-friendly interface to HRI features (faces, poses, emotions, STT/TTS, etc.)
A complete guide of installation of Vulcanexus HRI can be found here.