Intelligent Ground Vehicle Competition Team
I've participated in IGVC in both competition years 2009 and 2010. In both years, I worked on Team HARLIE, from the Case Western Reserve University's Mobile Robotics Lab.
For IGVC 2009, HARLIE built upon software that had been developed throughout the Spring 2009 semester for the Mobile Robotics Course taught by Prof. Wyatt Newman. This involved using Labview on a National Instruments CompactRIO to read sensors (such as a SICK Lidar, a Novatel GPS unit, quadrature encoders and gyro) as well as perform real-time control and sensor fusion for state estimation. On top of the cRIO, we used a pair of Mac Mini PCs to handle vision and planning tasks. While functional, this system was a bit too ad-hoc for reliable use, though we didn't discover this until experiencing frequent (and, at the time, impossible to track down) crashes of the cRIO after arriving at IGVC. Because of these problems making HARLIE unable to qualify, most of Team HARLIE started working on Team ALEN (the other IGVC 2009 CWRU entry); this left HARLIE to be little more than a very fancy battery charger. Even without a working robot, myself and Ben Ballard, another member of Team HARLIE, focused on and were able to complete the 2009 JAUS Challenge, which focused on having a working JAUS-compliant interface between a robot's existing software and a JAUS compliant base station. By completing the JAUS challenge, Team HARLIE won $500 and tied for 13th place overall.
Determined to have a better showing at IGVC 2010, myself and three other members of the 2009 Team HARLIE spent both Fall of 2009 and Spring of 2010 attempting to solve the problems we had encountered with HARLIE at IGVC 2009. In order to do this, we made numerous changes to the design of the system. For example, we
- Redesigned the physical platform to group hardware components logically according to function as well as making the entire platform more modular so as to more quickly troubleshoot and solve any future failures.
- Rewrote the Labview FPGA code in a more modular fashion to allow individual submodules to be tested and validated. Having a defined interface between FPGA software modules also allowed us to make improvements to individual modules without worrying about affecting other submodules.
- Switched to using C on VxWorks instead of Labview for the real-time control, sensor fusion and networking tasks handled by the cRIO's PowerPC CPU. This allowed us to do quicker development, leverage existing knowledge and C libraries as being able to more easily track down errors.
- Started leveraging the Robot Operating System for tasks that had previously been handled by our Mac Minis. This allowed us to bring in many open-source libraries and drivers (such as camera1394 or the sicktoolbox) in order to speed up development. ROS also gave us access to a large number of visualization tools out of the box, as well as encouraging a distributed design that ended up being much more robust to failures. Much of this code is open source and available in the CWRU ROS Package.
Thanks to these improvements (and others), Team HARLIE had more success at IGVC 2010. For starters, HARLIE successfully qualified to compete in both the Navigation Challenege and Autonomous Challenge. Our hardware design that was focused on reliability and modularity was put to the test at IGVC 2010, as HARLIE both fell forwards onto it's front a few times but was still fully functional after each fall. HARLIE also suffered a catastrophic failure of a brand new motor controller; thanks to our design, we were able to troubleshoot and replace the motor controller within an hour. Sadly, we had to replace it with a lower rated motor controller that was barely able to power HARLIE on the uneven terrain of the IGVC courses. Even with these and others setbacks, HARLIE completed three out of nine waypoints in the navigation challenge to take 14th place in the Navigation Challenge, with another CWRU team that shared the same FPGA and cRIO code developed for HARLIE taking 10th place overall.