Découvrez nos
ressources

Voir toutes les ressources
Voir toutes les ressources
Voir toutes les ressources
Voir toutes les ressources
Voir toutes les ressources
Bienvenue
Bienvenue

Bienvenue

> Vous venez d’acheter la solution et voulez démarrer avec : commencez par Installer le logiciel, puis Rendez-vous dans la page correspondant au robot que vous voulez utiliser (AlphAI, Thymio, mBot, Lego, etc.). 

> Vous venez découvrir notre solution. Découvrez nos propositions d’activités en vidéo dans les pages d’activités par robot (AlphAI, Thymio, mBot, Lego, etc.).

À téléchargez
Cursus liés
Installation du logiciel
Installation du logiciel

Installation du logiciel

Le logiciel est conçu pour fonctionner sans connexion internet (à l’exception de l’activation de la licence et des mises à jour).

Il demande néanmoins une connexion wifi (recommandé) ou bluetooth pour communiquer avec le robot.

Si vous n’avez pas encore acheté de licence, vous pouvez profiter d’une version d’essai de 15 jours !


Installation Windows

  1. Téléchargez le logiciel 
  2. Lancez le programme d’installation
  3. Suivez les instructions puis lancez le logiciel !

Vous obtenez cet écran une fois le logiciel téléchargé :

Capture d'écran - installation du logiciel

Configuration requise:

  • Windows 8.1 minimum*
  • 4 Go de RAM
  • 2 Go de place sur le disque dur
  • OpenGL  version ≥ 2.1
  • Accès à internet (à l’installation uniquement pour la récupération de la licence)

* Windows 7 n’est pas supporté par Python 3.9, notre logiciel ne peut donc pas y être installé. N’hésitez pas à nous contacter pour toute assistance lors de l’installation.

Installation Mac 

  1. Téléchargez le script d’installation (clic droit + enregistrer sous…)
  2. Ouvrez l’application Terminal
  3. Exécutez la commande :
    sh ~/Downloads/AlphAI-1.8.10.7_installer.sh
    Cela devrait provoquer le téléchargement et l’installation de AlphAI.
  4. Pour lancer le logiciel, exécutez simplement la commande : alphai
  5. Le mot de passe de votre ordinateur vous sera demandé : saisissez-le puis appuyez sur la touche entrée et patientez quelques instants. Le logiciel se lance !

Configuration requise:

  • Mac OS
  • 4 Go de RAM
  • 2 Go de place sur le disque dur
  • OpenGL  version ≥ 2.1
  • Accès à internet (à l’installation uniquement pour la récupération de la licence)

En cas de difficulté, vous pouvez vous reporter à la page FAQ.



Installation Linux

  1. AlphAI est compilé pour fonctionner avec python 3.9 (idéalement python 3.9.13). Si vous avez un environnement python 3.9, vous pouvez utiliser celui-ci. Dans le cas contraire, vous pouvez télécharger python 3.9.13 à l’adresse suivante :
    https://www.python.org/downloads/release/python-3913/.
    Dans la suite des instructions, la commande python3 fait référence à cet environnement python 3.9.
  2. Téléchargez une version du logiciel AlphAI : Téléchargez le script d’installation.
  3. Dé-zippez le dossier téléchargé à l’emplacement où vous souhaitez installer AlphAI.
  4. Ouvrez un terminal et rendez-vous dans le dossier nouvellement créé, par exemple en utilisant la commande : cd AlphAI-1.8.10.11.
  5. Dans le terminal, exécutez la commande : python3 -m pip install -r requirements-mac.txt. Ceci doit avoir pour effet d’installer toutes les bibliothèques python nécessaires à l’utilisation du logiciel.
  6. Finalement, pour lancer le logiciel, entrez la commande : sudo python3 Start_Alphai.pyc, puis entrez votre mot de passe utilisateur. Attention, il faudra ici remplacer python3 par un chemin explicite vers l’interpréteur python, par exemple ./python3 ou ~/Documents/AlphAI/alphaienv/bin/python3, car sinon c’est l’interpréteur par défaut qui va se lancer.

Configuration requise:

  • Ubuntu 18
  • 4 Go de RAM
  • 2 Go de place sur le disque dur
  • OpenGL  version ≥ 2.1
  • Accès à internet (à l’installation uniquement pour la récupération de la licence)

En cas de difficulté, vous pouvez vous reporter à la page FAQ.

À téléchargez
Cursus liés
Activation de la licence
Activation de la licence

Activation de la licence

Lors du premier lancement du logiciel, vous allez voir apparaître la fenêtre d’activation de licence.

Assurez-vous de disposer d’une connexion à internet, et choisissez l’une des options suivantes :

Cochez la case Version d’essai.

Dans ce cas, vous avez la possibilité d’utiliser le logiciel gratuitement sur cet ordinateur pendant une durée de 15 jours. Attention : cette option ne peut être activée qu’une seule fois par ordinateur !



Utilisez une clé d’activation.

Cela vous permettra d’utiliser le logiciel sans condition de durée. Pour cela, entrez votre clé d’activation dans le champ prévu à cet effet et sélectionnez une période de validité. À la fin de la période de validité, vous devrez réactiver votre licence. Afin de ne pas égarer celle-ci, vous avez la possibilité de sauvegarder votre clé d’activation sur l’ordinateur.
⚠️ Attention : cela rend possible la réactivation de la licence sur cet ordinateur par un simple clic, ne sauvegardez donc pas votre clé d’activation sur un ordinateur qui ne vous appartient pas !




Réactivez votre licence grâce à une clé enregistrée, en cochant la case utiliser la clé enregistrée. Vous devrez également sélectionner la durée de la nouvelle période de validité.

La fenêtre suivante vous propose de nous fournir des informations :

Cette étape n’est pas obligatoire, mais nous vous prions de bien vouloir remplir les différents champs, ces informations nous permettrons de vous fournir une assistance si besoin mais également de vous informer en cas de mise à jour du logiciel.

À propos de la période de validité :

  • La période de validité correspond à la durée pendant laquelle vous pouvez utiliser notre logiciel sans connexion à internet.
  • À l’expiration de cette période, il vous sera demandé de réactiver votre licence, étape qui requiert une connexion à internet.
  • Chaque clé d’activation est délivrée avec une limite sur le nombre d’activations simultanées autorisées (généralement 2 ordinateurs ou 30 ordinateurs).
  • Dans le cas d’utilisation du logiciel dans une salle de classe, il est conseillé de choisir une durée d’activation correspondant à la période d’utilisation prévue, par exemple jusqu’à la fin de l’année scolaire. Ainsi, lorsque les licences expireront, il sera possible d’utiliser le logiciel dans une autre salle.

Exemple : Supposons que ma clé d’activation a une limite de 2 postes. Grâce à cette clé, j’active le premier janvier une licence sur un ordinateur A pour une durée de 6 mois (donc jusqu’au 30 juin). Ensuite, le premier février, j’utilise la même clé pour activer une licence sur un ordinateur B pour une durée de 3 mois (donc jusqu’au 30 avril). Sur la période du premier février au 30 avril, le nombre maximal d’activations est atteint, il m’est donc impossible d’utiliser ma clé d’activation sur un troisième ordinateur. En revanche, à partir du premier mai, la licence de l’ordinateur B a expiré, il m’est alors possible d’activer une licence sur un ordinateur C pour une durée de mon choix. De même, à partir du premier juillet, la licence de l’ordinateur A n’est plus valide, rendant possible l’activation sur un autre ordinateur (ou le renouvellement de la licence sur l’ordinateur A).

À téléchargez
Cursus liés
Validité de la clé d’activation
Validité de la clé d’activation

Validité de la clé d’activation

Durée

Les clés d’activation vendues par Learning Robots sont perpétuelles (les mises à jour seront gratuites pendant la première année, puis feront l’objet d’un abonnement annuel). 

Limite d’appareils

Selon le produit que vous avez choisi, votre licence est valable sur 2 ou 30 appareils.

Spécificités Thymio

Les licences pour robots Thymio ont quelques différences avec les autres types de licences. La première différence est que la fenêtre d’activation de licence ne va pas apparaître au lancement du logiciel, mais seulement lors de la première connexion à un robot Thymio.

Si ce robot est une simulation, alors tout se passe comme décrit précédemment.

Si ce robot est un Thymio réel, alors la licence sera stockée sur le robot lui-même et non pas sur votre ordinateur. Cela vous permettra ensuite de connecter ce robot à tout ordinateur où le logiciel est installé, même si ce dernier ne dispose pas de licence active. Cependant, vous ne pourrez utiliser votre clé d’activation de cette manière que sur un seul robot Thymio. Si vous souhaitez utiliser AlphAI avec plusieurs robots Thymio, il vous faudra acquérir une licence pour chaque robot.

La période de validité pour les robots Thymio réels est à durée illimitée.

Pour connecter votre Thymio à votre ordinateur, vous pouvez vous reporter à la fiche Thymio.

CMS Security Measures
Est-ce que des maintenances techniques peuvent m’empêcher d’utiliser le logiciel ?
CMS Security Measures
CMS Security Measures
À téléchargez
Document test
Cursus liés
Cursus liés test
Lancement du logiciel et mises à jour
Lancement du logiciel et mises à jour

Lancement du logiciel et mises à jour

Lancer le logiciel en cliquant sur le raccourci (PC) ou en lançant la commande “alphai” dans le terminal puis en entrant votre mot de passe d’ordinateur (Mac).

Lors du lancement du logiciel, si vous êtes connecté à internet, il se peut que le logiciel détecte une mise à jour à effectuer. Elle se lance automatiquement, et cela ne prendra que quelques minutes !

Vous allez alors arriver sur l’écran de connexion.

Capture ecran - Logiciel - Presentation 2
À téléchargez
Cursus liés
Écran de connexion
Écran de connexion

Écran de connexion

Choix du robot


En haut à droite de l’écran d’accueil, vous pouvez choisir le modèle de robot avec lequel vous souhaitez réaliser des activités. Selon la licence achetée, vous pouvez avoir le choix entre :

  • le robot AlphAI
  • le robot Thymio
  • le robot mBot
  • le robot Buddy
  • le robot Spike (LEGO)
  • l’ordinateur (activités sans robot)

Modes de connexion


Selon le robot choisi, vous pouvez avoir le choix entre plusieurs modes de connexion : par WiFi, par bluetooth (avec une clé ou avec le bluetooth de l’ordinateur), ou un robot simulé.


Pour le robot AlphAI, nous vous recommandons de toujours privilégier la connexion en WiFi si cela est possible. Si vous choisissez une connexion en Bluetooth, vous trouverez en haut à droite de votre écran un bouton qui permet de désactiver le mode “Bluetooth Low Energy” si votre modèle de robot est ancien.

Simulation


Avec les robots AlphAI et Thymio, il est possible de réaliser de nombreuses activités en simulation. Pour comprendre comment utiliser le mode simulation, merci de vous référer aux pages correspondantes : 

Ressources - AlphAI - Connexion au robot

Ressources - Thymio - Connexion au robot


Instructions et aide

En fonction du robot choisi, des boutons en bas de l’écran vous fournissent des instructions et informations pour la connexion au robot et en cas de bugs.Si les instructions ne vous ont pas aidé à résoudre votre problème, vous pouvez vous référer à notre page FAQ.

À téléchargez
Cursus liés
Écran principal
Écran principal

Écran principal

Vous êtes maintenant connecté à votre robot et arrivez sur l’écran principal. Nous vous présentons sur cet page chacun des éléments que vous pouvez voir à l’écran : 

Capture ecran - Logiciel - Presentation 5

Le titre


En haut de votre écran, un titre vous informe sur les caractéristiques des paramétrages sélectionnés actuellement : le mode d’apprentissage (supervisé, par renforcement, ou aucun apprentissage), le mode de contrôle (piloté/autonome), et le nombre de données enregistrées dans la mémoire d’expérience pendant l’apprentissage.

Le robot

Vous pouvez voir sur la gauche de votre écran une image du robot que vous êtes en train d’utiliser.

Pour le robot AlphAI, les capteurs utilisés dans l’activité apparaissent en noir.
La couleur des roues vous indique si elles sont bloquées (en rouge) ou non (en vert).

Vous pouvez également voir la couleur de la coque.

Capture ecran - Logiciel - Présentation 5b

Affichage central

Toute la partie droite de votre écran est occupée par l’affichage central. Il peut contenir :

Un réseau de neurones

Tout à gauche, les neurones d’entrée : ce sont les capteurs du robot utilisés.

Au milieu, les connexions et les couches de neurones intermédiaires.

Tout à droite, les neurones de sorties et les icônes d’action correspondantes : ce sont les actions que peut effectuer le robot.

Capture ecran - Logiciel - Présentation 5c

Vous pouvez entièrement paramétrer le réseau de neurones (Onglet IA) et modifier sa visualisation (Onglet Visualisation).

Une visualisation de l’espace d’états

Par exemple, dans le cas où l'algorithme choisi est K plus proches voisins, le réseau de neurones sera remplacé par un graphe. Voir l’activité KNN

Capture ecran - Logiciel - Présentation 5d

Une visualisation des données d’apprentissage
Une fois que vous avez fourni des données d’exemple au robot, vous pouvez également faire apparaître à l’écran chaque donnée enregistrée : l’information fournie par les capteurs et l’action qui a été associée. Vous pouvez corriger un biais en supprimant une donnée, modifiant une action, …

  • Une combinaison de ces éléments
    Par exemple dans l’activité Détection d’intrus, on peut voir l’espace d’états et le réseau de neurones
Capture ecran - Logiciel - Présentation 5e

L’écran vidéo


Dans le cas où le capteur caméra est nécessaire pour l’activité choisie, vous pourrez observer en haut à gauche de votre écran un retour de la caméra du robot (même pour un robot simulé !). Si l’activité utilise la webcam de l’ordinateur, c’est ici qu’elle apparaîtra.

Capture ecran - Logiciel - Présentation 5f

La simulation 2D (pour le robot AlphAI)

Si vous avez choisi le robot AlphAI simulé pour votre activité, en bas à gauche de votre écran apparaîtra une arène en 2D, et le robot simulé qui s’y déplace en direct.

Si vous souhaitez modifier cette arène simulée, ouvrez l’onglet Capteurs et scrollez en bas : vous pourrez alors ajouter/enlever l’îlot central et choisir la couleur des murs intérieurs et extérieurs.

Capture ecran - Logiciel - Présentation 5g

Le niveau des piles

Si vous êtes connecté à un robot AlphAI, en bas à gauche de votre écran se trouve un indicateur du niveau de batterie du robot. Il y a 2 états :

  • soit l'icône pile est verte, dans ce cas rien à signaler
  • soit l'icône pile est rouge ou noire, dans ce cas nous vous conseillons de déconnecter le robot du logiciel et de changer ses piles immédiatement 

Changer les piles d’un robot AlphAI

Capture ecran - Logiciel - Présentation 5h


Capture ecran - Logiciel - Présentation 5i

Les récompenses et niveau

Si vous avez choisi une activité avec apprentissage par renforcement, en bas de votre écran apparaîtront 2 barres : récompense (les récompenses données au robot en fonction des actions effectuées : en rouge si elles sont négatives et en vert si elles sont positives) et niveau (moyenne des récompenses reçues).

Capture ecran - Logiciel - Présentation 5j
À téléchargez
Cursus liés
Menus

Menus

Fichiers

Configurations d’exemple

choisissez une configuration d’exemple parmi toutes celles conçues par Learning Robots ! Vous trouverez le détail du déroulement de chaque activité sur les pages ressources du robot utilisé :
Activités AlphAI Capture ecran - Logiciel - Présentation 18 alphai
Activités Thymio Capture ecran - Logiciel - Présentation 18 thymio
Activités mBot Capture ecran - Logiciel - Présentation 18 mBot

Charger

  • Charger une configuration : permet de choisir une configuration enregistrée sur l’ordinateur (format .json)
  • Charger la configuration par défaut : permet de revenir sur la configuration qui a été choisie par défaut
  • Charger des données d'entraînement : permet de charger des données d’entraînement qui ont été enregistrées sur l’ordinateur (format .zip ou .npz - attention à charger des données qui correspondent à la configuration actuelle)
  • Charger un modèle : permet de charger un modèle enregistré sur l’ordinateur (format .zip ou .pth - attention à charger un modèle qui correspond à la configuration actuelle)

Sauvegarder

  • Enregistrer la configuration : permet d’enregistrer la configuration actuelle sur l’ordinateur (format .json)
  • Enregistrer comme configuration par défaut : permet d’enregistrer la configuration actuelle comme configuration par défaut (quand vous lancerez le logiciel, cette configuration sera chargée automatiquement)
  • Réinitialiser la configuration : permet de réinitialiser et charger la configuration à sa valeur d'usine
  • Enregistrer les données d’entraînement : permet d’enregistrer les données d’entraînement actuelle sur l’ordinateur
  • Enregistrer le modèle : permet d’enregistrer le modèle entraîné actuel sur l’ordinateur

Language

  • choisissez dans quelle langue vous souhaitez utiliser le logiciel

Affichage des paramètres

choisissez le niveau d'affichage des paramètres entre les modes standard (plus épuré), avancé et expert (toutes les options).
Nous vous conseillons de choisir le mode standard, à moins d’être familier avec AlphAI et avoir de bonnes connaissances en IA.

Activer le mode enseignant

  • si vous êtes enseignant, activer ce mode vous permettra d’accéder à de nouvelles fonctionnalités. Vous aurez besoin pour y accéder de votre clé d’activation.
    Par exemple, dans le menu aide, vous pouvez cliquer sur “Informations sur les licences” pour connaître la liste d'appareils sur lesquels la licence a été activée.

