1
00:00:00,450 --> 00:00:06,750
Bueno una vez que hemos terminado de realizar el modelamiento lo siguiente es probar ese modelo mediante

2
00:00:06,750 --> 00:00:08,100
simulación.

3
00:00:08,160 --> 00:00:13,000
Nosotros vamos a ver a lo largo del curso todo basado en simulación.

4
00:00:13,110 --> 00:00:18,360
La ventaja que tiene simular un robot es que nosotros no necesitamos un robot real.

5
00:00:18,550 --> 00:00:24,780
Entonces gracias al modelo nosotros podemos analizar aquí el movimiento del robot y también vamos a

6
00:00:24,780 --> 00:00:26,820
ver de manera gráfica este robot.

7
00:00:26,820 --> 00:00:33,330
Entonces voy a correrle para ver cómo funciona el programa entonces como pueden ver aquí se encuentra

8
00:00:33,330 --> 00:00:35,550
un robot que graficado en MATLAB.

9
00:00:35,910 --> 00:00:42,360
Entonces nosotros podemos analizar el movimiento del robot mediante el modelo y luego cuando dispongamos

10
00:00:42,360 --> 00:00:49,350
de un robot real podemos implementar lo que hayamos diseñado a quien simulación e implementarlo de manera

11
00:00:49,350 --> 00:00:49,740
real.

12
00:00:49,740 --> 00:00:54,240
Entonces es bastante útil tener un modelo virtual.

13
00:00:54,360 --> 00:01:00,070
Entonces vamos a revisar cómo realizar la simulación en la lista.

14
00:01:00,180 --> 00:01:06,930
Empecemos en primer lugar vamos a utilizar el comando CLC que me va a permitir borrar la ventana de

15
00:01:06,930 --> 00:01:09,770
comandos para tener todo el área de trabajo muy limpia.

16
00:01:09,840 --> 00:01:12,850
Por ejemplo digamos que es igual a tres.

17
00:01:12,970 --> 00:01:18,560
Entonces con el Celes el robot entonces sería el primer comando que vamos a utilizar en todos los programas.

18
00:01:18,720 --> 00:01:21,460
El siguiente comandos del clear clear.

19
00:01:21,510 --> 00:01:28,900
Eso me va a permitir en este caso vamos a ir no saca a borrar todas esas variables que tengo en el Workspace

20
00:01:29,360 --> 00:01:34,500
hemos Clea y borra todas las variables.

21
00:01:34,500 --> 00:01:37,370
Ahora el siguiente Command desde el Sol.

22
00:01:37,650 --> 00:01:43,560
Esto me va a permitir cerrar todas las figuras que hemos abierto por ejemplo para la prueba he abierto

23
00:01:43,560 --> 00:01:49,680
esta figura verdad entonces si vuelvo a correr el programa se va a ir acumulando las ventanas entonces

24
00:01:49,740 --> 00:01:58,650
no queremos eso entonces yo le pongo Kloss Pol y como pueden observar la ventana se ha cerrado ya no

25
00:01:58,650 --> 00:02:05,340
tenemos esa ventana entonces estas tres funciones siempre van a comenzar al inicio de nuestro programa.

26
00:02:05,340 --> 00:02:13,590
Ahora vamos a correr primero en una sola posición y luego vamos a darle movimiento mediante un vector

27
00:02:13,590 --> 00:02:14,790
de posiciones.

28
00:02:14,790 --> 00:02:20,850
Entonces la idea aquí es simplemente ver cómo funciona estos archivos que les voy a dejar para que se

29
00:02:20,850 --> 00:02:28,920
descarguen y vamos a observar cómo tenemos que realizar el peloteo de estas.

30
00:02:28,940 --> 00:02:37,380
De estas gráficas entonces vamos a ver eso en primer lugar vamos a dar nuestra posición en HxH en HD

31
00:02:37,440 --> 00:02:39,540
y también el ángulo de orientación.

32
00:02:39,540 --> 00:02:46,020
Todo esto ya habíamos analizado en el modelo entonces este va a ser en donde nosotros queremos posicionar

33
00:02:46,080 --> 00:02:47,440
a nuestro robot.

34
00:02:47,580 --> 00:02:48,680
Acá tenemos FIGC.

35
00:02:49,210 --> 00:02:55,290
Bueno esto me va a crear una nueva figura para pilotear nuestro robot y vamos a aceptar esta parte de

36
00:02:55,290 --> 00:02:58,900
aquí va a posicionar aquí en la ventana de Windows.

37
00:02:58,920 --> 00:03:05,200
Nosotros podemos darle el ancho y donde se va a mostrar la ventana entonces podemos modificar esto y

