Enfoque de aprendizaje intensivo en STEM

En el mundo de la educación en ingeniería, existen muchos cursos excelentes, pero a menudo, el programa de estudio que se basa en ellos tiene una desventaja significativa: la falta de una buena conexión entre los diferentes temas. Se podría objetar: ¿cómo es posible?

Al formar un programa de estudio, se indican los prerrequisitos para cada curso y un orden claro en el que deben estudiarse las disciplinas. Por ejemplo, para construir y programar un robot móvil primitivo, es necesario saber un poco de mecánica para crear su estructura física; los fundamentos de la electricidad a nivel de las leyes de Ohm/Kirchhoff, la representación de señales digitales y analógicas; las operaciones con vectores y matrices para describir los sistemas de coordenadas y los movimientos del robot en el espacio; y los principios de programación a nivel de representación de datos, los algoritmos más simples y las estructuras de control, etc., para describir el comportamiento.

¿Está todo esto en los cursos universitarios? Por supuesto que sí. Sin embargo, al estudiar las leyes de Ohm/Kirchhoff, se nos presenta la termodinámica y la teoría de campos; además de las operaciones con matrices y vectores, hay que lidiar con las formas de Jordan; en programación, el estudio del polimorfismo — temas que no siempre son necesarios para resolver una simple tarea práctica.

La educación universitaria es extensiva: el estudiante avanza de manera amplia y a menudo no ve el sentido ni la relevancia práctica de los conocimientos que adquiere. Hemos decidido transformar la paradigma de la educación universitaria en STEM (de las palabras Ciencia, Tecnología, Ingeniería, Matemáticas) y crear un programa que se base en la conexión de conocimientos, permitiendo la profundización en el futuro, es decir, que implica un aprendizaje intensivo de las materias.

El estudio de un nuevo campo de conocimiento se puede comparar con la exploración de un territorio. Y aquí hay dos opciones: podemos tener un mapa muy detallado con una gran cantidad de detalles que se deben estudiar (lo cual toma mucho tiempo) para entender dónde se encuentran los principales hitos y cómo se relacionan entre sí; o se puede optar por un plano simplificado, que marque solo los puntos principales y su disposición mutua; este tipo de mapa es suficiente para comenzar a avanzar en la dirección correcta, aclarando los detalles a medida que se avanza.

Probamos el enfoque de aprendizaje intensivo STEM en la escuela de invierno que realizamos conjuntamente con estudiantes del MIT con el apoyo de JetBrains Research.

Preparación del material


La primera parte del programa de la escuela fue una semana de clases concentradas en áreas clave, que incluían álgebra, circuitos eléctricos, arquitectura de computadoras, programación en Python y una introducción a ROS (Robot Operating System).

Las áreas fueron elegidas no al azar: al complementarse entre sí, debían ayudar a los estudiantes a ver la conexión entre cosas que, a primera vista, parecían diferentes: matemáticas, electrónica y programación.

Por supuesto, el objetivo principal no era dar muchas conferencias, sino permitir que los estudiantes aplicaran el conocimiento recién adquirido en la práctica.

En el área de álgebra, los estudiantes pudieron practicar operaciones con matrices y la resolución de sistemas de ecuaciones, que fueron útiles al estudiar circuitos eléctricos. Al aprender sobre el transistor y los elementos lógicos construidos sobre su base, los alumnos pudieron ver su aplicación en el diseño del procesador y, tras estudiar lo básico del lenguaje Python, escribir un programa para un robot real.

Enfoque de aprendizaje intensivo en STEM

Duckietown


Una de las tareas de la escuela fue minimizar el uso de simuladores donde fuera posible. Por lo tanto, se preparó un gran conjunto de circuitos electrónicos que los estudiantes debían ensamblar en una placa de pruebas con componentes reales y probar en la práctica, y Duckietown fue elegido como base para los proyectos.

Duckietown es un proyecto abierto que incluye pequeños robots autónomos llamados Duckiebots y una red de caminos por los que se desplazan. Duckiebot es una plataforma con ruedas equipada con una microcomputadora Raspberry Pi y una cámara.

Sobre esta base, hemos preparado un conjunto de tareas posibles, como la construcción de mapas de carreteras, la búsqueda de objetos y la detención cerca de ellos, entre otras. Además, los estudiantes podían proponer su propio problema y no solo escribir un programa para solucionarlo, sino también ejecutarlo de inmediato en un robot real.

Enseñanza


