Hardware Abstraction for General-Purpose Robot Control, 10-R9832Printer Friendly Version
Inclusive Dates: 07/01/08 Current
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 is currently in the final quarter, and the team is beginning testing of the robot platforms under different motion types. The high-level generic interface and core abstraction framework has been designed. Individual robot platforms have been integrated into the abstraction software, and several common motion-control algorithms have been developed to share between similar robot types. Current testing efforts are focused on verifying low-level motion functionality, and will soon transition into high-level quantitative and qualitative usability and performance characterizations. The project is also compiling a knowledge base of limitations, tradeoffs and advantages associated with the robot abstraction approach.