Skip to main content
Log in

Composable continuous-space programs for robotic swarms

  • Swarm Robotics
  • Published:
Neural Computing and Applications Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24

Similar content being viewed by others

Notes

  1. SwarmBots [29] are not to be confused with Swarm-bots [31], a similarly named robotic platform.

  2. http://www.ode.org.

  3. http://www.openwrt.org.

  4. See [8] for more on the subtleties of random values on an amorphous medium.

References

  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–2800

  2. Bachrach J (2004) Gooze: a stream processing language. In: Lightweight languages 2004, http://www.ll4.csail.mit.edu/

  3. Bachrach J, Beal J (2006) Programming a sensor network as an amorphous medium. In: Distributed computing in sensor systems (DCOSS) 2006 Poster

  4. Bachrach J, Beal J, Fujiwara T (2007) continuous-space–time semantics allow adaptive program execution. In: IEEE SASO 2007, IEEE Press, pp 315–319

  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–212

  6. Beal J (2004) Programming an amorphous computational medium. In: Unconventional programming paradigms international workshop, Springer, Berlin, vol 3566, pp 121–136

  7. Beal J, Bachrach J (2006) Infrastructure for engineered emergence in sensor/actuator networks. IEEE Intell Syst 21(2):10–19

    Article  Google Scholar 

  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 Proceedings

  9. Beal J, Bachrach J, Tobenkin M (2007) Constraint and restoring force. Technical Report MIT-CSAIL-TR-2007-044, MIT CSAIL

  10. Beal J, Bachrach J, Vickery D, Tobenkin M (2008) Fast self-healing gradients. In: ACM symposium on applied computing, ACM, pp 1969–1975

  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–27

  12. Butera W (2002) Programming a paintable computer. Ph.D. thesis, MIT

  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 Press

  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–11

    Article  MathSciNet  Google Scholar 

  15. Couzin I, Krause J, Franks N, Levin S (2005) Effective leadership and decision making in animal groups on the move. Nature 433:513–516

    Article  Google Scholar 

  16. Eames A (2005) Enabling path planning and threat avoidance with wireless sensor networks. Master’s thesis, MIT

  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, http://citeseer.ist.psu.edu/article/elliott97functional.html

  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 – 11

  19. Gummadi R, Gnawali O, Govindan R (2005) Macro-programming wireless sensor networks using kairos. In: DCOSS, Springer, Berlin, pp 126–140

  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–104

  21. Jones SP, Hughes J (2002) The revised report on the programming language haskell 98. http://www.haskell.org/onlinereport/

  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–3410

  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.5

  24. Kloetzer M, Belta C (2006) Hierarchical abstractions for robotic swarms. In: IEEE international conference on robotics and automation, IEEE Press, pp 952–957

  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–28

  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–173

  27. Margolus N (1993) CAM-8: A computer architecture based on cellular automata. In: Pattern formation and lattice-Gas Automata

  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–707

  29. McLurkin J (2004) Stupid robot tricks: a behavior-based distributed algorithm library for programming swarms of robots. Master’s thesis, MIT

  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 Institute

  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–28

    Article  Google Scholar 

  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–87

  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 CSAIL

  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–483

  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–654

  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 Press

  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)

Download references

Acknowledgments

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

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jacob Beal.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bachrach, J., Beal, J. & McLurkin, J. Composable continuous-space programs for robotic swarms. Neural Comput & Applic 19, 825–847 (2010). https://doi.org/10.1007/s00521-010-0382-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00521-010-0382-8

Keywords

Navigation