Home » Uncategorized » Torcs-based driving simulator in Python

Torcs-based driving simulator in Python

I have decided to restart OpenRacing: (Note, we may rename it to PyTorcs or pySpeed-Dreams[1]) Note, I’ve decided to call it PyTorcs for now. See you in Github.

PyTorcs is based on the Torcs codebase, which is widely considered the best FOSS racing game and which already has autonomous cars. However, the codebase contains a lot of cruft.

So, it has been methodically re-written into C# Python, ported to leverage the graphics engine Ogre, the physics engine ODE, OIS, standard widget APIs, OpenAL, and extended with a more general track model.

Then, there will be a clean and 6x smaller codebase, with the heritage of Torcs, for simulating autonomous vehicles which can handle the complexities of urban scenarios, and can eventually navigate via the use of a vision recognition engine and simulated sensors like radar and GPS.

There is nothing to announce yet but a plan. Here it is so far:

Python Port

  1. Do mechanical port of C# code (http://codeconverter.sharpdevelop.net/SnippetConverter.aspx)
  2. Port the Swig wrapping tools to generate Python
  3. Debug

Steps after which can go independently:

  • Extra data attached to map model
  • Define map APIs for the robots to use. ([[1]], [[2]],[[3]]) In the short term, it seems will need three spatial indices inside the map, physics, and graphics engines.
  • Get basic autocar driving (waypoints, lanes)
  • Grab more features from [Simplix]
  • Networking
  • Windows & Mac port (remaining code is very portable)
  • Make map more pleasant to look at.
  • Simulate Lidar (Can we put the source of light behind the camera?)
  • Faster than realtime simulation runs (turn off graphics, optimize physics)
  • Better weather
  • Port over a new and prettier car model from Speed-Dreams and discuss the current set of difficulties in using their data with Ogre
  • Find / modify a big urban map with highway exit
  • OpenStreetMap augmented-reality visual annotations
  • OpenStreetMap auto-generate mesh to drive through
  • Smart objects like street lights
  • Assisted-driving features (prevent crashes)
  • Port over automatic transmission, wheels, etc. from Torcs / Speed-Dreams
  • Plug into vision engine
  • Define, record, and replay simulations
  • Joystick, better keyboard
  • Port simuv3 to Python (low priority, isolated task)
  • Etc.

If you are interested in working in a Python driving simulator, please contact me or put in some information below. There are plenty of big and little tasks. A handful of people, let alone 10, could accomplish a lot, chipping away in any of those areas. I’ll make another post here when the Github repository is ready, C# is gone (Github here) Python is running.

[1] Just kidding about the last one. I am looking for a good readable simple name, but I never got to choose names of the codebases I worked on so I’m not practiced at it.


Leave a comment

Your email address will not be published. Required fields are marked *