Autonomous Vehicle

From SolidStateDepot
Jump to: navigation, search


Brandon Skari entered the 2016 competition. The chassis was the same as last year. Several changes to the code were introduced, including allowing multiple sources of positional data provided by smart phones through a web page and JavaScript, and dropping of positional data that are outside of the course boundaries and couldn't possibly be right. The latter change was an attempt to prevent the primary problem from the year before. Multiple smart phones reported position in addition to the primary module.

The competition this year was held at SparkFun headquarters. The course was much thinner than in years past due to another event taking up a lot of space. The first heat ended with the car running into a haybail and getting stuck. The second heat started out well. 3 of the phones and the primary GPS module reported positions outside of the course boundaries, but a 4th phone reported position in the bounds, and the car used those readings. This worked until the car approached the first turn and another reported position came in bounds, but past the turn. The car then averaged the two readings and ran into a wall. The third heat ended with the car turning around and driving behind the finish line.

From observation, when a GPS module reports invalid data, it's usually just off of true by a consistent distance, e.g. 3 meters northeast. So while I was ignoring position data that were outside of the course, I did incorporate their speed and headings. One of the modules started reporting obviously incorrect data, such as sustained speeds approaching 40 miles per hour. This caused problems in one of my heats, and I added some code to drop these readings for later heats.


Brandon Skari entered the 2015 competition. The chassis was based on a Tamiya Grasshopper RC car. The car was driven by a Raspberry Pi model A+ driving PWM. Telemetry is provided through a GPS/compass/accelerometer module. Basic obstacle avoidance was planned using a Raspberry Pi camera module, but I ran out of time. The control program uses an extended Kalman filter to estimate the vehicle's position.

The competition this year was held at SparkFun headquarters. The first heat ended with the car running into a wall, and then because of a last minute, untested change, failed to detect the collision and back out of it. The second heat ended when the car drove on top of another car and got high centered. The third heat ended when the car drove onto a sandbag used to hold up the fences and got high centered again. The car did okay during several practice runs, but the GPS started reporting inaccurate information, jumping hundreds of meters away outside of the course boundaries. The car then drove into the wall as it attempted to correct, thinking it was much farther away than it really was.


Brandon Skari entered in the 2014 competition. The chassis was a Radio Shack Dune Warrior RC car, operating at 49 MHz. The car was driven by a Raspberry Pi model B that generated a radio signal that controlled the vehicle. We used an oscillopscope to observe the radio signal from the transmitter and decode it. Telemetry and a "physical" start and stop button were provided by an Android phone running a custom app. The system was carefully designed to fit in the $350 budget to be able to compete in the PBR division.

The car used telemetry (including GPS, compass, and accelemerometer readings) directly from the phone. The phone only updated GPS at 1 Hz and the control software didn't try to do any position interpolation, so the car had to drive pretty slowly. The car would drive to a set of waypoints and go to the next one once it was within 1m. No collision avoidance was included; rather, collision detection using the accelerometer and GPS speeds was implemented, with backing up recovery.

The car didn't perform well at the competition. The compass went haywire at the competition and caused the car to behave erratically, including turning left and driving straight into the haybails at the beginning, or driving straight from the line, turning 180 degrees, and repeating this indefinitely. A lot of other competitors reported compass problems and seeing local interference from the ground. The car did make it around the course autonomously once during a practice run, but not during the actual heats.


We have been talking a lot about making an entry in SparkFun's Autonomous Vehicle Competition. This year's [SparkFun AVC] will be held on June 16th, 2012.

What does everyone want to work on? Some questions to consider:

  • What kind of chassis?
  • Motor? Electric? Gas?
  • What sensor package do we want?
  • Sonar distance?
  • GPS?
  • IR distance?
  • Accelerometer?
  • Depending on sensors and chassis we will have to decide what electronics control package is best.

Keep in mind that we could view our entry strategy in different ways. Being awarded as "the fastest" comes with a monetary prize, which would be a great opportunity for our space, but we could also choose to make our statement a different way. In 2011, in addition to the fastest, there were awards for:

  • Crowd Pleaser (Most Entertaining)
  • Engineers Choice (Best Technical Design)
  • Kill Switch Award (Most Dangerous)
  • Water Hazard Award (Finds the Pond and/or Stream)
  • Rookie Award (Best First-Time Competitor)
  • Best Dressed (Most Interesting Costume/Vehicle)

If you are interested in this project we would love to get it moving ahead, please contact us through our Google Group and/or attend one of our meetings.

Members involved (add yourself if you're not here):

  • Dan Davis-Boxleitner
  • Liz Baumann
  • Christian Macy
  • Ross Hendrickson