Leapfrog Driving for Self-Driving Cars

1376

By Dr. Lance B. Eliot, the AI Trends Insider

Are you familiar with leapfrog driving on the highways?

You’ve probably done this kind of driving and didn’t even realize there is a name for it. Here’s how it goes. You are driving along on say a highway with two lanes in your direction. The rightmost lane is considered the “slow” lane. The leftmost lane is considered the “fast” lane. Trucks are pretty much supposed to stay in the slow lane. Passenger cars are able to travel in the fast lane.

On the open highway, you see the cars zooming along, using that fast lane to hit 80 miles per hour or more (some daring to go 100 miles per hour). The trucks hauling Wal-Mart goods and Fedex packages are lumbering along in the slow lane, hugging the posted speed limit and daring not to go much faster else they might lose their trucker’s license. I am sure many look with envy as the cars go past them at what must seem like light speeds in comparison.

A passenger car that is entering into this open highway will usually come into the slow lane. At that point, they need to carefully juggle being in front of a truck that is lumbering along, and then try to find enough of a space to get up-to-speed to merge into the fast lane. Some car drivers are pretty stupid and just bluntly go from the slow lane into the fast lane, and cause other fast lane cars to hit their brakes because the lane switching dolts aren’t going the speed of the fast lane. Have you ever honked your horn or given the finger to one of those idiots? Probably. Rightfully, though I am not encouraging road rage.

When trying to exit from the open highway, a car going in the fast lane has to maneuver into the slow lane, finding a space between trucks that are lumbering along. The car driver must time this such that they are in the slow lane with enough time to make their upcoming exit. Once again, there are dolts that misjudge this dance. They dart into the slow lane and need to immediately catch the upcoming exit ramp. Meanwhile, they cause the trucks in the slow lane to have to pump on their brakes. I sometimes wish that a truck would just knock one of those cars into the air, and maybe show the driver a lesson. However, I am not encouraging violence of any kind.

So far, we have a two-lane highway in a particular direction, a slow lane to the right, a fast lane to the left, entrance ramps and exit ramps that connect to the slow lane, we have trucks primarily occupying the slow lane, and cars primarily occupying the fast lane. The cars do go into the slow lane, mainly for purposes of entering onto the freeway and then transitioning into the fast lane, or for exiting the highway by first transitioning from the fast lane into the slow lane. Does all of this seem clear cut? I would think you’ve seen these many times if you’ve ever driven across a state or similar lengthy driving journey.

Now, let’s talk about the leapfrog. Suppose you are in the fast lane, and the car ahead of you is not going fast. Or at least not going fast enough to suit you. Sometimes, you’ll hug their bumper and hope they get the idea to get out of your way. Sometimes you flash your bright lights of your headlights to clue them to get out of the way. If none of these techniques work, you’ll do a leapfrog. You look for an opportunity to get into the slow lane. You then proceed ahead of the car that is “blocking” the fast lane, and then get back into the fast lane ahead of the dawdling driver. You just did a leapfrog.

We’ll use the capital letter F to represent the fast lane, and we’ll use the capital letter S to represent the slow lane. You were initially going in the fast lane, lane F, and then you switched into the slow lane, lane S, and then you zipped up ahead and got back into the fast lane, lane F. We could say that you did this sequence: F-S-F. With me on this? You were in the F lane, then S lane, then F lane. This is one type of leapfrog. It is the F-S-F leapfrog.

Suppose instead you are in the slow lane. You have decided not to use the fast lane per se. You are fine with being in the slow lane with the lumbering trucks. You maybe like this because you don’t want to go 100 miles per hour in the fast lane, and know that if you don’t do the 100 mph that other idiots in the fast lane that are clearly driving over the speed limit grossly are going to honk their horns or ride your bumper. Those idiots!

