https://www.acsysteme.com/wp-content/uploads/2021/07/ressource-Robot-Lego-personnage-Lego.jpg

Comment faire des algorithmes avec des Lego® ?

5 000 Lego® noirs et blancs, 500 billes de couleur, 2 briques Lego Mindstorms, 150 h et 4 cerveaux pour créer un algorithme de contrôle-commande.

Certains pourraient trouver la démarche de conception Model Based Design particulière mais c’est pourtant l’une de nos manières d’initier des projets de conception d’algorithmes. Explication.

Depuis 20 ans, nous avons réalisé de nombreux projets pour nos clients, et nous avons enfin l’occasion de vous présenter une illustration de notre savoir-faire au cours de nos salons.

En effet ce démonstrateur d’engin électronique et autonome de livraison illustre parfaitement la démarche de conception basée sur les modèles (model-based design – MBD) utilisée au cours des projets de conception d’algorithmes de contrôle-commande. Ici, nous avons travaillé dans l’environnement Matlab / Simulink / Stateflow de la société Mathworks® et avec la plateforme Lego Mindstorms de Lego®.

Maquette et algorithmes

Afin de mettre en avant notre savoir-faire en matière de modélisation et de conception d’algorithmes de contrôle-commande, nous avons développé une maquette de robot électrique à guidage automatique. Cet engin autonome a pour mission la livraison et le tri de billes de couleurs depuis un distributeur jusqu’aux emplacements de stockages dédiés, tout en gérant son autonomie de déplacement en fonction de la capacité de sa batterie. (Démonstration vidéo)

Les éléments de la maquette

Cette maquette s’appuie physiquement sur plusieurs éléments :

  • un espace de déplacement composé d’éléments Lego® délimitant sa zone d’action et un tracé au sol permettant au robot de se repérer,
  • un robot autonome qui récupère une bille, analyse sa couleur puis l’envoie dans le stock correspondant à cette couleur en suivant la piste noire au sol,
  • un distributeur qui délivre une bille de couleur aléatoirement à chaque fois que le robot se présente à lui,
  • une télécommande qui permet à un utilisateur d’interagir avec le robot (demander la livraison d’une bille de couleur, démarrer, s’arrêter…),
  • un écran qui permet d’afficher en temps réel les informations envoyées par le robot (couleur de la bille saisie, prise en compte d’une demande utilisateur, état batterie, diagnostic…).

La plateforme pour le code

Avec l’environnement Lego Mindstorms, nous disposons rapidement et simplement d’une plateforme pour embarquer notre code : une brique programmable EV3, un capteur de couleur, un capteur d’intensité, un capteur de butée, un émetteur / récepteur Wifi, un émetteur / récepteur infrarouge et des actionneurs pour faire avancer le robot et animer la pince.

https://www.acsysteme.com/wp-content/uploads/2021/07/ressource-Lego-Gireg-travaille.jpg

Fig 1 : flash code embarqué

https://www.acsysteme.com/wp-content/uploads/2021/07/ressource-Lego-Demonstrateur-Lego-complet.jpg

FIg 2 : maquette

https://www.acsysteme.com/wp-content/uploads/2021/07/ressource-Lego-Robot-Lego.jpg

Fig 3 : robot

Les outils utilisés

De l’autre côté, nous disposons de notre expertise en développement de lois de commande et des licences de Mathworks® pour réaliser nos développements :

  • Matlab / Simulink : développement des algorithmes de contrôle-commande pour les déplacements du robot,
  • Stateflow : gestion de l’état du robot (attente d’une bille, identification de sa couleur, livraison, retour au distributeur…),
  • AppDesigner : conception de l’interface permettant d’afficher les informations issues du robot en temps réel (suivi des stocks de billes, niveau de batterie, vitesse du véhicule, distance parcourue ou encore informations de diagnostic…),
  • Simulink Coder : intégration du code dans la brique Lego®,
  • Matlab et Simulink Support Package for Lego Mindstorms EV3 : interaction avec le robot depuis le code Simulink généré.
https://www.acsysteme.com/wp-content/uploads/2021/07/ressource-Lego-Stateflow.png

Fig 4 : Stateflow

https://www.acsysteme.com/wp-content/uploads/2021/07/ressource-Lego-Interface-demonstrateur.png

Fig 5 : interface homme-machine

Déclinaison des fonctionnalités

Dans une démarche d’intégration continue l’ensemble des fonctionnalités du robot ont été déclinées en exigences puis intégrées étape par étape dans les algorithmes : suivi de piste, prise de décision sur critère de couleur, demande de livraison, détections d’évènements (défaut, choc…), diagnostics, interface graphique… Par exemple, le suivi de ligne est assuré par le détecteur d’intensité situé à l’avant du robot. Un PID régule l’intensité face au capteur en le maintenant à la limite blanc / noir en boucle fermé. Les intersections sont traversées en passant la régulation en boucle ouverte et en maintenant une intensité constante au niveau des moteurs des chenilles.

Des techniques transposables du Lego® à vos industries

Cette preuve de concept illustre une partie des compétences d’Acsystème comme la modélisation de systèmes physiques, la conception de contrôle-commande, la génération de code embarquée, l’implémentation sur hardware ou encore le développement d’interfaces graphiques. L’univers Lego® et l’environnement Matlab® ont permis à nos équipes de créer rapidement un démonstrateur physique, et l’ensemble des techniques utilisées est parfaitement transposable à tout système à automatiser.

Ensemble, donnons de l’intelligence à vos systèmes !

Gireg Lanoë et Arthur Roué, mars 2021.

Partager cet article :