# Getting to know your robot

## Pre-requisite details to configure YAGSL

YAGSL is configured for your robot by YOU! We have example configurations which may or may not work for you. The pre-requisite details about your robot are set by through vendor clients and physical characteristics of your robot. Below is a near comprehensive list of features of your robot you must know before configuring YAGSL.

| Feature                                                                       | Typical Value | Relevance                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ----------------------------------------------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Drive [Gear Ratio](/fundamentals/swerve-modules.md#conversion-factor)         | N/A           | The *Drive Gear Ratio* is the ratio describing how many times the drive motor shaft must rotate for the wheel to complete one rotation. This is usually available on the website of the Swerve Module purchased.                                                                                                                                                                                                                                                                                                                                           |
| Steering [Gear Ratio](/fundamentals/swerve-modules.md#conversion-factor)      | N/A           | The *Steering Gear Ratio* is the ratio describing how many times the steering motor shaf1t must rotate for the wheel to complete one spin. This is usally available on the website of the Swerve Module purchased.                                                                                                                                                                                                                                                                                                                                         |
| Absolute Encoder Ticks Per Revolution                                         | 1             | [See here](/devices/absolute-encoders.md)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| CAN Bus Name                                                                  | `rio`         | If you are using a [CANivore](https://store.ctr-electronics.com/canivore/) you may place CTRE devices such as the [Falcon500](https://store.ctr-electronics.com/falcon-500-powered-by-talon-fx/), [Kraken](https://store.ctr-electronics.com/kraken-x60/), [Pigeon2.0](https://store.ctr-electronics.com/pigeon-2/), and [CANCoder](https://store.ctr-electronics.com/cancoder/) on that bus. You must [set this value to the name of your CANivore](https://pro.docs.ctr-electronics.com/en/stable/docs/canivore/canivore-setup.html#renaming-canivores). |
| CAN or PWM or Analog Input ID of every sensor and motor controller.           | N/A           | If this is incorrect it will cause major issue's because you will be controlling one motor thinking it's another!                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Connection method for Gyroscope (NavX only)                                   | N/A           | If you are using a NavX over usb the device type should be `navx_usb` however if you are on the MXP please use `navx_spi`.                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Inversion state of the motors                                                 | N/A           | The inversion state needs to make the wheels go forward and spin clockwise.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Inversion state of the absolute encoder                                       | `false`       | Typically the absolute encoder will increase in value along with the steering motor movements, if this is not the case it needs to be changed!!!                                                                                                                                                                                                                                                                                                                                                                                                           |
| Inversion state of the gyroscope                                              | `false`       | The gyroscope needs to be counter clockwise positive, if it isn't it needs to be inverted!                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Absolute Encoder Offset                                                       | N/A           | The absolute encoder offset is given when you straighten out all modules **(facing the same way!)** then read the value from the vendor client or from SmartDashboard while the robot is Disabled!                                                                                                                                                                                                                                                                                                                                                         |
| Motor Controller PID value's                                                  | N/A           | Typical values are available in YAGSL-Example for NEO's and Falcon500's, however these may need to be further tuned. Ideally you can do this with the vendor client.                                                                                                                                                                                                                                                                                                                                                                                       |
| Distance in inches from the center of your robot to the center of each wheel. | N/A           | This is used for [`SwerveDriveKinematics`](https://github.wpilib.org/allwpilib/docs/release/java/edu/wpi/first/math/kinematics/SwerveDriveKinematics.html) while setting up your robot in YAGSL.                                                                                                                                                                                                                                                                                                                                                           |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yagsl.com/configuring-yagsl/getting-to-know-your-robot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
