导入路径编织器 JSON

“trajectory yutil”类可用于将PathWeaver JSON导入机器人代码中。本文将介绍导入轨迹。请访问:ref:end-to-end trajectory tutorial <docs/software/pathplanning/trajectory-tutorial/index:Trajectory Tutorial> for more information on following the trajectory.

TrajectoryUtil 中的 fromPathweaverJson(Java)/ FromPathweaverJson(C ++)静态方式可用于根据 roboRIO 文件系统上存储的 JSON 文件创建轨迹。

重要

为了与模拟器GUI中的’ ‘ Field2d ‘ ‘视图兼容,导出JSON的坐标已经更改。之前(2021年之前),y坐标的范围是从-27英尺到0英尺,而现在,y坐标的范围是从0英尺到27英尺(0在屏幕底部,27英尺在屏幕顶部)。这应该不会影响正确的队伍:裁判:“重新设置他们的里程计到轨迹的起始姿势。<docs/software/pathplanning/trajectory-tutorial/creating-following-trajectory:Creating the RamseteCommand>` before path following.

备注

路径编织者将 JSON 文件放置在 src/main/deploy/paths  中,该文件将自动放置在 roboRIO 文件系统上的 /home/lvuser/deploy/paths 中,并可以使用 getDeployDirectory 进行访问,如下所示。

String trajectoryJSON = "paths/YourPath.wpilib.json";
Trajectory trajectory = new Trajectory();

@Override
public void robotInit() {
   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;

void Robot::RobotInit() {
   fs::path deployDirectory = frc::filesystem::GetDeployDirectory();
   deployDirectory = deployDirectory / "paths" / "YourPath.wpilib.json";
   trajectory = frc::TrajectoryUtil::FromPathweaverJson(deployDirectory.string());
}

在上面的示例中,”YourPath`” 应该替换为您的路径名。

警告

从Java文件中加载PathWeaver JSON可能需要多次循环迭代,所以强烈建议机器人在启动时加载这些路径。