Approche d’apprentissage intensif STEM

Il existe de nombreux cours d'excellente qualité dans le monde de la formation en ingénierie, mais les programmes d'études construits autour d'eux souffrent souvent d'un défaut sérieux : un manque de cohérence entre les différents sujets. On pourrait objecter : comment est-ce possible ?

Lors de la constitution d'un programme de formation, des prérequis et un ordre clair dans lequel les disciplines doivent être étudiées sont indiqués pour chaque cours. Par exemple, pour construire et programmer un robot mobile primitif, il faut connaître un peu la mécanique pour créer sa structure physique ; bases de l'électricité au niveau des lois d'Ohm/Kirchhoff, représentation des signaux numériques et analogiques ; opérations avec des vecteurs et des matrices afin de décrire des systèmes de coordonnées et des mouvements du robot dans l'espace ; bases de programmation au niveau de la présentation des données, algorithmes simples et structures de transfert de contrôle, etc. pour décrire un comportement.

Est-ce que tout cela est couvert dans les cours universitaires ? Bien sûr. Cependant, avec les lois d'Ohm/Kirchhoff, nous obtenons la thermodynamique et la théorie des champs ; en plus des opérations avec des matrices et des vecteurs, il faut s'occuper des formes de Jordan ; en programmation, étudiez le polymorphisme - des sujets qui ne sont pas toujours nécessaires pour résoudre un problème pratique simple.

L'enseignement universitaire est étendu - l'étudiant va sur un large front et ne voit souvent pas le sens et la signification pratique des connaissances qu'il reçoit. Nous avons décidé de transformer le paradigme de l'enseignement universitaire en STEM (des mots Science, Technologie, Ingénierie, Mathématiques) et de créer un programme basé sur la cohérence des connaissances, permettant une augmentation de la complétude dans le futur, c'est-à-dire qu'il implique une maîtrise intensive des matières.

L’apprentissage d’un nouveau domaine peut être comparé à l’exploration d’une zone locale. Et ici, il y a deux options : soit nous avons une carte très détaillée avec une énorme quantité de détails qui doivent être étudiés (et cela prend beaucoup de temps) afin de comprendre où se trouvent les principaux points de repère et comment ils sont liés les uns aux autres. ; ou vous pouvez utiliser un plan primitif, sur lequel seuls les points principaux et leurs positions relatives sont indiqués - une telle carte suffit pour commencer immédiatement à avancer dans la bonne direction, en clarifiant les détails au fur et à mesure.

Nous avons testé l'approche intensive d'apprentissage STEM lors d'une école d'hiver que nous avons organisée avec des étudiants du MIT avec le soutien de Recherche JetBrains.

Préparation du matériel


La première partie du programme scolaire était une semaine de cours dans les domaines principaux, qui comprenaient l'algèbre, les circuits électriques, l'architecture informatique, la programmation Python et une introduction au ROS (Robot Operating System).

Les orientations n'ont pas été choisies par hasard : se complétant les unes les autres, elles étaient censées aider les élèves à voir au premier coup d'œil le lien entre des choses apparemment différentes : les mathématiques, l'électronique et la programmation.

Bien entendu, l’objectif principal n’était pas de donner beaucoup de cours, mais de donner aux étudiants la possibilité de mettre eux-mêmes en pratique les connaissances nouvellement acquises.

Dans la section d'algèbre, les étudiants pouvaient pratiquer des opérations matricielles et résoudre des systèmes d'équations, utiles pour l'étude des circuits électriques. Après avoir découvert la structure d'un transistor et les éléments logiques construits sur sa base, les étudiants ont pu voir leur utilisation dans un processeur et, après avoir appris les bases du langage Python, y écrire un programme pour un vrai robot.

Approche d’apprentissage intensif STEM

Duckietown


L'un des objectifs de l'école était de minimiser autant que possible le travail avec des simulateurs. Par conséquent, un grand ensemble de circuits électroniques a été préparé, que les étudiants ont dû assembler sur une maquette à partir de composants réels et les tester dans la pratique, et Duckietown a été choisi comme base pour les projets.

Duckietown est un projet open source impliquant de petits robots autonomes appelés Duckiebots et les réseaux de routes qu'ils empruntent. Duckiebot est une plateforme sur roues équipée d'un micro-ordinateur Raspberry Pi et d'une seule caméra.

Sur cette base, nous avons préparé un ensemble de tâches possibles, telles que la construction d'une feuille de route, la recherche d'objets et l'arrêt à côté d'eux, et bien d'autres. Les étudiants pourraient également proposer leur propre problème et non seulement écrire un programme pour le résoudre, mais aussi l'exécuter immédiatement sur un vrai robot.

Enseignement


