Lambda in Motion: Controlling Robots with Haskell
- 363 Downloads
We present our experiences using a purely functional language, Haskell, in what has been traditionally the realm of low-level languages: robot control. Frob (Functional Robotics) is a domain-specific language embedded in Haskell for robot control. Frob is based on Functional Reactive Programming (FRP), as initially developed for Fran, a language of reactive animations. Frob presents the interaction between a robot and its stimuli, both onboard sensors and messages from other agents, in a purely functional manner. This serves as a basis for composable high level abstractions supporting complex control regimens in a concise and reusable manner.
KeywordsRobot Control Functional Programming Event Stream Error Handler Continuous Behavior
Unable to display preview. Download preview PDF.
- [ry94]K. Arya. A functional animation starter-kit. Journal of Functional Programming, 4(1):1–18, 1994.Google Scholar
- [Bar91]Joel F. Bartlett. Don’t fidget with widgets, draw! Technical Report 6, DEC Western Digital Laboratory, May 1991.Google Scholar
- [EH97]Conal Elliott and Paul Hudak. Functional reactive animation. In International Conference on Functional Programming, pages 163–173, June 1997.Google Scholar
- [Ell96]Conal Elliott. A brief introduction to Active VRML. Technical Report MSR-TR-96-05, Microsoft Research, 1996.Google Scholar
- [Ell98a]Conal Elliott. Composing reactive animations. Dr. Dobb’s Journal, July 1998. Extended version with animations at http://research.microsoft.com/conal/fran/tutorial.htm, tutorialArticle.zip.
- [Ell98b]Conal Elliott. Fran user’s manual. http://research.microsoft.com/-conal/Fran/UsersMan.htm, July 1998.
- [ESYAE94]Conal Elliott, Greg Schechter, Ricky Yeung, and Salim Abi-Ezzi. TBAG: A high level framework for interactive, animated 3D graphics applications. In Proceedings of SIGGRAPH’ 94, pages 421–434. ACM SIGGRAPH, July 1994.Google Scholar
- [FJ95]Sigbjorn Finne and Simon Peyton Jones. Pictures: A simple structured graphics model. In Proceedings of Glasgow Functional Programming Workshop, July 1995.Google Scholar
- [Hen82]P. Henderson. Functional geometry. In Proceedings of the 1982 ACM Symposium on Lisp and Functional Programmming, pages 179–187. ACM, 1982.Google Scholar
- [JGF86]Simon Peyton Jones, Andrew Gordon, and Sigbjorn Finne. Concurrent Haskell. In Proceedings of ACM Symposium on Principles of Programming Languages. ACM SIGPLAN, January 1986.Google Scholar
- [LZ87]Peter Lucas and Stephen N. Zilles. Graphics in an applicative context. Technical report, IBM Almaden Research Center, July 1987.Google Scholar
- [PH97]John Peterson and Kevin Hammond. Haskell 1.4: A non-strict, purely functional language. Technical Report YALEU/DCS/RR-1106, Department of Computer Science, Yale University, May 1997.Google Scholar
- [Rep91]John H. Reppy. CML: A higher-order concurrent language. In Conference on Programming Language Design and Implementation, pages 293–305. SIGPLAN, June 1991.Google Scholar
- [ZLL+88]S.N. Zilles, P. Lucas, T.M. Linden, J.B. Lotspiech, and A.R. Harbury. The Escher document imaging model. In Proceedings of the ACM Conference on Document Processing Systems, pages 159–168, December 1988.Google Scholar