Skip to content

A humanoid robot powered by Arduino and AI, responding to humans' pose and voice commands.

License

Notifications You must be signed in to change notification settings

gunarakulangunaretnam/mr-humanoid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MR.HUMANOID

Repo Structure

    ├── docs                                   # Contains documents.
    ├── research                               # Contains pre-research experiments.
    │   ├── 0-code-references                      # Contains reference codes.
    │   ├── 1-web-based-prototype-v1.0.0           # Contains a web app trained using Teachable Machine.
    │   ├── 2-desktop-based-prototype-v1.0.0       # Contains py apps basic prototypes.
    ├── source                                 # Contains main source code.
    │   ├── 0-robot-resetter.py                    # Reset robot to default position.
    │   ├── 1-pose-based-main.py                   # Pose-based version.
    │   ├── 2-voice-based-main-english-version     # Voice-based English version.
    │   ├── 3-voice-based-main-tamil-version       # voice-based Tamil version.
    └── README.MD                              # Readme Content.

01 Introduction

This humanoid robot, powered by Arduino and AI, boasts impressive capabilities. It can interpret human poses, mimic arm movements, and respond to voice commands in both Tamil and English. Additionally, it can articulate its arms and head in response to voice inputs, making it versatile and interactive in multilingual environments. This dual-language functionality enhances its usability and appeal across diverse user bases.

Circuit Diagram

02 Technology Stack

2.1 Hardware Stack

  • Arduino UNO (1)
  • 180deg Micro Servo Motor (3)
  • Full / Half Bread Board (1)
  • Jumper Wires

2.2 Software Stack

  • Python 3.8.5
  • Arduino IDE (Framework)
  • OpenCV
  • Mediapipe 0.10.3
  • PyFirmata
  • SpeechRecognition
  • PyAudio

03 Setup

3.1 Hardware Setup

Circuit Diagram

Objects Pin No
Left Arm Pin: 13
Right Arm Pin: 12
Head Pin: 11

3.2 Firmware Setup

Setting up the Arduino firmware is necessary to enable communication between Python and Arduino. The Firmata protocol establishes serial communication between a Python script and an Arduino.

To upload Firmata, open Arduino IDE and choose the correct COM port and File -> Examples -> Firmata -> StandardFirmata -> Upload to Arduino UNO Board.

Firmware Setup

Note: After uploading StandardFirmata to the Arduino Board, Python can be used to program it.

3.3 Setup Software

We will now install the necessary software and configure the AI to gain access to the Arduino Board. This project utilizes essential libraries, including Speech Recognition, MediaPipe, and OpenCV. We need to install all the required dependencies on the development computer.

  • Step 01: Install Python

    Ver: 3.8.5 is Recommended (www.python.org)
    
  • Step 02: Navigate to the specified location in CMD/Terminal.

    mr-humanoid/docs/requirements.txt
    
  • Step 03: Execute the given command to install all dependencies.

    pip install -r requirements.txt
    
  • Step 04 (Anaconda Env): If you're using Anaconda, you can set up an environment that includes all the necessary dependencies.

     conda env create -f environment.yml
    

04 Usage

We have four Python programs:

  • Robot Resetter: This script resets the robot to its default position. After removing the robot's arms and head, running this script readjusts all motors to their correct positions. Then, you can manually position the arms downwards and align the head to look straight ahead for setup.

  • Pose-based: This program utilizes OpenCV and MediaPipe to track and mimic the movement of a human arm.

  • Voice-based English: This program employs Speech Recognition technology to understand and execute instructions spoken in the English language.

  • Voice-based Tamil: This program utilizes Speech Recognition technology to comprehend and execute instructions spoken in the Tamil language.

  • Source Directory:

    mr-humanoid\source
    
        * 0-robot-resetter.py
        * 1-pose-based-main.py
        * 2-voice-based-main-english-version.py
        * 3-voice-based-main-tamil-version.py
    
    

4.1 Setps to run

  • Step 01: Connect the Arduino to the development computer.

  • Step 02: Modify the script to reflect the appropriate COM port.

    Change COM Port

  • Step 03: To reset the robot.

    python 0-robot-resetter.py
    
  • Step 04: To run the Pose-based app.

    python 1-pose-based-main.py
    
  • Step 05: To run the voice-based English version app.

    python 2-voice-based-main-english-version.py
    
  • Step 06: To run the voice-based Tamil version app.

    python 3-voice-based-main-tamil-version.py
    

4.2 Output

Output Pose 1

Output Pose 2

Output Pose 3

Output Voice 1

05 Documentation

5.1 Voice Commands English

Voice Commands
right hand up
left hand up
right hand down
left hand down
hands up
hands down
head left
head right
head forward

5.1 Voice Commands Tamil

Voice Commands
வலது கையை தூக்கவும்
வலது கையை மேல் நோக்கி உயர்த்தவும்
வலது கையை மேல் நோக்கி தூக்கவும்
வலது கையை உயர்த்தவும்
வலது கையை மேல் நோக்கி எழுப்பவும்
வலது பக்க கையை உயர்த்தவும்
கையை உயர்த்தவும்
வலது பக்க கையை மேல் நோக்கி உயர்த்தவும்
இடது கையை தூக்கவும்
இடது கையை மேல் நோக்கி உயர்த்தவும்
இடது கையை மேல் நோக்கி தூக்கவும்
இடது கையை உயர்த்தவும்
இடது கையை மேல் நோக்கி எழுப்பவும்
இடது பக்க கையை உயர்த்தவும்
இடது பக்க கையை உயர்த்தவும்
இடது பக்க கையை மேல் நோக்கி உயர்த்தவும்
வலது கையை கீழே இரக்கவும்
வலது கையை கீழ் நோக்கி இரக்கவும்
வலது கையை கீழே விடவும்
வலது கையை கீழே பதிக்கவும்
வலது கையை கீழ் நோக்கி விடவும்
வலது பக்க கையை பதிக்கவும்
வலது பக்க கையை கீழ் நோக்கி இரக்கவும்
வலது பக்க கையை இரக்கவும்
இடது கையை கீழே இரக்கவும்
இடது கையை கீழ் நோக்கி இரக்கவும்
இடது கையை கீழே விடவும்
இடது கையை கீழே பதிக்கவும்
இடது கையை கீழ் நோக்கி விடவும்
இடது பக்க கையை பதிக்கவும்
இடது பக்க கையை பதிக்கவும்
இடது பக்க கையை கீழ் நோக்கி இரக்கவும்
நேரே பார்க்கவும்
முன் நோக்கி பார்க்கவும்
தலையை முன் நோக்கி பார்க்கவும்
தலையை முன் பக்கம் வைக்கவும்

Contact

Website:

Visit

Social Media:

LinkedIn Facebook WhatsApp Instagram X.COM Kaggle TikTok YouTube