Вы находитесь на странице: 1из 36

Universidad Politécnica de Victoria

Control de
manipulador
Cartesiano de 3GDL

Asignatura: Dinámica y control de robots.


Catedrático: Dr. Manuel Benjamín Ortiz Moctezuma.
Carrera: Ingeniería en Mecatrónica
9no. cuatrimestre

Integrantes:

Acuña Ríos Beraly Alejandra 1630276


Cardona Peña Lizbeth Berenice 1630422
Farías Chávez Anhuar Alejandro 1630320
Ibáñez Chávez Nubia Yoselin 1630042
Martínez Reyna José Manuel 1630025
Requena Vanoye Víctor Antonio 1630364
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Índice de contenido

Índice de ilustraciones......................................................................................................................... 3
Índice de tablas ................................................................................................................................... 3
Glosario ............................................................................................................................................... 4
Introducción ........................................................................................................................................ 5
Descripción del dispositivo .................................................................................................................. 6
Modelo cinemático del manipulador ................................................................................................ 18
Programación .................................................................................................................................... 26
Descripción del funcionamiento ....................................................................................................... 31
Contribuciones de los autores .......................................................................................................... 32
Conclusiones ..................................................................................................................................... 35
Referencias ........................................................................................................................................ 36

2|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Índice de ilustraciones

Ilustración 1. Diseño propuesto .......................................................................................................... 6


Ilustración 2. Área de trabajo del manipulador .................................................................................. 7
Ilustración 3. Área de trabajo del manipulador con dimensiones ...................................................... 7
Ilustración 4. Longitud de desplazamiento del eslabón 1 ................................................................... 8
Ilustración 5. Longitud de desplazamiento del eslabón 3 ................................................................... 8
Ilustración 6. Longitud de desplazamiento del eslabón 2 ................................................................... 9
Ilustración 7. Vista lateral del eslabón 2 ............................................................................................. 9
Ilustración 8. Vista frontal del eslabón 1 y 2 .................................................................................... 10
Ilustración 9. Vista frontal del eslabón 3 ........................................................................................... 10
Ilustración 10. Vista trasera del eslabón 2 ........................................................................................ 10
Ilustración 11. Vista ortogonal del manipulador (Eslabón 1 y 2). ..................................................... 11
Ilustración 12. Vista superior del manipulador. ................................................................................ 12
Ilustración 13. Vista frontal del manipulador (eslabón 3)................................................................. 12
Ilustración 14.Vista lateral del manipulador (eslabón 1 y 2)............................................................. 13
Ilustración 15. Diagrama de conexiones ........................................................................................... 14
Ilustración 16. Manipulador terminado (Vista superior). ................................................................. 16
Ilustración 17. Manipulador terminado (Vista lateral). .................................................................... 16
Ilustración 18. Manipulador terminado (Vista frontal). .................................................................... 17

Índice de tablas

Tabla 1. Identificación del ruteo y pines utilizados. .......................................................................... 14


Tabla 2. Componentes utilizados ...................................................................................................... 15
Tabla 3. Código fuente utilizado........................................................................................................ 30

3|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Glosario

o Articulación: Grado de libertad, es cada uno de los movimientos


independientes que puede realizar un robot.
o Movimiento lineal: Es aquel cuya trayectoria es una línea recta.
o Home: Posición inicial del área de trabajo, a donde el manipulador tendrá que
ir cada que termine una trayectoria y se empiece otra el
o Repetitividad: Diferencia entre varias medidas realizadas en las mismas
condiciones de medio ambiente por el mismo operador en un periodo de
tiempo corto.
o Robot manipulador: Se define como un sistema híbrido de cómputo que
realiza actividades físicas y de computación.
o Robot diestro: Puede alcanzar cualquier punto del espacio de trabajo en una
dirección arbitraria

4|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Introducción

Actualmente la automatización de procesos se ha convertido en un tema de interés


ya que las industrias buscan incrementar su productividad a un reducido costo.

El robot cartesiano se encuentra dentro de las aplicaciones de las maquinas


automatizadas, el cual consiste en la combinación de movimientos lineales que
generan trayectorias complejas en un plano tridimensional. Normalmente en las
industrias el robot cartesiano es utilizado en las siguientes funciones: paletización,
levantar y colocar, cortar material, aplicar soldadura, pintura y mecanizar.

Por ello en el presente proyecto se realiza el diseño, construcción y control de un