Autres paramètres du programme...

  • Taille des polices : changez la taille des polices sur le logiciel si vous souhaitez avoir une meilleure visibilité, par exemple des poids des connexions du réseau de neurones
  • Big Brother : Cette option est utilisée en particulier dans notre activité "Éthique de l'IA". Une fois activée par le professeur en amont de la séance, le programme enregistre à l'insu des élèves les images prises par la caméra dans un sous-dossier du répertoire d'installation du logiciel, nommé "to_upload" expressément pour faire réagir.
    Le professeur pourra montrer ce dossier dans un second temps aux élèves pour discuter avec eux des problématiques de collecte de données, avec ou sans consentement.
    Les images sauvées sont automatiquement détruites à la fermeture du programme. Le logiciel AlphAI ne collecte ni ne transmet aucune information, et d'ailleurs fonctionne hors-ligne.
    Cette option ne peut être utilisée que pour un but éducatif.

  • Outils
    • Changer le dossier de configuration : permet de changer la localisation du dossier de configuration sur votre ordinateur. Ce dossier contient des fichiers de log et les paramètres du programme.
    • Télécharger le journal d'événements du robot : permet de télécharger le fichier de log du robot (nécessite une connexion en WiFi).
      Utile à nous transmettre en cas de bug !
    • Tester le robot : permet de détecter d’éventuelles défaillances matérielles sur le robot

      Depuis l’écran de connexion, vous pouvez également trouver :
    • Mise à jour du robot : forcer la mise à jour du robot si elle n’a pas fonctionné automatiquement
    • Diagnostiquer le démarrage du robot : vérifier que le démarrage du robot se passe correctement (Ce test prend environ 20 secondes. Une autre fenêtre s'ouvre lorsque le test est terminé)

  • Aides
    • Ressources : permet d’accéder aux ressources et au centre d’assistance fournis par Learning Robots : découvrez tout ce qu’il y a à savoir sur le logiciel AlphAI, toutes les instructions et activités à réaliser pour chacun des robots, la FAQ, …
    • Journal des modifications : accédez à la liste des mises à jour
    • À propos d’AlphAI : vous renseigne sur la version d’AlphAI que vous utilisez actuellement

Signaler un bug : si vous rencontrez un problème que vous n’arrivez pas à résoudre, ce formulaire vous permet de nous transmettre un message qui sera associé au log du logiciel, et ainsi nous aidera à résoudre votre problème (merci de renseigner votre email afin que nous puissions vous recontacter si besoin).

À téléchargez
Cursus liés
Contrôles
Contrôles

Contrôles

Autonomie

Capture ecran - Logiciel - Présentation 6

Contrôlez l’autonomie de votre robot grâce à ces différents boutons :

  • Autonome : le robot est en autonomie continue
  • Pas à pas : cliquez pour observer votre robot prendre une décision, et une seule ! Le robot ne fera qu’une étape à chaque fois que vous appuierez sur le bouton.
  • Exploration : en mode apprentissage par renforcement, ce bouton vous permet de forcer votre robot à tenter de temps en temps une action aléatoire (paramétrable dans l’onglet IA).

Apprentissage

Capture ecran - Logiciel - Présentation 7

Contrôlez l’apprentissage de votre robot :

  • Apprentissage : si ce bouton est sélectionné, le robot enregistre les données fournies dans sa mémoire d’expérience et change les connexions de son réseau de neurones. Il est en train d’apprendre !
    En mode affichage expert, on a plus de contrôle :some text
    • acquérir des données : si ce bouton est activé, le robot mémorise les actions qu’il effectue.
    • entraîner le modèle : si ce bouton est activé, l'algorithme d’apprentissage fait évoluer les valeurs des paramètres du modèle.
  • Édition manuelle : dans les activités “Édition manuelle”, cliquez sur ce bouton pour modifier les paramètres du réseau de neurones directement depuis l’interface.
  • Oublier l’action : si vous cliquez sur ce bouton, le robot oublie la dernière donnée qu’il a apprise : très pratique si vous vous trompez lors de la phase d’apprentissage !
  • Réinitialiser l’IA : si vous cliquez sur ce bouton, les données d'entraînement et le modèle seront réinitialisés : recommencez maintenant l’apprentissage du robot !
    En mode affichage expert, on a plus de contrôle:some text
    • Réinitialiser les données : efface les données d’apprentissage mémorisées
    • Réinitialiser le modèle : les paramètres du modèle sont réinitialisés.

Graphes

Capture ecran - Logiciel - Présentation 8

Ce bouton vous permet d'ouvrir une fenêtre pop up qui vous donnera des informations sur l’apprentissage de votre robot, et des graphiques qui présentent ces données visuellement. 


Capture ecran - Logiciel - Présentation 8bis

Ce graphe permet de suivre la progression du robot en affichant ses récompenses et l’erreur de ses prédictions au cours du temps. Si le robot progresse bien, le graphe des récompenses doit augmenter et celui des erreurs doit diminuer.


Dans le cas où il y a trop de bruit sur les données, vous pouvez lisser les courbes, par exemple sur 2 minutes, en cliquant sur lissage – 2 minutes

Réglages (pour AlphAI)

Réglez les paramètres de votre robot grâce à ce bouton :

  • Vitesse (de 15 à 50) : vous pouvez régler la vitesse du robot, en fonction de l’activité et de la taille de l’arène utilisée
    Capture ecran - Logiciel - Présentation 9a
  • Correction de trajectoire : il est possible que le robot ait un petit défaut de trajectoire. Utilisez cet outil pour le corriger (faites le test en utilisant l’action aller tout droit)
    Capture ecran - Logiciel - Présentation 9b
  • Simulation accélérée : si vous avez choisi un robot simulé, ce bouton vous permet d'accélérer les prises de décision et actions du robot, au lieu d’imiter la vitesse réelle.
    Capture ecran - Logiciel - Présentation 9c

Déconnexion

Déconnectez-vous du robot grâce à ce bouton, pour changer les piles ou lorsque votre session est terminée !

⚠️ Si vous vous déconnectez du robot, vous reviendrez automatiquement à l’écran d’accueil. Cependant si vous reconnectez le robot et relancez l’activité sans quitter le logiciel, ni la configuration ni vos données d'entraînement ne seront perdues.

Capture ecran - Logiciel - Présentation 10

À téléchargez
Cursus liés
Onglets
Onglets

Onglets

Onglet capteurs

Capture ecran - Logiciel - Présentation 11

La fenêtre Capteurs permet de choisir les capteurs du robot qui seront utilisés.

Cliquez sur un capteur pour choisir une des options d’utilisation possible.


Découvrez les différents capteurs utilisés en fonction des robots concernés :

Capteurs robot AlphAI

Capteurs robot Thymio

Capteurs robot mBot


Vous pouvez également choisir le nombre d’instants, et dans le cas d’un robot simulé changer les paramètres de l’arène.

Onglet actions

Capture ecran - Logiciel - Présentation 12

La fenêtre Actions permet de choisir les actions que peut effectuer le robot.

Cliquez sur une action pour l’ajouter au réseau de neurones.
⚠️ Ajouter une nouvelle action supprimera la mémoire d’expérience du robot.

Découvrez les différentes actions utilisées en fonction des robots concernés :

Actions robot AlphAI

Actions robot Thymio

Actions robot mBot

Vous pouvez également choisir la vitesse, la durée (de 0.1s à 2s), et si vous souhaitez que le robot effectue une pause entre les actions ou non, et de quelle durée.

Onglet récompenses

Capture ecran - Logiciel - Présentation 13

Si vous avez lancé une activité avec apprentissage par renforcement, vous pouvez utiliser l’onglet Récompenses pour choisir le type de récompense et la configuration de celle-ci.

Vitesse et blocage

Récompensez le robot si il va vite, punir s’il s’arrête. Vous pouvez personnaliser la récompense obtenue par le robot quand il effectue une action de virage, et la valeur de la pénalité quand il se bloque ou recule.

Couleur dans l’image

Récompensez le robot si beaucoup de pixels de la caméra sont d’une certaine couleur.
Vous pouvez personnaliser la teinte, la luminance et la saturation.

Couleur et blocage

Récompensez le robot si beaucoup de pixels de la caméra sont d’une certaine couleur, et le punir s'il s’arrête.
Vous pouvez personnaliser la teinte, la luminance et la saturation.

Suivi de ligne

Récompensez le robot si détecte du noir juste en dessous de lui. Vous pouvez personnaliser le seuil de détection de blocage.

Code Python

Paramétrez vos propres récompenses en utilisant un fichier de code Python

Onglet IA

Capture ecran - Logiciel - Présentation 14

L’onglet I.A. permet de choisir de quelle façon le robot est entraîné, notamment pour choisir entre apprentissage supervisé ou apprentissage par renforcement (Deep Q Learning). Elle permet aussi de régler les paramètres des différents algorithmes.

“ “ = tous les modes

“ “ = seulement en avancé et expert

“ “ = seulement en expert

  • Type d’apprentissage

  • Algorithme : Sélectionner l’algorithme d’IA utilisé.

  • Vitesse d’apprentissage : Augmenter pour des apprentissages plus rapides... mais diminuer si des erreurs de divergence apparaissent.

  • Gamma : Ajuste l’importance donnée aux récompenses immédiates (valeur proche de 0) par rapport aux récompenses plus éloignées dans le temps (valeur proche de 1)

  • Exploration : Fréquence des explorations (valeur entre 0 et 1).

  • Couches de neurones intermédiaires : Nombre de neurones de chaque couche intermédiaire par exemple : ne rien mettre pour connecter directement les entrées aux sorties, mettre «100 50» pour deux couches intermédiaires de respectivement 100 et 50 neurones.

  • Fonction d’activation : choix de la fonction d’activation des couches intermédiaires.

  • 2 neurones par variable binaire : Cocher pour que les entrées binaires soient représentées par 2 neurones (dont toujours un et un seul sera activé) ; Décocher pour utiliser seulement 1 neurone.

  • Biais neuronal : Cocher pour permettre aux neurones d’ajuster leur seuil d’activation (cela revient à considérer que tous les neurones reçoivent une entrée constante qu’ils peuvent ajuster, non représentée dans l’interface graphique).

  • Mémoire d’expérience : Cocher pour que l’IA continue d’apprendre à partir des actions effectuées et récompenses reçues par le passé.

Onglet Visualisation

Capture ecran - Logiciel - Présentation 15

L’onglet Visualisation permet de choisir ce qui est affiché ou non sur l’écran principal.

“ “ = tous les modes

“ “ = seulement en avancé et expert

  • Type d’affichage : réseau de neurones, espace d’états, ou les deux

  • Animation : Animer l’activité dans le réseau (mouvement des entrées vers les sorties)

  • Connexions : Afficher les connexions du réseau

  • Apprentissages : Afficher les apprentissagessome text
    • vert : les connexions s’intensifient
    • rouge : les connexions diminuent

  • Activité synaptique : Afficher l’activité dans le réseausome text
    • jaune : activités d’excitation
    • bleu : activités d’inhibition

  • Valeur des entrées/sorties : Afficher les valeurs des neurones d’entrée et de sortie

  • Valeur des connexions : Afficher les poids des connexions. Cette option active automatiquement l'affichage des entrées/sorties.

  • Espace entre les neurones : fait passer les neurones d’entrée du mode vertical au mode horizontal

Pour le robot AlphAI uniquement : vous pouvez changer la couleur de la coque. Attention : le robot va mémoriser sa nouvelle couleur et apparaîtra ainsi sur l’écran de connexion.

À téléchargez
Cursus liés
Outils de programmation Python
Outils de programmation Python

Outils de programmation Python

  • Documentation API AlphAI


Dans ce document, vous trouverez toutes les informations nécessaires à l'utilisation de l’API AlphAI :

https://drive.google.com/file/d/1C4ovPW_eH5KFz5Y9JvSrzLhtmdOpcp6-/view

  • Dans l’onglet IA du logiciel

Capture ecran - Logiciel - Présentation 16

Vous pouvez choisir pour le paramètre algorithme “code python”.

Un pop up apparaît, il faut choisir entre créer un nouveau fichier ou ouvrir un fichier existant.

Ce fichier permettra d’écrire du code python qui sera exécuté par le logiciel.

  • Dans l’onglet Récompense du logiciel (pour AlphAI uniquement)

Capture ecran - Logiciel - Présentation 17

Programmez votre propre fonction de récompense en cliquant sur le bouton “code python”.

À téléchargez
Cursus liés
Mises à jour
Mises à jour

Mises à jour

Learning Robots travaille continuellement à développer les fonctionnalités du logiciel et à améliorer l’expérience utilisateur.

C’est la raison pour laquelle nous procédons de temps en temps à des mises à jour, qui démarrent après approbation au lancement du logiciel si vous êtes connectés en WiFi. Elles ne prennent que quelques minutes !

Nous vous conseillons de mettre à jour tous les postes en même temps, pour être sûr d’avoir la même version du logiciel sur chaque poste.

Lien vers FAQ mises à jour

À téléchargez
Cursus liés
Liste des modifications
Liste des modifications

Liste des modifications

Version 1.8.10 (5 avril 2024)

  • Nouvel environnement "ordinateur" pour réaliser des apprentissages sans robot.
  • Nouveau capteur "webcam", disponible pour Thymio, mBot et "ordinateur".
  • Traductions disponibles en portugais.

Version 1.8.9 (16 février 2024)

  • Améliorations de l'installateur Windows.
  • Meilleure gestion de l'emplacement du dossier de configuration.

Version 1.8.8 (31 janvier 2024)

  • Traductions en allemand et en espagnol.
  • Possibilité de changer manuellement le dossier de configuration pour répondre à des besoins spécifiques.

Version 1.8.7 (13 décembre 2023)

  • Améliorations concernant les représentations graphiques de l'espace d'états.
  • Correction d'un bug qui empêchait l'utilisation du mode code python pour la programmation de la récompense.

Version 1.8.6 (11 décembre 2023)

  • Mise à jour des traductions en Italien et Néerlandais.
  • Autres améliorations mineures et correction de bugs.

Version 1.8.5 (28 novembre 2023)

  • Traductions en Chinois traditionnel et simplifié.

Version 1.8.4 (22 octobre 2023)

  • Traductions en Arabe et en Hébreu.

Version 1.8.3 (9 octobre 2023)

  • Nouveau modèle robot : mBot !

Version 1.8.2 (4 octobre 2023)

  • La coloration de l'espace d'états 2D est maintenant disponible en mode "code utilisateur".
  • Correction de bugs concernant la mise à jour du logiciel et la mise à jour des robots AlphaBots.

Version 1.8.1 (27 septembre 2023)

  • Amélioration de la connexion pour les robots Thymio.

Version 1.8.0 (20 septembre 2023)

  • Nouveau protocole Bluetooth (BLE) pour les robots AlphaBots, avec de nombreuses améliorations :some text
    • Compatibilité avec macOS.
    • Connexions plus stables (moins de déconnexions).
    • Meilleure détection de la couleur des robots.
  • Cependant, le protocole BLE n'est disponible que pour les modèles de robots les plus récents (numéros à partir de 600, environ). Si vous souhaitez mettre à niveau votre robot pour bénéficier des améliorations apportées par le protocole BLE, veuillez suivre les instructions détaillées dans cette page.
  • De nombreuses autres améliorations que vous pourrez découvrir en utilisant notre logiciel !

Version 1.7.22 (25 août 2023)

  • Amélioration de la lecture des licences enregistrées par des robots Thymio (pour éviter les demandes répétées de clé d'activation).
  • Ajout du fichier requirements-linux.txt pour aider à l'installation sous Linux.

Version 1.7.21 (12 juin 2023)

  • Amélioration du redémarrage automatique des robots AlphAI après une mise à jour.
  • Correction de bugs, notamment pour le robot Thymio.

Version 1.7.20 (24 mai 2023)

  • Améliorations et corrections de bugs pour l'API.

Version 1.7.19 (20 mai 2023)

  • Possibilité de demander une version d'essai pour les robots Thymio et Buddy.

Version 1.7.18 (26 avril 2023)

  • Les mises à jour mineures sont maintenant plus légères, donc plus rapides à télécharger.

Version 1.7.17 (25 avril 2023)

  • Correction d'un bug empêchant le démarrage du programme sur des ordinateurs Windows configurés en langue allemande.
  • Sur Windows, le robot AlphAI simulé peut maintenant faire des bips en utilisant le son de l'ordinateur.

Version 1.7.16 (5 avril 2023)

  • Correction d'un bug provoquant des déconnexions lors de l'utilisation de l'API.

Version 1.7.15 (4 avril 2023)

  • Mise à jour pour le robot Buddy.

Version 1.7.14 (3 avril 2023)

  • Correction d'un bug lors du chargement de certaines configurations.

Version 1.7.13

  • Possibilité de créer des actions personnalisées.

Version 1.7.12 (20 mars 2023)

  • Correction d'un bug provoquant une déconnexion au bout de 15 secondes lors de l'utilisation de l'API.
  • Simplification de l'installation sous macOS et Linux.

Version 1.7.11

  • Possibilité de demander une licence d'essai pour une durée de 15 jours.

Version 1.7.10

  • Amélioration graphique des graphes 1D et 2D et des cartes de saillance.
  • Amélioration de la gestion des proxy pour l'accès au serveur de licences.

Version 1.7.9

  • Amélioration des graphes "espace d'états" dans les scénarios "KNN" et "détection d'intrus".

Version 1.7.8

  • Amélioration du système de licences pour le robot Thymio.

Version 1.7.7

  • Correction de bugs pour les utilisateurs de macOS.

Version 1.7.5

  • Amélioration de la fiabilité des connexions avec les robots AlphAI.
  • Détection automatique des robots disponibles et de leur couleur (expérimental).
  • Nouveau mode enseignant pour protéger certaines fonctionnalités à l'aide d'un mot de passe (votre clé d'activation).

À téléchargez
Cursus liés
Problèmes récurrents
Problèmes récurrents

Problèmes récurrents

Visitez notre FAQ !

À téléchargez
Cursus liés
Présentation du robot AlphAI
Présentation du robot AlphAI

Présentation du robot AlphAI

Introduction

Learning Robots a conçu un petit robot à l’allure sympathique, mais qui en a sous le capot !

Ce robot a été élaboré spécifiquement pour l’utilisation de la solution AlphAI : son grand nombre de capteurs (notamment la caméra grand angle), sa polyvalence et son format compact permettent de réaliser l’intégralité des activités disponibles sur le logiciel.

Ce robot a été pensé pour être à la fois robuste et démontable à n’importe quel moment. 

Les coques et pare-chocs sont imprimés chez nous ce qui nous laisse une grande marge de liberté quant au design du robot. N'hésitez pas à nous demander les fichiers 3d si vous souhaitez les customiser ! 

Composition


Capteurs

Caméra grand angle

Ultra-son

5 capteurs infra-rouge de suivi de ligne

Effectuateurs

2 roues motrices

4 LEDS multi-couleurs

Buzzer

Ordinateur de bord

Raspberry Pi Zero (linux, Python)

Connection WiFi & Bluetooth au PC

Coque

Sympathique, amortissante, démontable, disponible en 8 coloris

  1. Les capteurs

Les capteurs que vous pouvez utiliser sur le logiciel sont :

  • La détection d’obstacles : permet d’ajouter une entrée binaire (1 si le robot a essayé de bouger mais n’a pas réussi, 0 dans le cas contraire).
    En mode expert, vous avez accès à deux paramètres supplémentaires :some text
    • seuil de détection de mouvement de la caméra : permet de paramétrer la sensibilité du détecteur d’obstacles. Il faut augmenter la valeur si on a trop de faux positifs (capteur qui détecte un obstacle inexistant), et inversement diminuer la valeur si on a trop de faux négatifs (capteur qui ne détecte pas un obstacle réel).
    • hauteur de blocage de la caméra : permet d’ignorer la partie haute de l’image lors de la détection des blocages. Avec une valeur de 1, l’image entière est analysée, avec une valeur de 0.5, seule la moitié inférieure est analysée.

  • Capteurs IR : permet d’utiliser les 5 capteurs infrarouges situés sous le robot. Ils communiquent chacun une valeur entre 0 et 1 en fonction de la luminosité de la surface. Il y a deux modes principaux :some text
    • Détection du noir : la valeur 0 correspond au blanc et la valeur 1 correspond au noir. Recommandé pour suivre une ligne noire sur fond blanc.
    • Détection de la réflexion : la valeur 0 correspond au noir et la valeur 1 correspond au blanc.

L'option mode binaire permet d'obtenir uniquement des valeurs entières 0 et 1 au lieu de valeurs décimales entre 0 et 1.

Lorsque le mode binaire est actif, le paramètre seuil IR permet de fixer le seuil de bascule entre les valeurs binaires 0 et 1. Par exemple, lorsque le seuil vaut 0.5 (valeur par défaut), toutes les valeurs entre 0.5 et 1 sont arrondies à 1, et toutes les valeurs entre 0 et 0.5 sont arrondies à 0.

Il y a aussi plusieurs boutons (5 capteurs, capteur central, capteurs intérieurs, capteurs extérieurs) qui permettent de sélectionner quel sous-ensemble des capteurs IR on souhaite activer.

  • Ultra-Sons : permet d’utiliser le capteur à ultra-sons situé à l’avant du robot. Il communique une valeur en fonction de la distance captée. Il y a 3 modes d'utilisation :some text
    • distance obstacle : la valeur renvoyée est la distance de l'obstacle   mesurée en mètres.
    • proximité obstacle : la valeur renvoyée est inversement proportionnelle à la distance mesurée.
    • Absence / présence obstacle : le capteur renvoie 1 si un obstacle est détecté et 0 sinon. La distance de détection des obstacles peut être ajustée grâce au curseur en-dessous.



  • Caméra :  permet d’activer la caméra à l’avant du robot. Plusieurs options sont proposées, qui déterminent la résolution de la caméra et l'utilisation ou non du zoom.

Le bouton pré-calcul image caméra permet de modifier les valeurs traitées :

  • lorsque le pré-calcul est désactivé, l'image est par défaut en couleurs (système RGB).
  • le mode niveaux de gris capture la luminosité de chaque pixel.
  • le mode couleur dans l'image détecte les couleurs. Tous les pixels blanc/gris/noirs vont obtenir la valeur 0 et les pixels de couleur la valeur 1.
  • le mode canal vert détecte uniquement la présence de vert (valeurs proches de 1) ou son absence (valeurs proches de 0).
  • le mode rouge vs vert renvoie pour chaque pixel une valeur entre -1 et 1 qui correspond à la quantité de rouge moins la quantité de vert.

Le bouton prendre une photo permet de prendre une photo avec la caméra du robot et de l'enregistrer sur votre ordinateur.

  • Le bouton dernières actions permet d'activer la mémoire de la dernière action lorsque le robot doit prendre une décision. Cela peut être utile par exemple pour éviter les situations où le robot effectue une action qui annule l'action précédente (il recule après avoir avancé, ou il pivote à droite après avoir pivoté à gauche).
  • En mode robot simulé, le capteur état du robot simulé renvoie des informations sur la position, l'orientation et la vitesse du robot simulé.

  1. Les actions

Les actions que vous pouvez utiliser sur le logiciel sont :

Vous pouvez également créer une action personnalisée en cliquant sur le bouton : 


La fenêtre suivante va alors apparaître : 


Nommez votre action et cochez “action du robot” pour modifier les paramètres : la nouvelle action est désormais disponible.

Pour l'enregistrer et pouvoir la réutiliser dans le futur, cliquez sur Fichier > Sauvegarder > Enregistrer la configuration.

  1. Environnement d’utilisation

Nous vous recommandons d’utiliser le robot dans une arène AlphAI.

Acheter une arène (lien boutique)

Pour réaliser l’intégralité des activités sur le logiciel, le robot aura besoin de :

  • Une surface très plane et propre, de couleur unie
  • Des murs extérieurs et intérieurs de couleurs différentes (et différente du sol), d’une hauteur supérieure au robot
  • D’une ou plusieurs lignes au sol d’une couleur très contrastée avec la bâche  (utilisez par exemple un scotch noir ; il est fourni avec les arènes.)

 

Si vous ne disposez pas d’arène ou même de robot, sachez également que de nombreuses activités sont réalisables avec le robot AlphAI simulé en 2D dans le logiciel.

À téléchargez
Test
Cursus liés
Connexion au robot
Connexion au robot

Connexion au robot

En Wifi (recommandé)

Video - alphai - preparation 1

Nous vous conseillons de toujours privilégier une connexion en WiFi si cela est possible, car elle permet de communiquer avec le robot avec un meilleur débit. De plus, elle est obligatoire pour la mise à jour des robots.

  1. Regardez le numéro inscrit au marqueur sous votre robot, en prenant garde à le tenir par sa base et non sa coque, puis allumez le robot en actionnant l'interrupteur PWR SWITCH sur ON
  2. Posez le robot dans l’arène et patientez quelques instants, jusqu’à ce que le robot vibre et clignote.
  3. Ouvrez le panneau de connexion WiFi de votre ordinateur : le robot apparaîtra alors sous le nom “ALPHAI-00XXXX” (XXXX étant le nombre que vous avez relevé sous le robot). Connectez-vous au robot : le mot de passe est la copie exacte du nom du réseau WiFi (ALPHAI-00XXXX).
  4. Lancez le logiciel AlphAI. Vérifiez en haut à droite de l’écran d’accueil que vous avez choisi le modèle de robot AlphAI
  5. Le robot avec son numéro et une icône Wifi apparaît alors sur l’écran de connexion : cliquez dessus
  6. Le robot vibre, ses lumières s’allument en continu et l’interface du logiciel s’ouvre. C’est parti !

⚠️  Avant d’éteindre votre robot ou de changer ses piles, nous vous conseillons d’appuyer sur le bouton “déconnexion” en bas à droite de l’écran dans l’interface.

TROUBLESHOOTING

En Bluetooth

Video - alpha - preparation 2

Si vous préférez connecter le robot à votre ordinateur en bluetooth, sachez que le débit de transmission est plus faible qu’avec le WiFi. De plus, quand le robot aura besoin d’être mis à jour, il faudra utiliser la connexion en WiFi.

  1. Regardez le numéro inscrit au marqueur sous votre robot, en prenant garde à le tenir par sa base et non sa coque, puis allumez le robot en actionnant l'interrupteur PWR SWITCH sur ON
  2. Posez le robot dans l’arène et patientez quelques instants, jusqu’à ce que le robot vibre et clignote.
  3. Dans les paramètres de votre ordinateur, vérifiez que le bluetooth est bien activé
  4. Lancez le logiciel AlphAI. Vérifiez en haut à droite de l’écran d’accueil que vous avez choisi le modèle de robot AlphAI
  5. Veillez à ce que le bouton “Bluetooth Low Energy” en haut à droite de votre écran soit bien activé (avec un fond jaune).
  6. Le robot avec son numéro et une icône Bluetooth apparaît alors sur l’écran de connexion : cliquez dessus
  7. Le robot vibre, ses lumières s’allument en continu et l’interface du logiciel s’ouvre

⚠️  Avant d’éteindre votre robot ou de changer ses piles, nous vous conseillons d’appuyer sur le bouton “déconnexion” en bas à droite de l’écran dans l’interface.

Votre robot n’apparaît pas ? → désactivation BLE

TROUBLESHOOTING

En simulation

Video - alpha - preparation 3

Si vous n’avez pas de robot AlphAI, vous pouvez tout de même utiliser notre logiciel grâce au simulateur 2D : 

  1. Lancez le logiciel AlphAI
  2. Vérifiez en haut de l’écran que vous avez choisi le modèle de robot AlphAI dans le logiciel.
  3. Cliquez sur “Simulateur 2D”
  4. Le logiciel s’ouvre : observez en bas à gauche de l’écran un petit robot simulé dans une arène en 2D !
  5. L’arène virtuelle peut être customisée en changeant les couleurs des murs extérieurs et intérieurs ainsi qu’en supprimant ce mur. Pour y accéder, Paramètres → Affichage des paramètres → ExpertCapteurs → bas de la page
À téléchargez
Cursus liés
Maintenance du robot
Maintenance du robot

Maintenance du robot

Remplacement des piles

Video - alpha - preparation 4

Le robot utilise des piles rechargeables en lithium-ion qui sont donc très puissantes mais se déchargent rapidement. C’est pourquoi nous vous conseillons de toujours garder les piles de rechange fournies chargées à proximité.

Si les piles du robot sont sur le point d’être à plat, une icône de batterie rouge apparaîtra sur votre écran en bas à gauche. Changez les piles en moins d’une minute : 

  1. Appuyez sur le bouton “déconnexion” en bas à droite de l’écran. Vous allez atterrir sur l’écran d’accueil
  2. Soulevez le robot en prenant garde à le tenir par sa base et non sa coque, puis éteignez le en mettant l'interrupteur PWR SWITCH sur OFF
  3. Retirez la coque du robot en exerçant une pression délicate sur sa base, puis en la faisant pivoter vers l’avant pour dégager la caméra
  4. Les piles se trouvent à l’arrière : glissez le doigt pour les remplacer avec des piles chargées en veillant à bien respecter les signes + et -
  5. Nous vous conseillons de mettre immédiatement les piles vides à recharger sur le chargeur AC fourni
  6. Remettre la coque sur le robot en commençant par l’avant ; veillez à bien positionner la caméra dans son emplacement, puis vérifiez que toute la base de la coque est insérée dans le châssis du robot. Appuyer délicatement sur l'arrière de la coque : vous devriez entendre un petit “clic”
  7. Rallumez le robot, reconnectez-le et reprenez votre activité !

Nous vous conseillons de toujours mettre à charger les piles utilisées pendant les activités en fin de session.

Mises à jour du robot

Learning Robots travaille continuellement à développer le logiciel et le robot AlphAI et à améliorer l’expérience utilisateur. C’est la raison pour laquelle nous procédons de temps en temps à des mises à jour, qui seront transmises automatiquement à la Rapsberry Pi du robot lors de la prochaine connexion en WiFi.

Lien vers FAQ mises à jour

Problèmes récurrents

Votre robot ne s’allume plus ? Impossible de vous connecter au logiciel ? Les roues de votre robot sont bloquées ? …

Trouvez la réponse à votre problème sur cette page : 

Lien vers FAQ robot AlphAI

Support & garantie

Les robots AlphAI sont garantis jusqu’à 2 ans après la date d’achat pour tout malfonctionnement.

En cas d'utilisation intensive, il est normal que les moteurs puissent présenter de l'usure : nous proposons des kits de remplacement de moteur (lien vers boutique). N'hésitez pas à nous contacter si vous souhaitez que nous nous chargions du remplacement.

L’équipe de Learning Robots reste à votre disposition. Si vous ne trouvez pas comment résoudre votre problème sur notre page FAQ, n’hésitez pas à nous contacter par email : support@learningrobots.ai

À téléchargez
Cursus liés
Arène AlphAI
Arène AlphAI

Arène AlphAI

Afin de faire évoluer le robot dans un environnement parfaitement adapté, Learning Robots a conçu un système d’arènes modulaires très facile à assembler et à transporter.

Les arènes sont disponibles dans 4 tailles différentes qui sont combinables selon vos besoins et le nombre de robots.

Elles sont constituées de planches en bois peintes, de bâches et de supports.

Elles sont fabriquées en pin du Jura par Olivier Sauge (artisans-du-bois.com) en France.

Composition

  • bâche(s) à poser sur le sol, avec design imprimé ou non, sur une surface parfaitement plane. Assemblez les bâches grâce au scotch de peintre (inclus) pour augmenter la surface de l’arène !

  • planches rouges, qui constituent les murs extérieurs de l’arène, à assembler grâce à leurs encoches et aux supports

  • planches noires, qui constituent les murs intérieurs de l’arène, à assembler grâce à leurs encoches et aux supports. Maintenez les planches noires aux planches rouges grâce aux bannières de course.

  • bannière(s) de course, qui permettent de joindre les murs intérieurs et extérieurs, tout en créant un départ de course pour vos robots ! Elles sont fournies avec des réhausseurs

  • Supports :
    • Pieds : à utiliser dans les angles sous les encoches (planches qui s'emboîtent) ou aux extrémités. Il n'est pas nécessaire d'en mettre sur le dessus.
    • Connecteurs : à utiliser pour assembler des planches en ligne droite. Il est conseillé d'en mettre à la fois sous et au-dessus des connexions. Ils peuvent être utilisés parallèlement mais aussi perpendiculairement aux planches, en fonction de la disposition souhaitée.

Video - alpha - preparation 5

Le montage

  1. Commencez par poser les bâches au sol, sur une surface très plane, et maintenez-les ensemble grâce au scotch de peintre pour plus de stabilité
  2. Assemblez les murs extérieurs grâce aux encoches et aux supports (seulement en dessous pour les pieds)
  3. Positionner le(s) mur(s) intérieur(s) au centre de l’arène avec leurs supports pieds
  4. Reliez les murs intérieurs et extérieurs grâce à la ou les bannière(s) de course, en veillant à bien surélever celle(s)-ci avec les réhausseurs fournis.

Les arènes sont modulables à votre guise ! Voici quelques exemples de dispositions :

⚠️  Si vous avez une planche noire simple au centre de l'arène (et qui ne peut pas être maintenue aux planches rouges extérieures grâce à la bannière de course), nous vous conseillons de doubler cette planche en utilisant des connecteurs afin d'avoir plus de stabilité.

Utilisation scotch

Grâce au scotch noir fourni avec votre arène, vous pouvez tracer au sol des lignes à suivre par votre robot ! Elles sont très facilement décollables de la bâche à la fin de l’activité.
Video - alpha - preparation 6

Le tracé le plus courant est une forme de 8, mais n’hésitez pas à faire parler votre imagination ! Préconisez des courbes douces afin de ne pas perturber le robot.

À téléchargez
Cursus liés
Activité : Course de robots autonomes
Activité : Course de robots autonomes

Matériel nécessaire :

  • 2 robots minimum
  • 1 ordinateur/robot
  • Arène de course

Configuration logiciel : Mode "course de robot"

Durée : 40 à 60 minutes

Age : 8 ans et +

Les + de cette activité :

  • extrêmement ludique
  • appréciée de tous les âges
  • parfaite pour introduire le principe de l’apprentissage supervisé
  • Peut être réalisée avec le simulateur (mode course contre la montre).

Course de robots autonomes

Activité ludique pour une arène avec plusieurs robots : les élèves entraînent les robots à rouler dans un circuit puis une course est organisée. Les élèves apprennent par la manipulation le principe de l'apprentissage supervisé et l'importance de la qualité des données d'entraînement.

La course de robots est l’activité recommandée pour débuter la solution AlphAI.

Contenu vidéo

Introduction

Construisez votre arène de manière à former un circuit. Nous vous recommandons d’utiliser une arène de course conçue par Learning Robots, mais vous pouvez également construire votre propre circuit : veillez dans ce cas à ce qu’il y ait un bon contraste visuel entre le sol et les bords du circuit, ainsi qu’un éclairage uniforme. Vérifiez également que le sol est propre.

Paramétrage

Connectez tous les robots à un ordinateur, puis choisissez le configuration d'exemple “course de robots” ou créez vos propres paramètres.

Veillez à vérifier que tous les robots ont les mêmes paramètres et surtout la même vitesse.

Entraînement

Vérifiez que le bouton « autonome » est bien désactivé, et que le bouton “apprentissage” est bien activé.

C’est à vous de jouer ! Chacun entraîne son robot à se déplacer en cliquant sur les actions à droite de l’écran ou en le contrôlant avec les flèches directionnelles ou AZEQSD du clavier.
Nous vous conseillons de faire des tours d’arène dans le sens des aiguilles d’une montre.

Pendant cette phase d’apprentissage, ce n’est pas la peine de chercher à aller vite : le but est surtout d’apprendre au robot à faire des tours dans le bon sens et sans se cogner aux murs. Prenez le temps de bien choisir l’action adéquate à chaque fois (si vous vous trompez, cliquez sur “Oublier action” à côté du bouton apprentissage). Faites attention à ne pas confondre la gauche et la droite quand le robot est en sens inverse !

Apprenez au robot à rester loin de l’obstacle central pour éviter qu’il s’y coince lorsqu’il sera autonome.

Vous pouvez également déplacer le robot à la main pour le mettre intentionnellement face à des obstacles et lui apprendre quoi faire dans ces situations.

Dans le panneau de contrôle en bas de l’écran, vous pouvez fixer la vitesse de pointe du robot. Nous vous conseillons une vitesse maximale de 30 pour une arène petite course, 35 pour une arène grande course, et 40 pour une arène très grande course.

Plus vous augmentez la vitesse, plus le robot sera rapide, mais plus il sera difficile à contrôler. Choisir une vitesse très élevée n’est pas toujours un avantage !

Test de l’apprentissage et améliorations

Après avoir fait quelques tours de l’arène, vous pouvez activer l’autonomie. Si votre robot est bien entraîné, il se mettra alors à faire des tours par lui-même !

Mais l’apprentissage n’est pas terminé ; même lorsque le robot se pilote lui-même, vous pouvez continuer de le commander en appuyant sur les flèches pendant qu’il se déplace. Par exemple, si le robot se coince contre un mur et ne sait plus quoi faire, vous pouvez le débloquer en lui demandant de faire marche arrière.

La course de robots

Une fois vos robots entraînés, organisez une compétition : placez les robots concurrents sur la ligne de départ. Donnez le top départ et les équipes cliquent alors en même temps sur le bouton « Autonome » (ou appuient sur la barre d’espace) pour démarrer la course.

Pendant la course, seul le mode autonome est autorisé : les participants ne doivent pas donner d’instruction à leur robot. Un arbitre pourra déplacer les robots qui sont bloqués pendant plus de 5 secondes, pour leur permettre de continuer la course.

Le premier robot qui a effectué 3 tours complets a gagné !

Retours d'expérience et conclusion

Nous avons utilisé ici un algorithme d’apprentissage supervisé. Cet algorithme est basé sur le réseau de neurones artificiels qui est affiché à l’écran (mais il existe d’autres types d’algorithmes qui ne sont pas basés sur des réseaux de neurones, par exemple l’algorithme des K plus proches voisins). Tous les algorithmes d’apprentissage supervisé fonctionnent de la manière suivante :

Dans une première phase appelée entraînement, nous avons fourni des exemples de décisions à l’algorithme, c’est-à-dire à la fois des images de ce que voit la caméra du robot et les actions qu’il faut choisir lorsque la caméra voit ces images. Pendant l’entraînement, le réseau de neurones artificiels a été modifié par l’algorithme d’apprentissage (plus spécifiquement, certaines connexions ont été renforcées, d’autres diminuées, de sorte que le réseau de neurones devienne capable d’imiter les mêmes prises de décision).

Dans un second temps appelé utilisation, l’algorithme est capable de prendre de bonnes décisions sur de nouvelles images.

Nous avons vu que tous les robots n’ont pas appris la même chose, certains se sont mieux comportés pendant la course, d’autres moins bien. Comme tous les participants ont utilisé le même algorithme, nous voyons bien que la qualité des prises de décisions en autonomie dépend de la qualité des données d’entraînement.

Nous pouvons discuter ensemble de ce qui fait la qualité des données d’entraînement :

• Qualité des données d’entraînement = absence d’erreurs dans les prises de décisions

• Quantité des données pas toujours gage de qualité d’autonomie

• Exhaustivité des situations : le robot a plus de risques de faire un mauvais choix lorsqu’il est confronté à une situation inconnue

Pour aller plus loin

Maintenant que les élèves ont compris que pour gagner la course, le plus important est la qualité des données d'entraînement, recommencer l'activité depuis le début !

Vous pouvez également recommencer la course en ajoutant de nouvelles règles :

  • Limiter les données d’entraînement (par exemple : 25 points de données maximum), mais en laissant la possibilité aux participants de déplacer leur robot à la main.
  • Complexifier l’arène
  • Avoir une arène différente pour l’entraînement et pour la course

Matériel nécessaire :

  • 2 robots minimum
  • 1 ordinateur/robot
  • Arène de course

Durée : 40 à 60 minutes

Age : 8 ans et +

Configuration logiciel : Mode "course de robot"

Les + de cette activité :

  • extrêmement ludique
  • appréciée de tous les âges
  • parfaite pour introduire le principe de l’apprentissage supervisé
  • Peut être réalisée avec le simulateur (mode course contre la montre).
Activité : Suivi de ligne
Activité : Suivi de ligne

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Surface plane de couleur claire
  • Ruban adhésif noir

Paramètrage logiciel: “Suivi de ligne” en édition manuelle (créez les connexions directement sur le logiciel) ou en apprentissage supervisé (entraînez le robot sur la piste)

Durée : 20 à 30 minutes

Age : 10 ans et +

Les + de cette activité : 

  • Peu de matériel nécessaire
  • Très simple et rapide à réaliser
  • Réseau de neurones très facile à comprendre

Suivi de ligne

Cette activité est réalisée avec chaque robot individuellement. Nous allons apprendre au robot à suivre un tracé au sol, sans qu’il ne se trompe !

Les élèves apprennent que le succès de l'apprentissage supervisé dépend plus de la qualité et de l’exhaustivité des données d’entraînement du robot que de leur quantité. Ils pourront comprendre très facilement le principe du réseau de neurones, car celui utilisé dans cette activité est très simple et lisible (5 entrées, 5 ou 6 sorties)

Contenu vidéo

Introduction

Sur une surface plane de couleur unie et claire, tracez un parcours grâce à un scotch de couleur sombre (fourni avec les arènes).

= Video - alpha - preparation 6
Si vous souhaitez utiliser votre propre matériel, veillez à ce que le robot perçoive bien le contraste entre le sol et la ligne.

La forme classique est un “8”, mais n’hésitez pas à faire parler votre imagination !
Veillez cependant à toujours créer des courbes douces pour ne pas perturber le robot.

Paramétrage (connexion)

Connectez le robot à un ordinateur, puis choisissez le configuration d'exemple “suivi de ligne” en édition manuelle ou en apprentissage supervisé, ou bien créez vos propres paramètres.

Veillez à vérifier que le robot a une vitesse inférieure ou égale à 20 à l’aide du curseur au bas de vôtre écran.

Entraînement

Si vous êtes en édition manuelle : 

Vérifiez que les boutons « autonome » et “apprentissage” sont désactivés, et que le bouton “édition manuelle” est bien activé.

Cliquez sur les liens entre les neurones d’entrée (capteurs infrarouges) et de sortie (action du robot) pour créer une connexion. Nous vous conseillons de créer les connexions suivantes : 

  • Capteur IR gauche : pivoter à gauche
  • Capteur IR centre gauche : tourner à gauche
  • Capteur IR central : aller tout droit
  • Capteur IR centre droit : tourner à droite
  • Capteur IR droite : pivoter à droite

Voici alors à quoi devrait ressembler votre réseau de neurones : 

Si vous êtes en apprentissage supervisé : 

Vérifiez que le bouton « autonome » est bien décoché, et que le bouton “apprentissage” est bien coché.

Placez le robot sur la ligne tracée sur le sol pour activer les capteurs. A chaque fois qu’un des capteurs est activé, déclenchez l’action correspondante : 

  • Capteur IR gauche : pivoter à gauche
  • Capteur IR centre gauche : tourner à gauche
  • Capteur IR central : aller tout droit
  • Capteur IR centre droit : tourner à droite
  • Capteur IR droite : pivoter à droite
  • Aucun capteur : reculer

Nous vous conseillons de donner plusieurs exemples pour chaque situation.

Test de l’apprentissage

Une fois que le réseau de neurones est configuré, observons si le robot réussit à suivre la ligne !

Placez-le en début de parcours, activez l’autonomie et regardez comme il se débrouille. 

Vous pouvez ensuite complexifier la piste en y ajoutant des intersections afin de créer de nouvelles difficultés pour les robots !


Bilan et retours d'expérience

Grâce à un réseau de neurones très simple et très peu de données d’entraînement, le robot a réussi à suivre la ligne.

On peut observer sur le logiciel le poids accordé à chaque connexion, et comprendre la manière dont le robot prend ses décisions : en fonction du capteur qui est activé (ou non), l’algorithme attribue des préférences à chacune des actions à choisir : le robot sélectionne l’action avec la préférence la plus forte.

Votre robot est sorti de piste ou a choisi la mauvaise action ? Essayez de comprendre pourquoi ! Quelques suggestions :

  • il y a un biais : vous avez fait une erreur dans l’entraînement du robot
  • plusieurs capteurs se sont activés en même temps, par exemple à un croisement : le robot a-t-il été entraîné à réagir à cette situation ?
  • l’angle d’une courbe de la ligne au sol est trop abrupt
  • la vitesse du robot est trop forte

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Surface plane de couleur claire
  • Ruban adhésif noir

Durée : 20 à 30 minutes

Age : 10 ans et +

Paramètrage logiciel: “Suivi de ligne” en édition manuelle (créez les connexions directement sur le logiciel) ou en apprentissage supervisé (entraînez le robot sur la piste)

Les + de cette activité : 

  • Peu de matériel nécessaire
  • Très simple et rapide à réaliser
  • Réseau de neurones très facile à comprendre

Cursus liés
Activité : Robot suiveur
Activité : Robot suiveur

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène facultative (recommandé si activité réalisée sur une surface en hauteur)

Configuration logiciel :

  • configuration d'exemple : “navigation avec caméra”

Durée : 1 heure

Age : 8 ans et +

Les + de cette activité :

  • Ludique et visuelle
  • Rapide à mettre en place
  • Très adaptée aux enfants les plus jeunes

Robot suiveur


Les élèves pourront apprendre au robot à suivre leur main ou un objet bien identifiable.

On pourra aller plus loin en laissant place à l'imagination des élèves : réalisation de parcours ou chorégraphies, où le robot réagit à divers signes visuels, comme par exemple des signes de la main.

Contenu vidéo

Introduction

Placez le robot sur une table avec assez d’espace pour se déplacer. Vous pouvez utiliser une arène si vous voulez éviter que le robot tombe de la table. Dans ce cas, une petite arène sans obstacle sera suffisante.

Paramétrage

Connectez le robot à l’ordinateur, puis choisissez le configuration d'exemple “navigation avec caméra”.

Nous utiliserons le capteur caméra, et les actions suivantes : avancer, pivoter à droite, pivoter à gauche, et s’arrêter.

Veillez à adapter la vitesse à la taille de la table.

Entraînement et mise en oeuvre (phase d’apprentissage)

L'entraînement se fera à 2, en faisant attention à être bien coordonné.
Un des élèves s’occupera de faire les signes de la main au robot, pendant que l’autre va gérer le logiciel.

L’objectif est d’apprendre au robot à suivre la main de l’élève (ou un objet bien identifiable).

Dans une première phase, un des élèves place sa main dans le champ de vision caméra du robot, pendant que l’autre choisit l’action qui rapprochera le robot au plus près de la main. Donnez plusieurs exemples au robot pour chaque position de la main dans l’image.

Dans une deuxième phase, il faudra apprendre au robot à s’arrêter lorsqu’il ne voit pas de main. De nouveau, le robot a besoin de plusieurs exemples avec des points de vue différents : l’élève en charge du logiciel clique sur l’action “s’arrêter”, pendant que l’autre élève place le robot à différents endroits (en faisant attention à ne rien mettre devant la caméra évidemment !)

Test de l’apprentissage et améliorations

Activez maintenant le mode Autonome.

Vérifiez que le robot a bien appris en observant s'il suit correctement votre main.
Si ce n'est pas le cas, désactivez à nouveau le mode autonome et ré-entraînez le robot.

Des pistes pour aller plus loin

  • On inverse les rôles, le robot parvient-il à suivre la main de l’autre élève ou un objet différent ? Si non : poursuivre l’entraînement jusqu’à ce que le robot soit capable de suivre les mains des deux élèves.
  • Placez le robot sur un parcours (tracez par exemple 2 lignes parallèles sur le sol), le mettre en mode autonome et le guider à la main sur le parcours. Permet d’évaluer à la fois l’entraînement du robot et le guidage effectué par l’élève.
  • Entraînez un robot à en suivre un autre ! Le robot de devant sera piloté, et l’autre devra le suivre en mode autonome. Astuce : pensez à choisir une vitesse un peu plus faible pour le robot suiveur.
  • Visualiser les données d’apprentissage et corriger les erreurs qui s’y trouvent. Le comportement du robot s'en trouvera amélioré.

Bilan et retours d'expérience

La mission des élèves était de réaliser l’entraînement (apprentissage supervisé) d’une IA.

Après apprentissage, le robot est capable d'interagir avec un utilisateur en réagissant aux signes de sa main.

En montrant des exemples au robot, il parvient à associer correctement les bonnes actions aux signes de main correspondants ce qui permet de « communiquer » avec lui.

Notions à retenir:

  • Ce sont les données d’entraînement qui déterminent le comportement du robot.
  • La qualité des données (absence d’erreurs) est très importante.
  • Il faut aussi fournir au robot des exemples suffisamment divers si l’on souhaite qu’il soit capable de généraliser le comportement suivi (par exemple suivre un autre objet ou une main différente).

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène facultative (recommandé si activité réalisée sur une surface en hauteur)

Durée : 1 heure

Age : 8 ans et +

Configuration logiciel :

  • configuration d'exemple : “navigation avec caméra”

Les + de cette activité :

  • Ludique et visuelle
  • Rapide à mettre en place
  • Très adaptée aux enfants les plus jeunes

À téléchargez
Cursus liés
Activité : Algorithme KNN
Activité : Algorithme KNN

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène individuelle minimum (sans obstacle)

Configuration logiciel :

  • configuration d'exemple : “KNN caméra”

Durée : 30 minutes

Age : 14 ans et +

Les + de cette activité :

  • Algorithme intuitif et facile à comprendre
  • Excellente visualisation de la prise de décision du robot
  • Peut être réalisée avec le simulateur

Algorithme KNN

Visualisation et application de l'algorithme des K plus proches voisins (au programme de première NSI) pour apprendre au robot à éviter les obstacles.

Niveau expert : dans l’activité “Algorithme KNN avancé”, les élèves pourront reprogrammer l'algorithme par eux-mêmes et le mettre en œuvre sur le robot.

Contenu vidéo

Introduction

Placez le robot dans une arène sans mur intérieur. Veillez à ce que l’arène soit bien éclairée, afin d’avoir un fort contraste entre le sol et les murs.

Paramétrage

Connectez le robot à l’ordinateur puis choisissez la configuration d'exemple “KNN caméra”.
Veillez à ce que la vitesse du robot soit inférieure ou égale à 30.

Pour cette activité, le robot analyse des images caméra dont la résolution a été réduite à 2 pixels seulement, et sans couleur. On obtient donc un pixel gauche et un pixel droit, qui mesurent des niveaux de gris. L'abscisse (pixel de gauche) et l’ordonnée (pixel de droite) du graphe montrent ces valeurs de niveaux de gris, 0 correspondant au noir et 1 correspondant au blanc.

Les actions par défaut sont : avancer (en jaune), pivoter à gauche (en rose) et pivoter à droite (en vert).

Il est possible d’ajouter davantage d’actions pour ce scénario, mais veillez à le faire dès le début, car modifier les actions provoque l’effacement de la mémoire d'expérience.

Phase d'entraînement

Vérifiez que le bouton « autonome » est bien décoché, et que le bouton “apprentissage” est bien coché.

Dirigez le robot en cliquant sur les flèches à droite de l’écran, où grâce aux touches « flèches » du clavier.

Tournez quand le robot est proche des murs et allez tout droit sinon. Vous pouvez aussi déplacer le robot à la main pour le mettre dans chaque situation.


Après chaque mouvement, un nouveau point apparaît. La position de chaque point est déterminée par ses coordonnées (x ; y), l’abscisse x représentant la luminosité dans la zone de gauche et l’ordonnée y la luminosité dans la zone de droite. La couleur autour de chaque point est la couleur associée à l’action choisie (vert pour pivoter à droite, jaune pour en avant et rouge pour pivoter à gauche).

Ces points sont les données d’entraînement. Cette phase est primordiale pour que l’IA fonctionne correctement. Si les données d’entraînement contiennent trop d’erreurs ou approximations, l’IA ne permettra pas d’avoir un résultat satisfaisant.

Une fois l’entraînement terminé, ouvrez le panneau Visualisation et cochez la case “arrière-plan” la section “Espace d’états”.

Vous verrez alors apparaître à l’écran les 3 différentes zones de couleurs qui correspondent à l’action que choisira le robot en fonction de la luminosité captée par sa caméra.

Si votre robot a été bien entraîné, le graphe devrait ressembler à : 

La luminosité diminue lorsque le robot s’approche des murs. Normalement, si la zone de gauche est la plus sombre, il faut tourner à droite, et inversement.

Lorsque vous aurez trois régions bien claires sur le graphique, arrêtez la phase d’entraînement et activez l’autonomie pour passer à la phase de test.

Test de l’apprentissage et améliorations

Activez l’autonomie en cliquant sur le bouton correspondant à l’écran ou en appuyant sur la barre d’espace.

Comment se comporte le robot ? Évite-t-il les obstacles comme prévu ?
Si le robot est bien entraîné, il saura éviter les bords par lui-même. Si au contraire il est mal entraîné ou la luminosité dans l’arène n’est pas homogène, les zones de couleur sur le graphique auront des contours plus irréguliers et le robot fera plus d’actions inappropriées.

Comprendre la prise de décision de l’algorithme : le point le plus gros est celui capté à cet instant par la caméra : il se lie au point le plus proche dans le graphe, qui a été enregistré lors de la phase d'entraînement : c’est l’action correspondante à son plus proche voisin qu’il va choisir d’effectuer !

Pistes pour aller plus loin

  • Dans l’onglet IA, faire varier la valeur de k (le nombre de voisins). Observer l’effet sur la prise de décision et sur la coloration d’arrière-plan du graphe. Quelle valeur de k donne le meilleur comportement ? Pourquoi ?
  • Après avoir bien compris le principe de l’apprentissage, refaire un apprentissage avec un plus petit nombre de points (par exemple: défi 5 points d’entraînement seulement).

Bilan et retours d'expérience

Points abordés / Notions à retenir :

  • Le principe de l’algorithme des k plus proches voisins : comprendre et savoir expliquer comment sont prises les décisions du robot.
  • Quel est l’impact des données d'entraînement sur le résultat ? Comment bien choisir les données d’entraînement ?
  • Quel est l’impact du paramètre k ? Comment choisir la meilleure valeur pour ce paramètre ?

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène individuelle minimum (sans obstacle)

Durée : 30 minutes

Age : 14 ans et +

Configuration logiciel :

  • configuration d'exemple : “KNN caméra”

Les + de cette activité :

  • Algorithme intuitif et facile à comprendre
  • Excellente visualisation de la prise de décision du robot
  • Peut être réalisée avec le simulateur

Cursus liés
Activité : Détection d’intrus
Activité : Détection d’intrus

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • un objet plat (boîte, planche, smartphone…)

Configuration logiciel :

  • configuration d'exemple : “détection d’intrus”

Durée : 2 heures

Age : 15 ans et +

Les + de cette activité : 

  • Idéal à faire en classe
  • Peu de matériel nécessaire
  • Pluridisciplinaire (maths / informatique)

Détection d’intrus

Compréhension mathématique des réseaux de neurones à travers une activité basée sur le capteur à ultrasons du robot. On y découvre notamment pourquoi on a besoin de couches de neurones intermédiaires.

Contenu vidéo

Mise en place

Placez le robot à côté de l’ordinateur, face à un mur (ou une planche d’arène) à environ 50 cm, et munissez-vous d’un objet à côté plat (une boîte, une planche, un smartphone) qui jouera le rôle de l’intrus.

Chargez la configuration ‘Détection d’intrus’. Ce scénario utilise uniquement le capteur à ultrasons.

Toute l’activité est réalisée en mode ‘édition manuelle’, c'est-à-dire que l’on va choisir soi-même les paramètres du réseau de neurones sans faire appel à un algorithme d’apprentissage.

Présentation de l’interface

Dans cette activité, votre écran principal comporte deux visualisations :

  • En bas, le réseau de neurones étudié. Au début de l'activité, le mode édition manuelle doit être activé, ce qui permet de modifier soi-même les paramètres du réseau de neurones. Pour modifier la valeur d'une connexion, placez votre souris sur cette connexion (elle devient rouge), puis utilisez votre clavier pour entrer la valeur souhaitée ou la molette de votre souris pour modifier la valeur actuelle. Pour modifier la valeur du biais d'un neurone, placez votre souris sur le neurone lui-même (pas l'affichage de la valeur), puis procédez comme pour les connexions.
  • En haut, un graphique représentant l'espace d'états. En abscisse, la distance mesurée par le capteur à ultrasons. En ordonnée, les niveaux d'activation des neurones de sortie. Il y a deux courbes représentées car il y a deux neurones de sortie. La correspondance courbe/neurone est indiquée par un code couleur. La valeur des neurones de sortie est une fonction de la valeur d'entrée (la distance). La couleur de fond du graphique indique quelle courbe est au-dessus de l'autre pour chaque valeur d'entrée, et donc quelle action sera choisie par le robot pour cette valeur d'entrée.

Objectif et problématique

Le robot est face à un mur et doit biper lorsque quelqu’un (un intrus) passe entre lui et le mur.

Il faut configurer le réseau de neurones pour accomplir cette tâche. Puisque le seul capteur utilisé est le capteur à ultrasons, l’objectif est d’obtenir un bip lorsque la distance est faible, et l’action ‘ne rien faire’, lorsque la distance est normale.

Intégration de biais neuronaux

Les simples paramètres ‘poids des connexions‘ sont insuffisants pour accomplir cette tâche. Il faut activer l’option ‘biais neuronal’ (dans l’onglet IA), cela débloque de nouveaux paramètres qui vont nous permettre d’atteindre cet objectif.

Tentative de triche

Problématique

Un intrus tente de tricher en exploitant les caractéristiques du capteur à ultrasons : si le côté plat est placé en diagonale par rapport au capteur, les ondes rebondissent et la distance captée est alors bien supérieure à celle du mur ! Il faut adapter notre réseau de neurones pour détecter également cette tentative de triche.

Couches de neurones intermédiaires

Pour cela, nous aurons besoin d’ajouter une couche intermédiaire à notre réseau de neurones (dans l'onglet IA), afin d’obtenir un modèle non-linéaire grâce aux fonctions d’activation.

Bilan et retours d'expérience

Je retiens :

  • Un réseau de neurones est un ensemble de neurones organisé par couches. Chaque couche peut comporter un ou plusieurs neurones.
  • Les neurones sont des objets abstraits contenant une simple valeur numérique.
  • Les neurones sont reliés entre eux par des connexions dont les valeurs sont appelées poids.
  • Chaque neurone possède également un biais qui est ajouté à la valeur du neurone.
  • Les valeurs de neurones de la couche d’entrée sont déterminées par les valeurs des capteurs.
  • Les neurones de la couche de sortie correspondent aux actions du robot. En mode autonome, c’est toujours l’action avec la valeur la plus élevée qui est sélectionnée.
  • Les couches intermédiaires permettent au réseau d’accomplir des tâches plus complexes. On voit sur le graphique que les droites des neurones de sortie sont remplacées par des courbes de plus en plus complexes lorsqu’on augmente le nombre de couches intermédiaires.
  • Entraîner un réseau de neurones consiste simplement à choisir une valeur pour chacun de ses paramètres : poids des connexions et biais des neurones. Lorsque le nombre de neurones et de connexions devient important, cette tâche complexe est réalisée par un algorithme d’apprentissage !

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • un objet plat (boîte, planche, smartphone…)

Durée : 2 heures

Age : 15 ans et +

Configuration logiciel :

  • configuration d'exemple : “détection d’intrus”

Les + de cette activité : 

  • Idéal à faire en classe
  • Peu de matériel nécessaire
  • Pluridisciplinaire (maths / informatique)

Activité : Évitement d’obstacles
Activité : Évitement d’obstacles

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène individuelle minimum

Configuration logiciel :

  • configuration d'exemple : “Apprentissage par renforcement - évitement d’obstacles”

Durée : 30 minutes

Age : 8 ans et +

Les + de cette activité :

  • Introduire l’apprentissage par renforcement
  • Comprendre le principe du “Try and learn” = bénéfices pédagogiques
  • Peut être réalisée avec le simulateur

Évitement d’obstacles

Cette activité consiste à observer un robot qui apprend de manière autonome selon le principe de l’apprentissage par renforcement. On peut en tirer des conclusions assez générales sur les conditions nécessaires pour un apprentissage efficace.

Contenu vidéo

Introduction

Dans cette activité, on n’entraîne pas le robot : c’est le robot lui-même qui va créer les exemples sur lesquels se baser afin de prendre les bonnes décisions d’actions à effectuer.
Pour que le robot soit capable de distinguer les bonnes des mauvaises décisions, l’algorithme comporte un système de récompenses.

Ici, le robot reçoit en fonction des actions effectuées les récompenses suivantes : 

  • avancer : 100 points
  • tourner : 82 points
  • reculer : -50 points
  • Le robot reçoit également une pénalité de -50 points lorsqu’il se bloque

Dans la barre “Niveau”, vous pourrez observer la note moyenne de récompenses obtenues par le robot. Son but est de maximiser ce score ; il va donc peu à peu apprendre à choisir les actions qui lui apporteront les récompenses optimales, en prenant en compte ce que ses capteurs lui indiquent

Nous allons donc pouvoir observer les progrès du robot au cours de son apprentissage. Commencez par monter une arène sans obstacle, et placez-y le robot.

Apprentissage du robot en autonomie

Dans le logiciel AlphAI, choisissez la configuration d'exemple : “Apprentissage par renforcement - évitement d’obstacles”.

Dans cette activité, c’est le robot qui apprend tout seul !

Lancez le mode autonome, et observez votre robot. Comment se comporte-t-il ?
Quand le robot a identifié une action qui lui rapporte une récompense (par exemple tourner), il se peut qu’il décide dorénavant d’effectuer uniquement cette action.

Nous allons maintenant activer le bouton “exploration” : de temps en temps, le robot va alors décider d’effectuer une action aléatoire. Il pourra ainsi découvrir que l’action qu’il aurait choisie n’est peut-être pas celle qui correspond à la récompense optimale possible, et ainsi enrichir son apprentissage avec de nouvelles données.

Normalement il apprend successivement à aller tout droit, à se retourner quand il se cogne à un obstacle, puis à reconnaître ces obstacles à l’avance et donc à tourner avant de se cogner dedans ! Cet apprentissage prend à peu près 10 minutes.

N’hésitez pas à désactiver le mode “exploration” lorsque le robot commence à majoritairement choisir les bonnes actions à effectuer.

Bilan et retours d'expérience

Une fois l’apprentissage terminé, arrêtez votre robot et cliquez sur “graphes” dans la barre inférieure (si le bouton n’apparaît pas, changez l’affichage des paramètres en “avancé” ou “expert”). Vous pourrez alors observer dans le graphe du bas l’évolution des erreurs effectuées par le robot : normalement, les valeurs devraient être très hautes en début d’activité, puis peu à peu tendre vers zéro : le robot s’est entraîné tout seul à ne plus faire d’erreurs !

Le fonctionnement de l’apprentissage par renforcement peut être résumé de cette manière : 

Ce qui est nécessaire à l’apprentissage du robot :

  • La répétition d’une même tâche : le robot ne parvient pas tout de suite à trouver la bonne solution, ce n’est qu’à force de répétitions qu’il s’améliore.
  • L’exploration : le robot doit parfois tester de nouvelles idées, pour ne pas rester enfermé dans une solution non optimale.
  • Les récompenses ou pénalités : le robot a besoin d’une aide extérieure pour évaluer si ses décisions sont optimales ou non.
  • La place de l’erreur : le robot apprend de ses erreurs sans se décourager ! Les erreurs lui permettent d’apprendre quelles actions ne pas répéter !

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène individuelle minimum

Durée : 30 minutes

Age : 8 ans et +

Configuration logiciel :

  • configuration d'exemple : “Apprentissage par renforcement - évitement d’obstacles”

Les + de cette activité :

  • Introduire l’apprentissage par renforcement
  • Comprendre le principe du “Try and learn” = bénéfices pédagogiques
  • Peut être réalisée avec le simulateur

À téléchargez
Cursus liés
Activité : Bloqué VS Mouvement
Activité : Bloqué VS Mouvement

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène individuelle

Configuration logiciel :

  • configuration d'exemple : “Bloqué VS Mouvement” en mode édition manuelle, puis en mode “apprentissage par renforcement”

Durée : 90 minutes

Age : 15 ans et +

Les + de cette activité :

  • Comprendre l’algorithme Q-learning (un exemple d’algorithme d’apprentissage par renforcement).
  • Pluridisciplinaire (maths/informatique)
  • Peut être réalisée avec le simulateur

Bloqué VS Mouvement

L’objectif de cette activité est de comprendre le fonctionnement de l’algorithme du Q-learning.

Le Q-learning est un algorithme d’apprentissage par renforcement. Le robot va donc apprendre par essais et erreurs, sur la base de récompenses qui sont déterminées par l’utilisateur (comme dans le scénario “Évitement d’obstacles”).

Grâce à cette méthode, nous allons entraîner un robot AlphAI à se déplacer dans une arène sans rester bloqué contre les parois. Cette tâche simple nous permettra de bien comprendre les mécanismes qui interviennent au niveau du réseau de neurones.

Contenu vidéo

Mise en place

Placez le robot dans une petite arène sans obstacle. 

Récompense et édition manuelle

Dans une première partie, on découvre le principe des récompenses, et on utilise le mode “édition manuelle” pour trouver le comportement du robot qui maximise les récompenses reçues.

Apprentissage par renforcement

Dans une seconde partie, on observe l’apprentissage du robot pas à pas et l’évolution des poids des connexions dans le réseau. On découvre l’importance de l’exploration dans l’apprentissage.

Q-learning

Ensuite, il s’agit de découvrir l’algorithme du Q-learning à proprement parler. Il consiste principalement en une formule de mise à jour des poids des connexions après chaque essai du robot. Cette formule fait intervenir deux paramètres dont l’utilité est discutée.

On découvre l’impact de la temporalité sur l’apprentissage : il faut apprendre suffisamment vite sans ‘sauter sur une conclusion’. L’algorithme doit également être capable de prendre en compte les récompenses futures et pas seulement la récompense immédiate : il doit développer une vision à plus long terme.

Deep Q-learning

Le deep Q-learning est une évolution de l’algorithme du Q-learning pour l’appliquer à des réseaux de neurones plus complexes (multi-couches). c’est cet algorithme qui est par exemple utilisé dans le scénario “Évitement d’obstacles”.

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène individuelle

Durée : 90 minutes

Age : 15 ans et +

Configuration logiciel :

  • configuration d'exemple : “Bloqué VS Mouvement” en mode édition manuelle, puis en mode “apprentissage par renforcement”

Les + de cette activité :

  • Comprendre l’algorithme Q-learning (un exemple d’algorithme d’apprentissage par renforcement).
  • Pluridisciplinaire (maths/informatique)
  • Peut être réalisée avec le simulateur

À téléchargez
Cursus liés
Activité : AlphAI télécommandé
Activité : AlphAI télécommandé

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Arène optionnelle pour activités (course de robot)

Configuration logiciel :

  • configuration d'exemple : dépend de la mise en situation du code

Durée : 1 à 2 heures

Age : 14 ans et +

Les + de cette activité :

  • Très bonne introduction à la programmation
  • Peut être réalisée avec le simulateur

AlphAI télécommandé

Dans cette activité de programmation Python, les élèves apprennent à envoyer des commandes au robot en fonction des touches enfoncées au clavier, puis à organiser une course de robots.

Contenu vidéo

Prise en main du robot

Le module alphai.py permet d’envoyer au robot des instructions écrites en python.

Pour que le module fonctionne, le logiciel « AlphAI » doit être lancé. Vous pouvez vous connecter à un robot AlphAI (ou à sa version simulée).

Dans votre éditeur Python favori, créez un nouveau projet à l’emplacement de votre choix et configurez l’environnement Python pour qu’il contienne le module alphai en tapant dans la console IPython ou un terminal :

pip install alphai-api

Cette commande va télécharger et installer le module et ses dépendances.

Ouvrez un nouveau document python ou redémarrez la console, recopiez-y puis exécutez le code suivant :

from alphai import *

motor(30, -30, 5)

Si la première ligne du programme cause une erreur, c’est que la librairie alphai n’a pas été installée correctement. Si la ligne motor(30, -30, 5) cause une erreur, c’est probablement que le logiciel AlphAI n’a pas été démarré.

S’il n’y a pas d’erreur, vous observez le robot (ou le robot simulé dans le logiciel) tourner sur lui-même pendant 5 secondes.

La commande motor(left, right, duration) envoie les valeurs left et right aux moteurs gauche et droit du robot pendant la durée duration, après quoi il s’arrête. Les valeurs left et right doivent être comprises entre -50 et +50. Si la durée n’est pas précisée, alors le robot continue d’avancer jusqu’au prochain appel motor(0,0).

⚠️ Il est possible et parfois utile d’effectuer la connexion dans votre script python plutôt qu’en cliquant « connexion » dans le logiciel, en utilisant les fonctions connect_bluetooth(n) (en remplaçant n par le numéro de votre robot) ou connect_wifi(), ainsi que disconnect() pour se déconnecter.
Le code dans ce cas-là se présente ainsi :

from alphai import *

connect_bluetooth(n)
motor(30, -30, 5)

disconnect()


Vous trouverez à la droite de cette page, dans les annexes à télécharger, la documentation de la bibliothèque alpha-api qui contient l’ensemble des fonctions incluses dans la librairie alphai. Consultez-la dès maintenant pour en prendre connaissance.

Premier script

Vous allez à présent créer un script Python dans votre environnement de programmation favori.

Créez un nouveau fichier Python et recopiez le code suivant :

from alphai import *


if _ _name_ _ == '_ _main_ _':
    connect_bluetooth(n)
    motor(30,30,1)
    disconnect()

Puis exécutez-le : le robot avance pendant une seconde puis s’arrête.

La commande motor(left, right, duration)envoie les valeurs left et right aux moteurs gauche et droit. Ces valeurs doivent être comprises entre -40 et +40. Naturellement, on arrête le robot avec motor(0, 0).

Vous trouverez à la droite de cette page, dans les annexes à télécharger, la documentation de la bibliothèque alpha-api qui contient l’ensemble des fonctions incluses dans la librairie alphai. Consultez-la dès maintenant pour en prendre connaissance.

Programmation d’une séquence

Pour faciliter la suite de votre codage, définissez les cinq fonctions suivantes. Faites des fonctions très simples : chacune doit seulement réaliser un appel à la fonction motor.

forward()

Fait avancer le robot tout droit.

backward()

Fait reculer le robot.

stop()

Arrête le robot.

left()

Fait pivoter à gauche le robot.

right()

Fait pivoter à droite le robot.

Enfin, créez une fonction walk_around() qui fait faire une séquence d’actions au robot en utilisant ces cinq fonctions. Testez-la en l’appelant dans le bloc main.

Programmation du téléguidage

Lecture des touches pressées

À l’aide de la fonction de l’API wait_for_key (voir les explications en dernière page) et d’une boucle while dans la fonction main, imprimez dans la console avec la fonction print les touches pressées sur le clavier. Pour éviter d’écrire une boucle infinie, prévoyez une touche spéciale qui permet de quitter la boucle, par exemple la touche « échap » (« esc » en anglais) :

keys = []

while "esc" not in keys:

    # n’oubliez pas l’indentation

Programmation du téléguidage

Toujours à l’aide de la fonction wait_for_key et d’une boucle while, créez une fonction remote_control()qui réagit aux touches directionnelles de telle sorte que le robot se déplace selon les instructions données au clavier. Pour récupérer la dernière touche enfoncée, sélectionnez le dernier élément dans la liste grâce à l’indice -1. Attention : la liste peut être parfois vide !

Pensez à faire stopper le robot lorsqu’aucune touche n’est pressée. Testez votre code en téléguidant le robot !

Pour aller plus loin

Nous allons pouvoir organiser des courses entre vos robots téléguidés, mais vous aurez aussi intérêt à améliorer votre programme en ajoutant de nouvelles commandes comme proposé ci-dessous… Ces améliorations ne sont que des propositions, n’hésitez pas à créer vos propres améliorations !

Différents virages

Créer deux nouvelles fonctions que vous pourrez utiliser lorsque la fonction wait_for_key renvoie une liste de plusieurs touches :

forward_left()

Fait avancer le robot vers la gauche lorsqu’on appuie simultanément sur les flèches du haut et de gauche. Ainsi on pourra faire faire au robot à la fois des virages serrés avec left() (flèche de gauche seule) et des virages larges avec forward_left() (flèches du haut et de gauche).

forward_right()

De même fait avancer le robot vers la droite lorsqu’on appuie simultanément sur les flèches du haut et de droite.

Freinage et boost

Ajouter des variables d’entrée à toutes vos fonctions pour pouvoir moduler la vitesse du robot, ou la force des virages, en fonction d’autres touchez qui seront pressées.

Par exemple ajoutez une variable d’entrée speed à toutes vos fonctions (par exemple forward(speed)), et appelez les fonctions avec une vitesse plus faible lorsqu’on appuie en même temps sur la barre d’espace (freinage), et plus forte lorsqu’on appuie en même temps sur la touche « x » (« boost »).

Pilotez votre robot et ajustez les paramètres de vitesse pour réussir à rendre le robot le plus maniable et le plus rapide possible. N’oubliez pas de vous exercer également à doubler des concurrents !

Programmation d’une séquence

Sur la touche de votre choix, faire réaliser au robot une petite chorégraphie, par exemple pour célébrer la victoire !

Bilan et retours d'expérience

En programmation, la liste des fonctions accessibles d’un programme s’appelle API, pour Application Programming Interface, Interface de Programmation d’Application. Elle est utilisée par les programmeurs pour savoir comment interagir avec le programme. Vous trouverez l’API du module python alphai en suivant ce lien : https://drive.google.com/file/d/1C4ovPW_eH5KFz5Y9JvSrzLhtmdOpcp6-/view

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Arène optionnelle pour activités (course de robot)

Durée : 1 à 2 heures

Age : 14 ans et +

Configuration logiciel :

  • configuration d'exemple : dépend de la mise en situation du code

Les + de cette activité :

  • Très bonne introduction à la programmation
  • Peut être réalisée avec le simulateur

Activité : Programmation caméra
Activité : Programmation caméra

Age : 15 ans et +

Configuration logiciel :

  • configuration d'exemple : dépend de la mise en situation du code

Durée : 1 à 2 heures

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Arène de course

Les + de cette activité :

  • Peut être réalisée avec le simulateur

Programmation caméra

Programmation Python : prise en main de l'ultrason et de la caméra pour programmer des déplacements autonomes du robot puis organiser une course de robots.

Contenu vidéo

Introduction

Le but de ce TP est de programmer AlphAI pour qu’il se déplace de manière autonome et non plus en mode « télécommandé » par l’élève comme dans le TP « AlphAI télécommandé ». Pour cela il faudra utiliser ses capteurs pour qu’il puisse réagir à son environnement, notamment pour détecter des obstacles. 

Nous allons voir un exemple rapide avec l’ultrason, puis passerons à la caméra pour organiser des courses de robots autonomes dans un circuit.

Navigation avec l’ultrason

Découverte du capteur ultrason

La fonction get_distance() (détails dans l’API en dernière page) renvoie la distance mesurée par l’ultrason du robot (en centimètres). Attention à bien activer le capteur avec la fonction set_distance(True) ou elle ne renverra pas une distance mais la valeur None.

Testez cette fonction avec le vrai robot avec le code suivant :

set_distance(True)  # active le capteur à ultrasons
while True:
    d = get_distance()  # récupère la valeur des ultrasons du robot
    print("distance:", d)

En déplaçant le robot à la main, vérifiez que la distance mesurée diminue lorsque le robot est face à un obstacle. Vous pourrez aussi remarquer que malheureusement si le robot est devant un mur, non pas pile en face de lui, mais en diagonale, ce mur n’est pas détecté (la distance mesurée est beaucoup plus grande car les ultrasons se reflètent sur le mur en diagonale sans revenir directement vers le robot).

Déplacement autonome avec l’ultrason

A l’aide de la fonction get_distance(), définissez puis testez une fonction ultrasound_race() qui fait avancer le robot tant qu’il ne perçoit pas d’obstacle avec son ultrason, et pivote à droite lorsqu’il détecte un obstacle. 

Ne cherchez pas à avoir un comportement parfait (ce serait difficile), dès que vous avez un comportement où le robot sait tourner s’il est face à un mur et aller tout droit s’il n’y a pas de mur, passez à la suite.

Navigation avec la caméra

La caméra apporte une information beaucoup plus riche que le capteur de distance ultrason, et permettra de prendre des décisions plus sophistiquées.

Découverte de l’image caméra

Commençons par afficher l’image de la caméra du robot dans le logiciel. Ouvrez l’onglet de paramètres « Capteurs » à gauche, et choisissez le mode de caméra « image 64x48 »

: l’image de ce que voit le robot apparaît. 

Une image est une grille de pixels ; dans une image couleur comme c’est le cas ici, chaque pixel contient 3 valeurs : les intensités de rouge, vert et bleu dans ce pixel. Pour voir cela de manière plus précise, choisissez à présent le mode de caméra avec la résolution faible « image 8x6 »

, et dans l’onglet « Visualisation » cochez « Caméra : résolution dégradée »

: une image très grossière apparaît, et les valeurs rouge/vert/bleu de chaque pixels sont affichées (valeurs entre 0 et 255). 

Pour régler la résolution d’image dans le code Python plutôt que dans le logiciel, il faut commencer par initialiser la caméra, par exemple set_camera("8x6"). Ensuite on récupère l’image avec get_camera(). Cette fonction renvoie un tableau de dimension 3 sous la forme d’un objet « List ». La seule chose à savoir pour ce TP à propos de cet objet est comment accéder aux valeurs des pixels : Si on appelle image cet objet renvoyé, on accède à la valeur du pixel de la ligne i, colonne j et dans le canal k (k=0 pour rouge, 1 pour vert, 2 pour bleu) avec image[i][j][k].

Copiez et exécutez le code suivant, et vérifiez que les 3 valeurs affichées correspondent bien aux 3 valeurs rouge/vert/bleu dans le logiciel du pixel à la 5ème ligne en partant du haut (indice 4 quand on commence à compter à zéro) et de la 4ème colonne en partant de la gauche (indice 3).

from alphai import *

from time import sleep

set_camera("8x6")  # active la caméra à la bonne resolution

sleep(1)  # attend 1s que le logiciel active la caméra

while True:
    image = get_camera()  # récupère l’image de la caméra

    line = image[4]

    pixel = line[3]
    print('rouge', pixel[0], 'vert', pixel[1], 'bleu', pixel[2])

Premier déplacement autonome avec la caméra

Nous voulons que le robot effectue de manière autonome des tours de circuit. Si vous utilisez une arène fournie avec les robots AlphAI, le sol est blanc, l’enceinte extérieure est rouge, et l’ilôt central est noir. Nous supposerons que c’est le cas, et que vous voulez faire circuler le robot en tournant dans le sens des aiguilles d’une montre. 

Commencez par écrire une fonction camera_race() pour prendre les décisions répétitivement, de la manière suivante (qui se base uniquement sur la couleur d’un seul pixel dans la partie basse de l’image) :

Si image[4][3][0] < 100 (canal rouge sombre 🡪 le pixel est noir), pivoter à gauche à vitesse 25 pendant 0.5 seconde.

Sinon, si image[4][3][1] < 100 (canal rouge lumineux et canal vert sombre 🡪 le pixel est rouge), pivoter à droite à vitesse 25 pendant 0.5 seconde.

Sinon (canaux rouge et vert lumineux 🡪 le pixel est blanc), aller tout droit à vitesse 40 pendant 0.5 seconde.

Testez ce programme sur la piste.

Pour rappel, la structure si, sinon si, sinon est de la forme suivante en Python :

if condition_1:

action_1()

elif condition_2:

action_2()

else:

action_3()

Compter les pixels de différentes couleurs

Vous avez probablement constaté que prendre des décisions à partir d’un seul pixel n’étaient pas toujours le mieux. Par exemple il peut arriver que le pixel de la 5ème ligne / 4ème colonne soit blanc donc le robot décide d’avancer, alors qu’il y a un mur sur le côté et qu’il devrait plutôt tourner.

Pour améliorer le programme, nous allons considérer tous les pixels de l’image de la caméra. Tout d’abord nous allons compter combien de pixels sont noirs, rouges et blancs. Ensuite la décision sera prise ainsi : si la majorité des pixels sont rouge, tourner à droite ; si la majorité des pixels sont sombres, tourner à gauche ; et sinon aller tout droit.

Pour compter le nombre de pixels d’une certaine couleur, réalisez une suite de boucles for pour chaque composante de l’image : les lignes et les colonnes puis comptez pour chaque pixel quelle est sa couleur à l’aide des valeurs de rouge, de vert et de bleu qui la compose. Vous pouvez vous inspirer des seuils précédemment trouvés afin de déterminer la couleur du pixel. Vous pouvez commencer à partir du code suivant ou trouver votre propre façon de faire, il en existe plusieurs ! 

def count_pixel_colors(image: list):

# créer dict ici

nombre_pxl_noir = 0

nombre_pxl_rouge = 0

nombre_pxl_blanc = 0

for i in range(len(image)):

ligne = image[i] 

for j in range(len(ligne)):

pixel = ligne[j]

canal_rouge = pixel[0]

canal_vert = pixel[1]

canal_bleu = pixel[2]

if ...

nombre_pxl_noir +=1

...

else:

...

return {"noir": nombre_pxl_noir, "rouge": nombre_pxl_rouge, "blanc": nombre_pxl_blanc}

Astuce Syntaxe Python pour les boucles for, au lieu d’utiliser des indices i et j pour accéder aux éléments d’un tableau, vous pouvez changer de syntaxe et écrire tout simplement :

for ligne in image:
for pixel in ligne:
rouge = pixel[0]
vert = pixel[1]
bleu = pixel[2]

Course de robots autonomes et poursuite des améliorations

A présent, vous pouvez commencer à organiser des courses entre vos robots. 

Celles-ci seront encore plus pimentées si vous continuez de chercher à améliorer votre programme en modifiant par exemple : les vitesses de déplacement, les seuils des couleurs, des actions supplémentaires (en plus du tournant en pivotant sur place, un virage en avançant vers l’avant), etc.

Bilan et retours d'expérience

En programmation, la liste des fonctions accessibles d’un programme s’appelle API, pour Application Programming Interface, Interface de Programmation d’Application. Elle est utilisée par les programmeurs pour savoir comment interagir avec le programme. Vous trouverez l’API du module python alphai en suivant ce lien : https://drive.google.com/file/d/1C4ovPW_eH5KFz5Y9JvSrzLhtmdOpcp6-/view

TP à télécharger (prof et élève)

Documentation de la bibliothèque alphai-api

Cursus liés

Age : 15 ans et +

Durée : 1 à 2 heures

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Arène de course

Configuration logiciel :

  • configuration d'exemple : dépend de la mise en situation du code

Les + de cette activité :

  • Peut être réalisée avec le simulateur

Algorithme KNN avancé
Algorithme KNN avancé

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Petite arène minimum

Configuration logiciel :

  • configuration d'exemple : dépend de la mise en situation du code

Durée : 2 heures

Age : 16 ans et +

Les + de cette activité :

  • Peut être réalisée avec le simulateur

Algorithme KNN avancé

Activité  ludique pour classe avec plusieurs robots : les élèves entraînent les robots à rouler dans un circuit puis une course est organisée. Les élèves apprennent par la manipulation le principe de l'apprentissage supervisé et l'importance de la qualité des données d'entraînement.

Contenu vidéo

Introduction

Machine learning et apprentissage supervisé

Le Machine Learning est une branche de l’intelligence artificielle qui a pour but de donner la possibilité aux ordinateurs d’apprendre. Un ordinateur n’est pas intelligent, il ne fait qu’exécuter des tâches. On lui décrit sous forme de programmes quoi faire et comment le faire. C’est ce qu’on appelle la programmation.

Le Machine Learning traite des sujets complexes où la programmation traditionnelle trouve ses limites. Construire un programme qui conduit une voiture serait très complexe voire impossible. Cela étant dû aux très nombreux cas possibles à traiter… Le Machine Learning traite cette problématique différemment. Au lieu de décrire quoi faire, le programme apprendra par lui-même comment conduire en “observant” des expérimentations.

Machine Learning : Donner la possibilité à un programme d’apprendre des tâches qui n’ont pas été programmées.

En fonction des données d’expérimentations que prendra l’algorithme d’apprentissage en entrée, il déduira par lui-même une hypothèse de fonctionnement. Il utilisera cette dernière pour de nouveaux cas, et affinera son expérience au fil du temps.

Il existe trois types d‘apprentissages en Machine Learning :

  • Apprentissage Supervisé
  • Apprentissage Non supervisé
  • Apprentissage par Renforcement

L’apprentissage supervisé est le type le plus courant. Il s’agit de fournir aux algorithmes d’apprentissages un jeu de données d’apprentissage (Training Set) sous forme de couples (X, Y) avec X les variables prédictives (ou données d’entrée), et Y le résultat de l’observation (ou décision). En se basant sur le Training Set, l’algorithme va trouver une fonction mathématique qui permet de transformer (au mieux) X vers Y. En d’autres termes l’algorithme va trouver une fonction F tel que Y≈F(X) .

Ainsi, dans une situation X, il saura quelle décision Y doit prendre.

Situation d'étude et training set du robot AlphAI

Il convient désormais de préciser les situations X et les décisions Y attendues. 

Le cas d’étude proposé est le déplacement du robot dans une arène rouge. L’objectif est que le robot se déplace tout seul sans jamais toucher les murs.

Pour cela le robot pourra prendre les décisions suivantes :

  • Tourner à gauche 
  • Aller tout droit 
  • Tourner à droite 

Afin de prendre la décision il faut nécessairement un retour d’information afin de disposer de données (data ou training set).

Cela est donné par les capteurs. Le choix effectué ici est d’utiliser la caméra. De la zone d’image de la caméra il est extrait deux zones qui seront appelées super pixels (voir ci-contre). La quantité de rouge de chaque super-pixel augmente lorsque le robot s’approche des murs en raison du contraste entre la piste blanche et les murs rouges.

Activité 1. Indiquer dans le tableau ci-dessous le résultat attendu comme décision en fonction de ce qui est repéré dans les superpixels.

Les cas simplifiés ci-dessus, ne se produisent que très rarement. Pour pouvoir prendre la décision dans tous les cas possibles, il faut obtenir la valeur numérique du niveau de rouge. 

L’image issue de la caméra est de taille 48*64 pixels. La position et la géométrie des super-pixels est définie par la figure suivante :

Activité 2. Ouvrir le fichier get_values.py. Indiquer le chemin d’accès de l’image forward_0.jpg et exécuter le code ci-dessous permettant d’afficher l’image dans python.

from PIL import Image

import numpy as np

import matplotlib.pyplot as plt

def read_image(name):

    return np.array(Image.open(name, "r"))

img1=read_image("forward_0.jpg") #indiquer le chemin d'accès de l'image

plt.imshow(img1)

plt.show()

Vous devez obtenir une image de la forme ci-dessous d’une taille de 48 pixels par 64 pixels, codée avec les trois couleurs RVB (Rouge Vert Bleu).

« img1 » est un tableau de pixels de taille 48*64*3

Dans le tableau de pixel on retrouve les 3 niveaux de couleurs Rouge Vert Bleu codés entre 0 et 255.

A partir de cette image, il va falloir extraire les deux super-pixels définis précédemment et déterminer une méthode permettant d’obtenir le niveau de rouge pour chacun.

Nous allons comparer différentes techniques pour obtenir le meilleur contraste entre le rouge et le blanc de chaque super-pixel :

  • le niveau de gris moyen de chaque super-pixel
  • le niveau de rouge moyen de chaque super-pixel
  • le niveau de vert moyen de chaque super-pixel

Dans un premier temps, l’image est transformée en niveau de gris à l’aide de la fonction rgb2gray de la façon suivante :

def rgb2gray(rgb):

    return np.dot(rgb[...,:3], [0.299, 0.587, 0.144])

img2=rgb2gray(img1)

plt.imshow(img2, cmap="gray")

plt.show()

« img2 » correspond à l’image en niveau de gris. Ainsi il n’y a qu’une seule valeur numérique entre 0 et 255 pour chaque pixel. 0 correspond à un pixel blanc et 255 un pixel noir. Les super pixels étant dans la zone « basse » de l’image

Activité 3. Ecrire une fonction moyenne(img,x,y,height,width)   qui va prendre en argument un tableau de pixels « img » à un niveau de couleur, les coordonnées « x » et « y » du pixel en haut à gauche d’un super-pixel, la hauteur « height » et la largeur « width » d’un super-pixel et qui renvoie la moyenne du niveau de couleur du super-pixel. 

Il est ainsi possible de récupérer deux valeurs avec les deux super-pixels définis précédemment à l’aide du code :

def get_two_values(img, x1=10, y1=28, x2=42, y2=28, height=16, width=13):

    value1 = moyenne(img, x1, y1, height, width)

    value2 = moyenne(img, x2, y2, height, width)

    return np.array((value1, value2))

Le niveau de couleur du super-pixel gauche est noté value1, le niveau de couleur du super-pixel droit est noté value2. Il est ainsi possible de définir un point de coordonnées (value1, value2)

Activité 4. Executer le code pour récupérer les valeurs value1 et value2 de l’image en niveau de gris obtenue précédemment.

Le choix effectué dans le logiciel AlphAI est d’utiliser la fonction de python mean qui va calculer la valeur moyenne du tableau.

Activité 5. Appliquer la méthode du logiciel AlphAI et celle avec le niveau de gris et compléter avec les valeurs value1 et value2 dans les deux cas.

Fonction mean

Niveau Gris

Forward_0

Forwad_1

Left_0

Left_1

Right_0

Right_1

Right_2

Test_0

Test_1

Activité 6. Placer les points sur le graphique et identifier les zones correspondant aux différentes décisions (tourner à gauche, aller tout droit, tourner à droite). Conclure sur la méthode qui vous semble la plus appropriée pour distinguer les différentes décisions.

Intensité super-pixel droit

Intensité  super-pixel gauche

À ce stade, il serait possible de piloter le robot à partir d’actions conditionnelles portant sur ces valeurs de super-pixels. L’approche va être différente dans la suite. Nous allons utiliser une méthode portant le nom d’algorithme des K plus proches voisins.

L’algorithme des k plus proches voisins, KNN

Nous allons étudier de près un algorithme très connu parmi les algorithmes de machine learning : l’algorithme des K plus proches voisins, ou KNN en anglais pour « K Nearest Neighbours ». Cet algorithme a l’avantage d’être très simple, et donc de fournir une bonne base pour comprendre l’apprentissage supervisé.

L'idée est d'utiliser un grand nombre de données afin "d'apprendre à la machine" à résoudre un certain type de problèmes. L’algorithme est particulièrement intuitif quand les données se présentent comme des points dans un espace de dimension 2, qui pourront donc être affichés à l’écran. Nous allons donc choisir une configuration avec seulement 2 entrées capteurs, à savoir 2 « super-pixels » de la caméra afin de permettre au robot de repérer les murs et de circuler dans l’arène sans blocage. Dans un premier temps ce sera à nous d’indiquer au robot l’action associée pour chaque nouvelle donnée (2 « super-pixels »), mais ensuite il sera capable de circuler par lui-même en choisissant l’action majoritaire prise par les K plus proches voisins parmi les données entrées pendant la phase d’entraînement.

Cet algorithme d’apprentissage supervisé permet de classifier des données en fonction de leur proximité avec celles existantes constituant les données d’entraînement. Les nouvelles données considèrent k voisins, les k plus proches, pour choisir quelle classification appliquer. Avec des données discrètes, comme des points dans un plan ou dans l’espace, les plus proches voisins sont sélectionnés en utilisant la distance euclidienne, mais d’autres méthodes peuvent être utilisées dans d’autres situations, comme la distance Manhattan si les données se placent sur un quadrillage ou un échiquier. L’intérêt de cet algorithme réside dans le choix de k : trop petit et l’algorithme devient trop sensible aux erreurs ou aux données manquantes, trop grand et il considère des données qui ne devraient pas être considérées.

On peut schématiser le fonctionnement de k-NN en l’écrivant en pseudo-code suivant :

Début Algorithme

Données en entrée :

  • un jeu de données D, correspondant au training set élaboré
  • une fonction de calcul de distance entre les deux points considérés de coordonnées [x1,y1] et [x2,y2]. d=x2-x12+y2-y12
  • Un nombre entier k, représentant le nombre de voisins à prendre en compte

Pour une nouvelle observation X dont on veut prédire sa décision Y Faire :

  1. Calculer toutes les distances de cette observation X avec les autres observations du jeu de données D
  2. Retenir les K observations du jeu de données D les plus proches de X en utilisation la fonction de calcul de distance d
  3. Prendre les valeurs de Y des k observations retenues. Effectuer une régression et calculer la moyenne (ou la médiane) de Y retenues 
  4. Retourner la valeur calculée dans l’étape 3 comme étant la valeur qui a été prédite par K-NN pour l’observation X.

Fin Algorithme

Il faut donc pouvoir calculer la distance entre deux points. Dans un graphique en deux dimensions comme c’est le cas dans notre exemple, cela correspond simplement à la norme du vecteur entre les deux points.

Activité 1. Ecrire la fonction distance(point1, point2)   qui prend en argument deux points (point1=[x1,y1], point2=[x2,y2])  et qui renvoie la distance entre ces deux points.

Activité 2. Compléter le tableau ci-après en déterminant la distance entre les super-pixels des images précédentes (forward_0.jpg, forward_1.jpg,…) et des deux images tests (test_0.jpg et test_1.jpg).

Activité 3. Appliquer les étapes 3 et 4 de l’algorithme K-NN en en prenant K=1,2,3 et 4 et en déduire la décision qui doit être prise (aller tout droit, tourner à gauche, tourner à droite).

Entrainement du robot

Phase de préparation de l’environnement de travail

  • Dans le menu Paramètres - > Charger des configurations d'exemples, sélectionner la configuration exemple « apprentissage supervisé - KNN Caméra». 
Une image contenant texte, horlogeDescription générée automatiquement

Attention : Pour ce scénario, afin d’obtenir le meilleur contraste possible, mettez une surface blanche au sol, et Assurez-vous d’avoir un éclairage uniforme sur la surface de l’arène.

Phase d’entraînement

Activité 1. Suivre le protocole afin de réaliser la phase d'entraînement

Vous êtes maintenant connecté au robot, et votre écran doit ressembler à l’image ci-dessous. Le niveau de sa batterie doit s’afficher en bas à droite (vérifiez que le robot est bien chargé).

  • Tant que le robot a de la place pour avancer, appuyez sur aller tout droit. 
  • Si le robot s’approche d’un mur, appuyez sur virage sur place à gauche ou à droite. 

À chaque instruction envoyée au robot, un nouveau point est ajouté au graphique. L’abscisse de ce point correspond à la valeur du super-pixel de gauche et son ordonnée correspond à la valeur du super-pixel de droite. La couleur de chaque point correspond à l’action choisie : jaune pour aller tout droit, vert pour tourner à droite et rouge pour tourner à gauche. Ces points sont les données d’entraînement. Cette phase d’entraînement est primordiale pour que l’IA puisse apprendre correctement. Si les données d’entraînement contiennent trop d’erreurs ou d’approximations, le comportement de l’IA risque de ne pas être satisfaisant. 

Notez bien :

Les pixels deviennent plus sombres lorsque le robot s’approche des murs. Normalement si le pixel de gauche est le plus sombre, il faut tourner à droite, et si le pixel de droite est le plus sombre, il faut tourner à gauche. Après avoir ajouté quelques points sur le graphique, vous pouvez activer la couleur d’arrière-plan dans l’onglet des paramètres de visualisation. Cette option colore chaque pixel du graphique de la couleur du point de donnée le plus proche.

Lorsque vous aurez trois régions bien claires sur le graphique, arrêtez la phase d’entraînement et réactivez l’autonomie pour passer à la phase de test.  Ne pas hésiter à bouger le robot à la main, lorsqu’une zone du graphique contient trop peu de points.

Tests

Si le robot est bien entraîné, il saura éviter les bords par lui-même. Si au contraire il est mal entraîné ou la luminosité dans l’arène n’est pas homogène, cela va produire du bruit dans les régions créées et le robot fera plus d’actions inappropriées.

Notez bien :

Afin d’obtenir le meilleur comportement du robot, il faut tester plusieurs valeurs de k. Pour changer cette valeur, allez dans l’onglet « IA » et changer la valeur du paramètre « nombre de voisins ».

Une bonne valeur de k réduit l’effet du bruit et permet au robot de mieux gérer les régions inexplorées.

Une fois que le robot est bien entraîné et que les tests se déroulent bien, vous pouvez passer aux activités.

Activité 1. Comparez le comportement du robot avec k=1, k=3, k=10 et k=30. Ensuite, d’après ce que vous constatez, essayer de déterminer la valeur de k qui minimise l’effet des erreurs et donne le meilleur comportement du robot, c’est-à-dire la plus grande distance parcourue sans heurter un mur. La bonne valeur va dépendre du nombre de points de données, et du nombre d’erreurs dans ces données.

Activité 2. Maintenant que vous avez bien compris l’algorithme, essayez d’entrainer le robot avec le minimum de données possibles qui lui permettent de tourner sans taper contre les murs. 

Commencez par faire une version théorique en dessinant les zones que vous voudriez obtenir sur votre graphique. Quels points sont à placer pour la réaliser ? Testez ces points avec le robot après les avoir rentrés dans le logiciel. Votre modèle théorique a-t-il été applicable à la réalité, ou avez-vous dû y faire des modifications ? Quelles sont les limitations de cette méthode pour un robot tel que celui-là ?

Astuce : Vous pouvez déplacer le robot à la main pour choisir les points que vous voulez lui apprendre.

Remarque : Nous avons réussi à apprendre au robot à circuler dans l’arène sans taper les murs avec 3 points seulement.

Pour aller plus loin :

Activité 3. S’il vous reste du temps et que vous voulez expérimenter, changez d’algorithme et regardez quelles différences le robot a dans son comportement par rapport à KNN. Quel autre algorithme proposé à un apprentissage plus rapide ? Et quel autre algorithme permettrait, selon vous, l’apprentissage de tâches plus complexes, comme taper dans un ballon vert ou reconnaître des ordres communiqués avec des signes de la main ?

Programmer l’algorithme des K plus proches voisins

1. Stoppez le robot et réactivez le bouton « Autonome ».

Une image contenant texte  Description générée automatiquement

2. Dans l’onglet IA, sélectionnez  Algorithme : code élève , cela ouvrira une nouvelle fenêtre vous demandant de nommer le fichier. 

3. Après lui avoir donné un nom, le fichier apparaît dans l’explorateur Windows : ouvrez-le dans votre éditeur de code préféré (Spyder, par exemple).

Ce code présente 3 fonctions déjà existantes : init, learn et take_decision. Ces fonctions seront appelées par le logiciel principal. Seule la fonction take_decision est importante pour ce TP.

4. Remarquez que quand vous vous déconnectez, un mini-robot simulé apparaît en bas à droite. Si vous le voulez, vous pouvez faire les questions ci-dessous avec ce mini-robot et revenir au vrai robot à la fin du TP ; mais vous pouvez aussi faire tout le TP en restant connecté au vrai robot : comme vous préférez !

PROGRAMMER LE ROBOT DIRECTEMENT

Avant de programmer une intelligence artificielle, commençons par comprendre le principe de la fonction take_decision. Vous allez pouvoir modifier cette fonction pour changer le comportement du robot : après chaque modification, sauvegardez votre code et cliquez sur le bouton « Réinitialiser l’IA ». Cette étape est à répéter pour chaque modification du code : sauver puis recharger le code.

La fonction a le prototype suivant :

take_decisionsensors:listint

L’entrée sensors est l’état des capteurs du robot, c’est-à-dire dans notre cas une liste de deux valeurs sensors[0] et sensors[1] qui sont l’intensité de ce que voit le robot à sa gauche et à sa droite. Sa sortie est le numéro de l’action choisie.

  1. Ajoutez l’instruction print(sensors) à l’intérieur de la fonction. Sauvegardez, cliquez « Réinitialiser l’IA » dans le logiciel, et démarrez le robot. La valeur de sensors s’affiche maintenant dans la console (cliquer dans la barre des tâches sur l’icône pour afficher la console). Quelle est à peu près la valeur de sensors quand le robot est face à un mur ? quand il n’est pas face à un mur ? quand il y a un mur à sa gauche ou à sa droite ?

  1. Pour l’instant la fonction renvoie 0. Quelle valeur faut-il renvoyer pour que le robot aille tout droit ? (Faites l’essai)

  1. Utilisez la variable x pour programmer un comportement cohérent du robot : « s’il n’y a pas de mur, je vais tout droit ; s’il y a un mur, je me tourne. »

PROGRAMMATION DE L’ALGORITHME

Calcul de distance

Si vous ne l’avez pas déjà fait lors de l’activité précédente, programmez une nouvelle fonction distance qui prend comme arguments deux points a et b qui sont deux tableaux de deux éléments chacun contenant leurs coordonnées et qui renvoie la distance euclidienne de ces deux points. Le prototype de la fonction est le suivant :

distancea:list, b:listfloat

Avec a=x1, y1 et b=x2, y2

Pour rappel, la distance euclidienne entre ces deux points est : d=x2-x12+y2-y12.

La racine carrée peut être utilisée en Python en important la bibliothèque math (ou numpy) en haut du fichier :

import math

et s’écrit ainsi :

y = math.sqrt(x)

L’opérateur carré peut être fait de la façon suivante :

y = x**2

  1. Programmez la nouvelle fonction distance. Puis pour la tester, écrivez en bas du fichier :

# compute distance

a = [0, 0]
b = [1, 2]
print("distance", distance(a, b))

Sauvez, chargez le code avec « Réinitialiser l’IA » et notez ci-dessous le résultat qui s’affiche dans la console :

Calcul de toutes les distances

Maintenant que vous avez une méthode pour calculer une distance, écrivez une nouvelle fonction all_distances qui calcule toutes les distances d’un point par rapport à la variable train_sensors qui sont les données d’entrée d’entrainement. Cette fonction prendra comme argument un nouveau point x qui est une liste de deux éléments comme précédemment, et renverra un tableau contenant toutes ces distances. Son prototype est :

all_distances(a:list[float], train_sensors:list[list[float]])→list[float]

Avec a=x0, y0 et train_sensors=x1, y1, x2, y2, …, xn, yn Le tableau train_sensors étant de longueur n.

  1. Programmez all_distances, puis testez avec le code suivant en bas du fichier :

# compute all distances

a = [0.4, 0.6]

train_sensors = [[0, 0], [0, 1], [1, 0]]

distance_list = all_distances(a, train_sensors)

print('distances to data', distance_list)

Rechargez le code et recopiez votre résultat :

Trouver le plus petit element d’un tableau

Créez une fonction s’appelant find_minimum prenant comme unique argument un tableau et renvoyant l’indice du premier plus petit élément. Son prototype est :

find_minimum(dlist:listfloat)→int

  1. Programmez et testez find_minimum avec le code suivant :

# minimum in a list

idx_min = find_minimum(distance_list)

print('index of minimum', idx_min)

Notez le résultat :

Le plus proche voisin

Maintenant que nous avons toutes les fonctions nécessaires, nous allons pouvoir créer la fonction nearest_neighbor_decision qui prend comme argument les données d’entrainement et l’entrée de la caméra actuelle, et qui renvoie la commande à envoyer au robot. Son prototype est :

nearest_neighbor_decision(train_sensors:list[listfloat],train_decisions:list[int],a:list[float])→int

Comme précédemment, a=x0, y0 et  train_sensors=x1, y1, x2, y2, …, xn, yn et train_decisions = d1,…,dn où chaque di est la décision prise pour le point xi, yi dans le tableau train_sensors

Pour réaliser la fonction, calculez les distances, trouvez la plus courte et renvoyez la commande associée en utilisant train_decisions.

  1. Programmez et testez nearest_neighbors_decision avec le code suivant :

# KNN

a = [0.4, 0.6]

train_sensors = [[0, 0], [0, 1], [1, 0]]

train_decisions = [1, 2, 0]

decision = nearest_neighbor_decision(train_sensors, train_decisions, a)

print('KNN', decision)

Recopiez le résultat :

UTILISATION DE VOTRE ALGORITHME AVEC LE ROBOT 

Félicitations, vous avez programmé vous-mêmes l’algorithme des K plus proches voisins dans le cas K=1. Il ne vous reste plus qu’à l’utiliser dans le programme pour entraîner le robot.

Pour cela, recopiez les lignes ci-dessous pour programmer la fonction take_decision pour prendre les bonnes décisions, mais également learn pour se rappeler des données d’entraînement train_sensors et train_decisions qui seront créées au fur et à mesure dans le programme principal :

train_sensors = train_decisions = None

def learn(X_train, y_train):
    global train_sensors, train_decisions
    train_sensors, train_decisions = X_train, y_train
    loss = 0
    return loss

def take_decision(sensors):
    if train_sensors is None:
        return 0
    return nearest_neigbor_decision(train_sensors, train_decisions, sensors)

 Et à présent, vous pouvez entraîner votre robot !

  1. Rechargez votre code
Une image contenant texte  Description générée automatiquement
  1. Désactivez l’autonomie du robot en cliquant sur l’icône
Une image contenant texte  Description générée automatiquement
Une image contenant texte  Description générée automatiquement
  1. ,
  2. Dirigez le robot en cliquant sur les flèches à droite de l’écran. Tournez quand le robot est proche des murs et allez tout droit sinon. 

Les tableaux train_sensors et train_decisions sont remplis automatiquement par le logiciel à chaque fois que vous cliquez une flèche.

  1. Après un court apprentissage, réactivez l’autonomie
Une image contenant texte  Description générée automatiquement
Une image contenant texte  Description générée automatiquement
  1. Le robot navigue seul dans l’arène. Évite-t-il les murs par lui-même ?

Pour aller plus loin

K plus proches voisins

L’algorithme que vous avez écrit utilise le plus proche voisin pour prendre sa décision. Modifiez votre code pour qu’il prenne en compte la majorité des décisions prises entre un nombre k>1, k∈N. La difficulté réside dans la modification de la fonction trouvant le minimum. Il faut maintenant qu’elle en trouve k et non juste 1.

InTroduction aux réseaux de neurones

Chargez les configurations d'exemple « Apprentissage supervisé, navigation avec caméra » et relancez un apprentissage. Quelles différences existe-il entre les deux algorithmes ? 

Bilan et retours d'expérience

En programmation, la liste des fonctions accessibles d’un programme s’appelle API, pour Application Programming Interface, Interface de Programmation d’Application. Elle est utilisée par les programmeurs pour savoir comment interagir avec le programme. Vous trouverez l’API du module python alphai en suivant ce lien : https://drive.google.com/file/d/1C4ovPW_eH5KFz5Y9JvSrzLhtmdOpcp6-/view

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Petite arène minimum

Durée : 2 heures

Age : 16 ans et +

Configuration logiciel :

  • configuration d'exemple : dépend de la mise en situation du code

Les + de cette activité :

  • Peut être réalisée avec le simulateur

À téléchargez
Cursus liés
Activité : Q-learning ou programmation avec Pytorch
Activité : Q-learning ou programmation avec Pytorch

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Petite arène minimum

Configuration logiciel :

  • configuration d'exemple : édition manuelle: “bloqué vs mouvement”

Durée : 2 à 3 heures

Age : 15 ans et +

Les + de cette activité : 

  • Peut être réalisée (en partie) avec le simulateur.

Q-learning ou programmation avec Pytorch

Programmation de la fonction de récompense que reçoit le robot pour réaliser un apprentissage original : suivre une ligne avec la caméra, … ou autre chose !

Contenu vidéo

Introduction

Découverte du logiciel AlphAI

Le logiciel AlphAI permet de (re)découvrir de manière visuelle le Machine Learning en général, et les algorithmes d’apprentissage supervisé et par renforcement en particulier : réseaux de neurones, KNN, Q-learning, DQN, etc.

  • Lancez le logiciel en cliquant sur l’icône « AlphAI » sur le Bureau ou depuis le menu démarrer.

Si le logiciel demande quel robot choisir, choisissez « AlphAI ». Ensuite, nous allons commencer par utiliser le robot simulé. Cliquez sur le bouton « Simulation ».

PRINCIPE DE L’APPRENTISSAGE SUPERVISÉ DANS LE LOGICIEL

Voici les éléments principaux du logiciel :

  • Appuyez sur
Une image contenant texteDescription générée automatiquement
  • , vous voyez le réseau prendre une décision, liée à l’initialisation aléatoire des connexions dans le réseau
  • Appuyez sur
Une image contenant texteDescription générée automatiquement
  • , les connexions ont été réinitialisées et les décisions ne sont plus les mêmes
  • Mettez vous en mode avancé puis dans l’onglet Visualisation activez l’affichage de la valeur des connexions pour voir le détail des calculs effectués par le réseau de neurones

Une image contenant texteDescription générée automatiquement

A présent nous allons entraîner le réseau de neurones en construisant et lui donnant au fur et à mesure un jeu de données de 2 données :

  • Quand le robot n’est pas bloqué (roues vertes)
  • , appuyez sur la flèche « tout droit »
  • (vous pouvez aussi utiliser la flèche du haut du clavier). 
  • Et quand il est bloqué (roues rouges)
  • , appuyez sur une flèche « arrière »
  • (ou flèche arrière du clavier).
  • Désormais vous avez créer deux données
  • qui ont permis à l’algorithme d’apprentissage de modifier les connexions à l’intérieur du réseau de neurones, de telle sorte que désormais quand on le passe en mode autonome, il choisit d’aller tout droit quand le robot n’est pas bloqué, et de se retourner sinon.

Continuez d’explorer le logiciel :

  • Dans l’onglet capteur changez les entrées du réseau de neurones
  • Dans l’onglet action changez les actions possibles
  • (Ignorez pour l’instant l’onglet Récompense, qui ne s’applique que pour l’Apprentissage par Renforcement)
  • Dans l’onglet IA, changez les couches de neurones intermédiaires. Vérifiez que l’IA n’apprend pas quand on met la vitesse d’apprentissage à zéro, et que l’apprentissage diverge lorsqu’on la met à une valeur trop grande.
  • Dans l’onglet Visualisation testez les paramètres d’affichage de la rubrique « Réseau de neurones ». Remarquez comment
Une image contenant texteDescription générée automatiquement
  • va permettre de visualiser les connexions qui augmentent ou diminuent pendant l’apprentissage.

APPRENTISSAGE D’UN CIRCUIT

Activez un mode de caméra, choisissez les actions que vous voulez, essayez de régler les paramètres de l’IA comme il faut, et faites apprendre au robot simulé à faire des tours de piste !

Notez encore que vous pouvez modifier la vitesse du robot en bas

.

 

CONNEXION AU VRAI ROBOT

Une fois que vous pensez avoir correctement réglé tous les paramètres vous allez pouvoir connecter le vrai robot !

  • Déconnectez-vous du robot simulé (
  • en bas à droite)
Une image contenant intérieur, rougeDescription générée automatiquement
  • Montez une arène de course.
  • Allumez le robot (l’interrupteur se trouve en dessous). Il effectue un petit mouvement puis clignote en blanc une fois qu’il est prêt à recevoir une connexion. 
  • Notez le numéro du robot inscrit sur sa plaque du dessous.
  • Choisissez si vous voulez vous connecter en Wi-Fi ou en Bluetooth (le Wi-Fi sera nécessaire la première fois pour mettre à jour les robots avec la version la plus récentes du logiciel ; mais le Bluetooth ensuite pourra être préférable pour une connexion plus stable).

Connexion Wi-Fi

  • Connectez l’ordinateur au Wi-Fi du robot : cherchez le réseau Wi-Fi qui commence par ALPHAI et se termine par le numéro de votre robot ; le mot de passe est identique au nom du wifi
  • Cliquez sur l’icône du robot qui apparaît dans le logiciel, avec un petit logo wifi.

Connexion Bluetooth

  • Allez dans les paramètres Bluetooth de Windows et appairez votre robot (« ajouter un nouvel appareil »).
  • Cliquez sur l’icône du robot qui apparaît dans le logiciel, avec un petit logo Bluetooth.

COURSE DE ROBOT

Vous pouvez à présent entraîner votre robot à faire des tours de circuit et organiser une course contre un ou deux collègues dans l’arène !

DETAIL DU RESEAU DE NEURONES : DETECTION D’INTRUS

Dans le menu Paramètres > Charger des configurations d'exemples, chargez la configuration de démonstration 

Une image contenant tableau blancDescription générée automatiquement

Vous voyez un tout petit réseau de neurones. Essayez de lui faire apprendre à faire sonner l’alarme du robot lorsqu’il est à 30cm d’un objet, mais à arrêter l’alarme si l’objet et à moins de 25cm, ou à plus de 35cm :

Vous allez constater que c’est impossible avec le réseau initial qui est trop simple. Vous allez devoir ajouter un biais aux neurones, et au moins une couche de 2 neurones intermédiaires.

Programmation du réseau de neurones

Travaillez au début avec le robot simulé, ce sera plus simple, vous pourrez revenir aux vrais robots à la fin. Éteignez le robot pour économiser ses batteries.

Dans l’onglet IA, choisissez algorithme : « code élève », puis répondez « Nouveau » à la question qui vous est posée et choisissez le nom du fichier où sauver votre code.

Vous allez éditer le code de 3 fonctions « init », « learn » et « take_decision » pour coder votre propre réseau de neurones.

Compréhension des 3 fonctions

  1. Ajouter des print dans chacune des 3 fonctions et constatez que 
  • init est appelée lorsqu’on appuie sur « Réinitialiser l’IA »
  • learn est appelée le plus souvent possible (mais seulement si le bouton « Apprentissage » est activé et qu’il y a des données d’apprentissage dans la mémoire d’expérience)
  • take_decision est appelée à chaque fois que le programme veut connaître une décision (il est appelé en fait 2 fois par étape : 1 fois pour l’affichage des valeurs à l’écran, 1 fois pour faire prendre la décision au robot
  1. Modifiez la valeur renvoyée par la fonction take_decision : elle détermine l’action que choisit le robot en mode autonome

Coder un premier réseau « en-dehors » du logiciel

Voici un code qui construit un réseau de neurones avec 1 entrée, 2 sorties (correspondant à 2 catégories), et une couche intermédiaire de 100 neurones.

Il l’entraîne sur un jeu de 3 données (x=-2 🡪 catégorie 1), (x=0 🡪 catégorie 0), (x=2 🡪 catégorie 1) et vérifie que l’erreur est faible au terme de l’apprentissage.

    import torch as th

    from torch import nn

    import numpy as np

    ninput = 1

    noutput = 2

    # Example data set

    data = [[-2], [0], [2]]

    classes = [1, 0, 1]

    data = th.Tensor(data)

    classes = th.LongTensor(classes)

    # Init neural network

    network = nn.Sequential(

            nn.Linear(ninput, 100),

            nn.LeakyReLU(),

            nn.Linear(100, noutput),

    )    

    print("first layer: weights = ", network[0].weight)

    print("first layer: bias = ", network[0].bias)

    # Test network output before learning

    sensors = th.Tensor([[0], [1], [2]])

    output = network(sensors)

    print(output)

    # Init loss function

    lossfn = nn.CrossEntropyLoss()

    pred = network(data)

    print("loss:", lossfn(pred, classes))

    # Init optimizer

    optimizer = th.optim.SGD(network.parameters(), lr=1e-1)

    # Learning

    nrepeat = 2000

    for i in range(nrepeat):

        optimizer.zero_grad()

        pred = network(data)

        loss = lossfn(pred, classes)

        print("loss:", lossfn(pred, classes))

        loss.backward()  # this computes the gradient, i.e. the derivatives

        optimizer.step()

    # Test network output after learning

    pred = network(data)

    print("loss after", nrepeat, "learning steps:", lossfn(pred, classes))

    print("first layer: weights = ", network[0].weight)

    print("first layer: bias = ", network[0].bias)

  1. Recopiez le code suivant à la fin du fichier Python et testez-le en appuyant sur le bouton « Réinitialiser l’IA » (vous pouvez voir les affichages des print dans la console).
  2. Maintenant vous allez remplir les 3 fonctions init, learn et take_decision :

En haut du fichier définissez les variables suivantes qui seront accessibles dans les différentes fonctions

network = lossfn = optimizer = None

A l’intérieur de chacune des 3 fonctions rendez ces variables accessibles avec la ligne :

global network, lossfn, optimizer

Déplacez la partie « initialisation du réseau » dans la fonction init

Déplacez la partie « apprentissage » dans la fonction learn (mais supprimez la boucle for : ne mettez qu’une seule étape de l’apprentissage, sachant que la fonction sera appelée un grand nombre de fois)

Ecrivez la fonction take_decision, qui doit renvoyer le numéro de catégorie correspondant à l’entrée « sensors », c’est-à-dire 0 ou 1

  1. Testez votre programme dans le logiciel, avec le robot simulé, puis avec le vrai robot !

Bilan et retours d'expérience

Nous espérons que cette séance vous a aidé à redécouvrir les réseaux de neurones de manière concrète !!

En programmation, la liste des fonctions accessibles d’un programme s’appelle API, pour Application Programming Interface, Interface de Programmation d’Application. Elle est utilisée par les programmeurs pour savoir comment interagir avec le programme. Vous trouverez l’API du module python alphai en suivant ce lien : https://drive.google.com/file/d/1C4ovPW_eH5KFz5Y9JvSrzLhtmdOpcp6-/view

Matériel nécessaire :

  • 1 robot minimum ou simulation dans le logiciel
  • 1 ordinateur/robot
  • Petite arène minimum

Durée : 2 à 3 heures

Age : 15 ans et +

Configuration logiciel :

  • configuration d'exemple : édition manuelle: “bloqué vs mouvement”

Les + de cette activité : 

  • Peut être réalisée (en partie) avec le simulateur.

Activité : Introduction à l’IA - 4 niveaux d’autonomie
Activité : Introduction à l’IA - 4 niveaux d’autonomie

Durée : 40 à 60 minutes

Age : 8 ans et +

Introduction à l’IA - 4 niveaux d’autonomie

Contenu vidéo

Introduction

Durée : 40 à 60 minutes

Age : 8 ans et +

Activité : Éthique de l’IA
Activité : Éthique de l’IA

Éthique de l’IA

Contenu vidéo

Introduction

‍lien vers FAQ + intégration questions spécifiques liées à la page

Feedback (Was this page helpful ? Yes/No → si "No" alors pop-up)

Navigation (page suivante / précédente)

TP à télécharger (prof et élève)

Cursus liés

Proposez une activité !
Proposez une activité !

Proposez une activité !


Le logiciel AlphAI vous permet de complètement créer des configurations personnalisées selon vos envies et objectifs.

Choisissez un niveau d’autonomie, un algorithme, les capteurs et les actions que vous souhaitez utiliser, … et inventez votre propre activité !
Vous pouvez également partir d'une configuration d'exemple puis la personnaliser.

Une fois que vous êtes satisfait de la configuration choisie, vous pouvez les enregistrer sur votre ordinateur afin de la réutiliser plus tard !

Pour tout comprendre à la configuration du logiciel, suivez ce lien :
lien vers Page ressources - logiciel > Présentation du logiciel > Panneau fenêtre

Vous avez inventé une activité intéressante, ludique et pédagogique ?

Nous aimerions beaucoup l’essayer, et pourquoi pas la proposer à tous les utilisateurs du logiciel !

Merci de remplir le formulaire ci-dessous pour nous fournir les informations liés à l’activité que vous avez inventé : 


Formulaire de proposition d’activité : 

  • Votre nom et prénom : 
  • Votre fonction :

  • Titre de l’activité : 
  • Objectif de l’activité : 
  • Age minimum requis pour participer : 
  • Temps nécessaire estimé :

  • Taille et disposition d’arène : 
  • Type de robot utilisé : 
  • Nombre de robots utilisés :

  • Description du déroulement de l’activité : 
  • Fichier de paramètres : 

Upload file (.json)

À téléchargez
Cursus liés
Propositions de cursus
Propositions de cursus

Propositions de cursus

Élémentaire

Cursus “découvrir l’IA”

Objectifs : Se familiariser avec l’IA et les apprentissages
Temps nécessaire : environ 4h

Activités :

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (apprentissage supervisé uniquement)
  3. Robot suiveur
  4. Apprentissage par renforcement - Évitement d’obstacles

Collège

Cursus “introduction complète à l’IA”

Objectifs : Comprendre le fonctionnement de base de l’IA et des apprentissages
Temps nécessaire : environ 6h

Activités :

  1. Introduction à l’IA
  2. Course de robots - introduction à l’apprentissage supervisé
  3. Suivi de ligne (édition manuelle + apprentissage supervisé)
  4. Robot suiveur
  5. Apprentissage par renforcement - Évitement d’obstacles
  6. Éthique de l’IA

Cursus “introduction rapide à l’IA”

Objectifs : Comprendre le fonctionnement de base de l’IA et des apprentissages
Temps nécessaire : environ 3h

Activités :

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (édition manuelle + apprentissage supervisé)
  3. Robot suiveur
  4. Apprentissage par renforcement - Évitement d’obstacles

Lycée

Cursus “introduction à l’IA”

Objectifs : Comprendre le fonctionnement de base de l’IA et des apprentissages
Temps nécessaire : environ 5h

Activités :

  1. Introduction à l’IA
  2. Course de robots - introduction à l’apprentissage supervisé
  3. Suivi de ligne (édition manuelle + apprentissage supervisé)
  4. Apprentissage par renforcement - Évitement d’obstacles
  5. Éthique de l’IA

Cursus “IA & Mathématiques”

Objectifs : Comprendre le fonctionnement de l’IA et des apprentissages, et que tout est régit par des maths !
Temps nécessaire : environ 8h

Activités :

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (édition manuelle + apprentissage supervisé)
  3. Algorithme KNN
  4. Détection d’intrus (mathématiques des réseaux de neurones)
  5. Apprentissage par renforcement - Évitement d’obstacles
  6. Apprentissage par renforcement - Bloqué VS Mouvement

Cursus “IA & Programmation python” simple

Objectifs : Comprendre le fonctionnement de l’IA et des apprentissages, et programmer les algorithmes en python
Temps nécessaire : environ 9h

Activités :

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (édition manuelle + apprentissage supervisé)
  3. AlphAI télécommandé (programmation python)
  4. Algorithme KNN
  5. Algorithme KNN avancé (programmation)
  6. Apprentissage par renforcement - Évitement d’obstacles
  7. Apprentissage par renforcement - Bloqué VS Mouvement

Cursus “IA & Programmation python” avancé

Objectifs : Comprendre le fonctionnement de l’IA et des apprentissages, et programmer les algorithmes en python
Temps nécessaire : environ 14h

Activités :

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (édition manuelle + apprentissage supervisé)
  3. AlphAI télécommandé (programmation python)
  4. Programmation caméra
  5. Algorithme KNN
  6. Algorithme KNN avancé (programmation)
  7. Détection d’intrus (mathématiques des réseaux de neurones)
  8. Apprentissage par renforcement - Évitement d’obstacles
  9. Apprentissage par renforcement - Bloqué VS Mouvement
  10. Apprentissage par renforcement - Q-learning (programmation)

Cursus “Programmation python”

Objectifs : Savoir programmer des algorithmes simples en python
Temps nécessaire : environ 4h

Activités : 

  1. AlphAI télécommandé (programmation python)
  2. Programmation caméra

Supérieur

Cursus “IA & Programmation python”

Objectifs : Comprendre le fonctionnement de l’IA et des apprentissages, et programmer les algorithmes en python
Temps nécessaire : environ 16h

Activités : 

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (édition manuelle + apprentissage supervisé)
  3. AlphAI télécommandé (programmation python)
  4. Programmation caméra
  5. Algorithme KNN
  6. Algorithme KNN avancé (programmation)
  7. Détection d’intrus (mathématiques des réseaux de neurones)
  8. Programmation réseaux de neurones avec Scikit-learn
  9. Apprentissage par renforcement - Évitement d’obstacles
  10. Apprentissage par renforcement - Bloqué VS Mouvement
  11. Apprentissage par renforcement - Q-learning (programmation)

Ce cours a été donné par Learning robots à Paris Saclay. Vous pouvez le retrouver ici.

Cursus “IA”

Objectifs : Comprendre le fonctionnement de l’IA et des apprentissages
Temps nécessaire : environ 8h

Activités : 

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (édition manuelle + apprentissage supervisé)
  3. Algorithme KNN
  4. Détection d’intrus (mathématiques des réseaux de neurones)
  5. Apprentissage par renforcement - Évitement d’obstacles
  6. Apprentissage par renforcement - Bloqué VS Mouvement

Cursus “Introduction à l’IA”

Objectifs : Comprendre les bases de l’IA et des apprentissages
Temps nécessaire : environ 4h

Activités : 

  1. Course de robots - introduction à l’apprentissage supervisé
  2. Suivi de ligne (édition manuelle + apprentissage supervisé)
  3. Apprentissage par renforcement - Évitement d’obstacles
  4. Apprentissage par renforcement - Bloqué VS Mouvement

Cursus “Programmation python”

Objectifs : Savoir programmer des algorithmes simples en python
Temps nécessaire : environ 4h

Activités : 

  1. AlphAI télécommandé (programmation python)
  2. Programmation caméra

À téléchargez
Cursus liés
Le robot : Présentation
Le robot : Présentation

Présentation du robot

Introduction

Thymio est un robot éducatif conçu par des chercheurs de l’EPFL, en collaboration avec l’ECAL, et est très populaire dans les collèges pour enseigner la programmation avec Scratch.

Capture ecran - thymio - preparation 1

Grâce à notre logiciel AlphAI, les enseignants peuvent maintenant faire découvrir et comprendre l’IA à leurs élèves.

Dans nos activités, vous aurez l’occasion d’entraîner des modèles d’IA en apprentissage supervisé ou par renforcement, afin de réaliser des tâches plus complexes avec le robot Thymio.

Composition

Les capteurs

Les capteurs que vous pouvez utiliser sur le logiciel sont :

IR de proximité

Permet d’utiliser les 5 capteurs infrarouges à l’avant et les 2 capteurs infrarouges à l’arrière du robot.some text

  • Un premier bouton vous permet de sélectionner quels capteurs vous souhaitez activer : tous, aucun, capteurs avants, capteurs arrière, capteur central, capteurs latéraux.
  • L'option mode binaire permet d'obtenir des valeurs entières 0 ou 1 au lieu de valeurs décimales entre 0 et 1.
  • Lorsque le mode binaire est actif, le paramètre seuil IR permet de fixer le seuil de bascule entre les valeurs binaires 0 et 1. Par exemple, lorsque le seuil vaut 0.5 (valeur par défaut), toutes les valeurs entre 0.5 et 1 sont arrondies à 1, et toutes les valeurs entre 0 et 0.5 sont arrondies à 0.


Suivi de ligne IR

  • permet d’utiliser les 2 capteurs infrarouges de suivi de ligne, situés sous le robot. Ils communiquent une valeur entre 0 et 1 en fonction de la luminosité de la surface. Il y a deux modes principaux :some text
    • Détection du noir : la valeur 0 correspond au blanc et la valeur 1 correspond au noir. Recommandé pour suivre une ligne noire sur fond blanc.
    • Détection de la réflexion : la valeur 0 correspond au noir et la valeur 1 correspond au blanc

         L'option mode binaire permet d'obtenir uniquement des valeurs entières 0 et 1 au lieu de valeurs décimales entre 0 et 1.

  • Lorsque le mode binaire est actif, le paramètre seuil IR permet de fixer le seuil de bascule entre les valeurs binaires 0 et 1. Par exemple, lorsque le seuil vaut 0.5 (valeur par défaut), toutes les valeurs entre 0.5 et 1 sont arrondies à 1, et toutes les valeurs entre 0 et 0.5 sont arrondies à 0.



l’accéléromètre

  • Permet d’utiliser le gyroscope du robot. Il communique une valeur pour chaque axe x (derrière - devant), y (gauche - droite) et z (en bas - en haut). Vous pouvez choisir un seul des axes, ou une combinaison.



la caméra de l’ordinateur

  • permet d’utiliser la webcam de l’ordinateur en tant que capteur. Plusieurs options sont proposées, qui déterminent la résolution de la caméra et l'utilisation ou non du zoom.

Le bouton pré-calcul image caméra permet de modifier les valeurs traitées :

  • lorsque le pré-calcul est désactivé, l'image est par défaut en couleurs (système RGB).
  • le mode niveaux de gris capture la luminosité de chaque pixel.
  • le mode couleur dans l'image détecte les couleurs. Tous les pixels blanc/gris/noirs vont obtenir la valeur 0 et les pixels de couleur la valeur 1.
  • le mode canal vert détecte uniquement la présence de vert (valeurs proches de 1) ou son absence (valeurs proches de 0).
  • le mode rouge vs vert renvoie pour chaque pixel une valeur entre -1 et 1 qui correspond à la quantité de rouge moins la quantité de vert.

  • Le bouton prendre une photo permet de prendre une photo avec la webcam et de l'enregistrer sur votre ordinateur.
  • L'option effet miroir effectue ou non un retournement de l'image (symétrie axiale gauche-droite).
  • L'option indice de la caméra permet de sélectionner quelle webcam utiliser lorsque votre appareil en possède plusieurs.

Les actions

Les actions que vous pouvez utiliser sur le logiciel sont :

  • Mouvement :


  • Pivotement :
  • Lumières :

Vous pouvez également créer une action personnalisée en cliquant sur le bouton : 

La fenêtre suivante va alors apparaître : 

Nommez votre action et cochez “action du robot” pour modifier les paramètres : la nouvelle action est désormais disponible.

Pour l'enregistrer et pouvoir la réutiliser dans le futur, cliquez sur Fichier > Sauvegarder > Enregistrer la configuration.

Environnement d’utilisation

Nous vous recommandons d’utiliser Thymio dans une arène AlphAI.

MOBSYA propose également des pistes robotiques dans lesquelles faire évoluer Thymio. Cependant, l’absence de murs limite les activités que vous pourrez réaliser.
Vous pouvez également faire simplement évoluer Thymio sur une surface plane.



Pour réaliser l’intégralité des activités sur le logiciel, Thymio aura besoin de :

  • Une surface très plane, idéalement bâchée
  • Des murs d’une hauteur supérieure au robot
  • D’une ou plusieurs lignes au sol d’une couleur très contrastée avec la bâche (on peut utiliser du scotch noir)

 

Sachez également que toutes les activités sont réalisables avec le robot simulé de Thymio Suite.

À téléchargez
Cursus liés
Le robot : Connexion
Le robot : Connexion

Connexion au robot

Par clé Wireless avec Thymio Suite

Premiers pas avec Thymio AI

Video - thymio - preparation 1

  1. Ouvrir Thymio Suite
  2. Connectez le robot à votre ordinateur en branchant la clé Wireless (Dongle USB)
  3. Allumez votre robot Thymio
    (il suffit d'appuyer et de maintenir le doigt sur le rond qui se trouve au centre des flèches jusqu'à ce que le robot émette un son et devienne vert. Cela prend quelques secondes.)
    Lorsque le robot est connecté à la clé sur l’ordinateur, il se met à clignoter ! 
  4. Lancez le logiciel AlphAI
  5. Sélectionnez le robot dans l’écran d’accueil du logiciel 
  6. L’écran principal s'ouvre, vous pouvez commencer les activités !

⚠️ Lors de votre première connexion au robot, il vous sera demandé le numéro de clé d’activation logiciel fourni avec le robot.

En simulation avec Thymio Suite

Video - thymio - preparation 2

  1. Ouvrir Thymio Suite
  2. Cliquez sur “Lancer un simulateur” depuis la barre d’outils. Sélectionnez l’arène de votre choix.
  3. Lancez le logiciel AlphAI
  4. Sélectionnez le robot simulé qui apparaît sur l’écran d’accueil du logiciel

⚠️ Vous devrez idéalement disposer d’un deuxième écran afin de pouvoir avoir les fenêtres du logiciel Thymio Suite et du logiciel AlphAI ouvertes simultanément.

À téléchargez
Cursus liés
Le robot : Maintenance
Le robot : Maintenance

Maintenance du robot

Recharge de la batterie (USB type A)

Pour recharger Thymio, il suffit de le brancher à un ordinateur avec le câble micro-USB fourni.

Si votre Thymio ne s'allume plus même en le branchant à un ordinateur, le brancher à un chargeur mural.

Lorsque Thymio est en charge, une lumière rouge s'allume près du port USB). S'il est allumé, les LED d'indication du niveau de batterie clignoteront.

Problèmes récurrents

Un bouton d’aide se trouve sur Thymio suite et vous redirige vers la page internet du centre d’assistance de Thymio : FAQ Thymio

Mise à jour du robot

  1. Téléchargez et installez la dernière version de Thymio Suite.
  2. Connectez Thymio à votre ordinateur à l’aide du câble USB.
  3. Lancez Thymio Suite.
  4. Lancez VPL ou n’importe quel langage de programmation.
  5. Si une mise à jour est disponible, une icône de mise à jour apparaît sur le robot. Cliquez avec le bouton droit de la souris sur le robot que vous souhaitez mettre à jour et sélectionnez « mettre à jour le firmware (update firmware) » ou cliquez simplement sur l’icône de mise à jour.
  6. Attendez que la barre bleue soit remplie. Une fois qu’elle est remplie, la mise à jour est terminée.

Support / garantie

Pour valider la garantie de votre robot, il faut l’enregistrer sur le site Thymio.Pour tout problème avec votre robot, vous pouvez contactez le centre d’assistance Thymio

À téléchargez
Cursus liés
Le robot : Arène et piste
Le robot : Arène et piste

Arène et piste

Si vous possédez une arène AlphAI, veuillez vous référer à cette page pour comprendre comment l’assembler et les différentes dispositions possibles : 

lien vers Page ressources - AlphAI > Préparation du matériel > Montage de l’arène

Notre partenaire MOBSYA propose de nombreuses pistes à dérouler sur le sol, à acheter ou à imprimer chez soi : https://www.thymio.org/fr/ressources/ressource-dactivites/

Dans chacune des activités présentées sur cette page de ressources, nous avons ajouté un lien de téléchargement de la piste à imprimer quand cela est possible.

À téléchargez
Cursus liés
Activité : Thymio le craintif
Activité : Thymio le craintif

Notions apprises :

  • Visualiser l'activation des capteurs
  • Se familiariser avec l'entraînement d'une IA dans le logiciel

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Age : 8 ans et +

Durée : 1h30 (2*45 min)

Paramètres d'exemple :

  • Thymio le craintif
    Possibilité d'enrichir les capteurs et les actions

Thymio le craintif

Recommandé pour découvrir en manipulant.

Apprenez à votre robot à réagir en fonction de situations précises !
Cette activité vous permettra d'apprendre comment paramétrer le logiciel AlphaAI et son réseau de neurones pour faire fonctionner Thymio dans un environnement simple.

Cette activité a été conçue avec notre partenaire MOBYSIA, constructeur du robot Thymio.

Objectifs

Au cours de cette activité, nous allons apprendre à Thymio à réagir si quelque chose s'approche trop près de lui. Plus précisément, si ses capteurs horizontaux avant et arrière détectent un objet, il tente de s'éloigner avec ses roues. De plus, dans le cas où il est entouré de toute part et qu’il ne peut pas s'échapper, il tourne sur lui-même.

Mise en place du matériel

Connectez votre robot à Thymio suite puis à AlphaAI. Posez le robot sur une surface plane, idéalement avec une bâche, dans un espace de 80 cm² minimum. Choisissez les paramètres correspondants à cette activité dans le logiciel AlphaAI

Première phase : observation

Allumez le bouton "autonome" et éteignez le bouton "apprentissage". Déplacez votre main devant les capteurs de proximité, avant et arrière. Que pouvons-nous constater ? Le comportement aléatoire du robot est normal : il n'a pas encore appris à réagir à la stimulation de ses capteurs.

Deuxième phase : apprentissage

Éteignez le bouton "autonome" et allumez le bouton "apprentissage".
À partir de maintenant, nos actions seront enregistrées pour réaliser l'entraînement de Thymio :

1. Approchez Thymio à un récepteur il y a quelque chose devant lui :
Placez un doigt devant le capteur central de devant et cliquez sur l’icône d’action flèche vers le bas.

2. Apprenez à Thymio à ne pas bouger si il n'y a rien :
En s’assurant que tous les capteurs infrarouges de Thymio soient à zéro, cliquer sur l’icône s’arrêter.

Troisième phase : autonomie

Maintenant, on peut tester si Thymio a bien appris !

Allumez le bouton “autonome” et éteignez le bouton “apprentissage”.

Placez votre doigt devant ses capteurs : est-ce que Thymio se comporte comme prévu ?

Quatrième phase : apprentissage plus complet

Complexifions maintenant les réactions de Thymio en utilisant tous les capteurs disponibles.

Commencez par ajouter de nouvelles actions : reculer à droite, reculer à gauche, tourner à droite, tourner à gauche, avancer, et pivoter à 180°.
⚠️ Ajouter une nouvelle action supprimera la mémoire d’expérience du robot.

Éteignez le bouton “autonome” et allumez le bouton “apprentissage”.

Associez la stimulation de chaque capteur à une action spécifique, par exemple en suivant les instructions de ce tableau :

Une fois que toutes les réactions sont apprises à Thymio en fonction de chaque situation, allumez le bouton “autonome” et éteignez le bouton “apprentissage”.

Est-ce que Thymio se comporte comme prévu ?

Notions apprises :

  • Visualiser l'activation des capteurs
  • Se familiariser avec l'entraînement d'une IA dans le logiciel

Age : 8 ans et +

Durée : 1h30 (2*45 min)

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Paramètres d'exemple :

  • Thymio le craintif
    Possibilité d'enrichir les capteurs et les actions
À téléchargez
Cursus liés
Activité : Garder la piste
Activité : Garder la piste

Matériel :

  • 2 robots
  • 1 ordinateur/robot
  • Circuit à télécharger fourni dans le sujet

Paramétrage :

  • configuration d'exemple : “apprentissage supervisé - suivi de ligne”

Durée : 1 heure

Age : 8 ans et +

Les + de cette activité :

?

Garder la piste

Au cours de cette activité, nous allons apprendre à Thymio à suivre une ligne dessinée sur le sol, son but est d’effectuer le plus d’aller-retour dans un temps imparti (2 à 3 minutes).

Mise en place du matériel

Connectez votre robot à Thymio suite puis à AlphAI.
Posez le robot sur une surface plane, idéalement avec une bâche et y ajouter une piste d’une longueur de 60 cm. Créez la piste sur un support de couleur claire.

Une piste est également proposée au format A2 dans l’annexe, à droite de cette page.

○ ligne-noire-2xA3.pdf qui peut s'imprimer sur 2 feuilles A3 qui seront assemblées avec un ruban adhésif.

○ ligne-noire-4xA4.pdf qui peut s'imprimer sur 4 feuilles A4 qui seront assemblées de la même manière.


Choisissez la configuration d’exemple “apprentissage supervisé - suivi de ligne” dans le logiciel AlphAI

Règlement

Plusieurs équipes de 2 ou 3 élèves s'affrontent, chacune d'entre elles choisissant un nom pour l'équipe et le robot.

Une équipe place son robot au début de la piste. Au démarrage du chronomètre, le robot débute son parcours. A la fin du temps imparti, on additionne les nombres d'aller et de retours parcourus, on note le résultat dans un tableau.

Si la main d'un participant aide le robot, une pénalité de 10 secondes est retirée au temps total du parcours.

Par exemple, une aide réduira le temps de 2min à 2 min -10 sec = 1 min 50 sec.

Si le robot quitte la piste sans y revenir tout seul, l'aller ou le retour en cours n'est pas pris en compte. L'équipe peut remettre le robot au début de la section parcourue mais une pénalité de 10 secondes est appliquée.

Si le robot fait demi-tour et reprend la piste à l'envers avant d'être à l'une des extrémités, le laisser poursuivre, mais le parcours (aller ou retour) en cours ne sera pas comptabilisé.

Il peut y avoir plusieurs manches.

L'équipe vainqueur est celle dont le robot a effectué le plus grand nombre d'aller-retours sur l'ensemble des manches.

Réglages AlphAI

  • Onglet Capteurs

On utilise les capteurs IR au sol en mode valeurs en décochant la case “binary_mode” si ce n’est pas déjà fait.
Capture ecran - thymio - activites 1

  • Onglet Actions

L'équipe choisira librement les actions à utiliser. Elle fixera également les paramètres durée, pause et vitesse maximale comme elle le désire (il est conseillé de faire des essais). Ces 3 paramètres peuvent être modifiés sans être obligé de refaire l'apprentissage.

  • Onglet AI

⚠️Laisser les choix par défaut apprentissage supervisé et réseau de neurones. Ne pas modifier la vitesse d'apprentissage. Éventuellement la diminuer si le robot se trompe souvent.

Choisir la combinaison 10 20, soit 2 couches de neurones, une de 10 et la suivante de 20.

À vous de mener l'apprentissage. Attachez vous à envisager tous les cas possibles, ils ne sont pas très nombreux. Vous pouvez si vous le désirez enregistrer vos paramètres dans le menu Paramètres > Sauver les paramètres ...

Solutions (->Aide)

A vos marques !

Matériel :

  • 2 robots
  • 1 ordinateur/robot
  • Circuit à télécharger fourni dans le sujet

Durée : 1 heure

Age : 8 ans et +

Paramétrage :

  • configuration d'exemple : “apprentissage supervisé - suivi de ligne”

Les + de cette activité :

?

À téléchargez
Cursus liés
Activité : Ne restez pas là !
Activité : Ne restez pas là !

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Petite arène avec obstacles

Paramétrage :

    • configuration d'exemple : “apprentissage supervisé”

Durée : 1 heure

Age : 8 ans et +

Les + de cette activité :

?

Mise en place du matériel

Réaliser un cercle de diamètre de 60cm sur la bâche avec le scotch noir, ne pas hésiter à doubler l’épaisseur du cercle à 4-5 cm. Disposer à l'intérieur du cercle le robot Thymio ainsi que 4 ou 5 petits objets. Caractéristiques des objets : Ces objets doivent être assez légers pour être déplacés par Thymio. Ils peuvent être de forme quelconque mais avoir une couleur claire pour renvoyer les rayons infrarouges des capteurs. Leur largeur doit être comprise entre 2 et 9 cm environ. Exemple : des gobelets, des éléments lego, de petits cubes de bois …

Objectif

Non, nous n'allons pas transformer Thymio en robot aspirateur ! Thymio sera simplement chargé de repousser hors du cercle tous les objets se trouvant dedans, comme le montre la figure ci-dessous :




Que doit faire Thymio

Nous allons apprendre à Thymio comment faire en utilisant la méthode découverte dans l'activité précédente, “Thymio le craintif”, la méthode apprentissage supervisé.On rappelle que dans l'apprentissage supervisé, nous avons regardé les valeurs de ses capteurs, puis nous avons dit à Thymio l'action à effectuer.Nous avions étudié seulement quelques situations importantes. Grâce au réseau de neurones, Thymio avait appris quoi faire dans les situations qu’il n’avait encore jamais rencontrées.

Une première simulation à la main

À l'intérieur du cercle noir, disposer quelques objets au hasard et placer également Thymio. Il faut simuler à la main ce que doit faire le robot pour pousser les objets hors du cercle. Mais attention, il faudra respecter quelques consignes. Sinon nos idées ne pourront pas être utilisées dans le programme. Vérifier que les actions imaginées sont bien présentes dans l'onglet Actions du logiciel Alphai. L'action à exécuter dépendra toujours des valeurs des capteurs. Il faudra donc bien imaginer ce que captent les capteurs. En particulier, pour un état des capteurs, ne pas proposer plusieurs actions différentes.
Par exemple, mettons que si le capteur central capte quelque chose, vous lui demandez d'avancer : ne pas lui proposer plus tard de tourner à droite si à nouveau le capteur central capte quelque chose. Prendre le robot à la main. Le premier mouvement sera d'avancer le robot tout droit sur un petite distance, 3 ou 4 cm. Puis pousser un objet hors du cercle. Vous pouvez prendre la situation décrite dans la figure précédente où Thymio va toucher l'objet mauve par le côté. Déterminer les actions à effectuer en fonction des informations des capteurs. Une fois la situation bien analysée, vous pouvez éventuellement tenter de la reproduire avec Alphai, en ajoutant des actions si nécessaire.

Bien s’organiser

Pour bien retenir quelle action faire, en regardant l'état des capteurs, il est pratique d'utiliser un tableau. On s'aidera donc du tableau donné en Annexe 2 en le remplissant de la manière suivante : Dans la première colonne, indiquer ce qu'il y a autour ou dessous Thymio. Dans les colonnes capteurs.

  • si le capteur capte quelque chose, mettre une croix
  • s'il ne capte rien, mettre un tiret
  • si ce qu'il capte n'a pas d'importance, mettre un point d'interrogation

Dans la colonne actions, mettre l'action correcte. Une fois que vous avez trouvé comment faire pour pousser un objet hors du cercle, trouvez comment utiliser le cercle noir pour renvoyer Thymio à l'intérieur du cercle. Puis poursuivre la simulation à la main jusqu'à avoir poussé tous les objets [1]. Remarque : pour compléter le tableau, il y a plusieurs solutions possibles [2] et vous n'êtes pas obligés d'utiliser toutes les lignes. Enfin, réaliser l'apprentissage complet, passer en mode autonome et contempler Thymio en train de pousser tous les objets hors du cercle ! Réglage final des actions et solutions possibles en annexe 3.

[1] Il peut être intéressant de filmer le 'nettoyage' fait à la main avec une webcam et le visionner ensuite pour que le groupe puisse vérifier si le robot pourra vraiment effectuer tous les mouvements faits par la main.

[2] Une solution qui voudrait envisager tous les cas possibles avec 7 capteurs (5 horizontaux et 2 dessous) devrait étudier au minimum 128 situations différentes !

Rappel pour connecter Thymio*Annexe et Appendix (solution->Aide) 

Annexe et Appendix (solution->Aide) 

Premiers réglages des onglets

Onglet capteurs

Choisir les capteur IR de proximité, et les capteur IR de suivi de ligne en valeurs.

Onglet Actions
Onglet AI

Solutions possibles

Seul l'onglet Actions a besoin de subir des modifications.

10 actions au total.

Légende:

X : quelque chose devant

- : rien en vue

On notera que les capteurs arrière gauche et droit ne sont pas du tout sollicités. On peut donc tout simplement ne pas les utiliser : pour cela, dans l’onglet Capteurs choisir IR de proximité / choix des capteurs : capteurs avant.

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Petite arène avec obstacles

Durée : 1 heure

Age : 8 ans et +

Paramétrage :

    • configuration d'exemple : “apprentissage supervisé”

Les + de cette activité :

?

À téléchargez
Cursus liés
Activité : La voiture autonome
Activité : La voiture autonome

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Petite arène avec obstacles

Paramétrage :

  • configuration d'exemple : “apprentissage supervisé”

Durée : 60 à 90 minutes

Age : 8 ans et +

Les + de cette activité :

?

La voiture autonome

Recommandé pour approfondir l’apprentissage supervisé

Apprenez à votre robot à effectuer des tâches précises grâce à l’apprentissage supervisé. Cette dernière activité permet de réunir tout ce qui a été vu au cours des dernières activités d’apprentissage supervisé. Elle réunit les détections d’obstacles, demi-tours et suivi de ligne.

Mise en place du matériel

Un parcours d'exemple est donné en Annexe 1. Les murs sont aux dimensions d'une feuille A4 pliée en 4 sur la longueur.

On peut réaliser des murs à peu de frais avec des feuilles A4 et un rouleau de ruban adhésif.

Mur long : plier une feuille A4 3 fois dans le sens de la longueur. L’aplatir et coller les 2 côtés opposés avec un morceau d’adhésif, puis lui redonner son volume en 3D (forme de barreau). La dimension est donc de 297 x 52 x 52 mm.

Si la section d'un mur ne se maintient pas carrée, on peut la renforcer en glissant un autre mur plié en équerre (angle droit).

Mur court : Il suffit de couper un mur long quand il est aplati.Dimension : 145 x 52 x 52.

La disposition proposée utilise 9 feuilles : mur long et 3 feuilles de mur court.

Évitez un sol trop rugueux ou bosselé.

Le défi

Dans cette activité, Thymio doit endosser le rôle d'une voiture autonome parcourant une rue.

La rue est simulée par une série de murs parallèles, dessinant un parcours sinueux. A la fin de la rue, on place une ligne noire perpendiculaire aux murs des extrémités.

Le robot doit parcourir la rue sans toucher les murs. Une fois arrivé à la fin de la rue, il fait demi-tour et parcourt la rue en sens inverse.

Enrichissements possibles : Simulation d'un piéton. On place au moment de son choix un obstacle, de largeur maximum de 6 cm environ, au milieu de la rue pour simuler le piéton. Thymio doit s'arrêter devant. On retire le piéton, Thymio redémarre et poursuit son parcours.

On peut reprendre les règles du jeu présentées dans l' activité : “ Garder la piste”. Si cette dernière activité a déjà été faite sous forme de jeu , on peut combiner les scores des deux activités.


Ajout du piéton avec ou sans pause 

  • 1ère stratégie

Si les 3 capteurs centraux captent, arrêt. Si le capteur central seul capte, arrêt également.
Ça marche bien avec un piéton mais s'arrête devant un mur en face.

  • 2ème stratégie

Si le capteur au centre capte, arrêt.
Ça marche bien avec un piéton étroit bien placé, c'est mieux avec un mur en face mais se trompe parfois.


Réglages AlphAI

Onglet Capteurs:

Les capteurs de proximité et les capteurs IR sol seront utilisés.

Onglet Actions:

L'équipe choisira librement les actions à utiliser. Elle fixera également les paramètres durée, pause et vitesse maximale comme elle le désire (il est conseillé de faire des essais). Ces 3 paramètres peuvent être modifiés sans être obligé de refaire l'apprentissage.

Onglet AI :

Laisser les choix par défaut apprentissage supervisé et réseau de neurones. Ne pas modifier la vitesse d'apprentissage. Éventuellement la diminuer si le robot se trompe souvent. Choisir la combinaison 10 20, soit 2 couches de neurones, une de 10 et la suivante de 20. À vous de mener l'apprentissage. Attachez vous à envisager tous les cas possibles, ils ne sont pas très nombreux. Vous pouvez enregistrer vos paramètres dans le menu Paramètres > Sauver les paramètres ...

Annexes

Apprentissage
Solutions

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Petite arène avec obstacles

Durée : 60 à 90 minutes

Age : 8 ans et +

Paramétrage :

  • configuration d'exemple : “apprentissage supervisé”

Les + de cette activité :

?

À téléchargez
Cursus liés
Activité : Apprentissage par renforcement
Activité : Apprentissage par renforcement

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Petite arène minimum fermée avec obstacles

Paramétrage :

  • configuration d'exemple : “évitement d'obstacles (apprentissage par renforcement)”

Durée : 1 heure

Age : 8 ans et +

Les + de cette activité :
?

L’Arène

Mise en place du matériel

Disposer d'une arène rectangulaire AlphAI faite de murs solidaires ou d'un espace délimité par des objets suffisamment lourds pour que Thymio ne puisse pas les déplacer.

Dimensions minimales : 80cm x 80 cm

Apprentissage par renforcement

Mission de Thymio :

Thymio se trouve à l'intérieur d'une arène. Son but est d'explorer cette arène sans toucher les murs. Comme d'habitude, au début, Thymio ne sait rien faire.

Nous décidons de lui apprendre à effectuer sa mission avec une nouvelle méthode appelée apprentissage par renforcement. C'est une méthode qui fait aussi partie du domaine de l'intelligence artificielle.

Nous utiliserons à nouveau un réseau de neurones.

Dans cette méthode, on ne dit pas à Thymio quelle action il doit faire, parmi les diverses actions possibles. C'est à lui d'en choisir une. Mais comment le robot peut- il savoir quelle action choisir ? Grâce à des récompenses qu'on lui donnera, ou non1.

[1] Cela évoque le jeu de devinette, "t'es froid, t'es chaud, tu brûles ! ..."

Réglages AlphAI

Rappel connexion Thymio (haut de page)

Dans le menu paramètres, sélectionner l'option charger des configurations d'exemples ...

Dans le cadre qui apparaît, double cliquer sur l'option évitement d’obstacles (apprentissage par renforcement).

Au dessous du réseau on remarque deux barres noires de progression.

  • La barre de gauche affiche les récompenses ou pénalités sous forme de nombre. Une récompense est représentée par un nombre positif, une valeur négative correspond à une pénalité. 
    Les valeurs possibles pour les récompenses sont déjà fixées par Alphai.
  • La barre droite indique le niveau, c'est-à-dire la moyenne des récompenses précédentes. Il correspond à l'état de l'apprentissage de Thymio.

Par ailleurs, on laissera les boutons d'apprentissage et d'exploration activés.

Premier apprentissage

Observer Thymio dans l'arène

Lancer le mode autonome. Thymio se met en mouvement. Son premier déplacement est choisi au hasard. Observer ses mouvements et ses changements de couleur. Cliquer à nouveau sur le bouton autonome au bout de 20 secondes environ pour arrêter  l’apprentissage.

Question 1: 

Etablir des liens entre ce que fait le robot et les couleurs qu'il prend. Noter la réponse.

Quand Thymio se déplace en avant dans l'arène, il est vert. Quand il s'approche trop près ou qu'il touche un mur, il se colore en rouge.

Vert veut dire : Thymio reçoit une récompense, son action va dans le sens de sa mission.

Rouge veut dire : Thymio reçoit une pénalité, son action est contraire à sa mission.Poursuivre l'apprentissage pendant 5 à 10 minutes.

Question 2: 

Constatez-vous une évolution dans le comportement de Thymio ? Si oui, la décrire. Noter la réponse.

On observe qu'au début, Thymio heurte assez souvent les murs et peine à s'en dégager. Puis il réussit à l'éviter de plus en plus souvent.

On peut même noter plusieurs étapes dans l’apprentissage :

Au début, Thymio a très vite découvert qu’il ne fallait pas aller en arrière.

Ensuite il a adopté très vite un des deux comportements suivants (les élèves observeront l’un ou l’autre avec leur Thymio) : soit tourner en rond (c’est le plus courant), soit faire des lignes droites et se retourner lorsqu’il cogne un mur.

Puis il apprend petit à petit à alterner entre tout droit et virage, choisissant de plus en plus fréquemment tout droit lorsqu’il n’y a pas d’obstacle devant, virage à gauche s’il y a un mur à droite, et virage à droite s’il y a un mur à gauche.

Exploration : cliquez sur le bouton exploration pour le désactiver.

Question 3:

Constatez-vous une évolution dans le comportement de Thymio ? Si oui, la décrire. Noter la réponse.

Thymio fait moins d’erreur, il n’interrompt plus ses lignes droites avec des mouvements inopinés.

Réinitialiser l'IA avec le bouton réinitialiser l'IA. Cela fait « oublier » à Thymio tout ce qu’il a appris, il recommence un apprentissage de zéro (garder autonome activé, mais exploration désactivé).

Question 4: 

Constatez-vous des différences entre ce nouvel apprentissage et le précédent ? Si oui, les décrire.

Si vous ne constatez pas de différence, recommencer encore un nouvel  apprentissage en appuyant sur réinitialiser l’IA. Noter la réponse.

Thymio reste bloqué dans le comportement « tourner en rond » sans découvrir la ligne droite. (Cela n’est pas systématique et il lui arrive d’apprendre correctement même lorsque l’exploration est désactivée).

Conclusion

L’exploration est indispensable à l’apprentissage.

l’IA essaie de temps en temps des actions autres que celle qu’elle « pense » être la meilleure (lorsque cela arrive l’icône d’action à droite de l’écran s’allume en bleu plutôt qu’en noir). Cela évite de rester bloqué dans un comportement médiocre.

En revanche, une fois l’apprentissage terminé, l’exploration n’est plus utile, il est intéressant de la désactiver pour obtenir le comportement le plus parfait possible.

Réseaux de neurones

Observez le comportement du réseau de neurones.

Nous allons observer et noter le comportement en détail sur quelques étapes, au début de l'apprentissage.

1. Réinitialiser l'IA avec le bouton réinitialiser l'IA. Placer Thymio au milieu de l'arène. On rappelle que son premier déplacement est choisi au hasard. Pour vous en convaincre vous pouvez cliquer plusieurs fois de suite sur réinitialiser l'IA et autonome.

2. Compléter la première ligne du tableau. Le petit tiret signifie que les capteurs avant de Thymio ne captent rien car il n'y a rien.

3. Bien regarder Thymio et cliquer sur le bouton pas à pas.

Question 5

Quel mouvement Thymio a-t-il fait ? Dans la ligne du tableau que vous venez de remplir, relevez la valeur correspondante à ce mouvement. Comparer ce nombre aux valeurs des autres actions. Que constate- t-on ? Noter la réponse.

Cette valeur est la plus grande. Donc, Thymio effectue le mouvement correspondant à la valeur la plus grande.

Question 6

On observe aussi que le robot a reçu une récompense. Cette récompense semble-t-elle en accord avec le but de la mission ? Expliquer.

Réponse possible : Thymio a tourné à gauche, et il a reçu une récompense de +55. C'est normal, car il n'y a rien devant lui et il peut donc tourner. Une fois la première récompense décernée, les valeurs de sortie sont re-calculées par le réseau de neurones.

Compléter la 2ème ligne du tableau et devinez alors quel sera le prochain mouvement de Thymio. Faire quelques clics supplémentaires sur le bouton pas à pas en regardant évoluer les récompenses et le niveau.

Récompenses

Observer le comportement du réseau de neurones 

Nous allons observer et noter le comportement en détail sur quelques étapes, au début de l'apprentissage.

1. Réinitialiser l'IA avec le bouton réinitialiser l'IA. Placer Thymio au milieu de l'arène. On rappelle que son premier déplacement est choisi au hasard. Pour vous en convaincre vous pouvez cliquer plusieurs fois de suite sur réinitialiser l'IA et autonome.

2. Compléter la première ligne du tableau. Le petit tiret signifie que les capteurs avant de Thymio ne captent rien car il n'y a rien.

3. Bien regarder Thymio et cliquer sur le bouton pas à pas.

Question 7 :

Comment évolue le niveau quand le robot reçoit une récompense ou au contraire une pénalité ? Que représente le niveau ?

Noter la réponse.

  • Si la récompense est positive, le niveau augmente.
  • Si la récompense est négative, le niveau diminue.

Le niveau représente la capacité de Thymio à obtenir des récompenses positives. Plus précisément, il est calculé comme la moyenne des récompenses reçues pendant la dernière minute écoulée.

À présent, appuyer sur autonome pour laisser Thymio continuer son apprentissage.

Question 8 : 

Comment évolue le niveau au cours de l’apprentissage ?

Pourquoi ? Expliquer :

Le niveau augmente au cours de l’apprentissage. En effet, Thymio reçoit de plus en plus de récompenses élevées (en particulier lorsqu’il va tout droit) et de moins en moins de punitions (puisqu’il se cogne de moins en moins). En fait, le but de l’apprentissage est précisément de faire augmenter le niveau de Thymio.

Pénalités

Si on résume les différentes valeurs apparues dans la barre de progression, on a relevé :

100 : Quand Thymio avance tout droit sans obstacle devant, c'est la valeur la plus élevée.

55 : Quand Thymio tourne sans obstacle devant.

-50 : Thymio effectue une des multiples "mauvaises" actions comme avancer contre un mur, reculer quand il n'y a rien devant ...

Nous pouvons modifier la valeur de la pénalité.

● Ouvrir l'onglet récompense et mettre la pénalité à une petite valeur, par exemple 0 : réinitialiser l'IA et relancer l'apprentissage pendant quelques minutes.

Observer le comportement de Thymio, est-il plus audacieux, plus prudent ?

Tape-t-il plus ou moins souvent les murs ?

● Mettre une plus grande pénalité, 1,5 par exemple. Réinitialiser à nouveau l'IA et relancer l'apprentissage pendant quelques minutes. Même question que précédemment.

Question 9: 

Résumez comment le comportement de Thymio évolue quand on modifie la valeur de la pénalité. Notez la réponse.

Si la pénalité est faible, Thymio tape souvent les murs mais devient plus audacieux et parcourt pleinement les lieux.

Si la pénalité est forte, Thymio tape moins souvent les murs mais devient plus prudent et reste dans une zone restreinte.

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Petite arène minimum fermée avec obstacles

Durée : 1 heure

Age : 8 ans et +

Paramétrage :

  • configuration d'exemple : “évitement d'obstacles (apprentissage par renforcement)”

Les + de cette activité :
?

À téléchargez
Cursus liés
Activité : à votre imagination !
Activité : à votre imagination !

Configuration & sauvegarde

Le logiciel AlphAI vous permet de complètement créer des configurations personnalisées selon vos envies et objectifs.

Choisissez un niveau d’autonomie, un algorithme, les capteurs et les actions que vous souhaitez utiliser, … et inventez votre propre activité !
Vous pouvez également partir d'une configuration d'exemple puis la personnaliser.

Une fois que vous êtes satisfait de la configuration choisie, vous pouvez les enregistrer sur votre ordinateur afin de la réutiliser plus tard !

Pour tout comprendre au paramétrage du logiciel, suivez ce lien :
lien vers Page ressources > Présentation du logiciel > Panneau fenêtre

Vous avez inventé une activité intéressante, ludique et pédagogique ? Nous aimerions beaucoup l’essayer, et pourquoi pas la proposer à tous les utilisateurs du logiciel !

Merci de remplir le formulaire ci-dessous pour nous fournir les informations liés à l’activité que vous avez inventé : 

Formulaire de proposition d’activité : 

  • Votre nom et prénom : 
  • Votre fonction :

  • Titre de l’activité : 
  • Objectif de l’activité : 
  • Age minimum requis pour participer : 
  • Temps nécessaire estimé :

  • Taille et disposition d’arène : 
  • Type de robot utilisé : 
  • Nombre de robots utilisés :

  • Description du déroulement de l’activité : 
  • Fichier de paramètres : 

Upload file (.json)

À téléchargez
Cursus liés
Propositions de cursus
Propositions de cursus

Élémentaire

Cursus “introduction à l’IA”

Objectifs :
Temps nécessaire : 

Activités : 

  1. Présentation de l’IA / éthique
  2. Téléguidage
  3. Programmation
  4. Thymio le craintif
  5. L’arène

Collège

Cursus “4 niveaux d’autonomie”

Objectifs :
Temps nécessaire : 

Activités : 

  1. Téléguidage
  2. Programmation Page Ressources
  3. Thymio le craintif
  4. L’Arène

Cursus : “compréhension de l’IA”

Objectifs :
Temps nécessaire : 

Activités : 

  1. Introduction à l’AI + éthique (cours)
  2. Thymio le craintif
  3. L’Arène
  4. Garder la piste
  5. Ne restez pas là !
  6. La voiture Autonome
  7. Examen

À téléchargez
Cursus liés
Présentation du robot
Présentation du robot

Introduction

mBot est un robot éducatif conçu par Makeblock, une entreprise spécialisée dans la création de kits de robots éducatifs, pour l'apprentissage de la robotique et de la programmation. Il est notamment très populaire dans les collèges pour enseigner la programmation avec Scratch.

Grâce à notre logiciel AlphAI, les enseignants peuvent maintenant faire découvrir et comprendre l’IA à leurs élèves.

Dans nos activités, vous aurez l’occasion d’entraîner des modèles d’IA en apprentissage supervisé ou par renforcement, afin de réaliser des tâches plus complexes avec le robot mBot.

Composition

Le robot se constitue de différents capteurs modulables sur le robot mBot. 

Les capteurs

  1. 1 Capteur ultrason et un capteur de mouvement
    Ultra-Sons :
    permet d’utiliser le capteur à ultra-sons situé à l’avant du robot. Il communique une valeur en fonction de la distance captée.
    Il y a 3 modes d'utilisation :
  • distance obstacle : la valeur renvoyée est la distance de l'obstacle   mesurée en mètres.
  • proximité obstacle : la valeur renvoyée est inversement proportionnelle à la distance mesurée.
  • Absence / présence obstacle : le capteur renvoie 1 si un obstacle est détecté et 0 sinon. La distance de détection des obstacles peut être ajustée grâce au curseur en-dessous.

  1. 1*2 Capteur IR émetteur/récepteur
  1. 1 caméra (option)

Les actions

Les actions que vous pouvez utiliser sur le logiciel sont :

Vous pouvez également créer une action personnalisée en cliquant sur le bouton :

La fenêtre suivante va alors apparaître : 

Nommez votre action et cochez “action du robot” pour modifier les paramètres : la nouvelle action est désormais disponible.

Pour l'enregistrer et pouvoir la réutiliser dans le futur, cliquez sur Fichier > Sauvegarder > Enregistrer la configuration.

Environnement d’utilisation

Nous vous recommandons d’utiliser mBot dans une arène AlphAI.

L’absence de murs limite les activités que vous pourrez réaliser.
Vous pouvez cependant faire simplement évoluer mBot sur une surface plane pour certaines activités.

Pour réaliser l’intégralité des activités sur le logiciel, mBot aura besoin de :

  • Une surface très plane. Utiliser idéalement une bâche blanche.
  • Murs d’une hauteur supérieure au robot
  • Une ou plusieurs lignes au sol d’une couleur très contrastée avec la bâche (on peut utiliser du scotch noir)

À téléchargez
Cursus liés
Connexion au robot
Connexion au robot

Branchez la clé usb makeblock à votre ordinateur

  1. Allumez le robot mBot
    (Si vous vous connectez pour la première fois au robot: appuyez sur le logo bluetooth de la clé afin d’appairer le robot). Voici le guide fourni par MAKEBLOCK pour la connexion au mBot : https://education.makeblock.com/help/mblock-block-based-makeblock-bluetooth-dongle-operation-guide/
  1. Lancez le logiciel AlphAI
  2. Dans l’écran d’accueil, choisissez en haut à droite le modèle de robot mBot
  3. Le robot apparaît sur l’écran, cliquez dessus et commencez les activités !

À téléchargez
Cursus liés
Maintenance du robot
Maintenance du robot

Deux cas de figure selon que vous ayez une boîte à piles ou une batterie lithium :

  • Remplacement des piles ou recharge de celles-ci.
  • Chargement de la batterie Lithium du robot par câble (USB B vers USB A)
    1. Temps de rechargement de la batterie 3-4h
    2. Temps d’utilisation de la batterie 1h
  • Problèmes récurrents
    Vous reporter à la FAQ
À téléchargez
Cursus liés
Montage de l’arène
Montage de l’arène

L’utilisation d’une arène est recommandé afin de faire toutes les activités disponibles sur le logiciel.

Si vous possédez une arène AlphAI, veuillez vous référer à cette page pour comprendre comment l’assembler et les différentes dispositions possibles : 

lien vers Page ressources - AlphAI > Préparation du matériel > Montage de l’arène

À téléchargez
Cursus liés
Activité : Evitement d'obstacle
Activité : Evitement d'obstacle

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène de base

Paramétrage :

  • Apprentissage supervisé - Évitement d'obstacles (simple)

Durée : 30 minutes

Age : 8 ans et +

Les + de cette activité :

  • Quantité de points de données très faibles.
  • Rapide à mettre en place.
  • Facile à faire comprendre aux enfants les plus jeunes.
  • Introduit des notions complexes pour aller plus loin dans la compréhension.

Recommandé pour découvrir en manipulant

Cette activité introduit parfaitement l’IA en utilisant le capteur ultrason et en expliquant en détail comment le robot prend une décision. Le robot est au d’abord entraîné par l’élève avec une quantité très limitée de points de données puis fonctionne parfaitement et nous permet de mieux comprendre la prise de décision du robot.

Contenu vidéo + texte (étapes par étapes)

Introduction

Construisez votre arène de manière à former un carré. Nous vous recommandons d’utiliser une arène conçue par Learning Robots, mais vous pouvez également construire votre propre arène.

Configuration

La configuration du logiciel peut se faire manuellement ou automatiquement.

Pour le configurer automatiquement :

Paramètres > Charger les paramètres d’exemple > Apprentissage supervisé – Évitement d’obstacles (simple)

La configuration peut également se faire manuellement en suivant les indications ci-contre.

  • Capteurs > Ultrasons
  • Actions > Avancer ,  Tourner
  • IA > Type d’apprentissage”Apprentissage supervisé”, Algorithme« réseau de neurone », Vitesse d’apprentissage« 0.02 »,Couches de neurones intermédiaires : vide.
  • Visualisation > Sélectionnez : « animation », « connexions », « activité synaptique », « valeurs entrée/sortie »

Entrainement

L’apprentissage du robot mBot peut se réaliser en seulement deux actions :

Lui apprendre à avancer tout droit lorsqu’il n’y a pas d’obstacle.
Lui apprendre à tourner (à droite ou à gauche) s' il y a un obstacle.


Avancer :

Dégagez tout objet se trouvant devant le robot et appuyez sur la flèche « ⇧ » de votre clavier ou cliquez sur l’action « Avancer » à droite de l’écran. 

Tourner :

Placez un objet devant le robot et appuyez sur la flèche « ⇦  ou  ⇨ » de votre clavier ou cliquez sur l’action « Tourner à droite » à droite de l’écran.

CA Y EST !

Votre robot est entraîné ! Appuyez désormais sur la barre espace ou cliquez sur « autonome » en bas à gauche de l’écran et laissez le robot se déplacer librement et réagir aux obstacles sur son passage.

A retenir : 

En apprentissage supervisé, on entraîne l’IA à partir d’exemples. L’IA adapte son comportement de manière à reproduire ces exemples.

Compréhension

Partie 1

Comment le robot prend-il ses décisions ?

Désactivez le mode « Autonome » et «  Apprentissage » en recliquant sur les boutons correspondants :

Chacun des petits carrés représente un neurone. On remarque que sur le neurone d’entrée (à gauche) la valeur augmente quand la distance augmente. (la valeur est égale à la distance en mètre). La valeur d’un neurone s’appelle le niveau d’activation.

Capture ecran - mBot - A1 - 3c

Capture ecran - mBot - Présentation 3d (inexistante)

Capture ecran - mBot - A1 - 2b

Pour ce qui est des 3 neurones de sortie (à droite), chacun obtient une valeur calculée. L’action correspondant à la valeur la plus élevée est celle qui sera choisie. S’il n’y a pas d’obstacle, c’est l’action que l’on donne en exemple au robot lorsqu’il n’y a pas d’obstacle, qui obtient la plus grande valeur. Dans notre cas, c’est l’action « Avancer ».

Sans obstacle « Avancer » = 6.39 « Tourner » = -6.23:

Capture ecran - mBot - A1 - 3g

Avec obstacle « Avancer » = -0.24 « Tourner » = 3.28:

Partie 2

Comment sont calculés les niveaux d’activation des neurones ? 

Mettre le logiciel en mode avancé : Paramètres > Affichage des paramètres > Avancé.

Puis afficher les valeurs qui nous intéressent : Visualisation > Valeur des connexions.

Capture ecran - mBot - A1 - 3h

On voit apparaître 6 nouvelles valeurs:

Les 3 « poids » des connexions entre les neurones. (en noir, à côté du symbole *)

Capture ecran - mBot - A1 - 3i

Les 3 « biais neuronaux » ou « valeurs au repos » : placées sur les connexions à côté de chaque neurone de sortie. (Entre parenthèses)

La valeur de sortie la plus élevée sera choisie comme action par le robot. Ces valeurs sont calculées par la formule suivante :

Sortie = Entrée * Connexion + Biais

Capture ecran - mBot - A1 - 3j

4.00*2.50+(-0.79)=9.20

Partie 3

On remarque que l’équation précédente a la même forme que l’équation d’une droite :
y = a x + b.

y = Sortie, a = Poids de la connexion, x = Entrée, b = Biais

En mettant la formule sous cette forme on comprend que modifier a, x ou b modifiera le résultat y.

Nous pouvons donc vérifier la formule en modifiant une de ces valeurs. Parmi ces valeurs il n’existe qu’une seule valeur que nous pouvons modifier.

Il s’agit de l’entrée (x). En effet x représente le neurone d’entrée. Dans notre cas, le neurone d’entrée est le capteur ultrason du robot. Pour modifier la valeur de x il vous suffit d’approcher ou d’ éloigner votre main ou un objet du capteur ultrason du robot.

Obstacle très proche

En mettant sa main très proche du capteur ultrason on fait baisser la valeur de l’entrée x, puisque celle-ci est égale à la distance mesurée par le capteur.

Lorsque la valeur de l’entrée x est petite, les niveaux d’activation y des neurones de sortie se rapprochent des valeurs de biais b.

Dans ce cas, c'est l'action Tourner qui l’emporte car elle a la plus grande valeur de biais.

Éloigner l’obstacle

En éloignant sa main du capteur, on augmente progressivement la valeur de l’entrée x.

Lorsque la valeur de l’entrée x augmente, les niveaux d’activation y des neurones de sortie s’éloignent des biais neuronaux b. La valeur de l’action Tourner diminue car le poids de sa connexion est négatif, tandis que la valeur de l’action Avancer augmente car sa connexion est positive.

À partir d’une certaine valeur de x, c’est l’action Avancer qui l’emporte car sa valeur dépasse les autres.

Partie 4

Réinitialiser l’IA

Lorsque l’on réinitialise l’IA, les valeurs des connexions (a) et des biais (b) sont remplacées par des valeurs aléatoires. Vérifiez par vous-même !

Lorsque l’apprentissage est en cours (bouton « Apprentissage » actif et « mémoire d’expérience » non vide), les poids des connexions et des biais évoluent : c’est l’apprentissage automatique.



+ Mémoire d’expérience : 36 = Variation de (+3.78)







En revanche, lorsque l’apprentissage est arrêté (bouton « Apprentissage » blanc ou « mémoire d’expérience » vide), les valeurs de connexions et de biais se figent.



OU Mémoire d’expérience : vide = Fixation de (+3.78)





À retenir :

L’apprentissage supervisé est une méthode d’apprentissage automatique qui permet à un réseau de neurones d’apprendre un comportement à partir d’exemples donnés par des humains.

Lorsqu’un réseau de neurones apprend, ses paramètres internes (poids des connexions et valeurs des biais) évoluent. Ils se figent lorsque l’apprentissage est terminé.

Bonus

Si vous le souhaitez, vous pouvez ajouter des actions au robot et améliorer son entraînement afin de rendre ses déplacements plus complexes, plus naturels, et afin qu’il puisse sortir des impasses plus facilement.

Dans le volet « Actions » ajoutez par exemple « Reculer » et apprenez au robot également à reculer lorsqu’il est trop proche d’un obstacle.

Vous pouvez aussi régler le degré du virage. Dans le volet « Actions » activez l’action « Tourner légèrement ». Vous pourrez entraîner le robot à effectuer un virage plus ou moins fort selon la distance avec l’obstacle.

Remarque : Lorsque le robot arrive en diagonale sur un obstacle, le capteur ultrason ne détecte pas bien cet obstacle. Savez-vous pourquoi ?

Capture ecran - mBot - Présentation 3d (inexistante)

Pour résoudre ce problème, rdv dans l’activité 4 « Évitement d’obstacle complexe»

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène de base

Durée : 30 minutes

Age : 8 ans et +

Paramétrage :

  • Apprentissage supervisé - Évitement d'obstacles (simple)

Les + de cette activité :

  • Quantité de points de données très faibles.
  • Rapide à mettre en place.
  • Facile à faire comprendre aux enfants les plus jeunes.
  • Introduit des notions complexes pour aller plus loin dans la compréhension.

Activité : Suivi de ligne
Activité : Suivi de ligne

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Paramétrage :

  • Apprentissage supervisé - Suivi de ligne

Durée : 1h30 (2*45min)

Age : 8 ans et +

Recommandé pour découvrir en manipulant

Apprenez à votre robot à réagir en fonction de situations précises !

Cette activité vous permettra d’apprendre comment paramétrer le logiciel AlphAI et son réseau de neurones pour faire fonctionner mBot dans un environnement simple.

Contenu vidéo + texte (étapes par étapes)

Matériel

Pour la réalisation de cette activité, vous aurez besoin d’une piste de suivi de ligne noire sur fond blanc.

Vous pouvez imprimer une telle piste sur papier (le format minimal recommandé est A2, c’est-à-dire 2 pages A3 ou 4 pages A4).

Vous pouvez aussi réaliser une telle piste à l’aide de scotch noir sur une plus grande variété de surfaces. Il faut simplement s’assurer que la surface est bien détectée comme du blanc par le robot et que le scotch s’enlève sans laisser de trace.

Pour créer vos propres circuits, gardez ces quelques règles en tête :

  • Plus les courbes sont serrées, et plus le robot risque de sortir de la piste.
  • Pour ajouter un peu de difficulté, il faut s’assurer que la piste comporte des virages à droite et à gauche.
  • Les intersections sont des points où le robot risque de ne pas toujours prendre la décision souhaitée ! Elles ajoutent de la difficulté.

Configuration

La configuration du logiciel peut se faire manuellement ou automatiquement.

Pour le configurer automatiquement :

Paramètres > Charger les paramètres d’exemple > Apprentissage supervisé – Évitement d’obstacles (simple)

La configuration peut également se faire manuellement en suivant les indications ci-contre.

  • Capteurs > Infrarouges
  • Actions > Avancer ,  Tourner ,  Reculer
  • IA > Type d’apprentissage”Apprentissage supervisé”, Algorithme« réseau de neurone », Vitesse d’apprentissage« 0.02 »,Couches de neurones intermédiaires : vide.
  • Visualisation > Sélectionnez : « animation », « connexions », « activité synaptique », « valeurs entrée/sortie »

Entrainement

L’apprentissage du robot mBot peut se réaliser avec seulement 4 actions :

Lui apprendre à avancer:

Placez les deux capteurs infra-rouges au-dessus de la ligne noire et appuyez sur la flèche “⇧” de votre clavier ou cliquez sur l’action « Avancer » à droite de l’écran.

Lui apprendre à tourner à droite:

Placez le capteur de droite au-dessus de la ligne noire et le capteur de gauche sur du blanc et appuyez sur la flèche “⇨” de votre clavier ou cliquez sur l’action « Tourner à droite » à droite de l’écran.

Lui apprendre à tourner à gauche:

Placez le capteur de gauche au-dessus de la ligne noire et le capteur de droite sur du blanc et appuyez sur la flèche ⇦ de votre clavier ou cliquez sur l’action « Tourner à gauche » à droite de l’écran.

Lui apprendre à reculer:

Placez les deux capteurs infra-rouges au-dessus du blanc et appuyez sur la flèche ⇩ de votre clavier ou cliquez sur l’action « Avancer » à droite de l’écran.

Votre robot est entraîné !

Placez-le au-dessus de la ligne noire et appuyez sur la barre espace ou cliquez sur autonome en bas à gauche de l’écran et laissez le robot se mouvoir librement.

Compréhension

Partie 1

Comment le robot choisit-il entre avancer et reculer ?

Désactivez les modes autonome et apprentissage en cliquant sur les boutons correspondants.
Dans cette activité, il y a deux neurones d’entrées (deux carrés à gauche) qui correspondent chacun à un capteur infra-rouge sous le robot.

Lorsque les capteurs détectent du noir, leurs neurones ont une valeur de 0.00. 

Le robot va alors décider d’aller tout droit pour suivre la ligne.

Lorsque les capteurs détectent du blanc, leur neurone correspondant est égal à 1.00.

Le robot va alors décider de reculer pour retrouver la ligne.

 💡Les diodes au dessus des capteurs s’allument lorsque le capteur détecte du blanc. Elles sont éteintes lorsque du noir est détecté.

Partie 2

Comment le robot sait-il quand et dans quelle direction tourner ?

Un neurone d’entrée peut recevoir une information différente de l’autre.

Un des deux capteurs infra-rouge peut détecter du blanc, alors que l’autre détecte du noir.

Cela permet au robot de savoir si la ligne se trouve sur sa droite ou sur sa gauche.

Lorsque le capteur de gauche détecte du blanc et le capteur de droite détecte du noir.

À votre avis, dans quelle direction le robot va-t-il tourner ?

Lorsque le capteur de droite détecte du blanc et le capteur de gauche détecte du noir.

À votre avis, dans quelle direction le robot va-t-il tourner ?

Bonus

Ajuster la vitesse du robot à la piste.

Vous pouvez ajuster la vitesse du robot à la piste. Pour cela, rendez-vous dans l’onglet “Actions” et déplacez le curseur vitesse.

Attention, lorsque la vitesse est trop faible, le robot ne parvient plus du tout à bouger !

Que se passe-t-il lorsque la vitesse est trop élevée ?

Trouvez la vitesse optimale pour votre circuit ! (Cela dépend de la courbure maximale des virages et de la largeur de la ligne.)

Il est aussi possible de repartir de 0 pour réaliser un nouvel entrainement de mBot. Pour cela il vous faudra activer le mode apprentissage puis cliquer sur le bouton réinitialiser l’IA. La mémoire du robot est alors effacée et il est possible de recommencer.

Lors de l’entraînement, observez l’évolution des poids des connexions !

Signe pouce en haut avec un remplissage uni

 A retenir :

Contrairement au capteur à ultra-son, les capteurs à infrarouges sont binaires : ils ne peuvent détecter que du blanc ou du noir. Le nombre d'entrées possibles est donc très limité, et le potentiel de généralisation de l'IA à de nouvelles valeurs d'entrée n'est pas exploité dans cette activité.

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Durée : 1h30 (2*45min)

Age : 8 ans et +

Paramétrage :

  • Apprentissage supervisé - Suivi de ligne
Cursus liés
Activité : Contrôle caméra
Activité : Contrôle caméra

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Paramétrage :

  • Apprentissage supervisé - Caméra

Durée : 1h30 (2*45 min)

Age : 8 ans et +

Recommandé pour découvrir en manipulant

Apprenez à votre robot à réagir en fonction de situations précises !

Cette activité vous permettra d’apprendre comment paramétrer le logiciel AlphAI et son réseau de neurones pour faire fonctionner Mbot dans un environnement simple.

Contenu vidéo + texte (étapes par étapes)

Matériel

Un ordinateur avec une webcam.

Des post-it de 4 couleurs différentes ou des petites feuilles de papier sur lesquelles on a dessiné des grosses flèches de couleurs. Exemples ci-dessous.

Configuration

La configuration du logiciel peut se faire manuellement ou automatiquement.

Pour le configurer automatiquement :

Paramètres > Charger les paramètres d’exemple > Apprentissage supervisé – Évitement d’obstacles (simple)

La configuration peut également se faire manuellement en suivant les indications ci-contre.

  • Capteurs > Caméra 21*16
  • Actions > Avancer ,  Tourner ,  Reculer ,  S’arrêter
  • IA > Type d’apprentissage”Apprentissage supervisé”, Algorithme« réseau de neurone », Vitesse d’apprentissage« 0.02 »,Couches convolutionnelles:vides,Couches de neurones intermédiaires : 50 50.

Niveau 1

Reconnaître une couleur

Pour chacune des actions avancer, reculer, tourner à gauche ou à droite :

  • Choisissez une couleur à attribuer à cette action.
  • Placez le post-it de cette couleur devant la caméra de l’ordinateur.
  • Appuyez sur l’icône de l’action correspondante (ou utilisez le clavier). Le robot réalise l’action demandée et mémorise l’association de cette image avec cette action.




= Avancer



=Reculer



=tourner à gauche



=tourner à droite

S’arrêter

Il faut maintenant apprendre au robot à s’arrêter lorsqu’il ne voit aucun post-it coloré à l’image.

Cliquez sur l’action s’arrêter (carré noir)  lorsque aucun post-it n’est visible à la caméra. Le robot ne bouge pas mais il mémorise l’association de cette image avec l’action s’arrêter.

Vous pouvez vérifier que l’association a bien été mémorisée en consultant la taille de la mémoire d’expérience en haut de l’écran.



=S’arrêter


Maintenant que l’entraînement du robot est terminé, il suffit d’activer le mode autonome en cliquant sur le bouton correspondant ou en pressant la barre espace.

Munissez-vous de vos post-it colorés et placez-les devant la caméra pour contrôler le robot !

Compréhension

Comment le robot prend-t-il des décisions ?

Désactivez le mode autonome en cliquant sur le bouton ou en appuyant sur la barre espace.

Chaque pixel de l’image est décomposé en 3 couleurs : rouge, vert et bleu. On voit donc à l’écran 3 versions monochromes de l’image qui, lorsqu’elles sont superposées, permettent d’obtenir l’image en couleurs.

Attention : il s’agit ici de synthèse additive des couleurs, à ne pas confondre avec les couleurs primaires en peinture ! (Qui correspondent à une synthèse soustractive.)

Chaque pixel d’une image monochrome est associé à un neurone d’entrée dont la valeur va permettre de calculer les niveaux d’activation des couches successives, jusqu’à la couche de sortie.

Comment la caméra détecte-elle les couleurs ?

La couleur du post-it influence les pixels. En effet, une couleur jaune va être détecté par l’assombrissement de la zone correspondante dans l’image bleue. En effet, la couleur jaune est une superposition de rouge et de vert, mais ne contient pas de bleu.

Canal bleu pour un post-it jaune

Pour un post-it bleu 

Le principe est le même pour les deux autres canaux de couleur. La caméra va donc différencier les couleurs présentes sur les post-it et ainsi permettre au robot de prendre une décision. 

Canal rouge pour le post-it jaune

Pour le post-it bleu

Lorsque nous présentons un post-it devant la caméra, comme le montre la photo ci-dessous, nous pouvons voir que la caméra détecte bien la zone de couleur.

Cela affecte les valeurs des neurones d’entrée qui vont propager cette information aux couches de neurones successives.

Lorsque le réseau de neurones est entraîné, les calculs réalisés le conduisent à donner en sortie la valeur la plus élevée à l’action qui correspond le mieux aux données qu’il a mémorisées.

Le choix de s’arrêter repose sur le même principe. Cependant, dans ce cas il n’y a pas de post-it ! Le réseau de neurones détecte plutôt des détails plus spécifiques dans l’image (personne, arrière-plan, etc.). 

Les calculs conduisent à donner la plus forte valeur à l’action s’arrêter lorsque ces détails sont détectés.

⚠️L’unique capteur présent dans cette activité est la caméra de l’ordinateur. Cela signifie que le robot n’est pas capable de savoir s’il y a un obstacle devant lui. C’est entièrement à vous de le guider pour éviter un blocage, un choc ou une chute.

Niveau 2

Déplacement avec la main

Pour effectuer le déplacement du robot avec la main vous devez faire preuve de plus de rigueur lors de l'entraînement de votre mBot. Cela signifie que, pour un entraînement optimal, vous devrez réaliser plusieurs points d’apprentissage pour chaque action de votre robot. 

Il est important lors de l'entraînement de veiller à ce que l’arrière-plan de l’image (tout ce qui n’est pas votre main) soit suffisamment fixe: même cadrage, même luminosité, même nombre de personnes présentes et aux mêmes places, etc. Il faudra aussi respecter ces règles pendant la phase d’utilisation !

Avancer, reculer, tourner à gauche, tourner à droite

Placez votre main au premier plan dans l’image.

Adaptez la position de votre main en fonction de l’action à apprendre.

Enregistrez plusieurs exemples pour chaque action (par exemple, 10 points de données par action).







=Avancer






=Reculer







=Tourner à gauche







= Tourner à droite

S’arrêter

Comme dans la partie précédente, il faut apprendre au robot à s’arrêter lorsqu’il ne détecte pas de main au premier plan dans l’image.



=S’arrêter

Maintenant que l'entraînement du robot est terminé, il suffit d’activer le mode autonome en cliquant sur le bouton correspondant ou en pressant la barre espace.

Placez votre main devant la caméra comme lors de l'entraînement et observez les réactions du robot !

Compréhension

Le fonctionnement de la caméra est identique dans les deux apprentissages.

Mais cette fois-ci, le réseau de neurones doit apprendre à détecter la position de votre main dans l’image, plutôt que la couleur d’un post-it. Il s’agit d’une tâche plus complexe pour un réseau de neurones, car il n’y a pas de limite objective entre une position centrale et une position à droite, par exemple. Le réseau va donc devoir déterminer lui-même où placer les limites entre les 4 positions possibles.

De plus, de nombreux éléments perturbateurs vont pouvoir altérer les prises de décision du réseau. Le réseau doit apprendre que la taille de votre main, sa forme, la position des doigts, son orientation, etc., ne sont pas importants pour la prise de décision : seulement la position de la main doit être prise en compte. C’est pour cela qu’il faut donner plusieurs exemples pour chaque type d’action.

L’arrière-plan de l’image est aussi une source importante de perturbations. C’est pour cela qu’il est important de veiller à conserver un arrière-plan le plus fixe possible.

Ce niveau vous permettra d’obtenir un résultat fluide lors des déplacements du robot, allant de pair avec une meilleure compréhension du fonctionnement de l’intelligence artificielle. 






Pendant l'entraînement 






Pendant l’autonomie

=OK

La caméra est dans la même position et renvoie les mêmes informations pour les 2 phases. Le robot se concentre sur ma main et non l’arrière-plan.

💡Astuce: Si vous réalisez cette activité seul, assurez-vous de pouvoir observer le robot sans déplacer votre tête durant l'entraînement et l’autonomie. 

Les biais explicites

Les IA actuelles fonctionnent grâce à de l’apprentissage automatique à partir d’exemples. Ces exemples sont appelés données d’apprentissage. La qualité du résultat obtenu dépend donc en premier lieu de la qualité de ces données d’apprentissage.

En apprentissage automatique, on cherche à éviter dans les données d’apprentissage la présence de deux types de biais (c’est-à-dire des erreurs, des phénomènes indésirables ou de manière générale des écarts entre le résultat souhaité et le résultat obtenu).

Le premier type de biais est appelé biais explicite. Il s’agit d’une erreur humaine de classification lors de l’entraînement de l’IA. Exemple : Si on a demandé au robot de reculer lorsque la caméra voit l’image ci-dessous (par exemple parce qu’on a appuyé sur la mauvaise touche par inadvertance). 

+







(Reculer)

=Biais Explicite

Dans ce cas, le réseau de neurones va avoir du mal à prendre une décision lorsque la caméra observe une image similaire, à cause de cette contradiction présente dans ses données d’apprentissage.

Pour éliminer ce type de biais, il suffit de supprimer ces erreurs présentes dans les données.

Les biais implicites

Les biais implicites sont plus difficiles à détecter car il ne s’agit pas d’erreurs objectives, mais plutôt d’un manque de diversité des données, qui ne suffisent pas à couvrir tous les cas rencontrés lors de l’utilisation.

Voici une règle simple à retenir : lorsque l’IA est confrontée à une situation qui est trop différente de toutes ses données d’apprentissage, alors le choix de l’IA face à cette situation est imprévisible !

Pour éviter cela, il faut, lors de l’entraînement, être particulièrement attentif à générer une diversité d’exemples représentative des situations que l’IA est susceptible de rencontrer lors de son utilisation.

Données d'entraînement

Image à analyser

Quelle décision l’IA va-t-elle prendre ?

Comment améliorer les données d’entraînement pour s’assurer que cette décision soit la bonne ? (indice : il faudrait utiliser 4 exemples).

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Durée : 1h30 (2*45 min)

Age : 8 ans et +

Paramétrage :

  • Apprentissage supervisé - Caméra
Activité : Evitement d'obstacles complexes
Activité : Evitement d'obstacles complexes

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Paramétrage :

  • Apprentissage supervisé - Évitement d’obstacles (complexe)

Durée : 1h30 (2*45 min)

Age : 8 ans et +

Recommandé pour découvrir en manipulant

Apprenez à votre robot à réagir en fonction de situations précises !

Cette activité vous permettra d’apprendre comment paramétrer le logiciel AlphAI et son réseau de neurones pour faire fonctionner Mbot dans un environnement simple.

Matériel

Pour la réalisation de cette activité vous aurez besoin d’assembler une petite arène carrée :

Nous vous recommandons d’utiliser notre arène individuelle disponible sur notre site ou chez nos distributeurs.
Vous pouvez également créer votre propre arène. Il faut pour cela une surface plane et propre (par exemple une table), entourée de barrières de couleur différente du sol, et assez solides pour arrêter le robot.

Configuration

La configuration du logiciel peut se faire manuellement ou automatiquement.Pour le configurer automatiquement :Paramètres > Charger les paramètres d’exemple > Apprentissage supervisé – Évitement d’obstacles (simple)La configuration peut également se faire manuellement en suivant les indications ci-contre.

  • Capteurs > Ultrason et Détection de mouvement
  • Actions > Avancer ,  Tourner ,  Reculer en tournant
  • IA > Type d’apprentissage ”Apprentissage supervisé”, Algorithme « réseau de neurone », Vitesse d’apprentissage « 0.02 », Couches de neurones intermédiaires : 15.
  • Visualisation > Sélectionnez : « animation », « connexions », « activité synaptique », « valeurs entrée/sortie »

Capteur Ultra-son - Concept

Durant la première activité (évitement d’obstacle simple) nous avons, à la fin, remarqué que le robot ne détectait pas le mur devant lui lorsque celui-ci se trouvait en diagonale. En effet l’émetteur du capteur ultrason fonctionne en envoyant une onde ultrasonore qui rebondit sur le mur et revient vers le récepteur.
L'ultrason calcule donc la distance de l’objet en face en fonction du temps que met l’onde à atteindre le récepteur.

Mais si l’objet se trouve en diagonale, le trajet de l’onde émise sera beaucoup plus grand et la distance calculée sera absurde. Le robot se trouve donc bloqué contre le mur sans pouvoir avancer car l’action dominante lorsqu’il ne voit pas d’obstacle et « Avancer ».

Pour aller plus loin

Le capteur ultrason mesure le temps que met l’onde pour revenir jusqu’au récepteur. La vitesse est égale à la distance divisée par le temps V=d/t​ donc la distance c’est la vitesse fois le temps d=V×t. Le capteur sait à quelle vitesse l’onde se propage (à la vitesse du son ~330 m/s), il sait également à quel moment il a émis l’onde. Il lui reste plus qu’à diviser cette valeur par 2 car l’onde ultrasonore fait 2 fois le chemin entre le capteur et l’objet, une fois de l’émetteur à l’objet et une deuxième fois de l’objet au récepteur.

Calcul de la distance pour un capteur à ultrasons : (V×t)/2

Entrainement

L’apprentissage du robot pour cette activité est légèrement plus complexe

Avancer

Dégagez tout objet se trouvant devant le robot et appuyez sur la flèche « ⇧ » de votre clavier ou cliquez sur l’action « Avancer » à droite de l’écran.















=Avancer



















Tourner

Placez un objet devant le robot et appuyez sur la flèche « ⇦  ou  ⇨ » de votre clavier ou cliquez sur l’action « Tourner à droite » à droite de l’écran.
Capture ecran - mBot - A1 - 2b













=Tourner













Reculer en tournant

Première étape : Activer le capteur de blocage des roues

Désactiver le mode apprentissage

Placez le robot contre le mur

Cliquez sur avancer plusieurs fois jusqu’à ce que le capteur de blocage des roues s’active

Deuxième étape : Ne touchez plus le robot

Troisième étape : Activer le mode apprentissage

Quatrième étape : Cliquez sur reculer en tournant à gauche ou à droite

NB : Vous devez prendre le soin avant d’appuyer sur reculer en tournant de choisir 1 seul côté droit ou gauche. Sinon le robot ne saura pas quel côté choisir et cela compromet la clarté de la compréhension de l’exercice.

ÇA Y EST !

Votre robot est entraîné ! Appuyez désormais sur la barre espace ou cliquez sur « autonome » en bas à gauche de l’écran et laissez le robot se déplacer librement dans l’arène et réagir aux obstacles sur son passage.

Compréhension

Détection de mouvement

Pour résoudre le problème du capteur ultrason, nous avons ajouté un nouveau capteur : il s’agit d’un détecteur de blocage. Ce capteur permet au logiciel de déterminer si le robot est bloqué ou non. Pour ce faire, le capteur analyse la distance calculée de l’ultrason, si celle-ci reste la même durant plusieurs actions, le capteur s’active et le robot comprend qu’il est bloqué.

Le robot n’est pas bloqué,
le capteur affiche « 1 »

Le robot se bloque mais le capteur affiche toujours « 1 »

Si après plusieurs actions la valeur calculée par l’ultrason est identique le capteur affiche «0»

Graphe des états

La première chose qui saute aux yeux lorsque l’on lance cette activité, est la présence d’un graphique, aux premiers abords, très complexe. Ce graphique s’appelle « l’espace des états ». Ce graphique montre les choix que le robot prend en fonction de son « état ». 

Chacun des capteurs de cette activité est représenté dans le graphique :

Axe des ordonnées = capteur ultrason.

Axe des abscisses = capteur de blocage.

L’état du robot est représenté par un petit carré, pour mieux comprendre essayez d’approcher et d’éloigner votre main du robot, le petit carré se déplacera sur l’axe des ordonnées.

Si on bloque le robot contre un objet et qu’on avance plusieurs fois, le capteur de blocage des roues va s’allumer et le carré se déplacera sur l’axe des abscisses.

Enfin, les couleurs représentent chacune des actions possibles avec le robot (jaune = avancer, vert = tourner à droite …).

Durant l’entraînement vous avez constaté que lorsque vous effectuez une action, le graphe changera de couleur. Comme les couleurs représentent des actions, cela signifie que l’action que choisira le robot sera défini par son « état » dans le graphe des états.

Exemple

Ici la mémoire d’expérience est vide. Les couleurs présentes dans le graphe ont donc été choisies aléatoirement. 

En autonomie, le robot reculerait à droite en arrière jusqu’à ce qu’il se bloque et il reculerait ensuite à gauche jusqu’à se débloquer.

Ici nous lui avons appris à avancer sans obstacle et à tourner à droite face à un obstacle.

En autonomie, le robot avancera jusqu’à ce qu’il croise un obstacle pour tourner à droite jusqu’à s’éloigner de l’obstacle.

Défi

En autonomie, comment réagirait le robot dans ces différentes dispositions (sans prendre en compte l’état actuel du robot dans l’espace des états) :

Algorithme KNN

Désactivez le mode « Autonome » et «  Apprentissage » en recliquant sur les boutons correspondants :

L’algorithme KNN (K nearest neighbours) aussi appelé algorithme des K plus proches voisins, est un algorithme d’intelligence artificielle plus simple à comprendre.

Cette activité se déroule de la même manière que la dernière (évitement d’obstacles – complexe) et sert à faire la même chose, mais elle le fait d’une manière différente. Vous aurez remarqué que le graphe des états ne s’est pas colorié de la même façon. En effet là où le graphe des états mettait un petit moment à se former et les couleurs n’était pas instantanément fixé, ici dès que l’on clique sur une action la limite de coloriage se dessine directement et d’un seul coup.

Dans cet algorithme, le robot se promène dans un espace…

Et chaque point de donnée apprise au robot est enregistré dans ce même espace.

Pour prendre une décision le robot fait juste le choix du point de donnée le plus proche de sa position dans l’espace.

L’algorithme des K plus proches voisins est beaucoup plus simple à comprendre et nous permet, utilisateurs, de livrer une moindre quantité de données pour faire fonctionner l’IA, la marge d’erreur est largement réduite.

Comme dit précédemment, les couleurs se forment instantanément, les couleurs représentent seulement le périmètre dans lequel, par rapport aux autres points de données, la position du robot sera plus proche de ce point.

Exemple : Ici le robot se trouve plus proche du carré correspondant à l’action tourner à gauche, en autonomie le robot tournerait donc à gauche.

Rappel : Dans l’algorithme des réseaux de neurones pour prendre une décision, le robot faisait ce calcul

Sortie = Entrée * Connexion + Biais

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Durée : 1h30 (2*45 min)

Age : 8 ans et +

Paramétrage :

  • Apprentissage supervisé - Évitement d’obstacles (complexe)
Cursus liés
Activité : Apprentissage par renforcement
Activité : Apprentissage par renforcement

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Paramétrage :

  • Apprentissage supervisé - Évitement d’obstacles (complexe)

Durée : 1h30 (2*45 min)

Age : 8 ans et +

Recommandé pour découvrir en manipulant

Apprenez à votre robot à réagir en fonction de situations précises !

Cette activité vous permettra d’apprendre comment paramétrer le logiciel AlphAI et son réseau de neurones pour faire fonctionner mBot dans un environnement simple.

Matériel

Pour la réalisation de cette activité vous aurez besoin d’assembler une petite arène carrée :

Nous vous recommandons d’utiliser notre arène individuelle disponible sur notre site ou chez nos distributeurs.

Vous pouvez également créer votre propre arène. Il faut pour cela une surface plane et propre (par exemple une table), entourée de barrières de couleur différente du sol, et assez solides pour arrêter le robot.

Configuration

La configuration du logiciel peut se faire manuellement ou automatiquement.Pour le configurer automatiquement :Paramètres > Charger les paramètres d’exemple > Apprentissage par renforcement– Évitement d’obstaclesLa configuration peut également se faire manuellement en suivant les indications ci-contre.

  • Capteurs > Ultrason, Détection de mouvement, dernière action effectuée

  • Actions > Avancer, Tourner, Reculer en tournant
  • Récompense > “Évitement d’obstacle”
  • IA > Type d’apprentissage”Apprentissage par renforcement”, Algorithme« deep Q-Learning »,Couches de neurones intermédiaires : 300 100 50.

  • Visualisation > Sélectionnez : « réseau de neurones», « connexions », « activité synaptique »

Concept

Pour cette activité, il n’y a pas de phase d’entraînement.

En apprentissage par renforcement, le robot apprend de lui-même par essai/erreur. La simple pression sur le bouton Autonome suffit à commencer l’activité et laisser le robot s’entraîner tout seul.

Une fois le bouton actionné il ne reste plus qu’à observer le robot et le laisser s’entraîner tout seul.

Vous pouvez également constater que le réseau de neurones est beaucoup plus imposant et dispose de plusieurs couches intermédiaires. L’IA par renforcement est une IA beaucoup plus complexe qui fait beaucoup plus de calculs que celle utilisée pour l’apprentissage supervisé.

L’enjeu de cette activité est de comprendre :

  • Comment le robot prend une décision.
  • Comment sa décision évolue au fil de son entraînement.
  • Comment le robot évite les obstacles et se déplace dans l’arène sans toucher les murs.

  1. Comprendre les systèmes de récompenses

La grosse différence entre l’apprentissage supervisé et l’apprentissage par renforcement réside dans le système de récompense. Comme vous pouvez le constater, il y a désormais ces deux blocs « Récompense » et « Niveau » en bas de l’écran. Mais à quoi correspondent-elles ?

Chaque action est attribuée une récompense comprise entre -100 et 100. Le niveau lui correspond à la moyenne de toutes les récompenses.

Avancer = +100

Tourner à droite/gauche = +55

Reculer en tournant = -50

Lorsque les roues se bloquent le robot prend une récompense de -50

Au même titre que nous les humains, le robot aime recevoir des récompenses positives et n’aime pas les récompenses négatives.

Le robot va donc essayer les différentes actions qu’il peut faire, et ce de manière totalement aléatoire au début, puis va vite comprendre que certaines actions lui apportent de meilleures récompenses par rapport à d’autres et il va chercher à les maximiser puis les optimiser. Le niveau représente la moyenne de toutes les récompenses accumulées, il donne une bonne indication du niveau général du robot, c’est-à-dire de sa capacité à se déplacer dans l’arène en évitant les murs. En simulant un grand nombre d'essais, le niveau atteint son pic à environ 80-90. A ce niveau le robot ne reçoit quasiment plus du tout de récompense négative et la moyenne ne fait qu’augmenter à mesure du temps.

Le tout lorsque l’on programme une intelligence artificielle par renforcement est d’appliquer les plus grosses récompenses aux actions que l’on veut qu’il maîtrise.

Par exemple pour une intelligence à qui on voudrait qu’elle apprenne à se garer à une place de parking précise, on la programmait en appliquant une récompense de plus en plus positive à mesure qu’elle se rapproche de la place en question, et de plus en plus négative à mesure qu’elle s’éloigne.

Le système de récompense est la méthode d’apprentissage qui se rapproche le plus de la nôtre. En effet, notre manière d’enseigner fonctionne également avec un système de récompense, pour aider les étudiants à apprendre on a inventé le système de note ; on récompense les élèves qui ont bien appris leur leçon et on punit les autres.

Matériel :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Environnement plat

Durée : 1h30 (2*45 min)

Age : 8 ans et +

Paramétrage :

  • Apprentissage supervisé - Évitement d’obstacles (complexe)
Cursus liés
Activités libres
Activités libres

Paramétrage & sauvegarde

Le logiciel AlphAI vous permet de complètement personnaliser les paramètres selon vos envies et objectifs.

Choisissez un niveau d’autonomie, un algorithme, les capteurs et actions que vous souhaitez utiliser, … et inventez votre propre activité !
Vous pouvez également partir d'une configuration d'exemple puis le personnaliser.

Une fois que vous êtes satisfait des paramètres choisis, vous pouvez les enregistrer sur votre ordinateur afin de les réutiliser plus tard !

Pour tout comprendre aux cojnfigurations du logiciel, suivez ce lien :
lien vers Page ressources - logiciel > Présentation du logiciel > Panneau fenêtre

Vous avez inventé une activité intéressante, ludique et pédagogique ? Nous aimerions beaucoup l’essayer, et pourquoi pas la proposer à tous les utilisateurs du logiciel !
Merci de remplir le formulaire ci-dessous pour nous fournir les informations liés à l’activité que vous avez inventé : 

Formulaire de proposition d’activité : 

  • Votre nom et prénom : 
  • Votre fonction :

  • Titre de l’activité : 
  • Objectif de l’activité : 
  • Age minimum requis pour participer : 
  • Temps nécessaire estimé :

  • Taille et disposition d’arène : 
  • Type de robot utilisé : 
  • Nombre de robots utilisés :

  • Algorithme et apprentissage utilisés : 
  • Capteurs du robot utilisés : 
  • Actions du robot utilisées :

  • Description du déroulement de l’activité : 
  • Fichier de paramètres : 

Upload file (.json)

À téléchargez
Cursus liés
Proposition de cursus
Proposition de cursus

Élémentaire et Collège

(liens)

A1 - Évitement d’obstacle

A2 - Suivi de ligne

A3 - Contrôle caméra

A4 - Évitement d’obstacles complexes

A5 - Apprentissage par renforcement

À téléchargez
Cursus liés
Ressources 1 Spike
Ressources 1 Spike
À téléchargez
Cursus liés
Ressources 2 Spike
Ressources 2 Spike
À téléchargez
Cursus liés
Ressources 3 Spike
Ressources 3 Spike
À téléchargez
Cursus liés