Interim check in.
dog_track_1d is just a file to test code before putting it into the Kalman filter chapter.
This commit is contained in:
1 parent
fdae26c7b8
commit
0b149352ed
3 files changed
+176
-17
No files matched your search
+132
-16
@@ -50,7 +50,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 106
|
||||
"prompt_number": 1
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -74,11 +74,11 @@
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"0.4069 0.2905 -1.7388 1.0792 -0.4538 0.5012 -0.5006 0.0431 0.4978 0.1898 -0.2238 -0.0177 -0.9256 1.1435 0.5238 0.3113 0.2732 0.5035 1.7994 -1.2416\n"
|
||||
"1.2396 0.5610 -0.5456 -0.8361 -0.8521 0.4101 -0.4417 0.0910 -0.4968 0.5187 -1.9393 -0.3410 0.0943 1.1800 0.1204 -1.0427 1.2128 -2.2642 -1.7840 -0.0621\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 107
|
||||
"prompt_number": 2
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -117,7 +117,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x30da390>"
|
||||
"<matplotlib.figure.Figure at 0x3138810>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -128,7 +128,7 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 108
|
||||
"prompt_number": 3
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -167,13 +167,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x37d5dd0>"
|
||||
"<matplotlib.figure.Figure at 0x31546d0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 124
|
||||
"prompt_number": 4
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -200,13 +200,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x37c1850>"
|
||||
"<matplotlib.figure.Figure at 0x314ca10>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 123
|
||||
"prompt_number": 5
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
@@ -220,19 +220,135 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x36a4090>"
|
||||
"<matplotlib.figure.Figure at 0x316c190>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 113
|
||||
"prompt_number": 6
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"You may not have a full understanding of the exact *meaning* of a noise value of 100.0, but as it turns out if you multiply *randn()* with a number $n$, the result is just a normal distribution with $\\sigma = \\sqrt{n}$. So the example with noise = 100 is using the normal distribution $N(0,100)$. If the square root is confusing, recall that normal distributions use $\\sigma^2$. *dog_sensor().__init__* takes the square root of the noise setting so that the noise * randn() call properly computes the normal distribution."
|
||||
"You may not have a full understanding of the exact *meaning* of a noise value of 100.0, but as it turns out if you multiply *randn()* with a number $n$, the result is just a normal distribution with $\\sigma = \\sqrt{n}$. So the example with noise = 100 is using the normal distribution $N(0,100)$. Recall the notation for a normal distribution is $N(\\mu,\\sigma^2)$. If the square root is confusing, recall that normal distributions use $\\sigma^2$ for the variance, and $\\sigma$ is the standard deviation, which we do not use in this book. *dog_sensor.__init__()* takes the square root of the noise setting so that the *noise * randn()* call properly computes the normal distribution. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### Math with Gaussians\n",
|
||||
"\n",
|
||||
"Let's say we believe that our dog is at 23m, and the variance is 5 ($N(23,5)$). We can represent that in a plot:\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"import gaussian\n",
|
||||
"gaussian.norm_plot (23, 5)"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x315c150>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 9
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This corresponds to a fairly inexact belief. While we believe that the dog is at 23, note that roughly 21 to 25 are quite likely as well. Let's assume for the moment our dog is standing still, and we query the sensor again. This time it returns 23.2 as the position. Can we use this additional information to improve our estimate of the dog's position.\n",
|
||||
"\n",
|
||||
"Intuition suggests 'yes'. Consider: if we read the sensor 100 times and each time it returned a value between 21 and 25, all centered around 23, we should be very confident that the dog is somewhere very near 23. Of course, a different physical interpertation is possible. Perhaps our dog was randomly wandering back and forth in a way that exactly emulated a normal distribution. But that seems extremely unlikely - I certainly have never seen a dog do that. So the only reasonable assumption is that the dog was mostly standing still at 23.0.\n",
|
||||
"\n",
|
||||
"Let's look at this in a plot:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"dog = dog_sensor (23, 0, 5)\n",
|
||||
"ys = range (100)\n",
|
||||
"xs = []\n",
|
||||
"for i in ys:\n",
|
||||
" xs.append (dog.sense())\n",
|
||||
" \n",
|
||||
"plot (xs,ys)\n",
|
||||
"show()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x37cb050>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 18
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Eyeballing this confirms our intuition - no dog moves like this. However, noisy sensor data certainly looks like this. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### Implementing Sensing\n",
|
||||
"\n",
|
||||
"Recall the histogram filter uses a numpy array to encode our belief about the position of our dog at any time. That array stored our belief that the dog was in any position in the hallway using 10 positions. This was very crude, because with a 100m hallway that corresponded to positions 10m apart. It would have been trivial to expand the number of positions to say 1,000, and that is what we would do if using it for a real problem. But the problem remains that the distribution is discrete and multimodal - it can express strong belief that the dog is in two positions at the same time.\n",
|
||||
"\n",
|
||||
"Therefore, let us use a single gaussian to reflect our current belief of the dog's position. Gaussians extend to infinity on both sides of the mean, so the single gaussian will cover the entire hallway. They are unimodal, and seem to reflect the behavior of real-world sensors - most errors are small and clustered around the mean. \n",
|
||||
"\n",
|
||||
"So let us implement the sensing function, but using gaussians instead of the histogram array. First, here is the histogram code for reference:\n",
|
||||
"\n",
|
||||
" def sense (pos, measure, p_hit, p_miss):\n",
|
||||
" q = array(pos, dtype=float)\n",
|
||||
" for i in range(len(hallway)):\n",
|
||||
" if hallway[i] == measure:\n",
|
||||
" q[i] = pos[i] * p_hit\n",
|
||||
" else:\n",
|
||||
" q[i] = pos[i] * p_miss\n",
|
||||
" normalize(q)\n",
|
||||
" return q\n",
|
||||
" \n",
|
||||
"Note the algorithm is essentially computing:\n",
|
||||
"\n",
|
||||
" new_belief = old_belief * measurement * sensor_error\n",
|
||||
" \n",
|
||||
"The measurement term might not be clear, but recall that measurement in this case was always 1 or 0, and so it was left out for convience. \n",
|
||||
" \n",
|
||||
"If we are implementing this with gaussians, we might expect it to be implemented as:\n",
|
||||
"\n",
|
||||
" new_gaussian = measurement * old_gaussian\n",
|
||||
" \n",
|
||||
"where measurement is a gaussian returned from the sensor. But does that make sense? Can we multiply gaussians? If we multiply a gaussian with a gaussing is the result another gaussian, or something else?\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -242,7 +358,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 111
|
||||
"prompt_number": 7
|
||||
}
|
||||
],
|
||||
"metadata": {}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Wed Apr 30 10:35:19 2014
|
||||
|
||||
@author: rlabbe
|
||||
"""
|
||||
import numpy.random as random
|
||||
|
||||
class dog_sensor(object):
|
||||
def __init__(self, x0 = 0, motion=1, noise=0.0):
|
||||
self.x = x0
|
||||
self.motion = motion
|
||||
self.noise = math.sqrt(noise)
|
||||
|
||||
def sense(self):
|
||||
self.x = self.x + self.motion
|
||||
self.x += random.randn() * self.noise
|
||||
return self.x
|
||||
|
||||
|
||||
def measure_dog ():
|
||||
if not hasattr(measure_dog, "x"):
|
||||
measure_dog.x = 0
|
||||
measure_dog.motion = 1
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
dog = dog_sensor(noise = 1)
|
||||
for i in range(10):
|
||||
print (dog.sense())
|
||||
|
||||
|
||||
|
||||
|
||||
+9
-1
@@ -1,6 +1,6 @@
|
||||
import numpy as np
|
||||
import math
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def _to_array(x):
|
||||
""" returns any of a scalar, matrix, or array as a 1D numpy array
|
||||
@@ -63,6 +63,14 @@ def multivariate_gaussian (x, mu, cov):
|
||||
fprime = (x - mu)**2
|
||||
return frac * np.exp(-0.5*np.dot(fprime, 1./np.diag(cov)))
|
||||
|
||||
def norm_plot (mean, var):
|
||||
min_x = mean - var * 1.5
|
||||
max_x = mean + var * 1.5
|
||||
|
||||
xs = np.arange (min_x, max_x, 0.1)
|
||||
ys = [gaussian (x,23,5) for x in xs]
|
||||
plt.plot (xs,ys)
|
||||
plt.show()
|
||||
|
||||
if __name__ == '__main__':
|
||||
from scipy.stats import norm
|
||||
|
||||
Reference in new issue
Block a user