Proyecto Final Etapa 2
Benemérita Universidad Autónoma de Puebla
Facultad de Ciencias de la Electrónica
Integrantes:
Ana Cristina Gatell Sisniega
Diana Gómez Torres
Hector Coeto Sánchez
Miguel Ángel Pazarán Hernández
Fernando Salvador Secundino
Abstract—For this part of the project, SolidWorks and Matlab estándares solicitados. Se optó por usar el software de
software will be used, which will be linked to analyze the dynamic SOLIDWORKS, proporciona un entorno de desarrollo en 3D
system and observe the behavior that the mechanism will have. intuitivo que ayuda a aumentar al máximo la productividad de sus
recursos de diseño e ingeniería para crear productos mejores con
I. INTRODUCCIÓN mayor rapidez y rentabilidad. El ensamble se pensó en 4 diferentes
piezas, una base que fingiera como referencia, un primer sólido
La robótica cumple un papel fundamental en la vida y desarrollo que representara el desplazamiento dentro del eje “x”, al cual se le
de la raza humana, ya que abarca una gran cantidad de áreas del consideró como carro 1, un segundo carro que estuviese montado
conocimiento. Es una rama que sigue siendo experimental y que sobre el primero y que tuviera la capacidad de trasladarse en el eje
requiere de mucho trabajo matemático y fısico, sin embargo, los “y”, además de un último carro que simulara la parte de la porta
robots tienden a interactuar más en su entorno y designan su herramienta y que fuese capaz de subir y bajar con respecto al eje
movimiento a tal grado que siga una trayectoria preestablecida, “z”.
cuestión que implica el control de sistemas dinámicos y sus
variables. La base de la robótica consiste en el amplio desarrollo de
sistemas de control, los cuales se representan gráficamente ´
como una caja que tiene entradas y salidas las cuales comparten
relación alguna, lo anterior es con el fin de regular o rectificar el
comportamiento de algún otro tipo de sistema.
De entre sus aplicaciones destacan aquellas que van desde la
fabricación en aparatos médicos hasta la innovación de procesos de
producción, lo cual implica maquinaria inteligente que se adaptan
al entorno de trabajo adecuando interfaces adecuadas y avanzadas
de modo que se acerque más a la simulación de una interacción
humana
II. PLANTEAMIENTO DEL PROBLEMA Y MARCO Fig 1. Carro 1
TEÓRICO
Actualmente la problemática que se tiene con el control de un
robot cartesiano es el hecho de soportar entorno no estructurados
sin la continua supervisión del usuario, para nuestro caso, el simple
hecho de no respetar el curso de una simple trayectoria debido a
distintos factores que afectan el comportamiento del mismo y que
no acate a las estrictas normas de calidad. Ciertas labores de
manipulación se pueden ́automatizar de manera sencilla con la
interacción de tres módulos lineales (x, y, z), siendo
potencialmente ´
efectivo en algunas aplicaciones industriales tales como el
montaje, la manipulación y la extracción de piezas mecánicas.
dentro de prototipos.
A continuación, se presentar a la forma en como se puede
manipular un robot cartesiano o mesa XY por medio de un control Fig 2. Carro 2
PD, se incluirá el proceso de construcción de las piezas necesarias,
el ensamble que se requiere hacer para poder generar un prototipo
de simulación, además de los bloques de código fundamentales
para para poder generar una simulación en el tiempo del
comportamiento de un robot de tres grados de libertad a partir de
una trayectoria previamente impuesta por el docente de la materia.
III. EJECUCIÓN
Como primeros planteamientos se consideró que era necesario
desarrollar un prototipo que fuese capaz de cumplir con los
Es necesario activar el complemento de “Simscape Multibody
Link”:
Antes de poder abrir el archivo en SIMULINK es necesario
Fig 3. Carro 3 cambiar la ruta común del simulador para que este pueda encontrar
el archivo .xml. Dentro de la ventana de comandos de MATLAB se
debe de ejecutar la instrucción:
smimport(‘<Nombre_de_Archivo>.xml’). Y obtendremos lo
siguiente:
Se procede a editar los bloques con los pares prismáticos,
manipulando las opciones de ActuationForce-Provided by Input y
Sensing-Position. Seguido de ello se debe incluir una salida y una
entrada además de dos bloques que transforman las entradas y
Fig 4. Base salidas de los bloques a entradas y salidas de datos. Obteniendo lo
siguiente:
Para poder tener una simulación en el tiempo del comportamiento
del prototipo es necesario ejecutar dicha simulación en un
programa computacional dise ´ nado para ejecutar gran variedad de
operaciones y tareas, por tal motivo se recurrió a utilizar el
programa MATLAB, el cual ofrece un entorno de programación
visual de alto nivel llamado SIMULINK con el cual a partir de
programacion por medio de bloques, la simulación propuesta para
dicho proyecto pudo ser capaz de cumplir con las expectativas ´
planteadas.
Para poder tener una efectiva comunicación entre el software de
dise ´ no y el software de simulación (MATLAB-SOLIDWORKS), Todo el diagrama anterior debe de seleccionarse para al
es necesario instalar un complemento llamado “Simscape posteriormente crear un subsistema con las entradas y salidas
Multibody”, se descargaron dos archivos, el primero de nombre definidas con anterioridad. Para poder tener un mejor manejo de
simlink.r2022b.win64.zip y el segundo llamado installaddon.m. datos se agregaron un multiplexor y un demultiplexor encargados
Para poder exportar los archivos de SOLIDWORKS a un formato de separar o unir los vectores de información que entran y salen del
que pueda abrir SIMULINK es: sistema.
Se agregó un bloque de función que tomará el rol y nombre del
control proporcional derivativo que contendrá el código que se
desarrolla a continuación. Se consideró la estructura de control
conocida como:
Ya que el modelo dinámico de n grados de libertad considera
parámetros como Coriolis y el par gravitacional se debe de
considerar que el carro 3 tiene una energía potencial variable
debido a que su desplazamiento es sobre el eje z0 y para las otras
articulaciones la energ´ıa potencial es constante mientras que el par
gravitacional es nulo. Al no presentar rotación en sus
articulaciones las fuerzas centrıpetas y de Coriolis son cero por lo
cual se eliminan totalmente de la ecuación y por tanto del código.
control PD con compensación de gravedad, la cual está definida a
partir de:
Retomando el código del control y aclaradas las condiciones
anteriores, se declaran vectores, variables y constantes, dentro de
Por tanto, se necesitaba una entrada llamada “qtilde” que es el los cuales es necesario considerar la masa de cada cuerpo:
error de posición definida por:
Otra entrada que es la posición deseada, la cual es suave y acotada:
Además de definir dos ganancias simétricas que forman parte del
control, la ganancia proporcional:
Y la ganancia derivativa que gracias a la experiencia en
simulaciones de control es definida como:
Lo anterior considerando el modelo dinámico de n grados de
libertad en un robot:
Se considera el sistema dinámico del robot:
Tenemos que tau ( τ ) son las entradas a los pares prismáticos y q
las salidas ya que son necesarias las coordenadas de las
articulaciones para interpretar el comportamiento del robot en un
gráfico x, y. ´
Cuando se efectúa un movimiento plano de traslación como el caso
de las articulaciones prismáticas del robot cartesiano se necesita Finalmente se crean las matrices de ganancias y la salida de la
conocer el movimiento del centro de masa ya que todo permanece función con respecto al modelo
invariante respecto a este centro. Para determinar las ecuaciones
del movimiento traslación en el eslabón, pueden existir fuerzas
internas y externas actuando sobre dicho cuerpo, las internas no
cambian el estado del movimiento del sistema y las externas si lo
hacen, en este caso considerando que cada eslabón del robot
cumple con la segunda ley de Newton del movimiento.
La segunda ley de Newton establece que la aceleración de un
objeto es directamente proporcional a la ´
fuerza neta que actúa sobre el mismo, e inversamente proporcional
a su masa. La e describe la segunda ley de Newton donde fuerza es
igual a la masa del cuerpo por la aceleración o en este caso la
derivada de la velocidad y de aquí se parte para determinar el
modelo dinámico del sistema robótico.
Se colocó el código anterior dentro de la función Control.Se
colocaron MUX y DEMUX a la entrada y salida del bloque de
función además de insertar las entradas y la salida tau. Y
finalmente se agregaron los puertos de entrada y salida obteniendo
En base al sistema mecánico del robot cartesiano la suma de
lo siguiente:
fuerzas en z en la solo intervienen las magnitudes de la normal
menos el peso del cuerpo, en este caso el peso solo se aplicará al
tercer carro.
Se agregan el MUX y DEMUX respectivo, recordando que la
entrada única de este bloque es el tiempo ´y agregando el puerto de
salida
Se realizó la creación de estos bloques como un subsistema que
conecta la salida del control a la entrada de la planta. Además de
conectar las entradas q como las coordenadas, qp la derivada de
dichas coordenadas y qtilde que es el error de posición al que resta
a la trayectoria que se define a continuación. Para definir el
trayecto (parte fundamental de este proyecto) que debe de seguir el
robot cartesiano, es posible definirlo por un vector que arroje
coordenadas (x, y, z), pero debido a que esto es poco factible para
la capacidad del proyecto, se optó por definir una función en donde
se establezcan trayectorias parametrizadas para las coordenadas (x,
y, z) y así en función del tiempo el robot cartesiano recorre
trayectos definidos. Se introdujo un bloque de función llamado
Trayectoria. dentro de dicho bloque es necesario determinar un Después de esto se realizó la conexión necesaria entre los
código capaz de enviar parametrizaciones que la planta pueda componentes obteniendo:
seguir. Definiendo en primera instancia la variable de entrada que
para este modelo es el tiempo, ya que ese es el objetivo planteado
desde un inicio
En las simulaciones que se encontrarán en el apartado de
Resultados, se observó que la trayectoria es muy grande con
respecto a las dimensiones que se manejaron en el diseño del
ensamble, por lo que se decidió multiplicarlo por una ganancia
igual a 0.01.
Se le asigna una trayectoria:
Se agregaron tres bloques que mostrarán el comportamiento de las
variables en el tiempo, tales como q,τy un graficador xy que
Debido a que esa parametrización solo considera el movimiento mostrará el comportamiento del robot desde una vista superior.
del eje xy, se tuvo que modificar dichas trayectorias considerando
que el robot parte del origen, y los trazos que lleva del origen al
punto de inicio de trazado no deben de ser considerados. Las
trayectorias se transformaron en funciones a trozos
dependientes del tiempo, en donde pasado cierto tiempo de inicio
el carro 3 descendiera y ascendiera una vez terminado el trazo y
que este no se ciclara definiendo un tiempo límite de trazo.
Los resultados arrojados por los osciloscopios y el graficador se
presentan a continuación en un tiempo de 50 segundos.
botmanipulator/ug/control-cartesian-pose.ht
ml
●
Comportamiento de Tau
Comportamiento de q
Gráfica xy
IV. CONCLUSIÓN
El modelo dinámico del robot Cartesiano es una aproximación al
modelo fısico el cual ayuda a predecir su comportamiento y así
poder diseñar un controlador para dicho sistema, sin embargo, hay
un inconveniente el cual es el cálculo de parámetros fısicos que
dependen del sistema mecánico y que se obtienen a través de la
experimentación
V. REFERENCIAS
● Robots cartesianos. ¿Qué es un robot cartesiano? -
SEMAIQ #1. (s. f.). Comercializadora Industrial Semaiq
S.A. de C.V.
https://semaiq.com/robots-cartesianos-que-es-un-robot-c
artesiano/
● Control Cartesian Pose Using MATLAB-
MATLAB & Simulink- MathWorks América
Latina. (s. f.). MathWorks - Creadores de
MATLAB y Simulink - MATLAB y Simulink -
MATLAB & Simulink.
https://la.mathworks.com/help/supportpkg/ro