Autonomous Mini Rally Car Teaches Itself to Powerslide
spectrum.ieee.org
spectrum.ieee.org
- Source
- H/W specs
- Basic docs, build instructions
- Video of success
- Video of failure
- Side-by-side simulation and outcome
Makes it easy to understand even for someone who isn't well-versed in how such systems operate and what they're made of.
Looks like it's mostly C++, Python, and Arduino.
I wish I could find where the power slide learning algorithm is, but browsing around I'm not sure where that portion is in the project.
I would expect it to eventually "learn" that it can go much faster on the straightaways, or find the best line around the curves.
It is definitely exciting, impressive, and very cool. So much opportunity, and so much progress already.
Then we'd have AI that can subvert human systems that until now relied on adversaries not continuously optimizing and taking advantage of loopholes and building on previous results at lightning speed. Privacy, for instance, is easily circumvented by any algorithm that has access to an array of methods. It is also easy to have a virus take advantage of basic vulnerabilities of your typical web setup (eg Wordpress) and set up a botnet real fast. But beyond that, voting, trust between friends, reputation, and our laws themselves can all be subverted by an algorithm designed to achieve a certain outcome.
In short, it seems the future would consist of the equivalent of everyone having a nuke with which they can wreak havoc at any time.
"Maybe we're all gonna die, but we're gonna die in really cool ways."
I particularly liked the lack of back propagation in the design (keeps things fast) but was really curious how they determine "optimal" (center of track). So that makes me wonder if the algorithm would learn a "line" through the track that optimized speed at reduced energy.
Next up, multiple cars on the track!
;-)
If it turns out to be faster, the machine will have learned it serendipitously.
I'm not too into autonomous driving (reminds me of Hal telling Dave what he can't do, and of course Minority Report go-to-jail mode) but this could convince me.
Make a car that will drift. Make it so that it can drift into parallel parking on the other side of the road, slipping between oncoming cars as required. The faster the better.
Watching Jason Statham movies like The Transporter and The Fast and The Furious sets a pretty high bar when it comes to fictional getaway drivers.
You let an optimizer do its work within whatever constraints you want, it will nose out a solution. If the goal is to maximize speed without regard to fuel and rubber consumption, power slides are in the cards.
No need to "teach" or "learn". Math works.
But, AFAICT, the best autonomous racecars (scale or full size) are still far from beating a human.
Audi did this big thing a few months back with an autonomous RS7 versus a pro racing driver in same weight/spec RS7 [1]. The human absolutely killed the autonomous car, beat it by over nine seconds on a sub-two-minute lap at Sonoma.
If you translate that into Top Gear race track times set by the Stig, it's like the difference between a Bugatti Veyron and the fastest Mercedes E-class.
[1] http://www.roadandtrack.com/car-culture/a27200/819-roa-2015-...
What kind of race car are the humans driving? Does it have electronic stability control? Anti-lock breaks? Power steering? Automatic transmission? These are just a few of the many innovations that make it easier for a human to drive more easily at a high level of performance. The line between autonomous and human-operated cars is blurry.
Could a traction control/autonomous steering system be designed to push the envelope and risk losing traction as effectively as (or far more effectively than) a pro driver? Almost certainly, but I'm not sure how hard of a problem that will be.
As you can see by looking at the F1 active suspension ban in the 90s, when tuned for performance, these systems provided a real edge to even the best pro-drivers.
A purely mechanical car (no electronics to help control any car functions at all) driven by a human most probably wont be able to match an AI controlled car (steering, accelerator, brake, gear, suspension).
Not that far. Stanford University's Audi TTS ‘Shelley’ beats David Vodden, the racetrack CEO and amateur touring class champion at Thunderhill Raceway Park sometimes.
http://www.nbcnews.com/science/science-news/driverless-car-c...
(Last night's fastest lap in the MotoGP race at Mugello was 5 hundredths slower than the class lap record set back in 2013. Admittedly there've been rule changes, but the humans aren't getting much faster.))
I don't know how close to that limit the best humans have come, but it wouldn't surprise me too much to find that it's within a second or two.
Secondly at least for human drivers, the sliding keeps you in control. Driving very fast on loose surfaces is bound to make your vehicle slide around. By initiating these yourself, you are in control - you can feel the amount of grip available, so by oscillating over and under the limit you can keep your speed high while still being in control. This last aspect of it is by far the most difficult and interesting aspect of designing such an algorithm in my opinion. This is where the "Scandinavian flick" for instance comes into play. But I will have to disagree with a commenter below that said this was done at 4:34 - that is more a correction of the exit of the last turn than a true Scandinavian flick. Solving the oscillating aspect of dirt driving through driver feel is something I am having a very hard time believing can be solved by algorithms. Driving around on hard surfaces where the friction is somewhat known I could see algorithms come close to humans, but on loose surfaces it seems quite a long way into the future if ever.
Is there something very weird and special in that problem? Because otherwise, we've surpassed human ability of handling dynamic and fast-changing systems like, 50+ years ago? The whole field of control theory deals with stuff like that, and I'm convinced a decent enough feedback controller will beat human intuition any time in problems like these.
I'm speculating a lot, but if I had to say why driving (fast) on dirt is substantively more complex than driving on tarmac for an AI, it's because road conditions change much more rapidly on dirt. You're expecting to be constantly in various states of intentional traction loss (sliding), including having a few or all wheels off the ground with some frequency (jumps).
If you're driving slowly enough to maintain proper traction, then there really isn't an issue. But if you're rallying down an Argentinian mountain trail (take a look at some WRC on-board recordings on Youtube for an idea), you'll have an extremely challenging planning problem.
I don't think it's insurmountable for AI, it's just that racing over dirt has a lot of nuances especially to car handling that you never have to deal with on tarmac because good tarmac racing involves basically 0 traction loss and smooth, static surfaces. Not that tarmac racing is easier... where the track is simpler, you make up for it in sheer speed and the complexity of having to share a track.