Commandes et sous-systèmes

Lorsque vous utilisez le framework basé sur des commandes, Shuffleboard facilite la compréhension de ce que fait le robot en affichant l’état des différentes commandes et sous-systèmes en temps réel.

Affichage des sous-systèmes

Pour voir l’état d’un sous-système pendant que le robot fonctionne en mode autonome ou téléopéré, c’est-à-dire quelle est sa commande par défaut et quelle commande utilise actuellement ce sous-système, envoyez une instance de sous-système à Shuffleboard:

SmartDashboard.putData(subsystem-reference);

Shuffleboard affichera le nom du sous-système, la commande par défaut associée à ce sous-système et la commande en cours d’exécution. Dans cet exemple, la commande par défaut pour le sous-système Elevator est appelée AutonomousCommand et c’est également la commande actuelle qui utilise le sous-système Elevator.

../../../../../_images/commands-subsystems-1.png

Sous-systèmes en mode test

En mode Test (Test/Enable sur la station de pilotage), des sous-systèmes peuvent être affichés dans l’onglet LiveWindow avec les capteurs et actionneurs du sous-système. C’est idéal pour vérifier que les capteurs fonctionnent en voyant les valeurs qu’ils renvoient. De plus, les actionneurs peuvent être commandés. Par exemple, les moteurs peuvent être actionnés à l’aide de curseurs pour définir leur vitesse et leur direction commandées. Pour les sous-systèmes PID, les constantes P, I, D et F sont affichées avec la valeur cible et un contrôle d’activation. Ceci est utile pour régler les sous-systèmes PID en ajustant les constantes, en insérant une valeur cible et en activant le contrôleur PID intégré. Ensuite, la réponse du mécanisme peut être observée. Ce cycle (modifier les paramètres, activer et observer) peut être répété jusqu’à ce qu’un ensemble raisonnable de paramètres soit trouvé.

../../../../../_images/commands-subsystems-2.png

Plus d’informations sur le réglage des sous-systèmes PID peuvent être trouvées ici. L’utilisation de RobotBuilder générera automatiquement le code pour afficher le sous-système en mode Test. Le code nécessaire pour afficher les sous-systèmes est indiqué ci-dessous, où « subsystem-name » est une chaîne de caractères contenant le nom du sous-système:

setName(subsystem-name);

Affichage des commandes

L’utilisation de commandes et de sous-systèmes crée des programmes de robot très modulaires qui peuvent facilement être testés et modifiés. Cela est dû en partie au fait que les commandes peuvent être écrites en toute indépendance des autres commandes et peuvent donc être exécutées facilement à partir de Shuffleboard. Pour écrire une commande dans Shuffleboard, utilisez la méthode SmartDashboard.putData comme indiqué ici:

SmartDashboard.putData("ElevatorMove: up", new ElevatorMove(2.7));

Shuffleboard affichera le nom de la commande et un bouton pour exécuter la commande. De cette façon, les commandes individuelles et les groupes de commandes peuvent facilement être testés sans avoir besoin de code de test spécial dans un programme de robot. Dans l’image ci-dessous, il y a un certain nombre de commandes contenues dans une liste Shuffleboard. Appuyez une fois sur le bouton pour exécuter la commande et appuyez à nouveau pour l’arrêter. Pour utiliser cette fonction, le robot doit être activé en mode téléop.

../../../../../_images/commands-subsystems-3.png