robot cartesiano que le permita al usuario generar trayectorias.

El control se diseñó mediante el software de Arduino y tiene como objetivo mantener


estable las tres articulaciones del robot para que su efector final genere la trayectoria
propuesta por el usuario, lo primordial de este control es hacer trayectorias precisas
en un tiempo mínimo.

5|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Descripción del dispositivo

En el presente proyecto se elabora el diseño y la construcción de un robot


manipulador cartesiano de 3 GDL en el que el usuario puede seleccionar
trayectorias preestablecidas que el manipulador deberá alcanzar en un espacio de
trabajo cúbica. A continuación, se muestra el diseño propuesto realizado en el
Software SolidWorks, así como también se ilustra el área de trabajo del manipulador
y las dimensiones de la misma; además en las ilustracionesIlustración 4,Ilustración
5 yIlustración 6 se aprecian las medidas de los desplazamientos de cada uno de los
eslabones.

Ilustración 1. Diseño propuesto

6|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 2. Área de trabajo del manipulador

Ilustración 3. Área de trabajo del manipulador con dimensiones

7|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 4. Longitud de desplazamiento del eslabón 1

Ilustración 5. Longitud de desplazamiento del eslabón 3

8|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 6. Longitud de desplazamiento del eslabón 2

Ilustración 7. Vista lateral del eslabón 2

9|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 8. Vista frontal del eslabón 1 y 2

Ilustración 9. Vista frontal del eslabón 3

Ilustración 10. Vista trasera del eslabón 2

10 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

El área de trabajo cuenta con algunas limitaciones debido a la configuración y el


dimensionamiento del manipulador, puede alcanzar a todos los puntos que se
programen y estén dentro del área de trabajo, pero solo llega a ellos por una
dirección, lo que quiere decir que el manipulador no es diestro.

Para la construcción del manipulador se emplearon escuadras para el soporte del


primer eslabón, un tornillo sin fin con dos varillas rectificadas a los costados, las
cuales en cada una de ellas se encuentra un balero lineal para el desplazamiento
de un perfil de aluminio en donde descansa una placa de aluminio que se encuentra
fijo del segundo eslabón, el cual está conformado de igual manera que el eslabón
anterior a diferencia de que el movimiento se lleva a cabo solamente con una varilla
rectificada y un tornillo sin fin .

A diferencia de los primeros dos primeros eslabones que se encuentran en posición


horizontal, el tercer eslabón se colocó verticalmente y en el se instaló el efector final,
que tiene como forma un puntero.

Ilustración 11. Vista ortogonal del manipulador (Eslabón 1 y 2).

11 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 12. Vista superior del manipulador.

Ilustración 13. Vista frontal del manipulador (eslabón 3).

12 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 14.Vista lateral del manipulador (eslabón 1 y 2).

13 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Para el funcionamiento del robot manipulador se hizo uso de motores CD con


encoders rotatorios ubicados en una de las escuadras de cada eslabón, así como
de dos módulos de puente H para el control de la dirección de giro de los motores

A continuación, se puede observar el diagrama de conexiones del manipulador.

Ilustración 15. Diagrama de conexiones

Color Pin Color Pin


5 V / 12V IN 2

GND ENABLE

Señal de los Limit Switch Señal de los encoder

OUT 1, OUT 2 (Motores) IN 1

Tabla 1. Identificación del ruteo y pines utilizados.

14 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Etiqueta Componente Propiedades


Componente1 Arduino Mega 2560 (Rev3) Tipo Arduino MEGA 2560 (Rev3)
D2F1 D2F-FL Omron Snap Action Limit actuator lever; mounting PCB; termination
Switch with Level
style solder pin; series D2F; contact rating 1
Amp at 125 Volts, 0.5 Amp at 30 Volts;
operating force 25 g
D2F2 D2F-FL Omron Snap Action Limit actuator lever; mounting PCB; termination
Switch with Level style solder pin; series D2F; contact rating 1
Amp at 125 Volts, 0.5 Amp at 30 Volts;
operating force 25 g
D2F3 D2F-FL Omron Snap Action Limit actuator lever; mounting PCB; termination
Switch with Level style solder pin; series D2F; contact rating 1
Amp at 125 Volts, 0.5 Amp at 30 Volts;
operating force 25 g
J1 Screw terminal - 2 pins espacio entre pines 0.137in (3.5mm);
paquete THT; Alfileres 2; Tamaño del hoyo
1.0mm,0.508mm
J2 Generic female header - 2 pins row single; forma ♀ (female); espacio entre
pines 0.1in (2.54mm); paquete THT; Tamaño
del hoyo 1.0mm,0.508mm; Alfileres 2
J3 Generic female header - 2 pins row single; forma ♀ (female); espacio entre
pines 0.1in (2.54mm); paquete THT; Tamaño
del hoyo 1.0mm,0.508mm; Alfileres 2
M1 DC Motor
M2 DC Motor
M3 DC Motor
RE1 Rotary Encoder Tipo ALPS STEC12E07; paquete THT
RE2 Rotary Encoder Tipo ALPS STEC12E07; paquete THT
RE3 Rotary Encoder Tipo ALPS STEC12E07; paquete THT
U1 L298_BRIDGE_DRIVER paquete powerso20; chip L298
U2 L298_BRIDGE_DRIVER paquete powerso20; chip L298

