Hacker News new | past | comments | ask | show | jobs | submit login
Micromouse (wikipedia.org)
131 points by caiobegotti on Dec 25, 2017 | hide | past | favorite | 35 comments



What I'm struck by are the parallels to problems currently being "solved" with machine learning. Engineers can build tiny robots who can navigate a maze dozens of times faster than a real mouse with far fewer errors and a perfect memory!

Now, take that fact and start raising money off the claim that you can soon replace all mice and potentially rats too with robots in the next five years. These rodents will have no disease, require no food, produce no poop, and only need to be rested on their inductive charging pads overnight! We know we're close because we've solved the maze problem!

That's ridiculous of course, and maybe pet mice aren't really a good stand-in for potentially useful technology. But the distance between these robot maze-solvers and a real mouse is about where we are with modern machine learning and AI. Yes, in a very narrow, extremely well-specified problem area, we have programs that can predict the next word you're going to type or transcribe speech or recognize a face. It works way faster and is 200x less error prone than a human! But of course, what errors do happen are catastrophically worse than any human would make, and if the parameters of the problem space vary in the least then everything goes out the window. And turns out the model can be trivially manipulated by malicious actors to churn out false positives or amplify propaganda or promote scams.

But we're almost there, I promise.


See if you can spot the sub 4s route: https://youtu.be/IngelKjmecg


Nice, I imagine a BB-8-like robot could be faster.


I came across some youtube videos of Micromouse competitions completly by chance a few weeks ago.

I wa struck by how impressive the engineering was to make the little things go and corner so quickly. At the same time I noticed there was still what I would consider low-hanging-fruit. Specifically one of the mazes had a dead-end of depth one that most of the mice tried going down after passing it in favour of a longer dead-end path. It strikes me that you could sense simple cases like this as you go past them.

If I were to have a go (I have been somewhat tempted since discovering this was a thing) I would try a sonar ping to compare against a dictionary of known simple configurations. It's something that would be in the realms of possibility for modern microcontrollers. Then if you pass an intersection, you can ping them all and eliminate any known dead ends.

I did see one that raised a camera to scan the map, but it took a long time processing the data.


I think the ultrasonic transponders would be a considerable additional mass/current draw, which would hurt acceleration ability, so it still is a tradeoff... But hey, would love to be proven wrong =)


The goal of competition is to run in shortest time. If the goal was to find shortest path in shortest time, this is good idea.


And if a sub-100ms ping told you “dead end, don’t try” how does that not get you to the finish line faster?


The mice traverse the maze, find the optimized path, then return to the start to do the fast run from start to finish. It's not the speed of the first run, but the overall fastest.


Does the exploration run not count at all, then? Are they only scored on the speed of the optimized run?


Only the fastest time is counted.


I didn't know these were still going. I remember they used to be reported in Practical Computing magazine in the later 1970s/early 1980s here in the UK.


Yes, still going. The top competitors are wicked fast. When micromouse started, you could get an 8-bit microcontroller with a 1 MHz clock and just squeezing all the hardware into the footprint was a challenge, and having enough ram to represent the maze. Now you can easily make a small, fast, 32-bit ARM Cortex mouse that is small enough to take diagonal zig-zag portions of the maze in a straight line.

The maze is painful to set up, though. Our local robot club got together and a bunch of us each bought a kit that allows building a 5x5 maze, which is good for training. We can construct an "official-ish" 16x16 for competitions. I've been involved in set-up/tear-down a couple of times, and it is royally annoying and time consuming.

A quicker maze that is much more portable, and in terms of software, a conceptually identical software challenge (until you reach the level of diagonal short cuts) is to use electrical tape on linoleum floor tile to build a wall-less line-following maze. In the US, cheap lino floor tile comes in 12 inch squares. Cheap black electrical tape is 3/4 inch wide. We make a line-following maze out of that. It is quick to set up and tear down, and provides a good challenge for getting started in robotics. Linoleum tile is surprisingly heavy to cart around, but it is not unwieldy. It is totally practical to take a few minutes before a club meeting to deal out a random maze, which no way can be said for an official micromouse maze.

[edit] found a link to our rules http://slideplayer.com/slide/9202003/


> it is royally annoying and time consuming.

16x16 would be.. 15x16x2 moveable boards, then whatever you've got around the outside. I was wondering if you could maybe automate that with simple motors or electromagnets or somesuch, but I guess that would be quite complicated and potentially expensive to pull off.


New challenge: A robot to assemble a given maze as fast as possible.


