Clase 11
Semana 12 - 02/06/2025
Cálculo de los cambios de posición de vehículos con ruedas, utilizando información proveniente de sensores
En Robótica móvil se utiliza para estimar (\(\neq\) determinar) la posición relativa a una posición inicial (localización relativa)
Implementación “barata” pero tiene mala precisión a largo plazo (acumula error)
\[ \boldsymbol{\xi}(t_0) = \begin{bmatrix} x_0 \\ y_0 \\ \theta_0 \end{bmatrix} \quad \textsf{Encontrar: } \, \boldsymbol{\xi}(t_0 + \Delta t) \; \forall \; \Delta t > 0 \]
Cuando \(\Delta t\) es lo suficientemente chico, se puede considerar que la velocidad es constante en el intervalo
Por lo tanto se puede aproximar en un proceso iterativo usando ecuaciones de movimiento uniforme
\[ \boldsymbol{\xi}(t_{k+1}) \approx \boldsymbol{\xi}(t_k) + \dot{\boldsymbol{\xi}}(t_k)(t_{k+1}-t_{k}) \]
La más clásica es a través de encoders en las ruedas para obtener la velocidad de las mismas
Usando el modelo cinemático directo (que relaciona la velocidad de las ruedas con la pose del vehículo):
\[ \require{color} {}^{O} \boldsymbol{\dot\xi}_{R} (t_{k}) = \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{\dot{x}_k} \\ \textcolor{ForestGreen}{\dot{y}_k} \\ \textcolor{Orange}{\dot\theta_k} \end{bmatrix}_{R}} = \begin{bmatrix} \cos{\textcolor{Orange}{\theta_k}} & 0 \\ \sin{\textcolor{Orange}{\theta_k}} & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} \frac{r}{2} & \frac{r}{2}\\ \frac{r}{\textcolor{Gray}{b}} & - \frac{r}{\textcolor{Gray}{b}} \end{bmatrix} \begin{bmatrix} \textcolor{Plum}{\dot\phi_{R_k}} \\ \textcolor{Plum}{\dot\phi_{L_k}} \end{bmatrix} \]
\[ {}^{O} \boldsymbol{\xi}_{R} (t_{k+1}) = \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k+1}} \\ \textcolor{ForestGreen}{{y}_{k+1}} \\ \textcolor{Orange}{\theta_{k+1}} \end{bmatrix}_{R}} \approx \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k}} \\ \textcolor{ForestGreen}{{y}_{k}} \\ \textcolor{Orange}{\theta_{k}} \end{bmatrix}_{R}} + \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{\dot{x}_k} \\ \textcolor{ForestGreen}{\dot{y}_k} \\ \textcolor{Orange}{\dot\theta_k} \end{bmatrix}_{R}} (t_{k+1}-t_{k}) \]
\[ \begin{align} \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k+1}} \\ \textcolor{ForestGreen}{{y}_{k+1}} \\ \textcolor{Orange}{\theta_{k+1}} \end{bmatrix}_{R}} &\approx \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k}} \\ \textcolor{ForestGreen}{{y}_{k}} \\ \textcolor{Orange}{\theta_{k}} \end{bmatrix}_{R}} + \begin{bmatrix} \cos{\textcolor{Orange}{\theta_k}} & 0 \\ \sin{\textcolor{Orange}{\theta_k}} & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} \frac{r}{2} & \frac{r}{2}\\ \frac{r}{\textcolor{Gray}{b}} & - \frac{r}{\textcolor{Gray}{b}} \end{bmatrix} \begin{bmatrix} \textcolor{Plum}{\dot\phi_{R_k}} \\ \textcolor{Plum}{\dot\phi_{L_k}} \end{bmatrix} (t_{k+1}-t_{k}) \\[1em] \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k+1}} \\ \textcolor{ForestGreen}{{y}_{k+1}} \\ \textcolor{Orange}{\theta_{k+1}} \end{bmatrix}_{R}} &\approx \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k}} \\ \textcolor{ForestGreen}{{y}_{k}} \\ \textcolor{Orange}{\theta_{k}} \end{bmatrix}_{R}} + \begin{bmatrix} \cos{\textcolor{Orange}{\theta_k}} & 0 \\ \sin{\textcolor{Orange}{\theta_k}} & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} \frac{r}{2} & \frac{r}{2}\\ \frac{r}{\textcolor{Gray}{b}} & - \frac{r}{\textcolor{Gray}{b}} \end{bmatrix} \begin{bmatrix} \frac{\textcolor{Plum}{\Delta \phi_{R_k}}}{\Delta t_k} \\ \frac{\textcolor{Plum}{\Delta \phi_{L_k}}}{\Delta t_k} \end{bmatrix} (\Delta t_k) \end{align} \]
\[ \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k+1}} \\ \textcolor{ForestGreen}{{y}_{k+1}} \\ \textcolor{Orange}{\theta_{k+1}} \end{bmatrix}_{R}} \approx \sideset{^{O}}{}{\begin{bmatrix} \textcolor{ForestGreen}{{x}_{k}} \\ \textcolor{ForestGreen}{{y}_{k}} \\ \textcolor{Orange}{\theta_{k}} \end{bmatrix}_{R}} + \begin{bmatrix} \cos{\textcolor{Orange}{\theta_k}} & 0 \\ \sin{\textcolor{Orange}{\theta_k}} & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} \frac{r}{2} & \frac{r}{2}\\ \frac{r}{\textcolor{Gray}{b}} & - \frac{r}{\textcolor{Gray}{b}} \end{bmatrix} \begin{bmatrix} \textcolor{Plum}{\phi_{R_k}} \\ \textcolor{Plum}{\phi_{L_k}} \end{bmatrix} \]
\[ \begin{cases} \textcolor{ForestGreen}{{x}_{k+1}} \approx \textcolor{ForestGreen}{{x}_{k}} + \frac{r}{2} (\textcolor{Plum}{\phi_{R_k}} + \textcolor{Plum}{\phi_{L_k}}) \cos{\textcolor{Orange}{\theta_k}} \\[.5em] \textcolor{ForestGreen}{{y}_{k+1}} \approx \textcolor{ForestGreen}{{y}_{k}} + \frac{r}{2} (\textcolor{Plum}{\phi_{R_k}} + \textcolor{Plum}{\phi_{L_k}}) \sin{\textcolor{Orange}{\theta_k}} \\[.5em] \textcolor{Orange}{\theta_{k+1}} \approx \textcolor{Orange}{\theta_{k}} + \frac{r}{\textcolor{Gray}{b}} (\textcolor{Plum}{\phi_{R_k}} - \textcolor{Plum}{\phi_{L_k}}) \end{cases} \]
\[ {}^{O} \boldsymbol{\xi}_{R} (t_{k+1}) = \begin{bmatrix} \textcolor{ForestGreen}{{x}_{k+1}}\\[.5em] \textcolor{ForestGreen}{{y}_{k+1}}\\[.5em] \textcolor{Orange}{\theta_{k+1}} \end{bmatrix} \approx \begin{bmatrix} \textcolor{ForestGreen}{{x}_{k}} + \textcolor{Blue}{\Delta d_{k}} \cos{\textcolor{Orange}{\theta_k}} \\[.5em] \textcolor{ForestGreen}{{y}_{k}} + \textcolor{Blue}{\Delta d_{k}} \sin{\textcolor{Orange}{\theta_k}} \\[.5em] \textcolor{Orange}{\theta_{k}} + \textcolor{Blue}{\Delta \theta_k} \end{bmatrix} \]
Problemas
Ejercicios 9 al 12
Robótica - TUAR - FICH - UNL