Pendant le cours, les enseignants ont présenté le matériel à l'aide de présentations préparées à l'avance. Certains cours ont été enregistrés sur vidéo afin que les élèves puissent les regarder chez eux. Pendant les cours, les étudiants utilisaient du matériel sur leur ordinateur, posaient des questions et résolvaient des problèmes ensemble et indépendamment, parfois au tableau. Sur la base des résultats des travaux, la note de chaque étudiant a été calculée séparément dans différentes matières.

Approche d’apprentissage intensif STEM

Examinons plus en détail le déroulement des cours dans chaque matière. Le premier sujet était l'algèbre linéaire. Les étudiants ont passé une journée à étudier des vecteurs et des matrices, des systèmes d'équations linéaires, etc. Les tâches pratiques étaient structurées de manière interactive : les problèmes proposés étaient résolus individuellement, et l'enseignant et les autres étudiants fournissaient des commentaires et des conseils.

Approche d’apprentissage intensif STEM

Le deuxième sujet est l'électricité et les circuits simples. Les étudiants ont appris les bases de l'électrodynamique : tension, courant, résistance, loi d'Ohm et lois de Kirchhoff. Les tâches pratiques étaient en partie réalisées dans le simulateur ou sur la carte, mais plus de temps était consacré à la construction de circuits réels tels que des circuits logiques, des circuits oscillants, etc.

Approche d’apprentissage intensif STEM

Le sujet suivant est l'architecture informatique - en un sens, un pont reliant la physique et la programmation. Les étudiants ont étudié les bases fondamentales, dont la signification est plus théorique que pratique. Pour s'entraîner, les étudiants ont conçu indépendamment des circuits arithmétiques et logiques dans le simulateur et ont reçu des points pour les tâches accomplies.

Le quatrième jour est le premier jour de programmation. Python 2 a été choisi comme langage de programmation car c'est celui utilisé dans la programmation ROS. Cette journée était structurée comme suit : les enseignants enseignaient la matière, donnaient des exemples de résolution de problèmes, tandis que les élèves les écoutaient, assis devant leur ordinateur, et répétaient ce que l'enseignant avait écrit au tableau ou sur une diapositive. Ensuite, les élèves ont résolu eux-mêmes des problèmes similaires et les solutions ont ensuite été évaluées par les enseignants.

Le cinquième jour était consacré à ROS : les gars ont appris la programmation des robots. Toute la journée scolaire, les élèves étaient assis devant leur ordinateur, exécutant le code du programme dont parlait le professeur. Ils ont pu gérer eux-mêmes les unités ROS de base et ont également été initiés au projet Duckietown. À la fin de cette journée, les étudiants étaient prêts à commencer la partie projet de l'école : résoudre des problèmes pratiques.

Approche d’apprentissage intensif STEM

Description des projets sélectionnés

Les étudiants ont été invités à former des équipes de trois et à choisir un sujet de projet. En conséquence, les projets suivants ont été adoptés :

1. Calibrage des couleurs. Duckiebot doit calibrer la caméra lorsque les conditions d'éclairage changent, il existe donc une tâche de calibrage automatique. Le problème est que les gammes de couleurs sont très sensibles à la lumière. Les participants ont mis en œuvre un utilitaire permettant de mettre en évidence les couleurs requises dans un cadre (rouge, blanc et jaune) et de créer des plages pour chaque couleur au format HSV.

2. Taxi canard. L'idée de ce projet est que Duckiebot puisse s'arrêter près d'un objet, le ramasser et suivre un certain itinéraire. Un canard jaune vif a été choisi comme objet.

Approche d’apprentissage intensif STEM

3. Construction d'un graphique routier. Il y a une tâche de construction d'un graphique des routes et des intersections. Le but de ce projet est de construire un graphique routier sans fournir de données environnementales a priori à Duckiebot, en s'appuyant uniquement sur les données des caméras.

4. Voiture de patrouille. Ce projet a été inventé par les étudiants eux-mêmes. Ils ont proposé d’apprendre à un Duckiebot, une « patrouille », à en chasser un autre, un « contrevenant ». A cet effet, le mécanisme de reconnaissance de cible utilisant le marqueur ArUco a été utilisé. Dès que la reconnaissance est terminée, un signal est envoyé à « l'intrus » pour terminer le travail.

Approche d’apprentissage intensif STEM

Calibrage de la couleur

L'objectif du projet Color Calibration était d'adapter la gamme de couleurs de marquage reconnaissables aux nouvelles conditions d'éclairage. Sans ces ajustements, la reconnaissance des lignes d'arrêt, des séparateurs de voies et des limites de route devenait incorrecte. Les participants ont proposé une solution basée sur le prétraitement de modèles de couleurs de balisage : rouge, jaune et blanc.

