Au commencement :
Suite à l'article paru sur le site arduiblog, j'ai voulu tester la fonction suiveur de ligne de la caméra huskylens de chez DFRobot.
Le logiciel mind+ buggant, je me suis rabattu sur le logiciel makecode microbit.
Contrairement au mois de juin où l'extension huskylens ne fonctionnait pas, cette fois-ci pas de mauvaise surprise, tout fonctionne!
Je charge le programme (https://makecode.microbit.org/_cCHDqPWCigEg) dans la carte microbit.
1er test avec la piste fournie par DFRobot
Le robot étant livré avec une piste, je décide de la tester avec ce programme.
Le résultat n'est pas très probant, le robot suit la trajectoire mais ne se place pas sur la ligne. Je suis un peu déçu. Pourquoi mettre de l'IA pour obtenir un résultat moindre? Quels sont les avantages par rapport à un robot suiveur de lignes?
Je réflechis à le mettre dans d'autres situations et à observer son comportement.
Préparatifs
Je décide de changer de piste et à l'aide d'une planche de contreplaqué, j'en réalise une, plus longue (145 sur 45 cm ). Je colle dessus un revêtement blanc auto-adhésif sur lesquel je peux écrire et effacer librement (eau+chiffon) grâce aux crayons woody.
Voyant le robot, mes enfants de 6 et 8 ans décident de participer et m'accompagnent dans les tests en me proposant des idées et en dessinant les pistes.
Tous les préparatifs du robot et de la caméra sont expliqués sur le site arduiblog.
Situation 1 : Que se passe-t-il si la ligne tracée au crayon est fine ?
Protocole : Nous avons tracé sur la piste un trait noir à l'aide d'un woody. Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : le robot suit la ligne.
Conclusion : Contrairement à un suiveur de ligne où la largeur de la ligne est un critère déterminant, le robot arrive à la suivre sans problème.
Situation 2 : Que se passe-t-il si la ligne est d'une autre couleur?
Protocole : Nous avons tracé sur la piste une ligne continue de différentes couleurs ( marron bleu, rouge, orange, beige) à l'aide des woody. Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : le robot suit la ligne, la couleur beige a parfois du mal a être lue et le robot s'arrête
Conclusion : Contrairement à un suiveur de ligne où la couleur de la ligne est un critère déterminant, le robot arrive à suivre quasiment toutes les couleurs.
Situation 3 : Que se passe-t-il si la ligne est courbée?
Protocole : Nous avons tracé sur la piste un courbe noire à l'aide d'un woody. Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : le robot suit la ligne et coupe les virages.
Conclusion : Contrairement à un suiveur de ligne le robot peut anticiper les virages.
Situation 4 : Que se passe-t-il si la ligne est brisée?
Protocole : Nous avons tracé sur la piste une ligne brisée noire à l'aide d'un woody. Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : le robot suit la ligne et coupe les virages.
Conclusion : Contrairement à un suiveur de ligne, le robot anticipe les changement de directions.
Situation 5 :Que se passe-t-il s'il y a plein de chemins?
Protocole : Nous avons tracé sur la piste plusieurs traits noirs de façon aléatoire à l'aide d'un woody. Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : le robot suit la ligne.
Conclusion : Le robot arrive à suivre une trajectoire sans être perturbé.
Situation 6 : Que se passe-t-il si la ligne est discontinue?
Protocole : Nous avons tracé sur la piste un trait noir, puis 2 autres traits non joints à l'aide d'un woody.
Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : Malgré l'absence de ligne, le robot continue et suit la ligne.
Conclusion : Contrairement à un suiveur de ligne où la continuité est un critère déterminant, le robot arrive à la suivre sans problème.
Protocole : Nous avons tracé sur la piste un trait noir à l'aide d'un woody. Nous avons en suite effacé le trait à plusieurs endroits.
Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : malgré l'absence du trait à plusieurs reprises le robot suit la ligne.
Conclusion : le robot n'a pas besoin d'avoir une ligne continue pour suivre une trajectoire.
Protocole : Nous avons réduit le nombre de traits.
Nous avons placé la piste de manière à n'avoir aucun reflet.
Résultat : le robot suit la ligne à condition qu'elle soit dans son champs de vision.
Conclusion : le robot n'a pas besoin d'avoir une ligne continue pour suivre une trajectoire.
Conclusion :
Finalement ce que j'ai trouvé le plus intéressant dans ce travail est la réflexion menée pour trouver des situations, les enfants ont toujours des idées intéressantes. Les situations présentées ne sont pas exaustives. Il doit encore y en exister d'autres intéressantes.
Le choix de la piste permet aussi une autre configuration, le fait qu'elle soit effaçable permet de tester facilement et rapidement ses idées.
Ces diverses situations ont permis de mettre en avant les avantages de la fonction reconnaissance de ligne du robot Huskeylens par rapport à un suiveur de ligne .
Il peut notamment :
- suivre des lignes de n'importe quelle largeur.
- suivre des lignes courbées, brisées et anticiper les virages.
- suivre des lignes de quasiment toutes les couleurs (à conditons d'avoir un contraste suffisant avec la piste)
- suivre des lignes discontinues à condition qu'elles restent dans le champs de la caméra.