Check the latest robot that I am using for my PhD research. This robot is a known as the BrushBot because its primary component are two standard cleaning brushes, which when vibrated move the BrushBot around. On top of the brushes are the vibration motors and by adjusting the speed of these motors the BrushBot can be controlled to move in different ways. The problem is that the movement of the BrushBot is not only random but non-stationary.
I want to make sure to mention that the BrushBot was actually built by Jamison Go, an undergrad here at Georgia Tech.