Découvrez nos
ressources
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
