abstract robot