When the rubber hits the road, the cars often switch back and forth between reactive and memory-based algorithms, and sometimes rely on programming that incorporates elements of both approaches.
Harmon, for instance, is working on “model predictive control, which is really cool because it creates a model of the car. I have to figure out how fast can the car go before it drifts, what’s the lateral acceleration limit before the car slips — just a lot of experiments that I have to run to get a good model of the car,” he said.
“But once I have that model, the model predictive control algorithm will essentially predict all future possible trajectories, and it will choose the best one that doesn’t collide with anything and follows the race line.”
While Harmon fine-tunes his algorithm by running simulations of situations it might encounter on the racetrack, his teammates Blake Buskirk, from Honolulu, Hawaii, and Stephen Heflin, from Clarksburg, emphasized that simulations rarely replicate all the ways the real, three-dimensional world affects a car’s performance.
Heflin, for instance, worked on an algorithm called Path Follow, based on “disparity lines” — distances the car can’t see past, which Path Follow attempts to extend geometrically. When he moved testing from a simulated digital environment to the physical hardware of the car, Heflin said the vehicle immediately began oversteering.
Buskirk explained that’s because simulations don’t precisely model the advanced physics of the real world — the torque on the car’s wheels when they’re rotating, the effect of drag on steering, the resistance on the actual car.
“Without those physical effects, I can run my algorithm in the simulation and watch my car go straight and then take the curve,” Buskirk said. “But if I were to do it on the real track at a real speed of, say, eight meters per second, and it turned like it did in the simulation, the tires would come up because of the forces moving them, and the car would flip.”
Harmon laughed and sympathized with his teammates.
“There have been times where I’ll be looking at an algorithm in the simulator, and we’ll be going nine, 10 meters per second, and it’s great,” he said. “Then I run it on the car, and as soon as I go — it just crashes straight into the wall.”