En esta clase vamos a revisar la simulación del manipulador móvil.
Para ello voy a dejar unos archivos que se pueden descargar y vamos a utilizar los archivos anteriores
que habíamos revisado y lo vamos a unir para formar el manipulador móvil.
Entonces estos archivos ya lo voy a dejar en una carpeta lista para que puedan correr el programa.
Entonces vamos a revisar el código generado en primer lugar vamos a ingresar los comandos para mantener
limpia el área de trabajo esto ya lo habíamos venido haciendo a lo largo del curso.
También la generación del vector de tiempo el tiempo de muestreo tenemos acá de 0.1 segundos.
Tenemos acá nuestro tiempo de simulación que va hasta los 30 segundos y acabamos de ingresar las condiciones
iniciales.
Entonces vamos a empezar con la condición inicial en el centro geométrico del robot tenemos la posición
en X1 1.
Como vemos vamos a iniciar en cero tenemos el ángulo de orientación que de igual manera va a iniciar
en cero y tenemos los ángulos de cada uno de los eslabones Q1 y Q2.
Tenemos acá la distancia como habíamos visto es la distancia desde el punto geométrico del robot es
decir de la plataforma móvil hacia la base del brazo robótico.
También tenemos la altura que habíamos visto que es la altura desde el suelo hacia dónde va colocarse
la base del manipulador y tenemos que era la base del manipulador en este caso la altura de la base
del manipulador L1 venía a ser la longitud del primer eslabón y L2 la longitud del segundo eslabón y
luego mediante el modelo geométrico vamos a echar la posición inicial donde va a estar ubicado la base.
Como ven acá la base del brazo robótico como lo habíamos visto XP y G.P entonces esas son las coordenadas
x y de la plataforma y lo llevamos con el modelo geométrico que habíamos analizado.
Luego mediante el modelo geométrico también que habíamos obtenido del robot total vamos a echar.
Como ven acá las posiciones iniciales en x y z del Gripen es decir en el efector final nuestro punto
de control que habíamos revisado anteriormente en el modelo.
A continuación vamos a empezar las velocidades para realizar el movimiento de nuestro robot.
Vamos a ir ingresando diferentes en acciones de control para verificar el comportamiento en la simulación.
Listó una vez que tengamos en cuenta cada uno de estas acciones de control vamos a ingresar al bucle
de simulación en el bucle de simulación.
Como vemos vamos a iniciar en k igual a 1 hasta el tamaño del vector tiempo que serían las muestras
que vamos a simular.
Una vez que estemos acá vamos a ingresar la matriz jacobiano.
Anteriormente habíamos ingresado aquí el modelo cinemático pero en forma de ecuaciones en esta ocasión
vamos a utilizar la forma matricial.
Vamos a generar como habíamos visto tenemos la matriz J que era el jacobiano acá el J1 1 que sería la
primera fila y la primera columna entonces acabamos ingresando cada uno de los valores que habíamos
obtenido de la matriz y como ven acá formamos ya nuestra matriz.
Una vez que hemos formado nuestra matriz vamos a formar el vector de velocidades.
Como ven acá tenemos la velocidad lineal la velocidad angular y acá tenemos las velocidades angulares
1 punto y 2 punto.
Una vez que hemos generado nuestro vector de velocidades vamos a echar el vector de velocidades.
En cambio en la punta del grip para ello vamos a utilizar la ecuación que habíamos visto anteriormente
que era igual H.B es igual al jacobiano por la matriz de acciones de control.
A continuación vamos a aplicar esto al modelo para observar cuál serían las posiciones en los siguientes
instantes de muestreo.
Entonces acá como podemos ver obtenemos el fin de CAM más uno realizando.
Como ven acá la integral numérica de la velocidad angular entonces obtendríamos la orientación y acá
tenemos x 1 punto y punto que vendrían a ser las velocidades en el centro geométrico del robot y luego
mediante la integral numérica vamos a hallar las posiciones siguientes.
Como pueden ver aquí también vamos a hallar las posiciones angulares como acá la posición angular de
cada uno de los eslabones.
En el siguiente instante de muestreo y acá obtenemos las posiciones como en el punto donde se encuentra
la base del manipulador y como habíamos obtenido arriba acá obteníamos el resultado de manera tal y
lo que vamos a hacer es como ven acá vamos a separar el H.B uno vendría a ser el HxH.
Como ve acá el HxH punto HGE punto vendría a ser en la posición 2 y el Hz punto en la posición 3C entonces
vamos a integrar este conjunto de soluciones para hallar las siguientes posiciones del Gripen es decir
ya en nuestro punto de interés para continuar con la simulación y esto se vuelve repetir hasta terminar
las muestras que hemos generado listo una vez que se ha realizado esto lo siguiente sería realizar la
animación del brazo y la plataforma Unidas. es decir del manipulador móvil.
Para ello hemos editado un poco de lo que hemos revisado anteriormente acá por ejemplo hemos encontrado
una función que me permite obtener el tamaño de la pantalla es decir esta pantalla que vemos acá para
poder dibujar toda la pantalla completa anteriormente se nos mostraba una pequeña pantallita aquí para
ver la simulación pero para observar de mejor manera es mejor mostrarla toda la pantalla de la computadora
entonces lo obtenemos con esta función y simplemente con esta función le damos el tamaño para esta escena
que vamos a generar luego.
Aquí habíamos visto el axis y cuál entonces el axis bueno delimitaba cada uno de los ejes del eje x
el eje y el eje Z dependiendo de cuál trayectoria vaya a generar podemos aumentar estos números para
poder observar el robot por completo.
Este video me permite rotar la escena podemos rotar la escena entonces eso no lo voy a activar si desean
pueden activarlo no hay ningún problema acá tenemos el Critón que me permite añadir como habíamos visto
unas rejillas y acá tenemos dos Leiber que etiquetar cada uno de los ejes y acá es la luz de la escena
y acabamos de hacer la Unión.
Como ven acá vamos a graficar el manipulador y también vamos a graficar la plataforma móvil.
Entonces en primer lugar vamos a graficar la plataforma como podemos observar acá tenemos el móvil robot
que genera los parámetros para la plataforma del robot es decir aquí se encuentran todas las dimensiones
del robot móvil.
Luego acá ya vamos a dibujarlo entonces aquí ya lo dibujamos y para ello vamos a utilizar X-1 que vendría
a ser la posición.
Les había mencionado que todos los gráficos debemos realizarlo en la posición central.
Entonces lo grafica en X1 1 y el ángulo de orientación en este archivo móvil plot para algunos que me
estaban diciendo cómo puedo generar mis propios robots.
Este móvil plot se encuentran todas las matrices de rotación y traslación para dar la sensación de movimiento
en MATLAB.
Luego acá podemos observar que vamos a dibujar como ven acá el punto inicial el HxH la H y el Hz de
color verde y con un círculo esto para verificar dónde empieza nuestro manipulador móvil y acá cómo
ven.
Bueno esta es la condición inicial simplemente para iniciar la trayectoria para que me dé la sensación
de movimiento de la trayectoria que va a seguir.
Listo tenemos acá otro de los parámetros en este caso para el brazo robótico y acá también como les
habían mencionado es similar al móvil robot pero en este caso para un brazo robótico de igual manera
el móvil plot acá es lo mismo el 3D.
De igual manera tiene las mismas consideraciones que este archivo.
Acá en cambio vamos a ingresar los siguientes parámetros debemos ingresar como acá el desplazamiento
en X que vendría a ser donde está la base del brazo robótico tanto en X y la altura vendría a ser el.
Es decir la distancia desde el suelo hacia la base del manipulador.
Estas son las orientaciones que ya habíamos visto en la emulación del brazo son orientaciones que en
este caso no nos interesa simplemente necesitamos la orientación en Z como vemos acá tenemos el ángulo
phi.
En este caso va a rotar el ángulo phi como habíamos visto en el modelo acá va a rotar ese ángulo phi
y también tenemos en este caso las posiciones angulares de Q1 y Q2.
Listo entonces acá aparte de acá nos la vamos a tomar en cuenta porque no estamos utilizando otro eslabón
lo vamos a dejar como sea.
Bueno acá tenemos el valor de STEPV que me permite realizar la simulación mucho más rápida es decir
saltarse ciertos pasos de la simulación entonces acabamos de ingresar en la parte de simulación como
vemos vamos a borrar cada uno de los objetos que hemos creado acá arriba y luego vamos a volver a dibujarlos
en la siguiente posición para darle así una sensación de movimiento listo una vez que hemos hecho esto
lo siguiente ven acá es dibujar cada una las velocidades que hemos ingresado entonces para ello vamos
a comenzar con la simulación.
En primer lugar vamos a ingresar la velocidad lineal.
Entonces vamos a empezar con la velocidad lineal vamos a ingresar a una velocidad de cero punto un metro
sobre segundos entonces vamos a dar en Rum y observamos que efectivamente el robot avanza hacia adelante.
Le hemos dado una velocidad lineal esta velocidad lineal está en metros sobre segundos.
Hay que tomar en cuenta.
Vamos a poner la k metros sobre segundos.
Esto está en segundos listo.
Es la parte de acá arriba vamos a quitarlo y vamos a buscarlo acá.
Entonces esa sería la velocidad.
En esto vamos a cambiarlo.
Esta es la velocidad lineal entonces sería la velocidad lineal listo.
De igual manera bueno esto vamos a borrarlo esto es algo que estaba experimentando.
Simplemente vamos a borrarlo.
Bueno ahora vamos a ingresar la velocidad angular.
Entonces vamos a ingresar la velocidad angular de igual manera vamos a editar esta parte de este sería
la velocidad angular entonces vamos a cambiar esto.
Listo.
Esto en cambio está en radianes sobre segundos.
Bueno voy a dejar simplemente las abreviaciones para realizarlo de una manera mucho más rápida.
Entonces estos tres metros sobre segundos estén radianes sobre segundos y esto también es velocidad
angular.
También es una velocidad angular que también está en radianes sobre segundo y de igual manera está aquí
listo.
Entonces vamos a ingresar ahora la velocidad angular vamos a darle una velocidad angular en este caso
negativa y vamos a observar que el robot debería moverse en sentido horario entonces el robot se empieza
a mover en sentido horario sobre su propio eje.
Como podemos observar acá se está generando la trayectoria y el brazo robótico y cómo podemos ver ahí
el brazo robótico está generando un círculo listo entonces ahora lo que vamos a hacer es darle este
valor cero.
Listo y vamos a dar acá un valor de 0.1 pero vamos a ingresar una función seno y vamos a observar cuál
es el resultado en este caso debería moverse el primer eslabón con Podemos ver el primer eslabón se
mueve hacia arriba cuando el seno es positivo y luego debería retornar cuando cambia de signo.
En este caso no existe demasiado tiempo vamos a cambiar el tiempo vamos a aumentarlo un poco más vamos
a darle unos 60 segundos y también vamos a aumentar la frecuencia vamos a aumentar la frecuencia 0 5
y también vamos a aumentar la vista del eje z vamos a ponerlo en dos.
Vamos a correr el programa y observamos que si sube el brazo luego baja sube el brazo y luego baja debido
a que el seno como es una función que cambia de positivo o negativo aquí el brazo está realizando esa
parte.
Entonces listo hemos cambiado cómo ven la frecuencia también ahora lo que vamos a hacer es utilizar
el otro brazo.
Entonces vamos a encerrar esto vamos a guardar como 0 y acá no vamos a aumentar la frecuencia.
Perdón vamos a disminuir la frecuencia un poco y vamos a aumentar pero vamos a mantenerla la amplitud
de 0.1 radianes Sofres segundos.
Entonces como podemos observar en este caso ahora se mueve la el segundo eslabón como pueden ver acá
se mueve el segundo eslabón.
Ahora vamos a ingresar velocidades a cada una de las articulaciones y también a la plataforma y vamos
a observar cuál es el resultado.
Aquí vamos a cambiarlo vamos a ponerlo como 0.1 pero también esto vamos a disminuirlo y acá vamos a
darle primero una velocidad angular positiva en este caso debería moverse en sentido antihorario entonces
vamos a ver acá cómo pueden ver efectivamente el robot se mueve en sentido antihorario y también el
brazo robótico comienza a realizar movimientos como pueden ver y realizar la siguiente trayectoria como
podemos observar entonces como pueden ver el robot realiza esa trayectoria como podemos observar en
este caso el robot regresó del sentido antihorario al sentido horario.
Esto debido a que hemos ingresado como pueden ver acá una función seno.
Por eso es el motivo que cuando fue positivo se iba en un sentido y cuando fue negativo fue en el otro
sentido.
Bueno eso dejémoslo ahí vamos a ponerlo acá como una constante.
Pongámosle como una constante nada más.
No lo pongamos como un valor de 100.
Entonces ahí vamos a observar que siempre va a girar en sentido antihorario entonces como pueden ver
hoy el robot sigue girando girando y el brazo va realizando la trayectoria como pueden observar entonces
sí podemos observar cómo el robot va graficando una trayectoria regresa a su punto.
Como ven acá y si vamos a observar qué trayectoria ha generado vamos a dar un pequeño sú como pueden
ver ahí un pequeño SUV y vamos a dar una vuelta acá.
Como pueden ver acá es la trayectoria que ha estado generando como pueden ver esta trayectoria es la
que ha generado este conjunto de velocidades listo.
Ahora vamos a ver la movilidad del brazo.
Vamos a darle una velocidad lineal y vamos a observar como el robot se va a mover tan bien.
Entonces vamos a observar cómo el brazo ahora se va a desplazar debido a la velocidad lineal que hemos
incorporado a nuestro brazo robótico podemos observar cómo afecta la velocidad lineal entonces podemos
ver que ella se mueve en el plano x de la plataforma y como vemos ahí genera su trayectoria.
Como vemos acá ha generado una trayectoria bastante elegante como podemos ver aquí es una trayectoria
bastante vistosa como pueden ver como pueden observar.
Hemos dado más grados de libertad a nuestro brazo robótico ya puede trasladarse y orientarse también
como pueden ver aquí.
El robot ya tiene más grados de libertad y habíamos mencionado que también este sistema era redundante
y que se podía hacer tareas secundarias.
Todo esto bueno estaremos viendo en otros cursos que estaré subiendo.
Bueno estamos revisando como modelos nada más.
Es muy importante saber el modelo por qué.
Porque luego se viene otro curso en el cual vamos a aprender a realizar controladores.
Ahí es donde entra el modelo matemático.
Entonces nosotros podemos ingresar una trayectoria deseada es decir por ejemplo yo quiero que mi brazo
robótico realice una trayectoria digamos venga y realice una trayectoria de un círculo así entonces
el controlador se va a encargar de dar las acciones de control automáticamente para que siga esa trayectoria.
Vamos a ver seguimiento de trayectoria también hay seguimiento de camino que es muy diferente y también
vamos a ver control de posición.
Por ejemplo mi robot se encuentra en esta posición inicial y de aquí le doy un objeto y quiero que ese
objeto lo traslade a un punto.
Por ejemplo acá entonces el controlador automáticamente considerando esta posición inicial va a desplazarse
va a generar una trayectoria óptima y va a posicionar el brazo es decir el punto de control en la posición
que nosotros hayamos ingresado.
Esto lo va a hacer de manera automática ustedes simplemente ingresan su posición deseada final y el
controlador automáticamente genera las velocidades tanto de la plataforma como el brazo para llevar
este punto inicial hacia el punto final.
Entonces son uno de los controladores que estaremos revisando en el siguiente curso.