Building a humanoid robot is an engineering challenge. It’s not just about programming. It’s about mastering the three fundamental principles of motion: balance (knowing where your body parts are) and kinesthetic (knowing how to move those parts in relation to each other). It is surprisingly difficult for robots to replicate human movement and awareness.
Second, humanoids represent one of the ultimate goals of robotics: to synthesize advances from many disciplines. These robots are inherently cross-disciplinary, involving advanced locomotion and manipulation, biomechanics, artificial intelligence, machine vision, perception, learning and cognitive development, as well as behavioral studies.
In this post, we will see some of the key engineering challenges in building a humanoid robot.
1. Skeletal structure
To make a humanoid, you need a strong skeletal structure with actuators that can exert hundreds of pounds of force and yet move within an accuracy of 1/10 of a millimeter. Imagine a powerlifter who can lift 600lbs off the ground, shoot a 7 kg shot-put 16 m, then turn and thread a needle with the same hands, tie his shoes, or play piano. The actuators we use in humanoid robots must capture this dynamic range of activities if they are to be useful and do the jobs we do. How can we solve this? Options include electromagnetic (rotary and linear) actuators, hydraulic / pneumatic pistons, hydraulic artificial muscles, or electric artificial muscles.
2. Facial expressions
For speech and proper facial expressions, we need facial precision actuators capable of moving far enough to generate correct facial movements and move quickly and accurately enough to make these motions realistic. Servos are bulky and hard to fit enough, so we need some kind of artificial electrical muscle as the best solution.
3. Weight to power ratio
Adding powerful actuators requires a lot of energy. To achieve enough power, we may end up adding more weight and this will eventually become a self-defeat exercise. We need lighter, stronger actuators and a source of power that can run a humanoid robot for a whole day (10 hour) and recharge fast. Lithium Ion batteries are bulky, heavy and take time to charge. In robots, we can’t use fossil fuels. It would be horribly noisy and exhausting. Another option is to use Hydrogen fuel cells but they are costly. Storing and fueling hydrogen in the home is probably not a good idea!
4. AI and motion planning
This is the toughest challenge in robotics. A humanoid must integrate the input from its sensors, make an environment model and determine what goals it wants to achieve! It should decide how it wants to achieve those goals, plan its movements and interact with people and objects, then send commands to its motor controllers to determine how to move the actuators to locomote the robot and move the limbs to interact with the objects in its space, preferably with human-like motions so that the robot is pleasant to watch move, and we don’t get an uncanny animation effect. This is difficult and that’s why we don’t see many humanoid robots running around, even on Google or the Amazon campuses.
5. AI and interaction
The humanoid must also understand verbal commands, talk, and interact with you. This is coming along and now voice command devices like Alexa, Google Assistant, and Siri, and Cortana are at this level. But there is another challenge. Voice recognition can not parse normal, verbose, rambling, and ambiguous verbal input as we humans usually say.
Humanoid robotics requires a vast amount of research and development in the field of the biomimetic design, stability and autonomous control, adaptive walking to rough terrain and natural gaiting, robust control for avoiding falling on the ground, adaptive behavior, robot machine learning capability, real-time visual recognition and understanding, multi-robot cooperation, human-robot coordination, human psychological aspects, and many others. Researchers have gained tremendous momentum in some of these areas, but there are miles to go! What you think? You got anything to add?