System overview

Component

Description

M2 muscle unit

series elastic actuator consisting of a BLDC motor surrounded by a torsional spring that pulls on a dyneema tendon and a force sensor, generating up to 300N of tendon force; control modes: PWM, position and force; custom motorboard with tinyFPGA and icebus interface

M3 muscle unit

series elastic actuator consisting of a servo connected to a string that pulls on a dyneema tendon; control modes: PWM, position and spring displacement; icebus interface

Internal bus

Intel DE10-Nano Dev kit w. Cyclone V SoC FPGA with custom breakout board providing 24V, 12V and 5V to motors, compute and sensors, communicating to all motors via icebus, a custom RS485 based bus protocol, and via RJ45 LAN to rest of the system

Neck

1 DOF rolling joint, joint position via magnetic angle sensor.

Elbow

1 DOF rolling joint, joint position via magnetic angle sensor

Shoulder

3DOF joint controlled by eight M2s, joint position as in neck. 

Wrist

3 DOF joint controlled by six M3s, joint position as in neck. 

Hand

9 DOF in fingers controlled by four linear motors, no feedback

Spine

bendable bar, controlled by four M2s, no feedback

Face

OTHA projector with Android 7, projecting into a translucent shell

 

Node name, Location

Function

upper_body

Jetson Nano (head)

Performs joint control implemented in CARDSflow: calculates each tendon length required to reach given joint angles for both arms, spine, and head; implements high-level safety features

roboy_fpga

DE10-nano (back)

Receives motor commands and publishes sensor data on ROS; implements low-level motor control and its safety features;

roboy_face

OTHA Projector (head)

Displays robot’s face, triggers emotion animations, moves robot eyes, performs lip sync on operator’s audio

led_control

Raspberry Pi 4 (chest)

Controls chest LED ring