Hardware Abstraction for General-Purpose Robot Control, 10-R9832

Printer Friendly Version

Principal Investigator
Jeremy Zoss

Inclusive Dates:  07/01/08 – 12/31/09

Background - Traditionally, robotic software development has been tightly coupled with the specific hardware platform selected for deployment. End-users often must control the robot using a manufacturer-specific controller, communications protocol, or programming language. Users that need to deploy multiple robot types are forced to learn a confusing variety of hardware and software interfaces to accomplish even the most basic tasks. Significant effort is spent duplicating existing code, control methods or operator interfaces on multiple platforms because cross-platform code reuse is extremely difficult. The continued growth of robotics into increasingly different industries and applications will only compound these difficulties. Users across many different fields have identified the need for a general-purpose control interface to provide control consistency and promote hardware independence.

Approach - A generic control interface is a software module that receives signals from a variety of input devices and executes commands to cause the desired motion in different target robot platforms. Because the physical construction of robot platforms can vary greatly, different detailed motion steps may be required to achieve the same high-level goal. For example, a two-wheeled robot might turn in-place to face its goal while a caster-steered robot might follow a wide arc to reach the same target position. One of the functions of the generic control framework is to generate the appropriate control strategies for physically dissimilar hardware platforms. Rather than develop independent standalone control modules for each target robot, the generic control interface uses a series of nested abstraction layers to maximize code reuse and algorithm consistency. This project will develop the hardware abstraction framework and test the design on three different robot platforms: two small mobile robots and an industrial fixed-base manipulator. A software implementation will support user input from both tele-operation (joystick control) and preprogrammed motion paths. This implementation will be used to provide both qualitative feedback from operators performing tele-operation tasks and quantitative feedback comparing motion performance of the different platforms.

Accomplishments - This project completed the design of a draft interface and framework for high-level control of various dissimilar robotic platforms. A software implementation of this design was developed to evaluate real-world abstraction performance. Hardware interfaces were developed for two mobile-robot platforms, and several common motion-control algorithms were implemented to share between similar robot types. The control software was used to conduct both quantitative and qualitative usability and performance characterizations. The results of design, development and evaluation efforts were used to compile an informal knowledge base of limitations, tradeoffs and advantages associated with the robot abstraction approach.

2010 Program Home