38
00:03:05,220 --> 00:03:12,430
bueno Axis va va a ser una relación de aspectos para que no se descuadre los ejes.

39
00:03:12,460 --> 00:03:19,610
Qué quiere decir por ejemplo si yo grãfico un robot que hay veces en el que si no pongo esto se me va

40
00:03:19,890 --> 00:03:26,760
descuadrado si es un cuadrado Si dibujo un cuadrado se va a ver como un rectángulo es algo que hay que

41
00:03:26,760 --> 00:03:29,670
modificarlo mediante esta acción.

42
00:03:29,850 --> 00:03:37,230
Ahora tenemos Axis estos son los límites de cada uno de los ejes tanto del eje X como en el eje X en

43
00:03:37,320 --> 00:03:42,730
negativo legitimen positivo tanto para y tanto para el eje Z.

44
00:03:42,810 --> 00:03:48,870
Entonces esos son los límites dependiendo de qué tamaño sea nuestro robot o en este caso por ejemplo

45
00:03:49,110 --> 00:03:54,530
la trayectoria que tenga el robot sea demasiado en el eje X digamos llegó hasta cinco metros entonces

46
00:03:54,530 --> 00:03:59,430
aquí tendríamos que modificar y cambiar estos límites.

47
00:03:59,430 --> 00:04:05,490
El Critón me va a permitir dibujar una cuadrícula en nuestra imagen tan ya vamos a revisar.

48
00:04:05,520 --> 00:04:11,190
Entonces Podemos a ver si le damos controlante podemos correr nosotros esta sección esta sección de

49
00:04:11,190 --> 00:04:17,730
aquí entonces del grin on me permite activar estas cuadrículas como pueden ver para que se vea de una

50
00:04:17,730 --> 00:04:18,570
mejor manera.

51
00:04:18,570 --> 00:04:27,180
Por ejemplo si le pongo a ver que se ve un poco un poco mal si bien no se notan las divisiones de los

52
00:04:27,180 --> 00:04:36,060
ejes entonces es mejor mostrarlo así entonces lo vamos a dejar como brindan listo ahora tenemos dos

53
00:04:36,060 --> 00:04:41,940
archivos los dos archivos que les voy a dejar son móbil robot y móbil plot el móvil robot.

54
00:04:41,940 --> 00:04:47,880
Aquí van a almacenarse todos los parámetros del robot que quiere decir van a estar las dimensiones el

55
00:04:47,880 --> 00:04:54,570
tamaño de la llanta y entre otras cosas y aquí tenemos el móvil plot el móvil plot me va a permitir

56
00:04:54,810 --> 00:05:03,020
dibujar al robot en la posición x y y también una orientación FIH para eso se utilizarán matrices de

57
00:05:03,020 --> 00:05:07,320
traslación y matrices de rotación que aquí no lo vamos a ver.

58
00:05:07,730 --> 00:05:15,770
Entonces eso ya ya está realizado entonces simplemente es para utilizarlo y probar con nuestra simulación

59
00:05:16,250 --> 00:05:17,450
ahora el colonche.

60
00:05:17,530 --> 00:05:23,850
Bueno esto me va a permitir graficar en la misma gráfica graficar tanto el robot como la trayectoria

61
00:05:23,860 --> 00:05:27,740
bueno en este caso es un punto y sería se va a dibujar el punto de control.

62
00:05:28,000 --> 00:05:33,740
Vamos a correrle vamos a dar con Enter y vamos a ver a qué se refiere este punto entonces si nosotros

63
00:05:33,740 --> 00:05:39,030
damos la vuelta aquí podemos ver el punto de control que desde el centro del robot.

64
00:05:39,140 --> 00:05:46,220
Entonces como pueden observar aquí hemos dibujado un círculo en el punto de control.

65
00:05:46,460 --> 00:05:53,090
Acá tenemos las etiquetas de en este caso como pueden observar tenemos como ven aquí se han abierto

66
00:05:53,090 --> 00:05:59,260
más ventanas es importante poner el sol bueno vamos a ver esta parte de aquí.

67
00:05:59,450 --> 00:06:07,560
Esto me hace esta parte del código tenemos el X Leuven me va a poner las etiquetas X en metros y metros

68
00:06:07,570 --> 00:06:13,940
y 7 metros esas son las unidades con las que nosotros vamos a trabajar entonces eso me permite hacer

69
00:06:13,940 --> 00:06:20,570
esta línea de código de aquí me permite mostrar de una manera más más visible nuestro robot.

70
00:06:20,570 --> 00:06:26,390
Por ejemplo si yo le le quito esto vamos a hacer una diferencia bastante grande cómo ven el robot casi

