Étape 1 : Caractérisation de l’entraînement de votre robot
Note
Pour des instructions détaillées sur l’utilisation de l’outil d’identification du système, consultez sa documentation dédiée.
Note
Le processus d’identification du lecteur nécessite suffisamment d’espace pour que le robot puisse conduire. Assurez-vous d’avoir au moins un espace de 10” (idéalement plus proche de 20”) dans lequel le robot peut conduire pendant la routine d’identification.
Note
Les données d’identification 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é lors de l’atelier P2P 2019 de la North Carolina State University.
Avant de suivre avec précision une trajectoire avec 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 commande. La détermination d’un tel modèle est un processus appelé « identification du système ». L’outil d’identification du système de WPILib peut déterminer avec précision un tel modèle.
Collecte des données
Nous commençons par rassembler nos données d’identification de disque.
Analyse des données
Une fois la routine d’identification exécutée et le fichier de données enregistré, il est temps de l’ouvrir dans le volet d’analyse.
Vérification des diagnostics
Selon le guide d’identification du système, nous examinons d’abord les diagnostics pour nous assurer que nos données semblent raisonnables :

Comme nos données semblent raisonnablement linéaires et que les mesures d’ajustement se situent dans des paramètres acceptables, nous passons à 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 :

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
: VoltskV
: Volts * Seconds / MeterskA
: 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.
Nous allons maintenant calculer les gains de rétroaction pour le contrôle PID que nous utiliserons pour suivre le chemin. Le suivi de trajectoire avec le contrôleur RAMSETE de WPILib utilise le contrôle en boucle fermée de la vitesse, nous sélectionnons donc d’abord le mode Velocity
dans l’outil d’identification :

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:

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 :

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