Introduction à la caractérisation des robots

Les outils de caractérisation se composent d’une application python qui s’exécute sur le PC de l’utilisateur et d’un code de robot correspondant qui s’exécute sur le robot de l’utilisateur. L’application PC enverra des signaux de commande au robot via les NetworkTables, tandis que le robot renvoie les données à l’application. L’application traite ensuite les données et détermine les paramètres de caractérisation du mécanisme du robot de l’utilisateur, ainsi que la production de tracés de diagnostic. Les données peuvent être enregistrées (au format JSON) pour une utilisation future, si vous le souhaitez.

En quoi consiste la caractérisation?

« La caractérisation » - ou, de façon plus formelle, l’identification de système -est le processus de détermination d’un modèle mathématique pour le comportement d’un système par l’analyse statistique de ses entrées et sorties.

En FRC, le système le plus commun que nous sommes intéressés à caractériser est le moteur DC à aimant permanent. En particulier, nous sommes intéressés à déterminer quelle entrée du moteur (c.-à-d. tension du contrôleur de moteur) est nécessaire pour produire nos sorties souhaitées (c.-à-d. vitesse et accélération du moteur).

Heureusement, il n’est pas si difficile de le faire. Un moteur DC à aimant permanent (sans charge autre que la friction et l’inertie) obéira à l’équation « tension-équilibrée » suivante (pour plus d’informations, voir cet article):

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

\(V\) est la tension appliquée, \(d\) est le déplacement (position) du moteur, \(\dot{d}\) est la vitesse, et \(\ddot{d}\) est son accélération (dans cette notation le « point » représente traditionnellement la dérivée par rapport au temps).

Heuristiquement, nous pouvons interpréter les coefficients dans l’équation ci-dessus comme suit:

kS est la tension nécessaire pour surmonter la friction statique du moteur, ou en d’autres termes pour à peine le faire bouger; il s’avère que cette friction statique (parce qu’elle est, bel et bien, statique) a le même effet indépendamment de la vitesse ou de l’accélération. Autrement dit, quelle que soit votre vitesse de fonctionnement ou avec quelle rapidité vous accélérez, une partie constante de la tension que vous avez appliquée à votre moteur (selon l’assemblage du mécanisme spécifique à caractériser) servira à surmonter la friction statique dans vos engrenages, roulements, etc; cette valeur est votre kS. Notez la présence de la fonction signe, parce que la force de friction s’oppose toujours à la direction de mouvement.

kV décrit la quantité de tension nécessaire pour se maintenir (ou « croisière ») à une vitesse constante donnée tout en surmontant la résistance électromagnétique dans le moteur et toute friction supplémentaire qui augmente avec la vitesse (connu sous le nom de traînée visqueuse). La relation entre la vitesse et la tension (à une accélération constante) est presque entièrement linéaire (avec les composants FRC®, de toute façon) en raison de la manière dont fonctionnent les moteurs DC à aimant permanent.

kA décrit la tension nécessaire pour induire une accélération donnée dans l’arbre moteur. Comme pour kV, la relation entre la tension et l’accélération (à vitesse constante) est quasiment parfaitement linéaire pour les composants FRC.

Une fois que ces coefficients ont été déterminés (accompli in par une régression linéaire multiple), nous pouvons alors prendre une vitesse et une accélération souhaitées pour le moteur et calculer la tension qui doit être appliquée pour les produire. Ceci est très utile - non seulement pour, disons, suivre les profils de mouvement, mais aussi pour rendre les mécanismes plus contrôlables dans le contrôle en boucle ouverte, parce que vos entrées joystick correspondront plus étroitement au mouvement du mécanisme réel.

Certains des outils de cette suite logicielle introduisent des termes supplémentaires dans l’équation ci-dessus pour tenir compte des différences connues par rapport au cas simple décrit ci-dessus - les détails pour chaque outil peuvent être trouvés ci-dessous:

Outils de caractérisation inclus

Note

De nombreux autres types de mécanismes peuvent être caractérisés par l’adaptation du code existant dans cette logithèque.

La suite logicielle de caractérisation de robot prend actuellement en charge la caractérisation pour:

  • Configurations de simples moteurs

  • Bases pilotables

  • Bras

  • Élevateurs

Caractérisation d’un simple moteur

L’outil de caractérisation d’un simple moteur détermine les paramètres les mieux adaptés à l’équation :

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

où:\(V\) est la tension appliquée,: \(d\) est le déplacement (position) du variateur, \(\dot{d}\) est sa vitesse, et \(\ddot{d}\) est son accélération. Il s’agit du modèle pour un moteur à courant continu à aimant permanent sans charge autre que le frottement et l’inertie, comme mentionné ci-dessus, et ceci est un modèle précis pour les volants d’inertie, les tourelles et les curseurs linéaires horizontaux.

