> For the complete documentation index, see [llms.txt](https://docs.seattlesolvers.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.seattlesolvers.com/pedro-pathing/pedro-commands/hold-point-command-2.md).

# TurnToCommand

import com.seattlesolvers.solverslib.pedroCommand.TurnToCommand;

This command turns the robot in place directly to a certain field heading in radians (or degrees). Pedro Pathing 3 removed `follower.turnTo()`, so the command holds the follower's current position with the new heading using `follower.hold(Pose)`. Pedro Pathing normalizes the heading error, so the robot turns the shorter way around.

It has three parameters, with the first two being mandatory:

1. Pedro Pathing's Follower (which controls the robot movement)
2. The heading to turn to (default is Radians)

```java
TurnToCommand(Follower follower, double angle)

// Example
new TurnToCommand(follower, Math.PI / 2)
```

3. An optional parameter for a custom `AngleUnit` to turn to (`AngleUnit.RADIANS` or `AngleUnit.DEGREES`)

```java
TurnToCommand(Follower follower, double angle, AngleUnit angleUnit)

// Example
new TurnToCommand(follower, 90.0, AngleUnit.DEGREES)
```

## How it ends

The command finishes once the heading error is within the heading tolerance, which is 0.01 radians (about 0.57 degrees) by default, the same default as Pedro Pathing 2.x's `turnHeadingErrorThreshold`. You can change it with the `setHeadingTolerance` decorator, in radians or with a custom `AngleUnit`:

```java
new TurnToCommand(follower, 90.0, AngleUnit.DEGREES).setHeadingTolerance(1.0, AngleUnit.DEGREES)
```

Only the heading error is checked, not the angular velocity, so the command can finish while the robot is still rotating through the target. There is no timeout: if the heading controller cannot get within the tolerance the command never finishes, so loosen the tolerance or add `withTimeout(...)` in autonomous routines. The follower keeps holding the pose after the command ends.

To see how you can use this command in a [`CommandOpMode`](/command-base/command-system/robot-and-commandopmode.md#commandopmode), you can look at this [example](https://github.com/FTC-23511/SolversLib/blob/master/examples/src/main/java/org/firstinspires/ftc/teamcode/PedroCommandSample/PedroCommands.java).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.seattlesolvers.com/pedro-pathing/pedro-commands/hold-point-command-2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