71
00:06:26,390 --> 00:06:36,800
no se nota la parte gráfica entonces esto me permite ingresar una luz artificial en el campo de visualización.

72
00:06:36,860 --> 00:06:41,570
Entonces lo que hace es darle un enfoque y se ve mucho mejor.

73
00:06:41,580 --> 00:06:47,360
Bueno aquí le he corrido ya la parte de vector de posición para darle movimiento bueno eso vamos a ver

74
00:06:47,360 --> 00:06:54,080
luego entonces cómo ve nosotros podemos posicionar por ejemplo yo quiero mi robot que se posicione en

75
00:06:54,140 --> 00:07:02,740
dos en x menos uno y pongámosle con un ángulo de inclinación de medios entonces vamos a correr controlé

76
00:07:02,770 --> 00:07:04,520
Enter para correr.

77
00:07:04,790 --> 00:07:11,000
Esta parte del código y podemos observar que aquí se ha movido hacia dos.

78
00:07:11,390 --> 00:07:17,030
También está en menos uno como pueden observar ICEA y ha rotado 90 grados pero en este caso como ven

79
00:07:17,840 --> 00:07:20,240
los límites de los ejes es demasiado pequeño.

80
00:07:20,240 --> 00:07:26,070
Entonces vamos a ampliar el eje en el eje positivo lo vamos a ampliar y lo vamos a poner en cinco damos

81
00:07:26,110 --> 00:07:27,380
control Enter.

82
00:07:27,560 --> 00:07:31,520
Vamos a ver que efectivamente ya podemos observar a nuestro robot.

83
00:07:31,640 --> 00:07:37,360
Entonces nosotros podemos ir posicionando en la posición que nosotros deseamos.

84
00:07:37,430 --> 00:07:45,170
Entonces eso esas posiciones quién me va a dar pues luego en una segunda parte de este curso va a ser

85
00:07:45,170 --> 00:07:53,110
un curso aparte va vamos a ver a diseñar controladores basados en modelo entonces nos va gracias al

86
00:07:53,120 --> 00:07:58,970
modelo que habíamos obtenido anteriormente nosotros podemos realizar controladores entonces nos va a

87
00:07:58,970 --> 00:08:05,840
permitir por ejemplo seguir una trayectoria hacer un control de posición es decir que dado un punto

88
00:08:05,840 --> 00:08:08,750
inicial nuestro robot vaya a una posición final.

89
00:08:08,750 --> 00:08:14,480
También podemos hacer control de camino entonces vamos a revisar esos controladores en un segundo curso

90
00:08:15,560 --> 00:08:24,410
ahora eso es como les menciono va a ser en el segundo curso entonces una vez aclarado esto vamos a ir

91
00:08:24,410 --> 00:08:30,180
con lo siguiente que es mostrar ya una simulación es decir emular un movimiento del robot.

92
00:08:30,260 --> 00:08:35,990
Para ello simplemente nosotros vamos a dar posiciones en cada instante de tiempo es decir en el instante

93
00:08:35,990 --> 00:08:41,720
cero el instante cero uno va a estar en otra posición lo de un instante 0.2 va a estar en otra posición

94
00:08:42,000 --> 00:08:47,930
y como mencionaba estas posiciones me va a dar el controlador pero nosotros no vamos aquí en este curso

95
00:08:47,930 --> 00:08:53,600
específico no vamos a implementar controladores simplemente vamos a realizar el modelamiento porque

96
00:08:53,600 --> 00:08:57,190
luego estos modelos nos va a servir para obtener ese control.

97
00:08:57,890 --> 00:09:04,760
Entonces aquí nosotros vamos a darle una posición a nuestro robot simplemente vamos a darle una posición

98
00:09:04,760 --> 00:09:05,520
cualquiera.

99
00:09:05,630 --> 00:09:07,780
Entonces yo he elegido esta trayectoria de aquí.

100
00:09:08,330 --> 00:09:11,700
Entonces cómo ven esas trayectorias siempre van a ser dependientes del tiempo.

101
00:09:11,720 --> 00:09:13,580
Hay que tener muy en cuenta.

102
00:09:13,700 --> 00:09:20,540
Aquí tenemos el tiempo de muestreo que es un parámetro muy importante en el control tenemos aquí nuestro

103
00:09:20,540 --> 00:09:25,970
tiempo de simulación es decir cuánto nosotros deseamos simular este proceso en este caso dos segundos

104
00:09:26,300 --> 00:09:31,220
tenemos aquí nuestro vector de tiempo que va a ser discreto como pueden observar va a ir en pasos de

