I believe we could have had robot-driven cars years ago. We need:
- A video camera
- A computer
- Software
It should be obvious that we are missing only the software. What we need is 100s of people working together. There actually are enough computer vision people out there today, but they are not working together! They need codebases they can collaborate in, and big, worthy tasks.
My exciting insight is that instead of immediately hooking up computers to cars, and then spending months writing device drivers, I’ve come to the realization that we should start by hooking a vision engine up to a driving video game. We can cheaply and safely simulate all sorts of sensor inputs, fog, urban scenarios, etc. And anyone around the world can jump in and help out.
Torcs re-engineering w/ Mono
Right now the focus of JC Hoelt and I is taking the best free driving game, Torcs / Torcs-NG[1], improving the codebase to simplify and modernize it, and port it to Mono. Then it will be suitable for new people to improve the simulator and do vision and driving AI experiments. Unbeknownst to even its maintainers, Torcs hampered by its age and C/C++ code. It uses the ancient and primitive PLIB, and so we are making it use .Net wrappers around the modern graphics library Ogre. Its physics sometimes behaves funky, so we are making it use ODE & ODE.Net. In many ways big and small, Torcs is doing things the hard way: it has even written its own XML parser, which we can just throw away. It is no coincidence that the track format for Torcs has not changed in 10 years when the current codebase is such a complicated mess! For the current team, even little tasks like porting to the Mac is a major piece of work.
When we are done, we will have a 10x smaller and cleaner codebase that will serve as a great baseline to add features a lot faster.
We’re looking for people who want to help us out on any coding aspect. There are all kinds of easy and hard programming problems. If you’ve got a few hours a week of time, contact me! It is cool and interesting.
[1] Torcs-NG is a fork of Torcs that is making small changes (automake -> CMake, new artwork, Mac port, etc.) We can keep up with the changes made in both teams.
For my inside view of the project:
http://jekos-zen.blogspot.com/2009/06/open-source-will-win-race-for.html