Tabla 2. Componentes utilizados

15 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 16. Manipulador terminado (Vista superior).

Ilustración 17. Manipulador terminado (Vista lateral).

16 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Ilustración 18. Manipulador terminado (Vista frontal).

17 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Modelo cinemático del manipulador

MATRICES DE TRANSFORMACIÓN DE CADA ARTICULACIÓN

Tabla de Denavit-Hartenberg

𝒊 ∝𝒊−𝟏 𝒂𝒊−𝟏 𝒅 𝜽𝒊
1 0° 0 𝑞1 0°
2 90° 0 𝑞2 90°
3 90° 0 𝑞3 -90°

Evaluando en el primer eslabón

0 0
0 𝐼 𝑅
𝑇 =[ 1] 𝑃1 = [ 0 ]
1 0 1 𝑞1

0 𝑅 0 𝐼 𝑃1
𝑇 = [ 𝑥𝑦𝑧 ][ ]
1 0 1 0 1

𝟏 𝟎 𝟎 𝟎
𝟎
𝑻 = [𝟎 𝟏 𝟎 𝟎]
𝟏 𝟎 𝟎 𝟏 𝒒𝟏
𝟎 𝟎 𝟎 𝟏

18 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Evaluando en el segundo eslabón

1 0
1 𝐼 𝑅
𝑇 =[ 2] 𝑃2 = [ 0 ]
2 0 1 𝑞2

1 𝑅 0 𝐼 𝑃2 𝑅𝑥𝑦𝑧 0
𝑇 = [ 𝑥𝑦𝑧 ][ ][ ]
2 0 1 0 1 0 1

1 𝑅 0 𝑅𝑥90° 𝑃2
𝑇 = [ 𝑥𝑦𝑧 ][ ]
2 0 1 0 1

1 0 0 0 −1 0
𝑅𝑥90° 𝑅𝑧90° = [0 0 −1] [1 0 0]
0 1 0 0 0 1

0 −1 0
𝑅𝑥90° 𝑅𝑧90° = [0 0 −1]
1 0 0

1 0 0 0 0
𝑅𝑥90° 𝑃2 = [0 0 0
−1] [ ] = [−𝑞2 ]
0 1 0 𝑞2 0

𝟎 −𝟏 𝟎 𝟎
𝟏 𝟎 𝟎 −𝟏 −𝒒𝟐
𝑻 =[ ]
𝟐 𝟏 𝟎 𝟎 𝟎
𝟎 𝟎 𝟎 𝟏

19 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Evaluando en el tercer eslabón:

2 0
2 𝐼 𝑅
𝑇 =[ 3] 𝑃3 = [ 0 ]
3 𝑞3
0 1

2 𝑅 0 𝐼 𝑃3 𝑅𝑧−90° 0
𝑇 = [ 𝑥90° ][ ][ ]
3 0 1 0 1 0 1

1 0 0 0 1 0 0 0
2
𝑇 = [0 0 −1 0] [0 1 0 0]
3 0 1 0 0 0 0 1 𝑞3
0 0 0 1 0 0 0 1

