I want to make this a little bit more beautiful. I will introduce a variable called “world,” and for each of the 5 grid cells, world specifies the color of the cell– green, red, red, green, green. Further, I define the measurement Z to be red. Can you define a function, called “sense,” which is … Read more
To turn this back into probability distribution, we will now divide each of these numbers by 0.36, but differently, we normalize. So please, in these five fields, enter your result for dividing 0.04 or 0.12 by 0.36, and please check that the sum of those truly adds up to 1.
So, let’s look at the measurement of this robot in his world with five different grid cells x_1 to x_5. Let’s assume two of those cells are colored red, whereas the other three are green. As before, we assign uniform probability to each cell of 0.2, and our robot is now allowed to sense, and … Read more
Let me begin my story in a world where a robot resides and let’s assume the robot has no clue where it is. Then we will model this with a function, I’m going to draw onto this diagram over here. Where the vertical axis is the probability for any location in this world and the … Read more
The very first problem I’m trying to solve is called localization. It involves a robot that’s lost in space. It could be a car, it could be a mobile robot. So he has his environment and the poor robot has no clue where it is. Similarly, we might have a car driving on a highway … Read more
If you have no idea where a car is located in the world the probability distribution for its location will look completely flat. The probability of it being anywhere say in San Francisco or in Tokyo will be the exact same. The probability that the car will be at any particular location will be a … Read more
C++ is the language of self-driving cars. It’s also a programming language that’s a lot closer to what devices like the NVIDIA PX2 understand than a higher level language like Python. So if you want to get a job in this field, it’s something you’re going to have to learn. And while C++ is in … Read more
Is run the program and we find that the most likely cell is the fourth cell and it makes sense because the best match of ‘red’, ‘red’ to the word is right over here, right over here. After seeing the second red, the words moved one to the right finds itself in the fourth cell … Read more
You’ve seen how autonomous vehicles sense their environments and then use that information to lower their uncertainty and improve their predictions about a car’s movement and surroundings. But how do autonomous vehicles actually represent uncertainty in the real world? They use probability and probability distributions. Probability distributions are a mathematical way to represent uncertainty across … Read more
Let’s pick a different base. Let’s assume the robot saw red twice. It senses red, it moves, it senses red, it moves again. What is the most likely cell?
Here’s the routine. It’s very short. It goes through the measurements. It assumes it has as many motions as measurements. It first applies the measurement as before. Then it applies the motion. When it’s done with it, it prints the output, and the output is interesting. The world has a green, a red, a red, … Read more
So wow! You’ve basically programmed the Google self-driving car localization even though you might not quite know yet. So, let me tell you where we are. We talked about measurement updates, and we talked about motion, and we coded these two routines sense and move. Now, localization is nothing else but the iteration of sends … Read more
Let’s move 1,000 times. Write a piece of code that moves 1,000 steps and give me the final distribution.
Here’s a piece of code that moves twice by the same amount as before, and the output now is a vector that assigns 0.66 as the largest value and not 0.8 anymore.
Now let’s go back to our code and move many times. Let’s move twice, so please write a piece of code that makes the robot move twice, starting with the initial distribution as shown over here–0, 1, 0, 0, 0.
So, here’s a question for you that is somewhat involved, and I either want to check your intuition. Suppose we have five grid cells as before, with an initial distribution that assigns one to the first grid cell and zero to all of the other ones, let’s assume we do U equals one, which means … Read more
Here’s one way to implement this. We’re going to introduce the auxiliary variable “s,” which we build up in three different steps. We multiply the p value as before for the exact set off by pExact. Then we add to it two more multiplied by pOvershoot or pUndershoot where we are overshooting by going yet … Read more
I’m going to give us a pExact of 0.8, pOvershoot of 0.1, and pUndershoot of 0.1. I’d like you to modify the move procedure to accommodate these extra probabilities.
So, let’s talk about inaccurate robot motion. We’re again given five grid cells and let’s assume a robot executes its action with high probability correctly, say 0.80 over the 0.1 chance, it finds itself short of the intended action and get another 1.1 probability it finds itself overshooting its target. You can define the same … Read more
Once we gather sensor data about the car’s surroundings and its movement, we can then use this information to improve our initial location prediction. For example, say we sense lane markers and specific terrain, and we say, hmm. Actually, we know from previously collected data that if we sense landlines close to the sides of … Read more