Search run is always the first run since the micromouse needs to map the maze with correct information. Also, search run takes the most of the time among all runs. Basically the more time you saved on search run, the more time you will be able to use on speed run. However, we can’t infinitely increase the speed of search speed since it may beyond your mouse’s capability can cause crash, consequently waste more time to start over. What I want to talk here is some useful strategies to reduce the search time without being to risky.
Let’s start with the most basic search method by using pivot turn instead of smooth turn.
Apparently, pivot turn is the most common and easiest turning method for micromouse to do search and speed run. Since the pivot needs to stop first, the whole process significantly increased the running time for micromouse. Is the mouse can’t do smooth turn, the way to reduce the overall time for run is to increase the speed when running on a straight path.
Here is a demo for my mouse running at 0.5m/s speed for straight path when searching.
The whole process for searching before the mouse back to starting corner took about 40 seconds in a 6X6 test maze.
Here is another demo when my was running at 1m/s straight speed with same search strategy.
For this time, the overall search time was only 28 seconds, which made a 30 percent time improvement. Even though 1m/s is twice faster than 0.5m/s, consider the pivot turns wasted most of the time, 30% time reduction sounds reasonable for us. Since we always need to make a balance between stability and performance, we can’t make the straight path part infinitely fast. However, make the straight part as fast as you can within the capability of mouse will help you save a lot of time during the search.
The mouse actually didn’t stop at the perfect spot each time it stopped since the sensor threshold was designed for curve turn search, but that was good enough for me to make a successful run.
Smooth turn is definitely the preferred choice for mouse to run at search or even speed run due to it’s improved speed than pivot turn if the mouse is capable to do it. In order to simplify the process, we always make the mouse run at the same average speed for both straight and turn(smooth curve turn in this case). For instance, if we run the mouse at 0.5m/s when going straight, then the average speed for turn will also have to be 0.5m/s. Notice that the
average_speed = (left_wheel_speed + right_wheel_speed) / 2.
so average speed is also the center speed of the mouse.
Here is a demo for my mouse running at 0.5m/s average speed with curve turn(smooth turn):
The whole process took about 28 seconds, which was exactly same time that the mouse spent at a 1m/s average speed search run with pivot turn, even though the straight speed is only half of the speed that with pivot turn. 0.5m/s usually is a pretty save and stable speed for a curve turn, and you have less risk at straight path at the same time in order to achieve same overall search time.
Same with pivot turn, if you can make mouse run faster with curve turn, the overall search time will be reduced. Here is another demo when my mouse was running at 0.7m/s average speed with curve turn during search.
The entire process for 0.7m/s curve turn search took about 22 seconds, which is 21% faster than 0.5m/s curve turn search.
Still, within the mouse’s capability, the faster the better to save the time. You will need to test out what will be the max capability for your mouse and only run it at fastest possible but never the max speed.
Speed up on the known cells
It is always happening that the mouse is running at the cell that searched before. The wall information has been explored and store from the previous time, and repeated wall detection might not be necessary in this case. There comes a tricky option for the mouse to not to care about the explored wall information anymore and just pass through this cell rapidly. So as of what the mouse will behave, you can see the mouse will just speed up and move on the this repeated explored cell with a significantly faster speed and then head to another cell.
here is a demo for my mouse running at 0.5m/s speed with curve turn and turn speed up to 1.5m/s when on a explored straight path longer than 1 cell.
The whole process took about 25 seconds, slightly faster than the 0.5m/s curve turn run without any speed change. However, you will see the time difference get greatly boost up once the mouse is running at a full 16 x 16 maze since there will be more repeated cells.
As always, a 0.7m/s curve turn run with up to 2m/s speed when on a explored straight path longer than 1 cell was performed as a demo:
This time it only took 18 seconds for the mouse to finish the whole run. Compare to the 22 second run without acceleration, it performed a 18% improvement this time at 0.7m/s average search speed.
Let’s see some stats here:
|0.5m/s pivot turn||
|0.5m/s curve turn(no acceleration)||
|0.5m/s curve turn(with acceleration)||
|1m/s pivot turn||
|0.7m/s curve turn(no acceleration)||
|0.7m/s curve turn(with acceleration)||
Clearly the one on the last row has the best time, since it made the fastest speed with curve turn and accelerated on a searched long path to save time. I will leave you here to analyze the cost and balance to make a proper faster search run for your own mouse because you definitely know your mouse better than me. 🙂
For “How to fasten the search Part 2”, I will talk about another new strategy to make the search even faster.