Robot Programming Based On Locally Distributed Predicates

There are a significant number of challenges to programming robots of modular. These challenges can be broadly divide into two areas; managing the ensemble and controlling the modules of individual. Following is an approach to programming the ensemble based on LDP (locally distributed predicates). LDP lets a programmer specify how the entire ensemble should behave by breaking the problem down into how small groups of robots should interact. In this manner LDP reduces significantly the disparate problems of inter-robot timing and concurrency, the lack global knowledge and resource management at any individual robot.

Traditional imperative programming languages such as Java, C++, do little to address the ensemble issues level involved in programming modular robots. These languages are oriented inherently towards a single processing node, and require significant additional effort when used in a distributed setting. The programmer have to determine what information is available locally and what have to be obtained from remote nodes to creating a representation of the data needed for an algorithm, these protocol and messages used to transfer this data, mechanism to route or propagate information through multiple hops as needed, and a means to ensure consistency of the data. It is often necessary to express and test conditions that span multiple modules in algorithms to control ensembles. Languages that constrain the programmer to a single node perspective of make such algorithms difficult to implement.

Related work in programming of modular robot can be divided roughly into three categories: logical declarative languages for programming distributed systems, functional approaches with roots in sensor network research, and reactive programming techniques for robots.

In first category it has such tools as P2 and Meld which provide a logic programming facility for distributed systems. Reactive programming languages and subsumption architectures provide other expressive formats for programming single robots, but are not specialized for ensemble programming of multi level robot.