Mike Shick

  RoboderpMichael Shick

Scheduling processes on a computer processor is a well-known and well-studied problem. A processor can switch between tasks by simply saving temporary information like register contents to main memory and then allowing another task to take over and do as it pleases. When the original task needs to be resumed, the temporary information can simply be restored from main memory. The issue is more difficult with tasks that include physical movement. If one were to consider the location of a robot to be temporary information, the issue of saving and restoring that information is seen to be a difficult one. Since robots can neither teleport nor be in two locations at once, a more complex solution must be found. Roboderp is just such a solution, providing a mechanism through which unrelated tasks can be made to work in concert with maximum efficiency.

To that end, Roboderp controls all of the information that flows to and from the system needing physical scheduling. Information flowing from programs to the hardware must be in the form of requests for actions from an actuator control hierarchy. Entries in the hierarchy start with the most basic action a physical element can take, such as a servomotor rotating. From there, more complex tasks are built from those primitives. For example, a robot’s 1 rotation command might be made up of a command for a left servo to turn clockwise while a right servo turned counterclockwise. The entire hierarchy is made of such relations, descending as deeply as needed to encompass any common task. Tasks not directly described by a high-level task will have to be pieced together by programs by using the primitives at the bottom of the hierarchy.

Information flowing from the hardware to programs comes through the sensor repository. Programs may request a sample from a sensor in the repository, or register to receive data whenever they become available. There may also exist virtual or derived sensors that also transparently perform computation before returning sensor samples.

Using these mediated information channels, Roboderp can make intelligent decisions taking all running tasks into consideration, while each individual task isn’t aware of any of the other running tasks. This allows developers to concentrate solely on their goals without unintentionally impeding others.

    • If you would like a photo and short bio added please contact the Department of Computer Science.