diff --git a/electives/amr/autonomous-mobile-robots-cheatsheet.pdf b/electives/amr/autonomous-mobile-robots-cheatsheet.pdf index 38d850d..0c1cb87 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 30003b8..4e09eae 100644 --- a/electives/amr/autonomous-mobile-robots-cheatsheet.tex +++ b/electives/amr/autonomous-mobile-robots-cheatsheet.tex @@ -1,4 +1,4 @@ -\documentclass{article} +\documentclass[9pt]{extarticle} \PassOptionsToPackage{skip=0pt}{parskip} \input{~/projects/latex/janishutz-helpers.tex} @@ -16,6 +16,7 @@ \renewcommand{\theoremShortNamingEN}{Thm} \renewcommand{\descriptorNameDisplay}[1]{\textbf{#1}} +\renewcommand{\backgroundPadding}{1pt} \fboxsep 1pt \fboxrule 0.1pt @@ -47,8 +48,7 @@ \section{Introduction} \input{parts/00_basics/00_probability.tex} \input{parts/00_basics/01_measurement-models.tex} -% TODO: Add this (especially law of cosines) -% \input{parts/00_basics/02_trigonometry.tex} +\input{parts/00_basics/02_trigonometry.tex} \section{Locomotion \& Kinematics} \input{parts/01_kinematics/00_intro.tex} @@ -86,6 +86,7 @@ \input{parts/04_vision/04_dense-tracking_loop-closure.tex} % \input{parts/04_vision/} +% TODO: Probably remove pseudocode \section{Planning \& Control} \input{parts/05_planning-control/00_feedback-control/00_siso-mimo.tex} \input{parts/05_planning-control/00_feedback-control/01_pid.tex} diff --git a/electives/amr/parts/00_basics/02_trigonometry.tex b/electives/amr/parts/00_basics/02_trigonometry.tex index 33a8064..95aaef5 100644 --- a/electives/amr/parts/00_basics/02_trigonometry.tex +++ b/electives/amr/parts/00_basics/02_trigonometry.tex @@ -1,3 +1,7 @@ -\subsection{Trigonometry} -% TODO: Cosine rule (at least), probably also sine rule. +\subsection{Trigonometry \& Linear Algebra} +\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[Determinant] $ad - bc$ for mat $[a, b; c, d]$ diff --git a/electives/amr/parts/01_kinematics/01_forward.tex b/electives/amr/parts/01_kinematics/01_forward.tex index 07054c2..799b907 100644 --- a/electives/amr/parts/01_kinematics/01_forward.tex +++ b/electives/amr/parts/01_kinematics/01_forward.tex @@ -1,15 +1,16 @@ \subsection{Forward Kinematics (FK)} -$\mat{T}_{WB_n}(\vec{\theta}) = \mat{T}_{WB_0} \mat{T}_{B_0B_1}(\theta_1) \cdots \mat{T}_{B_{n - 1}B_n}(\theta_n)$.\\ -For 2R system: -${_W}\vec{t}_{WE} =$ +$\mat{T}_{WB_n}(\vec{\theta}) = \mat{T}_{WB_0} \mat{T}_{B_0B_1}(\theta_1) \cdots \mat{T}_{B_{n - 1}B_n}(\theta_n)$. + +For 2R system: ${_W}\vec{t}_{WE} =$ {\scriptsize $ \begin{bmatrix} L_1 \cos(\theta_1) + L_2 \cos(\theta_1 + \theta_2) \\ L_1 \sin(\theta_1) + L_2 \sin(\theta_1 + \theta_2) \end{bmatrix}$\\ } -Similar for $n$R sys (more angles). Wspc $W$ $\theta_1, \theta_2 \in [-\pi, \pi]$. -Last dim may be sum of angles. Jacobian: see \ref{sec:ms-lin} +Workspace $W$: $\theta_1, \theta_2 \in [-\pi, \pi]$. +Similar for $n$R sys (more angles, more lengths). +For 2D move in 3D space, last dim is sum of angles (or equiv). \bi{Jacobian}: see \ref{sec:ms-lin} \shortdefinition[Singularity] Loss of deg of Freed. $\det(\mat{J}(\vec{\theta})) = 0$ % TODO: Determinant computation diff --git a/electives/amr/parts/01_kinematics/06_wheeled-robot.tex b/electives/amr/parts/01_kinematics/06_wheeled-robot.tex index 32ead15..5605107 100644 --- a/electives/amr/parts/01_kinematics/06_wheeled-robot.tex +++ b/electives/amr/parts/01_kinematics/06_wheeled-robot.tex @@ -4,13 +4,18 @@ \end{wrapfigure} \bi{Non-holonomic} systems \textbf{not integrable}, no inst. move in every direct. -\bi{Wheel constraints} $v_i = \omega_i r_i$ - +\bi{Wheel constraints} $v_i = \omega_i r_i$ ($r_i$ constraints) \begin{itemize} \item \textit{Driving straight} all $\vec{v}$ equal - \item \textit{Turning} Wheel axis must intersect the \bi{Instant Centre of Rotation} (ICR), - speeds: $v_i \div R_i = \Omega$ ($R_i$ = dist. wheel-ICR; $\Omega$: vehicle body rotation rate) + \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} +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) + +$c_i = [\sin(\alpha + \beta) \div r, -\cos(\alpha + \beta) \div r, -\cos(\beta) \cdot l \div r]$ + \bi{Maneuverability} \begin{itemize} diff --git a/electives/amr/parts/03_multi-sensor-estimation/00_linearization.tex b/electives/amr/parts/03_multi-sensor-estimation/00_linearization.tex index b3c8e4a..e23ef9f 100644 --- a/electives/amr/parts/03_multi-sensor-estimation/00_linearization.tex +++ b/electives/amr/parts/03_multi-sensor-estimation/00_linearization.tex @@ -2,7 +2,7 @@ \label{sec:ms-lin} $\vec{f}(\vec{x}) \approx \vec{f}(\vec{\overline{x}}) + \mat{J}_{\vec{f}} \big|_{x = \overline{x}}(\vec{x} - \vec{\overline{x}})$, $f'$, no vec in 1D; $\vec{\overline{x}}$ lin. p. -\shortdefinition[Jac.] $\mat{J}_{\vec{f}}$ rows for eq of $\vec{f}$ cols for vars of each eq. +\shortdefinition[Jac.] $\mat{J}_{\vec{f}}$ rows for eq of $\vec{f}$; cols for vars of each eq. Part. diff; Approx. using finite differences $\frac{f(\overline{x} + h) - f(\overline{x})}{h}$,\\ or central differences (vector of $\frac{\vec{f}(\vec{\overline{x}}) + h_i \vec{e_i}}{h_i}$, with $\vec{e_i}$ unit vec)