@CBDunkerson, thanks for your detailed response. Fascinating. You have obviously given a lot of thoughts on this.
how does the car differentiate between a traffic cop directing it to go (despite the red light) and some random joker doing the same thing? That could be handled by giving cops and construction workers special signalling devices for autonomous cars, but it is an issue that needs to be worked out.
Yes, that's something I have never heard other people talking about.
Given that the ultimate goal is to allow these cars to drive themselves without any human occupant at all, the question isn't really how does the car hand over control, but rather how does it handle 'exceptions'.
I'd argue that the vast majority of exceptions would be handled automatically by safety and route finding logic. For example, software directs the car to take a road, but sensors detect an obstruction blocking that road... safety logic would automatically prevent the car from hitting the obstruction and route guidance would then calculate an alternate route.
One area which needs further definition is 'illegal' activity. There are tons of motor vehicle laws on the books which humans violate all the time. For example, if you are on a one way road and there is an obstruction blocking the street (e.g. downed tree limb) a human will illegally back up to the last intersection and go a different way. Autonomous vehicles are going to need rules for when they are allowed to break the law... which will probably mean codifying the exceptions which humans have been using all along. However, this is more of a legal issue than a limitation of autonomous driving technology... they CAN handle these situations once we codify what they are allowed to do.
There isn't really a lot left once safety, route, and legal exceptions have been considered. One possibility might be human interaction... how does the car differentiate between a traffic cop directing it to go (despite the red light) and some random joker doing the same thing? That could be handled by giving cops and construction workers special signalling devices for autonomous cars, but it is an issue that needs to be worked out.
Personally, I suspect that there will be an 'operator' system for the transition from 'driver assist' features currently on the road to 'fully autonomous' vehicles. Just as an operator used to have to manually connect long distance telephone calls you might have autonomous vehicles sending information to a human in a control center who then tells the car what to do.... so the 'operator' would get a video of the cop directing traffic and tell the car when to go. Not driving the car, but just giving it simple instructions (e.g. 'go', 'back up', 'take Halsey street') when it encounters an 'exception' it can't figure out on its own. Again, safety logic is going to keep the car from hitting anything, but it may pull over to the side of the road to wait for instructions if it can't figure out how to get to its destination (e.g. rock slide has blocked the only road going there). Maybe those instructions come from an owner on their cell phone or maybe a professional operator, but they'd only be to prevent autonomous cars from sitting motionless in some safe location... getting to a safe location and stopping would be default behaviour for unknown conditions at all times.
I'm with you, DrQuine. I think that the most difficult task will be the vision algorithms, but not that it's an impossible task.
Back when AI was being much ballyhooed, I asked during a meeting at work why anyone thought it was so different. My non-engineer boss said it's like not being able to distinguish between a human or a machine when interfacing with AI.
I said to him, you don't understand. I don't think humans are that smart or unpredictable. Rule-based programming, with lots of nested if statements, and a few coin tosses thrown in there once in awhile, if you really want to emulate humans.
Planes also land on autpilot. We have Mars rovers that drive autonomously, avoiding obstacles or terrain that's too steep. We have drones that fly themselves and find their way back to base if they lose the remote control signal, and so forth. None of this is outside the realm of doable.
Plus, we have had all manner of computer games that can beat even the most expert of human players, e.g. at complex games like chess.
What makes car driving such an insurmountable feat, given that so many barely proficient humans can more or less master that art?
In the slow motion version of the problem (steady traffic flow), if the Google algorithms cannot make sense of the environmental information due to mud, snow, or sensor failure, it has a difficult problem. I think the nearest analogy is what does the human driver do when mud sprays onto the windshield blinding the driver and the windshield wipers cannot clear it. Somehow the human needs to get engaged in the problem solving process while the vehicle slows down and pulls to the side. In the crisis version of the problem (impending collision), the inability of the algorithm to solve the problem before the crash makes it unlikely that a human brought into the problem at the last instant can find a solution. We're on our way to an accident, the seat belt tensioners are engaged and the air bags are about to blow.
I am not sure I buy the plane autopilot analogy. Given the fact that planes are purposefully keep FAR apart while in the air and that cars have a lot more uncertainties than a plane. Consider the very likely situation of a child stepping out onto a road from behind a car, both to be expected and Unexpected.. Planes have to deal with wind shear but most often they are aware of it via radar, not so little kids.. I would be very leery of any auto-pilot car in a suburban setting..
That said, I am oftentimes worried about the typical drivers today, with cell phones, radios, etc. keeping their attentions while driving. It would be nice to see some safety systems inplace to help keep us from crashes..
Many decisions in everyday driving are tradeoffs. One wouldn't swerve off the road for a pigeon, but in the case of a similar sized rock would be compelled to swerve or simply duck. Too many people are killed every year swerving to avoid small animals like birds, dogs, cats, racoons or skunks. The decision is more difficult as animals get larger - wolves, deer, moose or bears. And of course the biggest problem of all for auto-piloted cars is pedestrians of all sizes, especially small children.
I once witnessed a number of cars on a limited access highway spinning out on the road and off the guardrails immediately ahead of me. Without consciously thinking, in my mind I quickly calculated their paths, down shifted and threaded my way unscathed. Vehicles following me panic braked and joined the pileup. While a computer could in theory be programmed to do what I did, it is highly unlikely. Of course if they were all on autopilot, with ABS and stability control, this type of occurrence would be unlikely.
The problem with a public road system is the large variety of vehicles, unlike a limited access rail system. The other problem is the time-frame for implementation. Inevitably, there would be a time of both auto-piloted and human driven vehicles on the road. At some point, one would only allow auto-piloted vehicles on the faster roadways. Can you imagine the political infighting for such decisions in light of what just went on? Is a dictatorship on the horizon?
The U.S. air traffic control automation program is a likely scenario. Billions have been spent on this comparatively simple system. Inevitably, as the prototypes were becoming promising, the technology became obsolete, unavailable and unserviceable, so a new development contract was let. This cycle repeated many times over many decades.
So there's a great deal of politics in implementation at all levels, from designers to legislators.
I would be thrilled to be able to do office work in my auto-piloted car, just a many farmers do today in their auto-piloted tractors. The question is will I live long enough to see the day? Hopefully the auto-piloted car will have a better future than the flying cars promised decades ago.
I would certainly agree that the driverless car will have to depend on more than just radar. The obstacles you mention would mostly be undetectable by radar. That's why I think that truly autonomous mode will require optical sensing, assistance from V2I, and of course algortihms to make sense of the information.
How does one develop autmatic control algorithms? A good starting point is, you ask yourself how you would do this manually, and then you have the algorithm emulate that behavior.
So for example, the shredded truck tire. Optical sensors will notice that. The algorithm then needs to determine whether it can swerve left or right, ar whether it has to slow down drastically (which would be the last choice).
If all cars on this segment of road are being driven autonomously, a suuden swerve will be a whole lot safer than it would be with emotional, mostly untrained humans in the mix.
A well executed V2I system would work even better, noticing the obstacle and signaling to cars upstream to get in another lane.
Blog Doing Math in FPGAs Tom Burke 23 comments For a recent project, I explored doing "real" (that is, non-integer) math on a Spartan 3 FPGA. FPGAs, by their nature, do integer math. That is, there's no floating-point ...