Modular Programming Techniques for Distributed Computing Tasks
Abstract
This paper describes design patterns used in developing a software platform for mobile robot teams engaged in distributed sensing and exploration tasks. The goal of the system presented is to minimize redundancy throughout the development and execution pipelines by exploring the application of a strong type system to both the collaborative development process and runtime behaviors of mobile sensor platforms. The solution we have implemented addresses both sides of this equation simultaneously by providing a system for self-describing inputs and outputs that facilitates code reuse among human developers and autonomous agents. This well-defined modularity allows us to treat executable code libraries as atomic elements that can be automatically shared across the network. In this fashion, we improve the performance of our development team by addressing software framework usability and the performance and capabilities of sensor networks engaged in distributed data processing. This framework adds robust design templates and greater communication flexibility onto a component system similar to TinyOS and NesC while avoiding the development effort and overhead required to field a full-fledged web services or Jini-based infrastructure. The software platform described herein has been used to field collaborative teams of UGVs and UAVs in exploration and monitoring scenarios.
Document Details
- Document Type
- Technical Report
- Publication Date
- Aug 01, 2004
- Accession Number
- ADA515704
Entities
People
- Anthony Cowley
- Camillo J. Taylor
- Hwa-chow Hsu
Organizations
- Moore School of Electrical Engineering