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

Note

For detailed instructions on using the System Identification tool, see its dedicated documentation.

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.

  1. Configure and Deploy your robot project.

  2. Run the identification Routine.

Analyse des données

Once the identification routine has been run and the data file has been saved, it is time to open it in the analysis pane.

Vérification des diagnostics

Per the system identification guide, we first view the diagnostics to ensure that our data look reasonable:

Panneau de diagnostic SysId.

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 :

Met en surbrillance l’emplacement à partir duquel on peut obtenir les résultats kS, kV, kA et r au carré au centre de la fenêtre.

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.

We now calculate the feedback gains for the PID control that we will use to follow the path. Trajectory following with WPILib’s RAMSETE controller uses velocity closed-loop control, so we first select Velocity mode in the identification tool:

Comment spécifier le mode vitesse dans la liste déroulante  "Loop Type".

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:

Met en évidence le choix de "WPILib (2020-)" dans la liste déroulante "Gain Setting Preset".

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 :

Met en évidence les gains calculés des paramètres kP et kD du contrôleur.

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.