Robots are a perfect example of how electronics can precisely and accurately perform mechanical jobs. Over the past decades, the scope and definition of robots has extended far from the realms of mechanical tasks. Now, robots are imagined to automate everything possible, including communication and intelligence. A cause behind this is an attempt to replicate human capabilities in all. The result of the same effort is humanoid robots.
Humanoid robots are robots built to resemble a human body. These robots have human-like built and replicate similar kinematic motions and kinetic capabilities. Often, humanoids are designed as autonomous robots. Many humanoid robots are remote-controlled or pre-programmed. Like dancing, humanoid robots are often preprogrammed to display specific dance sequences. The developments in the area of humanoid robots is mainly focused on two aspects – one is to mimic human motion, and the second is to mimic human interaction.
In this article, we will discuss humanoid robots and explore some open-source humanoid projects that electronic hobbyists and engineers can give a try or kick-off as a starting point. The open-source humanoid projects discussed in this article use 3D-printed parts, so one would need a 3D printer to begin any of the projects mentioned. Even a budget 3D printer operational with Cura or another open-source 3D slicer will be sufficient. The projects utilize the same microcontroller or microcomputer platforms that are used in hobby/embedded projects.
What is a robot?
The term robot originated from the Czech word ‘robota’, which means slave or a mechanical item that would help its master. A robot is an automatic device that performs functions normally ascribed to humans. The concept of robotics actually evolved from CNC machines. Still, a robot is very different from a numerically controlled (NC) automated machine. The difference lies in the sensory capabilities of the robot. A robot is a software-controlled mechanical device that uses sensors to guide one or more end-effectors through programmed motions in a workplace in order to manipulate physical objects. Contrary to automated machines, robots are re-programmable and extensively depend upon sensing their environment. A typical workflow of a robot essentially includes sensing, decision-making, and performing. A major difference between robots and CNC machines is that robots are designed to be autonomous machines. This definition perfectly fits to at least what we call industrial robots.
What is a humanoid robot?
At present, humanoid robots have no exact definition. Often, robots that have a human-like structure or robots that mimic human interaction are termed humanoid robots. Though, the robots that have a human face and are designed to mimic human interaction is a completely different robotics field that is more focused on natural language processing (NLP) and artificial intelligence (AI) rather than typical mechanical robotics. It would be better to classify humanoid robots as those robots that have human-like and built to mimic human kinematics and motion. A humanoid robot is typically designed to mimic walking, jumping, holding, picking, and placing objects, and mimic human gestures.
Applications of humanoid robot
At present, humanoid robotics is a field of research. This is a challenging and evolving area of robotics. Unlike industrial robots, you may not find humanoid robots deployed in industries or consumer applications. Humanoid robots are under development as either military projects or engineering projects.
There are two major challenges in humanoid robotics. One is mimicking the flexibility and dynamics of human muscles. Human muscles are a complex network of interconnected tissues that very efficiently stimulate and produce motion. The present humanoid robotics depend upon servos to mimic similar movements. Obviously, servos have their own limitations as motors and cannot exactly produce the dynamics that muscles stimulate. Human muscles also have a defining role in maintaining body balance and posture. Obviously, servos on their own have nothing to do with balancing. In humanoid robots, the balancing is maintained by the mechanical design, placement, and operation of servos. Secondly, human motion is guided by highly capable vision and auditory senses. Developing similar capabilities with cameras and microphones is a complicated task.
Though presently, humanoid robots do not have an industrial or consumer presence. Humanoids are part of robotics and are often tried as walking robots or dancing robot projects. You may find humanoid robots as toys, home robots, or restaurant robots. Some active applications of humanoid robotics can be found in the area of orthosis and prostheses. Once, humanoid robotics will cross a milestone, we may find humanoids replacing humans in all sorts of jobs, particularly those that bear a danger to human life. You may find humanoid robots performing household tasks, operating as factory workers, as divers, or as astronauts going on a far-off space mission that too without the need of an oxygen tank.
Open-source humanoid projects
Humanoid robotics is a challenging field. One requires knowledge of electronics, engineering mechanics, physics, and software programming to design and make a humanoid robot. A major challenge in taking this initiative would be choosing a starting point. In theory, making a humanoid robot can be an uphill task. Fortunately, there are some open-source humanoid robot projects that are worth trying. These projects can be a starting point in your robotic adventure or can serve as independent projects. The good thing about these projects is that you do not need to design robots from scratch. You get 3D models for robot parts that can be 3D printed and assembled as per the given guides. This way, you can focus on the programming of the embedded platform to get implement the maximum kinematics or solve new dynamics problems.
Let us now discuss some of the open-source initiatives in humanoid robotics.
InMoov humanoid robot project
InMoov is a personal initiative of French sculptor and designer, Gael Langevin. It started as an open-source project in 2012 for prosthetic hands leading to projects like Bionics, E-Nable, and others. At present, InMoov is a full-fledged humanoid project as a 3D-printed life-size robot. All mechanical parts of the robot can be produced from a home 3D printer having a print size of at least 120x120x120mm.
The humanoid robot has a 6 DOF head, 2DOF torso, 5 DOF arms, 16 DOF hands, and non-motorized legs. This humanoid is capable of independent head and eye movement. Making this humanoid requires 2 Arduino Mega/Arduino UNO, 2 nervo board shields, and 28 servos. It uses two cameras for face/object tracking, two loudspeakers for speech, 1 kinect sensor for 3D depth and gesture recognition, and a PIR sensor for presence detection. All fingers of the robot are motorized.
You can build this humanoid step-by-step, starting off from fingers, and progressing through hand and forearm, bicep, shoulder, and torso, back, head, neck and jaw, eyes, top stomach, mid stomach, lower stomach, then finally, the non-motorized legs.
If parts are 3D-printed at home and nervo board is prepared by self, the project may not cost too much. The SLT files for the 3D printed parts can be found in the gallery of inmoov.fr. Building a complete humanoid requires printing around 57 different parts. Many 3D models for InMoov are contributed at ThingiVerse as well. The electronic components and their circuit connections are provided in the hardware map and BOM section. InMoov can be programmed using MyRobotLab. However, nobody is stopping to have your own custom Arduino programming utilizing InMoov parts and servo logic.
The best thing about this humanoid project is that it is broken into segments according to specific human parts like fingers, hands and arms, heads, etc. So, you can make specific life-size parts of this humanoid according to your budget and progression. This also lets you play with the kinematics of specific parts in an independent manner.
Explore this humanoid project at inmoov.fr.
The youtube channel of Gael Langevin has some exciting videos of InMoov, the life-size humanoid robot.
Poppy humanoid project
Poppy is another open-source 3D-printed humanoid robot. The project started in 2012 in the Flowers laboratory at Inria Bordeaux Sud-Ouest. It began during Matthieu Lapeyre’s Ph.D. Thesis supervised by Pierre-Yves Oudeyer. It was initially financed by ERC Grant Explorer. Now, it is managed by the Poppy Station, a non-profit promoting Robotics and Artificial Intelligence. This is a community-driven project with sharable hardware, software, and web tools. The project actually includes three robots – Poppy humanoid, Poppy torso, Poppy Ergo Junior, Poppy Heol, Poppyrate, and Poppy right arm. The project is freely available under open-source licenses. However, the use of the name ‘Poppy’ is restricted and protected as an international trademark.
All the parts of the robot are 3D-printed. The STL files for 3D-printed parts of this humanoid are available on Github. This humanoid can be built in three parts—biped legs, torso, and head. The complete humanoid model requires 25 servos. The project uses modular smart actuators called Robotis Dynamixel. Poppy is a 25 DOF humanoid with a fully actuated vertebral column. The robot can be programmed to walk, interact, dance, and give artistic performances.
The Poppy Humanoid can be built on Raspberry Pi 3/4 or an Odroid board. The easiest way for software setup of Poppy Humanoid is to install the ready-made Poppy operating system on a SD card. The ready-to-use operating system is available on Github. The software tools for Poppy include Pypot, a Python library to control Poppy robots, robot-specific repositories, a robot simulator, and a web control interface. The Poppy Humanoid can be programmed using scratch, Python, and Robot Operating System (ROS). The humanoid can also be controlled using Robot APIs. A simulated version of Poppy can be tested using two simulator software – CoppeliaSim (formerly named V-REP), a virtual robot experimentation platform, and a 3D web viewer, a light-weight simulator but without physics support. For controlling a simulated Poppy robot, one needs Python 3.5 or higher, PyPot library, and Poppy Humanoid-specific python libraries installed on your computer system.
Explore more about Poppy Humanoid on poppy-project.org.
You can find some exciting videos of Poppy Humanoid and other Poppy robots on the Poppy Project’s Youtube channel.
RoboPrime humanoid project
If you are interested in building a relatively small humanoid robot within a budget of $60~$100, RoboPrime is an open-source 3D-printed humanoid robot licensed under GPL 3.0. RoboPrime is an initiative by Simone Primarosa. This is a 21 DOF humanoid built on ATmega328P. The project was developed by Simone as a high school project. The author has built the robot on Arduino Pro Micro, however, any Arduino with sufficient GPIO can be used in place. The complete humanoid requires 21 MG90S 9G servo motors. Additionally, it uses HC-05 for Bluetooth, MPU-6050 for acceleration and gyroscope, and 74HC4017 decade counter.
All the parts used in assembling this humanoid are 3D printed. The STL files for the 3D printed parts are available on the Github page of the project. The circuit diagram and firmware are also available on the same link. RoboPrime is just great for starting a humanoid project from scratch with a minimal budget. It would be fun modifying the firmware of this project to play with different kinematics. The firmware already includes code for walking, sitting down, and doing a hello greeting.
This low-cost humanoid project can be a well beginning. This project lets you make your hands dirty with low-level C code. This could be a hard way but with a lot of learning. This could be a no better chance for understanding the physics and programming of humanoid robotics by implementing theory into practice.
The only drawback of this open-source humanoid project is that its documentation is only available in Italian. Still, you have the firmware and complete source code at your disposal. You can scrutinize the source code to demystify the working of the code and the humanoid robot. Once you would have decoded the source code, you can find assistance from code repositories of other humanoid projects to make RoboPrime dance on your own sequences. You are free to make further contributions to the project on Github and enhance this one most accessible and affordable humanoid robots.
Note that this humanoid project is not actively maintained, so you may need a lot of tweaking and playing. Still, the project is a working humanoid robot that can be further improved and modified.
Explore more about RoboPrime on Github.
You may also like:
Filed Under: Applications, Arduino, ARM, PIC Microcontroller, Raspberry pi, Robotics, Tech Articles
Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.