OK, I'm working on an API for a robotics system, my strategy is to define a small workable API that is extensible. The robot will be divided into logical functional objects of varying levels of complexity.
The first object I am thinking about is the robot "base." Imagine you had a simplified API to a robotic base. The base may be legged, wheeled, pogo-sticked, or overcraft it should not matter.
What is a reasonable control structure for such an API?
Velocity: set velocity Set vector/curve?
Position: move to position report estimated position move to position at speed
Do I build more functionality than that into the base, instead relying on higher level objects to control the base?
What do you think?