105
00:09:31,220 --> 00:09:32,160
0.1.

106
00:09:32,180 --> 00:09:42,410
Entonces iría desde cero hasta dos segundos en pasos de 0.1 entonces adquiriã cero 0.1 0.2 0.3 así hasta

107
00:09:42,410 --> 00:09:44,180
llegar a dos.

108
00:09:44,180 --> 00:09:50,150
Acá tenemos las posiciones como les había mencionado que íbamos a ingresar un vector este puede ser

109
00:09:50,150 --> 00:09:56,840
un vector cualquiera eso ya depende de ustedes como le dicen simular pero cuando nosotros decidimos

110
00:09:56,840 --> 00:10:01,000
hacer un controlador por ejemplo un controlador cuál nuestro robot.

111
00:10:01,000 --> 00:10:02,590
Haga un círculo.

112
00:10:02,830 --> 00:10:09,880
Entonces eso hay que tener la ecuación para poder realizar esa tarea.

113
00:10:10,020 --> 00:10:18,550
Ahora lo mismo de arriba hemos creado la figura hemos posicionado hemos puesto sus límites.

114
00:10:18,550 --> 00:10:24,960
Entonces de aquí también vamos a llamar al parámetro del robot al dibujar el robot en el instante inicial.

115
00:10:24,970 --> 00:10:27,070
Como ven aquí le he puesto uno.

116
00:10:27,070 --> 00:10:28,840
Es el instante inicial.

117
00:10:28,840 --> 00:10:34,750
Luego tenemos aquí las mismas características que arriba pero acá tenemos un parámetro que se llama

118
00:10:34,750 --> 00:10:35,450
STEPV.

119
00:10:35,630 --> 00:10:41,230
Este stick me va a permitir saltarme ciertas simulaciones de como pueden observar aquí tenemos un foro

120
00:10:41,530 --> 00:10:47,140
que inicia en uno y va a ir en pasos hasta terminar el tiempo de simulación entonces hay veces en que

121
00:10:47,590 --> 00:10:54,160
deseamos que se salte ciertos pasos en el cual el robot se ha movido entonces nosotros podemos cambiar

122
00:10:54,160 --> 00:10:58,750
aquí por ejemplo en pasos de 10 entonces cada 10 segundos se va a ir saltando entonces los otros le

123
00:10:58,750 --> 00:10:59,340
vamos a dejar.

124
00:10:59,340 --> 00:11:07,930
En este caso ahora vamos con esto vamos a borrar el dibujo y vamos a gráfica de nuevo.

125
00:11:08,020 --> 00:11:13,840
Entonces este es el método aquí traficados del robot borramos y volvemos a graficar en la siguiente

126
00:11:13,840 --> 00:11:14,350
posición.

127
00:11:14,410 --> 00:11:18,070
Entonces con eso nosotros damos la sensación de movimiento.

128
00:11:18,220 --> 00:11:24,640
Entonces aquí como pueden observar borramos y vamos graficando en el otro instante de muestreo.

129
00:11:24,730 --> 00:11:31,750
Y aquí tenemos una función que se llama passe para detener un momento el programa.

130
00:11:31,960 --> 00:11:34,830
En este caso un tiempo de muestreo de 0.1.

131
00:11:35,350 --> 00:11:39,280
Entonces ahora sí nosotros corremos esto dando control Enter.

132
00:11:39,460 --> 00:11:46,120
Vamos a observar cómo nuestro robot se mueve como pueden observarse realiza el siguiente movimiento.

133
00:11:46,180 --> 00:11:54,700
Ahora vamos a aumentar el tiempo metemos a unos 6 segundos y vamos a observar que aumenta entonces en

134
00:11:54,770 --> 00:12:02,540
X como ven va aumentando y se mantiene constante en 0.6 y fees menos Pi cuartos.

135
00:12:02,540 --> 00:12:09,410
Entonces nuestro robot como podemos observar aquí ya se pasó del límite como podemos observar se mueve

136
00:12:10,520 --> 00:12:19,460
en X va ir aumentando como pueden observar va aumentando y se mantiene fijo en 0.6 y el ángulo de orientación

137
00:12:19,460 --> 00:12:23,780
como pueden observar es menos menos 45 grados.

138
00:12:23,810 --> 00:12:30,860
Entonces como pueden observar si damos la sensación de movimiento y en el próximo video vamos a analizar

139
00:12:30,890 --> 00:12:38,260
ya el movimiento pero ya con las acciones de control es decir ingresando ya las velocidades a los motores.

140
00:12:38,270 --> 00:12:40,460
Entonces vamos a ver eso en la siguiente clase.
