
Japanese: 
ではプログラミングの練習問題です
これまでに学んだことを
正確にプログラミングしてください
二次元の世界があるとします
移動する対象に関して二次元の観測で観察します
速度は不明ですが一定です
このタイプの状態ベクトルを使い
カルマンフィルタを実装してください
このカルマンフィルタは状態変数が4つあります
以前使ったものは2つでした
カルマンフィルタの全体的なコードは教えます
皆さんに設定してほしいのは状態ベクトルxです
動作u、P、F、H、R、Iをそれぞれ設定してください
これらはすべて
カルマンフィルタを定義する変数です

English: 
Let's now come to our programming exercise
I want you to program exactly what we just talked about.
We're given a two-dimensional world
where we observe in 2D measurements of a moving object
with an unknown but fixed velocity.
Using a state vector of this type, I'd like you to implement the Kalman filter.
Now, this Kalman filter now has 4 state variables
whereas the one we used before had 2 state variables.
I will give you the entire code for the Kalman filter,
but I want you to set up the state vector x, the motion u, P, F, H, R, and I,
which are all those variables that define the Kalman filter.

Spanish: 
Vamos ahora a nuestro ejercicio de programación.
Y quiero que programes exactamente lo que acabo de hablar.
Nos dan un mundo de dos dimensiones
donde se observa en 2D mediciones de un objeto en movimiento
con una velocidad desconocida pero fija.
Y usando un vector de estado de este tipo, me gustaría que implementes un filtro de Kalman.
Ahora, este filtro Kalman ahora cuenta con 4 variables de estado
mientras que la que usamos antes tenia 2 variables de estado.
Yo te daré todo el código para el filtro de Kalman,
pero quiero que crees el vector de estado x, el movimiento u, P, F, H,R e I,
que son todas aquellas variables que definen el filtro de Kalman.

Japanese: 
二次元の課題から始めてください
それを拡張して四次元で機能するようにします
以前書いたものとまったく同じ行列がこれです
ここにカルマンフィルタの手順があります
観測結果をカルマンフィルタの方程式に適用します
以前のコードと少し違うことを指摘しておきます
Z．transposeを加えたためです
これで多次元の観測が
前よりも少し扱いやすくなりました
ですがあまり気にしないでください
以前あったバグを修正した程度のことです
下の方を見るとカルマンフィルタの
ルーチンの出力がxとPになっています
この例のmeasurementsは一連の観測です
二次元空間なのでxとyの結果です
xは5、6、7、8、9、10で
yは10、8、6、4、2です
規則性や速度が想像できますね
dtを0．1とします

English: 
Start with the assignment that we had in 2D
and make it work in 4D.
Here is exactly the same matrix class that I wrote you before.
Here is the Kalman filter procedure.
We'll go through our measurements and apply the Kalman filter equations.
I should point out there's a slight difference to the code I gave you previously
where I insert a zeta transpose.
It makes it a little bit easier to work with multidimensional measurements than how I had it before.
But you don't have to pay attention to this. It's just fixed. There was a kind of a bug before.
As I scroll down, the output of the Kalman filter routine will be an x and a P.
In our example, the measurements will be a sequence of measurements
in two-dimensional spaces now--in x and y.
Look at the x's 5, 6, 7, 8, 9, and 10.
The y's go 10, 8, 6, 4, and 2.
You can imagine what the regularity is and what the velocity is.

Spanish: 
Comience con la tarea que teníamos en 2D
y hazla para que funcione en 4D.
Esta es exactamente la misma clase matrix que escribí antes.
Este es el procedimiento del filtro de Kalman.
Vamos a recorrer nuestras medidas y a aplicar las ecuaciones del filtro de Kalman.
Debo señalar que hay una ligera diferencia con el código que te di anteriormente
donde he insertado Z.transpose().
Esto hace que sea un poco más fácil trabajar con las mediciones multidimensionales que la forma en que lo había hecho antes.
Pero usted no tiene que prestar atención a esto. Se acaba de arreglar. Había una especie de bug antes.
Y desplazandose hacia abajo, la salida de la rutina del filtro de Kalman será una x y una P.
En nuestro ejemplo, las mediciones serán una secuencia de mediciones
ahora en dos espacios de dimensión, en x e y.
Mira las x 5, 6, 7, 8, 9, 10.
Las y's van 10, 8, 6, 4, 2.
Usted puede imaginar lo que es la regularidad y la velocidad.

