Carnegie Mellon University Website Home Page

Programming Claytronics with Meld

Meld is a programming language designed for robustly programming massive ensembles. Meld was designed to give the programmer an ensemble-centric viewpoint, where they write a program for an ensemble rather than the modules that make it up. A program is then compiled into individual programs for the nodes that make up the ensemble. In this way the programmer need not worry about the details of programming a distributed system and can focus on the logic of their program.

Because Meld is a declarative programming language (specifically, a logic programming language), the programs written in Meld are concise. Both the localization algorithm and the metamodule planning algorithms (papers linked below) are implemented in Meld in only a few pages of code. Because the implementations are so concise, we've found it practical to prove them correct. We have proved correctness of the metamodule planning algorithm as written in Meld. We found this proof to be easier to carry out than a proof on psuedo code.

Furthermore, these implementations are inherently fault-tolerant. They can recover from modules that experience FAIL-STOP errors as the Meld runtime automatically recovers from these errors without any need for the programmer to think about them. Between the ability to perform proofs directly on Meld code and the inherent fault-tolerance provided by the runtime, Meld programs are robust. They have been demonstrated on ensembles containing millions of modules, as shown in the video on the right.

Publications and Documents

A Language for Large Ensembles of Independently Executing Nodes,
    Michael P. Ashley-Rollman, Peter Lee, Seth Copen Goldstein, Padmanabhan Pillai, and Jason D. Campbell. In Proceedings of the International Conference on Logic Programming (ICLP '09), July, 2009.
Generalizing Metamodules to Simplify Planning in Modular Robotic Systems,
    Daniel Dewey, Siddhartha S. Srinivasa, Michael P. Ashley-Rollman, Michael De Rosa, Padmanabhan Pillai, Todd C. Mowry, Jason D. Campbell, and Seth Copen Goldstein. In Proceedings of IEEE/RSJ 2008 International Conference on Intelligent Robots and Systems IROS '08, September, 2008.
Distributed Localization of Modular Robot Ensembles,
    Stanislav Funiak, Padmanabhan Pillai, Michael P. Ashley-Rollman, Jason D. Campbell, and Seth Copen Goldstein. In Proceedings of Robotics: Science and Systems, June, 2008.
Declarative Programming for Modular Robots,
    Michael P. Ashley-Rollman, Michael De Rosa, Siddhartha S. Srinivasa, Padmanabhan Pillai, Seth Copen Goldstein, and Jason D. Campbell. In Workshop on Self-Reconfigurable Robots/Systems and Applications at IROS '07, October, 2007.
Meld: A Declarative Approach to Programming Ensembles,
    Michael P. Ashley-Rollman, Seth Copen Goldstein, Peter Lee, Todd C. Mowry, and Padmanabhan Pillai. In Proceedings of the IEEE International Conference on Intelligent Robots and Systems (IROS '07), October, 2007.