Another Step Towards the Driverless Car
jtogel writes "At Essex, we have for some time been working on automatically learning how to race cars in simulation. It turns out that a combination of evolutionary algorithms and neural networks can learn how to beat all humans in racing games, and also come up with some quite interesting, novel behaviours, which might one day make their way into commercial racing games. While this is simulation, the race is now on for the real thing — we are setting up a competition for AI developers, where the goal is to win a race between model cars on real tracks. As the cars will be around half a meter long, the cost of participating will be a fraction of that for the famous DARPA Grand Challenge, whereas the challenges will be similar in terms of computer vision and AI."
At least now they won't cause accidents.
Seriously, this is a technology whose time has come. Persuading elderly drivers to give up their cars is difficult, and the baby boom generation is putting a lot of people in that situation in the next decade or two.
I for one welcome our new automated race-car overlords.
Persuading elderly drivers to give up their cars is difficult, and the baby boom generation is putting a lot of people in that situation in the next decade or two.
I find backing over them works fairly well.
-- Tigger warning: This post may contain tiggers! --
I would love to have a driverless car: let me get some work or reading done while lounging in the back seat (safer) of my car while it is driving me through the daily rush hour. Because I can get work done, I can either drive off later or am in less of a rush to get where I'm going. No more tedious trips of hours upon hours of driving.
/. I think) said humans have trouble paying consistent attention to anything for an extended period of time without having our minds wander:
n dex.php?action=fullnews&id=80157
Lower insurance premiums - and if the car has an fender bender, I can point to the manufacturer and hopefully won't be branded as an unsafe driver for life if I didn't do the driving. Safer roads for all. A recent study (posted on
http://www.localnewswatch.com/skyvalley/stories/i
We'd be more safe.
No traffic tickets - the AI can go closer to the speed limit than I have the patience to (now if they didn't consistently set the speed limit too low in a ton of places just to be asshats and be able to write tickets when they need the money....)
Seriously, this isn't just for the elderly. Driving ceased to be fun for me long ago. If I had to do it only once a week on a nice stretch of fast highway, I might feel differently....
The links go to an AI presentation of virtual cars and a news release saying there will be a competition without any details about the competition. Did I miss something? Is the only news that they have developed neural nets to drive a virtual car?
The competition sounds like a manageable project for academics (versus the DARPA event).
Is the competition still in the vapor-ware or maybe-someday stage?
Anyone have a link (perhaps IEEE) that has details?
I don't know much about the techniques underlying Forza 2, but I went over and talked to the guys who worked on Forza 1, and we compared our approaches. At least for the first game, what they are actually using is recorded trajectories on different track segments which are then spliced together at the junctions of segments, so as to create similar-looking behaviours on unseen tracks. The problem here is of course that the new tracks are constrained to being constructed out of the same segments as the driver has already been tested on - there is no generalization. The track designers for Forza simply had to live with this constraint.
.
We have ourselves gotten player modelling working fine with evolutionary neural networks, which can generalize, but the Forza team didn't consider these techniques reliable and fast enough in time for the release of the original game. Maybe things have changed with Forza 2.
There is some information on the Forza AI on http://research.microsoft.com/mlp/forza/, and our approach to modelling is described in http://julian.togelius.com/Togelius2006Making.pdf
Note that all this is about modelling behaviour, not about creating new behaviour from scratch; there are some papers on this on my website as well.
A few months ago I was thinking about doing something like this, but in heavy traffic situations. What if the course had way more cars than should ever actually fit, and the cars independently tried to minimize their travel time around the course. I wonder if the computer could get a better overall throughput than people seem to do on the crowded highways of, say, Seattle.
If it's windows, we'll have the red screen of death.
Make it either Opt-In or by Court Order
Now this, to me, is a very important distiction. What if for this to work well, all the cars have to be computer controlled? What if computer control is then mandated? This is a whole new exciting level of "nanny government". Sure this might be safer in that there would be fewer auto accidents, but do you really want all transportation to be centrally controlled? Sure each car might be autonomous at first, but emergency workers need the ability to remotely turn on off, right? It's for everyone's safety.
We are all just people.
If anyone actually is interested in reading the papers discussing the experiments we did (many more than you see in the videos!), most of them are available on my website.
Some of them are of course better than others. I can recommend this one, about evolving general and specific driving skills, this one about co-evolution, this one about different learning techniques, and this one about modelling human driving and evolving tracks. There are several new ones, including one on physical cars, which are not on the website yet - mail me if you want a preprint!
All this assuming that anyone actually reads academic papers... sometimes it seems that not even the guy who writes the paper actually reads it. (Not true in my case, of course!)
Sitting in a car with my missus driving is much the same as being in a driverless car:
Biggest difference is that the thing is more likely to know the way to someplace.
Do it yourself, because no one else will do it yourself. [beta blockade 10-17 Feb]
The problem with driverless cars isn't the technology but insurance.
Many manufacturers have been dissuaded from pursuing the technology and installing in their vehicles because in the case of any accident the corporation would be liable. Obviously the 'driver' wouldn't be at fault because they wouldn't be driving.
No large corporation is going to put itself in line to pay out on every bump, scrape and minor slaying caused when their killer robo-cars Attack!
It is bad enough seeing a steady stream of cars and SUVs with only one person in them streaming out of the downtown at rush hour. Now we're going to have cars out there that aren't even taking anyone anywhere.
The environmentalists will not be happy with this development!
on a real track, and these algorithms wouldn't stand a chance. Racers know subtle moves and blatent moves that these systems will never be able to learn. Add the fact that real cheating and bending the rules has to occur under the nose of race officials, and that team cars run by algorithms would be banned from any racing venue for being dangerous morons within one or two races, and this would disappear faster than most vaporware.
Implying that these cars could "drive themselves" in any meaningful or safe manner is idiotic. I would like to see what would happen if they put in place some rules based on sane driving.
tom
autocrosser and road racer
I hate sigs, and refuse to have one.
TORCS is a more advanced racing simulation than Rars. Its held robot-programming contests for the last 3 years, with another about to start soon.
There have been several robots that use various learning techniques, though none to my knowledge have been full-blown AI/neural net solutions. To be honest, I query the advantages of doing it that way. A robot that has code to plan a smooth & optimal path around the track & calculates braking and steering accordingly will do much better (initially at least) than an AI robot that needs to learn this information. Perhaps bots that use a mix of the two (preplanning to begin with then learning to fine-tune any errors in the plan) would be the best solution.
Understanding the speed limit is one thing. Driving under the speed limit in the left lane during rush hour is altogether a different story.
Slashdot - where whining about luck is the new way to make the world you want.
I'm all in favor of robot contests and all but more important, from my point of view, is the ability to share resources (such as test environments, robot chassis, sensors, vision-processing code, etc.) outside of the competition itself.
The biggest unnecessary impediment to robotic research right now, as I see it, is the difficulty researchers have in making comparisons between systems. You demonstrate your racing code on your robot in your test environment. I demo my code on my bot on my test track. The results are different but what does that show? On the other hand, if we both have the opportunity to try out our code on the same robot in the same test environment and mine clobbers yours, then the whole world can clearly see that mine works better. (Or, I suppose it is logically possible that yours would outperform mine, but that seems pretty unlikely, now doesn't it?)
We can get some kind of head-to-head comparisons in competitions, to be sure, but even then it is often just the environment that is the same. Typically the contestants are still providing all of their own hardware and software (as in the DARPA Grand Challenge and TFA). Even if we provide contestants the same hardware (xor the same software), limiting our comparison time to a couple of days a year impedes progress. We should be able to test our systems year 'round.
What we should be doing is making our code and our hardware and our test environments available to one another on a daily basis. If I want to see if I can evolve a better neurocontroller for your race car than you did, you should allow me to download my code onto your race car to drive around your track next month. Want to see if your code does a good job of driving my FIDO-class planetary rover over a simulated Martian surface? Download it onto my bot and run it in our Mars room or our outdoor OK/Mars test site. If you want to see if your rover hardware design can outperform the classic rocker-bogey design, pack it in a crate and ship it to us and we'll run it around our test environments for you.
Of course, it isn't quite as easy as that since the labs with the coolest robots in the world (which cost a pretty penny) can't spend all of their time and resources running experiments for other people at no cost - they have to get something out of the deal too. But that issue is not insurmountable.
I do applaud the provision of the simulation version of the race, which gets us running the same (simulated) hardware in the same (simulated) environment. (Interested readers should see http://julian.togelius.com/cig2007competition/ for the Java code. It is very simple and fun to try out.) The one question I have there, what is the license like for the simulator? I didn't see a README file or a note on the webpage. I didn't dig into individual source files or anything. Open source of some stripe would be nice, so that we can all improve it and share the improvements with one another.
Also, if anyone can suggest a more realistic racing simulation environment that could provide a better bridge to the real world competition that the simple 2D sim mentioned above, I'd appreciate it. An open interface is, of course, a must.
Dean
Notice that in all the examples, the road is much wider than the car. That's not by accident.
Driving using reactive behaviors is easy if you have plenty of room. On narrow roads, though, those approaches fail. You have to look ahead. In fact, to drive in the real world, you need a controller that plots at least an S-curve ahead. Otherwise, you'll end up in a tight spot pointed in a direction that won't get you through.
You don't necessarily have to "plan", in the AI sense, but you need a fairly good dynamics prediction capability, after which you can run a reactive controller on the prediction.
We went through this with our DARPA Grand Challenge vehicle. We started out with a reactive planner, but it just couldn't deal with tight spots. Most of the other teams ended up with S-curve planners, too. The reason you need S-curves is that you need to be able to achieve both a desired position and direction at a point ahead of the vehicle. So you need a curve with at least two degrees of freedom.
The predictor needs to know enough about the vehicle dynamics to make reasonable predictions. For example, predicted S-curves have to be built knowing how fast you can change the steering angle and how tightly you can turn given the current speed and ground bank.
If you need to do this stuff, read up on adaptive model-based feedforward control. The idea is that you have a system that learns how the system behaves as the inputs change and builds a model. Inverting the model gives you a predictor. Given a predictor, you can control.
A useful feature of that approach is that, while you're using one predictor, you can be training a better one safely. Predictors are trained by watching; they don't have to be in control. So you can start out with some dumb controller and work your way up to better ones, without crashing. This is probably how mammals learn motor skills.
Some posters have posited the "what if every car were an AI car" scenario. But the transformations all talk about changing our current cars into AI cars.
But I'd like to propose a different slant. If every car is an AI car, then how will this differ significantly from a distributed form of public transportation? If you break it down, the daily commute is filled with SUVs and a lone driver, with the SUV remaining parked (taking up space) for the whole day. So what about "transportion as a service" here (AKA: public transit and taxis)?
I mean, if I need to get to work and the wife needs to go shopping with the new-born, in many cases we need two cars. But if my car can drive itself home, then the wife can just wait the extra time and have her car back. Point is, we can optimize roadway usage, but we can also optimize car usage time. Communities could own car pools and "rent" them out. With communities co-ordinating their own commutes, but also with cars that can do intelligent pick-ups, you can get by with less cars and with less "big cars".
Does anyone else feel like automating our current transportation is insanity compared to building a new transportation system that actually lends itself to automation?
Why are we trying so hard to make something designed to be operated by a human computerized so it stays on the road when we can make a road with rails on it?
You are checking your backups, aren't you?
No option to walk? you should speak to your political representatives and get pedestrian walkways put in either side of the road. Even sub-Saharan African countries can afford to do this (see page 27) - it doesn't have to be expensive - so I guess your country needs to think about its priorities on spending. Which country are you writing from?