Validation stratégie et asservissement
Depuis plusieurs années CRLG a fait le choix de concevoir sa stratégie avec un logiciel de modélisation de machines à états finis.
Nous avons utilisé pendant plusieurs années le couple Stateflow+embedded coder de Mathworks.
La prise en main était aisée, l’interface intuitive. On s’en tirait bien mais le framework était beaucoup trop lourd pour nos besoins: la génération de code était affreusement longue et l’intégration dans un code artisanal était une gageure. Bref bien pour l’entreprise mais pas pour la coupe de France de Robotique.
Nous avons donc cherché un remplaçant. Après plusieurs tests nous avons choisis Yakindu d’Itemis. Basée sur Eclipse, l’interface était aussi bien foutue que celle de Mathworks, la génération du code se faisait à la volée et l’intégration de notre code maison était parfaite. Nous avons même monté un partenariat avec Itemis et nous les en remercions encore!
Nous étions satisfaits mais encore une fois ce n’était pas adapté pour la coupe. On s’est alors donné un cahier des charges pour refaire from scratch notre machine à états finis:
- Travailler à plusieurs personnes (pas besoin de merge, et surtout à 3h du mat le dernier jour de la coupe)
- Minimiser le temps de mise en œuvre (copier, coller, code à la main possible)
- reprendre une stratégie prototypée
- pouvoir tester tout ou partie de la stratégie (soit en simu, soit en réel)
- ne pas avoir de licence à renouveler chaque année
- permettre de générer automatiquement une séquence à partir d’un outil pour intégration dans une stratégie
- maximiser le code commun entre les robots
- une insfrastructure facilement utilisable pour un non spécialiste du codage
Un remplacement de Yakindu par une autre solution nous permettrait donc de gagner du temps à la coupe pour se concentrer sur d’autres tâches et minimiser les essais et les erreurs.
Après quelques mois de développement nous avons un outil plutôt pas mal. Le coeur du système (Modelia) est intégré à notre code (accessible sur github : https://github.com/CRLG/GROSBOT_MBED).
Deux fonctionnalités vont beaucoup nous aider cette année. Tout d’abord la génération de code à l’aide de notre logiciel de prototypage. Testé c’est codé!
L’autre fonctionnalité de fou est notre outils de simulation (Simulia), intégrant le même code qui sera embraqué ainsi que notre code d’asservissement, on va pouvoir tout tester visuellement. On peut même voir les défauts de réglage de l’asservissement! 😀