# Hello Robot - Intro to OnBot Java Programming

- [Welcome to Hello Robot!](https://docs.revrobotics.com/duo-control/hello-robot-java/welcome.md)
- [Where to Program - Client vs. Browser](https://docs.revrobotics.com/duo-control/hello-robot-java/where-to-program.md)
- [What is an OpMode?](https://docs.revrobotics.com/duo-control/hello-robot-java/where-to-program/what-is-an-opmode.md)
- [Setting up a Configuration](https://docs.revrobotics.com/duo-control/hello-robot-java/configuration.md)
- [Common Errors in Configuration](https://docs.revrobotics.com/duo-control/hello-robot-java/configuration/common-errors-in-configuration.md)
- [Using a Gamepad](https://docs.revrobotics.com/duo-control/hello-robot-java/using-a-gamepad.md)
- [Part 1: Tackling the Basics](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1.md)
- [Tackling the Basics Directory - OnBot](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/onbot.md)
- [Creating an OpMode - OnBot](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/test-bed-onbot-java.md)
- [Programming Essentials](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-essentials.md)
- [Programming Servos](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-servos.md)
- [Programming Servo Basics](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-servos/programming-servo-basics.md)
- [Using a Gamepad with a Servo](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-servos/using-a-gamepad-with-a-servo.md)
- [Programming Servo Telemetry](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-servos/programming-servo-telemetry.md)
- [Programming Motors](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-motors.md)
- [Programming Motor Basics](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-motors/programming-motor-basics.md)
- [Programming a Motor with a Gamepad](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-motors/programming-a-motor-with-a-gamepad.md)
- [Programming Motor Telemetry](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-motors/programming-motor-telemetry.md)
- [Programming Touch Sensors](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-touch-sensors.md)
- [Programming Color Sensors](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-color-sensors.md)
- [Color Sensor Telemetry](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-color-sensors/color-sensor-telemetry.md)
- [Detecting Color](https://docs.revrobotics.com/duo-control/hello-robot-java/part-1/programming-color-sensors/detecting-color.md)
- [Part 2: Robot Control](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2.md)
- [Robot Control OnBot Java Directory](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/robot-control-onbot-java-directory.md)
- [Programming Drivetrain Motors](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/programming-drivetrain-motors.md)
- [Arcade Style TeleOp - OnBot Java](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/arcade-style-teleop-onbot-java.md)
- [Establishing Variables in OnBot Java](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/arcade-style-teleop-onbot-java/establishing-variables-in-onbot-java.md)
- [Motor Power vs. Robot Movement](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/arcade-style-teleop-onbot-java/motor-power-vs.-robot-movement.md)
- [Programming Arcade Drive](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/arcade-style-teleop-onbot-java/programming-arcade-drive.md)
- [Arm Control - OnBot Java](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/arm-control-onbot-java.md)
- [Adding a Limit Switch](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/arm-control-onbot-java/adding-a-limit-switch.md)
- [Robot Control Full Program](https://docs.revrobotics.com/duo-control/hello-robot-java/part-2/robot-control-full-program.md)
- [Part 3: Autonomous and Encoders](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3.md)
- [ElapsedTime - OnBot Java](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/elapsed-time.md)
- [ElapsedTime Setup](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/elapsed-time/elapsedtime-setup.md)
- [ElapsedTime Logic](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/elapsed-time/elapsedtime-logic.md)
- [ElapsedTime - Multiple Movements](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/elapsed-time/elapsedtime-multiple-movements.md)
- [Encoder Basics](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/using-encoder.md)
- [Drivetrain Encoders - OnBot Java](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/autonomous-navigation-onbot.md)
- [Converting Encoder Ticks to a Distance](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/autonomous-navigation-onbot/converting-encoder-ticks-to-a-distance.md)
- [Moving to a Target Distance](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/autonomous-navigation-onbot/moving-to-a-target-distance.md)
- [Setting Velocity](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/autonomous-navigation-onbot/setting-velocity.md)
- [Turning the Drivetrain Using RUN\_TO\_POSITION](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/autonomous-navigation-onbot/turning-the-drivetrain-using-run_to_position.md)
- [Arm Control with Encoders - OnBot Java](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/arm-control-with-encoders-onbot-java.md)
- [Estimating the Position of the Arm](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/arm-control-with-encoders-onbot-java/estimating-the-position-of-the-arm.md)
- [Calculating Target Position](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/arm-control-with-encoders-onbot-java/calculating-target-position.md)
- [Using Limits to Control Range of Motion](https://docs.revrobotics.com/duo-control/hello-robot-java/part-3/arm-control-with-encoders-onbot-java/using-limits-to-control-range-of-motion.md)


---

# 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.revrobotics.com/duo-control/hello-robot-java.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.
