abstract robot design