The following challenges are for new people who want to join the IGVC software team. These are old challenges that have been completed by Members of RAS. Basically if you can solve one of these problems, you'll show that you're dedicated and knowledgeable enough to join our team. You are encouraged to form teams, get to know people, and help other people out.

Impressive! (Simulation)

Difficulty: 8 Fun: 8 Learning: 8 Utility: 3

Our robot uses an IMU (Intertal Measurment Unit) to measure the orientation of our robot about three axis. To test our driver we have a program that will read the current orientation of the IMU and print it as a number. It would be much more visually appealing to show how the IMU is positioned by drawing it in 3-D. It is basically a box shape and there are several tutorials out there to draw cubes in OpenGL.

What you will need: - this is covered in more detail in SoftwareSetup

  • Python 2.4
  • PyOpenGL
  • NumPy?
  • PySerial?
  • Access to the IMU
  • Simulator code from SVN repository (\trunk\sim\revision2)
  • Modify the code in real_imu.py (but don't commit it to SVN until you're sure it works!)

What you'll learn: After you complete this you'll be able to start developing 3-D visualizations for our robots / helicopters and get a deeper understanding of how the visualization code works for the IGVC team.

Out of Control! (Control Systems)

Difficulty: 4 Fun: 9 Learning: 5 Utility: 4

Our robot is out of control! You must help our robot work by designing a good control system! We have a robot simulation that currently changes the direction of the robot using a heading control system. However it would be nice to get it working by using the wasd keys to drive it around manually.

What you will need:

  • Python 2.4
  • PyOpenGL
  • Simulator code from the SVN repository (\trunk\sim\revision2)
  • Modify the code in frontend.py and backend.py (but don't commit it to SVN until you're sure it works!)

What you will learn: After completing this you'll get a good idea of how to write a control system for our robot. You should be able to start writing code to avoid obstacles, reach waypoints, etc.

Where are We? (Drivers)

Difficulty: 9 Fun: 4 Learning: 9 Utility: 8

Our team recently received a new GPS that is much more accurate than the GPS we had last year. We'd like to get it working as one of our sensors. This code, if written well, will be incorporated on our robot.

What you will need: - this is covered in more detail in SoftwareSetup

  • Python 2.4
  • PyOpenGL
  • PySerial?
  • Simulator code from the SVN repository (\trunk\sim\revision2)
  • Modify the code in frontend_devicelayer.py, real_devicelayer.py, and real_gps.py (but don't commit it to SVN until you're sure it works!)

What you will learn: After completing this you'll know how to add a new sensor to our robot, understand our software infrastructure VERY well, and understand how to communicate with devices over the serial port. If you can accomplish this task you'll be a good candidate for a software lead for any of our robotics competitions in 2008.