Abstract
In this paper, I describe a simple functional programming language, GRL, in which most of the characteristic features of the popular behavior-based robot architectures can be concisely written as reusable software abstractions. This makes it easier to write clear, modular code, to “mix and match” arbitration mechanisms, and to experiment with variations on existing mechanisms. I describe the compilation process for the language, our experiences with it, and issues of efficiency, expressiveness, and code size relative to other languages.
Similar content being viewed by others
References
Arkin, A. 1998. Behavior-Based Robotics, MIT Press: Cambridge, MA.
Brooks, R. 1986. A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation, RA-2(1): 14–23.
Brooks, R. 1990. The behavior language. A.I. Memo No. 1227, MIT AI Laboratory.
Brooks, R. and Rosenberg, C. 1995. L—A common LISP for embedded systems. LISP Users and Vendors Conference, sec 2.4a.
Fikes, R, Hart, P., and Nilsson, N. 1972. Learning and executing generalized robot plans. Artificial Intelligence, 3(4): 251–288.
Horswill, I. 1998. Grounding Mundane inference in perception. Autonomous Robots, 5: 63–77.
Kaelbling, L. 1987. Rex: A symbolic language for the design and parallel implementation of embedded systems. In Proceedings of the AIAA Conference on Computers in Aeorospace VI, Wakefield, MA, pp. 255–260.
Kaelbling, L. and Rosenschein, S. 1991. Action and planning in embedded agents. In Designing Autonomous Agents, P. Maes (Ed.), MIT Press: Cambridge, MA, pp. 35–48.
Konolige, K. 1997. COLBERT: A language for reactive control in sapphire. In Proceedings of the German Conference on Artificial Intelligence, Freiberg.
Konolige, K., Meyers, K., Saffiotti, A., and Ruspini, E. 1997. The Saphira architecture: A design for autonomy. Journal of Experimental and Theoretical Artificial Intelligence, 9: 215–235.
Levesque, H., Reiter, R., Lespérance, Y., Lin, F., and Scherl, R. 1997. GOLOG: A logic programming language for dynamic domains. Journal of Logic Programming, 31: 59–84.
MacKenzie, D. and Arkin, R. 1997. Evaluating the usability of robot programming toolsets. Technical Report, Georgia Institute of Technology, Atlanta, GA, October 1997.
Maes, P. 1989. The dynamics of action selection. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, Detroit, MI, pp. 991–997.
Maes, P. 1990. Situated agents can have goals. Robotics and Autonomous Systems, 6: 49–70.
Nilsson, N. 1994. Teleo-reactive programs for agent control. Journal of Artificial Intelligence Research, 1: 139–158.
Peterson, J., Hager, G., and Hudak, P. 1999. A language for declarative robot programming. In Proceedings of the 1999 International Conference on Robotics and Automation, Detroit, MI, May 1999, IEEE Press.
Rees, J. and Donald, B. 1992. Program mobile robots in scheme. In Proceedings of the IEEE International Conference on Robotics and Automation, Nice, France (May 1992), pp. 2681–2688.
Schaad, R. 1998. Representation and execution of situated action sequences. Dissertation Der Wirtschaftswissenschaftlichen, Universität Zürich.
Simmons, R. and Apfelbaum, D. 1998. A task description language for robot control. In Proceedings of the Conference on Intelligent Robots and Systems, IEEE Press, October 1998.
Thrun, S. 1998. A framework for programming embedded systems: Initial design and results. Technical Report CMU-CS–98–142, Carnegie Mellon University, Pittsburgh, PA.
Velásquez, J. 1998. When robots weep: Emotional memories and decision-making. In Proceedings of the Fifteenth National Conference on Artificial Intelligence, Madison, WI, pp. 70–75.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Horswill, I.D. Functional Programming of Behavior-Based Systems. Autonomous Robots 9, 83–93 (2000). https://doi.org/10.1023/A:1008932520090
Issue Date:
DOI: https://doi.org/10.1023/A:1008932520090