\subsection{Wheeled robot Kinematics} \begin{wrapfigure}[7]{r}{0.2\columnwidth} \includegraphics[width=0.2\columnwidth]{assets/wheel-constraints.png} \end{wrapfigure} \bi{Non-holonomic} systems \textbf{not integrable}, no inst. move in every direct. \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) 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} \item Deg. of Mobility: $\delta_m = 3 - $\#constrained directions \item Deg. of Steerability: $\delta_s = $\#steerable wheels \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} \begin{scriptsize} \begin{tabular}{llllll} Bicyle & Tricycle & Ackermann & Diff. Drive & Two-Steer & Three-Steer \\ $\delta_m = 1$ & $\delta_m = 1$ & $\delta_m = 0$ & $\delta_m = 2$ & $\delta_m = 1$ & $\delta_m = 0$ \\ $\delta_s = 1$ & $\delta_s = 1$ & $\delta_s = 2$ & $\delta_s = 0$ & $\delta_s = 2$ & $\delta_s = 3$ \\ $\delta_M = 2$ & $\delta_M = 2$ & $\delta_M = 2$ & $\delta_M = 2$ & $\delta_M = 3$ & $\delta_M = 3$ \\ \end{tabular} \end{scriptsize} \shortdefinition[Differential Drive Kinematics] \bi{State vec} $\vec{x} = [x_1, x_2, \theta]^\top$, \bi{Inputs} $\vec{u} = [\omega_l, \omega_r]^\top$, radius of right (left) wheel $r_r$ ($r_l$), $w$ width of robot \bi{Gen. eq. of Motion} $\dot{x}_1 = v\cos(\theta)$, $\dot{x}_2 = v\sin(\theta)$, $\dot{\theta} = \Omega$, with $v = 0.5\cdot(\omega_l r_l + \omega_r + r_r)$, $\Omega = \frac{\omega_r r_r - \omega_l r_l}{w}$ % TODO: Consider adding wheel constraints (planar) here as well (from W05 slides) \textit{Straight}: $v = \omega_l r_l = \omega_r r_r$, $\Omega = 0$, $D = v\Delta t$.\\ $\vec{b}_s = {\scriptsize \begin{bmatrix} D \cos(\theta) \\ D \sin(\theta) \\ 0 \end{bmatrix}} \quad \vec{b}_t = {\scriptsize \begin{bmatrix} R(\sin(\Delta \theta + \theta) - \sin(\theta)) \\ -R(\cos(\Delta \theta + \theta) - \cos(\theta)) \\ \Delta \theta \end{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