English: 
We assume a dt of 0.1.
That means when it goes from 5 to 6 the velocity is actually 10, not 1.
We won't tell the system, but we will tell the system our initial x,y location, which is 4.
That goes nicely into 5, 6, 7, and it's 12. That blends nicely into 10, 8, and 6.
Our initial state vector I have already given you, which is the initial x and y.
and 0, 0 for the two unknown velocities.
The motion vector, just for completeness, will just be 0, 0, 0, 0.
We have no external motion.
That's a bit confusing, because there is actually motion in the system itself,
but this will be more like an external change of the motion
as if someone hit the object with an external force.
So it's 0, 0, 0, 0--please don't change it.
P is the initial uncertainty,
and I want you to initialize it so that the uncertainty for the x,y coordinates is zero,
but the covariance term for the velocities is 1000,
indicating that we really don't know the initial velocity.

Japanese: 
これは5から6へ変わる時に
速度が1ではなく10であることを意味します
システムには初期位置のみを入力します
xは4です　これは5、6、7にうまくつながります
またyは12なので10、8、6とつながります
すでにお渡しした初期状態ベクトルは
初期値がx、yであり
2つの未知の速度は0、0となります
動作ベクトルは完備性のために
0、0、0、0とします
外部動作はありません
少し混乱するところです
システム自体の動作はありますが
これは誰かが外力を対象に加えるような
動作の外的な変化のことです
そのためここは0、0、0、0なのです
変えないでください
Pは初期の不確実性です
x、y座標の不確実性をゼロにするために
初期化してください
速度の共分散の項は1，000です

Spanish: 
Se parte con una dt de 0.1.
Esto significa que cuando se va desde 5 a 6, la velocidad es en realidad 10, no 1.
No se lo diremos al sistema, pero vamos a decir al sistema nuestra localización inicial x,y, que es 4.
Eso va muy bien en 5, 6, 7, y 12. Que combina muy bien con 10, 8 y 6.
El vector de estado inicial que te doy, es la inicial x e y.
y 0,0 para las dos velocidades desconocidas.
Y el vector de movimiento, simplemente por rellenarlo, serán sólo [0, 0, 0, 0].
No tenemos ningún movimiento externo.
Eso es un poco confuso, porque en realidad hay movimiento en el propio sistema,
pero esto es más como un cambio externo del movimiento
como si alguien golpeará el objeto con una fuerza externa.
Así que es [0, 0, 0, 0], por favor no lo cambie.
P es la incertidumbre inicial,
y quiero que lo inicialice por lo que la incertidumbre de las coordenadas x,y es 0,
pero el término covarianza de las velocidades es 1000,
lo que indica que realmente no conocemos la velocidad inicial.

Spanish: 
Acabamos de conocer la posición inicial.
Quiero que ponga la matriz F.
Quiero que diseñe una matriz H que es una matriz de proyección
desde el espacio de estados de 4 dimensiones a 2 dimensiones,
reflejando el hecho de que sólo podemos observar las dos primeras variables de estado, x e y,
pero no las velocidades.
Quiero que definas la matriz de incertidumbre de la medición, que ahora es una 2x2
que tiene 0.1 en la diagonal principal como el ruido de medición.
Y esta es una matriz de identidad.
Una vez que diseñe todo esto, debe obtener la siguiente salida.
Así que cuando ejecuto esto, me sale esta salida
para mi ejemplo de 4 dimensionesa la coordenada x 10 y 0.
Y esto tiene sentido ya que estas secuencias de aquí
tenían como medición final 10 y 0; 5, 6, 7, 8, 9, 10, 10, 8, 6, 4, 2, 0.

