Driverless Cars Will Compete -- But Only With Each Other -- In Formula E Races
Formula E racing pits single-seat electric cars against each other in high-speed track competition, but the cars -- aside from their powertrain -- are conventional enough, complete with a steering wheel and a human at the wheel. Now, though, the Formula E series will also incorporate self-driving cars. From the article: Ten teams, each with two cars, will square off against each other in hour-long races on the same circuits that the Formula E cars will hurtle around. The cars will be the same as the next in order to get the teams’ developers to focus on creating better algorithms and artificial intelligence to win. It takes inspiration from how the Formula E teams were required to run the same cars in the event’s debut season, which meant there was more focus on the development of battery technology.
The winning team will use Rust to program their car.
It is a systems programming language so it can be used for systems like artificial intelligence driving a car.
It is blazingly fast which is what you need when driving fast.
It prevents segfaults which is good because you don't want a segfault when you are driving!
It guarantees thread safety which means the fabric on the seats of the car will remain clean and intact.
It has zero-cost abstractions which will keep the price of the car down.
It has move semantics which is just what you want from a car: movement!
It has guaranteed memory safety which is good because you don't want your car to forget where it is.
It has threads without data races which is critical because it means that there can be no data racism because there are no races.
It has trait-based generics which are good because they mean that, generically speaking, the car has good traits.
It has pattern matching which is very important because the car needs to differentiate between what is road and what is not road.
It has type inference which is good to have because it can infer what is road and what is not road.
It has minimal runtime which is totally what you want in a race: you want to run it in the shortest time possible!
It has efficient C bindings which means it's as fast as C because most Rust code actually gets written in C and then glued together using Rust because C is a much more useful, efficient, and faster programming language than Rust is.
This is actually a lot more interesting than might first appear. When doing timed laps such as during qualifying, sure, it is pretty much about just optimising a whole bunch of parameters. I would imagine the superior ability of the driverless car to sense grip and slip on each wheel and create a dynamic map of grip around the track would mean it could quite easily beat a human driver without a lot of 'artificial intelligence'.
However, when wheel to wheel racing it is a whole different story. Unless you have artificial overtaking aids (DRS, boost modes) then overtaking a car that has the same performance as you is essentially a mind game. A common strategy is simply to hound the other driver using the draft to get right on their tail, fill their mirrors, and try to pressure them into making a mistake. This used to be quite common in F1 before we had fuel and tyre restrictions and DRS. It was a real test of a driver's mental strength to have to perform under that sort of direct pressure.
Another way is to play games with the other driver. For example, on a corner that allows loose racing lines, you can try to trick a car you want to overtake into defending on your weaker line, but then once you've lulled them into believing this is the way they always need to defend, you swap it up. Sometimes this may only get you in position to complete the overtake on a subsequent corner, so these types of moves can be very complex.
However, perhaps the most psychological part of racing, is simply the 'how crazy is the other driver' effect. Sometimes wheel to wheel racing is all about playing a game of chicken into a corner. The most common way is you dive in and rely on the driver you are trying to overtake giving you space, even if it is border line as to whether racing rules would require them to do so. You basically say, I want the corner, you either hit me and we both go out, or you let me through. This plays out in really interesting ways, for example in F1 Bottas and Raikonen have been in this mind battle for the last few races. They had a run in earlier in the year where Raikkonen made a move on Bottas and they collided. Bottas was out of the race and Raikkonen essentially got his place. In a subsequent race, Raikkonen tried a similar move and Bottas didn't give him any space, causing them to both get taken out of the race. Bottas actually said after the race that if he'd given Raikkonen space then everyone would just try that pass on him, knowing he is a soft touch.
When we actually have good wheel-to-wheel racing (which sadly F1 has not had for a while now) motorsport does relies heavily on human performance and it's faults. That is still why a lot of fans watch it, and I think this AI car thing really misses that point.
A crash at high speed can cause dozens of human deaths if the car becomes airborne and lands on a spectator stand. The higher the speed, the greater the danger.
I think safety should be a huge concern if they plan to have spectators at races with robotic cars.
With that said it would be pretty awesome if we could see where Formula One had taken us speed-wise if the driver hadn't been the weakest link. They've been adding rules to slow cars down ever since the early 1970's, so there's 40+ years of technological progress in things like engine technology and aerodynamics that might suddenly get an outlet if someone decides to start a no-rules (except for rules restricting the size and weight of the car) robotic race series...
The winner will be the car with the most realistic image of a child about to run into the street painted on the back.
You are not alone. This is not normal. None of this is normal.
It says the cars will be of the same specification. Theroretically, you can save some weight by not having a driver - more interestingly, you can save space by not providing room for a driver. Maybe that means smaller, more stream lined cars? Maybe it means adding more batteries so they can run longer - adding weight.
And true, you aren't G restricted on the basis of what a driver can withstand - but the driver isn't the limit of the amount of G cars can currently pull; the rules and restrictions of car design, the limit of grip of the tyres are.
So it will all depend on the design of car that they mandate for everybody as to how fast they ultimately run.
More reckless? Maybe. You don't have to worry about driver safety, only stewards and spectators. So there is less of a risk of someone being injured from a crash.
But the old saying is "in order to finish first, first you must finish". It will be interesting to see how aggressive different algorithms are, and how they respond to different circumstances. There is always a possibility of an "error in calculation", but the algorithms are unlikely to be out and out reckless, because they won't achieve anything by not finishing.