# Contrôleur de Petite Machine à Bois (PMB™) ## Utilisation Pour lancer le script, d'abord lancer le simulateur dans un terminal, puis, dans un second terminal lancer le programme `main`. Dans `main` on met les instructions gcode, qui peuvent être converties depuis un fichier svg par le programme `svgtroppagcode.py`. Ce dernier utilisant la bibliothèque `toppra`, il faut une version compatible `numpy<=1.21.6`, version de numpy qui n'est installable que pour des versions de python pré 3.6, ce qui rend le code contrôlleur très complexe à utiliser... N'hésitez pas à revenir vers nous si besoin. ## Fonctionnement Le programme fonctionne de la manière suivante: - On crée une socket par laquelle vont transiter les informations. - On dispose d'un contrôleur "local" et d'un simulateur "distant" qui dispose d'un modèle physique plus réaliste que notre contrôleur. - En se basant sur le GCode en entrée, le contrôleur calcule les vitesses de commande à envoyer aux deux moteurs de la PMB™ et les envoie à la socket. - Le simulateur intègre alors les vitesses des moteurs pour obtenir une position "réelle" (en réalité ce sera directement des capteurs sur la PMB™) et les envoie à la socket. - Le contrôleur va alors modifier les vitesses de commande pour s'adapter aux positions "mesurées". ### Contrôle de l'Entrée Pour l'entrée, on propose deux méthodes: - Une qui traduit fidèlement un fichier .svg sans prendre en compte aucune contrainte. - Une qui échantillonne des points sur des fichiers .svg et reparamétrise les courbes en tenant en compte de contraintes de vitesses maximales et d'accélération maximale. Cette seconde méthode à le grand défaut de linéariser les courbes, avec une précision fortement arbitraire.