导入路径编织器 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可能需要多次循环迭代,所以强烈建议机器人在启动时加载这些路径。