Chacune de ces couleurs possède une plage prédéfinie de valeurs HSV ou RVB. En utilisant cette plage, toutes les zones du cadre contenant des couleurs appropriées sont trouvées et la plus grande est sélectionnée. Cette zone est considérée comme la couleur à retenir. Des formules statistiques telles que le calcul de la moyenne et de l’écart type sont ensuite utilisées pour estimer la nouvelle gamme de couleurs.

Cette plage est enregistrée dans les fichiers de configuration de la caméra de Duckiebot et peut être utilisée ultérieurement. L'approche décrite a été appliquée aux trois couleurs, formant finalement des plages pour chacune des couleurs de balisage.

Les tests ont montré une reconnaissance presque parfaite des lignes de marquage, sauf dans les cas où les matériaux de marquage utilisaient du ruban brillant, qui reflète si fortement les sources lumineuses que, depuis l'angle de vue de la caméra, les marquages ​​apparaissent blancs, quelle que soit leur couleur d'origine.

Approche d’apprentissage intensif STEM

Taxi Canard

Le projet Duck Taxi consistait à construire un algorithme pour rechercher un passager canard dans la ville, puis à le transporter jusqu'au point souhaité. Les participants ont divisé ce problème en deux : la détection et le mouvement le long du graphique.

Les élèves ont procédé à la détection des canards en supposant qu'un canard est toute zone du cadre pouvant être reconnue comme jaune, avec un triangle rouge (bec) dessus. Dès qu'une telle zone est détectée dans l'image suivante, le robot doit s'en approcher puis s'arrêter quelques secondes, simulant l'atterrissage d'un passager.

Ensuite, en ayant en mémoire à l'avance le graphique routier de l'ensemble de Duckietown et la position du robot, et en recevant également la destination en entrée, les participants construisent un chemin du point de départ au point d'arrivée, en utilisant l'algorithme de Dijkstra pour trouver des chemins dans le graphique. . La sortie est présentée sous la forme d'un ensemble de commandes : tourne à chacune des intersections suivantes.

Approche d’apprentissage intensif STEM

Graphique des routes

Le but de ce projet était de construire un graphique - un réseau de routes à Duckietown. Les nœuds du graphique résultant sont des intersections et les arcs sont des routes. Pour ce faire, Duckiebot doit explorer la ville et analyser son itinéraire.

Au cours des travaux sur le projet, l'idée de créer un graphe pondéré a été envisagée, mais ensuite abandonnée, dans lequel le coût d'une arête est déterminé par la distance (le temps de trajet) entre les intersections. La mise en œuvre de cette idée s’est avérée trop laborieuse et il n’y avait pas assez de temps pour cela au sein de l’école.

Lorsque Duckiebot arrive à l'intersection suivante, il choisit la route sortant de l'intersection qu'il n'a pas encore empruntée. Lorsque toutes les routes de toutes les intersections ont été franchies, la liste générée des contiguïtés d'intersection reste dans la mémoire du bot, qui est convertie en image à l'aide de la bibliothèque Graphviz.

L'algorithme proposé par les participants n'était pas adapté à un Duckietown aléatoire, mais fonctionnait bien pour une petite ville de quatre intersections utilisée au sein de l'école. L'idée était d'ajouter un marqueur ArUco à chaque intersection contenant un identifiant d'intersection pour suivre l'ordre dans lequel les intersections étaient parcourues.
Le schéma de l'algorithme développé par les participants est présenté sur la figure.

Approche d’apprentissage intensif STEM

Voiture de patrouille

Le but de ce projet est de rechercher, poursuivre et détenir un robot en infraction dans la ville de Duckietown. Un robot de patrouille doit se déplacer le long du périphérique extérieur d’une route urbaine, à la recherche d’un robot intrus connu. Après avoir détecté un intrus, le robot patrouilleur doit suivre l'intrus et le forcer à s'arrêter.

Le travail a commencé par la recherche d'une idée permettant de détecter un robot dans un cadre et d'y reconnaître un intrus. L'équipe a proposé d'équiper chaque robot de la ville d'un marqueur unique au dos - tout comme les vraies voitures ont des numéros d'immatriculation d'État. Les marqueurs ArUco ont été choisis à cet effet. Ils ont déjà été utilisés à Duckietown car ils sont faciles à utiliser et vous permettent de déterminer l'orientation du marqueur dans l'espace et la distance qui le sépare.

