Building a Humanoid Robot

I designed and built a humanoid-style robot entirely from scratch as a Mechatronics Engineering project with a group of friends. Components were custom developed – no commercial robot platforms were used.

Project Goal

The goal was to design and integrate a robotic system capable of mobile navigation, articulated arm manipulation, and basic human-like interaction through motion and visual feedback.

Future plans were to integrate a Brain-Computer Interface (BCI) into the robot to allow operators to control the robot via thoughts – story for a separate post!

Mechanical Design

The robot features an upper-body humanoid form mounted on a mobile base:

  • Arms: 2 arms, 6 degrees of freedom per arm (shoulder, elbow, wrist, and gripper)
  • Neck: 2 degrees of freedom (pan and tilt)
  • Locomotion: Wheeled base for stable and efficient movement

The chassis and arm structures were designed in CAD using SolidWorks and fabricated using a combination of aluminum and 3D-printed components. The modular design allowed easy access to joints and electronics for maintenance and upgrades.

Actuation and Motion Control

Each joint is driven by high-torque servo motors selected based on torque and precision requirements. I implemented:

  • Inverse kinematics for 6-DOF arm positioning
  • Coordinated dual-arm motion for symmetrical tasks
  • Differential drive control for wheeled navigation

This approach enabled smooth arm trajectories and controlled base movement.

Electronics and Control

The control system uses a Raspberry Pi and Arduino in a master–slave configuration:

  • Raspberry Pi: High-level control, vision processing, and user interface
  • Arduino: Real-time motor control and sensor handling

The separation improved timing reliability for servos while allowing more complex processing on the Pi.

Sensors and Interface

  • Rotary encoders for joint position feedback
  • Ultrasonic sensors for obstacle detection
  • LCD screen used as a facial display for status and expressions

The LCD face provides a simple, human-like interaction layer.

Software

I developed the software in Python (Raspberry Pi) and C++ (Arduino). The architecture separates high-level decision-making from low-level control, with serial communication used between controllers. Safety limits were implemented to protect joints and actuators.

Results

The robot navigates using its wheeled base, executes precise 6-DOF arm movements with both arms, and displays visual feedback through the LCD face.

A new Engineering Lab Assistant was hence born – ELA…

ELA Walking among us!

ELA, the humanoid robot, became a guest at the Institution of Engineers, Malaysia’s (IEM) Annual Dinner event

Share your love