Neural Computing and Applications

, Volume 19, Issue 6, pp 825–847 | Cite as

Composable continuous-space programs for robotic swarms

Swarm Robotics


Programmability is an increasingly important barrier to the deployment of multi-robot systems, as no prior approach allows routine composition and reuse of general aggregate behaviors. The Proto spatial computing language, however, already provides this sort of aggregate behavior programming for non-mobile systems using an abstraction of the network as a continuous-space-filling device. We extend this abstraction to mobile systems and show that Proto can be applied to multi-robot systems with an actuator that turns a vector field into device motion. Proto programs operate on fields of values over an abstract device called the amorphous medium and can be joined together using functional composition. These programs are then automatically transformed for execution by individual devices, producing an approximation of the specified continuous-space behavior. We are thus able to build up a library of simple swarm behaviors, and to compose them together into highly succinct programs that predictably produce the desired complex swarm behaviors, as demonstrated in simulation and on a group of 40 iRobot SwarmBots.


Spatial computing Amorphous medium Swarm robotics Amorphous computing Multi-robot 



This work was partially funded by the National Science Foundation via NSF grant CCF-0621897.


  1. 1.
    Ashley-Rollman MP, Goldstein SC, Lee P, Mowry TC, Pillai P (2007) Meld: a declarative approach to programming ensembles. In: IEEE international conference on intelligent robots and systems (IROS ’07), IEEE Press, pp 2794–2800Google Scholar
  2. 2.
    Bachrach J (2004) Gooze: a stream processing language. In: Lightweight languages 2004,
  3. 3.
    Bachrach J, Beal J (2006) Programming a sensor network as an amorphous medium. In: Distributed computing in sensor systems (DCOSS) 2006 PosterGoogle Scholar
  4. 4.
    Bachrach J, Beal J, Fujiwara T (2007) continuous-space–time semantics allow adaptive program execution. In: IEEE SASO 2007, IEEE Press, pp 315–319Google Scholar
  5. 5.
    Bachrach J, Beal J, Horowitz J, Qumsiyeh D (2008) Empirical characterization of discretization error in gradient-based algorithms. In: IEEE international conference on self-adaptive and self-organizing systems (SASO) 2008, IEEE Press, pp 203–212Google Scholar
  6. 6.
    Beal J (2004) Programming an amorphous computational medium. In: Unconventional programming paradigms international workshop, Springer, Berlin, vol 3566, pp 121–136Google Scholar
  7. 7.
    Beal J, Bachrach J (2006) Infrastructure for engineered emergence in sensor/actuator networks. IEEE Intell Syst 21(2):10–19CrossRefGoogle Scholar
  8. 8.
    Beal J, Bachrach J (2007) Programming manifolds. In: DeHon A, Giavitto JL, Gruau F (eds) Computing Media and Languages for Space-Oriented Computation, Internationales Begegnungs- und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Germany, Dagstuhl, Germany, no. 06361 in Dagstuhl Seminar ProceedingsGoogle Scholar
  9. 9.
    Beal J, Bachrach J, Tobenkin M (2007) Constraint and restoring force. Technical Report MIT-CSAIL-TR-2007-044, MIT CSAILGoogle Scholar
  10. 10.
    Beal J, Bachrach J, Vickery D, Tobenkin M (2008) Fast self-healing gradients. In: ACM symposium on applied computing, ACM, pp 1969–1975Google Scholar
  11. 11.
    Beal J, Bachrach J, Vickery D, Tobenkin M (2009) Fast self-stabilization for gradients. In: Distributed computing in sensor systems (DCOSS) 2009, Springer, Berlin, pp 15–27Google Scholar
  12. 12.
    Butera W (2002) Programming a paintable computer. Ph.D. thesis, MITGoogle Scholar
  13. 13.
    Correll N, Bachrach J, Vickery D, Rus D (2009) Ad-hoc wireless network coverage with networked robots that cannot localize. In: IEEE international conference on robotics and automation, Kobe, IEEE PressGoogle Scholar
  14. 14.
    Couzin I, Krause J, James R, Ruxton G, Franks N (2002) Collective memory and spatial sorting in animal groups. J Theor Biol 218:1–11CrossRefMathSciNetGoogle Scholar
  15. 15.
    Couzin I, Krause J, Franks N, Levin S (2005) Effective leadership and decision making in animal groups on the move. Nature 433:513–516CrossRefGoogle Scholar
  16. 16.
    Eames A (2005) Enabling path planning and threat avoidance with wireless sensor networks. Master’s thesis, MITGoogle Scholar
  17. 17.
    Elliott C, Hudak P (1997) Functional reactive animation. In: Proceedings of the ACM SIGPLAN international conference on functional programming (ICFP ’97), ACM, vol 32, no, 8, pp 263–273,
  18. 18.
    Gay D, Levis P, von Behren R, Welsh M, Brewer E, Culler D (2003) The nesc language: a holistic approach to networked embedded systems. In: Proceedings of programming language design and implementation (PLDI) 2003, ACM, pp 1 – 11Google Scholar
  19. 19.
    Gummadi R, Gnawali O, Govindan R (2005) Macro-programming wireless sensor networks using kairos. In: DCOSS, Springer, Berlin, pp 126–140Google Scholar
  20. 20.
    Hill J, Szewcyk R, Woo A, Culler D, Hollar S, Pister K (2000) System architecture directions for networked sensors. In: In architectural support for programming languages and operating systems (ASPLOS) 2000, pp 93–104Google Scholar
  21. 21.
    Jones SP, Hughes J (2002) The revised report on the programming language haskell 98.
  22. 22.
    Klavins E (2004) A language for modeling and programming cooperative control systems. In: Proceedings of the international conference on robotics and automation, IEEE Press, pp 3403–3410Google Scholar
  23. 23.
    Kleinrock L, Silvester J (1978) Optimum transmission radii for packet radio networks or why six is a magic number. In: National Telecommunications Conference, pp 4.3.1–4.3.5Google Scholar
  24. 24.
    Kloetzer M, Belta C (2006) Hierarchical abstractions for robotic swarms. In: IEEE international conference on robotics and automation, IEEE Press, pp 952–957Google Scholar
  25. 25.
    Levis P, Patel N, Culler D, Shenker S (2004) Trickle: a self-regulating algorithm for code propagation and maintenance in wireless sensor networks. In: Proceedings of the 1st conference on symposium on networked systems design and implementation, ACM, vol 1, pp 15–28Google Scholar
  26. 26.
    Madden S, Franklin M, Hellerstein J, Hong W (2005) Tinydb: an acquisitional query processing system for sensor networks. In: ACM Transactions on Database Systems (TODS), ACM, vol 30, pp 122–173Google Scholar
  27. 27.
    Margolus N (1993) CAM-8: A computer architecture based on cellular automata. In: Pattern formation and lattice-Gas AutomataGoogle Scholar
  28. 28.
    Mataric M, Marjanovic M (1993) Synthesizing complex behaviors by composing simple primitives. In: Proceedings, self organization and life, from simple rules to global complexity, European Conference on Artificial Life (ECAL-93), pp 698–707Google Scholar
  29. 29.
    McLurkin J (2004) Stupid robot tricks: a behavior-based distributed algorithm library for programming swarms of robots. Master’s thesis, MITGoogle Scholar
  30. 30.
    Minar N, Burkhart R, Langton C, Askenazi M (1996) The swarm simulation system, a toolkit for building multi-agent simulations. Technical Report Working Paper 96-06-042, Santa Fe InstituteGoogle Scholar
  31. 31.
    Mondada F, Gambardella LM, Floreano D, Nolfi S, Deneubourg JL, Dorigo M (2005) The cooperation of swarm-bots: physical interactions in collective robotics. IEEE Robotics Autom Mag 12(2):21–28CrossRefGoogle Scholar
  32. 32.
    Newton R, Welsh M (2004) Region streams: functional macroprogramming for sensor networks. In: First international workshop on Data Management for Sensor Networks (DMSN), ACM, pp 78–87Google Scholar
  33. 33.
    Newton R, Girod L, Craig M, Madden S, Morrisett G (2008) Wavescript: a case-study in applying a distributed stream-processing language. Technical Report MIT-CSAIL-TR-2008-005, MIT CSAILGoogle Scholar
  34. 34.
    Palmer J, GL Steele J (1992) Connection machine model cm-5 system overview. In: Fourth symposium on the frontiers of massively parallel computation, IEEE Press, pp 474–483Google Scholar
  35. 35.
    Raffle H, Parkes A, Ishii H (2004) Topobo: a constructive assembly system with kinetic memory. In: Proceedings of the SIGCHI conference on human factors in computing systems, ACM, pp 647–654Google Scholar
  36. 36.
    Rosa MD, Goldstein SC, Lee P, Campbell JD, Pillai P (2006) Scalable shape sculpting via hole motion: motion planning in lattice-constrained module robots. In: IEEE International Conference on Robotics and Automation (ICRA ’06), IEEE PressGoogle Scholar
  37. 37.
    Rosa MD, Goldstein SC, Lee P, Campbell JD, Pillai P (2008) Programming modular robots with locally distributed predicates. In: IEEE International Conference on Robotics and Automation (ICRA ’08)Google Scholar

Copyright information

© Springer-Verlag London Limited 2010

Authors and Affiliations

  1. 1.Other LabSan FranciscoUSA
  2. 2.BBN TechnologiesCambridgeUSA
  3. 3.Rice UniversityHoustonUSA

Personalised recommendations