RobotBox is a community for robot builders to show off their projects. Add yours today.
Data Bus: 2012 Sparkfun AVC 3rd Place Winner
The Sparkfun Autonomous Vehicle Contest (Sparkfun AVC) pits robots against each other in a timed race, circumnavigating the outside of the Sparkfun building in Boulder. The event features two classes: airplanes and ground vehicles.
I'd been itching to compete since we saw the contest in April of 2010 and I took the plunge and entered in 2011. By April I'd failed to pull together the sensor fusion software and the robot excelled only at crashing.
Finally in 2012, days before the event, everything came together and the robot was doing speed runs around the building time and again with incredible consistency.
The competition was another matter: the first and second heats the robot veered off and crashed due to jostling the starting ramp imparted on the gyro.
Finally dialing in a solution offered by a friend, Data Bus was back to its Thursday performance, ripping around the building in 37 seconds, earning a 3rd place victory.
The chassis is a budget-friendly, ECX Circuit equipped with a Tacon 3000Kv brushless motor and 4000mAH Gens Ace Lipo battery. Top speed is around 30mph. Suspension is tuned for the parking lot event with heavier shock oil, lower ride height, and stiffer springs. Custom Traxxas Anaconda street tires on 2.8" black chrome All Star wheels provide sufficent grip.
The robot's brain is an NXP mbed, a 32-bit, 96MHz ARM Cortex M3 on a DIP-40 board with 64K SRAM, many features and a lot of power.
Heading is provided by an L3G4200D gyro on a Pololu MinIMU-9. A Venus638FLPX GPS provides additional heading data while dual wheel encoders with QRE1113 sensors and a custom SMT adapter board provide distance and speed measurements.
The heading data is fused with a simple 1st order, two state Kalman Filter. The software compensates for GPS data lag, fusing historical gyro data then updating current heading and position information.The navigation system converts Google Earth waypoints to cartesian coordinates and manages waypoint heading error and waypoint switching.
The control system uses a PI controller for throttle and a simplified path following algorithm to correct heading errors. The sensor update, estimation, and control run on a 100Hz schedule, with estimation and sensor readings occuring every 10ms and control, GPS readings, and other activities occurring less often.
The software is open source:
mbed code
Data Bus Code Repository
Ranger Board Software
Analysis Software
Ground Control Software (such as it is...)
The robot features several custom circuit boards I created from design to final assembly including both through hole and SMD components. All circuit designs, board layouts, software, and engineering documentation are available in accordance with the Open Source Hardware definition.
Eagle board and circuit files, etc.
Data is logged to a FAT-formatted microSD card. A configuration file is read at startup from the mbed's built in filesystem. Data is plotted with GPSVisualizer.com and a Perl script the processes data and launches gnuplot automatically, generating an HTML webpage with the featured plots.
Recent comments
- Electronics has gone from
26 weeks 5 days ago - Hi,
Nice design, very
27 weeks 2 days ago - That's a difficult
28 weeks 2 days ago - I like your ideas of robot
28 weeks 2 days ago - That's pretty much how
28 weeks 2 days ago - Personally I feel a word's
28 weeks 2 days ago - I used very very small pager
29 weeks 4 days ago - I used very very small pager
29 weeks 4 days ago - This was one of the very few
30 weeks 3 days ago - Another great nano! Saw this
30 weeks 3 days ago
Recent blog posts
- Karosserie Zahlen definieren, die richtigen Kleider für Sie
- Bionic Parts And Assembly Lines
- Volle Verpackung Ihrer Kleider machen die erstaunliche Erscheinung
- A New Frontier
- Robot Vacuum Cleaners
- Crazy About Lego?
- NXT 2.0 Mindstorms Is The Best Robot for Beginner - Must Have!
- Joining Robot Clubs
- US-020 ultrasonic sensor distance measuring module
- A few explanation about the Arduino






Comments
this is very in formative
this is very in formative post i like it very much. Seo Dubai
Updated for the 2012 AVC
Updated for the 2012 AVC
Been very busy on the robot.
Been very busy on the robot. I've updated the page to reflect the robot's current state. I've switched over to mbed, with all the custom boards built and populated. GPS module(s) installed and tested, gyro, compass have been added. Just added wheel encoders this evening. The hard part is still left: the code to estimate vehicle state (position, velocity, heading, etc) and the code to proportionally correct heading (steer) and accelerate/brake/decelerate as needed for cornering, etc., not to mention the very hardest part: obstacle avoidance!
Scratch the phone idea. I'll
Scratch the phone idea. I'll be using individual sensor boards: 1-axis gyro, accelerometer board, GPS, interfaced to a microcontroller.
For now, Arduino but I'll soon be migrating to an mbed which features an ARM Cortex M3 with lots of peripherals, memory, and speed for the money.
I've mounted the prototype electronics onto the RC chassis along with an eTrex Legend GPS (for testing purposes).
I'm now logging gyro and gps data to an microSD card which is really easy to interface to an Arduino; it uses SPI and there are FAT filesystem libraries readily available.
Did some late nite data gathering after getting all of this together...
Now it's a matter of wrapping my thick head around Kalman filtering (or some other algorithm) so I can fuse sensor data and get this truck to navigate itself somewhere.