> ## Documentation Index
> Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# ControlState

> A non-consuming snapshot of a robot's control-loop state, motor order

```python theme={null}
from grid_robot_api.base.robot import ControlState
```

A non-consuming snapshot of a robot's control-loop state, motor order.

Joint arrays are in the robot's motor index order (the order of the names
the robot passes as `robot_joint_names`) and are always present. The
floating-base fields are optional so a fixed-base robot (an arm, a
bolted-down manipulator) can implement this interface without fabricating
an IMU reading; a consumer that needs one raises a descriptive error when
it is absent rather than reading a placeholder.

## Fields

<ResponseField name="joint_pos">
  Motor positions (rad), motor order.
</ResponseField>

<ResponseField name="joint_vel">
  Motor velocities (rad/s), motor order.
</ResponseField>

<ResponseField name="base_ang_vel">
  Base angular velocity (rad/s), length 3; `None` on a robot with no floating base or no IMU.
</ResponseField>

<ResponseField name="quat_wxyz">
  Base orientation quaternion (w, x, y, z), length 4, mapping the base frame to a Z-up world frame — the robot driver owns any conversion from its sensor's native convention; `None` on a robot with no floating base or no IMU.
</ResponseField>

<ResponseField name="base_lin_vel">
  Base linear velocity (m/s), length 3; `None` unless the robot runs a state estimator that provides one.
</ResponseField>


## Related topics

- [ROS2 Communication](/simulation/isaac/comms.md)
- [Your first skill](/get-started/first-skill.md)
- [Overview](/models/overview.md)
- [The Intelligence Grid for Physical AI](/introduction.md)
- [pi05](/models/cortex/pi05.md)