Durante la clase, los profesores presentaban el material utilizando presentaciones preparadas con antelación. Algunas sesiones fueron grabadas en video, así los estudiantes tuvieron la oportunidad de verlas en casa. Durante las clases, los estudiantes utilizaban materiales en sus computadoras, hacían preguntas, resolvían problemas en conjunto y de manera independiente, a veces en la pizarra. Se calculó un ranking para cada estudiante por separado en diferentes asignaturas basado en sus resultados.

Enfoque de aprendizaje intensivo en STEM

Veamos más en detalle cómo se llevaron a cabo las clases de cada materia. La primera materia fue álgebra lineal. Durante un día, los estudiantes estudiaron vectores y matrices, sistemas de ecuaciones lineales, etc. Las tareas prácticas se desarrollaron de manera interactiva: los problemas propuestos se resolvían individualmente y el profesor y otros estudiantes ofrecían comentarios y sugerencias.

Enfoque de aprendizaje intensivo en STEM

La segunda materia fue electricidad y circuitos simples. Los estudiantes aprendieron los fundamentos de la electrodinámica: voltaje, corriente, resistencia, la ley de Ohm y las leyes de Kirchhoff. Las tareas prácticas se realizaron parcialmente en el simulador o en la pizarra, pero se dedicó más tiempo a construir circuitos reales, como circuitos lógicos, circuitos oscilantes, etc.

Enfoque de aprendizaje intensivo en STEM

El siguiente tema, Arquitectura de Computadoras, es en cierto sentido un puente que une la física y la programación. Los estudiantes estudiaron la base fundamental, cuyo significado es más teórico que práctico. Como práctica, los estudiantes diseñaron de forma independiente circuitos aritmético-lógicos en un simulador y obtuvieron puntos por las tareas completadas.

El cuarto día fue el primer día de programación. Se eligió el lenguaje de programación Python 2, ya que es el que se utiliza en la programación con ROS. Este día se estructuró de la siguiente manera: los instructores explicaron el material, presentaron ejemplos de resolución de problemas, mientras los estudiantes los escuchaban, sentados frente a sus computadoras, y repetían lo que el instructor había escrito en la pizarra o en la diapositiva. Luego, los alumnos resolvieron problemas similares de manera independiente, y posteriormente, las soluciones fueron evaluadas por los profesores.

El quinto día fue dedicado a ROS: los estudiantes se familiarizaron con la programación de robots. Todo el día lectivo, los alumnos estuvieron frente a las computadoras, ejecutando el código que el instructor había explicado. Pudieron iniciar las principales unidades de ROS de forma independiente, además de conocer el proyecto Duckietown. Al final de este día, los estudiantes estaban listos para comenzar la parte práctica de la escuela: la resolución de tareas prácticas.

Enfoque de aprendizaje intensivo en STEM

Descripción de los proyectos seleccionados

Se pidió a los estudiantes que se agruparan en equipos de tres y eligieran un tema para su proyecto. Al final, fueron aceptados los siguientes proyectos:

1. Calibración de colores. Duckiebot necesita calibrar su cámara al cambiar las condiciones de iluminación, por lo que existe la tarea de calibración automática. El problema es que los rangos de colores son muy sensibles a la iluminación. Los participantes implementaron una utilidad que destacaría los colores necesarios (rojo, blanco y amarillo) en la imagen y construiría rangos para cada color en formato HSV.

2. Duck Taxi. La idea de este proyecto es que Duckiebot pueda detenerse cerca de un objeto determinado, recogerlo y seguir un recorrido específico. Se eligió como objeto un pato amarillo brillante.

Enfoque de aprendizaje intensivo en STEM

3. Construcción de un grafo de caminos. Existe la tarea de construir un grafo de caminos y cruces. El objetivo de este proyecto es construir un grafo de caminos sin proporcionar datos apriorísticos sobre el entorno para Duckiebot, basándose únicamente en los datos de la cámara.

4. Vehículo patrullero. Este proyecto fue ideado por los mismos estudiantes. Propusieron enseñar a un Duckiebot, el 'patrullero', a perseguir a otro - el 'infractor'. Para ello, se utilizó un mecanismo de reconocimiento de objetivos mediante un marcador ArUco. Una vez que se completó el reconocimiento, se envía una señal al 'infractor' indicando el final de la operación.

Enfoque de aprendizaje intensivo en STEM

Calibración de Color

