L'idée est de disposer d'un simulateur des déplacements du robot pour la mise au point et les tests de la stratégie.
Le simulateur doit permettre d'être compilé sur MBED et sur PC pour tourner sur le robot (mode HITL) ou sur Labotbox (mode SITL).
Cela implique de n'utiliser que des librairies standard dans le simulateur et aucune librairie spécifique (Qt par exemple).
La stratégie ne doit pas savoir qu'elle s'adresse au simulateur ou à l'asservissement réel.
Une modification de l'architecture du soft actuel est nécessaire :
Créer une classe de base virtuelle pure : AsservBase contenant l'API et la déclaration des données membres.
Créer une classe AsservRobot héritée de AsservBase contenant le code de l'asservissement actuel du robot.
Créer une classe AsservSimu héritée de AsservBase contenant le code de l'asservissement simulé.
Sur MBED, l'utilisateur pourra instancier au choix AsservRobot ou AsservSimu en fonction de ce qu'il veut faire. En fonctionnement normal du robot, c'est AsservRobot qui sera utilisé.
Sur PC, l'utilisateur pourra instancier AsservSimu.
Un plugin Labotbox avec une IHM sera créé pour mettre en oeuvre le simulateur, fixer les paramètres (sportivité, vitesse, cde_min, ...) ou lancer des commandes de déplacement "à la main" (par exemple CommandeDistanceAngle() CommandeXYTeta(), ...)
Les positions X, Y, Teta sorties du simulateur seront redirigées vers des data "PosX_robot", "PosY_robot", et "PosTeta_robot" du DataCenter pour être utilisées par le plugin SimuBot
L'idée est de disposer d'un simulateur des déplacements du robot pour la mise au point et les tests de la stratégie.
Le simulateur doit permettre d'être compilé sur MBED et sur PC pour tourner sur le robot (mode HITL) ou sur Labotbox (mode SITL). Cela implique de n'utiliser que des librairies standard dans le simulateur et aucune librairie spécifique (Qt par exemple). La stratégie ne doit pas savoir qu'elle s'adresse au simulateur ou à l'asservissement réel.
Une modification de l'architecture du soft actuel est nécessaire :
Sur MBED, l'utilisateur pourra instancier au choix AsservRobot ou AsservSimu en fonction de ce qu'il veut faire. En fonctionnement normal du robot, c'est AsservRobot qui sera utilisé. Sur PC, l'utilisateur pourra instancier AsservSimu.
Un plugin Labotbox avec une IHM sera créé pour mettre en oeuvre le simulateur, fixer les paramètres (sportivité, vitesse, cde_min, ...) ou lancer des commandes de déplacement "à la main" (par exemple CommandeDistanceAngle() CommandeXYTeta(), ...) Les positions X, Y, Teta sorties du simulateur seront redirigées vers des data "PosX_robot", "PosY_robot", et "PosTeta_robot" du DataCenter pour être utilisées par le plugin SimuBot