But, there you are in the slow lane and stuck behind a truck carrying onions. What a stench! Being behind that truck is just terrible. So, you decide to switch into the fast lane, momentarily. You then drive up ahead of the onion stinking truck. You next switch back into the slow lane, since you don’t want to continue occupying the fast lane and become a bottleneck.  In this case, you were in the slow lane, lane S, and then switched into the fast lane, lane F, and then after passing the truck you got back into the slow lane, lane S. Let’s refer to this as this sequence: S-F-S.  With me on this? You were in the S lane, then the F lane, then the S lane. This is another type of leapfrog. It is the S-F-S leapfrog.

We now have two types of leapfrogging, the F-S-F and the S-F-S.

What’s so special about this? Today’s self-driving cars can barely do the F-S-F and the S-F-S. Let me explain. The self-driving car of today has AI that pretty much wants to stay in whatever lane it is in. Lane switching is hard. It is dangerous. It takes a lot of additional sensory analysis. We humans take lane switching for granted. The typical self-driving car will only switch lanes if there is a must reason to do so, and often only if prompted by a human to do so. Or, the self-driving car will ask the human driver in the car to get the car into another lane and then the self-driving car will continue from that point. Generally, the self-driving cars of today are not doing a leapfrog.

Notice that novice drivers such as teenagers learning to drive are about the same way. They timidly get onto the highway and stay in the slow lane. Making lane changes is frightening. They stay in the slow lane and only venture into the fast lane if prodded to do so. For them, the leapfrog is an advanced skill and one they have yet to master. For seasoned drivers, we are used to doing the leapfrog. It’s considered an essential skill for any sophisticated driver.  For seasoned drivers that are perhaps reckless, they do so many leapfrogs that they are at times risking themselves and the lives of other drivers.

You might insist that a self-driving car should not do a leapfrog, at all. In the Utopian world of some self-driving car AI developers, they would say that there isn’t a need to do a leapfrog. Stay in your lane. Do not switch lanes. Only switch lanes when there is an absolute necessity. If you are in the slow lane, stay there. If you are in the fast lane, stay there. Yes, you can switch from the fast lane to the slow lane, but only because you need to ultimate exit the freeway soon. Yes, you can switch from the slow lane to the fast lane, but only because you have just entered into the freeway.

No self-driving car is supposed to be playing frogger, according to these AI developers. They would also say that once all self-driving cars are on the roads, they will communicate with each other and the world will be a wonderful place. This is because they will in a civil manner always let entering cars to have a gap in the slow lane to get onto the freeway gently and easily. Likewise, they will in a civil manner open a gap for a car in the fast lane that needs to get into the slow lane in order to exit. Well, I supposed this might someday be true, but not for a long, long time. For many of us, there is going to be a mixture of self-driving cars and human driven cars. And those human driven cars are not going to be so civil.

At the Cybernetic Self-Driving Car Institute, we believe that self-driving cars need to be able to do a leapfrog. For some, this is considered an “edge problem” (see my column on edge problems for self-driving cars). We think that leapfrogging is and should be a standard skill in the AI of the self-driving car.

That being said, some right away will argue that we are encouraging bad driving behavior. They complain that we are allowing self-driving cars to do what we don’t want human drivers to do. I would say this is an extreme perspective. I think we all would accept that a leapfrog is a proper and appropriate maneuver, when done sparingly, when done safely, and when done as the circumstances so arise. If you are saying that the doing lots of leapfrogs or doing them without safe driving is bad, I am completely in agreement with you. As I suggested before, there are leapfrog idiots that do the leapfrog in the worst ways, at the worst times, and endanger us all. Down with the bad leap froggers.

What happens when a self-driving car wants to do a leapfrog? It’s pretty complicated, but can be done using the other fundamentals that a self-driving car should already be equipped with. For the S-F-S, the self-driving car is in the slow lane, and it wants to get into the fast lane. This requires detecting the cars that are in the fast lane. Is there an available gap to get into the fast lane? Is there a car coming up in the fast lane that the self-driving car will inadvertently cut-off, if so, wait for the next opportunity. Can the self-driving car get enough speed to get out of the slow lane and into the fast lane, doing so without becoming a bottleneck in the fast lane?