Caractérisation de la base pilotable

L’outil de caractérisation de la base pilotable détermine les paramètres les mieux adaptés à l’équation :

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

\(V\) est la tension appliquée, \(d\) est le déplacement (position) de l’entraînement, \(\dot{d}\) est sa vitesse, et \(\ddot{d}\) est son accélération. Il s’agit de la même équation de modélisation que celle utilisée dans la caractérisation du moteur simple - cependant, l’outil de caractérisation de la base pilotable est conçu spécifiquement pour fonctionner sur les entraînements différentiels, et caractérisera indépendamment chaque côté de l’entraînement au besoin.

L’outil de caractérisation de la base pilotable peut également déterminer la voie efficace de votre robot à l’aide d’un gyro. Plus d’informations sur la façon d’exécuter la caractérisation sont disponibles dans l’article track width characterization.

Caractérisation du bras

L’outil de caractérisation du bras détermine les paramètres les mieux adaptés à l’équation :

\[V = kS \cdot sgn(\dot{\theta}) + kCos \cdot cos(\theta) + kV \cdot \dot{\theta} + kA \cdot \ddot{\theta}\]

\(V\) est la tension appliquée, \(\theta\) est le déplacement angulaire (position) du bras, \(\dot{\theta}\) est la vitesse angulaire, et \(\ddot{\theta}\) est son accélération angulaire. Le terme en cosinus (\(kCos\)) est ajouté pour parfaitement tenir compte de l’effet de la gravité.

Caractérisation de l’élevateur

L’outil de caractérisation de l’élevateur détermine les paramètres les mieux adaptés à l’équation :

\[V = kG + kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

\(V\) est la tension appliquée, \(d\) est le déplacement (position) de l’entraînement, \(\dot{d}\) est sa vitesse, et \(\ddot{d}\) est son accélération. Le terme constant (\(kG\)) est ajouté pour parfaitement tenir compte de l’effet de la gravité.

Conditions préalables

Pour utiliser la suite logicielle de caractérisation de robot, vous devez avoir Python 3.7 installé sur votre ordinateur, ainsi que les outils logiciels de programmation WPILib standard.

Python 3.7

Avertissement

N’installez pas Python à partir du Microsoft Store. S’il vous plaît, utilisez plutôt le lien ci-dessus pour télécharger et installer Python.

Installation et lancement de la suite logicielle

Pour installer la suite logicielle Robot Characterization, ouvrez une console et entrez la commande suivante

pip install frc-characterization

La suite logicielle, et toutes ses dépendances, devraient être automatiquement téléchargées et installées. Si vous utilisez une machine Windows et que la commande pip n’est pas reconnue, assurez-vous que votre dossier de scripts Python a été ajouté à la variable d’environnement PATH.

Note

Si vous êtes sous Ubuntu, vous devrez manuellement installer tkinter avec sudo apt-get install python3-tk. Vous devrez également utiliser la commande pip3 au lieu de pip puisque pip se réfère à Python 2 sous les distributions Ubuntu.

Si vous avez déjà la suite logicielle installée, assurez-vous de la mettre à jour régulièrement pour tier profit des corrections d’erreurs et de l’ajout de nouvelles fonctionnalités:

pip install --upgrade frc-characterization

Note

Si vous souhaitez utiliser la version bêta de cet outil, vous devez, à la place, taper pip install --pre --upgrade frc-characterization

Une fois que la suite logicielle a été installée, lancez un nouveau projet de caractérisation de l’entraînement pour vous assurer qu’elle fonctionne en exécutant la commande suivante à partir de powershell ou d’une fenêtre du terminal.

frc-characterization drive new

Le nouveau projet GUI devrait s’ouvrir momentanément. Pour lancer d’autres projets de caractérisation, il suffit de remplacer drive par le type de caractérisation souhaité (arm, elevator, simple-motor).

Bien que la nouvelle interface utilisateur graphique du projet dispose de boutons pour lancer à la fois l’outil de journalisation et l’outil d’analyse, ceux-ci peuvent également être lancés directement à partir de l’Interface de Ligne de Commande remplaçant new par logger ou analyzer.

Important

Il est fortement recommandé d’utiliser le nouveau projet GUI pour lancer les outils d’enregistrement et d’analyse pour des conversions d’unités plus efficaces plutôt que de lancer l’enregistreur et l’analyseur à partir de l’Interface ligne de commande.

Pour plus d’informations sur l’utilisation de l’Interface de Ligne de Commande , entrez frc-characterization -h.