Files
allwpilib/wpilibjExamples/src/main/java/org/wpilib/examples/examples.json

553 lines
14 KiB
JSON
Raw Normal View History

[
{
"name": "Getting Started",
"description": "A differential-drive robot with split-stick Xbox arcade drive with a simple time-based autonomous.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot"
],
"foldername": "gettingstarted",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
2019-08-05 11:34:02 +08:00
{
"name": "Encoder",
"description": "View values from a quadrature encoder.",
2019-08-05 11:34:02 +08:00
"tags": [
2023-01-22 01:24:10 +02:00
"Hardware",
"Encoder",
"SmartDashboard"
2019-08-05 11:34:02 +08:00
],
"foldername": "encoder",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
2019-08-05 11:34:02 +08:00
},
2019-08-16 22:03:44 -07:00
{
"name": "Elevator with trapezoid profiled PID",
"description": "Reach elevator position setpoints with trapezoid profiles and smart motor controller PID.",
2019-08-16 22:03:44 -07:00
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Elevator",
"Trapezoid Profile",
"Smart Motor Controller",
2019-08-16 22:03:44 -07:00
"Joystick"
],
"foldername": "elevatortrapezoidprofile",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
2019-08-16 22:03:44 -07:00
},
{
"name": "Elevator with exponential profile",
"description": "Reach elevator position setpoints with exponential profiles and smart motor controller PID.",
"tags": [
"Basic Robot",
"Elevator",
"Exponential Profile",
"Smart Motor Controller",
"Joystick"
],
"foldername": "elevatorexponentialprofile",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
2019-08-14 22:18:00 -07:00
{
"name": "Elevator with profiled PID controller",
"description": "Reach elevator position setpoints with an encoder and profiled PID control.",
2019-08-14 22:18:00 -07:00
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Elevator",
"Profiled PID",
2019-08-14 22:18:00 -07:00
"Joystick"
],
"foldername": "elevatorprofiledpid",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
2019-08-14 22:18:00 -07:00
},
{
"name": "Gyro",
"description": "Drive a differential drive straight with a gyro sensor.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Differential Drive",
"PID",
"Gyro",
"Joystick"
],
"foldername": "gyro",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "Mecanum Drive",
"description": "Drive a mecanum drivetrain using field-oriented controls with a joystick.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Mecanum Drive",
"Gyro",
"Joystick"
],
"foldername": "mecanumdrive",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
2023-01-16 18:26:46 +02:00
{
"name": "Mechanism2d",
"description": "Display mechanism states on a dashboard with Mechanism2d.",
2023-01-16 18:26:46 +02:00
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Elevator",
"Arm",
"Analog",
"Joystick",
"SmartDashboard",
2023-01-16 18:26:46 +02:00
"Mechanism2d"
],
"foldername": "mechanism2d",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "'Traditional' Hatchbot",
"description": "A fully-functional Commandv2 hatchbot for the 2019 game, written in the 'traditional' style, i.e. commands are given their own classes.",
"tags": [
2023-01-22 01:24:10 +02:00
"Complete Robot",
"Commandv2",
2023-01-22 01:24:10 +02:00
"Differential Drive",
"Encoder",
"Pneumatics",
"Sendable",
"DataLog",
"Gamepad"
],
"foldername": "hatchbottraditional",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "'Inlined' Hatchbot",
"description": "A fully-functional Commandv2 hatchbot for the 2019 game, written in the 'inlined' style, i.e. many commands are defined inline with lambdas.",
"tags": [
2023-01-22 01:24:10 +02:00
"Complete Robot",
"Commandv2",
2023-01-22 01:24:10 +02:00
"Differential Drive",
"Encoder",
"Pneumatics",
"Sendable",
"DataLog",
"Gamepad"
],
"foldername": "hatchbotinlined",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "Hatchbot Commandsv3",
"description": "A fully-functional Commandv3 hatchbot for the 2019 game, written in the 'inlined' style, i.e. many commands are defined inline with lambdas.",
"tags": [
"Complete Robot",
"Commandv3",
"Differential Drive",
"Encoder",
"Pneumatics",
"Sendable",
"DataLog",
"Gamepad"
],
"foldername": "hatchbotcmdv3",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 3
},
{
"name": "Rapid React Command Bot",
"description": "A fully-functional Commandv2 fender bot for the 2022 game, written in the 'inlined' style, i.e. many commands are defined inline with lambdas.",
"tags": [
2023-01-22 01:24:10 +02:00
"Complete Robot",
"Commandv2",
2023-01-22 01:24:10 +02:00
"Differential Drive",
"Intake",
"Flywheel",
"Encoder",
"Pneumatics",
"Digital Input",
"PID",
"Gyro",
"Profiled PID",
"Gamepad"
],
"foldername": "rapidreactcommandbot",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "SwerveBot",
"description": "Use kinematics and odometry with a swerve drive.",
"tags": [
2023-01-22 01:24:10 +02:00
"Swerve Drive",
"Odometry",
"Gamepad",
2023-01-22 01:24:10 +02:00
"Gyro",
"Encoder"
],
"foldername": "swervebot",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "MecanumBot",
"description": "Use kinematics and odometry with a mecanum drive.",
"tags": [
2023-01-22 01:24:10 +02:00
"Mecanum Drive",
"Odometry",
"Encoder",
"Gyro",
"Gamepad"
],
"foldername": "mecanumbot",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "DifferentialDriveBot",
"description": "Use kinematics and odometry with a differential drive.",
"tags": [
2023-01-22 01:24:10 +02:00
"Differential Drive",
"Odometry",
"Encoder",
"Gyro",
"Gamepad"
],
"foldername": "differentialdrivebot",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
2019-10-27 00:33:41 -04:00
},
{
"name": "Arcade Drive Xbox Controller",
"description": "Control a differential drive with split-stick arcade drive in teleop.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Differential Drive",
"Gamepad"
],
"foldername": "arcadedrivegamepad",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "Tank Drive Gamepad",
"description": "Control a differential drive with Xbox tank drive in teleop.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Differential Drive",
"Gamepad"
],
"foldername": "tankdrivegamepad",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "Duty Cycle Encoder",
"description": "View values from a duty-cycle encoder.",
"tags": [
2023-01-22 01:24:10 +02:00
"Hardware",
"Duty Cycle",
"Encoder",
"SmartDashboard"
],
"foldername": "dutycycleencoder",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "DriveDistanceOffboard",
"description": "Drive a differential drivetrain a set distance using TrapezoidProfile and smart motor controller PID.",
"tags": [
"Commandv2",
2023-01-22 01:24:10 +02:00
"Differential Drive",
"Trapezoid Profile",
"Smart Motor Controller",
"Gamepad"
],
"foldername": "drivedistanceoffboard",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "StateSpaceFlywheel",
"description": "Control a flywheel using a state-space model (based on values from CAD), with a Kalman Filter and LQR.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Flywheel",
2023-01-22 01:24:10 +02:00
"State-Space",
"LQR",
"Encoder",
"Joystick"
],
"foldername": "statespaceflywheel",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "StateSpaceFlywheelSysId",
"description": "Control a flywheel using a state-space model (based on values from SysId), with a Kalman Filter and LQR.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Flywheel",
2023-01-22 01:24:10 +02:00
"SysId",
"State-Space",
"LQR",
"Encoder",
"Joystick"
],
"foldername": "statespaceflywheelsysid",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "StateSpaceElevator",
"description": "Control an elevator using a state-space model (based on values from CAD), with a Kalman Filter and LQR.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Elevator",
2023-01-22 01:24:10 +02:00
"State-Space",
"LQR",
"Encoder",
"Joystick"
],
"foldername": "statespaceelevator",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "StateSpaceArm",
"description": "Control an arm using a state-space model (based on values from CAD), with a Kalman Filter and LQR.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Arm",
2023-01-22 01:24:10 +02:00
"State-Space",
"LQR",
"Encoder",
"Joystick"
],
"foldername": "statespacearm",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "SimpleDifferentialDriveSimulation",
"description": "Simulate a differential drivetrain and follow trajectories with LTVUnicycleController (non-Commandv2).",
"tags": [
2023-01-22 01:24:10 +02:00
"Differential Drive",
"State-Space",
"LTVUnicycleController",
2023-01-22 01:24:10 +02:00
"Path Following",
"Trajectory",
"Encoder",
"Gamepad",
"Simulation"
],
"foldername": "simpledifferentialdrivesimulation",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "ElevatorSimulation",
"description": "Simulate an elevator.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Elevator",
2023-01-22 01:24:10 +02:00
"State-Space",
"Simulation",
"Mechanism2d",
"Profiled PID"
],
"foldername": "elevatorsimulation",
"gradlebase": "java",
"robotclass": "Robot",
2025-06-13 23:53:09 -04:00
"commandversion": 2,
"hasunittests": true
},
{
"name": "Elevator Exponential Profile Simulation",
"description": "Simulate an elevator.",
"tags": [
"Basic Robot",
"Elevator",
"State-Space",
"Simulation",
"Mechanism2d",
"PID",
"Exponential Profile"
],
"foldername": "elevatorexponentialsimulation",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "ArmSimulation",
"description": "Simulate a single-jointed arm.",
"tags": [
2023-01-22 01:24:10 +02:00
"Basic Robot",
"Arm",
2023-01-22 01:24:10 +02:00
"State-Space",
"Simulation",
"Mechanism2d",
"Preferences"
],
"foldername": "armsimulation",
"gradlebase": "java",
"robotclass": "Robot",
2025-06-13 23:53:09 -04:00
"commandversion": 2,
"hasunittests": true
},
{
"name": "UnitTesting",
"description": "Test a robot project with basic unit tests in simulation.",
"tags": [
2023-01-22 01:24:10 +02:00
"Intake",
"Pneumatics"
],
"foldername": "unittest",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2,
"hasunittests": true
},
{
"name": "DifferentialDrivePoseEstimator",
"description": "Combine differential-drive odometry with vision data using DifferentialDrivePoseEstimator.",
"tags": [
2023-01-22 01:24:10 +02:00
"Differential Drive",
"State-Space",
"Pose Estimator",
"Vision",
2023-01-22 01:24:10 +02:00
"PID",
"Gamepad"
],
"foldername": "differentialdriveposeestimator",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "MecanumDrivePoseEstimator",
"description": "Combine mecanum-drive odometry with vision data using MecanumDrivePoseEstimator.",
"tags": [
2023-01-22 01:24:10 +02:00
"Mecanum Drive",
"State-Space",
"Pose Estimator",
"Vision",
2023-01-22 01:24:10 +02:00
"PID",
"Gamepad"
],
"foldername": "mecanumdriveposeestimator",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "SwerveDrivePoseEstimator",
"description": "Combine swerve-drive odometry with vision data using SwerveDrivePoseEstimator.",
"tags": [
2023-01-22 01:24:10 +02:00
"Swerve Drive",
"State-Space",
"Pose Estimator",
"Vision",
2023-01-22 01:24:10 +02:00
"PID",
"Gamepad"
],
"foldername": "swervedriveposeestimator",
"gradlebase": "java",
"robotclass": "Robot",
"commandversion": 2
},
{
"name": "RomiReference",
"description": "An example Commandv2 robot program that can be used with the Romi reference robot design.",
"tags": [
2023-01-22 01:24:10 +02:00
"Romi",
"Commandv2",
2023-01-22 01:24:10 +02:00
"Differential Drive",
"Digital Input",
"Joystick"
],
"foldername": "romireference",
"gradlebase": "javaromi",
"robotclass": "Robot",
"commandversion": 2,
"extravendordeps": [
"romi"
]
},
{
"name": "XRP Reference",
"description": "An example Commandv2 robot program that can be used with the XRP reference robot design.",
"tags": [
"XRP",
"Commandv2",
"Differential Drive",
"Digital Input",
"Joystick"
],
"foldername": "xrpreference",
"gradlebase": "javaxrp",
"robotclass": "Robot",
"commandversion": 2,
"extravendordeps": [
"xrp"
]
},
{
"name": "XRP Timed",
"description": "An very basic timed robot program that can be used with the XRP reference robot design.",
"tags": [
"XRP",
"Differential Drive",
2026-02-15 00:51:21 -08:00
"Joystick"
],
"foldername": "xrptimed",
"gradlebase": "javaxrp",
"robotclass": "Robot",
"commandversion": 2,
"extravendordeps": [
"xrp"
]
},
{
"name": "SysIdRoutine",
"description": "A sample Commandv2 robot demonstrating use of the SysIdRoutine command factory",
"tags": [
"SysId",
"Commandv2",
"DataLog"
],
"foldername": "sysidroutine",
"gradlebase": "java",
"commandversion": 2,
"robotclass": "Robot"
}
]