Ensuite, il fallait s'assurer que le robot de patrouille se déplaçait strictement dans le cercle extérieur sans s'arrêter aux intersections. Par défaut, Duckiebot se déplace dans une voie et s'arrête à la ligne d'arrêt. Puis, à l'aide de la signalisation routière, il détermine la configuration du carrefour et fait un choix sur le sens de passage du carrefour. Pour chacune des étapes décrites, l’un des états de la machine à états finis du robot est responsable. Afin de se débarrasser des arrêts à l'intersection, l'équipe a modifié la machine d'état de sorte qu'à l'approche de la ligne d'arrêt, le robot passe immédiatement à l'état de conduite tout droit à travers l'intersection.

L’étape suivante consistait à résoudre le problème de l’arrêt du robot intrus. L'équipe a supposé que le robot de patrouille pourrait avoir un accès SSH à chacun des robots de la ville, c'est-à-dire avoir des informations sur les données d'autorisation et l'identifiant de chaque robot. Ainsi, après avoir détecté l’intrus, le robot de patrouille a commencé à se connecter via SSH au robot intrus et a arrêté son système.

Après avoir confirmé que la commande d'arrêt était terminée, le robot de patrouille s'est également arrêté.
L'algorithme de fonctionnement d'un robot de patrouille peut être représenté comme le schéma suivant :

Approche d’apprentissage intensif STEM

Travailler sur des projets

Le travail était organisé selon un format similaire à Scrum : chaque matin, les étudiants planifiaient les tâches de la journée en cours et le soir, ils rendaient compte du travail effectué.

Le premier et le dernier jour, les étudiants ont préparé des présentations décrivant la tâche et comment la résoudre. Pour aider les étudiants à suivre les plans choisis, des enseignants de Russie et d'Amérique étaient constamment présents dans les salles où se déroulaient les travaux sur les projets, répondant aux questions. La communication s'est déroulée principalement en anglais.

Résultats et leur démonstration

Le travail sur les projets a duré une semaine, après quoi les étudiants ont présenté leurs résultats. Tout le monde a préparé des présentations dans lesquelles ils ont parlé de ce qu’ils ont appris dans cette école, quelles ont été les leçons les plus importantes qu’ils ont apprises, ce qu’ils ont aimé ou n’ont pas aimé. Après cela, chaque équipe a présenté son projet. Toutes les équipes ont accompli leurs tâches.

L'équipe chargée de la mise en œuvre de l'étalonnage des couleurs a terminé le projet plus rapidement que les autres, elle a donc également eu le temps de préparer la documentation pour son programme. Et l'équipe travaillant sur le graphique routier, même le dernier jour avant la démonstration du projet, a essayé d'affiner et de corriger ses algorithmes.

Approche d’apprentissage intensif STEM

Conclusion

Après avoir terminé leurs études, nous avons demandé aux élèves d'évaluer leurs activités passées et de répondre à des questions sur la mesure dans laquelle l'école avait répondu à leurs attentes, les compétences qu'ils avaient acquises, etc. Tous les étudiants ont noté avoir appris à travailler en équipe, à répartir les tâches et à planifier leur temps.

Il a également été demandé aux étudiants d'évaluer l'utilité et la difficulté des cours qu'ils avaient suivis. Et ici, deux groupes d'évaluations ont été constitués : pour certains, les cours ne présentaient pas beaucoup de difficulté, pour d'autres, ils étaient jugés extrêmement difficiles.

Cela signifie que l'école a pris la bonne position en restant accessible aux débutants dans un domaine particulier, mais également en fournissant du matériel de répétition et de consolidation par les étudiants expérimentés. Il convient de noter que le cours de programmation (Python) a été jugé par presque tout le monde comme étant simple mais utile. Selon les étudiants, le cours le plus difficile était « Architecture informatique ».

Lorsqu'on a interrogé les élèves sur les forces et les faiblesses de l'école, beaucoup ont répondu qu'ils appréciaient le style d'enseignement choisi, dans lequel les enseignants fournissaient une assistance rapide et personnelle et répondaient aux questions.

Les étudiants ont également noté qu'ils aimaient travailler en planifiant quotidiennement leurs tâches et en fixant leurs propres délais. Comme inconvénients, les étudiants ont noté le manque de connaissances fournies, nécessaires pour travailler avec le bot : lors de la connexion, comprendre les bases et les principes de son fonctionnement.

Presque tous les élèves ont noté que l'école avait dépassé leurs attentes, ce qui indique la bonne direction pour l'organisation de l'école. Ainsi, les principes généraux doivent être maintenus lors de l'organisation de la prochaine école, en tenant compte et, si possible, en éliminant les lacunes constatées par les étudiants et les enseignants, en modifiant éventuellement la liste des cours ou le calendrier de leur enseignement.

Auteurs des articles : équipe laboratoire d'algorithmes de robots mobiles в Recherche JetBrains.

PS Notre blog d'entreprise a un nouveau nom. Il sera désormais dédié aux projets éducatifs de JetBrains.

Source: habr.com

Ajouter un commentaire