> For the complete documentation index, see [llms.txt](https://docs.revrobotics.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.revrobotics.com/first-global/2026/sb-code/programming-drive-and-climber.md).

# Programming - Drive and Climber

## Arcade Drive

The FGC Starter Bot is designed for arcade drive. The **left joystick** controls all movement for the robot's drivetrain, forward/back and turning!

<figure><img src="https://3182532645-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnrd7pGUS8aTaGm0hu5E%2Fuploads%2FxozDUCsSIDkbV7jRfu7Q%2Fimage.png?alt=media&amp;token=686c5cc4-273f-43c7-87bb-dfb8bd2c2bef" alt=""><figcaption><p>FGC Starter Bot Arcade Drive</p></figcaption></figure>

The inputs from the joystick will be stored in the set up X and Y variables. However, unlike the `targetVelocity` [constant variable](#user-content-fn-1)[^1] set up during initialization, these variables will update every time the program loops.&#x20;

Then these variables are used to calculate how much power to give each motor based on the current movement of the joystick.&#x20;

{% hint style="info" %}
To learn more about the variables used and the equation for deciding motor power, check out the [Hello Robot's walkthrough](https://docs.revrobotics.com/duo-control/hello-robot-blocks/part-2/arcade-style-teleop-blocks/establishing-variables-in-blocks)!
{% endhint %}

## Climber Control

<figure><img src="https://3182532645-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnrd7pGUS8aTaGm0hu5E%2Fuploads%2Fq8nahstxGP7b2Q3UJahF%2Fimage.png?alt=media&amp;token=4fd1e2bd-035d-4cfc-bc55-59bb455b0dd8" alt=""><figcaption><p>FGC Starter Bot Climb Code</p></figcaption></figure>

The FGC Starter Bot uses a single motor for climbing. On the gamepad, pressing **triangle** will allow the robot to ascend up the brace while **square** reverses the motor to aid with adjusting while climbing.

[^1]: variables that do not change while the program runs
