diff --git a/electives/amr/autonomous-mobile-robots-cheatsheet.pdf b/electives/amr/autonomous-mobile-robots-cheatsheet.pdf index dddf336..10a7d3b 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/parts/01_kinematics/01_forward.tex b/electives/amr/parts/01_kinematics/01_forward.tex index 799b907..25a3c7a 100644 --- a/electives/amr/parts/01_kinematics/01_forward.tex +++ b/electives/amr/parts/01_kinematics/01_forward.tex @@ -10,7 +10,8 @@ $ \begin{bmatrix} } 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} +For 2D move in 3D space, last dim is sum of angles (or equiv). +The Jacobian of this $nD$ position is typically computed ($nD$ pos is a vec). +\bi{Jacobian}: see \ref{sec:ms-lin}. -\shortdefinition[Singularity] Loss of deg of Freed. $\det(\mat{J}(\vec{\theta})) = 0$ -% TODO: Determinant computation +\shortdefinition[Singularity] Loss of deg of Freedom $\det(\mat{J}(\vec{\theta})) = 0$ diff --git a/electives/amr/parts/01_kinematics/02_inverse.tex b/electives/amr/parts/01_kinematics/02_inverse.tex index bd48fee..10d287d 100644 --- a/electives/amr/parts/01_kinematics/02_inverse.tex +++ b/electives/amr/parts/01_kinematics/02_inverse.tex @@ -2,7 +2,7 @@ \begin{wrapfigure}[10]{r}{0.35\columnwidth} \includegraphics[width=0.35\columnwidth]{assets/inverse-kinematics.png} \end{wrapfigure} -\bi{Option}: Solve Forward Kinematics for angles.\\ +\bi{Option}: Solve FK for angles.\\ \bi{Better}: Law of cosine with polar coordinates. Compute angle using cosine rule, $\theta_1 = \varphi \pm \alpha$, $\theta_2 = \pm(\pi - \beta)$ (Positive for {\color{ForestGreen} Elbow Down}, Neg. for {\color{red} Elbow Up}) @@ -10,5 +10,5 @@ $\theta_1 = \varphi \pm \alpha$, $\theta_2 = \pm(\pi - \beta)$ \bi{Extension to 6R}: 1. Waist: spherical coords (2 sol.)\\ 2. 2 sols from 2R for shoulder + elbow\\ -3. Solve for wrist joints (no influence on pos) +3. Solve for wrist joints (no infl. on pos) 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 6e693d5..cb567e8 100644 --- a/electives/amr/parts/01_kinematics/05_rigid-body-dynamics.tex +++ b/electives/amr/parts/01_kinematics/05_rigid-body-dynamics.tex @@ -9,3 +9,11 @@ ${_B} \vec{v}_{CoM}$ vel. of CoM, ${_B}\omega$ rot. speed; both w.r.t. inert. frame {\scriptsize Legged robots don't need to maintain stability!} + +To determine dynamics: +\bi{(1)} Define control inputs (e.g. wheel speeds), +\bi{(2)} Assumptions / Simplifications about state \& inputs +\bi{(3)} List forces, torques, etc needed, +\bi{(4)} Express as func of states / inp +\bi{(5)} Reduce to the CoM +\bi{(6)} Plug into Newton-Euler eq combined with rigid body kinematics diff --git a/electives/amr/parts/01_kinematics/06_wheeled-robot.tex b/electives/amr/parts/01_kinematics/06_wheeled-robot.tex index be483b4..c0b1c1a 100644 --- a/electives/amr/parts/01_kinematics/06_wheeled-robot.tex +++ b/electives/amr/parts/01_kinematics/06_wheeled-robot.tex @@ -19,6 +19,7 @@ To compute $\vec{c}$ in $\vec{c} \cdot {_B}\vec{v}_{WB} = \omega$ $c_i = [\sin(\alpha + \beta) \div r, -\cos(\alpha + \beta) \div r, -\cos(\beta) \cdot l \div r]$ +\newpage \bi{Maneuverability} \begin{itemize} \item Deg. of Mobility: $\delta_m = 3 - $\#constrained directions @@ -26,7 +27,6 @@ $c_i = [\sin(\alpha + \beta) \div r, -\cos(\alpha + \beta) \div r, -\cos(\beta) \item Deg. of Maneuverability: $\delta_M = \delta_m + \delta_s$ \end{itemize} -\newpage \shade{ForestGreen}{Wheel Configurations} \includegraphics[width=1\columnwidth]{assets/wheel-config.png} @@ -64,3 +64,10 @@ $\vec{b}_s = {\scriptsize \begin{bmatrix} \textit{Turning}: $\Omega = (\omega_l r_l) / R_l\! =\! (\omega_r r_r) / R_r$, $R\! =\! v / \Omega$, $\Delta \theta\! =\! \Omega \Delta t$ \textbf{Discretized}: $\vec{x}_k = \vec{x}_{k - 1} + b_i$ with $i \in \{s, t\}$, respectively + +\textbf{Swedish Wheels}: Have 3 DoF, typ. (3 pcs) equally spaced on circle. +Typ. Param. each: $\alpha, \beta, \gamma$ ($z$, $x$, $y$ axes, oriented along $x$, $z$ up) + +\textbf{Wheel rot speed from movement} Typ. comp: $J \cdot \mat{R}(\theta) \cdot \vec{x} = \dot{\varphi}$, +with $\mat{R}(\theta) \cdot \vec{x}$ transform from base frame to robot frame. +% TODO: What's the second Jacobian from?? (See 2017 exam, question B.4) diff --git a/electives/amr/parts/02_Sensors-Actuators/00_intro.tex b/electives/amr/parts/02_Sensors-Actuators/00_intro.tex index acd91e8..81ce047 100644 --- a/electives/amr/parts/02_Sensors-Actuators/00_intro.tex +++ b/electives/amr/parts/02_Sensors-Actuators/00_intro.tex @@ -2,8 +2,8 @@ \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 (e.g. Intercept-Theorem). -Probabilistic M.M: use rand var in def, and s. \ref{sec:error-propagation} +Probabilistic M.M: use random variable in definition, and s. \ref{sec:error-propagation} -\bi{Motor encoders} Typ. 64-2048 incrm. per rev; Estim. rot +\bi{Motor encoders} Typ. 64-2048 increments per rev; Estimate rot \bi{Rolling-Shutter} Most CMOS sensors don't take full image at once, need time stamp for each row diff --git a/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex b/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex index cb6a9f9..a847392 100644 --- a/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex +++ b/electives/amr/parts/02_Sensors-Actuators/03_cameras.tex @@ -40,7 +40,7 @@ If p. in diff frame, e.g. $W$-frame then $\vec{u} = \mat{K}[\mat{R}_{CW}\; {_C}\ (Projection) $\vec{x'} = \vec{p}({_C}\vec{t}_P) = t_z^{-1} \cdot [t_x, t_y]^\top$ (Distortion model) $r^2 = x'^2 + y'^2$, $\vec{x''} = \vec{d}(\vec{x'})$\\ -$\vec{x''} = \! \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} \vec{x'} +$\vec{x''} = \! \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}; \vec{x'} + {\scriptsize \begin{bmatrix}