1 0 0 0 0 1 0 0
2 0 0 −1 −𝑞3 1 0 0 0]
𝑇 =[ ][
3 0 1 0 0 0 0 1 0
0 0 0 1 0 0 0 1

𝟎 𝟏 𝟎 𝟎
𝟐 𝟎 𝟎 −𝟏 −𝒒𝟑
𝑻 =[ ]
𝟑 −𝟏 𝟎 𝟎 𝟎
𝟎 𝟎 𝟎 𝟏

0 0 1
𝑇 =𝑇 ∗ 𝑇
2 1 2

1 0 0 0 0 −1 0 0
0 0 0 −1 −𝑞2
𝑇 = [0 1 0 0
𝑞1 ] ∗ [1 0 ]
2 0 0 1 0 0
0 0 0 1 0 0 0 1

20 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

𝟎 −𝟏 𝟎 𝟎
𝟎 𝟎 𝟎 −𝟏 −𝒒𝟐
𝑻 =[ ]
𝟐 𝟏 𝟎 𝟎 𝒒𝟏
𝟎 𝟎 𝟎 𝟏

0 0 2
𝑇 =𝑇 ∗ 𝑇
3 2 3

0 −1 0 0 0 1 0 0
0 0 0 −1 −𝑞2 0 0 −1 −𝑞3
𝑇 =[ ]∗[ ]
2 1 0 0 𝑞1 −1 0 0 0
0 0 0 1 0 0 0 1

𝟎 𝟎 𝟏 𝒒𝟑
𝟎 𝟎 −𝒒𝟐
𝑻 = [𝟏 𝟎 ]
𝟐 𝟎 𝟏 𝟎 𝒒𝟏
𝟎 𝟎 𝟎 𝟏

Centro de masa:

1)Primer eslabón

0 0
0
(𝑃 𝑐1 ) = 𝑇 (𝑃 𝑐1 )
1
1 1

0 𝟎
1 0 0 0 𝑙1 𝒍𝟏
= [0 1 0 0] −
𝑞1 2 = −
𝟐
0 0 1
0 𝒒𝟏
0 0 0 1 [
1 ] [ 𝟏 ]

21 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

2)Segundo eslabón

0 0
0
(𝑃 𝑐2 ) = 𝑇 (𝑃 𝑐2 )
2
1 1

0 𝒍𝟐
0 −1 0 0 𝑙1 −
0 0 −1 −𝑞2 − 𝟐
=[ ] 2 = −𝒒𝟐
1 0 0 𝑞1
0 𝒒𝟏
0 0 0 1 [
[ 1 ] 𝟏 ]

3)Tercer eslabón

0 0
0
(𝑃 𝑐3 ) = 𝑇 (𝑃 𝑐3 )
3
1 1

𝒒𝟑
0 0 1 𝑞3 𝑙3
𝒍𝟑
0 −𝑞2 2
= [1 0 ] 0 = 𝟐 − 𝒒𝟐
0 1 0 𝑞1 𝒒𝟏
0
0 0 0 1 [ ] [ 𝟏 ]
1

Jacobiano del manipulador

0
𝜕𝑃𝑐01 −𝑙1
𝐽𝑣𝑐1 = [ 0 0] 𝑃𝑐01 =[ 2
]
𝜕𝑞1
𝑞1

𝑙2
𝜕𝑃𝑐02 𝜕𝑃𝑐02 2
𝐽𝑣𝑐2 = [ 0] 𝑃𝑐02 = [−𝑞2 ]
𝜕𝑞1 𝜕𝑞2
𝑞1

𝑞3
𝜕𝑃𝑐03 𝜕𝑃𝑐03 𝜕𝑃𝑐03 𝑙3
𝐽𝑣𝑐3 = [ ] 𝑃𝑐03 = [ 2 − 𝑞2 ]
𝜕𝑞1 𝜕𝑞2 𝜕𝑞3
𝑞1

22 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Sustituyendo los valores de 𝑃𝑐01 , 𝑃𝑐02 𝑦 𝑃𝑐03

0 0 0
𝐽𝑣𝑐1 = [0 0 0]
1 0 0

0 0 0
𝐽𝑣𝑐2 = [0 −1 0]
1 0 0

0 0 1
𝐽𝑣𝑐3 = [0 −1 0]
1 0 0

𝒄 𝒄
𝑴(𝒒) = 𝒎𝟏 𝑱𝒗𝒄𝟏 𝑻 𝑱𝒗𝒄𝟏 + 𝒎𝟐 𝑱𝒗𝒄𝟐 𝑻 𝑱𝒗𝒄𝟐 + 𝒎𝟑 𝑱𝒗𝒄𝟑 𝑻 𝑱𝒗𝒄𝟑 + 𝑱𝝎𝟏 𝑻 𝕀𝟎𝟏 𝑱𝝎𝟏 + 𝑱𝝎𝟐 𝑻 𝕀𝟎𝟐 𝑱𝝎𝟐
𝒄
+ 𝑱𝝎𝟑 𝑻 𝕀𝟎𝟑 𝑱𝝎𝟑

