cljRobust - Clojure Programming API for Lego Mindstorms NXT

  • Konrad Kułakowski
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6071)


This paper presents the cljRobust - middleware library, which allows an intelligent control application to be written for Lego Mindstorms NXT. cljRobust is based on Clojure, which is a modern, concurrent dialect of the Lisp language. It shortens the distance between deliberative, symbolic processing and hardware. In this way, cljRobust facilitates the writing of control algorithms which operate close to the hardware layer, and thus are able to quickly respond to changes in the environment. Since Lego robots have been adopted by many leading academic centers all over the world as a standard tool for teaching robotics, the author hopes the cljRobust library may also be found as an interesting teaching aid in AI robotics.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lego Mindstorms User Guide. The Lego Group (2006)Google Scholar
  2. 2.
    Albus, J.S.: RCS: A Reference Model Architecture for Intelligent Control. IEEE Computer 25(5), 56–59 (1992)Google Scholar
  3. 3.
    Arkin, R.C.: Intelligent Control of Robot Mobility, ch. 16. Wiley, Chichester (2007)Google Scholar
  4. 4.
    Arkin, R.C., Balch, T.: Cooperative multiagent robotic systems (September 1998)Google Scholar
  5. 5.
    Atmatzidou, S., et al.: The use of LEGO Mindstorms in elementary and secondary education: game as a way of triggering learning. In: Workshop proceedings of International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR) (2008)Google Scholar
  6. 6.
    Bagnall, B.: Maximum LEGO NXT: Building Robots with Java Brains. Variant Press (2009)Google Scholar
  7. 7.
    Brooks, R.A.: A robust layered control system for a mobile robot. IEEE J. Robot. and Auto. 2(3), 14–23 (1986)Google Scholar
  8. 8.
    Brooks, R.A.: Intelligence without Representation. Artificial Intelligence 47, 139–159 (1991)CrossRefGoogle Scholar
  9. 9.
    Clojure language home page,
  10. 10.
    Counterclockwise, Eclipse plugin helping developers write Clojure code,
  11. 11.
    Crawford, R.: Programming Lego Robots using NBC (2007),
  12. 12.
    Enclojure, an environment for the Clojure programming language,
  13. 13.
    Friedman-Hill, E.: Jess in action: rule-based systems in Java. Manning Publications (January 2003)Google Scholar
  14. 14.
    Georgeff, M.P., Lansky, A.L.: Reactive Reasoning and Planning. In: Proceedings of the 6th National Conference on Artificial Intelligence (1987)Google Scholar
  15. 15.
    Giralt, G., Sobek, R., Chatila, R.: A multi-level planning and navigation system for a mobile robot; A first approach to HILARE. In: International Joint Conference on Artificial Intelligence, pp. 335–337 (1979)Google Scholar
  16. 16.
    Halloway, S.: Programming Clojure. In: Pragmatic Programmers (May 2009)Google Scholar
  17. 17.
    Hewitt, C.: PLANNER: A language for proving theorems in robots. In: The International Joint Conferences on Artificial Intelligence, Inc. (January 1969)Google Scholar
  18. 18.
    Hexor project home page,
  19. 19.
    Klassner, F.: A Case Study of LEGO Mindstorms - Suitability for Artificial Intelligence and Robotics Courses at the College Level. In: Proceedings of the 33rd SIGCSE technical symposium on Computer science education (2002)Google Scholar
  20. 20.
    Konolige, K., Myers, K., Ruspini, E., Saffiotti, A.: The Saphira Architecture: A Design for Autonomy, July 14 (1997)Google Scholar
  21. 21.
    Kułakowski, K.: Robust - Towards the Design of an Effective Control Library for Lego Mindstorms NXT. In: Proceedings of Conference on Software Engineering Techniques CEE-SET 2009 (September 2009)Google Scholar
  22. 22.
    Kułakowski, K.: Towards Java-based Intelligent Control Architecture. In: Proceedings of International Joint Conference Intelligent Information Systems (June 2009)Google Scholar
  23. 23.
    Matsui, T.: EusLisp for Object-Oriented Robot Programming. Computer Software - Japan Society For Software Science and Technology Journal (January 2006)Google Scholar
  24. 24.
    Microsoft Robotics Studio,
  25. 25.
    Murphy, R.R.: Introduction to AI Robotics. MIT Press, Cambridge (2000)Google Scholar
  26. 26.
    Nilsson, N.: Shakey the Robot. Tech. Note 323, AI Center, SRI International (1984)Google Scholar
  27. 27.
    Parson, S., Sklar, E.: Teaching AI using LEGO Mindstorms. American Association for Artificial Intelligence (2004)Google Scholar
  28. 28.
    Presston, S.: The Definitive Guide to Building Java Robots. APress (2005)Google Scholar
  29. 29.
    Rajan, K., Bernard, D., Dorais, G., Gamble, E.: Remote Agent: An autonomous control system for the new millennium. In: ECAI 2000: 14th European Conference on Artificial Intelligence (January 2000)Google Scholar
  30. 30.
    Ueda, R., Ogura, T., Okada, K., Inabab, M.: Design and implementation of humanoid programming system powered by deformable objects simulation. In: Proceedings of the 10th International Conference on Intelligent Autonomous Systems (IAS-10) (January 2008)Google Scholar
  31. 31.
    Webots simulation environment,
  32. 32.
    Yuasa, T.: XS: Lisp on Lego MindStorms. In: Proceedings of International Lisp Conference (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Konrad Kułakowski
    • 1
  1. 1.Institute of AutomaticsAGH University of Science and TechnologyCracowPoland

Personalised recommendations