Étape 1 : Caractérisation de l’entraînement de votre robot

Note

Pour des instructions détaillées sur l’utilisation de l’outil FRC-Caractérisation, voir sa documentation dédiée.

Note

Mettre en oeuvre le processus de caractérisation de l’entraînement nécessite suffisamment d’espace pour que le robot se déplace. Assurez-vous d’avoir au moins un tronçon de 10 ft (idéalement plus proche de 20 ft) dans lequel le robot peut se déplacer pendant la routine de caractérisation.

Note

Les données de caractérisation de ce didacticiel ont été généreusement fournies par l’Équipe 5190, qui les a générées dans le cadre d’une démonstration de cette fonctionnalité pour l’atelier 2019 North Carolina State University P2P Workshop.

Avant de suivre une trajectoire avec précision à l’aide d’un robot, il est important d’avoir un modèle précis de la façon dont le robot se déplace en réponse à ses entrées de commandes. La détermination d’un tel modèle se fait à travers un processus appelé « identification du système ». WPILib’s FRC-Caractérisation est un outil qui permet, entre autres choses, de faire l’identification du système d’entraînement.

Collecte des données

Nous commençons par recueillir nos données de caractérisation de l’entraînement.

  1. Générer un projet de robot.

  • Notre exemple de projet utilise le type de « simple » projet. D’autres types de projets (p. ex. Talon et NEO) peuvent être utilisés sans grande différence; cependant, assurez-vous de spécifier correctement les paramètres du robot requis, quel que soit le type de projet!

  • La bibliothèque de trajectoire de WPILib suppose que les mètres sont les unités utilisées universellement pour la distance - en conséquence, assurez-vous que le diamètre de la roue de votre robot est spécifié en mètres!

  1. Déploiement du projet robot.

  2. Exécution de la routine de caractérisation.

Analyse des données

Une fois que la routine de caractérisation a été exécutée et que le fichier de données a été enregistré, il est temps d” ouvrir celui-ci dans le volet d’analyse.

Vérification des diagnostics

Par le guide FRC-Characterization, nous examinons d’abord les diagnostics afin de nous assurer que nos données semblent raisonnables:

Combined Voltage-Domain Plots.

Comme nos données paraissent raisonnablement linéaires et que notre seuil semble être fixé correctement, nous pouvons passer à l’étape suivante.

Enregistrer les gains de commande Feedforward

Note

Les gains de commande prédictive ou Feedforward ne se transfèrent pas, en général, entre les robots. Aussi, n’utilisez pas les gains de ce tutoriel pour votre propre robot.

Nous enregistrons maintenant les gains de commande prédictive calculés par l’outil :

Highlights where to get the kS, kV, kA, and r-squared results from in the center of the window.

Puisque notre diamètre de roue a été spécifié en mètres, nos gains de prédiction sont dans les unités suivantes:

  • kS: Volts

  • kV: Volts * Seconds / Meters

  • kA: Volts * Seconds^2 / Meters

Si vous avez correctement spécifié vos unités, vos gains de commande prédictive seront probablement dans un ordre de grandeur de ceux du présent tutoriel (une exception possible existe pour kA, qui peut être beaucoup plus petite si votre robot est léger). Si ce n’est pas le cas, il est possible que vous ayiez incorrectement spécifié un de vos paramètres du système d’entraînement lors de la génération de votre projet de robot. Pour cela, un bon test est de calculer la valeur « théorique » de kV, qui est de 12 volts divisé par la vitesse libre théorique de votre base pilotable (qui est, à son tour, la vitesse libre du moteur multipliée par la circonférence de la roue divisée par le rapport d’engrenage). Cette valeur devrait être très proche du kV mesuré par l’outil - si ce n’est pas le cas, vous avez probablement fait une erreur quelque part.

Calculer les gains de rétroaction

Note

Les gains de rétroaction ne se transfèrent pas, en général, entre les robots. Aussi, n’utilisez pas les gains de ce tutoriel pour votre propre robot.

À présent nous calculons les gains de rétroaction pour le contrôle PID que nous allons utiliser pour suivre la trajectoire. Le suivi de trajectoire à l’aide du contrôleur RAMSETE de WPILib utilise un contrôle de vitesse en boucle fermée, aussi nous sélectionnons d’abord le mode Velocity dans l’outil de caractérisation :

How to specify velocity mode in the "Loop Type" dropdown.

Puisque nous utiliserons lePIDController WPILib pour notre boucle de vitesse, nous sélectionnons en outre l’option WPILib (2020-) dans le menu déroulant « presets ». Ceci est très important, car les gains de rétroaction ne seront pas dans les unités concordantes si nous ne sélectionnons pas le bon préréglage:

Highlights choosing "WPILib (2020-)" from the "Gain Setting Preset" dropdown.

Enfin, nous calculons et enregistrons les gains de rétroaction pour notre boucle de contrôle. Puisqu’il s’agit d’un contrôleur de vitesse, seul un gain P est requis :

Highlights the calculated kP and kD controller gains.

En supposant que nous avons tout fait correctement, notre gain proportionnel sera en unités de Volts * Seconds / Meters. Ainsi, notre gain calculé signifie que, pour chaque mètre par seconde d’erreur de vitesse, le contrôleur sortira 8,5 volts supplémentaires.