UD04 · Actividades entregables¶
Los seis cuentan para la nota del RA4
Los seis notebooks forman el 40 % de actividades del RA4. Cada uno se califica sobre 10 con su rúbrica, que tienes más abajo: puedes leerla antes de empezar y saber exactamente con qué se te evalúa.
No son independientes: son una secuencia
EX4 genera el fichero de datos que necesita EX5. Si te saltas el orden o pierdes ese fichero, tendrás que volver atrás.

Entorno
Todos funcionan en Colab y en el contenedor de la UD00. La primera celda instala lo necesario. Dos avisos que te ahorrarán tiempo:
- No instales
tensorflowa mano.EX5usa Keras 3, que funciona con el backend que haya: en Colab usa el TensorFlow que ya viene, y en local, PyTorch. - Si ves código antiguo con
keras.backend.meanokeras.backend.abs, ya no existen en Keras 3: el equivalente eskeras.ops.meanykeras.ops.abs.
EX1 · Ejercicios de OpenCV¶
Tres ejercicios de visión sobre imagen y vídeo: detectar bordes y enmarcarlos, detectar movimiento entre fotogramas consecutivos y calcular el flujo óptico.
| Recurso | Enlace |
|---|---|
| Notebook | UD04_EX1_ejercicios_opencv.ipynb |
| Imagen | EX1.-camp.png |
| Vídeo | EX1.-vtest.mp4 |
Se entrega: el notebook con los tres ejercicios resueltos y sus salidas.
EX2 · Navegar con cámara, por reglas¶
El robot tiene que seguir una línea en el suelo usando solo lo que ve su cámara. Aquí escribes tú todas las condiciones: dónde está la línea en la imagen, y qué hacer en cada caso.
Dos escenarios: línea simple y línea doble.
| Recurso | Enlace |
|---|---|
| Notebook | UD04_EX2_navegar_camara.ipynb |
| Pistas | 1 · 2 · 3 · 4 · 5 · 6 |
Se entrega: el notebook con el controlador funcionando en los dos escenarios.
EX3 · Navegar con cámara, con lógica difusa¶
El mismo problema que EX2, resuelto con lógica difusa: variables lingüísticas, funciones de pertenencia, reglas y desfuzzificación. Enlaza directamente con la UD05.
| Recurso | Enlace |
|---|---|
| Notebook | UD04_EX3_navegar_camara_difusa.ipynb |
| Pistas | Las mismas seis de EX2 |
Se entrega: el notebook con el sistema difuso completo y el robot navegando en los dos escenarios.
Compara antes de entregar
Ya has resuelto el mismo problema de dos formas. Antes de entregar, apunta en qué se diferencian el comportamiento de EX2 y el de EX3: no cuál «va mejor», sino cómo se mueve el robot en cada caso, y por qué.
EX4 · Generar los datos de entrenamiento¶
Aquí no se entrena nada todavía: conduces tú el robot y el notebook graba lo que ve la cámara junto con lo que tú decidiste hacer. El resultado es un conjunto de ejemplos etiquetados.
| Recurso | Enlace |
|---|---|
| Notebook | UD04_EX4_generar_datos_entrenamiento.ipynb |
Se entrega: el notebook y el fichero training_data.txt con tu nombre. Guárdatelo: es la entrada de EX5.
EX5 · Controlar el robot con una red neuronal¶
Lees el training_data.txt de EX4, construyes y entrenas una red neuronal con esos ejemplos y la usas para conducir el robot. Tres celdas están vacías a propósito: la arquitectura de la red, el entrenamiento y la función de control.
| Recurso | Enlace |
|---|---|
| Notebook | UD04_EX5_red_neuronal.ipynb |
Se entrega: el notebook y el fichero .keras con tu nombre, con la red ya entrenada. Con ese fichero, la celda de carga permite probar cómo se comporta tu red sin repetir el entrenamiento —que es largo—, y es así como se corrige.
Antes de entrenar hay que mirar los datos
La rúbrica puntúa classifica_moviments y el balanceo, y no es un capricho: conduciendo, un robot va hacia delante muchísimo más de lo que gira, así que el conjunto sale desequilibrado. Una red entrenada con esos datos aprende a ir recto siempre, que es lo que más acierta de media y lo que peor sigue la línea.
EX6 · Aprendizaje por refuerzo con NEAT¶
El mismo control, sin ejemplos. NEAT evoluciona a la vez los pesos y la topología de la red: tú solo defines qué entra, qué sale y cómo se mide si lo está haciendo bien.
| Recurso | Enlace |
|---|---|
| Notebook | UD04_EX6_neat.ipynb |
Se entrega: el notebook y una memoria en PDF con tus pruebas variando fitness_threshold y pop_size, la justificación de num_inputs y num_outputs, y una reflexión sobre el aprendizaje por refuerzo. Ojo: la memoria y su formato son la mitad de la nota de este entregable.
Rúbricas¶
Son las rúbricas reales del curso. Las seis tareas se califican sobre 10; los puntos de cada rúbrica se escalan a esa nota.
Los niveles son los mismos en casi todos los criterios: No entregada (0) · Incorrecta · Parcialmente incorrecta · Bien pero fuera de plazo · Correcta.
Entregar tarde cuesta casi lo mismo que entregar a medias
Fíjate en los niveles: «bien pero fuera de plazo» puntúa igual o casi igual que «parcialmente incorrecta». No es un redondeo: es la forma de decir que el plazo cuenta.
EX1 · Ejercicios de OpenCV (8 puntos)¶
| Criterio | Correcta | Parcial o fuera de plazo | Incorrecta |
|---|---|---|---|
| Ejercicio 1 · bordes | 4 | 2 | 0,5 |
| Ejercicio 2 · detección de movimiento | 2 | 1 | 0,5 |
| Ejercicio 3 · flujo óptico | 2 | 1-2 | 0,5 |
EX2 · Navegar con cámara (6 puntos)¶
| Criterio | Correcta | Parcial o fuera de plazo | Incorrecta |
|---|---|---|---|
| Seguidor de línea simple | 4 | 2 | 0,5 |
| Seguimiento de línea doble | 2 | 1 | 0,5 |
EX3 · Navegar con cámara difusa (15 puntos)¶
Cinco criterios de 3 puntos cada uno (correcta 3 · parcial 2 · fuera de plazo 1,5 · incorrecta 1):
| Criterio |
|---|
| Variable de entrada y funciones de pertenencia |
| Variables de salida |
| Reglas, sistema de control y simulación |
| Controlador del robot · línea simple |
| Controlador del robot · línea doble |
EX4 · Generar datos de entrenamiento (14 puntos)¶
| Criterio | Correcta | Parcial o fuera de plazo | Incorrecta |
|---|---|---|---|
Entrega training_data.txt con tu nombre | 2 | 1 | 1 |
determine_move devuelve movimiento, rotación y centro | 6 | 3 | 1 |
| Normalización de datos | 3 | 2 · 1,5 | 1 |
| Generación masiva de datos | 3 | 2 · 1,5 | 1 |
determine_move vale 6 de 14: casi la mitad de la tarea.
EX5 · Red neuronal con los datos de EX4 (14 puntos)¶
| Criterio | Correcta | Parcial o fuera de plazo | Incorrecta |
|---|---|---|---|
classifica_moviments | 3 | 2 · 1,5 | 1 |
| Balanceo de movimientos | 3 | 2 · 1,5 | 1 |
| Crear y entrenar la red neuronal | 3 | 2 · 1,5 | 1 |
network_driver · controlar el robot con la red | 3 | 2 · 1,5 | 1 |
Entrega el .keras con tu nombre y la red entrenada | 2 | 1 | 1 |
EX6 · Aprendizaje por refuerzo con NEAT (12 puntos)¶
Cuatro criterios de 3 puntos (correcta 3 · parcial 2 · fuera de plazo 1,5 · incorrecta 1):
| Criterio |
|---|
Decisión de num_inputs y num_outputs |
Pruebas con fitness_threshold y pop_size |
| Reflexión sobre el aprendizaje por refuerzo |
| Formato de la memoria en PDF (portada, pie, etc.) |
La reflexión y el formato son 6 de 12: la mitad. Es el entregable más abierto de la unidad y el único cuya rúbrica puntúa explícitamente cómo comunicas el trabajo.
Volver a la UD04 · Actividades guiadas · Taller 1 · Taller 2