{"version":1,"pages":[{"id":"aXBWj2iG9VwPjZmgTRzy","title":"Welcome to YAGSL","pathname":"/","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Brought to you by Yet Another Generic Swerve Library (YAGSL)"},{"id":"VUjPRU3oP9Kpxefm9ap7","title":"Your First Swerve Robot","pathname":"/tutorial/tutorial","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Tutorial"}]},{"id":"QJ0sxeJFHmLiAqa6J1tp","title":"Gather your robot information","pathname":"/tutorial/01-gather-your-robot-information","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Tutorial"}]},{"id":"ijpTNCXlCKRJowpP2qxh","title":"Install YAGSL","pathname":"/tutorial/02-install-yagsl","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Tutorial"}]},{"id":"CchWFExVD5ExDrgsrTXc","title":"Generate your configuration","pathname":"/tutorial/03-generate-your-configuration","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Tutorial"}]},{"id":"pDTxUT9OXQL72j56Pzml","title":"Verify and calibrate your hardware","pathname":"/tutorial/04-verify-and-calibrate-hardware","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Tutorial"}]},{"id":"jyfmT1LqxrXJnHnuUALR","title":"Deploy and drive","pathname":"/tutorial/05-deploy-and-drive","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Tutorial"}]},{"id":"ZMbTN0RRcP5VbaRkNVir","title":"What to expect?","pathname":"/how-to-guides/how-to","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"QcM0FunHvaMONGWx5YYK","title":"Tune PIDF gains","pathname":"/how-to-guides/tune-pidf-gains","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Starting points and a tuning procedure for your drive and angle motor gains.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"ZfFEUMaoIxqgC0P7Qqvn","title":"Determine inversion","pathname":"/how-to-guides/determine-inversion","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Work out which motors, encoders, and the gyro need to be inverted.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"OWaR0GvBtZHTug9PGPsa","title":"Verify your module locations","pathname":"/how-to-guides/verify-module-locations","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Your front may not be what you think it is on a robot.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"ACYsatzO4MuS5bkvxb1b","title":"Use a custom gyro","pathname":"/how-to-guides/use-a-custom-gyro","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Configure a gyro YAGSL's parser doesn't build for you, using a Studica AHRS as the example.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"e7AnCtDQnqMF1J0bvJQQ","title":"Drive to a pose","pathname":"/how-to-guides/drive-to-a-pose","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Command the robot to a field-relative Pose2d without PathPlanner.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"c9CWNdJcGgKl3d0LX03M","title":"Set up PathPlanner","pathname":"/how-to-guides/setup-pathplanner","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Register a YAGSL-built SwerveDrive with PathPlanner's AutoBuilder.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"Dznytoe8bPR9aTz07fA3","title":"Access raw hardware devices","pathname":"/how-to-guides/access-raw-hardware-devices","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Get the actual vendor motor controller/encoder/gyro objects SwerveParser built, for configuration that isn't exposed through SmartMotorController.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"VLPyZoQy6yIAwWwW5pmV","title":"The 8 steps","pathname":"/how-to-guides/the-8-steps","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"W3wLPY6OlttlkWhnpes3","title":"Fix common SparkMAX/SparkFlex problems","pathname":"/how-to-guides/fix-sparkmax-common-problems","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"These usually show up on MAXSwerve robots.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"VMByLqgcUHlxV7Nc7c7v","title":"Set up AdvantageScope","pathname":"/how-to-guides/set-up-advantagescope","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"AdvantageScope is a data visualization tool, courtesy of team 6328 Mechanical Advantage, which can visualize the swerve drive to give you feedback for debugging.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"NjuAuuTKuWTXVmuHhSTN","title":"View your DataLog in AdvantageScope","pathname":"/how-to-guides/view-your-datalog-in-advantagescope","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Pull the .wpilog off your robot and look at what actually happened during a match or test run.","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"GAMdeO21ApeYm0gcx3fg","title":"Troubleshooting flowchart","pathname":"/how-to-guides/troubleshooting-flowchart","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"How-to Guides"}]},{"id":"AGHo4Oewb9pLhdlwjsiC","title":"Information","pathname":"/reference/reference","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"}]},{"id":"3ik63CnDfmVhxNT2J6Ey","title":"JSON Configuration Schema","pathname":"/reference/json-schema","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"}]},{"id":"4fAdFs7innxnJ03Orlqr","title":"swervedrive.json","pathname":"/reference/json-schema/swervedrive-json","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"},{"label":"JSON Configuration Schema"}]},{"id":"s5tAlwQaPhERN5I82pcP","title":"Module JSON","pathname":"/reference/json-schema/module-json","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"},{"label":"JSON Configuration Schema"}]},{"id":"VVuRQPHIPZAPojIfAXAx","title":"physicalproperties.json","pathname":"/reference/json-schema/physicalproperties-json","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"},{"label":"JSON Configuration Schema"}]},{"id":"p5Wp1fg3HpvB02zIEelz","title":"pidfproperties.json","pathname":"/reference/json-schema/pidfproperties-json","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"},{"label":"JSON Configuration Schema"}]},{"id":"QjeFZqDl7i9MmHJPtemk","title":"Device Type Strings","pathname":"/reference/json-schema/device-types","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"},{"label":"JSON Configuration Schema"}]},{"id":"8ERDpskVyAjIBwDJgvdh","title":"Supported Hardware","pathname":"/reference/hardware","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"}]},{"id":"FpaZBWln6dhtz3whF6At","title":"Gyroscopes","pathname":"/reference/hardware/gyroscopes","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Supported gyroscope/IMU types for swervedrive.json's gyro field","breadcrumbs":[{"label":"Reference"},{"label":"Supported Hardware"}]},{"id":"Uxpevbhfh3qJnv5KKSAx","title":"Motor Controllers","pathname":"/reference/hardware/motor-controllers","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Supported motor controller/motor combinations for module drive and angle motors","breadcrumbs":[{"label":"Reference"},{"label":"Supported Hardware"}]},{"id":"cvukjHkcjufr6BOm0AFh","title":"Absolute Encoders","pathname":"/reference/hardware/absolute-encoders","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Supported absolute encoder types for a module's absoluteEncoder field","breadcrumbs":[{"label":"Reference"},{"label":"Supported Hardware"}]},{"id":"1kIahCLnMRIoLGUr41kf","title":"Standard Conversion Factors","pathname":"/reference/standard-conversion-factors","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Known-good gearing values for common commercial-off-the-shelf swerve modules","breadcrumbs":[{"label":"Reference"}]},{"id":"7vgvqM3dNDgVvVVBemhs","title":"Vendordep Installation","pathname":"/reference/vendordep-installation","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Vendor dependencies YAGSL requires and how to install them","breadcrumbs":[{"label":"Reference"}]},{"id":"jsZ5gxjsmQ8155MH4QcY","title":"API Reference","pathname":"/reference/api-reference","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"}]},{"id":"kLO6AjaFJTb3Q1dvCozW","title":"Schema Changes (Migrating from pre-2026.8.05)","pathname":"/reference/schema-changes","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Reference"}]},{"id":"JC7cL4ZKTCjRCusUn0HE","title":"Swerve Drive Drift: Causes and Tuning Order","pathname":"/reference/swerve-drift-causes","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Drift can be caused by anything and everything in a swerve drive...","breadcrumbs":[{"label":"Reference"}]},{"id":"rLdORhYodxszxiACvwbj","title":"Why?","pathname":"/explanation/explanation","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Explanation"}]},{"id":"heNAQpnKfw6kQhj5WT8d","title":"What is YAGSL?","pathname":"/explanation/what-is-yagsl","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"We make your swerve drive run!","breadcrumbs":[{"label":"Explanation"}]},{"id":"4YPJ1RtX5mmT95DKFHc0","title":"Swerve Drive Kinematics","pathname":"/explanation/swerve-drive-kinematics","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"How does Swerve Drive work?","breadcrumbs":[{"label":"Explanation"}]},{"id":"95zjYx8yJSQbEIBMHmsD","title":"Swerve Modules","pathname":"/explanation/swerve-modules","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"What is a Swerve Module?","breadcrumbs":[{"label":"Explanation"}]},{"id":"jwbjsatP01oenbCin3yj","title":"Module Behaviors","pathname":"/explanation/module-behaviors","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Module-level control behaviors and why they exist","breadcrumbs":[{"label":"Explanation"}]},{"id":"PW3NjlzbB2B3Fnd5zrJG","title":"Chassis Control","pathname":"/explanation/chassis-control","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Chassis-level speed limiting, discretization, and lock pose","breadcrumbs":[{"label":"Explanation"}]},{"id":"d28VpGK8rdydhUK9uqdm","title":"Telemetry, Simulation & Vision","pathname":"/explanation/telemetry-and-vision","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"Telemetry verbosity, simulation, and fusing vision pose estimates","breadcrumbs":[{"label":"Explanation"}]},{"id":"BnMM4kJ17vpfNnBtddb7","title":"Changelog","pathname":"/explanation/changelog","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Explanation"}]},{"id":"vELMW3rMvGQeid6l5NQM","title":"YASS (Yet Another Software Suite)","pathname":"/external-links/yass-yet-another-software-suite","siteSpaceId":"sitesp_RbiLG","lang":"en","breadcrumbs":[{"label":"External Links"}]},{"id":"gR7789RKPOm3Xvxvpb9u","title":"Resources","pathname":"/resources/resources","siteSpaceId":"sitesp_RbiLG","lang":"en","description":"","breadcrumbs":[{"label":"Resources"}]}]}