Dance: A Declarative Language for the Control of Humanoid Robots


Liwen Huang and Paul Hudak


Robots are becoming increasingly common in, and important to, many commercial, industrial, and military applications. This paper focuses on how to program humanoid robots, and in particular how to program their movements and interactions as easily and as effectively as possible. The core of this effort is the design of a domain-specific language called Dance that is highly abstract, easy to use, yet has enough expressive power to describe a wide range of useful robot movement.

Dance consists of a non-reactive base inspired by Labanotation, a graphical notation for human motion, and a reactive layer based on Yampa, our latest incarnation of functional reactive programming. The reactive layer is structured using arrows, a generalization of monads, and gives a robot the ability to react to its environment in critical ways. Dance is also independent of the robot platform being used. Our target is two humanoid robots being designed and constructed in the Yale Vision and Robotics Laboratory. We have also written a simulator in which a 3D-rendering of a humanoid robot is controlled by a Dance program.


  author =       {Liwen Huang and Paul Hudak},
  title =        {Dance: A Declarative Language for the Control of Humanoid Robots},
  institution =  {Yale University},
  year =         {2003},
  number =       {YALEU/DCS/RR-1253},
  month =        {August},