Japanese: 
初期速度を本当に知らないという意味です
初期位置を知っているだけです
行列Fを入力してください
四次元の状態空間から二次元への
射影行列である行列Hを設計してください
最初の2つの状態変数x、yのみ観測でき
速度は観測できません
主対角線の0．1を観測ノイズとした
観測の不確実性の行列を
2×2の行列で定義してください
これは単位行列です
これらをすべて設計すると次の出力を得ます
では実行して出力を確認しましょう
私の四次元の例の結果ではxの座標が10、0です
この値はすでに設定された一連のmeasurementsが
最終的に10と0になることと一致します
つまり5、6、7、8、9、10、
及び10、8、6、4、2、0のようにです

English: 
We just know the initial position.
I want you to plug in the f matrix.
I want you to design an H matrix that's a projection matrix
from 4-dimensional state space to 2 dimensions,
reflecting the fact that we can only observe the first two state variables--x and y--
but not the velocities.
I want you to define the measurement uncertainty matrix, which now is a 2 x 2
that has 0.1 as the main diagonal as measurement noise.
This is an identity matrix over here.
Once you design all those, you should get the following output.
So when I run this, I get as an output
for my 4-dimensional example the x coordinates 10 and 0.
This makes sense given that these sequences over here
has a final measurement 10 and 0--5, 6, 7, 8, 9, 10--10, 8, 6, 4, 2, 0.

Japanese: 
このプログラミングで興味深い点は
速度が算出されることです
速度は約10ですが
これはΔtを0．1としたことと一致します
時間あたりのステップ10を10で割ると
この増分の1になります
2つ目の速度は－20で0．1を掛けると－2になります
この部分の10、8、6、4、2です
共分散行列Pも出力してください
ここにあるように要素は0のままです
主対角線を見ると不確実性はかなり減っています
座標の推定値は0．03で速度の推定値は0．1です
この数値が以前は1，000だったことを
思い出してください
2つ目の例は初期座標が－4と8です
measurementsは1、6、11、16となっています
x方向の増分は5のようです

English: 
The interesting thing that I want your program to produce is the velocities.
They are approximately 10, which makes sense given out delta-t of 0.1
gives us per time step a 10 divided by 10 equals 1 increment over here.
The second velocity is -20 multiplied by 0.1 gives us a -2.
You can see it over here--10, 8, 6, 4, and 2.
I also want you to output the covariance matrix,
which has certain elements that are still 0, like these guys over here.
We find that along the main diagonal our uncertainty has shrunk substantially.
It's 0.03 for the coordinate estimates and 0.1 for the velocity estimates.
Remember, this number over here was 1000 before.
Here is a second example where we have an initial coordinate of -4 and 8.
We can see the measurements 1, 6, 11, 16.
It seems the increments are in x direction 5.

Spanish: 
La cosa interesante que quiero que programes es producir las velocidades.
Son aproximadamente 10, lo cual tiene sentido dado un incremento de t de 0.1
nos da por el paso de tiempo un 10 dividido por 10 que es igual a un incremento de 1 por aquí.
Y la segunda velocidad es -20 multiplicado por 0,1 nos da -2.
Y usted lo puede ver por aquí 10, 8, 6, 4 y 2.
También quiero la salida de la matriz de covarianza,
que tiene la certeza de que algunos elementos son 0, como estos de aquí.
Y nos encontramos con que a lo largo de la diagonal principal nuestra incertidumbre se ha reducido sustancialmente.
Es 0.03 para las estimaciones de las coordenadas y 0.1 para las estimaciones de la velocidad.
Recuerde que este número de aquí era 1000 antes.
He aquí un segundo ejemplo en el que tenemos una coordenada inicial de -4 y 8.
Podemos ver las mediciones 1, 6, 11, 16.
Parece que los incrementos en dirección x son 5.

Spanish: 
En la dirección Y son -4; 8, 4, 0, -4, -8.
Si ahora ejecuta esto, obtengo para mi vector x aproximadamente 16, el número de aquí,
aproximadamente -8, el número de aquí.
Y estas son las velocidades, 50 y -40 aproximadamente,
que multiplicado por 0.1 da nuestro 5 y nuestro -4.
He aquí otro ejemplo. Estado inicial 1 y 19.
Usted puede ver que la primera coordenada no cambia en absoluto. Usted debe conseguir una velocidad de 0.
La segunda coordenada va 19, 17, 15, 13, y 11.
Al ejecutarlo nos da 1, que no cambia y 11.
Las velocidades son 0 y -20 para los decrementos de -2.
Y en la covarianza, vemos los valores a lo largo de las diagonal principal,
0.05, 0.05, 0.33, y 0.33 para las velocidades.
Hay certeza en los elementos fuera de la diagonal.

