Autonomous Robots 6, 243–245 (1999) c 1999 Kluwer Academic Publishers. Manufactured in The Netherlands. °
Integrating Robotics Research DAVID KORTENKAMP Metrica Inc./TRACLabs, NASA Johnson Space Center, Mail Code ER2, Houston TX 77058
[email protected]
ALAN C. SCHULTZ Navy Center for Applied Research in Artificial Intelligence, Naval Research Laboratory, Washington DC 20375-5337
[email protected]
The field of intelligent robotics has reached the point where interesting solutions have been found for specific pieces of the general problem of creating robotic vehicles that are autonomous and exhibit robust, adaptive behavior. In order to make significant new progress we need to start building systems that are composed of many different components all working together. Many research groups, however, continue to work in narrowly focused areas, and few attempts have been made to integrate these separate research efforts. Few robotics research groups have the resources to build, from scratch, every component of their robot. Thus, the community needs to be able to share components, allowing each research group to concentrate their efforts on a small piece of the robotics puzzle. This special issue is the result of several recent technical gatherings that addressed the challenges of integrating robotics research. The first was the 1998 AAAI Spring Symposium on Integrating Robotics Research at Stanford University. This symposium brought together over 40 people, including researchers, robot manufacturers, and sponsors. The second was a special session at the 1998 IEEE Computational Intelligence in Robotics and Automation Conference at NIST in Gaithersburg, MD. The goal of these meetings was to start formulating the issues, problems, and possible solutions for working together to build the sort of intelligent vehicles that would require the results of many different research activities.
Several issues emerged from these meetings that needed to be addressed: (1) researchers must have a consistent way of describing the problems they are addressing and their solutions; (2) researchers must be able to measure the effectiveness of various robotics components in different environments and situations; (3) researchers must be able to exchange components and should be able to easily integrate outside components on their hardware and in their environments; (4) researchers must have the support of funding agencies to do integration research and to distribute their results. These issues are listed in the order in which they must be addressed and we will expand on them in the next few paragraphs. Before we can even begin integrating components, we must be able to describe the components and how they fit together. In other words, we need a lexicon of robotics terms and formalisms for relating these terms to each other. If we are all talking different languages, we can’t integrate without spending an enormous amount of time translating. These formalisms do not necessarily have to be used within the individual research projects, but should be used consistently when work is presented to other researchers. One possible way to encourage a common formalism or lexicon is to outline a series of grand challenges and agree on the components of those challenges and what they are called. Then, when researchers talk they can relate their research to an appropriate part of the grand challenge. Once we are talking the same language, we must be able to measure progress. We need to know what
244
Kortenkamp and Schultz
components are most effective and in which environments. In this way, a researcher who needs, for example, an obstacle avoidance algorithm for a cluttered environment in which the robot is moving slowly, can choose an appropriate method. Simply having a variety of components to choose from is not helpful if there is no data about which choices are the best ones for the situation. Test suites similar to the UCI Machine Learning Database would be useful. They would allow researchers to test algorithms and hardware in known, comparable situations. We might, for example, have a standard set of images to test vision algorithms, or well-described layouts for navigation tasks. Simulations might be used to test differences between algorithms. Results reported against similar data sets allow for easier comparisons. In addition, we need to standardize the way we measure and report results in order to make more fair and therefore more useful comparisons. Once the components are described and evaluated, which can be done by individual researchers within their own research projects, they need to be shared. There are several levels of sharing. Simply publishing ideas in a common formalism with evaluation results is the first level—then researchers can re-implement the ideas in their own programming environment and on their own hardware. A step above that is to put actual code in a repository and allow researchers with the same programming environment (i.e., OS and programming language) and same hardware (i.e., same kind of robot) to use the code. A final step is to create programming environments and hardware abstractions that allow high-level components to run on any robot. This last step may require common architectural and abstraction decisions across projects. Certainly, the need to document our components and their interfaces is a minimum requirement. Finally, to make this all work, the funding agencies need to support two things. First, they must support the extra effort required by researchers to put their component into the appropriate formalism and that allows the researchers to properly evaluate their systems with respect to others. Second, they need to support the idea that integration in itself is a significant research area that requires additional funding. These steps all build on each other and we cannot just skip to the end. Integrating robotics research is a long
process that will require the commitment of the entire community. Without this commitment we are doomed to producing small systems that don’t achieve the intelligent behavior that we all want. In this special issue we bring together papers that focus on integrating robotics research. In particular, they focus on integrating, distributing, and/or testing robotic components. In the first paper, Messina et al. offer an integration paradigm that comes from the software engineering community and that describes how to specify software components such that they can be distributed to the community. The paper by Hardy and Ahmad describes an architecture that uses virtual sensors to de-couple software components from specific hardware, making it easy to share those software components with researchers using different hardware. The paper by Hougen et al. addresses the issue of proper evaluation of robotic systems. This paper describes how simulations and real robots can be used to evaluate a learning system in a repeatable fashion. Finally, a paper by Schultz et al. gives a practical case study in how different navigation and localization algorithms, developed for different robots, were integrated into a single robot system by using a common representation.
David Kortenkamp received his B.S. in computer science from the University of Minnesota in 1988. He received his M.S. and Ph.D. in computer science and engineering from the University of Michigan in 1990 and 1993 respectively. After receiving his doctorate, he became a consultant for NASA Johnson Space Center. In 1994, he co-founded TRACLabs in partnership with Metrica Incorporated. TRACLabs conducts research into artificial intelligence and robotics for various government agencies. Dr. Kortenkamp’s research interests include software architectures for intelligent agents, integrating perception and artificial intelligence, and mobile robot mapping and navigation.
Integrating Robotics Research
Alan C. Schultz is a computer scientist in the Adaptive Systems Group at the Navy Center for Applied Research in Artificial Intelligence, part of the Naval Research Laboratory in Washington, DC, where he leads several research projects. His research is in the areas of evolutionary robotics, machine learning and evolutionary computation. Mr. Schultz earned his Master’s of Science degree in computer science at George Mason University in 1988, and a B.A. in Communications from American University in 1979. Mr. Schultz is a member of IEEE, IEEE Computer Society, AAAI, and ACM.
245