Cinemática diferencial de manipuladores seriales

BE3027 - Robótica Médica

¿Qué tenemos hasta ahora?

\mathbf{q}
\mathcal{K}\left(\mathbf{q}\right) \subseteq {^B}\mathbf{T}_E(\mathbf{q})
\mathbf{q}
\mathcal{K}\left(\mathbf{q}\right) \subseteq {^B}\mathbf{T}_E(\mathbf{q})
\mathcal{K}:\mathcal{C}\to \mathcal{T}

cinemática directa

mapeo útil, pero impráctico

¿Qué ocurre en una aplicación real?

mapeo útil, pero impráctico

¿Qué ocurre en una aplicación real?

especificamos la tarea \(\mathcal{T}\)

¿Cómo debe ejecutarla el robot? \(\mathcal{C}\)

mapeo útil, pero impráctico

¿Qué ocurre en una aplicación real?

especificamos la tarea \(\mathcal{T}\)

¿Cómo debe ejecutarla el robot? \(\mathcal{C}\)

¿Cuál es el mapeo que realmente queremos entonces?

\mathbf{q}
\subseteq {^B}\mathbf{T}_E(\mathbf{q})
\mathcal{K}^{-1}:\mathcal{T}\to \mathcal{C}

cinemática inversa

especificación de la tarea

(se tiene)

referencias para los servos

(se quiere)

\mathbf{q}
\subseteq {^B}\mathbf{T}_E(\mathbf{q})
\mathcal{K}^{-1}:\mathcal{T}\to \mathcal{C}

cinemática inversa

especificación de la tarea

(se tiene)

referencias para los servos

(se quiere)

sin embargo, debemos entender antes cómo se mueve el robot

\mathbf{q}
\subseteq {^B}\mathbf{T}_E(\mathbf{q})
\mathcal{K}^{-1}:\mathcal{T}\to \mathcal{C}

cinemática inversa

especificación de la tarea

(se tiene)

referencias para los servos

(se quiere)

sin embargo, debemos entender antes cómo se mueve el robot

 

cinemática diferencial

La importancia de las velocidades

\mathbf{T}_d

instante de tiempo \(t=t_1\)

La importancia de las velocidades

\mathbf{T}_d

instante de tiempo \(t=t_2\)

la tarea cambió en el tiempo

La importancia de las velocidades

\mathbf{T}_d

instante de tiempo \(t=t_2\)

la tarea cambió en el tiempo

¿Cómo hacemos que el robot tome en cuenta las velocidades?

\dot{\mathbf{q}}
{^B}\mathcal{V}_E=\begin{bmatrix} {^B}\mathbf{v}_E \\ {^B}\boldsymbol{\omega}_{BE} \end{bmatrix}
{^B}\mathcal{V}_E=\mathbf{J}(\mathbf{q})\dot{\mathbf{q}}

cinemática diferencial

\mathbf{J}(\mathbf{q})=\dfrac{d\mathcal{K}(\mathbf{q})}{d\mathbf{q}} \in \mathbb{R}^{6 \times n}

la matriz

se conoce como el jacobiano del manipulador y mapea la velocidad de la configuración a la del efector final

\mathbf{J}_v(\mathbf{q})=\dfrac{d{^B}\mathbf{o}_E(\mathbf{q})}{d\mathbf{q}}
\mathbf{J}_\omega(\mathbf{q})=\dfrac{d{^B}\boldsymbol{\theta}_E(\mathbf{q})}{d\mathbf{q}}

jacobiano de posición o de velocidad lineal

jacobiano de orientación o de velocidad angular

{^B}\mathbf{J}(\mathbf{q})=\begin{bmatrix} \mathbf{J}_v(\mathbf{q}) \\ \mathbf{J}_\omega(\mathbf{q}) \end{bmatrix} \begin{matrix} \in\mathbb{R}^{3 \times n} \\ \in\mathbb{R}^{3 \times n} \end{matrix}
\mathbf{J}_v(\mathbf{q})=\dfrac{d{^B}\mathbf{o}_E(\mathbf{q})}{d\mathbf{q}}
\mathbf{J}_\omega(\mathbf{q})=\dfrac{d{^B}\boldsymbol{\theta}_E(\mathbf{q})}{d\mathbf{q}}

jacobiano de posición o de velocidad lineal

(fácil)

jacobiano de orientación o de velocidad angular

(difícil)

orientación abstracta

{^B}\mathbf{J}(\mathbf{q})=\begin{bmatrix} \mathbf{J}_v(\mathbf{q}) \\ \mathbf{J}_\omega(\mathbf{q}) \end{bmatrix} \begin{matrix} \in\mathbb{R}^{3 \times n} \\ \in\mathbb{R}^{3 \times n} \end{matrix}