Well, actually, you could build a swarm of 8 or so robots that are wall segments, and just have them scurry around dynamically constructing the part of the maze that is around the maze-solving robot.


> until you reach the level of diagonal short cuts

Why can't you make diagonal shortcuts on the tape-bounded maze? Is it just more difficult to verify that the mouse hasn't illegally cut a corner over the top of the tape?


Yes, basically. Without walls, you really arent't solving the same obstacle avoidance and navigation problem. The line following maze is the same search problem, but not the same sensor-integration/locomotion problem.


Ah, line-following. I assumed you were just replacing the walls with tape 'walls' that the mice could roll across but were not permitted to do so, and using outrigger sensors to detect and react when the mouse 'bumped' into a wall.


> royally annoying and time consuming

That should be an additional competition... maze setup and teardown robots.

:)


perfect application for a 3d printer table style. the resolution doesnt have to be perfect


Why does it take so long to set up? It seems like a pegboard (that possibly breaks down into several parts) and a bunch of pegged wall segments would allow one person to set up a 16x16 board in a few minutes.


Well, depends on your definition of "a few minutes". Here is what we did:

There is a company (I forget who) that sells kits of walls and pegs that meet the official Micromouse specifications. Each kit builds a 5x5 maze, good for debugging. With 9 of those, you can build a full maze. The walls meet the precise dimensional specification, wall color (white) and reflectivity (must reflect IR), and have a red stripe on the top (Micromouse allows cameras with a limited field of view to look at wall tops.) The pegs fit in 7mm holes. We got 16 people to buy a total of 18 kits, on the assumption that we could usually round up 9 people when we needed to construct an official maze.

A member identified a material call MDO (medium density overlay, I believe) that is basically an MDF board with a smooth laminate top. It is used for highway signage and such, and can be obtained at the lumber yard by special order. The surface has a smooth finish and takes paint well. A member was put in charge of finding paint that matched the floor specification, flat-black, must absorb IR.

The Techshop was still in business then, so three of us that were members used the Shopbot (CNC router with 4 foot by 8 foot table) to cut panels of the precise dimension required to do a 1/2 of a 5x5 maze, and pocketed a grid of 7mm holes at the correct spacing. Without CNC, it would be impossible to hold the spacing precisely enough, I think. So with two panels and one kit, you can build a 5x5.

It takes 4 to 6 man hours to set up a full 16x16 maze. It requires a flat surface. One thing we are missing is a way to keep all of the edge transitions between panels precisely level. That is a big problem. Our maze simply doesn't cut it for "world class" competitions. Luckily, we usually don't have world-class speed-daemon robots show up, so we can have a referee wearing socks stand in the maze trying to keep the edges from screwing up peoples runs.

Overall an interesting exercise, but the line following maze is much more practical to move around and set up, and gets used far more.


16x16 tiles is 256 tiles. Doing 256 of anything is time-consuming, let alone referencing a map and trying to make sure you do it right.


Sure, but I feel like I could place 256 Lego bricks, say, in 15 minutes or less, and a structure like this could be made as easy to assemble as Legos.


A year or two ago I was in the IRC channel for the D programming language and someone was showing me they were working on something that makes me think it's a micromouse and it was all coded in D using @nogc everywhere effectively. I wish I had saved his youtube videos somewhere, it was quite interesting.


Yeah in some circles they are basically considered a rite of passage that every self-respecting engineer must go through.


I seem to remember they were televised at one point in the UK.


Great resource at https://sites.google.com/site/myprojectq/robotic/classic-mic...

Looks like the latest iteration will use a fan for suction power, adding to the traction capability.


Micromouse was one of the group projects for the mechatronics engineers at my university. I’m sure their solutions weren’t state of the art sophisticated but I enjoyed watching their trials (and failures) in between my own study.


As a mechatronics engineer, I too participated in micromouse. Where are you from ?


I studied at UQ, in Austraila. I didn't do mechatronics engineering but a number of my mates did and so I often spent time around them hearing their complaints of how their flawless code simply didn't work for some mystical reason.


I used to participate in these competitions a decade ago.

So so so so much more fun than fixing social media likes.


I would have expected some good emulation environments. Are there any?


I maintain a Micromouse simulator called "mms": https://www.github.com/mackorone/mms. Whether or not it's any good is somewhat subjective, but it has some nice features: text, colors, speed control, a language agnostic interface, etc. Feel free to check it out and let me know what you think!


Hacker News at its best... awesome!




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: