Virtual Robotic Cars ==================== Tennessee Leuwenburg (sp?) Why? ---- Loves robotics as an intellectual playspace Submitted the talk partly as a motivation/excuse to spend more time playing Real World ---------- Brief history of auto racing Many current "self-driving car" efforts DARPA Grand Challenge video Urban Grand Challenge video ($40k radar array!) Traxxas X01 (video) - 100 MPH remote control car - controlled via iPhone Range of technology - drive-by-wire(less) - remote drive-by-wire(less) - supervised autonomous (ABS, - fully autonomous Few real world races - DARPA Grand Challenge - DARPA Urban Challenge - Audi Pikes Peak Virtual World ------------- TORCS - The Open Racing Car Simulator TORCS video Something anyone can do Similar abstractions to a real robotic car - distance and other sensors - speed, steering, braking controls - noisy sensors - complex environments - open-ended design and problem definitions Can go as far as you want in learning Yearly TORCS competition - current entries Java & C++ Now has Python bindings, so can write car control systems in Python pyScrcClient - uses a socket to talk to the TORCS server Udacity course - programming a robotic car in 7 weeks The TORCS Vehicles ------------------ Sensors - 20 range-finders - current angle to track bearing Controls - accelerator - brake - gear changes Trigonometry to get from distance sensors to an actual picture of the world Getting Started --------------- Just follow the track center line! Beyond that - steering and path planning - acceleration and braking - collision avoidance (for racing) - strategy (beyond the scope of the talk) No compass sensor, so first step is to build a motion model for the car itself TORCS updates every 0.02 seconds Places an upper limit on your processing time Evil maths! ----------- More trig to work out the expected centre point of a turn. Simplify the model of the car to a bicycle rather than worrying about the four wheels How to model: - assume you know the car positionss - see what happens - draw something so you can see what your car is "seeing" Yakkety Sax goes with everything! (Oops, wrong version of the slides, opened right version to get correct embedded video) Localisation ------------ Given a map, use it work out where you are Feedback loop between deriving the map from sensors, and using the results of your sensors to determine where you are Local vs Global planning ------------------------ Global: mapping + localisation Local: collision avoidance, ABS, etc SLAM and Filtering ------------------ Can use "mapping runs" to build up hypothesis maps Can use track distances to filter particles after a complete lap (known location) Great free resources online Virtual Robotic Car Racing lets you explore and exploit most of the related algorithms Resources --------- See slides for links (I'll add a link to the slides once they're up) Q & A ----- (missed the first couple) Polulu - remote control chassis with reversible wheels and an Arduino built in to embody your questions Can download and run bots from the competition to see how good (or bad) you are. No GPS in the sim software, so you can't "pre-plan" too much (and competition uses novel tracks) No accelerometer info in TORCS (which seems odd, since this is the first sensor you would add to a real version) Strategy depth is immense! (e.g. blocking lines to prevent following cars using them) My Thoughts ----------- Sounds like an interesting way to explore various AI topics.