Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/ptmaynard/public_html/textpattern/lib/txplib_db.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /home/ptmaynard/public_html/textpattern/lib/txplib_db.php:14) in /home/ptmaynard/public_html/textpattern/lib/txplib_misc.php on line 1240

Warning: Cannot modify header information - headers already sent by (output started at /home/ptmaynard/public_html/textpattern/lib/txplib_db.php:14) in /home/ptmaynard/public_html/textpattern/publish.php on line 439
Philip Maynard: Motion and Intelligence
Go to content Go to navigation Go to search

Motion and Intelligence · Nov 6, 12:07 PM by Philip Maynard

With all systems go, it was time to combine them into something useful. We set out to navigate the board and run over dominoes. With some simple code to smoothly accelerate the robot, stop after a specified distance, and turn accurately, we tried a dead reckoning approach.

Obviously, it failed. There are too many variables to use such a navigation system successfully, since errors compound. But it was very useful because we discovered what kind of feedback and correction was needed. The current encoder-based dead recking systems is fairly accurate, just not robust to environment variables. On the rough, undulating game board it wanders from it’s specified path quickly, and will need to “square up” with the walls after just one or two moves. Another possibility is using the IR rangers to position it more accurately during motion. The problem with that approach is that there may not always be a wall nearby to follow.

Another discovery was how big the robot is. Our IR rangers have a “dead zone” where they give false data. For our long-range sensors this is anywhere within about 8” of the sensor. We thus mounted our sensors facing across the robot’s body so that it is physically impossible to get a false reading, eliminating a troublesome error case. The problem is that they had to stick out a bit on either side, making the robot rather wide. This means position is now even more critical, since hitting a wall is a rather bad situation. We may try to help the situation by placing small casters on the edges of the IR mounts to prevent edges from catching.

We have also developed an algorithm to determine our location. Once motion is reliable, we can very quickly and efficiently navigate the board with no guesswork. We feel this algorithm is far superior to the other designs being used, and so I will not publish it for competitive reasons. It approaches an optimal solution, and has been proven to work reliably with minimal robustness requirements imposed on the hardware. The rigorous proof of it’s correctness is absolutely key, and is the main difference between our algorithm and the guesswork employed by the other teams.

Commenting is closed for this article.