Japanese: 
y方向では4ずつ減少し
8、4、0、－4、－8となります
これを実行するとxベクトルが約16となり
この数値と一致します
yは約－8でここと同じです
こちらが速度で約50と約－40です
それぞれ0．1を掛けると増分5と－4です
さらに他の例も見てみます　初期状態が1と19です
最初の座標がまったく変わらないので
速度は0だと分かります
2つ目の座標は19、17、15、13、11と変化します
実行すると変化のない1と11を得ます
速度は0と2ずつ減少する－20です
共分散を見ると速度に対する主対角線の値が
0．05、0．05、0．33、0．33となっています
いくつか非対角要素があります

English: 
In the y direction they are -4--8, 4, 0, -4, -8.
If I now run this, I get for my x vector approximately 16--the number over here,
approximately -8--the number over here.
These are velocities--50 and -40 in approximation,
which multiplied with 0.1 is our plus 5 and our -4.
Here is yet another example. Initial state 1 and 19.
You can see the first coordinate doesn't change at all. You should get a velocity of 0.
The second coordinate goes 19, 17, 15, 13, and 11.
Running it gives us 1--unchanged--and 11.
Velocities are 0 and -20 for the decrements of -2.
Going into the covariance, we see values along the main diagonals--
0.05, 0.05, 0.33, and 0.33 for the velocities.
There are certain off-diagonal elements.

Japanese: 
今の結果があなたのコードの結果と
合うか確かめてください
ではこのmeasurementsのいくつかを
ノイズのある観測に変えましょう
方法の1つは2と0の間で振動する
観測を設定することです
カルマンフィルタは一定の速度を
仮定すると思い出してください
これらのmeasurementsは
一定の速度では説明することができません
観測ノイズが必要です
カルマンフィルタを再実行しましょう
フィルタは以下の値を出力するはずです
現在の状態として0．7
前のように11があり
ここにも速度の推定値が2つあります
実際にはx方向に
わずかな速度の－0．66があるとします
これはノイズのあるセンサ入力を行ったためです
共分散行列Pは前回と同じになるでしょう
measurementsによる影響を受けないためです
さて これらの行列を埋めることが課題です
頑張ってください

English: 
Make sure those all match what your code produces.
I can now change some of these measurements to make a noisy measurement.
One way to do this is to set an oscillating measurement between 2 and 0.
Remember that this Kalman filter assumes a fixed velocity.
There is no way to explain these measurements with a fixed velocity,
so there has to be measurement noise.
We can run the Kalman filter again.
Your filter should output the following values:
0.7 for the current state, 11 as before, and here are our two velocity estimates.
It actually believes there is a slight velocity of -0.66
in the x direction where we had noisy sensor input.
The covariance matrix would look exactly as before,
because it's not affected by the measurements themselves.

Spanish: 
Asegúrese de que todos coinciden con lo que el código produce.
Ahora puedo cambiar algunas de estas medidas para realizar una medición ruidosa.
Una forma de hacer esto es establecer una medición oscilante entre 2 y 0.
Recuerde que este filtro Kalman asume una velocidad fija.
No hay manera de explicar estas mediciones a una velocidad fija,
así que tiene que ser el ruido de medición.
Por lo tanto, ejecutamos de nuevo el filtro de Kalman.
El filtro muestra los siguientes valores:
0.7 en el estado actual, 11 como antes, y aquí están nuestras dos estimaciones de velocidad.
En realidad, cree que hay una ligera velocidad de -0.66
en la dirección x en el que la entrada del sensor tuvo ruido.
La matriz de covarianza debe ser exactamente igual que antes,
porque no se ve alterada por las propias medidas.
Así que su trabajo es rellenar estas matrices. ¡Buena suerte!

English: 
Your job is to fill in these various matrices. Good luck.