At this point, assume that the self-driving car has done the first part, the S and F of the S-F-S sequence. How far is the self-driving car next going to need to go in the fast lane, since remember that its goal at this point is to get back into the slow lane at the earliest opportunity. So, now that the self-driving car has made its way into the fast lane, it is inching ahead of whatever was in the way in the slow lane, and then looking to get back into the slow lane. This might mean getting in front of the truck that was in the slow lane. Or, it might require going further up ahead, maybe getting ahead of several trucks, and then finding an opening to get back into the slow lane. Notice all the judgment required in this. It is not a mathematical formula that applies across all situations. Instead, the self-driving car AI has to be taking a step-by-step, predictive and planned approach.

The distances matter in the leapfrog. Sometimes, it is a quick leapfrog. Tracing the S-F-S, you quickly get into the fast lane from the slow lane, you zip ahead of a truck, you then quickly jump back into the slow lane. We’ll refer to the distances by using the number 1 to mean a short distance, and we’ll use the letter N to denote a longer distance. We’ll add to our denotations by saying that a S1-F1-S1 means a maneuver of a leapfrog in which we did a quick step for each of the S, F, and S. The opposite extreme would be the SN-FN-SN, which would mean that you went a long distance to maneuver into the fast lane from the slow lane, and then a long distance to maneuver out of the fast lane and back into the slow lane, and that you then continued in the slow lane for a long distance.

What’s the purpose for these? We can now describe the various leapfrogs.

They are:

S1-F1-S1

S1-FN-S1

S1-F1-SN

SN-F1-S1

SN-FN-S1

SN-FN-SN

The AI system needs to know how to do each of these maneuvers to properly execute the S-F-S leapfrog.

Likewise, there is this:

F1-S1-F1

F1-SN-F1

F1-S1-FN

FN-S1-F1

FN-SN-F1

FN-SN-FN

The AI system needs to know how to do each of those maneuvers to properly execute the F-S-F leapfrog.

When I was driving from Los Angeles to Silicon Valley recently, which is about a six-hour drive, I counted how many leapfrogs I did. In this case, I was not in a hurry to get to my destination, so I opted to not do many leapfrogs. I counted about 20 over the entire driving journey. That’s about 3 leapfrogs per hour.

On the way back, I was in a hurry to get back to Los Angeles. I knew that the leapfrogs could speed up my driving journey. I did nearly 60 leapfrogs. That’s about 10 per hour, or one every six minutes of driving time.

In the first journey, heading up to Silicon Valley, there was a lot of time separation between each leapfrog. On the return journey, I was actually doing leapfrogs one immediately after another.

Let’s consider this sequence.

F1: S1: F1 / F1:S1:FN / F1:SN:FN / FN:S1:F1 / FN:S1:FN

Notice that I was trying to stay out of the slow lane for any length of time. I wanted to get into the slow lane so I could pass a car in the fast lane that was blocking the fast lane and that idiot driver didn’t want to get out of the way. I would jump into the slow lane, and out of the slow lane, as quickly as possible (they all were S1’s, except for one that was an SN).  The reason I had an SN in that sequence was that I got into the slow lane to make my passing maneuver, but then other cars in the fast lane were coming up so quickly that I could not safely get back into the fast lane. Thus, I paid the penalty of being stuck in the slow lane.

This is an important point. Some human drivers think that if they do the leapfrogs that they will always do better than not doing the leapfrogs. This is not necessarily the case. You probably see drivers all the time that seem to jump into another lane, and they think they will do the leapfrog, but they get stuck in the other lane. You meanwhile pass them, laughing at their stupidity for poorly using the leapfrog technique.

Another thing I’ll bet you do is play mind games with other drivers that are doing leapfrogs. For example, you can see a driver in the fast lane that is itching to get around a car ahead of them in the fast lane. Suppose you are in the slow lane and nearly paralleling the driver desiring to do a leapfrog. They are trying to eye whether to get into the slow lane just ahead of you, or just behind you. They really don’t want to get behind you because you might be a bottleneck. On the other hand, if you are moving fast enough to go past the dolt blocking the fast lane, then the leapfrog ready driver figures it is worth getting behind you.

