Reasoning Robots