The following challenges are for new people who want to join the IGVC software team. 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.
Before beginning one of the challenges you might want to brush up on your programming skills or learn the Python or C++ languages if you don't know them already. Here are some ideas to warm-up:
- If you've had limited programming experience, start with the non-programmers tutorial for python or take a look at one of our intro C++ books from the RAS library.
- If you're a pretty good programmer and don't know Python already check out the Python Tutorial or Python Links to learn how to code in python.
- Once your ready to start coding, Take a look at LearnSvn and SoftwareSetup
- After you download the source code you will need a development environment to create code in. Check out the README.txt files in /trunk/sim and /trunk/vision of the SVN repository to learn how to set up your own development environment.
- Gook luck and have fun!
Line Recognition
Difficulty: 5 Fun: 9 Learning: 6 Utility: 1
Run the hough line code and improve line recognition for one and two lines. If you want to take it up a notch, try attempting line recognition code outside with different lighting conditions !
What you will need: this will be clarifed in SoftwareSetup
- Microsoft C++ compiler , Microsoft SDK , Vision code from the SVN repository (\trunk\vision) , OpenCV,
- Setup the Visual Studio Project and Compile (its not very easy... post problems you have on SoftwareSetup ! )
Whal you will learn: After completing this you'll know how to start writing real-time computer vision algorithms. Have a basic understanding of Hough Transforms,
2D Obstacle Avoidance with Vision and Sonars
Difficulty: 9 Fun: 4 Learning: 9 Utility: 8
We have basic obstacle avoidance in simulation with sonars working at a primative level. We need a way to integrate simulated camera data and sonar data to avoid obstacles simulataneously 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 sim_rascamera.py , sim_sonars.py, obstacles.py, backend.py, frontend_devicelayer.py, real_devicelayer.py, (there are a lot of files so we might of missed one)
What you will learn: After completing this you'll know how to use different sensors on our robot, understand our software infrastructure VERY well, and understand how to communicate with devices. This will also introduce you to a video game perspective of making AI agents that can function autonomously in a simulated scenario. If you can accomplish this task you'll be a good candidate for a software lead for any of our robotics competitions in 2008.
Linux and IDE conversion
Difficulty: 5 Fun: 2 Learning: 9 Utility: 8
We have most of our code running in Windows using Python/Idle and Visual Studio C++ , we need to be able to run in linux and have a more flexible IDE (i.e. Eclipse or others ....) 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 files in /trunk/src, refer to IBM Reference Document Migrating from Visual Studio to Eclipse
What you will learn: After completing this you'll know how to use C++ code in linux, get IDE projects setup files and understand our software infrastructure. If you can accomplish this task you'll be a good candidate for a software lead and have a great accomplishment on your resume.
- We are trying to update this page in more detail, challenges and the people who have completed the challenge wiill be move to OldSoftwareChallenges
