diff --git a/electives/amr/autonomous-mobile-robots-cheatsheet.pdf b/electives/amr/autonomous-mobile-robots-cheatsheet.pdf index 0c1cb87..93567cc 100644 Binary files a/electives/amr/autonomous-mobile-robots-cheatsheet.pdf and b/electives/amr/autonomous-mobile-robots-cheatsheet.pdf differ diff --git a/electives/amr/autonomous-mobile-robots-cheatsheet.tex b/electives/amr/autonomous-mobile-robots-cheatsheet.tex index 4e09eae..7fa7f5f 100644 --- a/electives/amr/autonomous-mobile-robots-cheatsheet.tex +++ b/electives/amr/autonomous-mobile-robots-cheatsheet.tex @@ -49,6 +49,7 @@ \input{parts/00_basics/00_probability.tex} \input{parts/00_basics/01_measurement-models.tex} \input{parts/00_basics/02_trigonometry.tex} +\input{parts/00_basics/03_error-propagation.tex} \section{Locomotion \& Kinematics} \input{parts/01_kinematics/00_intro.tex} diff --git a/electives/amr/parts/00_basics/01_measurement-models.tex b/electives/amr/parts/00_basics/01_measurement-models.tex index f2f798d..73dd5ff 100644 --- a/electives/amr/parts/00_basics/01_measurement-models.tex +++ b/electives/amr/parts/00_basics/01_measurement-models.tex @@ -2,5 +2,5 @@ $\vec{z} = \vec{b}_C + s\mat{M} {_S}\vec{\omega} + \vec{b} + \vec{n} + \vec{o}$: $\vec{b}_C$ const bias, $\vec{b}$ time bias, $\mat{M}$ missal., $\vec{n} \sim \cN(\vec{0}, \mat{R})$ noise, ${_S}\omega$ corr. meas., $\vec{o}$ other infl. -\hl{Finding}: Is in $W$-frame, so may need $\mat{T}_{BW}$ or $\mat{R}_{BW}$. -Other model: $\vec{z} = \vec{h}(\vec{x}) + \vec{v}$, $\vec{h}(\vec{x})$ is pos of rob. dep. model +\hl{Finding}: Is in $W$-frame: may need $\mat{T}_{BW}$ or $\mat{R}_{BW}$. +Also see Sec.~\ref{sec:sensors} diff --git a/electives/amr/parts/00_basics/03_error-propagation.tex b/electives/amr/parts/00_basics/03_error-propagation.tex new file mode 100644 index 0000000..2870350 --- /dev/null +++ b/electives/amr/parts/00_basics/03_error-propagation.tex @@ -0,0 +1,3 @@ +\subsection{Error Propagation} +For functions $\vec{f}(\vec{x}) = \mat{A}\vec{x}$, the \bi{linear error propagation} +is given by $\Sigma^f = A \Sigma^x \A^\top$, with $\Sigma^x$ the uncertanty of $\vec{x}$ (covariance mat.) diff --git a/electives/amr/parts/02_Sensors-Actuators/00_intro.tex b/electives/amr/parts/02_Sensors-Actuators/00_intro.tex index f4d31ca..500cfca 100644 --- a/electives/amr/parts/02_Sensors-Actuators/00_intro.tex +++ b/electives/amr/parts/02_Sensors-Actuators/00_intro.tex @@ -1,5 +1,7 @@ -\bi{Meas. Model}: $\vec{z} = \vec{h}(\vec{x}) + \vec{v} + \vec{o}$, with $\vec{h}(\vec{x})$ deterministic mean, -$\vec{v}$ zero-mean noise, $\vec{o}$ unmodelled effects, $\vec{x}$ true state +\label{sec:sensors} +\bi{Meas. Model}: $\vec{z} = \vec{h}(\vec{x}) + \vec{v} + \vec{o}$, with $\vec{h}(\vec{x})$ determ. mean, +$\vec{v}$ zero-mean noise, $\vec{o}$ unmodelled effects, $\vec{x}$ true state. +$\vec{h}(\vec{x})$ describes how to compute $x$ from known values. \bi{Motor encoders} Typ. 64-2048 incrm. per rev; Estim. rot diff --git a/electives/amr/parts/02_Sensors-Actuators/02_actuators.tex b/electives/amr/parts/02_Sensors-Actuators/02_actuators.tex index bd7e7ba..977a7cb 100644 --- a/electives/amr/parts/02_Sensors-Actuators/02_actuators.tex +++ b/electives/amr/parts/02_Sensors-Actuators/02_actuators.tex @@ -13,5 +13,5 @@ (Induced V, Faraday) $U_i = k_i \omega$ -(Mech. pow. eq. el. pow)\\ +(Mech. pow. $=$ electric power)\\ $U_i I_a = k_i \omega I_a = T_\omega = k_T I_a \omega \Rightarrow k_i = k_T =: k$ diff --git a/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex b/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex index 70ef6d7..cb6a9f9 100644 --- a/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex +++ b/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex @@ -7,12 +7,10 @@ $\begin{bmatrix} \begin{bmatrix} x & y \end{bmatrix}^\top$ -with $f$ the distance to the lens and $z$ the full distance +with $f$ the distance to the lens and $z$ the distance from object -\newpage $u = c_u + f \cdot x'$ and $v = c_v + f \cdot y'$ where $x' = t_x \div t_z$ and $y' = t_y \div t_z$ -where $u, v$ are the pixel $x, y$ coords, $\vec{c} = [c_u, c_v]^\top$ is optical centre of cam in pixel coords, $f$ scale factor, -% and $\vec{{_C}\vec{t}_P} = [t_x, t_y, t_z]^\top$ +where $u, v$ are the pixel $x, y$ coords, $\vec{c} = [c_u, c_v]^\top$ is optical centre of cam in pixel coords, $f$ scale factor. The full proj: $\vec{u} = @@ -34,7 +32,7 @@ $\vec{u} = } = \mat{K}\; {_C}\vec{t}_P$ -If p. in diff frame ${_W} \vec{t}_P$, then $\vec{u} = \mat{K}[\mat{R}_{CW}\; {_C}\vec{t}_{CW}] {_W}\vec{t}_P$ +If p. in diff frame, e.g. $W$-frame then $\vec{u} = \mat{K}[\mat{R}_{CW}\; {_C}\vec{t}_{CW}] {_W}\vec{t}_P$ \subsubsection{Pinhole Camera Projection with distortion} \shortdefinition Model: $\vec{u} = \vec{k}(\vec{d}(\vec{p}({_C}\vec{t}_P)))$, with ($\vec{c}$ as above): diff --git a/electives/amr/parts/03_multi-sensor-estimation/02_nonlinear-least-squares.tex b/electives/amr/parts/03_multi-sensor-estimation/02_nonlinear-least-squares.tex index f082ada..204c51c 100644 --- a/electives/amr/parts/03_multi-sensor-estimation/02_nonlinear-least-squares.tex +++ b/electives/amr/parts/03_multi-sensor-estimation/02_nonlinear-least-squares.tex @@ -2,6 +2,7 @@ Find $\vec{x}^* = \text{argmax}\; \P(\vec{x} | \vec{z}) = \argmin{}(-\log(\P(\vec{x}|\vec{z})))$ \bi{Gauss-Newton} % TODO: Do we really need these? If so, use from NumCS (much simpler notation) +% TODO: Error propagation laws \bi{Levenberg-Marquardt}