Nota: Los últimos tres componentes son equivalentes a cero porque el manipulador
es de configuración prismático.

Sustituyendo valores en 𝑀(𝑞)

0 0 1 0 0 0 0 0 1 0 0 0
𝑀(𝑞) = 𝑚1 [0 0 0] [0 0 0] + 𝑚2 [0 −1 0] [0 −1 0]
0 0 0 1 0 0 0 0 0 1 0 0
0 0 1 0 0 1
+ 𝑚3 [0 −1 0] [0 −1 0]
1 0 0 1 0 0

1 0 0 1 0 0 1 0 0
𝑀(𝑞) = 𝑚1 [0 0 0] + 𝑚2 [0 1 0 ] + 𝑚 [
3 0 1 0]
0 0 0 0 0 0 0 0 1

𝑚1 + 𝑚2 + 𝑚3 0 0 (𝑚1 + 𝑚2 + 𝑚3 )𝑞1̈ 0 0
𝑀(𝑞) = [ 0 𝑚2 + 𝑚3 0 ] → 𝑀(𝑞) 𝑞̈ = [ 0 (𝑚2 + 𝑚3 )𝑞2̈ 0 ]
0 0 𝑚3 0 0 (𝑚3 )𝑞3̈

23 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

𝑀(𝑞) 𝑞̈ + 𝐶(𝑞,𝑞̇) + 𝐺(𝑞) = Γ

𝑞1̈
𝑞̈ = [𝑞2̈ ]
𝑞3̈

Nota: Como 𝐶(𝑞,𝑞̇) representa la fuerza centrífuga en este ejemplo el manipulador es


de configuración cartesiano (PPP), 𝐶(𝑞,𝑞̇) es igual a:

0 0 0
𝐶(𝑞,𝑞̇) = [0 0 0]
0 0 0

𝑔𝑚̇ 1
𝑇 𝑇 𝑇
𝐺(𝑞) = (𝐽𝑣𝑐1 𝐽𝑣𝑐2 𝐽𝑣𝑐3 ) (𝑔𝑚̇ 2 )
𝑔𝑚̇ 3

0 0 1 −9.81 0 0 1 −9.81 0 0 1 −9.81


𝐺(𝑞) = −𝑚1 [0 0 0] [ 0 ] − 𝑚2 [0 −1 0] [ 0 ] − 𝑚3 [0 −1 0] [ 0 ]
0 0 0 0 0 0 0 0 1 0 0 0

9.81
𝐺(𝑞) =[ 0 ]
0

Con los valores de 𝑀(𝑞) 𝑞̈ y 𝐺(𝑞) se obtienes las siguientes ecuaciones:

(𝑚1 + 𝑚2 + 𝑚3 )𝑞1̈ + 9.81 = 𝜇1

(𝑚2 + 𝑚3 )𝑞2̈ = 𝜇2

(𝑚3 )𝑞3̈ = 𝜇3

24 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Dado que las masas de los tres eslabones son de:

𝑚1 = 1.10 𝑘𝑔

𝑚2 = 0.700 𝑘𝑔

𝑚3 = 0.200 𝑘𝑔

La matriz de masa queda de la siguiente manera:

(2.00)𝑞1̈ 0 0
𝑀(𝑞) 𝑞̈ = [ 0 (0.900)𝑞2̈ 0 ]
0 0 (0.200)𝑞3̈

Las ecuaciones dinámicas del manipulador quedan como:

(2.00)𝑞1̈ + 9.81 = 𝜇1

(0.900)𝑞2̈ = 𝜇2

(0.200)𝑞3̈ = 𝜇3

25 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Programación

int lectura;
int s1 = 0;
int s2 = 0;
int s3 = 0;
float x = 10 + 40; //10 es el fact de correc
float y = 10 + 60; //10 es el fact de correc
float z = 30 + 50; //30 es el factor de correccion
int sensor = 12;
int sensor2 = 13;
int sensor3 = 11;
int estadox = 0;
int estadoy = 0;
int estadoz = 0;
//variables del limite y el motor con encoder x
int limitex;
const int derx = 9;
const int izqx = 8;
const int enc_pinx = 19;
const int pwmx = 10;
long ticks = 0;
long ticks2 = 0;
long ticks3 = 0;

