2. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
Índice
1. Introducción 3
2. Objetivo 3
3. Marco Teórico 3
4. Desarrollo 7
4.1. Reporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2. Fotos de la secuencia lograda en el laboratorio . . . . . . . . . . . . . . . . . . . . . . 8
4.3. Preguntas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5. Forma de Trabajo y procedimiento 13
6. Conclusión 13
2
3. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
1. Introducción
Cada vez que me adentro en el mundo de la arquitectura de robots, me doy cuenta de que el
diseño preciso de trayectorias es un componente esencial para lograr un funcionamiento óptimo de
estas máquinas. En esta práctica, tendremos la oportunidad para explorar cómo diseñar trayectorias
utilizando una API dedicada al elemento final del robot. No solo consideraremos los puntos vı́as
intermedios, sino que también tendremos en cuenta la orientación del brazo, todo ello aprovechando
el poderoso software M1Studio.
A lo largo de esta práctica, adquiriré las habilidades necesarias para planificar movimientos y tra-
yectorias en robots, lo que constituye un paso fundamental en el desarrollo de aplicaciones robóticas
avanzadas y el control preciso de máquinas en entornos diversos. Esta experiencia me brindará la
oportunidad de explorar las emocionantes posibilidades que ofrece la robótica y de desarrollar una
comprensión más profunda de cómo estas máquinas pueden desempeñar un papel crucial en la au-
tomatización de tareas en diversos sectores, desde la fabricación hasta la atención médica. Estoy
entusiasmado por lo que aprenderé en esta práctica y por cómo esta experiencia sentará las bases
para futuros proyectos y desafı́os en el apasionante campo de la robótica.
2. Objetivo
El estudiante diseñará trayectorias mediante API para el elemento final del robot considerando los
puntos vı́as (intermedios) y la orientación del brazo.
El objetivo de esta práctica es que el estudiante desarrolle la capacidad de diseñar trayectorias
precisas y eficientes mediante una API especı́fica destinada al elemento final del robot. En este
proceso, se enfocará en cuidadosamente considerar y manipular puntos vı́as intermedios, además
de tener en cuenta la orientación del brazo del robot. Esta habilidad es fundamental para lograr
movimientos suaves y controlados, permitiendo al estudiante explorar y comprender cómo planificar
con destreza las rutas que el robot debe seguir en diversas tareas y aplicaciones. Al dominar este
objetivo, el estudiante estará mejor preparado para abordar desafı́os robóticos avanzados y contribuir
al desarrollo de aplicaciones precisas y eficaces en el campo de la robótica.
3. Marco Teórico
¿Qué es la interpolación?
La interpolación es una técnica que se utiliza para agregar nuevos puntos de datos dentro del rango
de un conjunto de puntos de datos conocidos. Es posible usar la interpolación para rellenar datos
faltantes, suavizar datos existentes y hacer predicciones, entre otras cosas.
3
4. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
Figura 1: Una interpolación de un conjunto finito de puntos en un epitrocoide. .
Los puntos en rojo están conectados por curvas spline interpoladas en azul deducidas únicamente de
los puntos rojos. Las curvas interpoladas tienen fórmulas polinomiales mucho más simples que la de
la curva epitrocoide original.
En el campo matemático del análisis numérico, la interpolación es un tipo de estimación, un método
para construir (encontrar) nuevos puntos de datos basados en el rango de un conjunto discreto de
puntos de datos conocidos.
En ingenierı́a y ciencia, a menudo se tiene una serie de puntos de datos, obtenidos mediante muestreo
o experimentación, que representan los valores de una función para un número limitado de valores de
la variable independiente. A menudo es necesario interpolar; es decir, estimar el valor de esa función
para un valor intermedio de la variable independiente.
Un problema estrechamente relacionado es la aproximación de una función complicada mediante una
función simple. Supongamos que se conoce la fórmula de alguna función dada, pero es demasiado
complicada para evaluarla de manera eficiente. Se pueden interpolar algunos puntos de datos de la
función original para producir una función más simple que aún se acerque bastante a la original.
La ganancia resultante en simplicidad puede compensar la pérdida por error de interpolación y
proporcionar un mejor rendimiento en el proceso de cálculo.
4
5. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
Figura 2: Gráfico de los puntos de datos como se indica en la tabla. .
El método de interpolación más simple es localizar el valor de datos más cercano y asignar el mismo
valor. En problemas simples, es poco probable que se utilice este método, ya que la interpolación lineal
(ver más abajo) es casi tan fácil, pero en la interpolación multivariada de dimensiones superiores,
esta podrı́a ser una opción favorable por su velocidad y simplicidad.
La interpolación en robots
Capacidades de interpolación (cinemática): es un robot que generalmente es capaz de realizar ci-
nemática tanto directa como inversa. Ambos se combinan para darle al robot la capacidad de moverse
en el espacio articular y en el espacio cartesiano. Normalmente nos referimos a los movimientos como
interpolación conjunta, lineal o circular.
Figura 3: Interpolar una posición usando script.
5
6. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
¿Qué son las curvas Bézier y para qué sirven?
Las curvas de Bézier se utilizan en software de dibujo vectorial, como Flash, Illustrator, Inkscape,
ası́ como en programas de diseño como Photoshop o de diseño CAD. Esto es posible gracias al uso
de algoritmos que son eficientes y rápidos para calcular curvas de Bézier en una computadora.
Una curva de Bézier es una curva polinomial que aproxima a una serie de puntos llamados ”puntos
de control”. Esta curva puede ser de cualquier grado, y podemos decir que de una curva de grado
aproxima a + 1 puntos de control.
Figura 4: Las curvas cuadráticas de Bézier se combinan para formar cuatro secciones flexibles.
Hay dos sensores montados en el robot, uno en la cola de la segunda sección y el otro en la cola de la
cuarta sección. Cada sección se reconstruye con una curva de Bézier cuadrática. Con los parámetros
conocidos P 0 , H 0 , P 4 , H 4 , P 8 y H 8 , se pueden resolver las cuatro curvas.
Propiedades Útiles
Existen muchos algoritmos para evaluar y subdividir curvas de Bézier en piezas pequeñas que a su
vez son curvas de Bézier. Uno de ellos es el algoritmo de tipo dividir y conquistar, llamado Algoritmos
de Casteljau, que se basa en usar interpolaciones lineales y dividirlas.
Las curvas son simétricas: revertir el orden de los puntos de control produce la misma curva, con una
parametrización inversa.
Cualquier operación de traslación, escalado, rotación o sesgado aplicada a los puntos de control se
aplica a la curva misma. (affine invariant).
6
7. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
4. Desarrollo
En esta practica se uso la interfaz M1Studio para manipular el robot Dobot M1 con el fin de crear
las trayectorias en las que se moviera el robot de forma continua y precisa..
Figura 5: Código utilizado para mover el robot.
Donde, dType.SetPTPCommonParamsEx(api,20,50,1) indica la velocidad y la aceleración.
dType.SetPTPJumpParamsEx(api,20,200,1) indica el lı́mite del eje Z
El ciclo dentro del while describe la posición del brazo y las coordenadas X,Y,Z del efector como se
describe a continuación.
dType.SetArmOrientationEx(api, 0, 1), describe la orientación del brazo, left = (0,1), right =(1,1).
dType.SetPTPCmdEx(api, 2, 223, 276, 100, 0, 1), describe la posición en coordenadas como sigue
en los ejes X, Y, Z, R = (api,2, X, Y, Z, R, 1).
7
12. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
Figura 14: Posición del robot 8.
En esta secuencia de fotos pudimos observar que nuestro robot al inicializar con la programación
previamente hecha en el apartado de Script en la interfaz de M1Studio, tuvo un movimiento a las
diferentes coordenadas muy agil a la vez que de forma ciclica, esto es, se repetı́a a menos de que
nosotros lo detuvieramos. Además de esto lo que nos mostraba esta programación era que la articu-
lación donde puede soportar una carga no se movı́a, sino que las demás articulaciones la trasladaban
para hacer una interpolación.
4.3. Preguntas
1. ¿Cuál es la diferencia entre los movimientos por ejes y mediante uniones?
Los movimientos por ejes y mediante uniones son dos enfoques distintos utilizados en la robótica
para controlar y definir el movimiento de un robot. La principal diferencia entre los movimientos por
ejes y mediante uniones radica en la forma en que se controla y describe el movimiento del robot. Los
movimientos por ejes se centran en las coordenadas cartesianas y la orientación del extremo, mientras
que los movimientos mediante uniones se centran en las posiciones y velocidades de las articulaciones
del robot. La elección del enfoque dependerá de las necesidades especı́ficas de la aplicación y las
capacidades del robot en cuestión.
2. ¿Cuál de los dos tipos movimientos es mejor y por qué?
12
13. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
No se puede decir que uno sea intrı́nsecamente ”mejor”que el otro, ya que la elección depende de las
necesidades especı́ficas del proyecto y el contexto de la aplicación. En muchos casos, la elección se
basa en encontrar el equilibrio adecuado entre la facilidad de programación y la precisión requerida.
Ambos enfoques tienen su lugar en el mundo de la robótica y se utilizan en función de los objetivos
y requisitos de cada aplicación.
3. Mencione una ventaja de la programación mediante un script y la asignación de coordenadas
realizada en la práctica anterior.
Una ventaja de la programación mediante un script y la asignación de coordenadas en la práctica de
programación basada en movimientos por ejes es la flexibilidad y la capacidad de automatización. Al
utilizar un script para definir las coordenadas y trayectorias del robot, es posible automatizar tareas
repetitivas y secuencias de movimientos de manera eficiente. Esto es especialmente beneficioso en
aplicaciones de fabricación y ensamblaje, donde se pueden programar robots para realizar tareas de
manera consistente y precisa, sin la necesidad de una intervención manual constante.
Además, la programación mediante un script permite la posibilidad de realizar ajustes y mo-
dificaciones rápidamente. Si es necesario cambiar una trayectoria o coordinar múltiples movimientos,
se pueden hacer ajustes en el script de manera relativamente sencilla, lo que ahorra tiempo y recursos
en comparación con la reprogramación manual de cada movimiento.
5. Forma de Trabajo y procedimiento
En la presente práctica estaremos centrándonos en el desplazamiento del robot ya antes visto en
prácticas pasadas, el M1 Dobot, el cual es tipo SCARA. Para esto fue necesario de conocer a fondo
las trayectorias de desplazamiento para la realización de movimiento de manera precisa. Obtuvimos
estos conocimientos indagando en fuentes de información en sitios web de internet ademas de leer la
información proporcionada procedente del archivo que se adjunto en la práctica.
La práctica fue completada satisfactoriamente y sin ningún problema, todo esto gracias a que se-
guimos al pie de la letra las instrucciones del archivo adjunto. Primero que nada leı́mos el pdf
proporcionado entendiendo la función Script de la interfaz M1Studio. Después era tiempo de añadir
los movimientos de la trayectoria que el robot deberı́a de seguir, se nos proporcionó una codificación
con las coordenadas que agregarı́amos al software y corroboramos que estas coordenadas estaban
dentro del espacio de trabajo del robot, respetando sus restricciones.
6. Conclusión
En conclusión, esta práctica de arquitectura de robots ha sido una experiencia que me ha permitido
adentrarme en el mundo de la programación y control de robots. Diseñar trayectorias mediante una
API para el elemento final del robot, teniendo en cuenta los puntos vı́as intermedios y la orientación
13
14. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
del brazo, ha sido un desafı́o que me ha proporcionado una comprensión más profunda de la robótica
y sus aplicaciones.
A través del uso del software M1Studio, he podido explorar las posibilidades de controlar robots de
manera precisa y eficiente, lo que es esencial en una variedad de industrias, desde la manufactura
hasta la atención médica. Esta práctica me ha mostrado cómo la planificación de trayectorias es
fundamental para lograr movimientos suaves y precisos, lo que puede marcar la diferencia en la
ejecución de tareas crı́ticas.
Además, he aprendido a apreciar la flexibilidad y la automatización que ofrece la programación
mediante una API y la asignación de coordenadas.
En resumen, esta práctica me ha proporcionado habilidades valiosas y conocimientos prácticos que
estoy seguro serán de gran utilidad en mi carrera como profesional de la robótica. La robótica es
un mundo y esta práctica ha sido un paso fundamental para convertirme en un experto en este
apasionante campo.
14
15. J
u
a
n
P
a
b
l
o
E
s
q
u
i
n
c
a
M
a
g
a
l
l
ó
n
-
8
d
e
n
o
v
i
e
m
b
r
e
d
e
2
0
2
3
-
a
-
0
4
:
4
9
Laboratorio de Arquitectura de Robots Actividad Práctica No. 5
Referencias
[Cor] Curvas y superficies para Modelado. https://semana.mat.uson.mx/semanaxxxi/carteles/
uploads/28-Curvas%20de%20Bzier.pdf. [Accessed 07-11-2023].
[esr] Definición de Interpolación — Diccionario SIG — support.esri.com. https://support.esri.
com/es-es/gis-dictionary/interpolation. [Accessed 08-11-2023].
[mat] Interpolaci&xF3;n - MATLAB & Simulink - MathWorks Espa&xF1;a —
es.mathworks.com. https://es.mathworks.com/help/matlab/interpolation.html. [Ac-
cessed 08-11-2023].
[uni] Interpolate a position using script - UR Support — universal-
robots.com. https://www.universal-robots.com/articles/ur/programming/
interpolate-a-position-using-script/. [Accessed 08-11-2023].
[wik] Interpolation - Wikipedia — en.wikipedia.org. https://en.wikipedia.org/wiki/
Interpolation. [Accessed 08-11-2023].
[byu] Robotics Review — et.byu.edu. https://www.et.byu.edu/~ered/eaal/html/body_
robotics_review.html#:~:text=Interpolation%20(kinematic)%20capabilities%20-%
20robot,%2C%20linear%2C%20or%20circular%20interpolation. [Accessed 08-11-2023].
[Li] Li, Z. Quadratic Bezier. https://www.researchgate.net/figure/
Quadratic-Bezier-curves-combine-together-for-a-four-sections-flexible-robot-Two-sensors_
fig3_280093529. [Accessed 07-11-2023].
Los créditos de las fotografı́as pertenecen a sus respectivos autores.
15