|
|
ROCI: A distributed framework for multi-robot perception and control
2003-06-24
ForewordThis whitepaper presents ROCI, a .NET-based software framework that is intended for distributed embedded applications such as coordinated teams of robots. ROCI is being developed as part of the MARS project at the University of Pennsylvania's GRASP...
laboratory. ("GRASP" stands for General Robotics, Automation, Sensing and Perception; "MARS" stands for Multiple Autonomous RobotS.) The goal of the MARS project is to develop a framework and support tools for deploying multiple autonomous robots in an unstructured and unknown environment. Potential applications for the technologies being developed by the MARS project include reconnaissance, surveillance, target acquisition, and the removal of explosive ordnance. The MARS project has been funded by grants from the Air Force Office of Scientific Research (AFOSR), the National Science Foundation (NSF), and the Defense Advanced Research Projects Agency (DARPA). What is ROCI? Basically, ROCI is a project to create a distributed framework for multi-robot perception and control. For the past year, the project has been focusing on small robotic systems that are intended to work individually and cooperatively to solve various sensing and surveillance problems. The current state-of-the-art in control software allows for supervised autonomy, a paradigm in which a human user can command and control one robot using teleoperation and close supervisory control. The objective of ROCI is to develop the software framework and tools for a new generation of autonomous robots. The main components are the methodology and the software that will enable robots to:
In ROCI, each robot is considered a node which contains several modules and may export different types of services and capabilities to other nodes. Each node runs a kernel that mediates the interactions of the robots in a team. This kernel keeps an updated database of all nodes and the functionalities that they export. Multi-robot applications can be built and changed dynamically, connecting modules that may be running in different nodes over the network. As an example, we present an obstacle avoidance task implemented using our framework and also discuss the use of ROCI in a multi-robot scenario.ROCI is developed in C# using the Microsoft .NET platform. Modules are not limited to this language however, and several ROCI modules have been written in mixtures of C# and C++. The system makes use of XML to provide basic configuration options, and object reflection to enforce type safety and autodiscovery. To date, ROCI has been running on top of Windows XP and Windows 2000 operating systems, but the plan is to target smaller "embedded" OSes such as Windows CE .NET and Windows XP Embedded in the near future -- possibly even Linux via Mono. (135KB PDF download) The above text is based on excerpts from the whitepaper, content of the MARS website, and information provided by a member of the MARS team. The photos, supplied text, and whitepaper are copyright (c) 2003 University of Pennsylvania. All rights reserved. Reproduced by WindowsForDevices.com with permission.
|