You can then egg on the leapfrog desiring driver by purposely making it seem that you are proceeding fast enough to pass the dolt in the fast lane. The leapfrogger then makes their move behind you. At this point, you gradually slow down, just enough that it is apparent that you are not going to be passing the dolt in the fast lane. Now the leapfrogger gets frustrated because they committed to get behind you, but it’s not working out well.

They then give up the leapfrog per se and get back into the fast lane, hoping they can ride the bumper of the dolt to get them out of the way. You could leave things alone, but you want to continue the mind game. You therefore tease the leapfrogger by leaving just a minimal amount of space ahead of you that the leapfrogger thinks they can maybe make the play that way. But, it’s not enough space. You then move up ahead and parallel the dolt, and even start to edge ahead of him. This is likely enough to entice the leapfrog into trying again by getting behind you.

If you are clever enough, you can torture the leapfrogger for miles and miles on this. When I say clever enough, I mean do this without getting caught and never letting the leapfrogger get ahead. But, be forewarned that if the leapfrogger thinks you are intentionally impeding them, it can become deadly serious. They will try to swing at your car or otherwise possibly threaten you. You have to do this without appearing to do it. The leapfrogger thinks it is just random driving and not driving with mind games.

Well, I should emphasize that the above is not recommended at all. This is playing perilous games at high speeds with multi-ton objects that can kill those around them.  Do not do any of the above.  I say that, but I assure you there are drivers constantly doing it.

I certainly don’t want self-driving cars to play those games.

But, I tell you about this because I want to emphasize something else about the leapfrog. So far, I have indicated that it is a technique that any good self-driving car should know how to do. That’s true. There is the other side of this coin, namely that other cars are going to do leapfrogs. Thus, the self-driving car should be aware of other cars that are trying to do a leapfrog.

You might wonder, why does it matter if the AI knows that another car is doing a leapfrog? Why not just let the other car, whether human driven or self-driving, do its leapfrog. This is somewhat the case, but not entirely. If you as a human driver see someone doing a leapfrog, you can either inhibit them by getting in their way (as I’ve described above), or you could just drive along without noticing and let them do whatever they are going to do, or you could actually help them.

I usually try to help someone doing a leapfrog. I do this not so much for their benefit, but for mine. I don’t want a leapfrog that gets impatient to maybe make a mistake during the leapfrog. I would rather they have plenty of clearance and can do the leapfrog, even if they are inept at it.

For example, the other day, while driving at 80 miles per hour, a driver decided to do a leapfrog, directly in front of me. Unfortunately, the idiot was not thinking clearly. I was in the slow lane, he was in the fast lane. He timed it poorly and tried to get into the slow lane just as I was nearing a truck up ahead. He wanted to get into my slow lane, move ahead, swing back into the fast lane, but do it before he ran into the back of the truck. I could see that we were not going to make it. So, I slowed down while in the slow lane and gave him a larger space to make his play.  I didn’t have to do it, but I knew that he was going to otherwise turn things dangerous.

We therefore should expect this:

  •        Self-driving car should be able to do a leapfrog
  •        Self-driving car should be able to do the S-F-S leapfrog
  •        Self-driving car should be able to do the F-S-F leapfrog
  •        Self-driving car should be able to recognize a leapfrog being done by another car
  •        Self-driving car should be able to aid a leapfrog being done by another car
  •        Self-driving car should be able to do all variants of the S-F-S
  •        Self-driving car should be able to do all variants of the F-S-F
  •        Self-driving car should be able to do strings of S-F-S maneuvers
  •        Self-driving car should be able to do strings of F-S-F maneuvers

In essence, a savvy self-driving car AI should know about leapfrogs, and be able to be proactive and use a leapfrog when relevant, and be able to respond or be reactive to someone else doing a leapfrog. Next time you are driving on the open highway, be thinking about the leapfrog. You might have figured out the leapfrog by your own trial-and-error. Now you know that it’s a thing. It’s a thing that humans do, and that self-driving cars need to be aware of and be able to do too. This applies to mainly the true self-driving car, a Level 5 (see my column on the Richter scale of self-driving cars), but can apply to the other levels of self-driving cars too.

This content is original to AI Trends.