rp2mtr20113_9a[equipo 1]
TRANSCRIPT
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 1/28
UNIVERSIDAD POLITÉCNICA DE AGUASCALIENTES
Robótica IIAgosto-Diciembre 2011
CONTROL DEL ROBOT
MTR09A
Alumnos:UP080536 Angeles Martínez Marco GiovanniUP080171 López Rubio David FrancoUP080132 Noriega Márquez Jesús Alfonso
Maestro:Luis Ernesto Anaya Tiscareño
Fecha:03/11/2011
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 2/28
INTRODUCCION
En el presente reporte se presentara el robot manipulador angular y cada
uno de los pasos realizados para el diseño mecánico de este y el control de cada
uno de los motores para obtener un movimiento adecuado y en proporción a los
torques de los motores. Primeramente observaremos el desarrollo del robot enuno de los software que proporciono mucha ayuda en el transcurso de este
diseño, el cual fue Solidworks, en donde se diseñaron las piezas que conformarían
posteriormente el ensamblaje del robot manipulador. Posterior a esto se abordara
todo lo relacionado con el diseño del robot en un software que al igual que
Solidworks fue de gran ayuda y el cual es Matlab™. En Matlab™ se diseño el
robot haciendo uso de 2 conceptos nuevos Simmechanics y VRML, en
Simmechanics por medio de bloques se realizo la estructura del robot y se monto
las piezas diseñadas posteriormente en Solidworks y por ultimo en VRML es una
realidad virtual en donde se aprecia mejor el resultado del diseño del robot
manipulador.
OBJETIVO
Diseñar y controlar un robot manipulador por medio de Matlab ™ y
haciendo uso de las herramientas de Simmechanics y VRML.
DESARROLLO
Lo primero que se realizo fue el diseño de cada una de las piezas del robot
manipulador el cual por razones de facilidad se decidió que fuera un robot angulary el cual se muestra a continuación:
Ilustración 1 Diseño del robot manipulador en Solidworks
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 3/28
Ilustración 2 Diseño robot manipulador vista frontal
Ilustración 3 Diseño robot manipulador vista superior
A continuación se mostraran las dimensiones de los eslabones, la masa de
estos y los centros de gravedad además de los parámetros Denavith-Hartenberg.
Ilustración 4 Base del robot Tabla 1 Parámetros de la Base
BASEMasa 284.89 gramos
Longitud 191.38 mm
Centro de gravedad [0 0 40.33mm]
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 4/28
Ilustración 5 Eslabón 1 del robot Tabla 2 Parámetros del Eslabón 1
Ilustración 6 Eslabón 2 del robot Tabla 3 Parámetros del eslabón 2
Ilustración 7 Eslabón 3 del robot Tabla 4 Parámetros del Eslabón 3
ESLABON 1Masa 284.89 gramos
Longitud 155 mm
Centro de gravedad [0 0 71.38mm]
ESLABON 2Masa 138.12 gramosLongitud 120 mmCentro de gravedad [31.39mm 0 0]
ESLABON 3Masa 141.64 gramos
Longitud 160 mmCentro de gravedad [76.1mm 0 0]
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 5/28
Parámetros Denavith-Hartenberg.
ɵ D Aq1+90 L1 0 90
q2 0 L2 0
q3 0 L3 0
Una vez que se obtuvo el diseño físico del robot manipulador en Solidworks
se dio paso a la estructura del robot pero esta vez en Matlab™ y usando
Simmechanics. A continuación se muestran los pasos realizados para la estructura
del robot dentro de Simmechanics.
Bloque Descripción
El bloque de machine environment esesencial en todo diseño desimmechanics ya que aquí seespecifica la gravedad que interactúacon el sistema.El segundo elemento que se coloco fueground el cual conecta el bloqueanterior con el primer body
Este bloque actuó como soldadura
entre la base y el bloque de ground.
El bloque que se muestra pertenece ala base del robot manipulador.
El bloque de revoluta sirve para colocar
una unión giratoria entre la base delrobot y el primer eslabón del mismo.
Este bloque contiene las característicasdel eslabón 1.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 6/28
Este bloque es otra revoluta la cual uneel eslabón 1 y el eslabón 2.
Este bloque de body pertenece a eleslabón 2 del robot y contiene suscaracterísticas.
El penúltimo bloque pertenece a otrarevoluta y la cual une al eslabón 2 y aleslabón 3.
El último bloque pertenece al eslabón 3en donde al igual que los anteriorescontiene cada una de lascaracterísticas de este.
Se colocaron 3 conexiones que son lasentradas de los motores dentro de lasrevolutas.
A la izquierda contamos con un bloquede join sensor el cual mide la velocidadangular de la unión en donde secolocaron las 3 revolutas, así comotambién el torque que se genera y porúltimo se colocaron 6 salidas las cualesmuestran las 2 característicasmencionadas.
A continuación se presenta la estructura del robot dentro de simmechanics
y los pasos realizados para modificar los parámetros de cada uno del bloque
vistos anteriormente.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 7/28
Ilustración 8 Estructura del robot manipulador.
El primer bloque que se coloco fue machine environment el cual contiene el
valor de la gravedad. En la figura de abajo se muestra el valor de la gravedad a la
cual está sometido el robot y en que eje que en esta caso fue el eje z.
Ilustración 9 Parámetros machine environment
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 8/28
Dentro del bloque de ground la única modificación dentro de sus
parámetros fue la selección del siguiente recuadro.
Ilustración 10 Parámetros bloque ground
Para los bloques de body correspondientes a la base, al eslabón 1, al
eslabón 2 y al eslabón 3 se realizaron las siguientes modificaciones en sus
parámetros.
Ilustración 11 Parámetros Posición de la Base Ilustración 12 Parámetros orientación de la Base
En las figura de los parámetros de posición de la base se modificaron la
masa la cual quedo en 1. La matriz de inercia quedo unitaria y en Kg/m2.Dentro de
la parte de CG se coloco el vector del centro de gravedad de la base, el CS1 se
dejo en 0 ya que necesita esta referenciado a la base y en el CS2 se coloco el
vector que define la longitud de la base. Dentro del el origen de cada uno de los
parámetros mencionados se le asigno a el CS1 la opción de adjoinning el cual se
referencia al anterior, el CG fue respecto a world y el CS2 con respecto a CS1para que quedara ubicado el sistema de coordenadas igual que el ground. En la
orientación de la base se dejo en vectores de 0 la parte orientation vector y se
coloco Euler X-Y-Z.
Para los bloques de body los cuales representan al eslabón 1, el eslabon2 y
el eslabón 3 se siguieron los mismos pasos solo que en el parámetro de masa
quedo con una variable así como también la matriz de inercia las cuales fueron
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 9/28
calculadas con un programa en .m. A continuación observaremos los parámetros
de los eslabone.
Ilustración 13 Parámetros posición del Eslabón 1 Ilustración 14 Parámetros de orientación del eslabón 1
Como podemos observar en la figura del lado izquierdo el valor de la masa
quedo representado por una variable la cual es m1 asi como la matriz de inercia
quedo con una variable I{1} la cual es una representación de una matriz dematrices.
Del lado derecho hubo una modificación dentro de CS2 ya que la posición
final de este elemento cambiara la orientación del siguiente eslabón colocándolo
en un Angulo de 90° con respecto al eslabón 1. Los eslabones 2 y 3 tuvieron las
mismas modificaciones con respecto a a la figura del lado izquierdo alterando el
valor de las masas por variables m2 y m3 respectivamente y así mismo los valores
de las matrices de inercia I{2} y I{3} de la misma manera respectivamente cada
una de estas. Ahora bien estas variables se obtuvieron como se menciono
anteriormente de un archivo .m el cual se muestra a continuación.
%Parámetros del robot manipulador clc
clear syms x y z m
%Matriz de Inercia Inercia= [1/3*x^2*m 0.25*x*y*m 0.25*x*z*m;...
0.25*x*y*m 1/3*y^2*m 0.25*y*z*m;... 0.25*x*z*m 0.25*z*y*m 1/3*z^2*m];
%Valores de las masas de los eslabones del robot manipulador m1=.28489;m2=.13812;m3=.14164; mas=[m1 m2 m3]'; %Valores de las longitudes de los eslabones del robot manipulador l0=120; l1=155; l2=120; l3=160; %Centros de Gravedad de los eslabones cg{1}=[0 0 0.07138];cg{2}=[0.03139 0 0];cg{3}=[0.0761 0 0]; %Calculo de las matrices de inercia for i=1:1:3
I{i}=subs(Inercia,[x y z m],[cg{i} mas(i)]);end
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 10/28
En la parte superior se introdujo un clc y un clear para borrar toda variabledentro del comman window y el workspace respectivamente dentro del Matlab™.Posterior a esto se declararon las variables simbólicas, después de haber echoesto se introdujo la matriz de inercia de la cual haríamos uso mas adelante. Unavez que se tenia la matriz se introdujo los valores de las masas y longitudes los
cuales se habían introducido dentro de los bloques de body y los cuales fueronmencionados como lo son m1, m2 y m3, además las longitudes l0,l1,l2 y l3, asítambién los centros de masa cg{1},cg{2} y cg{3}. Ya con los parámetros en unciclo for desde 1 hasta 3 ya que el robot cuenta con 3 eslabones, se procedió acalcular las matrices de inercia para los 3 eslabones obteniendo así I{1},I{2} e I{3}.Pero para poder introducir estos valores dentro de las variables en los bloques debody se introdujo un subsystem:
Ilustración 15 Subsistema de parámetros
Dando click derecho sobre este y seleccionando el apartado de
propiedades del bloque se modifico lo siguiente:
Ilustración 16 Propiedades del bloque
En la sección de callbacks y en el apartado de openfcn*. Dentro del espacioen blanco se coloco el nombre del programa en .m para que asi cada vez que se
le diera doble clcik al bloque por default los bloques de body dentro de la
estructura del robot obtuvieran los valores de las variables ya mencionadas
anteriormente y las cuales son m1,m2,m3,l0,l1,l2,l3,cg{1},cg{2},cg{3},I{1},I{2} e
I{3}. Aun para hacer más presentable el subsistema se le añadió una imagen y a
continuación se muestra el resultado.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 11/28
Ilustración 17 Edit mask
Dentro de edit mask se introdujo el siguiente código.
image(imread('nvv.jpg'))
Y dando click en apply se plasmo la imagen sobre el bloque de subsistema.
Ilustración 18 Imagen para el subsistema
Ya teniendo la estructura del robot se dio paso a sintetizar todos los
elementos dentro de un subsistema como se muestra a continuación.
Ilustración 19 Subsistema del robot
Del lado derecho del bloque se encuentran las entradas las cuales están
conectadas a las revolutas y del lado izquierdo están las 6 salidas 3 de estas son
las velocidades angulares y las otras 3 son los torques.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 12/28
Ya con la estructura del robot los archivos de Solidworks fueron exportados
a Matlab™ para obtener la visualización del robot así que dentro de los bloques de
body se cambio lo siguiente.
Ilustración 20 Visualización del robot
Los archivos de Solidworks fueron guardados en .STL y dentro del apartado
de visualización en la parte de geometría del cuerpo se cambio de usar por default
el cuerpo geométrico por archivo grafico externo y se dio click en el recuadro de
tres puntos anexo a esto se busco el archivo que correspondía a la base y se dio
en aplicar. Los mismos pasos se realizaron para los 3 eslabones y el resultado se
muestra a continuación.
Ilustración 21 Modelo del robot vista vertical Ilustración 22 Modelo del robot vista superior
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 13/28
Ilustración 23 Modelo del robot desde otro angulo
Como se aprecia son 4 las piezas que conforman el robot. Una vez que se
contaba con la estructura del robot lo que se necesito fue el control de los
motores para obtener un movimiento adecuado en cada una de las uniones, así
que lo que se hizo fue realizar un control PID el cual quedo de la siguiente
manera.
Ilustración 24 PID
Una vez que se tuvo el PID se convirtió en un subsistema para acoplarlo
con el siguiente diagrama de bloques y así obtener el motor.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 14/28
Ilustración 25 Diagrama de bloques del motor
De la misma forma se creó un subsistema del diagrama de bloques que
conformaban el motor y se conecto a las entradas del robot.
Ilustración 26 Motores del robot
Dentro del PID se introdujeron variables kp,ki y kd las cuales fueron
añadidas al programa para.m para que por default al dar doble click en elsubsistema de parámetros las variables adquirieran los valores del programa.Pero
aun con los motores el robot se comportaba inestable esto se debía a que el PID
no se encontraba ajustado así que se introdujo una señal con un bloque llamado
signal builder.
Ilustración 27 Signal builder
Este bloque permite crear una señal a nuestro gusto. Dando doble click
cobre el bloque se despliega la siguiente pantalla en donde se creó la siguiente
señal.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 15/28
Ilustración 28 Señal
Una vez que la señal fue creada se conecto de la siguiente manera con los
motores.
Ilustración 29 Conexión de la señal a los motores
Como se puede apreciar la señal llega a los 3 motores por medio de un
punto de suma y restando se encuentra un bloque From los cuales hacen
referencia a las salidas de la velocidad angular de cada una de las rotaciones esto
se conoce como retroalimentación y que viene de la salida.
Posterior a esto se introdujo otro bloque en el cual se guardara una variable
llamada referencia y que tendría 2 listados de valores uno de tiempo y el otro de
valores en esos tiempos.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 16/28
Ilustración 30 Workspace
Dentro de los parámetros del bloque se modifico lo siguiente:
Ilustración 31 Parámetros modificado en workspace
En el apartado de nombre de la variable se sustituyo por la variable
mencionada anteriormente referencia. Después de esto se introdujo un bloque
llamado signal constraint el cual obtendría los valores de las variables del PID.
Ilustración 32 Signal constraint
En este bloque se modificaría lo siguiente:
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 17/28
Ilustración 33 Tuneo de parámetros
Dando doble click sobre el bloque se abre una ventana que se refiere a los
parámetros del bloque y en el apartado de optimización damos click desplegando
un listado en donde se selecciono tuneo de parámetros abriendo otra ventana en
donde se dio click en add para introducir las variables a tunear.
Después de esto se selecciono el apartado de goals y dentro del listado se
selecciono desired reponse y se desplego la siguiente pantalla.
Ilustración 34 Desired response
Se introdujo como se aprecia en la imagen referencia.time y
referencia.signals.values. Después de esto se dio start para que el sistema
comenzara a calcular los valores y para poder observar cómo se iba ajustando las
señal de salida se realizo la siguiente conexión.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 18/28
Ilustración 35 Conexión para observar repuesta de la velocidad angular
En la figura superior se muestra 4 from el que hace mención a referencia es
la señal de entrada q se creó en el signals builder y los 3 bloques restantes son las
salidas del robot las cuales cada una de estas va a un mux y posterior a este a un
scope. Tras varios tuneos el signasl constraint arrojo los siguientes valores.
%Valores de las ganancia de los controles de los motores
kp=1; kd=0.40; ki=0.3037;
kp1=0.3; kd1=1.36; ki1=0.01;
kp2=0.52; kd2=1.03; ki2=0.45;
Los primeros 3 valores corresponden al motor1 y así sucesivamente hasta
llegar al tercer motor. La señal de salida quedo de la siguiente forma.
Ilustración 36 Resultado después de tunear
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 19/28
Como se puede apreciar en la grafica en donde se muestra cada una de las
salidas del robot correspondiente a las entradas de los 3 motores, la salida es muy
parecida a la entrada la cual es de color morado y la salida es color amarillo. En la
parte superior se muestra la grafica del motor1 en la grafica de en medio
corresponde al motor2 y la última grafica corresponde al motor3. Lo torques
requeridos para decidir que motor usar fueron los siguientes.
Ilustración 37 Graficas de torque
Como se puede apreciar la grafica mas estable fue la del motor1 con un
torque de 0.5N, el motor 2 debía soportar un torque de 1.3N aproximadamente y el
motor 3 0.5N. Una vez que se obtuvo el control del motor el esquema quedo dela siguiente manera:
Ilustración 38 Diagrama de control del robot
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 20/28
Después de tener el control y el robot terminado se dio paso a hacer uso de
una herramienta de Matlab™ llamada VRML la cual permite observar a un mejor el
diseño del robot. Primero se introdujo un bloque de VR sink.
Ilustración 39 Ubicación del bloque VR sink
Ilustración 40 Bloque VR sink
Una vez que se coloco el bloque volvimos a guardar el archivo del robot
pero esta vez en .WRL. Después dando doble click sobre el bloque se desplego el
siguiente recuadro:
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 21/28
Ilustración 41 Despliegue del bloque VR sink
Seleccionando el recuadro de nuevo se despliega el siguiente cuadro.
Ilustración 42 Robot en VRML
Del lado izquierdo aparecen cada uno de los elementos que conforman al
robot. Lo primero que se hizo fue ubicar los 3 motores y la base ya que el software
se maneja por jerarquías así que cuando el motor1 comenzara su movimiento
debería de mover las piezas el eslabón 1, eslabón 2 y eslabón 3. Una ves
ubicadas estas piezas se dio paso a ubicar los otros elementos. Posterior a esto
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 22/28
se comenzó por introducir al motor1 dentro de la base en la sección que dice
children ya que el motor 1 es un hijo de la base, también el motor 2 se introdujo en
children pero este del motor1 y por último el motor 3 se introdujo en children del
motor2. Todas las piezas que conformaban el eslabón1 se introdujeron en la
misma jerarquía que el motor 2 dentro de children del motor1, las piezas que
conformaban el eslabón 2 se introdujeron en la misma jerarquía que el motor 3
dentro de children del motor2 y por último las piezas que conformaban al eslabón
3 se introdujeron dentro d children del motor 3 y se obtuvo la siguiente jerarquía:
Ilustración 43 Hijos de la base Ilustración 44 Hijos del motor1 e hijos del motor 2 Ilustración 45 Hijos del motor 3
En cada motor se cambio el origen para que el motor girara de acuerdo a lo
establecido.
Ilustración 46 Origen motor 1
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 23/28
Ilustración 47 Origen motor 2
Ilustración 48 Origen motor 3
Y el resultado tras hacer este bloque fue el siguiente:
Ilustración 49 Robot VRML
Por último se conecto de la siguiente manera para introducir la señal de
salida del robot correspondiente a los motores.
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 24/28
Ilustración 50 Diagrama de bloques de VRML
Dentro del subsistema en donde se muestra la imagen del robot se realizo
el siguiente diagrama de bloques.
Ilustración 51 Subsistema de VRML
En la figura de arriba se aprecian 3 entradas las cuales son las salidas del
robot y que llegan a una ganancia la cual es un multiplicación para convertir a
radianes el resultado y en la parte superior se aprecia una constante la cual indica
el eje de giro del robot y por ultimo ambas se conectan a un mux y van a una
salida la cual fue conecta al bloque VR sink. Una vez hecho esto se obtuvo el
diseño completo de un robot manipulador en Matlab™
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 25/28
RESULTADOS
Ilustración 52 Estructura del robot
Ilustración 53 modelo del robot
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 26/28
Ilustración 54 Control del robot
Ilustración 55 Robot en VRML
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 27/28
Ilustración 56 Resultado final
Ilustración 57 Robot manipulador
5/12/2018 RP2MTR20113_9A[EQUIPO 1] - slidepdf.com
http://slidepdf.com/reader/full/rp2mtr201139aequipo-1 28/28
CONCLUCIONES
El diseño y control del robot se realizaron correctamente obteniendo un
robot con motores de poco torque, además la herramienta de Matlab™ VRML
ayudo a que el robot pudiese apreciarse como si este fuese real. Por último el
robot manipulador se adapta a cualquier señal de entrada que se le dé ya que conel ajuste del control por medio del PID la señal de entrada que coloquemos no
altera el movimiento del robot.
BIBLIOGRAFIA
Referencias
• Sección de ayuda Matlab™
• Simulink 3D Animation. Animate and visualize Simulink models in three
dimensions. PDF de la Página http://www.mathworks.com/
• “Herramienta de Matlab” Capítulo IV Simulación de un robot UDLAP y del
controlador difuso.