//variables del limite y el motor con encoder Z


int limitez;
const int derz = 6;
const int izqz = 5;
const int pwmz = 7;
const int enc_pinz = 21;

//variablves del limite y el motor con encoder y


int limitey;
const int dery = 2;
const int izqy = 3;
const int pwmy = 4;
const int enc_piny = 20;

26 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

void countTicks(){
ticks++;
}
void countTicks2(){
ticks2++;
}
void countTicks3(){
ticks3++;
}

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(sensor,INPUT);
pinMode(sensor2,INPUT);
pinMode(sensor3,INPUT);
//DEFINIENDO ENTRADAS Y SALIDAS
pinMode(enc_pinz, INPUT_PULLUP);
pinMode(enc_pinx, INPUT_PULLUP);
pinMode(enc_piny, INPUT_PULLUP);
pinMode(pwmx, OUTPUT);
pinMode(derx, OUTPUT);
pinMode(izqx, OUTPUT);

pinMode(pwmy, OUTPUT);
pinMode(dery, OUTPUT);
pinMode(izqy, OUTPUT);

pinMode(pwmz, OUTPUT);
pinMode(derz, OUTPUT);
pinMode(izqz, OUTPUT);
attachInterrupt(digitalPinToInterrupt(enc_piny), countTicks, CHANGE);
attachInterrupt(digitalPinToInterrupt(enc_pinx), countTicks2, CHANGE);
attachInterrupt(digitalPinToInterrupt(enc_pinz), countTicks3, CHANGE);