El objetivo del proyecto Color Calibration era ajustar el rango de colores reconocidos de las marcas viales a nuevas condiciones de iluminación. Sin estas correcciones, el reconocimiento de líneas de detención, divisores de carriles y bordes de carretera se volvía incorrecto. Los participantes propusieron una solución basada en el preprocesamiento de los patrones de color de las marcas: rojo, amarillo y blanco.

Para cada uno de estos colores se estableció un rango previo de valores HSV o RGB. Usando este rango, se identifican en el fotograma todas las áreas que contienen colores apropiados, y se elige la más grande. Esta área se toma como el color que debe ser recordado. Luego se utilizan fórmulas estadísticas, como el cálculo del promedio y la desviación estándar, para evaluar el nuevo rango de color.

Este rango se graba en los archivos de configuración de la cámara Duckiebot y puede ser utilizado posteriormente. El enfoque descrito se aplicó a los tres colores, formando así rangos para cada uno de los colores de la marca.

Las pruebas mostraron un reconocimiento casi perfecto de las líneas de la marca, excepto en los casos en que se utilizaba cinta brillante como material para la marca, que refleja tanto las fuentes de luz que desde el ángulo de visión de la cámara la marca parecía blanca independientemente de su color original.

Enfoque de aprendizaje intensivo en STEM

Duck Taxi

El proyecto Duck Taxi implicaba construir un algoritmo para buscar el pato pasajero en la ciudad y luego transportarlo al destino requerido. Los participantes dividieron esta tarea en dos: detección y movimiento en el grafo.

Los estudiantes realizaron la detección del pato, suponiendo que un pato es cualquier área del fotograma que se puede reconocer como amarilla, con un triángulo rojo (su pico) sobre él. Una vez que tal área es detectada en el fotograma, el robot debe acercarse a ella y luego detenerse durante unos segundos, imitando la llegada del pasajero.

Luego, teniendo previamente en memoria el grafo de carreteras de todo duckietown y la posición del robot, así como el destino como entrada, los participantes construyen un camino desde el punto de partida hasta el destino utilizando el algoritmo de Dijkstra para encontrar rutas en el grafo. La salida se presenta como un conjunto de comandos: giros en cada uno de los siguientes cruces.

Enfoque de aprendizaje intensivo en STEM

Grafo de Carreteras

El objetivo de este proyecto fue construir un grafo: una red de caminos en Duckietown. Los nodos del grafo resultante son intersecciones, y los arcos son caminos. Para esto, el Duckiebot debe explorar la ciudad y analizar su ruta.

Durante el trabajo en el proyecto, se consideró, pero luego se desechó, la idea de hacer un grafo ponderado, en el que el costo de la arista se determina por la distancia (tiempo de recorrido) entre intersecciones. La implementación de esta idea resultó ser demasiado laboriosa y no habría tiempo suficiente dentro del marco escolar.

Cuando el Duckiebot llega a una intersección, elige un camino que sale de la intersección por el cual aún no ha pasado. Cuando se han recorrido todos los caminos en todas las intersecciones, el bot recuerda una lista de adyacencias de intersecciones, que se convierte en una imagen utilizando la biblioteca Graphviz.

El algoritmo propuesto por los participantes no es adecuado para un Duckietown arbitrario, pero funcionó bien en una pequeña ciudad compuesta por cuatro intersecciones, utilizada en el marco escolar. La idea era complementar cada intersección con un marcador ArUco que contenga el identificador de la intersección, para rastrear el orden de paso por las intersecciones.
El esquema de funcionamiento del algoritmo desarrollado por los participantes se muestra en la imagen.

Enfoque de aprendizaje intensivo en STEM

Patrullero

El objetivo de este proyecto es buscar, perseguir y detener al bot infractor en la ciudad de Duckietown. El bot patrullero debe moverse por el anillo externo de la carretera de la ciudad en busca de un bot infractor conocido de antemano. Tras detectar al infractor, el bot patrullero debe seguirlo y hacer que se detenga.

El trabajo comenzó con la búsqueda de una idea para detectar al bot en la imagen y reconocer al infractor en ella. El equipo propuso equipar a cada bot en la ciudad, en la parte trasera, con un marcador único, al igual que los vehículos reales tienen matrículas. Para esto se eligieron marcadores ArUco. Estos ya se habían utilizado en Duckietown, ya que son fáciles de trabajar y permiten determinar la orientación del marcador en el espacio y la distancia hasta él.

