diff --git a/electives/amr/autonomous-mobile-robots-cheatsheet.pdf b/electives/amr/autonomous-mobile-robots-cheatsheet.pdf index 4731f22..f1df9d9 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 7fa7f5f..d320204 100644 --- a/electives/amr/autonomous-mobile-robots-cheatsheet.tex +++ b/electives/amr/autonomous-mobile-robots-cheatsheet.tex @@ -25,7 +25,7 @@ \renewcommand{\vec}[1]{\bm{#1}} \newcommand{\mat}[1]{\bm{#1}} -\setupCheatSheet{Autonomous Mobile Robots} +\setupCheatSheet[0.5cm]{Autonomous Mobile Robots} \begin{document} diff --git a/electives/amr/parts/00_basics/02_trigonometry.tex b/electives/amr/parts/00_basics/02_trigonometry.tex index 36ab3cd..b9eb48e 100644 --- a/electives/amr/parts/00_basics/02_trigonometry.tex +++ b/electives/amr/parts/00_basics/02_trigonometry.tex @@ -2,8 +2,7 @@ \shortdefinition[Rule of cosines] $c^2 = a^2 + b^2 - 2ab \cos(\gamma)$ % TODO: Add convenient results (such as cos2 + sin2 = 1) -\shortdefinition[Orthogonal vec] $v^\top w = 0$ +\shortdefinition[Orthogonal vec] $v^\top w = 0$; +\shortdefinition[Vec Line Eq] $\vec{p} + \lambda \vec{d}$ \shortdefinition[Determinant] $ad - bc$ for mat $[a, b; c, d]$ - -\shortdefinition[Vec Line Eq] $\vec{p} + \lambda \vec{d}$ diff --git a/electives/amr/parts/01_kinematics/05_rigid-body-dynamics.tex b/electives/amr/parts/01_kinematics/05_rigid-body-dynamics.tex index 29c09e5..6e693d5 100644 --- a/electives/amr/parts/01_kinematics/05_rigid-body-dynamics.tex +++ b/electives/amr/parts/01_kinematics/05_rigid-body-dynamics.tex @@ -1,6 +1,6 @@ \subsection{Rigid Body Dynamics} \label{sec:rigid-body-dynamics} -\shortdefinition[Newton II] For fin. body w/ mass $m$ and inertia mat. $I$, with force $\vec{F}$ and torque $\vec{T}$ on \bi{Centre of Mass} (CoM), expressed in body frame: +\shortdefinition[Newton II] For fin. body w/ mass $m$ and inertia mat. $I$, with force $\vec{F}$ and torque $\vec{T}$ on \bi{Centre of Mass} (CoM), in body frame: \begin{align*} {_B}\vec{F} & = \sum {_B}\vec{F}_i = m({_B} \vec{\dot{v}}_{CoM}) + m_B \vec{\omega} \times {_B}\vec{v}_{CoM} \\ {_B}\vec{T} & = \sum {_B}\vec{T}_i = \mat{I}({_B} \vec{\dot{\omega}}) + {_B} \vec{\omega} \times \mat{I}_B\vec{\omega} diff --git a/electives/amr/parts/01_kinematics/06_wheeled-robot.tex b/electives/amr/parts/01_kinematics/06_wheeled-robot.tex index 5605107..be483b4 100644 --- a/electives/amr/parts/01_kinematics/06_wheeled-robot.tex +++ b/electives/amr/parts/01_kinematics/06_wheeled-robot.tex @@ -6,10 +6,12 @@ \bi{Wheel constraints} $v_i = \omega_i r_i$ ($r_i$ constraints) \begin{itemize} - \item \textit{Driving straight} all $\vec{v}$ equal + \item \textit{Driving straight} all $\vec{v}$ equal (ICR: R.Cent.) \item \textit{Turning} Wheel axis must intersect the \bi{Instant Centre of Rotation} (ICR) of vehicle, speeds: $v_i \div R_i = \Omega$ ($R_i$ = dist. wheel-ICR; $\Omega$: vehicle rotation rate (around ICR)) \end{itemize} +To compute ICR, use $v_i \div R_i = \Omega$ and similarity. + Below: $\alpha$, $l$ pos in frame, $\beta$ rot at that pos ($z$-ax). To compute $\vec{c}$ in $\vec{c} \cdot {_B}\vec{v}_{WB} = \omega$ (For multiple wheels, construct mat. from this) diff --git a/electives/amr/parts/03_multi-sensor-estimation/05_kalman-filter.tex b/electives/amr/parts/03_multi-sensor-estimation/05_kalman-filter.tex index 5ae652e..45fe433 100644 --- a/electives/amr/parts/03_multi-sensor-estimation/05_kalman-filter.tex +++ b/electives/amr/parts/03_multi-sensor-estimation/05_kalman-filter.tex @@ -1,4 +1,4 @@ -\subsection{Kalman Filtear (KF)} +\subsection{Kalman Filter (KF)} Bayes Filter for Gauss. dist of R.V. \& linear meas. model. Initial state $\vec{x}_0 \sim \cN(\hat{\vec{x}}, \mat{P}_0)$, $\mat{P}_0$ previous covariance; @@ -10,8 +10,8 @@ $\vec{x}_k = \mat{F}\vec{x}_{k - 1} + \mat{G}\vec{u}_k + \mat{L}\vec{w}_k$ with \end{itemize} \bi{Update} Lin. meas.: $\tilde{\vec{z}}_k = \mat{H}\vec{x}_k + \vec{v}_k$ with $\vec{v_k} \sim \cN(\vec{0}, \mat{R}_k)$: \begin{itemize} - \item \bi{Meas. residual}: $\vec{y}_k = \tilde{\vec{z}}_k - \mat{H} \hat{\vec{x}}_{k | k - 1}$ - \item \bi{Resid. Cov}: $\mat{S}_k = \mat{H}\mat{P}_{k | k - 1} \mat{H}^\top \mat{R}_k$ + \item \bi{Measurement residual}: $\vec{y}_k = \tilde{\vec{z}}_k - \mat{H} \hat{\vec{x}}_{k | k - 1}$ + \item \bi{Residual Covariance}: $\mat{S}_k = \mat{H}\mat{P}_{k | k - 1} \mat{H}^\top \mat{R}_k$ \item \bi{Kalman gain}: $\mat{K}_k = \mat{P}_{k | k - 1} \mat{H}^\top \mat{S}_k^{-1}$ \item \bi{Updated mean}: $\hat{\vec{x}}_{k | k} = \hat{\vec{x}}_{k | k - 1} + \mat{K}_k \vec{y}_k$ \item \bi{Updated Cov.}: $\mat{P}_{k | k} = (\mat{I} - \mat{K}_k \mat{H}) \mat{P}_{k | k - 1}$ diff --git a/electives/amr/parts/03_multi-sensor-estimation/06_extended-kalman-filter.tex b/electives/amr/parts/03_multi-sensor-estimation/06_extended-kalman-filter.tex index 0f87c7a..48f4e23 100644 --- a/electives/amr/parts/03_multi-sensor-estimation/06_extended-kalman-filter.tex +++ b/electives/amr/parts/03_multi-sensor-estimation/06_extended-kalman-filter.tex @@ -1,14 +1,14 @@ -\subsection{Extended Kalman Filater (EKF)} +\subsection{Extended Kalman Filter (EKF)} Non-l. state trans. model $\vec{x}_k = \vec{f}(\vec{x}_{k - 1}, \vec{u}_k, \vec{w}_k)$ as above: \begin{itemize} \item \bi{Mean}: $\hat{\vec{x}}_{k | k - 1} = \vec{f}(\hat{\vec{x}}_{k - 1 | k - 1}, \vec{u}_k)$ - \item \bi{Cov.}: $\mat{P}_{k | k - 1} = \mat{F}_k \mat{P}_{k - 1 | k - 1} \mat{F}_k^\top + \mat{L}_k \mat{Q}_k \mat{L}_k^\top$\\ + \item \bi{Covariance}: $\mat{P}_{k | k - 1} = \mat{F}_k \mat{P}_{k - 1 | k - 1} \mat{F}_k^\top + \mat{L}_k \mat{Q}_k \mat{L}_k^\top$\\ With $\mat{F}_k$ linearisation $\frac{\partial \vec{f}}{\partial \vec{x}}$ and $\mat{L}_k$ lin. $\frac{\partial \vec{f}}{\partial \vec{w}}$ \end{itemize} -\bi{Update} N-Lin. meas.: $\tilde{\vec{z}}_k = \vec{h}(\vec{x}_k) + \vec{v}_k$: +\bi{Update} Non-Linear meas.: $\tilde{\vec{z}}_k = \vec{h}(\vec{x}_k) + \vec{v}_k$: \begin{itemize} \item \bi{Meas. residual}: $\vec{y}_k = \tilde{\vec{z}}_k - \vec{h}(\hat{\vec{x}}_{k | k - 1})$ \end{itemize} -Difference to above: $\mat{H}$ becomes $\mat{H}_k$, and $\mat{H}^\top$ is $\mat{H}_k^\top$ +Difference to KF: $\mat{H}$ becomes $\mat{H}_k$, and $\mat{H}^\top$ is $\mat{H}_k^\top$ % TODO: Consider adding examples diff --git a/electives/amr/parts/05_planning-control/01_motion-planning-exploration/02_rrt.tex b/electives/amr/parts/05_planning-control/01_motion-planning-exploration/02_rrt.tex index f669b81..b5e02db 100644 --- a/electives/amr/parts/05_planning-control/01_motion-planning-exploration/02_rrt.tex +++ b/electives/amr/parts/05_planning-control/01_motion-planning-exploration/02_rrt.tex @@ -34,7 +34,7 @@ Extension to RRT* to make path better: \State $x_{\min} \gets$ \Call{neighbours}{Graph, $x_f$, $R$} \State $c_{\min} \gets$ \Call{cost}{$x_n$} + \Call{edgeCost}{$x_n, x_f$} \For{each $x_{\text{near}}$ in $X_\text{near}$} - \If{\Call{edgeCollisionFree}{$x_\text{near}, x_f$} and \Call{cost}{$x_\text{near}$} + \Call{edgeCost}{$x_\text{near}, x_f$} $< c_{\min}$} + \If{\Call{edgeCollisionFree}{$x_\text{near}, x_f$} and\\ \Call{cost}{$x_\text{near}$} + \Call{edgeCost}{$x_\text{near}, x_f$} $< c_{\min}$} \State \Call{insertEdge}{\texttt{Graph}, $x_f, x_{\text{near}}$} \State $x_\text{parent} \gets$ \Call{parent}{\texttt{Graph}, $x_{\text{near}}$} \State \Call{removeEdge}{\texttt{Graph}, $x_\text{parent}, x_{\text{near}}$}