se omite cuando es respecto de la base

\begin{bmatrix} {^B}\mathbf{v}_E \\ {^B}\boldsymbol{\omega}_{BE} \end{bmatrix}=\begin{bmatrix} \mathbf{J}_v(\mathbf{q}) \\ \mathbf{J}_\omega(\mathbf{q}) \end{bmatrix} \dot{\mathbf{q}}

velocidad lineal del efector final con respecto de la base

velocidad angular del efector final con respecto de la base, visto desde la base

{^B}\boldsymbol{\omega}_{BE}
\begin{bmatrix} {^B}\mathbf{v}_E \\ {^B}\boldsymbol{\omega}_{BE} \end{bmatrix}=\begin{bmatrix} \mathbf{J}_v(\mathbf{q}) \\ \mathbf{J}_\omega(\mathbf{q}) \end{bmatrix} \dot{\mathbf{q}}

velocidad lineal del efector final con respecto de la base

velocidad angular del efector final con respecto de la base, visto desde la base

¿Qué es esto?

un vector de velocidad angular el cual, en general, requiere de dos sub-índices

{^A}\boldsymbol{\omega}_{AB}

vector que representa a la velocidad de rotación de \(\{B\}\) con respecto de \(\{A\}\), pero visto como un vector en el marco de referencia \(\{A\}\)

{^A}\boldsymbol{\omega}_{AB}=-{^A}\boldsymbol{\omega}_{BA}
{^B}\boldsymbol{\omega}_{AB}={^B}\mathbf{R}_A{^A}\boldsymbol{\omega}_{AB}

???

\{A\}
x_A
y_A
z_A
\{B\}
x_B
y_B
z_B
\{A\}
x_A
y_A
z_A
\{B\}
x_B
y_B
z_B

fijo

\boldsymbol{\omega}_{AB}
\{A\}
x_A
y_A
z_A
\{B\}
x_B
y_B
z_B

fijo

\boldsymbol{\omega}_{AB}
{^B}\boldsymbol{\omega}_{AB}
\{A\}
x_A
y_A
z_A
\{B\}
x_B
y_B
z_B

fijo

\boldsymbol{\omega}_{AB}
{^A}\boldsymbol{\omega}_{AB}
\{A\}
x_A
y_A
z_A
\{B\}
x_B
y_B
z_B

fijo

\boldsymbol{\omega}_{BA}

Ejemplo: manipulador planar

\begin{array}{c|c|c|c} \theta_j & d_j & a_j & \alpha_j \\ \hline q_1 & 0 & a_1 & 0 \\ \hline q_2 & 0 & a_2 & 0 \\ \end{array}

R

R

manipulador RR

{^B}\mathbf{T}_E(\mathbf{q})=\begin{bmatrix} \cos(q_1+q_2) & -\sin(q_1+q_2) & 0 & a_2\cos(q_1+q_2)+a_1\cos(q_1) \\ \sin(q_1+q_2) & \cos(q_1+q_2) & 0 & a_2\sin(q_1+q_2)+a_1\sin(q_1) \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
\mathbf{J}(\mathbf{q})= \begin{bmatrix} -a_1\sin(q_1)-a_2\sin(q_1 + q_2) & -a_2\sin(q_1 + q_2) \\ a_1\cos(q_1)+a_2\cos(q_1 + q_2) & a_2\cos(q_1 + q_2) \\ 0 & 0 \\ 0 & 0 \\ 0 & 0 \\ 1 & 1 \end{bmatrix}
{^B}\mathbf{T}_E(\mathbf{q})=\begin{bmatrix} \cos(q_1+q_2) & -\sin(q_1+q_2) & 0 & a_2\cos(q_1+q_2)+a_1\cos(q_1) \\ \sin(q_1+q_2) & \cos(q_1+q_2) & 0 & a_2\sin(q_1+q_2)+a_1\sin(q_1) \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
\mathbf{J}(\mathbf{q})= \begin{bmatrix} -a_1\sin(q_1)-a_2\sin(q_1 + q_2) & -a_2\sin(q_1 + q_2) \\ a_1\cos(q_1)+a_2\cos(q_1 + q_2) & a_2\cos(q_1 + q_2) \\ 0 & 0 \\ 0 & 0 \\ 0 & 0 \\ 1 & 1 \end{bmatrix}
\mathbf{J}_v(\mathbf{q})
\mathbf{J}_\omega(\mathbf{q})
{^B}\mathbf{T}_E(\mathbf{q})=\begin{bmatrix} \cos(q_1+q_2) & -\sin(q_1+q_2) & 0 & a_2\cos(q_1+q_2)+a_1\cos(q_1) \\ \sin(q_1+q_2) & \cos(q_1+q_2) & 0 & a_2\sin(q_1+q_2)+a_1\sin(q_1) \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
\mathbf{J}(\mathbf{q})= \begin{bmatrix} -a_1\sin(q_1)-a_2\sin(q_1 + q_2) & -a_2\sin(q_1 + q_2) \\ a_1\cos(q_1)+a_2\cos(q_1 + q_2) & a_2\cos(q_1 + q_2) \\ 0 & 0 \\ 0 & 0 \\ 0 & 0 \\ 1 & 1 \end{bmatrix}
\mathbf{J}_v(\mathbf{q})
\mathbf{J}_\omega(\mathbf{q})

