cover photo

PROJECT

Humanoid Head

Sudeep HegdeAUTHORACTIVE
Adrian P IsaacCOORDINATORACTIVE
Humanoid Head
This Report is yet to be approved by a Coordinator.
# Humanoid Head Project

## Abstract

This project will be executed in three stages, developing three subsystems: 
1. The eye system synchronized with eyebrows.
2. The jaw along with the tongue synchronized to words.
3. The neck system on a six-axis platform.

The goal is to synchronize these subsystems to a central computer using a computer vision system to recognize facial expressions and mimic them with mechanical actuators for fluidic movement. Additional features like neck movement with voice detection and silicone skin can be added later.

## Literature Review

### 1. The Eye Subsystem

### 2. The Jaw Subsystem

### 3. The Neck Mechanism (Stewart Platform)

## Resource Links

1. [Google Doc](https://docs.google.com/document/d/1ctYNrq1Smq2hBR44ZbCX48khrqtC1Dq1PeifZ9hNJfQ/edit?usp=sharing)
2. [YouTube Video 1](https://www.youtube.com/watch?v=ihXxbQefl1c&t=40s)
3. [YouTube Video 2](https://www.youtube.com/watch?v=Ke2lJfY4haM)
4. [YouTube Video 3](https://www.youtube.com/watch?v=mEAz-72ZjKE&t=46s)

## Materials or Parts Required

## End Result Expected

## Challenges to Be Faced and Objectives to Be Achieved

1. **Human-Like Motion**:
    - Achieving natural and human-like motion is a persistent challenge. Humanoid robots need to move seamlessly and with the flexibility inherent in human locomotion. Advancements in motor control, balance, and kinematics are essential.

2. **Sensory Perception**:
    - Designing sensors that mimic human perception (such as vision, touch, and proprioception) is complex. Ensuring accurate perception of the environment and interaction with humans requires robust sensor integration.

3. **Emotional Expression**:
    - Creating expressive facial features and emotional responses is challenging. Humanoid heads must convey emotions through facial expressions, eye movements, and speech intonation.

4. **Speech and Language Understanding**:
    - Developing natural language processing (NLP) capabilities for communication is crucial. Understanding context, nuances, and intent in spoken language remains an ongoing challenge.

5. **Energy Efficiency**:
    - Powering a humanoid head efficiently while maintaining performance is a balancing act. Battery life, energy consumption, and heat management are key concerns.

6. **Robustness and Durability**:
    - Humanoid heads operate in diverse environments. Ensuring robustness against wear, tear, and environmental factors (such as dust, humidity, and temperature) is vital.

7. **Realistic Appearance**:
    - Achieving a lifelike appearance without entering the “uncanny valley” (where slight deviations from human features become unsettling) is a delicate balance.

## Cost Split-Up (For the Eye Subsystem)

| Component | Estimated Price | Reference Link |
| --- | --- | --- |
| 6x SG90 Micro Servos | 600 INR | [Link](https://robu.in/product/towerpro-sg90-9g-mini-servo-9-gram/) |
| M2 and M3 Screw Kits (Approx 50 pcs) | 500 INR | A vendor from SP Road |
| Arduino UNO | 500 INR | OM Electronics SP Road |
| 16-Channel Servo Driver | 2000 INR (Highly subject to changes) | [Link](https://www.amazon.com/16-Channel-12-bit-Servo-Driver-Interface/dp/B00EIB0U7A?sr=8-3&linkId=98c8ba826fba5f307d8d0357d2790ab0&language=en_US&ref_=as_li_ss_tl) |
| 5V Power Supply | Mostly available in MARVEL | [Link](https://www.amazon.com/Regulated-Switching-Interchangeable-Universal-Electronics/dp/B0CP7G8Z7R?sr=8-1-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1&linkId=71bd44c0d3e9e9bda13c7552f9bde3d6&language=en_US&ref_=as_li_ss_tl) |
| Female DC Power Jack | 100 INR | SP Road |
| 2-Axis Joystick | 415 INR | OM Electronics SP Road |
| Potentiometer | 50 INR | OM Electronics SP Road |
| Push-to-Make Switch | 90 INR | OM Electronics SP Road |
| 10 k Resistor | 100 INR | OM Electronics SP Road |
| White PLA | 900 INR | WOL 3D Richmond Road |
| Jumper Wires (Entire Set) | 500 INR | OM Electronics SP Road |
| **TOTAL** | **5755 INR** |  |

## Cost Split-Up (For the Jaw Subsystem)

| Component | Estimated Price | Reference Link |
| --- | --- | --- |
| 7x MG90s Micro Servo | 1645 INR | [Link](https://robu.in/product/towerpro-mg90s-mini-digital-servo-2-2kg-0-08sec-13g/) |
| 2x MG996R Servo | 1000 INR | [Link](https://www.amazon.in/Robotbanao-Mg996R-Metal-Digital-Torque/dp/B08THD5DVS) |
| 8x M2 Servo Ball-links | No cost estimation Available |  |
| 4x M2 Short Pushrod Connectors | No cost estimation Available |  |
| Arduino UNO | 500 INR | OM Electronics SP Road |
| 16-Channel Servo Driver | 2000 INR (Highly subject to changes) | [Link](https://www.amazon.com/16-Channel-12-bit-Servo-Driver-Interface/dp/B00EIB0U7A?sr=8-3&linkId=98c8ba826fba5f307d8d0357d2790ab0&language=en_US&ref_=as_li_ss_tl) |
| Potentiometer | 50 INR | OM Electronics SP Road |
| 5V Power Supply | Mostly available in MARVEL | [Link](https://www.amazon.com/Regulated-Switching-Interchangeable-Universal-Electronics/dp/B0CP7G8Z7R?sr=8-1-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1&linkId=71bd44c0d3e9e9bda13c7552f9bde3d6&language=en_US&ref_=as_li_ss_tl) |
| **TOTAL** | **5195 INR** |  |

## Timeline

### Eye Subsystem (Proof of Concept)

- **June 25th - 1st July**: CAD simulation of parts and research as needed. Begin 3D printing parts.
- **2nd July**: Visit SP Road and purchase electronics parts for final assembly.
- **3rd July - 10th July**: Sand individual parts, assemble, and update code with Akanksh.
- **10th July - 14th July**: Assemble the joystick to control the subsystem.
- **July 16**: Present the proof of concept to Marvel coordinators for project approval.

### Jaw Subsystem

- **15th July - 22nd July**: Study the jaw mechanism using head models and mechanical mechanisms to keep the subsystem light on power but highly functional.
- **23rd July - 27th July**: CAD simulation of jaw mechanism parts to prevent collisions. Collaborate with Akanksh and Dhruv to upload code for text-to-movement synthesis.
- **28th July - 5th August**: 3D printing and assembly of the jaw subsystem.

### Integration and Synchronization

- **Next 15 Days**: Integrate subsystems on a single rig and synchronize all subsystems.

## STL File

## Code

```cpp
//  X-axis joystick pin: A1
//  Y-axis joystick pin: A0
//  Trim potentiometer pin: A2
//  Button pin: 2

#include 
#include 

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

#define SERVOMIN  140 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  520 // this is the 'maximum' pulse length count (out of 4096)

uint8_t servonum = 0;

int xval;
int yval;

int lexpulse;
int rexpulse;

int leypulse;
int reypulse;

int uplidpulse;
int lolidpulse;

int trimval;

const int analogInPin = A0;
int sensorValue = 0;
int outputValue = 0;
int switchval = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("8 channel Servo test!");
  pinMode(analogInPin, INPUT);
  pinMode(2, INPUT);

  pwm.begin();

  pwm.setPWMFreq(60);  // Analog servos run at ~60 Hz updates

  delay(10);
}

// you can use this function if you'd like to set the pulse length in seconds
// e.g. setServoPulse(0, 0.001) is a ~1 millisecond pulse width. its not precise!
void setServoPulse(uint8_t

UVCE,
K. R Circle,
Bengaluru 01