void loop() {
// put your main code here, to run repeatedly:

limitex = digitalRead(sensor);
limitez = digitalRead(sensor2);
limitey = digitalRead(sensor3);
if(Serial.available()>0){
lectura = Serial.read();

27 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Serial.println(lectura);
}
if(lectura == 'a' or y == 'a'){
estadox = 0;
estadoy = 0;
estadoz = 0;
}

if ((estadoy == 0) and (limitey == HIGH)){


//motor3
analogWrite(pwmy, 180);
digitalWrite(dery, LOW);
digitalWrite(izqy, HIGH);
}

if((limitey == LOW)and (estadoy == 0)){


Serial.println("ya llegué y");
Serial.println(estadoy);
analogWrite(pwmy, 0);
digitalWrite(dery, LOW);
digitalWrite(izqy, LOW);
estadoy = 1;
lectura = 'b';
ticks = 0;
}

if ((estadox == 0) and (limitex == HIGH)){


//motor3
analogWrite(pwmx, 130);
digitalWrite(derx, LOW);
digitalWrite(izqx, HIGH);
}

if((limitex == LOW)and (estadox == 0)){


Serial.println("ya llegué x");
Serial.println(estadox);
analogWrite(pwmx, 0);
digitalWrite(derx, LOW);
digitalWrite(izqx, LOW);
estadox = 1;
lectura = 'b';
ticks2 = 0;
}

if ((estadoz == 0) and (limitez == HIGH)){


//motor3

28 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

analogWrite(pwmz, 80);
digitalWrite(derz, LOW);
digitalWrite(izqz, HIGH);
}

if((limitez == LOW)and (estadoz == 0)){


Serial.println("ya llegué z");
Serial.println(estadoz);
analogWrite(pwmz, 0);
digitalWrite(derz, LOW);
digitalWrite(izqz, LOW);
estadoz = 1;
lectura = 'b';
ticks3 = 0;
}

s1 = (341 * z )/8;
s2 = (341 * y )/8;
s3 = (341 * x )/8;
//Serial.println(ticks3);
//.......................................................................
.relacion
//.......mueve z
if( estadoz == 1 and ticks3 < s1){

//Serial.println(y);
analogWrite(pwmz, 80);
digitalWrite(derz, HIGH);
digitalWrite(izqz, LOW);
Serial.println(ticks3);

}
if(ticks3 >= s1){
analogWrite(pwmz, 0);
digitalWrite(derz, LOW);
digitalWrite(izqz, LOW);

if( estadoy == 1 and ticks < s2){

//Serial.println(y);
analogWrite(pwmy, 180);
digitalWrite(dery, HIGH);

29 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

digitalWrite(izqy, LOW);
Serial.println(ticks);

}
if(ticks >= s2){
analogWrite(pwmy, 0);
digitalWrite(dery, LOW);
digitalWrite(izqy, LOW);

if( estadox == 1 and ticks2 < s3){

//Serial.println(y);
analogWrite(pwmx, 130);
digitalWrite(derx, HIGH);
digitalWrite(izqx, LOW);
Serial.println(ticks2);

}
if(ticks2 >= s3){
analogWrite(pwmx, 0);
digitalWrite(derx, LOW);
digitalWrite(izqx, LOW);

Tabla 3. Código fuente utilizado.

En la Tabla 3 se muestra el código utilizado, el cual, logró mandar todos los


eslabones a un estado inicial mediante sensores de final de carrera; en donde
permanecían durante 1.5 segundos para posteriormente deslazarse 1.5 segundos
en dirección contraria al sensor de final de carrera, esto con la finalidad de controlar
el motor, establecer un Home, hacer un desplazamiento en cada eslabón después
de ir a Home.

30 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Descripción del funcionamiento

El funcionamiento del manipulador es muy parecido al comportamiento de un CNC


común, debido al mecanismo de cada articulación que es un tornillo sin fin en
conjunto con un motorreductor como actuador nos ofrece una precisión bastante
aceptable ya una vez controlando la velocidad y posición de manera óptima los
actuadores pueden conseguir una posición casi exacta a la deseada con una
variación de 2mm. La contraparte de lo mencionado anteriormente es que no ofrece
una velocidad elevada ya que los actuadores garantizan más la precisión y la fuerza
que la velocidad. Luego de la realización de algunas pruebas se percató que para
llegar desde Home al punto medio del espacio de trabajo se tarda aproximadamente
4 segundos.

Al realizar pruebas, debido a errores comunes en los encoders rotacionales como


es la perdida de pulsos, el robot puede no ser totalmente repetitivo ya que como se
comentó se experimenta un error de ± 2mm en cada trayectoria realizada, tomando
en cuenta que está programado para volver a Home antes de realizar cualquier otra
trayectoria.

31 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Contribuciones de los autores

Acuña Ríos Beraly Alejandra 1630276


“Durante la realización del proyecto estuve asignada a la realización del diseño del
manipulador mediante el Software SolidWorks.

La configuración del manipulador, así como las dimensiones de la estructura, fue


definida debido a que ya se contaba con ciertos materiales para la construcción del
robot, por lo que el diseño se ajustó a las propiedades de los materiales.

También estuve a cargo de la estructura y redacción del presente documento. Para


la realización de la primera actividad se estima una inversión de 3 horas y media;
mientras que para la realización de reporte la cantidad de tiempo invertido se
aproxima a 8 horas.”

Cardona Peña Lizbeth Berenice 1630422


“Después de que todos los componentes de la estructura del robot estuviesen
ensamblados se siguió a la parte electrónica. Como cerebro de nuestro robot se
utilizó un microcontrolador Arduino UNO en cual esta programado el control de cada
uno de los motores a utilizar los cuales cuentan con un encoder para poder así
conocer información sobre el estado del motor en cualquier momento. Este
microcontrolador envía la señal a los módulos L298N (Puente H) los cuales reciben
una señal PWM para la velocidad del motor y dos señales binarias para que bajo
cierta combinación de 1 y 0 podamos invertir el giro de cada uno de los motores.
Para la alimentación de los motores se utilizó una fuente externa de 12v a 4A y para
la parte lógica de los módulos y de los encoder se utilizó la alimentación de 5v que
nos proporciona el microcontrolador Arduino.

32 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Farías Chávez Anhuar Alejandro 1630320


“Mi participación en el desarrollo de este proyecto fue el ensamblaje de la cada uno
de los componentes de la estructura del robot. Se decidió construir una estructura
simple y rígida, colocando los tres eslabones bajo el mismo principio, un tornillo sin
fin y varilla rectificada con baleros lineales. En cada eslabón se colocó al principio y
final del tornillo sin fin un balero de 8mm que hace la función de chumacera para un
libre rodamiento. Toda la estructura fue sujetada con tornillería de maquina tipo M4.
Para conectar el eje de los motores a la varilla roscada se utilizaron coples flexibles
de aluminio ayudándonos a corregir algún mal alineamiento de la fijación de los
motores. En general, es una estructura rígida, pequeña y precisa.”

Ibañez Chávez Nubia Yoselin 1630042


“En este proyecto, se me asignó el trabajo de obtener las matrices de
transformación de cada eslabón, así como el jacobiano del manipulador cartesiano.

Es importante que en la tabla de Denavit-Hartenberg se coloquen los valores


correctamente porque con los valores obtenemos las matrices de transformación de
cada una de las articulaciones. Si se colocó mal el eje en el cual rota una de las
matrices de transformación por ende la matriz de transformación de todo el robot
cartesiano y el jacobiano están equivocados.

Una vez obtenida la matriz de transformación de todo el robot cartesiano, se


prosiguió en obtener el jacobiano del manipulador y, por último, pero no menos
importante se hicieron los cálculos correspondientes para conseguir la matriz de
masa. En la elaboración de la matriz de masa se presentaron un problema el cual
fue el desconocer que valores representan 𝐶(𝑞,𝑞̇), pero el mencionado problema fue
resuelto consultando el libro de Cinemática y Dinámica de Robots del autor Roger
Miranda y el profesor confirmó que lo encontrado en el libro es correcto de acuerdo
a la configuración del manipulador. El tiempo estimado en el trabajo fue de
aproximadamente de 7 horas”

33 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Martínez Reyna José Manuel 1630025


“En este proyecto yo fui el encargado de buscar el material que se utilizaría para la
construcción de el proyecto, así como el maquinado de todas las piezas que se
utilizaron, haciendo el corte de cada una de todas las piezas a la medida usando
varillas rectificadas de 8mm y perfil de aluminio de 30x30, además de dos placa de
aluminio, además de realizar los barrenos de cada uno de los tornillos que se
utilizarían para el ensamble, así como el rebajado y rectificado de las piezas para
que estuvieran a las medidas establecidas en el diseño, y el maquinado de los
espacios para los baleros usando matrices en la fresadora de 30 agujeros para
alcanzar el tamaño del balero.”

Requena Vanoye Víctor Antonio 1630364


“En este proyecto fui el encargado junto con otro compañero de la programación
enfocado a la parte de codificación. Se buscaron soluciones para corregir
dificultades en la parte del retorno a home, debido a que al momento de realizar el
movimiento de un eslabón inmediatamente volvía al punto de inicio en lugar de
permanecer en la posición asignada.

Se desarrollo la parte lógica que permitía al usuario desplazar los eslabones, en su


respectivo eje de acción, con un cambio mínimo en el código para poder desplazar
este a una distancia determinada medida desde home.

En todo lo anterior se calcula un tiempo estimado de 4 horas”

34 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Conclusiones

Durante el proceso de diseño de este robot cartesiano inicialmente se planeó como


una posible solución para la manipulación y almacenamiento de coches en una
pared vertical, sin embargo, se fueron apreciando muchas otras posibles
aplicaciones.

Con el diseño eléctrico se ofreció una variante debido a la utilización de motores DC


para el movimiento de los eslabones, ya que en otros proyectos similares se hace
uso de motores a pasos o servomotores. El uso de motores DC fue parte de un
experimento para comprobar el funcionamiento del diseño con otro tipo de motor e
incluso cuando el mismo funciona, el uso de motores a pasos sigue siendo la mejor
opción debido a su precisión.

Dado el diseño realizado se aprecia un control de un proceso de robótica y


automatización.

35 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA

Referencias

[1] blade444, «Club Ensayos,» Tecnología, 13 Mayo 2012. [En línea]. Available:
https://www.clubensayos.com/Tecnología/APLICACIONES-ROBOT-CARTESIANO/184398.html.
[Último acceso: 11 Agosto 2019].

[2] C. L. R. RODRÍGUEZ, DISEÑO Y CONSTRUCCIÓN DE UN ROBOT CARTESIANO CON UN CONTROL


DE POSICIÓN PUNTO A PUNTO, BOGOTÁ D.C.: UNIVERSIDAD LIBRE, 2017.

[3] R. GODOY HERNÁNDEZ and W. RODRÍGUEZ QUINTERO, "DISEÑO Y MODELAMIENTO DE


UN ROBOT CARTESIANO PARA EL POSICIONAMIENTO DE PIEZAS", Licenciatura,
UNIVERSIDAD DE LA SALLE FACULTAD DE INGENIERÍA DE DISEÑO Y AUTOMATIZACIÓN
ELECTRÓNICA BOGOTÁ D.C., 2007.

36 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS

Вам также может понравиться