Exploring the World of Humanoid Robots: Open-Source Projects for Electronic Enthusiasts

Robots exemplify how electronics can precisely execute mechanical tasks. Over the past decades, the definition and scope of robots have expanded beyond mechanical functions, reaching into realms such as communication and intelligence. This expansion is driven by a desire to replicate human capabilities. Humanoid robots, a product of this effort, are designed to resemble the human body, mimicking both kinematic motions and kinetic capabilities.

Humanoid robots can operate autonomously, while some are controlled remotely or pre-programmed for specific tasks, like dance sequences. Developments in humanoid robotics focus on mimicking human motion and interaction.

This article delves into humanoid robots, specifically open-source projects suitable for electronic hobbyists and engineers. The highlighted projects involve 3D-printed parts, requiring a 3D printer to embark on any of the mentioned endeavors. Even a budget 3D printer compatible with Cura or another open-source 3D slicer is sufficient. Additionally, these projects leverage microcontroller or microcomputer platforms commonly used in hobbyist and embedded systems.

How would you define a robot?

The term ‘robot’ finds its roots in the Czech word ‘robota,’ signifying a slave or a mechanical entity designed to assist its master. In contemporary terms, a robot is an automated device capable of carrying out tasks typically attributed to humans. While the concept of robotics initially emerged from CNC (Computer Numerical Control) machines, robots differ significantly from numerically controlled automated machines due to their enhanced sensory capabilities.

A robot is a software-controlled mechanical entity equipped with sensors to guide one or more end-effectors through programmed motions in a given environment, facilitating the manipulation of physical objects. Unlike automated machines, robots are re-programmable and heavily rely on environmental sensing. The typical workflow of a robot involves sensing, decision-making, and execution. Notably, robots are designed to be autonomous machines, distinguishing them from CNC machines. This definition aligns particularly well with what we commonly refer to as industrial robots.

How would you describe a humanoid robot?

As of now, there is no precise definition for humanoid robots. Generally, robots possessing a human-like structure or those that imitate human interaction are often referred to as humanoid robots. However, it’s important to note that robots featuring a human face and specifically designed to replicate human interaction belong to a distinct field of robotics that emphasizes natural language processing (NLP) and artificial intelligence (AI), rather than conventional mechanical robotics. A more accurate classification for humanoid robots would be those that exhibit human-like characteristics, built to replicate human kinematics and motion. Typically, humanoid robots are engineered to imitate activities such as walking, jumping, holding, picking and placing objects, as well as mimicking human gestures.

Practical Uses of Humanoid Robots

Currently, humanoid robotics remains a field of ongoing research, presenting both challenges and advancements. Unlike their industrial counterparts, humanoid robots are not yet prevalent in industrial or consumer applications; rather, they are primarily developed for military or engineering projects.

Two significant challenges within humanoid robotics involve replicating the flexibility and dynamics of human muscles and emulating human sensory capabilities. Human muscles, with their intricate network of tissues, efficiently stimulate motion, a feat not precisely replicated by the servos currently employed in humanoid robots. Additionally, human balance and posture, guided by sophisticated vision and auditory senses, pose challenges for robotic emulation.

Despite their limited industrial or consumer presence, humanoid robots are frequently explored in research and development projects, often featuring in endeavors such as walking or dancing robots. Some instances of humanoid robots can be found in roles like toys, home assistants, or even in restaurants. Practical applications of humanoid robotics are evident in orthosis and prostheses. As this field advances, there is potential for humanoid robots to take on roles traditionally performed by humans, particularly in high-risk occupations. This could include tasks like household chores, factory work, underwater exploration, or even space missions without the need for an oxygen tank.

Humanoid Projects with Open-Source Designs

Venturing into humanoid robotics presents a formidable challenge, requiring expertise in electronics, engineering mechanics, physics, and software programming. Choosing a starting point can be a major hurdle in this endeavor, as the theoretical complexities of crafting a humanoid robot can be daunting. Fortunately, there are open-source humanoid robot projects available that offer valuable starting points for enthusiasts. These projects can either kickstart your journey into robotics or serve as standalone endeavors. The advantage of these projects lies in the fact that you don’t have to build robots from the ground up. Instead, you receive 3D models for robot components that can be 3D printed and assembled following the provided guides. This approach allows you to focus on programming the embedded platform to implement optimal kinematics or address new dynamics challenges.

Now, let’s explore a few open-source initiatives in the field of humanoid robotics.

humanoid robots

image source ( Inmoov)

InMoov, an initiative by French sculptor and designer Gael Langevin, began as an open-source project in 2012, initially focused on prosthetic hands. Over time, it evolved into a comprehensive humanoid project, resulting in a 3D-printed life-size robot. All mechanical components of the robot can be produced using a home 3D printer with a print size of at least 120x120x120mm.

The humanoid robot boasts a 6 DOF head, 2 DOF torso, 5 DOF arms, 16 DOF hands, and non-motorized legs. Notably, it features independent head and eye movement. Building this humanoid requires 2 Arduino Mega or Arduino UNO boards, 2 Nervo board shields, and 28 servos. It incorporates two cameras for face/object tracking, two loudspeakers for speech, a Kinect sensor for 3D depth and gesture recognition, and a PIR sensor for presence detection. All fingers of the robot are motorized.

