Cricketbot

Crickets

The main motivation for this project was the crickets. We were interested in learning how to implement an indoor GPS system, learning how accurate the system actually is and learning how that accuracy could be improved. The initial push was done by the graduate students Dan Herring [link] and Carlos Montesinos. They had already put a huge effort forth to make an indoor GPS system, via crickets, realizable. Working off of the hardware developed at MIT [link], Dan and Carlos developed an implementation for an indoor positioning system.

Dan theorized, implemented and documented the math behind the system. His work can be found in two documents [link] [link]. Dan also wrote the C code in the DSP that implemented the linear algebra necessary to realize his algorithm. From there Carlos, Jeff and others set up the hardware in the lab and on the robot.

After trying out the cricket system in the Mechatronics lab of the Transportation Building, the accuracy of the crickets was tested. This was done by creating a Visual Basic interface in order to plot the coordinates returned by the cricket system. After placing the robot around the room in various locations, it was decided that the accuracy of the cricket system was less than desirable. However, the cricket system was fairly accurate in certain sections of the 12'x12' arena. The highest levels of accuracy were in the center of the 10'x10' grid, with nothing else in the arena. It was theorized that the walls and other obstructions created innaccuracies in the distances of the traveled ultrasonic waves. This was likely due to the waves bouncing off of walls and other objects before reaching the robot with the listener cricket.

In order to increase the accuracy of the cricket system, some sort of filtering was desired. Dan and Jeff learned about Kalman filtering in order to create a filter for each individual "beacon" cricket. Unfortunately, due to time constraints and other obligations, the filter was never realized past its simulation stages. The simulation was a matlab script orginally written by Dan and modified by Jeff under the guidance of Dan [link]. The purpose of the simulation was to test the practicality of filtering the distance readings from each "beacon" cricket. If the crickets are to be used for an accurate positioning system, further work must be done on them.