Importation d’un fichier JSON PathWeaver
La classe TrajectoryUtil
peut être utilisée pour importer un fichier JSON PathWeaver dans le code robot et permettre à ce dernier de suivre la trajectoire générée. Dans cet article, nous allons voir comment cette importation s’effectue. Veuillez consulter la section Didacticiel sur la pratique des trajectoires pour plus d’informations sur le suivi de trajectoires.
Les méthodes statiques fromPathweaverJson
(Java) / FromPathweaverJson
(C++) de la classe TrajectoryUtil
peuvent être utilisées pour créer une trajectoire à partir d’un fichier JSON importé de PathWeaver et intégré dans le code du robot.
Important
Pour être compatible avec la vue Field2d
dans l’interface graphique du simulateur, les coordonnées du JSON exporté ont changé. Auparavant (avant 2021), la plage de la coordonnée y était de -27 pieds à 0 pieds alors que maintenant, la plage de la coordonnée y est de 0 pieds à 27 pieds (0 étant au bas de l’écran et 27 pieds étant en haut). Cela ne devrait pas affecter les équipes qui ont correctement réinitialiser leur odométrie à la pose de départ de la trajectoire avant de suivre la trajectoire.
Note
PathWeaver place les fichiers JSON dans src/main/deploy/paths
qui seront automatiquement placés sur le système de fichiers du roboRIO dans /home/lvuser/deploy/paths
et accessibles à l’aide de getDeployDirectory comme indiqué ci-dessous.
String trajectoryJSON = "paths/YourPath.wpilib.json";
Trajectory trajectory = new Trajectory();
public Robot() {
try {
Path trajectoryPath = Filesystem.getDeployDirectory().toPath().resolve(trajectoryJSON);
trajectory = TrajectoryUtil.fromPathweaverJson(trajectoryPath);
} catch (IOException ex) {
DriverStation.reportError("Unable to open trajectory: " + trajectoryJSON, ex.getStackTrace());
}
}
#include <frc/Filesystem.h>
#include <frc/trajectory/TrajectoryUtil.h>
#include <wpi/fs.h>
frc::Trajectory trajectory;
Robot::Robot()) {
fs::path deployDirectory = frc::filesystem::GetDeployDirectory();
deployDirectory = deployDirectory / "paths" / "YourPath.wpilib.json";
trajectory = frc::TrajectoryUtil::FromPathweaverJson(deployDirectory.string());
}
Dans les exemples ci-dessus, YourPath
doit être remplacé par le nom de votre chemin.
Avertissement
Chargement d’une trajectoire PathWeaver JSON à partir d’un fichier en Java peut prendre plus d’une boucle d’itération, il est donc fortement recommandé que le robot charge ces trajectoires au démarrage.