¿Cómo?

>> be3027_clase6_robotRR_jacobiano.mlx

Consideraciones importantes

hay una columna del jacobiano asociada a cada uno de los GDL del efector final, recordar que \(\mathbf{J}(\mathbf{q})\in\mathbb{R}^{6\times n}\)

 

si \(\mathcal{K}\) no incluye todos los GDL del efector final, entonces para el jacobiano se toman sólo las filas relevantes

Singularidades, manipulabilidad y estática

(matemáticamente) una singularidad ocurre cuando el jacobiano es singular

Singularidades

(matemáticamente) una singularidad ocurre cuando el jacobiano es singular

\mathbf{J}(\mathbf{q}) \in \mathbb{R}^{6 \times n}

sin embargo, invertibilidad \(\Rightarrow\) jacobiano cuadrado

\(\Rightarrow\) depende de \(\mathcal{K}\) y el número de juntas

Singularidades

Singularidades

bajo la perspectiva de robótica, en las singularidades:

  1. La movilidad del robot se ve reducida
  2. Pueden existir infinitas soluciones para la cinemática inversa
  3. Pequeñas velocidades en \(\mathcal{T}\) pueden implicar velocidades grandes en \(\mathcal{C}\)

Singularidades de frontera

Ocurren cuando el robot se encuentra totalmente estirado o retraído. Pueden evitarse siempre que se garantice que el robot trabaje dentro de los límites de su espacio de trabajo.

Singularidades internas

Ocurren cuando se pierden GDL al alinearse los ejes de movimiento. Constituyen un problema serio ya que ocurren dentro del espacio de trabajo.

Singularidades internas

Ocurren cuando se pierden GDL al alinearse los ejes de movimiento. Constituyen un problema serio ya que ocurren dentro del espacio de trabajo.

¿Forma fácil de obtener y visualizar las consecuencias de las singularidades?

\(\Rightarrow\) elipsoides de manipulabilidad

Elipsoides de velocidad

(hiper-esfera unitaria)

\|\dot{\mathbf{q}}\|_2^2=\dot{\mathbf{q}}^\top\dot{\mathbf{q}}=1

Elipsoides de velocidad

(hiper-esfera unitaria)

\|\dot{\mathbf{q}}\|_2^2=\dot{\mathbf{q}}^\top\dot{\mathbf{q}}=1
\dot{\mathbf{q}}=\mathbf{J}_v^{-1}(\mathbf{q}){^B}\mathbf{v}_E
\dot{\mathbf{q}}=\mathbf{J}_\omega^{-1}(\mathbf{q}){^B}\boldsymbol{\omega}_{BE}
{^B}\mathbf{v}^\top_E \left( \mathbf{J}_v(\mathbf{q}) \mathbf{J}^\top_v(\mathbf{q}) \right)^{-1} {^B}\mathbf{v}_E \\ \equiv {^B}\mathbf{v}^\top_E \mathbf{A}_v^{-1} {^B}\mathbf{v}_E =1
{^B}\boldsymbol{\omega}^\top_{BE} \left( \mathbf{J}_\omega(\mathbf{q}) \mathbf{J}^\top_\omega(\mathbf{q}) \right)^{-1} {^B}\boldsymbol{\omega}_{BE} \\ \equiv {^B}\boldsymbol{\omega}^\top_{BE} \mathbf{A}_\omega^{-1} {^B}\boldsymbol{\omega}_{BE} =1

Elipsoides de velocidad

(hiper-esfera unitaria)

\|\dot{\mathbf{q}}\|_2^2=\dot{\mathbf{q}}^\top\dot{\mathbf{q}}=1
\dot{\mathbf{q}}=\mathbf{J}_v^{-1}(\mathbf{q}){^B}\mathbf{v}_E
\dot{\mathbf{q}}=\mathbf{J}_\omega^{-1}(\mathbf{q}){^B}\boldsymbol{\omega}_{BE}
{^B}\mathbf{v}^\top_E \left( \mathbf{J}_v(\mathbf{q}) \mathbf{J}^\top_v(\mathbf{q}) \right)^{-1} {^B}\mathbf{v}_E \\ \equiv {^B}\mathbf{v}^\top_E \mathbf{A}_v^{-1} {^B}\mathbf{v}_E =1
{^B}\boldsymbol{\omega}^\top_{BE} \left( \mathbf{J}_\omega(\mathbf{q}) \mathbf{J}^\top_\omega(\mathbf{q}) \right)^{-1} {^B}\boldsymbol{\omega}_{BE} \\ \equiv {^B}\boldsymbol{\omega}^\top_{BE} \mathbf{A}_\omega^{-1} {^B}\boldsymbol{\omega}_{BE} =1

