The Dynamics of Bouncing Robots

I am extending this work, by reformulating it in terms of a 1D dynamical map ("map" as in logistic map). We can analyze the ergodicity and coverage of the map in different classes of polygons. To make a bouncing robot explore a space, you want a bouncing law that covers the polygon well. To make a bouncing robot localize, you want the robot to become "trapped" in a small region of phase space (the "attractor"). I have taken an "experimental mathematics" approach to this work, building a simulator and using it to explore and verify the dynamical systems analysis. See our paper, Periodic Trajectories of Mobile Robots, at IROS 2017!

Improv: a High-Level Language for Live-Coding Robot Motion

Started as a project in Amy LaViers' class, I am developing a platform-independent domain-specific language (DSL) using Haskell. This language takes inspiration from Laban-Bartenieff Movement System, a framework for describing and analyzing human movement. The goal is to specify movements in a high-level, readable language which is then translated to ROS messages and sent to a simulator to see the effects of the commands in real time. The goal is to enable live coding of robots, for performances, outreach, and applications in robotics which can leverage high-level control of robot motion.

Under development; code and documentation can be found here.

Automated Robot Design

I am very interested in using tools from formal methods, such as model checking and synthesis, to help roboticists explore the space of robot designs. This can help us in several ways:

This exciting new research area leverages advances from formal methods and from the fabrication (printable / foldable / modular robots) and design communities.

To this end, I am a contributor to the robot design game, an informal (and fun!) way of exploring the trade-offs between robotic resources and capabilities. I am also helping organize the Workshop on Minimality and Trade-offs in Automated Robot Design at RSS 2017.


I have a hodge-podge of projects under the umbrella of self-assembly. I am leading an undergraduate project to build cases that allow weaselballs to connect into assemblies; I am interested in graph grammars and rewriting based approaches to modelling assembly; and I am working on a simple model of fetal morphogenesis (how does a developing embryo change from a sphere to a torus?).

Past Projects

See old projects which I'm no longer actively working on here.