Hacker News new | past | comments | ask | show | jobs | submit login
Autonomous Mini Rally Car Teaches Itself to Powerslide (ieee.org)
229 points by Osiris30 on May 22, 2016 | hide | past | favorite | 45 comments



Oh wow. Everything from watching end result to the tech exposure is so very-well done here. You just have to appreciate the way they told us about this, it has everything:

- 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.


And to top it off, a great selection of RSS feeds!

http://spectrum.ieee.org/static/rss


For those who haven't heard, Formula E, the electric racing series is putting together a support race called RoboRace. http://roborace.com/ All autonomously driven cars designed for exactly that purpose. It should be exciting.


When they announced RoboRace, I was fully hyped, but lately I've grown skeptical. The season is supposed to start in October, but they just announced that the cars would be powered by NVidia chips in April, and they still haven't announced the 10 participating teams, with less than 5 months to go...


Pretty cool that they have the source code up on github: https://github.com/AutoRally/autorally

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.


It's a learning system, power sliding is a result of the entirety of it's learning.


I think it would be a result of the car turning left, loosing traction and automatically see that to get to its position it would have to turn right - balancing itself out and with that the slide just happens.


I agree, it's super impressive on video - also could not find the learning algorithm.

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.


There's something exciting about watching that, and knowing that it was software figuring that out, and not a human. Even more exciting is that sort of offhanded hope at the end of the article, because yeah, we're eventually going to see a period when human and machine drivers compete. I don't know how long that period will last; maybe it will be like the history of humans vs computers at chess, or maybe it will be more like Go.


I'd imagine it more to be like chess. Physical manuevering seems to me to be the type of problem a tireless computer with 360 degrees of sensors would be perfect at optimizing for. Especially combined with the incredible amount of data that could be generated by almost any fraction of the current vehicular use world wide. Very cool stuff. It's very exciting. Watching that rally car go was really cool.


Once robotz are better at driving, running, getting over obstacles and thinking than humans, it might be pretty scary if someone sends a swarm of relentless robots after you. And of course they'd be be far stronger and equipped with ways to easily incapacitate you.

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.


https://xkcd.com/728/

"Maybe we're all gonna die, but we're gonna die in really cool ways."


That is an excellent result. Back in the 90's I converted a Radio Shack Wild Cougar (R/C truck) to autonomous control with a 68HC11 and had to slow it down under a walking pace just to keep it from crashing (it nominally went 20mph when you just controlled it manually). To consider the difference in compute over those 20 years is really quite stunning.

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!



Prediction: Uber aquihire/licence this "Aggressive Driving with Model Predictive Path Integral Control" to make Uber trips more like taxi rides...

;-)


There was a moment where the robot accidentally did a Scandinavian flick (4:34 or so). I wonder if did that through random pattern injection, and could learn from it.


I suppose it comes up naturally, emerging from a typical situation: exit previous corner slightly past the edge (for whatever reason such as unexpected surface) so counter for recover, but wait a corner is coming, so counter again to set up for the coming turn.

If it turns out to be faster, the machine will have learned it serendipitously.


Does anyone have more videos where I can watch machines learn?


MarI/O is one of my favorite.

https://m.youtube.com/watch?v=qv6UVOQ0F44


If you're interested in a "dumber" approach to machines "learning" to play classic video games (including Super Mario Bros), tom7's video [1] and paper [2] on Playfun are both fascinating.

[1] https://www.youtube.com/watch?v=xOCurBYI_gY

[2] https://www.cs.cmu.edu/~tom7/mario/mario.pdf


I haven't figured how they measure the speed. If its done via wheel sensors - of course it powerslides, b/c the algo will "think" the speed is up...


Can anyone see what the cameras are being used for? Looking at the github I see GPS and IMU being fused but nothing about the cameras.


This is what I want.

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.


Not at all in my areas of expertise or hobbies, but this is really cool. Gives me the feeling that I really live in the future.


Are robotic cars close to outperforming human drivers on short distances?

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.


For the older folks in the crowd ... https://www.youtube.com/watch?v=Y04CtbRKAPY


Autonomous opposite lock is a pretty incredible thing to watch.


> the little cars maximize their speed while keeping themselves stable and under control. Mostly.

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.


I've worked with autonomous control for RC cars, and it's not that easy. The math is very fuzzy in highly dynamic an non-linear environments. That approach works in nice controlled environments, but will fail badly when assumptions about linearity and the effect of control decisions start to break down. Also with any open loop control model that takes dynamics into account, the state space is so large that planning at a high enough rate is a serious computational challenge. As vehicle speeds increase, the computation becomes a very hard problem.


Math works - but which math? Therein is the rub.


I agree, this does appear somewhat overhyped. And those powerslides are far from impressive-looking. If it was revolutionary, I think they'd have pitted this against a skilled human opponent.

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-...


>still far from beating a human

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...


But, AFAICT, the best autonomous racecars (scale or full size) are still far from beating a human.

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.


It's common for race cars not to have any of those.


And if I'm not mistaken professional race drivers are faster without autonomous stability systems running, because consumer-grade traction control "plays it safe" so to speak.

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.


That's true about consumer grade stability systems which are engineered with great margins for safety.

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.


But the active suspension system etc. isn't actually in the "autonomous driving" category, it's an aerodynamics/grip improvement. What it does (maintain perfect ride height) isn't something humans do anyway.


yeah good point, what about brakes and accelerators that actuate via electronics/cpu instead of mechanically like in the old days? Humans press brake/accelerate pedals...


If you take ESP/ABS and other driver assists out of the picture, there's no real difference between drive-by-wire and hydraulic couplings (servos etc.). And if you want a fully non-servo car, it's early 1960's for you.


This is a really interesting question to think about. Remember the Active Suspension ban in F1 in the 90s? (they are debating bringing it back for the 2017 season)

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).


Yeah, but us humans have been improving top level competition laptimes by tenths or hundredths of seconds a year at best. How quickly do you suppose the machines are going to improve over a few years or decades?

(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.))


Given a particular car/bike with a particular set of tires on a particular track, Newton’s laws impose a theoretical limit on lap time.

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.


On a dirt track it would be expected to see the optimization algorithm at some point start powersliding. The current generation may find powersliding as being for show and drifting comes to mind. But there is are some very good reasons for why rally-drivers do this and it is not for showing off. First; it's actually faster on loose surfaces. So of course if you design an algorithm that should be optimized for loose track surfaces you have to take this into account.

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.


> 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.

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.


As far as I know, not in a way that an autonomous driver can't overcome but a human can.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: