Robot interface and RobotBase abstract class