Luego, se requirió hacer que el robot patrullero se moviera estrictamente por el círculo exterior sin detenerse en las intersecciones. Por defecto, el Duckiebot se mueve en un carril y se detiene en la línea de detención. Luego, mediante señales de tráfico, determina la configuración de la intersección y decide la dirección para cruzar. Cada una de las etapas descritas corresponde a un estado del autómata del robot. Para evitar las paradas en la intersección, el equipo modificó el autómata de estados, de modo que, al acercarse a la línea de detención, el robot pasara directamente al estado de cruce de la intersección.

El siguiente paso fue resolver el problema de detener al bot infractor. El equipo supuso que el robot patrullero podría tener acceso por SSH a cada uno de los bots en la ciudad, es decir, tener cierta información sobre qué datos de autorización tiene y qué ID tiene cada bot. Así, después de detectar al infractor, el robot patrullero comenzó a conectarse por SSH al bot infractor y a apagar su sistema.

Tras confirmar que el comando de apagado se había ejecutado, el robot patrullero también se detenía.
El algoritmo de funcionamiento del robot patrullero se puede representar en el siguiente diagrama:

Enfoque de aprendizaje intensivo en STEM

Trabajo en proyectos

El trabajo se organizó en un formato similar a Scrum: cada mañana, los estudiantes planificaban las tareas del día y, por la tarde, informaban sobre el trabajo realizado.

En los primeros y últimos días, los estudiantes prepararon presentaciones que describían la tarea asignada y las formas de resolverla. Para ayudar a los estudiantes a seguir los planes elegidos, en las salas donde se trabajaba en los proyectos había profesores de Rusia y América disponibles para responder preguntas. La comunicación se llevó a cabo principalmente en inglés.

Resultados y su demostración

El trabajo en los proyectos duró una semana, al final de la cual los estudiantes presentaron sus resultados. Todos prepararon presentaciones en las que contaron lo que aprendieron en esta escuela, las lecciones más importantes que extrajeron, lo que les gustó o no les gustó. Después de esto, cada equipo presentó su proyecto. Todos los equipos cumplieron con las tareas asignadas.

El equipo encargado de la calibración de colores finalizó su proyecto más rápido que los demás, por lo que tuvieron tiempo de preparar la documentación para su programa. En cambio, el equipo que se ocupaba del gráfico de caminos hizo todo lo posible por mejorar y corregir sus algoritmos incluso en el último día antes de la demostración del proyecto.

Enfoque de aprendizaje intensivo en STEM

Conclusión

Después de graduarse, pedimos a los estudiantes que evaluaran las actividades realizadas y respondieran preguntas sobre cuán bien la escuela cumplió con sus expectativas, qué habilidades adquirieron, etc. Todos los estudiantes mencionaron que aprendieron a trabajar en equipo, a distribuir tareas y a planificar su tiempo.

También se pidió a los estudiantes que evaluaran la utilidad y la dificultad de los cursos que tomaron. Aquí se formaron dos grupos de calificaciones: para algunos los cursos no representaron gran dificultad, mientras que otros los consideraron extremadamente difíciles.

Esto significa que la escuela ocupó la posición correcta, siendo accesible para principiantes en diversas áreas, pero también proporcionando materiales para la revisión y consolidación de conocimientos a estudiantes experimentados. Cabe destacar que el curso de programación (Python) fue calificado por casi todos como no complicado, pero útil. El curso más difícil, según los estudiantes, fue 'Arquitectura de Computadoras'.

Cuando se preguntó a los estudiantes sobre las desventajas y ventajas de la escuela, muchos respondieron que les agradó el estilo de enseñanza elegido, donde los profesores ofrecieron asistencia rápida e individual y respondieron a las preguntas que surgieron.

Los estudiantes también apreciaron trabajar en un régimen de planificación diaria de sus tareas y establecer sus propios plazos. Como desventajas, señalaron la falta de conocimientos proporcionados que se necesitaban al trabajar con el bot: al conectarse, entendiendo los principios y fundamentos de su funcionamiento.

Prácticamente todos los estudiantes señalaron que la escuela superó sus expectativas, lo que indica que la dirección elegida para la organización de la escuela fue la correcta. Por lo tanto, es importante mantener los lineamientos generales para organizar la próxima escuela, teniendo en cuenta y, si es posible, eliminando las desventajas que mencionaron estudiantes y profesores, quizás ajustando la lista de cursos o el tiempo de enseñanza.

Autores del artículo: el equipo del laboratorio de algoritmos de robots móviles en JetBrains Research.

P.D. Nuestro blog corporativo tiene un nuevo nombre. Ahora estará dedicado a los proyectos educativos de la empresa JetBrains.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster