Versioning and AI Autonomous Cars
By Lance Eliot, the AI Trends Insider
Quick, tell me which version of Microsoft Windows you are running on your PC.
Is it Windows 10?
Or, maybe it is Window 8, or Windows 7, or Vista, or XP, or 2000, or 98, or NT, or 95, etc. (that’s a walk down memory lane).
There have been numerous versions of Microsoft Windows that have been released over the years since its inception. You might have resisted upgrading at some point and still be on an older version of Windows, meanwhile the person seated next to you might be on the most recent version.
Within versions, there are also releases. For Windows 10, you might be on release 1507 (code named Threshold 1), or 1511 (Threshold 2), or 1607 (Redstone 1), and so on.
Does it make a difference as to which version and which release of that version that you are running?
Absolutely it makes a difference. Each version and each release has its own set of features and functionality.
There are things you probably like about any one specific version and its releases, and things that you likely dislike. In spite of your own likes or dislikes, you pretty much get the whole kit and caboodle with a particular version/release and so you have to live with its good parts and its bad parts. Take it or leave it, that’s the motto.
There are also bound to be bugs or errors in whichever version/release you are using.
Some of those bugs or errors are known and published as being known. Some of those bugs and errors have patches or fixes that you can put in place to overcome the bug or error. There might be some bugs that aren’t yet known, and so they lurk within the system, waiting until possibly a bad moment to arise. Sometimes a version/release gets so riddled with bugs and errors, and has so many irritating “features” that you pine away waiting for the next version, in hopes that maybe you can dump the old one and adopt the new one.
Once again, though, the new one is ultimately going to have drawbacks in capabilities, along with both known and unknown bugs. You aren’t going to wake-up and suddenly find that there’s a version that does exactly what you want, in the way you want it, and that is totally bug free.
Not going to happen.
AI Autonomous Cars And Versioning
What does this have to do with AI self-driving driverless autonomous cars?
At the Cybernetic Self-Driving Car Institute, we are working on AI software that will be able to ascertain behaviors of AI self-driving cars as based on their versioning.
Allow me a moment to explain.
When AI self-driving cars begin to truly populate our traffic mix, they will not be homogeneous.
By this I mean that not all AI self-driving cars will be the same.
Some people mistakenly think that all AI self-driving cars will be identical.
This false belief is predicated on the notion that every self-driving car will have the same AI components and software. You instead need to think about these AI systems in the same manner as you think about Microsoft Windows, namely there will be lots of different versions, many of which will be active at any given point in time.
Suppose you are on the freeway and there are a lot of cars in traffic.
Let’s assume that some of those cars are conventional cars and are being driven by humans.
There are also some cars that are AI self-driving cars, of which, some are true self-driving cars at the Level 4 and Level 5, while others are semi-autonomous at Level 3.
A true self-driving car is one that can be driven entirely by the AI without human intervention and does not need any human driver for the undertaking of the driving task.
Let’s assume we have an AI self-driving car that is Brand Q Model A and Version 8, and another AI self-driving car that is Brand Q Model B Version 1, and there’s also a Brand Y Model Z Version 3, and a Brand Y Model Z Version 2.
You can pretend that say the Brand Q is perhaps a Ford self-driving car, and the Brand Z is say a Toyota self-driving car.
The auto makers are going to have various brands of their self-driving cars and various models, just as they do today for conventional cars.
You might buy an AI self-driving car that is the latest version, while a friend of yours had bought one a few years earlier and has an earlier model.
Even within the models of the AI self-driving cars, the AI software is going to be in different versions.
It’s akin to having a room full of PC’s that are running Microsoft Windows.
Some are running version 10, some are running version 10 release 1507 and others are running version 10 release 1511. Other PC’s in the room are running say version 8. And so on.
The mix of AI self-driving cars in traffic will be just like this.
Also, some of those PC’s have the latest processors and other components, while some of those PC’s have older processors and lack components that a more modern PC has.
Some AI self-driving cars will have a radar and cameras that are of a particular type and model, while other AI self-driving cars will have different brands of radars and different brands of cameras. And so on.
I hope you are now past the idea of homogeneous AI self-driving cars, and if so, you might be wondering what does it matter that on our roads we’re going to have heterogeneous AI self-driving cars?
It matters for the same reason that knowing what version of Windows you are running on your PC, namely, the PC does different things, has differing functions and features, and contains different kinds of bugs and errors, some known and some unknown.
The same is true for AI self-driving cars.
The AI self-driving car that is Brand Q Model A that is running version 8, it might be known for being able to take turns very well, but it’s not so good at handling roundabouts.
The Brand Q Model B is a superior AI self-driving car to the Brand Q Model A in that it has newly added LIDAR (a sensor device that uses light and radar), which the Model B lacks. As such, the Model B can do a better job of detecting pedestrians and also spotting other cars further ahead than does the Model A.
I suppose you could think of this as having different models of conventional cars and having different kinds of drivers driving those cars.
There are some human drivers that drive in a speedy fashion, and other human drivers that go slowly. There are some human drivers that seem to be able to see far off in the distance, and others that can barely see a few car lengths ahead. The capabilities of the AI self-driving cars will similarly vary.
For the AI pundits you might immediately object and say that with OTA (Over The Air) capabilities that we will be able to push new versions remotely to the AI self-driving cars.
I agree that’s going to be the case.
But, it does not change the fact that the different auto makers will have different AI self-driving cars, and that besides having different physical car models with differing sensors on them, the AI systems running those models will differ.
That being said, if I am driving a Brand Y Model Z Version 3, and you are driving a Brand Y Model Z Version 2, it is perhaps likely that the Version 2 maybe has fallen behind doing its OTA and that it is pending a remote update so that it will be at Version 3.
The OTA updates are not all going to happen at the same time to all the AI self-driving cars in a particular brand and model. Perhaps I had done my OTA update to my beloved Brand Y Model Z in the morning before heading to work, but meanwhile your Brand Y Model Z was continually driving around and has not yet been put into a resting state to get its OTA (some OTA’s will be require the AI self-driving car to be at a resting state.
See my article https://aitrends.com/selfdrivingcars/air-ota-updating-ai-self-driving-cars/)
Predicting Behavior And Dealing With Versions
It would be prudent and some say essential that the AI of a self-driving car be able to predict the behavior of other cars, both human driven cars and self-driving cars.
See my article: https://aitrends.com/selfdrivingcars/art-defensive-driving-key-self-driving-car-success/
Predicting the behavior of AI self-driving cars can be based on three methods: (1) what they look like, (2) by what it does (its behaviors), and (3) by V2V (vehicle to vehicle communications).
Let’s consider each of these three methods.
First, when you see a Ford Mustang driving down the street, you instantly recognize the car due to its distinctive shape and styling. As such, for the AI self-driving cars, the auto makers are each taking their own approach to what their AI self-driving car will look like. Via shape and style alone, you can quickly gauge what auto maker made the car, what brand and model it is.
We do this via the sensors of our AI self-driving car, in that it uses the cameras to detect other cars and does an image analysis to identify what the other car is. Thus, the AI will be able to gauge readily what kinds of capabilities another AI self-driving car has, by typifying it via visual matching and then having a database of what the capabilities and limitations of that self-driving car is. This then allows the AI to predict what kinds of actions or moves that other AI self-driving car might make while on the road.
If the particular version of the AI self-driving car is not evident by visual inspection alone, another approach would be to observe its behavior. Suppose it is known that the Brand Y Model Z Version 2 often makes long stops at a stop sign, and it also is known for weaving far around a bicyclist, often going into another lane to try to get as far from a pedestrian as it can. Meanwhile, Version 3 has improvements that make the AI do a full stop at stop sign but not linger needlessly, and also that it does a better job of detecting the distance to a bicyclist and so it doesn’t have to move over into another lane when things get tight.
The AI of our self-driving car observes the behaviors of other AI self-driving cars.
And, based on the database of the limits and capabilities by model/brand/release, it is able to guess which release the other self-driving car is likely on.
As such, the AI then also can better predict what the other AI self-driving car will do in various situations and circumstances.
Some AI pundits would say that there’s no need to go to this much trouble about figuring out what the other AI self-driving car is and what it will do.
They say that you should just ask it.
With V2V, AI self-driving cars will be able to communicate directly with other AI self-driving cars. In that case, there’s presumably no guessing needed. Instead, the AI of one car just asks the AI of the other car what kind of AI self-driving car it is. Furthermore, when any roadway action occurs, such as if there is a bicyclist up ahead, the AI can ask the other car what it is going to do once it gets near to the bicyclist.
Yes, there’s no doubt that having V2V will allow for this kind of communication and coordination.
Getting to that point though is somewhat unknown as yet.
The industry is still working on the protocols for V2V. Also, the question arises as to how much V2V volume do we want and will we allow. Imagine if all AI self-driving cars are continually bombarding each other with requests about what they are doing. The computational effort to be responding to all these requests is going to chew-up both processing time and bandwidth.
Those that are strong proponents of V2V are also likely to make the assumption that V2V will always be available. It might not be. A particular self-driving car might not yet have V2V. Or, maybe a particular self-driving car has disabled some aspects of V2V. Or, maybe the communication link between two cars is not working well and so in spite of the two wanting to do V2V, they are stymied in doing so. The hope that V2V will be universal, will be always on, will never be disrupted, and will always work in all situations, I’d say it’s a bit of false hope for now and that it would be more realistic to assume that V2V will intermittently be available.
If the V2V is intermittently available, we’d then have the other two approaches, the looks of the self-driving car and the behavior of the self-driving car. Thus, all three approaches can come together to try to predict what another AI self-driving car is doing and possibly going to do.
One other aspect about the heterogeneous nature of the AI self-driving cars will be how features will come and go, potentially.
You might remember that Windows 7 had lots of nifty gadgets that allowed you to use a calculator or find out the weather status. Those were dropped in Windows 10. In a Darwinian process, some features are kept and others are dropped.
The same will be true for AI self-driving cars.
Auto makers will try to differentiate their AI self-driving car over a competitor by claiming that their self-driving car does things that the other ones do not do.
Prefer a really smooth ride in your AI self-driving car, the Brand X self-driving car has AI that is able to reduce reactions to bumps and potholes, and no other AI self-driving car has that same feature. It will be interesting to see how the features come and go. Would competitors perceive this smooth ride AI capability as essential, and therefore include it into a future version of their AI self-driving car. Perhaps.
See my article: https://aitrends.com/selfdrivingcars/marketing-self-driving-cars-new-paradigms/
There’s also the bugs and errors aspects of AI self-driving cars.
Suppose the Brand Y Model Z is known for being buggy. To-date, there have been several bugs found. Fortunately, those bugs were fixed and then pushed into the self-driving car via OTA. But, often where there are a few, there are more. It could be that the Brand Y Model Z has numerous other bugs or errors that just haven’t been discovered. Or, maybe they are somewhat known, such as the Brand Y Model Z occasionally opts to slow down and speed-up, but no one has yet figured out why it does this.
Other AI self-driving cars can be on the watch for and wary of the behavior of the other AI self-driving cars.
They can do this by trying to gauge what the nature of the other AI self-driving car is.
It’s the same thing that we humans do.
I am sure you’ve watched other cars around you and mentally thought that there’s a car that might make a sudden turn, there’s a car that will probably get in your way soon, and so on. True AI self-driving cars cannot just be driving along and acting as though there are other cars and getting caught off-guard by what those cars do.
Instead, by paying attention to versioning of AI self-driving cars, every AI self-driving car can be preparing for the actions of their fellow AI self-driving cars.
Versioning is not yet something of notable interest since there are so few self-driving cars on our roadways.
It’s one of those issues that we won’t be thinking about until there are lots of autonomous car, but we might as well get started thinking and preparing for that day.
Copyright 2019 Dr. Lance Eliot
This content is originally posted on AI Trends.
[Ed. Note: For reader’s interested in Dr. Eliot’s ongoing business analyses about the advent of self-driving cars, see his online Forbes column: https://forbes.com/sites/lanceeliot.]