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.

Comments powered by Disqus