The construction of this humanoid follows a step-by-step approach, starting from fingers and progressing through hand and forearm, bicep, shoulder, torso, back, head, neck, jaw, eyes, top stomach, mid stomach, lower stomach, and finally, the non-motorized legs.

By 3D-printing parts at home and preparing the nervo board independently, the project can be cost-effective. The SLT files for the 3D printed parts can be found on the inmoov.fr gallery, and around 57 different parts need to be printed for a complete humanoid. Many 3D models for InMoov are also available on ThingiVerse. Electronic components and their circuit connections are detailed in the hardware map and BOM section. InMoov can be programmed using MyRobotLab, but users can also create custom Arduino programming based on InMoov parts and servo logic.

One notable aspect of this humanoid project is its segmented structure, allowing builders to focus on specific life-size parts according to their budget and progression. This approach also enables experimentation with the kinematics of individual parts independently.

Discover more about this humanoid project by visiting inmoov.fr.

Project Poppy Humanoid

Top Open-Source Projects for 3D-Printed Humanoid Robots image 20

photo image source from imageSource

Poppy represents yet another open-source 3D-printed humanoid robot, originating from a project initiated in 2012 at the Flowers laboratory at Inria Bordeaux Sud-Ouest. The endeavor commenced during Matthieu Lapeyre’s Ph.D. Thesis under the supervision of Pierre-Yves Oudeyer and received initial funding through the ERC Grant Explorer. Currently overseen by the non-profit organization Poppy Station, dedicated to promoting Robotics and Artificial Intelligence, this community-driven project emphasizes the sharing of hardware, software, and web tools. Comprising three distinct robots—Poppy humanoid, Poppy torso, Poppy Ergo Junior, Poppy Heol, Poppyrate, and Poppy right arm—the project operates under open-source licenses. However, it’s important to note that the name ‘Poppy’ is safeguarded as an international trademark.

All components of the robot are 3D-printed, and the STL files for these parts are available on Github. Construction of the humanoid is divided into three main parts: biped legs, torso, and head. The complete humanoid model integrates 25 servos and employs modular smart actuators known as Robotis Dynamixel. Poppy, a 25 DOF humanoid featuring a fully actuated vertebral column, is programmable for various activities, including walking, interaction, dancing, and artistic performances.

The Poppy Humanoid can be built using either Raspberry Pi 3/4 or an Odroid board. For simplified software setup, the recommended approach is installing the pre-configured Poppy operating system on an SD card, accessible on Github. Software tools for Poppy encompass Pypot, a Python library for controlling Poppy robots, robot-specific repositories, a robot simulator, and a web control interface. Programming options include Scratch, Python, and Robot Operating System (ROS), and the humanoid can be controlled through Robot APIs. Simulation testing is possible using two software tools: CoppeliaSim (formerly named V-REP), a virtual robot experimentation platform, and a 3D web viewer, a lightweight simulator without physics support. To control a simulated Poppy robot, Python 3.5 or higher, the PyPot library, and Poppy Humanoid-specific Python libraries need to be installed on the computer system.

Top Open-Source Projects for 3D-Printed Humanoid Robots image 21

Example of Poppy Robot Simulator

Learn more about Poppy Humanoid by visiting poppy-project.org.

Humanoid Project RoboPrime

Top Open-Source Projects for 3D-Printed Humanoid Robots image 22

image source from Engineeers garaage

If you’re intrigued by the prospect of constructing a relatively small humanoid robot within a budget ranging from $60 to $100, RoboPrime offers an open-source solution. Licensed under GPL 3.0, RoboPrime is a 21 DOF humanoid robot built on ATmega328P, initiated by Simone Primarosa. Originally developed as a high school project, Simone utilized an Arduino Pro Micro, although any Arduino with sufficient GPIO can serve as a suitable alternative. The complete humanoid assembly requires 21 MG90S 9G servo motors, along with additional components such as HC-05 for Bluetooth, MPU-6050 for acceleration and gyroscope, and a 74HC4017 decade counter.

All components for assembling this humanoid are 3D printed, and the STL files for these parts are accessible on the project’s Github page. The circuit diagram and firmware are also provided on the same link. RoboPrime is an excellent starting point for a humanoid project on a minimal budget. Experimenting with firmware modifications for different kinematics can add an extra layer of fun. The existing firmware includes code for walking, sitting down, and performing a hello greeting.

While this low-cost humanoid project provides a solid foundation, it involves delving into low-level C code, offering a challenging yet highly educational experience. Implementing theory into practice provides an invaluable opportunity to grasp the intricacies of physics and programming in humanoid robotics.

One caveat is that the documentation for this open-source humanoid project is available only in Italian. Nevertheless, the firmware and complete source code are accessible, allowing users to analyze the source code to understand the workings of both the code and the humanoid robot. Once decoded, users can draw insights from code repositories of other humanoid projects to create unique sequences for RoboPrime. Contributions to the project on Github are welcomed, encouraging users to enhance and modify one of the most accessible and affordable humanoid robots.

It’s essential to note that this humanoid project is not actively maintained, so users may encounter the need for substantial tweaking and experimentation. Nevertheless, the project serves as a functional humanoid robot that can be further refined and customized.

For further details on RoboPrime, explore the project on Github.

By Maxine