Skip to main content

Overview

FERAL treats robots as first-class hardware nodes. Any actuator — robotic arms, mobile platforms, drones, custom builds — can connect to the brain through the Hardware Unified Protocol (HUP). The brain sends commands, receives sensor data, and can orchestrate multi-robot workflows through natural language.

Architecture

Robot Node Template

The Python SDK includes a robot template that handles HUP registration, command dispatch, and sensor reporting:
robot_node.py
The template is at sdk/python-node-sdk/robot_template.py in the FERAL repo. Copy it as a starting point for your robot.

HUP Device Manifest

Every robot must declare a manifest when it connects to the brain:
The brain uses the manifest to understand what the robot can do and exposes those capabilities to the LLM for natural-language control.

ROS Bridge

For ROS-based robots, FERAL provides a bridge node that translates between HUP and ROS topics:

Serial & I2C Adapters

For microcontroller-based robots (Arduino, ESP32), use the serial or I2C adapter:

Example: Commanding a Robot Arm

Once connected, control the robot through natural language:
Multi-step robot operations require hybrid or loose autonomy mode. In strict mode, each step requires approval.

Troubleshooting

Verify the brain is running with feral status and that hup_port (default 9091) is accessible. Check firewall rules.
The default command timeout is 10 seconds. For slow actuators, increase it in the node config or return an async acknowledgment.
Ensure roscore is running and the topics exist. Run rostopic list to verify.