elipsoides en el espacio de tarea

Análisis estático de manipuladores

Análisis estático de manipuladores

\boldsymbol{\tau}=\mathbf{J}^\top(\mathbf{q}){^B}\boldsymbol{\mathcal{F}}_E

Análisis estático de manipuladores

\boldsymbol{\tau}=\begin{bmatrix} \tau_1 & \cdots & \tau_n \end{bmatrix}^\top
{^B}\boldsymbol{\mathcal{F}}_E=\begin{bmatrix} {^B}\mathbf{f}_E \\ {^B}\boldsymbol{\mu}_E \end{bmatrix}
\boldsymbol{\tau}=\mathbf{J}^\top(\mathbf{q}){^B}\boldsymbol{\mathcal{F}}_E

torques suministrados por los actuadores en las juntas

fuerza espacial (wrench) en

(o generada por) el efector final

Elipsoides de fuerza

(hiper-esfera unitaria)

\|\boldsymbol{\tau}\|_2^2=\boldsymbol{\tau}^\top\boldsymbol{\tau}=1
\boldsymbol{\tau}=\mathbf{J}_v^\top(\mathbf{q}){^B}\mathbf{f}_E
\boldsymbol{\tau}=\mathbf{J}_\omega^\top(\mathbf{q}){^B}\boldsymbol{\mu}_E
{^B}\mathbf{f}_E^\top \left( \mathbf{J}_v(\mathbf{q}) \mathbf{J}^\top_v(\mathbf{q}) \right) {^B}\mathbf{f}_E \\ \equiv {^B}\mathbf{f}_E^\top \mathbf{A}_v {^B}\mathbf{f}_E =1
{^B}\boldsymbol{\mu}_E^\top \left( \mathbf{J}_\omega(\mathbf{q}) \mathbf{J}^\top_\omega(\mathbf{q}) \right) {^B}\boldsymbol{\mu}_E \\ \equiv {^B}\boldsymbol{\mu}_E^\top \mathbf{A}_\omega {^B}\boldsymbol{\mu}_E =1

inversas de los elipsoides de velocidad

Elipsoides de manipulabilidad

los cuatro elipsoides presentan la forma

nos dicen cómo puede moverse y qué fuerzas (y momentos) puede ejercer el manipulador para cierta configuración \(\mathbf{q}\)

Elipsoides de manipulabilidad

los cuatro elipsoides presentan la forma

nos dicen cómo puede moverse y qué fuerzas (y momentos) puede ejercer el manipulador para cierta configuración \(\mathbf{q}\)

>> be3027_clase6_robotRR_jacobiano.mlx

Medida de manipulabilidad

volumen del elipsoide

\(\approx\) medida global de la habilidad de manipulación

\(\propto\) manipulabilidad de Yoshikawa

Medida de manipulabilidad

volumen del elipsoide

\(\approx\) medida global de la habilidad de manipulación

\(\propto\) manipulabilidad de Yoshikawa

m_v(\mathbf{q})=\sqrt{\mathrm{det}\left(\mathbf{J}_v(\mathbf{q})\mathbf{J}^\top_v(\mathbf{q})\right)}
m_\omega(\mathbf{q})=\sqrt{\mathrm{det}\left(\mathbf{J}_\omega(\mathbf{q})\mathbf{J}^\top_\omega(\mathbf{q})\right)}

Medida de manipulabilidad

volumen del elipsoide

\(\approx\) medida global de la habilidad de manipulación

\(\propto\) manipulabilidad de Yoshikawa

m_v(\mathbf{q})=\sqrt{\mathrm{det}\left(\mathbf{J}_v(\mathbf{q})\mathbf{J}^\top_v(\mathbf{q})\right)}
m_\omega(\mathbf{q})=\sqrt{\mathrm{det}\left(\mathbf{J}_\omega(\mathbf{q})\mathbf{J}^\top_\omega(\mathbf{q})\right)}
m(\mathbf{q})=\sqrt{\mathrm{det}\left(\mathbf{J}(\mathbf{q})\mathbf{J}^\top(\mathbf{q})\right)}
\}

existen análogos para los elipsoides de fuerza

BE3027 - Lecture 6 (2024)

By Miguel Enrique Zea Arenales

BE3027 - Lecture 6 (2024)

  • 122