Prometheus 3.0

Torque-controlled humanoid robot for immersive teleoperation

📌 Project Overview

Prometheus 3.0 is a 20-DOF humanoid research platform developed for immersive telepresence using an Avatar–Hermes architecture. The system allows a human operator wearing the Hermes motion-capture suit to control the humanoid’s upper body in real time with high dynamic fidelity.

My contribution focused on developing the complete control stack—ranging from multibody Euler–Lagrange dynamics and numerical inverse kinematics to embedded firmware running across distributed microcontrollers.

Overall architecture of the Prometheus 3.0 humanoid platform.
Platform Key Specifications
  • 20 Degrees of Freedom (DOF): Full upper-body articulation for natural motion mapping.
  • 100 Hz Deterministic Control Loop: Real-time torque control running on embedded microcontrollers.
  • Automated Math-to-C++ Pipeline: Direct translation of MATLAB symbolic dynamics into C++ firmware.
  • Sub-Millimeter Repeatability: Calibrated using custom 3D-printed PLA metrology fixtures.

⚙️ Engineering Challenge

Most commercial robotic actuators expose only position or velocity control interfaces, hiding the underlying motor dynamics and compliance.

For Prometheus 3.0, direct torque control was required to enable:

  • Gravity Compensation: Dynamic load cancellation across all joints.
  • Custom Nonlinear Controllers: Friction and inertia compensation.
  • Haptic Feedback: Force transparency for the remote operator.
  • Dynamic Transparency: Natural teleoperation response without rigid mechanical constraint.

An additional engineering challenge was translating complex symbolic dynamic models derived in MATLAB into deterministic C++ firmware capable of executing at 100 Hz on embedded hardware.


🏗️ Control Architecture

To maintain software modularity and scalability, the control system was divided into four decoupled operational layers:

flowchart TD
    subgraph L4 ["📡 Layer 4 — Teleoperation & Motion Tracking"]
        HERMES["Hermes Suit\n(IMU Motion Capture)"]
        UDP["Wireless UDP Stream\n(Quaternion Pose Data)"]
        HERMES --> UDP
    end

    subgraph L3 ["📐 Layer 3 — Kinematics Engine"]
        IK["Newton–Raphson IK\n(6-DOF Neoma Arms & Decoupled Wrist)"]
        UDP --> IK
    end

    subgraph L2 ["🧠 Layer 2 — Joint & Dynamics Controller"]
        TC["Direct Torque Control Loop @ 100 Hz\n(Gravity & Friction Compensation)"]
        IK --> TC
    end

    subgraph L1 ["⚙️ Layer 1 — Hardware Actuation & Bus"]
        CAN["CANopen Bus"]
        EROB["ZeroErr eRob\n(Arm Joint Actuators)"]
        AK["CubeMars AK Series\n(Torso Actuators)"]
        RMD["MyActuator RMD\n(Neck & Gripper Actuators)"]

        TC --> CAN
        CAN --> EROB
        CAN --> AK
        CAN --> RMD
    end

    style L4 fill:#1a1a2e,stroke:#4e54c8,stroke-width:2px,color:#fff
    style L3 fill:#16213e,stroke:#00b4d8,stroke-width:2px,color:#fff
    style L2 fill:#0f3460,stroke:#e94560,stroke-width:2px,color:#fff
    style L1 fill:#000,stroke:#ffa500,stroke-width:1px,color:#fff

Subsystem Breakdown

  1. Layer 1 — Actuation: Distributed CANopen motor bus controlling ZeroErr eRob actuators (arms), CubeMars AK series (torso), and MyActuator RMD motors (neck and grippers).
  2. Layer 2 — Joint Control: Embedded 100 Hz real-time loops executing joint torque control, gravity compensation, and friction modeling.
  3. Layer 3 — Kinematics: Numerical inverse kinematics using the Newton–Raphson method for the 6-DOF Neoma arms with a decoupled spherical wrist assumption.
  4. Layer 4 — Teleoperation: Wireless UDP streaming converting IMU quaternion orientation data from the Hermes suit into Cartesian end-effector targets.

🧮 Dynamic Modeling & Torque Control

Robot dynamics were mathematically derived using the Euler–Lagrange formulation.

To eliminate manual translation errors for long symbolic expressions, an automated pipeline was developed to compile MATLAB symbolic dynamic equations directly into optimized, deterministic C++ code.

Torque Control Formulation

The embedded torque control law executed per joint is given by:

\[\tau = G(q) - K_p e - K_d \dot{q} - K_e \cdot \mathrm{sgn}(e)\cdot |e|^{p_e}\]

where $G(q)$ represents the dynamic gravity vector, and the nonlinear exponential term:

\[|e|^{p_e}, \qquad p_e \in [0.2, 0.5]\]

was tuned for each joint actuator to counteract harmonic drive friction without introducing the instability common to traditional integral gain terms.

Embedded control loop executed on distributed microcontrollers.

⚡ Distributed Embedded Firmware

The software architecture was distributed across multiple Teensy 4.1 and ESP32 microcontrollers connected via CANopen bus.

Key firmware modules included:

  • Finite State Machine (FSM): Handles mode transitions, homing routines, and system states.
  • Safety Monitoring & UDP Watchdogs: Instant shutoff upon packet loss or joint limits.
  • Current-Based Gripper Homing: Automatic homing routine detecting hard stops via motor current and velocity signatures, eliminating mechanical limit switches.

🏆 Results & Validation

The completed platform successfully demonstrated:

  • Real-Time Upper-Body Teleoperation with low end-to-end latency.
  • Stable Torque Control & Gravity Compensation across all joint links.
  • High-Fidelity Motion Tracking mapped from human operator gestures.
  • Millimeter-Level Joint Repeatability validated using custom 3D-printed PLA metrology calibration fixtures.

🛠️ Technology Stack

C++ MATLAB & Simulink Symbolic Math Toolbox Teensy 4.1 ESP32 CANopen UDP Networking Inverse Kinematics Euler–Lagrange Dynamics Finite State Machines Embedded Control