In between building humanoid robots, I got interested in Micromice, which are maze solving robots.
Building a successful micromouse is as much about the hardware as the software. On the right is my first micromouse. Unfortunately the chosen microcontroller - ATmega328 was not up to the task of handling so many interrupts generated from the encoders. Even after writing assembly subroutines to handle the interrupts the microcontroller had just too little computing power. I quickly decided to switch to a more advanced STM32 microcontroller running at 72MHz with hardware support for quadrature encoders. The microcontroller wasn't the only thing that improved in the new micromouse. The two-wheel design evolved into a four-wheel, which resulted in additional 2 contact points. I have added: a small screen for live data output, micro sd card data logger and UART to bluetooth converter.
This robot was an excellent research platform for algorithm testing. I have successfully implemented the non-linear model of the robot in Matlab/Simulink, linearized it by using the feedback-linearization method and made it solve and run mazes with times that approached the world record. An example of the simulation can be seen below.
The maze is built using a template in microsoft excel and then imported into Matlab, solved using the flood-fill algorithm and the resulting trajectory is then passed on to the controller. Unfortunately, this method involved too much floating-point arithmethics for it to be possible to implement. An alternative PD-controller setup for position and angle was used and performed relatively well.
I have published 2 papers based on this robot. One is in Polish, and one in English:
 Ficht G., Piotrowski R. (2012). Micromouse robot - technical design and construction. Forum of Innovation of Young researchers - FIMB, ISSN 2082 - 4831, 12-16
 Ficht G., Piotrowski R. (2014). Robot typu Micromouse - wykonanie, sterowanie i optymalizacja. Pomiary Automatyka Kontrola, Vol. 60, Nr 12, 1235-1240.
Here are two early-stage development videos:
That's it for now, thanks for reading.