Many of the robot references I have read, recommend that you decide what functions your robot will perform as you start the design process. This makes sense, as the robot's functions will determine what sensors, actuators and other parts, you must build into it, so it can complete its mission.
Many robots fall short of public expectations. I think this is because many of the desired functions are too complex. Anything that requires object recognition and manipulation is a very difficult task at this stage of robot evolution.