340 likes | 507 Views
Car Racing Competition. Goal. Learn or design a controller for TORCS that races as fast as possible alone or in the presence of others drivers “Spiritual successor” of CEC 2007 Competition. Car Racing Competition meets TORCS. More representative of real game AI
E N D
Goal • Learn or design a controller for TORCS that races as fast as possible alone or in the presence of others drivers • “Spiritual successor” of CEC 2007 Competition
Car Racing Competition meets TORCS • More representative of real game AI • Better interaction with human players • Many good programmed controllers available • Challenges • How to make it easy accessible? • Not designed for Machine Learning! • More similar to a real-world problem
The Open Racing Car Simulator • TORCS is a state of the art open source simulator written in C++ • Main features • Sophisticated dynamics • Provided with several cars, tracks, and controllers • Active community of users and developers • Easy to develop your own controller • OS Support • Linux: binaries and building from sources suppo • Windows: binaries and “limited” bulding from sources support • OSX: legacy binaries and no building from sources support
Competition API • To make TORCS more easy to use we developed an API based on socket (UDP) • Values of sensors and effectors are sent through UDP • 3 components • Torcs Patch • Server Bot (C++) • Client API (C++ and Java) TORCS Patch Server BOT UDP Client Controlller
Track Sensors Opponent Sensors Sensors • Rangefinders to sense • Opponents • Edges of the track • Speed • Position on track • Rotation speed of wheels • RPM • Angle with track • Distance raced • Fuel and damage • ...
Effectors • Basically 4 effectors • Steering wheel [-1,+1] • Gas pedal [0, +1] • Brake pedal [0,+1] • Gearbox {-1,0,1,2,3,4,5,6}
Rule • Hand coding controller were allowed • Unknown Track • Distance raced by each controller within 10000 tics(200 sec)
Submissions • 5 entries have been submitted to the competition: • Matt Simmerson • Leonard Kinnaird-Heether – Wayne State University • Chin Hiong Tan – National University of Singapore • Diego Perez - University Carlos III, Madrid • Simon Lucas – University of Essex • 3 more controllers have been considered • Daniele’s heuristic C++ controller • Julian’s heuristic Java controller • Luigi Cardamone - Politecnicodi Milano
Scoring setup • A server with 2 Quad-core Xeon 2.66 GHz, 8GB RAM, running Fedora Core 6
Scoring process • Scoring is a two stage process involving three tracks (unknown to the competitors): • RUUDSKOGEN • STREET1 • D-SPEEDWAY • In the first stage only a controller at once is tested and performance is defined as the distance covered within 10000 game tics • In the second stage all the controllers (except the three not in the competition) race at the same time and performance is defined simply as the arrival order after 3 laps
First Stage: overall results • F1 point system is used to compute the final scores of the controllers on the 3 tracks
Second Stage: Competition League • Also in this stage, F1 point system is used to compute the final score
Summary of results • 3 learned controllers are significantly better than programmed controllers • Some possible overfitting to training tracks? • Poor performance in avoiding and overtaking opponents • Some problems with recovery behavior • Still more work to reach the performance of controllers provided with TORCS but initial results are promising!
TORCS • Official Site • http://torcs.sourceforge.net/ • Source Code Download • http://torcs.sourceforge.net/index.php?name=Sections&op=viewarticle&artid=3 • Robot Tutorial • http://www.berniw.org/