Functional Robotics

Izzet Pembeci

This talk is about a domain-specific language for robot programming embedded in the functional language Haskell. Our language, Functional Robotics (Frob), is built upon the hybrid systems framework Functional Reactive Programming (FRP). I will first present the key ideas and abstractions of FRP and then show how it can be instantiated for robot programming. A robot program has a reactive part which defines the robot behavior and a planning part for composing complex tasks from simpler ones. Both dimensions are addressed in Frob by the help of a rich set of combinators and abstractions. Because of the declarative style of Haskell modular, resuable, and intuitive programs can be developed enabling rapid prototyping. I will present a visual tracking based robot navigation system developed in Frob which shows different domains like vision and user interfaces can be integrated into our language by using the same framework. Finally, I will talk about the relationship between FRP programs and formal hybrid system specifications and show how an FRP program can be transformed into a corresponding hybrid systems specification. Such a tranformation makes the formal analysis methods developed for hybrid systems available for Frob and other FRP-based programs.