{"version":1,"pages":[{"id":"L5fXqDt17Fk2ZkX8RHcv","title":"Welcome","pathname":"/","siteSpaceId":"sitesp_3cLVQ"},{"id":"FBN1ibsgDfgcglPHqzhp","title":"Changelog","pathname":"/changelog","siteSpaceId":"sitesp_3cLVQ"},{"id":"pfxSCrt0ymNmrj0kRXOE","title":"Installation","pathname":"/installation","siteSpaceId":"sitesp_3cLVQ","description":"How to import SolversLib into your Android Studio FTC Project"},{"id":"DndvHi6HDnXlzSZAXqPX","title":"Javadocs","pathname":"/javadocs","siteSpaceId":"sitesp_3cLVQ"},{"id":"bjtlOmm93edPelEj5XUN","title":"Hardware","pathname":"/features/hardware","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"}]},{"id":"mgm5pGh6zU7XxuQPPWsR","title":"Servos","pathname":"/features/hardware/servos","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"aFMQzPycakyDmMJzu3Od","title":"Motors","pathname":"/features/hardware/motors","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.hardware.motors","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"5w1ruuL4FG1TkXv5D8ik","title":"Sensors","pathname":"/features/hardware/sensors","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"UJSsQZC9HzFanQDxwBU0","title":"Deprecated Hardware","pathname":"/features/hardware/motors-1","siteSpaceId":"sitesp_3cLVQ","description":"Deprecated Classes & Interfaces","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"FlUgTeJtFzk16Dx4iGFi","title":"Gamepad","pathname":"/features/gamepad-extensions","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.gamepad","breadcrumbs":[{"label":"Features"}]},{"id":"SWMLS48Vt9HMPtWUHYZ4","title":"Drivebases","pathname":"/features/drivebases","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.drivebase","breadcrumbs":[{"label":"Features"}]},{"id":"3T67HiwDoi8NgyJuWtdP","title":"Geometry","pathname":"/features/geometry","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.geometry","breadcrumbs":[{"label":"Features"}]},{"id":"lludwyyWxQb5n2rc7U9u","title":"Controllers","pathname":"/features/controllers","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"}]},{"id":"SlUCxTTzqE26XnJ9WwPR","title":"PID and PIDF","pathname":"/features/controllers/pid-and-pidf","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"},{"label":"Controllers"}]},{"id":"ev56mCNR67l4o8ajXwgW","title":"Feedforward Helpers","pathname":"/features/controllers/feedforward-helpers","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"},{"label":"Controllers"}]},{"id":"RbN4Nll2R2OhN27wWxeo","title":"SquIDF","pathname":"/features/controllers/squidf","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"},{"label":"Controllers"}]},{"id":"K7kWLMZ2LQBz8EaJtvRW","title":"Utility Functions","pathname":"/features/util","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.solverslib.util;","breadcrumbs":[{"label":"Features"}]},{"id":"2eXiI8DUyCgzdipMzRbQ","title":"Pedro Commands","pathname":"/pedro-pathing/pedro-commands","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.pedroCommand","breadcrumbs":[{"label":"Pedro Pathing"}]},{"id":"xrxiIDcQ48GELpzzRVES","title":"FollowPathCommand","pathname":"/pedro-pathing/pedro-commands/followpathcommand","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.pedroCommand.FollowPathCommand;","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"pj8CpPsDojXxx7eG7YAf","title":"HoldPointCommand","pathname":"/pedro-pathing/pedro-commands/hold-point-command","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"PlFmFXZ0xdLK2OAHIEvH","title":"TurnCommand","pathname":"/pedro-pathing/pedro-commands/hold-point-command-1","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"X3chnhiGuhDtERBRzc55","title":"TurnToCommand","pathname":"/pedro-pathing/pedro-commands/hold-point-command-2","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"MXqg8ox5PsrBRVUwg1QJ","title":"What is Photon?","pathname":"/photon/what-is-photon","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.photon","breadcrumbs":[{"label":"Photon"}]},{"id":"uiGXpjUVywm9u4OjSHd1","title":"Usage","pathname":"/photon/usage","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.photon","breadcrumbs":[{"label":"Photon"}]},{"id":"xbaFTzUOYwuj70AQ3TI7","title":"Odometry","pathname":"/kinematics/odometry","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.kinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"IDqKIgB8mCsJOSWuk99s","title":"WPILib Kinematics","pathname":"/kinematics/wpilib-kinematics","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.kinematics.wpilibkinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"cujiNA50rwf8PuCBidDa","title":"Old Kinematics","pathname":"/kinematics/wpilib-kinematics/old-kinematics","siteSpaceId":"sitesp_3cLVQ","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vG5agdo4npnG4eUys7Nn","title":"Swerve Drive Odometry","pathname":"/kinematics/wpilib-kinematics/old-kinematics/swerve-drive-odometry","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"},{"label":"Old Kinematics"}]},{"id":"esz78hSRsw8QMzJB33S9","title":"Swerve Drive Kinematics","pathname":"/kinematics/wpilib-kinematics/old-kinematics/swerve-drive-kinematics","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"},{"label":"Old Kinematics"}]},{"id":"gEB8QImdMhFxQcPMuiCu","title":"Differential Drive Kinematics","pathname":"/kinematics/wpilib-kinematics/differential-drive-kinematics","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"hEivSjeK641GjW3ZDWOG","title":"Differential Drive Odometry","pathname":"/kinematics/wpilib-kinematics/differential-drive-odometry","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vE0cSSzORRtPoZNEAhAw","title":"Mecanum Drive Kinematics","pathname":"/kinematics/wpilib-kinematics/mecanum-drive-kinematics","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"57yjcQey2RMhRK0465tT","title":"Mecanum Drive Odometry","pathname":"/kinematics/wpilib-kinematics/mecanum-drive-odometry","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"5ttdi4xtwQct5P6xe1FU","title":"Point-to-Point","pathname":"/pathing/point-to-point","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.p2p","breadcrumbs":[{"label":"Pathing"}]},{"id":"lRQVYrtjZPhuBAZTQpRD","title":"Pure Pursuit","pathname":"/pathing/pure-pursuit","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.purepursuit","breadcrumbs":[{"label":"Pathing"}]},{"id":"2euTIjSZ7rdE0wDSzJaz","title":"Trajectory","pathname":"/pathing/pure-pursuit/trajectory","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.trajectory","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"}]},{"id":"Qzpx0pVtVHQppWA3QULJ","title":"Trajectory Generation","pathname":"/pathing/pure-pursuit/trajectory/trajectory-generation","siteSpaceId":"sitesp_3cLVQ","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"okVzFFzADUAT98ITcA09","title":"Trajectory Constraints","pathname":"/pathing/pure-pursuit/trajectory/trajectory-constraints","siteSpaceId":"sitesp_3cLVQ","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"mSPBUpEZWHVCEtscmBPF","title":"Manipulating Trajectories","pathname":"/pathing/pure-pursuit/trajectory/manipulating-trajectories","siteSpaceId":"sitesp_3cLVQ","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"ir2y9NLiRA7k6TIzaZY5","title":"Transforming Trajectories","pathname":"/pathing/pure-pursuit/trajectory/transforming-trajectories","siteSpaceId":"sitesp_3cLVQ","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"gGnDIfErmkFmA7KSekYW","title":"Ramsete Controller","pathname":"/pathing/pure-pursuit/trajectory/ramsete-controller","siteSpaceId":"sitesp_3cLVQ","description":"import com.seattlesolvers.solverslib.controller.wpilibcontroller.RamseteController","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"oiJPAL8ElmiW4QAyVUOj","title":"Command System","pathname":"/command-base/command-system","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.command","breadcrumbs":[{"label":"Command Base"}]},{"id":"wDCe389YzxDk7Vph3qGi","title":"Subsystems","pathname":"/command-base/command-system/subsystems","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.command.Subsystem","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"gADKt444atdt3tNyWFtF","title":"Command","pathname":"/command-base/command-system/command","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.command.Command","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"KAke8TBcP1Ea5jsCzIzX","title":"Command Groups","pathname":"/command-base/command-system/command-groups","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.command.CommandGroup","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"847PX25nHeXZNnjCp0X8","title":"Command Scheduler","pathname":"/command-base/command-system/command-scheduler","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.command.CommandScheduler","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"DEmcNtTK3YWYu8MtX0pf","title":"Binding Commands to Triggers","pathname":"/command-base/command-system/binding-commands-to-triggers","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.command.button","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"RgINDqKtlTSqSMd9Cy0m","title":"Robot and CommandOpMode","pathname":"/command-base/command-system/robot-and-commandopmode","siteSpaceId":"sitesp_3cLVQ","description":"Organizing your code with the Robot class and CommandOpMode.","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"EuGWy46yCeFjBaudkV2X","title":"Convenience Features","pathname":"/command-base/command-system/convenience-commands","siteSpaceId":"sitesp_3cLVQ","description":"Using SolversLib-provided Commands to Enhance Your Program","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"Ycf4nWFfDAOu6gEsCFnc","title":"Old Commands","pathname":"/command-base/old-commands","siteSpaceId":"sitesp_3cLVQ","description":"package com.seattlesolvers.solverslib.command.old","breadcrumbs":[{"label":"Command Base"}]},{"id":"oHwQ53XxyNtnPykAsoZX","title":"EasyOpenCV","pathname":"/vision/easyopencv","siteSpaceId":"sitesp_3cLVQ","description":"Deprecated","breadcrumbs":[{"label":"VISION"}]},{"id":"31FcXXIZ4oeGD7IVNRrn","title":"Support SolversLib","pathname":"/support-solverslib","siteSpaceId":"sitesp_3cLVQ"},{"id":"s24ijFMkOOFMFkeVX57H","title":"Additional Reading","pathname":"/additional-reading","siteSpaceId":"sitesp_3cLVQ","description":"We suggest you also read some other FTC materials as well, especially if you are a rookie team or just not all that knowledgeable in regards to FTC programming."},{"id":"L5fXqDt17Fk2ZkX8RHcv","title":"Welcome","pathname":"/0.3.3","siteSpaceId":"sitesp_slqRE"},{"id":"FBN1ibsgDfgcglPHqzhp","title":"Changelog","pathname":"/0.3.3/changelog","siteSpaceId":"sitesp_slqRE"},{"id":"pfxSCrt0ymNmrj0kRXOE","title":"Installation","pathname":"/0.3.3/installation","siteSpaceId":"sitesp_slqRE","description":"How to import SolversLib into your Android Studio FTC Project"},{"id":"DndvHi6HDnXlzSZAXqPX","title":"Javadocs","pathname":"/0.3.3/javadocs","siteSpaceId":"sitesp_slqRE"},{"id":"bjtlOmm93edPelEj5XUN","title":"Hardware","pathname":"/0.3.3/features/hardware","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"}]},{"id":"mgm5pGh6zU7XxuQPPWsR","title":"Servos","pathname":"/0.3.3/features/hardware/servos","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"aFMQzPycakyDmMJzu3Od","title":"Motors","pathname":"/0.3.3/features/hardware/motors","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.hardware.motors","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"5w1ruuL4FG1TkXv5D8ik","title":"Sensors","pathname":"/0.3.3/features/hardware/sensors","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"UJSsQZC9HzFanQDxwBU0","title":"Deprecated Hardware","pathname":"/0.3.3/features/hardware/motors-1","siteSpaceId":"sitesp_slqRE","description":"Deprecated Classes & Interfaces","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"FlUgTeJtFzk16Dx4iGFi","title":"Gamepad","pathname":"/0.3.3/features/gamepad-extensions","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.gamepad","breadcrumbs":[{"label":"Features"}]},{"id":"SWMLS48Vt9HMPtWUHYZ4","title":"Drivebases","pathname":"/0.3.3/features/drivebases","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.drivebase","breadcrumbs":[{"label":"Features"}]},{"id":"3T67HiwDoi8NgyJuWtdP","title":"Geometry","pathname":"/0.3.3/features/geometry","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.geometry","breadcrumbs":[{"label":"Features"}]},{"id":"lludwyyWxQb5n2rc7U9u","title":"Controllers","pathname":"/0.3.3/features/controllers","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"}]},{"id":"SlUCxTTzqE26XnJ9WwPR","title":"PID and PIDF","pathname":"/0.3.3/features/controllers/pid-and-pidf","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"},{"label":"Controllers"}]},{"id":"ev56mCNR67l4o8ajXwgW","title":"Feedforward Helpers","pathname":"/0.3.3/features/controllers/feedforward-helpers","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"},{"label":"Controllers"}]},{"id":"RbN4Nll2R2OhN27wWxeo","title":"SquIDF","pathname":"/0.3.3/features/controllers/squidf","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"},{"label":"Controllers"}]},{"id":"K7kWLMZ2LQBz8EaJtvRW","title":"Utility Functions","pathname":"/0.3.3/features/util","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.solverslib.util;","breadcrumbs":[{"label":"Features"}]},{"id":"2eXiI8DUyCgzdipMzRbQ","title":"Pedro Commands","pathname":"/0.3.3/pedro-pathing/pedro-commands","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.pedroCommand","breadcrumbs":[{"label":"Pedro Pathing"}]},{"id":"xrxiIDcQ48GELpzzRVES","title":"FollowPathCommand","pathname":"/0.3.3/pedro-pathing/pedro-commands/followpathcommand","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.pedroCommand.FollowPathCommand;","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"pj8CpPsDojXxx7eG7YAf","title":"HoldPointCommand","pathname":"/0.3.3/pedro-pathing/pedro-commands/hold-point-command","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"PlFmFXZ0xdLK2OAHIEvH","title":"TurnCommand","pathname":"/0.3.3/pedro-pathing/pedro-commands/hold-point-command-1","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"X3chnhiGuhDtERBRzc55","title":"TurnToCommand","pathname":"/0.3.3/pedro-pathing/pedro-commands/hold-point-command-2","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"xbaFTzUOYwuj70AQ3TI7","title":"Odometry","pathname":"/0.3.3/kinematics/odometry","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.kinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"IDqKIgB8mCsJOSWuk99s","title":"WPILib Kinematics","pathname":"/0.3.3/kinematics/wpilib-kinematics","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.kinematics.wpilibkinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"cujiNA50rwf8PuCBidDa","title":"Old Kinematics","pathname":"/0.3.3/kinematics/wpilib-kinematics/old-kinematics","siteSpaceId":"sitesp_slqRE","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vG5agdo4npnG4eUys7Nn","title":"Swerve Drive Odometry","pathname":"/0.3.3/kinematics/wpilib-kinematics/old-kinematics/swerve-drive-odometry","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"},{"label":"Old Kinematics"}]},{"id":"esz78hSRsw8QMzJB33S9","title":"Swerve Drive Kinematics","pathname":"/0.3.3/kinematics/wpilib-kinematics/old-kinematics/swerve-drive-kinematics","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"},{"label":"Old Kinematics"}]},{"id":"gEB8QImdMhFxQcPMuiCu","title":"Differential Drive Kinematics","pathname":"/0.3.3/kinematics/wpilib-kinematics/differential-drive-kinematics","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"hEivSjeK641GjW3ZDWOG","title":"Differential Drive Odometry","pathname":"/0.3.3/kinematics/wpilib-kinematics/differential-drive-odometry","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vE0cSSzORRtPoZNEAhAw","title":"Mecanum Drive Kinematics","pathname":"/0.3.3/kinematics/wpilib-kinematics/mecanum-drive-kinematics","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"57yjcQey2RMhRK0465tT","title":"Mecanum Drive Odometry","pathname":"/0.3.3/kinematics/wpilib-kinematics/mecanum-drive-odometry","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"5ttdi4xtwQct5P6xe1FU","title":"Point-to-Point","pathname":"/0.3.3/pathing/point-to-point","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.p2p","breadcrumbs":[{"label":"Pathing"}]},{"id":"lRQVYrtjZPhuBAZTQpRD","title":"Pure Pursuit","pathname":"/0.3.3/pathing/pure-pursuit","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.purepursuit","breadcrumbs":[{"label":"Pathing"}]},{"id":"2euTIjSZ7rdE0wDSzJaz","title":"Trajectory","pathname":"/0.3.3/pathing/pure-pursuit/trajectory","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.trajectory","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"}]},{"id":"Qzpx0pVtVHQppWA3QULJ","title":"Trajectory Generation","pathname":"/0.3.3/pathing/pure-pursuit/trajectory/trajectory-generation","siteSpaceId":"sitesp_slqRE","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"okVzFFzADUAT98ITcA09","title":"Trajectory Constraints","pathname":"/0.3.3/pathing/pure-pursuit/trajectory/trajectory-constraints","siteSpaceId":"sitesp_slqRE","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"mSPBUpEZWHVCEtscmBPF","title":"Manipulating Trajectories","pathname":"/0.3.3/pathing/pure-pursuit/trajectory/manipulating-trajectories","siteSpaceId":"sitesp_slqRE","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"ir2y9NLiRA7k6TIzaZY5","title":"Transforming Trajectories","pathname":"/0.3.3/pathing/pure-pursuit/trajectory/transforming-trajectories","siteSpaceId":"sitesp_slqRE","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"gGnDIfErmkFmA7KSekYW","title":"Ramsete Controller","pathname":"/0.3.3/pathing/pure-pursuit/trajectory/ramsete-controller","siteSpaceId":"sitesp_slqRE","description":"import com.seattlesolvers.solverslib.controller.wpilibcontroller.RamseteController","breadcrumbs":[{"label":"Pathing"},{"label":"Pure Pursuit"},{"label":"Trajectory"}]},{"id":"oiJPAL8ElmiW4QAyVUOj","title":"Command System","pathname":"/0.3.3/command-base/command-system","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.command","breadcrumbs":[{"label":"Command Base"}]},{"id":"wDCe389YzxDk7Vph3qGi","title":"Subsystems","pathname":"/0.3.3/command-base/command-system/subsystems","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.command.Subsystem","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"gADKt444atdt3tNyWFtF","title":"Command","pathname":"/0.3.3/command-base/command-system/command","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.command.Command","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"KAke8TBcP1Ea5jsCzIzX","title":"Command Groups","pathname":"/0.3.3/command-base/command-system/command-groups","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.command.CommandGroup","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"847PX25nHeXZNnjCp0X8","title":"Command Scheduler","pathname":"/0.3.3/command-base/command-system/command-scheduler","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.command.CommandScheduler","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"DEmcNtTK3YWYu8MtX0pf","title":"Binding Commands to Triggers","pathname":"/0.3.3/command-base/command-system/binding-commands-to-triggers","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.command.button","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"RgINDqKtlTSqSMd9Cy0m","title":"Robot and CommandOpMode","pathname":"/0.3.3/command-base/command-system/robot-and-commandopmode","siteSpaceId":"sitesp_slqRE","description":"Organizing your code with the Robot class and CommandOpMode.","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"EuGWy46yCeFjBaudkV2X","title":"Convenience Features","pathname":"/0.3.3/command-base/command-system/convenience-commands","siteSpaceId":"sitesp_slqRE","description":"Using SolversLib-provided Commands to Enhance Your Program","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"Ycf4nWFfDAOu6gEsCFnc","title":"Old Commands","pathname":"/0.3.3/command-base/old-commands","siteSpaceId":"sitesp_slqRE","description":"package com.seattlesolvers.solverslib.command.old","breadcrumbs":[{"label":"Command Base"}]},{"id":"oHwQ53XxyNtnPykAsoZX","title":"EasyOpenCV","pathname":"/0.3.3/vision/easyopencv","siteSpaceId":"sitesp_slqRE","description":"Deprecated","breadcrumbs":[{"label":"VISION"}]},{"id":"31FcXXIZ4oeGD7IVNRrn","title":"Support SolversLib","pathname":"/0.3.3/support-solverslib","siteSpaceId":"sitesp_slqRE"},{"id":"s24ijFMkOOFMFkeVX57H","title":"Additional Reading","pathname":"/0.3.3/additional-reading","siteSpaceId":"sitesp_slqRE","description":"We suggest you also read some other FTC materials as well, especially if you are a rookie team or just not all that knowledgeable in regards to FTC programming."},{"id":"L5fXqDt17Fk2ZkX8RHcv","title":"Welcome","pathname":"/0.3.2","siteSpaceId":"sitesp_jYGNN"},{"id":"pfxSCrt0ymNmrj0kRXOE","title":"Installation","pathname":"/0.3.2/installation","siteSpaceId":"sitesp_jYGNN","description":"How to import SolversLib into your Android Studio FTC Project"},{"id":"DndvHi6HDnXlzSZAXqPX","title":"Javadocs","pathname":"/0.3.2/javadocs","siteSpaceId":"sitesp_jYGNN"},{"id":"bjtlOmm93edPelEj5XUN","title":"Hardware","pathname":"/0.3.2/features/hardware","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"}]},{"id":"aFMQzPycakyDmMJzu3Od","title":"Motors","pathname":"/0.3.2/features/hardware/motors","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.hardware.motors","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"UJSsQZC9HzFanQDxwBU0","title":"SolversHardware","pathname":"/0.3.2/features/hardware/motors-1","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.solversHardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"FlUgTeJtFzk16Dx4iGFi","title":"Gamepad","pathname":"/0.3.2/features/gamepad-extensions","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.gamepad","breadcrumbs":[{"label":"Features"}]},{"id":"SWMLS48Vt9HMPtWUHYZ4","title":"Drivebases","pathname":"/0.3.2/features/drivebases","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.drivebase","breadcrumbs":[{"label":"Features"}]},{"id":"3T67HiwDoi8NgyJuWtdP","title":"Geometry","pathname":"/0.3.2/features/geometry","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.geometry","breadcrumbs":[{"label":"Features"}]},{"id":"lludwyyWxQb5n2rc7U9u","title":"Controllers","pathname":"/0.3.2/features/controllers","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"}]},{"id":"K7kWLMZ2LQBz8EaJtvRW","title":"Utility Functions","pathname":"/0.3.2/features/util","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.solverslib.util;","breadcrumbs":[{"label":"Features"}]},{"id":"2eXiI8DUyCgzdipMzRbQ","title":"Pedro Commands","pathname":"/0.3.2/pedro-pathing/pedro-commands","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.pedroCommand","breadcrumbs":[{"label":"Pedro Pathing"}]},{"id":"xrxiIDcQ48GELpzzRVES","title":"FollowPathCommand","pathname":"/0.3.2/pedro-pathing/pedro-commands/followpathcommand","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.pedroCommand.FollowPathCommand;","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"pj8CpPsDojXxx7eG7YAf","title":"HoldPointCommand","pathname":"/0.3.2/pedro-pathing/pedro-commands/hold-point-command","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"oHwQ53XxyNtnPykAsoZX","title":"EasyOpenCV","pathname":"/0.3.2/vision/easyopencv","siteSpaceId":"sitesp_jYGNN","description":"Deprecated","breadcrumbs":[{"label":"Vision"}]},{"id":"xbaFTzUOYwuj70AQ3TI7","title":"Odometry","pathname":"/0.3.2/kinematics/odometry","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.kinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"IDqKIgB8mCsJOSWuk99s","title":"WPILib Kinematics","pathname":"/0.3.2/kinematics/wpilib-kinematics","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.kinematics.wpilibkinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"gEB8QImdMhFxQcPMuiCu","title":"Differential Drive Kinematics","pathname":"/0.3.2/kinematics/wpilib-kinematics/differential-drive-kinematics","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"hEivSjeK641GjW3ZDWOG","title":"Differential Drive Odometry","pathname":"/0.3.2/kinematics/wpilib-kinematics/differential-drive-odometry","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"esz78hSRsw8QMzJB33S9","title":"Swerve Drive Kinematics","pathname":"/0.3.2/kinematics/wpilib-kinematics/swerve-drive-kinematics","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vG5agdo4npnG4eUys7Nn","title":"Swerve Drive Odometry","pathname":"/0.3.2/kinematics/wpilib-kinematics/swerve-drive-odometry","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vE0cSSzORRtPoZNEAhAw","title":"Mecanum Drive Kinematics","pathname":"/0.3.2/kinematics/wpilib-kinematics/mecanum-drive-kinematics","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"57yjcQey2RMhRK0465tT","title":"Mecanum Drive Odometry","pathname":"/0.3.2/kinematics/wpilib-kinematics/mecanum-drive-odometry","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"lRQVYrtjZPhuBAZTQpRD","title":"Pure Pursuit","pathname":"/0.3.2/pathing/pure-pursuit","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.purepursuit","breadcrumbs":[{"label":"Pathing"}]},{"id":"2euTIjSZ7rdE0wDSzJaz","title":"Trajectory","pathname":"/0.3.2/pathing/trajectory","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.trajectory","breadcrumbs":[{"label":"Pathing"}]},{"id":"Qzpx0pVtVHQppWA3QULJ","title":"Trajectory Generation","pathname":"/0.3.2/pathing/trajectory/trajectory-generation","siteSpaceId":"sitesp_jYGNN","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"okVzFFzADUAT98ITcA09","title":"Trajectory Constraints","pathname":"/0.3.2/pathing/trajectory/trajectory-constraints","siteSpaceId":"sitesp_jYGNN","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"mSPBUpEZWHVCEtscmBPF","title":"Manipulating Trajectories","pathname":"/0.3.2/pathing/trajectory/manipulating-trajectories","siteSpaceId":"sitesp_jYGNN","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"ir2y9NLiRA7k6TIzaZY5","title":"Transforming Trajectories","pathname":"/0.3.2/pathing/trajectory/transforming-trajectories","siteSpaceId":"sitesp_jYGNN","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"gGnDIfErmkFmA7KSekYW","title":"Ramsete Controller","pathname":"/0.3.2/pathing/trajectory/ramsete-controller","siteSpaceId":"sitesp_jYGNN","description":"import com.seattlesolvers.solverslib.controller.wpilibcontroller.RamseteController","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"oiJPAL8ElmiW4QAyVUOj","title":"Command System","pathname":"/0.3.2/command-base/command-system","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.command","breadcrumbs":[{"label":"Command Base"}]},{"id":"wDCe389YzxDk7Vph3qGi","title":"Subsystems","pathname":"/0.3.2/command-base/command-system/subsystems","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.command.Subsystem","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"gADKt444atdt3tNyWFtF","title":"Command","pathname":"/0.3.2/command-base/command-system/command","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.command.Command","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"KAke8TBcP1Ea5jsCzIzX","title":"Command Groups","pathname":"/0.3.2/command-base/command-system/command-groups","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.command.CommandGroup","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"847PX25nHeXZNnjCp0X8","title":"Command Scheduler","pathname":"/0.3.2/command-base/command-system/command-scheduler","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.command.CommandScheduler","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"DEmcNtTK3YWYu8MtX0pf","title":"Binding Commands to Triggers","pathname":"/0.3.2/command-base/command-system/binding-commands-to-triggers","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.command.button","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"RgINDqKtlTSqSMd9Cy0m","title":"Robot and CommandOpMode","pathname":"/0.3.2/command-base/command-system/robot-and-commandopmode","siteSpaceId":"sitesp_jYGNN","description":"Organizing your code with the Robot class and CommandOpMode.","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"EuGWy46yCeFjBaudkV2X","title":"Convenience Features","pathname":"/0.3.2/command-base/command-system/convenience-commands","siteSpaceId":"sitesp_jYGNN","description":"Using SolversLib-provided Commands to Enhance Your Program","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"Ycf4nWFfDAOu6gEsCFnc","title":"Old Commands","pathname":"/0.3.2/command-base/old-commands","siteSpaceId":"sitesp_jYGNN","description":"package com.seattlesolvers.solverslib.command.old","breadcrumbs":[{"label":"Command Base"}]},{"id":"31FcXXIZ4oeGD7IVNRrn","title":"Support SolversLib","pathname":"/0.3.2/support-solverslib","siteSpaceId":"sitesp_jYGNN"},{"id":"s24ijFMkOOFMFkeVX57H","title":"Additional Reading","pathname":"/0.3.2/additional-reading","siteSpaceId":"sitesp_jYGNN","description":"We suggest you also read some other FTC materials as well, especially if you are a rookie team or just not all that knowledgeable in regards to FTC programming."},{"id":"L5fXqDt17Fk2ZkX8RHcv","title":"Welcome","pathname":"/0.3.1","siteSpaceId":"sitesp_yb16F"},{"id":"pfxSCrt0ymNmrj0kRXOE","title":"Installation","pathname":"/0.3.1/installation","siteSpaceId":"sitesp_yb16F","description":"How to import SolversLib into your Android Studio FTC Project"},{"id":"DndvHi6HDnXlzSZAXqPX","title":"Javadocs","pathname":"/0.3.1/javadocs","siteSpaceId":"sitesp_yb16F"},{"id":"bjtlOmm93edPelEj5XUN","title":"Hardware","pathname":"/0.3.1/features/hardware","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"}]},{"id":"aFMQzPycakyDmMJzu3Od","title":"Motors","pathname":"/0.3.1/features/hardware/motors","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.hardware.motors","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"UJSsQZC9HzFanQDxwBU0","title":"SolversHardware","pathname":"/0.3.1/features/hardware/motors-1","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.solversHardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"FlUgTeJtFzk16Dx4iGFi","title":"Gamepad","pathname":"/0.3.1/features/gamepad-extensions","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.gamepad","breadcrumbs":[{"label":"Features"}]},{"id":"SWMLS48Vt9HMPtWUHYZ4","title":"Drivebases","pathname":"/0.3.1/features/drivebases","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.drivebase","breadcrumbs":[{"label":"Features"}]},{"id":"3T67HiwDoi8NgyJuWtdP","title":"Geometry","pathname":"/0.3.1/features/geometry","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.geometry","breadcrumbs":[{"label":"Features"}]},{"id":"lludwyyWxQb5n2rc7U9u","title":"Controllers","pathname":"/0.3.1/features/controllers","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"}]},{"id":"K7kWLMZ2LQBz8EaJtvRW","title":"Utility Functions","pathname":"/0.3.1/features/util","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.solverslib.util;","breadcrumbs":[{"label":"Features"}]},{"id":"2eXiI8DUyCgzdipMzRbQ","title":"Pedro Commands","pathname":"/0.3.1/pedro-pathing/pedro-commands","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.pedroCommand","breadcrumbs":[{"label":"Pedro Pathing"}]},{"id":"xrxiIDcQ48GELpzzRVES","title":"FollowPathCommand","pathname":"/0.3.1/pedro-pathing/pedro-commands/followpathcommand","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.pedroCommand.FollowPathCommand;","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"pj8CpPsDojXxx7eG7YAf","title":"HoldPointCommand","pathname":"/0.3.1/pedro-pathing/pedro-commands/hold-point-command","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"oHwQ53XxyNtnPykAsoZX","title":"EasyOpenCV","pathname":"/0.3.1/vision/easyopencv","siteSpaceId":"sitesp_yb16F","description":"Deprecated","breadcrumbs":[{"label":"Vision"}]},{"id":"xbaFTzUOYwuj70AQ3TI7","title":"Odometry","pathname":"/0.3.1/kinematics/odometry","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.kinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"IDqKIgB8mCsJOSWuk99s","title":"WPILib Kinematics","pathname":"/0.3.1/kinematics/wpilib-kinematics","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.kinematics.wpilibkinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"gEB8QImdMhFxQcPMuiCu","title":"Differential Drive Kinematics","pathname":"/0.3.1/kinematics/wpilib-kinematics/differential-drive-kinematics","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"hEivSjeK641GjW3ZDWOG","title":"Differential Drive Odometry","pathname":"/0.3.1/kinematics/wpilib-kinematics/differential-drive-odometry","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"esz78hSRsw8QMzJB33S9","title":"Swerve Drive Kinematics","pathname":"/0.3.1/kinematics/wpilib-kinematics/swerve-drive-kinematics","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vG5agdo4npnG4eUys7Nn","title":"Swerve Drive Odometry","pathname":"/0.3.1/kinematics/wpilib-kinematics/swerve-drive-odometry","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vE0cSSzORRtPoZNEAhAw","title":"Mecanum Drive Kinematics","pathname":"/0.3.1/kinematics/wpilib-kinematics/mecanum-drive-kinematics","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"57yjcQey2RMhRK0465tT","title":"Mecanum Drive Odometry","pathname":"/0.3.1/kinematics/wpilib-kinematics/mecanum-drive-odometry","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"lRQVYrtjZPhuBAZTQpRD","title":"Pure Pursuit","pathname":"/0.3.1/pathing/pure-pursuit","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.purepursuit","breadcrumbs":[{"label":"Pathing"}]},{"id":"2euTIjSZ7rdE0wDSzJaz","title":"Trajectory","pathname":"/0.3.1/pathing/trajectory","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.trajectory","breadcrumbs":[{"label":"Pathing"}]},{"id":"Qzpx0pVtVHQppWA3QULJ","title":"Trajectory Generation","pathname":"/0.3.1/pathing/trajectory/trajectory-generation","siteSpaceId":"sitesp_yb16F","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"okVzFFzADUAT98ITcA09","title":"Trajectory Constraints","pathname":"/0.3.1/pathing/trajectory/trajectory-constraints","siteSpaceId":"sitesp_yb16F","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"mSPBUpEZWHVCEtscmBPF","title":"Manipulating Trajectories","pathname":"/0.3.1/pathing/trajectory/manipulating-trajectories","siteSpaceId":"sitesp_yb16F","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"ir2y9NLiRA7k6TIzaZY5","title":"Transforming Trajectories","pathname":"/0.3.1/pathing/trajectory/transforming-trajectories","siteSpaceId":"sitesp_yb16F","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"gGnDIfErmkFmA7KSekYW","title":"Ramsete Controller","pathname":"/0.3.1/pathing/trajectory/ramsete-controller","siteSpaceId":"sitesp_yb16F","description":"import com.seattlesolvers.solverslib.controller.wpilibcontroller.RamseteController","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"oiJPAL8ElmiW4QAyVUOj","title":"Command System","pathname":"/0.3.1/command-base/command-system","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.command","breadcrumbs":[{"label":"Command Base"}]},{"id":"wDCe389YzxDk7Vph3qGi","title":"Subsystems","pathname":"/0.3.1/command-base/command-system/subsystems","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.command.Subsystem","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"gADKt444atdt3tNyWFtF","title":"Command","pathname":"/0.3.1/command-base/command-system/command","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.command.Command","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"KAke8TBcP1Ea5jsCzIzX","title":"Command Groups","pathname":"/0.3.1/command-base/command-system/command-groups","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.command.CommandGroup","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"847PX25nHeXZNnjCp0X8","title":"Command Scheduler","pathname":"/0.3.1/command-base/command-system/command-scheduler","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.command.CommandScheduler","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"DEmcNtTK3YWYu8MtX0pf","title":"Binding Commands to Triggers","pathname":"/0.3.1/command-base/command-system/binding-commands-to-triggers","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.command.button","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"RgINDqKtlTSqSMd9Cy0m","title":"Robot and CommandOpMode","pathname":"/0.3.1/command-base/command-system/robot-and-commandopmode","siteSpaceId":"sitesp_yb16F","description":"Organizing your code with the Robot class and CommandOpMode.","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"EuGWy46yCeFjBaudkV2X","title":"Convenience Features","pathname":"/0.3.1/command-base/command-system/convenience-commands","siteSpaceId":"sitesp_yb16F","description":"Using SolversLib-provided Commands to Enhance Your Program","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"Ycf4nWFfDAOu6gEsCFnc","title":"Old Commands","pathname":"/0.3.1/command-base/old-commands","siteSpaceId":"sitesp_yb16F","description":"package com.seattlesolvers.solverslib.command.old","breadcrumbs":[{"label":"Command Base"}]},{"id":"31FcXXIZ4oeGD7IVNRrn","title":"Support SolversLib","pathname":"/0.3.1/support-solverslib","siteSpaceId":"sitesp_yb16F"},{"id":"s24ijFMkOOFMFkeVX57H","title":"Additional Reading","pathname":"/0.3.1/additional-reading","siteSpaceId":"sitesp_yb16F","description":"We suggest you also read some other FTC materials as well, especially if you are a rookie team or just not all that knowledgeable in regards to FTC programming."},{"id":"L5fXqDt17Fk2ZkX8RHcv","title":"Welcome","pathname":"/0.2.5","siteSpaceId":"sitesp_e17R1","lang":"en","description":""},{"id":"pfxSCrt0ymNmrj0kRXOE","title":"Installation","pathname":"/0.2.5/installation","siteSpaceId":"sitesp_e17R1","lang":"en","description":"How to import SolversLib into your Android Studio FTC Project"},{"id":"DndvHi6HDnXlzSZAXqPX","title":"Javadocs","pathname":"/0.2.5/javadocs","siteSpaceId":"sitesp_e17R1","lang":"en"},{"id":"bjtlOmm93edPelEj5XUN","title":"Hardware","pathname":"/0.2.5/features/hardware","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"}]},{"id":"aFMQzPycakyDmMJzu3Od","title":"Motors","pathname":"/0.2.5/features/hardware/motors","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.hardware.motors","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"UJSsQZC9HzFanQDxwBU0","title":"SolversHardware","pathname":"/0.2.5/features/hardware/motors-1","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.solversHardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"FlUgTeJtFzk16Dx4iGFi","title":"Gamepad","pathname":"/0.2.5/features/gamepad-extensions","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.gamepad","breadcrumbs":[{"label":"Features"}]},{"id":"SWMLS48Vt9HMPtWUHYZ4","title":"Drivebases","pathname":"/0.2.5/features/drivebases","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.drivebase","breadcrumbs":[{"label":"Features"}]},{"id":"3T67HiwDoi8NgyJuWtdP","title":"Geometry","pathname":"/0.2.5/features/geometry","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.geometry","breadcrumbs":[{"label":"Features"}]},{"id":"lludwyyWxQb5n2rc7U9u","title":"Controllers","pathname":"/0.2.5/features/controllers","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"}]},{"id":"K7kWLMZ2LQBz8EaJtvRW","title":"Utility Functions","pathname":"/0.2.5/features/util","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.solverslib.util;","breadcrumbs":[{"label":"Features"}]},{"id":"2eXiI8DUyCgzdipMzRbQ","title":"Pedro Commands","pathname":"/0.2.5/pedro-pathing/pedro-commands","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.pedroCommand","breadcrumbs":[{"label":"Pedro Pathing"}]},{"id":"xrxiIDcQ48GELpzzRVES","title":"FollowPathCommand","pathname":"/0.2.5/pedro-pathing/pedro-commands/followpathcommand","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.pedroCommand.FollowPathCommand;","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"pj8CpPsDojXxx7eG7YAf","title":"HoldPointCommand","pathname":"/0.2.5/pedro-pathing/pedro-commands/hold-point-command","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"oHwQ53XxyNtnPykAsoZX","title":"EasyOpenCV","pathname":"/0.2.5/vision/easyopencv","siteSpaceId":"sitesp_e17R1","lang":"en","description":"Deprecated","breadcrumbs":[{"label":"Vision"}]},{"id":"xbaFTzUOYwuj70AQ3TI7","title":"Odometry","pathname":"/0.2.5/kinematics/odometry","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.kinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"IDqKIgB8mCsJOSWuk99s","title":"WPILib Kinematics","pathname":"/0.2.5/kinematics/wpilib-kinematics","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.kinematics.wpilibkinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"gEB8QImdMhFxQcPMuiCu","title":"Differential Drive Kinematics","pathname":"/0.2.5/kinematics/wpilib-kinematics/differential-drive-kinematics","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"hEivSjeK641GjW3ZDWOG","title":"Differential Drive Odometry","pathname":"/0.2.5/kinematics/wpilib-kinematics/differential-drive-odometry","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"esz78hSRsw8QMzJB33S9","title":"Swerve Drive Kinematics","pathname":"/0.2.5/kinematics/wpilib-kinematics/swerve-drive-kinematics","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vG5agdo4npnG4eUys7Nn","title":"Swerve Drive Odometry","pathname":"/0.2.5/kinematics/wpilib-kinematics/swerve-drive-odometry","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vE0cSSzORRtPoZNEAhAw","title":"Mecanum Drive Kinematics","pathname":"/0.2.5/kinematics/wpilib-kinematics/mecanum-drive-kinematics","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"57yjcQey2RMhRK0465tT","title":"Mecanum Drive Odometry","pathname":"/0.2.5/kinematics/wpilib-kinematics/mecanum-drive-odometry","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"lRQVYrtjZPhuBAZTQpRD","title":"Pure Pursuit","pathname":"/0.2.5/pathing/pure-pursuit","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.purepursuit","breadcrumbs":[{"label":"Pathing"}]},{"id":"2euTIjSZ7rdE0wDSzJaz","title":"Trajectory","pathname":"/0.2.5/pathing/trajectory","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.trajectory","breadcrumbs":[{"label":"Pathing"}]},{"id":"Qzpx0pVtVHQppWA3QULJ","title":"Trajectory Generation","pathname":"/0.2.5/pathing/trajectory/trajectory-generation","siteSpaceId":"sitesp_e17R1","lang":"en","description":"","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"okVzFFzADUAT98ITcA09","title":"Trajectory Constraints","pathname":"/0.2.5/pathing/trajectory/trajectory-constraints","siteSpaceId":"sitesp_e17R1","lang":"en","description":"","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"mSPBUpEZWHVCEtscmBPF","title":"Manipulating Trajectories","pathname":"/0.2.5/pathing/trajectory/manipulating-trajectories","siteSpaceId":"sitesp_e17R1","lang":"en","description":"","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"ir2y9NLiRA7k6TIzaZY5","title":"Transforming Trajectories","pathname":"/0.2.5/pathing/trajectory/transforming-trajectories","siteSpaceId":"sitesp_e17R1","lang":"en","description":"","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"gGnDIfErmkFmA7KSekYW","title":"Ramsete Controller","pathname":"/0.2.5/pathing/trajectory/ramsete-controller","siteSpaceId":"sitesp_e17R1","lang":"en","description":"import com.seattlesolvers.solverslib.controller.wpilibcontroller.RamseteController","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"oiJPAL8ElmiW4QAyVUOj","title":"Command System","pathname":"/0.2.5/command-base/command-system","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.command","breadcrumbs":[{"label":"Command Base"}]},{"id":"wDCe389YzxDk7Vph3qGi","title":"Subsystems","pathname":"/0.2.5/command-base/command-system/subsystems","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.command.Subsystem","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"gADKt444atdt3tNyWFtF","title":"Command","pathname":"/0.2.5/command-base/command-system/command","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.command.Command","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"KAke8TBcP1Ea5jsCzIzX","title":"Command Groups","pathname":"/0.2.5/command-base/command-system/command-groups","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.command.CommandGroup","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"847PX25nHeXZNnjCp0X8","title":"Command Scheduler","pathname":"/0.2.5/command-base/command-system/command-scheduler","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.command.CommandScheduler","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"DEmcNtTK3YWYu8MtX0pf","title":"Binding Commands to Triggers","pathname":"/0.2.5/command-base/command-system/binding-commands-to-triggers","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.command.button","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"RgINDqKtlTSqSMd9Cy0m","title":"Robot and CommandOpMode","pathname":"/0.2.5/command-base/command-system/robot-and-commandopmode","siteSpaceId":"sitesp_e17R1","lang":"en","description":"Organizing your code with the Robot class and CommandOpMode.","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"EuGWy46yCeFjBaudkV2X","title":"Convenience Features","pathname":"/0.2.5/command-base/command-system/convenience-commands","siteSpaceId":"sitesp_e17R1","lang":"en","description":"Using SolversLib-provided Commands to Enhance Your Program","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"Ycf4nWFfDAOu6gEsCFnc","title":"Old Commands","pathname":"/0.2.5/command-base/old-commands","siteSpaceId":"sitesp_e17R1","lang":"en","description":"package com.seattlesolvers.solverslib.command.old","breadcrumbs":[{"label":"Command Base"}]},{"id":"31FcXXIZ4oeGD7IVNRrn","title":"Support SolversLib","pathname":"/0.2.5/support-solverslib","siteSpaceId":"sitesp_e17R1","lang":"en","description":""},{"id":"s24ijFMkOOFMFkeVX57H","title":"Additional Reading","pathname":"/0.2.5/additional-reading","siteSpaceId":"sitesp_e17R1","lang":"en","description":"We suggest you also read some other FTC materials as well, especially if you are a rookie team or just not all that knowledgeable in regards to FTC programming."},{"id":"L5fXqDt17Fk2ZkX8RHcv","title":"Welcome","pathname":"/0.2.3","siteSpaceId":"sitesp_6iFIi"},{"id":"pfxSCrt0ymNmrj0kRXOE","title":"Installation","pathname":"/0.2.3/installation","siteSpaceId":"sitesp_6iFIi","description":"How to import SolversLib into your Android Studio FTC Project"},{"id":"DndvHi6HDnXlzSZAXqPX","title":"Javadocs","pathname":"/0.2.3/javadocs","siteSpaceId":"sitesp_6iFIi"},{"id":"bjtlOmm93edPelEj5XUN","title":"Hardware","pathname":"/0.2.3/features/hardware","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.hardware","breadcrumbs":[{"label":"Features"}]},{"id":"aFMQzPycakyDmMJzu3Od","title":"Motors","pathname":"/0.2.3/features/hardware/motors","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.hardware.motors","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"UJSsQZC9HzFanQDxwBU0","title":"SolversHardware","pathname":"/0.2.3/features/hardware/motors-1","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.solversHardware","breadcrumbs":[{"label":"Features"},{"label":"Hardware"}]},{"id":"FlUgTeJtFzk16Dx4iGFi","title":"Gamepad","pathname":"/0.2.3/features/gamepad-extensions","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.gamepad","breadcrumbs":[{"label":"Features"}]},{"id":"SWMLS48Vt9HMPtWUHYZ4","title":"Drivebases","pathname":"/0.2.3/features/drivebases","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.drivebase","breadcrumbs":[{"label":"Features"}]},{"id":"3T67HiwDoi8NgyJuWtdP","title":"Geometry","pathname":"/0.2.3/features/geometry","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.geometry","breadcrumbs":[{"label":"Features"}]},{"id":"lludwyyWxQb5n2rc7U9u","title":"Controllers","pathname":"/0.2.3/features/controllers","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.controller","breadcrumbs":[{"label":"Features"}]},{"id":"K7kWLMZ2LQBz8EaJtvRW","title":"Utility Functions","pathname":"/0.2.3/features/util","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.solverslib.util;","breadcrumbs":[{"label":"Features"}]},{"id":"2eXiI8DUyCgzdipMzRbQ","title":"Pedro Commands","pathname":"/0.2.3/pedro-pathing/pedro-commands","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.pedroCommand","breadcrumbs":[{"label":"Pedro Pathing"}]},{"id":"xrxiIDcQ48GELpzzRVES","title":"FollowPathCommand","pathname":"/0.2.3/pedro-pathing/pedro-commands/followpathcommand","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.pedroCommand.FollowPathCommand;","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"e9aEeJhJkAiYSxgZru16","title":"FollowPathChainCommand","pathname":"/0.2.3/pedro-pathing/pedro-commands/followpathchaincommand","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.pedroCommand.FollowPathCommand;","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"pj8CpPsDojXxx7eG7YAf","title":"HoldPointCommand","pathname":"/0.2.3/pedro-pathing/pedro-commands/hold-point-command","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.pedropathing","breadcrumbs":[{"label":"Pedro Pathing"},{"label":"Pedro Commands"}]},{"id":"oHwQ53XxyNtnPykAsoZX","title":"EasyOpenCV","pathname":"/0.2.3/vision/easyopencv","siteSpaceId":"sitesp_6iFIi","description":"Deprecated","breadcrumbs":[{"label":"Vision"}]},{"id":"xbaFTzUOYwuj70AQ3TI7","title":"Odometry","pathname":"/0.2.3/kinematics/odometry","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.kinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"IDqKIgB8mCsJOSWuk99s","title":"WPILib Kinematics","pathname":"/0.2.3/kinematics/wpilib-kinematics","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.kinematics.wpilibkinematics","breadcrumbs":[{"label":"Kinematics"}]},{"id":"gEB8QImdMhFxQcPMuiCu","title":"Differential Drive Kinematics","pathname":"/0.2.3/kinematics/wpilib-kinematics/differential-drive-kinematics","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"hEivSjeK641GjW3ZDWOG","title":"Differential Drive Odometry","pathname":"/0.2.3/kinematics/wpilib-kinematics/differential-drive-odometry","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.DifferentialDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"esz78hSRsw8QMzJB33S9","title":"Swerve Drive Kinematics","pathname":"/0.2.3/kinematics/wpilib-kinematics/swerve-drive-kinematics","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vG5agdo4npnG4eUys7Nn","title":"Swerve Drive Odometry","pathname":"/0.2.3/kinematics/wpilib-kinematics/swerve-drive-odometry","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.SwerveDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"vE0cSSzORRtPoZNEAhAw","title":"Mecanum Drive Kinematics","pathname":"/0.2.3/kinematics/wpilib-kinematics/mecanum-drive-kinematics","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveKinematics","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"57yjcQey2RMhRK0465tT","title":"Mecanum Drive Odometry","pathname":"/0.2.3/kinematics/wpilib-kinematics/mecanum-drive-odometry","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.kinematics.wpilibkinematics.MecanumDriveOdometry","breadcrumbs":[{"label":"Kinematics"},{"label":"WPILib Kinematics"}]},{"id":"lRQVYrtjZPhuBAZTQpRD","title":"Pure Pursuit","pathname":"/0.2.3/pathing/pure-pursuit","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.purepursuit","breadcrumbs":[{"label":"Pathing"}]},{"id":"2euTIjSZ7rdE0wDSzJaz","title":"Trajectory","pathname":"/0.2.3/pathing/trajectory","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.trajectory","breadcrumbs":[{"label":"Pathing"}]},{"id":"Qzpx0pVtVHQppWA3QULJ","title":"Trajectory Generation","pathname":"/0.2.3/pathing/trajectory/trajectory-generation","siteSpaceId":"sitesp_6iFIi","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"okVzFFzADUAT98ITcA09","title":"Trajectory Constraints","pathname":"/0.2.3/pathing/trajectory/trajectory-constraints","siteSpaceId":"sitesp_6iFIi","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"mSPBUpEZWHVCEtscmBPF","title":"Manipulating Trajectories","pathname":"/0.2.3/pathing/trajectory/manipulating-trajectories","siteSpaceId":"sitesp_6iFIi","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"ir2y9NLiRA7k6TIzaZY5","title":"Transforming Trajectories","pathname":"/0.2.3/pathing/trajectory/transforming-trajectories","siteSpaceId":"sitesp_6iFIi","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"gGnDIfErmkFmA7KSekYW","title":"Ramsete Controller","pathname":"/0.2.3/pathing/trajectory/ramsete-controller","siteSpaceId":"sitesp_6iFIi","description":"import com.seattlesolvers.solverslib.controller.wpilibcontroller.RamseteController","breadcrumbs":[{"label":"Pathing"},{"label":"Trajectory"}]},{"id":"oiJPAL8ElmiW4QAyVUOj","title":"Command System","pathname":"/0.2.3/command-base/command-system","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.command","breadcrumbs":[{"label":"Command Base"}]},{"id":"wDCe389YzxDk7Vph3qGi","title":"Subsystems","pathname":"/0.2.3/command-base/command-system/subsystems","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.command.Subsystem","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"gADKt444atdt3tNyWFtF","title":"Command","pathname":"/0.2.3/command-base/command-system/command","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.command.Command","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"KAke8TBcP1Ea5jsCzIzX","title":"Command Groups","pathname":"/0.2.3/command-base/command-system/command-groups","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.command.CommandGroup","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"847PX25nHeXZNnjCp0X8","title":"Command Scheduler","pathname":"/0.2.3/command-base/command-system/command-scheduler","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.command.CommandScheduler","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"DEmcNtTK3YWYu8MtX0pf","title":"Binding Commands to Triggers","pathname":"/0.2.3/command-base/command-system/binding-commands-to-triggers","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.command.button","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"RgINDqKtlTSqSMd9Cy0m","title":"Robot and CommandOpMode","pathname":"/0.2.3/command-base/command-system/robot-and-commandopmode","siteSpaceId":"sitesp_6iFIi","description":"Organizing your code with the Robot class and CommandOpMode.","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"EuGWy46yCeFjBaudkV2X","title":"Convenience Features","pathname":"/0.2.3/command-base/command-system/convenience-commands","siteSpaceId":"sitesp_6iFIi","description":"Using SolversLib-provided Commands to Enhance Your Program","breadcrumbs":[{"label":"Command Base"},{"label":"Command System"}]},{"id":"Ycf4nWFfDAOu6gEsCFnc","title":"Old Commands","pathname":"/0.2.3/command-base/old-commands","siteSpaceId":"sitesp_6iFIi","description":"package com.seattlesolvers.solverslib.command.old","breadcrumbs":[{"label":"Command Base"}]},{"id":"31FcXXIZ4oeGD7IVNRrn","title":"Support SolversLib","pathname":"/0.2.3/support-solverslib","siteSpaceId":"sitesp_6iFIi"},{"id":"s24ijFMkOOFMFkeVX57H","title":"Additional Reading","pathname":"/0.2.3/additional-reading","siteSpaceId":"sitesp_6iFIi","description":"We suggest you also read some other FTC materials as well, especially if you are a rookie team or just not all that knowledgeable in regards to FTC programming."}]}