I don't think very advanced AI is far away. If you break down human thinking and translate that into a program, and with the capacity of computers, it's only time.
1. Like a human is programmed to eat/drink, the computer/robot would be programmed to get power when it's running low.
2. As a person learns by experience, asking questions, etc, a computer program/robot can learn by input as well, the more it interacts, the more it learns (in relation to dealing with people) but they can also have every piece of knowledge loaded up as well.
3. With camera lenses, audio, audio recognition, you have it's eyes, ears, etc, and wifi can have it connected to the internet without physically being plugged in.
Just getting the base programming down. Since hard drives are getting larger by the year, processing power better, etc, we probably already the core components needed, just need the genius to program it.