A humanoid robot is an autonomous robot because it can adapt to changes in its environment or itself and continue to reach its goal. This is the main difference between humanoid and other kinds of robots. In this context, some of the capacities of a humanoid robot may include, among others:
* self-maintenance (recharge itself)
* autonomous learning (learn or gain new capabilities without outside assistance, adjust strategies based on the surroundings and adapt to new situations)
* avoiding harmful situations to people, property, and itself
* safe interacting with human beings and the environment
Like other mechanical robots, humanoid refer to the following basic components too: Sensing, Actuating and Planning and Control. Since they try to simulate the human structure and behaviour and they are autonomous systems, most of the times humanoid robots are more complex than other kinds of robots.
This complexity affects all robotic scales (mechanical, spatial, time, power density, system and computational complexity), but it is more noticeable on power density and system complexity scales. In the first place, most current humanoids aren’t strong enough even to jump and this happens because the power/weight ratio is not as good as in the human body. The dynamically balancing Anybots Dexter can jump, but poorly so far. On the other hand, there are very good algorithms for the several areas of humanoid construction, but it's very difficult to merge all of them into one efficient system (the system complexity is very high). Nowadays, these are the main difficulties that humanoid robots development has to deal with.